一种基于空间预测的运动补偿帧率上转换算法
2022-10-24马文丹俞文静
马文丹,李 凡,俞文静
(广州软件学院网络技术系,广州 510990)
0 引言
电影通常以每秒24帧的速度播放,而电视节目则以30 Hz的标准帧率播放。特别是在多媒体物联网中,受无线信道带宽的限制,对视频序列进行编码时要求较低的帧率。低帧率基本可以满足人们的娱乐需求,但当视频序列中存在大量快速运动时,会出现运动模糊的现象。高帧率的视频序列相比低帧率视频包含更少的模糊和伪影,能够带来更好的视觉体验。因此,在多媒体物联网的接收端,应提高视频帧率以使视频更加流畅、观看者的舒适度更高。为满足上述需求,运动补偿帧率上转换(motioncompensated frame rate up-conversion,MC-FRUC)通常可以用来将低帧率视频转换为高帧率视频。
MC-FRUC是一种在两个相邻的原始帧之间插入多个插值帧的视频处理技术,近年来得到了学者们的广泛关注。由于插值算法的精度在很大程度上影响插值帧质量,因此对运动估计(motion estimation,ME)、运动矢量平滑(Motion vector smoothing,MVS)和运动矢量映射(motion vector mapping,MVM)进行了大量研究。ME是计算两个相邻原始帧间的运动矢量场(motion vector field,MVF);MVS是对得到的运动矢量(motion vector,MV)进行校正,提高MV的准确度;MVM是得到插值帧的MVF。
块匹配算法(block matching algorithm,BMA)是各种ME算法中最典型的方法,与逐像素ME相比具有较低的复杂度。一个标准块的大小远远小于视频帧的大小并且大多数目标像素分布在不同的相邻块,由此提出了基于时空相关性的三维递归搜索算法(3D recursive search,3DRS)。为了尽可能真实地获取MV,MVS对块匹配进行了平滑约束,从而有效抑制异常的MV。MVS可以通过中值滤波和惩罚项来实现,但是这种方法增加了计算复杂度。MVS之后,利用MVM从相邻原始帧的MVF推导出中间帧的MVF。前向MVM是将MV的二分之一沿着其方向映射到目标块,会出现少量的时域错配问题,中间帧的某些块可能存在多个MV或者没有MV,导致重叠和空洞。根据时间对称假设,双边MVM对中间帧进行双边运动估计(bilateral motion estimation,BME),能够有效避免块伪影。然而,由于视频序列统计偏差,异常MV总是存在,导致运动补偿插帧过程中出现边缘模糊和伪影。现有的运动补偿插帧算法,如重叠块运动补偿(overlapped block motion compensation,OBMC),可以减少异常MV带来的不良影响。
现有研究校正异常MV耗费大量的计算,但MV精确度的提高不尽人意。本文提出了一种基于空间预测的ME算法,此算法的核心是一种预测模型,它定义了两种类型的块:基础块和缺失块。为提高BME计算速度,计算基础块的MV时采用连续消除算法(successive elimination algorithm,SEA),减少搜索候选并采用下采样模式进行块匹配,进而从相邻基础块的MV准确地恢复出缺失块的MV。实验结果表明,所提算法生成的上转换视频效果良好且计算复杂度较低。
1 所提基于空间预测算法
本文提出基于空间预测算法的流程图如图1所示,首先将视频帧进行块分类:基础块和缺失块,再利用SEA进行全搜索ME获取基础块的MV,然后采用空间预测方法根据基础块的运动信息实现缺失块的ME,结合两类块的MV值,使用两帧参考帧进行插值中间帧。
图1 基于空间预测算法流程图
1.1 块分类
空间预测技术的关键在于有效利用空间相关性,而应用该技术的前提在于块分类。空间预测技术模型如图2所示。灰色块表示基本块,其余块表示缺失块,这两种块在水平和垂直方向交替,通过BME算法精确获得基础块的MV,然后利用相邻基础块的运动信息计算出每个缺失块的MV。
图2 块分类模型
1.2 双边ME
缺失块的MV获得由相邻基本块的MV进行预测,更好的ME算法可以保证基础块MV的精确度。全搜索ME在基础块上进行BME算法。如图3所示,全搜索ME是匹配搜索窗口内最优运动轨迹,但缺点明显。假设搜索半径为8,块尺寸为16×16,则需要搜索289个块才能找到最佳匹配块。以CIF为例,396个16×16尺寸的匹配块,使用全搜索ME意味着巨大的计算量,因此,引入SEA降低计算复杂度。
图3 全搜索ME示意图
假设插值帧f的分辨率是×,块的大小为×,每帧包含×/s个标准块,和必须能被s整除,每个块的左上角像素坐标(,)作为参考,第帧和第+1帧中块(,)的亮度累加和计算如下:
其中f(+,+)和f(+,+)分别表示f和f中(+,+)坐标处的亮度,(,)是块中像素坐标。
其中B(-,-)是f中块(-,-)所有像素行向量,‖·‖是向量的范数。计算后,v'在搜索窗口内进行候选块更新,如果满足以下不等式:
计算第个候选块的差值D:
更新当前基础块MVv:
然后更新=min{D,};否则,v保持不变,搜索窗口内的所有候选块根据以上过程对称遍历。
1.3 MV预测
通过全搜索ME获取基础块的MV,当前缺失块相邻四个基础块的MV作为候选矢量,候选矢量集组成如下:
当前缺失块的左上角像素坐标设为,根据双向绝对差值和计算缺失块的MV:
其中B(-)是f中块(-)所有像素行的向量,‖·‖是向量的范式,是候选向量。
预测得到缺失块MV,两类块的所有MV形成插值帧f的MVFV,然后利用OBMC计算f中=(,)处的像素值:
其中v是V在处的MV,表示三种重叠类型:=1代表没有重叠部分;=2代表两块重叠部分;=3代表四块重叠部分,根据重叠类型设置值,=1,=1;=2,=1/2;=3,=1/4。
2 实验仿真结果
所有用于实验的测试序列为标准的CIF(352×288)格式和30帧/秒,通过不同视频序列测试空间预测算法性能,并与文献[21]和文献[22]ME算法进行比较。从主客观两个角度对插值帧进行评价,客观评价采用峰值信噪比(peak signal-to-noise ratio,PSNR)和结构相似度(structural similarity,SSIM)。
2.1 主观评估
选择Foreman和Stefan视频序列进行主观视觉质量对比实验,其中Foreman包含适度的场景运动,而Stefan有大量的剧烈运动。图4和图5为对比算法和所提算法的插值帧,分别以foreman的第78帧和Stefan的第88帧为例。观察插值帧效果,可以看出对比算法人脸出现明显模糊和伪影,所提算法对人脸部分插值效果更好,对比算法在Stefan中存在大量的背景模糊和广告牌字体错位问题,而所提算法可以减少背景模糊并提供更多的细节。总体而言,所提算法可以提供更好的主观视觉质量。
图4 三种算法的Foreman序列视觉对比
图5 三种算法的Stefan序列视觉对比
2.2 客观评估
表1显示了不同FRUC技术的PSNR值。对于9个测试视频序列,与文献[21]方法相比,本文算法显著提高了PSNR值,最大提高了2.72dB,达到了提高插值帧质量的目的。文献[22]方法可以有效地应用于相对静态或包含较少运动的视频序列中,如Foreman和Mother。但对于包含大量运动的视频,如Bus,City,Football,Mobile,Stefan,所提算法可以更精确地跟踪目标的轨迹,PSNR值比文献[22]提高了3.21dB。不同FRUC技术的SSIM值如表2所示。通过对比看出,本文提出的算法具有明显的优势,在处理静态视频方面只比文献[22]效果差。如表3所示,所提算法运行时间比文献[21]方法和文献[22]方法短,说明空间预测算法的计算复杂度较低。
表1 不同ME方法在测试序列上PSNR值比较
表2 不同ME方法在测试序列上的SSIM值比较
表3 不同ME方法在测试序列上的平均处理时间比较
综上可得,所提算法的计算资源配置更有效,结合全搜索ME和空间相关性,保证精度的同时节省计算时间。
3 结语
本文提出了一种基于空间预测的ME算法,以提高插值帧的MVF精度。设计了一个预测模型,将视频帧划分为基础块和缺失块。首先用BME估计基础块的MV,然后由相邻基础块的MV推导出缺失块的MV。为了减少冗余计算,设计了双边SEA来改进BME。基于MVF的空间相关性,设计MV预测来计算缺失块的MVF。实验结果表明,本文所提算法能够在较低计算复杂度下提高插值帧的客观和主观质量。