- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA视频缩放设计与实现
基于FPGA视频缩放设计与实现
摘 要:视频缩放是视频处理领域的关键问题,可以分为硬件实现和软件实现。以FPGA作为处理芯片,按照SMPTE协议设计了一种视频缩放方法。设计采用模块化思想对系统进行了自上而下的划分,采用XILINX公司提供的Spartan6系列芯片XC6SLX45T,并使用Verilog HDL语言实现了各模块功能。该算法使用流水线结构,实验结果表明,该算法能够在FPGA上稳定运行,实现了视频缩放的效果。和原有方法相比,该设计方法减少了5个乘法器的使用,节约了系统资源。
关键词:FPGA;视频缩放;流水线;DDR3 SDRAM;乘法器
DOIDOI:10.11907/rjdk.171287
中图分类号:TP319
文献标识码:A 文章编号文章编号:1672-7800(2017)008-0083-03
0 引言
实时视频图像处理是图像处理领域的研究热点之一,广泛应用于监控、医疗、通信领域等。基于单片机的方案对于高分辨率视频数据的处理无法满足实时性要求,近年来现场可编程门阵列(FPGA)由于其自身优势得到了快速发展,在实时图像处理中的应用也越来越广泛。一些FPGA器件不仅提供了丰富的逻辑资源,还提供了RAM块、乘法器、锁相环、时钟资源等,为实现高性能的数字信号处理提供了便利。目前,市场上的数字视频处理芯片大多是从欧美、日、韩等地的公司进口的,也有一些来自中国台湾,但这些芯片主要适用于一些高度复杂的系统,不适用于单纯进行视频处理的场合。
图像插值是图像处理的基本问题之一。随着显示器的分辨率越来越高,原有的视频源制式越来越跟不上显示器的发展速度,故需要采用相应的视频缩放方法将输入的视频信号转变为可以在显示器中实现点对点显示的视频制式。为了实现视频缩放,以及视频信号的良好显示,需要对视频信号进行插值处理。本文设计了一种基于FPGA的视频缩放算法,并对算法进行了优化。该算法可占用更少的逻辑资源,且易于硬件实现。
1 算法原理
1.1 常用缩放算法
常用的线性视频缩放算法有最邻近插值、双线性插值、双三次插值[1]。对3种插值方式采用MATLAB进行检测的结果如图1所示,其中原图是一幅512*384的图像,分别用3种插值方法对原图进行4*4倍缩小,再进行4*4倍放大得出的图像如图1(b)~(d)所示。无论是采用PSNR[2]方法还是人眼观察,最终的实现效果都为:双三次插值双线性插值最邻近插值。最简单的插值方式为最邻近插值,但其实现的效果最差,边缘容易产生锯齿现象;双线性插值具有低通滤波器特性,会使高频信息受损,边缘处的过渡比较平滑,计算量比最邻近插值大;双三次插值能够保持较好的图像细节,精度较高,但其计算量最大。权衡FPGA的逻辑资源与显示效果,本设计采用双线性插值算法实现。
1.2 双线性插值算法描述
双线性插值采用可分离的线性插值将4个最近的像素组合起来:
I[x,y]=I[xi,yi]*(1-xf)*(1-yf)+I[xi+1,yi]*xf*(1-yf)+I[xi,yi+1]*(1-xf)*yf+I[xi+1,yi+1]*xf*yf(1)
?D2(a) 为插值的坐标定义,下标i和f表示各自坐标的整数部分和小数部分,图2(b)给了式(1)另外一种解释。每个像素的位置用一个方框表示,其权值由期望的输出像素和可用输入像素之间重叠的面积给出。公式(1)需要8个乘法运算,但对其进行因式分解后,能将乘法运算减少到3个,如式(2)所示:
I[x,yi]=I[xi,yi]+xf*(I[xi+1,yi]-I[xi,yi])
I[x,yi+1]=I[xi,yi+1]+xf*(I[xi+1,yi+1]-I[xi,yi+1])
I[x,y]=Iyi+yf*(Iyi+1-Iyi) (2)
2 实现方案
本设计主要包含DDR3 SDRAM缓存模块、视频缩放模块、输出显示模块和时钟生成模块等,如图3所示。
2.1 缓存模块
本设计采用两片片外存储器DDR3 SDRAM作为帧缓存,型号为MT41J64M16,工作频率可达到200MHz,数据传输速度达到800Mb/s,吞吐量可达12.8Gb/s,可以满足设计要求,而且具有成本低、功耗小的特点,但是DDR3 SDRAM的设计非常复杂,不仅时钟频率很高,而且还需要定时刷新。XILINX公司提供了一个可以用来控制DDR3 SDRAM的IP核MIG[3],不仅可使设计复杂度大为降低,而且缩短了设计时间。由于DDR3与数字视频流工作在不同的时钟域,需要解决跨时钟域处理问题。由于处理的数据位数为多位,故采用异步FIFO来解决,缓存模块如图4所示。
2.2 缩放模块
将视频
原创力文档


文档评论(0)