基于块划分的空时域自适应差错掩盖算法

2019-01-17 06:32冰,彭强,陈
计算机与生活 2019年1期
关键词:差错边缘边界

王 冰,彭 强,陈 健

西南交通大学 信息科学与技术学院,成都 611756

1 引言

随着通信技术、计算机网络技术以及多媒体技术的发展,视频会议、远程医疗以及网络流媒体等与视频相关的应用已成为人们生活中必不可少的部分。这些技术的发展与应用在丰富了人们生活的同时,也对通信系统的发展带来了巨大的挑战。由于在传输之前必须要对视频信号进行压缩编码以降低码率,压缩后的码流对传输差错十分敏感,使得视频传输过程中面临着不可避免的差错与损失。常用的H.264[1]、HEVC[2]视频编码标准采用了一系列的视频压缩新技术,使得其具有高效的压缩性能,但是良好的压缩特性会导致视频码流对差错信息更加敏感,一旦出现丢包等差错事件,这些错误将在时间和空间上迅速蔓延,导致视频质量急剧下降,因此如何提高压缩码流的抗差错能力是现有视频编码标准的一大挑战。差错控制技术中的差错掩盖技术作为视频通信系统中抗差错的最后一道防线,起着不可或缺的重要作用[3]。

边界匹配算法[4]是最为基础及常用的差错掩盖算法,该算法的特点是计算量小,在很多场景下都能够得到可以接受的掩盖效果。然而该算法只考虑候选块与四周正确接收块的水平垂直边界差,没有考虑到参考帧中候选块周围区域像素与当前帧丢失宏块周围区域像素的匹配程度,即只利用了空域的平滑性而没有利用时域相关性;并且该算法用于寻找最佳匹配块的候选运动向量来自于丢失块周围区域正确接收宏块的运动向量,当丢失块运动向量发生较大变化时,很难在有限的候选运动矢量集中找到一个理想的运动矢量,这时只用时域差错掩盖算法并不能取得理想的掩盖效果,甚至会出现块效应失真等现象。之后,Peng等人提出了运动向量外推算法(motion vector extrapolation,MVE)[5],主要是根据视频的时域相关性较强的特点,假定场景中目标的运动具有一致性,将前一帧中所有子块的运动向量进行外推,选择候选子块中与受损子块重叠区域最大的子块的运动向量作为丢失子块的运动向量,然后通过运动补偿得到丢失宏块的最佳替代块。Zhou等人在文献[5]的基础上,利用丢失宏块周围正确接收宏块的运动向量,提出了一种更加精细的运动向量外推算法[6],提高了MVE的掩盖质量。Lin等人在上述基础上,利用丢失宏块周围正确接收宏块的残差对运动向量进行加权,提出了基于残差的运动向量外推算法(residual-based motion vector extrapolation,RMVE)[7]。该算法不需要周围区域的运动向量信息,在运动物体平滑的场景中可以得到很好的掩盖效果,但是在前景和背景交界处以及运动非线性的情况下,该算法的差错掩盖效果较差。上述差错掩盖算法的主要思路都是寻找或插值出相似块作为当前块的最佳替代块,然而在运动向量丢失的情况下,不管采用哪种方式差生的替代块都会与原始宏块有一定的误差。因此,文献[8]提出了一种基于非局部均值去噪算法的时空域差错掩盖算法(denoised temporal extrapolation refinement,DTER)。该算法将时域差错掩盖后的视频看成是受噪声污染的视频,然后对其进行去噪处理。DTER在很多视频场景中能够取得较好的掩盖效果,但是它的计算复杂度非常高,不适用于实时应用[9]。

