首页 / 专利库 / 图形技术 / 方块效应 / 一种运动矢量确定、边界强度确定方法和设备

一种运动矢量确定、边界强度确定方法和设备

阅读:1023发布:2020-05-08

专利汇可以提供一种运动矢量确定、边界强度确定方法和设备专利检索,专利查询,专利分析的服务。并且本 申请 提供一种 运动矢量 确定、边界强度确定方法和设备,该方法包括:获取当前图像 块 的待调整运动矢量、与待调整运动矢量对应的预调整运动矢量;根据待调整运动矢量与当前图像块的相邻图像块的候选运动矢量确定第一边界强度;根据预调整运动矢量与候选运动矢量确定第二边界强度;根据第一边界强度和第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。通过本申请的技术方案,可以获取到正确的边界强度,并可以减少块效应。,下面是一种运动矢量确定、边界强度确定方法和设备专利的具体信息内容。

1.一种运动矢量确定方法,其特征在于,应用于编码端或解码端,包括:
获取当前图像的待调整运动矢量、与所述待调整运动矢量对应的预调整运动矢量;
其中,所述预调整运动矢量是对所述待调整运动矢量进行预精细化操作后得到的运动矢量;
根据所述待调整运动矢量与所述当前图像块的相邻图像块的候选运动矢量确定第一边界强度;
根据所述预调整运动矢量与所述候选运动矢量确定第二边界强度;
根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
2.根据权利要求1所述的方法,其特征在于,
所述相邻图像块的候选运动矢量的获取方式,包括:
获取与所述相邻图像块对应的操作标记;
若所述操作标记的标识值为第一标识,则确定所述候选运动矢量是所述相邻图像块的与待调整运动矢量对应的候选预调整运动矢量集合中的运动矢量。
若所述操作标记的标识值为第二标识,则确定所述候选运动矢量是所述相邻图像块的待调整运动矢量。
3.根据权利要求1所述的方法,其特征在于,
所述根据所述待调整运动矢量与所述当前图像块的相邻图像块的候选运动矢量确定第一边界强度,包括:确定所述待调整运动矢量与所述候选运动矢量的第一差值;利用所述第一差值确定所述第一边界强度;
所述根据所述预调整运动矢量与所述候选运动矢量确定第二边界强度,包括:确定所述预调整运动矢量与所述候选运动矢量的第二差值;
利用所述第二差值确定所述第二边界强度。
4.根据权利要求1所述的方法,其特征在于,
若候选运动矢量为一个,所述根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量,包括:
若所述第一边界强度与所述第二边界强度不同,则确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;
否则,确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
5.根据权利要求1所述的方法,其特征在于,
若候选运动矢量为多个,所述根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量,包括:
若任一候选运动矢量对应的第一边界强度与所述候选运动矢量对应的第二边界强度不同,则确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;
否则,确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
6.根据权利要求1所述的方法,其特征在于,
若候选运动矢量为多个,所述根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量,包括:
针对每个候选运动矢量,确定所述候选运动矢量对应的第一边界强度与所述候选运动矢量对应的第二边界强度是否相同,并统计边界强度不同的候选运动矢量的数量;根据所述数量确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量;
其中,所述根据所述数量确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量,包括:若所述数量大于数量阈值,确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;若所述数量不大于数量阈值,确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量;
或者,若所述数量与候选运动矢量的总数量的比例大于比例阈值,则确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;
若所述数量与候选运动矢量的总数量的比例不大于比例阈值,则确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
7.根据权利要求1所述的方法,其特征在于,所述当前图像块设置有操作标记;所述根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量之后,所述方法还包括:
若采用所述预调整运动矢量作为所述当前图像块的目标运动矢量,则确定所述操作标记的标识值为第一标识;若采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,则确定所述操作标记的标识值为第二标识。
8.根据权利要求1所述的方法,其特征在于,所述相邻图像块包括所述当前图像块上侧的相邻图像块,和/或,所述当前图像块左侧的相邻图像块。
9.一种边界强度确定方法,其特征在于,应用于编码端或解码端,包括:
获取待处理单元的边界的第一相邻图像块的第一操作信息;其中,所述第一操作信息用于指示所述第一相邻图像块已进行精细化操作或者未进行精细化;
获取所述边界的第二相邻图像块的第二操作信息;其中,所述第二操作信息用于指示所述第二相邻图像块已进行精细化操作或者未进行精细化;
根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度。
10.根据权利要求9所述的方法,其特征在于,所述根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度,包括:
若所述第一相邻图像块已进行精细化操作,或所述第二相邻图像块已进行精细化操作,则确定所述边界的边界强度为第一数值;或者,
若所述第一相邻图像块未进行精细化操作,且所述第二相邻图像块未进行精细化操作,确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值,并利用所述差值确定所述边界的边界强度;或者,
若所述第一相邻图像块已进行精细化操作,且所述第二相邻图像块已进行精细化操作,则确定所述边界的边界强度为第二数值;或者,
若所述第一相邻图像块未进行精细化操作,或所述第二相邻图像块未进行精细化操作,则确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值,并利用所述差值确定所述边界的边界强度。
11.根据权利要求9所述的方法,其特征在于,所述根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度,包括:
确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值;若所述差值的绝对值大于或等于预设阈值,则:
当所述第一相邻图像块已进行精细化操作,或所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第三数值;或者,
当所述第一相邻图像块未进行精细化操作,且所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第四数值;或者,
当所述第一相邻图像块已进行精细化操作,且所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第五数值;或者,
当所述第一相邻图像块未进行精细化操作,或所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第六数值。
12.根据权利要求9所述的方法,其特征在于,所述根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度,包括:
确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值;若所述差值的绝对值小于预设阈值,则:
当所述第一相邻图像块已进行精细化操作,或所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第七数值;或者,
当所述第一相邻图像块未进行精细化操作,且所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第八数值;或者,
当所述第一相邻图像块已进行精细化操作,且所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第九数值;或者,
当所述第一相邻图像块未进行精细化操作,或所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第十数值。
13.根据权利要求9-12任一项所述的方法,其特征在于,
所述第一相邻图像块包括所述边界上侧的图像块,所述第二相邻图像块包括所述边界下侧的图像块;或者,所述第一相邻图像块包括所述边界左侧的图像块,所述第二相邻图像块包括所述边界右侧的图像块。
14.一种编码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-8任一所述的方法步骤,或者,实现权利要求9-13任一所述的方法步骤。
15.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-8任一所述的方法步骤,或者,实现权利要求9-13任一所述的方法步骤。

说明书全文

一种运动矢量确定、边界强度确定方法和设备

技术领域

[0001] 本申请涉及视频处理技术领域,尤其涉及一种运动矢量确定、边界强度确定方法和设备。

背景技术

