帧间预测方法、装置以及视频编码器和视频解码器与流程

文档序号:36432394发布日期:2023-12-21 08:04阅读:22来源:国知局
帧间预测方法与流程

本技术涉及视频编解码,并且更具体地,涉及一种帧间预测方法、装置以及视频编码器和视频解码器。


背景技术:

1、数字视频能力可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(personal digital assistant,pda)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式传输装置及其类似者。数字视频装置实施视频压缩技术,例如,在由mpeg-2、mpeg-4、itu-th.263、itu-t h.264/mpeg-4第10部分高级视频编码定义的标准、视频编码标准h.265/高效视频编码(high efficiency video coding,hevc)标准以及此类标准的扩展中所描述的视频压缩技术。视频装置可通过实施此类视频压缩技术来更有效率地发射、接收、编码、解码和/或存储数字视频信息。

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

3、在hevc中,常采用两种帧间预测模式,分别为先进的运动矢量预测(advancedmotion vector prediction,amvp)模式和融合(merge)模式。

4、在amvp模式和融合模式中,都需要维护一个运动信息候选列表,在每次向运动信息候选列表中加入新的运动信息之前都需要确定运动信息候选列表中是否已经存在与当前待加入的运动信息相同的运动信息,如果运动信息候选列表中已经存在相同的运动信息,那么就将当前待加入的运动信息舍弃,如果运动信息候选列表中不存在相同的运动信息,那么就将当前待加入的运动信息加入到运动信息候选列表中。

5、在上述更新运动信息候选列表的过程中需要判断两个运动信息是否相同,传统的方案一般是通过判断两个运动信息的预测方向、参考帧以及运动矢量的水平分量和垂直分量等参数是否相同来确定两个运动信息是否相同,需要多次比较操作,复杂度较高。


技术实现思路

1、本技术提供一种帧间预测方法、装置以及视频编码器和视频解码器,能够减少获取运动信息候选列表时的比较操作次数,进而提高帧间预测效率。

2、第一方面,提供了一种帧间预测方法,其特征在于,该方法包括:从当前图像块的m个相邻位置所在的m个图像块中确定出n个目标图像块;根据n个目标图像块的运动信息确定当前图像块的候选运动信息,并将当前图像块的候选运动信息加入到当前图像块的运动信息候选列表中;根据运动信息候选列表对当前图像块进行帧间预测。

3、其中,在上述n个目标图像块中,任意两个目标图像块不同(也就是说,在n个目标图像块中不存在相同的图像块),m和n均为正整数,m大于或者等于n。另外,n个目标图像块中任意两个目标图像块不同,例如可以是指在n个目标图像块中,每个目标图像块与其它的n-1个目标图像块均不相同。

4、应理解,上述m个相邻位置中的每个相邻位置位于一个图像块中,m个相邻位置分别位于m个图像块中,应理解,在这m个图像块中可能包含相同的图像块,也就是说,可能会出现不同的相邻位置均位于相同的图像块中的情况。通过从m个图像块中确定出n个图像块,能够将m个图像块中重复的图像块筛选掉(在m个图像块存在相同的图像块的情况下),从而确定出n个两两互不相同的目标图像块。

5、此外,根据n个目标图像块的运动信息确定当前图像块的候选运动信息具体可以是指根据n个目标图像块中的每个图像块的运动信息确定当前图像块的候选运动信息。

6、应理解,当前图像块的相邻位置可以是与当前图像块的边界邻接的位置,进一步的,当前图像块的相邻位置还可以是扩展到与当前图像块的边界有一定距离的位置(例如,距离当前图像块的边界的距离在一定范围内的位置)。进一步地,相邻位置还可以是当前图像块边界周围的4*4的子块。在一种示例下,相邻位置可以是当前图像块的周边相邻位置块如a1,b1,b0,a0,b2的位置坐标,比如a1,b1,b0,a0,b2中各个周边相邻位置块的中心点位置或左上角位置。

