999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DirectShow的視頻實時校正系統設計

2014-02-13 09:58:26可,周
電視技術 2014年15期
關鍵詞:系統

馮 可,周 軍

(上海交通大學上海市數字媒體處理與傳輸重點實驗室,上海200240)

責任編輯:任健男

自2010年3D電影《阿凡達》上市以來,3D技術得到了極大的關注,對于3D技術相關的研究日益深入,3D節目的受眾群體也日益廣泛。隨著3D技術的研究深入,觀測的舒適度成為了一個非常重要的問題,它不僅影響著人們觀看3D節目時的感受,更影響著觀測者的身體健康。研究表明,有很多因素影響著3D視頻的觀測舒適度,其中雙路視頻中的垂直視差是極其重要的一項指標。

在實際的拍攝過程中,由于雙視點相機擺放位置的不精確,拍攝得到的雙路視頻中存在垂直視差這類幾何失真是無法避免的。為了消除立體視頻中的幾何失真導致的垂直視差,人們提出了各種攝像機標定和圖像極線校正算法,不過這些算法多用于圖像或者視頻的后期處理,難以做到在拍攝的同時得到較好的結果。如果能夠在拍攝的同時對所得到的視頻序列進行處理,消除其垂直視差,不僅可以大大降低后期處理的難度和工作量,也將因校正后3D視頻的舒適性質量提高而有效降低3D節目的制作門檻,從而促進3D產業的發展。

但隨著1 080高清視頻甚至4K視頻的應用范圍越來越廣,圖像極線校正算法的運算量越來越大,具體來講,對于雙路高清1 080 50i格式的輸入,系統的處理速度要達到50 f/s(幀/秒),相應的吞吐量要達到3 Gbit/s,對于每一幀圖像的極線校正時間需要控制在20 ms以內。另外在實時進行極線校正處理的同時,還應當能夠實時地使拍攝人員觀測到處理的結果,以進行及時的調整,包括更改校正的參數甚至直接調整相機的位置,這樣才能提供更大的可操作性。

針對以上的研究需求和難點,使用傳統的CPU架構尚無法完成實時校正處理。本文使用GPU并行架構完成了極線校正的過程,每幀的處理時間達到10 ms,實現了處理速度上的實時性;另外為了能夠實時采集并輸出處理結果,使用了DirectShow技術開發了用于3D高清視頻極線校正的過濾器,從而達到了3D高清視頻的實時采集、極線校正和輸出。

1 系統的方案設計

1.1 系統的總體框圖

根據引言所述,系統所需完成的三大需求為:實時獲取雙目視頻流,根據預先設定好的參數對雙目視頻流進行高速的極線校正,將校正結果送至屏幕或采取其他的輸出方式實時提供給用戶觀測。按照這三大需求,本文的高清視頻實時極線校正系統的設計框圖如圖1所示,最終使用這個框圖設計得到的系統將為這一整套流程提供一個完整的解決方案。

圖1 高清視頻實時極線校正系統框圖

在該系統中,數據的整體流向為從左至右。首先由輸入模塊根據輸入的設置,負責完成雙目視頻序列的實時采集獲得雙目序列,并將所得到的數據流向下游傳輸至校正模塊;接下來由校正模塊根據設置好的一對單應矩陣完成實時的極線校正功能,并將得到的結果數據流向下游傳輸至輸出模塊;輸出模塊根據輸出的設置,將最終的結果展示到計算機屏幕、儲存為相關文件或者通過SDI接口進行輸出。

1.2 DirectShow簡介

本系統涉及到了高帶寬的多媒體流的采集、傳輸和處理,采用微軟公司提供的DirectX軟件開發包,可以大大降低開發難度,而且使程序在未來也可以得到兼容和支持。

DirectShow是DirectX家族的一個成員,是專門為在Windows平臺上處理各種格式媒體文件的回放、音視頻采集等高性能要求的多媒體應用的一種實現方案。Direct-Show系統的結構如圖2所示,圖中最大的一塊就是DirectShow系統。虛線以下是Ring 0特權級別的硬件設備,虛線以上是Ring 3特權級別的應用層。DirectShow系統位于應用層,使用過濾器圖表管理器來管理整個數據流的處理過程。參與數據處理的各個功能模塊叫作過濾器(filter),各個過濾器在圖表管理器中按一定的順序連接成“流水線”協同工作。

