亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用FPGA并行高速運(yùn)算實(shí)現(xiàn)實(shí)時(shí)的引導(dǎo)濾波算法

8XCt_sim_ol ? 來(lái)源:瘋狂的FPGA ? 作者:Im_CrazyBingo ? 2021-08-10 14:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前面一篇文章中,已經(jīng)詳細(xì)的分析了引導(dǎo)濾波的理論,公式的推導(dǎo),以及和雙邊濾波的對(duì)比分析,即在邊緣的處理上雙邊濾波會(huì)引起人為的黑/白邊。我們已經(jīng)知道何博士引導(dǎo)濾波的優(yōu)秀之處,那么本篇文章,我?guī)阃蒲?,如何?a target="_blank">FPGA并行高速運(yùn)算,最小的代碼實(shí)現(xiàn)實(shí)時(shí)的引導(dǎo)濾波算法。

首先,給出上篇中最后的matlab 引導(dǎo)濾波的代碼,如下所示。

其中框框中為主要的計(jì)算過(guò)程,下一圖為計(jì)算a/b的最后的公式(引導(dǎo)圖=本身)。

b50e7686-f82c-11eb-9bcf-12bb97331649.png

b51c9ebe-f82c-11eb-9bcf-12bb97331649.png

雙邊濾波由于其只是在空間距離及像素相似度上進(jìn)行權(quán)重計(jì)算,加權(quán)濾波,相對(duì)算法不是特別復(fù)雜,F(xiàn)PGA也易于實(shí)現(xiàn)(某司的USB工業(yè)相機(jī)2D濾波就是雙邊濾波),但是確實(shí)效果上不如引導(dǎo)濾波,那么引導(dǎo)濾波FPGA計(jì)算真有那么難嗎?為此我翻閱了一些資料,也從頭到尾推到計(jì)算了一遍,略有所成,出來(lái)和大家分享下。

在Matlab/C的加速中,引導(dǎo)濾波采用了盒式濾波的方式去加速,將運(yùn)算復(fù)雜度從O(MN)的降低到了O(4),其方法就是先計(jì)算當(dāng)前像素到原點(diǎn)像素組成的矩形區(qū)域的和/平方和等,對(duì)于線(xiàn)程的Matlab/C而言確實(shí)有很大的加速作用,相關(guān)的文章可以參考如下,對(duì)于軟件加速而言還是很不錯(cuò):

https://www.cnblogs.com/lwl2015/p/4460711.html

于是網(wǎng)上就有了一篇所謂的采用FPGA進(jìn)行引導(dǎo)濾波加速的專(zhuān)利,鏈接如下:

https://www.doc88.com/p-4377429794731.html?r=1

另附上架構(gòu)實(shí)現(xiàn)圖,但我估計(jì)這幾個(gè)小朋友還沒(méi)有想明白boxfilter是怎么回事,生搬硬套軟件boxfilter加速的思維嘛???

b5275160-f82c-11eb-9bcf-12bb97331649.png

圖中,計(jì)算均值,平方均值,a的均值,b的均值采用了4個(gè)boxfilter,也就是說(shuō)如果輸入1280*720的圖像,那就需要緩存4個(gè)那么大地址空間的區(qū)域來(lái)存儲(chǔ)中間變量,這顯然是不適合FPGA加速運(yùn)算的啊。FPGA的意義在于高速并行技術(shù),盡可能的避免沖入進(jìn)入緩存,而是以Pipeline的方式流水線(xiàn)完成運(yùn)算,實(shí)現(xiàn)真正低延時(shí)+實(shí)時(shí)處理的目標(biāo)。

所以為什么不能流水線(xiàn)完成所有的計(jì)算操作呢?

不服來(lái)戰(zhàn),沒(méi)有啥難度的……下面開(kāi)始我的表演。

【第一步】

以3*3的濾波為例(這里的引導(dǎo)圖都是原圖),按行從傳感器或者DDR中讀取原圖,采用移位寄存后得到3*3的矩陣行,如下所示:

b5a8fec2-f82c-11eb-9bcf-12bb97331649.png

如上圖中,以P00-P22為例,這9個(gè)像素,我們可以通過(guò)計(jì)算得均值,以及平方的均值,緊接著繼續(xù)計(jì)算得到a與吧,詳見(jiàn)下圖,其中相關(guān)的參數(shù)定義如下:

P原始圖像像素集

Pm以當(dāng)前像素為中心的3*3像素的均值

PPm以當(dāng)前像素為中心的3*3像素平方的均值

sum1以當(dāng)前像素為中心的3*3像素的和

sum1以當(dāng)前像素為中心的3*3像素平方的和

a以當(dāng)前像素為中心計(jì)算的參數(shù)a

b以當(dāng)前像素為中心計(jì)算的參數(shù)b

