0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

揭秘華為云原生媒體網(wǎng)絡如何保障實時音視頻服務質(zhì)量

LiveVideoStack ? 來源:LiveVideoStack ? 作者:黃挺 ? 2021-05-25 15:43 ? 次閱讀

隨著5GAI的發(fā)展,內(nèi)容表達視頻化成為了當今的主流,很多行業(yè)對視頻分發(fā)有非常旺盛的需求。我們非常榮幸地請到了華為云的資深視頻架構師黃挺,為大家介紹基于互聯(lián)網(wǎng)的實時音視頻服務所面臨的挑戰(zhàn),分享華為云原生媒體網(wǎng)絡全方位保障實時音視頻服務體驗的實踐。

大家好,我是來自華為云的黃挺,目前負責華為云視頻架構設計的相關工作。今天我會給大家分享華為云原生媒體網(wǎng)絡是如何保障實時音視頻服務體驗的實踐。

77170d76-bc62-11eb-bf61-12bb97331649.jpg

我會從以上幾個部分進行分享,首先,解釋一下我們?yōu)槭裁葱枰粡埫襟w網(wǎng)絡;其次,會介紹一下華為云原生媒體網(wǎng)絡的整體架構設計,最后,會分享我們在如何改善實時音視頻體驗方面的實踐。

#01

為什么需要一張媒體網(wǎng)絡

1.1 內(nèi)容表達視頻化,各個行業(yè)都有視頻分發(fā)的需求

7733d5a0-bc62-11eb-bf61-12bb97331649.jpg

為什么我們需要一張媒體網(wǎng)絡呢?我主要總結了三大原因。第一個原因,我們看到內(nèi)容表達視頻化是目前一個很明顯的趨勢,有很多行業(yè)都對視頻分發(fā)有非常旺盛的需求。舉一個我親身經(jīng)歷的小例子,在今年過年的時候,我的家人想把手上帶了多年的戒指取下來,因為戴的時間比較久了,手指變粗了不少,取不下來。

最開始我們第一反應是去商場找營業(yè)員幫忙取下來,后來我抱著試一試的心態(tài),在抖音上搜索“取戒指”三個字。在搜索結果中找到了一個非常簡單的辦法,視頻時間不長,照著做很快就把戒指取下來了,而且對戒指沒有損害,手指也不痛。大家感興趣可以去搜索看看。

這其實就是知識內(nèi)容表達視頻化的一個表現(xiàn),這個趨勢在很多領域都已經(jīng)出現(xiàn)了,除了短視頻,比如現(xiàn)在的電商直播,在線教育,云游戲等行業(yè)也都出現(xiàn)了內(nèi)容表達視頻化發(fā)展趨勢。

1.2 新媒體表達形式出現(xiàn),對音視頻技術要求越來越高

775051ee-bc62-11eb-bf61-12bb97331649.jpg

第二個原因,我們看到未來會出現(xiàn)很多新的媒體表達形式。比如VR和最近比較火熱的自由視角,這些新的表達形式的出現(xiàn),都會給用戶帶來更加沉浸式的體驗。但它對音視頻技術的要求是全方位的提升,主要包括帶寬、時延、渲染復雜度等等。

可以看到左邊這張圖,以VR為例,如果帶上VR頭盔去觀看視頻,要做到極致的視網(wǎng)膜體驗,需要的碼率非常大,通過簡單的測算大概需要達到2Gbps的碼率。而且影響VR體驗的因素相較于平面視頻也變得更多了:刷新率、視場角、分辨率、MTP低時延、姿態(tài)跟蹤、眼動跟蹤等等。

1.3 互聯(lián)網(wǎng)對用戶沒有承諾服務質(zhì)量

775e819c-bc62-11eb-bf61-12bb97331649.jpg

我們一般會從需求側和供給側兩個維度來進行分析一個產(chǎn)品。前面兩個算是需求側的分析,接下來我們看一下供給側的分析。實時音視頻服務一個非常重要的供給側就是互聯(lián)網(wǎng)的基礎設施。我們都知道互聯(lián)網(wǎng)對用戶的服務質(zhì)量基本上是沒有承諾的。

怎么理解呢?首先,建設互聯(lián)網(wǎng)的成本非常昂貴,比如,需要在海底拉光纜,這個鋪設成本是非常昂貴的,這里包括人力的,物力的,另外一部分是無線頻譜的成本,比如3G、4G、5G的頻譜。所以互聯(lián)網(wǎng)的建設一定是需要考慮共享,共享就需要使用復用和交換技術。

怎么理解交換呢?

看下下面這個簡單的示意圖。假設我們要建4個網(wǎng)絡節(jié)點A、B、C、D;如果沒有交換,兩兩互聯(lián)需要6根線。但是如果使用了交換,則只需要4根線就可以了。所以從成本考慮,需要交換的技術;

我們知道交換一般有兩類技術,一類是Circuit switching ,另一類是Packet switching,Circuit switching的特點是容量預留,但是資源存在浪費,因為一旦預留,就算沒有數(shù)據(jù)傳輸,帶寬資源也是被占用。

而Packet switching技術則是鏈路資源共享的,所以可以做到更低成本的交換。而當時互聯(lián)網(wǎng)設計考慮到成本的因素,選擇了Packet switching這個技術進行演進;因為選擇了Packet switching,再加上best effort盡力而為的轉發(fā)模式,所以帶來了一系列丟包、重復報文、時延、亂序等問題。所以我們總結,丟包、重復、時延、亂序是這一代互聯(lián)網(wǎng)的固有屬性。