针对现有算法的不足,本文提出了基于块划分的SSIM(structural similarity index)和边界联合匹配的空时域自适应差错掩盖算法。首先,利用丢失宏块周围正确接收的边缘信息,将宏块划分成不同形状的子块,划分的原则是保持子块的边缘完整性,即尽量确保穿过宏块的边缘位于同一个子块中,这样在对子块进行掩盖时可以保证边缘的完整性。其次,本文算法利用SSIM和边界匹配准则选择最佳替代子块。该最佳替代块不仅需要与周围边界保持平滑,而且该替代块周围区域与当前帧丢失子块的周围区域的结构性失真应该尽可能得小,遵循此原则得到的替代块具有更好的视觉感知质量,而且时间复杂度较低,适用于实时应用。

本文的组织结构如下:第2章介绍了算法采用的自适应分块策略;第3章详细介绍了基于SSIM和边界联合匹配的空时域差错掩盖算法;第4章通过实验对提出的算法进行了有效性与时间复杂度分析;第5章对全文进行总结。

2 自适应分块策略

由于边界匹配差错掩盖算法的最小处理单位为16×16的宏块,在纹理信息较为复杂的情况下,此方法不够精细。因此,有必要将宏块划分成不同的子块单独进行差错掩盖。现有的研究中,一部分相关算法是利用丢失宏块周围正确接受宏块的模式进行丢失宏块的模式预判;另外一部分算法是直接将宏块划分为4×4的子块进行掩盖。由于相邻宏块的分块模式有时会存在较大不同,利用第一种思路进行预判时,如果分块模式预测得不合适,则无法取得较好的掩盖效果;第二种思路的核心是将宏块划分成较小的单位,从而提高算法的掩盖精度,但是这在很大程度上会增加后续算法的时间复杂度。本文在综合考虑时间复杂度和可靠性的基础上,采用了一种简单的基于丢失宏块边缘纹理特点的自适应分块策略,该算法通过对丢失宏块周围区域正确接收的边界像素进行边缘检测,选择4条边的最强边缘点,利用边缘点的特征距离,选择最佳匹配边缘点对,并将通过此边缘点对的直线看作是最有可能穿过丢失宏块的边缘。根据边缘点对在边缘的位置坐标,对宏块进行模式划分,确保这两个边缘点对在同一个子块中,即确保子块边缘的完整性,之后对每一个子块单独进行差错掩盖算法。

2.1 边缘检测

边缘是在亮度值上发生突变或者不连续的点,人眼对边缘的失真非常敏感。假设丢失宏块上下左右四周宏块均正确接收,按照式(1)、式(2)对丢失宏块周围正确接收的边界像素进行Sobel滤波[10]:

其中,P(x,y)表示外边界像素值;Hc(x,y)、Hr(x,y)表示Sobel算子,如式(3)所示;Gr(x,y)、Gc(x,y)表示该点的梯度。

在对丢失宏块边界正确接收像素进行Sobel边缘检测时,会涉及到丢失宏块内边界像素,而内边界像素在掩盖之前是无法得到的。因此,本文对边缘的检测是在靠近丢失宏块边界的第二行或第二列进行的。那么,边缘检测像素点梯度的幅值和角度分别如式(4)、式(5)所示:

本文假设幅度大于给定阈值β的点为边缘点,并且每条边只取幅度最大的边缘点作为最强边缘点。在此基础上,定义边缘点(x,y)的特征向量,并根据特征向量的特征距离来寻找最强边缘点中的最佳边缘匹配对。边缘点(x,y)的特征向量定义如式(6)所示,两个最强边缘点的特征距离定义如式(7)所示:

其中,θ1,2表示连接(x1,y1)与(x2,y2)的直线的倾斜角。如果这两个点的特征距离在所有计算的特征距离里最小,则认为这两个点是最佳边缘匹配点对[10],即最有可能是位于同一边缘的点。

2.2 宏块分块模式

为了兼顾计算复杂度和差错掩盖质量,本文在宏块的划分过程中,以8×8的块为基本单位,并结合最佳边缘匹配对的匹配方式对宏块进行模式划分。为了保持边缘的完整性,分块的准则是最佳匹配对所在的子块需要作为一个整体进行差错掩盖,其他分块以8×8的单位进行掩盖。具体分块模式如图1所示。

