对视频数据应用非正方形变换的制作方法
【专利摘要】在一个实例中,一种用于对视频数据进行译码的装置包含视频译码器,例如视频编码器或视频解码器,其经配置以对指示所述视频数据的变换单元是正方形还是非正方形的信息进行译码,和至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码。以此方式,所述视频译码器可以利用非正方形变换单元。所述视频译码器可经配置以针对某些情形使用非正方形变换单元,例如仅针对色度或明度分量或仅当对应预测单元是非正方形时。所述视频译码器可以进一步经配置以基于所述变换单元是正方形还是非正方形执行选择用于对所述变换单元的数据进行译码的上下文的熵译码过程。
【专利说明】对视频数据应用非正方形变换
[0001]本申请案主张2011年7月1日申请的第61 / 503,726号美国临时申请案和2011年11月2日申请的第61 / 554,837号美国临时申请案的权益,这些临时申请案中的每一者的整个内容以引用的方式并入本文中。
【技术领域】
[0002]本发明涉及视频译码,且更明确地说涉及变换视频数据。
【背景技术】
[0003]数字视频能力可以并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置和类似装置。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-T Η.263或ITU-T Η.264 / MPEG-4第10部分高级视频译码(AVC)界定的标准和所述标准的扩展部分中所描述的那些视频压缩技术,以更有效地发射和接收数字视频信息。
[0004]视频压缩技术执行空间预测和/或时间预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,可以将视频帧或切片分割成块,例如宏块或译码单元(CU)。每一块可被进一步分割。使用相对于相邻块的空间预测来对经帧内译码(I)帧或切片中的块进行编码。经帧间译码(P或B)帧或切片中的块可以使用相对于相同帧或切片中的相邻块的空间预测或相对于其它参考帧的时间预测。
【发明内容】
[0005]总的来说,本发明描述用于对视频数据块(例如残余视频数据)应用非正方形变换或用于再生残余视频数据的逆非正方形变换的技术。所述技术并非将变换大小限制为仅正方形变换,而是可以使得视频译码器(可以指代视频编码器、视频解码器或视频编码器与视频解码器两者的组合)还评估并且潜在地选择对视频数据应用非正方形变换。通过对视频数据应用非正方形变换,视频译码器可以减少在跨越预测边界(其是通过两个相异的预测单元(PU)识别的两个相异的视频数据块之间的边界,对这两个相异的预测单元分别地执行运动估计)应用正方形变换时引入的假影和失真。
[0006]在一些情况下,并非跨越邻接TO的两个非正方形块(其当组合时常常形成正方形预测块)应用单个正方形变换,所述技术可以让视频译码器能够应用匹配的非正方形变换(因为非正方形变换中的每一者与PU识别的对应块的大小和形状匹配)以单独地对所述PU的非正方形块中的每一者进行变换,结果是与跨越PU的两个块应用单个正方形变换相比潜在地减少了非零系数的数目。在减少非零系数的数目时,所述技术可以减少表示残余视频数据所需要的数据量,从而与不能够应用非正方形变换的技术相比产生残余视频数据的更加压缩的版本。
[0007]在一个实例中,一种对视频数据进行译码的方法包含对指示视频数据的变换单元是正方形还是非正方形的信息进行译码,以及至少部分基于所述变换单元是正方形还是非正方形对变换单元的数据进行译码。
[0008]在另一实例中,一种用于对视频数据进行译码的装置包含视频译码器,其经配置以对指示视频数据的变换单元是正方形还是非正方形的信息进行译码,以及至少部分基于所述变换单元是正方形还是非正方形对变换单元的数据进行译码。
[0009]在另一实例中,一种用于对视频数据进行译码的装置包含:用于对指示视频数据的变换单元是正方形还是非正方形的信息进行译码的装置,以及用于至少部分基于所述变换单元是正方形还是非正方形对变换单元的数据进行译码的装置。
[0010]在另一实例中,一种计算机程序产品包含上面存储有指令的计算机可读媒体,所述指令当执行时致使处理器:对指示视频数据的变换单元是正方形还是非正方形的信息进行译码,以及至少部分基于所述变换单元是正方形还是非正方形对变换单元的数据进行译码。
[0011]附图和以下描述中陈述一个或一个以上实例的细节。其它特征、目标和优势将从描述和附图和从权利要求书中显而易见。
【专利附图】
【附图说明】
[0012]图1是图解说明实例视频编码和解码系统的框图。
[0013]图2是图解说明实例视频编码器的框图。
[0014]图3是图解说明实例视频解码器的框图。
[0015]图4是各自具有不同大小的预测单元(PU)的概念图。
[0016]图5是图解说明实例递归四叉树变换结构的概念图。
[0017]图6A和6B是图解说明根据本发明中描述的技术的一个方面的波前扫描的图式。
[0018]图7A是图解说明用于将块(例如,译码单元)分割成一个或一个以上预测性块(例如,PU)的概念图。
[0019]图7B是图解说明被分割成不对称分区的块的各种实例的概念图。
[0020]图8是图解说明用于表示非正方形变换单元的实例分割结构的概念图。
[0021]图9是图解说明用于表示非正方形变换单元的另一实例分割结构的概念图。
[0022]图10A是图解说明用于用信号表示⑶是包含正方形还是非正方形变换单元的实例信令数据的概念图。
[0023]图10B是图解说明用于用信号表示⑶是包含正方形还是非正方形TU的替代实例信令数据的概念图。
[0024]图11是图解说明用于使用正方形或非正方形变换单元对视频数据进行编码的实例方法的流程图。
[0025]图12是图解说明用于使用正方形或非正方形变换单元对视频数据进行解码的实例方法的流程图。
【具体实施方式】
[0026]总的来说,视频数据包含一连串帧,这些帧可以用帧内预测模式或帧间预测模式译码。帧可以划分成视频数据块并且可以针对每一块选择一种编码模式。在帧间预测模式中,可以相对于一个或一个以上经先前译码帧的数据预测块。在帧内预测模式中,可以相对于相同帧的一个或一个以上空间上相邻的经先前译码块预测块。
[0027]根据高效率视频译码(HEVC),帧可以划分成最大译码单元(LCU),其可举例来说包括32x32个像素块或64x64个像素块。总的来说,IXU可以分割成子译码单元(子⑶),子CU中的每一者可以进一步分割(递归地)。总的来说,术语译码单元(CU)可以指LCU或其任何子⑶(例如,IXU的子⑶或另一子⑶的子⑶)。⑶可以分割成四个正方形的非重叠子CU。
[0028]LCU可以对应于四叉树数据结构,其包含一个或一个以上节点,其中四叉树的根节点对应于LCU本身并且其它节点对应于LCU的子CU。未分割的CU总体上对应于四叉树的叶节点(也就是说,四叉树的不具有任何子节点的节点)。所以,未分割的CU可被称为叶节点⑶。叶节点⑶总体上包含:一个或一个以上预测单元(PU),其描述如何预测⑶的数据(即,数据是经帧内译码还是经帧间译码);以及一个或一个以上变换单元(TU),其对应于残余数据,也就是说,CU的经预测数据与CU的原始数据之间的逐像素差。
[0029]HEVC测试模型(常常简称为“HM”)定义用于通常称为“HEVC”的下一代视频译码标准的视频译码器参考软件。在HEVC中,叶⑶可以分裂成不同PU,每一 PU定义叶⑶的一部分的运动信息。在帧间预测模式中,针对每一 PU,执行运动补偿以在参考帧中定位时间参考块。这个时间参考块通常表示一个块,这个块当与PU相比时(在此上下文中这常常意味着用PU减去这个块)会产生低于所定义阈值的残余数据量。残余数据包含指示TO和参考块的对应像素之间的差异的像素差值。如果低于这个阈值,视频编码器就会产生运动信息,其识别时间参考块相对于TO的位置。视频编码器接着存储通过比较时间参考块与PU而产生的残余数据,并且存储举例来说定义一个运动向量的运动信息,这个运动向量识别时间参考块相对于PU的位置。可以针对TU存储残余数据,并且可以针对PU存储运动向量。
[0030]HM进一步定义基于四叉树的残余四叉树变换(RQT)结构,其包含用于⑶的一个或一个以上TU的数据。RQT可以描述为“递归”,是因为四叉树的根节点可以具有四个子节点,并且总体上树的节点可以具有四个子节点,其中每一节点可以用类似方式格式化。因而,LCU可包含对应于两个相异的类型的四叉树的数据:一个定义将LCU分割成叶节点CU的⑶四叉树,以及对于每一叶节点⑶,包含用于TU的数据的RQT。
[0031]HM首先定义RQT的根等级(其也可被称作“等级0” ),其中根等级有效地表示应用于⑶的变换(其中⑶的形状和大小通常由符号2Nx2N表示,其中N通常是指对应于⑶的视频数据块中的像素的数目,它是二的幂)。当叶节点CU的变换系数对应于RQT的等级0时,实施HM的视频编码器可以在根等级应用变换。换句话说,实施HM的视频编码器可以对CU的残余数据应用一个与CU的形状和大小匹配的变换。
[0032]HM进一步指示CU(具有2Nx2N的大小)可以划分成四个同样大小的变换系数数据子部分(其中每一部分的大小是NxN)并且可以对这些NxN残余数据子部分中的每一者应用大小为NxN的变换。在这种意义上讲,是对RQT的所谓的“等级1”应用变换,因为根等级表示等级0并且根等级划分成四个NxN子部分表示这个结构的等级1。
[0033]为了选择变换大小,视频编码器可以比较在根等级(或等级0)与等级1上应用变换的结果。应用变换的所谓的“结果”总体上是指对经变换残余数据进行编码的结果。为了产生这个结果,如上文所指示的视频编码器对残余数据应用变换以将残余数据从空间域变换成频域,从而引起产生变换系数,所述变换系数用充当基函数的权重的变换系数的形式表示残余数据,例如不同频率的指定正弦或余弦波形。视频编码器可以接着将这些变换系数(其也可被称作经变换残余数据)量化以对变换系数进行舍入。这个量化步骤通常涉及将较小变换系数中的一者或一者以上舍入成零。视频编码器可以进一步对变换系数进行译码。量化和译码因而表示压缩的有损形式。视频编码器可以接着对视频数据进行解码、执行逆量化并且应用逆变换以重建视频块。
[0034]在此背景下,这个经重建视频块可以表示应用变换的结果。可以接着将经重建视频块与原始⑶比较,并且可以确定原始⑶与经重建视频块之间的误差。视频编码器可以接着将在等级0上应用变换时确定的误差与在等级1上应用变换时以此方式确定的误差比较。
[0035]在一些例子中,可以执行更加复杂的被称作速率失真分析或速率失真优化的过程,其除了误差之外还考虑速率(就消耗的带宽或存储空间而言)。通过用位成本乘以拉各朗日算符(这个值表示位成本与特定质量等级的质量之间的关系)在数学上测量用于表达经编码视频数据的速率或位。从源的偏差(在本发明中被称作误差或失真)通常测量为均方误差,以便使峰值信噪比(PSNR)视频质量度量最大化。
[0036]如果在等级1上应用变换的结果(就确定的误差或速率失真度量而言)比在等级0上应用变换好,则视频编码器可以继续相对于子部分中的每一者重复这个过程,将每一子部分划分成四个同样大小的二级子部分(大小为Ν / 2xN / 2),由此产生递归四叉树变换结构的等级2。视频编码器可以接着针对每一一级子部分将在等级2上应用变换的结果与在等级1上应用变换的结果比较,如果在等级2上应用变换的结果比在等级1上应用变换好(就确定的误差而言)就选择等级2变换。这个过程可以用这种递归方式继续,连续将每一子部分分裂成四个大小相等的子部分,直到在等级Μ上应用的变换比在等级M+1上应用的好,或者达到某一最大变换等级为止。在一些实施方案中,视频编码器可以在最大变换等级上开始,应用最小大小的变换块并且如果较大大小的变换执行地更好(就确定的误差而言)则合并较小大小的变换。为此原因,变换结构可被称为递归四叉树变换结构。
[0037]在上文对ΗΜ的整个描述中,仅将变换的大小描述成正方形(例如,2Nx2N,NxN和N / 2xN / 2)。所提议的HM目前将变换的大小限制为正方形,但提供非正方形、矩形PU大小,例如图4的实例中展示的那些(下文更详细地描述)。非正方形PU可以起因于PU的多种分割模式。作为一个实例,视频译码器可以使用不对称运动分割(AMP)将CU分割成PU。作为另一实例,视频译码器可以使用短距离帧内预测(SDIP)或不对称SDIP将CU分割成PU。视频译码器可经配置以避免使用越过TO边界的TU。因此,根据本发明的技术提供非正方形TU (例如,为了匹配对应非正方形TO的大小)可以提供某些优点。
[0038]举例来说,仅允许正方形变换或变换单元(TU)的一个结果是视频编码器可以跨越运动边界(其是指邻接PU之间的边界)应用变换。跨越运动边界应用变换通常会降低变换效率,因为运动边界常常表示运动不连续性,其中在色彩或明度中可能存在硬边缘或大型变化,这需要更多得多的变换系数才能充分捕获这些类型的边界。仅提供正方形TU而不提供非正方形PU的另一结果是视频编码器可以应用小于相关联PU的变换。相对于PU应用较小大小的变换也可降低变换效率,因为所述变换可能不能够完全利用相邻像素之间的相关。[0039]根据本发明中描述的技术,视频编码器可以对视频数据应用非正方形变换。所述技术并非将变换大小限制为仅正方形变换,而是可以使得视频译码器(可以指代视频编码器、视频解码器或视频编码器与视频解码器两者的组合)还评估并且潜在地选择对视频数据应用非正方形变换。通过对视频数据应用非正方形变换,视频译码器可以减少在跨越预测边界(其是通过两个相异的预测单元(PU)识别的两个相异的视频数据块之间的边界,对这两个相异的预测单元分别执行运动估计)应用正方形变换时引入的假影和失真。此外,所述技术可以改善变换效率,因为通过避免对较大大小的PU应用较小大小的变换,非正方形变换可以更完全地利用相邻像素之间的相关。
[0040]在一些例子中,这些技术并非对两个(或更多个)非正方形邻接PU(其当组合时可以形成一个正方形预测块)产生的残余数据应用单个正方形变换,而是可以使得视频译码器能够应用匹配的非正方形变换(因为非正方形变换中的每一者可以与PU识别的块的大小匹配)以单独地对残余数据(由非正方形PU中的每一者产生)进行变换,其结果是可能与跨越PU的两个块应用单个正方形变换相比减少了非零系数的数目。通过减少非零系数的数目,所述技术可以减少表示视频数据所需要的数据量,从而与不能够应用非正方形变换的技术相比产生视频数据的更加压缩的形式。
[0041]作为说明,视频编码器可以对残余数据应用对应于非正方形TO的非正方形变换。作为一个实例,针对NxM的PU大小(其中N和Μ表示像素的不同数目,常常是二的幂),视频编码器可以在产生变换结构时另外应用大小为NxM的变换。作为另一实例,针对大小为2NxN的PU,视频编码器可以应用大小为2Nx2N、2NxN和NxN的变换,基于结果的确定的误差选择这些应用的变换中的所述一者,如上文所描述。以此方式,视频编码器可以选择非正方形变换大小。
[0042]本发明中描述的技术可以另外修改变换信令结构(也称为变换选择结构,也就是说,指示选择了哪种变换大小的结构)。变换信令结构可以对应于残余四叉树变换结构。具体来说,可以根据这些技术修改变换信令结构以适应非正方形变换。当存在2NxN大小的PU (变换大小为2Nx2N,并且根等级(或等级0)上为2NxN)时,实施这些技术的视频编码器可以适用于针对一组残余数据确定选择哪个变换大小的过程。
[0043]变换信令结构可以因而指明当存在大小为2NxN的与这个CU相关联的TO时,视频编码器将应用这两个变换。视频编码器可以接着比较应用这个变换的结果(其同样是指用上文所描述的方式确定的误差),基于这个比较选择这些大小为2Nx2N或2NxN的变换中的一者。视频编码器可以继续所述残余四叉树过程,比较应用一阶或等级0的变换中的选定一者的结果与应用四个二级或等级1的NxN变换的结果。在这种意义上讲,所述技术可以使得能够基于非正方形PU是否与当前CU相关联来应用非正方形变换。同样,实际上,可以用自下而上的方式执行这个变换选择过程,从最小大小的变换块开始,并且如果较大大小的变换的执行较好(例如,就速率对失真而言)则合并这些较小的变换块。
[0044]在本发明中描述的技术的一些实施方案中,视频编码器可以用稍微不同的方式执行这个变换选择过程,其中应用单个大小为2Nx2N的根等级的变换,并且等级1的变换的大小是2NxN。可以接着将接下来的等级或等级二的变换指定为上文描述成是等级1变换的四个NxN变换。因而,在这些实施方案中,可以将非正方形变换指定为其自身的等级一的变换,而不是将非正方形变换与根等级的变换合并。这些实施方案可以更好地匹配上文所描述的选择过程,其中比较应用不同等级的变换的结果而不是比较应用来自相同等级的变换的结果。
[0045]另外,所述技术可以限制如何选择变换。举例来说,可以修改变换选择过程以仅允许视频编码器在根等级上选择与PU大小相同大小的变换。在这个实例中,对于大小为Nx2N的PU,视频编码器可经配置以在根等级上选择Nx2N变换。对于大小为2Nx2N的PU,视频编码器可经配置以在根等级上选择大小为2Nx2N的变换。
[0046]在一些例子中,所述技术可以限制应用哪些变换。也就是说,在所述技术的一些实施方案中,视频编码器可以基于PU的形状应用非正方形变换。作为一个实例,对于形状为2NxN的PU,视频编码器作为一个实例可以在选择过程期间仅应用大小为2NxN的变换,而不应用大小为Nx2N的变换。通过在选择过程期间仅应用可能的非正方形变换的子集,可以改进视频编码性能,因为放弃应用一些变换会消耗较少的处理器循环和时间。减少处理循环可以减少功率消耗,这当在移动装置(例如所谓的智能手机,或其它特别注重电力的装置)中实施视频编码器时可能是有益的。
[0047]此外,所述技术可以让视频译码器能够仅准许对一些色彩分量(例如仅对明度或仅对色度分量,而不是明度和色度分量两者)应用非正方形变换。在另外其它例子中,所述技术可以让视频译码器能够基于某些TO和/或⑶大小来选择性应用非正方形变换。
[0048]在用上文所描述的方式选择变换之后,视频编码器通常使用语法元素用信号表示选定变换。引入非正方形变换可能需要视频编码器用信号表示额外语法元素。当在根等级上有两个或两个以上可供使用的变换时(参看上文所描述的示范性实施方案,其中根等级变换包含一个2Nx2N变换和一个2NxN变换),视频编码器可以用信号表示变换选择(TS)旗标以指示视频编码器选择了两个或两个以上根等级变换中的哪一个。视频编码器可以在指示根等级是否分裂成四个NxN部分的所谓的“分裂旗标”之后用信号表示这个TS旗标。举例来说,视频编码器可以在选择了 2NxN变换后即刻将TS旗标设置成一,并且否则在选择了大小为2Nx2N的变换后即刻将这个TS旗标设置成零。
[0049]在所述技术的一些实施方案中,视频编码器可以使用其它语法元素用信号表示所述TS旗标,将TS旗标与分裂旗标中的一者或一者以上组合,经译码块旗标用于明度(CbfY)变换块和色度变换块(U、V是所述两个色度色彩分量,其中用于U和V中的每一者的这些语法元素表示为“CbfU”和“CbfV”)。为了说明,假设对明度分量块应用非正方形变换。接着对于明度,将2NX2N和Nx2N变换两者放置在变换树根等级(等级0)中,并且在等级1上指定NxN。对于大小为NxN的色度变换块(考虑在4: 2: 0的常用YUV视频格式中,色度块大小是明度块大小的1 / 2X1 / 2),根等级(等级0)变换的大小为NxN并且等级1变换是大小为N / 2xN / 2的变换。在这些假设下,向视频解码器发送以下信息作为语法:
[0050]1.分裂旗标;用以指示是采用根等级变换还是使用较小变换(分裂情况)。
[0051]2.变换选择旗标TS。如果选择了根等级变换(分裂=1),则发射TS以用信号表示2Nx2N(TS=0)与 2NxN(TS=l)之间的选择。
[0052]3.明度的Cbf。如果分裂=1或(分裂=0,TS=0),则发射旗标CbfY以用信号表示CU中是否存在非零明度系数(CbfY=0,所有明度系数是0 ;CbfY=l,至少一个明度系数不是零)。如果TS=1,则分别发射CbfYO和CbfYl以用信号表示第一 2NxN变换块和第二块中是否存在非零系数。[0053]4.色度的Cbf (U,V)。发射旗标CbfU以用信号表示⑶中是否存在非零U分量系数。发射旗标CbfV以用信号表示CU中是否存在非零V分量系数。
[0054]分别发射这些语法元素中的每一者可能并未完全利用不同旗标当中的相关性。其结果是,所述技术可以让视频编码器能够采用如下文所描述的联合译码方案。
[0055]1.视频编码器首先使用可变长度译码(VLC)发射分裂旗标、CbfYY旗标和CbfUV旗标,其中CbfYY和CbfUV旗标是如下所述。
[0056]2.如果分裂=0,则发送TS旗标以指示视频编码器是否选择了非正方形变换。
[0057]3.如果TS=1,则将CbfYY解释为CbfYOllCbfYl (也就是说,CbfYO是指用于被应用变换的第一 2NxN或Nx2N部分的CbfY旗标,并且CbfYl是指用于被应用变换的第二 2NxN或Nx2N部分的CbfY旗标)。在这种情况下,如果CbfYY=l,则发射进一步的信息以用信号表示CbfYO、CbfYl或这两者是否为1。如果CbfYY=0,则CBFY0=CBFY1=0。
[0058]4.如果分裂=1或TS=0,则将CbfYY解释为CbfY,这在上文已描述。
[0059]5.将 CbfUV 定义为(CbfU | | CbfV),其中当 CbfUV: 1 时,CbfU 和 CbfV 中的至少一者不是零。如果CbfUV=l,则发射进一步的信息以用信号表示CbfU、CbfV或这两者是否为
1。如果 CbfUV=0,则 CBFU=CBFV=0。
[0060]在上述联合译码方案中,CbfYY旗标联合地用信号表示CbfYO和CbfYl,并且CbfUV旗标联合地用信号表示CbfU和CbfY,从而在那些其中CbfYY等于零和/或CbfUV等于零的例子中提供更高效的信令(因为在这些例子中用信号表示CbfYY在将需要两个位以分别用信号表示CbfYO和CbfYl的情况下需要一个位,并且在这些例子中用信号表示CbfUV在将需要两个位以分别用信号表示CbfU和CbfV的情况下需要一个位)。
[0061]同时,视频编码器还将因为应用非正方形变换而产生的变换系数量化。将这些非正方形变换系数量化,其中本发明的技术可以根据变换系数是正方形还是非正方形而提供不同量化步长。通常,通过量化参数来控制量化强度/步长。所述技术可以让视频编码器能够在确定这个量化步长时使用新的量化参数,其中这个新的量化参数可以指示是通过应用正方形变换还是非正方形变换产生了所述变换系数。换句话说,量化参数可能对于不同变换步长是不同的并且可能在正方形变换与非正方形变换之间是不同的。在一个实例中,假设量化参数零(QP0)是用于当前帧的基础QP。作为一个实例,实施所述技术的这个方面的视频编码器可以对大小为2NxN和Nx2N的非正方形变换使用量化参数QP0+3,并且对所有其它变换使用基础QP0。视频编码器和解码器两者都可以利用所述技术的这个方面。
[0062]在执行量化之后,视频编码器通常扫描所述系数(其通常是用二维阵列表达)以产生这些系数的一维排序。通常,所述变换会产生系数,从而使得非零系数位于二维阵列的左上角。视频编码器可以扫描这些系数,其扫描方式使得非零系数用一维排序靠近彼此安置,以便于对零值变换系数的游程长度译码,由此提供至少某一量的压缩(因为游程长度译码通常涉及使用单个数字表达多个零值变换系数)。
[0063]本发明中描述的技术的一个方面可能指明视频编码器将扫描非正方形变换系数的方式。实施所述技术的这个方面的视频编码器可以基于二维变换系数块的形状执行这个一维扫描。在一个实例中,视频编码器可以执行一种被称作波前扫描(从左下方到右上方或从右上方到左下方)的扫描形式,其中扫描始终从较短边缘开始。
[0064]视频编码器接着执行一种形式的统计无损译码(其常常被误称为“熵译码”)以对经游程长度编码的变换系数的一维排序进行编码。这个熵编码器可以执行上文所描述的语法元素的联合或复合编码以及经游程长度编码的变换系数的编码。常常采用被称作上下文自适应二进制算术译码(CABAC)的形式的熵编码来对从正方形变换系数块产生的变换系数的一维排序进行编码。本发明中描述的技术的各种方面可以让视频编码器能够相对于从非正方形变换系数块产生的变换系数的一维排序执行CABAC。
[0065]实施所述技术的这些熵编码方面的视频编码器可以执行一种形式的CABAC,这种CABAC已经用三种方式经过修改以适应非正方形变换系数块。第一修改可能涉及用信号表示最后有效系数。第二修改可能涉及修改所谓的“有效性映射”,而第三修改可能涉及修改所谓的“系数等级”。
[0066]对于非正方形块,在用信号表不最后有效系数时,视频编码器可以实施第一修改,从而使得用于执行CABAC的上下文模型取决于被译码的坐标的大小的长度。换句话说,水平坐标(最后系数的X分量)具有取决于块的宽度(以及经译码的X的二进制数)的上下文。同理,垂直坐标(Y分量)具有取决于块的高度而指派的上下文集合。
[0067]对于非正方形块的有效性映射,本发明提出大小为2NxN和Nx2N的变换共用相同的一个或一个以上上下文进行CABAC译码。通过共用上下文,视频编码器可以减少上下文的总数。为了提高性能,视频编码器可以不直接导出和共用上下文,而是在转置矩形形状中的一者的坐标和值之后进行。举例来说,可以直接对2NxN变换的系数进行编码,但在译码之前转置经过Nx2N变换的系数,这意味着在译码之前先交换坐标X与Y以及宽度与高度。本发明中描述的技术的这个方面利用一个事实,即2NxN块的统计数据在被转置之后类似于Nx2N块的统计数据。
[0068]作为一实例,当使用CABAC译码时,视频译码装置可以应用系数的逆对角线扫描以对包含指示系数的重要性、等级和正负号的语法元素在内的语法元素进行译码。对于等级译码,可以在16个系数的子集中扫描系数。可以基于上下文邻域(或根据本发明的技术基于系数的X和Y坐标)针对每 一子集对上下文进行重新初始化。为了对等级信息进行译码,可以使用CABAC对对应二进制化符号的头两个二进制数进行译码,并且使用例如指数哥伦布译码等另一旁通译码引擎对其余的二进制数进行译码。当通过CABAC引擎对二进制数进行译码时,对上下文状态进行更新(其中上下文具有通过概率模型定义的多个状态)。CABAC引擎基于概率模型和被译码的实际值转变成上下文的不同状态(值)。
[0069]对于8x4和4x8的变换系数块,视频编码器可以实施所述技术的这个方面以基于系数的位置使用用于有效性映射的上下文(类似于HEVC中的4x4和8x8块)。在这个实施方案中,可以对CABAC使用十六个上下文,沿较长边的两个相邻系数共用这些上下文。以下是说明可以如何导出这些共用上下文的一个实例:
[0070]假设X和Y是二维变换系数块内的变换系数的坐标,并且假设 >> 是右移位运算并且CtxNum是为所述块指派的上下文。可以如下导出用于8x4块的上下文:
[0071]CtxNum=Y+ (X>>1)
[0072]如上所述,对于4x8块,可以如下导出上下文:
[0073]Swap (X, Y);并且
[0074]CtxNum=Y+ (X?l)
[0075]其中Swap(X,Y)可以实施为:[0076]
【权利要求】
1.一种对视频数据进行译码的方法,所述方法包括:对指示所述视频数据的变换单元是正方形还是非正方形的信息进行译码;以及至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码。
2.根据权利要求1所述的方法,其中对指示所述变换单元是正方形还是非正方形的所述信息进行译码包括对变换选择旗标进行译码。
3.根据权利要求2所述的方法,其中所述变换单元包括子代变换单元,所述方法进一步包括对指示所述子代变换单元的父代变换单元是否分裂的信息进行译码,其中对指示所述子代变换单元是正方形还是非正方形的所述信息进行译码包括仅当所述父代变换单元分裂时对指示所述子代变换单元是正方形还是非正方形的所述信息进行译码。
4.根据权利要求1所述的方法,其中对指示所述变换单元是正方形还是非正方形的所述信息进行译码包括对指示所述变换单元所对应的残余四叉树RQT数据结构的等级的信息进行译码。
5.根据权利要求1所述的方法,其中对指示所述变换单元是正方形还是非正方形的所述信息进行译码包括至少部分基于所述变换单元是对应于色度分量还是明度分量对指示所述变换单元是正方形还是非正方形的所述信息进行译码。
6.根据权利要求1所述的方法,其中对指示所述变换单元是正方形还是非正方形的所述信息进行译码包括至少部分基于对应于所述变换单元的预测单元是正方形还是非正方形对指示所述变换单元是正方形还是非正方形的所述信息进行译码。
7.根据权利要求1所述的方法,其中对指示所述变换单元是正方形还是非正方形的所述信息进行译码包括对指示对应于所述变换单元的预测单元是正方形还是非正方形的信息进行译码。`
8.根据权利要求1所述的方法,其进一步包括基于所述变换单元是正方形还是非正方形来确定用于所述变换单元的量化参数。
9.根据权利要求1所述的方法,其进一步包括当所述变换单元是非正方形时,对所述变换单元的变换系数应用在所述变换单元的较短边缘上开始的扫描模式。
10.根据权利要求1所述的方法,其中至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码包括,当所述变换单元是非正方形时,基于所述变换单元的较短边缘的位置选择用于对所述数据进行译码的上下文。
11.根据权利要求1所述的方法,其中对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行译码包括对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行解码,并且其中对所述变换单元的所述数据进行译码包括:基于所述变换单元是正方形还是非正方形对所述变换单元的经量化变换系数进行解码;将所述经量化变换系数逆量化;以及对所述变换系数进行逆变换以产生用于对应于所述变换单元的译码单元的至少一部分的残余数据。
12.根据权利要求1所述的方法,其中对所述变换单元的所述数据进行译码包括:计算用于译码单元的至少一部分的残余数据;对所述残余数据进行变换以产生变换系数;将所述变换系数量化;以及基于所述变换单元是正方形还是非正方形对所述变换单元的经量化变换系数进行编码,并且其中对指示所述变换单元是正方形还是非正方形的所述信息进行译码包括对指示所述变换单元是正方形还是非正方形的所述信息进行编码。
13.根据权利要求12所述的方法,其进一步包括:将使用正方形变换单元对所述译码单元进行译码的结果与使用非正方形变换单元对所述译码单元进行译码的结果比较;以及基于所述比较来选择正方形变换单元或非正方形变换单元。
14.一种用于对视频数据进行译码的装置,所述装置包括视频译码器,所述视频译码器经配置以对指示所述视频数据的变换单元是正方形还是非正方形的信息进行译码,和至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的的数据进行译码。
15.根据权利要求14所述的装置,其中为了对指示所述变换单元是正方形还是非正方形的所述信息进行译码,所述视频译码器经配置以对变换选择旗标进行译码。
16.根据权利要求15所述的装置,其中 所述变换单元包括子代变换单元,并且其中所述视频译码器进一步经配置以对指示所述子代变换单元的父代变换单元是否分裂的信息进行译码,其中所述视频译码器经配置以仅当所述父代变换单元分裂时才对指示所述子代变换单元是正方形还是非正方形的所述信息进行译码。
17.根据权利要求14所述的装置,其中为了对指示所述变换单元是正方形还是非正方形的所述信息进行译码,所述视频译码器经配置以对指示所述变换单元所对应的残余四叉树RQT数据结构的等级的信息进行译码。
18.根据权利要求14所述的装置,其中所述视频译码器经配置以至少部分基于所述变换单元是对应于色度分量还是明度分量对指示所述变换单元是正方形还是非正方形的所述信息进行译码。
19.根据权利要求14所述的装置,其中所述视频译码器经配置以至少部分基于对应于所述变换单元的预测单元是正方形还是非正方形对指示所述变换单元是正方形还是非正方形的所述信息进行译码。
20.根据权利要求14所述的装置,其中为了对指示所述变换单元是正方形还是非正方形的所述信息进行译码,所述视频译码器经配置以对指示对应于所述变换单元的预测单元是正方形还是非正方形的信息进行译码。
21.根据权利要求14所述的装置,其中所述视频译码器进一步经配置以基于所述变换单元是正方形还是非正方形来确定用于所述变换单元的量化参数。
22.根据权利要求14所述的装置,其中所述视频译码器经配置以当所述变换单元是非正方形时对所述变换单元的变换系数应用在所述变换单元的较短边缘上开始的扫描模式。
23.根据权利要求14所述的装置,其中为了至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码,所述视频译码器经配置以当所述变换单元是非正方形时基于所述变换单元的较短边缘的位置来选择用于对所述数据进行译码的上下文。
24.根据权利要求14所述的装置,其中所述视频译码器包括视频解码器,其中为了对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行译码,所述视频解码器经配置以对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行解码,并且其中为了对所述变换单元的所述数据进行译码,所述视频解码器经配置以基于所述变换单元是正方形还是非正方形对所述变换单元的经量化变换系数进行解码,将所述经量化变换系数逆量化,和对所述变换系数进行逆变换以产生用于对应于所述变换单元的译码单元的至少一部分的残余数据。
25.根据权利要求14所述的装置,其中所述视频译码器包括视频编码器,其中为了对所述变换单元的所述数据进行译码,所述视频编码器经配置以计算用于译码单元的至少一部分的残余数据,对所述残余数据进行变换以产生变换系数,将所述变换系数量化,和基于所述变换单元是正方形还是非正方形对所述变换单元的所述经量化变换系数进行编码,并且其中为了对指示所述变换单元是正方形还是非正方形的所述信息进行译码,所述视频编码器经配置以对指示所述变换单元是正方形还是非正方形的所述信息进行编码。
26.根据权利要求14所述的装置,其中所述装置包括以下各项中的至少一者:集成电路;微处理器;以及无线通信装置,其包含所述视频译码器。
27.一种用于对视频数据进行译码的装置,所述装置包括:用于对指示所述视频数据的变换单元是正方形还是非正方形的信息进行译码的装置;以及用于至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码的装置。
28.根据权利要求27所述的装置,其中所述用于对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于对变换选择旗标进行译码的装置。
29.根据权利要求28所述的装置,其中所述变换单元包括子代变换单元,所述装置进一步包括用于对指示所述子代变换单元的父代变换单元是否分裂的信息进行译码的装置,其中所述用于对指示所述子代变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于仅当所述父代变换单元分裂时才对指示所述子代变换单元是正方形还是非正方形的所述信息进行译码的装置。
30.根据权利要求27所述的装置,其中所述用于对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于对指示所述变换单元所对应的残余四叉树RQT数据结构的等级的信息进行译码的装置。
31.根据权利要求27所述的装置,其中所述用于对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于至少部分基于所述变换单元是对应于色度分量还是明度分量对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置。
32.根据权利要求27所述的装置,其中所述用于对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于至少部分基于对应于所述变换单元的预测单元是正方形还是非正方形对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置。
33.根据权利要求27所述的装置,其中所述用于对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于对指示对应于所述变换单元的预测单元是正方形还是非正方形的信息进行译码的装置。
34.根据权利要求27所述的装置,其进一步包括用于基于所述变换单元是正方形还是非正方形来确定用于所述变换单元的量化参数的装置。
35.根据权利要求27所述的装置,其进一步包括用于当所述变换单元是非正方形时对所述变换单元的变换系数应用在所述变换单元的较短边缘上开始的扫描模式的装置。
36.根据权利要求27所述的装置,其中所述用于至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码的装置包括,用于当所述变换单元是非正方形时基于所述变换单元的较短边缘的位置选择用于对所述数据进行译码的上下文的装置。
37.根据权利要求27所述的装置,其中所述用于对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行解码的装置,并且其中所述用于对所述变换单元的所述数据进行译码的装置包括:用于基于所述变换单元是正方形还是非正方形对所述变换单元的经量化变换系数进行解码的装置;用于将所述经量化变换系数逆量化的装置;以及用于对所述变换系数进行逆变换以产生用于对应于所述变换单元的译码单元的至少一部分的残余数据的装置。
38.根据权利要求27所述的装置,其中所述用于对所述变换单元的所述数据进行译码的装置包括:用于计算用于译码单元的至少一部分的残余数据的装置;用于对所述残余数据进行变换以产生变换系数的装置;用于将所述变换系数量化的装置;以及用于基于所述变换单元是正方形还是非正方形对所述变换单元的经量化变换系数进行编码的装置,并且其中所述用于对指示所述变换单元是正方形还是非正方形的所述信息进行译码的装置包括用于对指示所述变换单元是正方形还是非正方形的所述信息进行编码的装置。
39.一种计算机程序产品,其包括上面存储有指令的计算机可读媒体,所述指令在执行时致使处理器:对指示所述视频数据的变换单元是正方形还是非正方形的信息进行译码;以及至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码。
40.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器对变换选择旗标进行译码的指令。
41.根据权利要求40所述的计算机程序产品,其中所述变换单元包括子代变换单元,所述计算机程序产品进一步包括致使所述处理器对指示所述子代变换单元的父代变换单元是否分裂的信息进行译码的指令,其中所述致使所述处理器对指示所述子代变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器仅当所述父代变换单元分裂时才对指示所述子代变换单元是正方形还是非正方形的所述信息进行译码的指令。
42.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器对指示所述变换单元所对应的残余四叉树RQT数据结构的等级的信息进行译码的指令。
43.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器至少部分基于所述变换单元是对应于色度分量还是明度分量对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令。
44.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器至少部分基于对应于所述变换单元的预测单元是正方形还是非正方形对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令。
45.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器对指示对应于所述变换单元的预测单元是正方形还是非正方形的信息进行译码的指令。
46.根据权利要求39所述的计算机程序产品,其进一步包括致使所述处理器基于所述变换单元是正方形还是非正方形来确定用于所述变换单元的量化参数的指令。
47.根据权利要求39所 述的计算机程序产品,其进一步包括致使所述处理器当所述变换单元是非正方形时对所述变换单元的变换系数应用在所述变换单元的较短边缘上开始的扫描模式的指令。
48.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器至少部分基于所述变换单元是正方形还是非正方形对所述变换单元的数据进行译码的指令包括,致使所述处理器当所述变换单元是非正方形时基于所述变换单元的较短边缘的位置选择用于对所述数据进行译码的上下文的指令。
49.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器对指示所述视频数据的所述变换单元是正方形还是非正方形的所述信息进行解码的指令,并且其中所述致使所述处理器对所述变换单元的所述数据进行译码的指令包括致使所述处理器执行以下操作的指令:基于所述变换单元是正方形还是非正方形对所述变换单元的经量化变换系数进行解码;将所述经量化变换系数逆量化;以及对所述变换系数进行逆变换以产生用于对应于所述变换单元的译码单元的至少一部分的残余数据。
50.根据权利要求39所述的计算机程序产品,其中所述致使所述处理器对所述变换单元的所述数据进行译码的指令包括致使所述处理器执行以下操作的指令:计算用于译码单元的至少一部分的残余数据;对所述残余数据进行变换以产生变换系数;将所述变换系数量化;以及基于所述变换单元是正方形还是非正方形对所述变换单元的经量化变换系数进行编码,并且 其中所述致使所述处理器对指示所述变换单元是正方形还是非正方形的所述信息进行译码的指令包括致使所述处理器对指示所述变换单元是正方形还是非正方形的所述信息进行编码的指令。
【文档编号】H04N19/117GK103636215SQ201280032876
【公开日】2014年3月12日 申请日期:2012年6月25日 优先权日:2011年7月1日
【发明者】郭立威, 霍埃尔·索赖罗哈斯, 瑞珍·雷克斯曼·乔许, 陈培松, 翔林·王, 马尔塔·卡切维奇 申请人:高通股份有限公司