一种图像块的运动信息的预测方法及装置与流程

文档序号:20040097发布日期:2020-02-28 11:48阅读:138来源:国知局
一种图像块的运动信息的预测方法及装置与流程

本申请涉及视频图像技术领域,尤其涉及一种图像块的运动信息的预测方法及装置。



背景技术:

数字视频能力可并入到大范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(personaldigitalassistant,pda)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频会议装置、视频流装置等等。数字视频装置实施视频压缩技术,例如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分高级视频编解码(advancedvideocoding,avc)、itu-th.265高效率视频编解码(highefficiencyvideocoding,hevc)标准定义的标准和所述标准的扩展部分中所描述的那些视频压缩技术,从而更高效地发射及接收数字视频信息。视频装置可通过实施这些视频编解码技术来更高效地发射、接收、编码、解码和/或存储数字视频信息。

视频压缩技术执行空间(图像内)预测和/或时间(图像间)预测,以减少或移除视频序列中固有的冗余。对于基于块的视频解码,可将视频块分割成视频块,视频块还可被称作树块、编码单元(codingunit,cu)和/或解码节点。使用关于同一图像中的相邻块中的参考样本的空间预测来编码图像的帧内解码(i)条带中的视频块。图像的帧间解码(p或b)条带中的视频块可使用关于同一图像中的相邻块中的参考样本的空间预测或关于其它参考图像中的参考样本的时间预测。图像可被称作帧,且参考图像可被称作参考帧。



技术实现要素:

本申请实施例提供了一种图像块的运动信息的预测方法及装置,选择合适的候选运动信息作为待处理图像块的运动信息预测值,提高了运动信息预测的有效性,提高了编解码效率。

应理解,一般的,运动信息包括运动矢量和运动矢量指向的参考帧的索引信息等。在本申请实施例中的一种可行的实施方式中,对运动信息的预测指对运动矢量的预测。

在本申请实施例的第一方面,提供了一种图像块的运动信息的预测方法,包括:确定与待处理图像块具有预设位置关系的至少一个目标像素点,所述目标像素点与所述待处理图像块所在的编码树单元的上边沿所在直线和/或左边沿所在直线相邻接且所述目标像素点位于所述编码树单元的外部;将所述至少一个目标像素点对应的运动信息加入所述待处理图像块的候选运动信息的集合;从所述候选运动信息的集合中确定目标运动信息,所述目标运动信息用于预测所述待处理图像块的运动信息。

相比于现有技术,申请方案从编码树单元ctu的上侧相邻块和/或左侧相邻块中选择运动信息作为候选预测运动信息,访问的空域运动信息较少,复杂度较低。

其中,记编码树单元左上角的坐标为pm=(xm,ym),编码树单元的宽为w,高为h,其中xm为水平坐标,ym为竖直坐标,则编码树单元的上边沿是指包含坐标pg=(xg,yg)的区域,其中xm≤xg≤xm+w-1,yg=ym;编码树单元的左边沿是指包含坐标ph=(xh,yh)的区域,其中ym≤yh≤ym+h-1,xg=xm。

目标像素点与所述待处理图像块所在的编码树单元的上边沿所在直线相邻接是指目标像素点的竖直坐标与待处理图像块所在的编码树单元的上边沿的竖直坐标之差小于或等于预设的第一阈值;目标像素点与所述待处理图像块所在的编码树单元的左边沿所在直线相邻接是指目标像素点的水平坐标与待处理图像块所在的编码树单元的左边沿的水平坐标之差小于或等于预设的第二阈值。

所述至少一个目标像素点对应的运动信息可以包括所述至少一个目标像素点中每个目标像素点对应的运动信息。

在第一方面的第一种可行的实施方式中,所述目标像素点包括第一像素点,其中,所述第一像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第一像素点位于以第一垂足和第二垂足为端点的线段上,所述第一垂足为所述待处理图像块的左上角的像素点在所述第一像素点所在直线上的垂直投影点,所述第二垂足为所述待处理图像块的左下角的像素点在所述第一像素点所在直线上的垂直投影点。

当所述至少一个目标像素点为多个目标像素点时,这多个目标像素点中可以包括多个所述第一像素点。

在第一方面的第二种可行的实施方式中,所述目标像素点还包括第二像素点,其中,所述第二像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第二像素点位于以第三垂足和第四垂足为端点的线段上,所述第三垂足为所述待处理图像块的左上角的像素点在所述第二像素点所在直线上的垂直投影点,所述第四垂足为所述待处理图像块的右上角的像素点在所述第二像素点所在直线上的垂直投影点。

当所述至少一个目标像素点为多个目标像素点时,这多个目标像素点中可以包括一个或多个所述第二像素点。

可选地,该多个目标像素点中可以包括一个或多个第一像素点,以及包括一个或多个第二像素点。

在第一方面的第三种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度。

当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,由于待处理图像块与第二像素点的距离小于待处理图像块与第一像素点的距离,相关性更高,选中的概率更大,因此,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度,可提高编码效率。基于类似的原理,当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,也可以提高编码效率。

在第一方面的第四种可行的实施方式中,所述目标像素点还包括第三像素点,其中,当所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行时,所述第三像素点位于以所述第一垂足和参考交点为端点的线段上,所述参考交点为所述第一像素点所在直线和所述第二像素点所在直线的交点;当所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行时,所述第三像素点位于以所述第三垂足和所述参考交点为端点的线段上。

当所述至少一个目标像素点为多个目标像素点时,这多个目标像素点中可以包括一个或多个所述第三像素点。

可选地,这多个目标像素点中可以包括一个或多个第一像素点,以及包括一个或多个第三像素点;或者,这多个目标像素点中可以包括多个第二像素点和多个第三像素点,或者,这多个目标像素点中可以包括一个或多个第一像素点,以及包括一个或多个第二像素点,以及一个或多个第三像素点。

在第一方面的第五种可行的实施方式中,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度。

该实施方式中对第一像素点、第二像素点和第三像素点对应的运动信息的码字长度的限制,可以提高编码效率。

在第一方面的第六种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行。

当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行,可以使得第三像素点与待处理图像块中的像素点的距离更小。将这样的第三像素点作为目标像素点,可以使得第三像素点对应的运动信息与所述待处理图像块中的像素点对应的运动信息之间的相关性更高。

基于类似的原理,当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行,可以使得第三像素点对应的运动信息与所述待处理图像块中的像素点对应的运动信息之间的相关性更高。

在第一方面的第七种可行的实施方式中,所述目标像素点还包括第四像素点,其中,所述第四像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第四像素点位于以所述第二垂足为端点且以从所述第一垂足指向所述第二垂足为方向的射线上。

在第一方面的第八种可行的实施方式中,所述目标像素点还包括第五像素点,其中,所述第五像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第五像素点位于以所述第四垂足为端点且以从所述第三垂足指向所述第四垂足为方向的射线上。

在第一方面的第九种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度。

将所述编码树单元划分成左右两个区域时,左边的区域称为为左半部分,或称为左上半部分,右边的区域称为右半部分,或称为右下半部分。其中,可选地,左上半部分的宽与右上半部分的宽尽量趋向于等于所述编码树单元的宽的一半。在所述编码树单元的宽可以均分成两份的情况下,左上半部分的宽与右上半部分的宽等于所述编码树单元的宽的一半。

当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,由于待处理图像块与第五像素点的距离小于待处理图像块与第四像素点的距离,相关性更高,选中的概率更大,因此,用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度,可提高编码效率。基于类似的原理,当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,也可以提高编码效率。

在第一方面的第十种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的左上四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右上四分之一部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度。

将所述编码树单元划分成“田”字格样式的四个区域,左上角的区域称为左上四分之一部分,左下角的区域称为左下四分之一部分,右上角的区域称为右上四分之一部分,右下角的区域称为右下四分之一部分。

其中,可选地,这四个区域中每个区域的宽可以尽量趋向于等于所述编码树单元的宽的一半。在所述编码树单元的宽可以均分成两份的情况下,这四个区域中每个区域的宽等于所述编码树单元的宽的一半。

其中,可选地,这四个区域中每个区域的高可以尽量趋向于等于所述编码树单元的高的一半。在所述编码树单元的高可以均分成两份的情况下,这四个区域中每个区域的高等于所述编码树单元的高的一半。

当所述待处理图像块的左上角的像素点位于所述编码树单元的左上四分之一部分时,由于待处理图像块与第一像素点的距离小于待处理图像块与第二像素点的距离,相关性更高,选中的概率更大,因此,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,可提高编码效率。

基于类似的原理,该实施方式中,对用于在所述候选运行信息的集合中表示第二像素点、第三像素点、第四像素点和第五像素点分别对应的运动信息的码字长度的限制,均可以提高编码效率。

基于类似的原理,该实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的其他部分时,对用于在所述候选运行信息的集合中表示第一像素点、第二像素点、第三像素点、第四像素点和第五像素点分别对应的运动信息的码字长度的限制,均可以提高编码效率。

在第一方面的第十一种可行的实施方式中,以水平方向向右为直角坐标系的横轴正方向,以竖直方向向下为所述直角坐标系的纵轴正方向,以(x0,y0)为所述待处理图像块的左上角像素点的坐标,以(x1,y1)为所述编码树单元的左上角像素点的坐标,所述第一像素点的坐标包括:(x1-1,y0+h0-1),或者(x1-1,y0+h0/2),或者(x1-1,y0),其中,h0为所述待处理图像块的高。

在第一方面的第十二种可行的实施方式中,所述第二像素点的坐标包括:(x0+w0-1,y1-1),或者(x0+w0/2,y1-1),或者(x0,y1-1),其中,w0为所述待处理图像块的宽。

在第一方面的第十三种可行的实施方式中,所述第三像素点的坐标包括:(x0-y0+y1-1,y1-1)或者(x1-1,y0-x0+x1-1)。

在第一方面的第十四种可行的实施方式中,当(x0-x1)>=(y0-y1)时,所述第三像素点的坐标包括(x0-y0+y1-1,y1-1);当(x0-x1)<(y0-y1)时,所述第三像素点的坐标包括(x1-1,y0-x0+x1-1)。

在第一方面的第十五种可行的实施方式中,所述第四像素点的坐标包括:(x1-1,y0+h0+x0-x1),或者(x1-1,y0+h0+(x0-x1)/2),或者(x1-1,min(y0+h0+x0-x1,y1+h1-1)),其中,h1为所述编码树单元的高。

在第一方面的第十六种可行的实施方式中,所述第五像素点的坐标包括:(x0+w0+y0-y1,y1-1),或者(x0+w0+(y0-y1)/2,y1-1),或者(min(x0+w0+y0-y1,x1+w1*3/2),y1-1),或者(min(x0+w0+y0-y1,x1+w1-1),y1-1),其中,w1为所述编码树单元的宽。

在第一方面的第十七种可行的实施方式中,在所述将所述至少一个目标像素点对应的运动信息加入所述待处理图像块的候选运动信息的集合之前,还包括:将所述待处理图像块的预设位置的空域相邻块和/或时域相关位置块的运动信息加入所述待处理图像块的候选运动信息的集合。

在第一方面的第十八种可行的实施方式中,所述方法用于解码所述待处理图像块,所述从所述候选运动信息的集合中确定目标运动信息,包括:解析码流以获得标识信息;根据所述标识信息确定所述目标运动信息。

在第一方面的第十九种可行的实施方式中,所述方法用于编码所述待处理图像块,所述从所述候选运动信息的集合中确定目标运动信息,包括:从所述候选运动信息的集合中选择编码代价最小的运动信息作为目标运动信息。

在第一方面的第二十种可行的实施方式中,在所述从所述候选运动信息的集合中选择编码代价最小的运动信息作为目标运动信息之后,还包括:编码所述目标运动信息的标识信息。

在本申请实施例的第二方面,提供了一种图像块的运动信息的预测装置,包括:获取模块,用于确定与待处理图像块具有预设位置关系的至少一个目标像素点,所述目标像素点与所述待处理图像块所在的编码树单元的上边沿所在直线或左边沿所在直线相邻接且所述目标像素点位于所述编码树单元的外部;列表模块,用于将所述至少一个目标像素点对应的运动信息加入所述待处理图像块的候选运动信息的集合;索引模块,用于从所述候选运动信息的集合中确定目标运动信息,所述目标运动信息用于预测所述待处理图像块的运动信息。

在第二方面的第一种可行的实施方式中,所述目标像素点包括第一像素点,其中,所述第一像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第一像素点位于以第一垂足和第二垂足为端点的线段上,所述第一垂足为所述待处理图像块的左上角的像素点在所述第一像素点所在直线上的垂直投影点,所述第二垂足为所述待处理图像块的左下角的像素点在所述第一像素点所在直线上的垂直投影点。

在第二方面的第二种可行的实施方式中,所述目标像素点还包括第二像素点,其中,所述第二像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第二像素点位于以第三垂足和第四垂足为端点的线段上,所述第三垂足为所述待处理图像块的左上角的像素点在所述第二像素点所在直线上的垂直投影点,所述第四垂足为所述待处理图像块的右上角的像素点在所述第二像素点所在直线上的垂直投影点。

在第二方面的第三种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度。

在第二方面的第四种可行的实施方式中,所述目标像素点还包括第三像素点,其中,当所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行时,所述第三像素点位于以所述第一垂足和参考交点为端点的线段上,所述参考交点为所述第一像素点所在直线和所述第二像素点所在直线的交点;当所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行时,所述第三像素点位于以所述第三垂足和所述参考交点为端点的线段上。

在第二方面的第五种可行的实施方式中,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度。

在第二方面的第六种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行。

在第二方面的第七种可行的实施方式中,所述目标像素点还包括第四像素点,其中,所述第四像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第四像素点位于以所述第二垂足为端点且以从所述第一垂足指向所述第二垂足为方向的射线上。

在第二方面的第八种可行的实施方式中,所述目标像素点还包括第五像素点,其中,所述第五像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第五像素点位于以所述第四垂足为端点且以从所述第三垂足指向所述第四垂足为方向的射线上。

在第二方面的第九种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度。

在第二方面的第十种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的左上四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右上四分之一部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度。

在第二方面的第十一种可行的实施方式中,以水平方向向右为直角坐标系的横轴正方向,以竖直方向向下为所述直角坐标系的纵轴正方向,以(x0,y0)为所述待处理图像块的左上角像素点的坐标,以(x1,y1)为所述编码树单元的左上角像素点的坐标,所述第一像素点的坐标包括:(x1-1,y0+h0-1),或者(x1-1,y0+h0/2),或者(x1-1,y0),其中,h0为所述待处理图像块的高。

在第二方面的第十二种可行的实施方式中,所述第二像素点的坐标包括:(x0+w0-1,y1-1),或者(x0+w0/2,y1-1),或者(x0,y1-1),其中,w0为所述待处理图像块的宽。

在第二方面的第十三种可行的实施方式中,所述第三像素点的坐标包括:(x0-y0+y1-1,y1-1)或者(x1-1,y0-x0+x1-1)。

在第二方面的第十四种可行的实施方式中,当(x0-x1)>=(y0-y1)时,所述第三像素点的坐标包括(x0-y0+y1-1,y1-1);当(x0-x1)<(y0-y1)时,所述第三像素点的坐标包括(x1-1,y0-x0+x1-1)。

在第二方面的第十五种可行的实施方式中,所述第四像素点的坐标包括:(x1-1,y0+h0+x0-x1),或者(x1-1,y0+h0+(x0-x1)/2),或者(x1-1,min(y0+h0+x0-x1,y1+h1-1)),其中,h1为所述编码树单元的高。

在第二方面的第十六种可行的实施方式中,所述第五像素点的坐标包括:(x0+w0+y0-y1,y1-1),或者(x0+w0+(y0-y1)/2,y1-1),或者(min(x0+w0+y0-y1,x1+w1*3/2),y1-1),或者(min(x0+w0+y0-y1,x1+w1-1),y1-1),其中,w1为所述编码树单元的宽。

