目录1 非运动补偿的去隔行算法 (3)1.1 线性滤波去隔行 (3)1.1.1 空间滤波(Spatial Filtering) (3)1.1.2 时间滤波(Temporal Filtering) (3)1.1.3 时空滤波(Spatial-Temporal Filtering) (4)1.2 非线性算法 (4)1.2.1运动自适应算法(Motion-Adaptive Algorithms) (4)1.2.2边缘自适应算法(Edge-Adaptive Algorithms) (5)1.2.3中值滤波算法 (5)2 运动补偿的算法(Motion-Compensated Algorithms) (6)2.1 加权平均的运动自适应去隔行算法 (6)2.1.1 运动估计权值α的计算 (7)2.1.2 综合结果的计算 (7)2.2 基于运动检测和自适应加权滤波的去隔行算法 (7)2.2.1 算法基本思想 (7)2.2.2 运动估计 (8)2.3 用运动自适应加边缘检测的两级加权求和算法 (8)2.3.1 算法基本思想 (8)2.3.2 Cubic 内插值算法 (8)2.3.2 加权系数的计算 (9)2.4 一种新型易于FPGA实现的去隔行算法 (9)2.4.1 算法基本思想 (10)2.4.2运动估计 (10)2.4.3 改进的场内差值算法 (10)2.5 基于运动检测的去隔行中值滤波算法 (10)2.5.1 算法基本思想 (10)2.5.2运动估计 (11)2.5.3 场内中值滤波算法 (11)2.6 基于运动检测的去隔行11阶低通滤波算法 (11)2.6.1 算法基本思想 (11)2.6.2 动态图像场内11阶低通滤波差值 (11)2.6.3 场内插值加权系数的计算 (11)2.7 基于FPGA优化运动检测去隔行算法的设计 (12)2.7.1 算法基本思想 (12)2.7.2 动态图像的场内插值加权系数的计算 (12)2.8 基于运动补偿的自适应视频去隔行算法 (12)2.8.1 算法基本思想 (13)2.8.2 场内插值加权系数的计算 (13)2.9 Altera基于运动检测和自适应加权滤波的去隔行算法 (13)2.9.1 算法基本思想 (13)2.9.2 运动估计 (14)视频去隔行处理综述去隔行处理的基本原理是根据图像序列在时间和空间的相关性,产生出空缺位置处的像素点。
通过这种处理,可以最大限度的恢复出逐行扫描图像,改善电视画面的质量;同时也生成了点阵显示设备可以接受的逐行格式。
去隔行的任务就是将隔行扫描的输入场(包括奇场和偶场)转换成帧。
这些帧表示与输入相同的图像,但包括所有行的采样。
下文为描述方便,定义如下:F I(x,y,t):输入的当前第t场,当前像素坐标位置为x行,y列F i(x,y,t):待插的当前第t场,当前像素坐标位置为x行,y列F O(x,y,t):输出的当前第t场,当前像素坐标位置为x行,y列一般定义去隔行输出帧如下:F I(x,y,t) x mod 2 == t mod 2 (即奇场的奇行或偶场的偶行)F O(x,y,t) =F i(x,y,t) 其它去隔行算法主要分为非运动补偿(Non-Motion Compensation)和运动补偿(Motion Compensation)两大类。
非运动补偿算法是早期比较简单,且硬件实现比较容易的算法,主要包括线性和非线性两种算法。
运动补偿类算法是目前最先进的去隔行算法,与非运动补偿算法相比,运动补偿算法极大的提高了去隔行运算的准确度,但同时由于加大了硬件实现的难度,这种算法一直停留在理论研究阶段,直到九十年代中期随着vLsI技术的发展和算法的改进,面向普通消费类市场的单芯片运动估计器的出现,运动补偿类的格式转换算法才开始成为研究的热点。
下面将分别对非运动补偿算法和运动补偿算法以及运动估计算法做简要介绍。
1 非运动补偿的去隔行算法基于非运动补偿的去隔行算法分为两种:线性类算法和非线性类算法。
这两种算法中都包括空间(场内)、时间(场间)和时空算法。
1.1 线性滤波去隔行线性滤波算法具有简单易实现的优点,目前仍在一些低端视频格式转换领域内被广泛应用。
其基本思想是:各场中需要补齐的像素点等于它的若干相邻点的加权和。
线性滤波的相邻点包括两类,即同一场上的相邻像素(空间相邻点)以及相邻场上的像素(时间相邻点)。
对于相邻点的分类就引出了三种不同的滤波器类型:空间滤波(Spatial Filtering),时间滤波(Temporal Filtering),以及时一空滤波(Spatial—Temporal Filtering)。
1.1.1 空间滤波(Spatial Filtering)所谓空间滤波,就是在求取未知点的时候只使用同一场内相邻点的信息。
最简单的空间滤波就是扫描线重复(Line Repetition),即一场中未知的像素点直接取它上面相邻点的值,简称场内行复制算法。
用公式的形式来表示如下:F I(x,y,t) x mod 2 == t mod 2 (即奇场的奇行或偶场的偶行)F O(x,y,t) =F I(x-1,y,t) 其它(即取上一行同一列的像素值)另一种稍微复杂一点的形式为线平均(LineAveraging),即未知的像素点等于其上下两个相邻已知的点的值的平均,简称场内行平均算法。
公式表示如下。
F I(x,y,t) x mod 2 == t mod 2 (即奇场的奇行或偶场的偶行)F O(x,y,t) =[F I(x-1,y,t)+ F I(x+1,y,t)]/2 其它即取上一行和下一行同一列的像素值均值)上述两个空间滤波有一个共同的特点,即它们在时间频率方向上是全通的,这说明使用空间滤波器不会造成视频运动信息上的损失。
但是,由于其频谱在垂直方向上的低通形状,使得视频信号在垂直方向上的一些高频分量被抑制,从而降低了图像在垂直方向上的清晰度。
1.1.2 时间滤波(Temporal Filtering)与空间滤波正好相反,时间滤波就是利用了待插值点在时间轴上的相关性,使用所有相邻场内的点来求取当前场的未知像素。
最简单的时间滤波就是场重复(Field Repetition),即一场中未知的像素点用上一场对应的已知像素值来代替,简称场复制法。
公式表示如下:F I(x,y,t) x mod 2 == t mod 2 (即奇场的奇行或偶场的偶行)F O(x,y,t) =F I(x,y,t-1) 其它(即取上一场同行同列的像素值)另一种改进的时间滤波算法是将当前场的像素值采用上一场和下一场同行同列像素均值,公式表示如下:F I(x,y,t) x mod 2 == t mod 2 (即奇场的奇行或偶场的偶行)F O(x,y,t) =[F I(x,y,t-1)+ F I(x,y,t+1)]/2 其它即取上一场和下一场同行同列的像素值均值)如果视频中没有运动的话,这一滤波器就是最优滤波器。
时间滤波器在垂直方向上是全通的,因此不会造成图像垂直清晰度上的损失,但其在时间频率上的频谱的衰降,会造成视频运动信息的损失。
1.1.3 时空滤波(Spatial-Temporal Filtering)所谓时空滤波,就是在计算像素点的值的时候综合考虑空间邻点与时间邻点,它结合了上述两种滤波算法的特性,利用时间空问三维邻域内的信号相关性来重构待插信号。
从理论上说,如果视频信号满足采样定理,即其频谱没有混叠的话,那么使用时空滤波器就能完美地从隔行信号恢复出逐行信号。
由于具有较好的处理品质,此类滤波算法在早期的去隔行芯片中得到广泛运用,一个常用的时空滤波器的待插像素值为:F i(x,y,t)=[F I(x-3,y,t)+ 8*F I(x-1,y,t)+ 8*F I(x+1,y,t)+ F I(x+3,y,t)-5* F I(x-2,y,t-1) +10* F I(x,y,t-1) -5* F I(x+2,y,t-1)]/18该算法表示当前场的4个像素(上一行、上三行、下一行、下三行)和上一场的三个像素值(同行、上两行、下两行)的加权均值,各像素的加权系数分别为8/18、1/18、8/18、1/18、10/18、-5/18、5/18。
该滤波器也称为VT滤波器(参见《对隔行采样的视频信号及去隔行技术的分析》介绍)。
线性类格式变换算法结构简洁,规则易于芯片实现,处理品质比较稳定。
但线性滤波器也存在诸多缺陷,如通带和止带的频率很难选择和所设计的低通滤波器不够理想等。
1.2 非线性算法线性空间滤波类算法会引入图像混叠,而线性时间滤波对于运动场景会引入运动模糊。
随着对多种算法的特性和由此引起的图像退化现象的深入理解,人们开始考虑设计能够根据场景内容在不同算法和不同系数间进行自动调整的算法,以综合不同算法的优势。
这样在上世纪80年代后期和90年代早期出现了很多非线性类的自适应变换算法。
1.2.1运动自适应算法(Motion-Adaptive Algorithms)在没有运动的情况下,时间滤波器的性能最好。
而在有运动,但没有过多的垂直细节的情况下,空间滤波的效果最好,很自然地,我们想到能否将前面已有算法结合起来。
根据情况,有选择地使用时间滤波或空间滤波。
运动自适应算法就是根据上述思想发展起来的。
运动自适应算法需要一个检测图像中是否存在运动的模块,称为运动检测模块(Motion Detector),根据运动检测模块的输出来调整相应的内插策略。
为了保证运动检测的有效性,必须假定运动检测算法所必需满足的条件:a)相对信号来说,噪声必须足够小;b)信号中的低频部分的能量必须大于噪声与频率混叠部分;c)视频中的物体大小必须大于像素点的大小。
运动检测的算法有许多,当检测出运动的可能性很大时,结果将会倾向于采用运动最优滤波器。
反之则会倾向于静止最优滤波器,从而达到了自适应的目的。
待插值点公式可表示为:F i(x,y,t)=α*F S(x,y,t)+ (1-α)*F M(x,y,t)其中:F S(x,y,t)为静止图像部分;F M(x,y,t)为运动图像部分;α为加权系数,由运动检测模块输出的运动等级设定。
1.2.2边缘自适应算法(Edge-Adaptive Algorithms)边缘自适应算法的基本思想是:当视频中存在运动,而必须采用帧内内插算法时,我们就尽量选择一条边,使沿着这条边方向上的内插失真最少。
对45°、90°、135°三个方向进行边缘检测, 如上图所示, 取所在方向上的两个像素的绝对差值最小的方向作为边缘保护方向, 边缘保护插值点则为相应边缘保护方向的两个像素点的平均值。
定义k和m,使得 | F I(x-k,y-m,t)- F I(x+k,y+m,t)|最小,其中,k= -1,0,1,m= -1,0,1则F M(x,y,t) = [F I(x-k,y-m,t)+ F I(x+k,y+m,t)]/2与线性滤波类算法相比,边界自适应滤波器在保留边界信息的同时减少了运算量(--维滤波降为一维滤波),是性价比很高的一类格式变换算法。