am以當(dāng)前像素為中心的3*3像素的a均值

bm以當(dāng)前像素為中心的3*3像素的b均值

b5c4d99e-f82c-11eb-9bcf-12bb97331649.png

從上圖可知,通過(guò)三行組成的矩陣,以流水線(xiàn)方式,最快用了6個(gè)時(shí)鐘得到了參數(shù)a與b;

由于全圖流水線(xiàn)運(yùn)行,因此從第6個(gè)時(shí)鐘開(kāi)始,將持續(xù)的輸出每一個(gè)像素對(duì)應(yīng)的a與b,等同于我們通過(guò)這一階段的實(shí)現(xiàn)方式,得到了參數(shù)a/b陣列。

另外,上圖中可知,除以9的運(yùn)算我已經(jīng)默默轉(zhuǎn)換為乘法與移位,clk4中將涉及到的小數(shù)點(diǎn),已經(jīng)提前擴(kuò)大了1024倍,同等的b中也做了變更(紅/藍(lán)色字體),這就是FPGA定點(diǎn)化的加速的方式。

再者,由于最后的計(jì)算還需要P的參與,因此上述步驟中,需要將輸入的原始圖像進(jìn)行移位延時(shí),最終能和后續(xù)am/bm對(duì)齊。

【第二步】

接下來(lái),進(jìn)一步計(jì)算am與bm,這個(gè)就簡(jiǎn)單的多了,類(lèi)似第一步,直接緩存3行得到3*3的矩陣行,通過(guò)加權(quán)后得到am與bm。這個(gè)過(guò)程中am與bm的計(jì)算可以完全并行,每個(gè)am/bm的計(jì)算耗時(shí)3個(gè)時(shí)鐘。

詳見(jiàn)下圖計(jì)算流:

b5e7fa0a-f82c-11eb-9bcf-12bb97331649.png

【第三步】

此時(shí)我們已經(jīng)同時(shí)得到了am,bm,以及通過(guò)移位delay后和am/bm對(duì)齊的P,那么直接套用公式,我們就可以計(jì)算出每一個(gè)像素濾波后的值:

即輸出Q=(am*P+bm)》》10

這里還需要右移10bit,是因?yàn)榍懊娴谝徊街?,由于涉及到了小?shù),我們提前進(jìn)行了1024倍的擴(kuò)大,來(lái)減少計(jì)算誤差的損失。

至此,流水線(xiàn)操作,沒(méi)有使用boxfilter,沒(méi)有將數(shù)據(jù)回寫(xiě)入DDR,我們采用了若干行l(wèi)ine buffer的形式,完成了實(shí)時(shí)引導(dǎo)濾波的FPGA加速實(shí)現(xiàn)。

整體流程再梳理一下,相關(guān)的依賴(lài)以及流水方式,如下圖所示,應(yīng)該可以看的更明白。其中綠色為第一步計(jì),灰色為第二步計(jì)算,紅色為最后一步計(jì)算。

b6268dec-f82c-11eb-9bcf-12bb97331649.png

所以,這就是FPGA并行加速運(yùn)算的價(jià)值與意義,按照我的實(shí)現(xiàn)方式,可以用最小的代碼實(shí)現(xiàn)實(shí)時(shí)的引導(dǎo)濾波,甚至連低端的EP4CE6E都不是問(wèn)題。

同樣一個(gè)算法,可以有n種實(shí)現(xiàn)方式,你甚至可以把算法挪到MPSOC的PS中執(zhí)行,然后忍受龜速的同時(shí)你可能還會(huì)抱怨FPGA跑的慢,CPU性能不足之類(lèi)的,但是永遠(yuǎn)不要忘記,架構(gòu)的意義。正如軟件的優(yōu)化,其實(shí)很多時(shí)候,并不是算法本身不行,而是你對(duì)系統(tǒng)底層,對(duì)計(jì)算優(yōu)化的能力不行。

為什么我喜歡用FPGA加速,因?yàn)槊恳粋€(gè)門(mén)級(jí)電路,以何種并行度何種方式進(jìn)行計(jì)算,一切都可以在我的掌控之中。

所以當(dāng)年我說(shuō)過(guò)一句話(huà):掌握了FPGA,你便掌握了整個(gè)世界。

至此,從均值濾波到中值濾波、高斯濾波、雙邊濾波、引導(dǎo)濾波這些通用的2D降噪算法,我都已經(jīng)通過(guò)公眾號(hào)/知識(shí)星球/博客的方式,從原理到FPGA加速實(shí)現(xiàn)闡述明白。

如果在這之間有任何疑問(wèn),或者我有什么不到之處的,歡迎以各種方式來(lái)跟我討論(伸手黨麻煩出門(mén)右轉(zhuǎn))。