在第二方面的第十七种可行的实施方式中,所述列表模块还用于:将所述待处理图像块的预设位置的空域相邻块和/或时域相关位置块的运动信息加入所述待处理图像块的候选运动信息的集合。

在第二方面的第十八种可行的实施方式中,所述装置用于解码所述待处理图像块,所述索引模块具体用于:解析码流以获得标识信息;根据所述标识信息确定所述目标运动信息。

在第二方面的第十九种可行的实施方式中,,所述装置用于编码所述待处理图像块,所述索引模块具体用于:从所述候选运动信息的集合中选择编码代价最小的运动信息作为目标运动信息。

在第二方面的第二十种可行的实施方式中,所述索引模块还用于:编码所述目标运动信息的标识信息。

在本申请实施例的第三方面,提供了一种运动信息的预测设备,包括:处理器和耦合于所述处理器的存储器;所述处理器用于执行上述第一方面所述的方法。

在本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法。

在本申请实施例的第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法。

应理解,本申请的第二至五方面与本申请的第一方面的技术方案一致,各方面及对应的可实施的设计方式所取得的有益效果相似,不再赘述。

附图说明

图1为本申请实施例中视频编码及解码系统的一种示意性框图;

图2为本申请实施例中视频编码器的一种示意性框图;

图3为本申请实施例中视频解码器的一种示意性框图;

图4为本申请实施例中帧间预测模块的一种示意性框图;

图5为本申请实施例中合并预测模式的一种示例性流程图;

图6为本申请实施例中高级运动矢量预测模式的一种示例性流程图;

图7为本申请实施例中由视频解码器执行的运动补偿的一种示例性流程图;

图8为本申请实施例中编码单元及与其关联的相邻位置图像块的一种示例性示意图;

图9为本申请实施例中构建候选预测运动矢量列表的一种示例性流程图;

图10为本申请实施例中将经过组合的候选运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图;

图11为本申请实施例中将经过缩放的候选运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图;

图12为本申请实施例中将零运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图;

图13为本申请实施例中编码单元及与其关联的相邻位置图像块的另一种示例性示意图;

图14为本申请实施例中空间融合候选者的一种示例性示意图;

图15为本申请实施例中非相邻空间融合候选者的一种示例性示意图;

图16为本申请实施例中非相邻空间融合候选者的另一种示例性示意图;

图17为本申请实施例中非相邻空间融合候选者的又一种示例性示意图;

图18为本申请实施例中非相邻空间融合候选者的再一种示例性示意图;

图19为本申请实施例中运动信息预测方法的一种示例性流程图;

图20为本申请实施例中运动信息预测装置的一种示例性结构框图;

图21为本申请实施例中的运动信息预测设备的一种示意性结构框图;

图22为本申请实施例中的目标像素点的位置的一种示意图;

图23为本申请实施例中的目标像素点的位置的另一种示意图;

图24为本申请实施例中的编码树单元的一种区域划分示意图;

图25为本申请实施例中的目标像素点的位置的又一种示意图;

图26为本申请实施例中的编码树单元的另一种区域划分示意图。

具体实施方式

首先介绍一下本申请实施例中用到的术语。

编码树单元(codingtreeunit,ctu):一幅图像由多个ctu构成,一个ctu通常对应于一个方形图像区域,包含这个图像区域中的亮度像素和色度像素(或者也可以只包含亮度像素,或者也可以只包含色度像素);ctu中还包含语法元素,这些语法元素指示如何将ctu划分成至少一个编码单元(codingunit,cu),以及解码每个编码单元得到重建图像的方法。

cu:对应于图像中一个a×b的矩形区域,包含a×b亮度像素或/和它对应的色度像素,a为矩形的宽,b为矩形的高,a和b可以相同也可以不同,a和b的取值通常为2的整数次幂,例如128、64、32、16、8、4。一个编码单元包含预测图像和残差图像,预测图像与残差图像相加得到编码单元的重建图像。预测图像通过帧内预测或帧间预测生成,残差图像通过对变换系数进行反量化和反变换处理生成。

视频解码(videodecoding):将视频码流按照特定的语法规则和处理方法恢复成重建图像的处理过程。

视频编码(videoencoding):将图像序列压缩成码流的处理过程;

视频编码(videocoding):videoencoding和videodecoding的统称,中文译名和videoencoding相同。

vtm:jvet组织开发的新式编解码器参考软件。

融合候选者(mergecandidateormergingcandidate):一种运动信息数据结构体,包含帧间预测方向、参考帧、运动矢量等多种信息。当前块可根据融合索引(mergeindex)从融合候选者列表(mergecandidatelist)中选择对应的融合候选者,将融合候选者的运动信息作为当前块的运动信息,或者对融合候选者的运动信息经过缩放后作为当前块的运动信息。

再介绍一下本申请实施例的相关技术:

h.265/hevc、h.266/vvc等视频编码标准把一帧图像分割成互不重叠的ctu。ctu的大小例如设置为64×64或128×128。64×64的ctu包含64列像素,每列包含64个像素,每个像素包含亮度分量或/和色度分量。一个ctu被划分为一个或多个编码单元cu。

一个cu包含编码信息,包括预测模式、变换系数等信息。按照这些编码信息对cu进行相应的预测、反量化、反变换等解码处理,产生这个cu对应的重建图像。一个cu对应有预测图像和残差图像,预测图像与残差图像相加得到重建图像。预测图像通过帧内预测或帧间预测生成,残差图像通过对变换系数进行反量化和反变换处理生成。cu的预测图像由一个或多个预测块(predictionblock,pb)构成,cu的残差图像由一个或多个变换块(transformblock,tb)构成。

正在进行编码/解码处理的图像块称为当前块(currentblock,cb),例如正在对一个图像块进行预测处理时,当前块为预测块;正在对一个图像块进行残差处理时,当前块为变换块。当前块所在的图像称为当前帧。当前帧中,位于当前块的左侧或上侧的图像块可能处于当前帧内部并且已经完成了编码/解码处理,得到了重建图像,它们称为重建块;重建块的编码模式、重建像素等信息是可以获得的(available)。在当前帧进行编码/解码之前已经完成编码/解码处理的帧称为重建帧。当前帧为单向预测帧(p帧)或双向预测帧(b帧)时,它分别具有一个或两个参考帧列表,两个列表分别称为l0和l1,每个列表中包含至少一个重建帧,称为当前帧的参考帧。参考帧为当前帧的帧间预测提供参考像素。

帧间预测是基于运动补偿(motioncompensation)的预测技术,主要处理为确定当前块的运动信息,根据运动信息从当前块的参考帧中获取参考图像块,产生当前块的预测图像。运动信息包含帧间预测方向、参考帧、运动矢量等,其中帧间预测方向指示当前块使用前向预测、后向预测或双向预测其中的何种预测方向,运动矢量指示了参考帧中用于预测当前块的参考图像块相对于当前块的位移矢量,因而一个运动矢量对应有一个参考帧。一个图像块的帧间预测可以只通过一个运动矢量,使用一个参考帧中的像素来生成预测图像,称为单向预测;也可以通过两个运动矢量,使用两个参考帧中的像素来组合生成预测图像,称为双向预测。也就是说,一个图像块通常可包含一个或两个运动矢量。对于一些多假设帧间预测(multi-hypothesisinterprediction)技术,一个图像块可能包含多于两个运动矢量。

帧间预测通过参考帧索引(referenceindex,ref_idx)指明参考帧(referenceframe),通过运动矢量(motionvector,mv)指示当前块在参考帧中的参考块(referenceblock)相对当前帧中当前块的位置偏移。一个mv是二维矢量,包含水平方向位移分量和竖直方向位移分量;一个mv对应于两个帧,每一帧具有一个图像顺序号(pictureordercount,poc),用于表示图像在显示顺序上的编号,所以一个mv也对应于一个poc差值。poc差值与时间间隔呈线性关系。运动矢量的缩放通常采用基于poc差值的缩放方式,将一对图像之间的运动矢量转换成另一对图像之间的运动矢量。

常用的帧间预测模式有以下两种。

1)高级运动矢量预测(advancedmotionvectorprediction,amvp)模式:在码流中标识当前块使用的帧间预测方向(前向、后向或双向)、参考帧索引(referenceindex)、运动矢量预测值索引(motionvectorpredictorindex,mvpindex)、运动矢量残差值(motionvectordifference,mvd);由帧间预测方向确定使用的参考帧队列,由参考帧索引确定当前块mv指向的参考帧,由运动矢量预测值索引指示mvp列表中的一个mvp作为当前块mv的预测值,一个mvp与一个mvd相加得到一个mv。

2)合并/跳跃(merge/skip)模式:码流中标识融合索引(mergeindex),根据融合索引(mergeindex)从融合候选者列表(mergecandidatelist)中选择一个融合候选者(mergecandidate),当前块的运动矢量信息(包括预测方向、参考帧、运动矢量)由这个融合候选者(mergecandidate)确定。merge模式和skip模式的主要区别在于,merge模式隐含当前块有残差信息,而skip模式隐含当前块没有残差信息(或者说残差为0);这两种模式导出运动信息的方式是一样的。

hevc标准中,融合候选者可以是当前块相邻的图像块的运动信息,称为空间融合候选者(spatialmergecandidate);也可以是当前块在另一已编码图像中对应位置图像块的运动信息,称为时间融合候选者(temporalmergecandidate)。此外,融合候选者还可以是由一个融合候选者的前向运动信息和另一个融合候选者的后向运动信息组合而成的双向预测融合候选者(bi-predictivemergecandidate),或者运动矢量强制为0矢量的零运动矢量融合候选者(zeromotionvectormergecandidate)。

帧内预测:根据当前块的空间相邻像素,产生当前块的预测图像。一种帧内预测模式对应于一种生成预测图像的方法。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

图1为本申请实施例中所描述的一种实例的视频译码系统1的框图。如本文所使用,术语“视频译码器”一般是指视频编码器和视频解码器两者。在本申请中,术语“视频译码”或“译码”可一般地指代视频编码或视频解码。视频译码系统1的视频编码器100和视频解码器200用于根据本申请提出的多种新的帧间预测模式中的任一种所描述的各种方法实例来预测当前经译码图像块或其子块的运动信息,例如运动矢量,使得预测出的运动矢量最大程度上接近使用运动估算方法得到的运动矢量,从而编码时无需传送运动矢量差值,从而进一步的改善编解码性能。

如图1中所示,视频译码系统1包含源装置10和目的地装置20。源装置10产生经编码视频数据。因此,源装置10可被称为视频编码装置。目的地装置20可对由源装置10所产生的经编码的视频数据进行解码。因此,目的地装置20可被称为视频解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于ram、rom、eeprom、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。

源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。

目的地装置20可经由链路30从源装置10接收经编码视频数据。链路30可包括能够将经编码视频数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码视频数据直接发射到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(rf)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。

在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、dvd、cd-rom、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。

在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码视频的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、ftp服务器、网络附接式存储(nas)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置40的传输可为流式传输、下载传输或两者的组合。

本申请的运动矢量预测技术可应用于视频编解码以支持多种多媒体应用,例如空中电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储于数据存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码系统1可用于支持单向或双向视频传输以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。

图1中所说明的视频译码系统1仅为实例,并且本申请的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。

在图1的实例中,源装置10包含视频源120、视频编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发射器。视频源120可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。

视频编码器100可对来自视频源120的视频数据进行编码。在一些实例中,源装置10经由输出接口140将经编码视频数据直接发射到目的地装置20。在其它实例中,经编码视频数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。

在图1的实例中,目的地装置20包含输入接口240、视频解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码视频数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码视频数据。显示装置220可包括多种显示装置,例如,液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或其它类型的显示装置。

尽管图1中未图示,但在一些方面,视频编码器100和视频解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么mux-demux单元可符合ituh.223多路复用器协议,或例如用户数据报协议(udp)等其它协议。

视频编码器100和视频解码器200各自可实施为例如以下各项的多种电路中的任一者:一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。视频编码器100和视频解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。

本申请可大体上将视频编码器100称为将某些信息“发信号通知”或“发射”到例如视频解码器200的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码码流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。

jct-vc开发了h.265(hevc)标准。hevc标准化基于称作hevc测试模型(hm)的视频解码装置的演进模型。h.265的最新标准文档可从http://www.itu.int/rec/t-rec-h.265获得,最新版本的标准文档为h.265(12/16),该标准文档以全文引用的方式并入本文中。hm假设视频解码装置相对于itu-th.264/avc的现有算法具有若干额外能力。例如,h.264提供9种帧内预测编码模式,而hm可提供多达35种帧内预测编码模式。

jvet致力于开发h.266标准。h.266标准化的过程基于称作h.266测试模型的视频解码装置的演进模型。h.266的算法描述可从http://phenix.int-evry.fr/jvet获得,其中最新的算法描述包含于jvet-f1001-v2中,该算法描述文档以全文引用的方式并入本文中。同时,可从https://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/获得jem测试模型的参考软件,同样以全文引用的方式并入本文中。

一般来说,hm的工作模型描述可将视频帧或图像划分成包含亮度及色度样本两者的树块或最大编码单元(largestcodingunit,lcu)的序列,lcu也被称为ctu。树块具有与h.264标准的宏块类似的目的。条带包含按解码次序的数个连续树块。可将视频帧或图像分割成一个或多个条带。可根据四叉树将每一树块分裂成编码单元。例如,可将作为四叉树的根节点的树块分裂成四个子节点,且每一子节点可又为母节点且被分裂成另外四个子节点。作为四叉树的叶节点的最终不可分裂的子节点包括解码节点,例如,经解码视频块。与经解码码流相关联的语法数据可定义树块可分裂的最大次数,且也可定义解码节点的最小大小。

编码单元包含解码节点及预测块(predictionunit,pu)以及与解码节点相关联的变换单元(transformunit,tu)。cu的大小对应于解码节点的大小且形状必须为正方形。cu的大小的范围可为8×8像素直到最大64×64像素或更大的树块的大小。每一cu可含有一个或多个pu及一个或多个tu。例如,与cu相关联的语法数据可描述将cu分割成一个或多个pu的情形。分割模式在cu是被跳过或经直接模式编码、帧内预测模式编码或帧间预测模式编码的情形之间可为不同的。pu可经分割成形状为非正方形。例如,与cu相关联的语法数据也可描述根据四叉树将cu分割成一个或多个tu的情形。tu的形状可为正方形或非正方形。

hevc标准允许根据tu进行变换,tu对于不同cu来说可为不同的。tu通常基于针对经分割lcu定义的给定cu内的pu的大小而设定大小,但情况可能并非总是如此。tu的大小通常与pu相同或小于pu。在一些可行的实施方式中,可使用称作“残余四叉树”(residualqualtree,rqt)的四叉树结构将对应于cu的残余样本再分成较小单元。rqt的叶节点可被称作tu。可变换与tu相关联的像素差值以产生变换系数,变换系数可被量化。

一般来说,pu包含与预测过程有关的数据。例如,在pu经帧内模式编码时,pu可包含描述pu的帧内预测模式的数据。作为另一可行的实施方式,在pu经帧间模式编码时,pu可包含界定pu的运动矢量的数据。例如,界定pu的运动矢量的数据可描述运动矢量的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精确度或八分之一像素精确度)、运动矢量所指向的参考图像,和/或运动矢量的参考图像列表(例如,列表0、列表1或列表c)。

一般来说,tu使用变换及量化过程。具有一个或多个pu的给定cu也可包含一个或多个tu。在预测之后,视频编码器100可计算对应于pu的残余值。残余值包括像素差值,像素差值可变换成变换系数、经量化且使用tu扫描以产生串行化变换系数以用于熵解码。本申请通常使用术语“视频块”来指cu的解码节点。在一些特定应用中,本申请也可使用术语“视频块”来指包含解码节点以及pu及tu的树块,例如,lcu或cu。

