视频通信关键技术探索及实践
導讀: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 等,其中還包括一些第三方基于會議組件的廠商。
網易新聞的直播點播應用,有云音樂大型演唱會都是使用了網易云信的直播點播功能,比如去年非常著名的破紀錄人數的演唱會,也是用了云信的視頻引擎,后續我們也會持續的在技術領域深耕下去,為大家帶來更多更好的產品。
總結
以上是生活随笔為你收集整理的视频通信关键技术探索及实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易云信亮相 LiveVideoStac
- 下一篇: 元宇宙大潮来袭?业内首个虚拟形象实时互动