用于在跳过变换的情况下对块的符号编码的制作方法
【技术领域】
[0001] 本公开总体上涉及数据压缩,具体涉及在跳过变换的情况下对块进行编码的视频 编码方法和设备,更具体地,涉及对非零系数的符号进行编码的方法和设备。
【背景技术】
[0002] 视频编码的当前最新技术是ITU-T H.265/HEVC视频编码标准。其定义了针对不同 应用的诸多不同简档,包括主简档、主静止图像简档等。存在用于编码/解码图像和视频的 多个标准,包括H. 265,其使用基于块的编码过程。在这些过程中,图像或帧分为被通常大小 在4x4至64x64(然而在一些情况下可以使用非正方形的块)的范围内的块,且将块频谱变换 为系数,并进行量化和熵编码。在很多情况下,被变换的数据不是实际的像素数据,而是预 测操作之后的残差数据。预测可以是帧内预测(即在帧/图像内的块到块)或帧间预测(即, 在帧之间(也被称为运动预测))。
[0003] 当对残差数据进行频谱变换时,这些标准中的多个标准规定了使用离散余弦变换 (DCT)或基于它的一些变型。然后使用量化器对所得DCT系数进行量化,以产生量化的变换 域系数。然后,与运动向量和其他数据一样,对量化后的系数块进行熵编码并与边信息 (side information)-起封装,以产生编码视频的比特流。
[0004] 在编码器处,对比特流进行熵解码,以重建量化后的系数。然后,解码器对重建的 量化后的系数进行解量化和逆变换,以重建像素域残差。然后,通过使用与编码器处相同的 预测操作,重建像素数据。
[0005] 当对量化后的系数进行编码时,可以使用若干语义元素来信号发送任何非零系数 的幅值,包括显著系数标志、大于1的标志、大于2的标志以及更多级别数据。符号位也经常 被编码和解码,以指示系数是正或者是负。由于正负符号的出现在统计上一般大致相等,所 以符号编码不基于上下文。
[0006] 在一些情况下,HEVC及一些其他视频编码允许"变换跳过"。变换跳过指的是"跳 过" DCT操作,并简单地对实际的像素域残差数据进行量化,就好像其是系数数据一样,然后 对该量化数据进行编码。还可以将其认为是和DCT相对的恒等变换(identity transform) 的应用。在另一情况下,在使用无损编码时跳过变换操作(跳过变换和量化二者)。在上述任 何一种情况下,跳过变换将产生不是必然与ffiVC中的编码过程的一些要素设计的底层的假 设相符的数据。
【附图说明】
[0007] 作为示例,现在参考示出了本公开的示例实施例的附图,附图中:
[0008] 图1以框图形式示出了用于对视频进行编码的编码器;
[0009] 图2以框图形式示出了用于对视频进行解码的解码器;
[0010] 图3以流程图的形式示出了在跳过变换的情况下对块的符号位进行编码的示例方 法;
[0011] 图4以流程图的形式示出了在跳过变换的情况下对块的符号位进行解码的示例方 法;
[0012] 图5a示出了用于确定上下文的有限状态机,该上下文用于在跳过变换的情况下对 块的符号标记进行编码;
[0013] 图5b示出了用于确定上下文的另一示例有限状态机,该上下文用于在跳过变换的 情况下对块的符号标记进行编码;
[0014] 图6示出了基于有限状态机对符号信息进行上下文编码的示例方法;
[0015] 图7示出了基于有限状态机对符号信息进行上下文解码的示例方法;
[0016] 图8示出了使用预测和相邻系数,在跳过变换的情况下对符号信息进行编码的示 例方法;
[0017] 图9示出了基于预测和相邻系数,在跳过变换的情况下对符号信息进行解码的示 例方法;
[0018] 图10示出了使用符号翻转(flip),在跳过变换的情况下对符号信息进行编码的示 例方法;
[0019] 图11示出了使用符号翻转,在跳过变换的情况下对符号信息进行解码的示例方 法;
[0020] 图12示出了编码器的示例实施例的简化框图;以及 [0021 ]图13示出了解码器的示例实施例的简化框图。
[0022]在不同的附图中已经使用类似的参考标号来标记类似的组份。
【具体实施方式】
[0023] 本公开描述了在跳过变换的情况下对块中的非零系数的符号进行编码的方法和 编码器/解码器。
[0024] 在第一方案中,本公开描述了一种对视频解码器中的数据的比特流进行解码,以 重建视频中的块的非零系数的方法。所述方法包括确定所述块是在跳过变换的情况下进行 编码的,并且基于所述确定,对相同符号标志进行解码,所述相同符号标志指示块中的非零 系数是否全都具有相同符号。如果非零系数全都具有共同符号,则解码重建语义元素,所述 语义元素指示所述共同符号是正还是负,以及基于所述语义元素,重建非零系数的有符号 值;否则,重建块的相应非零系数的符号位,并基于其相应符号位,重建每个非零系数的有 符号值。
[0025] 在另一个方案中,本申请描述了一种对视频编码器中的视频的块进行编码的方 法,所述块具有一个或多个非零系数。所述方法包括:确定要在跳过变换的情况下对块进行 编码,并且基于所述确定:对相同符号标志进行解码,所述相同符号标志指示是否该块中的 非零系数都具有共同符号;如果非零系数都具有共同符号,则对语义元素进行编码,所述语 义元素指示共同符号是正还是负;以及如果非零系数不都具有共同符号,针对所述非零系 数中的每个非零系数,如果不能推测得到其符号位,则对符号位进行编码。
[0026] 在又一个方案中,本申请描述了一种对视频解码器中的数据的比特流进行解码以 重建视频中的块的非零系数的方法。所述方法包括:确定所述块是在跳过变换的情况下进 行编码的,并且基于所述确定:针对所述块中按照扫描顺序的每个非零系数,对所述非零系 数的符号信息进行解码;以及基于所述符号信息,将所述非零系数设置为正或为负。所述解 码是对至少一个非零系数的符号信息的不基于上下文的解码以及对至少一个其他非零系 数的符号信息的基于上下文的解码。
[0027] 在另一个方案中,本申请描述了一种在视频编码器中对视频的块进行编码的方 法,所述视频的块具有两个或更多个非零系数。所述方法包括:确定要在跳过变换的情况下 对块进行编码,并且基于所述确定:针对所述块中按照扫描顺序的每个非零系数,对所述非 零系数的符号信息进行编码,其中所述符号信息基于所述非零系数是正还是负,以及其中 所述编码是对至少一个非零系数的符号信息的不基于上下文的编码以及对至少一个其他 非零系数的符号信息的基于上下文的编码。
[0028] 在另一方面中,本公开描述了被配置为实现这种编码和解码方法的编码器和解码 器。
[0029] 在又一方面,本公开描述了存储计算机可执行程序指令的非瞬时计算机可读介 质,所述计算机可执行程序指令在被执行时将处理器配置为执行所描述的编码和/或解码 的方法。
[0030] 根据以下结合附图对示例的描述的论述,本领域普通技术人员将理解本公开的其 他方面和特征。
[0031] 在以下描述中,参考用于视频编码的H.264标准和/或开发中的H.265/HEVC标准, 描述了一些示例实施例。本领域技术人员应该理解,本申请不限于H.264/AVC或H. 265/ HEVC,而是可适用于其他视频编码/解码标准,包括可能的将来的标准、多视图编码标准、可 伸缩视频编码标准、以及可重新的配置视频编码标准。
[0032]在随后的描述中,当提到视频或图像时,术语帧、图片、切片(slice)、分片(tile) 和矩形切片组可以在某种程度上互换使用。本领域技术人员将认识到,在H.264标准的情形 中,帧可以包含一个或多个切片。术语"帧"可以用H.265/HEVC中的"图片"来代替。在一些情 形中,帧/图片的系列可称为"序列"。在其他视频编码标准中可使用其他术语。还将认识到, 取决于可应用的图像或视频编码标准的具体要求或术语,某些编码/解码操作可以逐帧执 行,而一些编码/解码操作逐切片执行,一些编码/解码操作逐图片执行,一些编码/解码操 作逐分片执行,还有一些编码/解码操作以矩形切片组的方式执行。在任何特定实施例中, 适用的图像或视频编码标准可以确定是否关于帧和/或切片和/或图片和/或分片和/或矩 形切片组来执行以下描述的操作,视情况而定。相应地,根据本公开,本领域普通技术人员 将理解,本文描述的特定操作或过程以及对帧、切片、图片、分片、矩形切片组的特定引用对 于给定实施例是否适用于帧、切片、图片、分片、矩形切片组、或者其中的一些或全部。其还 适用于编码树单元、编码单元、预测单元、变换单元等,这些将通过以下描述而变得清楚。
[0033] 现在参照图1,图1以框图形式示出了用于对视频进行编码的编码器10。还参照图 2,图2示出了用于对视频进行解码的解码器50的框图。将清楚的是,本文描述的编码器10和 解码器50均可以在专用或通用计算设备(包含一个或多个处理单元和存储器)上实现。编码 器10或解码器50执行的操作可以通过例如专用集成电路或通过通用处理器可执行的存储 程序指令来实现,视情况而定。设备可以包括附加软件,该附加软件包括例如用于控制基本 设备功能的操作系统。关于以下描述,本领域技术人员可以认识到在其中可以实现编码器 10或解码器50的设备和平台的范围。
[0034]编码器10接收视频源12并产生编码比特流14。解码器50接收编码比特流14并输出 解码视频帧16。可以将编码器10和解码器50配置为依照多种视频压缩标准进行操作。例如, 编码器10和解码器50可以遵循H.264/AVC。在其他实施例中,编码器10和解码器50可以符合 其他视频压缩标准,包括H. 264/AVC标准的演进,如H. 264/HEVC。
[0035] 编码器10包括空间预测器21、编码模式选择器20、运动预测器36、变换处理器22、 量化器24和熵编码器26。本领域普通技术人员应当认识到,编码模式选择器20确定视频源 的合适编码模式,例如对象帧/切片是否是I、P或B类型,以及帧/切片内的特定编码单元(例 如宏块、编码单元等)是被帧内编码还是帧间编码,即,预测是来自于运动预测器36(帧间编 码)还是来自于空间预测器21(帧内编码)。变换处理器22执行对空间域数据的变换。具体 地,变换处理器22应用基于块的变换来将空间域数据变换为频谱分量。例如,在许多实施例 中,使用离散余弦变换(DCT)。在其他实例中可以使用其他变换,例如离散正弦变换、小波变 化等。在变换单元上执行基于块的变换。变换单元可以和编码单元大小相同,或者可以将编 码单元划分为多个变换单元。在H.264标准中,例如,典型的16x16宏块(编码单元)包含16个 4x4的变换单元,并对4x4的块执行DCT处理。变换单元(TU)可以是其他大小。在一些情形中, TU可以是非正方形的,例如非正方形正交变换(NSQT)。
[0036]将基于块的变换应用于像素数据块得到变换域系数的集合。在该上下文中,"集 合"是有序集合,在该集合中系数具有系数位置。在一些实例中,变换域系数的集合可被认 为是系数的"±夬"或矩阵。在本文的描述中,短语"变换域系数的集合"或"变换域系数的块" 互换地使用,并且用于指示变换域系数的有序集合。
[0037]量化器24对变换域系数的集合进行量化。然后,由熵编码器26对已量化的系数和 相关彳目息进行编