- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA任意比例图像缩放算法
基于FPGA任意比例图像缩放算法摘要:在实际图像处理系统中,由于系统对实时的要求非常高,所以常采用FPGA进行图像的缩放,以利用其强大的并行处理能力。本文提出一种基于FPGA的算法,能够实现复杂的比例缩放,而且结构简单,非常适合工程化
关键词:图像缩小 图像放大 FPGA
中图分类号: TP391.41 文献标识码:A 文章编号:1007-9416(2011)12-0126-02
Abstract:Because the demand of the real-time image processing performace is very huge,FPGA-based scaler is adapt to it with the parallel processing capality. The paper presents a simplified-structure image pretreatment based on FPGA.It can impliment more complicated image contraciton and amplification algorithm.
Keywords:Image contraction Image amplification FPGA
1、引言
数字图像的缩放在实际生活中被广泛的使用,比如同一DVD视频源在不同的电视机、计算机上显示的时候,由于不同的显示终端的分辨率不同,而数据源的分辨率是相同的,这样就需要将此视频源进行缩放处理。在一些实时性要求很高的场合,比如视频会议系统、视频监控系统等,由于用户需要实时观看到不同视频源的不同分辨率的图像,最常见的应用是监控系统中,监控者可能需要将感兴趣的实时图像进行放大,以便获取更多的监控信息。在这些应用中,对缩放算法的效果和实时特性要求都比较高。FPGA常被用于这类系统的解决方案之中
2、算法原理
传统的算法采用需要处理的原始图像像素点周围四个点的像素值之间的相关性,通过算法计算得出的。对于目标图像的任意一个限速(x,y),通过反向坐标查找得到原始图像中的浮点坐标为(i+u,j+v),其中i,j均为非负整数,u,v为[0,1]区间的浮点数,则目标图像的像素值f(x,y)可由原图像中四个坐标分别为(i,j),(i+1,j),(i,j+1),(i+1,j+1)所对应的像素值经过加权得到,即:f(x,y)=C0×f(i,j)+C1×f (i,j+1)+C2×f(i+1,j)+C3×f(i+1,j+1),其中f(i,j)表示原始图像坐标为(i,j)处的像素值,以此类推,C0~C3为不同的加权系数,根据不同的算法,其取值不同
传统算法引入的u、v两个浮点数,其系数也是根据此浮点数进行计算的。然而,FPGA处理浮点数比较复杂,只能通过近视逼近的方式,必然会处在精度丢失。另外任意的浮点数经过计算得到的加权系数也是浮点类型,这对后续的乘累加是不利的,因为乘累加需要消耗更多的FPGA中的DSP资源
本算法采用将缩放比例转换为多个整数倍缩放的累加的方式。可以证明如下命题正确:
对任意自然数M、N(MN),必然存在非负整数K、L、a使得如下等式成立:
N/M=(K+L)/[Ka+L(a+1)]
证明如下:
当N=1时,令K=1,L=0,a=N,以上命题显然成立
当N1时:
因为MN,设M=αN+β,其中α = [M/N]([ ]代表取整运算);β=M%N(%代表求余运算)。显然α、β均为非负整数
要证明N/M=(K+L)/[Ka+L(a+1)],等效于
N/M=(K+L)/[(K+L)a+L]…………………………………
令K+L=N,等效于
N/M=N/[Na+L] …………………………………
令L=β,a=α,等效于
N/M=N/[Na+L]= N/[αN+β]= = N/M
所以:
N=1时:K=1,L=0,a=N使得命题成立
N1时:K=N-β,L=β,a=α可以(其中α = [M/N];β=M%N)使得命题成立
采用同样的方法还可以证明如下命题成立:
对任意自然数M、N(MBUF1--BUF2--BUF3的时候,FIR模块判断当前的数据是否需要做滤波处理,以及其滤波系数为多少。然后进行乘累加得到最终的滤波结果
在FPGA实现的时候,采用分辨率是1024×768的RBG原始数据进行处理,所消耗的资源如下:RAM资源96kbit,slice1.5k
5、结语
本文提出了一种能能够将任意缩放比例转化为多个整数倍缩放的组合,从而避免了复杂的浮点运算,非常适合FPGA来实现该算法,是一种非常经
文档评论(0)