
弱網(wǎng)的場景
弱網(wǎng)與常規(guī)的互聯(lián)網(wǎng)還是不一樣的,常規(guī)的互聯(lián)網(wǎng)對(duì)于極限挑戰(zhàn),已經(jīng)是不錯(cuò)的。無論是直播、點(diǎn)播,基礎(chǔ)設(shè)施、網(wǎng)絡(luò)設(shè)備以及壓縮處理技術(shù)等已經(jīng)完全可以滿足高清、超高清、多視點(diǎn)等需求了。但對(duì)于弱網(wǎng)來說,比如:應(yīng)急救災(zāi)、遠(yuǎn)洋海事、無人圖傳、邊防監(jiān)控等,這些場景往往需要實(shí)時(shí)的通信,但這些場景下,依賴基站通信存在一定的自然原因可能會(huì)導(dǎo)致通訊受限,甚至中斷。比如:大規(guī)模泥石流、地震等自然災(zāi)害。
弱網(wǎng)環(huán)境的主要問題有兩個(gè)方面,一方面是帶寬極低,其實(shí)也不是很大問題,只要網(wǎng)絡(luò)平穩(wěn)。那么就涉及到第二個(gè)問題,網(wǎng)絡(luò)抖動(dòng)。其實(shí)弱網(wǎng)不僅僅在應(yīng)急救災(zāi)、遠(yuǎn)洋海事等,尤其現(xiàn)在 5G 上來后,頻率變高,需要直線傳輸,當(dāng)遇到許多阻礙的時(shí)候會(huì)帶來網(wǎng)絡(luò)的變化比較大,這種也稱為弱網(wǎng)。當(dāng)然,有時(shí)候,wifi 下也會(huì)存在弱網(wǎng)的出現(xiàn)。面對(duì)帶寬低,主要是信息量,提高壓縮。面對(duì)網(wǎng)絡(luò)抖動(dòng)大,通過網(wǎng)絡(luò)控制、機(jī)器學(xué)習(xí)來學(xué)習(xí)網(wǎng)絡(luò)的狀態(tài)。目前我們的研究還是比較領(lǐng)先于國際的,尤其是對(duì)于壓縮編碼。在現(xiàn)有的模型算法中,我們的性能有很大的優(yōu)勢。
弱網(wǎng)環(huán)境會(huì)導(dǎo)致丟包,需要向前糾錯(cuò)FEC、丟包重傳ARQ等手段對(duì)抗,會(huì)犧牲一定的時(shí)延和帶寬。
向前糾錯(cuò)FEC:通過數(shù)據(jù)包冗余發(fā)送機(jī)制,比如接收11個(gè)包中的任意10個(gè),可以恢復(fù)另一個(gè)。
丟包重傳ARQ:請(qǐng)求重發(fā)
網(wǎng)絡(luò)延時(shí)高,要盡量減少重傳,優(yōu)先選擇FEC;網(wǎng)絡(luò)延時(shí)不高,但大量丟包的情況選擇ARQ。
編解碼技術(shù)提升弱網(wǎng)下視頻質(zhì)量
l自適應(yīng)GOP結(jié)構(gòu)
一組圖像,以I幀開頭,固定間隔。用戶出現(xiàn)丟包,需等下一個(gè)I幀到來才能解碼,中間P幀無法單獨(dú)解碼。動(dòng)態(tài)GOP,當(dāng)出現(xiàn)丟包或新用戶接入,主動(dòng)申請(qǐng)I幀。
l動(dòng)態(tài)編碼參數(shù)設(shè)定
設(shè)定一個(gè)質(zhì)量可控的QP范圍,基于實(shí)時(shí)統(tǒng)計(jì)的碼率以及QP情況動(dòng)態(tài)調(diào)整幀率和分辨率。
lSVC編碼技術(shù)
伸縮視頻編解碼,可采用分層視頻編解碼,一般分三種類型:時(shí)域分層、空域分層、質(zhì)量分層。網(wǎng)絡(luò)存在擁塞問題,通過自適應(yīng)的丟曾減少擁塞帶來的卡頓。
Agora SOLO 是什么?
Agora SOLO(以下簡稱“SOLO”)是由聲網(wǎng)Agora自主研發(fā)的一款面向不穩(wěn)定網(wǎng)絡(luò)的音頻編解碼器,它以 Silk 為基礎(chǔ),融合了帶寬擴(kuò)展(BWE)和多描述編碼(MDC)等技術(shù),使其能在較低復(fù)雜度下?lián)碛腥蹙W(wǎng)對(duì)抗能力。SOLO 編解碼器兼容WebRTC,可集成到基于WebRTC 自主研發(fā)的產(chǎn)品中。
圖 1. SOLO 編碼器架構(gòu)
圖 2. SOLO 解碼器架構(gòu)
SOLO的抗丟包策略與傳統(tǒng)方法不同。從通信原理來說,信源編碼是盡可能去追求高壓縮比,去冗余。而信道編碼是追求強(qiáng)糾錯(cuò),靠加冗余來實(shí)現(xiàn)糾錯(cuò)。Agora SOLO?就是把加冗余和減冗余結(jié)合起來,不重要的地方減冗余,重要的地方加冗余。
在傳輸過程中,它會(huì)將一個(gè)包拆分為兩個(gè)進(jìn)行傳輸,如果對(duì)端收到其中一個(gè),則解碼恢復(fù)出一個(gè)有限失真的信號(hào);如果對(duì)端收到兩個(gè)包,則可解碼恢復(fù)出一個(gè)高質(zhì)量的信號(hào)。即 SOLO 不需要等待對(duì)當(dāng)前網(wǎng)絡(luò)丟包狀態(tài)的統(tǒng)計(jì),只需要直接把抗丟包做到編解碼內(nèi)部。好處有三點(diǎn):
l可實(shí)現(xiàn)更低延時(shí);
l可實(shí)現(xiàn)更高質(zhì)量,當(dāng)收到一個(gè)包時(shí)質(zhì)量達(dá)到的普通編解碼器水平,收到兩個(gè)包達(dá)到高質(zhì)量編解碼水平;
l可面向多人環(huán)境。
SOLO 關(guān)鍵技術(shù)
n帶寬擴(kuò)展
SOLO 使用帶寬擴(kuò)展的主要原因是希望減少計(jì)算復(fù)雜度,在 Silk WB 模式中,16khz 的信號(hào)都會(huì)進(jìn)入后續(xù)處理模塊,而對(duì)于語音來說,8khz 以上的信息是非常少的,這部分信息進(jìn)入到后續(xù)處理模塊,會(huì)帶來一定的計(jì)算資源浪費(fèi)。MDC 因?yàn)橐腩~外分析模塊處理多條碼流,又會(huì)引入額外的復(fù)雜度,這是 MDC 在近些年來落地不順暢的重要原因之一。為了減少復(fù)雜度,我們在編碼寬帶信號(hào)前,將其分為 0-8k 的窄帶信息和 8-16k 的高頻信息。只有窄帶信息會(huì)進(jìn)入到后續(xù)正常分析、編碼流程中,這樣后續(xù)的計(jì)算量就減少了一半,同時(shí)得益于帶寬擴(kuò)展算法,整體質(zhì)量不會(huì)有明顯下降。高頻信息部分,SOLO 使用獨(dú)立的分析與編碼模塊,默認(rèn)將高頻信息壓縮成1.6kbps 的碼流。這部分高頻信息可以在解碼器內(nèi)結(jié)合低頻信號(hào)恢復(fù)出高頻信號(hào)。
n結(jié)合delay-decision 的 MDC
在 Silk 中,delay-decision 模塊是一個(gè)滯后計(jì)算編碼誤差的模塊,它可以從多個(gè)候選碼流中選擇誤差最小的碼流作為編碼輸出,一定程度上來說,它使得標(biāo)量量化擁有了矢量量化的性能。SOLO 利用delay-decision 模塊,實(shí)現(xiàn)了多描述碼流的分析與構(gòu)建。SOLO 的MDC主要作用于濾波器輸出的殘差信號(hào), SOLO 會(huì)根據(jù)當(dāng)前信號(hào)狀態(tài),對(duì)殘差信號(hào)做多增益控制:計(jì)算出 MD 增益 a(0<a<1),將 a 作用于奇數(shù)子幀,并將(1-a)作用于偶數(shù)子幀以產(chǎn)生兩段互補(bǔ)的殘差信號(hào),這里記作residual 1 和residual 2。
圖 3. 多描述殘差信號(hào)產(chǎn)生
隨后,這兩段殘差信號(hào)會(huì)進(jìn)入到新的delay-decision 模塊中,每個(gè)殘差信號(hào)使用不同的抖動(dòng)和量化方法,一共可以產(chǎn)生 8 種不同的備選狀態(tài),兩兩組合起來共有 64 種備選合成狀態(tài),新的delay-decision 模塊會(huì)對(duì)每個(gè)殘差信號(hào)的獨(dú)立誤差和兩個(gè)殘差信號(hào)的合成誤差進(jìn)行加權(quán)求和,決定出最 佳的兩個(gè)殘差信號(hào)進(jìn)入到編碼模塊
n輸出碼流組包
圖 4. 編碼器碼流整合及組包
SOLO 默認(rèn)配置為每次輸入 40ms(2 幀),輸出兩段互補(bǔ)的多描述碼流,解碼器接收到任一段碼流,即可解碼出40ms 的信號(hào)。為了方便接收端區(qū)分碼流的順序,碼流第 一個(gè)字節(jié)的右數(shù)第 4 個(gè) bit 是碼流順序標(biāo)志位,第 一段碼流標(biāo)志位的值是 0,第二段碼流標(biāo)志位的值是 1。接收端在進(jìn)行碼流處理時(shí),可依據(jù)此標(biāo)志位進(jìn)行碼流順序判斷。
公眾號(hào) 掃碼咨詢
![]() | 上海市閔行區(qū)中春路4999號(hào)莘莊商務(wù)樓1326室 |
![]() | service@covond.com |
![]() | www.jxetj.com |
![]() | 交換機(jī):18017588179(孫經(jīng)理) 無人機(jī):13311882358(孫總) |