學(xué)術(shù)界的一些優(yōu)化工作實(shí)涵蓋了編碼過(guò)程的大部分模塊。很 明顯的趨勢(shì)就是許多深度學(xué)習(xí)的網(wǎng)絡(luò)或者方法已經(jīng)開(kāi)始與編碼的模塊進(jìn)行結(jié)合,并取得了很多不錯(cuò)的收益。本文將按照編碼過(guò)程的大致順序分享學(xué)術(shù)界AV1編碼優(yōu)化技術(shù)的進(jìn)展。
各位專家以及屏幕前的各位觀眾大家好!我是朱辰,目前是上海交通大學(xué)圖像所的在讀博士生。本次分享的主題是學(xué)術(shù)界AV1編碼優(yōu)化技術(shù)的進(jìn)展。
AV1編碼標(biāo)準(zhǔn)
首先介紹一下AV1編碼標(biāo)準(zhǔn)。AV1是由開(kāi)放媒體聯(lián)盟AOM陣營(yíng)提出的面向互聯(lián)網(wǎng)流媒體的開(kāi)發(fā)編碼標(biāo)準(zhǔn)開(kāi)放編碼標(biāo)準(zhǔn)。AOM是由谷歌主導(dǎo),并且吸納了很多ICT領(lǐng)域的大廠加入,例如我們國(guó)內(nèi)的騰訊還有愛(ài)奇藝都是聯(lián)盟成員。AOM建立的初衷是想解決專利問(wèn)題,形成一些免費(fèi)開(kāi)源的編碼方案,同時(shí)性能超過(guò)HEVC。
AV1核心編碼工具
此處是對(duì)AV1新增的一些核心編碼工具進(jìn)行了一些整理總結(jié)。首先,最大的編碼單元目前已經(jīng)擴(kuò)展到了128×128的大??;同時(shí)劃分模式是支持2等分和4等分。幀內(nèi)預(yù)測(cè)方面,除了擴(kuò)展了方向性的預(yù)測(cè)模式以外,還添加了比如交叉分量、遞歸濾波的預(yù)測(cè)模式。幀間預(yù)測(cè)方面是最多支持7個(gè)參考幀,同時(shí)支持仿射運(yùn)動(dòng)軌跡,混合預(yù)測(cè)模式等。
變換是支持包含DCT在內(nèi)的4種模式。熵編碼使用的是一種多符號(hào)的上下文字適應(yīng)的算術(shù)碼。環(huán)路濾波共支持區(qū)塊濾波,方向增強(qiáng)濾波,還有修復(fù)濾波,總共三種算子。最后特別的對(duì)于屏幕內(nèi)容編碼,還涉及了一些例如調(diào)色板,塊匹配等技術(shù)。
AV1編解碼器
AV1在生態(tài)建設(shè)方面步伐非???,現(xiàn)在可以看到已有三款開(kāi)源的編碼器和一款開(kāi)源的解碼器。另外我們也已經(jīng)看到已經(jīng)有三款商用的AV1編碼器。對(duì)于AV1性能,相比于HEVC標(biāo)準(zhǔn)下的x265, AV1的前身VP9,大概有20~30%的增益。在商業(yè)應(yīng)用方面,從去年開(kāi)始AV1已經(jīng)開(kāi)始有規(guī)模在一些比如瀏覽器端、安卓客戶端、OTT以及智能電視設(shè)備上得到支持和使用。
AV1優(yōu)化技術(shù)工作
接下來(lái)是對(duì)AV1上的一些優(yōu)化技術(shù)和優(yōu)化工作進(jìn)行一些介紹。因?yàn)楝F(xiàn)在我們的市場(chǎng)上的視頻應(yīng)用種類是非常多的,例如點(diǎn)播、直播,互動(dòng)類的場(chǎng)景。對(duì)于不同類的應(yīng)用,實(shí)際上對(duì)編碼的需求也有一定差異。
對(duì)于AV1定稿的編碼標(biāo)準(zhǔn)而言,往往沒(méi)有辦法同時(shí)滿足這樣多方面的需求的。所以對(duì)標(biāo)準(zhǔn)編碼器還會(huì)衍生出很多方面的優(yōu)化,含R-D性能、復(fù)雜度、延遲,一些硬件實(shí)現(xiàn)上的優(yōu)化。對(duì)此整理了AV1定稿以后近兩三年在學(xué)術(shù)界或者說(shuō)以論文形式發(fā)表的優(yōu)化工作,發(fā)現(xiàn)目前主要就是集中在性能和復(fù)雜度優(yōu)化方面。上圖中列出了優(yōu)化方法的編碼模塊,實(shí)際上也可以看到其中的大部分編碼過(guò)程中的大部分模塊都已經(jīng)有相應(yīng)的優(yōu)化路徑。
此次分享會(huì)按照編碼過(guò)程的大致順序,對(duì)各類工作進(jìn)行一些介紹。
#1. 性能優(yōu)化方面
1.1 幀內(nèi)預(yù)測(cè)的優(yōu)化
首先是性能優(yōu)化方面的工作。其中首先是幀內(nèi)預(yù)測(cè)的優(yōu)化工作。AV1本身是有56個(gè)方向性模式,5個(gè)非方向的幀內(nèi)模式。這個(gè)工作的出發(fā)點(diǎn)是發(fā)現(xiàn)相鄰塊的選擇的幀內(nèi)模式往往是相同的或者是相近的,但目前的AV1里面還沒(méi)有應(yīng)用到相鄰塊的模式信息。
此外,AV1幀內(nèi)預(yù)測(cè)本身只用了一個(gè)相鄰的參考線中的中間塊作為參考,但當(dāng)對(duì)于一些像紋理圖案這種相鄰樣本變化比較大的區(qū)域的時(shí),如還是使用單一的參考線,可能會(huì)導(dǎo)致殘差較大、預(yù)測(cè)誤差較大的現(xiàn)象。所以針對(duì)這兩點(diǎn),工作提出了自適應(yīng)預(yù)測(cè)角度,非相鄰的參考線兩種方法。
1.1.1 自適應(yīng)預(yù)測(cè)角度
自適應(yīng)預(yù)測(cè)角度,首先要做的是改變候選角度的一個(gè)粒度。意思是說(shuō)根據(jù)剛剛說(shuō)的相鄰塊的模式,往往會(huì)被當(dāng)前塊選中。上圖中間圖中所示,對(duì)于相鄰塊方向的候選角度仍然保持一個(gè)細(xì)粒度。
其他方向的候選角度,可以用一個(gè)粗粒度去進(jìn)行選擇。在此基礎(chǔ)上它提出了一個(gè)叫做“Allowed”,叫做允許的幀內(nèi)測(cè)模式集合。最大數(shù)量有40個(gè),意思就是將AV1原有大概60多個(gè)可能的幀內(nèi)模式,按照一定的優(yōu)先級(jí)順序去填滿 AIPM集合。
它的一個(gè)選擇順序:首先是非方向性的模式,這些模式的選中概率是最高的;然后是剛剛說(shuō)的相鄰塊的方向性模式;其次是優(yōu)先級(jí),相鄰塊方向性模式加上一些細(xì)致度偏置以后的角度模式;最后當(dāng)集合數(shù)量還沒(méi)填滿的時(shí)候,加入一些默認(rèn)的模式進(jìn)行填充。這個(gè)工作對(duì)這提出的集合進(jìn)行了一個(gè)驗(yàn)證;發(fā)現(xiàn)在CTC序列上的命中率可以有93%左右,是非常有效的一個(gè)方法。
文章還相應(yīng)提出了說(shuō)對(duì)相鄰塊的角度,用一個(gè)短碼進(jìn)行編碼替代原來(lái)的相同碼上編碼,實(shí)現(xiàn)更優(yōu)質(zhì)的編碼。
1.1.2 自適應(yīng)的非近鄰參考線
自適應(yīng)的非近鄰參考線的概念比較易懂的。在原來(lái)只有單個(gè)參考線的基礎(chǔ)上,額外的添加了三個(gè)稍微相鄰的但是較遠(yuǎn)的參考線,僅針對(duì)Y分量有效。但如果直接增加這樣幾條參考線,文章中也給出會(huì)增加成倍的編碼事,要進(jìn)行一個(gè)復(fù)雜度和性能提升之間的權(quán)衡。它也利用了一些快速終止以及較遠(yuǎn)參考線簡(jiǎn)化候選模式,只保留方向性模式,去達(dá)到平衡。
1.1.3 幀內(nèi)預(yù)測(cè)的結(jié)果
這樣的兩個(gè)方法最終取得了Y分量在兩個(gè)編碼模式里面2%的一個(gè)性能提升。
1.2 幀間預(yù)測(cè)的優(yōu)化
1.2.1 針對(duì)于幀間預(yù)測(cè)的多層、多參考幀的框架
這個(gè)框架目前應(yīng)用在 AV1官方編碼器Libaom中,用到短期參考和長(zhǎng)期參考,多參考幀的概念去適應(yīng)不同運(yùn)動(dòng)內(nèi)容,不同運(yùn)動(dòng)特性,或者不同種類內(nèi)容的視頻,去達(dá)到一個(gè)更好的幀間預(yù)測(cè)。
它以AV1前身VP9作為base line,VP9用到三種參考幀,一個(gè)是LAST就是緊鄰的前一幀,另一個(gè)是golden frame。一個(gè)起始的golden frame加上一定數(shù)量的幀,就可以形成一個(gè)golden frame group。另一幀叫做ALT幀參考幀,利用一些較遠(yuǎn)的未來(lái)幀去通過(guò)時(shí)域?yàn)V波構(gòu)建的,這個(gè)幀本身主要用于參考,是不用于具體的顯示的。
在一個(gè)golden frame group里會(huì)共用golden frame,還有 ALT幀。在此基礎(chǔ)上工作就擴(kuò)展了候選幀的數(shù)量是添加了兩再添加了兩個(gè)緊鄰的過(guò)去幀,還添加了一個(gè)叫做“BWD”可以用于后項(xiàng)參考的參考幀。參考幀數(shù)量達(dá)到翻倍的效果。在目前的AV1版本里面,還會(huì)生成新的一幀,中間的ALT幀作為golden frame和原來(lái)的ALT參考幀的一個(gè)過(guò)渡的形態(tài)。所以可以總共有七幀參考。
1.2.2 選候參考幀集合后編碼增益情況
有這樣一個(gè)很豐富的選候參考幀集合后,可以發(fā)現(xiàn)確實(shí)是有非常明顯的效果,有3~10%的一個(gè)不同序列上的編碼增益。但是因?yàn)閰⒖紟臄?shù)量較多,它的一些模式選擇性較多,復(fù)雜度增加也是較大。
#2. 率失真優(yōu)化和RDO的優(yōu)化工作
接下來(lái)是一個(gè)對(duì)于率失真優(yōu)化和RDO的優(yōu)化工作,是我們實(shí)驗(yàn)室團(tuán)隊(duì)和谷歌共同合作。它對(duì)原有的RDO進(jìn)行了一個(gè)感知優(yōu)化。整體的感知編碼的概念是想把很多反映人眼主觀感受的一些視覺(jué)模型。最常見(jiàn)的可能就是SSIM、VMAF這種質(zhì)量指標(biāo)模型。它與特定的編碼模塊相結(jié)合,達(dá)到一種去除感知冗余的目標(biāo)。
我們這里的模塊是RDO。像AV1這種主流的編碼器中用到的拉格朗日RDO中使用的失真準(zhǔn)則。它會(huì)用一些SSE/SAD這種很簡(jiǎn)單的數(shù)學(xué)統(tǒng)計(jì)量去作為度量,再用于后續(xù)的一個(gè)推導(dǎo)。實(shí)際上這種統(tǒng)計(jì)量與主觀的感受的差距還是很大的,確實(shí)應(yīng)該加入一些感知的因素。對(duì)此我們就加入了叫做恰可覺(jué)察失真的這個(gè)模型。
這個(gè)模型是表示大部分觀看者恰好感受到失真時(shí)的閾值,也代表了一種失真可容忍的閾值。當(dāng)這種可容忍閾值越高的時(shí)表示人眼對(duì)于這塊區(qū)域的敏感度越低,有相反的關(guān)系。
在使用JND時(shí),通常首先會(huì)生成一些考慮不同視覺(jué)感受的,不同視覺(jué)因素的因子。這里用到的就是亮度適應(yīng)性、對(duì)比度掩蔽、結(jié)構(gòu)性保護(hù)、時(shí)域掩蔽。它分別表示人眼對(duì)于不同的背景亮度、對(duì)比度,邊緣結(jié)構(gòu)強(qiáng)度,運(yùn)動(dòng)強(qiáng)度的差異化敏感度。有了這樣的很多因子以后,采用像素JND,它會(huì)利用一種非線性疊加的形式,把各類因子結(jié)合起來(lái),形成一個(gè)最終的整體模型。
2.1 JND模型與RDO更好融合的過(guò)程
為了把得到的JND模型與RDO更好融合,進(jìn)行了以下過(guò)程:首先是提出了一個(gè)感知的指標(biāo),它是將MSE還有整體JND結(jié)合起來(lái)形成的一個(gè)指標(biāo)。它對(duì)于同類不同類的區(qū)域,如果存在相同的MSE失真,當(dāng)它的JND閾值越大,對(duì)于人眼的敏感度越低時(shí),它的感知失真應(yīng)該更小,有比較定性的關(guān)系。
利用提出的感知指標(biāo)作為RDO里面新的失真準(zhǔn)則進(jìn)行后續(xù)的數(shù)學(xué)推導(dǎo),最后可以推導(dǎo)出一個(gè)包含JND,包含以原來(lái)SSE 失真為為推導(dǎo)的拉格朗日乘子的形式。生成一個(gè)感知的拉格朗日乘子,去調(diào)節(jié)每個(gè)編碼塊的編碼模式,將它往更偏向感知的方向去進(jìn)行編碼。
2.2 JND模型與RDO融合增益情況
這個(gè)工作是在一個(gè)質(zhì)量較高,速度又比較快的檔位進(jìn)行測(cè)試的,得到了4%的 SSIM BD-rate增益。
同時(shí)它的額外復(fù)雜度因?yàn)镴ND計(jì)算非常簡(jiǎn)便,額外復(fù)雜度并不高。
#3. AV1碼率控制模塊優(yōu)化
碼控模塊的目標(biāo)是對(duì)序列各幀、各個(gè)編碼模塊去分配一定的碼率,使得實(shí)際輸出的碼率接近目標(biāo)的給定碼率。這個(gè)工作里面首先也是對(duì)當(dāng)時(shí)版本的碼率控制進(jìn)行了測(cè)試,發(fā)現(xiàn)AV1當(dāng)時(shí)版本的碼率控制在RD性能以及碼控準(zhǔn)確度方面有所不足。我們也對(duì)目前版本的碼控方案進(jìn)行了簡(jiǎn)單的測(cè)試,發(fā)現(xiàn)它在性能上其實(shí)與 CQP已經(jīng)比較接近。不過(guò)在碼控準(zhǔn)確度方面還可以有一定的改進(jìn)。
3.1 優(yōu)化工作的思路
把碼控的一般過(guò)程去進(jìn)行一個(gè)介紹。首先是要找到碼率和具體編碼參數(shù)的一個(gè)關(guān)系,才能作用到實(shí)際的編碼。在這個(gè)工作里面就找到了碼率與量化步長(zhǎng) RQ的模型。其次要確定一些失真準(zhǔn)則或特征去作為碼率分配的標(biāo)準(zhǔn)。這也是找了一個(gè)叫做EMD的特征用于后續(xù)的碼率估計(jì)。最后在這兩點(diǎn)的基礎(chǔ)上就可以對(duì)碼率問(wèn)題進(jìn)行建模和求解。
3.2 碼率約束
一般的碼率碼控條件是在碼率約束下尋求最小的失真,在其他給定的失真或者特征情況下,限定一些額外的條件。最后的話這個(gè)工作使用了一種遺傳算法的求解方式。是找到了一組碼控的局部最優(yōu)解去優(yōu)化碼率控制。
3.3 增益情況
這個(gè)方法是在三種編碼模式下取得了平均百分之三的增益,但是還會(huì)有一定的碼控誤差。
#4. AV1的環(huán)路濾波優(yōu)化
接下來(lái)的話就說(shuō)一下AV1的環(huán)路濾波的優(yōu)化。AV1里面已經(jīng)有三種濾波器,還包括一種叫做電影(紋理)顆粒合成的,后處理的模塊。這幾個(gè)濾波器或者模塊在相應(yīng)的位置以一種串聯(lián)的方式對(duì)單幀進(jìn)行增強(qiáng)的。
4.1 基于CNN的環(huán)路濾波
近年來(lái)有很明顯的趨勢(shì),就是深度學(xué)習(xí)網(wǎng)絡(luò)越來(lái)越多的被用在環(huán)路濾波中,可以取得非常大的增益。編碼的環(huán)路濾波更多的是基于CNN的環(huán)路濾波,濾波器也有很多優(yōu)化的方向。最主要是第一種設(shè)計(jì)一些新的網(wǎng)絡(luò)架構(gòu)。上圖右側(cè)給出的以Resblock為單位的殘差網(wǎng)絡(luò),現(xiàn)在越來(lái)越多的被作為一種基本架構(gòu)去優(yōu)化。除此之外,利用輔助的編碼信息,還有基于內(nèi)容自適應(yīng)去進(jìn)行深度學(xué)習(xí)濾波,對(duì)這種深度網(wǎng)絡(luò)進(jìn)行復(fù)雜度的優(yōu)化。
4.2 案例
分享以去年ICIP的一個(gè)工作為例,它設(shè)計(jì)了一種非對(duì)稱的卷機(jī)殘差網(wǎng)絡(luò)-ACRN,在網(wǎng)絡(luò)里面還有這樣的幾種設(shè)計(jì),例如寬激活,還有非對(duì)稱的卷積層,以及稠密連接。這幾種設(shè)計(jì)可以更細(xì)致的捕獲到底層的一些特征,捕獲一些方向性的特征,以及在網(wǎng)絡(luò)中不斷的去強(qiáng)化輸入或者說(shuō)失真圖像本身的一些信息,比如說(shuō)編碼的塊信息,達(dá)到上述效果。
4.3 CNN濾波器增益效果
通過(guò)CNN濾波器設(shè)計(jì)替代 AV1新引入的兩種濾波器,可以達(dá)到7~8%的一個(gè)編碼增益,相對(duì)于其他模塊是比較高的增益。
#5. 紋理合成性能優(yōu)化
性能優(yōu)化里面的最后一個(gè)方向,紋理合成。相比于一些簡(jiǎn)單靜態(tài)的場(chǎng)景,復(fù)雜的紋理在基于殘差塊的編碼框架下是非常難編的。所以紋理合成要做的是直接利用紋理本身的特征去進(jìn)行編碼和恢復(fù)。
它的一個(gè)常規(guī)的工作流主要包含首先是對(duì)紋理進(jìn)行探測(cè),那些被認(rèn)為是紋理的區(qū)域,就直接去對(duì)特征進(jìn)行編碼,并傳到解碼端,在解碼端也是利用紋理本身的這種特征去還原和合成紋理。例如剛剛提到的AV1電影顆粒合成也是一種紋理合成的方法。
這個(gè)方法中電影的顆粒被建模為是一種叫做自回歸AR的過(guò)程,AR的過(guò)程里面的一些系數(shù)就可以作為顆粒的參數(shù)或者表達(dá)在解碼端去合成逼真的電影顆粒。
5.1 AV1上的紋理合成工作
這里要介紹的一個(gè)在AV1上的紋理合成工作,也采用了比較常規(guī)的框架。首先是一個(gè)CNN的紋理分析器。它將原始幀去分割成非重疊的小塊,每個(gè)小塊過(guò)分析器得到二分類的判斷是否為紋理的標(biāo)簽。最后可以在整幀上得到一個(gè)基于塊級(jí)別的紋理mask。在mask指導(dǎo)下,被認(rèn)為是紋理的區(qū)域就直接通過(guò)紋理模式編碼而不再進(jìn)行基于殘差塊的編碼。
5.2 AV1上的紋理合成工作過(guò)程
它的一個(gè)過(guò)程是這樣的:首先是估計(jì)紋理的運(yùn)動(dòng)參數(shù)。這個(gè)參數(shù)也是在一種復(fù)合或說(shuō)多參考幀的預(yù)測(cè)下得到的,也是為了降低紋理合成的閃爍以及塊效應(yīng)等偽像。運(yùn)動(dòng)參數(shù)也是被編碼和傳到解碼端的,在解碼端一些用常規(guī)編碼的參考區(qū)域,就在這種運(yùn)動(dòng)參數(shù)的指導(dǎo)下進(jìn)行一種warp變換,扭曲成當(dāng)前區(qū)應(yīng)有的這種紋理樣式達(dá)到紋理合成的效果。
5.3 紋理合成的工作結(jié)果
可以看到它工作給的一些結(jié)果,在低QP,高碼率的情況下,這種以參數(shù)替代殘差塊的編碼方法或者說(shuō)合成方法是可以取得一定的碼率節(jié)省的。
#6. AV1復(fù)雜度優(yōu)化
接下來(lái)是復(fù)雜度優(yōu)化方面,AV1新增的很多編碼工具實(shí)際上帶來(lái)了大量的編碼時(shí)間,所以對(duì)AV1去進(jìn)行復(fù)雜度的優(yōu)化很有必要,而且會(huì)帶來(lái)很大的收益。目前看到在AV1上的復(fù)雜度優(yōu)化工作主要包含塊劃分、幀間預(yù)測(cè)、變換搜索方面的加速工作。盡管這些加速工作是針對(duì)不同模塊,它們也有一些比較共通的路徑。
主要有這樣三種:
第一點(diǎn)是去人為的定義一些特征,并且基于這些特征手工制定相關(guān)的快速?zèng)Q策準(zhǔn)則的傳統(tǒng)方法。
第二點(diǎn)是人為設(shè)定的特征輸入網(wǎng)絡(luò)去學(xué)習(xí)的機(jī)器學(xué)習(xí)方法。
第三點(diǎn)是直接定義輸入輸出,讓網(wǎng)絡(luò)自己去學(xué)習(xí)決策過(guò)程的深度學(xué)習(xí)方法。
目前看到的AV1上的工作主要集中于前兩條路徑。
6.1 一個(gè)塊劃分的加速方法
首先要介紹的是一個(gè)塊劃分的加速方法,這個(gè)方法可以算作一個(gè)傳統(tǒng)的路徑。比較特殊的點(diǎn)在于它是基于跨分辨率的加速方法。首先是對(duì)同一視頻在不同分辨率下的塊劃分情況進(jìn)行了一個(gè)查看,發(fā)現(xiàn)精細(xì)的分割區(qū)域其實(shí)是共通的或者說(shuō)相似的,主要是一些復(fù)雜的紋理以及快速運(yùn)動(dòng)的物體。
基于這個(gè)現(xiàn)象,這個(gè)文章中就假定了一種特征f,它是表現(xiàn)細(xì)節(jié)的精細(xì)度以及物體運(yùn)動(dòng)快慢程度的一個(gè)特征。有了這樣一個(gè)特征后,每個(gè)塊被劃分的概率或者趨勢(shì)E(X),與這種特征有一個(gè)正相關(guān)的關(guān)系,進(jìn)一步的去假定這個(gè)特征。f有一個(gè)分辨率不變性以后,那f就可以與兩種或者多種分辨率的劃分結(jié)果。
比如說(shuō)E(X1)、E(X2)有兩種映射關(guān)系,比如說(shuō)g1和g2。進(jìn)一步把這個(gè)f作為中間連接的一個(gè)橋梁以后,最終可以達(dá)到這樣一種目的:在得到一個(gè)低分辨率的塊劃分結(jié)果E(X2)以后,就可以通過(guò)反映射的方式轉(zhuǎn)換為高分辨率的劃分結(jié)果。通過(guò)推導(dǎo)后,實(shí)際上,f就并不用具體的去提取某一種特征,只是在推導(dǎo)里面被用到。
6.2 應(yīng)用場(chǎng)景
理論去具體去用的時(shí)候會(huì)存在應(yīng)用場(chǎng)景。這個(gè)場(chǎng)景就是多分辨率同時(shí)編碼的一個(gè)情況。這種場(chǎng)景在一些流媒體的服務(wù)器端是經(jīng)常存在的。在具體實(shí)現(xiàn)的時(shí)候?qū)τ诰幋a的每50幀,所有的50幀都是對(duì)于低分辨率,都是常規(guī)的進(jìn)行RDO去進(jìn)行完整編碼,對(duì)于50幀里的前5幀的高分辨率編碼,它也是進(jìn)行完整的 RDO過(guò)程,然后會(huì)得到 E(X1)以及低分辨率的E(X2)的劃分結(jié)果。
首先要通過(guò)一個(gè)influence Model去推理出這兩種劃分結(jié)果的一個(gè)映射關(guān)系?;谇?幀的一個(gè)結(jié)果,對(duì)于之后的90%,大概是45幀,利用 influence結(jié)果以及實(shí)際編碼的低分辨率劃分結(jié)果,直接去推導(dǎo)出高分辨率的劃分結(jié)果,不再進(jìn)行完整的RDO,達(dá)到一個(gè)加速的目的。
6.3 節(jié)省效果
方法最終是實(shí)現(xiàn)大約30~40%的時(shí)間節(jié)省。這里還設(shè)定了一個(gè)預(yù)估錯(cuò)誤的閾值,閾值越高的話,就會(huì)導(dǎo)致比較大的碼率損失。
#7. 幀間預(yù)測(cè)加速工作
在AV1里面。目前提供了基于單參考幀,以及混合的基于雙參考幀的幀間預(yù)測(cè)模式。在這兩種模式下都有一些很豐富的運(yùn)動(dòng)向量。這篇文章的出發(fā)點(diǎn),發(fā)現(xiàn)并不是所有的序列都會(huì)因?yàn)檫@些豐富的候選模式而產(chǎn)生很大的編碼增益的,可以進(jìn)行一些簡(jiǎn)化。
文章首先對(duì)各個(gè)序列的編碼結(jié)果進(jìn)行了評(píng)估,發(fā)現(xiàn)了大部分的幀間預(yù)測(cè)塊都是以單參考幀的模式被編碼的,所以一個(gè)很直接很簡(jiǎn)單的嘗試就是去除混合預(yù)測(cè)模式。結(jié)果發(fā)現(xiàn)會(huì)有很大的編碼復(fù)雜度的降低,但同時(shí)對(duì)于一些序列會(huì)產(chǎn)生很嚴(yán)重的性能損失。還是要找一種能保住性能的穩(wěn)妥做法。
文章中也是使用了基于機(jī)器學(xué)習(xí)的決策樹(shù)的網(wǎng)絡(luò)。在網(wǎng)絡(luò)里面首先設(shè)定了4種特征輸入網(wǎng)絡(luò)。特征分別是當(dāng)前塊相鄰的左塊與上塊的預(yù)測(cè)模式,左塊、上塊在第二參考幀中的相應(yīng)內(nèi)容。特征輸入以后,一個(gè)二分類的分類器就對(duì)每一塊進(jìn)行決策,決定當(dāng)前塊是進(jìn)行單參考幀的預(yù)測(cè)模式,還是遍歷兩種幀間預(yù)測(cè)模式。這樣一個(gè)分類器可以最終達(dá)到80%的預(yù)測(cè)精度。
通過(guò)這樣一種做法相比于原有的AV1編碼器可以達(dá)到43%的編碼時(shí)間降低,以及0.77%的比較小的性能損失。
#8. 變換搜索加速方法
最后是一個(gè)變換搜索的加速方法。AV1提供了很豐富的變化和帶來(lái)了很大的復(fù)雜度。這一個(gè)工作是對(duì)變換尺寸以及變換核搜索進(jìn)行一個(gè)裁剪。
首先是尺寸的裁剪,它對(duì)于每一個(gè)預(yù)測(cè)殘差塊去提取均值以及標(biāo)準(zhǔn)差這兩個(gè)特征,輸入到一個(gè)相應(yīng)的神經(jīng)網(wǎng)絡(luò)里面去學(xué)習(xí),并最后輸出一個(gè)當(dāng)前塊是否應(yīng)該被分割的數(shù)值。這一個(gè)數(shù)值會(huì)與已經(jīng)設(shè)定好的兩端的閾值進(jìn)行比較,當(dāng)超過(guò)閾值的時(shí)候可能就不再選取比較大或者比較小的變化尺寸。
第二點(diǎn)就是變化核的裁剪。
這里的做法就是對(duì)每一個(gè)殘差塊的縱向和橫向兩個(gè)方向分別設(shè)置兩個(gè)網(wǎng)絡(luò)。網(wǎng)絡(luò)會(huì)輸入一些自相關(guān)以及能量分的特征。兩個(gè)子網(wǎng)絡(luò)的一些輸出進(jìn)行融合以后,會(huì)最終對(duì)每一個(gè)可能的變換核被選中的概率進(jìn)行一個(gè)評(píng)估。在具體的編碼中,如果說(shuō)被評(píng)估的是被選中概率很低的一些變化核,可能直接被舍棄,去達(dá)到一個(gè)簡(jiǎn)化的目的。
8.1 節(jié)省效果
最終這樣一個(gè)簡(jiǎn)化方法可以在不同分辨率下達(dá)到大概10%到30%不等的時(shí)間的節(jié)省。對(duì)于變換的簡(jiǎn)化,性能損失比較小,在0.1%左右的程度。
#9. 總結(jié)
學(xué)術(shù)界的一些優(yōu)化工作實(shí)際上也涵蓋了編碼過(guò)程的大部分模塊。很明顯的趨勢(shì)就是許多深度學(xué)習(xí)的網(wǎng)絡(luò)或者方法已經(jīng)開(kāi)始與編碼的模塊進(jìn)行結(jié)合,并取得了很多不錯(cuò)的收益。但是在標(biāo)準(zhǔn)編碼器中,這種AI與Codec到底應(yīng)該結(jié)合到怎樣的一個(gè)程度還是需要被探究和摸索的。所以也讓我們期待AOM聯(lián)盟的下一代編碼器AV2吧。
以上就是我所有的分享,謝謝大家!
編輯:jq
-
編碼器
+關(guān)注
關(guān)注
44文章
3529瀏覽量
133298 -
開(kāi)源
+關(guān)注
關(guān)注
3文章
3126瀏覽量
42068 -
DCT
+關(guān)注
關(guān)注
1文章
55瀏覽量
19816
原文標(biāo)題:學(xué)術(shù)界AV1編碼優(yōu)化技術(shù)的進(jìn)展
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論