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

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

Info

Publication number
CN116965033A
CN116965033A CN202280019867.4A CN202280019867A CN116965033A CN 116965033 A CN116965033 A CN 116965033A CN 202280019867 A CN202280019867 A CN 202280019867A CN 116965033 A CN116965033 A CN 116965033A
Authority
CN
China
Prior art keywords
video
coding
residual
rice parameter
rice
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
CN202280019867.4A
Other languages
English (en)
Inventor
朱弘正
修晓宇
陈漪纹
陈伟
郭哲瑋
王祥林
于冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN116965033A publication Critical patent/CN116965033A/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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/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/93Run-length coding

Landscapes

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

Abstract

提供了用于利用低延迟变换跳过残差编解码(TSRC)方法进行视频编解码的方法、装置和非暂态计算机可读存储介质。所述TSRC方法包括:由编码器基于视频的当前条带的编码信息推导莱斯参数。编码信息可包括以下参数中的一和或多个:与视频的条带、图片或序列相关联的量化参数或编码比特深度;或与视频的条带、图片或序列相关联的哈希率。

Description

用于视频编解码的残差和系数编解码
相关申请的交叉引用
本申请基于并要求于2021年03月29日提交的申请号为63/167,621的临时申请的优先权,其全部内容通过引用并入本文用于所有目的。
技术领域
本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码的残差和系数编解码的改进和简化。
背景技术
各种视频编解码技术可以用于压缩视频数据。视频编解码是根据一个或多个视频编解码标准来执行的。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型(JEM)、高效视频编解码(H.265/HEVC)、高级视频编解码(H.264/AVC)、运动图片专家组(MPEG)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等),预测方法利用了视频图像或序列中存在的冗余。视频编解码技术的重要目标在于将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的下降。
发明内容
本公开的示例提供了用于视频编解码的方法和装置。
根据本公开的第一方面,提供了一种用于视频编解码的方法。所述方法可包括:由解码器接收序列参数集(SPS)范围扩展标志,SPS范围扩展标志基于SPS范围扩展标志的值指示条带头(SH)原始字节序列有效载荷(RBSP)语法结构中是否存在语法结构sps_range_extension。
根据本公开的第二方面,提供一种用于视频编解码的方法。所述方法可包括:由解码器接收序列参数集(SPS)对准启用标志,SPS对准启用标志基于SPS对准启用标志的值指示在对语法元素sb_coded_flag、abs_remainder、dec_abs_level和coeff_sign_flagn进行旁路解码之前是否对准索引ivlCurrRange。
根据本公开的第三方面,提供了一种用于视频编解码的方法。所述方法可包括:由解码器接收扩展精度处理标志,扩展精度处理标志基于扩展精度处理标志的值指示针对变换系数且在变换处理期间是否采用扩展动态范围。
根据本公开的第四方面,提供了一种用于视频编解码的方法。所述方法可包括:由解码器接收持续莱斯自适应启用标志,持续莱斯自适应启用标志基于持续莱斯自适应启用标志的值指示用于abs_remainder和dec_abs_level的二值化的莱斯参数推导是否在每个子块开始处采用从先前子块累积的模式相关统计进行初始化。
将被理解,上面的总体描述和下面的详细描述仅是示例性和说明性的,并不旨在限制本公开。
附图说明
附图被并入本说明书中并构成本说明书的一部分,附图示出了与本公开一致的示例并且与描述一起用于解释本公开的原理。
图1是根据本公开的示例的编码器的框图。
图2是根据本公开的示例的解码器的框图。
图3A是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3B是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3C是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3D是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3E是说明根据本公开的示例的多类型树结构中的块分割的示图。
图4是根据本公开的示例的具有18乘12个亮度CTU的图片的示图。
图5是根据本公开的示例的具有18乘12个亮度CTU的图片的图示。
图6A是根据本公开的示例的VTM中的不允许的三元树(TT)和二元树(BT)分割的示例的图示。
图6B是根据本公开的示例的VTM中的不允许的TT和BT分割的示例的图示。
图6C是根据本公开的示例的VTM中的不允许的TT和BT分割的示例的图示。
图6D是根据本公开的示例的VTM中的不允许的TT和BT分割的示例的图示。
图6E是根据本公开的示例的VTM中的不允许的TT和BT分割的示例的图示。
图6F是根据本公开的示例的VTM中的不允许的TT和BT分割的示例的图示。
图6G是根据本公开的示例的VTM中的不允许的TT和BT分割的示例的图示。
图6H是根据本公开的示例的VTM中的不允许的TT和BT分割的示例的图示。
图7是根据本公开的示例的用于变换块的残差编解码结构的图示。
图8是根据本公开的示例的用于变换跳过块的残差编解码结构的图示。
图9是根据本公开的示例的两个标量量化器的图示。
图10A是根据本公开的示例的状态转换的图示。
图10B是根据本公开的示例的量化器选择的图示。
图11是根据本公开的用于选择概率模型的模板的图示。
图12是根据本公开的在调色板模式下被编码的块的示例的图示。
图13是根据本公开的使用调色板预测因子用信号发送调色板条目的图示。
图14A是根据本公开的水平遍历扫描的图示。
图14B是根据本公开的垂直遍历扫描的图示。
图15A是根据本公开的针对调色板的基于子块的索引图扫描的图示。
图15B是根据本公开的针对调色板的基于子块的索引图扫描的图示。
图16是根据本公开的示例的用于对视频信号进行编码的方法。
图17是根据本公开的示例的用于对视频信号进行编码的方法。
图18是示出根据本公开的示例的与用户接口耦接的计算环境的示图。
图19示出根据本公开的示例的用于视频编解码的方法。
图20示出根据本公开的示例的用于视频编解码的方法。
图21示出根据本公开的示例的用于视频编解码的方法。
图22示出根据本公开的示例的用于视频编解码的方法。
图23是示出根据本公开的示例的用于对视频块进行编码和解码的示例性系统的框图。
图24是示出根据本公开的示例的示例性视频编码器的框图。
图25是示出根据本公开的示例的示例性视频解码器的框图。
图26示出根据本公开的示例的低延迟变换跳过残差编解码(TSRC)方法。
具体实施方式
现在将详细参照示例实施例,其示例在附图中示出。以下描述参考附图,其中不同附图中的相同标号表示相同或相似的元件,除非另有表示。在示例实施例的以下描述中阐述的实现方式不表示与本公开一致的所有实现方式。相反,它们仅是与如所附权利要求中所记载的与本公开相关的方面一致的装置和方法的示例。
本公开中使用的术语仅用于描述特定实施例的目的,并且不旨在限制本公开。如在本公开和所附权利要求中所使用的,单数形式“一种”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。还应当理解,本文使用的术语“和/或”旨在表示和包括一个或多个相关联的所列项目的任何或所有可能的组合。
应当理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是所述信息不应受这些术语的限制。这些术语仅用于将一类信息与另一类信息区分开。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,根据上下文,术语“如果”可以被理解为意指“当......时”或“一经......”或“响应于判断”。
HEVC标准的第一版本在2013年10月完成,与前一代视频编解码标准H.264/MPEGAVC相比,HEVC标准的第一版本提供大约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中,视频帧被分割为多个视频块以进行处理。对于每个给定视频块,基于帧间预测方法或帧内预测方法来形成预测。
预测残差,表示当前视频块(视频输入110的一部分)与其预测因子(块预测因子140的一部分)之间的差,从加法器128被发送到变换130。然后变换系数从变换130被发送到量化132以用于熵减少。然后量化的系数被馈送到熵编码138以生成压缩的视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142(诸如视频块分割信息、运动矢量(MV)、参考图片索引和帧内预测模式)也通过熵编码138被馈送并保存到压缩的比特流144中。压缩的比特流144包括视频比特流。
在编码器100中,还需要解码器相关电路以重建用于预测目的的像素。首先,通过反量化134和逆变换136重建预测残差。该重建的预测残差与块预测因子140组合,以生成用于当前视频块的未经滤波的重建像素。
空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编码的相邻块的样点(其被称为参考样点)的像素,来预测当前视频块。
时间预测(也被称为“帧间预测”)使用来自已经编码的视频图片的重建像素,来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。用于给定编码单元(CU)或编码块的时间预测信号通常由一个或多个MV来用信号表示,该一个或多个MV指示当前CU与其时间参考之间的运动量和方向。此外,如果支持多个参考图片,则额外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储库中的哪个参考图片。
运动估计114接收视频输入110和来自图片缓冲器120的信号,并且将运动估计信号输出到运动补偿112。运动补偿112接收视频输入110、来自图片缓冲器120的信号、以及来自运动估计114的运动估计信号,并且将运动补偿信号输出到帧内/帧间模式决策116。
在执行空间和/或时间预测之后,编码器100中的帧内/帧间模式决策116例如基于率失真优化方法来选择最佳预测模式。然后从当前视频块中减去块预测因子140,并且使用变换130和量化132对得到的预测残差进行去相关。得到的量化的残差系数由反量化134进行反量化并且由逆变换136进行逆变换以形成重建的残差,然后将该重建的残差加回到预测块以形成CU的重建信号。在重建的CU被放入图片缓冲器120的参考图片存储库中并用于对未来的视频块进行编解码之前,可以对重建的CU进一步应用环路滤波122,诸如去块滤波器、样点自适应偏移(SAO)、和/或自适应环路滤波器(ALF)。为了形成输出视频比特流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中的多分割单元类型的概念被去除,也即,在VVC中不再区分CU、预测单元(PU)和变换单元(TU);相反,每个CU总是用作用于预测和变换两者的基础单元,而无需进一步的分割。在多类型树结构中,一个CTU首先通过四元树结构被分割。然后,每个四元树叶节点可以通过二元和三元树结构被进一步分割。如图3A、图3B、图3C、图3D和图3E所示,存在五种拆分类型,四元分割、水平二元分割、垂直二元分割、水平三元分割和垂直三元分割。
图3A示出了说明根据本公开的多类型树结构中的块四元分割的示图。
图3B示出了说明根据本公开的多类型树结构中的块垂直二元分割的示图。
图3C示出了说明根据本公开的多类型树结构中的块水平二元分割的示图。
图3D示出了说明根据本公开的多类型树结构中的块垂直三元分割的示图。
图3E示出了说明根据本公开的多类型树结构中的块水平三元分割的示图。
在图1中,空间预测和/或时间预测可以被执行。空间预测(或“帧内预测”)使用来自相同视频图片/条带中的已经编码的相邻块的样点(其被称为参考样点)的像素,来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也被称为“帧间预测”或“经运动补偿的预测”)使用来自已经编码的视频图片的重建像素,来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。用于给定CU的时间预测信号通常通过一个或多个运动矢量(MV)来用信号表示,该一个或多个运动矢量指示当前CU与其时间参考之间的运动量和方向。此外,如果支持多个参考图片,则额外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储库中的哪个参考图片。在空间和/或时间预测之后,编码器中的模式决策块例如基于率失真优化方法来选择最佳预测模式。然后从当前视频块中减去预测块,并且使用变换对预测残差进行去相关并进行量化。对量化的残差系数进行反量化和逆变换以形成重建的残差,然后将重建的残差加回到预测块以形成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的基础帧内预测方案相同,除了若干模块被进一步扩展和/或改进之外,例如帧内子分割(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中的基于高频归零的大块尺寸变换
在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的128×N CU(即,宽度等于128且高度小于128),不允许水平BT。
对于N≤64的N×128CU(即,高度等于128且宽度小于128),不允许垂直BT。
图6A、图6B、图6C、图6D、图6E、图6F、图6G和图6H示出了VTM中不允许的TT分割和BT分割的示例。
VVC中的变换系数编解码
VVC中的变换系数编解码在使用非重叠系数组(也称为CG或子块)方面类似于HEVC。然而,它们之间也存在一些差异。在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内的样点数量。注意,作为指示CG是否包含非零系数的标志的coded_sub_block_flag不被考虑用于CCB计数。
系数归零是对变换块执行的用于强制位于变换块的特定区域中的系数为0的操作。例如,在当前VVC中,64×64变换具有相关联的归零操作。因此,位于64×64变换块内部的在左上方32×32区域外部的变换系数全部被强制为0。实际上,在当前VVC中,对于沿特定维度的尺寸超过32的任何变换块,沿该维度执行系数归零操作,以强制位于左上方32×32区域之外的系数为0。
在VVC中的变换系数编解码中,首先将变量remBinsPass1设置为所允许的经上下文编码的二进制位的最大数量(MCCB)。在编码过程中,每当经上下文编码的二进制位被用信号发送时,该变量减少一。当remBinsPass1大于或等于4时,首先通过语法sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag用信号发送系数,所有这些语法在第一通道中使用经上下文编码的二进制位。在第二通道中使用哥伦布莱斯(Golomb-rice)编码和旁路编码(bypass-coded)的二进制位利用语法元素abs_remainder对系数的等级信息的其余部分进行编码。当在第一通道中进行编码时remBinsPass1变得小于4时,当前系数在第一通道中不被编码,而是在第二通道中使用哥伦布莱斯编码和旁路编码的二进制位利用语法元素dec_abs_level被直接编码。针对dec_abs_level[]的莱斯参数推导过程如表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示出了用于变换块的残差编解码结构的图示。
统一(相同)的莱斯参数(RicePara)推导被用于用信号发送语法abs_remainder和dec_abs_level。唯一的区别是基础等级baseLevel被设置为4和0以分别对abs_remainder和dec_abs_level进行编解码。莱斯参数不仅基于局部模板中的相邻五个变换系数的绝对等级的总和而且还基于对应的基础等级被确定,如下:
RicePara=RiceParTable[max(min(31,sumAbs-5×baselevel),0)]
当前VVC草案规范中的残差编解码的语法和相关联的语义分别在表1和表2中示出。在本公开的附录部分中示出了如何阅读表1,这也可以在VVC规范中找到。
表1残差编解码的语法
/>
/>
/>
/>
表2残差编解码的语义
/>
/>
表3针对abs_remainder[]和dec_abs_level[]的莱斯参数推导过程
表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个标志;
用于余数二值化的修改的莱斯参数推导
基于左侧和上方相邻系数值确定针对符号标志的上下文建模,并且在sig_coeff_flag之后对符号标志进行解析以将所有经上下文编码的二进制位保持在一起;
如图8所示,语法元素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag在第一通道中以交错方式逐个残差样点地被编码,然后abs_level_gtx_flag在第二通道中按照位平面被编码,并且abs_remainder在第三通道中被编码。
·通道1:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag
·通道2:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag
·通道3:abs_remainder
图8示出了用于变换跳过块的残差编解码结构的图示。
当前VVC草案规范中的用于变换跳过模式的残差编解码的语法和相关联的语义分别在表5和表2中示出。在本公开的附录部分中示出了如何阅读表5,这也可以在VVC规范中找到。
表5用于变换跳过模式的残差编解码的语法
/>
/>
/>
量化
在当前VVC中,最大QP值从51扩展到63,并且初始QP的信令相应地被改变。当对slice_qp_delta的非零值进行编码时,可以在条带段层修改SliceQpY的初始值。对于变换跳过块,最小允许的量化参数(QP)被定义为4,这是因为当QP等于4时,量化步长变为1。
另外,相同HEVC标量量化与被称为依赖标量量化的新概念一起使用。依赖标量量化是指一种方法,其中针对变换系数的可容许重建值的集合取决于按重建顺序在当前变换系数等级之前的变换系数等级的值。该方法的主要效果是,与HEVC中使用的常规独立标量量化相比,可容许重建矢量在N维矢量空间中被更密集地打包(N表示变换块中的变换系数的数量)。这表示,对于每N维单位体积的可容许重建矢量的给定平均数量,输入矢量与最接近的重建矢量之间的平均失真被减小。依赖标量量化的方法通过以下步骤实现:(a)定义具有不同重建等级的两个标量量化器,以及(b)定义用于在两个标量量化器之间切换的过程。
所使用的两个标量量化器(由Q0和Q1表示)在图9中示出。可用重建等级的位置由量化步长Δ唯一地指定。在比特流中不显式地用信号发送所使用的标量量化器(Q0或Q1)。相反,由按编码/重建顺序在当前变换系数之前的变换系数等级的奇偶性来确定用于当前变换系数的量化器。
图9示出了在所提出的依赖量化的方法中使用的两个标量量化器的图示。
如图10A和图10B所示,两个标量量化器(Q0和Q1)之间的切换经由具有四个量化器状态(QState)的状态机来实现。QState可以采用四个不同的值:0、1、2、3。它由按编码/重建顺序在当前变换系数之前的变换系数等级的奇偶性唯一地确定。在用于变换块的反量化开始时,状态被设置为等于0。变换系数按扫描顺序(即,按它们被熵解码的相同顺序)被重建。在重建当前变换系数之后,如图10所示更新状态,其中k表示变换系数等级的值。
图10A示出了说明所提出的依赖量化的状态转换的转换图。
图10B示出了说明用于所提出的依赖量化的量化器选择的表。
还支持用信号发送默认缩放矩阵和用户定义的缩放矩阵。默认模式缩放矩阵都是平的,其中对于所有TB尺寸,元素等于16。IBC和帧内编码模式当前共享相同的缩放矩阵。因此,对于用户定义的矩阵的情况,MatrixType和MatrixType_DC的数量更新如下:
MatrixType:30=2(2用于帧内和IBC/帧间)×3(Y/Cb/Cr分量)×5(正方形TB尺寸:对于亮度从4×4到64×64,对于色度从2×2到32×32)
MatrixType_DC:14=2(2用于帧内和IBC/帧间×1用于Y分量)×3(TB尺寸:16×16、32×32、64×64)+4(2用于帧内和IBC/帧间×2用于Cb/Cr分量)×2(TB尺寸:16×16、32×32)
DC值分别针对以下缩放矩阵被编码:16×16、32×32和64×64。对于尺寸小于8×8的TB,用信号发送一个缩放矩阵中的所有元素。如果TB的尺寸大于或等于8×8,则用信号发送一个8×8缩放矩阵中的仅64个元素作为基础缩放矩阵。为了获得尺寸大于8×8的正方形矩阵,将8×8基础缩放矩阵上采样(通过元素的复制)到对应的正方形尺寸(即16×16、32×32、64×64)。当应用用于64点变换的高频系数的归零时,缩放矩阵的对应高频也被归零。也就是说,如果TB的宽度或高度大于或等于32,则仅保持系数的左半部或上半部,并且其余系数被分配为零。此外,针对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的莱斯参数。
在当前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中的样点由一小组代表性颜色值表示。该集合被称为调色板。还可以通过将从调色板中排除的颜色值用信号发送为逃逸颜色来指示从调色板中排除的颜色值,其中在比特流中直接用信号发送三个颜色分量的值。这在图12中示出。
图12示出在调色板模式下编码的块的示例。图12包括在调色板模式下编码的块1210和调色板1220。
在图12中,调色板大小为4。前3个样点分别使用调色板条目2、0和3进行重建。蓝色样点表示逃逸符号。CU级标志palette_escape_val_present_flag指示CU中是否存在任何逃逸符号。如果存在逃逸符号,则调色板大小增加1且最后一个索引用于指示逃逸符号。因此,在图12中,索引4被分配给逃逸符号。
为了对经调色板编码的块进行解码,解码器需要具有以下信息:
调色板表;
调色板索引。
如果调色板索引对应于逃逸符号,则用信号发送额外开销以指示样点的对应颜色值。
此外,在编码器侧,有必要推导将与CU一起使用的合适调色板。
为了推导用于有损编码的调色板,使用修改的k均值簇算法。将块的第一样点添加到调色板。然后,对于来自该块的每个后续样点,计算样点与每个当前调色板颜色之间的绝对差之和(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中,当对变换系数进行编解码时,统一(相同)莱斯参数(RicePara)推导用于用信号发送abs_remainder和dec_abs_level的语法。唯一的区别在于,将基础等级baseLevel设置为4和0以分别对abs_remainder和dec_abs_level进行编解码。莱斯参数不仅基于局部模板中的相邻五个变换系数的绝对等级的总和,而且还基于对应的基础等级来确定,如下:
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的码字的过程,但是总是选择固定的莱斯参数(例如,1、2或3)。
第二,固定长度二值化。
第三,截断莱斯二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数哥伦布二值化过程(EGK)。
第六,有限k阶指数哥伦布二值化。
根据本公开的第二方面,提出使用固定的码字集合来对变换系数编解码中的特定语法元素(例如abs_remainder和dec_abs_level)进行编码。二进制码字可以使用不同的方法形成。一些示例性方法列出如下。
第一,使用与当前VVC中使用的相同的用于确定针对abs_remainder和dec_abs_level的码字的过程,但是利用固定的莱斯参数,例如1、2或3。对于当前VVC中使用的abs_remainder和dec_abs_level,baseLevel的值仍然可以不同。(例如,baseLevel被设置为4和0以分别用于对abs_remainder和dec_abs_level进行编码)。
第二,使用与当前VVC中使用的相同的用于确定针对abs_remainder和dec_abs_level的码字的过程,但是利用固定的莱斯参数,例如1、2或3。针对abs_remainder和dec_abs_level的baselevel的值被选择为相同。例如,两者都使用0或两者都使用4。
第三,固定长度二值化。
第四,截断莱斯二值化。
第五,截断二进制(TB)二值化过程。
第六,k阶指数哥伦布二值化过程(EGK)。
第七,有限k阶指数哥伦布二值化。
根据本发明的第三方面,提出使用单个上下文来对与残差编解码或系数编解码相关的语法元素(例如,abs_level_gtx_flag)进行编码,并且可去除基于相邻解码等级信息的上下文选择。
根据本公开的第四方面,提出使用可变二进制码字集合来对残差编解码中的特定语法元素(例如abs_remainder)进行编码,并且根据当前块的特定编码信息(例如与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如IBC模式或帧内或帧间)和/或条带类型(例如I条带、P条带或B条带))来确定对二进制码字集合的选择。可以使用不同的方法来推导二进制码字的变量集合,其中一些示例性方法列出如下。
第一,使用与当前VVC中使用的相同的用于确定针对abs_remainder的码字的过程,但是利用不同的莱斯参数。
第二,k阶指数哥伦布二值化过程(EGK)。
第三,有限k阶指数哥伦布二值化。
表6基于QP值的莱斯参数确定
第四方面中说明的相同方法也适用于变换系数编解码。根据本公开的第五方面,提出使用二进制码字的变量集合对变换系数编解码中的特定语法元素(例如abs_remainder和dec_abs_level)进行编码,并且根据当前块的特定编码信息(例如与TB/CB和/或条带相关联的量化参数(QP)、CU的预测模式(例如IBC模式或帧内或帧间)和/或条带类型(例如I条带、P条带或B条带))来确定对二进制码字集合的选择。同样,可以使用不同的方法来推导二进制码字的变量集合,其中一些示例性方法如下列出。
第一,使用与当前VVC中使用的相同的用于确定针对abs_remainder的码字的过程,但是利用不同的莱斯参数。
第二,k阶指数哥伦布二值化过程(EGK)。
第三,有限k阶指数哥伦布二值化。
在上述这些方法中,可以使用不同的莱斯参数来推导不同的二进制码字集合。对于残差样点的给定块,所使用的莱斯参数是根据CU QP(表示为QPCU)而非相邻等级信息确定的。如表6所示,示出了一个具体示例,其中TH1至TH4是满足(TH1<TH2<TH3<TH4)的预定义阈值,并且K0至K4是预定义的莱斯参数。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于根据当前CU的QP值来推导相同的莱斯参数,如表6所示。
根据本公开的第五方面,将与用于变换系数编码和/或变换跳过残差编码的语法元素的码字确定相关联的参数和/或阈值的集合用信号发送到比特流中。当通过熵编码器对语法元素进行编码(例如,算术编码)时,所确定的码字用作二值化码字。
注意,参数和/或阈值的集合可以是与语法元素的码字确定相关联的所有参数和阈值的完整集合或子集。所述参数和/或阈值的集合可在视频比特流中在不同级被用信号发送。例如,它们可以在序列级(例如,序列参数集)、图片级(例如,图片参数集和/或图片头)、条带级(例如,条带头)、编码树单元(CTU)级或编码单元(CU)级被用信号发送。
在一个示例中,在条带头、图片头、PPS和/或SPS中用信号发送莱斯参数,其中该莱斯参数用于确定用于在变换跳过残差编解码中对abs_remainder语法进行编码的码字。当CU被编码为变换跳过模式并且CU与上述条带头、图片头、PPS和/或SPS等相关联时,用信号发送的莱斯参数被用于确定用于对语法abs_remainder进行编码的码字。
根据本公开的第六方面,与如第一和第二方面中所说明的码字确定相关联的参数和/或阈值的集合被用于变换系数编解码和/或变换跳过残差编解码的语法元素。并且可以根据当前块是否包含亮度残差/系数或色度残差/系数来使用不同的集合。当通过熵编码器对语法元素进行编码(例如,算术编解码)时,所确定的码字用作二进制码字。
在一个示例中,用于如当前VVC中所使用的与变换残差编解码相关联的abs_remainder的码字被用于亮度块和色度块两者,但亮度块和色度块分别使用不同的固定莱斯参数。(例如,K1用于亮度块,K2用于色度块,其中K1和K2是整数)
根据本公开的第七方面,将与用于变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数和/或阈值的集合用信号发送到比特流中。并且可针对亮度块和色度块用信号发送不同的集合。当通过熵编码器对语法元素进行编码(例如,算术编码)时,所确定的码字被用作二值化码字。
以上方面中所说明的相同方法也适用于调色板模式中的逃逸值编码,例如,palette_escape_val。
根据本公开的第八方面,可使用不同k阶指数哥伦布二值化来推导用于在调色板模式下对逃逸值进行编码的不同二进制码字集合。在一个示例中,对于逃逸样点的给定块,根据该块的QP值(表示为QPCU)来确定所使用的指数哥伦布参数(即,k的值)。如表6中所示出的相同示例可用于基于块的给定QP值推导参数k的值。尽管在该示例中列出了四个不同的阈值(从TH1到TH4),但是可以基于这些阈值和QPCU推导五个不同的k值(从K0到K4),但是值得一提的是,阈值的数量仅用于说明目的。实际上,可使用不同数量的阈值来将整个QP值范围分割成不同数量的QP值片段,并且对于每个QP值片段,可以使用不同的k值来推导用于对在调色板模式下被编码的块的逃逸值进行编码的对应二进制码字。还值得注意的是,在实践中可以不同地实施相同的逻辑。例如,可以使用某些等式或查找表来推导相同的莱斯参数。
根据本公开的第九方面,将与用于逃逸样点的语法元素的码字确定相关联的参数和/或阈值的集合用信号发送到比特流中。当通过熵编码器对逃逸样点的语法元素进行编码(例如,算术编码)时,所确定的码字被用作二进制码字。
注意,参数和/或阈值的集合可以是与针对语法元素的码字确定相关联的所有参数和阈值的完整集合或子集。所述参数和/或阈值的集合可以在视频比特流中在不同级被用信号发送。例如,它们可以在序列级(例如,序列参数集)、图片级(例如,图片参数集和/或图片头)、条带级(例如,条带头)、编码树单元(CTU)级或编码单元(CU)级被用信号发送。
在根据所述方面的一个示例中,使用k阶指数哥伦布二值化来确定用于在调色板模式下对palette_escape_val语法进行编码的码字,并且在比特流中将k的值用信号发送到解码器。k的值可在不同级被用信号发送,例如,其可在条带头、图片头、PPS和/或SPS等中被用信号发送。当CU被编码为调色板模式且CU与上文所提及的条带头、图片头、PPS和/或SPS等相关联时,使用用信号发送的指数哥伦布参数来确定用于对语法palette_escape_val进行编码的码字。
针对变换跳过模式和常规变换模式的等级映射的协调
根据本公开的第十方面,用于应用等级映射的相同条件被用于变换跳过模式和常规变换模式两者。在一个示例中,提出在经上下文编码的二进制位(CCB)的数量超过针对变换跳过模式和常规变换模式两者的限制之后应用等级映射。在另一示例中,提出在经上下文编码的二进制位(CCB)的数量超过针对变换跳过模式和常规变换模式两者的限制之前应用等级映射。
根据本公开的第十一方面,用于推导等级映射中的映射位置的相同方法被用于变换跳过模式和常规变换模式两者。在一个示例中,提出将在变换跳过模式下使用的等级映射中的映射位置的推导方法也应用于常规变换模式。在另一示例中,提出将在常规变换模式下使用的等级映射中的映射位置的推导方法也应用于变换跳过模式。
根据本公开的第十二方面,将相同的等级映射方法应用于变换跳过模式和常规变换模式两者。在一个示例中,提出将在变换跳过模式下使用的等级映射函数也应用于常规变换模式。在另一示例中,提出将在常规变换模式下使用的等级映射函数也应用于变换跳过模式。
残差编解码中的莱斯参数推导的简化
根据本公开的第十三方面,提出在使用哥伦布-莱斯码对abs_remainder/dec_abs_level的语法元素进行编解码时使用简单逻辑(例如移位或除法运算)而非查找表来推导莱斯参数。根据本公开,可以去除如表4中指定的查找表。在一个示例中,莱斯参数cRiceParam被推导为:cRiceParam=(locSumAbs>>N),其中n是正数,例如3。值得注意的是,在实践中,可以使用其他不同的逻辑来实施相同的结果,例如,通过等于2的n次幂的值的除法运算。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以删除线斜体字体示出。
表7莱斯参数推导过程
根据本公开的第十四方面,提出在使用哥伦布-莱斯码对abs_remainder/dec_abs_level的语法元素进行编解码时使用更少的相邻位置来推导莱斯参数。在一个示例中,提出在对abs_remainder/dec_abs_level的语法元素进行编解时仅使用2个相邻位置来推导莱斯参数。基于VVC草案的对应解码过程如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表8莱斯参数推导过程
在另一示例中,提出在对abs_remainder/dec_abs_level的语法元素进行编码时仅使用一个相邻位置来推导莱斯参数。基于VVC草案的对应解码过程如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表9莱斯参数推导过程
根据本公开的第十五方面,提出在使用哥伦布莱斯码对abs_remainder/dec_abs_level的语法元素进行编码时基于baseLevel的值使用不同的逻辑来调整locSumAbs的值以推导莱斯参数。在一个示例中,以“(locSumAbs-baseLe vel×5)×alpha+beta”的形式来应用额外的缩放和偏移操作。当alpha取值1.5并且beta取值1时,基于VVC草案的对应解码过程如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表10莱斯参数推导过程
/>
根据本发明的第十六方面,提出在使用哥伦布莱斯码对abs_remainder/dec_abs_level的语法元素进行编码时去除裁剪操作来推导莱斯参数。根据本公开,关于VVC草案的解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表11莱斯参数推导过程
根据本公开,关于VVC草案的解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表12莱斯参数推导过程
根据本公开的第十七方面,提出在使用哥伦布莱斯码对abs_remainder/dec_abs_level的语法元素进行编码时,将locSumAbs的初始值从0改变为非零整数来推导莱斯参数。在一个示例中,将初始值1分配给locSumAbs,并且基于VVC草案的对应解码过程如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表13莱斯参数推导过程
/>
根据本公开的第十八方面,提出在使用哥伦布-莱斯码对abs_remainder/dec_abs_level的语法元素进行编码时使用相邻位置等级值的最大值而非相邻位置等级值的总和值来推导莱斯参数。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表14莱斯参数推导过程
根据本公开的第十九方面,提出在使用哥伦布莱斯码对abs_remainder/dec_abs_level的语法元素进行编码时,基于相邻位置处的每个AbsLevel值与基础等级值的相对幅度来推导莱斯参数。在一个示例中,基于相邻位置处的AbsLevel值中大于基础等级的AbsLevel值的数量来推导莱斯参数。基于VV C草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表15莱斯参数推导过程
在另一示例中,基于针对AbsLevel值大于基础等级的那些相邻位置的(AbsLevel-basLevel)值的总和来推导莱斯参数。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表16莱斯参数推导过程
关于VVC草案的解码过程的一个示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表17莱斯参数推导过程
残差编解码中的等级映射位置推导的简化
根据本公开的第二十方面,提出从ZeroPos[n]的推导中去除QState,使得ZeroPos[n]仅根据cRiceParam推导。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表18莱斯参数推导过程
/>
根据本公开的第二十一方面,提出基于locSumAbs的值来推导ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表19莱斯参数推导过程
/>
根据本公开的第二十二方面,提出基于相邻位置的AbsLevel的值来推导ZeroPos[n]。在一个示例中,基于AbsLevel[xC+1][yC]和AbsLevel[xC][yC+1]中的最大值来推导ZeroPos[n]。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表20莱斯参数推导过程
根据本公开的第二十三方面,提出基于相邻位置的所有AbsLevel值的最大值来推导cRiceParam和ZeroPos[n]两者。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。
表21莱斯参数推导过程
以上方面中说明的相同方法也适用于针对变换跳过模式的残差编解码中的predCoeff的推导。在一个示例中,变量predCoeff被推导如下:
predCoeff=Max(absLeftCoeff,absAboveCoeff)+1
针对变换系数的残差编解码
在本公开中,为了解决在“对残差和系数编解码的改进”部分中指出的问题,提供了简化和/或进一步改进残差编解码的现有设计的方法。通常,本公开中提出的技术的主要特征总结如下。
第一,基于当前设计调整在常规残差编解码下使用的莱斯参数推导。
第二,改变在常规残差编解码下使用的二进制方法。
第三,改变在常规残差编解码下使用的莱斯参数推导。
基于当前设计的残差编解码中的莱斯参数推导
根据本公开的第二十四方面,提出使用莱斯参数推导的可变方法对残差编解码中的特定语法元素(例如,abs_remainder/dec_abs_level)进行编码,并且根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导莱斯参数,其中一些示例性方法列出如下。
第一,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/序列的比特深度值来推导相同的莱斯参数。
表22莱斯参数推导过程
/>
/>
在另一示例中,当BitDepth大于或等于预定义阈值(例如,10、11、12、13、14、15或16)时,莱斯参数cRiceParam被推导为:cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+c,其中a、b和c是正数,例如1。基于VVC草案的对应解码过程如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表23中以粗体和斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于根据当前CU/序列的比特深度值来推导相同的莱斯参数。
表23莱斯参数推导过程
/>
针对超过10比特的简档的残差编解码中的二进制方法
根据本公开的第二十五方面,提出使用二进制码字变量集合对残差编解码中的特定语法元素(例如,abs_remainder/dec_abs_level)进行编码,并且根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导二进制码字变量集合,其中一些示例性方法列出如下。
第一,使用与当前VVC中使用的相同的用于确定针对abs_remainder的码字的过程,但是总是选择固定的莱斯参数(例如,2、3、4、5、6、7或8)。固定值可以根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的语法元素(例如,rice_parameter_value),在不同条件下而不同。如表24所示,示出了一个具体示例,其中TH1至TH4是满足(TH1<TH2<TH3<TH4)的预定义阈值,并且K0至K4是预定义的莱斯参数。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于根据当前CU/序列的比特深度值来推导相同的莱斯参数,如表24所示。
第二,固定长度二值化。
第三,截断莱斯二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数哥伦布二值化过程(EGK)。
第六,有限k阶指数哥伦布二值化。
表24基于比特深度的莱斯参数确定
在一个示例中,当新标志(例如,extended_precision_processing_flag)等于1时,莱斯参数cRiceParam固定为n,其中n为正数(例如,2、3、4、5、6、7或8)。固定值在不同条件下可以不同。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表25中以粗体和斜体字体示出。
表25莱斯参数推导过程
在另一示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时,在对abs_remainder/dec_abs_level的语法元素进行编解码时仅使用针对莱斯参数的一个固定值。基于VVC草案的对应解码过程如下所示,其中以粗体和斜体字体改变,并且以斜体字体示出删除的内容。VVC草案的变化在表26中以粗体和斜体显示。
表26莱斯参数推导过程
在又一示例中,当BitDepth大于或等于预定义阈值(例如,10、11、12、13、14、15或16)时,将莱斯参数cRiceParam固定为n,其中n是正数,例如4、5、6、7或8。固定值在不同条件下可以不同。基于VVC草案的对应解码过程的示例如下所示,其中TH为预定义阈值(例如,10、11、12、13、14、15或16)。对VVC草案的改变在表27中以粗体和斜体字体示出,以粗体和斜体字体示出示出改变,并以斜体字体示出删除的内容。
表27莱斯参数推导过程
在又一示例中,提出当BitDepth大于预定义阈值(例如,10、11、12、13、14、15或16)时,在对abs_remainder/dec_abs_level的语法元素进行编解码时仅使用针对莱斯参数的一个固定值。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义阈值(例如,10、11、12、13、14、15或16),并且改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表28中以粗体和斜体字体示出。
表28莱斯参数推导过程
残差编解码中的莱斯参数推导
根据本公开的第二十六方面,提出使用莱斯参数推导的可变方法对残差编解码中的特定语法元素(例如,abs_remainder/dec_abs_level)进行编解码,并且根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导莱斯参数,其中一些示例性方法列出如下。
第一,提出使用计数器来推导莱斯参数。根据当前块的编码系数的值和特定编码信息(例如,分量ID)来确定计数器。一个具体示例,riceParamet er=counter/a,其中a是正数,例如4,并且它维持2个计数器(按亮度/色度拆分)。这些计数器在每个条带开始处被重置为0。一旦进行编码,如果这是在子TU中编码的第一个系数,则更新计数器,如下:
if(coeffValue>=(3<<rice))counter++
if(((coeffValue<<1)<(1<<riceParameter))&&(counter>0))counter--;
第二,提出在VVC中的莱斯参数的推导中添加移位操作。根据编码系数的值来确定移位。基于VVC草案的对应解码过程的示例如下所示,根据方法1的计数器确定移位,并且其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表29中以粗体和斜体字体示出。
表29莱斯参数推导过程
第三,提出在VVC中的莱斯参数的推导中添加移位操作。根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档(例如,14比特简档或16比特简档)相关联的编码比特深度)来确定移位。基于VVC草案的对应解码过程的示例如下所示,根据方法1的计数器确定移位,并且其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表30中以粗体和斜体字体示出。
表30莱斯参数推导过程
针对变换跳过的残差编解码
根据本公开的第二十七方面,提出使用二进制码字变量集合对变换跳过残差编解码中的特定语法元素(例如,abs_remainder)进行编解码,并且根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的新标志(例如,extended_precision_processing_flag)来确定选择。可以使用不同的方法来推导可变二进制码字变量集合,其中一些示例性方法列出如下。
第一,使用与当前VVC中使用的相同的用于确定针对abs_remainder的码字的过程,但是总是选择固定的莱斯参数(例如,2、3、4、5、6、7或8)。固定值可以根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数、帧类型(例如,I、P或B)、分量ID(例如,亮度或色度)、颜色格式(例如,420、422或444)或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的语法元素(例如,rice_parameter_value),在不同条件下不同。如表7所示,示出了一个具体示例,其中TH1至TH4是满足(TH1<TH2<TH3<TH4)的预定义阈值,并且K0至K4是预定义的莱斯参数。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于根据当前CU/序列的比特深度值来推导相同的莱斯参数,如表7所示。
第二,固定长度二值化。
第三,截断莱斯二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数哥伦布二值化过程(EGK)。
第六,有限k阶指数哥伦布二值化。
基于VVC草案的对应解码过程的示例如下所示,对VVC草案的改变在表31中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表31莱斯参数推导过程
/>
在另一示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时,在对abs_remainder的语法元素进行编码时仅使用针对莱斯参数的一个固定值。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表32中以粗体和斜体字体示出。
表32莱斯参数推导过程
/>
在又一示例中,当新标志(例如,extended_precision_processing_flag)等于1时,将莱斯参数cRiceParam固定为n,其中n为正数(例如,2、3、4、5、6、7或8)。固定值在不同条件下可以不同。基于VVC草案的对应解码过程的示例如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表33中以粗体和斜体字体示出。
表33莱斯参数推导过程
在又一示例中,当BitDepth大于或等于预定义阈值(例如,10、11、12、13、14、15或16)时,将莱斯参数cRiceParam固定为N,其中N是正数,例如4、5、6、7或8。固定值在不同条件下可以不同。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义阈值(例如,10、11、12、13、14、15或16),其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表34中以粗体和斜体字体示出。
表34莱斯参数推导过程
在又一示例中,在条带头中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数。当控制标志被用信号发送为启用时,针对每个变换跳过条带进一步用信号发送用于指示该条带的莱斯参数的一个语法元素。当控制标志被用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1)。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义值(例如0、1、2),并且改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表35中以粗体和斜体字体示出。值得注意的是,sh_ts_residual_coding_rice_index可以按照不同的方式进行编解码和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特字符串)也可以用于对相同的语法元素进行编码/解码。
条带头语法
表35残差编解码的语法
/>
sh_ts_residual_coding_rice_flag等于1指定sh_ts_residual_coding_rice_index可存在于当前条带中。sh_ts_residual_coding_rice_flag等于0指定sh_ts_residual_coding_rice_index不存在于当前条带中。当sh_ts_residual_coding_rice_flag不存在时,将sh_ts_residual_coding_rice_flag的值推断为等于0。
sh_ts_residual_coding_rice_index指定针对residual_ts_coding()语法结构使用的莱斯参数。
表36莱斯参数推导过程
在又一示例中,在序列参数集(或在序列参数集范围扩展语法)中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数。当控制标志用信号发送为启用时,针对每个变换跳过条带进一步用信号发送用于指示该条带的莱斯参数的一个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,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指定sh_ts_residual_coding_rice_idx可存在于参考SPS的SH语法结构中。sps_ts_residual_coding_rice_present_in_sh_flag等于0指定sh_ts_residual_coding_rice_idx不存在于参考SPS的SH语法结构中。当sps_ts_residual_coding_rice_present_in_sh_flag不存在时,将sps_ts_residual_coding_rice_present_in_sh_flag的值推断为等于0。
条带头语法
表38残差编解码的语法
sh_ts_residual_coding_rice_idx指定针对residual_ts_coding()语法结构使用的莱斯参数。
表39莱斯参数推导过程
在又一示例中,针对每个变换跳过条带用信号发送一个语法元素以指示该条带的莱斯参数。基于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()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_idx不存在时,将sh_ts_residual_coding_rice_idx的值推断为等于0。
表41莱斯参数推导过程
在另一示例中,在图片参数集范围扩展语法中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数。当控制标志用信号发送为启用时,进一步用信号发送用于指示该图片的莱斯参数的一个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,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()语法结构使用的莱斯参数。
表43莱斯参数推导过程
在又一示例中,提出仅使用可变莱斯参数对语法元素abs_remainder进行编解码。可以根据当前块的特定编码信息(例如,块尺寸、量化参数、比特深度、变换类型等)来确定所应用的莱斯参数的值。在一个特定实施例中,提出基于编码比特深度和应用于一个CU的量化参数来调整莱斯参数。基于VVC草案的对应解码过程如下所示,对VVC草案的改变在表44中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表44莱斯参数推导过程
/>
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,33或34)。对VVC草案的改变在表45中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表45莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB是预定义阈值(例如,THA=8,THB=33或34)。对VVC草案的改变在表46中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表46莱斯参数推导过程
在又一示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时仅使用可变莱斯参数对abs_remainder的语法元素进行编解码。可以根据当前块的特定编码信息(例如,块尺寸、量化参数、比特深度、变换类型等)来确定可变值。在一个特定实施例中,提出基于编码比特深度和应用于一个CU的量化参数来调整莱斯参数。基于VVC草案的对应解码过程如下所示。对VVC草案的改变在表47中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表47莱斯参数推导过程
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,18、19)。对VVC草案的改变在表48中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表48莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB为预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的改变在表49中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表49莱斯参数推导过程
图16示出了用于视频编码的方法。该方法可以例如应用于编码器。在步骤1610中,编码器可以接收视频输入。例如,视频输入可以是直播流。在步骤1612中,编码器可以基于视频输入获得量化参数。例如,量化参数可以由编码器中的量化单元计算。在步骤1614中,编码器可以基于至少一个预定义阈值、编码比特深度和量化参数来推导莱斯参数。例如,莱斯参数被用于用信号发送abs_remainder和dec_abs_level的语法。在步骤1616中,编码器可以基于莱斯参数对视频比特流进行熵编码。例如,可对视频比特流进行熵编码以产生压缩的视频比特流。
在又一示例中,提出当BitDepth大于10时,在对abs_remainder的语法元素进行编码时仅使用针对莱斯参数的固定值(例如,2、3、4、5、6、7或8)。固定值可以根据当前块的特定编码信息(例如,量化参数),在不同条件下不同。基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,18、19)。对VVC草案的改变在表50中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表50莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB为预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的改变在表51中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表51莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,33或34)。对VVC草案的改变在表52中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表52莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB为预定义阈值(例如,THA=8、THB=33或34)。对VVC草案的改变在表53中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表53莱斯参数推导过程
值得提及的是,在上述说明中,用于计算特定莱斯参数的等式仅用作示例来说明所提出的想法。对于当代视频编解码技术的技术人员来说,其他映射函数(或等效映射等式)已经适用于所提出的想法(即,基于编码比特和所应用的量化参数来确定变换跳过模式的莱斯参数)。同时,还应当提及,在当前VVC设计中,允许所应用的量化参数的值在编码块组级进行改变。因此,所提出的莱斯参数调整方案可以在编码块组级提供变换跳过模式的莱斯参数的灵活适配。
用于常规残差编解码和变换跳过残差编解码的信令信息
根据本公开的第二十八方面,提出用信号发送用于对变换跳过残差编解码中的特定语法元素(例如,abs_remainder)进行编解码的二进制码字的莱斯参数、用于推导用于常规残差编解码中的abs_remainder/dec_abs_level的莱斯参数的移位和偏移参数,并根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的新标志(例如,sps_residual_coding_info_present_in_sh_flag)来确定是否用信号发送。
在一个示例中,在条带头中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数以及用信号发送用于推导变换块中的莱斯参数的移位和/或偏移参数。当控制标志被用信号发送为启用时,针对每个变换跳过条带进一步用信号发送用于指示该条带的莱斯参数的一个语法元素,并且针对每个变换条带进一步用信号发送用于指示用于推导该条带的莱斯参数的移位和/或偏移参数的两个语法元素。当控制标志被用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1),并且在较低级处不进一步用信号发送用于指示用于推导针对变换条带的莱斯参数的移位和偏移参数的语法元素,并且针对所有变换条带使用默认移位和/或偏移参数(例如,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中,编码器可以用信号发送针对编码语法元素的二进制码字的莱斯参数。编码语法元素可以包括变换跳过残差编解码中的abs_remainder。在步骤1714中,编码器可以基于莱斯参数和视频输入对视频比特流进行熵编码。
条带头语法
表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[]的莱斯参数推导过程的移位参数。当sh_residual_coding_rice_shift不存在时,将sh_residual_coding_rice_shift的值推断等于0。
sh_residual_coding_rice_offset指定用于针对abs_remainder[]和dec_abs_level[]的莱斯参数推导过程的偏移参数。当sh_residual_coding_rice_offset不存在时,将sh_residual_coding_rice_offset的值推断为等于0。
sh_ts_residual_coding_rice_index指定针对residual_ts_coding()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_index不存在时,将sh_ts_residual_coding_rice_index的值推断为等于0。
表55莱斯参数推导过程
表56莱斯参数推导过程
/>
在又一示例中,在序列参数集(或在序列参数集范围扩展语法)中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数以及用信号发送用于推导变换块中的莱斯参数的移位和/或偏移参数。当控制标志用信号发送为启用时,针对每个变换跳过条带进一步用信号发送用于指示该条带的莱斯参数的一个语法元素,并且针对每个变换条带进一步用信号发送用于指示用于推导该条带的莱斯参数的移位和/或偏移参数的两个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1),并且在较低级处不进一步用信号发送用于指示用于推导针对变换条带的莱斯参数的移位和/或偏移参数的语法元素,并且针对所有变换条带使用默认移位和/或偏移参数(例如,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指定sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可存在于参考SPS的SH语法结构中。sps_residual_coding_info_present_in_sh_flag等于 0 指定sh_residual_coding_rice_shift、 sh_residual_coding_rice_offset 和sh_ts_residual_coding_rice_idx不存在于参考SPS的SH语法结构中。当sps_residual_coding_info_present_in_sh_flag不存在时,将sps_residual_coding_info_present_in_sh_flag的值推断为等于0。
条带头语法
表58残差编解码的语法
sh_residual_coding_rice_shift指定用于针对abs_remainer[]和dec_abs_level[]的莱斯参数推导过程的移位参数。当sh_residual_coding_rice_shift不存在时,将sh_residual_coding_rice_shift的值推断为等于0。
sh_residual_coding_rice_offset指定用于针对abs_remainer[]和dec_abs_level[]的莱斯参数推导过程的偏移参数。当sh_residual_coding_rice_offset不存在时,将sh_residual_coding_rice_offset的值推断为等于0。
sh_ts_residual_coding_rice_idx指定针对residual_ts_coding()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_index不存在时,将sh_ts_residual_coding_rice_index的值推断为等于0。
表59莱斯参数推导过程
/>
表60莱斯参数推导过程
/>
在又一示例中,针对每个变换跳过条带用信号发送用于指示该条带的莱斯参数的一个语法元素,并且针对每个变换条带用信号发送用于指示用于推导该条带的莱斯参数的移位和/或偏移参数的两个语法元素。基于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()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_idx不存在时,将sh_ts_residual_coding_rice_idx的值推断为等于0。
sh_residual_coding_rice_offset指定用于针对abs_remainer[]和dec_abs_level[]的莱斯参数推导过程的偏移参数。当sh_residual_coding_rice_offset不存在时,将sh_residual_coding_rice_offset的值推断为等于0。
sh_ts_residual_coding_rice_idx指定针对residual_ts_coding()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_index不存在时,将sh_ts_residual_coding_rice_index的值推断为等于0。
表62莱斯参数推导过程
表63莱斯参数推导过程
/>
在又一示例中,在图片参数集范围扩展语法中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数以及用信号发送用于推导变换块中的莱斯参数的移位和/或偏移参数。当控制标志用信号发送为启用时,进一步用信号发送用于指示用于该图片的变换跳过残差编解码的莱斯参数的一个语法元素,并且进一步用信号发送用于指示用于推导该图片的用于常规残差编解码的莱斯参数的移位和/或偏移参数的两个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级不进一步用信号发送用于指示用于变换跳过残差编解码的莱斯参数的语法元素,并且针对所有变换跳过残差编解码使用默认莱斯参数(例如,1),并且在较低级不进一步用信号发送用于指示用于推导用于常规残差编解码的莱斯参数的移位和/或偏移参数的语法元素,并且针对所有常规残差编解码使用默认移位和/或偏移参数(例如,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_remainer[]和dec_abs_level[]的莱斯参数推导过程的移位参数。当pps_residual_coding_rice_shift不存在时,将pps_residual_coding_rice_shift的值推断为等于0。
pps_residual_coding_rice_offset指定用于针对abs_remainer[]和dec_abs_level[]的莱斯参数推导过程的偏移参数。当pps_residual_coding_rice_offset不存在时,将pps_residual_coding_rice_offset的值推断为等于0。
pps_ts_residual_coding_rice_idx指定针对residual_ts_coding()语法结构使用的莱斯参数。当pps_ts_residual_coding_rice_index不存在时,将pps_ts_residual_coding_rice_index的值推断为等于0。
表65莱斯参数推导过程
表66莱斯参数推导过程
/>
根据本公开的第二十九方面,提出使用不同的莱斯参数对变换跳过残差编解码中的特定语法元素(例如,abs_remainder)、用于推导针对常规残差编解码中的abs_remainder/dec_abs_level使用的莱斯参数的移位和偏移参数进行编码,并且根据当前块的特定编码信息(例如,与TB/CB和/或条带/简档相关联的量化参数或编码比特深度)和/或根据与TB/CB/条带/图片/序列级相关联的新标志(例如,sps_residual_coding_info_present_in_sh_flag)来确定使用哪个语法元素。
在一个示例中,在条带头中用信号发送一个控制标志以指示是启用还是禁用针对变换跳过块的莱斯参数的推导过程以及针对变换块中的莱斯参数的移位和/或偏移参数的推导过程。当控制标志用信号发送为启用时,莱斯参数可以根据当前块的特定编码信息(例如,量化参数和比特深度)在不同条件下不同。并且用于推导常规残差编解码中的莱斯参数的移位和/或偏移参数可以根据当前块的特定编码信息(例如,量化参数和比特深度)在不同条件下不同。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,针对所有变换跳过条带使用默认莱斯参数(例如,1),并且针对所有变换条带使用默认移位和/或偏移参数(例如,0)。基于VVC草案的对应解码过程的示例如下所示,其中THA和THB是预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的改变在表67中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
条带头语法
表67残差编解码的语法
sh_residual_coding_rice_flag等于1指定在当前条带中使用依赖比特深度的莱斯参数推导过程。sh_residual_coding_rice_flag等于0指定在当前条带中不使用比特深度相关的莱斯参数推导过程。
表68莱斯参数推导过程
表69莱斯参数推导过程
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,18、19)。对VVC草案的改变在表70中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表70莱斯参数推导过程
/>
/>
根据本公开的另一方面,提出添加对上述这些编解码工具标志的值的约束来提供与一般约束信息中的其他一般约束控制相同的一般约束控制。
例如,sps_ts_residual_coding_rice_present_in_sh_flag等于1指定sh_ts_residual_coding_rice_idx可存在于参考SPS的SH语法结构中。sps_ts_residual_coding_rice_present_in_sh_flag等于0指定sh_ts_residual_coding_rice_idx不存在于参考SPS的SH语法结构中。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_ts_residual_coding_rice_constraint_flag以提供与其他标志相同的一般约束控制。下面示出了对VVC草案的解码过程的示例。对VVC草案的改变被突出显示。添加的部分用斜体字体突出显示。
在另一示例中,pps_ts_residual_coding_rice_flag等于1指定pps_ts_residual_coding_rice_index可存在于当前图片中。pps_ts_residual_coding_rice_flag等于0指定pps_ts_residual_coding_rice_idx不存在于当前图片中。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_ts_residual_coding_rice_constraint_flag以提供与其他标志相同的一般约束控制。下面示出了对VVC草案的解码过程的示例。对VVC草案的改变被突出显示。添加的部分用斜体字体突出显示。
/>
在又一示例中,sps_rice_adaptation_enabled_flag等于1指示用于abs_remainder[]和dec_abs_level的二值化的莱斯参数可通过公式导出。
该公式可以包括: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}。
根据本公开,提出在一般约束信息语法中添加语法元素gci_no_rice_adaptation_constraint_flag以提供与其他标志相同的一般约束控制。下面示出了对VVC草案的解码过程的示例。对VVC草案的改变被突出显示。添加的部分用斜体字体突出显示。
由于所提出的莱斯参数自适应方案仅用于变换跳过残差编解码(TSRC),因此所提出的方法仅在TSRC被启用时才有效。因此,在本公开的一个或多个实施例中,提出了当根据一般约束信息等级禁用变换跳过模式时(例如,当gci_no_transform_skip_constraint_flag的值被设置为1时)添加一个比特流约束,该比特流约束要求gci_no_rice_adaptation_constraint_flag的值为1。
在又一示例中,sps_range_extension_flag等于1指定sps_range_extension()语法结构存在于SPS RBSP语法结构中。sps_range_extension_flag等于0指定不存在此语法结构。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_range_extension_constraint_flag以提供与其他标志相同的一般约束控制。下面示出了对VVC草案的解码过程的示例。对VVC草案的改变被突出显示。添加的部分用斜体字体突出显示。
/>
图19示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤1902中,解码器可接收序列参数集(SPS)范围扩展标志,SPS范围扩展标志基于SPS范围扩展标志的值指示条带头(SH)原始字节序列有效载荷(RBSP)语法结构中是否存在语法结构sps_range_extension。
在步骤1904中,响应于确定SPS范围扩展标志的值等于1,解码器可确定SH RBSP语法结构中存在sps_range_extension。
在步骤1906中,响应于确定SPS范围扩展标志的值等于0,解码器可确定SH RBSP语法结构中不存在sps_range_extension。
在又一示例中,sps_cabac_bypass_alignment_enabled_flag等于1指定可在对语法元素sb_coded_flag[][]、abs_remaind[]、dec_abs_level[n]和coeff_sign_flag[]进行旁路解码之前对准ivlCurrRange的值。sps_cabac_bypass_alignment_enabled_flag等于0指定在旁路编码之前不对准ivlCurrRange的值。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_cabac_bypass_alignment_constraint_flag以提供与其他标志相同的一般约束控制。下面示出了在VVC草案中的解码过程的示例。对VVC草案的改变被突出显示。添加的部分用斜体字体突出显示。
图20示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤2002中,解码器可接收序列参数集(SPS)对准启用标志,SPS对准启用标志基于SPS对准启用标志的值指示在对语法元素sb_coded_flag、abs_remainder、dec_abs_level和coeff_sign_flagn进行旁路解码之前是否对准索引ivlCurrRange。
在步骤2004中,响应于确定SPS对准启用标志的值等于1,解码器可确定在旁路解码之前对准ivlCurrRange。
在步骤2006中,响应于确定SPS对准启用标志的值等于0,解码器可确定在旁路解码之前不对准ivlCurrRange。
在又一示例中,extended_precision_processing_flag等于1指定扩展动态范围可被用于变换系数和变换处理。extended_precision_processing_flag等于0指定不使用扩展动态范围。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_extended_precision_processing_constraint_flag以提供与其他标志相同的一般约束控制。下面示出了在VVC草案中的解码过程的示例。对VVC草案的改变被突出显示。添加的部分用斜体字体突出显示。
图21示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤2102中,解码器可接收扩展精度处理标志,扩展精度处理标志基于扩展精度处理标志的值指示针对变换系数且在变换处理期间是否采用扩展动态范围。
在步骤2104中,响应于确定扩展精度处理标志的值等于1,解码器可确定针对变换系数且在变换处理期间采用扩展动态范围。
在步骤2106中,响应于确定扩展精度处理标志的值为0,解码器可确定针对变换系数或在变换处理期间不采用扩展动态范围。
在又一示例中,persistent_rice_adaptation_enabled_flag等于1指定用于abs_remainder[]和dec_abs_level的二值化的莱斯参数推导可在每个子块的开始处使用从先前子块累积的模式相关统计进行初始化。persistent_rice_adaptation_enabled_flag等于0指定在莱斯参数推导中不使用先前子块状态。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_persistent_rice_adaptation_constraint_flag以提供与其他标志相同的一般约束控制。下面示出了在VVC草案中的解码过程的示例。对VVC草案的改变被突出显示。添加的部分用斜体字体突出显示。
图22示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤2202中,解码器可以接收持续莱斯自适应启用标志,持续莱斯自适应启用标志基于持续莱斯自适应启用标志的值指示用于abs_remainder和dec_abs_level的二值化的莱斯参数推导是否在每个子块开始处采用从先前子块累积的模式相关统计进行初始化。
在步骤2204中,响应于确定持续莱斯自适应启用标志的值等于1,解码器可以确定在每个子块的开始处采用从先前子块累积的模式相关统计来初始化用于二值化的莱斯参数推导。
在步骤2206中,响应于确定持续莱斯自适应启用标志的值为0,解码器可以确定在莱斯参数推导中不采用先前的子块状态。
可以使用包括一个或多个电路的装置来实现上述方法,一个或多个电路包括专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件。装置可以使用与其他硬件或软件组件组合的电路来执行上述方法。上面公开的每个模块、子模块、单元或子单元可以至少部分地使用一个或多个电路来实现。
莱斯参数决策
在编码器侧,TSRC编码可能需要多个编码通道以推导最佳莱斯参数。这种多通道编码可能不适合于实际的硬件编码器设计。为了解决这个问题,还提出了一种低延迟TSRC编码方法。根据本公开的第三十方面,提出根据当前条带的特定编码信息(例如,与条带/图片/序列相关联的量化参数和/或编码比特深度)和/或根据与条带/图片/序列级相关联的哈希率来推导莱斯参数。可以使用不同的方法来推导莱斯参数,其中一些示例性方法列出如下。应注意,可以独立地或联合地应用以下方法。
1.上述实施例中提到的莱斯参数可以另外取决于视频分辨率,包括视频的时间分辨率(例如,帧率)和空间分辨率(例如,图片宽度和高度)两者。
2.莱斯参数可以在序列级、图片级、条带级和/或任何预定义区域变化。在一个特定示例中,不同的莱斯值用于具有不同时间层ID(其与VVC规范中指定的nuh_temporal_id_plus1相关)的图片。可选地,莱斯参数可以包括基于在序列级、图片级、条带级和/或任何预定义区域处使用的QP值而确定的值。例如,莱斯参数=Clip3(1,8,(TH-QP)/6),其中TH是预定义阈值(例如18、19)。
3.可以根据当前条带与先前条带之间的编码信息的改变将莱斯参数设置为默认值,例如1。在一个特定示例中,当图片的时间层ID与先前图片相比改变时,针对该图片使用默认莱斯值。可选地,当ΔQ大于TH时,针对该图片使用默认莱斯值,其中ΔQ被计算为abs(QPcurrent-QPprevious)并且TH是预定义阈值。莱斯参数(例如,0.5)。例如,在当前条带中的哈希率形式帧内块复制模式大于TH时,莱斯参数=1,其中TH是预定义阈值,例如Max(41×(CTU的数量),4200)。
4.基于根据编解码顺序在每个条带的先前条带中编码的abs_remainder的值确定针对每个条带的莱斯参数。在一个特定示例中,在对一个条带进行编解码之后,计算用于使用不同莱斯参数对abs_remainder进行二值化的二进制位的数量,所述二进制位的数量用于确定后续条带的莱斯参数。例如,将针对当前片段选择在先前片段中实现最小二进制位数量的莱斯参数。对于另一示例,如果当前条带及其先前条带使用一个相同的QP,则将针对当前条带选择在先前条带中实现最小二进制位数量的莱斯参数;否则,在与其他莱斯参数进行比较之前,将使用先前条带中的默认莱斯参数(即,1)生成的二进制位的数量按TH进行缩放,并且将针对当前条带选择导致二进制位的最小数量的莱斯参数,其中TH是预定义阈值,例如0.9。
5.基于根据编解码顺序在每个条带的先前条带中编码的abs_remainder的值确定针对每个条带的莱斯参数,并且可以根据当前条带和先前条带之间的编码信息的改变来调整莱斯参数。在一个特定示例中,将针对当前条带选择在先前条带中实现最小二进制位数量的莱斯参数。并且当ΔQ大于TH时,可以调整莱斯值,其中ΔQ被计算为abs(QPcurrent-QPprevious),并且TH是预定义阈值。莱斯参数(例如,0.5)。调整可以是添加预定义偏移(例如,+1、-1)或按预定义值进行缩放。
图26示出根据本公开的一个示例的低延迟变换跳过残差编解码(TSRC)方法的流程图。该方法可以例如应用于编码器。在步骤2602中,编码器可基于视频的当前条带的编码信息来推导莱斯参数。编码信息可以包括以下参数中的一个或多个:与视频的条带、图片或序列相关联的量化参数或编码比特深度;或与视频的条带、图片或序列相关联的哈希率。
应注意,上述编码器方法可被应用于解码器侧。在一个特定示例中,不需要将莱斯参数用信号发送到解码器,并且编码器/解码器使用相同方法来推导莱斯参数。
图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)、控制器、微控制器、微处理器或其他电子组件来实现,以用于执行上述方法。
图23是示出根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图23中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14解码的视频数据。源设备12和目标设备14可以包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可以经由链路16接收待解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可以根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或者一个或更多个物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或全球网,诸如互联网)的一部分。通信介质可以包括路由器、交换机、基站、或可以有利于促进从源设备12到目标设备14的通信的任何其他装备。
在一些其他实施方式中,编码视频数据可以从输出接口22被发送到存储设备32。随后,存储设备32中的编码视频数据可以由目标设备14经由输入接口28被访问。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、数字通用光盘(DVD)、只读光盘存储器(CD-ROM)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其他合适的数字存储介质。在进一步的示例中,存储设备32可以对应于文件服务器或可以保留由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可以从存储设备32经由流传输或下载来访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络附属存储(NAS)设备、或本地磁盘驱动器。目标设备14可以通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(Wi-Fi)连接)、有线连接(例如,数字用户线路(DSL)、电缆调制解调器等)、或两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输、或两者的组合。
如图23中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈送接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可以形成相机电话或视频电话。然而,本申请中所描述的实施方式可以一般性地适用于视频编解码,并且可以应用于无线和/或有线应用。
捕获的、预先捕获的或计算机生成的视频可以由视频编码器20编码。编码视频数据可以经由源设备12的输出接口22直接发送到目标设备14。编码视频数据还可以(或可选地)被存储到存储设备32上以供稍后被目标设备14或其他设备访问,以用于解码和/或回放。输出接口22可以进一步包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16通信传送的或在存储设备32上提供的编码视频数据可以包括由视频编码器20生成的各种语法元素,以供视频解码器30在对视频数据进行解码时使用。此类语法元素可以被包括在通信介质上发送的、在存储介质上存储的、或在文件服务器上存储的编码视频数据内。
在一些实施方式中,目标设备14可以包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34将已解码的视频数据显示给用户,并且可以包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、或另一类型的显示器设备。
视频编码器20和视频解码器30可以根据专有标准或行业标准(诸如VVC、HEVC、MPEG-4、Part 10、AVC)或此类标准的扩展进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常认为源设备12的视频编码器20可以被配置为根据这些当前标准或未来标准中的任何标准来编码视频数据。类似地,还通常认为目标设备14的视频解码器30可以被配置为根据这些当前标准或未来标准中的任何标准来解码视频数据。
视频编码器20和视频解码器30可以分别被实现为各种合适的编码器和/或解码器电路中的任何电路,诸如一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可以将用于软件的指令存储于合适的非暂态计算机可读介质中,并且使用一个或更多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可以被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图24是示出根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或去除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或去除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。应当注意,术语“帧”可以用作视频编解码领域中的术语“图像”或“图片”的同义词。
如图24中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。环路滤波器63(诸如去块滤波器)可以位于加法器62与DPB 64之间,以对块边界进行滤波以从重建的视频中去除块效应。除了去块滤波器之外,还可以使用另一环路滤波器(诸如样点自适应偏移(SAO)滤波器和/或自适应环路滤波器(ALF))对加法器62的输出进行滤波。在一些示例中,可以省略环路滤波器,并且已解码的视频块可以由加法器62直接提供给DPB 64。视频编码器20可以采取固定或可编程硬件单元的形式,或者可以分散在所说明的固定或可编程硬件单元中的一个或更多个中。
视频数据存储器40可以存储将由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可以例如从如图23所示的视频源18获得。DPB 64是存储参考视频数据(例如,参考帧或参考图片)的缓冲器,参考视频数据供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用。视频数据存储器40和DPB 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图24中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可以包括根据与视频数据相关联的预定义的拆分结构(诸如四叉树(QT)结构)将视频帧分割为条带、瓦片(tile)(例如,视频块集合)、或其他更大的编码单元(CU)。视频帧是或者可以被视为具有样点值的样点的二维阵列或矩阵。阵列中的样点也可以称为像素或pel。阵列或图片的水平方向和垂直方向(或轴)上的样点的数量定义了视频帧的尺寸和/或分辨率。可以通过例如使用QT分割将视频帧划分为多个视频块。尽管视频块的尺寸比视频帧更小,但是视频块同样是或者可以被视为具有样点值的样点的二维阵列或矩阵。视频块的水平方向和垂直方向(或轴)上的样点的数量定义了视频块的尺寸。可以通过例如迭代地使用QT分割、二叉树(BT)分割或三叉树(TT)分割或者其任何组合将视频块进一步分割为一个或多个块分区或子块(其可以再次形成块)。应当注意,这里使用的术语“块”或“视频块”可以是帧或图片的一部分,尤其是矩形(正方形或非正方形)部分。例如,参考HEVC和VVC,块或视频块可以是或者对应于编码树单元(CTU)、CU、预测单元(PU)或变换单元(TU),和/或可以是或者对应于相应块,例如,编码树块(CTB)、编码块(CB)、预测块(PB)或变换块(TB)和/或子块。
预测处理单元41可以基于误差结果(例如,编码速率和失真等级)为当前视频块选择多个可能的预测编码模式中的一个,诸如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建被编码的块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(诸如运动矢量、帧内模式指示符、分割信息和其他此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于一个或更多个相邻块来执行当前视频块的帧内预测编码以提供空间预测,该一个或更多个相邻块与待编码的当前块在同一帧中。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或更多个参考帧中的一个或更多个预测块来执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可以执行多个编码遍次,例如,来为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,运动矢量估计了针对视频块的运动。运动矢量例如可以指示当前视频帧或图片内的视频块相对于参考帧内的预测块的位移,预测块是相对于当前帧内正被编码的当前块而言的。预定模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以运动估计单元42确定用于帧间预测的运动矢量类似的方式来确定用于帧内BC编码的矢量(例如,块矢量),或可以利用运动估计单元42来确定块矢量。
在像素差方面,针对视频块的预测块可以是或者可以对应于被认为与待编码的视频块紧密匹配的参考帧的块或参考块,像素差可以由绝对差总和(SAD)、平方差总和(SSD)或其他差度量确定。在一些实施方式中,视频编码器20可以计算用于DPB 64中存储的参考帧的亚整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行插值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下方式来计算针对帧间预测编码帧中的视频块的运动矢量:将视频块的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个参考帧列表标识存储在DPB 64中的一个或更多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,并且然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量来提取或生成预测块。一经接收到针对当前视频块的运动矢量,运动补偿单元44可以在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。加法器50然后通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值,来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素,以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括,例如,定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标记、或本文描述的任何其他语法信息。注意,运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而单独说明。
在一些实施方式中,帧内BC单元48可以以上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并提取预测块,但是这些预测块与正被编码的当前块在同一帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可以确定将用于编码当前块的帧内预测模式。在一些示例中,帧内BC单元48可以例如在多个单独的编码遍次期间使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可以在各种已测试的帧内预测模式中选择合适的帧内预测模式以使用,并且相应地生成帧内模式指示符。例如,帧内BC单元48可以使用率失真分析针对各种已测试的帧内预测模式来计算率失真值,并且在已测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析通常确定已编码的块与被编码以产生已编码的块的原始未编码的块之间的失真(或误差)量、以及用于产生已编码的块的比特率(即,比特数量)。帧内BC单元48可以从针对各种已编码的块的失真和速率来计算比率,以确定哪个帧内预测模式展现出针对块的最佳率失真值。
在其他示例中,帧内BC单元48可以全部地或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一种情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可以由SAD、SSD或其他差度量确定,并且预测块的识别可以包括计算针对亚整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可以通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。
作为如上面所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可以对当前视频块进行帧内预测。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为了这样做,帧内预测处理单元46可以例如在多个单独的编码遍次期间,使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可以从已测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可以将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以将指示所选择的帧内预测模式的信息编码在比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或更多个TU中,并且被提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可以将所得到的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可以减小与系数中的一些系数或全部系数相关联的比特深度。可以通过调整量化参数来修改量化的程度。在一些示例中,量化单元54然后可以执行对包括量化的变换系数的矩阵的扫描。可选地,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编解码(CAVLC)、上下文自适应二进制算术编解码(CABAC)、基于语法的上下文自适应二进制算术编解码(SBAC)、概率区间分割熵(PIPE)编解码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。经编码的比特流然后可以被发送到如图23所示的视频解码器30,或被存档于如图23所示的存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可以对用于正被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块,以用于生成用于预测其他视频块的参考块。如上文指出的,运动补偿单元44可以从DPB 64中存储的帧的一个或更多个参考块来生成经运动补偿的预测块。运动补偿单元44还可以将一个或更多个插值滤波器应用于预测块,以计算亚整数像素值以用于在运动估计时使用。
加法器62将重建的残差块加到由运动补偿单元44产生的经运动补偿的预测块来产生参考块,用于存储在DPB 64中。参考块然后可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块,以对后续视频帧中的另一视频块进行帧间预测。
图25是示出根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可以执行与上文结合图24关于视频编码器20所描述的编码过程大体上互逆的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可以被分派任务以执行本申请的实施方式。此外,在一些示例中,本公开的实施方式可以分散在视频解码器30的多个单元中的一个或更多个单元中。例如,帧内BC单元85可以单独地或与视频解码器30的其他单元(诸如运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且帧内BC单元85的功能可以由预测处理单元81的其他组件(诸如运动补偿单元82)执行。
视频数据存储器79可以存储将由视频解码器30的其他组件解码的视频数据,诸如经编码的视频比特流。视频数据存储器79中存储的视频数据可以例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得。视频数据存储器79可以包括编解码图片缓冲器(CPB),CPB存储来自经编码的视频比特流的经编码的视频数据。视频解码器30的DPB 92存储参考视频数据,以供视频解码器30(例如,以帧内或帧间预测编码模式)在解码视频数据时使用。视频数据存储器79和DPB 92可以由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)、或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图25中描绘为视频解码器30的两个不同组件。但是对本领域的技术人员将显而易见的是,视频数据存储器79和DPB 92可以由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收经编码的视频比特流,其表示经编码的视频帧的视频块和相关联的语法元素。视频解码器30可以在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其他语法元素。熵解码单元80然后将运动矢量或帧内预测模式指示符和其他语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可以基于用信号发送的帧内预测模式和来自当前帧的先前解码块的参考数据,来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其他语法元素,产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个预测块可以从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可以基于DPB 92中存储的参考帧使用默认构建技术来构建参考帧列表,列表0和列表1。
在一些示例中,当视频块根据本文描述的帧内BC模式被编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其他语法元素,产生针对当前视频块的预测块。预测块可以在与视频编码器20定义的当前视频块的同一图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其他语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行解码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、针对用于帧的参考帧列表中的一个或更多个参考帧列表的构建信息、用于帧的每个帧间预测解码视频块的运动矢量、用于帧的每个帧间预测解码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
类似地,帧内BC单元85可以使用接收到的语法元素中的一些语法元素,例如标记,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应当被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
运动补偿单元82还可以使用如由视频编码器20在视频块的编码期间使用的插值滤波器执行插值,以计算针对参考块的亚整数像素的插值值。在这种情况下,运动补偿单元82可以从接收到的语法元素确定由视频编码器20使用的插值滤波器,并且使用这些插值滤波器来产生预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换、或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其他语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重建针对当前视频块的已解码的视频块。环路滤波器91(诸如去块滤波器、SAO滤波器和/或ALF)可以位于加法器90与DPB 92之间以进一步处理已解码的视频块。在一些示例中,可以省略环路滤波器91,并且已解码的视频块可以由加法器90直接提供给DPB 92。给定帧中的已解码的视频块然后被存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分离的存储器设备还可以存储已解码的视频,以用于稍后呈现在显示器设备(诸如图23的显示器设备34)上。
本公开的描述已经出于说明的目的被呈现,并且不旨在穷举或限于本公开。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。
选择和描述示例是为了解释本公开的原理,并且使本领域的其他技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理和具有适合于预期特定用途的各种修改的各种实施方式。因此,将理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在本公开的范围内。

Claims (16)

1.一种低延迟变换跳过残差编码TSRC方法,包括:
由编码器基于视频的当前条带的编码信息来推导莱斯参数,其中所述编码信息包括以下参数中的一个或多个:
与所述视频的条带、图片或序列相关联的量化参数或编码比特深度;或
与所述视频的所述条带、所述图片或所述序列相关联的哈希率。
2.根据权利要求1所述的低延迟TSRC方法,还包括:
基于视频分辨率推导所述莱斯参数,所述视频分辨率包括所述视频的时间分辨率和空间分辨率。
3.根据权利要求1所述的低延迟TSRC方法,还包括:
在所述视频的序列级、图片级、条带级或预定义区域处推导所述莱斯参数。
4.根据权利要求3所述的低延迟TSRC方法,还包括:
针对具有不同时间标识的图片推导不同的莱斯参数值。
5.根据权利要求3所述的低延迟TSRC方法,还包括:
基于在所述视频的所述序列级、所述图片级、所述条带级或所述预定义区域采用的量化参数QP值,推导所述莱斯参数。
6.根据权利要求1所述的低延迟TSRC方法,还包括:
基于所述视频的当前条带与先前条带之间的编码信息的改变,将所述莱斯参数设置为默认值。
7.根据权利要求6所述的低延迟TSRC方法,其中针对响应于确定当前图片的时间层标识从先前图片的时间层标识被改变的图片,所述莱斯参数被设置为所述默认值。
8.根据权利要求6所述的低延迟TSRC方法,其中针对响应于确定ΔQ大于TH的图片,所述莱斯参数被设置为所述默认值,其中:
ΔQ被确定为abs(QPcurrent-QPprevious),QPcurrent是当前画面的量化参数,QPprevious是前一画面的量化参数;以及
TH是预定义阈值。
9.根据权利要求8所述的低延迟TSRC方法,其中针对响应于确定当前条带中的哈希率形式帧内块复制模式大于TH的图片,将所述莱斯参数设置为默认值1,其中TH是预定义阈值。
10.根据权利要求1所述的低延迟TSRC方法,还包括:
基于根据编解码顺序在所述视频的每个条带的先前条带中编码的参数abs_remainder的值,推导针对所述视频的每个条带的莱斯参数。
11.根据权利要求10所述的低延迟TSRC方法,还包括:
响应于确定一个条带被编码,确定用于使用不同莱斯参数对abs_remainder进行二值化的二进制位的数量;以及
基于用于abs_remainder进行二值化的二进制位的所述数量来确定针对后续条带的莱斯参数。
12.根据权利要求10所述的低延迟TSRC方法,还包括:
选择在先前条带中实现最小二进制位数量的莱斯参数作为针对当前条带的莱斯参数。
13.根据权利要求10所述的低延迟TSRC方法,还包括:
响应于确定当前条带和先前条带采用一个相同的QP,选择在先前条带中实现最小二进制位数量的莱斯参数作为针对当前条带的莱斯参数;以及
响应于确定当前条带和先前条带采用不同的QP:
通过预定义阈值对在先前条带中用默认莱斯参数生成的二进制位的数量进行缩放;
将所述默认莱斯参数与其他莱斯参数进行比较;以及
选择令当前条带得到最小数量二进制位的莱斯参数。
14.根据权利要求1所述的低延迟TSRC方法,还包括:
基于根据编码顺序在所述视频的每个条带先前条带中编码的参数abs_remainder的值,推导针对所述视频的每个条带的莱斯参数;以及
基于所述视频的当前条带与先前条带之间的编码信息的改变来调整所述莱斯参数。
15.一种用于视频编解码的设备,包括:
一个或多个处理器;以及
存储器,被配置为存储能够由所述一个或多个处理器执行的指令,其中所述一个或多个处理器在执行所述指令时被配置为执行权利要求1至14中任一项所述的方法。
16.一种用于视频编解码的非暂态计算机可读存储介质,存储计算机可执行程序,其中所述计算机可执行程序在由一个或多个计算机处理器执行时使所述一个或多个计算机处理器执行权利要求1至14中任一项所述的方法。
CN202280019867.4A 2021-03-29 2022-03-25 用于视频编解码的残差和系数编解码 Pending CN116965033A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163167621P 2021-03-29 2021-03-29
US63/167,621 2021-03-29
PCT/US2022/022054 WO2022212214A1 (en) 2021-03-29 2022-03-25 Residual and coefficients coding for video coding

Publications (1)

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

Family

ID=83456879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280019867.4A Pending CN116965033A (zh) 2021-03-29 2022-03-25 用于视频编解码的残差和系数编解码

Country Status (6)

Country Link
US (1) US20240040134A1 (zh)
EP (1) EP4315862A1 (zh)
JP (1) JP2024513551A (zh)
KR (1) KR20230162806A (zh)
CN (1) CN116965033A (zh)
WO (1) WO2022212214A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US20220286691A1 (en) * 2019-08-23 2022-09-08 Lg Electronics Inc. Method and apparatus for deriving rice parameter in video/image coding system
US11470334B2 (en) * 2019-09-23 2022-10-11 Qualcomm Incorporated Rice parameter derivation for lossless/lossy coding modes for video coding
US11265536B2 (en) * 2019-09-23 2022-03-01 Tencent America LLC Method to extend the range of rice parameter for residual coding in transform skip mode

Also Published As

Publication number Publication date
EP4315862A1 (en) 2024-02-07
US20240040134A1 (en) 2024-02-01
WO2022212214A1 (en) 2022-10-06
KR20230162806A (ko) 2023-11-28
JP2024513551A (ja) 2024-03-26

Similar Documents

Publication Publication Date Title
CN115361561B (zh) 残差和系数编解码的方法和装置
CN114710679B (zh) 视频编解码中的小色度块大小限制
CN116668695B (zh) 用于视频编码的方法、计算设备和存储介质
CN114567786B (zh) 以4:4:4色度格式进行视频编解码的方法和装置
US20230379500A1 (en) Residual and coefficients coding for video coding
JP7201873B2 (ja) 残差及び係数符号化の方法、プログラム並びに装置
WO2021030667A1 (en) Methods and apparatus of video coding using palette mode
CN116746148A (zh) 用于视频编解码的残差和系数编解码
CN116803077A (zh) 用于视频编解码的残差和系数编解码
US20220303580A1 (en) Methods and apparatus of video coding in 4:4:4 chroma format
CN116614625B (zh) 一种视频编码的方法、装置和介质
CN117546469A (zh) 用于视频编解码的残差和系数编解码
CN116965033A (zh) 用于视频编解码的残差和系数编解码
US20240179314A1 (en) Residual and coefficients coding for video coding
CN114556932B (zh) 用于视频编解码的无损编解码模式
CN115004706B (zh) 关于变换和系数信令的方法和装置
CN117378201A (zh) 用于视频编解码的残差和系数编解码
WO2021062017A1 (en) Methods and apparatus of performing rate-distortion analysis for palette mode
CN117643058A (zh) 用于视频编解码的残差和系数编解码

Legal Events

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