视频序列通常包含一系列视频帧或图像。图像群组(groupofpicture,gop)示例性地包括一系列、一个或多个视频图像。gop可在gop的头信息中、图像中的一者或多者的头信息中或在别处包含语法数据,语法数据描述包含于gop中的图像的数目。图像的每一条带可包含描述相应图像的编码模式的条带语法数据。视频编码器100通常对个别视频条带内的视频块进行操作以便编码视频数据。视频块可对应于cu内的解码节点。视频块可具有固定或变化的大小,且可根据指定解码标准而在大小上不同。

作为一种可行的实施方式,hm支持各种pu大小的预测。假定特定cu的大小为2n×2n,hm支持2n×2n或n×n的pu大小的帧内预测,及2n×2n、2n×n、n×2n或n×n的对称pu大小的帧间预测。hm也支持2n×nu、2n×nd、nl×2n及nr×2n的pu大小的帧间预测的不对称分割。在不对称分割中,cu的一方向未分割,而另一方向分割成25%及75%。对应于25%区段的cu的部分由“n”后跟着“上(up)”、“下(down)”、“左(left)”或“右(right)”的指示来指示。因此,例如,“2n×nu”指水平分割的2n×2ncu,其中2n×0.5npu在上部且2n×1.5npu在底部。

在本申请中,“n×n”与“n乘n”可互换使用以指依照垂直维度及水平维度的视频块的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样地,n×n块一股在垂直方向上具有n个像素,且在水平方向上具有n个像素,其中n表示非负整数值。可将块中的像素排列成行及列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。例如,块可包括n×m个像素,其中m未必等于n。

在使用cu的pu的帧内预测性或帧间预测性解码之后,视频编码器100可计算cu的tu的残余数据。pu可包括空间域(也称作像素域)中的像素数据,且tu可包括在将变换(例如,离散余弦变换(discretecosinetransform,dct)、整数变换、小波变换或概念上类似的变换)应用于残余视频数据之后变换域中的系数。残余数据可对应于未经编码图像的像素与对应于pu的预测值之间的像素差。视频编码器100可形成包含cu的残余数据的tu,且接着变换tu以产生cu的变换系数。

在任何变换以产生变换系数之后,视频编码器100可执行变换系数的量化。量化示例性地指对系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降值舍位到m位值,其中n大于m。

jem模型对视频图像的编码结构进行了进一步的改进,具体的,被称为“四叉树结合二叉树”(qtbt)的块编码结构被引入进来。qtbt结构摒弃了hevc中的cu,pu,tu等概念,支持更灵活的cu划分形状,一个cu可以正方形,也可以是长方形。一个ctu首先进行四叉树划分,该四叉树的叶节点进一步进行二叉树划分。同时,在二叉树划分中存在两种划分模式,对称水平分割和对称竖直分割。二叉树的叶节点被称为cu,jem的cu在预测和变换的过程中都不可以被进一步划分,也就是说jem的cu,pu,tu具有相同的块大小。在现阶段的jem中,ctu的最大尺寸为256×256亮度像素。

在一些可行的实施方式中,视频编码器100可利用预定义扫描次序来扫描经量化变换系数以产生可经熵编码的串行化向量。在其它可行的实施方式中,视频编码器100可执行自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器100可根据上下文自适应性可变长度解码(cavlc)、上下文自适应性二进制算术解码(cabac)、基于语法的上下文自适应性二进制算术解码(sbac)、概率区间分割熵(pipe)解码或其他熵解码方法来熵解码一维向量。视频编码器100也可熵编码与经编码视频数据相关联的语法元素以供视频解码器200用于解码视频数据。

为了执行cabac,视频编码器100可将上下文模型内的上下文指派给待传输的符号。上下文可与符号的相邻值是否为非零有关。为了执行cavlc,视频编码器100可选择待传输的符号的可变长度码。可变长度解码(vlc)中的码字可经构建以使得相对较短码对应于可能性较大的符号,而较长码对应于可能性较小的符号。以这个方式,vlc的使用可相对于针对待传输的每一符号使用相等长度码字达成节省码率的目的。基于指派给符号的上下文可以确定cabac中的概率。

在本申请实施例中,视频编码器可执行帧间预测以减少图像之间的时间冗余。如前文所描述,根据不同视频压缩编解码标准的规定,cu可具有一个或多个预测单元pu。换句话说,多个pu可属于cu,或者pu和cu的尺寸相同。在本文中当cu和pu尺寸相同时,cu的分割模式为不分割,或者即为分割为一个pu,且统一使用pu进行表述。当视频编码器执行帧间预测时,视频编码器可用信号通知视频解码器用于pu的运动信息。示例性的,pu的运动信息可以包括:参考图像索引、运动矢量和预测方向标识。运动矢量可指示pu的图像块(也称视频块、像素块、像素集合等)与pu的参考块之间的位移。pu的参考块可为类似于pu的图像块的参考图像的一部分。参考块可定位于由参考图像索引和预测方向标识指示的参考图像中。

为了减少表示pu的运动信息所需要的编码比特的数目,视频编码器可根据合并预测模式或高级运动矢量预测模式过程产生用于pu中的每一者的候选预测运动矢量列表。用于pu的候选预测运动矢量列表中的每一候选预测运动矢量可指示运动信息。由候选预测运动矢量列表中的一些候选预测运动矢量指示的运动信息可基于其它pu的运动信息。如果候选预测运动矢量指示指定空间候选预测运动矢量位置或时间候选预测运动矢量位置中的一者的运动信息,则本申请可将所述候选预测运动矢量称作“原始”候选预测运动矢量。举例来说,对于合并模式,在本文中也称为合并预测模式,可存在五个原始空间候选预测运动矢量位置和一个原始时间候选预测运动矢量位置。在一些实例中,视频编码器可通过组合来自不同原始候选预测运动矢量的部分运动矢量、修改原始候选预测运动矢量或仅插入零运动矢量作为候选预测运动矢量来产生额外候选预测运动矢量。这些额外候选预测运动矢量不被视为原始候选预测运动矢量且在本申请中可称作人工产生的候选预测运动矢量。

本申请的技术一般涉及用于在视频编码器处产生候选预测运动矢量列表的技术和用于在视频解码器处产生相同候选预测运动矢量列表的技术。视频编码器和视频解码器可通过实施用于构建候选预测运动矢量列表的相同技术来产生相同候选预测运动矢量列表。举例来说,视频编码器和视频解码器两者可构建具有相同数目的候选预测运动矢量(例如,五个候选预测运动矢量)的列表。视频编码器和解码器可首先考虑空间候选预测运动矢量(例如,同一图像中的相邻块),接着考虑时间候选预测运动矢量(例如,不同图像中的候选预测运动矢量),且最后可考虑人工产生的候选预测运动矢量直到将所要数目的候选预测运动矢量添加到列表为止。根据本申请的技术,可在候选预测运动矢量列表构建期间针对某些类型的候选预测运动矢量利用修剪操作以便从候选预测运动矢量列表移除重复,而对于其它类型的候选预测运动矢量,可能不使用修剪以便减小解码器复杂性。举例来说,对于空间候选预测运动矢量集合和对于时间候选预测运动矢量,可执行修剪操作以从候选预测运动矢量的列表排除具有重复运动信息的候选预测运动矢量。然而,当将人工产生的候选预测运动矢量添加到候选预测运动矢量的列表时,可在不对人工产生的候选预测运动矢量执行修剪操作的情况下添加人工产生的候选预测运动矢量。

在产生用于cu的pu的候选预测运动矢量列表之后,视频编码器可从候选预测运动矢量列表选择候选预测运动矢量且在码流中输出候选预测运动矢量索引。选定候选预测运动矢量可为具有产生最紧密地匹配正被解码的目标pu的预测子的运动矢量的候选预测运动矢量。候选预测运动矢量索引可指示在候选预测运动矢量列表中选定候选预测运动矢量的位置。视频编码器还可基于由pu的运动信息指示的参考块产生用于pu的预测性图像块。可基于由选定候选预测运动矢量指示的运动信息确定pu的运动信息。举例来说,在合并模式中,pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。在amvp模式中,pu的运动信息可基于pu的运动矢量差和由选定候选预测运动矢量指示的运动信息确定。视频编码器可基于cu的pu的预测性图像块和用于cu的原始图像块产生用于cu的一或多个残余图像块。视频编码器可接着编码一或多个残余图像块且在码流中输出一或多个残余图像块。

码流可包括识别pu的候选预测运动矢量列表中的选定候选预测运动矢量的数据。视频解码器可基于由pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定pu的运动信息。视频解码器可基于pu的运动信息识别用于pu的一或多个参考块。在识别pu的一或多个参考块之后,视频解码器可基于pu的一或多个参考块产生用于pu的预测性图像块。视频解码器可基于用于cu的pu的预测性图像块和用于cu的一或多个残余图像块来重构用于cu的图像块。

为了易于解释,本申请可将位置或图像块描述为与cu或pu具有各种空间关系。此描述可解释为是指位置或图像块和与cu或pu相关联的图像块具有各种空间关系。此外,本申请可将视频解码器当前在解码的pu称作当前pu,也称为当前待处理图像块。本申请可将视频解码器当前在解码的cu称作当前cu。本申请可将视频解码器当前在解码的图像称作当前图像。应理解,本申请同时适用于pu和cu具有相同尺寸,或者pu即为cu的情况,统一使用pu来表示。

如前文简短地描述,视频编码器100可使用帧间预测以产生用于cu的pu的预测性图像块和运动信息。在许多例子中,给定pu的运动信息可能与一或多个附近pu(即,其图像块在空间上或时间上在给定pu的图像块附近的pu)的运动信息相同或类似。因为附近pu经常具有类似运动信息,所以视频编码器100可参考附近pu的运动信息来编码给定pu的运动信息。参考附近pu的运动信息来编码给定pu的运动信息可减少码流中指示给定pu的运动信息所需要的编码比特的数目。

视频编码器100可以各种方式参考附近pu的运动信息来编码给定pu的运动信息。举例来说,视频编码器100可指示给定pu的运动信息与附近pu的运动信息相同。本申请可使用合并模式来指代指示给定pu的运动信息与附近pu的运动信息相同或可从附近pu的运动信息导出。在另一可行的实施方式中,视频编码器100可计算用于给定pu的运动矢量差(mvd)。mvd指示给定pu的运动矢量与附近pu的运动矢量之间的差。视频编码器100可将mvd而非给定pu的运动矢量包括于给定pu的运动信息中。在码流中表示mvd比表示给定pu的运动矢量所需要的编码比特少。本申请可使用高级运动矢量预测模式指代通过使用mvd和识别候选者运动矢量的索引值来用信号通知解码端给定pu的运动信息。

为了使用合并模式或amvp模式来用信号通知解码端给定pu的运动信息,视频编码器100可产生用于给定pu的候选预测运动矢量列表。候选预测运动矢量列表可包括一或多个候选预测运动矢量。用于给定pu的候选预测运动矢量列表中的候选预测运动矢量中的每一者可指定运动信息。由每一候选预测运动矢量指示的运动信息可包括运动矢量、参考图像索引和预测方向标识。候选预测运动矢量列表中的候选预测运动矢量可包括“原始”候选预测运动矢量,其中每一者指示不同于给定pu的pu内的指定候选预测运动矢量位置中的一者的运动信息。

在产生用于pu的候选预测运动矢量列表之后,视频编码器100可从用于pu的候选预测运动矢量列表选择候选预测运动矢量中的一者。举例来说,视频编码器可比较每一候选预测运动矢量与正被解码的pu且可选择具有所要码率-失真代价的候选预测运动矢量。视频编码器100可输出用于pu的候选预测运动矢量索引。候选预测运动矢量索引可识别选定候选预测运动矢量在候选预测运动矢量列表中的位置。

此外,视频编码器100可基于由pu的运动信息指示的参考块产生用于pu的预测性图像块。可基于由用于pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定pu的运动信息。举例来说,在合并模式中,pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。在amvp模式中,可基于用于pu的运动矢量差和由选定候选预测运动矢量指示的运动信息确定pu的运动信息。视频编码器100可如前文所描述处理用于pu的预测性图像块。

当视频解码器200接收到码流时,视频解码器200可产生用于cu的pu中的每一者的候选预测运动矢量列表。由视频解码器200针对pu产生的候选预测运动矢量列表可与由视频编码器100针对pu产生的候选预测运动矢量列表相同。从码流中解析得到的语法元素可指示在pu的候选预测运动矢量列表中选定候选预测运动矢量的位置。在产生用于pu的候选预测运动矢量列表之后,视频解码器200可基于由pu的运动信息指示的一或多个参考块产生用于pu的预测性图像块。视频解码器200可基于由用于pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定pu的运动信息。视频解码器200可基于用于pu的预测性图像块和用于cu的残余图像块重构用于cu的图像块。

应理解,在一种可行的实施方式中,在解码端,候选预测运动矢量列表的构建与从码流中解析选定候选预测运动矢量在候选预测运动矢量列表中的位置是相互独立,可以任意先后或者并行进行的。

在另一种可行的实施方式中,在解码端,首先从码流中解析选定候选预测运动矢量在候选预测运动矢量列表中的位置,根据解析出来的位置构建候选预测运动矢量列表,在该实施方式中,不需要构建全部的候选预测运动矢量列表,只需要构建到该解析出来的位置处的候选预测运动矢量列表,即能够确定该位置出的候选预测运动矢量即可。举例来说,当解析码流得出选定的候选预测运动矢量为候选预测运动矢量列表中索引为3的候选预测运动矢量时,仅需要构建从索引为0到索引为3的候选预测运动矢量列表,即可确定索引为3的候选预测运动矢量,可以达到减小复杂度,提高解码效率的技术效果。

图2为本申请实施例中所描述的一种实例的视频编码器100的框图。视频编码器100用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的视频实体的实例,例如媒体感知网络元件(mane)或拼接/编辑装置。在一些情况下,后处理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41和视频编码器100可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图1的存储装置40的实例。

在图2的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图像缓冲器(dpb)107、求和器112、变换器101、量化器102和熵编码器103。预测处理单元108包括帧间预测器110和帧内预测器109。为了图像块重构,视频编码器100还包含反量化器104、反变换器105和求和器111。滤波器单元106既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(alf)和样本自适应偏移(sao)滤波器。尽管在图2中将滤波器单元106示出为环路内滤波器,但在其它实现方式下,可将滤波器单元106实施为环路后滤波器。在一种示例下,视频编码器100还可以包括视频数据存储器、分割单元(图中未示意)。

视频数据存储器可存储待由视频编码器100的组件编码的视频数据。可从视频源120获得存储在视频数据存储器中的视频数据。dpb107可为参考图像存储器,其存储用于由视频编码器100在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器和dpb107可由多种存储器装置中的任一者形成,例如包含同步dram(sdram)的动态随机存取存储器(dram)、磁阻式ram(mram)、电阻式ram(rram),或其它类型的存储器装置。视频数据存储器和dpb107可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器可与视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。

如图2所示,视频编码器100接收视频数据,并将所述视频数据存储在视频数据存储器中。分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器100通常说明编码待编码的视频条带内的图像块的组件。所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。预测处理单元108可选择用于当前图像块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者或多个帧间译码模式中的一者。预测处理单元108可将所得经帧内、帧间译码的块提供给求和器112以产生残差块,且提供给求和器111以重构用作参考图像的经编码块。

预测处理单元108内的帧内预测器109可相对于与待编码当前块在相同帧或条带中的一或多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间预测器110可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编码以去除时间冗余。

具体的,帧间预测器110可用于确定用于编码当前图像块的帧间预测模式。举例来说,帧间预测器110可使用码率-失真分析来计算候选帧间预测模式集合中的各种帧间预测模式的码率-失真值,并从中选择具有最佳码率-失真特性的帧间预测模式。码率失真分析通常确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位码率(也就是说,位数目)。例如,帧间预测器110可确定候选帧间预测模式集合中编码所述当前图像块的码率失真代价最小的帧间预测模式为用于对当前图像块进行帧间预测的帧间预测模式。

