1. 程式人生 > >實時通訊RTC技術棧之:視訊編解碼

實時通訊RTC技術棧之:視訊編解碼

1、前言


RTC(Real-time Communications),實時通訊,是一個正在興起的風口行業,經過短短一年的時間,已經有很多玩家進入了這個行業,最典型的應用就是直播連麥和實時音視訊通訊。但是,很多開發者對一些概念還是有混淆的,比如 RTC 與 WebRTC,RTC 與直播,RTC 與 IM。

那麼 RTC 技術棧究竟包含哪些技術,我們會提供一系列文章,來解讀 RTC 技術棧。本文是系列文章的第一篇:講述視訊編解碼的一些基本知識。

先來糾正幾個概念。

2、RTC 和 WebRTC 有什麼區別?


實時通訊(RTC)最容易和 WebRTC 混淆,實際上,二者不能劃等號。

203211c0q1mg0omzi5u05x.png (560Ã81)

RTC 從功能流程上來說,包含採集、編碼、前後處理、傳輸、解碼、緩衝、渲染等很多環節,上圖展現了一次 RTC 通訊的簡要流程。每一個細分環節,還有更細分的技術模組。比如,前後處理環節 有美顏、濾鏡、回聲消除、噪聲抑制等,採集有麥克風陣列等,編解碼有 VP8、VP9、H.264、H.265 等等。

203104v99mt9hj9r92arja.png (400Ã288)

上圖展現了 RTC 與 WebRTC 的關係,WebRTC 是 RTC 的一部分。WebRTC,是 Google 的一個專門針對網頁實時通訊的標準及開源專案,只提供了基礎的前端功能實現,包括編碼解碼和抖動緩衝等,開發者若要基於 WebRTC 開發商用專案,那麼需要自行做服務端實現和部署,信令前後端選型實現部署,以及手機適配等一系列具體工作;在此之外還要在可用性和高質量方面,進行大量的改進和打磨,對自身開發能力的門檻要求非常高。一個專業的 RTC 技術服務系統,需要除了涵蓋上述的通訊環節外,實際上還需要有解決網際網路不穩定性的專用通訊網路,以及針對網際網路通道的高容忍度的音視訊訊號處理演算法。當然常規雲服務的高可用、服務質量的保障和監控維護工具等都只能算是一個專業服務商的基本模組。



所以,WebRTC 僅是 RTC 技術棧中的幾個小細分的技術組合,並不是一個全棧解決方案。

3、RTC 和直播有什麼區別?

203104wuzkktczz15turka.png (400Ã241)

上圖展現的就是 RTC 與直播的關係,RTC 的一個具體應用是直播場景中的直播連麥,也就是低延時直播。普通直播,一般採用 TCP 協議,使用 CDN 進行內容分發,會有幾秒甚至十幾秒的延時,主播和觀眾的互動只能通過文字短訊息或送禮來進行。而直播連麥,使用 UDP 協議,內容實時傳輸,主播和觀眾可以進行音視訊連麥互動,實時溝通,延時一般低至幾百毫秒。

4、視訊編解碼的現狀


視訊編解碼的作用,就是在裝置的攝像頭採集畫面和前處理後,將影象進行壓縮,進行數字編碼,用於傳輸。編解碼器的優劣基本在於:壓縮效率的高低,速度和功耗。

VP8,是視訊壓縮解決方案廠商 On2 Technologies 的第八代視訊編解碼標準,Google 收購 On2 後,就將 VP8 開源了,並且將其應用到 WebRTC 中。目前,Google 也在主推新一代的編解碼標準——VP9。

H.264,是由 ITU-T 視訊編碼專家組(VCEG)和 ISO/IEC 動態影象專家組(MPEG)聯合組成的聯合視訊組(JVT,Joint Video Team)提出的高度壓縮數字視訊編解碼器國際標準。 WebRTC 也同時支援 H.264。

VP8 和 H.264 是十幾年前發明的標準,屬於同一代技術。這兩個標準處於發展成熟的階段,編碼效率、運算複雜度和功耗上都達到了比較好的均衡。技術和應用程度上,二者也略有區別,比如,硬體廠商對 H.264 的支援較廣泛,而對 VP8 的支援就比較有限。

VP9,開發始於 2011 年。VP9 的目標之一是在保證相同質量的情況下相對於 VP8 可以減少 50% 左右的位元速率,換句話說,相同的位元速率,VP9 能比 VP8 畫質有非常明顯的提高。VP9 的一大的優勢是專利費用,Google 宣告可以免費進行使用。這和 H.264 和 H.265 不同有較大的差異(雖然,2013 年 cisco 已將 open264 開源,並聲稱在不修改 open264 程式碼的情況下,能保證由 cisco 覆蓋相關的專利費用)。

H.265 旨在在有限頻寬下傳輸更高質量的網路視訊,僅需原先的一半頻寬即可播放相同質量的視訊。它與 H.264 有著相類似的演算法架構,並同時對一些相關技術加以改進而大幅提高視訊質量。舉例來說,H.264 編碼器可以以 1Mbps 位元速率實現標清數字視訊壓縮;而 H.265 編碼器則可以利用相同的位元速率編碼 720P 甚至更高的解析度的高清視訊。這也意味著,在現有的家庭網路情況下,我們的智慧手機、平板機等移動裝置將能夠直接線上播放 1080p 的全高清視訊。同時,H.265 標準也同時支援 4K 和 8K 超高清視訊。

VP9 和 H.265,是最近 5 年制定的標準,是當前已經完成標準中壓縮效率最高的。同樣的,H.265 是國際標準,VP9 是 Google 目前主推的標準。H.265 在硬體支援上比較廣泛,Apple、高通、intel 等的晶片都支援 H.265 的硬體編解碼器。VP9 的硬體支援依然十分有限。總體來說,新一代編碼器,編碼效率能比上一代提高了 30-50%,但是複雜度和功耗會比上一代大很多,所以純軟體編碼實現的話有一定瓶頸,現有的技術下,還是需要依靠硬體編解碼為主。

AVS 是我國具備自主智慧財產權的第二代信源編碼標準。目前,AVS1.0 在第三世界國家中已有廣泛應用。AVS2.0,屬於與 H.265 和 VP9 同級的新一代標準。
編碼器只是標準和語法,並沒有限定應用場景。因此,在實際應用中,還要結合場景特點,來進行改進和深度優化。聲網的視訊編碼器,針對實時音視訊通訊做了深度改進,更適應公共網際網路的特點,實時性和質量上有很大提升。尤其是與網路的深度結合,同時兼顧對抗丟包和網路頻寬的波動。

5、視訊編解碼的探索方向

1VR 視訊標準


VR 視訊標準是當前不論是學術界,還是商業應用的熱門探索方向之一。VR 視訊的編碼目前繼續解決的技術問題有:影象的顯示質量、合成質量和傳輸頻寬。

VR 視訊編碼先前的做法是,將已有的視訊壓縮標準,應用到 VR 場景中。但是,由於 VR 視訊內容的特殊性和網路頻寬的限制,目前的標準無法滿足 VR 視訊的壓縮需求。業界對 VR 視訊壓縮標準呼聲極高。將來高階的 VR 視訊形態應該是自由沉浸立體視訊:在一定空間範圍內提供 Anywhere + Anytime + Anyview +Stereo 的沉浸體驗。
 

2高解析度的需求


在 H.264 時代,編碼器主要應用於低於 HD 的中小解析度,稍微兼顧 1080P 高解析度。但 H.265 時代,隨著硬體裝置更好、頻寬更高,使用者開始對視訊解析度的要求更高,人們開始發現,使用者對視訊質量要求是沒有止境。因此,新一代編碼器,更傾向於支援高解析度,比如 4K 高清解析度。新一代編碼器對高解析度的壓縮效率可提高 50% 以上。

網易雲信,你身邊的即時通訊和音視訊技術專家,瞭解我們,請戳網易雲信官網

想要閱讀更多行業洞察和技術乾貨,請關注網易雲信部落格

本文轉載自52im,作者:JackJiang