• 
    

    
    

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

      ?

      基于異構(gòu)多核的H.264編碼器研究與實(shí)現(xiàn)

      2015-07-03 12:01:15李浩戴志濤
      軟件 2015年1期
      關(guān)鍵詞:同構(gòu)異構(gòu)端口

      李浩 戴志濤

      摘要:隨著信息社會(huì)的迅猛發(fā)展,傳統(tǒng)的單核處理器及同構(gòu)多核已難以滿足大數(shù)據(jù)處理的高性能需求,采用ARM和FPGA構(gòu)建異構(gòu)多核系統(tǒng),以FPGA上的IP核作為硬件加速器,ARM提供通用計(jì)算成了高性能計(jì)算領(lǐng)域的重要發(fā)展趨勢。本文針對當(dāng)前應(yīng)用最廣泛的H.264視頻編碼算法,構(gòu)建了ARM-FPGA異構(gòu)多核系統(tǒng),提出了基于共享內(nèi)存和AXI總線的高帶寬通信方法。將編碼算法中耗時(shí)較多的模塊負(fù)載到FPGA上運(yùn)行,利用FPGA豐富的邏輯資源和并行性加速編碼,移植嵌入式Linux到ARM上并開發(fā)相關(guān)驅(qū)動(dòng),實(shí)驗(yàn)數(shù)據(jù)表明H.264編碼算法在ARM-FPGA異構(gòu)多核系統(tǒng)中效果較好,編碼速度明顯加快,且有很好的擴(kuò)展性和靈活性。

      關(guān)鍵詞:視頻編碼;異構(gòu)多核;FPGA;H.264

      中圖分類號:TP37

      文獻(xiàn)標(biāo)識碼:A

      0 引言

      隨著科學(xué)技術(shù)的創(chuàng)新,云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展使得各領(lǐng)域?qū)A繑?shù)據(jù)的處理能力要求越來越迫切。傳統(tǒng)的單核處理器已滿足不了當(dāng)下的計(jì)算要求,為此,人們提出了多核處理器解決方案。多核處理器共有兩種架構(gòu),同構(gòu)多核架構(gòu)(Homogeneous MPSoc)和異構(gòu)多核架構(gòu)(Heterogeneous)。同構(gòu)多核系統(tǒng)由功能相近的處理器構(gòu)成,如Intel系列,ARM Cortex-A9系列。異構(gòu)多核系統(tǒng)是由功能相異的處理器構(gòu)成,如IBM的Cell處理器,AMD的APU等。H.264是由ISO/IEC與ITUT合作成立的聯(lián)合視頻專家組(JVT:Joint Video Team)于2003年制定的視頻編解碼標(biāo)準(zhǔn),其主要包括視頻編碼層(VCL:Video Coding Layer)和網(wǎng)絡(luò)適應(yīng)層(NAL:Network Adaptation Layer)。

      紀(jì)芳提出了一種基于FPGA同構(gòu)多核處理器的AVS視頻編碼算法實(shí)現(xiàn)方案,使用Xilinx官方提供的MicroBlaze軟核構(gòu)建同構(gòu)多核系統(tǒng),其中一個(gè)軟核作為主核,負(fù)責(zé)線程調(diào)度任務(wù)和任務(wù)分配,剩余的軟核作為協(xié)處理器負(fù)責(zé)執(zhí)行具體某些編碼算法模塊。優(yōu)點(diǎn)是充分利用了FPGA邏輯資源豐富的特點(diǎn),適合運(yùn)行并行算法,缺點(diǎn)是系統(tǒng)的流程控制和數(shù)據(jù)運(yùn)算都由FPGA實(shí)現(xiàn),硬件描述語言開發(fā)難度大。

      江輝提出了一種基于CPU-GPU的異構(gòu)多核架構(gòu)的H.264編碼算法實(shí)現(xiàn)方案,在該架構(gòu)中GPU作為CPU的協(xié)處理器,CPU串行執(zhí)行任務(wù),而GPU并行執(zhí)行CPU分配的任務(wù)。CPU和GPU各自有自己的專用的存儲器以及數(shù)據(jù)訪問通路,因此相較于同構(gòu)多核處理器有更大的存儲器帶寬和計(jì)算性能,缺點(diǎn)是GPU開發(fā)使用的CUDA是設(shè)備相關(guān)的,可擴(kuò)展性較差。

      本文在前人研究基礎(chǔ)上,結(jié)合Zynq開發(fā)板單芯片集成了雙核ARM和FPGA的特點(diǎn),提出了一種基于ARM-FPGA的異構(gòu)多核高性能架構(gòu),設(shè)計(jì)了一種異構(gòu)多核間高帶寬通信方式,移植了嵌入式Linux并開發(fā)相關(guān)軟核的驅(qū)動(dòng),在該架構(gòu)實(shí)現(xiàn)了優(yōu)化后的H.264編碼算法,實(shí)驗(yàn)數(shù)據(jù)表明,該架構(gòu)下的算法相比同構(gòu)多核架構(gòu)具有很大性能的提升。

      1 基于Zynq的異構(gòu)多核系統(tǒng)總體設(shè)計(jì)

      1.1異構(gòu)多核系統(tǒng)的硬件架構(gòu)設(shè)計(jì)

      本文使用的硬件平臺是Xilinx Zynq-7000 SOC,在單芯片集成了具有豐富特點(diǎn)的雙核ARM Cortex-A9處理器的處理系統(tǒng)和Xilinx可編程邏輯,整個(gè)異構(gòu)多核系統(tǒng)的硬件架構(gòu)設(shè)計(jì)如圖1所示。

      處理系統(tǒng)不僅包括ARM Cortex-A9雙核處理器,還包括Cache,DDR控制器,DMA控制器等??删幊踢壿嫴捎肵ilinx 7系列的FPGA技術(shù),它包含大量不同類型的資源,主要包括塊存儲器(Block RAM),時(shí)鐘管理單元(Clock Management Tiles),可配置邏輯塊(Configurable Logic Block)等。ARM Cortex-A9雙核處理器和Xilinx7系列FPGA集成到單芯片中構(gòu)成了本文所介紹的異構(gòu)多核處理器系統(tǒng)。由于Zynq既有通用處理器的靈活性和可擴(kuò)展性,又有具有可編程邏輯處理器的高性能,可重構(gòu)性,因此本文在此硬件平臺上構(gòu)建了異構(gòu)多核的處理器系統(tǒng),完成了H.264編碼算法在異構(gòu)多核系統(tǒng)上的優(yōu)化實(shí)現(xiàn)。

      1.2異構(gòu)多核系統(tǒng)的軟件架構(gòu)設(shè)計(jì)

      為了在異構(gòu)多核系統(tǒng)上運(yùn)行H.264編碼算法,本文將嵌入式Linux系統(tǒng)移植到Zynq開發(fā)板,并開發(fā)相關(guān)驅(qū)動(dòng)。在Zynq異構(gòu)多核硬件系統(tǒng)上移植Linux系統(tǒng)的步驟如圖2所示。

      在異構(gòu)多核硬件系統(tǒng)搭建完畢及嵌入式Linux移植完成后,本文將在軟件層實(shí)現(xiàn)H.264編碼算法。

      如圖3所示,運(yùn)行過程中以下文詳述的ARM-FPGA高速通信方法及FPGA硬件加速算法的調(diào)用為基礎(chǔ),將編碼算法中耗時(shí)最多的任務(wù)負(fù)載到FPGA中去執(zhí)行,編碼算法運(yùn)行時(shí)其他階段仍在ARM中執(zhí)行。ARM將待處理數(shù)據(jù)通過AXI HP高速通信接口傳遞給FPGA,F(xiàn)PGA運(yùn)算完成后同樣通過AXI HP接口返回給ARM。

      2 異構(gòu)多核系統(tǒng)間通信方法的設(shè)計(jì)與實(shí)現(xiàn)

      Zynq由于將不同工藝的異構(gòu)多核融合在一個(gè)芯片,如何保證Cortex-A9和FPGA之間的互聯(lián)數(shù)據(jù)通路高速穩(wěn)定,是基于Zynq芯片設(shè)計(jì)的重點(diǎn)。Zynq中異構(gòu)核間的通信接口共有9個(gè),主要如下類型:

      AXI ACP接口:ARM多核架構(gòu)下定義的一種接口,加速器一致性端口用來處理DMA之類不帶緩存的AXI外設(shè),Ps端是Slave接口。

      AXI HP接口:高性能,高帶寬的AX13.0標(biāo)準(zhǔn)的接口,共有4個(gè),PL模塊作為主設(shè)備連接。

      AXI GP接口:通用AXI接口,共有4個(gè),主要用于對外設(shè)端口進(jìn)行配置,是低速端口。

      異構(gòu)多核通信的主要思想是共享內(nèi)存,因此本文主要設(shè)計(jì)了基于AXI GP接口的低速通信方法和基于AXI HP接口的高速通信方法,確保PL和PS數(shù)據(jù)交互通路高效傳輸。

      AXI HP的功能和表1中的寄存器相關(guān),本文設(shè)計(jì)并實(shí)現(xiàn)了高速通道接口在Linux下的驅(qū)動(dòng)程序,主要是通過這些寄存器來配置AXI HP接口。

      2.1異構(gòu)多核系統(tǒng)的軟件架構(gòu)設(shè)計(jì)

      Zynq平臺一共提供了四個(gè)AXI HP接口,每個(gè)接口都有兩個(gè)FIFO緩沖器,一個(gè)是讀緩沖,一個(gè)是寫緩沖。由于AXI_HP接口用于高速通信,因此使用AXI3.0通信協(xié)議,ARM核可直接接訪問DDR內(nèi)存,而FPGA通過AXI_HP接口訪問DDR內(nèi)存和片上存儲器OCM,異構(gòu)多核通過AXI_HP接口使用共享內(nèi)存的方式進(jìn)行通信,具體的數(shù)據(jù)傳輸方式是通過DMA實(shí)現(xiàn)的。AXI_HP接口是為了PL訪問PS上的存儲器(DDR和On-Chip RAM)而專門設(shè)計(jì)的高速數(shù)據(jù)通路,因此它支持標(biāo)準(zhǔn)的AXI_3.0接口,可以跨PS和PL的AXI接口之間的異步時(shí)鐘域,可編程的32位/64位數(shù)據(jù)寬度。AXI_HP端口分成兩部分,一部分和PL直接連接,另一部分連接到AXI_Interconnect,從而訪問DDR和OCM。

      AXI_HP端口用于PS和PL部分的高速數(shù)據(jù)交互,其數(shù)據(jù)搬移一般通過邏輯內(nèi)的DMA控制器而不需要CPU參與,因此本文用異構(gòu)多核處理器運(yùn)行H.264編碼算法時(shí)數(shù)據(jù)的傳輸便是通過AXI_HP接口傳輸?shù)紻DR中,供CPU和FPGA完成進(jìn)一步的圖像處理。

      2.2異構(gòu)多核系統(tǒng)的軟件架構(gòu)設(shè)計(jì)

      Zynq平臺一共提供了4個(gè)AXI_GP接口,兩個(gè)主接口以及兩個(gè)從接口,基于AXI_GP接口的低速通信流程如圖4所示。異構(gòu)核間ARM核作為主設(shè)備,F(xiàn)PGA作為從設(shè)備,ARM核與FPGA核間通信主要通過ARM核對從設(shè)備的端口寄存器讀寫來實(shí)現(xiàn)。本文設(shè)計(jì)并實(shí)現(xiàn)了FPGA中的自定義IP核在Linux下的驅(qū)動(dòng)程序,具體實(shí)現(xiàn)了AXI_IP_OPEN,AXI_IP_CLOSE,AXI_IP_READ,AXI_IP_WRITE,AXI_IP_IOCTL等函數(shù),命名及實(shí)現(xiàn)方式均符合Linux標(biāo)準(zhǔn)的驅(qū)動(dòng)程序?qū)崿F(xiàn)規(guī)范。

      3 異構(gòu)多核系統(tǒng)上H.264編碼算法的實(shí)現(xiàn)

      3.1H.264視頻編碼算法

      目前主流的H.264視頻編碼標(biāo)準(zhǔn)有三種:JM參考模型,T264,X264。JM參考模型是ITUT組織的一個(gè)官方的編碼參考程序,一般用于開發(fā)者學(xué)習(xí)和比對使用,功能完善但編碼效率低。T264是中國開源愛好者組織開發(fā)的H.264視頻編碼程序,由于與其他解碼器兼容性不好,目前已停止更新。X.264是法國人組織開發(fā)的H.264視頻編碼算法,目前仍有開源社區(qū)維護(hù)該項(xiàng)目。它的兼容性好且編碼效率高,因此本文選用X264算法作為異構(gòu)多核系統(tǒng)上編碼算法的基礎(chǔ)。此外,對于視頻編碼的核心模塊,如幀內(nèi)預(yù)測、變換量化等模塊,需要大量運(yùn)算的模塊針對不同的處理器做了相適應(yīng)的指令集優(yōu)化,利用相關(guān)的多媒體擴(kuò)展指令集來改善編碼性能。我們以x264算法為原型,通過在PC機(jī)平臺上的實(shí)際測試,同時(shí)結(jié)合一些前人的工作成果,來分析總結(jié)H.264標(biāo)準(zhǔn)視頻編碼器在編碼過程中耗時(shí)過多的模塊,并根據(jù)分析結(jié)果確定相應(yīng)的軟硬件劃分方案。x264_clip_uint8是x264算法耗時(shí)最多的函數(shù),其次是hpel_filter、_abs、x264_pixel_sad_16x16、quant_4x4函數(shù)。hpel_filter函數(shù)中耗時(shí)最多的部分也為x264_clip_uint8;而abs是預(yù)測編碼中計(jì)算子塊的計(jì)算用于模式選擇依據(jù)的子塊絕對差和所必須要的函數(shù),而x264_pixel_sad_16x16則是計(jì)算16x16塊的絕對差和的函數(shù)。

      3.2測試結(jié)果與分析

      本文在Zynq7000開發(fā)板上實(shí)現(xiàn)了x264編碼器算法,編碼測試了三個(gè)視頻序列分別為Bus,City,F(xiàn)ootball(CIF352x288),編譯環(huán)境是Linux下的Gcc,測試幀數(shù)為100幀。通過對比ARM-FPGA異構(gòu)多核架構(gòu)和ARM同構(gòu)多核架構(gòu)的同一幀YUV圖像統(tǒng)計(jì)信息,如表2所示,兩者編碼后圖像質(zhì)量上基本一致,但編碼時(shí)減少了30%左右。這表明本文提出的方法是有效的,相較ARM同構(gòu)多核時(shí)編碼性能有大幅的提升。

      4 結(jié)論

      本文針對Zynq開發(fā)板單芯片集成雙核ARM和FPGA的特點(diǎn),提出了一種基于ARM-FPGA的異構(gòu)多核硬件架構(gòu),設(shè)計(jì)了一種異構(gòu)多核間高帶寬通信方式,移植Linux并開發(fā)相關(guān)驅(qū)動(dòng),在該架構(gòu)實(shí)現(xiàn)了優(yōu)化后的H.264編碼算法。通過對視頻序列編碼在ARM同構(gòu)多核環(huán)境下進(jìn)行比對,硬件加速效果明顯。目前最新的編碼標(biāo)準(zhǔn)是HEVC,其特點(diǎn)是復(fù)雜度高,壓縮比大,理論上適合運(yùn)行在本文介紹的異構(gòu)多核系統(tǒng)上,下一步的研究方向可致力與此。

      猜你喜歡
      同構(gòu)異構(gòu)端口
      巧用同構(gòu)法解決壓軸題
      試論同課異構(gòu)之“同”與“異”
      指對同構(gòu)法巧妙處理導(dǎo)數(shù)題
      同構(gòu)式——解決ex、ln x混合型試題最高效的工具
      高等代數(shù)教學(xué)中關(guān)于同構(gòu)的注記
      端口阻塞與優(yōu)先級
      異構(gòu)醇醚在超濃縮洗衣液中的應(yīng)用探索
      overlay SDN實(shí)現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
      LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
      初識電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      赫章县| 邻水| 乌拉特后旗| 麻城市| 兴业县| 呼伦贝尔市| 丘北县| 定襄县| 永安市| 梧州市| 隆尧县| 惠安县| 平南县| 漯河市| 金阳县| 长阳| 定安县| 手游| 建德市| 汤原县| 孟州市| 北川| 临夏市| 奇台县| 垣曲县| 三江| 托克逊县| 商洛市| 静宁县| 开江县| 穆棱市| 碌曲县| 大英县| 湖南省| 海宁市| 潞西市| 渭南市| 攀枝花市| 儋州市| 靖边县| 郓城县|