999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

H.265幀內(nèi)模式判決并行計(jì)算方法研究與實(shí)現(xiàn)

2018-11-14 10:27:44柴志雷趙建斌
關(guān)鍵詞:深度方法

李 申,柴志雷,2,嚴(yán) 偉,夏 珺,趙建斌

1(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫 214122 2(數(shù)學(xué)工程與先進(jìn)計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室,江蘇 無(wú)錫 214125 3(北京大學(xué) 軟件與微電子學(xué)院,北京 102600)

1 引 言

與H.264/AVC算法相比,H.265/HEVC算法可以在保證視頻質(zhì)量相同的前提下,將視頻碼率降低一半,即壓縮比提高一倍,這大大減少了對(duì)通信帶寬和存儲(chǔ)空間的占用.然而由于H.265算法采用了更為復(fù)雜的宏塊劃分機(jī)制和預(yù)測(cè)模式,使得其編碼速度較H.264算法降低數(shù)倍[1].因此H.265算法的加速問(wèn)題自H.265標(biāo)準(zhǔn)發(fā)布以來(lái)就一直是視頻編解碼領(lǐng)域研究的熱點(diǎn)和難點(diǎn)[2].

目前國(guó)內(nèi)外相關(guān)研究多集中于幀間預(yù)測(cè)算法及幀內(nèi)預(yù)測(cè)算法的軟件加速方面,幀內(nèi)模式判決的硬件結(jié)構(gòu)及加速方面的研究相對(duì)較少.文獻(xiàn)[3]-文獻(xiàn)[8]在不同程度上對(duì)幀內(nèi)模式判決算法在軟件層次進(jìn)行了加速,但加速比不理想,不能完全滿足實(shí)際應(yīng)用的需求.文獻(xiàn)[9]提出了一種基于FPGA的H.265編碼器,主要通過(guò)對(duì)原始圖像進(jìn)行下采樣來(lái)達(dá)到快速模式判決的目的,造成編碼質(zhì)量有了一定的損失.幀內(nèi)編碼幀作為幀間算法的參照對(duì)象,其質(zhì)量的好壞直接決定了同一個(gè)GOP(Group of Pictures,畫(huà)面組)中的幀間視頻編碼質(zhì)量.因此,如何進(jìn)行快速高效的幀內(nèi)模式判決是H.265算法加速的關(guān)鍵問(wèn)題之一.

H.265幀內(nèi)預(yù)測(cè)和編碼算法引入了多達(dá)35種幀內(nèi)預(yù)測(cè)模式和4種CU(Coding Unit)劃分尺度,使得其算法復(fù)雜度很高[1].一方面,本文通過(guò)CU的重新劃分和組合來(lái)解決不同尺度下的編碼塊劃分問(wèn)題,將多層次大尺度CU的模式判決問(wèn)題轉(zhuǎn)化為單一層次多個(gè)小尺度CU模式判決的疊加問(wèn)題;另一方面,通過(guò)塊內(nèi)細(xì)粒度并行和塊間窗口流水的方式實(shí)現(xiàn)并行編碼架構(gòu);最終基于FPGA實(shí)現(xiàn)了快速模式判決.在嵌入式平臺(tái)Xilinx ZCU102上的實(shí)驗(yàn)結(jié)果表明,本文算法最高可達(dá)到93.6x的加速比,且編碼后的視頻平均PSNR僅降低0.71dB.

2 H.265幀內(nèi)模式判決框架改進(jìn)

2.1 H.265幀內(nèi)預(yù)測(cè)算法

H.265幀內(nèi)預(yù)測(cè)算法的基本思想與H.264相近,是將原始視頻幀分塊劃分,利用像素的空間相關(guān)性,通過(guò)左側(cè)和上側(cè)的像素值對(duì)某一預(yù)測(cè)塊進(jìn)行預(yù)測(cè),并對(duì)預(yù)測(cè)塊與原始?jí)K的殘差進(jìn)行變換和編碼.

對(duì)于亮度分量,CU的尺寸包括64×64(Largest CU,LCU)、32×32、16×16、8×8(Smallest CU,SCU)共4種尺度,色度分量在YUV420采樣模式下CU邊長(zhǎng)減半.

幀內(nèi)預(yù)測(cè)包含3類共35種預(yù)測(cè)模式.分別是Planar模式(模式0)、DC模式(模式1)和Angular模式(模式2~模式34)[7].

2.2 H.265幀內(nèi)預(yù)測(cè)模式判決

H.265幀內(nèi)預(yù)測(cè)模式判決(Mode Decision, MD)主要解決兩個(gè)問(wèn)題:1)當(dāng)前CU是否需要繼續(xù)向下劃分;2)每個(gè)CU采取何種預(yù)測(cè)模式.

