视频数据的变换跳过残差编码的制作方法

文档序号:30584271发布日期:2022-06-29 16:22阅读:8872来源:国知局
视频数据的变换跳过残差编码的制作方法
视频数据的变换跳过残差编码
相关申请的交叉引用
1.本公开要求以下申请的优先权和优先权权益:于2019年6月24日提交的美国临时专利申请no.62/865,916;于2019年9月18日提交的美国临时专利申请no.62/902,115;以及于2019年12月24日提交的美国临时专利申请no.62/953,460。这三个临时申请通过引用整体地并入本文。
技术领域
2.本公开通常涉及视频数据处理,并且更具体地,涉及视频数据的变换跳过残差编码。


背景技术:

3.在视频压缩和解压缩行业中正在开发用于视频编码的新标准。例如,itu-t视频编码专家组(“vceg”)和iso/iec运动图像专家组(“mpeg”)的联合视频专家组(“jvet”)当前正在开发通用视频编码(“vvc”)标准。vvc标准目的在于使其前任高效率视频编码(“hevc/h.265”)标准的压缩效率加倍。换句话说,vvc的目标是为了使用一半带宽来实现与hevc/h.265相同的主观质量。


技术实现要素:

4.本公开的实施例提供用于变换跳过残差视频数据编码的方法和系统。
5.一种示例性方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路编码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。
6.另一示例性方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路解码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。
7.一种示例性系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路编码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。
8.另一示例性系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路解码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。
附图说明
9.在以下详细描述和附图中图示本公开的实施例和各个方面。各图所示的各种特征
未按比例绘制。
10.图1图示了混合视频编码系统的示例编码器框图。
11.图2图示了混合视频编码系统的示例解码器框图。
12.图3图示了包括变换编码的语法的示例伪代码。
13.图4图示了包括变换跳过残差编码的语法的示例伪代码。
14.图5图示了根据本公开的一些实施例的将编码遍数减少到3的变换跳过残差编码的示例方法。
15.图6图示了根据本公开的一些实施例的包括图5所示的方法的语法的示例伪代码。
16.图7图示了根据本公开的一些实施例的将编码遍数减少到3的变换跳过残差编码的另一示例方法。
17.图8图示了根据本公开的一些实施例的包括图7所示的方法的语法的示例伪代码。
18.图9图示了根据本公开的一些实施例的8
×
8变换跳过块的示例反向扫描。
19.图10a图示了根据本公开的一些实施例的在翻转之前的8
×
8块。
20.图10b图示了根据本公开的一些实施例的在图10a中的8
×
8块被翻转之后的结果块。
21.图11图示了根据本公开的一些实施例的示例多遍编码。
22.图12图示了根据本公开的一些实施例的针对级别的绝对值的示例单遍旁路编码方法。
23.图13图示了根据本公开的一些实施例的莱斯(rice)参数的示例查找表。
24.图14图示了根据本公开的一些实施例的与单遍旁路编码组合的将编码遍数减少到3的变换跳过残差编码的示例方法。
25.图15图示了根据本公开的一些实施例的包括与图14中的方法组合的旁路编码的语法的示例伪代码。
26.图16图示了根据本公开的一些实施例的具有用于上下文编码的第一遍和用于哥伦布-莱斯(golomb-rice)编码的第二遍的变换跳过残差编码的示例方法。
27.图17图示了根据本公开的一些实施例的包括图16中的方法的旁路编码的语法的示例伪代码。
28.图18图示了根据本公开的一些实施例的当最小旁路编码值等于0时莱斯参数的示例查找表。
具体实施方式
29.现在将详细地参考示例性实施例,其示例被图示在附图中。以下描述参考附图,其中除非另外表示,否则不同附图中的相同数字表示相同或类似的元件。在示例性实施例的以下描述中阐述的实现方式不表示与本发明一致的所有实现方式。替代地,它们仅仅是与如所附权利要求中叙述的与本发明相关的各方面一致的设备和方法的示例。在下面更详细地描述本公开的特定方面。如果与通过引用并入的术语和/或定义冲突,则以本文提供的术语和定义为准。
30.视频是按时间顺序布置以存储视觉信息的静态图像(或“帧”)的集合。视频捕获装置(例如,相机)能够用于按时间顺序捕获和存储那这些图像,并且视频重放装置(例如,电
视、计算机、智能电话、平板计算机、视频播放器,或具有显示功能的任何最终用户终端)能够用于按时间顺序显示此类图像。另外,在一些应用中,视频捕获装置能够将所捕获的视频实时地传送到视频重放装置(例如,具有监视器的计算机),诸如以进行监视、会议或实况广播等。
31.为了减少此类应用所需的存储空间和传输带宽,能够对视频进行压缩。例如,视频能够在存储和传输之前被压缩并且在显示之前被解压缩。压缩和解压缩能够通过由处理器(例如,通用计算机的处理器)执行的软件或专用硬件来实现。用于压缩的模块通常被称为“编码器”,而用于解压缩的模块通常被称为“解码器”。能够将编码器和解码器统称为“编解码器”。能够将编码器和解码器实现为各种合适的硬件、软件或其组合中的任一种。例如,编码器和解码器的硬件实现方式能够包括电路系统,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑或其任何组合。编码器和解码器的软件实现方式能够包括程序代码、计算机可执行指令、固件,或固定在计算机可读介质中的任何合适的计算机实现算法或过程。能够通过诸如mpeg-1、mpeg-2、mpeg-4、h.26x系列等的各种算法或标准来实现视频压缩和解压缩。在一些应用中,编解码器能够根据第一编码标准对视频进行解压缩并且使用第二编码标准对经解压缩的视频进行重新压缩,在这种情况下能够将编解码器称为“转码器(transcoder)”。
32.视频编码过程能够标识并保持能够用于重建图像的有用信息。如果不能完全地重建在视频编码过程中忽视的信息,则能够将编码过程称为“有损的”。否则,能够将它称为“无损的”。大多数编码过程是有损的,这是为了减少所需存储空间和传输带宽的权衡。
33.在许多情况下,被编码图像(称为“当前图像”)的有用信息能够包括相对于参考图像(例如,先前编码或重建的图像)的变化。此类变化能够包括像素的位置变化、亮度变化或颜色变化,其中位置变化是最受关注的。表示对象的一组像素的位置变化能够反映该对象在参考图像与当前图像之间的运动。
34.为了使用一半带宽来实现与hevc/h.265相同的主观质量,jvet一直在使用联合探索模型(“jem”)参考软件来开发超越hevc的技术。由于编码技术被并入到jem中,所以jem实现了比hevc大体上更高的编码性能。vceg和mpeg也已正式地开始超越hevc的下一代视频压缩标准的开发。
35.vvc标准继续包括提供更好压缩性能的更多编码技术。vvc基于已在诸如hevc、h.264/avc、mpeg2、h.263等的现代视频压缩标准中使用的相同混合视频编码系统。图1图示了混合视频编码系统的示例编码器框图。如图1所示,视频编码器200可以对视频帧(包括视频块)内的块或视频块的分区或子分区执行帧内或帧间编码。帧内编码可以依靠空间预测来减少或去除给定视频帧内的视频中的空间冗余。帧间编码可以依靠时间预测来减少或去除视频序列的相邻帧内的视频中的时间冗余。帧内模式可以是指许多基于空间的压缩模式。帧间模式(诸如单预测或双预测)可以是指许多基于时间的压缩模式。
36.参考图1,可以逐块处理输入视频信号202。例如,视频块单元可以是16
×
16像素块(例如,宏块(mb))。取决于所使用的编码技术以及所需要的准确性和效率,视频块单元的大小可以变化。在hevc中,扩展块大小(例如,编码树单元(ctu))可以用于压缩分辨率(例如1080p及更高)的视频信号。在hevc中,ctu可以包括最多64
×
64个亮度样本、对应的色度样本和相关语法元素。在vvc中,可以进一步增加ctu的大小以包括128
×
128个亮度样本、对应
的色度样本和相关语法元素。能够使用例如四叉树、二叉树或三叉树来将ctu进一步划分成编码单元(cu)。可以将cu进一步分区成预测单元(pu),对其可以应用单独的预测方法。可以通过使用空间预测单元260或时间预测单元262来处理每个输入视频块。
37.空间预测单元260使用关于包含当前块的相同图像/切片的信息对当前块/cu执行空间预测(例如,帧内预测)。空间预测可以使用来自相同视频图像帧/切片中已经编码的邻近块的像素来预测当前视频块。空间预测可以减少视频信号中固有的空间冗余。
38.时间预测单元262使用来自与包含当前块的图像/切片不同的图像/切片的信息对当前块执行时间预测(例如,帧间预测)。可以通过一个或多个运动矢量用信号通知针对视频块的时间预测。在单向时间预测中,使用仅指示一个参考图像的一个运动矢量来生成当前块的预测信号。另一方面,在双向时间预测中,能够使用两个运动矢量(各自指示相应参考图像)来生成当前块的预测信号。运动矢量可以指示当前块与参考帧中的一个或多个相关块之间的运动量和方向。如果支持多个参考图像,则可以对于视频块发送一个或多个参考图像索引。一个或多个参考索引可以用于标识时间预测信号可能来自参考图像暂存器或解码图像缓冲区(dpb)264中的哪个(哪些)参考图像。
39.编码器中的模式判定和编码器控制单元280可以例如基于速率失真优化选取预测模式。基于所确定的预测模式,能够获得预测块。可以在加法器216处从当前视频块中减去预测块。预测残差可以由变换单元204变换并且由量化单元206量化。量化残差系数可以在逆量化单元210处被逆量化并且在逆变换变换单元212处被逆变换以形成重建残差。可以在加法器226处将重建残差添加到预测块以形成重建视频块。环路滤波之前的重建视频块可以用于提供用于帧内预测的参考样本。
40.重建视频块可以在环路滤波器266处经过环路滤波。例如,可以应用诸如去块滤波器、采样自适应偏移(sao)和自适应环路滤波器(alf)的环路滤波。环路滤波之后的重建块可以被存储在参考图像暂存器264中并且能够用于提供帧间预测参考样本以用于对其他视频块进行编码。为了形成输出视频位流220,在数据被压缩和打包以形成位流220之前,可以向熵编码单元208发送编码模式(例如,帧间或帧内)、预测模式信息、运动信息和量化残差系数以进一步降低比特速率。
41.图2图示了混合视频编码系统的示例解码器框图。如图2所示,可以在熵解码单元308处对视频位流302进行解包或熵解码。编码模式信息能够用于确定空间预测单元360还是时间预测单元362将被选择。能够将预测模式信息发送到所对应的预测单元以生成预测块。例如,可以由时间预测单元362应用运动补偿预测以形成时间预测块。
42.可以将残差系数发送到逆量化单元310和逆变换单元312以获得重建残差。可以在326将预测块和重建残差加在一起以在环路滤波之前形成重建块。重建块然后可以在环路滤波器366处经过环路滤波。例如,可以应用诸如去块滤波器、sao和alf的环路滤波。然后能够将环路滤波之后的重建块存储在参考图像暂存器364中。参考图像暂存器364中的重建数据可以用于获得解码视频320,或者用于预测将来的视频块。解码视频320可以被显示在显示装置如系统100(图1)中所描述的显示装置146上。
43.在vvc(例如,vvc 5)中,块可以是变换系数的m
×
n数组。变换系数可以是被认为在频域中的标量,其与变换中的特定一维或二维频率索引相关联。变换系数级别能够通过数组transcoefflevel[x0][y0][cidx][xc][yc]来表示。数组索引x0、y0能够指定所考虑的变
换块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。数组索引cidx能够指定颜色分量的指示符。数组索引xc和yc能够指定当前变换块内的变换系数位置(xc,yc)。
[0044]
在vvc(例如,vvc 5)中,编码块的变换系数使用非重叠系数组(或子块)来编码。对于每个子块,规则(或上下文)编码二进制位和旁路编码二进制位按编码次序分开。例如,首先传送子块的所有规则编码二进制位,并且此后,传送旁路编码二进制位。子块的变换系数级别被遍及扫描位置在三遍中编码。变换系数级别可以是变换系数的值。对于上下文编码,每个二进制位能够具有通过上下文选择的概率模型。上下文可能是指先前编码的语法元素。对于旁路编码,能够选择特定二进制位来以编码效率的可忽视损失加速编码过程。在旁路编码中,能够按设置概率(例如,等于0.5的概率)对二进制位进行编码。
[0045]
在遍1中,重要性标志(例如,sig_coeff_flag)、大于1标志(例如,gtl_flag)、奇偶性标志(例如,par_level_flag)和大于3标志(例如,gt3_flag)被按次序编码。如果重要性标志等于1,则首先大于l标志被编码。大于l标志指定绝对级别(例如,级别的绝对值)是否大于1。如果大于l标志等于1,则奇偶性标志和大于3标志被编码。奇偶性标志指定绝对级别减去2的奇偶性。大于3标志指定绝对级别是否大于3。最后规则(例如,上下文)编码系数的位置可以被存储在变量firstposmodel中。
[0046]
在遍2(a)中,从系数组的第一扫描位置开始到firstposmodel位置处理剩余绝对级别(例如,abs_remainder)的编码。仅大于1标志等于1的位置被编码。非二进制语法元素用哥伦布-莱斯码二值化并且在算术编码引擎的旁路模式下对所得的二进制位进行编码。例如,值2可以使用“001”的哥伦布-莱斯码来表示,并且能够将“001”的每个位称为二进制位(例如,二进制位0、二进制位0和二进制位1)。
[0047]
在遍2(b)中,从第一旁路编码位置(例如,firstposmodel-1,从相反次序)开始到系数组的最后扫描位置处理绝对级别(dec_abs_level)的编码并且使用哥伦布-莱斯码来在算术编码引擎的旁路模式下对其进行完全编码。
[0048]
在遍3中,对于sig_coeff_flag等于1的所有扫描位置处理符号标志(例如,符号标志)的编码。
[0049]
对于4
×
4子块,可以预期不超过32个规则编码二进制位(例如,sig_coeff_flag、gtl_flag、par_level_flag和gt3_flag)被编码或解码。对于2
×
2色度子块,可以将规则编码二进制位的数量限制为8。在达到极限之后,在旁路模式下对所有二进制位进行编码。
[0050]
在由jvet针对变换跳过残差块采用的新残差编码过程中,变换跳过残差编码的系数扫描次序是正向扫描并且从变换跳过块的左上位置开始。子块的变换跳过系数级别被遍及扫描位置在六遍中编码。
[0051]
在遍1中,按编码顺序处理sig_coeff_flag、coeff_sign_flag、大于1标志(例如,abs_level_gtx_flag[0])和par_level_flag。如果sig_coeff_flag等于1,则coeff_sign_flag和abs_level_gtx_flag[0]被按次序编码。coeff_sign_flag指定变换系数级别的符号。abs_level_gtx_ftag[0]指定绝对级别是否大于1。如果abs_level_gtx_flag[0]等于1,则par_level_flag被附加地编码。par_level_flag指定绝对级别减去2的奇偶性。在对任何标志进行编码之前,上下文自适应二进制算术编码(“cabac”)引擎检查上下文编码二进制位是否可用。如果上下文编码二进制位不可用,则该标志被旁路编码。
[0052]
在遍2中,如果给定位置的abs_level_gtx_flag[0]等于1,则大于3标志(例如,
abs_level_gtx_flag[1])被编码。abs_level_gtx_flag[l]指定绝对级别是否大于3。在对每个系数的abs_level_gtx_flag[l]进行编码之前,cabac引擎检查上下文编码二进制位是否可用。如果上下文编码二进制位不可用,则abs_level_gtx_flag[l]被旁路编码。
[0053]
在遍3中,如果给定位置的abs_level_gtx_flag[1]等于1,则大于5标志(例如,abs_level_gtx_flag[2])被编码。ahs_level_gtx_flag[2]指定绝对级别是否大于5。在对每个系数的ahs_level_gtx_flag[2]进行编码之前,cabac引擎检查上下文编码二进制位是否可用。如果上下文编码二进制位不可用,则abs_level_gtx_flag[2]被旁路编码。
[0054]
在遍4中,如果给定位置的abs_level_gtx_flag[2]等于1,则大于7标志(例如,abs_level_gtx_flag[3])被编码。abs_level_gtx_flag[3]指定绝对级别是否大于7。在对每个系数的abs_level_gtx_flag[3]进行编码之前,cabac引擎检查上下文编码二进制位是否可用。如果上下文编码二进制位不可用,则abs_level_gtx_flag[3]被旁路编码。
[0055]
在遍5中,如果位置的abs_level_gtx_flag[3]等于1,则大于9标志(例如,abs_level_gtx_flag[4])被编码。abs_level_gtx_flag[4]指定绝对级别是否大于9。在对每个系数的abs_level_gtx_flag[4]进行编码之前,cabac引擎检查上下文编码二进制位是否可用。如果上下文编码二进制位不可用,则abs_level_gtx_flag[4]被旁路编码。
[0056]
在遍6中,对于abs_level_gtx_flag[4]等于1的所有扫描位置处理abs_remainder。非二进制语法元素用哥伦布-莱斯码二值化并且在算术编码引擎的旁路模式下对所得的二进制位进行编码。
[0057]
图3图示了包括变换编码的语法的示例伪代码。例如,图3所示的语法能够被用于在vvc中进行变换编码。图4图示了包括变换跳过残差编码的语法的示例伪代码。例如,图4所示的语法能够被用于在vvc中进行变换跳过残差编码。
[0058]
在变换跳过残差编码的当前设计中存在若干问题。首先,变换跳过残差编码的编码遍数是六。那意味着,在许多情况下,cabac引擎需要扫描系数组六次,这显著地影响cabac的吞吐量。第二,变换跳过残差编码的编码遍数与变换残差编码的编码遍数不同(例如,六遍对三遍)。编码遍数方面的差异可能产生硬件实现复杂性。第三,变换跳过残差编码的系数扫描是正向扫描,然而变换残差编码的扫描是按相反次序。扫描次序方面的差异也可能产生硬件实现复杂性。第四,在变换残差编码中,旁路编码具有仅两个语法元素(例如,abs_remainder和dec_abs_level)。然而,在变换跳过残差编码中,旁路编码能够具有更多的语法元素,诸如sig_coeff_flag、coeff_sign_flag、par_level_flag、abs_level_gtx_flag[0]、abs_level_gtx_flag[1]、abs_level_gtx_flag[2]、abs_level_gtx_flag[3]、abs_level_gtx_flag[4]和abs_remainder。期望统一变换残差编码和变换跳过残差编码的旁路编码方法。
[0059]
本公开的实施例提供奇偶性标志的新旁路编码方法。奇偶性标志指定绝对级别减去2的奇偶性,其指示非零系数位置的绝对值是偶数还是奇数。变换跳过块中的奇偶性标志的概率分布可以是均匀的。因此,偶数值和奇数值的概率可以是相等的。结果,能够应用奇偶性标志和信号奇偶性标志的旁路编码。此旁路编码可以在用信号通知abs_remainder之前或之后发生。如果大于1标志等于1,则能够用信号通知奇偶性标志。在一些实施例中,由于可以将上下文编码二进制位的总数限制为在变换块中每样本2个二进制位,所以释放奇偶性标志的上下文能够允许具有不相等概率分布的其他语法元素(例如,在奇偶性标志之
后编码的大于x标志中的任一个)被上下文编码,这能够改进编码效率。
[0060]
在一些实施例中,奇偶性标志被编码为常规上下文编码二进制位并且能够在系数编码过程的第二遍中用信号通知。能够在大于3标志之前或之后用信号通知奇偶性标志。
[0061]
在vvc(例如,vvc 5)中,使用总共四个编码遍来对大于3标志(例如,abs_level_gtx_flag[l])、大于5标志(例如,abs_level_gtx_flag[2])、大于7标志(abs_level_gtx_fiag[3])和大于9标志(例如,abs_level_gtx_flag[4])进行编码。换句话说,每个标志在单独的编码遍中被编码。本公开的实施例提供在单遍中对所有标志进行编码的新方法。结果,对所有标志进行编码仅需要一个编码遍,这能够改进cabac的吞吐量。
[0062]
在一些实施例中,能够将大于3标志(例如,abs_level_gtx_lag[l])的位置移动到第一编码遍。例如,如果大于1标志(例如,abs_level_gtx_flag[l])等于1,则能够用信号通知大于3标志。此变化能够将大于1标志和大于3标志的编码与变换残差编码情况统一,所述变换残差编码情况也在第一编码遍中对这两个标志进行编码。
[0063]
在一些实施例中,能够将子块的变换跳过级别的编码遍数减少到3。图5图示了根据本公开的一些实施例的将编码遍数减少到3的变换跳过残差编码的示例方法。图5中的方法包括三遍。
[0064]
在遍1(步骤502)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。对于每个系数可以有重要性标志(例如,sig_coeff_flag)。在一些实施例中,重要性标志能够指定系数的级别是否为非零值。如果用于系数的重要性标志指示级别是非零值(例如,重要性标志等于1),则能够对信号系数符号标志(例如,coeff_sign_flag)和大于1标志(例如,abs_level_gtx_flag[0])进行编码。大于1标志能够指定级别的绝对值是否大于1。
[0065]
在遍2(步骤504)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果系数的大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对大于3标志(例如,abs_level_gtx_flag[l])进行编码。大于3标志能够指定绝对级别是否大于3。如果系数的大于3标志指示绝对级别大于3(例如,大于3标志等于1),则能够对大于5标志(例如,abs_level_gtx_flag[2])进行编码。大于5标志能够指定绝对级别是否大于5。如果系数的大于5标志指示绝对级别大于5(例如,大于5标志等于1),则能够对大于7标志(例如,abs_level_gtx_flag[3])进行编码。大于7标志能够指定绝对级别是否大于7。如果系数的大于7标志指示绝对级别大于7(例如,大于7标志等于1),则能够对大于9标志(例如,abs_level_gtx_flag[4])进行编码。大于9标志能够指定绝对级别是否大于9。
[0066]
在遍3(步骤506)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果系数的大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对系数的奇偶性级别标志(例如,par_level_flag)进行旁路编码。奇偶性级别标志能够指定绝对级别减去2的奇偶性。如果大于9标志指示绝对级别大于9(例如,大于9标志等于1),则能够对系数的剩余绝对级别(例如,abs_remainder)进行编码,并且能够用哥伦布-莱斯码对非二进制语法元素进行二值化。在一些实施例中,能够在算术编码引擎的旁路模式下对所得的二进制位进行编码。
[0067]
图6图示了根据本公开的一些实施例的包括图5所示的方法的语法的示例伪代码。
图6中的伪代码的一些部分用斜体表示,指示对大于3标志、大于5标志、大于7标志、大于9标志和奇偶性级别标志的处理。
[0068]
应领会,图5的方法能够由编码器(例如,图1的编码器)实现。在一些实施例中,编码器能够接收视频帧。对于解码器(例如,图2的解码器),该方法能够包括三遍。
[0069]
在遍1中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。对于每个系数可以有重要性标志(例如,sig_coeff_flag)。重要性标志能够被解码。重要性标志能够指定级别是否为非零值。如果用于系数的重要性标志指示级别是非零值(例如,重要性标志等于1),则能够对信号系数符号标志(例如,coeff_sign_flag)和大于1标志(例如,abs_level_gtx_flag[0])进行解码。
[0070]
在遍2中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果系数的大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对每个系数的奇偶性级别标志(例如,par_level_flag)进行解码。奇偶性级别标志能够指定绝对级别减去2的奇偶性,如果系数的大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对大于3标志(例如,abs_level_gtx_flag[l])进行解码。如果系数的大于3标志指示绝对级别大于3(例如,大于3标志等于1),则能够对大于5标志(例如,abs_level_gtx_flag[2])进行解码。如果系数的大于5标志指示绝对级别大于5(例如,大于4标志等于1),则能够对大于7标志(例如,abs_level_gtx_flag[3])进行解码。如果系数的大于7标志指示绝对级别大于7(例如,大于7标志等于1),则能够对大于9标志(例如,abs_level_gtx_flag[4])进行解码。
[0071]
在遍3中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果大于9标志指示绝对级别大于9(例如,大于9标志等于1),则能够对系数的剩余绝对级别(例如,abs_remainder)进行解码。
[0072]
在一些实施例中,解码器能够接收视频位流。
[0073]
图7图示了根据本公开的一些实施例的将编码遍数减少到3的变换跳过残差编码的另一示例方法。图7的方法能够包括三遍。
[0074]
在遍1(步骤702)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。对于每个系数可以有重要性标志(例如,sig_coeff_flag)。重要性标志能够指示级别是否为非零值。如果用于系数的重要性标志指示级别是非零值(例如,重要性标志等于1),则能够对信号系数符号标志(例如,coeff_sign_flag)和大于1标志(例如,abs_level_gtx_flag[0])进行编码。大于l标志能够指定级别的绝对值是否大于1。如果系数的大于1标志指示级别的绝对值大于1(例如,大于1标志等于1),则能够对大于3标志(例如,abs_level_gtx_flag[l])进行编码。大于3标志能够指定绝对级别是否大于3。
[0075]
在遍2(步骤704)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果系数的大于3标志指示绝对级别大于3(例如,大于3标志等于1),则能够对大于5标志(例如,abs_level_gtx_flag[2])进行编码。大于5标志能够指定绝对级别是否大于5。如果系数的大于5标志指示绝对级别大于5(例如,大于5标志等于1),则能够对大于7标志(例如,abs_level_gtx_flag[3])进行编码。大于7标志能够指定绝对级别是否大于7。如果系数的大于7标志指示绝对级别大于7(例如,大于7标
志等于1),则能够对大于9标志(例如,abs_level_gtx_flag[4])进行编码。大于9标志能够指定绝对级别是否大于9。
[0076]
在遍3(步骤706)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果系数的大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对系数的奇偶性级别标志(例如,par_level_flag)进行旁路编码。奇偶性级别标志能够指定绝对级别减去2的奇偶性。如果大于9标志指示绝对级别大于9(例如,大于9标志等于1),则能够处理系数的剩余绝对级别(例如,abs_remainder),并且能够用哥伦布-莱斯码对非二进制语法元素进行二值化。能够在算术编码引擎的旁路模式下对所得的二进制位进行编码。
[0077]
与图5中的方法相比,图7中的方法在遍1而不是遍2中处理大于3标志的编码。图8图示了根据本公开的一些实施例的包括图7所示的方法的语法的示例伪代码。图8中的伪代码的一些部分用斜体表示,指示对大于3标志、大于5标志、大于7标志、大于9标志和奇偶性级别标志的处理。
[0078]
应领会,图7中的方法能够由编码器(例如,图1的编码器)实现。在一些实施例中,编码器能够接收视频帧。对于解码器(例如,图2的解码器),该方法能够包括三遍。
[0079]
在遍1中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。对于每个系数可以有重要性标志(例如,sig_coeff_flag)。重要性标志被解码。重要性标志能够指示级别是否为非零值。如果用于系数的重要性标志指示级别是非零值(例如,重要性标志等于1),则能够对信号系数符号标志(例如,coeff_sign_flag)和大于1标志(例如,abs_level_gtx_flag[0])进行解码。如果系数的大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对大于3标志(例如,abs_level_gtx_flag[l])进行解码。
[0080]
在遍2中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果系数的大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对每个系数的奇偶性级别标志(例如,par_level_flag)进行解码。如果系数的大于3标志指示绝对级别大于3(例如,大于3标志等于1),则能够对大于5标志(例如,abs_level_gtx_flag[2])进行解码。如果系数的大于5标志指示绝对级别大于5(例如,大于5标志等于1),则能够对大于7标志(例如,abs_level_gtx_flag[3])进行解码。如果系数的大于7标志指示绝对级别大于7(例如,大于7标志等于1),则能够对大于9标志(例如,abs_level_gtx_flag[4])进行解码。大于9标志能够指定绝对级别是否大于9。
[0081]
在遍3中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到该子块的最后扫描位置的每个系数被扫描。如果大于9标志指示绝对级别大于9(例如,大于9标志等于1),则能够对系数的剩余绝对级别(例如,abs_remainder)进行解码。
[0082]
在一些实施例中,解码器能够接收视频位流。
[0083]
在一些实施例中,能够改变变换跳过残差块的扫描次序以统一变换残差编码过程和变换跳过残差编码过程的扫描次序。例如,能够将变换跳过残差块的扫描次序从正向扫描改变为反向扫描。图9图示了根据本公开的一些实施例的8
×
8变换跳过块的示例反向扫描。如图9所示,系数的扫描从位于右下拐角处的系数开始并且在位于左上拐角处的系数处结束。应领会,能够通过图5和图7所示的方法来应用图9所图示的扫描次序。
[0084]
在一些实施例中,能够在变换块被翻转之后执行反向扫描。图10a和图10b图示了根据本公开的一些实施例的8
×
8块的示例翻转。如图10a和图10b所示,在翻转块之后,左上残差系数的位置被移动到右下位置。在块被翻转之后,能够执行反向扫描(例如,图9的反向扫描)。
[0085]
在一些实施例中,能够在多遍中执行旁路编码。图11图示了根据本公开的一些实施例的示例多遍编码。在一些实施例中,能够在vvc(例如,vvc 5)中执行图11所示的多遍编码。能够假定图11中的上下文编码二进制位的数量已在第一遍的位置处达到了最大极限(在图11中示出为黑点)。如图11所示,能够在多个编码遍中对标志(例如,大于3标志、大于5标志、大于7标志、大于9标志等)进行旁路编码.
[0086]
在一些实施例中,能够实现对级别的绝对值的单遍旁路编码。图12图示了根据本公开的一些实施例的针对级别的绝对值的示例单遍旁路编码方法。如图12所示,一旦上下文编码二进制位达到最大极限(例如,在图12中示出为黑点),cabac引擎就能够开始使用哥伦布-莱斯编码对绝对级别的剩余部分进行旁路编码。
[0087]
图13图示了根据本公开的一些实施例的用于莱斯参数的示例查找表。根据图13,莱斯参数能够由变量criceparam表示。和绝对的位置能够由变量locsumabs表示。
[0088]
在一些实施例中,能够以以下方式推导莱斯参数(例如,criceparam)。给定变换跳过块的数组abslevel[x][y]、左上亮度位置(x0,y0)和当前系数扫描位置(xc,yc),假定minlevel是最小旁路编码值,如果系数的标志均未被上下文编码,则该系数的minlevel是0。如果所有标志都被上下文编码,则minlevel等于10。
[0089]
在一些实施例中,能够像由以下伪代码所指定的那样推导变量locsumabs:
[0090]
在一些实施例中,单遍旁路编码能够与图7所示的方法组合。例如,图14图示了根据本公开的一些实施例的与单遍旁路编码组合的将编码遍数减少到3的变换跳过残差编码的示例方法。图14中的方法包括3遍。
[0091]
在遍1(步骤1402)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到最后扫描位置的每个系数被扫描。对于每个系数,如果上下文编码二进制位的剩余数量大于或等于组极限,则能够执行下列的。例如,在一些实施例中,使用上下文编码或旁路编码来对组中的所有标志进行编码是更高效的。结果,如果上下文编码二进制位的数量小于组极限,则使用旁路编码来对所有剩余标志进行编码而不是使用上下文编码来对剩余标志中的一些进行编码并且使用旁路编码来对其他标志进行编码是更高效的。在此示例中,可能有在遍1中在组中编码的4个标志(例如,重要性标志、信号系数符号标志、大于1标志和大于3标志)。因此,给定4的组极限,如果上下文编码二进制位的剩余数量大于或等于4,则能够对于每个系数执行下列的。如果重要性标志(sig_coeff_flag)指示级别是非零值
(例如,重要性标志等于1),则能够对信号系数符号标志(例如,coeff_sign_fiag)和大于1标志(例如,abs_level_gtx_flag[0])进行编码。如果大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对大于3标志(例如,abs_level_gtx_flag[l])进行编码。在一些实施例中,能够扫描系数直到上下文编码二进制位达到最大极限(例如,图12中的黑点)为止,然后扫描在作为第一遍的最后位置的位置处停止。
[0092]
在遍1结束之后并且在遍2开始之前,能够根据前一遍的最后位置来设置第一遍旁路位置变量(例如,ifirstpassbypasspos)(步骤1404)。在一些实施例中,能够将第一遍旁路位置变量设置为前一遍的最后位置加1。
[0093]
在遍2(步骤1406)中,能够扫描从子块的第一扫描位置到ifirstpassbypasspos的系数。对于每个系数,如果上下文编码二进制位的剩余数量大于或等于组极限,则能够执行下列的。例如,组极限可以是3(例如,大于5标志、大于7标志和大于9标志)。如果大于3标志指示绝对级别大于3(例如,大于3标志等于1),则能够对大于5标志(例如,abs_level_gtx_flag[2])进行编码。如果大于5标志指示绝对级别大于5(例如,大于5标志等于1),则能够对大于7标志(例如,abs_level_gtx_flag[3])进行编码。如果大于7标志指示绝对级别大于7(例如,大于7标志等于1),则能够对大于9标志(例如,abs_level_gtx_flag[4])进行编码。
[0094]
在遍2结束之后并且遍3开始之前,根据前一遍的最后位置来设置第二遍旁路位置变量(例如,isecondpassbypasspos)(步骤1408)。在一些实施例中,能够将第二遍旁路位置变量设置为前一遍的最后位置加1。
[0095]
在遍3(a)(步骤1410)中,能够扫描从子块的第一扫描位置到ifirstpassbypasspos的系数。能够对于每个系数执行下列的。如果大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对奇偶性级别标志(例如,par_level_flag)进行旁路编码。如果大于9标志指示绝对级别大于9(例如,大于9标志等于1),则能够通过用哥伦布-莱斯码二值化的非二进制语法元素来处理剩余绝对级别(例如,abs_remainder)的编码。能够在算术编码引擎的旁路模式下对所得的二进制位进行编码。
[0096]
在遍3(b)(步骤1412)中,能够扫描从ifirstpassbypasspos开始到最后扫描位置的系数。对于每个系数,能够通过用哥伦布-莱斯码二值化的非二进制语法元素来处理绝对级别(例如,dec_abs_level)的编码。能够在算术编码引擎的旁路模式下对所得的二进制位进行编码。也能够对信号系数符号标志进行编码。
[0097]
在一些实施例中,在遍3(b)中,能够扫描从ifirstpassbypasspos开始到最后扫描位置的系数,并且对于每个系数,能够通过两个步骤来处理绝对级别(例如,dec_abs_level)的编码。首先,用信号通知dec_abs_level是否为零。如果dec_abs_level是非零,则能够在算术编码引擎的旁路模式下对用哥伦布-莱斯码二值化的非二进制语法元素和所得的二进制位进行编码。也能够对信号系数符号标志进行编码。
[0098]
图15图示了根据本公开的一些实施例的包括与图14中的方法组合的旁路编码的语法的示例伪代码。图15中的伪代码的一些部分用斜体表示,指示对大于3标志、大于5标志、大于7标志、大于9标志和奇偶性级别标志的处理。
[0099]
在一些实施例中,能够使用两遍编码方法。例如,能够在遍1中对所有标志进行上下文编码,并且哥伦布-莱斯编码能够被用于在遍2中进行旁路编码。图16图示了根据本公开的一些实施例的具有用于上下文编码的第一遍和用于哥伦布-莱斯编码的第二遍的变换
跳过残差编码的示例方法。图16中的方法包括2遍。
[0100]
在遍1(步骤1602)中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到最后扫描位置的每个系数被扫描。对于每个系数,如果上下文编码二进制位的剩余数量等于或大于8,则能够执行下列的。能够对重要性标志(例如,sig_coeff_flag)进行上下文编码。如果重要性标志指示级别是非零(例如,重要性标志等于1),则能够用信号通知系数符号标志(例如,coeff_sign_flag)和大于1标志(例如,abs_level_gtx_flag[0])。如果大于l标志指示绝对级别大于1(例如,大于1标志等于1),则能够对奇偶性级别标志(例如,par_level_flag)和大于3标志(例如,abs_level_gtx_flag[l])进行编码。奇偶性级别标志能够指定绝对级别减去2的奇偶性。大于3标志能够指定绝对级别是否大于3。如果大于3标志表示指示绝对级别大于3(例如,大于3标志等于1),则能够对大于5标志(例如,abs_level_gtx_flag[2])进行编码。如果大于5标志指示绝对级别大于5(例如,大于5标志等于1),则能够对大于7标志(例如,abs_level_gtx_flag[3])进行编码。如果大于7标志指示绝对级别大于7(例如,大于7标志等于1),则能够对大于9标志(例如,abs_level_gtx_flag[4])进行编码。大于9标志能够指定级别的绝对级别是否大于9。在一些实施例中,能够扫描系数直到上下文编码二进制位达到最大极限(例如,图12中的黑点)为止,然后扫描在作为第一遍的最后位置的位置处停止。在遍1结束之后并且在遍2开始之前,能够根据前一遍的最后位置来设置第一遍旁路位置变量(ifirstpassbypasspos)(步骤1604)。在一些实施例中,能够将第一遍旁路位置变量设置为前一遍的最后位置加1。第一遍旁路位置变量能够表示从其用信号通知绝对级别(例如,dec_abs_level)语法的起始位置。能够通过遍1中的上下文编码部分地用信号通知扫描位置小于第一遍旁路位置的系数并且能够在遍2(a)中用信号通知剩余系数,在一些实施例中,如果系数的扫描位置大于或等于第一遍旁路位置变量,则该系数的标志均未被上下文编码,并且能够使用遍2(b)的旁路编码来用信号通知完整系数和符号。
[0102]
在遍2(a)(步骤1606)中,能够扫描从子块的第一扫描位置到第一遍旁路位置变量减去1的位置的系数。能够对于每个系数执行下列的。如果大于9标志指示绝对级别大于9(例如,大于9标志等于1),则能够使用哥伦布-莱斯码来对剩余绝对级别(例如,abs_remainder)进行二值化,并且能够在算术编码引擎的旁路模式下对所得的二进制位进行编码。
[0103]
在遍2(b)(步骤1608)中,能够扫描从第一遍旁路位置到最后扫描位置的系数。能够对于每个系数执行下列的。能够使用哥伦布-莱斯码来对绝对级别(例如,dec_abs_level)进行二值化,并且能够在算术编码引擎的旁路模式下对所得的二进制位进行编码。如果绝对级别不等于0,则能够对系数符号标志(例如,coeff_sign_flag)进行旁路编码。
[0104]
应领会,图16的方法能够由编码器(例如,图1的编码器)实现。在一些实施例中,编码器能够接收视频帧。应领会,能够使用解码器(例如,图2的解码器)来对来自图17的方法的编码视频帧进行解码。在一些实施例中,解码方法能够包括2遍。
[0105]
在遍1中,扫描子块的系数。在一些实施例中,从子块的第一扫描位置开始到最后扫描位置的每个系数被扫描。对于每个系数,如果上下文编码二进制位的剩余数量等于或大于组极限,则能够执行下列的。例如,组极限可以是8,指示要在遍1中编码的不同标志(例如,重要性标志、系数符号标志、大于1标志、奇偶性级别标志、大于3标志、大于5标志、大于7
标志和大于9标志)的数量。能够对重要性标志(例如,sig_coeff_flag)进行上下文解码。如果重要性标志指示级别是非零(例如,重要性标志等于1),则能够用信号通知系数符号标志(例如,coeff_sign_flag)和大于1标志(例如,abs_level_gtx_flag[0])。如果大于1标志指示绝对级别大于1(例如,大于1标志等于1),则能够对奇偶性级别标志(例如,par_level_flag)和大于3标志(例如,abs_level_gtx_flag[l])进行解码。奇偶性级别标志能够指定绝对级别减去2的奇偶性。大于3标志能够指定绝对级别是否大于3。如果大于3标志指示绝对级别大于3(例如,大于3标志等于1),则能够对大于5标志(例如,abs_level_gtx_flag[2])进行解码。如果大于5标志指示绝对级别大于5(例如,大于5标志等于1),则能够对大于7标志(例如,abs_level_gtx_flag[3])进行解码。如果大于7标志指示绝对级别大于7(例如,大于7标志等于1),则能够对大于9标志(例如,abs_level_gtx_flag[4])进行解码。大于9标志能够指定级别的绝对级别是否大于9。在一些实施例中,能够扫描系数直到上下文编码二进制位达到最大极限(例如,图12中的黑点)为止,然后扫描在作为第一遍的最后位置的位置处停止。
[0106]
在遍1结束之后并且在遍2开始之前,能够根据前一遍的最后位置来设置第一遍旁路位置变量(ifirstpassbypasspos)。在一些实施例中,能够将第一遍旁路位置变量设置为前一遍的最后位置加1。第一遍旁路位置变量能够表示从其用信号通知绝对级别(例如,dec_abs_level)语法的起始位置。能够通过遍1中的上下文编码部分地用信号通知扫描位置小于第一遍旁路位置的系数并且能够在遍2(a)中用信号通知剩余系数。在一些实施例中,如果系数的扫描位置大于或等于第一遍旁路位置变量,则该系数的标志均未被上下文解码,并且能够使用遍2(b)的旁路解码来用信号通知完整系数和符号。
[0107]
在遍2(a)中,能够扫描从子块的第一扫描位置到第一遍旁路位置变量减去1的位置的系数。能够对于每个系数执行下列的。如果大于9标志指示绝对级别大于9(例如,大于9标志等于1),则能够使用哥伦布-莱斯码来对二值化剩余绝对级别(例如,abs_remainder)进行解码,并且能够在算术编码引擎的旁路模式下对所得的二进制位进行解码。
[0108]
在遍2(b)中,能够扫描从第一遍旁路位置到最后扫描位置的系数。能够对于每个系数执行下列的。能够用哥伦布-莱斯码对二值化绝对级别(例如,dec_abs_level)进行解码,并且能够在算术编码引擎的旁路模式下对所得的二进制位进行解码。如果绝对级别不等于0,则能够对系数符号标志(例如,coeff_sign_flag)进行旁路解码。
[0109]
图17图示了根据本公开的一些实施例的包括图16中的方法的旁路编码的语法的示例伪代码。图17中的伪代码的一些部分用斜体表示,指示第一遍旁路位置和遍2(b)的处理。
[0110]
在一些实施例中,如图17所示,只有当上下文编码二进制位的剩余数量大于或等于8(例如,如图17所示的“maxccbs>=8”)时才执行遍1。这意味着上下文编码二进制位预算中的最多7个上下文编码可能被“浪费”,这可能损害编码性能。因此,在一些实施例中,可以在所公开的两遍编码方法中调整abs_level_gtx_flag[]标志的数量。例如,不是对大于9标志(例如,abs_level_gtx_flag[4])进行编码,而是仅最多大于7标志(例如,abs_level_gtx_flag[3])被编码。因此,只有当上下文编码二进制位的剩余数量等于或大于7时才能够执行遍1。在一些实施例中,能够对仅最多大于5标志(abs_level_gtx_flag[2])进行编码。因此,只有当上下文编码二进制位的剩余数量等于或大于6时才执行遍1。应领会,可以将
abs_level_gtx_flag[]标志的数量调整为任何数量。调整abs_level_gtx_flag[]标志的数量能够允许在第一编码遍中对更多位置进行编码,从而提供更好的编码效率。
[0111]
在一些实施例中,能够以以下方式推导莱斯参数criceparam。给定数组transcoefflevel[xc][yc]作为扫描位置(xc,yc)处的系数值并且给定minlevel作为最小旁路编码值,如果系数的标志均未被上下文编码,则该系数的minlevel是0。如果所有标志都被上下文编码,则minlevel等于10。能够像通过以下伪代码所指定的那样推导变量locsumabs:
[0112]
图18图示了根据本公开的一些实施例的当最小旁路编码值等于0时莱斯参数的示例查找表。如图18所示,莱斯参数能够由变量criceparam表示。和绝对的位置能够由变量locsumabs表示。
[0113]
在一些实施例中,两个单独的查找表能够被用于基于minlevel的莱斯参数推导。如果minlevel等于0,则能够使用图18所示的表。如果minlevel不等于0,则能够使用图13所示的表。
[0114]
在一些实施例中,莱斯参数的推导不需要任何查找表。例如,能够推导criceparam如下;criceparam=(locsumabs+offset)>>3
[0115]
在上述等式中,偏移量可以是预定义常数并且能够通过离线训练来确定。偏移值的一个示例是4。
[0116]
在一些实施例中,偏移值取决于颜色分量。例如,偏移值对于亮度可以是4而对于色度可以是0。
[0117]
在一些实施例中,偏移值取决于帧类型。例如,偏移值对于帧内帧可以是4而对于帧间帧可以是0。
[0118]
在一些实施例中,在vvc(例如,vvc 7)中,对于亮度分量和色度分量两者允许变换跳过模式,并且两种类型的分量能够共享相同的上下文变量。上下文变量可以是通过包含最近解码的二进制位的等式为二进制位的自适应二进制算术解码过程指定的变量。然而,亮度块和色度块的信号统计可以是不同的。结果,在本公开的一些实施例中,不同的上下文变量能够被用于亮度分量和色度分量。受所提议的上下文模型扩展影响的语法元素能够包括重要性系数标志(例如,sig_coeff_flag)、abs_level_gtx_flag[n][j](例如,j=0至4)、奇偶性标志(例如,par_level_flag)、信号系数符号标志(例如,coeff_sign_flag)和coded_sub_block_flag(例如,图3所示的coded_sub_block_fiag)。
[0119]
在vvc(例如,vvc 7)中,能够使用3个上下文变量来对变换跳过模式的sig_coeff_flag进行编码。在一些实施例中,能够使用总共6个上下文变量(例如,3个用于亮度且3个用
于色度)来对变换跳过模式的sig_coeff_flag进行编码。能够根据邻居(例如,上邻居和左邻居)的重要系数的数量来推导用于对变换跳过模式的sig_coeff_flag进行编码的上下文索引。在一些实施例中,上下文索引可能是指上下文变量的标识符。例如,如果有6个上下文变量可用,则第一上下文变量的上下文索引可以是0,第二上下文变量的上下文索引可以是1等。此过程的输入可以是颜色分量索引cldx、亮度位置(x0,y0)和当前系数扫描位置(xc,yc)。亮度位置(x0,y0)能够相对于当前图像的特定样本(例如,左上样本)指定当前变换块的特定样本(例如,左上样本)。此过程的输出可以是编码索引变量ctxinc。在一些实施例中,能够根据以下伪代码来推导变量ctxinc:
[0120]
在vvc(例如,vvc 7)中,能够使用4个上下文变量来对变换跳过模式的abs_level_gtx_fiag[n][0]进行编码。在一些实施例中,能够使用总共8个上下文变量(4个用于亮度且4个用于色度)来对变换跳过模式的abs_level_gtx_flag[n][0]进行编码。能够根据邻居(例如,上邻居和左邻居)的重要系数的数量来推导用于对变换跳过的abs_level_gtx_flag[n][0]进行编码的上下文索引。此过程的输入可以是颜色分量索引cidx、亮度位置(x0,y0)和当前系数扫描位置(xc,yc)。亮度位置(x0,y0)能够相对于当前图像的特定样本(例如,左上样本)指定当前变换块的特定样本(例如,左上样本)。此过程的输出可以是编码索引变量ctxinc。在一些实施例中,能够根据以下伪代码来推导变量ctxinc:在vvc(例如,vvc 7)中,能够使用1个上下文变量来对变换跳过模式的par_level_flag进行编码。在一些实施例中,能够使用总共2个上下文变量(1个用于亮度且1个用于色度)来对变换跳过模式的par_level_flag进行编码。能够以以下方式推导用于对变换跳过
的par_level_flag进行编码的上下文索引。此过程的输入可以是颜色分量索引cidx。此过程的输出是编码索引变量ctxinc。在一些实施例中,能够根据以下伪代码来推导变量ctxinc:
[0122]
在一些实施例中,能够使用用于亮度和色度的单独的上下文变量来对变换跳过模式的abs_level_gtx_flag进行编码。能够以以下方式推导用于对变换跳过的abs_level_gtx_flag进行编码的上下文索引。此过程的输入可以是颜色分量索引cidx。此过程的输出可以是编码索引变量ctxinc。在一些实施例中,能够以以下方式推导变量ctxinc:其中j>0的语法元素abs_level_gtx_flag[n][j]的上下文索引被推导为ctxinc=j-1;并且对于色度分量(例如,cidx大于0),将上下文索引递增为ctxinc=ctxinc+4。
[0123]
在vvc(例如,vvc 7)中,能够使用6个上下文变量来对变换跳过模式的coeff_sign_flag进行编码。在一些实施例中,能够使用总共12个上下文变量(6个用于亮度且6个用于色度)来对变换跳过模式的coeff_sign_ftag进行编码。能够根据邻居(例如,上邻居和左邻居)的coeff_sign_flag来推导用于对变换跳过模式的coeff_sign_flag进行编码的上下文索引。此过程的输入可以是颜色分量索引cidx、亮度位置(x0,y0)和当前系数扫描位置(xc,yc)。亮度位置(x0,y0)能够相对于当前图像的特定样本(例如,左上样本)指定当前变换块的特定样本(例如,左上样本)。此过程的输出可以是编码索引变量ctxinc。在一些实施例中,能够根据以下伪代码来推导变量leftsign和abovesign:
[0124]
在一些实施例中,能够根据以下伪代码来推导变量ctxinc:
[0125]
在vvc(例如,vvc 7)中,能够使用3个上下文变量来对变换跳过模式的coded_sub_block_flag进行编码。coded_sub_block_flag可以是指定子块中的变换系数级别是否等于0的子块标志。例如,如果coded_sub_block_fiag[xs][ys]等于0,则位置(xs,ys)处的子块的变换系数级别被推理为等于0。如果coded_sub_block_flag[xs][ys]等于1,则位置(xs,ys)处的子块的变换系数级别中的至少一个具有非零值。在一些实施例中,能够使用总共6个上下文变量(3个用于亮度且3个用于色度)来对变换跳过模式的coded_sub_block_flag进行编码。能够根据上邻居和左邻居的coded_sub_block_flag来推导用于对变换跳过模式的coded_sub_block_flag进行编码的上下文索引。此过程的输入可以是颜色分量索引cidx、亮度位置(x0,y0)、当前子块扫描位置(xs,ys)、语法元素coded_sub_block_flag的先前解码的二进制位、变换块宽度log2tbwidth和变换块高度log2tbheight的二进制对数。亮度位置(x0,y0)能够相对于当前图像的左上样本指定当前变换块的左上样本。此过程的输出可以是编码索引变量ctxinc。在一些实施例中,能够根据以下伪代码来推导变量log2sbwidth和log2sbheight:
[0126]
在一些实施例中,能够根据以下伪代码来修改变量log2sbwidth和log2sbheight:
[0127]
在一些实施例中,能够将变量csbfctx初始化为0并且根据以下伪代码来修改变量csbfctx:
[0128]
在一些实施例中,能够根据以下伪代码使用颜色分量索引cidx和csbfctx来推导上下文索引变量ctxinc:
[0129]
在一些实施例中,还提供了一种包括指令的非暂时性计算机可读存储介质,并且这些指令可以由装置(诸如所公开的编码器和解码器)执行,以用于执行上述方法。非暂时性介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、cd-rom、任何其他光学数据存储介质、带有孔图案的任何物理介质、ram、prom和eprqm、flash-eprom或任何其他闪速存储器、nvram、高速缓存、寄存器、任何其他存储器芯片或盒以及它们的联网版本。装置可以包括一个或多个处理器(cpu)、输入/输出接口、网络接口和/或存储器。
[0130]
应该注意,本文的诸如“第一”、“第二”的关系术语仅用于区分一个实体或操作和另一实体或操作,而不要求或暗示这些实体或操作之间的任何实际关系或顺序。此外,单词“包括”、“具有”、“包含”和“包括有”及其他类似形式旨在为在含义上等效并且是开放式的,因为紧跟这些词语中的任何一个之后的一个或多个项目不意在为一个或多个此类项目的详尽列表,或者意在限于仅所列举的一个或多个项目。
[0131]
如本文所使用的,除非另外具体地陈述,否则术语“或”包含所有可能的组合,除非不可行。例如,如果陈述了数据库可以包括a或b,则除非另外具体地陈述或不可行,否则该数据库可以包括a、或b、或a和b。作为第二示例,如果陈述了数据库可以包括a、b或c,则除非另外具体地陈述或不可行,否则该数据库可以包括a、或b、或c、或a和b、或a和c、或b和c、或a及b和c。
[0132]
应领会,上述实施例能够通过硬件、或软件(程序代码)、或硬件和软件的组合来实现。如果通过软件来实现,则它可以被存储在上述计算机可读介质中。软件当由处理器执行时能够执行所公开的方法。本公开中描述的计算单元和其他功能单元能够通过硬件、或软件、或硬件和软件的组合来实现。本领域的普通技术人员也将理解,可以将上述模块/单元中的多个模块/单元组合为一个模块/单元,并且可以将上述模块/单元中的每一个模块/单元进一步划分成多个子模块/子单位。
[0133]
在前面的说明书中,已参考可能从实现方式到实现方式变化的许多具体细节描述了实施例。能够对所描述的实施例做出某些适配和修改。根据对本文公开的本发明的说明书和实践的考虑,其他实施例对本领域的技术人员而言可以是显而易见的。本说明书和示例旨在被认为是仅示例性的,同时本发明的真实范围和精神由以下权利要求指示。各图所
示的步骤的顺序也旨在仅用于说明性目的,而不旨在限于步骤的任何特定顺序。因此,本领域的技术人员能够领会,能够在实现相同方法的同时以不同次序执行这些步骤。
[0134]
可以使用以下条款来进一步描述实施例:1.一种由视频数据的编码器实现的编码方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路编码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。2.根据条款1所述的编码方法,进一步包括:在所述扫描的第一遍之前,执行扫描所述变换系数的第二遍,其中所述扫描的第二遍包括:对大于1标志进行编码,其中所述大于1标志指示所述绝对值是否大于1;其中所述扫描的第一遍进一步包括:响应于所述大于1标志指示所述绝对值大于1而对所述奇偶性级别标志进行旁路编码。3.根据条款2所述的编码方法,其中所述子块具有多个变换系数,并且执行所述扫描的第二遍进一步包括:扫描所述多个变换系数直到上下文编码二进制位的数量达到最大极限为止;以及响应于上下文编码二进制位的数量达到所述最大极限,对在所述第二遍中未扫描的变换系数的级别的绝对值进行旁路编码,其中所述旁路编码包括使用哥伦布-莱斯编码来对所述未扫描的变换系数的绝对值进行二值化。4.根据条款2或3所述的编码方法,其中所述扫描的第二遍进一步包括:对所述变换系数的重要性标志进行编码,所述重要性标志指示所述变换系数的级别是否为零;以及响应于所述重要性标志指示所述变换系数的级别不为零而对大于1标志进行编码。5.根据条款2-4中任一项所述的编码方法,其中所述扫描的第二遍进一步包括:响应于所述大于1标志指示所述绝对值大于1而对所述变换系数的大于3标志进行编码,所述大于3标志指示所述绝对值是否大于3。6.根据条款5所述的编码方法,进一步包括:在所述扫描的第二遍之后并且在所述扫描的第一遍之前,执行扫描所述变换系数的第三遍,其中所述扫描的第三遍包括:响应于所述大于3标志指示所述绝对值大于3而对所述变换系数的大于5标志进行编码,所述大于5标志指示所述绝对值是否大于5;响应于所述大于5标志指示所述绝对值大于5而对所述变换系数的大于7标志进行编码,所述大于7标志指示所述绝对值是否大于7;以及响应于所述大于7标志指示所述绝对值大于7而对所述变换系数的大于9标志进行编码,所述大于9标志指示所述绝对值是否大于9。7.根据条款6所述的编码方法,其中所述扫描的第一遍进一步包括:响应于所述大于9标志指示所述绝对值大于9而对所述变换系数的剩余绝对级别
标志进行编码,所述剩余绝对级别标志指示所述变换系数的级别的剩余绝对值。8.根据条款2所述的编码方法,进一步包括:在所述扫描的第二遍之后并且在所述扫描的第一遍之前,执行扫描所述变换系数的第三遍,其中所述扫描的第三遍进一步包括:响应于所述大于1标志指示所述绝对值大于1而对所述变换系数的大于3标志进行编码,所述大于3标志指示所述绝对值是否大于3。9.根据条款8所述的编码方法,其中所述扫描的第三遍进一步包括:响应于所述大于3标志指示所述绝对值大于3而对所述变换系数的大于5标志进行编码,所述大于5标志指示所述绝对值是否大于5;响应于所述大于5标志指示所述绝对值大于5而对所述变换系数的大于7标志进行编码,所述大于7标志指示所述绝对值是否大于7;以及响应于所述大于7标志指示所述绝对值大于7而对所述变换系数的大于9标志进行编码,所述大于9标志指示所述绝对值是否大于9。10.根据条款9所述的编码方法,其中所述扫描的第一遍进一步包括:响应于所述大于9标志指示所述绝对值大于9而对所述变换系数的剩余绝对级别标志进行编码,所述剩余绝对级别标志指示所述变换系数的级别的剩余绝对值。11.根据条款1-10中任一项所述的编码方法,其中所述子块具有多个变换系数,并且所述扫描的第一遍是通过以相反次序扫描所述多个变换系数来执行的。12.根据条款11所述的编码方法,进一步包括:在执行所述扫描的第一遍之前翻转所述多个变换系数。13.根据条款1-12中任一项所述的编码方法,其中所述编码方法是变换跳过残差编码方法。14.根据条款1-13中任一项所述的编码方法,进一步包括:接收所述视频帧;以及将所述视频帧分割成多个子块。15.一种由视频数据的解码器实现的解码方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路解码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。16.根据条款15所述的解码方法,进一步包括:在所述扫描的第一遍之前,执行扫描所述变换系数的第二遍,其中所述扫描的第二遍包括:对大于1标志进行解码,其中所述大于1标志指示所述绝对值是否大于1;其中所述扫描的第一遍进一步包括:响应于所述大于1标志指示所述绝对值大于1而在所述第一遍中对所述奇偶性级别标志进行旁路解码。17.根据条款16所述的解码方法,其中所述扫描的第二遍进一步包括:对所述变换系数的重要性标志进行解码,所述重要性标志指示所述变换系数的级别是否为零;以及
响应于所述重要性标志指示所述变换系数的级别不为零而对所述大于1标志进行解码。18.根据条款16所述的解码方法,其中所述扫描的第一遍进一步包括:响应于所述大于1标志指示所述绝对值大于1而对所述变换系数的大于3标志进行解码,所述大于3标志指示所述绝对值是否大于3;响应于所述大于3标志指示所述绝对值大于3而对所述变换系数的大于5标志进行解码,所述大于5标志指示所述绝对值是否大于5;响应于所述大于5标志指示所述绝对值大于5而对所述变换系数的大于7标志进行解码,所述大于7标志指示所述绝对值是否大于7;以及响应于所述大于7标志指示所述绝对值大于7而对所述变换系数的大于9标志进行解码,所述大于9标志指示所述绝对值是否大于9。19.根据条款18所述的解码方法,进一步包括:执行扫描所述变换系数的第三遍,其中所述扫描的第三遍包括:响应于所述大于9标志指示所述绝对值大于9而对所述变换系数的剩余绝对级别标志进行解码,所述剩余绝对级别标志指示所述变换系数的级别的剩余绝对值。20.根据条款15所述的解码方法,其中所述子块具有多个变换系数,并且所述扫描的第一遍是通过从所述子块的右下拐角到所述子块的左上拐角扫描所述多个变换系数来执行的。21.根据条款20所述的解码方法,进一步包括:在执行所述扫描的第一遍之前翻转所述多个变换系数。22.根据条款15-21中任一项所述的解码方法,其中所述解码方法是变换跳过残差解码方法。23.一种用于对视频数据进行编码的系统,所述系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路编码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。24.一种用于对视频数据进行解码的系统,所述系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行解码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。25.一种由视频数据的编码器实现的编码方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中:当上下文编码二进制位的数量达到最大极限时停止执行所述扫描第一遍,在所述第一遍中扫描所述子块的第一组变换系数,并且所述扫描的第一遍包括对于所述第一组变换系数中的每一个变换系数,对指示所
述变换系数的级别是否为零的重要性标志进行编码;以及执行扫描所述子块的变换系数的第二遍,其中所述扫描的第二遍包括:对第二组变换系数中的每一个变换系数的级别的绝对值进行二值化,其中在所述第一遍中不扫描所述第二组变换系数。26.根据条款25所述的编码方法,其中所述扫描的第一遍进一步包括:响应于第一变换系数的重要性标志指示所述第一变换系数的级别不为零而对所述第一变换系数的大于1标志进行编码,所述第一变换系数是所述第一组变换系数中的一个变换系数,所述大于1标志指示所述第一变换系数的级别的绝对值是否大于1。27.根据条款26所述的编码方法,其中所述扫描的第一遍进一步包括:响应于所述大于1标志指示所述第一变换系数的级别的绝对值大于1而对所述第一变换系数的大于3标志进行编码,所述大于3标志指示所述第一变换系数的级别的绝对值是否大于3,其中当剩余上下文编码二进制位的数量小于组极限时停止执行所述扫描的第一遍;响应于所述大于3标志指示所述第一变换系数的级别的绝对值大于3而对所述第一变换系数的大于5标志进行编码,所述大于5标志指示所述第一变换系数的级别的绝对值是否大于5;响应于所述大于5标志指示所述第一变换系数的级别的绝对值大于5而对所述第一变换系数的大于7标志进行编码,所述大于7标志指示所述第一变换系数的级别的绝对值是否大于7;以及响应于所述大于7标志指示所述第一变换系数的级别的绝对值大于7而对所述第一变换系数的大于9标志进行编码,所述大于9标志指示所述第一变换系数的级别的绝对值是否大于9。28.根据条款27所述的编码方法,其中所述扫描的第二遍进一步包括:响应于所述大于9标志指示所述第一变换系数的级别的绝对值大于9而对所述第一变换系数的剩余绝对级别标志进行编码,其中所述剩余绝对级别标志指示所述第一变换系数的级别的剩余绝对值。29.根据条款25-28中任一项所述的编码方法,其中所述第一遍和所述第二遍中的每一个是通过以相反次序扫描所述子块的变换系数来执行的。30.根据条款29所述的编码方法,其中所述方法进一步包括:在执行所述第一遍之前翻转所述子块的变换系数。31.根据条款25-30中任一项所述的编码方法,其中所述编码方法是变换跳过残差编码方法。32.根据条款25-31中任一项所述的编码方法,其中对所述第二组变换系数中的每一个变换系数的级别的绝对值进行二值化进一步包括:使用哥伦布-莱斯码来对所述绝对值进行二值化。33.一种由视频数据的解码器实现的解码方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中:当上下文编码二进制位的数量达到最大极限时停止执行所述扫描的第一遍,在所述第一遍中扫描所述子块的第一组变换系数,并且
所述扫描的第一遍包括对于所述第一组变换系数中的每一个变换系数,对指示所述变换系数的级别是否为零的重要性标志进行解码;以及执行扫描所述子块的变换系数的第二遍,其中所述扫描的第二遍包括:对第二组变换系数中的每一个变换系数的级别的二值化绝对值进行解码,其中在所述第一遍中不扫描所述第二组变换系数。34.根据条款33所述的解码方法,其中所述扫描的第一遍进一步包括:响应于第一变换系数的重要性标志指示所述第一变换系数的级别不为零而对所述第一变换系数的大于1标志进行解码,所述第一变换系数是所述第一组变换系数中的一个变换系数,所述大于1标志指示所述第一变换系数的级别的绝对值是否大于1。35.根据条款34所述的解码方法,其中所述扫描的第一遍进一步包括:响应于所述大于1标志指示所述第一变换系数的级别的绝对值大于1而对所述第一变换系数的大于3标志进行解码,所述大于3标志指示正被扫描的所述第一变换系数的级别的绝对值是否大于3,其中当剩余上下文编码二进制位的数量小于组极限时停止执行所述扫描的第一遍。响应于所述大于3标志指示所述第一变换系数的级别的绝对值大于3而对所述第一变换系数中的每一个变换系数的大于5标志进行解码,所述大于5标志指示所述第一变换系数的级别的绝对值是否大于5;响应于所述大于5标志指示所述第一变换系数的级别的绝对值大于5而对所述第一变换系数中的每一个变换系数的大于7标志进行解码,所述大于7标志指示所述第一变换系数的级别的绝对值是否大于7;以及响应于所述大于7标志指示所述第一变换系数的级别的绝对值大于7而对所述第一变换系数中的每一个的大于9标志进行解码,所述大于9标志指示所述第一变换系数的级别的绝对值是否大于9。36.根据条款35所述的解码方法,其中所述扫描的第二遍进一步包括:响应于所述大于9标志指示正被扫描的所述第一变换系数的级别的绝对值大于9而对所述第一变换系数的剩余绝对级别标志进行解码,其中所述剩余绝对级别标志指示所述第一变换系数的级别的剩余绝对值。37.根据条款33-36中任一项所述的解码方法,其中所述编码方法是变换跳过残差编码方法。38.根据条款9-13中任一项所述的解码方法,其中,对所述第二组变换系数中的每一个变换系数的级别的二值化绝对值进行解码进一步包括:使用哥伦布-莱斯码来对所述绝对值进行解码。39.一种用于对视频数据进行编码的系统,所述系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:执行扫描视频帧的子块的变换系数的第一遍,其中:当上下文编码二进制位的数量达到最大极限时停止执行所述扫描的第一遍,在所述第一遍中扫描所述子块的第一组变换系数,并且所述扫描的第一遍包括对于所述第一组变换系数中的每一个变换系数,对指示所
述变换系数的级别是否为零的重要性标志进行编码;以及执行扫描所述子块的变换系数的第二遍,其中所述扫描的第二遍包括:对第二组变换系数中的每一个变换系数的级别的绝对值进行二值化,其中在所述第一遍中不扫描所述第二组变换系数。40.一种用于对视频数据进行解码的系统,所述系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:执行对视频帧的子块的变换系数的第一遍扫描,其中:当上下文编码二进制位的数量达到最大极限时停止执行所述扫描的第一遍,在所述第一遍中扫描所述子块的第一组变换系数,并且所述扫描的第一遍包括对于所述第一组变换系数中的每一个变换系数,对指示所述变换系数的级别是否为零的重要性标志进行解码;以及执行扫描所述子块的变换系数的第二遍,其中所述扫描的第二遍包括:对第二组变换系数中的每一个变换系数的级别的二值化绝对值进行解码,其中在所述第一遍中不扫描所述第二组变换系数。41.一种由视频数据的编码器实现的编码方法,所述方法包括:为视频帧的亮度分量生成第一组上下文变量;为所述视频帧的色度分量生成第二组上下文变量,生成所述视频帧的子块;以及根据所述第一组上下文变量和所述第二组上下文变量对所述子块的第一组变换系数进行编码。42.根据条款41所述的编码方法,其中对所述第一组变换系数进行编码包括:根据来自所述第一组上下文变量的3个上下文变量和来自所述第二组上下文变量的3个上下文变量对所述第一组变换系数中的变换系数的重要性标志进行编码,所述重要性标志指示所述变换系数的级别是否为零。43.根据条款42所述的编码方法,进一步包括:生成来自所述第一组上下文变量的所述3个上下文变量和来自所述第二组上下文变量的所述3个上下文变量,所述生成基于颜色分量索引、指定所述子块相对于所述视频帧的位置的亮度位置和当前系数扫描位置。44.根据条款41-43中任一项所述的编码方法,其中对所述第一组变换系数进行编码包括:根据来自所述第一组上下文变量的4个上下文变量和来自所述第二组上下文变量的4个上下文变量对所述第一组变换系数中的变换系数的大于x标志进行编码,其中所述大于x标志指示所述变换系数的级别的绝对值是否大于数字x。45.根据条款44所述的编码方法,进一步包括:生成来自所述第一组上下文变量的所述4个上下文变量和来自所述第二组上下文变量的所述4个上下文变量,所述生成基于颜色分量索引、指定所述子块相对于所述视频帧的位置的亮度位置和当前系数扫描位置。46.根据条款41-45中任一项所述的编码方法,其中对所述第一组变换系数进行编
码包括:根据来自所述第一组上下文变量的1个上下文变量和来自所述第二组上下文变量的1个上下文变量对所述第一组变换系数中的变换系数的奇偶性标志进行编码,其中所述奇偶性标志指示所述变换系数的级别的绝对值的奇偶性。47.根据条款46所述的编码方法,进一步包括:根据颜色分量索引生成来自所述第一组上下文变量的所述1个上下文变量和来自所述第二组上下文变量的所述1个上下文变量。48.根据条款41-47中任一项所述的编码方法,其中对所述第一组变换系数进行编码包括:根据来自所述第一组上下文变量的6个上下文变量和来自所述第二组上下文变量的6个上下文变量对所述第一组变换系数中的变换系数的系数符号标志进行编码,其中所述系数符号标志指示所述变换系数的值的符号。49.根据条款48所述的方法,进一步包括:生成来自所述第一组上下文变量的所述6个上下文变量和来自所述第二组上下文变量的所述6个上下文变量,所述生成基于所述视频帧的邻居的重要系数的数量、指定所述子块相对于所述视频帧的位置的亮度位置和当前系数扫描位置。50.根据条款41-49中任一项所述的方法,其中对于所述第一组变换系数进行编码包括:根据来自所述第一组上下文变量的3个上下文变量和来自所述第二组上下文变量的3个上下文变量对所述第一组变换系数中的变换系数的子块标志进行编码。51.根据条款50所述的方法,进一步包括:生成来自所述第一组上下文变量的所述3个上下文变量和来自所述第二组上下文变量的所述3个上下文变量,所述生成基于所述视频帧的邻居的重要系数的数量、指定所述子块相对于所述视频帧的位置的亮度位置和当前系数扫描位置。52.一种视频处理方法,包括:接收视频位流;将所述视频位流分割成多个子块;为子块的亮度分量生成第一组上下文变量;为所述子块的色度分量生成第二组上下文变量;以及根据所述第一组上下文变量和所述第二组上下文变量对所述子块的第一组变换系数进行上下文编码。53.一种由视频数据的解码器实现的解码方法,所述方法包括:接收视频帧;将所述视频帧分割成多个子块;为所述视频帧的亮度分量生成第一组上下文变量;为所述视频帧的色度分量生成第二组上下文变量;以及根据所述第一组上下文变量和所述第二组上下文变量对所述子块的第一组变换系数进行解码。54.根据条款53所述的解码方法,其中对所述第一组变换系数进行解码包括:
根据来自所述第一组上下文变量的3个上下文变量和来自所述第二组上下文变量的3个上下文变量对所述第一组变换系数中的变换系数的重要性标志进行解码,所述重要性标志指示所述变换系数的级别是否为零,55.根据条款54所述的解码方法,进一步包括:生成来自所述第一组上下文变量的所述3个上下文变量和来自所述第二组上下文变量的所述3个上下文变量,所述生成基于颜色分量索引、相对于所述视频帧的左上样本指定当前变换块的左上样本的亮度位置和当前系数扫描位置。56.根据条款53-55中任一项所述的解码方法,其中对所述第一组变换系数进行解码包括:根据来自所述第一组上下文变量的4个上下文变量和来自所述第二组上下文变量的4个上下文变量对所述第一组变换系数中的变换系数的大于x标志进行解码。57.根据条款56所述的解码方法,进一步包括:生成来自所述第一组上下文变量的所述4个上下文变量和来自所述第二组上下文变量的所述4个上下文变量,所述生成基于颜色分量索引、相对于所述视频帧的左上样本指定当前变换块的左上样本的亮度位置和当前系数扫描位置。58.根据条款53-57中任一项所述的解码方法,其中对所述第一组变换系数进行解码包括:根据来自所述第一组上下文变量的1个上下文变量和来自所述第二组上下文变量的1个上下文变量对所述第一组变换系数中的变换系数的奇偶性标志进行解码。59.根据条款58所述的解码方法,进一步包括:生成来自所述第一组上下文变量的所述1个上下文变量和来自所述第二组上下文变量的所述1个上下文变量,所述生成基于颜色分量索引。60.根据条款53-59中任一项所述的解码方法,其中对所述第一组变换系数进行解码包括:根据来自所述第一组上下文变量的6个上下文变量和来自所述第二组上下文变量的6个上下文变量对所述第一组变换系数中的变换系数的上下文系数符号标志进行解码。61.根据条款60所述的解码方法,进一步包括:生成来自所述第一组上下文变量的所述6个上下文变量和来自所述第二组上下文变量的所述6个上下文变量,所述生成基于所述视频帧的上邻居和左邻居的重要系数的数量、相对于所述视频帧的左上样本指定当前变换块的左上样本的亮度位置和当前系数扫描位置。62.根据条款53-61中任一项所述的解码方法,其中对所述第一组变换系数进行解码包括:根据来自所述第一组上下文变量的3个上下文变量和来自所述第二组上下文变量的3个上下文变量对所述第一组变换系数中的变换系数的子块标志进行解码。63.根据条款62所述的解码方法,进一步包括:生成来自所述第一组上下文变量的所述3个上下文变量和来自所述第二组上下文变量的所述3个上下文变量,所述生成基于所述视频帧的上邻居和左邻居的重要系数的数量、相对于所述视频帧的左上样本指定当前变换块的左上样本的亮度位置和当前系数扫描
位置。64.一种用于对视频数据进行编码的系统,所述系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:为视频帧的亮度分量生成第一组上下文变量;为所述视频帧的色度分量生成第二组上下文变量;生成所述视频帧的子块;以及根据所述第一组上下文变量和所述第二组上下文变量对所述子块的第一组变换系数进行编码。65.一种用于对视频数据进行解码的系统,所述系统包括:存储器,所述存储器存储指令集;以及处理器,所述处理器被配置为执行所述指令集以使所述系统:接收视频帧;将所述视频帧分割成多个子块;为所述视频帧的亮度分量生成第一组上下文变量;为所述视频帧的色度分量生成第二组上下文变量;以及根据所述第一组上下文变量和所述第二组上下文变量对所述子块的第一组变换系数进行解码。66.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述装置发起用于对视频数据进行编码的方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路编码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。67.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述设备发起用于对视频数据进行解码的方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中所述扫描的第一遍包括:对所述变换系数的奇偶性级别标志进行旁路解码,所述奇偶性级别标志指示所述变换系数的级别的绝对值的奇偶性。68.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述设备发起用于对视频数据进行编码的方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中:当上下文编码二进制位的数量达到最大极限时停止执行所述扫描的第一遍,在所述第一遍中扫描所述子块的第一组变换系数,并且所述扫描的第一遍包括对于所述第一组变换系数中的每一个变换系数,对指示所述变换系数的级别是否为零的重要性标志进行编码;以及执行扫描所述子块的变换系数的第二遍,其中所述扫描的第二遍包括:
对第二组变换系数中的每一个变换系数的级别的绝对值进行二值化,其中在所述第一遍中不扫描所述第二组变换系数。69.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述设备发起用于对视频数据进行解码的方法,所述方法包括:执行扫描视频帧的子块的变换系数的第一遍,其中:当上下文编码二进制位的数量达到最大极限时停止执行所述扫描的第一遍,在所述第一遍中扫描所述子块的第一组变换系数,并且所述扫描的第一遍包括对于所述第一组变换系数中的每一个变换系数,对指示所述变换系数的级别是否为零的重要性标志进行解码;以及执行扫描所述子块的变换系数的第二遍,其中所述扫描的第二遍包括:对第二组变换系数中的每一个变换系数的级别的二值化绝对值进行解码,其中在所述第一遍中不扫描所述第二组变换系数。70.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述设备发起用于对视频数据进行编码的方法,所述方法包括:为视频帧的亮度分量生成第一组上下文变量;为所述视频帧的色度分量生成第二组上下文变量,生成所述视频帧的子块;以及根据所述第一组上下文变量和所述第二组上下文变量对所述子块的第一组变换系数进行编码。71.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述设备发起用于对视频数据进行解码的方法,所述方法包括:接收视频帧;将所述视频帧分割成多个子块;为所述视频帧的亮度分量生成第一组上下文变量;为所述视频帧的色度分量生成第二组上下文变量;以及根据所述第一组上下文变量和所述第二组上下文变量对所述子块的第一组变换系数进行解码。
[0135]
在附图和说明书中,已公开了示例性实施例。然而,能够对这些实施例做出许多变化和修改。因此,尽管采用了特定术语,但是它们仅在通用和描述性意义上被使用,而不用于限制的目的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1