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

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

Info

Publication number
CN116803077A
CN116803077A CN202280008946.5A CN202280008946A CN116803077A CN 116803077 A CN116803077 A CN 116803077A CN 202280008946 A CN202280008946 A CN 202280008946A CN 116803077 A CN116803077 A CN 116803077A
Authority
CN
China
Prior art keywords
residual
flag
coding
codec
value
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
CN202280008946.5A
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
Priority to CN202311450166.9A priority Critical patent/CN117528117A/zh
Publication of CN116803077A publication Critical patent/CN116803077A/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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/136Incoming video signal characteristics or properties
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

提供了用于视频编解码的方法、装置和非暂态计算机可读存储介质。用于视频编解码的方法包括:由解码器接收序列参数集(SPS)残差编解码标志,该SPS残差编解码标志指示引用该SPS的SH语法结构中是否存在索引sh_ts_residual_coding_rice_idx;响应于确定该SPS残差编解码标志的值等于1,确定引用该SPS的条带头(SH)语法结构中存在sh_ts_residual_coding_rice_idx;以及响应于确定该残差编解码标志的值等于0,确定引用该SPS的该SH语法结构中不存在sh_ts_residual_coding_rice_idx。

Description

用于视频编解码的残差和系数编解码
相关申请的交叉引用
本申请基于2021年1月4日提交的临时申请号63/133,765并要求其优先权,该临时申请的全部内容出于所有目的通过引用并入本文。
技术领域
本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码的残差和系数编解码的改进和简化。
背景技术
可以使用各种视频编解码技术来压缩视频数据。视频编解码是根据一个或多个视频编解码标准来执行的。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型(JEM)、高效视频编解码(H.265/HEVC)、高级视频编解码(H.264/AVC)、运动图片专家组(MPEG)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等)进行,这些方法利用存在于视频图像或序列中的冗余。视频编解码技术的一个重要目标在于,将视频数据压缩成在避免或最小化视频质量降级的同时使用较低比特率的形式。
发明内容
本公开的示例提供了用于视频编解码的方法和装置。
根据本公开的第一方面,提供了一种用于视频编解码的方法。所述方法可以包括:由解码器接收序列参数集(SPS)残差编解码标志,所述SPS残差编解码标志指示引用所述SPS的SH语法结构中是否存在索引sh_ts_residual_coding_rice_idx;响应于确定所述SPS残差编解码标志的值等于1,确定引用所述SPS的条带头(SH)语法结构中存在sh_ts_residual_coding_rice_idx;以及响应于确定所述残差编解码标志的值等于0,确定引用所述SPS的所述SH语法结构中不存在sh_ts_residual_coding_rice_idx。
根据本公开的第二方面,提供了一种用于视频编解码的方法。所述方法可以包括:由解码器接收序列参数集(SPS)自适应启用标志,所述SPS自适应启用标志指示是否使用用于语法abs_remaining和dec_abs_level的二值化的替代rice参数推导;响应于确定所述SPS自适应启用标志的值等于1,确定使用用于语法的二值化的替代rice参数推导;以及响应于确定所述SPS自适应启用标志的值等于0,确定不使用用于语法的二值化的所述替代rice参数推导。
根据本公开的第三方面,提供了一种用于视频编解码的方法。所述方法可以包括:由解码器接收残差编解码rice约束标志,以便为其他标志提供通用约束控制;以及响应于确定所述残差编解码rice约束标志的值等于1,确定所述其他标志的值等于0。
应理解,上面的总体描述和下面的详细描述仅是示例性的和解释性的,而不旨在限制本公开。
附图说明
结合在说明书中并构成本说明书的一部分的附图图示了与本公开一致的示例,并与所述描述一起用于解释本公开的原理。
图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图示了根据本公开的示例的用于视频编解码的方法。
具体实施方式
现在将详细参考示例实施例,附图中图示了这些实施例的示例。以下描述均参考附图,在附图中,除非另有说明,否则不同附图中的相同参考标记表示相同或相似的要素。以下示例实施例描述中阐述的实施方式并不表示与本公开一致的所有实施方式。而是,它们仅仅是与所附权利要求中叙述的与本公开相关的方面一致的装置和方法的示例。
本公开中使用的术语仅出于描述特定实施例的目的,而不旨在限制本公开。如在本公开和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还应当理解,本文使用的术语“和/或”旨在表示并包括相关联列举项目中的一个或多个项目的任何或所有可能组合。
应当理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是这些信息不应受这些术语的限制。这些术语仅仅是用来将一类信息与另一类信息进行区分。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,根据上下文,术语“如果”可以被理解为意指“当……时”或“在……时”或“响应于判断”。
HEVC标准的第一版本于2013年10月完成,其与上一代视频编解码标准H.264/MPEGAVC相比,提供了大约50%的比特率节省或同等的感知质量。尽管HEVC标准提供了优于其前身的显著编解码改进,但有证据表明,可以使用附加的编解码工具实现优于HEVC的编解码效率。在此基础上,VCEG和MPEG都开始了新编解码技术的探索工作,以实现未来的视频编解码标准化。ITU-T VECG和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将表示当前视频块(视频输入110的一部分)与其预测值(块预测值140的一部分)之间的差的预测残差发送到变换130。然后,将变换系数从变换130发送到量化132,以进行熵减小。然后,将量化系数馈送到熵编码138,以生成压缩视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142(比如视频块分区信息、运动矢量(MV)、参考图片索引和帧内预测模式)也通过熵编码138被馈送并且被保存到压缩比特流144中。压缩比特流144包括视频比特流。
在编码器100中,还需要解码器相关电路,以重建像素用于预测目的。首先,通过反量化134和逆变换136来重建预测残差。将该重建预测残差与块预测值140组合,以生成当前视频块的未滤波的重建像素。
空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编解码的相邻块的样点(被称为参考样点)的像素来预测当前视频块。
时间预测(也被称为“帧间预测”)使用来自已经编解码的视频图片的重建像素来预测当前视频块。时间预测减少了在视频信号中固有的时间冗余。给定编码单元(CU)或编码块的时间预测信号通常由指示当前CU与其时间参考之间的运动量和运动方向的一个或多个MV用信号表示。进一步地,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储中的哪个参考图片。
运动估计114获取视频输入110和来自图片缓冲器120的信号,并且将运动估计信号输出到运动补偿112。运动补偿112获取视频输入110、来自图片缓冲器120的信号以及来自运动估计114的运动估计信号,并且将运动补偿信号输出到帧内/帧间模式决策116。
在执行空间预测和/或时间预测之后,编码器100中的帧内/帧间模式决策116例如基于率失真优化方法来选择最佳预测模式。然后,从当前视频块减去块预测值140,并且使用变换130和量化132对所产生的预测残差进行解相关。通过反量化134对所产生的量化残差系数进行反量化,并通过逆变换136对该量化残差系数进行逆变换以形成重建残差,然后将该重建残差加回到预测块以形成CU的重建信号。在将重建的CU置于图片缓冲器120的参考图片存储中并用于对未来的视频块编解码之前,可以对重建的CU应用比如去块滤波器、样点自适应偏移(SAO)和/或自适应环路滤波器(ALF)等进一步的环路滤波122。为了形成输出视频比特流144,将编解码模式(帧间或帧内)、预测模式信息、运动信息、以及量化残差系数都发送至熵编码单元138,以进行进一步压缩和打包来形成比特流。
图1给出了通用的基于块的混合视频编码系统的框图。输入视频信号被逐块(被称为编码单元(CU))处理。在VTM-1.0中,CU可以高达128×128像素。然而,不同于仅仅基于四叉树来分割块的HEVC,在VVC中,一个编码树单元(CTU)被划分成多个CU,以适应基于四/二/三叉树而不同的局部特性。根据定义,编码树块(CTB)是某个N值的N×N样点块,使得将分量分成CTB就是分区。CTU包括亮度样点CTB、具有三个样点阵列的图片的两个对应的色度样点CTB、或者单色图片的样点CTB或使用三个单独的颜色平面和用于对样点进行编解码的语法结构来编解码的图片的样点CTB。另外,移除了HEVC中的多种分区单元类型的概念,即,CU、预测单元(PU)和变换单元(TU)的拆分不再存在于VVC中;相反,每个CU始终用作预测和变换两者的基本单元,而不进行进一步分区。在多类型树结构中,一个CTU首先被四叉树结构分区。然后,每个四叉树叶节点可以进一步被二叉树结构和三叉树结构分区。如图3A、图3B、图3C、图3D和图3E所示,有五种分割类型,四元分区、水平二元分区、垂直二元分区、水平三元分区以及垂直三元分区。
图3A示出了图示根据本公开的多类型树结构中的块四元分区的图。
图3B示出了图示根据本公开的多类型树结构中的块垂直二元分区的图。
图3C示出了图示根据本公开的多类型树结构中的块水平二元分区的图。
图3D示出了图示根据本公开的多类型树结构中的块垂直三元分区的图。
图3E示出了图示根据本公开的多类型树结构中的块水平三元分区的图。
在图1中,可以执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自同一视频图片/条带中的已经编解码的相邻块的样点(被称为参考样点)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也被称为“帧间预测”或“运动补偿预测”)使用来自已经编解码的视频图像的重建像素来预测当前视频块。时间预测减少了在视频信号中固有的时间冗余。给定CU的时间预测信号通常由指示当前CU与其时间参考之间的运动量和运动方向的一个或多个运动矢量(MV)用信号发送。同样,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储中的哪个参考图片。在进行空间和/或时间预测之后,编码器中的模式决策块例如基于率失真优化方法来选择最佳预测模式。然后,从当前视频块减去预测块;并且使用变换对预测残差进行解相关并进行量化。对经量化的残差系数进行反量化和逆变换以形成重建残差,然后将该重建残差加回到预测块以形成CU的重建信号。进一步地,在将重建的CU置于参考图片存储中并用于对未来的视频块进行编解码之前,可以对重建的CU应用比如去块滤波器、样点自适应偏移(SAO)和自适应环路滤波器(ALF)等环路滤波。为了形成输出视频比特流,将编解码模式(帧间或帧内)、预测模式信息、运动信息、以及量化残差系数都发送至熵编码单元,以进行进一步压缩和打包来形成比特流。
图2示出了用于VVC的视频解码器的总框图。具体地,图2示出了典型的解码器200的框图。解码器200具有比特流210、熵解码212、反量化214、逆变换216、加法器218、帧内/帧间模式选择220、帧内预测222、存储器230、环路滤波器228、运动补偿224、图片缓冲器226、预测相关信息234以及视频输出232。
解码器200类似于存在于图1的编码器100中的重建相关部分。在解码器200中,首先通过熵解码212对传入的视频比特流210进行解码,以得到量化系数级别和预测相关信息。然后,通过反量化214和逆变换216来处理量化系数级别,以获得重建预测残差。在帧内/帧间模式选择器220中实施的块预测值机制被配置为基于已解码预测信息来执行帧内预测222或运动补偿224。通过使用求和器218对来自逆变换216的重建预测残差与由块预测值机制生成的预测输出进行求和来获得一组未滤波的重建像素。
重建块可以进一步通过环路滤波器228,然后被存储在用作参考图片存储的图片缓冲器226中。可以发送图片缓冲器226中的重建视频以驱动显示设备,并用于预测未来的视频块。在环路滤波器228被开启的情况下,对这些重建像素执行滤波操作,从而得到最终的重建视频输出232。
图2给出了基于块的视频解码器的总框图。首先在熵解码单元处对视频比特流进行熵解码。将编解码模式和预测信息发送到空间预测单元(在被帧内编解码的情况下)或时间预测单元(在被帧间编解码的情况下)以形成预测块。将残差变换系数发送到反量化单元和逆变换单元以重建残差块。然后,将预测块和残差块相加。重建块可以进一步通过环路滤波,然后被存储在参考图片存储中。然后,将参考图片存储中的重建视频发送出去以驱动显示设备,并用于预测未来的视频块。
通常,VVC中应用的基本帧内预测方案与HEVC的保持相同,不同之处在于进一步扩展和/或改进了几个模块,例如,帧内子分区(ISP)编码模式、利用广角帧内方向的扩展帧内预测、位置相关帧内预测组合(PDPC)以及4抽头帧内插值。
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中高频归零(High-Frequency Zeroing)的大块尺寸变换
在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的尺寸保持为64×64亮度样点,在VTM5中应用了以下规范的分区限制(带有语法信令修改):
对于宽度或高度或者宽度和高度两者都等于128的CU,不允许TT划分。
对于N≤64的128x N CU(即宽度等于128且高度小于128),不允许水平BT。
对于N≤64的N x 128CU(即高度等于128且宽度小于128),不允许垂直BT。
图6A、图6B、图6C、图6D、图6E、图6F、图6G和图6H示出了VTM中不允许的TT和BT分区的示例。
VVC中的变换系数编解码
VVC中的变换系数编解码与HEVC类似,因为它们都使用不重叠的系数组(也称为CG或子块)。然而,这两种编解码之间也存在一些差异。在HEVC中,系数的每个CG的尺寸固定为4×4。在VVC草案6中,CG尺寸变为取决于TB的尺寸。因此,VVC中提供了各种可用的CG尺寸(1×16、2×8、8×2、2×4、4×2和16×1)。编码块内的CG和CG内的变换系数根据预定义的扫描顺序进行编解码。
为了限制每个像素的上下文编解码的二进制位的最大数量,使用TB的面积和视频分量的类型(例如,亮度分量与色度分量)来得到TB的上下文编解码的二进制位(CCB)的最大数量。上下文编解码的二进制位的最大数量等于TB_zosize*1.75。这里,TB_zosize指示系数归零后TB内的样点数。注意,coded_sub_block_flag是表示CG是否含有非零系数的标志,对于CCB计数不被考虑。
系数归零(zero-out)是对变换块执行以强制位于变换块的特定区域中的系数为0的操作。例如,在当前的VVC中,64×64变换具有相关联的归零操作。因此,位于64×64变换块内左上32×32区域之外的变换系数都被强制为0。实际上,在当前的VVC中,对于沿某个维度的尺寸超过32的任何变换块,都沿该维度执行系数归零操作以强制位于左上32×32区域之外的系数为0。
在VVC中的变换系数编解码中,变量remBinsPass1首先被设置为所允许的上下文编解码的二进制位的最大数量(MCCB)。在编解码过程中,每次用信号表示上下文编解码的二进制位时,变量都会减一。当remBinsPass1大于或等于四时,首先通过sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag等语法用信号表示系数,在第一遍中,所有这些语法元素都使用上下文编解码的二进制位。系数的级别信息的其余部分在第二遍中使用Golomb-rice码和旁路编解码的二进制位通过语法元素abs_remainder进行编解码。当在第一遍编解码时remBinsPass1变得小于4时,当前系数在第一遍中不被编解码,而是在第二遍中使用Golomb-Rice码和旁路编解码的二进制位通过语法元素dec_abs_level直接编解码。针对dec_abs_level[]的rice参数推导过程如表3所指定的来得到。在上述所有级别的编解码之后,sig_coeff_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的语法。唯一的区别是,对于abs_remainder和dec_abs_level的编解码,基本级别baseLevel分别被设置为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_coeff_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标量量化带有被称为依赖性标量量化(dependent scalarquantization)的新概念而被使用。依赖性标量量化是指这样一种方法,其中变换系数的一组可允许重建值取决于按照重建顺序在当前变换系数级别之前的变换系数级别的值。这种方法的主要效果是,与HEVC中使用的传统独立标量量化相比,可允许重建矢量在N维矢量空间中被更密集地打包(N表示变换块中的变换系数的数量)。这意味着,对于给定的每N维单位体积的允许重建矢量的平均数量,输入矢量与最近的重建矢量之间的平均失真会减小。依赖性标量量化的方法通过以下方式实现:(a)定义具有不同重建级别的两个标量量化器,以及(b)定义用于在这两个标量量化器之间切换的过程。
所使用的这两个标量量化器如图9所示用Q0和Q1表示。可用重建级别的位置由量化步长Δ唯一指定。所使用的标量量化器(Q0或Q1)未在比特流中显性地用信号表示。而是,用于当前变换系数的量化器由按照编解码/重建顺序在当前变换系数之前的变换系数级别的奇偶性(parity)确定。
图9示出了在所提出的依赖性量化方法中使用的两个标量量化器的图示。
如图10A和图10B所示,这两个标量量化器(Q0与Q1)之间的切换是经由具有四个量化器状态(QState)的状态机来实现的。QState可以采用四个不同的值:0、1、2、3。它由按照编解码/重建顺序在当前变换系数之前的变换系数级别的奇偶性唯一地确定。在变换块的反量化开始时,将状态设置为等于0。以扫描顺序(即,以与它们被熵解码相同的顺序)重建变换系数。在重建了当前变换系数之后,状态被更新,如图10所示,其中k表示变换系数级别的值。
图10A示出了图示所提出的依赖性量化的状态转变的转变图。
图10B示出了图示所提出的依赖性量化的量化器选择的表。
还支持用信号发送默认和用户定义的缩放矩阵。DEFAULT模式缩放矩阵都是平的,所有TB尺寸的元素都等于16。IBC和帧内编解码模式目前共享相同的缩放矩阵。因此,对于USER_DEFINED矩阵的情况,MatrixType和MatrixType_DC的数量进行如下更新:
MatrixType:30=2(帧内和IBC/帧间为2)×3(Y/Cb/Cr分量)×5(方形TB尺寸:亮度从4×4到64×64,色度从2×2到32×32)。
MatrixType_DC:14=2(帧内和IBC/帧间为2×Y分量为1)×3(TB尺寸:16×16、32×32、64×64)+4(帧内和IBC/帧间为2×Cb/Cr分量为2)×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,则只保留左半部分或上半部分的系数,其余的系数被赋值为零。此外,对于64×64缩放矩阵的用信号表示的元素数量也从8×8减少到三个4×4子矩阵,因为右下角的4×4个元素从不使用。
用于变换系数编解码的上下文建模
与变换系数级别的绝对值相关的语法元素的概率模型的选择取决于局部邻域中的绝对级别或部分重建的绝对级别的值。所使用的模板在图11中图示。
图11示出了用于选择概率模型的模板的图示。黑色方块指定了当前扫描位置,并且带“x”的方块表示所使用的局部邻域。
所选择的概率模型取决于局部邻域中的绝对级别(或部分重建的绝对级别)的总和以及局部邻域中大于0的绝对级别的数量(由等于1的sig_coeff_flags的数量给出)。上下文建模和二值化取决于局部邻域的以下度量:
numSig:局部邻域中非零级别的数量;
sumAbs1:在局部邻域中第一遍之后的部分重建的绝对级别的总和(absLevel1);
sumAbs:局部邻域中重建的绝对级别的总和;
对角线位置(d):变换块内当前扫描位置的水平坐标和垂直坐标之和。
基于numSig、sumAbs1和d的值,选择用于对sig_coeff_flag、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是如下得到的:
调色板模式
调色板模式背后的基本思想是CU中的样点由一小组具有代表性的颜色值表示。该组称为调色板。还可以通过用信号表示颜色值作为逃逸颜色来指示从调色板中排除的颜色值,对于所述逃逸颜色,三个颜色分量的by值在比特流中直接用信号表示。其在图12中图示。
图12示出了在调色板模式下编解码的块的示例。图12包括在调色板模式下编解码的1210块和1220调色板。
在图12中,调色板尺寸为4。前3个样点分别使用调色板条目2、0和3进行重建。蓝色样点表示逃逸符号。CU级别标志palette_escape_val_present_flag指示CU中是否存在任何逃逸符号。如果存在逃逸符号,则调色板尺寸增加一并且使用最后一个索引来指示逃逸符号。因此,在图12中,索引4被指派给逃逸符号(escape symbol)。
为了对调色板编解码的块进行解码,解码器需要具有以下信息:
调色板表;
调色板索引。
如果调色板索引对应于逃逸符号,则用信号表示附加开销以指示样点的对应颜色值。
另外,在编码器侧,有必要得到适当的调色板以与该CU一起使用。
对于有损编解码的调色板推导,使用了改进的k均值聚类算法(k-meanclustering algorithm)。将块的第一个样点添加到调色板中。然后,对于块中的每个后续样点,计算样点与每个当前调色板颜色之间的绝对差之和(SAD)。如果每个分量的失真小于与最小SAD相对应的调色板条目阈值,则将样点添加到属于调色板条目的聚类中。否则,将作为新的调色板条目添加样点。当映射到聚类的样点数量超过阈值时,该聚类的质心将被更新并成为该聚类的调色板条目。
在下一步骤中,按使用的降序对聚类进行排序。然后,更新与每个条目相对应的调色板条目。通常,聚类的质心用作调色板条目。但是,当考虑到调色板条目的编解码成本时,执行率失真分析以分析来自调色板预测值的任何条目是否更适合代替质心来用作更新的调色板条目。这个过程一直持续到所有聚类都已处理或达到最大调色板尺寸。最后,如果聚类只有一个样点并且对应的调色板条目不在调色板预测值中,则将该样点转换为逃逸符号。另外,移除重复的调色板条目并合并其聚类。
在调色板推导之后,块中的每个样点都被指派了最近的(以SAD表示)调色板条目的索引。然后,将样点指派给‘INDEX’或‘COPY_ABOVE’模式。对于每个样点,可以使用‘INDEX’或‘COPY_ABOVE’模式。然后,计算模式的编解码成本。选择成本较低的模式。
对于调色板条目的编解码,维护调色板预测值。调色板的最大尺寸以及调色板预测值在SPS中用信号表示。调色板预测值在每个CTU行、每个条带和每个瓦片的开始处初始化。
对于调色板预测值中的每个条目,都用信号表示重用标志以指示它是否是当前调色板的一部分。其在图13中图示。
图13示出了使用调色板预测值来用信号表示调色板条目。图13包括先前调色板1310和当前调色板1320。
重用标志是使用零的运行长度编解码发送的。在此之后,使用0阶索引哥伦布码用信号表示新调色板条目的数量。最后,用信号表示新调色板条目的分量值。
如图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,则解码器也不必解析运行类型。
在对一个分段中的像素进行调色板运行编解码后,INDEX模式的索引值(palette_idx_idc)和量化的逃逸颜色(palette_escape_val)被旁路编解码。
残差和系数编解码的改进
在VVC中,当对转换系数进行编解码时,使用统一的(相同的)rice参数(RicePara)推导用信号表示abs_remainder和dec_abs_level的语法。唯一的区别是,对于abs_remainder和dec_abs_level的编解码,基本级别baseLevel分别被设置为4和0。Rice参数的确定不
仅基于局部模板中相邻五个变换系数的绝对级别之和,还基于对应的基本级别,如下:
RicePara=RiceParTable[max(min(31,sumAbs–5*baseLevel),0)]
换言之,语法元素abs_remainder和dec_abs_level的二进制码字是根据相邻系数的级别信息自适应地确定的。由于该码字确定是针对每个样点执行的,因此其需要附加逻辑来处理该码字对系数编解码的自适应。
类似地,当在变换跳过模式下对残差块进行编解码时,语法元素abs_remainder的二进制码字是根据相邻残差样点的级别信息自适应地确定的。
此外,在对残差编解码或变换系数编解码相关的语法元素进行编解码时,概率模型的选择取决于相邻级别的级别信息,这需要附加逻辑和附加上下文模型。
在当前设计中,逃逸样点的二值化是通过调用三阶指数哥伦布二值化过程得到的。其性能还有进一步提高的空间。
在当前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阶指数哥伦布二值化过程(EGk)。
第六,有限的k阶指数哥伦布二值化。
根据本公开的第二方面,提出在变换系数编解码中使用固定的码字集对某些语法元素(例如,abs_remainder和dec_abs_level)进行编解码。可以使用不同的方法来形成二进制码字。下面列出了一些示例性方法。
第一,使用与当前VVC中所使用的相同的用于确定abs_remainder和dec_abs_level的码字的程序,但采用固定的rice参数,例如,1、2或3。对于当前VVC中所使用的abs_remainder和dec_abs_level,baseLevel的值仍然可以不同。(例如,baseLevel被分别设置为4和0以对abs_remainder和dec_abs_level进行编解码)。
第二,使用与当前VVC中所使用的相同的用于确定abs_remainder和dec_abs_level的码字的程序,但采用固定的rice参数,例如,1、2或3。abs_remainder和dec_abs_level的baseLevels的值被选择为相同,例如,都使用0或都使用4。
第三,定长二值化。
第四,截断Rice二值化。
第五,截断二进制(TB)二值化过程。
第六,k阶指数哥伦布二值化过程(EGk)。
第七,有限的k阶指数哥伦布二值化。
根据本公开的第三方面,提出使用单个上下文对与残差编解码或系数编解码有关的语法元素(例如,abs_level_gtx_flag)进行编解码,并且可以移除基于相邻解码级别信息的上下文选择。
根据本公开的第四方面,提出在残差编解码中使用二进制码字的变量集对某些语法元素(例如abs_remainder)进行编解码,并且根据当前块的某些已编码信息来确定对二进制码字集的选择,所述已编码信息例如是与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如IBC模式或帧内或帧间)和/或条带类型(例如I条带、P条带或B条带)。可以使用不同的方法来得到二进制码字的变量集,下面列出了一些示例性方法。
第一,使用与当前VVC中所使用的相同的用于确定abs_remainder的码字的过程,但采用不同的rice参数。
第二,k阶指数哥伦布二值化过程(EGk)。
第三,有限的k阶指数哥伦布二值化。
表6.基于QP值的Rice参数确定
在第四方面中解释的相同方法也适用于变换高效编解码。根据本公开的第五方面,提出在变换系数编解码中使用二进制码字的变量集对某些语法元素(例如abs_remainder和dec_abs_level)进行编解码,并且根据当前块的某些已编码信息来确定对二进制码字集的选择,所述已编码信息例如是与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如IBC模式或帧内或帧间)和/或条带类型(例如I条带、P条带或B条带)。再次,可以使用不同的方法来得到二进制码字的变量集,下面列出了一些示例性方法。
第一,使用与当前VVC中所使用的相同的用于确定abs_remainder的码字的过程,但采用不同的rice参数。
第二,k阶指数哥伦布二值化过程(EGk)。
第三,有限的k阶指数哥伦布二值化。
在上述这些方法中,可以使用不同的rice参数来得到不同的二进制码字集。对于给定的残差样点块,所使用的rice参数是根据表示为QPCU的CU QP而不是相邻级别信息来确定的。一个具体示例如表6所示,其中,TH1至TH4是满足(TH1<TH2<TH3<TH4)的预定义阈值,并且K0至K4是预定义的rice参数。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前CU的QP值得到相同的rice参数,如表6所示。
根据本公开的第五方面,与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数集和/或阈值用信号表示到比特流中。当通过熵编解码器(例如,算术编解码)对语法元素进行编解码时,所确定的码字被用作二值化码字。
注意,参数集和/或阈值可以是与语法元素的码字确定相关联的所有参数和阈值的完整集合或子集。可以在视频比特流中的不同级别上用信号表示参数集和/或阈值。例如,可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集和/或图片头)、条带级别(例如,条带头)、编码树单元(CTU)级别或编码单元(CU)级别上用信号表示这些参数集和/或阈值。
在一个示例中,用于确定用于在变换跳过残差编解码中对abs_remainder语法进行编解码的码字的rice参数在条带头、图片头、PPS和/或SPS中用信号表示。当CU被编解码为变换跳过模式并且CU与上述条带头、图片头、PPS和/或SPS等相关联时,使用用信号表示的rice参数来确定用于对语法abs_remainder进行编解码的码字。
根据本公开的第六方面,与第一方面和第二方面所示的码字确定相关联的参数集和/或阈值用于变换系数编解码和/或变换跳过残差编解码的语法元素。并且可以根据当前块是否包含亮度残差/系数或色度残差/系数而使用不同的集合。当通过熵编解码器(例如,算术编解码)对语法元素进行编解码时,所确定的码字被用作二值化码字。
在一个示例中,与当前VVC中所使用的变换残差编解码相关联的abs_remainder的码字被用于亮度块和色度块两者,但亮度块和色度块分别使用不同的固定rice参数(例如,K1针对亮度块,K2针对色度块,其中,K1和K2为整数)。
根据本公开的第七方面,与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数集和/或阈值用信号表示到比特流中。并且可以针对亮度块和色度块用信号表示不同的集合。当通过熵编解码器(例如,算术编解码)对语法元素进行编解码时,所确定的码字被用作二值化码字。
在上述方面中解释的相同方法也适用于调色板模式中的逃逸值编解码,例如,palette_escape_val。
根据本公开的第八方面,不同的k阶指数哥伦布二值化可以用来得到用于在调色板模式下对逃逸值进行编解码的不同的二进制码字集。在一个示例中,对于给定的逃逸样点块,所使用的指数哥伦布参数(即k的值)是根据块的QP值(表示为QPCU)确定的。可以在基于块的给定QP值得到参数k的值时使用表6所示的相同示例。虽然在该示例中列出了四个不同的阈值(从TH1至TH4),并且可以基于这些阈值和QPCU得到五个不同的k值(从K0至K4),但值得一提的是,阈值的数量只是出于说明的目的。在实践中,可以使用不同数量的阈值将整个QP值范围分区为不同数量的QP值分段,并且对于每个QP值分段,可以使用不同的k值来得到对应的二进制码字,以对在调色板模式下编解码的块的逃逸值进行编解码。还值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,可以使用某些方程或查找表来得到相同的rice参数。
根据本公开的第九方面,与逃逸样点的语法元素的码字确定相关联的参数集和/或阈值用信号表示到比特流中。当通过熵编解码器(例如,算术编解码)对逃逸样点的语法元素进行编解码时,所确定的码字被用作二值化码字。
注意,参数集和/或阈值可以是与语法元素的码字确定相关联的所有参数和阈值的完整集合或子集。可以在视频比特流中的不同级别上用信号表示参数集和/或阈值。例如,可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集和/或图片头)、条带级别(例如,条带头)、编码树单元(CTU)级别或编码单元(CU)级别上用信号表示这些参数集和/或阈值。
在根据本方面的一个示例中,使用k阶指数哥伦布二值化来确定在调色板模式下对palette_escape_val语法进行编解码的码字,并且k的值在比特流中用信号表示到解码器。k的值可以在不同级别上用信号表示,例如,其可以在条带头、图片头、PPS和/或SPS等中用信号表示。当CU被编解码为调色板模式并且CU与上述条带头、图片头、PPS和/或SPS等相关联时,使用用信号表示的指数哥伦布参数来确定用于对语法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参数。在一个示例中,rice参数是基于相邻位置处有多少AbsLevel值大于基本级别来得到的。基于VVC草案的对应解码过程的示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。
表15.Rice参数推导过程
在另一个示例中,rice参数是基于AbsLevel值大于基本级别的相邻位置的(AbsLevel-baseLevel)值的和来得到的。基于VVC草案的对应解码过程的示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。
表16.Rice参数推导过程
根据本公开,VVC草案上的解码过程的一个示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。
表17.Rice参数推导过程
残差编解码中级别映射位置推导的简化
根据本公开的第二十方面,提出将QState从ZeroPos[n]的推导中移除,使得仅从cRiceParam得到ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。
表18.Rice参数推导过程
根据本公开的第二十一方面,提出基于locSumAbs的值来得到ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。
表19.Rice参数推导过程
根据本公开的第二十二方面,提出基于相邻位置的AbsLevel的值来得到ZeroPos[n]。在一个示例中,ZeroPos[n]是基于AbsLevel[xC+1][yC]和AbsLevel[xC][yC+1]中的最大值来得到的。基于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和/或条带/简档(profile)相关联的量化参数或编解码比特深度)和/或根据与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草案的对应解码过程的示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。对VVC草案的更改在表22中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前CU/Sequence的比特深度值得到相同的rice参数。
表22.Rice参数推导过程
/>
在另一个示例中,当比特深度大于或等于预定义阈值(例如,10、11、12、13、14、15或16)时,Rice参数cRiceParam是如下得到的:cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+c,其中,a、b和c是正数,例如1。基于VVC草案的对应解码过程如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。对VVC草案的更改在表23中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前CU/Sequence的比特深度值得到相同的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/序列的比特深度值中得到相同的rice参数,如表24所示。
第二,定长二值化。
第三,截断Rice二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数哥伦布二值化过程(EGk)。
第六,有限的k阶指数哥伦布二值化。
表24.基于比特深度的Rice参数确定
/>
在一个示例中,当新标志(例如,extended_precision_processing_flag)等于1时,Rice参数cRiceParam固定为n,其中,n是正数(例如,2、3、4、5、6、7或8)。固定值在不同的条件下可能是不同的。基于VVC草案的对应解码过程的示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。对VVC草案的更改在表25中用粗体和斜体字体示出。
表25.Rice参数推导过程
在另一个示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时,在对abs_remainder/dec_abs_level的语法元素进行编解码时只对rice参数使用一个固定值。基于VVC草案的对应解码过程如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。对VVC草案的更改在表26中用粗体和斜体字体示出。
表26.Rice参数推导过程
在又另一个示例中,当比特深度大于或等于预定义阈值(例如,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)。对VVC草案的更改在表27中用粗体和斜体字体示出,并且变化部分用粗体和斜体字体示出,且删除的内容用加删除线的字体示出。
表27.Rice参数推导过程
在又另一个示例中,提出当比特深度大于预定义阈值(例如,10、11、12、13、14、15或16)时,在对abs_remainder/dec_abs_level的语法元素进行编解码时只使用一个固定的rice参数值。基于VVC草案的对应解码过程如下所示,其中,TH是预定义阈值(例如,10、11、12、13、14、15或16),并且变化部分用粗体和斜体字体示出,且删除的内容用加删除线的字体示出。对VVC草案的更改在表28中用粗体和斜体字体示出。
表28.Rice参数推导过程
残差编解码中的Rice参数推导
根据本公开的第二十六方面,提出在残差编解码中使用rice参数的可变方法对某些语法元素(例如abs_remainder/dec_abs_level)进行编解码,并且根据当前块的某些已编码信息(例如与TB/CB和/或条带/简档相关联的量化参数或编解码比特深度)和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如extended_precision_processing_flag)来确定选择。可以使用不同的方法来得到rice参数,下面列出了一些示例性方法。
第一,提出使用计数器(counter)来得到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的计数器来确定移位,并且变化部分用粗体和斜体字体示出,且删除的内容用加删除线的字体示出。对VVC草案的更改在表29中用粗体和斜体字体示出。
表29.Rice参数推导过程
第一,提出在VVC中的rice参数推导中增加移位操作。移位是根据当前块的某些已编码信息来确定的,例如,与TB/CB和/或条带简档(例如,14比特简档或16比特简档)相关联的编解码比特深度。基于VVC草案的对应解码过程的示例如下所示,根据方法1的计数器来确定移位,并且变化部分用粗体和斜体字体示出且删除的内容用加删除线的字体示出。对VVC草案的更改在表30中用粗体和斜体字体示出。
表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/序列的比特深度值中得到相同的rice参数,如表7所示。
第二,定长二值化。
第三,截断Rice二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数哥伦布二值化过程(EGk)。
第六,有限的k阶指数哥伦布二值化。
基于VVC草案的对应解码过程的示例如下所示,对VVC草案的更改在表31中用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表31.Rice参数推导过程
在另一个示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时,在对abs_remainder的语法元素进行编解码时只对rice参数使用一个固定值。基于VVC草案的对应解码过程如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。对VVC草案的更改在表32中用粗体和斜体字体示出。
表32.Rice参数推导过程
在又另一个示例中,当新标志(例如extended_precision_processing_flag)等于1时,Rice参数cRiceParam固定为n,其中,n是正数(例如,2、3、4、5、6、7或8)。固定值在不同的条件下可能是不同的。基于VVC草案的对应解码过程的示例如下所示,变化部分用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。对VVC草案的更改在表33中用粗体和斜体字体示出。
表33.Rice参数推导过程
在又另一个示例中,当比特深度大于或等于预定义阈值(例如,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),并且变化部分用粗体和斜体字体示出,且删除的内容用加删除线的字体示出。对VVC草案的更改在表34中用粗体和斜体字体示出。
表34.Rice参数推导过程
/>
在又另一个示例中,在条带头中用信号表示一个控制标志,以指示变换跳过块的Rice参数的信号传输被启用还是被禁用。当控制标志用信号表示为启用时,为每个变换跳过条带进一步用信号表示一个语法元素,以指示该条带的Rice参数。当控制标志用信号表示为禁用(例如设置为等于“0”)时,在较低的级别上没有用信号表示进一步的语法元素来指示变换跳过条带的Rice参数,而是对所有变换跳过条带使用默认的Rice参数(例如1)。基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义值(例如,0、1、2),并且变化部分用粗体和斜体字体示出,且删除的内容用加删除线的字体示出。对VVC草案的更改在表35中用粗体和斜体字体示出。值得注意的是,sh_ts_residual_coding_rice_index可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用n位(从左到右)以左位先写的固定模式位串(fixed-pattern bit string),也可以用于对相同的语法元素进行编码/解码。
条带头语法
表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)。对VVC草案的更改在表37中用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。值得注意的是,sh_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用n位(从左到右)以左位先写的固定模式位串,也可以用于对相同的语法元素进行编码/解码。
序列参数集RBSP语法
表37.残差编解码的语法
sps_ts_residual_coding_rice_present_in_sh_flag等于1指定引用SPS的SH语法结构中可能存在sh_ts_residual_coding_rice_idx。sps_ts_residual_coding_rice_present_in_sh_flag等于0指定引用SPS的SH语法结构中不存在sh_ts_residual_coding_rice_idx。当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参数推导过程
在又另一个示例中,为每个变换跳过条带用信号表示一个语法元素,以指示该条带的Rice参数。下文图示了基于VVC草案的对应解码过程的示例。对VVC草案的更改在表40中用粗体和斜体字体示出。值得注意的是,sh_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用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)。对VVC草案的更改在表42中用粗体和斜体字体示出。值得注意的是,pps_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用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草案的对应解码过程如下所示,对VVC草案的更改在表44中用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表44.Rice参数推导过程
/>
/>
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义阈值(例如33或34)。对VVC草案的更改在表45中用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表45.Rice参数推导过程
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,THA和THB是预定义阈值(例如,THA=8、THB=33或34)。对VVC草案的更改在表46中用粗体和斜体字体示出,并且删除的内容用加删除线的字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表46.Rice参数推导过程
在又另一个示例中,提出当新标志(例如extended_precision_processing_flag)等于1时,只使用变化的rice参数对abs_remainder的语法元素进行编解码。变化值可以根据当前块的某些已编码信息来确定,例如块尺寸、量化参数、比特深度、变换类型等。在一个具体实施例中,提出基于适用于一个CU的编解码比特深度和量化参数来调整rice参数。基于VVC草案的对应解码过程如下所示。对VVC草案的更改在表47中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表47.Rice参数推导过程
/>
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义阈值(例如,18、19)。对VVC草案的更改在表48中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表48.Rice参数推导过程
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,THA和THB是预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的更改在表49中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表49.Rice参数推导过程
/>
图16示出了用于视频编码的方法。例如,所述方法可以应用于编码器。
在步骤1610中,编码器可以接收视频输入。例如,视频输入可以是实时流(livestream)。
在步骤1612中,编码器可以基于视频输入获得量化参数。例如,量化参数可以由编码器中的量化单元计算。
在步骤1614中,编码器可以基于至少一个预定义阈值、编解码比特深度和量化参数得到rice参数。例如,rice参数用于用信号表示abs_remainder和dec_abs_level的语法。
在步骤1616中,编码器可以基于rice参数对视频比特流进行熵编码。例如,可以对视频比特流进行熵编码以产生压缩的视频比特流。
在又另一个示例中,提出当比特深度大于10时,在对abs_remainder的语法元素进行编解码时只对rice参数使用固定值(例如,2、3、4、5、6、7或8)。根据当前块的某些已编码信息(例如,量化参数),该固定值在不同条件下可能是不同的。基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义阈值(例如,18、19)。对VVC草案的更改在表50中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表50.Rice参数推导过程
/>
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,THA和THB是预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的更改在表51中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表51.Rice参数推导过程
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义阈值(例如33或34)。对VVC草案的更改在表52中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表52.Rice参数推导过程
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,THA和THB是预定义阈值(例如,THA=8、THB=33或34)。对VVC草案的更改在表53中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表53.Rice参数推导过程
/>
值得一提的是,在上面的图示中,用于计算具体rice参数的方程仅用作示例来说明所提出的想法。对于熟知现代视频编解码技术的人来说,其他映射函数(或等效的映射方程)已经适用于所提出的想法(即基于编解码比特和所应用的量化参数来确定变换跳过模式的rice参数)。同时,还应该提到的是,在当前VVC设计中,所应用的量化参数的值是允许在编码块组级别上改变的。因此,所提出的rice参数调整方案可以在编码块组级别上对变换跳过模式的rice参数进行灵活调整。
常规残差编解码和变换跳过残差编解码的信令信息
根据本公开的第二十八方面,提出用信号表示用于对某些语法元素(例如变换跳过残差编解码中的abs_remainder、用于得到常规残差编解码中用于abs_remainder/dec_abs_level的rice参数的移位参数和偏移参数)进行编解码的二进制码字的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)。对VVC草案的更改在表54中用粗体和斜体字体示出。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_index可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用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)。对VVC草案的更改在表57中用粗体和斜体字体示出。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用n位(从左到右)以左位先写的固定模式位串,也可以用于对相同的语法元素进行编码/解码。
序列参数集RBSP语法
表57.残差编解码的语法
sps_residual_coding_info_present_in_sh_flag等于1指定引用SPS的SH语法结构中可能存在sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx。sps_residual_coding_info_present_in_sh_flag等于0指定引用SPS的SH语法结构中不存在sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx。当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草案的对应解码过程的示例。对VVC草案的更改在表61中用粗体和斜体字体示出。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用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)。对VVC草案的更改在表64中用粗体和斜体字体示出。值得注意的是,pps_residual_coding_rice_shift、pps_residual_coding_rice_offset和pps_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,u(n),使用n位的无符号整数,或f(n),使用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参数的移位参数和/或偏移参数在不同条件下可能是不同的。当控制标志用信号表示为禁用(例如,设置为等于“0”),对所有变换跳过条带使用默认的Rice参数(例如,1),并且对所有变换条带使用默认的移位参数和/或偏移参数(例如,0)。基于VVC草案的对应解码过程的示例如下所示,其中,THA和THB是预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的更改在表67中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
条带头语法
表67.残差编解码的语法
sh_residual_coding_rice_flag等于1指定在当前条带中使用比特深度相关的Rice参数推导过程。sh_residual_coding_rice_flag等于0指定在当前条带中不使用比特深度相关的Rice参数推导过程。
表68.Rice参数推导过程
表69.Rice参数推导过程
/>
在又另一个示例中,基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义阈值(例如,18、19)。对VVC草案的更改在表70中用粗体和斜体字体示出。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表70.Rice参数推导过程
/>
根据本公开的另一方面,提出添加上述这些编解码工具的值所标记的约束,以提供与通用约束信息中的其他约束相同的通用约束控制。
例如,sps_ts_residual_coding_rice_present_in_sh_flag等于1指定引用SPS的SH语法结构中可能存在sh_ts_residual_coding_rice_idx。sps_ts_residual_coding_rice_present_in_sh_flag等于0指定引用SPS的SH语法结构中不存在sh_ts_residual_coding_rice_idx。根据本公开,提出在通用约束信息语法中添加语法元素gci_no_ts_residual_coding_rice_constraint_flag,以提供与其他标志相同的通用约束控制。下文图示了关于VVC草案的解码过程的示例。突出显示了对VVC草案的更改。
增加的部分用斜体字体突出显示。
图19示出了根据本公开的示例的用于视频编解码的方法。例如,所述方法可以应用于解码器。在步骤1902中,解码器可以接收序列参数集(SPS)残差编解码标志,所述SPS残差编解码标志指示引用SPS的SH语法结构中是否存在索引sh_ts_residual_coding_rice_idx。
在步骤1904中,响应于确定SPS残差编解码标志的值等于1,解码器可以确定引用SPS的条带头(SH)语法结构中存在sh_ts_residual_coding_rice_idx。
在步骤1906中,响应于确定残差编解码标志的值等于0,解码器可以确定引用SPS的SH语法结构中不存在sh_ts_residual_coding_rice_idx。
在另一个示例中,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_level的二值化的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[]和Rx[]如下指定:Tx[]={32,128,512,2048}>>(1523)Rx[]={0,2,4,6,8}
图20示出了根据本公开的示例的用于视频编解码的方法。例如,所述方法可以应用于解码器。在步骤2002中,解码器可以接收序列参数集(SPS)自适应启用标志,所述SPS自适应启用标志指示是否使用用于语法abs_remaining和dec_abs_level的二值化的替代rice参数推导。
在步骤2004中,响应于确定SPS自适应启用标志的值等于1,解码器可以确定使用用于语法的二值化的替代rice参数推导。
在步骤2006中,响应于确定SPS自适应启用标志的值等于0,解码器可以确定不使用用于语法的二值化的替代rice参数推导。
根据本公开,提出在通用约束信息语法中添加语法元素gci_no_rice_adaptation_constraint_flag,以提供与其他标志相同的通用约束控制。下文图示了关于VVC草案的解码过程的示例。突出显示了对VVC草案的更改。增加的部分用斜体字体突出显示。
图21示出了根据本公开的示例的用于视频编解码的方法。例如,所述方法可以应用于解码器。在步骤2102中,解码器可以接收残差编解码rice约束标志,以为其他标志提供通用约束控制。
在步骤2104中,响应于确定残差编解码rice约束标志的值等于1,解码器可以确定其他标志的值等于0。
由于所提出的rice参数自适应方案只用于变换跳过残差编解码(TSRC),因此所提出的方法只有在启用TSRC时才能生效。相应地,在本公开的一个或多个实施例中,提出增加一个比特流约束,要求当从通用约束信息级别禁用变换跳过模式时,例如当gci_no_transform_skip_constraint_flag的值被设置为一时,gci_no_rice_adaptation_constraint_flag的值为一。
可以使用包括一个或多个电路的装置来实施上述方法,该一个或多个电路包括专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子部件。该装置可以将这些电路与用于执行上述方法的其他硬件或软件部件结合使用。上文公开的每个模块、子模块、单元或子单元都可以使用该一个或多个电路来至少部分地实施。
考虑在此公开的公开内容的说明书和实践,本公开的其他示例对于本领域技术人员而言将是显而易见的。本申请旨在涵盖遵循其一般原则对公开内容进行的任何改变、使用或改编,包括在本领域中已知或惯用实践内与本公开的偏离。旨在将说明书和示例仅视为示例性的。
应理解的是,本公开不限于上文描述和附图中所示的确切示例,并且可以在不脱离其范围的情况下进行各种修改和变化。
图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中,可由计算环境1810中的处理器1820执行,用于执行上述方法。例如,该非暂态计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘、光学数据存储设备等。
该非暂态计算机可读存储介质中存储有用于由具有一个或多个处理器的计算设备执行的多个程序,其中,所述多个程序在由所述一个或多个处理器执行时使所述计算设备执行上述运动预测方法。
在一些实施例中,计算环境1810可以用一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、控制器、微控制器、微处理器、或其他电子部件来实施,用于执行上述方法。
已经出于说明目的呈现了对本公开的描述,并且该描述不旨在是穷举的、或限于本公开。受益于前述描述和相关联附图中呈现的教导,许多修改、变型和替代性实施方式对于本领域普通技术人员将是显而易见的。
选择并描述示例以便解释本公开的原理,并且使本领域其他技术人员能够理解本公开的各种实施方式并且最好地利用基本原理以及具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,本公开的范围不应受限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在本公开的范围内。

