在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

FPGA學(xué)習(xí)-基于FIFO的行緩存結(jié)構(gòu)

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2022-05-10 09:59 ? 次閱讀

像素行與像素窗口

一幅圖像是由一個(gè)個(gè)像素點(diǎn)構(gòu)成的,對(duì)于一幅480*272大小的圖片來(lái)說(shuō),其寬度是480,高度是272。在使用FPGA進(jìn)行圖像處理時(shí),最關(guān)鍵的就是使用FPGA內(nèi)部的存儲(chǔ)資源對(duì)像素行進(jìn)行緩存與變換。由于在圖像處理過(guò)程中,經(jīng)常會(huì)使用到卷積,因此需要對(duì)圖像進(jìn)行開(kāi)窗,然后將開(kāi)窗得到的局部圖像與卷積核進(jìn)行卷積,從而完成處理。

圖像數(shù)據(jù)一般按照一定的格式和時(shí)序進(jìn)行傳輸,在我進(jìn)行實(shí)驗(yàn)的時(shí)候,處理圖像時(shí),讓其以VGA的時(shí)序來(lái)進(jìn)行工作,這樣能夠?yàn)槲姨幚硇芯彺嫣峁┍憷?/p>

基于FIFO的行緩存結(jié)構(gòu)

4d8ab88a-d003-11ec-bce3-dac502259ad0.png

在FPGA中對(duì)圖像的一行數(shù)據(jù)進(jìn)行緩存時(shí),可以采用FIFO這一結(jié)構(gòu),如上圖所示,新一行圖像數(shù)據(jù)流入到FIFO1中,F(xiàn)IFO1中會(huì)對(duì)圖像數(shù)據(jù)進(jìn)行緩存,當(dāng)FIFO1中緩存有一行圖像數(shù)據(jù)時(shí),在下一行圖像數(shù)據(jù)來(lái)臨的時(shí)候,將FIFO1中緩存的圖像數(shù)據(jù)讀出,并傳遞給下一個(gè)FIFO,于此同時(shí),將新一行的圖像數(shù)據(jù)緩存到FIFO1中,這樣就能完成多行圖像的緩存。

若要緩存多行圖像,下面的菊花鏈?zhǔn)降慕Y(jié)果更能夠直觀地表現(xiàn)圖像數(shù)據(jù)地流向。

4da3f0f2-d003-11ec-bce3-dac502259ad0.png

新輸入地圖像緩存到FIFO1當(dāng)中,當(dāng)FIFO中緩存有一行數(shù)據(jù)的時(shí)候,下一個(gè)輸入像素來(lái)臨的時(shí)候,會(huì)將數(shù)據(jù)從本FIFO中讀出,并給到下一個(gè)FIFO,來(lái)形成類似于一個(gè)流水線的結(jié)構(gòu)。

上面的圖中,就是實(shí)現(xiàn)一個(gè)5X5大小的窗口的一個(gè)結(jié)構(gòu)圖。

代碼設(shè)計(jì)

實(shí)現(xiàn)一個(gè)可以生成任意尺寸大小的開(kāi)窗的模塊,需要注意參數(shù)的使用,可以通過(guò)調(diào)節(jié)KSZ來(lái)調(diào)整窗口的大小。最終將窗口中的圖像像素,轉(zhuǎn)換成一個(gè)一維的數(shù)據(jù)輸出給到下一個(gè)模塊。

在設(shè)計(jì)的時(shí)候,對(duì)于FIFO要選擇精準(zhǔn)計(jì)數(shù)模式,這樣才能讓流水正常工作起來(lái)。

在代碼中通過(guò)generate語(yǔ)句來(lái)實(shí)現(xiàn)多個(gè)line_buffer的例化,line buffer的個(gè)數(shù)可以根據(jù)卷積窗口的大小來(lái)選擇,例如3X3大小的卷積窗口需要緩存兩行,5X5大小的卷積窗口需要緩存4行,可以通過(guò)設(shè)置參數(shù)來(lái)選擇要例化多少個(gè)line_buffer。