Fig.1 6 block division patterns图1 宏块的6种分块模式

在差错掩盖过程中,本文采取了近似的方法,即假设4条边界上都存在最强边缘点,这样就会存在两对最佳边缘匹配对,选择匹配对特征距离最小的一对边缘点作为最有可能穿过丢失宏块的强边缘,连接这一对最强边缘点对,如果其以图1(a)中的4种方式中的任意一种跨过丢失宏块,那么即认为丢失宏块应该划分为4个8×8的子块,分别进行差错掩盖。图1(b)中,最强边缘点对分别在不同的两个8×8子块中,那么这两个子块应该作为一个整体进行差错掩盖。同理,图1(c)、(d)、(e)的分块方式以此类推。当最强边缘点对不存在或者分别位于对角8×8子块时,为了避免由于分块造成的子块间连接处不平滑的情况,这里将宏块作为一个整体直接进行差错掩盖。

3 基于SSIM和边界联合匹配的空时域差错掩盖算法

传统的边界匹配算法是以候选宏块内边界像素与当前帧丢失宏块外边界正确接收的边界像素之差最小作为最佳匹配准则,这样做的目的是选择空间连续性较好的候选块作为最佳匹配块,以确保掩盖后边界处尽量平滑。然而该算法并没有考虑候选宏块周围的像素与丢失宏块周围像素的相似程度,这样可能会导致替代块与周围区域不平滑的现象。并且该匹配准则是以对应位置像素之差的绝对值为判断依据,由于人眼对物体的结构失真较为敏感[11],边界匹配准则在很多情况下也不能选择更符合人眼视觉特性的匹配块。本文根据现有差错掩盖算法的不足,提出了基于分块的SSIM和边界联合匹配的空时域自适应差错掩盖算法。首先,利用丢失宏块周围正确接收的边缘信息,将宏块划分为不同形状的子块。划分的原则是保持子块的边缘完整性,即尽量确保穿过宏块的边缘位于同一子块中,这样在对子块进行掩盖时可以保证边缘的完整性。接下来利用SSIM和边界匹配准则共同选择最佳替代子块,这样不仅可以使替代块与周围边界保持平滑,而且可以保证选择的子块周围区域与当前帧丢失子块的周围区域的结构性失真较小,实现更好的结构对齐,使得掩盖后的视频图像更加符合人眼的视觉特性,得到更好的视觉感知质量。

3.1 空域插值

由于丢失宏块内的像素值为0,那么计算SSIM值时只能在子块周围区域进行,在这种情况下,当原始子块与替代子块的结构相差很大,而周围区域结构比较相似时,也能够得到较高的SSIM值,但是该替代块却不能成为最佳替代块。为了解决上述问题,在利用SSIM与边界匹配联合准则对丢失宏块进行计算之前,先对丢失宏块进行一个空域插值,这样计算SSIM值的区域就可以包括丢失子块。虽然对丢失宏块插值并不能代表其真实值,但这种思想可以在一定程度上弥补在计算SSIM时完全排除丢失子块像素值的缺点。

现有的研究中有很多插值算法,在综合考虑计算复杂度和插值效果两个因素后,本文根据预判的丢失块纹理信息的情况选择不同的插值算法。具体过程如下,首先按图2所示将平面均分为32个区间,对应16个方向,设置16个计数器C0,C1,…,C15,利用式(1)到式(5)在丢失宏块四周向外扩展8个像素宽的区域内进行Sobel边缘检测,得到每个像素p梯度的幅值和方向。当梯度的方向落入某一区间后,就将其归类为该区间对应的方向;当从p出发沿梯度方向的直线穿过丢失块区域时,将该方向对应的计数器Ck累加上该像素梯度的幅值;所有的像素计算完成后,将计数器大于阈值Th=1 300的点定义为穿过丢失宏块的强方向[12]。当强方向个数为0时,说明丢失区域为平滑区域,此时对该区域采用双线性插值[13];当强方向个数不为0时,采用多方向插值加权平均算法进行插值[14]。

Fig.2 Schematic of plane's partition图2 平面均分示意图

3.2 SSIM与边界匹配联合准则

本文算法通过计算候选子块周围正确接收区域与丢失子块对应位置周围区域的SSIM值,确定其结构相似性,并且计算候选子块内边界与丢失宏块的外边界之差确定两者在空域相邻位置的平滑性[15],最后联合这两个因素,提出了一种基于SSIM于边界联合匹配的准则,并利用此准则,确定最佳匹配块。

由于本文算法是利用丢失宏块的外边界的边缘特征将宏块划分为6种模式,因此在计算子块的SSIM值时,也需要根据上述宏块的划分模式对不同子块的周围区域进行选取,具体计算区域如图3所示。图中不同深度颜色的块代表宏块所划分的子块,每个子块连同包围它的白色区域共同构成计算该子块SSIM值的区域,整个白色区域的范围是以宏块为中心向外扩展8个像素的宽度。将任意子块计算SSIM值的区域记为S,假设v(x,y,t)表示当前帧空间坐标为(x,y)的像素值,当前待掩盖子块的候选运动向量为(vx,vy),那么它在参考帧中所对应的像素为v(x-vx,y-vy,τ-1)。当前帧中丢失区域用空域差值所得,那么当前待掩盖像素与其在参考帧中对应的像素的SSIM值为式(8)所示。区域内总的SSIM值为各像素点SSIM值的平均,SSIM的取值在[-1,1]之间。

Fig.3 Computational area of SSIM in 6 block divisions图3 6种分块模式下的SSIM计算区域

其中,μc、μf分别表示以像素v(x,y,τ)和v(x-vx,y-vy,τ-1)为中心的局部图像块的均值;σc、σf分别表示以像素v(x,y,τ)和v(x-vx,y-vy,τ-1)为中心的局部图像块的标准差;σcf如式(9)所示,局部图像块的大小为N×N,其中N=7,C1=(0.01×255)2,C2=(0.03×255)2。

根据SSIM算法可知,SSIM值反映了两个区域的结构相似程度,SSIM值越高则说明结构相似性越好;而SSIM值越低则说明结构失真越严重。除了考虑结构相似度,还需要考虑替代块与周围区域的空间相关性,即需要计算丢失块外边界与替代块内边界的SAD(sum of absolute defferences)值。SAD值越小,说明平滑程度越好;反之说明内外边界差距越大。

本文提出的算法将SSIM与边界匹配放在同一尺度下,根据式(10)选择匹配准则:

其中,N表示可用于该子块寻找最佳替代块的候选运动向量的个数;ssimi表示在第i个候选运动向量vi情况下该子块对应区域的SSIM值;SADi表示通过vi运动补偿所得到的替代块的内边界与丢失块可利用的外边界像素差的绝对值取平均;A为常数,用来控制衰减程度。

具体实现SSIM与边界联合匹配准则时,由于宏块是划分成不同的子块进行掩盖,为了能够充分利用掩盖后的子块位于丢失宏块内的边界信息,确保子块之间边界像素的连续性,本文采用最佳匹配子块优先掩盖的原则。主要分为以下几步:

步骤1选取候选运动矢量集中的任一运动矢量作为丢失子块的运动向量。计算候选子块内边界和丢失宏块外边界像素之差的绝对值,并取其平均值。结合上述方法计算出SSIM值,利用联合匹配准则式(10)计算出子块的匹配值v1。

步骤2用相同的方法,计算该子块选取候选运动矢量集中其他运动矢量时的匹配值v2,v3,…,选取匹配值中最大的值对应的候选块作为该子块的最佳替代块。若丢失宏块未划分为子块,则结束;若划分为不同子块,则继续进行下述掩盖。

