一种运动矢量导出方法及装置转让专利

申请号 : CN201710834419.0

文献号 : CN109510991B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 虞露孙煜程

申请人 : 浙江大学

摘要 :

本发明提供一种运动矢量导出方法及装置,包括:根据三角形相似,利用当前解码单元周边已解码区域的运动信息来导出当前解码单元或当前解码单元内部子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选。该运动矢量导出方法及装置能够充分利用当前解码单元的相邻周边已解码区域的运动信息,提高在帧间普通以及特殊模式下运动矢量导出的准确性,提高了编解码效率。

权利要求 :

1.一种运动矢量导出方法,其特征在于包括:

获得当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,其中MV1不等于MV2;以运动矢量MV1的起始点A和运动矢量MV1确定运动矢量MV1的终止点A’的位置,其中A为当前解码单元外的点,以运动矢量MV2的起始点B和运动矢量MV2确定运动矢量MV2的终止点B’的位置,其中B为当前解码单元外的点;

依据以下准则进行合理性检验:

矢量AB的长度和矢量A’B’的长度的比值不超出[k,l]范围,其中0≤k≤l≤10,矢量AB和矢量A’B’的夹角大小不超过θ范围,θ小于等于90度;

若符合以上至少一个准则,则

对于当前解码单元或当前解码单元内部子块的代表性位置C,根据三角形ABC与三角形A’B’C’的相似性,导出C的对应点C’的位置;

由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元或当前解码单元内部子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选。

2.如权利要求1所述的运动矢量导出方法,其特征在于包括以下一种情况:从当前解码单元的左边已解码区域获取所述的运动矢量MV1、从当前解码单元的上边已解码区域获取所述的运动矢量MV2;

从当前解码单元的左边已解码区域获取所述的运动矢量MV2、从当前解码单元的上边已解码区域获取所述的运动矢量MV1。

3.如权利要求1所述的运动矢量导出方法,其特征在于还包括:由当前解码单元所在图像中的当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到所述的运动矢量MV1和运动矢量MV2。

4.如权利要求1所述的运动矢量导出方法,其特征还在于:所述当前解码单元内部子块为至少两个,每个当前解码单元内部子块的代表性位置各自独立,每个当前解码单元内部子块由位置C和位置C’计算得到的矢量CC’也各自独立。

5.一种运动矢量导出装置,其特征在于包括:

合理性检验模块:

获得当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,其中MV1不等于MV2;以运动矢量MV1的起始点A和运动矢量MV1确定运动矢量MV1的终止点A’的位置,其中A为当前解码单元外的点,以运动矢量MV2的起始点B和运动矢量MV2确定运动矢量MV2的终止点B’的位置,其中B为当前解码单元外的点;

矢量AB的长度和矢量A’B’的长度的比值不超出[k,l]范围,其中0≤k≤l≤10,矢量AB和矢量A’B’的夹角大小不超过θ范围,θ小于等于90度,若符合以上至少一个准则,则输出的合理性检验结果为合理;

位置导出模块:

若合理性检验结果为合理,则对于当前解码单元或当前解码单元内部子块的代表性位置C,根据三角形ABC与三角形A’B’C’的相似性,导出C的对应点C’的位置;

运动矢量生成模块:

由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元或当前解码单元内部子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选。

6.如权利要求5所述的运动矢量导出装置,其特征在于还包括运动矢量获取模块,所述的运动矢量获取模块包括以下的一种情况:从当前解码单元的左边已解码区域获取所述的运动矢量MV1、从当前解码单元的上边已解码区域获取所述的运动矢量MV2;

从当前解码单元的左边已解码区域获取所述的运动矢量MV2、从当前解码单元的上边已解码区域获取所述的运动矢量MV1。

7.如权利要求5所述的运动矢量导出装置,其特征在于还包括:运动矢量搜索导出模块,所述运动矢量搜索导出模块用于在当前解码单元所在的图像中的当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到所述的运动矢量MV1和运动矢量MV2。

8.如权利要求5所述的运动矢量导出装置,其特征还在于,所述当前解码单元内部子块为至少两个,每个当前解码单元内部子块的代表性位置各自独立,每个当前解码单元内部子块由位置C和位置C’计算得到的矢量CC’也各自独立。

说明书 :

一种运动矢量导出方法及装置

技术领域

[0001] 本发明涉及视频处理技术,尤其涉及一种运动矢量导出方法及装置。

背景技术

[0002] 在视频编解码技术中,通过利用时间域和空间域的预测来消除视频信息在时间和空间上的冗余。帧间预测技术是一种普遍应用在视频编解码领域的技术。通过运动补偿,用已解码帧中的信息来预测当前帧的信息。在运动补偿过程中,视频码流中需要传输很多边信息,解码端利用这些边信息以及变换后的残差来重建出当前帧的像素信息。在运动矢量信息的传输过程中,通过合理的运动矢量预测方法,能有效的压缩运动信息的传输码率。运动矢量导出主要是利用当前帧间预测单元的空时域进行当前帧间预测单元的运动矢量预测值(MVP)。从而在实际码流中只需要传输当前帧间预测单元的最终运动矢量与MVP之差(MVD)或不传MVD直接使用导出的MVP作为当前解码单元的运动矢量MV,不需要传输整个最终运动矢量。在特殊情况下,当前帧间预测单元的参考帧信息也可以保持与MVP所对应的参考帧信息保持一致,即不需要额外传输当前帧间预测单元的参考帧信息。
[0003] AMVP(先进的运动矢量预测)技术通过构建运动矢量候选列表,通过在码流中传输选中的运动矢量预测值或运动矢量的序号,解码端根据序号以及按相同规则构建的运动矢量候选列表来导出运动矢量或运动矢量预测值。AMVP技术应用在特殊模式下被称为Merge模式。Merge模式在导出运动矢量时,不仅利用的相邻块中的运动矢量信息,同时也利用了相邻块的参考帧信息。Merge 模式构建的候选列表中,存放了按优先级顺序得到的相邻块的运动信息,包括运动矢量信息和参考帧信息。也就是说,Merge模式在导出运动矢量的同时也导出了与该运动矢量相对应的参考帧。在Merge模式中,当前块不仅运动矢量要和选定的相邻块相同,参考帧也要相同。Merge模式的思想是当前块和周边已解码块属于同一个平动模型,即运动矢量MV一致。
[0004] AMVP和Merge存在的问题是,当前块只依赖于一个周边块导出运动信息的预测值。若当当前块和周边块的运动模型并不是平移运动模型的时候,AMVP和Merge无法准确预测当前块的运动矢量。
[0005] STMVP(空时域运动矢量预测)技术是将当前块的上边块的运动矢量(若存在),左边块的运动矢量(若存在)以及当前块的TMVP(时域运动矢量预测值)缩放至当前块参考帧列表的第一帧。将这最多三个运动矢量进行平均,从而得到当前块的新的运动矢量预测值。STMVP技术的问题在于,虽然利用了多个周边块联合导出一个新的MVP,但是采用直接平均的方法没有准确的物理意义,即没有充分利用相邻块间的运动相关性。
[0006] 在透视投影下,刚体在三维空间中的运动,在成像平面上的投影呈现为平移,旋转,缩放。仿射运动模型是考虑了平移,旋转,缩放的运动信息表达模型。一般的仿射运动模型具有六个参数:
[0007]
[0008] 上式中(x,y)是当前帧的点,(x’,y’)是参考帧的点,a,b,c,d,e,f是仿射运动模型的六个参数。为了导出这六个参数,需要3组已知的(x,y)和(x’,y’)对,联立三组方程组,从而计算得到a,b,c,d,e,f六个参数的值。
[0009] 在仿射运动模型的简化模型下,帧间预测块被分为等大小的若干小区域,每个小区域(即子块)内运动速度是一致的(即并不是每个像素的运动速度都可能不同,这是一种降低了精度的刻划渐变运动速度的方法),而每个小区域的运动补偿模型仍是平面平动模型(图像块在图像平面内只有平移,不改变形状、大小,因此对子块运动的描述仍可参数化为一个运动矢量)。当物体的旋转运动的旋转轴垂直于图像平面时,仿射物体的任意两点的尺度缩放比例是一致的(任意两条直线构成的夹角大小保持不变)。在上述限制下a,b,c,d,e,f六个参数的仿射运动退化为四参数的仿射运动模型,即a,b,c,d四个参数之间存在一定的关系,如下所示只需要用两个参数即可导出a,b,c,d四个参数。
[0010]
[0011] S为当前块的变长,因为在现有仿射模型中当前块为方形,即S×S。参见图10,vx0为v0的横向分量,vy0为v0的纵向分量;vx1为v1的横向分量,vy1为v1的纵向分量。
[0012] 这种特殊的仿射运动需采用两个控制点进行仿射运动矢量场导出。两个控制点位置一般为当前帧间预测块的左上角像素点位置,当前帧间预测块的右上角像素点位置。
[0013] 仿射运动的区域一般为当前帧间预测块内,与周边已解码块的运动模式无关。前面提到Merge 模式是当前块和周边已解码块属于一个平动模型,即运动矢量和参考帧信息一致。仿射运动的 Merge模式的思想在于,当前块和周边已解码块属于同一个仿射运动模型,共享仿射参数。而Merge 模式是当前块和周边已解码块属于同一个平面平动模型,共享一个运动矢量。

