视频图像处理方法以及编/解码器转让专利

申请号 : CN201010146533.2

文献号 : CN102215387B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨名远周建同于浩平王悦张莉马思伟高文

申请人 : 华为技术有限公司北京大学

摘要 :

本发明实施例公开了一种视频图像处理方法、装置及设备。所述方法通过对当前编码块的备选运动矢量集中的每一个备选运动矢量对应的当前编码块的至少两个关联参考块根据能量函数进行判断,从所述每一个备选运动矢量中选择一个备选运动矢量,所述能量函数根据所述当前编码块的至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度得到,根据至少所述选择的备选运动矢量确定当前编码块运动矢量可以有效减小误差,以提高视频图像的编解码效率。

权利要求 :

1.一种获取视频图像运动信息的方法,其特征在于,包括:

得到当前编码块的备选运动矢量集中的每一个备选运动矢量对应的当前编码块的至少两个关联参考块;

对所述每一个备选运动矢量对应的当前编码块的至少两个关联参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度得到;

根据至少所述选择的备选运动矢量确定当前编码块运动矢量。

2.根据权利要求1所述的获取视频图像运动信息的方法,其特征在于,所述得到当前编码块的备选运动矢量集中的每一个备选运动矢量对应的当前编码块的至少两个关联参考块包括:根据物体运动模型以及备选运动矢量得到备选运动矢量的关联运动矢量,通过所述的备选运动矢量以及其关联运动矢量获得至少两个关联参考块。

3.根据权利要求1所述的获取视频图像运动信息的方法,其特征在于,所述当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度如下获得:分别在一个备选运动矢量对应的当前编码块的至少两个关联参考块周围已编码区域中获取模板区域,在当前编码块周围已编码区域中获取模板区域,分别计算当前编码块的模板区域和所述至少两个关联参考块的模板区域的相似度,其中所述至少两个关联参考块的模板区域与对应的关联参考块之间的位置和当前编码块的模板区域与当前编码块之间的位置相同,所述至少两个关联参考块的模板区域的形状与大小和当前编码块的模板区域的形状与大小相同。

4.根据权利要求1所述的获取视频图像运动信息的方法,其特征在于,所述至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度进行加权叠加得到所述能量函数。

5.根据权利要求4所述的获取视频图像运动信息的方法,其特征在于,所述相似度包括误差和、绝对误差和或绝对平方差和。

6.根据权利要求4所述的获取视频图像运动信息的方法,其特征在于,所述至少两个关联参考块为两个关联参考块时,所述至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度进行加权叠加得到所述能量函数包括:CostDirect=lambda1*COST(MBassociate1,MBassociate2)+lambda2*COST(Templateassociatel,Templatecurrent)+lambda3*COST(Templateassociate2,Templatecunrent)其中,lambda1、lambda2和lambda3为大于零的加权系数,COST代表相似度计算函数,MB表示当前编码块,template表示模板区域,associate1表示当前编码块的一个关联参考块,associate2表示当前编码块的另一关联参考块。

7.根据权利要求1或6所述的获取视频图像运动信息的方法,其特征在于,所述从所述备选运动矢量集中选择一个备选运动矢量包括:选择使所述能量函数最小时对应的备选运动矢量。

8.根据权利要求1所述的获取视频图像运动信息的方法,其特征在于,所述根据至少所述选择的备选运动矢量确定当前编码块运动矢量包括:将所述选择的备选运动矢量作为所述当前编码块的运动矢量;或者,

将所述选择的备选运动矢量以及所述选择的备选运动矢量的关联运动矢量作为当前编码块的运动矢量。

9.根据权利要求2所述的获取视频图像运动信息的方法,其特征在于,所述根据至少所述选择的备选运动矢量确定当前编码块运动矢量包括:得到所述选择的备选运动矢量和对当前编码块通过运动搜索得到的运动矢量之间的差值,并将所述差值发送给解码端用于得到当前编码块的运动矢量,或者,得到所述选择的备选运动矢量以及其所述关联运动矢量和对当前编码块通过运动搜索得到的运动矢量对之间的差值,并将所述差值发送给解码端用于得到当前编码块的运动矢量。

10.一种获取视频图像运动信息的方法,其特征在于,包括:

采用当前编码块的备选运动矢量集中的每一个备选运动矢量,在所述每一个备选运动矢量的第一参考帧中找到对应的至少一个第一参考块;