1.3 數據的傳輸

在DirectShow中,模塊將被實現為過濾器。每個過濾器都有自己的Pin,各個過濾器之間就是通過這些輸入/輸出Pin來連接。Pin的連接其實是雙方使用的媒體類型的一個協商過程,而真實的數據傳輸單元叫作Media Sample。它也是一個COM組件,管理一塊數據內存,由分配器來管理。

圖2 DirectShow系統結構圖[1]

數據傳送的模式有兩種,一種是推模式,另一種是拉模式。推模式常用于實時源的數據處理,每采集到一個Media Sample就將其向下游傳輸,而拉模式常用于文件源的數據處理,每當下游處理完一個Media Sample就從文件源獲取數據。

2 輸入/輸出模塊實現

2.1 輸入模塊流程

輸入模塊流程圖如圖3所示。在輸入流程開始時,首先遍歷所有的硬件輸入設備;接下來由用戶指定從哪個設備獲得,并將指定源過濾器加入圖表管理器;然后獲得其支持的視頻和音頻輸入格式,當用戶選擇了一個相應的視頻格式之后,將這個源過濾器與AVI Decompressor過濾器相連,并從其X Form Out PIN獲得向下游傳輸的視頻數據;當用戶選擇了一個相應的音頻格式之后,便可以直接從源過濾器的audio capture PIN獲得向下游傳輸的音頻數據。

圖3 輸入模塊流程圖

2.2 輸出模塊流程

輸出模塊流程圖如圖4所示,輸出模塊根據用戶所選擇的輸出位置,相應地向過濾器圖表中加入文件寫入過濾器、視頻渲染過濾器(一般默認為VMR9)和設備渲染過濾器。在過濾器添加好之后,將上游校正模塊處理過的視頻流和由輸入模塊直接傳出的音頻流接入即可將最終的數據傳送至用戶所期望的輸出位置。

圖4 輸出模塊流程圖

2.3 實現中的細節

需要把設備輸入的YUV格式數據高速轉換為易于處理的RGB格式,DirectShow已經提供了一個具有該功能的過濾器AVI Decompressor,該過濾器可以向下游的過濾器提供RGB格式的Sample數據,利于進行處理。

在枚舉設備接口時調用的PopulateDeviceControl()函數中,可以得到計算機所提供的所有連接設備的接口,每一個接口都可以獲得其連接設備的名字,默認情況的名字是以16進制的代碼顯示,例如{Device-17CCA71BECD7-11D0-B908-00A0C9223196},這樣的名字對用戶并不友好,可以通過pPropBag->Read(L"FriendlyName",&varName,0)語句,來使顯示的名字為用戶友好的名字,例如顯示為WDM Capture Device。

除了按照流程編寫程序,還應加入組件初始化,注冊到活動對象表,以及相應的對象銷毀和內存釋放過程。注冊到活動對象表可通過AddGraphToRot(m_pGraph,&m_ROTRegister)語句來實現,注冊之后才可以在微軟提供的Graphedit軟件中使用Connect to Remote Graph來觀測當前的鏈路狀況,方便進行調試。

2.4 同步性保證

既然涉及到了多媒體視頻的處理,就一定要解決同步問題,在本系統中涉及到兩種同步問題:一是單路序列的音視頻同步,二是雙目序列之間的視頻同步。如果雙路序列不同步,校正的結果也就失去了意義。

DirectShow系統已經提供了解決方案,就是利用過濾器圖表的參考時鐘,可以直接把單路序列的音視頻同步,讓雙目序列所在的兩條鏈路使用同一個參考時鐘便可以解決雙目序列之間的視頻同步。

3 校正模塊實現

3.1 極線校正的相關原理

3D視頻極線校正的目的是消除左右視頻中的垂直視差,從而消除垂直視差引起的不舒適感,傳統的視頻極線校正過程可以分為有相機標定的方法和無相機標定的方法。

