综述:视频去隔行算法简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
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
与线性滤波类算法相比,边界自适应滤波器在保留边界信息的同时减少了运算量(--维滤波降为一维滤波),是性价比很高的一类格式变换算法。
但作为一种场内算法,场频变换和隔行信源的混叠效应仍无法解决。
以上边缘检测只选择当前场内的上下各三个点,增强型的边缘检测还可选择上下各五个点甚至各七个点,计算示意图如下,但原理和核心思想同上相同。
1.2.3中值滤波算法
在所有的非线性算法中,中值滤波算法因其实现简单而成为最受欢迎的一种算法。
它隐含了对边界或运动的自适应,一种简单的三点中值滤波算法如下:
F i(x,y,t) = med{ F I(x,y-1,t), F I(x,y+1,t), F I(x,y,t-1)}
即输出帧的内插行为当前场的上下点和前一场当前点的中值。
中值滤波算法实质上包含着运动自适应的思想。
这是因为,如果图像区域是静止的,则F i(x,y,t)的值很有可能处在当前场上下两个像素点值的中间,此时根据中值函数的定义,F i(x,y,t)将直接等于F I(x,y,t-1)。
反之,若图像区域存在运动,则前后两场之间的变化会较大,导致F i(x,y,t)与处在当前场的F I(x,y-1,t)和F I(x,y+1,t)相差较远。
此时,通过中值函数,最后相当于切换到场平均滤波。
同样,选择更多的点进行中值滤波算法成为增强的中值滤波算法,常用的有7个像素中值滤波,即插值点帧内上下行的最临近的六点加上前一帧这个位置的一点,如下图所示。
中值滤波是一种比较简单有效的方法,在许多情况下有着良好的性能。
尽管中值滤波存在引起图像细节变形的缺陷,但是它能较好地保留物体边界信息,且易于硬件实现.
2 运动补偿的算法(Motion-Compensated Algorithms)
带运动补偿的去隔行算法是目前为止最先进的算法,其基本原理是通过运动估计(Motion Estimation ME)找出相邻场最匹配的块,计算出运动矢量,在运动轨迹上进行插值来重构帧。
采用运动补偿算法还原的图像能很好的保持原图像的垂直清晰度。
然而,尽管具有理论上的绝对优势,带运动补偿的技术直到90年代中期才开始被应用到消费类产品中去。
这是因为,这一类算法的基础——运动估计,是一个计算量极大的环节,需要消耗大量硬件资源。
随着各种快速算法的出现以及芯片规模与制造成本的下降。
才使得运动估计技术真正能在消费类产品领域内大量应用。
带运动补偿的去隔行算法是当前去隔行算法的研究热点,国内研究水平不一,相关论文也非常多,下文将重点简介各主要算法思想。
2.1 加权平均的运动自适应去隔行算法
本算法来源于《视频格式转换算法研究》
视频格式转换算法
研究.pdf
算法思想:简单的场内技术(如行重复、行平均)会引发锯齿或边缘模糊。
而简单的场间技术(如场插入、场平均)能保留空间细节,比较适合静止区域,但对运动物体会产生严重
的虚像。
基于边缘保持的滤波算法(又称十字滤波,即1.2.2节介绍的边缘自适应滤波算法)可以很好地将图像噪声滤除掉,同时也保持了图像的边缘,避免了滤波处理造成的图像边缘模糊。
基于上述的场间均值算法和图像边缘保持的滤波算法,本文提出了一种加权平均的运动自适应去隔行算法。
该算法既可以保持图像的空间特性,又可以保持图像的垂直细节,同时也不需要进行准确的运动信息估算,可以大大降低硬件设计的复杂度,提高设计的可靠性。
2.1.1 运动估计权值α的计算
运动信号矩阵M3x3的选择如下图所示:
二值化过程为:M3x3矩阵中的值和运动阈值(经验值)比较,比阈值大的为1,否则为0,组成运动标志矩阵 M13x3;
将M13x3和运动系数矩阵M23x3,对应位置相乘后求和得到权值α。
2.1.2 综合结果的计算
F i(x,y,t)=α*F S(x,y,t)+ (1-α)*F M(x,y,t)
其中:
F S(x,y,t)为场t-1和场t+1按1.1.2节的场间均值计算,即
F S(x,y,t) =[F I(x,y,t-1)+ F I(x,y,t+1)]/2
F M(x,y,t)为场t按1.2.2节介绍的边缘自适应插值算法,即
F M(x,y,t) = [F I(x-k,y-m,t)+ F I(x+k,y+m,t)]/2,其中k和m,使得
| F I(x-k,y-m,t)- F I(x+k,y+m,t)|最小,其中,k= -1,0,1,m= -1,0,1
2.2 基于运动检测和自适应加权滤波的去隔行算法
本算法来源于《自适应加权滤波的去隔行算法及其FPGA实现.pdf》
自适应加权滤波的
去隔行算法及其FPG
2.2.1 算法基本思想
F i(x,y,t)=α*F S(x,y,t)+ (1-α)*F M(x,y,t)
其中:
F S(x,y,t)为场t-1和场t+1按1.1.2节的场间均值计算,即
F S(x,y,t) =[F I(x,y,t-1)+ F I(x,y,t+1)]/2
F M(x,y,t)为场t按1.2.2节介绍的边缘自适应插值算法,即
F M(x,y,t) = [F I(x-k,y-m,t)+ F I(x+k,y+m,t)]/2,其中k和m,使得
| F I(x-k,y-m,t)- F I(x+k,y+m,t)|最小,其中,k= -1,0,1,m= -1,0,1
2.2.2 运动估计
运动信号矩阵M3x3同2.1.1定义相同,M3x3窗口内的个运动量对插补像素的运动权值α的贡献大小是不一样的。
通常认为窗中心的运动量对待插像素影响最大而窗口四角影响最小。
α的计算如下(M13x3见2.1.1定义):
c b c
α= b a b * M13x3
c b c
其中:4*a+4*b+c = 1
评价:本算法的关键是α的计算,这取决于a、b、c的取值。
2.3 用运动自适应加边缘检测的两级加权求和算法
本算法来源于《一种自适应去隔行算法及其电路设计》
一种自适应去隔行
算法及其电路设计.
2.3.1 算法基本思想
当运动成分加大时, 则场内内插值的权值大于场间重复内插值; 而当静止成分较大时,
场间内插值的权值会大于场内插值。
对在场内插值方式中, 根据边缘检测结果分别对Cubic 内插和边缘保护内插值进行加权求和。
用公式表示如下:
F i(x,y,t)=α*F S(x,y,t)+ (1-α)*F M(x,y,t)
其中:
F S(x,y,t)为场t-1按1.1.2节的场复制方法计算,即
F S(x,y,t) =F I(x,y,t-1)
关键是F M(x,y,t)为为场内Cubic 内插值和边缘自适应插值的加权值,即:
F M(x,y,t) =k e*F E(x,y,t)+ (1- k e)*F C(x,y,t)
F E(x,y,t)按1.2.2节介绍的边缘自适应插值算法,即
F E(x,y,t) = [F I(x-k,y-m,t)+ F I(x+k,y+m,t)]/2,其中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 C(x,y,t)见2.3.2节描述。
2.3.2 Cubic 内插值算法
采用4×4 窗口内插模块,图6 是4×4 窗口二维Cubic 插值示意图。
待求像素的灰度是由其邻域上已知像素通过加权求和决定的。
取待插值点为二维坐标平面的坐标零点, 则二维4×4 Cubic 插值的公式为
或
其中:
2.3.2 加权系数的计算
(1)场内差值和场间差值加权系数α的计算
α通过运动自适应检测计算出,如2.1.1节所示,α由场t-2、场t-1、场t和场t+1的数据计算出M3x3
α = 1/∑M3x3
(2)边缘自适应插值和Cubic 内插值加权系数k e的计算
k e = 1/ min{| F I(x-k,y-m,t)- F I(x+k,y+m,t)|} k=-1,0,1,m= -1,0,1
评价:cubic算法有点复杂,且不一定适合FPGA逻辑运算。
2.4 一种新型易于FPGA实现的去隔行算法
本算法来源于《一种新型去隔行算法的FPGA 实现》
一种新型去隔行算
法的FPGA实现.pdf
2.4.1 算法基本思想
对传统的运动检测算法进行改进,提高了检测的精度,可以比较精确地区分图像的静止和运动部分,然后采用不同的算法进行去隔行,其中运动部分采用改进的插值算法,综合了帧内行平均算法和边缘算法的优点。
F i(x,y,t)=α*F M(x,y,t)+ (1-α)*F S(x,y,t)
其中F S(x,y,t) =[F I(x,y,t-1)+ F I(x,y,t+1)]/2 即场间均值
F M(x,y,t)为场内行平均差值和场内边缘插值的均值,具体见2.4.3节描述
2.4.2运动估计
运动信号矩阵M3x3同2.1.1定义相同。
α的计算如下(M13x3见2.1.1定义):
1 dec(M3x3) >= G
α=
0 dec(M3x3) < G
2.4.3 改进的场内差值算法
设场内行平均差值为F A VG(x,y,t) =[F I(x-1,y,t)+ F I(x+1,y,t)]/2、
场内边缘插值采用共十点(上下各五个像素)的边缘检测差值,即
F EGE(x,y,t) = [F I(x-k,y-m,t)+ F I(x+k,y+m,t)]/2,其中k和m,使得
| F I(x-k,y-m,t)- F I(x+k,y+m,t)|最小,其中,k=-2, -1,0,1,2,m= -2,-1,0,1,2
F M(x,y,t) = [F A V
G (x,y,t)+ F EGE (x,y,t)]/2
2.5 基于运动检测的去隔行中值滤波算法
本算法来源于《一种带运动检测的去隔行中值滤波算法》
一种带运动检测的
去隔行中值滤波算法
2.5.1 算法基本思想
该算法能区分图像的运动和静止部分而分别采用不同的算法进行去隔行。
对静止部分,采用场复制的算法;而对运动部分,采用综合的中值滤波算法,这样就充分利用了视频信号在空间和时间上的相关信息,克服了原来算法去隔行时图像边缘不够平滑,出现锯齿,甚至有断点等不足。
F i(x,y,t)=α*F S(x,y,t)+ (1-α)*F M(x,y,t)
α为静态图像的差值加权系数,其计算见2.5.2节描述
其中F S(x,y,t) =F I(x,y,t-1) 即场复制算法
F M(x,y,t)采用场内中值滤波算法,具体见2.5.3节描述
2.5.2运动估计
运动信号矩阵M3x3同2.1.1定义相同,
设D(x,y,t) = |F I(x,y-1,t+1)-F I(x,y-1,t-1)|+ |F I(x,y,t+1)-F I(x,y,t-1)|+ |F I(x,y+1,t+1)-F I(x,y+1,t-1)|+ |F I(x-2,y,t+1)-F I(x-2,y,t-1)|+ |F I(x+2,y,t+1)-F I(x+2,y,t-1)|
即D(x,y,t) 选用的五点为该插值点前后场的相应点及其上下左右四点。
0 D(x,y,t) > G
α=
1 D(x,y,t) <= G
2.5.3 场内中值滤波算法
设F med2(x,y,t) = [F I(x-1,y,t)+ F I(x+1,y,t)]/2
设F med3(x,y,t) = med{F I(x-1,y,t), F I(x+1,y,t), F I(x,y,t-1)}
设F med7(x,y,t) = med{F I(x-1,y-1,t), F I(x-1,y,t), F I(x-1,y+1,t), F I(x+1,y-1,t), F I(x+1,y,t),
F I(x+1,y+1,t),F I(x,y,t-1)}
F M(x,y,t) = med{ F med2(x,y,t), F med3(x,y,t), F med7(x,y,t)}
2.6 基于运动检测的去隔行11阶低通滤波算法
本算法来源于《对隔行采样的视频信号及去隔行技术的分析》
对隔行采样的视频
信号及去隔行技术的
2.6.1 算法基本思想
F i(x,y,t)=α*F M(x,y,t)+ (1-α)*F S(x,y,t)
α为动态图像的场内插值加权系数
F S(x,y,t) = F I(x,y,t-1)
2.6.2 动态图像场内11阶低通滤波差值
F M(x,y,t) =a*F I(x+1,y,t)+ a*F I(x-1,y,t)+ b*F I(x+3,y,t)+ b*F I(x-3,y,t)
+c* F I(x+5,y,t) +c* F I(x-5,y,t)
其中 a=1.27324/2 ,b =-0.424413/2 ,c=0.254648/2
2.6.3 场内插值加权系数的计算
设D = |F I(x+1,y,t)-F I(x+1,y,t-2)|+ |F I(x-1,y,t)-F I(x-1,y,t-2)|
Sin(D*∏/(2*G)) 0<D<G 其中G为自定义常量,由实验得到α=
1else
2.7 基于FPGA优化运动检测去隔行算法的设计
本算法来源于《基于FPGA优化运动检测去隔行算法的设计》
基于FPGA优化运动
检测去隔行算法的设
2.7.1 算法基本思想
本文提出了一种新的优化运动检测去隔行算法,该算法能判断物体的运动状态,并根据其运动状态分别调用相应的算法进行去隔行,去隔行效果较好,实现成本低。
F i(x,y,t)=α*F M(x,y,t)+ (1-α)*F S(x,y,t)
α为动态图像的场内插值加权系数。
F S(x,y,t) = F I(x,y,t-1)
F M(x,y,t) = [F A V
G (x,y,t)+ F EGE (x,y,t)]/2
即F M(x,y,t)与2.4.3节介绍的算法完全相同,不再赘述。
2.7.2 动态图像的场内插值加权系数的计算
通过检测特征像素点与相邻像素的亮度差(相关性) ,即可判断图像的运动状态. 经过试验比较,选定作相关性比较的点为5个特定像素点及与其临近的上下左右四个像素点,这5个点之间的位置关系如下图所示.
其中, 阴影部分为插入行, S0 是特征像素点, S1 , S2 ,S3 , S4 是比较像素点. 定义特征像素点与比较像素点的相关性变量为Dt
(注:原文如此描述,可能有误)
0 Dt <G 其中G为自定义常量,由实验得到
α=
1else
2.8 基于运动补偿的自适应视频去隔行算法
本算法来源于《基于运动补偿的自适应视频去隔行算法》
基于运动补偿的视
频自适应去隔行算法
2.8.1 算法基本思想
本文采用双向块匹配运动估计算法,设当前偶场中的块C (eg 匹配块大小为8×8,搜索窗大小为16×16)分别在前后两奇场中进行搜索,可得到运动矢量MV1 (dx1,dy1)和MV2(dx2,dy2)。
由此可计算出前后两场中搜索到的块C1 和C2。
块C1 和块C2 的平均值可以作为插入值。
该插入场依然是奇场。
把求得的插入场与n-1 帧偶场进行交织,即可完成去隔行的操作。
利用已知的偶行来搜索未知的奇行,既能保留运动信息,又能得到最接近当前偶场的图像。
与传统的两种运动补偿方式相比,这样做能精确地搜索出匹配块而且搜索算法较简单。
F i(x,y,t)=α*F S(x,y,t)+ (1-α)*F M(x,y,t)
α为静态图像的场内插值加权系数。
F M(x,y,t) =[F I(x-1,y,t)+ F I(x+1,y,t)]/2 即场内均值
F S(x,y,t) = [F I(x+dx2,y+dy2,t+1)+ F I(x+dx1,y+dy1,t-1)]/2 即场间搜索到的运动块
2.8.2 场内插值加权系数的计算
通过自适应设定了参考域值SAD(当前块与匹配块差值的绝对和),通过比较每个块的SAD 与参考SAD 域值的关系来判断采用何种去隔行方法。
首先通过运动估计计算出前后两场中所有匹配块的平均SAD 值,取平均值的一半,以此作为参考SAD 域值,记为SADMIN;然后每个块的SAD 值与SADMIN 比较,若小于该域值则说明搜索到的匹配块误差不太大,可用运动补偿来进行插值,若大于域值,则通过场内的线性平均获得该场的插补场。
SAD C1=∑| C- C1|
SAD C2=∑| C- C2|
SADMIN = (SAD C1 + SAD C2)/2
1 SAD C1< SADMIN && SAD C
2 < SADMIN
α=
0 else
2.9 Altera基于运动检测和自适应加权滤波的去隔行算法
本算法来源于《用FPGA实现高清视频去隔行功能.pdf》
用FPGA实现高清视
频去隔行功能.pdf
2.9.1 算法基本思想
F i(x,y,t)=α*F S(x,y,t)+ (1-α)*F M(x,y,t)
其中:
F S(x,y,t)为场t-1和场t+1按1.1.2节的场间均值算法,即
F S(x,y,t) =[F I(x,y,t-1)+ F I(x,y,t+1)]/2
F M(x,y,t)为场t按1.1.1节介绍的场内行平均算法,即
F M(x,y,t) = [F I(x-1,y,t)+ F I(x+1,y,t)]/2
2.9.2 运动估计
运动信号矩阵M3x3同2.1.1定义相同。
1 ∑|M3x3| < G 其中G为自定义常量,由实验得到
α=
0 else。