步骤3用上述方法计算该宏块所划分的其他子块的最佳替代块,得到每一子块的最佳匹配值,选取其中最大的最佳匹配值对应的子块作为最先掩盖的子块,并将其对应的最佳替代块填入该子块中。

步骤4为了保证子块间像素的连续性,接下来用相同的方法掩盖剩余子块中与第一个已掩盖子块有相邻边界的两个子块。不过在考虑内外边界之差时,需要考虑与已有掩盖子块边界的像素之差。

步骤5用相同的匹配准则掩盖第4步之后仍未掩盖的子块。

以图4为例,宏块的划分模式为模式a,如果上述步骤3中得到的编号1、2、3的子块的最佳匹配块对应的最佳匹配值为v1_max、v2_max、v3_max,假定v2_max最大,那么首先将该值对应的最佳替代块作为对应2子块的替代块。在掩盖剩余两个子块时,计算边界像素差值时,要考虑已掩盖子块的边信息。用相同的方法,计算出子块1、3的最佳匹配块对应的匹配值v′1_max、v′3_max。如果v′1_max最大,那么先掩盖子块1,最后掩盖子块3。

Fig.4 Concealment order of sub-blocks图4 子块的掩盖顺序

本文采用的候选运动向量集包括:(1)丢失宏块上下左右正确接收的靠近丢失宏块边界的子块的运动向量;(2)这些周围子块运动向量的均值;(3)参考帧中相同位置的子块的运动向量。也就是说用于确定丢失宏块的最佳替代块的候选运动矢量集是有限的,这样做的目的是提高算法的效率。然而,有时会出现候选运动矢量集中的运动矢量与丢失宏块原来的运动向量有较大区别,不管选取运动矢量集中的哪一个运动矢量作为丢失宏块的运动向量都是不合适的。在这种情况下,差错掩盖的效果较差,可能会出现明显的块效应或者明显的和周围正确接收区域不匹配的现象。针对以上情况,本文采用空时域相结合的自适应差错掩盖算法。算法的主要思想是先根据候选运动矢量集,利用上述SSIM与边界联合匹配准则确定各子块的最佳替代块,然后判断各子块的最佳匹配块对应典型ssimi、e-SADi/A是否分别大于给定的阈值ε1、ε2。当ssimi小于ε1时,说明最佳替代块周围区域与丢失块周围区域结构相似性较低,该替代块不能获得很好的掩盖效果;当e-SADi/A小于ε2时,说明最佳替代块与周围区域的平滑性不好,这时需要采用空域插值方法,利用该子块周围可以得到的邻域宏块的边界对该子块进行插值,并将插值像素作为丢失子块的替代块。

本文中的ε1、ε2的选取与丢失宏块的纹理信息有关,当丢失宏块纹理信息较丰富时,空域插值会使掩盖后的区域变得模糊,此时应当减少使用空域插值掩盖,即ε1、ε2应当设置得较小;而当丢失宏块较为平坦时,ε1、ε2设置得相对较大。丢失宏块纹理信息是根据选择空域插值算法时计算的强方向个数判断的。当强方向大于8个时,认为丢失区域属于纹理复杂的区域,应当将ε1、ε2设置得较小,在本文中ε1=0.3,ε2=0.3;当强方向小于8个时认为丢失区域为平坦区域,在时域掩盖不理想的情况下,可以较多地进行空域插值掩盖,此时设置ε1=0.45,ε2=0.55。

4 实验结果与分析

本文采用JM14.0[16]平台,在该平台的差错掩盖模块中实现并验证算法性能。其他3种对比算法分别为JM14.0 使用的边界匹配算法[4]、DTER[8]和 RMVE[7]。实验选取具有代表性的5种CIF测试序列,分别为City序列、Crew序列、Tempete序列、Foreman序列、Football序列。测试序列均为100帧,帧率为30frame/s,量化参数为28,编码结构为IPPP。在本文算法中,固定阈值是通过对本次实验测试序列之外的视频序列进行实验得到的,阈值的确定原则为在不同的序列下均能取得较好的差错掩盖效果。设定幅度大于给定阈值β=50的点为边缘点,式(10)中常数A=35。实验硬件配置为:CPU,Intel®CoreTM2 Duo CPU T6670@2.20 GHz;RAM,2.00 GB。

