编码方法及装置与流程

文档序号:30667213发布日期:2022-07-06 03:40阅读:109来源:国知局
编码方法及装置与流程

1.本公开涉及数据处理领域,尤其涉及一种编码方法及装置。


背景技术:

2.目前,视频编码标准h.266/vvc引入了多叉树划分,即除了四叉树划分, 还包括垂直二叉树划分、水平二叉树划分、垂直三叉树划分、水平三叉树划 分。新的划分架构提升了编码效率,但也带来了极高的编码复杂度,这种高 复杂度限制了视频编码标准h.266/vvc的大规模推广和应用。
3.由于h.266/vvc中引入了多叉树划分,不同的划分模式可能会得到相同 的编码块,即同一位置同一大小的编码块可以通过不同的划分方式得到。例 如,在编码过程中,编码树单元通过四叉树划分可能得到编码块1,通过先 进行水平二叉树再进行垂直二叉树划分也可能得到编码块2且与编码块1的 内容相同,相关技术针对编码块1和编码块2均进行单独编码。因此,上述 针对相同内容的两个编码块进行单独编码的编码过程导致了不必要的重复操 作,编码效率较低。


技术实现要素:

4.本公开提供一种编码方法及装置,以至少解决相关技术针对相同内容的 编码块均进行单独编码,导致编码时间成本大、效率低的问题。
5.根据本公开实施例的第一方面,提供一种编码方法,包括:获取待编码 数据的编码树单元;通过对编码树单元进行多叉树划分,得到至少一个编码 块;针对至少一个编码块中每个编码块,获取当前编码块的属性标识,并确 定属性标识关联的编码标志位,其中,编码标志位用于指示是否存在与当前 编码块相同内容的编码块被编码过;在编码标志位指示存在与当前编码块内 容相同的编码块被编码过的情况下,根据属性标识对应的编码信息对当前编 码块进行编码。
6.可选地,获取当前编码块的属性标识,包括:根据当前编码块上预定点 的二维坐标和当前编码块的尺寸,得到当前编码块的四维坐标,其中,二维 坐标中横坐标为当前编码块上预定点与编码树单元左侧边界的距离,二维坐 标中纵坐标为当前编码块上预定点与编码树单元上侧边界的距离;
7.可选地,根据当前编码块上预定点的二维坐标和当前编码块的尺寸,得 到当前编码块的四维坐标,包括:获取当前编码块左上角的二维坐标;基于 最小编码块的尺寸和当前编码块所包含的最小编码块的排列方式,确定当前 编码块的宽度和高度;基于二维坐标、宽度和高度,得到当前编码块的四维 坐标。
8.可选地,在根据当前编码块上预定点的二维坐标和当前编码块的尺寸, 得到当前编码块的四维坐标之前,还包括:按编码块所允许的最小尺寸对编 码树单元进行划分,得到至少一个最小编码块;确定至少一个最小编码块中 每个最小编码块左上角的二维坐标,并存储各最小编码块对应的二维坐标。
9.可选地,获取当前编码块左上角的二维坐标,包括:确定当前编码块所 包含的排列在左上位置的最小编码块;将排列在左上位置的最小编码块左上 角的二维坐标,作为当前编码块左上角的二维坐标。
10.可选地,上述编码方法还包括:在编码标志位指示不存在与当前编码块 相同内容的编码块被编码过的情况下,遍历与当前编码块相关的所有编码模 式,选择编码代价最小的编码模式对当前编码块进行编码;将属性标识、当 前编码块的编码信息和编码标志位关联存储,并更新编码标志位的取值,更 新后的编码标志位指示存在与当前编码相同内容的编码块被编码过。
11.可选地,属性标识关联的编码信息包括以下至少之一:目标划分模式、 预测模式、目标参考帧、编码代价。
12.可选地,根据属性标识关联的编码信息对当前编码块进行编码,包括: 基于目标划分模式对当前编码块进行划分;基于预测模式和/或编码代价选择 当前编码块对应的至少一种编码模式;基于目标参考帧,确定当前编码块的 参考帧列表中最大参考帧个数;基于最大参考帧的个数从至少一种编码模式 中选择当前编码块的编码模式,并基于选择的编码模式对当前编码块进行编 码。
13.可选地,基于预测模式和/或编码代价选择当前编码块的编码模式,包括: 根据预先存储的第一编码加速策略,确定预测模式对应的目标预测模式,在 除目标预测模式以外的其他预测模式中,选择当前编码块对应的至少一种编 码模式;或,根据预先存储的第二编码加速策略,确定编码代价对应的目标 编码模式,在编码代价小于预设阈值的情况下,在除目标编码模式以外的其 他编码模式中,选择当前编码块对应的至少一种编码模式;或,根据预先存 储的第三编码加速策略,确定预测模式对应的目标预测模式和编码代价对应 的目标编码模式,在除目标预测模式以外的其他预测模式中,选择当前编码 块对应的多种编码模式;并在编码代价小于预设阈值的情况下,在多种编码 模式中除目标编码模式以外的其他编码模式中,选择当前编码块对应的至少 一种编码模式。
14.可选地,基于目标参考帧,确定当前编码块的参考帧列表中最大参考帧 个数,包括:确定目标参考帧的序号;基于序号,确定当前编码块的参考帧 列表中最大参考帧个数。
15.根据本公开实施例的第二方面,提供一种编码装置,包括:获取单元, 被配置为获取待编码数据的编码树单元;划分单元,被配置为通过对编码树 单元进行多叉树划分,得到至少一个编码块;标识确定单元,被配置为针对 至少一个编码块中每个编码块,获取当前编码块的属性标识,并确定属性标 识关联的编码标志位,其中,编码标志位用于指示是否存在与当前编码块相 同内容的编码块被编码过;编码单元,被配置为在编码标志位指示存在与当 前编码块内容相同的编码块被编码过的情况下,根据属性标识对应的编码信 息对当前编码块进行编码。
16.可选地,标识确定单元,还被配置为根据当前编码块上预定点的二维坐 标和当前编码块的尺寸,得到当前编码块的四维坐标,其中,二维坐标中横 坐标为当前编码块上预定点与编码树单元左侧边界的距离,二维坐标中纵坐 标为当前编码块上预定点与编码树单元上侧边界的距离;将四维坐标作为当 前编码块的属性标识。
17.可选地,标识确定单元,还被配置为获取当前编码块左上角的二维坐标; 基于最小编码块的尺寸和当前编码块所包含的最小编码块的排列方式,确定 当前编码块的宽度
和高度;基于二维坐标、宽度和高度,得到当前编码块的 四维坐标。
18.可选地,标识确定单元,还被配置为在根据当前编码块上预定点的二维 坐标和当前编码块的尺寸,得到当前编码块的四维坐标之前,按编码块所允 许的最小尺寸对编码树单元进行划分,得到至少一个最小编码块;确定至少 一个最小编码块中每个最小编码块左上角的二维坐标,并存储各最小编码块 对应的二维坐标。
19.可选地,标识确定单元,还被配置为确定当前编码块所包含的排列在左 上位置的最小编码块;将排列在左上位置的最小编码块左上角的二维坐标, 作为当前编码块左上角的二维坐标。
20.可选地,编码单元,还被配置为在编码标志位指示不存在与当前编码块 相同内容的编码块被编码过的情况下,遍历与当前编码块相关的所有编码模 式,选择编码代价最小的编码模式对当前编码块进行编码;将属性标识、当 前编码块的编码信息和编码标志位关联存储,并更新编码标志位的取值,更 新后的编码标志位指示存在与当前编码相同内容的编码块被编码过。
21.可选地,属性标识关联的编码信息包括以下至少之一:目标划分模式、 预测模式、目标参考帧、编码代价。
22.可选地,编码单元,还被配置为基于目标划分模式对当前编码块进行划 分;基于预测模式和/或编码代价选择当前编码块对应的至少一种编码模式; 基于目标参考帧,确定当前编码块的参考帧列表中最大参考帧个数;基于最 大参考帧的个数从至少一种编码模式中选择当前编码块的编码模式,并基于 选择的编码模式对当前编码块进行编码。
23.可选地,编码单元,还被配置为根据预先存储的第一编码加速策略,确 定预测模式对应的目标预测模式,在除目标预测模式以外的其他预测模式中, 选择当前编码块对应的至少一种编码模式;或,根据预先存储的第二编码加 速策略,确定编码代价对应的目标编码模式,在编码代价小于预设阈值的情 况下,在除目标编码模式以外的其他编码模式中,选择当前编码块对应的至 少一种编码模式;或,根据预先存储的第三编码加速策略,确定预测模式对 应的目标预测模式和编码代价对应的目标编码模式,在除目标预测模式以外 的其他预测模式中,选择当前编码块对应的多种编码模式;并在编码代价小 于预设阈值的情况下,在多种编码模式中除目标编码模式以外的其他编码模 式中,选择当前编码块对应的至少一种编码模式。
24.可选地,编码单元,还被配置为确定目标参考帧的序号;基于序号,确 定当前编码块的参考帧列表中最大参考帧个数。
25.根据本公开实施例的第三方面,提供了一种电子设备,包括:处理器; 用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以 实现根据本公开的编码方法。
26.根据本公开实施例的第四方面,提供了一种计算机可读存储介质,当计 算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器 执行如上根据本公开的编码方法。
27.根据本公开实施例的第五方面,提供了一种计算机程序产品,包括计算 机指令,计算机指令被处理器执行时实现根据本公开的编码方法。
28.本公开的实施例提供的技术方案至少带来以下有益效果:
29.根据本公开的编码方法及装置,每个编码块均有自己的属性标识,来标 识编码块的位置和大小,当属性标识指示的位置上有与当前编码块相同内容 的编码块被编码过时,可以通过该被编码过的编码块的编码信息对当前编码 块进行编码,即可以利用已编码的信息来加速当前编码块的编码过程,极大 地节省了编码时间。因此,本公开解决了相关技术针对相同内容的编码块均 进行单独编码,导致编码时间成本大、效率低的问题。
30.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性 的,并不能限制本公开。
附图说明
31.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公 开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的 不当限定。
32.图1是示出相关技术中bt/tt划分示意图;
33.图2是示出相关技术中qt/bt/tt划分示意图;
34.图3是示出根据本公开的示例性实施例的编码方法的实施场景示意图;
35.图4是根据一示例性实施例示出的一种编码方法的流程图;
36.图5是根据一示例性实施例示出的一种最小编码块的示意图;
37.图6是根据一示例性实施例示出的一种编码装置的框图;
38.图7是根据本公开实施例的一种电子设备700的框图。
具体实施方式
39.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图, 对本公开实施例中的技术方案进行清楚、完整地描述。
40.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第 一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后 次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本 公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实 施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反, 它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置 和方法的例子。
41.在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表 示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若 干项的全体”这三类并列的情况。例如“包括a和b之中的至少一个”即包 括如下三种并列的情况:(1)包括a;(2)包括b;(3)包括a和b。又例 如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1) 执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
42.下面以相同位置相同大小的编码块作为相同内容的编码块为例进行说明, 如图1所示,视频编码标准h.266/vvc引入的多叉树划分,除了四叉树划分, 还包括垂直二叉树划分(split_bt_ver)、水平二叉树划分 (split_bt_hor)、垂直三叉树划分(split_tt_ver)、水平三叉树划分 (split_tt_hor)。由于h.266/vvc中引入了多叉树划分,不同的划分模 式可能会得到相同的编码块,即同一位置同一大小的编码块可以通过不同的 划分方式得到,如图2中的左上角编码块可以直接通过四叉树划分得到,也 可以通过先进行水平二叉树再
进行垂直二叉树划分得到,相关技术针对相同 的左上角编码块均进行单独编码,因此,导致了不必要的重复操作,增加了 编码块的编码时间,编码效率低。针对上述问题,本公开提供了一种编码方 法,能够降低编码时间,提高编码效率,下面以视频编码场景为例进行说明。
43.图3是示出根据本公开的示例性实施例的编码方法的实施场景示意图, 如图3所述,该实施场景包括服务器100、用户终端110和用户终端120,其 中,用户终端不限于2个,包括并不限于手机、个人计算机等设备,用户终 端可以安装获取视频的摄像头,服务器可以是一个服务器,也可以是若干个 服务器组成服务器集群,还可以是云计算平台或虚拟化中心。
44.用户终端110或用户终端120通过摄像头获取视频文件,将该视频文件 发送到服务器100进行编码,服务器100在接收到视频文件后,先将视频文 件的每一帧切割成相等大小的编码树单元,然后在服务器100中的编码器中 进行编码(为了简化表述,后续直接表述服务器100进行编码操作),编码的 过程可以如下:服务器100通过对编码树单元进行多叉树划分,得到至少一 个编码块;针对至少一个编码块中每个编码块,服务器100获取当前编码块 的属性标识,并确定属性标识关联的编码标志位,其中,编码标志位用于指 示是否存在与当前编码块相同内容的编码块被编码过,在编码标志位指示存 在与当前编码块内容相同的编码块被编码过的情况下,根据属性标识对应的 编码信息对所述当前编码块进行编码。在通过不同划分得到的当前编码块均 编码完成后,比较所有当前编码块的编码结果,然后选择编码最好的编码结 果或合并所有编码结果作为当前编码块的最终编码结果。
45.下面,将参照图4至图6详细描述根据本公开的示例性实施例的编码方 法及装置。
46.图4是根据一示例性实施例示出的一种编码方法的流程图,如图4所示, 编码方法包括以下步骤:
47.在步骤s401中,获取待编码数据的编码树单元。
48.例如,待编码数据可以划分为相等大小的编码树单元,其中,编码树单 元(codingtreeunit,缩写为ctu)是h.265/高效率视讯编码 (highefficiencyvideocoding,缩写为hevc)的处理单元,此处理单元类似 h.264/高阶视讯编码(advancedvideocoding,缩写为avc)中的宏区块 (macroblock);而编码树单元的大小可以从16x16到64x64,具体大小根据 需要设定,但使用比h.264更大的处理单元可以得到更好的压缩效果。
49.在步骤s402中,通过对编码树单元进行多叉树划分,得到至少一个编码 块。
50.例如,针对一个编码树单元的编码可能需要进行多次划分,采用不同的 划分模式均会得到相应的编码块,如图2所示可以对编码树单元进行四叉树 划分得到图中前者,还可以先对编码树单元进行水平二叉树再进行垂直二叉 树划分得到图中后者,当然为了编码需要,还可以采用其他划分模式继续划 分该编码树单元,本公开并不进行限定。上述至少一个编码单元即多次划分 后的编码块,如以图2所示的两次划分为例,上述至少一个编码单元则包括7个编码块。
51.在步骤s403中,针对至少一个编码块中每个编码块,获取当前编码块的 属性标识,并确定属性标识关联的编码标志位,其中,编码标志位用于指示 是否存在与当前编码块相同内容的编码块被编码过。
52.上述属性标识可以是坐标,如四维坐标,也可以是其他信息,只要可以 用于唯一
标识当前编码块即可,本公开对此并不进行限定。上述编码标志位 可以是flag标识,如可以在flag=0时指示存在与当前编码块相同内容的编码 块被编码过,在flag=1时指示不存在与当前编码块相同内容的编码块被编码 过,对此,本公开并不进行限定。与当前编码块相同内容的编码块可以是上 述一个编码树单元进行多次划分后得到与当前编码块相同位置相同大小的编 码块,如图2中左上角的两个相同编码块,也可以是与当前编码块的位置不 同或者大小不同但是内容相同的编码块,本公开对此并不进行限定。
53.下面以属性标识为四维坐标为例说明本公开的编码方法。
54.根据本公开的示例性实施例,获取当前编码块的属性标识,包括:根据 当前编码块上预定点的二维坐标和当前编码块的尺寸,得到当前编码块的四 维坐标,其中,二维坐标中横坐标为当前编码块上预定点与编码树单元左侧 边界的距离,二维坐标中纵坐标为当前编码块上预定点与编码树单元上侧边 界的距离;将四维坐标作为当前编码块的属性标识。根据本实施例,将四维 坐标确定为属性标识,可以方便的确定出内容相同的编码块。
55.需要说明的是,上述预定点可以是当前编码块的任一点,例如,可以是 当前编码块的左上角,可以是当前编码块的右上角,还可以是当前编码块的 中心点,对此,本公开并不进行限定。
56.下面以预定点为当前编码块的坐上角为例进行说明。
57.根据本公开的示例性实施例,根据当前编码块上预定点的二维坐标和当 前编码块的尺寸,得到所述当前编码块的四维坐标,包括:获取当前编码块 左上角的二维坐标;基于最小编码块的尺寸和当前编码块所包含的最小编码 块的排列方式,确定当前编码块的宽度和高度;基于二维坐标、宽度和高度, 得到当前编码块的四维坐标。
58.根据本实施例,通过最小编码块确定当前编码块的高度、宽度,进而确 定四维坐标,可以减少占用的存储空间,如果用像素来确定宽度和高度,一 个8
×
8的编码块需要8个存储空间,而用最小编码块(4
×
4),只需要4个 存储空间。需要说明的是,在得到当前编码块后,可以将当前编码块进行划 分,进而获得到所包括的最小编码块的排列方式,排列方式包含划分得到的 所有最小编码块的个数和排列结构。
59.例如,根据多叉树划分得到的当前编码块左上角的二维坐标用(idxx, idxy)表示,idxx和idxy分别对应左上角相对编码树单元(coding tree unit, 缩写为ctu)左侧边界和上侧边界的距离,下面结合图5进行说明,图5是 根据一示例性实施例示出的一种最小编码块的示意图,如图5中a格点 idxx=8,idxy=8。根据多叉树划分得到的当前编码块的尺寸用(width,height) 表示,width、height是当前编码块的宽度和高度,且width和height为最小 编码块尺寸mincbsize的整数倍,如图5中点和短线组成的虚线框内的编码 块width=8,height=8。根据多叉树划分得到的当前编码块左上角格点所在位 置和尺寸,确定四维坐标(idxx,idxy,width,height)来表示当前编码块 在ctu中的位置和大小。如图5所示,点和短线组成的虚线框内的编码块的 四维坐标为(8,8,8,8),粗点组成的虚线框内的编码块为(8,8,8,16),短线组 成的虚线框内的编码块为(8,8,16,8),实线框内的编码块为(8,8,16,16)。另 外,根据编码块的划分结构限制,有些编码块不允许出现,如细点组成的虚 线框内的编码块(8,8,8,32),则该编码块对应的四维坐标为无意义值。
60.根据本公开的示例性实施例,在根据当前编码块上预定点的二维坐标和 当前编码块的尺寸,得到当前编码块的四维坐标之前,还包括:按编码块所 允许的最小尺寸对编
码树单元进行划分,得到至少一个最小编码块;确定至 少一个最小编码块中每个最小编码块左上角的二维坐标,并存储各最小编码 块对应的二维坐标。根据本实施例,可以预先划分出最小编码块并存储最小 编码块左上角的二维坐标,以便可以基于该二维坐标快速的确定当前编码块 的四维坐标。
61.例如,如图5所示,根据编码树单元(coding tree unit,缩写为ctu) 的大小、编码块所允许的最小尺寸得到最小编码块,也即图5中的小方格, ctu经过多叉树划分得到的编码块的左上角则一定落在最小编码块的左上角, 一般来讲,编码块的每个角均是格点。如图5所示的ctu为64
×
64,最小 编码块尺寸为8
×
8,共得到8
×
8个最小编码块,并对应有8
×
8个左上角格 点,点a对应第二行第二列的最小编码块左上角格点。
62.根据本公开的示例性实施例,获取当前编码块左上角的二维坐标,包括: 确定当前编码块所包含的排列在左上位置的最小编码块;将排列在左上位置 的最小编码块左上角的二维坐标,作为当前编码块左上角的二维坐标。根据 本实施例,直接将排列在左上的最小编码块左上角的二维坐标作为当前编码 块左上角的二维坐标,可以快速的确定当前编码块的二维坐标。
63.在步骤s404中,在编码标志位指示存在与当前编码块内容相同的编码块 被编码过的情况下,根据属性标识对应的编码信息对当前编码块进行编码。 需要说明的,如果是相同位置相同大小的编码块时,在通过不同划分得到的 当前编码块均编码完成后,比较所有当前编码块的编码结果,然后选择编码 最好的编码结果或合并所有编码结果作为当前编码块的最终编码结果。
64.根据本公开的示例性实施例,在编码标志位指示不存在与当前编码块相 同内容的编码块被编码过的情况下,遍历与当前编码块相关的所有编码模式, 选择编码代价最小的编码模式对当前编码块进行编码;将属性标识、当前编 码块的编码信息和编码标志位关联存储,并更新所述编码标志位的取值,更 新后的编码标志位指示存在与当前编码相同内容的编码块被编码过。根据本 实施例,如没有与当前编码相同内容的编码块被编码过,则采用相关技术进 行编码后,并联存储属性标识、当前编码块的编码信息和编码标志位且更新 编码标识位,以便后续相同的编码块进行编码时使用。
65.例如,在实际编码过程中,ctu通过多叉树划分方式得到当前编码块后, 根据当前编码块左上角所在位置和当前编码块的尺寸确定该当前编码块的四 维坐标,进而通过该四维坐标关联的编码标志位确定是否存在与当前编码块 相同内容的编码块被编码过。如果该编码标志位表示不存在与当前编码块相 同内容的编码块被编码过,则通过相关技术进行常规编码,即遍历所有可能 的编码模式,通过rdo(率-失真优化,rate-distortion optimization)选择出 最优的模式(如编码代价最小的编码模式)作为当前编码块的编码模式,同 时,并联存储当前编码块的属性标识、编码信息和编码标志位,以及更新当 前编码块的四维坐标关联的编码标志,更新后的编码标志位指示存在与当前 编码相同内容的编码块被编码过,即指示当前编码块有被编码过。如果该编 码标志位表示存在与当前编码相同内容的编码块被编码过,则获取当前编码 块四维坐标关联的编码信息,然后利用该编码信息加速当前编码块的编码过 程。
66.根据本公开的示例性实施例,属性标识关联的编码信息包括以下至少之 一:目标划分模式、预测模式、目标参考帧、编码代价。具体地,每个有意 义的四维坐标关联的一组
编码信息可以包括目标划分模式、预测模式是否为 merge/skip模式,预测模式是否为affine模式,预测模式是否为intra模式、 目标参考帧、编码代价,还可以包括其他编码信息,包括但不限于amvr的精 度、intra的最优角度等,对此本公开并不进行限定。
67.根据本公开的示例性实施例,根据属性标识关联的编码信息对当前编码 块进行编码,包括:基于目标划分模式对当前编码块进行划分;基于预测模 式和/或编码代价选择当前编码块对应的至少一种编码模式;基于目标参考帧, 确定当前编码块的参考帧列表中最大参考帧个数;基于最大参考帧的个数从 至少一种编码模式中选择当前编码块的编码模式,并基于选择的编码模式对 当前编码块进行编码。根据本实施例,可以加速划分、编码以及确定最大参 考帧个数的进程,进而加速编码速度。
68.例如,在目标划分模式为不划分的情况下,不对当前编码块进行划分; 在目标划分模式为预定多叉树划分的情况下,基于预定多叉树划分对当前编 码块进行划分。具体地,如果编码信息目标划分模式为四叉树划分或者二叉 树划分或者三叉树划分,则当前编码块直接进入下一层划分。如果编码信息 中目标划分模式为不划分,则不对当前编码块进行二叉树和三叉树划分;如 果编码信息中目标划分模式为水平二叉树划分,则跳过三叉树划分和垂直二 叉树划分对当前编码块进行划分;如果编码信息中目标划分模式为垂直二叉 树划分,则跳过三叉树划分和水平二叉树划分对当前编码块进行划分;如果 编码信息中目标划分模式为水平三叉树划分,则跳过二叉树划分和垂直三叉 树划分对当前编码块进行划分;如果编码信息中目标划分模式为垂直三叉树 划分,则跳过二叉树划分和水平三叉树划分对当前编码块进行划分。需要说 明的是,上述是基于编码信息中目标划分模式加速当前块编码过程的部分规 则,还有其他规则可以用来加速,本公开对此并不进行限定。
69.又例如,在确定了当前编码块的参考帧列表中最大参考帧个数为 idxl0+1后,假设idxl0+1为3,此时代表有3个参考帧,则至少一种编码模 式会分别遍历3个参考帧,得到各自的率失真代价,选择率失真代价最低的 编码模式作为当前编码块的编码模式。需要说明的是,如果不确定最大参考 帧个数,则至少一种编码模式需要遍历的参考帧一般会超过3个,假设当前 一共有6个参考帧,那么这6个参考帧均需要遍历,增加编码时间,而有了 本公开的最大参考帧个数的限制后,可以从6个参考帧中选择前3个参考帧 遍历,这里需要说明,一般情况下,按着标准这6个参考帧是按规则排序的, 具体规则可以是标准设定好的,也可以根据需要设定。
70.根据本公开的示例性实施例,基于预测模式和/或编码代价选择当前编码 块的编码模式,包括:根据预先存储的第一编码加速策略,确定预测模式对 应的目标预测模式,在除目标预测模式以外的其他预测模式中,选择当前编 码块对应的至少一种编码模式;或,根据预先存储的第二编码加速策略,确 定编码代价对应的目标编码模式,在编码代价小于预设阈值的情况下,在除 目标编码模式以外的其他编码模式中,选择当前编码块对应的至少一种编码 模式;或,根据预先存储的第三编码加速策略,确定预测模式对应的目标预 测模式和编码代价对应的目标编码模式,在除目标预测模式以外的其他预测 模式中,选择当前编码块对应的多种编码模式;并在编码代价小于预设阈值 的情况下,在多种编码模式中除目标编码模式以外的其他编码模式中,选择 当前编码块对应的至少一种编码模式。根据本实施例,基于编码信息中的预 测模式,可以在遍历的时候跳过部分编码模式,无需全部遍历,并且编码代 价的大小可以进一步的跳过一部分编码模式,从而加速了编码速度。
71.例如,在预测模式不是affine模式的情况下,跳过affine-merge模式选择 当前编码块的编码模式;在预测模式是skip模式且不是skip-affine模式的情 况下,跳过amvr模式、merge模式中编码块标志(coded block flag,缩写为 cbf)不等于0的模式、intra模式和affine模式选择当前编码块对应的至少一 种编码模式。
72.在编码代价小于预设阈值的情况下,跳过复杂编码模式(如affine)选择 当前编码块对应的至少一种编码模式。在编码代价大于或等于预设阈值的情 况下,无需跳过复杂编码模式(如affine)选择当前编码块对应的至少一种编 码模式,即可以按目前的常规方法遍历所述有编码模式选择当前编码块对应 的至少一种编码模式。
73.又例如,在预测模式不是affine模式的情况下,跳过affine-merge模式选 择当前编码块对应的多种编码模式;在预测模式是skip模式且不是skip-affine 模式的情况下,跳过amvr模式、merge模式中编码块标志(coded block flag, 缩写为cbf)不等于0的模式、intra模式和affine模式选择当前编码块对应的 多种编码模式。当选择出多种编码模式后,继续判断编码代价是否小于预设 阈值,如果判断结果为小于,则跳过复杂编码模式(如affine)继续从多种编 码模式中选择当前编码块对应的至少一种编码模式。如果判断结果为不小于, 则从多种编码模式中选择当前编码块对应的至少一种编码模式。
74.需要说明的是,上述是基于预测模式和编码代价加速当前块编码过程的 部分规则,还有其他规则可以用来加速,本公开对此并不进行限定。
75.根据本公开的示例性实施例,基于目标参考帧,确定当前编码块的参考 帧列表中最大参考帧个数,包括:确定目标参考帧的序号;基于序号,确定 当前编码块的参考帧列表中最大参考帧个数。
76.例如,如果两个参考列表最优的参考帧为idxl0/idxl1,则当前编码块两 个参考帧列表最大参考帧个数为idxl0+1/idxl1+1。需要说明的是,上述是基 于最优的参考帧加速当前块编码过程的部分规则,还有其他规则可以用来加 速,本公开对此并不进行限定。
77.综上,由于视频编码h.266/vvc引入多叉树划分带来了极大的编码复杂 度,对编码器的实现提出了更高的要求,因此,需要针对编码器进行速度优 化。针对相关技术应用范围较窄且没有利用已编码块的编码信息加速的缺点, 本公开针对多叉树划分出现同样编码结构或者相同编码内容的特点,利用相 同内容的已编码块的信息来加速后续编码块的编码过程的方法来提高编码速 度,如,根据当前编码块在ctu中的位置和当前编码块的宽高确定一个四维 坐标来标识当前编码块的当前位置和大小,并关联一个编码标志位来标识编 码块是否已经被编码过,同时还关联一组编码信息来存储编码过的信息,进 而加速后续不同划分方式得到的同样位置和大小的编码块的编码过程,可以 极大地节省编码时间,在下一代编码器中带来约15.6%的时间节省和0.5%的 bd-rate psnr损失。
78.图6是根据一示例性实施例示出的一种编码装置的框图。参照图6,该 装置包括获取单元60、划分单元62、标识确定单元64和编码单元66。
79.获取单元60,被配置为获取待编码数据的编码树单元;划分单元62,被 配置为通过对编码树单元进行多叉树划分,得到至少一个编码块;标识确定 单元64,被配置为针对至少一个编码块中每个编码块,获取当前编码块的属 性标识,并确定属性标识关联的编码标志位,其中,编码标志位用于指示是 否存在与当前编码块相同内容的编码块被编码过;编码单元66,被配置为在 编码标志位指示存在与当前编码块内容相同的编码块被编码过
的情况下,根 据属性标识对应的编码信息对当前编码块进行编码。
80.根据本公开的实施例,标识确定单元64,还被配置为根据当前编码块上 预定点的二维坐标和当前编码块的尺寸,得到当前编码块的四维坐标,其中, 二维坐标中横坐标为当前编码块上预定点与编码树单元左侧边界的距离,二 维坐标中纵坐标为当前编码块上预定点与编码树单元上侧边界的距离;将四 维坐标作为当前编码块的属性标识。
81.根据本公开的实施例,标识确定单元64,还被配置为获取当前编码块左 上角的二维坐标;基于最小编码块的尺寸和当前编码块所包含的最小编码块 的排列方式,确定当前编码块的宽度和高度;基于二维坐标、宽度和高度, 得到当前编码块的四维坐标。
82.根据本公开的实施例,标识确定单元64,还被配置为在根据当前编码块 上预定点的二维坐标和当前编码块的尺寸,得到当前编码块的四维坐标之前, 按编码块所允许的最小尺寸对编码树单元进行划分,得到至少一个最小编码 块;确定至少一个最小编码块中每个最小编码块左上角的二维坐标,并存储 各最小编码块对应的二维坐标。
83.根据本公开的实施例,标识确定单元64,还被配置为确定当前编码块所 包含的排列在左上位置的最小编码块;将排列在左上位置的最小编码块左上 角的二维坐标,作为当前编码块左上角的二维坐标。
84.根据本公开的实施例,编码单元66,还被配置为在编码标志位指示不存 在与当前编码块相同内容的编码块被编码过的情况下,遍历与当前编码块相 关的所有编码模式,选择编码代价最小的编码模式对当前编码块进行编码; 将属性标识、当前编码块的编码信息和编码标志位关联存储,并更新编码标 志位的取值,更新后的编码标志位指示存在与当前编码相同内容的编码块被 编码过。
85.根据本公开的实施例,属性标识关联的编码信息包括以下至少之一:目 标划分模式、预测模式、目标参考帧、编码代价。
86.根据本公开的实施例,编码单元66,还被配置为基于目标划分模式对当 前编码块进行划分;基于预测模式和/或编码代价选择当前编码块对应的至少 一种编码模式;基于目标参考帧,确定当前编码块的参考帧列表中最大参考 帧个数;基于最大参考帧的个数从至少一种编码模式中选择当前编码块的编 码模式,并基于选择的编码模式对当前编码块进行编码。
87.根据本公开的实施例,编码单元66,还被配置为根据预先存储的第一编 码加速策略,确定预测模式对应的目标预测模式,在除目标预测模式以外的 其他预测模式中,选择当前编码块对应的至少一种编码模式;或,根据预先 存储的第二编码加速策略,确定编码代价对应的目标编码模式,在编码代价 小于预设阈值的情况下,在除目标编码模式以外的其他编码模式中,选择当 前编码块对应的至少一种编码模式;或,根据预先存储的第三编码加速策略, 确定预测模式对应的目标预测模式和编码代价对应的目标编码模式,在除目 标预测模式以外的其他预测模式中,选择当前编码块对应的多种编码模式; 并在编码代价小于预设阈值的情况下,在多种编码模式中除目标编码模式以 外的其他编码模式中,选择当前编码块对应的至少一种编码模式。
88.根据本公开的实施例,编码单元66,还被配置为确定目标参考帧的序号; 基于序号,确定当前编码块的参考帧列表中最大参考帧个数。
89.根据本公开的实施例,可提供一种电子设备。图7是根据本公开实施例 的一种电
子设备700的框图,该电子设备包括至少一个存储器701和至少一 个处理器702,所述至少一个存储器中存储有计算机可执行指令集合,当计 算机可执行指令集合被至少一个处理器执行时,执行根据本公开实施例的编 码方法。
90.作为示例,电子设备700可以是pc计算机、平板装置、个人数字助理、 智能手机、或其他能够执行上述指令集合的装置。这里,电子设备1000并非 必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指 令集)的装置或电路的集合体。电子设备700还可以是集成控制系统或系统 管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以 接口互联的便携式电子设备。
91.在电子设备700中,处理器702可包括中央处理器(cpu)、图形处理器 (gpu)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示 例而非限制,处理器702还可包括模拟处理器、数字处理器、微处理器、多 核处理器、处理器阵列、网络处理器等。
92.处理器702可运行存储在存储器中的指令或代码,其中,存储器701还 可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收, 其中,网络接口装置可采用任何已知的传输协议。
93.存储器701可与处理器702集成为一体,例如,将ram或闪存布置在 集成电路微处理器等之内。此外,存储器701可包括独立的装置,诸如,外 部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器701 和处理器702可在操作上进行耦合,或者可例如通过i/o端口、网络连接等 互相通信,使得处理器702能够读取存储在存储器701中的文件。
94.此外,电子设备700还可包括视频显示器(诸如,液晶显示器)和用户 交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备的所有组件可经 由总线和/或网络而彼此连接。
95.根据本公开的实施例,还可提供一种计算机可读存储介质,其中,当计 算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器 执行本公开实施例的编码方法。这里的计算机可读存储介质的示例包括:只 读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程 只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器 (dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、 cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、 dvd+rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光 盘存储器、硬盘驱动器(hdd)、固态硬盘(ssd)、卡式存储器(诸如,多 媒体卡、安全数字(sd)卡或极速数字(xd)卡)、磁带、软盘、磁光数据 存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何 其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、 数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件 和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程 序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理 装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计 算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机 系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过 一个或多个处理器或计算机以分布式方式存储、访问和执行。
96.根据本公开实施例,提供了一种计算机程序产品,包括计算机指令,计 算机指令被处理器执行时实现本公开实施例的编码方法。
97.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本 公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性 变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公 开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被 视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
98.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确 结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所 附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1