国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種面向新型視頻編碼器的快速算法

2020-07-20 04:47吳陸狄翟宇軒黃雨航邢開應(yīng)房穎林麗群
關(guān)鍵詞:編碼器編碼神經(jīng)網(wǎng)絡(luò)

吳陸狄,翟宇軒,黃雨航,邢開應(yīng),房穎,林麗群

(福州大學(xué)物理與信息工程學(xué)院,福建省媒體信息智能處理與無線傳輸重點(diǎn)實驗室,福建福州 350108)

0 引言

視頻占據(jù)了互聯(lián)網(wǎng)傳輸內(nèi)容的大部分流量,隨著人們對視頻質(zhì)量要求的提升,視頻在傳輸內(nèi)容中的比重還會繼續(xù)增加,因此數(shù)字視頻產(chǎn)業(yè)對具有更高壓縮率、更強(qiáng)網(wǎng)絡(luò)適應(yīng)能力及更穩(wěn)定編碼質(zhì)量的視頻編碼標(biāo)準(zhǔn)的需求也日益迫切[1].國際電信聯(lián)盟ITU-T與國際標(biāo)準(zhǔn)化組織ISO/IEC通力合作,在2018年4月第10屆聯(lián)合視頻專家小組會議上,提出新一代多功能視頻編碼標(biāo)準(zhǔn)(VVC)及其測試模型1(VTM1)的初稿[2].相比之前的高效視頻編碼標(biāo)準(zhǔn)(HEVC)[3-4],VVC采用了更多技術(shù)來提升壓縮率,以解決急劇增長的視頻數(shù)據(jù)與有限帶寬的網(wǎng)絡(luò)傳輸環(huán)境的沖突問題.

VVC繼承了HEVC的混合編碼框架,包含幀內(nèi)預(yù)測、幀間預(yù)測、變換量化及熵編碼等[5].在VVC編碼過程中,編碼樹單元(CTU)的劃分過程占據(jù)了大部分的編碼時間,因此編碼單元(CU)若能提前終止劃分將極大提高編碼器的編碼效率[6-7].為實現(xiàn)幀內(nèi)編碼快速編碼算法,前人進(jìn)行了大量的研究.文[8]使用最可能模式和其它模式之間的差異信息及編碼比特信息進(jìn)行CU深度預(yù)測及幀內(nèi)編碼角度模式選擇.文[9]使用率失真(RD)代價信息及貝葉斯決策來提前終止CU劃分.文[10]對時空域相鄰的CTU編碼深度進(jìn)行加權(quán)預(yù)測未編碼的CTU深度信息.此外,還有一些基于深度學(xué)習(xí)的方法也被用于實現(xiàn)幀內(nèi)預(yù)測快速算法.文[11]使用卷積神經(jīng)網(wǎng)絡(luò)對原始圖像的亮度信息進(jìn)行分析以決定CTU的編碼深度.文[12]使用支持向量機(jī)(SVM)來決定一個CU是否繼續(xù)劃分,在訓(xùn)練SVM時使用到了哈達(dá)瑪變換代價值及RD代價值信息.文[13]使用2個卷積神經(jīng)網(wǎng)絡(luò)分別對CU及預(yù)測單元進(jìn)行劃分模式?jīng)Q策,在訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時用到了編碼圖像的像素點(diǎn)及量化參數(shù)(QP)信息。

以上算法都是在不影響編碼器編碼質(zhì)量的前提下優(yōu)化編碼流程,降低編碼器的復(fù)雜度.但上述算法大部分都是面向HEVC編碼標(biāo)準(zhǔn),而針對VVC的幀內(nèi)快速編碼算法目前還比較少.HEVC采用四叉樹編碼結(jié)構(gòu),而VVC為進(jìn)一步壓縮視頻采用了更復(fù)雜的四叉、三叉、二叉樹編碼結(jié)構(gòu),因此需要結(jié)合VVC的特點(diǎn),尋找適合VVC的編碼優(yōu)化方法.文[14]在VVC平臺上實現(xiàn)了基于決策樹的CU劃分模式選擇算法(CSD-SL),但其需要為不同的量化參數(shù)訓(xùn)練不同的決策樹模型,且采用的特征參數(shù)較多,復(fù)雜度較高.