4dbe4a06-d003-11ec-bce3-dac502259ad0.png

時(shí)序設(shè)計(jì)

4dd01cfe-d003-11ec-bce3-dac502259ad0.png

在設(shè)計(jì)FIFO的菊花鏈結(jié)構(gòu)時(shí),需要根據(jù)當(dāng)前FIFO中存儲(chǔ)的數(shù)據(jù)個(gè)數(shù)來(lái)判斷,這時(shí)候使用到精準(zhǔn)計(jì)數(shù)模式,可以反應(yīng)FIFO中的存儲(chǔ)的數(shù)據(jù)。當(dāng)FIFO中存儲(chǔ)有一行數(shù)據(jù)的時(shí)候,使能pop_en信號(hào),表示當(dāng)前可以將數(shù)據(jù)從FIFO中讀出。

在將數(shù)據(jù)寫入到FIFO中的時(shí)候,需要對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充,也即需要對(duì)輸入的圖像的邊界補(bǔ)充數(shù)據(jù),因?yàn)檫M(jìn)行卷積之后的圖像將會(huì)比原始圖像數(shù)據(jù)尺寸減少,因此在形成卷積窗口時(shí),將圖像擴(kuò)充,能夠讓圖像處理完成之后,保持原來(lái)的尺寸,只是會(huì)在邊界出現(xiàn)黑邊。

win_buf這個(gè)模塊的最終輸出,就是一個(gè)矩陣內(nèi)的所有像素,組成一個(gè)信號(hào)輸出到外部,供進(jìn)行卷積的處理。

4de75cfc-d003-11ec-bce3-dac502259ad0.png

4dfd3586-d003-11ec-bce3-dac502259ad0.png

4e222b66-d003-11ec-bce3-dac502259ad0.png

4e352892-d003-11ec-bce3-dac502259ad0.png

4e52d77a-d003-11ec-bce3-dac502259ad0.png

4e720ef6-d003-11ec-bce3-dac502259ad0.png

4e94a31c-d003-11ec-bce3-dac502259ad0.png

4eac8b26-d003-11ec-bce3-dac502259ad0.png

4ec1763a-d003-11ec-bce3-dac502259ad0.png

4ed810f2-d003-11ec-bce3-dac502259ad0.png

4f0223c4-d003-11ec-bce3-dac502259ad0.png

4f178a48-d003-11ec-bce3-dac502259ad0.png

4f30dc6e-d003-11ec-bce3-dac502259ad0.png

4f4959a6-d003-11ec-bce3-dac502259ad0.png

仿真驗(yàn)證

4f5fbd72-d003-11ec-bce3-dac502259ad0.png

輸入的第三行數(shù)據(jù)的前三個(gè)數(shù)據(jù)是:0x00,0x78,0x7c

輸入的第二行數(shù)據(jù)的前三個(gè)數(shù)據(jù)是:0x00,0x7d,0x7d

輸入的第一行數(shù)據(jù)的前三個(gè)數(shù)據(jù)是:0x00,0x7e,0x7f

輸出的第一個(gè)矩陣的值是:0x0078_7c00_7d7d_007e_7f

輸入行數(shù)據(jù)第一個(gè)數(shù)據(jù)是0x00這是因?yàn)閿U(kuò)充了邊界的原因。

可以看到,設(shè)置KSZ為3,可以得到一個(gè)位寬為72bit的輸出數(shù)據(jù),該數(shù)據(jù)包含了一個(gè)窗口中的9個(gè)數(shù)據(jù)。

5X5開(kāi)窗

4f813506-d003-11ec-bce3-dac502259ad0.png

設(shè)置開(kāi)窗大小為5x5之后,也可以看到輸出信號(hào)的位寬變?yōu)榱?*25=200bit,也就是一個(gè)5X5大小的矩陣中的數(shù)據(jù)。

