赵培栋, 韩 军, 闵友钢, 蒋慧钧
(1.上海大学通信与信息工程学院,上海 200072;2.上海音像资料馆,上海 200051)
基于多帧参考的分块视频闪烁消除算法
赵培栋1, 韩 军1, 闵友钢2, 蒋慧钧2
(1.上海大学通信与信息工程学院,上海 200072;2.上海音像资料馆,上海 200051)
提出一种基于多帧参考的分块视频闪烁消除法.该方法通过多帧的时序亮度变化,估计每一个块的闪烁增益,并通过该闪烁增益模型调整当前帧的亮度,消除闪烁.同时,设计一个针对局部块运动的运动检测器,来修正闪烁模型调整所带来的运动模糊现象.该算法能有效去除视频闪烁现象,并且具有复杂度低、处理速度快的特点.
视频修复;闪烁修复;分块修复;多帧修复
Abstract:Thispaper proposesa deflicker algorithm based onmulti-frame referenceof blocked video.The algorithm estimates every block’sflicker gain by considering the temporal change inmulti-frames to adjust intensity of the current frame by using this flick-gain-model.We design amotion detector to correctmotion blur caused by the adjustmentof the flickermodel.The algorithm can effectively remove video flicker and has low computation complexity therefore faster processing speed.
Key words:video restore;flicker restore;block restore;multi-frame restore
视频画面闪烁在 20世纪二三十年代的旧影像资料片中极为常见.闪烁的画面不仅降低了影像本身的质量,同时也极易给观赏者带来视觉疲劳,最终可能导致观赏者完全丧失继续观看的兴趣.造成视频画面闪烁的原因有很多,包括胶片本身的局部退化反应、片面的灰尘、拍摄过程中受非正常光源干扰造成的曝光不均、旧摄像机本身存在的亮度自适应增益不均等[1-2].随着数字视频技术的发展,将数字技术运用到修复闪烁污染视频中已成为闪烁修复的主要研究方向.
仔细观察目前的旧影像资料可以发现,闪烁主要可分为整体闪烁和局部闪烁.整体闪烁是指,视频场景中相邻帧之间整体亮度急剧变化,以 1~2帧的时间间隔为周期连续发生明暗交替现象.整体闪烁是闪烁问题在时序上的表现形式.局部闪烁主要是指,局部位置发生与整体画面不协调的亮度不均变化,在旧视频中多发生在画面的左右两侧以及边角区域附近.局部闪烁是闪烁问题在空间上的表现形式.
闪烁是指在整个图像平面上分布光滑的信号.从信号频率角度分析,闪烁信号属于一种低频信号.目前,已有的关于闪烁问题的研究主要分为非线性模型法和线性模型法.
非线性模型是将前后两帧图像之间的亮度关系视为一种非线性变化关系的数学模型,通过估计表示这种非线性关系的函数来消除两帧图像之间存在的闪烁.Naranjo等[3]提出了一种基于直方图匹配的灰度映射估计方法,其思路是以多帧图像的直方图均值为参考直方图,并假设参考直方图均衡后的结果与待去闪烁帧图像直方图均衡后的结果一致.Vlachos[4]提出了一种基于视频图像中曝光不均的模型估计方法,其主题思想就是分析曝光强度、感光密度和图像灰度之间的关系,并建立数学模型.该方法从原始曝光问题进行分析,更具有物理意义.但是文献[3-4]都是基于图像整体的变化,缺点是对复杂图像的局部变化鲁棒性差,对斑点噪声敏感,从而降低了估计精度.
更多的研究是以线性模型作为闪烁问题的研究模型对象,对线性模型中的闪烁增益参数和闪烁偏移量参数进行估计和修复处理.文献[5]提出了以视频镜头所有帧的灰度平均值为基准,补偿镜头中每一帧与平均值的差值来直接修正亮度闪烁,这是一种最简单的基于亮度偏移量估计的线性模型.文献[6]提出一种零阶线性模型,该方法通过前后帧图像的最大最小灰度值以及图像均值来估计模型参数,但该方法将单帧画面的闪烁参数看作一个固定值,而没有考虑它们在空间上的变化.文献 [2,7]是目前比较认可的去闪烁方法,其中文献 [2]同时考虑了闪烁增益和偏移量,并利用最小均方误差估计闪烁模型参数,但该方法的缺点在于采用了修复帧与未修复帧的合成输出,导致最终结果永远带有轻微闪烁.此外,该方法只选用 1帧作为参考帧,同时估计增益参数和偏移量参数,计算极为复杂,对于复杂的场景画面,很难保证参数估计的准确性.
根据上文的分析,目前的一些闪烁消除的算法主要有两方面的不足:①认为闪烁只是一种时序上的表现,因此,将闪烁模型参数在单帧画面中看作一个定值,而忽略了闪烁的空间特性;②在闪烁修复时,只考虑前后 1帧之间的亮度变化关系,而选取单帧作为参考帧会对参数估计的准确性带来偏差.基于以上两方面的综合考虑,本研究提出一种基于多帧参考的分块闪烁消除方法.
在空间上,该方法对画面帧各个分块的闪烁参数独立计算,即在画面的不同区域利用不同的参数进行闪烁修复.在时序上,以前向多帧画面作为参考,从而提高参数估计的准确性,算法流程如图1所示.算法分为分块预处理、闪烁修正、运动修正 3个步骤进行.闪烁修正模块在对亮度进行调整的同时,针对基于闪烁本身呈现的低频特征[2,8-9]作空间和时序的平滑修正,以使视频画面亮度更加自然.运动修正模块对闪烁修复帧各块作运动检测,以修正运动块区域时序平滑后产生的运动模糊现象.
图1 算法流程框图Fig.1 Algor ithm flow char t
对于闪烁污染而言,亮度增益是全局性的影响,因此,算法采用增益型闪烁线性模型,其基本形式为
2.1 视频分块
在消除闪烁之前,充分考虑和利用闪烁在空间上呈现缓慢变化的特点,首先对视频进行分块.当图像中的某个区域 φ足够小时,对于 I(i,j)∈φ,闪烁参数在该区域可看作一个定值,因此,将视频帧由原来W ×H的像素矩阵分块为 W′×H′块矩阵.这样,在整个图像上,闪烁参数既是一个随位置变化的值,同时对于指定位置的块 φm,n,其对应的闪烁增益am,n又为一个常数,即
分块后,对整帧画面中各个位置的闪烁增益a(i,j)的计算,就变成了对增益矩阵中与图像块对应位置的闪烁增益 am,n的计算 (其中 0≤i≤W-1,0≤j≤H-1,0≤m≤W′-1,0≤n≤H′-1).
2.2 闪烁修正
闪烁修正分为 4个步骤进行,即参数估计、亮度调整、单帧平滑和时序平滑.前两步可消除闪烁画面中亮度的不自然变化;后两步则根据闪烁低频特性对闪烁参数以及画面亮度进行修正,以避免在去闪烁亮度调整时出现亮度突变失真或引入新的闪烁.
为了提高增益参数估计的准确性,本算法采用了前向多帧参考的方法来计算闪烁增益.对于当前帧的每一小块 φk,m,n(其中 k为当前帧号),按图2所示,搜索前向多帧与其位置对应的图像块.
图2 前向帧搜索示意图Fig.2 Previous frame search schematic d iagram
若参考的帧数为 F,块宽和块高分别为Wb和Hb,则该块的亮度增益为
式中,分子代表当前帧自身该块亮度均值,分母代表前F-1帧加上当前帧该位置图像块亮度的时序均值.
对视频帧所有块进行如上计算以后,即可得到如下的一个完整的闪烁增益块矩阵
算法运行之初,由于 k 由于该算法针对每一个块都作一次增益参数估计,因此,直接利用式 (5)进行调整,会破坏以遵循闪烁空间低频特性的调整原则,势必造成空间中局部闪烁严重的区域有亮度不均的情况,出现块效应.为了消除这一影响,保证去闪烁的过程中遵循闪烁空间低频特性,本研究使用 3×3平滑掩模滤波对增益参数矩阵进行空间平滑,平滑以后的增益参数调整矩阵为 这样,当前帧每一块内各像素值可通过下式调整: 同样地,再采用时序平滑调整[7]来保证闪烁消除后画面的平稳,不引入新的闪烁.对于当前帧的每个子块都按图3的方式进行调整,其中 Ts为一个平滑判决门限,该门限决定了算法对图像前后帧像素差异的敏感程度.门限越大,算法对像素差异越不敏感,可以更好地保持画面平稳,但会更多地残留前帧信息,使运动区域更为模糊.当前一帧块与当前帧对应块的亮度差值大于 Ts时,则直接输出当前帧块结果;当差值小于 Ts/2时,则直接输出前一帧块结果;当差值在 Ts与 Ts/2之间时,以当前帧与前一帧 3∶1的加权方式进行时序平滑. 2.3 运动修正 根据 2.2节所述,由于时序平滑会对运动区域造成模糊现象,因此,有必要对运动区域进行适当修正.从信号角度分析,运动与闪烁的明显区别在于,运动区域在时序上呈现高频的特征,而闪烁在时序上呈现低频特征.对于每一个块,需添加运动检测修正操作.本研究选用传统的平均差值检测法: 设置阈值门限 Td,用以区分运动块和闪烁块.若MADφm,n(k)大于 Td,则认为该块存在运动,在处理中不对该块进行时序平滑处理;若小于 Td,再利用式 (8),(9)判断第 k-1帧与第 k-2帧;若仍小于 Td,则认为该块的亮度差异是由闪烁的时序特性引起的,对该块的像素作 2.2节中的时序平滑调整.Td越小,越能保持运动区域的清晰,但是对闪烁的修正也越差;Td越大,越能保证视频亮度平稳,但对运动区域的检测将变得不敏感. 图3 时序平滑调整流程图Fig.3 Tem poral-smooth adjustment flow char t 根据以上的分析,本研究对三段旧视频资料进行实验 (见表 1).取时序的平滑阈值 Ts=10,参考帧F=4,运动检测阈值 Td=20.本算法通过和 MSU修复帧以及原始帧合成算法[9]进行比较,来作为分析的依据. 表 1 测试序列Table 1 Test sequences 3.1 花瓶序列测试结果 该视频前后帧的平均亮度存在有规律的整体大幅周期波动,前后帧最大亮度差为 9.经过算法处理后,可以达到较理想的稳定效果,最大亮度差为 2.算法运算效率可达 20帧 /s的处理速度. 时序亮度对比如图4所示. 图4 花瓶序列时序亮度对比Fig.4 Temporal L uma curve compare of Vase 第 84~86帧效果对比如图5所示. 3.2 演讲序列测试结果 该视频主要存在局部闪烁,在画面左侧以及顶角附近较为明显.虽然,经算法处理后,图像依然残留了部分局部闪烁,这是由于在这些位置闪烁变化缓慢,导致在指定参考帧范围内该位置始终呈现欠曝光或过曝光状态 (如图6(b)左上角所示).但是由图7可见,算法处理后的修复视频亮度曲线更趋平缓,算法对序列亮度的适应调整快于MSU算法.在576分辨率下,算法效率为 6~7帧 /s.由于采用分块参数计算,图像中的局部不均匀闪烁处有明显改善. 第 32~34帧效果对比如图6所示. 3.3 Paula序列测试结果 该视频同样存在周期为 1~2帧的整体大幅周期波动,同时视频存在大的前景运动和镜头转动.经过算法处理,画面亮度得到很好的稳定,算法效率同样可以达到 20帧 /s的准实时处理速度.由图8可见,在保持亮度稳定的同时,与MSU算法相比,本算法更好地保证了画面中自然亮度的变化 (例如镜头转动使画面内容产生变化而导致的正常画面亮度变化).人物在运动中也保持了较好的清晰度,但由于只使用了简单的平均差值运动检测器,在镜头转动时,可以看到图9(b)中窗台附近依然会存在一些运动模糊以及分块处理所引起的块效应.今后,可以采用基于运动矢量的局部运动预测和补偿来更好地进行运动修正,以避免上述现象. 图5 花瓶序列修复结果Fig.5 Restoration result of Vase 图6 演讲序列修复结果Fig.6 Restoration result of Speech 第 115~117帧效果对比如图9所示. 表 2是 3个序列原始的和经过闪烁消除处理以后的时序亮度方差对比结果. 本工作主要针对旧视频资料中的亮度闪烁问题进行研究,分析了一些经典算法的优缺点,并提出了一种基于多帧参考的分块闪烁消除算法.从效果来看,对于前后帧在整体上亮度变化极快的闪烁损伤序列有很好的修复效果,在保持原有画面的同时,可以完全感觉不到闪烁的存在.同时,算法对于每一个分块参数仅用了极少的乘法运算,避免了诸如文献[2]中为了作均方误差估计而引入的大量乘法以及指数对数运算.因此,复杂度的降低使得算法在纯软件平台上,对于小分辨率画面也能达到准实时处理速度,而大分辨率画面的处理也有 6~7帧 /s的处理速度.对于旧视频中左右边缘局部闪烁的问题,本算法也有明显的效果,但在闪烁发生缓慢区域,空间上仍有轻微闪烁残留.在今后的研究中,可以考虑完善算法模型,将闪烁增益与偏移量结合起来对视频进行修正.同时,进一步研究一种基于运动矢量的局部运动检测修正方法,以得到更好的完善修复效果. 图7 演讲序列时序亮度对比Fig.7 Tem poral L uma curve compare of Speech 图8 Paula序列时序亮度对比Fig.8 Temporal L uma curve com pare of Paula 图9 Paula序列修复结果Fig.9 Restoration result of Paula 表 2 序列方差对比Table 2 Sequence var iance compare [1] SCHALLAUER P,PINZA,HAASW.Automatic restoration algorithms for 35 mm film [J].V idere:Journal of Computer Vision Research,1999,1(3):62-63. [2] ROOSAMALEN P.Restoration of archived film and video[D].Delft:Delft University of Technology,1999:23-44. [3] NARANJO V,ALBIOL A.Flicker reduction in old films[C]∥Proc of the 2000 International Conference on Image Processing (ICIP-2000),Vancouver,Canada.2000:657-659. [4] VLACHOS T. Flicker correction for archived film sequences using a nonlinear model [J]. IEEE Transactions on Circuits and Systems for Video Technology,2004,14(4):508-516. [5] WU Y,SUTER D.Historical film p rocessing[C]∥ Proc SPIE.1995:289-300. [6] DECENCIECE E. Restauration automatique de films anciens[D]. Paris:Ecole Nationale Superieure des M ines de Paris,1997:35-46. [7] VATOLIN D,STRELNIKOV K.VirtualDub MSU deflicker filter[EB/OL].[2009-04-08]. http:∥www.compression.ru/video/deflicker/index_en.html. [8] 周磊,周源华.电影胶片修复及噪声处理关键技术的研究 [D].上海:上海交通大学,2008:92-96. [9] KOKARAM A C.On missing data treatment for degraded video and film archives:a survey and a new Bayesian approach[J]. IEEE Transactions on Image Processing,2004,13(3):397-415. (编辑:赵 宇 ) Deflicker Algor ithm Based on M ulti-frame Reference of Blocked Video ZHAO Pei-dong1, HAN Jun1, M IN You-gang2, JIANG Hui-jun2 TN 911.73 A 1007-2861(2010)04-0342-07 10.3969/j.issn.1007-2861.2010.04.003 2009-05-11 浙江省科技计划重点科研资助项目 (2007C21014) 韩 军 (1965~),男,副教授,博士,研究方向为视频与图像处理.E-mail:hanjun@shu.edu.cn3 实验结果
4 结 束 语
(1.School of Communication and Information Engineering,ShanghaiUniversity,Shanghai200072,China;2.Shanghai Audio and Video Information Center,Shanghai200051,China)