7、可选地,根据运动信息候选列表对当前图像块进行帧间预测,包括:从运动信息候选列表中确定出目标运动信息;根据目标运动信息对当前图像块进行帧间预测。如果本方法用于编码图像块,则所述从运动信息候选列表中确定出目标运动信息可以为根据率失真代价准则从运动信息候选列表中确定目标运动信息(亦称为目标候选运动信息);例如,所述目标候选运动信息编码所述当前图像块的率失真代价最小;

8、如果本方法用于解码图像块,则所述从运动信息候选列表中确定出目标运动信息可以为:根据从码流中解析出的第一标识信息(例如索引)从运动信息候选列表中确定目标运动信息(亦称为目标候选运动信息);所述目标候选运动信息用于预测所述当前图像块的运动信息;可选的,当运动信息候选列表的长度为1时,不需索引来指示该目标运动信息,确定唯一候选运动信息为目标候选运动信息。

9、基于所述目标候选运动信息预测/得到所述当前解码图像块的运动信息,例如,确定所述目标候选运动信息为所述当前图像块的运动信息;或者,所述目标候选运动信息为运动矢量预测值,基于所述运动矢量预测值和从所述码流中解析出的所述当前图像块的运动矢量残差值mvd,确定所述当前图像块的运动信息。根据所述当前图像块的运动信息对当前图像块进行帧间预测,得到所述当前图像块的预测图像(亦即预测像素值)。

10、上述目标运动信息可以是从运动信息候选列表中确定出来的最优的运动信息。

11、具体地,如果当前图像块为非仿射编码块,那么,根据目标运动信息对当前图像块进行帧间预测可以包括:根据目标运动信息对当前图像块进行运动补偿,得到所述当前图像块的预测值。

12、如果当前图像块为仿射编码块,那么,需要从运动信息候选列表中确定出目标运动信息(当前图像块的控制点的运动信息),然后根据该目标运动信息确定出当前图像块的每个子块的运动信息,然后根据每个子块的运动信息对每个子块进行运动运动补偿(motion compensation),得到每个子块的预测值。应理解,在得到每个子块的预测值之后也就得到了当前图像块的预测值了。

13、可选地,上述m和n为预设的数值。

14、例如,n的数值为5。

15、应理解,上述第一方面中的帧间预测方法既可以是平动模型下的帧间预测方法,也可以是非平动模型(例如仿射运动模型)下的帧间预测方法。

16、可选地,当前图像块为当前编码块(例如仿射编码块)或者当前解码块(例如仿射解码块)。应理解,本技术中的图像块在编码过程中具体是指编码单元(coding unit),在解码过程中具体是指解码单元(decoding unit)。

17、应理解,当前图像块的相邻位置所在的图像块可以称为当前图像块的相邻图像块,当前图像块的相邻图像块包括当前图像块的空域相邻图像块、时域相邻图像块。

18、也就是说,上述m个相邻位置既可以全部是空域相邻位置,也可以全部是时域相邻位置,或者,上述m个相邻位置也可以是既包括空域相邻位置也包括时域相邻位置。

19、相应的,上述m个图像块既可以全部是当前图像块的空域相邻图像块,也可以全部是当前图像块的时域相邻图像块,或者,上述m个图像块中既包含当前图像块的空域相邻图像块,也可以包含当前图像块的时域相邻图像块。

20、本技术中,通过从当前图像块的相邻位置所在的多个图像块中确定出互不相同的至少一个目标图像块,能够根据该至少一个目标图像块来确定当前图像块的候选运动信息,并将得到的候选运动信息加入到当前图像块的运动信息候选列表中,而不必再比较候选运动信息之间是否相同,能够一定程度上减少帧间预测时获取运动信息候选列表时的比较操作,进而提高帧间预测效率,提高编解码性能。

21、在第一方面的某些实现方式中,从当前图像块的m个相邻位置所在的m个图像块中确定出n个目标图像块,包括:确定当前图像块的当前相邻位置所在的图像块;在当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同的情况下,将当前相邻位置所在的图像块确定为当前图像块的一个目标图像块。

22、应理解,当前相邻位置可以是上述m个相邻位置中的任意一个相邻位置,当前相邻位置所在的图像块可以是上述m个图像块中的任意一个图像块。已获取的目标图像块可以是上述n个目标图像块中的部分目标图像块。

