CN117378201A - 用于视频编解码的残差和系数编解码 - Google Patents
用于视频编解码的残差和系数编解码 Download PDFInfo
- Publication number
- CN117378201A CN117378201A CN202280037417.8A CN202280037417A CN117378201A CN 117378201 A CN117378201 A CN 117378201A CN 202280037417 A CN202280037417 A CN 202280037417A CN 117378201 A CN117378201 A CN 117378201A
- Authority
- CN
- China
- Prior art keywords
- rice
- video
- flag
- 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 227
- 235000007164 Oryza sativa Nutrition 0.000 claims abstract description 227
- 235000009566 rice Nutrition 0.000 claims abstract description 227
- 238000000034 method Methods 0.000 claims abstract description 168
- 238000009795 derivation Methods 0.000 claims abstract description 66
- 238000003860 storage Methods 0.000 claims abstract description 19
- 230000006978 adaptation Effects 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 18
- 230000003044 adaptive effect Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 description 62
- 238000012545 processing Methods 0.000 description 44
- 238000013139 quantization Methods 0.000 description 43
- 239000013598 vector Substances 0.000 description 32
- 238000010586 diagram Methods 0.000 description 28
- 230000002123 temporal effect Effects 0.000 description 23
- 238000000638 solvent extraction Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000011664 signaling Effects 0.000 description 12
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 7
- 238000005192 partition Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping 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
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/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/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/174—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 slice, e.g. a line of blocks or a group of 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/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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- 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/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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
提供了用于视频解码的方法、装置和非暂态计算机可读存储介质。在一种方法中,解码器接收序列参数集(SPS)莱斯扩展标志,其指示是否启用用于二值化abs_remainder和dec_abs_level的莱斯参数推导的扩展。在第二方法中,解码器可以接收序列参数集(SPS)莱斯自适应启用标志,其指示是否在每个变换单元(TU)的开始处利用从先前TU累积的统计数据来初始化用于二值化abs_remainder和dec_abs_level的莱斯参数推导。
Description
相关申请的交叉引用
本申请基于并要求于2021年05月26日提交的申请号为63/193,593的临时申请的优先权,其全部内容通过引用并入本文用于所有目的。
技术领域
本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码的残差和系数编解码的改进和简化。
背景技术
各种视频编解码技术可以用于压缩视频数据。视频编解码是根据一个或多个视频编解码标准来执行的。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型(JEM)、高效视频编解码(H.265/HEVC)、高级视频编解码(H.264/AVC)、运动图片专家组(MPEG)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等),预测方法利用了视频图像或序列中存在的冗余。视频编解码技术的重要目标在于将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的下降。
发明内容
本公开的示例提供了用于视频编解码的方法和装置。
根据本公开的第一方面,提供了一种用于视频解码的方法。所述方法可包括:由解码器接收序列参数集(SPS)莱斯扩展标志,所述SPS莱斯扩展标志指示是否启用用于二值化abs_remainder和dec_abs_level的莱斯参数推导的扩展。参数abs_remainder指示第一语法元素,所述第一语法元素是当在第一通道编码时经上下文编码的二进制位的剩余数量大于或等于4时,在第二通道利用哥伦布-莱斯码和经旁路编码的二进制位编码的系数的等级信息的其余部分。参数dec_abs_level指示第二语法元素,所述第二语法元素是当在所述第一通道编码时经上下文编码的二进制位的剩余数量小于4时,在所述第二通道使用哥伦布-莱斯码和经旁路编码的二进制位直接编码的当前系数。
根据本公开的第二方面,提供一种用于视频解码的方法。所述方法可包括:由解码器接收序列参数集(SPS)莱斯自适应启用标志,所述SPS莱斯自适应启用标志指示是否在每个变换单元(TU)的开始处利用从先前TU累积的统计数据来初始化用于二值化abs_remainder和dec_abs_level的莱斯参数推导。参数abs_remainder指示第一语法元素,所述第一语法元素是当在第一通道编码时经上下文编码的二进制位的剩余数量大于或等于4时,在第二通道利用哥伦布-莱斯码和经旁路编码的二进制位编码的系数的等级信息的其余部分。参数dec_abs_level指示第二语法元素,所述第二语法元素是当在所述第一通道编码时经上下文编码的二进制位的剩余数量小于4时,在所述第二通道使用哥伦布-莱斯码和经旁路编码的二进制位直接编码的当前系数。
将被理解,上面的总体描述和下面的详细描述仅是示例性和说明性的,并不旨在限制本公开。
附图说明
附图被并入本说明书中并构成本说明书的一部分,附图示出了与本公开一致的示例并且与描述一起用于解释本公开的原理。
图1是根据本公开的示例的编码器的框图。
图2是根据本公开的示例的解码器的框图。
图3A是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3B是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3C是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3D是说明根据本公开的示例的多类型树结构中的块分割的示图。
图3E是说明根据本公开的示例的多类型树结构中的块分割的示图。
图4是根据本公开的示例的用于变换块的残差编解码结构的图示。
图5是根据本公开的示例的用于变换跳过块的残差编解码结构的图示。
图6是根据本公开的示例的用于对视频信号进行编码的方法。
图7是根据本公开的示例的用于对视频信号进行编码的方法。
图8是示出根据本公开的示例的与用户接口耦接的计算环境的示图。
图9示出根据本公开的示例的用于视频编解码的方法。
图10示出根据本公开的示例的用于视频编解码的方法。
图11示出根据本公开的示例的用于视频编解码的方法。
图12示出根据本公开的示例的用于视频编解码的方法。
图13是示出根据本公开的示例的用于对视频块进行编码和解码的示例性***的框图。
图14是示出根据本公开的示例的示例性视频编码器的框图。
图15是示出根据本公开的示例的示例性视频解码器的框图。
图16示出根据本公开的示例的低延迟变换跳过残差编解码(TSRC)方法。
图17示出根据本公开的示例的用于视频解码的方法。
图18示出根据本公开的示例的用于视频解码的方法。
具体实施方式
现在将详细参照示例实施例,其示例在附图中示出。以下描述参考附图,其中不同附图中的相同标号表示相同或相似的元件,除非另有表示。在示例实施例的以下描述中阐述的实现方式不表示与本公开一致的所有实现方式。相反,它们仅是与如所附权利要求中所记载的与本公开相关的方面一致的装置和方法的示例。
本公开中使用的术语仅用于描述特定实施例的目的,并且不旨在限制本公开。如在本公开和所附权利要求中所使用的,单数形式“一种”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。还应当理解,本文使用的术语“和/或”旨在表示和包括一个或多个相关联的所列项目的任何或所有可能的组合。
应当理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是所述信息不应受这些术语的限制。这些术语仅用于将一类信息与另一类信息区分开。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,根据上下文,术语“如果”可以被理解为意指“当......时”或“一经......”或“响应于判断”。
图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中的变换系数编解码
在VVC中的变换系数编解码中,首先将变量remBinsPass1设置为所允许的经上下文编码的二进制位的最大数量(MCCB)。在编码过程中,每当经上下文编码的二进制位被用信号发送时,该变量减少一。当remBinsPass1大于或等于4时,首先通过语法sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag用信号发送系数,所有这些语法在第一通道使用经上下文编码的二进制位。在第二通道使用哥伦布莱斯编码和经旁路编码的二进制位利用语法元素abs_remainder对系数的等级信息的其余部分进行编码。当在第一通道编码时remBinsPass1变得小于4时,当前系数在第一通道不被编码,而是在第二通道使用哥伦布莱斯编码和经旁路编码的二进制位利用语法元素dec_abs_level被直接编码。针对dec_abs_level[]的莱斯参数推导过程如表1A中所指定的那样进行推导。在所有上述等级编码之后,针对sig_coeff_flag等于1的所有扫描位置的符号(sign_flag)最终被编码为旁路二进制位。在图4中描绘了这样的过程。针对每个TB重置remBinsPass1。从针对sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag使用经上下文编码的二进制位到针对其余系数使用经旁路编码的二进制位的转变,每TB仅发生至多一次。对于系数子块,如果在对其第一个系数进行编码之前remBinsPass1小于4,则使用经旁路编码的二进制位对整个系数子块进行编码。
图4示出了用于变换块的残差编解码结构的图示。
表1A针对abs_remainder[]和dec_abs_level[]的莱斯参数推导过程
表1B基于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中的针对变换跳过模式的残差编解码
在变换跳过模式下,残差信号的统计特性不同于变换系数的统计特性,并且没有观察到低频分量周围的能量压缩。残差编解码被修改为考虑(空间)变换跳过残差的不同信号特性。
图5示出了用于变换跳过块的残差编解码结构的图示。
一般约束信息
GCI结构包含若干类型的约束语法元素,包括:用于一般比特流限制的标志,诸如指示仅使用帧内编解码、所有层独立地被编解码或者比特流仅包含一个AU;约束编码图片的比特深度和色度格式的字段;指示特定NAL单元类型不允许存在于比特流内的标志;比特流内约束图片能够被分割为条带、瓦片和子图片的方式的标志;约束CTU尺寸以及分割树大小和类型的标志;约束特定帧内编解码工具使用的标志;约束特定帧间编解码工具使用的标志;约束变换、量化和残差编解码工具的标志;和约束环路滤波器方面的标志。
GCI语法结构的目的是能够简单地发现关于解码比特流所需特征的配置信息,并允许用信号发送互操作性点,所述互操作性点施加的限制超出了简档、层(Tier)和等级(PTL)所指定的限制,所述互操作性点的粒度比先前视频编解码标准所允许的更细。与子简档类似,GCI语法结构的使用可以允许针对不支持VVC简档的所有特征但满足特定应用需求的解码器实现来定义互操作性。解码器实现可以检查GCI语法元素以检查比特流是否避免使用特定特征,以便确定如何配置解码过程并识别该比特流是否可由解码器解码。支持VVC简档的所有特征的解码器实现可以忽略GCI语法元素值,因为这样的解码器将能够解码符合所指示的PTL的任何比特流。
用于变换跳过的残差编解码
根据本公开的第二十七方面,提出使用二进制码字的变量集合来对变换跳过残差编解码中的特定语法元素(例如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),在不同条件下而不同。一个具体示例是TH1至TH4是满足(TH1<TH2<TH3<TH4)的预定义阈值,并且K0至K4是预定义的莱斯参数。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于根据当前CU/序列的比特深度值来推导相同的莱斯参数。
第二,固定长度二值化。
第三,截断莱斯二值化。
第四,截断二进制(TB)二值化过程。
第五,k阶指数哥伦布二值化过程(EGK)。
第六,有限k阶指数哥伦布二值化。
基于VVC草案的对应解码过程的示例如下所示,对VVC草案的改变在表1中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表1莱斯参数推导过程
在另一示例中,当新标志(例如,extended_precision_processing_flag)等于1时,在对abs_remainder的语法元素进行编解码时,针对莱斯参数仅使用一个固定值。基于VVC草案的对应解码过程如下所示,其中改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表2中以粗体和斜体字体示出。
表2莱斯参数推导过程
在又一示例中,当新标志(例如,extended_precision_processing_flag)等于1时,莱斯参数cRiceParam被固定为n,其中n为正数(例如,2、3、4、5、6、7或8)。固定值可以在不同条件下不同。基于VVC草案的对应解码过程如下所示,其中以粗体和斜体字体示出改变,并且以斜体字体示出删除的内容。对VVC草案的改变在表3中以粗体和斜体示出。
表3莱斯参数推导过程
在又一示例中,当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草案的改变在表4中以粗体和斜体字体示出。
表4莱斯参数推导过程
在又一示例中,在条带头中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数。当控制标志被用信号发送为启用时,针对每个变换跳过条带进一步用信号发送用于指示该条带的莱斯参数的一个语法元素。当控制标志被用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1)。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义值(例如0、1、2),并且改变的内容以粗体和斜体字体示出,并且删除的内容以斜体字体示出。对VVC草案的改变在表5中以粗体和斜体字体示出。值得注意的是,sh_ts_residual_coding_rice_index可以按照不同的方式进行编解码和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
条带头语法
表5残差编解码的语法
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()语法结构使用的莱斯参数。
表6莱斯参数推导过程
在又一示例中,在序列参数集(或在序列参数集范围扩展语法)中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数。当控制标志用信号发送为启用时,针对每个变换跳过条带进一步用信号发送用于指示该条带的莱斯参数的一个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1)。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义值(例如0、1、2)。对VVC草案的改变在表7中以粗体和斜体字体示出,并且删除的内容以删除线字体示出。值得注意的是,sh_ts_residual_coding_rice_idx可以按照不同的方式进行编解码和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
序列参数集RBSP语法
表7残差编解码的语法
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。
条带头语法
表8残差编解码的语法
/>
sh_ts_residual_coding_rice_idx指定针对residual_ts_coding()语法结构使用的莱斯参数。
表9莱斯参数推导过程
在本公开的一个或多个示例中,提出在变换跳过被禁用的情况下,禁用用于变换跳过残差编解码的莱斯参数的存在。在一个具体示例中,为了实现这样的设计目的,提出使用sps_transform_skip_enabled_flag来控制sps_ts_residual_coding_rice_preset_in_sh_flag的存在。例如,当标志sps_transform_skip_enabled_flag等于0时(即,变换跳过在当前图片处被禁用),不用信号发送sps_ts_residual_coding_rice_preset_in_sh_flag,而是将其推断为0。当标志sps_transform_skip_enabled_flag等于1时,进一步用信号发送sps_ts_residual_coding_rice_present_in_sh_flag。对当前VVC工作草案的改变以斜体如下示出。
if(sps_transform_skip_enabled_flag) | |
sps_ts_residual_coding_rice_present_in_sh_flag | u(1) |
在另一具体示例中,为了实现这种设计目的,提出针对sps_ts_residual_coding_rice_present_in_sh_flag添加与sps_transform_skip_enabled_flag相关的比特流一致性的要求。例如,比特流一致性的要求是,当sps_transform_skip_enabled_flag等于0时,sps_ts_residual_coding_rice_present_in_sh_flag的值应等于0。对当前VVC工作草案的改变以斜体如下示出。
序列参数集范围扩展语义
sps_ts_residual_coding_rice_preset_in_sh_flag等于1指定在参考SPS的slice_header()语法结构中可以存在sh_ts_residual_coding_rice_idx_minus1。sps_ts_residual_coding_rice_present_in_sh_flag等于0指定在参考SPS的slice_header()语法结构中不存在sh_ts_residual_coding_rice_idx_minus1。当不存在sps_ts_residual_coding_rice_preset_in_sh_flag时,sps_ts_residual_coding_rice_preset_in_sh_flag的值被推断等于0。
比特流一致性的要求是,当sps_transform_skip_enabled_flag等于0时,sps_ts_residual_coding_rice_present_in_sh_flag的值应等于0。
在又一示例中,当变换跳过的标志(sps_transform_skip_enabled_flag)被用信号发送为启用时,在序列参数集(或在序列参数集范围扩展语法)中进一步用信号发送一个控制标志,以指示针对变换跳过块的莱斯参数的信令是启用还是禁用。当控制标志被用信号发送为启用时,针对每个变换跳过条带进一步用信号发送一个用于指示该条带的莱斯参数的语法元素。当控制标志被用信号发送为禁用(例如,设置为等于“0”)时,在较低级不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1)。下面示出了基于VVC草案的对应解码过程的示例。对VVC草案的改变以斜体示出。
序列参数集RBSP语法
sps_ts_residual_coding_rice_preset_in_sh_flag等于1指定在参考SPS的SH语法结构中可以存在sh_ts_residual_coding_rice_idx。sps_ts_residual_coding_rice_preset_in_sh_flag等于0指定在参考SPS的SH语法结构中不存在sh_ts_residual_coding_rice_idx_minus1。当不存在sps_ts_residual_coding_rice_preset_in_sh_flag时,sps_ts_residual_coding_rice_preset_in_sh_flag的值被推断等于0。
条带头语法
sh_ts_residual_coding_rice_idx_minus1加1,指定针对residual_ts_coding()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_idx_minus1不存在时,sh_ts_residual_coding_rice_ids_minus1的值被推断为等于0。
9.3.3.11针对abs_remainder[]的二值化过程
这个过程的输入是对用于二值化语法元素abs_remainder[n]的请求、颜色分量索引cIdx、当前子块索引i、指定当前亮度变换块的左上样点相对于图片的左上亮度样点的亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、变换块宽度的二进制对数log2TbWidth以及变换块高度的二进制对数log2TbHeight。
这个过程的输出是语法元素的二值化。
变量lastAbsRemainder和lastRiceParam推导如下:
–如果针对当前子块索引i第一次调用这个过程,则lastAbsRemainder和lastRiceParam均设置为0。
–否则(针对当前子块索引i第一次不调用这个过程),lastAbsRemainder和lastRiceParam分别设置为等于abs_remainder[n]和cRiceParams的值,这两个值是如这个条款中指定的在针对语法元素abs_remainder[n]的二值化过程的最后一次调用期间推导出的。
莱斯参数cRiceParam推导如下:
–如果transform_skip_flag[x0][y0][cIdx]等于1并且sh_ts_residual_coding_disabled_flag等于0,则将莱斯参数cRiceParam设置为等于sh_ts_residual_coding_rice_idx_minus1+1。
–否则,通过调用如条款9.3.3.2中指定的针对abs_remainder[]的莱斯参数推导过程来推导莱斯参数cRiceParam,其中设置为等于4的变量baseLevel、颜色分量索引cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、变换块宽度的二进制对数log2TbWidth以及变换块高度的二进制对数log2TbHeight作为输入。
在又一示例中,针对每个变换跳过条带用信号发送一个语法元素,以指示该条带的莱斯参数。下面示出了基于VVC草案的对应解码过程的示例。对VVC草案的改变以粗体和斜体示出在表10中。值得注意的是,sh_ts_residual_coding_rice_idx可以以不同的方式进行编解码,和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
条带头语法
表10残差编解码的语法
sh_ts_residual_coding_rice_idx指定针对residual_ts_coding()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_idx不存在时,将sh_ts_residual_coding_rice_idx的值推断为等于0。
表11莱斯参数推导过程
在另一示例中,在图片参数集范围扩展语法中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数。当控制标志用信号发送为启用时,进一步用信号发送用于指示该图片的莱斯参数的一个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1)。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义值(例如0、1、2)。对VVC草案的改变在表12中以粗体和斜体字体示出。值得注意的是,pps_ts_residual_coding_rice_idx可以按照不同的方式进行编解码和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
图片参数集范围扩展语法
表12残差编解码的语法
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()语法结构使用的莱斯参数。
表13莱斯参数推导过程
在又一示例中,提出仅使用可变莱斯参数对语法元素abs_remainder进行编解码。可以根据当前块的特定编码信息(例如,块尺寸、量化参数、比特深度、变换类型等)来确定所应用的莱斯参数的值。在一个特定实施例中,提出基于编码比特深度和应用于一个CU的量化参数来调整莱斯参数。基于VVC草案的对应解码过程如下所示,对VVC草案的改变在表14中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表14莱斯参数推导过程
/>
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,33或34)。对VVC草案的改变在表15中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表15莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB是预定义阈值(例如,THA=8,THB=33或34)。对VVC草案的改变在表16中以粗体和斜体字体示出,并且删除的内容以斜体字体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表16莱斯参数推导过程
在又一示例中,提出当新标志(例如,extended_precision_processing_flag)等于1时仅使用可变莱斯参数对abs_remainder的语法元素进行编解码。可以根据当前块的特定编码信息(例如,块尺寸、量化参数、比特深度、变换类型等)来确定可变值。在一个特定实施例中,提出基于编码比特深度和应用于一个CU的量化参数来调整莱斯参数。基于VVC草案的对应解码过程如下所示。对VVC草案的改变在表17中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表17莱斯参数推导过程
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,18、19)。对VVC草案的改变在表18中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表18莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB为预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的改变在表19中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表19莱斯参数推导过程
图6示出了用于视频编码的方法。该方法可以例如应用于编码器。在步骤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草案的改变在表20中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表20莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB为预定义阈值(例如,THA=8、THB=18或19)。对VVC草案的改变在表21中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表21莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,33或34)。对VVC草案的改变在表22中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表22莱斯参数推导过程
在又一示例中,基于VVC草案的对应解码过程如下所示,其中THA和THB为预定义阈值(例如,THA=8、THB=33或34)。对VVC草案的改变在表23中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表23莱斯参数推导过程
值得提及的是,在上述说明中,用于计算特定莱斯参数的等式仅用作示例来说明所提出的想法。对于当代视频编解码技术的技术人员来说,其他映射函数(或等效映射等式)已经适用于所提出的想法(即,基于编码比特和所应用的量化参数来确定变换跳过模式的莱斯参数)。同时,还应当提及,在当前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草案的改变在表24中以粗体和斜体字体示出。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_index可以按照不同的方式进行编解码和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
图7示出了用于视频解码的方法。该方法可以例如应用于编码器。在步骤1710中,编码器可以接收视频输入。在步骤1712中,编码器可以用信号发送针对编码语法元素的二进制码字的莱斯参数。编码语法元素可以包括变换跳过残差编解码中的abs_remainder。在步骤1714中,编码器可以基于莱斯参数和视频输入对视频比特流进行熵编码。
条带头语法
表24残差编解码的语法
/>
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。
表25莱斯参数推导过程
表26莱斯参数推导过程
在又一示例中,在序列参数集(或在序列参数集范围扩展语法)中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数以及用信号发送用于推导变换块中的莱斯参数的移位和/或偏移参数。当控制标志用信号发送为启用时,针对每个变换跳过条带进一步用信号发送用于指示该条带的莱斯参数的一个语法元素,并且针对每个变换条带进一步用信号发送用于指示用于推导该条带的莱斯参数的移位和/或偏移参数的两个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级处不进一步用信号发送用于指示针对变换跳过条带的莱斯参数的语法元素,并且针对所有变换跳过条带使用默认莱斯参数(例如,1),并且在较低级处不进一步用信号发送用于指示用于推导针对变换条带的莱斯参数的移位和/或偏移参数的语法元素,并且针对所有变换条带使用默认移位和/或偏移参数(例如,0)。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义值(例如0、1、2)。对VVC草案的改变在表27中以粗体和斜体字体示出。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可以按照不同的方式进行编解码和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
序列参数集RBSP语法
表27残差编解码的语法
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。
条带头语法
表28残差编解码的语法
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_idx指定针对residual_ts_coding()语法结构使用的莱斯参数。当sh_ts_residual_coding_rice_index不存在时,将sh_ts_residual_coding_rice_index的值推断为等于0。
表29莱斯参数推导过程
表30莱斯参数推导过程
/>
在又一示例中,针对每个变换跳过条带用信号发送用于指示该条带的莱斯参数的一个语法元素,并且针对每个变换条带用信号发送用于指示用于推导该条带的莱斯参数的移位和/或偏移参数的两个语法元素。基于VVC草案的对应解码过程的示例如下所示。对VVC草案的改变在表31中以粗体和斜体示出。值得注意的是,sh_residual_coding_rice_shift、sh_residual_coding_rice_offset和sh_ts_residual_coding_rice_idx可以按照不同的方式进行编解码和/或可以具有最大值。例如,u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
条带头语法
表31残差编解码的语法
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_remainder[]和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。
表32莱斯参数推导过程
表33莱斯参数推导过程
在又一示例中,在图片参数集范围扩展语法中用信号发送一个控制标志以指示是启用还是禁用用信号发送针对变换跳过块的莱斯参数以及用信号发送用于推导变换块中的莱斯参数的移位和/或偏移参数。当控制标志用信号发送为启用时,进一步用信号发送用于指示用于该图片的变换跳过残差编解码的莱斯参数的一个语法元素,并且进一步用信号发送用于指示用于推导该图片的用于常规残差编解码的莱斯参数的移位和/或偏移参数的两个语法元素。当控制标志用信号发送为禁用(例如,设置为等于“0”)时,在较低级不进一步用信号发送用于指示用于变换跳过残差编解码的莱斯参数的语法元素,并且针对所有变换跳过残差编解码使用默认莱斯参数(例如,1),并且在较低级不进一步用信号发送用于指示用于推导用于常规残差编解码的莱斯参数的移位和/或偏移参数的语法元素,并且针对所有常规残差编解码使用默认移位和/或偏移参数(例如,0)。基于VVC草案的对应解码过程的示例如下所示,其中TH是预定义值(例如0、1、2)。对VVC草案的改变在表34中以粗体和斜体示出。值得注意的是,pps_residual_coding_rice_shift、pps_residual_coding_rice_offset和pps_ts_residual_coding_rice_idx可以按照不同方式进行编解码和/或可以具有最大值。例如u(n)(使用n个比特的无符号整数)或f(n)(使用从左侧比特开始写入(从左到右)的n个比特的固定模式比特串)也可以用于对相同的语法元素进行编码/解码。
图片参数集范围扩展语法
表34残差编解码的语法
pps_residual_coding_info_flag等于1指定pps_residual_coding_rice_shift、pps_residual_coding_rice_offset和pps_ts_residual_coding_rice_index可存在于当前图片中。pps_residual_coding_info_flag等于0指定pps_residual_coding_rice_shift、pps_residual_coding_rice_offset和pps_ts_residual_coding_rice_idx不存在于当前图片中。当pps_residual_coding_info_flag不存在时,将pps_residual_coding_info_flag的值推断为等于0。
pps_residual_coding_rice_shift指定用于针对abs_remainder[]和dec_abs_level[]的莱斯参数推导过程的移位参数。当pps_residual_coding_rice_shift不存在时,将pps_residual_coding_rice_shift的值推断为等于0。
pps_residual_coding_rice_offset指定用于针对abs_remainder[]和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。
表35莱斯参数推导过程
表36莱斯参数推导过程
根据本公开的第二十九方面,提出使用不同的莱斯参数对变换跳过残差编解码中的特定语法元素(例如,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草案的改变在表37中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
条带头语法
表37残差编解码的语法
sh_residual_coding_rice_flag等于1指定在当前条带中使用依赖比特深度的莱斯参数推导过程。sh_residual_coding_rice_flag等于0指定在当前条带中不使用比特深度相关的莱斯参数推导过程。
表38莱斯参数推导过程
表39莱斯参数推导过程
/>
在又一示例中,基于VVC草案的对应解码过程如下所示,其中TH是预定义阈值(例如,18、19)。对VVC草案的改变在表40中以粗体和斜体示出。值得注意的是,在实践中可以不同地实施相同的逻辑。例如,某些等式或查找表也可以用于推导相同的莱斯参数。
表40莱斯参数推导过程
/>
根据本公开的另一方面,提出添加对上述这些编解码工具标志的值的约束来提供与一般约束信息中的其他一般约束控制相同的一般约束控制。
例如,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草案的改变被突出显示。添加的部分用斜体字体突出显示。
图9示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤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草案的改变被突出显示。添加的部分用斜体字体突出显示。
图10示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤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草案的改变被突出显示。添加的部分用斜体字体突出显示。
图11示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤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草案的改变被突出显示。添加的部分用斜体字体突出显示。
/>
图12示出根据本公开的一个示例的用于视频编解码的方法。所述方法可(例如)应用于解码器。在步骤2202中,解码器可以接收持续莱斯自适应启用标志,持续莱斯自适应启用标志基于持续莱斯自适应启用标志的值指示用于二值化abs_remainder和dec_abs_level的莱斯参数推导是否在每个子块开始处采用从先前子块累积的模式相关统计进行初始化。
在步骤2204中,响应于确定持续莱斯自适应启用标志的值等于1,解码器可以确定在每个子块的开始处采用从先前子块累积的模式相关统计来初始化用于二值化的莱斯参数推导。
在步骤2206中,响应于确定持续莱斯自适应启用标志的值为0,解码器可以确定在莱斯参数推导中不采用先前的子块状态。
在又一示例中,sps_rrc_rice_extension_flag等于1指定启用用于二值化abs_remainder[]和dec_abs_level[]的莱斯参数推导的扩展。sps_rrc_rice_extension_flag等于0指定禁用用于二值化abs_remainder[]和dec_abs_level[]的莱斯参数推导的扩展。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_rrc_rice_extension_flag以提供与其他标志相同的一般约束控制。对VVC草案的解码过程的示例如下所示。对VVC草案的改变被突出显示。添加的部分在下面以斜体显示。
图17示出了根据本公开的一个示例的用于视频解码的方法。该方法可以例如应用于解码器。在步骤2702中,解码器可以接收SPS莱斯扩展标志,该SPS莱斯扩展标志指示是否启用用于二值化abs_remainder和dec_abs_level的莱斯参数推导的扩展。
在步骤2704中,响应于确定SPS莱斯扩展标志的值等于1,解码器可以确定启用用于二值化的莱斯参数推导的扩展。
在步骤2706中,响应于确定SPS莱斯扩展标志的值等于0,解码器可以确定禁用用于二值化的莱斯参数推导的扩展。
在又一示例中,sps_persistent_rice_adaptation_enabled_flag等于1指定在每个TU开始处使用从先前TU累积的统计数据初始化用于二值化abs_remainder[]和dec_abs_level[]的莱斯参数推导。sps_persistent_rice_adaptation_enabled_flag等于0指定在莱斯参数推导中不使用先前的TU状态。根据本公开,提出在一般约束信息语法中添加语法元素gci_no_persistent_rice_adaptation_enabled_flag以提供与其他标志相同的一般约束控制。对VVC草案的解码过程的示例如下所示。对VVC草案的改变被突出显示。添加的部分在下面以斜体显示。
图18示出了根据本公开的一个示例的用于视频解码的方法。该方法可以例如应用于解码器。在步骤2802中,解码器可以接收SPS莱斯自适应启用标志,该SPS莱斯自适应启用标志指示是否在每个变换单元开始处利用从先前TU累积的统计数据来初始化用于二值化abs_remainder和dec_abs_level的莱斯参数推导。
在步骤2804中,响应于确定SPS莱斯自适应启用标志的值等于1,解码器可以确定在每个TU开始处利用从先前TU累积的统计数据来初始化用于二值化的莱斯参数推导。
在步骤2806中,响应于确定SPS莱斯自适应启用标志的值等于0,解码器可以确定莱斯参数推导中不采用先前的TU状态。
可以使用包括一个或多个电路的装置来实现上述方法,一个或多个电路包括专用集成电路(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)或按预定义值进行缩放。
图16示出根据本公开的一个示例的低延迟变换跳过残差编解码(TSRC)方法的流程图。该方法可以例如应用于编码器。在步骤2602中,编码器可基于视频的当前条带的编码信息来推导莱斯参数。编码信息可以包括以下参数中的一个或多个:与视频的条带、图片或序列相关联的量化参数或编码比特深度;或与视频的条带、图片或序列相关联的哈希率。
应注意,上述编码器方法可被应用于解码器侧。在一个特定示例中,不需要将莱斯参数用信号发送到解码器,并且编码器/解码器使用相同方法来推导莱斯参数。
图8示出了与用户接口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)、控制器、微控制器、微处理器或其他电子组件来实现,以用于执行上述方法。
图13是示出根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性***10的框图。如图13中所示,***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的传输可以是流传输、下载传输、或两者的组合。
如图13中所示,源设备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)的一部分。
图14是示出根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或去除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或去除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。应当注意,术语“帧”可以用作视频编解码领域中的术语“图像”或“图片”的同义词。
如图14中所示,视频编码器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中的视频数据可以例如从如图13所示的视频源18获得。DPB 64是存储参考视频数据(例如,参考帧或参考图片)的缓冲器,参考视频数据供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用。视频数据存储器40和DPB 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图14中所示,在接收到视频数据之后,预测处理单元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)编码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。经编码的比特流然后可以被发送到如图13所示的视频解码器30,或被存档于如图13所示的存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可以对用于正被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块,以用于生成用于预测其他视频块的参考块。如上文指出的,运动补偿单元44可以从DPB 64中存储的帧的一个或更多个参考块来生成经运动补偿的预测块。运动补偿单元44还可以将一个或更多个插值滤波器应用于预测块,以计算亚整数像素值以用于在运动估计时使用。
加法器62将重建的残差块加到由运动补偿单元44产生的经运动补偿的预测块来产生参考块,用于存储在DPB 64中。参考块然后可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块,以对后续视频帧中的另一视频块进行帧间预测。
图15是示出根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可以执行与上文结合图14关于视频编码器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在图15中描绘为视频解码器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分离的存储器设备还可以存储已解码的视频,以用于稍后呈现在显示器设备(诸如图13的显示器设备34)上。
本公开的描述已经出于说明的目的被呈现,并且不旨在穷举或限于本公开。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。
选择和描述示例是为了解释本公开的原理,并且使本领域的其他技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理和具有适合于预期特定用途的各种修改的各种实施方式。因此,将理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在本公开的范围内。
Claims (10)
1.一种用于视频解码的方法,包括:
由解码器接收序列参数集SPS莱斯扩展标志,所述SPS莱斯扩展标志指示是否启用用于二值化abs_remainder和dec_abs_level的莱斯参数推导的扩展,
其中abs_remainder指示第一语法元素,所述第一语法元素是当在第一通道编码时经上下文编码的二进制位的剩余数量大于或等于4时,在第二通道利用哥伦布-莱斯码和经旁路编码的二进制位编码的系数的等级信息的其余部分;以及
其中dec_abs_level指示第二语法元素,所述第二语法元素是当在所述第一通道编码时经上下文编码的二进制位的剩余数量小于4时,在所述第二通道使用哥伦布-莱斯码和经旁路编码的二进制位直接编码的当前系数。
2.根据权利要求1所述的用于视频解码的方法,还包括:
响应于确定所述SPS莱斯扩展标志的值等于1,由所述解码器确定启用用于二值化的莱斯参数推导的扩展;以及
响应于确定所述SPS莱斯扩展标志的值等于0,由所述解码器确定禁用用于二值化的莱斯参数推导的扩展。
3.根据权利要求1所述的用于视频解码的方法,还包括:
由所述解码器在一般约束信息语法中添加莱斯扩展标志gci_no_rrc_rice_extension_flag,以提供对所述SPS莱斯扩展标志的一般控制。
4.根据权利要求3所述的用于视频解码的方法,还包括:
响应于确定所述莱斯扩展标志gci_no_rrc_rice_extension_flag的值等于1,确定所述SPS莱斯扩展标志的值等于0。
5.一种用于视频解码的方法,包括:
由解码器接收序列参数集SPS莱斯自适应启用标志,所述SPS莱斯自适应启用标志指示是否在每个变换单元TU的开始处利用从先前TU累积的统计数据来初始化用于二值化abs_remainder和dec_abs_level的莱斯参数推导;
其中abs_remainder指示第一语法元素,所述第一语法元素是当在第一通道编码时经上下文编码的二进制位的剩余数量大于或等于4时,在第二通道利用哥伦布-莱斯码和经旁路编码的二进制位编码的系数的等级信息的其余部分;以及
其中dec_abs_level指示第二语法元素,所述第二语法元素是当在所述第一通道编码时经上下文编码的二进制位的剩余数量小于4时,在所述第二通道使用哥伦布-莱斯码和经旁路编码的二进制位直接编码的当前系数。
6.根据权利要求5所述的用于视频解码的方法,还包括:
响应于确定所述SPS莱斯自适应启用标志的值等于1,由所述解码器确定在每个TU的开始处利用从先前TU累积的统计数据来初始化用于二值化的莱斯参数推导;以及
响应于确定所述SPS莱斯自适应启用标志的值等于0,由所述解码器确定在莱斯参数推导中不采用先前的TU状态。
7.根据权利要求5所述的用于视频解码的方法,还包括:
由所述解码器在一般约束信息语法中添加莱斯自适应启用标志gci_no_persistent_rice_adaptation_enabled_flag,以提供对所述SPS莱斯自适应启用标志的一般控制。
8.根据权利要求7所述的用于视频解码的方法,还包括:
响应于确定所述莱斯自适应启用标志gci_no_persistent_rice_adaptation_enabled_flag的值等于1,确定所述SPS莱斯自适应启用标志的值等于0。
9.一种用于视频解码的设备,包括:
一个或多个处理器;以及
存储器,被配置为存储能够由所述一个或多个处理器执行的指令,其中所述一个或多个处理器在执行所述指令时被配置为执行权利要求1至8中任一项所述的方法。
10.一种用于视频编解码的非暂态计算机可读存储介质,存储计算机可执行程序,其中所述计算机可执行程序在由一个或多个计算机处理器执行时使所述一个或多个计算机处理器执行权利要求1至8中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163193593P | 2021-05-26 | 2021-05-26 | |
US63/193,593 | 2021-05-26 | ||
PCT/US2022/031203 WO2022251545A1 (en) | 2021-05-26 | 2022-05-26 | Residual and coefficients coding for video coding |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410483807.9A Division CN118413671A (zh) | 2021-05-26 | 2022-05-26 | 用于视频编码的方法、设备、存储介质、计算机程序产品和比特流传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117378201A true CN117378201A (zh) | 2024-01-09 |
Family
ID=84230264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280037417.8A Pending CN117378201A (zh) | 2021-05-26 | 2022-05-26 | 用于视频编解码的残差和系数编解码 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20240107070A1 (zh) |
EP (1) | EP4349015A1 (zh) |
JP (1) | JP2024520420A (zh) |
KR (1) | KR20240011194A (zh) |
CN (1) | CN117378201A (zh) |
AU (1) | AU2022280893A1 (zh) |
BR (1) | BR112023024506A2 (zh) |
CA (1) | CA3221241A1 (zh) |
MX (1) | MX2023014050A (zh) |
WO (1) | WO2022251545A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11184642B2 (en) * | 2019-08-02 | 2021-11-23 | Mediatek Inc. | Methods and apparatus for simplification of coding residual blocks |
US11470334B2 (en) * | 2019-09-23 | 2022-10-11 | Qualcomm Incorporated | Rice parameter derivation for lossless/lossy coding modes for video coding |
WO2021067278A1 (en) * | 2019-10-01 | 2021-04-08 | Beijing Dajia Internet Informationtechnology Co., Ltd. | Methods and apparatus of residual and coefficient coding |
-
2022
- 2022-05-26 BR BR112023024506A patent/BR112023024506A2/pt unknown
- 2022-05-26 MX MX2023014050A patent/MX2023014050A/es unknown
- 2022-05-26 CN CN202280037417.8A patent/CN117378201A/zh active Pending
- 2022-05-26 EP EP22812194.3A patent/EP4349015A1/en active Pending
- 2022-05-26 WO PCT/US2022/031203 patent/WO2022251545A1/en active Application Filing
- 2022-05-26 CA CA3221241A patent/CA3221241A1/en active Pending
- 2022-05-26 AU AU2022280893A patent/AU2022280893A1/en active Pending
- 2022-05-26 JP JP2023572769A patent/JP2024520420A/ja active Pending
- 2022-05-26 KR KR1020237044728A patent/KR20240011194A/ko unknown
-
2023
- 2023-11-25 US US18/518,954 patent/US20240107070A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
MX2023014050A (es) | 2023-12-15 |
EP4349015A1 (en) | 2024-04-10 |
WO2022251545A1 (en) | 2022-12-01 |
JP2024520420A (ja) | 2024-05-24 |
KR20240011194A (ko) | 2024-01-25 |
US20240107070A1 (en) | 2024-03-28 |
CA3221241A1 (en) | 2022-12-01 |
AU2022280893A1 (en) | 2023-12-14 |
BR112023024506A2 (pt) | 2024-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114710679B (zh) | 视频编解码中的小色度块大小限制 | |
US20240179314A1 (en) | Residual and coefficients coding for video coding | |
CN116918335A (zh) | 用于视频编码的残差和系数编码 | |
CN114762329A (zh) | 使用调色板模式的视频编解码的方法和装置 | |
US20240196016A1 (en) | Residual and coefficients coding for video coding | |
CN115209139B (zh) | 视频编解码中的预测模式信令 | |
CN116614625B9 (zh) | 一种视频编码的方法、装置和介质 | |
CN115004706B (zh) | 关于变换和系数信令的方法和装置 | |
CN117378201A (zh) | 用于视频编解码的残差和系数编解码 | |
CN118413671A (zh) | 用于视频编码的方法、设备、存储介质、计算机程序产品和比特流传输方法 | |
US12003729B2 (en) | In-loop filters for video coding | |
CN117643058A (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 |