MPEG-II的編碼流程
MPEG-II的編碼流程:
從上至下依次爲:視頻序列層(Sequence),圖像組層(GOP:GroupofPicture),圖像層(Picture),像條層(Slice),宏塊層(MacroBlock)和像塊層(Block)。從圖1中可以看到,除宏塊層和像塊層外,上面四層中都有相應的起始碼(SC:StartCode),可用於因誤碼或其他原因收發兩端失步時,解碼器重新捕捉同步。因此一次失步將至少丟失一個像條的資料。
序列指構成某路節目的圖像序列,序列起始碼後的序列頭中包含了圖像尺寸,寬高比,圖像速率等資訊。序列擴展中包含了一些附加資料。爲保證能隨時進入圖像序列,序列頭是重復發送的。
序列層下是圖像組層,一個圖像組由相互間有預測和生成關係的一組I、P、B圖像構成,但頭一幀圖像總是I幀。GOP頭中包含了時間資訊。
圖像組層下是圖像層,分爲I、P、B三類。PIC頭中包含了圖像編碼的類型和時間參考資訊。
圖像層下是像條層,一個像條包括一定數量的巨集塊,其順序與掃描順序一致。MP@ML中一個像條必須在同一宏塊行內。
像條層下是宏塊層。MPEG-2中定義了三種巨集塊結構:4:2:0宏塊4:2:2宏塊和4:4:4巨集塊,分別代表構成一個宏塊的亮度像塊和色差像塊的數量關係。
4:2:0宏塊中包含四個亮度像塊,一個Cb色差像塊和一個Cr色差像塊;4:2:2宏塊中包含四個亮度像塊,二個Cb色差像塊和二個Cr色差像塊;4:4:4宏塊中包含四個亮度像塊,四個Cb色差像塊和四個Cr色差像塊。這三種巨集塊結構實際上對應於三種亮度和色度的抽樣方式。
在進行視頻編碼前,分量信號R、G、B被變換爲亮度信號Y和色差信號Cb、Cr的形式。4:2:2格式中亮度信號的抽樣頻率爲13.5MHz,兩個色差信號的抽樣頻率均爲6.75MHz,這樣空間的抽樣結構中亮度信號爲每幀720x576樣值,Cb,Cr都爲360x576樣值,即每行中每隔一個圖元對色差信號抽一次樣,如圖3所示,○代表Y信號的抽樣點,×代表Cb,Cr信號的抽樣點。
4:4:4格式中,亮度和色差信號的抽樣頻率都是13.5MHz,因此空間的抽樣結構中亮度和色差信號都爲每幀720x576樣值。而4:2:0格式中,亮度信號的抽樣頻率13.5MHz,空間的抽樣結構中亮度信號爲每幀720x576樣值,Cb,Cr都爲360x288樣值,即每隔一行對兩個色差信號抽一次樣,每抽樣行中每隔一個圖元對兩個色差信號抽一次樣。
通過上述分析不難計算出,4:2:0格式中,每四個Y信號的像塊空間內的Cb,Cr樣值分別構成一個Cb,Cr像塊;4:2:2格式中,每四個Y信號的像塊空間內的Cb,Cr樣值分別構成兩個Cb,Cr像塊;而4:4:4格式中,每四個Y信號的像塊空間內的Cb,Cr樣值分別構成四個Cb,Cr像塊。相應的巨集塊結構正是以此基礎構成的。
宏塊層之下是像塊層,像塊是MPEG-2碼流的最底層,是DCT變換的基本單元。MP ML中一個像塊由8x8個抽樣值構成,同一像塊內的抽樣值必須全部是Y信號樣值,或全部是Cb信號樣值,或全部是Cr信號樣值。另外,像塊也用於表示8x8個抽樣值經DCT變換後所生成的8x8個DCT係數。
在幀內編碼的情況下,編碼圖像僅經過DCT,量化器和位元流編碼器即生成編碼位元流,而不經過預測環處理。DCT直接應用於原始的圖像資料。
在幀間編碼的情況下,原始圖像首先與幀記憶體中的預測圖像進行比較,計算出運動向量,由此運動向量和參考幀生成原始圖像的預測圖像。而後,將原始圖像與預測圖元差值所生成的差分圖像資料進行DCT變換,再經過量化器和位元流編碼器生成輸出的編碼位元流。
可見,幀內編碼與幀間編碼流程的區別在於是否經過預測環的處理。