CN116918330A - 对非二元块的残差编解码 - Google Patents

对非二元块的残差编解码 Download PDF

Info

Publication number
CN116918330A
CN116918330A CN202280016329.XA CN202280016329A CN116918330A CN 116918330 A CN116918330 A CN 116918330A CN 202280016329 A CN202280016329 A CN 202280016329A CN 116918330 A CN116918330 A CN 116918330A
Authority
CN
China
Prior art keywords
block
codec
video
binary
last
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
CN202280016329.XA
Other languages
English (en)
Inventor
张凯
张莉
邓智玭
张娜
王洋
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.)
Douyin Vision Co Ltd
ByteDance Inc
Original Assignee
Douyin Vision Co Ltd
ByteDance 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 Douyin Vision Co Ltd, ByteDance Inc filed Critical Douyin Vision Co Ltd
Publication of CN116918330A publication Critical patent/CN116918330A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details

Landscapes

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

Abstract

公开了一种用于处理视频数据的机制。基于是非二元且包含残差的块的宽度(W)和高度(H),确定编解码组的(w)和高度(h)。基于对块的编解码组的应用,在可视媒体数据和比特流之间执行转换。

Description

对非二元块的残差编解码
相关申请的交叉引用
本专利申请要求第PCT/CN2021/077373号国际申请的权益,该国际申请由KaiZhang等发明人于2021年2月23日提交且标题为“对非二元块的残差编解码”,上述国际申请通过引用并入本文。
技术领域
本专利文档涉及文件格式的数字音频视频媒体信息的生成、存储和消费。
背景技术
在互联网和其他数字通信网络中,数字视频占用了最大的带宽。随着能够接收和显示视频的连接用户设备数的增加,预计数字视频使用的带宽需求将继续增长。
发明内容
第一方面涉及一种用于处理视频数据的方法,包括:基于是非二元且包含残差的块的宽度(W)和高度(H)来确定编解码组的宽度(w)和高度(h);以及基于对所述块的所述编解码组的应用来执行可视媒体数据和比特流之间的转换。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了所述转换包括要求W和H为k×N的形式的规则,其中k为正整数且N为大于1的整数,并且其中,所述编解码组尺寸被设置为k×N。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了所述转换包括要求W=m×w且H=n×h的规则,其中,m和n为正整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了所述转换包括要求w和h为2k的形式的规则,其中,k为正整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当W%M等于零时w被设置为M,其中,M是整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当W%M不等于零时w不被允许设置为M,其中,M为整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当H%M等于零时h被设置为M,其中,M是整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当H%M不等于零时h不被允许设置为M,其中,M为整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了w被设置为M,其中M是满足W%M等于0的小于最大值的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了h被设置为M,其中M为满足H%M等于0的小于最大值的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当W>=4且H>=4时以及当W%4==0且H%4==0时,w=h=4,其中,当W>=4且H>=4时以及当W%4==0且H%4!=0时,w=4且h<4,其中,当W>=4且H>=4时以及当W%4!=0且H%4==0时,w<4且h=4,其中,当W>=4且H>=4时以及当W%4!=0且H%4!=0时,w=2且h=2,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当W>=4且H<4时以及当H==2时,h=2,并且当W%8==0时,w=8,否则w=2,其中,当W>=4且H<4时以及当H==1时,h=1且w被设置为M,其中M是满足W%M等于0的小于16的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当H>=4且W<4时以及当W==2时,w=2,并且当H%8==0时,h=8,否则h=2,其中,当H>=4且W<4时以及当W==1时,w=1且h被设置为M,其中M是满足H%M等于0的小于16的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当W>=8且W%8==0时,w=8,其中,当H>=8且H%8==0时,h=8,并且其中,所述编解码组尺寸被设置为w×h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了w和h是从表示为table[idx0][idx1]的表中提取的,其中idx0取决于W且idx1取决于H,并且其中,所述编解码组尺寸被设置为w x h。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了w和h是从二元块的宽度(W’)和高度(H’)导出的,使得W’<=W,H’<=H,且W’×H’!=W×H。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了基于W是否为非二元的且基于H是否为非二元的来确定所述块中的最后有效系数的位置。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了所述最后有效系数的位置被表示为水平位置(last_sig_coeff_x_prefix)和垂直位置last_sig_coeff_y_prefix,其中,last_sig_coeff_x_prefix是基于W确定的,并且last_sig_coeff_y_prefix是基于H确定的。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了last_sig_coeff_x_prefix是基于根据或/>计算的变换块宽度(log2TbWidth)的二进制对数来确定的。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了last_sig_coeff_y_prefix是基于根据或/>计算的变换块高度(log2TbHeight)的二进制对数来确定的。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了当W为非二元的时,last_sig_coeff_x_prefix在所述比特流中被编解码作为截断二进制(TB)码,并且其中,当H为非二元的时,last_sig_coeff_y_prefix在所述比特流中被编解码作为TB码。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了基于W是否为非二元的且基于H是否为非二元的来确定所述块中的系数的扫描顺序。
可选地,在前述方面中的任一方面中,该方面的另一个实施方式提供了根据来确定所述块的允许的上下文编解码的bin的数量,其中,M和N为整数。
第二方面涉及一种非暂时性计算机可读介质,包括供视频编解码装置使用的计算机程序产品,所述计算机程序产品包括存储在所述非暂时性计算机可读介质上的计算机可执行指令,使得所述计算机可执行指令当由处理器执行时使得所述视频编解码装置执行前述方面中任一方面所述的方法。
第三方面涉及一种用于处理视频数据的设备,包括:处理器;以及其上具有指令的非暂时性存储器,其中,所述指令在由所述处理器执行时使得所述处理器执行前述方面中任一方面所述的方法。
为了清楚起见,任何一个前述实施例都可以与任何一个或多个其他前述实施例相结合,以在本公开的范围内创建新的实施例。
根据结合附图和权利要求进行的以下详细描述,将更清楚地理解这些和其他特征。
附图说明
为了更完整地理解本公开,现在参考以下结合附图和具体实施方式的简要描述,其中相同的附图标记表示相同的部分。
图1是用于视频编解码的示例编码和解码(编解码器)的示意图;
图2是示例宏块分区的示意图;
图3是例如根据高效视频编解码(HEVC)用于分割编解码块的示例模式的示意图;
图4是用于分割图片以对残差进行编解码的示例方法的示意图;
图5是例如根据四叉树二叉树(QTBT)结构分割图片的示例方法的示意图;
图6是多功能视频编解码(VVC)中使用的示例分割结构的示意图;
图7是示例扩展四叉树(EQT)分割结构的示意图;
图8是示例灵活树(FT)分割结构的示意图;
图9是示例广义TT(GTT)分割结构的示意图;
图10是示例边界分割树的示意图;
图11是音频和视频编解码标准(AVS)第三部分(AVS-3.0)中使用的示例分割结构的示意图;
图12是示例非对称四叉树(UQT)分割结构的示意图;
图13是示例扩展三元树(ETT)分割结构的示意图;
图14是示例1/4非对称二叉树(UBT)分割结构的示意图;
图15是残差变换的示例的示意图;
图16是示出向残差块应用编解码组以用于变换的示例的示意图;
图17是示出示例视频处理***的框图;
图18是示例视频处理设备的框图;
图19是用于视频处理的示例方法的流程图;
图20是示出示例视频编解码***的框图;
图21是示出示例编码器的框图;
图22是示出示例解码器的框图;
图23是示例编码器的示意图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实施方式,但可使用任何数量的技术实施所公开的***和/或方法,无论是当前已知的还是待开发的。本公开不应以任何方式限于以下示出的示例性实施方式、附图和技术,包括在此示出和描述的示例性设计和实施方式,而是可以在所附权利要求及其等同物的全部范围内进行修改。
多功能视频编解码(VVC),也称为H.266,在一些描述中使用术语只是为了便于理解,而不是为了限制所公开技术的范围。因此,本文所描述的技术也可应用于其他视频编解码器协议和设计。在本文档中,相对于VVC规范或国际标准化组织(ISO)基本媒体文件格式(ISOBMFF)文件格式规范,通过粗体斜体表示删除的文本以及粗体下划线表示添加的文本来显示对文本的编辑更改。
本文档涉及图像/视频编解码,并且更具体地,涉及对一些特殊类型的块的变换。所公开的机制可以应用于诸如高效视频编解码(HEVC)和/或多功能视频编解码(VVC)的视频编解码标准。这样的机制也可以应用于其他视频编解码标准和/或视频编解码器。
视频编解码标准主要是通过开发国际电信联盟(ITU)电信标准化部门(ITU-T)和国际标准化组织(ISO)/国际电工委员会(IEC)标准而演进来的。ITU-T制定了H.261标准和H.263标准,ISO/IEC制定了运动图片专家组(MPEG)第一阶段(MPEG-1)和MPEG第四阶段(MPEG-4)可视标准,并且这两个组织联合制定了H.262/MPEG第二阶段(MPEG-2)视频标准、H.264/MPEG-4高级视频编解码(AVC)标准和H.265/高效视频编解码(HEVC)标准。自H.262以来,视频编解码标准基于利用时域预测加上变换编解码的混合视频编码结构。
图1是例如根据HEVC的用于视频编解码的示例编码和解码(编解码器)的示意图。例如,编解码器100提供支持通过对图片进行编码和/或解码来将视频文件转换为比特流的功能。编解码器100被概括为描述在编码器和解码器中采用的部件。编解码器100接收图片流作为视频信号101,并对图片进行分割。编解码器100然后在充当编码器时将视频信号101中的图片压缩成编解码的比特流。当充当解码器时,编解码器***100根据比特流生成输出视频信号。编解码器100包括通用编解码器控制部件111、变换缩放和量化部件113、帧内图片估计部件115、帧内图片预测部件117、运动补偿部件119、运动估计部件121、缩放和逆变换部件129、滤波器控制分析部件127、环路滤波器部件125、解码图片缓冲器部件123以及标头格式化和上下文自适应二进制算术编解码(CABAC)部件131。这些部件如图所示进行耦合。在图1中,黑线指示要被编码/解码的数据的移动,而虚线指示控制其他部件的操作的控制数据的移动。编解码器100的部件可以全部存在于编码器中。解码器可以包括编解码器100的部件的子集。例如,解码器可以包括帧内图片预测部件117、运动补偿部件119、缩放和逆变换部件129、环路滤波器部件125和解码图片缓冲器部件123。现在对这些部件进行描述。
视频信号101是已被编解码树分割为像素块的捕获视频序列。编解码树采用各种划分模式将像素块细分为较小的像素块。然后可以将这些块进一步细分为更小的块。这些块可以被称为编解码树上的节点。较大的父节点划分为较小的子节点。节点被细分的次数被称为节点/编解码树的深度。在一些情况下,划分的块可以被包括在编解码单元(CU)中。例如,CU可以是CTU的子部分,包含亮度块、红差色度(Cr)块和蓝差色度(Cb)块以及CU的对应语法指令。划分模式可以包括用于将节点分别分割为两个子节点、三个子节点或四个子节点的取决于所采用的划分模式而具有不同形状的二叉树(BT)、三叉树(TT)和四叉树(QT)。视频信号101被转发到通用编解码器控制部件111、变换缩放和量化部件113、帧内图片估计部件115、滤波器控制分析部件127和运动估计部件121以用于压缩。
通用编解码器控制部件111被配置为根据应用约束做出与将视频序列的图像编码到比特流中有关的决定。例如,通用编解码器控制部件111管理比特率/比特流尺寸相对于重构质量的优化。可以基于存储空间/带宽可用性和图像分辨率请求来做出这样的决定。通用编解码器控制部件111还根据传输速度来管理缓冲器利用率,以减轻缓冲器不足和溢出问题。为了管理这些问题,通用编解码器控制部件111通过其他部件来管理分割、预测和滤波。例如,通用编解码器控制部件111可以增加压缩复杂度以增加分辨率并增加带宽使用,或者降低压缩复杂度来降低分辨率和带宽使用。因此,通用编解码器控制部件111控制编解码器100的其他部件以平衡视频信号重构质量与比特率问题。通用编解码器控制部件111创建控制其他部件的操作的控制数据。控制数据还被转发到标头格式化和CABAC部件131以被编码在比特流中,从而信令通知用于在解码器处解码的参数。
视频信号101还被发送到运动估计部件121和运动补偿部件119以用于帧间预测。视频信号101的视频单元(例如,图片、条带、CTU等)可以被划分为多个块。运动估计部件121和运动补偿部件119执行相对于一个或多个参考图片中的一个或多个块的接收到的视频块的帧间预测编解码,以提供时域预测。编解码器***100可以执行多次编解码,例如,为视频数据的每个块选择适当的编解码模式。
运动估计部件121和运动补偿部件119可以被高度集成,但出于概念目的被单独示出。由运动估计部件121执行的运动估计是生成运动矢量的过程,这些运动矢量估计视频块的运动。例如,运动矢量可以指示当前块中的编解码对象相对于参考块的位移。参考块是被发现在像素差方面与要被编解码的块紧密匹配的块。这样的像素差可以由绝对差之和(SAD)、平方差之和(SSD)或其他差值度量来确定。HEVC采用了若干个编解码对象,包括CTU、编解码树块(CTB)和CU。例如,CTU可以被划分为CTB,然后CTB可以被划分成CB以包含在CU中。CU可以被编码为包含预测数据的预测单元(PU)和/或包含CU的变换残差数据的变换单元(TU)。运动估计部件121通过使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计部件121可以为当前块/帧确定多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重构的质量(例如,压缩造成的数据丢失量)和编解码效率(例如,最终编码的尺寸)。
在一些示例中,编解码器100可以计算存储在解码图片缓冲器部件123中的参考图片的子整数像素位置的值。例如,视频编解码器100可以***参考图片的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计部件121可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计部件121通过将PU的位置与参考图片的参考块的位置进行比较来计算用于帧间编解码条带中的视频块的PU的运动矢量。运动估计部件121将所计算的运动矢量作为运动数据输出到标头格式化和CABAC部件131以进行编码,并输出到运动补偿部件119。
由运动补偿部件119执行的运动补偿可以涉及基于由运动估计部件121确定的运动矢量获取或生成参考块。在一些示例中,运动估计部件121和运动补偿部件119可以在功能上被集成。在接收到用于当前视频块的PU的运动矢量后,运动补偿部件119可以定位运动矢量所指向的参考块。然后,通过从被编解码的当前块的像素值减去参考块的像素值来形成残差视频块,从而形成像素差值。通常,运动估计部件121执行相对于亮度分量的运动估计,并且运动补偿部件119使用基于色度分量和亮度分量的亮度分量计算的运动矢量。参考块和残差块被转发到变换缩放和量化部件113。
视频信号101还被发送到帧内图片估计部件115和帧内图片预测部件117。与运动估计部件121和运动补偿部件119一样,帧内图片估计部件115和帧内图片预测部件117可以被高度集成,但为了概念目的而被单独说明。如上所述,帧内图片估计部件115和帧内图片预测部件117相对于当前图片中的块对当前块进行预测,以作为由图片之间的运动估计部件121和运动补偿部件119执行的帧间预测的替代。特别地,帧内图片估计部件115确定要用于编码当前块的帧内预测模式。在一些示例中,帧内图片估计部件115选择适当的帧内预测模式来根据多个测试的帧内预测模式对当前块进行编码。所选择的帧内预测模式然后被转发给标头格式化和CABAC部件131进行编码。
例如,帧内图片估计部件115使用用于各种被测试的帧内预测模式的率失真分析来计算率失真值,并在所测试的模式中选择具有最佳率失真特性的帧内预测模式。速率失真分析通常确定编码块与被编码以产生编码块的原始未编码块之间的失真(或错误)量,以及用于产生编码块的比特率(例如,比特数)。帧内图片估计部件115根据各种编码块的失真和速率计算比率,以确定哪种帧内预测模式展示该块的最佳率失真值。此外,帧内图片估计部件115可以被配置为使用基于率失真优化(RDO)的深度建模模式(DMM)对深度图的深度块进行编解码。
当在编码器上实现时,帧内图片预测部件117可以基于由帧内图片估计部件115确定的所选择的帧内预测模式来从参考块生成残差块,或者当在解码器上实现时,可以从比特流读取残差块。残差块包括参考块与原始块之间的值中的差,被表示为矩阵。残差块然后被转发到变换缩放和量化部件113。帧内图片估计部件115和帧内图片预测部件117可以对亮度分量和色度分量操作。
变换缩放和量化部件113被配置为进一步压缩残差块。变换缩放和量化部件113对残差块应用变换,例如离散余弦变换(DCT)、离散正弦变换(DST)或概念上类似的变换,从而产生包括残差变换系数值的视频块。也可以使用小波变换、整数变换、子带变换或其他类型的变换。变换可以将残差信息从像素值域转换为变换域,例如频域。变换缩放和量化部件113还被配置为例如基于频率来缩放变换后的残差信息。这种缩放涉及到对残差信息应用缩放因子,使得不同的频率信息在不同的粒度上被量化,这可能会影响重构视频的最终可视质量。变换缩放和量化部件113还被配置为量化变换系数以进一步降低比特率。量化过程可能降低与某些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化部件113然后可以对包括量化变换系数的矩阵执行扫描。量化变换系数被转发到标头格式化和CABAC部件131以在比特流中编码。
缩放和逆变换部件129应用变换缩放和量化部件113的反向操作以支持运动估计。缩放和逆变换部件129应用逆缩放、变换和/或量化来重构像素域中的残差块,例如,供以后用作另一个当前块的参考块。运动估计部件121和/或运动补偿部件119可以通过将残差块添加回先前的参考块来计算另一参考块,以用于后面块/帧的运动估计。滤波器被应用于重构参考块,以减轻在缩放、量化和变换期间产生的伪像。当预测后续块时,这样的伪像可能会导致不准确的预测(并创建额外的伪像)。
滤波器控制分析部件127和环路滤波器部件125将滤波器应用到残差块和/或重构图片块。例如,可以将来自缩放和逆变换部件129的变换后的残差块与来自图片内预测部件117和/或运动补偿部件119的对应参考块组合,以重构原始图像块。滤波器然后可以被应用到重构图像块。在一些示例中,滤波器可以替代地应用于残差块。与图1中的其他部件一样,滤波器控制分析部件127和环路滤波器部件125是高度集成的,并且可以一起实现,但是为了概念目的而被单独描述。应用于重构参考块的滤波器被应用到特定的空域区域,并包括多个参数来调整这些滤波器的应用方式。滤波器控制分析部件127分析重构参考块,以确定这样的滤波器应该被应用的位置并设置对应的参数。这样的数据被转发到标头格式化和CABAC部件131作为用于编码的滤波器控制数据。环路滤波器部件125基于滤波器控制数据应用这样的过滤器。滤波器可以包括去方块滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。这样的滤波器可以应用于空域/像素域(例如,在重构像素块上)或频域中,这取决于示例。
当作为编码器操作时,滤波后的重构图像块、残差块和/或预测块被存储在解码图片缓冲器部件123中,以供稍后在如上所述的运动估计中使用。当作为解码器操作时,解码图片缓冲器部件123将重构和滤波的块作为输出视频信号的一部分存储并向显示器转发。解码图片缓冲器部件123可以是能够存储预测块、残差块和/或重构图像块的任何存储器装置。
标头格式化和CABAC部件131从编解码器100的各个部件接收数据,并将这样的数据编码成编码的比特流,用于向解码器传输。具体地,标头格式化和CABAC部件131生成各种标头以编码控制数据,例如通用控制数据和滤波器控制数据。此外,包括帧内预测的预测数据和运动数据以及量化变换系数数据形式的残差数据都被编码在比特流中。最终比特流包括解码器重构原始分割视频信号101所需的所有信息。这样的信息还可以包括帧内预测模式索引表(也被称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模型的指示、分割信息的指示等。这样的数据可以通过采用熵编码来编码。例如,可以通过采用上下文自适应可变长度编解码(CAVLC)、CABAC、基于语法的上下文自适应二进制算术编解码(SBAC)、概率区间分割熵(PIPE)编解码或另一熵编解码技术来对信息进行编码。在熵编码之后,编码的比特流可以被发送到另一个装置(例如,视频解码器)或者被存档以供稍后发送或取回。
为了如上所述对图片进行编码和/或解码,首先对图片进行分割。图2是示例宏块分区200的示意图,该宏块分区200可以通过符合H.264/AVC的分区树结构来创建。在这样的标准中,编解码层的核心是宏块,其包含16×16块的亮度样点,并且在4:2:0颜色采样的情况下,包含两个对应的8×8块的色度样点。帧内编解码块使用空域预测来利用像素之间的空域相关性。为帧内编解码块定义了两个分区,即16×16子块和4×4子块。帧间编解码块通过估计图片之间的运动来使用时域预测而不是空域预测。对于16×16宏块或任何子宏块分区,可以独立地估计运动。帧间编解码块可以被分割为16×8子块、8×16子块、8×8子块、8×4子块、4×8子块和/或4×4子块。所有这些值都是在多个样点中测量的。样点是像素处的亮度(光)值或色度(颜色)值。
图3是用于例如根据HEVC分割编解码块的示例模式300的示意图。在HEVC中,图片被分割为CTU。通过使用表示为编解码树的四叉树结构将CTU划分为CU,以适应各种局部特性。使用帧间图片(时域)预测还是帧内图片(空域)预测对图片区域进行编解码的决定是在CU级做出的。根据PU划分类型,每个CU可以被进一步划分为一个、两个或四个PU。在一个PU内,应用相同的预测过程,并且在PU的基础上将相关信息传输到解码器。在通过应用基于PU划分类型的预测过程获得残差块之后,可以根据与CU的编解码树类似的另一个四叉树结构来将CU分割为变换单元(TU)。HEVC结构的一个特征是HEVC具有包括CU、PU和TU的多个分割概念。
使用HEVC的混合视频编解码中涉及的各种特征如下所示。HEVC包括类似于AVC中的宏块的CTU。CTU具有由编码器选择的尺寸,并且可以大于宏块。CTU包括亮度编解码树块(CTB)、对应的色度CTB和语法元素。表示为L×L的亮度CTB的尺寸可以被选择为L=16、32或64个样点,其中较大的尺寸导致更好的压缩。HEVC然后支持使用树结构和类似四叉树的信令将CTB分割成更小的块。
CTU的四叉树语法指定了对应亮度和色度CB的尺寸和位置。四叉树的根与CTU相关联。因此,亮度CTB的尺寸是亮度CB的最大支持尺寸。CTU到亮度和色度CB的划分被联合信令通知。一个亮度CB和两个色度CB与相关联的语法一起形成编解码单元(CU)。CTB可以仅包含一个CU,或者可以被划分以形成多个CU。每个CU具有相关联的分割为预测单元(PU)和变换单元(TU)树。使用帧间图片预测还是帧内图片预测来对图片区域进行编解码的决定是在CU级做出的。PU分割结构在CU级别具有根。取决于基本预测类型决策,亮度和色度CB然后可以在尺寸上被进一步划分,并根据模式300从亮度和色度预测块(PB)中进行预测。HEVC支持从64×64到4×4样点的可变PB尺寸。如图所示,模式300可以将尺寸为M个像素乘M个像素的CB划分为M×M块、M/2×M块、M×M/2块、M/2×M/2块、M/4×M(左)块、M/4×M(右)块、M×M/4(上)块和/或M×M/4(下)块。应当注意的是,用于将CB划分为PB的模式300受到尺寸约束。此外,对于帧内图片预测的CB,仅支持M×M和M/2×M/2。
图4是例如根据HEVC对用于编解码残差的图片进行分割的示例方法400的示意图。如上所述,通过参考参考块来对块进行编解码。当前块和参考块的值之间的差被称为残差。采用方法400来压缩残差。例如,使用块变换对预测残差进行编解码。方法400采用TU树结构403来分割CTB 401和包括的用于应用变换块(TB)的CB。方法400示出了将CTB 401细分为CB和TB。实线指示CB边界,并且虚线指示TB边界。TU树结构403是对CTB 401进行分割的示例四叉树。诸如离散余弦变换(DCT)的变换被应用于每个TB。变换将残差转换为变换系数,这些变换系数可以使用比未压缩残差更少的数据来表示。TU树结构403在CU级具有根。亮度CB残差区域可以与亮度TB区域相同,或者可以被进一步划分为更小的亮度TB。这同样适用于色度TB。对于尺寸为4×4、8×8、16×16和32×32的平方TB,定义了类似于DCT的整数基变换函数(Integer basis transform functions)。对于亮度图片内预测残差的4×4变换,可替换地指定从DST形式导出的整数变换。
下面讨论联合探索模型(JEM)中具有较大CTU的四叉树加二叉树块结构。联合视频探索小组(JVET)由视频编解码专家组(VCEG)和MPEG成立,以探索HEVC之外的视频编解码技术。JVET已经采用了许多改进措施,这些改进被纳入名为联合探索模型(JEM)的参考软件中。
图5是用于例如根据四叉树二叉树(QTBT)结构501分割图片的示例方法500的示意图。QTBT结构501的树表示503也被示出。与HEVC中的分区结构不同,QTBT结构501移除了多个分区类型的概念。例如,QTBT结构501移除了CU、PU和TU概念的分离,并支持CU分区形状的更大灵活性。在QTBT结构501中,CU可以具有正方形形状或矩形形状。在方法500中,首先通过四叉树结构对CTU进行分割。进一步通过二叉树结构对四叉树叶节点进行分割。对称水平划分和对称垂直划分是二叉树中使用的两种划分类型。二叉树叶节点被称为CU,并且该分割用于预测和变换处理,而无需进一步分割。这使得CU、PU和TU在QTBT结构501中具有相同的块尺寸。在JEM中,CU有时包括不同颜色分量的CB。例如,在4:2:0色度格式的单向帧间预测(P)和双向帧间预测(B)条带的情况下,一个CU可以包含一个亮度CB和两个色度CB。此外,CU有时包括单个分量的CB。例如,在帧内预测(I)条带的情况下,一个CU可以仅包含一个亮度CB或仅包含两个色度CB。
以下参数是为QTBT分割方案定义的。CTU尺寸是四叉树的根节点尺寸,这与HEVC中的概念相同。最小四叉树尺寸(MinQTSize)是最小允许的四叉树叶节点尺寸。最大二进制树尺寸(MaxBTSize)是最大允许的二进制树根节点尺寸。最大二进制树深度(MaxBTDepth)是最大允许的二进制树深度。最小二进制树尺寸(MinBTSize)是最小允许的二进制树叶节点尺寸。
在QTBT结构501的一个示例中,CTU尺寸被设置为具有两个对应的64×64色度样点块的128×128亮度样点,MinQTSize被设置为16×16,MaxBTSize被设置为64×64,MinBTSize(对于宽度和高度两者)被设置为4×4,并且MaxBTDepth被设置为4。四叉树分割首先被应用于CTU以生成四叉树叶节点。四叉树叶节点可以具有从16×16(MinQTSize)到128×128(CTU尺寸)的尺寸。如果叶四叉树节点是128×128,则该节点不会被二叉树进一步划分,这是由于该尺寸超过了MaxBTSize(例如,64×64)。否则,叶四叉树节点可以被二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且具有为0的二叉树深度。当二叉树深度达到MaxBTDepth(例如,4)时,不考虑进一步的划分。当二叉树节点的宽度等于MinBTSize(例如,4)时,不考虑进一步的水平划分。类似地,当二叉树节点的高度等于MinBTSize时,不考虑进一步的垂直划分。通过预测和变换处理来进一步处理二叉树的叶节点,而不进行任何进一步的分割。在JEM中,最大CTU尺寸是256×256亮度样点。
方法500示出了通过使用QTBT结构501进行块分割的示例,并且树表示503示出了对应的树表示。实线指示四叉树划分,并且虚线指示二叉树划分。在二叉树的每个划分(例如,非叶)节点中,信令通知一个标志以指示使用哪种划分类型(例如,水平或垂直),其中0指示水平划分,并且1指示垂直划分。对于四叉树划分,不需要指示划分类型,这是由于四叉树划分总是水平地和垂直地划分块,以产生4个尺寸相等的子块。
此外,QTBT方案支持亮度和色度具有单独QTBT结构501的能力。例如,在P和B条带中,一个CTU中的亮度和色度CTB共享相同的QTBT结构501。然而,在I条带中,亮度CTB由QTBT结构501分割为CU,并且色度CTB由另一QTBT结构501分割为色度CU。相应地,I条带中的CU可以包括亮度分量的编解码块或两个色度分量的编解码块。此外,P或B条带中的CU包括所有三种颜色分量的编解码块。在HEVC中,为了减少运动补偿的存储器访问,限制了小块的帧间预测,使得4×8和8×4块不支持双预测,并且4×4块也不支持帧间预测。在JEM的QTBT中,这些限制被移除。
现在讨论VVC的三叉树分割。图6是在VVC中使用的示例分割结构的示意图600。如图所示,VVC中支持除四叉树和二叉树之外的划分类型。例如,示意图600包括四叉树分区601、垂直二叉树分区603、水平二叉树分区605、垂直三叉树分区607和水平三叉树分区609。这种方法除了引入四叉树和二叉树之外,还引入了两个三叉树(TT)分区。
在示例实施方式中,采用了两级树,包括区域树(四叉树)和预测树(二叉树或三叉树)。首先通过区域树(RT)对CTU进行分割。可以使用预测树(PT)来进一步划分RT叶。PT叶也可以用PT进一步划分,直到达到最大PT深度。PT叶是基本的编解码单元。为了方便起见,PT也可以被称为CU。在示例实施方式中,CU不能被进一步划分。预测和变换都以与JEM相同的方式应用于CU。整个分区结构被命名为多类型树。
现在讨论扩展的四叉树。图7是示例EQT分割结构的示意图700。对应于块分割过程的EQT分割结构包括用于视频数据块的扩展四叉树分割过程。扩展四叉树分割结构表示将视频数据块分割为最终子块。当扩展四叉树分割过程决定将扩展四叉树分区应用于块时,块总是被划分为四个子块。最终子块的解码是基于视频比特流的。视频数据块的解码基于根据导出的EQT结构解码的最终子块。
EQT分割过程可以被递归地应用于块,以生成EQT叶节点。可替代地,当EQT被应用于某个块时,对于由EQT划分产生的每个子块,可以进一步被划分成BT和/或QT和/或TT和/或EQT和/或其他种类的分区树。在一个示例中,EQT和QT可以共享相同的深度增量过程和相同的叶节点尺寸限制。在这种情况下,当一个节点的尺寸达到最小允许的四叉树叶节点尺寸或该节点的EQT深度达到最大允许的四叉树深度时,可以隐式地终止对该节点的分割。可替代地,EQT和QT可以共享不同的深度增量过程和/或叶节点尺寸的限制。当节点的尺寸达到最小允许的EQT叶节点尺寸或者与节点相关联的EQT深度达到最大允许的EQT深度时,可以隐式地终止由EQT对一个节点的分割。在一个示例中,可以在序列参数集(SPS)、图片参数集(PPS)、条带标头、CTU、区域、片和/或CU中信令通知EQT深度和/或最小允许的EQT叶节点尺寸。
EQT可以不使用应用于正方形块的四叉树分区,例如,其中块具有M×N的尺寸,其中M和N是相等或不相等的非零正整数值。相反,EQT将一个块等分为四个分区,例如M/4×N划分701或M×N/4划分703。划分727和划分729分别示出划分701和划分703的一般示例。例如,划分727被划分成M×N1、M×N2、M×N3和M×N4,其中N1+N2+N3+N4=N。此外,划分729被划分成M1×N、M2×N、M3×N和M4×N,其中M1+M2+M3+M4=M。
在另一个示例中,EQT可以将形状等分为四个分区,其中分区尺寸取决于M和N的最大值和最小值。在一个示例中,一个4×32块可以被划分为4个4×8子块,而32×4块可以被划分为四个8×4子块。
在另一个示例中,EQT将一个块等分为四个分区,例如两个分区的尺寸等于(M*w0/w)×(N*h0/h),并且其他两个分区具有(M*(w-w0)/w)×(N*(h-h0)/h),如划分705、划分707、划分709和划分711所示。例如,w0和w可以分别等于1和2,使得宽度减少一半,而高度可以使用其他比率而不是2:1来获得子块。在另一个示例中,h0和h可以分别等于1和2,使得高度减少一半,而宽度可以使用其他比率而不是2:1。例如,划分705包括子块,该子块的宽度固定为M/2,高度等于N/4或3N/4,顶部两个分区为较小的选择。例如,划分707包括子块,该子块的高度固定为N/2,宽度等于M/4或3M/4,左侧两个分区为较小的选择。例如,划分709包括子块,该子块的宽度固定为M/2,高度等于N/4或3N/4,底部两个分区为较小的选择。例如,划分711包括子块,该子块的高度固定为N/2,宽度等于M/4或3M/4,右侧两个分区为较小的选择。
划分713、划分715、划分717、划分719、划分721和划分723示出了四叉树分割的其他示例。例如,划分713、划分715和划分717示出了其中形状被M×N/4和M/2×N/2划分的选项。例如,划分719、划分721和划分723示出了其中形状被N×M/4和N/2×M/2划分的选项。
划分725示出了具有不同形状的分区的四叉树分割的更一般的情况。在这种情况下,划分725被划分为使得M1×N1、(M-M1)×N1、M1×(N-N1)和(M-M1)×(N-N1)。
图8是示例灵活树(FT)分割结构的示意图800。FT分割结构对应于包括用于视频数据块的FT分割过程的块划分割过程。FT分割结构表示将视频数据块分割为最终子块。当FT分割过程决定将FT分区应用于块时,该块被划分为K个子块,其中K可以大于4。可以基于视频比特流对最终子块进行编解码。此外,可以基于根据导出的FT结构解码的最终子块来解码视频数据块。FT分割过程可以递归地应用于给定块以生成FT树叶节点。当一个节点达到最小允许的FT叶节点尺寸或与该节点相关联的FT深度达到最大允许的FT深度时,隐式地终止对该节点的分割。此外,当FT被应用于某个块时,可以创建多个子块。由FT创建的每个子块可以进一步被划分为BT、QT、EQT、TT和/或其他种类的分区树。在示例中,可以在SPS、PPS、条带标头、CTU、区域、片和/或CU中信令通知FT的FT深度或最小允许的FT叶节点尺寸或最小允许的分区尺寸。类似于EQT,由FT分区创建的所有子块可以是相同或不同的尺寸。
示意图800包括示例FT分割结构,其中表示为K的子块的数量被设置为等于六或八。划分801是其中K=8,M/4*N/2的分割结构。划分803是其中K=8,M/2*N/4的分割结构。划分805是其中K=6,M/2*N/2和M/4*N/2的分割结构。划分807是其中K=6,M/2*N/2和M/2*N/4的分割结构。
图9是示例广义TT(GTT)分割结构的示意图900。对于TT分割结构,可以移除沿水平或垂直方向划分的限制。GTT分区模式可以被定义为水平和垂直二者的划分。划分901采用剩余区域的垂直TT划分和水平BT划分的左划分。划分903采用剩余区域的水平TT划分和垂直BT划分的底部划分。在一些示例中,分割EQT、FT和/或GTT分割方法可以在某些条件下被应用。换句话说,当不满足(多个)条件时,不需要信令通知分区类型。在另一个示例中,EQT、FT和/或GTT分割方法可以用于替换其他分区树类型。在另一个示例中,在某些条件下,EQT、FT和/或GTT分割方法可以仅用作其他分区树类型的替代。在一个示例中,该条件可以基于图片、条带类型、块尺寸、编解码模式;和/或块是否位于图片、条带和/或片边界处。在一个示例中,EQT可以以与QT相同的方式进行处理。在这种情况下,当选择QT分区树类型时,可以进一步信令通知详细的四叉树分区模式的更多标志/指示。在一些示例中,EQT可以被视为附加的分区模式。在一个示例中,EQT、FT和/或GTT的分割方法的信令通知可以是有条件的。例如,在一些情况下,可以不使用一个或多个EQP、FT和/或GTT分割方法,并且不信令通知与信令通知这些分割方法相对应的比特。
图10是示例边界分割树1000的示意图,其也被称为通用边界分区。边界分割树1000是VVC和/或音频和视频编解码标准工作组第三部分(AVS-3.0)的示例边界处理方法。由于VVC中的强制四叉树边界分区技术方案没有被优化,因此边界分割树1000使用规则块分区语法来维持与CABAC引擎的连续性以及匹配图片边界。通用边界分区获得以下规则(编码器和解码器两者)。由于边界分割树1000对于位于块处的边界使用与正常块(非边界)完全相同的分区语法,因此语法不被改变。如果针对边界CU解析无划分模式,则使用强制边界分区(FBP)来匹配图片边界。在使用强制边界分区(非单一边界分区)之后,不执行进一步的分区。强制边界分区描述如下。如果块的尺寸大于最大允许的BT尺寸,则使用强制QT来在当前强制分区级别执行FBP。否则,如果当前CU的右下样点位于底部图片边界下方并且没有延伸到右边界,则使用强制水平BT来在当前强制分区级别执行FBP。否则,如果当前CU的右下样点位于右图片边界的右侧并且不在底部边界之下,则使用强制垂直BT来在当前强制分区级别执行FBP。否则,如果当前CU的右下样点位于右图片边界的右侧且在底部边界以下,则使用强制QT来在当前强制分区级别执行FBP。
图11是音频和视频编解码标准(AVS)第三部分(AVS-3.0)中使用的示例分割结构的示意图1100。现在讨论AVS-3.0中的分割。中国音频和视频编解码标准(AVS)工作组由原中华人民共和国工业和信息化部科技司授权成立。为了满足快速发展的信息行业的需求,AVS致力于为数字音频和视频的压缩、解压缩、处理和表示制定高质量的技术标准,并且因此为数字音频视频设备和***提供高效和经济的编码/解码技术。AVS可以应用于各种重要的信息领域,包括高分辨率数字广播、高密度激光数字存储媒体、无线宽带多媒体通信和互联网宽带流媒体。AVS是第二代源编码/解码标准之一,并且拥有中国自主知识产权。源编解码技术主要解决从初始数据和原始源对音频和视频海量数据进行编解码和压缩的问题。因此,AVS被称为数字视频和音频编解码技术,并且是后续数字传输、存储和广播的前提。此外,AVS充当数字视频和音频行业的通用标准。
AVS-3.0采用QT分割1101、垂直BT分割1105、水平BT分割1103、水平扩展四叉树(EQT)分割1107和垂直EQT分割1109来将最大编解码单元(LCU)划分为多个CU。QT分割、BT分割和EQT分割都可以用于分割树的根、内部节点或叶节点。然而,在任何BT和/或EQT分割之后,禁止QT分割。
图12是示例非对称四叉树(UQT)分割结构的示意图1200。UQT分割采用尺寸为W×H的块,该块被划分为四个尺寸为W1×H1、W2×H2、W3×H3和W4×H4的分区,其中W1、W2、W3、W4、H1、H2、H3、H4都是整数。在一个示例中,并且至少一个分区与其他分区相比具有不同的块尺寸。在一个示例中,四个分区中只有两个分区可以具有相等的尺寸,并且另外两个分区彼此不同,并且不同于具有相等尺寸的两个分区。在一个示例中,所有参数都是2的幂的形式。例如,W1=2N1,W2=2N2,W3=2N3,W4=2N4,H1=2M1,H2=2M2,H3=2M3,H4=2M4。在一个示例中,UQT仅在垂直方向上划分一个分区,例如,H1=H2=H3=H4=H。在一个示例中,在划分1201中,W1=W/8,W2=W/2,W3=W/8、W4=W/4,H1=H2=H3=H4=H。这种UQT是垂直划分的,且被命名为UQT1-V。在一个示例中,在划分1203中,W1=W/8,W2=W/2,W3=W/4,W4=W/8,H1=H2=H3=H4=H。这种UQT是垂直划分的,且被命名为UQT2-V。在一个示例中,在划分1205中,W1=W/4,W2=W/8,W3=W/2,W4=W/8,H1=H2=H3=H4=H。这种UQT是垂直划分的,且被命名为UQT3-V。在一个示例中,在划分1207中,W1=W/8,W2=W/4,W3=W/2,W4=W/8、H1=H2=H3=H4=H。这种UQT是垂直划分的,且被命名为UQT4-V。
在一个示例中,UQT仅在水平方向上划分一个分区,例如,W1=W2=W3=W4=W。在一个示例中,在划分1209中,H1=H/8,H2=H/2,H3=H/8,H4=H/4,W1=W2=W3=W4=W。这种UQT是水平划分的,且被命名为UQT1-H。在一个示例中,在划分1211中,H1=H/8,H2=H/2,H3=H/4,H4=H/8,W1=W2=W3=W4=W。这种UQT是水平划分的,且被命名为UQT2-H。在一个示例中,在划分1213中,H1=H/4,H2=H/8,H3=H/2,H4=H/8,W1=W2=W3=W4=W。这种UQT是水平划分的,且被命名为UQT3-H。在一个示例中,在划分1215中,H1=H/8,H2=H/4,H3=H/2,H4=H/8、W1=W2=W3=W4=W。这种UQT是水平划分的,且被命名为UQT4-H。
图13是示例ETT分割结构的示意图1300,包括ETT-V划分1301和ETT-H划分1303。当采用ETT时,将尺寸为宽乘以高(W×H)的块划分为尺寸为W1×H1、W2×H2和W3×H3的三个分区。W1、W2、W3、H1、H2、H3都是整数。在示例中,并且至少一个参数不是2的幂的形式。W1、W2和W3是所得到的子块的宽度。H1、H2和H3是所得到的子块的高度。在一个示例中,W2不能是具有任何正整数N2的W2=2N2的形式。在另一个示例中,H2不能是具有任何正整数N2的H2=2N2的形式。在一个示例中,至少一个参数是2的幂的形式。在一个示例中,W1是具有正整数N1的W1=2N1的形式。在另一个示例中,H1是具有正整数N1的H1=2N1的形式。
在一个示例中,ETT仅在垂直方向上划分一个分区,例如,其中W1=a1*W,W2=a2*W,W3=a3*W,其中a1+a2+a3=1,并且其中H1=H2=H3=H。这种ETT是垂直划分的,并且可以被称为ETT-V。在一个示例中,可以使用ETT-V划分1301,其中W1=W/8,W2=3*W/4,W3=W/8且H1=H2=H3=H。在一个示例中,ETT仅在水平方向上划分一个分区,例如,其中H1=a1*H,H2=a2*H且H3=a3*H,其中a1+a2+a3=1,并且其中W1=W2=W3=W。这种ETT是水平划分的,并且可以被称为ETT-H。在一个示例中,可以使用ETT-H划分1303,其中H1=H/8,H2=3*H/4,H3=H/8且W1=W2=W3=W。
图14是示例1/4UBT分割结构的示意图1400,其包括垂直UBT(UBT-V)分区和水平UBT(UBT-H)分区。尺寸为W×H的块可以被划分为尺寸为W1×H1和W2×H2的两个子块,其中子块中的一个是二元块(dyadic block),且另一个子块为非二元块。这种划分被命名为非对称二叉树(UBT)划分。在一个示例中,W1=a×W,W2=(1-a)×W,且H1=H2=H。在这种情况下,分区可以被称为垂直UBT(UBT-V)。在一个示例中,a可以小于1/2,例如为1/4、1/8、1/16、1/32、1/64等。在这种情况下,分区可以被称为类型0UBT-V,其示例被示为划分1401。在一个示例中,a可以大于1/2,例如为3/4、7/8、15/16、31/32、63/64等。在这种情况下,分区被称为类型1UBT-V,其示例被示为划分1403。在一个示例中,H1=a×H,H2=(1-a)×H,W1=W2=W。在这种情况下,分区可以被称为水平UBT(UBT-H)。在一个示例中,a可以小于1/2,例如为1/4、1/8、1/16、1/32、1/64等。在这种情况下,分区被称为类型0UBT-H,其示例被示为划分1405。在一个示例中,a可以大于1/2,例如为3/4、7/8、15/16、31/32、63/64等。在这种情况下,分区可以被称为类型1UBT-H,其示例被示为划分1407。
图15是例如在HEVC中使用的残差变换的示例的示意图1500。例如,可以根据基于其他块的预测来对块进行编解码。来自(多个)参考块和当前块的预测之间的差被称为残差。可以在编码器处对残差进行变换和量化,以减小残差数据的尺寸。可以在解码器处应用去量化和逆变换以获得残差数据。然后可以将残差数据应用于预测以重构编解码块以供显示。示意图1500示出左侧编码器处的变换过程和量化过程以及右侧解码器处的去量化过程和逆变换。N×N块的变换过程可以公式化为:
其中i=0,...,N-1。DCT变换矩阵C的元素cij被定义为:
其中i,j=0,...,N-1并且其中A分别等于1和21/2(i=0且i>0)。
此外,DCT的基本矢量ci被定义为ci=[ci0,…,ci(N-1)]Ti=0,...,N-l。
M=log2(N)
ST1=2-(B+M-9)
ST2=2-(M+6)
B表示比特深度。
在第一逆变换阶段之后:SIT1=2-(7)
在第二逆变换阶段之后:SIT2=2-(20-B)
对于正向变换的输出样点coeff,可以如下实现直接量化方案:
shift2=29-M-B
SQ=2-shift2
Qstep(QP)=(21/6)QP-4=GQP%6<<(QP/6).
f=[f0,f1,…,f5]=[26214,23302,20560,18396,16384,14564]。注意fQP%6≈214/GQP%6
G=[G0,G1,…,G5]=[2-4/6,2-3/6,2-2/6,2-1/6,20,21/6]。
对于量化器输出,级别,在HEVC标准中将去量化器指定为
shift1=(M-9+B)
SIQ等于2-shift1
gQP%6=round(26×GQP%6)。
g=[g0,g1,…,g5]=[40,45,51,57,64,71]。
示意图1500中的移位和乘法器总结如下:
正向变换:
缩放因子
第一正向变换阶段 2(6+M/2)
在第一正向变换阶段之后(ST1) 2-(B+M-9)
第二正向变换阶段 2(6+M/2)
在第二正向变换阶段之后(ST2) 2-(M+6)
正向变换的总缩放 2(15-B-M)
逆变换:
在VVC中,变换、量化、去量化和逆变换的过程在图15中示出,并在下面进行更详细的讨论。与HEVC不同,VVC支持矩形块,并且因此VVC支持宽度和高度可能不同的块。假设变换块的宽度和高度分别为W和H,则
与图15相比,图15中用于VVC的移位和乘法器被修改如下:
正向变换:
逆变换:
与HEVC相比,当是偶数时,可以使用相同的量化/去量化因子。如果/>是奇数,则在量化/去量化阶段使用因子21/2进行补偿。
如果是偶数,则使用fVVC_even=[26214,23302,20560,18396,16384,14564],其与HEVC中的f相同。并且使用gVVC_even=[40,45,51,57,64,71],其与HEVC中的g相同。
如果是奇数,则使用fVVC_odd==[18396,16384,14564,13107,11651,10280]而非fVVC_even。并且使用gVVC_odd==[57,64,72,80,90,102]而非gVVC_even。粗略地说,fVVC_odd≈fVVC_even×2-1/2且gVVC_odd≈gVVC_even×21/2
相应地,
如果是奇数,则shift2=shift2-1。
SQ等于2-shift2
如果为奇数,则shift1=shift1+1。
SIQ等于2-shift1
现在讨论VVC中的残差编解码。具体地,以下部分处理VVC中的编解码组和编解码组中的最后有效系数。在VVC中,块被划分为具有相同尺寸的编解码组(CG)以对残差进行编解码。CG的宽度和高度分别为(1<<log2SbW)和(1<<log2SbH)。当对VVC中的残差块进行编解码时,在信令通知残差的强度之前信令通知最后有效系数的位置。在残差编解码的语法元素表中,用于信令通知最后有效系数的位置的语法元素被重点介绍如下。还重点介绍了log2SbW和log2SbH的推导过程。
/>
/>
last_sig_coeff_x_prefix指定变换块内按扫描顺序的最后有效系数的列位置的前缀。last_sig_coeff_x_prefix的值应当在0(含)到(log2ZoTbWidth<<1)-1(含)的范围中。当last_sig_coeff_x_prefix不存在时,它被推断为0。last_sig_coeff_y_prefix指定变换块内按扫描顺序的最后有效系数的行位置的前缀。last_sig_coeff_y_prefix的值应当在0(含)到(log2ZoTbHeight<<1)-1(含)的范围内。当last_sig_coeff_y_prefix不存在时,它被推断为0。last_sig_coeff_x_suffix指定变换块内按扫描顺序的最后有效系数的列位置的后缀。last_sig_coeff_x_suffix的值应当在0(含)到(1<<((last_sig_coeff_x_prefix>>1)-1))-1(含)的范围内。
按如下方式推导变换块内按扫描顺序的最后有效系数的列位置LastSignificantCoeffX:如果last_sig_coeff_x_suffix不存在,则以下内容适用:
LastSignificantCoeffX=last_sig_coeff_x_prefix (192)
否则(last_sig_coeff_x_suffix存在),则以下内容适用:
LastSignificantCoeffX=(1<<((last_sig_coeff_x_prefix>>1)-1))*(2+(last_sig_coeff_x_prefix&1))+last_sig_coeff_x_suffix
(193)
last_sig_coeff_y_suffix指定变换块内按扫描顺序的最后有效系数的行位置的后缀。last_sig_coeff_y_suffix的值应当在0(含)到(1<<((last_sig_coeff_y_prefix>>1)-1))-1(含)的范围内。按照如下方式推导变换块内按扫描顺序的最后有效系数的行位置LastSignificantCoeffY:如果last_sig_coeff_y_suffix不存在,则以下内容适用:
LastSignificantCoeffY=last_sig_coeff_y_prefix (194)
否则(last_sig_coeff_y_suffix存在),则以下内容适用:
LastSignificantCoeffY=(1<<((last_sig_coeff_y_prefix>>1)-1))*(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix
(195)
各个语法元素的CBABC中的二值化和上下文被定义如下:
将ctxInc分配给具有上下文编解码的bin的语法元素
现在讨论语法元素last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的ctxInc的推导过程。该过程的输入是变量binIdx、颜色分量索引cIdx、变换块宽度的二进制对数log2TbWidth和变换块高度的二进制对数log2TbHeight。这个过程的输出是变量ctxInc。
变量log2TbSize被推导如下。如果要解析的语法元素是last_sig_coeff_x_prefix,则log2TbSize被设置为等于log2TbWidth。否则(要解析的语法元素为last_sig_coeff_y_prefix),log2TbSize被设置为等于log2TbHeight。
变量ctxOffset和ctxShift推导如下。如果cIdx等于0,则ctxOffset被设置为等于offsetY[log2TbSize-2],并且ctxShift被设置为等于(log2TbSize+1)>>2,其中列表offsetY指定如下:
offsetY[]={0,3,6,10,15} (1525)
否则(cIdx大于0),ctxOffset被设置为等于20并且ctxShift被设置为等于Clip3(0,2,2log2TbSize>>3)。变量ctxInc推导如下:
ctxInc=(binIdx>>ctxShift)+ctxOffset (1526)
现在讨论VVC中的截断二进制(TB)。TB二值化过程如下。此过程的输入是对具有值synVal和cMax的语法元素的TB二值化的请求。此过程的输出是语法元素的TB二值化。语法元素synVal的TB二值化过程的bin字符串指定如下:
n=cMax+1
k=Floor(Log2(n)) (1510)
u=(1<<(k+1))-n
如果synVal小于u,则通过调用cMax值等于(1<<k)-1的synVal的FL二值化过程来导出TB bin字符串。否则(synVal大于或等于u),通过调用cMax值等于(1<<(k+1))-1的(synVal+u)的FL二值化过程来导出TB bin字符串。
以下是所公开的技术方案所解决的示例技术问题。二元尺寸描述了块的宽度和高度必须为2N形式的情况,其中N是正整数。残差编解码应该被修改以适应具有非二元尺寸的块。
本文公开的是解决上述一个或多个问题的机制。例如,根据VVC标准对视频进行编解码的***创建用于应用于包含残差的块的编解码组(CG)。变换然后被应用于每个编解码组。CG被配置为应用于二元块。这样,CG在应用于非二元块时可能无法正常工作。本公开包括允许CG在应用于非二元块时正常工作的配置改变。例如,块具有高度(H)和宽度(W)。此外,CG具有高度(h)和宽度(w)。CG的w和/或h可以通过应用被选择用于当W和/或H是非二元时使用的算法来基于块的W和/或者H来确定。许多这样的示例算法被包括在本公开中。
此外,通过对残差样点应用变换来压缩残差以用于信令,这导致频域中的残差系数。由于残差样点的方差,残差系数在块与块之间显著变化。这样,由编码器信令通知最后有效系数的位置,以向解码器指示块的残差系数的相对位置。用于信令通知块中的最后有效系数的位置的机制被配置为应用于二元块,并且因此可能不能正确地用于非二元块。本公开还包括对用于信令通知块中的最后有效系数的位置的语法的配置改变,以允许这种语法正确地操作于非二元块。例如,最后有效系数的位置被表示为水平位置(last_sig_coeff_x_prefix)和垂直位置(last_sig_coeff_y_prefix)。last_sig_coeff_x_prefix和last_sig_coeff_y_prefix可以通过应用被选择用于当W和/或H是非二元时使用的算法来基于块的W和H的值来设置。此外,可以基于块是否是非二元的来选择残差系数的扫描顺序和/或信令语法的上下文。
图16是示出将编解码组应用于残差块以进行变换的示例的示意图1600。残差是作为块预测的结果而创建的。例如,当前块被匹配到参考块,并通过参考参考块进行编解码。因此,当前块是通过参考块来预测的。参考块和当前块之间的差被称为残差。残差不能仅由参考块单独预测,并且因此必须被单独编解码或丢失。残差变换是在块1601中对残差进行变换和量化以减小用于在编码器和解码器之间传输的残差数据的尺寸的过程。块1601中的残差描述了对应像素的值的差异。对于当前块中与参考块中的对应像素完全匹配的像素,块1601中剩余的残差为零。对于不匹配的像素,残差包括亮度(光)和色度(颜色)的差异。色度可以被进一步划分为Cr和Cb。相应地,对于每个编解码块,残差变换被应用于亮度残差的块1601、Cr残差的块1601和Cb残差的块1601。
从编码器的角度来看,块1601可以细分为编解码组1603,以支持残差变换的性能。编解码组1603应当共同覆盖包含残差样点的块的所有区域。变换然后可以被应用于每个编解码组1603以创建残差系数,残差系数可以被量化并编码为比特流以传输到解码器。从解码器的角度来看,块1603被细分为编解码组1603。来自比特流的残差系数可以被包括到编解码组1603中。逆变换然后被应用于每个编解码组1603以重构残差样点,以用于基于块预测重构图像的过程。
块1601具有高度(H)和宽度(W)。当H、W或两者都是非二元的时,则块1601是非二元的。当尺寸可以被表示为二次幂时,尺寸是二元的,并且当尺寸不能被表示为二次幂时,则尺寸是非二元的。当至少一个尺寸是非二元的时,块是非二元的。编解码组1603具有应当被选择以允许编解码组覆盖块1601的宽度(w)和高度(h)。此外,一旦块1601已经被变换,块1601就包含各种残差系数。对于每个块1601,残差样点显著地变化。相应地,残差系数的数量和位置也显著变化。这样,编码器将最后有效系数1605的位置信令通知给解码器。解码器然后可以使用该位置来定位所有残差系数。最后有效系数1605是对从编码器信令通知到解码器的残差系数的图片质量具有最小影响的残差系数。此外,基于预定义的扫描顺序来扫描编解码组中的残差以包括在比特流中(并且用于在解码器处定位回编解码组中)。此外,可以根据各种上下文对上述各种元素进行编解码。例如,上下文可以被设置为基于一个或多个语法元素的值。在比特流中信令通知数据的编解码的bin可以是上下文相关的,并且因此可以取决于当前上下文来指示不同的数据。编解码组1603的尺寸、最后有效系数1605的信令、扫描顺序和/或bin上下文可以被配置为相对于二元块进行操作。本公开包括当块1601是非二元的时可以选择的各种算法。
在示例中,可以基于包含残差的块1601的W和H来确定编解码组1603的w和h。例如,可以通过采用被选择与非二元块一起使用的算法来进行确定。例如,规则可以要求W和H为kxN的形式,其中k是正整数,并且N是大于1的整数。例如,该规则可以要求W和/或H是偶数。编解码组尺寸然后被设置为k x N。在一个示例中,对于亮度和色度分量,N的值可以不同。在另一个示例中,规则可以要求W=m×w和H=n×h。其中m和n是正整数。编解码组尺寸然后被设置为w x h。在这些示例中,非二元块1601被强制具有可以被均匀地划分为整数个编解码组1603的尺寸。
在另一个示例中,编解码组1603的w和h可以被要求为2k的形式,其中k是正整数。该方法要求编解码组1603每个都是二元的,在这种情况下,基于二元的算法在没有改变的情况下正确地运行。在另一个示例中,w和/或h是否可以被设置为M的值取决于W和/或H是否可以分别被M整除或是否没有留下余数。在示例中,当W%M等于零时,w被设置为整数M。在示例中,当W%M不等于零时,w不被设置为整数M。在另一个示例中,当H%M等于零时,h被设置为整数M。在另一个示例中,当H%M不等于零时,h不被设置为整数M。在示例中,w被设置为M,其中M是满足W%M等于0的小于最大值的最大整数。在另一个示例中,h被设置为M,其中M是满足H%M等于0的小于最大值的最大整数。%运算符指示除法运算后的余数。这些示例基于编解码组1603的尺寸是否能够在没有余数的情况下适应块1601的尺寸来对编解码组1603进行尺寸调整。
在示例中,可以基于彼此并且基于块1601的W和H来设置编解码组1603的w和h。在示例中,当W>=4且H>=4时以及当W%4==0且H%4==0时,w=h=4,其中,当W>=4且H>=4时以及当W%4===0且H%4!=0时,w=4且h<4,其中,当W>=4和H>=4时以及当W%4!=0且H%4==0时,w<4且h=4,其中,当W>=4且H>=4时以及当W%4!=0且H%4!=0时,w=2且h=2。在另一个示例中,当W>=4且H<4时以及当H==2时,h=2,并且当W%8==0时,w=8,否则w=2,其中,当W>=4且H<4时以及当H==1时,h=1且w被设置为M,其中M是满足W%M等于0的小于16的最大整数。在另一个示例中,当H>=4且W<4时以及当W==2时,w=2,并且当H%8==0时,h=8,否则h=2,其中,当H>=4且W<4以及当W==1时,w=1且h被设置为M,其中M是满足H%M等于0的小于16的最大整数。在前面的示例中,基于余数设置编解码组1603的尺寸,并将M的最大值设置为16。在又一个示例中,当W小于4并且H小于4时,可以仅应用一个编解码组1603。因此,当H<4且W<4时,w=W且h=H。在另一个示例中,当W>=8并且W%8==0时,w=8,并且当H>=8且H%8==0时,h=8。在该示例中,当W和/或H大于八并且W和/或者H可被八整除时,则编解码组1603的对应尺寸被设置为八。
在示例中,w和h从表示为table[idx0][idx1]的表中提取,其中idx0取决于W,并且idx1取决于H。在一个示例中,idx0=W并且idx1=H。在另一个示例中,idx0=[log2W]并且idx1=[log2H]。在另一个示例中,编解码组1603可以具有宽度(W’)和高度(H’),其中W’<=W,并且H’<=H,并且W’×H’!=W×H。在一个示例中,W’被设置为并且H’被设置为该方法可以在应用将二元区域外的所有残差设置为零的归零变换之后使用,并且因此允许编解码组1603是二元的。
在另一组示例中,块1601中最后一个有效系数1605的位置可以基于W是否为非二元和H是否为非二元来确定。例如,最后一个有效系数的位置可以表示为水平位置(last_sig_coeff_x_prefix)和垂直位置(last_sig_coeff_y_prefix)。在示例中,last_sig_coeff_x_prefix是基于W确定的,并且last_sig_coeff_y_prefix是基于H确定的。此外,当W和/或H是非二元的时,可以基于特定于非二元尺寸的上下文来对last_sig_coeff_x_prefix和/或last_sig_coeff_y_prefix进行编解码。
在示例中,last_sig_coeff_x_prefix可以根据上下文(ctxInc)进行编解码,并且可以基于根据或/>计算的变换块宽度(log2TbWidth)的二进制对数来确定。在另一个示例中,last_sig_coeff_y_prefix可以根据ctxInc进行编解码,并且基于根据/>或/>计算的变换块高度(log2TbHeight)的二进制对数来确定。当推导基于上下文的移位(ctxShift)时,对于色度分量的last_sig_coeff_x_prefix和/或last_sig_coeff_y_prefix,ctxShift可以被设置为等于Clip3(0,2,(2×W-1)>>3)和/或Clip3(0,2,(2×H-1)>>3)。/>
在另一个示例中,last_sig_coeff_x_prefix和/或last_sig_coeff_y_prefix可以基于W和/或H是否是非二元的来进行编解码。例如,当W和/或H分别为非二元的时,last_sig_coeff_x_prefix和/或last_sig_coeff_y_prefix可以根据截断二进制(TB)码进行编解码。在示例中,由TB使用的cMax可以基于last_sig_coeff_x_prefix和/或last_sig_coeff_y_prefix来导出。此外,函数MinInGroup(k)被定义为MinInGroup(k)=(1<<((k>>1)-1))×(2+(k&1))。在各种示例中,cMax是基于MinInGroup(last_sig_coeff_x_prefix)、MinInGroup(last_sig_coeff_x_prefix+1)、MinInGroup(last_sig_coeff_y_prefix)、MinInGroup(last_sig_coeff_y_prefix+1)或其组合的。MinInGroup(k)可以存储在由k索引的表中。cMax可以基于W和/或H导出。在示例中,cMax可以被导出为V1-V2,其中V1和/或V2是基于W、H、last_sig_coeff_x_prefix和/或last_sig_coeff_y_prefix导出的。在各种示例中,V2=MinInGroup(last_sig_coeff_x_prefix),V1=Min(W-1,V3),V3=MinInGroup(last_sig_coeff_x_prefix+1),V3=last_sig_coeff_x_prefix<T1?MinInGroup(last_sig_coeff_x_prefix+1):T2。T1=13,T2=127,V2=MinInGroup(last_sig_coeff_y_prefix),V1=Min(H-1,V3),V3=MinInGroup(last_sig_coeff_y_prefix+1),V3=last_sig_coeff_y_prefix<T1?MinInGroup(last_sig_coeff_y_prefix+1):T2,V3=min(MinInGroup(last_sig_coeff_y_prefix+1),T2),或其组合。在一些示例中,last_sig_coeff_x_prefix和/或last_sig_coeff_y_prefix可以被旁路编解码,可以根据上下文进行编解码,和/或根据一元码、截断一元码、固定长度码、指数Golomb码或其任意组合进行编解码。
此外,块1601和编解码组1603中的残差系数按预定顺序进行扫描。可以执行这样的扫描以通过编码器将残差系数编码成比特流,或者从比特流解析残差系数以在解码器处包括在块1601和/或编解码组1603中。在一些示例中,块1601中的系数的扫描顺序是基于W是否是非二元的和/或基于H是否是非二元的来选择的。
此外,非二元块的所允许的上下文bin的数量可以与二元块不同地确定。在示例中,块1601的所允许的上下文编解码的bin的数量是根据来确定的,其中,M和N是整数。
相应地,为了解决上述问题,公开了几种方法来处理如上所讨论的当应用于非二元块时由变换和量化机制引起的问题。这些方法导致实现了更好的编解码性能。
以下详细实施例应当被视为解释一般概念的示例。这些实施例不应当以狭隘的方式来解释。此外,这些实施例可以以任何方式进行组合。在以下讨论中,QT、BT、TT、UQT和ETT可以分别指代QT划分、BT划分、TT划分、UQT划分和ETT划分。在下面的讨论中,如果宽度和高度都是二元数,则块是二元块,二元数是2N的形式,其中N是正整数。在下面的讨论中,如果宽度和高度中的至少一个是非二元数,则块是非二元块,该非二元数不能以2N的形式表示,其中N是正整数。在下面的讨论中,划分和分割具有相同的含义。
示例1
当第一块是非二元块时,对于尺寸为宽度(W)乘以高度(H)的第一块,残差编解码中CG的宽度(表示为w)和/或高度(表示为h)的推导过程可以取决于W和/或H。
示例2
在一个示例中,规则要求W和/或H必须是k×N的形式,其中k是大于0的整数,N是大于1的整数。在一个示例中,规则要求W和/或H必须是偶数。在一个示例中,对于不同的颜色分量,N可以是不同的。例如,当使用4:2:0颜色格式时,N对于Cb/Cr分量可以等于2,并且对于Y分量可以等于4。在一个示例中,CG尺寸被设置为k×N。
示例3
在一个示例中,规则要求W>=w且H>=h。该规则可以要求W=m×w和H=n×h,其中m和n是大于0的整数。在一个示例中,CG尺寸被设置为w×h。
示例4
在一个示例中,规则要求w和/或h必须是2k的形式,其中k是大于或等于0的整数。在一个示例中,CG尺寸被设置为w×h。
示例5
在一个示例中,w是否可以被设置为M可以取决于W%M是否等于0。M是诸如4或2的整数。在一个示例中,如果W%M等于0,则w可以被设置为M。在一个示例中,如果W%M不等于0,则w不能被设置为M。在一个示例中,w可以被设置为P,其中P<M并且W%P等于0。在一个示例中,CG尺寸被设置为w×h。
示例6
在一个示例中,h是否可以被设置为M可以取决于H%M是否等于0。M是诸如8、4或2的整数。在一个示例中,如果H%M等于0,则h可以被设置为M。在一个示例中,如果H%M不等于0,则h不能被设置为M。在一个示例中,h可以被设置为P,其中P<M并且H%P等于0。在一个示例中,CG尺寸被设置为w×h。
示例7
在一个示例中,w可以被设置为M,其中M是满足W%M等于0的最大整数,并且M不大于最大值,例如16。在一个示例中,CG尺寸被设置为w×h。
示例8
在一个示例中,h可以被设置为M,其中M是满足H%M等于0的最大整数,并且M不大于最大值,例如16。在一个示例中,CG尺寸被设置为w×h。
示例9
在一个示例中,可以取决于W和/或H和/或h来设置w。在一个示例中,CG尺寸被设置为w×h。
示例10
在一个示例中,可以取决于W和/或H和/或w来设置h。在一个示例中,CG尺寸被设置为w×h。
示例11
在一个示例中,如果W>=4且H>=4,并且如果W%4==0且H%4==0,则设置w=h=4。在一个示例中,如果W>=4且H>=4,并且如果W%4==0且H%4!=0,则设置w=4,h<4(例如,h=2)。在一个示例中,如果W>=4且H>=4,并且如果W%4!=0且H%4==0,则设置w<4(例如,w=2),h=4。在一个示例中,如果W>=4且H>=4,并且如果W%4!=0且H%4!=0,则设置w=2,h=2。在一个示例中,CG尺寸被设置为w×h。
在一个示例中,如果W>=4且H<4,并且如果H==2,则设置h=2。如果W%8==0,则设置w=8。否则,设置w=2。在一个示例中,如果W>=4且H<4,并且如果H==1,则设置h=1。w被设置为M,其中M是满足W%M等于0并且M不大于16的最大整数。在一个示例中,CG尺寸被设置为w×h。
示例12
在一个示例中,如果H>=4且W<4,并且如果W==2,则设置w=2。如果H%8==0,则设置h=8。否则,设置h=2。在一个示例中,如果H>=4且W<4,并且如果W==1,则设置w=1。h被设置为M,其中M是满足H%M等于0并且M不大于16的最大整数。在一个示例中,CG尺寸被设置为w×h。在一个示例中,如果H<4且W<4,则CG尺寸被设为W×H,例如,仅应用一个CG。在一个示例中,跳过CG内是否存在至少一个非零系数的指示的信令。
示例13
在一个示例中,如果W>=8且W%8==0,则CG尺寸被设置为w×h且w=8。在一个示例中,如果H>=8且H%8==0,则CG尺寸被设置为w×h且h=8。
示例14
在一个示例中,w和/或h是从table[idx0][idx1]中提取的,其中idx0和idx1取决于W和H。在一个示例中,如果W或H是非二元数,则使用该表。在一个示例中,如果W和H是非二元数,则使用该表。在一个示例中,如果W和H是二元数,则使用该表。在一个示例中,idx0=W且idx1=H。在一个示例中,idx0=[log2W]且idx1=[log2H]。在一个示例中,CG尺寸被设置为w×h。
示例15
在一个示例中,CG尺寸可以使用与宽度和高度设置为W'×H'的二元块相同的规则导出,其中W'<=W,且H'<=H,且W'×H'!=W×H。在一个示例中,W'被设置为在一个示例中,H'被设置为/>在一个示例中,W'被设置为/>在一个示例中,H'被设置为/>在一个示例中,上述示例可以仅在使用归零变换时应用。
示例16
在一个示例中,尺寸为W×H的块的最后一个有效系数的位置的编解码/解析过程可能取决于W和/或H,例如,取决于W或H是(多个)二元数还是(多个)非二元数。
示例17
在一个示例中,对last_sig_coeff_x_prefix或last_sig_coeff_y_prefix的编解码/解析可能取决于W和/或H,特别是取决于W和/或H是二元数还是非二元数。例如,如果W是二元数,则可以根据VVC对last_sig_coeff_x_prefix进行编解码/解析。例如,如果H是二元数,则可以根据VVC对last_sig_coeff_y_prefix进行编解码/解析。在一个示例中,如果W是非二元数,则last_sig_coeff_x_prefix可以与编解码上下文一起被编解码/解析。在一个示例中,当为语法元素last_sig_coeff_x_prefix导出ctxInc时,log2TbWidth计算为在一个示例中,log2TbWidth计算为/>
在一个示例中,当颜色分量是色度分量时,当为语法元素last_sig_coeff_x_prefix导出ctxShift时,ctxShift被设置为等于Clip3(0,2,(2×W-1)>>3)。例如,当W是二元数时,ctxShift被设置为等于Clip3(0,2,(2×W-1)>>3)。在一个示例中,如果H是非二元数,则last_sig_coeff_y_prefix可以与编解码上下文一起被编解码/解析。在一个示例中,当为语法元素last_sig_coeff_y_prefix导出ctxInc时,log2TbHeight计算为在示例中,log2TbHeight计算为/>在一个示例中,当颜色分量是色度分量时,当为语法元素last_sig_coeff_y_prefix导出ctxShift时,ctxShift被设置为等于Clip3(0,2,(2×H-1)>>3)。例如,当H是二元数时,ctxShift被设置为等于Clip3(0,2,(2×H-1)>>3)。
示例18
在一个示例中,对last_sig_coeff_x_suffix或last_sig_coeff_y_suffix的编解码/解析可能取决于W和/或H,例如取决于W和/或H是二元数还是非二元数。在一个示例中,取决于W和/或H是否是非二元数,last_sig_coeff_x_suffix或last_sig_coeff_y_suffix可以以不同的方式进行编解码/解析。例如,如果W是二元数,则可以根据VVC对last_sig_coeff_x_suffix进行编解码/解析。例如,如果H是二元数,则可以根据VVC对last_sig_coeff_y_suffix进行编解码/解析。在一个示例中,如果W是非二元数,则last_sig_coeff_x_suffix可以被编解码/解析为截断二进制(TB)码。在一个示例中,TB使用的cMax可以基于last_sig_coeff_x_prefix来导出。
在示例中,函数MinInGroup(k)被定义为MinInGroup(k)=(1<<((k>>1)-1))×(2+(k&1))。在示例中,cMax基于MinInGroup(last_sig_coeff_x_prefix)。在示例中,cMax基于MinInGroup(last_sig_coeff_x_prefix+1)。MinInGroup(k)可以存储在由k索引的表中。TB使用的cMax可以基于W导出。
TB使用的cMax可以导出为V1-V2,其中V1和/或V2是基于W和/或last_sig_coeff_x_prefix导出的。在示例中,V2=MinInGroup(last_sig_coeff_x_prefix)。在示例中,V1=Min(W-1,V3)。在示例中,V3=MinInGroup(last_sig_coeff_x_prefix+1)。在示例中,V3=last_sig_coeff_x_prefix<T1?MinInGroup(last_sig_coeff_x_prefix+1):T2。例如,T1=13,T2=127。在示例中,V3=min(MinInGroup(last_sig_coeff_x_prefix+1),T2)。例如,T2=127。last_sig_coeff_x_suffix可以被旁路编解码/解析。last_sig_coeff_x_suffix可以使用至少一个上下文进行编解码/解析。last_sig_coeff_x_suffix可以通过一元码、截断一元码、固定长度码、指数Golomb码或任何其他二值化方法来编解码/解析。
在一个示例中,如果H是非二元数,则last_sig_coffe_y_suffix可以被编解码/解析为截断二进制(TB)码。TB使用的cMax可以基于last_sig_coeff_y_prefix来导出。在示例中,函数MinInGroup(k)被定义为MinInGroup(k)=(1<<((k>>1)-1))×(2+(k&1))。例如,cMax基于MinInGroup(last_sig_coeff_y_prefix)。在示例中,cMax基于MinInGroup(last_sig_coeff_y_prefix+1)。MinInGroup(k)可以存储在由k索引的表中。TB使用的cMax可以基于H导出。
TB使用的cMax可以导出为V1-V2,其中V1和/或V2是基于H和/或last_sig_coeff_y_prefix导出的。在示例中,V2=MinInGroup(last_sig_coeff_y_prefix)。在示例中,V1=Min(H-1,V3)。在示例中,V3=MinInGroup(last_sig_coeff_y_prefix+1)。在示例中,V3=last_sig_coeff_y_prefix<T1?MinInGroup(last_sig_coeff_y_prefix+1):T2。例如,T1=13,T2=127。在示例中,V3=min(MinInGroup(last_sig_coeff_y_prefix+1),T2)。例如,T2=127。在示例中,last_sig_coeff_y_suffix可以被旁路编解码/解析。在示例中,last_sig_coeff_y_suffix可以使用至少一个上下文进行编解码/解析。在示例中,last_sig_coeff_y_suffix可以通过一元码、截断一元码、固定长度码、指数Golomb码或任何其他二值化方法进行编解码/解析。
示例19
在一个示例中,尺寸为W×H的块上的系数的扫描顺序可以取决于W和/或H,例如,取决于W和/或H是(多个)二元数还是(多个)非二元数。
示例20
在一个示例中,可以以类似于二元块的方式设置非二元块的允许的上下文编解码的bin的数量,例如,(W×H×7)>>2。在示例中,不同的规则可以应用于非二元块和二元块。在一个示例中,用于非二元块的允许的上下文编解码的bin的数量可以被设置为其中M和N是整数。
图17是示出示例视频处理***1700的框图,其中可以实现本文公开的各种技术。各种实施方式可以包括***1700的一些或全部部件。***1700可以包括用于接收视频内容的输入1702。视频内容可以以原始或未压缩的格式(例如,8或10比特的多分量像素值)或者可以以压缩或编码的格式接收。输入1702可以表示网络接口、***总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
***1700可以包括编解码部件1704,其可以实现本文档中描述的各种编解码或编码方法。编解码部件1704可以将视频的平均比特率从输入1702降低到编解码部件1704的输出,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频代码转换技术。编解码部件1704的输出可以被存储,或者经由连接的通信被发送,如部件1706所示。在输入1702处接收的视频的存储或通信的比特流(或编解码的)表示可以由部件1708用于生成像素值或被发送到显示接口1710的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解的是,编解码工具或操作在编码器处使用,并且将由解码器执行反转编解码结果的对应解码工具或操作。
***总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在能够执行数字数据处理和/或视频显示的各种电子设备中,例如移动电话、笔记本电脑、智能手机或其他装置。
图18是示例视频处理设备1800的框图。设备1800可以用于实现本文所描述的方法中的一个或多个。设备1800可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。设备1800可以包括一个或多个处理器1802、一个或多个存储器1804和视频处理电路1806。(多个)处理器1802可以被配置为实现本文档中描述的一个或多个方法。(多个)存储器1804可以用于存储用于实现本文所描述的方法和技术的数据和代码。视频处理电路1806可以用于在硬件电路中实现本文档中描述的一些技术。在一些实施例中,视频处理电路1806可以至少部分地包括在处理器1802中,例如图形协处理器。
图19是视频处理的示例方法1900的流程图。方法1900包括在步骤1902基于非二元且包含残差的块的W和H来确定编解码组的W和H。在步骤1904,基于W是否是非二元且基于H是否是非二元的来确定块中最后有效系数的位置。在步骤1906,基于W是否是非二元且基于H是否是非二元的来确定块中系数的扫描顺序。在步骤1908,基于W是否是非二元且基于H是否是非二元的来确定块的允许的上下文编解码的bin的数量。在步骤1910,基于对块应用编解码组,在可视媒体数据和比特流之间执行转换。例如,步骤1902、1904、1906和/或1908可以包括选择如关于示意图1600所述使用的等式和/或算法。步骤1910然后可以包括例如通过采用由等式和/或算法确定的结果,在编码器处执行视频编码或者在解码器处执行视频解码。
应当注意的是,方法1900可以在用于处理视频数据的设备中实现,该设备包括处理器和其上带有指令的非暂时性存储器,例如视频编码器2100、视频解码器2200和/或编码器2300。在这种情况下,指令在由处理器执行时使处理器执行方法1900。此外,方法1900可以由包括供视频编解码装置使用的计算机程序产品的非暂时性计算机可读介质来执行。计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可执行指令,使得当计算机可执行指令由处理器执行时使视频编解码装置执行方法1900。
图20是示出可以利用本公开的技术的示例视频编解码***2000的框图。如图20所示,视频编解码***2000可以包括源装置2010和目标装置2020。源装置2010生成可以被称为视频编码装置的编码视频数据。目标装置2020可以对由源装置2010生成的编码视频数据进行解码,其可以被称为视频解码装置。
源装置2010可以包括视频源2012、视频编码器2014和输入/输出(I/O)接口2016。视频源2012可以包括诸如视频捕获装置的源、用于从视频内容提供商接收视频数据的接口、和/或用于生成视频数据的计算机图形***,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器2014对来自视频源2012的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口2016可以包括调制器/解调器(调制解调器)和/或发送器。编码的视频数据可以通过网络2030经由I/O接口2016直接发送到目标装置2020。编码的视频数据也可以存储在存储介质/服务器2040上,以供目标装置2020访问。
目标装置2020可以包括I/O接口2026、视频解码器2024和显示装置2022。I/O接口2026可以包括接收器和/或调制解调器。I/O接口2026可以从源装置2010或存储介质/服务器2040获取编码的视频数据。视频解码器2024可以对编码的视频数据进行解码。显示装置2022可以向用户显示解码的视频数据。显示装置2022可以与目标装置2020集成,或者可以在目标装置2020外部,目标装置2020可以被配置为与外部显示装置接合。
视频编码器2014和视频解码器2024可以根据视频压缩标准进行操作,例如高效视频编解码(HEVC)标准、多功能视频编解码(VVM)标准和其他当前和/或进一步的标准。
图21是示出视频编码器2100的示例的框图,其可以是图20所示的***2000中的视频编码器2014。视频编码器2100可以被配置为执行本公开的任何或全部技术。在图21的示例中,视频编码器2100包括多个功能部件。本公开中描述的技术可以在视频编码器2100的各种部件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或全部技术。
视频编码器2100的功能部件可以包括分割单元2101、预测单元2102(其可以包括模式选择单元2103)、运动估计单元2104、运动补偿单元2105、帧内预测单元2106、残差生成单元2107、变换处理单元2108、量化单元2109、逆量化单元2110、逆变换单元2111、重构单元2112、缓冲器2113和熵编码单元2114。
在其他示例中,视频编码器2100可以包括更多、更少或不同的功能部件。在示例中,预测单元2102可以包括帧内块复制(IBC)单元。IBC单元可以在IBC模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
此外,一些部件(例如运动估计单元2104和运动补偿单元2105)可以被高度集成,但出于解释的目的,在图21的示例中被单独表示。
分割单元2101可以将图片分割为一个或多个视频块。视频编码器2100和视频解码器2200可以支持各种视频块尺寸。
模式选择单元2103可以例如基于误差结果来选择编解码模式(帧内或帧间)中的一者,且将所得的帧内或帧间编解码块提供给残差生成单元2107以生成残差块数据且提供给重构单元2112以重构编码块以用作参考图片。在一些示例中,模式选择单元2103可以选择帧内和帧间预测(CIIP)模式的组合,其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元2103还可以选择块的运动矢量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元2104可以通过将来自缓冲器2113的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元2105可以基于来自缓冲器2113的除与当前视频块相关联的图片之外的图片的运动信息和解码样点来确定用于当前视频块的预测视频块。
运动估计单元2104和运动补偿单元2105可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带还是B条带中。
在一些示例中,运动估计单元2104可以对当前视频块执行单向预测,并且运动估计单元2204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元2104然后可以生成指示列表0或列表1中的参考图片的参考索引,该参考图片包含参考视频块和指示当前视频块和参考视频块之间的空间位移的运动矢量。运动估计单元2104可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元2105可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元2104可以对当前视频块执行双向预测,运动估计模块2104可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一个参考视频块。运动估计单元2104然后可以生成指示包含参考视频块的列表0及列表1中的参考图片的参考索引及指示参考视频块与当前视频块之间的空间位移的运动矢量。运动估计单元2104可以输出当前视频块的参考索引和运动矢量作为当前视频块中的运动信息。运动补偿单元2105可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元2104可以输出用于解码器的解码处理的整套的运动信息。在一些示例中,运动估计单元2104可以不输出当前视频的整套的运动信息。相反,运动估计单元2104可以参考另一个视频块的运动信息信令通知当前视频块的运动信息。例如,运动估计单元2104可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
在一个示例中,运动估计单元2104可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器2200指示当前视频块具有与另一个视频块相同的运动信息。
在另一个示例中,运动估计单元2104可以在与当前视频块相关联的语法结构中识别另一个视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量与所指示的视频块的运动矢量之间的差。视频解码器2200可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所述,视频编码器2100可以预测性地信令通知运动矢量。可以由视频编码器2100实现的预测信令技术的两个示例包括高级运动矢量预测(AMVP)和Merge模式信令。
帧内预测单元2106可以对当前视频块执行帧内预测。当帧内预测单元2106对当前视频块执行帧内预测时,帧内预测单元2106可以基于同一图片中的其他视频块的解码样点来生成用于当前视频块的预测数据。当前视频块的预测数据可以包括预测的视频块和各种语法元素。
残差生成单元2107可以通过从当前视频块减去当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中的样点的不同样点分量相对应的残差视频块。
在其他示例中,例如在跳过模式下,当前视频块可能没有用于当前视频块的残差数据,并且残差生成单元2107可能不执行减法运算。
变换处理单元2108可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来生成用于当前视频块的一个或多个变换系数视频块。
在变换处理单元2108生成与当前视频块相关联的变换系数视频块之后,量化单元2109可以基于与当前视频区块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元2110和逆变换单元2111可以分别对变换系数视频块应用逆量化和逆变换,以根据变换系数视频块重构残差视频块。重构单元2112可以将重构的残差视频块添加到来自预测单元2102所生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重构视频块以存储于缓冲器2113中。
重构单元2112重构视频块后,环路滤波操作可以被执行以减少视频块中的视频块伪像。
熵编码单元2114可以从视频编码器2100的其他功能部件接收数据。当熵编码单元2114接收到数据时,熵编码单元2114可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
图22是示出视频解码器2200的示例的框图,视频解码器2200可以是图20所示的***2000中的视频解码器2024。
视频解码器2200可以被配置为执行本公开的任何或所有技术。在图22的示例中,视频解码器2200包括多个功能部件。本公开中描述的技术可以在视频解码器2200的各个部件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或全部技术。
在图22的示例中,视频解码器2200包括熵解码单元2201、运动补偿单元2202、帧内预测单元2203、逆量化单元2204、逆变换单元2205、重构单元2206和缓冲器2207。在一些示例中,视频解码器2200可以执行通常与关于视频编码器2100(图21)描述的编码过程相反的解码过程。
熵解码单元2201可以检索编码的比特流。编码的比特流可以包括熵编解码的视频数据(例如,视频数据的编码块)。熵解码单元2201可以对熵编解码的视频数据进行解码,且根据熵解码的视频数据,运动补偿单元2202可以确定包括运动矢量、运动矢量精度、参考图片列表索引的运动信息及其他运动信息。运动补偿单元2202可以例如通过执行AMVP和Merge模式来确定这样的信息。
运动补偿单元2202可以产生运动补偿块,可能基于插值滤波器执行插值。用于以子像素精度使用的插值滤波器的标识符可以被包括在语法元素中。
运动补偿单元2202可以使用由视频编码器2100在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元2202可以根据所接收的语法信息来确定由视频编码器2100使用的插值滤波器,并且使用插值滤波器来产生预测块。
运动补偿单元2202可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述如何对编码视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分区进行编码的模式、用于每个帧间编解码块的一个或多个参考帧(和参考帧列表)以及用于对编码视频序列进行解码的其他信息。
帧内预测单元2203可以使用例如在比特流中接收的帧内预测模式来根据空间上相邻的块形成预测块。逆量化单元2204对在比特流中提供并由熵解码单元2201解码的量化视频块系数进行逆量化,即去量化。逆变换单元2205应用逆变换。
重构单元2206可以将残差块与由运动补偿单元2202或帧内预测单元2203生成的对应预测块相加以形成解码块。如果需要,还可以应用去方块滤波器来对解码块进行滤波,以便移除块伪像。解码视频块然后被存储在缓冲器2207中,缓冲器2207为随后的运动补偿/帧内预测提供参考块,并且还产生用于在显示装置上呈现的解码视频。
图23是示例编码器2300的示意图。编码器2300适合于实现VVC的技术。编码器2300包括三个环路滤波器,即去方块滤波器(DF)2302、样点自适应偏移(SAO)2304和自适应环路滤波器(ALF)2306。与使用预定义滤波器的DF 2302不同,SAO 2304和ALF 2306利用当前图片的原始样点,分别通过添加偏移和通过应用有限脉冲响应(FIR)滤波器来减少原始样点和重构样点之间的均方误差,其中编解码边信息信令通知偏移和滤波器系数。ALF 2306位于每个图片的最后处理阶段,并且可以被视为试图捕获和修复由先前阶段创建的伪像的工具。
编码器2300还包括帧内预测部件2308和运动估计/补偿(ME/MC)部件2310,其被配置为接收输入视频。帧内预测部件2308被配置为执行帧内预测,而ME/MC部件2310被配置为利用从参考图片缓冲器2312获得的参考图片来执行帧间预测。来自帧间预测或帧内预测的残差块被馈送到变换(T)部件2314和量化(Q)部件2316,以生成被馈送到熵编解码部件2318的量化残差变换系数。熵编解码部件2318对预测结果和量化变换系数进行熵编解码,并将其向视频解码器(未示出)发送。从量化部件2316输出的量化部件可以被馈送到逆量化(IQ)部件2320、逆变换部件2322和重构(REC)部件2324。REC部件2324能够将图像输出到DF2302、SAO 2304和ALF 2306,用于在那些图像被存储在参考图片缓冲器2312中之前进行滤波。
接下来提供了由一些示例优选的技术方案的列表。
以下技术方案示出了本文讨论的技术的示例。
1.一种视频处理方法(例如,图19所示的方法1900),包括:对于视频的视频块和视频的比特流之间的转换,根据规则确定用于编解码视频块的残差的编解码组(CG),并且基于该确定执行转换,其中,该规则规定由于视频块是非二元的,CG的尺寸取决于视频块的尺寸,其中,视频块包括W×H样点,其中,CG包括w×h样点。
2.根据技术方案1所述的方法,其中,规则规定,W或H等于k×N,其中k是大于0的整数且N是大于1的整数。
3.根据技术方案1所述的方法,其中,规则规定W>=w且H>=h。
4.根据技术方案1所述的方法,其中,规则规定w和/或h等于2k,其中k是大于或等于0的整数。
5.根据技术方案1所述的方法,其中,规则规定w等于M,这取决于W%M是否等于0。
6.根据技术方案1所述的方法,其中,规则规定h等于M,这取决于H%M是否等于0。
7.一种视频处理方法,包括:对于视频的视频块和视频的比特流之间的转换,根据规则确定视频块的残差的最后有效系数的位置,并且基于该确定执行转换,其中,视频块包括W×H样点,其中,规则规定取决于W或H是否是二元数。
8.根据技术方案7所述的方法,其中,规则规定在W是非二元数的情况下,使用编解码上下文指示最后有效系数的x位置。
9.根据技术方案7-8所述的方法,其中,规则规定在H是非二元数的情况下,使用编解码上下文指示最后有效系数的y位置。
10.根据技术方案7所述的方法,其中,规则规定取决于W或H是否是二元的以及W或H是否是非二元的来对位置不同地编解码。
11.一种视频处理方法,包括:对于视频的视频块和视频的比特流之间的转换,根据规则确定用于编解码视频块的残差的扫描顺序,并且基于该确定执行转换,其中,视频块包括W×H样点;其中规则规定取决于W或H。
12.根据技术方案11所述的方法,其中,规则取决于W或H是否是二元的。
13.一种视频处理方法,包括:执行视频的视频块和视频的比特流之间的转换,其中,视频块具有非二元尺寸,其中,比特流符合格式规则,其中,格式规则规定用于对具有非二元尺寸的视频块进行编解码的允许的上下文编解码的bin的数量。
14.根据技术方案13所述的方法,其中,格式规则规定允许的上下文编解码比特的数量等于用于对具有二元尺寸的视频块进行编解码的数量。
15.根据技术方案13所述的方法,其中,格式规则规定允许的上下文编解码比特的数量不同于用于对具有二元尺寸的视频块进行编解码的数量。
16.根据技术方案13所述的方法,其中,数量等于其中,M和N是整数且W和H是视频块的宽度和高度。
17.根据技术方案13所述的方法,其中,数量等于其中,M和N是整数且W和H是视频块的宽度和高度。
18.根据技术方案1-17中任一项所述的方法,其中,转换包括根据视频生成比特流。
19.根据技术方案1-17中任一项所述的方法,其中,转换包括根据比特流生成视频。
20.一种在计算机可读介质上存储比特流的方法,包括根据技术方案1-19中的任何一个或多个技术方案中记载的方法生成比特流,并将比特流存储在计算机可读介质上。
21.一种计算机可读介质,其上存储有视频的比特流,该比特流当由视频解码器的处理器处理时,使得视频解码器生成视频,其中,该比特流是根据技术方案1-19中的一个或多个技术方案中记载的方法生成的。
22.一种视频解码设备,包括被配置为实现技术方案1至20中的一个或多个技术方案中记载的方法的处理器。
23.一种视频编码设备,包括被配置为实现技术方案1至20中的一个或多个技术方案中记载的方法的处理器。
24.一种计算机程序产品,其上存储有计算机代码,该代码当由处理器执行时,使得处理器实现在技术方案1至20的任一技术方案中记载的方法。
25.一种计算机可读介质,其上有符合根据技术方案1至20的任一技术方案生成的比特流格式的比特流。
26.本文档中描述的方法、设备、根据公开的方法或***生成的比特流。
在本文描述的技术方案中,编码器可以通过根据格式规则产生编解码表示来符合格式规则。在本文所描述的技术方案中,解码器可以使用格式规则来根据格式规则在已知存在和不存在语法元素的情况下解析编解码表示中的语法元素,以产生解码视频。
在本文件中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间中应用视频压缩算法,反之亦然。例如,当前视频块的比特流表示可以对应于由语法定义的比特流中的并置位置或在不同位置传播的比特。例如,可以根据经过转换和编码的误差残差值、并且也可以使用比特流中的标头和其他字段中的比特对宏块进行编码。此外,在转换期间,解码器可以基于该确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上技术方案中所述。类似地,编码器可确定包括或不包括某些语法字段,并通过从编码表示中包括或排除语法字段来相应地生成编码表示。
本文中描述的所公开的和其他技术方案、示例、实施例、模块和功能操作可以在数字电子电路或计算机软件、固件或硬件中实现,包括本文中公开的结构及其结构等效物,或者其中一个或多个的组合。所公开的实施例和其他实施例可以实现为一个或多个计算机程序产品,即在计算机可读介质上编码以供数据处理装置执行或控制其操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质的组合,或者一个或多个它们的组合。术语“数据处理设备”包括用于处理数据的所有设备、装置和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除硬件外,设备还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或其中一个或多个的组合的代码。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、分量、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件***中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标志语言文件中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
本文件中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如,帧内硬盘或可移动硬盘;磁光盘;以及CD ROM和DVD ROM盘。处理器和存储器可以由专用逻辑电路来补充,或并入专用逻辑电路中。
虽然本专利文件包含许多细节,但不应将其解释为对任何主题或权利要求范围的限制,而应解释为对特定技术的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件实施例中各种***分量的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。
当第一部件和第二部件之间除了线路、迹线或其他介质之外没有介入部件时,第一部件直接耦合到第二部件。当第一部件和第二部件之间除了线路、迹线或其他介质之外存在介入部件时,第一部件间接耦合到第二部件。术语“耦合”及其变体包括直接耦合和间接耦合。除非另有说明,否则术语“大约”的使用意味着包括后续数字±10%的范围。
尽管在本公开中已经提供了几个实施例,但应该理解的是,在不脱离本公开的精神或范围的情况下,所公开的***和方法可以以许多其他特定形式体现。本示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或部件可以被组合或集成在另一个***中,或者可以省略或不实现某些特征。
此外,在不脱离本公开范围的情况下,在各种实施例中描述和说明为分立或分离的技术、***、子***和方法可以与其他***、模块、技术或方法组合或集成。显示或讨论为耦合的其他项目可以被直接连接,或者可以通过无论是电的、机械的还是其他的一些接口、装置或中间部件间接耦合或通信。改变、替换和更改的其他示例可以由本领域技术人员确定,并且可以在不偏离本文公开的精神和范围的情况下进行。

Claims (25)

1.一种用于处理视频数据的方法,包括:
基于是非二元且包含残差的块的宽度(W)和高度(H)来确定编解码组的宽度(w)和高度(h);以及
基于对所述块的所述编解码组的应用来执行可视媒体数据和比特流之间的转换。
2.根据权利要求1所述的方法,其中,所述转换包括要求W和H为k×N的形式的规则,其中k为正整数且N为大于1的整数,并且其中,所述编解码组尺寸被设置为k×N。
3.根据权利要求1-2中任一项所述的方法,其中,所述转换包括要求W=m×w且H=n×h的规则,其中,m和n为正整数,并且其中,所述编解码组尺寸被设置为w×h。
4.根据权利要求1-3中任一项所述的方法,其中,所述转换包括要求w和h为2k的形式的规则,其中,k为正整数,并且其中,所述编解码组尺寸被设置为w×h。
5.根据权利要求1-4中任一项所述的方法,其中,当W%M等于零时w被设置为M,其中,M是整数,并且其中,所述编解码组尺寸被设置为w×h。
6.根据权利要求1-5中任一项所述的方法,其中,当W%M不等于零时w不被允许设置为M,其中,M为整数,并且其中,所述编解码组尺寸被设置为w×h。
7.根据权利要求1-6中任一项所述的方法,其中,当H%M等于零时h被设置为M,其中,M是整数,并且其中,所述编解码组尺寸被设置为w×h。
8.根据权利要求1-7中任一项所述的方法,其中,当H%M不等于零时h不被允许设置为M,其中,M为整数,并且其中,所述编解码组尺寸被设置为w×h。
9.根据权利要求1-8中任一项所述的方法,其中,w被设置为M,其中M是满足W%M等于0的小于最大值的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
10.根据权利要求1-9中任一项所述的方法,其中,h被设置为M,其中M是满足H%M等于0的小于最大值的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
11.根据权利要求1-10中任一项所述的方法,其中,当W>=4且H>=4时以及当W%4==0且H%4==0时,w=h=4,其中,当W>=4且H>=4时以及当W%4==0且H%4!=0时,w=4且h<4,其中,当W>=4且H>=4时以及当W%4!=0且H%4==0时,w<4且h=4,其中,当W>=4且H>=4时以及当W%4!=0且H%4!=0时,w=2且h=2,并且其中,所述编解码组尺寸被设置为w×h。
12.根据权利要求1-11中任一项所述的方法,其中,当W>.=4且当H==2时,h=2,并且当W%8==0时,w=8,否则w=2,其中,当W>=4且H<4时以及当H==1时,h=1且w被设置为M,其中M是满足W%M等于0的小于16的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
13.根据权利要求1-12中任一项所述的方法,其中,当H>=4且W<4时以及当W==2时,w=2,并且当H%8==0时,h=8,否则h=2,其中,当H>=4且W<4时以及当W==1时,w=1且h被设置为M,其中M是满足H%M等于0的小于16的最大整数,并且其中,所述编解码组尺寸被设置为w×h。
14.根据权利要求1-13中任一项所述的方法,其中,当W>=8且W%8==0时,w=8,其中,当H>=8且H%8==0时,h=8,并且其中,所述编解码组尺寸被设置为w×h。
15.根据权利要求1-14中任一项所述的方法,其中,w和h是从表示为table[idx0][idx1]的表中提取的,其中idx0取决于W且idx1取决于H,并且其中,所述编解码组尺寸被设置为w x h。
16.根据权利要求1-15中任一项所述的方法,其中,w和h是从二元块的宽度(W’)和高度(H’)导出的,使得W’<=W,H’<=H,且W’×H’!=W×H。
17.根据权利要求1-16中任一项所述的方法,还包括基于W是否为非二元的且基于H是否为非二元的来确定所述块中的最后有效系数的位置。
18.根据权利要求1-17中任一项所述的方法,其中,所述最后有效系数的位置被表示为水平位置(last_sig_coeff_x_prefix)和垂直位置last_sig_coeff_y_prefix,其中,last_sig_coeff_x_prefix是基于W确定的,并且last_sig_coeff_y_prefix是基于H确定的。
19.根据权利要求1-18中任一项所述的方法,其中,last_sig_coeff_x_prefix是基于根据或/>计算的变换块宽度(log2TbWidth)的二进制对数来确定的。
20.根据权利要求1-19中任一项所述的方法,其中,last_sig_coeff_y_prefix是基于根据或/>计算的变换块高度(log2TbHeight)的二进制对数来确定的。
21.根据权利要求1-20中任一项所述的方法,其中,当W为非二元的时,last_sig_coeff_x_prefix在所述比特流中被编解码作为截断二进制(TB)码,并且其中,当H为非二元的时,last_sig_coeff_y_prefix在所述比特流中被编解码作为TB码。
22.根据权利要求1-21中任一项所述的方法,还包括基于W是否为非二元的且基于H是否为非二元的来确定所述块中的系数的扫描顺序。
23.根据权利要求1-22中任一项所述的方法,还包括根据来确定所述块的允许的上下文编解码的bin的数量,其中,M和N为整数。
24.一种非暂时性计算机可读介质,包括供视频编解码装置使用的计算机程序产品,所述计算机程序产品包括存储在所述非暂时性计算机可读介质上的计算机可执行指令,使得所述计算机可执行指令当由处理器执行时使所述视频编解码装置执行权利要求1-23所述的方法。
25.一种用于处理视频数据的设备,包括:处理器;以及其上具有指令的非暂时性存储器,其中,所述指令在由所述处理器执行时使所述处理器执行权利要求1-23所述的方法。
CN202280016329.XA 2021-02-23 2022-02-11 对非二元块的残差编解码 Pending CN116918330A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2021077373 2021-02-23
CNPCT/CN2021/077373 2021-02-23
PCT/CN2022/076014 WO2022179404A1 (en) 2021-02-23 2022-02-11 Residual coding on non-dyadic blocks

Publications (1)

Publication Number Publication Date
CN116918330A true CN116918330A (zh) 2023-10-20

Family

ID=83048666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280016329.XA Pending CN116918330A (zh) 2021-02-23 2022-02-11 对非二元块的残差编解码

Country Status (3)

Country Link
US (1) US20230396779A1 (zh)
CN (1) CN116918330A (zh)
WO (1) WO2022179404A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112272298B (zh) * 2015-06-23 2023-07-18 联发科技(新加坡)私人有限公司 转换系数编解码的方法及装置
EP3306924A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data
US20190313108A1 (en) * 2018-04-05 2019-10-10 Qualcomm Incorporated Non-square blocks in video coding
CN112335246B (zh) * 2018-06-29 2024-03-12 交互数字Vc控股公司 用于基于适应性系数组的视频编码和解码的方法及设备

Also Published As

Publication number Publication date
WO2022179404A1 (en) 2022-09-01
US20230396779A1 (en) 2023-12-07

Similar Documents

Publication Publication Date Title
CN112740681B (zh) 自适应多重变换译码
US10848788B2 (en) Multi-type-tree framework for video coding
CN107736023B (zh) 帧内预测及帧内模式译码
US20180199062A1 (en) Intra prediction techniques for video coding
US20160100163A1 (en) Deblock filtering for intra block copying
US20150071357A1 (en) Partial intra block copying for video coding
JP2023169300A (ja) イントラコーディングモードにおけるマトリクスの導出
JP7150861B2 (ja) ビデオコーディングのための空間変動変換
US20240031565A1 (en) Intra-Prediction on Non-dyadic Blocks
CN110730349B (zh) 用于微块的约束
WO2022179404A1 (en) Residual coding on non-dyadic blocks
WO2023082484A1 (en) Array based residual coding on non-dyadic blocks
WO2022213920A1 (en) Partition signaling in video coding
WO2022213988A1 (en) Duplicate partitioning prevention
US20240040119A1 (en) Interaction of multiple partitions
WO2022179414A1 (en) Transform and quantization on non-dyadic blocks
WO2022171071A1 (en) Video decoder initialization information signaling
US20240048701A1 (en) Boundary Handling for Coding Tree Split
US20230396812A1 (en) Unsymmetric Binary Tree Partitioning and Non-dyadic Blocks
US20240022722A1 (en) Neighbor based partitioning constraints
CN118266216A (zh) 非二进分数块的基于数组的残差编解码
US20240022721A1 (en) Constraints on partitioning of video blocks
WO2022174762A1 (en) Transforms on non-dyadic blocks
WO2023020569A1 (en) Intra-prediction on non-dyadic blocks
CN117296316A (zh) 变换和符号预测

Legal Events

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