JCT-VC給出的標(biāo)準(zhǔn)參考模型HM中采用了四叉樹(shù)遞歸的方式進(jìn)行,最優(yōu)模式判定以率失真代價(jià)(RDcost)為依據(jù).具體做法是:從LCU逐層向下劃分,直至SCU遞歸返回,分別計(jì)算每種尺度下35種幀內(nèi)預(yù)測(cè)模式的最優(yōu)解.若某一尺度下,4個(gè)最優(yōu)解的RDcost之和小于上層最優(yōu)RDcost,則進(jìn)行CU劃分,否則不進(jìn)行CU劃分.如圖1所示.四叉樹(shù)遞歸調(diào)用結(jié)構(gòu)導(dǎo)致該算法的時(shí)間復(fù)雜度和空間復(fù)雜度均很高[1,5].

圖1 一次四叉樹(shù)遞歸劃分示意圖

2.3 幀內(nèi)模式判決算法框架改進(jìn)

與原始的自頂向下四叉樹(shù)遞歸劃分模式不同,本文提出了一種自底向上的逐層累加的幀內(nèi)判決預(yù)測(cè)模式,其改進(jìn)之處包括以下2個(gè)方面:

首先,對(duì)于一種給定的幀內(nèi)預(yù)測(cè)模式m(0≤m≤34),不再重復(fù)計(jì)算不同深度下的RDcost,深度d(0≤d≤2)的RDcost由深度為d+1的RDcost累加得到,如式(1)所示:

(1)

其次,對(duì)于幀內(nèi)模式劃分的判定,引入了分割代價(jià)C.根據(jù)視頻編碼理論,如果在某一深度不進(jìn)行四叉樹(shù)分割,能夠節(jié)省編碼時(shí)間、減小碼率(但是會(huì)造成視頻質(zhì)量在一定程度的下降),C即四叉樹(shù)分割的懲罰項(xiàng).對(duì)于分割S的判定可由式(2)確定:

(2)

下面以DC模式為例,證明上述判決過(guò)程與原始判決方法可以相互替代,DC模式的計(jì)算公式如式(3)所示.其中Px,y代表坐標(biāo)為(x,y)的參考像素值,N代表當(dāng)前CU的尺寸,?表示算術(shù)右移操作.

(3)

證明:假設(shè)當(dāng)前CU深度為d,尺寸為2N,則深度為d+1的CU尺寸為N.下面分2種情況進(jìn)行討論.

情況1.當(dāng)前CU符合DC分布,則深度為d+1的區(qū)域也符合DC分布.即當(dāng)前CU的MD應(yīng)為m=1,S=false.

深度為d時(shí):

(4)

深度為d+1時(shí):

(5)

(6)

根據(jù)式(2)可得S=false,即不進(jìn)行劃分.

情況2.深度為d+1的部分CU符合DC分布,深度為d的CU也不符合DC分布.

(7)

則針對(duì)DC模式需要深度為d的CU進(jìn)行劃分.

同理,對(duì)于Planar模式和Angular模式,可以通過(guò)分類討論的方式對(duì)本方法的有效性加以證明,不再贅述.

3 基于FPGA的并行幀內(nèi)模式判決

本文基于高層次綜合(High Level Synthesis,HLS)方法設(shè)計(jì)了兼容AXI(Advanced eXtensible Interface)接口的并行幀內(nèi)模式判決IP.HLS是一種將C/C++語(yǔ)言描述向HDL描述轉(zhuǎn)化的方法,通過(guò)接口約束、資源約束、時(shí)序約束等能夠快速實(shí)現(xiàn)硬件原型設(shè)計(jì)[10,11].