針對上述問題,提出一種面向VVC的幀內(nèi)快速編碼算法.實驗結(jié)果表明,該算法具有較低的計算復(fù)雜度,且與原始編碼器相比,能在不影響編碼性能的情況下,平均節(jié)省59.82%的編碼時間.

1 新型視頻編碼器VVC

VVC采用基于塊的混合編碼框架.所有輸入編碼器的圖像幀都會先劃分為相同大小的單元,稱為CTU.CTU進(jìn)一步劃分為多個CU,以適應(yīng)編碼單元的局部圖像特征.具體而言,對于編碼圖像中紋理較多或是運(yùn)動變化大的區(qū)域,使用較小的編碼塊可以提升編碼性能;對于編碼圖像中較為平緩或運(yùn)動變化較小的區(qū)域,采用較大的編碼塊可以提升視頻壓縮率.在編碼過程中,CU會遍歷所有可能的劃分模式,并計算不同劃分模式的RD代價值,最終選定RD代價值最小的劃分模式作為最佳劃分模式.劃分后的CU還可以繼續(xù)劃分為更小的CU塊,直到不能劃分為止.與HEVC中采用的四叉樹劃分不同,VVC為提升壓縮效率,在對CU進(jìn)行劃分時采用了更為復(fù)雜的二叉、三叉、四叉樹劃分結(jié)構(gòu),如圖1所示.其中,圖1(a)為VVC的CTU劃分示例.

當(dāng)視頻編碼器應(yīng)用于實時視頻聊天、遠(yuǎn)程手術(shù)指導(dǎo)等場景時,不僅要求編碼器擁有高質(zhì)量的壓縮性能,還需要其滿足實時性要求.VVC原始編碼方案中復(fù)雜的CU劃分過程增加了編碼器的計算復(fù)雜度,極大地延長了視頻編碼時間,無法滿足上述應(yīng)用場景的實時性需求,阻礙了該編碼標(biāo)準(zhǔn)在實際生活中的應(yīng)用.因此,對VVC編碼器的快速編碼算法研究對VVC標(biāo)準(zhǔn)的應(yīng)用與推廣十分有意義.

圖1 CTU劃分結(jié)構(gòu)示例Fig.1 An example of CTU partitioning

2 面向VVC的幀內(nèi)快速算法

VVC的CTU大小為128 px×128 px,CU的深度范圍為0到6,如圖1(b)所示.每個CU最多要遍歷5種不同的劃分模式,包括二叉樹水平劃分、二叉樹垂直劃分、三叉樹水平劃分、三叉樹垂直劃分、四叉樹劃分.基于VVC的這些新特性,提出對CU進(jìn)行深度預(yù)測及劃分模式選擇以實現(xiàn)CU提前終止的算法.主要包括兩個部分:基于反向傳播(BP)神經(jīng)網(wǎng)絡(luò)的CU劃分深度預(yù)測和基于概率統(tǒng)計的CU劃分模式選擇.

2.1 基于BP神經(jīng)網(wǎng)絡(luò)的CU深度預(yù)測算法

先前的預(yù)測算法大多都是對CTU的深度進(jìn)行預(yù)測[10-11],但實際上CTU不同區(qū)域的紋理信息可能不同,因此對CTU的不同區(qū)域采取不同的預(yù)測深度,將獲得更好的效果.此外,由于淺層的神經(jīng)網(wǎng)絡(luò)具有復(fù)雜度低、學(xué)習(xí)能力強(qiáng)、易獲取數(shù)據(jù)間聯(lián)系的特點(diǎn),因此使用BP神經(jīng)網(wǎng)絡(luò)對CU進(jìn)行深度圖預(yù)測,再通過深度圖信息確定CU的劃分深度.其中CU的深度圖指CU實際劃分深度信息的矩陣表示,如圖1(c)所示.選擇8 px×8 px的塊作為深度圖的基本單元.

時空域相鄰的CU深度信息有很強(qiáng)的相關(guān)性[15],使用25個時空域相鄰的深度圖單元信息作為參考信息預(yù)測CU深度圖中每個單元的深度值.用C(x,y,t)表示第t幀中左上角像素值坐標(biāo)為(x,y)的深度圖單元,則C(x,y,t)的25個參考深度圖單元可表示為

其中:Δx和Δy表示-2到2的整數(shù).

