用于错误隐藏的直接模式推导过程的制作方法

文档序号:6708878阅读:219来源:国知局
专利名称:用于错误隐藏的直接模式推导过程的制作方法
技术领域
本发明涉及一种用于在编码视频流中缺失/受损的宏块的时间隐藏的技术。
背景技术
在许多情况下,视频流经过压缩(编码)以便于存储和传输。目前,存在多种压缩方案,包括基于块的方案,例如提出的ISO MPEGAVC/ITU H.264编码标准,通常被简称为ITU H.264或JVT。由于信道错误和/或网络拥塞,这种编码视频流经常在传输期间遭遇数据丢失或受损。当解码时,数据的缺失/受损本身表现为引起图像伪像的缺失/受损像素值。
空间隐藏尝试通过利用来自同一图像中的其它区域的像素值来推导缺失/受损的像素值,从而利用了同一帧中邻接块之间的空间冗余。与空间错误隐藏相比,时间隐藏尝试编码运动信息(即参考画面索引和运动矢量)的恢复,以便根据至少一个之前传输的宏块来估计丢失的像素值,从而利用了同一序列的不同帧中的块之间的时间冗余。
当进行时间错误隐藏时,通常利用补偿前一个或多个传输的宏块的运动来估计每一个缺失/受损的宏块。当前,时间隐藏策略典型地接受最小化计算量的次优的解决方案,以降低复杂度并增大速度。取决于是使用空间相邻(在同一帧之内)还是时间相邻(在其它帧之内)来推断丢失的运动矢量的值,典型地,这种次优解决方案被分为两类。使用空间相邻的错误隐藏尝试根据邻域内的运动信息来恢复丢失块的运动矢量。这种技术假定空间相邻块的位移之间高度相关。当考虑多个运动矢量时,通过计算当前帧中缺失/受损块的外边缘信息和根据参考帧的隐藏块的内边缘信息之间的最小MSE(均方误差),来得到最佳候选者。这种过程倾向于以增加的计算量为代价来最大化隐藏图像的光滑度。更快的算法计算相邻运动矢量的中值或平均值,并把这个值作为丢失块的运动矢量。
用于错误隐藏的另一种次优解决方法使用时间相邻的宏块。这种方法尝试利用相邻帧中协同定位块(co-located block)之间的时间相关来恢复丢失块的运动矢量。典型地,使用时间相邻的宏块的技术假定在两个连续帧之间丢失块还没有改变其位置,这等同于能够利用零运动矢量来建模块的位移。在此基础上,通过简单地拷贝之前传输的帧的协同定位块,出现了当前帧上丢失块的时间隐藏。这种过程提供了速度和简单性,但在运动区域上实现了较低的性能。相似的策略在于最近提出的视频编码标准,用于推导其运动信息未被传输的块的运动矢量,但是只提供了有限的性能。
因此,需要一种用于缺失/受损宏块的时间隐藏的、克服了前述困难的技术。

发明内容
简要地,根据第一优选实施例,提出了一种用于在直接模式(direct-mode)编码的宏块阵列中缺失/受损的宏块的时间隐藏的技术。所述直接模式构成了一种特定的帧间编码模式,其中没有在视频流中传输用于B片(slice)或画面的运动参数,这与其中不传输数据的忽略P帧(P frame-skipped)宏块相反。最初,识别阵列中具有缺失/受损值的至少一个宏块。接下来,在由宏块阵列构成的之前传输的第一画面中定位协同定位宏块,并确定协同定位宏块的运动矢量。根据通常与所识别的宏块和协同定位宏块之间的距离相对应的画面序列号(POC)距离来缩放(scale)所述运动矢量(被称为“协同定位运动矢量”)。根据已缩放协同定位运动矢量,利用来自第一画面和之前传输的第二画面的运动补偿数据来预测所识别的宏块。这种技术适用于根据利用B帧画面的基于块的压缩技术(如MPEG4)来压缩的视频。
根据第二优选实施例,提出了一种用于在根据编码标准(例如ITUH.264编码标准)直接模式编码的宏块阵列中的缺失/受损宏块的时间隐藏的技术。最初,识别阵列中具有缺失/受损值的至少一个宏块。接下来,在由宏块阵列构成的之前传输的第一画面中定位协同定位宏块,并确定用于协同定位宏块的协同定位运动矢量和参考索引。根据POC距离来缩放协同定位运动矢量。根据参考索引来选择之前传输的第二画面,并且利用已缩放协同定位运动矢量来运动补偿来自之前传输的第一和第二画面的数据,从而产生所识别宏块的预测。


