• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種高效多標(biāo)準(zhǔn)視頻解碼器架構(gòu)研究與設(shè)計(jì)

      2019-12-10 03:09:18劉慧超王志君梁利平
      關(guān)鍵詞:協(xié)處理器宏塊解碼器

      劉慧超 王志君 梁利平

      摘 ? 要:針對(duì)目前視頻解碼器實(shí)現(xiàn)方案存在的靈活度低、開(kāi)發(fā)周期長(zhǎng)、不能適應(yīng)快速變化的算法升級(jí)等問(wèn)題,提出一種面向多種視頻編解碼標(biāo)準(zhǔn)的通用視頻解碼器架構(gòu)設(shè)計(jì)方案. 采用軟硬件協(xié)同設(shè)計(jì)方法,基于可編程同構(gòu)多核處理器+協(xié)處理器的硬件架構(gòu),同構(gòu)多核處理器采用指令級(jí)和任務(wù)級(jí)并行加速,協(xié)處理器采用硬件定制單元實(shí)現(xiàn)矢量加速,同時(shí)利用分布式片上便箋式存儲(chǔ)器(Scratchpad Memory, SPM)代替數(shù)據(jù)Cache實(shí)現(xiàn)高效的數(shù)據(jù)存儲(chǔ)系統(tǒng),以應(yīng)用廣泛的H.264視頻標(biāo)準(zhǔn)為驗(yàn)證實(shí)例. 實(shí)驗(yàn)結(jié)果表明,基于本文所提架構(gòu)實(shí)現(xiàn)的H.264視頻解碼器高效可行,平均并行加速比為9.12,相比于傳統(tǒng)多核并行解碼算法提高了1.31倍.

      關(guān)鍵詞:多標(biāo)準(zhǔn);視頻解碼器;可編程;協(xié)處理器;便箋存儲(chǔ)器;H.264解碼器;架構(gòu)設(shè)計(jì)

      中圖分類號(hào):TN919.3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A

      Research and Design of an Efficient

      Multi-standard Video Decoder Architecture

      LIU Huichao1,2,WANG Zhijun1,LIANG Liping1?覮

      (1. Institute of Microelectronics,Chinese Academy of Sciences,Beijing 100029,China;

      2. University of Chinese Academy of Sciences,Beijing 100049,China)

      Abstract: Aiming at the problems such as low flexibility, long development cycle, and incapability of adapting to rapidly changing algorithms for current video decoder implementation solutions, a generic video decoder architecture design scheme for multiple video coding and decoding standards is proposed using software and hardware collaboration. The methodology of the design is based on a programmable homogeneous multi-core processor and coprocessor hardware architecture. The homogeneous multi-core processor uses instruction-level and task-level parallel acceleration. The coprocessor uses a hardware customization unit to achieve the vector acceleration, while it uses distributed on-chip scratchpad memory instead of data cache to achieve an efficient data storage system. Taking the H.264 video standard widely used as an example, the experimental results show that the H.264 video decoder based on the architecture proposed in this paper is highly efficient and feasible, with an average speed-up of 9.12, which is 1.31 times better than the traditional multi-core parallel decoding algorithm.

      Key words: multi-standard;video decoder;programmability;coprocessor;scratchpad memory;H.264 decoder;architectural design

      視覺(jué)是人們感知和認(rèn)知外部世界的主要途徑. 實(shí)驗(yàn)心理學(xué)家赤瑞特拉通過(guò)大量實(shí)驗(yàn)證實(shí)人類獲取信息的80%以上都是來(lái)自視覺(jué)[1]. 信息化時(shí)代下,與視覺(jué)相關(guān)的應(yīng)用廣泛地存在于通信、多媒體消費(fèi)、安防監(jiān)控、抗震救災(zāi)等領(lǐng)域. 視頻應(yīng)用的一項(xiàng)關(guān)鍵技術(shù)就是視頻編解碼,自20世紀(jì)80年代開(kāi)始,先后出現(xiàn)了一系列國(guó)際化視頻編解碼標(biāo)準(zhǔn),如H.26x標(biāo)準(zhǔn)、MPEG-x標(biāo)準(zhǔn)、H.264/AVC標(biāo)準(zhǔn)、AVS標(biāo)準(zhǔn)以及最新的HEVC標(biāo)準(zhǔn)等. 針對(duì)不同的視頻標(biāo)準(zhǔn),不同應(yīng)用環(huán)境下如何快速實(shí)現(xiàn)一個(gè)實(shí)時(shí)的視頻解碼器成為研究熱點(diǎn). 目前比較常見(jiàn)的實(shí)現(xiàn)方案有:1)基于ASIC專用集成芯片實(shí)現(xiàn)[2-3]方案,已商業(yè)化的有富士通的MB91696AM、Sigma Designs的SMP8630和國(guó)產(chǎn)代表華為海思的Hi3535,雖性能穩(wěn)定、功耗低,但研發(fā)周期長(zhǎng)、靈活度低,當(dāng)算法升級(jí)或變化時(shí)不能及時(shí)修正;2)基于DSP處理器實(shí)現(xiàn)[4-5]方案,以TI的DM64x系列為代表,還有Philips的PNX1500系列、ADI的Blackfin處理器,雖功能強(qiáng)大、性能可靠,但功耗較大、啟動(dòng)速度慢;3)基于FPGA硬件實(shí)現(xiàn)[6-7]方案,通過(guò)自主設(shè)計(jì)或購(gòu)買商業(yè)IP實(shí)現(xiàn). 首先商業(yè)IP費(fèi)用高、靈活度差且關(guān)鍵模塊為黑盒、調(diào)試風(fēng)險(xiǎn)大,核心技術(shù)受制于人. 自主研發(fā)IP相對(duì)靈活、可定制且代碼可見(jiàn),但實(shí)現(xiàn)整個(gè)解碼系統(tǒng)任務(wù)復(fù)雜,且穩(wěn)定性有待測(cè)試、驗(yàn)證任務(wù)繁重;4)基于CPU+GPU的系統(tǒng)實(shí)現(xiàn)[8-9]方案,需要使用高級(jí)編程語(yǔ)言,門檻高、線程調(diào)度復(fù)雜、同步開(kāi)銷大. 近年來(lái),隨著集成電路技術(shù)的快速發(fā)展,開(kāi)始出現(xiàn)基于多核處理器和SoC架構(gòu)實(shí)現(xiàn)的視頻解碼器[10-13].

      本文通過(guò)分析不同視頻標(biāo)準(zhǔn)間的共性,創(chuàng)新性地提出了一種基于同構(gòu)多核處理器+協(xié)處理器的通用視頻解碼器架構(gòu),并以H.264視頻解碼器為實(shí)例進(jìn)行驗(yàn)證. 采用媒體運(yùn)算指令并行加速和硬件協(xié)處理器矢量加速,實(shí)驗(yàn)結(jié)果表明本文所提架構(gòu)可行有效,便于軟硬件升級(jí).

      1 ? 多標(biāo)準(zhǔn)視頻編解碼算法分析

      1.1 ? 視頻編解碼標(biāo)準(zhǔn)發(fā)展歷程

      視頻編解碼標(biāo)準(zhǔn)自20世紀(jì)80年代起至今,不斷完善和發(fā)展. 自H.261標(biāo)準(zhǔn)開(kāi)始,普遍采用包括基于運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)、離散余弦變換(Discrete Cosine Transform,DCT)、量化、zig-zag掃描和熵編碼等編碼方法. 這些技術(shù)組合在一起形成了沿用至今的混合編碼框架. 圖1為混合編碼器核心結(jié)構(gòu)框圖.

      圖1 ? 混合編碼器框圖

      Fig.1 ? The block diagram of hybrid encoder

      混合編碼架構(gòu)主要包括預(yù)測(cè)編碼和變換編碼兩大部分. 其中,變換編碼包括DCT和IDCT(Inverse Discrete Cosine Transform,反離散余弦變換)、Q(Quantization,量化)和IQ(Inverse Quantization,反量化). 輸入視頻后的減法器、運(yùn)動(dòng)估計(jì)(Motion Estimation,ME)和運(yùn)動(dòng)補(bǔ)償(Motion Compensation,MC)屬于預(yù)測(cè)編碼部分. 編碼視頻輸出前的熵編碼是一種變長(zhǎng)編碼,可進(jìn)一步提高混合編碼的壓縮效率. 重排序過(guò)程使得量化后的DCT非零系數(shù)集中,減少統(tǒng)計(jì)事件的個(gè)數(shù),進(jìn)一步增加熵編碼的壓縮率.

      1.2 ? 不同標(biāo)準(zhǔn)編解碼算法對(duì)比分析

      本文以最新的AVS2、H.264和HEVC 3種視頻標(biāo)準(zhǔn)為例,重點(diǎn)分析對(duì)應(yīng)視頻解碼算法在結(jié)構(gòu)上的共性和差異. 整體上,3種標(biāo)準(zhǔn)均采用混合解碼架構(gòu),如圖2所示,解碼器包括熵解碼、重排序、IQ、IDCT、幀間預(yù)測(cè)、幀內(nèi)預(yù)測(cè)和環(huán)路濾波,但各模塊內(nèi)部算法細(xì)節(jié)卻存在較大差異.

      圖2 ? 混合解碼器框圖

      Fig.2 ? The block diagram of hybrid decoder

      1.2.1 ? 幀間預(yù)測(cè)

      AVS2、H.264和HEVC標(biāo)準(zhǔn)都支持變塊大小的運(yùn)動(dòng)補(bǔ)償和四分之一精度像素插值,但插值使用的濾波器階數(shù)和濾波系數(shù)均不相同. 此外,運(yùn)動(dòng)矢量(Motion Vector,MV)雖均由相鄰塊MV預(yù)測(cè)而來(lái),但具體的預(yù)測(cè)策略也各不相同.

      首先,AVS2和HEVC的分像素插值算法類似. 亮度分量,HEVC對(duì)半像素位置采用8抽頭濾波器,1/4和3/4像素采用7抽頭濾波器;AVS2統(tǒng)一采用8抽頭濾波器,只是分像素位置不同,對(duì)應(yīng)濾波系數(shù)不同. 對(duì)色度分量而言,兩者均采用4抽頭濾波器,且根據(jù)分像素位置采用不同的濾波系數(shù). 具體如表1所示.

      表1 ? 亮度插值濾波器系數(shù)比較

      Tab.1 ? Comparison of luminance interpolation

      filter coefficients

      與AVS2和HEVC相比,H.264標(biāo)準(zhǔn)對(duì)亮度分量半像素點(diǎn)采用6抽頭濾波器插值得出,濾波系數(shù)為{1,-5,20,20,-5,1},1/4和3/4像素點(diǎn)則利用相鄰整像素和/或分像素的線性內(nèi)插得出,計(jì)算量較低. 相應(yīng)地,色度分量通過(guò)相鄰整像素的雙線性內(nèi)插得出.

      3種視頻標(biāo)準(zhǔn)雖然采用的分像素插值算法不同,但都可以歸結(jié)為像素點(diǎn)積和均值計(jì)算兩種算子,有利于采用高性能乘累加指令編程實(shí)現(xiàn).

      關(guān)于運(yùn)動(dòng)矢量預(yù)測(cè)算法,由于策略不同,所以這部分需針對(duì)特定標(biāo)準(zhǔn)采用軟件或硬件方式獨(dú)立

      實(shí)現(xiàn).

      1.2.2 ? 幀內(nèi)預(yù)測(cè)

      幀內(nèi)預(yù)測(cè)充分利用了幀內(nèi)像素的空間相關(guān)性,通過(guò)鄰近已編碼或解碼塊的重建值進(jìn)行預(yù)測(cè). H.264幀內(nèi)預(yù)測(cè)算法,4×4和16×16亮度塊分別擁有9種、4種預(yù)測(cè)模式,色度分量以8×8為預(yù)測(cè)單元,擁有4種預(yù)測(cè)模式. AVS2和HEVC與H.264類似,但比

      H.264預(yù)測(cè)方向更精細(xì)更靈活,分別為亮度預(yù)測(cè)塊定義了33種和35種不同的預(yù)測(cè)模式,色度預(yù)測(cè)塊均定義了5種預(yù)測(cè)模式. 但從算法結(jié)構(gòu)來(lái)看,雖然3種視頻標(biāo)準(zhǔn)預(yù)測(cè)模式總數(shù)不同,但可分為以下3類:Planar模式、DC模式和角度模式.

      1.2.3 ? 環(huán)路濾波

      視頻壓縮編碼是一種有損壓縮,編碼中的量化和計(jì)算誤差會(huì)給重建后的圖像造成不可恢復(fù)的失真. 因此自H.263和MPEG-2標(biāo)準(zhǔn)開(kāi)始,在視頻編解碼器中均加入了環(huán)路濾波處理,以改善圖像質(zhì)量. 然而,不同視頻標(biāo)準(zhǔn)中的環(huán)路濾波算法又存在些許差別. 以H.264為例,采用自適應(yīng)去塊效應(yīng)濾波器,對(duì)所有的4×4塊邊界和樣點(diǎn)值進(jìn)行邊界強(qiáng)度判斷和自適應(yīng)濾波處理,整個(gè)過(guò)程幾乎涉及重建圖像所有像素點(diǎn),計(jì)算復(fù)雜度高.

      AVS2和HEVC均相對(duì)于H.264環(huán)路濾波技術(shù)做了精簡(jiǎn),主要體現(xiàn)在以下3個(gè)方面:

      1)亮度和色度分量均以8×8塊為單位進(jìn)行邊界濾波,相比于H.264,濾波邊界數(shù)大大減少;

      2)邊界濾波時(shí),每條邊界兩邊最多各修正3個(gè)像素點(diǎn),使得8×8塊之間相互獨(dú)立,可以并行處理,而H.264只能串行操作;

      3)可以先對(duì)整幅圖像進(jìn)行垂直邊界濾波,然后進(jìn)行水平邊界濾波,而H.264必須以宏塊為單位交替執(zhí)行垂直邊界濾波和水平邊界濾波.

      此外,在去塊效應(yīng)濾波器后,AVS2和HEVC又增加了不同的補(bǔ)償技術(shù),AVS2引入了自適應(yīng)樣點(diǎn)偏移和樣本補(bǔ)償濾波,而HEVC則引入了樣點(diǎn)自適應(yīng)補(bǔ)償技術(shù),用于抑制DCT變換后高頻交流系數(shù)量化失真造成的振鈴效應(yīng).

      1.2.4 ? 熵解碼

      預(yù)測(cè)+變換編碼消除信源的時(shí)間和空間冗余,經(jīng)量化處理后得到預(yù)測(cè)殘差變換系數(shù),連同其他控制信息和標(biāo)識(shí)信息等句法元素,利用熵編碼方法進(jìn)一步壓縮,消除碼字之間的冗余. H.264、AVS2

      和HEVC分別采用了不同的熵編碼策略,如表2

      所示.

      表2 ? 不同視頻標(biāo)準(zhǔn)熵編碼算法對(duì)比

      Tab.2 ? Comparison of entropy coding algorithms

      in different video standards

      熵編解碼算法基于信息熵原理實(shí)現(xiàn)數(shù)據(jù)的無(wú)損編解碼,算法按照信息比特完成運(yùn)算,計(jì)算粒度最小,分支復(fù)雜. 通用處理器運(yùn)算粒度為字或字節(jié),基于通用處理器實(shí)現(xiàn)的熵編解碼算法無(wú)論速度和功耗均不具有優(yōu)勢(shì). 以熵解碼過(guò)程為例,目前的研究主要分兩種途徑實(shí)現(xiàn):其一,實(shí)現(xiàn)完整的句法解析過(guò)

      程[14];其二,僅實(shí)現(xiàn)單純的熵解碼單元,通過(guò)調(diào)用解碼單元實(shí)現(xiàn)句法解析[15]. 采用第2種途徑時(shí),單一句法元素的解析由硬件完成,而碼流結(jié)構(gòu)的多分支控制由主控方實(shí)現(xiàn),影響主控方的執(zhí)行性能. 相反,采用第1種途徑時(shí),碼流結(jié)構(gòu)控制和句法元素解析均由硬件實(shí)現(xiàn),緩解主控方壓力,同時(shí)不會(huì)帶來(lái)巨大的硬件開(kāi)銷.

      總結(jié)不同視頻編解碼算法特點(diǎn),有以下共性:1)統(tǒng)一的混合編解碼架構(gòu),功能模塊和輸入輸出在算法級(jí)是一致的,這為采用統(tǒng)一的視頻解碼體系架構(gòu)提供了基礎(chǔ). 2)不同功能模塊內(nèi)部細(xì)節(jié)差異較大,但計(jì)算過(guò)程具有很大相似性,如分像素插值、幀內(nèi)預(yù)測(cè)和環(huán)路濾波,可由高性能乘累加單元編程實(shí)現(xiàn). 以上特點(diǎn)為本文解碼器架構(gòu)提供了基礎(chǔ).

      2 ? 多標(biāo)準(zhǔn)視頻解碼器體系架構(gòu)

      2.1 ? 流水線的視頻解碼器架構(gòu)

      2.1.1 ? 流水線任務(wù)劃分

      如前文所述,不同視頻標(biāo)準(zhǔn)對(duì)解碼系統(tǒng)的可編程性提出了很高的要求. 本文結(jié)合視頻解碼器特點(diǎn),提出一種多標(biāo)準(zhǔn)通用的多核流水解碼體系架構(gòu). 系統(tǒng)由兩部分組成:專用協(xié)處理器ECore和高性能同構(gòu)4核處理器Core0-Core3. 采用軟硬件協(xié)同的設(shè)計(jì)方法,由專用協(xié)處理器實(shí)現(xiàn)熵解碼等計(jì)算粒度小、計(jì)算不規(guī)整、分支復(fù)雜的解析過(guò)程,高性能同構(gòu)4核處理器實(shí)現(xiàn)幀間預(yù)測(cè)、幀內(nèi)預(yù)測(cè)和環(huán)路濾波等計(jì)算密集、計(jì)算規(guī)整的解碼過(guò)程. 如圖3所示. 混合解碼結(jié)構(gòu)中,變換解碼完成對(duì)殘差系數(shù)的反量化和反變換,得到像素殘差;預(yù)測(cè)解碼通過(guò)幀間或幀內(nèi)預(yù)測(cè)算法計(jì)算得到像素預(yù)測(cè)值,兩個(gè)過(guò)程相互獨(dú)立. 預(yù)測(cè)值和殘差疊加得到像素重建值. 考慮到當(dāng)前塊進(jìn)行幀內(nèi)預(yù)測(cè)時(shí)需要參考已解碼相鄰塊像素,為避免流水線出現(xiàn)反饋環(huán)路,將幀內(nèi)預(yù)測(cè)與IQ、IDCT和重建映射到流水線的同一級(jí).

      圖3 ? 多核視頻解碼器系統(tǒng)架構(gòu)

      Fig.3 ? Multi-core video decoder system architecture

      2.1.2 ? 存儲(chǔ)結(jié)構(gòu)

      對(duì)于多媒體流數(shù)據(jù)的處理面臨兩個(gè)關(guān)鍵問(wèn)題:其一,流數(shù)據(jù)吞吐量大;其二,流數(shù)據(jù)時(shí)間局部性差,每個(gè)元素的生命周期短. 傳統(tǒng)多核解碼器采用共享存儲(chǔ)器和片上私有Cache的兩級(jí)存儲(chǔ)結(jié)構(gòu),共享存儲(chǔ)器結(jié)構(gòu)使得多核之間訪存沖突嚴(yán)重,高速緩存Cache利用局部性原理實(shí)現(xiàn)快速訪存,恰恰與流數(shù)據(jù)局部性差的特點(diǎn)相違背,導(dǎo)致Cache miss嚴(yán)重,不僅影響整個(gè)系統(tǒng)的吞吐率,而且會(huì)造成大量的功耗損失. 本文采用分布式片上便箋存儲(chǔ)器作為數(shù)據(jù)緩存單元,如圖4所示,多核處理器均配置一塊支持多核并行訪問(wèn)不同存儲(chǔ)體的片上SPM存儲(chǔ)器,開(kāi)辟乒乓結(jié)構(gòu)實(shí)現(xiàn)核與核之間數(shù)據(jù)通信,有效解決傳統(tǒng)多核解碼器對(duì)共享存儲(chǔ)器的訪問(wèn)沖突,降低Cache miss造成的性能損失,提高多核解碼效率.

      圖4 ? 流水線視頻解碼器存儲(chǔ)架構(gòu)

      Fig.4 ? Storage architecture of pipelined video decoder

      此外,視頻解碼器中,幀間預(yù)測(cè)和環(huán)路濾波兩部分需要頻繁的與外部存儲(chǔ)器進(jìn)行數(shù)據(jù)通信. 其中,幀間預(yù)測(cè)過(guò)程需要讀取片外參考幀像素進(jìn)行插值運(yùn)算,環(huán)路濾波完成后需要將濾波結(jié)果寫回到位于片外存儲(chǔ)器的解碼幀緩存空間. 本文采用基于宏塊組(此處的宏塊定義是針對(duì)H.264標(biāo)準(zhǔn)的,與HEVC和AVS2中的編碼單元CU是一個(gè)概念)濾波結(jié)果寫回與參考幀預(yù)取,并由DMA(Direct Memory Access,DMA)方式實(shí)現(xiàn)快速訪存.

      1)基于宏塊組濾波結(jié)果寫回:文中采用基于宏塊組的功能并行解碼算法,宏塊組的大小根據(jù)解碼視頻分辨率進(jìn)行選取. 選取依據(jù)是:根據(jù)對(duì)應(yīng)分辨率下視頻幀每行包含的宏塊數(shù),選擇其對(duì)應(yīng)的一個(gè)因子數(shù)作為宏塊組的大小. 當(dāng)前宏塊組解碼完成后,可以按照二維結(jié)構(gòu)順序?qū)懟貛彺婵臻g,而不用考慮跨行存儲(chǔ)問(wèn)題,整個(gè)宏塊組只需啟動(dòng)3次DMA搬運(yùn)過(guò)程(亮度和色度分開(kāi)存儲(chǔ)),相比于以宏塊為單位寫回,可以大大降低DMA調(diào)用次數(shù). 同時(shí),基于宏塊組的存儲(chǔ)策略,每次只需將當(dāng)前解碼完成的宏塊組最右邊界拷貝到下一個(gè)待解碼宏塊組的左邊界上,相比于傳統(tǒng)的基于宏塊級(jí)并行解碼,可以有效避免宏塊組內(nèi)相鄰宏塊邊界數(shù)據(jù)的拷貝過(guò)程,避免了基于宏塊行或更高級(jí)別并行對(duì)存儲(chǔ)器資源占用率高的劣勢(shì).

      2)參考幀預(yù)?。翰捎么翱谑讲⑿凶x取方式,降低訪問(wèn)片外存儲(chǔ)器的頻次. 根據(jù)宏塊不同預(yù)測(cè)模式,找出宏塊內(nèi)所有分割塊參考數(shù)據(jù)在參考幀中水平和垂直方向的最大最小坐標(biāo)位置,確定宏塊的參考數(shù)據(jù)范圍,如圖5所示.

      圖5 ? 基于窗口式的參考像素預(yù)取

      Fig.5 ? Window-based reference pixel prefetch

      以H.264標(biāo)準(zhǔn)為例,亮度分量讀取范圍為(min_xPos-2,min_yPos-2)~(max_xPos+3,max_yPos +3),色度分量讀取范圍為(min_x/2,min_y/2)~(max_x/2+1,max_y/2+1). 同時(shí),采用乒乓雙緩存單元,當(dāng)前宏塊幀間預(yù)測(cè)與下一個(gè)宏塊參考數(shù)據(jù)預(yù)取并行執(zhí)行,最大限度降低幀間預(yù)測(cè)模塊的數(shù)據(jù)等待.

      2.1.3 ? 流水線同步與負(fù)載平衡

      為保證同構(gòu)多核處理器與協(xié)處理器之間相互協(xié)調(diào)工作,進(jìn)一步減少同步等待造成的周期損耗,設(shè)計(jì)實(shí)現(xiàn)環(huán)形隊(duì)列和乒乓緩存單元. 如圖6所示,首先在Core0片上SPM空間開(kāi)辟一個(gè)長(zhǎng)度為32個(gè)單元的環(huán)形隊(duì)列l(wèi)oopbuf0,用于接收來(lái)自協(xié)處理器解碼后的中間數(shù)據(jù),Core0將接收到的數(shù)據(jù)“按需分配”打包發(fā)送到3個(gè)從核各自的環(huán)形隊(duì)列l(wèi)oopbuf1、loopbuf2和loopbuf3上. 當(dāng)loopbuf0滿時(shí),Core0不再響應(yīng)協(xié)處理器的讀請(qǐng)求,此時(shí)協(xié)處理器需等待;同理,當(dāng)loopbuf1、loopbuf2或loopbuf3任意一個(gè)為滿時(shí),Core0需等待,只是,由于Core3處于流水線末端,所以Core0只需判斷l(xiāng)oopbuf3的狀態(tài)是否為滿即可.

      圖6 ? 核間同步環(huán)形隊(duì)列

      Fig.6 ? Loop queue for inter-core synchronization

      除環(huán)形隊(duì)列外,負(fù)責(zé)解碼的3個(gè)從核之間利用上一節(jié)所述的兵乓緩存單元進(jìn)行數(shù)據(jù)通信. 為實(shí)現(xiàn)同一時(shí)刻相鄰2個(gè)核不同時(shí)訪問(wèn)一個(gè)緩存單元,文中每個(gè)核均維護(hù)一個(gè)選擇信號(hào)bufsel,值為0對(duì)應(yīng)a單元,為1對(duì)應(yīng)b單元,bufsel的值也會(huì)第一時(shí)間更新到對(duì)應(yīng)核的郵箱中. 當(dāng)某個(gè)核開(kāi)始對(duì)下一個(gè)緩存單元解碼前,只需判斷當(dāng)前選擇信號(hào)與相鄰核選擇信號(hào)是否一致,若不一致則繼續(xù),否則等待.

      基于以上兩種同步機(jī)制,可以很好地實(shí)現(xiàn)核與核之間的協(xié)同工作.

      2.2 ? 協(xié)處理器設(shè)計(jì)

      本文對(duì)熵解碼、反掃描和運(yùn)動(dòng)矢量與濾波強(qiáng)度計(jì)算采用硬件定制的協(xié)處理器進(jìn)行加速,如圖7所示.

      圖7 ? 協(xié)處理器結(jié)構(gòu)圖

      Fig.7 ? Coprocessor structure diagram

      協(xié)處理器除包括熵解碼、反掃描等功能單元外,還有通信控制單元、碼流讀寫控制單元和碼流緩存單元和解碼結(jié)果緩存單元,實(shí)現(xiàn)與核0的數(shù)據(jù)交互. 采用FPGA實(shí)現(xiàn)的協(xié)處理器具有3點(diǎn)優(yōu)勢(shì):1)可以快速地實(shí)現(xiàn)細(xì)粒度運(yùn)算;2)相比于通用處理器的分支預(yù)測(cè),可以高效地實(shí)現(xiàn)分支復(fù)雜的運(yùn)算過(guò)程;3)對(duì)于不同視頻標(biāo)準(zhǔn)中熵編解碼過(guò)程的差異,可以很容易實(shí)現(xiàn)協(xié)處理器在線升級(jí). 關(guān)于這部分的具體實(shí)現(xiàn)不在本文所述范圍內(nèi). 本文中,協(xié)處理器在FPGA上實(shí)現(xiàn),工作頻率為50 MHz,可以滿足H.264標(biāo)準(zhǔn)1080P解碼要求.

      2.3 ? 多核調(diào)度

      本文采用一種簡(jiǎn)單易實(shí)現(xiàn)的調(diào)度方法. 首先,核0負(fù)責(zé)解碼器的初始化,然后協(xié)處理器開(kāi)始工作,此時(shí)核1~核3均處于休眠狀態(tài). 然后,利用前文所述的環(huán)形隊(duì)列結(jié)構(gòu),當(dāng)核0用于接收協(xié)處理器解碼數(shù)據(jù)的環(huán)形隊(duì)列非空時(shí),通過(guò)多核中斷順序啟動(dòng)核1~核3. 之后,核間按照前文所述的流水線同步機(jī)制開(kāi)始協(xié)同解碼,不再需要核0干預(yù).

      3 ? 實(shí)例驗(yàn)證

      本文以應(yīng)用廣泛的H.264視頻解碼器為例,對(duì)提出的通用視頻解碼器架構(gòu)進(jìn)行了實(shí)例驗(yàn)證. 驗(yàn)證平臺(tái)采用中國(guó)科學(xué)院微電子研究所完全自主研發(fā)設(shè)計(jì)的IME-Diamond同構(gòu)多核處理器[16-17]和Altera公司的型號(hào)為Cyclone IV EP4CE115F23I7的FPGA芯片. IMD-Diamond是一款高性能32位嵌入式定點(diǎn)處理器,具有CPU和DSP功能融合性架構(gòu). 其中CPU支持嵌入式操作系統(tǒng)和各種通信協(xié)議處理的控制,DSP支持無(wú)線寬帶通信和多媒體等高計(jì)算密集度的數(shù)字信號(hào)處理. 采用VLIW靜態(tài)多發(fā)射硬件架構(gòu),支持最大8條指令并行執(zhí)行. 單核片上SPM為128 kB;指令高速緩存I-Cache大小為16 kB;數(shù)據(jù)高速緩存D-Cache大小為16 kB. 擁有強(qiáng)大的DMA功能,支持多核SPM之間以及與外部Memory之間數(shù)據(jù)的全交叉通信,可實(shí)現(xiàn)視頻數(shù)據(jù)的1D-2D、2D-1D和2D-2D多模態(tài)傳輸?shù)?

      本文采用IME-Diamond處理器作為視頻解碼器架構(gòu)中的通用同構(gòu)處理器Core0~Core3,基于FPGA設(shè)計(jì)實(shí)現(xiàn)可升級(jí)的協(xié)處理器.

      IME-Diamond處理器提供了豐富的高性能多媒體運(yùn)算指令,表3列舉了其中的一小部分.

      采用IME-Diamond處理器提供的多媒體運(yùn)算指令,可以加速實(shí)現(xiàn)諸如分像素插值、IDCT和邊界濾波等計(jì)算密集的運(yùn)算過(guò)程. 此處以4 × 4塊半像素插值為例,簡(jiǎn)要說(shuō)明其在IMD-Diamond處理器上的實(shí)現(xiàn)過(guò)程.

      表3 ? IME-Diamond指令簡(jiǎn)集

      Tab.3 ? Instructions list for IME-Diamond

      H.264標(biāo)準(zhǔn)對(duì)亮度分量半像素點(diǎn)采用6抽頭濾波器濾波得出,濾波系數(shù)為{1,-5,20,20,-5,1},本文將其擴(kuò)展為8系數(shù)濾波器,擴(kuò)展后的濾波系數(shù)為{0,1,-5,20,20,-5,1,0},利用IME-Diamond提供的vpixdprb和vpixdprba兩條指令實(shí)現(xiàn)8像素點(diǎn)積運(yùn)算. 如圖8所示.

      圖8 ? 4×4塊半像素插值實(shí)現(xiàn)

      Fig.8 ? Half-pixel interpolation for 4×4 block

      圖8中,白色方塊代表整像素參考樣點(diǎn),灰色方塊為待插值的半像素點(diǎn). 8抽頭濾波計(jì)算分為前后兩部分,前四點(diǎn)乘累加運(yùn)算由vpixdprb指令完成,后四點(diǎn)乘累加運(yùn)算及與前四點(diǎn)結(jié)果的累加由vpixdprba指令完成. 由于不同行插值過(guò)程相互獨(dú)立,且IME-Diamond處理器支持最大8條指令并行,所以每次可以并行計(jì)算4 × 4塊的四行像素插值運(yùn)算,若不考慮數(shù)據(jù)準(zhǔn)備過(guò)程,兩個(gè)時(shí)鐘周期可以完成4個(gè)半像素點(diǎn)的插值運(yùn)算. 同理,IDCT和邊界濾波等運(yùn)算也可以按照上述類似的方法實(shí)現(xiàn),不再贅述.

      4 ? 性能仿真及比較

      本文以IME-Diamond處理器為實(shí)驗(yàn)平臺(tái),以H.264傳統(tǒng)單核軟解碼器為對(duì)照,以H.264官方提供的標(biāo)準(zhǔn)測(cè)試序列akiyo、paris、soccer和duck對(duì)基于本文提出的通用多標(biāo)準(zhǔn)視頻解碼器體系架構(gòu)下實(shí)現(xiàn)的H.264多核解碼器進(jìn)行了驗(yàn)證測(cè)試. 測(cè)試結(jié)果如表4所示.

      表4 ? 不同分辨率視頻序列測(cè)試結(jié)果

      Tab.4 ? Test results of different resolution video sequence

      從表4中數(shù)據(jù)可以看出,相比于單核解碼器,本文提出的解碼方案切實(shí)有效,最大加速比可達(dá)11.25. 表5為相關(guān)文獻(xiàn)結(jié)果對(duì)比.

      表5 ? 相關(guān)文獻(xiàn)結(jié)果比較

      Tab.5 ? Comparison with ours and other implementations

      文獻(xiàn)[13]并行算法在配置為16核時(shí)的加速比為3.20~4.70,中值為3.95;與之相比,雖然本文使用的處理器核數(shù)目比較少,但卻取得了高的加速比,中值為9.12,平均提高了1.31倍. 文獻(xiàn)[12] 8核并行算法雖然取得了7.60的加速比,但主頻卻是本文的5.03倍,盡管如此,相比之下,本文加速比平均提高了20%. 文獻(xiàn)[12-13]均從軟件層次出發(fā),通過(guò)設(shè)計(jì)多線程算法實(shí)現(xiàn)線程級(jí)并行解碼,相比之下,本文根據(jù)不同解碼模塊算法復(fù)雜度,將分支情況復(fù)雜、計(jì)算粒度低的熵解碼等過(guò)程采用定制硬件協(xié)處理器進(jìn)行加速,實(shí)現(xiàn)了更高的加速比.

      此外,對(duì)于商業(yè)化代表海思Hi35系列視頻解碼SoC芯片,其解碼核心為硬件固化的HiVXE2.0處理引擎,雖性能獨(dú)具優(yōu)勢(shì),但仍舊屬于ASIC范疇,研發(fā)周期長(zhǎng),靈活度差. 相比之下,本文提出的基于軟硬件協(xié)同的視頻解碼器架構(gòu),無(wú)論從軟件算法還是協(xié)處理器單元結(jié)構(gòu)均支持在線升級(jí),可編程性強(qiáng),為未來(lái)新標(biāo)準(zhǔn)視頻解碼器設(shè)計(jì)提供了新的方向.

      功耗方面,由于不同實(shí)現(xiàn)方法所采用的硬件平臺(tái)和軟件環(huán)境不同,暫時(shí)無(wú)法給出準(zhǔn)確的功耗對(duì)比結(jié)果. 本文從自身出發(fā),對(duì)系統(tǒng)架構(gòu)修改前后的功耗情況做了簡(jiǎn)單的評(píng)估,修改前系統(tǒng)功耗約1.7 W,其中內(nèi)核功耗約1.1 W;修改后系統(tǒng)功耗約5.3 W,內(nèi)核功耗約3.6 W. 總體上,相比于修改前的單核系統(tǒng),修改后系統(tǒng)由4個(gè)處理器核與一個(gè)FPGA協(xié)處理器同時(shí)運(yùn)行,導(dǎo)致系統(tǒng)功耗增加了兩倍;但是,由于FPGA分擔(dān)了部分負(fù)載,主系統(tǒng)單個(gè)內(nèi)核平均功耗有所降低,約為0.9 W.

      5 ? 結(jié) ? 論

      本文提出了一種通用的支持多標(biāo)準(zhǔn)的視頻解碼器體系架構(gòu),并以H.264視頻解碼器為實(shí)例進(jìn)行了驗(yàn)證. 通過(guò)FPGA定制協(xié)處理器加速單元,實(shí)現(xiàn)熵解碼、運(yùn)動(dòng)矢量和濾波強(qiáng)度計(jì)算;通過(guò)多核處理器并行實(shí)現(xiàn)計(jì)算密集的運(yùn)動(dòng)補(bǔ)償、IDCT和環(huán)路濾波模塊;通過(guò)宏塊組的存儲(chǔ)結(jié)構(gòu),有效減少了DMA啟動(dòng)次數(shù)和相鄰宏塊邊界數(shù)據(jù)的拷貝;利用分布式片上便箋存儲(chǔ)器實(shí)現(xiàn)快速的核間數(shù)據(jù)通信. 實(shí)驗(yàn)結(jié)果表明,本文提出的并行解碼方案平均并行加速比為9.12,比傳統(tǒng)算法提高了1.31倍. 同時(shí),與現(xiàn)有視頻解碼器架構(gòu)相比,具有很好的靈活性和可編程性,更能適應(yīng)不斷升級(jí)優(yōu)化的視頻解碼算法.

      參考文獻(xiàn)

      [1] ? TREICHLER D G. Are you missing the boat in training aids[J]. Filem and Audio-Visual Communication,1967,48(1):28—30.

      [2] ? 沈沙. H.264/HEVC視頻解碼的VLSI結(jié)構(gòu)及實(shí)現(xiàn)研究[D]. 上海:復(fù)旦大學(xué)微電子學(xué)院,2013:7—9.

      SHEN S. Research on VLSI architecture and implementation of

      H.264/HEVC video decoding[D]. Shanghai: School of Microelectronics,F(xiàn)udan University,2013:7—9. (In Chinese)

      [3] ? 郝秀麗. 基于GF14 nm工藝的H.264視頻解碼器綜合與物理實(shí)現(xiàn)[D]. 哈爾濱:哈爾濱理工大學(xué)應(yīng)用科學(xué)學(xué)院,2016:7—10.

      HAO X L. The physical implement and synthesis of H.264 video decoder based on GF14 nm technology[D]. Harbin: College of Applied Sciences,Harbin University of Science and Technology,2016:7—10. (In Chinese)

      [4] ? 王珊珊. 基于TI C6678多核處理器的HEVC視頻解碼軟件設(shè)計(jì)[D]. 杭州:浙江工業(yè)大學(xué)信息工程學(xué)院,2014:16—22.

      WANG S S. Design of HEVC video decoder based on TI C6678 multi-core processor[D]. Hangzhou: College of Information Engineering,Zhejiang University of Technology,2014:16—22. (In Chinese)

      [5] ? 胡宏華,諶德榮. 基于DSP的H.264解碼器優(yōu)化設(shè)計(jì)[J]. 中北大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,32(6):763—767.

      HU H H,CHEN D R. Optimal design of DSP-based H.264 decoder[J]. Journal of North University of China(Natural Science Edition),2011,32(6):763—767. (In Chinese)

      [6] ? 馬雨然. 基于FPGA的H.264解碼器設(shè)計(jì)[D]. 成都:中國(guó)科學(xué)院光電技術(shù)研究院,2017:1—4.

      MA Y R. Design of H.264 decoder based on FPGA[D]. Chengdu: Institute of Optics and Electronics,Chinese Academy of Sciences,2017:1—4. (In Chinese)

      [7] ? 劉寧寧,田澤,許宏杰. H.264/AVC解碼芯片驗(yàn)證系統(tǒng)及驗(yàn)證策略[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2014(5):191—194.

      LIU N N,TIAN Z,XU H J. Verification system and strategy of

      H.264/AVC decoder[J]. Computer Technology and Development,2014(5):191—194. (In Chinese)

      [8] ? 潘俊夫. H.264視頻解碼器宏塊級(jí)并行實(shí)現(xiàn)與調(diào)度優(yōu)化策略[D]. 武漢:華中科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2016:28—38.

      PAN J F. Macroblock level parallel implementation and its scheduling optimization strategy for H.264 decoders[D]. Wuhan: School of Computer Science & Technology,Huazhong University of Science & Technology,2016:28—38. (In Chinese)

      [9] ? 楊杭軍. 基于多核處理器的視頻編解碼并行算法研究[D]. 南京:南京大學(xué)電子科學(xué)與工程學(xué)院,2013:3—4.

      YANG H J. Video codec parallel algorithm based on multi-core processors[D]. Nanjing: School of Electronic Science and Engineering,Nanjing University,2013:3—4. (In Chinese)

      [10] ?潘競(jìng). SOC結(jié)構(gòu)的MPEG-4編解碼器設(shè)計(jì)[D]. 上海:上海交通大學(xué)軟件學(xué)院,2007:13—16.

      PAN J. The MPEG-4 codec design base on SoC[D]. Shanghai: School of Software,Shanghai Jiao Tong University,2007:13—16. (In Chinese)

      [11] ?VU D,KUANG J L,BHUYAN L. An adaptive dynamic scheduling scheme for H.264/AVC decoding on multicore architecture[C]//IEEE International Conference on Multimedia and Expo. Melbourne,VLC,Australia: IEEE Computer Society,2012:491—496.

      [12] ?RICHTER H,STABERNACK B. Architectural decomposition of video decoders for many core architectures[C]//Design and Architectures for Signal and Image Processing. Karlsruhe,Germany: IEEE,2012:1—8.

      [13] ?BAAKLINI E,SBEITY H,NIAR S. H.264 macroblock line level parallel video decoding on embedded multicore processors[C]//Euromicro Conference on Digital System Design. Izmir,Turkey: IEEE Computer Society,2012:902—906.

      [14] ?林子明. 高幀率實(shí)時(shí)HEVC熵編解碼關(guān)鍵技術(shù)研究[D]. 北京:中國(guó)科學(xué)院大學(xué),2015:78—80.

      LIN Z M. Key Research on entropy coding/decoding of HEVC in high frame rate real-time application[D]. Beijing: The University of Chinese Academy of Sciences,2015:78—80. (In Chinese)

      [15] ?俞政. 可擴(kuò)展64核處理器關(guān)鍵技術(shù)研究——單核、加速器架構(gòu)及H.264解碼器實(shí)現(xiàn)[D]. 上海:復(fù)旦大學(xué)微電子學(xué)院,2014:51—52.

      YU Z. Research on key technologies of scalable 64-core processor-single core,accelerator-rich architecture and realization of H.264 decoder[D]. Shanghai: School of Microelectronics,F(xiàn)udan University,2014:51—52. (In Chinese)

      [16] ?王志君,梁利平,吳凱,等.一種面向多媒體和通信應(yīng)用的處理器指令集及架構(gòu)實(shí)現(xiàn)[J].湖南大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,41(10):108—114.

      WANG Z J,LIANG L P,WU K,et al. Architecture and implementation of an application specific instruction set for multimedia and communication[J]. Journal of Hunan University(Natural Sciences),2014,41(10):108—114. (In Chinese)

      [17] ?王志君,梁利平,洪欽智,等. 一種DSP和通用CPU一體化的處理器架構(gòu)及其4核實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2014,31(10):32—38.

      WANG Z J,LIANG L P,HONG Q Z,et al. The architecture of an unified DSP plus general-purpose CPU and the implementation of a 4-core homogeneous processor[J]. Microelectronics & Computer,2014,31(10):32—38. (In Chinese)

      猜你喜歡
      協(xié)處理器宏塊解碼器
      科學(xué)解碼器(一)
      科學(xué)解碼器(二)
      基于HBase分布式數(shù)據(jù)庫(kù)海量數(shù)據(jù)序列存儲(chǔ)優(yōu)化
      科學(xué)解碼器(三)
      基于HBase分布式數(shù)據(jù)庫(kù)海量數(shù)據(jù)序列存儲(chǔ)優(yōu)化
      線圣AudioQuest 發(fā)布第三代Dragonfly Cobalt藍(lán)蜻蜓解碼器
      HBase分布式二級(jí)索引通用方案研究
      基于選擇特征宏塊的快速視頻穩(wěn)像
      基于宏塊合并的H.264模式選擇算法
      一種適合硬件實(shí)現(xiàn)的低復(fù)雜度MAD預(yù)測(cè)算法
      乳山市| 新巴尔虎左旗| 建始县| 常德市| 陈巴尔虎旗| 安平县| 高安市| 咸阳市| 葵青区| 冕宁县| 吉安市| 临安市| 东港市| 红河县| 比如县| 广河县| 沅江市| 道孚县| 黄大仙区| 文水县| 洱源县| 新昌县| 东明县| 保亭| 灵丘县| 绥芬河市| 威远县| 康定县| 永寿县| 沙田区| 长沙市| 萍乡市| 永靖县| 靖边县| 若尔盖县| 西和县| 墨江| 苗栗市| 始兴县| 石楼县| 韶关市|