发明内容

[0014] 本发明的目的在于利用当前解码单元的周边已解码区域的运动信息,导出当前解码单元或当前解码单元内部子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选。
[0015] 本发明基于四参数的仿射运动模型,即支持物体的平移,缩放以及旋转轴垂直于图像平面的旋转运动。本发明设计思路在于:现有技术取当前解码单元内部的点作为控制点位置,一定程度上限制了通过已解码区域来导出控制点运动矢量的准确性。而本发明的仿射运动模型控制点不是在当前解码单元内部的点而是在当前解码单元之外的点,这便于利用已解码的区域导出准确的控制点的运动矢量值。
[0016] 本发明提出一种运动矢量导出方法,其包括:
[0017] 根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量 MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元或当前解码单元内部子块的代表性位置;
[0018] 由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元或当前解码单元内部子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选。
[0019] 其中所谓子块,是当前解码单元的进一步划分,子块不等于当前解码单元。
[0020] 作为优选,所述运动矢量导出方法,还包括一个合理性检验步骤,所述合理性检验步骤依据以下准则:
[0021] 所述的矢量AB的长度和矢量A’B’的长度的比值不超出[k,l]范围,0≤k≤l≤10;
[0022] 所述的矢量AB和矢量A’B’的夹角大小不超出θ范围,θ小于等于90度;
[0023] 若符合以上至少一个准则,则判定所述的矢量CC’输出有效。
[0024] 作为优选,所述运动矢量导出方法还包括以下一种情况:
[0025] 从当前解码单元的左边已解码区域获取所述的运动矢量MV1、从当前解码单元的上边已解码区域获取所述的运动矢量MV2;
[0026] 从当前解码单元的左边已解码区域获取所述的运动矢量MV2、从当前解码单元的上边已解码区域获取所述的运动矢量MV1。
[0027] 作为优选,所述运动矢量导出方法还包括由当前解码单元所在图像中的当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到所述的运动矢量MV1和运动矢量MV2。
[0028] 作为优选,所述当前解码单元内部子块为至少两个,每个当前解码单元内部子块的代表性位置各自独立,每个当前解码单元内部子块由位置C和位置C’计算得到的矢量CC’也各自独立。
[0029] 本发明的另一目的还在于提出一种运动矢量导出装置,其包括,
[0030] 位置导出模块:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2 的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元或当前解码单元内部子块的代表性位置;
[0031] 运动矢量生成模块:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元或当前解码单元内部子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选。
[0032] 作为优选,所述运动矢量导出装置包括在所述的位置导出模块之前添加合理性检验模块,所述合理性检验模块依据以下准则:
[0033] 所述的矢量AB的长度和矢量A’B’的长度的比值不超出[k,l]范围,0≤k≤l≤10;
[0034] 所述的矢量AB和矢量A’B’的夹角大小不超出θ范围,θ小于等于90度;
[0035] 若符合以上至少一个准则,则判定所述的位置导出模块和运动矢量生成模块的矢量CC’的输出有效。
[0036] 作为优选,所述运动矢量导出装置还包括在所述的位置导出模块之前添加运动矢量获取模块,所述的运动矢量获取模块包括以下的一种情况:
[0037] 从当前解码单元的左边已解码区域获取所述的运动矢量MV1、从当前解码单元的上边已解码区域获取所述的运动矢量MV2;
[0038] 从当前解码单元的左边已解码区域获取所述的运动矢量MV2、从当前解码单元的上边已解码区域获取所述的运动矢量MV1。
[0039] 作为优选,所述运动矢量导出装置还包括:在所述的位置导出模块之前添加运动矢量搜索导出模块,所述运动矢量搜索导出模块用于在当前解码单元所在的图像中的当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到所述的运动矢量MV1和运动矢量MV2。
[0040] 和现有技术相比,现有的仿射运动需要在当前解码单元的码流中传输是否使用仿射模型的语法,但是本发明可以仅根据当前解码单元码流之外的码流,通过检验仿射模型的物理合理性,比如缩放比例是否合理,旋转角度是否合理,来决定当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选是否通过仿射模型导出。
[0041] 另外,本发明还对仿射运动模型的控制点进行了一定的限制:一方面,控制点分别来自当前解码单元的上边和左边区域,能够在一定程度上保证控制点MV对当前解码单元或当前解码单元内部子块的影响程度;另一方面,用已解码区域进行运动矢量的重新搜索,可以保证控制点运动矢量MV的准确性,从而确保仿射运动矢量导出的准确性。
[0042] 在运用仿射运动模型的情况下,当前解码单元以子块级进行仿射运动矢量导出的时候,各个子块应该共享同一套控制点参数,即共享控制点位置以及控制点位置的运动矢量MV1和MV2来保证整个当前解码块的仿射运动一致性。

