1、分層設(shè)計
H.264的算法在概念上可以分為兩層:視頻編碼層(VCL:Video Coding Layer)負(fù)責(zé)高效的視頻內(nèi)容表示,網(wǎng)絡(luò)提取層(NAL:Network Abstraction Layer)負(fù)責(zé)以網(wǎng)絡(luò)所要求的恰當(dāng)?shù)姆绞綄?shù)據(jù)進(jìn)行打包和傳送。在VCL和NAL之間定義了一個基于分組方式的接口,打包和相應(yīng)的信令屬于NAL的一部分。這樣,高編碼效率和網(wǎng)絡(luò)友好性的任務(wù)分別由VCL和NAL來完成。
VCL層包括基于塊的運(yùn)動補(bǔ)償混合編碼和一些新特性。與前面的視頻編碼標(biāo)準(zhǔn)一樣,H.264沒有把前處理和后處理等功能包括在草案中,這樣可以增加標(biāo)準(zhǔn)的靈活性。
NAL負(fù)責(zé)使用下層網(wǎng)絡(luò)的分段格式來封裝數(shù)據(jù),包括組幀、邏輯信道的信令、定時信息的利用或序列結(jié)束信號等。例如,NAL支持視頻在電路交換信道上的傳輸格式,支持視頻在Internet上利用RTP/UDP/IP傳輸?shù)母袷健AL包括自己的頭部信息、段結(jié)構(gòu)信息和實際載荷信息,即上層的VCL數(shù)據(jù)。(如果采用數(shù)據(jù)分割技術(shù),數(shù)據(jù)可能由幾個部分組成)。
2、高精度、多模式運(yùn)動估計
H.264支持1/4或1/8像素精度的運(yùn)動矢量。在1/4像素精度時可使用6抽頭濾波器來減少高頻噪聲,對于1/8像素精度的運(yùn)動矢量,可使用更為復(fù)雜的8抽頭的濾波器。在進(jìn)行運(yùn)動估計時,編碼器還可選擇"增強(qiáng)"內(nèi)插濾波器來提高預(yù)測的效果。
在H.264的運(yùn)動預(yù)測中,一個宏塊(MB)可以按圖2被分為不同的子塊,形成7種不同模式的塊尺寸。這種多模式的靈活和細(xì)致的劃分,更切合圖像中實際運(yùn)動物體的形狀,大大提高了運(yùn)動估計的精確程度。在這種方式下,在每個宏塊中可以包含有1、2、4、8或16個運(yùn)動矢量。
在H.264中,允許編碼器使用多于一幀的先前幀用于運(yùn)動估計,這就是所謂的多幀參考技術(shù)。例如2幀或3幀剛剛編碼好的參考幀,編碼器將選擇對每個目標(biāo)宏塊能給出更好的預(yù)測幀,并為每一宏塊指示是哪一幀被用于預(yù)測。
3、4×4塊的整數(shù)變換