一种新型去隔行算法的FPGA实现

时间:2022-08-21 03:00:52

一种新型去隔行算法的FPGA实现

摘要:在分析了现有各种去隔行算法的基础上,提出了一种新型的运动自适应去隔行算法。该算法通过对传统运动检测算法的改进,提高了运动检测的精度,降低了误判的概率,可高效地区分图像的静止和运动部分,然后采用不同的算法进行去隔行,同时对运动部分采用的插值算法进行了改进,新的插值算法综合了帧内行平均算法和边缘算法的优点,插值效果有很大改善,最后给出了FPGA实现原理。实验结果表明,本文算法无论对运动图像还是对静止图像都具有很好的去隔行效果,在一定程度上弥补了传统去隔行算法边缘不够平滑,出现锯齿,细节模糊,甚至有断点、虚像等缺点。同时,算法也很好地实现了显示品质和硬件成本之间的平衡,适合应用于中端视频产品及在FPGA设计中的应用。

关键词:运动自适应;运动检测;去隔行;现场可编程门阵列

中图分类号:TN949.199文献标识码:B

The FPGA Implementation of a Novel Motion Adaptive De-interlacing Arithmetic

CAI Yu-qiang, YANG Gang, JIANG Quan, YU Jun-sheng

(Opto-electronic Information, University of Electronic Science and Technology of China, Chengdu Sichuan 610054, China)

Abstract:After analyzing different kinds of de-interlacing arithmetic, a novel motion adaptive de-interlacing arithmetic is put forward. This arithmetic improves conventional motion detection arithmetic, advances the precision of the motion detection, reduces the probability of miscarriage of justice and can distinguish the motion and static parts effectively, then different arithmetic is adopted to de-interlace, the interpolation arithmetic for the motion parts is also improved, the proposed interpolation arithmetic have advantages of both line-average in a frame and edge arithmetic, so it has a good effect in interpolation, finally, the implementation of FPGA is given. According to the result of the experiment, we can conclude that the proposed arithmetic both have good de-interlacing effect in motion image and static image, to some extent, it get over the following flaws in conventional de-interlacing arithmetic: not enough smoothness on edge, having sawtooth, illegibility in detail, even having breakpoints and virtual image. At the same time, the proposed arithmetic balances well in display quality and hardware cost, and can be used in the common video products and FPGA design.

Keywords: motion-adaptive; motion-detector; de-interlace; FPGA

引 言

传统的模拟电视系统普遍采用隔行扫描的方式来降低带宽,随着高清数字电视的发展,传统模拟电视的隔行扫描方式引起的爬行、画面闪烁和图像快速运动时产生的边缘模糊及锯齿等现象越来越突出。然而,由于经济发展的原因,传统模拟电视在一定时期内还将继续存在,因此,模拟电视的去隔行转换已成为视频转换系统的一个关键部分。

所谓“去隔行”,就是从隔行扫描到逐行扫描格式的转换,目前主要存在三类去隔行算法:线性算法、运动补偿算法和非线性算法。线性算法实现简单,硬件代价较低,但难以取得理想的去隔行效果;运动补偿算法性能最优,但计算量最大,硬件实现代价最高,且对误差极其敏感;非线性算法则介于两者之间,由于其良好的去隔行效果和较低的成本而被广泛采用[1]。

这里提出的新型运动自适应去隔行算法即为非线性算法的一种,该算法通过对传统的运动检测算法进行改进,提高了检测的精度,可以比较精确地区分图像的静止和运动部分,然后采用不同的算法进行去隔行,其中运动部分采用改进的插值算法,综合了帧内行平均算法和边缘算法的优点。实验结果表明,该算法取得了很好的去隔行效果,可以有效地消除运动锯齿,提高图像的垂直清晰度,是一种在实现代价和实现效果之间达到较好平衡的算法[2]。

1 去隔行算法介绍

1.1 运动自适应算法

运动自适应算法是根据运动信息来调整去隔行算法,在不同的区域采用适合该区域的算法,算法复杂度和硬件占用适当,相比运动补偿算法来说消耗的硬件资源少,易于硬件实现,同时克服了线性算法的片面性,对图像的静止和运动部分均能取得较好的去隔行效果。

