日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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)行開窗,然后將開窗得到的局部圖像與卷積核進(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è)可以生成任意尺寸大小的開窗的模塊,需要注意參數(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開窗

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

設(shè)置開窗大小為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è)試,這種開窗算子是能夠完成任意此村的開窗的。

實(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)注

    1664

    文章

    22509

    瀏覽量

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

    關(guān)注

    29

    文章

    1350

    瀏覽量

    59721

原文標(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)推薦
    熱點(diǎn)推薦

    京東緩存中間件架構(gòu)與緩存內(nèi)核優(yōu)化

    一、京東緩存中間件架構(gòu) 1、背景 在當(dāng)今高并發(fā)、分布式的系統(tǒng)架構(gòu)中,緩存已成為提升應(yīng)用性能、降低數(shù)據(jù)庫(kù)負(fù)載的核心組件。隨著業(yè)務(wù)規(guī)模的擴(kuò)大與系統(tǒng)復(fù)雜度的增加,緩存的使用和管理面臨諸多挑戰(zhàn):部署模式多樣
    的頭像 發(fā)表于 04-03 16:18 ?1830次閱讀
    京東<b class='flag-5'>緩存</b>中間件架構(gòu)與<b class='flag-5'>緩存</b>內(nèi)核優(yōu)化

    C語(yǔ)言的緩沖區(qū)(緩存)詳解

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

    基于FPGA的高效內(nèi)存到串行數(shù)據(jù)傳輸模塊設(shè)計(jì)

    本文介紹了一個(gè)基于FPGA的內(nèi)存到串行數(shù)據(jù)傳輸模塊,該模塊設(shè)計(jì)用來(lái)高效地處理存儲(chǔ)器中的數(shù)據(jù)并傳輸至串行接口。項(xiàng)目中自定義的“datamover_mm2s_fpga_”方案利用異步FIFO結(jié)構(gòu)
    的頭像 發(fā)表于 11-12 14:31 ?4541次閱讀
    基于<b class='flag-5'>FPGA</b>的高效內(nèi)存到串行數(shù)據(jù)傳輸模塊設(shè)計(jì)

    開源RISC-V處理器(蜂鳥E203)學(xué)習(xí)(二)修改FPGA綜合環(huán)境(移植到自己的Xilinx FPGA板卡)

    1.簡(jiǎn)述 首先感謝芯來(lái)開源了蜂鳥E203 risc-v處理器,提供了比較完整的工程環(huán)境、配套的軟硬件。但是配套的FPGA板卡實(shí)在太貴,對(duì)于自費(fèi)學(xué)習(xí)的來(lái)說(shuō)是不小的學(xué)習(xí)成本,而且我也認(rèn)為完備環(huán)境
    發(fā)表于 10-31 08:46

    FPGA的圖像采集過(guò)程

    模塊設(shè)計(jì)時(shí)寫操作用了一個(gè)片內(nèi)FIFO作為寫緩存,并設(shè)計(jì)了向FIFO寫數(shù)據(jù)模塊將配置數(shù)據(jù)寫入FIFO中,之后模塊產(chǎn)生SPI時(shí)序完成一次寫操作。讀操作時(shí)用了一個(gè)片內(nèi)RAM作為寄存器數(shù)據(jù)讀
    發(fā)表于 10-29 06:23

    緩存之美:萬(wàn)文詳解 Caffeine 實(shí)現(xiàn)原理(上)

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

    FPGA在機(jī)器學(xué)習(xí)中的具體應(yīng)用

    隨著機(jī)器學(xué)習(xí)和人工智能技術(shù)的迅猛發(fā)展,傳統(tǒng)的中央處理單元(CPU)和圖形處理單元(GPU)已經(jīng)無(wú)法滿足高效處理大規(guī)模數(shù)據(jù)和復(fù)雜模型的需求。FPGA(現(xiàn)場(chǎng)可編程門陣列)作為一種靈活且高效的硬件加速平臺(tái)
    的頭像 發(fā)表于 07-16 15:34 ?3120次閱讀

    【RK3568+PG2L50H開發(fā)板實(shí)驗(yàn)例程】FPGA部分 | ROM、RAM、FIFO 的使用

    ROM 數(shù)據(jù)。 2.3. FIFO 介紹 FIFO 即先入先出,在 FPGA 中,FIFO 的作用就是對(duì)存儲(chǔ)進(jìn)來(lái)的數(shù)據(jù)具有一個(gè)先入先出特性的一個(gè)
    發(fā)表于 07-10 10:37

    高性能緩存設(shè)計(jì):如何解決緩存偽共享問(wèn)題

    緩存,引發(fā)無(wú)效化風(fēng)暴,使看似無(wú)關(guān)的變量操作拖慢整體效率。本文從緩存結(jié)構(gòu)原理出發(fā),通過(guò)實(shí)驗(yàn)代碼復(fù)現(xiàn)偽共享問(wèn)題(耗時(shí)從3709ms優(yōu)化至473ms),解析其底層機(jī)制;同時(shí)深入剖析高性能
    的頭像 發(fā)表于 07-01 15:01 ?904次閱讀
    高性能<b class='flag-5'>緩存</b>設(shè)計(jì):如何解決<b class='flag-5'>緩存</b>偽共享問(wèn)題

    MAX14830四通道串行UART,具有128字FIFO技術(shù)手冊(cè)

    MAX14830是一款先進(jìn)的四通道通用異步收發(fā)器(UART),每路UART帶有128字先入/先出(FIFO)接收和發(fā)送緩存器,以及高速串行外設(shè)接口(SPI?)或I2C控制器接口。PLL和分?jǐn)?shù)波特率發(fā)生器為波特率編程和參考時(shí)鐘選擇提供了極大靈活性。
    的頭像 發(fā)表于 05-22 10:14 ?1255次閱讀
    MAX14830四通道串行UART,具有128字<b class='flag-5'>FIFO</b>技術(shù)手冊(cè)

    FPGA的定義和基本結(jié)構(gòu)

    專用集成電路( ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。 簡(jiǎn)而言之, FPGA 就是一個(gè)可以通過(guò)編程來(lái)改變內(nèi)部結(jié)構(gòu)的芯片。
    的頭像 發(fā)表于 05-15 16:39 ?3004次閱讀
    <b class='flag-5'>FPGA</b>的定義和基本<b class='flag-5'>結(jié)構(gòu)</b>

    請(qǐng)問(wèn)如何增大usb3.0從設(shè)備fifo接口固件中的寫dma緩存大???

    現(xiàn)有的固件是默認(rèn)的,分別配置了2個(gè)1KB的緩存給讀和寫的dma。我想要多分配一點(diǎn)緩存給寫dma,比如分配4kB給寫dma。請(qǐng)教一下該如何修改ez usb suite中的參數(shù)。
    發(fā)表于 05-14 08:13

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

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

    MCU緩存設(shè)計(jì)

    MCU 設(shè)計(jì)通過(guò)優(yōu)化指令與數(shù)據(jù)的訪問(wèn)效率,顯著提升系統(tǒng)性能并降低功耗,其核心架構(gòu)與實(shí)現(xiàn)策略如下: 一、緩存類型與結(jié)構(gòu) 指令緩存(I-Cache)與數(shù)據(jù)緩存(D-Cache)? I-Ca
    的頭像 發(fā)表于 05-07 15:29 ?1309次閱讀

    Nginx緩存配置詳解

    Nginx 是一個(gè)功能強(qiáng)大的 Web 服務(wù)器和反向代理服務(wù)器,它可以用于實(shí)現(xiàn)靜態(tài)內(nèi)容的緩存緩存可以分為客戶端緩存和服務(wù)端緩存。
    的頭像 發(fā)表于 05-07 14:03 ?1398次閱讀
    Nginx<b class='flag-5'>緩存</b>配置詳解
    忻城县| 论坛| 阳朔县| 福州市| 文山县| 平遥县| 新河县| 武功县| 南阳市| 黑河市| 中宁县| 老河口市| 金山区| 大同县| 洪江市| 大港区| 招远市| 牡丹江市| 泰顺县| 泽库县| 天津市| 无极县| 利川市| 云梦县| 新津县| 三亚市| 泸州市| 三门峡市| 建始县| 菏泽市| 美姑县| 天水市| 勐海县| 会同县| 青冈县| 尼玛县| 江源县| 宜城市| 柯坪县| 同江市| 商丘市|