視頻通信中H.264在互聯(lián)網抗誤碼問題中的應用
隨著寬帶網絡的發(fā)展,基于IP的視頻應用得到了越來越多的關注。基于IP的視頻應用,必須解決吞吐量,傳輸時延,時延抖動,誤碼率等四個QoS問題。但是,由于視頻應用中大多采用了高壓縮率的編碼技術,其對傳輸誤碼的要求尤為苛刻,而Internet的本質是盡力而為的網絡,不提供傳輸?shù)腝oS保證,因此提高視頻應用對傳輸誤碼的抗干擾和恢復能力一直是多媒體通信領域的研究熱點。
視頻通信系統(tǒng)通常由五部分組成:視頻源編碼、復用/包封裝/信道編碼、信道傳輸、解復用/解包/信道解碼和視頻解碼。
視頻通信中的錯誤恢復由于以下原因顯得尤為重要:(1)由于在源編碼器中采用了空間和時間預測編碼以及可變長編碼(VLC),壓縮的視頻流對傳輸中的錯誤特別敏感;?(2)視頻源和網絡環(huán)境通常是時變的,因此基于某些統(tǒng)計模型設計出一個“優(yōu)化”的解決方案是很困難的,甚至是不可能的;?(3)視頻源碼率通常很高,對于某些實時應用而言,編解碼器不可能過于復雜。
傳統(tǒng)上,抗誤碼的機制分為三類:在編碼器和信道編碼中引入冗余,使編碼流對傳輸錯誤具有更強的抗干擾能力;解碼器根據(jù)錯誤檢測的結果對錯誤進行隱藏;通過編碼器、傳輸信道和解碼器之間進行交互,編碼器根據(jù)檢測到的錯誤信息調整自身的操作。后面講針對錯誤恢復技術進行探討。
編碼器中的錯誤恢復編碼錯誤恢復編碼的設計旨在于使用最小的冗余來獲得錯誤恢復的最大增益。有很多方法用于添加冗余比特,一些有益于防止錯誤擴散,另一些用于協(xié)助解碼器通過錯誤監(jiān)測更好地進行錯誤隱藏,還有一些目標在于保證基本級別的視頻質量,以保證發(fā)生傳輸錯誤時圖像質量不會極度惡化。?編碼流對傳輸錯誤敏感的一個主要原因就是使用了時間預測和空間預測。一旦有誤碼發(fā)生,在解碼器上重構的幀將會與原圖像有較大差別,這樣會導致使用這一幀作為參考幀的后續(xù)幀重構時產生錯誤。
阻止時域錯誤擴散的一個方法是周期的插入幀內編碼的幀或宏塊,對于實時應用,使用足夠數(shù)量的幀內編碼的宏塊是一個有效的錯誤恢復工具。對于幀內編碼宏塊的數(shù)量和位置的確定,目前所知最好的方法是使用基于丟包率的率失真優(yōu)化方案。另一個限制錯誤擴散的方法就是將數(shù)據(jù)分成多個段,僅在同一段內部進行時間和空間預測,即獨立的段預測。?分層編碼(LC)是指將視頻編碼成一個基本層和一個或多個加強層?;緦犹峁┝艘粋€較低的但可接受的質量,每個附加的加強層逐步地提高質量。
H.264中的網絡適配層設計和新的錯誤恢復技術H.264 是由MPEG和ITU組成的聯(lián)合視頻專家組JVT推出的。H.264包含了 VCL(視頻編碼層)和NAL(網絡抽象層)。VCL包括核心壓縮引擎和塊/宏塊/片的語法級別定義,它被設計成盡可能地獨立于網絡。NAL將VCL產生的比特字符串適配到各種各樣的網絡和多元環(huán)境中,它覆蓋了所有片級以上的語法級別,并包含了以下機制:包含對每個片解碼時所需要的參數(shù)數(shù)據(jù);防止了起始碼沖突; 對附加增強信息(SEI)的支持;將編碼片的比特字符串在基于比特流的網絡上進行傳送的實現(xiàn)框架。
將NAL 與VCL分離的主要目的有兩個。首先,建議中定義了一個VCL信號處理與NAL傳輸?shù)?u>接口,這樣就允許VCL和NAL工作在完全不同的處理器平臺上。其次,VCL和NAL都被設計成適應于異質傳輸環(huán)境,網關不需要因為網絡環(huán)境不同而對VCL比特流進行重構和重編碼。由于在IP網絡環(huán)境中,絕大部分視頻應用所采用的網絡協(xié)議層次是RTP/UDP/IP,因此在以下描述中主要基于這個傳輸框架。下面首先對H.264中新增的三個錯誤恢復工具進行功能分析,然后分析NAL層的基本處理單元NALU以及它的RTP封裝、聚合和拆分的方法。
H.264中的錯誤恢復工具H.264 包括了大量的錯誤恢復工具,其中幀內編碼模式的內插、RPS和數(shù)據(jù)分割等工具,已應用于以前的視頻壓縮方案中,故只介紹H.264對它們的改進,但有些工具是全新的或者是用一種創(chuàng)新的方法實現(xiàn)的,如參數(shù)集、靈活宏塊排序(FMO)、冗余分片(RS),下面將作詳細的分析。?H.264 對幀內編碼模式內插的改進主要體現(xiàn)在,對何時使用、使用哪種級別、使用多少數(shù)量、在什么位置使用等問題的確定上。H.264使用RDO(率失真優(yōu)化)的方法確定上述要素,經實驗驗證,這種方法取得了很好的效果。
? ? ? ?對于RPS,H.264的可選擇范圍更廣,并可以使用前向或后向的參考幀,且數(shù)量可多達15幀。?在H.264 中,使用了三種不同類型的數(shù)據(jù)分割:(1)幀頭信息,包括宏塊類型、量化參數(shù)和運動矢量,這種分割類型最重要,叫A型分割;(2)幀內分割,又稱B型分割,包括幀內編碼塊模式和幀內系數(shù),該型數(shù)據(jù)分割要求給定分片的A型分割有效,相對于幀間信息,幀內信息能更好地阻止漂移效應,因此它比幀間分割更為重要;(3)幀間分割,即C型分割,它僅包括幀間編碼塊模式和幀間系數(shù),一般情況下它是編碼分片的最大分區(qū),幀間分割是最不重要的,它同樣要求給定分片的A 型分割有效。