23、在第一方面的某些实现方式中,当前相邻位置所在的图像块位于当前图像块的第一侧,上述方法还包括:在已获取的目标图像块中存在位于当前图像块的第一侧的至少一个第一目标图像块的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同;在当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同的情况下,确定当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。

24、可选地,上述第一侧包括左侧和上侧。

25、进一步的,上述第一侧还可以包括右侧和下侧。

26、应理解,如果两个相邻图像块分别位于当前图像块的不同侧(例如,一个图像块位于当前图像块的上侧,另一个图像块位于当前图像块的左侧),那么,这两个相邻图像块不可能相同,在这种情况下,可以直接确定两个相邻图像块为不同的图像块。因此,如果已获取的目标图像块均与当前相邻位置所在的图像块处于不同侧,那么,可以直接将当前相邻位置所在的图像块确定为目标图像块。

27、而如果已获取的目标图像块中部分目标图像块与当前相邻位置所在的图像块处于同侧,那么,只需要将当前相邻位置所在的图像块与已获取的目标图像块中与当前相邻位置所在的图像块进行比较即可,如果当前相邻位置所在的图像块与已获取的目标图像块中处于同侧的图像块均不相同,那么,可以将当前相邻位置所在的图像块确定为目标图像块。

28、本技术中,当已获取的目标图像块中存在与当前相邻位置所在的图像块位于同侧的图像块时,仅需要将当前相邻位置所在的图像块与已获取的目标图像块中处于同侧的图像块进行比较,能够进一步的减少运动信息候选列表的构建过程中的比较次数。

29、可选地,所述方法还包括:确定已获取的目标图像块中是否存在位于当前图像块的第一侧的至少一个第一目标图像块。

30、具体地,可以根据已获取的目标图像块的坐标与当前图像块的坐标来确定已经获取的目标图像块的是否位于当前图像块的第一侧。

31、可选地,确定已获取的目标图像块中是否存在位于当前图像块的第一侧的至少一个第一目标图像块,包括:根据已经获取的目标图像块的预设位置的像素坐标与与当前图像块的预设位置的像素坐标,确定已经获取的目标图像块的是否位于当前图像块的第一侧。

32、上述预设位置可以是图像块的左上角(也可以是右上角或者其它特定位置)。

33、例如,当前图像块的左上角的像素坐标为(x0,y0),已获取的目标图像块包括目标图像块1和目标图像块2,其中,目标图像块1的左上角的像素坐标为(x1,y1),目标图像块2的左上角的像素坐标为(x2,y2),当前相邻位置所在的图像块为图像块3,图像块3的左上角的像素坐标为(x3,y3)。如果x1<x0,目标图像块1位于当前图像块的左侧,如果y2<y0,目标图像块1位于当前图像块的上侧,如果y3<y0,图像块3位于当前图像块的上侧。这种情况下,图像块3和目标图像块2均位于当前图像块的上侧,只需要比较图像块3和目标图像块2是否相同即可。

34、在第一方面的某些实现方式中,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同,包括:确定当前相邻位置所在的图像块的预设位置的像素坐标与至少一个第一目标图像块中的每个第一目标图像块的预设位置的像素坐标是否相同;在当前相邻位置所在的图像块的预设位置的像素坐标与至少一个第一目标图像块中的每个第一目标图像块的预设位置的像素坐标均不相同的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同。

35、可选地,上述预设位置为图像块的左上角、右上角、左下角、右下角以及中心位置中的任意一种。

36、另外,上述预设位置还可以是图像块中的其它特定位置,例如,上述预设位置还可以是图像块的边界的中心位置(左侧边界、右侧边界、上侧边界和下侧边界)。

37、本技术中,通过比较图像块的预设位置的像素坐标来确定当前相邻位置所在的图像块与已获取的目标图像块是否相同,与直接比较运动信息(需要比较预测方向、参考帧以及运动矢量的水平分量和垂直分量,需要比较的参数较多)的方式相比,能够减少构建运动信息候选列表过程中需要进行的比较操作。

