視訊通訊關鍵技術探索及實踐

網易雲信發表於2021-11-16

導讀:2021年10月21日,「QCon 全球軟體開發大會」在上海舉辦,網易智企技術 VP 陳功作為出品人發起了「AI 時代下的融合通訊技術」專場,邀請到多位技術專家與大家一起分享相關技術話題。

我們會針對四個演講專題逐一進行介紹與分享,本期是我們的第二期,視訊通訊關鍵技術探索及實踐。

嘉賓介紹:韓慶瑞,網易雲信音視訊實驗室,高階技術專家。

前言

無論在娛樂社交、線上學習,還是遠端銀行等生活場景中,視訊都已成為最重要的互動方式之一,使用者對於視訊效果也提出越來越高的要求。延時低,弱網對抗能力強,視訊畫質清晰等也讓企業面臨很高的技術挑戰。

作為融合通訊雲服務專家,網易雲信的業務覆蓋了主要的視訊場景,包括低延時的實時音視訊場景,允許部分延時的直播場景和不強調延時的點播場景,本文介紹了網易雲信視訊在各個場景下的關鍵技術和應用嘗試。

網易雲信視訊技術部署

下圖為網易雲信整個融合通訊的主網圖。左邊和右邊是端側的裝置,可以接入任何裝置,手機、pad、PC、web 等。中心這部分是伺服器,其中有編譯的轉發伺服器還有 MCU 伺服器,如果牽涉到一定時延會轉推到互動直播的伺服器。雲信的視訊技術在 RTC 場景下主要部署在端側,如果是是直播點播的業務,雲信主要提供直播轉推部署的視訊轉碼服務。

RTC 場景的視訊技術

下面介紹網易雲信在 RTC 場景下面的視訊技術,主要分為三點。

新一代的音視訊 SDK 架構

下圖是網易雲信的音視訊 SDK 架構圖。去年年底,網易雲信釋出了新一代的音視訊 SDK——G2。在這個 SDK 架構裡面分為五層,其中媒體引擎層是核心所在地,主要分為三個視訊引擎,視訊、音訊和傳播引擎。

網易雲信視訊引擎架構和應用場景

下圖是雲信的一個視訊引擎的架構。主要分為五大模組,視訊前處理、視訊編碼、視訊 QoE、視訊解碼、視訊後處理。從採集端輸入,雲信支援的業務主要是分為兩種,一種是從攝像頭採集的真實的畫面,另一種是從螢幕分享採集的畫面。採集的畫面會先送入視訊前處理,雲信業務分佈在全球,有各種裝置,有一些低端裝置也有一些入門級的裝置,由於攝像頭的原因導致採集的畫面變差,為了提升和恢復這樣的畫質,視訊前處理完成了畫質處理後進入編碼壓縮,會傳送給網路。

由於各種網路的影響,我們會有一個視訊 QoE 模組,保證雲信使用者都有一個完美的視訊體驗。經過網路傳輸到了對端之後進行解碼,做一個後處理。後處理主要為了減輕或者提升由於網路壓縮傳輸帶來的畫質的損失。

下圖是視訊引擎的應用場景,雲信的視訊場景分為4種,一種是實時通訊應用場景,一種是低延時的應用場景,還有視訊會議相關的,互動直播類的場景以及互動教學類低延時的直播場景。

視訊引擎的關鍵技術

視訊前處理

視訊前處理主要是為了提升實時視訊端到端的視訊效果。網易雲信全球化的業務中,各種各樣的裝置都會接入,我們需要這樣的視訊前處理來提升畫質。

  • 視訊 AI 增強

這種技術是比較古老的技術,很多年前就開始研究了。隨著 AI 技術和深度學習的進步,視訊增強技術有了極大的提升。但是深度學習或者是 AI,運算量太大,雲信的業務遍佈全球,各種裝置都會接入,尤其是移動端,像印度市場,東南亞市場中入門級裝置比較多。

這些移動端對功耗和效能都非常敏感,稍微大一點的運算量,功耗和電量就會掉得很快,這導致出現了大模型,一個比較好的深度學習模型就很難在這些場景下落地。如果採用一些小模型,效果又不能得到保證。

我們的業務是通訊業務,需要傳到對端去。單純增強也許效果好,但傳到對端效果不一定好。經過解碼後的影像,雖然有增強效果,但它的塊效應比沒有增強的更嚴重,在本端表現可能比較好,但是高頻分量變多,結果導致了壓縮率過高,損失過大。