3.1 SCU內(nèi)并行與SCU間流水

如圖2所示,針對(duì)SCU,在進(jìn)行模式判決時(shí),可能用到的參考像素區(qū)域按順時(shí)針?lè)较虬ˋ、B、C、D、E共5個(gè)部分.

圖2 SCU與參考像素

通過(guò)這些區(qū)域得到預(yù)測(cè)值之后,再與SCU的原始像素值相減得到殘差,進(jìn)而進(jìn)行模式判決.H.265幀內(nèi)預(yù)測(cè)共有35種可能的預(yù)測(cè)模式,將這些數(shù)據(jù)拷貝35份,這35種幀內(nèi)預(yù)測(cè)模式就可以同時(shí)進(jìn)行.依據(jù)35種預(yù)測(cè)模式的特點(diǎn)可以將它們分為6組,如表1所示.在FPGA的具體實(shí)現(xiàn)過(guò)程中,為了減少代碼描述上的冗余,可以將35種算法分組進(jìn)行實(shí)現(xiàn),然后通過(guò)HLS提供的UNROLL指令進(jìn)行展開(kāi),從而達(dá)到并行化的目的.

表1 幀內(nèi)預(yù)測(cè)模式及其分組

若重構(gòu)值不可用(如當(dāng)前SCU處于視頻幀的左上角時(shí),這些區(qū)域不存在),則采用H.265標(biāo)準(zhǔn)給出的默認(rèn)值defaultVal.

defaultVal=2?(bit_depth-1)

(8)

bit_depth代表視頻分量的像素點(diǎn)的位寬,本文為8.

由于傳統(tǒng)的RDcost計(jì)算模式速度較慢,本文采用SAD作為RDCost的替代評(píng)價(jià)準(zhǔn)則,計(jì)算公式如式(9)所示.

(9)

3.2 SCU間流水

由于SCU的預(yù)測(cè)需要用到周圍像素的重構(gòu)值,這導(dǎo)致下一個(gè)SCU的處理必須等待上一個(gè)SCU的重構(gòu)結(jié)果,且SCU重構(gòu)的周期較長(zhǎng),從而導(dǎo)致算法無(wú)法實(shí)現(xiàn)SCU間的并行.為了減少反饋回路的耗時(shí),本文在進(jìn)行模式判決時(shí)采用原始值代替重構(gòu)值進(jìn)行[4].

多個(gè)SCU的并行會(huì)受到硬件資源的限制,本文采用流水的方式將單個(gè)SCU的幀內(nèi)模式判決硬件進(jìn)行復(fù)用.

二維圖像在內(nèi)存中采用一維的方式進(jìn)行存儲(chǔ),但SCU是二維的,若直接將DDR中的數(shù)據(jù)按SCU分塊加載至FPGA片上RAM,則會(huì)出現(xiàn)“地址跳躍”的問(wèn)題.

對(duì)于通用CPU來(lái)說(shuō),其主頻在GHz數(shù)量級(jí),同時(shí)具備多級(jí)緩存和預(yù)測(cè)-命中機(jī)制,“地址跳躍”并不會(huì)造成大的時(shí)間開(kāi)銷;本文中FPGA的工作頻率為200 MHz,為了避免造成不必要的時(shí)間浪費(fèi),本文設(shè)計(jì)了DDR-BRAM-LUT 3級(jí)物理存儲(chǔ)結(jié)構(gòu),分別對(duì)應(yīng)視頻幀-行緩存-窗口和參考像素緩存這3級(jí)邏輯存儲(chǔ)結(jié)構(gòu),如圖3所示進(jìn)行這種結(jié)構(gòu)劃分的依據(jù)是:DDR位于FPGA片外,容量最大但存取速度最慢;BRAM位于FPGA片內(nèi),容量較小但存儲(chǔ)速度較快;LUT也是FPGA的片內(nèi)資源,可以直接進(jìn)行快速訪問(wèn)而不像BRAM那樣需要事先指定存取地址.