如果當(dāng)前幀的參考深度圖單元存在,就使用其為參考單元;否則使用前一幀的相鄰深度圖單元信息作為參考單元.

圖2 BP神經(jīng)網(wǎng)絡(luò)模型Fig.2 BP neural network architecture

本設(shè)計中3層BP神經(jīng)網(wǎng)絡(luò)模型如圖2所示,其中FC、ReLU和Softmax分別表示全連接層、修正線性單元激活函數(shù)及歸一化指數(shù)函數(shù).需要注意的是,在VVC中CU深度為0時不執(zhí)行幀內(nèi)預(yù)測,因此設(shè)深度圖單元的深度預(yù)測范圍為1~6.BP網(wǎng)絡(luò)使用式(1)中的25個參考深度圖單元的深度信息作為輸入層的輸入,輸出層輸出6個可能的預(yù)測深度概率值,隱含層使用了16個神經(jīng)元.BP神經(jīng)網(wǎng)絡(luò)模型的定義為:

其中:Zl、Wl、Xl、Bl分別表示BP神經(jīng)網(wǎng)絡(luò)第l層的輸出、權(quán)重、輸入及偏置項;Act表示激活函數(shù).

采用ReLU作為激活函數(shù),該函數(shù)可以提高神經(jīng)網(wǎng)絡(luò)的稀疏性、緩解訓(xùn)練結(jié)果的過擬合且具有運(yùn)算簡單的優(yōu)點(diǎn),是神經(jīng)網(wǎng)絡(luò)中常用的激活函數(shù).在網(wǎng)絡(luò)訓(xùn)練時采用交叉熵為損失函數(shù),公式為:

其中:p(d)和q(d)分別表示訓(xùn)練標(biāo)簽向量和BP網(wǎng)絡(luò)的輸出結(jié)果向量;d表示深度值.q(d)中概率最高的值被選為深度圖單元的預(yù)測值U,定義為:

使用如表1所示的4個視頻序列來制作神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù).以原始編碼器對訓(xùn)練數(shù)據(jù)前20幀進(jìn)行編碼,得到25個時空域相鄰的深度圖單元信息作為訓(xùn)練數(shù)據(jù),深度圖單元的實際深度值作為訓(xùn)練標(biāo)簽.需要注意的是,生成訓(xùn)練數(shù)據(jù)時用4個不同的QP值(22、27、32、37)對視頻進(jìn)行編碼.將不同QP設(shè)置下獲取的訓(xùn)練樣本結(jié)合成一個大的訓(xùn)練數(shù)據(jù)集,從訓(xùn)練數(shù)據(jù)中隨機(jī)選取120萬個訓(xùn)練樣本,以4∶1劃分為訓(xùn)練集及測試集,得到的模型分類結(jié)果如圖3所示.需要注意的是,訓(xùn)練過程中網(wǎng)絡(luò)的輸入數(shù)據(jù)為公式(1)中定義的參考深度單元信息,訓(xùn)練標(biāo)簽為深度單元的實際最佳編碼深度值.

表1 BP網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)Tab.1 Training data for BP neural network

由圖3可以看出該模型可對深度進(jìn)行較好的預(yù)測.獲得深度圖后,一個CU的預(yù)測深度值dp可表示為:

其中:Round(*)表示四舍五入函數(shù);N和Un分別表示該CU所包含的深度單元數(shù)目及該CU所包含的第n個深度單元的預(yù)測值.當(dāng)CU小于深度單元(8 px×8 px)時,n取1.通過預(yù)測CU的劃分深度,提前終止CU的劃分可以節(jié)省編碼時間.

圖3 分類結(jié)果的混淆矩陣Fig.3 Confusion matrix of the classification results

2.2 基于概率統(tǒng)計的CU劃分模式選擇算法

在使用基于BP網(wǎng)絡(luò)的深度算法得到預(yù)測劃分深度值(dp)后,如果當(dāng)前CU的深度大于dp,CU最多要遍歷5種不同的劃分模式,包括二叉樹水平劃分、二叉樹垂直劃分、三叉樹水平劃分、三叉樹垂直劃分、四叉樹劃分.為進(jìn)一步節(jié)省編碼時間,提出基于概率統(tǒng)計的劃分模式選擇算法.在對一個CU進(jìn)行編碼前,首先統(tǒng)計已編碼CU中,5種劃分模式成為最佳劃分模式的次數(shù)占比(P).接著,將5種劃分模式在編碼過程中的編碼順序按照P從大到小排序,最后當(dāng)符合以下條件時,跳過其它還未被測試的劃分模式.

其中:Ps表示第s個測試的劃分模式成為最佳模式的概率;k表示第k個測試的劃分模式;Ck表示第k個劃分模式的RD代價值;Cmin表示在測試第k個劃分模式前的CU的最小RD代價值;α為閾值,范圍為0~1.

CU劃分過程中,k個測試模式會按概率值由大到小進(jìn)行排序并依次測試,故式(6)可以確保高概率的劃分模式在編碼器中被執(zhí)行,式(7)可以跳過比較低概率成為最佳劃分模式的未測試模式.因此,式(6)和(7)的聯(lián)合使用可以確保編碼性能.需要注意的是,在本算法中,需要為不同大小的CU塊分別統(tǒng)計5種劃分模式成為最佳劃分模式的概率.

圖4列出了α取不同值時,本算法與原始編碼器相比,在同等編碼質(zhì)量情況下比特率的平均增加值(BDBR(%))及平均時間節(jié)省(ATS(%))[16].BDBR表示在同樣的客觀質(zhì)量下,較優(yōu)的編碼方法可以節(jié)省的碼率百分比,其中BDBR越小,當(dāng)前編碼器的壓縮性能越佳;而ATS的計算包括了編碼算法中的所有開銷時間.采用表1中的序列作為測試序列在4個不同的QP值(22、27、32、37)設(shè)定下進(jìn)行了實驗.需要注意的是,ATS包括了算法的額外開銷時間.從圖4可以看出,隨著α的增加,BDBR及ATS逐漸減少,但總體變化幅度不大,為了在編碼質(zhì)量及編碼時間節(jié)省之間取得平衡,α取為0.5.

2.3 總體算法流程圖

本算法流程圖如圖5所示.當(dāng)參考的深度單元不足25個時,按照原始編碼流程對當(dāng)前CU塊進(jìn)行編碼.當(dāng)預(yù)測深度值比當(dāng)前CU的深度值大2時,當(dāng)前塊可能具有比較復(fù)雜的紋理,跳過當(dāng)前CU的幀內(nèi)角度預(yù)測模式可以節(jié)省不必要的編碼時間.如果當(dāng)前CU的劃分深度大于CU的預(yù)測深度,就提前終止其劃分過程.

圖4 不同α值設(shè)定下的BDBR及ATS結(jié)果Fig.4 The BDBR and ATS results under different α settings

圖5 總體算法流程圖Fig.5 Flowchart of the overall algorithm

3 實驗與討論

3.1 編碼性能分析

為測試所提出算法的性能,將算法運(yùn)用于VTM2.0平臺,分別測試視頻QP為22、27、32及37時的編碼性能,在VVC通用測試環(huán)境下使用全I(xiàn)幀配置條件進(jìn)行測試[17-18].所有序列均采用Intel(R)Core(TM)i5-7500@ 3.40 GHz and 3.40 GHz 16.00 GB RAM配置的計算機(jī)進(jìn)行測試,結(jié)果如表2所示.

表2 不同編碼算法的性能比較Tab.2 Performance comparison of different encoding algorithms

續(xù)表2Continue table 2

采用在同等比特率情況下平均增加的峰值信噪比值(BDPSNR(dB))、BDBR(%)及平均時間節(jié)省(ATS(%))參數(shù)作為編碼算法比較指標(biāo),其中:BDPSNR表示在同等碼率下,兩種編碼條件下壓縮后視頻PSNR值的差異,BDPSNR值越大,當(dāng)前編碼器質(zhì)量損失越小[16].表2列出了CSD-SL[14]、基于BP網(wǎng)絡(luò)的CU深度預(yù)測算法、本文提出的將基于BP網(wǎng)絡(luò)的CU深度預(yù)測算法與基于概率統(tǒng)計的CU劃分模式選擇算法相結(jié)合的算法(結(jié)合算法)的性能比較結(jié)果.從表2中可以看到,相比于原始視頻編碼算法,雖然結(jié)合算法BDBR性能下降了2.05%,但是在平均時間上可以節(jié)省59.82%,而相比于文[14]提出的CSD-SL算法的結(jié)果,結(jié)合算法的BDBR性能下降了0.5%,但是在平均時間上可以節(jié)省7%.此外,文[14]需要為不同QP及編碼比特分別訓(xùn)練不同的決策樹模型,而本算法采用固定的BP網(wǎng)絡(luò)模型,不需要為不同QP分別訓(xùn)練不同BP網(wǎng)絡(luò)模型,相對來說更容易實現(xiàn).

從表2還可以看出,當(dāng)視頻序列有大范圍平坦區(qū)域及緩慢場景變換時(如Kimono、Tango),編碼時間節(jié)省較多.這是因為只有少量的CU在該類視頻中需要進(jìn)行復(fù)雜劃分,所以結(jié)合算法提出提前終止可大幅度降低編碼復(fù)雜度.相反,在具有復(fù)雜紋理信息的視頻中(如PartyScene、BQsqure),大量的CU需要進(jìn)行較為復(fù)雜的劃分以提升壓縮效率,因此結(jié)合算法在該類視頻上的編碼時間節(jié)省較少.此外,具有劇烈運(yùn)動內(nèi)容的視頻(如BasketballDrive、Compfire),由于視頻內(nèi)容的時空域相關(guān)性比較低,導(dǎo)致預(yù)測困難,因此會出現(xiàn)比較大的比特率變化.總體而言,本算法相比VVC原始編碼器可以平均節(jié)省59.82%的幀內(nèi)編碼時間,并保持良好的率失真性能.

3.2 算法所引入的額外開銷分析

為分析本算法在編碼器中的額外開銷,定義每幀中算法的額外開銷(E)為:

其中:tpro表示每幀中本算法所占用的運(yùn)算時間;tori表示原始編碼器每一幀的編碼時間.

圖6展示了在4個不同視頻QP設(shè)定下BasketballDrive和KristenAndSara前30幀中算法的額外開銷,可以看到每幀的額外開銷都不到0.5%.此外隨著QP的增大,算法的額外開銷占比也變大.相比于本算法的總體時間縮減增益,算法的額外開銷幾乎可以忽略不計.

圖6 本算法在不同視頻序列中的額外開銷Fig.6 Overhead of proposed method in different video sequences

4 結(jié)語

為降低VVC編碼器的幀內(nèi)編碼復(fù)雜度,提出一種面向VVC的幀內(nèi)快速編碼算法,包括基于BP神經(jīng)網(wǎng)絡(luò)的CU劃分深度預(yù)測及基于統(tǒng)計概率的CU劃分模式選擇.實驗結(jié)果表明,本算法不會給編碼器帶來很多的額外開銷,同時與原始編碼算法相比可以平均節(jié)省59.82%的編碼時間,并保持良好的RD性能.

猜你喜歡
編碼器編碼神經(jīng)網(wǎng)絡(luò)
融合CNN和Transformer編碼器的變聲語音鑒別與還原
基于神經(jīng)網(wǎng)絡(luò)的船舶電力系統(tǒng)故障診斷方法
基于遞歸模糊神經(jīng)網(wǎng)絡(luò)的風(fēng)電平滑控制策略
生活中的編碼
設(shè)定多圈絕對值編碼器當(dāng)前圈數(shù)的方法
轉(zhuǎn)爐系統(tǒng)常用編碼器選型及調(diào)試
舞臺機(jī)械技術(shù)與設(shè)備系列談(二)
——編碼器
《全元詩》未編碼疑難字考辨十五則
子帶編碼在圖像壓縮編碼中的應(yīng)用
基于神經(jīng)網(wǎng)絡(luò)的中小學(xué)生情感分析
青冈县| 乌拉特后旗| 深州市| 巨鹿县| 阜康市| 海晏县| 瓮安县| 汉寿县| 和顺县| 宜宾市| 苏尼特左旗| 金昌市| 密云县| 阿城市| 民权县| 城口县| 古浪县| 台南市| 建德市| 乐昌市| 新宁县| 卫辉市| 南陵县| 舒兰市| 铜山县| 铁岭市| 普兰县| 耒阳市| 宁武县| 九龙坡区| 祁东县| 涿州市| 利辛县| 弥渡县| 通河县| 成都市| 马公市| 门源| 巴林左旗| 襄垣县| 同江市|