H.264幀間預測

H.264幀間預測
與以往的標準一樣,H.264使用運動估計和運動補償來消除時間冗餘,運動估計和運動補償的過程如下:
  1. 當前幀在過去幀的窗口中尋找匹配部分,從中找到運動矢量
  2.  根據運動矢量,將過去幀位移,求得對當前幀的估計
  3. 將這個估計和當前幀相減,求得估計的誤差值
  4. 將運動矢量和估計的誤差值送到接收端去
  5. 解碼端根據收到的運動矢量將過去幀作位移(也就是對當前幀的估計),再加上接收到的誤差值,就是當前幀了
 
H.264標準又具有以下四個特點:
  1. 預測時所用塊的大小可變
 
由於基於塊的運動模型假設塊內的所有像素都做了相同的平移,在運動比較劇烈或者運動物體的邊緣處這一假設會與實際出入較大,從而導致較大的預測誤差,這時減小塊的大小可以使假設在小的塊中依然成立。另外小的塊所造成的塊效應相對也小,所以一般來說小的塊可以提高預測的效果。
爲此,H.264一共採用了7種方式對一個宏塊進行分割,每種方式下塊的大小和形狀都不相同,這就使編碼器可以根據圖像的內容選擇最好的預測模式。與僅使用16×16塊進行預測相比,使用不同大小和形狀的塊可以使碼率節省15%以上。
 
2.更精細的預測精度
 
在H.264中,亮度分量的運動矢量(MV)使用1/4像素精度。色度分量的MV由亮度MV導出,由於色度分辨率是亮度的一半(對4:2:0),所以其MV精度將爲1/8,這也就是說1個單位的色度 MV所代表的位移僅爲色度分量取樣點間距離的1/8。如此精細的預測精度較之整數精度可以使碼率節省超過20%。
 
3.多參考幀
 
H.264支持多參考幀預測(multiple reference frames),即可以有多於一個(最多5個)的在當前幀之前解碼的幀可以作爲參考幀產生對當前幀的預測(motion-compensated prediction)。這適用於視頻序列中含有週期性運動的情況。採用這一技術,可以改善運動估計(ME)的性能,提高H.264解碼器的錯誤恢復能力,但同時也增加了緩存的容量以及編解碼器的複雜性。
 
4.去塊效應濾波器
 
去塊效應濾波器(Deblocking Filter),它的作用是消除經反量化和反變換後重建圖像中由於預測誤差產生的塊效應,即塊邊緣處的像素值跳變,從而一來改善圖像的主觀質量,二來減少預測誤差。H.264中的Deblocking Filter還能夠根據圖像內容做出判斷,只對由於塊效應產生的像素值跳變進行平滑,而對圖像中物體邊緣處的像素值不連續給予保留,以免造成邊緣模糊。與以往的Deblocking Filter不同的是,經過濾波後的圖像將根據需要放在緩存中用於幀間預測,而不是僅僅在輸出重建圖像時用來改善主觀質量,也就是說該濾波器位於解碼環中而非解碼環的輸出外,因而它又稱作Loop Filter。需要注意的是,對於幀內預測,使用的是未經過濾波的重建圖像。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章