FPGA纯verilog代码实现图像缩放

时间:2025-06-17  作者:Diven  阅读:0

1、设计思路和架构

本设计将常用的双线性插值和邻域插值算法融合为一个代码中,通过输入参数选择某算法;代码使用纯verilog实现,没有任何ip,可在Xilinx、Intel、国产FPGA间任意移植;代码以ram和fifo为核心进行数据缓存和插值实现,设计架构如下:视频输入时序要求如下:输入像素数据在dInValid和nextDin同时为高时方可改变;

FPGA纯verilog代码实现图像缩放

视频输出时序要求如下:输出像素数据在dOutValid 和nextdOut同时为高时才能输出;

2、纯verilog代码搭建,不带任何ip

代码使用纯verilog实现,没有任何ip,可在Xilinx、Intel、国产FPGA间任意移植;

图像缩放的实现方式很多,最简单的莫过于Xilinx的HLS方式实现,用opencv的库,以c++语言几行代码即可完成,网上也有其图像缩放例程代码,但大多使用了IP,导致在其FPGA器件上移植变得困难,通用性不好;相比之下,本设计代码就具有通用性;

代码架构如图;其中顶层接口部分如下:

3、双线性插值和邻域插值算法

本设计将常用的双线性插值和邻域插值算法融合为一个代码中,通过输入参数选择某算法;

具体选择参数如下:

input wire i_scaler_type //0-- >bilinear;1-- >neighbor

通过输入i_scaler_type 的值即可选择;

输入0选择双线性插值算法;

输入1选择邻域插值算法;

4、vivado和matlab联合仿真及结果

第一步:网上下载一张1280X720的图片,并用matlab将图片转换为RGB格式的txt文档;

第二步:在vivado下设计tstbench,将RGB格式的txt文档作为视频输入源给到图像缩放模块,并将缩放后的图像数据写入输出txt文档;

第二步:用matlab将输出txt文档转换为图片,并于原图一并输出显示以做比较;

根据以上方法得到以下仿真结果:

双线性插值算法原图1280X720缩小到800x600如下:邻域插值算法原图1280X720缩小到800x600如下:双线性插值算法原图1280X720放大到1920x1080如下:邻域插值算法原图1280X720放大到1920x1080如下:

5、工程代码1:720P原始摄像头采集显示

三套工程的设计架构都一样,如下:开发板:Xilinx Kintex7开发板

开发环境:Vivado2019.1;

输入:OV5640摄像头,分辨率1280x720p;

输出:HDMI,1080P分辨率下的720P有效区域显示;

工程作用:采集原始的720P图像,以便和后面的缩小效果作比较;

工程BD如下:其中FDMA控制器配置如下:工程代码架构如下:工程的资源消耗和功耗如下:

6、工程代码2:720P缩小到800x600P显示

开发板:Xilinx Kintex7开发板;

开发环境:Vivado2019.1;

输入:OV5640摄像头,分辨率1280x720p;

输出:HDMI,1080P分辨率下的800x600有效区域显示;

工程作用:1280x720原图缩小到800x600,并和原图作比较;

工程设计框架、BD、工程代码架构和工程1一样,FDMA配置如下:

7、工程代码3:720P缩放大1920x1080P显示

开发板:Xilinx Kintex7开发板;

开发环境:Vivado2019.1;

输入:OV5640摄像头,分辨率1280x720p;

输出:HDMI,1080P分辨率下的1920x1080有效区域显示;

工程作用:1280x720原图放大到1920x1080,并和原图作比较;

工程设计框架、BD、工程代码架构和工程1一样,FDMA配置如下:

8、上板调试验证并演示

板子连接如下:工程1:原图1280x720输出效果如下:工程2:原图1280x720缩小到800x600输出效果如下:工程3:原图1280x720放大到1920x1080输出效果如下:

猜您喜欢

气动软管在工业和日常生活中应用,其规格尺寸直接影响到气动系统的性能和效率。通常,气动软管的内径和外径是最重要的参数。常见的内径有4mm、6mm、8mm、10mm...
2008-07-04 00:00:00

贴片电阻0805,这个名字看起来很专业,其实理解起来很简单。它指的是一种小型化的电阻器,广泛应用于各种电子电路中。0805代表的是电阻的尺寸,也就是它的长和宽。...
2024-11-26 11:29:18

防爆工具套装是专为危险环境设计的,确保操作人员安全的同时提高工作效率。这些套装通常根据工具的功能和使用场景进行分类。手动工具类是最基本的防爆工具,包含扳手、螺丝...
2021-09-08 00:00:00

1 前言CF卡是目前应用最为广泛的存储卡,由于它不带驱动器,也没有其它的移动部件,因此,极少出现机械故障,使存储的图像数据更加安全。CF卡的使用寿命也非常长,...
2020-08-21 16:41:00

双头螺丝批是常见的手动工具,其主要作用是用于拧紧或松开螺丝。与传统的单头螺丝批不同,双头螺丝批在两端配备了不同规格的螺丝刀头,用户可以根据需要快速更换,极大地提...
2013-01-18 00:00:00

独石电容是电子产品中常见的元件。在电路中起到滤波、耦合等作用。本文将探讨独石电容的优缺点,帮助大家更好地理解。优点独石电容有很多优点。体积小。独石电容的体积比其...
2025-03-25 11:30:03

FPC天线(柔性印刷电路天线)因其优良的柔性和轻便性,应用于多个领域。在消费电子产品中,FPC天线被用于智能手机、平板电脑和便携式音响等设备,提供稳定的无线信号...
2017-10-25 00:00:00

现代电子设备中,稳定的电源供应很重要。而LCDOD线性稳压器作为一种简单高效的稳压器件,被应用于各种电子产品中,为电路提供稳定的电压。什么是线性稳压器?线性稳压...
2024-07-02 00:00:00

在选择保鲜盒时,了解其规格尺寸是非常重要的。保鲜盒的尺寸通常根据容量和用途来划分,常见的规格有小号、中号和大号。小号保鲜盒一般容量在250毫升到500毫升之间,...
2014-07-27 00:00:00

可插拔电缆因其灵活性和便捷性,应用于多个领域。在数据中心和服务器机房中,可插拔电缆使设备之间的连接更为简便,方便维护和升级,提升了整体的工作效率。在工业自动化领...
2011-07-25 00:00:00