CN113366837A - 改进的子分区帧内预测 - Google Patents

改进的子分区帧内预测 Download PDF

Info

Publication number
CN113366837A
CN113366837A CN202080011442.XA CN202080011442A CN113366837A CN 113366837 A CN113366837 A CN 113366837A CN 202080011442 A CN202080011442 A CN 202080011442A CN 113366837 A CN113366837 A CN 113366837A
Authority
CN
China
Prior art keywords
sub
current block
block
intra
partition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080011442.XA
Other languages
English (en)
Inventor
A.K.拉马苏布拉莫尼安
G.范德奥韦拉
L.法姆范
M.卡尔切维茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN113366837A publication Critical patent/CN113366837A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

描述了用于改进用于将编解码块分割成子块的帧内子划分(ISP)模式的技术。在一些情况下,是否对编解码块启用ISP模式基于与数据单元(例如VPDU、变换块等)有关的大小约束。例如,基于与VPDU相关的大小约束,可以对跨越VPDU边界的编解码块禁用ISP模式。在一些情况下,是否启用ISP模式可以基于编解码块的宽度和/或高度与对应于一个或多个最大变换块大小的大小阈值的比较。在一些情况下,在对编解码块启用ISP模式的情况下,可以基于编解码块相对于一个或多个阈值的宽度和/或高度来推断用于定义编解码块的水平或垂直分割类型的标志的值。

Description