輸入的第5行數(shù)據(jù)的前5個(gè)數(shù)據(jù)是:0x00,0x00,0x7e,0x7c,0x7f

輸入的第4行數(shù)據(jù)的前5個(gè)數(shù)據(jù)是:0x00,0x00,0x7e,0x7e,0x7e,

輸入的第3行數(shù)據(jù)的前5個(gè)數(shù)據(jù)是:0x00,0x00,0x78,0x7c,0x7c

輸入的第2行數(shù)據(jù)的前5個(gè)數(shù)據(jù)是:0x00,0x00,0x7d,0x7d,0x7a

輸入的第1行數(shù)據(jù)的前5個(gè)數(shù)據(jù)是:0x00,0x00,0x7e,0x7f,0x7d

從輸出結(jié)果看,輸出的矩陣數(shù)據(jù),剛好是這5行的前5數(shù)據(jù),并且前兩個(gè)數(shù)據(jù)是0x00,這是因?yàn)樵诿恳恍星懊嫜a(bǔ)充了兩個(gè)0的原因。

經(jīng)過(guò)測(cè)試,這種開(kāi)窗算子是能夠完成任意此村的開(kāi)窗的。

實(shí)際應(yīng)用

在實(shí)際應(yīng)用中,我也將這個(gè)模塊正確地使用上了,完成了一個(gè)3x3的sobel算子和5x5的均值濾波。

原始圖像

4fa373be-d003-11ec-bce3-dac502259ad0.png

3x3 Sobel

4fdb32ea-d003-11ec-bce3-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)注

    1640

    文章

    21887

    瀏覽量

    610895
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1318

    瀏覽量

    57428