雲信通過兩個方法來解決以上問題。一是訓練易過擬合,另一個是增強後主觀可能變差。

首先有一個場景識別模組,可以識別出一些文字區域的內容、運動場景和遊戲場景,針對每種不同的場景會有不同的模型。比如說遊戲場景是一種模型,文字場景是一種模型,也許是同樣的模型但是可能引數不一樣,這樣可以保證運算能力足夠,同時效果也不錯。

我們的模型是採用的是小模型。前面提到模型不能太小,太小了表達能力不好,因此我們的模型是一種“輕量級模型”,引數量是1-2K,實際上達不到這種小模型效果,因為業界的很多小模型引數不到1K,可能只有幾百,它的網路程度是三到四層。因為我們有自研的高效的推理框架 NENN。它和開源的推理框架相比,對小模型做了獨有的優化,保證小模型的速度比其他開源框架速度快得多。

  • 視訊降噪

由於有的裝置或者攝像頭在暗場景下噪聲比較多,需要高頻噪聲消除掉不必要的 bit。如果進行降噪,有利於編碼,有利於傳輸,有利於提高主觀質量。

在 RTC 場景中降噪是一樣的,移動端業務居多,很多地區是入門級的裝置,對效能功耗非常敏感,複雜功耗無法使用的,速度快的演算法,效果又不好。如果採用不合適的降噪可能不僅把噪聲抹除掉了,也可能把有用的高頻分量減少,這樣對整個視訊質量會帶來不好的影響。

網易雲信在關注這個問題時,我們是從人眼主觀的感覺來考慮的。從人眼主觀來說,人眼觀看是有區別的,一些場景下人眼的解析度很高,分辨出很多高頻係數。另一些場景中,人眼解析度很低,解析度會急劇下降。

網易雲信採用了人眼敏感性分析方法,能夠提取出畫素級影像中的人眼敏感區域,我們寧願將降噪的係數降低,寧願放過一些噪聲,也不願意犧牲掉高頻係數。即使放掉了,人眼也感覺不出來,我們也有一個非常簡單但非常高效的噪聲估計演算法,這樣的兩種方法產生了一個權重值,因此視訊速度會很快,而且效果也不錯。

視訊編解碼

雲信的視訊編碼支援主流編碼器,包括應用最廣泛的264和265,還有基於對 RTC 的深刻理解,開發了自研的編碼器,叫 NE264CC。

雲信編碼器的速度非常快,我們的質量可以提升50%,跟265相比,我們編碼速度可以快60倍。下圖是我們自研的 NE264,這是一個非常優秀的協議,在行業界存在了20年,經久不衰,它也是目前覆蓋最多的一種實時通訊協議。雲信在264基礎上面研發了 NE264編碼器,有快速模式決策、高效亞畫素搜尋、自適應參考幀、 CBR 碼控。

從下圖中可以看到和 openh264、X264的編碼器以及 iphone 的編碼器相比,在編碼速度和編碼質量方面雲信都是領先的。同時可能會忽略的位元速率波動性,對於 RTC 來說,視訊質量和速度是一方面,還有一個很重要的方面就是位元速率的波動性。對於 RTC 嚴格的低延時場景來說,位元速率一波動就會帶來畫面抖動,解析度降低,在這裡面 NE264的位元速率波動性也是最小的。

下圖是與 X264-ultrafast 的比較,這是最快的一種模式,我們的速度比它降低了25%左右,但是我們的壓縮率比它提升了接近50%,如果同樣的質量,X264用一兆頻寬,我們只需要500,這是基本影像的優化。

針對螢幕共享的壓縮優化,業界有很多非常好的方案,比如說 H265+SCC、AV1、H264+SCC,這些都是一些非常好的想法。

網易雲信在思考這個問題時,我們認為對於 RTC 場景來說,264是使用最廣泛的協議,作為一種輕量級的協議,開銷非常小。264這種協議對成本來說是最小的。

另一方面,即使我們不改變協議,不增加工具,僅僅對編碼器進行優化,螢幕共享這種內容本身對於編碼端有很多可以挖掘的空間,我們基於264的協議,通過深挖螢幕共享的改進,來提升效果。下面是我們的成果一些成果,加與不加螢幕共享編碼演算法,在螢幕共享場景下,我們的壓縮率提升了36.72%,同時我們速度只慢了3%-4%。可以看到我們的壓縮率比 openh264提升了41%,速度基本不變。

再來看一下自研的 NE265,目前也在持續不斷的迭代中。NE265的特點是高效架構可實現的設計。對於計算複雜性的一些演算法都進行了非常精細的3D 優化。瞭解編碼器的都知道 veryslow 那一檔,我們速度比它快64倍,這還不是最快的檔位,最快的要比它快200倍以上。

264和265也進行了比較,我們和 faster 這個檔位進行了比較,265主要的缺點是速度慢。可以看到和X264 faster 這個檔位比快了近30%,同時壓縮率平均提升34.78%。這些測試序列用了官方標準測試序列以及雲信 RTC 業務相關的測試序列和社交娛樂的測試序列。

基於對 RTC 和音視訊通訊的深刻理解,我們發明了 NEVC,多尺度的視訊壓縮技術。相比 NE265,速度基本不變,但是壓縮率提升了,右邊的紋理提升得比較清楚,左邊的紋理基本上模糊掉了。我們講完了視訊編碼之後,碼就應該被壓縮了,應該送到網路去了。網路對 RTC 來說是最複雜的,尤其是在全球化的業務中,有各種不同的網路存在。如何保證在多網路、複雜的網路環境下面,視訊質量還能最佳,我們有一個視訊 QoE 的模組來支撐。視訊 QoE 模組將從視訊的流暢度、清晰度、質量平穩度、時延和效能功耗五個方面來進行保證。

視訊QoE

  • 視訊質量控制模組

視訊質量控制從視訊的流暢度、清晰度和質量平穩度三個維度來解讀。經過採集、前處理、編碼再傳送,最後傳給了網路,這裡的網路可能有各種不同的網路存在,比如有些頻寬很低的網路,有些有持續丟包的網路,或一些比較抖動的網路。

每種不同的網路不可能用一種解析度、一種幀率、一種位元速率來傳輸,這可能產生不同的很差的效果。我們這裡視訊質量控制模組叫 VQC,它會首先接收從網路 QoS 評估出來的一個網路頻寬或網路有效頻寬,根據這個頻寬分配合適的視訊解析度、視訊幀率,設定編碼器,達到最合適的視訊質量,同時影像在各種不同的網路中,有的是噪聲比較大的網路,有的是暗場景的網路,對於 VQC 的模組會進行採集資訊,會決定開啟或者關閉哪些視訊演算法開關,或者調整視訊引數,增強或降噪,還有編碼的一些演算法。

  • 裝置控制模組

雲信的業務遍佈全球,有各種不同的網路存在,比如亞非拉地區、印度以及東南亞的極端不好的網路,當然也包括歐美的,國內的網路是比較好的。另外一點是終端平臺的種類眾多,有高階手機,有低端手機有 PC 和平板,雲信的裝置控制模組根據不同的網路特點根據不同區域來設定視訊的演算法,同時根據裝置的平臺種類來設定我們的演算法。

比如對一些差的裝置用低解析度,低幀率;對比較好的裝置會用高幀率,用先進的演算法。

在實際過程中由於網路不是一成不變的,還有裝置的狀態、GPU 的佔用率等影響因素,裝置控制模組通過實時監測的資料來實時對演算法進行調整,達到最優。

視訊解碼

QoE 講完之後,碼流傳到了接收端進行視訊解碼。雲信視訊解碼的特點是非常高效且幾乎支援所有的視訊格式,互聯互通是沒有問題的。

視訊後處理

視訊後處理通過視訊螢幕內容優化和視訊超分優化,恢復和改善視訊畫質。雲信的視訊超分,網路引數量是2K-4K,網路層數小於8,我們有自研的 AI 推理引擎,進行獨有的優化,速度非常快,同時我們會加速,對於超分的效果有針對的資料集處理,利用蘋果或者變焦的手機,對不同焦段的資料進行採集,進行真實的資料訓練,同時也會用一些資料的預處理和增強來確定效果,主要優勢還是高效和快速。

下圖的表中,前三個是傳統的處理耗時,這是我們自研的超分,這是一個比較著名的輕量級的網路,從處理耗時來看,雲信 AI 的耗時比以 AI 著名的輕量級網路快了30多倍;從效果來看,雲信 AI 超分的視訊質量遠遠超過了非 AI 的效果,和經典的效果相差極其微小,基本上看不出差別。

其次是桌面共享優化,對於桌面螢幕共享不止有264的編碼做了後處理,針對文字場景的優化,對於深度學習來說,螢幕共享最大的難點是它的解析度一般是很大的,雲信有高精度的文字識別功能,對解讀出的文字進行增強,同時我們自研的推理框架 NENN 也會保持這種速度,這就是文字增強效果。

