H.264/AVC的重要技術進展
NGN及3G、3G演進和NGBW發展的一個主要目標即為包括視頻在內的多媒體應用。對此,H.264/AVC定義了3種視頻服務類型,即會話型服務(如可視電話、視頻會議等)、現場或先期錄制的視頻流型服務和多媒體消息類服務MMS。
為適應NGN IP網絡及帶寬資源有限的時變型移動/無線信道的傳輸需要,H.264/AVC無論從網絡層匹配自適應能力、提高源壓縮編碼效率及信道抗干擾能力等方面均進行了較精心的設計,有較大幅度的性能增強與改進。
1.1 視頻編譯碼結構的分層設計
視頻編譯碼結構從功能和算法上分為兩層設計,即視頻編碼層(VCL)及網絡適配層(NAL)。VCL負責高效率視頻編碼壓縮;NAL負責網絡的適配,即提供對不同網絡性能匹配的自適應處理能力,它針對下層網絡的特性對數據進行封裝,包括成幀、發送相應信號給邏輯信道、利用同步信息進行處理等。NAL從VCL獲得數據信息,包括頭信息、段結構信息及實際凈荷信息,進而將它們映射到下層的各傳輸協議上。這些協議諸如H.320、H.323、H.324、MPEG-2等。NAL單元按RTP序列號順序傳送,序列號設置可發現丟失的是哪一個VCL單元,即使基本編碼圖像丟失,借助冗余編碼圖像,仍可獲得較“粗糙”的圖像恢復。同時,借助圖像的片(Slice)、片組、宏塊(MB)結構及黑白宏塊非掃描順序的靈活宏塊順序(FMO),安排與切換P幀(SP)、切換I幀(SI)的流切換、流拼接、隨機接入與差錯恢復等,都有利于提高其誤碼掩蓋及抗干擾能力,并有助于壓縮效率的提高。NAL層的引入,大大提高了H.264/AVC對不同網絡及復雜信道的適應能力。
1.2 高效率視頻編碼設計
1.2.1 統一的可變長度編碼(UVLC)碼表
以往標準的熵編碼通常采用變長度的哈夫曼編碼,其碼表不統一,不能適應變化多端的視頻內容,從而影響編碼效率的提高。在此,即對H.263不同系數采用不同碼表進行VLC作了改進,采用了一個統一碼表的UVLC,同時,又對H.26L中的VCL方法進行了改進,使量化后的DCT變換系數使用基于內容的自適應可變長度編碼(CAVLC),此外還定義了一種基于上下文內容的自適應二進制算術編碼(CABAC),其性能比CAVLC更好,當然計算更復雜。從而,借助UVLC、CAVLC及CABAC較好地提高了壓縮編碼效率。
1.2.2 自適應幀、場編碼(AFFC)
如眾所知,幀中鄰行空間相關性強,場中鄰行時間相關性較強,從而幀編碼可用于運動性較小圖像編碼,而場編碼可用于運動性較大圖像編碼。按此根據圖像運動狀況選擇編碼模式即構成圖像自適應幀、場編碼(PAFFC),以提高編碼效率。進而,若一幀內包含一些運動快慢不同的區域,還可將此區域劃分為“宏塊對”進行AFFC,此時即稱為宏塊自適應幀、場編碼(MBAFFC)。
1.2.3 4×4塊的整數變換
H.264/AVC中的DCT變換與H.263中的情況不同,它采用的變換單位不是8×8塊,而是4×4塊,且變換是整數操作,而不是實數操作。其優點為:運算速度快、精度高并占用較少內存。整數操作,編譯碼有嚴格的反變換,避免了截取誤差,減少了運動邊緣塊的編碼噪聲。同時,4×4變換比8×8變換產生的方塊效應亦要小。
為進一步利用圖像的空間相關性,在對色度分量預測殘差及16×16幀內預測的預測殘差進行DCT變換后,還對每個4×4變換系數塊中的DC系數組成的2×2和4×4大小的塊進一步做哈達瑪(Hadamard)變換,以更好改善性能。
1.2.4 動目標估值(ME)算法的改進
a) 搜索精度增強:首先,進一步增強了動目標估值的搜索精度,在半像素預測后的生成矩陣基礎上,內插一次擴展至1/4像素精度矢量,在1/4像素基礎上再內插一次,獲得1/8像素更高精度的運動矢量。
b) 宏塊(MB)更精細與多樣化分解:對每一個MB,進行更精細與多樣化分解,此時MB擁有和此類小塊數相對應的運動矢量。這種多模式的靈活細致的分塊劃分,更切合實際動目標形狀,大大提高了動目標估值精度。
c) 多參考幀模式預測:采取多參考幀模式,進行多于一幀的先前幀(最多5幀)動目標估值。此時對某個MB進行動目標估值時,會從過去的2個或3個剛編碼過的參考幀中選一幀作參考,以改善動目標估值性能,提高譯碼器的誤碼恢復能力,取得更好的預測效果。
d) 變尺寸塊運動補償(MC):例如平坦區可取16×16尺寸塊,而細節區可采用8×8甚至4×4等更精細尺寸塊,此時MC預測精度更高、靈活性更好,更符合視頻內容不斷變化的實際情況。
e) 加權預測:H.264/AVC還允許對MC預測信號進行加權預測,可較大幅度改善無線信道衰落之類信道變化時的編碼效率。
f) MC時的環路去方塊濾波:H.264/AVC把去方塊濾波引入MC預測環路中,既可去除方塊效應,又能保護圖像細節邊緣,同時亦改善了圖像的主、客觀評定質量。而且經過濾波后的圖像根據需要放在緩存中用于幀間預測,此濾波器位于譯碼環中而非譯碼環外,從而又稱環路濾波。
1.2.5 幀內方向空間預測
由于單個圖像幀內有較高空間冗余度,在空間域上進行幀內方向空間預測可獲得更高壓縮效率。對亮度預測通常取INTRA-4×4及INTRA-16×16兩種方式,對圖像中較平坦部分采用INTRA-16×16方式,對細化圖像部分用INTRA-4×4塊預測。預測前,應對當前塊相鄰的左、上重構塊進行分類,根據不同分類,選擇不同預測模式。INTRA-4×4共有9種預測模式,INTRA-16×16共有4種預測模式,對色度預測按INTRA-8×8塊進行,亦共有4種預測模式。從而,精細的幀內方向空間預測可有效提高預測質量。
這樣,H.264/AVC的精細數字壓縮編碼技術取得了優良的壓縮效率。測試結果表明:它比H.263++的平均編碼比特率要少48.80%,比MPEG-4 ASP要少38.62%,相對H.263約提高了一倍壓縮效率,很具吸引力。