改进的子分区帧内预测
技术领域
本申请涉及视频编解码。更具体地说,本申请涉及用于执行改进的视频编解码的系统、方法和计算机可读介质。
背景技术
许多设备和系统允许对视频数据进行处理和输出以供消费。数字视频数据包括大量的数据,以满足消费者和视频提供商的需求。例如,视频数据的消费者期望具有高的保真度、分辨率、帧速率等的最高质量的视频。因此,满足这些需求所需的大量视频数据给处理和存储视频数据的通信网络和设备带来了负担。
可以使用各种视频编解码技术来压缩视频数据。根据一个或多个视频编解码标准执行视频编解码。例如,视频编解码标准包括高效视频编解码(HEVC)、高级视频编解码(AVC)、MPEG-2第2部分编解码(MPEG代表运动图片专家组)、VP9、开放媒体联盟(AOMedia)视频1(AV1)、基本视频编解码(EVC)等。视频编解码通常利用利用视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的降低。随着不断发展的视频服务变得可用,需要具有更高编解码效率的编码技术。
发明内容
本文描述了用于改进用于将视频数据的编解码块分割成子块的帧内子划分(intra-subpartitioning,ISP)模式的使用的系统和方法。在一些示例中,关于ISP模式是否可以被允许用于编解码块的决定可以基于大小约束。可以基于基于数据单元的大小定义的一个或多个大小阈值来实现大小约束。例如,宽度大小阈值可以被定义为数据单元的宽度,高度大小阈值可以被定义为数据单元的高度。在一些情况下,可以定义单个阈值(例如,当数据单元的宽度和高度相等时)。数据单元可以包括虚拟管线数据单元(VPDU)、变换块或其他数据单元或块。在一个说明性示例中,可以使用一个或多个大小阈值来防止对跨越VPDU边界的编解码块启用ISP模式。被称为VPDU约束的这种约束通过确保不在不同的VPDU中单独处理从分割编解码块获取的子块,来提高VPDU的处理效率。
在一些示例中,可以基于编解码块的宽度和高度与对应于一个或多个最大变换块大小的大小阈值的比较来确定是否启用使用ISP模式的编解码块的分割。在一些示例中,在对编解码块启用ISP模式的情况下,可以基于编解码块的宽度和高度来确定最佳分割类型(水平的或垂直的)。
在一些示例中,提供了用于ISP模式的划分结构。划分结构确保通过划分编解码块而获取的子块的维度不违反诸如最大变换块大小的大小阈值。在一些示例中,提供递归树结构以确保以导致子块的大小符合最大变换块大小阈值要求的方式将子分区分割类型确定为水平的或垂直的。在一些示例中,确定编解码块被分割成的子块的数量,使得子块的维度符合最大变换块大小阈值要求。在一些示例中,调整启用ISP模式以确保从分割编解码块获取的子块的维度符合最大变换块大小阈值要求。
根据至少一个示例,提供了一种用于编码视频数据的装置。该装置包括存储器和在电路中实现的处理器。该处理器被配置成并且可以获取视频数据的图片的当前块;确定图片的当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个,宽度大小阈值对应于数据单元的宽度并且高度大小阈值对应于数据单元的高度;基于当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个来确定是否要为当前块信令通知帧内子分区模式标志,其中帧内子分区模式标志的值指示当前块是否被划分成矩形变换块子分区;以及基于确定是否要为当前块信令通知帧内子分区模式标志,生成至少包括当前块的编码的视频比特流。
在另一个示例中,提供了一种用于编码视频数据的方法。该方法包括获取视频数据的图片的当前块;确定图片的当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个,宽度大小阈值对应于数据单元的宽度并且高度大小阈值对应于数据单元的高度;基于当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个来确定是否要为当前块信令通知帧内子分区模式标志,其中帧内子分区模式标志的值指示当前块是否被划分成矩形变换块子分区;以及基于确定是否要为当前块信令通知帧内子分区模式标志,生成至少包括当前块的编码的视频比特流。
在另一个示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当该指令由一个或多个处理器执行时,使得一个或多个处理器:获取视频数据的图片的当前块;确定图片的当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个,宽度大小阈值对应于数据单元的宽度并且高度大小阈值对应于数据单元的高度;基于当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个来确定是否要为当前块信令通知帧内子分区模式标志,其中帧内子分区模式标志的值指示当前块是否被划分成矩形变换块子分区;以及基于确定是否要为当前块信令通知帧内子分区模式标志,生成至少包括当前块的编码的视频比特流。
在另一个示例中,提供了一种用于编码视频数据的装置。该装置包括用于获取视频数据的图片的当前块的部件;用于确定图片的当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个的部件,宽度大小阈值对应于数据单元的宽度并且高度大小阈值对应于数据单元的高度;用于基于当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个来确定是否要为当前块信令通知帧内子分区模式标志的部件,其中帧内子分区模式标志的值指示当前块是否被划分成矩形变换块子分区;以及用于基于确定是否要为当前块信令通知帧内子分区模式标志,生成至少包括当前块的编码的视频比特流的部件。
在上述方法、装置和计算机可读介质的一些方面中,宽度大小阈值等于高度大小阈值。
在上述方法、装置和计算机可读介质的一些方面中,宽度大小阈值不同于高度大小阈值。
在上述方法、装置和计算机可读介质的一些方面中,帧内子分区模式标志的值等于第一值指定当前块被划分成矩形变换块子分区,并且帧内子分区模式标志的值等于第二值指定当前块不被划分成矩形变换块子分区。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度大于宽度大小阈值或者当前块的高度大于高度大小阈值;以及基于当前块的宽度大于宽度大小阈值或者当前块的高度大于高度大小阈值的确定,确定当前块的帧内子分区模式标志的值等于第二值。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度小于或等于宽度大小阈值并且当前块的高度小于或等于高度大小阈值;以及基于当前块的宽度小于或等于宽度大小阈值并且当前块的高度小于或等于高度大小阈值的确定,确定信令通知当前块的帧内子分区模式标志。例如,可以将当前块的帧内子分区模式标志设置为等于第一值或第二值。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度小于或等于大小阈值并且当前块的高度小于或等于大小阈值,该大小阈值对应于最大变换块大小;以及基于当前块的宽度小于或等于大小阈值并且当前块的高度小于或等于大小阈值的确定,确定信令通知当前块的帧内子分区模式标志。例如,可以将当前块的帧内子分区模式标志设置为等于第一值或第二值。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度小于或等于大小阈值或当前块的高度小于或等于大小阈值,该大小阈值对应于最大变换块大小;以及基于当前块的宽度小于或等于大小阈值或当前块的高度小于或等于大小阈值的确定,确定当前块的帧内子分区模式标志的值为第二值。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度小于或等于宽度大小阈值并且当前块的高度小于或等于高度大小阈值;以及基于当前块的宽度小于或等于宽度大小阈值并且当前块的高度小于或等于高度大小阈值的确定,确定当前块的帧内子分区模式标志的值等于第一值。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度小于或等于大小阈值并且当前块的高度小于或等于大小阈值,该大小阈值对应于最大变换块大小;以及基于当前块的宽度小于或等于大小阈值并且当前块的高度小于或等于大小阈值的确定,确定当前块的帧内子分区模式标志的值等于第一值。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度小于或等于大小阈值或当前块的高度小于或等于大小阈值,该大小阈值对应于最大变换块大小;以及基于当前块的宽度小于或等于大小阈值或当前块的高度小于或等于大小阈值的确定,确定当前块的帧内子分区模式标志的值为第二值。
上述方法、装置和计算机可读介质的一些方面还包括确定要为当前块信令通知帧内子分区模式标志;以及基于要为当前块信令通知帧内子分区模式标志的确定,在编码的视频比特流中包括当前块的帧内子分区模式标志。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度大于对应于最大变换块大小的大小阈值的确定,确定当前块的帧内子分区分割标志的值,该帧内子分区分割标志指定用于划分当前块的分割类型是水平的还是垂直的。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度大于大小阈值;以及基于当前块的宽度大于大小阈值的确定,确定帧内子分区分割标志的第一分割值,该第一分割值对应于垂直分割类型。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的高度大于大小阈值;以及基于当前块的高度大于大小阈值的确定,确定帧内子分区分割标志的第二分割值,该第二分割值对应于水平分割类型。
上述方法、装置和计算机可读介质的一些方面还包括基于当前块的帧内子分区分割标志的值,将当前块垂直地或水平地分成子分区。
在上述方法、装置和计算机可读介质的一些方面中,当前块是帧内预测块。
在上述方法、装置和计算机可读介质的一些方面中,数据单元是虚拟管线数据单元(VPDU)。
在上述方法、装置和计算机可读介质的一些方面中,数据单元是变换块。在一些情况下,宽度大小阈值和高度大小阈值等于最大变换块大小。
在另一个示例中,提供了一种解码视频数据的方法。该方法包括获取包括视频数据的编码的视频比特流;确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的;确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值。
在另一个示例中,提供了一种用于解码视频数据的装置。该装置包括存储器和在电路中实现的处理器。该处理器被配置成并且可以获取包括视频数据的编码的视频比特流;确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的;确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值。
在另一个示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当该指令由一个或多个处理器执行时,使得一个或多个处理器:获取包括视频数据的编码的视频比特流;确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的;确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值。
在另一个示例中,提供了一种用于解码视频数据的装置。该装置包括用于获取包括视频数据的编码的视频比特流的部件;用于确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志的部件,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的;用于确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值的部件;以及用于基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值的部件。
上述方法、装置和计算机可读介质的一些方面还包括确定对当前块启用帧内子分区模式标志;以及基于对当前块启用帧内子分区模式标志的确定,确定编码的视频比特流中不存在帧内子分区分割标志,其中基于对当前块启用帧内子分区模式标志,使用帧内子分区模式将当前块划分成矩形变换块子分区。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的宽度大于大小阈值;以及基于当前块的宽度大于大小阈值的确定,确定帧内子分区分割标志的第一分割值,该第一分割值对应于垂直分割类型。
上述方法、装置和计算机可读介质的一些方面还包括使用垂直分割类型将当前块分割成两个或更多个子块,其中基于垂直分割类型,两个或更多个子块中的每一个子块的相应宽度小于当前块的宽度。
上述方法、装置和计算机可读介质的一些方面还包括确定当前块的高度大于大小阈值;以及基于当前块的高度大于大小阈值的确定,确定帧内子分区分割标志的第二分割值,该第二分割值对应于水平分割类型。
上述方法、装置和计算机可读介质的一些方面还包括使用水平分割类型将当前块分割成两个或更多个子块,其中基于水平分割类型,两个或更多个子块中的每一个子块的相应高度小于当前块的高度。
上述方法、装置和计算机可读介质的一些方面还包括确定编码的视频比特流中不存在用于对视频数据的第二块启用帧内子分区模式的帧内子分区模式标志;以及基于编码的视频比特流中不存在针对第二块的帧内子分区模式标志来确定第二块的帧内子分区模式标志的模式值。
在上述方法、装置和计算机可读介质的一些方面中,编码的视频比特流中不存在针对第二块的帧内子分区模式标志指示第二块的宽度大于宽度大小阈值或第二块的高度大于高度大小阈值中的至少一个,宽度大小阈值对应于数据单元的宽度,高度大小阈值对应于数据单元的高度。
在上述方法、装置和计算机可读介质的一些方面中,宽度大小阈值等于高度大小阈值。
在上述方法、装置和计算机可读介质的一些方面中,宽度大小阈值不等于高度大小阈值。
在上述方法、装置和计算机可读介质的一些方面中,数据单元是虚拟管线数据单元(VPDU)。
在上述方法、装置和计算机可读介质的一些方面中,数据单元是变换块。在一些情况下,宽度大小阈值和高度大小阈值等于最大变换块大小。
在上述方法、装置和计算机可读介质的一些方面中,当前块是帧内预测的块。
上述方法、装置和计算机可读介质的一些方面还包括执行视频数据的块的基于块的划分,以生成包括当前块的一个或多个编解码块;确定对当前块启用帧内子分区模式;以及基于确定对当前块启用帧内子分区模式,使用帧内子分区模式将当前块划分成两个或更多个子块。
上述方法、装置和计算机可读介质的一些方面还包括通过对两个或更多个子块应用相应的两个或更多个残差值来重建两个或更多个子块。
在上述方法、装置和计算机可读介质的一些方面中,该装置包括具有用于捕获一个或多个图片的照相机的移动设备。
上述方法、装置和计算机可读介质的一些方面还包括用于显示一个或多个图片的显示器。
本发明内容不旨在识别所要求保护的主题的关键或基本特征,也不旨在单独用于确定所要求保护的主题的范围。应通过参考本专利的整个说明书的适当部分、任何或所有附图和每项权利要求来理解主题。
在参考以下说明书、权利要求书和附图时,上述以及其他特征和实施例将变得更加显而易见。
附图说明
下面参考以下附图详细描述本申请的示例性实施例:
图1是示出了根据一些示例的编码设备和解码设备的示例的框图;
图2是示出了根据一些示例的块的划分的示例的概念图;
图3是示出了根据一些示例的块的划分的另一示例的概念图;
图4是示出了根据一些示例的编解码块的示例的概念图;
图5是示出了根据一些示例的包含四个块的VPDU的示例的概念图;
图6是示出了根据一些示例的跨越多个VPDU的当前块的示例的概念图;
图7是示出了根据一些实施例的处理视频数据的过程的示例的流程图;
图8是示出了根据一些实施例的处理视频数据的过程的示例的流程图;
图9是示出了根据一些实施例的处理视频数据的过程的示例的流程图;
图10是示出了根据一些示例的示例视频编码设备的框图;以及
图11是示出了根据一些示例的示例视频解码设备的框图。
具体实施方式
下面提供本公开的某些方面和实施例。这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合应用,这对于本领域技术人员来说将是显而易见的。在下面的描述中,出于解释的目的,阐述了具体细节,以便提供对本申请的实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述并不旨在限制。
随后的描述仅提供示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,示例性实施例的随后的描述将为本领域技术人员提供实现示例性实施例的使能描述。应当理解,在不脱离如所附权利要求中阐述的本申请的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
视频编解码设备实现视频压缩技术以有效地编码和解码视频数据。视频压缩技术可包括应用不同的预测模式,包括空域预测(例如,帧之内的预测或帧内预测)、时域预测(例如,帧之间的预测或帧间预测)、层间预测(跨视频数据的不同层)和/或其他预测技术,以减少或移除视频序列中固有的冗余。视频编码器可以将原始视频序列的每个图片划分成称为视频块或编解码单元的矩形区域(下面更详细地描述)。可以使用特定预测模式对这些视频块进行编码。
可以以一种或多种方式将视频划分为一组或多组较小的块。块可以包括编解码树块、预测块、变换块或其他合适的块。除非另有规定,否则通常对“块”的引用可指这样的视频块(例如,编解码树块、编解码块、预测块、变换块或其他合适的块或子块,正如普通技术人员将理解的那样)。此外,这些块中的每一个在本文中还可以互换地称为“单元”(例如,编解码树单元(CTU)、编解码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可以指示在比特流中编码的编解码逻辑单元,而块可以指示过程所针对的视频帧缓冲器的一部分。
对于帧间预测模式,视频编码器可以在位于另一时间位置的帧(或图片)中搜索与正在被编码的块相似的块,该帧被称为参考帧或参考图片。视频编码器可以将搜索限制为距要编码的块的确定的空间位移。可以使用包括水平位移分量和垂直位移分量的二维(2D)运动矢量来定位最佳匹配。对于帧内预测模式,视频编码器可以基于来自同一图片内先前编码的相邻块的数据,使用空域预测技术来形成预测块。
视频编码器可以确定预测误差。例如,可以将预测确定为正被编码的块与预测块中的像素值之间的差。预测误差也可以被称为残差。视频编码器还可以对预测误差应用变换(例如,离散余弦变换(DCT)或其他合适的变换)来生成变换系数。在变换之后,视频编码器可以对变换系数进行量化。量化的变换系数和运动矢量可以使用语法元素来表示,并且与控制信息一起形成视频序列的编解码的表示。在一些情况下,视频编码器可对语法元素进行熵编解码,从而进一步减少用于其表示所需的比特数。
视频解码器可以使用上面讨论的语法元素和控制信息,来构建用于解码当前帧的预测性的数据(例如,预测性的块)。例如,视频解码器可以将预测块和压缩的预测误差相加。视频解码器可以通过使用量化的系数对变换基函数进行加权来确定压缩的预测误差。重建帧与原始帧之间的差被称为重建误差。
本文描述了用于改进用于根据一个或多个限制和/或约束将视频数据的编解码块分割成子块的帧内子划分或帧内子划分(ISP)模式的使用的系统和方法。在一些示例中,是否对编解码块执行ISP模式的决定基于大小约束。大小约束可以基于使用数据单元的大小定义的一个或多个大小阈值。例如,如下面更详细地描述的,宽度大小阈值可以被定义为数据单元的宽度,高度大小阈值可以定义为数据单元的高度。在一些情况下,可以定义单个阈值(例如,当数据单元的宽度和高度相等时)。数据单元可以包括虚拟管线数据单元(VPDU)、变换块或其他数据单元或块。在一个说明性示例中,本文定义了VPDU约束,其阻止对跨越虚拟管线数据单元(VPDU)边界的编解码块启用ISP模式。这种VPDU约束可以通过确保不在不同的VPDU中单独处理从使用ISP分割编解码块获取的子块来提高VPDU的处理效率。在一些示例中,VPDU约束可由编码器应用,其中当编解码块违反VPDU约束时,不在编码的视频比特流中或不与编码的视频比特流一起为编解码块信令通知ISP模式标志。在这样的示例中,基于不在编码的视频比特流中或不与编码的视频比特流一起信令通知ISP模式标志,解码器可以推断ISP模式标志的值为指示没有对编解码块启用ISP模式的值(例如,值0)。
分割标志(在一些情况下,本文称为帧内子分区分割标志)可以在编码的视频比特流中被信令通知并用于确定要对启用ISP模式的编解码块执行的ISP分割类型(例如,水平类型或垂直类型)。在示例方面中,提供了用于确定和信令通知分割标志的改进技术。例如,可以基于编解码块相对于最大变换块大小的特定维度来为编解码块确定最佳ISP分割类型,这可以避免根据现有实现方式可能导致的不期望的分割类型。在一个示例中,当对编解码块启用ISP模式时,要对编解码块执行的ISP分割类型(例如,水平类型或垂直类型)的确定可以基于编解码块的宽度和/或高度与对应于最大变换块大小的大小阈值的比较来确定。例如,可以基于编解码块的宽度和/或高度与最大变换块大小阈值的比较来确定编解码块的分割标志的值,并且分割标志的值可以用于确定ISP分割类型(例如,水平的或垂直的)。
在一些示例中,可以提供ISP模式的划分结构,以确保通过划分编解码块而获取的子块的维度不违反诸如最大变换块大小的大小阈值。在一些示例中,提供递归树结构以确保以导致子块的大小符合最大变换块大小阈值要求的方式将子分区分割类型确定为水平的或垂直的。在一些示例中,确定编解码块被分割成的子块的数量,使得子块的维度符合最大变换块大小阈值要求。在一些示例中,调整启用ISP模式以确保从分割编解码块获取的子块的维度符合最大变换块大小阈值要求。
图1是示出了包括编码设备104和解码设备112的系统100的示例的框图。编码设备104可以是源设备的一部分,并且解码设备112可以是接收设备的一部分。源设备和/或接收设备可以包括电子设备,例如移动或固定电话手持机(例如,智能手机、蜂窝电话等)、台式计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、互联网协议(IP)照像机或任何其他合适的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的一个或多个无线收发器。本文描述的编码技术适用于各种多媒体应用中的视频编解码,多媒体应喲红包括流式视频传输(例如,通过互联网)、电视广播或传输、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码或其他应用。在一些示例中,系统100可以支持单向或双向视频传输以支持诸如视频会议、视频流、视频回放、视频广播、游戏和/或视频电话之类的应用。
编码设备104(或编码器)可用于使用视频编解码标准或协议对视频数据进行编码以生成编码的视频比特流。视频编解码标准的示例包括ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IEC MPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉、ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包括其可缩放视频编解码(SVC)和多视图视频编解码(MVC)扩展,以及高效视频编解码(HEVC)或ITU-T H.265。存在用于多层视频编解码的HEVC的各种扩展,包括范围和屏幕内容编解码扩展、3D视频编解码(3D-HEVC)和多视图扩展(MV-HEVC)以及可缩放扩展(SHVC)。HEVC及其扩展由ITU-T视频编解码专家组(VCEG)和ISO/IEC运动图片专家组(MPEG)的视频编解码联合协作团队(JCT-VC)以及3D视频编解码扩展开发联合协作团队(JCT-3V)开发。
MPEG和ITU-T VCEG还组建了联合探索视频团队(JVET),为下一代视频编解码标准探索新的编解码工具,命名为多功能视频编解码(VVC)。参考软件称为VVC测试模型(VTM)。VVC的目标是在压缩性能上比现有的HEVC标准提供显著的改进,有助于部署更高质量的视频服务和新兴应用(例如,360°全方位沉浸式多媒体、高动态范围(HDR)视频等)。VP9、开放媒体联盟(AOMedia)视频1(AV1)和基本视频编解码(EVC)是可以应用本文所述技术的其它视频编解码标准。
本文描述的许多实施例可以使用诸如VTM、VVC、HEVC、AVC和/或其扩展的视频编解码器来执行。然而,本文描述的技术和系统也可以适用于其他编解码标准,例如MPEG、JPEG(或用于静止图像的其他编解码标准)、VP9、AV1、其扩展或已经可用或尚未可用或开发的其他合适的编解码标准。因此,尽管可以参考特定视频编解码标准来描述本文描述的技术和系统,但本领域的普通技术人员将理解,不应将描述解释为仅适用于该特定标准。
参照图1,视频源102可以向编码设备104提供视频数据。视频源102可以是源设备的一部分,或者可以是除源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,摄像机、照相机电话、视频电话等)、包含存储的视频的视频档案、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、这些源的组合或任何其它合适的视频源。
来自视频源102的视频数据可以包括一个或多个输入图片或帧。图片或帧是静止图像,在一些情况下是视频的一部分。在一些示例中,来自视频源102的数据可以是不属于视频的一部分的静止图像。在HEVC、VVC和其他视频编解码规范中,视频序列可以包括一系列图片。图片可以包括三个样点阵列,表示为SL、SCb和SCr。SL是亮度样点的二维阵列,SCb是Cb色度样点的二维阵列,SCr是Cr色度样点的二维阵列。色度样点在本文中也可以被称为“色度”样点。在其它实例中,图片可以是单色的并且可以仅包括亮度样点的阵列。
编码设备104的编码器引擎106(或编码器)对视频数据进行编码以生成编码的视频比特流。在一些示例中,编码的视频比特流(或“视频比特流”或“比特流”)是一系列一个或多个编解码的视频序列。编解码的视频序列(CVS)包括一系列接入单元(AU),该序列从具有基本层中的随机接入点图片并且具有某些属性的AU开始,直到并且不包括具有基本层中的随机接入点图片并且具有某些属性的下一AU。例如,启动CVS的随机接入点图片的某些属性可以包括RASL标志(例如,NoRaslOutputFlag)等于1。否则,随机接入点图片(具有RASL标志等于0)不启动CVS。接入单元(AU)包括一个或多个编解码的图片和与共享相同输出时间的编解码的图片相对应的控制信息。图片的编解码的条带在比特流级别被封装到称为网络抽象层(NAL)单元的数据单元中。例如,HEVC视频比特流可以包括一个或多个包括NAL单元的CVS。每个NAL单元都有NAL单元标头。在一个示例中,标头对于H.264/AVC是一个字节(除了多层扩展外),对于HEVC是两个字节。NAL单元标头中的语法元素采用指定的比特,因此对所有类型的系统和传输层(例如传输流、实时传输(RTP)协议、文件格式等)都是可见的。
HEVC标准中存在两类NAL单元,包括视频编解码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括编解码的图片数据的一个条带或条带片段(如下所述),并且非VCLNAL单元包括与一个或多个编解码的图片相关的控制信息。在一些情况下,NAL单元可以被称为分组。HEVC AU包括包含编解码的图片数据的VCL NAL单元和对应于该编解码的图片数据的非VCL NAL单元(如果有的话)。
NAL单元可以包含形成视频数据的编解码的表示的比特序列(例如,编码的视频比特流、比特流的CVS等),例如视频中图片的编解码的表示。编码器引擎106通过将每个图片划分成多个条带来生成图片的编解码的表示。条带独立于其他条带,使得条带中的信息在不依赖于来自同一图片内其他条带的数据的情况下被编解码。条带包括一个或多个条带片段,条带片段包括独立条带片段和一个或多个依赖于先前条带片段的从属条带片段(如果存在)。
在HEVC中,随后条带被划分成亮度样点和色度样点的编解码树块(CTB)。亮度样点的CTB和色度样点的一个或多个CTB,连同样点的语法,被称为编解码树单元(CTU)。CTU也可以被称为“树块”或“最大编解码单元”(LCU)。CTU是HEVC编码的基本处理单元。CTU可以被分割成多个不同大小的编解码单元(CU)。CU包含被称为编解码块(CB)的亮度和色度样点阵列。
亮度和色度CB可以被进一步分割为预测块(PB)。PB是亮度分量或色度分量的样点块,其使用相同的运动参数进行帧间预测或帧内块复制(IBC)预测(当可用或为使用而启用时)。亮度PB和一个或多个色度PB连同相关联的语法一起,形成预测单元(PU)。对于帧间预测,在比特流中为每个PU信令通知运动参数集合(例如,一个或多个运动矢量、参考索引等),并将该运动参数集合用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可以被称为运动信息。CB也可以被划分成一个或多个变换块(TB)。TB表示在其上应用残差变换(例如,在一些情况下相同的二维变换)以对预测残差信号进行编解码的颜色分量的正方形的样点块。变换单元(TU)表示亮度和色度样点的TB以及相应的语法元素。下面更详细地描述变换编解码。
CU的大小对应于编解码模式的大小,并且可以是正方形的形状。例如,CU的大小可以是8×8样点、16×16样点、32×32样点、64×64样点、或者达到对应CTU的尺寸的任何其他合适的大小。短语“N×N”在本文中用于指代在垂直和水平维度方面,视频块的像素维度(例如,8像素×8像素)。块中的像素可以按行和列排列。在一些实施例中,块在水平方向上可以不具有与在垂直方向上相同数量的像素。例如,与CU相关联的语法数据可以描述将CU到一个或多个PU的划分。在CU是帧内预测模式编码还是帧间预测模式编码之间,划分模式可以不同。PU可以被划分成非正方形的形状。例如,与CU相关联的语法数据还可以描述根据CTU的CU到一个或多个TU的划分。TU可以是正方形或非正方形的形状。
根据HEVC标准,可以使用变换单元(TU)执行变换。针对不同的CU,TU可以改变。可以基于给定CU内的PU的大小来确定TU的大小。TU可以与PU大小相同或更小。在一些示例中,可以使用被称为残差四叉树(RQT)的四叉树结构将对应于CU的残差样点细分为更小的单元。RQT的叶节可以对应于TU。可以变换与TU相关联的像素差值以产生变换系数。然后可以由编码器引擎106量化变换系数。
一旦视频数据的图片被划分成CU,编码器引擎106就使用预测模式来预测每个PU。然后从原始视频数据中减去预测单元或预测块以获取残差(如下所述)。对于每个CU,可以使用语法数据在比特流内信令通知预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用图片内空域相邻样点之间的相关性。例如,使用帧内预测,从同一图片中的相邻图像数据预测每个PU,例如,使用DC预测来寻找PU的平均值、使用平面预测来将平面表面拟合到PU、使用方向预测来从相邻数据外推或使用任何其他合适类型的预测。帧间预测使用图片之间的时域相关性,以便推导出图像样点块的运动补偿的预测。例如,使用帧间预测,使用来自一个或多个参考图片(按输出顺序在当前图片之前或之后)中的图像数据的运动补偿预测来预测每个PU。例如,可以在CU级别做出是使用图片间预测还是使用图片内预测来对图片区域进行编解码的决定。
编码器引擎106和解码器引擎116(在下面更详细地描述)可以被配置为根据VVC操作。根据VVC,视频编解码器(例如编码器引擎106和/或解码器引擎116)将图片划分成多个编解码树单元(CTU)(其中,亮度样点的CTB和色度样点的一个或多个CTB,与样点的语法元素一起,被称为CTU)。视频编解码器可以根据树结构(例如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)来划分CTU。QTBT结构移除了多种划分类型的概念,例如HEVC的CU、PU和TU的分隔。QTBT结构包括两个级别:包括根据四叉树划分而划分的第一级别,根据二叉树划分而划分的第二级别。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编解码单元(CU)。
在MTT划分结构中,可以使用四叉树划分、二叉树划分和一种或多种类型的三叉树划分来对块进行划分。三叉树划分是其中块被划分成三个子块的划分。在一些例子中,三叉树划分将一个块划分为三个子块,而不通过中心划分原始块。MTT中的划分类型(例如四叉树、二叉树和三叉树)可以是对称或不对称的。
在一些示例中,视频编解码器可以使用单个QTBT或MTT结构来表示亮度和色度分量中的每一个,而在其他示例中,视频编解码器可以使用两个或多个QTBT或MTT结构,例如一个QTBT或MTT结构用于亮度分量和另一QTBT或MTT结构用于两个色度分量(或两个QTBT和/或MTT结构用于各自色度分量)。
视频编解码器可以配置为使用按照HEVC的四叉树划分、QTBT划分、MTT划分或其它划分结构。为了说明的目的,本文的描述可以指QTBT划分。但是,应该理解的是,本公开的技术也可以应用于被配置为使用四叉树划分或者其它类型的划分的视频编解码器。
在一些示例中,为图片的一个或多个条带分配条带类型。条带类型包括I条带、P条带和B条带。I条带(帧内,可独立解码)是仅由帧内预测进行编解码的图片的条带,并且因此是可独立解码的,因为I条带仅需要帧内的数据来预测该条带的任何预测单元或预测块。P条带(单向预测的帧)是可以用帧内预测和单向帧间预测进行编解码的图片的条带。P条带内的每个预测单元或预测块用帧内预测或帧间预测进行编解码。当应用帧间预测时,预测单元或预测块仅由一个参考图片预测,并且因此参考样点仅来自一帧的一个参考区域。B条带(双向预测性的帧)是可以用帧内预测和帧间预测(例如,双向预测或单向预测)进行编解码的图片的条带。B条带的预测单元或预测块可以是从两个参考图片双向预测的,其中每个图片贡献一个参考区域,并且两个参考区域的样点集被加权(例如,具有相等的权重或具有不同的权重)以产生双向预测块的预测信号。如上所述,一个图片的条带是独立编解码的。在一些情况下,一个图片可被编解码为仅一个条带。
如上所述,图片内预测利用图片内空域相邻样点之间的相关性。存在多种帧内预测模式(也被称为“帧内模式”)。在一些示例中,亮度块的帧内预测包括35种模式,包括平面模式、DC模式和33种角度模式(例如,对角线帧内预测模式和与对角线帧内预测模式相邻的角度模式)。帧内预测的35种模式的索引如下面的表1所示。在其他示例中,可以定义更多帧内模式,包括可能尚未由33种角度模式表示的预测角度。在其它示例中,与角度模式相关联的预测角度可以不同于HEVC中使用的那些预测角度。
帧内预测模式 相关名称
0 INTRA_PLANAR
1 INTRA_DC
2..34 INTRA_ANGULAR2..INTRA_ANGULAR34
表1–帧内预测模式和关联名称的规范
图片间预测使用图片之间的时域相关性,以便推导出针对图像样点块的运动补偿预测。使用平移运动模型,由运动矢量(Δx,Δy))指示块在先前解码的图片(参考图片)中的位置,其中相对于当前块的位置,Δx指定参考块的水平位移,而Δy指定参考块的垂直位移。在一些情况下,运动矢量(Δx,Δy)可以是整数样点精度(也被称为整数精度),在这种情况下,运动矢量指向参考帧的整数像素网格(或整数像素采样网格)。在一些情况下,运动矢量(Δx,Δy)可以是分数样点精度(也被称为分数像素精度或非整数精度),以更准确地捕获潜在的对象的运动,而不受限于参考帧的整数像素网格。运动矢量的精度可以由运动矢量的量化级别来表示。例如,量化级别可以是整数精度(例如,1像素)或分数像素精度(例如,1/4像素、1/2像素或其他子像素值)。当对应的运动矢量具有分数样点精度时,对参考图片应用插值以推导出预测信号。例如,可以对整数位置处可用的样点进行滤波(例如,使用一个或多个插值滤波器)以估计分数位置处的值。先前解码的参考图片由参考图片列表的参考索引(refIdx)指示。运动矢量和参考索引可以被称为运动参数。可以执行两种图片间预测,包括单向预测和双向预测。
在使用双预测的帧间预测中,两组运动参数(Δx0,y0,refIdx0和Δx1,y1,refIdx1)用于生成两个运动补偿预测(来自同一参考图片或者可能来自不同的参考图片)。例如,对于双向预测,每个预测块使用两个运动补偿预测信号,并且生成B个预测单元。然后将这两个运动补偿预测组合以得到最终的运动补偿预测。例如,可以通过求平均来组合两个运动补偿预测。在另一个示例中,可以使用加权预测,在这种情况下,可以对每个运动补偿预测应用不同的权重。可用于双向预测的参考图片存储在两个单独的列表(表示为列表0和列表1)中。可以使用运动估计过程在编码器处推导出运动参数。
在使用单向预测的帧间预测中,一组运动参数集合(Δx0,y0,refIdx0)用于从参考图片生成运动补偿预测。例如,对于单向预测,每个预测块最多使用一个运动补偿预测信号,并且生成P个预测单元。
PU可以包括与预测过程相关的数据(例如,运动参数或其他合适的数据)。例如,当使用帧内预测对PU进行编码时,PU可以包括描述PU的帧内预测模式的数据。作为另一示例,当使用帧间预测对PU进行编码时,PU可以包括定义PU的运动矢量的数据。定义PU的运动矢量的数据可以描述,例如,运动矢量的水平分量(Δx))、运动矢量的垂直分量(Δy)、运动矢量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动矢量指向的参考图片、参考索引、运动矢量的参考图片列表(例如,列表0、列表1或列表C)或其任何组合。
在使用帧内和/或帧间预测执行预测之后,编码设备104可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算对应于PU的残差值。残差值可以包括正在被编解码的当前像素块(PU)和用于预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,发出帧间预测或帧内预测)之后,编码器引擎106可以通过从当前块减去由预测单元生成的预测块来生成残差块。残差块包括量化当前块的像素值与预测块的像素值之间的差的一组像素差值。在一些示例中,可以以二维块格式(例如,像素值的二维矩阵或阵列)来表示残差块。在这样的示例中,残差块是像素值的二维表示。
使用块变换对在执行预测之后可能剩余的任何残差数据进行变换,块变换可以基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数或其任何组合。在一些情况下,可以对每个CU中的残差数据应用一个或多个块变换(例如,大小为32×32、16×16、8×8、4×4或其他合适的大小)。在一些实施例中,TU可以用于由编码器引擎106实现的变换和量化过程。具有一个或多个PU的给定CU也可以包括一个或多个TU。如下面进一步详细描述的,可以使用块变换将残值变换成变换系数,然后可以使用TU对其进行量化和扫描以产生用于熵编解码的序列化变换系数。
在一些实施例中,在使用CU的PU进行帧内预测性的或帧间预测性的编解码之后,编码器引擎106可以计算CU的TU的残差数据。PU可以包括空域(或像素域)中的像素数据。在应用块变换之后,TU可以包括变换域中的系数。如前所述,残差数据可以对应于未编码的图片的像素与对应于PU的预测值之间的像素差值。编码器引擎106可以形成包括CU的残差数据的TU,然后可以变换TU以产生CU的变换系数。
编码器引擎106可以执行变换系数的量化。量化通过对变换系数进行量化来提供进一步的压缩以减少用于表示系数的数据量。例如,量化可以减少与一些或全部系数相关联的比特深度。在一个示例中,具有n比特值的系数可以在量化期间向下舍入到m比特值,其中n大于m。
一旦执行量化,编解码的视频比特流包括量化的变换系数、预测信息(例如,预测模式、运动矢量、块矢量等)、划分信息和任何其他合适的数据,例如其他语法数据。然后编解码的视频比特流的不同元素可以由编码器引擎106进行熵编码。在一些示例中,编码器引擎106可利用预定义的扫描顺序来扫描量化的变换系数以产生可以被熵编码的序列化矢量。在一些示例中,编码器引擎106可以执行自适应扫描。在扫描量化的变换系数以形成矢量(例如,一维矢量)之后,编码器引擎106可以对该矢量进行熵编码。例如,编码器引擎106可以使用上下文自适应可变长度编解码、上下文自适应二进制算术编解码、基于语法的上下文自适应二进制算术编解码、概率间隔划分熵编解码或另一合适的熵编码技术。
如前所述,HEVC比特流包括一组NAL单元,包括VCL NAL单元和非VCL NAL单元。VCLNAL单元包括形成编解码的视频比特流的编解码的图片数据。例如,在VCL NAL单元中存在形成编解码的视频比特流的比特序列。除其他信息外,非VCL NAL单元还可以包含具有与编解码的视频比特流相关的高级别信息的参数集。例如,参数集可以包括视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。参数集的目标的示例包括比特率效率、抗误码性和提供系统层接口。每个条带参考单个活动的PPS、SPS和VPS以访问解码设备112可将其用于解码条带的信息。可以为每个参数集编解码标识符(ID),包括VPS ID、SPS ID和PPS ID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每个条带标头包括PPS ID。使用ID,可以针对给定条带识别活动的参数集。
PPS包括应用于给定图片中所有条带的信息。因此,图片中的所有条带参考相同的PPS。不同图片中的条带也可以参考相同的PPS。SPS包括应用于同一编解码的视频序列(CVS)或比特流中的所有图片的信息。如前所述,编解码的视频序列是一系列接入单元(AU),该接入单元以基本层中的随机接入点图片(例如,瞬时解码参考(IDR)图片或断开链路接入(BLA)图片或者其他适当的随机接入点图片)开始并且具有某些属性(如上所述),直到并且不包括具有基本层中的随机接入点图片并且具有某些属性(或者比特流结尾)的下一个AU。在编解码的视频序列内,SPS中的信息可能不随图片的改变而改变。编解码的视频序列中的图片可以使用相同的SPS。VPS包括应用于编解码的视频序列或比特流内的所有层的信息。VPS包括具有应用于整个编解码的视频序列的语法元素的语法结构。在一些实施例中,VPS、SPS或PPS可以与编码的比特流一起在带内发送。在一些实施例中,VPS、SPS或PPS可以在与包含编解码的视频数据的NAL单元分开的传输中在带外发送。
视频比特流还可以包括补充增强信息(SEI)消息。例如,SEI NAL单元可以是视频比特流的一部分。在一些情况下,SEI消息可以包含解码过程不需要的信息。例如,SEI消息中的信息对于解码器解码比特流的视频图片可能不是必需的,但是解码器可以使用该信息来改进图片的显示或处理(例如,解码输出)。SEI消息中的信息可以是嵌入的元数据。在一个说明性示例中,解码器侧实体可以SEI消息中的信息以提高内容的可视性。在一些实例中,某些应用标准可强制要求在比特流中存在此类SEI消息,使得可以为符合该应用标准(例如,用于帧兼容平面立体3DTV视频格式的帧打包SEI消息的承载,视频的每一帧携带SEI消息的情况,处理恢复点SEI消息,在DVB中使用泛扫描扫描矩形SEI消息,以及许多其他示例)的所有设备带来质量改进。
编码设备104的输出110可以通过通信链路120将构成编码的视频比特流数据的NAL单元发送到接收设备的解码设备112。解码设备112的输入114可以接收NAL单元。通信链路120可以包括由无线网络、有线网络或有线和无线网络的组合提供的信道。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何合适的无线网络(例如,因特网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi-直接、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可包括任何有线接口(例如,光纤、以太网、电力线以太网、同轴电缆上的以太网、数字信号线(DSL)等)。可以使用各种装备(例如基站、路由器、接入点、网桥、网关、交换机等)来实现有线网络和/或无线网络。可以根据诸如无线通信协议之类的通信标准来调制编码的视频比特流数据,并将其发送到接收设备。
在一些示例中,编码设备104可以将编码的视频比特流数据存储在存储108中。输出110可从编码器引擎106或从存储108检索编码的视频比特流数据。存储108可以包括各种分布式或本地访问的数据存储介质中的任何一种。例如,存储108可以包括硬盘驱动器、存储盘、闪存、易失性或非易失性存储器、或者用于存储编码的视频数据的任何其他合适的数字存储介质。存储108还可以包括用于存储参考图片以供帧间预测中使用的解码图片缓冲器(DPB)。在另外的示例中,存储108可以对应于可以存储由源设备生成的编码的视频的文件服务器或另一中间存储设备。在这种情况下,包括解码设备112的接收设备可以经由流式传输或下载从存储设备访问存储的视频数据。文件服务器可以是能够存储编码的视频数据并将该编码的视频数据发送到接收设备的任何类型的服务器。示例文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。接收设备可以通过任何标准数据连接(包括互联网连接)访问编码的视频数据。这可以包括适于访问存储在文件服务器上的编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储108的编码的视频数据的传输可以是流传输、下载传输或其组合。
解码设备112的输入114接收编码的视频比特流数据,并且可以将视频比特流数据提供给解码器引擎116,或者提供给存储118以供解码器引擎116稍后使用。例如,存储118可以包括用于存储参考图片以供帧间预测中使用的DPB。包括解码设备112的接收设备可以经由存储108接收要解码的编码的视频数据。可以根据诸如无线通信协议的通信标准调制编码的视频数据,并且将其发送到接收设备。用于发送编码的视频数据的通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,例如局域网、广域网或诸如互联网的全球网络。通信介质可包括路由器、交换机、基站或可以用于促进从源设备到接收设备的通信的任何其它装备。
解码器引擎116可以通过熵解码(例如,使用熵解码器)和提取构成编码的视频数据的一个或多个编解码的视频序列的元素来解码编码的视频比特流数据。然后解码器引擎116可以对编码的视频比特流数据重新缩放并且执行逆变换。然后,残差数据被传递到解码器引擎116的预测阶段。然后,解码器引擎116预测像素块(例如,PU)。在一些示例中,预测被添加到逆变换的输出(残差数据)。
解码设备112可以将解码的视频输出到视频目的设备122,视频目的设备122可以包括用于向内容的消费者显示解码的视频数据的显示器或其他输出设备。在一些方面中,视频目的设备122可以是包括解码设备112的接收设备的一部分。在一些方面中,视频目的设备122可以是除接收设备之外的单独设备的一部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112还可以包括实现上述编解码技术所必需的其他硬件或软件,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可以被集成为相应设备中的组合编码器/解码器(编解码器)的一部分。下面参考图10描述编码设备104的具体细节的示例。下面参考图11描述解码设备112的具体细节的示例。
图1所示的示例系统是可以在本文使用的一个说明性示例。使用本文描述的技术来处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管本公开的技术通常由视频编码设备或视频解码设备来执行,但是这些技术也可以由组合的视频编码器-解码器(通常被称为“编解码器”)来执行。此外,本公开的技术也可以由视频预处理器执行。源设备和接收设备仅仅是此类编解码设备的示例,其中源设备生成编解码的视频数据以传输到接收设备。在一些示例中,源设备和接收设备可以以基本对称的方式操作,使得每个设备包括视频编码和解码组件。因此,示例系统可支持视频设备之间的单向或双向视频发送,例如,用于视频流式传输、视频回放、视频广播或视频电话。
HEVC标准的扩展包括多视图视频编解码扩展(被称为MV-HEVC)和可缩放视频编解码扩展(被称为SHVC)。MV-HEVC和SHVC扩展共享分层编解码的概念,在编码的视频比特流中包括不同的层。编解码的视频序列中的每一层都由唯一的层标识符(ID)寻址。层ID可以存在于NAL单元的标头中,以识别与NAL单元相关联的层。在MV-HEVC中,不同的层可以表示视频比特流中同一场景的不同视图。在SHVC中,提供了不同的可缩放层,其以不同的空域分辨率(或图片分辨率)或不同的重建保真度表示视频比特流。可缩放层可以包括基本层(层ID=0)和一个或多个增强层(层ID=1、2、…n)。基本层可以符合HEVC的第一版本的配置文件,并且表示比特流中的最低可用层。与基本层相比,增强层具有增加的空域分辨率、时域分辨率或帧速率和/或重建保真度(或质量)。增强层是按层次组织的,并且可以(或可以不)依赖于较低的层。在一些示例中,可以使用单个标准编解码器对不同层进行编解码(例如,使用HEVC、SHVC或其他编解码标准对所有层进行编码)。在一些示例中,可以使用多标准编解码器对不同层进行编解码。例如,可以使用AVC对基本层进行编解码,而可以使用HEVC标准的SHVC和/或MV-HEVC扩展对一个或多个增强层进行编解码。
通常,层包括VCL NAL单元集合和对应的非VCL NAL单元集合。NAL单元被分配特定的层ID值。从层可以依赖于较低层的意义上讲,层可以是按层次的。层集是指在比特流中表示的自包含的层的集合,这意味着层集中的层可以依赖于解码过程中的层集中的其他层,但不依赖于任何其他层进行解码。因此,层集中的层可以形成可以表示视频内容的独立比特流。层集中的层的集合可以通过子比特流提取过程的操作从另一个比特流获取。层集可以对应于解码器想要根据某些参数进行操作时要解码的层集合。
图像顺序计数(POC)可以用于视频编解码标准中以识别图片的显示顺序。尽管存在一个编解码的视频序列中的两个图片可能具有相同POC值的情况,但它通常不会发生在编解码的视频序列内。当在比特流中存在多个编解码的视频序列时,具有相同POC值的图片可以在解码顺序方面彼此更接近。图片的POC值可用于参考图片列表构建、如在HEVC中的参考图片集的导出和运动矢量缩放。
如前所述,可以在视频编解码过程中使用各种预测模式,包括帧内预测和帧间预测。如前所述,视频编解码器可以根据树结构(例如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)来划分编解码块(例如CTU)以产生两个或多个子块,其中两个或多个子块可以是独立编解码的。例如,由使用树结构划分的编解码块产生的不同子块可以用平面模式、DC模式等进行编解码,而不继承对不同子块的公共预测模式要求。
在一些示例中,帧内子分区或帧内子分区(ISP)模式可用作将编解码块分割成两个或多个分区的编解码工具。在一些情况下,除了规则或树划分结构之外,还可以使用ISP模式。例如,可以使用QTBT结构或MTT结构将图片分割成成编解码单元或块,并且可以使用ISP进一步分割编解码单元或编解码块。在ISP模式中,由分割编解码块而产生的两个或多个分区共享相同的帧内预测模式。例如,编解码块的两个或更多个分区可以是单独编码或解码的(例如,按顺序),但是对于两个或多个分区中的每个分区使用相同的帧内预测模式。例如,在一些实现方式中,如果ISP模式被启用或被选择应用于编解码块,则编解码块可以被划分,并且相同的帧内预测模式可以被应用于每个分区。
在各种示例中,取决于编解码块的尺寸或维度,ISP模式可以将诸如亮度帧内预测块的编解码块该分为两个或四个ISP分区(或ISP子块或子块)。在一些示例中,该划分基于编解码块的维度可以是垂直的或水平的。编解码块被分割成ISP子块的数量可以基于ISP子块中将存在的样点的数量。例如,在一些实现方式中,ISP子块可以需要具有最小样点数量,例如16个样点或其他样点数量。因此,如果将块划分成四个ISP子块可以导致四个子块中的每一个子块至少具有最小样点数量(例如,16个样点),则ISP模式可决定将块分割成四个ISP子块。然而,如果将块划分成四个ISP子块可能不会导致四个子块中的每一个子块至少具有最小样点数量(例如,16个样点),则ISP模式可以将块分割成两个ISP子块,如果这两个子块中的每一个子块至少具有最小样点数量(例如,16个样点)。ISP子块在下文中将被称为子块,如上所述,其可以不同于可以使用规则或树划分结构(例如,使用QTBT结构或MTT结构)生成的子块。
图2是示出了将编解码块分割成子块的示例的框图。可以在ISP模式中将当前块202分割成多个子块。使用ISP分割块所产生的子块也被称为ISP子块或ISP块。当前块202被示出具有宽度W和高度H的维度。在一个示例中,当前块202可以具有与H×W对应的多个样点。例如,维度为4×8的当前块202可以具有32个样点。如果使用ISP模式将当前块202分割成四个子块,则四个所得子块中的每一个子块将具有32个样点的四分之一,即,每个子块8个样点。如上所述,在最小样点数量为16的情况下,这样的划分将违反每个子块至少具有16个样点的要求。因此,对于上述H和W的值,当前块202被分割成两个子块,每个子块具有32个样点的一半(即16个样点),满足了最小样点要求。应注意,出于类似的原因,维度为8×4的块也可被划分为两个子块,以满足每个子块中16个样点的最小样点要求。
如图2所示,当前块202的水平ISP分割可以产生两个ISP块204a和204b,每个ISP块204a和204b具有与当前块202相同的宽度(W)和当前块202一半的高度(H/2)。类似地,当前块202的垂直ISP分割可以产生两个ISP块206a和206b,每个ISP块206a和206b具有与当前块202相同的高度(H)和当前块202的一半的宽度(W/2)。
图3是示出了将编解码块分割成四个子块的示例的框图。可以在ISP模式中将当前块302划分成四个子块或ISP块。当前块302被示出具有宽度W和高度H的维度。将当前块302分割成四个子块的示例可以适用于当被分割成四个子块时其可在每个所得子块中产生至少16个样点的当前块302的维度。例如,在每个子块的最小样点数量为16的情况下,当前块302可以具有除上面关于图2所述的4×8或8×4以外的维度(例如,大于4×8或8×4的维度)。当前块302的4×4的维度(在一些实施方式中将是编解码块的最小允许尺寸)也可以被排除在使用ISP模式分割成子块的范围之外。
在一个示例中,当前块302的水平ISP分割可以产生四个ISP块304a、304b、304c和304d,每个ISP块具有与当前块202相同的宽度(W)和当前块202四分之一的高度(H/4)。类似地,当前块302的垂直ISP划分可以产生四个ISP块306a、306b、306c和306d,每个ISP块具有与当前块202相同的高度(H)相同和当前块302四分之一的宽度(W/4)。
在ISP模式的示例实现方式中,一旦已经为块确定了分区的数量(例如,两个或四个)和指示分区类型的ISP分割类型(例如,水平或垂直分割),则可以相应地分割当前块或编解码块,并且可以按序处理得到的ISP子块。例如,可以顺序地处理由对编解码块应用ISP模式而产生的两个或多个子块。如前面所讨论的,处理子块可以包括使用帧内预测来预测每个子块,应用变换编解码,然后重建子块。
在一些实现方式中,各种语法元素可以用于对ISP模式进行编解码和信令通知。使用ISP模式对单元进行编解码的语法表如表2所示,并在下面被进一步讨论。根据示例实现方式,编解码块的一个比特(在一些情况下被称为intra_subpartitions_mode_flag[x0][y0])可以用于信令通知编解码块是否被分割成ISP块。第二比特(在一些情况下被称为intra_subpartitions_split_flag[x0][y0])可用于指示将对编解码块执行的ISP分割类型,例如,分割类型是水平的还是垂直的。
在一些示例中,不同类别的处理顺序可用于处理通过使用ISP模式分割编解码块而获取的ISP块。处理顺序可以基于帧内预测模式和用于编解码块的分割类型。例如,在处理从分割编解码块获取的两个或多个ISP块时,可以使用两种不同类别的处理顺序(被称为正常顺序和反向顺序)。
按照正常顺序,要处理的第一子分区是包含编解码块的左上样点的子分区,然后继续向下(在水平分割的情况下)或向右(在垂直分割的情况下)。例如,在图2中,用于水平分割的正常处理顺序可以包括首先处理ISP块204a,然后向下继续处理ISP块204b。类似地,在图2中,用于垂直分割的正常处理顺序可以包括首先处理ISP块206a,然后向右继续处理ISP块206b。在图3中,用于水平分割的正常处理顺序可以包括首先处理ISP块304a,然后向下继续以顺序处理ISP块304b、304c和304d。类似地,在图3中,用于垂直分割的正常处理顺序可以包括首先处理ISP块306a,然后向右继续以顺序处理ISP块306b、306c和306d。
反向处理顺序可以包括从包含编解码块的左下样点的子分区开始并继续向上(在水平分割的情况下)或从包含编解码块的右上样点的子分区开始并继续向左(在垂直分割的情况下)。例如,在图2中,用于水平分割的反向处理顺序可以包括首先处理ISP块204b,然后向上继续处理ISP块204a。类似地,在图2中,用于垂直分割的反向处理顺序可以包括首先处理ISP块206b,然后向左继续处理ISP块206a。在图3中,用于水平分割的反向处理顺序可以包括首先处理ISP块304d,然后向上继续以顺序处理ISP块304c、304b和304a。类似地,在图3中,用于垂直分割的反向处理顺序可以包括首先处理ISP块306d,然后向左继续以顺序处理ISP块306c、306b和306a。
JVET工作草案4(WD4,可从http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M1001-v1.zip获得)中使用了仅使用正常处理顺序的ISP变体,其全部内容通过引用并入本文并用于所有目的。应注意,术语子块(如关于ISP使用的)、子分区(如关于ISP使用的)和ISP块在本文中相互交换地使用,并且所有这些术语都指通过使用ISP模式对编解码块进行划分而获取的块。
JVET WD4中与ISP模式相关联的语法和语义的示例如下表2所示。使用斜体文本强调的语法对应于用于位于图片的(x,y)坐标[x0][y0]处的编解码单元的ISP模式。由编码器为参考线候选选择以预测编解码单元的参考线索引由语法元素intra_luma_ref_idx指示。语法元素cbWidth和cbHeight对应于编解码单元的宽度和高度维度(例如,如图2和图3所示的用于相应的当前块202和203的宽度W和高度H)。变量MaxTbSizeY是指最大变换块大小,并用作cbWidth和cbHeight维度的大小阈值。如前所述,intra_subpartitions_mode_flag[x0][y0]是用于信令通知是否使用ISP模式将编解码单元分割成子块(或ISP块)的语法元素。语法元素intra_subpartitions_split_flag[x0][y0]用于指示ISP分割类型(将执行的分割类型),例如,是使用水平分割还是垂直分割来分割编解码块。
Figure BDA0003185832460000261
Figure BDA0003185832460000271
表2-编解码单元语法表
从表2中可以看出,当至少满足条件(cbWidth<=MaxTbSizeY||cbHeight<=MaxTbSizeY)时,即当cbWidth或cbHeight(或两者)中的任何一个小于MaxTbSizeY时,信令通知intra_subpartitions_mode_flag[x0][y0]。另一方面,当至少满足条件cbWidth<=MaxTbSizeY和cbHeight<=MaxTbSizeY时,即cbWidth和cbHeight都小于MaxTbSizeY时,信令通知intra_subpartitions_split_flag[x0][y0]。因此,在使用表2中指定的语义的实现方式中,当cbWidth或cbHeight中的一个(而不是两个)大于MaxTbSizeY时,仅信令通知intra_subpartitions_mode_flag[x0][y0],而不信令通知intra_subpartitions_split_flag[x0][y0]。如下面将进一步解释的,当不信令通知intra_subpartitions_mode_flag[x0][y0]时,intra_subpartitions_mode_flag[x0][y0]的值被推断为等于0;并且类似地,当不信令通知intra_subpartitions_split_flag[x0][y0]时,intra_subpartitions_split_flag[x0][y0]的值被推断为等于0。
除了intra_subpartitions_mode_flag[x0][y0]和intra_subpartitions_split_flag[x0][y0]之外,还定义了变量IntraSubPartitionsSplitType,它指定用于当前亮度编解码块的分割类型。IntraSubPartitionsSplitType的值和对应名称关联如下表3所示。
IntraSubPartitionsSplitType IntraSubPartitionsSplitType的名称
0 ISP_NO_SPLIT
1 ISP_HOR_SPLIT
2 ISP_VER_SPLIT
表3–IntraSubPartitionsSplitType的名称关联
从表3中可以看出,IntraSubPartitionsSplitType是用于指示是否没有ISP分割(IntraSubPartitionsSplitType=0)、是否应用水平ISP分割(IntraSubPartitionsSplitType=1)或者是否应用垂直ISP分割(IntraSubPartitionsSplitType=2)的变量。当没有ISP分割(IntraSubPartitionsSplitType=0)时,例如,根据QTBT、MTT等,规则变换树解析结构用于划分块。对于水平或垂直ISP分割的情况,变量NumIntraSubPartitions用于指示子块或ISP块的数量(例如,如图2中的2个ISP块或如图3中的4个ISP块)。对于对应于编解码单元的变换单元,依次解析对应数量的子块。下表4提供了使用ISP模式的变换树的语法。
Figure BDA0003185832460000281
表4-变换树的语法表
Figure BDA0003185832460000291
基于与ISP模式相关联的语法元素和变量的以上描述,以下语义可用于将ISP应用于编解码单元:
intra_subpartitions_mode_flag[x0][y0]等于1指定当前帧内编解码单元被划分为NumIntraSubPartitions[x0][y0]个矩形变换块子分区。intra_subpartitions_mode_flag[x0][y0]等于0指定当前帧内编解码单元不被划分为矩形变换块子分区。
当intra_subpartitions_mode_flag[x0][y0]不存在时,它被推断为等于0。
intra_subpartitions_split_flag[x0][y0]指定帧内子分区分割类型是水平的还是垂直的。当intra_subpartitions_split_flag[x0][y0]不存在时,它被推断为等于0。
变量IntraSubPartitionsSplitType指定用于当前亮度编解码块的分割类型,如表3所示。如下导出IntraSubPartitionsSplitType:
–如果intra_subpartitions_mode_flag[x0][y0]等于0,则IntraSubPartitionsSplitType被设置为等于0。
–否则,IntraSubPartitionsSplitType被设置为等于1+intra_subpartitions_split_flag[x0][y0]。
从以上语义可以看出,intra_subpartitions_mode_flag[x0][y0]等于1的值可以用于指定编解码单元被划分成由变量NumIntraSubPartitions[x0][y0]指示的多个子块,其中这些子块是例如图2和图3所示的ISP块的矩形变换块子分区。的intra_subpartitions_mode_flag[x0][y0]等于0的值可以用于指定不使用ISP模式将编解码单元划分成矩形变换块子分区。在一些实现方式中,当对于编解码单元不存在intra_subpartitions_mode_flag[x0][y0]时,编解码单元的intra_subpartitions_mode_flag[x0][y0]的值被推断为等于0。
如前所述,intra_subpartitions_split_flag[x0][y0]可以用于指定ISP分割类型是水平的还是垂直的。在一些实现方式中,当对于编解码单元不存在intra_subpartitions_split_flag[x0][y0]时,intra_subpartitions_split_flag[x0][y0]的值被推断为等于0。
如参考上文表3所述,变量IntraSubPartitionsSplitType指定用于编解码块的分割类型。可以如下导出此变量IntraSubPartitionsSplitType的值:如果intra_subpartitions_mode_flag[x0][y0]的值等于0,则IntraSubPartitionsSplitType被设置为等于0;否则,IntraSubPartitionsSplitType的值被设置为等于1+intra_subpartitions_split_flag[x0][y0]。
在一些实现方式中,可以如下导出用于指定编解码单元被划分成的子块的数量的变量NumIntraSubPartitions:如果变量IntraSubPartitionsSplitType具有等于0、指示ISP_NO_SPLIT的值,则变量NumIntraSubPartitions的值被设置为等于1(1是指示没有ISP被应用于编解码单元的默认值)。否则,如果变量IntraSubPartitionsSplitType具有等于1(水平分割ISP_HOR_SPLIT)或2(垂直分割ISP_VER_SPLIT)的值,则如参考图2和图3所解释的,基于编解码单元或当前块的维度,变量NumIntraSubPartitions的值被设置为等于2或4。例如,如果当前块202是4×8块(cbWidth等于4,cbHeight等于8)或8×4块(cbWidth等于8,cbHeight等于4),则NumIntraSubPartitions被设置为2,以基于可由变量IntraSubPartitionsSplitType指示的水平或垂直分割实现将当前块202分割成两个ISP块,每个ISP块具有16个样点的最小数量。另一方面,如果编解码单元的维度不是(大于)8×4、4×8和4×4块大小,则NumIntraSubPartitions被设置为等于4(例如,如参考基于可由变量IntraSubPartitionsSplitType指示的水平或垂直分割将图3的当前块302分割成四个ISP块所讨论的)。
如参考表2-4所述,基于上述语义和语法的ISP模式的实现方式中存在几个问题。在一个示例中(例如,基于VVC),如上文参考表4的变换树语法结构所讨论的,当亮度编解码块(CB)的宽度(cbWidth)或高度(cbHeight)大于最大变换块大小(被表示为MaxTbSizeY,其中Y指示亮度样点)时,编解码块被分割成两个或更多个变换单元。注意,一些实现方式可以包括MaxTbSizeY的固定值(例如,JVET WD4为MaxTbSizeY指定64的固定值)。对于一些实现方式或未来的标准,允许MaxTbSizeY的值成为另一个固定值(例如,为32的值或其他值)或成为变量是可能的。在一些示例中,MaxTbSizeY的值可以在比特流中被信令通知,或者可以从比特流中的其他语法元素被推导出。因此,在确定上述语法元素的信令时,cbWidth和cbHeight与MaxTbSizeY的比较可以基于MaxTbSizeY的固定值或可变值。
如前所述,当编解码块宽度(cbWidth)或编解码块高度(cbHeight)小于或等于最大变换块大小MaxTbSizeY时,或者如果cbWidth和cbHeight都小于或等于MaxTbSizeY时,为编解码块信令通知ISP模式的模式标志intra_subpartitions_mode_flag。因此,在cbWidth或cbHeight中的一个大于MaxTbSizeY且另一个小于MaxTbSizeY的示例中,信令通知intra_subpartitions_mode_flag(例如,用指示针对编解码块启用ISP模式的值,例如用为1的值)。在这种实现方式中(参考回到表2中所示的编解码单元的语法),由于cbWidth或cbHeight中的一个大于MaxTbSizeY,所以不信令通知分割标志的语法元素intra_subpartitions_split_flag。
当没有为编解码块信令通知intra_subpartitions_split_flag时,根据现有实现方式,intra_subpartitions_split_flag被推断为等于0。根据上面提供的语义,编解码块的分割类型由变量IntraSubPartitionsSplitType的值提供,该值被设置为等于1+intra_subpartitions_split_flag。因此,当intra_subpartitions_split_flag被推断为0时,变量IntraSubPartitionsSplitType被推导出等于1。从显示IntraSubPartitionsSplitType的名称关联的表3中,IntraSubPartitionsSplitType具有为1的值对应于水平分割(ISP_HOR_SPLIT)。如前所述,IntraSubPartitionsSplitType等于1(对应于水平分割)的推导是针对cbWidth或cbHeight中的一个大于MaxTbSizeY且另一个小于MaxTbSizeY的情况。值得注意的是,无论cbWidth大于MaxTbSizeY(且cbHeight小于MaxTbSizeY)还是cbHeight大于MaxTbSizeY(且cbWidth小于MaxTbSizeY),分割类型是水平分割的这种推导是相同的。无论编解码块的两个维度(cbWidth或cbHeight)中的哪一个大于MaxTbSizeY,IntraSubPartitionsSplitType的值被推导出等于1都可能导致不期望的效果。
例如,当intra_subpartitions_mode_flag等于1并且编解码块的cbWidth或cbHeight大于MaxTbSizeY时,对于cbWidth或cbHeight的一些值,分割类型总是推导出为水平的可能不是分割类型的最佳选择。为了说明,考虑了一个示例,其中MaxTbSizeY等于32,cbWidth等于64,并且cbHeight等于32。在该示例中,编解码块的形状将类似于图2所示的当前块202的形状,其中宽度W大于高度H。在这种情况下,ISP垂直分割将是最佳选择,其可产生各个宽度和高度均小于或等于MaxTbSizeY的子块(类似于ISP块206a和206b的形状)。例如,cbWidth等于64且cbHeight等于32的编解码块的到两个子分区的ISP垂直分割,将产生两个子块,每个子块的宽度等于32、高度等于32,其中宽度和高度都等于为32的MaxTbSizeY。然而,在如上所解释的当前实现方式中,基于intra_subpartitions_split_flag被推断为值是0以及相应地IntraSubPartitionsSplitType被推导出等于1,将推断出ISP水平分割。在cbWidth等于64且cbHeight等于32的编解码块到两个子分区的示例中的ISP水平分割将产生两个子块,每个子块的宽度等于64且高度等于16(类似于ISP块204a和204b的形状),其中两个子块的高度都将违反大于为32的MaxTbSizeY的要求。因此,需要能够克服与不论编解码块的cbWidth和cbHeight的具体值就推断水平分割决定相关联的上述不期望的结果的解决方案。
ISP模式的现有实现方式中的另一个问题可以对应于通过分割编解码块获取的子块的一个或多个维度。考虑另一说明性示例来解释与子块的宽度大于最大大小阈值相关联的问题。在这样的示例中,针对编解码块假设如下:MaxTbSizeY等于16,cbWidth等于32,并且cbHeight等于64。如前所述,值的这种组合将导致cbWidth和cbHeight都大于MaxTbSizeY,这将导致决定启用ISP模式来分割编解码块。由于cbWidth和cbHeight中的至少一个大于MaxTbSizeY(在此情况下,实际上cbWidth和cbHeight均大于MaxTbSizeY),因此在当前实现方式中,intra_subpartitions_split_flag不被信令通知并且因此被推断为等于0,从而导致IntraSubPartitionsSplitType被推导出为1,对应于编解码块的ISP水平分割。在这种情况下,考虑到如前面所解释的块维度,子分区的数量可以是4,因此NumIntraSubPartitions被推导出为4。从水平分割获取的四个结果子块(类似于图3的示例,通过使用水平分割来分割当前块302来获取四个ISP块304a-304d)将每个具有32的宽度和16的高度。因此,每个子块的宽度为32将意味着每个子块具有大于为16的MaxTbSizeY的宽度。如前所述,不希望具有宽度大于最大变换块大小MaxTbSizeY的子块。相应地,还需要ISP解决方案,其中通过对编解码块应用ISP分割获取的子块的宽度和高度维度不超过最大变换块大小MaxTbSizeY的大小阈值。
与现有实现方式相关联的另一个问题涉及在利用虚拟管线数据单元(VPDU)的编码器或解码器设计中ISP模式的使用。VPDU是图片或视频帧中不重叠的小区(cell)。例如,VPDU可以是图片中不重叠的M×M-亮度(L)/N×N-色度(C)单元。在硬件解码过程的一些示例中,连续的VPDU可以由多个处理/解码管线阶段并行处理(例如,不同的解码管线阶段同时处理不同的VPDU)。为了支持并行处理,每个VPDU可以包括可以被独立处理的编解码单元。例如,可以在使用VPDU处理编解码单元的不同管线阶段中执行诸如重建、变换和预测的处理阶段。在一些情况下,在一些管线中,VPDU大小可以与缓冲器大小大致成比例。例如,VPDU大小可以被设置为变换块(TB)大小的尺寸。在一些示例中,只能独立地处理VPDU的处理阶段(例如变换或逆变换)的子集。
在VVC中,VPDU的设计选择包括64×64亮度样点的大小,其中最大变换块大小MaxTbSizeY可以是64个样点。当使用划分方案时,一些实现方式可以包括一个或多个禁止划分边界跨越VPDU边界的约束,以便支持上述独立处理能力。在VPDU的大小每个都为64×64个样点的一个说明性示例中,可以使用能够处理64×64个样点单元的管线在硬件中实现VPDU。在这样的示例中,一个或多个约束可以防止对大于64×64样点的编解码单元的划分。这样的约束可以确保仅允许使用VPDU处理可以被容纳在VPDU中而不被划分的编解码块。JVET-L1002包括对其中使用VPDU划分编解码单元的这些约束和其他约束的示例。
在ISP模式的当前实现方式中,有可能具有大小超过64×64边界的编解码单元。例如,在VVC中支持一些大小为64×128和128×64的编解码单元。在一些情况下,可以启用ISP模式来指示用于大于64×64边界的这种编解码单元的ISP分割。例如,如果ISP分割被应用于64×128或128×64的这种编解码单元,以产生小于64×64边界的子块,则这种子块可以被容纳在VPDU内以供处理。如上所述,同一编解码单元的不同子块可能不支持不同VPDU中的独立处理。因此,在单独的VPDU中处理不同的子块(通过划分相同的编解码单元获取)是不可取的,并且可能违反对跨越VPDU边界的编解码单元的限制。由于当前的实现方式可以允许使用ISP模式对大小大于64×64的编解码单元进行编解码,因此需要在启用ISP模式时不违反VPDU大小约束的解决方案。
本文描述用于改进视频编解码的系统、方法和计算机可读介质。例如,本文描述的系统、方法和计算机可读介质改进帧内子块划分(ISP)模式的设计和使用,并解决现有实现方式中的上述需求。本文描述的各种特征可以被单独使用,或者以任何合适的组合被使用。如前所述,术语帧内子块划分(ISP)、子划分(关于ISP模式使用)、子块帧内预测(关于ISP模式使用)和其他类似术语可在本文中互换使用。
在实现ISP模式的一些示例中,可以以确保为编解码块确定帧内子分区分割标志(在本文中也被称为子分区分割标志)的最佳值的方式来提供用于编解码块的帧内子分区分割标志的语义和/或语法。帧内子分区分割标志的一个说明性示例是上面提到的intra_subpartitions_split_flag。例如,在上述cbWidth或cbHeight中的一个大于MaxTbSizeY(本文也称为“大小阈值”)的情况下,即使intra_subpartitions_split_flag可能不存在,但是intra_subpartitions_split_flag的值被推断为可以导致分割类型变量IntraSubPartitionsSplitType的最佳导出的值。在一些示例中,取决于cbWidth是否大于MaxTbSizeY或cbHeight是否大于MaxTbSizeY,推断intra_subpartitions_split_flag的值,以便使用intra_subpartitions_split_flag的推断值推导出的IntraSubPartitionsSplitType分别指示ISP垂直分割或ISP水平分割。下面提供示出对VVC的JVET WD4的现有语法和/或语义的改变以获取上面提到的intra_subpartitions_split_flag的推断的说明性示例。
在一些示例中,可以提供用于ISP模式的分区结构,以确保通过划分编解码块而获取的子块的维度不违反诸如MaxTbSizeY的大小阈值。例如,可以提供ISP模式,其中任何子块的任何维度(宽度或高度)不超过MaxTbSizeY的值。在一个示例中,当子分区分割类型是水平的或垂直的时,可以实现类似于表4的transform_tree()语法结构(本文也称为“变换树语法结构”)的递归结构。在另一个示例中,当用ISP编解码的编解码块的cbWidth或cbHeight(或cbWidth和cbHeight两者)大于MaxTbSizeY时,修改变量NumIntraSubPartitions(本文也称为“子分区数量”)的值,使得子块的宽度或高度不超过MaxTbSizeY。在另一个示例中,提供intra_subpartitions_mode_flag(本文也称为“子分区模式标志”)的语义或语法以确保子块的维度(宽度或高度或两者)不超过MaxTbSize。在另一个示例中,当编解码块的cbWidth或chHeight大于MaxTbSizeY时,该编解码块被限制为使用ISP编解码进行编解码。下面进一步描述示出以上面的方式对VVC的JVET WD4的现有语法和/或语义的改变以限制子块大小的示例。
在启用ISP模式的一些示例中,可以对可以使用VPDU进行处理的编解码单元实现一个或多个大小约束。在一些示例中,一个或多个大小约束阻止对跨越VPDU边界的编解码单元启用ISP模式。下面提供了示出VVC的JVET WD4的额外的现有语法和/或语义的示例。
图4是示出了可以用使用本文描述的示例语法和/或语义的ISP进行编解码的编解码块的示例的框图。在一些示例中,与启用ISP模式、如果启用ISP模式将应用的分割类型(水平的或垂直的)、ISP子分区的数量等有关的各种决定可以至少部分地基于编解码块的一个或多个维度。以分别对应于编解码块402的宽度和高度的维度cbWidth和cbHeight示出编解码块402。编解码块402可以包括诸如可以使用ISP模式处理的图片的CU或PU(或CB或PB)的编解码块。在一些示例中,编解码块402中的样点数(例如,亮度样点)可以与通过cbWidth×cbHeight获取的编解码块402的大小成比例。在一些示例中,可以基于维度cbWidth和cbHeight与相应大小阈值的关系将ISP模式用于分割编解码块402。
在一些示例中,用于根据变换树结构(或其他划分结构)分割编解码块的变换块可以是方形形状的,其中变换块的最大高度和宽度相同,被称为最大变换块大小MaxTbSizeY。在一些示例中,应用ISP模式来分割编解码块402可以基于相对于MaxTbSizeY的cbWidth和cbHeight维度。在一些示例中,也可以基于MaxTbSizeY来限制通过分割编解码块402(例如,类似于图2和图3中所示的ISP分割)获取的子块或ISP块的维度,其中本文描述的技术用于确保从分割编解码块402获取的子块也不违反对应的大小阈值。在可以使用VPDU对编解码块402进行处理的一些示例中,可以相对于VPDU边界(例如,基于VPDU的最大宽度和/或高度)实现对编解码块402的cbWidth和cbHeight维度的一个或多个约束。下面将进一步详细讨论这些示例和其他示例。
如前所述,可能存在这样的情况,其中对于被指定使用ISP模式进行编解码的编解码块,可以不信令通知intra_subpartitions_split_flag。在一些示例中,如果编解码块402的帧内子分区分割标志(例如,intra_subpartitions_split_flag)不存在,则基于相对于诸如最大变换块尺寸MaxTbSizeY的尺寸阈值的cbWidth和/或cbHeight,帧内子分区分割标志(例如,intra_subpartitions_split_flag)的值可以被推断为第一值或第二值。在一些示例中,要应用于编解码块402的分割类型(垂直的或水平的)可以基于第一值或第二值。
在一些示例中,当cbWidth或cbHeight小于或等于MaxTbSizeY时或者如果cbWidth和cbHeight两者都小于或等于MaxTbSizeY,则可以信令通知编解码块402的ISP模式标志(例如,intra_subpartitions_mode_flag)。因此,在cbWidth或cbHeight中的一个大于MaxTbSizeY且另一个小于MaxTbSizeY的示例中,用值(例如,为1的值指示对编解码块启用ISP模式,或为0的值指示不对编解码块执行ISP模式)信令通知intra_subpartitions_mode_flag。在这种实现方式中,由于cbWidth或cbHeight中的一个大于MaxTbSizeY,因此帧内子分区分割标志intra_subpartitions_split_flag可以不存在或可以不被信令通知。
在一些示例中,当用于编解码块402的ISP模式被启用时(例如,当信令通知intra_subpartitions_mode_flag时),并且帧内子分区分割标志(例如,intra_subpartitions_split_flag)不存在时,则如果cbWidth大于MaxTbSizeY,则对于编解码块402可以推断帧内子分区分割标志(例如,intra_subpartitions_split_flag)等于第一值(例如,为1的值)。在一些示例中,应用通过IntraSubPartitionsSplitType等于1+intra_subpartitions_split_flag(即IntraSubPartitionsSplitType等于2)获取的分割类型的公式可以指示intra_subpartitions_split_flag的值被推断为等于1可以导致垂直分割(例如,如表3中的名称关联所示,IntraSubPartitionsSplitType值2对应于ISP垂直分割ISP_VER_SPLIT)。
另一方面,当用于编解码块402的ISP模式被启用时(例如,当信令通知intra_subpartitions_mode_flag时),并且帧内子分区分割标志(例如,intra_subpartitions_split_flag)不存在时,则如果cbHeight大于MaxTbSizeY,则对于编解码块402可以推断帧内子分区分割标志(例如,intra_subpartitions_split_flag)等于第二值(例如,为0的值)。在一些示例中,应用通过IntraSubPartitionsSplitType等于1+intra_subpartitions_split_flag(即IntraSubPartitionsSplitType等于1)获取的分割类型的公式可以指示在这种情况下intra_subpartitions_split_flag的值被推断为等于0可以导致水平分割(例如,如表3中的名称关联所示,IntraSubPartitionsSplitType值1对应于ISP水平分割ISP_HOR_SPLIT)。
在一些情况下,当用于编解码块402的ISP模式被启用时(例如,当用真值(例如1)信令通知intra_subpartitions_mode_flag时),并且如果cbHeight和cbWidth都不大于MaxTbSizeY,则信令通知帧内子分区分割标志,并且如上所述,intra_subpartitions_split_flag的值指示划分类型是垂直的还是水平的。
现在描述示出了对VVC的JVET WD4的现有语法和/或语义关于intra_subpartitions_split_flag的改变的示例。规范的新增内容以斜体文本显示,删除线文本显示从规范中移除的文本。以下语法用于描述用于在坐标[x0][y0]处存在的编解码块402的上述实现方式,其中以斜体文本突出显示对现有实现方式的改变,删除线突出显示从规范中移除。
intra_subpartitions_split_flag[x0][y0]指定帧内子分区分割类型是水平还是垂直。当intra_subpartitions_split
Figure BDA0003185832460000371
_flag[x0][y0]不存在时,它被推断如下:
–如果cbWidth>MaxTbSizeY,则推断intra_subpartitions_split_flag[x0][y0]
等于1。
–否则,如果cbHeight>MaxTbSizeY,则推断intra_subpartitions_split_flag[x0][y0]等于0。
如下导出IntraSubPartitionsSplitType:
–如果intra_subpartitions_mode_flag[x0][y0]等于0,则IntraSubPartitionsSplitType被设置为等于0。
–否则,IntraSubPartitionsSplitType被设置为等于1+intra_subpartitions_split_flag[x0][y0]。
如前所述,变量NumIntraSubPartitions可以用于指定基于子块的最小样点要求、intra_subpartitions_split_flag和intra_subpartitions_mode_flag,编解码块402被划分成的子块的数量。例如,参照表3,如果变量IntraSubPartitionsSplitType具有等于0的值(指示ISP_NO_SPLIT),则变量NumIntraSubPartitions的值被设置为等于1(1是指示没有ISP应用于编解码块402的默认值)。否则,如果变量IntraSubPartitionsSplitType具有等于1的值(水平分割ISP_HOR_SPLIT)或等于2的值(垂直分割ISP_VER_SPLIT),则如参考图2和图3所解释的,基于编解码单元或当前块的维度将变量NumIntraSubPartitions的值设置为等于2或4。例如,如果编解码块402是4×8块(cbWidth等于4并且cbHeight等于8)或8×4块(cbWidth等于8并且cbHeight等于4),则NumIntraSubPartitions被设置为2,以基于可由变量IntraSubPartitionsSplitType指示的水平或垂直分割实现将编解码块402分割成两个ISP块,每个ISP块具有16个样点的最小数量。另一方面,如果编解码块402的维度cbWidth和cbHeight对应于除了(大于)8×4、4×8和4×4块大小的大小,则NumIntraSubPartitions被设置为等于4。
在另一个示例中,当用于编解码块402的ISP模式被启用时(例如,信令通知intra_subpartitions_mode_flag时),并且帧内子分区分割标志intra_subpartitions_split_flag不存在时,则如果cbWidth大于MaxTbSizeY并且cbHeight小于或等于MaxTbSizeY,则对于编码块402可以推断intra_subpartitions_split_flag等于第一值(例如,为1的值)。在一些示例中,应用通过IntraSubPartitionsSplitType等于1+intra_subpartitions_split_flag(即IntraSubPartitionsSplitType等于2)获取的分割类型的公式可以指示在这种情况下intra_subpartitions_split_flag的值被推断为等于1可以导致垂直分割(例如,如表3中的名称关联所示,IntraSubPartitionsSplitType值2对应于ISP垂直分割ISP_VER_SPLIT)。
另一方面,当用于编解码块402的ISP模式被启用时(例如,信令通知intra_subpartitions_mode_flag时),并且帧内子分区分割标志intra_subpartitions_split_flag不存在时,则如果cbHeight大于MaxTbSizeY并且cbWidth小于或等于MaxTbSizeY,则对于编解码块402可以推断intra_subpartitions_split_flag等于第二值(例如,值0)。在一些示例中,应用通过IntraSubPartitionsSplitType等于1+intra_subpartitions_split_flag(即IntraSubPartitionsSplitType等于1)获取的分割类型的公式可以指示在这种情况下intra_subpartitions_split_flag的值被推断为等于1可以导致水平分割(例如,如表3中的名称关联所示,IntraSubPartitionsSplitType值1对应于ISP水平分割ISP_HOR_SPLIT)。
以下语法用于描述用于在坐标[x0][y0]处存在的编解码块402的上述实现方式,其中以斜体文本突出显示对现有实现方式的改变,删除线突出显示从规范中移除。
intra_subpartitions_split_flag[x0][y0]指定帧内子分区分割类型是水平的还是垂直的。当intra_subpartitions_split
Figure BDA0003185832460000391
_flag[x0][y0]不存在时,它被推断如下:
–如果cbWidth>MaxTbSizeY且cbHeight<=MaxTbSizeY,则intra_subpartitions_split_flag[x0][y0]被推断为等于1。
–否则,如果cbHeight>MaxTbSizeY且cbWidth<=MaxTbSizeY,则intra_subpartitions_split_flag[x0][y0]被推断为等于0。
–否则,intra_subpartitions_split_flag[x0][y0]等于0。
现在描述示出了对关于为ISP定义分区结构的VVC的JVET WD4的现有语法和/或语义的改变的示例,其中从划分编解码块获取的子块的维度不超过MaxTbSizeY的大小阈值。表2和表4的新增内容以斜体文本显示,删除线文本显示从对应规范中删除的文本。
在为启用ISP模式的编解码块402定义分区结构的第一示例中,可以基于上面对intra_subpartitions_mode_flag和intra_subpartitions_split_flag的讨论,基于适当地应用水平或垂直划分来获取两个或更多个子块。例如,如参考图2和图3所解释的,可以获取子块或ISP块。可以测试这些子块的维度是否符合小于MaxTbSizeY的要求。如果从分割编解码块402(对其启用ISP模式)获取的各个子块的任何维度(宽度或高度)超过MaxTbSizeY,则它们被递归地划分直到获取其宽度和高度不超过MaxTbSizeY的值的子块。
在一个示例中,当子块的宽度或高度超过MaxTbSizeY时,当分割类型为NO_ISP_SPLIT时,可以使用表4的transform_tree()结构进一步分割子块。另一方面,例如,当分割类型对于其cbHeight超过MaxTbSizeY的编解码块是水平分割时,则编解码块可以首先被分割成默认数量的四个子块(如参考图3所讨论的,假设可以满足四个子块的最小样点要求)。如果所得的四个子块具有超过MaxTbSizeY的宽度,然后,将使用垂直分割类型分割四个子块,以产生每个子块的两个或四个进一步的子块(取决于每个子块的宽度和最小样点要求),并且可以测试这些进一步的子块的维度是否符合MaxTbSizeY大小阈值。可以递归地处理上述分割子块的过程,直到最后的子块满足MaxTbSizeY大小阈值。
在MaxTbSizeY=32且编解码块402具有cbWidth 64和cbHeight 128(即,编解码块402是64×128块)的说明性示例中,水平ISP分割将产生大小为64×32的子块,其中子块的宽度将超过MaxTbSizeY。在这种情况下,表4的transform_tree()语法结构将与NO_ISP_SPLIT模式(这仅用于分割,内部预测将遵循ISP处理)一起应用,并且每个64×32子块将被划分成两个32×32块。
对于分割类型为垂直的(ISP_VER_SPLIT)或水平的(ISP_HOR_SPLIT)(即,当分割类型被设置为不等于ISP_NO_SPLIT的值时)且编解码块或子块的宽度或高度之一超过MaxTbSizeY的情况,可以修改表4的transform_tree()结构。例如,对于水平和垂直分割类型,可以分别从表2和表4修改coding_unit()和transform_tree()的语法表,其中分别在下表2'和表4’中的斜体文本中标识修改。
Figure BDA0003185832460000401
Figure BDA0003185832460000411
表2’-修改后的编解码单元语法表
Figure BDA0003185832460000412
Figure BDA0003185832460000421
表4'-修改后的变换树语法表
在替代实现方式中,由子块的transform_tree()利用的分割类型可以被设置为其中分割类型可能导致超过MaxTbSizeY的宽度或高度维度的减少的值。在这样的示例中,变换树减少的每个阶段的子分区的数量可以相同或被单独推导出。考虑与上面相同的示例,其中MaxTbSizeY=32,cbWidth 64和cbHeight为128(即,64×128编解码块),水平ISP分割将产生大小为64×32的子块,其中宽度将超过MaxTbSizeY。在这种情况下,当分割类型为NO_ISP_SPLIT并且每个64×32子块将被分割为两个32×32块时,可以使用表4'的transform_tree()语法结构。对于分割类型为水平或垂直的情况,可在一些替代方法中利用下表4”中所示的transform_tree()的语法结构。下表4”包括以斜体文本突出显示的对表4的修改,其中表4”可以用于基于水平分割或垂直分割分别是否会导致超过MaxTbSizeY的维度(高度或宽度)的减少,将分割类型设置为水平或垂直的实现方式:
Figure BDA0003185832460000431
Figure BDA0003185832460000441
表4”-修改后的变换树语法表
在启用ISP模式的其他示例中,对于使用ISP模式从分割块获取的每个子块,表4'和表4”的transform_tree()结构都可以用于两种分割类型(水平分割类型或垂直分割类型)中的任何一种。可以基于块的宽度和高度与MaxTbSizeY之间的关系在表4'和表4”之间选择修改后的transform_tree()。
在上面使用ISP模式将编解码块分割成子块的示例中,在一个或多个结果子块被进一步划分的情况下,可以基于子块的处理顺序来分配子块的分区索引(partIdx)的值。在一个示例中,partIdx可以被分配给子块,使得仅第一子分区(如前所述以正常或反向顺序)被分配为0的partIdx值,并且剩余子分区根据子分区的解码顺序被分配值。在其它示例中,一个或多个子块可以被分配为0的partIdx值,指示对当前被分配为0的partIdx值的所有子块应用相同的处理。
在启用ISP模式时使用ISP分割编解码块的另一示例中,分配编解码块被划分成的子分区的数量,使得任何所得子块的宽度和高度都不超过MaxTbSizeY的值。下面的语义标识了将编解码块划分为若干子块,以确保所得子块符合MaxTbSizeY大小阈值。斜体文本标识了ISP分割的现有实现方式的修改。
变量NumIntraSubPartitions指定帧内亮度编解码块被分成的变换块子分区的数量。如下导出NumIntraSubPartitions:
–如果IntraSubPartitionsSplitType等于ISP_NO_SPLIT,则NumIntraSubPartitions被设置为1。
–否则,如果以下条件之一为真,则NumIntraSubPartitions被设置为2:
–cbWidth等于4并且cbHeight等于8,
–cbWidth等于8并且cbHeight等于4。
–否则,如果cbWidth<=MaxTbSizeY,cbHeight>MaxTbSizeY且IntraSubPartitionsSplitType等于ISP_HOR_SPLIT,则NumIntraSubPartitions被设置为等于Max(4,cbHeight/MaxTbSizeY)。
–否则,如果cbWidth>MaxTbSizeY,cbHeight<=MaxTbSizeY且IntraSubPartitionsSplitType等于ISP_VER_SPLIT,则NumIntraSubPartitions被设置为等于Max(4,cbWidth/MaxTbSizeY)。
–否则,NumIntraSubPartitions被设置为等于4。
在一些实现方式中,除了上面的改变之外,还添加了以下约束,使得intra_subpartitions_mode_flag和intra_subpartitions_split_flag的值受到约束,使得从分割编解码块产生的子分区的宽度和高度都小于或等于MaxTbSizeY。
在具有启用ISP模式的编解码块的一些实现方式中,当编解码块的宽度cbWidth大于MaxTbSizeY或者编解码块的高度cbHeight大于MaxTbSizeY(或者cbWidth和cbHeight都大于MaxTbSizeY)时,编解码块可以被水平划分和垂直划分。对于这种情况,子分区的数量NumIntraSubPartitions可以被分配为等于4。在一些实现方式中,NumIntraSubPartitions可以被推导出为等于4和cbWidth*cbHeight/MaxTbSizeY/MaxTbSizeY的最大值,由表达式Max(4,cbWidth*cbHeight/MaxTbSizeY/MaxTbSizeY)表示。在这种实现方式中,解码子分区的顺序可以被定义为类似于解码编解码单元的顺序,或者被定义为可以为ISP模式指定的另一扫描顺序。
在当启用ISP模式时划分编解码块的另一个示例中,可以添加约束,使得当从分割编解码块产生的任何子块的宽度或高度大于MaxTbSizeY时,不允许intra_subpartitions_mode_flag的值为1。以下语义说明了此类实现方式,用斜体文本突出显示了对现有实现方式的修改:
比特流一致性的要求是:
对于具有宽度cbWidth和高度cbHeight的编解码块,当intra_sub_partitions_mode_flag[x0][y0]等于1时,sbWidth和sbHeight的值应都小于或等于MaxTbSizeY,其中sbWidth和sbHeight的推导如下:
–当IntraSubPartitionsSplitType等于ISP_HOR_SPLIT时,sbWidth被设置为等于cbWidth的宽度并且sbHeight被设置为等于cbHeight/NumIntraSubPartitions。
–当IntraSubPartitionsSplitType等于ISP_VER_SPLIT时,sbWidth被设置为等于cbWidth/NumIntraSubPartitions的宽度并且sbHeight被设置为等于cbHeight。
在另一个示例中,语法元素intra_subpartitions_mode_flag的信令被约束,使得当从分割编解码块产生的子块将具有大于MaxTbSizeY的宽度或高度(或宽度和高度两者)时,intra_subpartitions_mode_flag的值不被信令通知并被推断为等于0。例如,如果从划分编解码块获取的任何子块可能具有其宽度和高度中的一个或多个大于MaxTbSizeY,则用于编解码块的ISP模式可以被禁用。
现在描述示出了对关于VPDU边界的VVC的JVET WD4的现有语法和/或语义的改变的示例。以斜体文本显示规范的现有实现方式的新增内容,删除线文本显示从规范中移除的文本。在此示例中,可以添加约束以确保用启用的ISP模式进行编解码的编解码块不跨越VPDU边界。可以如下将语义添加到规范中:
比特流一致性的要求是:当cbWidth或cbHeight大于SizeV时,intra_subpartitions_mode_flag的值应等于0。
在一些情况下,VPDU的宽度和高度约束可以不相等,在这种情况下,比特流约束单独地应用于CU的宽度和高度。
在一些情况下,可以在语法中如下施加约束:当cbWidth或cbHeight大于SizeV时,不信令通知语法元素intra_subpartitions_mode_flag,并且intra_subpartitions_mode_flag的值被推断为等于0。
如前所述,虚拟管线数据单元(VPDU)是可用于并行处理的图片或视频帧中的非重叠小区。在一些示例中,VPDU构造可以包括用于存储器访问的虚拟块(例如,用于确定哪个存储器区域用于处理一个或多个特定数据块),该虚拟块定义分配给实现基于标准的编解码过程(例如,HEVC、VVC或其他编码过程)的存储器的大小。尽管VPDU构造可能不对应于用于编解码目的块划分机制,但是VPDU可以在视频处理管线中使用。例如,在硬件解码过程中,连续的VPDU可以由多个处理/解码管线阶段并行处理(例如,不同的解码管线阶段同时处理不同的VPDU)。在一些情况下,在一些管线中,VPDU大小可以与缓冲器大小大致成比例。例如,VPDU大小可以被设置为变换块(TB)大小的尺寸。在一个说明性示例中,VPDU的大小可以是64×64个样点(例如,亮度样点)。在HEVC中,VPDU大小被设置为最大变换块大小,即32×32-L(亮度样点)和16×16-C(色度样点)。在VVC中,VPDU大小被设置为64×64-L(亮度样点)和32×32-C(色度样点),这导致更大的VPDU大小的请求。
在一些示例中,VPDU可以包含一个或多个块(例如,CU、PU、TU或其他块)。例如,在一些情况下,单个CU可以包括在一个VPDU中(例如,CU的大小和VPDU大小相同)。参照图4,如果编解码块402的大小对应于VPDU大小,则编解码块402可以包含在单个VPDU中。在编解码块402和VPDU是正方形块且VPDU的每一边的大小为SizeV的说明性示例中,编解码块402的宽度cbWidth和高度cbHeight将均等于SizeV。在VPDU可完全包含编解码块的此类示例中,编解码块将不会跨越VPDU边界。因此,如果编解码块402是用ISP模式进行编解码的,则编解码块402不会由于跨越VPDU边界而违反VPDU约束。因此,在这样的示例中,当cbWidth和cbHeight小于或等于VPDU的大小阈值SizeV时,可以用指示对编解码块402启用ISP模式的为1的值来信令通知语法元素intra_subpartitions_mode_flag。
图5是示出了VPDU 500多个编解码单元的示例的图。在一个这样的示例中,VPDU500内包含的多个CU中的每一个都可以具有小于VPDU大小的尺寸。如图所示,在VPDU 500内标识四个块或编解码单元,包括第一块520、第二块522、第三块524和第四块526。第一块520、第二块522、第三块524和/或第四块526中的每一个可以是图片的CU、PU、TU或其他块。已经为第一块520标识了维度(宽度cbWidth和高度cbHeight),以说明这些维度与VPDU 500的大小的关系。相应地,也已为VPDU 500标识了高度SizeV_height和宽度SizeV_width,其中在一些示例中,SizeV_height和SizeV_width可以等于相同的值SizeV。
在上面的示例中,第一块520的宽度cbWidth将小于VPDU 500的宽度SizeV_width,并且第一块520的高度cbHeight将小于VPDU 500的高度SizeV_height。因此,如果用ISP模式对第一块520进行编解码,则第一块520不会由于跨越VPDU边界而违反VPDU约束。因此,在这样的示例中,当cbWidth和cbHeight小于或等于与VPDU边界相对应的大小阈值时,ISP模式可以被允许用于第一块520,并且可以用指示ISP模式被用于第一块520的为1的值来信令通知语法元素intra_subpartitions_mode_flag。尽管未明确示出,但是第二块522、第三块524和第四块526的维度可以与上面参考第一块520讨论的维度相同。因此,在这样的示例中,也可以用启用的ISP模式对第二块522、第三块524和第四块526进行编解码。在一些示例中,如前面所解释的,并且将在下面进一步描述,当基于VPDU约束允许ISP模式时,ISP模式是否可以被启用或使用可以基于cbWidth和cbHeight与最大变换块大小阈值MaxTbSizeY的进一步比较。
在一些示例中,编解码块(例如,CU、PU或其他块)的大小可以跨越多个VPDU。例如,可以使用多个VPDU来处理编解码块。例如,大小为128×64(128个样点宽×64个样点高)的编解码块或大小为64×128(64个样点宽×128个样点高)的编解码块可以跨越两个VPDU,每个VPDU的大小为64×64。在另一个示例中,大小为128×128(128个样点宽×128个样点高)的编解码块可以跨越四个VPDU,每个VPDU的大小为64×64。编解码块可以被分割成一定数量的子块,用于由每个VPDU管线阶段执行帧间预测。例如,可以将128×128编解码块分割成64×64子块,用于由四个不同的VPDU管线阶段进行处理。由于不依赖于相邻块来执行帧间预测,因此可以分割编解码块以进行帧间预测。然而,跨越多个VPDU的此类编解码块也跨越VPDU边界,这可能违反关于允许使用帧内子分区模式来分割编解码块的VPDU约束。
图6是示出了跨越多个VPDU的编解码块602的示例的图。例如,编解码块602包含与四个VPDU相关联的样点,包括第一VPDU 630、第二VPDU632、第三VPDU 634和第四VPDU 636。编解码块602可以具有包括宽度cbWidth和高度cbHeight的维度。四个VPDU中的每一个可以具有包括SizeV的宽度和高度的维度(如针对第一VPDU 630的代表性图示)。在一个说明性示例中,当前块602具有128×128的大小,并且VPDU 630-634中的每一个具有64×64的大小。编解码块602可以是图片的CU、PU、TU或其他块。
在图6的示例中,编解码块602的cbWidth和cbHeight都大于四个VPDU630-634中的每一个的SizeV。因此,编解码块602的维度将违反用ISP模式对编解码块602进行编解码的要求。如前所述,在示例实现方式中,比特流一致性可以包括以下要求:当编解码块的cbWidth或cbHeight大于SizeV时,intra_subpartitions_mode_flag的值应等于0。在VPDU的宽度和高度可能不相等的示例中(例如,如参考图6所讨论的),比特流一致性可以包括以下要求:当cbWidth大于SizeV_width或cbHeight大于SizeV_height时,intra_subpartitions_mode_flag的值应等于0,以指示未对编解码块602启用ISP模式。在一些示例中,基于编解码块602的cbWidth和cbHeight大于第一VPDU 630的SizeV(并且类似地,大于剩余VPDU 632、634和636的SizeV),可以将编解码块602的intra_subpartitions_mode_flag设置为0。
在如先前所述的另一替代方案中,可以在用于ISP模式的语法中施加约束:当cbWidth或cbHeight大于SizeV时,不信令通知语法元素intra_subpartitions_mode_flag,并且intra_subpartitions_mode_flag的值被推断为等于0。因此,在编解码块602的情况下,由于cbWidth和cbHeight大于包括四个VPDU 630-636的一个或多个VPDU的SizeV,因此对于编解码块602,(例如,由编码设备)不信令通知intra_subpartitions_mode_flag。在其中包含编解码块602的编码比特流中不信令通知或不包括intra_subpartitions_mode_flag的这种情况下,可以(例如,通过接收编码的比特流的解码设备)推断intra_subpartitions_mode_flag的值等于0。
在一些示例中,基于编解码块的维度与VPDU边界的以上比较确定ISP模式是否被允许可以与当ISP模式被允许时启用ISP模式的其他考虑相结合。例如,当满足一个或多个VPDU约束时,可以信令通知intra_subpartitions_mode_flag以指示对块启用ISP模式。例如,如前面参考现有实现方式所讨论的,当cbWidth或cbHeight中的一个大于MaxTbSizeY并且cbWidth或cbHeight中的另一个小于MaxTbSizeY时,或者如果cbWidth和cbHeight都小于MaxTbSizeY,则可以为编解码块信令通知intra_subpartitions_mode_flag(例如,以指示启用ISP)。
因此,在最大变换块大小MaxTbSizeY与VPDU相同的示例中,如果编解码块的cbWidth或cbHeight大于SizeV(其中SizeV等于MaxTbSizeY),则ISP模式是不允许的并且因此不为编解码块信令通知intra_subpartitions_mode_flag,因为编解码块的维度会由于跨越VPDU边界而违反一个或多个VPDU约束。例如,如果在说明性示例中,SizeV和MaxTbSizeY都等于64,那么对于大于64的cbWidth或cbHeight的任何一个,VPDU约束将阻止ISP模式被允许,并且不为编解码块信令通知intra_subpartitions_mode_flag(即,不启用ISP模式)。
然而,如果在另一说明性示例中,MaxTbSizeY是32并且SizeV是64,则在一些情况下可能允许并启用intra_subpartitions_mode_flag。例如,如果编解码块的cbWidth等于64并且cbHeight等于32,则在本示例中,cbWidth和cbHeight将小于SizeV,从而导致基于满足VPDU约束来确定允许ISP模式。此外,由于cbWidth等于64将使cbWidth大于大小为32的MaxTbSizeY,并且cbHeight等于32将使cbHeight小于或等于大小为32的MaxTbSizeY,因此可以启用用于编解码块的ISP模式,并且可以(例如通过编码设备)在比特流中信令通知intra_subpartitions_mode_flag。但是,由于cbWidth大于MaxTbSizeY 32,因此不会信令通知intra_subpartitions_split_flag。在这样的示例中,如参考表2所解释的,接收比特流的解码设备的现有实现方式可以推断intra_subpartitions_split_flag的值为0(对应于水平分割ISP_HOR_SPLIT),从而导致不期望的结果。然而,如参考图7所讨论的,通过实现将intra_subpartitions_split_flag的值推断为垂直分割ISP_VER_SPLIT的修改,对cbWidth等于64且cbHeight等于32的编解码块的期望分割将产生两个宽度和高度分别为32的子块,其中这些所得子块将被限制在大小为32的MaxTbSizeY内。
在另一个示例中,当编解码块的cbWidth或cbHeight大于MaxTbSizeY时,还可以从现有实现方式修改intra_subpartitions_mode_flag的信令,以禁用ISP模式(或不信令通知intra_subpartitions_mode_flag)。如前所述,当亮度编解码块的宽度或高度大于最大变换大小MaxTbSizeY时,编解码块被划分成如表2的transform_tree()语法结构中指定的两个或更多个变换单元。由于现有实施方式中intra_subpartitions_mode_flag的语法允许当编解码块的cbWidth和cbHeight中的一个大于MaxTbSizeY并且cbWidth和cbHeight中的另一个小于或等MaxTbSizeY时信令通知intra_subpartitions_mode_flag,出现了上面提到的无论垂直分割还是水平分割是最佳选择都将intra_subpartitions_split_flag推断为0(对应于水平分割ISP_HOR_SPLIT)的问题。但是,如果只有当cbWidth和cbHeight都小于或等于MaxTbSizeY时才信令通知intra_subpartitions_mode_flag,那么intra_subpartitions_mode_flag和intra_subpartitions_split_flag二者的语法将变得彼此一致。例如,下面所示的表2”以斜体文本说明了当cbWidth<=MaxTbSizeY&&cbHeight<=MaxTbSizeY时对intra_subpartitions_mode_flag的信令的修改(其中,在表2的现有实现方式中,当(cbWidth<=MaxTbSizeY||cbHeight<=MaxTbSizeY)时信令通知intra_subpartitions_mode_flag)。
Figure BDA0003185832460000511
表2”-修改后的变换树语法表
在当cbWidth小于或等于大小阈值MaxTbSizeY且cbHeight小于或等于大小阈值MaxTbSizeY时为编解码块信令通知intra_subpartitions_mode_flag的实现方式中,可以理解,当大小阈值是基于VPDU大小(SizeV)或最大变换块大小(MaxTbSizeY)时,基于编解码块的维度和大小阈值之间的关系的intra_subpartitions_mode_flag的信令是相同的。因此,当cbWidth和cbHeight都小于大小阈值(其中大小阈值是等于MaxTbSizeY的SizeV)时,信令通知intra_subpartitions_mode_flag以对允许ISP模式的编解码块启用ISP模式。如果cbWidth或cbHeight中的任何一个违反了大小阈值,则不信令通知intra_subpartitions_mode_flag,并且对编解码块可以不允许或禁用ISP模式。
图7是示出了通过确定要应用于启用了intra_subpartition(ISP)模式的编解码块的子分区类型来解码视频数据的过程700的示例的流程图。在702处,过程700包括获取包括视频数据的编码的视频比特流。在一些示例中,获取编码的视频比特流的过程可以由解码设备执行。如上所述,视频数据可以包括多个图片,并且图片可以被分成多个块。视频数据还可以包括可以用于执行运动补偿的图片和/或块的运动信息。
在704处,过程700包括确定视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的。例如,当cbWidth或cbHeight小于或等于大小阈值MaxTbSizeY时或者如果cbWidth和cbHeight两者都小于或等于MaxTbSizeY,则可能已经信令通知编解码块402的ISP模式标志intra_subpartitions_mode_flag。相应地,在cbWidth或cbHeight中的一个大于MaxTbSizeY且另一个小于MaxTbSizeY的示例中,intra_subpartitions_mode_flag将被信令通知为真(用指示对编解码块启用ISP模式的值)。在这样的实现方式中,在cbWidth或cbHeight中的一个大于MaxTbSizeY的情况下,在信令通知的比特流中可以不存在帧内子分区分割标志intra_subpartitions_split_flag。
在706处,过程700包括确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值。例如,当对于编解码块402不存在intra_subpartitions_split_flag时,cbWidth或cbHeight可以被确定为大于MaxTbSizeY。
在708处,过程700包括基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值。例如,如果cbWidth大于MaxTbSizeY,则可以推断对于编解码块,intra_subpartitions_split_flag等于第一值(例如,对应于ISP垂直分割ISP_VER_SPLIT的为1的值)。另一方面,如果cbHeight大于MaxTbSizeY,则可以推断对于编解码块,intra_subpartitions_split_flag等于第二值(例如,对应于ISP水平分割ISP_HOR_SPLIT的为0的值)。
图8是示出了通过定义ISP模式的划分结构以确保从分割编解码块获取的子块的维度符合大小阈值来解码视频数据的过程800的示例的流程图。在802处,过程800包括获取包括视频数据的编码的视频比特流。在一些示例中,获取编码的视频比特流的过程可以由解码设备执行。如上所述,视频数据可以包括多个图片,并且图片可以被分成多个块。视频数据还可以包括可以用于执行运动补偿的图片和/或块的运动信息。
在804处,过程800包括确定对当前块启用了用于划分视频数据的当前块的帧内子分区模式。例如,当cbWidth或cbHeight小于或等于大小阈值MaxTbSizeY时或者如果cbWidth和cbHeight两者都小于或等于MaxTbSizeY,则可以信令通知编解码块402的ISP模式标志intra_subpartitions_mode_flag。相应地,在cbWidth或cbHeight中的一个大于MaxTbSizeY且另一个小于MaxTbSizeY的示例中,用指示对编解码块启用ISP模式的值(例如,为1的值)信令通知intra_subpartitions_mode_flag。在一些示例中,如果从使用ISP模式将编解码块分割成子块而产生的子块的维度(宽度或高度)大于大小阈值MaxTbSizeY,则可以不信令通知intra_subpartitions_mode_flag。
在806处,过程800包括确定用于将当前块划分成子块的划分结构,其中由划分而产生的子块的维度不超过大小阈值。例如,在一些实现方式中,如果子块的维度超过大小阈值,则可以使用根据表4'或表4”中所示的修改后的transform_tree()语法结构的递归结构来划分从划分编解码块402获取的子块。例如,如果子块的宽度或高度超过MaxTbSizeY,则可以使用垂直或水平分割类型来递归地划分所得的子块直到获取其维度不超过MaxTbSizeY大小阈值的子块。
图9是示出了通过基于编解码块是否违反一个或多个约束(例如,跨越VPDU边界)来确定是否对编解码块启用ISP模式来编码视频数据的过程900的示例的流程图。在902处,过程900包括获取视频数据的图片的当前块。在一些示例中,例如当由编码设备执行过程900时,视频数据可以包括未编码的视频数据。如上所述,视频数据可以包括多个图片,并且图片可以被分成多个块。过程900可以确定可以用于执行运动补偿的图片和/或块的运动信息。
在904处,过程900包括确定图片的当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个,宽度大小阈值对应于数据单元的宽度并且高度大小阈值对应于数据单元的高度。在一些情况下,数据单元是虚拟管线数据单元(VPDU)。在一些情况下,数据单元是变换块。在数据单元是变换块的情况下,可以将宽度大小阈值和高度大小阈值定义为等于最大变换块大小(例如,MaxTbSizeY)。在一个说明性示例中,参考图5,当数据单元是VPDU时,可以将第一块520的cbWidth和cbHeight分别与VPDU 500的SizeV_width和SizeV_Height进行比较,以确定cbWidth是否大于SizeV_width或者cbHeight是否大于SizeV_height中的至少一个。在另一个示例中,参考图6,可将编解码块602的cbWidth和cbHeight分别与VPDU630(其中宽度尺寸阈值等于高度尺寸阈值,等于SizeV)的SizeV(用于宽度维度)和SizeV(用于高度维度)进行比较,以确定cbWidth是否大于SizeV或cbHeight是否大于SizeV。
在906处,过程900包括基于当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个来确定是否要为当前块信令通知帧内子分区模式标志,其中帧内子分区模式标志的值指示ISP模式是否被应用于当前块以将当前块划分成矩形变换块子分区。在图6的示例中,编解码块602的cbWidth和cbHeight都大于四个VPDU630-634中的每一个的SizeV。因此,编解码块602的维度将违反对用ISP模式进行编解码的编解码块602的一个或多个VPDU约束。如前所述,比特流一致性可以包括以下要求:当编解码块的cbWidth或cbHeight大于SizeV时,intra_subpartitions_mode_flag的值应等于0。在这样的示例中,在当前块的宽度大于宽度大小阈值或当前块的高度大于高度大小阈值时,对于当前块不允许帧内子分区模式。在这样的示例中,当对于编解码块不允许帧内子分区模式时,在来自编码设备的编码的视频比特流中不信令通知intra_subpartition_mode_flag,并且解码设备可以推断intra_subpartition_mode_flag的值为第一值(0),该第一值指示对于编解码块不允许帧内子分区模式。
在框908处,过程900包括基于确定是否要为当前块信令通知帧内子分区模式标志来生成至少包括当前块的编码的视频比特流。例如,编码的比特流可以包括当前块和指示在当前块没有违反VPDU约束时对当前块启用ISP模式的intra_subpartitions_mode_flag。
在图5的示例中,当cbWidth和cbHeight两者都小于或等于与VPDU边界相对应的大小阈值时,可以用指示是否对第一块520启用ISP模式的值来信令通知语法元素intra_subpartitions_mode_flag(例如,为1或“真”的值指示对第一块520启用ISP模式,或者为0或“假”的值指示不对第一块520执行ISP模式)。在一些示例中,基于确定启用帧内子分区模式,过程700可以用于在没有信令通知帧内子分区分割标志时确定帧内子分区分割标志的值。
在一些实现方式中,本文描述的过程(或方法),包括过程700、800和900,可以由计算设备或装置(例如图1所示的系统100)来执行。例如,可以由图1和图10所示的编码设备104、另一视频源侧设备或视频传输设备、图1和图11所示的解码设备112和/或另一客户端侧设备(例如播放器设备、显示器或任何其他客户端侧设备)来执行过程。在一些示例中,计算设备或装置可以包括被配置成捕获包括视频帧的视频数据(例如,视频序列)的照相机。在一些示例中,捕获视频数据的照相机或其他捕获设备与计算设备分离,在这种情况下,计算设备接收或获取捕获的视频数据。
在一些情况下,计算设备或装置可以包括一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或被配置为执行本文所描述的过程的步骤的其他(多个)组件。在一些示例中,计算设备可以包括移动设备、桌面计算机、服务器计算机和/或服务器系统,或者其他类型的计算设备。计算设备还可以包括被配置成传送视频数据的网络接口。网络接口可被配置成传送基于互联网协议(IP)的数据或其它类型的数据。在一些示例中,计算设备或装置可以包括用于显示输出视频内容(例如视频比特流的图片的样点)的显示器。
计算设备的组件(例如,一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其他组件)可以在电路中实现。例如,组件可以包括和/或可以使用电子电路或其他电子硬件来实现,这些电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU),和/或其他合适的电子电路),和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实现,以执行本文所述的各种操作。
过程700、800、900被图示为逻辑流程图,其操作表示可以在硬件、计算机指令或其组合中实现的操作序列。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所描述的操作以实现该过程。
另外,本文描述的包括过程800和900的过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括可以由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
本文讨论的编解码技术可以在示例视频编码和解码系统(例如,系统100)中实现。在一些示例中,系统包括提供稍后将由目的设备进行解码的编码的视频数据的源设备。特别地,源设备经由计算机可读介质向目的设备提供视频数据。源设备和目的设备可包括各种设备中的任何一种,包括台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”手机的电话手持设备、所谓的“智能”平板、电视、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备和目的设备可被配备用于无线通信。
目的设备可以接收要经由计算机可读介质解码的编码的视频数据。计算机可读介质可以包括能够将编码的视频数据从源设备移动到目的设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以包括通信介质,以使源设备能够实时地将编码的视频数据直接发送到目的设备。编码的视频数据可以根据诸如无线通信协议的通信标准被调制,并被发送到目的设备。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,例如局域网、广域网或诸如互联网的全球网络。通信介质可包括路由器、交换机、基站或可以用于促进从源设备到目的设备的通信的任何其它装备。
在一些示例中,编码的数据可以从输出接口输出到存储设备。类似地,可通过输入接口从存储设备访问编码的数据。存储设备可以包括各种分布式或本地访问的数据存储介质中的任何一种,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器,或者用于存储编码的视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备可以对应于可以存储由源设备生成的编码的视频的文件服务器或另一中间存储设备。目的设备可以经由流式传输或下载从存储设备访问存储的视频数据。文件服务器可以是能够存储编码的视频数据并将该编码的视频数据发送到目的设备的任何类型的服务器。示例文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的设备可以通过任何标准数据连接(包括互联网连接)访问编码的视频数据。这可以包括适于访问存储在文件服务器上的编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储设备的编码的视频数据的传输可以是流传输、下载传输或其组合。
本公开的技术不一定限于无线应用或设置。该技术可应用于视频编解码以支持各种多媒体应用中的任何一种,例如空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输(例如基于HTTP的动态自适应流式传输(DASH))、被编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码或其它应用。在一些示例中,系统可被配置为支持单向或双向视频传输以支持诸如视频流式传输、视频回放、视频广播和/或视频电话之类的应用。
在一个示例中,源设备包括视频源、视频编码器和输出接口。目的设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文公开的技术。在其它示例中,源设备和目的设备可以包括其它组件或布置。例如,源设备可以从外部视频源(例如外部照相机)接收视频数据。同样地,目的设备可以与外部显示设备接口,而不是包括集成的显示设备。
上面的示例系统只是一个示例。用于并行处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管本公开的技术通常由视频编码设备来执行,但是这些技术也可以由视频编码器/解码器(通常被称为“编解码器”)来执行。此外,本公开的技术也可以由视频预处理器执行。源设备和目的设备仅仅是这样的编解码设备的示例,在该编解码设备中生成编解码视频数据以传输到目的设备。在一些示例中,源设备和目的设备可以以基本对称的方式操作,使得设备中的每一个包括视频编码和解码组件。因此,示例系统可支持视频设备之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。
视频源可以包括视频捕获设备,例如摄像机、包含先前捕获的视频的视频档案和/或从视频内容提供商接收视频的视频馈送接口。作为另外的替代方案,视频源可以生成基于计算机图形的数据作为源视频,或者生成实时视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源是摄像机,则源设备和目的设备可以形成所谓的照相电话或视频电话。然而,如上所述,本公开中描述的技术通常可以应用于视频编解码,并且可以应用于无线和/或有线应用。在每种情况下,捕获的、预捕获的或计算机生成的视频可以由视频编码器编码。然后可以通过输出接口将编码的视频信息输出到计算机可读介质上。
如上所述,计算机可读介质可以包括诸如无线广播或有线网络传输的瞬时介质,或者诸如硬盘、闪存驱动器、压缩光盘、数字视频光盘、蓝光盘或其他计算机可读介质的存储介质(即,非瞬时存储介质)。在一些示例中,网络服务器(未示出)可以例如经由网络传输从源设备接收编码的视频数据并将编码的视频数据提供给目的设备。类似地,诸如光盘冲压设备之类的介质生产设施的计算设备可以从源设备接收编码的视频数据,并产生包含编码的视频数据的光盘。因此,在各种示例中,计算机可读介质可以被理解为包括各种形式的一种或多种计算机可读介质。
目的设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息,该语法信息也由视频解码器使用,其包括描述块和其他编解码单元(例如,图片组(GOP))的特性和/或处理的语法元素。显示设备向用户显示解码的视频数据,并且可以包括各种显示设备中的任何一种,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。已经描述了本申请的各种实施例。
编码设备104和解码设备112的具体细节分别在图10和图11中示出。图10是示出了可以实现本公开中描述的技术中的一种或多种技术的示例编码设备104的框图。编码设备104可以例如生成本文所述的语法结构(例如,VPS、SPS、PPS或其他语法元素的语法结构)。编码设备104可以执行视频条带内的视频块的帧内预测和帧间预测编解码。如前所述,帧内编解码至少部分地依赖于空域预测来减少或消除给定视频帧或图片内的空域冗余。帧间编解码至少部分地依赖于时域预测来减少或消除视频序列的相邻或周围帧内的时域冗余。帧内模式(I模式)可以指几种基于空域的压缩模式中的任意一种。诸如单向预测(P模式)或双向预测(B模式)的帧间模式可以指几种基于时域的压缩模式中的任意一种。
编码设备104包括划分单元35、预测处理单元41、滤波器单元63、图片存储器64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重建,编码设备104还包括逆量化单元58、逆变换处理单元60和加法器62。滤波器单元63旨在表示一个或多个环路滤波器,例如去方块滤波器、自适应环路滤波器(ALF)和采样自适应偏移(SAO)滤波器。尽管滤波器单元63在图10中被示出为环路内滤波器,但是在其它配置中,滤波器单元63可以被实现为后环路滤波器。后处理设备57可以对由编码设备104生成的编码的视频数据执行附加处理。本公开的技术在一些情况下可以由编码设备104实现。然而,在其它情况下,本公开的技术中的一种或多种可由后处理设备57来实现。
如图10所示,编码设备104接收视频数据,并且划分单元35将数据划分成视频块。划分还可以包括划分成条带、条带片段、图块或其他更大的单元,以及例如根据LCU和CU的四叉树结构的视频块划分。编码设备104通常示出了对要被编码的视频条带内的视频块进行编码的组件。该条带可以被分为多个视频块(并且可能被分为被称为图块的视频块的集合)。预测处理单元41可以基于误差结果(例如,编解码率和失真水平等)为当前视频块选择多种可能的编解码模式中的一种,例如多个帧内预测编解码模式中的一种或多种帧间预测编解码模式中的一种。预测处理单元41可以将得到的帧内或帧间编解码块提供给加法器50以生成残差块数据,并提供给加法器62以重建用作参考图片的编码块。
预测处理单元41内的帧内预测处理单元46可以执行当前视频块相对于与要被编解码的当前块在同一帧或条带中的一个或多个相邻块的帧内预测编解码以提供空域压缩。预测处理单元41内的运动估计单元42和运动补偿单元44执行当前视频块相对于一个或多个参考图片中的一个或多个预测块的帧间预测编解码以提供时域压缩。
运动估计单元42可以被配置成根据视频序列的预定模式来确定视频条带的帧间预测模式。预定模式可以将序列中的视频条带指定为P条带、B条带或GPB条带。运动估计单元42和运动补偿单元44可以高度集成,但是出于概念目的而分别示出。由运动估计单元42执行的运动估计是生成运动矢量的过程,其估计视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块的预测单元(PU)相对于参考图片内的预测块的位移。
预测块是被发现在像素差方面与要被编解码的视频块的PU紧密匹配的块,像素差可以由绝对差和(SAD)、平方差和(SSD)或其他差度量来确定。在一些示例中,编码设备104可以计算存储在图片存储器64中的参考图片的子整数像素位置的值。例如,编码设备104可以对参考图片的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行插值。因此,运动估计单元42可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。
运动估计单元42通过将PU的位置与参考图片的预测块的位置进行比较,来计算帧间编解码的条带中的视频块的PU的运动矢量。可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择参考图片,每个参考图片列表识别存储在图片存储器64中的一个或多个参考图片。运动估计单元42将计算出的运动矢量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计确定的运动矢量获取或生成预测块,可能执行子像素精度的插值。在接收到用于当前视频块的PU的运动矢量时,运动补偿单元44可以在参考图片列表中定位运动矢量指向的预测块。编码设备104通过从正被编解码的当前视频块的像素值减去预测块的像素值、形成像素差值,来形成残差视频块。像素差值形成块的残差数据,并且可以包括亮度和色度差分量。加法器50表示执行该减法运算的一个或多个组件。运动补偿单元44还可以生成与视频块和视频条带相关联的语法元素,以供解码设备112在对视频条带的视频块进行解码时使用。
如上所述,帧内预测处理单元46可以对当前块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代。具体地,帧内预测处理单元46可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测处理单元46可以使用各种帧内预测模式(例如,在单独的编码遍期间)对当前块进行编码,并且帧内预测处理单元46可以从测试的模式中选择合适的帧内预测模式来使用。例如,帧内预测处理单元46可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值,并且可以在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码的块与被编码以产生编码的块的原始的、未编码的块之间的失真(或误差)量,以及用于产生编码的块的比特率(即,比特的数量)。帧内预测处理单元46可以根据各种编码的块的失真和速率来计算比率,以确定哪个帧内预测模式表现出该块的最佳率失真值。
在任何情况下,在为块选择帧内预测模式之后,帧内预测处理单元46可以向熵编码单元56提供指示用于该块的所选择的帧内预测模式的信息。熵编码单元56可以对指示所选择的帧内预测模式的信息进行编码。编码设备104可以在所发送的比特流配置数据中包括用于各种块的编码上下文的定义以及用于每个上下文的最可能的帧内预测模式、帧内预测模式索引表和修改的帧内预测模式索引表的指示。比特流配置数据可以包括多个帧内预测模式索引表和多个修改的帧内预测模式索引表(也被称为码字映射表)。
在预测处理单元41经由帧间预测或帧内预测生成当前视频块的预测块之后,编码设备104通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以包括在一个或多个TU中并应用于变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)或概念上类似的变换等变换将残差视频数据变换为残差变换系数。变换处理单元52可以将残差视频数据从像素域转换为变换域,例如频域。
变换处理单元52可以将得到的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程可减少与部分或全部系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,然后量化单元54可以执行包括量化的变换系数的矩阵的扫描。或者,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56对量化的变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度编解码(CAVLC)、上下文自适应二进制算术编解码(CABAC)、基于语法的上下文自适应二进制算术编解码(SBAC)、概率间隔划分熵(PIPE)编解码或另一熵编解码技术。在由熵编码单元56进行熵编码之后,编码的比特流可以被发送到解码设备112,或者被存档以供稍后由解码设备112传输或检索。熵编码单元56还可以对正被编解码的当前视频条带的运动矢量和其他语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换来在像素域中重建残差块,以供稍后用作参考图片的参考块。运动补偿单元44可以通过将残差块添加到参考图片列表内的参考图片之一的预测块来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重建的残差块,以计算用于运动估计的子整数像素值。加法器62将重建的残差块添加到由运动补偿单元44产生的运动补偿预测块中,以产生用于存储在图片存储器64中的参考块。该参考块可由运动估计单元42和运动补偿单元44用作参考块,以对在随后的视频帧或图片中的块进行帧间预测。
以这种方式,图10的编码设备104表示被配置为执行本文所述的任何技术(包括以上关于图7、图8和/或图9所述的过程)的视频编码器的示例。在某些情况下,本公开的一些技术也可以由后处理设备57来实现。
图11是示出了示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可以执行通常与关于来自图11的编码设备104描述的编码过程相反的解码遍。
在解码过程中,解码设备112接收由编码设备104发送的表示编码的视频条带的视频块和相关联的语法元素的编码的视频比特流。在一些实施例中,解码设备112可以从编码设备104接收编码的视频比特流。在一些实施例中,解码设备112可以从网络实体79(例如服务器、媒体感知网络元件(MANE)、视频编辑器/拼接器,或者配置为实现上述技术中的一种或多种技术的其他此类设备)接收编码的视频比特流。网络实体79可以包括也可以不包括编码设备104。在网络实体79将编码的视频比特流发送到解码设备112之前,可以由网络实体79实现本公开中描述的一些技术。在一些视频解码系统中,网络实体79和解码设备112可以是独立设备的一部分,而在其他情况下,可以由包含解码设备112的同一设备执行关于网络实体79描述的功能。
解码设备112的熵解码单元80对比特流进行熵解码,以生成量化系数、运动矢量和其他语法元素。熵解码单元80将运动矢量和其他语法元素转发到预测处理单元81。解码设备112可以在视频条带级别和/或视频块级别接收语法元素。熵解码单元80可以处理和解析诸如VPS、SPS和PPS的一个或多个参数集中的固定长度语法元素和可变长度语法元素二者。
当视频条带被编解码为帧内编解码(I)条带时,预测处理单元81的帧内预测处理单元84可以基于信令通知的帧内预测模式和来自当前帧或图片的先前解码块的数据为当前视频条带的视频块生成预测数据。当视频帧被编解码为帧间编解码(即B、P或GPB)条带时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动矢量和其他语法元素产生当前视频条带的视频块的预测块。可以从参考图片列表中的参考图片中的一个产生预测块。解码设备112可以基于存储在图片存储器92中的参考图片,使用默认构建技术来构建参考帧列表(列表0和列表1)。
运动补偿单元82通过解析运动矢量和其他语法元素来确定当前视频条带的视频块的预测信息,并使用该预测信息产生被解码的当前视频块的预测块。例如,运动补偿单元82可以使用参数集中的一个或多个语法元素来确定用于对视频条带的视频块进行编解码的预测模式(例如,帧内或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、用于条带的一个或多个参考图片列表的构建信息、条带的每个帧间编码的视频块的运动矢量、条带的每个帧间编解码的视频块的帧间预测状态以及对当前视频条带中的视频块进行解码的其他信息。
运动补偿单元82还可以基于插值滤波器执行插值。运动补偿单元82可以使用如由编码设备104在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以从接收的语法元素确定由编码设备104使用的插值滤波器,并且可以使用该插值滤波器来产生预测块。
逆量化单元86对比特流中提供的并由熵解码单元80进行解码的量化变换系数进行逆量化或去量化。逆量化过程可以包括使用由编码设备104为视频条带中的每个视频块计算的量化参数来确定量化度,并且同样地确定应该应用的逆量化度。逆变换处理单元88将逆变换(例如,逆DCT或其他适当的逆变换)、逆整数变换或概念上类似的逆变换过程应用于变换系数,以便在像素域中产生残差块。
在运动补偿单元82基于运动矢量和其他语法元素生成当前视频块的预测块之后,解码设备112通过将来自逆变换处理单元88的残差块与由运动补偿单元82生成的对应的预测块相加,来形成解码的视频块。加法器90表示执行该求和运算的一个或多个组件。如果需要,环路滤波器(在编解码环路中或在编解码环路之后)也可用于平滑像素过渡,或以其他方式提高视频质量。滤波器单元91旨在表示一个或多个环路滤波器,例如去方块滤波器、自适应环路滤波器(ALF)和采样自适应偏移(SAO)滤波器。尽管滤波器单元91在图11中被示出为环路内滤波器,但是在其它配置中,滤波器单元91可以被实现为后环路滤波器。然后,将给定帧或图片中的解码的视频块存储在图片存储器92中,图片存储器92存储用于后续运动补偿的参考图片。图片存储器92还存储解码的视频,用于稍后在显示设备(例如图1所示的视频目的设备122)上呈现。
以这种方式,图11的解码设备112表示被配置为执行本文所述的任何技术(包括以上关于图8和/或图9所述的过程)的视频解码器的示例。
如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备和能够存储、包含或携带(多个)指令和/或数据的各种其他介质。计算机可读介质可以包括其中可以存储数据的非暂时性介质,并且不包括无线地或通过有线连接传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带,诸如压缩光盘(CD)或数字通用磁盘(DVD)之类的光学存储介质、闪存、存储器或存储设备。计算机可读介质可以在其上存储有代码和/或机器可执行指令,它们可以表示过程、函数、子程序、程序、例程、子程序、模块、软件包、类,或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容来耦合到另一代码段或硬件电路。可以经由任何合适的方式(包括内存共享、消息传递、令牌传递、网络传输等)传递、转发或发送信息、自变量、参数、数据等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量,载波信号,电磁波和信号本身的介质。
在上述描述中提供了具体细节,以提供对本文提供的实施例和示例的彻底理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了解释清楚起见,在某些情况下,本技术可以被呈现为包括单独的功能块,这些单独的功能块包括包含设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合的功能块。除了图中所示和/或本文所述的那些组件之外,还可以使用附加组件。例如,电路、系统、网络、过程和其他组件可以以框图形式被示出为组件,以便不会在不必要的细节上使实施例模糊。在其他情况下,可以在没有不必要的细节的情况下示出已知的电路、过程、算法、结构和技术,以避免使实施例模糊。
各个实施例可以在上面被描述为过程或方法,该过程和方法被描绘为流程图、流程图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序过程,但许多操作可以并行或并发地执行。此外,可以重新安排操作顺序。过程在其操作完成时终止,但可能具有未包括在图中的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
可以使用存储的或以其他方式从计算机可读介质中获取的计算机可执行指令来实现根据上述示例的过程和方法。这些指令可以包括,例如,使得或以其他方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组的指令和数据。可以通过网络访问使用的部分计算机资源。计算机可执行指令可以是例如二进制文件、中间格式指令(例如汇编语言、固件、源代码等)。可用于存储指令、所使用的信息,和/或在根据所述示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的USB设备、网络存储设备等。
根据这些公开来实现过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采取各种形式因素的任何一种。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。(多个)处理器可以执行必要的任务。典型的形式因素示例包括膝上型计算机、智能手机、移动电话、平板设备或其他小型形式因素个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能还可以体现在外围设备或插件卡中。作为另外的示例,这种功能还可以在不同芯片之间的电路板上实现,或者在单个设备中执行的不同过程上实现。
指令、用于传送此类指令的介质、用于执行该指令的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例部件。
在前面的描述中,参考本申请的具体实施例来描述本申请的各个方面,但是本领域技术人员将认识到本申请不限于此。因此,虽然本文已经详细描述了本申请的说明性实施例,但是应当理解,本发明构思可以以其他方式不同地体现和应用,并且所附权利要求旨在被解释为包括这样的变体,除非受到现有技术的限制。可以单独地或联合地使用上述申请的各种特征和方面。此外,在不脱离本说明书更广泛的精神和范围的情况下,可以在本文所描述的那些环境和应用之外的任何数量的环境和应用中使用实施例。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行这些方法。
普通技术人员将理解,本文中使用的小于(“<”)和大于(“>”)符号或术语可以分别替换为小于或等于(“≤”)和大于或等于(“≥”)符号,而不脱离本说明书的范围。
在将组件描述为被“配置为”执行某些操作的情况下,这种配置可以例如通过设计电子电路或其他硬件来执行操作、通过编程可编程电子电路(例如微处理器或其他合适的电子电路)来执行操作,或其任何组合来完成。
短语“耦合到”是指物理上直接或间接连接到另一组件的任何组件,和/或直接或间接与另一组件通信(例如,通过有线或无线连接连接到其它组件,和/或其他合适的通信接口)的任何组件。
描述集合“中的至少一个”和/或集合中的“一个或多个”的权利要求语言或其他语言指示集合中的一个成员或集合中的多个成员(以任何组合)满足该权利要求。例如,描述“A和B中的至少一个”的权利要求语言是指A、B或A和B。在另一示例中,描述“A、B和C中的至少一个”的权利要求语言是指A、B、C、或A和B、或A和C、或B和C、或A和B和C。语言集合“中的至少一个”和/或集合中的“一个或多个”不将集合限制为集合中列出的项目。例如,描述“A和B中的至少一个”的权利要求语言可以表示A、B或A和B,并且可以另外包括A和B的集合中未列出的项目。
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上面已经大体上就其功能性描述了各种说明性组件、块、模块、电路和步骤。这些功能是实现为硬件还是软件取决于特定应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同的方式实现所描述的功能,但是这种实现方式决定不应被解释为导致偏离本申请的范围。
本文所描述的技术还可以在电子硬件、计算机软件、固件或其任何组合中实现。这些技术可以在各种设备(例如通用计算机、无线通信设备手持机或具有多种用途的集成电路设备,包括在无线通信设备手持机和其他设备中的应用)中的任何一种中实现。被描述为模块或组件的任何特征可以在集成逻辑设备中一起实现,或者单独地作为分立但可互操作的逻辑设备来实现。如果在软件中实现,则这些技术可以至少部分地由计算机可读数据存储介质实现,该计算机可读数据存储介质包括程序代码,该程序代码包括在被执行时执行上述方法中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括包装材料。计算机可读介质可包括存储器或数据存储介质,例如随机存取存储器(RAM)(例如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。附加地或替代地,可以至少部分地由计算机可读通信介质来实现这些技术,该计算机可读通信介质以指令或数据结构的形式携带或传送程序代码,并且该程序代码可以由计算机(例如传播的信号或波)访问、读取和/或执行。
程序代码可由处理器执行,处理器可以包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效集成或分立逻辑电路。这样的处理器可以被配置成执行本公开中描述的任何技术。通用处理器可以是微处理器;但是在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核心的结合、或任何其他这样的配置。因此,如本文所使用的术语“处理器”可指前述结构中的任何一个、前述结构的任何组合、或适于实现本文所述技术的任何其它结构或装置。另外,在一些方面中,本文所描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内提供,或并入组合的视频编码器-解码器(编解码器)中。
本公开的说明性示例包括:
示例1:一种处理视频数据的方法,该方法包括:获取视频数据的当前块;确定当前块的宽度和高度中的至少一个大于大小阈值;确定对于当前块不存在子分区分割标志;以及确定当前块的子分区分割标志的值,子分区分割标志定义当前块的分割,其中基于当前块的宽度或高度是否大于大小阈值来确定子分区分割标志的值。
示例2:根据示例1所述的方法,其中,在当前块的宽度大于大小阈值时,子分区分割标志被确定为具有第一值,该第一值对应于垂直分割。
示例3:根据示例1至2中的任一示例所述的方法,其中,在当前块的高度大于大小阈值时,子分区分割标志被确定为具有第二值,该第二值对应于水平分割。
示例4:根据示例1所述的方法,其中,在当前块的宽度大于大小阈值且当前块的高度小于大小阈值时,子分区分割标志被确定为具有第一值,该第一值对应于垂直分割。
示例5:根据示例1或4中的任一示例所述的方法,其中,在当前块的高度大于大小阈值且当前块的宽度小于大小阈值时,子分区分割标志被确定为具有第二值,该第二值对应于水平分割。
示例6:根据示例1至5中的任一示例所述的方法,其中,基于当前块的宽度和高度中的至少一个大于大小阈值不信令通知子分区分割标志。
示例7:根据示例1至6中的任一示例所述的方法,还包括:基于子分区分割标志将当前块垂直地或水平地分为子分区。
示例8:根据示例1至7中的任一示例所述的方法,其中当前块是帧内预测的块。
示例9:根据示例1至8中的任一示例所述的方法,其中当前块是亮度帧内预测的块。
示例10:一种装置,其包括被配置为存储视频数据和处理器的存储器,该处理器被配置为根据示例1至9中的任一示例所述的方法处理该视频数据。
示例11:根据示例10所述的装置,其中该装置包括解码器。
示例12:根据示例10所述的装置,其中该装置包括编码器。
示例13:根据示例10至12中的任一示例所述的装置,其中该装置是移动设备。
示例14:根据示例10至13中的任一示例所述的装置,其中该装置包括被配置为显示视频数据的显示器。
示例15:根据示例10至14中的任一示例所述的装置,其中该装置包括被配置成捕获一个或多个图片的照相机。
示例16:一种计算机可读介质,其上存储有当由处理器执行时执行示例1至9中的任一示例的方法的指令。
示例17:一种处理视频数据的方法,该方法包括:获取视频数据的当前块;确定当前块的宽度和高度中的至少一个大于大小阈值;以及将当前块划分成子分区,其中当前块被划分直到子分区的宽度和高度不超过大小阈值。
示例18:根据示例17所述的方法,其中划分当前块包括减小超过大小阈值的宽度和高度中的至少一个。
示例19:根据示例17至18中的任一示例所述的方法,其中将当前块划分成子分区包括当子分区分割类型为水平的或垂直的时使用变换树语法结构。
示例20:根据示例17至18中的任一示例所述的方法,还包括当编解码的块的宽度和高度中的至少一个大于大小阈值时,修改子分区数变量的值,该子分区数变量指定块被划分成的子分区的数量,其中,修改后的值使得子分区的宽度和高度中的至少一个不超过大小阈值。
示例21:根据示例17至18中的任一示例所述的方法,其中与当前块相关联的子分区模式标志的值约束子分区不超过宽度和高度中至少一个的大小阈值,子分区模式标志指定当前块是否被划分成多个块子分区。
示例22:根据示例21所述的方法,其中块子分区的数量由子分区数变量指定。
示例23:一种装置,其包括被配置为存储视频数据和处理器的存储器,该处理器被配置为根据示例17至22中的任一示例所述的方法处理该视频数据。
示例24:根据示例23所述的装置,其中该装置包括解码器。
示例25:根据示例23所述的装置,其中该装置包括编码器。
示例26:根据示例23至25中的任一示例所述的装置,其中该装置是移动设备。
示例27:根据示例23至26中的任一示例所述的装置,其中该装置包括被配置为显示视频数据的显示器。
示例28:根据示例23至27中的任一示例所述的装置,其中该装置包括被配置成捕获一个或多个图片的照相机。
示例29:一种计算机可读介质,其上存储有当由处理器执行时执行示例17-22中的任一示例所述的方法的指令。
示例30:一种处理视频数据的方法,该方法包括:获取视频数据的当前块;以及基于约束对当前块进行编解码,该约束指定当前块不跨越虚拟管线数据单元(VPDU)边界。
示例31:根据示例30所述的装置,其中约束指定,在当前块的宽度和高度中的至少一个大于VPDU的最大宽度或高度时,与当前块相关联的子分区模式标志的值应等于特定值,该特定值指定当前块不被划分成块子分区。
示例32:一种装置,其包括被配置为存储视频数据和处理器的存储器,该处理器被配置为根据示例30-31中的任一示例所述的装置处理该视频数据。
示例33:根据示例32所述的装置,其中该装置包括解码器。
示例34:根据示例32所述的装置,其中该装置包括编码器。
示例35:根据示例32至34中的任一示例所述的装置,其中该装置是移动设备。
示例36:根据示例32至35中的任一示例所述的装置,其中该装置包括被配置为显示视频数据的显示器。
示例37:根据示例32至36中的任一示例所述的装置,其中该装置包括被配置成捕获一个或多个图片的照相机。
示例38:一种计算机可读介质,其上存储有当由处理器执行时执行示例30-31中的任一示例所述的方法的指令。
第1条:一种用于编码视频数据的装置,该装置包括:存储器;以及处理器,在电路中实现的处理器,被配置为:获取视频数据的图片的当前块;确定图片的当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个,宽度大小阈值对应于数据单元的宽度并且高度大小阈值对应于数据单元的高度;基于当前块的宽度是否大于宽度大小阈值和当前块的高度是否大于高度大小阈值中的至少一个来确定是否要为当前块信令通知帧内子分区模式标志,其中帧内子分区模式标志的值指示当前块是否被划分成矩形变换块子分区;以及基于确定是否要为当前块信令通知帧内子分区模式标志来生成至少包括当前块的编码的视频比特流。
第2条:根据第1条所述的装置,其中,宽度大小阈值等于高度大小阈值。
第3条:根据第1-2条中的任一条所述的装置,其中,宽度大小阈值不同于高度大小阈值。
第4条:根据第1-3条中的任一条所述的装置,其中,帧内子分区模式标志的值等于第一值指定当前块被划分成矩形变换块子分区,并且帧内子分区模式标志的值等于第二值指定当前块不被划分成矩形变换块子分区。
第5条:根据第1-4条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的宽度大于宽度大小阈值或者当前块的高度大于高度大小阈值;以及基于当前块的宽度大于宽度大小阈值或者当前块的高度大于高度大小阈值的确定,确定当前块的帧内子分区模式标志的值等于第二值。
第6条:根据第1-5条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的宽度小于并且等于宽度大小阈值以及当前块的高度小于或等于高度大小阈值;以及基于确定当前块的宽度小于或等于宽度大小阈值并且当前块的高度小于或等于高度大小阈值,确定为当前块信令通知帧内子分区模式标志(例如,等于第一值或第二值)。
第7条:根据第1-6条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的宽度小于或等于大小阈值并且当前块的高度小于或等于大小阈值,该大小阈值对应于最大变换块大小;以及基于当前块的宽度小于或等于大小阈值并且当前块的高度小于或等于大小阈值的确定,确定为当前块信令通知帧内子分区模式标志(例如,等于第一值或第二值)。
第8条:根据第1-7条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的宽度小于或等于大小阈值或者当前块的高度小于或等于大小阈值,该大小阈值对应于最大变换块大小;以及基于当前块的宽度小于或等于大小阈值或者当前块的高度小于或等于大小阈值的确定,确定当前块的帧内子分区模式标志的值为第二值。
第9条:根据第1-8条中的任一条所述的装置,其中,处理器还被配置为:确定要为当前块信令通知帧内子分区模式标志;以及基于要为当前块信令通知帧内子分区模式标志的确定,在编码的视频比特流中包括当前块的帧内子分区模式标志。
第10条:根据第1-9条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度大于对应于最大变换块大小的大小阈值的确定,确定当前块的帧内子分区分割标志的值,该帧内子分区分割标志指定用于划分当前块的分割类型是水平分割的还是垂直分割的。
第11条:根据第1-10条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的宽度大于所述大小阈值;以及基于当前块的宽度大于大小阈值的确定,确定帧内子分区分割标志的第一分割值,该第一分割值对应于垂直分割类型。
第12条:根据第1-11条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的高度大于大小阈值;以及基于当前块的高度大于大小阈值的确定,确定帧内子分区分割标志的第二分割值,该第二分割值对应于水平分割类型。
第13条:根据第1-12条中的任一条所述的装置,其中,处理器还被配置为:基于当前块的帧内子分区分割标志的值,将当前块垂直地或水平地分成子分区。
第14条:根据第1-13条中的任一条所述的装置,其中,当前块是帧内预测的块。
第15条:根据第1-14条中的任一条所述的装置,其中,数据单元是虚拟管线数据单元(VPDU)。
第16条:根据第1-15条中的任一条所述的装置,其中,数据单元是变换块。
第17条:根据第1-16条中的任一条所述的装置,其中,宽度大小阈值和高度大小阈值等于最大变换块大小。
第18条:一种解码视频数据的方法,该方法包括:获取包括视频数据的编码视频比特流;确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的;确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值。
第19条:根据第18条所述的方法,还包括:确定对当前块启用帧内子分区模式标志;以及基于对当前块启用帧内子分区模式标志的确定,确定编码的视频比特流中不存在帧内子分区分割标志,其中基于对当前块启用帧内子分区模式标志,使用帧内子分区模式将当前块划分成矩形变换块子分区。
第20条:根据第18-19条中的任一条所述的方法,还包括:确定当前块的宽度大于所述大小阈值;以及基于当前块的宽度大于大小阈值的确定,确定帧内子分区分割标志的第一分割值,该第一分割值对应于垂直分割类型。
第21条:根据第18-20条中的任一条所述的方法,还包括:使用垂直分割类型将当前块分割成两个或更多个子块,其中基于垂直分割类型,两个或更多个子块中的每一个子块的相应宽度小于当前块的宽度。
第22条:根据第18-21条中的任一条所述的方法,还包括:确定当前块的高度大于所述大小阈值;以及基于当前块的高度大于大小阈值的确定,确定帧内子分区分割标志的第二分割值,该第二分割值对应于水平分割类型。
第23条:根据第18-22条中的任一条所述的方法,还包括:使用水平分割类型将当前块分割成两个或更多个子块,其中基于水平分割类型,两个或更多个子块中的每一个子块的相应高度小于当前块的高度。
第24条:根据第18-23条中的任一条所述的方法,还包括:确定编码的视频比特流中不存在用于对视频数据的第二块启用帧内子分区模式的帧内子分区模式标志;以及基于编码的视频比特流中不存在针对第二块的帧内子分区模式标志来确定第二块的帧内子分区模式标志的模式值。
第25条:根据第18-24条中的任一条所述的方法,其中,编码的视频比特流中不存在针对第二块的帧内子分区模式标志指示第二块的宽度大于宽度大小阈值或第二块的高度大于高度大小阈值中的至少一个,宽度大小阈值对应于数据单元的宽度并且高度大小阈值对应于数据单元的高度。
第26条:根据第18-25条中的任一条所述的方法,其中,宽度大小阈值等于高度大小阈值。
第27条:根据第18-26条中的任一条所述的方法,其中,宽度大小阈值不等于高度大小阈值。
第28条:根据第18-27条中的任一条所述的方法,其中,数据单元是虚拟管线数据单元(VPDU)。
第29条:根据第18-28条中的任一条所述的方法,其中,数据单元是变换块。
第30条:根据第18-29条中的任一条所述的方法,其中,宽度大小阈值和高度大小阈值等于最大变换块大小。
第31条:根据第18-30条中的任一条所述的方法,其中,当前块是帧内预测的块。
第32条:根据第18-31条中的任一条所述的方法,还包括:执行视频数据的块的基于块的划分,以生成包括当前块的一个或多个编解码块;确定对当前块启用帧内子分区模式;以及基于确定对当前块启用帧内子分区模式,使用帧内子分区模式将当前块划分成两个或更多个子块。
第33条:根据第18-32条中的任一条所述的方法,还包括:通过对两个或更多个子块应用相应的两个或更多个残差值来重建两个或更多个子块。
第34条:一种用于解码视频数据的装置,该装置包括:存储器;以及在电路中实现的存储器,被配置为:获取包括视频数据的编码视频比特流;确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平还是垂直;确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值。
第35条:根据第34条所述的装置,其中,处理器还被配置为:确定对当前块启用帧内子分区模式标志;以及基于对当前块启用帧内子分区模式标志的确定,确定编码的视频比特流中不存在帧内子分区分割标志,其中基于对当前块启用帧内子分区模式标志,使用帧内子分区模式将当前块划分成矩形变换块子分区。
第36条:根据第34-35条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的宽度大于所述大小阈值;以及基于当前块的宽度大于大小阈值的确定,确定帧内子分区分割标志的第一分割值,该第一分割值对应于垂直分割类型。
第37条:根据第34-36条中的任一条所述的装置,其中,处理器还被配置为:使用垂直分割类型将当前块分割成两个或更多个子块,其中基于垂直分割类型,两个或更多个子块中的每一个子块的相应宽度小于当前块的宽度。
第38条:根据第34-37条中的任一条所述的装置,其中,处理器还被配置为:确定当前块的高度大于大小阈值;以及基于确定当前块的高度大于大小阈值,确定帧内子分区分割标志的第二分割值,该第二分割值对应于水平分割类型。
第39条:根据第34-38条中的任一条所述的装置,其中,处理器还被配置为:使用水平分割类型将当前块分割成两个或更多个子块,其中基于水平分割类型,两个或更多个子块中的每一个子块的相应高度小于当前块的高度。
第40条:根据第34-39条中的任一条所述的装置,其中,处理器还被配置为:确定编码的视频比特流中不存在用于对视频数据的第二块启用帧内子分区模式的帧内子分区模式标志;以及基于编码的视频比特流中不存在针对第二块的帧内子分区模式标志,确定第二块的帧内子分区模式标志的模式值。
第41条:根据第34-40条中的任一条所述的装置,其中,编码的视频比特流中不存在针对第二块的帧内子分区模式标志指示第二块的宽度大于宽度大小阈值或第二块的高度大于高度大小阈值中的至少一个,宽度大小阈值对应于虚拟管线数据单元(VPDU)的宽度并且高度大小阈值对应于VPDU的高度。
第42条:根据第34-41条中的任一条所述的装置,其中,宽度大小阈值等于高度大小阈值。
第43条:根据第34-42条中的任一条所述的装置,其中,宽度大小阈值不等于高度大小阈值。
第44条:根据第34-43条中的任一条所述的装置,其中,数据单元是虚拟管线数据单元(VPDU)。
第45条:根据第34-44条中的任一条所述的装置,其中,数据单元是变换块。
第46条:根据第34-45条中的任一条所述的装置,其中,宽度大小阈值和高度大小阈值等于最大变换块大小。
第47条:根据第34-43条中的任一条所述的装置,其中,当前块是帧内预测的块。
第48条:根据第34-44条中的任一条所述的装置,其中,处理器还被配置为:执行视频数据的块的基于块的划分,以生成包括当前块的一个或多个编解码块;确定对当前块启用帧内子分区模式;以及基于确定对当前块启用帧内子分区模式,使用帧内子分区模式将当前块划分成两个或更多个子块。
第49条:根据第34-48条中的任一条所述的装置,其中,处理器还被配置为:通过对两个或更多个子块应用相应的两个或更多个残差值来重建两个或更多个子块。
第50条:根据第34-49条中的任一条所述的装置,其中,该装置包括具有用于捕获一个或多个图片的照相机的移动设备。
第51条:根据第34-50条中的任一条所述的装置,还包括用于显示一个或多个图片的显示器。
第52条:一种非暂时性计算机可读介质,其上存储有指令,当该指令由一个或多个处理器执行时,使得一个或多个处理器:获取包括视频数据的编码的视频比特流;确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的;确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值。
第53条:根据第52条所述的非暂时性计算机可读介质,其中,指令还使得处理器:确定对当前块启用帧内子分区模式标志;以及基于对当前块启用帧内子分区模式标志的确定,确定编码的视频比特流中不存在帧内子分区分割标志,其中基于对当前块启用帧内子分区模式标志,使用帧内子分区模式将当前块划分成矩形变换块子分区。
第54条:根据第52-53条中的任一条所述的非暂时性计算机可读介质,其中,指令还使得处理器:确定当前块的宽度大于大小阈值;以及基于当前块的宽度大于大小阈值的确定,确定帧内子分区分割标志的第一分割值,该第一分割值对应于垂直分割类型。
第55条:根据第52-54条中的任一条所述的非暂时性计算机可读介质,其中,指令还使得处理器:使用垂直分割类型将当前块分割成两个或更多个子块,其中基于垂直分割类型,两个或更多个子块中的每一个子块的相应宽度小于当前块的宽度。
第56条:根据第52-55条中的任一条所述的非暂时性计算机可读介质,其中,指令还得处理器:确定当前块的高度大于大小阈值;以及基于确定当前块的高度大于大小阈值,确定帧内子分区分割标志的第二分割值,该第二分割值对应于水平分割类型。
第57条:根据第52-56条中的任一条所述的非暂时性计算机可读介质,其中,指令还使得处理器:使用水平分割类型将当前块分割成两个或更多个子块,其中基于水平分割类型,两个或更多个子块中的每一个子块的相应高度小于当前块的高度。
第58条:根据第52-57条中的任何一条所述的非暂时性计算机可读介质,其中,指令还使得处理器:确定编码的视频比特流中不存在用于对视频数据的第二块启用帧内子分区模式的帧内子分区模式标志;以及基于编码的视频比特流中不存在针对第二块的帧内子分区模式标志来确定第二块的帧内子分区模式标志的模式值。
第59条:根据第52-58条中的任一条所述的非暂时性计算机可读介质,其中,编码的视频比特流中不存在针对第二块的帧内子分区模式标志指示第二块的宽度大于宽度大小阈值或第二块的高度大于高度大小阈值中的至少一个,宽度大小阈值对应于虚拟管线数据单元(VPDU)的宽度并且高度大小阈值对应于VPDU的高度。
第60条:根据第52-59条中的任一条所述的非暂时性计算机可读介质,其中,宽度大小阈值等于高度大小阈值。
第61条:根据第52-60条中的任一条所述的非暂时性计算机可读介质,其中,宽度大小阈值不等于高度大小阈值。
第62条:根据第52-61条中的任一条所述的非暂时性计算机可读介质,其中,数据单元是虚拟管线数据单元(VPDU)。
第64条:根据第52-62条中的任一条所述的非暂时性计算机可读介质,其中,数据单元是变换块。
第65条:根据第52-63条中的任一条所述的非暂时性计算机可读介质,其中,宽度大小阈值和高度大小阈值等于最大变换块大小。
第66条:根据第52-64条中的任一条所述的非暂时性计算机可读介质,其中,当前块是帧内预测的块。
第67条:根据第52-65条中的任一条所述的非暂时性计算机可读介质,其中,指令还使得处理器:执行视频数据的块的基于块的划分,以生成包括当前块的一个或多个编解码块;确定对当前块启用帧内子分区模式;以及基于确定对当前块启用帧内子分区模式,使用帧内子分区模式将当前块划分成两个或更多个子块。
第68条:根据第52-66条中的任一条所述的非暂时性计算机可读介质,其中,指令还使得处理器:通过对两个或更多个子块应用相应的两个或更多个残差值来重建两个或更多个子块。
第69条:一种用于解码视频数据的装置,该装置包括:用于获取包括视频数据的编码的视频比特流的部件;用于确定编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志的部件,该帧内子分区分割标志指定用于当前块的帧内子分区模式的分割类型是水平的还是垂直的;用于确定当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值的部件;以及用于基于当前块的宽度或高度是否大于大小阈值来确定当前块的帧内子分区分割标志的值的部件。
第70条:根据第69条所述的装置,还包括:用于确定对当前块启用帧内子分区模式标志的部件;以及用于基于对当前块启用帧内子分区模式标志的确定,确定编码的视频比特流中不存在帧内子分区分割标志,其中基于对当前块启用帧内子分区模式标志,使用帧内子分区模式将当前块划分成矩形变换块子分区的部件。
第71条:根据第69-70条中的任一条所述的装置,还包括:用于确定当前块的宽度大于大小阈值的部件;以及基于当前块的宽度大于大小阈值的确定,用于确定帧内子分区分割标志的第一分割值的部件,该第一分割值对应于垂直分割类型。
第72条:根据第69-71条中的任一条所述的装置,还包括:用于使用垂直划分类型将当前块划分成两个或更多个子块的部件,其中基于垂直划分类型,两个或更多个子块中的每一个子块的相应宽度小于当前块的宽度。
第73条:根据第69-72条中的任一条所述的装置,还包括:用于确定当前块的高度大于大小阈值的部件;以及基于当前块的高度大于大小阈值的确定,用于确定帧内子分区分割标志的第二分割值的部件,该第二分割值对应于水平分割类型。
第74条:根据第69-73条中的任一条所述的装置,还包括:用于使用水平分割类型将当前块分割成两个或更多个子块的部件,其中基于水平分割类型,两个或更多个子块中的每一个子块的相应高度小于当前块的高度。
第75条:根据第69-74条中的任一条所述的装置,还包括:用于确定编码的视频比特流中不存在用于对视频数据的第二块启用帧内子分区模式的帧内子分区模式标志的部件;以及用于基于编码视频比特流中不存在针对第二块的帧内子分区模式标志来确定第二块的帧内子分区模式标志的模式值的部件。
第76条:根据第69-75条中的任一条所述的装置,其中,编码的视频比特流中不存在针对第二块的帧内子分区模式标志指示第二块的宽度大于宽度大小阈值或第二块的高度大于高度大小阈值中的至少一个,宽度大小阈值对应于虚拟管线数据单元(VPDU)的宽度并且高度大小阈值对应于VPDU的高度。
第77条:根据第69-76条中的任一条所述的装置,其中,宽度大小阈值等于高度大小阈值。
第78条:根据第69-77条中的任一条所述的装置,其中,宽度大小阈值不等于高度大小阈值。
第79条:根据第69-78条中的任一条所述的装置,其中,数据单元是虚拟管线数据单元(VPDU)。
第80条:根据第69-79条中的任一条所述的装置,其中,数据单元是变换块。
第81条:根据第69-80条中的任一条所述的装置,其中,宽度大小阈值和高度大小阈值等于最大变换块大小。
第82条:根据第69-81条中的任一条所述的装置,其中,当前块是帧内预测的块。
第83条:根据第69-82条中的任一条所述的装置,还包括:用于执行视频数据的块的基于块的划分,以生成包括当前块的一个或多个编解码块的部件;用于确定对当前块启用帧内子分区模式的部件;以及基于确定对当前块启用帧内子分区模式,用于使用帧内子分区模式将当前块划分成两个或更多个子块的部件。
第84条:根据第69-83条中的任一条所述的装置,还包括:用于通过对两个或更多个子块应用相应的两个或更多个残差值来重建两个或更多个子块的部件。

Claims (69)

1.一种用于编码视频数据的装置,所述装置包括:
存储器;以及
在电路中实现的处理器,被配置为:
获取视频数据的图片的当前块;
确定所述图片的当前块的宽度是否大于宽度大小阈值和所述当前块的高度是否大于高度大小阈值中的至少一个,所述宽度大小阈值对应于数据单元的宽度并且所述高度大小阈值对应于所述数据单元的高度;
基于所述当前块的宽度是否大于所述宽度大小阈值和所述当前块的高度是否大于所述高度大小阈值中的至少一个来确定是否要为所述当前块信令通知帧内子分区模式标志,其中所述帧内子分区模式标志的值指示所述当前块是否被划分成矩形变换块子分区;以及
基于确定是否要为所述当前块信令通知所述帧内子分区模式标志来生成至少包括所述当前块的编码的视频比特流。
2.根据权利要求1所述的装置,其中,所述宽度大小阈值等于所述高度大小阈值。
3.根据权利要求1所述的装置,其中,所述宽度大小阈值不同于所述高度大小阈值。
4.根据权利要求1所述的装置,其中,所述帧内子分区模式标志的值等于第一值指定所述当前块被划分成矩形变换块子分区,并且所述帧内子分区模式标志的值等于第二值指定所述当前块不被划分成矩形变换块子分区。
5.根据权利要求4所述的装置,其中,所述处理器还被配置为:
确定所述当前块的宽度大于所述宽度大小阈值或所述当前块的高度大于所述高度大小阈值;以及
基于所述当前块的宽度大于所述宽度大小阈值或所述当前块的高度大于所述高度大小阈值的确定,确定所述当前块的帧内子分区模式标志的值等于所述第二值。
6.根据权利要求4所述的装置,其中,所述处理器还被配置为:
确定所述当前块的宽度小于或等于所述宽度大小阈值并且所述当前块的高度小于或等于所述高度大小阈值;以及
基于所述当前块的宽度小于或等于所述宽度大小阈值并且所述当前块的高度小于或等于所述高度大小阈值的确定,确定为所述当前块信令通知所述帧内子分区模式标志。
7.根据权利要求4所述的装置,其中,所述处理器还被配置为:
确定所述当前块的宽度小于或等于大小阈值并且所述当前块的高度小于或等于所述大小阈值,所述大小阈值对应于最大变换块大小;以及
基于所述当前块的宽度小于或等于所述大小阈值并且所述当前块的高度小于或等于所述大小阈值的确定,确定为所述当前块信令通知所述帧内子分区模式标志。
8.根据权利要求4所述的装置,其中,所述处理器还被配置为:
确定所述当前块的宽度小于或等于大小阈值或所述当前块的高度小于或等于所述大小阈值,所述大小阈值对应于最大变换块大小;以及
基于所述当前块的宽度小于或等于所述大小阈值或所述当前块的高度小于或等于所述大小阈值的确定,确定所述当前块的帧内子分区模式标志的值是所述第二值。
9.根据权利要求4所述的装置,其中,所述处理器还被配置为:
确定要为所述当前块信令通知所述帧内子分区模式标志;以及
基于要为所述当前块信令通知所述帧内子分区模式标志的确定,在所述编码的视频比特流中包括所述当前块的帧内子分区模式标志。
10.根据权利要求1所述的装置,其中,所述处理器还被配置为:
确定所述当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及
基于所述当前块的宽度或高度大于对应于所述最大变换块大小的所述大小阈值的确定,确定所述当前块的帧内子分区分割标志的值,所述帧内子分区分割标志指定用于划分所述当前块的分割类型是水平的还是垂直的。
11.根据权利要求10所述的装置,其中,所述处理器还被配置为:
确定所述当前块的宽度大于所述大小阈值;以及
基于所述当前块的宽度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第一分割值,所述第一分割值对应于垂直分割类型。
12.根据权利要求10所述的装置,其中,所述处理器还被配置为:
确定所述当前块的高度大于所述大小阈值;以及
基于所述当前块的高度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第二分割值,所述第二分割值对应于水平分割类型。
13.根据权利要求10所述的装置,其中,所述处理器还被配置为:
基于所述当前块的帧内子分区分割标志的值,将所述当前块垂直地或水平地分成子分区。
14.根据权利要求1所述的装置,其中,所述当前块是帧内预测的块。
15.根据权利要求1所述的装置,其中,所述数据单元是虚拟管线数据单元(VPDU)。
16.根据权利要求1所述的装置,其中,所述数据单元是变换块。
17.根据权利要求16所述的装置,其中,所述宽度大小阈值和所述高度大小阈值等于最大变换块大小。
18.一种解码视频数据的方法,所述方法包括:
获取包括视频数据的编码的视频比特流;
确定所述编码的视频比特流中不存在针对所述视频数据的当前块的帧内子分区分割标志,所述帧内子分区分割标志指定用于所述当前块的帧内子分区模式的分割类型是水平的还是垂直的;
确定所述当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及
基于所述当前块的宽度或高度是否大于所述大小阈值来确定所述当前块的帧内子分区分割标志的值。
19.根据权利要求18所述的方法,还包括:
确定对所述当前块启用帧内子分区模式标志;以及
基于对所述当前块启用所述帧内子分区模式标志的确定,确定所述编码的视频比特流中不存在所述帧内子分区分割标志,其中基于对所述当前块启用所述帧内子分区模式标志,使用所述帧内子分区模式将所述当前块划分成矩形变换块子分区。
20.根据权利要求18所述的方法,还包括:
确定所述当前块的宽度大于所述大小阈值;以及
基于所述当前块的宽度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第一分割值,所述第一分割值对应于垂直分割类型。
21.根据权利要求20所述的方法,还包括:
使用所述垂直分割类型将所述当前块分割成两个或更多个子块,其中基于所述垂直分割类型,所述两个或更多个子块中的每一个子块的相应宽度小于所述当前块的宽度。
22.根据权利要求18所述的方法,还包括:
确定所述当前块的高度大于所述大小阈值;以及
基于所述当前块的高度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第二分割值,所述第二分割值对应于水平分割类型。
23.根据权利要求22所述的方法,还包括:
使用所述水平分割类型将所述当前块分割成两个或更多个子块,其中基于所述水平分割类型,所述两个或更多个子块中的每一个子块的相应高度小于所述当前块的高度。
24.根据权利要求18所述的方法,还包括:
确定所述编码的视频比特流中不存在用于对所述视频数据的第二块启用所述帧内子分区模式的帧内子分区模式标志;以及
基于所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志,确定所述第二块的帧内子分区模式标志的模式值。
25.根据权利要求24所述的方法,其中,所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志指示所述第二块的宽度大于宽度大小阈值或所述第二块的高度大于高度大小阈值中的至少一个,所述宽度大小阈值对应于数据单元的宽度并且所述高度大小阈值对应于所述数据单元的高度。
26.根据权利要求25所述的方法,其中,所述宽度大小阈值等于所述高度大小阈值。
27.根据权利要求25所述的方法,其中,所述宽度大小阈值不等于所述高度大小阈值。
28.根据权利要求25所述的方法,其中,所述数据单元是虚拟管线数据单元(VPDU)。
29.根据权利要求25所述的方法,其中,所述数据单元是变换块。
30.根据权利要求29所述的方法,其中,所述宽度大小阈值和所述高度大小阈值等于最大变换块大小。
31.根据权利要求18所述的方法,其中,所述当前块是帧内预测的块。
32.根据权利要求18所述的方法,还包括:
执行视频数据的块的基于块的划分,以生成包括所述当前块的一个或多个编解码块;
确定对所述当前块启用所述帧内子分区模式;以及
基于确定对所述当前块启用所述帧内子分区模式,使用所述帧内子分区模式将所述当前块划分成两个或更多个子块。
33.根据权利要求32所述的方法,还包括:
通过对所述两个或更多个子块应用相应的两个或更多个残差值来重建所述两个或更多个子块。
34.一种用于解码视频数据的装置,所述装置包括:
存储器;以及
在电路中实现的处理器,被配置为:
获取包括视频数据的编码的视频比特流;
确定所述编码的视频比特流中不存在针对视频数据的当前块的帧内子分区分割标志,所述帧内子分区分割标志指定用于所述当前块的帧内子分区模式的分割类型是水平的还是垂直的;
确定所述当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及
基于所述当前块的宽度或高度是否大于所述大小阈值来确定所述当前块的帧内子分区分割标志的值。
35.根据权利要求34所述的装置,其中,所述处理器还被配置为:
确定对所述当前块启用帧内子分区模式标志;以及
基于对所述当前块启用所述帧内子分区模式标志的确定,确定所述编码的视频比特流中不存在所述帧内子分区分割标志,其中基于对所述当前块启用所述帧内子分区模式标志,使用所述帧内子分区模式将所述当前块划分成矩形变换块子分区。
36.根据权利要求34所述的装置,其中,所述处理器还被配置为:
确定所述当前块的宽度大于所述大小阈值;以及
基于所述当前块的宽度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第一分割值,所述第一分割值对应于垂直分割类型。
37.根据权利要求36所述的装置,其中,所述处理器还被配置为:
使用所述垂直分割类型将所述当前块分割成两个或更多个子块,其中基于所述垂直分割类型,所述两个或更多个子块中的每一个子块的相应宽度小于所述当前块的宽度。
38.根据权利要求34所述的装置,其中,所述处理器还被配置为:
确定所述当前块的高度大于所述大小阈值;以及
基于所述当前块的高度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第二分割值,所述第二分割值对应于水平分割类型。
39.根据权利要求38所述的装置,其中,所述处理器还被配置为:
使用所述水平分割类型将所述当前块分割成两个或更多个子块,其中基于所述水平分割类型,所述两个或更多个子块中的每一个子块的相应高度小于所述当前块的高度。
40.根据权利要求34所述的装置,其中,所述处理器还被配置为:
确定所述编码的视频比特流中不存在用于对所述视频数据的第二块启用所述帧内子分区模式的帧内子分区模式标志;以及
基于所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志,确定所述第二块的帧内子分区模式标志的模式值。
41.根据权利要求40所述的装置,其中,所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志指示所述第二块的宽度大于宽度大小阈值或所述第二块的高度大于高度大小阈值中的至少一个,所述宽度大小阈值对应于数据单元的宽度并且所述高度大小阈值对应于所述数据单元的高度。
42.根据权利要求41所述的装置,其中,所述宽度大小阈值等于所述高度大小阈值。
43.根据权利要求41所述的装置,其中,所述宽度大小阈值不等于所述高度大小阈值。
44.根据权利要求41所述的装置,其中,所述数据单元是虚拟管线数据单元(VPDU)。
45.根据权利要求41所述的装置,其中,所述数据单元是变换块。
46.根据权利要求45所述的装置,其中,所述宽度大小阈值和所述高度大小阈值等于最大变换块大小。
47.根据权利要求34所述的装置,其中,所述当前块是帧内预测的块。
48.根据权利要求34所述的装置,其中,所述处理器还被配置为:
执行视频数据的块的基于块的划分,以生成包括所述当前块的一个或多个编解码块;
确定对所述当前块启用所述帧内子分区模式;以及
基于确定对所述当前块启用所述帧内子分区模式,使用所述帧内子分区模式将所述当前块划分成两个或更多个子块。
49.根据权利要求48所述的装置,其中,所述处理器还被配置为:
通过对所述两个或更多个子块应用相应的两个或更多个残差值来重建所述两个或更多个子块。
50.根据权利要求34所述的装置,其中,所述装置包括具有用于捕获一个或多个图片的照相机的移动设备。
51.根据权利要求34所述的装置,还包括用于显示一个或多个图片的显示器。
52.一种非暂时性计算机可读介质,其上存储有指令,当所述指令由一个或多个处理器执行时,使得所述一个或多个处理器:
获取包括视频数据的编码的视频比特流;
确定所述编码的视频比特流中不存在针对所述视频数据的当前块的帧内子分区分割标志,所述帧内子分区分割标志指定用于所述当前块的帧内子分区模式的分割类型是水平的还是垂直的;
确定所述当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值;以及
基于所述当前块的宽度或高度是否大于所述大小阈值来确定所述当前块的帧内子分区分割标志的值。
53.根据权利要求52所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
确定对所述当前块启用帧内子分区模式标志;以及
基于对所述当前块启用所述帧内子分区模式标志的确定,确定所述编码的视频比特流中不存在所述帧内子分区分割标志,其中基于对所述当前块启用所述帧内子分区模式标志,使用所述帧内子分区模式将所述当前块划分成矩形变换块子分区。
54.根据权利要求52所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
确定所述当前块的宽度大于所述大小阈值;以及
基于所述当前块的宽度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第一分割值,所述第一分割值对应于垂直分割类型;以及
使用所述垂直分割类型将所述当前块分割成两个或更多个子块,其中基于所述垂直分割类型,所述两个或更多个子块中的每一个子块的相应宽度小于所述当前块的宽度。
55.根据权利要求52所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
确定所述当前块的高度大于所述大小阈值;以及
基于所述当前块的高度大于所述大小阈值的确定,确定所述帧内子分区分割标志的第二分割值,所述第二分割值对应于水平分割类型;以及
使用所述水平分割类型将所述当前块分割成两个或更多个子块,其中基于所述水平分割类型,所述两个或更多个子块中的每一个子块的相应高度小于所述当前块的高度。
56.根据权利要求52所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
确定所述编码的视频比特流中不存在用于对所述视频数据的第二块启用所述帧内子分区模式的帧内子分区模式标志;以及
基于所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志,确定所述第二块的帧内子分区模式标志的模式值。
57.根据权利要求56所述的非暂时性计算机可读介质,其中,所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志指示所述第二块的宽度大于宽度大小阈值或所述第二块的高度大于高度大小阈值中的至少一个,所述宽度大小阈值对应于数据单元的宽度并且所述高度大小阈值对应于所述数据单元的高度。
58.根据权利要求57所述的非暂时性计算机可读介质,其中,所述宽度大小阈值等于所述高度大小阈值。
59.根据权利要求57所述的非暂时性计算机可读介质,其中,所述宽度大小阈值不等于所述高度大小阈值。
60.根据权利要求57所述的非暂时性计算机可读介质,其中,所述数据单元是虚拟管线数据单元(VPDU)。
61.根据权利要求57所述的非暂时性计算机可读介质,其中,所述数据单元是变换块。
62.根据权利要求57所述的非暂时性计算机可读介质,其中,所述宽度大小阈值和所述高度大小阈值等于最大变换块大小。
63.根据权利要求52所述的非暂时性计算机可读介质,其中,所述当前块是帧内预测的块。
64.一种用于解码视频数据的装置,所述装置包括:
用于获取包括视频数据的编码的视频比特流的部件;
用于确定所述编码的视频比特流中不存在针对所述视频数据的当前块的帧内子分区分割标志的部件,所述帧内子分区分割标志指定用于所述当前块的帧内子分区模式的分割类型是水平的还是垂直的;
用于确定所述当前块的宽度和高度中的至少一个大于对应于最大变换块大小的大小阈值的部件;以及
用于基于所述当前块的宽度或高度是否大于所述大小阈值来确定所述当前块的帧内子分区分割标志的值的部件。
65.根据权利要求64所述的装置,还包括:
用于确定所述编码的视频比特流中不存在用于对所述视频数据的第二块启用所述帧内子分区模式的帧内子分区模式标志的部件;以及
用于基于所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志,确定所述第二块的帧内子分区模式标志的模式值的部件。
66.根据权利要求65所述的装置,其中,所述编码的视频比特流中不存在针对所述第二块的所述帧内子分区模式标志指示所述第二块的宽度大于宽度大小阈值或所述第二块的高度大于高度大小阈值中的至少一个,所述宽度大小阈值对应于数据单元的宽度并且所述高度大小阈值对应于所述数据单元的高度。
67.根据权利要求66所述的装置,其中,所述数据单元是虚拟管线数据单元(VPDU)。
68.根据权利要求66所述的装置,其中,所述数据单元是变换块。
69.根据权利要求68所述的装置,其中,所述宽度大小阈值和所述高度大小阈值等于最大变换块大小。
CN202080011442.XA 2019-02-05 2020-01-31 改进的子分区帧内预测 Pending CN113366837A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962801625P 2019-02-05 2019-02-05
US62/801,625 2019-02-05
US16/777,732 2020-01-30
US16/777,732 US20200252608A1 (en) 2019-02-05 2020-01-30 Sub-partition intra prediction
PCT/US2020/016260 WO2020163182A2 (en) 2019-02-05 2020-01-31 Improved sub-partition intra prediction

Publications (1)

Publication Number Publication Date
CN113366837A true CN113366837A (zh) 2021-09-07

Family

ID=71835808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080011442.XA Pending CN113366837A (zh) 2019-02-05 2020-01-31 改进的子分区帧内预测

Country Status (6)

Country Link
US (2) US20200252608A1 (zh)
EP (1) EP3922020A2 (zh)
KR (1) KR20210119992A (zh)
CN (1) CN113366837A (zh)
TW (1) TW202037163A (zh)
WO (1) WO2020163182A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024012263A1 (zh) * 2022-07-14 2024-01-18 广州市百果园信息技术有限公司 一种视频编码处理方法、装置、设备及存储介质

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102657933B1 (ko) * 2018-03-30 2024-04-22 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 인트라 예측 기반 영상/비디오 코딩 방법 및 그 장치
US10893286B2 (en) * 2018-10-09 2021-01-12 Tencent America LLC Methods and apparatus for low-complexity MTS
US11272198B2 (en) * 2019-01-30 2022-03-08 Tencent America LLC Method and apparatus for improved sub-block partitioning intra sub-partitions coding mode
KR20230049758A (ko) * 2019-02-05 2023-04-13 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 인트라 서브-파티션 코드 모드를 이용한 비디오 코딩
KR20230025036A (ko) * 2019-02-21 2023-02-21 엘지전자 주식회사 인트라 예측을 위한 비디오 신호의 처리 방법 및 장치
KR20210102462A (ko) * 2019-02-24 2021-08-19 엘지전자 주식회사 이차 변환에 기반한 영상 코딩 방법 및 그 장치
KR20200110214A (ko) * 2019-03-12 2020-09-23 현대자동차주식회사 예측 유닛을 서브 유닛들로 분할하여 예측하는 인트라 예측 방법 및 장치
US11025909B2 (en) * 2019-03-21 2021-06-01 Tencent America LLC Method and apparatus for video coding
US11677969B2 (en) * 2019-03-22 2023-06-13 Tencent America LLC Method and apparatus for video coding
WO2020197038A1 (ko) * 2019-03-22 2020-10-01 엘지전자 주식회사 영상 코딩 시스템에서 인트라 서브 파티션 기반의 인트라 예측 방법 및 장치
US11032543B2 (en) * 2019-03-22 2021-06-08 Tencent America LLC Method and apparatus for video coding
EP3734972A1 (en) * 2019-05-03 2020-11-04 InterDigital VC Holdings, Inc. High level syntax simplified video coding tool set for small blocks
MX2021012503A (es) * 2019-06-21 2021-11-12 Panasonic Ip Corp America Sistema y metodo de codificacion de video.
MX2022000028A (es) * 2019-06-24 2022-03-11 Lg Electronics Inc Método y aparato de codificación/decodificación de imágenes usando ajuste de tamaño de transformación máximo para bloque de croma, y método para transmitir flujo de bits.
KR20220037434A (ko) * 2019-06-25 2022-03-24 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 인트라 서브 파티션들을 위한 코딩을 포함하는 디코더, 인코더, 및 방법들
US11190777B2 (en) * 2019-06-30 2021-11-30 Tencent America LLC Method and apparatus for video coding
EP3987776A4 (en) 2019-07-26 2022-10-19 Beijing Bytedance Network Technology Co., Ltd. USING A VIDEO CODING MODE BASED ON A BLOCK SIZE
US11438616B2 (en) * 2019-08-27 2022-09-06 Tencent America LLC Method and apparatus for video coding
US20220345701A1 (en) * 2019-09-17 2022-10-27 Vid Scale, Inc. Intra sub-partitions related infra coding
MX2022003321A (es) * 2019-09-21 2022-05-06 Lg Electronics Inc Metodo de codificacion de imagenes a base de transformacion y dispositivo para el mismo.
US11818395B2 (en) 2021-04-22 2023-11-14 Electronics And Telecommunications Research Institute Immersive video decoding method and immersive video encoding method
WO2022242729A1 (en) * 2021-05-19 2022-11-24 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104685874A (zh) * 2012-07-27 2015-06-03 摩托罗拉移动有限责任公司 用于在高效率视频编解码中处理分区模式的设备和方法
CN105247871A (zh) * 2014-03-04 2016-01-13 微软技术许可有限责任公司 帧内块复制预测中的块翻动和跳跃模式

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112020002205A2 (pt) * 2017-08-22 2020-07-28 Panasonic Intellectual Property Corporation Of America codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem
BR112021000667A8 (pt) * 2018-07-14 2023-02-07 Mediatek Inc Método e aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição e meio legível por computador não transitório
KR20210084567A (ko) * 2018-11-28 2021-07-07 주식회사 윌러스표준기술연구소 화면 내 예측 필터링을 이용한 비디오 신호 처리 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104685874A (zh) * 2012-07-27 2015-06-03 摩托罗拉移动有限责任公司 用于在高效率视频编解码中处理分区模式的设备和方法
CN105247871A (zh) * 2014-03-04 2016-01-13 微软技术许可有限责任公司 帧内块复制预测中的块翻动和跳跃模式

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS等: "Versatile Video Coding (Draft 4)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 JVET-M1001-V1, 18 January 2019 (2019-01-18), pages 7 *
JIANLE CHEN等: "Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 JVET-L1002-V1, 12 October 2018 (2018-10-12), pages 2 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024012263A1 (zh) * 2022-07-14 2024-01-18 广州市百果园信息技术有限公司 一种视频编码处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2020163182A3 (en) 2020-09-17
US20230232000A1 (en) 2023-07-20
WO2020163182A2 (en) 2020-08-13
EP3922020A2 (en) 2021-12-15
TW202037163A (zh) 2020-10-01
KR20210119992A (ko) 2021-10-06
US20200252608A1 (en) 2020-08-06

Similar Documents

Publication Publication Date Title
US20230232000A1 (en) Sub-partition intra prediction
US10999594B2 (en) Virtual search area for current picture referencing (CPR) and intra block copy (IBC)
EP3158736B1 (en) Systems and methods for intra-block copy
CN113711595B (zh) 针对帧内预测模式推导的基于块的量化残差域脉冲编解码调制分配
US20150373362A1 (en) Deblocking filter design for intra block copy
KR102401406B1 (ko) 시퀀스 종료 네트워크 추상화 계층 유닛을 사용한 개선된 비디오 코딩
CN113728634A (zh) 自适应环路滤波器(alf)参数的自适应参数集(aps)
AU2016298172A1 (en) Methods and systems of restricting bi-prediction in video coding
KR20220030988A (ko) 스위칭가능 필터들로의 레퍼런스 픽처 리샘플링
US11272201B2 (en) Block size restriction for illumination compensation
CN114982246A (zh) 环路滤波器的自适应舍入
CN113228677A (zh) 用于照度补偿模式的修剪
JP2023552980A (ja) 高ビット深度ビデオコーディングのライスパラメータ導出のための低複雑度の履歴使用

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination