视频编码器、视频解码器及对应方法转让专利

申请号 : CN202110999225.2

文献号 : CN114071165B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高晗塞米赫·艾森力克陈建乐阿南德·梅赫·科特拉王彪赵志杰

申请人 : 华为技术有限公司

摘要 :

本发明提供一种编解码装置及编解码方法。特别地,本发明涉及块分割和在码流中指示(signaling)分割参数。图像区域头中的覆写标志指示指示所述图像区域头中是否存在分割约束信息。所述覆写标志包括在码流中,所述块根据所述覆写标志进行分割。

权利要求 :

1.一种视频码流的解码方法,其特征在于,所述视频码流包括表示图像区域的数据和所述图像区域的图像区域头,所述视频码流还包括所述视频码流的参数集,所述解码方法包括:从所述视频码流中获取覆写标志(override flag),所述覆写标志用于指示所述图像区域头中是否存在第一分割约束信息;

当所述覆写标志的值为覆写值时,从所述图像区域头中获取所述图像区域的第一分割约束信息的值;

根据所述第一分割约束信息值,对所述图像区域的块进行分割;

当所述覆写标志的值不是所述覆写值时,根据所述参数集中的所述视频码流的第二分割约束信息的值,对所述图像区域的块进行分割。

2.根据权利要求1所述的解码方法,其特征在于,所述覆写值为1,所述覆写标志的值不是所述覆写值表示所述覆写标志的值为0。

3.根据权利要求2所述的解码方法,其特征在于,所述根据所述参数集中的所述视频码流的第二分割约束信息的值,对所述图像区域的块进行分割,包括:将所述第二分割约束信息的值作为所述第一分割约束信息的值,对所述图像区域的块进行分割。

4. 根据权利要求2或3所述的解码方法,其特征在于,所述第二分割约束信息包括最小四叉树叶节点尺寸信息、最大多类型树(multi‑type tree)深度信息、最大三叉树根节点尺寸信息或最大二叉树根节点尺寸信息。

5.根据权利要求2或3所述的解码方法,其特征在于,所述第二分割约束信息包括第一条带类型的条带的块的分割约束信息,或第二条带类型的条带的块的分割约束信息。

6.根据权利要求2或3所述的解码方法,其特征在于,所述第二分割约束信息包括亮度块的分割约束信息,或色度块的分割约束信息。

7.根据权利要求1至3中任一项所述的解码方法,其特征在于,从所述视频码流中获取所述覆写标志包括:从所述图像区域头中获取所述覆写标志。

8.根据权利要求1至3中任一项所述的解码方法,其特征在于,所述第一分割约束信息包括最小四叉树叶节点尺寸信息、最大多类型树深度信息、最大三叉树根节点尺寸信息或最大二叉树根节点尺寸信息。

9.一种对视频进行编码以得到视频码流的编码方法,其特征在于,所述视频码流包括表示图像区域的数据和所述图像区域的图像区域头,所述视频码流还包括所述视频码流的参数集,所述编码方法包括:确定是否将第一分割约束信息编码在所述图像区域头中;

当确定将所述第一分割约束信息的值编码在所述图像区域头中时,将所述第一分割约束信息的值编码在所述图像区域头中,根据所述第一分割约束信息的值对所述图像区域的块进行分割,并将覆写标志编码的值编码在所述视频码流中,所述覆写标志的值被设置为覆写值;

当确定不根据所述第一分割约束信息对所述块进行分割时,根据所述参数集中的所述视频码流的第二分割约束信息对所述图像区域的块进行分割,并将所述覆写标志的值设置为不是所述覆写值。

10.根据权利要求9所述的编码方法,其特征在于,所述覆写值为1,所述覆写标志的值不是所述覆写值表示所述覆写标志的值为0。

11.根据权利要求10所述的编码方法,其特征在于,所述根据所述参数集中的所述视频码流的第二分割约束信息的值,对所述图像区域的块进行分割,包括:将所述第二分割约束信息的值作为所述第一分割约束信息的值,对所述图像区域的块进行分割。

12.根据权利要求9或10所述的编码方法,其特征在于,所述第二分割约束信息包括最小四叉树叶节点尺寸信息、最大多类型树深度信息、最大三叉树根节点尺寸信息或最大二叉树根节点尺寸信息。

13.根据权利要求9或10所述的编码方法,其特征在于,所述第二分割约束信息包括第一条带类型的条带的块的分割约束信息,或第二条带类型的条带的块的分割约束信息。

14.根据权利要求9或10所述的编码方法,其特征在于,所述第二分割约束信息包括亮度块的分割约束信息,或色度块的分割约束信息。

15.根据权利要求9至11中任一项所述的编码方法,其特征在于,所述覆写标志在所述图像区域头中。

16.根据权利要求9至11中任一项所述的编码方法,其特征在于,所述第一分割约束信息包括最小四叉树叶节点尺寸信息、最大多类型树深度信息、最大三叉树根节点尺寸信息或最大二叉树根节点尺寸信息。

17.一种解码器,其特征在于,包括:

一个或多个处理器;

非瞬时性计算机可读存储介质,耦合至所述处理器,并存储由所述处理器执行的程序,其中,所述程序用于被所述处理器执行根据权利要求1至8中任一项所述的方法。

18.一种编码器,其特征在于,包括:

一个或多个处理器;

非瞬时性计算机可读存储介质,耦合至所述处理器,并存储由所述处理器执行的程序,其中,所述程序用于被所述处理器执行根据权利要求9至16中任一项所述的方法。

19.一种对视频码流进行解码的解码器,其特征在于,所述视频码流包括表示图像区域的数据和所述图像区域的图像区域头,所述视频码流还包括所述视频码流的参数集,所述解码器包括:覆写确定单元,用于从所述视频码流中获取覆写标志,所述覆写标志用于指示所述图像区域头中是否存在第一分割约束信息;

分割约束确定单元,用于当所述覆写标志的值为覆写值时,从所述图像区域头中获取所述图像区域的第一分割约束信息的值;

块分割单元,用于根据所述第一分割约束信息的值,对所述图像区域的块进行分割;

所述块分割单元,还用于当所述覆写标志的值不是所述覆写值时,根据所述参数集中的所述视频码流的第二分割约束信息的值,对所述图像区域的块进行分割。

20.一种对视频进行编码以得到视频码流的编码器,其特征在于,所述视频码流包括表示图像区域的数据和所述图像区域的图像区域头,所述视频码流还包括所述视频码流的参数集,所述编码器包括:确定单元,用于确定是否将第一分割约束信息编码在所述图像区域头中;

块分割单元,用于在确定将所述第一分割约束信息编码在所述图像区域头中时,根据所述第一分割约束信息的值对所述图像区域的块进行分割;

所述块分割单元,还用于当确定不根据所述第一分割约束信息对所述块进行分割时,根据所述参数集中的所述视频码流的第二分割约束信息对所述图像区域的块进行分割;

码流生成器,用于在确定将所述第一分割约束信息编码在所述图像区域头中时,将所述第一分割约束信息的值编码在所述图像区域头中,并将覆写标志编码的值编码在所述视频码流中,所述覆写标志的值被设置为覆写值;

所述码流生成器,还用于当确定不根据所述第一分割约束信息对所述块进行分割时,将所述覆写标志的值设置为不是所述覆写值。

21.一种包括程序代码的计算机可读存储介质,其特征在于,所述程序代码用于被至少一个处理器执行根据权利要求1至8中任一项所述的方法。

22.一种包括程序代码的计算机可读存储介质,其特征在于,所述程序代码用于被至少一个处理器执行根据权利要求9‑16中任一项所述的编码方法以得到视频码流。

说明书 :

视频编码器、视频解码器及对应方法

技术领域

[0001] 本申请实施例一般涉及视频译码领域,尤其涉及块划分和分割。

背景技术

[0002] 视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、基于互联网和移动网络的视频传输、视频聊天、视频会议等实时会话应用、DVD和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。
[0003] 自从1990年H.261标准中基于块的混合视频译码方法发展以来,新的视频译码技术和工具相继出现,为新的视频译码标准奠定了基础。其它视频译码标准包括MPEG‑1视频、MPEG‑2视频、ITU‑T H.262/MPEG‑2、ITU‑T H.263、ITU‑T H.264/MPEG‑4,第10部分、高级视频译码(Advanced Video Coding,AVC)、ITU‑T H.265/高效视频译码(High Efficiency Video Coding,HEVC)、ITU‑T H.266/通用视频译码(versatile video coding,VVC)以及扩展,例如这些标准的可扩展性和/或三维(three‑dimensional,3D)扩展。随着视频创建和使用变得越来越普遍,视频流量成为通信网络和数据存储的最大负担。因此,与前代标准相比,大多数视频译码标准的目标之一是在保证图像质量的情况下,降低码率。即使最新的高效视频译码(High Efficiency video coding,HEVC)可以在保证图像质量的前提下比AVC大约多压缩视频一倍,仍然亟需新技术相对HEVC进一步压缩视频。

发明内容

[0004] 本申请(或本发明)实施例提供了独立权利要求提供的编解码的装置和方法。
[0005] 上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式在从属权利要求、具体实施例和附图中显而易见。
[0006] 根据标准,一些特性的定义如下:
[0007] 图像参数集(picture parameter set,PPS):一种语法结构,包含适用于0个或多个完整的译码图像的语法元素,由每个条带头中的语法元素确定。
[0008] 序列参数集(sequence parameter set,SPS):一种语法结构,包含适用于0个或多个完整CVS的语法元素,由每个条带头中的语法元素所参考的PPS中的语法元素的内容确定。
[0009] 条带头:经译码条带的一部分,包含与条带中表示的第一个或所有砖块相关的数据元素。
[0010] 子图像:图像中一个或多个条带的矩形区域。
[0011] 一个条带由若干个完整的分块组成,或仅由一个分块中连续的完整砖块序列组成。
[0012] 分块:图像中特定分块列和特定分块行内的CTU的矩形区域。
[0013] 图像划分为一个或多个分块行和一个或多个分块列。分块是覆盖图像的矩形区域的CTU序列。
[0014] 分块划分成一个或多个砖块,每个砖块由分块内部的若干CTU行组成。
[0015] 没有分割为多个砖块的分块也可以称为砖块。但是,砖块是分块的真正子集,因此不称为分块。
[0016] 一个条带包含一个图像的多个分块,或者包含一个分块的多个砖块。
[0017] 子图像包含一个或多个条带,这些条带共同覆盖了图像的矩形区域。
[0018] 支持两种条带模式,分别为光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图像的分块光栅扫描中的分块序列。在矩形条带模式中,条带包含一个图像的若干个砖块,这些砖块共同组成图像的矩形区域。矩形条带内的砖块按照条带的砖块光栅扫描顺序排列。
[0019] 根据本发明的第一方面,提供了一种由解码设备实现的对视频码流进行解码的方法,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据,所述解码方法包括:从所述视频码流中获取覆写标志;当所述覆写标志的值为覆写值时,从所述图像区域头中获取所述图像区域的第一分割约束信息;根据所述第一分割约束信息,对所述图像区域的块进行分割。
[0020] 该方法使得每个图像区域存在自身的分割约束信息,而不是参数集中的多个图像区域的分割约束信息,因此该方法能够进行高效的码流解析,特别是高效的分割约束信息指示。
[0021] 其中,从所述图像区域头获取所述图像区域的第一分割约束信息可以包括:从表示所述图像区域头的数据中获取所述图像区域的第一分割约束信息。
[0022] 其中,所述覆写值可以是预先设置的。
[0023] 其中,所述覆写值包括真、假、0或1。
[0024] 其中,所述图像区域头可以是包含与所述图像区域的全部或部分相关的数据元素的集合或结构。
[0025] 根据第一方面,在所述方法的可能实现方式中,所述解码方法还包括:从所述视频码流中获取覆写启用标志,其中所述覆写启用标志的值为启用值。
[0026] 其中,所述启用值可以是预先设置的。
[0027] 其中,所述启用值包括真、假、0或1。
[0028] 根据第一方面,在所述方法的可能实现方式中,所述解码方法还包括:从所述视频码流中获取覆写启用标志,其中从所述视频码流中获取所述覆写标志包括:当所述覆写启用标志的值为启用值时,从所述视频码流中获取所述覆写标志。
[0029] 其中,所述启用值可以是预先设置的。
[0030] 其中,所述启用值包括真、假、0或1。
[0031] 通过提供覆写启用标志,可以以高效的方式控制覆写,从而提高处理与块分割相关的语法元素的灵活性。需要说明的是,当所述覆写启用标志设置为所述启用值时,还可以从所述码流中提取所述覆写标志。否则,可能不会从所述码流中提取覆写标志,而且在这种情况下不会应用覆写。相反,可以使用第二或第三分割约束来对块进行分割。
[0032] 根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的可能实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,所述解码方法还包括:当所述覆写启用标志的值为禁用值时,根据所述视频码流的第二分割约束信息对所述图像区域的块进行分割。其中,所述第二分割约束信息可以来自参数集合,也可以在参数集中。
[0033] 其中,所述参数集可以是序列参数集(sequence parameter set,SPS)或图像参数集(picture parameter set,PPS)或任何其它参数集。
[0034] 其中,所述禁用值与所述启用值不同。
[0035] 其中,所述禁用值可以是预先设置的。
[0036] 其中,所述禁用值包括真、假、0或1。
[0037] 其中,当覆写启用标志的值为禁用值时,视频码流中可以不存在第一分割约束信息,并且可以推断第一分割约束信息的值等于第二分割约束信息的值。
[0038] 其中,所述参数集可以是包含语法元素的集合或结构,所述语法元素应用于包括所述图像区域的0个或多个完整经译码图像或经译码视频序列。
[0039] 其中,所述参数集与所述图像区域头不同。
[0040] 例如,所述第二分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。可以指示这些参数和另外的参数的任何组合/子集来配置分割约束。
[0041] 其中,所述允许的最小四叉树叶节点尺寸信息可以为增量值,以获得允许的最小四叉树叶节点尺寸的值。例如,所述允许的最小四叉树叶节点尺寸信息可以为sps_log2_min_qt_size_intra_slices_minus2、sps_log2_min_qt_size_inter_slices_minus2或log2_min_qt_size_minus2。
[0042] 其中,所述允许的最大三叉树根节点尺寸信息可以为增量值,以获得允许的最大三叉树根节点尺寸的值。例如,所述允许的最大三叉树根节点尺寸信息可以为sps_log2_diff_ctu_max_tt_size_intra_slices、sps_log2_diff_ctu_max_tt_size_inter_slices或log2_diff_ctu_max_tt_size。
[0043] 其中,所述允许的最大二叉树根节点尺寸信息可以为增量值,以获得允许的最大二叉树根节点尺寸的值。例如,所述允许的最大二叉树根节点尺寸信息可以是sps_log2_diff_ctu_max_bt_size_intra_slices、sps_log2_diff_ctu_max_bt_size_inter_slices或log2_diff_ctu_max_bt_size。
[0044] 例如,最大多类型树深度信息可以为sps_max_mtt_hierarchy_depth_inter_slices、sps_max_mtt_hierarchy_depth_intra_slices或max_mtt_hierarchy_depth。
[0045] 另外或者可选地,所述第二分割约束信息包括帧内模式下块的分割约束信息,或帧间模式下块的分割约束信息。
[0046] 所述第二分割约束信息可包括单独指示的帧内模式下块的分割约束信息和帧间模式下块的分割约束信息。但是,本发明并不以此为限,对于帧内模式下块的分割约束信息和帧间模式下块的分割约束信息,可以具有一个共同的分割约束信息。
[0047] 其中,帧内模式下的块,或帧间模式下的块参考所述参数集。
[0048] 其中,所述参数集可以包括序列参数集(sequence parameter set,SPS)或图像参数集(picture parameter set,PPS)。
[0049] 其中,帧内模式下的块可以位于条带中的CTU内部,slice_type=2(I)参考所述参数集,或者帧间模式下的块可以位于条带的CTU内部,slice_type=0(B)或1(P)参考所述参数集。
[0050] 另外或者可选地,所述第二分割约束信息包括亮度块的分割约束信息,和/或色度块的分割约束信息。
[0051] 其中,所述亮度块或所述色度块参考所述参数集。
[0052] 其中,所述参数集可以包括序列参数集(sequence parameter set,SPS)或图像参数集(picture parameter set,PPS)。
[0053] 其中,所述亮度块或所述色度块可以在所述参数集的条带中的CTU内部。
[0054] 根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的可能实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,从所述视频码流中获取覆写启用标志包括:从所述参数集中获取所述覆写启用标志或获取所述参数集中的所述覆写启用标志。
[0055] 其中,从所述参数集中获取所述覆写启用标志可以包括从表示所述参数集的数据中获取所述覆写启用标志,其中所述参数集可以是序列参数集(sequence parameter set,SPS)或图像参数集(picture parameter set,PPS)或任何其它参数集。
[0056] 根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的可能实现方式中,从所述视频码流中获取所述覆写标志包括:从所述图像区域头中获取所述覆写标志。
[0057] 其中,从所述图像区域头中获取所述覆写标志可以包括从表示所述图像区域头的数据中获取所述覆写标志。
[0058] 根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的可能实现方式中,所述第一分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0059] 其中,所述允许的最小四叉树叶节点尺寸信息可以为增量值,以获得允许的最小四叉树叶节点尺寸的值。例如,所述允许的最小四叉树叶节点尺寸信息可以为sps_log2_min_qt_size_intra_slices_minus2、sps_log2_min_qt_size_inter_slices_minus2或log2_min_qt_size_minus2。
[0060] 其中,所述允许的最大三叉树根节点尺寸信息可以为增量值,以获得允许的最大三叉树根节点尺寸的值。例如,所述允许的最大三叉树根节点尺寸信息可以为sps_log2_diff_ctu_max_tt_size_intra_slices、sps_log2_diff_ctu_max_tt_size_inter_slices或log2_diff_ctu_max_tt_size。
[0061] 其中,所述允许的最大二叉树根节点尺寸信息可以为增量值,以获得允许的最大二叉树根节点尺寸的值。例如,所述允许的最大二叉树根节点尺寸信息可以是sps_log2_diff_ctu_max_bt_size_intra_slices、sps_log2_diff_ctu_max_bt_size_inter_slices或log2_diff_ctu_max_bt_size。
[0062] 例如,最大多类型树深度信息可以为sps_max_mtt_hierarchy_depth_inter_slices、sps_max_mtt_hierarchy_depth_intra_slices或max_mtt_hierarchy_depth。
[0063] 例如,所述图像区域包括条带、分块或子图像,所述图像区域头包括所述条带的条带头、所述分块的分块头或所述子图像的头。
[0064] 根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的可能实现方式中,所述视频码流还可以包括表示所述视频码流的参数集的数据,所述解码方法还包括:当所述覆写标志的值不是覆写值时,根据所述参数集中的所述视频码流的第二分割约束信息,对所述图像区域的块进行分割S230,或根据所述参数集中的所述视频码流的第二分割约束信息,对所述图像区域的块进行分割S230。
[0065] 其中,所述参数集可以是序列参数集(sequence parameter set,SPS)或图像参数集(picture parameter set,PPS)或任何其它参数集。
[0066] 其中,所述覆写值为真,所述覆写标志的值不是覆写值表示所述覆写标志的值为假。
[0067] 其中,所述覆写值为1,所述覆写标志的值不是覆写值表示所述覆写标志的值为0。
[0068] 根据本发明的第二方面,一种由编码设备实现的对视频码流进行编码的方法,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据,所述编码方法包括:确定是否根据所述图像区域头中的第一分割约束信息对所述图像区域的块进行分割;当确定是根据所述第一分割约束信息对所述块进行分割时,根据所述第一分割约束信息对所述图像区域的块进行分割,并将覆写标志的值设置为覆写值;将所述覆写标志的数据包括在所述视频码流中。
[0069] 根据第二方面,在所述方法的可能实现方式中,所述编码方法还包括:确定是否启用根据第一分割约束信息对所述块进行分割;当确定启用根据第一分割约束信息对所述块进行分割时,将覆写启用标志的值设置为启用值;将所述覆写启用标志的数据包括在所述视频码流中。
[0070] 其中,确定是否根据所述图像区域头中的第一分割约束信息对所述图像区域的块进行分割包括:当确定启用根据第一分割约束信息对所述块进行分割时,确定是否根据所述图像区域头中的第一分割约束信息对所述图像区域的块进行分割。
[0071] 例如,所述视频码流还包括表示所述视频码流的参数集的数据,所述编码方法还包括:当确定不启用根据第一分割约束信息对所述块进行分割时,根据所述参数集中的所述视频码流的第二分割约束信息对所述图像区域的块进行分割,并将覆写启用标志的值设置为禁用值。
[0072] 另外或者可选地,所述第二分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0073] 另外或者可选地,所述第二分割约束信息包括帧内模式下块的分割约束信息,或帧间模式下块的分割约束信息。
[0074] 例如,所述第二分割约束信息包括亮度块的分割约束信息,或色度块的分割约束信息。
[0075] 根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的可能实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,所述覆写启用标志在所述参数集中。
[0076] 例如,所述覆写标志在所述图像区域头中。
[0077] 另外或者作为任一实施例的替代方案,所述第一分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0078] 除了上述实施例或者作为任一实施例的替代方案,所述图像区域包括条带、分块或子图像,所述图像区域头包括所述条带的条带头、所述分块的分块头或所述子图像的头。
[0079] 例如,所述视频码流还包括表示所述视频码流的参数集的数据,所述解码方法还包括:当确定不根据所述第一分割约束信息对所述块进行分割时,根据所述参数集中的所述视频码流的第二分割约束信息对所述图像区域的块进行分割(S360),并将所述覆写标志的值设置为不覆写值。
[0080] 第二方面所述的方法可以扩展为对应于第一方面所述的第一装置的实现方式。因此,所述方法的实现方式包括第一装置的对应实现方式的一个或多个特征。
[0081] 第二方面所述的方法与第一方面所述的第一装置的对应实现方式的优点相同。
[0082] 根据本发明的第三方面,提供了一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,配置所述解码器执行上文根据所述第一方面或所述第一方面的任一可能实现方式所述的解码方法。
[0083] 根据本发明的第四方面,提供了一种编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,配置所述编码器执行上文根据所述第二方面或所述第二方面的任一可能实现方式所述的解码方法。
[0084] 根据第五方面,提供一种存储有指令的计算机可读存储介质,其中,当所述指令在执行时使得一个或多个处理器对视频数据进行译码。所述指令使得所述一个或多个处理器执行根据所述第一或第二方面或所述第一或第二方面的任一可能的实现方式所述的方法。
[0085] 根据第六方面,本发明涉及一种计算机程序,所述计算机程序包括程序代码,当所述计算机程序在计算机中执行时,所述程序代码用于执行根据所述第一方面或第二方面或所述第一方面或第二方面的任一可能的实施例所述的方法。
[0086] 根据本发明的第七方面,提供了一种对视频码流进行解码的解码器,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据,所述解码器包括:覆写确定单元,用于从所述视频码流中获取覆写标志;分割约束确定单元,用于当所述覆写标志的值为覆写值时,从所述图像区域头中获取所述图像区域的第一分割约束信息;块分割单元,用于根据所述第一分割约束信息,对所述图像区域的块进行分割。
[0087] 根据本发明第一方面所述的方法可以由根据本发明第七方面所述的解码器执行。根据本发明第三方面所述的解码器的其它特征和实现方式对应于根据本发明第一方面或所述第一方面的任一可能的实现方式所述的方法的特征和实现方式。根据本发明的第八方面,提供一种编码器,用于对视频码流进行编码,其中所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据,所述编码器包括:块分割单元,用于根据第一分割约束信息对所述图像区域的块进行分割;码流生成器,用于将所述图像区域的第一分割约束信息插入到所述图像区域头中,并将覆写标志的值设置为覆写值,以及用于将所述覆写标志插入到视频码流中。
[0088] 根据本发明第二方面所述的方法可以由根据本发明第八方面所述的编码器执行。根据本发明第八方面所述的编码器的其它特征和实现方式对应于根据本发明第二方面或所述第二方面的任一可能实现方式所述的方法的特征和实现方式。
[0089] 为了描述的清晰性,本文中公开的任一实施例可以与其它任一或多个实施例结合以创建本发明范围内的新实施例。
[0090] 根据本发明的第九方面,提供了一种视频码流,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据,所述视频码流还包括覆写标志,指示所述图像区域头中是否存在所述图像区域的第一分割约束信息。
[0091] 根据所述第九方面,在所述方法的可能实现方式中,所述视频码流还包括覆写启用标志,指示所述图像区域头中是否存在所述覆写标志。
[0092] 根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的可能实现方式中,所述覆写启用标志在所述参数集中或在表示所述参数集的数据中。
[0093] 根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的可能实现方式中,所述覆写标志在所述图像区域头中或表示所述图像区域头的数据中。
[0094] 一个或多个实施例的细节在附图和以下描述中阐述。其它特征、目标和优点将从描述、附图和权利要求中显而易见。

附图说明

[0095] 下文将参考以下附图详细描述本发明实施例,其中:
[0096] 图1A为用于实现本发明实施例的示例性视频译码系统的框图;
[0097] 图1B为用于实现本发明实施例的另一示例性视频译码系统的框图;
[0098] 图2为用于实现本发明实施例的示例性视频编码器的框图;
[0099] 图3为用于实现本发明实施例的示例性视频解码器结构的框图;
[0100] 图4为示例性编码装置或解码装置的框图;
[0101] 图5为另一示例性编码装置或解码装置的框图;
[0102] 图6为使用四叉树‑二叉树(quad‑tree‑binary‑tree,QTBT)结构的示例性块分割的说明图;
[0103] 图7为对应于使用图6的QTBT结构的块分割的示例性树结构的说明图;
[0104] 图8为示例性水平三叉树分割类型的说明图;
[0105] 图9为示例性垂直三叉树分割类型的说明图;
[0106] 图10为实施例提供的解码方法的流程图;
[0107] 图11为实施例提供的解码方法的流程图;
[0108] 图12为示例性解码器的框图;
[0109] 图13为示例性编码器的框图;
[0110] 图14A为覆写标志相关实施例提供的编码方法的流程图;
[0111] 图14B为覆写启用标志相关实施例提供的编码方法的流程图;
[0112] 图15为实现内容下发业务的内容提供系统的示例性结构的框图;
[0113] 图16为终端设备的示例性结构的框图;
[0114] 在下文中,除非另外明确说明,否则相同的附图标记是指相同或至少功能上等效的特征;
[0115] 图17为用于实现本发明实施例的示例性视频编码器的框图;
[0116] 图18为用于实现本发明实施例的示例性视频解码器结构的框图。
[0117] 在下文中,除非另外明确说明,否则相同的附图标记是指相同或至少功能上等效的特征。

具体实施方式

