1. 程式人生 > >編碼原理(七) --回顧

編碼原理(七) --回顧

byte col size roc 進制 圖片 com 占用 像素

上一篇我們講解了熵編碼的另一種方式CABAC,熵編碼結束之後,那麽整個編碼過程的核心過程也就結束了,後續的工作就是為了適配網絡發送等做一些封裝的工作。本篇對整體的編碼過程作一個簡單的回顧,整體上感知一下一個像素的矩陣快,是如何一步一步被減肥的,哈哈:

1 DCT變換

技術分享圖片

經過DCT變換,實現了頻率的集中。

2量化

技術分享圖片

經過量化,我們對DCT變換後的系數進行以QP=28的量化,此時得到了一些左上角集中了非零值的系數矩陣。

3 ZigZag掃描

技術分享圖片

ZigZag掃描,將二維的系數矩陣轉換成一維的序列。

4 熵編碼

熵編碼輸入:

9,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0

熵編碼輸出:

0000 1011 1000 0000 0000 0000 1101 010

用16進制表示為: 0X: B8 00 0D + 010。

    編碼之前是一個4 * 4的像素塊,每個像素占用一個字節的空間,即16 Bytes * 8 = 128 bit,經過編碼之後的大小為3個字節(最前邊的0無需占用空間)+3個bit = 3 * 8 + 3 = 27 bit。簡單算一算壓縮率, 27  / 128 =  0.210 = 20%。壓縮率還是可以的哈,編碼的主要過程就此分析完畢,希望對你有所幫助。

編碼原理(七) --回顧