直播點播業務視訊技術

直播點播的架構

前面介紹了編譯伺服器,基本上是 RTC 低延時的線路,如果直播就走直播點播的短推伺服器,可以通過 CTO 下達。

直播點播的鏈路是從客戶端經過推流到邊緣媒體伺服器再轉推到直播轉碼再轉到 CDN。

這個鏈路有兩個問題,一個是裝置上傳時,它的畫質存在損失,是壓縮過的,有可能攝像頭採集本身就有問題,也會帶來損失。第二個是轉碼之後,經過 CDN 分發時,轉碼非常高。

為了解決以上兩個問題,雲信提出了智碼超清技術。首先利用深度學習視訊修復技術對轉碼前的視訊進行修復或增強,再基於人眼感知的編碼技術在視訊主觀質量不下降情況下節省位元速率。

影像首先經過視訊修復模組,對視訊進行了修復或增強或美化,再進行感知編碼,感知編碼會分析視訊內容,前置一個視訊分析模組。

智碼超清技術架構

視訊修復技術

視訊修復在業界是一種比較難的技術,由於退化模型多種多樣,視訊退化有非常多的原因,比如由於攝像頭噪聲的影響,壓縮上的損失,攝像頭本身不好造成的過曝欠曝,也有可能是對焦沒對好等。

雲信用了一種畫質評估演算法,通過深入學習演算法,得出這個視訊的退化模型是什麼。針對不同的退化模型用不同的恢復方法。如果是噪聲,我們會用視訊降噪的方法;如果是模糊,會用去模糊的方法;如果紋理不好,會用紋理增強的方法,還有畫面矯正等。通過評估再進行修復,能夠美化或者提升視訊的主觀效果。

視訊感知編碼技術

修復之後,就會進行編碼。雲信的感知編碼採用了 JND 這種技術,用人眼最小可察覺的誤差來度量人眼對影像中不同區域失真的敏感性。

JND 是一種提出比較多的技術。從下圖可以看出,客觀的失真是連續的曲線,人眼是一個階梯狀,有冗餘的地方可以優化,節省位元速率,同時主觀下降。

JND 是一種比較傳統的方法,但傳統 JND 編碼是一種以影像低層特徵為主的方法,比如紋理、邊緣、亮度、顏色。

雲信 JND 和其他不同的是加入了視訊內容分析。比如上圖中,我們會進行視訊分析,分析出這個影像的前景、人臉、文字等資訊,針對不同的資訊再單獨構造出 JND,來達到節省碼流的目的,經過這樣的流程會輸出前景、文字、人臉,每種特性都有 JND 的共識,得出 JND 的係數進行編碼。

下圖是智碼超清的測試結果,藍色代表的是雲信,其他顏色是業界友商的。左邊是人眼主觀的得分,因此越高越好,而壓縮後檔案大小顯然是越低越好。

網易雲信娛樂社交行業線視訊技術

這是網易雲信的重點投入和產出。

美顏技術

雲信的美顏技術,提供了磨皮、美白、大眼等26種功能,50款以上的濾鏡,年齡、性別、視線識別跟蹤,支援2D、3D 貼紙,這些業界都有,但我們的特點是能夠在美顏質量下高效的處理速度,這是我們核心的競爭優勢。

對720P 的視訊進行美顏、磨皮、美白、瘦臉等的開銷,在驍龍處理器上面,雲信的基礎美顏可以達到30,對於我們的海外市場,尤其是在印度、東南亞這樣的市場,在入門級機型遍佈的情況下,這是非常有競爭力的,整個視訊體驗是完全不一樣的。

背景分割技術

雲信背景分割技術,採用了大量的資料集。我們精度比較高,iou 達到0.93,魯棒性比較好,推理速度比較快,小於10毫秒。下圖是我們的精度和業界的友商對比,精度越高越好。

落地實踐

技術講完了,可以具體看看網易雲信的落地實踐。網易雲信的視訊引擎,已經服務了全球10000+以上的使用者。

既接入了 SDK 也接入了視訊引擎的使用者,比如LOOK直播,網易雲音樂線上 KTV,網易會議,還有網易內部的 POPO 等,其中還包括一些第三方基於會議元件的廠商。

網易新聞的直播點播應用,有云音樂大型演唱會都是使用了網易雲信的直播點播功能,比如去年非常著名的破紀錄人數的演唱會,也是用了雲信的視訊引擎,後續我們也會持續的在技術領域深耕下去,為大家帶來更多更好的產品。

相關文章