Claims (13)

1.一种用于视频编解码的方法,包括:
由解码器接收序列参数集(SPS)残差编解码标志,所述SPS残差编解码标志指示引用所述SPS的SH语法结构中是否存在索引sh_ts_residual_coding_rice_idx;
响应于确定所述SPS残差编解码标志的值等于1,确定引用所述SPS的所述条带头(SH)语法结构中存在所述sh_ts_residual_coding_rice_idx;以及
响应于确定所述残差编解码标志的所述值等于0,确定引用所述SPS的所述SH语法结构中不存在所述sh_ts_residual_coding_rice_idx。
2.如权利要求1所述的用于视频编解码的方法,进一步包括:
由所述解码器接收图片参数集(PPS)残差编解码rice标志,以指示所述视频的当前图片中是否存在索引pps_ts_residual_coding_rice_index;
响应于确定所述PPS残差编解码rice标志的值等于1,确定所述当前图片中存在所述pps_ts_residual_coding_rice_index;以及
响应于确定所述PPS残差编解码标志的所述值等于0,确定所述当前图片中不存在所述pps_ts_residual_coding_rice_index。
3.一种用于视频编解码的方法,包括:
由解码器接收序列参数集(SPS)自适应启用标志,所述SPS自适应启用标志指示是否使用针对语法abs_remaining和dec_abs_level的二值化的替代rice参数推导;
响应于确定所述SPS自适应启用标志的值等于1,确定使用针对语法的二值化的所述替代rice参数推导;以及
响应于确定所述SPS自适应启用标志的所述值等于0,确定不使用针对语法的二值化的所述替代rice参数推导。
4.如权利要求3所述的用于视频编解码的方法,进一步包括:
由所述解码器接收图片参数集(PPS)残差编解码rice标志,以指示所述视频的当前图片中是否存在索引pps_ts_residual_coding_rice_index;
响应于确定所述PPS残差编解码rice标志的值等于1,确定所述当前图片中存在所述pps_ts_residual_coding_rice_index;以及
响应于确定所述PPS残差编解码标志的所述值等于0,确定所述当前图片中不存在所述pps_ts_residual_coding_rice_index。
5.一种用于视频编解码的方法,包括:
由解码器接收残差编解码rice约束标志,以为其他标志提供通用约束控制;以及
响应于确定所述残差编解码rice约束标志的值等于1,确定所述其他标志的值等于0。
6.如权利要求5所述的用于视频编解码的方法,进一步包括:
响应于确定所述残差编解码rice约束标志的所述值等于1,确定SPS残差编解码标志的值等于0。
7.如权利要求5所述的用于视频编解码的方法,进一步包括:
响应于确定变换跳过残差编解码rice约束标志的值等于1,确定SPS变换跳过残差编解码rice存在标志的值等于0。
8.如权利要求5所述的用于视频编解码的方法,进一步包括:
响应于确定常规残差编解码rice约束标志的值等于1,确定SPS常规残差编解码扩展标志的值等于0。
9.如权利要求5所述的用于视频编解码的方法,进一步包括:
响应于确定残差编解码rice自适应约束标志的值等于1,确定SPS残差编解码自适应标志的值等于0。
10.如权利要求5所述的用于视频编解码的方法,进一步包括:
响应于确定所述残差编解码rice约束标志的所述值等于1,确定PPS残差编解码rice标志的值等于0。
11.如权利要求5所述的用于视频编解码的方法,进一步包括:
响应于确定所述残差编解码rice约束标志的所述值等于1,确定SPS自适应启用标志的值等于0。
12.一种用于视频编解码的装置,包括:
一个或多个处理器;以及
存储器,所述存储器被配置成存储能够由所述一个或多个处理器执行的指令;其中,所述一个或多个处理器在执行所述指令时被配置成执行如权利要求1至11中任一项所述的方法。
13.一种用于视频编解码的非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由一个或多个计算机处理器执行时使所述一个或多个计算机处理器执行如权利要求1至11中任一项所述的方法。
CN202280008946.5A 2021-01-04 2022-01-04 用于视频编解码的残差和系数编解码 Pending CN116803077A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311450166.9A CN117528117A (zh) 2021-01-04 2022-01-04 用于视频编解码的残差和系数编解码

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163133765P 2021-01-04 2021-01-04
US63/133,765 2021-01-04
PCT/US2022/011183 WO2022147570A1 (en) 2021-01-04 2022-01-04 Residual and coefficients coding for video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311450166.9A Division CN117528117A (zh) 2021-01-04 2022-01-04 用于视频编解码的残差和系数编解码

