在FPGA上用查表法实现图像拼接、缩放、校准和旋转等算法

一、技术要求

  1.         1~4路1080P视频输入;
  2.         经过拼接、缩放、校准,旋转等图像算法在显示器上进行显示,各算法的参数可以在线调整设置,参数设置保存之后不变;
  3.         同时图像延时要小于50mS;
  4.         功耗低。

二、设计思路和架构

       延时要小于50mS的要求就决定要采用fpga实现,同时各算法参数不要求实时更改,因而在fpga上用查表法来实现图像拼接、缩放、校准和旋转等多种算法。查表法用到的像素地址表格由小型的低功耗32位单片机生成,这样就能同时附合低功耗的要求。设计方案架构如图1:

图1、方案架构图

        因fpga内部缓存资源有限,所以采用外挂DDR3/DDR4大容量缓存。采用外部单片机考虑到可以采用低成本的fpga,利于降低整机方案的硬件成本。

        多路摄像头的视频经fpga缓存到DDR3外部缓存,32位单片机运行拼接、缩放、校准和旋转等算法,生成查表算法用到的像素地址表格,并把这像素地址表格保存在DDR3中,供fpga读取。fpga读取像素地址表格中的地址,并从地址中取出像素合成图像传给显示器。

        以上所说有查表算法是很好理解的,大家都熟悉的算法。但要在fpga中实现起来并不怎么容易。DDR3/DDR4特点是批量连续读取带宽利用率高,可达99%。但是查表法中的地址是不连续的,这样不连续的从ddr3读取数据,带宽利用率可能低到30%。这样会严重影响合成图像的刷新率,重而大大提高图像显示的延时。

        方案难点:如何提高查表算法的DDR3带宽利用率。觖决这个难点是本方案成功的关健所在

三、查表算法方案详细设计

       3.1、提高DDR3带宽利用率的方法

        要提高DDR3带宽利用率,增加fpga内部的缓存是一种方法,但是fpga内部ram资源有限,不可能无限制的增加,因而适当的增加是可以的。除此之外我们采用了如下方法:

  1. 用地址对齐的方式压缩查表法中的地址:减少了读写次数,相当于增加了ddr3带宽利用率。
  2. 增加单次读写的像素个数。就是一次读取就能包含多个有效像素。
  3.  假设同前一行像素相同,那就不重新从ddr3缓存中读取了,直接从前一行像素备份缓存中拷一下就可以了。

        3.2、FPGA查表算法RTL逻辑

        FPGA查表算法RTL逻辑模块结构图如下:

图2、查表算法fpga逻辑结构图

        地址表格处理模块逻辑的功能是进行进址压缩,生成压缩标志信号和64位地址对齐(也可以128位)的压缩地址数据流。 把压缩标志传给图像合成模块,把压缩地址专给像素读取DMA,像素读取DMA位宽64位,64位yuv(422)可以对应4个像素。像素读取DMA把这64位数据传给图像合成模块进行分解解压。图像合成模块根据接受的压缩标志和64位数据生成最终的图像数据经图像输出接口模块传给显示器。图像输出接口模块决定了图像的输出刷新率。

四、地址表格处理模块逻辑原理

        由单片机生成的地址表在地址表格处理模块里只是简单的进行了64位地址对齐处理。逻辑如图3所示:

图3、地址表格处理模块逻辑图

        注:1、SYNC 是行同步信号;

                2、CLK 像素时钟;

                3、AH就是地址表格数据;

                4、AF 表示同前一行像素重复标志,对应的AH数据Xn为前一行的行序号;

                5、YF 表示 为地址压缩标志,也可理解为压缩地址的使能信号。当YF为1时,对应的YAH数据为输给读像素DMA模块的压缩地址数据。

        其中SYNC、AH、地址表格处理模块的输入信号,AF、YF、YAH为输出信号。

五、图像合成模块逻辑原理

图4、图像合成模块逻辑图

