第二章 MPEG-2 VIDEO 壓縮標準
2.1 MPEG-2 視訊系統的架構
MPEG-2 的視訊系統的架構可大致分為六個階層,由上到下依序是 Video Sequence layer,Group of pictures(GOP) layer,Picture layer,Slice layer,Macroblock(MB) layer 及 Block layer,以下將分別介紹之。
1. Video Sequence layer: 是指一個完整的視訊影片,在這一層中會記錄這一個 影片的畫面大小,畫面播放速率,並包含許多連續的 GOP。
2. Group of pictures(GOP) layer: GOP 是由一張或多張的連續畫面所組成,每個 畫面利用三種不同編碼方式之其中一種進行編碼。這三種不同編碼方式的 畫面分別是 I-Frame(intra-coding frame),P-Frame(Predictive-coding frame)和
B-Frame(Bidirectionally Predictive-coding frame),一個 GOP 播放順序的組成 包含一個 I 畫面,數個 P 畫面,數個 B 畫面。典型 GOP 組成是 I B B P B B P B B P B B P B B P,Video Sequence layer 及 Group of pictures(GOP) layer 的 架構圖如圖 2.1 所示。
Sequence layer
GOP 1 GOP 2
...
GOP n GOP n+1 GOP n+2Group of Pictures layer
I-Frame B-Frame B-Frame P-Frame B-Frame ...
圖 2.1 Video sequence layer 及 GOP layer 示意圖
3. Picture layer: 在 MPEG-2 視訊影片中有三種不同編碼方式的畫面 (a) I-Frame (Intra-coding frame)
使用 JPEG Standard 的壓縮標準來編碼,不需要參考其他的畫面就可以進行 編碼及解碼,I 畫面可做為視訊影片中的索引點,以提供隨機存取(seek)的功 能。
(b) P-Frame (Predicted frame)
使用過去的畫面來當做參考畫面,進行位移估測(Motion Estimation)及位移補 償(Motion Compensation)來減少時間軸上的重覆資料也可以減少編碼後的資 料量。
(c) B-Frame (Bi-directional frame)
使用過去和未來的畫面來當做參考畫面,進行雙向的(bi-directional)位移估測
(Motion Estimation)及位移補償(Motion Compensation)的計算,所減少的時間 軸上的重覆資料量比 P 畫面更多,所以更能有效的減少編碼後的資料量。
圖 2.2 中列出 I-Frame,P-Frame,B-Frame 的參考關係,I-Frame 不需要參考任 何畫面就可獨立編解碼,P-Frame 需要參考前面已經解碼的 I 畫面或 P 畫面才能 編解碼,B-Frame 需要參考前面已經解碼的 I 畫面或 P 畫面和後面尚未播放但已 解碼的 I 畫面或 P 畫面的資料。
在 MPEG-2 影片中,資料存放的順序和影片播放的順序是不同的,因為 B 畫 面的雙向參考會需要往前,往後參考的畫面完全解碼之後,這個 B 畫面才能被 完全解碼,若是 MPEG-2 的播放順序是
I (1) B(2) B(3) P(4) B(5) B(6) P(7) B(8) B(9) P(10) B(11) B(12) P (13)B(14) B(15) P(16) 則存放在 MPEG-2 視訊資料中的順序是
I (1) P(4) B(2) B(3) P(7) B(5) B(6) P(10) B(8) B(9) P (13) B(11) B(12) P(16) B(14) B(15)
B B P B
I B P
Forward Prediction Bi-Directional Prediction
圖 2.2 畫面參考方式
4. Slice layer: 一個畫面是由若干個不可重疊的 Slice 組成,而一個 Slice 是由 數個不可重疊的 MacroBlock 所組成,每一個 Slice 至少要有一個 MacroBlock 而且每一個 Slice 所包含的 MacroBlock 不同,在編碼時,一個畫面分割成 數個 Slice 來編碼,在解碼時也依照 Slice 分開解碼,這樣可以避免解碼的 錯誤影響到影片畫面。
5. Macroblock(MB) layer: Macroblock layer 是 MPEG-2 視訊資料結構中重要的 一層,常見的在 MPEG-2 壓縮領域的鏡頭變換偵測方法[4]大多是運用 Macroblock 的編碼資訊來進行換鏡偵測的研究,Macroblock 是進行位移估 測及位移補償的基本單位,MB 是由畫面上 16 * 16 的區塊所組成,根據 色彩取樣格式的不同,一個 MB 裡所含的 Block 數目也會有所不同,如 YUV 4:2:0 的色彩取樣格式,一個 MB 有 4 個 Y,一個 Cb 和一個 Cr 這六 個 block,如圖 2.3 所示。
Macro Block Layer
1.IMB (Intra-coding MacroBlock)
若 MB 的編碼型態是 IMB(Intra-coding MacroBlock),表示這個 MB 的編碼是 直接使用這個 MB 的資料進行 DCT 編碼,並沒有參考到其他的畫面上的資 料,也沒有位移向量的資訊。
2.FMB (Forward-coding MacroBlock)
若 MB 的編碼型態是 FMB(Forward-coding MacroBlock),表示這個 MB 的編碼 有參考到過去播放過的畫面上的資料,這個 MB 可以在向前參考的畫面中 進行位移估測及位移補償來產生位移向量及預測誤差。
3.BMB (Backward-coding MacroBlock)
若 MB 的編碼型態是 BMB(Backward -coding MacroBlock),表示這個 MB 的編 碼有參考到未來將播放的畫面上的資料,這個 MB 可以在向後參考的畫面 中進行位移估測及位移補償來產生位移向量及預測誤差。
4.BIMB (Bi-directional Interpolated)
若 MB 的編碼型態是 BIMB(Bi-directional Interpolated),表示這個 MB 的編碼 有參考到過去播放過及未來將播放的畫面上的資料,這個 MB 可以在向前 參考及向後參考的畫面中進行位移估測及位移補償來產生位移向量及預測 誤差。
而不同類型的畫面中可能出現的 MB 型態也受到畫面的編碼方式的影 響,因為 I 畫面只有用本身單張資料壓縮,因此在 I 畫面裡的 MB 只有 IMB(Intra-coding MacroBlock)這種型態,而在 P 畫面中可以利用本身單張資料 壓縮或是向前參考的方式編碼,所以在 P 畫面裡的 MB 可能會出現 IMB (Intra-coding MacroBlock)和 FMB (Forward-coding MacroBlock)這二種 MB 型 態,而在 B 畫面中可以利用本身單張資料壓縮,向前參考,向後參考,雙向 參考的方式編碼,所以這四種型態的 MB 都有可能出現在 B 畫面中。
Macroblock 的參考關係如圖 2.4 所示。
IMB BMB BIMB FMB
I Frame B Frame B Frame P Frame
MacroBlock Forward Prediction
Bi-Directional Prediction Backward Prediction
IMB FMB
IMB IMB
圖 2.4 Macro block 的往前,往後參考示意圖
6. Block Layer: 是一個 8X8 像素的區塊,是要經過 DCT 編碼的基本單位。