Publications (1)

Publication Number Publication Date
CN116803077A true CN116803077A (zh) 2023-09-22

Family

ID=82258696

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311450166.9A Pending CN117528117A (zh) 2021-01-04 2022-01-04 用于视频编解码的残差和系数编解码
CN202280008946.5A Pending CN116803077A (zh) 2021-01-04 2022-01-04 用于视频编解码的残差和系数编解码

Family Applications Before (1)

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

Country Status (9)

Country Link
US (1) US20240040129A1 (zh)
EP (1) EP4272447A1 (zh)
JP (1) JP2024502109A (zh)
KR (1) KR20230124059A (zh)
CN (2) CN117528117A (zh)
AU (1) AU2022204998B2 (zh)
CA (1) CA3203828A1 (zh)
MX (1) MX2023007905A (zh)
WO (1) WO2022147570A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022214877A1 (en) * 2021-04-08 2022-10-13 Interdigital Vc Holdings France, Sas Use of general constraint flags associated with coding tools
US11871038B2 (en) * 2021-09-29 2024-01-09 Tencent America LLC Techniques for constraint flag signaling for range extension with residual rice coding extension

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10110931B2 (en) * 2016-04-27 2018-10-23 Aspeed Technology Inc. Variable length coding and decoding methods and devices for grouped pixels
CN113853785B (zh) * 2019-05-14 2024-04-16 北京字节跳动网络技术有限公司 用于残差编解码的上下文建模
WO2022066869A1 (en) * 2020-09-23 2022-03-31 Beijing Dajia Internet Information Technology Co., Ltd. Residual and coefficients coding for video coding