[0002] 效应是指:在视频图像中,图像块的边界并不连续,压缩重建图像具有明显的块效应,严重影响图像的质量,因此,需要对待处理单元的边界进行去方块滤波(Deblocking filter),去方块滤波可以包括滤波决策和滤波操作。在滤波决策过程中,可以得到边界的滤波强度(如不滤波、弱滤波或强滤波)和滤波参数;在滤波操作过程中,可以根据滤波强度和滤波参数对像素进行修正。
[0003] 进一步的,在滤波决策过程,可以包括获取边界强度、滤波开关决策和滤波强弱选择等步骤。在获取边界强度的步骤,可以根据编码参数初步判断边界是否需要滤波及滤波参数;在滤波开关决策的步骤,可以对视频图像的内容进行分析,以确定边界是否需要滤波;在滤波强弱选择的步骤,可以根据视频图像的内容及编码参数,判断边界是否需要滤波以及选择合适的滤波强度。
[0004] 进一步的,在获取边界强度的步骤,可以利用边界的相邻图像块的运动矢量获取边界强度(Boundary Strength),例如,利用边界的两个相邻图像块(后续称为相邻图像块P和相邻图像块Q)的运动矢量的差值获取边界强度。
[0005] 随着视频技术的发展,可以将图像块的原始运动矢量调整为精细运动矢量,并使用精细运动矢量对图像块进行运动补偿,但是,编码端/解码端存储的仍然是原始运动矢量,而不是精细运动矢量。基于此,在利用运动矢量的差值获取边界强度时,只能获取到相邻图像块P的原始运动矢量和相邻图像块Q的原始运动矢量,而无法获取到相邻图像块P的精细运动矢量和相邻图像块Q的精细运动矢量,也就是说,只能利用相邻图像块P的原始运动矢量和相邻图像块Q的原始运动矢量获取边界强度,从而导致边界强度的获取结果出现错误。发明内容
[0006] 本申请提供了一种运动矢量确定、边界强度确定方法和设备,解决了边界强度的获取结果出现错误的问题,从而可以获取到正确的边界强度。
[0007] 本申请提供一种运动矢量确定方法,应用于编码端或解码端,包括:
[0008] 获取当前图像块的待调整运动矢量、与所述待调整运动矢量对应的预调整运动矢量;其中,所述预调整运动矢量是对所述待调整运动矢量进行预精细化操作后得到的运动矢量;根据所述待调整运动矢量与所述当前图像块的相邻图像块的候选运动矢量确定第一边界强度;根据所述预调整运动矢量与所述候选运动矢量确定第二边界强度;根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
[0009] 本申请提供一种边界强度确定方法,应用于编码端或解码端,包括:
[0010] 获取待处理单元的边界的第一相邻图像块的第一操作信息;其中,所述第一操作信息用于指示所述第一相邻图像块已进行精细化操作或者未进行精细化;获取所述边界的第二相邻图像块的第二操作信息;其中,所述第二操作信息用于指示所述第二相邻图像块已进行精细化操作或者未进行精细化;根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度。
[0011] 本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的方法步骤。
[0012] 本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的方法步骤。
[0013] 由以上技术方案可见,本申请实施例中,可以解决边界强度的获取结果出现错误的问题,从而可以获取到正确的边界强度,可以纠正仅通过存储原始运动矢量而而误判边界强度的情况,从而减少由于运动矢量调整所导致的块效应。附图说明
[0014] 为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
[0015] 图1A和图1B是本申请一种实施方式中的相邻图像块的示意图;
[0016] 图2是本申请一种实施方式中的获取边界强度的示意图;
[0017] 图3是本申请一种实施方式中的运动矢量确定方法的流程图
[0018] 图4是本申请一种实施方式中的边界强度确定方法的流程图;
[0019] 图5A-图5F是本申请一种实施方式中的边界强度确定方法的示意图;
[0020] 图6是本申请一种实施方式中的运动矢量确定装置的结构图;
[0021] 图7是本申请一种实施方式中的边界强度确定装置的结构图;
[0022] 图8是本申请一种实施方式中的编码端设备的硬件结构图;
[0023] 图9是本申请一种实施方式中的解码端设备的硬件结构图。

具体实施方式

