您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于FPGA的四通道视频缩放引擎的研究及设计
基于FPGA的四通道视频缩放引擎的研究及设计数字视频缩小和放大(简称缩放)是视频处理的一个重要分支,是基于对数字视频每帧图像的处理来实现的。常见的缩放算法有最近邻域法、双线性插值法、抛物线插值法、双三次插值法和牛顿插值法等基于多项式的插值算法[1],较容易在FPGA硬件上实现;也有B样条插值法、基于小波插值和有理插值等比较复杂的算法,难以在FPGA上实现。近年来随着液晶平板显示器件的广泛应用,对于定标器的研究越来越多且研究成果也很丰富。但定标器的缩放比例有限,一般在0.5~4之间,在这个范围内采用2阶或3阶多点插值算法,图像的边缘和细节可以较好保存。但是采用定点插值法,当文字缩小比例较大时,会丢失较多的细节,出现字体笔画断裂或者锯齿现象。而采用低阶算法(例如多点均值插值),参与运算的点较多,可以有效提高文字的显示质量。1系统架构系统架构如图1所示,先对输入视频的分辨率进行检测,将检测值送至MCU,MCU用其确定缩放步长;然后对视频进行缩小操作。如果要对信号进行放大,则绕过该模式;接着将视频数据送至IFIFO缓存,由仲裁器和DDR2控制器实现4个通道数据的帧率变换后,视频数据送至OFIFO模块;接着数据被送至放大模块,完成放大操作。如果要对视频信号进行缩小,则绕过该模式;最后将完成处理的RGB视频信号输出。整个缩放过程所需要的缩放步长、通道选择等配置信号全部由MCU通过本地总线配置FPGA。TOP最近邻域插值法存在很强的波瓣,频率响应较差。当图像中包含像素值有变化的细微结构时,最近邻插值会在图像中产生人为的痕迹,造成图像模糊或产生人为噪声点。线性插值法频谱的旁瓣远小于主瓣,带阻特性较好。但通带内高频成分衰减过快,会使得插值后的图像变模糊。四点立方插值通带内高频成分衰减明显变慢,且旁瓣不超过1%,具有较好的高频响应特性,缩放后的图像能够保持更多细节。六点立方插值算法的频率响应特性更加优越,通带内高频成分衰减更慢且旁瓣更低。四点立方插值较好地保持了图像的细节,实现难度和占用逻辑资源适中。六点立方插值虽然实现效果更好,但是占用的逻辑资源较多。故本设计采用四点立方插值算法实现视频的放大操作。5.2插值基函数图像插值缩放具有二维可分解的特点,可以将二维图像的插值分解为分别沿x和y方向的一维信号插值[3]。一维方向上,利用插值点的四个临近像素点进行三次插值,Keys将sinc离散函数进行泰勒级数展开后,使三次分段多项式和原始信号的泰勒级数展开式尽可能多项吻合,以此推导出插值基函数表达式[4]。5.3.1抽头系数的产生将插值的系数存在ROM中,这样虽然使用三次方插值,但是不用在FPGA中实现三次方的运算,提高了运算速度。例如原图像一行有3个像素,要求插值后的图像一行有8个像素,则新图像一行的第5个点在原图像中映射的坐标为[(5-1)×2/7]+1=15/7=2+1/7≈′b0010.1001,整数2为其原图像中左边临近的像素点坐标为2,1/7表示其与坐标为2的原图像像素的距离为1/7。此时将小数部分1001作为地址读出存储在该地址的抽头系数,将其送给卷积器。5.3.2插值参考点控制放大时,对缩放步长进行累加,当小数向个位数进位时,开始读取一个新的数据。例如计算插值后图像某个点时,采用原图像的x4、x5、x6、x7作为插值参考点,则当步长累加器有进位时,读取下一个像素值x8,同时将x5、x6、x7移到x4、x5、x6的寄存器位置,而x8则存入之前x7的位置,这样就可以实现从原图像向目标图像的地址映射,避免从目标图像到原图像地址映射过程出现的乘法运算。5.4行缓存行缓冲存储器的主体为若干个存储容量相同的双口随机存储器(DRAM),每个DRAM存储一行的有效像素数据。为了确保行缓存不溢出,开辟6个行缓存器,存储时按顺序1-2-3-4-5-6-1循环存放,读取时按循环次序读取。5.5垂直方向放大垂直方向放大滤波器架构和水平方向一样,只是插值参考点来自于不同的行缓存空间里相同地址的数据。
本文标题:基于FPGA的四通道视频缩放引擎的研究及设计
链接地址:https://www.777doc.com/doc-2569647 .html