对所述每一个备选运动矢量进行时间上外插得到对应的关联运动矢量,根据关联运动矢量在所述第一参考帧同向的第二参考帧中确定对应的至少一个第二参考块;

对所述每一个备选运动矢量对应的第一参考块和所述关联运动矢量对应的第二参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述至少一个第一参考块和所述至少一个第二参考块的相似度以及当前编码块模板区域分别与所述至少一个第一参考块和所述至少一个第二参考块的模板区域的相似度得到;

根据所述选择的备选运动矢量确定当前编码块运动矢量。

11.根据权利要求10所述的获取视频图像运动信息的方法,其特征在于,所述至少一个第一参考块和所述至少一个第二参考块的相似度以及当前编码块的模板区域分别和所述至少一个第一参考块和所述至少一个第二参考块的模板区域的相似度进行加权叠加得到所述能量函数。

12.根据权利要求10所述的获取视频图像运动信息的方法,其特征在于,所述备选运动矢量和所述备选运动矢量对应的关联运动矢量满足:Vf/Tf=Vf′/Tf′,其中,Vf为备选运动矢量,Vf′为所述备选运动矢量对应的关联运动矢量,Tf是当前编码块所在编码帧距第一参考帧之间的距离,Tf′是当前编码块所在编码帧距第二参考帧之间的距离。

13.一种获取视频图像运动信息的方法,其特征在于,包括:

采用当前编码块的备选运动矢量集中的每一个备选运动矢量,在所述每一个备选运动矢量的第一参考帧中找到对应的第一参考块;

确定所述每一个备选运动矢量对应的关联运动矢量,在与所述第一参考帧反向的所述关联运动矢量的第二参考帧中确定对应的备选第二参考块;

对所述每一个备选运动矢量对应的第一参考块以及所述关联运动矢量对应的第二参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述第一参考块和所述第二参考块的相似度以及当前编码块模板区域分别与所述第一参考块和所述第二参考块的模板区域的相似度得到;

根据所述选择的备选运动矢量以及所述关联运动矢量确定当前编码块运动矢量。

14.根据权利要求13所述的获取视频图像运动信息的方法,其特征在于,所述第一参考块和所述第二参考块的相似度以及当前编码块的模板区域分别和所述第一参考块和所述第二参考块的模板区域的相似度进行加权叠加得到所述能量函数。

15.根据权利要求13所述的方法,其特征在于,所述备选运动矢量和所述备选运动矢量对应的关联运动矢量满足:Vf/Tf=-Vb/Tb,其中,Tf是当前编码块所在编码帧距第一参考帧f之间的距离,Tb是当前编码块所在编码帧距第二参考帧b之间的距离,Vf为备选运动矢量,Vb为所述备选运动矢量对应的关联运动矢量。

16.一种编/解码器,其特征在于,所述编/解码器包括一种获取视频图像运动信息的设备,所述设备包括:获取单元,用于得到当前编码块的备选运动矢量集中的每一个备选运动矢量对应的当前编码块的至少两个关联参考块;

选择单元,用于对所述每一个备选运动矢量对应的当前编码块的至少两个关联参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度得到;

确定单元,用于根据至少所述选择的备选运动矢量确定当前编码块运动矢量。

17.一种编/解码器,其特征在于,所述编/解码器包括一种获取视频图像运动信息的设备,所述设备包括:查找单元,用于采用当前编码块的备选运动矢量集中的每一个备选运动矢量,在所述每一个备选运动矢量的第一参考帧中找到对应的至少一个第一参考块;

外插处理单元,用于对所述每一个备选运动矢量进行时间上外插得到对应的关联运动矢量,根据关联运动矢量在所述第一参考帧同向的第二参考帧中确定对应的至少一个第二参考块;

选择处理单元,用于对所述每一个备选运动矢量对应的第一参考块和所述关联运动矢量对应的第二参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述至少一个第一参考块和所述至少一个第二参考块的相似度以及当前编码块模板区域分别与所述至少一个第一参考块和所述至少一个第二参考块的模板区域的相似度得到;

确定处理单元,用于根据所述选择的备选运动矢量确定当前编码块运动矢量。

18.一种编/解码器,其特征在于,所述编/解码器包括一种获取视频图像运动信息的设备,所述设备包括:查找处理单元,用于采用当前编码块的备选运动矢量集中的每一个备选运动矢量,在所述每一个备选运动矢量的第一参考帧中找到对应的第一参考块;