這里大家可以思考一個問題,為什么互聯(lián)網(wǎng)在最開始設計的時候,并沒有考慮在網(wǎng)絡層解決這個問題?;蛘邠Q一個更大的問題,如果今天重新設計互聯(lián)網(wǎng),我們會怎么做?會不會嘗試讓互聯(lián)網(wǎng)去解決這些問題。第二個思考的問題就是,在大家的日常應用開發(fā)過程中是怎么解決丟包、重復、時延、亂序的問題。

1.4 對我們的啟發(fā)

77905564-bc62-11eb-bf61-12bb97331649.jpg

通過前面的分析帶給我們一些啟發(fā),首先我們認為需要構建一張媒體網(wǎng)絡,通過這張網(wǎng)絡來彌補供給側和需求側之間的鴻溝,供給側就是互聯(lián)網(wǎng)的基礎設施,需求側就是飛速發(fā)展的音視頻業(yè)務。第二點:通過這張網(wǎng)絡來滿足不同行業(yè)對音視頻分發(fā)的旺盛需求。第三點,通過這張網(wǎng)絡來應對未來出現(xiàn)的新技術的挑戰(zhàn)。

#02

華為云原生媒體網(wǎng)絡架構介紹

前面解釋了為什么我們需要一張媒體網(wǎng)絡。接下來我會介紹一下華為云原生媒體網(wǎng)絡架構。

2.1 華為云原生媒體網(wǎng)絡

77c85374-bc62-11eb-bf61-12bb97331649.jpg

大家可以認為華為云原生媒體網(wǎng)絡是云原生視頻服務的一個技術底座,基于這張云原生的媒體網(wǎng)絡會構建上面一系列從生產(chǎn)到處理到分發(fā)到播放的云原生視頻服務,比如CDN、直播、RTC等等,通過這些云原生的視頻服務來支撐上面千行百業(yè)的客戶。我們這張云原生媒體網(wǎng)絡主要包括7大特點:扁平化、Mesh化、智能化、低時延、靈活性、多樣性和端邊云協(xié)同。

2.2 廣覆蓋:支持多種接入方式,實現(xiàn)全球互聯(lián)互通

780843da-bc62-11eb-bf61-12bb97331649.jpg

接下來我會介紹一下華為云原生媒體網(wǎng)絡,三個比較重要的架構設計目標。因為我們的服務對象遍布全球,所以首先就要是一張全球部署的網(wǎng)絡。這張網(wǎng)絡主要解決三大問題:第一就是需要支持多種接入方式,其次是節(jié)點的互聯(lián)互通;第三是要考慮一個高可用設計冗余覆蓋。

首先,因為我們是一個paas類服務,所以客戶很多,來自不同的行業(yè),以云會議為例,很多客戶對云會議的安全性和質(zhì)量要求非常高,所以他希望能夠從他的企業(yè)園區(qū)通過專線來接入這張網(wǎng)絡。但有的客戶,希望他的用戶能夠隨時隨地的接入這張網(wǎng)絡來分發(fā)業(yè)務,比如一些互聯(lián)網(wǎng)客戶,這個時候就需要支持互聯(lián)網(wǎng)的接入方式。

另外,因為我們大量業(yè)務的流量在邊緣終結所以國內(nèi)我們主要通過電信、聯(lián)通、移動單線接入,節(jié)省服務帶寬成本;國內(nèi)通過三線機房或者BGP資源,解決跨運營商網(wǎng)絡資源交換的問題;在海外,我們會優(yōu)先選擇網(wǎng)絡資源比較豐富的IXP節(jié)點接入;

通過華為云基礎網(wǎng)絡設施或者優(yōu)質(zhì)的互聯(lián)網(wǎng)資源實現(xiàn)跨國的互聯(lián)。另外我們在部署規(guī)劃的時候就要考慮高可用設計,高可用設計常見的手段是增加冗余,我們在規(guī)劃的時候考慮了站點冗余和帶寬冗余。我們會保證覆蓋區(qū)域用戶至少有3個站點可以提供對應質(zhì)量要求的服務。

另外,我們在做資源規(guī)劃的時候,會按照業(yè)務需要的帶寬的2倍以上進行規(guī)劃,應對部分突發(fā)。

2.3 全行業(yè):滿足娛樂、通信、行業(yè)視頻等不同業(yè)務要求

783e1564-bc62-11eb-bf61-12bb97331649.jpg

因為我們是一個Paas類服務,我們不能因為滿足了一類客戶的需求,就影響其他客戶的特性,而且要盡量快速的滿足不同客戶的需求。

這對技術提出了3個方面的要求:首先因為需要滿足不同行業(yè)的不同業(yè)務需求,所以業(yè)務應用開發(fā)的敏捷性就非常重要,我們需要讓新功能能快速上線到全球任意邊緣節(jié)點,同時為了降低新特性上線的風險,我們需要支持新特性在不同edge的灰度上線。我們把這種開發(fā)方式叫做Living on the edge。

第二個技術要求,也是我們非常重要的設計原則——Edge Services是獨立自治的。Edge Services就是我們圍繞著媒體網(wǎng)絡的網(wǎng)絡節(jié)點,部署的一系列微服務,我們統(tǒng)稱為Edge Services。每個Edge Services都必須是獨立自治的,因為我們是一張分布式的媒體網(wǎng)絡,肯定不希望某一個節(jié)點故障(比如網(wǎng)絡故障),就會對我們造成全網(wǎng)業(yè)務的影響。

所以每個Edge Services必須是獨立。什么是自治呢?當邊緣和控制中心網(wǎng)絡出現(xiàn)一些暫時的故障,那我的架構上一定要保證Edge Services內(nèi)部能夠自治,也就是說它本地的服務還是可以提供的。

我們可以看到左邊簡單列了四個微服務,其中局部調(diào)度就是為了減少對全局調(diào)度的依賴,當邊緣和控制中心網(wǎng)絡出現(xiàn)一些暫時的故障,邊緣依舊可以提供服務。另外,我們在Edge Services內(nèi)部的架構主要采用微服務進行劃分。