附图说明

[0043] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0044] 图1为本发明实施例提供的一种帧间当前解码单元及其相邻块示意图;
[0045] 图2为本发明实施例提供的一种利用运动矢量MV1和MV2导出运动矢量的示意图;
[0046] 图3为本发明实施例提供的一种利用运动矢量MV1和MV2导出子块的运动矢量的示意图;
[0047] 图4为本发明实施例提供的一种帧间当前解码单元划分子块及其相邻块示意图;
[0048] 图5(a)为本发明实施例提供的一种运动矢量导出装置的示意图;
[0049] 图5(b)为本发明实施例提供的一种子块运动矢量导出装置的示意图;
[0050] 图6(a)为本发明实施例提供的一种运动矢量导出装置的示意图;
[0051] 图6(b)为本发明实施例提供的一种子块运动矢量导出装置的示意图;
[0052] 图7(a)为本发明实施例提供的一种运动矢量导出装置的示意图;
[0053] 图7(b)为本发明实施例提供的一种子块运动矢量导出装置的示意图;
[0054] 图8(a)为本发明实施例提供的一种运动矢量导出装置的示意图;
[0055] 图8(b)为本发明实施例提供的一种子块运动矢量导出装置的示意图;
[0056] 图9为本发明实施例提供的一种子块运动矢量导出装置的示意图;
[0057] 图10为本发明背景技术中四参数仿射运动模型的示意图。

具体实施方式