参考块确定单元,用于确定所述每一个备选运动矢量对应的关联运动矢量,在与所述第一参考帧反向的所述关联运动矢量的第二参考帧中确定对应的备选第二参考块;

判断选择单元,用于对所述每一个备选运动矢量对应的第一参考块以及所述关联运动矢量对应的第二参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述第一参考块和所述第二参考块的相似度以及当前编码块模板区域分别与所述第一参考块和所述第二参考块的模板区域的相似度得到;

当前编码块运动矢量确定单元,用于根据所述选择的备选运动矢量以及所述关联运动矢量确定当前编码块运动矢量。

19.一种编/解码系统,其特征在于,所述编/解码系统包括如权利要求16、17、18任一项所述的编/解码器,所述编/解码系统用于接收输入信号,送入如权利要求16、17、18任一项所述编/解码器,并发送如权利要求16、17、18任一项所述编/解码器的输出。

说明书 :

视频图像处理方法以及编/解码器

技术领域

[0001] 本发明涉及多媒体技术,尤其涉及一种视频图像处理方法以及编/解码器。

背景技术

[0002] 随着视频编码技术的不断发展,帧间的运动搜索和补偿技术能够有效地去除视频内容的时间冗余,编码效率得到了很大程度的提高;通过运动估计得到运动信息并把它传递给解码端,由解码端通过运动补偿的方法对视频图像进行预测重建。然而由于运动补偿后预测残差在码流中所占的比重的大幅度下降,同时运动矢量信息在码流中的比重不断上升,如何有效地压缩运动信息成为进一步提升视频压缩效率的关键。
[0003] 现有技术中获取运动信息的方法包括通过模板匹配来获取运动矢量;具体地,以当前编码块是B帧中的宏块为例,如图1所示,首先在当前编码块的周围用重建值构造一个模板TM,然后在该块的前向参考帧(RefList0)和后向参考帧(Ref List1)中用与模板TM形状相同的模板进行搜索匹配得到运动矢量MV0和MV1作为当前编码块的运动矢量。
[0004] 通过现有技术获得的运动信息由于只考虑到了当前编码块周边的模板与参考帧中模板的相似度,经过搜索匹配后经常会出现找到只能保证模板相似,并不能保证参考块与当前编码块相似,导致误差大,精度低,使得视频图像编码的效率低。

发明内容

[0005] 本发明的实施例提供一种视频图像处理方法、装置及设备以提高视频图像的编解码效率。
[0006] 本发明的实施例采用如下技术方案:
[0007] 一种获取视频图像运动信息的方法,包括:
[0008] 得到当前编码块的备选运动矢量集中的每一个备选运动矢量对应的当前编码块的至少两个关联参考块;对所述每一个备选运动矢量对应的当前编码块的至少两个关联参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度得到;根据至少所述选择的备选运动矢量确定当前编码块运动矢量。
[0009] 一种获取视频图像运动信息的方法,包括:
[0010] 采用当前编码块的备选运动矢量集中的每一个备选运动矢量,在所述每一个备选运动矢量的第一参考帧中找到对应的至少一个第一参考块;对所述每一个备选运动矢量进行时间上外插得到对应的关联运动矢量,根据关联运动矢量在所述第一参考帧同向的第二参考帧中确定对应的至少一个第二参考块;对所述每一个备选运动矢量对应的第一参考块和所述关联运动式量对应的第二参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述至少一个第一参考块和所述至少一个第二参考块的相似度以及当前编码块模板区域分别与所述至少一个第一参考块和所述至少一个第二参考块的模板区域的相似度得到;根据所述选择的备选运动矢量确定当前编码块运动矢量。
[0011] 一种获取视频图像运动信息的方法,包括:
[0012] 采用当前编码块的备选运动矢量集中的每一个备选运动矢量,在所述每一个备选运动矢量的第一参考帧中找到对应的第一参考块;确定所述每一个备选运动矢量对应的关联运动矢量,在与所述第一参考帧反向的所述关联运动矢量的第二参考帧中确定对应的备选第二参考块;对所述每一个备选运动矢量对应的第一参考块以及所述关联运动矢量对应的第二参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述第一参考块和所述第二参考块的相似度以及当前编码块模板区域分别与所述第一参考块和所述第二参考块的模板区域的相似度得到;根据所述选择的备选运动矢量以及所述关联运动矢量确定当前编码块运动矢量。
[0013] 一种编/解码器,用于执行上述任一获取视频图像运动矢量信息的方法。
[0014] 一种编/解码系统,所述编/解码系统包括上述编/解码器,所述编/解码系统用于接收输入信号,送入所述编/解码器,并发送所述编/解码器的输出,其中,所述编/解码器用于执行包括上述任一获取视频图像运动矢量信息的方法。
[0015] 本发明实施例提供的视频图像处理方法以及编解码装置,通过对当前编码块的备选运动矢量集中的每一个备选运动矢量根据能量函数进行判断,从所述每一个备选运动矢量中选择至少一个运动矢量,所述能量函数根据所述当前编码块的至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度得到,根据所述选择的至少一个运动矢量确定当前编码块运动矢量可以有效减小误差,以提高视频图像的编解码效率。

