音視頻編碼從小白開始(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)進行熵編碼,引入了並行處理架構,在速度、壓縮率和內存佔用等方面均得到了大幅改善。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章