4.1 不同差错掩盖算法掩盖效果的比较

4.1.1 掩盖效果的客观质量比较

表1为5个测试序列在丢包率(packet loss rate,PLR)分别为3%、5%、10%以及20%的情况下本文算法以及对比算法的差错掩盖性能。其中峰值信噪比(peak signal to noise ratio,PSNR)反映的是掩盖后视频序列的信噪比,计算方法为式(11)所示,其中n是一个像素值所用的比特数,W、H表示一帧的长度和宽度,f(i,j)和f′(i,j)分别表示原始视频帧和失真视频帧;而SSIM衡量的是掩盖后的视频与原始视频序列的结构相似性,由于人眼对结构失真特别敏感,因此SSIM值也反映了掩盖后视频序列的视觉质量。表1中加粗的PSNR和SSIM数值表示不同掩盖方法对同一测试序列实验时PSNR和SSIM的最大值。

从表1可以看出,对于City测试序列,本文算法在3%~20%丢包率时,PSNR值相对JM14.0有0.56~1.60 dB的提升;并且本文算法的匹配准则考虑了结构失真,可以选择结构失真较小的替代块作为最佳匹配块,因此SSIM值为4种算法中的最高值,即本文算法可以在一定程度上提高视频序列的视觉质量。

Table 1 Comparison of 4 algorithms'error concealment performance for different packet loss rates(PSNR,SSIM)表1 4种算法在不同丢包率下差错掩盖性能比较(PSNR、SSIM)

对于Crew测试序列而言,本文算法在不同的丢包率下,相对于JM14.0、DTER和RMVE算法分别有0.85~1.09 dB、0.04~0.30 dB和0.72~1.43 dB的提升,并且本文算法的SSIM值在不同丢包率下也是最高的。造成这样结果的原因是Crew序列的场景中有照相机一直拍摄,闪光灯的作用会使相邻帧存在较大的亮度差。当这些帧发生丢包时,利用JM14.0和RMVE算法,寻找的最佳替代块可能与周围正确接受的区域有较大的亮度差,导致替代块的平滑性差,因此这两种算法并不能取得较好的掩盖效果。但是DTER算法可以利用非局部均值去噪算法对时域掩盖后的替代块进行处理,利用周围正确接收区域的像素进行加权,提高替代块与周围区域的平滑性。而本文提出的算法是空时域自适应算法,当替代块的平滑性较差时,会使用空域插值算法进行掩盖,因此可以取得较好的掩盖效果。

对于Tempete序列,本文算法在3%~20%丢包率下,相对于JM14.0有0.71~1.17 dB的提升,而与DTER和RMVE算法效果相当。但从表1中可以看出本文算法的SSIM均为最高,说明本文算法能够很好地保持视频序列的结构特征。

对于Foreman测试序列而言,本文算法在3%~20%丢包率下相对于JM14.0、DTER和RMVE分别有1.13~1.76 dB、0.35~0.51 dB和0.82~1.16 dB的提升。造成这样结果的原因是此测试序列场景中人讲话时存在头部晃动的情况,即运动的非线性运动较为明显。JM14.0采用的边界匹配差错掩盖算法是利用周围运动向量作为候选运动向量,而RMVE是利用运动向量外推获得当前块的运动向量,这两种算法在非线性运动较为强烈的场景中并不能取得很好的掩盖效果。本文算法是基于分块的,并且在时域掩盖效果不好时,会选择空域掩盖算法。Foreman序列的纹理较为简单,空域插值也可以获得比较好的效果。

