一种时空域相结合的自适应错误隐藏修复方法及系统与流程

文档序号:17282140发布日期:2019-04-03 01:13阅读:223来源:国知局
一种时空域相结合的自适应错误隐藏修复方法及系统与流程

本发明涉及视频修复技术领域,尤其涉及一种时空域相结合的自适应错误隐藏修复方法及系统。



背景技术:

在带宽受限的无线信道或者网络上传输视频流,数据包丢失和延迟难以避免。人是视频数据的最终接收者,视频质量不好会影响人们观看。因此,需要采用某种形式的错误恢复技术,用以恢复丢失视频数据或者减轻错误传播。

视频编码标准H.264不仅要降低比特流的大小,也要保留视频质量。当视频传输到接收端后,H.264解码器会对数据进行扫描并标记错误位置,然后进行数据的修复,修复的技术称为错误隐藏(error concealment,EC),该技术的功能在解码端实现,其主要是恢复和估计丢失的信息,包含两类修复方式:空域错误隐藏和时域错误隐藏。空域错误隐藏方法是利用周边没有丢失的数据或者已经修复好的数据对损失宏块进行恢复,通常是插值的方法。时域错误隐藏方法是估计丢失的运动矢量和使用时域运动补偿来替代丢失的宏块。

空域错误隐藏方法(spatial error concealment,SEC)一般使用在像素域,也有在频域内使用。例如Alkachouh等人提出的是基于DCT域的修复方法,损失宏块的错误隐藏可以通过估计周边宏块的DC均值来修复;Salama等人提出使用近邻的宏块边界像素进行加权平均计算来替代丢失宏块数据;上述提出的错误隐藏方法也存在一些不足,比如出现边界效应;Kwok等人使用周边宏块进行线性掩模操作,估计最有可能的边界方向,然后沿着边界线性插值;Rong fu等人提出了一种SEC方法,基于边界探测得到边界强度来选择使用最近像素线性插值和方向插值;Salama等人提出了基于重构块的帧内方向插值算法,先判断边界方向,然后根据方向使用周围正确接收像素来插值。该方法效率较高,但是当丢失宏块聚集在一起时,修复后容易出现插值错误。

时域错误隐藏方法比空域错误隐藏方法数据恢复效果好,其主要利用视频帧之间的时域相关性。Wang等人提出了边界匹配算法(BMA),最大限度地减少重建块的内部边界和外部边界之间的全变差,获得运动矢量来修复受损宏块。Yi Wang等人提出了一种在无线网络传输中的帧间错误隐藏算法,主要是考虑了正确接收宏块的帧间划分模式,对受损块进行运动修复。如果缺失宏块,则估计运动矢量仍然是不准确的。

目前基于帧编码划分模式的时域错误隐藏方法与空域错误隐藏方法相结合来解决视频数据丢失以及错误传播的方法还没有。



技术实现要素:

本发明所要解决的技术问题是:提供一种时空域相结合的自适应错误隐藏修复方法及系统。

为了解决上述技术问题,本发明采用的技术方案为:

一种时空域相结合的自适应错误隐藏修复方法,包括:

获取已解码的图像信息;

确定所述图像信息中待修复的帧;

若所述待修复的帧为I帧,采用空域修复方法对待修复的帧进行修复;

若所述待修复的帧为P帧,采用时域修复方法对待修复的帧进行修复。

本发明采用的另一技术方案为:

一种时空域相结合的自适应错误隐藏修复系统,包括获取模块、确定模块、第一采用模块和第二采用模块;

所述获取模块,用于获取已解码的图像信息;

所述确定模块,用于确定所述图像信息中待修复的帧;

所述第一采用模块,用于若所述待修复的帧为I帧,采用空域修复方法对待修复的帧进行修复;

所述第二采用模块,用于若所述待修复的帧为P帧,采用时域修复方法对待修复的帧进行修复。

本发明的有益效果在于:

