CN115955572A - 编码方法、解码方法、电子设备和计算机可读存储介质 - Google Patents
编码方法、解码方法、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115955572A CN115955572A CN202211463049.1A CN202211463049A CN115955572A CN 115955572 A CN115955572 A CN 115955572A CN 202211463049 A CN202211463049 A CN 202211463049A CN 115955572 A CN115955572 A CN 115955572A
- Authority
- CN
- China
- Prior art keywords
- block
- predicted
- sub
- motion vector
- subblock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 239000013598 vector Substances 0.000 claims abstract description 241
- 230000000875 corresponding effect Effects 0.000 claims description 315
- 230000002596 correlated effect Effects 0.000 claims description 10
- 230000002123 temporal effect Effects 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000013519 translation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种编码方法、解码方法、电子设备和计算机可读存储介质,该方法包括:获得当前帧中的当前块,将当前块分成多个待预测子块;构建待预测子块对应的运动矢量列表;在当前帧对应的参考帧中获得运动矢量列表中每个运动矢量对应的参考子块,基于参考子块对应的参考模板和待预测子块对应的当前模板,确定待预测子块对应的目标运动矢量;其中,参考模板包括参考子块对应的多个参考像素,当前模板包括待预测子块对应的多个参考像素;利用目标运动矢量对待预测子块进行预测,得到待预测子块对应的目标子块。上述方案,能够提高编码的效率。
Description
技术领域
本申请涉及视频编码技术领域,特别是涉及一种编码方法、解码方法、电子设备和计算机可读存储介质。
背景技术
由于视频原始的数据量较大,通常需要对视频进行编码压缩以降低视频的数据量,现有的编码标准中在进行帧间子块预测时,通常是在构建运动矢量列表后,基于运动矢量列表中运动矢量指向的参考子块进行代价值比较,而子块之间进行代价值比较的效率较低,以致编码效率不高。有鉴于此,如何提高编码的效率成为了亟待解决的问题。
发明内容
本申请主要解决的技术问题是提供一种编码方法、解码方法、电子设备和计算机可读存储介质,能够提高编码的效率。
为解决上述技术问题,本申请第一方面提供一种编码方法,该方法包括:获得当前帧中的当前块,将所述当前块分成多个待预测子块;构建所述待预测子块对应的运动矢量列表;在所述当前帧对应的参考帧中获得所述运动矢量列表中每个运动矢量对应的参考子块,基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板,确定所述待预测子块对应的目标运动矢量;其中,所述参考模板包括所述参考子块对应的多个参考像素,所述当前模板包括所述待预测子块对应的多个参考像素;利用所述目标运动矢量对所述待预测子块进行预测,得到所述待预测子块对应的目标子块。
为解决上述技术问题,本申请第二方面提供一种解码方法,该方法包括:接收编码器发送的编码数据;对所述编码数据进行解码,得到当前解码块对应的目标解码块;其中,所述编码数据是采用如第一方面所述的编码方法处理得到的。
为解决上述技术问题,本申请第三方面提供一种电子设备,该电子设备包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行上述第一方面或第二方面所述的方法。
为解决上述技术问题,本申请第四方面提供一种计算机可读存储介质,其上存储有程序数据,所述程序数据被处理器执行时实现如第一方面或第二方面所述的方法。
上述方案,获得当前帧中的当前块后,将当前块分成多个待预测子块,构建待预测子块对应的运动矢量列表,在当前帧对应的参考帧中确定运动矢量列表中每个运动矢量对的参考子块,利用参考子块对应的参考模板和待预测子块对应的当前模板来进行代价值比较,其中,参考模板包括参考子块对应的多个参考像素,当前模板包括待预测子块对应的多个参考像素,从而基于参考模板和当前模板筛选出待预测子块对应的目标运动矢量,以减少比特开销提高编码效率,进而利用目标运动矢量对待预测子块进行预测,从而确定待预测子块对应的目标子块,即可得到当前块中所有待预测子块对应的目标子块。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请编码方法一实施方式的流程示意图;
图2是本申请编码方法另一实施方式的流程示意图;
图3是图2中步骤S202对应的一实施方式的应用场景示意图;
图4是图2中步骤S203对应的一实施方式的应用场景示意图;
图5是图2中步骤S204之前对应的一实施方式的应用场景示意图;
图6是图2中步骤S204之前对应的另一实施方式的应用场景示意图;
图7是图2中步骤S204之前对应的又一实施方式的应用场景示意图;
图8是本申请解码方法一实施方式的流程示意图;
图9是本申请电子设备一实施方式的结构示意图;
图10是本申请计算机可读存储介质一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
本申请所提供的编码方法用于对视频中的视频帧进行编码,解码方法用于对利用上述编码方法编码后的视频进行解码,本申请所提供的编码方法和解码方法的执行主体为能够调用视频的处理器。
请参阅图1,图1是本申请编码方法一实施方式的流程示意图,该方法包括:
S101:获得当前帧中的当前块,将当前块分成多个待预测子块。
具体地,获得当前帧后从当前帧中确定当前块,对当前块进行划分得到多个待预测子块。
在一应用方式中,获得当前帧中的当前块,将当前块按预设固定尺寸分成多个子块,并将子块分别作为待预测子块。
在另一应用方式中,获得当前帧中的当前块,确定当前块的当前尺寸,基于当前块的当前尺寸将当前块分成多个子块,并将子块分别作为待预测子块。
S102:构建待预测子块对应的运动矢量列表。
具体地,利用当前块和当前块对应的时域同位块中的至少一个,构建待预测子块对应的运动矢量列表。
在一应用方式中,利用当前块对应的运动矢量,构建待预测子块对应的运动矢量列表。
在另一应用方式中,利用当前块对应的运动矢量以及当前块在空域上对应的空域重建块对应的运动矢量,构建待预测子块对应的运动矢量列表。
在又一应用方式中,利用当前块在时域上对应的时域同位块对应的运动矢量,构建待预测子块对应的运动矢量列表。
在又一应用方式中,利用当前块对应的运动矢量以及当前块在时域上对应的时域同位块对应的运动矢量,构建待预测子块对应的运动矢量列表。
S103:在当前帧对应的参考帧中获得运动矢量列表中每个运动矢量对应的参考子块,基于参考子块对应的参考模板和待预测子块对应的当前模板,确定待预测子块对应的目标运动矢量。
具体地,在当前帧对应的参考帧中确定运动矢量列表中每个运动矢量对的参考子块,利用参考子块对应的参考模板和待预测子块对应的当前模板来进行代价值比较,其中,参考模板包括参考子块对应的多个参考像素,当前模板包括待预测子块对应的多个参考像素,从而基于参考模板和当前模板筛选出待预测子块对应的目标运动矢量,以减少比特开销提高编码效率,其中,当前模板对应的参考像素包括与当前块相邻的已编码像素,参考模板对应的参考像素包括与参考块相邻的已编码像素,其中,参考块基于当前块及其对应的运动矢量从参考帧中确定。
在一应用方式中,基于待预测子块对应的运动矢量列表中的运动矢量,在当前帧对应的参考帧中确定运动矢量所指向的参考子块,在参考子块在固定方向上确定参考子块对应的参考模板,获得待预测子块在固定方向上的当前模板,基于参考子块对应的参考模板和待预测子块对应的当前模板,确定参考子块相对待预测子块的代价值,将代价值最低的参考子块对应的运动矢量作为待预测子块对应的目标运动矢量。
在另一应用方式中,基于待预测子块对应的运动矢量列表中的运动矢量,在当前帧对应的参考帧中确定运动矢量所指向的参考子块,从待预测子块对应的所有参考像素中选择部分参考像素作为待预测子块的当前模板,在参考子块对应的参考像素中选择与当前模板位置匹配的参考像素作为参考子块的参考模板,基于参考子块对应的参考模板和待预测子块对应的当前模板,确定参考子块相对待预测子块的代价值,将代价值最低的参考子块对应的运动矢量作为待预测子块对应的目标运动矢量。
S104:利用目标运动矢量对待预测子块进行预测,得到待预测子块对应的目标子块。
具体地,基于目标运动矢量对应的参考子块对待预测子块进行预测,确定待预测子块对应的目标预测值,得到待预测子块对应的目标子块。
进一步地,在得到目标预测值后,可以确定目标预测值与原始像素值的差值,即残差,然后编码器基于残差进行编码,以压缩视频的数据量。
上述方案,获得当前帧中的当前块后,将当前块分成多个待预测子块,构建待预测子块对应的运动矢量列表,在当前帧对应的参考帧中确定运动矢量列表中每个运动矢量对的参考子块,利用参考子块对应的参考模板和待预测子块对应的当前模板来进行代价值比较,其中,参考模板包括参考子块对应的多个参考像素,当前模板包括待预测子块对应的多个参考像素,从而基于参考模板和当前模板筛选出待预测子块对应的目标运动矢量,以减少比特开销提高编码效率,进而利用目标运动矢量对待预测子块进行预测,从而确定待预测子块对应的目标子块,即可得到当前块中所有待预测子块对应的目标子块。
请参阅图2,图2是本申请编码方法另一实施方式的流程示意图,该方法包括:
S201:获得当前帧中的当前块,将当前块分成多个待预测子块。
具体地,获得当前帧后从当前帧中确定当前块,对当前块进行分割得到多个待预测子块。
在一应用方式中,基于当前块的当前尺寸将当前块分成多个待预测子块;其中,当前帧被分成多种预设尺寸的待编码块,当前尺寸与当前块对应的待编码块的预设尺寸对应,待预测子块的尺寸与当前尺寸正相关。
具体地,当前帧被分成多个待编码块,且待编码块对应有预设尺寸,预设尺寸的数量为多个,获得当前块后确定当前块对应的待编码块对应的预设尺寸,从而确定当前块对应的当前尺寸,基于当前尺寸将当前块分成多个待预测子块,待预测子块的尺寸与当前尺寸正相关,从而提高待预测子块划分的精度。
在一应用场景中,当前帧被分成多个预设尺寸的待编码块,其中,预设尺寸包括大于尺寸阈值的尺寸和小于尺寸阈值的尺寸,获得当前块后确定当前块对应的待编码块及其对应的预设尺寸,从而判断当前块对应的当前尺寸是否超过尺寸阈值,若超过,则将当前块划分为第一尺寸的待预测子块,若未超过,则将当前块划分为第二尺寸的待预测子块,其中,第一尺寸大于第二尺寸。故此,基于当前块的当前尺寸能够将当前块划分为不同尺寸的待预测子块,提高对不同视频帧的灵活适应性,增加算法的泛用性。
在一具体应用场景中,当前帧被分成多个预设尺寸的待编码块,其中,尺寸阈值为16*16,大于尺寸阈值的预设尺寸为至少一个,对应为尺寸阈值的预设尺寸为一个,若当前块对应的当前尺寸大于尺寸阈值,则将当前块划分为多个第一尺寸为8*8的待预测子块,若当前块对应的当前尺寸为尺寸阈值,则将当前块划分成多个第二尺寸为4*4的待预测子块。其中,在其他应用场景中,也可以设置多个数值递增的尺寸阈值,并基于尺寸阈值设置对应的第一尺寸和第二尺寸,本申请对此不做具体限制。
S202:基于当前块,以及当前块对应的空域重建块和时域同位块中的至少一个,构建待预测子块对应的运动矢量列表。
具体地,利用当前块,以及当前块对应的空域重建块和时域同位块中的至少一个,构建待预测子块对应的运动矢量列表。
可选地,基于当前块、空域重建块和时域同位块中的至少一个,或者两两之间的组合,或者三者来待预测子块对应的运动矢量列表,从而能够利用当前块本身、空域上对应的空域重建块和时域上对应的时域同位块中的至少一个,来构建运动矢量列表,以提高构建运动矢量列表的精度。
在一应用方式中,基于当前块对应的当前运动矢量列表,构建待预测子块对应的运动矢量列表;或者,基于当前块对应的当前运动矢量列表,以及时域同位块中至少一个子块单元对应的子块运动矢量,构建待预测子块对应的运动矢量列表;或者,基于时域同位块中至少部分子块单元对应的子块运动矢量,以及指定方向上的至少一个空域重建块对应的运动矢量,构建待预测子块对应的运动矢量列表;或者,基于时域同位块中所有子块单元对应的子块运动矢量,构建待预测子块对应的运动矢量列表。
具体地,请参阅图3,图3是图2中步骤S202对应的一实施方式的应用场景示意图,如图3中所示,时域同位块位于当前帧对应的同位帧中,图3中当前块中部分示意出的灰色块即为待预测子块,图3中斜线填充的区域即为子块单元,且当前块和时域同位块中的子块和子块单元存在位置上的对应关系,其中,子块单元的尺寸小于待预测子块的尺寸。
在一应用场景中,将当前块对应的当前运动矢量列表,作为待预测子块对应的运动矢量列表,以提高构建运动矢量列表的效率。
在另一应用场景中,在当前块对应的当前运动矢量列表的基础上,从当前块中选择至少一个子块单元,基于当前块和时域同位块的位置对应关系,从时域同位块中提取对应的子块单元及其对应的子块运动矢量,从而基于当前运动矢量列表和从时域同位块中提取出的子块运动矢量,构建待预测子块对应的运动矢量列表,其中,时域同位块为时域上的已编码块,故而时域同位块中的子块单元对应的子块运动矢量为子块单元的最佳运动矢量,从而提高运动矢量列表中运动矢量的精度。
在又一应用场景中,在时域同位块中提取至少部分子块单元作为指定子块单元,在指定子块单元对应的子块运动矢量的基础上,结合当前块的指定方向上确定至少一个空域重建块,构建待预测子块对应的运动矢量列表,其中,空域重建块为当前块空域上相邻的已编码块,故而空域重建块对应的运动矢量为空域重建块的最佳运动矢量,从而提高运动矢量列表中运动矢量的精度。
在又一应用场景中,利用时域同位块中的所有子块单元对应的子块运动矢量,构建待预测子块对应的运动矢量列表,其中,时域同位块为时域上的已编码块,故而时域同位块中的子块单元对应的子块运动矢量为子块单元的最佳运动矢量,从而提高运动矢量列表中运动矢量的精度。
在一具体应用场景中,当前块的指定方向包括当前块的左侧和/或上方,从而在其中一个或两个方向上确定当前块对应的空域重建块,在其他具体应用场景中,指定方向也可以是其他方向,本申请对此不做具体限制。
S203:遍历待预测子块对应的运动矢量列表,利用运动矢量列表中的每个运动矢量,从参考帧中获得每个运动矢量对应的参考子块,其中,参考子块及其对应的参考模板组成候选参考区域。
具体地,请参阅图4,图4是图2中步骤S203对应的一实施方式的应用场景示意图,遍历待预测子块对应的运动矢量列表中的运动矢量,利用运动矢量从参考帧中确定每个运动矢量对应的参考子块,如图4所示,参考子块及其对应的参考像素共同组成候选参考区域,其中,图4中填充颜色相同或填充图案相同的区域为同一候选参考区域,以图4为例,参考模板为参考子块正上方和/或正左侧相邻的参考像素,其中,图4中示意图包括正上方和正左侧的场景,以及只包括正上方或只包括正左侧的场景。
S204:基于参考子块对应的参考模板和待预测子块对应的当前模板之间的代价值,得到待预测子块对应的目标运动矢量并从候选参考区域中得到目标参考区域。
具体地,比对参考子块对应的参考模板和待预测子块对应的当前模板,基于参考模板和当前模板之间的模板误差值确定参考模板和当前模板之间的代价值,从运动矢量列表中选择一个运动矢量作为目标运动矢量并选择一个候选参考区域作为目标参考区域,其中,模板误差值可以基于绝对误差和、差值的平方和、平均绝对差值、平均平方误差获取,从而基于参考模板和当前模板筛选出待预测子块对应的目标运动矢量和目标参考区域,以减少比特开销提高编码效率。
需要说明的是,当前块中的至少部分待预测子块为指定待预测子块,其中,指定待预测子块对应的运动矢量列表中的运动矢量进行调整,以提高指定预测子块对应的运动矢量列表中运动矢量的精度,构建更多的候选参考区域以提高编码的准确率。
进一步地,请参阅图5,图5是图2中步骤S204之前对应的一实施方式的应用场景示意图,指定待预测子块可为当前块中的所有待预测子块或者预设边缘上的部分待预测子块。其中,预设边缘可以是左上边缘,即图5中所示的灰色子块作为指定待预测子块,进而在当前帧中各个编码块依次作为当前块遍历过程中,当前帧中的至少部分待预测子块的运动矢量列表经过调整,从而提高当前帧的编码精度。
在一应用场景中,响应于当前的待预测子块为指定待预测子块,基于参考子块对应的参考模板和待预测子块对应的当前模板之间的代价值,得到待预测子块对应的目标运动矢量并从候选参考区域中得到目标参考区域之前,包括:将每个运动矢量对应的参考子块分别作为待调整子块;将待调整子块在参考帧中预设方向上的预设范围内进行移动,得到多个衍生参考子块,将待调整子块及其对应的参考模板以及多个衍生参考子块及其对应的参考模板,作为待调整子块对应的候选参考区域。
具体地,若当前的待预测子块为指定待预测子块,将每个运动矢量对应的参考子块分别作为待调整子块,也就是对所有参考子块均进行调整,从而将待调整子块在参考帧中预设方向上的预设范围内进行移动,将参考子块移动到的位置所对应的区域作为衍生参考子块,从而得到多个衍生参考子块,将待调整子块及其对应的参考模板以及待调整子块对应的多个衍生参考子块及其对应的参考模板,作为待调整子块对应的候选参考区域,遍历所有待调整子块后,完成对所有参考子块的调整,构建完善的候选参考区域,提高编码的精度。
进一步地,基于参考子块对应的参考模板和待预测子块对应的当前模板之间的代价值,得到待预测子块对应的目标运动矢量并从候选参考区域中得到目标参考区域,包括:将每个运动矢量对应的所有候选参考区域作为第一意向参考区域,基于每个第一意向参考区域中的参考模板与当前模板之间的第一代价值,筛选得到待预测子块对应的目标参考区域,将目标参考区域对应的运动矢量作为目标运动矢量;其中,第一代价值与第一意向参考区域对应的参考模板与当前模板的差异正相关,目标参考区域为第一代价值最小的第一意向参考区域。
具体地,获得每个运动矢量对应的所有候选参考区域后,将所有候选参考区域作为第一意向参考区域,基于每个第一意向参考区域参考模板和当前模板之间的模板误差值确定参考模板和当前模板之间的第一代价值,其中,模板误差越大则第一代价值越高,故而,第一代价值与第一意向参考区域对应的参考模板与当前模板的差异正相关,将第一代价值进行排序从而筛选得到第一代价值最小的第一意向参考区域,作为待预测子块对应的目标参考区域,在确定目标参考区域后,将目标参考区域对应的运动矢量作为待预测子块对应的目标运动矢量,从而对应大量的候选参考区域通过比较参考模板和当前模板来确定第一代价值,以提高筛选效率并减少筛选过程的比特开销。
在另一应用场景中,响应于当前的待预测子块为指定待预测子块,基于参考子块对应的参考模板和待预测子块对应的当前模板之间的代价值,得到待预测子块对应的目标运动矢量并从候选参考区域中得到目标参考区域之前,包括:基于每个运动矢量对应的参考子块和待预测子块之间的代价值,从运动矢量列表中确定待预测子块对应的目标运动矢量,将目标运动矢量对应的参考子块作为待调整子块;将待调整子块在参考帧中预设方向上的预设范围内进行移动,得到多个衍生参考子块,将待调整子块及其对应的参考模板以及多个衍生参考子块及其对应的参考模板,作为待调整子块对应的候选参考区域。
具体地,若当前的待预测子块为指定待预测子块,基于每个运动矢量对应的参考子块和待预测子块之间的子块误差值,确定每个参考子块和待预测子块之间的代价值,从运动矢量列表中选择一个运动矢量作为目标运动矢量,只将目标运动矢量对应的参考子块作为待调整子块,从而将待调整子块在参考帧中预设方向上的预设范围内进行移动,将参考子块移动到的位置所对应的区域作为衍生参考子块,从而得到多个衍生参考子块,将待调整子块及其对应的参考模板以及待调整子块对应的多个衍生参考子块及其对应的参考模板,作为待调整子块对应的候选参考区域,从而优先筛选目标运动矢量后再单独对目标运动矢量进行调整,构建与目标运动矢量相对应的多个候选参考区域,以提高运动矢量列表中运动矢量调整的效率。
进一步地,基于参考子块对应的参考模板和待预测子块对应的当前模板之间的代价值,得到待预测子块对应的目标运动矢量并从候选参考区域中得到目标参考区域,包括:将目标运动矢量对应的所有候选参考区域作为第二意向参考区域,基于每个第二意向参考区域中的参考模板与当前模板之间的第二代价值,筛选得到待预测子块对应的目标参考区域;其中,第二代价值与第二意向参考区域对应的参考模板与当前模板的差异正相关,目标参考区域为第二代价值最小的第二意向参考区域。
具体地,获得目标运动矢量对应的所有候选参考区域后,将目标运动矢量对应的所有候选参考区域作为第二意向参考区域,基于每个第二意向参考区域参考模板和当前模板之间的模板误差值确定参考模板和当前模板之间的第二代价值,其中,模板误差越大则第二代价值越高,故而,第二代价值与第二意向参考区域对应的参考模板与当前模板的差异正相关,将第二代价值进行排序从而筛选得到第二代价值最小的第二意向参考区域,作为待预测子块对应的目标参考区域。
需要说明的是,将待调整子块在参考帧中预设方向上的预设范围内进行移动,得到多个衍生参考子块,包括:将待调整子块在参考帧中,按多个第一方向和多个第一步长两两组合进行平移处理,得到多个衍生参考子块;或者,在参考帧中基于待调整参考子块对应的运动矢量的方向以及预设范围,确定待调整参考子块对应的搜索范围,利用搜索框从搜索范围内的任一角部开始按第二步长遍历搜索范围,得到多个衍生参考子块;其中,待调整参考子块在搜索范围内,搜索框的尺寸与待调整参考子块的尺寸相同。
在一实施方式中,请参阅图6,图6是图2中步骤S204之前对应的另一实施方式的应用场景示意图,确定多个第一方向和多个第一步长,将不同的第一方向和第一步长两两组合,从而按照组合结果进行平移处理,得到多个衍生参考子块,且衍生参考子块及其对应的参考模板共同组成候选参考区域,从而实现候选参考区域的拓展,增加获取目标参考区域的候选项,提高编码精度,在图6中以第一方向为垂直向上,垂直向下,水平向左,水平向右共四个方向,第一步长为两个像素和四个像素为例,参考子块及其对应的参考模板组成初始的候选参考区域,按照第一方向和第一步长两两组合的方式,对初始的候选参考区域进行平移,从而得到如图6所示的共八个衍生参考子块及其对应的参考模板组成的候选参考区域。
在另一实施方式中,请参阅图7,图7是图2中步骤S204之前对应的又一实施方式的应用场景示意图,在参考帧中以待调整参考子块对应的运动矢量的方向上的一个点为中心,将该中心预设范围内的区域作为待调整参考子块对应的搜索范围,以使搜索范围将初始的参考子块包括在其中,利用尺寸与参考子块相同的搜索框从搜索范围内的任一角部开始按第二步长遍历搜索范围,得到多个衍生参考子块,从而实现候选参考区域的拓展,增加获取目标参考区域的候选项,提高编码精度,在图7中以待调整参考子块的尺寸为4*4,搜索范围选择运动矢量指向位置上下左右各偏8像素框成的16*16范围内,设置第二步长为两个像素为例,在参考帧中以运动矢量所指向的方向上选择一个点作为中心,将该中心预设范围内的区域作为待调整参考子块对应的搜索范围,在搜索范围内从左上角开始以第二步长进行搜索,得到多个衍生参考子块。
在一具体应用场景中,遍历待预测子块的运动矢量列表获得参考子块,基于第一方向和第一步长在参考帧中移动参考子块构建多个候选参考区域,作为第一意向参考区域,对每个参考子块衍生出的第一意向参考区域的参考模板和当前模板之间的第一代价值进行排序,得到每个参考子块衍生出的第一意向参考区域中第一代价值最小的第一意向参考区域,将其中第一代价值最小的第一意向参考区域作为待预测子块的目标参考区域。
在另一具体应用场景中,遍历待预测子块的运动矢量列表获得参考子块,基于列表中每个运动矢量在参考帧中确定搜索范围,并在搜索范围内进行参考区域的偏移搜索,构建每个参考子块所衍生出的候选参考区域,得到每个参考子块对应的第一意向参考区域,基于每次搜索的第一意向参考区域中参考模板和当前模板间的第一代价值进行排序,得到每个参考子块中第一代价值最小的第一意向参考区域,再进一步比较每个参考子块中第一代价值最小的第一意向参考区域,将其中第一代价值最小的第一意向参考区域作为待预测子块的目标参考区域。
在又一具体应用场景中,遍历待预测子块的运动矢量列表获得参考子块,根据待预测子块和参考子块的代价值排序,取代价值最小的运动矢量为目标运动矢量,基于第一方向和第一步长在参考帧中移动目标运动矢量对应的参考子块构建多个候选参考区域,作为第二意向参考区域,根据第二意向参考区域中参考模板和当前模板之间的第二代价值进行排序,将其中第二代价值最小的第二意向参考区域作为待预测子块的目标参考区域。
在又一具体应用场景中,遍历待预测子块的运动矢量列表获得参考子块,根据待预测子块和参考子块的代价值排序,取代价值最小的运动矢量为目标运动矢量,基于目标运动矢量在参考帧中确定搜索范围,并在搜索范围内进行参考区域的偏移搜索,构建目标运动矢量对应的参考子块所衍生出的候选参考区域,得到第二意向参考区域,根据第二意向参考区域中参考模板和当前模板之间的第二代价值进行排序,将其中第二代价值最小的第二意向参考区域作为待预测子块的目标参考区域。
S205:利用目标运动矢量对待预测子块进行预测,得到待预测子块对应的目标子块。
具体地,基于目标参考区域对待预测子块上每个像素点进行预测,确定待预测子块上每个像素点对应的目标预测值,得到目标子块。其中,目标参考区域中包括参考子块及其对应的参考模板,利用更多的参考信息对待预测子块上的每个像素点进行预测,得到每个像素点对应的目标预测值,提高目标预测值的准确率,在得到目标预测值后,可以确定目标预测值与原始像素值的差值,即残差,然后编码器基于残差进行编码,以压缩视频的数据量。
可选地,若目标参考区域为经过调整后的衍生参考子块及其对应的参考模板,则利用目标参考区域对待预测子块进行预测的精度能够进一步提高。
可以理解的是,当遍历完当前块中的所有待预测子块后,即可完成对当前块中所有待预测子块的预测。
需要说明的是,在上述步骤S204之前,若将每个运动矢量对应的参考子块分别作为待调整子块,则利用目标运动矢量对待预测子块进行预测,得到待预测子块对应的目标子块之后,包括:生成第一句法元素;其中,第一句法元素用于指示解码器在编码过程中执行获得当前帧中的当前块,将当前块分成多个待预测子块的步骤,至利用目标运动矢量对待预测子块进行预测,得到待预测子块对应的目标子块的步骤;生成第二句法元素;其中,第二句法元素用于将每个待预测子块各自对应的目标运动矢量指示给解码器。
具体地,第一句法元素对应本申请所采用的方法的启用或关闭的标识,用于指示解码器在编码过程中采用了本申请的编码方法,第二句法元素用于将每个待预测子块对应的目标运动矢量指示给解码器,以便解码器能够获取待预测子块对应的目标运动矢量,其中,解码器能够构建出与编码器端相同的运动矢量列表,从而第二句法元素将目标运动矢量在运动矢量列表中的位置指示给解码器,进而解码器能够从运动矢量列表中确定目标运动矢量。
进一步地,解码器在进行代价值比较时只需要基于参考模板和当前模板进行代价值比较,也就是解码器只需要基于已编码过的参考像素进行代价值比较,故而无需传输额外的句法元素解码器即可完成对当前解码块的解码过程。
进一步地,在上述步骤S204之前,若先从运动矢量列表中确定目标运动矢量,则利用目标运动矢量对待预测子块进行预测,得到待预测子块对应的目标子块之后,包括:生成第一句法元素;其中,第一句法元素用于指示解码器在编码过程中执行获得当前帧中的当前块,将当前块分成多个待预测子块的步骤,至利用目标运动矢量对待预测子块进行预测,得到待预测子块对应的目标子块的步骤;生成第二句法元素;其中,第二句法元素用于将每个待预测子块各自对应的目标运动矢量指示给解码器;生成第三句法元素;其中,第三句法元素用于将指定待预测子块对应的待调整子块与衍生参考子块之间的调整方式指示给解码器。
具体地,第一句法元素对应本申请所采用的方法的启用或关闭的标识,用于指示解码器在编码过程中采用了本申请的编码方法,第二句法元素用于将每个待预测子块对应的目标运动矢量指示给解码器,以便解码器能够获取待预测子块对应的目标运动矢量,第三句法元素用于将指定待预测子块在运动矢量调整的过程中待调整子块和衍生参考子块之间的调整方式指示给解码器。
进一步地,解码器能够构建出与编码器端相同的运动矢量列表,从而第二句法元素将目标运动矢量在运动矢量列表中的位置指示给解码器,进而解码器能够从运动矢量列表中确定目标运动矢量,若目标运动矢量的调整信息在编码器端是利用待预测子块对应的原始像素信息得到的,则在解码器端由于无法获取当前解码块对应的原始像素信息,故而需要传输额外的第三句法元素,以指示解码器如何基于目标运动矢量进行调整,进而获得当前解码块对应的预测像素信息,以使解码器完成对当前解码块的解码过程。
在一应用场景中,第一句法元素对应一个块级的句法标识subblock_TM_mode,subblock_TM_mode等于0代表待预测子块不使用本申请的编码方法,subblock_TM_mode等于1代表启用本申请的编码方法,第二句法元素对应一个句法标识subblock_TM_mv_index,用于指示待预测子块对应的目标运动矢量的标识号,当指定待预测子块利用第一方向和第一步长进行调整时,第三句法元素对应两个调整句法标识包括用于指示第一方向的subblock_TM_mv_dir,以及用于指示第一步长的subblock_TM_mv_step,当指定待预测子块利用预设范围和第二步长进行调整时,第三句法元素对应调整信息包括目标参考区域对应的参考子块与目标运动矢量对应的参考子块之间的方向差异。
在本实施例中,基于当前尺寸将当前块分成多个待预测子块,待预测子块的尺寸与当前尺寸正相关,从而提高待预测子块划分的精度,利用空域重建块和/或时域同位块构建待预测子块对应的运动矢量列表,以丰富运动矢量列表,对于指定待预测子块基于运动矢量列表中的所有运动矢量对应的参考子块进行调整,或者运动矢量列表中确定目标运动矢量后对目标运动矢量对应的参考子块进行调整,从而构建更多的候选参考区域,增加获取目标参考区域的候选项,提高编码精度,利用目标参考区域对待预测子块进行预测,最终生成与当前块所匹配的句法元素为解码器提供指示。
请参阅图8,图8是本申请解码方法一实施方式的流程示意图,该方法包括:
S801:接收编码器发送的编码数据。
具体地,编码数据是采用上述任一实施例中的编码方法处理得到的,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
S802:对编码数据进行解码,得到当前解码块对应的目标解码块。
具体地,解码数据包括残差和目标运动矢量,解码器基于目标运动矢量从参考帧中确定当前解码块的参考解码块,基于参考解码块和残差得到目标解码块。
请参阅图9,图9是本申请电子设备一实施方式的结构示意图,该电子设备90包括相互耦接的存储器901和处理器902,其中,存储器901存储有程序数据(图未示),处理器902调用程序数据以实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
请参阅图10,图10是本申请计算机可读存储介质一实施方式的结构示意图,该计算机可读存储介质100存储有程序数据1000,该程序数据1000被处理器执行时实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
需要说明的是,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (16)
1.一种编码方法,其特征在于,所述方法包括:
获得当前帧中的当前块,将所述当前块分成多个待预测子块;
构建所述待预测子块对应的运动矢量列表;
在所述当前帧对应的参考帧中获得所述运动矢量列表中每个运动矢量对应的参考子块,基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板,确定所述待预测子块对应的目标运动矢量;其中,所述参考模板包括所述参考子块对应的多个参考像素,所述当前模板包括所述待预测子块对应的多个参考像素;
利用所述目标运动矢量对所述待预测子块进行预测,得到所述待预测子块对应的目标子块。
2.根据权利要求1所述的编码方法,其特征在于,所述构建所述待预测子块对应的运动矢量列表,包括
基于所述当前块,以及所述当前块对应的空域重建块和时域同位块中的至少一个,构建所述待预测子块对应的运动矢量列表。
3.根据权利要求2所述的编码方法,其特征在于,所述基于所述当前块,以及所述当前块对应的空域重建块和时域同位块中的至少一个,构建所述待预测子块对应的运动矢量列表,包括:
基于所述当前块对应的当前运动矢量列表,构建所述待预测子块对应的运动矢量列表;或者,
基于所述当前块对应的当前运动矢量列表,以及所述时域同位块中至少一个子块单元对应的子块运动矢量,构建所述待预测子块对应的运动矢量列表;或者,
基于所述时域同位块中至少部分子块单元对应的子块运动矢量,以及指定方向上的至少一个空域重建块对应的运动矢量,构建所述待预测子块对应的运动矢量列表;或者,
基于所述时域同位块中所有子块单元对应的子块运动矢量,构建所述待预测子块对应的运动矢量列表。
4.根据权利要求1所述的编码方法,其特征在于,所述在所述当前帧对应的参考帧中获得所述运动矢量列表中每个运动矢量对应的参考子块,基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板,确定所述待预测子块对应的目标运动矢量,包括:
遍历所述待预测子块对应的运动矢量列表,利用所述运动矢量列表中的每个运动矢量,从所述参考帧中获得每个所述运动矢量对应的参考子块;其中,所述参考子块及其对应的所述参考模板组成候选参考区域;
基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板之间的代价值,得到所述待预测子块对应的所述目标运动矢量并从所述候选参考区域中得到目标参考区域。
5.根据权利要求4所述的编码方法,其特征在于,所述利用所述目标运动矢量对所述待预测子块进行预测,得到所述待预测子块对应的目标子块,包括:
基于所述目标参考区域对所述待预测子块上每个像素点进行预测,确定所述待预测子块上每个像素点对应的目标预测值,得到所述目标子块。
6.根据权利要求4所述的编码方法,其特征在于,所述当前块中的至少部分所述待预测子块为指定待预测子块,响应于当前的所述待预测子块为所述指定待预测子块,所述基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板之间的代价值,得到所述待预测子块对应的所述目标运动矢量并从所述候选参考区域中得到目标参考区域之前,包括:
将每个所述运动矢量对应的参考子块分别作为待调整子块;
将所述待调整子块在所述参考帧中预设方向上的预设范围内进行移动,得到多个衍生参考子块,将所述待调整子块及其对应的参考模板以及多个所述衍生参考子块及其对应的参考模板,作为所述待调整子块对应的候选参考区域。
7.根据权利要求6所述的编码方法,其特征在于,所述基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板之间的代价值,得到所述待预测子块对应的所述目标运动矢量并从所述候选参考区域中得到目标参考区域,包括:
将每个所述运动矢量对应的所有所述候选参考区域作为第一意向参考区域,基于每个所述第一意向参考区域中的参考模板与所述当前模板之间的第一代价值,筛选得到所述待预测子块对应的目标参考区域,将所述目标参考区域对应的运动矢量作为所述目标运动矢量;
其中,所述第一代价值与所述第一意向参考区域对应的参考模板与所述当前模板的差异正相关,所述目标参考区域为所述第一代价值最小的第一意向参考区域。
8.根据权利要求6所述的编码方法,其特征在于,所述利用所述目标运动矢量对所述待预测子块进行预测,得到所述待预测子块对应的目标子块之后,包括:
生成第一句法元素;其中,所述第一句法元素用于指示解码器在编码过程中执行所述获得当前帧中的当前块,将所述当前块分成多个待预测子块的步骤,至所述利用所述目标运动矢量对所述待预测子块进行预测,得到所述待预测子块对应的目标子块的步骤;
生成第二句法元素;其中,所述第二句法元素用于将每个所述待预测子块各自对应的目标运动矢量指示给所述解码器。
9.根据权利要求4所述的编码方法,其特征在于,所述当前块中的至少部分所述待预测子块为指定待预测子块,响应于当前的所述待预测子块为所述指定待预测子块,所述基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板之间的代价值,得到所述待预测子块对应的所述目标运动矢量并从所述候选参考区域中得到目标参考区域之前,包括:
基于每个所述运动矢量对应的参考子块和所述待预测子块之间的代价值,从所述运动矢量列表中确定所述待预测子块对应的目标运动矢量,将所述目标运动矢量对应的参考子块作为待调整子块;
将所述待调整子块在所述参考帧中预设方向上的预设范围内进行移动,得到多个衍生参考子块,将所述待调整子块及其对应的参考模板以及多个所述衍生参考子块及其对应的参考模板,作为所述待调整子块对应的候选参考区域。
10.根据权利要求9所述的编码方法,其特征在于,所述基于所述参考子块对应的参考模板和所述待预测子块对应的当前模板之间的代价值,得到所述待预测子块对应的所述目标运动矢量并从所述候选参考区域中得到目标参考区域,包括:
将所述目标运动矢量对应的所有候选参考区域作为第二意向参考区域,基于每个所述第二意向参考区域中的参考模板与所述当前模板之间的第二代价值,筛选得到所述待预测子块对应的目标参考区域;
其中,所述第二代价值与所述第二意向参考区域对应的参考模板与所述当前模板的差异正相关,所述目标参考区域为所述第二代价值最小的第二意向参考区域。
11.根据权利要求9所述的编码方法,其特征在于,所述利用所述目标运动矢量对所述待预测子块进行预测,得到所述待预测子块对应的目标子块之后,包括:
生成第一句法元素;其中,所述第一句法元素用于指示解码器在编码过程中执行所述获得当前帧中的当前块,将所述当前块分成多个待预测子块的步骤,至所述利用所述目标运动矢量对所述待预测子块进行预测,得到所述待预测子块对应的目标子块的步骤;
生成第二句法元素;其中,所述第二句法元素用于将每个所述待预测子块各自对应的目标运动矢量指示给所述解码器;
生成第三句法元素;其中,所述第三句法元素用于将所述指定待预测子块对应的所述待调整子块与所述衍生参考子块之间的调整方式指示给所述解码器。
12.根据权利要求6或9所述的编码方法,其特征在于,所述将所述待调整子块在所述参考帧中预设方向上的预设范围内进行移动,得到多个衍生参考子块,包括:
将所述待调整子块在所述参考帧中,按多个第一方向和多个第一步长两两组合进行平移处理,得到多个所述衍生参考子块;或者,
在所述参考帧中基于所述待调整参考子块对应的运动矢量的方向以及预设范围,确定所述待调整参考子块对应的搜索范围,利用搜索框从所述搜索范围内的任一角部开始按第二步长遍历所述搜索范围,得到多个所述衍生参考子块;其中,所述待调整参考子块在所述搜索范围内,所述搜索框的尺寸与所述待调整参考子块的尺寸相同。
13.根据权利要求1所述的编码方法,其特征在于,所述将所述当前块分成多个待预测子块,包括:
基于所述当前块的当前尺寸将所述当前块分成多个待预测子块;其中,所述当前帧被分成多种预设尺寸的待编码块,所述当前尺寸与所述当前块对应的所述待编码块的预设尺寸对应,所述待预测子块的尺寸与所述当前尺寸正相关。
14.一种解码方法,其特征在于,所述方法包括:
接收编码器发送的编码数据;
对所述编码数据进行解码,得到当前解码块对应的目标解码块;其中,所述编码数据是采用如权利要求1至13任一项所述的编码方法处理得到的。
15.一种电子设备,其特征在于,包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行如权利要求1-13或14中任一项所述的方法。
16.一种计算机可读存储介质,其上存储有程序数据,其特征在于,所述程序数据被处理器执行时实现如权利要求1-13或14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211463049.1A CN115955572A (zh) | 2022-11-21 | 2022-11-21 | 编码方法、解码方法、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211463049.1A CN115955572A (zh) | 2022-11-21 | 2022-11-21 | 编码方法、解码方法、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115955572A true CN115955572A (zh) | 2023-04-11 |
Family
ID=87281380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211463049.1A Pending CN115955572A (zh) | 2022-11-21 | 2022-11-21 | 编码方法、解码方法、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115955572A (zh) |
-
2022
- 2022-11-21 CN CN202211463049.1A patent/CN115955572A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101797805B1 (ko) | 디코딩 방법, 디코딩 장치, 및 컴퓨터 판독가능한 저장 매체 | |
KR102447241B1 (ko) | 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치 | |
JP2020039167A (ja) | 計算装置及び方法 | |
KR20210045387A (ko) | 변형 행렬 선택의 계수에 따른 코딩 | |
KR20230125348A (ko) | 다중 참조 예측을 위한 움직임 벡터 개선 | |
US20200244989A1 (en) | Method and device for inter-prediction mode-based image processing | |
US20230362401A1 (en) | Image encoding/decoding method and apparatus | |
KR20150034696A (ko) | 현재 블록의 분할을 예측하여 비디오를 코딩하는 방법, 디코딩 방법 및 이에 상응하는 코딩 및 디코딩 장치 및 컴퓨터 프로그램 | |
US10965938B2 (en) | Method and apparatus for encoding a video | |
CN112673627B (zh) | 在图像编码系统中使用仿射合并候选列表的基于仿射运动预测的图像解码方法和装置 | |
Fu et al. | Efficient depth intra frame coding in 3D-HEVC by corner points | |
KR102553665B1 (ko) | 비디오 코딩 시스템에서 인터 예측 방법 및 장치 | |
TWI559751B (zh) | 用於評估要轉換成被跳過巨集區塊的巨集區塊候選者的方法、系統和電腦程式產品 | |
CN115955572A (zh) | 编码方法、解码方法、电子设备和计算机可读存储介质 | |
CN114079783B (zh) | 一种编解码方法、装置及其设备 | |
KR20220066166A (ko) | 현재 블록의 예측 방법 및 예측 장치, 디바이스, 저장 매체 | |
CN113794884A (zh) | 一种编解码方法、装置及其设备 | |
KR102513585B1 (ko) | 비디오 처리 시스템에서 인터 예측 방법 및 장치 | |
CN114979632A (zh) | 块矢量的编解码方法、编码设备、解码设备及存储介质 | |
CN117859329A (zh) | 用于基于块的视频编解码的符号预测 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |