• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    利用深度學(xué)習(xí)的HEVC幀內(nèi)編碼單元快速劃分算法

    2021-03-13 06:00:44易清明林成思
    關(guān)鍵詞:碼率復(fù)雜度卷積

    易清明,林成思,石 敏

    (暨南大學(xué) 信息科學(xué)技術(shù)學(xué)院,廣州 510632)

    1 引 言

    H.265/HEVC(High Efficiency Video Coding,高效視頻編碼)是ITU-T和ISO/IE在2013年聯(lián)合發(fā)布的繼H.264/AVC之后的新一代高效視頻編碼壓縮標(biāo)準(zhǔn)[1].HEVC標(biāo)準(zhǔn)致力于在保證視頻編碼質(zhì)量的前提下,在編碼效率上比AVC提升一倍,為此HEVC引入了一系列新的技術(shù).但同時(shí)編碼復(fù)雜度急劇增加,使得在多媒體應(yīng)用上HEVC存在對設(shè)備的運(yùn)算能力要求的較高門檻,因此HEVC亟需通過算法優(yōu)化降低編碼復(fù)雜度.

    在HEVC中,為了適應(yīng)視頻圖像平緩區(qū)域和復(fù)雜區(qū)域的不同編碼特性,一幅圖像可以被劃分為互不重疊的編碼樹單元[2](CTU),在CTU內(nèi)部采用基于四叉樹的循環(huán)分層結(jié)構(gòu)劃分為若干個CU,這個遞歸過程占據(jù)了HEVC編碼時(shí)間的80%以上,其原因在于對于每一個CU劃分的可能方案HEVC采用了暴力遞歸的做法遍歷每一種方案通過計(jì)算RD代價(jià)(RD-cost)以尋求最優(yōu)碼率,這個過程存在大量的冗余計(jì)算[3].

    自HEVC標(biāo)準(zhǔn)發(fā)布以來,許多針對HEVC編碼單元快速劃分的優(yōu)化方案被陸續(xù)提出,不同程度地減少了CU劃分的冗余計(jì)算.文獻(xiàn)[4]所提出的算法定義了基于RD代價(jià)(RD-cost)的貝葉斯決策方法,在每個CU深度級別執(zhí)行提前CU分裂和修剪,減少 CU分割遍歷次數(shù).文獻(xiàn)[5]利用前一幀以及當(dāng)前幀相鄰CU的劃分結(jié)果,對當(dāng)前幀的CU劃分方式進(jìn)行預(yù)判.文獻(xiàn)[6]利用了輸入圖像紋理梯度等特性,利用紋理復(fù)雜度自適應(yīng)地跳過一些CU大小.文獻(xiàn)[7]提供自適應(yīng)決策能力來擴(kuò)展基于關(guān)鍵點(diǎn)的CU深度決策(KCD)方法,一定程度上降低了編碼計(jì)算復(fù)雜度.以文獻(xiàn)[8,9]為代表的基于支持向量機(jī)(SVM)的快速CU大小決策算法提取圖像特征來判斷CU復(fù)雜度,然后基于SVM建立CU大小決策的分類器結(jié)構(gòu).文獻(xiàn)[10]同樣使用SVM來進(jìn)行預(yù)測幀內(nèi)CU劃分,同時(shí)結(jié)合幀內(nèi)角度預(yù)測模式,進(jìn)一步減少幀內(nèi)預(yù)測的計(jì)算復(fù)雜度.另外,隨著深度學(xué)習(xí)的不斷發(fā)展,很多深度學(xué)習(xí)方法被應(yīng)用到視頻編解碼的領(lǐng)域.文獻(xiàn)[11]使用了一個兩層的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來預(yù)測單個CU是否劃分的二分類問題.文獻(xiàn)[12]使用了一個更深的3層CNN結(jié)構(gòu)來預(yù)測整個CTU的模型,并建立了一個針對CU劃分的數(shù)據(jù)庫CPIH,改善了網(wǎng)絡(luò)的學(xué)習(xí)能力.

    上述幀內(nèi)CU劃分快速選擇算法都能夠在一定程度上減少CU劃分冗余計(jì)算,縮減編碼時(shí)間,但仍存在自身缺陷.例如早期啟發(fā)式方法如文獻(xiàn)[4-7]依賴與人為指定的經(jīng)驗(yàn)特征,無法挖掘CU劃分過程中的深層次特征.文獻(xiàn)[8-10]利用的SVM的方法學(xué)習(xí)能力有限,相比深度學(xué)習(xí)模型在預(yù)測能力上稍顯不足,準(zhǔn)確率不能得到保證.而深度學(xué)習(xí)方法如文獻(xiàn)[11,12]等也存在著一些問題,如分開使用3個同樣的CNN來分別預(yù)測3種大小的CU劃分,在不同深度的CU劃分中沒有建立聯(lián)系;同時(shí)每次網(wǎng)絡(luò)只判斷一層的CU劃分情況,需要反復(fù)調(diào)用多次才能預(yù)測出整個CTU的劃分,仍有改進(jìn)的空間.

    本文針對以上問題,提出一種基于深度學(xué)習(xí)編碼單元快速劃分算法.首先與一些三級分類器方法需要反復(fù)調(diào)用分類器不同的是,本文方法一次性預(yù)測整個CTU的CU劃分情況,將同一個CTU中不同深度的CU劃分建模為一個整體;另外,為了更好地適應(yīng)CU劃分的層級結(jié)構(gòu),本文算法使用了一種基于Inception模塊[13]的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),使之內(nèi)嵌于HEVC編碼框架中,直接根據(jù)亮度像素值對編碼單元的劃分進(jìn)行提前預(yù)測,有效地去除了All Intra配置下中冗余的CU劃分計(jì)算.

    2 基于深度學(xué)習(xí)的快速編碼單元劃分算法

    與上一代編碼標(biāo)準(zhǔn)H.264相比,HEVC新引入了通過四叉樹方式靈活劃分的樹形結(jié)構(gòu)單元(CTU),一個CTU大小一般為64×64,可以劃分為不同大小編碼單元(CU).為了貼合不同視頻圖像的紋理特征,每個CU共設(shè)有4種可能劃分尺寸:64×64、32×32、16×16和8×8.圖1為CTU劃分為CU的示意圖.本文深度學(xué)習(xí)模型以整個CTU的亮度塊像素作為輸入,各個尺寸的CU分割模式作為輸出,經(jīng)過訓(xùn)練學(xué)習(xí)以獲得較為準(zhǔn)確的CU劃分預(yù)測效果.

    圖1 HEVC CU劃分結(jié)構(gòu)示意圖Fig.1 HEVC CU Splitting Structure

    2.1 劃分模式建模

    圖2 CU不同層次的劃分決策表示Fig.2 Representation of division decision in different levels of CU

    2.2 數(shù)據(jù)集的建立

    表1 本文數(shù)據(jù)集來源的信息Table 1 Information on the source of this data set

    為了進(jìn)一步增加數(shù)據(jù)庫的多樣性,避免在訓(xùn)練時(shí)產(chǎn)生過擬合的現(xiàn)象,本文對數(shù)據(jù)庫中樣本進(jìn)行了兩項(xiàng)處理:幀級間隔取樣(Frame level interval sampling,F(xiàn)LIS),以及數(shù)據(jù)增強(qiáng)處理(Data augmentation,DA).

    幀級間隔取樣是為了去除空間樣本的相似性.雖然將視頻的每一幀所有CTU的劃分的情況都作為數(shù)據(jù)加入數(shù)據(jù)集能快速獲得大量數(shù)據(jù),但是由于視頻圖像的時(shí)空相似性,相鄰的兩幀視頻圖像非常相似.事實(shí)上重合度非常高的數(shù)據(jù)如果都作為訓(xùn)練數(shù)據(jù),不利于訓(xùn)練數(shù)據(jù)的多樣性.為了去除重復(fù)數(shù)據(jù),增加訓(xùn)練樣本間的差異性,本文對原始視頻的幀進(jìn)行了截取,每隔5幀收集一幀的CTU劃分?jǐn)?shù)據(jù),因此實(shí)際采取的樣本為原始視頻所有幀的完整CTU的1/5.

    另外,進(jìn)行數(shù)據(jù)增強(qiáng)處理能豐富樣本的數(shù)量,減小過擬合風(fēng)險(xiǎn),并使得訓(xùn)練得到的模型具有更好的泛化能力和魯棒性.對上述得到的樣本進(jìn)行旋轉(zhuǎn)90°、180°、270°和左右翻轉(zhuǎn),如圖3所示(取自sunflower_1080p25.yuv).把得到的新數(shù)據(jù)都加入到數(shù)據(jù)集中,數(shù)據(jù)的數(shù)目會擴(kuò)大為原來5倍.因此,進(jìn)行了幀級間隔取樣和數(shù)據(jù)增強(qiáng)之后,樣本總數(shù)不變,但豐富性增加.

    圖3 對CU劃分樣本進(jìn)行數(shù)據(jù)增強(qiáng)Fig.3 Data augmentation for CU partition samples

    所有樣本中訓(xùn)練集、驗(yàn)證集和測試集的樣本數(shù)量分別占總樣本的85%、5%和10%,樣本數(shù)量信息如表2所示.

    表2 本文數(shù)據(jù)集的樣本信息Table 2 Information of this data set

    2.3 基于深度學(xué)習(xí)的CU劃分預(yù)測模型總體結(jié)構(gòu)

    本文提出的基于Inception模塊的CU劃分預(yù)測模型總體結(jié)構(gòu)如圖3所示.除了必要的輸入層、輸出層以外,深度學(xué)習(xí)模型主要由一個卷積層、兩個Inception模塊、一個池化層和全連接網(wǎng)絡(luò)組成,見圖4.圖中@代表卷積核的數(shù)目,箭頭代表數(shù)據(jù)在神經(jīng)網(wǎng)絡(luò)中的流動.

    圖4 深度學(xué)習(xí)模型結(jié)構(gòu)圖Fig.4 Structural diagram of deep learning model

    輸入層Input為一個64×64的CTU亮度塊,為YUV視頻Y分量組成的亮度像素塊.首先經(jīng)過圖像歸一化層N1,使用全局歸一化處理整個圖像數(shù)據(jù),使得訓(xùn)練數(shù)據(jù)更快地收斂.

    然后,經(jīng)過一層4×4卷積層Conv1.為了貼合CU劃分過程的非重疊(Non-overlap)特性,在這一層我們設(shè)置卷積層的跨度(Stride)等于卷積核的大小(Kernel size),使得在第一層中卷積為非重疊的,對應(yīng)HEVC標(biāo)準(zhǔn)中CU劃分的特點(diǎn).

    步驟1:初始化,t=0,t為當(dāng)前迭代次數(shù),N為種群大小。若k≥N,則根據(jù)適應(yīng)度值從小到大選取前N個作為初始值將(xP1,yP1),(xP2,yP2),…,(xPi,yPi),…,(xPN,yPN)賦值給(xW1(t),yW1(t)),…,(xWi(t),yWi(t)),…,(xWN(t),yWN(t)),i的取值為1~N;若k

    為了進(jìn)一步學(xué)習(xí)更高層次和不同大小范圍的特征,接下來采用兩個Inception模塊Inc1、Inc2,見圖5.Inception模塊最早來源于Google Inception Net,后者可以控制計(jì)算量和參數(shù)量的同時(shí),獲得非常好的分類性能,在圖像分類領(lǐng)域取得了長足進(jìn)展,是非常優(yōu)秀并且實(shí)用的模型.

    圖5 本文Inception模塊結(jié)構(gòu)圖Fig.5 Structural diagram of inception module in this paper

    與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)中的卷積層不同,Inception模塊同一層中包含不同大小的卷積核.傳統(tǒng)的CNN網(wǎng)絡(luò)每一層的卷積核大小是固定的,卷積核的大小確定了感受野的大小,因此傳統(tǒng)CNN卷積層沒有辦法同時(shí)獲取不同大小的圖像特征.而Inception 模塊采用了分支的方法,每一層包含了若干個分支,而每個分支包含了不同大小的卷積核,可以同時(shí)獲得不同大小的感受野,獲取到層次更加豐富的特征,增加多樣性(Diversity).另外Inception模塊采用了許多大小為1×1的卷積核,來進(jìn)行低成本的跨通道的特征變換,減少運(yùn)算耗費(fèi)的資源,同時(shí)降低過擬合的風(fēng)險(xiǎn).

    本文將Inception Net[13]中的Inception模塊應(yīng)用到CU劃分的實(shí)際問題時(shí)進(jìn)行了一些修改,采用的Inception模塊分別有4個分支(Branch),第1分支中,對輸入進(jìn)行1×1的卷積操作,其作用是對不同通道之間的信息進(jìn)行整合,使得模型的表達(dá)能力得到提升,還能有效調(diào)節(jié)輸出的通道數(shù),有效控制運(yùn)算量.第2個分支先使用了1×1的卷積,然后連接4×4的卷積,獲取大小為4×4的區(qū)域的特征.第3分支類似,先進(jìn)行1×1卷積,然后連接2×2卷積,獲取大小為2×2的區(qū)域的特征.最后一個分支直接進(jìn)行padding=SAME和stride=1的2×2均勻池化,然后再進(jìn)行1×1卷積降低維度,進(jìn)一步增加多樣性.

    接下來是全局池化層Pool1,進(jìn)行全局池化,進(jìn)一步精簡特征.采用了一個2×2大小的池化處理,步長stride也為2,為非重疊池化,對特征進(jìn)行過濾,在保留主要特征的前提下大大降低參數(shù)數(shù)目,可以減少過擬合的風(fēng)險(xiǎn),并降低模型運(yùn)算量.

    在之后連接3個全連接層Fc1、Fc2和Fc3,分別對3個不同的輸出進(jìn)行學(xué)習(xí).全連接層把之前層提取的局部特征通過權(quán)值矩陣組裝成完整的圖,進(jìn)一步得出最終劃分結(jié)果.為了對應(yīng)于HEVC三種不同大小的CU的層級劃分結(jié)構(gòu),在這里使用了3個分開的全連接網(wǎng)絡(luò),分別預(yù)測3種深度的CU劃分結(jié)果.

    輸出層Output為最后的輸出,分別有1、4、16個輸出,分別對應(yīng)64×64、32×32、16×16的CU劃分判斷.最終輸出個數(shù)為21個.

    除了Output層使用Sigmoid激活函數(shù)以外,其余各層使用Leaky_ReLU作為激活函數(shù).該函數(shù)相比Sigmoid函數(shù)收斂速度更快,且不會出現(xiàn)梯度消失的問題,同時(shí)輸出對負(fù)值輸入有很小的坡度,可以減少靜默神經(jīng)元的出現(xiàn),允許基于梯度的學(xué)習(xí),解決了ReLU函數(shù)進(jìn)入負(fù)區(qū)間后,導(dǎo)致神經(jīng)元不學(xué)習(xí)的問題.而Output層輸出為二分類問題,這里使用Sigmoid激活函數(shù)得到預(yù)測概率值(分布在0到1之間).最終推斷出預(yù)測概率后,大于0.5的判斷為劃分,小于0.5的輸出值判斷為不劃分.

    為了計(jì)算預(yù)測的損失,基于下面的3個深度的交叉熵之和來定義損失函數(shù)L:

    (1)

    (2)

    3 實(shí)驗(yàn)結(jié)果分析

    為了驗(yàn)證提出的基于Inception模塊的深度學(xué)習(xí)模型的有效性,本文將訓(xùn)練好的深度學(xué)習(xí)模型嵌入到HEVC官方參考軟件HM16.12[3]中進(jìn)行編碼測試.本文測試環(huán)境的硬件配置為3.20GHz主頻的Intel Core i7-8750H CPU,運(yùn)行內(nèi)存大小為8G,在64位Windows10操作系統(tǒng)下進(jìn)行測試,深度學(xué)習(xí)模型實(shí)現(xiàn)的框架使用Tensorflow1.14.0.測試對象按照J(rèn)CTVC-L1100[14]測試條件,在A-E的5類不同分辨率的編碼標(biāo)準(zhǔn)測試序列中選取10個測試視頻序列,每一種分辨率選取兩個視頻來進(jìn)行實(shí)驗(yàn).對選取的10個測試視頻的前50幀使用AI(AllIntraMain)全幀內(nèi)編碼配置進(jìn)行編碼測試,可以充分體現(xiàn)出視頻的編碼效果.

    對于評估方法,本文使用提案VCEG-M33中所提的BD-BR方法[15],主要評價(jià)指標(biāo)有3個,分別為BD-BR,BD-PSNR,ΔT.BD-BR表示相同圖像質(zhì)量(PSNR)的情況下碼率的相對值,該值越小表示碼率越小,在編碼效率上表現(xiàn)更加優(yōu)秀.而BD-PSNR表示相同碼率的情況下亮度分量峰值信噪比的差異,該值越小表示圖像視頻質(zhì)量損失越小.ΔT表示編碼時(shí)間縮減量,代表著計(jì)算復(fù)雜度的降低程度,其計(jì)算公式如下:

    (3)

    式中Timeprop代表使用本文算法的實(shí)際編碼時(shí)間,而TimeHM16.12表示原始編碼器HM16.12的編碼耗時(shí).另外,4種不同的量化參數(shù)(QP)分別為22,27,32和37,本文實(shí)驗(yàn)將4種QP下編碼時(shí)間縮減量取平均作為最終編碼時(shí)間縮減量.

    表3為本文算法實(shí)驗(yàn)得出的BD-BR、BD-PSNR、實(shí)際編碼時(shí)間以及與原始編碼器編碼時(shí)間相比的編碼節(jié)省時(shí)間ΔT.從表3中的實(shí)驗(yàn)結(jié)果可以看出,本文利用深度學(xué)習(xí)的方法大幅縮減了編碼時(shí)間,與HEVC原始編碼器HM16.12相比平均節(jié)省了61.31%的編碼時(shí)間,特別在BasketballDrive序列中時(shí)間節(jié)省達(dá)到了75.04%,在高分辨率的視頻中時(shí)間節(jié)省表現(xiàn)較為優(yōu)秀.而BD-BR僅上升1.86%,BD-PSNR值也僅為-0.13dB.由此可以看出本文算法可以大幅減少HEVC編碼復(fù)雜度,減少編碼時(shí)間消耗.同時(shí)BD-BR和BD-PSNR的值較小也說明本文算法對視頻的碼率和是視頻的質(zhì)量影響在可接受的范圍內(nèi).

    表3 本文算法的BD-PSNR、BD-BR、實(shí)際編碼時(shí)間和ΔT(與HM16.12對比)Table 3 BD-BR,BD-PSNR,actual encoding time and ΔT in this paper(compared with HM16.12)

    圖6為視頻序列BasketballDrill由原始HM編碼器與本文提供的深度學(xué)習(xí)算法進(jìn)行編碼的編碼性能對比,可以更加直觀地體現(xiàn)出算法在碼率和圖像質(zhì)量的表現(xiàn).從圖中可以看出,本文算法R-D(Rate-distortion)曲線和原始編碼器的R-D曲線幾乎重疊,表明本文算法在圖像質(zhì)量和編碼效率上性能良好.

    圖6 BasketballDrill序列的R-D曲線Fig.6 R-D curves of BasketballDrill sequence

    表4給出了與現(xiàn)有5種不同的HEVC編碼單元劃分算法進(jìn)行比較結(jié)果,其中ΔT為所有測試序列在4個QP配置下編碼時(shí)間縮減的平均值.與文獻(xiàn)[5]中利用時(shí)空相關(guān)性跳過某些CU劃分深度的方法相比,本文方法時(shí)間節(jié)省顯著提升,這是由于本文方法一次性預(yù)測所有CU劃分方法,跳過的編碼單元深度計(jì)算過程更多.與文獻(xiàn)[6]中使用圖像紋理的快速算法相比,本文預(yù)測準(zhǔn)確度更高因此編碼的碼率損失遠(yuǎn)遠(yuǎn)小于該算法效果.與文獻(xiàn)[9]中使用SVM的方法相比,在碼率和圖像質(zhì)量相差不大的情況下,進(jìn)一步節(jié)省了10%左右的編碼時(shí)間.文獻(xiàn)[11]為一個淺層的神經(jīng)網(wǎng)絡(luò)方法,但由于神經(jīng)網(wǎng)絡(luò)與本文相比層數(shù)較淺,本文算法編碼性能提高較為明顯,BD-BR降低了4.6%左右.與文獻(xiàn)[12]的神經(jīng)網(wǎng)絡(luò)方法相比,BD-PSNR和節(jié)省時(shí)間幾乎相同的情況下有更低的碼率,在對碼率需求更高的存儲、實(shí)時(shí)傳輸方面應(yīng)用更有優(yōu)勢.

    表4 本文算法與其他算法的編碼性能比較Table 4 Coding performance comparisons between the proposed algorithm and other algorithms

    4 結(jié)論與討論

    本文利用基于深度學(xué)習(xí)的方法,對HEVC中復(fù)雜度極高的編碼單元CU劃分過程進(jìn)行了預(yù)測,根據(jù)亮度塊像素預(yù)測出整個編碼樹單元CTU的劃分情況,使得冗余劃分計(jì)算得到消除.首先,對不同分辨率的37個視頻序列進(jìn)行編碼,收集大量CU劃分信息樣本,建立了一個HEVC的CU劃分?jǐn)?shù)據(jù)集.然后設(shè)計(jì)了一個與CU劃分相適應(yīng)的深度學(xué)習(xí)模型,使用Inception模塊和池化、全連接等神經(jīng)網(wǎng)絡(luò)層進(jìn)行學(xué)習(xí)預(yù)測,訓(xùn)練出用于CU劃分決策的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò).最后把模型嵌入HEVC官方測試軟件HM16.12,對劃分結(jié)果進(jìn)行預(yù)測,進(jìn)而消除了CU劃分的暴力遍歷,有效降低了編碼復(fù)雜度.實(shí)驗(yàn)表明,與HM16.12相比,本文算法在編碼性能和圖像質(zhì)量變化不大的情況下(BD-BR與BD-PSNR僅為1.86%和-0.13dB),顯著地提高了編碼速度,編碼時(shí)間平均降低了61.31%.但不足之處在于未能考慮到幀間編碼的情況,未來可增加對幀間預(yù)測的處理,減少幀間編碼的復(fù)雜度.

    猜你喜歡
    碼率復(fù)雜度卷積
    基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
    從濾波器理解卷積
    電子制作(2019年11期)2019-07-04 00:34:38
    一種低復(fù)雜度的慣性/GNSS矢量深組合方法
    基于狀態(tài)機(jī)的視頻碼率自適應(yīng)算法
    基于傅里葉域卷積表示的目標(biāo)跟蹤算法
    求圖上廣探樹的時(shí)間復(fù)雜度
    某雷達(dá)導(dǎo)51 頭中心控制軟件圈復(fù)雜度分析與改進(jìn)
    基于場景突變的碼率控制算法
    X264多線程下碼率控制算法的優(yōu)化
    出口技術(shù)復(fù)雜度研究回顧與評述
    余江县| 兴安盟| 江北区| 孝昌县| 囊谦县| 乐昌市| 枣阳市| 珠海市| 永善县| 尉犁县| 天峨县| 舟曲县| 定襄县| 和顺县| 当雄县| 沙田区| 息烽县| 阜城县| 蒙城县| 沈丘县| 满洲里市| 运城市| 成安县| 巍山| 上蔡县| 沅陵县| 夏河县| 宝鸡市| 太谷县| 洪湖市| 东光县| 翼城县| 常熟市| 镇江市| 岳西县| 阜宁县| 固阳县| 马公市| 榆中县| 南部县| 武宣县|