摘要:提出一種基于MPEG-4的無線視頻傳輸非等重誤碼保護方案。根據信道反饋的丟包率信息,自適應選擇輸出視頻流的保護模式。在丟包信道中,對MPEG-4碼流中運動信息和紋理信息采取不同的保護力度,使用FEC重點保護運動信息數據提高其對誤碼的魯棒性。在無丟包信道中,不對數據進行保護,降低打包開銷,減少冗余數據。
關鍵詞:MPEG-4; 無線; 視頻; 非等重誤碼保護
中圖分類號:TP391; TP393文獻標志碼:A
文章編號:1001-3695(2007)11-0281-02
無線多媒體通信技術能使用戶擺脫有線的束縛,通過智能終端可隨意地進行信息交換,具有廣闊的應用前景,因此它日漸成為人們廣泛研究的熱點。無線信道最突出的問題就是由于多徑衰落等因素造成的高誤碼和相對較窄的信道之間的矛盾,這種矛盾在視頻傳輸時尤為突出。視頻信息數據量大,為適應無線信道的低帶寬,必須使用高效率的壓縮算法。而壓縮后的碼流去除了時間和空間的相關性,對誤碼更加敏感,所以需引入差錯控制機制,將冗余數據添加入碼流中,以提高視頻碼流的可靠性。移動終端受硬件技術限制,系統計算能力不高,且通常采用電池供電,能源系統容量有限,因而要求設計使用簡單的低能耗的算法,減少終端的功率消耗。
針對以上三個方面,無線視頻傳輸系統提出的要求為:a)視頻編碼壓縮率高;b)信道傳輸容錯性好;c)算法簡單。
問題的實質是根據應用需求在三個特征之間找出一個理想的折中點,在帶寬有效性、傳輸可靠性、終端的處理能力上進行平衡。
1MPEG-4標準及實時傳輸協議(RTP)
MPEG-4[1]是一個具有高壓縮比的音視頻編解碼標準,適用于甚低比特率的應用;且通過采用重同步、頭部擴展碼、數據分塊、可逆VLC編碼、自適應幀內更新等幾種差錯恢復工具來提高碼流的魯棒性;在高誤碼信道中接收端也能夠恢復出高質量的視頻圖像。更重要的是MPEG-4技術成熟,易于在各種智能終端采用的嵌入式操作系統和CPU上進行軟件實現和優化。
在simple visual profile中,MPEG-4碼流包含一個視頻對象(video object,VO)和一個視頻對象層(video object layer,VOL)。VOL由多個視頻對象平面(video object plane,VOP)組成,每個VOP起始于一個開始標志符STC。當差錯恢復工具中的數據分塊被啟用時,MPEG-4編碼每隔一定的字位長度,要在碼流中插入重同步標志符(resync marker)。兩個重同步標志符之間的部分稱為視頻包(video packet,VP),各視頻包相互獨立。在視頻包中,對于I幀,AC系數和DC系數分開存放;對于P幀,則是運動矢量數據和紋理數據分開存放。本文主要考慮P幀的情況,每個視頻包如圖1所示。
其中:macroblock_number、quant_scale、HEC三個部分組成VP頭部,motion marker標志符分割開運動矢量數據和紋理數據。運動矢量數據對于圖像重建起到的作用要大于紋理數據,即使紋理數據由于出現錯誤而被棄用,利用正確接收的運動矢量數據,從參考幀中找到當前運動矢量指向的宏塊,使用其紋理數據來替代,仍能恢復出一定質量的圖像。
實時傳輸協議(RTP)[2]提供基于組播或單播網絡的實時數據傳輸,并提供時序重組、幀丟失檢測等多種服務。它依靠實時傳輸控制協議(RTCP)監控數據傳輸質量,進行自適應調整。相比于其他特定媒體RTP載荷格式,如H.261和MPEG-1/2,MPEG-4已經為修復損壞的頭部提供了錯誤恢復功能,所以不需要在MPEG-4視頻RTP載荷格式中定義額外的頭部,在打包時直接將MPEG-4視頻流映射到RTP包中[3]。將若干VP放入一個RTP包中的結構如圖2所示。
2方案設計
經過壓縮的視頻碼流對誤碼更加敏感,在高誤碼率的無線信道下傳輸,如果不進行任何誤碼保護,信道丟包會嚴重影響圖像的重建質量;而如果對所有的輸出視頻碼流都采取糾錯能力強的抗誤碼措施,則將增大冗余數據量,降低信道編碼的效率,占用信源的帶寬,而且將加大終端解碼的計算難度。
視頻編碼流中不同部分的數據對視頻信息解碼所起到的作用不盡相同。為節省帶寬和計算資源,可根據各部分數據的重要性的不同而采取不同的誤碼保護措施,即為非等重誤碼保護(unequal error protection,UEP)。因此,可以利用MPEG-4碼流中各部分的數據對于圖像重建的重要性的不同,在碼流傳輸時結合網絡狀態信息對視頻壓縮碼流采取靈活的誤碼保護措施。本文提出一種非等重誤碼保護方案,對不同類型的數據采取不同的保護方法,結合相應的誤碼掩蓋措施,在保證圖像基本的重建質量的前提下,減少冗余數據,提高帶寬利用率。
使用IP/UDP/RTP協議棧傳輸MPEG-4視頻流時,通常在發送端視頻編碼完成后,對生成的MPEG-4碼流按照文獻[3]的建議打包到RTP包中傳輸。本文在這個過程中,先將P幀的紋理數據從MPEG-4編碼碼流中提取出來,再使用不同的RTP包分別傳輸紋理數據和其他類型的數據。
根據所包含的數據類型將RTP包分為兩類:
a)A類RTP包,即包含I幀數據、各種頭部數據(VOP頭和VP頭)、運動信息數據。
b)B類RTP包,即包含P幀的紋理數據。
RTP包頭部各字段的計算方法與文獻[2]保持一致。而接收端要識別每個RTP包的類別,因此要在RTP數據包載荷的首字節中標志出來。載荷的首字節(payload first byte)含有特定的標志位,用來描述RTP數據包的類型。標志位定義如圖3所示。
如果A類RTP包丟失,即使對應的B類RTP包正確接收,也將丟棄不用;如果僅丟失B類RTP包,則根據正確接收的運動信息數據,使用參考幀中相應的宏塊的紋理數據替換,進行誤碼掩蓋。A類RTP包的載荷與文獻[3]中的建議相比缺少VP的紋理數據; B類RTP包的載荷除了包含紋理數據外,還要包含其所歸屬的VP的頭部數據,以此來對這些紋理數據進行描述,如圖4所示。
基本的信道誤碼糾錯技術一般分為自動請求重發(ARQ)和前向糾錯(FEC)兩種。ARQ的優點是算法簡單,但需要反饋信道且存在一定的延時,所以不適合實時應用的環境。相比之下FEC不需反饋信道,實時性較好。
在信道編碼過程中,對A類RTP數據包使用FEC進行誤碼保護,增強其對無線網絡丟包的魯棒性;對B類RTP數據包直接傳輸,不采取保護措施,提高編碼效率。在接收端,由IP/UDP/RTP協議棧產生按照RTP包頭中序列號重新排序的RTP數據流后,提取出載荷數據,依據VP頭信息重組MPEG-4碼流,然后將其送入MPEG-4解碼器實現解碼。如果數據丟失則啟用相應的誤碼掩蓋方案,對丟失的紋理數據進行標記,根據運動信息數據和宏塊信息取參考幀中的相應宏塊的紋理數據替代。
方案雖然在提高無線信道下傳輸魯棒性的同時控制了冗余數據的數量,但這種保護模式由于需要分別打包,不可避免地增加了一些額外的開銷。對屬于同一VP的編碼數據來說,正常的非保護模式情況下只輸出一個RTP包,采取了保護模式之后編碼數據將分配到兩個RTP包中傳輸,從而增加了打包開銷,降低了編碼器的編碼效率。為解決這一問題,在編碼效率和視頻流對信道誤碼的魯棒性之間獲得一種平衡,本文結合當前信道狀態信息選擇是否采用保護模式。將丟包率p納入到模式的選擇中,根據接收端通過RTCP返回的丟包率,在輸出編碼碼流封裝打包時靈活地選擇不同的打包方式。
在丟包率p=0時,不采取數據分塊的保護模式,MPEG-4碼流完全按照文獻[3]的建議放入RTP載荷中傳輸。
在丟包率p>0時,采取保護模式,使用非等重保護方案,提高誤碼信道中壓縮視頻流對誤碼的魯棒性。
3實驗結果
本文使用QCIF格式的foreman序列進行實驗測試,共150 f。幀速率為15 fps,比特率為100 kbps,每50個P_VOP插入一個I_VOP,不使用B幀。FEC編碼使用RS碼。智能終端采用HP iPaq H5550,CPU為400 MHz的Xscale,內存為128 MB。
在丟包率小于等于10%時,丟失的數據包基本都可以得到恢復,UEP方案依據接收的運動信息,可對丟失的紋理數據進行相應的誤碼隱藏。相比于無任何保護的方案,圖像質量得到很大的提高,最高可獲得12.45 dB的增益,輸出比特數只增加了3.2k bit;而全保護方案由于紋理數據的丟失也能得到恢復,能獲得15.59 dB的增益,但付出的代價是輸出比特數要增加15.35k bit。由此可見,本文的UEP方案只需付出較小的代價即可獲得較大的增益,可以很好地滿足無線視頻傳輸系統的要求。
4結束語
針對無線信道視頻傳輸的特點,本文提出一種基于MPEG-4的非等重誤碼保護方案,對MPEG-4碼流中各類數據采取不同的保護力度,重點保護運動數據提高其誤碼魯棒性,并結合信道狀態信息如信道丟包率等,自適應選擇輸出視頻流的保護模式。系統在提高容錯性的基礎上,兼顧了編解碼效率和計算復雜度,經實驗測試,效果良好。
參考文獻:
[1]ISO/IEC 14496-2,Information technology-coding of audio-visual objects:visual
[S].1998.
[2]RFC 1889,RTP:a transport protocol for real-time applications[S].1996.
[3]RFC 3016,RTP payload format for MPEG-4 audio/visual streams[S].2000.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”