[0058] 在视频编码中,视频数据可以被划分为不同大小的M×N(M,N的值一般为2的幂次)的帧间预测像素块。这些M×N的待解码像素块称为当前解码单元。当前解码单元周围可以有多个已解码像素块,这些已解码像素块被称为周边已解码块,周边已解码块所在区域为周边已解码区域。
[0059] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060] 实施例1
[0061] 本实例提供的一种运动矢量导出方法,具体包括:
[0062] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0063] 具体地,一种可用的导出方法:如图1所示,当前解码单元的周边已解码块有A1,A2,……,An, B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。A取MV1所在帧间预测块的中心位置,B取MV2所在预测块的中心位置,C取当前解码单元的中心位置,A,B,C位置的物理意义不绑定。
[0064] 如图2所示,三角形ABC与三角形A’B’C’满足如下关系:
[0065] ΔABC∽ΔA′B′C′
[0066] 即,三角形ABC与三角形A’B’C’的相似关系中,A对应A’,B对应B’,C对应C’。向量AA’是运动矢量MV1,向量BB’是运动矢量MV2,需要导出的运动矢量MV3是向量CC’。假设θ1是向量AB和向量A’B’的夹角;θ′1是向量AC和向量A’C’的夹角;假设θ2是向量BA和向量AC的夹角;θ′2是向量B’A’和向量A’C’的夹角,则三角形ABC与三角形A’B’C’的相似性可以用下式表示:
[0067]
[0068] 若(a1,b1)是向量AB,(a2,b2)是向量A’B’,(c1,d1)是向量AC是,(c2,d2)是向量A’C’, (e1,f1)是向量CB。三角形ABC与三角形A’B’C’的相似性改写为:
[0069]
[0070] 由上式三角形ABC与三角形A’B’C’的相似性得到C’位置的值(x’,y’):
[0071]
[0072] 由下式得到α,β1,β2:
[0073]
[0074] 由下式得到函数g(k,l)和函数h(k,l):
[0075]
[0076] 其中,(x′1,y′1)是点A’的坐标,(x′2,y′2)是点B’的坐标。
[0077] C’位置的值(x’,y’)还可以通过其它与此等价的过程或与此近似的过程计算得到。
[0078] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0079] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0080]
[0081] 实施例2
[0082] 本实例提供的一种运动矢量导出方法,具体包括:
[0083] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0084] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0085] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0086] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0087]
[0088] 实施例3
[0089] 本实例提供的一种运动矢量导出方法,具体包括:
[0090] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0091] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0092] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0093] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0094]
[0095] 实施例4
[0096] 本实例提供的一种运动矢量导出方法,具体包括:
[0097] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0098] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0099] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0100] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0101]
[0102] 实施例5
[0103] 本实例提供的一种运动矢量导出方法,具体包括:
[0104] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0105] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0106] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0107] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0108]
[0109] 实施例6
[0110] 本实例提供的一种运动矢量导出方法,具体包括:
[0111] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0112] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0113] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0114] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0115]
[0116] 实施例7
[0117] 本实例提供的一种运动矢量导出方法,具体包括:
[0118] 步骤一,根据矢量AB和矢量A’B’的夹角大小不超出θ(θ小于等于90度)范围来判断是否进行步骤二。
[0119] 具体地,检验线段AB和线段A’B’的平行程度。线段AB和线段A’B’的平行程度刻画了物体的旋转程度,而参考帧和当前帧之间的旋转超过一定程度后,块级的仿射模型不再适用。故而当线段AB 和线段A’B’的夹角小于给定阈值γ,判定为检验合理。
[0120] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0121] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0122] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0123] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0124]
[0125] 实施例8
[0126] 本实例提供的一种运动矢量导出方法,具体包括:
[0127] 步骤一,根据矢量AB的长度和矢量A’B’的长度的比值不超出[k,l](0≤k≤l≤10)范围来判断是否进行步骤二。
[0128] 具体地,检测线段AB和线段A’B’的长度比例大小。因为线段AB和线段A’B’的长度比例大小刻画了物体的缩放程度,而参考帧和当前帧之间的缩放超过一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的长度比例大小在给定范围[1/δ,δ],δ≥1内,判定为检验合理,进行步骤二。
[0129] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0130] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0131] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0132] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0133]
[0134] 实施例9
[0135] 本实例提供的一种运动矢量导出方法,具体包括:
[0136] 步骤一,从当前解码单元的码流中获得信息,根据当前解码单元的码流中获得的信息决定是否进行步骤二。
[0137] 具体地,一种从当前解码单元的码流中获得信息的方法为,在当前解码单元的码流中传输一个标志位。当解码后标志位为1时,进行步骤二操作。
[0138] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0139] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0140] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0141] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0142]
[0143] 实施例10
[0144] 本实例提供的一种运动矢量导出方法,具体包括:
[0145] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。其中运动矢量MV1和运动矢量 MV2都来自左边已解码区域或运动矢量MV1和运动矢量MV2都来自上边已解码区域。
[0146] 具体地,如图1所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV1 和运动矢量MV2或从m个上边已解码区域帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例1,2,3,4,5,6中的位置以及其他代表性位置,其中AB的位置在当前解码单元外,A,B, C位置的物理意义不绑定。
[0147] 进一步的导出方法如实施例1的步骤一所示。
[0148] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0149] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0150]
[0151] 实施例11
[0152] 本实例提供的一种运动矢量导出方法,具体包括:
[0153] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。其中运动矢量MV1和运动矢量 MV2都来自左边已解码区域或运动矢量MV1和运动矢量MV2都来自上边已解码区域。
[0154] 具体地,如图1所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV1,从m个上边已解码区域帧间预测块中的获取运动矢量MV2。以此提高运动矢量MV1和运动矢量MV2对整个当前解码单元的影响程度。ABC的位置可取实施例1,2,3,4,5,6中的位置以及其他代表性位置,其中 AB的位置在当前解码单元外,A,B,C位置的物理意义不绑定。
[0155] 进一步的导出方法如实施例1的步骤一所示。
[0156] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0157] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0158]
[0159] 实施例12
[0160] 本实例提供的一种运动矢量导出方法,具体包括:
[0161] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。其中运动矢量MV1和运动矢量 MV2都来自左边已解码区域或运动矢量MV1和运动矢量MV2都来自上边已解码区域。
[0162] 具体地,如图1所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV2,从m个上边已解码区域帧间预测块中的获取运动矢量MV1。以此提高运动矢量MV1和运动矢量MV2对整个当前解码单元的影响程度。ABC的位置可取实施例1,2,3,4,5,6中的位置以及其他代表性位置,其中 AB的位置在当前解码单元外,A,B,C位置的物理意义不绑定。
[0163] 进一步的导出方法如实施例1的步骤一所示。
[0164] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0165] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0166]
[0167] 实施例13
[0168] 本实例提供的一种运动矢量导出方法,具体包括:
[0169] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。其中运动矢量MV1和运动矢量 MV2是由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到运动矢量MV1和运动矢量MV2。
[0170] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例1,2,3,4,5,6中的位置以及其他代表性位置,其中AB 的位置在当前解码单元外,A,B,C位置的物理意义不绑定。取MV1所在的周边已解码块的中心S×W 区域,称之为局部区域。利用该区域在MV1指向的参考帧上以SAD或SATD最小的准则,以MV1为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV1指向参考帧上以SAD或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0171] 进一步的导出方法如实施例1的步骤一所示。
[0172] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0173] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0174]
[0175] 实施例14
[0176] 本实例提供的一种运动矢量导出方法,具体包括:
[0177] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。其中运动矢量MV1和运动矢量 MV2是由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到的。
[0178] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例1,2,3,4,5,6中的位置以及其他代表性位置,其中AB 的位置在当前解码单元外,A,B,C位置的物理意义不绑定。取MV1所在的周边已解码块的中心S×W 区域,称之为局部区域。利用该区域在MV2指向的参考帧上以SAD或SATD最小的准则,以MV1的时域伸缩值为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV2指向参考帧上以SAD或SATD最小的准则,以MV2为搜索起始点进行运动矢量MV2的值的导出。
[0179] 进一步的导出方法如实施例1的步骤一所示。
[0180] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0181] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0182]
[0183] 实施例15
[0184] 本实例提供的一种运动矢量导出方法,具体包括:
[0185] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。其中运动矢量MV1和运动矢量MV2是由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到的。
[0186] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例1,2,3,4,5,6中的位置以及其他代表性位置,其中AB 的位置在当前解码单元外,A,B,C位置的物理意义不绑定。取MV1所在的周边已解码块的中心S×W 区域,称之为局部区域。利用该区域在当前帧的某一参考帧Ref上以SAD或SATD最小的准则,以MV1 的时域伸缩值为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在参考帧Ref上以SAD或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0187] 进一步的导出方法如实施例1的步骤一所示。
[0188] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0189] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0190]
[0191] 实施例16
[0192] 本实例提供的一种运动矢量导出方法,具体包括:
[0193] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0194] 具体地,一种可用的导出方法:如图3所示,当前解码单元的周边已解码块有A1,A2,……,An, B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。A取MV1所在帧间预测块的中心位置,B取MV2所在预测块的中心位置,C取当前子块的中心位置,A,B,C位置的物理意义不绑定。
[0195] 如图3所示,三角形ABC与三角形A’B’C’满足如下关系:
[0196] ΔABC∽ΔA′B′C′
[0197] 即,三角形ABC与三角形A’B’C’的相似关系中,A对应A’,B对应B’,C对应C’。向量AA’是运动矢量MV1,向量BB’是运动矢量MV2,需要导出的运动矢量MV3是向量CC’。假设θ1是向量AB和向量A’B’的夹角;θ′1是向量AC和向量A’C’的夹角;假设θ2是向量BA和向量AC的夹角;θ′2是向量B’A’和向量A’C’的夹角,则三角形ABC与三角形A’B’C’的相似性可以用下式表示:
[0198]
[0199] 若(a1,b1)是向量AB,(a2,b2)是向量A’B’,(c1,d1)是向量AC是,(c2,d2)是向量A’C’, (e1,f1)是向量CB。三角形ABC与三角形A’B’C’的相似性改写为:
[0200]
[0201] 由上式三角形ABC与三角形A’B’C’的相似性得到C’位置的值(x’,y’):
[0202]
[0203] 由下式得到α,β1,β2:
[0204]
[0205] 由下式得到函数g(k,l)和函数h(k,l):
[0206]
[0207] 其中,(x′1,y′1)是点A’的坐标,(x′2,y′2)是点B’的坐标。
[0208] C’位置的值(x’,y’)还可以通过其它与此等价的过程或与此近似的过程计算得到。
[0209] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0210] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0211]
[0212] 实施例17
[0213] 本实例提供的一种运动矢量导出方法,具体包括:
[0214] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0215] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0216] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0217] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0218]
[0219] 实施例18
[0220] 本实例提供的一种运动矢量导出方法,具体包括:
[0221] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0222] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0223] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0224] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0225]
[0226] 实施例19
[0227] 本实例提供的一种运动矢量导出方法,具体包括:
[0228] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0229] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0230] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0231] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0232]
[0233] 实施例20
[0234] 本实例提供的一种运动矢量导出方法,具体包括:
[0235] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0236] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0237] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0238] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0239]
[0240] 实施例21
[0241] 本实例提供的一种运动矢量导出方法,具体包括:
[0242] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0243] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0244] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0245] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0246]
[0247] 实施例22
[0248] 本实例提供的一种运动矢量导出方法,具体包括:
[0249] 步骤一,仅需要当前子块码流之外的码流,根据所述的运动矢量MV1和运动矢量MV2和A点位置和B点位置的物理意义合理性来判断是否进行步骤二。
[0250] 具体地,检验线段AB和线段A’B’的平行程度。线段AB和线段A’B’的平行程度刻画了物体的旋转程度,而参考帧和当前帧之间的旋转一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的夹角小于给定阈值γ,判定为检验合理。
[0251] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0252] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0253] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0254] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0255]
[0256] 实施例23
[0257] 本实例提供的一种运动矢量导出方法,具体包括:
[0258] 步骤一,仅需要当前子块码流之外的码流,根据所述的运动矢量MV1和运动矢量MV2和A点位置和B点位置的物理意义合理性来判断是否进行步骤二。
[0259] 具体地,检测线段AB和线段A’B’的长度比例大小。因为线段AB和线段A’B’的长度比例大小刻画了物体的缩放程度,而参考帧和当前帧之间的缩放超过一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的长度比例大小在给定范围[1/δ,δ],δ≥1内,判定为检验合理,进行步骤二。
[0260] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0261] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0262] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0263] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0264]
[0265] 实施例24
[0266] 本实例提供的一种运动矢量导出方法,具体包括:
[0267] 步骤一,从当前子块的码流中获得信息,根据当前子块的码流中获得的信息决定是否进行步骤二。
[0268] 具体地,一种从当前子块的码流中获得信息的方法为,在当前子块的码流中传输一个标志位。当解码后标志位为1时,进行步骤二操作。
[0269] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0270] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0271] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0272] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0273]
[0274] 实施例25
[0275] 本实例提供的一种运动矢量导出方法,具体包括:
[0276] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。其中运动矢量MV1和运动矢量MV2 都来自左边已解码区域或运动矢量MV1和运动矢量MV2都来自上边已解码区域。
[0277] 具体地,如图4所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV1 和运动矢量MV2或从m个上边已解码区域帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例16,17,18,19,20,21中的位置以及其他代表性位置,其中AB的位置在当前解码单元外, A,B,C位置的物理意义不绑定。
[0278] 进一步的导出方法如实施例16的步骤一所示。
[0279] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0280] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0281]
[0282] 实施例26
[0283] 本实例提供的一种运动矢量导出方法,具体包括:
[0284] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。其中运动矢量MV1和运动矢量MV2 都来自左边已解码区域或运动矢量MV1和运动矢量MV2都来自上边已解码区域。
[0285] 具体地,如图4所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV1,从m个上边已解码区域帧间预测块中的获取运动矢量MV2。以此提高运动矢量MV1和运动矢量MV2对整个当前子块的影响程度。ABC的位置可取实施例16,17,18,19,20,21中的位置以及其他代表性位置,其中AB的位置在当前解码单元外,A,B,C位置的物理意义不绑定。
[0286] 进一步的导出方法如实施例16的步骤一所示。
[0287] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0288] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0289]
[0290] 实施例27
[0291] 本实例提供的一种运动矢量导出方法,具体包括:
[0292] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。其中运动矢量MV1和运动矢量MV2 都来自左边已解码区域或运动矢量MV1和运动矢量MV2都来自上边已解码区域。
[0293] 具体地,如图4所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV2,从m个上边已解码区域帧间预测块中的获取运动矢量MV1。以此提高运动矢量MV1和运动矢量MV2对整个当前子块的影响程度。ABC的位置可取实施例16,17,18,19,20,21中的位置以及其他代表性位置,其中AB的位置在当前解码单元外,A,B,C位置的物理意义不绑定。
[0294] 进一步的导出方法如实施例16的步骤一所示。
[0295] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0296] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0297]
[0298] 实施例28
[0299] 本实例提供的一种运动矢量导出方法,具体包括:
[0300] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。其中运动矢量MV1和运动矢量MV2 是由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到的。
[0301] 具体地,如图4所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例16,17,18,19,20,21中的位置以及其他代表性位置,其中AB的位置在当前解码单元外,A,B,C位置的物理意义不绑定。取MV1所在的周边已解码块的中心 S×W区域,称之为局部区域。利用该区域在MV1指向的参考帧上以SAD或SATD最小的准则,以MV1 为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV1指向参考帧上以SAD或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0302] 进一步的导出方法如实施例16的步骤一所示。
[0303] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0304] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0305]
[0306] 实施例29
[0307] 本实例提供的一种运动矢量导出方法,具体包括:
[0308] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。其中运动矢量MV1和运动矢量MV2 是由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到的。
[0309] 具体地,如图4所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例16,17,18,19,20,21中的位置以及其他代表性位置,其中AB的位置在当前解码单元外,A,B,C位置的物理意义不绑定。取MV1所在的周边已解码块的中心 S×W区域,称之为局部区域。利用该区域在MV2指向的参考帧上以SAD或SATD最小的准则,以MV1 的时域伸缩值为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV2指向参考帧上以SAD或SATD最小的准则,以MV2为搜索起始点进行运动矢量MV2的值的导出。
[0310] 进一步的导出方法如实施例16的步骤一所示。
[0311] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0312] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0313]
[0314] 实施例30
[0315] 本实例提供的一种运动矢量导出方法,具体包括:
[0316] 步骤一,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。其中运动矢量MV1和运动矢量MV2 是由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到的。
[0317] 具体地,如图4所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。ABC的位置可取实施例16,17,18,19,20,21中的位置以及其他代表性位置,其中AB的位置在当前解码单元外,A,B,C位置的物理意义不绑定。取MV1所在的周边已解码块的中心 S×W区域,称之为局部区域。利用该区域在当前帧的某一参考帧Ref上以SAD或SATD最小的准则,以 MV1的时域伸缩值为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W 区域,称之为局部区域。利用该区域在参考帧Ref上以SAD或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0318] 进一步的导出方法如实施例16的步骤一所示。
[0319] 步骤二:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0320] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0321]
[0322] 实施例31
[0323] 本实例提供的一种运动矢量导出装置,如图5(a)所示:
[0324] 模块S101,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前解码单元代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0325] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0326] 具体地,一种可用的导出方法:如图2所示,三角形ABC与三角形A’B’C’满足如下关系:
[0327] ΔABC∽ΔA′B′C′
[0328] 即,三角形ABC与三角形A’B’C’的相似关系中,A对应A’,B对应B’,C对应C’。向量AA’是运动矢量MV1,向量BB’是运动矢量MV2,需要导出的运动矢量MV3是向量CC’。假设θ1是向量AB和向量A’B’的夹角;θ′1是向量AC和向量A’C’的夹角;假设θ2是向量BA和向量AC的夹角;θ′2是向量B’A’和向量A’C’的夹角,则三角形ABC与三角形A’B’C’的相似性可以用下式表示:
[0329]
[0330] 若(a1,b1)是向量AB,(a2,b2)是向量A’B’,(c1,d1)是向量AC是,(c2,d2)是向量A’C’, (e1,f1)是向量CB。三角形ABC与三角形A’B’C’的相似性改写为:
[0331]
[0332] 由上式三角形ABC与三角形A’B’C’的相似性得到C’位置的值(x’,y’):
[0333]
[0334] 由下式得到α,β1,β2:
[0335]
[0336] 由下式得到函数g(k,l)和函数h(k,l):
[0337]
[0338] 其中,(x′1,y′1)是点A’的坐标,(x′2,y′2)是点B’的坐标。
[0339] C’位置的值(x’,y’)还可以通过其它与此等价的过程或与此近似的过程计算得到。
[0340] 模块S102,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0341] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0342] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0343]
[0344] 实施例32
[0345] 本实例提供的一种运动矢量导出装置,如图5(b)所示:
[0346] 模块S201,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0347] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0348] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0349] 模块S202,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0350] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0351] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0352]
[0353] 实施例33
[0354] 本实例提供的一种运动矢量导出装置,如图6(a)所示:
[0355] 模块S301,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标;其输出包括:合理性检验结果;
[0356] 该模块的功能为:根据矢量AB和矢量A’B’的夹角大小不超出θ(θ小于等于90度)范围来判断合理性。
[0357] 具体地,检验线段AB和线段A’B’的平行程度。线段AB和线段A’B’的平行程度刻画了物体的旋转程度,而参考帧和当前帧之间的旋转超过一定程度后,块级的仿射模型不再适用。故而当线段AB 和线段A’B’的夹角小于给定阈值γ,判定为“合理”。
[0358] 模块S302,其输入包括:合理性检验结果,运动矢量MV1,运动矢量MV2,当前解码单元外的A 点位置坐标,当前解码单元外的B点位置坐标,当前解码单元代表性位置C点位置坐标;其输出包括: C’点位置坐标;
[0359] 该模块的功能为:若合理性检验结果为“合理”,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2 的起始点确定运动矢量MV2的终止点为B’。
[0360] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0361] 模块S303,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0362] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0363] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0364]
[0365] 实施例34
[0366] 本实例提供的一种运动矢量导出装置,如图6(a)所示:
[0367] 模块S301,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标;其输出包括:合理性检验结果;
[0368] 该模块的功能为:根据矢量AB的长度和矢量A’B’的长度的比值不超出[k,l](0≤k≤l≤ 10)范围来判断合理性。
[0369] 具体地,检测线段AB和线段A’B’的长度比例大小。因为线段AB和线段A’B’的长度比例大小刻画了物体的缩放程度,而参考帧和当前帧之间的缩放超过一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的长度比例大小在给定范围[1/δ,δ],δ≥1内,判定为“合理”。
[0370] 模块S302,其输入包括:合理性检验结果,运动矢量MV1,运动矢量MV2,当前解码单元外的A 点位置坐标,当前解码单元外的B点位置坐标,当前解码单元代表性位置C点位置坐标;其输出包括: C’点位置坐标;
[0371] 该模块的功能为:若合理性检验结果为“合理”,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2 的起始点确定运动矢量MV2的终止点为B’。
[0372] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0373] 模块S303,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0374] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0375] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0376]
[0377] 实施例35
[0378] 本实例提供的一种运动矢量导出装置,如图6(b)所示:
[0379] 模块S401,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标;其输出包括:合理性检验结果;
[0380] 该模块的功能为:根据矢量AB和矢量A’B’的夹角是不超出[0°,90°]范围来判断合理性。
[0381] 具体地,检验线段AB和线段A’B’的平行程度。线段AB和线段A’B’的平行程度刻画了物体的旋转程度,而参考帧和当前帧之间的旋转超过一定程度后,块级的仿射模型不再适用。故而当线段AB 和线段A’B’的夹角小于给定阈值γ,判定为“合理”。
[0382] 模块S402,其输入包括:合理性检验结果,运动矢量MV1,运动矢量MV2,当前解码单元外的A 点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0383] 该模块的功能为:若合理性检验结果为“合理”,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2 的起始点确定运动矢量MV2的终止点为B’。
[0384] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0385] 模块S403,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0386] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0387] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0388]
[0389] 实施例36
[0390] 本实例提供的一种运动矢量导出装置,如图6(b)所示:
[0391] 模块S401,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标;其输出包括:合理性检验结果;
[0392] 该模块的功能为:根据矢量AB的长度和矢量A’B’的长度的比值不超出[k,l](0≤k≤l≤ 10)范围来判断合理性。
[0393] 具体地,检测线段AB和线段A’B’的长度比例大小。因为线段AB和线段A’B’的长度比例大小刻画了物体的缩放程度,而参考帧和当前帧之间的缩放超过一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的长度比例大小在给定范围[1/δ,δ],δ≥1内,判定为“合理”。
[0394] 模块S402,其输入包括:合理性检验结果,运动矢量MV1,运动矢量MV2,当前解码单元外的A 点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0395] 该模块的功能为:若合理性检验结果为“合理”,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2 的起始点确定运动矢量MV2的终止点为B’。
[0396] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0397] 模块S403,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0398] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0399] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0400]
[0401] 实施例37
[0402] 本实例提供的一种运动矢量导出装置,如图7(a)所示:
[0403] 模块S501,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0404] 该模块的功能为:从左边已解码区域获取运动矢量MV1且从上边已解码区域获取运动矢量MV2或者从左边已解码区域获取运动矢量MV2且从上边已解码区域获取运动矢量MV1。
[0405] 具体地,如图1所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV1,从m个上边已解码区域帧间预测块中的获取运动矢量MV2。以此提高运动矢量MV1和运动矢量MV2对整个当前解码单元的影响程度。
[0406] 模块S502,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前解码单元代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0407] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0408] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0409] 模块S503,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0410] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0411] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0412]
[0413] 实施例38
[0414] 本实例提供的一种运动矢量导出装置,如图7(b)所示:
[0415] 模块S601,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0416] 该模块的功能为:从左边已解码区域获取运动矢量MV1且从上边已解码区域获取运动矢量MV2或者从左边已解码区域获取运动矢量MV2且从上边已解码区域获取运动矢量MV1。
[0417] 具体地,如图4所示,当前解码单元的属于左边已解码区域的周边已解码块有A1,A2,……,An,当前解码单元的属于上边已解码区域的周边已解码块有B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从n个左边已解码区域帧间预测块中的获取运动矢量MV1,从m个上边已解码区域帧间预测块中的获取运动矢量MV2。以此提高运动矢量MV1和运动矢量MV2对整个当前解码单元的影响程度。
[0418] 模块S602,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前子块的代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0419] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0420] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0421] 模块S603,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0422] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0423] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0424]
[0425] 实施例39
[0426] 本实例提供的一种运动矢量导出装置,如图8(a)所示:
[0427] 模块S701,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0428] 该模块的功能为:由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到运动矢量MV1和运动矢量MV2。
[0429] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。取MV1所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV1指向的参考帧上以SAD或SATD最小的准则,以MV1为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV1指向参考帧上以SAD 或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0430] 模块S702,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前解码单元代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0431] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0432] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0433] 模块S703,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0434] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0435] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0436]
[0437] 实施例40
[0438] 本实例提供的一种运动矢量导出装置,如图8(a)所示:
[0439] 模块S701,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0440] 该模块的功能为:由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到运动矢量MV1和运动矢量MV2。
[0441] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。取MV1所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV2指向的参考帧上以SAD或SATD最小的准则,以MV1的时域伸缩值为搜索起始点进行运动矢量MV1 的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV2指向参考帧上以SAD或SATD最小的准则,以MV2为搜索起始点进行运动矢量MV2的值的导出。
[0442] 模块S702,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前解码单元代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0443] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0444] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0445] 模块S703,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0446] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0447] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0448]
[0449] 实施例41
[0450] 本实例提供的一种运动矢量导出装置,如图8(a)所示:
[0451] 模块S701,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0452] 该模块的功能为:由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到运动矢量MV1和运动矢量MV2。
[0453] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。取MV1所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在当前帧的某一参考帧Ref上以SAD或SATD最小的准则,以MV1的时域伸缩值为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在参考帧Ref上以SAD或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0454] 模块S702,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前解码单元代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0455] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0456] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0457] 模块S703,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0458] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0459] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0460]
[0461] 实施例42
[0462] 本实例提供的一种运动矢量导出装置,如图8(b)所示:
[0463] 模块S801,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0464] 该模块的功能为:由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到运动矢量MV1和运动矢量MV2。
[0465] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中,n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。取MV1所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV1指向的参考帧上以SAD或SATD最小的准则,以MV1为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV1指向参考帧上以SAD 或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0466] 模块S802,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0467] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0468] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0469] 模块S803,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0470] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0471] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0472]
[0473] 实施例43
[0474] 本实例提供的一种运动矢量导出装置,如图8(b)所示:
[0475] 模块S801,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0476] 该模块的功能为:由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到运动矢量MV1和运动矢量MV2。
[0477] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。取MV1所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV2指向的参考帧上以SAD或SATD最小的准则,以MV1的时域伸缩值为搜索起始点进行运动矢量MV1 的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在MV2指向参考帧上以SAD或SATD最小的准则,以MV2为搜索起始点进行运动矢量MV2的值的导出。
[0478] 模块S802,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0479] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0480] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0481] 模块S803,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0482] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0483] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0484]
[0485] 实施例44
[0486] 本实例提供的一种运动矢量导出装置,如图8(b)所示:
[0487] 模块S801,其输入包括:当前解码单元周边已解码块的运动矢量;其输出包括:运动矢量MV1,运动矢量MV2;
[0488] 该模块的功能为:由当前解码单元所在的图像中当前解码单元外的周边已解码区域在已解码的参考图像上搜索得到运动矢量MV1和运动矢量MV2。
[0489] 具体地,如图1所示,当前解码单元的周边已解码块有A1,A2,……,An,B1,B2,……Bm,其中, n、m为大于0的自然数。其中有k个块是帧间预测块,0≤k≤n+m。从k个帧间预测块中的获取运动矢量MV1和运动矢量MV2。取MV1所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在当前帧的某一参考帧Ref上以SAD或SATD最小的准则,以MV1的时域伸缩值为搜索起始点进行运动矢量MV1的值的导出;取MV2所在的周边已解码块的中心S×W区域,称之为局部区域。利用该区域在参考帧Ref上以SAD或SATD最小的准则,以MV2的时域伸缩值为搜索起始点进行运动矢量MV2的值的导出。
[0490] 模块S802,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0491] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0492] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0493] 模块S803,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0494] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0495] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0496]
[0497] 实施例45
[0498] 本实例提供的一种运动矢量导出方法,具体包括:
[0499] 以当前解码单元划分四个子块为例(1,2,3,4为四个子块):
[0500]1 2
3 4
[0501] 步骤一,根据三角形ABC2与三角形A’B’C2’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,导出C2的对应点C2’的位置,其中A,B为当前解码单元外的点,以A 为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C2为第2个子块的代表性位置。
[0502] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0503] 根据三角形ABC3与三角形A’B’C3’的相似性,利用当前解码单元的周边已解码区域的运动矢量 MV1和运动矢量MV2,导出C3的对应点C3’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2 的终止点为B’,C3为第3个子块的代表性位置。
[0504] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0505] 步骤二:由位置C2和位置C2’计算得到矢量C2C2’,矢量C2C2’输出为第2个子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX2。
[0506] 具体的,根据C的坐标(x2,y2)和C’的坐标(x2’,y2’),由下式方法导出MVX2的横向分量 MVX2x和MVX2的纵向分量MVX2y:
[0507]
[0508] 由位置C3和位置C3’计算得到矢量C3C3’,矢量C3C3’输出为第3个子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX3。
[0509] 具体的,根据C的坐标(x3,y3)和C’的坐标(x3’,y3’),由下式方法导出MVX1的横向分量 MVX1x和MVX1的纵向分量MVX1y:
[0510]
[0511] 实施例46
[0512] 本实例提供的一种运动矢量导出方法,具体包括:
[0513] 以当前解码单元划分四个子块为例(1,2,3,4为四个子块):
[0514]1 2
3 4
[0515] 步骤一,根据三角形ABC1与三角形A’B’C1’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,导出C1的对应点C1’的位置,其中A,B为当前解码单元外的点,以A 为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C1为第1个子块的代表性位置。
[0516] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0517] 根据三角形ABC2与三角形A’B’C2’的相似性,利用当前解码单元的周边已解码区域的运动矢量 MV1和运动矢量MV2,导出C2的对应点C2’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2 的终止点为B’,C2为第2个子块的代表性位置。
[0518] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0519] 根据三角形ABC3与三角形A’B’C3’的相似性,利用当前解码单元的周边已解码区域的运动矢量 MV1和运动矢量MV2,导出C3的对应点C3’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2 的终止点为B’,C3为第3个子块的代表性位置。
[0520] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0521] 根据三角形ABC4与三角形A’B’C4’的相似性,利用当前解码单元的周边已解码区域的运动矢量 MV1和运动矢量MV2,导出C4的对应点C1’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2 的终止点为B’,C4为第4个子块的代表性位置。
[0522] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0523] 步骤二:由位置C1和位置C1’计算得到矢量C1C1’,矢量C1C1’输出为第1个子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX1。
[0524] 具体的,根据C1的坐标(x1,y1)和C1’的坐标(x1’,y1’),由下式方法导出MVX1的横向分量MVX1x和MVX1的纵向分量MVX1y:
[0525]
[0526] 由位置C2和位置C2’计算得到矢量C2C2’,矢量C2C2’输出为第2个子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX2。
[0527] 具体的,根据C的坐标(x2,y2)和C’的坐标(x2’,y2’),由下式方法导出MVX2的横向分量 MVX2x和MVX2的纵向分量MVX2y:
[0528]
[0529] 由位置C3和位置C3’计算得到矢量C3C3’,矢量C3C3’输出为第3个子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX3。
[0530] 具体的,根据C的坐标(x3,y3)和C’的坐标(x3’,y3’),由下式方法导出MVX1的横向分量 MVX1x和MVX1的纵向分量MVX1y:
[0531]
[0532] 由位置C4和位置C4’计算得到矢量C4C4’,矢量C4C4’输出为第4个子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX4。
[0533] 具体的,根据C4的坐标(x4,y4)和C4’的坐标(x4’,y4’),由下式方法导出MVX4的横向分量MVX4x和MVX4的纵向分量MVX4y:
[0534]
[0535] 实施例47
[0536] 本实例提供的一种运动矢量导出装置,如图5(b)所示:
[0537] 以当前解码单元划分四个子块为例(1,2,3,4为四个子块):
[0538] 以下模块循环两次,在同样的MV1和MV2的输入,第1个子块和第4个子块的不同C点位置的输入下,得到第1个子块和第4个子块的各自运动矢量。
[0539] 1 23 4
[0540] 模块S201,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0541] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0542] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0543] 模块S202,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0544] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0545] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0546]
[0547] 实施例48
[0548] 本实例提供的一种运动矢量导出装置,如图5(b)所示:
[0549] 以当前解码单元划分四个子块为例(1,2,3,4为四个子块):
[0550] 以下模块循环四次次,在同样的MV1和MV2的输入,所有子块的不同C点位置的输入下,得到所有子块的各自运动矢量。
[0551] 1 23 4
[0552] 模块S201,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,当前子块代表性位置C点位置坐标;其输出包括:C’点位置坐标;
[0553] 该模块的功能为:根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,以A为运动矢量 MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’。
[0554] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0555] 模块S202,其输入包括:C’点位置坐标;其输出包括,运动矢量MVX;
[0556] 该模块的功能为:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0557] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0558]
[0559] 实施例49
[0560] 本实例提供的一种运动矢量导出方法,具体包括:
[0561] 步骤一,根据矢量AB和矢量A’B’的夹角大小不超出θ(θ小于等于90度)范围来判断是否进行步骤二。
[0562] 具体地,检验线段AB和线段A’B’的平行程度。线段AB和线段A’B’的平行程度刻画了物体的旋转程度,而参考帧和当前帧之间的旋转超过一定程度后,块级的仿射模型不再适用。故而当线段AB 和线段A’B’的夹角小于给定阈值γ,判定为检验合理。其中γ的值随着当前解码单元的尺寸而改变,当前解码单元的尺寸越大,γ越小。
[0563] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0564] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0565] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0566] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0567]
[0568] 实施例50
[0569] 本实例提供的一种运动矢量导出方法,具体包括:
[0570] 步骤一,根据矢量AB的长度和矢量A’B’的长度的比值不超出[k,l](0≤k≤l≤10)范围来判断是否进行步骤二。
[0571] 具体地,检测线段AB和线段A’B’的长度比例大小。因为线段AB和线段A’B’的长度比例大小刻画了物体的缩放程度,而参考帧和当前帧之间的缩放超过一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的长度比例大小在给定范围[1/δ,δ],δ≥1内,判定为检验合理,进行步骤二。其中δ的值随着当前解码单元的尺寸而改变,当前解码单元的尺寸越大,γ越小。
[0572] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前解码单元的代表性位置。
[0573] 具体地,一种可用的导出方法如实施例1的步骤一所示。
[0574] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0575] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0576]
[0577] 实施例51
[0578] 本实例提供的一种运动矢量导出方法,具体包括:
[0579] 步骤一,仅需要当前子块码流之外的码流,根据所述的运动矢量MV1和运动矢量MV2和A点位置和B点位置的物理意义合理性来判断是否进行步骤二。
[0580] 具体地,检验线段AB和线段A’B’的平行程度。线段AB和线段A’B’的平行程度刻画了物体的旋转程度,而参考帧和当前帧之间的旋转一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的夹角小于给定阈值γ,判定为检验合理。其中γ的值随着当前子块的尺寸而改变,当前子块的尺寸越大,γ越小。
[0581] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0582] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0583] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0584] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0585]
[0586] 实施例52
[0587] 本实例提供的一种运动矢量导出方法,具体包括:
[0588] 步骤一,仅需要当前子块码流之外的码流,根据所述的运动矢量MV1和运动矢量MV2和A点位置和B点位置的物理意义合理性来判断是否进行步骤二。
[0589] 具体地,检测线段AB和线段A’B’的长度比例大小。因为线段AB和线段A’B’的长度比例大小刻画了物体的缩放程度,而参考帧和当前帧之间的缩放超过一定程度后,块级的仿射模型不再适用。故而当线段AB和线段A’B’的长度比例大小在给定范围[1/δ,δ],δ≥1内,判定为检验合理,进行步骤二。其中δ的值随着当前子块的尺寸而改变,当前子块的尺寸越大,γ越小。
[0590] 步骤二,根据三角形ABC与三角形A’B’C’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C的对应点C’的位置,其中A,B为当前解码单元外的点,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2的终止点为B’,C为当前子块的代表性位置。
[0591] 具体地,一种可用的导出方法如实施例16的步骤一所示。
[0592] 步骤三:由位置C和位置C’计算得到矢量CC’,矢量CC’输出为当前子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0593] 具体的,根据C的坐标(x,y)和C’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0594]
[0595] 实施例52
[0596] 本实例提供的一种运动矢量导出装置,如图9所示:
[0597] 以当前解码单元划分四个子块为例(1,2,3,4为四个子块):
[0598] 1 23 4
[0599] 模块S901,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,第1子块代表性位置C1点位置坐标;其输出包括:C1’点位置坐标;
[0600] 该模块的功能为:根据三角形ABC1与三角形A’B’C1’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C1的对应点C1’的位置,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2 的终止点为B’。
[0601] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0602] 模块S902,其输入包括:C1’点位置坐标;其输出包括,运动矢量MVX;
[0603] 该模块的功能为:由位置C1和位置C1’计算得到矢量C1C1’,矢量C1C1’输出为第1子块或当前解码单元的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0604] 具体的,根据C1的坐标(x,y)和C1’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0605]
[0606] 模块S903,其输入包括:运动矢量MV1,运动矢量MV2,当前解码单元外的A点位置坐标,当前解码单元外的B点位置坐标,第2子块代表性位置C2点位置坐标;其输出包括:C2’点位置坐标;
[0607] 该模块的功能为:根据三角形ABC与三角形A’B’C2’的相似性,利用当前解码单元的周边已解码区域的运动矢量MV1和运动矢量MV2,MV1不等于MV2,导出C2的对应点C2’的位置,以A为运动矢量MV1的起始点确定运动矢量MV1的终止点为A’,以B为运动矢量MV2的起始点确定运动矢量MV2 的终止点为B’。
[0608] 具体地,一种可用的导出方法如实施例31的模块S101所示。
[0609] 模块S904,其输入包括:C2’点位置坐标;其输出包括,运动矢量MVX;
[0610] 该模块的功能为:由位置C2和位置C2’计算得到矢量C2C2’,矢量C2C2’输出为第2子块的运动矢量预测值或运动矢量或运动矢量预测值候选或运动矢量候选MVX。
[0611] 具体的,根据C2的坐标(x,y)和C2’的坐标(x’,y’),由下式方法导出MVX的横向分量MVXx 和MVX的纵向分量MVXy:
[0612]
[0613] 实施例53
[0614] 本实例提供的一种运动矢量导出方法,具体包括:
[0615] 对于当前解码单元或当前子块为双向帧间预测块的情况,任一方向的运动矢量导出,都可以采用之前所有实施例的方式。