它的核心目的是幫助我們能夠快速靈活的上線一些特性,例如我們在edge service內(nèi)部有協(xié)議適配的微服務,這樣當我們需要支持新的終端,適配一些協(xié)議的時候,可以快速上線一個新協(xié)議的適配微服務,這樣可以快速上線,而且不會影響已經(jīng)上線的終端的支持。

第三個技術要求是Overlay網(wǎng)絡需要能夠靈活的定義它的路由。舉個例子,例如華為云會議,它需要支持大量高規(guī)格的政府級會議,而這個對安全性和質(zhì)量要求就非常高,我們需要讓進入我們媒體網(wǎng)絡的這張會議的所有報文都走我們?nèi)A為云的骨干網(wǎng),避免使用互聯(lián)網(wǎng)資源傳輸。

還有一些客戶對價格比較敏感,對于這類客戶我們就會盡量使用性價比較高的網(wǎng)絡資源來轉發(fā)他的報文。這就需要有一個可編程的overlay網(wǎng)絡實現(xiàn)靈活的網(wǎng)絡路由和轉發(fā)。

2.4 全流程:提供媒體生產(chǎn)、處理、分發(fā)、播放全流程服務

786f3d42-bc62-11eb-bf61-12bb97331649.jpg

第三個比較重要的設計目標是,我們的架構需要能夠提供端到端的,從生產(chǎn)到處理到分發(fā)到播放的全流程服務。我們把客戶主要分為兩類,一類是云原生,很多互聯(lián)網(wǎng)客戶,在誕生之初,就是在云上的,所以可以很方便的使用我們的云上服務。

但是有些客戶,需要從傳統(tǒng)的線下轉型到線上,為了服務于這樣的客戶,我們的生產(chǎn)和處理系統(tǒng)是基于華為統(tǒng)一的Huawei Cloud Stack統(tǒng)一技術棧,支持在線上線下靈活、快速部署,同時我們還提供了方便的SDK,它能夠跨終端、低功耗的來幫助客戶覆蓋更多的終端。

最后一個技術要求是整個實時媒體處理流水線是能夠做到靈活編排,動態(tài)管理的。舉個例子,我們?nèi)ツ旰投肤~聯(lián)合創(chuàng)新的項目,幫助斗魚把在端側的特效算法上移到了Edge services。這樣直接給斗魚帶來了三個好處,第一個好處是開發(fā)工作量變少了,原來的特效算法需要適配不同的終端,不同的芯片

第二個好處是特效算法的迭代速度變快了,只需要把特效算法在Edge services更新部署,客戶就能夠體驗到。第三好處是覆蓋的終端機型變多了,因為傳統(tǒng)在端側去開發(fā)的特效,其實有很多低端機是沒法體驗到的,如果把它放在我們的Edge services上,就可以快速去滿足很多低端機型的要求。

2.5 架構分層設計:適應互聯(lián)網(wǎng)的特征

787c505e-bc62-11eb-bf61-12bb97331649.jpg

最后分享一下我們一個非常重要的的架構分層的設計思想。我們借鑒了計算機網(wǎng)絡系統(tǒng)的設計思想??梢韵胂笠幌拢绻麤]有現(xiàn)在這套計算機網(wǎng)絡分層系統(tǒng),我們的應用開發(fā)是怎樣的體驗。可能我需要去list整個網(wǎng)絡拓撲的節(jié)點,需要去尋找最優(yōu)的路徑,把我的消息從a發(fā)到目的地b,在這個過程中還要去處理各種網(wǎng)絡的異常,比如丟包、重傳、亂序等等,這顯然是對應用開發(fā)非常不友好的。

計算機網(wǎng)絡系統(tǒng)設計就是解決這些問題。首先就是layering分層的思想,底層有鏈路層,屏蔽不同鏈路傳輸技術的差異性,比如我們支持5G之后上層的應用是不用修改的。在往上就是網(wǎng)絡層,它主要有2大功能,轉發(fā)和路由,所以不需要每個應用自己去定義轉發(fā)路徑。在往上是End to End layer。這是對上面?zhèn)鬏攲?、表達層。應用層的一個統(tǒng)稱。而分層的目的就是模塊化,降低耦合度,每一層聚焦解決每一層的問題。

而我們云原生媒體網(wǎng)絡架構分層也是借鑒了這個思想,我們在網(wǎng)絡層進行增強設計,改善報文轉發(fā)的時延和到達率。我們通過在End to End layer的自研實時傳輸協(xié)議來讓上層的實時音視頻應用開發(fā)更加簡單。這樣我們的應用開發(fā)就可以更加聚焦業(yè)務邏輯。同時我們抽象出媒體處理模塊,這樣音視頻相關的編解碼技術,前后處理技術,就可以獨立演進,快速創(chuàng)新。

2.6 架構分層設計-Network Layer

78e16016-bc62-11eb-bf61-12bb97331649.jpg

在介紹我們在網(wǎng)絡層和End to End layer的一些關鍵設計之前,首先來看一下網(wǎng)絡層有什么問題?;ヂ?lián)網(wǎng)在設計之初有一個非常重要的質(zhì)量屬性,就是互聯(lián)互通的高可用性,我們知道互聯(lián)網(wǎng)是由上萬個ISP組成的,任何一個ISP故障,網(wǎng)絡還是可以正常的通信。

其中BGP協(xié)議就是一個非常重要的設計,他主要考慮了聯(lián)通性,但是并沒有去做一些服務質(zhì)量的感知。我們可以看到左邊這個圖,用戶A要發(fā)一個消息給用戶B,跨運營商,它很有可能會經(jīng)過互聯(lián)網(wǎng)穿越很多個不同的ISP,這就會帶來很多問題。

比如會加重丟包重傳,而且這些關鍵問題很多是非技術因素,比如很多運營商針對某一個網(wǎng)絡的網(wǎng)絡策略不一定是質(zhì)量最優(yōu),它可能是成本最優(yōu),比如有一些冷土豆或熱土豆的路由策略。

第二個原因,有可能運營商今天晚上要做一個設備升級,需要運維人員操作一些配置變更,而配置變更過程中有可能出現(xiàn)人為出錯造成鏈路故障,還有可能就是這些區(qū)域有一個熱門事件,可能會造成擁塞。

78ef124c-bc62-11eb-bf61-12bb97331649.jpg

為了解決這個問題,我們決定對網(wǎng)絡層進行增強,這里我們主要有2個技術手段;一個是underlay,一個是overlay。

1)首先是underlay,我們通過華為云全球網(wǎng)絡基礎設施,改善網(wǎng)絡的接入和互聯(lián)質(zhì)量,一旦進入我們的underlay網(wǎng)絡就可以避免和互聯(lián)網(wǎng)其他流量競爭帶寬,既改善了質(zhì)量,又保障了安全性。

2)其次是overlay部分,我們除了自建骨干網(wǎng),還會部署一些overlay的節(jié)點,實現(xiàn)基于不同Qos目標優(yōu)化報文傳輸路徑和高效轉發(fā),而不是讓報文任意轉發(fā)。我們在網(wǎng)絡層的設計原則也是非常經(jīng)典的控制面與數(shù)據(jù)面分離的設計思想,簡單來說,控制面負責路由,控制整個網(wǎng)絡的運行,數(shù)據(jù)面負責轉發(fā)。

我們?yōu)榱俗寯?shù)據(jù)轉發(fā)能夠更加簡單,也采用了網(wǎng)絡中非常經(jīng)典的一個設計思想:源路由算法的思想,核心目的也是為了降低轉發(fā)設備的復雜度。具體來說,就是當一個報文進入我們網(wǎng)路的第一轉發(fā)節(jié)點的時候,系統(tǒng)就會把報文要經(jīng)過的所有轉發(fā)節(jié)點信息,包括目的節(jié)點都封裝在報文頭中,這樣每個轉發(fā)節(jié)點收到報文后,只需要解析報文頭,就知道下一跳要發(fā)送到哪里,這樣可以大大降低轉發(fā)設備的復雜度。

另外還有1個非常重要的設計原則,就是我們對網(wǎng)絡層不做可靠性承諾要求,雖然我們不保障可靠性,但是我們依舊會利用冗余糾錯、多路徑傳輸?shù)燃夹g改善報文轉發(fā)的時延和到達率。這也是我們?yōu)槭裁窗堰@層叫做網(wǎng)絡層的原因,他依舊關注的是路由和轉發(fā)。只是做了一些增強。

2.7 架構分層設計-End to End layer

78fcc978-bc62-11eb-bf61-12bb97331649.jpg

網(wǎng)絡層的增強能夠幫助我們?nèi)崿F(xiàn)更低時延的轉發(fā)以及更高的到達率。再往上是我們的End to End layer,這里大家可以先思考一個問題,前文提到互聯(lián)網(wǎng)有這么多固有屬性,丟包,亂序,重傳,看上去對開發(fā)者非常不友好。但是互聯(lián)網(wǎng)的發(fā)展卻非常的繁榮,有一代代互聯(lián)網(wǎng)的應用email、web、IM、audio、video各類業(yè)務出現(xiàn),這又是什么原因?

這里分享下我的思考,非常重要的一點就是協(xié)議,在End to End Layer出現(xiàn)了很多重要的協(xié)議,大大降低了我們應用開發(fā)者的技術的門檻,比如我們從TCP到HTTP到QUIC等,每一代的互聯(lián)網(wǎng)的應用發(fā)展背后都有一個協(xié)議的出現(xiàn)。End to End layer核心設計目標就是要定義一個好的協(xié)議和開發(fā)框架,讓應用開發(fā)變得簡單。

怎么做到這一點呢?可以看到左邊這個圖,中間部分是我們的自研實時傳輸協(xié)議大致的功能圖,我們會在它的北向提供一個統(tǒng)一的接口。通過這一套北向接口可以讓我們既能夠開發(fā)實時音視頻業(yè)務,又能開發(fā)可靠的消息類的業(yè)務,同時我們再看一下它的南向,通過協(xié)議棧屏蔽了底層使用UDP或是ADNP協(xié)議的差異性,這樣應用開發(fā)也會變得更加簡單。

協(xié)議棧設計的目的是為了讓應用開發(fā)變得簡單。所以我們還抽象了兩個模塊,NQE和QOS,通過這兩個模塊提供回調(diào)的方法把網(wǎng)絡的信息能夠快速反饋給上層應用,比如編碼模塊。編碼模塊就可以快速的自適應網(wǎng)絡的條件,來調(diào)整它的編碼參數(shù)。

另外一個非常重要的設計原則就是高效。因為我們知道,前面提到了在未來有很多的端是IoT端,IoT端有一個很大的特性,就是對功耗的要求非常高,我們希望在協(xié)議棧設計之初就要考慮這個問題。所以我們不希望輕易的在這一層去增加額外的一些沒必要的拷貝,這里遵循的是ALF的設計原則,這個原則也是非常經(jīng)典的。RTP當時設計的時候也是遵循了這個設計原則。

另外,我們的協(xié)議棧設計也參考了quic的設計思想。支持多路復用、網(wǎng)絡多路徑、華為LinkTurbo、優(yōu)先級管理等功能。這里分享一下我們的一個小經(jīng)驗,就是在開發(fā)自由視角和VR這類業(yè)務,對帶寬的要求非常高,這個時候我們就會開啟多路徑的功能,可以獲得比較大的體驗上的改進。

2.8 華為云原生媒體網(wǎng)絡目標架構

79092aa6-bc62-11eb-bf61-12bb97331649.jpg

最后我對整個媒體網(wǎng)絡的目標架構做一個簡單的總結。

1)簡單來講就是把復雜問題簡單化,分而治之,通過分層的設計來讓每一層能夠相互解耦,快速演進;

2)每一個Edge services都是獨立自治的,來提高整個服務的可用性;

3)通過把Edge services按照微服務進行劃分,能夠讓到我們更加靈活的去適應客戶的需求,實現(xiàn)按照微服務級別的快速上線。

#03

實時音視頻服務質(zhì)量保障實踐

第三部分我會分享一下我們在實時音視頻服務質(zhì)量保障上的一些實踐,這里主要是一些算法設計上的思考,前文主要是架構上的一些思考。

3.1 視頻、音頻、網(wǎng)絡是影響體驗的關鍵系統(tǒng)因素

791a55f6-bc62-11eb-bf61-12bb97331649.jpg

如上圖所示,我們做了一個影響體驗的相關維度的分析。從客觀指標到主觀指標,再到QoE的關系做了一個簡單的映射圖。我們通過分析,發(fā)現(xiàn)影響實時音視頻服務體驗質(zhì)量核心的三個系統(tǒng)性因素是視頻,音頻和網(wǎng)絡,接下來我就分別針對這三部分的算法實踐進行介紹。

3.2 視頻編碼技術

792872da-bc62-11eb-bf61-12bb97331649.jpg

首先我們來看一下視頻編碼。我們把視頻編碼技術按照設計目標進行了一個簡單的分類,第一類,它的設計目標是如何科學的減少視頻編碼的冗余,降低編碼失真對人眼主觀感受造成影響。因為我們的實時音視頻業(yè)務還是主要面向人的,所以有一些非常經(jīng)典的優(yōu)化思路,比如:從人出發(fā),分析人眼的視覺特點,基于這些特點來優(yōu)化編碼算法,圖中簡單列了幾大類和編碼相關度比較高的人眼視覺特點。

還有一種優(yōu)化思路,就是從源出發(fā),也就是從內(nèi)容出發(fā),我們會分析不同場景內(nèi)容的特點優(yōu)化編碼算法,比如計算機生成圖像的特點有低噪、大平坦區(qū)域等等。

第二個設計目標是如何科學的增加冗余來抵抗弱網(wǎng)傳輸對人員主觀感知的影響。這邊簡單列了幾類增加冗余的編碼,比如極端的全I幀編碼、幀內(nèi)刷新的模式以及長期參考幀和SVC編碼。

在一些空間視頻的業(yè)務里面,我們?yōu)榱烁纳圃诳臻g定位的時延,會使用一些全I幀編碼結合一些普通編碼來使用,減少空間定位的時延。我們在云游戲里為了減少大I幀的突發(fā),會采用幀內(nèi)刷新的編碼方式。在實時音視頻服務中,長期參考幀和SVC是比較常見的編碼方式。

3.3 PVC感知編碼

7935ee4c-bc62-11eb-bf61-12bb97331649.jpg

下面介紹一下我們具體的一些編碼技術。我們云視頻團隊聯(lián)合華為2012中央媒體技術院,從分析人眼視覺系統(tǒng)出發(fā),改進了PVC感知編碼算法。我們的算法經(jīng)歷了幾輪迭代。最新的感知編碼2.0算法實現(xiàn)了1Mbps碼率提供了1080P 30幀高清畫質(zhì)的體驗;

算法的主要改進思路是:首先通過預分析和編碼反饋信息,對場景和區(qū)域進行區(qū)分,實時通話場景主要的高敏感區(qū)域包括:人臉區(qū)域和靜態(tài)區(qū)域。針對不同場景和區(qū)域,采用不同的編碼參數(shù)和碼率分配策略,例如非高敏感區(qū)域分配較低的碼率;

2.0算法在1.0的基礎上,我們在碼控方面加入了AI的技術,相較于之前,固定的碼率和分辨率組合,新的方法,我們基于AI的感知碼控,獲取不同場景下最優(yōu)的碼率和分辨率組合,達到低帶寬下更優(yōu)的主觀效果。

3.4 SCC編碼

7947f222-bc62-11eb-bf61-12bb97331649.jpg

第二編碼技術是SCC編碼,它主要應用于計算機生成圖像的編碼,比如在教育或者會議里的屏幕共享場景,我們的算法相較于x265 ultrafast檔位,它編碼的壓縮性能提升了65%,在相同的計算資源的情況下,我們的編碼速度提升了50%。

針對屏幕共享的場景,我們也解決了它特有的一些問題。在共享的時候,經(jīng)常會共享一些圖文,比如word或者ppt。這一類相對是比較靜止的,這個時候編碼參數(shù)一般會采用低幀率,盡量保證它畫質(zhì)的編碼方式,但很多時候共享圖文之后會切換到共享視頻。如果不能很好的去感知這一點,我們觀看視頻的體驗就是不連續(xù)的畫面,類似于gif。

為了解決這一問題,我們采用了基于視頻時空域的復雜度分析,來自適應視頻編碼幀率的辦法。這樣在靜態(tài)的圖文畫面下能夠有一個高品質(zhì)的圖像,切換到視頻共享時,也能夠保證流暢性。

我們解決的第二個問題是從YUV444下采樣到YUV420場景帶來的色彩度的失真問題,因為我們知道很多時候屏幕共享靜態(tài)的圖文,對色彩度的要求是比較高的。

但是把它從YUV444下采樣到YUV420的時候,UV域的信號會出現(xiàn)很大的衰減,左圖是沒有使用新算法之前的效果,右圖是應用了新算法之后的效果,明顯可以看到右圖字體會更加清晰,色彩度的失真會更加小,這里的核心是使用了低復雜度色彩校正的算法。

3.5 自適應長期參考幀編碼

7985ca0c-bc62-11eb-bf61-12bb97331649.jpg

前面兩個編碼技術是降冗余,而自適應長期參考幀編碼技術是科學的提升冗余。為了更好的理解,我們先把復雜問題簡單化,理解一下什么是固定長期參考幀,我們看到左邊上面的圖,紅色的是I幀,綠色是長期參考幀,藍色是正常的P幀。

通過這樣的一個參考幀的方式,打斷了原來正常的Ipppp前向參考的依賴關系,這樣當它的P2或者P3丟失的時候,后面P5的解碼是不會受影響的,還是可以繼續(xù)解碼,這就會改善它的流暢性。

但是還是有不足的,比如這種綠色的長期參考幀P5丟失了,因為之后的P幀都依賴它,所以都無法解碼。第二個問題就是固定,因為長參考幀的關系,它會帶來一定的冗余,就會導致相同帶寬下的質(zhì)量會有所下降,所以我們希望在網(wǎng)絡好的時候,能夠盡量讓冗余變小一點,來改善畫質(zhì),所以我們就提出了自適應長期參考幀的辦法。

自適應長期參考幀的核心思路就是兩點,第一個是增加反饋機制,在解碼端增加一個反饋機制,告訴編碼端這個長期參考幀我收到了,編碼端知道這個幀收到之后,后面就參考這幀進行編碼。第二個是增加一個動態(tài)mark長期參考幀的機制,也就是我會根據(jù)網(wǎng)絡的QOS情況去動態(tài)優(yōu)化長期參考幀編碼的步長,在網(wǎng)絡好的時候步長調(diào)短一點,網(wǎng)絡差的時候調(diào)長一點。

但是在增加反饋機制之后會帶來一個問題,當在一些網(wǎng)絡模型RTT比較長的時候,我的反饋周期會比較長。而且反饋報文還可能會丟失,需要再次反饋,這樣就會導致長期參考幀的步長變得非常長。

一旦步長變長之后,它的編碼質(zhì)量就會進行下降,甚至會下降到業(yè)務無法接受的地步,在我們優(yōu)化算法的時候也考慮到這一點,當長期參考幀的步長太長,我們會強制P幀去參考離它最近的長期參考幀,而不會完全去依靠反饋機制。這樣做會帶來兩個比較好的優(yōu)化效果,一個是在突發(fā)丟包場景下它的畫面流暢性變好了,同時它有一個比較好的網(wǎng)絡自適應的能力,能夠兼顧流暢性和畫質(zhì)。

3.6 網(wǎng)絡傳輸技術:求互動性與質(zhì)量的最優(yōu)解

79afe634-bc62-11eb-bf61-12bb97331649.jpg

前面是視頻編碼技術的一些分享,接下來看一下我們在網(wǎng)絡傳輸上的實踐。我們對網(wǎng)絡傳輸?shù)亩x,核心目標就是要求互動性和質(zhì)量的最優(yōu)解。我們知道網(wǎng)絡傳輸技術,主要抵抗丟包,抵抗時延,抵抗抖動。常見的技術比如ARQ、FEC、不對等保護,還有抖動估計、緩存伸縮等等。

除了做到抗抖動抗丟包,還需要有擁塞控制,擁塞控制的核心目的就是讓 “發(fā)送速率”盡可能去逼近“可用速率“,同時盡可能保持低延遲,如果發(fā)送速率和網(wǎng)絡可用帶寬不匹配,會造成丟包、抖動或者帶寬利用率低。

還有一個非常重要的就是信源信道聯(lián)動,我們前面看到的動態(tài)長期參考幀就是通過信道的信息動態(tài)調(diào)整編碼參數(shù)的一種實現(xiàn)方式,基于這個聯(lián)動,才能夠更好的去改善我們的體驗。

3.7 基于強化學習,提升帶寬預測精度,改進QoE體驗質(zhì)量

79c76cf0-bc62-11eb-bf61-12bb97331649.jpg

無論是擁塞控制,還是信源信道聯(lián)動,在這個過程中帶寬預測的算法都是非常重要的。傳統(tǒng)的做法是利用人工的經(jīng)驗,通過一些決策樹算法,針對不同網(wǎng)絡模型下的帶寬做一些預測,但是在復雜場景下,這種做法的效果不是特別理想,所以我們希望通過強化學習的方式來改進這一點。

主要思路是基于接收端反饋的網(wǎng)絡QoS,主要反饋四個信息:接收速率、發(fā)送速率、丟包率和時延抖動,基于這些信息,通過強化學習的方法來提高帶寬的預測準確率。算法優(yōu)化后,我們的高清占比得到了30%的提升,卡頓率下降了20%。

3.8 音頻3A技術:改善音頻清晰度

79d5a306-bc62-11eb-bf61-12bb97331649.jpg

最后我會分享一下在音頻方面的技術實踐。好的3A算法對于語音清晰度體驗至關重要。我們把AI技術應用到3A算法中來改善語音的體驗。

首先,我們把AI應用在回聲消除上,回聲消除是整個3A里非常重要的一個步驟。傳統(tǒng)算法在穩(wěn)態(tài)的環(huán)境下做的回聲消除,已經(jīng)比較成熟,一般都處理的比較好。

但是當環(huán)境出現(xiàn)一些變化,比如我拿著手機免提打電話,在家里,從房間走到陽臺,這個時候環(huán)境出現(xiàn)了變化,回聲消除就會遇到很多挑戰(zhàn),通過AI的方式能夠比較好的處理這些問題。特別是針對雙講的場景,我們新的算法很好的解決了漏回聲和丟字的問題。

其次就是降噪,傳統(tǒng)的噪聲,比如像風扇、空調(diào)這種穩(wěn)態(tài)的噪聲,相對來說比較好抑制,而我們基于AI的降噪算法不僅能較好的處理平穩(wěn)噪聲,在應對例如鍵盤、鼠標敲擊的聲音或者是喝水、咳嗽這種突發(fā)的噪聲的場景下,我們也可以快速的進行噪聲抑制。

另外一個3A中比較重要的環(huán)節(jié)就是自動增益,在通話場景下,自動增益主要是通過基于對人聲的識別來進行增益。這個時候,對人聲的檢測VAD是非常重要的,這一塊我們也是通過AI的技術來提升了人聲檢測的精確度,改善自動增益的效果。

3.9 音頻丟包恢復技術:降低丟包對音頻體驗的影響

7a1ad41c-bc62-11eb-bf61-12bb97331649.jpg

另一個和視頻技術有些差異的是音頻的丟包恢復的技術,左邊這個圖也是一個比較經(jīng)典的丟包恢復的技術地圖,它主要分為兩類,一類是基于主動的丟包恢復,一類是基于被動的丟包恢復。

主動丟包恢復技術主要包括常見的FEC、ARQ等。被動恢復主要有三種方法,插值法,插入法還有重新生成法。算法優(yōu)化思路和視頻一樣,都是從研究人出發(fā),視頻是研究人眼到視覺特點,那么音頻是研究人的發(fā)聲機制,基頻的信息一定程度反映了聲帶的振動頻率情況。

而包絡的信息,則一定程度反映了嘴型的情況,基于這兩個信息結合AI的聲碼器技術可以做到100毫秒左右的音頻報文丟失的恢復水平。我們知道一個中文字的發(fā)聲一般是150毫秒到200毫秒,傳統(tǒng)的PLC基于信號的恢復方式,一般可以做到50ms音頻信號的恢復,現(xiàn)在我們基于AI的方式是可以做到100ms音頻信號的恢復。

3.10 案例1:華為暢連,全球首款全場景音視頻通話產(chǎn)品

7a6a1068-bc62-11eb-bf61-12bb97331649.png

最后分享兩個案例。我們的產(chǎn)品不僅要服務外部客戶,也要對內(nèi)支撐華為很多其他的產(chǎn)品服務。我一直開玩笑說,支持內(nèi)部客戶其實是更難的,而且比支持內(nèi)部客戶更難的是支持華為的內(nèi)部客戶,他們的要求是非常高的。

現(xiàn)在我們支持了華為手機的暢連服務,暢連是全球首款全場景(除了支持手機,還會支持華為的大屏、華為的平板、華為的筆記本、手表、手環(huán)的通信)的實時音視頻通話類產(chǎn)品,我們幫助暢連實現(xiàn)了在1Mbps碼率條件下,提供高品質(zhì)1080p30幀的通話效果。

3.11 案例2:網(wǎng)絡研討會:會議+直播融合體驗,開大會更簡單

7adac088-bc62-11eb-bf61-12bb97331649.jpg

比支持一個華為內(nèi)部客戶更難的是支持兩個。我們支持的第二個內(nèi)部客戶就是華為云會議,華為云會議的網(wǎng)絡研討會的場景也是基于我們的實時音視頻服務開發(fā)的,我們現(xiàn)在可以做到的單場網(wǎng)絡研討會同時支持三千方的觀眾,其中有一百方是互動的,在今年下半年我們的云會議產(chǎn)品會做到單場網(wǎng)絡研討會同時支持一萬方的觀眾,五百方互動。

#04

總結

最后我對今天分享的內(nèi)容做一個總結。首先,我們可以明顯的看到視頻業(yè)務正在驅(qū)動整個互聯(lián)網(wǎng)技術發(fā)展,包括音視頻編碼/傳輸技術,以及邊緣計算和邊緣網(wǎng)絡等技術。所以我們需要一個服務或者系統(tǒng)來彌補互聯(lián)網(wǎng)基礎設施(供給側)和快速發(fā)展的視頻業(yè)務(需求側)之間的鴻溝。

第二點,今天的分享僅僅只是開始,隨著實時音視頻技術應用場景的增加,數(shù)據(jù)的驅(qū)動,會使得我們的云原生媒體網(wǎng)絡架構和各類算法持續(xù)優(yōu)化。

最后,希望華為云原生視頻服務能夠和大家一起,攜手走進視頻“新時代”。

謝謝大家。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    87

    文章

    29382

    瀏覽量

    267664
  • 計算機網(wǎng)絡

    關注

    3

    文章

    333

    瀏覽量

    22073
  • 5G
    5G
    +關注

    關注

    1351

    文章

    48261

    瀏覽量

    562487