帧间预测器110用于基于确定的帧间预测模式,预测当前图像块中一个或多个子块的运动信息(例如运动矢量),并利用当前图像块中一个或多个子块的运动信息(例如运动矢量)获取或产生当前图像块的预测块。帧间预测器110可在参考图像列表中的一者中定位所述运动向量指向的预测块。帧间预测器110还可产生与图像块和视频条带相关联的语法元素以供视频解码器200在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测器110利用每个子块的运动信息执行运动补偿过程,以生成每个子块的预测块,从而得到当前图像块的预测块;应当理解的是,这里的帧间预测器110执行运动估计和运动补偿过程。

具体的,在为当前图像块选择帧间预测模式之后,帧间预测器110可将指示当前图像块的所选帧间预测模式的信息提供到熵编码器103,以便于熵编码器103编码指示所选帧间预测模式的信息。

帧内预测器109可对当前图像块执行帧内预测。明确地说,帧内预测器109可确定用来编码当前块的帧内预测模式。举例来说,帧内预测器109可使用码率-失真分析来计算各种待测试的帧内预测模式的码率-失真值,并从待测试模式当中选择具有最佳码率-失真特性的帧内预测模式。在任何情况下,在为图像块选择帧内预测模式之后,帧内预测器109可将指示当前图像块的所选帧内预测模式的信息提供到熵编码器103,以便熵编码器103编码指示所选帧内预测模式的信息。

在预测处理单元108经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编码器100通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和器112表示执行此减法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个tu中,并应用于变换器101。变换器101使用例如离散余弦变换(dct)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换到变换域,例如频域。

变换器101可将所得变换系数发送到量化器102。量化器102量化所述变换系数以进一步减小位码率。在一些实例中,量化器102可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器103可执行扫描。

在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103可执行上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、基于语法的上下文自适应二进制算术编码(sbac)、概率区间分割熵(pipe)编码或另一熵编码方法或技术。在由熵编码器103熵编码之后,可将经编码码流发射到视频解码器200,或经存档以供稍后发射或由视频解码器200检索。熵编码器103还可对待编码的当前图像块的语法元素进行熵编码。

反量化器104和反变化器105分别应用逆量化和逆变换以在像素域中重构所述残差块,例如以供稍后用作参考图像的参考块。求和器111将经重构的残差块添加到由帧间预测器110或帧内预测器109产生的预测块,以产生经重构图像块。滤波器单元106可以适用于经重构图像块以减小失真,诸如方块效应(blockartifacts)。然后,该经重构图像块作为参考块存储在经解码图像缓冲器107中,可由帧间预测器110用作参考块以对后续视频帧或图像中的块进行帧间预测。

应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处理,相应地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变换器105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元106处理;或者,视频编码器100中量化器102和反量化器104可以合并在一起。

图3为本申请实施例中所描述的一种实例的视频解码器200的框图。在图3的实例中,视频解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和器211、滤波器单元206以及经解码图像缓冲器207。预测处理单元208可以包括帧间预测器210和帧内预测器209。在一些实例中,视频解码器200可执行大体上与相对于来自图2的视频编码器100描述的编码过程互逆的解码过程。

在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块和相关联的语法元素的经编码视频码流。视频解码器200可从网络实体42接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待由视频解码器200的组件解码的视频数据,例如经编码视频码流。存储在视频数据存储器中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器可作为用于存储来自经编码视频码流的经编码视频数据的经解码图像缓冲器(cpb)。因此,尽管在图3中没有示意出视频数据存储器,但视频数据存储器和dpb207可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和dpb207可由多种存储器装置中的任一者形成,例如:包含同步dram(sdram)的动态随机存取存储器(dram)、磁阻式ram(mram)、电阻式ram(rram),或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器200的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。

网络实体42可例如为服务器、mane、视频编辑器/剪接器,或用于实施上文所描述的技术中的一或多者的其它此装置。网络实体42可包括或可不包括视频编码器,例如视频编码器100。在网络实体42将经编码视频码流发送到视频解码器200之前,网络实体42可实施本申请中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器200的相同装置执行。在一些情况下,网络实体42可为图1的存储装置40的实例。

视频解码器200的熵解码器203对码流进行熵解码以产生经量化的系数和一些语法元素。熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带层级和/或图像块层级处的语法元素。

当视频条带被解码为经帧内解码(i)条带时,预测处理单元208的帧内预测器209可基于发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当前视频条带的图像块的预测块。当视频条带被解码为经帧间解码(即,b或p)条带时,预测处理单元208的帧间预测器210可基于从熵解码器203接收到的语法元素,确定用于对当前视频条带的当前图像块进行解码的帧间预测模式,基于确定的帧间预测模式,对所述当前图像块进行解码(例如执行帧间预测)。具体的,帧间预测器210可确定是否对当前视频条带的当前图像块采用新的帧间预测模式进行预测,如果语法元素指示采用新的帧间预测模式来对当前图像块进行预测,基于新的帧间预测模式(例如通过语法元素指定的一种新的帧间预测模式或默认的一种新的帧间预测模式)预测当前视频条带的当前图像块或当前图像块的子块的运动信息,从而通过运动补偿过程使用预测出的当前图像块或当前图像块的子块的运动信息来获取或生成当前图像块或当前图像块的子块的预测块。这里的运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。对于帧间预测,可从参考图像列表中的一者内的参考图像中的一者产生预测块。视频解码器200可基于存储在dpb207中的参考图像来建构参考图像列表,即列表0和列表1。当前图像的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,可以是视频编码器100发信号通知指示是否采用新的帧间预测模式来解码特定块的特定语法元素,或者,也可以是发信号通知指示是否采用新的帧间预测模式,以及指示具体采用哪一种新的帧间预测模式来解码特定块的特定语法元素。应当理解的是,这里的帧间预测器210执行运动补偿过程。

反量化器204将在码流中提供且由熵解码器203解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器205将逆变换应用于变换系数,例如逆dct、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。

在帧间预测器210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器200通过将来自反变换器205的残差块与由帧间预测器210产生的对应预测块求和以得到重建的块,即经解码图像块。求和器211表示执行此求和操作的组件。在需要时,还可使用环路滤波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元206可以表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(alf)以及样本自适应偏移(sao)滤波器。尽管在图3中将滤波器单元206示出为环路内滤波器,但在其它实现方式中,可将滤波器单元206实施为环路后滤波器。在一种示例下,滤波器单元206适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在经解码图像缓冲器207中,经解码图像缓冲器207存储用于后续运动补偿的参考图像。经解码图像缓冲器207可为存储器的一部分,其还可以存储经解码视频,以供稍后在显示装置(例如图1的显示装置220)上呈现,或可与此类存储器分开。

应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频码流。例如,视频解码器200可以不经滤波器单元206处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器200的熵解码器203没有解码出经量化的系数,相应地不需要经反量化器204和反变换器205处理。

如前文所注明,本申请的技术示例性地涉及帧间解码。应理解,本申请的技术可通过本申请中所描述的视频解码器中的任一者进行,视频解码器包含(例如)如关于图1到3所展示及描述的视频编码器100及视频解码器200。即,在一种可行的实施方式中,关于图2所描述的帧间预测器110可在视频数据的块的编码期间在执行帧间预测时执行下文中所描述的特定技术。在另一可行的实施方式中,关于图3所描述的帧间预测器210可在视频数据的块的解码期间在执行帧间预测时执行下文中所描述的特定技术。因此,对一般性“视频编码器”或“视频解码器”的引用可包含视频编码器100、视频解码器200或另一视频编码或编码单元。

图4为本申请实施例中帧间预测模块的一种示意性框图。帧间预测模块121,示例性的,可以包括运动估计单元和运动补偿单元。在不同的视频压缩编解码标准中,pu和cu的关系各有不同。帧间预测模块121可根据多个分割模式将当前cu分割为pu。举例来说,帧间预测模块121可根据2n×2n、2n×n、n×2n和n×n分割模式将当前cu分割为pu。在其他实施例中,当前cu即为当前pu,不作限定。

帧间预测模块121可对pu中的每一者执行整数运动估计(integermotionestimation,ime)且接着执行分数运动估计(fractionmotionestimation,fme)。当帧间预测模块121对pu执行ime时,帧间预测模块121可在一个或多个参考图像中搜索用于pu的参考块。在找到用于pu的参考块之后,帧间预测模块121可产生以整数精度指示pu与用于pu的参考块之间的空间位移的运动矢量。当帧间预测模块121对pu执行fme时,帧间预测模块121可改进通过对pu执行ime而产生的运动矢量。通过对pu执行fme而产生的运动矢量可具有子整数精度(例如,1/2像素精度、1/4像素精度等)。在产生用于pu的运动矢量之后,帧间预测模块121可使用用于pu的运动矢量以产生用于pu的预测性图像块。

在帧间预测模块121使用amvp模式用信号通知解码端pu的运动信息的一些可行的实施方式中,帧间预测模块121可产生用于pu的候选预测运动矢量列表。候选预测运动矢量列表可包括一个或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一个或多个额外候选预测运动矢量。在产生用于pu的候选预测运动矢量列表之后,帧间预测模块121可从候选预测运动矢量列表选择候选预测运动矢量且产生用于pu的运动矢量差(mvd)。用于pu的mvd可指示由选定候选预测运动矢量指示的运动矢量与使用ime和fme针对pu产生的运动矢量之间的差。在这些可行的实施方式中,帧间预测模块121可输出识别选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引。帧间预测模块121还可输出pu的mvd。下文详细描述图6中,本申请实施例中高级运动矢量预测(amvp)模式的一种可行的实施方式。

除了通过对pu执行ime和fme来产生用于pu的运动信息外,帧间预测模块121还可对pu中的每一者执行合并(merge)操作。当帧间预测模块121对pu执行合并操作时,帧间预测模块121可产生用于pu的候选预测运动矢量列表。用于pu的候选预测运动矢量列表可包括一个或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一个或多个额外候选预测运动矢量。候选预测运动矢量列表中的原始候选预测运动矢量可包括一个或多个空间候选预测运动矢量和时间候选预测运动矢量。空间候选预测运动矢量可指示当前图像中的其它pu的运动信息。时间候选预测运动矢量可基于不同于当前图像的对应的pu的运动信息。时间候选预测运动矢量还可称作时间运动矢量预测(tmvp)。

在产生候选预测运动矢量列表之后,帧间预测模块121可从候选预测运动矢量列表选择候选预测运动矢量中的一个。帧间预测模块121可接着基于由pu的运动信息指示的参考块产生用于pu的预测性图像块。在合并模式中,pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。下文描述的图5说明merge示例性的流程图。

在基于ime和fme产生用于pu的预测性图像块和基于合并操作产生用于pu的预测性图像块之后,帧间预测模块121可选择通过fme操作产生的预测性图像块或者通过合并操作产生的预测性图像块。在一些可行的实施方式中,帧间预测模块121可基于通过fme操作产生的预测性图像块和通过合并操作产生的预测性图像块的码率-失真代价分析来选择用于pu的预测性图像块。

在帧间预测模块121已选择通过根据分割模式中的每一者分割当前cu而产生的pu的预测性图像块之后(在一些实施方式中,编码树单元ctu划分为cu后,不会再进一步划分为更小的pu,此时pu等同于cu),帧间预测模块121可选择用于当前cu的分割模式。在一些实施方式中,帧间预测模块121可基于通过根据分割模式中的每一者分割当前cu而产生的pu的选定预测性图像块的码率-失真代价分析来选择用于当前cu的分割模式。帧间预测模块121可将与属于选定分割模式的pu相关联的预测性图像块输出到残差产生模块102。帧间预测模块121可将指示属于选定分割模式的pu的运动信息的语法元素输出到熵编码模块116。

在图4的示意图中,帧间预测模块121包括ime模块180a到180n(统称为“ime模块180”)、fme模块182a到182n(统称为“fme模块182”)、合并模块184a到184n(统称为“合并模块184”)、pu模式决策模块186a到186n(统称为“pu模式决策模块186”)和cu模式决策模块188(也可以包括执行从ctu到cu的模式决策过程)。

ime模块180、fme模块182和合并模块184可对当前cu的pu执行ime操作、fme操作和合并操作。图4的示意图中将帧间预测模块121说明为包括用于cu的每一分割模式的每一pu的单独ime模块180、fme模块182和合并模块184。在其它可行的实施方式中,帧间预测模块121不包括用于cu的每一分割模式的每一pu的单独ime模块180、fme模块182和合并模块184。

如图4的示意图中所说明,ime模块180a、fme模块182a和合并模块184a可对通过根据2n×2n分割模式分割cu而产生的pu执行ime操作、fme操作和合并操作。pu模式决策模块186a可选择由ime模块180a、fme模块182a和合并模块184a产生的预测性图像块中的一者。

ime模块180b、fme模块182b和合并模块184b可对通过根据n×2n分割模式分割cu而产生的左pu执行ime操作、fme操作和合并操作。pu模式决策模块186b可选择由ime模块180b、fme模块182b和合并模块184b产生的预测性图像块中的一者。

ime模块180c、fme模块182c和合并模块184c可对通过根据n×2n分割模式分割cu而产生的右pu执行ime操作、fme操作和合并操作。pu模式决策模块186c可选择由ime模块180c、fme模块182c和合并模块184c产生的预测性图像块中的一者。

ime模块180n、fme模块182n和合并模块184可对通过根据n×n分割模式分割cu而产生的右下pu执行ime操作、fme操作和合并操作。pu模式决策模块186n可选择由ime模块180n、fme模块182n和合并模块184n产生的预测性图像块中的一者。

pu模式决策模块186可基于多个可能预测性图像块的码率-失真代价分析选择预测性图像块,且选择针对给定解码情形提供最佳码率-失真代价的预测性图像块。示例性的,对于带宽受限的应用,pu模式决策模块186可偏向选择增加压缩比的预测性图像块,而对于其它应用,pu模式决策模块186可偏向选择增加经重建视频质量的预测性图像块。在pu模式决策模块186选择用于当前cu的pu的预测性图像块之后,cu模式决策模块188选择用于当前cu的分割模式且输出属于选定分割模式的pu的预测性图像块和运动信息。

图5为本申请实施例中合并模式的一种示例性流程图。视频编码器(例如视频编码器100)可执行合并操作200。在其它可行的实施方式中,视频编码器可执行不同于合并操作200的合并操作。举例来说,在其它可行的实施方式中,视频编码器可执行合并操作,其中视频编码器执行比合并操作200多、少的步骤或与合并操作200不同的步骤。在其它可行的实施方式中,视频编码器可以不同次序或并行地执行合并操作200的步骤。编码器还可对以跳跃(skip)模式编码的pu执行合并操作200。

在视频编码器开始合并操作200之后,视频编码器可产生用于当前pu的候选预测运动矢量列表(202)。视频编码器可以各种方式产生用于当前pu的候选预测运动矢量列表。举例来说,视频编码器可根据下文关于图8到图12描述的实例技术中的一者产生用于当前pu的候选预测运动矢量列表。

如前文所述,用于当前pu的候选预测运动矢量列表可包括时间候选预测运动矢量。时间候选预测运动矢量可指示时域对应(co-located)的pu的运动信息。co-located的pu可在空间上与当前pu处于图像帧中的同一个位置,但在参考图像而非当前图像中。本申请可将包括时域对应的pu的参考图像称作相关参考图像。本申请可将相关参考图像的参考图像索引称作相关参考图像索引。如前文所描述,当前图像可与一个或多个参考图像列表(例如,列表0、列表1等)相关联。参考图像索引可通过指示在参考图像某一个参考图像列表中的位置来指示参考图像。在一些可行的实施方式中,当前图像可与组合参考图像列表相关联。

在一些视频编码器中,相关参考图像索引为涵盖与当前pu相关联的参考索引源位置的pu的参考图像索引。在这些视频编码器中,与当前pu相关联的参考索引源位置邻接于当前pu左方或邻接于当前pu上方。在本申请中,如果与pu相关联的图像块包括特定位置,则pu可“涵盖”所述特定位置。在这些视频编码器中,如果参考索引源位置不可用,则视频编码器可使用零的参考图像索引。