运动自适应算法主要分为三个模块:运动检测、静止以及运动部分的去隔行算法。它的实现原理是,首先将隔行场序列中的视频信号送入存储器中,通过综合计算场间与场内数据运动信号的权值来进行运动检测,以判断待插值的像素点处于静止区域还是运动区域。若处于静止区域,则采用场间差值算法;若处于运动区域,则采用改进的综合插值算法进行去隔行处理。最后,将去隔行插值得到的像素点与原隔行场中的扫描行合并,即可形成完整的逐行序列输出[2]。插值公式如公式(1)所示,其中a=1时表示运动,a=0时表示静止,fmove(i,j)为场内插值输出,fstatic(i,j)为场间插值输出,fout(i,j)为交织后输出。该算法的原理框图如图1所示。

fout(i,j)=afmove(i,j)+(1-a)fstatic(i,j) (1)

1.2 运动检测算法

运动自适应去隔行算法在隔行视频信号的插补过程中,为了在图像的运动和静止两个区域都能获得较好的插补效果,需要对视频信号进行运动检测,根据相邻图像的帧间差异估算出图像的运动信息,对运动区域采用场内插值的方法去隔行,对静止区域采用场间插值的方法去隔行。运动检测是运动自适应插值算法的关键步骤,检测不正确可能导致误用图像运动部分的场间插值数据,出现图像撕裂,而过灵敏的运动检测则可能造成图像静止部分场内数据运动检测器被噪声所触发,分辨率显著下降,因此运动检测要利用多场信息才能减少误判现象的发生。

本文采用的运动检测算法,使用了相邻的四场像素3×3邻域的像素点,与传统算法相比,使用的像素数量比传统的算法要多,硬件实现更复杂,但效果要好得多。如图2所示,其中X像素为待插像素,其它像素为原始像素点。

定义两类绝对像素差:

D1=G-P,H-Q,I-R(2)

D2={A-J,B-K,C-L,D-M,E-NF-O}(3)

检测输入定义为:

dec=D1YD2 (4)

计算得到的dec和预先设定好的门限G比较,G由经验获得,输出二值的检测结果,“1”表示运动点,“0”表示静止点,运动检测值a用公式(5)表示。

a=1,dec≥G0,dec

1.3 综合插值算法

对于静止图像采用简单的场间插值算法,场间插值比较简单,而且效果很好,主要是用前后两场对应像素点的亮度均值进行插补。第n场第i行第j列的插值公式如公式(6)所示。

fn(i,j)= [fn-1(i,j)+fn+1(i,j)] (6)

由于运动图像的采样频率并不是线性变换的,如果对运动图像的去隔行采用场间插值算法,就会造成图像的运动模糊、虚像和边缘锯齿等一系列问题。为了解决这个问题,人们提出了一些适合处理运动图像的去隔行算法,其中最具代表性的是帧内行平均法和边缘检测算法。对于运动的物体,当前场中相邻像素之间的相关性最大,因此帧内行平均法由于硬件实现简单、效果良好而得到广泛运用;而边缘检测算法是先对待插像素进行边缘分析,判断运动方向,对运动插值有较好的效果,是当前运用最多的算法。

帧内行平均法比较容易理解,即由同一场相邻的两行取平均得到中间行的插值,插值公式如公式(7)所示。

xaverage(i,j)= [x(i-1,j)+x(i+1,j)](7)

这一算法仅在垂直方向上作平均值运算,插值信号之间相关性较好,具有低频信号丰富、画面柔和、垂直边缘保护良好等特点,但斜线边缘锯齿明显。

边缘插值算法的思想是利用相邻行像素点的方向相关性来计算插值,本文采用的是对传统边缘算法的改进,即增强型边缘插值算法。

传统边缘插值算法可以高效地对丢失部分行进行插值,得到完整的一帧图像,但它对图像边缘的判断容易出错,造成插值后的图像在某些区域出现模糊和锯齿。为了消除这种算法的这一不足,对算法进行了改进,得到新的增强型边缘插值算法,如图3所示。

