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