作者:Nick
該系列前兩篇主要扯了扯Linux中GUI相關(guān)的DRI框架及相關(guān)組件實(shí)現(xiàn)方式。細(xì)想一下,對(duì)于GUI相關(guān)的加速能做的其實(shí)不多,開發(fā)一個(gè)2D或3D的顯卡加速子模塊對(duì)于一個(gè)DEMO教程的量級(jí)來(lái)說工作量太大,我們?cè)谶@只實(shí)現(xiàn)一下簡(jiǎn)單的功能:
通過Zynq的PL部分實(shí)現(xiàn)對(duì)Qt視頻播放器中待輸出的Framebuffer的二值處理;
1、 簡(jiǎn)單的處理介紹
上述處理十分簡(jiǎn)單,對(duì)于一幅分辨率為M*N的灰度圖像來(lái)說,二值化的處理如下:
,其中
表示圖像上任意一點(diǎn)灰度值,
為二值化閾值,對(duì)于RGB圖像來(lái)說(以RGB888為例),RGB轉(zhuǎn)化為灰度圖的表達(dá)式如下:
,對(duì)于此例不怎么嚴(yán)格的要求,采用16位的定點(diǎn)化精度足以,對(duì)應(yīng)著表達(dá)式如下:
2、 FPGA加速方案
圖像(預(yù))處理的本質(zhì)其實(shí)是二維數(shù)據(jù)的處理,常見的圖像預(yù)處理分為以下幾類:
1、 線性濾波,如噪聲平滑,邊緣增強(qiáng);
2、 非線性濾波,如零交點(diǎn)檢測(cè)等;
3、 形態(tài)學(xué)濾波,如膨脹腐蝕等;
4、 其它相對(duì)較復(fù)雜的圖像處理;
上述幾種圖像處理在信號(hào)處理實(shí)現(xiàn)上來(lái)說都是局部濾波器的實(shí)現(xiàn),以線性濾波為例,濾波器函數(shù)可表示為滑窗內(nèi)像素的權(quán)值與像素值的乘加之和,此處權(quán)重指的是滑窗內(nèi)各個(gè)算子的大小,表達(dá)如下:
其中其中
其中
為滑窗對(duì)應(yīng)的算子,i,j的取值范圍有滑窗大小決定。FPGA特別適合這類流水式的運(yùn)算。,內(nèi)部的DSP硬核或者由slice搭建生成的乘加器,是線性濾波的核心運(yùn)算單元。以一個(gè)3X3的窗口為例,對(duì)應(yīng)的濾波操作如下圖所示:
對(duì)于上述的幾點(diǎn)解釋如下:
1、 粉色框?qū)?yīng)著圖像的緩存部分,對(duì)于線性濾波計(jì)算,滑窗的尺寸(算子的size)越大,所需要緩存的容量越大,緩存一般使用片內(nèi)的block ram或distribute ram。當(dāng)然,我們也可以使用片外存儲(chǔ),如DDR,但片數(shù)據(jù)片內(nèi)外的搬運(yùn)會(huì)造成較大的延時(shí),因此,在設(shè)計(jì)之初我們就得在延時(shí)及滑窗size之間做好tradeoff。
2、 藍(lán)色部分為最終輸出的圖像濾波結(jié)果。由于緩存的存在,整體的圖像刷新輸出會(huì)比輸入延遲a*(W-1)+a-1個(gè)像素clk,其中a為滑窗的size,W為前篇中介紹的drm_framebuffer結(jié)構(gòu)體中width值。
二值化的處理其實(shí)可以看做簡(jiǎn)化的滑窗濾波操作,此時(shí)的a=1,算子值為1,滑窗結(jié)果通過一個(gè)比較器輸出二值化結(jié)果。影響二值化的參數(shù)為閾值大小,此處我們將這些需要配置的參數(shù)通過AXI_lite總線暴露給PS(ARM)端,讓軟件(運(yùn)行在PS端的Qt上位機(jī))動(dòng)態(tài)配置。整個(gè)系統(tǒng)的結(jié)構(gòu)如下:
3、 FPGA加速效果及性能分析
FPGA的處理速度取決于:
- 芯片速度等級(jí)(支持的最高頻率);
- 加速模塊的設(shè)計(jì)方案(并行化設(shè)計(jì)、利用資源換時(shí)間);
在本例中,處理速度取決于pixel的驅(qū)動(dòng)時(shí)鐘(本處50MHz),即大致60(FPS)*1080*720。
皮一下很開心,用海賊王的一小段打斗場(chǎng)面做了測(cè)試,效果請(qǐng)點(diǎn)擊視頻觀看: https://v.vzuu.com/video/1095730086900211712?autoplay=false&useMSE=
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1650文章
22207瀏覽量
626916 -
濾波器
+關(guān)注
關(guān)注
162文章
8207瀏覽量
184046 -
Linux
+關(guān)注
關(guān)注
88文章
11576瀏覽量
216684 -
GUI
+關(guān)注
關(guān)注
3文章
688瀏覽量
42376
發(fā)布評(píng)論請(qǐng)先 登錄
基于兆易創(chuàng)新GD32系列MCU的GUI智能屏顯解決方案

旋智科技家用分體空調(diào)電控設(shè)計(jì)方案

NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)17:PCIe加速模塊設(shè)計(jì)

GUI Guider全新優(yōu)化方案GUI xTurbo-VeloRender初體驗(yàn):基于i.MX RT平臺(tái)的LVGL渲染能力突破

通過什么方法能獲得關(guān)于Ethercat方面的設(shè)計(jì)方案和設(shè)計(jì)資料
SiC(碳化硅)模塊設(shè)計(jì)方案在工商業(yè)儲(chǔ)能變流器(PCS)行業(yè)迅速普及

淺論光儲(chǔ)充設(shè)施電氣設(shè)計(jì)方案研究

【正點(diǎn)原子】全志T113-i開發(fā)板資料震撼來(lái)襲!異核開發(fā)、工控設(shè)計(jì)方案!
在linux下開發(fā)過程中, DLP4500 GUI無(wú)法連接光機(jī)怎么解決?
電磁環(huán)境模擬系統(tǒng)設(shè)計(jì)方案

AFE4400測(cè)血氧方案GUI安裝出錯(cuò)的原因?怎么解決?
Scalable PMICs GUI用戶指南

評(píng)論