天天看點

音視訊編碼從小白開始(1)

  1. 視訊序列中的每一幅圖像,都是有NxM個像素組成的,每個像素都有具體的數值,視訊序列可以表示為三維矩陣,其中NxM這兩個次元表示每幅圖的像素值,形成視訊的空間域,另一個次元代表視訊的時間域。
  2. 彩色視訊需要三個矩陣,分别代表三個基本都色彩分量(rgb)或亮度色度分量(yuv)。
  3. 每秒播放的幀數叫幀率,機關fps,要是人眼看着平滑連續,視訊幀率需要在25-30fps以上。

以标清720P(以16:9,則為1280x720)來舉例,假設3個顔色分量,每個像素以8bit表示,幀率為30fps,則每一幀視訊資料量為

 1280×720×3×8×30=6.64×108 bit

是以傳輸時需要視訊壓縮與編碼。

壓縮分無損和有損兩種:

無損:可以通過重建完全恢複原來的資料

其使用場景:文本檔案,程式檔案,特殊音視訊環境下(需要完美音質的音樂制作(是以現在在音樂平台上無損音質需要收費,在于傳輸需要的資料流很大)用于精确診斷的醫學圖像,遙感圖像)

缺點:受信源熵的限制,無損編碼壓縮率在5:1以下,圖像無損編碼在3:1左右。

有損:以損失一定品質的代價擷取高壓縮比。

衡量參數:碼率和失真,也就是要做到:在碼率一定的情況下,視訊品質最好,在品質損失一定下獲得最高的壓縮比(最低的碼率)。

另外注意時間域失真的問題。

H.265/HEVC的編解碼流程

H.265/HEVC仍然采用混合編碼模型,其編解碼流程主要包括5個部分:幀間和幀内預測(Estimation)、變換(Transform)和反變換、量化(Quantization)和反量化、環路濾波(Loop Filter)、熵編碼(Entropy Coding).但每一步都引入了新的編碼技術。

1)幀内預測編碼

主要用于去除圖像的空間相關性,通過編碼後的重構塊資訊來預測目前像素塊以去除空間備援資訊,提高圖像的壓縮效率。與以往的标準相比,H.265/HEVC支援更多的幀内預測模式。

2)幀間預測編碼

主要用于去除圖像的時間相關性,幀間預測通過将已編碼的圖像作為目前幀的參考圖像,來擷取各個塊的運動資訊,進而去除時間備援,提高壓縮效率。在H.265/HEVC中,真賤預測可采用單向和雙向的參考圖像來進行預測,包括類似H.264/AVC中分層B幀的預測結構。

3)變換量化

該子產品通過對殘差資料進行變換量化以去除頻域相關性,對資料進行有損壓縮。變換編碼将圖像從時域信号變換至頻域。将能量集中至低頻區域。量化子產品可以減少圖像編碼的動态範圍,變換編碼和量化子產品從原理上屬于兩個互相獨立的過程,但是在H.265/HEVC中,兩個過程互相結合,減少了計算複雜度。

4)去方塊濾波

在基于塊的視訊編碼中,形成的重構圖像會出現方塊效應,采用去方塊濾波可達到削弱甚至消除方塊效應的目的,提高圖像的主觀品質和壓縮效率。H.265/HEVC仍然是基于快的視訊編碼,是以延續了環内去方塊濾波的思路。

5)樣點自适應補償(Sample Adaptive Offset,SAO)濾波處于去方塊濾波之後,通過解析去方塊濾波後的像素的統計特性,為像素添加相應的偏移值,可以在一定程度上削弱振鈴效應,提高圖像的主觀品質和壓縮效率。這是H.265/HEVC新增的一項編碼方式。

6)熵編碼

該子產品将編碼控制資料、量化變換系數、幀内預測資料以及運動資料等編碼為二進制流進行存儲或傳輸。熵編碼子產品的輸出資料即原始視訊壓縮後的碼流。H.265/HEVC中采用先進的基于上下文的自适應二進制算法編碼(CABAC)進行熵編碼,引入了并行處理架構,在速度、壓縮率和記憶體占用等方面均得到了大幅改善。

繼續閱讀