FPGA纯verilog代码实现图像缩放

时间:2025-04-28  作者:Diven  阅读:0

1、设计思路和架构

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

FPGA纯verilog代码实现图像缩放

视频输入时序要求如下:

输入像素数据在dInValid和nextDin同时为高时方可改变;

视频输出时序要求如下:

输出像素数据在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输出效果如下:

猜您喜欢

LED驱动器并非完全通用,选择和接线时需要考虑几个关键因素。这篇文章将为您解答LED驱动器的通用性问题,并提供一些接线指导。首先,LED驱动器的输出电压和电流必...
2024-09-27 00:00:00

现代电子设备中,连接器的作用不可忽视。不仅是电路之间的桥梁,更是确保设备正常运作的关键组件。本文将重点介绍新型连接器——CONN_D10.8X15.7MM_TM...
2025-04-25 17:00:43



可调节电容是电子设备中重要元件。能根据需要调节电容量。应用于无线电、电视等设备。本文将探讨可调节电容的特点与应用。可调节电容的定义可调节电容是电容器的。其电容量...
2025-04-12 11:01:13

贴片电阻上的2024并非直接代表阻值,而是指的封装尺寸。2024表示该电阻的长和宽分别为2.0mm和2.4mm。要想知道的阻值,需要查看电阻表面的标识码。通常,...
2024-11-29 10:26:09

在现代电子设备中,USB转换模块是非常重要的配件。了解其参数能够帮助用户选择合适的产品。数据传输速率是关键参数,常见的有USB 2.0(480 Mbps)和US...
2019-01-26 00:00:00

现代电子设备中,连接器起着非常重要的作用。它们不仅确保了各个组件之间的电气连接,还在数据传输和信号完整性方面发挥着重要作用。CONN_40.64X2.54MM_...
2025-02-26 19:32:57

干燥箱和烘箱是实验室及工业生产中常用的设备,主要用于物料的干燥和加热。干燥箱通常用于去除物质中的水分,适用于各种实验室样品、化学试剂和生物材料等的干燥处理。而烘...
2020-12-03 00:00:00

贴片电阻上的「01x」并不是一个标准的阻值标识。通常,贴片电阻使用三位或四位数字码来表示阻值,例如「102」表示1000欧姆(1kΩ)。 「01」 或者类似 「...
2024-11-26 11:29:37