CN116746148A - 用于视频编解码的残差和系数编解码 - Google Patents
用于视频编解码的残差和系数编解码 Download PDFInfo
- Publication number
- CN116746148A CN116746148A CN202180076702.6A CN202180076702A CN116746148A CN 116746148 A CN116746148 A CN 116746148A CN 202180076702 A CN202180076702 A CN 202180076702A CN 116746148 A CN116746148 A CN 116746148A
- Authority
- CN
- China
- Prior art keywords
- encoder
- rice
- value
- coding
- residual
- 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
Links
- 241000209094 Oryza Species 0.000 claims abstract description 262
- 235000007164 Oryza sativa Nutrition 0.000 claims abstract description 262
- 235000009566 rice Nutrition 0.000 claims abstract description 262
- 238000000034 method Methods 0.000 claims abstract description 222
- 238000013139 quantization Methods 0.000 claims abstract description 64
- 230000011664 signaling Effects 0.000 claims description 23
- 238000009795 derivation Methods 0.000 description 81
- 230000008569 process Effects 0.000 description 71
- 238000010586 diagram Methods 0.000 description 26
- 238000013507 mapping Methods 0.000 description 24
- 230000002123 temporal effect Effects 0.000 description 16
- 238000000638 solvent extraction Methods 0.000 description 12
- 241000023320 Luma <angiosperm> Species 0.000 description 11
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 11
- 230000001419 dependent effect Effects 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 101000581533 Homo sapiens Methylcrotonoyl-CoA carboxylase beta chain, mitochondrial Proteins 0.000 description 1
- 102100027320 Methylcrotonoyl-CoA carboxylase beta chain, mitochondrial Human genes 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了方法、装置和非暂态计算机可读存储介质用于视频编码。编码器可接收视频输入。编码器可基于视频输入获得量化参数。编码器可基于至少一个预定义阈值、编码比特深度和量化参数来推导莱斯参数。编码器基于莱斯参数对视频比特流进行熵编码。
Description
相关申请的交叉引用
本申请基于并要求于2020年11月18日提交的申请号为63/115,595的临时申请的优先权,其全部内容通过引用以其整体并入本文用于所有目的。
技术领域
本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码的残差和系数编解码的改进和简化。
背景技术
各种视频编解码技术可以用于压缩视频数据。视频编解码是根据一个或多个视频编解码标准来执行的。例如,视频编解码标准包括通用视频编解码(versatile videocoding,VVC)、联合探索测试模型(joint exploration test model,JEM)、高效视频编解码(H.265/high-efficiency video coding,HEVC)、高级视频编解码(H.264/advanced videocoding,AVC)、运动图片专家组(moving picture expert group,MPEG)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等),预测方法利用了视频图像或序列中存在的冗余。视频编解码技术的重要目标在于将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的下降。
发明内容
本公开的示例提供了用于视频编解码的方法和装置。
根据本公开的第一方面,提供一种用于视频编码的方法。所述方法可包括编码器接收视频输入。所述编码器还可基于所述视频输入获得量化参数。所述编码器还可基于至少一个预定义阈值、编码比特深度和所述量化参数来推导莱斯参数。所述编码器还可基于所述莱斯参数对视频比特流进行熵编码。
根据本公开的第二方面,提供一种用于视频编码的方法。所述方法可包括编码器接收视频输入。所述编码器还可用信号发送针对编码语法元素的二进制码字的莱斯参数。所述编码语法元素可包括变换跳过残差编解码中的abs_remainder。所述编码器还可基于所述莱斯参数和所述视频输入对视频比特流进行熵编码。
根据本公开的第三方面,提供一种用于视频解码的方法。所述方法可包括解码器接收视频输入。所述解码器还可基于所述视频输入获得量化参数。所述解码器还可基于至少一个预定义阈值、编码比特深度和所述量化参数来推导莱斯参数。所述解码器还可基于所述莱斯参数对视频比特流进行熵解码。
根据本公开的第四方面,提供一种用于视频解码的方法。所述方法可包括解码器接收比特流输入。所述解码器还可接收针对编码语法元素的二进制码字的莱斯参数。所述编码语法元素可包括变换跳过残差编解码中的abs_remainder。所述解码器还可基于所述莱斯参数和所述比特流输入对视频比特流进行熵解码。
将被理解,上面的总体描述和下面的详细描述仅是示例性和说明性的,并不旨在限制本公开。
附图说明
附图被并入本说明书中并构成本说明书的一部分,附图示出了与本公开一致的示例并且与描述一起用于解释本公开的原理。
图1是根据本公开的示例的编码器的框图。
图2是根据本公开的示例的解码器的框图。
图3A是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3B是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3C是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3D是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3E是说明根据本公开的示例的多类型树结构中的块分割的示图。
图4是根据本公开的示例的具有18乘12个亮度编码树单元(Coding Tree Unit,CTU)的图片的示图。
图5是根据本公开的示例的具有18乘12个亮度CTU的图片的图示。
图6A是根据本公开的示例的视频测试模型(Video 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是示出根据本公开的示例的与用户接口耦接的计算环境的示图。
具体实施方式
现在将详细参照示例实施例,其示例在附图中示出。以下描述参考附图,其中不同附图中的相同标号表示相同或相似的元件,除非另有表示。在示例实施例的以下描述中阐述的实现方式不表示与本公开一致的所有实现方式。相反,它们仅是与如所附权利要求中所记载的与本公开相关的方面一致的装置和方法的示例。
本公开中使用的术语仅用于描述特定实施例的目的,并且不旨在限制本公开。如在本公开和所附权利要求中所使用的,单数形式“一种”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。还应当理解,本文使用的术语“和/或”旨在表示和包括一个或多个相关联的所列项目的任何或所有可能的组合。
应当理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是所述信息不应受这些术语的限制。这些术语仅用于将一类信息与另一类信息区分开。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,根据上下文,术语“如果”可以被理解为意指“当......时”或“一经......”或“响应于判断”。
HEVC标准的第一版本在2013年10月完成,与前一代视频编解码标准H.264/MPEGAVC相比,HEVC标准的第一版本提供大约50%的比特率节省或同等的感知质量。尽管HEVC标准提供了与其前身相比显著的编解码改进,但有证据表明可以利用额外编解码工具实现优于HEVC的编解码效率。基于此,视频编码专家组(Video Coding Experts Group,VCEG)和MPEG都开始了用于未来视频编解码标准化的新编解码技术的探索工作。ITU-T VECG和ISO/IEC MPEG在2015年10月形成了一个联合视频探索小组(Joint Video Exploration Team,JVET),以开始对可实现显著提高编解码效率的先进技术的重要研究。JVET通过在HEVC测试模型(HM)之上集成若干额外编解码工具,来维护一个被称为联合探索模型(jointexploration 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组合,以生成用于当前视频块的未经滤波的重建像素。
空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编码的相邻块的样点(其被称为参考样点)的像素,来预测当前视频块。
时间预测(也被称为“帧间预测”)使用来自已经编码的视频图片的重建像素,来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。用于给定编码单元(codingunit,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,诸如去块滤波器、样点自适应偏移(sample adaptive offset,SAO)、和/或自适应环路滤波器(adaptivein-loop filter,ALF)。为了形成输出视频比特流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,或使用三个单独颜色平面和用于编码样点的语法结构被编码成的图片的样点的CTB。另外,HEVC中的多分割单元类型的概念被去除,也即,在VVC中不再区分CU、预测单元(prediction unit,PU)和变换单元(transform unit,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的矩形区域。瓦片组是图片的仅包含在单个网络抽象层(Network Abstract Layer,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 Unit,VPDU)
虚拟流水线数据单元(VPDU)被定义为图片中的非重叠单元。在硬件解码器中,连续的VPDU通过多个流水线站被同时处理。VPDU尺寸与大多数流水线站中的缓冲器大小大致成比例,因此保持VPDU尺寸较小是重要的。在大多数硬件解码器中,VPDU尺寸可以被设置为最大变换块(transform block,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中的变换系数编解码在使用非重叠系数组(也称为系数组(coefficientgroup,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设置为所允许的经上下文编码的二进制位的最大数量(maximum number of context-coded bins,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均值聚类算法。将块的第一样点添加到调色板。然后,对于来自该块的每个后续样点,计算样点与每个当前调色板颜色之间的绝对差之和(sum of absolute difference,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阶指数哥伦布(Exp-Golomb)二值化过程(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)的数量超过针对变换跳过模式和常规变换模式两者的限制之前应用等级映射。
根据本公开的第十一方面,用于推导等级映射中的映射位置的相同方法被用于变换跳过模式和常规变换模式两者。在一个示例中,提出将在变换跳过模式下使用的等级映射中的映射位置的推导方法也应用于常规变换模式。在另一示例中,提出将在常规变换模式下使用的等级映射中的映射位置的推导方法也应用于变换跳过模式。
根据本公开的第十二方面,将相同的等级映射方法应用于变换跳过模式和常规变换模式两者。在一个示例中,提出将在变换跳过模式下使用的等级映射函数也应用于常规变换模式。在另一示例中,提出将在常规变换模式下使用的等级映射函数也应用于变换跳过模式。
残差编解码中的莱斯参数推导的简化
根据本公开的第十三方面,提出在使用哥伦布-莱斯(Golomb-Rice)码对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)来确定计数器。一个具体示例,ricePar ameter=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莱斯参数推导过程
可以使用包括一个或多个电路的装置来实现上述方法,一个或多个电路包括专用集成电路(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 (20)
1.一种用于视频编码的方法,包括:
由编码器接收视频输入;
由所述编码器基于所述视频输入获得量化参数;
由所述编码器基于至少一个预定义阈值、编码比特深度和所述量化参数来推导莱斯参数;以及
由所述编码器基于所述莱斯参数对视频比特流进行熵编码。
2.根据权利要求1所述的方法,其中由所述编码器推导所述莱斯参数包括:
由所述编码器接收等于1的extended_precision_processing_flag;
由所述编码器接收等于1的transform_skip_flag;
由所述编码器接收等于0的sh_ts_residual_coding_disabled_flag;以及
由所述编码器基于所述至少一个预定义阈值、所述编码比特深度和所述量化参数来推导所述莱斯参数。
3.根据权利要求2所述的方法,其中所述至少一个预定义阈值包括等于8的第一预定义阈值和等于19的第二预定义阈值。
4.根据权利要求1所述的方法,其中由所述编码器基于所述至少一个预定义阈值、所述编码比特深度和所述量化参数来推导所述莱斯参数包括:
由所述编码器基于所述编码比特深度减去第一预定义阈值来推导第一值,其中所述至少一个预定义阈值包括所述第一预定义阈值和第二预定义阈值;
由所述编码器基于所述第二预定义阈值与所述量化参数之间的差除以6来推导第二值;以及
由所述编码器基于根据最小值和所述第一值对所述第二值进行裁剪来推导所述莱斯参数。
5.根据权利要求4所述的方法,其中根据最小值和所述第一值对所述第二值进行裁剪包括:
当所述第二值小于所述最小值时,将所述莱斯参数设置为等于所述最小值;
当所述第二值大于所述第一值时,将所述莱斯参数设置为等于所述第一值;以及
当所述第二值大于所述最小值且小于所述第一值时,将所述莱斯参数设置为等于所述第二值。
6.根据权利要求1所述的方法,其中由所述编码器基于所述至少一个预定义阈值、所述编码比特深度和所述量化参数来推导所述莱斯参数包括:
由所述编码器基于所述编码比特深度减去第一预定义阈值来推导第一值,其中所述至少一个预定义阈值包括所述第一预定义阈值和第二预定义阈值;
由所述编码器基于所述第二预定义阈值、所述编码比特深度与所述量化参数之间的差除以6来推导第二值;
由所述编码器基于所述第二值的向下取整值来推导第三值;以及
由所述编码器基于根据最小值和所述第一值对所述第三值进行裁剪来推导所述莱斯参数。
7.根据权利要求1所述的方法,其中由所述编码器基于所述至少一个预定义阈值、所述编码比特深度和所述量化参数来推导所述莱斯参数包括:
由所述编码器基于所述至少一个预定义阈值与所述量化参数之间的差除以6来推导第一值;以及
由所述编码器基于根据最小值和最大值对所述第一值进行裁剪来推导所述莱斯参数。
8.根据权利要求7所述的方法,其中所述最小值等于1并且所述最大值等于8。
9.一种用于视频编码的方法,包括:
由编码器接收视频输入;
由所述编码器用信号发送针对编码语法元素的二进制码字的莱斯参数,其中所述编码语法元素包括变换跳过残差编解码中的abs_remainder;以及
由所述编码器基于所述莱斯参数和所述视频输入对视频比特流进行熵编码。
10.根据权利要求9所述的方法,其中由所述编码器用信号发送针对编码语法元素的二进制码字的莱斯参数包括:
由所述编码器在条带头中用信号发送控制标志,其中所述控制标志指示是否启用针对变换跳过的莱斯参数;以及
由所述编码器用信号发送针对所述编码语法元素的二进制码字的莱斯参数,其中所述编码语法元素包括变换跳过残差编解码中的abs_remainder。
11.根据权利要求9所述的方法,其中由所述编码器用信号发送针对所述编码语法元素的二进制码字的莱斯参数包括:
由所述编码器在条带头中用信号发送控制标志,其中所述控制标志指示是否启用用于推导变换块中的莱斯参数的移位参数;以及
由所述编码器用信号发送针对所述编码语法元素的二进制码字的莱斯参数,其中所述编码语法元素包括变换跳过残差编解码中的abs_remainder。
12.一种用于视频解码的方法,包括:
由解码器接收比特流输入;
由所述解码器基于所述比特流输入接收量化参数;
由所述解码器基于至少一个预定义阈值、编码比特深度和所述量化参数来推导莱斯参数;以及
由所述解码器基于所述莱斯参数对视频比特流进行熵解码。
13.根据权利要求12所述的方法,其中由所述解码器推导所述莱斯参数包括:
由所述解码器接收等于1的extended_precision_processing_flag;
由所述解码器接收等于1的transform_skip_flag;
由所述解码器接收等于0的sh_ts_residual_coding_disabled_flag;以及
由所述解码器基于所述至少一个预定义阈值、所述编码比特深度和所述量化参数来推导所述莱斯参数。
14.根据权利要求13所述的方法,其中所述至少一个预定义阈值包括等于8的第一预定义阈值和等于19的第二预定义阈值。
15.根据权利要求12所述的方法,其中由所述解码器基于所述至少一个预定义阈值、所述编码比特深度和所述量化参数来推导所述莱斯参数包括:
由所述解码器基于所述编码比特深度减去第一预定义阈值来推导第一值,其中所述至少一个预定义阈值包括所述第一预定义阈值和第二预定义阈值;
由所述解码器基于所述第二预定义阈值与所述量化参数之间的差除以6来推导第二值;以及
由所述解码器基于根据最小值和所述第一值对所述第二值进行裁剪来推导所述莱斯参数。
16.一种用于视频解码的方法,包括:
由解码器接收比特流输入;
由所述解码器接收针对编码语法元素的二进制码字的莱斯参数,其中,所述编码语法元素包括变换跳过残差编解码中的abs_remainder;以及
由所述解码器基于所述莱斯参数和所述比特流输入对视频比特流进行熵解码。
17.根据权利要求16所述的方法,其中由所述解码器接收针对编码语法元素的二进制码字的莱斯参数包括:
由所述解码器接收条带头中的控制标志,其中所述控制标志指示是否启用针对变换跳过的莱斯参数;以及
由所述解码器接收针对所述编码语法元素的二进制码字的莱斯参数,其中所述编码语法元素包括变换跳过残差编解码中的abs_remainder。
18.根据权利要求16所述的方法,其中由所述解码器接收针对所述编码语法元素的二进制码字的莱斯参数包括:
由所述解码器接收条带头中的控制标志,其中所述控制标志指示是否启用用于推导变换块中的莱斯参数的移位参数;以及
由所述解码器接收针对所述编码语法元素的二进制码字的莱斯参数,其中所述编码语法元素包括变换跳过残差编解码中的abs_remainder。
19.一种计算设备,包括:
一个或多个处理器;以及
非暂态计算机可读存储介质,存储能够由所述一个或多个处理器执行的指令,其中所述一个或多个处理器被配置为执行根据权利要求1至18中任一项所述的方法。
20.一种非暂态计算机可读存储介质,存储用于由具有一个或多个处理器的计算设备执行的多个程序,其中所述多个程序在由所述一个或多个处理器执行时使所述计算设备执行根据权利要求1至18中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063115595P | 2020-11-18 | 2020-11-18 | |
US63/115,595 | 2020-11-18 | ||
PCT/US2021/059636 WO2022108978A1 (en) | 2020-11-18 | 2021-11-17 | Residual and coefficients coding for video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116746148A true CN116746148A (zh) | 2023-09-12 |
Family
ID=81709657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180076702.6A Pending CN116746148A (zh) | 2020-11-18 | 2021-11-17 | 用于视频编解码的残差和系数编解码 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230291906A1 (zh) |
EP (1) | EP4248651A4 (zh) |
CN (1) | CN116746148A (zh) |
WO (1) | WO2022108978A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021071188A1 (ko) * | 2019-10-07 | 2021-04-15 | 엘지전자 주식회사 | 비디오/영상 코딩 시스템에서 엔트로피 코딩 방법 및 장치 |
CN116668695B (zh) * | 2020-09-23 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 用于视频编码的方法、计算设备和存储介质 |
WO2022217442A1 (zh) * | 2021-04-12 | 2022-10-20 | Oppo广东移动通信有限公司 | 系数编解码方法、编码器、解码器以及计算机存储介质 |
JP2024523793A (ja) | 2021-06-29 | 2024-07-02 | オッポ広東移動通信有限公司 | コーデック方法、コードストリーム、符号化装置、復号化装置及びコンピュータ記憶媒体 |
Family Cites Families (3)
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 |
US10448056B2 (en) * | 2016-07-15 | 2019-10-15 | Qualcomm Incorporated | Signaling of quantization information in non-quadtree-only partitioned video coding |
BR112021004516B1 (pt) * | 2018-09-11 | 2021-12-14 | Lg Electronics Inc | Método de decodificação de imagem executado por um aparelho de decodificação, método de codificação de imagem executado por um aparelho de codificação e mídia de armazenamento legível por computador |
-
2021
- 2021-11-17 CN CN202180076702.6A patent/CN116746148A/zh active Pending
- 2021-11-17 EP EP21895481.6A patent/EP4248651A4/en active Pending
- 2021-11-17 WO PCT/US2021/059636 patent/WO2022108978A1/en active Application Filing
-
2023
- 2023-05-16 US US18/198,253 patent/US20230291906A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230291906A1 (en) | 2023-09-14 |
EP4248651A1 (en) | 2023-09-27 |
EP4248651A4 (en) | 2024-10-16 |
WO2022108978A1 (en) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI753356B (zh) | 用於編碼或解碼轉換塊的方法與裝置 | |
KR20220006134A (ko) | 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체 | |
CN116668695B (zh) | 用于视频编码的方法、计算设备和存储介质 | |
KR20180044969A (ko) | 이미지 및 비디오 코딩에서 구문 요소에 대한 컨텍스트 모델링의 방법 및 장치 | |
CN116746148A (zh) | 用于视频编解码的残差和系数编解码 | |
JP2023504332A (ja) | 符号化ツリーユニットを符号化および復号化するための方法、装置およびシステム | |
JP2023504333A (ja) | 符号化ツリーユニットを符号化および復号化するための方法、装置およびシステム | |
US20240040129A1 (en) | Residual and coefficients coding for video coding | |
CN118555399A (zh) | 用于视频编码的残差和系数编码 | |
CN118632028A (zh) | 用于视频编解码的残差和系数编解码 | |
RU2820669C1 (ru) | Кодирование коэффициентов и остатка для кодирования видео | |
CN114175653B (zh) | 用于视频编解码中的无损编解码模式的方法和装置 | |
CN116965033A (zh) | 用于视频编解码的残差和系数编解码 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |