H.264學習筆記——基本概念

luckylan發表於2024-05-06

1.基本概念

frame:幀,相當於一幅影像,包含一個亮度矩陣和兩個色度矩陣。

field:場,一幀影像,透過隔行掃描得到奇偶兩場,分別稱為頂場和底場或奇場和偶場。

macroblock/MB:宏塊,H.264中處理(預測、變換、量化)的基本單元,大小16*16個畫素。

slice group:條帶組,每一幀/場影像中,按照光柵掃面的順序,將一幀影像分成多個條帶(slice),而一個條帶又由多個MB/MB對構成

I/P/B 宏塊:I宏塊只能利用所在slice中已編碼的畫素進行幀內預測。P宏塊是利用已編碼的影像的畫素進行幀間預測,屬於前向預測,即參考影像是播放順序中該幀影像之前的影像。B宏塊也是利用已編碼的影像畫素進行幀間預測,屬於雙向預測,即參考影像可以是播放順序前後的影像。

I/P/B條帶:僅包含I宏塊的是I條帶,同時包含I宏塊和P宏塊的是P條帶,同時包含I條帶和B宏塊的是B條帶。

I/P/B幀:I幀只包含I條帶,P幀只包含P條帶,B幀只包含B條帶。

List0/List1:List0是前向參考幀列表,List1是後向參考幀列表。所以P幀預測只用到List0,B幀預測會用到List0和List1。

profile:檔次,所謂檔次就是H.264支援的一組工具集合和特定的應用領域。AVC裡規定了幾種不同的檔次,主要有基本檔次(Baseline profile)、主要檔次(Main profile)和擴充套件檔次(Extended profile)。

  三種檔次共有工具:

    》支援I幀和P幀進行幀內和幀間編碼

    》利用CAVLC(上下文自適應的可變長度編碼)進行熵編碼

    》使用去塊效應濾波

    》zigzag掃描

    》1/4畫素精度的運動估計

    》最小為4x4的三級運動估計分塊

    》4:2:0的YUV抽樣

  基本檔次的特性:

  主要檔次的特性:

    》支援B幀、加權的幀內預測、CABAC(上下文自適應的二進位制算術編碼)

  擴充套件檔次的特性:

    》包括基本檔次的所有特性和B幀、加權的幀內預測

    》支援SP/SI條帶,用於流間切換、拼接和隨機接入

H.264 的主要規格

1、Baseline Profile(BP)

支援 I / P 幀,只支援無交錯(Progressive)和 CAVLC;
一般用於低階或需要額外容錯的應用,比如視訊通話、手機影片等即時通訊領域。

2、Extended Profile(XP)

在 Baseline 的基礎上增加了額外的功能,支援流之間的切換,改進誤碼效能;
支援 I / P / B / SP / SI 幀,只支援無交錯(Progressive)和 CAVLC;
適合於影片流在網路上的傳輸場合,比如影片點播。

3、Main Profile(MP)

提供 I / P / B 幀,支援無交錯(Progressive)和交錯(Interlaced),支援 CAVLC 和 CABAC;
用於主流消費類電子產品規格如低解碼(相對而言)的 MP4、便攜的影片播放器、PSP 和 iPod 等。

4、High Profile(HiP)

最常用的規格,在 Main 的基礎上增加了 8x8 內部預測、自定義量化、無損影片編碼和更多的 YUV 格式(如 4:4:4);
High 4:2:2 Profile(Hi422P);
High 4:4:4 Predictive Profile(Hi444PP);
High 4:2:2 Intra Profile;
High 4:4:4 Intra Profile;
用於廣播及影片碟片儲存(藍光影片),高畫質電視的應用。

相關文章