典型的數字電視系統是在發送端的數字電視節目源(主要由視頻、音頻等數據組成)先經過信源編碼處理.得到壓縮編碼后的視頻、音頻碼流,隨后進行信源編碼,需要輔助數據與控制數據的支持。信道編碼實現檢錯、糾錯功能,以提高數字電視傳輸信號的抗干擾能力,以便之適應信道傳輸特性,再進行載波調制以實現頻譜搬移最后送入傳輸信道。目前數字視頻領域,有兩大制定視頻編碼標準的組織,它們是ITU-T與ISO/IEC。ITU-T制定的標準包括H.261、 H.263、H.264,主要應用于實時視頻通信領域,如會議電視。MPEG系列標準是由ISO/IEC制定的,主要應用于視頻存儲(VCD、DVD)、廣播電視、因特網或無線網上的流媒體等。H.264具有較強的抗誤碼特性,可適應丟包率高、干擾嚴重的無線信道中的視頻傳輸。 1 編碼技術分析 1.1 幀內預測編碼 幀內編碼用來縮減圖像的空間冗余。為了提高H.264幀內編碼的效率,在給定幀中充分利用相鄰宏塊的空間相關性,相鄰的宏塊通常含有相似的屬性。因此,在對一給定宏塊編碼時,首先可以根據周圍的宏塊預測(典型的是根據左上角的宏塊,因為此宏塊已經被編碼處理),然后對預測值與實際值的差值進行編碼,這樣,相對于直接對該幀編碼而言,可以大大減小碼率。如圖1。 1.2 幀間預測編碼 幀間預測編碼利用連續幀中的時間冗余來進行運動估計和補償。H.264的運動補償支持以往的視頻編碼標準中的大部分關鍵特性。 (1)不同大小和形狀的宏塊分割 對每一個16×16像素宏塊的運動補償可以采用不同的大小和形狀。 (2)高精度的亞像素運動補償 在H.263中采用的是半像素精度的運動估計,而在H.264中可以采用1/4或者1/8像素精度的運動估值。在要求相同精度的情況下,H.264使用 1/4或者1/8像素精度的運動估計后的殘差要比H.263采用半像素精度運動估計后的殘差來得小。這樣在相同精度下,H.264在幀間編碼中所需的碼率更小。 (3)多幀預測 H.264提供可選的多幀預測功能,在幀間編碼時,可選5個不同的參考幀,提供了更好的糾錯性能,這樣便可以改善視頻圖像質量。這一特性主要應用于以下場合:周期性的運動、平移運動、在兩個不同的場景之間來回變換攝像機的鏡頭。 (4)去塊濾波器 H.264定義了自適應去除塊效應的濾波器,這可以處理預測環路中的水平和垂直塊邊緣,大大減少了方塊效應。 1.3 熵編碼 視頻編碼處理的最后一步就是熵編碼,在H.264中采用熵編碼方法有三種。第一種是Exp-Golomb碼,它適用于除變換系數之外的所有其他系數。第二種是基于上下文的自適應變長編碼(CAVLC),它適用于變換系數。第三種是基于上下文的自適應二進制算術編碼(CABAC)。CAV-LC與CABAC 根據相鄰塊的情況進行當前塊的編碼,以達到更好的編碼效率。CABAC比CAVLC壓縮數率高,但要復雜一些。 (1)Exp-Golomb碼:最簡單的熵編碼方法是對所有的句法元素,除了量化系數外,使用單一無限可擴展的碼字表,這樣就不必為每個句法元素設計一個專用的VLC表。它適用于除變換系數之外的所有符號,如頭部等句法元素。它是有規則結構的可變長編碼(如表1)。 (2)CAVLC編碼:基于上下文的自適應變長編碼是用來對差值的經zig-zag掃描的4×4(和2×2)塊變換系數進行編碼的方法。CAVLC利用了量化的4×4塊的若干特性:①預測、變換和旦化后的塊一般是稀疏的(包含了很多個0)。CAVLC利用游程編碼來緊湊地代表一長串0。②zig-zag掃描后的最高非零系數常常是+1/-1的序列。③相鄰塊的非零系數數目是相關的。系數的數目用對照表來編碼,對照表的選擇取決于相鄰塊中非零系數數目。④非零系數的幅度在重排數組的開始處比較高(接近DC系數),在高頻處比較低。CAVLC利用這一點根據最近編碼的幅度,適當地選擇幅度參數的VLC對照表。 (3)CABAC方法:算術編碼使編碼和解碼兩邊都能使用所有句法元素(變換系數、運動矢量)的概率模型。為了提高算術編碼的效率,通過內容建模的過程,使基本概率模型能適應隨視頻幀而改變的統計特性。內容建模提供了編碼符號的條件概率估計,利用合適的內容模型,存在于符號間的相關性可以通過選擇目前要編碼符號鄰近的已編碼符號的相應概率模型來去除,不同的句法元素通常保持不同的模型�?芍谏舷挛牡淖赃m應二進制算術編碼算法的基本步驟是:①對每個語法元素,根據其上下文選擇概率模型。②基于局部統計自適應調整概率統計③使用算術編碼。實現方框圖如圖2所示。 上下文概率選擇:根據過去的觀察選擇“上下文概型”。該模型為一個或幾個二進制符號位的概率模型,它可以從有效模型中選擇,它們是根據最近概碼的數據符號的統計得來的。上下文模型儲存每個二進制符號是1或0的概率。二進制化:將非二進制符號(變換系數或運動矢量)轉換成二進制碼。ABAC只處理1和0。 算術編碼引擎:一個算術編碼器所選擇的概率模型對每個位進行編碼。對每個位只有兩個子區間(相當于0和1)概率更新:所選擇的上下文模型根據實際的編碼值加以更新(如位值為“1”,則頻度“1”的概目增值)。 2 H.264在視頻會議中的應用 目前,大多數的視頻會議系統均采用H.261或H.263視頻編碼標準,而H.264的出現,使得在同等速率下,H.264能夠比H.263減小50%的碼率。也就是說,用戶即使是只利用384kbit/s的帶寬,就可以享受H.263下高達768kbit/s的高質量視頻服務。H.264不但有助于節省龐大開支,還可以提高資源的使用效率,同時令達到商業質量的視頻會議服務擁有更多的潛在客戶。 面向IP和無線環境H.264草案中包含了用于差錯消除的工具,便于壓縮視頻在誤碼、丟包多發環境中傳輸,如移動信道或IP信道中傳輸的健壯性。 為了抵御傳輸差錯,H.264視頻流中的時間同步可以通過采用幀內圖像刷新來完成,空間同步由條結構編碼(slicestructured coding)來支持。同時為了便于誤碼以后的再同步,在一幅圖像的視頻數據中還提供了一定的重同步點。另外,幀內宏塊刷新和多參考宏塊允許編碼器在決定宏塊模式的時候不僅可以考慮編碼效率,還可以考慮傳輸信道的特性。除了利用量化步長的改變來適應信道碼率外,在H.264中,還常利用數據分割的方法來應對信道碼率的變化。從總體上說,數據分割的概念就是在編碼器中生成具有不同優先級的視頻數據以支持網絡中的服務質量QoS。例如采用基于語法的數據分割 (syntax-based data partitioning)方法,將每幀數據按其重要性分為幾部分,這樣允許在緩沖區溢出時丟棄不太重要的信息。還可以采用類似的時間數據分割 (temporal data partitioning)方法,通過在P幀和B幀中使用多個參考幀來完成。 在無線通信的應用中,我們可以通過改變每一幀的量化精度或空間/時間分辨率來支持無線信道的比特率變化�?墒�,在多播的情況下,要求編碼器對變化的各種比特率進行響應是不可能的。因此,不同于MPEG-4中采用的精細分級編碼FGS(Fine Granular Scalability)的方法(效率比較低),H.264采用流切換的SP幀來代替分級編碼。 3 結束語 因此視頻會議產品支付H.264協議,研究人員致力于普及H.264這個全新的業界標準。我們必將能體驗H.264視頻服務給我們帶來高品質的享受。 |