图1示出了用于空间-直接模式预测的部分宏块阵列;图2以图形示出了用于来自第一和第二参考画面的B部分的时间-直接模式预测的技术;图3示出了缩放协同定位运动矢量的方式;图4A以流程图形式示出了一种方法的步骤,用于使用应用了先验知识的特定准则,根据本原理来实现错误隐藏;图4A以流程图形式示出了一种方法的步骤,用于使用应用了后验知识的特定准则,根据本原理来实现错误隐藏。
具体实施例方式
1.背景如下文所述,尽管本技术对例如MPEG4编码标准的其它编码标准也具有可应用性,但是在ITU H.264编码标准的情况下能够最好地理解根据本原理的用于缺失/受损宏块的时间隐藏的技术。因此,根据ITU H.264编码标准可用于直接模式编码的推导过程的简短讨论将会有帮助。ITU H.264编码标准允许将多个参考画面用于帧间预测,并且具有参考索引,对其进行编码以指示在与解码器(未示出)相关联的参考画面缓冲器(未示出)的画面中使用了哪些画面。参考画面缓冲器保持了两个列表列表0和列表1。根据所传输的名为“RefIdxL0”的参考索引和所传输的名为“MvL0”的运动矢量,可以使用来自列表0中的不同参考画面的单个运动矢量来预测P片中的块。使用来自列表0的、分别作为RefIdxL0和MvL0的参考索引和运动矢量,或来自列表1的参考索引RefIdxL1和运动矢量MvL1,能够根据列表0或列表1来预测B片中的块,但也使用了双向预测模式中的两个列表。对于后一种情况,通过平均来自列表0的一个块和来自列表1的另一个块的内容,能够预测块的内容。
为了避免总是传输RefIdxL0-MvL0和/或RefIdxL1-MvL1,H.264标准还允许以直接模式对B片中的块进行编码。在这种情况下,存在用于推导未传输的运动矢量和参考画面索引的两种不同方法。所述方法包括(a)空间-直接模式,及(b)时间-直接模式。描述针对假定所有必需信息可用的前向编码的每一种模式。其它情况的定义可见于ITU H.264编码标准的规范中。
1.1 ITU H.264编码标准中的空间-直接运动矢量预测当针对图1的宏块E调用空间-直接运动矢量预测时,根据下面的关系,从图1中的相邻块A-D来推断列表0和1的参考索引RefIdxL0=MinPositive(RefIdxL0A,MinPositive(RefIdxL0B,RefIdxL0C)) (方程1)RefIdxL1=MinPositive(RefIdxL1A,MinPositive(RefIdxL1B,RefIdxL1C)) (方程2)其中由下式给出运算符MinPositiveMinPositive(a,b)=]]> (方程3)运动矢量预测MvpLX(其中X可以是0或1)的每个分量由运动矢量MvLXA、MvLXB和MvLXC的对应矢量分量的中值给出MvpLX
=Median(MvLXA
,MvLxB
,MvLXC
) (方程4)MvpLX[1]=Median(MvLXA[1],MvLXB[1],MvLXC[1]) (方程5)注意,当为了错误隐藏目的使用时,可以考虑将图1中包含E的片以外的样本用于预测。
在直接模式中,确定块大小变得很重要,尤其是涉及允许使用不同块大小的ITU H.264编码标准。当使用由Direct16×16的mb_type指示的空间-直接模式时,针对整个16×16宏块推导单个运动矢量及列表0和列表1的参考索引。当使用由Direct8×8的sub_mb_type指示的空间-直接模式时,或针对8×8子宏块,针对8×8子宏块推导单个运动矢量及列表0和列表1的参考索引。
1.2 ITU H.264编码标准中的时间-直接运动矢量预测将当前宏块的地址(MbAddr)作为输入数据,时间-直接运动矢量预测的一个示例算法计算列表1的第一参考画面上协同定位块的位置(见图2)。如图2所示,协同定位块提供用于估计其内容的参数MvL0Col、MvL1Col、RefIdxL0Col和RefIdxL1Col、以及MvVertScaleFactor。根据这些参数,算法如下推导出协同定位运动矢量MvCol的值以及参考索引RefIdxL0和RefIdxL1设RefIdxL1=0,作为列表1中的第一画面。
如果RefIdxL0Col非负,将列表0运动矢量MvL0Col赋予MvCol,并将列表0参考索引RefIdxL0Col赋予RefIdxL0MvCol
=MvL0Col
(方程6)MvCol[1]=MvVertScaleFactor×MvL0Col[1] (方程7)RefIdxL0=RefIdxL0Col/MvVertScaleFactor (方程8)如果RefIdxL1Col非负,将列表1运动矢量MvL1Col赋予MvCol,并将列表1参考索引RefIdxL1Col赋予RefIdxL0MvCol
=MvL1Col
(方程9)MvCol[1]=MvVertScaleFactor×MvL1Col[1] (方程10)RefIdxL0={参考L1中RefIdxL1Col的列表L0中的参考索引}/MvVertScaleFactor (方程11)否则,对协同定位的4×4的子宏块部分进行帧内编码。
下面的关系规定了运动矢量MvL0Col和MvL1ColX=(16384+(TDD>>1))/TDD(方程12)Z=clip3(-1024,1023,(TDB·X+32)>>6) (方程13)
MvL0=(Z·MVCol+128)>>8 (方程14)MvL1=MvL0-MVCol(方程15)其中clip3(a,b,c)是把c限制在范围[a,b]之内的运算符,并且TDB=clip3(-128,127,DiffPicOrderCnt(CurrentPic,RefIdxL0))(方程15)TDD=clip3(-128,127,DiffPicOrderCnt(RefIdxL1,RefIdxL0))(方程16)在时间直接模式下,将推导出的运动矢量应用于与协同定位宏块中使用的相同大小的像素块。从前面的关系式可以理解,根据通常与所识别的宏块和协同定位块之间的距离相对应的画面序列号距离,来缩放运动矢量。
用于MPEG4的直接编码MPEG4编码标准使用通过以下方式推导出的直接双向运动补偿扩展采用P画面宏块运动矢量的ITU H.263编码标准,并缩放P画面宏块运动矢量,以便针对B画面中的宏块来推导前向和后向运动矢量。这是可以利用8×8块上的运动矢量的唯一模式。只有在预测视频对象平面(P-VOP)中的协同定位宏块使用8×8MV模式时才是可能的。根据ITU H.263编码标准,使用B帧句法,只允许每个宏块一个增量运动矢量。
图3示出了与MPEG4编码标准的直接编码有关的运动矢量的缩放。H.263编码标准向MPEG4编码标准的第一扩展提出可以与MPEG-1编码标准一样,对于一个完整的块/宏块来进行双向预测。ITU H.263编码标准的第二扩展提出可以内插多于一个的VOP,从而代替只允许一个插入VOP的内插。如果由于快速运动或较大的帧间距离而导致预测质量较差,可以选择其它的运动补偿模式。
运动矢量的计算前向和后向运动矢量的计算涉及时间上下一个P-VOP中的协同定位块的线性缩放,随后是矢量增量校正,因此,实际上与ITU H.263编码标准中随后的过程相同。仅有的微小改变是MPEG4编码方案中,存在VOP而不是画面,并且在一对参考VOP之间允许存在多个双向VOP(B-VOP),而不是一对参考画面之间只有一个B画面。与在H.263编码标准中相同,将相对于参考VOP对的时间参考中差异的B-VOP的时间参考用于确定计算动作矢量的缩放因子,其中利用矢量增量来校正所述动作矢量。此外,当可能时,将协同定位宏块(Mbs)定义为具有相同索引的Mbs。否则不使用直接模式。
如下,以半样本单位给出分别被称为“MVF”和“MVB”前向和后向运动矢量。
MVF=(TRB×MV)/TRD+MVD(方程17)MVB=((TRB-TRD)×MV)/TRD当MVD等于0时(方程18),以及MVB=MVF-MV 如果MVD不等于0 (方程19)其中MV是P-VOP中宏块相对于参考VOP的直接运动矢量,TRB是B-VOP和之前参考VOP的时间参考中的差异。假定B-VOPs或忽略的VOPs在其之间,TRD是时间上的下一个参考VOP和时间上的前一个参考VOP的时间参考中的差异。
用于错误隐藏的空间和时间直接推导过程的使用根据本原理,使用直接模式推导(1)运动矢量,(2)参考画面索引,(3)编码模式(列表0/列表1/Bidir),以及(4)出于隐藏目的应用了编码模式的块大小。已经发现推导预测受损/丢失宏块所需的信息的过程明确了一个问题,所述问题十分接近于使用来自之前被传输帧的运动补偿数据来恢复直接编码的宏块。因此,使用符合将直接模式为特定帧间编码情况的标准的任意视频解码器,用于预测以直接模式编码的块的相同算法能够预测帧间编码帧上的缺失/受损块,而没有额外的实现成本。通过实现用于以直接模式推导运动矢量的算法,将上述算法应用于当前的MPEG-4和H.264视频解码器,并且可以应用于MPEG-2视频解码器。
错误检测和错误隐藏构成了独立的过程,只有当前者确定接收到的某些数据被受损或丢失时才调用后者。当在宏块层面上执行错误检测时,如果在当前被解码的宏块上检测到错误,则进行隐藏,而无需改变解码过程。但是,当错误检测发生在片层面上时,在错误前面,片内的所有宏块均需要隐藏。在这一级处,存在用于决定最佳隐藏顺序的多种策略。根据一个简单的策略,在片内的第一宏块处开始错误隐藏,并遵循之前的解码顺序进行。更加成熟的策略可以沿其它方向发展,以避免错误扩散。
2.2当多于一个过程可用时,用于选择一个推导过程的准则通过专门依赖于空间-直接模式、时间-直接模式或利用两种模式,进行根据本原理的错误隐藏。当同时使用两种模式时,必须存在准则,用于选择在特定的块或宏块上哪一种模式提供了更佳的隐藏。在优选的实施例中,在应用了先验知识的准则(即,在实际选择使用两种模式中的哪一种之前)和应用了后验知识的准则(即,在执行两种模式以选择哪种模式给出更好的结果之后应用的准则)之间存在区别。
2.2.1应用了先验知识的准则需要隐藏的区域的大小构成了一个应用先验知识的准则,以确定使用空间直接模式还是时间直接模式。时间直接模式隐藏在较大区域上给出更好结果,相反,空间直接模式在较小区域上给出更好结果。在相同画面中其它片中选择的隐藏模式构成了另一种准则,用于选择隐藏丢失或缺失片的特定模式。因此,如果以空间直接模式对相同画面中的其它片进行编码,则应该选择该模式用于感兴趣的区域。
图4A以流程图形式示出了使用具有先验知识准则(例如用于相邻片的大小或隐藏模式)的模式选择的解码和错误隐藏的过程。当输入与所选择的准则有关的参数时,开始先验模式选择(步骤100)。此后,在步骤102期间进行错误检测,以检测缺失/受损宏块的出现。在步骤104期间,进行检查以确定是否存在已缺失/丢失宏块形式的错误。当在步骤104期间发现错误时,进行到步骤106的分支,其间根据输入的准则来选择时间-直接或空间-直接推导模式之一。
当在步骤104期间没有发现错误时,则在步骤108期间,进行检查以确定是否按照直接模式对宏块进行编码。如果不是,则进行到步骤109的分支,其中在步骤111期间的数据输出之前,对宏块进行帧间预测模式解码。如果在步骤108期间以直接模式对宏块进行编码,或在步骤106之后,则在步骤110期间进行检查以确定所选择的模式是否是时间-直接模式。如果是,则前进到步骤109之前,在步骤112期间使用时间-直接编码过程来恢复运动矢量和参考索引。否则,在步骤110之后,在执行步骤109之前,利用空间直接模式推导过程来恢复运动矢量和参考索引。
2.2.2应用了后验知识的准则如前所述,作为根据多个应用了后验知识的准则之一来选择特定过程的结果,能够进行时间-直接模式和空间-直接模式推导过程,例如,同时进行两个过程,但是只保留在被隐藏块和其相邻块的边界之间产生了最平滑过渡的过程的结果。另一种选择在于,同时进行两个过程,根据错误隐藏之后的测量,只保留在解块(deblocking)滤波器中产生较低边界强度值的过程。较低的边界强度值提供更平滑的过渡和更好的运动补偿。
图4B以流程图形式示出了使用具有后验知识准则以确定模式选择的模式选择的解码和错误隐藏的过程。当输入与选择的准则有关的参数时,开始根据后验准则的模式选择(步骤200)。此后,在步骤202期间进行错误检测,以检测缺失/受损宏块的出现。在步骤204期间进行检查以确定是否存在已缺失/丢失宏块的形式的错误。当在步骤204期间发现错误时,进行到步骤206和208的分支。在步骤206期间,开始时间-直接推导过程,以便在时域中,按照所述的方式从相邻参考块中推导运动矢量和参考索引。在步骤208期间,开始空间-直接推导过程,以便在空域中,按照所述的方式从相邻参考块中推导运动矢量和参考索引。之后,在步骤210期间,根据在步骤200期间输入的准则,进行运动矢量(Mv)和参考索引(RefIdx)的选择。在步骤210之后,在步骤212期间开始帧间预测模式解码,并且在步骤213期间输出从步骤212得到的数据。
当在步骤204期间没有发现错误时,则在步骤214期间进行检查以确定是否按照直接模式对宏块进行编码。如果不是,则进行到前述步骤213的分支。当在步骤214期间发现按照直接模式对宏块进行编码时,则之后是步骤216,其中进行检查以确定所选择的模式是否是时间-直接模式。如果是,在前进到步骤212之前,在步骤218期间使用时间-直接编码过程来恢复运动矢量和参考索引。否则,在步骤216之后,在执行步骤212之前,利用空间直接模式推导过程来恢复运动矢量和参考索引。
前面内容描述了一种用于编码视频流中缺失/受损的宏块的时间隐藏的技术。
权利要求
1.一种用于在直接模式编码的视频流中缺失/受损的宏块的时间隐藏的方法,包括步骤识别至少一个缺失/受损的宏块;在之前传输的第一画面中得到协同定位宏块;针对协同定位宏块来确定协同定位运动矢量;根据画面序列号(POC)距离来缩放协同定位运动矢量;根据已缩放协同定位运动矢量,通过来自之前传输的第一画面和之前传输的第二参考画面的运动补偿数据,针对所识别的宏块来预测缺失/受损的数据。
2.根据权利要求1所述的方法,其中使用时间-直接模式来预测缺失/受损的数据。
3.根据权利要求1所述的方法,其中根据在所述预测之前选择的至少一个准则,使用时间和空间-直接模式推导过程之一来预测缺失/受损的数据。
4.根据权利要求3所述的方法,其中根据隐藏区域大小来选择时间和空间-直接模式推导过程之一。
5.根据权利要求4所述方法,其中根据相邻片的推导模式来选择时间和空间-直接模式推导过程之一。
6.根据权利要求1所述方法,其中通过以下步骤来预测缺失/受损的数据执行时间和空间-直接模式推导过程;以及根据至少一个后验准则,选择时间和空间-直接模式推导过程之一的结果。
7.根据权利要求1所述的方法,还包括步骤推导被应用了协同定位运动矢量的第一和第二画面的块的大小。
8.根据权利要求1所述的方法,其中根据基于ITU H.264编码标准解块的边界强度值,来选择结果。
9.根据权利要求1所述方法,其中使用在ITU H.264编码标准中定义的时间-直接模式来预测缺失/受损的数据。
10.一种用于在基于ISO/ITU H.264编码标准的直接模式编码的视频流中缺失/受损的宏块的时间隐藏的方法,包括步骤识别至少一个缺失/受损的宏块;在之前传输的第一画面中得到协同定位宏块;针对协同定位宏块确定参考索引和运动矢量;缩放运动矢量;根据参考索引来选择之前传输的第二画面;根据所确定的运动矢量,利用来自之前传输的第一和第二参考画面的运动补偿数据,针对所识别的宏块来预测缺失/受损的数据。
11.根据权利要求10所述的方法,其中使用在ITU H.264编码标准中定义的时间-直接模式预测缺失/受损的数据。
12.根据权利要求10所述的方法,其中使用在ITU H.264编码标准中定义的空间-直接模式预测缺失/受损的数据。
13.根据权利要求10所述的方法,其中根据在所述预测之前选择的至少一个准则,使用在ITU H.264编码标准中定义的时间和空间-直接模式的推导过程之一预测缺失/受损的数据。
14.根据权利要求10所述的方法,其中根据隐藏区域大小来选择时间和空间-直接模式推导过程之一。
15.根据权利要求14所述的方法,其中根据相邻片的推导模式来选择时间和空间-直接模式推导过程之一。
16.根据权利要求10所述的方法,其中通过以下步骤来预测缺失/受损的数据执行在ITU H.264编码标准中定义的时间和空间-直接模式推导过程;以及根据至少一个后验准则,选择时间和空间-直接模式推导过程之一的结果。
17.根据权利要求16所述的方法,其中根据基于ITU H.264编码标准解块的边界强度值,来选择结果。
全文摘要
缺失/丢失的宏块的时间隐藏依赖于视频解码器中被以典型方式标准化的直接模式推导过程。当检测到画面形式的错误时(图1),在之前传输的画面中得到协同定位宏块。针对该协同定位宏块确定运动矢量(图2)。根据针对该协同定位宏块确定的运动矢量,利用来自之前传输的第二画面的运动补偿数据来预测所识别的宏块(图3)。
文档编号G08B29/14GK1839556SQ200380110496
公开日2006年9月27日 申请日期2003年10月9日 优先权日2003年6月18日
发明者克里斯蒂娜·戈米拉, 吉尔·麦克唐纳·布瓦斯 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1