【經驗分享】RTC 技術系列之視訊編解碼

聲網Agora發表於2021-09-30

要了解什麼是視訊編解碼,首先我們需要了解什麼是視訊。

視訊歸根結底是一系列連續的影像幀,當這些影像以一定速率播放時,人眼就會判斷其是連續活動的,這樣就構成了視訊。

那為什麼要進行視訊編解碼呢,因為視訊訊號數字化後資料量巨大,如果以這樣的資料量進行網路傳輸或者儲存時,會佔用大量的頻寬和儲存空間,造成浪費。已當前主流的 1080P 解析度,一秒 30 幀的視訊舉例 1080P 影像的高和寬分別為 1080 和 1920,每個畫素用三原色 RGB 表示(即每個畫素三個位元組),因此每幀影像的資料量為 1080x1920x3x8=49766400,每秒 30 幀,則需要乘以 30,49766400x30 = 1,492,992,000bps。因此視訊編解碼技術因此而誕生。

為什麼視訊可以壓縮呢,我們分兩個方面看這個問題:

1 在一副影像中,往往有相近的顏色區域,這樣就蘊含了大量的冗餘資訊,可以基於變化編碼和量化編碼進行冗餘資訊處理,達到壓縮的可能。

2 兩幅影像之間,肯定也存在大量相同以及相似的部分,因此產生了運動補償及運動估計來描述運動向量來進行影像間冗餘資訊壓縮的可能。

基於影像內預測編碼和影像間預測編碼原理,誕生了眾多的視訊編解碼。

img

H.26X 系列,從 H.261,H.263,到當前主流的 H.264,及 H.265,當前最新制定標準的 H.266;H.26X 系列的發展宗旨為使用技術優化壓縮資料量不能夠達到更好的視訊質量;像 H.265 旨僅需原先的一半頻寬即可播放相同質量的視訊。它與 H.264 有著相類似的演算法架構,並同時對一些相關技術加以改進而大幅提高視訊質量。

Mpeg 系列,Mpeg1,Mpeg2,Mpeg4(Mpeg4 之後與 H.264 融合);

VP 系列,VP8,VP9;VP 系列是 Google 自研並開源的編解碼系列,Google 建立 VP 系列編解碼的原因也是 H.264 需要專利費用,即如果 WebRTC 使用 H.264,則需要按瀏覽器支付相關的專利費用(當然由於 H.264 廣泛支援性,主要原因還是 cisco 開源了 OpenH64),VP8 即對標 H.264,除了在 WebRTC 領域,其知名度和支援度則相對有限; VP9 則對標 H.265,VP9 的目標之一是在保證相同質量的情況下相對於 VP8 可以減少 50%左右的位元速率,換句話說,相同的位元速率,VP9 能比 VP8 畫質有非常明顯的提高;

國產系列,AVS 標準,AVS1.0,AVS2.0; AVS 是我國具備自主智慧財產權的第二代信源編碼標準。AVS2.0,屬於與 H.265 和 VP9 同級的新一代標準;雖然 AVS 的使用和知名度貌似不高,但說明我國已經注意到這個領域併發力;

SVAC 標準,我國一個應用於視訊監控領域的編解碼,特點在於加密認證高安全:規定了加密和認證介面及資料格式,保證資料的安全性、完整性、非否認性;感興趣區域(ROI)編碼:影像分為若干個感興趣區域和一個背景區域,在重點監控區域保證實時視訊資訊,幀率較高,節省非感興趣區域的開銷; 視訊資訊嵌入,可將聲音識別特徵引數、特殊事件、時間等資訊都可嵌入編碼裡,在不解開視訊的前提下,可針對性的提取、快速檢索、分類查詢;可伸縮性視訊解碼(SVC):對視訊資料分層編碼,滿足不同傳輸網路寬頻和資料儲存環境的需求,普通編碼程式傳輸有主碼流、子碼流,佔用頻寬較大,SVAC 傳輸只有一類碼流,對碼流分層就可獲得不同解析度的圖片資訊。

WebRTC 最初由 Google 提出,主要是基於瀏覽器的 RTC 通訊,故此叫做 WebRTC;初期幾大瀏覽器在 WebRTC 及其視訊編解碼支援的力度上也是不一的,像 Mozilla 陣營的 Chrome,FireFox,Opera 初期也不一樣,Chrome 初期只支援 VP 系列,原因上面介紹過,後續逐漸延伸到 H.264,由於原有的 RTC 通訊領域大都使用 H.264 編解碼,因此 H.264 的支援對於跨領域 RTC 互通提供了很大便利,我覺得也一定程度上加速了 WebRTC 的發展,比如瀏覽器和手機同時加入到視訊會議;或者瀏覽器跟當前的 SIP 終端點點通話,由於 H.264 的支援,大大減少了轉碼的要求,做視訊的轉碼是非常消耗效能的,或者使用專用硬體實現。

img

當然後續越來越多廠家加入了 WebRTC 領域,像 Agora 聲網的 RTC 系統,已經超過了 WebRTC,像他的各種硬體晶片平臺的 SDK 適配,SD-RTN 系統(優先路徑選擇確保高的傳輸質量,畢竟通訊不是純終端側的功能,網路對通訊質量,視訊或者音訊的影響也是 juda),優異的弱網對抗演算法,可以抵禦 70%的視訊丟包確保通話流暢。

當前隨著物聯網的發展,除了人們的通話通訊,音視訊會議之外,RTC 越來越廣泛的應用各個領域;像安防監控,智慧硬體終端,視訊處理所處的硬體裝置越來越小型甚至微型化,原有的基於軟體進行編解碼,無論從記憶體,CPU,效能等資源佔用方面,都顯示出很大劣勢;眾多廠家也意識到這個情況,因此越來越多的專業晶片幹專業事情的趨勢越發明顯。像監控領域,華為海思 ARM+專業視訊處理單元,佔據了國內視訊 70%以上的市場;NVIDIA 推出了 Jeston 系列晶片,應對邊緣計算場景,ARM+GPU 的處理方式更通用,同時由於 ARM 的低功耗,可以使得邊緣側裝置具備視訊處理,機器視覺處理,AI 分析能力,大大豐富了智慧物聯網的應用。

由於這兩年的疫情,線上教育,直播的發展,Web 實時通訊帶來了非常大的發展機會,其商業化成功也為技術發展持續注入了活力;伴隨著 5G 的火熱,VR/AR、自動駕駛等新應用場景的出現,必將為 WebRTC 技術帶來新的動力,催動著基於網際網路的實時音視訊通訊技術的發展。

相關文章