FPGA纯verilog代码实现图像缩放

时间:2025-09-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输出效果如下:

猜您喜欢

当今快速发展的科技时代,企业对于高效能产品的需求日益增加。USPQ-4B04作为一种新型的高效能解决方案,凭借其卓越的性能和多功能特性,正在逐渐成为市场的焦点。...
2025-02-24 16:16:27

电阻作为电子元件中的基础部件,其性能和品质直接影响整个电子设备的稳定性和寿命。禾伸堂(HEC)作为业内知名的电阻制造商,其铝壳电阻因优异的散热性能和可靠性广受欢...
2017-10-01 11:35:00

现代生活中,LED照明已经逐渐成为主流的绿色照明选择。LED照明驱动电路作为这一系统中的核心技术,其设计直接影响到LED灯具的性能和稳定性。我们为您带来专业的L...
2024-09-08 00:00:00

触发二极管(也称为触发二极管或SCR,硅控制整流器)是重要的半导体元件,应用于电力电子设备中。主要功能是控制电流的开关,能够在特定条件下迅速导通或截止,从而实现...
2025-04-07 15:01:07

变容二极管是特殊的二极管,其主要功能是利用电压的变化来调整其电容值,因此在调谐电路和频率合成等领域得到了的应用。在广东省,许多企业和科研机构专注于变容二极管的研...
2025-04-04 04:30:35


炭化硅(SiC)二极管是新型的半导体器件,近年来在电子和电力领域得到了应用。由于其优越的性能,炭化硅二极管在高温、高频和高功率的环境下表现出色,逐渐成为现代电力...
2025-04-05 20:30:34

螺旋气管是应用于工业和日常生活中的管道系统,主要用于输送气体和液体。根据不同的设计和功能,螺旋气管可以分为几种主要类型。按材料分类,螺旋气管可分为金属螺旋气管和...
2016-08-24 00:00:00

防浪涌电阻作为保护电路安全的重要元件,是关键配件。VITROHM作为知名的电子元器件品牌,其防浪涌电阻系列因性能稳定、质量可靠而受到关注。本文将从品牌角度出发,...
2015-12-04 00:16:53

温度保险丝作为重要的安全保护元件,有着着不可替代的作用。瑶合乐作为业内知名的温度保险丝制造商,其旗下的温度保险丝系列产品深受市场青睐。那么,瑶合乐温度保险丝系列...
2020-09-11 04:55:30