本发明设计的错误隐藏算法,具有好的兼容性,可以嵌入到现有的视频编码框架里面。在空域修复中,该发明提出的自适应SEC策略可以根据帧内编码模式以及分析接收块的位置信息来判断使用合适的算法来修复丢失的宏块信息。丢失宏块周围的宏块编码模式反应了该区域的基本状态:平坦、纹理、边界区域以及运动幅度大小,而周边接收宏块解码正确与否也决定着哪种修复算法更适合修复当前的丢失状况。

空域修复中的方向插值算法先对丢失宏块进行区域划分,使用基于5×5大小的8方向Sobel算子对丢失宏块周边像素计算插值方向,选出符合纹理以及边界方向的地方进行插值计算。8个方向的选择性插值提高了修复的精确度。

空域修复的方法仅仅是利用了空域相关性,而视频之间是存在时域相关性的。本发明使用视频帧间编码模式来灵活的决定使用适当的修复算法。

附图说明

图1为本发明的时空域相结合的自适应错误隐藏修复方法的步骤流程图;

图2(a)为本发明的具体实施方式的从视频帧截取的图像块的示意图;

图2(b)为本发明的具体实施方式的从视频帧截取的图像块的示意图;

图2(c)为本发明的具体实施方式的从视频帧截取的图像块的示意图;

图3为本发明的具体实施方式的第一宏块示意图;

图4为本发明的具体实施方式的八方向示意图;

图5为本发明的具体实施方式的宏块区域划分图;

图6(a)为本发明的具体实施方式的Sobel算法的水平方向模板;

图6(b)为本发明的具体实施方式的Sobel算法的22.5°方向模板;

图6(c)为本发明的具体实施方式的Sobel算法的45°方向模板;

图6(d)为本发明的具体实施方式的Sobel算法的67.5°方向模板;

图6(e)为本发明的具体实施方式的Sobel算法的垂直方向模板;

图6(f)为本发明的具体实施方式的Sobel算法的112.5°方向模板;

图6(g)为本发明的具体实施方式的Sobel算法的135°方向模板;

图6(h)为本发明的具体实施方式的Sobel算法的157.5°方向模板;

图7(a)为本发明的具体实施方式的八方向的插值示意图;

图7(b)为本发明的具体实施方式的Sobel算法的采样示意图;

图8为本发明的具体实施方式的加权插值示意图;

图9为本发明的具体实施方式的改进的TEC算法流程图;

图10(a)为本发明的具体实施方式的每个4×4块修复顺序示意图;

图10(b)为本发明的具体实施方式的每个4×4块修复顺序示意图;

图10(c)为本发明的具体实施方式的每个4×4块修复顺序示意图;

图10(d)为本发明的具体实施方式的每个4×4块修复顺序示意图;

图11(a)为本发明的具体实施方式的每个8×8块修复顺序示意图;

图11(b)为本发明的具体实施方式的每个8×8块修复顺序示意图;

图11(c)为本发明的具体实施方式的每个8×8块修复顺序示意图;

图11(d)为本发明的具体实施方式的每个8×8块修复顺序示意图;

图11(e)为本发明的具体实施方式的每个8×8块修复顺序示意图;

图11(f)为本发明的具体实施方式的每个8×8块修复顺序示意图;

图12(a)~(i)为三个视频序列的图像质量修复对比;

图13(a)~(k)为FOREMAN序列的图像质量修复对比;

图14(a)~(b)为CREW序列的图像质量修复对比。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

参阅图1-14,本发明提供的一种时空域相结合的自适应错误隐藏修复方法,包括:

获取已解码的图像信息;

确定所述图像信息中待修复的帧;

若所述待修复的帧为I帧,采用空域修复方法对待修复的帧进行修复;

若所述待修复的帧为P帧,采用时域修复方法对待修复的帧进行修复。

所述“若所述待修复的帧为I帧,采用空域修复方法对待修复的帧进行修复”具体为:

