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

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

    2018-11-14 10:27:44柴志雷趙建斌
    小型微型計算機系統(tǒng) 2018年11期
    關(guān)鍵詞:尺度像素編碼

    李 申,柴志雷,2,嚴 偉,夏 珺,趙建斌

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

    1 引 言

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

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

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

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

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

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

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

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

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

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

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

    圖1 一次四叉樹遞歸劃分示意圖

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

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

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

    (1)

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

    (2)

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

    (3)

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

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

    深度為d時:

    (4)

    深度為d+1時:

    (5)

    (6)

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

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

    (7)

    則針對DC模式需要深度為d的CU進行劃分.

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

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

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

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

    如圖2所示,針對SCU,在進行模式判決時,可能用到的參考像素區(qū)域按順時針方向包括A、B、C、D、E共5個部分.

    圖2 SCU與參考像素

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

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

    若重構(gòu)值不可用(如當前SCU處于視頻幀的左上角時,這些區(qū)域不存在),則采用H.265標準給出的默認值defaultVal.

    defaultVal=2?(bit_depth-1)

    (8)

    bit_depth代表視頻分量的像素點的位寬,本文為8.

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

    (9)

    3.2 SCU間流水

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

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

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

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

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

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

    圖4 SCU間流水處理示意圖

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

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

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

    4 實驗評估

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

    實驗主要指標及主要參數(shù)配置如下:

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

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

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

    4)測試序列:本文采用JCT-VC提供的標準視頻測試序列,取每個視頻序列的前100幀進行測試.

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

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

    不同平臺下的處理速度對比如圖6所示,可以看出本文算法在的運行時間較原始算法有了大幅下降.

    圖6 不同平臺下的處理速度對比柱狀圖

    記原始MD算法在ARM平臺上的運行時間為TA,本文改進后的硬件MD算法在FPGA平臺上的運行時間為TF.

    則加速比:

    (10)

    支持的幀率:

    (11)

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

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

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

    表4 本文與軟件加速方法對比

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

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

    表6 編碼質(zhì)量對比實驗結(jié)果

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

    5 結(jié) 論

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

    猜你喜歡
    尺度像素編碼
    趙運哲作品
    藝術(shù)家(2023年8期)2023-11-02 02:05:28
    像素前線之“幻影”2000
    基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
    財產(chǎn)的五大尺度和五重應(yīng)對
    《全元詩》未編碼疑難字考辨十五則
    子帶編碼在圖像壓縮編碼中的應(yīng)用
    電子制作(2019年22期)2020-01-14 03:16:24
    “像素”仙人掌
    Genome and healthcare
    宇宙的尺度
    太空探索(2016年5期)2016-07-12 15:17:55
    高像素不是全部
    CHIP新電腦(2016年3期)2016-03-10 14:22:03
    隆回县| 洞口县| 九寨沟县| 方城县| 南部县| 宝坻区| 安仁县| 阿荣旗| 思南县| 屏东县| 浙江省| 新龙县| 驻马店市| 吉安市| 南澳县| 汉阴县| 乐安县| 凯里市| 福建省| 临桂县| 罗江县| 团风县| 汉川市| 南澳县| 麟游县| 堆龙德庆县| 抚顺县| 仁寿县| 嵊州市| 常州市| 淮北市| 岢岚县| 海伦市| 通化市| 凉山| 纳雍县| 固镇县| 辽阳县| 呼玛县| 洛阳市| 图片|