在無相機標定方法中使用文獻[2-3]中的誤匹配剔除算法,再利用LM優化獲得左右視頻分別的單應矩陣,并利用這一對矩陣分別對左視頻和右視頻的每一幀進行投影變換,從而得到極線校正后的圖像。

校正的基本公式為

利用式(1)進行校正需要反向填充,首先求校正矩陣H的逆,然后利用公式

3.2 校正流程

校正處理模塊接受上游傳送而來的視頻流,并對每一幀圖像進行校正處理,再將其向下游傳輸,其內部的算法流程圖如圖5所示。首先檢查輸入PIN傳入的數據格式是否符合要求,如果不符合將給出提示,否則解析幀頭信息獲得圖像的大小和色度信息,從而選擇適當的校正函數進行調用。

圖5 校正模塊流程圖

校正函數由GPU實現,調用函數時將數據傳輸至GPU,進行并行處理,再將處理好的結果傳輸回主機端。最后加入相應的幀頭信息,向下游傳輸。

3.3 GPU算法的實現細節

GPU有著良好的并行計算能力,已經在很多領域有應用[4-5],例如全息影像、語音識別等。對于高清視頻的極線校正過程,GPU的架構尤其適用,因為每個坐標映射及插值計算過程完全相同且與其他過程無關,非常利于通過并行來獲得巨大的加速比。本文采用的是NVIDIA公司的CUDA架構,它利用多個流處理器分塊(block)執行運算任務,每個塊中也可以同時開啟多個線程(thread)。通過Host主機端調用在Device上運行的Kernel函數,程序會按照設置好的Grid,Block,Thread數目進行并行運算。

用GPU實現實時極線校正算法,其核心函數的實現形式和調用形式分別為:

__global__void warpKernel(uchar*src,uchar*dest,double*parameter)

dim3 blocks(60,34),threads(32,32);

warpKernel<<<blocks,threads>>>(dev_imgL,dev_resultL,dev_leftM);

在實現過程中,要注意以下幾個細節:

1)為了使GPU的運算效率達到最高,在核函數內部盡量減少分支判斷的次數。

2)因為要處理的src和dest均是圖像,可以視為二維的數組,于是使用cudaMallocPitch()代替cudaMalloc()來執行間距分配。由于硬件中的間距對齊限制,在顯存和內存之間復制這塊內存區域將會略微提高效率。

3)因為CUDA模型中每個流處理器可以同時處理8個線程,為了充分利用資源,創建32的倍數個線程。

3.4 過濾器實現細節

要想在過濾器中使用GPU,需要先編寫好Kernel函數并編譯,并在過濾器的實現文件中用extern C聲明,之后便可以直接在Transform核心函數中,調用聲明好的cudaTest函數:

extern"C"void cudaTest(uchar*src,uchar*dst,uchar*dev_imgL,int rows,int cols,uchar*dev_resultL,double*dev_leftM);

要想使用自己編寫的過濾器,可以通過將該過濾器導出成dll形式的方式來實現。但在實現中,沒有必要非要以COM組件的形式使用過濾器,可以直接實例化一個過濾器,并手工添加引用計數,然后獲取IBaseFilter接口并通過該接口對編寫的過濾器進行操作,部分代碼如下:

CRectFilter*pFLeft=new CRectFilter();

pFLeft->AddRef();

pFLeft->SetParameters(RectHomoL,1080,1920,1);

hr=pFLeft->QueryInterface(IID_IBaseFilter,reinterpret_cast<void**>(&pRectLeft));

hr=m_pGraph->AddFilter(pRectLeft,L"My Rectification Left");

4 實驗結果

首先,利用GPU并行進行實時校正的結果如圖6所示,從上方牌匾處的“交通”二字以及石獅子的頭部可以看出,垂直視差得到了有效的消除。

圖6 校正前后的紅青立體圖對比

極線校正所需的時間數據如圖7所示,多核CPU的效率遠遠落后于GPU,NVIDIA Quadro K4000顯卡對于1 080視頻幀的處理時間(包括內存與顯存之間傳輸圖像數據的時間)為7 ms,處理幀的速度為140幀/秒(f/s),比CPU提速了20倍,達到了實時的速度要求。但在顯存和內存各緩存一幀的數據,所以實際上的處理和播放延時為2幀。