若所述待修复的帧为I帧,定位所述待修复的帧中丢失数据的宏块的位置;所述宏块为已解码图像信息中的像素点;所述丢失数据的宏块为第一宏块;

获取所述第一宏块四周的宏块的丢失情况;

若所述第一宏块四周的宏块均为正确接收的宏块,则采用空域修复中的方向插值方法对所述第一宏块进行修复;

若所述第一宏块四周的宏块存在错误接收的宏块,若正确接收的宏块的划分模式个数在预设的阈值范围内,则采用空域修复中的帧内修复方法对所述第一宏块进行修复;

若所述第一宏块四周的宏块存在错误接收的宏块,若正确接收的宏块的划分模式个数超出预设的阈值范围,则采用空域修复中的方向插值方法对所述第一宏块进行修复。

进一步的,“获取所述第一宏块四周的宏块的丢失情况”具体实施如下:

先检测当前丢失宏块的上、下、左和右的宏块接收情况以及周围宏块帧内划分模式来选择使用适当的算法进行修复丢失数据。

视频数据的丢失大部分是随机的,那么丢失的宏块数据就不一定是离散状态,若连续丢失宏块而使用现有方向插值(directional interpolation,DI)或者最近像素线性插值(the nearest pixel linear interpolation,NPLI)方法会造成插值数据失败和明显的块效应,为了解决这个问题,提出了基于块位置自适应的SEC策略,对丢失宏块四周进行检测,得到四周宏块丢失的情况,再根据周围块的帧内分割模式决定使用改进的DI还是NPLI。改进的DI即为本发明下文中提供的方向插值方法。

视频编码标准H.264/AVC的解码端会对视频帧中丢失的宏块进行扫描标记,从视频帧的列两端开始逐步向里面进行扫描,扫描过程进行错误隐藏处理。如图2的(a)所示,可以看到如果丢失的宏块数据是完全离散的,则使用现有的DI方法效果较好。但是通常数据的丢失都是像图2中(b)和(c)所示的情况,若同样采用现有的DI方法,当插值沿着某个角度时,这个角度采样所在的相邻宏块已丢失,则效果会大打折扣。因此,本发明提供了一种改进的DI方法,即为本发明下文中提供的方向插值方法。

进一步的,“若所述第一宏块四周的宏块均为正确接收的宏块,则采用空域修复中的方向插值方法对所述第一宏块进行修复;若所述第一宏块四周的宏块存在错误接收的宏块,若正确接收的宏块的划分模式个数在预设的阈值范围内,则采用空域修复中的帧内修复方法对所述第一宏块进行修复;若所述第一宏块四周的宏块存在错误接收的宏块,若正确接收的宏块的划分模式个数超出预设的阈值范围,则采用空域修复中的方向插值方法对所述第一宏块进行修复。”具体实施方式如下:

如图3所示,如果当前损失宏块S四周存在邻居十字形宏块同时丢失的情况,这里称1和2为S的邻居十字形宏块,同理2和3也是,则使用NPLI方法进行修复处理。比如当前损失宏块S块需要恢复,邻居块0和3是可用的,而邻居块1和2是不可用的,则扫描到当前损失宏块S块时,它的下三角区域的采样都在邻居块1和2边缘,就会出现计算错误。

因此本发明提供了改进的DI方法,具体如下:

先检测受损宏块周围的宏块接收状态,该接收状态包括正确接收的宏块和错误接收的宏块;(正确接收的宏块指没有数据丢失的宏块,错误接收的宏块指存在数据丢失的宏块),将正确接收和错误位置进行标记。然后根据错误宏块所在位置以及帧内编码模式进行修复。具体如下:

检测当前丢失宏块周围宏块的帧内编码划分模式,并且设置阈值T来统计划分模式的个数。在H.264/AVC标准中,亮度的帧内编码模式主要有两种:4×4和16×16的划分模式。当受损宏块四周正确接收到的宏块都是4×4的划分模式时,可以判断当前宏块处在非平坦区域(非平坦区域表示灰度变化率较大,也就是说具有数据丢失)。本发明实施例中将4×4的划分模式标识为1。设置一个阈值T,若个数T<=1就执行NPLI算法对受损宏块进行修复。当划分模式T大于等于2时,可以使用更为精确的改进方向插值方法来修复丢失宏块。因此SEC策略可以根据划分模式以及阈值T来自适应的选择修复方法。

提出的SEC方法由改进的DI和NPLI方法组成(简称DN),如果IDR帧(即为I帧)出现数据丢失,则使用提出的DN方法。

进一步的,所述空域修复中的方向插值方法(改进的DI)为:

采用8个方向对所述第一宏块进行区域划分;其中8个方向分别为水平、垂直、22.5度、45度、67.5度、112.5度、135度和157.5度方向;

对划分后的区域的边界计算边界的梯度向量;

根据计算得到的边界的梯度向量计算边界的梯度幅值;

通过边界的梯度幅值确定8个方向的相关性大小;

根据相关性大小对第一宏块进行插值处理。

当自适应的SEC策略条件为假时,执行改进的方向插值。

改进的DI方法由宏块划分、计算边界方向和插值计算三部分组成。现有的DI方法大部分是基于垂直、水平或者增加两个斜对角45度方向自适应进行插值,4个方向插值只用相关性最大的方向插值解决了垂直水平方向一起加权插值所造成的虚假边缘的现象,但是四方向插值由边缘方向计算精确性决定,若边缘方向计算的误差较大的话,图像的质量会下降,出现黑点或黑块。如图3所示,为了进一步提高计算精度,而使用8个方向的预测:水平、垂直、22.5度、45度、67.5度、112.5度、135度和157.5度方向。

进一步的,所述“采用8个方向对所述第一宏块进行区域划分”具体实施方式如下:

由于插值方向有大多数的2个和4个方向变为8个方向,采样方面就有了一定的难度,对当前损失宏块进行区域划分,如图4所示,将16×16块划分为2条对角线和8个区域,黑色的小块看成像素点。每个区域对应不同的采样边界,比如损失宏块的左对角线上方的三角区域划分为区域1和区域2,区域2的22.5度采样在上边,区域1的22.5度采样右边。

进一步的,所述“对划分后的区域的边界计算边界的梯度向量”具体实施方式如下:

人类视觉对视频图像的边缘失真特别敏感,提出的基于八方向自适应插值对视频图像中边缘的完整性可以精确的保留,同时八方向插值时间复杂度并不高。视频图像边缘上的像素构成了一个灰度变化区域,可以使用灰度变化率和灰度变化的方向来衡量整个区域的灰度变化状况,其中用梯度向量的大小来表示灰度变化率,用梯度向量的方向来表示灰度变化的方向,用f(x,y)表示图像,f(x,y)在坐标(x,y)处的梯度是一个矢量,f(x,y)的表达式如下式(1):

其中i和j分别表示沿x和y方向的单位矢量,所述“根据计算得到的边界的梯度向量计算边界的梯度幅值”具体实施方式如下:

上述的f(x,y)在点(x,y)处的边缘梯度幅值定义如下式(2):

其中像素点的边缘方向定义如下式(3):

固定八个边缘方向后,然后分别计算出8个方向的偏导数,偏导数的公式如下式(4):

其中n表示八个边缘方向,g的绝对值即可表明边缘梯度幅值,幅值越小表示对应方向的像素具有的相关性越大,所以如果幅值最小就可以确定该方向的像素具有最大的相关性。为了简化计算,使用微分算子来表示梯度,接着再使用边缘检测算子来估算。考虑到降低运算复杂度,本发明使用Sobel算子,Sobel算子在检测过程中对像素的灰度值进行加权平均,提供了较为连续的边缘方向信息。Sobel算子是一种利用离散性差分算子计算图像亮度梯度的近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量。八方向的算子模板如图6所示。

引入Sobel算子后,上式(4)式变换为下式(5):

