第二章 H.264/AVC視訊壓縮標準
2.3 視訊壓縮位元串列架構
標準的 MPEG 視訊可分為六個階層,如圖 2.6,由上而下依序為: Sequence、
Group of Pictures (GOP)、Picture、Slice、Macroblock(Sub-Macroblock)以及 Block。
以下就各層的功能作簡單的介紹:
1. Sequence layer
Sequence layer 是 MPEG 架構中最高階的一層,它包含了解碼時所需的參數,
例如:畫面尺寸,畫面播放速率,以及數個連續的 GOP。
2. Group of pictures ( GOP ) layer
GOP 是由一或多張連續畫面構成,每個 GOP 內有三種不同類別的畫面,分 別是 I 畫面(Intra-Coded Picture)、P 畫面(Predictive-Coded Picture)和 B 畫面 (Bidirectionally Predictive-Coded Picture)。通常一個 GOP 包含一張 I 畫面,數張 P 畫面及數張 B 畫面,一個典型的 GOP 樣式為 IBBPBBPBBPBBPBB。I 畫面和 P 畫面又稱為 Anchor Frame,因為它們是用來做向前 (Forward) 或向後(Backward) 估測的基準。根據 MPEG 的定義,兩張最接近的 I 畫面之距離為 N,也就是一個 GOP 的長度;兩張最接近的 Anchor Frame 之距離為 M,即任兩張 Anchor Frame 中間有 M-1 張 B 畫面。參數 N 和 M 的大小可由編碼器或使用者自由選擇,沒有 硬性規定。一般 N 的值被設定為 12 到 15,M 的值為 1 到 3。GOP 主要是用來提 供隨機播放(Random Access)的功能。圖 2.7 為一個 GOP 的示意圖,N 為 12,M 為 3。
圖 2.6 MPEG 視訊位元串列架構
圖 2.7 GOP 示意圖。N = 12,M = 3
3. Picture layer
在 MPEG 視 訊 中 , 一 張 畫 面 是 由 一 個 Luminance(Y) 畫 面 以 及 兩 個 Chrominance(Cb、Cr)畫面組成,其中 Y 代表亮度,Cb 和 Cr 代表顏色。依照編 碼方式的不同,MPEG 定義了三種不同類型的畫面:
z I 畫面( Intra-Coded Frame,簡稱 I-Frame )
I 畫面在編碼時只利用單張影像畫面本身的資訊,先進行離散餘弦轉換 及量化,再以 Entropy Coding 的方式編碼,過程中不需參考其他畫面的 資訊,故稱為 Intra-Coded Frame。I 畫面可以做為視訊資料流中的索引 點,提供隨機存取的能力,並在解碼時做為 P 及 B 畫面的參考影像來 源。
z P 畫面( Predictive-Coded Frame )
P 畫面的編碼過程,是先以前一個 I 或 P 畫面作為參考畫面,進行運動
B 畫面的編碼過程類似 P 畫面,但是它使用的參考畫面是雙向的。B 畫 面使用前面及後面的 I 或 P 或 B 畫面當作參考畫面,進行雙向的運動估 測和補償,產生向前及向後的運動向量,再將餘下的誤差編碼。
由上面的敘述可知,I 畫面可以完全獨立解碼;P 畫面必須等前面的參考畫面 解出之後,才能進行解碼;B 畫面則必須等前後的參考畫面都解出來後才能解 碼。因此,在 MPEG 影片中,資料存放的順序與實際播放的順序有所不同。舉 例來說,若 MPEG 影片播放的順序為:
I(1) B(2) B(3) P(4) B(5) B(6) P(7) B(8) B(9) I(10) B(11) B(12) P(13) 則存放在 MPEG 視訊串流內的順序為:
I(1) P(4) B(2) B(3) P(7) B(5) B(6) I(10) B(8) B(9) P(13) B(11) B(12)
4. Slice layer
Slice 是由一連串任意數目的巨區塊組成。每個 Slice 至少有一個巨區塊,且 各 Slice 包含的巨區塊不可重疊。在編碼時,每一張畫面被切割成數個 Slice,分 開來解碼,可以避免解碼時產生的錯誤影響到整張畫面。Slice 的長度由編碼器 決定。
5. Macroblock layer
Macroblock layer (簡稱 MB layer )是 MPEG 串流中最重要的一層,MB 是進行 運動估測和運動補償的基本單位。在畫面上, MB 是一個 16*16 大小的大區 塊,根據不同的色彩取樣格式,一個 MB 內所包含的區塊個數亦不同。在 MPEG 中( 4:2:0 格式),一個 MB 有 4 個 Y、1 個 Cb 和 1 個 Cr 總共 6 個區塊。