然而,可存在以下例子:与当前pu相关联的参考索引源位置在当前cu内。在这些例子中,如果pu在当前cu上方或左方,则涵盖与当前pu相关联的参考索引源位置的pu可被视为可用。然而,视频编码器可需要存取当前cu的另一pu的运动信息以便确定含有co-locatedpu的参考图像。因此,这些视频编码器可使用属于当前cu的pu的运动信息(即,参考图像索引)以产生用于当前pu的时间候选预测运动矢量。换句话说,这些视频编码器可使用属于当前cu的pu的运动信息产生时间候选预测运动矢量。因此,视频编码器可能不能并行地产生用于当前pu和涵盖与当前pu相关联的参考索引源位置的pu的候选预测运动矢量列表。

根据本申请的技术,视频编码器可在不参考任何其它pu的参考图像索引的情况下显式地设定相关参考图像索引。此可使得视频编码器能够并行地产生用于当前pu和当前cu的其它pu的候选预测运动矢量列表。因为视频编码器显式地设定相关参考图像索引,所以相关参考图像索引不基于当前cu的任何其它pu的运动信息。在视频编码器显式地设定相关参考图像索引的一些可行的实施方式中,视频编码器可始终将相关参考图像索引设定为固定的预定义预设参考图像索引(例如0)。以此方式,视频编码器可基于由预设参考图像索引指示的参考帧中的co-locatedpu的运动信息产生时间候选预测运动矢量,且可将时间候选预测运动矢量包括于当前cu的候选预测运动矢量列表中。

在视频编码器显式地设定相关参考图像索引的可行的实施方式中,视频编码器可显式地在语法结构(例如图像标头、条带标头、aps或另一语法结构)中用信号通知相关参考图像索引。在此可行的实施方式中,视频编码器可用信号通知解码端用于每一lcu(即ctu)、cu、pu、tu或其它类型的子块的相关参考图像索引。举例来说,视频编码器可用信号通知:用于cu的每一pu的相关参考图像索引等于“1”。

在一些可行的实施方式中,相关参考图像索引可经隐式地而非显式地设定。在这些可行的实施方式中,视频编码器可使用由涵盖当前cu外部的位置的pu的参考图像索引指示的参考图像中的pu的运动信息产生用于当前cu的pu的候选预测运动矢量列表中的每一时间候选预测运动矢量,即使这些位置并不严格地邻近当前pu。

在产生用于当前pu的候选预测运动矢量列表之后,视频编码器可产生与候选预测运动矢量列表中的候选预测运动矢量相关联的预测性图像块(204)。视频编码器可通过基于所指示候选预测运动矢量的运动信息确定当前pu的运动信息和接着基于由当前pu的运动信息指示的一个或多个参考块产生预测性图像块来产生与候选预测运动矢量相关联的预测性图像块。视频编码器可接着从候选预测运动矢量列表选择候选预测运动矢量中的一者(206)。视频编码器可以各种方式选择候选预测运动矢量。举例来说,视频编码器可基于对与候选预测运动矢量相关联的预测性图像块的每一者的码率-失真代价分析来选择候选预测运动矢量中的一者。

在选择候选预测运动矢量之后,视频编码器可输出候选预测运动矢量索引(208)。候选预测运动矢量索引可指示在候选预测运动矢量列表中选定候选预测运动矢量的位置。在一些可行的实施方式中,候选预测运动矢量索引可表示为“merge_idx”。

图6为本申请实施例中高级运动矢量预测(amvp)模式的一种示例性流程图。视频编码器(例如视频编码器100)可执行amvp操作210。

在视频编码器开始amvp操作210之后,视频编码器可产生用于当前pu的一个或多个运动矢量(211)。视频编码器可执行整数运动估计和分数运动估计以产生用于当前pu的运动矢量。如前文所描述,当前图像可与两个参考图像列表(列表0和列表1)相关联。如果当前pu经单向预测,则视频编码器可产生用于当前pu的列表0运动矢量或列表1运动矢量。列表0运动矢量可指示当前pu的图像块与列表0中的参考图像中的参考块之间的空间位移。列表1运动矢量可指示当前pu的图像块与列表1中的参考图像中的参考块之间的空间位移。如果当前pu经双向预测,则视频编码器可产生用于当前pu的列表0运动矢量和列表1运动矢量。

在产生用于当前pu的一个或多个运动矢量之后,视频编码器可产生用于当前pu的预测性图像块(212)。视频编码器可基于由用于当前pu的一个或多个运动矢量指示的一个或多个参考块产生用于当前pu的预测性图像块。

另外,视频编码器可产生用于当前pu的候选预测运动矢量列表(213)。视频解码器可以各种方式产生用于当前pu的候选预测运动矢量列表。举例来说,视频编码器可根据下文关于图8到图12描述的可行的实施方式中的一个或多个产生用于当前pu的候选预测运动矢量列表。在一些可行的实施方式中,当视频编码器在amvp操作210中产生候选预测运动矢量列表时,候选预测运动矢量列表可限于两个候选预测运动矢量。相比而言,当视频编码器在合并操作中产生候选预测运动矢量列表时,候选预测运动矢量列表可包括更多候选预测运动矢量(例如,五个候选预测运动矢量)。

在产生用于当前pu的候选预测运动矢量列表之后,视频编码器可产生用于候选预测运动矢量列表中的每一候选预测运动矢量的一个或多个运动矢量差(mvd)(214)。视频编码器可通过确定由候选预测运动矢量指示的运动矢量与当前pu的对应运动矢量之间的差来产生用于候选预测运动矢量的运动矢量差。

如果当前pu经单向预测,则视频编码器可产生用于每一候选预测运动矢量的单一mvd。如果当前pu经双向预测,则视频编码器可产生用于每一候选预测运动矢量的两个mvd。第一mvd可指示候选预测运动矢量的运动矢量与当前pu的列表0运动矢量之间的差。第二mvd可指示候选预测运动矢量的运动矢量与当前pu的列表1运动矢量之间的差。

视频编码器可从候选预测运动矢量列表选择候选预测运动矢量中的一个或多个(215)。视频编码器可以各种方式选择一个或多个候选预测运动矢量。举例来说,视频编码器可选择具有最小误差地匹配待编码的运动矢量的相关联运动矢量的候选预测运动矢量,此可减少表示用于候选预测运动矢量的运动矢量差所需的位数目。

在选择一个或多个候选预测运动矢量之后,视频编码器可输出用于当前pu的一个或多个参考图像索引、一个或多个候选预测运动矢量索引,和用于一个或多个选定候选预测运动矢量的一个或多个运动矢量差(216)。

在当前图像与两个参考图像列表(列表0和列表1)相关联且当前pu经单向预测的例子中,视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)或用于列表1的参考图像索引(“ref_idx_11”)。视频编码器还可输出指示用于当前pu的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。或者,视频编码器可输出指示用于当前pu的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于当前pu的列表0运动矢量或列表1运动矢量的mvd。

在当前图像与两个参考图像列表(列表0和列表1)相关联且当前pu经双向预测的例子中,视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)和用于列表1的参考图像索引(“ref_idx_11”)。视频编码器还可输出指示用于当前pu的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。另外,视频编码器可输出指示用于当前pu的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于当前pu的列表0运动矢量的mvd和用于当前pu的列表1运动矢量的mvd。

图7为本申请实施例中由视频解码器(例如视频解码器200)执行的运动补偿的一种示例性流程图。

当视频解码器执行运动补偿操作220时,视频解码器可接收用于当前pu的选定候选预测运动矢量的指示(222)。举例来说,视频解码器可接收指示选定候选预测运动矢量在当前pu的候选预测运动矢量列表内的位置的候选预测运动矢量索引。

如果当前pu的运动信息是使用amvp模式进行编码且当前pu经双向预测,则视频解码器可接收第一候选预测运动矢量索引和第二候选预测运动矢量索引。第一候选预测运动矢量索引指示用于当前pu的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置。第二候选预测运动矢量索引指示用于当前pu的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置。在一些可行的实施方式中,单一语法元素可用以识别两个候选预测运动矢量索引。

另外,视频解码器可产生用于当前pu的候选预测运动矢量列表(224)。视频解码器可以各种方式产生用于当前pu的此候选预测运动矢量列表。举例来说,视频解码器可使用下文参看图8到图12描述的技术来产生用于当前pu的候选预测运动矢量列表。当视频解码器产生用于候选预测运动矢量列表的时间候选预测运动矢量时,视频解码器可显式地或隐式地设定识别包括co-locatedpu的参考图像的参考图像索引,如前文关于图5所描述。

在产生用于当前pu的候选预测运动矢量列表之后,视频解码器可基于由用于当前pu的候选预测运动矢量列表中的一个或多个选定候选预测运动矢量指示的运动信息确定当前pu的运动信息(225)。举例来说,如果当前pu的运动信息是使用合并模式而编码,则当前pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。如果当前pu的运动信息是使用amvp模式而编码,则视频解码器可使用由所述或所述选定候选预测运动矢量指示的一个或多个运动矢量和码流中指示的一个或多个mvd来重建当前pu的一个或多个运动矢量。当前pu的参考图像索引和预测方向标识可与所述一个或多个选定候选预测运动矢量的参考图像索引和预测方向标识相同。在确定当前pu的运动信息之后,视频解码器可基于由当前pu的运动信息指示的一个或多个参考块产生用于当前pu的预测性图像块(226)。

图8为本申请实施例中编码单元(cu)及与其关联的相邻位置图像块的一种示例性示意图,说明cu250和与cu250相关联的示意性的候选预测运动矢量位置252a到252e的示意图。本申请可将候选预测运动矢量位置252a到252e统称为候选预测运动矢量位置252。候选预测运动矢量位置252表示与cu250在同一图像中的空间候选预测运动矢量。候选预测运动矢量位置252a定位于cu250左方。候选预测运动矢量位置252b定位于cu250上方。候选预测运动矢量位置252c定位于cu250右上方。候选预测运动矢量位置252d定位于cu250左下方。候选预测运动矢量位置252e定位于cu250左上方。图8为用以提供帧间预测模块121和运动补偿模块162可产生候选预测运动矢量列表的方式的示意性实施方式。下文将参考帧间预测模块121解释实施方式,但应理解运动补偿模块162可实施相同技术,且因此产生相同候选预测运动矢量列表。

图9为本申请实施例中构建候选预测运动矢量列表的一种示例性流程图。将参考包括五个候选预测运动矢量的列表描述图9的技术,但本文中所描述的技术还可与具有其它大小的列表一起使用。五个候选预测运动矢量可各自具有索引(例如,0到4)。将参考一般视频解码器描述图9的技术。一般视频解码器示例性的可以为视频编码器(例如视频编码器100)或视频解码器(例如视频解码器200)。

为了根据图9的实施方式重建候选预测运动矢量列表,视频解码器首先考虑四个空间候选预测运动矢量(902)。四个空间候选预测运动矢量可以包括候选预测运动矢量位置252a、252b、252c和252d。四个空间候选预测运动矢量对应于与当前cu(例如,cu250)在同一图像中的四个pu的运动信息。视频解码器可以特定次序考虑列表中的四个空间候选预测运动矢量。举例来说,候选预测运动矢量位置252a可被第一个考虑。如果候选预测运动矢量位置252a可用,则候选预测运动矢量位置252a可指派到索引0。如果候选预测运动矢量位置252a不可用,则视频解码器可不将候选预测运动矢量位置252a包括于候选预测运动矢量列表中。候选预测运动矢量位置可出于各种理由而不可用。举例来说,如果候选预测运动矢量位置不在当前图像内,则候选预测运动矢量位置可能不可用。在另一可行的实施方式中,如果候选预测运动矢量位置经帧内预测,则候选预测运动矢量位置可能不可用。在另一可行的实施方式中,如果候选预测运动矢量位置在与当前cu不同的条带中,则候选预测运动矢量位置可能不可用。

在考虑候选预测运动矢量位置252a之后,视频解码器可接下来考虑候选预测运动矢量位置252b。如果候选预测运动矢量位置252b可用且不同于候选预测运动矢量位置252a,则视频解码器可将候选预测运动矢量位置252b添加到候选预测运动矢量列表。在此特定上下文中,术语“相同”和“不同”指代与候选预测运动矢量位置相关联的运动信息。因此,如果两个候选预测运动矢量位置具有相同运动信息则被视为相同,且如果其具有不同运动信息则被视为不同。如果候选预测运动矢量位置252a不可用,则视频解码器可将候选预测运动矢量位置252b指派到索引0。如果候选预测运动矢量位置252a可用,则视频解码器可将候选预测运动矢量位置252指派到索引1。如果候选预测运动矢量位置252b不可用或与候选预测运动矢量位置252a相同,则视频解码器跳过候选预测运动矢量位置252b且不将其包括于候选预测运动矢量列表中。

候选预测运动矢量位置252c由视频解码器类似地考虑以供包括于列表中。如果候选预测运动矢量位置252c可用且不与候选预测运动矢量位置252b和252a相同,则视频解码器将候选预测运动矢量位置252c指派到下一可用索引。如果候选预测运动矢量位置252c不可用或并非不同于候选预测运动矢量位置252a和252b中的至少一者,则视频解码器不将候选预测运动矢量位置252c包括于候选预测运动矢量列表中。接下来,视频解码器考虑候选预测运动矢量位置252d。如果候选预测运动矢量位置252d可用且不与候选预测运动矢量位置252a、252b和252c相同,则视频解码器将候选预测运动矢量位置252d指派到下一可用索引。如果候选预测运动矢量位置252d不可用或并非不同于候选预测运动矢量位置252a、252b和252c中的至少一者,则视频解码器不将候选预测运动矢量位置252d包括于候选预测运动矢量列表中。以上实施方式大体上描述示例性地考虑候选预测运动矢量252a到252d以供包括于候选预测运动矢量列表中,但在一些实施方施中,可首先将所有候选预测运动矢量252a到252d添加到候选预测运动矢量列表,稍后从候选预测运动矢量列表移除重复。

在视频解码器考虑前四个空间候选预测运动矢量之后,候选预测运动矢量列表可能包括四个空间候选预测运动矢量或者该列表可能包括少于四个空间候选预测运动矢量。如果列表包括四个空间候选预测运动矢量(904,是),则视频解码器考虑时间候选预测运动矢量(906)。时间候选预测运动矢量可对应于不同于当前图像的图像的co-locatedpu的运动信息。如果时间候选预测运动矢量可用且不同于前四个空间候选预测运动矢量,则视频解码器将时间候选预测运动矢量指派到索引4。如果时间候选预测运动矢量不可用或与前四个空间候选预测运动矢量中的一者相同,则视频解码器不将所述时间候选预测运动矢量包括于候选预测运动矢量列表中。因此,在视频解码器考虑时间候选预测运动矢量(906)之后,候选预测运动矢量列表可能包括五个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量和框904处考虑的时间候选预测运动矢量)或可能包括四个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量)。如果候选预测运动矢量列表包括五个候选预测运动矢量(908,是),则视频解码器完成构建列表。

如果候选预测运动矢量列表包括四个候选预测运动矢量(908,否),则视频解码器可考虑第五空间候选预测运动矢量(910)。第五空间候选预测运动矢量可(例如)对应于候选预测运动矢量位置252e。如果位置252e处的候选预测运动矢量可用且不同于位置252a、252b、252c和252d处的候选预测运动矢量,则视频解码器可将第五空间候选预测运动矢量添加到候选预测运动矢量列表,第五空间候选预测运动矢量经指派到索引4。如果位置252e处的候选预测运动矢量不可用或并非不同于候选预测运动矢量位置252a、252b、252c和252d处的候选预测运动矢量,则视频解码器可不将位置252处的候选预测运动矢量包括于候选预测运动矢量列表中。因此在考虑第五空间候选预测运动矢量(910)之后,列表可能包括五个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量和框910处考虑的第五空间候选预测运动矢量)或可能包括四个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量)。

