別再傻傻分不清 AVSx H.26x MPEG-x 了

語言: CN / TW / HK

在音視頻發展的歷程中,編解碼無疑是其最核心的功能,編解碼標準的更新換代也極大促進了音視頻技術的發展以及行為模式的變更。從電視到網絡視頻以及現在的網絡直播、點播、音視頻會議等等,這些變化的背後都離不開音視頻編解碼技術的更新迭代。比如 H.264(仍然是目前使用最多的編解碼規範)以及 H.265/HEVC(部分大廠在使用 優酷 騰訊等),以及國內的 AVS 系列。

h.26x 系列

視頻編碼標準的發展簡史

LoveYFan

H.261-視頻編奠基者

H.261 設計的目的是能夠在帶寬為 64kbps 的倍數的 綜合業務數字網 (ISDN for Integrated Services Digital Network)上傳輸質量可接受的視頻信號。編碼程序設計的碼率是能夠在 40kbps 到 2Mbps 之間工作,能夠對 CIFQCIF 分辨率的視頻進行編碼,即亮度分辨率分別是 352x288 和 176x144,色度採用 4:2:0 採樣,分辨率分別是 176x144 和 88x72。

H.261 在圖像編碼上使用了我們現在比較熟悉的離散餘弦變換(DCT)算法, 它在後來的 JPEG 編碼中起主要作用。但不止於此,它引入了一系列針對視頻的特性,奠定了現代視頻編碼的基礎,其中主要有宏塊(Macroblock)和基於宏塊的運動補償(Motion Compensation)。

H.261 使用 YCbCr 顏色空間,並採用 4:2:0 色度抽樣,每個宏塊包括 16x16 的亮度抽樣值和兩個相應的 8x8 的色度抽樣值。YCbCr 又成為 YUV,仍然是現在編解碼規範所採用的色彩空間。

宏塊與基於運動補償的幀間預測

我們知道,視頻是由一幀一幀的圖像組成的組合,一般情況下一秒鐘的視頻中會包含 24、25、30、60 或更多張圖片,它們按照一定的時間間隔播放出來,基於視覺殘留原理形成了流暢、會動的畫面。在連續的幾幀之間,實際上存在着大量重複的畫面,比如説下面這個例子:

一個白色枱球在綠色桌面上面運動

用小球運動的方向和距離來描述圖像的變化

如果是以傳統的思路對每一幀圖像做壓縮的話,顯然整個視頻在壓縮過後仍存在大量的宂餘。那麼怎麼辦呢?H.261 標準引入了宏塊的思維,它將整個畫面切分為許多小塊,然後再引入基於運動補償的幀間預測——畫面的大部分都是不動的,那麼我們將不動部分的區塊沿用之前的壓縮結果,動的部分用運動方向加距離這樣一個矢量來描述不就可以節省出大量的存儲空間了嗎?

DCT 算法

將 8x8 個像素分成一個塊

DCT 算法起源於上世紀 70 年代,到了 80 年代中後期,有研究者開始將其用於圖像壓縮。這種算法可以將圖像從空間域轉換到頻率域,然後做量化——減少人眼敏感程度較低的高頻信息,保留絕大部分低頻信息,從而減少圖像的體積。最後再用高效的數據編碼方式將處理過後的數據進一步壓縮,這裏使用了 Zig-Zag 掃描和可變長編碼。

在 H.261 及之後基於 H.261 框架的視頻編碼中,DCT 算法主要針對的是關鍵幀的壓縮,所謂關鍵幀,就是在運動補償中作為基準參考的一幀。打個比方,就像 Flash 動畫中的關鍵幀一樣,它定義了一個起點,後續的幾幀都是基於這個關鍵幀演算出來的。因為它只做幀內壓縮,不涉及其他幀,又被稱為 Intra-frame(幀內編碼幀),簡稱 I 幀。

MPEG-1:引入幀類型概念

MPEG-1 是為 CD 光盤 介質定製的視頻和音頻壓縮格式。MPEG-1 採用了塊方式的 運動補償離散餘弦變換DCT )、量化等技術,併為 1.2Mbps 傳輸速率進行了優化。MPEG-1 隨後被 Video CD 採用作為核心技術。

音頻-MP3

MPEG-1 音頻分三代,其中最著名的第三代協議被稱為 MPEG-1 Layer 3,簡稱 MP3 ,目前仍然是廣泛流傳的音頻壓縮技術。

視頻-引入 B 幀以及 GOP

在 H.261 中其實已經有視頻幀的概念了,比如上面的關鍵幀(就是一張完整的靜態圖像,可以直接被解碼出來),另外的幀則是通過運動補償算法在關鍵幀之上計算得到的。