38、在第一方面的某些实现方式中,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同,包括:确定当前相邻位置所在的图像块的编号与至少一个第一目标图像块中的每个第一目标图像块的编号是否相同;在当前相邻位置所在的图像块的编号与至少一个第一目标图像块中的每个第一目标图像块的编号均不相同的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同。

39、应理解,每个图像块对应一个编号,图像块与编号之间是一一对应的关系。上述编号可以是在编码或者解码的过程中定义的编号。

40、可选地,上述编号还可以是一个计数值,每个图像块对应唯一的计数值。

41、本技术中,通过比较不同图像块的编号,只需要一次参数比较就能确定两个图像块是否为相同的图像块,与比较运动信息的方式相比,能够减少构建运动信息候选列表过程中需要进行的比较操作。

42、在第一方面的某些实现方式中,当前相邻位置所在的图像块位于当前图像块的第一侧,方法还包括:在已获取的目标图像块中不存在位于当前图像块的第一侧的第一目标图像块时,确定当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。

43、本技术中,当已获取的的目标图像块均与当前相邻位置所在的图像块处于不同侧时,能够直接确定当前相邻位置所在的图像块与已获取的目标图像块属于不同的图像块,能够构建运动信息候选列表过程中需要进行的比较操作。

44、在第一方面的某些实现方式中,所述方法还包括:确定当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块是否相同。

45、本技术中,在确定当前相邻位置所在的图像块是否可以确定为目标图像块时,都需要判断当前相邻位置所在的图像块与已获取的目标图像块中的每个图像块是否相同,而不必考虑已获取的目标图像块中是否存在与当前相邻位置所在的图像块处于同侧的图像块,能够简化构建运动信息候选列表的处理逻辑。

46、在第一方面的某些实现方式中,所述n个目标图像块为仿射图像块,当前图像块的候选运动信息为当前图像块的候选的控制点运动信息,根据n个目标图像块的运动信息确定当前图像块的候选运动信息,包括:根据n个目标图像块的控制点的运动信息,确定当前图像块的控制点的候选运动信息。

47、可选地,根据n个目标图像块的控制点的运动信息,确定当前图像块的控制点的候选运动信息,包括:根据n个目标图像块的控制点的运动信息以及n个目标图像块对应的仿射模型,确定当前图像块的控制点的候选运动信息。

48、具体地,在根据n个目标图像块的控制点的运动信息以及n个目标图像块对应的仿射模型确定当前图像块的控制点的候选运动信息时,可以根据该n个目标图像块中的每个目标图像块的控制点的运动信息以及该每个图像块对应的仿射类型,确定当前图像块的控制点的候选运动信息。

49、可选地,上述目标图像块对应的仿射类型包括4参数仿射运动模型和6参数仿射运动模型。

50、第二方面,提供了一种帧间预测方法,该方法包括:构建当前图像块的运动信息候选列表;获取所述当前图像块的第一相邻位置a1,其中,a1位于所述当前图像块的左侧,a1位于当前图像块的第一相邻图像块cu1中;当cu1的运动信息可得时,根据cu1的运动信息确定当前图像块的第一候选运动信息,并将所述第一候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第二相邻位置b1,其中,b1位于当前图像块的上侧,b1位于当前图像块的第二相邻图像块cu2中;当cu2的运动信息可得时,根据cu2的运动信息确定当前图像块的第二候选运动信息,并将所述第二候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第三相邻位置b0,其中,b0位于当前图像块的上侧,b0位于当前图像块的第三相邻图像块cu3中;当cu3的运动信息可得时,确定cu3与cu2是否相同;当cu3的运动信息可得时,并且在cu3与cu2不同的情况下,根据cu3的运动信息确定当前图像块的第三候选运动信息,并将所述第三候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第四相邻位置a0,其中,a0位于当前图像块的左侧,a0位于当前图像块的第三相邻图像块cu4中;当cu4的运动信息可得时,确定cu4与cu1是否相同;当cu4的运动信息可得时,并且在cu4与cu1不同的情况下,根据cu4的运动信息确定当前图像块的第四候选运动信息,并将所述第四候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第五相邻位置b2,其中,b2位于当前图像块的上侧,b2位于当前图像块的第三相邻图像块cu5中当cu5的运动信息可得时,确定cu5与cu1、cu2是否相同;当cu5的运动信息可得时,并且在cu5与cu1不同,且cu5与cu2不同的情况下,根据cu5的运动信息确定当前图像块的第五候选运动信息,并将所述第五候选运动信息加入到所述运动信息候选列表中。根据所述运动信息候选列表对所述当前图像块进行帧间预测。