首先,计算沿a,b,c,d,e五个方向的像素差值,如图3和公式(8)~(12)所示。

a=|x(i-1,j-2)-x(i+1,j+2)| (8)

b=|x(i-1,j-1)-x(i+1,j+1)| (9)

c=|x(i-1,j)-x(i+1,j)|(10)

d=|x(i-1,j+1)-x(i+1,j-1)| (11)

e=|x(i-1,j+2)-x(i+1,j-2)| (12)

取a,b,c,d,e的最小值x=min(a,b,c,d,e),x即为最大相关边缘方向。其中最小的偏差代表最强的方向相关性。沿方向经过判定后,插值就在最强相关性的方向上进行。插值xedge(i,j)在各个最强相关性方向的插值定义如公式(13)所示。

xedge(i,j) (x(i-1,j-2)+x(i+1,j+2)),if min(a,b,c,d,e)=a (x(i-1,j-1)+x(i+1,j+1)),if min(a,b,c,d,e)=b (x(i-1,j)+x(i+1,j)),if min(a,b,c,d,e)=c(x(i-1,j+1)+x(i+1,j-1)),if min(a,b,c,d,e)=d (x(i-1,j+2)+x(i+1,j-2)),if min(a,b,c,d,e)=e

(13)

通过以上分析比较,可见帧内行平均法和边缘插值算法在运动图像的处理效果上虽然优于组合帧法,但两个算法都各有欠缺,针对这两个算法在处理效果上相互补偿的特点,对它们进行改进得到一种优化的综合插值算法,这一算法综合了帧内行平均法和边缘插值算法的优势,并在一定程度上弥补了其它算法画面粗糙、图像边缘锯齿等不足。用此算法对运动图像进行去隔行处理,图像既有丰富的低频信号,画面柔和、细腻,又有丰富的高频信号,对垂直边缘、斜线边缘和曲线边缘都具有较好的保护作用,使图像质量得到明显改善,效果优于单独使用帧内行平均法或边缘插值算法。算法表达如公式(14)所示。

xave(i,j)= [xaverage(i,j)+xedge(i,j)](14)

3 算法在FPGA上的验证

本设计采用的是Altera公司推出的Stratix II系列EP2S30F672C5芯片,它具有13,552个自适应逻辑模块,27,104个自适应查找表,202个M512存储单元,144个M4K存储单元,1个M-RAM存储单元,16个DSP模块,64个乘法器单元,以及2个增强型锁相环和4个快速锁相环,此芯片完全满足算法的性能要求。

去隔行模块的运算包含4个核心子模块,分别实现运动检测、场间插值、场内插值和自适应插值4个功能。

为了计算插补像素,需要用到共计4场PAL制式的原始像素,必须使用片外存储设备SDRAM存储这些数据。视频缓存单元由先进先出组成,输入数据首先在控制器的作用下,将前三场数据写进SDRAM,然后经过输出缓存和当前场一起写进运动检测器。硬件实现原理框图如图4所示,它只是使用了一些加法器、减法器和比较器,并不包含复杂的乘除法运算,因此硬件开销较小,有利于保证电路的高速处理。

由运动检测算法可以得到运动检测模块的硬件实现原理框图,为简化起见,我们只画出9个像素差中的其中一个。图5所示为像素A和像素J的运动检测模块的硬件实现框图,其比较输出为cmp[0],其它依次类推分别为cmp[1]到cmp[8],然后它们都输入到用加法器实现的判决器中。图中“SUB”是减法器,“ABS”是计算绝对值的模块,“CMP”是比较器,比较器的输入为绝对值计算结果和预定的域值“G”,如果ABS>G,比较器输出“1”,否则输出“0”。JUDGE模块用来判断输出的检测结果,JUDGE的逻辑如公式(11)所示。

a1,(cmp[0])+cmp[1]+...+cmp[8])≥10,(cmp[0])+cmp[1]+...+cmp[8])

改进的场内插值实现原理图如图6所示,它综合了帧内行平均法和边缘检测算法,得到的画面既柔和又没有锯齿,其中“CMP”模块表示五值比较器,“AVE”模块表示相加取平均。

