視頻會議系統(tǒng)多畫面軟件設(shè)計與分析
掃描二維碼
隨時隨地手機(jī)看文章
0 引言
視頻會議的發(fā)展經(jīng)歷了一個從無到有、從不成熟到基本成熟的過程。在這個發(fā)展過程中,又相繼出現(xiàn)了電視會議、桌面會議、多媒體會議等多種遠(yuǎn)程會議系統(tǒng)。視頻會議系統(tǒng)發(fā)展的關(guān)鍵技術(shù)之一是視頻編碼。利用低比特率的視頻編解碼方案H.263 建議,可將視頻圖像最少壓縮到大約20 kbps,以使其能在普通電話線上通過28.8 kbps 的V.34Modem 傳送音頻信號。事實(shí)上,在音視頻編碼協(xié)議不斷改進(jìn)與發(fā)展的同時,視頻會議本身的協(xié)議也實(shí)現(xiàn)了更新?lián)Q代,目前已出現(xiàn)了基于分組交換網(wǎng)的H.323 建議。視頻會議向高性能、多功能、協(xié)同性、智能化和集成化方向發(fā)展的另一個關(guān)鍵技術(shù)是多畫面合成技術(shù)。
由于傳統(tǒng)采用RGB 格式存儲數(shù)據(jù)流以用于多畫面合成的方法十分浪費(fèi)資源。因此,為了在有限的頻帶條件下最大限度地提高資源利用率,本文提出了一種在不影響畫面質(zhì)量的同時解決其資源利用問題的新方案。事實(shí)上。視頻會議多畫面軟件已經(jīng)應(yīng)用到生活的諸多領(lǐng)域。而且將會有更廣泛地使用。
1 數(shù)據(jù)流的捕獲
Windows 下捕獲數(shù)據(jù)包的結(jié)構(gòu)如圖l 所示,其中NDIS 的NDIS (Network Driver Interface Specification)是Microsoft 和3Com 公司聯(lián)合制定的網(wǎng)絡(luò)驅(qū)動規(guī)范,該規(guī)范提供有大量的操作函數(shù)。它可為上層的協(xié)議驅(qū)動提供服務(wù),從而屏蔽了下層各種網(wǎng)卡的差別。NDIS 向上可支持多種網(wǎng)絡(luò)協(xié)議,例如TCP/IP、NWLink IPX/SPX、NETBEUI 等,向下則可支持不同廠家生產(chǎn)的多種網(wǎng)卡。
利用 winpcap 進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和過濾的設(shè)計步驟如下:
(1)打開網(wǎng)卡,設(shè)置網(wǎng)卡為混雜模式;
(2)回調(diào)函數(shù)Network Tap,得到監(jiān)聽命令后從網(wǎng)絡(luò)設(shè)備驅(qū)動程序處收集數(shù)據(jù)包,并把監(jiān)聽到的數(shù)據(jù)包傳送
給過濾程序;
(3)當(dāng)Packet filter 監(jiān)聽到數(shù)據(jù)包到達(dá)時,NDIS 中間驅(qū)動程序調(diào)用分組驅(qū)動程序,該程序可將數(shù)據(jù)傳遞給每一個參與進(jìn)程的分組過濾程序;
(4)由Packet filter過濾程序決定丟棄或接收數(shù)據(jù)包,并將接收的數(shù)據(jù)拷貝到相應(yīng)的程序;
(5)通過分組過濾器后,再將未過濾掉的數(shù)據(jù)包提交給核心緩沖區(qū),當(dāng)系統(tǒng)緩沖區(qū)滿后,再將數(shù)據(jù)包拷貝到用戶緩沖區(qū)。監(jiān)聽程序可以直接從用戶緩沖區(qū)中讀取捕獲的數(shù)據(jù)包;
(6)關(guān)閉網(wǎng)卡。
2 視頻數(shù)據(jù)流的解碼
捕獲到的視頻數(shù)據(jù)流。通常在網(wǎng)絡(luò)傳輸中都采用H.263視頻編碼建議,其圖像格式為CIF格式。H.263-CIF格式的數(shù)據(jù)流是一種壓縮編碼圖像格式,這種格式在網(wǎng)絡(luò)傳輸過程中可節(jié)省頻帶資源,可在有限的帶寬下最大限度地提高資源利用率。但是,CIF格式必須經(jīng)過處理才能應(yīng)用于多畫面合成。只有通過解碼使捕獲到的視頻數(shù)據(jù)流變成YUV(RGB)格式后,此圖像格式才可直接運(yùn)用于多畫面合成,而且此格式的圖像合成也比較方便、快捷。為了使圖像由H.263格式轉(zhuǎn)變?yōu)閅UV(RGB)格式,應(yīng)運(yùn)用H.263解碼器進(jìn)行解碼。其編解碼算法的概要圖如圖2所示。
3 多畫面合成
視頻數(shù)據(jù)流經(jīng)過解碼之后,可將其變成YUV(RGB)格式。下一環(huán)節(jié)即是視頻數(shù)據(jù)流的合成(多畫面合成),這也是本文的關(guān)鍵技術(shù)。在視頻會議系統(tǒng)中,參加會議的與會者或許不只兩、三個,所有與會者可能分布全國乃至世界各地。為了使每個與會者都能進(jìn)行面對面的直接交流,就需要在同一時間看到所有的與會者,因此,多畫面合成技術(shù)必不可少。通過多畫面合成能使N個不同的視頻畫面實(shí)時地在同一臺顯示器上顯示,這樣,每一位與會者就都可以運(yùn)用該軟件看到其他成員。
YUV主要的采樣格式有YCbCr4:2:O、YCbCr4:2:2、YCbCr4:1:1和YCbCr4:4.:4。其中YCbCr4:1:1比較常用,其含義是每個點(diǎn)保存一個8 bit的亮度值(也就是Y值),每2x2個點(diǎn)保存一個Cr和Cb值,這樣,圖像在人的視覺中不會起太大的變化。RGB (R,G,B都是8 bit unsigned)模型的4個點(diǎn)需要8×3=24 bits,而現(xiàn)在僅需要8+(8/4)+(8/4)=12 bits,平均每個點(diǎn)占12 bits。這樣就把圖像的數(shù)據(jù)壓縮至一半。YUV411為每個像素都提取Y分量,UV分量在水平方向上每4個像素采樣一次。YUV420并非V分量采樣為0,而只是跟YUV411相比,在水平方向上提高了一倍的色差采樣頻率,并在垂直方向上以U/V間隔的方式減小了一半色差采樣。
經(jīng)過解碼即可得到Y(jié)UV格式的數(shù)據(jù)流,H.263-CIF的圖像格式亮度取樣像素個數(shù)、亮度取樣行數(shù)為352x288,圖像是由許多像素點(diǎn)組成的,即一幅H.263-CIF圖像占有352×288個像素點(diǎn),經(jīng)過解碼。這些值將不變化,即YUV格式的亮度取樣像素個數(shù)、亮度取樣行數(shù)也為352×288、也占有352×288個像素點(diǎn)?,F(xiàn)在假設(shè)視頻數(shù)據(jù)是YUV420格式.它的采樣格式為4:2:0。在對YUV420格式的視頻數(shù)據(jù)進(jìn)行存儲時,可按照圖3所示的存儲格式,先存儲所有的Y,之后存儲U,再存儲V,并且每個像素點(diǎn)占用一個Y,平均四個像素點(diǎn)占用一個U和V。每個像素點(diǎn)占用一個字節(jié),則一幅圖像所占用的字節(jié)數(shù)將是352×288×(1+1,4+1/4)。
下面以四畫面為例來介紹該軟件的多畫面合成過程。當(dāng)捕獲到的四個視頻數(shù)據(jù)流經(jīng)過解碼后。每幅圖像的所有數(shù)據(jù)都是連續(xù)地保存在存儲單元中。這里用Ⅰ、Ⅱ、Ⅲ、Ⅳ來表示這四幅圖像,它們在存儲單元中的存儲狀態(tài)如圖4所示。每一副圖像都是單獨(dú)存儲的。實(shí)際需要得到的四合一圖像如圖5所示。
圖像在顯示時,所有像素點(diǎn)均有序排列,例如一幅352×288的圖像,它在存儲像素點(diǎn)時,首先存Y信號第l行的352個象素點(diǎn),其次是第2行⋯⋯直至第288行存完Y信號,然后存儲U信號第l~288行的所有像素點(diǎn),最后再存儲V信號的所有像素點(diǎn)。但四幅圖像合成之后,其圖像大小就會變?yōu)橐桓眻D像的兩倍即704×576,因此,需要改變其存儲格式。即重新調(diào)整這四幅圖像的像素存儲順序,其具體過程如下:
(1)存儲第1幅圖像Y信號的第1行共352個像素點(diǎn),再存儲第Ⅱ幅圖像Y信號的第l行共352個像素點(diǎn),這樣就組成了新圖像Y信號的第1行共704個像素點(diǎn):
(2)依此次序存儲新圖像Y信號的第2~288行;
(3)新圖像的第289行由第Ⅲ幅圖像Y信號的第1行其352個像素點(diǎn)加第Ⅳ幅圖像Y信號的第1行的352個像素點(diǎn)組成;
(4)新圖像的第290~576行Y信號也依此次序存儲,直到多畫面合成圖像所有的Y信號存儲完畢;
(5)重新從步驟(1)至步驟(4)以完成U、V信號的存儲。
經(jīng)過上述5個步驟之后,新的多畫面圖像即按照設(shè)計的格式存儲起來,該多畫面的顯示可借助微軟公司的DirectShow來實(shí)現(xiàn),這樣即可完成視頻會議的多畫面軟件系統(tǒng)設(shè)計。
4 結(jié)束語
在視頻會議系統(tǒng)多畫面軟件的分析與設(shè)計過程中,可先捕獲視頻數(shù)據(jù)流,并在經(jīng)過解碼后用于多畫面合成。多畫面合成是視頻會議系統(tǒng)中的關(guān)鍵部分,捕獲數(shù)據(jù)及解碼是為這一過程作鋪墊,本文以四畫面合成為例,對多畫面合成過程進(jìn)行了介紹。
在視頻會議中,運(yùn)用多畫面軟件可以更好地進(jìn)行實(shí)時性對話,提高會議效率。本文介紹的多畫面軟件不僅能應(yīng)用于視頻會議,還可以廣泛地應(yīng)用于其他場合。例如,在畫面合成時,應(yīng)用該軟件對數(shù)據(jù)的存儲格式稍做改變,即可得到電視畫面的畫中畫效果;在常見的監(jiān)視系統(tǒng)中運(yùn)用多畫面合成技術(shù),可以使多個監(jiān)視器捕獲到的圖像同時在一個屏幕上顯示。視頻會議多畫面軟件不僅可以廣泛運(yùn)用于會議,還可在軍事、交通、治安等復(fù)雜的指揮和控制場合發(fā)揮積極作用。