Also Published As

Publication number Publication date
KR20230124059A (ko) 2023-08-24
AU2022204998B2 (en) 2024-05-02
JP2024502109A (ja) 2024-01-17
WO2022147570A1 (en) 2022-07-07
MX2023007905A (es) 2023-07-11
EP4272447A1 (en) 2023-11-08
AU2022204998A1 (en) 2023-08-10
US20240040129A1 (en) 2024-02-01
CA3203828A1 (en) 2022-07-07
CN117528117A (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
TWI753356B (zh) 用於編碼或解碼轉換塊的方法與裝置
CN116668695B (zh) 用于视频编码的方法、计算设备和存储介质
CN113826383B (zh) 变换跳过模式的块维度设置
CN113950828A (zh) 视频比特流中的简化二次变换的有条件信令
US20240040129A1 (en) Residual and coefficients coding for video coding
US20230291906A1 (en) Residual and coefficients coding for video coding
CN116918335A (zh) 用于视频编码的残差和系数编码
CN113826405A (zh) 多个颜色分量的变换量化旁路模式的使用
CN114830663A (zh) 变换方法、编码器、解码器以及存储介质
RU2820669C1 (ru) Кодирование коэффициентов и остатка для кодирования видео
US20240179314A1 (en) Residual and coefficients coding for video coding
WO2022217417A1 (zh) 编解码方法、编码器、解码器以及存储介质
CN116965033A (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