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

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

Info

Publication number
CN116420353A
CN116420353A CN202180065041.7A CN202180065041A CN116420353A CN 116420353 A CN116420353 A CN 116420353A CN 202180065041 A CN202180065041 A CN 202180065041A CN 116420353 A CN116420353 A CN 116420353A
Authority
CN
China
Prior art keywords
flag
residual
codec
equal
price
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
CN202180065041.7A
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 CN202310860340.0A priority Critical patent/CN116668695B/zh
Publication of CN116420353A publication Critical patent/CN116420353A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/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/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Abstract

提供了用于视频解码的方法、装置和非暂态计算机可读存储介质。解码器可以接收视频流。解码器可以接收条带头级别的控制标志。解码器可以接收条带头级别的至少一个语法元素。解码器可以基于控制标志和至少一个语法元素对视频比特流进行熵解码。

Description

用于视频编解码的残差和系数编解码
相关申请的交叉引用
本申请基于2020年9月30日提交的临时申请第63/085,966号和2020年9月23日提交的临时申请第63/082,452号并要求其优先权,所述临时申请的全部内容出于所有目的通过引用以其全文并入本文。
技术领域
本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码的残差和系数编解码的改进和简化。
背景技术
可以使用各种视频编解码技术来压缩视频数据。视频编解码是根据一个或多个视频编解码标准来执行的。例如,视频编解码标准包括通用视频编解码(versatile videocoding,VVC)、联合探索测试模型(joint exploration test model,JEM)、高效视频编解码(high-efficiency video coding,H.265/HEVC)、高级视频编解码(advanced videocoding,H.264/AVC)、运动图片专家组(moving picture expert group,MPEG)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等)进行,这些方法利用存在于视频图像或序列中的冗余。视频编解码技术的一个重要目标在于,将视频数据压缩成使用更低比特率的形式,同时避免或最小化视频质量的下降。
发明内容
本公开的示例提供了用于视频编解码中的残差和系数编解码的方法和装置。
根据本公开的第一方面,提供了一种用于视频解码的方法。所述方法包括解码器接收视频比特流。所述解码器可以进一步接收条带头级别的控制标志。所述控制标志可以用信号表示是否为变换跳过条带启用莱斯参数(rice parameter)。所述解码器还可以接收所述条带头级别的至少一个语法元素。所述至少一个语法元素是针对所述变换跳过条带用信号表示的并且指示所述rice参数。所述解码器可以基于所述控制标志和所述至少一个语法元素对所述视频比特流进行进一步熵解码。
应理解,上面的大体描述和下面的详细描述仅是示例性的和解释性的,而不旨在限制本公开。
附图说明
结合在说明书中并构成本说明书的一部分的附图图示了与本公开一致的示例,并与所述描述一起用于解释本公开的原理。
图1是根据本公开的示例的编码器的框图。
图2是根据本公开的示例的解码器的框图。
图3A是图示根据本公开的示例的多类型树结构中的块分区的图。
图3B是图示根据本公开的示例的多类型树结构中的块分区的图。
图3C是图示根据本公开的示例的多类型树结构中的块分区的图。
图3D是图示根据本公开的示例的多类型树结构中的块分区的图。
图3E是图示根据本公开的示例的多类型树结构中的块分区的图。
图4是根据本公开的示例的具有18×12个亮度编码树单元(coding tree unit,CTU)的图片的图解说明。
图5是根据本公开的示例的具有18×12个亮度CTU的图片的图示。
图6A是根据本公开的示例的VVC测试模型(VVC test model,VTM)中不允许的三叉树(ternary tree,TT)和二叉树(binary tree,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是图示根据本公开的示例的与用户界面耦接的计算环境的图。
具体实施方式
现在将详细参考示例实施例,附图中图示了这些实施例的示例。以下描述均参考附图,在附图中,除非另有说明,否则不同附图中的相同参考标记表示相同或相似的要素。以下示例实施例描述中阐述的实施方式并不表示与本公开一致的所有实施方式。而是,它们仅仅是与所附权利要求中叙述的与本公开相关的方面一致的装置和方法的示例。
本公开中使用的术语仅出于描述特定实施例的目的,而不旨在限制本公开。如在本公开和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还应当理解,本文使用的术语“和/或”旨在表示并包括相关联列举项目中的一个或多个项目的任何或所有可能组合。
应当理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是这些信息不应受这些术语的限制。这些术语仅仅是用来将一类信息与另一类信息进行区分。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,根据上下文,术语“如果”可以被理解为意指“当……时”或“在……时”或“响应于判断”。
HEVC标准的第一版本于2013年10月完成,其与上一代视频编解码标准H.264/MPEGAVC相比,提供了大约50%的比特率节省或同等的感知质量。尽管HEVC标准提供了优于其前身的显著编解码改进,但有证据表明,可以使用附加的编解码工具实现优于HEVC的编解码效率。在此基础上,VCEG和MPEG都开始了针对未来视频编解码标准化的新编解码技术的探索工作。ITU-T VECG和ISO/IEC MPEG于2015年10月成立了一个联合视频探索小组(JointVideo Exploration Team,JVET),开始对能够大幅提高编解码效率的先进技术进行重大研究。JVET通过在HEVC测试模型(HEVC test model,HM)的基础上整合多个附加编解码工具来维护一种称为联合探索模型(joint exploration model,JEM)的参考软件。
2017年10月,ITU-T和ISO/IEC发布了关于具有超越HEVC的能力的视频压缩的联合提案(call for proposals,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中,视频帧被分区成多个视频块以进行处理。对于每个给定的视频块,基于帧间预测方法或帧内预测方法来形成预测。
将表示当前视频块(视频输入110的一部分)与其预测值(块预测值140的一部分)之间的差的预测残差从加法器128发送到变换130。然后,将变换系数从变换130发送到量化132,以进行熵减小。然后,将量化后的系数馈送到熵编码138,以生成压缩视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142(比如视频块分区信息、运动矢量(motion vector,MV)、参考图片索引和帧内预测模式)也通过熵编码138被馈送并且被保存到压缩比特流144中。压缩比特流144包括视频比特流。
在编码器100中,还需要与解码器相关的电路,以为了预测的目的重建像素。首先,通过反量化134和逆变换136来重建预测残差。将该重建的预测残差与块预测值140组合,以生成当前视频块的未滤波的重建像素。
空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编码的相邻块的样点(被称为参考样点)的像素来预测当前视频块。
时间预测(也被称为“帧间预测”)使用来自已编码的视频图片的重建像素来预测当前视频块。时间预测减少了在视频信号中固有的时间冗余。给定编码单元(coding unit,CU)或编码块的时间预测信号通常由指示当前CU与其时间参考之间的运动量和运动方向的一个或多个MV用信号表示。进一步地,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储中的哪个参考图片。
运动估计114获取视频输入110和来自图片缓冲器120的信号,并且将运动估计信号输出到运动补偿112。运动补偿112获取视频输入110、来自图片缓冲器120的信号以及来自运动估计114的运动估计信号,并且将运动补偿信号输出到帧内/帧间模式决策116。
在执行空间预测和/或时间预测之后,编码器100中的帧内/帧间模式决策116例如基于率失真优化方法来选择最佳预测模式。然后,从当前视频块减去块预测值140,并且使用变换130和量化132对所产生的预测残差进行去相关。通过反量化134对所产生的量化残差系数进行反量化,并通过逆变换136对该量化残差系数进行逆变换以形成重建残差,然后将该重建残差加回到预测块以形成CU的重建信号。进一步地,在将重建的CU置于图片缓冲器120的参考图片存储装置中并用于对未来的视频块编解码之前,可以对重建的CU应用比如去块滤波器、样点自适应偏移(sample adaptive offset,SAO)和/或自适应环路滤波器(adaptive in-loop filter,ALF)等环路滤波122。为了形成输出视频比特流144,将编码模式(帧间或帧内)、预测模式信息、运动信息、以及经量化的残差系数都发送至熵编码单元138,以进行进一步压缩和打包来形成比特流。
图1给出了通用的基于块的混合视频编码系统的框图。输入视频信号被逐块(被称为编码单元(CU))处理。在VTM-1.0中,CU可以高达128×128像素。然而,不同于仅仅基于四叉树来分割块的HEVC,在VVC中,一个编码树单元(CTU)被划分成多个CU,以适应基于四/二/三叉树而不同的局部特性。根据定义,编码树块(coding tree block,CTB)是某个N值的N×N样点块,使得将分量分成CTB就是分区。CTU包括具有三个样点阵列的图片的亮度样点CTB、两个对应的色度样点CTB,或者使用三个单独的颜色平面的已编码单色图片或图片的样点CTB,以及用于对样点进行编码的语法结构。另外,移除了HEVC中的多种分区单元类型的构思,即,VVC中不再存在CU、预测单元(prediction unit,PU)和变换单元(transform unit,TU)的拆分;相反,每个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的重建预测残差与由块预测值机制生成的预测输出进行求和来获得一组未滤波的重建像素。
在被存储到用作参考图片存储装置的图片缓冲器226中之前,重建块可以进一步通过环路滤波器228。可以发送图片缓冲器226中的重建视频以驱动显示设备,并将其用于预测未来的视频块。在环路滤波器228被开启的情况下,对这些重建像素执行滤波操作,从而得到最终的重建视频输出232。
图2给出了基于块的视频解码器的总体框图。先在熵解码单元处对视频比特流进行熵解码。将编码模式和预测信息发送到空间预测单元(在帧内编码的情况下)或时间预测单元(在帧间编码的情况下)以形成预测块。将残差变换系数发送到反量化单元和逆变换单元以重建残差块。然后,将预测块和残差块相加。在被存储到参考图片存储装置之前,重建块可以进一步通过环路滤波。然后,将参考图片存储装置中的重建视频发送出去以驱动显示设备,并用于预测未来的视频块。
通常,VVC中应用的基本帧内预测方案与HEVC的基本帧内预测方案保持相同,只不过对几个模块进行了进一步扩展和/或改进,例如,帧内子分区(intra sub-partition,ISP)编码模式、利用广角帧内方向的扩展帧内预测、位置相关帧内预测组合(position-dependent intra prediction combination,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中高频归零的大块尺寸变换
在VTM4中,启用了尺寸高达64×64的大块尺寸变换,这主要适用于较高分辨率的视频,例如,1080p和4K序列。对于尺寸(宽度或高度,或宽度和高度两者)等于64的变换块,高频变换系数被归零,使得只保留低频系数。例如,对于M×N的变换块(其中M为块宽并且N为块高),当M等于64时,只保留变换系数的左边32列。类似地,当N等于64时,只保留变换系数的前32行。当变换跳过模式用于大块时,使用整个块而无需将任何值归零。
VVC中的虚拟流水线数据单元(Virtual pipeline data units,VPDU)
虚拟流水线数据单元(VPDU)被定义为图片中不重叠的单元。在硬件解码器中,连续的VPDU由多个流水线级同时处理。在大多数流水线级中,VPDU尺寸与缓冲区尺寸大致成比例,因此保持VPDU尺寸较小是很重要的。在大多数硬件解码器中,VPDU尺寸可以设置为最大变换块(transform block,TB)尺寸。然而,在VVC中,三叉树(TT)和二叉树(BT)分区可能会导致VPDU尺寸增加。
为了使VPDU的尺寸保持为64×64亮度样点,在VTM5中应用了以下规范的分区限制(伴有语法信令修改):
对于宽度或高度等于128或者宽度和高度两者都等于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具有4×4的固定尺寸。在VVC草案6中,CG尺寸变为取决于TB的尺寸。因此,VVC中提供了各种CG尺寸(1×16、2×8、8×2、2×4、4×2和16×1)。根据预定义的扫描顺序对编码块内的CG和CG内的变换系数进行编解码。
为了限制每个像素的上下文编码的二进制位的最大数量,使用TB的面积和视频分量的类型(例如,亮度分量与色度分量)来得到TB的上下文编码的二进制位(context-codedbin,CCB)的最大数量。上下文编码的二进制位的最大数量等于Bozize*1.75。这里,TB_zosize指示系数归零后TB内的样点数。注意,对于CCB计数,coded_sub_block_flag(其为表示CG是否含有非零系数的标志)不被考虑。
系数归零是对变换块执行将位于变换块的特定区域中的系数强制设置为0的操作。例如,在当前的VVC中,64×64变换具有相关联的归零操作。因此,位于64×64变换块内左上角32×32区域之外的变换系数都被强制为0。实际上,在当前的VVC中,对于沿某个维度的尺寸超过32的任何变换块,都沿该维度执行系数归零操作以强制位于左上角32×32区域之外的系数为0。
在VVC的变换系数编解码中,变量remBinsPass1首先被设置为所允许的上下文编码的二进制位的最大数量(maximum number of context-coded bin,MCCB)。在编解码过程中,每次用信号表示上下文编码的二进制位时,该变量都会减一。当remBinsPass1大于或等于四时,首先通过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_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.残差编解码的语法
Figure BDA0004139820630000101
Figure BDA0004139820630000111
Figure BDA0004139820630000121
/>
Figure BDA0004139820630000131
/>
Figure BDA0004139820630000141
/>
Figure BDA0004139820630000151
/>
Figure BDA0004139820630000161
表2.残差编解码的语义
Figure BDA0004139820630000162
/>
Figure BDA0004139820630000171
/>
Figure BDA0004139820630000181
/>
Figure BDA0004139820630000191
表3.abs_remainder[]和dec_abs_level[]的Rice参数推导过程
Figure BDA0004139820630000192
/>
Figure BDA0004139820630000201
表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.用于变换跳过模式的残差编解码的语法
Figure BDA0004139820630000211
/>
Figure BDA0004139820630000221
/>
Figure BDA0004139820630000231
/>
Figure BDA0004139820630000241
/>
Figure BDA0004139820630000251
量化
在当前VVC中,最大量化参数(Quantization Parameter,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)未在比特流中明确用信号表示。而是,用于当前变换系数的量化器由按照编解码/重建顺序在当前变换系数之前的变换系数级别的奇偶性确定。
图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)。
针对以下缩放矩阵:16×16、32×32和64×64,DC值被单独进行编码。对于尺寸小于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进行编码的概率模型。基于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),ctxInc是如下得到的:
ctxInc=36+8*Max(0,QState-1)+
Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)
调色板模式
调色板模式背后的基本思想是CU中的样点由一小组具有代表性的颜色值表示。该组称为调色板。还可以通过用信号表示逃逸颜色来指示从调色板中排除的颜色值,逃逸颜色的三个颜色分量的by值直接用信号表示在比特流中。图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示出了垂直遍历扫描。
对于编解码调色板索引,使用基于线系数组(coefficient group,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的二进制码字是根据相邻残差样点的级别信息自适应地确定的。
此外,在对残差编解码或变换系数编解码相关的语法元素进行编解码时,概率模型的选择取决于相邻级别的级别信息,这需要附加逻辑和附加上下文模型。
在当前设计中,逃逸样点的二值化是通过调用三阶指数Golomb二值化过程得到的。其性能还有进一步提高的空间。
在当前VVC中,有两种不同的级别映射方案,并且分别应用于常规变换和变换跳过。每个级别映射方案都与不同的条件、映射函数和映射位置相关联。对于应用常规变换的块,在上下文编码的二进制位(CCB)数量超过限制后使用一种级别映射方案。用ZeroPos[n]表示的映射位置和用AbsLevel[xC][yC]表示的映射结果是如表2所指定的来得到的。对于应用变换跳过的块,在上下文编码的二进制位(CCB)数量超过限制之前使用另一种级别映射方案。用predCoeff表示的映射位置和用AbsLevel[xC][yC]表示的映射结果是如表5所指定的来得到。从标准化的角度来看,这种非统一的设计可能不是最优的。
对于HEVC中超过10比特的简档(profile),extended_precision_processing_flag等于1说明针对系数解析和逆变换处理使用扩展的动态范围。在当前VVC中,10比特以上的变换系数的残差编解码或变换跳过编解码据称是导致性能明显下降的原因。其性能还有进一步提高的空间。
提出的方法
在本公开中,提出了几种解决本节中提到的视频解码效率低的问题的方法。注意,以下方法可以单独使用,也可以联合使用。
根据本公开的第一方面,提出在残差编解码中使用固定的二进制码字集对某些语法元素(例如,abs_remainder)进行编解码。可以使用不同的方法来形成二进制码字。下面列出了一些示例性方法。
第一,使用与当前VVC中所使用的相同的用于确定abs_remainder的码字的程序,但总是采用选定的固定rice参数(例如,1、2或3)。
第二,定长二值化。
第三,截断Rice二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数Golomb二值化过程(EGk)。
第六,有限的k阶指数Golomb二值化。
根据本公开的第二方面,提出在变换系数编解码中使用固定的码字集对某些语法元素(例如,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阶指数Golomb二值化过程(EGk)。
第七,有限的k阶指数Golomb二值化。
根据本公开的第三方面,提出使用单个上下文对与残差编解码或系数编解码有关的语法元素(例如,abs_level_gtx_flag)进行编解码,并且可以移除基于相邻解码级别信息的上下文选择。
根据本公开的第四方面,提出在残差编解码中使用二进制码字的变量集对某些语法元素(例如abs_remainder)进行编解码,并且根据当前块的某些已编码的信息来确定对二进制码字集的选择,上述已编码的信息例如是与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如IBC模式或帧内或帧间)和/或条带类型(例如I条带、P条带或B条带)。可以使用不同的方法来得到二进制码字的变量集,下面列出了一些示例性方法。
第一,使用与当前VVC中所使用的相同的用于确定abs_remainder的码字的过程,但采用不同的rice参数。
第二,k阶指数Golomb二值化过程(EGk)。
第三,有限的k阶指数Golomb二值化。
表6.基于QP值的Rice参数确定
Figure BDA0004139820630000321
Figure BDA0004139820630000331
在第四方面中解释的相同方法也适用于变换高效编解码。根据本公开的第五方面,提出在变换系数编解码中使用二进制码字的变量集对某些语法元素(例如abs_remainder和dec_abs_level)进行编解码,并且根据当前块的某些已编码的信息来确定对二进制码字集的选择,上述已解码的信息例如是与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如IBC模式或帧内或帧间)和/或条带类型(例如I条带、P条带或B条带)。再次,可以使用不同的方法来得到二进制码字的变量集,下面列出了一些示例性方法。
第一,使用与当前VVC中所使用的相同的用于确定abs_remainder的码字的过程,但采用不同的rice参数。
第二,k阶指数Golomb二值化过程(EGk)。
第三,有限的k阶指数Golomb二值化。
在上述这些方法中,可以使用不同的rice参数来得到不同的二进制码字集。对于给定的残差样点块,所使用的rice参数是根据表示为QPCU的CU QP而不是相邻级别信息来确定的。一个具体示例如表6所示,其中,TH1至TH4是满足(TH1<TH2<TH3<TH4)的预定义阈值,并且K0至K4是预定义的rice参数。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前CU的QP值得到相同的rice参数,如表6所示。
根据本公开的第五方面,与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数集和/或阈值用信号表示到比特流中。当通过熵编解码器对语法元素进行编解码(例如,算术编解码)时,所确定的码字被用作二值化码字。
注意,参数集和/或阈值可以是与语法元素的码字确定相关联的所有参数和阈值的完整集合或子集。可以在视频比特流中的不同级别上用信号表示参数集和/或阈值。例如,可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集和/或图片头)、条带级别(例如,条带头)、编码树单元(CTU)级别或编码单元(CU)级别上用信号表示这些参数集和/或阈值。
在一个示例中,在条带头、图片头、图片参数集(picture parameter set,PPS)和/或序列参数集(sequence parameter set,SPS)中用信号表示用于确定在变换跳过残差编解码中对语法abs_remainder进行编解码的码字的rice参数。当CU被编码为变换跳过模式并且CU与上述条带头、图片头、PPS和/或SPS等相关联时,使用用信号表示的rice参数来确定用于对语法abs_remainder进行编解码的码字。
根据本公开的第六方面,与第一方面和第二方面所示的码字确定相关联的参数集和/或阈值用于变换系数编解码和/或变换跳过残差编解码的语法元素。并且可以根据当前块是否包含亮度残差/系数或色度残差/系数而使用不同的集合。当通过熵编解码器对语法元素进行编解码(例如,算术编解码)时,所确定的码字被用作二值化码字。
在一个示例中,与当前VVC中所使用的变换残差编解码相关联的abs_remainder的码字用于亮度块和色度块两者,但亮度块和色度块分别使用不同的固定rice参数。(例如,K1表示亮度块,K2表示色度块,其中,K1和K2为整数)
根据本公开的第七方面,与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数集和/或阈值用信号表示到比特流中。并且可以针对亮度块和色度块用信号表示不同的集合。当通过熵编解码器对语法元素进行编解码(例如,算术编解码)时,所确定的码字被用作二值化码字。
在上述方面中解释的相同方法也适用于调色板模式下的逃逸值编解码,例如,palette_escape_val。
根据本公开的第八方面,不同的k阶指数Golomb二值化可以用来得到用于在调色板模式下对逃逸值进行编解码的不同的二进制码字集。在一个示例中,对于给定的逃逸样点块,所使用的指数Golomb参数(即k的值)是根据块的QP值(表示为QPCU)确定的。可以在基于块的给定QP值得到参数k的值时使用表6所示的相同示例。虽然在该示例中列出了四个不同的阈值(从TH1至TH4),并且可以基于这些阈值和QPCU得到五个不同的k值(从K0至K4),但值得一提的是,阈值的数量只是出于说明的目的。在实践中,可以使用不同数量的阈值将整个QP值范围分区为不同数量的QP值分段,并且对于每个QP值分段,可以使用不同的k值来得到对应的二进制码字,以对在调色板模式下已编码块的逃逸值进行编解码。还值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,可以使用某些方程或查找表来得到相同的rice参数。
根据本公开的第九方面,与逃逸样点的语法元素的码字确定相关联的参数集和/或阈值用信号表示到比特流中。当通过熵编解码器对逃逸样点的语法元素进行编解码(例如,算术编解码)时,所确定的码字被用作二值化码字。
注意,参数集和/或阈值可以是与语法元素的码字确定相关联的所有参数和阈值的完整集合或子集。可以在视频比特流中的不同级别上用信号表示参数集和/或阈值。例如,可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集和/或图片头)、条带级别(例如,条带头)、编码树单元(CTU)级别或编码单元(CU)级别上用信号表示这些参数集和/或阈值。
在根据本方面的一个示例中,使用k阶指数Golomb二值化来确定在调色板模式下对palette_escape_val语法进行编解码的码字,并且k的值在比特流中用信号表示到解码器。k的值可以在不同级别上用信号表示,例如,其可以在条带头、图片头、PPS和/或SPS等中用信号表示。当CU被编码为调色板模式并且CU与上述条带头、图片头、PPS和/或SPS等相关联时,使用用信号表示的指数Golomb参数来确定用于对语法palett_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.解码过程
Figure BDA0004139820630000361
Figure BDA0004139820630000371
根据本公开的第十四方面,提出在使用Golomb-Rice码对abs_remainder/dec_abs_level的语法元素进行编解码时,使用较少的相邻位置来得到rice参数。在一个示例中,提出在对abs_remainder/dec_abs_level的语法元素进行编解码时,只使用2个相邻位置来得到rice参数。基于VVC草案的对应解码过程如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表8.解码过程
Figure BDA0004139820630000372
Figure BDA0004139820630000381
在另一个示例中,提出在对abs_remainder/dec_abs_level的语法元素进行编解码时,只使用一个相邻位置来得到rice参数。基于VVC草案的对应解码过程如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表9.解码过程
Figure BDA0004139820630000382
根据本公开的第十五方面,提出在使用Golomb-Rice码对abs_remainder/dec_abs_level的语法元素进行编解码时,使用不同的逻辑基于baseLevel的值来调整locSumAbs的值以推导rice参数。在一个示例中,以“(locSumAbs-baseLevel*5)*alpha+beta”的形式应用附加的缩放和偏移操作。当alpha的取值为1.5并且beta的取值为1时,基于VVC草案的对应解码过程如下所示。
表10.解码过程
Figure BDA0004139820630000391
根据本公开的第十六方面,提出使用Golomb-Rice码在abs_remainder/dec_abs_level的语法元素中移除用于得到rice参数的截取(clip)操作。根据本公开,VVC草案上的解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表11.解码过程
Figure BDA0004139820630000401
根据本公开,VVC草案中的解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表12.解码过程
Figure BDA0004139820630000411
根据本公开的第十七方面,提出在使用Golomb-Rice码对abs_remainder/dec_abs_level的语法元素进行编解码时,将locSumAbs的初始值从0更改为非零整数以得到rice参数。在一个示例中,初始值1被指定给locSumAbs,并且基于VVC草案的对应解码过程如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表13.解码过程
Figure BDA0004139820630000421
根据本公开的第十八方面,提出在使用Golomb-Rice码对abs_remainder/dec_abs_level的语法元素进行编解码时,使用相邻位置级别值中的最大值而不是其总和来得到rice参数。下文图示了基于VVC草案的对应解码过程的示例。
表14.解码过程
Figure BDA0004139820630000431
根据本公开的第十九方面,提出在使用Golomb-Rice码对abs_remainder/dec_abs_level的语法元素进行编解码时,基于相邻位置处的每个AbsLevel值的相对振幅和基本级别值来得到rice参数。在一个示例中,rice参数是基于相邻位置处大于基本级别的AbsLevel值的数量来得到的。基于VVC草案的对应解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表15.解码过程
Figure BDA0004139820630000441
在另一个示例中,rice参数是基于这样的相邻位置的(AbsLevel-baseLevel)值的和来得到的,这些相邻位置的AbsLevel值大于基本级别。基于VVC草案的对应解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表16.解码过程
Figure BDA0004139820630000451
根据本公开,VVC草案中的解码过程的一个示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表17.解码过程
Figure BDA0004139820630000452
/>
Figure BDA0004139820630000461
残差编解码中级别映射位置推导的简化
根据本公开的第二十方面,提出将QState从ZeroPos[n]的推导中移除,使得仅从cRiceParam得到ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表18.解码过程
Figure BDA0004139820630000462
/>
Figure BDA0004139820630000471
根据本公开的第二十一方面,提出基于locSumAbs的值来得到ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表19.解码过程
Figure BDA0004139820630000472
/>
Figure BDA0004139820630000481
根据本公开的第二十二方面,提出基于相邻位置的AbsLevel的值来得到ZeroPos[n]。在一个示例中,ZeroPos[n]是基于AbsLevel[xC+1][yC]和AbsLevel[xC][yC+1]中的最大值来得到的。基于VVC草案的对应解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表20.解码过程
Figure BDA0004139820630000482
/>
Figure BDA0004139820630000491
根据本公开的第二十三方面,提出基于相邻位置的所有AbsLevel值的最大值来得到cRiceParam和ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,其中,删除线字体示出了从解码过程中删除或移除的步骤或元素。
表21.解码过程
Figure BDA0004139820630000492
/>
Figure BDA0004139820630000501
在上述方面中解释的方法也适用于得到变换跳过模式的残差编解码中的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草案的对应解码过程的示例。对VVC草案的更改在表22中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前CU/序列的比特深度(BitDepth)值中得到相同的rice参数。
表22.解码过程
Figure BDA0004139820630000511
/>
Figure BDA0004139820630000521
在另一个示例中,当比特深度大于或等于预定义阈值(例如,10、11、12、13、14、15或16)时,Rice参数cRiceParam是如下得到的:cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+c,其中,a、b和c是正数,例如1。基于VVC草案的对应解码过程如下所示。对VVC草案的更改在表23中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前CU/序列的比特深度值中得到相同的rice参数。
表23.解码过程
Figure BDA0004139820630000531
/>
Figure BDA0004139820630000541
超过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阶指数Golomb二值化过程(EGk)。
第六,有限的k阶指数Golomb二值化。
表24.基于比特深度的Rice参数确定
Figure BDA0004139820630000551
在一个示例中,当新标志(例如,extended_precision_processing_flag)等于1时,Rice参数cRiceParam固定为n,其中,n是正数(例如,2、3、4、5、6、7或8)。固定值在不同的条件下可以不同。下文图示了基于VVC草案的对应解码过程的示例。对VVC草案的更改在表25中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。
表25.解码过程
Figure BDA0004139820630000561
在另一个示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时,在对abs_remainder/dec_abs_level的语法元素进行编解码时对rice参数只使用一个固定值。基于VVC草案的对应解码过程如下所示。对VVC草案的更改在表26中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。
表26.解码过程
Figure BDA0004139820630000562
在又另一个示例中,当比特深度大于或等于预定义阈值(例如,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.解码过程
Figure BDA0004139820630000571
在又另一个示例中,提出当比特深度大于预定阈值(例如,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.解码过程
Figure BDA0004139820630000572
Figure BDA0004139820630000581
残差编解码中的rice参数推导
根据本公开的第二十六方面,提出在残差编解码中使用各种rice参数推导方法来对某些语法元素(例如,abs_remainder/dec_abs_level)进行编解码,并且根据当前块的某些已编码信息(例如与TB/CB和/或条带/简档相关联的量化参数或编解码比特深度)和/或根据与TB/CB/条带/图片/序列级别相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来得到rice参数,下面列出了一些示例性方法。
第一,提出使用计数器来得到rice参数。计数器是根据已编解码的系数的值和当前块的某些已编码信息(例如,部件ID)确定的。在一个具体示例中,rice参数riceParameter=计数器的计数counter/a,其中,a是正数,例如4,并且其维护2个计数器(按亮度/色度分割)。这些计数器在每个条带开始时重置为0。一旦编解码,如果这是在子TU中编解码的第一个系数,则计数器将更新如下:
if(coeffValue>=(3<<rice))counter++
if(((coeffValue<<1)<(1<<riceParameter))&&(counter>0))counter--;
第二,提出在VVC中的rice参数推导中增加移位操作。移位(shift)是根据已编码系数的值来确定的。基于VVC草案的对应解码过程的示例如下所示,并且根据方法1的计数器来确定移位。对VVC草案的更改在表29中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。
表29.解码过程
Figure BDA0004139820630000582
/>
Figure BDA0004139820630000591
第三,提出在VVC中的rice参数推导中增加移位操作。移位是根据当前块的某些已编码信息来确定的,例如,与TB/CB和/或条带简档(例如,14比特简档或16比特简档)相关联的编解码比特深度。基于VVC草案的对应解码过程的示例如下所示,并且根据方法1的计数器来确定移位。对VVC草案的更改在表30中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。
表30.解码过程
Figure BDA0004139820630000592
/>
Figure BDA0004139820630000601
变换跳过的残差编解码
根据本公开的第二十七方面,提出在变换跳过残差编解码中使用二进制码字的变量集对某些语法元素(例如,abs_remainder)进行编解码,并且根据当前块的某些已编码信息(例如与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),所述固定值在不同条件下可以不同。一个具体示例如表7所示,其中,TH1至TH4是满足(TH1<TH2<TH3<TH4)的预定义阈值,并且K0至K4是预定义的rice参数。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前CU/序列的比特深度值中得到相同的rice参数,如表7所示。
第二,定长二值化。
第三,截断Rice二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数Golomb二值化过程(EGk)。
第六,有限的k阶指数Golomb二值化。
基于VVC草案的对应解码过程的示例如下所示,对VVC草案的更改在表31中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表来得到相同的rice参数。
表31.解码过程
Figure BDA0004139820630000611
/>
Figure BDA0004139820630000621
在另一个示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时,在对abs_remainder的语法元素进行编解码时对rice参数只使用一个固定值。基于VVC草案的对应解码过程如下所示。对VVC草案的更改在表32中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。
表32.解码过程
Figure BDA0004139820630000622
/>
Figure BDA0004139820630000631
在又另一个示例中,当新标志(例如,extended_precision_processing_flag)等于1时,Rice参数cRiceParam固定为n,其中,n是正数(例如,2、3、4、5、6、7或8)。固定值在不同条件下可以不同。下文图示了基于VVC草案的对应解码过程的示例。对VVC草案的更改在表33中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。
表33.解码过程
Figure BDA0004139820630000632
在又另一个示例中,当比特深度大于或等于预定义阈值(例如,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.解码过程
Figure BDA0004139820630000641
在又另一个示例中,在条带头中用信号表示一个控制标志,以指示变换跳过块的Rice参数的信号传输是启用还是禁用。当控制标志用信号表示为启用时,为每个变换跳过条带进一步用信号表示一个语法元素,以指示该条带的Rice参数。当控制标志用信号表示为禁用(例如设置为等于“0”)时,在较低的级别上没有用信号表示进一步的语法元素来指示变换跳过条带的Rice参数,而是对所有变换跳过条带使用默认的Rice参数(例如1)。基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义值(例如0、1、2)。对VVC草案的更改在表35中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。值得注意的是,sh_ts_residual_coding_rice_index可以用不同的方式进行编解码和/或可能有最大值。例如,使用n位的无符号整数的u(n)或使用n位(从左到右)以左位先写的固定模式位串的f(n),也可以用于对相同的语法元素进行编码/解码。
表35.条带头语法
Figure BDA0004139820630000651
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_flag。当sh_ts_residual_coding_rice_flag不存在时,推断sh_ts_residual_coding_rice_flag的值等于0。
sh_ts_residual_coding_rice_index指定用于residual_ts_coding()语法结构的rice参数。
表36.解码过程
Figure BDA0004139820630000652
Figure BDA0004139820630000661
图16示出了用于视频解码的方法。例如,所述方法可以应用于解码器。
在步骤1610中,解码器可以接收视频比特流。所述视频比特流可以包括已编码视频信息和用于对已编码视频信息进行解码的信息。
在步骤1612中,解码器可以接收条带头级别的控制标志。所述控制标志可以用信号表示是否为变换跳过条带启用rice参数。例如,控制标志可以用于对已编码视频信息进行解码,并且rice参数可以用于对abs_remainder和dec_abs_level的语法进行解码。
在步骤1614中,解码器可以接收条带头级别的至少一个语法元素。所述至少一个语法元素可以针对变换跳过条带用信号表示并且指示rice参数。例如,可以针对每个变换跳过条带用信号表示语法元素,以指示该条带的Rice参数。在另一个示例中,当在较低的级别上没有用信号表示语法元素来指示变换跳过条带的Rice参数时,对所有变换跳过条带使用默认的Rice参数。
在步骤1616中,解码器可以基于控制标志和至少一个语法元素对视频比特流进行熵解码。例如,解码器可使用控制标志和至少一个语法元素来得到经量化的系数级别和预测相关信息以对已编码视频信息进行解码。
变换/变换跳过块的量化索引的熵编码可以称为变换/变换跳过系数编解码。
在一个或多个实施例中,编码器可以确定残差编解码禁用标志等于0。编码器还可以用信号表示残差编解码rice标志。所述至少一个语法元素可以包括残差编解码rice标志。编码器还可以确定残差编解码rice标志等于1。编码器可以进一步用信号表示残差编解码rice索引标志。所述至少一个语法元素包括残差编解码rice索引标志。
在一个或多个实施例中,解码器可以确定残差编解码禁用标志等于0。解码器可以接收残差编解码rice标志。所述至少一个语法元素可以包括残差编解码rice标志。解码器还可以确定残差编解码rice标志等于1。解码器可以进一步接收残差编解码rice索引标志。所述至少一个语法元素包括残差编解码rice索引标志。
在又另一个示例中,在序列参数集中(或在序列参数集范围扩展语法中)用信号表示一个控制标志,以指示变换跳过块的Rice参数的信号传输是启用还是禁用。当控制标志用信号表示为启用时,针对每个变换跳过条带进一步用信号表示一个语法元素,以指示该条带的Rice参数。当控制标志用信号表示为禁用(例如设置为等于“0”)时,在较低的级别上没有用信号表示进一步的语法元素来指示变换跳过条带的Rice参数,而是对所有变换跳过条带使用默认的Rice参数(例如1)。基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义值(例如0、1、2)。对VVC草案的更改在表37中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。值得注意的是,sh_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,使用n位的无符号整数的u(n)或使用n位(从左到右)以左位先写的固定模式位串的f(n),也可以用于对相同的语法元素进行编码/解码。
表37.序列参数集RBSP语法
Figure BDA0004139820630000671
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.条带头语法
Figure BDA0004139820630000672
Figure BDA0004139820630000681
sh_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。
表39.解码过程
Figure BDA0004139820630000682
在又另一个示例中,针对每个变换跳过条带用信号表示一个语法元素,以指示该条带的Rice参数。下文图示了基于VVC草案的对应解码过程的示例。对VVC草案的更改在表40中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。值得注意的是,sh_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,使用n位的无符号整数的u(n)或使用n位(从左到右)以左位先写的固定模式位串的f(n),也可以用于对相同的语法元素进行编码/解码。
表40.条带头语法
Figure BDA0004139820630000683
Figure BDA0004139820630000691
sh_ts_residual_coding_rice_idx指定用于residual_ts_coding()语法结构的rice参数。当sh_ts_residual_coding_rice_idx不存在时,推断sh_ts_residual_coding_rice_idx的值等于0。
表41.解码过程
Figure BDA0004139820630000692
图17示出了用于视频解码的方法。例如,所述方法可以应用于解码器。
在步骤1710中,响应于确定残差编解码禁用标志等于0,解码器可以接收残差编解码rice标志。所述至少一个语法元素包括残差编解码rice标志。
在步骤1712中,响应于确定残差编解码rice标志等于1,解码器可以接收残差编解码rice索引标志。所述至少一个语法元素包括残差编解码rice索引标志。
在又另一个示例中,在图片参数集范围扩展语法中用信号表示一个控制标志,以指示变换跳过块的Rice参数的信号传输是启用还是禁用。当控制标志用信号表示为启用时,进一步用信号表示一个语法元素以指示该图片的Rice参数。当控制标志用信号表示为禁用(例如设置为等于“0”)时,在较低的级别上没有用信号表示进一步的语法元素来指示变换跳过条带的Rice参数,而是对所有变换跳过条带使用默认的Rice参数(例如1)。基于VVC草案的对应解码过程的示例如下所示,其中,TH是预定义值(例如0、1、2)。对VVC草案的更改在表42中用粗体和斜体字体示出,并且删除线字体示出了从解码过程中删除或移除的步骤或元素。值得注意的是,pps_ts_residual_coding_rice_idx可以用不同的方式进行编解码和/或可能有最大值。例如,使用n位的无符号整数的u(n)或使用n位(从左到右)以左位先写的固定模式位串的f(n),也可以用于对相同的语法元素进行编码/解码。
表42.图片参数集范围扩展语法
Figure BDA0004139820630000701
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.解码过程
Figure BDA0004139820630000702
Figure BDA0004139820630000711
可以使用包括一个或多个电路的装置来实施上述方法,该一个或多个电路包括专用集成电路(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 (10)

1.一种用于视频解码的方法,包括:
由解码器接收视频比特流;
由所述解码器接收条带头级别的控制标志,其中,所述控制标志用信号表示是否为变换跳过条带启用rice参数;
由所述解码器接收所述条带头级别的至少一个语法元素,其中,所述至少一个语法元素是针对所述变换跳过条带用信号表示的并且指示所述rice参数;以及
由所述解码器基于所述控制标志和所述至少一个语法元素对所述视频比特流进行熵解码。
2.如权利要求1所述的方法,其中,由所述解码器接收所述条带头级别的所述至少一个语法元素包括:
由所述解码器通过以下方式接收所述条带头级别的所述至少一个语法元素:
响应于确定残差编解码禁用标志等于0,接收残差编解码rice标志,其中,所述至少一个语法元素包括所述残差编解码rice标志;以及
响应于确定所述残差编解码rice标志等于1,接收残差编解码rice索引标志,其中,所述至少一个语法元素包括所述残差编解码rice索引标志。
3.如权利要求2所述的方法,其中,当所述残差编解码rice标志等于1时,所述残差编解码rice标志指示当前条带中存在所述残差编解码rice索引标志。
4.如权利要求2所述的方法,其中,当所述残差编解码rice标志等于0时,所述残差编解码rice标志指示当前条带中不存在所述残差编解码rice索引标志。
5.如权利要求4所述的方法,进一步包括:响应于确定所述残差编解码rice标志不存在,推断所述残差编解码rice标志的值等于0。
6.如权利要求2所述的方法,进一步包括:响应于确定所述残差编解码rice标志等于1、变换跳过标志等于1并且所述残差编解码禁用标志等于0,将所述rice参数设置为等于所述残差编解码rice索引加预定义阈值。
7.如权利要求1所述的方法,其中,由所述解码器接收所述条带头级别的所述至少一个语法元素包括:
由所述解码器通过以下方式接收所述条带头级别的所述至少一个语法元素:
响应于确定残差编解码禁用标志等于0并且残差编解码rice启用标志等于1,接收残差编解码rice索引标志,其中,所述至少一个语法元素包括所述残差编解码rice索引标志。
8.如权利要求7所述的方法,进一步包括:响应于确定变换跳过标志等于1并且所述残差编解码禁用标志等于0,将所述rice参数设置为等于所述残差编解码rice索引加1。
9.一种计算设备,包括:
一个或多个处理器;以及
非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有能够由所述一个或多个处理器执行的指令,其中,所述一个或多个处理器被配置为执行如权利要求1至8中任一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储用于由具有一个或多个处理器的计算设备执行的多个程序,其中,所述多个程序在由所述一个或多个处理器执行时使所述计算设备执行如权利要求1至8中任一项所述的方法。
CN202180065041.7A 2020-09-23 2021-09-23 用于视频编解码的残差和系数编解码 Pending CN116420353A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310860340.0A CN116668695B (zh) 2020-09-23 2021-09-23 用于视频编码的方法、计算设备和存储介质

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063082452P 2020-09-23 2020-09-23
US63/082,452 2020-09-23
US202063085966P 2020-09-30 2020-09-30
US63/085,966 2020-09-30
PCT/US2021/051700 WO2022066869A1 (en) 2020-09-23 2021-09-23 Residual and coefficients coding for video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310860340.0A Division CN116668695B (zh) 2020-09-23 2021-09-23 用于视频编码的方法、计算设备和存储介质

Publications (1)

Publication Number Publication Date
CN116420353A true CN116420353A (zh) 2023-07-11

Family

ID=80846906

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310860340.0A Active CN116668695B (zh) 2020-09-23 2021-09-23 用于视频编码的方法、计算设备和存储介质
CN202180065041.7A Pending CN116420353A (zh) 2020-09-23 2021-09-23 用于视频编解码的残差和系数编解码

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310860340.0A Active CN116668695B (zh) 2020-09-23 2021-09-23 用于视频编码的方法、计算设备和存储介质

Country Status (6)

Country Link
US (1) US20230291936A1 (zh)
EP (1) EP4205400A4 (zh)
KR (1) KR20230062630A (zh)
CN (2) CN116668695B (zh)
MX (1) MX2023003333A (zh)
WO (1) WO2022066869A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4325864A1 (en) * 2021-04-12 2024-02-21 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Coefficient encoding/decoding method, encoder, decoder, and computer storage medium
US20230097659A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for constraint flag signaling for range extension with rice coding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101818102B1 (ko) * 2012-04-13 2018-01-12 캐논 가부시끼가이샤 인코딩된 비디오 데이터의 변환 유닛의 서브세트를 인코딩 및 디코딩하는 방법, 장치 및 시스템
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
US10110931B2 (en) * 2016-04-27 2018-10-23 Aspeed Technology Inc. Variable length coding and decoding methods and devices for grouped pixels
CN116746148A (zh) * 2020-11-18 2023-09-12 北京达佳互联信息技术有限公司 用于视频编解码的残差和系数编解码

Also Published As

Publication number Publication date
MX2023003333A (es) 2023-03-27
KR20230062630A (ko) 2023-05-09
EP4205400A4 (en) 2024-01-17
WO2022066869A1 (en) 2022-03-31
CN116668695B (zh) 2024-03-26
CN116668695A (zh) 2023-08-29
US20230291936A1 (en) 2023-09-14
EP4205400A1 (en) 2023-07-05

Similar Documents

Publication Publication Date Title
CN112438050B (zh) 使用二次变换的视频信号处理方法及装置
TWI753356B (zh) 用於編碼或解碼轉換塊的方法與裝置
US20220353503A1 (en) Image processing method, and device for same
US20230291936A1 (en) Residual and coefficients coding for video coding
US20240040129A1 (en) Residual and coefficients coding for video coding
CN110999295A (zh) 边界强制分区的改进
US20230291906A1 (en) Residual and coefficients coding for video coding
JP2024506156A (ja) ビデオ符号化のための残差および係数の符号化
CN114175653B (zh) 用于视频编解码中的无损编解码模式的方法和装置
WO2022217417A1 (zh) 编解码方法、编码器、解码器以及存储介质
CN116965033A (zh) 用于视频编解码的残差和系数编解码
CN117256151A (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