圖3 三級(jí)物理與邏輯存儲(chǔ)結(jié)構(gòu)

具體做法如下:先將視頻信號(hào)載入DDR中,依據(jù)當(dāng)前幀與當(dāng)前處理的窗口對(duì)應(yīng)的行位置,進(jìn)行17行緩存(初始化時(shí)首行為默認(rèn)值defaultVal).同時(shí)開(kāi)辟參考像素緩存和行緩存,及時(shí)對(duì)參考像素與SCU窗口進(jìn)行緩存,并將SCU窗口和參考像素送入并行MD模塊,SCU窗口可以在行緩存中進(jìn)行流水化處理.如圖4所示.

圖4 SCU間流水處理示意圖

3.3 總體結(jié)構(gòu)

基于FPGA的幀內(nèi)模式判決的總體結(jié)構(gòu)如圖5所示.視頻數(shù)據(jù)從DDR通過(guò)AXI總線載入行緩存,原始像素依據(jù)窗口劃分分別進(jìn)入35個(gè)并行處理窗口w0~w34及35組并行參考像素緩存R0~R35(每組包括上側(cè)和左側(cè)兩部分),通過(guò)35個(gè)預(yù)測(cè)器P0~P34得到35種模式下的預(yù)測(cè)結(jié)果,利用SAD評(píng)價(jià)函數(shù)得到RDCost.單一尺度下可給出當(dāng)前尺度的最優(yōu)結(jié)果,多尺度下依據(jù)單一尺度的結(jié)果進(jìn)行疊加和修正,并采用本文2.3節(jié)提出的判決方法進(jìn)行CU決策,最終將決策結(jié)果通過(guò)AXI總線寫(xiě)回DDR.在DDR的讀寫(xiě)過(guò)程中,利用HLS工具通過(guò)高層次約束的方法實(shí)現(xiàn)高效AXI4 Master訪存接口,不再需要手工使用硬件描述語(yǔ)言實(shí)現(xiàn)DDR控制和訪問(wèn).

圖5 基于FPGA的幀內(nèi)模式判決總體結(jié)構(gòu)

4 實(shí)驗(yàn)評(píng)估

為了驗(yàn)證本文架構(gòu)的有效性,基于FPGA對(duì)本文提出的架構(gòu)進(jìn)行了高層次綜合(HLS)實(shí)現(xiàn).

實(shí)驗(yàn)主要指標(biāo)及主要參數(shù)配置如下:

1)實(shí)驗(yàn)平臺(tái):采用Xilinx ZCU102板卡,該板卡搭載了xczu9eg芯片,包括可編程邏輯(Programmable Logic,PL)和處理器系統(tǒng)(Processing System,PS)兩部分.其中PL端FPGA平臺(tái)采用的時(shí)鐘頻率為200MHz;PS端ARM平臺(tái)為Cortex A53 四核處理器,主頻為1GHz,4G DDR.

2)測(cè)試軟件:標(biāo)準(zhǔn)參考模型HM的編碼質(zhì)量較好,但運(yùn)行速度與其他現(xiàn)有的開(kāi)源模型相比較慢,在實(shí)際場(chǎng)景中應(yīng)用較為困難[7,8].基于此,本文選取Kvazaar[7,8]作為基本測(cè)試軟件,同時(shí)開(kāi)啟GCC編譯器的-O3優(yōu)化,確保發(fā)揮CPU的最佳性能.

3)量化參數(shù)(Quantization Parameter,QP):分別取QP=22、27、32、37進(jìn)行實(shí)驗(yàn),然后取四種情況下的平均值進(jìn)行對(duì)比.

4)測(cè)試序列:本文采用JCT-VC提供的標(biāo)準(zhǔn)視頻測(cè)試序列,取每個(gè)視頻序列的前100幀進(jìn)行測(cè)試.

5)對(duì)比與評(píng)價(jià)方法:本文將算法分別在PS端(ARM)運(yùn)行原始的H.265幀內(nèi)預(yù)測(cè)MD算法,PL端(FPGA)運(yùn)行改進(jìn)之后的H.265幀內(nèi)預(yù)測(cè)MD算法.依據(jù)處理速度、碼率、PSNR等多方面進(jìn)行對(duì)比,同時(shí)將本文結(jié)果與其他文獻(xiàn)結(jié)果進(jìn)行對(duì)比分析.

