王俊生
1引言
H.264標準是由運動圖像專家組MPEG和ITU下屬的視頻編碼專家組VCEG聯合制定的新一代低比特率視頻壓縮編碼標準。與以往的標準相比,它采用了更多的先進技術,使得在同樣的碼率下運用H.264標準編碼可以獲得更好的主客觀質量。但同時,由于H.264新標準的高效率壓縮編碼,壓縮視頻流在傳輸過程中對信道誤碼也更敏感,即使單個突發性錯誤,也可能嚴重干擾接收端的正常解碼,造成恢復視頻質量的急劇下降。為此,H.264新標準采用了多種用于增強壓縮視頻流抗誤碼能力的編碼技術,以保證恢復視頻流的質量,本文對此進行歸納研究。
2H.264視頻編解碼標準中抗誤碼技術的應用同其他視頻編解碼標準H.263、MPEG-2和MPEG-4一樣,H.264標準也是通過多種抗誤碼技術的聯合應用來增強視頻流在誤碼、丟包多發環境(如無線和IP信道)中傳輸的魯棒性。與H.263標準相比,H.264新標準中所采用的抗誤碼技術可分為3類,一類是H.264直接采用的舊標準中效率高、技術成熟的抗誤碼技術,如圖像分割、參考圖像選擇等技術;第二類是經過改進在H.264標準中得到更好應用的抗誤碼技術,如幀內編碼、數據分割;第三類就是基于H.264標準的全新的視頻壓縮抗誤碼技術。在H.264中主要使用了3種新的抗誤碼技術:參數集、靈活的宏塊排列次序(FMO)和冗余片技術。
第一類抗誤碼技術在很多現有文獻中都有較詳細的描述,這里不再介紹,本文僅對上面提及的后兩類抗誤碼技術加以討論。
2.1幀內編碼
基于宏塊、片(slice)或圖像的幀內編碼主要用于克服由于誤碼所導致的參考圖像漂移對當前幀的影響,這種抗誤碼技術在標準H.263中就得到了很好的應用,但在H.264中,幀內編碼技術又被賦予了兩種新的特性。
。1)幀內預測
H.264允許幀內宏塊預測,甚至可以利用經預測編碼后的痔匭浴T贖.264中利用限制幀內預測編碼標志(Constrained Intra Prediction Flag)來標識是否采用了幀內宏塊預測,當限制幀內預測編碼標志被設置時,表明不采用這種方式的預測,并恢復幀內信息的重同步特性。在參考文獻[3]中詳細討論的一個無線環境下的有損率失真優化編碼器測試模型中,就通過設置限制幀內預測編碼標志取得了較好的效果。
。2)幀內編碼片和IDR片
對幀內編碼,新標準H.264中還采用了兩種類型的、僅包含幀內編碼宏塊的片:幀內編碼片和IDR(Instantaneous Decoder Refresh)片。其中,IDR片僅用于構成一個完整的IDR圖像,也就是IDR圖像中的所有片必須是IDR片,一個IDR片只能作為IDR圖像的一部分。在解碼器端,當解碼完一幅IDR圖像后,解碼器立即將所有的參考圖像標識為“未用作參考”。這樣,后續圖像被解碼時,肢不參考該IDR圖像前面的任何圖像。每個視頻序列的第一幅圖像一定是IDR圖像。與僅包含幀內編碼片的圖像相比,IDR圖像具有更強的重同步特性。需要注意的是,由于H.264采用了多參考肘碼時所參考的圖像早于此幀內編碼圖像時,則即使此幀內編碼圖像和所有后續圖像都是無誤碼傳輸的,也無法消除誤碼擴散所導致的圖像漂移。
2.2數據分割
數據分割是一種高效的抗誤碼技術。通常情況下,一個宏塊中的所有碼元被編碼組織在單個的比特串中用于構成片。而數據分割則為每個片生成多個比特串,即多個數據分塊,并將片中彼此之間語義相近并有緊密聯系的碼元組織在一個獨立的數據分塊中。針對信息的重要程度,對不同的數據分塊采用不等的保護措施,保證了恢復視頻的質量。
在H.264中,共使用了3種不同類型的數據分塊:頭信息、幀內數據分塊與?
。1)頭信息
頭信息中包含了本宏塊的類型、量化參數和運動矢量。這個數據分塊是最重要的,如果它丟失,即使別的數據分塊被正確接收到也將不可用,因此在分割重組后,頭信息被賦予了最大程度的保護。此數據分塊類型在H.264中稱為A類分塊。
。2)幀內數據分塊
幀內數據分塊也稱為B類分塊,它承載幀內CBPs和幀內系數。B類分塊需要相應片的A類分塊可用。與囑包含肘碼器間的同步,相應地,值謀;ちΧ紉滄釙帷A磽,謸]械盇類分塊可用時C類分塊才可用,但并不需B類分塊可用。
當使用數據分割時,信源編碼器將不同類型的碼元放入3個不同的比特緩存器中,以生成3種類型的數據分塊。同時,調整片的大小,以保證打包最大的數據分塊時所生成的包小于MTU(maximum transfer unit)的允許值。也正是出于這個原因,在H.264中是由信源編碼器來執行數據分割而不是NAL。
在解碼器中,所有的數據分塊都應能有效地用于圖像重構。特別地,如果僅僅是幀內或囑僅是內容信息丟失而已,可以利用先前解碼幀很好地進行掩蓋。
2.3參數集
參數集通常應用在所有的H.264比特流中,它所包含的信息極其重要,它的受損將影響到大量的VCL和NAL單元,被影響的單元即使能正確接收到也不能被正確解碼,在H.264新標準中共使用了兩種類型的參數集。
(1)序列參數集,包括與圖像序列(定義為兩個IDR圖像間的所有圖像)有關的所有信息,應用于已編碼視頻序列。
。2)圖像參數集,包含所有屬于該圖像的片的相關信息,用于解碼已編碼視頻序列中的1個或多個獨立的圖像。
多個不同序列和圖像的參數集被解碼器正確接收后,存儲于不同的已編號位置,通過參考每個已編碼片片頭的存儲位置,編碼器選擇使用恰當的圖像參數集,圖像參數集中包含1個要使用和參考的序列參數集。
參數集的靈活使用大大增強了編解碼器的抗誤碼能力。在有誤碼傾向環境下,使用參數集的關鍵是,在相應的VCL與NAL單元到達解碼器時,確保參數集已可靠及時地到達解碼器。最常用的手段就是重復發送,來提高數據可靠到達的機率。這種情況下典型的應用是參數集的傳送與VCL NAL共用1個信道。另外,參數集也可以單獨使用更可靠的傳輸機制在帶外發送。
由于采用了可靠的傳輸機制和性能更好的信道,參數集能被及時可靠地送達解碼器端,保證了相應VCL與NAL單元的正確解碼。但是,這種方式需要額外的1個信道,以及可靠的傳輸機制,如果條件許可時,應用這種傳輸方式能增強編解碼器的抗誤碼能力,但限于網絡資源的現狀,實際應用中更多的是采用第一種方式來傳輸參數集。
2.4靈活的宏塊排列次序
靈活的宏塊排列次序(FMO)允許以不同于圖像掃描順序的組織方式將宏塊分配給各片,在這種方式中,每個宏塊按照宏塊配置圖固定地分配給一個片,片中的宏塊按照掃描順序被編碼,每個片單獨傳輸。若某個片在傳輸過程中丟失,可以利用其他被正確接收、包含與丟失片中宏塊相鄰宏塊的片來進行有效的誤碼掩蓋。由于在解碼器中各個片被獨立解碼,從而有效地抑制了錯誤的蔓延,提高了解碼的容錯力。假定圖像足夠小剛好分為兩個片,此圖像中的所有宏塊被配置給片0或片1,其中白色的宏塊屬于片0,而灰色的宏塊屬于片1。假如在傳輸中,包含片1信息的包丟失,由于丟失片1中的每個宏塊與另一個片0中的宏塊在空間上分散相鄰,片0中包含大量與片1中宏塊相關的信息,利用它就可以對丟失片進行有效的誤碼掩蓋。試驗表明,在視頻會議應用中,CIF大小的圖像,即便丟失率達10%,使用FMO后重構視頻的視覺效果也只有專家才能確認它是經過有損傳輸后的重構視頻。使用FMO的代價是它帶來的較低的編碼效率(因為它破壞了圖像內相鄰宏塊間的預測機制),并且,在高優化環境下,由于預測的難度較大,帶來大的時延。FMO有多種模式,從矩形模式到規則的散布模式或完全隨機的散布模式。
2.5冗余片
冗余片技術,簡單地講就是,在同一個比特流中,編碼器除了將片自身中已編碼的宏塊放置其中外,同一宏塊的1個或多個冗余的表示也同時被放置其中,通過利用宏塊的1個或多個冗余表示來克服誤碼造成的不可用片對重構圖像的影響。這種技術與基于冗余的傳輸如包復制有著本質的區別。在包復制冗余傳輸中,被復制的包和復制包一模一樣,而在冗余片技術的使用中,冗余片使用不同的編碼參數來編碼,從而形成對同一宏塊的不同表示。例如,主冗余片可以使用較小的QP來量化編碼,因此具有較好的重構圖像質量。次要的冗余片可以使用一個較大的QP來量化編碼,因而使用較少的比特數,重構質量較粗糙。在解碼器中重構圖像時,如果主冗余片可用,則僅使用主冗余片而丟棄其余的冗余片。只有當主冗余片在傳輸的過程中丟失或由于誤碼等原因而不可用時,其余的冗余片才用于重構圖像。這種對主次冗余片不同編碼參數的運用,使得冗余片技術在花銷最少比特數的情況下,最大限度地保證了重構圖像的質量,尤其是在有誤碼傾向的移動信道或IP信道環境下,采用冗余片技術可顯著提高重構圖像的主客觀質量。
3結束語
H.264是ITU-T和MPEG聯合制定的新一代低比特率視頻壓縮編碼標準,其中包含了豐富的抗誤碼技術,為壓縮視頻流在資源有限的不可靠網絡上實時、高效的傳輸提供了保證。針對新標準抗誤碼技術的分析和研究可以更好地利用這些技術提高端到端通信的質量,對今后無線和IP視頻通信產品的研制與開發有著極其重要的作用和意義。