国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA學習-基于FIFO的行緩存結構

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2022-05-10 09:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

像素行與像素窗口

一幅圖像是由一個個像素點構成的,對于一幅480*272大小的圖片來說,其寬度是480,高度是272。在使用FPGA進行圖像處理時,最關鍵的就是使用FPGA內部的存儲資源對像素行進行緩存與變換。由于在圖像處理過程中,經常會使用到卷積,因此需要對圖像進行開窗,然后將開窗得到的局部圖像與卷積核進行卷積,從而完成處理。

圖像數據一般按照一定的格式和時序進行傳輸,在我進行實驗的時候,處理圖像時,讓其以VGA的時序來進行工作,這樣能夠為我處理行緩存提供便利。

基于FIFO的行緩存結構

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

在FPGA中對圖像的一行數據進行緩存時,可以采用FIFO這一結構,如上圖所示,新一行圖像數據流入到FIFO1中,FIFO1中會對圖像數據進行緩存,當FIFO1中緩存有一行圖像數據時,在下一行圖像數據來臨的時候,將FIFO1中緩存的圖像數據讀出,并傳遞給下一個FIFO,于此同時,將新一行的圖像數據緩存到FIFO1中,這樣就能完成多行圖像的緩存。

若要緩存多行圖像,下面的菊花鏈式的結果更能夠直觀地表現圖像數據地流向。

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

新輸入地圖像緩存到FIFO1當中,當FIFO中緩存有一行數據的時候,下一個輸入像素來臨的時候,會將數據從本FIFO中讀出,并給到下一個FIFO,來形成類似于一個流水線的結構。

上面的圖中,就是實現一個5X5大小的窗口的一個結構圖。

代碼設計

實現一個可以生成任意尺寸大小的開窗的模塊,需要注意參數的使用,可以通過調節KSZ來調整窗口的大小。最終將窗口中的圖像像素,轉換成一個一維的數據輸出給到下一個模塊。

在設計的時候,對于FIFO要選擇精準計數模式,這樣才能讓流水正常工作起來。

在代碼中通過generate語句來實現多個line_buffer的例化,line buffer的個數可以根據卷積窗口的大小來選擇,例如3X3大小的卷積窗口需要緩存兩行,5X5大小的卷積窗口需要緩存4行,可以通過設置參數來選擇要例化多少個line_buffer。

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

時序設計

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

在設計FIFO的菊花鏈結構時,需要根據當前FIFO中存儲的數據個數來判斷,這時候使用到精準計數模式,可以反應FIFO中的存儲的數據。當FIFO中存儲有一行數據的時候,使能pop_en信號,表示當前可以將數據從FIFO中讀出。

在將數據寫入到FIFO中的時候,需要對數據進行擴充,也即需要對輸入的圖像的邊界補充數據,因為進行卷積之后的圖像將會比原始圖像數據尺寸減少,因此在形成卷積窗口時,將圖像擴充,能夠讓圖像處理完成之后,保持原來的尺寸,只是會在邊界出現黑邊。

win_buf這個模塊的最終輸出,就是一個矩陣內的所有像素,組成一個信號輸出到外部,供進行卷積的處理。

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

仿真驗證

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

輸入的第三行數據的前三個數據是:0x00,0x78,0x7c

輸入的第二行數據的前三個數據是:0x00,0x7d,0x7d

輸入的第一行數據的前三個數據是:0x00,0x7e,0x7f

輸出的第一個矩陣的值是:0x0078_7c00_7d7d_007e_7f

輸入行數據第一個數據是0x00這是因為擴充了邊界的原因。

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

5X5開窗

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

設置開窗大小為5x5之后,也可以看到輸出信號的位寬變為了8*25=200bit,也就是一個5X5大小的矩陣中的數據。

輸入的第5行數據的前5個數據是:0x00,0x00,0x7e,0x7c,0x7f

輸入的第4行數據的前5個數據是:0x00,0x00,0x7e,0x7e,0x7e,

輸入的第3行數據的前5個數據是:0x00,0x00,0x78,0x7c,0x7c

輸入的第2行數據的前5個數據是:0x00,0x00,0x7d,0x7d,0x7a

輸入的第1行數據的前5個數據是:0x00,0x00,0x7e,0x7f,0x7d

從輸出結果看,輸出的矩陣數據,剛好是這5行的前5數據,并且前兩個數據是0x00,這是因為在每一行前面補充了兩個0的原因。

經過測試,這種開窗算子是能夠完成任意此村的開窗的。

實際應用

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

原始圖像

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

3x3 Sobel

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

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22412

    瀏覽量

    636285
  • 圖像處理
    +關注

    關注

    29

    文章

    1342

    瀏覽量

    59512

