CN116965035A - 非二元块上的变换 - Google Patents

非二元块上的变换 Download PDF

Info

Publication number
CN116965035A
CN116965035A CN202280015979.2A CN202280015979A CN116965035A CN 116965035 A CN116965035 A CN 116965035A CN 202280015979 A CN202280015979 A CN 202280015979A CN 116965035 A CN116965035 A CN 116965035A
Authority
CN
China
Prior art keywords
block
transform
binary
video
blocks
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
CN202280015979.2A
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 CN116965035A publication Critical patent/CN116965035A/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/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/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/18Methods 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 a set of transform coefficients
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level

Landscapes

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

Abstract

公开了一种用于处理视频数据的机制。父块的非对称二叉树(UBT)分割被确定为创建具有不同尺寸的两个子块。子块中的至少一个子块包括非二元的边。基于子块在可视媒体数据和比特流之间执行转换。

Description

非二元块上的变换
交叉引用
本专利申请要求由张凯等人于2021年2月20日提交的第PCT/CN2021/077039号的题为“Transforms on Non-dyadic Blocks”的国际申请和张凯等人于2021年8月18日提交的第PCT/CN2021/113238号的题为“Transforms on Non-dyadic Blocks”的国际申请的权益,其通过引用并入本文。
技术领域
本专利文件涉及文件格式中的数字音频视频媒体信息的生成、存储和消费。
背景技术
数字视频在互联网和其他数字通信网络上占据了最大带宽使用。随着能够接收和显示视频的连接的用户设备的数量增加,数字视频使用的带宽需求可能继续增长。
发明内容
第一方面涉及一种用于处理视频数据的方法,包括:当块包括非二元的边时,执行所述块的残差的变换编解码;以及基于所述块在可视媒体数据与比特流之间执行转换。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了变换编解码包括对所述块应用归零变换。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了应用所述归零变换包括将所述块的左上矩形区域之外的所有残差系数设置为零,其中,所述左上矩形区域具有宽度(W1)和高度(H1),并且其中W1等于以及H1等于/>
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述块是非二元块,其中,对所述块应用二元变换,并且其中所述块被填充到二元大小以适合所述二元变换。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述块是通过固定值填充、复制填充、外推填充、水平镜像轴的应用、垂直镜像轴的应用或其组合来填充的。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述块是非二元块,其中,所述块被划分成多个二元变换单元以支持通过二元变换的变换编解码。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了其中所述块的变换编解码包括非二元变换的应用。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述非二元变换是离散余弦变换(DCT)类型二(DCT-2)、DCT类型八(DCT-8)、离散正弦变换(DST)类型七(DST-7)或其组合。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述块的变换编解码包括非二元多重变换选择(MTS)变换的应用。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述MTS变换包括DCT-2、DCT-8、DST-7、DCT类型五(DCT-5)、DST类型四(DST-4)、DST类型一(DST-1)、恒等变换(IDT)或其组合。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了MTS被禁止应用于非二元块。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述块是非二元块,并且其中用于所述非二元块的变换选择采用与用于二元块的变换选择相同的选择规则。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述块是非二元块,并且其中用于非二元块的变换选择规则和用于二元块的变换选择规则是不同的。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了DCT-5、DST-4、DST-1、IDT或其组合是用于二元块的候选,而不是用于非二元块的候选。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了指示用于所述块的变换的码字不包括对非二元块禁止的任何变换候选的组合。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了所述块的变换编解码包括低频不可分离二次变换(LFNST)变换的应用。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了对非二元块允许来自LFNST集合的单个核。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了LFNST被应用于具有宽度(W1)和高度(H1)的非二元块中的区域,其中W1×H2不是4×4也不是8×8。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了当所述非二元块具有宽度(W)或高度(H)等于预定值时,变换被禁止应用于非二元块。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了当所述非二元块包含颜色分量时,变换被禁止应用于非二元块。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了当非二元块是通过帧内子分割(ISP)帧内预测、多元线性回归帧内预测(MIP)、仿射帧内预测、几何合并模式(GEO)或其组合来预测的时,MTS被禁止应用于所述非二元块。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了当非二元块是通过ISP、MIP、仿射帧内预测、GEO或其组合来预测的时,LFNST被禁止应用于所述非二元块。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了当非二元块是通过仿射帧内预测、几何合并模式(GEO)或其组合来预测的时,不允许子块变换(SBT)应用于所述非二元块。
第二方面涉及一种用于处理视频数据的方法,包括:当块包括非二元的边时,禁止对所述块的残差的变换编解码;以及基于所述块在可视媒体数据与比特流之间执行转换。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了还包括将所述块的所有残差设置为零或推断所述残差为零。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了用于所述块的编解码块标志(cbf)不包括在所述比特流中并且被推断为零。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了指定用于所述块的变换单元相关语法的存在的语法元素不在所述比特流中信令通知并且被推断为零。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了指定变换矩阵的应用的指示不在所述比特流中信令通知并且被推断为零。
可选地,在前述方面中的任一方面中,该方面的另一实现方式提供了禁止对所述块的残差的变换编解码包括将变换跳过、基于块的增量脉冲编解码调制(BDPCM)模式、调色板模式或其组合应用于所述块。
第三方面涉及一种非暂态计算机可读介质,包括供视频编解码设备使用的计算机程序产品,所述计算机程序产品包括存储在所述非暂态计算机可读介质上的计算机可执行指令,以使当所述计算机可执行指令由处理器执行时使得所述视频编解码设备执行前述方面中任一所述的方法。
第四方面涉及一种用于处理视频数据的装置,包括:处理器;以及其上具有指令的非暂态存储器,其中,所述指令在被所述处理器执行时,使得所述处理器执行前述方面中任一所述的方法。
为了清楚起见,任一前述实施例都可以与任何一个或多个其他前述实施例相结合,以在本公开的范围内创建新的实施例。
通过结合附图和权利要求进行的以下详细描述,将更清楚地理解这些和其他特征。
附图说明
为了本公开的更完整的理解,现在参考以下结合附图和详细描述的简要描述,其中相似的附图标记表示相似的部分。
图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是示例不可分离二次变换(NSST)过程的示意图。
图17是具有缩减二次变换的示例低频不可分离二次变换(LFNST)过程的示意图。
图18是残差变换的另一示例的示意图。
图19是具有16×48矩阵的示例正向LFNTS 8×8过程的示意图。
图20是用于支持LFNTS的信令的示例扫描机制的示意图。
图21是LFNST核集合十六(LFNST 16)的示例感兴趣区域(ROI)的示意图。
图22是LFNST核集合八(LFNST 8)的示例ROI的示意图。
图23是应用于非二元块的示例二元变换的示意图。
图24是示出示例视频处理***的框图。
图25是示例视频处理装置的框图。
图26是视频处理的示例方法的流程图。
图27是视频处理的另一示例方法的流程图。
图28是图示示例视频编解码***的框图。
图29是图示示例编码器的框图。
图30是图示示例解码器的框图。
图31是示例编码器的示意图。
具体实施方式
一开始就应该理解,尽管下面提供了一个或多个实施例的说明性实现方式,但所公开的***和/或方法可以使用任何数量的技术来实现,无论是当前已知的还是尚未开发的。本公开不应以任何方式局限于以下所示的说明性实现方式、附图和技术,包括本文所示和描述的示例性设计和实施方式,而是可以在所附权利要求及其等价的全部范围内进行修改。
多功能视频编解码(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可以被分为包含在CU中的CB。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可以被高度集成,但是出于概念目的而分别图示。作为如上所述由运动估计组件121和运动补偿组件119在图片之间执行的帧间预测的替代,图片内估计组件115和图片内预测组件117相对于当前图片中的块对当前块进行帧内预测。具体地,图片内估计组件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是可以由根据H.264/AVC的分割树结构创建的示例宏块分割200的示意图。这种标准中编解码层的核心是宏块,包含一个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包括CTU,CTU类似于AVC中的宏块。CTU具有由编码器选择的大小,并且可以大于宏块。CTU包括亮度编解码树块(CTB)、对应的色度CTB和语法元素。亮度CTB的大小表示为L×L,大小可以被选择为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的示例四叉树。对每个TB应用诸如离散余弦变换(DCT)等变换。该变换将残差转换成可以使用比未压缩残差更少的数据来表示的变换系数。TU树结构403具有CU级别的根。亮度CB残差区域可以与亮度TB区域相同或者可以进一步被划分成更小的亮度TB。这同样适用于色度TB。类似于DCT的整数基变换函数被定义用于大小为4×4、8×8、16×16和32×32的正方形TB。对于亮度图片内预测残差的4×4变换,可替代地指定从DST形式导出的整数变换。
下面讨论联合探索模型(JEM)中具有较大CTU的四叉树加二叉树块结构。视频编解码专家组(VCEG)和MPEG成立了联合视频探索小组(JVET),以探索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,该分段(segmentation)用于预测和转换处理,无需进一步分割。这使得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大小被设置为128×128个亮度样点,其具有两个对应的64×64色度样点块,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)分割。
在示例实施方式中,采用两级的树,包括区域树(四叉树)和预测树(二叉树或三叉树)。CTU首先由区域树(RT)分割。RT叶可以用预测树(PT)进一步划分。还可以用PT进一步划分PT叶,直到达到最大PT深度。PT叶是基本的编解码单位。为方便起见,PT也可以被称为CU。在示例实施方式中,CU不能被进一步划分。预测和变换二者都以与JEM相同的方式应用于CU。整个分割结构被命名为多类型树。
现在讨论扩展的四叉树。图7是示例EQT分割结构的示意图700。与块分割过程相对应的EQT分割结构包括用于视频数据块的扩展的四叉树分割过程。扩展的四边形(quad)分割结构表示将视频数据块分割成最终的子块。当扩展的四叉树分割过程决定将扩展的四叉树分割应用于块时,该块总是被划分成四个子块。最终子块的解码基于视频比特流。视频数据块的解码基于根据导出的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×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的子块的数量被设置为等于6或8。划分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分割方法可以仅在某些条件下用作其他分割树类型的替代。在一个示例中,该条件可以基于图片、条带类型、块大小、编解码模式;和/或块是否位于图片、条带和/或图块边界处。在一个示例中,可以用与QT相同的方式对待EQT。在这种情况下,当选择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的四个分割(partition),其中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仅在垂直方向上划分(split)一个分割,例如,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-V划分1301和ETT-H划分1303的示例ETT分割结构的示意图1300。当采用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的形式是W1=2N1,其中N1是正整数。在另一示例中,H1的形式是H1=2N1,其中N1是正整数。
在一个示例中,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是包括垂直UBT(UBT-V)分割和水平UBT(UBT-H)分割的示例1/4UBT分割结构的示意图1400。大小为W×H的块可以被划分成两个尺寸为W1×H1和W2×H2的子块,其中一个子块是二元(dyadic)块,另一个是非二元块。这种划分被称为非对称二叉树(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,并且其中,对于i=0和i>0,A分别等于1和21/2。此外,DCT的基向量ci被定义为ci=[ci0,…,ci(N-1)]T i=0,…,N-1。
M=log2(N)
ST1=2-(B+M-9)
ST2=2-(M+6)
B表示比特深度。
在第一反向变换阶段之后:SIT=2-(7)
在第二反向变换阶段之后:SIT2=2-(20-B)
对于正向变换的输出样点coeff,可以按如下方式实施直接(straightforward)量化方案:
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]。
对于量化器输出level,去量化器在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)
在第一反向变换阶段(SIT1)之后 2-7
第二反向变换阶段 2(6+M/2)
在第二反向变换阶段(SIT2)之后 2-(20-B)
反向变换的总缩放 2-(15-B-M)
在VVC中,图18图示了变换、量化、去量化和反向变换的过程,下面将更详细地讨论。与HEVC不同,VVC支持矩形块,因此VVC支持宽度和高度可能不同的块。假设变换块的宽度和高度分别为W和H,那么
与图15相比,图18中VVC的移位和乘数修改如下:
正向变换:
反向变换:
与HEVC相比,当是偶数时,可以使用相同的量化/去量化因子。如果/>是奇数,则在量化/去量化阶段使用因子21/2进行补偿。
如果是奇数,则用f’=[f’0,f’1,…,f’5]=[18396,16384,14564,13107,11651,10280]代替f,用g’=[g’0,g’1,…,g’5]=[57,64,72,80,90,102]代替g,粗略地说,f’≈f×2-1/2且g’≈g×21/2。
现在讨论在VVC使用的多重变换集(MTS)。除了在HEVC采用的DCT类型2(DCT-II)之外,MTS方案可以用于帧间和帧内编码块的残差编解码。MTS使用从DCT类型8(DCT-VIII)和/或DST类型7(DST-VII)中选择的多个变换。下表示出了所选DST/DCT的基函数。
有两种方法可以启用MTS。一种是显式MTS,另一种是隐式MTS。现在讨论隐式MTS。隐式MTS是VVC中的工具。变量implicitMtsEnabled的推导如下。是否启用隐式MTS取决于变量implicitMtsEnabled的值。变量implicitMtsEnabled的推导如下。如果sps_mts_enabled_flag等于1,并且以下一个或多个条件为真,则implicitMtsEnabled被设置为等于1:IntraSubPartitionsSplitType不等于ISP_NO_SPLIT(即,启用ISP);并且cu_sbt_flag等于1(即,启用ISP)且Max(nTbW,nTbH)小于或等于32。sps_explicit_mts_intra_enabled_flag等于0(即,禁用显式MTS)且CuPredMode[0][xTbY][yTbY]等于MODE_INTRA且lfnst_idx[x0][y0]等于0且intra_mip_flag[x0][y0]等于0。否则,implicitMtsEnabled被设置为等于0。
指定水平变换核(kernel)的变量trTypeHor和指定垂直变换核的变量trTypeVer的推导如下。如果以下一个或多个条件为真,则trTypeHor和trTypeVer被设置为等于0(即,DCT2)。cIdx大于0(即对于色度分量);并且IntraSubPartitionsSplitType不等于ISP_NO_SPLIT且lfnst_idx不等于0。否则,如果implicitMtsEnabled等于1,则以下适用:如果cu_sbt_flag等于1,则根据cu_sbt_horizontal_flag和cu_sbt_pos_flag指定trTypeHor和trTypeVer。否则(cu_sbt_flag等于0),trTypeHor和trTypeVer的推导如下:
trTypeHor=(nTbW>=4&&nTbW<=16)?1:0(1188)
trTypeVer=(nTbH>=4&&nTbH<=16)?1:0(1189)
否则,根据mts_idx指定trTypeHor和trTypeVer。变量nonZeroW和nonZeroH的推导如下:如果ApplyLfnstFlag等于1且nTbW大于或等于4且nTbH大于或等于4,则以下适用:
nonZeroW=(nTbW==4||nTbH==4)?4:8(1190)
nonZeroH=(nTbW==4||nTbH==4)?4:8(1191)
否则,以下适用:
nonZeroW=Min(nTbW,(trTypeHor>0)?16:32)(1192)
nonZeroH=Min(nTbH,(trTypeVer>0)?16:32)(1193)
现在讨论显式MTS。为了控制MTS方案,使用一个标志来指定用于帧内/帧间预测的显式MTS是否存在于比特流中。此外,在SPS级别为帧内和帧间预测分别指定了两个单独的启用标志以指示是否启用显式MTS。当在SPS启用MTS时,可以信令通知CU级别变换索引以指示是否应用MTS。在这里,MTS仅应用于亮度。当满足以下条件时,信令通知MTS CU级别索引(由mts_idx表示):宽度和高度二者均小于或等于32;CBF亮度标志等于1;非TS;非ISP;非SBT;禁用LFNST;存在不在DC位置(块的左上位置)的非零系数;以及在左上16×16区域之外没有非零系数。
如果mts_idx的第一个bin等于零,则在两个方向上应用DCT2。然而,如果mts_idx的第一个bin等于1,则另外信令通知更多的两个bin,以分别指示水平方向和垂直方向的变换类型。MTS中的变换和信号映射可以如下表所述来执行。在变换矩阵精度方面,使用8比特主变换核。因此,保留了HEVC中使用的所有变换核,包括4点DCT-2、DST-7以及8点、16点和32点DCT-2。此外,包括64点DCT-2、4点DCT-8、8点、16点和32点DST-7以及DCT-8的其他变换核使用8比特主变换核。
/>
为了降低大尺寸DST-7和DCT-8的复杂度,对于大小(宽度或高度,或宽度和高度两者)等于32的DST-7和DCT-8块,高频变换系数被归零。仅保留16×16低频区域内的系数。与在HEVC中一样,块的残差可以用变换跳过模式进行编解码。为了避免语法编解码的冗余,当CU级MTS_CU_flag不等于零时,不信令通知变换跳过标志。变换跳过的块大小限制与JEM4中MTS的块大小限制相同,这表明变换跳过适用于块宽和块高均等于或小于32的CU。
现在讨论MTS中的归零。在VVC测试模型版本8(VTM8)中,启用了最大大小为64×64的大块尺寸变换,这主要用于更高分辨率的视频,例如1080p和4K序列。对于大小不小于64(宽度、高度或两者)的变换块,应用了DCT2变换的块的高频变换系数被归零,从而仅保留较低频系数,所有其他系数被强制为零而不进行信令通知。例如,对于M×N变换块,以M为块宽,N为块高,当M不小于64时,只保留左32列变换系数。类似地,当N不小于64时,只保留顶部32行变换系数。
对于大小不小于32(宽度、高度或两者)的变换块,应用了DCT8或DST7变换的块的高频变换系数被归零,从而仅保留较低频系数,所有其他系数被强制为零而不进行信令通知。例如,对于M×N变换块,以M为块宽,N为块高,当M不小于32时,只保留左16列变换系数。类似地,当N不小于32时,只保留顶部16行变换系数。
现在讨论低频不可分离二次变换(LFNST)。图16是如在JEM中应用的示例不可分离二次变换(NSST)过程的示意图1600。在编码器处,正向主变换被应用于残差数据块。然后在量化之前应用二次变换。结果被编解码到比特流中。在解码器处,执行去量化。然后,在应用反向主变换之前应用反向二次变换,该反向主变换重建残差以供对块进行解码时使用。在示意图1600中,取决于块大小执行4×4或8×8二次变换。例如,对小块(例如,min(width,height)<8)应用4×4二次变换,以及对每个8×8块的较大块(例如,min(width,height)>4)应用8×8二次变换。
下面以输入为例描述不可分离变换的应用。为了应用不可分离变换,4×4输入块X
首先表示为向量如下所示:
不可分离变换计算为其中/>表示变换系数向量,T是16×16变换矩阵。随后使用该块的扫描顺序(水平、垂直或对角线)将16x1系数向量/>重新组织为4×4块。索引较小的系数被放置在4×4系数块中扫描索引较小的位置。总共有35个变换集,并且每个变换集使用三个不可分离的变换矩阵(核)。预定义从帧内预测模式到变换集的映射。对于每个变换集,所选择的不可分离的二次变换候选进一步由显式信令通知的二级变换索引指定。在变换系数之后,每个帧内CU在比特流中信令通知该索引一次。
现在讨论用于LFNST的缩减(reduced)二次变换。LFNST可以采用四个变换集(而不是35个变换集)。16×64(可以进一步缩减为16×48)和16×16矩阵分别用于8×8和4×4块。为了方便标注,16×64(可以进一步缩减为16×48)变换表示为LFNST8×8,而16×16这个表示为LFNST4×4。
图17是具有缩减的二次变换的示例LFNST过程的示意图1700。在编码器处,正向主变换被应用于残差数据块。然后在量化之前应用二次变换。结果被编解码到比特流中。在解码器处,执行去量化。然后,在应用反主变换之前应用反二次变换,该反二次变换重建残差以供对块进行解码时使用。在示意图1700中,16个系数由4×4正向缩减二次变换产生,64个系数由8×8正向缩减二次变换产生。此外,4×4或8×8反缩减二次变换分别应用于8或16个系数。
现在讨论LFNST计算。缩减变换(RT)的思想是将N维向量映射到不同空间中的R维向量,其中R/N(R<N)是缩减因子。RT矩阵是如下所示的R×N矩阵:
其中变换的R行是N维空间的R个基。RT的反向变换矩阵是对应的正向变换的转置。图18中描述了正向和反向RT。
图18是例如在VVC中使用的残差变换的另一示例的示意图1800。示意图1800类似于示意图1500,但是采用了缩减变换。残差可以通过缩减变换T进行变换并在编码器处进行量化以创建系数,该系数以压缩形式表示残差数据。可以在解码器处应用具有缩减反向变换的去量化和反向变换Tt,以将系数转换回残差数据。然后,可以将残差数据应用于预测以重建编解码块以供显示。
在一个示例中,应用了缩减因子为4(1/4大小)的LFNST 8×8。因此,代替从8×8不可分离变换矩阵大小得到的64×64,使用16×64直接矩阵。换句话说,在解码器侧使用64×16反向LFNST矩阵来在8×8左上区域生成核(主)变换系数。正向LFNST8×8使用16×64(或针对8×8块,使用8×64)矩阵,因此该转换只在给定的8×8区域内的左上4×4区域中生成非零系数。换句话说,当应用LFNST时,除了左上4×4区域之外的8×8区域只有零系数。对于LFNST4×4,应用16×16(或针对4×4块,应用8×16)直接矩阵乘法。
当满足以下两个条件时,有条件地应用反向LFNST:块大小大于或等于给定阈值(W>=4&&H>=4);以及变换跳过模式标志等于零。如果变换系数块的W和H两者都大于4,则将LFNST8×8应用于变换系数块的左上8×8区域。否则,在变换系数块的左上min(8,W)×min(8,H)区域上应用LFNST4×4。如果LFNST索引等于0,则不应用LFNST。否则,应用LFNST,并基于LFNST索引选择核。下面解释LFNST选择方法和LFNST索引的编解码。此外,LFNST适用于帧内CU、适用于帧内条带和帧间条带二者以及适用于亮度分量和色度分量二者。如果启用了双树,则分别信令通知用于亮度分量和色度分量的LFNST索引。对于帧间条带(禁用双树),单个LFNST索引被信令通知并用于亮度分量和色度分量二者。
帧内子分割(ISP)是一种示例帧内预测模式。当选择ISP模式时,禁用LFNST并且不信令通知LFNST索引。这是因为即使在这种情况下将LFNST应用于每个可行的分割块,性能改进也是微不足道的。此外,对ISP预测的残差禁用LFNST降低编码复杂度。
现在讨论LFNST选择。从四个变换集中选择一个LFNST矩阵,每个变换集包括两个变换。应用哪个变换集由帧内预测模式确定,如下所示。当指示了三种CCLM模式中的一种时,选择变换集0。否则,根据下表执行变换集选择。
IntraPredMode 变换集索引
IntraPredMode<0 1
0<=IntraPredMode<=1 0
2<=IntraPredMode<=12 1
13<=IntraPredMode<=23 2
24<=IntraPredMode<=44 3
45<=IntraPredMode<=55 2
56<=IntraPredMode 1
用于访问表的索引表示为IntraPredMode,其具有[-14,83]的范围,这是用于广角帧内预测的变换模式索引。
现在讨论缩减尺寸的LFNST矩阵。图19是具有16×48矩阵的示例正向LFNTS 8×8过程的示意图1900。如图所示,获得N×M残差块(其中N和M大于或等于8)作为预测块和当前块之间的差。将二维(2D)正向主变换应用于N×M残差以创建M×N主系数块。具体地参考来自M×N主系数块的左上角系数。这些系数被分组为三个4×4主系数块。与其他过程相比,二次变换的应用包括代替具有相同的变换集配置(表示为核)的16×64矩阵的16×48矩阵应用。每个矩阵都采用48×1向量作为输入数据。48×1向量是从来自M×N主系数的左上8×8块的三个4×4主系数块创建的。这不包括示意图1900中所示的右下4×4块。因此,正向二次变换的应用产生一个4×4二次系数块、两个4×4零系数块、一个M-8×8右上主系数块、一个8×(N-8)左下主系数块和一个(M-8)×N-8右下主系数块。该4×4二次系数块是从16×1向量生成的,该16×1向量通过将16×48矩阵应用到来自左上4×4主系数组的48×1向量而创建。
现在讨论LFNST信令。R=16的正向LFNST 8×8使用16×64矩阵,因此只在给定的8×8区域内的左上4×4区域中生成非零系数。换句话说,当应用LFNST时,除了左上4×4区域的所有8×8区域都只生成零系数。因此,当在除左上4×4之外的8×8块区域(如图20所示)内检测到任何非零元素时,不对LFNST索引进行编解码。这是因为非零系数的存在意味着没有应用LFNST。在这种情况下,LFNST索引被推断为零。
图20是用于支持LFNTS信令的示例扫描机制的示意图2000。正向LFNST 8×8矩阵可以应用于所示的8×8块。LFNST 8×8矩阵在左上4×4块中创建非零元素,在右上、左下和右下4×4块中创建所有零元素。扫描机制可以按照示意图2000中所示的顺序扫描右下、右上和左下4×4块。该扫描检查非零系数。如果在这些区域发现非零系数,则不使用R=16的LFNST 8×8矩阵。在这种情况下,LFNST索引不会在比特流中进行信令通知并且可以在解码器处被推断为零。
现在讨论归零范围。通常,在对4×4子块应用反向LFNST之前,4×4子块中的任何系数可以是非零的。然而,可以应用约束,即在某些情况下,在对子块应用反向LFNST之前,4×4子块中的某些系数必须为零。令nonZeroSize为变量。规则可能要求当在应用反向LFNST之前系数被重新排列成1-D阵列时,索引不小于nonZeroSize的任何系数必须为零。当nonZeroSize等于16时,左上4×4子块中的系数没有归零约束。当当前块大小为4×4或8×8时,nonZeroSize被设置为等于8。对于其他块大小,nonZeroSize被设置为等于16。
现在讨论用于VVC的增强压缩模型版本2(ECM-2.0)中的增强帧内MTS。在一些过程中,只有DST7和DCT8变换核被用于帧内和帧间编解码。在其他过程中,还使用包括DCT5、DST4、DST1和恒等变换(IDT)的附加主变换。可以根据TU大小和帧内模式信息来设置MTS。最多考虑16种不同的TU大小。对于每个TU大小,根据帧内模式信息选择不同的变换核。对于角度模式,考虑TU形状和帧内预测的联合对称性。对于广角模式,将最接近的角度模式用于变换集确定。
现在讨论ECM-2.0中的扩展LFNST。在ECM-2.0中,LFNST4、LFNST8和LFNST16被定义为指示LFNST核集,它们分别应用于4×N/N×4(N≥4)、8×N/N×8(N≥8)和M×N(M、N≥16)。正向LFNST应用于左上低频区域,该区域被称为感兴趣区域(ROI)。当应用LFNST时,以类似于VVC标准的方式将存在于除ROI之外的区域中的主变换系数归零。
图21是LFNST 16的示例ROI的示意图2100。ROI包括由交叉阴影线描绘的六个4×4子块。这六个4×4子块按连续的扫描顺序排列。由于输入样点数是96,因此正向LFNST16的变换矩阵可以是R×96。在该示例中,R被选择为32。从正向LFNST16生成32个系数(两个4×4子块)。这32个系数按系数扫描顺序排列。
图22是LFNST 8的示例ROI的示意图2200。示意图2200包括第一示例正向LFNST8矩阵2201和第二示例正向LFNST8矩阵2203。与VVC中使用的正向LFNST8矩阵2201相比,正向LFNST8矩阵2203还包括右下4×4子块。正向LFNST8矩阵可以是R×64,并且R被选择为32。生成的系数的定位方式与LFNST16相同。
以下是通过公开的技术解决方案解决的示例技术问题。二元尺寸描述了其中块的宽度和高度必须是2N形式的情况,其中N是正整数。应该修改变换和量化机制以适应具有非二元尺寸的块。
图23是应用于非二元块2301的示例二元变换2303的示意图。非二元块2301是残差数据块,也称为残差(residual和/或residuals),其至少一个边包含不能表示为2的幂的尺寸。在大多数视频编解码***中,要求块是二元的(所有边的尺寸都是2的幂)。这样,变换被设计成二元变换2303。变换包含变换函数,该变换函数将变换所覆盖的空间内的残差转换成系数,可以使用比原始残差数据更少的数据将其包括在比特流中。二元变换2303是所有边都包括可以表示为2的幂的尺寸的变换。如图所示,二元变换2303不能均匀地覆盖非二元块2301中的所有残差。因此,因为二元块2301中的残差没有被二元变换2303完全覆盖和/或二元变换2303转换不包含数据的区域,并且因此在数学上返回不正确的结果,所以非二元块2301在大多数视频编解码***中不能正确工作。
本文公开了用于解决上面列出的一个或多个问题的机制。例如,变换的大小被调整为二元的并且变换的大小被调整以应用于二元块。因此,当应用于非二元块时,变换可能无法正确工作。当所有边的大小可以表示为2的幂时,项目(例如,块或变换)是二元的,而当至少一个边的大小不能表示为2的幂时,该项目是非二元的。本公开解决了这些问题。在一个示例中,对于非二元块,禁止变换。例如,非二元块的残差可以被设置为零,不进行变换,也不进行信令通知。残差是预测和被编解码的块之间的任何差。在这种情况下,对于任何非二元块,不在比特流中信令通知与变换残差相关的语法。在其他示例中,变换可以应用于非二元块。例如,可以应用归零变换以将非二元块左上角区域之外的所有残差系数归零。该区域的大小可以被调整为二元的,以便应用进一步的二元变换。另外,左上角的残差对图像质量的影响最大,将其他残差归零可以减少残差损失的影响。在另一示例中,非二元块可以被填充以适合二元变换。在另一示例中,非二元块可以被划分成二元的变换单元以便二元变换的应用。在另一示例中,可以将额外的元素添加到变换中,以将变换的大小调整为适合非二元块的形状。在一些示例中,对于非二元块,可以允许或禁止主变换和/或二次变换。例如,对于非二元块可以禁止MTS,或者MTS中使用的不同变换可以应用于二元块和非二元块,并且可以相应地修改比特流信令。在一个示例中,对于非二元块,可以禁止LFNST,或者可以采用特定的LFNST。在一个示例中,LFNST可以应用于非二元系数组。在一个示例中,对于具有预定大小的块,可以禁止指定的变换。在一个示例中,可以禁止指定的变换与色度块一起使用。在一个示例中,对于由某些预定的帧内预测机制预测的块,可以禁止指定的变换。
因此,为了解决上述问题,公开了几种方法来处理当应用于如上所述的非二元块时由变换和量化机制引起的问题。这些方法使得实现更好的编解码性能。
下面的详细实施例应该被视为解释一般概念的示例。不应以狭义的方式解释这些实施例。此外,这些实施例可以以任何方式组合。在下面的讨论中,QT、BT、TT、UQT和ETT可以分别指QT划分、BT划分、TT划分、UQT划分和ETT划分。在下面的讨论中,如果宽度和高度都是二元数,则块是二元块,其形式为2N,其中N是正整数。在下面的讨论中,如果宽度和高度中的至少一个是非二元数,则块是非二元块,其不能以2N的形式表示,其中N是正整数。在一个示例中,块可以是与一个颜色分量相关联的块(例如,编解码块/变换块/预测块),或者块可以与两个或三个颜色分量相关联(例如,编解码单元/变换单元/预测单元)。在下面的讨论中,划分(split)和分割(partitioning)具有相同的含义。
示例1
在一个示例中,当W和H中的至少一个是非二元数时,可以对尺寸为宽度(W)乘以高度(H)的第一块禁用变换编解码。
示例2
在一个示例中,第一块的所有残差必须为零。在这种情况下,对于第一块,编解码块标志(cbf)不被信令通知并且被推断为零。在这种情况下,对于第一块,残差不被信令通知并且被推断为零。在这种情况下,对于第一块,指定针对第一块是否存在变换树或变换单元相关语法的语法元素(例如,VVC中的cu_coded_flag)不被信令通知并且被推断为零。此外,不信令通知是否应用不同变换矩阵的指示和/或应该应用哪个变换矩阵(例如,主变换矩阵、二次变换矩阵、旋转变换)的指示。在一个示例中,可以对第一块应用变换跳过。在一个示例中,可以对第一块应用基于块的增量脉冲编解码调制(BDPCM)模式。在一个示例中,可以对第一块应用调色板模式。
示例3
在一个示例中,对于尺寸为W×H的第一块,其中,W和H中的至少一个是非二元数,可以对其应用尺寸不同于W×H的一个或多个变换。
示例4
在一个示例中,可以对第一块应用至少一个归零变换。在一个示例中,对于系数C(i,j),其中i从0到W-1,j从0到H-1,如果i>=W1或j>=H1,则这些系数被强制为零并且不被信令通知,其中,W1<=W且H1<=H。换句话说,只有左上角W1×H1矩形区域中的系数被信令通知给解码器,所有其他系数被设置为零。在一个示例中,W1等于在一个示例中,H1等于/>
示例5
在一个示例中,可以对第一块应用至少一个填充变换。填充变换指的是对具有填充值的块的变换(或反向变换)。
示例6
在一个示例中,可以信令通知尺寸为W1×H1的变换块,其中W1>=W且H1>=H。在一个示例中,W1等于在一个示例中,H1等于/>变换前的残差值R(i,j)(其中,i从W到W1-1或j从H到H1-1)由残差值R’(i,j)(其中,i从0到W-1,j从0到H-1)填充。在一个示例中,R(i,j)被填充为固定值,如0或2B-1,其中,B是比特深度。在一个示例中,R(i,j)通过重复填充进行填充。在一个示例中,R(i,j)通过外推填充进行填充。在一个示例中,R(i,j)被设置为等于R’(i’,j’)。在一个示例中,i’=I-i,j’=j,其中I是水平镜像轴,如I=2W-1。在一个示例中,j’=J-j,i’=i,其中J是垂直镜像轴,如J=2H-1。在一个示例中,i’=I-i,j’=J-j,其中I是水平镜像轴,J是垂直镜像轴,如I=2W-1且J=2H-1。
示例7
在一个示例中,第一块被划分成多个变换单元(TU)。每个TU被单独变换、反向变换、信令通知和解析。在一个示例中,至少一个TU的尺寸是二元数。在一个示例中,所有TU的尺寸都是二元数。
示例8
在一个示例中,可以对第一块应用尺寸为W×H的变换。具有M×M个元素的变换矩阵可以被存储用于M点变换的变换和/或反向变换,其中,M是W和/或H所允许的非二元数。该变换可以是任何变换,如DCT-2、DCT-8和DST-7。每个存储的元素可以是整数。整数的精度可以与为二元变换上的变换而存储的整数的精度相同。
示例9
在一个示例中,可以对尺寸为W×H的第一块应用主变换(例如,多重变换选择(MTS)),其中W和H中的至少一个是非二元数。
示例10
在一个示例中,MTS可以包括除DCT-2、DST-7和DCT-8之外的其他变换,如DCT-5、DST-4、DST-1和IDT。
示例11
在一个示例中,主变换(例如,MTS)可以不用于非二元块。在一个示例中,只有一种变换可以用于非二元块,如DCT-2或DST-7。
示例12
在一个示例中,对于非二元块和二元块,可以用相同的规则来选择变换。在一个示例中,对于尺寸等于W×H的非二元块,所允许的变换集合可以与用于尺寸等于2K×2L的二元块的所允许的变换集合相同,其中K=Floor(log2(W))且L=Floor(log2(H))。在一个示例中,对于非二元块和二元块,可以用相同的规则来显式地选择变换。在一个示例中,对于非二元块和二元块,可以用相同的规则来隐式地选择变换。
示例13
在一个示例中,对于非二元块和二元块,可以用不同的规则来进行MTS。例如,不同的变换候选可以用于二元块和非二元块。例如,非二元块的变换候选的数量可能少于二元块的变换候选的数量。例如,非二元块的变换候选的数量可能比二元块的变换候选的数量多。二元块的变换候选可以不是非二元块的候选。例如,DCT-8可以不是非二元块的变换候选。非二元块的变换候选可以不是二元块的候选。在另一示例中,DCT-5和/或DST-4和/或DST-1和/或IDT可能不是非二元块的候选。在一个示例中,变换索引的信令可以取决于变换是否是非二元块的候选。例如,对于非二元块,可以不信令通知指示不用于非二元块的候选的码字。
示例14
在一个示例中,可以对尺寸为W×H的第一块应用二次变换(例如,LFNST),其中W和H中的至少一个是非二元数。在一个示例中,二次变换(例如,LFNST)可以不应用于第一块。在一个示例中,对于第一块,仅允许所选LFNST集合中的一个LFNST核(例如,lfnst_idx等于0)。在一个示例中,对于非二元块和二元块,可以用不同的规则来进行LFNST。在一个示例中,在编码器处的主变换之后,和/或在解码器处的主反向变换之前,可以将W1×H1 LFNST应用于第一块的左上W1×H1区域,其中W1×H1不等于4×4或8×8。
示例15
是否和/或如何应用上述示例可以取决于尺寸为W×H的第一块的W和/或H,其中W和H中的至少一个是非二元数。例如,当W和/或H等于某些特定值时,可以不应用变换。例如,当W和/或H等于某些特定值时,可以不应用MTS。例如,当W和/或H等于某些特定值时,可以不应用LFNST。例如,M×M(如M=16)LFNST不可以应用于宽度或高度小于M(如在M=16的情况下为6或12)的二元块。
示例16
是否和/或如何应用上述示例可以取决于尺寸为W×H的第一块的解码信息(例如,颜色分量、预测方法),其中W和H中的至少一个是非二元数。例如,对于特定颜色分量(如Cb或Cr),可以不对第一块应用变换。例如,对于特定颜色分量(如Cb或Cr),可以不对第一块应用MTS。例如,对于特定颜色分量(如Cb或Cr),LFNST可以不在第一块上。
是否和/或如何应用上述示例可以取决于对尺寸为W×H的第一块的预测方法,其中W和H中的至少一个是非二元数。例如,对于特定预测方法(如ISP/MIP/AFFINE/GEO),可以不对第一块应用MTS。例如,对于特定预测方法(如ISP/MIP/AFFINE/GEO),可以不对第一块应用LFNST。例如,对于特定预测方法(如AFFINE/GEO),可以不对第一块应用SBT。
图24是图示了其中可以实施本文公开的各种技术的示例视频处理***2400的框图。各种实施方式可以包括***2400的部分或全部组件。***2400可以包括用于接收视频内容的输入2402。视频内容可以以原始或未压缩格式(例如,8或10比特多分量像素值)接收,或者可以以压缩或编码格式接收。输入2402可以表示网络接口、***总线接口或存储接口。网络接口的示例包括有线接口,例如以太网、无源光网络(PON)等,以及无线接口,如Wi-Fi或蜂窝接口。
***2400可以包括编解码组件2404,该编解码组件可以实施本文档中所描述的各种编解码方法或编码方法。编解码组件2404可以从输入2402到编解码组件2404的输出降低视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件2404的输出可以被存储,或者经由由组件2406表示的所连接的通信来发送。组件2408可以使用在输入2402处接收的所存储的或通信的视频的比特流(或编解码的)表示来生成发送到显示器接口2410的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但应理解,在编码器处使用编码工具或操作,并且将由解码器执行反转编解码结果的对应解码工具或操作。
***总线接口或显示器接口的示例可包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示器端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中所描述的技术可以体现在各种电子设备中,如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
图25是示例视频处理装置2500的框图。装置2500可用于实施本文所描述的一个或多个方法。装置2500可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2500可以包括一个或多个处理器2502、一个或多个存储器2504和视频处理电路2506。处理器(多个)2502可以被配置为实施本文档中所描述的一个或多个方法。存储器(多个)2504可用于存储用于实施本文所描述方法和技术的数据和代码。视频处理电路2506可用于在硬件电路中实施本文档中所描述的一些技术。在一些实施例中,视频处理电路2506可以至少部分地包括在处理器2502(例如图形协处理器)中。
图26是视频处理的示例方法2600的流程图。方法2600包括在步骤2602执行块的残差的变换编解码。具体地,即使当块包括非二元的边,并且因此是非二元块时,也执行变换编解码。在步骤2606,基于块在可视媒体数据和比特流之间执行转换。如上所述,将二元变换应用于非二元块会导致数学错误。因此,可以采用以下一种或多种方法来纠正这种问题。例如,变换编解码过程可以包括对块应用归零变换。归零变换是将数据设置为零的变换。因此,应用归零变换可以包括将块的左上矩形区域之外的所有残差系数设置为零。左上矩形区域可以具有宽度(W1)和高度(H1),其中W1等于H1等于/>例如,大小为宽度(W)乘高度(H)的块中的系数可以表示为C(i,j),其中i从0到W-1,j从0到H-1。当i>=W1或j>=H1时,这些系数可以被设置为零。这种方法可以在非二元块的二元左上角留下残差区域,并且因此可以将其进行变换并编码到比特流中。应该注意的是,与高频变化相比,人眼更善于感知低频变化。此外,变换过程通常将较高频数据整理到左上方,将较低频数据整理到右下方。归零变换是一个有损过程,但会在左上方保留残差数据,以确保图像质量的降低程度最小。
在另一示例中,块被填充到二元大小以适配二元变换。块的尺寸可以是宽度(W)乘以高度(H),但是可以被填充直到达到宽度(W1)和高度(H1),其中W1>=W且H1>=H。例如,W1可以等于并且H1可以等于/>经填充的块是二元的,并且因此可以进行变换。可以通过从块内部获得数据并将这些数据添加到块的外部的边缘来填充非二元块。这种填充可以包括固定值填充(基于比特深度)、复制填充、外推填充、水平镜像轴的应用、垂直镜像轴的应用或其组合。镜像轴包括定位轴(水平或垂直)并使用对称性来从轴的相对侧选择填充。/>
在另一示例中,二元块可以被划分成各种变换单元。变换单元的大小可以被设为二元的。因此,变换单元可以被单独变换以覆盖所有的残差。
在另一示例中,可以使用非二元变换来对非二元块进行变换。例如,具有M×M个元素的变换矩阵,其中M是W和/或H所允许的非二元数,可以被存储用于M点变换的变换和/或反向变换。该变换可以是任何变换,如离散余弦变换(DCT)类型二(DCT-2)、DCT类型八(DCT-8)和离散正弦变换(DST)类型七(DST-7)。每个存储的元素可以是整数。整数的精度可以与为二元变换上的变换而存储的整数的精度相同。
在另一示例中,块的变换编解码可以包括应用非二元主变换,如多重变换选择(MTS)变换。MTS变换是一种从变换组中选择最佳变换的机制,该变换组诸如DCT-2、DCT-8、DST-7、DCT类型五(DCT-5)、DST类型四(DST-4)、DST类型1(DST-1)、恒等变换(IDT)或其组合。在另一示例中,可以禁止MTS应用于非二元块。例如,如DCT-2或DST-7的单个变换可以专门用于非二元块。
在一个示例中,用于非二元块的主变换选择的规则可以与用于二元块的主变换选择的规则相同和/或相似。在一个示例中,对于尺寸等于W×H的非二元块,所允许的变换集合可以与用于尺寸等于2K×2L的二元块的所允许的变换集合相同,其中K=Floor(log2(W))且L=Floor(log2(H))。在一个示例中,对于非二元块和二元块,可以用相同的规则来显式地选择变换。在一个示例中,对于非二元块和二元块,可以用相同的规则来隐式地选择变换。
在另一示例中,用于非二元块的变换选择规则(例如,MTS)和用于二元块的变换选择规则可以不同。例如,不同的变换候选可以用于二元块和非二元块。此外,非二元块的变换候选的数量可以大于或小于二元块的变换候选的数量。在一些示例中,二元块的变换候选可以不是非二元块的候选,反之亦然。例如,DCT-8可以不是非二元块的变换候选。在一个示例中,DCT-5、DST-4、DST-1、IDT或其组合是二元块的候选,而不是非二元块的候选。在一个示例中,变换索引的信令可以取决于变换是否是非二元块的候选。在一个示例中,指示块的变换的码字不需要包括禁止用于非二元块的任何变换候选的组合。
在一个示例中,非二元块的变换编解码可以包括应用二次变换,如低频不可分离二次变换(LFNST)变换。在另一示例中,可以禁止二次变换与非二元块一起使用。在一个示例中,对于非二元块,允许来自LFNST集合的单个核。在另一示例中,对于非二元块和二元块,可以用不同的规则来实施LFNST。例如,LFNST可以应用于具有宽度(W1)和高度(H1)的非二元块中的区域,其中W1×H2不是4×4也不是8×8。
在示例中,是否和/或如何应用变换可以取决于块是二元的还是非二元的。例如,当非二元块的宽度(W)或高度(H)等于预定值时,可以禁止将变换(如MTS和/或LFNST)应用于非二元块。在一个示例中,M×M(如M=16)LFNST不可以应用于宽度或高度小于M(如在M=16的情况下为6或12)的二元块。
在一个示例中,当非二元块包含颜色分量(如Cb或Cr)时,不允许将变换(如MTS和/或LFNST)应用于非二元块。在具体示例中,当通过帧内子分割(ISP)帧内预测、多元线性回归帧内预测(MIP)、仿射帧内预测、几何合并模式(GEO)或其组合来预测非二元块时,不允许将MTS应用于非二元块。在另一示例中,当通过ISP、MIP、仿射帧内预测、GEO或其组合来预测非二元块时,禁止将LFNST应用于非二元块。在另一示例中,当通过仿射帧内预测、几何合并模式(GEO)或其组合来预测非二元块时,不允许将子块变换(SBT)应用于非二元块。
应当注意,方法2600可以在用于处理视频数据的装置中实施,该装置包括处理器和在其上具有指令的非暂态存储器,如视频编码器2900、视频解码器3000和/或编码器3100。在这种情况下,指令在被处理器执行时使处理器执行方法2600。此外,方法2600可以由包括由视频编解码设备使用的计算机程序产品的非暂态计算机可读介质来执行。计算机程序产品包括存储在非暂态计算机可读介质上的计算机可执行指令,使得当该指令由处理器执行时,使视频编解码设备执行方法2600。
图27是视频处理的另一示例方法2700的流程图。方法2700包括在步骤2702禁止对块的残差进行变换编解码。具体地,当块包括非二元的边,并且因此是非二元块时,禁止变换编解码。在步骤2706,基于块在可视媒体数据和比特流之间执行转换。在示例中,通过将块的所有残差设置为零和/或推断残差为零来禁止变换编解码。此外,描述残差的语法(如块的编解码块标志(cbf))可以不包括在比特流中并且被推断为零。在一示例中,对于块,指定针对该块是否存在变换树或变换单元相关语法的语法元素(如编解码单元编解码标志(cu_coded_flag))不被信令通知并且被推断为零。如此,指定块的变换单元相关语法的存在的语法元素不在比特流中信令通知并且被推断为零。在另一个示例中,指定应用变换矩阵的指示不在比特流中信令通知并且被推断为零。这种指示通常可以指示是否应用变换矩阵和/或指示应用哪个变换(例如,主变换矩阵、二次变换矩阵、旋转变换)。在另一示例中,禁止对块的残差进行变换编解码包括对块的变换跳过、基于块的增量脉冲编解码调制(BDPCM)模式、调色板模式或其组合的应用。
图28是图示了可利用本公开的技术的示例视频编解码***2800的框图。如图28所示,视频编解码***2800可以包括源设备2810和目标设备2820。源设备2810生成编码的视频数据,源设备110可以被称为视频编码设备。目标设备2820可以对源设备2810生成的编码的视频数据进行解码,目标设备120可以被称为视频解码设备。
源设备2810可以包括视频源2812、视频编码器2814和输入/输出(I/O)接口2816。视频源2812可以包括诸如视频捕获设备、用于从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形***的源,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器2814对来自视频源2812的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码的图片和相关联的数据。编解码的图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口2816可以包括调制器/解调器(调制解调器)和/或发送器。编码的视频数据可以通过网络2830经由I/O接口2816直接发送到目标设备2820。编码的视频数据还可以存储在存储介质/服务器2840上,以供目标设备2820访问。
目标设备2820可以包括I/O接口2826、视频解码器2824和显示设备2822。I/O接口2826可以包括接收器和/或调制解调器。I/O接口2826可以从源设备2810或存储介质/服务器2840获取编码的视频数据。视频解码器2824可解码编码的视频数据。显示设备2822可以向用户显示解码的视频数据。显示设备2822可以与目标设备2820集成,或者可以在目标设备2820外部,该目标设备1520可被配置为与外部显示设备接合。
视频编码器2814和视频解码器2824可以根据视频压缩标准操作,如高效视频编解码(HEVC)标准、多功能视频编解码(VVM)标准和其他当前和/或进一步的标准。
图29是图示了可以是图28所图示的***2800中的视频编码器2814的视频编码器2900的示例的框图。视频编码器2900可被配置为执行本公开的任何或所有技术。在图29的示例中,视频编码器2900包括多个功能组件。本公开中所描述的技术可以在视频编码器2900的各个组件之间共享。在一些示例中,处理器可被配置为执行本公开中所描述的任何或所有技术。
视频编码器2900的功能组件可以包括分割单元2901、预测单元2902(其可以包括模式选择单元2903)、运动估计单元2904、运动补偿单元2905和帧内预测单元2906、残差生成单元2907、变换处理单元2908、量化单元2909,反向量化单元2910、反向变换单元2911、重建单元2912、缓冲器2913和熵编码单元2914。
在其他示例中,视频编码器2900可以包括更多、更少或不同的功能组件。在一个示例中,预测单元2902可以包括块内复制(IBC)单元。IBC单元可以在IBC模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
此外,诸如运动估计单元2904和运动补偿单元2905等某些组件可以是高度集成的,但是为了解释的目的在图29的示例中分别表示。
分割单元2901可以将图片分割成一个或多个视频块。视频编码器2900和视频解码器3000可以支持各种视频块大小。
模式选择单元2903可以例如基于错误结果选择一种编解码模式(帧内或帧间),并将得到的帧内或帧间编解码块提供给残差生成单元2907以生成残差块数据,以及提供给重建单元2912以重建编码块以用作参考图片。在一些示例中,模式选择单元2903可以选择帧内和帧间预测的组合(CIIP)模式,其中预测基于帧间预测信号和帧内预测信号。模式选择单元2903还可以在帧间预测的情况下选择块的运动矢量的分辨率(例如,子像素精度或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元2904可以通过将来自缓冲器2913的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元2905可以基于运动信息和来自缓冲器2913的图片的解码样点(与当前视频块相关联的图片除外)来确定当前视频块的预测视频块。
例如,运动估计单元2904和运动补偿单元2905可以根据当前视频块是在I条带、P条带还是B条带中,对当前视频块执行不同的操作。
在一些示例中,运动估计单元2904可以对当前视频块执行单向预测,并且运动估计单元2904可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元2904可以生成指示包含参考视频块的列表0或列表1中的参考图片的参考索引以及指示当前视频块和参考视频块之间的空间位移的运动矢量。运动估计单元2904可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元2905可以基于由当前视频块的运动信息指示的参考视频块生成当前块的预测视频块。
在其他示例中,运动估计单元2904可以对当前视频块执行双向预测,运动估计单元2904可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。然后,运动估计单元2904可以生成指示包含参考视频块的列表0和列表1中的参考图片的参考索引和指示参考视频块和当前视频块之间的空间位移的运动矢量。运动估计单元2904可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元2905可以基于由当前视频块的运动信息指示的参考视频块生成当前视频块的预测视频块。
在一些示例中,运动估计单元2904可以输出用于解码器的解码处理的运动信息的完整集合。在一些示例中,运动估计单元2904可以不输出当前视频的运动信息的完整集合。相反,运动估计单元2904可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元2904可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
在一个示例中,运动估计单元2904可以在与当前视频块相关联的语法结构中向视频解码器3000指示值,该值指示当前视频块与另一视频块具有相同的运动信息。
在另一示例中,运动估计单元2904可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量与所指示视频块的运动矢量之间的差。视频解码器3000可以使用所指示视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所述,视频编码器2900可以预测地信令通知运动矢量。可由视频编码器2900实施的预测信令技术的两个示例包括高级运动矢量预测(AMVP)和合并模式信令。
帧内预测单元2906可以对当前视频块执行帧内预测。当帧内预测单元2906对当前视频块执行帧内预测时,帧内预测单元2906可以基于同一图片中其他视频块的解码样点生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元2907可以通过从当前视频块减去当前视频块的预测视频块(多个)来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
在其他示例中,例如在跳过模式下,对于当前视频块,可以没有当前视频块的残差数据,并且残差生成单元2907可以不执行减法操作。
变换处理单元2908可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来为当前视频块生成一个或多个变换系数视频块。
在变换处理单元2908生成与当前视频块相关联的变换系数视频块之后,量化单元2909可以基于与当前视频块相关联的一个或多个量化参数(QP)值对与当前视频块相关联的变换系数视频块进行量化。
反向量化单元2910和反向变换单元2911可分别对变换系数视频块应用反向量化和反向变换,以从变换系数视频块重建残差视频块。重建单元2912可以将重建的残差视频块添加到来自预测单元2902生成的一个或多个预测视频块的对应样点中,以产生与当前块相关联的重建视频块,以存储在缓冲器2913中。
在重建单元2912重建视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
熵编码单元2914可以从视频编码器2900的其他功能组件接收数据。当熵编码单元2914接收到数据时,熵编码单元2914可以执行一个或多个熵编码操作以生成熵编码数据并输出包括该熵编码数据的比特流。
图30是图示了可以是图28所图示的***2800中的视频解码器2824的视频解码器3000的示例的框图。
视频解码器3000可被配置为执行本公开的任何或所有技术。在图30的示例中,视频解码器3000包括多个功能组件。本公开中所描述的技术可以在视频解码器3000的各个组件之间共享。在一些示例中,处理器可被配置为执行本公开中所描述的任何或所有技术。
在图30的示例中,视频解码器3000包括熵解码单元3001、运动补偿单元3002、帧内预测单元3003、反向量化单元3004、反向变换单元3005、重建单元3006和缓冲器3007。在一些示例中,视频解码器3000可以执行与关于视频编码器2900(图29)所描述的编码过程大体相反的解码过程。
熵解码单元3001可以检索编码的比特流。编码的比特流可包括熵编解码的视频数据(例如,编码的视频数据块)。熵解码单元3001可以解码熵编解码的视频数据,并且运动补偿单元3002可以从熵解码的视频数据确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。例如,运动补偿单元3002可以通过执行AMVP和合并模式来确定这样的信息。
运动补偿单元3002可以产生运动补偿块,可能地基于插值滤波器执行插值。可以在语法元素中包括将以子像素精度使用的插值滤波器的标识符。
运动补偿单元3002可以使用视频编码器2900在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的内插值。运动补偿单元3002可以根据接收到的语法信息确定视频编码器2900使用的插值滤波器,并使用插值滤波器来产生预测块。
运动补偿单元3002可以使用一些语法信息来确定用于编码编码的视频序列的帧(多个)和/或条带(多个)的块的大小、描述如何对编码视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分割进行编码的模式、用于每个帧间编解码块的一个或多个参考帧(和参考帧列表),以及用于解码编码的视频序列的其他信息。
帧内预测单元3003可以使用例如在比特流中接收的帧内预测模式来从空域相邻块形成预测块。反向量化单元3004对在比特流中提供并由熵解码单元3001解码的量化的视频块系数进行反向量化(即,去量化)。反向变换单元3005应用反向变换。
重建单元3006可以将残差块与由运动补偿单元3002或帧内预测单元3003生成的对应预测块相加,以形成解码块。如果需要,还可以应用去块滤波器对解码块进行滤波,以去除块性伪影。然后将解码的视频块存储在缓冲器3007中,该缓冲器为后续运动补偿/帧内预测提供参考块,并且还产生用于在显示设备上呈现的解码视频。
图31是示例编码器3100的示意图。编码器3100适合于实施VVC的技术。编码器3100包括三个环路内滤波器,即去块滤波器(DF)3102、采样自适应偏移(SAO)3104和自适应环路滤波器(ALF)3106。与使用预定义滤波器的DF 3102不同,SAO 3104和ALF 3106利用当前图片的原始样点、分别通过添加偏移和应用有限脉冲响应(FIR)滤波器结合信令通知偏移和滤波器系数的编解码侧信息,来减小原始样点和重建样点之间的均方误差。ALF 3106位于每张图片的最后处理阶段并且可以被视为试图捕获和修复先前阶段产生的伪影的工具。
编码器3100还包括帧内预测组件3108和被配置为接收输入视频的运动估计/补偿(ME/MC)组件3110。帧内预测组件3108被配置为执行帧内预测,而ME/MC组件3110被配置为利用从参考图片缓冲器3112获得的参考图片来执行帧间预测。来自帧间预测或帧内预测的残差块被馈送到变换(T)组件3114和量化(Q)组件3116以生成量化残差变换系数,该量化残差变换系数被馈送到熵编解码组件3118。熵编解码组件3118对预测结果和量化变换系数进行熵编解码,并将其发送到视频解码器(未图示)。从量化组件3116输出的量化分量可以馈送到反向量化(IQ)组件3120、反向变换组件3122和重建(REC)组件3124。REC组件3124能够将图像输出到DF 3102、SAO 3104和ALF 3106,以便在这些图像被存储在参考图片缓冲器3112中之前进行滤波。
接下来提供一些示例优选的解决方案的列表。
以下解决方案显示了本文所讨论的技术的示例。
1.一种视频处理方法(例如,图26-27中所示的方法2600-2700),包括:对于视频的视频块和视频的比特流之间的转换,基于规则确定是否对视频块启用变换编解码;以及基于该确定来执行转换;其中,规则指定是否禁用变换编解码取决于尺寸为W×H的视频块的W或H中的至少一个是否是非二元数。
2.根据解决方案1的方法,其中,规则还指定在视频块的残差为零的情况下禁用变换编解码。
3.根据解决方案1-3中任一项的方法,其中,比特流省略了对视频块是否启用变换编解码的指示。
4.根据解决方案1的方法,其中,使用变换跳过编解码来对视频块进行编解码。
5.根据解决方案1的方法,其中,使用双向增量脉冲编解码调制模式对视频块进行编解码。
6.根据解决方案1的方法,其中,使用调色板模式编解码来对视频块进行编解码。
7.一种视频处理方法,包括:根据规则执行视频的视频块和视频的比特流表示之间的转换;其中,视频块的尺寸为W×H,其中,规则指定,由于W或H中的至少一个是非二元数,所以在转换期间使用尺寸不同于W×H的一个或多个变换。
8.根据解决方案7的方法,其中,规则还指定,由于W或H中的至少一个是非二元数,所以在转换期间使用归零变换。
9.根据解决方案7的方法,其中,规则还指定,由于W或H中的至少一个是非二元数,所以在转换期间使用填充变换。
10.根据解决方案9的方法,其中,比特流包括指示对应于视频块的变换块的尺寸W1×H1的字段,其中,W1>=W且H1>=H。
11.根据解决方案7的方法,其中,规则还指定,由于W或H中的至少一个是非二元数,所以第一块被划分成多个单独进行编解码的变换单元。
12.根据解决方案7的方法,其中,规则还指定,由于W或H中的至少一个是非二元数,所以在编解码期间应用W×H变换。
13.一种视频处理方法,包括:根据规则执行视频的视频块和视频的比特流表示之间的转换;其中,视频块的尺寸为W×H,其中规则基于W或H是否为非二元数来指定在转换期间是否或如何使用主变换或二次变换。
14.根据解决方案13的方法,其中,规则指定响应于W或H是非二元数而使用主变换。
15.根据解决方案13的方法,其中,规则指定响应于W或H是非二元数而禁用主变换。
16.根据解决方案13-15中任一项的方法,其中,以独立于W或H是否为非二元数的方式选择主变换。
17.根据解决方案13-14中任一项的方法,其中,基于W或H是否为非二元数来不同地选择主变换。
18.根据解决方案13的方法,其中,规则指定响应于W或H是非二元数而使用二次变换。
19.根据解决方案13的方法,其中,规则指定响应于W或H是非二元数而禁用二次变换。
20.根据解决方案13-19中任一项的方法,其中,以独立于W或H是否为非二元数的方式选择二次变换。
21.根据解决方案18-19中任一项的方法,其中,基于W或H是否为非二元数来不同地选择二次变换。
22.根据解决方案1-21中任一项的方法,其中,视频单元对应于编解码块。
23.根据解决方案1-22中任一项的方法,其中响应于视频单元的尺寸选择性地使用规则。
24.根据解决方案1-23中任一项的方法,其中,响应于视频单元的编解码信息选择性地使用规则。
25.根据解决方案24的方法,其中,编解码信息包括视频单元的颜色分量或编解码模式或预测模式。
26.根据解决方案1-25中任一项的方法,其中,转换包括从视频生成比特流。
27.根据解决方案1-25中任一项的方法,其中,转换包括从比特流生成视频。
28.一种在计算机可读介质上存储比特流的方法,包括根据解决方案1-26中任一项或多项所述的方法生成比特流,并将该比特流存储在计算机可读介质上。
29.一种其上存储有视频的比特流的计算机可读介质,该比特流在被视频解码器的处理器处理时使得视频解码器生成视频,其中该比特流是根据解决方案1-26中一项或多项所述的方法生成的。
30.一种视频解码装置,包括处理器,该处理器被配置为实施在解决方案1至26中任一项或多项所述的方法。
31.一种视频编码装置,包括处理器,该处理器被配置为实施在解决方案1到26中任一项或多项所述的方法。
32.一种计算机程序产品,其上存储有计算机代码,当该代码由处理器执行时,使得处理器实施在解决方案1至26中任一项所述的方法。
33.一种计算机可读介质,其上的比特流符合根据解决方案1至26中任一项生成的比特流格式。
34.一种方法、装置、根据所公开的方法或本文档中所描述的***生成的比特流。
在本文所描述的解决方案中,编码器可以通过根据格式规则产生符合格式规则的编解码表示。在本文所描述的解决方案中,解码器可以使用格式规则来解析编解码表示中的语法元素,并根据格式规则在获知语法元素存在和不存在的情况下来产生解码的视频。
在本文档中,术语“视频处理”可指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示转换为对应的比特流表示期间应用,反之亦然。例如,如语法所定义的,当前视频块的比特流表示可以对应于其在比特流内并置或分散在不同位置的比特。例如,宏块可以根据变换和编解码的误差残差值进行编码,并且还可以使用报头中的比特和比特流中的其他字段。此外,在转换期间,解码器可以基于上述解决方案中所描述的确定,在获知一些字段可能存在或不存在的情况下解析比特流。类似地,编码器可以确定是否包括某些语法字段,并通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
本文档中所描述的公开和其他解决方案、示例、实施例、模块和功能操作可在数字电子电路中、或在计算机软件、固件、或硬件、包括本文档中公开的结构及其结构等效物、或在它们中的一种或多种的组合中实施。所公开的实施例和其他实施例可以实施为一个或多个计算机程序产品,即,编码在计算机可读介质上的计算机程序指令的一个或多个模块,其由数据处理装置执行或用于控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质的组合物、或者它们中的一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电信号、光信号或电磁信号,该信号被生成以对信息进行编码以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程,或其他适合在计算环境中使用的单元。计算机程序不一定与文件***中的文件相对应。程序可以存储在保存其他程序或数据(例如,标记语言文档中存储的一个或多个脚本)的文件的一部分、专用于所讨论的程序的单个文件、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台计算机上执行或者部署在位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上执行。
本文档中所描述的过程和逻辑流可由一个或多个可编程处理器执行,该可编程处理器执行一个或多个计算机程序以通过操作输入数据并生成输出来执行功能。处理和逻辑流还可以由专用逻辑电路执行,并且装置也可以实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适于执行计算机程序的处理器包括,例如通用微处理器和专用微处理器二者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备、或可操作地耦接以从用于存储数据的一个或多个大容量存储设备接收数据或向其传输数据或两者,该一个或多个大容量存储设备,例如磁盘、磁光盘或光盘。然而,计算机不需要具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及光盘只读存储器(CD-ROM)和数字多功能光盘只读存储器(DVD-ROM)盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
尽管本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可能要求保护的内容的范围的限制,而是对可能特定于特定技术的特定实施例的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实施。此外,尽管特征在上面可能被描述为在某些组合中起作用并且甚至最初如此要求保护,但在一些情况下,可以从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描述操作,但这不应理解为要求以所图示的特定顺序或顺序执行这种操作,或要求执行所有图示操作以实现期望结果。此外,本专利文档中所描述的实施例中的各种***组件的分离不应理解为在所有实施例中都需要这种分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和说明的内容来作出其他实施方式、增强和变化。
当除了第一组件和第二组件之间的线、迹线(trace)或另一介质之外不存在中间组件时,第一组件直接耦接到第二组件。当在第一组件和第二组件之间存在除线、迹线或另一介质之外的中间组件时,第一组件间接耦接到第二组件。术语“耦接”及其变体包括直接耦接和间接耦接。除非另有说明,术语“大约”的使用是指包括后续数字的±10%的范围。
尽管在本公开中已经提供了若干实施例,但应当理解,在不脱离本公开的精神或范围的情况下,所公开的***和方法可以以许多其他特定形式实现。本示例被认为是说明性的而不是限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一***中,或者某些特征可以被省略,或者不被实施。
此外,在不脱离本公开的范围的情况下,在各种实施例中描述和图示为离散或分离的技术、***、子***和方法可以与其他***、模块、技术或方法组合或集成。图示或讨论为耦接的其他项目可以直接连接或可以通过某些接口、设备或中间组件(无论是电气地、机械地还是其他方式)间接地耦接或通信。变化、替换和改变的其他示例可由本领域技术人员确定,并且可以在不偏离本文所公开的精神和范围的情况下进行。

Claims (31)

1.一种用于处理视频数据的方法,包括:
当块包括非二元的边时,执行所述块的残差的变换编解码;以及
基于所述块在可视媒体数据与比特流之间执行转换。
2.根据权利要求1所述的方法,其中,变换编解码包括对所述块应用归零变换。
3.根据权利要求1-2中任一项所述的方法,其中,应用所述归零变换包括将所述块的左上矩形区域之外的所有残差系数设置为零,其中,所述左上矩形区域具有宽度(W1)和高度(H1),并且其中W1等于以及H1等于/>
4.根据权利要求1-3中任一项所述的方法,其中,所述块是非二元块,其中,对所述块应用二元变换,并且其中所述块被填充到二元大小以适合所述二元变换。
5.根据权利要求1-4中任一项所述的方法,其中,所述块是通过固定值填充、复制填充、外推填充、水平镜像轴的应用、垂直镜像轴的应用或其组合来填充的。
6.根据权利要求1-5中任一项所述的方法,其中,所述块是非二元块,其中,所述块被划分成多个二元变换单元以支持通过二元变换的变换编解码。
7.根据权利要求1-6中任一项所述的方法,其中,所述块的变换编解码包括非二元变换的应用。
8.根据权利要求1-7中任一项所述的方法,其中,所述非二元变换是离散余弦变换DCT类型二(DCT-2)、DCT类型八(DCT-8)、离散正弦变换DST类型七(DST-7)或其组合。
9.根据权利要求1-8中任一项所述的方法,其中,所述块的变换编解码包括非二元多重变换选择(MTS)变换的应用。
10.根据权利要求1-9中任一项所述的方法,其中,所述MTS变换包括DCT-2、DCT-8、DST-7、DCT类型五(DCT-5)、DST类型四(DST-4)、DST类型一(DST-1)、恒等变换IDT或其组合。
11.根据权利要求1-8中任一项所述的方法,其中,MTS被禁止应用于非二元块。
12.根据权利要求1-11中任一项所述的方法,其中,所述块是非二元块,并且其中用于所述非二元块的变换选择采用与用于二元块的变换选择相同的选择规则。
13.根据权利要求1-12中任一项所述的方法,其中,所述块是非二元块,并且其中用于非二元块的变换选择规则和用于二元块的变换选择规则是不同的。
14.根据权利要求1-13中任一项所述的方法,其中,DCT-5、DST-4、DST-1、IDT或其组合是用于二元块的候选,而不是用于非二元块的候选。
15.根据权利要求1-14中任一项所述的方法,其中,指示用于所述块的变换的码字不包括对非二元块禁止的任何变换候选的组合。
16.根据权利要求1-15中任一项所述的方法,其中,所述块的变换编解码包括低频不可分离二次变换(LFNST)变换的应用。
17.根据权利要求1-16中任一项所述的方法,其中,对非二元块允许来自LFNST集合的单个核。
18.根据权利要求1-17中任一项所述的方法,其中,LFNST被应用于具有宽度(W1)和高度(H1)的非二元块中的区域,其中W1×H2不是4×4也不是8×8。
19.根据权利要求1-18中任一项所述的方法,其中,当所述非二元块具有宽度(W)或高度(H)等于预定值时,变换被禁止应用于非二元块。
20.根据权利要求1-19中任一项所述的方法,其中,当所述非二元块包含颜色分量时,变换被禁止应用于非二元块。
21.根据权利要求1-20中任一项所述的方法,其中,当非二元块是通过帧内子分割ISP帧内预测、多元线性回归帧内预测MIP、仿射帧内预测、几何合并模式GEO或其组合来预测的时,不允许MTS应用于所述非二元块。
22.根据权利要求1-21中任一项所述的方法,其中,当非二元块是通过ISP、MIP、仿射帧内预测、GEO或其组合来预测的时,不允许LFNST应用于所述非二元块。
23.根据权利要求1-22中任一项所述的方法,其中,当非二元块是通过仿射帧内预测、几何合并模式GEO或其组合来预测的时,不允许子块变换SBT应用于所述非二元块。
24.一种用于处理视频数据的方法,包括:
当块包括非二元的边时,禁止对所述块的残差的变换编解码;以及
基于所述块在可视媒体数据与比特流之间执行转换。
25.根据权利要求24所述的方法,还包括将所述块的所有残差设置为零或推断所述残差为零。
26.根据权利要求24-25中任一项所述的方法,其中用于所述块的编解码块标志(cbf)不包括在所述比特流中并且被推断为零。
27.根据权利要求24到26中任一项所述的方法,其中,指定用于所述块的变换单元相关语法的存在的语法元素不在所述比特流中信令通知并且被推断为零。
28.根据权利要求24-27中任一项所述的方法,其中,指定变换矩阵的应用的指示不在所述比特流中信令通知并且被推断为零。
29.根据权利要求24-28中任一项所述的方法,其中,禁止对所述块的残差的变换编解码包括将变换跳过、基于块的增量脉冲编解码调制BDPCM模式、调色板模式或其组合应用于所述块。
30.一种非暂态计算机可读介质,包括供视频编解码设备使用的计算机程序产品,所述计算机程序产品包括存储在所述非暂态计算机可读介质上的计算机可执行指令,以使当所述计算机可执行指令由处理器执行时使得所述视频编解码设备执行根据权利要求1到29所述的方法。
31.一种用于处理视频数据的装置,包括:处理器;以及其上具有指令的非暂态存储器,其中,所述指令在被所述处理器执行时,使得所述处理器执行根据权利要求1-29所述的方法。
CN202280015979.2A 2021-02-20 2022-02-15 非二元块上的变换 Pending CN116965035A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CNPCT/CN2021/077039 2021-02-20
CN2021077039 2021-02-20
CN2021113238 2021-08-18
CNPCT/CN2021/113238 2021-08-18
PCT/CN2022/076334 WO2022174762A1 (en) 2021-02-20 2022-02-15 Transforms on non-dyadic blocks

Publications (1)

Publication Number Publication Date
CN116965035A true CN116965035A (zh) 2023-10-27

Family

ID=82932099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280015979.2A Pending CN116965035A (zh) 2021-02-20 2022-02-15 非二元块上的变换

Country Status (3)

Country Link
US (1) US20230396764A1 (zh)
CN (1) CN116965035A (zh)
WO (1) WO2022174762A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100172409A1 (en) * 2009-01-06 2010-07-08 Qualcom Incorporated Low-complexity transforms for data compression and decompression
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
KR20180039578A (ko) * 2015-09-08 2018-04-18 삼성전자주식회사 엔트로피 부호화 및 복호화를 위한 장치 및 방법

Also Published As

Publication number Publication date
US20230396764A1 (en) 2023-12-07
WO2022174762A1 (en) 2022-08-25

Similar Documents

Publication Publication Date Title
KR20210145754A (ko) 행렬 기반 인트라 예측에서의 산출
JP7514354B2 (ja) 変換スキップ・モードのブロック寸法設定
US11546595B2 (en) Sub-block based use of transform skip mode
WO2020228716A1 (en) Usage of transquant bypass mode for multiple color components
US20240040119A1 (en) Interaction of multiple partitions
US20240048701A1 (en) Boundary Handling for Coding Tree Split
WO2022206735A1 (en) Intra-prediction on non-dyadic blocks
WO2022174762A1 (en) Transforms on non-dyadic blocks
WO2023082484A1 (en) Array based residual coding on non-dyadic blocks
WO2022179404A1 (en) Residual coding on non-dyadic blocks
WO2022213966A1 (en) Neighbor Based Partitioning Constraints
WO2023020569A1 (en) Intra-prediction on non-dyadic blocks
WO2022179414A1 (en) Transform and quantization on non-dyadic blocks
WO2022213920A1 (en) Partition signaling in video coding
WO2022213988A1 (en) Duplicate partitioning prevention
WO2022171071A1 (en) Video decoder initialization information signaling
WO2022206995A1 (en) Constraints on partitioning of video blocks
WO2022218280A1 (en) Transforms and sign prediction

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