附图说明

[0016] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017] 图1为现有技术的方法示意图;
[0018] 图2为本发明实施例一的方法流程图;
[0019] 图3为本发明实施例二的方法流程图;
[0020] 图4为本发明实施例的备选运动矢量集示意图;
[0021] 图5为本发明实施例二中的参考帧结构示意图一;
[0022] 图6为本发明实施例三的方法流程图;
[0023] 图7为本发明实施例的P帧外插示意图。

具体实施方式

[0024] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 实施例一:
[0026] 如图2所示,本实施例提供的视频图像处理的方法,包括以下步骤:
[0027] 201,得到当前编码块的备选运动矢量集中的每一个备选运动矢量对应的当前编码块的至少两个关联参考块。
[0028] 从与当前编码块相关的编码块/解码块的运动矢量中选择其全部或者部分组成一个备选运动矢量集,所述当前编码块的备选运动矢量计根据时间空间相关性获取已编码块的运动信息构建而成。
[0029] 根据每个备选运动矢量在第一参考帧中对应地确定一个备选第一参考块,从而得到一组备选第一参考块,进一步根据物体运动模型以及每个备选运动矢量确定所述每个备选运动矢量的关联运动矢量,采用所述关联运动矢量在当前帧的第二参考帧中对应地搜索确定一个备选第二参考块,如可以采用对称性搜索通过各个备选第一参考块在所述第二参考帧中对应的备选第二参考块,也就是说,对称性搜索后,所述备选第一参考块与其对应的搜索到的备选第二参考块以当前编码块为中心等比例对称,也可以不考虑对称性进行等比例搜索确定一组备选第一参考块和一组备选第二参考块,同样也可以采用根据每个备选运动矢量经过缩放在第二参考帧中搜索对应的第二参考块。所述至少两个关联参考块包括一组备选第一参考块和一组备选第二参考块,进一步的,在多参考帧的情况下,还可以确定一组备选第三参考块,一组备选第四参考块以及更多的关联参考块,确定方法和上述描述相同,也可以采用其他搜索方式,要求搜索到的关联参考块遵从特定的搜索模式。
[0030] 202,对所述每一个备选运动矢量对应的当前编码块的至少两个关联参考块根据能量函数进行判断,从所述备选运动矢量集的每一个备选运动矢量中选择一个备选运动矢量,所述能量函数根据所述至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度得到。
[0031] 所述至少两个关联参考块的相似度可以通过如下方式获得:采用一个备选运动矢量对应的当前编码块的至少两个关联参考块,计算所述至少两个关联参考块像素间的相似度,其中,每个关联参考块像素的数量相同。所述当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度可以通过如下方式获得:分别在一个备选运动矢量对应的当前编码块的至少两个关联参考块周围已编码区域中获取模板区域,在当前编码块周围已编码区域中获取模板区域,分别计算当前编码块的模板区域和所述至少两个关联参考块的模板区域的相似度,其中所述至少两个关联参考块的模板区域与对应的关联参考块之间的位置和当前编码块的模板区域与当前编码块之间的位置相同,所述至少两个关联参考块的模板区域的形状与大小和当前编码块的模板区域的形状与大小相同。如所述至少两个关联参考块为两个关联参考块时,所述至少两个关联参考块的相似度,当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度进行加权叠加得到所述能量函数包括:
[0032] CostDirect=lambda1*COST(MBassociate1,MBassociate2)+lambda2*COST(Templateassociate1,Templatecurrent)+lambda3*COST(Templateassociate2,Templatecunrent)[0033] 其中,lambda1、lambda2和lambda3为大于零的加权系数,COST代表相似度计算函数,MB表示当前编码块,template表示模板区域,associate1表示当前编码块的一个关联参考块,associate2表示当前编码块的另一关联参考块。
[0034] 所述相似度包括误差和、绝对误差和(SAD)、绝对转换误差和(sum ofabsolute transformation differences)或绝对平方差和。当然还可以是其它一些可以用于描述两个参考块之间相似度的参数;在本实施例中以及以下各个实施例中,均以绝对误差和为例对本发明提供的方案进行阐述。
[0035] 选择使所述能量函数最小时对应的备选运动矢量,也可以选择能量函数稍小时对应的备选运动矢量,比如能量函数仅大于最小值而小于其他能量函数值时对应的备选运动矢量,在其他可能的应用中,由于环境、设备等因素能量函数可能产生小的误差和不稳定,本实施例的实施均需要结合进行考虑,不限定与上述描述的情况。
[0036] 203,根据至少所述选择的备选运动矢量确定当前编码块运动矢量。
[0037] 编码端将所述选择的备选运动矢量即作为所述当前编码块的运动矢量;或者,得到所述选择的备选运动矢量和当前编码块通过运动搜索得到的运动矢量之间的差值,并将所述差值发送给解码端,解码端进行解析,然后按照编码逆过程根据得到的差值和执行步骤201,步骤202和步骤203选择的备选运动矢量结合恢复出当前编码块的运动矢量。在另一实施情况下,编码端将所述选择的备选运动矢量以及所述选择的备选运动矢量对应的关联运动矢量即作为所述当前编码块的运动矢量;或者,得到所述选择的备选运动矢量以及其所述关联运动矢量和当前编码块通过运动搜索得到的运动矢量对之间的差值,并将所述差值发送给解码端用于得到当前编码块的运动矢量。
[0038] 为了更好地实现上述视频图像处理的方法,本实施例还提供了一种编解码器,用于执行获取视频图像运动信息的方法,编码器获得当前编码块的备选运动矢量集中的每一个备选运动矢量对应的当前编码块的至少两个关联参考块,对所述每一个备选运动矢量对应的当前编码块的至少两个关联参考块根据能量函数进行判断,从所述备选运动矢量集中选择一个备选运动矢量,所述能量函数根据所述至少两个关联参考块的相似度以及当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度得到,根据至少所述选择的备选运动矢量确定当前编码块运动矢量。本实施中提供的编码器用于执行上述实施例一中所述获取视频图像运动信息的方法。
[0039] 为了更好地实现上述视频图像处理的方法,本实施例还提供了一种编/解码系统,包括上述的编/解码器,编/解码系统接收输入信号,将所述接收的输入信号送入编解码器,所述编/解码器用于执行上述获取视频图像运动信息的方法,将编/解码器的输出进行发送。
[0040] 本发明实施例提供的方法可以根据实际需要对各个步骤顺序进行调整。
[0041] 本实施例提供的获取视频图像运动信息的方法及编/解码器以及编/解码系统,改变了在确定参考块过程中确定参考块的策略,可以在保证编码性能基本不变的情况下降低参考块确定过程实现的复杂度,从而改进了视频图像中运动信息的获取过程,提高了视频图像的编解码效率。
[0042] 实施例二:
[0043] 以按B帧编码为例,如图3所示,本实施例提供的视频图像处理方法,具体包括以下步骤:
[0044] 301、利用当前编码块周围已编码的块的运动矢量组成一个备选运动矢量集,其中包括与当前编码块相关的编码块的运动矢量中的部分或者全部。
[0045] 所述当前编码块可以是完整的宏块,也可以是宏块的划分块,在这里以完整的宏块为例;
[0046] 本实施例中,所述备选运动矢量集可以包括:与当前编码块(Curr_blk)在空间上相关的周边块的运动矢量MVL、MVU、MVR,MVUL和MEAN(MVL、MVU、MVR),前向参考帧fn-1中相同位置块中的运动矢量(如图4中的col_MV1、col_MV2、col_MV3、col_MV4)以及相同位置块的周边块的运动矢量(如图4中的MV1、MV2、...、MV12),后向参考帧fn+1中相同位置块中的运动矢量(如图4中的col_MV1′、col_MV2′、col_MV3′、col_MV4′)以及相同位置块的周边块的运动矢量(如图5中的MV1′、MV2′、...、MV12′)中的全部或者其中一部分,即包括当前编码块的左边块,上边块,左上块,右上块,在参考帧中和当前编码块相同位置的块的左边块,上边块,左上块,右上块或其中的一部分,以及在参考帧中和当前编码块相同位置的块。
[0047] 针对备选运动矢量集中的每一个备选运动矢量,执行步骤302-步骤307。
[0048] 302、选择所述备选运动矢量集中的一个备选运动矢量,根据该运动矢量在第一参考帧中找到一个备选第一参考块blk11,在本实施例中,以当前帧的前向参考帧fn-1为第一参考帧。
[0049] 303、根据当前编码块所在编码帧和所述第一参考帧以及第二参考帧的位置关系,结合所述备选运动矢量确定所述备选运动矢量对应的关联运动矢量,根据所述每个备选运动矢量的关联运动矢量在第二参考帧中确定与所述备选第一参考块blk11对应的备选第二参考块blk21,在本实施例中,以当前帧的后向参考帧fn+1为第二参考帧。
[0050] 在本实施例中,将所述备选运动矢量和所述备选运动矢量对应的关联运动矢量作为一组运动矢量。此时的第一参考帧为前向参考帧,第二参考帧为后向参考帧,在其他实施例中,第一参考帧可以为后向参考帧,第二参考帧可以为前向参考帧,甚至第一第二参考帧为同向参考帧,进一步的,本实施例中,仅以两个关联参考块进行描述,分别为一个第一参考块和一个第二参考块,实际中,可以为一组第一参考块和一组第二参考块。
[0051] 步骤302和步骤303中,以两个P帧之间只有一个B帧的情况为例,其当前待编码块的前后向运动矢量在编码器中和解码器中都通过一个相同的搜索过程得到,搜索过程必须保证所搜索到的前后向运动矢量满足匀速线性模型,本实施例如图5所示,即Vf=-Vb,其中设Vf为备选运动矢量集中的一个备选运动矢量(前向运动矢量),Vb是所述备选运动矢量的关联运动矢量(后向运动矢量)。在此实施例中,运动矢量的搜索精度为1/4像素,采用整像素->1/2像素->1/4像素的全搜索过程,搜索范围为8(整像素单位)。在另一实施例中也可以采用如加速运动等其他运动模型,加速运动模型如:
[0052] Vf=-(Vb+α)其中α为速度差。
[0053] 对于多个连续B帧的情况,其前/后向运动矢量的获得方式基本相同。在此实例中,其不同之处是对前/后向运动矢量关系的约束。如果当前B帧距第一参考帧(前向参考帧)之间的距离为Tf,距第二参考帧(前向参考帧)之间的距离为Tb,则搜索范围内备选运动矢量和对应的关联运动矢量满足:
[0054] Vf/Tf=-Vb/Tb,其中,
[0055] Tf是当前编码块所在编码帧距第一参考帧之间的距离,Tb是当前编码块编码所在编码帧距第二参考帧之间的距离,Vf为备选运动矢量,Vb为对应的关联运动矢量。
[0056] 304、采用一个备选运动矢量对应的当前编码块的第一参考块和第二参考块,计算第一参考块和第二参考块的相似度。
[0057] 其中,采用计算第一参考块的像素和第二参考块像素计算相似度,计算第一参考块像素和第二参考块像素间的相似度满足第一参考块像素的数量和第二参考块像素的数量相同。
[0058] 305、在当前帧fn中当前编码块(Curr_blk)的周围利用重建值和参考帧预测值构造一个模板TM1,在备选第一参考块blk11的周围利用重建值构建模板TM11,在备选第二参考块blk21的周围利用重建值构建模板TM21。
[0059] 306、计算当前编码块的模板TM1的模板区域和第一参考块的模板TM11的模板区域的相似度,计算当前编码块的模板TM1的模板区域和第二参考块的模板TM21的模板区域的相似度。
[0060] 其中所述第一,第二参考块的模板区域与对应的第一,第二参考块之间的位置和当前编码块的模板区域与当前编码块之间的位置相同,所述第一,第二将编/解码器的输出进行发送。
[0061] 实施例三:
[0062] 以按P帧编码为例,如图6所示,本实施例提供的视频图像处理方法,具体包括以下步骤:
[0063] 601、利用当前编码块周围已编码的块的运动矢量组成一个备选运动矢量集,其中包括与当前编码块相关的编码块的运动矢量中的部分或者全部。
[0064] 所述当前编码块可以是完整的宏块,也可以是宏块的划分块,在这里以完整的宏块为例;
[0065] 所述备选运动矢量集中可以包括:与当前编码块(Curr_blk)在空间上相关的周边块的运动矢量MVL、MVU、MVR,MVUL和MEAN(MVL、MVU、MVR),前向参考帧fn-1中相同位置块中的运动矢量(如图5中的col_MV1、col_MV2、col_MV3、col_MV4)以及相同位置块的周边块的运动矢量(如图4中的MV1、MV2、...、MV12),后向参考帧fn+1中相同位置块中的运动矢量(如图4中的col_MV1′、col_MV2′、col_MV3′、col_MV4′)以及相同位置块的周边块的运动矢量(如图4中的MV1′、MV2′、...、MV12′)中的全部或者其中一部分,即包括当前编码块的左边块,上边块,左上块,右上块,在参考帧中和当前编码块相同位置的块的左边块,上边块,左上块,右上块或其中的一部分,以及在参考帧中和当前编码块相同位置的块。
[0066] 针对备选运动矢量集中的每一个备选运动矢量,执行步骤602-步骤607。
[0067] 602、选择所述备选运动矢量集中的一个备选运动矢量,根据该运动矢量在第一参考帧中找到一个备选第一参考块blk12,在本实施例中,以当前帧的前向参考帧fn-1为第一参考帧。
[0068] 603、对所述备选运动矢量进行时间上外插得到对应的关联运动矢量,根据关联运动矢量在所述第一参考帧同向的第二参考帧中确定对应的至少一个第二参考块blk22。
[0069] 对所述备选运动矢量进行时间上的外插,在距离当前编码块更远的第二参考帧中找到与所述备选运动矢量对应的关联运动矢量,也可以称为外插运动矢量,根据所述外插运动矢量在第二参考帧中确定相应的第二参考块blk22,本实参考块的模板区域的形状与大小和当前编码块的模板区域的形状与大小相同。
[0070] 307、根据步骤304和步骤306得到的相似度计算对每一个备选运动矢量的能量信息。
[0071] 具体体现为能量函数,可以采用所述至少两个关联参考块的相似度,当前编码块的模板区域分别和所述至少两个关联参考块的模板区域的相似度进行加权叠加得到所述能量函数。采用计算得到的第一参考块周围的已编码像素和第二参考块周围已编码像素间的相似度,当前编码块的模板TM1的模板区域和第一参考块的模板TM11的模板区域的相似度,当前编码块的模板TM1的模板区域和第二参考块的模板TM21的模板区域的相似度进行加权叠加得到能量函数,可如下表示:
[0072] CostDirect=lambdal1*COST(MBforward,MBbackward)+lambdal2*COST(Templateforward,Templatecurrent)+lambdal3*COST(Templatebackrward,Templatecunrent)
[0073] 其中,lambda1、lambda2和lambda3为大于零的加权系数,COST代表相似度计算函数,MB表示当前编码块,template表示模板区域,forward表示第一参考块,backward表示第二参考块。
[0074] 本实施例中用误差和表示相似度时,能量函数可以如下表示:
[0075] CostDirect=lambda1*SAD(MBforward,Bbackward)+lambda2*SAD(Templateforward,Templatecurrent)+lambda3*SAD(Templatebackrward,Templatecunrent)
[0076] 308、选取针对每一个备选运动矢量的能量函数最小时所对应的备选运动矢量。
[0077] 309、根据所述选择的备选运动矢量和所述选择的备选运动矢量的关联运动矢量确定当前编码块运动矢量。
[0078] 310、采用所述当前编码块运动矢量进行当前编码块编解码。
[0079] 为了更好地实现上述视频图像处理的方法,本实施例还提供了一种编/解码器,用于执行获取视频图像运动信息的方法对当前编码块编码以及解码。
[0080] 为了更好地实现上述视频图像处理的方法,本实施例还提供了一种编/解码系统,包括上述的编/解码器,编/解码系统接收输入信号,将所述接收的输入信号送入编/解码器,所述编/解码器用于执行上述获取视频图像运动信息的方法,施例中采用的运动模型可以物体匀速直线运动,如图7所示,其中Fn为当前帧,Bn为当前待编码块,Bn-1和Bn-1’为Bn根据备选运动矢量Vf在Fn第一参考帧Fn-1中找到的参考块,Bn-2和Bn-2’为Bn根据备选运动矢量Vf经过缩放在距离Fn更远的第二参考帧Fn-2中找到的参考块,Bn-2和Bn-2’相对于Bn的运动矢量为Vf′,其中Vf′与Vf的关系与Fn-2和Fn-1相对于Fn的距离以及采用运动模型相关,如果采用匀速直线运动模型,并且Fn-1为距离Fn最近的参考帧,Fn-2为距离Fn第二近的参考帧的情况下,Vf′=2Vf。
[0081] 实施例也可以采用加速运动等其他运动模型,加速运动模型如下:
[0082] Vf′=2(Vf+α)其中α为速度差。
[0083] 上述只给出了两个参考帧与当前编码帧直接相邻的情况,对于两个参考帧与当前编码帧有一定距离的情况下,其运动矢量Vf和时间域外插得运动矢量Vf′的关系要与参考帧与编码帧的距离有关。在此实例中,如果当前编码帧距第一参考帧Fn-1之间的距离为Tf,距第二参考帧Fn-2之间的距离为Tf′,则搜索范围内的每一对运动矢量应当满足如下关系:
[0084] Vf/Tf=Vf′/Tf′,其中,Vf为备选运动矢量,Vf′为外插运动矢量,Tf是当前编码块所在编码帧距第一参考帧之间的距离,Tf′是当前编码块所在编码帧距第二参考帧之间的距离。
[0085] 步骤604-步骤610同步骤304-步骤310
[0086] 604、采用一个备选运动矢量对应的当前编码块的第一参考块和第二参考块像素,计算第一参考块和第二参考块的相似度。
[0087] 其中,采用计算第一参考块的像素和第二参考块像素计算相似度,计算第一参考块像素和第二参考块像素间的相似度满足第一参考块周围的像素的数量和第二参考块的像素数量相同。
[0088] 605、在当前帧fn中当前编码块(Curr_blk)的周围利用重建值和参考帧预测值构造一个模板TM1,在备选第一参考块blk12的周围利用重建值构建模板TM11,在备选第二参考块blk22的周围利用重建值构建模板TM21。
[0089] 606、计算当前编码块的模板TM1的模板区域和第一参考块的模板TM11的模板区域的相似度,计算当前编码块的模板TM1的模板区域和第二参考块的模板TM21的模板区域的相似度。
[0090] 其中所述第一,第二参考块的模板区域与对应的第一,第二参考块之间的位置和当前编码块的模板区域与当前编码块之间的位置相同,所述第一,第二参考块的模板区域的形状与大小和当前编码块的模板区域的形状与大小相同。
[0091] 607、根据步骤604和步骤606得到的相似度计算对每一个备选运动矢量的能量信息。
[0092] 具体体现为能量函数,本实施例中用误差和表示相似度,采用计算得到的第一参考块周围的已编码像素和第二参考块周围已编码像素间的相似度,当前编码块的模板TM1的模板区域和第一参考块的模板TM11的模板区域的相似度,当前编码块的模板TM1的模板区域和第二参考块的模板TM21的模板区域的相似度进行加权叠加得到能量函数,可如下表示:
[0093] CostDirect=lambda1*COST(MBforward,MBforward)+lambda2*COST(Templateforward,Templatecurrent)+lambda3*COST(Templateforward’,Templatecunrent)
[0094] 其中,lambda1、lambda2和lambda3为大于等于零的加权系数,COST代表相似度计算函数,MB表示当前编码块,template表示模板区域,forward表示第一参考块,forward’表示第二参考块。
[0095] 本实施例中用误差和表示相似度时,能量函数可以如下表示:
[0096] CostDirect=lambda1*SAD(MBforward,MBforward‘)+lambda2*SAD(Templateforward,Templatecurrent)+lambda3*SAD(Templateforward’,Templatecunrent)。
[0097] 608、选取针对每一个备选运动矢量的能量函数最小时所对应的备选运动矢量。
[0098] 609、根据所述选择的备选运动矢量确定当前编码块运动矢量。
[0099] 610、采用所述当前编码块运动矢量进行当前编码块编/解码。
[0100] 为了更好地实现上述视频图像处理的方法,本实施例还提供了一种编/解码器,用于执行获取视频图像运动信息的方法对当前编码块编码以及解码。
[0101] 为了更好地实现上述视频图像处理的方法,本实施例还提供了一种编/解码系统,包括上述的编/解码器,编/解码系统接收输入信号,将所述接收的输入信号送入编/解码器,所述编/解码器用于执行上述获取视频图像运动信息的方法,将编/解码器的输出进行发送。
[0102] 本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
[0103] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0104] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0105] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。