CN117256151A - 用于视频编解码的残差和系数编解码 - Google Patents

用于视频编解码的残差和系数编解码 Download PDF

Info

Publication number
CN117256151A
CN117256151A CN202280031734.9A CN202280031734A CN117256151A CN 117256151 A CN117256151 A CN 117256151A CN 202280031734 A CN202280031734 A CN 202280031734A CN 117256151 A CN117256151 A CN 117256151A
Authority
CN
China
Prior art keywords
residual
coding
flag
video
transform
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
CN202280031734.9A
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN117256151A publication Critical patent/CN117256151A/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/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/186Methods 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 colour or a chrominance component
    • 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

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

提供了用于视频编解码的方法、装置和非暂时性计算机可读存储介质。该方法包括:响应于确定变换跳过被禁用,由解码器禁用用于变换跳过残差编解码的rice参数的存在。该方法还可以包括采用变换跳过的标志sps_transform_skip_enabled_flag来制约sps_ts_residual_coding_rice_present_in_sh_flag的存在。

Description

用于视频编解码的残差和系数编解码
相关申请的交叉引用
本申请基于2021年4月28日提交的临时申请No.63/181,110并要求其优先权,该申请的全部内容以引用方式并入本申请以用于所有目的。
技术领域
本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码的残差和系数编解码的改进和简化。
背景技术
可以使用各种视频编解码技术来压缩视频数据。根据一种或多种视频编解码标准执行视频编解码。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型(JEM)、高效视频编解码(H.265/HEVC)、高级视频编解码(H.264/AVC)、运动图像专家组(MPEG)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等),这些预测方法利用视频图像或序列中存在的冗余。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。
发明内容
本公开的示例提供了用于视频编解码的方法和装置。
根据本公开的第一方面,提供了一种用于视频编解码的方法。该方法可以包括:响应于确定变换跳过被禁用,由解码器禁用用于变换跳过残差编解码的rice参数的存在。
根据本公开的第二方面,提供了一种用于视频编解码的方法。该方法可以包括:由解码器接收序列参数集(SPS)对齐启用标志,该标志指示在基于SPS对齐启用的值对语法元素sb_coded_flag、abs_remainder、dec_abs_level和coef_sign_flagn进行旁路解码之前是否对齐索引ivlCurrRange。
根据本公开的第三方面,提供了一种用于视频编解码的方法。该方法可以包括:由解码器接收扩展精度处理标志,该标志基于扩展精度处理标志的值指示针对变换系数以及在变换处理期间是否采用扩展动态范围。
根据本公开的第四方面,提供了一种用于视频编解码的方法。该方法可以包括:由解码器接收持久rice适配启用标志,该标志基于持久rice适配启用标志的值指示用于abs_remaining和dec_abs_level的二值化的rice参数推导是否在每个子块的开始采用从先前子块积累的模式相关统计信息进行初始化。
应当理解,上面的通用描述和下面的详细描述只是示例性和解释性的,而不旨在限制本公开。
附图说明
并入本说明书中并构成本说明书一部分的附图示出了与本公开一致的示例,并且与描述一起用于解释本公开的原理。
图1是根据本公开的示例的编码器的框图。
图2是根据本公开的示例的解码器的框图。
图3A是示出根据本公开的示例的多类型树结构中的块分区的图。
图3B是示出根据本公开的示例的多类型树结构中的块分区的图。
图3C是示出根据本公开的示例的多类型树结构中的块分区的图。
图3D是示出根据本公开的示例的多类型树结构中的块分区的图。
图3E是示出根据本公开的示例的多类型树结构中的块分区的图。
图4是根据本公开的示例的具有18×12亮度CTU的图片的图示。
图5是根据本公开的示例的具有18×12亮度CTU的图片的图示。
图6A是根据本公开的示例的VTM中不允许的三叉树(TT)和二叉树(BT)划分的示例的图示。
图6B是根据本公开的示例的VTM中不允许的TT和BT划分的示例的图示。
图6C是根据本公开的示例的VTM中不允许的TT和BT划分的示例的图示。
图6D是根据本公开的示例的VTM中不允许的TT和BT划分的示例的图示。
图6E是根据本公开的示例的VTM中不允许的TT和BT划分的示例的图示。
图6F是根据本公开的示例的VTM中不允许的TT和BT划分的示例的图示。
图6G是根据本公开的示例的VTM中不允许的TT和BT划分的示例的图示。
图6H是根据本公开的示例的VTM中不允许的TT和BT划分的示例的图示。
图7是根据本公开的示例的用于变换块的残差编解码结构的图示。
图8是根据本公开的示例的用于变换跳过块的残差编解码结构的图示。
图9是根据本公开的示例的两个标量量化器的图示。
图10A是根据本公开的示例的状态转换的图示。
图10B是根据本公开的示例的量化器选择的图示。
图11是根据本公开的用于选择概率模型的模板的图示。
图12是根据本公开的以调色板模式编解码的块的示例的图示。
图13是根据本公开的使用调色板预测值来用信号通知调色板条目的图示。
图14A是根据本公开的水平遍历扫描的图示。
图14B是根据本公开的垂直遍历扫描的图示。
图15A是根据本公开的用于调色板的基于子块的索引映射扫描的图示。
图15B是根据本公开的用于调色板的基于子块的索引映射扫描的图示。
图16是根据本公开的示例的用于编码视频信号的方法。
图17是根据本公开的示例的用于编码视频信号的方法。
图18是示出根据本公开的示例的与用户接口耦合的计算环境的图。
图19示出了根据本公开的示例的用于视频编解码方法。
图20示出了根据本公开的示例的用于视频编解码方法。
图21示出了根据本公开的示例的用于视频编解码方法。
图22示出了根据本公开的示例的用于视频编解码方法。
图23是示出根据本公开的示例的用于编码和解码视频块的示例性系统的框图。
图24是示出根据本公开的示例的示例性视频编码器的框图。
图25是示出根据本公开的示例的示例性视频解码器的框图。
图26示出了根据本公开的示例的低延迟变换跳过残差编解码(TSRC)方法。
图27示出了根据本公开的示例的用于视频编解码的方法。
具体实施方式
现在将详细参考示例实施例,其示例在附图中示出。以下描述参考附图,其中除非另有说明,否则不同附图中相同的数字表示相同或相似的元件。以下示例实施例的描述中阐述的实现方式并不代表与本公开一致的所有实现方式。相反,它们仅仅是与如所附权利要求中叙述的本公开相关的方面一致的装置和方法的示例。
本公开中使用的术语仅用于描述特定实施例的目的,并不旨在限制本公开。如在本公开和所附权利要求中使用的,除非上下文另有明确指示,否则单数形式“一(a)”、“一个(an)”和“该(the)”旨在也包括复数形式。还应理解,本文使用的术语“和/或”旨在表示并包括关联列出项目中的一个或多个的任何或所有可能的组合。
应当理解,尽管在本文中可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是该信息不应受这些术语的限制。这些术语仅用于将一类信息与另一类信息区分开来。例如,在不脱离本公开的范围的情况下,第一信息可以称为第二信息;类似地,第二信息也可以称为第一信息。如本文所使用的,根据上下文,术语“如果”可以理解为表示“当……时(when)”、或“在……后(upon)”、或“响应于判断”。
HEVC标准的第一版本于2013年10月完成,与上一代视频编解码标准H.264/MPEGAVC相比,它提供了大约50%的比特率节省或等效的感知质量。尽管HEVC标准比其前代提供了显著的编解码改进,但有证据表明,使用附加的编解码工具可以实现与HEVC相比更高的编解码效率。在此基础上,VCEG和MPEG都开始了针对未来视频编解码标准化的新编解码技术的探索工作。ITU-TVECG和ISO/IEC MPEG于2015年10月成立了一个联合视频探索团队(JVET),以开始对可以实现对编解码效率的显著提高的先进技术进行重大研究。JVET通过在HEVC测试模型(HM)之上整合几个附加的编解码工具来维护称为联合探索模型(JEM)的参考软件。
2017年10月,ITU-T和ISO/IEC发布了关于具有超越HEVC能力的视频压缩的联合征集提案(CfP)。2018年4月,在第10次JVET会议上收到并评估了23份CfP回复,表明压缩效率比HEVC提高了约40%。基于这样的评估结果,JVET启动了新项目来开发新一代视频编解码标准,该标准称为通用视频编解码(VVC)。同月,建立了称为VVC测试模型(VTM)的参考软件代码库,用于演示VVC标准的参考实现。
与HEVC一样,VVC建立在基于块的混合视频编解码框架之上。
图1示出了用于VVC的基于块的视频编码器的总体图。具体地,图1示出了典型的编码器100。编码器100具有视频输入110、运动补偿112、运动估计114、帧内/帧间模式决策116、块预测值140、加法器128、变换130、量化132、预测相关信息142、帧内预测118、图片缓冲器120、逆量化134、逆变换136、加法器126、存储器124、环路滤波器122、熵编码138和比特流144。
在编码器100中,视频帧被分区成多个视频块以用于处理。对于每个给定视频块,基于帧间预测方法或帧内预测方法形成预测。
预测残差从加法器128发送到变换130,预测残差表示当前视频块(视频输入110的一部分)与其预测值(块预测值140的一部分)之间的差。然后变换系数从变换130发送到量化132以用于熵减少。然后将量化系数馈送到熵编码138以生成压缩的视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142(例如,视频块分区信息、运动矢量(MV)、参考图片索引和帧内预测模式)也通过熵编码138被馈送并保存到已压缩比特流144中。已压缩比特流144包括视频比特流。
在编码器100中,还需要与解码器相关的电路以便重建像素以用于预测。首先,通过逆量化134和逆变换136重建预测残差。该重建的预测残差与块预测值140组合以生成当前视频块的未滤波的重建像素。
空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编码的相邻块(称为参考样本)的样本的像素来预测当前视频块。
时间预测(也称为“帧间预测”)使用来自已编码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。给定编码单元(CU)或编码块的时间预测信号通常由一个或多个MV用信号通知,这些MV指示当前CU与其时间参考之间的运动的量和方向。此外,如果支持多个参考图片,则附加地发送一个参考图片索引,其用于标识时间预测信号来自参考图片存储装置中的哪个参考图片。
运动估计114接收视频输入110和来自图片缓冲器120的信号,并且将运动估计信号输出到运动补偿112。运动补偿112接收视频输入110、来自图片缓冲器120的信号以及来自运动估计114的运动估计信号,并且将运动补偿信号输出到帧内/帧间模式决策116。
在执行空间和/或时间预测之后,编码器100中的帧内/帧间模式决策116例如基于率失真优化方法选择最佳预测模式。然后从当前视频块中减去块预测值140,并且使用变换130和量化132将得到的预测残差去相关。得到的量化残差系数由逆量化134进行逆量化并由逆变换136进行逆变换,以形成重建残差,然后将重建残差加回预测块以形成CU的重建信号。此外,在重建CU被放入图片缓冲器120的参考图片存储装置并用于对未来的视频块进行编码之前,可以将环路滤波122(例如,去块滤波器、样本自适应偏移(SAO)和/或自适应环路滤波器(ALF))应用于重建CU。为了形成输出视频比特流144,编码模式(帧间或帧内)、预测模式信息、运动信息和量化残差系数都被发送到熵编码单元138以被进一步压缩和打包以形成比特流。
图1给出了通用的基于块的混合视频编码系统的框图。输入视频信号被逐块(称为编码单元(CU))处理。在VTM-1.0中,一个CU可以达到128×128像素。然而,与仅基于四叉树对块进行分区的HEVC不同,在VVC中,一个编码树单元(CTU)被分割为CU,以适应基于四叉树/二叉树/三叉树的不同局部特性。根据定义,编码树块(CTB)是某个值为N的样本的NxN块,从而将分量分为CTB是分区。CTU包括具有三个样本阵列的图片的亮度样本的一个CTB、色度样本的两个对应的CTB,或单色图片或使用三个单独的颜色平面和用于编解码样本的语法结构进行编解码的图片的样本的一个CTB。此外,去除了HEVC中多分区单元类型的概念,即,VVC中不再存在CU、预测单元(PU)和变换单元(TU)的分离;相反,每个CU始终用作预测和变换两者的基本单元,而不进行进一步分区。在多类型树结构中,一个CTU首先按四叉树结构分区。然后,每个四叉树叶节点可以按二叉树和三叉树结构进一步分区。如图3A、图3B、图3C、图3D和图3E中所示,存在五种分割类型,四元分区、水平二元分区、垂直二元分区、水平三元分区和垂直三元分区。
图3A示出了图示根据本公开的多类型树结构中的块四元分区的图。
图3B示出了图示根据本公开的多类型树结构中的块垂直二元分区的图。
图3C示出了图示根据本公开的多类型树结构中的块水平二元分区的图。
图3D示出了图示根据本公开的多类型树结构中的块垂直三元分区的图。
图3E示出了图示根据本公开的多类型树结构中的块水平三元分区的图。
在图1中,可以执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自同一视频图片/条带中的已经编码的相邻块的样本(称为参考样本)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也称为“帧间预测”或“运动补偿预测”)使用来自已经编码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。给定CU的时间预测信号通常由一个或多个运动矢量(MV)表示,MV指示当前CU与其时间参考之间的运动的量和方向。此外,如果支持多个参考图片,则附加地发送一个参考图片索引,其用于标识时间预测信号来自参考图片存储库中的哪个参考图片。在空间和/或时间预测之后,编码器中的模式决策块选择最佳预测模式,例如,基于率失真优化方法。然后从当前视频块中减去预测块;并且对预测残差使用变换进行去相关并进行量化。对量化残差系数进行逆量化和逆变换,以形成重建残差,然后将重建残差加回预测块,以形成CU的重建信号。此外,在将重建CU放入参考图片存储库中并用于对未来的视频块进行编码之前,可以将环路滤波(例如,去块滤波器、样本自适应偏移(SAO)和自适应环路滤波器(ALF))应用于重建CU。为了形成输出视频比特流,编码模式(帧间或帧内)、预测模式信息、运动信息和量化残差系数都被送到熵编码单元以被进一步压缩和打包以形成比特流。
图2示出了用于VVC的视频解码器的总体框图。具体地,图2示出了典型的解码器200框图。解码器200具有比特流210、熵解码212、逆量化214、逆变换216、加法器218、帧内/帧间模式选择220、帧内预测222、存储器230、环路滤波器228、运动补偿224、图片缓冲器226、预测相关信息234和视频输出232。
解码器200类似于位于图1的编码器100中的重建相关部分。在解码器200中,传入的视频比特流210首先通过熵解码212进行解码,以推导出量化系数水平和预测相关信息。然后通过逆量化214和逆变换216处理量化系数水平以获得重建预测残差。在帧内/帧间模式选择器220中实现的块预测值机制被配置为基于已解码预测信息来执行帧内预测222或运动补偿224。通过使用求和器218将来自逆变换216的重建预测残差与块预测值机制生成的预测输出相加来获得一组未滤波的重建像素。
重建块在被存储在用作参考图片存储库的图片缓冲器226中之前可以进一步经过环路滤波器228。图片缓冲器226中的重建视频可以被发送以驱动显示设备,以及用于预测未来的视频块。在环路滤波器228开启的情况下,对这些重建像素执行滤波操作以推导出最终的重建视频输出232。
图2给出了基于块的视频解码器的总体框图。视频比特流首先在熵解码单元处进行熵解码。编码模式和预测信息被发送到空间预测单元(如果是帧内编码)或时间预测单元(如果是帧间编码)以形成预测块。残差变换系数被发送到逆量化单元和逆变换单元以重建残差块。然后将预测块和残差块相加。重建块在被存储在参考图片存储库中之前可以进一步经过环路滤波。然后将参考图片存储库中的重建视频发送出去以驱动显示设备,并且用于预测未来的视频块。
一般而言,在VVC中应用的基本帧内预测方案与HEVC中的保持相同,除了进一步扩展和/或改进了若干模块,例如,帧内子划分(ISP)编解码模式、具有广角帧内方向的扩展帧内预测、与位置相关的帧内预测组合(PDPC)和4抽头(tap)帧内插值。
VVC中对图片、瓦片组、瓦片和CTU进行划分
在VVC中,瓦片被定义为图片中特定瓦片列和特定瓦片行内的CTU的矩形区域。瓦片组是由图片的整数个瓦片组成的组,这些瓦片排他性地包含在单个NAL单元中。基本上,瓦片组的概念与HEVC中定义的条带相同。例如,图片被划分为瓦片组和瓦片。瓦片是覆盖图片的矩形区域的CTU序列。瓦片组包含图片的多个瓦片。支持两种模式的瓦片组,即光栅扫描瓦片组模式和矩形瓦片组模式。在光栅扫描瓦片组模式中,瓦片组包含图片的按瓦片光栅扫描的瓦片序列。在矩形瓦片组模式中,瓦片组包含图片的多个瓦片,这些瓦片共同形成图片的矩形区域。矩形瓦片组内的瓦片按瓦片组的瓦片光栅扫描的次序。
图4示出了图片的光栅扫描瓦片组划分的示例,其中图片被分为12个瓦片和3个光栅扫描瓦片组。图4包括瓦片410、412、414、416和418。每个瓦片有18个CTU。更具体地,图4示出了具有18×12个亮度CTU的图片,它被划分为12个瓦片和3个瓦片组(信息丰富的)。三个瓦片组如下:(1)第一瓦片组包括瓦片410和412,(2)第二瓦片组包括瓦片414、416、418、420和422,以及(3)第三瓦片组包括瓦片424、426、428、430和432。
图5示出了图片的矩形瓦片组划分的示例,其中图片被分为24个瓦片(6个瓦片列和4个瓦片行)和9个矩形瓦片组。图5包括瓦片510、512、514、516、518、520、522、524、526、528、530、532、534、536、538、540、542、544、546、548、550、552、554和556。更具体地,图5示出了具有18×12个亮度CTU的图片,它被划分为24个瓦片和9个瓦片组(信息丰富的)。瓦片组包含瓦片,并且瓦片包含CTU。9个矩形瓦片组包括(1)两个瓦片510和512,(2)两个514和516,(3)两个瓦片518和520,(4)四个瓦片522、524、534和536,(5)四个瓦片组526、528、538和540,(6)四个瓦片530、532、542和544,(7)两个瓦片546和548,(8)两个瓦片550和552以及(9)两个瓦片554和556。
VVC中的具有高频归零的大块尺寸变换
在VTM4中,启用大块尺寸变换,最大尺寸为64×64,这主要用于更高分辨率的视频,例如1080p和4k序列。对于尺寸(宽度或高度,或宽度和高度两者)等于64的变换块,高频变换系数被归零,从而仅保留低频系数。例如,对于M×N的变换块,其中M为块宽,N为块高,当M等于64时,只保留左侧32列变换系数。类似地,当N等于64时,只保留上方32行变换系数。当变换跳过模式用于大块时,将使用整个块而不对任何值归零。
VVC中的虚拟管线数据单元(VPDU)
虚拟管线数据单元(VPDU)被定义为图片中不重叠的单元。在硬件解码器中,连续的VPDU被多个管线阶段同时处理。在大多数管线阶段中,VPDU尺寸大致与缓冲区尺寸成比例,因此保持小VPDU尺寸很重要。在大多数硬件解码器中,VPDU尺寸可以被设置为最大变换块(TB)尺寸。然而,在VVC中,三叉树(TT)和二叉树(BT)划分可能会导致VPDU尺寸的增加。
为了将VPDU尺寸保持为64x64个亮度样本,在VTM5中应用了以下规范的划分限制(带有语法信令修改):
对于宽度或高度或者宽度和高度两者等于128的CU不允许进行TT分割。
对于N≤64的128xN CU(即,宽度等于128且高度小于128),不允许水平BT。
对于N≤64的Nx128 CU(即,高度等于128且宽度小于128),不允许垂直BT。
图6A、图6B、图6C、图6D、图6E、图6F、图6G和图6H示出了VTM中不允许的TT和BT分区的示例。
VVC中的变换系数编解码
VVC中的变换系数编解码类似于HEVC,因为它们都使用不重叠的系数组(也称为CG或子块)。但是,两者之间也存在一些差异。在HEVC中,系数的每个CG具有4x4的固定尺寸。在VVC草案6中,CG尺寸取决于TB尺寸。因此,各种CG尺寸(1x16,2x8,8x2,2x4,4x2和16x1)在VVC中可用。编码块内的CG和CG内的变换系数根据预先定义的扫描次序被编解码。
为了限制每个像素的上下文编解码二进制位(context coded bin)的最大数量,使用TB的区域和视频分量的类型(例如,亮度分量与色度分量)来推导出TB的上下文编解码二进制位(CCB)的最大数量。上下文编解码二进制位的最大数量等于TB_zosize*1.75。这里,TB_zossize表示系数归零之后在TB内的样本数量。注意,coded_sub_block_flag(指示CG是否包含非零系数的标志)CCB计数不考虑。
系数归零是对变换块执行的操作,以强制使位于变换块的某个区域中的系数为0。例如,在当前的VVC中,64x64变换具有相关联的归零操作。因此,位于64x64变换块内左上角32x32区域外的变换系数全部强制为0。实际上,在当前的VVC中,对于沿某个维度尺寸超过32的任何变换块,沿着该维度执行系数归零操作,以强制使位于左上角32x32区域之外的系数为0。
在VVC中的变换系数编解码中,首先将变量remBinsPass1设置为允许的上下文编解码二进制位的最大数量(MCCB)。在编解码过程中,当用信号通知上下文编解码二进制位时,变量每次减少1。当remBinsPass1大于或等于4时,首先通过sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag语法用信号通知系数,所有这些语法在第一通道(pass)中都使用上下文编解码二进制位。系数的级别信息的剩余部分在第二通道中使用Golomb-rice码和旁路编解码二进制位用语法元素abs_remainder进行编解码。当在编解码第一通道时remBinspass1变得小于4时,在第一通道中不对当前系数进行编解码,而是在第二通道中使用Golomb-Rice码和旁路编解码二进制位用语法元素dec_abs_level直接对当前系数编解码。dec_abs_level[]的rice参数推导过程如表3所示。在上述所有级别编解码之后,针对sig_coef_flag等于1的所有扫描位置的符号(sign_flag)最终被编解码为旁路二进制位。图7中描述了这样的过程。为每个tb重置rembinspass1。对于sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag使用上下文编解码二进制位转换为对于其余系数使用旁路编解码二进制位,每个TB最多只发生一次。对于系数子块,如果在编解码其第一个系数之前remBinsPass1小于4,则使用旁路编解码二进制位对整个系数子块进行编解码。
图7示出了用于变换块的残差编解码结构的图示。
统一的(相同的)rice参数(RicePara)推导用于用信号通知语法abs_remainder和dec_abs_level。唯一的区别是基本水平BaseLevel对于编解码abs_remainder和dec_abs_level分别被设置为4和0。Rice参数不仅基于局部模板中相邻五个变换系数的绝对级别之和而且还基于对应的基本水平来确定,如下:
RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]
当前VVC草案规范中残差编解码的语法和相关联的语义分别在表1和表2中示出。如何阅读表1在本公开的附录部分中示出,该附录部分也可以在VVC规范中找到。
表1残差编解码的语法
/>
/>
表2残差编解码语义
/>
/>
表3 abs_remainder[]和dec_abs_level[]的Rice参数推导过程
表4基于locSumAbs的cRiceParam规范
locSumAbs 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
cRiceParam 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2
locSumAbs 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
cRiceParam 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3
VVC中的变换跳过模式的残差编解码
与其中单个残差编解码方案被设计用于编解码变换系数和变换跳过系数两者的HEVC不同,在VVC中,两个单独的残差编解码方案分别用于变换系数和变换跳过系数(即,残差)。
在变换跳过模式下,残差信号的统计特性与变换系数的统计特性不同,在低频分量周围没有观察到能量压缩。修改残差编解码以考虑(空间)变换跳过残差的不同信号特性,包括:
最后一个x/y位置没有信令;
当所有前面的标志都等于0时,针对除DC子块之外的每个子块编解码coded_sub_block_flag;
用两个相邻系数进行sig_coef_flag上下文建模;
par_level_flag只使用一个上下文模型;
附加的大于5、7、9个标志;
用于余量二值化的修改后的rice参数推导;
符号标志的上下文建模是基于左侧和上方相邻系数值确定的,并且符号标志在sig_coeff_flag之后被解析,以保持所有上下文编解码二进制位在一起。
如图8所示,语法元素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag在第一通道中以逐个残差样本交错方式编解码,随后是第二通道中的abs_level_gtX_flag位平面,以及第三通道中的abs_remainder编解码。
第1通道:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag
第2通道:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag
第3通道:abs_remainder
图8示出了用于变换跳过块的残差编解码结构的图示。
当前VVC草案规范中用于变换跳过模式的残差编解码的语法和相关联的语义分别在表5和表2中示出。如何阅读表5在本公开的附录部分中进行了说明,这也可以在VVC规范中找到。
表5变换跳过模式的残差编解码的语法
/>
/>
/>
量化
在当前VVC中,最大QP值由51扩展到63,并且初始QP的信令也相应发生了变化。当slice_qp_delta的非零值被编解码时,可以在条带分段层修改SliceQpY的初始值。对于变换跳过块,最小允许量化参数(QP)被定义为4,因为当QP等于4时,量化步长变为1。
此外,将相同的HEVC标量量化与称为相关标量量化的新概念一起使用。相关标量量化是指其中变换系数的可容许重建值的集合依赖于在重建次序上位于当前变换系数水平之前的变换系数水平的值的方法。与在HEVC中使用的传统的独立标量量化相比,该方法的主要效果是在N维向量空间(N表示变换块中变换系数的数量)中,可容许重建向量被打包得更密集。这意味着,对于每N维单位体积给定的可容许重建向量的平均数,减少了输入向量和最接近的重建向量之间的平均失真。相关标量量化方法通过以下实现:(a)定义具有不同重建级别的两个标量量化器;以及(b)定义两个标量量化器之间的切换过程。
用Q0和Q1表示的两个标量量化器在图9中示出。可用重建级别的位置由量化步长Δ唯一指定。所使用的标量量化器(Q0或Q1)在比特流中不是显式地用信号通知。相反,用于当前变换系数的量化器由按编解码/重建次序位于当前变换系数之前的变换系数水平的奇偶性确定。
图9示出了在所提出的相关量化方法中使用的两个标量量化器的图示。
如图10A和图10B所示,经由具有四个量化器状态(QState)的状态机实现两个标量量化器(Q0和Q1)之间的切换。QState可以取四个不同的值:0、1、2、3。它由按编解码/重建次序在当前变换系数之前的变换系数水平的奇偶性唯一确定。在变换块的逆量化开始时,状态被设置为等于0。按扫描次序重建变换系数(即,按相同的次序对它们进行熵解码)。在重建当前变换系数之后,如图10所示更新状态,其中k表示变换系数水平的值。
图10A示出了说明用于所提出的相关量化的状态转换的转换图。
图10B示出了说明用于所提出的相关量化的量化器选择的表。
还支持用信号通知默认的缩放矩阵和用户定义的缩放矩阵。默认(DEFAULT)模式缩放矩阵都是平坦的,对于所有TB尺寸,元素都等于16。IBC和帧内编解码模式目前共享相同的缩放矩阵。因此,对于用户定义的(USER_DEFINED)矩阵,MatrixType和MatrixType_DC的数量更新如下:
MatrixType:30=2(2针对帧内和IBC/帧间)×3(Y/CB/Cr分量)×5(正方形TB尺寸:对于亮度从4×4到64×64,对于色度从2×2到32×32)。
MatrixType_DC:14=2(2针对帧内和IBC/帧间×1针对Y分量)×3(TB尺寸:16×16、32×32、64×64)+4(2针对帧内和IBC/帧间×2针对Cb/Cr分量)×2(TB尺寸:16×16、32×32)。
DC值分别针对以下缩放矩阵被编解码:16×16、32×32和64×64。对于尺寸小于8×8的TB,一个缩放矩阵中的所有元素都用信号通知。如果TB的尺寸大于或等于8×8,则在一个8×8缩放矩阵中只有64个元素作为基本缩放矩阵用信号通知。为了获得尺寸大于8×8的正方形矩阵,将8×8基本缩放矩阵(通过元素的复制)上采样到对应的正方形尺寸(即,16×16、32×32、64×64)。当对64点变换的高频系数进行归零时,缩放矩阵的对应的高频也被归零。也即,如果TB的宽度或高度大于或等于32,则只保留左侧一半或上方一半系数,其余的系数赋为零。此外,由于从不使用右下角的4×4个元素,所以针对64×64缩放矩阵用信号通知的元素数量也从8×8减少到三个4×4子矩阵。
变换系数编解码的上下文建模
对于涉及变换系数水平的绝对值的语法元素的概率模型的选择取决于局部邻域中的绝对水平或部分重建的绝对水平的值。所使用的模板如图11所示。
图11示出了用于选择概率模型的模板的图示。黑色方形指定当前扫描位置,并且带有“x”的方形表示使用的局部邻域。
所选择的概率模型依赖于局部邻域中的绝对水平(或部分重建的绝对水平)的总和和局部邻域中大于0的绝对水平的数量(由等于1的sig_coef_flags的数量给出)。上下文建模和二值化取决于局部邻域的以下度量:
numSig:局部邻域中的非零水平的数量;
sumAbs1:局部邻域中第一通道之后的部分重建绝对水平(absLevel1)之和;
sumAbs:局部邻域中重建的绝对水平之和;
对角线位置(d):变换块内当前扫描位置的水平和垂直坐标之和。
基于numSig、sumAbs1和d的值,选择用于编解码sig_coeffl、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag的概率模型。基于sumAbs和numSig的值来选择用于将abs_remainder和dec_abs_level二值化的Rice参数。
在当前的VVC中,减少的32点MTS(也称为RMTS32)基于跳过高频系数并用于降低32点DST-7/DCT-8的计算复杂度。并且,它伴随着系数编解码变化,包括所有类型的归零(即,RMTS32和DCT2中高频分量的现有归零)。具体地,最后一个非零系数位置编解码的二值化基于减小的TU尺寸进行编解码,并且最后一个非零系数位置编解码的上下文模型选择由原始TU尺寸确定。此外,使用60个上下文模型对变换系数的sig_coeff_flag进行编解码。上下文模型索引的选择基于称为locSumAbsPass1的最大五个先前部分重建的绝对水平的总和以及相关量化的状态QState,如下:
如果cIdx等于0,则ctxInc推导如下:
ctxInc=12*Max(0,QState–1)+
Min((locSumAbsPass1+1)>>1,3)+
(d<2?8:(d<5?4:0))
否则(cIdx大于0),则cIdx推导如下:
ctxInc=36+8*Max(0,QState-1)+
Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)
调色板模式
调色板模式背后的基本思想是CU中的样本由代表性颜色值的小集合表示。这个集合被称为调色板。还可以通过将调色板排除的颜色值作为逸出颜色用信号通知来指示该颜色值,逸出颜色的三个颜色分量的值在比特流中被直接用信号通知。这如图12所示。
图12示出了以调色板模式编解码的块的示例。图12包括以调色板模式编解码的1210块和1220调色板。
在图12中,调色板尺寸为4。前3个样本分别使用调色板条目2、0和3进行重建。蓝色样本表示逸出符号。CU级别标志palette_escape_val_present_flag指示CU中是否存在任何逸出符号。如果存在逸出符号,则调色板尺寸将增加一,并且最后一个索引用于指示逸出符号。因此,在图12中,索引4被分配给逸出符号。
为了解码调色板编码的块,解码器需要具有以下信息:
调色板表;
调色板索引。
如果调色板索引对应于逸出符号,则用信号通知附加开销以指示样本的对应颜色值。
此外,在编码器侧,有必要推导适当调色板以与该CU一起使用。
对于用于有损编解码的调色板的推导,使用了修改后的k-均值聚类算法。块的第一样本被添加到调色板中。然后,对于来自块的每个后续样本,计算样本与每个当前调色板颜色之间的绝对差值之和(SAD)。如果每个分量的失真小于对应于最小SAD的调色板条目的阈值,则将样本添加到属于调色板条目的聚类中。否则,样本将作为新的调色板条目被添加。当映射到聚类的样本数量超过阈值时,该聚类的质心将被更新并成为该聚类的调色板条目。
在下一步骤中,按使用情况降序对聚类进行排序。然后,更新对应于每个条目的调色板条目。通常,聚类质心被用作调色板条目。但是,执行率失真分析以分析当考虑到编解码调色板条目的成本时,来自调色板预测值的任何条目是否可能更适合用作更新后的调色板条目,而不是质心。该过程继续进行,直到处理完所有聚类或达到最大调色板尺寸。最后,如果聚类只具有单个样本,并且对应的调色板条目不在调色板预测值中,则该样本被转换为逸出符号。此外,重复的调色板条目被移除,并且它们的聚类被合并。
在调色板推导之后,块中的每个样本被分配最近的(在SAD中)调色板条目的索引。然后,样本被分配到'INDEX'或'COPY_ABOVE'模式。对于可以用'INDEX'或'COPY_ABOVE'模式的每个样本。然后,计算编解码该模式的成本。选择成本较低的模式。
为了对调色板条目进行编解码,维护调色板预测值。调色板的最大尺寸以及调色板预测值在SPS中用信号通知。在每个CTU行、每个条带和每个瓦片的开始处初始化调色板预测值。
对于调色板预测值中的每个条目,重用标志被用信号通知以指示它是否是当前调色板的一部分。如图13所示。
图13示出了使用调色板预测值以用信号通知调色板条目。图13包括先前调色板1310和当前调色板1320。
使用零的游程长度编解码发送重用标志。在此之后,使用0阶的指数Golomb码来用信号通知新调色板条目的数量。最后,用信号通知新调色板条目的分量值。
使用水平和垂直遍历扫描对调色板索引进行编解码,如图14A和图14B所示。使用palette_transpose_flag在比特流中显式地用信号通知扫描次序。
图14A示出了水平遍历扫描。
图14B示出了垂直遍历扫描。
为了对调色板索引进行编解码,使用基于线性系数组(CG)的调色板模式,其基于遍历扫描模式将CU分成具有16个样本的多个分段,如图15A和图15B所示,其中索引游程、调色板索引值和用于逸出模式的量化颜色针对每个CG顺序地编码/解析。
图15A示出了针对调色板的基于子块的索引映射扫描。
图15B示出了针对调色板的基于子块的索引映射扫描。
调色板索引使用两种主要调色板样本模式进行编解码:'INDEX'和'COPY_ABOVE'。如前面解释的,逸出符号被分配了等于最大调色板尺寸的索引。在'COPY_ABOVE'模式下,复制上方行中样本的调色板索引。在'INDEX'模式中,显式地用信号通知调色板索引。每个分段中调色板游程编解码的编码次序如下:
对于每个像素,1个上下文编解码二进制位run_copy_flag=0被用信号通知,指示该像素是否与前一像素具有相同的模式,即,如果前一扫描像素和当前像素都具有游程类型COPY_ABOVE,或者如果前一扫描像素和当前像素都具有游程类型INDEX和相同的索引值。否则,用信号通知run_copy_flag=1。
如果像素和前一像素具有不同模式,则用信号通知指示像素的游程类型(即,INDEX或COPY_ABOVE)的一个上下文编解码二进制位copy_above_palette_indices_flag。如果样本位于第一行(水平遍历扫描)或第一列(垂直遍历扫描),则解码器不必解析游程类型,因为默认使用INDEX模式。此外,如果先前解析的游程类型是COPY_ABOVE,则解码器不必解析游程类型。
在对一个分段中的像素进行调色板游程编解码之后,对索引模式的索引值(palette_idx_idc)和量化的逸出颜色(palette_escape_val)进行旁路编解码。
对残差和系数编解码的改进
在VVC中,当对变换系数进行编解码时,使用统一的(相同的)rice参数(RicePara)推导来用信号通知abs_remainder和dec_abs_level的语法。唯一的区别在于基本水平baseLevel针对编解码abs_remainder和dec_abs_level分别被设置为4和0。Rice参数不仅基于局部模板中相邻五个变换系数的绝对水平之和还基于对应的基本水平来确定,如下:
RicePara=RiceParTable[max(min(31,sumabs-5*baselevel),0)]
换言之,根据相邻系数的水平信息适应地确定语法元素abs_remainder和dec_abs_level的二进制码字。由于该码字确定是针对每个样本执行的,因此它需要附加的逻辑来处理用于系数编解码的该码字适应。
类似地,当在变换跳过模式下对残差块进行编解码时,根据相邻残差样本的水平信息适应地确定语法元素abs_remainder的二进制码字。
此外,当编解码与残差编解码或变换系数编解码相关的语法元素时,概率模型的选择依赖于相邻水平的水平信息,这需要附加的逻辑和附加的上下文模型。
在当前的设计中,逸出样本的二值化是通过调用三阶Exp-Golomb二值化过程来推导的。其性能还有进一步提升的空间。
在当前的VVC中,有两种不同的水平映射方案是可用的,并且分别应用于常规变换和变换跳过。每一水平映射方案都与不同的条件、映射函数和映射位置相关联。对于应用常规变换的块,在上下文编解码二进制位(CCB)的数量超过限制后使用水平映射方案。映射位置(表示为ZeroPos[n])和映射结果(表示为AbsLevel[xC][yC])如表2所指定地进行推导。对于应用变换跳过的块,在上下文编解码二进制位(CCB)的数量超过限制之前,使用另一水平映射方案。映射位置(表示为predCoeff)和映射结果(表示为AbsLevel[xC][yC])如表5所指定地进行推导。这种不统一的设计从标准化的角度来看可能不是最优的。
对于HEVC中超过10位的简档,extended_precision_processing_flag等于1指定扩展动态范围用于系数解析和逆变换处理。在当前的VVC中,对变换系数的残差编解码或10比特以上的变换跳过编解码被报告为导致性能显著下降的原因。其性能还有进一步提升的空间。
提出的方法
在本公开中,提出了几种方法来解决残差和系数编解码的改进部分中提到的问题。需要注意的是,以下方法可以独立应用或可以联合应用。
根据本公开的第一方面,提出使用二进制码字的固定集合来编解码在残差编解码中的某些语法元素,例如,abs_remainder。二进制码字可以使用不同的方法形成。下面列出了一些示例性方法。
第一,使用与当前VVC中使用的用于确定abs_remainder的码字的相同过程,但总是选择固定的rice参数(例如,1、2或3)。
第二,固定长度二值化。
第三,截断Rice二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶Exp-Golomb二值化过程(EGk)。
第六,有限k阶Exp-Golomb二值化。
根据本公开的第二方面,提出使用码字的固定集合来编解码在变换系数编解码中的某些语法元素,例如,abs_remainder和dec_abs_level。二进制码字可以使用不同的方法形成。下面列出了一些示例方法。
第一,使用与当前VVC中使用的用于确定abs_remainder和dec_abs_level的码字的相同过程,但使用固定的rice参数,例如,1、2或3。baseLevel的值对于abs_remainder和dec_abs_level仍然可以不同,就像当前VVC中使用的那样。(例如,baseLevel针对编解码abs_remainder和dec_abs_level分别被设置为4和0)。
第二,使用与当前VVC中使用的用于确定abs_remainder和dec_abs_level的码字的相同过程,但使用固定的rice参数,例如,1、2或3。针对abs_remainder和dec_abs_level的baseLevel的值被选择为相同。例如,两者都使用0或两者都使用4。
第三,固定长度二值化。
第四,截断Rice二值化。
第五,截断二进制(TB)二值化过程。
第六,k阶Exp-Golomb二值化过程(EGk)。
第七,有限k阶Exp-Golomb二值化。
根据本公开的第三方面,提出使用单一上下文来编解码与残差编解码或系数编解码相关的语法元素(例如,abs_level_gtx_flag),并且基于相邻解码水平信息的上下文选择可以被移除。
根据本公开的第四方面,提出使用二进制码字的可变集合来编解码在残差编解码中的某些语法元素,例如,abs_remainder,并且根据当前块的某些已编码信息来确定二进制码字的集合的选择,该已编码信息例如为与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如,IBC模式或帧内或帧间)和/或条带类型(例如,I条带、P条带或B条带)。可以使用不同的方法来推导二进制码字的可变集合,下面列出了一些示例方法。
第一,使用与在当前VVC中使用的用于确定abs_remainder的码字的相同过程,但是具有不同的rice参数。
第二,k阶Exp-Golomb二值化过程(EGk)。
第三,有限k阶Exp-Golomb二值化。
表6基于QP值的Rice参数确定
在第四方面解释的相同方法也适用于变换高效编解码。根据本公开的第五方面,提出了使用二进制码字的可变集合来编解码在变换系数编解码中的某些语法元素,例如,abs_remainder和dec_abs_level,并且根据当前块的某些已编码信息来确定二进制码字的集合的选择,该已编码信息例如为与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如,IBC模式或帧内或帧间)和/或条带类型(例如,I条带、P条带或B条带)。同样,可以使用不同的方法来推导二进制码字的可变集合,下面列出了一些示例方法。
第一,使用与当前VVC中使用的确定abs_remainder的码字的相同过程,但具有不同的rice参数。
第二,k阶Exp-Golomb二值化过程(EGk)。
第三,有限k阶Exp-Golomb二值化。
在上述方法中,可以使用不同的rice参数来推导二进制码字的不同集合。对于给定的残差样本块,所使用的rice参数是根据CU QP(表示为QPCU)而不是相邻水平信息来确定的。一个具体的示例如表6所示,其中TH1到TH4是满足(TH1<TH2<TH3<TH4)的预先定义的阈值,并且K0到K4是预先定义的rice参数。值得注意的是,同样的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于从当前CU的QP值推导相同的rice参数,如表6所示。
根据本公开的第五方面,与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数和/或阈值的集合在比特流中被用信号通知。当通过熵编解码器(例如,算术编解码)对语法元素进行编解码时,所确定的码字被用作二值化码字。
注意,参数和/或阈值的集合可以是与语法元素的码字确定相关联的所有参数和阈值的全集或子集。可以在视频比特流中的不同级别用信号通知参数和/或阈值的集合。例如,它们可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集和/或图片头部)、条带级别(例如,条带头部)、编码树单元(CTU)级别或编码单元(CU)级别用信号通知。
在一个示例中,在条带头部、图片头部、PPS和/或SPS中用信号通知用于确定用于编解码在变换跳过残差编解码中的abs_remainder语法的码字的rice参数。当CU被编码为变换跳过模式并且CU与上述条带头部、图片头部、PPS和/或SPS等相关联时,用信号通知的rice参数用于确定用于编解码语法abs_remainder的码字。
根据本公开的第六方面,与第一方面和第二方面中说明的码字确定相关联的参数和/或阈值的集合用于变换系数编解码和/或变换跳过残差编解码的语法元素。并且可以根据当前块中是否包含亮度残差/系数或色度残差/系数而使用不同的集合。当通过熵编解码器对语法元素进行编解码(例如,算术编解码)时,所确定的码字被用作二值化码字。
在一个示例中,与在当前VVC中使用的变换残差编解码相关联的用于abs_remainder的码字被用于亮度块和色度块两者,但是亮度块和色度块分别使用不同的固定rice参数。(例如,K1用于亮度块,K2用于色度块,其中K1和K2是整数)。
根据本公开的第七方面,与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数和/或阈值的集合在比特流中被用信号通知。并且对于亮度块和色度块可以用信号通知不同的集合。当通过熵编解码器对语法元素进行编解码(例如,算术编解码)时,所确定的码字被用作二值化码字。
在上述方面解释的相同方法也适用于调色板模式下的逸出值编解码,例如,palette_escape_val。
根据本公开的第八方面,可以使用Exp-Golomb二值化的不同k阶来推导用于编解码在调色板模式下的逸出值的二进制码字的不同集合。在一个示例中,对于给定的逸出样本块,所使用的Exp-Golomb参数(即,k的值)根据块的QP值(表示为QPCU)确定。在基于块的给定QP值推导参数k的值时,可以使用如表6所示的相同示例。虽然在该示例中列出了四个不同的阈值(从TH1到TH4),并且可以基于这些阈值和QPCU推导出五个不同的k值(从K0到K4),但需要注意的是,阈值的数量仅用于说明目的。在实践中,可以使用不同数量的阈值将整个QP值范围划分为不同数量的QP值分段,并且对于每个QP值分段,可以使用不同的k值来推导用于编解码在调色板模式下编解码的块的逸出值的对应的二进制码字。同样值得注意的是,相同的逻辑在实践中可以被不同地实现。例如,某些等式或查找表可以用于推导相同的rice参数。
根据本公开的第九方面,与逸出样本的语法元素的码字确定相关联的参数和/或阈值的集合在比特流中被用信号通知。当通过熵编解码器对逸出样本的语法元素进行编解码(例如,算术编解码)时,所确定的码字被用作二值化码字。
注意,参数和/或阈值的集合可以是与语法元素的码字确定相关联的所有参数和阈值的全集或子集。可以在视频比特流中的不同级别用信号通知参数和/或阈值的集合。例如,它们可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集和/或图片头部)、条带级别(例如,条带头部)、编码树单元(CTU)级别或编码单元(CU)级别用信号通知。
在根据该方面的一个示例中,使用k阶Exp-Golomb二值化来确定用于编解码在调色板模式下的palette_escape_val语法的码字,并且k的值在比特流中用信号通知给解码器。k的值可以在不同级别用信号通知,例如,它可以在条带头部、图片头部、PPS和/或SPS等中用信号通知。当CU被编码为调色板模式并且CU与上述条带头部、图片头部、PPS和/或SPS等相关联时,用信号通知的Exp-Golomb参数用于确定用于编解码语法palette_escape_val的码字。
变换跳过模式和常规变换模式的水平映射的协调
根据本公开的第十方面,应用水平映射的相同条件被用于变换跳过模式和常规变换模式两者。在一个示例中,提出了在上下文编解码二进制位(CCB)的数量超过针对变换跳过模式和常规变换模式两者的限制之后应用水平映射。在另一示例中,提出了在上下文编解码二进制位(CCB)的数量超过针对变换跳过模式和常规变换模式两者的限制之前应用水平映射。
根据本公开的第十一方面,用于推导水平映射中的映射位置的相同方法被用于变换跳过模式和常规变换模式两者。在一个实例中,提出了将在变换跳过模式下使用的水平映射中的映射位置的推导方法也应用到常规变换模式。在另一示例中,提出了将在常规变换模式下使用的水平映射中的映射位置的推导方法也应用到变换跳过模式。
根据本公开的第十二方面,将相同的水平映射方法应用于变换跳过模式和常规变换模式两者。在一个示例中,提出了将在变换跳过模式下使用的水平映射函数也应用到常规变换模式。在另一示例中,提出了将在常规变换模式下使用的水平映射函数也应用到变换跳过模式。
残差编解码中的Rice参数推导的简化
根据本公开的第十三方面,提出了在使用Golomb-Rice码来编解码abs_remainder/dec_abs_level的语法元素时,使用诸如移位或除法运算的简单逻辑来代替用于rice参数推导的查找表。根据本公开,可以移除表4中指定的查找表。在一个示例中,Rice参数cRiceParam推导为:cRiceParam=(locSumAbs>>n),其中n是正数,例如3。值得注意的是,在实践中,可以使用其他不同的逻辑来获得相同的结果,例如,除以等于2的n次方的值的除法运算。下面示出了基于VVC草案的对应解码过程的示例,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表7 Rice参数推导过程
根据本公开的第十四方面,提出了在使用Golomb-Rice码来编解码abs_remainder/dec_abs_level的语法元素时,使用较少的邻居位置来推导rice参数。在一个示例中,提出了在编解码abs_remainder/dec_abs_level的语法元素时,只使用2个邻居位置来推导rice参数。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表8 Rice参数推导过程
在另一示例中,提出了在编解码abs_remainder/dec_abs_level的语法元素时,只使用一个邻居位置来推导rice参数。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表9 Rice参数推导过程
根据本公开的第十五方面,提出了在使用Golomb-Rice码来编解码abs_remainder/dec_abs_level的语法元素时,基于baseLevel的值使用不同的逻辑来调整locSumAbs的值,以用于推导rice参数。在一个示例中,以“(locSumAbs-baseLevel*5)*alpha+beta”的形式应用附加的缩放和偏移操作。当alpha取值1.5,且beta取值1时,基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表10 Rice参数推导过程
根据本公开的第十六方面,提出了在使用Golomb-Rice码在abs_remainder/dec_abs_level的语法元素中,移除用于推导rice参数的裁剪操作。根据本公开,VVC草案的解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表11 Rice参数推导过程
根据当前公开,VVC草案的解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表12 Rice参数推导过程
根据本公开的第十七方面,提出了在使用Golomb-Rice码来编解码abs_remainder/dec_abs_level的语法元素时,将locSumAbs的初始值从0改变为非零整数,以用于推导rice参数。在一个示例中,初始值1被分配给locSumAbs,并且基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表13 Rice参数推导过程
/>
根据本公开的第十八方面,提出了在使用Golomb-Rice码来编解码abs_remainder/dec_abs_level的语法元素时,使用邻居位置水平值的最大值而不是它们的总和值来推导rice参数。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表14 Rice参数推导过程
/>
根据本公开的第十九方面,提出了在使用Golomb-Rice码来编解码abs_remainder/dec_abs_level的语法元素时,基于相邻位置处的每个AbsLevel值的相对幅度和基本水平值来推导rice参数。在一个示例中,基于相邻位置处的AbsLevel值中有多少个大于基本水平来推导rice参数。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表15 Rice参数推导过程
在另一示例中,rice参数基于AbsLevel值大于基本水平的那些相邻位置的(AbsLevel-baseLevel)值之和来推导。基于VVC草案的对应解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表16 Rice参数推导过程
/>
根据当前公开内容,VVC草案的解码过程的一个示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表17 Rice参数推导过程
/>
残差编解码中的水平映射位置推导的简化
根据本公开的第二十方面,提出了从ZeroPos[n]的推导中移除QState,使得ZeroPos[n]单独地从cRiceParam推导。基于VVC草案的对应解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表18 Rice参数推导过程
根据本公开的第二十一方面,提出了基于locSumAbs的值推导ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表19 Rice参数推导过程
/>
根据本公开的第二十二方面,提出了基于相邻位置的AbsLevel的值来推导ZeroPos[n]。在一个示例中,基于AbsLevel[xC+1][yC]和AbsLevel[xC][yC+1]中的最大值来推导Zeropos[n]。基于VVC草案的对应解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表20 Rice参数推导过程
/>
根据本公开的第二十三方面,提出了基于相邻位置的所有AbsLevel值的最大值来推导cRiceParam和ZeroPos[n]两者。基于VVC草案的对应解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表21 Rice参数推导过程
/>
在以上方面中解释的相同方法也适用于变换跳过模式的残差编解码中的predCoeff的推导。在一个示例中,变量predCoeff推导如下:
predCoeff=Max(absLeftCoeff,absAboveCoeff)+1
变换系数的残差编解码
在本公开中,为了解决在“对残差和系数编解码的改进”部分中指出的问题,提供了方法来简化和/或进一步改进残差编解码的现有设计。一般而言,本公开中提出的技术的主要特征总结如下。
第一,基于当前设计来调整在常规残差编解码下使用的rice参数推导。
第二,改变在常规残差编解码下使用的二进制方法。
第三,改变在常规残差编解码下使用的rice参数推导。
基于当前设计的残差编解码中的Rice参数推导
根据本公开的第二十四方面,提出了使用rice参数推导的可变方法来编解码在残差编解码中的某些语法元素,例如,abs_remainder/dec_abs_level,并根据当前块的某种已编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编解码位深度)和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导rice参数,下面列出了一些示例方法。
第一,cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+c,其中a、b和c为正数,例如{a,b,c}={1,1,0}。值得注意的是,在实践中,可以使用其他不同的逻辑来获得相同的结果,例如,乘以等于2的n次方的值的乘法运算。
第二,cRiceParam=(cRiceParam<<a)+b,其中a和b是正数,例如{a,b}={1,1}。值得注意的是,在实践中,可以使用其他不同的逻辑来获得相同的结果,例如,乘以等于2的n次方的值的乘法运算。
第三,cRiceParam=(cRiceParam*a)+b,其中a和b为正数,例如{a,b}={1.5,0}。值得注意的是,在实践中,可以使用其他不同的逻辑来获得相同的结果,例如,乘以等于2的n次方的值的乘法运算。
基于VVC草案的对应解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表22中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,同样的逻辑在实践中可以不同地实现。例如,某些等式或查找表也可以用于从当前CU/序列的BitDepth值推导相同的rice参数。
表22 Rice参数推导过程
在另一示例中,当BitDepth大于或等于预先定义的阈值(例如,10、11、12、13、14、15或16)时,Rice参数cRiceParam被推导为:cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+c,其中a、b和c是正数,例如1。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表23中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,同样的逻辑在实践中可以不同地实现。例如,某些等式或查找表也可以用于从当前CU/序列的BitDepth值推导相同的rice参数。
表23 Rice参数推导过程
/>
超过10位的简档的残差编解码中的二进制方法
根据本公开的第二十五方面,提出了使用二进制码字的可变集合来编解码在残差编解码中的某些语法元素,例如abs_remainder/dec_abs_level,并根据当前块的某种已编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编解码位深度)和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导二进制码字的可变集合,下面列出了一些示例方法。
第一,使用与在当前VVC中使用的用于确定abs_remainder的码字的相同过程,但总是选择固定的rice参数(例如,2、3、4、5、6、7或8)。根据当前块的某种已编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编解码位深度)和/或根据与TB/CB/条带/图片/序列级别相关联的语法元素(例如,rice_parameter_value),固定值在不同条件下可以不同。一个具体的示例如表24所示,其中TH1至TH4为满足(TH1<TH2<TH3<TH4)的预先定义的阈值,并且K0至K4为预先定义的rice参数。值得注意的是,相同的逻辑在实践中可以不同地实现。例如,某些等式或查找表也可以用于从当前CU/序列的BitDepth值推导相同的rice参数,如表24所示。
第二,固定长度二值化。
第三,截断Rice二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶Exp-Golomb二值化过程(EGk)。
第六,有限k阶Exp-Golomb二值化。
表24基于位深度的Rice参数确定
在一个示例中,当新标志(例如,extended_precision_processing_flag)等于1时,Rice参数cRiceParam固定为n,其中n是正数(例如2、3、4、5、6、7或8)。在不同的条件下,固定值可能不同。基于VVC草案的对应解码过程的示例如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表25中以加粗斜体字体显示了对VVC草案的更改。
表25 Rice参数推导过程
/>
在另一示例中,提出了当新标志(例如,extended_precision_processing_flag)等于1时,在编解码abs_remainder/dec_abs_level的语法元素时,只针对rice参数使用一个固定值。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表26中以加粗斜体字体显示了对VVC草案的更改。
表26 Rice参数推导过程
在又一示例中,当BitDepth大于或等于预先定义的阈值(例如,10、11、12、13、14、15或16)时,Rice参数cRiceParam固定为n,其中n是正数,例如,4、5、6、7或8。在不同的情况下,固定值可能不同。基于VVC草案的对应解码过程的示例如下所示,其中TH是预先定义的阈值(例如,10、11、12、13、14、15或16)。在表27中以加粗斜体字体显示了对VVC草案的更改,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。
表27 Rice参数推导过程
在另一示例中,提出了当BitDepth大于预先定义的阈值(例如,10、11、12、13、14、15或16)时,在编解码abs_remainder/dec_abs_level的语法元素时仅针对rice参数使用一个固定值。基于VVC草案的对应解码过程如下所示,其中TH是预先定义的阈值(例如,10、11、12、13、14、15或16),并且其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表28中以加粗斜体字体显示了对VVC草案的更改。
表28 Rice参数推导过程
/>
残差编解码中的Rice参数推导
根据本公开的第二十六方面,提出了使用rice参数推导的可变方法来编解码在残差编解码中的某些语法元素,例如abs_remainder/dec_abs_level,并且根据当前块的某种已编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编解码位深度)和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导rice参数,下面列出了一些示例方法。
第一,提出了使用计数器来推导rice参数。计数器是根据已编码系数的值和当前块的某种已编码信息(例如,分量ID)来确定的。一个具体的示例,riceParameter=counter/a,其中a是正数,例如4,它维护2个计数器(按亮度/色度拆分)。这些计数器在每个条带的开始处重置为0。一旦被编码,如果这是子TU中编码的第一个系数,则计数器就会被更新,如下所示:
if(coeffValue>=(3<<rice))counter++
if(((coeffValue<<1)<(1<<riceParameter))&&(counter>0))counter--;
第二,提出了在VVC中的rice参数的推导中增加移位操作。根据已编码系数的值确定移位。基于VVC草案的对应解码过程的示例如下所示,根据方法1的计数器确定移位,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表29中以加粗斜体字体示出了对VVC草案的更改。
表29 Rice参数推导过程
第一,提出了在VVC中的rice参数的推导中增加移位操作。根据当前块的某种已编码信息来确定移位,例如,与TB/CB和/或条带简档(例如,14位简档或16位简档)相关联的编解码位深度。基于VVC草案的对应解码过程的示例如下所示,根据方法1的计数器确定移位,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表30中以加粗斜体字体显示了对VVC草案的更改。
表30 Rice参数推导过程
用于变换跳过的残差编解码
根据本公开的第二十七方面,提出了使用二进制码字的可变集合来编解码在变换跳过残差编解码中的某些语法元素,例如abs_remainder,并且根据当前块的某种已编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编解码位深度)和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导二进制码字的可变集合,下面列出了一些示例方法。
第一,使用与当前VVC中使用的用于确定abs_remainder的码字的相同过程,但总是选择固定的rice参数(例如,2,3,4,5,6,7或8)。根据当前块的某种已编码信息,例如量化参数、帧类型(例如,I、P或B)、分量ID(例如,亮度或色度)、颜色格式(例如,420、422或444)或与TB/CB和/或条带/简档相关联的编解码位深度,和/或根据与TB/CB/条带/图片/序列级别相关联的语法元素(例如,rice_parameter_value),固定值在不同条件下可以不同。一个具体示例如表7所示,其中TH1到TH4是满足(TH1<TH2<TH3<TH4)的预先定义的阈值,并且K0到K4是预先定义的rice参数。值得注意的是,相同的逻辑在实践中可以不同地实现。例如,某些等式或查找表也可以用于从当前CU/序列的BitDepth值推导相同的rice参数,如表7所示。
第二,固定长度二值化。
第三,截断Rice二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶Exp-Golomb二值化过程(EGk)。
第六,有限k阶Exp-Golomb二值化。
基于VVC草案的对应解码过程的示例如下所示,在表31中以加粗斜体字体显示了对VVC草案的更改,删除的内容以斜体显示。值得注意的是,相同的逻辑在实践中可以不同地实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表31 Rice参数推导过程
在另一示例中,提出了当新标志(例如,extended_precision_processing_flag)等于1时,在编解码abs_remainder的语法元素时,只针对rice参数使用一个固定值。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表32中以加粗斜体字体显示了对VVC草案的更改。
表32 Rice参数推导过程
在另一示例中,当新标志(例如,extended_precision_processing_flag)等于1时,Rice参数cRiceParam固定为n,其中n是正数(例如,2、3、4、5、6、7或8)。在不同的情况下,固定值可能不同。基于VVC草案的对应解码过程如下所示,其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表33中以加粗斜体字体显示了对VVC草案的更改。
表33 Rice参数推导过程
在又一示例中,当BitDepth大于或等于预先定义的阈值(例如,10、11、12、13、14、15或16)时,Rice参数cRiceParam固定为n,其中n是正数,例如,4、5、6、7或8。在不同的情况下,固定值可能不同。基于VVC草案的对应解码过程的示例如下所示,其中TH是预先定义的阈值(例如,10、11、12、13、14、15或16),并且其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表34中以加粗斜体字体显示了对VVC草案的更改。
表34 Rice参数推导过程
在另一示例中,在条带头部中用信号通知一个控制标志,以指示变换跳过块的Rice参数的信令是启用还是禁用。当控制标志被用信号通知为启用时,对于每个变换跳过条带进一步用信号通知一个语法元素以指示该条带的Rice参数。当控制标志被用信号通知为禁用(例如,设置为等于“0”)时,在较低级别不会进一步用信号通知语法元素以指示变换跳过条带的Rice参数,并且默认Rice参数(例如,1)被用于所有变换跳过条带。基于VVC草案的对应解码过程的示例如下所示,其中TH是预先定义的值(例如,0、1、2),并且其中加粗斜体字体示出更改以及斜体字体示出删除的内容。在表35中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,sh_ts_residual_coding_rice_index可以以不同的方式编解码和/或可以具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
条带头部语法
表35残差编解码的语法
sh_ts_residual_coding_rice_flag等于1指定sh_ts_residual_coding_rice_index可以存在于当前条带中。sh_ts_residual_coding_rice_flag等于0指定sh_ts_residual_coding_rice_index不存在于当前条带中。当sh_ts_residual_coding_rice_flag不存在时,推断sh_ts_residual_coding_rice_flag的值等于0。sh_ts_residual_coding_rice_index指定用于residual_ts_coding()语法结构的rice参数。
表36 Rice参数推导过程
在另一示例中,在序列参数集(或序列参数集范围扩展语法)中用信号通知一个控制标志,以指示变换跳过块的Rice参数的信令是启用还是禁用。当控制标志被用信号通知为启用时,对于每个变换跳过条带进一步用信号通知一个语法元素以指示该条带的Rice参数。当控制标志被用信号通知为禁用(例如,设置为等于“0”)时,在较低级别不会用信号通知进一步的语法元素以指示变换跳过条带的Rice参数,并且默认Rice参数(例如,1)被用于所有变换跳过条带。基于VVC草案的对应解码过程的示例如下所示,其中Th是预先定义的值(例如,0、1、2)。在表37中以加粗斜体字体显示了对VVC草案的更改,并且删除的内容以斜体字体显示。值得注意的是,sh_ts_residual_coding_rice_idx可以以不同的方式编解码和/或可以具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
序列参数集RBSP语法
表37残差编解码的语法
sps_ts_residual_coding_rice_presen_in_sh_flag等于1指定sh_ts_residual_coding_rice_idx可以存在于引用SPS的SH语法结构中。sps_ts_residual_coding_rice_presen_in_sh_flag等于0指定sh_ts_residual_coding_rice_idx不存在于引用SPS的SH语法结构中。当sps_ts_residual_coding_rice_present_in_sh_flag不存在时,推断sps_ts_residual_coding_rice_present_in_sh_flag的值等于0。
条带头部语法
表38残差编解码的语法
/>
sh_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。
表39 Rice参数推导过程
在本公开的一个或多个示例中,如图27所示,提出了在步骤2702中,如果变换跳过被禁用,则禁用用于变换跳过残差编解码的Rice参数的存在。在一个具体示例中,为了实现这样的设计目的,提出了使用sps_transform_skip_enabled_flag来制约sps_ts_residual_coding_rice_present_in_sh_flag的存在,如步骤2704所示。例如,当标志sps_transform_skip_enabled_flag等于零(即,在当前图片处禁用变换跳过)时,sps_ts_residual_coding_rice_present_in_sh_flag不会用信号通知,而是被推断为0。当标志sps_transform_skip_enabled_flag等于1时,sps_ts_residual_coding_rice_present_in_sh_flag将进一步用信号通知。对当前VVC工作草案的更改在下面以斜体字体显示。
在另一示例中,当变换跳过的标志(sps_transform_skip_enabled_flag)被用信号通知为启用时,在序列参数集(或在序列参数集范围扩展语法中)中进一步用信号通知一个控制标志,以指示变换跳过块的Rice参数的信令是启用还是禁用。当控制标志被用信号通知为启用时,对于每个变换跳过条带进一步用信号通知一个语法元素以指示该条带的Rice参数。当控制标志被用信号通知为禁用(例如,设置为等于“0”)时,在较低级别不会用信号通知进一步的语法元素以指示变换跳过条带的Rice参数,并且默认Rice参数(例如,1)被用于所有变换跳过条带。基于VVC草案的对应解码过程的示例如下所示。对VVC草案的更改以斜体字体显示。
序列参数集RBSP语法
sps_ts_residual_coding_rice_presen_in_sh_flag等于1指定sh_ts_residual_coding_rice_idx可以存在于引用SPS的SH语法结构中。sps_ts_residual_coding_rice_present_in_sh_flag等于0指定sh_ts_residual_coding_rice_idx_minus1不存在于引用SPS的SH语法结构中。当sps_ts_residual_coding_rice_present_in_sh_flag不存在时,推断sps_ts_residual_coding_rice_present_in_sh_flag的值等于0。
条带头部语法
sh_ts_residual_coding_rice_idx_minus1加1,指定用于residual_ts_coding()语法结构的rice参数。当sh_ts_residual_coding_rice_idx_minus1不存在时,sh_ts_residual_coding_rice_idx_minus1的值被推断为等于0。
9.3.3.11abs_remainder[]的二值化过程
该过程的输入是对语法元素abs_remainder[n]的二值化的请求、颜色分量cIdx、当前子块索引i和指定当前亮度变换块的左上角样本相对于图片的左上角亮度样本的亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、变换块宽度的二进制对数log2TbWidth以及变换块高度的二进制对数log2TbHeight。
该过程的输出是语法元素的二值化。
变量lastAbsRemainder和lastRiceParam推导如下:
-如果该过程是针对当前子块索引i首次调用,则lastAbsRemainder和lastRiceParam均设置为等于0。
-否则(该过程不是针对当前子块索引i首次调用),则lastAbsRemainder和lastRiceParam分别被设置为等于在如本节中指定的语法元素abs_remainder[n]的二值化过程的上一次调用期间已经推导出的abs_remainder[n]和cRriceParam的值。
rice参数cRriceParam推导如下:
-如果transform_skip_flag[x0][y0][cIdx]等于1,并且sh_ts_residual_coding_disabled_flag等于0,则Rice参数cRiceParam被设置为等于sh_ts_residual_coding_rice_idx_minus1+1。
-否则,rice参数cRiceParam是通过调用如第9.3.3.2节所指定的针对abs_remainder[]的rice参数推导过程来推导的,其中变量baseLevel设置为等于4、颜色分量索引cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、变换块宽度的二进制对数log2TbWidth和变换块高度的二进制对数log2TbHeight作为输入。
在另一示例中,针对每个变换跳过条带用信号通知一个语法元素以指示该条带的Rice参数。基于VVC草案的对应解码过程的示例如下所示。在表40中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,sh_ts_residual_coding_rice_idx可以以不同的方式编解码和/或可以具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
条带头部语法
表40残差编解码的语法
sh_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。当sh_ts_residual_coding_rice_idx不存在时,推断sh_ts_residual_coding_rice_idx的值等于0。
表41 Rice参数推导过程
在另一示例中,在图片参数集范围扩展语法中用信号通知一个控制标志,以指示变换跳过块的Rice参数的信令是启用还是禁用。当控制标志被用信号通知为启用时,进一步用信号通知一个语法元素以指示该图片的Rice参数。当控制标志被用信号通知为禁用(例如,设置为等于“0”)时,在较低级别不会用信号通知进一步的语法元素以指示变换跳过条带的Rice参数,并且默认Rice参数(例如,1)被用于所有变换跳过条带。基于VVC草案的对应解码过程的示例如下所示,其中TH是预先定义的值(例如,0、1、2)。在表42中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,pps_ts_residual_coding_rice_idx可以以不同的方式编解码和/或可以具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
图片参数集范围扩展语法
表42残差编解码的语法
pps_ts_residual_coding_rice_flag等于1指定pps_ts_residual_coding_rice_index在当前图片中可以存在。pps_ts_residual_coding_rice_flag等于0指定pps_ts_residual_coding_rice_idx在当前图片中不存在。当pps_ts_residual_coding_rice_flag不存在时,pps_ts_residual_coding_rice_flag的值被推断为等于0。
pps_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。
表43 Rice参数推导过程
在另一示例中,提出了仅使用一个可变的rice参数来编解码语法元素abs_remainder。所应用的rice参数的值可以根据当前块的某种已编码信息来确定,例如,块大小、量化参数、位深度、变换类型等。在一个具体实施例中,提出了基于编解码位深度和应用于一个CU的量化参数来调整rice参数。基于VVC草案的对应解码过程如下所示,在表44中以加粗斜体字体显示了对VVC草案的更改,并且删除的内容以斜体字体显示。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表44 Rice参数推导过程
/>
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预先定义的阈值(例如,33或34)。在表45中以加粗斜体字体显示了对VVC草案的更改,并且删除的内容以斜体字体显示。值得注意的是,相同逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表45 Rice参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB是预先定义的阈值(例如,THA=8,THB=33或34)。在表46中以加粗斜体字体显示了对VVC草案的更改,并且删除的内容以斜体字体显示。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表46 Rice参数推导过程
/>
在另一示例中,提出了当新标志(例如,extended_precision_processing_flag)等于1时,仅使用变化的rice参数来编解码abs_remainder的语法元素。变化值可以根据当前块的某种已编码信息来确定,例如,块大小、量化参数、位深度、变换类型等等。在一个具体实施例中,提出了基于编解码位深度和应用于一个CU的量化参数来调整rice参数。基于VVC草案的对应解码过程如下所示。在表47中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表47 Rice参数推导过程
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预先定义的阈值(例如,18、19)。在表48中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表48 Rice参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB是预先定义的阈值(例如,THA=8,THB=18或19)。在表49中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表49 Rice参数推导过程
图16示出了一种用于视频编码的方法。该方法可以例如应用于编码器。在步骤1610中,编码器可以接收视频输入。例如,视频输入可以是实时流。在步骤1612中,编码器可以基于视频输入获得量化参数。量化参数例如可以由编码器中的量化单元计算。在步骤1614中,编码器可以基于至少一个预先定义的阈值、编解码位深度和量化参数来推导rice参数。例如,rice参数用于用信号通知abs_remainder和dec_abs_level的语法。在步骤1616中,编码器可以基于rice参数对视频比特流进行熵编码。例如,可以对视频比特流进行熵编码以生成压缩的视频比特流。
在又一示例中,提出了当BitDepth大于10时,在编解码abs_remainder的语法元素时针对rice参数仅使用固定值(例如,2、3、4、5、6、7或8)。根据当前块的某种已编码信息,例如,量化参数,固定值在不同条件下可以不同。基于VVC草案的对应解码过程如下所示,其中TH是预先定义的阈值(例如,18、19)。在表50中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表50 Rice参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB是预先定义的阈值(例如,THA=8,THB=18或19)。在表51中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表51 Rice参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预先定义的阈值(例如,33或34)。在表52中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表52 Rice参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB是预先定义的阈值(例如,THA=8,THB=33或34)。在表53中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表53 Rice参数推导过程
值得注意的是,在上述说明中,用于计算特定rice参数的等式仅用作示例来说明所提出的构思。对于现代视频编解码技术领域的技术人员而言,其他映射函数(或等效映射等式)已经适用于所提出的构思(即,基于编解码比特和应用的量化参数来确定变换跳过模式的rice参数)。同时,还应该提到的是,在当前的VVC设计中,所应用的量化参数的值允许在编码块组级别上变化。因此,所提出的rice参数调整方案可以在编码块组级别提供变换跳过模式的rice参数的灵活适配。
用于常规残差编解码和变换跳过残差编解码的信令信息
根据本公开的第二十八方面,提出了用信号通知用于编解码某些语法元素(例如,变换跳过残差编解码中的abs_remainder)的二进制码字的rice参数,用于推导用于在常规残差编解码中的abs_remainder/dec_abs_level的rice参数的移位和偏移参数,并且根据当前块的某种已编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编解码位深度)和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如,sps_residual_coding_info_present_in_sh_flag)来确定是否用信号通知。
在一个示例中,在条带头部中用信号通知一个控制标志以指示用于变换跳过块的Rice参数的信令和用于变换块中的rice参数的推导的移位和/或偏移参数的信令是被启用还是禁用。当控制标志被用信号通知为启用时,针对每个变换跳过条带进一步用信号通知一个语法元素以指示该条带的Rice参数,并且针对每个变换条带进一步用信号通知两个语法元素以指示用于推导该条带的Rice参数的移位和/或偏移参数。当控制标志被用信号通知为禁用(例如,设置为“0”)时,在较低级别不会用信号通知进一步的语法元素以指示变换跳过条带的Rice参数,并且默认Rice参数(例如,1)被用于所有变换跳过条带,并且在较低级别不会用信号通知进一步的语法元素以指示用于变换条带的Rice参数的推导的移位和偏移参数,并且默认移位和/或偏移参数(例如,0)被用于所有变换条带。基于VVC草案的对应解码过程的示例如下所示,其中TH是预先定义的值(例如,0、1、2)。在表54中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_index可以用不同的方式编解码和/或可以具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
图17示出了一种用于视频解码的方法。该方法可以例如应用于编码器。在步骤1710中,编码器可以接收视频输入。在步骤1712中,编码器可以用信号通知用于编解码语法元素的二进制码字的rice参数。编解码语法元素可以包括变换跳过残差编解码中的abs_remainder。在步骤1714中,编码器可以基于rice参数和视频输入对视频比特流进行熵编码。
条带头部语法
表54残差编解码的语法
sh_residual_coding_rice_flag等于1指定sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_residual_coding_rice_index可以存在于当前条带中。sh_residual_coding_rice_flag等于0指定sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_residual_coding_rice_index不存在于当前条带中。
sh_residual_coding_rice_shift指定用于abs_remainder[]和dec_abs_level[]的Rice参数推导过程的移位参数。当sh_residual_coding_rice_shift不存在时,推断sh_residual_coding_rice_shift的值等于0。
sh_residual_coding_rice_offset指定用于abs_remainder[]和dec_abs_level[]的Rice参数推导过程的偏移参数。当sh_residual_coding_rice_offset不存在时,推断sh_residual_coding_rice_offset的值等于0。
sh_ts_residual_coding_rice_index指定用于residual_ts_coding()语法结构的rice参数。当sh_ts_residual_coding_rice_index不存在时,推断sh_ts_residual_coding_rice_index的值等于0。
表55 Rice参数推导过程
表56 Rice参数推导过程
在另一示例中,在序列参数集中(或在序列参数集范围扩展语法中)用信号通知一个控制标志,以指示用于变换跳过块的Rice参数的信令和用于变换跳过块中的rice参数的推导的移位和/或偏移参数的信令是启用还是禁用。当控制标志被用信号通知为启用时,针对每个变换跳过条带进一步用信号通知一个语法元素以指示该条带的Rice参数,并且针对每个变换条带进一步用信号通知两个语法元素以指示用于推导该条带的Rice参数的移位和/或偏移参数。当控制标志被用信号通知为禁用(例如,设置为“0”)时,在较低级别不会用信号通知进一步的语法元素以指示变换跳过条带的Rice参数,并且默认Rice参数(例如,1)被用于所有变换跳过条带,并且在较低级别不会用信号通知进一步的语法元素以指示用于变换条带的Rice参数的推导的移位和/或偏移参数,并且默认移位和/或偏移参数(例如,0)被用于所有变换条带。基于VVC草案的对应解码过程的示例如下所示,其中TH是预先定义的值(例如,0、1、2)。在表57中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可以用不同的方式编解码和/或可以具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
序列参数集RBSP语法
表57残差编解码的语法
sps_residual_coding_info_present_in_sh_flag等于1指定sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可以存在于引用SPS的SH语法结构中。sps_residual_coding_info_present_in_sh_flag等于0指定sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx不存在于引用SPS的SH语法结构中。当sps_residual_coding_info_present_in_sh_flag不存在时,推断sps_residual_coding_info_present_in_sh_flag的值等于0。
条带头部语法
表58残差编码的语法
sh_residual_coding_rice_shift指定用于abs_remainder[]和dec_abs_level[]的Rice参数推导过程的移位参数。当sh_residual_coding_rice_shift不存在时,推断sh_residual_coding_rice_shift的值等于0。
sh_residual_coding_rice_offset指定用于abs_remainder[]和dec_abs_level[]的Rice参数推导过程的偏移参数。当sh_residual_coding_rice_offset不存在时,推断sh_residual_coding_rice_offset的值等于0。
sh_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。当sh_ts_residual_coding_rice_index不存在时,推断sh_ts_residual_coding_rice_index的值等于0。
表59 Rice参数推导过程
表60 Rice参数推导过程
/>
在又一示例中,针对每个变换跳过条带用信号通知一个语法元素以指示该条带的Rice参数,并且针对每个变换条带用信号通知两个语法元素以指示用于推导该条带的Rice参数的移位和/或偏移参数。基于VVC草案的对应解码过程的示例如下所示。在表61中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可以以不同的方式编解码和/或具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
条带头部语法
表61残差编解码的语法
sh_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。当sh_ts_residual_coding_rice_idx不存在时,推断sh_ts_residual_coding_rice_idx的值等于0。
sh_residual_coding_rice_offset指定用于abs_remainder[]和dec_abs_level[]的Rice参数推导过程的偏移参数。当sh_residual_coding_rice_offset不存在时,推断sh_residual_coding_rice_offset的值等于0。
sh_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。当sh_ts_residual_coding_rice_index不存在时,推断sh_ts_residual_coding_rice_index的值等于0。
表62 Rice参数推导过程
/>
表63 Rice参数推导过程
在又一示例中,在图片参数集范围扩展语法中用信号通知一个控制标志,以指示用于变换跳过块的Rice参数的信令和用于推导变换块中的rice参数的移位和/或偏移参数的信令是被启用还是禁用。当控制标志被用信号通知为启用时,进一步用信号通知一个语法元素以指示用于该图片的变换跳过残差编解码的Rice参数,并且针对常规残差编解码进一步用信号通知两个语法元素以指示用于该图片的Rice参数的推导的移位和/或偏移参数。当控制标志被用信号通知为禁用(例如,设置为等于“0”)时,在较低级别不会用信号通知进一步的语法元素以指示用于变换跳过残差编解码的Rice参数,并且默认Rice参数(例如,1)被用于所有的变换跳过残差编解码,并且在较低级别不会用信号通知进一步的语法元素以指示用于推导常规残差编解码的Rice参数的移位和/或偏移参数,并且默认移位和/或偏移参数(例如,0)被用于所有的常规残差编解码。基于VVC草案的对应解码过程的示例如下所示,其中TH是预先定义的值(例如0、1、2)。在表64中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,pps_residual_coding_rice_shift、pps_residual_coding_rice_offset和pps_ts_residual_coding_rice_idx可以以不同的方式编解码和/或可以具有最大值。例如,使用n个位的无符号整数u(n)或使用n个位写入(从左到右)的固定模式位串f(n)(其中左侧位在先)也可以用于编码/解码相同的语法元素。
图片参数集范围扩展语法
表64残差编解码的语法
pps_residual_coding_info_flag等于1指定pps_residual_coding_rice_shift、pps_residual_coding_rice_offset和pps_ts_residual_coding_rice_index在当前图片中可以存在。pps_residual_coding_info_flag等于0指定pps_residual_coding_rice_shift、pps_residual_coding_rice_offset和pps_ts_residual_coding_rice_idx在当前图片中不存在。当pps_residual_coding_info_flag不存在时,pps_residual_coding_info_flag的值被推断为等于0。
pps_residual_coding_rice_shift指定用于abs_remainder[]和dec_abs_level[]的Rice参数推导过程的移位参数。当pps_residual_coding_rice_shift不存在时,pps_residual_coding_rice_shift的值被推断为等于0。
pps_residual_coding_rice_offset指定用于abs_remainder[]和dec_abs_level[]的Rice参数推导过程的偏移参数。当pps_residual_coding_rice_offset不存在时,pps_residual_coding_rice_offset的值被推断为等于0。
pps_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。当pps_ts_residual_coding_rice_index不存在时,pps_ts_residual_coding_rice_index的值被推断为等于0。
表65 Rice参数推导过程
表66 Rice参数推导过程
根据本公开的第二十九方面,提出了使用不同的rice参数来编解码在变换跳过残差编解码中的某些语法元素,例如,abs_remainder,在常规残差编解码中的用于abs-remainder/dec_abs_level的rice参数的推导的移位和偏移参数,并且根据当前块的某种已编解码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编解码位深度),和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如,sps_residual_coding_info_present_in_sh_flag),来确定要使用哪个rice参数。
在一个示例中,在条带头部中用信号通知一个控制标志以指示针对变换跳过块的Rice参数的推导过程和用于变换块中的rice参数的移位和/或偏移参数的推导过程是被启用还是禁用。当控制标志被用信号通知为启用时,根据当前块的某种已编码信息,例如,量化参数和位深度,Rice参数在不同条件下可能不同。并且根据当前块的某种已编码信息,例如,量化参数和位深度,在不同条件下,在常规残差编解码中用于推导Rice参数的移位和/或偏移参数可能不同。当控制标志被用信号通知为禁用(例如,设置为“0”)时,默认Rice参数(例如,1)用于所有变换跳过条带,并且默认移位和/或偏移参数(例如,0)用于所有变换条带。基于VVC草案的对应解码过程的示例如下所示,其中THA和THB是预先定义的阈值(例如,THA=8,THB=18或19)。在表67中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
条带头部语法
表67残差编解码的语法
sh_residual_coding_rice_flag等于1指定在当前条带中使用位深度相关的Rice参数推导过程。sh_residual_coding_rice_flag等于0指定在当前条带中不使用位深度相关的Rice参数推导过程。
表68 Rice参数推导过程
表69 Rice参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预先定义的阈值(例如,18、19)。在表70中以加粗斜体字体显示了对VVC草案的更改。值得注意的是,相同的逻辑在实践中可以以不同的方式实现。例如,某些等式或查找表也可以用于推导相同的rice参数。
表70 Rice参数推导过程
根据本公开的另一方面,提出了在通用约束信息中添加上述这些编解码工具标志的值的约束以在提供与其他相同的通用约束控制。
例如,sps_ts_residual_coding_rice_present_in_sh_flag等于1指定sh_ts_residual_coding_rice_idx可以存在于引用SPS的SH语法结构中。sps_ts_residual_coding_rice_presen_in_sh_flag等于0指定sh_ts_residual_coding_rice_idx不存在于引用SPS的SH语法结构中。根据本公开,提出了在通用约束信息语法中添加语法元素gci_no_ts_residual_coding_rice_constraint_flag,以提供与其他标志相同的通用约束控制。关于VVC草案的解码过程的示例如下所示。对VVC草案的更改被突出显示。添加的部分用斜体字体突出显示。
在另一示例中,pps_ts_residual_coding_rice_flag等于1指定pps_ts_residual_coding_rice_index可以存在于当前图片中。pps_ts_residual_coding_rice_flag等于0指定pps_ts_residual_coding_rice_idx不存在于当前图片中。根据本公开,提出了在通用约束信息语法中添加语法元素gci_no_ts_residual_coding_rice_constraint_flag,以提供与其他标志相同的通用约束控制。关于VVC草案的解码过程的示例如下所示。对VVC草案的更改被突出显示。添加的部分用斜体字体突出显示。
在另一示例中,sps_rice_adaptation_enabled_flag等于1指示abs_remaining[]和dec_abs_leveld二值化的Rice参数可以通过公式推导。
公式可以包括:RiceParam=RiceParam+shiftVal,并且shiftVal=(localSumAbs<Tx[0])?Rx[0]:((localSumAbs<Tx[1])?Rx[1]:((localSumAbs<Tx[2])?Rx[2]:((localSumAbs<Tx[3])?Rx[3]:Rx[4]))),其中,Tx[]and Rx[]指定如下:Tx[]={32,128,512,2048}>>(1523)Rx[]={0,2,4,6,8}
根据本公开,提出了在通用约束信息语法中添加语法元素gci_no_rice_adaptation_constraint_flag,以提供与其他标志相同的通用约束控制。关于VVC草案的解码过程的示例如下所示。对VVC草案的更改被突出显示。添加的部分用斜体字体突出显示。
由于所提出的rice参数适配方案仅用于变换跳过残差编解码(TSRC),因此所提出的方法只在启用TSRC时才有效。相应地,在本公开的一个或多个实施例中,提出了添加一个比特流约束,其要求在从通用约束信息级别禁用变换跳过模式时,例如,当gci_no_transform_skip_constraint_flag的值被设置为1时,gci_no_rice_adaptation_constraint_flag的值为1。
在又一示例中,sps_range_extension_flag等于1指定sps_range_extension()语法结构存在于SPS RBSP语法结构中。sps_range_extension_flag等于0指定该语法结构不存在。根据本公开,提出了在通用约束信息语法中添加语法元素gci_no_range_extension_constraint_flag以提供与其他标志相同的通用约束控制。关于VVC草案的解码过程的示例如下所示。对VVC草案的更改被突出显示。添加的部分用斜体字体突出显示。
图19示出了根据本公开的一个示例的用于视频编解码的方法。该方法可以例如应用于解码器。在步骤1902中,解码器可以接收序列参数集(SPS)范围扩展标志,该标志基于SPS范围扩展标志的值来指示语法结构sps_range_extension是否存在于条带头部(SH)原始字节序列有效载荷(RBSP)语法结构中。
在步骤1904中,响应于确定SPS范围扩展标志的值等于1,解码器可以确定sps_range_extension存在于SH RBSP语法结构中。
在步骤1906中,响应于确定范围扩展标志的值等于0,解码器可以确定sps_range_extension不存在于SH RBSP语法结构中。
在又一示例中,sps_cabac_bypass_alignment_enabled_flag等于1指定在对语法元素sb_coded_flag[][]、abs_remainder[]、dec_abs_level[n]和coeff_sign_flag[]进行旁路解码之前可以对齐ivlCurrRange的值。sps_cabac_bypass_alignment_enabled_flag等于0指定在旁路解码之前未对齐ivlCurrRange的值。根据本公开,提出了在通用约束信息语法中添加语法元素gci_no_cabac_bypass_alignment_constraint_flag,以提供与其他标志相同的通用约束控制。关于VVC草案的解码过程的示例如下所示。对VVC草案的更改被突出显示。添加的部分用斜体字体突出显示。
图20示出了根据本公开的一个示例的用于视频编解码的方法。该方法可以例如应用于解码器。在步骤2002中,解码器可以接收序列参数集(SPS)对齐启用标志,该标志指示基于SPS对齐启用的值在对语法元素sb_coded_flag、abs_remaimder、dec_abs_level和coef_sign_flagn的旁路解码之前是否对齐索引ivlCurrRange。
在步骤2004中,响应于确定SPS对齐启用标志的值等于1,解码器可以确定在旁路解码之前ivlCurrRange被对齐。
在步骤2006中,响应于确定SPS对齐启用标志的值等于0,解码器可以确定在旁路解码之前ivlCurrRange未被对齐。
在又一示例中,extended_precision_processing_flag等于1指定扩展动态范围可以用于变换系数和变换处理。extended_precision_processing_flag等于0指定不使用扩展动态范围。根据本公开,提出了在通用约束信息语法中添加语法元素gci_no_extended_precision_processing_constraint_flag,以提供与其他标志相同的通用约束控制。关于VVC草案的解码过程的示例如下所示。对VVC草案的更改被突出显示。添加的部分用斜体字体突出显示。
图21示出了根据本公开的一个示例的用于视频编解码的方法。该方法可以例如应用于解码器。在步骤2102中,解码器可以接收扩展精度处理标志,该标志基于扩展精度处理标志的值指示针对变换系数以及在变换处理期间是否采用扩展动态范围。
在步骤2104中,响应于确定扩展精度处理标志的值等于1,解码器可以确定针对变换系数以及在变换处理期间采用扩展动态范围。
在步骤2106中,响应于确定扩展精度处理标志的值为0,解码器可以确定针对变换系数或在变换处理期间未采用扩展动态范围。
在又一示例中,persistent_rice_adaptation_enabled_flag等于1指定用于abs_remaining[]和dec_abs_level的二值化的Rice参数推导可以在每个子块的开始处使用从先前子块积累的模式相关统计信息进行初始化。persistent_rice_adaptation_enabled_flag等于0指定在Rice参数推导中不使用先前的子块状态。根据本公开,提出了在通用约束信息语法中添加语法元素gci_no_persistent_rice_adaptation_constraint_flag,以提供与其他标志相同的通用约束控制。关于VVC草案的解码过程的示例如下所示。对VVC草案的更改被突出显示。添加的部分用斜体字体突出显示。
图22示出了根据本公开的一个示例的用于视频编解码的方法。该方法可以例如应用于解码器。在步骤2202中,解码器可以接收持久rice适配启用标志,该标志基于持久rice适配启用标志的值指示用于abs_remaining和dec_abs_level的二值化的rice参数推导是否在每个子块的开始处采用从先前子块累积的模式相关统计信息进行初始化。
在步骤2204中,响应于确定持久rice适配启用标志的值等于1,解码器可以确定用于二值化的rice参数推导在每个子块的开始处采用从先前子块累积的模式相关统计信息进行初始化。
在步骤2206中,响应于确定持久rice适配启用标志的值为0,解码器可以确定在rice参数推导中未采用先前的子块状态。
上述方法可以使用包括一个或多个电路的装置来实现,所述电路包括专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件。该装置可以使用与其他硬件或软件组件组合的电路来执行上述方法。以上公开的每个模块、子模块、单元或子单元可以至少部分地使用一个或多个电路来实现。
Rice参数决策
在编码器侧,TSRC编码可能需要多个编码通道来推导最佳Rice参数。这种多通道编码可能不适用于实际的硬件编码器设计。为了解决这一问题,还提出了一种低延迟的TSRC编码方法。根据本公开的第三十方面,提出了根据当前条带的某种已编码信息(例如,与条带/图片/序列相关联的量化参数和/或编解码位深度)和/或根据与条带/图片/序列级别相关联的散列比来推导Rice参数。可以使用不同的方法来推导Rice参数,以下列出了一些示例性方法。需要注意的是,以下方法可以独立应用或联合应用。
1、上述实施例中提到的Rice参数可以附加地依赖于视频分辨率,包括视频的时间分辨率(例如,帧速率)和空间分辨率(例如,图像宽度和高度)。
2、Rice参数可以在序列级别、图片级别、条带级别和/或任何预先定义的区域上变化。在一个具体的示例中,对于具有不同时间层ID的图片使用不同的Rice值(这与VVC规范中指定的nuh_temporal_id_plus1有关)。替代地,Rice参数可以包括基于在序列级别、图片级别、条带级别和/或任何预先定义的区域使用的QP值确定的值。例如,rice参数=Clip3(1,8,(TH-QP)/6),其中TH是预先定义的阈值(例如18、19)。
3、根据当前条带和前一条带之间的已编码信息的变化,可以将Rice参数设置为默认值,例如1。在一个具体的示例中,当图片的时间层ID与先前图片相比发生变化时,对于图片使用默认的Rice值。替代地,当ΔQ大于TH时,对于图片使用默认的Rice值,其中ΔQ被计算为abs(QPcurrent-QPprevious)并且TH是预先定义的阈值。Rice参数(如0、5)。例如,在当前条带中的散列比形式块内复制模式大于TH时,Rice参数=1,其中TH是预先定义的阈值,例如,MAX(41*(CTU的数量),4200)。
4、每个条带的Rice参数基于根据编解码次序在其前一条带中编码的abs_remainder的值。在一个具体的示例中,在一个条带被编码之后,计算用于使用不同的Rice参数对abs_remainder进行二值化的二进制位的数量,然后使用该数量来确定下一条带的Rice参数。例如,在前一条带中达到最小二进制位数的Rice参数将被选择用于当前条带。对于另一示例,如果当前条带及其前一条带使用相同的QP,则针对当前条带选择在前一条带中达到最小二进制位数的Rice参数;否则,在与其他Rice参数比较之前,在前一条带中使用默认Rice参数(即,1)生成的二进制位的数量按TH缩放,并且针对当前条带选择导致二进制位的最小数量的Rice参数,其中TH是预先定义的阈值,例如,0.9。
5、每个条带的Rice参数基于根据编解码次序在其前一条带中编码的abs_remainder的值,并且可以根据当前条带和前一条带之间的已编码信息的变化来调整Rice参数。在一个具体示例中,针对当前条带选择在前一条带中达到二进制位的最小数量的Rice参数。并且当ΔQ大于TH时可以调整Rice值,其中ΔQ被计算为abs(QPcurrent-QPprevious)并且TH是预先定义的阈值。Rice参数(例如0、5)。调整可以是添加预先定义的偏移量(例如,+1、-1)或按预先定义的值缩放。
图26示出了根据本公开的一个示例的低延迟变换跳过残差编解码(TSRC)方法的流程图。该方法可以例如应用于编码器。在步骤2602中,编码器可以基于视频的当前条带的已编码信息推导rice参数。已编码信息可以包括以下参数中的一个或多个:与视频的条带、图片或序列相关联的量化参数或编解码位深度;或者与视频的条带、图片或序列相关联的散列率。
注意,上述编码器方法可以应用于解码器侧。在一个具体示例中,Rice参数不需要用信号通知给解码器,并且编码器/解码器使用相同的方法来推导Rice参数。
图18示出了与用户接口1860耦合的计算环境1810。计算环境1810可以是数据处理服务器的一部分。计算环境1810包括处理器1820、存储器1840和I/O接口1850。
处理器1820典型地控制计算环境1810的整体操作,例如,与显示、数据采集、数据通信和图像处理相关联的操作。处理器1820可以包括一个或多个处理器以执行指令来执行上述方法中的步骤中的所有或一些步骤。此外,处理器1820可以包括促进处理器1820与其他组件之间的交互的一个或多个模块。处理器可以是中央处理单元(CPU)、微处理器、单片机、GPU等。
存储器1840被配置为存储各种类型的数据以支持计算环境1810的操作。存储器1840可以包括预定软件1842。这种数据的示例包括用于在计算环境1810上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器1840可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,例如,静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪速存储器、磁盘或光盘。
I/O接口1850提供处理器1820与外围接口模块(例如,键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。I/O接口1850可以与编码器和解码器耦合。
在一些实施例中,还提供了一种非暂时性计算机可读存储介质,其包括多个程序,例如包括在存储器1840中,可由处理器1820在计算环境1810中执行,以用于执行上述方法。例如,非暂时性计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘、光数据存储设备等。
非暂时性计算机可读存储介质已经在其中存储了用于由具有一个或多个处理器的计算设备执行的多个程序,其中多个程序在由一个或多个处理器执行时使计算设备执行上述运动预测方法。
在一些实施例中,计算环境1810可以用一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、控制器、微控制器、微处理器或其他电子组件来实现,以用于执行上述方法。
图23是示出了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图23中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可以包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可以经由链路16接收待解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可以根据通信标准(例如无线通信协议)被调制,并且被发送到目标设备14。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一个或更多个物理传输线。通信介质可以形成基于分组的网络(例如局域网、广域网或诸如互联网的全球网)的一部分。通信介质可以包括路由器、交换机、基站或可以有利于促进从源设备12到目标设备14的通信的任何其他装置。
在其他一些实施方式中,可以将编码视频数据从输出接口22发送到存储设备32。随后,可以由目标设备14经由输入接口28访问存储设备32中的编码视频数据。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,例如硬盘驱动器、蓝光光盘、数字通用盘(DVD)、压缩盘只读存储器(CD-ROM)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备32可以对应于文件服务器或可以保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可以经由流传输或下载从存储设备32访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、网络附属存储(NAS)设备或本地磁盘驱动器。目标设备14可以通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(Wi-Fi)连接)、有线连接(例如,数字订户线(DSL)、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图23中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可以形成相机电话或视频电话。然而,本申请中所描述的实施方式通常可以适用于视频编解码,并且可以应用于无线和/或有线应用。
可以由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可以经由源设备12的输出接口22将编码视频数据直接发送到目标设备14。还可以(或备选地)将编码视频数据存储到存储设备32上以便稍后被目标设备14或其他设备访问,以用于解码和/或回放。输出接口22可以进一步包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送或在存储设备32上提供的编码视频数据可以包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可以被包括在通信介质上发送的、存储在存储介质上的或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可以包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34向用户显示解码视频数据,并且可以包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可以根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4的第10部分、AVC)或此类标准的扩展进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常认为源设备12的视频编码器20可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可以分别被实现为各种合适的编码器和/或解码器电路中的任何电路,例如一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑器件、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可以将用于软件的指令存储于合适的非暂态计算机可读介质中,并且使用一个或更多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可以被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图24是示出了根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以对视频帧内的视频块执行帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或移除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。应当注意的是,在视频编解码领域中,术语“帧”可以用作术语“图像”或“图片”的同义词。
如图24中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分区单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。诸如去块滤波器的环路滤波器63可以位于加法器62与DPB 64之间以对块边界进行滤波以从重建视频去除块效应。除了去块滤波器之外,还可以使用另一环路滤波器(例如样点自适应偏移(SAO)滤波器、和/或自适应环路滤波器(ALF))来对加法器62的输出进行滤波。在一些示例中,可以省略环路滤波器,并且解码视频块可以直接由加法器62提供给DPB 64。视频编码器20可以采取固定或可编程硬件单元的形式,或者可以分散在所说明的固定或可编程硬件单元中的一个或更多个中。
视频数据存储器40可以存储将由视频编码器20的组件编码的视频数据。可例如从图23所示的视频源18获得视频数据存储器40中的视频数据。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据(例如,参考帧或图片)的缓冲器。视频数据存储器40和DPB 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图24中所示,在接收到视频数据之后,预测处理单元41内的分区单元45将视频数据分区为视频块。此分区还可以包括根据与视频数据相关联的预定义的拆分结构(例如四叉树(QT)结构)将视频帧分区为条带、瓦片(tile)(例如,视频块的集合)或其他更大的编码单元(CU)。视频帧是或可以被视为具有样点值的二维样点阵列或矩阵。阵列中的样点也可以被称为像素或图像元素(pel)。阵列或图片的水平和垂直方向(或轴)上的样点的数量定义了视频帧的尺寸和/或分辨率。例如,可以通过使用QT分区将视频帧划分为多个视频块。视频块再次是或可以被视为具有样点值的二维样点阵列或矩阵,但是其维度小于视频帧的维度。视频块的水平和垂直方向(或轴)上的样点的数量定义了视频块的尺寸。通过例如迭代地使用QT分区、二叉树(BT)分区或三叉树(TT)分区或其任意组合,可以将视频块进一步分区为一个或更多个块分区或子块(其可以再次形成块)。应注意,本文所使用的术语“块”或“视频块”可以是帧或图片的一部分,尤其是矩形(正方形或非正方形)部分。参考例如HEVC和VVC,块或视频块可以是或对应于编码树单元(CTU)、CU、预测单元(PU)或变换单元(TU)和/或可以是或对应于相应的块(例如编码树块(CTB)、编码块(CB)、预测块(PB)或变换块(TB))和/或子块。
预测处理单元41可以基于误差结果(例如,编码速率和失真等级)为当前视频块选择多个可行预测编码模式中的一个,例如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(例如运动矢量、帧内模式指示符、分区信息和其他此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以与和待编码的当前块在同一帧中的一个或更多个邻近块相关地执行当前视频块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或更多个参考帧中的一个或更多个预测块相关地执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可以执行多个编码遍次,例如,以为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,该运动矢量估计针对视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块相对于与当前帧内正被编码的当前块相关的参考帧内的预测块的位移。预定模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编码的矢量(例如,块矢量),或可以利用运动估计单元42确定块矢量。
在像素差方面,针对视频块的预测块可以是或可以对应于被认为与待编码视频块紧密匹配的参考帧的块或参考块,像素差可以由绝对差总和(SAD)、平方差总和(SSD)或其他差度量确定。在一些实施方式中,视频编码器20可以计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行内插。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下方式来计算针对帧间预测编码帧中的视频块的运动矢量:将视频块的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个参考帧列表标识DPB 64中存储的一个或更多个参考帧。运动估计单元42将计算出的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量获取或生成预测块。在接收到针对当前视频块的运动矢量之后,运动补偿单元44可以在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。动补偿单元44还可以生成与视频帧的视频块相关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。应注意,运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而单独说明。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并获取预测块,但是这些预测块在与正被编码的当前块相同的帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可以确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可以在各种测试的帧内预测模式中选择合适的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内BC单元48可以使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以产生编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内BC单元48可以根据针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
在其他示例中,帧内BC单元48可以全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可以由SAD、SSD或其他差度量确定,并且识别预测块可以包括计算针对子整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可以通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可以对当前视频块进行帧内预测。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可以从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可以将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或更多个TU中并且提供给变换处理单元52。变换处理单元52使用变换(例如离散余弦变换(DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可以将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可以减小与系数中的一些或全部相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可以随后对包括量化的变换系数的矩阵执行扫描。备选地,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分区熵(PIPE)编码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。然后,可以将编码的比特流发送到如图23所示的视频解码器30,或存档于如图23所示的存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可以对用于正被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其他视频块的参考块。如上文指出的,运动补偿单元44可以从存储在DPB 64中的帧的一个或更多个参考块生成运动补偿预测块。运动补偿单元44还可以将一个或更多个内插滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加来产生参考块以存储在DPB 64中。然后,参考块可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
图25是示出了根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可以执行与上文结合图24关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可以被分派任务以执行本申请的实施方式。此外,在一些示例中,本公开的实施方式可以分散在视频解码器30的单元中的一个或更多个单元中。例如,帧内BC单元85可以单独地或与视频解码器30的其他单元(例如运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且帧内BC单元85的功能可以由预测处理单元81的其他组件(例如运动补偿单元82)执行。
视频数据存储器79可以存储将由视频解码器30的其他组件进行解码的视频数据,例如编码视频比特流。可以例如从存储设备32、从本地视频源(例如相机)、经由视频数据的有线或无线网络通信、或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的DPB 92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测编码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可以由各种存储器设备中的任何存储器设备形成,例如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图25中被描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB92可以由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可以在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其他语法元素。然后,熵解码单元80将运动矢量或帧内预测模式指示符、以及其他语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可以基于用信号传送的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其他语法元素产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可以从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可以基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,即,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其他语法元素产生针对当前视频块的预测块。预测块可以在由视频编码器20定义的与当前视频块相同的图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其他语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
类似地,帧内BC单元85可以使用接收到的语法元素中的一些语法元素,例如标志,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
运动补偿单元82还可以使用如由视频编码器20在对视频块进行编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以根据接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用这些内插滤波器来产生预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算出的用于确定量化程度的相同量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其他语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器91(例如,去块滤波器、SAO滤波器、和/或ALF)可以位于加法器90与DPB 92之间以进一步处理解码视频块。在一些示例中,可以省略环路滤波器91,并且解码视频块可以直接由加法器90提供给DPB 92。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分离的存储器设备还可以存储解码视频以用于稍后呈现在显示器设备(例如,图23的显示器设备34)上。
本公开的描述是为了说明的目的而呈现的,而并不旨在穷举或限制本公开。许多修改、变化和替代实现方式对于受益于前述描述和相关联的附图中呈现的教导的本领域普通技术人员将是显而易见的。
选择和描述这些示例是为了解释本公开的原理并使本领域的其他技术人员能够理解本公开的各种实现方式,并且最好地利用具有适合于预期的特定用途的各种修改的基本原理和各种实现方式。因此,应当理解,本公开的范围不限于所公开的实现方式的具体示例,并且修改和其他实现方式旨在包括在本公开的范围内。

Claims (12)

1.一种用于视频编解码的方法,包括:
响应于确定变换跳过被禁用,由解码器禁用用于变换跳过残差编解码的rice参数的存在。
2.根据权利要求2所述的用于视频编解码的方法,还包括:
采用变换跳过的标志sps_transform_skip_enabled_flag来制约sps_ts_residual_coding_rice_present_in_sh_flag的存在。
3.根据权利要求2所述的用于视频编解码的方法,还包括:
响应于确定所述标志sps_transform_skip_enabled_flag等于0并且变换跳过在当前图片处被禁用,推断sps_ts_residual_coding_rice_present_in_sh_flag为0并且没有被用信号通知。
4.根据权利要求2所述的用于视频编解码的方法,还包括:
响应于确定所述标志sps_transform_skip_enabled_flag等于1并且变换跳过在当前图片处没有被禁用,用信号通知sps_ts_residual_coding_rice_present_in_sh_flag。
5.根据权利要求2所述的用于视频编解码的方法,还包括:
响应于确定变换跳过的所述标志sps_transform_skip_enabled_flag被用信号通知为启用,在序列参数集中或在序列参数集范围扩展语法中用信号通知控制标志,以指示用信号通知针对变换跳过块的rice参数是被启用还是禁用。
6.根据权利要求5所述的用于视频编解码的方法,还包括:
响应于确定所述控制标志被用信号通知为启用,用信号通知针对每个变换跳过条带的一个语法元素,以指示每个对应的变换跳过条带的rice参数。
7.根据权利要求5所述的用于视频编解码的方法,还包括:
响应于确定所述控制标志被用信号通知为禁用并且被设置为等于0,针对所有变换跳过条带采用默认rice参数,并且没有进一步的语法元素被用信号通知以指示针对所述变换跳过条带的所述rice参数。
8.根据权利要求2所述的用于视频编解码的方法,还包括:
响应于确定sps_ts_residual_coding_rice_present_in_sh_flag等于1,确定索引sh_ts_residual_coding_rice_idx存在于引用序列参数集(SPS)的条带头部(SH)语法结构中。
9.根据权利要求2所述的用于视频编解码的方法,还包括:
响应于确定sps_ts_residual_coding_rice_present_in_sh_flag等于0,确定索引sh_ts_residual_coding_rice_idx_minus1不存在于引用序列参数集(SPS)的条带头部(SH)语法结构中。
10.根据权利要求2所述的用于视频编解码的方法,还包括:
响应于确定sps_ts_residual_coding_rice_present_in_sh_flag不存在,推断sps_ts_residual_coding_rice_present_in_sh_flag的值为0。
11.一种用于视频编解码的装置,包括:
一个或多个处理器;以及
存储器,其被配置为存储能够由所述一个或多个处理器执行的指令;其中,所述一个或多个处理器在执行所述指令时被配置为执行根据权利要求1-10中任一项所述的方法。
12.一种用于视频编解码的非暂时性计算机可读存储介质,其存储计算机可执行指令,所述计算机可执行指令在由一个或多个计算机处理器执行时,使所述一个或多个计算机处理器执行根据权利要求1-10中任一项所述的方法。
CN202280031734.9A 2021-04-28 2022-04-27 用于视频编解码的残差和系数编解码 Pending CN117256151A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163181110P 2021-04-28 2021-04-28
US63/181,110 2021-04-28
PCT/US2022/026598 WO2022232317A1 (en) 2021-04-28 2022-04-27 Residual and coefficients coding for video coding

Publications (1)

Publication Number Publication Date
CN117256151A true CN117256151A (zh) 2023-12-19

Family

ID=83847476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280031734.9A Pending CN117256151A (zh) 2021-04-28 2022-04-27 用于视频编解码的残差和系数编解码

Country Status (10)

Country Link
US (1) US20240179314A1 (zh)
EP (1) EP4331234A1 (zh)
JP (1) JP2024515980A (zh)
KR (1) KR20230174267A (zh)
CN (1) CN117256151A (zh)
AU (1) AU2022267256A1 (zh)
BR (1) BR112023022374A2 (zh)
CA (1) CA3218065A1 (zh)
MX (1) MX2023012676A (zh)
WO (1) WO2022232317A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020226093A1 (ja) * 2019-05-08 2020-11-12 東京エレクトロン株式会社 接合装置、接合システム及び接合方法
WO2020234850A1 (en) * 2019-05-22 2020-11-26 Vuereal Inc. An alignment process for the transfer setup

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114731445A (zh) * 2019-10-01 2022-07-08 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置
US11153577B2 (en) * 2019-10-08 2021-10-19 Qualcomm Incorporated Rice parameter derivation for transform-skip mode used in lossless/lossy video coding

Also Published As

Publication number Publication date
AU2022267256A1 (en) 2023-11-23
KR20230174267A (ko) 2023-12-27
EP4331234A1 (en) 2024-03-06
WO2022232317A1 (en) 2022-11-03
CA3218065A1 (en) 2022-11-03
MX2023012676A (es) 2023-11-07
BR112023022374A2 (pt) 2024-01-16
US20240179314A1 (en) 2024-05-30
JP2024515980A (ja) 2024-04-11

Similar Documents

Publication Publication Date Title
CN115361561B (zh) 残差和系数编解码的方法和装置
CN114710679B (zh) 视频编解码中的小色度块大小限制
US20230379500A1 (en) Residual and coefficients coding for video coding
CN116668695B (zh) 用于视频编码的方法、计算设备和存储介质
CN114567786B (zh) 以4:4:4色度格式进行视频编解码的方法和装置
US20240179314A1 (en) Residual and coefficients coding for video coding
JP7201873B2 (ja) 残差及び係数符号化の方法、プログラム並びに装置
CN116803077A (zh) 用于视频编解码的残差和系数编解码
CN115086681B (zh) 4:4:4色度格式的视频编解码的方法和装置
CN117546469A (zh) 用于视频编解码的残差和系数编解码
CN116614625B (zh) 一种视频编码的方法、装置和介质
CN114556932B (zh) 用于视频编解码的无损编解码模式
CN116965033A (zh) 用于视频编解码的残差和系数编解码
CN117378201A (zh) 用于视频编解码的残差和系数编解码
CN117643058A (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