不過 MPEG-1 真正引入了幀類別的概念,原來的關鍵幀被稱為“I 幀”,基於幀間預測計算得到的幀為 P 幀。在這兩種 H.261 已有的幀類型外,它引入了一種新的幀:雙向預測幀,也叫作 B 幀。

不過引入 B 幀的同時,也使編解碼的複雜度提高了,MPEG-1 又提出了 GOP( G roup o f p ictures),即 I 畫格和 I 畫格之間的畫格排列。

圖像羣組就是一組以 MPEG 編碼的影片或視訊串流內部的連續圖像。每一個以 MPEG 編碼的影片或視訊串流都由連續的圖像羣組組成。

下圖是 GOP 示例

MPEG-2:DVD 標準

對於 MPEG-1,它並沒有太大的改動,主要是針對 DVD 應用和數字時代進行了改良。

支持隔行掃描

隔行掃描(英語:Interlaced)是一種將圖像顯示在掃描式的顯示設備上的方法相比 逐行掃描 ,隔行掃描佔用帶、寬比較小。掃描設備交換掃描偶數行和奇數行。

一個慢速的隔行掃描的示意

H.263:熟悉的 3GP 視頻

原先的 H.261 和 MPEG-1 都是偏向於低碼率應用的,隨着互聯網和通訊技術的飛速發展,人們對網絡視頻的需求在提高,在低碼率下追求更高質量的視頻成為了新的目標,而作為通信業的一大標準制定者,ITU-T 在 1995 年推出了 H.261 的直接繼承者——H.263。

在上世紀 90 年代,3GP 也是風靡一時,它減少了存儲空間和較低的帶寬需求,讓手機上有限的存儲空間可以使用。目前在 3GP 中 H.263 仍然佔據着主流地位。

H.264/MPEG-4:到了熟悉的 Part

H.264/AVC 是一種面向塊,基於 運動補償視頻編碼標準 。到 2014 年,它已經成為高精度視頻錄製、壓縮和發佈的最常用格式之一。

H.264/AVC 包含了一系列新的特徵,使得它比起以前的編解碼器不但能夠更有效的進行編碼,還能在各種網絡環境下的應用中使用。這些新特性包括:

  • 多參考幀的 運動補償 。比起以前的視頻編碼標準,H.264/AVC 以更靈活的方式使用已編碼的更多幀來作為參考幀。在某些情況下,可以使用最多 32 個參考幀(在以前的標準裏面,參考幀的數目不是 1 就是對 B 幀來説的 2)。該特性對大多數場景序列都可以帶來一定的碼率降低或者質量提高,對某些類型的場景序列,例如快速重複的閃光,反覆的剪切或者背景遮擋的情況,它能很顯著的降低編碼的碼率。
  • 變塊尺寸運動補償。可使用最大 16x16 至最小 4x4 的塊來進行運動估計與運動補償,能夠對圖像序列中的運動區域進行更精確的分割。 這些類型共有 16×16、16×8、8×16、8×8、8×4、4×8、4×4
  • 為了減少 混疊 (Aliasing)並得到更鋭化的圖像,採用六抽頭的濾波器(六階數字濾波器)來產生二分之一像素的亮度分量預測值。
  • 靈活的隔行掃描視頻編碼(interlaced-scan video coding)。

H.265/HEVC:尷尬的繼任者

作為 H.264 的繼任者,HEVC 被認為不僅提升影像質量,同時也能達到 H.264/MPEG-4 AVC 兩倍之 壓縮率 (等同於同樣畫面質量下 比特率 減少到了 50%),可支持 4K清晰度 甚至到 超高清電視 (UHDTV),最高 清晰度 可達到 8192×4320( 8K清晰度 )。

下圖是 H265 與 h264 主觀視頻性能比較

從上面的性能比較我們知道 H.265 在各種參數上都要優於 H.264,那為什麼説它是 尷尬的繼任者 呢,

  1. 現有大部分音視頻還是以 H.264 為主,且 H.264 可以滿足大部分的場景
  2. 授權費過於昂貴,國內外音視頻服務廠家被 H.264 已經薅了一次羊毛,如果再支持 H.265 又要交授權費用,所以目前只有一部分大廠(騰訊,優酷)再特定的影片上使用。
  3. H.266 已經發布,所以如果確實有需求的可能等着接入 H.266,不太需要的仍然不會接入 H.265,所以它的位置比較尷尬。

不過 H.266 可能還需要幾年的發展,留給 H.265 的時間不多了,不過它仍然有機會。

H.266/VVC:未來編碼

它來了它來了,它邁着六親不認的步伐走來了,必將引領新一代音視頻世界的發展,它就是 H.266/VVC。

2020 年 7 月,H.266/VVC 視頻編解碼標準宣佈編輯完成,也是這個時刻為未來 10 年內音視頻發展方向指明瞭方向。

VVC 全稱 Versatile Video Coding(多功能視頻編碼), 也稱為 H.266MPEG-I 第 3 部分 未來視頻編碼 ( FVC )。VVC 的設計初衷是為了在同樣的視頻質量下達到更大的壓縮比、更低的碼率,為 4k、8k 超清視頻、360 全景視頻等更多場景賦能。當然 VVC 還有其他特性:

  • 無損 和主觀無損壓縮。
  • 4K 到 16K 的分辨率以及全景視頻
  • 10 至 16 位的 YCbCr 4:4:4、4:2:2 和 4:2:0、BT.2100 寬色域
  • 峯值亮度為 1000、4000 和 10000 尼特高動態範圍 (HDR)
  • 輔助通道(用於記錄深度,透明度等)
  • 0-120 Hz 的可變幀速率和分數幀速率
  • 關於時間( 幀速率 )、空間( 分辨率 )、 信噪比色域動態範圍 差異的 可適性視頻編碼
  • 立體聲/多視角編碼
  • 全景格式
  • 靜態圖像編碼

該標準預期的編碼複雜度為 HEVC 的數倍(最多十倍),但具體取決於編碼算法的質量。其解碼複雜度預期約為 HEVC 的兩倍。

視頻標準更新換代/編碼效率的更新

PS
• VTM = VVC test model, latest version is VTM-10.0 (測試模型參考軟件平台)
• JVET = Joint Video Experts Team of the ITU-T VCEG and ISO/IEC MPEG (VVC 標準委員會)

H.266/VVC 優點

降低成本

現有的 H.264/H.265 已經滿足大部分的音視頻業務需求,但是在一些業務下已經達到了瓶頸,還有 CDN 的帶寬流量也是一比很大的投入,如果能在在同樣的視頻質量下達到更大的壓縮比、更低的碼率,那麼就意味着能以同樣的 CDN 服務器服務更多的客户,降本提效。

賦能更多場景

新興的業務比如 VR(Virtual Reality 虛擬現實),AR(Augmented Reality 增強現實),360 全景等,必須使用 4k 甚至更高的 8k 分辨率才能達到效果,在這個情境下就是如何更快(低延遲)、更好(分辨率)、更少(低碼率)的傳輸數據,現有的編解碼方案已經無法滿足。國內外 VVC 發展現狀

國內 H.266 的發展

  1. 積極參與 H.266 的標準制定,其中代表的是騰訊、阿里,都在 H.266 制定標準的過程中提交了幾百份提案,被採納率過半。積極參與規則的制定,後面才有發言權,這是血的教訓。
  2. 騰訊開源首個 H.266 編解碼器 http://github.com/TencentCloud/O266player ,詳情請參看 http://www.infoq.cn/article/auuthrzodb8j2k8lmrsz

AVS 系列

AVS 發展歷史

國內的 AVS 編解碼標準由於起步較晚,大部分專利都在國外,大部分國內企業還是會淪落到任人宰割的境地。另外 AVS 編碼體系性能上還是有所不足。根據 IEEE 出具的一份 HEVC/VP9/AVS2 編碼效率對比報告,其中在隨機訪問條件下,HEVC 性能優於 VP9 24.9%,AVS2 6.5%;在延遲條件下,HEVC 優於 VP9 8.7%,AVS2 14.5%。在某些領域,AVS2 對比 HEVC 已經相差不大,但從總體性能和應用規模來看,AVS2 還有很長的路要走。所以即使國家在極力推動 AVS,其應用場景還是比較少,國企裏用的比較多。

Google 系列

從技術角度來説,VP8 採用的技術是類似於 H.264 的。雖然在我們看到的宣傳中,VP8 擁有比 H.264 更佳的壓縮效率,但在實際應用中,由於它在設計上有一定的瑕疵,表現並不如 H.264,最終它雖然進入了 Web 標準,但也沒見有人用它,反而是由它的幀內壓縮技術提取而成的 WebP 受到了歡迎。

VP8 的表現並不理想,Google 很快就推出了它的繼任者——VP9。這次,他們參考的是 HEVC,設計目標同樣是高分辨率下的高效編碼。VP9 中的一些設計是受到了 HEVC 的影響的,比如説同樣最大為 64x64 的超級塊(Super Block)。最終 VP9 達成的結果是提供了比 VP8 高達 50%的效率提升。看起來它能夠和 HEVC 比肩了,但是它也遇到了和 VP8 相似的問題,推廣不開。VP9 的應用範圍實際也侷限在 Google 自家的 Youtube 中,只能説是缺少實際應用場景。

未來音視頻發展的思考與展望

深度學習以及端-端智能賦能未來音視頻發展。

深度學習

通過模型訓練 AI 來智能調整編解碼器參數。

建立端-端的通信鏈路