对于Football测试序列而言,本文算法在不同丢包率下,相对于JM14.0、DTER和RMVE分别有1.28~1.78 dB、0.43~0.93 dB和1.04~1.27 dB的提升。该视频场景运动较为复杂且剧烈,非线性运动较为明显,因此其他3种对比算法均未能获得较好的掩盖效果。由于场景中纹理并不复杂,在时域掩盖效果不好时,本文算法会自动选择空域掩盖算法,掩盖效果较好。

4.1.2 掩盖效果主观质量比较

由于视频的最终受体为观测者本身,为了说明本文差错掩盖算法的主观质量效果,图5、图6分别展示了City以及Foreman测试序列在不同算法下的掩盖效果。其中图5为City测试序列的第44帧在丢包率为10%时使用不同差错掩盖算法后的主观视觉质量对比。图6为Foreman测试序列的第58帧在丢包率为10%时使用不同差错掩盖算法后的主观视觉质量对比。图5(f)和图6(f)中的红圈标注处是本文算法相对其他3种算法掩盖效果主观质量有明显提升的地方。从图5和图6中可以看出本文算法在提升掩盖视频视觉质量上取得了较好效果。

Fig.5 Subjective results for error concealment of sequence City图5 City测试序列差错掩盖后主观视觉质量

4.2 不同差错掩盖算法时间复杂度的比较

表2为不同算法在3%~5%不同丢包率下解码测试序列的平均解码帧率,平均解码帧率值越大,表示单位时间内解码的视频帧数越多,即执行效率更高。从表2可知,本文算法的时间复杂度比JM14.0和RMVE差错掩盖算法的时间复杂度高,并且随着丢包率的增加,本文算法的时间复杂度会相对增加,增加的时间开销主要是由于SSIM的计算以及对宏块子块的差错掩盖操作,但是基于本文算法在PSNR以及SSIM值上的提升,增加的时间复杂度是在可以接受的范围之内。从表2中可以看出,本文算法的时间复杂度远低于DTER算法。

Fig.6 Subjective results for error concealment of sequence Foreman图6 Foreman测试序列差错掩盖后主观视觉质量

Table 2 Comparison of 4 algorithms'time complexity for different packet loss rates表2 4种算法在不同丢包率下的时间复杂度比较

5 结束语

本文算法在分析已有差错掩盖算法缺点的基础上,提出了基于分块的SSIM和边界联合匹配的空时域自适应差错掩盖算法。利用丢失宏块周围正确接收的边缘信息,将宏块划分成不同形状的子块,尽量确保穿过宏块的边缘位于同一个子块中,这样在对子块进行掩盖时可以保证边缘的完整性。然后,利用SSIM和边界联合匹配准则的最佳替代子块不仅可以尽量保证替代块与周围边界的平滑,而且选择的子块周围区域与当前帧丢失子块的周围区域的结构性失真较小,这样的替代块具有更好的视觉感知质量。最后通过比较掩盖后的质量指数与给定阈值来判断时域掩盖质量是否采用空域插值掩盖。通过实验可以看出,本文算法在不同的丢包率下,相对于JM14.0和RMVE算法分别平均获得0.91~1.48 dB和0.86~1.29 dB的提升。并且本文算法在不同丢包率以及不同测试序列下取得的SSIM值均高于其他算法,这说明本文算法选择的最佳替代块与丢失块的结构相似性高。结合图5、图6可知,利用本文算法掩盖后的视频图像具有更高的主观视觉质量。本文算法的掩盖效果与DTER算法相似,但是在时间复杂度上,本文算法的效率比DTER算法高40~60倍。综上所述,本文算法在权衡掩盖效果和时间复杂度后,明显优于其他对比算法。

猜你喜欢
差错边缘边界
守住你的边界
突破非织造应用边界
直升机防差错设计
意大利边界穿越之家
基于组织行为学对建立容错纠错机制必要性分析
人蚁边界防护网
一张图看懂边缘计算
差错是习题课的有效资源
那些损失上百万的演员
在边缘寻找自我