注:        1、SYNC 是行同步信号;

                2、CLK 像素时钟;

                3、AF 表示同前一行像素重复标志,对应的AH数据Xn为前一行的行序号;

                4、YF 表示 为地址压缩标志;

                5、X 表示行重复像素的行序号;

                6、ImagDat1 表示读取的行重复像素数据;

                7、ImagDat2 表示读像素DMA模块读取的行像素数据;

                8、ImagDat 表示合成的行图像数据;

                9、DatEn 表示合成行图像数据的使能信号。

        其中 ImagDat 、DatEn 为此模块输出信号,其它都为输入信号。

六、单片机的作用

        有以下作用:        

        1、上电初始化FPGA逻辑;

        2、设置算法参数,并保存;

        3、初始化视频接口芯片和显示器接口芯片;

        4、 经过拼接、缩放、校准,旋转等图像算法生成相应的地址表格数据;

        5、地址表格数据进行初步处理,提取行像素重复标志,并把相应地址数据改为前一行的行序号。

        6、把处理好的地址表格数据写入ddr3。

七、最终效果图

        图像刷新率达到了25帖/s;因要缓存一辐图像,最终最大延时刚好50ms

        下面是实物图:

图5

图6

图7、图像延时测试

图8、图像延时测试

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《图像缩放算法的研究及其在FPGA上的实现》是一篇有关图像缩放算法及其在FPGA上的实现的研究论文。图像缩放图像处理领域中一个重要的问题,它可以改变图像的尺寸,使得图像适应不同的显示设备或满足特定的需求。 本文首先介绍了图像缩放算法的基本原理和常用方,如最近邻插值、双线性插值和双三次插值等。这些方基于不同的插值原理来实现图像的缩放,各有优缺点。 接着,本文详细探讨了将图像缩放算法实现FPGA上的可行性及其优势。FPGA是一种可编程逻辑器件,具有并行计算和高速处理的特点,非常适合用于图像处理任务。通过将图像缩放算法实现FPGA上,可以加快计算速度,提高图像处理的效率。 然后,本文介绍了在FPGA实现图像缩放算法的具体步骤和方。首先将图像数据加载到FPGA内存中,然后通过并行计算的方进行插值计算,最后将处理后的图像数据输出。本文还详细讨论了如何优化FPGA上图像缩放算法的性能,如通过分块计算、流水线等技术来提高计算速度和减少资源占用。 最后,本文通过实验证明了在FPGA实现图像缩放算法的有效性和优势。实验结果显示,通过将图像缩放算法实现FPGA上,可以加快计算速度,并且处理后的图像质量也能够满足需求。 综上所述,本文深入研究了图像缩放算法的原理和方,并探讨了将其实现FPGA上的可行性和优势。通过在FPGA实现图像缩放算法,可以提高图像处理的效率和质量,具有重要的研究和应用价值。 ### 回答2: 《图像缩放算法的研究及其在FPGA上的实现.pdf》是一篇关于图像缩放算法及其在FPGA(现场可编程门阵列)上的实现的研究论文。 图像缩放是指通过改变图像的大小来适应不同的应用需求。在图像处理领域,图像缩放算法起着至关重要的作用。不同的图像缩放算法有着不同的特点和适用范围,因此对其进行研究和实现是很有意义和价值的。 该论文的研究目的是探究不同的图像缩放算法,并将其实现FPGA上。FPGA是一种灵活可编程的硬件平台,能够高效地执行图像处理算法。通过在FPGA实现图像缩放算法,可以实现高性能和低功耗的图像处理系统。 论文首先介绍了几种常见的图像缩放算法,如最邻近插值、双线性插值和双三次插值等。这些算法可以保持图像的视觉效果和细节,并且能够根据不同的需求进行选择。然后,论文详细描述了将这些算法实现FPGA上的过程,包括硬件设计和优化技术。 通过实验和比较,论文得出了不同图像缩放算法FPGA上的性能指标和实现效果。研究结果表明,FPGA能够有效地处理图像缩放算法,能够实现实时性能和较低的功耗。同时,论文还讨论了FPGA上图像缩放算法的优化方和未来的研究方向。 总而言之,《图像缩放算法的研究及其在FPGA上的实现.pdf》是一篇对图像缩放算法及其在FPGA实现的研究论文,介绍了不同的图像缩放算法和其在FPGA上的实现过程,对于图像处理领域的研究和应用具有一定的参考价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值