視頻會議系統(tǒng)是一個綜合性非常強的實時系統(tǒng),因此在視頻會議開發(fā)過程中,我們經(jīng)常會遇到很多程序上的瓶頸,瓶頸的產(chǎn)生一般都是因為運算量過大,或者傳輸量過大甚至有些是因為設備輸出量較大引起的瓶頸等,因此這些瓶頸可能產(chǎn)生與運算處理當中,也可能產(chǎn)生在數(shù)據(jù)傳輸過程中和輸入、輸出過程中。下面我們就列舉一下視頻會議開發(fā)過程中存在的瓶頸的部分及其解決辦法。
1、MCU服務器的數(shù)據(jù)處理
MCU服務器是整個視頻會議系統(tǒng)的核心,因此MCU服務器的傳輸效率直接影響到整個視頻會議系統(tǒng)的效應時間和效率。MCU服務器主要是進行轉發(fā)數(shù)據(jù),控制數(shù)據(jù)傳輸?shù)较鄳慕K端上,其傳輸方式一個有兩種,一直是在MCU上進行合成,然后再傳輸?shù)狡渌慕K端,另外一種方式是MCU直接轉發(fā)數(shù)據(jù),然后再由終端對數(shù)據(jù)進行合成。兩種方式各有利弊,在MCU上合成的方式,可以節(jié)省帶寬,不論是視頻還是音頻數(shù)據(jù)都在MCU服務器上進行合成,會使到其傳輸數(shù)據(jù)量減少,但這種方式會占用較大的MCU服務器的CPU運算資源。而另外一種方式,MCU服務器只是轉發(fā)數(shù)據(jù),不參與合成音、視頻,這種方式節(jié)省了MCU服務器的CPU運算時間,但會增加MCU服務器的帶寬。對于這兩種方式,我們可以把運算量小的音頻數(shù)據(jù)在MCU服務器上進行合成,而運算量較大的視頻數(shù)據(jù)采用直接轉發(fā)的模式,這樣既有效地減少了帶寬,也提高了MCU服務器的運算效率。
2、終端的圖像重畫
視頻會議終端的圖像一般要求達到20幀以上,因此頻繁的重畫圖像需要終端的CPU運算量也是很大,因此我們重畫圖像的時候必須要采用效率更高的方式,傳統(tǒng)的重畫方式是通過解碼后的圖像一幅一幅的進行重繪,但其效率較低,我們可以通過底層的DirectDraw技術來進行圖像的重畫,其重繪的方式是直接往顯卡里面輸入數(shù)據(jù),然后通過顯卡直接顯示數(shù)據(jù),該方式可以充分利用顯卡的底層接口,圖像輸出時間更快,大大地提高圖像的重畫效率。
3、圖像數(shù)據(jù)格式轉換
由于視頻會議的圖像都是經(jīng)過壓縮才進行傳輸,而一般的視頻壓縮算法都不是直接獲取圖像的RGB數(shù)據(jù),它們接收的數(shù)據(jù)都是yuv420格式的數(shù)據(jù),而RGB轉yuv420數(shù)據(jù)是通過浮點運算進行,因此如果數(shù)據(jù)量大的情況下,其會消耗較大的CPU運算時間,因此我們可以通過建立轉換表的方式來進行提前進行運算設置,建立轉換表的方式也就是把所有可能進行運算的結果用表的方式進行先加載,然后當真正運算的時候,查表就可以得到相應的數(shù)據(jù)結果,這種通過空間來換時間的方式,可以大大提高圖像的數(shù)據(jù)格式轉換效率。