[0118] 在以下描述中,参考构成本发明一部分的附图,附图通过说明的方式示出了本发明实施例的特定方面或可使用本发明实施例的特定方面。应理解,本发明的实施例可用于其它方面,并且包括未在附图中描绘的结构或逻辑变化。因此,以下详细的描述并不当作限定,本发明的范围由所附权利要求书界定。
[0119] 可以理解的是,与所描述的方法有关的内容对于与用于执行方法对应的设备或系统也同样适用,反之亦然。例如,如果描述了一个或多个特定方法步骤,则对应的设备可以包括一个或多个单元,例如,功能单元,用于执行所描述的一个或多个方法步骤(例如,执行所述一个或多个步骤的一个单元,或各自执行所述多个步骤中的一个或多个步骤的多个单元),即使图中未明确描述或说明此类一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述特定装置,对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,执行所述一个或多个单元的功能的一个步骤,或各自执行所述多个单元中的一个或多个单元的功能的多个步骤),即使图中未明确描述或说明此类一个或多个步骤。此外,应理解,除非另外具体指出,否则本文中描述的各种示例性实施例和/或方面的特征可彼此组合。
[0120] 视频译码通常指对构成视频或视频序列的图像序列进行的处理。在视频领域中,术语“帧(frame)”或“图像(picture/image)”可以用作同义词。本申请(或本发明)中使用的视频译码表示视频编码或视频解码。在源侧执行视频编码,通常包括处理(例如,通过压缩)原始视频图像,以减少表示视频图像所需的数据量(以进行更高效的存储和/或传输)。在目的地侧执行视频解码,通常包括相对于编码器的逆处理以重建视频图像。关于视频图像(或一般为图像,将在下文解释)的“译码”的实施例应理解为涉及视频序列的“编码”和“解码”两者。编码部分和解码部分的组合也称为CODEC(编码和解码)。
[0121] 在无损视频译码的情况下,可以重建原始视频图像,即,重建视频图像与原始视频图像的质量相同(假设在存储或传输过程中没有传输损失或其它数据丢失)。在有损视频译码的情况下,进一步执行压缩(例如,通过量化)以减少表示无法在解码器中完全重建的视频图像的数据量,即,与原始视频图像相比,所述重建视频图像的质量较低或较差。
[0122] 从H.261开始的几种视频译码标准都属于“有损混合视频编解码器”(即,结合像素点域中的空间预测和时间预测以及在变换域中应用量化的2D变换译码)。视频序列的每个图像通常被分割成一组不重叠的块,并且译码通常以块为单位执行。换句话说,在编码器中,通常以块(视频块)为单位对视频进行处理(即编码),例如,通过空间(帧内)预测和时间(帧间)预测来生成预测块;从当前块(当前处理/待处理的块)中减去预测块,获得残差块;在变换域中变换残差块并量化残差块,以减少待传输(压缩)的数据量,而在解码器中,将相对于编码器的逆处理部分应用于经编码或压缩的块,以重建当前块以进行表示。此外,编码器的处理环路与解码器的处理环路相同,使得两者将产生相同的预测(例如,帧内预测和帧间预测)和/或重建以对后续块进行处理(即,译码)。
[0123] 如本文所使用的,术语“块”可以是图像或帧的一部分。为便于描述,本文参考由ITU‑T视频译码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频译码联合工作组(Joint Collaboration Team on Video Coding,JCT‑VC)开发的高效视频译码(High‑Efficiency Video Coding,HEVC)或通用视频译码(versatile video coding,VVC)参考软件描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC。块可以指CU、PU和TU。在HEVC中,通过表示为译码树的四叉树结构将CTU划分成CU。以CU为单位确定是使用帧间(时间)预测还是帧内(空间)预测对图像区域进行译码。可以根据PU划分类型将每个CU进一步划分为一个、两个或四个PU。一个PU内应用相同的预测过程,并以PU为单位向解码器发送相关信息。在根据PU划分类型应用预测过程获取残差块之后,可以根据与用于CU的译码树类似的另一种四叉树结构将CU分割为变换单元(transform unit,TU)。在视频压缩技术的最新进展中,使用四叉树和二叉树(qual‑tree and binary tree,QTBT)分割帧对译码块进行分割。在QTBT块结构中,CU可以为正方形或矩形。例如,首先通过四叉树结构对译码树单元(coding tree unit,CTU)进行分割。通过二叉树结构进一步分割四叉树叶节点。二叉树叶节点称为译码单元(coding unit,CU),片段用于在不进行进一步分割的情况下,进行预测和变换处理。即,在QTBT译码块结构中,CU、PU和TU的块尺寸相同。同时,还提出将三叉树分割等多重分割与QTBT块结构结合使用。术语“设备”也可以是“装置”、“解码器”或“编码器”。
[0124] 在以下实施例中,基于图1至图3描述了编码器20、解码器30和译码系统10。
[0125] 图1A为概念性或示意性框图,示出了可利用本申请(本发明)技术的示例性译码系统10,例如视频译码系统10。视频译码系统10的编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)代表可以用于根据本申请中描述的各种示例执行各技术的设备的示例。如图1A所示,译码系统10包括源设备12,所述源设备12用于将经编码数据13(例如,经编码图像13)提供到目的设备14等以对经编码数据13进行解码。
[0126] 源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理单元18(例如,图像预处理单元18)和通信接口或通信单元22。
[0127] 图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的设备,和/或任何类型的图像或评论(对于屏幕内容译码,屏幕上的一些文本也被认为是待编码的图像(picture/image)的一部分)生成设备,例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机动画图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任何组合(例如,增强现实(augmented reality,AR)图像)的任何类型的设备。所述图像源可以为存储任一上述图像的任何类型的存储器(memory/storage)。
[0128] (数字)图像是或可被视为具有强度值的像素点的二维阵列或矩阵。阵列中的像素点也可以称为像素(图像元素的简短形式)。阵列或图像的水平和垂直方向(或轴)的像素点数定义了图像的尺寸和/或分辨率。为了表示颜色,通常使用三种颜色分量,即,该图像可以表示为或包括三个像素点阵列。在RBG格式或颜色空间中,图像包括对应的红色、绿色和蓝色像素点阵列。但是,在视频译码中,每个像素通常以亮度/色度格式或在颜色空间中表示,例如,YCbCr,包括由Y表示的亮度分量(有时也用L表示)和Cb和Cr表示的两个色度分量。亮度分量Y表示亮度或灰阶强度(例如,如同灰阶图像中),两个色度分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括亮度像素点值(Y)的亮度像素点阵列和色度值(Cb和Cr)的两个色度像素点阵列。RGB格式的图像可以转换成YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则图像可以仅包括亮度像素点阵列。
[0129] 图像源16(例如,视频源16)可以是用于捕获图像的摄像机、包括或存储之前捕获或生成的图像的存储器(例如,图像存储器),和/或用于获取或接收图像的任何类型的(内部或外部)接口等。例如,摄像头可以是集成在源设备中的本地或集成摄像头,存储器可以是本地或集成存储器,例如,集成在源设备中。例如,接口可以是从外部视频源接收图像的外部接口,例如,摄像机等外部图像捕获设备、外部存储器或外部图像生成设备,例如,外部计算机图形处理器、计算机或服务器。接口可以是根据任何私有或标准化的接口协议的任何类型的接口,例如,有线或无线接口、光接口。用于获取图像数据17的接口可以是与通信接口22相同的接口,或作为通信接口22的一部分。
[0130] 与预处理单元18和预处理单元18执行的处理不同,图像或图像数据17(例如,视频数据16)也可以称为原始图像或原始图像数据17。
[0131] 预处理单元18用于接收(原始)图像数据17,对图像数据17进行预处理,以获取经预处理的图像19或经预处理的图像数据19。预处理单元18执行的预处理可以包括修剪(trimming)、颜色格式转换(例如,从RGB转换为YCbCr)、颜色校正或去噪等。可以理解的是,预处理单元18可以是可选组件。
[0132] 编码器20(例如,视频编码器20)用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2或图4进行详细描述)。
[0133] 源设备12的通信接口22可用于接收经编码图像数据21并通过通信通道13将所述经编码图像数据21(或其它任意处理后的版本)发送到另一设备(例如,目的地设备14)或用于存储或直接重建的任何其它设备,或分别在存储经编码数据13和/或将经编码数据13发送到另一设备(例如,目的地设备14)或用于解码或存储的任何其它设备之前处理经编码图像数据21。
[0134] 目的设备14包括解码器30(例如,视频解码器30),并且可以另外(即,可选地)包括通信接口或通信单元28、后处理单元32和显示设备34。
[0135] 目的地设备14中的通信接口28用于直接从源设备12或从存储设备(例如,经编码图像数据存储设备)等任意其它源设备接收经编码图像数据21(或其它任意处理后的版本)或经编码数据13,并将经编码图像数据21提供给解码器30。
[0136] 通信接口22和通信接口28可以用于通过源设备12与目的设备14之间的直接通信链路(例如,直接有线或无线连接),或通过任何类型的网络(例如,有线或无线网络或其任何组合,或任何类型的专用和公共网络),或其任何组合发送或接收经编码图像数据21或经编码数据13。
[0137] 例如,通信接口22可用于将经编码图像数据21封装为报文等合适的格式,和/或使用任何类型的传输编码或处理来处理经编码图像数据,以便在通信链路或通信网络上进行传输。
[0138] 例如,与通信接口22对应的通信接口28可用于接收传输数据,并采用任何类型的对应传输解码或处理对传输数据进行处理和/或对经编码数据13进行解封装,以获得经编码图像数据21。
[0139] 通信接口22和通信接口28均可配置为单向通信接口(如图1A中从源设备12指向目的设备14的经编码图像数据13的箭头所指示),或双向通信接口,并可用于发送和接收消息等,例如,建立连接,确认和交换与通信链路和/或数据传输(例如,经编码图像数据传输)相关的任何其它信息。
[0140] 解码器30用于接收经编码图像数据21并提供经解码图像数据31或经解码图像31(下文将根据图3或图5进行详细描述)。
[0141] 目的设备14的后处理器32用于对经解码图像数据31(也称为经重建图像数据)(例如,解码图像31)进行后处理,以获取经后处理的图像数据33(例如,后处理图像33)。例如,后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr转换为RGB)、调色、修剪或重采样,或者用于产生供显示设备34等显示的经解码图像数据31等任何其它处理。
[0142] 目的设备14中的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以为或包括用于表示经重建图像的任何类型的显示器,例如,集成或外部显示器或监视器。例如,显示器可以包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。
[0143] 尽管图1A将源设备12和目的设备14作为单独的设备进行描述,但是设备实施例还可以包括两种设备或两种功能,即源设备12或对应功能以及目的设备14或对应功能。在这些实施例中,源设备12或对应功能以及目的设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
[0144] 根据描述,图1A所示的源设备12和/或目的设备14中具有和(准确)划分的不同单元或功能可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
[0145] 编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)可以各自实现为各种合适的电路中的任一种,如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application‑specific integrated circuit,ASIC)、现场可编程门阵列(field‑programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。当所述技术部分地以软件形式实现时,设备可将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件形式执行所述指令,以执行本发明的技术。上述任一种(包括硬件、软件、硬件和软件的组合等)可以是一个或多个处理器。
视频编码器20和视频解码器30各自可包括在一个或多个编码器或解码器中,其中任一者可作为组合式编码器/解码器(编解码器)的一部分集成在相应设备中。
[0146] 编码器20可以通过处理电路46实现,以体现关于图2的编码器20和/或本文描述的任何其它编码器系统或子系统所讨论的各种模块。编码器30可以通过处理电路46实现,以体现关于图3的解码器30和/或本文描述的任何其它解码器系统或子系统所讨论的各种模块。处理电路可用于执行稍后将论述的各种操作。如图5中所示,当所述技术部分地以软件形式实现时,设备可将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件形式执行所述指令,以执行本发明的技术。视频编码器20和视频解码器30中的其中一个可作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,如图1B所示。
[0147] 源设备12可以称为视频编码设备或视频编码装置。目的设备14可以称为视频解码设备或视频解码装置。源设备12和目的设备14可以是视频编码设备或视频编码装置的示例。
[0148] 源设备12和目的设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板电脑(tablet/tablet computer)、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备(如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。
[0149] 在一些情况下,源设备12和目的设备14可配备用于无线通信的组件。因此,源设备12和目的设备14可以是无线通信设备。
[0150] 在某些情况下,图1A所示的视频编码系统10仅仅是示例,本申请的技术可适用于在编码设备与解码设备之间不一定包括任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它示例中,数据从本地存储器中检索,通过网络发送,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是将数据编码到存储器和/或从存储器中检索数据并对数据进行解码的设备来执行。
[0151] 为便于描述,本文参考由ITU‑T视频译码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频译码联合工作组(Joint Collaboration Team on Video Coding,JCT‑VC)开发的高效视频译码(High‑Efficiency Video Coding,HEVC)或通用视频译码(versatile video coding,VVC)参考软件或下一代视频译码标准描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC。
[0152] 应理解,对于结合视频编码器20描述的上述每个示例,视频解码器30可用于执行逆过程。视频解码器30可用于接收和解析指示语法元素,并相应地对相关视频数据进行解码。在一些示例中,视频编码器20可以将一个或多个语法元素熵编码到经编码视频码流中。在这些示例中,视频解码器30可以解析这些语法元素并相应地对相关视频数据进行解码。
[0153] 图1B是示例性实施例提供的包括图2的视频编码器20和/或图3的视频解码器30的另一示例性视频译码系统40的说明图。系统40可以实现本申请中描述的各种示例提供的技术。在所示实现方式中,视频译码系统40可以包括一个或多个成像设备41、视频编码器100、视频解码器30(和/或通过一个或多个处理单元46的逻辑电路47实现的视频译码器)、天线42、一个或多个处理器43、一个或多个存储器44和/或显示设备45。
[0154] 如图所示,一个或多个成像设备41、天线42、一个或多个处理单元46、逻辑电路47、视频编码器20、视频解码器30、一个或多个处理器43、一个或多个存储器44和/或显示设备45能够彼此通信。如所论述,尽管示出同时具有视频编码器20和视频解码器30,但是在各种示例中,视频译码系统40可以仅包括视频编码器20或仅包括视频解码器30。
[0155] 如图所示,在一些示例中,视频译码系统40可以包括天线42。例如,天线42可用于发送或接收经编码视频数据码流。此外,在一些示例中,视频译码系统40可以包括显示设备45。显示设备45可用于呈现视频数据。如图所示,在一些示例中,可以通过一个或多个处理单元46实现逻辑电路47。一个或多个处理单元46可以包括专用集成电路(application‑specific integrated circuit,ASIC)逻辑、一个或多个图形处理器、一个或多个通用处理器等。视频译码系统40还可以包括一个或多个可选的处理器43,所述一个或多个可选的处理器43可以类似地包括专用集成电路(ASIC)逻辑、一个或多个图形处理器、一个或多个通用处理器等。在一些示例中,逻辑电路47可以通过硬件、视频译码专用硬件等实现,一个或多个处理器43可以实现通用软件、操作系统等。此外,一个或多个存储器44可以是任何类型的存储器,如易失性存储器(例如,静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)等)或非易失性存储器(例如,闪存等)等等。在非限制性示例中,一个或多个存储器44可以由高速缓冲存储器实现。在一些示例中,逻辑电路47可以访问一个或多个存储器44(例如,用于实现图像缓冲器)。在其它示例中,逻辑电路47和/或一个或多个处理单元46可以包括用于实现图像缓冲器等的存储器(例如,高速缓存等)。
[0156] 在一些示例中,通过逻辑电路实现的视频编码器100可以包括图像缓冲器(例如,通过一个或多个处理单元46或一个或多个存储器44实现)和图形处理单元(graphics processing unit,GPU)(例如,通过一个或多个处理单元46实现)。图形处理单元可以以通信方式耦合到图像缓冲器。图形处理单元可以包括通过逻辑电路47实现的视频编码器100,以体现结合图2所论述的各种模块和/或本文描述的任何其它编码器系统或子系统。逻辑电路可用于执行本文论述的各种操作。
[0157] 视频解码器30可以以与通过逻辑电路47实现的类似方式实现,以体现结合图3的解码器30和/或本文描述的任何其它解码器系统或子系统讨论的各种模块。在一些示例中,通过逻辑电路实现的视频解码器30可以包括图像缓冲器(例如,通过一个或多个处理单元420或一个或多个存储器44实现)和图形处理单元(graphics processing unit,GPU)(例如,通过一个或多个处理单元46实现)。图形处理单元可以以通信方式耦合到图像缓冲器。
图形处理单元可以包括通过逻辑电路47实现的视频解码器30,以体现结合图3所论述的各种模块和/或本文描述的任何其它解码器系统或子系统。
[0158] 在一些示例中,视频译码系统40的天线42可用于接收经编码视频数据码流。如所论述,经编码码流可以包括与本文所论述的视频帧的编码关联的数据、指示符、索引值、模式选择数据等,例如与译码分割关联的数据(例如,变换系数或经量化的变换系数、可选指示符(如所论述的)和/或定义译码分割的数据)。视频译码系统40还可以包括耦合到天线42并用于对经编码码流进行解码的视频解码器30。显示设备45用于呈现视频帧。
[0159] 图2示出了用于实现本申请技术的示例性视频编码器20的示意性/概念性框图。在图2的示例中,视频编码器20包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、缓冲器216、环路滤波器单元220、解码图像缓冲器(decoded picture buffer,DPB)230、预测处理单元260和熵编码单元270。预测处理单元260可以包括帧间预测单元244、帧内预测单元254和模式选择单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合视频编码器或基于混合视频编解码器的视频编码器。
[0160] 残差计算单元204、变换处理单元206、量化单元208、预测处理单元260和熵编码单元270等形成编码器20的正向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲器(decoded picture buffer,DPB)230、预测处理单元260等形成编码器的反向信号路径。编码器的反向信号路径与解码器(参见图3中的解码器30)的信号路径对应。
[0161] 反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
[0162] 编码器20用于通过输入端202等接收图像201或图像201(例如,形成视频或视频序列的图像序列的图像)的块203。图像块203也可以称为当前图像块或待译码图像块,图像201也可以称为当前图像或待译码图像(特别是在视频译码中,以便将当前图像与其它图像(例如,同一视频序列(即,也包括当前图像的视频序列)的之前编码和/或解码的图像))区分开。
[0163] (数字)图像是或可被视为具有强度值的像素点的二维阵列或矩阵。阵列中的像素点也可以称为像素(图像元素的简短形式)。阵列或图像的水平和垂直方向(或轴)的像素点数定义了图像的尺寸和/或分辨率。为了表示颜色,通常使用三种颜色分量,即,该图像可以表示为或包括三个像素点阵列。在RBG格式或颜色空间中,图像包括对应的红色、绿色和蓝色像素点阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或在颜色空间中表示,例如,YCbCr,包括Y表示的亮度分量(有时也用L表示)和Cb和Cr表示的两个色度分量。亮度分量Y表示亮度或灰阶强度(例如,如同灰阶图像中),两个色度分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括亮度像素点值(Y)的亮度像素点阵列和色度值(Cb和Cr)的两个色度像素点阵列。RGB格式的图像可以转换成YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则图像可以仅包括亮度像素点阵列。相应地,例如,图像可以为单色格式的亮度像素点阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度像素点阵列和两个对应的色度像素点阵列。
[0164] 分割
[0165] 在一个实施例中,编码器20的实施例可包括分割单元(图2中未示出),用于将图像201分割成多个(通常不重叠)图像块203。这些块在H.265/HEVC和VVC标准中也可以称为根块、宏块(H.264/AVC)或译码树块(coding tree block,CTB),或译码树单元(coding tree unit,CTU)。分割单元可用于对视频序列的所有图像使用相同的块尺寸和定义块尺寸的对应网格,或者改变图像或图像的子集或组之间的块尺寸,并将每个图像分割成对应块。
[0166] 在其它实施例中,视频编码器可用于直接接收图像201的块203,例如,组成图像201的一个、几个或所有块。图像块203也可以称为当前图像块或待译码图像块。
[0167] 在一个示例中,视频编码器20的预测处理单元260可以用于执行上文描述的分割技术的任意组合。
[0168] 与图像201类似,块203同样是或可以看作是具有强度值(像素点值)的像素点的二维阵列或矩阵,但是,块203的尺寸比图像201小。换句话说,例如,根据所应用的颜色格式,块203可以包括一个像素点阵列(例如,图像201是单色情况下的亮度阵列)或三个像素点阵列(例如,图像201是彩色情况下的一个亮度阵列和两个色度阵列)或任何其它数量和/或类型的阵列。块203的水平和垂直方向(或轴)上的像素点数量限定了块203的尺寸。相应地,块可以为M×N(M列×N行)个像素点阵列,或M×N个变换系数阵列等。
[0169] 如图2所示的编码器20用于逐个块对图像201进行编码,例如,对每个块203执行编码和预测。
[0170] 在一个实施例中,图2所示的视频编码器20还可以用于使用条带(也称为视频条带)对图像进行分割和/或编码,其中图像可以分割成一个或多个条带(通常为不重叠的)或使用一个或多个条带(通常为不重叠的)进行编码。每个条带可包括一个或多个块(例如,CTU)或一个或多个块组(例如H.265/HEVC/VVC标准中的分块和VVC标准中的砖块)。
[0171] 在一个实施例中,图2所示的视频编码器20还可以用于使用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或编码,其中图像可以分割成一个或多个条带/分块组(通常为不重叠的)或使用一个或多个条带/分块组(通常为不重叠的)进行编码,每个条带/分块组可包括一个或多个块(例如CTU)或一个或多个分块等,其中每个分块可以为矩形等形状,可包括一个或多个完整或部分块(例如CTU)。
[0172] 残差计算
[0173] 残差计算单元204用于通过如下等方式根据图像块203和预测块265(下文将详细描述预测块265)来计算残差块205:逐个像素点(逐个像素)从图像块203的像素点值中减去预测块265的像素点值,以获得像素点域中的残差块205。
[0174] 变换
[0175] 变换处理单元206用于对残差块205的像素点值应用离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST)等变换,以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。
[0176] 变换处理单元206可用于应用DCT/DST的整数化近似法,如针对HEVC/H.265指定的变换。与正交DCT变换相比,该整数近似法通常通过某一因子按比例缩放。为了保持正逆变换处理的残差块的范数,在变换过程中应用了其它的缩放因子。缩放因子通常是基于某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的权衡等。例如,在解码器30侧通过逆变换处理单元212等为逆变换(以及在编码器20侧通过逆变换处理单元212等为对应逆变换)指定具体的缩放因子,以及相应地,可以在编码器20侧通过变换处理单元206等为正变换指定对应的缩放因子。
[0177] 视频编码器20(对应为变换处理单元206)的实施例可以用于直接输出或通过熵编码单元270进行编码或压缩后输出变换参数(例如,一种或多种变换的类型),例如使得视频解码器30可以接收并使用变换参数进行解码。
[0178] 量化
[0179] 量化单元208用于通过应用标量量化或矢量量化等对变换系数207进行量化,以获得经量化的变换系数209。经量化的变换系数209也可以称为经量化的残差系数209。量化过程可以减少与部分或全部变换系数207关联的位深度。例如,可以在量化期间将n位变换系数向下取整到m位变换系数,其中n大于m。可以通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以应用不同的缩放来实现更精细或更粗略的量化。较小的量化步长对应于更精细的量化,而较大的量化步长对应于更粗略的量化。适用的量化步长可以通过量化参数(quantization parameter,QP)指示。例如,量化参数可以是预定义的适用量化步长集合的索引。例如,较小量化参数可以对应于精细量化(较小量化步长),较大量化参数可以对应于粗略量化(较大量化步长),反之亦然。量化可以包括除以量化步长,而反量化单元210等执行的对应或反量化可包括乘以量化步长。根据HEVC等一些标准的实施例可用于使用量化参数来确定量化步长。通常,量化步长可以根据使用包括除法的等式的定点近似值的量化参数来计算。量化和解量化可以引入其它缩放因子以恢复残差块的范数,由于在量化步长和量化参数的方程的定点近似值中使用的缩放,可能会修改残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的缩放。或者,可以使用自定义量化表并在码流中从编码器指示到解码器。量化是有损操作,损失随着量化步长的增大而增大。
[0180] 在实施例中,视频编码器20(对应为量化单元208)可用于输出量化参数(quantization parameter,QP),例如,直接输出或由熵编码单元270进行编码或压缩后输出,例如使得视频解码器30可接收并使用量化参数进行解码。
[0181] 反量化单元210用于对量化系数执行量化单元208的反量化,得到解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案的反量化方案。解量化系数211也可称为解量化残差系数211,对应于变换系数207,但是由于量化造成损耗,反量化系数211通常与变换系数不完全相同。
[0182] 逆变换处理单元212用于应用变换处理单元206所应用的变换的逆变换,例如逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sine transform,DST),以获得像素点域中的逆变换块213。逆变换块213也可以称为逆变换解量化块213或逆变换残差块213。
[0183] 重建单元214(例如,求和器214)用于通过将重建残差块213的像素点值和预测块265的像素点值相加等将逆变换块213(即重建残差块213)添加到预测块265,以在像素点域中获得重建块215。
[0184] 可选的,缓冲器单元216(或简称“缓冲器”216)(例如列缓冲器216)用于缓冲或存储重建块215和相应的像素点值,以进行帧内预测等。在其它实施例中,编码器可用于使用存储在缓冲器单元216中的未滤波的重建块和/或相应的像素点值进行任何类型的估计和/或预测(例如,帧内预测)。
[0185] 编码器20的实施例可配置成使得,例如缓冲器单元216不仅用于存储用于帧内预测254的重建块215,而且用于存储用于环路滤波器单元220(图2中未示出)的重建块215,和/或配置成使得,例如缓冲器单元216和解码图像缓冲器单元230形成一个缓冲器。其它实施例可用于使用滤波块221和/或解码图像缓冲器230中的块或像素点(两者都未在图2中示出)作为帧内预测254的输入或基础。
[0186] 环路滤波器单元220(或简称“环路滤波器”220)用于对重建块215进行滤波以获得滤波块221,从而顺利进行像素转变或提高视频质量等。环路滤波器单元220用于表示一个或多个环路滤波器,如去块效应滤波器、像素点自适应偏移(sample‑adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器或自适应环路滤波器(adaptive loop filter,ALF)或锐化或平滑滤波器或协作滤波器。尽管环路滤波器单元220在图2中示为环路滤波器,但在其它配置中,环路滤波器单元220可以实现为环后滤波器。滤波块221也可称为滤波重建块221。解码图像缓冲器230可以在环路滤波器单元220对重建译码块进行滤波操作之后存储重建译码块。
[0187] 环路滤波器单元220(或简称“环路滤波器”220)用于对重建块215进行滤波,得到滤波块221,或通常用于对重建像素点进行滤波以得到滤波像素点值。例如,环路滤波器单元用于顺利进行像素转变或提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,如去块效应滤波器、像素点自适应偏移(sample‑adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器(noise suppression filter,NSF)或其任何组合。例如,环路滤波器单元220可以包括去块效应滤波器、SAO滤波器和ALF滤波器。滤波过程的顺序可以是去块效应滤波器、SAO滤波器和ALF滤波器。再例如,增加一个称为具有色度缩放的亮度映射(luma mapping with chroma scaling,LMCS)(即自适应环内整形器)的过程。该过程在去块效应之前执行。再例如,去块效应滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、子块变换(sub‑block transform,SBT)边缘和帧内子分割(intra sub‑partition,ISP)边缘。尽管环路滤波器单元220在图2中示为环路滤波器,但在其它配置中,环路滤波器单元220可以实现为环后滤波器。滤波块221也可称为滤波重建块221。
[0188] 在实施例中,视频编码器20(对应为环路滤波器单元220)可用于输出环路滤波器参数(例如SAO滤波参数、ALF滤波参数或LMCS参数),例如,直接输出或由熵编码单元270进行编码后输出,例如使得解码器30可接收并使用相同或不同的环路滤波器参数进行解码。
[0189] 在实施例中,编码器20(对应为环路滤波器单元220)可用于输出环路滤波器参数(如像素点自适应偏移信息),例如直接输出或通过熵编码单元270或任何其它熵译码单元进行熵编码后输出,例如使得解码器30可以接收和应用相同的环路滤波器参数进行解码。
[0190] 解码图像缓冲器(decoded picture buffer,DPB)230可以是参考图像存储器,存储用于由视频编码器20对视频数据进行编码的参考图像数据。DPB 230可以由多种存储器设备中的任一种形成,例如动态随机存取存储器(dynamic random access memory,DRAM),包括同步DRAM(synchronous DRAM,SDRAM)、磁阻RAM(magnetoresistive RAM,MRAM)、电阻RAM(resistive RAM,RRAM)或其它类型的存储设备。DPB 230和缓冲器216可以由相同的存储设备或单独的存储设备提供。在一些示例中,解码图像缓冲器(decoded picture buffer,DPB)230用于存储滤波块221。解码图像缓冲器230还可用于存储同一当前图像或之前的重建图像等不同图像的其它之前的滤波块,例如之前的重建和滤波块221,并可提供完整的之前重建即解码图像(和对应参考块和像素点)和/或部分重建的当前图像(和对应参考块和像素点),例如进行帧间预测。在一些示例中,在对重建块215进行重建但不进行环内滤波时,例如,在重建块215未通过环路滤波器单元220进行滤波时,解码图像缓冲器(decoded picture buffer,DPB)230用于存储一个或多个未滤波的重建块215,或通常存储未滤波的重建像素点,或重建块或重建像素点的任何其它进一步处理的版本。
[0191] 预测处理单元260(也称为块预测处理单元260)用于:接收或获取块203(当前图像201的当前块203)和经重建图像数据,例如,缓冲器216中的相同(当前)图像的参考像素点和/或解码图像缓冲器230中的一个或多个之前解码图像的参考图像数据231,并处理这些数据以进行预测,即提供预测块265,其中,所述预测块265可以是帧间预测块245或帧内预测块255。
[0192] 模式选择单元262可用于选择预测模式(例如,帧内预测或帧间预测模式)和/或对应的预测块245或255,用作预测块265以用于计算残差块205和重建重建块215。
[0193] 在实施例中,模式选择单元262可用于选择预测模式(例如,从预测处理单元260支持的预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差指传输或存储中进行更好的压缩),或具有最小指示开销(最小指示开销指传输或存储中进行更好的压缩),或者同时考虑或平衡以上两者。模式选择单元262可用于根据率失真优化(rate distortion optimization,RDO)确定预测模式,即选择提供最小率失真优化的预测模式,或者选择至少满足预测模式选择标准的关联率失真的预测模式。
[0194] 下文将更详细地解释由示例性编码器20执行的预测处理(例如,由预测处理单元260执行)和模式选择(例如,由模式选择单元262执行)。
[0195] 除了上述实施例或作为上述实施例的替代方案,在图17提供的其它实施例中,模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,用于从解码图像缓冲器230或其它缓冲器(例如,列缓冲器,未示出)等接收或获得原始图像数据(例如,原始块203(当前图像17的当前块203))和重建图像数据(例如,相同(当前)图像和/或一个或多个之前解码的图像的滤波和/或未经滤波的重建像素点或重建块)。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,以得到预测块265或预测值265。
[0196] 模式选择单元260可用于为当前块预测模式(包括不分割)和预测模式(例如帧内或帧间预测模式)确定或选择分割类型,并生成对应的预测块265,以对残差块205进行计算和对重建块215进行重建。
[0197] 在一个实施例中,模式选择单元260可用于选择分割和预测模式(例如,从模式选择单元260支持的或可用的预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差是指传输或存储中进行更好的压缩),或者提供最小指示开销(最小指示开销是指传输或存储中进行更好的压缩),或者同时考虑或平衡以上两者。模式选择单元260可用于根据率失真优化(rate distortion optimization,RDO)确定分割和预测模式,即选择提供最小率失真优化的预测模式。本上下文中如“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准,例如,值超过或低于阈值或其它约束条件,可能会进行“次优选择”,但是降低了复杂度和处理时间。
[0198] 换句话说,分割单元262可用于将视频序列中的图像分割为译码树单元(coding tree unit,CTU)序列,CTU 203可进一步被分割成更小的分割块或子块(再次形成块),例如,通过迭代使用四叉树(quad‑tree partitioning,QT)分割、二叉树(binary‑tree partitioning,BT)分割或三叉树(triple‑tree partitioning,TT)分割或其任何组合,并且用于例如对分割块或子块中的每一个执行预测,其中模式选择包括选择分割块203的树结构和选择应用于分割块或子块中的每一个的预测模式。
[0199] 下文将详细地描述由视频编码器20执行的分割(例如,由分割单元260执行)和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。
[0200] 分割
[0201] 分割单元262可用于将视频序列中的图像分割为译码树单元(coding tree unit,CTU)序列,分割单元262可将一个译码树单元203分割(或划分)为更小的分割块,例如正方形或矩形形状的小块。对于具有三个像素点阵列的图像,一个CTU由N×N个亮度像素点块和两个对应的色度像素点块组成。CTU中允许的最大亮度块尺寸在正在开发的通用视频译码(versatile video coding,VVC)标准中被指定为128×128,但是将来可指定为不同于128×128的值,例如256×256。图像的CTU可以集中/分组为条带/分块组、分块或砖块。一个分块覆盖一个图像的矩形区域,一个分块可以分成一个或多个砖块。一个砖块由一个分块内的多个CTU行组成。没有分割为多个砖块的分块可以称为砖块。但是,砖块是分块的真正子集,因此不称为分块。VVC支持两种分块组模式,分别为光栅扫描条带/分块组模式和矩形条带模式。在光栅扫描分块组模式中,一个条带/分块组包含一个图像的分块光栅扫描中的分块序列。在矩形条带模式中,条带包含一个图像的若干个砖块,这些砖块共同组成图像的矩形区域。矩形条带内的砖块按照条带的砖块光栅扫描顺序排列。可以将这些较小块(也可以称为子块)进一步分割为甚至更小的分割块。这也称为树分割或层次树分割,其中,可以递归地分割例如根树层次0(层次级别0,深度0)的根块,例如分割为两个或两个以上下一较低树层次的块,例如树层次1(层次级别1,深度1)的节点。可以再次将这些块分割为两个或两个以上下一较低层次,例如树层次2(层次级别2、深度2)的块等,直到由于满足终止标准,达到最大树深度或最小块尺寸,分割终止。未进一步分割的块也称为树的叶块或叶节点。分割为两个分割块的树称为二叉树(binary‑tree,BT),分割为三个分割块的树称为三叉树(ternary‑tree,TT),分割为四个分割块的树称为四叉树(quad‑tree,QT)。
[0202] 例如,译码树单元(CTU)可以为或包括亮度像素点的CTB、具有三个像素点阵列的图像的色度像素点的两个对应CTB、或单色图像的像素点的CTB或使用三个独立颜色平面和语法结构(用于对像素点进行译码)进行译码的图像的像素点的CTB。相应地,译码树块(coding tree block,CTB)可以为N×N个像素点块,其中N可以设为某个值使得分量划分为CTB,这就是分割。译码单元(coding unit,CU)可以为或包括亮度像素点的译码块、具有三个像素点阵列的图像的色度像素点的两个对应译码块、或单色图像的像素点的译码块或使用三个独立颜色平面和语法结构(用于对像素点进行译码)译码的图像的像素点的译码块。相应地,译码块(CB)可以为M×N个像素点块,其中M和N可以设为某个值使得CTB划分为译码块,这就是分割。
[0203] 在实施例中,例如根据HEVC,可以通过表示为译码树的四叉树结构将译码树单元(coding tree unit,CTU)划分为多个CU。以叶CU为单位确定是使用帧间(时间)预测还是帧内(空间)预测对图像区域进行译码。可以根据PU划分类型将每个叶CU进一步划分为一个、两个或四个PU。一个PU内应用相同的预测过程,并以PU为单位向解码器发送相关信息。在根据PU划分类型应用预测过程获取残差块之后,可以根据与用于CU的译码树类似的另一种四叉树结构将叶CU分割为变换单元(transform unit,TU)。
[0204] 例如,在实施例中,根据当前正在开发的最新视频译码标准(称为通用视频译码(Versatile Video Coding,VVC),使用组合式四叉树嵌套多类型树(例如二叉树和三叉树)来划分用于分割译码树单元的分段结构。在译码树单元内的译码树结构中,CU可以为正方形或矩形。例如,首先通过四叉树对译码树单元(coding tree unit,CTU)进行分割。然后,通过多类型树结构进一步分割四叉树叶节点。多类型树形结构有四种划分类型:垂直二叉树划分(SPLIT_BT_VER)、水平二叉树划分(SPLIT_BT_HOR)、垂直三叉树划分(SPLIT_TT_VER)和水平三叉树划分(SPLIT_TT_HOR)。多类型树叶节点称为译码单元(coding unit,CU),除非CU对于最大变换长度而言太大,这样的分段用于在不进行任何其它分割的情况下进行预测和变换处理。在大多数情况下,这表示CU、PU和TU在四叉树嵌套多类型树的译码块结构中的块尺寸相同。当支持的最大变换长度小于CU的颜色分量的宽度或高度时,就会出现该异常。VVC制定了四叉树嵌套多类型树的译码树结构中的分割划分信息的唯一指示机制。在该指示机制中,译码树单元(CTU)作为四叉树的根首先被四叉树结构分割。然后每个四叉树叶节点(当足够大可以时)被进一步分割为一个多类型树结构。在多类型树结构中,通过第一标志(mtt_split_cu_flag)指示节点是否进一步分割,当对节点进一步分割时,先用第二标志(mtt_split_cu_vertical_flag)指示划分方向,再用第三标志(mtt_split_cu_binary_flag)指示划分是二叉树划分还是三叉树划分。根据mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,解码器可以根据预定义规则或表格导出CU的多类型树划分模式(MttSplitMode)。需要说明的是,对于某种设计,例如VVC硬件解码器中的64×64亮度块和32×32色度流水线设计,当亮度译码块的宽度或高度大于64时,禁止进行TT划分,如图6所示。当色度译码块的宽度或高度大于32时,也不允许进行TT划分。流水线设计将图像分为多个虚拟流水线数据单元(virtual pipeline data unit,VPDU),每个VPDU在图像中定义为互不重叠的单元。在硬件解码器中,连续的VPDU在多个流水线阶段同时处理。在大多数流水线阶段,VPDU尺寸与缓冲器尺寸大致成正比,因此需要保持较小的VPDU。在大多数硬件解码器中,VPDU尺寸可以设置为最大变换块(transform block,TB)尺寸。但是,在VVC中,三叉树(ternary tree,TT)和二叉树(binary tree,BT)的分割可能会增加VPDU的尺寸。
[0205] 另外,需要说明的是,当树节点块的一部分超出图像下边界或图像右边界时,强制对该树节点块进行划分,直到每个经译码CU的所有像素点都位于图像边界内。
[0206] 例如,所述帧内子分割(intra sub‑partition,ISP)工具可以根据块尺寸将亮度帧内预测块垂直或水平地分为两个或四个子分割块。
[0207] 在一个示例中,视频编码器20的模式选择单元260可以用于执行本文描述的分割技术的任何组合。
[0208] 如上所述,编码器20用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。例如,所述预测模式集可以包括帧内预测模式和/或帧间预测模式。
[0209] 帧内预测模式集可以包括35种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式等非方向性模式,或如H.265中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式等非方向性模式,或如针对VVC定义的方向性模式。例如,若干传统角度帧内预测模式自适应地替换为VVC中定义的非正方形块的广角帧内预测模式。再例如,为了避免DC预测的除法运算,仅使用较长边来计算非正方形块的平均值。并且,平面模式的帧内预测结果还可以使用位置决定的帧内预测组合(position dependent intra prediction combination,PDPC)方法进行修改。
[0210] 帧内预测单元254用于根据帧内预测模式集中的帧内预测模式,使用同一当前图像的邻块的重建像素点来生成帧内预测块265。
[0211] 帧内预测单元254(或通常为模式选择单元260)还用于将帧内预测参数(或通常为指示块的所选帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以包括到经编码图像数据21中,例如使得视频解码器30可以接收并使用预测参数进行解码。
[0212] 帧间预测模式集(或可能的帧间预测模式)取决于可用参考图像(即,例如之前存储在DBP 230中的至少部分解码的图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分,例如当前块的区域附近的搜索窗口区域,来搜索最佳匹配参考块,和/或例如取决于是否执行半像素、四分之一像素和/或十六分之一像素插值。
[0213] 除上述预测模式外,还可以采用跳过模式、直接模式和/或其它帧间预测模式。
[0214] 例如,扩展融合预测,这种模式的合并候选列表由以下五种候选类型按顺序组成:来自空间相邻CU的空间MVP、来自并置CU的时间MVP、来自FIFO表的基于历史的MVP、成对平均MVP和零MV。可以使用基于双边匹配的解码端运动矢量修正(decoder side motion vector refinement,DMVR)来增加融合模式的MV的准确度。带有MVD的融合模式(merge mode with MVD,MMVD)来自有运动矢量差异的融合模式。在发送跳过标志和融合标志之后立即指示MMVD标志,以指定CU是否使用MMVD模式。可以使用CU级自适应运动矢量分辨率(adaptive motion vector resolution,AMVR)方案。AMVR支持CU的MVD以不同的精度进行译码。根据当前CU的预测模式,自适应地选择当前CU的MVD。当CU以融合模式进行译码时,可以将合并的帧间/帧内预测(combined inter/intra prediction,CIIP)模式应用于当前CU。对帧间和帧内预测信号进行加权平均,得到CIIP预测。对于仿射运动补偿预测,通过2个控制点(4参数)或3个控制点(6参数)运动矢量的运动信息来描述块的仿射运动场。基于子块的时间运动矢量预测(subblock‑based temporal motion vector prediction,SbTMVP),与HEVC中的时间运动矢量预测(temporal motion vector prediction,TMVP)类似,但预测的是当前CU内的子CU的运动矢量。双向光流(bi‑directional optical flow,BDOF)以前称为BIO,是一种减少计算的简化版本,特别是在乘法次数和乘数大小的计算。在三角形分割模式中,CU以对角线划分和反对角线划分两种划分方式被均匀划分为两个三角形分割块。此外,双向预测模式在简单平均的基础上进行了扩展,以支持两个预测信号的加权平均。
[0215] 除上述预测模式外,还可以应用跳过模式和/或直接模式。
[0216] 预测处理单元260还可以用于将块203分割成更小的分割块或子块,例如,使用四叉树(quad‑tree,QT)分割、二叉树(binary‑tree,BT)分割或三叉树(triple‑tree,TT)分割或其任何组合迭代地进行,并例如对每个分割块或子块进行预测,其中,所述模式选择包括选择分割块203的树形结构以及应用于每个分割块或子块的预测模式。
[0217] 帧间预测单元244可以包括运动估计(motion estimation,ME)单元(图2中未示出)和运动补偿(motion compensation,MC)单元(图2中未示出)。运动估计单元用于接收或获取图像块203(当前图像201的当前图像块203)和解码图像231,或至少一个或多个之前重建块,例如,一个或多个其它/不同之前解码图像231的重建块,以进行运动估计。例如,视频序列可以包括当前图像和之前的解码图像231,或者换句话说,当前图像和之前的解码图像231可以是组成视频序列的图像序列的一部分或形成视频序列的图像序列。
[0218] 例如,编码器20可用于从多个其它图像中的同一或不同图像的多个参考块中选择参考块,并将参考图像(或参考图像索引……)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元(图2中未示出)。这个偏移也称为运动矢量(motion vector,MV)。
[0219] 运动补偿单元用于获取(例如接收)帧间预测参数,并根据或使用帧间预测参数进行帧间预测,以获得帧间预测块265。由运动补偿单元(图2中未示出)执行的运动补偿可能涉及根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可能包括对子像素精度进行插值。插值滤波可生成其它像素的像素点,从而可能增加可用于对图像块进行译码的候选预测块的数量。一旦接收到当前图像块的PU的运动矢量,运动补偿单元可以定位在其中一个参考图像列表中运动矢量指向的预测块。运动补偿单元还可以生成与所述块和视频条带相关的语法元素,以供视频解码器30用于对视频条带的图像块进行解码。
[0220] 帧内预测单元254用于获取(例如接收)图像块203(当前图像块)和相同图像的一个或多个之前重建块(例如,重建邻块),以进行帧内估计。例如,编码器20可用于从多个(预定的)帧内预测模式中选择帧内预测模式。
[0221] 编码器20的实施例可用于根据优化标准(例如,最小残差(例如,提供与当前图像块203最相似的预测块255的帧内预测模式)或最小率失真)选择帧内预测模式。
[0222] 帧内预测单元254还用于根据帧内预测参数(例如,所选帧内预测模式)确定帧内预测块255。在任何情况下,在对块选择帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即指示块的所选帧内预测模式的信息。在一个示例中,帧内预测单元254可用于执行下文描述的帧内预测技术的任何组合。
[0223] 熵编码单元270用于单独或联合(或完全不联合)对经量化的残差系数209、帧间预测参数、帧内预测参数和/或环路滤波器参数应用熵编码算法或方案(例如,可变长度译码(variable length coding,VLC)方案、上下文自适应VLC(context adaptive VLC,CAVLC)方案、算术译码方案、上下文自适应二进制算术译码(context adaptive  binary arithmetic coding,CABAC)、基于语法的上下文自适应二进制算术译码(syntax‑based context‑adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)译码或其它熵编码方法或技术),以获得可由输出端272输出的经编码图像数据21,例如,以经编码码流21的形式输出。可以将经编码码流21发送到视频解码器30,或将其存档以供稍后发送或由视频解码器30检索。熵编码单元270还可以用于对正在译码的当前视频条带的其它语法元素进行熵编码。
[0224] 视频编码器20的其它结构变体可用于对视频流进行编码。例如,基于非变换的编码器20可以在没有变换处理单元206的情况下直接对某些块或帧的残差信号进行量化。在另一种实现方式中,编码器20中,量化单元208和反量化单元210可以组合成一个单元。
[0225] 图3示出了用于实现本申请技术的示例性视频解码器30。例如,视频解码器30用于接收由编码器100编码的经编码图像数据(例如,经编码码流)21以获得解码图像131。在解码过程中,视频解码器30从视频编码器100接收表示经编码的视频条带的图像块的经编码视频码流以及相关语法元素。
[0226] 在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如,求和器314)、缓冲器316、环路滤波器320、解码图像缓冲器330和预测处理单元360。预测处理单元360可以包括帧间预测单元344、帧内预测单元354和模式选择单元362。在一些示例中,视频解码器30可执行通常与图2的视频编码器100描述的编码过程相反的解码过程。
[0227] 如编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decoded picture buffer,DPB)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。相应地,反量化单元310在功能上可与反量化单元110相同,逆变换处理单元312在功能上可与逆变换处理单元212相同,重建单元314在功能上可与重建单元214相同,环路滤波器320在功能上可与环路滤波器220相同,解码图像缓冲器330在功能上可与解码图像缓冲器230相同。因此,针对视频编码器20的相应单元和功能进行的描述对应地适用于视频解码器30的相应单元和功能。
[0228] 熵解码单元304用于对经编码图像数据21执行熵解码以获得量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素中的(解码的)任一者或全部。熵解码单元304还用于将帧间预测参数、帧内预测参数和/或其它语法元素转发给预测处理单元360。视频解码器30可以接收视频条带级和/或视频块级的语法元素。
[0229] 熵解码单元304用于解析码流21(或一般为经编码图像数据21)并对经编码图像数据21执行熵解码,得到量化系数309和/或解码后的译码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素等中的任一个或全部。熵解码单元304可用于应用与针对编码器20的熵编码单元270所描述的编码方案相对应的解码算法或方案。熵解码单元304还可用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,以及向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。另外或者作为条带和相应语法元素的替代,可以接收或使用分块组和/或分块以及相应语法元素。
[0230] 反量化单元310的功能可以与反量化单元110相同;逆变换处理单元312的功能可以与逆变换处理单元112相同;重建单元314的功能可以与重建单元114相同;缓冲器316的功能可以与缓冲器116相同;环路滤波器320的功能可以与环路滤波器120相同;解码图像缓冲器330的功能可以与解码图像缓冲器130相同。
[0231] 解码器30的实施例可以包括分割单元(图3中未示出)。在一个示例中,视频解码器30的预测处理单元360可以用于执行上文描述的分割技术的任何组合。
[0232] 预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344的功能可以与帧间预测单元144类似,帧内预测单元354的功能可以与帧内预测单元154类似。预测处理单元360通常用于根据经编码数据21进行块预测和/或获得预测块365,并用于从熵解码单元304等接收或获得(显式或隐式地)预测相关参数和/或关于所选预测模式的信息。
[0233] 当视频条带被译码为经帧内译码(I)的条带时,预测处理单元360的帧内预测单元354用于根据当前帧或图像的之前解码块的指示(signal)的帧内预测模式和数据来生成当前视频条带的图像块的预测块365。当视频帧被译码为经帧间译码(例如B或P)的条带时,预测处理单元360的帧间预测单元344(例如,运动补偿单元)用于根据从熵解码单元304接收的运动矢量和其它语法元素针对当前视频条带的视频块生成预测块365。对于帧间预测,可以从其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在DPB 330中的参考图像,使用默认构建技术来构建参考帧列表:列表0和列表1。
[0234] 预测处理单元360用于通过解析运动矢量和其它语法元素来确定当前视频条带中的视频块的预测信息并使用所述预测信息针对所解码的当前视频块生成预测块。例如,预测处理单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个帧间编码的视频块的运动矢量、用于条带的每个帧间译码的视频块的帧间预测状态、其它信息,以对当前视频条带内的视频块进行解码。
[0235] 反量化单元310用于对码流中提供并由熵解码单元304解码的量化变换系数进行反量化,即解量化。反量化过程可以包括使用视频编码器100对视频条带中的每个视频块计算的量化参数来确定量化程度,同样确定需要应用的反量化的程度。
[0236] 反量化单元310可用于从经编码图像数据21(例如,通过熵解码单元304等进行解析和/或解码)接收量化参数(quantization parameter,QP)(或通常为与反量化相关的信息)和量化系数,并根据所述量化参数对经解码的量化系数309应用反量化以获得解量化系数311,所述解量化系数311也可以称为变换系数311。
[0237] 逆变换处理单元312用于对变换系数应用逆变换,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以在像素域中产生残差块。
[0238] 逆变换处理单元312还可用于接收解量化系数311,也称为变换系数311,并对解量化系数311应用变换以在像素点域中获得重建残差块213。重建残差块213也可以称为变换块313。变换可以为逆变换,例如逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码图像数据21(例如通过熵解码单元304进行解析和/或解码)接收变换参数或对应信息,以确定应用于解量化系数311的变换。
[0239] 重建单元314(例如,求和器314)用于通过将重建残差块313的像素点值和预测块365的像素点值相加,将逆变换块313(即重建残差块313)添加到预测块365,以在像素点域中获得重建块315。
[0240] 环路滤波器单元320(在译码环路中或之后)用于对重建块315进行滤波,得到滤波块321,从而顺利进行像素转变或提高视频质量等。在一个示例中,环路滤波器单元320可用于执行下文描述的滤波技术的任何组合。环路滤波器单元320用于表示一个或多个环路滤波器,如解块滤波器、像素点自适应偏移(sample‑adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器或自适应环路滤波器(adaptive loop filter,ALF)或锐化或平滑滤波器或协作滤波器。尽管环路滤波器单元320在图3中示为环路滤波器,但在其它配置中,环路滤波器单元320可以实现为环后滤波器。
[0241] 环路滤波器单元320还可以包括一个或多个环路滤波器,如去块效应滤波器、像素点自适应偏移(sample‑adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器(noise suppression filter,NSF)或其任何组合。例如,环路滤波器单元220可以包括去块效应滤波器、SAO滤波器和ALF滤波器。滤波过程的顺序可以是去块效应滤波器、SAO滤波器和ALF滤波器。再例如,增加一个称为具有色度缩放的亮度映射(luma mapping with chroma scaling,LMCS)(即自适应环内整形器)的过程。该过程在去块效应之前执行。再例如,去块效应滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、子块变换(sub‑block transform,SBT)边缘和帧内子分割(intra sub‑partition,ISP)边缘。
[0242] 然后,将给定帧或图像中的解码视频块321存储在解码图像缓冲器330中,所述解码图像缓冲器330存储用于后续运动补偿的参考图像。
[0243] 随后将一个图像中的解码视频块321存储在解码图像缓冲器330中,解码图像缓冲器330存储作为参考图像的解码图像331,参考图像用于其它图像和/或分别输出显示的后续运动补偿。
[0244] 解码器30用于通过输出端332等输出解码图像331,向用户呈现或供用户观看。
[0245] 可以使用视频解码器30的其它变体对压缩码流进行解码。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接对某些块或帧的残差信号进行反量化。在另一种实现方式中,视频解码器30中,反量化单元310和逆变换处理单元312可以组合成一个单元。
[0246] 除了上述实施例或作为上述实施例的替代方案,在图18提供的其它实施例中,帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同,帧内预测单元354的功能可以与帧间预测单元254相同,并根据从经编码图像数据21接收的分割和/或预测参数或相应信息(例如,通过熵解码单元304等进行解析和/或解码)确定划分或分割并执行预测。模式应用单元360可用于根据重建图像、块或相应的像素点(已滤波或未滤波)执行每个块的预测(帧内或帧间预测),得到预测块365。
[0247] 当视频条带被译码为经帧内译码(I)的条带时,模式应用单元360的帧内预测单元354用于根据当前帧或图像的之前解码块的指示(signal)的帧内预测模式和数据来生成当前视频条带的图像块的预测块365。当视频图像被译码为经帧间译码(例如B或P)的条带时,模式应用单元360的帧间预测单元344(例如,运动补偿单元)用于根据从熵解码单元304接收的运动矢量和其它语法元素针对当前视频条带的视频块生成预测块365。对于帧间预测,可以从其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在DPB 330中的参考图像,使用默认构建技术来构建参考帧列表:列表0和列表1。
除了条带(例如视频条带)或作为条带的替代,相同或类似的过程可应用于分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如视频可以使用I、P或B分块组和/或分块进行译码。
[0248] 模式应用单元360用于通过解析运动矢量或相关信息以及其它语法元素来确定当前视频条带中的视频块的预测信息并使用所述预测信息针对所解码的当前视频块生成预测块。例如,模式应用单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个帧间编码的视频块的运动矢量、用于条带的每个帧间译码的视频块的帧间预测状态、其它信息,以对当前视频条带内的视频块进行解码。除了条带(例如视频条带)或作为条带的替代,相同或类似的过程可应用于分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如视频可以使用I、P或B分块组和/或分块进行译码。
[0249] 在一个实施例中,图3所示的视频解码器30可以用于使用条带(也称为视频条带)对图像进行分割和/或解码,其中图像可以分割成一个或多个条带(通常为不重叠的)或使用一个或多个条带(通常为不重叠的)进行解码。每个条带可包括一个或多个块(例如,CTU)或一个或多个块组(例如H.265/HEVC/VVC标准中的分块和VVC标准中的砖块)。
[0250] 在一个实施例中,图3所示的视频解码器30还可以用于使用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码,其中图像可以分割成一个或多个条带/分块组(通常为不重叠的)或使用一个或多个条带/分块组(通常为不重叠的)进行解码,每个条带/分块组可包括一个或多个块(例如CTU)或一个或多个分块等,其中每个分块可以为矩形等形状,可包括一个或多个完整或部分块(例如CTU)。
[0251] 可以使用视频解码器30的其它变体对经编码图像数据21进行解码。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接对某些块或帧的残差信号进行反量化。在另一种实现方式中,视频解码器30中,反量化单元310和逆变换处理单元312可以组合成一个单元。
[0252] 应理解,在编码器20和解码器30中,可以对当前步骤的处理结果进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进行进一步的运算,例如裁剪(clip)或移位(shift)运算。
[0253] 图4是本发明实施例提供的视频编码设备400的示意图。视频译码设备400适用于实现本文所述的所公开实施例。在一个实施例中,视频译码设备400可以是解码器,例如图1A的视频解码器30,或编码器,例如图1A的视频编码器20。在一个实施例中,视频译码设备
400可以是如上所述的图1A的视频解码器30或图1A的视频编码器20的一个或多个组件。
[0254] 视频译码设备400包括用于接收数据的入端口410和接收器单元(receiver unit,Rx)420;用于处理数据的处理器、逻辑单元或中央处理单元(central processing unit,CPU)430;用于发送数据的发送器单元(transmitter unit,Tx)440和出端口450;以及用于存储数据的存储器460。视频译码设备400还可以包括耦合到入端口410、接收器单元420、发送器单元440和出端口450的光电(optical‑to‑electrical,OE)组件和电光(electrical‑to‑optical,EO)组件,用于光或电信号的出或入。
[0255] 处理器430通过硬件和软件实现。处理器430可实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收器单元420、发送器单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上文所公开的实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,包括译码模块
470为视频译码设备400的功能提供了实质性改进,并且实现了视频译码设备400到不同状态的转换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
[0256] 存储器460包括一个或多个磁盘、磁带驱动器和固态驱动器,可用作溢出数据存储设备,以在选择执行程序时存储这些程序,以及存储程序执行期间读取的指令和数据。存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read‑only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content‑addressable memory,TCAM)和/或静态随机存取存储器(static random‑access memory,SRAM)。
[0257] 图5为示例性实施例提供的装置500的简化框图,所述装置500可用作图1中的源设备310和目的设备320中的任一个或两个。装置500可以实现本申请中上文所述的技术。装置500的形式可以是包括多个计算设备的计算系统,也可以是单个计算设备,例如手机、平板电脑、膝上型电脑、笔记本电脑、台式计算机等。
[0258] 装置500中的处理器502可以是中央处理单元。或者,处理器502可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用一个以上的处理器可以提高速度和效率。
[0259] 在一种实现方式中,装置500中的存储器504可以是只读存储器(read only memory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,应用程序510包括允许处理器502执行本文所述方法的至少一个程序。例如,应用程序510可以包括应用1至N,还包括执行本文所述方法的视频译码应用。装置500还可以包括辅助存储器514形式的附加存储器,辅助存储器514可以是与移动计算设备一起使用的存储卡等。由于视频通信会话可以包括大量信息,因此它们可以全部或部分地存储在辅助存储器514中,并根据需要加载到存储器504中进行处理。装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器
518可以通过总线512耦合到处理器502。
[0260] 装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512耦合到处理器502。除了显示器518或作为显示器518的替代,可以提供允许用户对装置500进行编程或以其它方式使用装置500的其它输出设备。当所述输出设备是显示器或包括显示器时,所述显示器可以通过各种方式实现,包括通过液晶显示器(liquid crystal display,LCD)、阴极射线管(cathode‑ray tube,CRT)显示器、等离子显示器或发光二极管(light emitting diode,LED)显示器,如有机LED(organic LED,OLED)显示器。
[0261] 装置500还可以包括图像传感设备520或与图像传感设备520通信,例如,所述图像传感设备520为摄像机或现有的或今后将研发出的能够感测图像(如操作装置500的用户图像)的任何其它图像传感设备520。可以对图像传感设备520进行定位,使得其面向操作装置500的用户。在一个示例中,可以配置图像传感设备520的位置和光轴,使得视野包括与显示器518直接相邻并且可以看到显示器518的区域。
[0262] 装置500还可以包括声音传感设备522或与声音传感设备522通信,例如,所述声音传感设备522为麦克风或现有的或今后将研发出的能够感测装置500附近的声音的任何其它声音传感设备。声音传感设备522可以被定位成使得它面向操作装置500的用户,并且可以用于接收用户在操作装置500时发出的语音或其它话语等声音。
[0263] 虽然图5描述了装置500的处理器502和存储器504集成到单个单元中,但是可以利用其它配置。处理器502的操作可以分布在多个机器(每个机器具有一个或多个处理器)中,这些机器可以直接耦合或通过局域网或其它网络耦合。存储器504可以分布在多个机器中,如基于网络的存储器或执行装置500的操作的多个机器中的存储器。虽然装置500的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助存储器514可以直接耦合到装置500的其它组件或可以通过网络进行访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置500可以具有各种各样的配置。
[0264] 下一代视频译码(Next Generation Video Coding,NGVC)不对CU、PU和TU的概念进行区分,使CU分割形状更多样性。CU的尺寸与译码节点的尺寸相对应,可以是正方形或非正方形(例如,矩形)。
[0265] 另外或者可选的,也可以对CU进行划分得到TU或PU。
[0266] 在J.An等人于2015年9月发表的《下一代视频译码的块分割结构(Block partitioning structure for next generation video coding)》,国际电信联盟,COM16‑C966(以下称为“VCEG建议书COM16‑C966”中,提出将四叉树‑二叉树(quad‑tree‑binary‑tree,QTBT)分割技术用于HEVC之外的未来视频译码标准。模拟结果表明,提出的QTBT结构比在所使用的HEVC中的四叉树结构更高效。在HEVC中,限制了对较小块的帧间预测,以减少运动补偿的内存访问,且不支持4×4块的帧间预测。在JEM的QTBT中,取消了这些限制。
[0267] 在QTBT中,CU可以为正方形或矩形。如图6所示,首先通过四叉树结构对译码树单元(coding tree unit,CTU)进行分割。可以通过二叉树结构进一步分割四叉树叶节点。二叉树划分有两种划分类型:对称水平划分和对称垂直划分。在每种情况下,都是沿中间水平或垂直地划分节点。二叉树叶节点称为译码单元(coding unit,CU),片段用于在不进行进一步分割的情况下,进行预测和变换处理。即,在QTBT译码块结构中,CU、PU和TU的块尺寸相同。CU有时由不同颜色分量的译码块(coding block,CB)组成,例如,就4:2:0色度格式的P条带和B条带而言,一个CU包含一个亮度CB和两个色度CB;CU有时由单一分量的CB组成,例如,就I条带而言,一个CU仅包含一个亮度CB或仅包含两个色度CB。
[0268] 针对QTBT分割方案定义如下参数:
[0269] ‑CTU尺寸:四叉树的根节点尺寸,与HEVC中的概念相同
[0270] ‑MinQTSize:允许的最小四叉树叶节点尺寸
[0271] ‑MaxBTSize:允许的最大二叉树根节点尺寸
[0272] ‑MaxBTDepth:允许的最大二叉树深度
[0273] ‑MinBTSize:允许的最小二叉树叶节点尺寸
[0274] 在QTBT分割结构的一个示例中,当四叉树节点的尺寸等于或小于MinQTSize时,不考虑其它的四叉树。当尺寸超过MaxBTSize时,不通过二叉树进一步划分。否则,可以通过二叉树进一步分割四叉树叶节点。因此,四叉树叶节点也是二叉树的根节点,且二叉树深度为0。当二叉树深度达到MaxBTDepth(即4)时,不再考虑进一步划分。当二叉树节点的宽度等于MinBTSize(即4)时,不再考虑进一步水平划分。同理,当二叉树节点的高度等于MinBTSize时,不再考虑进一步垂直划分。通过预测和变换处理进一步处理二叉树的叶节点,无需任何进一步分割。在JEM中,最大CTU尺寸为256×256个亮度像素点。可以对二叉树(binary‑tree,CU)的叶节点进行进一步处理(例如,执行预测过程和变换过程),而无需任何进一步分割。
[0275] 图6示出了使用QTBT分割技术分割的块30(例如,CTB)的示例。如图6所示,使用QTBT分割技术,经过每个块的中心对称划分每个块。图7示出了与图6的块分割对应的树结构。图7中的实线表示四叉树划分,虚线表示二叉树划分。在一个示例中,在二叉树的每个划分(即,非叶)节点中,指示语法元素(例如,标志)以表示所执行的划分类型(例如,水平或垂直),其中,0表示水平划分,1表示垂直划分。对于四叉树划分,不需要表示划分类型,因为四叉树划分总是将一个块水平并垂直划分为4个尺寸相等的子块。
[0276] 如图7所示,在节点50处,使用QT分割将块30划分为图6所示的四个块31、32、33和34。不再进一步划分块34,因此块34是叶节点。在节点52处,使用BT分割将块31进一步划分为两个块。如图7所示,节点52标记为1,表示垂直划分。因此,节点52中的划分得到块37和包括块35和36的块。块35和36是通过在节点54中进一步垂直划分而形成的。在节点56处,使用BT分割将块32进一步划分为两个块38和39。
[0277] 在节点58处,使用QT分割将块33划分成4个尺寸相等的块。通过该QT分割产生块43和44,并且不再进一步划分块43和44。在节点60处,首先使用垂直二叉树划分来划分左上块,从而产生块40和右垂直块。然后使用水平二叉树划分将右垂直块划分成块41和42。在节点58处通过四叉树划分得到右下块,在节点62处,使用水平二叉树划分将该右下块划分为块45和46。如图7所示,节点62标记为0,表示水平划分。
[0278] 除了QTBT之外,还提出了一种称为多类型树(multi‑type‑tree,MTT)的块分割结构来取代基于QTBT的CU结构中的BT,也就是说,可以首先通过QT分割对CTU进行划分以获得CTU的块,然后通过MTT分割对该块进行划分。
[0279] MTT分割结构仍为递归树结构。在MTT中,使用多种不同的分割结构(例如,两种或两种以上)。例如,根据MTT技术,在树结构的每个深度下,可以对树结构的每个相应的非叶节点使用两种或两种以上不同的分割结构。树结构中某一节点的深度可以指从该节点到树结构的根的路径长度(例如,划分次数)。
[0280] MTT中有两种分割类型:BT分割和三叉树(ternary‑tree,TT)分割。分割类型可以从BT分割和TT分割中选择。TT分割结构与QT或BT结构的不同之处在于TT分割结构不沿中心对块进行划分。该块的中心区域完全处于同一子块内。与产生四个块的QT或产生两个块的二叉树不同,根据TT分割结构进行划分得到三个块。根据TT分割结构的示例性分割类型包括对称分割类型(水平和垂直)和非对称分割类型(水平和垂直)。此外,根据TT分割结构的对称分割类型可以是非平均/非均匀的或平均/均匀的。根据TT分割结构的非对称分割类型是非平均/非均匀的。在一个示例中,TT分割结构可以包括以下分割类型中的至少一种:水平平均/均匀对称三叉树、垂直平均/均匀对称三叉树、水平非平均/非均匀对称三叉树、垂直非平均/非均匀对称三叉树、水平非平均/非均匀非对称三叉树、或垂直非平均/非均匀非对称三叉树分割类型。
[0281] 通常,非平均/非均匀对称三叉树分割类型是围绕块的中心线对称的分割类型,但是得到的三个块中的至少一个块的尺寸与其它两个块的尺寸不相同。一个优选的示例是,侧块为块尺寸的1/4,而中心块为块尺寸的1/2。平均/均匀对称三叉树分割类型是围绕块的中心线对称的分割类型,且得到的块尺寸都相同。如果根据垂直或水平划分,块高度或宽度为3的倍数,则可以使用这种分割。非平均/非均匀非对称三叉树分割类型是围绕块的中心线不对称的分割类型,且得到的块中的至少一个块的尺寸与其它两个块的尺寸不相同。
[0282] 图8为可选的示例性水平三叉树分割类型的概念图。图9为可选的示例性垂直三叉树分割类型的概念图。在图8和图9中,h表示亮度或色度像素点中的块高度,w表示亮度或色度像素点中的块宽度。需要说明的是,块的相应中心线并不表示块边界(即,三叉树分割不经过中心线对块进行划分)。而是使用中心线来描述特定分割类型相对于原始块的中心线是对称还是非对称的。中心线也是在划分的方向上。
[0283] 如图8所示,采用水平平均/均匀对称分割类型对块71进行分割。水平平均/均匀对称分割类型产生相对于块71的中心线对称的上半部和下半部。水平平均/均匀对称分割类型产生三个尺寸相等的子块,每个子块的高度为h/3,宽度为w。当块71的高度可被3均匀整除时,可以使用水平平均/均匀对称分割类型。
[0284] 采用水平非平均/非均匀对称分割类型对块73进行分割。水平非平均/非均匀对称分割类型产生相对于块73的中心线对称的上半部和下半部。水平非平均/非均匀对称分割类型产生尺寸相等的两个块(例如,高度为h/4的顶部块和底部块)和一个尺寸不同的中心块(例如,高度为h/2的中心块)。在一个示例中,根据水平非平均/非均匀对称分割类型,中心块的面积等于顶部块和底部块的组合面积。在一些示例中,高度为2的幂(例如,2、4、8、16、32等)的块可以优选采用水平非平均/非均匀对称分割类型。
[0285] 采用水平非平均/非均匀非对称分割类型对块75进行分割。水平非平均/非均匀非对称分割类型不会产生相对于块75的中心线对称的上半部和下半部(即,上半部和下半部不对称)。在图8的示例中,水平非平均/非均匀非对称分割类型产生高度为h/4的顶部块、高度为3h/8的中心块和高度为3h/8的底部块。当然,可以使用其它非对称布置。
[0286] 如图9所示,采用垂直平均/均匀对称分割类型对块81进行分割。垂直平均/均匀对称分割类型产生相对于块81的中心线对称的左半部和右半部。垂直平均/均匀对称分割类型产生三个尺寸相等的子块,每个子块的宽度为w/3,高度为h。当块81的宽度可被3均匀整除时,可以使用垂直平均/均匀对称分割类型。
[0287] 采用垂直非平均/非均匀对称分割类型对块83进行分割。垂直非平均/非均匀对称分割类型产生相对于块83的中心线对称的左半部和右半部。垂直非平均/非均匀对称分割类型产生相对于83的中心线对称的左半部和右半部。垂直非平均/非均匀对称分割类型产生尺寸相等的两个块(例如,宽度为w/4的左侧块和右侧块)和一个尺寸不同的中心块(例如,宽度为w/2的中心块)。在一个示例中,根据垂直非平均/非均匀对称分割类型,中心块的面积等于左侧块和右侧块的组合面积。在一些示例中,宽度为2的幂(例如,2、4、8、16、32等)的块可以优选采用垂直非平均/非均匀对称分割类型。
[0288] 采用垂直非平均/非均匀非对称分割类型对块85进行分割。垂直非平均/非均匀非对称分割类型不会产生相对于块85的中心线对称的左半部和右半部(即,左半部和右半部不对称)。在图9的示例中,垂直非平均/非均匀非对称分割类型产生宽度为w/4的左侧块、宽度为3w/8的中心块和宽度为3w/8的右侧块。当然,可以使用其它非对称布置。
[0289] 除了QTBT的参数之外,针对MTT分割方案定义了以下参数。
[0290] ‑MaxBTSize:允许的最大二叉树根节点尺寸
[0291] ‑MinBtSize:允许的最小二叉树根节点尺寸
[0292] ‑MaxMttDepth:最大多类型树深度
[0293] ‑MaxMttDepth offset:最大多类型树深度偏差
[0294] ‑MaxTtSize:允许的最大三叉树根节点尺寸
[0295] ‑MinTtSize:允许的最小三叉树根节点尺寸
[0296] ‑MinCbSize:允许的最小译码块尺寸
[0297] 根据本申请的实施例,本发明的实施例可以由视频编码器或视频解码器实现,如图2的视频编码器20或图3的视频解码器30。视频编码器20或视频解码器30的一个或多个结构元件(包括分割单元)可用于执行本发明实施例的技术。
[0298] 在J.‑R.Ohm、G.J.Sulivan的[JVET‑K1001‑v4],JVET AHG,http://phenix.int‑evry.fr/jvet/报告中,在SPS中指示MinQtSizeY的语法元素(log2_min_qt_size_intra_slices_minus2和log2_min_qt_size_inter_slices_minus2)和MaxMttDepth的语法元素(max_mtt_hierarchy_depth_inter_slices和max_mtt_hierarchy_depth_intra_slices)。
[0299] 在条带头中指示亮度CTB尺寸和MaxBtSizeY之间的差值的语法元素(log2_diff_ctu_max_bt_size)。
[0300] CtbSizeY和对应的语法元素log2_ctu_size_minus2表示以亮度像素点数为单位的最大译码块尺寸。
[0301] 定义MinQtSizeY为对译码树单元(coding tree unit,CTU)进行四叉树划分得到的叶块的最小亮度尺寸。尺寸可以表示块的宽度或高度(以像素点数表示)。就正方形块而言,尺寸还可以表示宽度和高度。例如,如果MinQtSizeY等于16,则尺寸小于或等于16的译码块不能使用四叉树划分方法分割成子块。在背景技术MinQtSizeY中,使用log2_min_qt_size_intra_slices_minus2和log2_min_qt_size_inter_slices_minus2表示最小四叉树块尺寸。请注意,尺寸的指示可以是间接指示,即log2_min_qt_size_intra_slices_minus2可以是最小四叉树块的亮度像素点的数量的二进制对数(底为2),定义MaxMttDepth为对四叉树叶或CTU进行多类型树划分得到的译码单元的最大层次深度。译码树单元或译码树块(coding tree unit,CTB)表示用于对图像帧进行分割的最大块尺寸。MaxMttDepth表示可以用于获得子块的连续二叉树或三叉树划分的次数上限。例如,假设CTU尺寸为128×128(宽128,高128),则MaxMttDepth=1。在这种情况下,可以首先使用二叉树划分将父块(尺寸为128×128)划分为两个128×64子块。但是,由于已达到允许的最大二叉树划分次数,子块不能应用任何连续的二叉树划分(得到128×32或64×64子块)。需要说明的是,MaxMttDepth可以控制最大二叉树划分深度或最大三叉树划分深度,也可以同时控制两者。
如果同时控制二叉树和三叉树划分深度,则一次二叉树划分接一次三叉树划分可以算作两次层次划分。在背景技术MaxMttDepth中,使用max_mtt_hierarchy_depth_inter_slices和max_mtt_hierarchy_depth_intra_slices表示多类型树产生的译码单元的最大层次深度。
[0302] 应注意,语法元素的名称与背景技术中出现的一样。但是,应该很清楚,名称是可以更改的,因此,重要的是语法元素的逻辑含义。
[0303] 定义MaxBtSizeY为可以使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度),该尺寸使用像素点数表示。例如,如果MaxBtSizeY等于64,则不能使用二叉树划分对尺寸(宽度或高度)大于64的译码块进行划分。即,尺寸为128×128的块不能使用二叉树划分进行划分,而尺寸为64×64的块可以使用二叉树划分进行划分。
[0304] 定义MaxBtSizeY为可以使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度),该尺寸使用像素点数表示。例如,如果MinBtSizeY等于16,则不能使用二叉树划分对尺寸(宽度或高度)小于或等于16的译码块进行划分。即,尺寸为8×8的块不能使用二叉树划分进行划分,而尺寸为32×32的块可以使用二叉树划分进行划分。
[0305] 定义MinCbSizeY为最小译码块尺寸。例如,MinCbSizeY可以等于8,即尺寸为8×8的父块不能使用任何划分方法进行划分,因为所得到的子块的宽度或高度必然会小于MinCbSizeY。根据第二示例,如果MinCbSizeY等于8,则不能使用四叉树划分等对尺寸为8×16的父块进行分割,因为所得到的四个子块的尺寸将为4×8(宽度等于4,高度等于8),所得到的子块的宽度将小于MinCbSizeY。在第二示例中,假设MinCbSizeY对块的宽度和高度都适用,但可以使用两个不同的语法元素来分别限制宽度和高度。
[0306] 定义MinTbSizeY为可以使用三叉树划分进行划分的译码块的最小变换块尺寸,该尺寸使用像素点数表示。例如,如果MinTbSizeY等于16,则不能使用三叉树划分对尺寸(宽度或高度)小于或等于16的译码块进行划分。即,尺寸为8×8的块不能使用三叉树划分进行划分,而尺寸为32×32的块可以使用三叉树划分进行划分。
[0307] 序列参数集RBSP(原始字节序列载荷)语法([JVET‑K1001‑v4]的第7.3.2.1节)[0308] [Ed.(BB):初步基本SPS,有待进一步研究和进一步规范开发]
[0309]
[0310]
[0311] 在这些语法表中,粗体是包含在码流中的语法元素。未以粗体显示的元素是其它语法单元的条件或占位符。
[0312] 条带头语法([JVET‑K1001‑v4]的第7.3.3节)
[0313] [Ed.(BB):初步基本条带头,有待进一步研究和进一步规范开发]
[0314]
[0315]
[0316] 标准中还提供了语法元素的语义,即如何解释码流中包括的语法元素。下面,提供上述元素的语义。
[0317] 序列参数集RBSP语义([JVET‑K1001‑v4]的第7.4.3.1节)
[0318] log2_ctu_size_minus2+2表示每个CTU的亮度译码树块尺寸。
[0319] 变量CtbLog2SizeY、CtbSizeY、MinCbLog2SizeY、MinCbSizeY、MinTbLog2SizeY、MaxTbLog2SizeY、PicWidthInCtbsY、PicHeightInCtbsY、PicSizeInCtbsY、PicWidthInMinCbsY、PicHeightInMinCbsY、PicSizeInMinCbsY、PicSizeInSamplesY、PicWidthInSamplesC和PicHeightInSamplesC的导出方式如下:
[0320] CtbLog2SizeY=log2_ctu_size_minus2+2   (7‑5)
[0321] CtbSizeY=1<
[0322] MinCbLog2SizeY=2   (7‑7)
[0323] MinCbSizeY=1<
[0324] MinTbSizeY=4   (7‑9)
[0325] MaxTbSizeY=64   (7‑10)
[0326] PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY)   (7‑11)[0327] PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY)   (7‑12)[0328] PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY   (7‑13)
[0329] PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY   (7‑14)[0330] PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY   (7‑15)[0331] PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY   (7‑16)[0332] PicSizeInSamplesY=pic_width_in_luma_samples*pic_height_in_luma_samples   (7‑17)
[0333] PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC   (7‑18)[0334] PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC   (7‑19)[0335] ……
[0336] log2_min_qt_size_intra_slices_minus2+2表示在slice_type=2(I)的条带中,对CTU进行四叉树划分所产生的叶块的最小亮度尺寸。log2_min_qt_size_intra_slices_minus2的取值范围应为0到CtbLog2SizeY‑2(包括端值)。
[0337] MinQtLog2SizeIntraY=log2_min_qt_size_intra_slices_minus2+2  (7‑22)[0338] [Ed.(BB):四叉树的叶子既可以是译码单元,也可以是嵌套的多类型树的根][0339] log2_min_qt_size_inter_slices_minus2+2表示在slice_type=0(B)或1(P)的条带中,对CTU进行四叉树划分所产生的叶块的最小亮度尺寸。log2_min_qt_size_inter_slices_minus2的取值范围应为0到CtbLog2SizeY‑2(包括端值)。
[0340] MinQtLog2SizeInterY=log2_min_qt_size_inter_slices_minus2+2  (7‑23)[0341] max_mtt_hierarchy_depth_inter_slices表示在slice_type=0(B)或1(P)的条带中,对四叉树叶进行多类型树划分所产生的译码单元的最大层次深度。max_mtt_hierarchy_depth_inter_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。
[0342] max_mtt_hierarchy_depth_intra_slices表示在slice_type=2(I)的条带中,对四叉树叶进行多类型树划分所产生的译码单元的最大层次深度。max_mtt_hierarchy_depth_intra_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。
[0343] ……
[0344] 条带头语义([JVET‑K1001‑v4]的第7.4.4节)
[0345] ……
[0346] log2_diff_ctu_max_bt_size表示亮度CTB尺寸与可以使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的差值。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。
[0347] 当不存在log2_diff_ctu_max_bt_size时,推断log2_diff_ctu_max_bt_size的值等于2。
[0348] 变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth的导出方式如下:
[0349] MinQtLog2SizeY=(slice_type==I)?MinQtLog2SizeIntraY:MinQtLog2SizeInterY   (7‑25)
[0350] MaxBtLog2SizeY=CtbLog2SizeY‑log2_diff_ctu_max_bt_size   (7‑26)[0351] MinBtLog2SizeY=MinCbLog2SizeY   (7‑27)
[0352] MaxTtLog2SizeY=(slice_type==I)?5:6   (7‑28)
[0353] MinTtLog2SizeY=MinCbLog2SizeY   (7‑29)
[0354] MinQtSizeY=1<
[0355] MaxBtSizeY=1<
[0356] MinBtSizeY=1<
[0357] MaxTtSizeY=1<
[0358] MinTtSizeY=1<
[0359] MaxMttDepth=(slice_type==I)?max_mtt_hierarchy_depth_intra_slices:max_mtt_hierarchy_depth_inter_slice   (7‑35)
[0360] [Ed.(BB):目前最大的TT尺寸是固定的(I条带的32×32亮度像素点和对应的色度像素点,P/B条带的64×64亮度像素点和对应的色度像素点),以及I条带的最大BT尺寸是固定的(CtbLog2SizeY‑2,例如,32×32亮度像素点和对应128×128亮度像素点的CTU尺寸的色度像素点)]
[0361] 本发明实施例1中:
[0362] 实施例1涉及在序列参数集(sequence parameter set,SPS)中,通过条带类型分别指示与分割约束相关的高级语法元素(例如MinQtSizeY、MaxMttDepht、MaxBtSizeY),和/或指示分割约束覆写启用(或禁用)标志。
[0363] 在条带头中,指示分割约束覆写标志是指:
[0364] ·如果标志为真,
[0365] ο覆写条带头中与分割约束相关的高级语法元素,这里覆写指重新指示条带头中的元素。
[0366] ·否则,
[0367] ο根据条带类型,使用SPS中指示的值推断与分割约束相关的高级语法元素。
[0368] 换句话说,在条带头中指示分割约束覆写标志,表示是否在条带头或SPS等参数集中指示一个或多个分割约束参数。需要注意的是,参数集不一定必须是SPS。参数集可以是PPS,或任何其它类型的参数集,例如,与超过一个条带相关,例如,与视频的一个或多个图像相关。
[0369] 或者,
[0370] 在SPS中,根据特征或索引分别成对地指示分割约束相关的高级语法元素(例如,MinQtSizeY、MaxMttDepht、MaxBtSizeY),并指示分割约束覆写启用(或禁用)标志。
[0371] 在条带头中,指示分割约束覆写标志,且:
[0372] 如果标志为真,
[0373] 覆写条带头中与分割约束相关的高级语法元素,这里覆写指重新指示条带头中的元素。
[0374] 否则,
[0375] 根据用于分别指示的特征或索引,使用SPS中指示的值推断与分割约束相关的高级语法元素。
[0376] 关于指示和覆写的位置,可选方案是,例如:
[0377] 可以在参数集中指示与分割约束相关的高级语法元素,并且在条带头中执行覆写操作。
[0378] 可以在参数集中指示与分割约束相关的高级语法元素,并且可以在分块头中执行覆写操作。
[0379] 可以在第一参数集中指示与分割约束相关的高级语法元素,并且可以在第二参数集中执行覆写操作。
[0380] 可以在条带头中指示与分割约束相关的高级语法元素,并且在分块头中执行覆写操作。
[0381] 通常,当在第一参数集中指示与分割约束相关的高级语法元素,且在第二参数集合中执行覆写操作时,由于第一参数集涉及比第二参数集更大的图像/视频区域,因此可以实现高效译码。
[0382] 技术优势(如SPS中指示、条带头中覆写):高级分割约束用于控制分割复杂度和分割的译码效率之间达到一个平衡。本发明确保了灵活控制单个条带的平衡。
[0383] 编码器和解码都执行相同的(对应的)操作。
[0384] 在背景技术的基础上,对应的语法和语义修改如下:
[0385] 修改后的序列参数集RBSP语义([JVET‑K1001‑v4]的第7.3.2.1节)
[0386] [Ed.(BB):初步基本SPS,有待进一步研究和进一步规范开发]
[0387]
[0388] 修改后的条带头语法([JVET‑K1001‑v4]的第7.3.3节)
[0389] [Ed.(BB):初步基本条带头,有待进一步研究和进一步规范开发]
[0390]
[0391]
[0392] ……
[0393] 修改后的序列参数集RBSP语义([JVET‑K1001‑v4]的第7.4.3.1节)
[0394] ……
[0395] partition_constraint_override_enabled_flag=1表示参考SPS的条带的条带头中存在partition_constraint_override_flag。partition_constraint_override_enabled_flag=0表示参考SPS的条带的条带头中不存在partition_constraint_override_flag。
[0396] sps_log2_min_qt_size_intra_slices_minus2+2表示对slice_type=2(I)且参考SPS的条带中的CTU进行四叉树划分得到的叶块的默认最小亮度尺寸,除非对CTU进行四叉树划分得到的叶块的默认最小亮度尺寸被参考SPS的条带的条带头中存在的对CTU进行四叉树划分得到的叶块的最小亮度尺寸覆写。log2_min_qt_size_intra_slices_minus2的取值范围应为0到CtbLog2SizeY‑2(包括端值)。
[0397]
[0398] sps_log2_min_qt_size_inter_slices_minus2+2表示对slice_type=0(B)或1(P)且参考SPS的条带中的CTU进行四叉树划分得到的叶块的默认最小亮度尺寸,除非对CTU进行四叉树划分得到的叶块的默认最小亮度尺寸被参考SPS的条带的条带头中存在的对CTU进行四叉树划分得到的叶块的最小亮度尺寸覆写。log2_min_qt_size_inter_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。
[0399]
[0400] sps_max_mtt_hierarchy_depth_inter_slices表示对slice_type=0(B)或1(P)且参考SPS的条带中四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度,除非对四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度被参考SPS的条带的条带头中存在的对四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度覆写。max_mtt_hierarchy_depth_inter_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。
[0401] sps_max_mtt_hierarchy_depth_intra_slices表示对slice_type=2(I)且参考SPS的条带的四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度,除非对四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度被参考SPS的条带的条带头中存在的对四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度覆写。max_mtt_hierarchy_depth_intra_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。
[0402] sps_log2_diff_ctu_max_bt_size_intra_slices表示亮度CTB尺寸和slice_type=2(I)且参考SPS的条带中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值,除非亮度CTB尺寸和可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度和高度)覆写。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。
[0403] sps_log2_diff_ctu_max_bt_size_inter_slices表示亮度CTB尺寸与slice_type=0(B)或1(P)且参考SPS的条带中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值,除非亮度CTB尺寸和可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度和亮度)之间的差值覆写。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。
[0404] ……
[0405] 修改后的条带头语义([JVET‑K1001‑v4]的第7.4.4节)
[0406] ……
[0407] partition_constraint_override_flag=1表示条带头中存在分割约束参数。partition_constraint_override_flag=0表示条带头中不存在分割约束参数。如果不存在,则推断partition_constraints_override_flag的值等于0。
[0408] log2_min_qt_size_minus2+2表示对当前条带中CTU进行四叉树划分得到的叶块(leaf block)的最小亮度尺寸。log2_min_qt_size_inter_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。当不存在时,如果slice_type=2(I),则推断log2_min_qt_size_minus2的值等于sps_log2_min_qt_size_intra_slices_minus2,如果slice_type等于0(B)或1(P),则推断log2_min_qt_size_minus2的值等于sps_log2_min_qt_size_inter_slices_minus2。
[0409] max_mtt_hierarchy_depth表示对当前条带中四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度。max_mtt_hierarchy_depth_intra_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。当不存在时,如果slice_type=2(I),则推断max_mtt_hierarchy_depth的值等于sps_max_mtt_hierarchy_depth_intra_slices,如果slice_type=0(B)或1(P),则推断max_mtt_hierarchy_depth的值等于sps_max_mtt_hierarchy_depth_inter_slices。
[0410] log2_diff_ctu_max_bt_size表示亮度CTB尺寸与当前条带中可以使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的差值。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。当不存在时,如果slice_type=2(I),则推断log2_diff_ctu_max_bt_size的值等于sps_log2_diff_ctu_max_bt_size_intra_slices,如果slice_type=0(B)或1(P),则推断log2_diff_ctu_max_bt_size的值等于sps_log2_diff_ctu_max_bt_size_inter_slices。
[0411] 变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth的导出方式如下:
[0412]
[0413] MinQtLog2SizeY=log2_min_qt_size_minus2+2   (7‑25)
[0414] MaxBtLog2SizeY=CtbLog2SizeY‑log2_diff_ctu_max_bt_size   (7‑26)[0415] MinBtLog2SizeY=MinCbLog2SizeY   (7‑27)
[0416] MaxTtLog2SizeY=(slice_type==I)?5:6   (7‑28)
[0417] MinTtLog2SizeY=MinCbLog2SizeY   (7‑29)
[0418] MinQtSizeY=1<
[0419] MaxBtSizeY=1<
[0420] MinBtSizeY=1<
[0421] MaxTtSizeY=1<
[0422] MinTtSizeY=1<
[0423]
[0424] MaxMttDepth=1<
[0425] 在本发明实施例1的备选实现方式中,如下所述:
[0426] 序列参数集(sequence parameter set,SPS)包含适用于整个经译码视频序列的参数,且不在经译码视频序列(coded video sequence,CVS)中的图像间变化的参数。同一个CVS中的所有图像使用同一个SPS。
[0427] PPS包含可以根据同一经译码视频序列中的不同图像而变化的参数。但是,多个图像可以参考同一PPS,甚至是具有不同条带译码类型(I、P、B)的图像。
[0428] 如本发明实施例1中所述,高级分割约束用于控制分割复杂度和分割的译码效率之间达到一个平衡。为了实现灵活控制单个图像/条带中复杂性和译码效率的优点,不使用实施例1中的方法(在SPS中指示分割约束语法元素,并根据约束覆写标志覆写条带头中的分割约束语法元素,该语法元素在条带头中指示),在PPS中指示分割约束语法元素(MinQtSizeY、MaxMttDepth、MaxBtSizeY、MaxTtSizeY等),从而在图像层面上调整分割复杂度和译码效率之间达到一个平衡。如果每个图像使用单独的PPS,则对单个图像进行调整;如果多个图像参考同一个PPS,则对这些图像进行相同的调整。
[0429] 可以在一个组中指示PPS级分割约束语法元素指示,例如,在PPS中,指示一个MinQtSizeY指示符、一个MaxMttDepth指示符、一个MaxBtSizeY指示符、一个MaxTtSizeY指示符,在这种情况下,根据不同的图像单独调整分割复杂度和分割的译码效率之间达到一个平衡。
[0430] 还可以根据条带类型在两个组中指示PPS级分割约束语法元素指示,例如,在PPS中,指示一个MinQtSizeY帧内条带指示符、一个MinQtSizeY帧间条带指示符、一个MaxMttDepth帧内条带指示符、一个MaxMttDepth帧间指示符、一个MaxBtSizeY帧内条带指示符、一个MaxBtSizeY帧间条带指示符、一个MaxTtSizeY帧内条带指示符和一个MaxTtSizeY帧间条带指示符,在这种情况下,根据条带类型(帧内或帧间)单独调整分割复杂度和分割的译码效率之间达到一个平衡。
[0431] 可以根据条带标识(例如,索引)在多个组中指示PPS级分割约束语法元素指示,例如,如果一个图像划分成三个条带,则在PPS中,指示三个基于MinQtSizeY的条带标识的不同指示符、三个基于MaxMttDepth的条带标识的不同指示符、三个基于MaxBtSizeY的条带标识的不同指示符和三个基于MaxTtSizeY的条带标识的不同指示符,在这种情况下,根据条带单独调整分割复杂度和分割的译码效率之间达到一个平衡。
[0432] 与实施例1的方法相比,该备选实现方式的优点是简化了指示结构。在该方法中,为了灵活地调整分割复杂度和分割的译码增益之间达到一个平衡,不需要覆写条带头中的分割约束语法元素。
[0433] 另一方面,与实施例1的方法相比,这种备选实现方式在某些场景下是有限的。此方法仅在PPS中指示分割约束。即,如果多个图像参考同一PPS,则不可能根据图像单独调整分割复杂度和分割的译码增益之间达到一个平衡。此外,如果仅对关键图像进行调整,则该方法会在PPS中指示冗余信息。
[0434] 所述多个分割约束语法元素是参数集(例如PPS、VPS、SPS)级别语法元素或头(例如图像头、条带头或分块头)语法元素。
[0435] 本发明实施例2中:
[0436] 各实施例表示
[0437] ·可以在SPS中指示分割高级语法约束元素。
[0438] ·可以在条带头中覆写分割高级语法约束元素。
[0439] ·分割高级语法约束元素可以使用默认值。
[0440] ·可以在SPS中禁用BT和TT。
[0441] ·可以在条带头中禁用BT和TT。
[0442] ·可以在SPS中指示BT和TT启用(禁用)标志,并在条带头中覆写BT和TT启用(禁用)标志。
[0443] 技术优势(如SPS中指示、条带头中覆写):高级分割约束用于控制分割复杂度和分割的译码效率之间达到一个平衡。本发明确保了灵活控制单个条带的平衡。对于默认值和Bt Tt启用(禁用功能),可以更灵活地控制各元素。
[0444] 编码器和解码都执行相同的(对应的)操作。
[0445] 在背景技术的基础上,对应的修改如下:
[0446] 修改后的序列参数集RBSP语义([JVET‑K1001‑v4]的第7.3.2.1节)
[0447] [Ed.(BB):初步基本SPS,有待进一步研究和进一步规范开发]
[0448]
[0449]
[0450] 修改后的条带头语法([JVET‑K1001‑v4]的第7.3.3节)
[0451] [Ed.(BB):初步基本条带头,有待进一步研究和进一步规范开发]
[0452]
[0453] ……
[0454] 修改后的序列参数集RBSP语义([JVET‑K1001‑v4]的第7.4.3.1节)
[0455] ……
[0456] partition_constraint_control_present_flag=1表示SPS中存在分割约束控制语法元素。partition_constraint_control_present_flag=0表示SPS中不存在分割约束控制语法元素。
[0457] sps_btt_enabled_flag=1表示多类型树分割操作适用于参考SPS的并且不存在slice_btt_enable_flag的条带。sps_btt_enabled_flag=0表示多类型树分割操作不适用于参考SPS的并且不存在slice_btt_enable_flag的条带。如果不存在,则推断sps_btt_enabled_flag的值等于1。
[0458] partition_constraint_override_enabled_flag=1表示参考SPS的条带的条带头中存在partition_constraint_override_flag。partition_constraint_override_enabled_flag=0表示参考SPS的条带的条带头中不存在partition_constraint_override_flag。如果不存在,则推断partition_constraint_override_enabled_flag的值等于0。
[0459] sps_log2_min_qt_size_intra_slices_minus2+2表示SPS中的对slice_type=2(I)且参考SPS的条带中的CTU进行四叉树划分得到的叶块(leaf block)的初始最小亮度尺寸值,除非对CTU进行四叉树划分得到的叶块的初始最小亮度尺寸值被参考SPS的条带的条带头中存在的对CTU进行四叉树划分得到的叶块的最小亮度尺寸覆写。log2_min_qt_size_intra_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。如果不存在,则推断sps_log2_min_qt_size_intra_slices_minus2的值等于0。
[0460]
[0461] sps_log2_min_qt_size_inter_slices_minus2+2表示SPS中的对slice_type=0(B)或1(P)且参考SPS的条带中的CTU进行四叉树划分得到的叶块的初始最小亮度尺寸值,除非对CTU进行四叉树划分得到的叶块的初始最小亮度尺寸值被参考SPS的条带的条带头中存在的对CTU进行四叉树划分得到的叶块的最小亮度尺寸覆写。log2_min_qt_size_inter_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。如果不存在,则推断sps_log2_min_qt_size_inter_slices_minus2的值等于0。
[0462]
[0463] sps_max_mtt_hierarchy_depth_inter_slices表示SPS中的对slice_type=0(B)或1(P)且参考SPS的条带中四叉树叶节点进行多类型树划分得到的译码单元的初始最大层次深度值,除非对四叉树叶节点进行多类型树划分得到的译码单元的初始最大层次深度值被参考SPS的条带的条带头中存在的对四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度覆写。max_mtt_hierarchy_depth_inter_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。在不存在的情况下,
[0464] 如果sps_btt_enabled_flag等于1,
[0465] 则推断sps_max_mtt_hierarchy_depth_inter_slices的值等于3。
[0466] 否则,
[0467] 推断sps_max_mtt_hierarchy_depth_inter_slices的值等于0。
[0468] sps_max_mtt_hierarchy_depth_intra_slices表示SPS中的对slice_type=2(I)且参考SPS的条带中四叉树叶节点进行多类型树划分得到的译码单元的初始最大层次深度值,除非对四叉树叶节点进行多类型树划分得到的译码单元的初始最大层次深度值被参考SPS的条带的条带头中存在的对四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度覆写。max_mtt_hierarchy_depth_intra_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。在不存在的情况下,
[0469] 如果sps_btt_enabled_flag等于1,
[0470] 则推断sps_max_mtt_hierarchy_depth_intra_slices的值等于3。
[0471] 否则,
[0472] 推断sps_max_mtt_hierarchy_depth_intra_slices的值等于0。
[0473] sps_log2_diff_ctu_max_bt_size_intra_slices表示亮度CTB尺寸和SPS中的并且slice_type=2(I)且参考SPS的条带中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的初始差值,除非亮度CTB尺寸和SPS中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的初始差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度和高度)覆写。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。在不存在的情况下,
[0474] 如果sps_btt_enabled_flag等于1,
[0475] 推断sps_log2_diff_ctu_max_bt_size_intra_slices的值等于2。
[0476] 否则,
[0477] 推断sps_log2_diff_ctu_max_bt_size_intra_slices的值等于CtbLog2SizeY‑MinCbLog2SizeY。
[0478] sps_log2_diff_ctu_max_bt_size_inter_slices表示亮度CTB尺寸和SPS中的并且slice_type=0(B)或1(P)且参考SPS的条带中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的初始差值,除非亮度CTB尺寸和SPS中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的初始差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度和高度)覆写。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。在不存在的情况下,
[0479] 如果sps_btt_enabled_flag等于1,
[0480] 推断sps_log2_diff_ctu_max_bt_size_inter_slices的值等于0。
[0481] 否则,
[0482] 推断sps_log2_diff_ctu_max_bt_size_inter_slices的值等于CtbLog2SizeY‑MinCbLog2SizeY。
[0483] ……
[0484] 修改后的条带头语义([JVET‑K1001‑v4]的第7.4.4节)
[0485] ……
[0486] partition_constraint_override_flag=1表示条带头中存在分割约束参数。partition_constraint_override_flag=0表示条带头中不存在分割约束参数。如果不存在,则推断partition_constraints_override_flag的值等于0。
[0487] slice_btt_enabled_flag=1表示多类型树分割操作适用于当前条带。slice_btt_enabled_flag=0表示多类型树分割操作不适用于当前条带。当不存在slice_btt_enabled_flag时,推断等于sps_btt_enabled_flag。
[0488] log2_min_qt_size_minus2+2表示当前条带中对CTU进行四叉树划分得到的叶块(leafblock)的最小亮度尺寸。log2_min_qt_size_inter_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。当不存在时,如果slice_type=2(I),则推断log2_min_qt_size_minus2的值等于sps_log2_min_qt_size_intra_slices_minus2,如果slice_type=0(B)或1(P),则推断log2_min_qt_size_minus2的值等于sps_log2_min_qt_size_inter_slices_minus2。
[0489] max_mtt_hierarchy_depth表示对当前条带中四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度。max_mtt_hierarchy_depth_intra_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。当不存在时,如果slice_type=2(I),则推断max_mtt_hierarchy_depth的值等于sps_max_mtt_hierarchy_depth_intra_slices,如果slice_type=0(B)或1(P),则推断max_mtt_hierarchy_depth的值等于sps_max_mtt_hierarchy_depth_inter_slices。
[0490] log2_diff_ctu_max_bt_size表示亮度CTB尺寸与当前条带中可以使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的差值。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。当不存在时,如果slice_type=2(I),则推断log2_diff_ctu_max_bt_size的值等于sps_log2_diff_ctu_max_bt_size_intra_slices,如果slice_type=0(B)或1(P),则推断log2_diff_ctu_max_bt_size的值等于sps_log2_diff_ctu_max_bt_size_inter_slices。
[0491] 变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth的导出方式如下:
[0492]
[0493] MinQtLog2SizeY=log2_min_qt_size_minus2+2   (7‑25)
[0494] MaxBtLog2SizeY=CtbLog2SizeY‑log2_diff_ctu_max_bt_size   (7‑26)[0495] MinBtLog2SizeY=MinCbLog2SizeY   (7‑27)
[0496] MaxTtLog2SizeY=(slice_type==I)?5:6   (7‑28)
[0497] MinTtLog2SizeY=MinCbLog2SizeY   (7‑29)
[0498] MinQtSizeY=1<
[0499] MaxBtSizeY=1<
[0500] MinBtSizeY=1<
[0501] MaxTtSizeY=1<
[0502] MinTtSizeY=1<
[0503]
[0504] MaxMttDepth=1<
[0505] 本发明实施例3中:
[0506] 如果在SPS(或其它参数集或条带头)中指示译码块(可使用三叉树划分进行划分)的MaxTTSizeY(最大亮度尺寸(宽度或高度)),则可以与上述其它分割参数相同的方式应用实施例1或实施例2。
[0507] 技术优势:本发明用于指示MaxTtSizeY语法元素的指示符,确保可以更灵活地控制这些元素。
[0508] 编码器和解码都执行相同的(对应的)操作。
[0509] 在实施例1或实施例2的基础上,语法发生变化。
[0510] 修改后的序列参数集RBSP语义([JVET‑K1001‑v4]的第7.3.2.1节)
[0511]
[0512]
[0513] 修改后的条带头语法([JVET‑K1001‑v4]的第7.3.3节)
[0514] [Ed.(BB):初步基本条带头,有待进一步研究和进一步规范开发]
[0515]
[0516] 本发明实施例4中:
[0517] 将实施例2中的btt_enabled_flag分离为bt_enabled_flag和tt_enabled_flag,分别启用或禁用bt和tt划分。
[0518] 技术优势:分别指示BT启用标志和TT启用标志,可以更灵活地控制分割约束语法元素。
[0519] 编码器和解码都执行相同的(对应的)操作。
[0520] 在实施例2的基础上,语法和语义发生变化:
[0521] 修改后的序列参数集RBSP语义([JVET‑K1001‑v4]的第7.3.2.1节)
[0522] [Ed.(BB):初步基本SPS,有待进一步研究和进一步规范开发]
[0523]
[0524]
[0525] 修改后的条带头语法([JVET‑K1001‑v4]的第7.3.3节)
[0526] [Ed.(BB):初步基本条带头,有待进一步研究和进一步规范开发]
[0527]
[0528]
[0529] ……
[0530] 序列参数集RBSP语义([JVET‑K1001‑v4]的第7.4.3.1节)
[0531] ……
[0532] partition_constraint_control_present_flag=1表示SPS中存在分割约束控制语法元素。partition_constraint_control_present_flag=0表示SPS中不存在分割约束控制语法元素。
[0533] sps_bt_enabled_flag=1表示二叉树分割操作适用于参考SPS并且不存在slice_bt_enable_flag的条带。sps_bt_enabled_flag=0表示二叉树分割操作不适用于参考SPS并且不存在slice_bt_enable_flag的条带。如果不存在,则推断sps_bt_enabled_flag的值等于1。
[0534] sps_tt_enabled_flag=1表示三叉树分割操作适用于参考SPS的并且不存在slice_tt_enable_flag的条带。sps_tt_enabled_flag=0表示三叉树分割操作不适用于参考SPS的并且不存在slice_tt_enable_flag的条带。如果不存在,则推断sps_tt_enabled_flag的值等于1。
[0535] partition_constraint_override_enabled_flag=1表示参考SPS的条带的条带头中存在partition_constraint_override_flag。partition_constraint_override_enabled_flag=0表示参考SPS的条带的条带头中不存在partition_constraint_override_flag。如果不存在,则推断partition_constraint_override_enabled_flag的值等于0。
[0536] sps_log2_min_qt_size_intra_slices_minus2+2表示对slice_type=2(I)且参考SPS的条带中的CTU进行四叉树划分得到的叶块的默认最小亮度尺寸,除非对CTU进行四叉树划分得到的叶块的默认最小亮度尺寸被参考SPS的条带的条带头中存在的对CTU进行四叉树划分得到的叶块的最小亮度尺寸覆写。log2_min_qt_size_intra_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。如果不存在,则推断sps_log2_min_qt_size_intra_slices_minus2的值等于0。
[0537]
[0538] sps_log2_min_qt_size_inter_slices_minus2+2表示对slice_type=0(B)或1(P)且参考SPS的条带中的CTU进行四叉树划分得到的叶块的默认最小亮度尺寸,除非对CTU进行四叉树划分得到的叶块的默认最小亮度尺寸被参考SPS的条带的条带头中存在的对CTU进行四叉树划分得到的叶块的最小亮度尺寸覆写。log2_min_qt_size_inter_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。如果不存在,则推断sps_log2_min_qt_size_inter_slices_minus2的值等于0。
[0539]
[0540] sps_max_mtt_hierarchy_depth_inter_slices表示对slice_type=0(B)或1(P)且参考SPS的条带中四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度,除非对四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度被参考SPS的条带的条带头中存在的对四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度覆写。max_mtt_hierarchy_depth_inter_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。在不存在情况下,
[0541] 如果sps_bt_enabled_flag等于1或sps_tt_enabled_flag等于1,
[0542] 推断sps_max_mtt_hierarchy_depth_inter_slices的值等于3。
[0543] 否则,
[0544] 推断sps_max_mtt_hierarchy_depth_inter_slices的值等于0。
[0545] sps_max_mtt_hierarchy_depth_intra_slices表示对slice_type=2(I)且参考SPS的条带的四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度,除非对四叉树叶节点进行多类型树划分得到的译码单元的默认最大层次深度被参考SPS的条带的条带头中存在的对四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度覆写。max_mtt_hierarchy_depth_intra_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。在不存在的情况下,
[0546] 如果sps_btt_enabled_flag等于1或sps_tt_enabled_flag等于1,
[0547] 推断sps_max_mtt_hierarchy_depth_intra_slices的值等于3。
[0548] 否则,
[0549] 推断sps_max_mtt_hierarchy_depth_intra_slices的值等于0。
[0550] sps_log2_diff_ctu_max_bt_size_intra_slices表示亮度CTB尺寸和slice_type=2(I)且参考SPS的条带中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值,除非亮度CTB尺寸和可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度和高度)覆写。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。在不存在的情况下,如果sps_bt_enabled_flag等于1,
[0551] 推断sps_log2_diff_ctu_max_bt_size_intra_slices的值等于2。
[0552] 否则,
[0553] 推断sps_log2_diff_ctu_max_bt_size_intra_slices的值等于CtbLog2SizeY‑MinCbLog2SizeY。
[0554] sps_log2_diff_ctu_max_bt_size_inter_slices表示亮度CTB尺寸与slice_type=0(B)或1(P)且参考SPS的条带中的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值,除非亮度CTB尺寸和可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度和亮度)之间的差值覆写。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。在不存在的情况下,
[0555] 如果sps_bt_enabled_flag等于1,
[0556] 推断sps_log2_diff_ctu_max_bt_size_inter_slices的值等于0。
[0557] 否则,
[0558] 推断sps_log2_diff_ctu_max_bt_size_inter_slices的值等于CtbLog2SizeY‑MinCbLog2SizeY。
[0559] sps_log2_diff_ctu_max_tt_size_intra_slices表示亮度CTB尺寸和slice_type=2(I)且参考SPS的条带中的可使用三叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值,除非亮度CTB尺寸和可使用三叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用三叉树划分进行划分的译码块的最大亮度尺寸(宽度和高度)覆写。sps_log2_diff_ctu_max_tt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。在不存在的情况下,
[0560] 如果sps_tt_enabled_flag等于1,
[0561] 推断sps_log2_diff_ctu_max_tt_size_intra_slices的值等于2。
[0562] 否则,
[0563] 推断sps_log2_diff_ctu_max_tt_size_intra_slices的值等于CtbLog2SizeY‑MinCbLog2SizeY。
[0564] sps_log2_diff_ctu_max_tt_size_inter_slices表示亮度CTB尺寸与slice_type=0(B)或1(P)且参考SPS的条带中的可使用三叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值,除非亮度CTB尺寸和可使用三叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的默认差值被亮度CTB尺寸和参考SPS的条带的条带头中存在的可使用三叉树划分进行划分的译码块的最大亮度尺寸(宽度和亮度)之间的差值覆写。log2_diff_ctu_max_tt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。在不存在的情况下,
[0565] 如果sps_tt_enabled_flag等于1,
[0566] 推断sps_log2_diff_ctu_max_tt_size_inter_slices的值等于1。
[0567] 否则,
[0568] 推断sps_log2_diff_ctu_max_tt_size_inter_slices的值等于CtbLog2SizeY‑MinCbLog2SizeY。
[0569] ……修改后的条带头语义([JVET‑K1001‑v4]的第7.4.4节)
[0570] ……
[0571] partition_constraint_override_flag=1表示条带头中存在分割约束参数。partition_constraint_override_flag=0表示条带头中不存在分割约束参数。如果不存在,则推断partition_constraints_override_flag的值等于0。
[0572] slice_btt_enabled_flag=1表示多类型树分割操作不适用于当前条带。slice_btt_enabled_flag=0表示多类型树分割操作适用于当前条带。当不存在slice_btt_enabled_flag时,推断等于sps_btt_enabled_flag。
[0573] log2_min_qt_size_minus2+2表示对当前条带中CTU进行四叉树划分得到的叶块的最小亮度尺寸。log2_min_qt_size_inter_slices_minus2的取值范围应为0到CtbLog2SizeY–2(包括端值)。当不存在时,如果slice_type=2(I),则推断log2_min_qt_size_minus2的值等于sps_log2_min_qt_size_intra_slices_minus2,如果slice_type=0(B)或1(P),则推断log2_min_qt_size_minus2的值等于sps_log2_min_qt_size_inter_slices_minus2。
[0574] max_mtt_hierarchy_depth表示对当前条带中四叉树叶节点进行多类型树划分得到的译码单元的最大层次深度。max_mtt_hierarchy_depth_intra_slices的取值范围应为0到CtbLog2SizeY–MinTbLog2SizeY(包括端值)。当不存在时,如果slice_type=2(I),则推断max_mtt_hierarchy_depth的值等于sps_max_mtt_hierarchy_depth_intra_slices,如果slice_type=0(B)或1(P),则推断max_mtt_hierarchy_depth的值等于sps_max_mtt_hierarchy_depth_inter_slices。
[0575] log2_diff_ctu_max_bt_size表示亮度CTB尺寸与当前条带中可以使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的差值。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。当不存在时,如果slice_type=2(I),则推断log2_diff_ctu_max_bt_size的值等于sps_log2_diff_ctu_max_bt_size_intra_slices,如果slice_type=0(B)或1(P),则推断log2_diff_ctu_max_bt_size的值等于sps_log2_diff_ctu_max_bt_size_inter_slices。
[0576] log2_diff_ctu_max_tt_size表示亮度CTB尺寸与当前条带中可以使用二叉树划分进行划分的译码块的最大亮度尺寸(宽度或高度)之间的差值。log2_diff_ctu_max_tt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。当不存在时,如果slice_type=2(I),则推断log2_diff_ctu_max_tt_size的值等于sps_log2_diff_ctu_max_tt_size_intra_slices,如果slice_type=0(B)或1(P),则推断log2_diff_ctu_max_tt_size的值等于sps_log2_diff_ctu_max_tt_size_inter_slices。
[0577] 变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth的导出方式如下:
[0578]
[0579] MinQtLog2SizeY=log2_min_qt_size_minus2+2   (7‑25)
[0580] MaxBtLog2SizeY=CtbLog2SizeY‑log2_diff_ctu_max_bt_size   (7‑26)[0581] MinBtLog2SizeY=MinCbLog2SizeY   (7‑27)
[0582] MaxTtLog2SizeY=CtbLog2SizeY‑log2_diff_ctu_max_tt_size   (7‑28)[0583]
[0584] MinTtLog2SizeY=MinCbLog2SizeY   (7‑29)
[0585] MinQtSizeY=1<
[0586] MaxBtSizeY=1<
[0587] MinBtSizeY=1<
[0588] MaxTtSizeY=1<
[0589] MinTtSizeY=1<
[0590]
[0591] MaxMttDepth=1<
[0592] 图10示出了一种由解码设备实现的对视频码流进行解码的对应方法,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据。所述解码方法包括以下步骤:从所述视频码流中获取S110覆写标志(partition_constraint_override_flag);当所述覆盖标志的值为覆盖值(例如,值为1)时,从所述图像区域头中获取S120所述图像区域的第一分割约束信息;根据所述第一分割约束信息,对所述图像区域的块进行分割S130。如果不设置该标志,可以从与所述图像区域头不同的来源获取所述分割约束信息。图像区域可以是条带或分块。
[0593] 图11为结合图10流程图的流程图。此外,所述流程图所示的方法包括以下步骤:从所述视频码流中获取S210覆写启用标志(partition_constraint_override_enabled_flag)其中,当所述覆写启用标志的值为启用值(例如,值为1)时,从视频码流中获取S110覆写标志。此外,当所述覆写标志的值不是所述覆写值(例如,所述覆写标志的值为0)时,可以根据所述参数集中的所述视频码流的第二分割约束信息,对所述图像区域的块进行分割S230。此外,当所述覆写启用标志的值为禁用值(例如,所述覆写启用标志的值为0)时,可以根据所述参数集中的所述视频码流的第二分割约束信息,对所述图像区域的块进行分割S230。
[0594] 本发明实施例的具体特征可以参见上述相关解码方法实施例。此处不再赘述。
[0595] 图12示出了用于对视频码流进行解码的解码器1200。视频码流包括表示图像区域和所述图像区域的图像区域头的数据。所述解码器包括:覆写确定单元1210,用于从所述视频码流中获取覆写标志;分割约束确定单元1220,用于当所述覆写标志的值为覆写值时,从所述图像区域头中获取所述图像区域的第一分割约束信息;块分割单元1230,用于根据所述第一分割约束信息对所述图像区域的块进行分割。
[0596] 本发明实施例中的译码器1200中的各个单元的具体功能可以参见本发明解码方法实施例的相关描述。此处不再赘述。
[0597] 解码器1200中的各个单元可以通过软件或电路实现。
[0598] 解码器1200可以是解码器30、视频译码设备400或装置500,或解码器30、视频译码设备400或装置500的一部分。
[0599] 编码器1300可以是编码器20、视频译码设备400或装置500,或编码器20、视频译码设备400或装置500的一部分。
[0600] 图13示出了一种对视频码流进行编码的编码器1300,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据。所述编码器包括:分割确定单元1310,用于确定是否根据所述图像区域头中的第一分割约束信息对所述图像区域的块进行分割;块分割单元1320,用于在确定根据第一分割约束信息对所述图像区域的块进行分割时,根据所述第一分割约束信息对所述块进行分割;覆写标志设置单元1330,用于将覆写标志的值设置为覆写值;码流生成器1340,用于将所述覆写标志插入所述视频码流中。
[0601] 本发明实施例中的编码器1300中的各个单元的具体功能可以参见本发明编码方法实施例的相关描述。此处不再赘述。
[0602] 编码器1300中的各个单元可以通过软件或电路实现。
[0603] 编码器1300可以是编码器20、视频译码设备400或装置500,或编码器20、视频译码设备400或装置500的一部分。
[0604] 图14A为一种由编码设备实现的对视频码流进行编码的方法的流程图,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据。所述编码方法包括以下步骤:确定S310是否根据所述图像区域头中的第一分割约束信息对所述图像区域的块进行分割;当确定是根据所述第一分割约束信息对所述块进行分割(在步骤S310中为“是”)时,根据所述第一分割约束信息对所述图像区域的块进行分割S320,并将覆盖标志的值设置S325为覆盖值;将所述覆盖标志的数据包括S330于所述视频码流中。
[0605] 在一些示例性实施例中,当确定不是根据所述第一分割约束信息对所述块进行分割(步骤S310中为“否”)时,根据第二分割约束信息对所述图像区域的块进行分割S360,并将覆写标志的值设置S365为覆写值。
[0606] 图14B示出了一种编码方法,包括以下步骤:确定S370是否启用根据第一分割约束信息对所述块进行分割。当确定启用(确定为)根据第一分割约束信息对所述块进行分割时,所述方法包括:将覆写启用标志的值设置S340为启用值;并将所述覆写启用标志的数据包括S350于视频码流中。此外,当确定启用(确定为)根据第一分割约束信息对所述块进行分割时,确定S310是否根据所述图像区域头中的第一分割约束信息对所述图像区域的块进行分割。
[0607] 在一些示例性实施例中,当确定不启用(即,禁用)根据第一分割约束信息对所述块进行分割时,所述方法包括将覆写启用标志的值设置S380为不启用(禁用)值。
[0608] 本发明实施例的具体特征可以参见上述相关解码方法实施例。此处不再赘述。
[0609] 下面解释上述实施例中所示的编码方法和解码方法以及使用这些方法的系统的应用。
[0610] 图14为用于实现内容分发业务的内容提供系统3100的框图。该内容提供系统3100包括捕获设备3102、终端设备3106和(可选)显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。所述通信链路可以包括上文所述的通信信道13。通信链路3104包括但不限于WiFi、以太网、有线、无线(3G/4G/5G)、USB或其任何类型组合等。
[0611] 捕获设备3102生成数据,并可使用上述实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),该服务器对数据进行编码,并将经编码数据发送到终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备或其任何组合等。例如,捕获设备3102可以包括上文所述的源设备12。当数据包括视频时,捕获设备3102中的视频编码器20实际上可执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中的音频编码器实际上可执行音频编码处理。在一些实际场景中,捕获设备3102通过将经编码视频数据和经编码音频数据复用在一起来分发经编码视频数据和经编码音频数据。在其它实际场景中,例如在视频会议系统中,不复用经编码音频数据和经编码视频数据。捕获设备3102将经编码音频数据和经编码视频数据分别分发到终端设备3106。
[0612] 内容提供系统3100中的终端设备310接收并再生成经编码数据。终端设备3106可以为具有数据接收和恢复能力的设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital video recorder,DVR)3112、TV 3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任何组合,或能够对上述经编码数据进行解码的此类设备。例如,终端设备3106可以包括上文所述的目标设备14。当编码数据包括视频时,终端设备中的视频解码器30优先执行视频解码。当编码数据包括音频时,终端设备中的音频解码器优先执行音频解码处理。
[0613] 对于带显示器的终端设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital video recorder,DVR)3112、TV 3114、个人数字助理(personal digital assistant,PDA)3122或车载设备3124,终端设备可以将经解码数据发送到其显示器。对于不带显示器的终端设备,如STB 3116、视频会议系统3118或视频监控系统3120,使外接显示器3126与终端设备连接,以接收并显示解码数据。
[0614] 本系统中的各个设备执行编码或解码时,可以使用上述实施例所示的图像编码设备或图像解码设备。
[0615] 图15为终端设备3106的示例结构图。在终端设备3106从捕获设备3102接收码流后,协议进行单元3202分析该码流的传输协议。所述协议包括但不限于实时流协议(Real Time Streaming Protocol,RTSP)、超文本传输协议(Hyper Text Transfer Protocol,HTTP)、HTTP直播流协议(HTTP Live streaming protocol,HLS)、MPEG‑DASH、实时传输协议(Real‑time Transport protocol,RTP)、实时消息协议(Real Time Messaging Protocol,RTMP)或其任何组合。
[0616] 在协议进行单元3202对码流进行处理之后,生成流文件。文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为经编码音频数据和经编码视频数据。如上文所述,对于一些实际场景,例如,在视频会议系统中,不复用经编码音频数据和经编码视频数据。在这种情况下,经编码数据不通过解复用单元3204发送到视频解码器3206和音频解码器3208。
[0617] 通过解复用处理,生成视频基本码流(elementary stream,ES)、音频ES和(可选)字幕。视频解码器3206,包括如上述实施例所解释的视频解码器30,通过如上述实施例所示的解码方法对视频ES进行解码以生成视频帧,并将该数据发送到同步单元3212。音频解码器3208,对音频ES进行解码以生成音频帧,并将该数据发送至同步单元3212。或者,视频帧在发送至同步单元3212之前,可以存储在缓冲器中(图15中未示出)。同理,音频帧在发送至同步单元3212之前,可以存储在缓冲器中(图15中未示出)。
[0618] 同步单元3212使视频帧和音频帧同步,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。可以使用与经译码音频和可视数据呈现相关的时间戳和与数据流发送相关的时间戳,在语法中对信息进行译码。
[0619] 如果码流中包括字幕,则字幕解码器3210对字幕进行解码,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
[0620] 本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以在汽车系统等其它系统中使用。
[0621] 数学运算符
[0622] 本申请中使用的数学运算符与C编程语言中使用的数学运算符类似。但是,对整数除法和算术移位运算的结果进行了更准确的定义,并且定义了其它运算,如幂运算和实值除法。编号和计数规范通常从0开始,例如,“第一”相当于第0个,“第二”相当于第1个,等等。
[0623] 逻辑运算符
[0624] 以下逻辑运算符定义如下:
[0625] x&&y    x和y的布尔逻辑“与”
[0626] x||y    x和y的布尔逻辑“或”
[0627] !       布尔逻辑“非”
[0628] x?y:z   如果x为真或不等于0,则求y的值,否则,求z的值。
[0629] 关系运算符
[0630] 以下关系运算符定义如下:
[0631] >       大于
[0632] ≥      大于或等于
[0633] <       小于
[0634] ≤      小于或等于
[0635] ==    等于
[0636] !=     不等于
[0637] 当一个关系运算符应用于一个已被赋值“na”(不适用,not applicable)的语法元素或变量时,值“na”为该语法元素或变量的不同值。值“na”不等于任何其它值。
[0638] 逐位运算符
[0639] 以下逐位运算符定义如下:
[0640] &逐位“与”。当对整数参数进行运算时,运算的是整数值的二进制补码表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。
[0641] |逐位“或”。当对整数参数进行运算时,运算的是整数值的二进制补码表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。
[0642] ^逐位“异或”。当对整数参数进行运算时,运算的是整数值的二进制补码表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。
[0643] x>>y x的二进制补码整数表示算术右移y个二进制数位。只有y为非负整数值时才定义该函数。由于右移而移进最高有效位(most significant bit,MSB)的比特的值等于移位运算之前的x的MSB。
[0644] x<
[0645] 在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质发送,并由基于硬件的处理单元执行。计算机可读介质可包含计算机可读存储介质,其对应于有形介质,例如数据存储介质,或包括任何促进将计算机程序从一处传送到另一处的介质(例如根据通信协议)的通信介质。以此方式,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质,或(2)信号或载波等通信介质。数据存储介质可为可由一或多个计算机或一或多个处理器存取以检索用于实现本申请中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0646] 作为示例而非限制,这类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD‑ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以被适当地定义为电脑可读介质。例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光缆、双绞线、数字用户线(digital subscriber line,DSL)或以例如红外、无线和微波等无线方式发送的,也被包含在所定义的介质中。但是,应理解,所述计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是实际上针对于非瞬时性有形存储介质。本文中使用的磁盘(disk)和光盘(disc)包括压缩磁盘(compact disc,CD)、镭射盘、光盘、数字多功能光盘(digital versatile disc,DVD)、软盘和蓝光光盘,磁盘通常以磁性复制数据,而光盘通常以激光进行光学复制数据。上述的组合也可以包括在电脑可读介质范畴中。
[0647] 可通过一个或多个数字信号处理器(digital signal processor,DSP)、通用微处理器、专用集成电路(application specific integrated circuit,ASIC)、现场可编程逻辑阵列(field programmable logic array,FPGA)或其它等效集成或离散逻辑电路等一个或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入到组合编解码器中。而且,所述技术可以完全在一个或多个电路或逻辑元件中实现。
[0648] 本发明的技术可以在多种设备或装置中实施,这些设备或装置包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所公开技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元(包括如上所述的一个或多个处理器)的集合来提供。
[0649] 在一个示例中,提供了一种由编码设备实现的编码方法,包括:根据分割约束信息对图像区域的块进行分割;生成包括一个或多个分割约束语法元素的码流,其中,所述一个或多个分割约束语法元素指示所述分割约束信息,所述一个或多个分割约束语法元素是图像参数集(picture parameter set,PPS)级别的语法元素。
[0650] 例如,所述分割约束信息包括以下中的一个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0651] 例如,在一些实施例中,所述分割约束信息包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)以及允许的最大二叉树根节点尺寸信息(MaxBtSizeY)。
[0652] 在一些实施例中,所述分割约束信息包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0653] 在上述任一方法中,所述分割约束信息包括:N个条带类型对应的N个分割约束信息集或组,或者N个条带索引对应的N个分割约束信息集或组,其中,每个分割约束信息集或组包括以下中的一个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)、允许的最大三叉树根节点尺寸信息(MaxTtSizeY),其中,N为正整数。
[0654] 所述方法可以包括:根据分割约束信息对图像区域的块进行分割;生成包括多个分割约束语法元素的码流,其中,所述多个分割约束语法元素指示所述分割约束信息,其中,所述多个分割约束语法元素是参数集级别的语法元素或包括在头中的语法元素。
[0655] 例如,所述多个分割约束语法元素是以下中的任一个:视频参数集(video parameter set,VPS)级别的语法元素、序列参数集(sequence parameter set,SPS)级别的语法元素、图像参数集(picture parameter set,PPS)级别的语法元素、图像头中的语法元素、条带头中的语法元素或分块头中的语法元素。
[0656] 在一些示例性实现方式中,所述分割约束信息包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)以及允许的最大二叉树根节点尺寸信息(MaxBtSizeY)。
[0657] 例如,所述分割约束信息包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0658] 在一些实施例中,所述分割约束信息包括以下中的两个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0659] 例如,所述分割约束信息包括:N个条带类型对应的N个分割约束信息集或组,或者N个条带索引对应的N个分割约束信息集或组,其中,每个分割约束信息集或组包括以下中的两个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)、允许的最大三叉树根节点尺寸信息(MaxTtSizeY),其中,N为正整数。
[0660] 根据一实施例,提供一种由解码设备实现的解码方法,包括:从码流中解析一个或多个分割约束语法元素,其中,所述一个或多个分割约束语法元素指示分割约束信息,所述一个或多个分割约束语法元素从所述码流的图像参数集(picture parameter set,PPS)级别的语法元素中获得;根据所述分割约束信息对图像区域的块进行分割。
[0661] 在一些实现方式中,所述分割约束信息包括以下中的一个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0662] 例如,所述分割约束信息包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)以及允许的最大二叉树根节点尺寸信息(MaxBtSizeY)。所述分割约束信息可以包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0663] 在一些实施例中,所述分割约束信息包括:N个条带类型对应的N个分割约束信息集或组,或者N个条带索引对应的N个分割约束信息集或组,其中,每个分割约束信息集或组包括以下中的一个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)、允许的最大三叉树根节点尺寸信息(MaxTtSizeY),其中,N为正整数。
[0664] 根据一个实施例,提供一种由解码设备实现的解码方法,包括:从码流中解析多个分割约束语法元素,其中,所述多个分割约束语法元素指示分割约束信息,所述多个分割约束语法元素从所述码流的参数集级别的语法元素中或所述码流的头中获得;根据所述分割约束信息对图像区域的块进行分割。
[0665] 例如,从以下中的任一个中获得所述多个分割约束语法元素:视频参数集(video parameter set,VPS)级别的语法元素、序列参数集(sequence parameter set,SPS)级别的语法元素、图像参数集(picture parameter set,PPS)级别的语法元素、图像头中的语法元素、条带头中的语法元素或分块头中的语法元素。
[0666] 例如,所述分割约束信息包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)以及允许的最大二叉树根节点尺寸信息(MaxBtSizeY)。
[0667] 在一些实施例中,所述分割约束信息包括:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0668] 在一些实现方式中,所述分割约束信息包括以下中的两个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)以及允许的最大三叉树根节点尺寸信息(MaxTtSizeY)。
[0669] 例如,所述分割约束信息包括:N个条带类型对应的N个分割约束信息集或组,或者N个条带索引对应的N个分割约束信息集或组,其中,每个分割约束信息集或组包括以下中的两个或多个:允许的最小四叉树叶节点尺寸信息(MinQtSizeY)、最大多类型树深度信息(MaxMttDepth)、允许的最大二叉树根节点尺寸信息(MaxBtSizeY)、允许的最大三叉树根节点尺寸信息(MaxTtSizeY),其中,N为正整数。
[0670] 在一些示例中,分割约束信息包括不同条带类型对应的分割约束信息或不同条带索引对应的分割约束信息。
[0671] 例如,所述分割约束信息包括帧内模式下的分割约束信息,和/或帧间模式下的分割约束信息。
[0672] 在任一实施例中,图像区域包括图像或图像的一部分。
[0673] 在一些实施例中,当图像参数集(picture parameter set;PPS)的多类型树分割启用标志的值启用对块进行多类型树分割时,从所述图像参数集合中解析分割约束信息,并根据所述分割约束信息对所述图像区域的块应用多类型树分割。
[0674] 根据一个实施例,提供了一种编码器,包括用于执行上述方法中的任一种的处理电路。
[0675] 根据一个实施例,提供了一种解码器,包括用于执行上述方法中的任一种的处理电路。
[0676] 根据一个实施例,提供了一种计算机程序产品,包括用于执行根据上述任一方法所述的方法的程序代码。
[0677] 根据一个实施例,提供了一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,配置所述解码器执行根据上述任一解码方法所述的方法。
[0678] 根据一个实施例,提供了一种编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,配置所述编码器执行根据上述任一解码方法所述的方法。
[0679] 根据第一方面,本发明涉及一种由解码设备实现的对视频码流进行解码的方法,其中,所述视频码流包括表示图像区域和所述图像区域的图像区域头的数据,所述解码方法包括:
[0680] 从所述视频码流中获取覆写标志;
[0681] 当所述覆写标志(例如,partition_constraint_override_flag)的值为覆写值时,从所述图像区域头中获取所述图像区域的第一分割约束信息;
[0682] 根据所述第一分割约束信息,对所述图像区域的块进行分割。
[0683] 在一种可能的实现方式中,根据所述第一分割约束信息对所述图像区域的块进行分割包括:根据所述第一分割约束信息将所述图像区域的块分割为子块。所述解码方法还包括:重建所述子块。
[0684] 在一种可能的实现方式中,所述解码方法还包括:
[0685] 从所述视频码流中获取覆写启用标志;
[0686] 其中,当所述覆写启用标志(例如,partition_constraint_override_enabled_flag)的值为启用值时,从所述视频码流中获取所述覆写标志。
[0687] 在一种可能的实现方式中,所述解码方法还包括:
[0688] 从所述视频码流中获取分割约束控制出现标志;
[0689] 其中,当所述分割约束控制出现标志(例如,partition_constraint_control_present_flag)的值为真时,从所述视频码流中获取所述覆写启用标志。
[0690] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,并且所述分割约束控制出现标志的值为假表示所述参数集中不存在分割约束控制语法元素。
[0691] 在一种可能的实现方式中,所述参数集为图像参数集或序列参数集。
[0692] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,所述解码方法还包括:
[0693] 当所述覆写启用标志的值为禁用值时,根据所述参数集中的所述视频码流的第二分割约束信息,对所述图像区域的块进行分割。
[0694] 在一种可能的实现方式中,所述第二分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0695] 在一种可能的实现方式中,所述第二分割约束信息包括与图像区域相关的不同参数对应的分割约束信息或不同索引对应的分割约束信息。
[0696] 在一种可能的实现方式中,所述第二分割约束信息包括帧内模式下的分割约束信息,或帧间模式下的分割约束信息。
[0697] 在一种可能的实现方式中,所述第二分割约束信息包括亮度块的分割约束信息,或色度块的分割约束信息。
[0698] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,从所述视频码流中获取覆写启用标志包括:从所述参数集中获取所述覆写启用标志。
[0699] 在一种可能的实现方式中,从所述视频码流中获取覆写标志包括从所述图像区域头中获取所述覆写标志。
[0700] 在一种可能的实现方式中,所述第一分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0701] 在一种可能的实现方式中,所述图像区域包括条带或分块,所述图像区域头包括所述条带的条带头或所述分块的分块头。
[0702] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,所述解码方法还包括:
[0703] 当所述覆写标志的值不是所述覆写值时,根据所述参数集中的所述视频码流的第二分割约束信息,对所述图像区域的块进行分割。
[0704] 在一种可能的实现方式中,所述图像区域头中的多类型树分割启用标志(例如,slice_btt_enabled_flag)的值启用对块进行多类型树分割时,获取第一分割约束信息并根据所述第一分割约束信息对所述图像区域的块应用多类型树分割。
[0705] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的参数集的数据,当不存在所述图像区域头的多类型树分割启用标志且参数集中的多类型树分割启用标志的值(例如,sps_btt_enabled_flag)启用对块进行多类型树分割时,从所述参数集合中获取所述视频码流的第二分割约束信息,并根据所述第二分割约束信息对所述图像区域的块应用多类型树分割。
[0706] 根据第二方面,本发明涉及一种由解码设备实现的对视频码流进行解码的方法,其中,所述视频码流包括表示块和所述视频码流的第一参数集的数据,所述解码方法包括:
[0707] 从所述视频码流中获取覆写标志;
[0708] 当所述覆写标志的值为覆写值时,从所述第一参数集中获取所述块的第一分割约束信息;
[0709] 根据所述第一分割约束信息,对所述块进行分割。
[0710] 在一种可能的实现方式中,根据所述第一分割约束信息对所述块进行分割包括:根据所述第一分割约束信息将块分割为子块。所述解码方法还包括:重建所述子块。
[0711] 在一种可能的实现方式中,所述解码方法还包括:
[0712] 从所述视频码流中获取覆写启用标志;
[0713] 其中,当所述覆写启用标志的值为启用值时,从所述视频码流中获取所述覆写标志。
[0714] 在一种可能的实现方式中,所述解码方法还包括:
[0715] 从所述视频码流中获取分割约束控制出现标志;
[0716] 其中,当所述分割约束控制出现标志的值为真时,从所述视频码流中获取所述覆写启用标志。
[0717] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的第二参数集的数据,并且所述分割约束控制出现标志的值为假表示所述参数集中不存在分割约束控制语法元素。
[0718] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的第二参数集的数据,所述解码方法还包括:
[0719] 当所述覆写启用标志的值为禁用值时,根据所述第二参数集中的所述视频码流的第二分割约束信息,对所述块进行分割。
[0720] 在一种可能的实现方式中,所述第二分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0721] 在一种可能的实现方式中,所述第二分割约束信息包括与视频码流表示的图像区域相关的不同参数对应的分割约束信息或不同索引对应的分割约束信息。
[0722] 在一种可能的实现方式中,所述第二分割约束信息包括帧内模式下的分割约束信息,或帧间模式下的分割约束信息。
[0723] 在一种可能的实现方式中,所述第二分割约束信息包括亮度块的分割约束信息,或色度块的分割约束信息。
[0724] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的第二参数集的数据,从所述视频码流中获取覆写启用标志包括:从所述第二参数集中获取所述覆写启用标志。
[0725] 在一种可能的实现方式中,从所述视频码流中获取覆写标志包括从所述第一参数集中获取所述覆写标志。
[0726] 在一种可能的实现方式中,所述第一分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0727] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的第二参数集的数据;
[0728] 其中,第一参数集为图像参数集,第二参数集为序列参数集。
[0729] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的第二参数集的数据,所述解码方法还包括:
[0730] 当所述覆写标志的值不是覆写值时,根据所述第二参数集中的所述视频码流的第二分割约束信息,对所述块进行分割。
[0731] 在一种可能的实现方式中,当所述第一参数集中的多类型树分割启用标志的值启用对块进行多类型树分割时,获取第一分割约束信息并根据所述第一分割约束信息对所述块应用多类型树分割。
[0732] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的第二参数集的数据,当不存在所述第一参数集中的所述多类型树分割启用标志,且所述第二参数集中的多类型树分割启用标志的值启用对所述块进行多类型树分割时,从所述第二参数集获取所述视频码流的第二分割约束信息,并根据所述第二分割约束信息对所述块应用多类型树分割。
[0733] 根据第三方面,本发明涉及一种由解码设备实现的对视频码流进行解码的方法,其中,所述视频码流包括表示第一图像区域和所述第一图像区域的第一图像区域头的数据,所述解码方法包括:
[0734] 从所述视频码流中获取覆写标志;
[0735] 当所述覆写标志的值为覆写值时,从所述第一图像区域头中获取所述第一图像区域的第一分割约束信息;
[0736] 根据所述第一分割约束信息,对所述第一图像区域的块进行分割。
[0737] 在一种可能的实现方式中,根据所述第一分割约束信息对所述第一图像区域的块进行分割包括:根据所述第一分割约束信息将所述第一图像区域的块分割为子块。所述解码方法还包括:重建所述子块。
[0738] 在一种可能的实现方式中,所述解码方法还包括:
[0739] 从所述视频码流中获取覆写启用标志;
[0740] 其中,当所述覆写启用标志的值为启用值时,从所述视频码流中获取所述覆写标志。
[0741] 在一种可能的实现方式中,所述解码方法还包括:
[0742] 从所述视频码流中获取分割约束控制出现标志;
[0743] 其中,当所述分割约束控制出现标志的值为真时,从所述视频码流中获取所述覆写启用标志。
[0744] 在一种可能的实现方式中,所述视频码流还包括表示第二图像区域和所述第二图像区域的第二图像区域头的数据,并且所述分割约束控制出现标志的值为假表示所述第二图像区域头中不存在分割约束控制语法元素。
[0745] 在一种可能的实现方式中,所述视频码流还包括表示第二图像区域和所述第二图像区域的第二图像区域头的数据,所述解码方法还包括:
[0746] 当所述覆写启用标志的值为禁用值时,根据所述第二图像区域头中的所述视频码流的第二分割约束信息对所述第一图像区域的块进行分割,其中所述第二图像区域包括所述第一图像区域的块。
[0747] 在一种可能的实现方式中,所述第二分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0748] 在一种可能的实现方式中,所述第二分割约束信息包括与视频码流表示的图像区域相关的不同参数对应的分割约束信息或不同索引对应的分割约束信息。
[0749] 在一种可能的实现方式中,所述第二分割约束信息包括帧内模式下的分割约束信息,或帧间模式下的分割约束信息。
[0750] 在一种可能的实现方式中,所述第二分割约束信息包括亮度块的分割约束信息,或色度块的分割约束信息。
[0751] 在一种可能的实现方式中,所述视频码流还包括表示第二图像区域和所述第二图像区域的第二图像区域头的数据,从所述视频码流中获取覆写启用标志包括:从所述第二图像区域头中获取所述覆写启用标志。
[0752] 在一种可能的实现方式中,从所述视频码流中获取覆写标志包括从所述第一图像区域头中获取所述覆写标志。
[0753] 在一种可能的实现方式中,所述第一分割约束信息包括允许的最小四叉树叶节点尺寸信息、最大多类型树深度信息、允许的最大三叉树根节点尺寸信息或允许的最大二叉树根节点尺寸信息。
[0754] 在一种可能的实现方式中,所述视频码流还包括表示第二图像区域和所述第二图像区域的第二图像区域头的数据;
[0755] 其中,所述第一图像区域头为条带头,所述第二图像区域头为分块头,所述第一图像区域为条带,所述第二图像区域为分块,所述分块包括所述条带;或
[0756] 所述第一图像区域头为分块头,所述第二图像区域头为条带头,所述第一图像区域为分块,所述第二图像区域为条带,所述条带包括所述分块。
[0757] 在一种可能的实现方式中,所述视频码流还包括表示第二图像区域和所述第二图像区域的第二图像区域头的数据,所述解码方法还包括:
[0758] 当所述覆写标志的值不是覆写值时,根据所述第二图像区域头中的所述视频码流的第二分割约束信息对所述第一图像区域的块进行分割,其中所述第二图像区域包括所述第一图像区域的块。
[0759] 在一种可能的实现方式中,当所述第一图像区域头中的多类型树分割启用标志的值启用对块进行多类型树分割时,获取第一分割约束信息并根据所述第一分割约束信息对所述第一图像区域的块应用多类型树分割。
[0760] 在一种可能的实现方式中,所述视频码流还包括表示所述视频码流的第二图像区域头的数据,当不存在所述第一图像区域头中的所述多类型树分割启用标志,且所述第二图像区域头中的多类型树分割启用标志的值启用对所述块进行多类型树分割时,从所述第二图像区域头中获取所述视频码流的第二分割约束信息,并根据所述第二分割约束信息对所述图像区域的块应用多类型树分割。
[0761] 根据第四方面,本发明涉及一种视频码流的解码装置,包括处理器和存储器。所述存储器存储指令,使得所述处理器执行根据第一方面、第二方面或第三方面,或第一方面、第二方面或第三方面中的任一可能的实施例所述的方法。
[0762] 根据第五方面,提供一种存储有指令的计算机可读存储介质,其中,当所述指令在执行时使得一个或多个处理器对视频数据进行译码。所述指令使所述一个或多个处理器执行根据第一方面、第二方面或第三方面,或第一方面、第二方面或第三方面中的任一可能的实施例所述的方法。
[0763] 根据第六方面,本发明涉及一种计算机程序,包括程序代码,用于在计算机上执行时执行根据第一方面、第二方面或第三方面,或第一方面、第二方面或第三方面中的任一可能的实施例所述的方法。
[0764] 综上所述,本发明提供一种编解码装置及编解码方法。特别地,本发明涉及块分割和在码流中指示分割参数。图像区域头中的覆写标志指示是否根据第一分割约束信息对块进行分割。所述覆写标志包括在码流中,并对所述块进行相应分割。