news 2026/4/16 13:44:34

图像算法优化常用方式-vivado hls设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
图像算法优化常用方式-vivado hls设计

一、图像算法优化常用方式
1.双层for循环结构
对于灰度图像或者二值图像,一般使用双层循环
for(ap_uint<32> i=0;i<height;i++){
for(ap_uint<32> j=0;j<height;j++){
#pragma HLS pipeline II=1
}
}

然后对内存循环进行pipeline优化,
当然依据不同的场景可能使用#pragma HLS LOOP_FLATTEN off
for(ap_uint<32> i=0;i<height;i++){
for(ap_uint<32> j=0;j<height;j++){
#pragma HLS pipeline II=1
#pragma HLS LOOP_FLATTEN off
}
}

当然依据不同的场景可能使用#pragma HLS LOOP_FLATTEN
for(ap_uint<32> i=0;i<height;i++){
for(ap_uint<32> j=0;j<width;j++){
#pragma HLS pipeline II=1
#pragma HLS LOOP_FLATTEN
}
}

2.经常会用到将height高度加1的操作,比如乒乓操作
ap_uint<32> ping_buff[COLS];
#pragma HLS RESOURCE variable=ping_buff core=RAM_2P_LUTRAM

ap_uint<32> pang_buff[COLS];
#pragma HLS RESOURCE variable=pang_buff core=RAM_2P_LUTRAM

for(ap_uint<32> i=0;i<height+1;i++){
for(ap_uint<32> j=0;j<width;j++){
#pragma HLS pipeline II=1
if(i[0]){

}
else{

}
}
}
由于使用乒乓buffer,就会造成写入和读出之间晚一行数据,那么这个时候height+1作为行结束索引


3.经常会用到将height高度加2的操作,比如图像要在第一行前加入包头信息,在最后一行要加入包尾信息
for(ap_uint<32> i=0;i<height+2;i++){
for(ap_uint<32> j=0;j<width;j++){
#pragma HLS pipeline II=1
if(i==0){//包头

}
else if(i==height+1)
else{

}
}
}

4.pingpang_buffer经常使用
经常会使用两个line_buffer来组合成乒乓buffer来设计。
ap_uint<32> ping_buff[COLS];
#pragma HLS RESOURCE variable=ping_buff core=RAM_2P_LUTRAM

ap_uint<32> pang_buff[COLS];
#pragma HLS RESOURCE variable=pang_buff core=RAM_2P_LUTRAM

#pragma HLS DEPENDENCE variable=ping_buff intra RAW false
#pragma HLS DEPENDENCE variable=pang_buff intra RAW false

由于乒乓buffer既需要读,又需要写,所以工具容易形成伪依赖关系,这个时候需要使用去依赖关系来提高设计性能。

#pragma HLS DEPENDENCE variable=ping_buff intra RAW false
#pragma HLS DEPENDENCE variable=pang_buff intra RAW false
这两条优化语句是经常用到的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:43:50

AI技术点总结(2)

Query Rewriting&#xff08;查询重写&#xff09; 是什么 一个在检索前对用户原始查询进行主动优化与修正的“预处理”步骤。 能做什么 将模糊、简短或不完整的查询&#xff0c;自动补全、分解或优化为更适合检索的清晰、结构化的形式&#xff0c;从而显著提升后续检索的准确…

作者头像 李华
网站建设 2026/4/15 19:46:50

AI技术点总结(1)

Firecracker是亚马逊开源的一款轻量级虚拟化监视器&#xff0c;专为运行短暂、无状态的微型虚拟机而设计。1. 它是什么&#xff1a;一种极简的虚拟化技术&#xff0c;用于创建和管理安全的隔离环境。 2. 它能做什么&#xff1a;在毫秒级内启动一个虚拟机&#xff0c;以接近裸机…

作者头像 李华
网站建设 2026/4/11 1:26:07

【读书笔记】《遇见莫扎特》

《遇见莫扎特》——天才音乐家的传奇人生 一、开场介绍 天才莫扎特的传奇一生 二、莫扎特的历史地位 2.1 从神童到大师 一般来说&#xff0c;神童长大后可能会荒疏&#xff0c;但莫扎特小时候是神童&#xff0c;长大后是大师&#xff0c;这样的音乐家称得上是伟大的。 2.2 全能…

作者头像 李华
网站建设 2026/4/16 13:39:10

本科毕业设计开题报告系列之五:本科毕业设计中研究方法与技术路线怎么写?

前言 在本科毕业设计开题报告中&#xff0c;研究方法和技术路线几乎是所有导师都会重点查看的两部分内容。很多同学在写这两节时都会遇到类似困惑&#xff1a;不知道该写多详细、担心和研究内容重复、分不清方法与路线的区别&#xff0c;甚至不知道老师到底想从这两部分看到什…

作者头像 李华