如果候选预测运动矢量列表包括五个候选预测运动矢量(912,是),则视频解码器完成产生候选预测运动矢量列表。如果候选预测运动矢量列表包括四个候选预测运动矢量(912,否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包括五个候选预测运动矢量(916,是)为止。

如果在视频解码器考虑前四个空间候选预测运动矢量之后,列表包括少于四个空间候选预测运动矢量(904,否),则视频解码器可考虑第五空间候选预测运动矢量(918)。第五空间候选预测运动矢量可(例如)对应于候选预测运动矢量位置252e。如果位置252e处的候选预测运动矢量可用且不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则视频解码器可将第五空间候选预测运动矢量添加到候选预测运动矢量列表,第五空间候选预测运动矢量经指派到下一可用索引。如果位置252e处的候选预测运动矢量不可用或并非不同于已包括于候选预测运动矢量列表中的候选预测运动矢量中的一者,则视频解码器可不将位置252e处的候选预测运动矢量包括于候选预测运动矢量列表中。视频解码器可接着考虑时间候选预测运动矢量(920)。如果时间候选预测运动矢量可用且不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则视频解码器可将所述时间候选预测运动矢量添加到候选预测运动矢量列表,所述时间候选预测运动矢量经指派到下一可用索引。如果时间候选预测运动矢量不可用或并非不同于已包括于候选预测运动矢量列表中的候选预测运动矢量中的一者,则视频解码器可不将所述时间候选预测运动矢量包括于候选预测运动矢量列表中。

如果在考虑第五空间候选预测运动矢量(框918)和时间候选预测运动矢量(框920)之后,候选预测运动矢量列表包括五个候选预测运动矢量(922,是),则视频解码器完成产生候选预测运动矢量列表。如果候选预测运动矢量列表包括少于五个候选预测运动矢量(922,否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包括五个候选预测运动矢量(916,是)为止。

根据本申请的技术,可在空间候选预测运动矢量和时间候选预测运动矢量之后人工产生额外合并候选预测运动矢量以使合并候选预测运动矢量列表的大小固定为合并候选预测运动矢量的指定数目(例如前文图9的可行的实施方式中的五个)。额外合并候选预测运动矢量可包括示例性的经组合双向预测性合并候选预测运动矢量(候选预测运动矢量1)、经缩放双向预测性合并候选预测运动矢量(候选预测运动矢量2),和零向量merge/amvp候选预测运动矢量(候选预测运动矢量3)。

图10为本申请实施例中将经过组合的候选运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图。经组合双向预测性合并候选预测运动矢量可通过组合原始合并候选预测运动矢量而产生。具体来说,原始候选预测运动矢量中的两个候选预测运动矢量(其具有mvl0和refidxl0或mvl1和refidxl1)可用以产生双向预测性合并候选预测运动矢量。在图10中,两个候选预测运动矢量包括于原始合并候选预测运动矢量列表中。一候选预测运动矢量的预测类型为列表0单向预测,且另一候选预测运动矢量的预测类型为列表1单向预测。在此可行的实施方式中,mvl0_a和ref0是从列表0拾取,且mvl1_b和ref0是从列表1拾取,且接着可产生双向预测性合并候选预测运动矢量(其具有列表0中的mvl0_a和ref0以及列表1中的mvl1_b和ref0)并检查其是否不同于已包括于候选预测运动矢量列表中的候选预测运动矢量。如果其不同,则视频解码器可将双向预测性合并候选预测运动矢量包括于候选预测运动矢量列表中。

图11为本申请实施例中将经过缩放的候选运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图。经缩放双向预测性合并候选预测运动矢量可通过缩放原始合并候选预测运动矢量而产生。具体来说,来自原始候选预测运动矢量的一候选预测运动矢量(其可具有mvlx和refidxlx)可用以产生双向预测性合并候选预测运动矢量。在图11的可行的实施方式中,两个候选预测运动矢量包括于原始合并候选预测运动矢量列表中。一候选预测运动矢量的预测类型为列表0单向预测,且另一候选预测运动矢量的预测类型为列表1单向预测。在此可行的实施方式中,mvl0_a和ref0可从列表0拾取,且ref0可复制到列表1中的参考索引ref0′。接着,可通过缩放具有ref0和ref0′的mvl0_a而计算mvl0′_a。缩放可取决于poc距离。接着,可产生双向预测性合并候选预测运动矢量(其具有列表0中的mvl0_a和ref0以及列表1中的mvl0′_a和ref0′)并检查其是否为重复的。如果其并非重复的,则可将其添加到合并候选预测运动矢量列表。

图12为本申请实施例中将零运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图。零向量合并候选预测运动矢量可通过组合零向量与可经参考的参考索引而产生。如果零向量候选预测运动矢量并非重复的,则可将其添加到合并候选预测运动矢量列表。对于每一产生的合并候选预测运动矢量,运动信息可与列表中的前一候选预测运动矢量的运动信息比较。

在一种可行的实施方式中,如果新产生的候选预测运动矢量不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则将所产生的候选预测运动矢量添加到合并候选预测运动矢量列表。确定候选预测运动矢量是否不同于已包括于候选预测运动矢量列表中的候选预测运动矢量的过程有时称作修剪(pruning)。通过修剪,每一新产生的候选预测运动矢量可与列表中的现有候选预测运动矢量比较。在一些可行的实施方式中,修剪操作可包括比较一个或多个新候选预测运动矢量与已在候选预测运动矢量列表中的候选预测运动矢量和不添加为已在候选预测运动矢量列表中的候选预测运动矢量的重复的新候选预测运动矢量。在另一些可行的实施方式中,修剪操作可包括将一个或多个新候选预测运动矢量添加到候选预测运动矢量列表且稍后从所述列表移除重复候选预测运动矢量。应理解,在另一些可行的实施方式中,可以不进行上述修剪的步骤。

在上述图5-7、图9-12等各种可行的实施方式中,空间候选预测模式示例性的来自图8所示的252a至252e的五个位置,即与待处理图像块邻接的位置。在上述图5-7、图9-12等各种可行的实施方式的基础上,在一些可行的实施方式中,空间候选预测模式示例性的还可以包括与待处理图像块相距预设距离以内,但不与待处理图像块邻接的位置。示例性的,该类位置可以如图13中的252f至252j所示。应理解,图13为本申请实施例中编码单元及与其关联的相邻位置图像块的一种示例性示意图。与所待处理图像块处于同一图像帧且处理所述待处理图像块时已完成重建的不与所述待处理图像块相邻的图像块所述的位置均在此类位置的范围内。

jvet-k0286、jvet-k0198和jvet-k0339等提案中提出了在融合候选者列表中加入非相邻空间融合候选者(non-adjacentspatialmergecandidate)的方法,增加了merge/skip(合并/跳跃)模式的融合候选者数量,提高预测效率。

jvet-k0286提案中融合候选者列表的构造方法如下:

步骤1:将与当前块空域相邻的空间融合候选者(spatialmergecandidate)加入当前块的融合候选者列表,其方法与hevc中的方法相同。空域相邻的空间融合候选者为图14中a、b、c、d、e块的运动信息,他们加入融合候选者列表的顺序为a、b、c、d、e。图14中a、b、c、…、i等块均为4x4块。

步骤2:将当前块的时域融合候选者(temporalmergecandidate)加入当前块的融合候选者列表,其方法与hevc中的方法相同。

步骤3:将与当前块空域不相邻的非相邻空间融合候选者(non-adjacentspatialmergecandidate)加入当前块的融合候选者列表。非相邻空间融合候选者为图14中a1、b1、c1、d1、e1、a2、b2、c2、d2、e2、f、g、h、i块的运动信息;非相邻空间融合候选者加入融合候选者列表的顺序为a1、b1、c1、d1、e1、f、g、h、i、a2、b2、c2、d2、e2。作为一种简化方案,jvet-k0286提案中还提出非相邻空间融合候选者只包含a1、b1、c1、d1、e1、a2、b2、c2、d2、e2块的运动信息。

步骤4:加入其它类型的融合候选者,如双向预测融合候选者(bi-predictivemergecandidate)和零运动矢量融合候选者(zeromotionvectormergecandidate)。

需要说明的是,融合候选者列表的长度为预固定值m,例如6或8或10等。当融合候选者列表中的融合候选者个数达到预设固定值m时,融合候选者列表的构造即已完成,剩余的融合候选者不再加入融合候选者列表。另外,如果一个融合候选者与融合候选者列表中已存在的融合候选者相同,则这个融合候选者可能不加入融合候选者列表,以避免融合候选者列表中出现重复的融合候选者,造成信息冗余。

jvet-k0339中使用了更多的非相邻空间融合候选者,如图15所示。图15中,块1至5为传统的空间融合候选者,块6至48为非相邻空间融合候选者。

解码时,若当前块使用merge/skip(合并/跳跃)模式,则从码流中解析融合索引(mergeindex),并从上述方法构造的融合候选者列表中选择融合索引(mergeindex)对应的融合候选者,得到当前块的运动信息。根据当前块的运动信息,进行运动补偿,得到当前块的预测图像。将当前块的预测图像与当前块的残差图像相加,得到当前块的重建图像,从而完成当前块的解码。

本申请提出一种利用非相邻空间融合候选者构造融合候选者列表的方法,所使用的非相邻空间融合候选者来自于当前块所在的编码树单元上侧一行或左侧一列的运动信息,且非相邻空间融合候选者的数目较少,因此可以使得构造融合候选者列表的方法的复杂度较低。

本申请中提出的构造融合候选者列表的方法可以涉及合并/跳跃(merge/skip)模式中融合候选者列表(mergecandidatelist)的构造处理。应理解,本申提出的构造融合候选者列表的方法也可以用于包括amvp技术在内的其他候选预测运动信息集合的构成处理。

本申请提出的融合候选者列表构造方法可以应用于视频编解码器,例如视频通信系统中的视频编解码器。本申请提出的融合候选者列表构造方法,它可以应用于帧间预测模式的运动信息导出,在编码端和解码端构造融合候选者列表的处理可以是相同的。

本申请实施例的融合候选者列表构造方法的第一种可行的实施方式中,可以包括以下4个步骤。其中,融合候选者列表长度可以预设为n,即构造完成后得到的融合候选者列表中包含的融合候选者个数为n,例如n=5、6、8或10等。

步骤1:将与当前块空域相邻的空间融合候选者加入当前块的融合候选者列表。

当前块也可以称为待处理图像块,当前块可以是编码树单元划分得到的编码单元或预测单元。

此步骤的具体实现方式可参见本申请的前述相关章节,例如,可以参考hevc中获取空间融合候选者并将空间融合候选者加入融合候选者列表的方法。空域相邻的空间融合候选者可以为图14中的a、b、c、d、e块的运动信息,他们加入融合候选者列表的顺序为可以为a、b、c、d、e。

若当前块的左上角坐标为p0=(x0,y0),当前块的宽为w,高为h,则a块的左上角坐标为pa=(x0-4,y0+h-4);b块的左上角坐标为pb=(x0+w-4,y0-4);c块的左上角坐标为pc=(x0+w,y0-4);d块的左上角坐标为pd=(x0-4,y0+h);e块的左上角坐标为pe=(x0-4,y0-4)。其中,a、b、c、d、e块的示例性大小为4*4。

通常,运动信息以4*4块为单位存储在运动矢量场中,一个块的运动信息可由这个块覆盖的一个像素点的坐标在运动矢量场中找到对应的运动信息。例如,若块的左上角坐标为(x,y),则该块在运动矢量场中的对应元素的坐标为(x>>2,y>>2),“>>”表示右移操作。

步骤2:将当前块的时域融合候选者加入当前块的融合候选者列表。

此步骤的具体实现方式可参见本申请的前述相关章节,例如,可以参考hevc中获取时间融合候选者并将时间融合候选者加入融合候选者列表的方法。当前块的时间融合候选者也可以是vtm参考软件中的atmvp融合候选者。

步骤3:根据当前块的位置,从当前块所在的ctu的上侧相邻块和左侧相邻块中获取非相邻空间融合候选者,并将非相邻空间融合候选者加入当前块的融合候选者列表。

记当前块的左上角坐标为p0=(x0,y0),当前块所在ctu的左上角坐标为p1=(x1,y1),当前块的宽为w0,高为h0,ctu的宽为w1,高为h1。运动信息若以4*4块为基本单元存储,则ctu的上侧相邻块和左侧相邻块可以为4*4块。

获取非相邻空间融合候选者时,如图16所示,可以从当前块所在的ctu的左侧相邻块中选择一个块a1,并将a1的运动信息作为非相邻空间融合候选者ca1;从当前块所在的ctu的上侧相邻块中选择一个块b1,并将b1的运动信息作为非相邻空间融合候选者cb1。

a1块覆盖坐标pa1,坐标pa1位于当前块左方与ctu左侧相邻块相交的区域。或者,可以说,记pa1=(xa,ya)时,xa要小于x1,ya要大于或等于y0,且ya要小于y0+h0。例如:pa1=(x1-1,y0+h0-1),或者pa1=(x1-1,y0+(h0/2)),或者pa1=(x1-1,y0)。相应的,pa1=(x1-1,y0+h0-1)时,a1块左上角坐标可以为(x1-4,y0+h0-4)。

b1块覆盖坐标pb1,坐标pb1位于当前块上方与ctu上侧相邻块相交的区域。或者,可以说,记pb1=(xb,yb)时,yb要小于y1,xb要大于或等于x0,且xb要小于x0+w0。例如:pb1=(x0+w0-1,y1-1),或者pb1=(x0+(w0/2),y1-1),或者pb1=(x0,y1-1)。

将ca1、cb1分别加入当前块的融合候选者列表,加入次序可以为ca1、cb1或者可以为cb1、ca1。

将一个融合候选者加入融合候选者列表的方式可以参考现有技术。例如,将a1块(或b1块)的运动信息,即融合候选者ca1(或cb1)与融合候选者列表中已有的一个或多个融合候选者进行比较,如果融合候选者ca1(或cb1)与融合候选者列表中已有的融合候选者相同,则将该融合候选者ca1(或cb1)标记为不可得;否则,可以将该融合候选者ca1(或cb1)标记为可得。如果融合候选者ca1(或cb1)不可得,则融合候选者ca1(或cb1)不加入融合候选者列表;如果融合候选者ca1(或cb1)可得,将该融合候选者融合候选者ca1(或cb1)加入该融合候选者列表。

作为一种改进的方法,还可以根据当前块在ctu中的位置,自适应地选择将ca1、cb1加入融合候选者列表。例如,如果(x0-x1)≤(y0-y1),加入列表的顺序可以为先ca1后cb1;否则,加入列表的顺序可以为先cb1后ca1。又例如,如果(x0-x1)≤(y0-y1),加入列表的顺序可以为先cb1后ca1;否则,加入列表的顺序可以为先ca1后cb1。

步骤4:向当前块的融合候选者列表中加入其它类型的融合候选者。例如,向当前块的融合候选者列表中加入双向预测融合候选者(bi-predictivemergecandidate)和零运动矢量融合候选者(zeromotionvectormergecandidate)。

此步骤的具体实现方式可参见本申请的前述相关章节。例如,可以参考hevc中获取双向预测融合候选者和零运动矢量融合候选者并将它们加入融合候选者列表的方法。

解码当前块时,若当前块使用的是合并/跳跃(skip/merge)模式,则解码器从码流中解析融合索引(mergeindex),并从上述方法构造的融合候选者列表中选择该融合索引(mergeindex)对应的融合候选者,从而得到当前块的运动信息;然后,根据当前块的运动信息,进行运动补偿,得到当前块的预测图像;再将当前块的预测图像与当前块的残差图像相加,得到当前块的重建图像,从而完成当前块的解码。

需要说明的是,本申请并不限定使用除步骤3获取的非相邻空间融合候选者以外的其它融合候选者,也不限定各个融合候选者加入融合候选者列表的顺序,也不限定融合候选者是否可以加入融合候选者列表的判断方法。示例性的,本申请的前述相关章节介绍了其他各步骤的可行的实施方式。

本申请实施例从ctu的上侧相邻块和左侧相邻块中选择运动信息作为非相邻空间融合候选者,访问的空域运动信息较少,复杂度较低。

本申请实施例的融合候选者列表构造方法的第二种可行的实施方式中,可以包括4个步骤。这4个步骤中的步骤1、步骤2和步骤4与第一种可能的实施方式中的步骤1、步骤2和步骤4相同或相似,此处不再赘述。下面主要介绍这4个步骤中的步骤3。

步骤3:根据当前块的位置,从当前块的ctu的上侧相邻块和左侧相邻块中获取3个非相邻空间融合候选者,将这3个非相邻空间融合候选者加入当前块的融合候选者列表。

记当前块的左上角坐标为p0=(x0,y0),当前块所在的ctu的左上角坐标为p1=(x1,y1),当前块的宽为w0,高为h0,ctu的宽为w1,高为h1。运动信息若以4*4块为基本单元存储,则ctu的上侧相邻块和左侧相邻块可以为4*4块。

例如,如图17所示,从当前块所在的ctu的左侧相邻块中选择一个块a2,将a2的运动信息作为非相邻空间融合候选者ca2;从当前块所在的ctu的上侧相邻块中选择一个块b2,将b2的运动信息作为非相邻空间融合候选者cb2;从当前块所在的ctu的上侧相邻块中选择一个块c2,块c2位于当前块的左上方,将c2的运动信息作为非相邻空间融合候选者cc2。应理解,块c2也可以是从当前块所在的ctu的左侧相邻块中选择的,本申请实施例对此不作限制。

其中,a2块可以覆盖坐标pa2,坐标pa2位于当前块左方与ctu左侧相邻块相交的区域。或者,可以说,记pa2=(xa,ya)时,xa要小于x1,ya要大于或等于y0,且ya要小于y0+h0。例如:pa2=(x1-1,y0+h0-1),或者pa2=(x1-1,y0+(h0/2)),或者pa2=(x1-1,y0)。

其中,b2块可以覆盖坐标pb2,坐标pb2位于当前块上方与ctu上侧相邻块相交的区域。或者,可以说,记pb2=(xb,yb)时,yb要小于y1,xb要大于或等于x0,且xb要小于x0+w0。例如:pb2=(x0+w0-1,y1-1),或者pb2=(x0+(w0/2),y1-1),或者pb2=(x0,y1-1)。

其中,c2块可以覆盖坐标pc2,坐标pc2位于当前块左上方与ctu左侧相邻块或上侧相邻块相交的区域。或者,可以说,记pc2=(xc,yc)时,xc要小于x0,且xc要大于或等于x1-1,yc要小于y0,且yc要大于或等于y1-1。例如:如果(x0-x1)≥(y0-y1),则pc2=(x0-y0+y1-1,y1-1);如果(x0-x1)<(y0-y1),则pc2=(x1-1,y0-x0+x1-1)。

可以将ca2、cb2、cc2分别加入当前块的融合候选者列表。例如,依次将ca2、cb2、cc2加入当前块的融合候选者列表,或者,依次将cc2、ca2、cb2加入当前块的融合候选者列表。例如,如果(x0-x1)≤(y0-y1),加入列表的顺序为ca2、cb2、cc2;否则,加入列表的顺序为cb2、ca2、cc2。

本申请实施例的融合候选者列表构造方法的第三种可行的实施方式中,可以包括4个步骤。这4个步骤中的步骤1、步骤2和步骤4与前面第一种可能的实施方式中的步骤1、步骤2和步骤4相同或相似,此处不再赘述。下面主要介绍这4个步骤中的第3个步骤。

步骤3:根据当前块的位置,从当前块所在的ctu的上侧相邻块和左侧相邻块中获取5个非相邻空间融合候选者,将这5个非相邻空间融合候选者加入当前块的融合候选者列表。

记当前块的左上角坐标为p0=(x0,y0),当前块所在ctu的左上角坐标为p1=(x1,y1),当前块的宽为w0,高为h0,ctu的宽为w1,高为h1。运动信息若以4*4块为基本单元存储,则ctu的上侧相邻块和左侧相邻块可以为4*4块。

例如,如图18所示,从当前块所在的ctu的左侧相邻块中选择一个块a3,将a3的运动信息作为非相邻空间融合候选者ca3;从当前块所在的ctu的上侧相邻块中选择一个块b3,将b3的运动信息作为非相邻空间融合候选者cb3;从当前块所在的ctu的上侧相邻块或左侧相邻块中选择一个块c3,块c3位于当前块的左上方,将c3的运动信息作为非相邻空间融合候选者cc3;从当前块所在的ctu的左侧相邻块中选择一个块d3,块d3位于当前块的左下方,将d3的运动信息作为非相邻空间融合候选者cd3;从当前块所在的ctu的上侧相邻块中选择一个块e3,块e3位于当前块的右上方,将e3的运动信息作为非相邻空间融合候选者ce3。

其中,a3块可以覆盖坐标pa3,坐标pa3位于当前块左方与ctu左侧相邻块相交的区域。或者,可以说,记pa3=(xa,ya)时,xa要小于x1,ya要大于或等于y0,且ya要小于y0+h0。例如pa3=(x1-1,y0+h0-1),或者pa3=(x1-1,y0+(h0/2)),或者pa3=(x1-1,y0)。

其中,b3块可以覆盖坐标pb3,坐标pb3位于当前块上方与ctu上侧相邻块相交的区域。或者,可以说,记pb3=(xb,yb)时,yb要小于y1,xb要大于或等于x0,且xb要小于x0+w0。例如,pb3=(x0+w0-1,y1-1),或者pb3=(x0+(w0/2),y1-1),或者pb3=(x0,y1-1)。

其中,c3块可以覆盖坐标pc3,坐标pc3位于当前块左上方与ctu上侧相邻块或左侧相邻块相交的区域。或者,可以说,记pc3=(xc,yc)时,xc要小于x0,且xc要大于或等于x1-1,yc要小于y0,且yc要大于或等于y1-1。例如:如果(x0-x1)≥(y0-y1),则pc3=(x0-y0+y1-1,y1-1),如果(x0-x1)<(y0-y1),则pc3=(x1-1,y0-x0+x1-1)。

其中,d3块可以覆盖坐标pd3,坐标pd3位于当前块左下方与ctu左侧相邻块相交的区域。或者,可以说,记pd3=(xd,yd)时,xd要小于x1,yd要大于或等于y0+h0。例如pd3=(x1-1,y0+h0+x0-x1),pd3=(x1-1,y0+h0+((x0-x1)/2)),或者pd3=(x1-1,min(y0+h0+x0-x1,y1+h1-1));其中min(a,b)为取a和b中的较小值。

其中,e3块可以覆盖坐标pe3,坐标pe3位于当前块右上方与ctu上侧相邻块相交的区域或者,可以说,记pe3=(xe,ye)时,xe要大于或等于x0+w0,ye要小于y1。例如pe3=(x0+w0+y0-y1,y1-1),或者pe3=(x0+w0+((y0-y1)/2),y1-1),或者pe3=(min(x0+w0+y0-y1,x1+w1-1),y1-1),或者pe3=(min(x0+w0+y0-y1,x1+(w1*3/2)),y1-1)。

将ca3、cb3、cc3、cd3、ce3分别加入当前块的融合候选者列表。例如,可以依次将ca3、cb3、cc3、cd3、ce3加入当前块的融合候选者列表,或者,可以依次将ca3、cb3、cc3、ce3、cd3加入当前块的融合候选者列表。

或者,可以结合当前块的左上角的坐标和当前块所在ctu的左上角的坐标来确定ca3、cb3、cc3、cd3、ce3加入当前块的融合候选者列表的顺序。

例如,如果(x0-x1)≤(y0-y1),则加入列表的顺序为ca3、cb3、cc3、cd3、ce3;否则,加入列表的顺序为cb3、ca3、cc3、ce3、cd3。

如果(x0-x1)<(w1/2)并且(y0-y1)<(h1/2),则加入顺序为ca3、cb3、cc3、ce3、cd3;

如果(x0-x1)≥(w1/2)并且(y0-y1)<(h1/2),则加入顺序为cb3、cc3、ce3、ca3、cd3;

如果(x0-x1)<(w1/2)并且(y0-y1)≥(h1/2),则加入顺序为ca3、cc3、cd3、cb3、ce3;

如果(x0-x1)≥(w1/2)并且(y0-y1)≥(h1/2),则加入顺序为ca3、cb3、cc3、ce3、cd3。

本申请实施例根据当前块的位置,从ctu上侧相邻块和左侧相邻块中获取非相邻空间融合候选者,将非相邻空间融合候选者加入当前块的融合候选者列表。本申请实施例的方案访问的空域运动信息较少,复杂度较低,并能保持大部分编码性能。此外,根据当前块的位置,选择不同的次序,将非相邻空间融合候选者加入当前块的融合候选者列表。在对融合候选者在融合候选者列表中的标识进行变长编码时,在一种可行的实施方式中,对先加入融合候选者列表的融合候选者的标识信息(一般具有更高概率成为最终编码/解码的预测运动信息)采用更短的码字进行表示,可以提高编码效率。

本申请还提出了一种图像块的运动信息的预测方法。图19示例性的给出了本申请实施例的预测方法流程。该预测方法1900可以包括s1901、s1902和s1903。

s1901,确定与待处理图像块具有预设位置关系的至少一个目标像素点,所述目标像素点与所述待处理图像块所在的编码树单元的上边沿所在直线或左边沿所在直线相邻接且所述目标像素点位于所述编码树单元的外部。

其中,记编码树单元左上角的坐标为pm=(xm,ym),编码树单元的宽为w,高为h,其中xm为水平坐标,ym为竖直坐标,则编码树单元的上边沿是指包含坐标pg=(xg,yg)的区域,其中xm≤xg≤xm+w-1,yg=ym;编码树单元的左边沿是指包含坐标ph=(xh,yh)的区域,其中ym≤yh≤ym+h-1,xg=xm。

目标像素点与所述待处理图像块所在的编码树单元的上边沿所在直线相邻接是指目标像素点的竖直坐标与待处理图像块所在的编码树单元的上边沿的竖直坐标之差小于或等于预设的第一阈值;目标像素点与所述待处理图像块所在的编码树单元的左边沿所在直线相邻接是指目标像素点的水平坐标与待处理图像块所在的编码树单元的左边沿的水平坐标之差小于或等于预设的第二阈值。第一阈值与第二阈值可以相同。

第一阈值与第二阈值的一种示例为1。此时,目标像素点的竖直坐标与待处理图像块所在的编码树单元的上边沿的竖直坐标之差等于1,目标像素点的水平坐标与待处理图像块所在的编码树单元的左边沿的水平坐标之差等于1。

所述目标像素点位于所述编码树单元的外部是指所述目标像素点不是所述编码树单元内的像素点。

本申请实施例中的至少一个可以理解为一个或多个,即可以确定与待处理图像块具有预设位置关系的一个目标像素点或多个目标像素点。确定多个目标像素点时,这多个目标像素点可以属于同一个编码单元,或者,这多个目标像素点中不同的像素点可以属于不同的编码单元。

后续内容将会详细介绍目标像素点与待处理图像块之间的各种预设位置关系。

s1902,将所述至少一个目标像素点对应的运动信息加入所述待处理图像块的候选运动信息的集合。

在s1901中确定至少一个目标像素点后,可以确定所述至少一个目标像素点中每个目标像素点对应的运动信息。

每个目标像素点对应的运动信息可以包括所述目标像素点的帧间预测方向、参考帧、运动矢量等多种信息。

可选地,所述至少一个目标像素点对应的运动信息所加入的所述候选运动信息的集合中可以包括所述待处理图像块的预设位置的空域相邻块和/或时域相关位置块的运动信息。

例如,在s1902之前,可以将所述待处理图像块的预设位置的空域相邻块和/或时域相关位置块的运动信息加入所述待处理图像块的候选运动信息的集合。应理解,也可以在s1902之后,再将所述待处理图像块的预设位置的空域相邻块和/或时域相关位置块的运动信息加入所述待处理图像块的候选运动信息的集合。本申请对此不作限制。

所述待处理图像块的候选运动信息的集合的一种示例为融合候选者列表,相应地,每个所述目标像素点对应的运动信息的一种示例为一个融合候选者对应的运动信息。

s1903,从所述候选运动信息的集合中确定目标运动信息,所述目标运动信息用于预测所述待处理图像块的运动信息。

应理解,此处所述的候选运动信息的集合是指包括s1902中加入所述至少一个目标像素点对应的运动信息的集合。

相比于现有技术,申请方案从编码树单元ctu的上侧相邻块和左侧相邻块中选择运动信息作为候选预测运动信息,访问的空域运动信息较少,复杂度较低。

在一些可能的实现方式中,该方法可以用于解码所述待处理图像块。相应地,所述从所述候选运动信息的集合中确定目标运动信息,可以包括:解析码流以获得标识信息;根据所述标识信息确定所述目标运动信息。

该标识信息的一种示例为融合序号。这种情况下,根据所述标识信息确定所述目标运动信息的一种示例为从所述候选运动信息的集合中选择该融合序号对应的融合候选者,该融合候选者对应的运动信息即为目标运动信息。

在另一些可能的实现方式中,所述方法可以用于编码所述待处理图像块。相应地,所述从所述候选运动信息的集合中确定目标运动信息,可以包括:从所述候选运动信息的集合中选择编码代价较小的运动信息作为目标运动信息。

编码代价的计算方式一种示例包括:将编码运动信息的比特数和使用这组运动信息对图像块编码后产生的失真进行加权平均计算。

例如,可以从所述候选运动信息的集合中选择编码代价小于或等于预设的编码代价阈值的运动信息作为目标运动信息。

例如,可以从所述候选运动信息的集合中选择编码代价最小的运动信息作为目标运动信息。

在该可能的实现方式中,在所述确定从所述候选运动信息的集合中选择编码代价较小的运动信息作为目标运动信息之后,还可以包括:编码所述目标运动信息的标识信息。

其中,该目标运动信息为融合候选者的运动信息时,目标运动信息的标识信息的一种示例为该目标运动信息对应的融合候选者的融合索引。

在一些可行的实施方式中,所述目标像素点可以包括第一像素点,其中,所述第一像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第一像素点位于以第一垂足和第二垂足为端点的线段上,所述第一垂足为所述待处理图像块的左上角的像素点在所述第一像素点所在直线上的垂直投影点,所述第二垂足为所述待处理图像块的左下角的像素点在所述第一像素点所在直线上的垂直投影点。

例如,如图22所示,第一垂足m为待处理图像块的左上角的像素点在直线l1上的垂直投影点,直线l1与编码树单元的左边沿所在的直线平行;第二垂足n为待处理图像块的左下角的像素点在直线l1上的垂直投影点,第一像素点位于线段mn上。

可选地,可以将多个不同位置的第一像素点确定为目标像素点,这多个不同位置的第一像素点可以是同一个编码单元中的像素点。

在一些可行的实施方式中,所述目标像素点可以包括第二像素点,其中,所述第二像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第二像素点位于以第三垂足和第四垂足为端点的线段上,所述第三垂足为所述待处理图像块的左上角的像素点在所述第二像素点所在直线上的垂直投影点,所述第四垂足为所述待处理图像块的右上角的像素点在所述第二像素点所在直线上的垂直投影点。

例如,如图23所示,第三垂足p为待处理图像块的左上角的像素点在直线l2上的垂直投影点,直线l2与编码树单元的上边沿所在的直线平行;第四垂足q为待处理图像块的右上角的像素点在直线l2上的垂直投影点,第二像素点位于线段pq上。

可选地,可以将多个不同位置的第二像素点确定为目标像素点,这多个不同位置的第二像素点可以是同一个编码单元中的像素点。

可选地,可以将多个不同位置的第一像素点和多个不同位置的第二像素点确定为目标像素点。这多个不同位置的第一像素点可以属于同一个编码单元,这多个不同位置的第二像素点可以属于同一个编码单元。

本申请实施例中,如图24所示,可以将当前块所在的编码树单元划分为左半部分、和右半部分。其中,左半部分是指将编码树单元竖直划分成二个区域中位于左方的区域,右半部分是两个区域中位于右方的区域,两个区域的宽为编码树单元的宽的一半,两个区域的高为编码树单元的高。

应理解,此处所述一半不限定为绝对的一半,也可以是近似一半。例如,编码树单元的宽不能均分的情况下,两个区域的宽尽量趋向于编码树单元的宽的一半。

本申请中,左半部分也可以称为左下半部分,右半部分也可以称为右下半部分。

在一些可行的实施方式中,例如,将第一像素点和第二像素点确定为目标像素点的情况下,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度。

当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,由于待处理图像块与第二像素点的距离小于待处理图像块与第一像素点的距离,相关性更高,选中的概率更大,因此,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度,可提高编码效率。当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,基于类似的原理,也可以提高编码效率。

在一些可行的实施方式中,所述目标像素点可以包括第三像素点,其中,当所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行时,所述第三像素点位于以所述第一垂足和参考交点为端点的线段上,所述参考交点为所述第一像素点所在直线和所述第二像素点所在直线的交点;当所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行时,所述第三像素点位于以所述第三垂足和所述参考交点为端点的线段上。

例如,如图25所示,参考交点为直线l1与直线l2的交点o。图25中与图23和图24中相同的附图标记表示相同的含义。

其中,第三像素点可以位于线段mo上,或者,第三像素点可以位于线段p上。也就是说,可以将线段mo上的一个或多个像素点确定为目标像素点,或者,可以将线段po上的一个或多个像素点确定为目标像素点。

将线段mo上多个像素点确定为目标像素点时,这多个像素点可以属于同一个编码单元;将线段po上的多个像素点确定为目标像素点,这多个像素点可以属于同一个编码单元。

可选地,目标像素点包括一个或多个第三像素点的情况下,还可以包括一个或多个第一像素点,或者还可以包括一个或多个第二像素点,或者还可以包括一个或多个第一像素点以及一个或多个第二像素点。

在一些可行的实施方式中,例如,目标像素点包括第一像素点、第二像素点和第三像素点的情况下,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度。这种码字分配方式具有较高的编码效率。

在一些可行的实施方式中,例如,所述目标像素点包括第三像素点的情况下,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行。

以图25为例,若所述待处理图像块的左上角的像素点位于其所在的编码树单元的右上半部分,则第三像素点位于线段op上;若所述待处理图像块的左上角的像素点位于其所在的编码树单元的左上半部分,则第三像素点位于线段om上。

在一些可行的实施方式中,所述目标像素点可以包括第四像素点,其中,所述第四像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第四像素点位于以所述第二垂足为端点且以从所述第一垂足指向所述第二垂足为方向的射线上。

以图25所示,第四像素点可以位于射线nk上,即所述目标像素点可以包括射线nk上的像素点。

可选地,所述目标像素点可以在包括第一像素点、第二像素点或第三像素点中一种或多种像素点的情况下,还包括第四像素点。

在一些可行的实施方式中,所述目标像素点还包括第五像素点,其中,所述第五像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第五像素点位于以所述第四垂足为端点且以从所述第三垂足指向所述第四垂足为方向的射线上。

以图25所示,第五像素点可以位于射线qs上,即所述目标像素点可以包括射线qs上的像素点。

可选地,所述目标像素点可以在包括第一像素点、第二像素点、第三像素点或第四像素点中一种或多种像素点的情况下,还包括第五像素点。

在一些可行的实施方式中,例如,所述目标像素点既包括第四像素点,又包括第五像素点的情况下,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度。这种码字分配方式具有较高的编码效率。

本申请实施例中,如图26所示,可以将当前块所在的编码树单元划分为左上四分之一部分、左下四分之一部分、右上四分之一部分和右下四分之一部分。其中,左上四分之一部分是指以四叉树划分得到的四个区域中的左上区域,左下四分之一部分是指以四叉树划分得到的四个区域中的左下区域,右上四分之一部分是指以四叉树划分得到的四个区域中的右上区域,右下半部分是指以四叉树划分得到的四个区域中的右下区域。以四叉树划分得到的四个区域的宽均为编码树单元的宽的一半,四个区域的高均为编码树单元的高的一半。

应理解,此处所述一半不限定为绝对的一半,也可以是近似一半。例如,编码树单元的宽和高不能均分的情况下,这四个区域中每个区域的宽尽量趋向于编码树单元的宽的一半,这四个区域中每个区域的高尽量趋向于编码树单元的一半。

在一些可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的左上四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右上四分之一部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度。这种码字分配方式具有较高的编码效率

在一些可行的实施方式中,以水平方向向右为直角坐标系的横轴正方向,以竖直方向向下为所述直角坐标系的纵轴正方向,以(x0,y0)为所述待处理图像块的左上角像素点的坐标,以(x1,y1)为所述编码树单元的左上角像素点的坐标,所述第一像素点的坐标包括:(x1-1,y0+h0-1),或者(x1-1,y0+h0/2),或者(x1-1,y0),其中,h0为所述待处理图像块的高。

以图22为例,第一像素点可以是点m对应的像素点,或者,第一像素点可以是点n对应的像素点,或者,第一像素点可以是线段mn的终点对应的像素点。

在一些可行的实施方式中,所述第二像素点的坐标包括:(x0+w0-1,y1-1),或者(x0+w0/2,y1-1),或者(x0,y1-1),其中,w0为所述待处理图像块的宽。

以图23为例,第二像素点可以是点q对应的像素点,或者,第二像素点可以是点p对应的像素点,或者,第二像素点可以是线段pq的终点对应的像素点。

在第一些种可行的实施方式中,所述第三像素点的坐标包括:(x0-y0+y1-1,y1-1)或者(x1-1,y0-x0+x1-1)。

在一些可行的实施方式中,当(x0-x1)>=(y0-y1)时,所述第三像素点的坐标包括(x0-y0+y1-1,y1-1);当(x0-x1)<(y0-y1)时,所述第三像素点的坐标包括(x1-1,y0-x0+x1-1)。

在一些可行的实施方式中,所述第四像素点的坐标包括:(x1-1,y0+h0+x0-x1),或者(x1-1,y0+h0+(x0-x1)/2),或者(x1-1,min(y0+h0+x0-x1,y1+h1-1)),其中,h1为所述编码树单元的高。

在一些可行的实施方式中,所述第五像素点的坐标包括:(x0+w0+y0-y1,y1-1),或者(x0+w0+(y0-y1)/2,y1-1),或者(min(x0+w0+y0-y1,x1+w1*3/2),y1-1),或者(min(x0+w0+y0-y1,x1+w1-1),y1-1),其中,w1为所述编码树单元的宽。

本申请实施例中的s1901和s1902的一种具体的实施方式可以参考本申请实施例提出的融合候选者列表构造方法中的步骤3的实现方式,此处不再赘述。

其中,本申请实施例提出的融合候选者列表构造方法中的步骤3中所述的当前块可以为s1901和s1902中所述的待处理图像块,该步骤3中所述的融合候选者列表可以为s1901和s1902中所述的待处理图像块的候选运动信息的集合,该步骤3中所述的融合候选者可以为s1901和s1902中所述的目标像素点对应的运动信息。

图20示例性的给出了本申请实施例的装置框图,具体的:

在本申请实施例提供了一种图像块的运动信息的预测装置2000,包括:获取模块2001,用于确定与待处理图像块具有预设位置关系的至少一个目标像素点,所述目标像素点与所述待处理图像块所在的编码树单元的上边沿所在直线或左边沿所在直线相邻接且所述目标像素点位于所述编码树单元的外部;列表模块2002,用于将所述至少一个目标像素点对应的运动信息加入所述待处理图像块的候选运动信息的集合;索引模块2003,用于从所述候选运动信息的集合中确定目标运动信息,所述目标运动信息用于预测所述待处理图像块的运动信息。

在第一种可行的实施方式中,所述目标像素点包括第一像素点,其中,所述第一像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第一像素点位于以第一垂足和第二垂足为端点的线段上,所述第一垂足为所述待处理图像块的左上角的像素点在所述第一像素点所在直线上的垂直投影点,所述第二垂足为所述待处理图像块的左下角的像素点在所述第一像素点所在直线上的垂直投影点。

在第二种可行的实施方式中,所述目标像素点还包括第二像素点,其中,所述第二像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第二像素点位于以第三垂足和第四垂足为端点的线段上,所述第三垂足为所述待处理图像块的左上角的像素点在所述第二像素点所在直线上的垂直投影点,所述第四垂足为所述待处理图像块的右上角的像素点在所述第二像素点所在直线上的垂直投影点。

在第三种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度。

在第四种可行的实施方式中,所述目标像素点还包括第三像素点,其中,当所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行时,所述第三像素点位于以所述第一垂足和参考交点为端点的线段上,所述参考交点为所述第一像素点所在直线和所述第二像素点所在直线的交点;当所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行时,所述第三像素点位于以所述第三垂足和所述参考交点为端点的线段上。

在第五种可行的实施方式中,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度。

在第六种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,所述第三像素点所在直线与所述编码树单元的上边沿所在的直线平行;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,所述第三像素点所在直线与所述编码树单元的左边沿所在的直线平行。

在第七种可行的实施方式中,所述目标像素点还包括第四像素点,其中,所述第四像素点所在直线与所述编码树单元的左边沿所在的直线平行,所述第四像素点位于以所述第二垂足为端点且以从所述第一垂足指向所述第二垂足为方向的射线上。

在第八种可行的实施方式中,所述目标像素点还包括第五像素点,其中,所述第五像素点所在直线与所述编码树单元的上边沿所在的直线平行,所述第五像素点位于以所述第四垂足为端点且以从所述第三垂足指向所述第四垂足为方向的射线上。

在第九种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的右上半部分时,用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下半部分时,用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度。

在第十种可行的实施方式中,当所述待处理图像块的左上角的像素点位于所述编码树单元的左上四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右上四分之一部分时,用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的左下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度;当所述待处理图像块的左上角的像素点位于所述编码树单元的右下四分之一部分时,用于在所述候选运动信息的集合中表示所述第一像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第二像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第三像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度,且用于在所述候选运动信息的集合中表示所述第五像素点对应的运动信息的码字长度小于或等于用于在所述候选运动信息的集合中表示所述第四像素点对应的运动信息的码字长度。

在第十一种可行的实施方式中,以水平方向向右为直角坐标系的横轴正方向,以竖直方向向下为所述直角坐标系的纵轴正方向,以(x0,y0)为所述待处理图像块的左上角像素点的坐标,以(x1,y1)为所述编码树单元的左上角像素点的坐标,所述第一像素点的坐标包括:(x1-1,y0+h0-1),或者(x1-1,y0+h0/2),或者(x1-1,y0),其中,h0为所述待处理图像块的高。

在第十二种可行的实施方式中,所述第二像素点的坐标包括:(x0+w0-1,y1-1),或者(x0+w0/2,y1-1),或者(x0,y1-1),其中,w0为所述待处理图像块的宽。

在第十三种可行的实施方式中,所述第三像素点的坐标包括:(x0-y0+y1-1,y1-1)或者(x1-1,y0-x0+x1-1)。

在第十四种可行的实施方式中,当(x0-x1)>=(y0-y1)时,所述第三像素点的坐标包括(x0-y0+y1-1,y1-1);当(x0-x1)<(y0-y1)时,所述第三像素点的坐标包括(x1-1,y0-x0+x1-1)。

在第十五种可行的实施方式中,所述第四像素点的坐标包括:(x1-1,y0+h0+x0-x1),或者(x1-1,y0+h0+(x0-x1)/2),或者(x1-1,min(y0+h0+x0-x1,y1+h1-1)),其中,h1为所述编码树单元的高。

在第十六种可行的实施方式中,所述第五像素点的坐标包括:(x0+w0+y0-y1,y1-1),或者(x0+w0+(y0-y1)/2,y1-1),或者(min(x0+w0+y0-y1,x1+w1*3/2),y1-1),或者(min(x0+w0+y0-y1,x1+w1-1),y1-1),其中,w1为所述编码树单元的宽。

在第十七种可行的实施方式中,所述列表模块2002还用于:将所述待处理图像块的预设位置的空域相邻块和/或时域相关位置块的运动信息加入所述待处理图像块的候选运动信息的集合。

在第十八种可行的实施方式中,所述装置2000用于解码所述待处理图像块,所述索引模块2003具体用于:解析码流以获得标识信息;根据所述标识信息确定所述目标运动信息。

在第十九种可行的实施方式中,所述装置2000用于编码所述待处理图像块,所述索引模块2003具体用于:从所述候选运动信息的集合中选择编码代价最小的运动信息作为目标运动信息。

在第二十种可行的实施方式中,所述索引模块2003还用于:编码所述目标运动信息的标识信息。

图21为本申请实施例中的运动信息预测设备2100的一种示意性结构框图。具体的,包括:处理器2101和耦合于所述处理器的存储器2102;所述处理器2101用于执行图19所示的实施例以及各种可行的实施方式。

虽然关于视频编码器100及视频解码器200已描述本申请的特定方面,但应理解,本申请的技术可通过许多其它视频编码和/或编码单元、处理器、处理单元、例如编码器/解码器(codec)的基于硬件的编码单元及类似者来应用。此外,应理解,仅作为可行的实施方式而提供关于图19所展示及描述的步骤。即,图19的可行的实施方式中所展示的步骤无需必定按图19中所展示的次序执行,且可执行更少、额外或替代步骤。

此外,应理解,取决于可行的实施方式,本文中所描述的方法中的任一者的特定动作或事件可按不同序列执行,可经添加、合并或一起省去(例如,并非所有所描述的动作或事件为实践方法所必要的)。此外,在特定可行的实施方式中,动作或事件可(例如)经由多线程处理、中断处理或多个处理器来同时而非顺序地执行。另外,虽然出于清楚的目的将本申请的特定方面描述为通过单一模块或单元执行,但应理解,本申请的技术可通过与视频解码器相关联的单元或模块的组合执行。

在一个或多个可行的实施方式中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么功能可作为一个或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体来传输,且通过基于硬件的处理单元来执行。计算机可读媒体可包含计算机可读存储媒体或通信媒体,计算机可读存储媒体对应于例如数据存储媒体的有形媒体,通信媒体包含促进计算机程序(例如)根据通信协议从一处传送到另一处的任何媒体。

以这个方式,计算机可读媒体示例性地可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一个或多个计算机或一个或多个处理器存取以检索用于实施本申请中所描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

作为可行的实施方式而非限制,此计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用于存储呈指令或数据结构的形式的所要代码且可由计算机存取的任何其它媒体。同样,任何连接可适当地称作计算机可读媒体。例如,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(dsl),或例如红外线、无线电及微波的无线技术而从网站、服务器或其它远端源传输指令,那么同轴缆线、光纤缆线、双绞线、dsl,或例如红外线、无线电及微波的无线技术包含于媒体的定义中。

然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而替代地针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(cd)、雷射光盘、光盘、数字多功能光盘(dvd)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过雷射以光学方式再现数据。以上各物的组合也应包含于计算机可读媒体的范围内。

可通过例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其它等效集成或离散逻辑电路的一个或多个处理器来执行指令。因此,如本文中所使用,术语“处理器”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文所描述的功能性提供于经配置以用于编码及解码的专用硬件和/或软件模块内,或并入于组合式编码解码器中。同样,技术可完全实施于一个或多个电路或逻辑元件中。

本申请的技术可实施于广泛多种装置或设备中,包含无线手机、集成电路(ic)或ic的集合(例如,芯片组)。本申请中描述各种组件、模块或单元以强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。更确切来说,如前文所描述,各种单元可组合于编码解码器硬件单元中或由互操作的硬件单元(包含如前文所描述的一个或多个处理器)结合合适软件和/或固件的集合来提供。

应理解,本申请中的“/”表示“或”的意思。其中“和/或”可以包括三种并列的方案。例如“a和/或b”可以包括:a,b,a和b。

以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

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