色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

基于直方圖算法進行FPGA架構設計

454398 ? 來源:AI加速微信公眾號 ? 作者:AI加速微信公眾號 ? 2020-12-10 16:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

直方圖統(tǒng)計在圖像增強和目標檢測領域有重要應用,比如直方圖均衡,梯度直方圖。直方圖的不同種類和統(tǒng)計方法請見之前的文章。本章就是用FPGA來進行直方圖的計算,并且利用FPGA的特性對計算過程進行加速。安排如下:

首先基于直方圖算法進行FPGA架構設計,這里主要考慮了如何加速以及FPGA資源的利用兩個因素;最后基于system Verilog搭建一個驗證系統(tǒng)。

FPGA設計架構

不論是圖像灰度直方圖還是梯度直方圖,本質(zhì)上是對數(shù)據(jù)的分布進行計數(shù)。從FPGA角度來看,只關心以下幾點:

1) 根據(jù)數(shù)據(jù)大小確定其分布區(qū)間,統(tǒng)計分布在不同區(qū)間的數(shù)據(jù)個數(shù),區(qū)間的大小可以調(diào)節(jié),比如灰度直方圖區(qū)間為1,梯度直方圖通常大于1;

2) 如何利用FPGA對直方圖統(tǒng)計進行加速,以及如何考慮到芯片有限資源;

首先來考慮加速方式,直方圖統(tǒng)計過程用偽代碼表示為:

For(int i=0;i Index = get_index(data[i]);
Hist[index]++;
}

Get_index函數(shù)是為了確定數(shù)據(jù)屬于哪個區(qū)間,如果區(qū)間大小為1,那么index就是數(shù)據(jù)自身。如果區(qū)間是平均分布,那么就需要進行數(shù)據(jù)的大小比較。如果區(qū)間大小是2的冪次,那么index只需要數(shù)據(jù)進行移位得到。

FPGA在加速計算中最主要就是利用并行化和流水線,并行化就是將一個任務拆解成多個子任務,多個子任務并行完成。而流水線是在處理一個子任務的時候,下一個來的子任務也可以進行處理,處理模塊不會等待。流水線本質(zhì)上是對子任務也進行“分割”,分割的每一塊可以在處理模塊中同時進行。

統(tǒng)計N個數(shù)據(jù),可以將N分成M份,在FPGA上同時進行M個統(tǒng)計,用偽代碼表示為:

For(int k=0;k //并行化
For(int i=0;i Index = get_index(data[k][i]);
Hist[k][index]++;
}
}

如果區(qū)間不是2的冪次,就需要比較器,這樣并行M次,就需要M個同等比較器,這對資源消耗很大。因此目前設計僅僅支持2的冪次的區(qū)間。整個設計架構如圖1.2。

圖2.1 流水線處理

圖2.2 直方圖統(tǒng)計架構

主要分為以下幾個模塊:

1)statis:這個是核心計算模塊,統(tǒng)計數(shù)據(jù)分布。ram中存放直方圖統(tǒng)計數(shù)據(jù),地址對應著數(shù)據(jù)分布區(qū)間。這里有一個問題需要考慮,在對ram中直方圖統(tǒng)計數(shù)據(jù)計數(shù)時,需要讀出然后計數(shù)。如果ram讀端口沒有寄存器,那么讀出來直接加1,再寫入。但是這樣并不好,因為ram不經(jīng)過寄存器時序不好。所以增加了一級寄存器,這樣就造成了寫入的延時,那么有可能下一次數(shù)據(jù)來臨也會讀取同樣地址的數(shù)據(jù),此時讀取到的直方圖數(shù)據(jù)就是還沒有寫入的。為了解決這個問題,判斷進入的前后兩個數(shù)據(jù)是否相同,如果相同就不寫入而繼續(xù)計數(shù),如果不同就寫入。并行多個statis模塊的代碼為:

genvar i;
generate
for(i=0;i

statis #(
.PIX_BW(PIX_BW),
.HIST_BW(HIST_BW),
.ADDR_BW(HIST_LEN_BW),
.BIN_W(BIN_W)

)u_statis(
.clk(clk),
.rst(rst),
.clr(clr),

.enable(1'b1),
.pix_valid(pix_valid),
.pix(img_i[i*PIX_BW +: PIX_BW]),

.hist_rd(branch_hist_rd),
.hist_raddr(branch_hist_raddr),
.hist(branch_hist[i*HIST_BW +: HIST_BW])
);

end
endgenerate

2)serders:這個是并轉(zhuǎn)串。M個statis模塊會產(chǎn)生M組hist結(jié)果,這些結(jié)果還要進行求和,那么就要用到加法樹,如果M較大,會造成加法樹很大,多以這里加了serders可以調(diào)節(jié)加法樹資源。

3) addTree:加法樹。
module addTree #(
parameter DATA_BW = 32,//bit width of data
parameter TREE_DEPTH = 3,//depth of the add tree
parameter ADD_N = 4//add number
)
(
input clk,
input rst,
input [ADD_N*DATA_BW-1:0] adnd_x,
input [ADD_N*DATA_BW-1:0] adnd_y,
input adnd_valid,
output reg[DATA_BW-1:0] finl_sum,
output reg finl_sum_valid

);

reg [TREE_DEPTH-1:0]midl_valid;

genvar dept_i, leaf_i;
generate
for(dept_i=TREE_DEPTH-1;dept_i>=0;dept_i=dept_i-1)begin: ADD_DPET
localparam LEAF_N = 2**dept_i;

wire[DATA_BW-1:0] midl_sum[LEAF_N-1:0];

for(leaf_i=0;leaf_i

reg [DATA_BW-1:0] midl_add_x;
reg [DATA_BW-1:0] midl_add_y;

if(dept_i==TREE_DEPTH-1)begin
always @(posedge clk)begin
midl_add_x midl_add_y end
end
else begin
always @(posedge clk)begin
midl_add_x midl_add_y end
end

adder #(
.DATA_BW(DATA_BW)
)
u_adder(
.adnd_x(midl_add_x),
.adnd_y(midl_add_y),
.sum(midl_sum[leaf_i])

);

end

if(dept_i==TREE_DEPTH-1)
always @(posedge clk)begin
midl_valid[dept_i] end
else
always @(posedge clk)begin
midl_valid[dept_i] end

end

endgenerate

always @(posedge clk)begin
finl_sum end

always @(posedge clk)begin
if(rst)
finl_sum_valid else
finl_sum_valid end

endmodule

4) accum:累加器。如果加法樹沒有完成M個hist數(shù)據(jù)的求和,那么就需要通過累加器來完成。

o4YBAF9uDqWAayv7AAByjAeQGbU256.png

圖2.3 對ram的處理

驗證結(jié)構

1) img_trans:這個是隨機化圖像數(shù)據(jù)定義,主要通過SV中constraint來對圖像大小做一些約束;

class img_trans;

rand int img_w;
rand int img_h;
rand int img_blank;
rand logic[`PIX_BW-1:0] img[`MAX_IMG_W*`MAX_IMG_H];

constraint img_cfg_cnst{
img_w img_w > 0;
img_w % `PARALL == 0;
img_h img_h > 0;
img_blank img_blank >= 0;

}

extern function void write(input string f_name);

endclass

2) driver:產(chǎn)生image并且發(fā)送給DUT,同時通過mailbox發(fā)送給ref_model用于對比;
class img_obj;
logic [`PIX_BW-1:0] img_que[$];
endclass

class driver;

int img_w;
int img_h;
int img_blank;
logic [`PARALL*`PIX_BW-1:0] img;
logic [`PIX_BW-1:0] img_ele;
img_obj imgObj;
img_trans imgTrans;

extern task drive(mailbox img_mbx, virtual img_inf.test imgInf);

endclass

3) ref_model:自己統(tǒng)計直方圖和DUT的結(jié)果進行比對;

class ref_modl;

logic [`PIX_BW-1:0] img;
int addr;
img_obj imgObj;
int hist[`HIST_LEN];

extern task calc(input logic clk, mailbox img_mbx);
extern task comp(virtual img_inf.test imgInf);
extern task run(input logic clk, mailbox img_mbx, virtual img_inf.test imgInf);
extern function void clear();

endclass

o4YBAF9uDqeAUrozAAEPRvgT6Rs060.png

圖3.1 驗證架構圖

最后添加一下modelsim仿真波形文件和結(jié)果,純粹為了增加篇幅。

圖3.2 modelsim仿真波形和結(jié)果

編輯:hfy

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

    關注

    1646

    文章

    22061

    瀏覽量

    619330
  • 直方圖
    +關注

    關注

    0

    文章

    21

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    【高云GW5AT-LV60 開發(fā)套件試用體驗】基于開發(fā)板進行深度學習實踐,并盡量實現(xiàn)皮膚病理圖片的識別

    說了。 首先想先對一張圖片進行相關算法的處理,不如比較開源的有對輸入的灰度圖像執(zhí)行自適應直方圖均衡化 (AHE)。或者 CLAHE(Contrast Limited Adaptive Histogram
    發(fā)表于 06-11 22:35

    芯片架構設計的關鍵要素

    芯片架構設計的目標是達到功能、性能、功耗、面積(FPA)的平衡。好的芯片架構能有效提升系統(tǒng)的整體性能,優(yōu)化功耗,并確保在成本和時間的限制下完成設計任務。
    的頭像 發(fā)表于 03-01 16:23 ?669次閱讀

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

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

    基于FPGA實現(xiàn)圖像直方圖設計

    簡單,單采用FPGA來實現(xiàn)直方圖的統(tǒng)計就稍顯麻煩。若使用Xilinx和Altera的FPGA芯片,可以使用HLS來進行圖像的加速處理。但這暫時不是我的重點。 用C語言實現(xiàn)
    的頭像 發(fā)表于 12-24 10:24 ?813次閱讀
    基于<b class='flag-5'>FPGA</b>實現(xiàn)圖像<b class='flag-5'>直方圖</b>設計

    ?ISP算法架構分析介紹

    ),從結(jié)果上看就是將RAW數(shù)據(jù)轉(zhuǎn)換成壓縮后的RGB(一般)數(shù)據(jù),供后續(xù)CPU使用(識別、壓縮等)。 市面上很少有直接介紹ISP的書籍或者資料,今天我們主要是聊一聊ISP算法架構,這樣大家就能明白為什么很少有專用的書籍對這方面進行
    的頭像 發(fā)表于 11-26 10:05 ?1946次閱讀
    ?ISP<b class='flag-5'>算法</b>及<b class='flag-5'>架構</b>分析介紹

    ADS7057EVM-PDK直方圖測試數(shù)據(jù)異常怎么解決?

    對ADS7057EVM-PDK進行直方圖測試,發(fā)現(xiàn)直方圖數(shù)據(jù)異常,具體表現(xiàn)為個別碼值的采樣點數(shù)異常增多,懷疑評估板出現(xiàn)問題。 測試條件具體如下: 使用TI公司的PSIEVM提供正弦輸入信號,輸入
    發(fā)表于 11-22 13:16

    Verilog vhdl fpga

    崗位職責 1.負責FPGA架構設計、代碼編寫、仿真等; 2.協(xié)同軟、硬件工程師完成系統(tǒng)聯(lián)調(diào)和測試; 3.負責項目中FPGA設計的相關文檔編寫及維護;任職要求 1.碩士及以上學歷,電子、通信、計算機
    發(fā)表于 11-12 16:40

    深入理解 Llama 3 的架構設

    最新的自然語言處理(NLP)技術和深度學習算法,旨在提供更加自然、流暢和智能的對話體驗。 1. 核心組件 Llama 3的架構設計可以分為以下幾個核心組件: 1.1 預處理模塊 預處理模塊負責將原始文本數(shù)據(jù)轉(zhuǎn)換為模型可以理解的格式。這包括文本清洗
    的頭像 發(fā)表于 10-27 14:41 ?1267次閱讀

    邊緣計算架構設計最佳實踐

    邊緣計算架構設計最佳實踐涉及多個方面,以下是一些關鍵要素和最佳實踐建議: 一、核心組件與架構設計 邊緣設備與網(wǎng)關 邊緣設備 :包括各種嵌入式設備、傳感器、智能手機、智能攝像頭等,負責采集原始數(shù)據(jù)
    的頭像 發(fā)表于 10-24 14:17 ?1140次閱讀

    FPGA芯片架構和資源有深入的理解,精通Verilog HDL、VHDL

    崗位職責 1.負責FPGA架構設計、代碼編寫、仿真等; 2.協(xié)同軟、硬件工程師完成系統(tǒng)聯(lián)調(diào)和測試; 3.負責項目中FPGA設計的相關文檔編寫及維護; 任職要求 1.碩士及以上學歷,電子、通信
    發(fā)表于 09-15 15:23

    為什么FPGA屬于硬件,還需要搞算法

    開始就掌握。 單純搞算法是不夠的,還需要理解硬件的架構和資源,以便更有效地將算法映射到 FPGA 上,實現(xiàn)最優(yōu)的性 能和資源利用。 總的來說,學習
    發(fā)表于 09-09 16:54

    【招聘】verilog vhdl FPGA

    1.熟悉FPGA架構及應用,熟悉圖像算法FPGA實現(xiàn)。 2.熟悉verilog vhdl,熟悉Xilinx或Intel等開發(fā)工具。 3.有AI算法
    發(fā)表于 09-02 15:50

    FPGA-5G通信算法的基本套路

    有利于硬件實現(xiàn),也是必須考慮的問題。與此類似,如果ASIC/FPGA工程師不了解算法,只根據(jù)算法進行邏輯實現(xiàn),很有可能會走彎路,多耗硬件資源。 一個再牛的
    發(fā)表于 08-15 17:34

    FPGA與MCU的應用場景

    可編程性 與MCU只能通過軟件進行編程不同,FPGA允許用戶在硬件級別上進行編程和重新配置。這種靈活性使FPGA在快速原型設計和硬件加速應用中非常有用。 低延遲
    發(fā)表于 07-29 15:45
    主站蜘蛛池模板: 黄色大片aa| 无码乱人伦一区二区亚洲一 | 快播可乐网 | 999精品在线 | 国产精品一国产精品免费 | Y8848高清私人影院软件优势 | 吃奶啃奶玩乳漫画 | 国产精品亚洲欧美 | 黄A无码片内射无码视频 | 久久国产精品高清一区二区三区 | 久久三级视频 | 国产欧美精品一区二区三区-老狼 | 男人和女人一起愁愁愁很痛 | 国产亚洲精品网站在线视频 | 久久这里只有精品国产99 | 国产交换丝雨巅峰 | 亚洲国产精品日本无码网站 | 国色天香社区视频免费高清3 | 精品蜜臀AV在线天堂 | 日韩午夜欧美精品一二三四区 | 俄罗斯破处 | 99久久就热视频精品草 | 亚洲国产精品99久久久久久 | 国产综合自拍 偷拍在线 | 永久精品免费影院在线观看网站 | 色婷婷综合久久久久中文一区二区 | 久久精品一本到99热 | 丰满的美女射精动态图 | 免费果冻传媒2021在线观看 | 成年女人色毛片免费 | 双性诱受灌满哭求饶BL | a在线免费观看视频 | 六月婷婷国产精品综合 | 亚洲性夜夜色综合网站 | 成年人视频免费在线播放 | 亚洲中文字幕欧美自拍一区 | 色偷偷亚洲天堂 | 午夜成a人片在线观看 | 91香蕉福利一区二区三区 | 趁老师睡着吃她的奶水 | 日本无码专区亚洲麻豆 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品