原文標(biāo)題:FPGA學(xué)習(xí)-圖像處理基礎(chǔ)實(shí)現(xiàn)緩存卷積窗口

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGAFIFO實(shí)現(xiàn)

    FIFO(First in First out)為先進(jìn)先出隊(duì)列,具有存儲(chǔ)功能,可用于不同時(shí)鐘域間傳輸數(shù)據(jù)以及不同的數(shù)據(jù)寬度進(jìn)行數(shù)據(jù)匹配。如其名稱,數(shù)據(jù)傳輸為單向,從一側(cè)進(jìn)入,再?gòu)牧硪粋?cè)出來(lái),出來(lái)的順序和進(jìn)入的順序相同。
    的頭像 發(fā)表于 04-09 09:55 ?220次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>FIFO</b>實(shí)現(xiàn)

    AXI接口FIFO簡(jiǎn)介

    AXI接口FIFO是從Native接口FIFO派生而來(lái)的。AXI內(nèi)存映射接口提供了三種樣式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的應(yīng)用外,AXI FIFO
    的頭像 發(fā)表于 03-17 10:31 ?602次閱讀
    AXI接口<b class='flag-5'>FIFO</b>簡(jiǎn)介

    使用SCL編寫FIFO功能塊

    找到相關(guān)的指令。 ? ?其實(shí)要實(shí)現(xiàn)這個(gè)功能可直接使用SCL的編程方法編寫一個(gè)這樣的功能塊就可以了,(在文章的結(jié)尾會(huì)為大家提供參考示例程序和SCL相關(guān)的學(xué)習(xí)資料,供有需要的朋友下載學(xué)習(xí))。 二、FIFO功能的條件分析? 1)設(shè)置一
    的頭像 發(fā)表于 02-09 10:27 ?395次閱讀
    使用SCL編寫<b class='flag-5'>FIFO</b>功能塊

    FPGA圖像處理基礎(chǔ)----實(shí)現(xiàn)緩存卷積窗口

    像素行與像素窗口 一幅圖像是由一個(gè)個(gè)像素點(diǎn)構(gòu)成的,對(duì)于一幅480*272大小的圖片來(lái)說(shuō),其寬度是480,高度是272。在使用FPGA進(jìn)行圖像處理時(shí),最關(guān)鍵的就是使用FPGA內(nèi)部的存儲(chǔ)資源對(duì)像
    的頭像 發(fā)表于 02-07 10:43 ?481次閱讀
    <b class='flag-5'>FPGA</b>圖像處理基礎(chǔ)----實(shí)現(xiàn)<b class='flag-5'>緩存</b>卷積窗口

    FIFO IP核的使用教程

    在數(shù)字設(shè)計(jì)中,利用FIFO進(jìn)行數(shù)據(jù)處理是非常普遍的應(yīng)用,例如,實(shí)現(xiàn)時(shí)鐘域交叉、低延時(shí)存儲(chǔ)器緩存、總線位寬調(diào)整等。下圖給出了FIFO生成器支持的一種可能配置。
    的頭像 發(fā)表于 01-03 09:36 ?2342次閱讀
    <b class='flag-5'>FIFO</b> IP核的使用教程

    HTTP緩存頭的使用 本地緩存與遠(yuǎn)程緩存的區(qū)別

    HTTP緩存頭是一組HTTP響應(yīng)頭,它們控制瀏覽器和中間代理服務(wù)器如何緩存網(wǎng)頁(yè)內(nèi)容。合理使用HTTP緩存頭可以顯著提高網(wǎng)站的加載速度和性能,減少服務(wù)器的負(fù)載。 1. HTTP緩存頭概述
    的頭像 發(fā)表于 12-18 09:41 ?328次閱讀

    緩存之美——如何選擇合適的本地緩存

    Guava cache是Google開(kāi)發(fā)的Guava工具包中一套完善的JVM本地緩存框架,底層實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)類似于ConcurrentHashMap,但是進(jìn)行了更多的能力拓展,包括緩存過(guò)期時(shí)間設(shè)置、
    的頭像 發(fā)表于 11-17 14:24 ?629次閱讀
    <b class='flag-5'>緩存</b>之美——如何選擇合適的本地<b class='flag-5'>緩存</b>?

    FIFO Generator的Xilinx官方手冊(cè)

    FIFO作為FPGA崗位求職過(guò)程中最常被問(wèn)到的基礎(chǔ)知識(shí)點(diǎn),也是項(xiàng)目中最常被使用到的IP,其意義是非常重要的。本文基于對(duì)FIFO Generator的Xilinx官方手冊(cè)的閱讀與總結(jié),匯總主要知識(shí)點(diǎn)
    的頭像 發(fā)表于 11-12 10:46 ?1271次閱讀
    <b class='flag-5'>FIFO</b> Generator的Xilinx官方手冊(cè)

    詳解FPGA的基本結(jié)構(gòu)

    ZYNQ PL 部分等價(jià)于 Xilinx 7 系列 FPGA,因此我們將首先介紹 FPGA 的架構(gòu)。簡(jiǎn)化的 FPGA 基本結(jié)構(gòu)由 6 部分組成,分別為可編程輸入/輸出單元、基本可編程邏
    的頭像 發(fā)表于 10-25 16:50 ?2605次閱讀
    詳解<b class='flag-5'>FPGA</b>的基本<b class='flag-5'>結(jié)構(gòu)</b>

    FIFO的深度應(yīng)該怎么計(jì)算

    FIFOFPGA/IC設(shè)計(jì)中經(jīng)常使用到的模塊,它經(jīng)常被用在兩個(gè)模塊之間進(jìn)行數(shù)據(jù)的緩存,以避免數(shù)據(jù)在傳輸過(guò)程中丟失。同時(shí)FIFO也經(jīng)常被用在跨時(shí)鐘域處理中。
    的頭像 發(fā)表于 10-25 15:20 ?734次閱讀
    <b class='flag-5'>FIFO</b>的深度應(yīng)該怎么計(jì)算

    FPGA加速深度學(xué)習(xí)模型的案例

    FPGA(現(xiàn)場(chǎng)可編程門陣列)加速深度學(xué)習(xí)模型是當(dāng)前硬件加速領(lǐng)域的一個(gè)熱門研究方向。以下是一些FPGA加速深度學(xué)習(xí)模型的案例: 一、基于FPGA
    的頭像 發(fā)表于 10-25 09:22 ?828次閱讀

    Efinity FIFO IP仿真問(wèn)題 -v1

    文件。 如果生成默認(rèn)的IP或者自己的IP,目前FIFO的IP仿真可能會(huì)有一個(gè)錯(cuò)誤 。提示在fifo_tb.sv的409沒(méi)有rd_valid_o和almost_empty_o 這是因?yàn)榉抡嫖募荒芊抡?/div>
    的頭像 發(fā)表于 10-21 11:41 ?1359次閱讀
    Efinity <b class='flag-5'>FIFO</b> IP仿真問(wèn)題 -v1

    如何使用FX3同步從屬fifo模式通過(guò)FPGA傳輸傳感器數(shù)據(jù)?

    我們正試圖使用 FX3 同步從屬 fifo 模式通過(guò) FPGA 傳輸傳感器數(shù)據(jù)。 USB type-C 接口需要選擇一個(gè)多路復(fù)用器來(lái)決定使用哪一邊的 USB。 因此,我們考慮使用 FX3 GPIO
    發(fā)表于 07-17 08:04

    FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理

    傳感器芯片連接獲得圖像數(shù)據(jù)流,如果是RAW格式的則還可以進(jìn)行差值以獲得RGB圖像數(shù)據(jù)。FPGA能進(jìn)行實(shí)時(shí)流水線處理的關(guān)鍵是它可以用其內(nèi)部的Block Ram緩存若干的圖像數(shù)據(jù)。這個(gè)Block Ram
    發(fā)表于 06-12 16:26

    同步FIFO和異步FIFO區(qū)別介紹

    1. FIFO簡(jiǎn)介 FIFO是一種先進(jìn)先出數(shù)據(jù)緩存器,它與普通存儲(chǔ)器的區(qū)別是沒(méi)有外部讀寫地址線,使用起來(lái)非常簡(jiǎn)單,缺點(diǎn)是只能順序讀寫,而不能隨機(jī)讀寫。 2. 使用場(chǎng)景 數(shù)據(jù)緩沖:也就是數(shù)據(jù)寫入過(guò)快
    的頭像 發(fā)表于 06-04 14:27 ?2285次閱讀
    同步<b class='flag-5'>FIFO</b>和異步<b class='flag-5'>FIFO</b>區(qū)別介紹
    主站蜘蛛池模板: 色男人综合 | 色亚洲色图 | www.五月激情 | 99久久精品国产自免费 | 亚洲w码欧洲s码免费 | 久久久久大香线焦 | 欧美不卡在线视频 | 九色国产在视频线精品视频 | 欧美性狂猛bbbbbxxxxx | 欧美成人精品一区二区 | 日韩免费 | 在线伊人网 | 77se77亚洲欧美在线大屁股 | 黄色三级三级三级免费看 | 香蕉狠狠再啪线视频 | 天天干b | 黄色网址播放 | 日本不卡一区二区三区在线观看 | 国产18到20岁美女毛片 | 伊人网站在线观看 | 日本一区不卡视频 | 国产簧片| 欧美xxxx性疯狂bbbb | 国产欧美精品午夜在线播放 | 欧美尺寸又黑又粗又长 | 久久久黄色片 | 456成人网| 色成网| 天天操夜夜操视频 | 一区一精品 | 天天干天天舔天天操 | 日本黄色录象 | 亚洲日韩图片专区第1页 | 六月丁香啪啪六月激情 | 日韩毛片在线视频 | 五月婷婷六月色 | 欧美黄三级在线观看 | 男女交黄 | 秋霞特色大片18入口私人高清 | 1024成人 | 免费特黄|