基于QoE的实时视频编码优化:低功耗,低延时,高质量
在實(shí)時(shí)通信領(lǐng)域,只有當(dāng)Codec的優(yōu)化適應(yīng)了當(dāng)前的網(wǎng)絡(luò)狀況,設(shè)備平臺及應(yīng)用場景,用戶才能得到最佳的體驗(yàn)。在LiveVideoStackCon2018大會中聲網(wǎng)Agora視頻工程師吳曉然詳細(xì)介紹了如何設(shè)計(jì)與實(shí)現(xiàn)基于QoE的實(shí)時(shí)視頻編碼優(yōu)化。本文由LiveVideoStack整理而成。
文 / 吳曉然
整理 / LiveVideoStack
大家好,我是吳曉然。本次將為大家介紹基于QoE的實(shí)時(shí)視頻編碼優(yōu)化探索。實(shí)時(shí)音視頻的傳輸框架大同小異,雖然不同廠商在一些技術(shù)細(xì)節(jié)的打磨上略有差異,但都有一個(gè)共同的目標(biāo)那就是QoE——用戶體驗(yàn)質(zhì)量。那么其根本原因何在?
首先,互聯(lián)網(wǎng)時(shí)代本身主要面向用戶,用戶體驗(yàn)是是衡量產(chǎn)品價(jià)值的重要維度,從用戶的角度出發(fā)進(jìn)行優(yōu)化無可厚非;其次,基于用戶體驗(yàn)的優(yōu)化是當(dāng)下最好的選擇,目前我們的學(xué)術(shù)積累相對于歐美發(fā)達(dá)國家仍有一定差距,單純地依靠學(xué)術(shù)創(chuàng)新推動技術(shù)改革的道路不但效率較低,也會影響到我們追趕時(shí)代潮流的步伐,故而我們可以從優(yōu)化用戶體驗(yàn)的角度出發(fā),實(shí)踐一些有用的創(chuàng)新舉措從而推進(jìn)技術(shù)的改革;最后,中國擁有全世界最大的互聯(lián)網(wǎng)消費(fèi)群體,我們的互聯(lián)網(wǎng)日活躍量都是以億為單位計(jì)量,龐大的用戶基數(shù)下蘊(yùn)含著寶貴的數(shù)據(jù)財(cái)富,這些數(shù)據(jù)對任何一家互聯(lián)網(wǎng)企業(yè)而言都是一種無形的巨額資產(chǎn)。數(shù)據(jù)是21世紀(jì)的石油,誰能夠充分發(fā)掘數(shù)據(jù)背后的價(jià)值誰就能成為市場的主導(dǎo)者,為用戶提供更優(yōu)質(zhì)的服務(wù),打造更優(yōu)秀的產(chǎn)品。
本次分享內(nèi)容將主要圍繞以下幾個(gè)方面:
1.?實(shí)時(shí)視頻通訊的QoE
理想條件下,采集端獲取到的原視頻數(shù)據(jù)會經(jīng)過前處理、編碼后通過網(wǎng)絡(luò)傳輸至解碼端,解碼端接收數(shù)據(jù)處理后再進(jìn)行后處理與渲染,最后得到輸出的視頻產(chǎn)品。如果輸出視頻產(chǎn)品清晰度不佳那么我們可通過提高分辨率、減小QP、增加算法復(fù)雜度等方法提高清晰度;而如果流暢度不佳那么則可通過提高fps的方法優(yōu)化流暢度。
但在現(xiàn)實(shí)條件下,不穩(wěn)定的網(wǎng)絡(luò)使得在網(wǎng)絡(luò)傳輸流程中易出現(xiàn)帶寬變化、延時(shí)抖動、網(wǎng)絡(luò)丟包等不良狀況:即使我們有帶寬預(yù)測的算法,但帶寬變化的不可預(yù)知性仍然是困擾我們的一大難題;延時(shí)抖動更是任何一個(gè)網(wǎng)絡(luò)中或多或少都會發(fā)生的狀況;而隨機(jī)丟包對實(shí)時(shí)傳輸造成的影響最大,當(dāng)網(wǎng)絡(luò)狀況很差時(shí)高丟包率會導(dǎo)致視頻播放相當(dāng)卡頓并且無計(jì)可施。面對這些問題時(shí),單純地提高分辨率、減小QP、增加算法復(fù)雜度或提高fps只會加劇帶寬的占用并增加處理時(shí)間與功耗,其結(jié)果就會導(dǎo)致網(wǎng)絡(luò)擁塞、使得實(shí)時(shí)性無法達(dá)到要求,尤其移動端的用戶體驗(yàn)會被大打折扣,繼而出現(xiàn)手機(jī)發(fā)熱、待機(jī)時(shí)間下降等諸多不良狀況。
根據(jù)理論與實(shí)踐我們總結(jié)得出基于QoE的實(shí)時(shí)視頻編碼優(yōu)化目標(biāo)為:終端顯示高質(zhì)量、接受端低延時(shí)、發(fā)送端低功耗。
2.?Agora的探索與實(shí)踐
明確了實(shí)時(shí)視頻編碼優(yōu)化目標(biāo)之后,與大家分享一下我們在此方面進(jìn)行的探索與實(shí)踐。我們的優(yōu)化策略可以大致分為三個(gè)部分:前處理、編解碼、后處理。
2.1 前處理
1)基于機(jī)器學(xué)習(xí)的帶寬估計(jì)
在之前的內(nèi)容當(dāng)中有提到帶寬估計(jì)的難以預(yù)測性。這表示即使我們獲取了十分全面的參數(shù),也難以準(zhǔn)確借助一種經(jīng)典模型或算法準(zhǔn)確預(yù)測帶寬量。但是在神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)的幫助下我們可以較為準(zhǔn)確地估計(jì)帶寬的動態(tài)變化。通過上億幀針對帶寬、延時(shí)、jitter、丟包率、接收端的buffer size、分辨率、FPS等一系列參數(shù)設(shè)計(jì)的強(qiáng)化學(xué)習(xí)訓(xùn)練神經(jīng)網(wǎng)絡(luò)從而使其具備預(yù)測下一時(shí)段帶寬量的能力,這是一種區(qū)別于傳統(tǒng)經(jīng)典模式的全新解決思路。當(dāng)然此方法并不適用于所有網(wǎng)絡(luò)模型,如在一些網(wǎng)絡(luò)狀況較好抖動延時(shí)并不嚴(yán)重的情況下使用經(jīng)典模型優(yōu)化也可獲得良好效果;而當(dāng)處于隨變性很強(qiáng)的網(wǎng)絡(luò)環(huán)境中時(shí),機(jī)器學(xué)習(xí)也許會讓問題迎刃而解。
2)幀率及分辨率自適應(yīng)調(diào)整
實(shí)時(shí)通訊包括很多不同場景,而視頻幀率與分辨率的參數(shù)調(diào)整和視頻內(nèi)容或場景緊密相關(guān)。例如我們可以對一些場景變化較輕微的畫面采取適當(dāng)降低幀率的方式減輕帶寬與數(shù)據(jù)壓力,而對一些場景變化激烈的畫面如動作片打斗等則不能采取降低幀率的方法,否則觀眾可輕易察覺到幀率降低造成的畫面模糊與卡頓。
我們應(yīng)當(dāng)根據(jù)不同的視頻內(nèi)容場景匹配調(diào)整不同的參數(shù),如對清晰度要求很高而流暢度要求較高的直播場景而言,可以通過調(diào)整其幀率實(shí)現(xiàn)對實(shí)時(shí)編碼前處理過程的優(yōu)化;而對流暢度要求很高的通訊場景而言,則可以在保證清晰度的同時(shí)通過調(diào)整分辨率來優(yōu)化實(shí)時(shí)編碼的前處理過程。因?yàn)樵谝话闱闆r下,采用視頻通訊交流的雙方彼此都比較熟悉,在可接受范圍之內(nèi)降低分辨率不會為二者交流帶來明顯障礙;而一旦出現(xiàn)卡頓或延時(shí)則會直接導(dǎo)致雙方交流溝通的不暢甚至失敗,使用戶體驗(yàn)大打折扣。
教育場景對清晰度與流暢度的要求都非常高,其原因在于教育場景背后行業(yè)的巨大投資與學(xué)術(shù)嚴(yán)謹(jǐn)。家長對孩子的大筆投入,使得這些孩子值得通過更高質(zhì)量的音視頻收獲嚴(yán)謹(jǐn)?shù)闹R。
對游戲場景而言,雖然良好的清晰度與流暢度都至關(guān)重要,但流暢度是需要首先保證的參數(shù)。特別像是對一些實(shí)時(shí)戰(zhàn)略游戲而言,有時(shí)游戲就在幾秒甚至幾百毫秒間分出勝負(fù)。早年參加WCG大賽的選手為了避免液晶顯示器刷新率低導(dǎo)致的拖影對游戲比賽造成不良影響,會優(yōu)先使用CRT顯示器上場比賽。
總而言之,根據(jù)視頻的不同內(nèi)容場景自適應(yīng)調(diào)整幀率與分辨率,是一種有用的實(shí)時(shí)編碼前處理優(yōu)化策略。
2.2 編解碼
1)區(qū)域檢測及ROI編碼
區(qū)域檢測及ROI編碼屬于前處理且與Codec相結(jié)合。區(qū)域檢測可用于前景與背景檢測、畫質(zhì)增強(qiáng)、美顏特效等;而落實(shí)到Codec層面則用于ROI編碼。ROI編碼可明顯增強(qiáng)特定場景中局部畫面的畫質(zhì),如對流暢性與清晰度要求都很高的游戲應(yīng)用場景而言,如果碼率無法達(dá)到流暢性與清晰度的要求,那么我們可在編碼時(shí)通過ROI編碼將游戲視頻畫面中局部重點(diǎn)區(qū)域如中心戰(zhàn)斗區(qū)域精細(xì)化從而優(yōu)化視頻碼率。雖然邊緣畫面可能會出現(xiàn)一定劣化,但只要用戶視覺重點(diǎn)范圍內(nèi)的畫面保持清晰,對用戶體驗(yàn)的影響非常之小。
2)碼率控制算法優(yōu)化
這一步的優(yōu)化主要針對線上教育應(yīng)用場景。其中最重要的元素之一是老師的板書,我們需要確保觀看視頻的學(xué)生可看清老師在黑板上書寫的內(nèi)容。上課時(shí)學(xué)生的注意力會集中在老師書寫的文字區(qū)域,除了規(guī)范文字書寫之外我們也可通過一些可使文字更加清晰的前處理手段提升板書清晰度。從編碼角度而言就是將文字用更小的量化步長精細(xì)化編碼,從而大大提升老師學(xué)生使用在線教育產(chǎn)品的用戶體驗(yàn)。
我們一直在努力改進(jìn)碼率控制算法的優(yōu)化,針對碼率控制算法的優(yōu)化有多種,包括機(jī)器學(xué)習(xí)在內(nèi)的方法都可用于優(yōu)化碼率控制算法。上圖列舉了一種較為經(jīng)典的碼率控制算法,通過SATD與模糊復(fù)雜度計(jì)算qscale,而后經(jīng)過qscale除以rate actor與qscale乘以overflow兩次計(jì)算,最終得出QP。這樣一套經(jīng)典的碼率控制算法可從容處理諸多場景。因?yàn)閷鹘y(tǒng)視頻的優(yōu)化是基于幀展開的,幀與幀之間的時(shí)間間隔均勻,故對于一般視頻會采取平均分配碼率的策略;而在實(shí)時(shí)通訊應(yīng)用場景中幀和幀之間的時(shí)間間隔并不均勻,在此情況下渲染畫面時(shí)為每幀都平均分配同樣的碼率顯然是不合理的,因此實(shí)時(shí)通訊應(yīng)用場景下的碼率控制仍需進(jìn)一步優(yōu)化。我們曾探索通過調(diào)整復(fù)雜度、兩幀之間的間隔等并尋找更好的解決方案,后來我們發(fā)現(xiàn)調(diào)整分配碼率可實(shí)現(xiàn)目標(biāo)效果。通過多種方式探索不同分配碼率的方式,關(guān)于這一點(diǎn)仍需繼續(xù)探索。
Just Noticeable Difference
Just Noticeable Difference是指最小可視差,就像人手無法準(zhǔn)確區(qū)分兩個(gè)差距幾克的蘋果一樣,我們身體的感官如視覺系統(tǒng)對每種信號的接受程度不一,刺激有效的閾值也不同,只有當(dāng)信號刺激達(dá)到一定閾值之后我們才能夠?qū)ζ渥鞒龇磻?yīng)。如果將這個(gè)道理過渡到碼率分配,我們可采取為視頻中那些有效刺激閾值較高人眼不易察覺的視覺元素分配較少碼率,而為那些有效刺激閾值較低人眼可敏感察覺的視覺元素分配更多碼率的策略調(diào)整碼率分配,即可實(shí)現(xiàn)人眼無法察覺的有效碼率控制算法優(yōu)化,提升用戶體驗(yàn)。
軟編碼與硬編碼
講到這里,我想大家會有一些疑問:軟件編碼與硬件編碼究竟存在什么區(qū)別?在編碼模塊上,軟件編碼主要是在CPU上進(jìn)行而硬件編碼則主要在GPU、VPU、DSP、FPGA等多種硬件編碼模塊上進(jìn)行;雖然硬件編碼的速度明顯快于軟件編碼,但軟件編碼的質(zhì)量好于硬件編碼是業(yè)界公認(rèn)的事實(shí);除此之外,軟件編碼相對于硬件編碼硬件在功耗上更大,這主要體現(xiàn)在用戶使用手機(jī)長時(shí)間看視頻會感受到明顯手機(jī)發(fā)熱;帶寬要求是指一些編碼器會對帶寬下降進(jìn)行要求,例如蘋果的編碼器會限制視頻質(zhì)量的最低水平,一旦碼率過低或質(zhì)量過差編碼器則拒絕編碼輸出。但對于實(shí)時(shí)通訊而言,帶寬的未知變化使得我們無法準(zhǔn)確判斷什么時(shí)候碼率會降低到無法編碼的低值,因此硬件編碼器在處理實(shí)時(shí)視頻方面存在一些限制;至于GOP結(jié)構(gòu),軟件編碼器的GOP結(jié)構(gòu)相對更靈活而硬件編碼器的相關(guān)參數(shù)是固定不變的;參數(shù)調(diào)整響應(yīng)方面,軟件編碼在參數(shù)調(diào)整下達(dá)之后會從下一幀開始迅速響應(yīng)而硬件編碼則需要一定過程才能做出響應(yīng)甚至需要重啟進(jìn)程;最后在可移植性與可維護(hù)性方面,由于不同平臺的軟件編碼都是基于一套代碼,無論是維護(hù)還是移植成本都較低,而硬件編碼由于牽扯到硬件適配的工作,無論是可移植性還是可維護(hù)性都遜于軟件編碼。
3)軟硬件編碼動態(tài)切換
那么應(yīng)該選擇哪種編碼方案?在選擇軟件編碼還是硬件編碼方案上,我們應(yīng)當(dāng)參考以下幾個(gè)維度做出正確判斷:第一個(gè)是設(shè)備平臺,也就是移動端、PC端等。如果是PC端,由于PC的CPU性能足夠強(qiáng)大,我們更傾向于選擇軟件編碼,而如果是移動端則需要綜合移動端設(shè)備的處理器性能等硬件參數(shù)擇優(yōu)選擇;第二個(gè)是CPU負(fù)荷,CPU除了需要處理編碼工作之外還需處理其他必要任務(wù),如果CPU當(dāng)中的采集、渲染、前處理等模塊在工作時(shí)占用了CPU的大量資源并且難以對其進(jìn)行調(diào)配優(yōu)化,那么我們就需要考慮一下使用硬件編碼方案從而降低CPU的工作負(fù)荷;第三個(gè)維度是設(shè)備剩余電量,如果設(shè)備剩余電量十分充足那么軟件編碼對手機(jī)續(xù)航造成的壓力并不大。而如果手機(jī)電量岌岌可危則選擇硬件編碼方案可適當(dāng)減輕編碼過程對手機(jī)續(xù)航的影響。除此之外還有目標(biāo)碼率、幀率、分辨率、丟包率等參考維度,我們需要綜合以上維度選擇適宜的動態(tài)編碼方案。
2.3 后處理——超分辨率
超分辨率屬于后處理流程,其好處是可在不理想帶寬條件下發(fā)送分辨率較低的視頻流,而后再借助超分辨率技術(shù)提升其分辨率從而在保證視頻觀看體驗(yàn)的前提下避免網(wǎng)絡(luò)擁塞與網(wǎng)絡(luò)丟包。除此之外,超分辨率技術(shù)也能夠在幫助節(jié)省帶寬的同時(shí)通過提升單位傳輸幀數(shù)提高視頻流暢程度,明顯提升實(shí)時(shí)通訊的用戶體驗(yàn)。
3.?視頻質(zhì)量評分系統(tǒng)
視頻質(zhì)量評分系統(tǒng)主要用于判斷畫面質(zhì)量的優(yōu)劣,其客觀標(biāo)準(zhǔn)主要為MSE、PSNR、SSIM;視頻質(zhì)量評價(jià)基于單張圖片并依賴原始碼流完成,在主觀一致性上存在缺陷。
傳統(tǒng)判斷視頻質(zhì)量的方案是在一定幀率下選取多張圖像并取其質(zhì)量平均值,這樣的合理之處在于視頻本身是多張圖像的合集,但不合理之處在于視頻不單單是多張圖像的合集,還存在每幀圖像時(shí)間長短等變量的影響,下圖展示的是傳統(tǒng)圖像質(zhì)量指標(biāo)和主觀一致性方面的差異:
第一張圖是原畫而后五張圖是加入了不同噪聲的效果。這種處理是基于均方差完成的,而傳統(tǒng)的視頻質(zhì)量評價(jià)方案只會察覺到兩張圖之間的差距,如果我將均方差調(diào)成一致那么雖然系統(tǒng)判斷畫面質(zhì)量優(yōu)良但用戶的主觀感受一定是非常糟糕的。檢驗(yàn)結(jié)果與主觀一致性的差距,迫使我們需要對視頻質(zhì)量評分系統(tǒng)作出進(jìn)一步優(yōu)化。
?
而VMAF則可有效避免以上情況的發(fā)生,其優(yōu)勢在于VMAF通過視覺信息保證度、細(xì)節(jié)丟失指標(biāo)、延時(shí)碼率、運(yùn)動量等多種維度更全面地評判視頻質(zhì)量。其關(guān)鍵部分是加入了運(yùn)動量計(jì)算,也就是計(jì)算兩幀之間均方差大小并將其作為影響視頻質(zhì)量的因素之一,均方差越小則視頻質(zhì)量越高;如果兩幀之間差值越大,運(yùn)動量越大,那么視頻質(zhì)量就相應(yīng)越低。
上圖展示的是DMOS視頻質(zhì)量測試算法的擬合曲線,從這些客觀指標(biāo)我們可以看出傳統(tǒng)視頻質(zhì)量評價(jià)方案的主觀一致性較低而VMAF則表現(xiàn)得更好。在這里需要強(qiáng)調(diào)的是,如果原畫本身進(jìn)行了質(zhì)量增強(qiáng)或者其它參數(shù)調(diào)整,那么得出的視頻質(zhì)量指標(biāo)一定是不客觀,不準(zhǔn)確的。因此我們不能將通過VMAF等視頻質(zhì)量評價(jià)方案得出的結(jié)果作為判斷視頻質(zhì)量的唯一標(biāo)準(zhǔn)。
因此就需要建立一套視頻質(zhì)量主觀標(biāo)準(zhǔn)。我們的主觀評判標(biāo)準(zhǔn)分為畫面清晰度、質(zhì)量平穩(wěn)度、視頻內(nèi)容、觀測條件、視頻流暢度五個(gè)方面。其中,平衡畫面清晰度與視頻流暢度是我們努力實(shí)現(xiàn)平衡的兩項(xiàng)指標(biāo),而質(zhì)量平穩(wěn)度是指在變化的網(wǎng)絡(luò)帶寬下保證視頻質(zhì)量在一定可接受的范圍內(nèi)波動,而非大幅度的質(zhì)量突躍或陡降;觀測條件則是一項(xiàng)受多重因素影響的指標(biāo),如終端屏幕質(zhì)量、性能等都會對其產(chǎn)生影響,也許在一塊1080p屏幕上播放720p視頻所帶來的用戶體驗(yàn)會明顯優(yōu)于在一塊720p屏幕上播放1080p視頻所帶來的用戶體驗(yàn);視頻內(nèi)容同樣與用戶體驗(yàn)息息相關(guān),但很難為這一指標(biāo)確立統(tǒng)一的標(biāo)準(zhǔn),例如使用同樣的幀率與分辨率展現(xiàn)一段連續(xù)的激烈打斗戲和另一段穿插了感情戲的激烈打斗戲,也許用戶會疲于觀看快速、模糊的打斗場面抑或是更喜歡凌厲的影像風(fēng)格,這給用戶帶來的感受一定是不同的。
4.?未來編碼器
大家知道AV1已經(jīng)成為現(xiàn)實(shí),就現(xiàn)在看來雖然AV1在壓縮效率上十分出色,但其較高的復(fù)雜度限制了自身的應(yīng)用場景。也許這種復(fù)雜程度對視頻點(diǎn)播等實(shí)時(shí)性要求并不高的應(yīng)用場景而言尚可接受,但對實(shí)時(shí)通訊而言,高復(fù)雜度一定是需要盡可能避免的;而H.266(VCC)等還需時(shí)日,我們拭目以待。
VVC相對于HEVC有50%的提升,大約在2021年可實(shí)現(xiàn)硬件級Codec,而First or Final Standard最早會在2019~2020年公開。我們并不需要熱衷于追趕潮流,我們需要做的是將Codec打磨好,使其能夠以良好性能用于實(shí)時(shí)通訊網(wǎng)絡(luò)提升用戶體驗(yàn),畢竟良好的用戶體驗(yàn)才是我們努力完善的終極目標(biāo)。
精品文章推薦
技術(shù)干貨:
Pixel 3的超分辨變焦技術(shù)
馮迅:YY多媒體實(shí)時(shí)傳輸系統(tǒng)演進(jìn)
語音編解碼技術(shù)演進(jìn)和應(yīng)用選型
使用級聯(lián)SFU改善媒體質(zhì)量和規(guī)模
英特爾QSV技術(shù)在FFmpeg中的實(shí)現(xiàn)與使用
人物專訪:
一切從用戶的需求與體驗(yàn)出發(fā)
雷輝:讓視頻會議conferencing like TV
梁俊斌:音頻技術(shù)可以延展眾多應(yīng)用場景
吳曉然:實(shí)時(shí)通信需要Codec和網(wǎng)絡(luò)模塊結(jié)合
總結(jié)
以上是生活随笔為你收集整理的基于QoE的实时视频编码优化:低功耗,低延时,高质量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 音视频技术开发周刊 77期
- 下一篇: 2018收官蓉城,探秘多媒体开发新趋势