gn(i,j)=(Sn)T*f(i,j) (5);

其中S表示Sobel模板,g为最小差异方向。如图7(a)(b)所示对待隐藏像素点Y的邻域上的边界像素值来近似偏导数的计算,图7(a)表示受损宏块内部像素自适应八方向插值,即周边像素的采样,受损宏块周边紧接着4行像素相关性比较高,本发明只考虑最近的行列。图7(a)中黑色像素是采样位置。图7(b)是Sobel算子计算需要采样的5×5模版,其中的Y是需要修复的像素值,Pn是采样得到的像素值,这里的n取[0,23]。

进一步的,所述“通过边界的梯度幅值确定8个方向的相关性大小,根据相关性大小对第一宏块进行插值处理。”具体实施如下:

为了选取宏块区域内边缘差异最小的方向,选取出八个方向偏导数绝对值最小的偏导数所对应的方向,即意味着像素值在该方向具有最大的相关性,从而确定出该点的边缘方向,需要恢复的错误宏块中待插值像素点沿最小差异方向插值,插值方向与检测出的方向相互垂直。本发明只对亮度进行改进算法的修复,对于色度仍然沿用其自带的空间像素加权平均算法。

进一步的,所述“根据相关性大小对第一宏块进行插值处理”具体为:

按照相关性最大所对应的方向,绘制经过第一宏块的直线,得到所述直线与待修复的帧边缘相交的两个像素点,并分别计算两个像素点到第一宏块的距离;

根据所述两个像素点的灰度值和两个像素点到第一宏块的距离计算得到第一宏块的灰度值,根据计算得到的灰度值对第一宏块进行插值处理。上述具体实施如下:

如图8所示,在确定出相关性最大的方向后,我们利用该方向进行插值。以对角线(a→b)方向为例,Pij为受损的像素点,过Pij沿a至b方向作直线,交于该待修复的帧边缘P1和P2两个像素点,它们与Pij的距离分别为D1和D2,则可以通过下面的公式(6)计算出预测像素点Pij,根据计算出的预测像素点Pij对受损的像素点进行插值处理。其中公式(6)如下:

进一步的,所述“若所述待修复的帧为P帧,采用时域修复方法对待修复的帧进行修复”具体为:

若所述待修复的帧为P帧,定位所述待修复的帧中丢失数据的宏块的位置;所述宏块为已解码图像信息中的像素点;所述丢失数据的宏块为第一宏块;

获取所述第一宏块四周的宏块的丢失情况;

若所述第一宏块四周的宏块均为正确接收的宏块并且所述正确接收的宏块的划分模式为SKIP模式,将所述待修复的帧的前一帧上与第一宏块对应位置的灰度值作为第一宏块的插值;若所述第一宏块四周的宏块存在错误接收的宏块,若所述第一宏块四周的宏块的划分模式为帧内模式,则采用空域修复中的方向插值方法对所述第一宏块进行修复;

若所述第一宏块四周的宏块存在错误接收的宏块,若所述第一宏块四周的宏块的划分模式为帧内模式为第一帧间模式,则采用边界匹配算法对所述第一宏块进行修复;所述第一帧间模式为16×16的帧间模式;

若所述第一宏块四周的宏块存在错误接收的宏块,若所述第一宏块四周的宏块的划分模式为帧内模式为第二帧间模式,则采用加权运动矢量修复或帧间插值法对所述第一宏块进行修复;所述第二帧间模式为8×8、16×8、8×16、4×4、4×8或8×4的帧间模式。

上述具体实施如下:

步骤4:当编码P帧时,选择使用帧间修复算法。

改进的TEC(time error concealment)算法具体流程如图9所示。TEC算法在修复受损宏块前先检查周围四个宏块的接收情况并且进行标记,而将周围8个可用块(正确接收/已经修复的宏块)的运动矢量作为运动矢量集用于修复。如果受损宏块周围宏块都为SKIP模式,说明该受损宏块也可能是SKIP模式,可以直接在参考帧对应位置找到并且运动矢量为0,则使用帧拷贝的时域错误隐藏方法,即为将所述待修复的帧的前一帧上与第一宏块对应位置的灰度值作为第一宏块的插值。当受损宏块周围的宏块帧间分隔模式为16×16或者为帧内模式,说明此区域的运动不是很剧烈,帧间分隔模式为16×16则使用边界匹配的时域错误隐藏方法,如果当前受损宏块周围宏块的帧内模式划分个数大于2个,本发明选择使用上述的DN方法。如果帧间分隔模式非16×16,说明此区域运动剧烈,则使用加权运动矢量修复或者帧间线性插值的时域错误隐藏方法。TEC算法思想是利用帧间分隔模式反应宏块所处在不同的图像区域,可以自适应的根据帧间分隔模式来选择使用适当的修复方法,更能适应图像不同区域的差异。

根据当前受损宏块上、下、左和右四个相邻的正确接收块的帧间模式,主要分为三种,第一种是4×4,4×8,8×4的帧间分割模式,第二种是8×8、8×16或16×8的帧间模式,第三种就是16×16的帧间模式。如果是邻居宏块,则属于第一种模式,当前受损块就以4×4为单位进行分割,然后使用帧间线性插值法。如果属于第二种模式,就把当前受损宏块分割为4个8×8,对每个8×8块进行编号修复运动矢量,然后进行运动补偿。如图10所示,黑色的块是正确接收的块,编号的块是需要修复的块,当周边可用邻居块都为4×4分割模式,则修复顺序从受损宏块的4个顶角开始,沿着正确接收块逐渐往内部修复。修复顺序并没有唯一的编号顺序,在本发明中按标注的顺序修复,修复遵循的原则是:根据接收宏块位置,沿着正确接收宏块位置修复和从外到里修复的原则。

线性插值法常用于帧内错误隐藏,在空间上相邻的宏块四像素值可以线性插值来掩饰一个错误的像素。如图10所示的插值顺序,本发明对帧间模式为4×4的块使用简单的帧间线性插值法,其他使用基于块的运动补偿修复。

需要修复的像素C的参考像素来至参考帧,使用C1,C2,C3,C4分别表示受损宏块对应参考帧中上、下、左和右的像素值。(x,y)表示C所在受损宏块的内部位置。则修复公式如下式(7):

其中N=4,x>=1和y<=4。

如图11所示,当周围块都是8×8时,靠近正确接收块的受损宏块先进行编号修复,每8×8块的运动矢量修复公式如下式(8):

其中,p8为受损宏块的8×8子块,这里设n=8,H(pn)为邻近正确接收宏块紧邻pn的n×n块,MVn为n×n块的运动矢量,使用紧邻的正确接收的n×n块的运动矢量MVn(qn)进行加权平均来修复受损宏块的n×n块pn的MVn(pn)。若正确接收的n×n块qn包含于更大分割的块里面,则其运动矢量MVn(qn)可以从包含它的块获取。ω(pn,qn)为权重系数,公式表示如下式(9):

其中,κ为0.01,SSD(p′n,q′n)表示前一帧中当前受损宏块位置相同的块与其参考块边界像素差值的平方和。

本发明还提供的一种时空域相结合的自适应错误隐藏修复系统,包括获取模块、确定模块、第一采用模块和第二采用模块;

所述获取模块,用于获取已解码的图像信息;

所述确定模块,用于确定所述图像信息中待修复的帧;

所述第一采用模块,用于若所述待修复的帧为I帧,采用空域修复方法对待修复的帧进行修复;

所述第二采用模块,用于若所述待修复的帧为P帧,采用时域修复方法对待修复的帧进行修复。

进一步的,所述第一采用模块包括空域修复模块;

所述空域修复模块包括第一定位单元、第一获取单元、第一修复单元、第二修复单元和第三修复单元;