最終利用編寫好的極線校正過濾器來實現高清視頻的實時校正和播放的過濾器圖表如圖8所示,其中視頻數據流由采集卡傳入,經過AVI Decompressor后由YUV422格式轉變為RGB24格式,再經由實現的Rectification過濾器最終提供給屏幕進行輸出顯示,最終的播放丟幀數為0,達到了預期效果,開發用于3D高清視頻極線校正的過濾器,從而實現了3D高清視頻的實時采集、極線校正和輸出。

圖7 極線校正所需時間圖

圖8 利用實時極線校正過濾器播放視頻的過濾器圖表

[1]陸其明.DirectShow開發指南[M].北京:清華大學出版社,2003.

[2]YAO D,ZHOU J,XUE Z.Homography matrix genetic consensus estimation algorithm[C]//Proc.IEEE ICALIP.[S.l.]:IEEE Press,2011:1139-1143.

[3]姚達,周軍,薛質.計算機視覺中強魯棒性的遺傳一致性估計[J].計算機工程,2011,37(20):183-185.

[4]鄭專,安平,張秋聞,等.基于GPU加速的深度圖像繪制[J].電視技術,2012,36(11):11-14.

[5]仇德元.GPGPU編程技術——從GLSL、CUDA到OpenCL[M].北京:機械工藝出版社,2011.

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 在线色综合| 亚洲一级毛片| 久久香蕉国产线看精品| 日韩精品一区二区三区中文无码| 欧美日韩亚洲综合在线观看 | 免费人成网站在线高清| 久久这里只精品热免费99| 亚洲无码电影| 四虎国产在线观看| 日韩毛片视频| 国产欧美日韩va| 亚亚洲乱码一二三四区| 久久五月视频| 午夜小视频在线| 欧美不卡在线视频| 夜夜操狠狠操| 成人毛片免费在线观看| 国产精品自拍露脸视频| 日韩欧美国产区| 丁香婷婷在线视频| 婷婷综合在线观看丁香| 无码'专区第一页| 亚洲综合片| 日韩在线永久免费播放| 午夜爽爽视频| 美女黄网十八禁免费看| 熟妇无码人妻| 国产国模一区二区三区四区| 8090成人午夜精品| 91精品啪在线观看国产60岁 | 丁香五月激情图片| 国产欧美自拍视频| 青草国产在线视频| 亚洲国产av无码综合原创国产| 色成人综合| 久久久久国产精品嫩草影院| 亚洲色图欧美激情| 国产成人啪视频一区二区三区| 久久人妻系列无码一区| 欧美日韩福利| 免费无遮挡AV| 精品色综合| 亚洲国产亚综合在线区| 亚洲成人在线免费| 免费不卡视频| 日本手机在线视频| 亚洲无码高清视频在线观看| 国产一级毛片yw| 国内精自线i品一区202| 午夜日韩久久影院| 亚洲午夜福利精品无码不卡| 亚洲系列无码专区偷窥无码| 亚洲国产日韩一区| 亚洲成人一区在线| 欧美日韩精品在线播放| 国产亚洲精品自在久久不卡| 又黄又湿又爽的视频| 理论片一区| 国产欧美日韩综合在线第一| 99热这里只有免费国产精品 | 最新国产精品鲁鲁免费视频| 亚洲精品欧美日本中文字幕| 中文字幕1区2区| 日韩精品高清自在线| 亚洲大尺度在线| 欧美福利在线观看| 国产主播喷水| 欧美亚洲网| 91免费精品国偷自产在线在线| 国产亚洲精| 国产91在线|中文| 少妇高潮惨叫久久久久久| 亚洲精品成人福利在线电影| 亚洲第一极品精品无码| а∨天堂一区中文字幕| 国产精品一区二区国产主播| 国产理论精品| 好吊日免费视频| 免费高清a毛片| 欧美精品综合视频一区二区| 国产精品女同一区三区五区| 国产精品成人久久|