1. 程式人生 > >視頻壓縮和H264

視頻壓縮和H264

ram 新一代 strong 高清電影 mbo 定義 流媒體 不同 高清視頻

一.視頻壓縮

1.1 為什麽需要壓縮視頻?

假設一個2小時未壓縮的高清視頻,1920×1080p的電影,我們來計算一下他的存儲容量。先介紹一下幀率(frame rate或者是 FPS)概念,也就是每秒傳輸圖片的幀數,也可以理解為圖形處理器每秒能夠刷新幾次。由於人眼的特性-視覺暫留,幀率要在20以上才會感覺流暢。之前的電影幀率一般是24。拓展:為什麽遊戲幀數要60才流暢,而電影只需要24
2小時×60分鐘×60秒×25 幀率×1920×1080 像素 ×3/2 每像素字節數 = 5599GB
一部高清電影占了這麽大空間,不能忍。
所以,為了存儲和傳輸方便,壓縮視頻,必不可少。

1.2 如何壓縮視頻?

接下來回答怎麽進行視頻壓縮。
介紹最基本的概念:
信息壓縮是通過去除資料中的冗余信息而達成。就視頻而言,冗余信息可以分成四類:

  • 時間上的冗余信息(temporal redundancy)
    在視頻中,相鄰的幀(frame)與幀之間通常有很強的關連性,這樣的關連性即為時間上的冗余信息。這即是上一次學習中的幀間壓縮。連續的圖像往往非常相近,由於一些小運動造成了細小差別。這種減小冗余的方法可以存儲和上一幀或者下一幀不同的地方。這樣就可以減少存儲了。這個過程就稱作運動補償。位移是利用運動向量得出的。

  • 空間上的冗余信息(spatial redundancy)

    在同一張幀之中,相鄰的像素之間通常有很強的關連性,這樣的關連性即為空間上的冗余信息。這即是上一次學習中的幀內壓縮。比如一個像素點是綠色,那它相鄰的像素點可能就是深綠或者淺綠,甚至就是綠。

  • 統計上的冗余信息(statistical redundancy)
    統計上的冗余信息指的是欲編碼的符號(symbol)機率分布是不均勻(non-uniform)的。

  • 感知上的冗余信息(perceptual redundancy)
    感知上的冗余信息是指在人在觀看視頻時,人眼無法察覺的信息。

視頻壓縮(Video compression)是指運用壓縮技術將數位視頻中的冗余信息去除,降低表示原始視頻所需的存儲量,以便視頻資料的傳輸與儲存。實際上,原始視頻資料的容量往往過大,例如未經壓縮的電視品質視頻的位元率高達216Mbps,絕大多數的應用無法處理如此龐大的容量,因此視頻壓縮是必要的。目前最新的視頻編碼標準為ITU-T視訊編碼專家組(VCEG)和ISO/IEC動態圖像專家組(MPEG)聯合組成的聯合視頻組(JVT,Joint Video Team)所提出的H.264/AVC。

一個典型的視頻編碼器:在進行當前信號編碼時,編碼器首先會產生對當前信號做預測的信號,稱作預測信號(predicted signal),預測的方式可以是時間上的預測(interprediction),亦即使用先前幀的信號做預測,或是空間上的預測 (intra prediction),亦即使用同一張幀之中相鄰像素的信號做預測。得到預測信號後,編碼器會將當前信號與預測信號相減得到殘余信號(residual signal),並只對殘余信號進行編碼,如此一來,可以去除一部份時間上或是空間上的冗余信息。接著,編碼器並不會直接對殘余信號進行編碼,而是先將殘余信號經過變換(通常為離散余弦變換)然後量化以進一步去除空間上和感知上的冗余信息。量化後得到的量化系數會再透過熵編碼,去除統計上的冗余信息。

二.h264編碼標準的提出

H264是新一代的編碼標準,以高壓縮高質量和支持多種網絡的流媒體傳輸著稱。

在編碼方面,我理解的他的理論依據是:參照一段時間內圖像的統計結果表明,在相鄰幾幅圖像畫面中,一般有差別的像素只有10%以內的點,亮度差值變化不超過2%,而色度差值的變化只有1%以內。所以對於一段變化不大圖像畫面,我們可以先編碼出一個完整的圖像幀A,隨後的B幀就不編碼全部圖像,只寫入與A幀的差別,這樣B幀的大小就只有完整幀的1/10或更小!B幀之後的C幀如果變化不大,我們可以繼續以參考B的方式編碼C幀,這樣循環下去。這段圖像我們稱為一個序列(序列就是有相同特點的一段數據),當某個圖像與之前的圖像變化很大,無法參考前面的幀來生成,那我們就結束上一個序列,開始下一段序列,也就是對這個圖像生成一個完整幀A1,隨後的圖像就參考A1生成,只寫入與A1的差別內容。

在H264協議裏定義了三種幀,完整編碼的叫做I幀,參考之前的I幀生成的只包含差異部分編碼的幀叫P幀,還有一種參考前後的幀編碼的幀叫B幀
H264采用的核心算法是幀內壓縮和幀間壓縮,幀內壓縮是生成I幀的算法,幀間壓縮是生成B幀和P幀的算法。

參考鏈接:

1. 視頻壓縮基本概念

視頻壓縮和H264