所述第一定位单元,用于若所述待修复的帧为I帧,定位所述待修复的帧中丢失数据的宏块的位置;所述宏块为已解码图像信息中的像素点;所述丢失数据的宏块为第一宏块;

所述第一获取单元,用于获取所述第一宏块四周的宏块的丢失情况;

所述第一修复单元,用于若所述第一宏块四周的宏块均为正确接收的宏块,则采用空域修复中的方向插值方法对所述第一宏块进行修复;

所述第二修复单元,用于若所述第一宏块四周的宏块存在错误接收的宏块,若正确接收的宏块的划分模式个数在预设的阈值范围内,则采用空域修复中的帧内修复方法对所述第一宏块进行修复;

所述第三修复单元,用于若所述第一宏块四周的宏块存在错误接收的宏块,若正确接收的宏块的划分模式个数超出预设的阈值范围,则采用空域修复中的方向插值方法对所述第一宏块进行修复。

进一步的,所述空域修复中的方向插值方法为:

采用8个方向对所述第一宏块进行区域划分;

对划分后的区域的边界计算边界的梯度向量;

根据计算得到的边界的梯度向量计算边界的梯度幅值;

通过边界的梯度幅值确定8个方向的相关性大小;

根据相关性大小对第一宏块进行插值处理。

进一步的,所述“根据相关性大小对第一宏块进行插值处理”具体为:

按照相关性最大所对应的方向,绘制经过第一宏块的直线,得到所述直线与待修复的帧边缘相交的两个像素点,并分别计算两个像素点到第一宏块的距离;

根据所述两个像素点的灰度值和两个像素点到第一宏块的距离计算得到第一宏块的灰度值,根据计算得到的灰度值对第一宏块进行插值处理。

进一步的,所述第二采用模块包括第二定位单元、第二获取单元、第四修复单元、第五修复单元、第六修复单元和第七修复单元;

所述第二定位单元,用于若所述待修复的帧为P帧,定位所述待修复的帧中丢失数据的宏块的位置;所述宏块为已解码图像信息中的像素点;所述丢失数据的宏块为第一宏块;

所述第二获取单元,用于获取所述第一宏块四周的宏块的丢失情况;

所述第四修复单元,用于若所述第一宏块四周的宏块均为正确接收的宏块,则所述正确接收的宏块的划分模式为SKIP模式,将所述待修复的帧的前一帧上与第一宏块对应位置的灰度值作为第一宏块的插值;

所述第五修复单元,用于若所述第一宏块四周的宏块存在错误接收的宏块,若所述第一宏块四周的宏块的划分模式为帧内模式,则采用空域修复中的方向插值方法对所述第一宏块进行修复;

所述第六修复单元,用于若所述第一宏块四周的宏块存在错误接收的宏块,若所述第一宏块四周的宏块的划分模式为帧内模式为第一帧间模式,则采用边界匹配算法对所述第一宏块进行修复;所述第一帧间模式为16×16的帧间模式;

所述第七修复单元,用于若所述第一宏块四周的宏块存在错误接收的宏块,若所述第一宏块四周的宏块的划分模式为帧内模式为第二帧间模式,则采用加权运动矢量修复或帧间插值法对所述第一宏块进行修复;所述第二帧间模式为8×8、16×8、8×16、4×4、4×8或8×4的帧间模式。

提出的算法在H.264标准的参考软件JM14.2中进行测试,因为JM14.2以后的版本在错误隐藏方面并没有很大的改变。选取4个标准测试序列,测试序列分辨率为352×288和704×576,分辨率704×576的测试序列为:ICE、CREW、SOCCER,分辨率352×288的测试序列:FOREMAN。使用测试软件自带的丢包程序rtp_loss来模拟丢包情况。编码端编码100帧,使用IPPP格式,GOP设置为10,采用宏块组织形式FMO,片模式置为1,开启FMO模式,片组数为2,FMO模式选择1分散式(Dispersed),分散式FMO由于粒度最大,所以具有最好的差错控制效果,故选择此模式,设置50个宏块为一个片。各测试项目丢包率均为10%。编码方式采用baseline profile,QP=28。编码码流输出格式为rtp,为了与rtp_loss丢包软件适配。对于I帧的修复使用改进的SEC算法,而P帧使用改进的帧间算法。