本算法的硬件實(shí)現(xiàn)所占用的FPGA邏輯資源如表2所示,考慮到視頻幀的分辨率不同,本文的設(shè)計(jì)具備一定的伸縮性,最高可處理分辨率為1080p(即1920×1080)的視頻.

不同平臺(tái)下的處理速度對(duì)比如圖6所示,可以看出本文算法在的運(yùn)行時(shí)間較原始算法有了大幅下降.

圖6 不同平臺(tái)下的處理速度對(duì)比柱狀圖

記原始MD算法在ARM平臺(tái)上的運(yùn)行時(shí)間為T(mén)A,本文改進(jìn)后的硬件MD算法在FPGA平臺(tái)上的運(yùn)行時(shí)間為T(mén)F.

則加速比:

(10)

支持的幀率:

(11)

具體數(shù)據(jù)如表3所示.從表3可以看出,本文硬件MD算法最大可以支持1080p@29fps的幀率,達(dá)到了93.6的加速比.綜合圖6、表3可知,與軟件算法相比,硬件算法運(yùn)行時(shí)間受圖像分辨率的影響變化較小,針對(duì)不同分辨率的視頻,硬件處理速度穩(wěn)定在30ms/幀上下,軟件算法處理時(shí)間隨圖片分辨率的變大而不斷增大.

表3 硬件MD算法的加速比和支持的幀率

表4是本文與軟件加速方法的對(duì)比.僅從算法角度進(jìn)行優(yōu)化得到的速度提升不高[3,4],多核并行的方法能夠獲得更高的加速比[5-7],但是由于嵌入式平臺(tái)的運(yùn)算性能較差,這種加速方式在嵌入式平臺(tái)獲得的加速效果有限[8].本文利用FPGA進(jìn)行算法加速,在對(duì)原始算法進(jìn)行改造之后,能夠進(jìn)行細(xì)粒度的并行,可以得到更好的加速效果.

表4 本文與軟件加速方法對(duì)比

表5 本文與其他FPGA實(shí)現(xiàn)對(duì)比(Intra MD部分)

表5是本文與其他FPGA算法實(shí)現(xiàn)對(duì)比,與其他FPGA實(shí)現(xiàn)相比,本文采用了HLS的開(kāi)發(fā)方法,在算法運(yùn)行的性能上能得到與HDL開(kāi)發(fā)方法相近的指標(biāo),且HLS方法采用兼容C的模式進(jìn)行開(kāi)發(fā),開(kāi)發(fā)效率較HDL方法高,同時(shí)也便于在開(kāi)源框架上進(jìn)行算法移植和硬件并行化工作[10,11].不足之處是HLS方法的資源耗費(fèi)較HDL多,HLS工具有待于進(jìn)一步優(yōu)化.值得指出的是,為了減少邏輯資源的耗費(fèi)并提高處理速度,文獻(xiàn)[9]在MD過(guò)程中對(duì)原始圖像進(jìn)行了下采樣處理,利用差值算法減少了需要緩存和運(yùn)算的像素點(diǎn)數(shù)目.若本文采取類似的處理方法,從理論上也能夠使邏輯資源消耗得到顯著下降,同時(shí)實(shí)現(xiàn)處理速度的提升.

表6 編碼質(zhì)量對(duì)比實(shí)驗(yàn)結(jié)果

為了進(jìn)一步說(shuō)明本文算法對(duì)視頻編碼質(zhì)量的影響,本文統(tǒng)計(jì)了不同序列的相對(duì)于原始算法PSNR和Bit-Rate變化情況.表6是編碼質(zhì)量對(duì)比的實(shí)驗(yàn)結(jié)果.由實(shí)驗(yàn)結(jié)果可知,針對(duì)不同的測(cè)試序列,本文提出的并行模式判決架構(gòu)PSNR與碼率均略有下降,但總體來(lái)看,視頻編碼質(zhì)量與原始算法差異不大.