51、本技术中,在构建运动信息候选列表的过程中,通过依次遍历当前图像块的相邻位置,并在某些情况下通过比较图像块是否相同的方式确定是否要将根据当前相邻位置的图像块确定的运动信息加入到运动信息候选列表中,能够在生成运动信息候选列表的过程中减少比较操作,进而提高帧间预测效率。

52、应理解,在第二方面所示的方法中,运动信息可得是指该cu已经编码并且是帧间编码,进一步地,在构建仿射编码模式的候选运动信息列表时,还要求该cu为仿射模式编码。

53、应理解,在第二方面所示的方法中,是按照特定的顺序(a1、b1、b0、a0、b2)遍历当前图像块的相邻位置的,通过该特定的顺序遍历当前图像块的相邻位置能够减少不同图像块的比较次数。例如,由于a1和b1分别位于当前图像块的左侧和上侧,因此,可以在获取到b1所在的图像块cu2时,不必将cu2与cu1进行比较,而是可以直接将根据cu2的运动信息确定的第二候选运动信息加入到运动信息候选列表中。

54、在第二方面的某些实现方式中,在cu3与cu2相同的情况下,舍弃cu3,继续遍历当前图像块的相邻位置,获取所述第四相邻位置a0。

55、在第二方面的某些实现方式中,在cu4与cu1相同的情况下,舍弃cu4,继续遍历当前图像块的相邻位置,获取所述第五相邻位置b2。

56、应理解,在本技术的帧间预测方法发生在编码端和发生在解码端的过程有些不同。其中,在编码端执行本技术实施例的帧间预测方法时,要从运动信息候选列表中选择出最优运动信息,然后根据该最优运动信息进行帧间预测。

57、而在解码端执行本技术实施例的帧间预测方法时,是通过解析码流获取最优运动信息的索引,然后根据最优运动信息的索引从运动信息候选列表中确定出最优运动信息,然后再根据该最优运动信息进行帧间预测。

58、第三方面,提供了一种帧间预测装置,所述装置包括用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的模块。

59、第四方面,提供一种视频编码器,该视频编码器包括上述第三方面中的帧间预测装置、熵编码单元和重建单元。其中,所述帧间预测装置用于对当前编码图像块进行帧间预测,以得到所述当前编码图像块的预测块;所述熵编码单元用于将第一标识编入码流,所述第一标识用于指示运动信息候选列表中用于预测当前编码图像块的运动信息的候选运动信息;所述重建单元用于根据所述预测块重建所述当前编码图像块。

60、第五方面,提供一种视频解码器,所述视频编码器包括熵解码单元、上述第三方面中的帧间预测装置和重建单元。其中,所述熵解码单元用于从码流中解码出第一标识,所述第一标识用于指示运动信息候选列表中用于预测当前解码图像块的运动信息的候选运动信息;所述帧间预测装置用于对所述当前解码图像块进行帧间预测,以得到所述当前解码图像块的预测块;所述重建单元用于根据所述预测块重建所述当前解码图像块。

61、第六方面,提供了一种编码器,所述编码器包括存储器和处理器,所述存储器存储有程序代码,所述处理器用于执行所述存储器存储的程序代码,当所述存储器存储的程序代码被执行时,所述处理器用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法。

62、上述编码器可以是视频编码器。

63、第七方面,提供了一种解码器,所述解码器包括存储器和处理器,所述存储器存储有程序代码,所述处理器用于执行所述存储器存储的程序代码,当所述存储器存储的程序代码被执行时,所述处理器用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法。

64、上述解码器可以是视频解码器。

65、第八方面,提供一种帧间预测装置,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的部分或全部步骤。

66、第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的部分或全部步骤的指令。

67、第十方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的部分或全部步骤的指令。

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