• 
    

    
    

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

      基于Vivado HLS的Down Scaler視頻系統(tǒng)設(shè)計

      2016-03-20 09:14:40
      關(guān)鍵詞:視頻流鏡像運算

      安 航

      (西安電子科技大學(xué)微電子學(xué)院,西安710126)

      基于Vivado HLS的Down Scaler視頻系統(tǒng)設(shè)計

      安 航

      (西安電子科技大學(xué)微電子學(xué)院,西安710126)

      介紹一種基于FPGA的Down Scaler視頻系統(tǒng)設(shè)計。系統(tǒng)的核心部件采用Xilinx Kintex-7的板載XC7K325T芯片,系統(tǒng)設(shè)計使用Vivado工具,包括使用Vivado HLS進行Down Scaler模塊設(shè)計。首先按照Vivado HLS的代碼規(guī)范進行Down Scaler模塊的C/C++代碼編寫,然后利用編譯工具生成RTL級代碼和綜合結(jié)果Down Scaler IP核,最后將Down Scaler IP核與TPG、VDMA等Xilinx視頻IP核互連,構(gòu)建實時視頻系統(tǒng)。在滿足實時性要求和FPGA資源消耗要求的條件下,該設(shè)計實現(xiàn)了對Down Scaler視頻算法從PC端軟件處理方式向FPGA平臺硬件處理方式的移植。

      Vivado HLS;FPGA;Down Scaler;高層次綜合

      引 言

      在電子設(shè)計自動化領(lǐng)域,高層次綜合工具變得越來越受歡迎,其能夠?qū)/C++、SystemC、Matlab等高級語言的函數(shù)轉(zhuǎn)譯成RTL級的代碼,這一功能將數(shù)字電路設(shè)計的抽象層進一步提升。隨著嵌入式系統(tǒng)復(fù)雜程度的增加,高層次綜合工具開始深入電子系統(tǒng)尤其是嵌入式系統(tǒng)的設(shè)計流程。本文介紹一種基于Xilinx公司的高層次綜合工具Vivado HLS的Down Scaler視頻系統(tǒng)設(shè)計。

      1 高層次綜合概述

      在過去20年,占主導(dǎo)地位的電子設(shè)計流程中,硬件設(shè)計人員需要手工完成從系統(tǒng)功能指標(biāo)到RTL級代碼的所有工作。如今,這樣的設(shè)計流程開始變得困難,因為越來越多的功能可以被集成在一個芯片上,按照傳統(tǒng)的設(shè)計流程,開發(fā)人員獨自一人完成所有的功能變得越發(fā)困難,但因為設(shè)計功能的增多而增加設(shè)計團隊的人員數(shù)量,從經(jīng)濟角度上看是不可行的,這意味著設(shè)計生產(chǎn)率必須有所提高。高層次綜合能夠通過從算法層到RTL層的自動化來提高設(shè)計生產(chǎn)率,從圖1(b)中可以看到,應(yīng)用高層次綜合,系統(tǒng)設(shè)計從功能指標(biāo)到自動化設(shè)計流程開端的距離縮短了。

      在設(shè)計流程中,應(yīng)用高層次綜合工具能夠給設(shè)計工作帶來以下便利:首先,需要設(shè)計人員編寫的代碼量顯著減少,在縮短開發(fā)周期的同時降低了錯誤率。其次,在如今的產(chǎn)品開發(fā)過程中,驗證所需的時間往往超過設(shè)計的時間,使用高層次綜合工具能夠縮短驗證時間,在高層次綜合工具生成設(shè)計代碼的同時,還能夠同時生成測試平臺代碼,可以直接通過測試數(shù)據(jù)來驗證設(shè)計代碼是否正確。

      2 Down Scaler模塊設(shè)計

      傳統(tǒng)的Down Scaler運算是在PC架構(gòu)下進行的,以湯姆遜視頻網(wǎng)絡(luò)公司的產(chǎn)品THVN VS7000為例,其中的Down Scaler模塊是PC服務(wù)器中的一個C++應(yīng)用程序,在進行運算處理前,視頻流的獲取通過一塊Black Magic板卡來實現(xiàn),其接收到的每一幀圖像的像素信息通過PCI-e傳輸?shù)絇C服務(wù)器。服務(wù)器首先將像素信息存儲在3個不用的內(nèi)存空間Y、U、V,之后應(yīng)用程序Down Scaler對這3個空間的像素信息進行運算處理。本文描述的設(shè)計目標(biāo)是使用FPGA中的一個Down Scaler IP核實現(xiàn)對視頻流的“硬件處理”,代替?zhèn)鹘y(tǒng)PC端的Down Scaler C++程序?qū)D像進行“軟件處理”的方案,從而取消完整幀像素信息Y、U、V成分的預(yù)儲存步驟。

      圖1 高層次綜合的Gasjki-Kuhn Y-chart圖描述[1]

      2.1 模塊參數(shù)要求

      視頻的縮小比例為2/3,像素的相位數(shù)為2,根據(jù)相位數(shù)、亮度色度、水平豎直的不同情況,共計有8個濾波窗,每個濾波窗包含11個參數(shù),由Lanczos算法提前計算確定,“鏡像”處理針對圖像邊緣的5個像素點進行。

      2.2 模塊設(shè)計關(guān)鍵點

      2.2.1 計算單元

      根據(jù)參數(shù)要求,Down Scaler模塊包括兩種BRAM計算單元,分別是Window和Linebuffer。Window是一個一維存儲空間,用來存儲11個像素點,Linebuffer是一個二維存儲空間,用來存儲11行像素點。Linebuffer在每一個工作頻率上接收新的輸入像素,之前的像素在每一個工作頻率上向存儲空間的下方移動一個位置,即最新接收的像素點總是存儲在Linebuffer中的初始位置。當(dāng)Linebuffer填滿后,Downscaling運算開始,即通過Window存儲11個采樣像素,并對像素信息進行濾波運算。相比存儲一幀完整圖像后再進行運算的“軟件處理”方式,通過使用Linebuffer和Window作為“硬件處理”方式的存儲單元大幅降低了模塊對存儲空間的需求?!败浖幚怼焙汀坝布幚怼盌own Scaler模塊的計算單元大小對比如表1所列。

      表1 “軟件處理”和“硬件處理”Down Scaler模塊的計算單元大小對比

      2.2.2 像素信息計算和鏡像運算整合

      與傳統(tǒng)Down Scaler算法對像素分量Y、U、V進行區(qū)分后再做鏡像、濾波運算不同,本文中的Down Scaler對輸入的像素點信息直接進行鏡像和濾波運算,這樣做是為了簡化IP結(jié)構(gòu),更好地適應(yīng)AXI4-Stream協(xié)議[2]。另外,傳統(tǒng)Down Scaler算法包含4個串行過程,分別是水平鏡像、水平縮小、豎直鏡像和豎直縮小,使用Vivado HLS工具的Dataflow模式將串行過程并行執(zhí)行后,在不改變模塊工作頻率的條件下,只能夠滿足對1920×1080P/25 fps的視頻進行實時運算。為了進一步提高運算性能,需要進一步降低運算過程之間的數(shù)據(jù)依賴性。新的算法只包含兩個縮小過程,即水平縮小和豎直縮小,鏡像運算被整合在縮小運算中,并且只在需要的時刻進行。對鏡像運算的整合雖然增加了算法編寫的復(fù)雜程度,但是縮短了過程間的數(shù)據(jù)傳輸鏈路,使設(shè)計最終能夠達到性能參數(shù)要求,滿足對1920×1080P/60 fps的視頻進行實時運算。

      3 視頻系統(tǒng)設(shè)計

      3.1 系統(tǒng)參數(shù)要求

      輸入視頻流為全高清視頻、1920×1080P/60 fps、YUV4:4:4格式,輸出視頻流為高清視頻、1080×720P/60 fps、YUV4:4:4格式,要求Down Scaler模塊的工作頻率等于輸入視頻像素頻率,即148.5 MHz。

      3.2 Down Scaler視頻系統(tǒng)搭建

      實時視頻系統(tǒng)架構(gòu)可以分為兩大類,一類是不含幀緩存模塊的系統(tǒng),另一類是包含幀緩存模塊的系統(tǒng),本文中的Down Scaler視頻系統(tǒng)屬于第二類架構(gòu)。

      根據(jù)圖2所示的系統(tǒng)架構(gòu),使用IP integrator搭建的Down Scaler視頻系統(tǒng),該系統(tǒng)用到以下IP核:

      ①Test Pattern Generator[3]——Xilinx IP核,用來產(chǎn)生不同格式的輸入視頻流;

      ②Down Scaler——Vivado HLS生成的IP核;

      ③AXI Video Direct Memory Access[4]、AXI Interconnect[5]、MIG 7 Series[6]——XilinxIP核,用來在DDR內(nèi)存中構(gòu)建幀緩存器;

      ④Clocking Wizard[7]——Xilinx IP核,用來生成系統(tǒng)時鐘信號;

      ⑤Proc Sys Reset——Xilinx IP核,用來生成系統(tǒng)重置信號;

      ⑥Video In to AXI4-S[8]、AXI4-S to Video Out[9]——Xilinx IP核,用來進行AXI4-Stream和視頻協(xié)議轉(zhuǎn)換;

      ⑦VTC(Video Timing Controller[10])——Xilinx IP核,用來檢測輸入視頻時鐘周期和產(chǎn)生輸出視頻時鐘周期。

      圖2 Down Scaler視頻系統(tǒng)架構(gòu)

      至此,一個基于Vivado HLS的Down Scaler視頻系統(tǒng)設(shè)計完成。

      結(jié) 語

      本設(shè)計選取Xilinx Kintex-7評估板作為開發(fā)平臺,使用高層次綜合工具Vivado HLS進行Down Scaler模塊的設(shè)計、仿真和驗證,使用Vivado進行實時視頻系統(tǒng)構(gòu)建,在滿足實時性要求和FPGA資源消耗要求下,實現(xiàn)了對Down Scaler視頻算法從PC端軟件處理向FPGA平臺硬件處理的移植。經(jīng)測試,由TPG生成的1080P視頻流經(jīng)過本文設(shè)計的Down Scaler系統(tǒng),成功輸出了720P視頻流,Down Scaler的性能滿足了設(shè)計要求。

      隨著系統(tǒng)設(shè)計和算法日益復(fù)雜,新的設(shè)計方法——高層次綜合開始出現(xiàn)并將逐漸取代傳統(tǒng)的硬件系統(tǒng)設(shè)計方法,成為系統(tǒng)設(shè)計的主流方式。未來的設(shè)計者可以從算法的角度直接下降到硬件平臺來完成硬件開發(fā),對于復(fù)雜的算法,這一方法將大幅縮短開發(fā)周期,顯著降低代碼量,同時也為算法工程師和軟件工程師打開了硬件設(shè)計的大門。

      [1]Wim Meeus,Kristof Van Beeck,Toon Goedemé,et al.An overview of today’s high-level synthesis tools[J].Design Automation for Embedded System,2012,16(3):31-51.

      [2]ARM.AMBA 4 AXI4-Stream Protocol Specification[EB/ OL].[2016-05].http://infocenter.arm.com/help/index. jsp?topic=/com.arm.doc.ihi0051a/index.html.

      [3]Xilinx.LogiCORE IP Test Pattern Generator v5.0[EB/OL]. [2016-05].http://www.xilinx.com/support/answers/ 56929.html.

      [4]Xilinx.LogiCORE IP AXI Video Direct Memory Access v6.0 [EB/OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/axi_vdma/v6_0/pg020_axi_vdma. pdf.

      [5]Xilinx.LogiCORE IP AXI Interconnect v2.0[EB/OL]. [2016-05].http://www.xilinx.com/support/documentation/ip_documentation/axi_interconnect/v2_0/pg059-axi-interconnect.pdf.

      [6]Xilinx.7 Series FPGAs Memory Interface Solutions v1.9 and v1. 9a[EB/OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/ug586_7Series_MIS.pdf.

      [7]Xilinx.LogiCORE IP Clocking Wizard v5.0[EB/OL].[2016-05].http://www.xilinx.com/support/documentation/ip_ documentation/clk_wiz/v5_0/pg065-clk-wiz.pdf.

      [8]Xilinx.LogiCORE IP Video In to AXI4-Stream v3.0[EB/ OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/v_axi4s_vid_out/v3_0/pg044_v_axis_ vid_out.pdf.

      [9]Xilinx.LogiCORE IP AXI4-Stream to Video Out v3.0[EB/ OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/v_axi4s_vid_out/v3_0/pg044_v_axis_ vid_out.pdf.

      [10]Xilinx.LogiCORE IP Video Timing Controller v6.0[EB/ OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/v_tc/v6_0/pg016_v_tc.pdf.

      [11]徐家惠,戚海峰,高健,等.基于Vivado HLS的AC97音頻系統(tǒng)設(shè)計[J].實驗室研究與探索,2014,32(12):35-38.

      安航(工程師),研究方向為嵌入式系統(tǒng)開發(fā)與應(yīng)用。

      Down Scaler Video System Based on Vivado HLS

      An Hang
      (School of Microelectronics,Xidian University,Xi'an 710126,China)

      The design of Down Scaler video system based on FPGA is introduced.The key component of the system is XC7K325T chip on Xilinx Kintex-7 board,and Vivado design suite is used to design,including the use of Vivado HLS for Down Scaler module design.Firstly,the Down Scaler is described with C/C++language according to the specifications of Vivado HLS.Then,the RTL model and the IP core are generated by the Vivado HLS tool.Finally,a real-time video system is built by connecting the Down Scaler IP core and other Xilinx IP cores such as TPG and VDMA.The design transforms the Down Scaler video algorithm from the PC-based software processing method to the FPGA-based hardware processing method under the condition of meeting the requirementsof real-time performance and FPGA resource consumption.

      Vivado HLS;FPGA;Down Scaler;high-level synthesis

      TN791

      :A

      薛士然

      2016-05-27)

      猜你喜歡
      視頻流鏡像運算
      邊緣實時視頻流分析系統(tǒng)配置動態(tài)調(diào)整算法研究
      重視運算與推理,解決數(shù)列求和題
      基于視頻流傳輸中的擁塞控制研究
      鏡像
      有趣的運算
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      “整式的乘法與因式分解”知識歸納
      撥云去“誤”學(xué)乘除運算
      美國視頻流市場首現(xiàn)飽和征兆
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      南城县| 红桥区| 鱼台县| 崇左市| 安徽省| 邢台县| 大姚县| 蒙山县| 双辽市| 剑阁县| 高邑县| 嘉兴市| 包头市| 井陉县| 白朗县| 张家港市| 马关县| 扬州市| 红原县| 东光县| 余干县| 深泽县| 谢通门县| 泽州县| 寿宁县| 当阳市| 甘洛县| 麻栗坡县| 开封市| 焦作市| 柳江县| 剑川县| 德惠市| 舟山市| 南京市| 伊川县| 茶陵县| 汉寿县| 沁阳市| 华亭县| 南昌市|