在極低碼率(32-128Kbps)的情況下,H.264與MPEG-4相比具有性能倍增效應(yīng),即:相同碼率的H.26L媒體流和MPEG-4媒體流相比,H.26L擁有大約3個分貝的增益(畫質(zhì)水平倍增)。32Kbps的H.26L媒體流,其信躁比與128K的MPEG-4媒體流相近。即在同樣的畫面質(zhì)量下,H.264的碼率僅僅為MPEG-4的四分之一。
H.264/AVC核心技術(shù)概覽
這個新的標(biāo)準(zhǔn)是由下面幾個處理步驟組成的:
幀間和幀內(nèi)預(yù)測
變換(和反變換)
量化(和反量化)
環(huán)路濾波
熵編碼
單張的圖片流組成了視頻,它能分成16X16像素的"宏塊",這種分塊方法簡化了在視頻壓縮算法中每個步驟的處理過程。舉例來說,從標(biāo)準(zhǔn)清晰度標(biāo)準(zhǔn)視頻流解決方案(720X480)中截取的一幅圖片被分成1350(45X30)個宏塊,然后在宏塊的層次進(jìn)行進(jìn)一步的處理。
幀間預(yù)測
改良的運動估計。運動估計用來確定和消除存在于視頻流中不同圖片之間的時間冗余。當(dāng)運動估計搜索是根據(jù)過去方向的圖片,那么被編碼的圖片稱為"P幀圖片",當(dāng)搜索是根據(jù)過去和將來兩種方向的圖片,那么被編碼的圖片被稱為"B幀圖片"。
為了提高編碼效率,為了包含和分離在"H.264運動估計-改良的運動估計"圖中的運動宏塊,宏塊被拆分成更小的塊。然后,以前或?qū)淼膱D片的運動矢量被用來預(yù)測一個給定的塊。H.264/MPEG-4AVC發(fā)明了一種更小的塊,它具有更好的靈活性,在運動矢量方面可以有更高的預(yù)測精度。
H.264運動估計-改良的運動估計
幀內(nèi)預(yù)測
不能運用運動估計的地方,就采用幀內(nèi)估計用來消除空間冗余。內(nèi)部估計通過在一個預(yù)定義好的集合中不同方向上的鄰近塊推測相鄰像素來預(yù)測當(dāng)前塊。然后預(yù)測塊和真實塊之間的不同點被編碼。這種方法是H.264/MPEG-4AVC所特有的,尤其對于經(jīng)常存在空間冗余的平坦背景特別有用。一個例子就是下邊展示的"H.264內(nèi)部估計"。
H.264內(nèi)部估計
變換
運動估計和內(nèi)部估計后的結(jié)果通過變換被從空間域轉(zhuǎn)換到頻率域。H.264/MPEG-4AVC使用整數(shù)DCT4X4變換。而MPEG-2和MPEG-4使用浮點DCT8X8變換。更小塊的H.264/MPEG-4AVC減少了塊效應(yīng)和明顯的人工痕跡。整數(shù)系數(shù)消除了在MPEG-2和MPEG-4中進(jìn)行浮點系數(shù)
運算時導(dǎo)致的精度損失。
H.264變換
量化
變換后的系數(shù)被量化,減少了整數(shù)系數(shù)的預(yù)測量和消除了不容易被感知高頻系數(shù)。這個步驟也用來控制輸出的比特率維持在一個基本恒定的常量。
H.264量化/碼率控制
環(huán)路濾波
H.264/MPEG-4AVC標(biāo)準(zhǔn)定義了一個對16X16宏塊和4X4塊邊界的解塊過濾過程。在宏塊這種情況下,過濾的目的是消除由于相鄰宏塊有不同的運動估計類型(比如運動估計和內(nèi)部估計)或者不同的量化參數(shù)導(dǎo)致的人工痕跡。在塊邊界
這種情況下,過濾的目的是消除可能由于變換/量化和來自于相鄰塊運動矢量的差別引起的人工痕跡。環(huán)路濾波通過一個內(nèi)容自適應(yīng)的非線性算法修改在宏塊/塊邊界的同一邊的兩個像素。
熵編碼
在熵編碼之前,4X4的量化系數(shù)必須被重排序。根據(jù)這些系數(shù)原來采用的預(yù)測算法為運動估計或者內(nèi)部估計的不同來選擇不同的掃描類型創(chuàng)建一個重排序的串行化流。掃描類型按照從低頻到高頻的順序排序這些系數(shù)。既然高頻系數(shù)大多數(shù)趨向于零,那么利用游程編碼就可以縮減零的數(shù)目,從而高效的達(dá)到熵編碼的目的。
H.264熵編碼-系數(shù)的串行化
在熵編碼步驟通過映射符號的字節(jié)流來表示運動矢量,量化系數(shù)和宏塊頭。熵編碼通過設(shè)計用一個較少的比特位數(shù)來表示頻繁使用的符號,比較多的比特位數(shù)來表示不經(jīng)常使用的符號。
更多相關(guān): AV集成
©版權(quán)所有。未經(jīng)許可,不得轉(zhuǎn)載。