原文標題:FPGA學習-圖像處理基礎實現緩存卷積窗口

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言的緩沖區(緩存)詳解

    填滿標準I/O緩存后才進行實際I/O操作。全緩沖的典型代表是對磁盤文件的讀寫。   2) 緩沖   在這種情況下,當在輸入和輸出中遇到換行符時,執行真正的I/O操作。這時,我們輸入的字符先存
    發表于 01-14 07:30

    基于FPGA的高效內存到串行數據傳輸模塊設計

    本文介紹了一個基于FPGA的內存到串行數據傳輸模塊,該模塊設計用來高效地處理存儲器中的數據并傳輸至串行接口。項目中自定義的“datamover_mm2s_fpga_”方案利用異步FIFO結構
    的頭像 發表于 11-12 14:31 ?4330次閱讀
    基于<b class='flag-5'>FPGA</b>的高效內存到串行數據傳輸模塊設計

    緩存之美:萬文詳解 Caffeine 實現原理(上)

    文章將采用“總-分-總”的結構對配置固定大小元素驅逐策略的 Caffeine 緩存進行介紹,首先會講解它的實現原理,在大家對它有一個概念之后再深入具體源碼的細節之中,理解它的設計理念,從中能學習
    的頭像 發表于 08-05 14:49 ?702次閱讀
    <b class='flag-5'>緩存</b>之美:萬文詳解 Caffeine 實現原理(上)

    FPGA在機器學習中的具體應用

    隨著機器學習和人工智能技術的迅猛發展,傳統的中央處理單元(CPU)和圖形處理單元(GPU)已經無法滿足高效處理大規模數據和復雜模型的需求。FPGA(現場可編程門陣列)作為一種靈活且高效的硬件加速平臺
    的頭像 發表于 07-16 15:34 ?2889次閱讀

    高性能緩存設計:如何解決緩存偽共享問題

    緩存,引發無效化風暴,使看似無關的變量操作拖慢整體效率。本文從緩存結構原理出發,通過實驗代碼復現偽共享問題(耗時從3709ms優化至473ms),解析其底層機制;同時深入剖析高性能
    的頭像 發表于 07-01 15:01 ?762次閱讀
    高性能<b class='flag-5'>緩存</b>設計:如何解決<b class='flag-5'>緩存</b>偽共享問題

    FPGA的定義和基本結構

    專用集成電路( ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。 簡而言之, FPGA 就是一個可以通過編程來改變內部結構的芯片。
    的頭像 發表于 05-15 16:39 ?2645次閱讀
    <b class='flag-5'>FPGA</b>的定義和基本<b class='flag-5'>結構</b>

    請問如何增大usb3.0從設備fifo接口固件中的寫dma緩存大小?

    現有的固件是默認的,分別配置了2個1KB的緩存給讀和寫的dma。我想要多分配一點緩存給寫dma,比如分配4kB給寫dma。請教一下該如何修改ez usb suite中的參數。
    發表于 05-14 08:13

    cyusb3014 slave fifo模式In和Out緩存大小不一樣時,顯示錯誤怎么解決?

    cyusb3014 slave fifo 模式 In 和 Out 緩存大小設置不一樣時(比如:U2P DMA緩存16K,P2U DMA緩存1K),可以測出來實際就是設置值,但在USB
    發表于 05-13 06:55

    MCU緩存設計

    MCU 設計通過優化指令與數據的訪問效率,顯著提升系統性能并降低功耗,其核心架構與實現策略如下: 一、緩存類型與結構 指令緩存(I-Cache)與數據緩存(D-Cache)? I-Ca
    的頭像 發表于 05-07 15:29 ?1111次閱讀

    Nginx緩存配置詳解

    Nginx 是一個功能強大的 Web 服務器和反向代理服務器,它可以用于實現靜態內容的緩存緩存可以分為客戶端緩存和服務端緩存
    的頭像 發表于 05-07 14:03 ?1247次閱讀
    Nginx<b class='flag-5'>緩存</b>配置詳解

    智多晶FIFO_Generator IP介紹

    FIFO_Generator是智多晶設計的一款通用型FIFO IP。當前發布的FIFO_Generator IP是2.0版本,相比之前的1.1版本主要新增了非等比輸入輸出數據位寬支持和異步FI
    的頭像 發表于 04-25 17:24 ?1813次閱讀
    智多晶<b class='flag-5'>FIFO</b>_Generator IP介紹

    基于FPGAFIFO實現

    FIFO(First in First out)為先進先出隊列,具有存儲功能,可用于不同時鐘域間傳輸數據以及不同的數據寬度進行數據匹配。如其名稱,數據傳輸為單向,從一側進入,再從另一側出來,出來的順序和進入的順序相同。
    的頭像 發表于 04-09 09:55 ?1456次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>FIFO</b>實現

    nginx中強緩存和協商緩存介紹

    緩存直接告訴瀏覽器:在緩存過期前,無需與服務器通信,直接使用本地緩存
    的頭像 發表于 04-01 16:01 ?986次閱讀

    AXI接口FIFO簡介

    AXI接口FIFO是從Native接口FIFO派生而來的。AXI內存映射接口提供了三種樣式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的應用外,AXI FIFO
    的頭像 發表于 03-17 10:31 ?2127次閱讀
    AXI接口<b class='flag-5'>FIFO</b>簡介

    解鎖TSMaster fifo函數:報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調函數模式和fifo模式。fifo函數是TSMaster近期新增的函數,本文將重點介紹fifo模塊。關于回調函數的使用方法可以參考幫助模塊的《快速
    的頭像 發表于 03-14 20:04 ?1149次閱讀
    解鎖TSMaster <b class='flag-5'>fifo</b>函數:報文讀取的高效方法