www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > > FPGA開(kāi)源工作室

前言:這一講我們使用Simulink來(lái)快速搭建圖像/視頻處理硬件加速平臺(tái)。以簡(jiǎn)單的RGB2GREY算法為例。我們主要使用的Toolbox為HDL Coder和Vision HDL兩個(gè),以后會(huì)加上相關(guān)的Hardware Support Package。大家可以在Simulink的Library Brower中以及官網(wǎng)里熟悉一下他們所支持的功能。


正文:

首先我們新建一個(gè)Simulink模型,并且按照上一講所講到的設(shè)置配置完成。

然后在空白處雙擊,輸入并添加以下模塊:

  • Image From File

  • Frame To Pixels

  • Pixels to Frame

  • Video Reviewer

  • Embedded Subsystem


將Video Reviewer放入Enabled Subsystem中,如下圖

然后按照下圖連接所有模塊。此處每個(gè)模塊的輸入都包含兩個(gè):pixel和ctrl。Pixel表示對(duì)應(yīng)的像素值,ctrl信號(hào)會(huì)indicate行開(kāi)始和結(jié)束,列開(kāi)始和結(jié)束,以及valid信號(hào)。不了解的同學(xué)可以參考Mathwork關(guān)于視頻接口控制總線的說(shuō)明https://www.mathworks.com/help/visionhdl/ug/pixelcontrol-bus.html。

之后我們需要設(shè)置Image From File模塊,雙擊它。如下圖設(shè)置File Name,Sample time。

下面設(shè)置Frame To Pixels和Pixels To Frame模塊,由于我們使用的圖片格式是RGB240p,所以我們?cè)陔p擊模塊之后彈出的配置窗口里選擇Video Format為240p,RGB有3個(gè)通道,所以Number of components填3。Pixels To Frame同理。對(duì)于視頻格式不太了解的同學(xué),我建議閱讀一下Matlab的Frame To Pixels文檔的Video format部分,鏈接如下

https://www.mathworks.com/help/visionhdl/ref/frametopixels.html

接下來(lái)我們?cè)O(shè)置仿真參數(shù),在空白處單擊右鍵,選擇Model Properties

然后我們?cè)贑allbacks中的InitFcn(初始化函數(shù))填寫(xiě)以下代碼,這樣我們只要改變VideoFormat的格式就可以自動(dòng)獲取圖像長(zhǎng)寬等參數(shù)。

完成之后我們?cè)赟imulink Model的配置欄設(shè)置仿真時(shí)間為totalPixels(也就是上一步中配置的),仿真模式選擇為Accelerator模式。

至此,我們可以測(cè)試一下仿真通路了,保存之后使用ctrl+D來(lái)驗(yàn)證模型完整性。如果沒(méi)有報(bào)錯(cuò)即可點(diǎn)擊開(kāi)始按鈕,開(kāi)始仿真。如果不出意外,我們將會(huì)看到以下圖片

既然視頻通路搭建成功,我們就可以開(kāi)始添加自己的RGBGREY模塊了。

熟悉數(shù)字圖像處理的同學(xué)一定知道,RGB圖像轉(zhuǎn)換成灰度圖像的公式如下

GREY=0.299*R+0.587*G+0.114*B。因此我們搭建轉(zhuǎn)換模塊如下

Delay模塊功能相當(dāng)于寄存器模塊,RGB信號(hào)通過(guò)pixelIn輸入,通過(guò)乘法器與對(duì)應(yīng)的常數(shù)相乘,并且使用Sum of Element模塊求和,后面的Data Type Conversion模塊截取了小數(shù)點(diǎn)之前的8位,也就是轉(zhuǎn)換成uint8的類(lèi)型。Control Bus也要有相應(yīng)的延遲,以保證時(shí)序不變。(關(guān)于為什么使用2個(gè)寄存器延遲,以及乘法器的替代,將會(huì)在以后提到。)我們將這部分模塊封裝在一個(gè)subsystem中(選中想要封裝的模塊并點(diǎn)擊右鍵,選中Create Subsystem from Selection)。至此,我們的算法搭建已經(jīng)完成,如下圖。由于灰度圖像是單通道的,別忘記將Pixel To Frame中的通道數(shù)改為1。

開(kāi)始仿真,Video Reviewer會(huì)顯示以下圖像,說(shuō)明我們的轉(zhuǎn)換算法驗(yàn)證成功。

說(shuō)明:1. 細(xì)心的同學(xué)可能會(huì)發(fā)現(xiàn),在實(shí)現(xiàn)RGBGREY算法,雙擊添加模塊時(shí),所有的模塊都出自HDL Coder Toolbox,大家可以去官網(wǎng)查看更多實(shí)例以及熟悉支持功能。2.MathWorks提供了一套對(duì)應(yīng)于上面模型的硬件框架來(lái)使用戶(hù)可以快速的搭建算法驗(yàn)證測(cè)試平臺(tái),主要來(lái)自Xilinx Zynq Support from Computer Vision Toolbox。前圖模型中顯示綠色和黃色的部分并不能綜合成硬件代碼,但應(yīng)該適配到對(duì)應(yīng)的Zynq框架之后,只要用戶(hù)按照接口,也就是pixel和ctrl,來(lái)開(kāi)發(fā)算法,就可以很容易的使用該硬件支持包來(lái)布置到FPGA中。

在Github中,我還添加了軟件部分的驗(yàn)證部分,并且計(jì)算硬件和軟件的PSNR。歡迎大家下載并且在自己的電腦上驗(yàn)證,如果有問(wèn)題和任何建議也可以與我聯(lián)系。

以下為模型地址https://github.com/linbaiwpi/matlab_visionhdl/tree/master/rgb2grey


下集預(yù)告:之后,我們還會(huì)了解到哪些模塊是可以被轉(zhuǎn)換成HDL代碼的,如何將模型部署到硬件之上,以及實(shí)現(xiàn)算法的時(shí)候?qū)?huì)用到的技巧等。

下一講我將會(huì)實(shí)現(xiàn)以上模型的HDL代碼,并且在Zedboard+FMC-HDMI-CAM板卡上進(jìn)行驗(yàn)證。之后我們會(huì)講解如何使用Line Buffer,如何生成patch,實(shí)例為將照片轉(zhuǎn)換成素描風(fēng)格(測(cè)試圖片摘自Github-wyfunique/Convert-Photo-to-sketch,如有侵權(quán),煩請(qǐng)告知,我會(huì)立刻刪除)。實(shí)現(xiàn)結(jié)果如下(右邊是輸入圖像,左邊是硬件實(shí)現(xiàn)的結(jié)果)


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