謝謝大家!

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1652

    文章

    22238

    瀏覽量

    628720
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11202

    瀏覽量

    222193
  • 濾波
    +關(guān)注

    關(guān)注

    10

    文章

    694

    瀏覽量

    57771

原文標(biāo)題:基于FPGA的引導(dǎo)濾波并行加速實(shí)現(xiàn) 推演

文章出處:【微信號(hào):sim_ol,微信公眾號(hào):模擬在線(xiàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    復(fù)雜的軟件算法硬件IP核的實(shí)現(xiàn)

    ,使用編譯和優(yōu)化技術(shù)將可以并行執(zhí)行的、沒(méi)有 前后依賴(lài)關(guān)系的操作步驟被集中起來(lái)對(duì)應(yīng)于一個(gè)有限狀態(tài)機(jī)的某一個(gè)狀態(tài)從而實(shí)現(xiàn)并行處理,而運(yùn)算則對(duì)應(yīng)于一些組合邏輯電路。即將
    發(fā)表于 10-30 07:02

    何用FPGA實(shí)現(xiàn)4K視頻的輸入輸出與處理

    在游戲、影視和顯示領(lǐng)域,4K 已經(jīng)成為標(biāo)配。而今天,我們就來(lái)聊聊——如何用 FPGA 實(shí)現(xiàn) 4K 視頻的輸入輸出與處理。
    的頭像 發(fā)表于 10-15 10:47 ?1462次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>4K視頻的輸入輸出與處理

    25年11月上海FPGA算法實(shí)現(xiàn)與應(yīng)用技術(shù)高級(jí)研修分享

    器的設(shè)計(jì)。   第六章: NCO的算法實(shí)現(xiàn):NCO(數(shù)字控制振蕩器)是做頻率搬移和相位搬移的重要算法,也是數(shù)字中頻設(shè)計(jì)常用的設(shè)計(jì)模塊。   第七章: FRM濾波器設(shè)計(jì):FRM
    發(fā)表于 10-11 11:55

    數(shù)據(jù)濾波算法的具體實(shí)現(xiàn)步驟是怎樣的?

    ? 數(shù)據(jù)濾波算法在電能質(zhì)量在線(xiàn)監(jiān)測(cè)裝置中的具體實(shí)現(xiàn),需圍繞 “ 數(shù)據(jù)采集→預(yù)處理→算法執(zhí)行→參數(shù)適配→效果驗(yàn)證→結(jié)果輸出 ” 的全流程展開(kāi),核心是結(jié)合裝置硬件特性(采樣率、ADC 精度
    的頭像 發(fā)表于 10-10 16:45 ?345次閱讀

    友思特方案 | FPGA 加持,友思特圖像采集卡高速預(yù)處理助力視覺(jué)系統(tǒng)運(yùn)行提速增效

    圖像預(yù)處理是圖像處理關(guān)鍵中間環(huán)節(jié),通過(guò)優(yōu)化傳感器到主機(jī)的數(shù)據(jù)傳輸處理為后續(xù)減負(fù)。其算法依托硬件執(zhí)行,搭載?FPGA?的友思特圖像采集卡以高速運(yùn)算
    的頭像 發(fā)表于 08-20 09:18 ?529次閱讀
    友思特方案 | <b class='flag-5'>FPGA</b> 加持,友思特圖像采集卡<b class='flag-5'>高速</b>預(yù)處理助力視覺(jué)系統(tǒng)運(yùn)行提速增效

    基于Matlab與FPGA的雙邊濾波算法實(shí)現(xiàn)

    前面發(fā)過(guò)中值、均值、高斯濾波的文章,這些只考慮了位置,并沒(méi)有考慮相似度。那么雙邊濾波來(lái)了,既考慮了位置,有考慮了相似度,對(duì)邊緣的保持比前幾個(gè)好很多,當(dāng)然實(shí)現(xiàn)上也是復(fù)雜很多。本文將從原理入手,采用Matlab與
    的頭像 發(fā)表于 07-10 11:28 ?3847次閱讀
    基于Matlab與<b class='flag-5'>FPGA</b>的雙邊<b class='flag-5'>濾波</b><b class='flag-5'>算法</b><b class='flag-5'>實(shí)現(xiàn)</b>

    基于FPGA的壓縮算法加速實(shí)現(xiàn)

    本設(shè)計(jì)中,計(jì)劃實(shí)現(xiàn)對(duì)文件的壓縮及解壓,同時(shí)優(yōu)化壓縮中所涉及的信號(hào)處理和計(jì)算密集型功能,實(shí)現(xiàn)對(duì)其的加速處理。本設(shè)計(jì)的最終目標(biāo)是證明在充分并行化的硬件體系結(jié)構(gòu) FPGA
    的頭像 發(fā)表于 07-10 11:09 ?1961次閱讀
    基于<b class='flag-5'>FPGA</b>的壓縮<b class='flag-5'>算法</b>加速<b class='flag-5'>實(shí)現(xiàn)</b>

    進(jìn)群免費(fèi)領(lǐng)FPGA學(xué)習(xí)資料!數(shù)字信號(hào)處理、傅里葉變換與FPGA開(kāi)發(fā)等

    ~ 01、數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn) 旨在講解前端數(shù)字信號(hào)處理算法的高效實(shí)現(xiàn)。首先概述了當(dāng)前的FPGA技術(shù)、器件以及用于設(shè)計(jì)最先進(jìn)DSP系
    發(fā)表于 04-07 16:41

    如何使用FPGA驅(qū)動(dòng)并行ADC和DAC芯片,使用不同編碼方式的ADC與DAC時(shí)的注意事項(xiàng)

    ADC和DAC是FPGA與外部信號(hào)的接口,從數(shù)據(jù)接口類(lèi)型的角度劃分,有低速的串行接口和高速并行接口。FPGA經(jīng)常用來(lái)采集中高頻信號(hào),因此使用并行
    的頭像 發(fā)表于 03-14 13:54 ?1685次閱讀
    如何使用<b class='flag-5'>FPGA</b>驅(qū)動(dòng)<b class='flag-5'>并行</b>ADC和DAC芯片,使用不同編碼方式的ADC與DAC時(shí)的注意事項(xiàng)

    當(dāng)我問(wèn)DeepSeek AI爆發(fā)時(shí)代的FPGA是否重要?答案是......

    在AI時(shí)代,FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)具有極其重要的地位,主要體現(xiàn)在以下幾個(gè)方面: 1.硬件加速與高效能 ? 并行處理能力:FPGA內(nèi)部由大量可編程邏輯單元組成,能夠實(shí)現(xiàn)高度
    發(fā)表于 02-19 13:55

    FPGA在磁致伸縮位移傳感器中的應(yīng)用

    FPGA在磁致伸縮位移傳感器中用于信號(hào)處理、數(shù)據(jù)采集等,其高并行處理、可編程性提升了傳感器速度、精度,支持復(fù)雜算法,實(shí)現(xiàn)實(shí)時(shí)控制,優(yōu)化系統(tǒng)響應(yīng),是傳感器高效、精準(zhǔn)、智能化的核心。
    的頭像 發(fā)表于 02-17 14:48 ?623次閱讀

    FPGA上的圖像處理算法集成與優(yōu)化

    、Tophat形態(tài)學(xué)濾波、RAW8轉(zhuǎn)RGB888、彩色圖像均值濾波、Alpha背景疊加、直方圖灰度拉伸算法以及自動(dòng)白平衡算法。每種算法都提供
    的頭像 發(fā)表于 02-14 13:46 ?1068次閱讀
    <b class='flag-5'>FPGA</b>上的圖像處理<b class='flag-5'>算法</b>集成與優(yōu)化

    FPGA 實(shí)時(shí)信號(hào)處理應(yīng)用 FPGA在圖像處理中的優(yōu)勢(shì)

    優(yōu)勢(shì)之一是其并行處理能力。與傳統(tǒng)的CPU或GPU相比,FPGA可以同時(shí)執(zhí)行多個(gè)操作,這在圖像處理中尤為重要,因?yàn)閳D像處理通常涉及大量的并行數(shù)據(jù)流和復(fù)雜的算法。例如,在進(jìn)行圖像
    的頭像 發(fā)表于 12-02 10:01 ?2239次閱讀

    FPGA進(jìn)行多路并行插值濾波(多相濾波)的實(shí)現(xiàn)原理

    多相濾波器的基本概念是把FIR濾波器分割成若干較小的單元,然后組合這些單元的結(jié)果。首先,讓我們考慮一個(gè)基于常規(guī)8抽頭FIR濾波器的抽取子系統(tǒng)的符號(hào)表示,如圖11所示(為了使用這些例子,我們假設(shè)抽取
    的頭像 發(fā)表于 11-28 09:55 ?1567次閱讀
    <b class='flag-5'>FPGA</b>進(jìn)行多路<b class='flag-5'>并行</b>插值<b class='flag-5'>濾波</b>(多相<b class='flag-5'>濾波</b>)的<b class='flag-5'>實(shí)現(xiàn)</b>原理

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡(jiǎn)介

    、AI芯片、多媒體處理芯片等)都是由四則運(yùn)算器、濾波器、特殊信號(hào)發(fā)生器等基本算法電路構(gòu)成的,熟練掌握這些基本算法電路是實(shí)現(xiàn)復(fù)雜
    發(fā)表于 11-21 17:14