图12-图14分别为CREW、CIE和SOCCER序列。(a)、(b)和(c)是损失的视频帧;

图12(a)的数据丢失比较离散。

图12(b)的人物胸前丢失宏块比较严重,大部分聚集在一起,修复难度大。

图12(d)是Paul Salama等人的PSNR为31.8162dB。

图12(g)改进算法的PSNR为31.9493dB。

图12(e)是Paul Salama等人的PSNR为32.8dB。

图12(h)改进算法的PSNR为32.9dB。比Paul Salama等人的算法提高0.1dB。

图12(f)是第一帧的I帧,Paul Salama等人的算法PSNR为29.52dB。

图12(i)是改进的算法PSNR为29.67dB,比Paul Salama等人的算法高0.15dB。

如图12(e)所示,Paul Salama等人提出的算法在解码图中的门出口边界处有明显的块效应,门框的亮暗交界处也存在块效应。(h)使用的是改进算法,该算法不仅仅对丢失宏块进行分析还利用了边缘梯度,梯度最小即可确定该方向的像素具有最大的相关性,改进的算法解码效果比较明显。图(d)中人的腿部和雪地之间存在明显的块效应,边界灰度值差异越大越明显。

测试序列FOREMAN如图13所示,图13(a)~(c)是测试序列的第46帧的p帧,图13(d)~(f)是测试序列的IDR帧,图13(g)~(k)是p帧。图13(b)、图13(e)和图13(h)的PSNR分别为27.7341dB、31.489dB和32.2258dB。图13(c)、图13(f)和图13(i)是改进算法的解码结果,PSNR分别为28.9497dB、31.7963dB和32.3314dB。提出来的算法PSNR比Tsekeridou等人和Paul Salama等人提出的算法高。图13(j)是Wang Yi等人解码结果,PSNR为32.3303dB,图13(k)是文献Ding等人解码结果,PSNR为32.3274dB。图14是CREW序列,改进的算法与Qaratlua等人的算法对比。图14(a)是Qaratlua等人的算法修复结果(PSNR 34.16dB),图14(b)是改进算法的结果(PSNR 34.37dB),改进算法的PSNR更高,说明恢复的数据更准确。同时图中的块效应较少。

从改进算法的解码图13(c)、图13(f)和图13(i)中可以看出,红色圈圈区域的边界处的块效应已明显减少,边缘较为完整,轮廓线的连续性较好。图13(c)的人头额处的头发修复比较完善,墙壁白色和灰色交界处块效应比较少。图13(b)的块效应比较明显。图13(i)和图13(h)对比可以发现图13(h)中色差发生变化的区域块效应都特别明显。

综上所述,本发明提供的一种时空域相结合的自适应错误隐藏修复方法及系统。本发明设计的错误隐藏算法,具有好的兼容性,可以嵌入到现有的视频编码框架里面。在空域修复中,该发明提出的自适应SEC策略可以根据帧内编码模式以及分析接收块的位置信息来判断使用合适的算法来修复丢失的宏块信息。丢失宏块周围的宏块编码模式反应了该区域的基本状态:平坦、纹理、边界区域以及运动幅度大小,而周边接收宏块解码正确与否也决定着哪种修复算法更适合修复当前的丢失状况。其中改进的方向插值算法先对丢失宏块进行区域划分,使用基于5×5大小的8方向Sobel算子对丢失宏块周边像素计算插值方向,选出符合纹理以及边界方向的地方进行插值计算。8个方向的选择性插值提高了修复的精确度。空域修复的方法仅仅是利用了空域相关性,而视频之间是存在时域相关性的。本发明使用视频帧间编码模式来灵活的决定使用适当的修复算法。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1