本文由上海交通大學(xué)教授宋利在LiveVideoStackCon2020線上峰會(huì)的演講內(nèi)容整理而成,從分析視頻傳輸系統(tǒng)延遲入手,詳細(xì)介紹視頻編碼延遲的產(chǎn)生機(jī)制,總結(jié)優(yōu)化編碼延遲的技術(shù)手段和業(yè)界典型的低延遲編碼方案,討論不同場(chǎng)景的延遲要求,并對(duì)后續(xù)技術(shù)演進(jìn)發(fā)展方向進(jìn)行展望。
本次分享的主題是互動(dòng)場(chǎng)景下的低延遲編碼技術(shù),內(nèi)容分為四個(gè)方面:一是互動(dòng)媒體服務(wù);二是低延遲視頻編碼技術(shù);三是低延遲編碼方案;四是應(yīng)用場(chǎng)景和發(fā)展趨勢(shì)。
01 PART 互動(dòng)媒體服務(wù)
1.1 視頻媒體形態(tài)
如圖所示,我們將現(xiàn)有典型的視頻相關(guān)服務(wù)按照高通量、強(qiáng)交互兩個(gè)維度進(jìn)行劃分,其中橫坐標(biāo)表示高通量,縱坐標(biāo)表示強(qiáng)交互,一些典型的視頻映射到圖中分布于不同的位置。 左下角部分可以稱(chēng)為基本視頻,它涵蓋了當(dāng)前的一些主流應(yīng)用,包括TV、視頻監(jiān)控、視頻會(huì)議以及多人視頻游戲等,其特點(diǎn)是以二維視頻為主,同時(shí)交互形式包括單項(xiàng)、雙項(xiàng)和多人交互。 如果從這個(gè)區(qū)域往外擴(kuò)展,外面一層是可以稱(chēng)之為增強(qiáng)視頻,沿高通量維度由高清向超高清、自由視、點(diǎn)云、光場(chǎng)過(guò)渡,交互維度包括仿真訓(xùn)練、電競(jìng),兩者都演進(jìn)的方向是VR、AR,最后演進(jìn)到全觸感,也就是視頻媒體形態(tài)正在由基本視頻向增強(qiáng)視頻演進(jìn),這兩個(gè)維度某種程度和現(xiàn)在5G中兩個(gè)維度很契合,高通量對(duì)應(yīng)大帶寬,強(qiáng)交互對(duì)應(yīng)低延遲。
這張圖顯示了流媒體視頻的典型服務(wù)場(chǎng)景,流媒體服務(wù)經(jīng)過(guò)多年的發(fā)展,現(xiàn)在已經(jīng)形成一個(gè)比較完整的技術(shù)和生態(tài)鏈,從源端、云端、邊端到終端,包括背后的技術(shù)體系也相對(duì)比較趨同。現(xiàn)在經(jīng)常使用的是以RTMP代表加H.264進(jìn)行源端的推流,到CDN邊緣上通過(guò)265,包括下行的HLS協(xié)議轉(zhuǎn)換,形成流媒體服務(wù)的基本流,然后用戶側(cè)通過(guò)播放器從源端進(jìn)行拉流,獲得流媒體直播的體驗(yàn)。這套架構(gòu)基本上比較成熟和完善,各家公司的競(jìng)爭(zhēng)點(diǎn)主要體現(xiàn)在用不同的編碼器進(jìn)行替換,不同上下行協(xié)議的改造,以及CDN資源的部署,以此獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。從整個(gè)媒體服務(wù)形態(tài)變化的角度看,大部分的努力是針對(duì)前面提到的通量這個(gè)維度。
圖中展示了流媒體實(shí)時(shí)交互演進(jìn)的一個(gè)典型示例,在直播場(chǎng)景下,通過(guò)手機(jī)小屏發(fā)出交互指令,可以在大屏播放時(shí)產(chǎn)生交互的反饋,獲得一些個(gè)性化的體驗(yàn);比如在下行過(guò)程中發(fā)起用戶指令,疊加符合正在播放內(nèi)容的、個(gè)性化渲染特效。在這種場(chǎng)景下,整個(gè)流媒體架構(gòu)就會(huì)發(fā)生變化。在此之前是在云端、邊端進(jìn)行處理,與終端并沒(méi)有太多交互,技術(shù)要素變化不大;但是增加互動(dòng)維度后,在邊緣側(cè)就可以引入很多新的要素。
1.2 系統(tǒng)組成要素
構(gòu)建一套實(shí)時(shí)的流媒體系統(tǒng)需要對(duì)系統(tǒng)中多個(gè)方面進(jìn)行改進(jìn),除了視頻編碼標(biāo)準(zhǔn)外,媒體傳送協(xié)議和視頻渲染技術(shù)都需要實(shí)時(shí)化和低延遲處理。視頻編碼方面,低延遲編碼技術(shù)可以和多種編碼標(biāo)準(zhǔn)進(jìn)行結(jié)合。 1.3 互動(dòng)媒體服務(wù)系統(tǒng)的權(quán)衡
互動(dòng)媒體服務(wù)系統(tǒng)與單點(diǎn)技術(shù)不同,需要考慮多方面因素的權(quán)衡。首先要滿足低延遲,否則影響互動(dòng)效果。其次是高體驗(yàn),互動(dòng)媒體是在現(xiàn)有媒體上疊加的效果,所以體驗(yàn)是也應(yīng)該是疊加式的,不能因?yàn)榛?dòng)而使原有基礎(chǔ)視頻的畫(huà)質(zhì)下降。最后是用戶的大規(guī)模,與視頻會(huì)議系統(tǒng)不同,一場(chǎng)會(huì)議很少會(huì)出現(xiàn)超過(guò)千人級(jí)的規(guī)模,但在互動(dòng)流媒體場(chǎng)景下,由于接近直播流媒體,它的用戶數(shù)量會(huì)比較多。
02 PART 低延遲視頻編碼技術(shù)
2.1 視頻編解碼
第二部分介紹了低延遲視頻編碼的共性技術(shù),這些技術(shù)可能會(huì)用在不同的編碼方案中。視頻編碼器有幾大陣營(yíng),在分發(fā)域有:H.264/HEVC/VVC、AVS2/AVS3、VP9/AV1,在分發(fā)域中壓縮性能是它的主要驅(qū)動(dòng)力。在制作域有:TICO/JPEG-XS、JP2K、LLVC、XAVC、ProRes,這些編碼器雖然是應(yīng)用于視頻中,但從技術(shù)角度來(lái)說(shuō)更多是圖像編碼器。
將兩大類(lèi)編碼器放在一起,更容易看出彼此之間的差異性,圖中展示了五個(gè)維度,分別是:高壓縮比、低延遲、低復(fù)雜度、高質(zhì)量、平臺(tái)友好性。將五個(gè)維度進(jìn)行比較,分發(fā)域的編碼如圖所示,它的特點(diǎn)是高壓縮比,但延遲和復(fù)雜度比較大,質(zhì)量沒(méi)有制作域那么高,相對(duì)來(lái)說(shuō)壓縮比就比較大。
幀內(nèi)標(biāo)準(zhǔn)如JEPG、JPEG2K、XAVC、WebP,在延遲性和復(fù)雜度方面要好些,但代價(jià)是壓縮比要差些,因?yàn)樗鼞?yīng)用的是專(zhuān)業(yè)領(lǐng)域場(chǎng)景,所以質(zhì)量和碼率比較高。
JPEG XS 是JPEG陣營(yíng)過(guò)去兩年推出的一個(gè)標(biāo)準(zhǔn),強(qiáng)調(diào)復(fù)雜度和速度,它的性能在低延遲、低復(fù)雜度方面表現(xiàn)比較優(yōu)秀,但壓縮比較差。由圖可知,要根據(jù)不同應(yīng)用場(chǎng)景做出均衡性選擇。
2.2 編碼延遲的構(gòu)成
編碼延遲是指從視頻單元(通常是幀)采集到編碼完成生成碼流所消耗的時(shí)間。公式中的max是表示以編碼單元中花費(fèi)時(shí)間最大的模塊為延遲時(shí)間。
編碼延遲的來(lái)源主要包括三部分:一是視頻幀參考關(guān)系,二是編碼流水線的設(shè)計(jì),三是編碼模塊的復(fù)雜度。
2.2.1 低延遲參考結(jié)構(gòu)
左圖展示的是HEVC RA模式,典型的編碼器一般使用雙向B幀,在提高壓縮率的同時(shí)會(huì)帶來(lái)幀重排序延遲,在HEVC的典型RA模式中,雙向參考關(guān)系額外引入了3幀延遲。 右圖展示的是HEVC的LDP模式,如果只考慮延遲,HEVC的LDP模式只使用P幀,適用于低延遲場(chǎng)景,其單向參考關(guān)系不引入額外的延遲,但是帶來(lái)了9%~42%的編碼性能損失。 2.2.2 低延遲編碼幀結(jié)構(gòu)
周期性幀內(nèi)刷新(PIR)編碼結(jié)構(gòu)是在LDP模式的基礎(chǔ)上進(jìn)一步降低延遲,被很多商業(yè)編碼器所支持,被稱(chēng)為超低延遲的編碼配置。 如圖所示,它的原理是將一幀切成四個(gè)縱向的條塊,每隔四幀就可刷新一遍。 它的特點(diǎn)主要有:一是常用的超低延遲配置模式,輸出碼率平緩,緩沖區(qū)溢出概率小。二是可以確保在一個(gè)刷新周期內(nèi)完全恢復(fù)錯(cuò)誤。三是刷新的頻率方向,可以根據(jù)視頻內(nèi)容進(jìn)一步優(yōu)化。 2.2.3 編碼流水線優(yōu)化
編碼器的整體架構(gòu)決定了編碼器的延遲和并行度,主要分為三種:幀處理、塊處理、條處理。
幀處理是指對(duì)每個(gè)運(yùn)動(dòng)估計(jì)進(jìn)行預(yù)測(cè),編碼器處理的模塊是以幀為單元的,它會(huì)將整幀運(yùn)動(dòng)估計(jì)處理完,再進(jìn)行運(yùn)動(dòng)補(bǔ)償,在MPEG2這種比較簡(jiǎn)易的編碼器中經(jīng)常使用這種結(jié)構(gòu)。
塊處理相當(dāng)于單線程參考編碼器中的小邏輯,將每個(gè)CTU或每個(gè)宏塊逐步推送到運(yùn)動(dòng)估計(jì)、預(yù)測(cè)等部分,X-循環(huán)是指每個(gè)塊里會(huì)進(jìn)行不同模式的選擇,是不同模式的循環(huán)。Y-循環(huán)是指所有的塊可以再循環(huán)一遍。其中每塊中的宏塊可以獨(dú)立輸出,不需要等整個(gè)幀處理完,所以它的好處是輸出粒度小。但如果將塊級(jí)的編程變成高并發(fā)、流水化結(jié)構(gòu)就比較困難,因?yàn)榱6刃?,想做到流水化結(jié)構(gòu),處理單元要足夠多。需要說(shuō)明,編解碼上下文很關(guān)鍵,切斷上下文則編碼預(yù)測(cè)性能會(huì)受到大的影響。
條處理是基于兩者之間的處理,每一個(gè)內(nèi)循環(huán)的粒度是以條塊為基礎(chǔ),外循環(huán)是不同條塊之間流水化推進(jìn)。同時(shí),運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償耦合比較好適合于整體計(jì)算,可以將運(yùn)動(dòng)估計(jì)和預(yù)測(cè)放到一個(gè)計(jì)算單元上,其余的部分組合到另一個(gè)上,這樣可以增加多級(jí)流水的處理。 這三種處理方式屬于任務(wù)級(jí)分解,也是并發(fā)、并行化操作。此外,還有數(shù)據(jù)級(jí)分解,就是數(shù)據(jù)被切割并分配給不同的處理器。右圖是在處理4K時(shí)可以切成多個(gè)高清進(jìn)行處理,可以用到四種方案:幀級(jí)并行、slice級(jí)并行、tile級(jí)并行、波前并行處理。在實(shí)際的編碼中,并發(fā)、并行化操作中任務(wù)級(jí)分解和數(shù)據(jù)級(jí)分解是混合使用的。 2.2.4 低延遲并行碼率控制
一旦變成并行流水化,除了各個(gè)基本模塊的調(diào)度,還要涉及整體碼率控制的調(diào)整。碼流的平穩(wěn)程度是影響編碼緩沖區(qū)延遲的重要因素,緩沖區(qū)上溢會(huì)造成數(shù)據(jù)丟失;緩沖區(qū)下溢會(huì)造成編碼器無(wú)法得到數(shù)據(jù),進(jìn)而使得視頻卡頓。在條/塊級(jí)并行編碼方案中,碼率控制模型需要重新優(yōu)化設(shè)計(jì)。 2.2.5 編碼模式快速預(yù)測(cè)
第三個(gè)方面涉及編碼中各個(gè)模塊的復(fù)雜度,當(dāng)代編碼器的編碼模式比較多,組合量比較大,即使每種編碼模式足夠快也不行,核心在于如何快速的在眾多候選模式中選出準(zhǔn)確的哪個(gè),這就需要根據(jù)某種屬性快速做出決策。這時(shí)深度學(xué)習(xí)的方法可以發(fā)揮作用,近期我們的一個(gè)工作中,采用基于深度學(xué)習(xí)預(yù)測(cè)CU劃分和基于統(tǒng)計(jì)學(xué)習(xí)預(yù)測(cè)PU模式組合,替換高復(fù)雜度的遞歸編碼探索,實(shí)現(xiàn)在性能基本保持不變前提下實(shí)現(xiàn)復(fù)雜度的顯著降低。
03 PART 低延遲編碼方案
3.1 SVT構(gòu)架
這部分介紹一些典型的系統(tǒng)編碼方案,首先是英特爾開(kāi)源的SVT架構(gòu),它支持了前面所提到的很多要素,設(shè)計(jì)比較不錯(cuò)。 SVT構(gòu)架細(xì)節(jié)
SVT架構(gòu)是基于軟件的視頻編碼優(yōu)化框架,通過(guò)聯(lián)合前處理-編碼內(nèi)部算法,實(shí)現(xiàn)性能-延遲-質(zhì)量的三維優(yōu)化,并針對(duì)Xeon處理器進(jìn)行優(yōu)化。 之所以稱(chēng)SVT為三維并行架構(gòu),因?yàn)樗怦钜曨l分析、模式選擇與編碼,實(shí)現(xiàn)進(jìn)程級(jí)并行;分層GOP內(nèi)的幀級(jí)并行;將一幀圖像分為不同條塊,實(shí)現(xiàn)條塊級(jí)并行。 SVT也照顧到速度和碼率的主觀質(zhì)量?jī)?yōu)化,對(duì)于速度方面的主觀質(zhì)量?jī)?yōu)化有:首先根據(jù)整體復(fù)雜度目標(biāo),設(shè)置搜索的劃分模式集合;其次根據(jù)塊的HVS重要性進(jìn)行區(qū)分;對(duì)于碼率方面的主觀質(zhì)量?jī)?yōu)化有:一是根據(jù)HVS重要性調(diào)整QP偏置;二是降低人眼不敏感區(qū)域變換域高頻分量。 3.2 H.265低延遲方案
SVT支持很多個(gè)編碼器,以SVT-HEVC為例,它支持了13個(gè)preset(M0~M12),在速度和視覺(jué)質(zhì)量之間實(shí)現(xiàn)了較好的權(quán)衡。其次,采用客觀質(zhì)量模式(默認(rèn))用于權(quán)衡速度和客觀質(zhì)量的關(guān)系,性能和速度優(yōu)于x265。而且,最快檔次的延遲在百毫秒級(jí)別,壓縮比在300:1左右,配合其他低延遲技術(shù)可以降為小幾十毫秒級(jí)別。
這部分介紹了H.265低延遲方案的硬件編碼器,首先,NETINT基于自研芯片設(shè)計(jì)了Codensity T408視頻轉(zhuǎn)碼器,在ASIC中進(jìn)行復(fù)雜的編解碼算法處理,從而最小化主機(jī)CPU的使用率,編碼延遲約為5ms。 其次,NVIDA基于GPU設(shè)計(jì)了NVENC編碼器,可以大幅度釋放CPU和內(nèi)存的負(fù)載壓力,編碼延遲約為3-10ms。 3.3 H.264低延遲方案
前面的兩個(gè)方案主要面向云端的轉(zhuǎn)碼、流媒體服務(wù)等,還有一類(lèi)是面向移動(dòng)終端的,除了低延遲之外,對(duì)功耗、復(fù)雜度要求更嚴(yán)格,在這種場(chǎng)景下使用比較多的方案是基于H.264。H.264標(biāo)準(zhǔn)已經(jīng)被工業(yè)界廣泛認(rèn)可和應(yīng)用,其作為H.265的上一代標(biāo)準(zhǔn),本身的編碼復(fù)雜度相對(duì)較低,現(xiàn)有低延遲方案大都基于硬件設(shè)計(jì)。 左圖是TPCast方案,它使用CAST公司的H.264-E-BPF IP核編碼器,基于H.264 Baseline Profile設(shè)計(jì)。而且采用CAVLC選項(xiàng)降低熵編碼復(fù)雜度,并采用幀內(nèi)刷新技術(shù)降低比特率峰。它的編碼延遲為10ms級(jí)別,壓縮率為50:1。 右圖是HHI方案,它基于H.264 Baseline Profile設(shè)計(jì),采用Intra(16×16和4×4)和VLC編碼(不使用CABAC),編碼延遲為宏塊行級(jí),壓縮率為10:1~20:1。兩種方案應(yīng)用的場(chǎng)景不同。 3.4 JPEG-XS低延遲方案
JPEG-XS低延遲方案是更低延遲的方案,它支持Main、Light、Light-subline、High這4種配置編碼延遲為毫秒甚至微秒級(jí),視覺(jué)無(wú)損情況下的壓縮率為2:1~6:1,是一個(gè)簡(jiǎn)化的幀內(nèi)壓縮技術(shù)。 它的編碼過(guò)程有:樣本拉伸、DC偏移量去除、可逆顏色變換、小波變換、預(yù)量化、常規(guī)量化、熵編碼。JPEG-XS主要是由IntoPIX公司推動(dòng)的。 3.5 新型的低復(fù)雜度/低延遲編碼方案
以V-Nova為代表介紹一下新型的低復(fù)雜度/低延遲編碼方案,V-Nova P+立項(xiàng)的MPEG5-LCEVC標(biāo)準(zhǔn),為內(nèi)容分發(fā)域提供高壓縮率、低復(fù)雜度方案。
左圖所展示的編碼結(jié)構(gòu)類(lèi)似于可伸縮編碼SVC,分為基本層和增加層,網(wǎng)絡(luò)帶寬的適應(yīng)性不是其考慮重點(diǎn),而是考慮終端的兼容性以及復(fù)雜度,面向內(nèi)容分發(fā)域??梢詰?yīng)用的場(chǎng)景如當(dāng)手機(jī)上有一塊硬解碼能力的芯片,支持264 HD,如果傳來(lái)一個(gè)4K的內(nèi)容,利用這種方案可以進(jìn)行分層,基本層利用264 HD,增強(qiáng)層用HEVC 4K編碼,這樣基本層可以使用手機(jī)的硬解碼264 HD能力,而增強(qiáng)層可以使用復(fù)雜度比較低的軟件能力,將其進(jìn)一步增強(qiáng)解碼提升到4K。
除此之外,V-Nova公司也正在SMPTE的制作域中推VC-6,主要用于專(zhuān)業(yè)的內(nèi)容制作和影像應(yīng)用。它的賣(mài)點(diǎn)是結(jié)合了機(jī)器學(xué)習(xí)技術(shù)和優(yōu)化的碼率控制,使用intra-only配置,編碼延遲為80ms,編碼的HD流為60Mbps。
04 PART 應(yīng)用場(chǎng)景和發(fā)展趨勢(shì)
4.1 應(yīng)用場(chǎng)景
圖中展示的是不同延遲量級(jí)對(duì)應(yīng)的應(yīng)用場(chǎng)景的劃分,低延遲要與不同場(chǎng)景進(jìn)行耦合,不同場(chǎng)景對(duì)延遲量的要求不同。圖中橫軸表示編碼延遲,根據(jù)延遲時(shí)間將場(chǎng)景分為四種,縱軸表示壓縮比。
秒級(jí)延遲場(chǎng)景以賽事直播為例,它對(duì)編碼延遲要求并不高,之前一般采用H.264實(shí)時(shí)編碼,對(duì)4K或8K視頻開(kāi)始使用H.265或AVS2編碼標(biāo)準(zhǔn)實(shí)時(shí)編碼。 百毫秒級(jí)延遲場(chǎng)景如視頻通信、無(wú)線投屏,視頻通信可接受的端到端延遲為~200ms。以ZOOM為例,它采用了H.264標(biāo)準(zhǔn)編碼,編碼延遲為11ms(720p),端到端延遲要求低于150ms。無(wú)線投屏以Miracast為例,它認(rèn)證的無(wú)線設(shè)備端到端延遲不超過(guò)250ms,使用H.264和H.265(可選)標(biāo)準(zhǔn),編碼延遲約10~100ms。
十到一百毫秒級(jí)別稱(chēng)之為十毫秒級(jí)延遲場(chǎng)景,以云VR、云游戲?yàn)槔?,一般端到端延遲低于100ms時(shí)才能獲得良好的體驗(yàn)。 NVIDA GeForce Now使用NVENC硬件編解碼器可實(shí)現(xiàn)3-10ms的編碼(H.265)和解碼延遲,端到端延遲約75ms。 Google Stadia采用H.264和VP9編碼標(biāo)準(zhǔn),端到端延遲約130ms。
毫秒級(jí)延遲大多數(shù)場(chǎng)景不超過(guò)10毫秒,應(yīng)用領(lǐng)域涵蓋遠(yuǎn)程制作、數(shù)字孿生、高級(jí)XR等,往往同時(shí)需要非常高的視頻質(zhì)量和超低延遲,需要TSN/TTE(時(shí)間敏感/觸發(fā))類(lèi)的基礎(chǔ)網(wǎng)絡(luò)架構(gòu)支持,目前可選擇的有JPEG-XS、SMPTE無(wú)壓縮的解決方案,壓縮效果還不太好,所以高壓縮比下的超低延遲編解碼仍然存在巨大技術(shù)挑戰(zhàn)。 4.2 發(fā)展趨勢(shì)
近期在多視角、自由視方面,華為、優(yōu)酷、咪咕都做過(guò)一些示范應(yīng)用,即將原先導(dǎo)播切換的自由度傳送到用戶側(cè),由用戶進(jìn)行發(fā)送,用戶在觀看流媒體視頻中可以根據(jù)自己的喜歡進(jìn)行視角的切換,以實(shí)現(xiàn)媒體服務(wù)的個(gè)性化。
以游戲類(lèi)和遠(yuǎn)程操控類(lèi)為代表的場(chǎng)景,以往觀看流媒體是被動(dòng)接收,現(xiàn)在大小屏都可以進(jìn)行實(shí)時(shí)性交互,因此互動(dòng)體驗(yàn)增強(qiáng),這也是互動(dòng)媒體發(fā)展的趨勢(shì)。
本次分享主要介紹了低延遲互動(dòng)媒體服務(wù)中的低延遲視頻編解碼環(huán)節(jié)的相關(guān)技術(shù)。要做到較好的低延遲互動(dòng)媒體服務(wù),還需要低延遲傳送協(xié)議、實(shí)時(shí)圖像渲染以及基礎(chǔ)ICT網(wǎng)絡(luò)技術(shù)整體的演進(jìn)。就編碼而言,需要結(jié)合平臺(tái)特性重構(gòu)編碼實(shí)現(xiàn)架構(gòu),細(xì)化編碼各工具性能與延遲關(guān)系。 比較理想的做法是面向不同延遲的彈性編碼方案,如右圖所示,將RD曲線按照延遲-壓縮比的關(guān)系,形成一套根據(jù)場(chǎng)景需求進(jìn)行彈性配置的編碼框架,這是近期低延遲編碼努力的方向。
-
視頻監(jiān)控
+關(guān)注
關(guān)注
17文章
1711瀏覽量
65060 -
編碼技術(shù)
+關(guān)注
關(guān)注
1文章
35瀏覽量
11075 -
視頻傳輸系統(tǒng)
+關(guān)注
關(guān)注
0文章
3瀏覽量
6218
原文標(biāo)題:互動(dòng)場(chǎng)景下的低延遲編碼技術(shù)
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論