[0024] 在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
[0025] 应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0026] 本申请实施例提出一种运动矢量确定、边界强度确定方法,涉及以下概念:
[0027] 运动矢量(Motion Vector,MV):在间编码中,使用运动矢量表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移,每个划分的图像块都有相应的运动矢量传送到解码端。如果对每个图像块的运动矢量进行独立编码和传输,特别是划分成小尺寸的大量图像块,则消耗相当多的比特。为了降低用于编码运动矢量的比特数,可以利用相邻图像块之间的空间相关性,根据相邻已编码图像块的运动矢量对当前待编码图像块的运动矢量进行预测,然后对预测差进行编码,这样可以有效降低表示运动矢量的比特数。
[0028] 方块效应:在视频图像中,图像块的边界并不连续,压缩重建图像具有明显的块效应,严重影响图像的质量,因此,可以对边界进行去方块滤波。
[0029] 运动补偿(Motion Compensation,MC):通过先前的图像块的运动矢量来预测、补偿当前的图像块,运动补偿是减少帧序列冗余信息的有效方法。
[0030] 去方块滤波(Deblocking filter):可以针对所有的预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU)的边界进行去方块滤波,去方块滤波可以包括滤波决策和滤波操作。在滤波决策过程,可以包括获取边界强度、滤波开关决策和滤波强弱选择,本实施例中,主要是针对获取边界强度的处理。
[0031] 待处理单元的边界:待处理单元可以是所有的预测单元和变换单元,本实施例中,主要使用到边界的两个相邻图像块,这两个相邻图像块可以称为相邻图像块P和相邻图像块Q,例如,相邻图像块P是边界上侧的图像块,相邻图像块Q是边界下侧的图像块;或者,相邻图像块P是边界左侧的图像块,相邻图像块Q是边界右侧的图像块。例如,参见图1A和图1B所示,相邻图像块P和相邻图像块Q为边界两旁的4x4大小的图像块,当然,相邻图像块P和相邻图像块Q也可以为其它大小,对此不做限制。在图1A中,是针对待处理单元的垂直边界,相邻图像块P是该垂直边界左侧的图像块,相邻图像块Q是该垂直边界右侧的图像块。在图1B中,是针对待处理单元的平边界,相邻图像块P是该水平边界上侧的图像块,相邻图像块Q是该水平边界下侧的图像块。
[0032] 获取边界强度(Boundary Strength):参见图2所示,为获取边界强度的示意图,当然,图2只是获取边界强度的一个示例,对此获取方式不做限制。
[0033] 首先,判断相邻图像块P或相邻图像块Q是否采用帧内预测;如果是,则确定边界强度=2;如果否,则判断相邻图像块P或相邻图像块Q是否有非零变换系数。如果是,则确定边界强度=1;如果否,则判断相邻图像块P与相邻图像块Q是否使用不同的参考帧。如果是,则确定边界强度=1;如果否,则判断相邻图像块P与相邻图像块Q的运动矢量个数是否不同;如果是,则确定边界强度=1;如果否,则判断相邻图像块P与相邻图像块Q的运动矢量差值的绝对值是否大于等于4;如果是,则确定边界强度=1;如果否,则确定边界强度=0。
[0034] 在一个例子中,可以针对亮度分量和色度分量分别确定边界强度,如判断相邻图像块P与相邻图像块Q的亮度分量的运动矢量差值的绝对值是否大于等于4;如果是,则确定边界强度=1;如果否,则确定边界强度=0;判断相邻图像块P与相邻图像块Q的色度分量的运动矢量差值的绝对值是否大于等于4;如果是,则确定边界强度=1;如果否,则确定边界强度=0。
[0035] 进一步的,对于亮度分量,如果边界强度为0,则表示该边界不需要滤波,不再进行后续处理(如滤波开关决策,滤波强弱选择以及滤波操作等)。如果边界强度为1或2,则会进行后续处理,并且边界强度的取值会影响后续“滤波强弱选择”中的阈值。对于色度分量,如果边界强度为0或1,则表示该边界不需要滤波,不再进行后续处理。如果边界强度为2,则会对该边界进行滤波(也不需要进行后续滤波开关决策、滤波强弱选择,直接对其进行滤波)。
[0036] 综上所述,采用上述流程可以确定边界强度的取值,在确定过程中,可以利用相邻图像块P的运动矢量与相邻图像块Q的运动矢量,确定边界强度的取值,也就是说,若相邻图像块P的运动矢量与相邻图像块Q的运动矢量的差值的绝对值大于等于4,则可以确定边界强度=1,若相邻图像块P的运动矢量与相邻图像块Q的运动矢量的差值的绝对值小于4,则可以确定边界强度=0。
[0037] 在实际应用中,可以将图像块的原始运动矢量调整为精细运动矢量,并使用精细运动矢量对图像块进行运动补偿,但是,编码端/解码端存储的仍然是原始运动矢量(即本实施例中的待调整运动矢量,可以称为unrefined motion vector),而不是进行精细化操作后的运动矢量(即本实施例中的预调整运动矢量,可以称为refined motion vector)。基于此,在利用运动矢量的差值获取边界强度时,只能获取到相邻图像块P的原始运动矢量和相邻图像块Q的原始运动矢量,也就是说,只能利用相邻图像块P的原始运动矢量和相邻图像块Q的原始运动矢量获取边界强度,从而可能导致边界强度的获取结果出现错误。
[0038] 针对上述发现,本申请实施例中,可以解决边界强度的获取结果出现错误的问题,从而可以获取到正确的边界强度,可以纠正仅通过存储原始运动矢量而误判边界强度的情况,从而减少由于运动矢量调整所导致的块效应。
[0039] 在一个实现方式中,可以对运动矢量的调整操作进行约束,限制其调整范围不影响去方块滤波的决策,进而避免出现错误的去方块滤波的决策结果。具体的,在对待调整运动矢量进行预精细化操作且得到预调整运动矢量后,若预调整运动矢量对应的边界强度与待调整运动矢量对应的边界强度相同,则说明对待调整运动矢量进行精细化操作,不会导致边界强度变化,因此,可以将预调整运动矢量作为当前图像块的目标运动矢量。若预调整运动矢量对应的边界强度与待调整运动矢量对应的边界强度不同,则说明对待调整运动矢量进行精细化操作,会导致边界强度变化,因此,不允许将预调整运动矢量作为当前图像块的目标运动矢量,而是将待调整运动矢量作为当前图像块的目标运动矢量。
[0040] 在另一个实现方式中,可以对边界强度的确定流程进行改进,即通过修改去方块滤波的决策,进而可以避免出现错误的去方块滤波的决策结果。
[0041] 以下结合几个具体的实施例,对本申请实施例的方法进行详细说明。
[0042] 实施例一:
[0043] 本申请实施例中提出一种运动矢量确定方法,可以应用于编码端或解码端,参见图3所示,为该方法的流程示意图,该方法可以包括以下步骤:
[0044] 步骤301,获取当前图像块的待调整运动矢量、与该待调整运动矢量对应的预调整运动矢量;其中,该预调整运动矢量可以是对待调整运动矢量进行预精细化操作后得到的运动矢量,对此不做限制。其中,当前图像块可以是任意图像块,当前图像块的尺寸可以大于CTU(Coding Tree Unit,编码树单元)的尺寸,可以等于CTU的尺寸,也可以小于CTU的尺寸,对此不做限制。
[0045] 在一个例子中,针对每个图像块来说,都具有待调整运动矢量,该待调整运动矢量可以是原始运动矢量,也可以是其它运动矢量,对此不做限制,编码端/解码端针对图像块存储的运动矢量,可以是该图像块的待调整运动矢量。这个待调整运动矢量是没有经过精细化操作的运动矢量,在后续过程中,可能对待调整运动矢量进行精细化操作,因此,可以将其称为待调整运动矢量。
[0046] 在一个例子中,针对当前图像块的待调整运动矢量来说,在后续过程中,可能对待调整运动矢量进行精细化操作,若对待调整运动矢量进行精细化操作,则本步骤中,可以获取精细化操作的方式,并采用精细化操作的方式对待调整运动矢量进行预精细化操作,得到与该待调整运动矢量对应的预调整运动矢量。
[0047] 综上所述,可以得到当前图像块的待调整运动矢量(后续称为待调整运动矢量A)、当前图像块的预调整运动矢量(后续称为预调整运动矢量B)。
[0048] 步骤302,根据该待调整运动矢量与当前图像块的相邻图像块的候选运动矢量确定第一边界强度。其中,所述相邻图像块可以包括但不限于:所述当前图像块上侧的相邻图像块,和/或,所述当前图像块左侧的相邻图像块。
[0049] 步骤303,根据该预调整运动矢量与该候选运动矢量确定第二边界强度。
[0050] 在步骤302和步骤303中,涉及相邻图像块的候选运动矢量,因此,步骤302和步骤303之前,还可以获取相邻图像块的候选运动矢量,具体的,可以获取与相邻图像块对应的操作标记;若该操作标记的标识值为第一标识,则可以确定该候选运动矢量是相邻图像块的与待调整运动矢量对应的候选预调整运动矢量集合中的运动矢量(如一个或多个预调整运动矢量)。若该操作标记的标识值为第二标识,则可以确定该候选运动矢量是相邻图像块的待调整运动矢量。
[0051] 在一个例子中,可以为每个图像块存储操作标记,并通过该操作标记表示选用哪个运动矢量。具体的,由于相邻图像块是当前图像块上侧的相邻图像块,和/或,当前图像块左侧的相邻图像块,而编码过程/解码过程是从左到右、从上到下进行,因此,在对当前图像块进行处理时,相邻图像块已经处理完成。在对相邻图像块进行处理时,若采用相邻图像块的预调整运动矢量作为相邻图像块目标运动矢量,则确定该操作标记的标识值为第一标识,并存储操作标记为第一标识;若采用相邻图像块的待调整运动矢量作为相邻图像块的目标运动矢量,则确定该操作标记的标识值为第二标识,并存储操作标记为第二标识。基于上述处理,在对当前图像块进行处理时,若相邻图像块的操作标记的标识值为第一标识,则确定候选运动矢量是候选预调整运动矢量集合中的运动矢量;若该操作标记的标识值为第二标识,则确定候选运动矢量是待调整运动矢量。
[0052] 进一步的,在对当前图像块进行处理时,若候选运动矢量是相邻图像块的待调整运动矢量,由于针对相邻图像块存储的就是待调整运动矢量,因此,可以直接获取相邻图像块的待调整运动矢量。若候选运动矢量是相邻图像块的预调整运动矢量,由于针对相邻图像块存储的是待调整运动矢量,因此,还需要获取相邻图像块的预调整运动矢量,以下对这个获取过程进行说明。
[0053] 在实际应用中,由于对当前图像块进行处理时,相邻图像块的编码过程/解码过程已经完成,因此,已经无法获知相邻图像块的精细化操作方式,如共有4种精细化操作方式,无法获知是使用哪种精细化操作方式对相邻图像块的待调整运动矢量进行精细化操作。基于此,本步骤中,在对待调整运动矢量进行精细化操作时,是使用每种精细化操作方式,分别对待调整运动矢量进行精细化操作,得到4个预调整运动矢量,并将这些预调整运动矢量存储到候选预调整运动矢量集合。综上所述,相邻图像块的候选运动矢量可以是该候选预调整运动矢量集合中的预调整运动矢量,如一个或者多个预调整运动矢量。
[0054] 综上所述,可以得到相邻图像块的候选运动矢量,候选运动矢量是相邻图像块的待调整运动矢量(后续称为待调整运动矢量C),或者,候选运动矢量可以是候选预调整运动矢量集合中的运动矢量(后续称为预调整运动矢量D1-D3)。
[0055] 在步骤302中,根据待调整运动矢量与候选运动矢量确定第一边界强度,可以包括但不限于:确定待调整运动矢量与候选运动矢量的第一差值,并利用第一差值确定第一边界强度;例如,若第一差值的绝对值大于等于4,则确定第一边界强度为1,若第一差值的绝对值小于4,则确定第一边界强度为0。
[0056] 具体的,可以将当前图像块确定为图像块Q,并将当前图像块的相邻图像块确定为图像块P,这样,待调整运动矢量可以是图像块Q的待调整运动矢量,候选运动矢量可以是图像块P的待调整运动矢量或预调整运动矢量,然后,可以采用图2所示的流程,确定第一边界强度,对此确定方式不做限制。
[0057] 在步骤303中,根据预调整运动矢量与候选运动矢量确定第二边界强度,可以包括但不限于:确定预调整运动矢量与候选运动矢量的第二差值,并利用第二差值确定第二边界强度;例如,若第二差值的绝对值大于等于4,则确定第二边界强度为1,若第二差值的绝对值小于4,则确定第二边界强度为0。
[0058] 具体的,可以将当前图像块确定为图像块Q,并将当前图像块的相邻图像块确定为图像块P,这样,预调整运动矢量可以是图像块Q的预调整运动矢量,候选运动矢量可以是图像块P的待调整运动矢量或预调整运动矢量,然后,可以采用图2所示的流程,确定第二边界强度,对此确定方式不做限制。
[0059] 步骤304,根据第一边界强度和第二边界强度确定采用待调整运动矢量作为当前图像块的目标运动矢量,或者,采用预调整运动矢量作为当前图像块的目标运动矢量。其中,目标运动矢量是当前图像块本阶段或下一阶段进行某操作所需的运动矢量,例如,可以是对当前图像块进行运动补偿时所需的运动矢量;当然,也可以是其它操作所需的运动矢量,对此不做限制。
[0060] 在一个例子中,若候选运动矢量为一个,当该第一边界强度与该第二边界强度不同时,则可以确定采用待调整运动矢量作为当前图像块的目标运动矢量;当该第一边界强度与该第二边界强度相同时,则可以确定采用预调整运动矢量作为当前图像块的目标运动矢量。
[0061] 在另一个例子中,若候选运动矢量为多个,当任一候选运动矢量对应的第一边界强度与该候选运动矢量对应的第二边界强度不同时,则可以确定采用待调整运动矢量作为当前图像块的目标运动矢量;否则,确定采用预调整运动矢量作为当前图像块的目标运动矢量。
[0062] 在另一个例子中,若候选运动矢量为多个,则针对每个候选运动矢量,可以确定该候选运动矢量对应的第一边界强度与该候选运动矢量对应的第二边界强度是否相同,并统计边界强度不同的候选运动矢量的数量;然后,可以根据该数量确定采用待调整运动矢量作为当前图像块的目标运动矢量,或者,采用预调整运动矢量作为当前图像块的目标运动矢量。具体的,若该数量大于数量阈值,则可以确定采用待调整运动矢量作为当前图像块的目标运动矢量;若该数量不大于数量阈值,则可以确定采用预调整运动矢量作为当前图像块的目标运动矢量;或者,若该数量与候选运动矢量的总数量的比例大于比例阈值,则可以确定采用待调整运动矢量作为当前图像块的目标运动矢量;若该数量与候选运动矢量的总数量的比例不大于比例阈值,则可以确定采用预调整运动矢量作为当前图像块的目标运动矢量。
[0063] 由以上技术方案可见,本申请实施例中,可以对运动矢量的调整操作进行约束,限制其调整范围不影响去方块滤波的决策,进而避免出现错误的去方块滤波的决策结果。可以解决边界强度的获取结果出现错误的问题,从而可以获取到正确的边界强度,可以纠正仅通过存储原始运动矢量而而误判边界强度的情况,从而减少由于运动矢量调整所导致的块效应。
[0064] 以下结合几个具体应用场景,对上述几种方式进行详细说明。
[0065] 应用场景1:假设待调整运动矢量为待调整运动矢量A、预调整运动矢量为预调整运动矢量B、候选运动矢量为待调整运动矢量C。在此应用场景下,候选运动矢量为一个,基于待调整运动矢量A和待调整运动矢量C确定第一边界强度11,基于预调整运动矢量B和待调整运动矢量C确定第二边界强度12。进一步,当该第一边界强度11与该第二边界强度12不同时,则确定采用待调整运动矢量A作为当前图像块的目标运动矢量;当该第一边界强度11与该第二边界强度12相同时,则确定采用预调整运动矢量B作为当前图像块的目标运动矢量。
[0066] 应用场景2:假设待调整运动矢量为待调整运动矢量A、预调整运动矢量为预调整运动矢量B、候选运动矢量为预调整运动矢量D1-D3。
[0067] 在此应用场景下,候选运动矢量为多个,可以基于待调整运动矢量A和待调整运动矢量D1确定第一边界强度21,并基于预调整运动矢量B和待调整运动矢量D1确定第二边界强度22;基于待调整运动矢量A和待调整运动矢量D2确定第一边界强度23,并基于预调整运动矢量B和待调整运动矢量D2确定第二边界强度24;基于待调整运动矢量A和待调整运动矢量D3确定第一边界强度25,并基于预调整运动矢量B和待调整运动矢量D3确定第二边界强度26。当第一边界强度21与第二边界强度22不同,或第一边界强度23与第二边界强度24不同,或第一边界强度25与第二边界强度26不同时,确定采用待调整运动矢量A作为当前图像块的目标运动矢量;当第一边界强度21与第二边界强度22相同,第一边界强度23与第二边界强度24相同,第一边界强度25与第二边界强度26相同时,确定采用预调整运动矢量B作为当前图像块的目标运动矢量。
[0068] 应用场景3:假设待调整运动矢量为待调整运动矢量A、预调整运动矢量为预调整运动矢量B、候选运动矢量为预调整运动矢量D1-D3。
[0069] 在此应用场景下,候选运动矢量为多个,可以基于待调整运动矢量A和待调整运动矢量D1确定第一边界强度21,并基于预调整运动矢量B和待调整运动矢量D1确定第二边界强度22;基于待调整运动矢量A和待调整运动矢量D2确定第一边界强度23,并基于预调整运动矢量B和待调整运动矢量D2确定第二边界强度24;基于待调整运动矢量A和待调整运动矢量D3确定第一边界强度25,并基于预调整运动矢量B和待调整运动矢量D3确定第二边界强度26。
[0070] 确定第一边界强度21与第二边界强度22是否相同,第一边界强度23与第二边界强度24是否相同,第一边界强度25与第二边界强度26是否相同,并统计边界强度不同的数量,假设第一边界强度21与第二边界强度22不同,第一边界强度23与第二边界强度24不同,第一边界强度25与第二边界强度26相同,则该数量可以为2。若该数量大于数量阈值(根据经验配置,如2、3等),则确定采用待调整运动矢量A作为当前图像块的目标运动矢量;若该数量不大于数量阈值,则确定采用预调整运动矢量B作为当前图像块的目标运动矢量。
[0071] 应用场景4:假设待调整运动矢量为待调整运动矢量A、预调整运动矢量为预调整运动矢量B、候选运动矢量为预调整运动矢量D1-D3。
[0072] 在此应用场景下,候选运动矢量为多个,可以基于待调整运动矢量A和待调整运动矢量D1确定第一边界强度21,并基于预调整运动矢量B和待调整运动矢量D1确定第二边界强度22;基于待调整运动矢量A和待调整运动矢量D2确定第一边界强度23,并基于预调整运动矢量B和待调整运动矢量D2确定第二边界强度24;基于待调整运动矢量A和待调整运动矢量D3确定第一边界强度25,并基于预调整运动矢量B和待调整运动矢量D3确定第二边界强度26。
[0073] 确定第一边界强度21与第二边界强度22是否相同,第一边界强度23与第二边界强度24是否相同,第一边界强度25与第二边界强度26是否相同,并统计边界强度不同的数量,假设该数量为2。进一步,若该数量与候选运动矢量的总数量(即数量3)的比例大于比例阈值,(可以根据经验配置,如50%等),则确定采用待调整运动矢量A作为当前图像块的目标运动矢量;若该比例不大于比例阈值,则确定采用预调整运动矢量B作为当前图像块的目标运动矢量。
[0074] 在一个例子中,当前图像块可以设置有操作标记,因此,若采用预调整运动矢量作为当前图像块的目标运动矢量,则确定操作标记的标识值为第一标识,并存储操作标记为第一标识;若采用待调整运动矢量作为当前图像块的目标运动矢量,则确定操作标记的标识值为第二标识,并存储操作标记为第二标识。
[0075] 在一个例子中,上述运动矢量确定方法可以应用于编码端,也可以应用于解码端,即,编码端可以采用上述方法,确定采用待调整运动矢量作为当前图像块的目标运动矢量,或者,采用预调整运动矢量作为当前图像块的目标运动矢量,解码端也可以采用上述方法,确定采用待调整运动矢量作为当前图像块的目标运动矢量,或者,采用预调整运动矢量作为当前图像块的目标运动矢量。
[0076] 在另一个例子中,上述运动矢量确定方法可以应用于编码端,即,编码端可以采用上述方法确定采用待调整运动矢量作为当前图像块的目标运动矢量,或者,采用预调整运动矢量作为当前图像块的目标运动矢量。进一步的,编码端在向解码端发送针对当前图像块的编码比特流时,该编码比特流还可以携带指示信息,该指示信息用于指示采用待调整运动矢量作为当前图像块的目标运动矢量,或者,采用预调整运动矢量作为当前图像块的目标运动矢量。解码端接收到该编码比特流后,可以从该编码比特流中解析出该指示信息,并根据该指示信息确定采用待调整运动矢量作为当前图像块的目标运动矢量,或者,采用预调整运动矢量作为当前图像块的目标运动矢量。
[0077] 例如,在编码端,若采用预调整运动矢量作为当前图像块的目标运动矢量,则指示信息为第一指示信息,若采用待调整运动矢量作为当前图像块的目标运动矢量,则指示信息为第二指示信息。在解码端,若从该编码比特流中解析出第一指示信息,则根据该第一指示信息确定采用预调整运动矢量作为当前图像块的目标运动矢量;若从该编码比特流中解析出第二指示信息,则根据该第二指示信息确定采用待调整运动矢量作为当前图像块的目标运动矢量。
[0078] 实施例二:
[0079] 本申请实施例中提出一种边界强度确定方法,可以应用于编码端或解码端,参见图4所示,为该方法的流程示意图,该方法可以包括以下步骤:
[0080] 步骤401,获取待处理单元的边界的第一相邻图像块的第一操作信息;其中,该第一操作信息用于指示第一相邻图像块已进行精细化操作或者未进行精细化。
[0081] 步骤402,获取该边界的第二相邻图像块的第二操作信息;其中,该第二操作信息用于指示第二相邻图像块已进行精细化操作或者未进行精细化。
[0082] 步骤403,根据该第一操作信息和该第二操作信息确定边界的边界强度。
[0083] 在一个例子中,待处理单元可以是所有的预测单元和变换单元,待处理单元的边界可以是垂直边界或者水平边界,第一相邻图像块包括边界上侧的图像块,第二相邻图像块包括边界下侧的图像块;或者,第一相邻图像块包括边界左侧的图像块,第二相邻图像块包括边界右侧的图像块。例如,参见图1A和图1B所示,针对待处理单元的垂直边界,第一相邻图像块(即相邻图像块P)是该垂直边界左侧的图像块,第二相邻图像块(即相邻图像块Q)是该垂直边界右侧的图像块。此外,针对待处理单元的水平边界,则第一相邻图像块是该水平边界上侧的图像块,则第二相邻图像块是该水平边界下侧的图像块。
[0084] 在一个例子中,针对第一相邻图像块和第二相邻图像块,可以获知该第一相邻图像块和该第二相邻图像块是否进行精细化操作,例如,每个图像块均可以具有特定标记,而该特定标记用于指示该图像块是否进行精细化操作,基于此,可以通过该第一相邻图像块的特定标记,获知该第一相邻图像块是否进行精细化操作,可以通过该第二相邻图像块的特定标记,获知该第二相邻图像块是否进行精细化操作;当然,上述方式只是一个示例,对此不做限制。
[0085] 进一步的,在获知第一相邻图像块是否进行精细化操作后,就可以确定第一相邻图像块的第一操作信息,该第一操作信息用于指示第一相邻图像块已进行精细化操作或者未进行精细化,例如,通过操作信息A1表示第一相邻图像块已进行精细化操作,通过操作信息A2表示第一相邻图像块未进行精细化操作。
[0086] 此外,在获知第二相邻图像块是否进行精细化操作后,就可以确定第二相邻图像块的第二操作信息,该第二操作信息用于指示第二相邻图像块已进行精细化操作或者未进行精细化,例如,通过操作信息B1表示第二相邻图像块已进行精细化操作,通过操作信息B2表示第二相邻图像块未进行精细化操作。
[0087] 在得到第一操作信息和第二操作信息后,就可以根据该第一操作信息和该第二操作信息确定边界的边界强度,例如,可以采用如下情况确定边界强度:
[0088] 情况一、若该第一相邻图像块已进行精细化操作,或该第二相邻图像块已进行精细化操作,则可以确定边界的边界强度为第一数值;或者,若该第一相邻图像块未进行精细化操作,且该第二相邻图像块未进行精细化操作,则可以确定第一相邻图像块的待调整运动矢量与第二相邻图像块的待调整运动矢量的差值,并利用该差值确定边界的边界强度;或者,若该第一相邻图像块已进行精细化操作,且该第二相邻图像块已进行精细化操作,则可以确定边界的边界强度为第二数值;或者,若该第一相邻图像块未进行精细化操作,或该第二相邻图像块未进行精细化操作,则可以确定第一相邻图像块的待调整运动矢量与第二相邻图像块的待调整运动矢量的差值,并利用该差值确定边界的边界强度。
[0089] 其中,第一数值为1或2,当然,第一数值还可以其它数值,对此不做限制。
[0090] 其中,第二数值为1或2,当然,第二数值还可以其它数值,对此不做限制。
[0091] 情况二、确定该第一相邻图像块的待调整运动矢量与该第二相邻图像块的待调整运动矢量之间的差值;进一步的,若该差值的绝对值大于或者等于预设阈值,则:当该第一相邻图像块已进行精细化操作,或该第二相邻图像块已进行精细化操作时,则可以确定边界的边界强度为第三数值;或者,当该第一相邻图像块未进行精细化操作,且该第二相邻图像块未进行精细化操作时,则可以确定边界的边界强度为第四数值;或者,当该第一相邻图像块已进行精细化操作,且该第二相邻图像块已进行精细化操作时,则可以确定边界的边界强度为第五数值;或者,当该第一相邻图像块未进行精细化操作,或该第二相邻图像块未进行精细化操作时,则可以确定边界的边界强度为第六数值。
[0092] 其中,第三数值可以为0,第四数值可以为1,第五数值可以为0,第六数值可以为1。当然,上述各个数值还可以其它的数值,对此不做限制。
[0093] 方式三、确定该第一相邻图像块的待调整运动矢量与该第二相邻图像块的待调整运动矢量之间的差值;进一步的,若该差值的绝对值小于预设阈值,则:
[0094] 当该第一相邻图像块已进行精细化操作,或该第二相邻图像块已进行精细化操作时,则可以确定边界的边界强度为第七数值;或者,当该第一相邻图像块未进行精细化操作,且该第二相邻图像块未进行精细化操作时,则可以确定边界的边界强度为第八数值;或者,当该第一相邻图像块已进行精细化操作,且该第二相邻图像块已进行精细化操作时,则可以确定边界的边界强度为第九数值;或者,当该第一相邻图像块未进行精细化操作,或该第二相邻图像块未进行精细化操作时,则可以确定边界的边界强度为第十数值。
[0095] 其中,第七数值可以为1或2,第八数值可以为0,第九数值可以为1或2,第十数值可以为0。当然,上述各个数值还可以其它的数值,对此不做限制。
[0096] 在一个例子中,上述边界强度确定方法可以应用于编码端,也可以应用于解码端,也就是说,编码端可以采用上述方法,确定待处理单元的边界的边界强度,解码端也可以采用上述方法,确定待处理单元的边界的边界强度。
[0097] 由以上技术方案可见,本申请实施例中,可以对边界强度的确定流程进行改进,即通过修改去方块滤波的决策,进而可以避免出现错误的去方块滤波的决策结果。可以解决边界强度的获取结果出现错误的问题,从而可以获取到正确的边界强度,可以纠正仅通过存储原始运动矢量而而误判边界强度的情况,从而减少由于运动矢量调整所导致的块效应。
[0098] 以下结合几个具体应用场景,对上述几种方式进行详细说明。
[0099] 应用场景1:参见图5A所示,为边界强度确定方法的流程图,第一相邻图像块是相邻图像块P,而第二相邻图像块是相邻图像块Q,该方法可以包括:
[0100] 步骤511,判断相邻图像块P或相邻图像块Q是否采用帧内预测。
[0101] 如果是,则可以确定边界强度=2;如果否,则可以执行步骤512。
[0102] 步骤512,判断相邻图像块P或相邻图像块Q是否有非零变换系数。
[0103] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤513。
[0104] 步骤513,判断相邻图像块P与相邻图像块Q是否使用不同的参考帧。
[0105] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤514。
[0106] 步骤514,判断相邻图像块P与相邻图像块Q的运动矢量个数是否不同。
[0107] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤515。
[0108] 步骤515,判断相邻图像块P或相邻图像块Q是否已进行精细化操作。
[0109] 如果是,则可以确定边界强度=1或2;如果否,则可以执行步骤516。
[0110] 步骤516,判断相邻图像块P与相邻图像块Q的运动矢量差值的绝对值是否大于等于4;如果是,则确定边界强度=1;如果否,则确定边界强度=0。
[0111] 其中,相邻图像块P与相邻图像块Q的运动矢量差值,是相邻图像块P的待调整运动矢量与相邻图像块Q的待调整运动矢量的差值。在一个例子中,针对每个图像块来说,都具有一个原始运动矢量,编码端/解码端针对图像块存储的运动矢量,也就是该图像块的原始运动矢量。这个原始运动矢量是没有经过精细化操作的运动矢量,因此,可以将原始运动矢量称为待调整运动矢量。
[0112] 应用场景2:参见图5B所示,为边界强度确定方法的流程图,第一相邻图像块是相邻图像块P,而第二相邻图像块是相邻图像块Q,该方法可以包括:
[0113] 步骤521,判断相邻图像块P或相邻图像块Q是否采用帧内预测。
[0114] 如果是,则可以确定边界强度=2;如果否,则可以执行步骤522。
[0115] 步骤522,判断相邻图像块P或相邻图像块Q是否有非零变换系数。
[0116] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤523。
[0117] 步骤523,判断相邻图像块P与相邻图像块Q是否使用不同的参考帧。
[0118] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤524。
[0119] 步骤524,判断相邻图像块P与相邻图像块Q的运动矢量个数是否不同。
[0120] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤525。
[0121] 步骤525,判断相邻图像块P与相邻图像块Q是否已进行精细化操作。
[0122] 如果是,则可以确定边界强度=1或2;如果否,则可以执行步骤526。
[0123] 步骤526,判断相邻图像块P与相邻图像块Q的运动矢量差值的绝对值是否大于等于4;如果是,则确定边界强度=1;如果否,则确定边界强度=0。
[0124] 应用场景3:参见图5C所示,为边界强度确定方法的流程图,第一相邻图像块是相邻图像块P,而第二相邻图像块是相邻图像块Q,该方法可以包括:
[0125] 步骤531,判断相邻图像块P或相邻图像块Q是否采用帧内预测。
[0126] 如果是,则可以确定边界强度=2;如果否,则可以执行步骤532。
[0127] 步骤532,判断相邻图像块P或相邻图像块Q是否有非零变换系数。
[0128] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤533。
[0129] 步骤533,判断相邻图像块P与相邻图像块Q是否使用不同的参考帧。
[0130] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤534。
[0131] 步骤534,判断相邻图像块P与相邻图像块Q的运动矢量个数是否不同。
[0132] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤535。
[0133] 步骤535,判断相邻图像块P与相邻图像块Q的运动矢量差值的绝对值是否大于等于4;如果是,则执行步骤536;如果否,则确定边界强度=0。
[0134] 步骤536,判断相邻图像块P或相邻图像块Q是否已进行精细化操作。
[0135] 如果是,则可以确定边界强度=0;如果否,则可以确定边界强度=1。
[0136] 应用场景4:参见图5D所示,为边界强度确定方法的流程图,第一相邻图像块是相邻图像块P,而第二相邻图像块是相邻图像块Q,该方法可以包括:
[0137] 步骤541,判断相邻图像块P或相邻图像块Q是否采用帧内预测。
[0138] 如果是,则可以确定边界强度=2;如果否,则可以执行步骤542。
[0139] 步骤542,判断相邻图像块P或相邻图像块Q是否有非零变换系数。
[0140] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤543。
[0141] 步骤543,判断相邻图像块P与相邻图像块Q是否使用不同的参考帧。
[0142] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤544。
[0143] 步骤544,判断相邻图像块P与相邻图像块Q的运动矢量个数是否不同。
[0144] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤545。
[0145] 步骤545,判断相邻图像块P与相邻图像块Q的运动矢量差值的绝对值是否大于等于4;如果是,则执行步骤546;如果否,则确定边界强度=0。
[0146] 步骤546,判断相邻图像块P与相邻图像块Q是否已进行精细化操作。
[0147] 如果是,则可以确定边界强度=0;如果否,则可以确定边界强度=1。
[0148] 应用场景5:参见图5E所示,为边界强度确定方法的流程图,第一相邻图像块是相邻图像块P,而第二相邻图像块是相邻图像块Q,该方法可以包括:
[0149] 步骤551,判断相邻图像块P或相邻图像块Q是否采用帧内预测。
[0150] 如果是,则可以确定边界强度=2;如果否,则可以执行步骤552。
[0151] 步骤552,判断相邻图像块P或相邻图像块Q是否有非零变换系数。
[0152] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤553。
[0153] 步骤553,判断相邻图像块P与相邻图像块Q是否使用不同的参考帧。
[0154] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤554。
[0155] 步骤554,判断相邻图像块P与相邻图像块Q的运动矢量个数是否不同。
[0156] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤555。
[0157] 步骤555,判断相邻图像块P与相邻图像块Q的运动矢量差值的绝对值是否大于等于4;如果是,则确定边界强度=1;如果否,则执行步骤556。
[0158] 步骤556,判断相邻图像块P或相邻图像块Q是否已进行精细化操作。
[0159] 如果是,则可以确定边界强度=1或2;如果否,则可以确定边界强度=0。
[0160] 应用场景6:参见图5F所示,为边界强度确定方法的流程图,第一相邻图像块是相邻图像块P,而第二相邻图像块是相邻图像块Q,该方法可以包括:
[0161] 步骤561,判断相邻图像块P或相邻图像块Q是否采用帧内预测。
[0162] 如果是,则可以确定边界强度=2;如果否,则可以执行步骤562。
[0163] 步骤562,判断相邻图像块P或相邻图像块Q是否有非零变换系数。
[0164] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤563。
[0165] 步骤563,判断相邻图像块P与相邻图像块Q是否使用不同的参考帧。
[0166] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤564。
[0167] 步骤564,判断相邻图像块P与相邻图像块Q的运动矢量个数是否不同。
[0168] 如果是,则可以确定边界强度=1;如果否,则可以执行步骤565。
[0169] 步骤565,判断相邻图像块P与相邻图像块Q的运动矢量差值的绝对值是否大于等于4;如果是,则确定边界强度=1;如果否,则执行步骤566。
[0170] 步骤566,判断相邻图像块P与相邻图像块Q是否已进行精细化操作。
[0171] 如果是,则可以确定边界强度=1或2;如果否,则可以确定边界强度=0。
[0172] 实施例三:
[0173] 基于与上述方法同样的申请构思,本申请实施例还提出一种运动矢量确定装置,应用于编码端或解码端,参见图6所示,为所述装置的结构图,包括:
[0174] 获取模块61,用于获取当前图像块的待调整运动矢量、与所述待调整运动矢量对应的预调整运动矢量;其中,所述预调整运动矢量是对所述待调整运动矢量进行预精细化操作后得到的运动矢量;第一确定模块62,用于根据所述待调整运动矢量与所述当前图像块的相邻图像块的候选运动矢量确定第一边界强度;根据所述预调整运动矢量与所述候选运动矢量确定第二边界强度;
[0175] 第二确定模块63,用于根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
[0176] 所述获取模块61还用于获取所述相邻图像块的候选运动矢量;具体的,获取与所述相邻图像块对应的操作标记;若所述操作标记的标识值为第一标识,则确定所述候选运动矢量是所述相邻图像块的与待调整运动矢量对应的候选预调整运动矢量集合中的运动矢量。若所述操作标记的标识值为第二标识,则确定所述候选运动矢量是所述相邻图像块的待调整运动矢量。
[0177] 所述第一确定模块62根据所述待调整运动矢量与所述当前图像块的相邻图像块的候选运动矢量确定第一边界强度时具体用于:确定所述待调整运动矢量与所述候选运动矢量的第一差值;利用所述第一差值确定所述第一边界强度;
[0178] 所述第一确定模块62根据所述预调整运动矢量与所述候选运动矢量确定第二边界强度时具体用于:确定所述预调整运动矢量与所述候选运动矢量的第二差值;利用所述第二差值确定所述第二边界强度。
[0179] 若候选运动矢量为一个,所述第二确定模块63根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量时具体用于:若所述第一边界强度与所述第二边界强度不同,则确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;否则,确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
[0180] 若候选运动矢量为多个,第二确定模块63根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量时具体用于:若任一候选运动矢量对应的第一边界强度与所述候选运动矢量对应的第二边界强度不同,则确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;否则,确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
[0181] 若候选运动矢量为多个,所述第二确定模块63根据所述第一边界强度和所述第二边界强度确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量时具体用于:针对每个候选运动矢量,确定所述候选运动矢量对应的第一边界强度与所述候选运动矢量对应的第二边界强度是否相同,并统计边界强度不同的候选运动矢量的数量;根据所述数量确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,或者,采用所述预调整运动矢量作为所述当前图像块的目标运动矢量;具体的,若所述数量大于数量阈值,确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;若所述数量不大于数量阈值,确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量;或者,
[0182] 若所述数量与候选运动矢量的总数量的比例大于比例阈值,则确定采用所述待调整运动矢量作为所述当前图像块的目标运动矢量;
[0183] 若所述数量与候选运动矢量的总数量的比例不大于比例阈值,则确定采用所述预调整运动矢量作为所述当前图像块的目标运动矢量。
[0184] 所述第二确定模块63还用于:
[0185] 若采用所述预调整运动矢量作为所述当前图像块的目标运动矢量,则确定所述操作标记的标识值为第一标识;若采用所述待调整运动矢量作为所述当前图像块的目标运动矢量,则确定所述操作标记的标识值为第二标识。
[0186] 实施例四:
[0187] 基于与上述方法同样的申请构思,本申请实施例还提出一种边界强度确定装置,应用于编码端或解码端,参见图7所示,为所述装置的结构图,包括:
[0188] 获取模块71,用于获取待处理单元的边界的第一相邻图像块的第一操作信息;所述第一操作信息用于指示所述第一相邻图像块已进行精细化操作或未进行精细化;获取所述边界的第二相邻图像块的第二操作信息;所述第二操作信息用于指示所述第二相邻图像块已进行精细化操作或未进行精细化;确定模块72,用于根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度。
[0189] 所述确定模块72根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度时具体用于:若所述第一相邻图像块已进行精细化操作,或所述第二相邻图像块已进行精细化操作,则确定所述边界的边界强度为第一数值;
[0190] 或者,若所述第一相邻图像块未进行精细化操作,且所述第二相邻图像块未进行精细化操作,确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值,并利用所述差值确定所述边界的边界强度;
[0191] 或者,若所述第一相邻图像块已进行精细化操作,且所述第二相邻图像块已进行精细化操作,则确定所述边界的边界强度为第二数值;或者,
[0192] 若所述第一相邻图像块未进行精细化操作,或所述第二相邻图像块未进行精细化操作,则确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值,并利用所述差值确定所述边界的边界强度。
[0193] 所述确定模块72根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度时具体用于:确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值;若所述差值的绝对值大于或等于预设阈值,则:当所述第一相邻图像块已进行精细化操作,或所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第三数值;或者,
[0194] 当所述第一相邻图像块未进行精细化操作,且所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第四数值;或者,
[0195] 当所述第一相邻图像块已进行精细化操作,且所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第五数值;或者,
[0196] 当所述第一相邻图像块未进行精细化操作,或所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第六数值。
[0197] 所述确定模块72根据所述第一操作信息和所述第二操作信息确定所述边界的边界强度时具体用于:确定所述第一相邻图像块的待调整运动矢量与所述第二相邻图像块的待调整运动矢量的差值;若所述差值的绝对值小于预设阈值,则:当所述第一相邻图像块已进行精细化操作,或所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第七数值;或者,
[0198] 当所述第一相邻图像块未进行精细化操作,且所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第八数值;或者,
[0199] 当所述第一相邻图像块已进行精细化操作,且所述第二相邻图像块已进行精细化操作时,则确定所述边界的边界强度为第九数值;或者,
[0200] 当所述第一相邻图像块未进行精细化操作,或所述第二相邻图像块未进行精细化操作时,则确定所述边界的边界强度为第十数值。
[0201] 实施例五:
[0202] 本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图可以参见图8所示。包括:处理器81和机器可读存储介质82,所述机器可读存储介质82存储有能够被所述处理器81执行的机器可执行指令;所述处理器81用于执行机器可执行指令,以实现上述运动矢量确定方法或者边界强度确定方法。
[0203] 实施例六:
[0204] 本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图可以参见图9所示。包括:处理器91和机器可读存储介质92,所述机器可读存储介质92存储有能够被所述处理器91执行的机器可执行指令;所述处理器91用于执行机器可执行指令,以实现上述运动矢量确定方法或者边界强度确定方法。
[0205] 实施例七:
[0206] 基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述运动矢量确定方法或者边界强度确定方法。
[0207] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0208] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0209] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0210] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0211] 而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
[0212] 这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0213] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