自适应插值模块较简单,只要根据a值选择算法即可,a=1时场内插值,a=0时场间插值,用一个二选一选择器即可实现。

4 实验结果分析

为了比较本文提出的去隔行算法与传统的去隔行算法的差异,在Quartus II软件环境下进行设计,使用Verilog HDL硬件描述语言对电路逻辑进行描述,在Altera公司的EP2S30F672C5芯片平台上进行验证,并分析了去隔行后图像传统算法与本文算法的峰值信噪比PSNR,计算公式如公式(12)所示。

PSNR=10lg (12)

式中,f(i,j)为原始图像亮度值,f'(i,j)为重建图像亮度值,图像尺寸MN表示图像分辨率,A为f(i,j)中的最大值,通常取255。

本文选择了具有代表性的两幅图像进行软件仿真,一幅为图像细节比较丰富的静止图像,另一幅为运动图像,实验结果如图7、8所示,PSNR值比较如表1所示。

从表中数据可以看出,本文提出的运动自适应算法与传统的算法相比,不管对静止图像还是对运动图像都具有较好的去隔行效果,它的PSNR值比传统算法高3~4dB。

从输出图形中可以看出,改进算法由于运动检测较精确,大大减少了误判发生的概率,并且改进的场内插值算法既具有丰富的低频信号,又具有丰富的高频信号,克服了静止图像画面粗糙、模糊、有运动锯齿、运动图像有阴影虚像的缺陷,对静止图像和运动图像都具有较好的去隔行效果。

5 结 论

本文对当前去隔行算法进行了分析比较和改进,提出了一种新型的去隔行算法。该算法首先对传统运动检测算法进行了改进,提高了运动检测的精度,减少了误判的发生,为下一步插值做好铺垫。而改进的对运动图像的插值算法综合了行内帧平均法和改进的边缘自适应算法,实验结果表明,本文算法无论对静止图像还是对运动图像都具有较好的去隔行效果,在一定程度上弥补了传统去隔行算法边缘不够平滑,出现锯齿,细节模糊,甚至有断点、虚像等缺点。同时,算法的复杂性又低于运动补偿滤波算法,硬件要求低,实现成本低廉,效果较好,性价比高,适合应用于中端视频产品及在FPGA设计中的应用。

参考文献

[1] PhuMQ, Tischer PE, WuH R. Amedian based interpo-lation algorithm for deinterlacing[J]. Proceedings of 2004 International Symposium on Intelligent Signal Processing and Communication Systems, IEEE Press, 2004(3): 390-397.

[2] Leiun Yu, Jintao Li, Yongdong Zhang, Yanfei Shen. Motion-adaptive-deinterlacing with accurate motion detection and anti-aliasing interpolation filter[J]. IEEE Transactions on ConsumerElectronics, IEEE Press, 2006, 52(2): 712-717.

[3] Yao Wang[美],Jorn Ostermann,Zhag Yaqing. 视频处理与通信[M]. 侯正信,杨 喜,王文全等译. 北京:电子工业出版社,2003:96-113.

[4] 刘 陟,吕炳朝,康 波. 一个基于运动自适应去隔行算法的视频系统[J]. 现代电子技术,2005,(16):89-91.

[5] Chang Y L, Lin S F, Chen C Y, Chen G. Video de-interlacing by adaptive 4-field global/local motion compensated approach. IEEE Transactions on Circuits and System for Video Technology, 2005, 15(12): 1569-158.

[6] Chang Y L, Lin S F, Chen L G. Extended intelligent edge based line average with its implementation and test method/Proceedings of the International Symposium on Circuits and Systems. Vancouver, Canada. 2004: 341-344.

作者简介:蔡玉强(1982-),男,山东临沂人,硕士,就读于电子科技大学光电信息学院,研究方向为基于OLED显示的视频显示系统,E-mail:。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:SPRT12864M液晶显示模块与DSP的接口及应用 下一篇:凸版印刷利用低温工艺的涂布型薄膜晶体管降低...