5 結(jié) 論

本文將H.265編碼過(guò)程中的MD算法改造為SCU MD的疊加問(wèn)題,在編碼塊內(nèi)部通過(guò)細(xì)粒度并行實(shí)現(xiàn)快速模式判決,在編碼塊之間通過(guò)窗口流水方式實(shí)現(xiàn)資源復(fù)用和快速處理,并且在FPGA上利用HLS工具進(jìn)行了硬件設(shè)計(jì)和實(shí)驗(yàn)驗(yàn)證.實(shí)驗(yàn)結(jié)果表明,在保持視頻質(zhì)量一定,碼率無(wú)較大提升的前提下,本設(shè)計(jì)在嵌入式平臺(tái)Xilinx ZCU102上最高可以達(dá)到93.6x的加速比,只帶來(lái)平均約0.71dB的質(zhì)量損失,具備一定的實(shí)際應(yīng)用價(jià)值.后期將進(jìn)行H.265其他模塊的FPGA移植和加速工作,從而形成一個(gè)完整的嵌入式視頻編碼系統(tǒng).

猜你喜歡
深度方法
深度理解一元一次方程
學(xué)習(xí)方法
深度觀察
深度觀察
深度觀察
深度觀察
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢(qián)方法
提升深度報(bào)道量與質(zhì)
新聞傳播(2015年10期)2015-07-18 11:05:40
主站蜘蛛池模板: 色吊丝av中文字幕| 国产浮力第一页永久地址| 夜夜拍夜夜爽| 青草视频久久| 免费女人18毛片a级毛片视频| 日韩欧美国产另类| 成·人免费午夜无码视频在线观看| 波多野结衣无码视频在线观看| 日本在线免费网站| 亚洲精品天堂在线观看| 国产精品成人一区二区| 久久香蕉国产线看精品| 欧美精品亚洲精品日韩专区| 日韩不卡免费视频| 亚洲天堂免费在线视频| 国产尤物在线播放| 国产精品美人久久久久久AV| 国产免费久久精品99re不卡| 欧美.成人.综合在线| 亚洲福利网址| 欧美午夜在线观看| 国产又色又刺激高潮免费看| 久久国产精品波多野结衣| 国产又爽又黄无遮挡免费观看| 欧美一区二区三区香蕉视| 宅男噜噜噜66国产在线观看| 国产成人一区| 亚洲美女视频一区| 免费xxxxx在线观看网站| 中文字幕欧美日韩| 青青青国产在线播放| 激情乱人伦| 最近最新中文字幕免费的一页| 国产精品免费p区| 亚洲最新在线| 2048国产精品原创综合在线| 国产高清免费午夜在线视频| a级毛片免费在线观看| 亚洲AⅤ综合在线欧美一区| 91人妻日韩人妻无码专区精品| 久久美女精品| 色成人亚洲| 亚洲成a人片在线观看88| av午夜福利一片免费看| 亚洲国产欧美国产综合久久 | 久久久久久久久久国产精品| 丁香五月亚洲综合在线| 99精品免费在线| 激情无码字幕综合| 久久黄色毛片| 欧美日本二区| 99ri精品视频在线观看播放| 狠狠综合久久久久综| 亚洲大尺码专区影院| 亚洲男女在线| 国产精品真实对白精彩久久| 尤物精品视频一区二区三区| 丝袜高跟美脚国产1区| 亚洲午夜天堂| 免费观看男人免费桶女人视频| 国产SUV精品一区二区| 精品人妻AV区| 亚洲无卡视频| 日韩欧美国产另类| 色综合日本| 国产视频你懂得| 色视频久久| 欧美日韩中文字幕在线| 亚洲人成电影在线播放| 伊人久久精品亚洲午夜| 国产91av在线| 夜夜操国产| 毛片免费高清免费| 久久久四虎成人永久免费网站| 日韩精品一区二区三区视频免费看| 尤物亚洲最大AV无码网站| 国产日韩精品欧美一区喷| 内射人妻无码色AV天堂| 欧美日韩第三页| 亚洲侵犯无码网址在线观看| 在线色国产| 成年片色大黄全免费网站久久|