原文標題:解密華為云原生媒體網(wǎng)絡如何保障實時音視頻服務質(zhì)量

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    盤點那些常見音視頻接口

    我們熟知的一些常見音視頻接口,發(fā)展至今在日常使用中已經(jīng)漸漸少了。但是在工業(yè)領域的音視頻連接,依然能看到其身影。這些看似消失的接口,它們現(xiàn)在發(fā)展成什么樣子了?本期我們將做一個大盤點。
    的頭像 發(fā)表于 09-09 14:34 ?302次閱讀

    常見音視頻接口的靜電浪涌防護和濾波方案

    音視頻接口在現(xiàn)代多媒體設備中扮演著至關重要的角色,它們確保了音視頻信號在不同設備間的順暢傳輸,各種類型的音視頻接口滿足了多樣化的應用場景需求。 在
    的頭像 發(fā)表于 06-25 11:28 ?520次閱讀

    音視頻產(chǎn)品EMC整改案例解析

    音視頻產(chǎn)品EMCRE整改案例解析
    的頭像 發(fā)表于 05-20 16:49 ?313次閱讀
    <b class='flag-5'>音視頻</b>產(chǎn)品EMC整改案例解析

    【RTC程序設計:實時音視頻權威指南】信令與媒體協(xié)商

    的功能,它可以評估網(wǎng)絡的可用寬帶以優(yōu)化實時通信質(zhì)量,傳統(tǒng)寬帶檢測方法有多種,每一種都有其優(yōu)缺點,需要根據(jù)應用場景和需求選擇合適的方法。 在實時通信領域,
    發(fā)表于 04-29 17:24

    【RTC程序設計:實時音視頻權威指南】音視頻的編解碼壓縮技術

    音視頻所載有的信息在通過傳輸?shù)臅r候就需要壓縮編碼。 其中,文本壓縮是指通過使用各種算法和技術,將文本數(shù)據(jù)表示為更緊湊的形式,以減少存儲空間。 霍夫曼編碼是一種無損壓縮算法,它可以根據(jù)字符出現(xiàn)
    發(fā)表于 04-28 21:04

    音視頻SoC與AI技術融合,帶來更智能的音視頻處理解決方案

    ,如WiFi路由器和物聯(lián)網(wǎng)設備。在安防、智能音頻等領域,對SoC芯片的算力要求相比智能手機、服務器等略低。 ? 人工智能技術與音視頻SoC 的融合??????????????????????????????????????? ? 隨著人工智能技術的快速發(fā)展,
    的頭像 發(fā)表于 04-26 01:20 ?3978次閱讀

    【RTC程序設計:實時音視頻權威指南】音頻采集與預處理

    閑暇之余,繼續(xù)學習【RTC程序設計:實時音視頻權威指南】這本書。 書中對于音頻采集的介紹非常詳細和全面,包括原理、方法、技術細節(jié)以及實踐應用等方面的內(nèi)容。 音頻采集是實時音視頻通信中
    發(fā)表于 04-25 10:41

    【RTC程序設計:實時音視頻權威指南】新書一瞥

    應用,為開發(fā)者提供了完整的RTC解決方案。 首先RTC 是一個涉及音視頻編解碼、網(wǎng)絡傳輸、實時交互等多個領域的復雜技術。希望能通過這本書從基礎知識開始,逐步深入到高級應用和系統(tǒng)設計。 其次,RTC 技術為
    發(fā)表于 04-22 09:09

    音視頻解碼生成:打造極致觀影體驗的關鍵技術

    音視頻解碼生成是多媒體播放的基礎。它將壓縮編碼的音視頻數(shù)據(jù)還原為原始的、高質(zhì)量音視頻信號,使用戶能夠觀看到清晰、流暢的
    的頭像 發(fā)表于 02-25 14:43 ?386次閱讀

    音視頻解碼生成在多媒體制作中的應用

    視頻編輯和后期制作中,音視頻解碼生成技術用于將原始素材解碼為可編輯的格式。編輯人員可以對這些解碼后的素材進行剪輯、特效處理、色彩調(diào)整等操作,以制作出高質(zhì)量的影視作品。 2. 音頻處理 音頻處理是多
    的頭像 發(fā)表于 02-21 14:39 ?316次閱讀

    音視頻解碼生成與流媒體傳輸?shù)慕Y合

    音視頻解碼生成與流媒體傳輸是現(xiàn)代數(shù)字媒體技術中兩個不可或缺的部分,它們的結合為用戶提供了高質(zhì)量、實時性的多
    的頭像 發(fā)表于 02-21 14:36 ?317次閱讀

    萬興科技發(fā)布國內(nèi)首個音視頻媒體大模型“天幕”

    萬興科技近日正式發(fā)布了國內(nèi)首個音視頻媒體大模型——萬興“天幕”,并宣布大模型研發(fā)中心將正式落戶馬欄山。
    的頭像 發(fā)表于 02-04 11:42 ?1174次閱讀

    音視頻

    音視頻技術都喜歡深究內(nèi)部最核心的原理和機制,尤其是ffmpeg這個編解碼庫,可以說是音視頻領域事實上的標準。語音智能算法,語言語義分析和理解,流媒體服務器等高端技術也都基于它而構建。
    發(fā)表于 11-23 08:51

    華為高品質(zhì)萬兆園區(qū)網(wǎng)絡如何對音視頻業(yè)務“望聞問切”

    在數(shù)字化日益普及的今天,遠程協(xié)作已成為企業(yè)高效運行的關鍵。但當大量音視頻業(yè)務開始與企業(yè)的業(yè)務流、工作流深度融合,園區(qū)網(wǎng)絡的承壓也就順理成章。由此帶來的便是音視頻業(yè)務的頻繁卡頓、緩沖、撕裂、斷連以及高
    的頭像 發(fā)表于 11-21 20:45 ?635次閱讀
    看<b class='flag-5'>華為</b>高品質(zhì)萬兆園區(qū)<b class='flag-5'>網(wǎng)絡</b>如何對<b class='flag-5'>音視頻</b>業(yè)務“望聞問切”

    基于Dynamips GUI的網(wǎng)絡服務質(zhì)量實驗設計

    電子發(fā)燒友網(wǎng)站提供《基于Dynamips GUI的網(wǎng)絡服務質(zhì)量實驗設計.pdf》資料免費下載
    發(fā)表于 11-08 14:56 ?0次下載
    基于Dynamips GUI的<b class='flag-5'>網(wǎng)絡服務質(zhì)量</b>實驗設計