用于扫描视频编译中的矩形变换的设备和方法

文档序号:7991270阅读:121来源:国知局
用于扫描视频编译中的矩形变换的设备和方法
【专利摘要】在此描述了允许将波前扫描应用于矩形变换块的设备和方法。这样的设备和方法可以通过实现变换系数的并行处理,允许用于熵编译的更高效率。在一些实施例中,用于编译具有多个图片的数字视频序列的方法包括将多个图片的至少一个分成块,对所述块的至少一个执行矩形变换来产生一个或多个变换系数,对一个或多个变换系数执行量化,以及沿编译扫描次序,一次一个地编码一个或多个变换系数,以生成压缩位流。所述编译扫描次序可以包括正向波前扫描次序或逆向波前扫描次序,以及量化可能导致产生量化的变换系数。
【专利说明】用于扫描视频编译中的矩形变换的设备和方法
[0001]相关申请的交叉引用
[0002]本申请要求2011年7月22日提交的美国临时专利申请N0.61/511,014、名为“Wavefront Scan for Rectangular Transform”的权益,其全部内容通过引用合并于此
【技术领域】
[0003]本公开通常涉及视频编译领域,更具体地说,涉及用于扫描熵编译中的矩形变换的系统、设备和方法。
【背景技术】
[0004]数字视频能力能包含在大量设备中,包括数字电视、数字实况转播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话、所谓的“智能电话”、视频电话会议设备、视频流媒体设备等等。数字视频设备实现视频压缩技术,诸如在由 MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4、PartlO、高级视频编译(AVC)、目前开发中的高效视频编译(HEVC)标准,以及这些标准的扩展定义的标准中描述的那些视频压缩技术。视频设备可以通过实现这样的视频压缩技术,更有效地传送、接收、编码、解码和/或存储数字视频信息。
[0005]视频压缩技术执行空间(例如,图片内)预测和/或时间(例如,图片间)预测来减少或消除视频序列中固有的冗余。对基于块的视频编译,可以将视频片段(例如视频帧或视频帧的一部分)分成视频块,其也可以称为树块、编译单元(CU)和/或编译节点。相对于同一图片中的相邻块中的基准样本,可以使用空间预测来编码图片的帧内编译(I)片段中的视频块。图片的帧间编译(P或B)片段中的视频块可以使用相对于同一图片中的相邻块中的基准样本的空间预测或相对于其他基准图片中的基准样本的时间预测。图片可以称为帧,以及基准图片可以称为基准帧。
[0006]空间或时间预测可以导致用于待编译的块的预测块。残差数据可以表示待编译的原始块和预测块之间的像素差。可以根据指向形成预测块的基准样本的块的运动矢量,以及表示编译块和预测块之间的差的残差数据,编码帧间编译块。可以根据帧内编译模式和残差数据,编码帧内编译块。为进一步压缩,可以将残差数据从像素域变换成变换域,导致此后可以量化的残差变换系数。可以扫描初始按二维阵列排列的量化变换系数以便产生变换系数的一维矢量,以及可以应用熵编译来实现更多压缩。
[0007]本公开预期提供用于熵编译的系数的新设备和方法。

【发明内容】

[0008]因此,在此提供允许将波前扫描应用于矩形变换块的设备和方法。这样的设备和方法可以通过实现变换系数的并行处理来允许用于熵编译的更大效率。
[0009]在一些实施例中,用于编译具有多个图片的数字视频序列的方法包括:将多个图片的至少一个分成块,对所述块的至少一个执行矩形变换以产生一个或多个变换系数,对一个或多个变换系数执行量化,以及沿编译扫描次序,一次一个地编码一个或多个变换系数,以生成压缩位流。编译扫描次序可以包括正向波前扫描次序或逆向波前扫描次序,以及量化会导致产生量化的变换系数。
[0010]在一些实施例中,一种用于编译具有多个图片的数字视频序列的装置包括视频编译器,该视频编译器被配置成:将多个图片的至少一个分成块,对所述块的至少一个执行矩形变换以产生一个或多个变换系数,对一个或多个变换系数执行量化,以及沿编译扫描次序,一次一个地编码一个或多个变换系数,以生成压缩位流。编译扫描次序可以包括正向波前扫描次序或逆向波前扫描次序,以及量化会导致产生量化的变换系数。
[0011]在其他实施例中,一种用于处理压缩位流的方法包括:接收压缩位流,以及处理压缩位流以生成矩形变换的一个或多个变换系数。沿矩形变换的编译扫描次序,可以一次一个地生成一个或多个变换系数,以及编译扫描次序可以包括正向波前扫描次序或逆向波前扫描次序。
[0012]在另外的实施例中,一种用于处理压缩位流的装置包括视频解码器,该视频解码器被配置成接收压缩位流,以及处理压缩位流以生成矩形变换的一个或多个变换系数。沿矩形变换的编译扫描次序,可以一次一个地生成一个或多个变换系数,以及编译扫描次序可以包括正向波前扫描次序或逆向波前扫描次序。
【专利附图】

【附图说明】
[0013]可以通过研究附图,部分理解本公开的详情,有关其结构和操作,其中,相同的参考数字表示相同的部件。附图并不一定是按比例,相反重点在于图示本发明的原理。
[0014]图1是图示图像的空间和时间采样的框图。
[0015]图2是根据实施例的图示实现用于有效地执行视频数据的矩形块的扫描的技术的视频编码和解码系统的例子的框图。
[0016]图3是根据实施例的将图片分成块(IXU)的一个例子。
[0017]图4是根据实施例的分成⑶的IXU的一个例子。
[0018]图5是根据实施例的图4中的IXU划分的四叉树表示。
[0019]图6示出根据实施例的每⑶到I3U的四种可能划分。
[0020]图7是根据实施例的⑶划分和关联TU集合的例子。
[0021 ] 图8是根据实施例的在图7的例子中⑶内的TU的四叉树表示。
[0022]图9A-C是图示视频数据块和相应的有效系数位置信息和末位有效系数位置信息的例子的概念图。
[0023]图10是图示使用Z字形扫描次序扫描的视频数据块的例子的概念图。
[0024]图11是图示使用Z字形扫描次序扫描的视频数据块的另外的例子的概念图。
[0025]图12是方波前扫描的例子。
[0026]图13A-D是根据实施例的波前扫描方向的例子。
[0027]图14是根据实施例的全正向矩形波前扫描(从左下到右上的45。)的一个例子。
[0028]图15是根据实施例的全反向矩形波前扫描(从左下到右上的45。)的一个例子。
[0029]图16是根据实施例的全正向矩形波前扫描(从右上到左下的-135 °)的一个例子。
[0030]图17是根据实施例的全反向矩形波前扫描(从右上到左下的-135 °)的一个例子。
[0031]图18是根据实施例的直到最后非零量化变换系数的局部正向矩形波前扫描(从左下到右上的45 °)的一个例子。
[0032]图19是根据实施例的从最后非零量化变换系数开始的局部反向矩形波前扫描(从左下到右上的45 °)的一个例子。
[0033]图20是根据实施例的直到最后非零量化变换系数的局部正向矩形波前扫描(从右上到左下的-135 °)的一个例子。
[0034]图21是根据实施例的从最后非零量化变换系数开始的局部反向矩形波前扫描(从右上到左下的-135 °)的一个例子。
[0035]图22是根据实施例的图示可以实现用于有效地执行视频数据的矩形块的扫描的技术的视频编码器的例子的框图。
[0036]图23是根据实施例的图示可以实现用于有效地解码视频数据的矩形块的编码扫描信息的技术的视频解码器的例子的框图。
【具体实施方式】
[0037]本公开的技术在一些例子中,可以与任何上下文自适应熵编译方法,包括上下文自适应熵编译(CABAC)、概率区间分割熵编译(PIPE),或另一上下文自适应熵编译方法一起使用。为说明的目的,在本公开中描述了 CABAC,但不限于在本公开中宽泛描述的技术。而且,这些技术可以应用于例如除视频数据外,通常的其他类型的数据的编译。
[0038]在本公开中,术语“编译”是指在编码器处发生的编码或在解码器处发生的解码。类似地,术语编译器是指编码器、解码器或组合的编码器/解码器(CODEC)。术语编译器、编码器、解码器和CODEC均指与本公开一致的视频数据的编译(编码和/或解码)而设计的特定机器。
[0039]本论述从数字图像压缩的领域中已知的一些术语和技术的非常简单的概述开始。该概述不打算详细地教导已知技术。本领域的技术人员已知如何在教科书和相关标准中查找更多细节。
[0040]现实生活可视场景由时间上可变的三维空间中展开的多个对象组成。对象特性,诸如颜色、纹理、照明和位置以连续的方式改变。数字视频是现实生活场景的空间和时间采样表示。通过以定期时间间隔捕捉传感器上的场景的二维投影获得。空间采样通过取得与叠加在传感器输出上的米样网格重合的点而发生。称为像素或样本的每一点通过来自描述亮度和颜色的色空间域的值集合来表示相应传感器位置的特征。在给定时间索引的像素的二维阵列称为帧。图1图示了可视场景的空间-时间采样。
[0041]视频编码系统通过消除视频数据中的冗余,例如,通过消除能在不会不利地影响再现保真度的情况下丢弃的那些元素实现压缩。因为视频信号按时空发生,因此,大多数视频编码系统利用存在于这些信号中的时间和空间冗余。典型地,在连续帧间存在高时间相关性。这对彼此靠近的像素来说,在空间域中也是成立的。因此,通过仔细地利用这些空间-时间相关性来实现高压缩增益。[0042]图2是图示可以实现与本公开的技术一致的、用于有效地执行视频数据的矩形块的波前扫描的技术的视频编码和解码系统10的例子的框图。如图2所示,系统10包括经通信信道16,将编码视频传送到目的地设备14的源设备12。源设备12和目的地设备14可以包括各种设备中的任何设备。在一些情况下,源设备12和目的地设备14可以包括无线通信设备,诸如无线手机、所谓蜂窝或卫星无线电话,或能在通信信道16上传送视频信息的任何无线设备,在这种情况下,通信信道16是无线的。
[0043]应当理解,本公开的技术不一定限于无线应用或设置。这些技术通常可以应用于执行编码或解码的任何情况,包括空中电视广播、有线电视传输、卫星电视传输、流送互联网视频传输、编码在存储介质或从存储介质检索和解码的编码数字视频,或其他情况。相应地,不要求通信信道16以及该公开的技术可以应用于应用编码或应用解码的设置,例如,在编码和解码设备之间没有任何数据传输。
[0044]在图2的例子中,源设备12包括视频源18、视频编码器20、调制器/解调器(调制解调器)22和发射机24。目的地设备14包括接收机26、调制解调器28、视频解码器30和显示设备32。根据该公开,源设备12的视频编码器20和/或目的地设备14的视频解码器30可以配置成应用用于执行视频数据的矩形块的波前扫描的技术。在其他例子中,源设备和目的地设备可以包括其他组件或布置。例如,源设备12可以从诸如外部照相机的外部视频源18接收视频数据。同样地,目的地设备14可以与外部显示设备对接,而不是包括集成的显示设备。
[0045]图2的所示系统10仅是一个例子。可以由任何数字视频编码和/或解码设备执行用于有效地执行视频数据的矩形块的波前扫描的技术。尽管通常由视频编码设备执行该公开的技术,但这些技术也可以由通常称为“CODEC”的视频编码器/解码器来执行。此外,也可以由视频预处理器执行该公开的技术。源设备12和目的地设备14仅是源设备12生成用于传输到目的地设备14的编译视频数据的这类编译设备的例子。在一些例子中,设备
12、14可以以基本上对称的方式操作使得设备12、14的每一个包括视频编码和解码组件。因此,系统10可以支持视频设备12、14之间的单向或双向视频传输,例如,用于视频流送、视频重放、视频广播或电视电话。
[0046]源设备12的视频源18可以包括视频捕捉设备,诸如摄像机、包含先前捕捉的影音档案,和/或从视频内容提供者供给的视频。作为另一替代方案,视频源18可以将基于计算机图形的数据生成为源视频,或实况视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源18是摄像机,则源设备12和目的地设备14可以形成所谓的相机电话或视频电话。如上所述,然而,一般而言,在本公开中所述的技术可以适用于视频编译,以及可以应用于无线和/或有线应用。在每一种情况下,可以由视频编码器20编码所捕捉、预捕捉或计算机生成的视频。然后,根据通信标准,由调制解调器22调制编码的视频信息,并且经发射机24传输到目的地设备14。调制解调器22可以包括各种混频器、滤波器、放大器或为信号调制而设计的其他组件。发射机24可以包括为传输数据而设计的电路,包括放大器、滤波器和一个或多个天线。
[0047]目的地设备14的接收机26,例如解码器接收信道16上的信息,以及调制解调器28解调该信息。再次,上述视频编码过程可以实现在此所述的一个或多个技术来有效地执行视频数据的矩形块的波前扫描。信道16上传送的信息可以包括由视频编码器20定义的语法信息,其也被视频解码器30使用,包括描述视频数据的块(例如宏块或编译单元)的特性和/或处理的语法元素,例如用于这些块的扫描次序信息和其他信息。显示设备32向用户显示解码的视频数据,以及可以包括多种显示设备的任何一种,诸如阴极射线管(CRT)、液晶显示器(IXD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。
[0048]在图2的例子中,通信信道16可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个物理传输线,或无线和有线介质的任何组合。通信信道16可以形成基于分组的网络的一部分,诸如局域网、广域网或全局网络,诸如互联网。通信信道16通常表示任何适当的通信介质,或不同通信介质的集合,用于将视频数据从源设备12传输到目的地设备14,包括有线或无线介质的任何适当组合。通信信道16可以包括路由器、交换机、基站或可以用来便于从源设备12到目的地设备14的通信的任何其他装置。在其他例子中,编码或解码设备可以在这样的设备之间没有任何通信的情况下实现该公开的技术。例如,编码设备可以编码和存储与本公开的技术一致的编码位流。替代地,解码设备可以接收或检索编码位流,并且解码与本公开的技术一致的位流。
[0049]视频编码器20和视频解码器30可以根据视频压缩标准,诸如ITU-TH.264标准,替代地称为MPEG-4,PartlO,高级视频编码(AVC)操作。然而,该公开的技术不限于任何特定的编译标准。其他例子包括MPEG-2、ITU-T H.263和目前正开发中的高效视频编译(HEVC)标准。通常,相对于HEVC描述本公开的技术,但应理解到这些技术也可以结合其他视频编译标准使用。尽管在图2中未示出,但是在一些方面,视频编码器20和视频解码器30分别集成有音频编码器和解码器,以及可以包括适当的MUX-DEMUX单元,或其他硬件和软件,以便处理共用数据流或单独的数据流中的音频和视频的编码。如果适当的话,MUX-DEMUX单元可以符合ITU H.223多路复用协议,或其他协议,诸如用户数据报协议(UDP)。
[0050]视频编码器20和视频解码器30分别可以实现为多种适当的编码器和解码器电路中的任何一个,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码器20和视频解码器30的每一个可以被包括在一个或多个编码器或解码器中,它们的任一个可以集成为各个照相机、计算机、移动设备、订户设备、广播设备、机顶盒、服务器等等中的组合编码器/解码器(CODEC)的一部分。
[0051]视频序列通常包括一系列视频帧。一组图片(GOP)通常包括一系列一个或多个视频帧。GOP可以包括在GOP的头部、GOP的一个或多个帧的头部或其他地方中的、描述包括在GOP中的帧的数目的语法数据。每一帧可以包括描述用于各个帧的编码模式的帧语法数据。例如视频编码器20的视频编码器通常在单个视频帧内的视频块上操作以便编码视频数据。根据ITU-T H.264标准,视频块可以对应于宏块或宏块的一部分。根据其他标准,例如,在下文详细所述的HEVC,视频块可以对应于编译单元(例如,最大编译单元(LCU)),或编译单元的一部分,如图3所示。视频块可以具有固定或可变大小,并且根据指定的编译标准,例如,用于HEVC的128X128或64X64或32X32或16X16像素(取决于LCU大小),在大小方面可以不同。每一视频帧可以包括多个片段,例如,视频帧的部分。每一片段可以包括可以排列成分块的多个视频块,也称为子块。
[0052]取决于指定的编译标准,视频块可以分成不同“NXN”子块大小,诸如16X16、8X8、4X4、2X2等等。子块可以用于处理中的正则性。在本公开中,可以互换地使用“NXN”和“N乘N”来表示根据垂直和水平维度的块的像素尺寸,例如16X16像素或16乘16像素。通常,16X16块将具有垂直方向中的16个像素(y=16)以及水平方向中的16个像素(x=16)。同样地,NXN块通常具有垂直方向中的N个像素和水平方向中的N个像素,其中,N表示非负整数值。块中的像素可以按行和列排列。此外,块不一定需要在水平方向中与在垂直方向中具有相同的像素数。例如,块可以包括NXM像素,其中,M不一定等于N。作为一个例子,在ITU-T H.264标准中,尺寸为16乘16像素的块可以称为宏块,以及小于16乘16像素的块可以称为16乘16宏块的分块。在其他标准中,诸如HEVC,通常可以相对于它们的大小,将块定义为例如编译单元或其分块,每一个具有可变而不是固定大小。
[0053]视频块可以包括像素域中的像素数据的块,或变换域中的变换系数的块,例如,在应用变换后,诸如离散余弦变换(DCT)、整数变换、小波变换,或对用于给定视频块的残差数据的概念上类似的变换,其中,残差数据表示用于块的视频数据和为该块生成的预测数据之间的像素差。在一些情况下,视频块可以包括变换域中的量化变换系数的块,其中,在将变换应用于给定视频块的残差数据后,还量化最终的变换系数。
[0054]量化减少信号能携带的值的范围,使得可以用较少位表示信号。在一些实施例中,使用外部边界条件来产生修改的一个或多个变换系数。例如,在确定为变换系数给定非零值还是正好归零中,可以使用较低范围或值。在视频编码中,量化是引入损耗的步骤,使得能建立比特率和重构质量之间的平衡。
[0055]分块在基于块的视频编译技术中起重要目的。使用较小块来编译视频数据可以导致更好预测用于包括高细节级别的视频帧的位置的数据,并且因此可以减少表示为残差数据的最终误差(例如,预测数据与源视频数据的偏差)。通常,预测通过建模不同维度的样本块之间的相关性,利用空间或时间冗余,使得仅需要编码实际和预测信号之间的小差别。从已经编码过的样本创建对于当前块的预测。尽管潜在地降低残差数据,然而,这样的技术可能要求额外的语法信息来指示相对于视频帧如何划分较小块,并且可能导致增加编译视频比特率。相应地,在一些技术中,由于额外的语法信息,分块可以取决于针对编译视频数据的比特率的最终增加而平衡残差数据的期望减小。
[0056]通常,块及其各种分块(例如子块)可以视为视频块。此外,片段可以视为多个视频块(例如,宏块,或编译单元),和/或子块(宏块的分块,或子编译单元)。每一片段可以是视频帧的单独的可解码单元。替代地,帧本身可以是可解码单元,或帧的其他部分可以被定义为可解码单元。此外,也称为序列的GOP可以被定义为可解码单元。
[0057]如上所述,目前正努力开发新的视频编译标准,目前称为高效视频编译(HEVC)。新兴的HEVC标准也可以称为H.265。标准化工作基于称为HEVC测试模型(HM)的视频编译设备的模型。HM假定视频编译设备高于根据例如ITU-T H.264/AVC的设备的若干能力。例如,尽管H.264提供九种帧内预测编码模式,但是HM例如基于正帧内预测编译的块的大小而提供多至35种帧内预测编码模式。
[0058]通常,在帧内预测编码中,在帧中的相邻块之间存在高级别的空间相关性。因此,能从相邻编码和重构块预测块,产生帧内预测。在一些实施例中,能由位于当前块的上方和左边的前一编码样本的加权平均形成预测。编码器可以选择最小化原始和预测之间的差别的模式并且在控制数据中信号告知该选择。[0059]HM将视频数据块称为编译单元(CU)。CU可以指用作应用不同编译工具以用于压缩的基本单元的图像区。在H.264中,其也可以称为宏块。位流内的语法数据可以定义最大编译单元(LCU),该最大编译单元是就像素数而言的最大CU。通常,CU具有与H.264的宏块类似的目的,除CU不具有尺寸区别外。因此,CU可以划分或“拆分”成子CU,如图4所
/Jn ο
[0060]IXU可以与指示如何划分IXU的四叉树数据结构相关联,如图5所示。特别地,在四叉树的每一节点,如果节点进一步拆分成子节点,则指派位“I”,否则指派位“O”。例如,图4中的LCU分块可以由图5中所示的四叉树表示。可以编译和传输二进制数据10100的四叉树表示作为开销。
[0061]通常,四叉树数据结构包括每IXU的⑶的一个节点,其中,根节点对应于IXU,以及其他节点对应于LCU的子CU。如果给定CU分成四个子CU,则与所分的CU相对应的四叉树中的节点包括四个子节点,每一子节点对应于子CU中的一个。四叉树数据结构的每一节点可以提供用于相应CU的语法信息。例如,四叉树中的节点可以包括用于CU的拆分标志,指示与该节点相对应的CU是否被分成四个子CU。用于给定CU的语法信息可以递归地定义,并且可以取决于⑶是否被分成子⑶。
[0062]未被拆分的⑶(例如,对应终端的CU,或给定四叉树中的“叶”节点可以包括一个或多个预测单元(PU)。通常,PU表示相应CU的全部或一部分,以及包括为执行用于CU的预测的目的,检索用于PU的基准样本的数据。例如,当帧内模式编码CU时,可以包括描述用于PU的帧内预测模式的数据。作为另一例子,当帧间模式编码CU时,可以包括定义用于PU的运动矢量的数据。定义运动矢量的数据可以描述例如运动矢量的水平分量、运动矢量的垂直分量、用于运动矢量的分辨率(例如,1/4像素精度或1/8像素精度)、运动矢量所指向的基准帧,和/或用于运动矢量的基准列表(例如,列表O或列表I)。用于定义CU的一个或多个I3U的CU的数据还可以描述例如将CU划分成一个或多个ro。划分模式可以在未编译、帧内预测模式编码还是帧间预测模式编码CU之间不同。示出每一 CU的四种可能划分的例子如图6所示。
[0063]在当前HEVC标准中,每一 I3U有35种空间预测方向或模式,包括水平、垂直、45度对角、135度对角、DC等等。通常使用语法来指示每一 的空间预测。
[0064]通常,在帧间预测编码中,视频序列具有帧之间的高时间相关性,使得能够由称为基准帧的在前一帧中的区域精确地描述当前帧中的块。帧间预测利用先前编码和重构的基准帧来使用基于块的运动估计和补偿技术来开展预测。
[0065]具有一个或多个I3U的⑶还可以包括一个或多个变换单元(TU),如图7所示。在使用一个或多个PU对于CU的预测后,如上所述,视频编码器可以计算用于与一个或多个PU相对应的CU的各个部分的一个或多个残差块。残差块可以表示用于CU的视频数据和用于一个或多个PU的预测数据之间的像差差。可以变换、扫描和量化残差值的集合来定义量化变换系数的集合。TU可以定义指示用于变换系数的分块信息的分块数据结构,其基本上类似于如上参考CU所述的四叉树数据结构,如图8所示。
[0066]关于其他视频编译标准,HEVC对残差数据应用块变换以使块内的像素解相关以及将块能量压缩成低次变换系数。然而,不同于将单个4X4或8X8变换应用于宏块的标准,HEVC能将不同大小的块变换的集合应用于单个CU。应用于CU的块变换的集合由其关联的TU表示。由此,应当理解,TU不一定限于PU的大小,例如,TU可以大于或小于用于同一⑶的相应ro。在一些例子中,TU的最大大小可以对应于相应⑶的大小。通常,TU指示应当将何种块变换应用于CU分块,其中,每一块变换的范围由每一TU的位置和大小而定。与特定CU相关联的TU的结构能基于各种准则而不同。
[0067]在一个例子中,使用称为“残差四叉树”(RQT)的四叉树结构,与⑶相对应的残差样本可以细分成更小单元。如图8所示,可以编译和传输RQT表示11100作为开销。在这种情况下,RQT的叶节点可以称为TU,对此可以变换和量化相应的残差样本。
[0068]在产生预测数据和残差数据的帧内预测或帧间预测编码后,以及在产生变换系数的任何变换(诸如用在H.264/AVC中的4X4或8X8整数变换或离散余弦变换(DCT)后,可以执行变换系数的量化。量化通常是指量化变换系数来可能降低用来表示系数的数据量的过程,例如,通过将高精度变换系数转换成有限数目的可能值。量化过程可以减少与系数的一些或全部相关联的位深度。例如,在量化期间,η位值可以四舍五入成m位值,其中,η大于m。如应当理解的,量化是有损操作,以及通常不能恢复量化的损失。
[0069]在量化后,可以执行量化数据的熵编译(例如,量化变换系数)。关于有效地执行视频数据的矩形块的扫描,熵编译可以符合本公开的技术,以及还可以使用其他熵编译技术,诸如上下文自适应可变长度编译(CAVLC)、CABAC、PIPE或另一熵编译方法。例如,使用熵编译技术,可以编码表示为用于量化变换系数的幅度和相应符号(例如“+I”或“-1”)的系数值。
[0070]应注意到,取决于特定编译标准,可以对视频数据的任何块,例如,对和/或CU的TU,或对宏块,执行上述的预测、变换和量化。相应地,与有效地执行视频数据的矩形块的扫描有关的本公开的技术可以应用于视频数据的任何矩形块,例如,应用于量化变换系数的任何矩形块,包括宏块,或CU的TU。此外,视频数据的块(例如,宏块,或CU的TU)可以包括相应视频数据的亮度分量(Y)、第一色度分量(U)和第二色度分量(V)的每一个。同样地,对视频数据的给定矩形块的Y、U和V分量的每一个,可以执行该公开的技术。
[0071]为了如上所述编码视频数据的块,也可以生成和编码有关给定块内的有效系数的位置的信息。随后,如上所述,可以编码有效系数的值。在H.264/AVC和新兴HEVC标准中,当使用上下文自适应熵编译过程,例如CABAC过程时,在编码有效系数的值之前,可以编码视频数据的块内的有效系数的位置。编码该块内的所有有效系数的位置的过程可以称为有效图(SM)编码。在下文中更详细地描述的图9A-9C是图示量化变换系数和相应SM数据的4X4块的例子的概念图。应认识到纯粹为例子目的,示出了量化变换系数和相应SM数据的4X4块,作为本公开的技术,通常涉及有效地执行视频数据的矩形块的扫描。
[0072]可以如下描述典型的SM编码过程。对视频数据的给定块,只要该块内存在至少一个有效系数,则可以编码SM。可以以编译块图案(例如,使用语法元素“COde_blOCk_pattern ”或CBP )指示有效系数存在于视频数据的给定块内,编译块图案是对与视频数据中的像素区域相关联的块的集合(诸如亮度和色度块)编译的二进制值。CBP中的每一位称为编译块标志(例如,对应于语法元素“COded_blOCk_flag”)并用来指示在其相应块内是否存在至少一个有效系数。换句话说,编译块标志是指示在变换系数的单个块内是否存在任何有效系数的一位符号,以及CBP是用于相关视频数据块的集合的编译块标志的集合。
[0073]如果编译块标志指示在相应块内不存在有效系数(例如,标志等于“0”),则对该块没有另外的信息可以被编码。然而,如果编译块标志指示至少一个有效系数存在于相应块内(例如,标志等于“1”),则在与该块相关联的系数扫描次序后,对该块编码SM。在一些实施例中,有效系数可以包括非零量化变换系数。扫描次序可以定义将该块内的每一系数的有效性编码为SM编码的一部分的顺序。在一些实施例中,有效系数可以包括非零量化变换系数。换句话说,扫描可以将系数的二维块串行化成一维表示来确定系数的有效性。
[0074]传统上已经使用不同扫描次序,例如Z字形。在下文更详细所述的图10图示了传统上用于视频数据的8X8块的不同扫描次序的一些的例子。应认识到纯粹为示例目的,示出了视频数据的8X8块,作为本公开的技术,通常涉及有效地执行视频数据的矩形块的扫描。
[0075]给定指示至少一个有效系数存在于给定块内的编译块标志,以及用于该块的扫描次序,可以如下编码用于该块的SM。首先使用该扫描次序将量化变换系数的二维块映射成一维阵列。对于该阵列中的每一个系数,在扫描次序后,可以编码一位有效系数标志(例如,对应于语法兀素“significant_coeff_flag”)。即,可以为阵列中的每一位置指定二进制值,如果相应系数是有效的,则其可以被设置成“ I ”,并且如果不是有效的(例如,零),则设置成“O”。
[0076]如果给定有效系数标志等于“1”,指示相应系数是有效的,则也可以编码另外的一位最低有效系数标志(例如,对应于语法元素“last_significant_coeff_flag”),其可以指示相应的系数是否是阵列内(例如,给定扫描次序的块内)的最低有效系数。具体地,如果相应的系数是阵列内的最低有效系数,则可以将每一最低有效系数标志设置成“ I ”,否则设置成“O”。如果以这种方式达到最后阵列位置,以及未由等于“I”的最低有效系数标志终止SM编码过程,那么可以将阵列(因此给定扫描次序的块)中的最后一个系数推断成有效,以及对最后一个阵列位置,没有最低有效系数标志可以被编码。
[0077]图9B-9C是图示以图而不是阵列形式存在的、分别与用于图9A中所述的块的SM数据相对应的有效系数标志和最低有效系数标志的集合的例子的概念图。应注意到,在其他例子中,可以将如上所述的有效系数标志和最低有效系数标志设置成不同值(例如,如果相应系数是有效的,则可以将有效系数标志设置成“0”,以及如果不是有效的,则设置成“1”,以及如果相应的系数是最低有效系数,最低有效系数标志可以设置成“0”,以及如果不是最低有效系数,则设置成“ I ”)。
[0078]在编码SM后,如上所述,也可以编码该块中的每一有效系数的值(例如,分别由语法兀素“coeff_abs_level_minusl ”和“coeff_sign_f lag”指不的每一有效系数的幅度和符号)。
[0079]图9A-9C是图示视频数据的块和相应的有效系数位置信息和最低有效系数位置信息的例子的概念图。
[0080]如图9A所示,例如,宏块、或CU的TU的视频数据的块可以包括量化变换系数。例如,如图9A所示,块400可以包括使用先前所述的预测、变换和量化技术生成的量化变换系数。对该例子,假定块400具有2NX2N的大小,其中,N等于2。相应地,块400具有4X4的大小,以及包括16个量化变换系数,也如图9A所示。进一步假定与块400相关联的扫描次序是Z字形扫描次序,如在下文更详细所述的图10所示。在该例子中,根据Z字形扫描次序,块400内的最低有效系数是位于块400内的位置406中的等于“I”的量化变换系数。[0081]图9B图示有效系数标志数据的例子,例如,以如前所述的图、框形式表示的有效系数标志。在图9B的例子中,块402可以对应于图9A中描述的块400。换句话说,块402的有效系数标志可以对应于块400的量化变换系数。如图9B所示,等于“I”的块402的有效系数标志对应于块400的有效系数。类似地,等于“O”的块402的有效系数标志对应于块400的零、或非有效系数。在该例子中,根据Z字形扫描次序,与块400内的最低有效系数相对应的块402的有效系数标志是位于块402内的位置408中的、等于“I”的有效系数标志。
[0082]图9C图示了最低有效系数标志数据的例子,例如,如前所述,以图或框形式表示的最低有效系数标志。在图9C的例子中,块404可以分别对应于图9A和图9B中所述的块400和块402。换句话说,块404的最低有效系数标志可以对应于块400的量化变换系数,以及对应于块402的有效系数标志。如图9C所示,根据Z字形扫描次序,位于块404内的位置410中的、等于“I”的块404的最低有效系数标志对应于块400的最低有效系数,以及对应于等于“I”的块402的有效系数标志的最后一个。在任何情况下,块402的有效系数标志和块404的最低有效系数标志可以统称为用于块400的SM数据。
[0083]如上所述,使用与该块相关联的扫描次序,通过如在图9B所示的块402中所述,将用于块的有效系数标志从二维块表示串行化成一维阵列,可以指示用于视频数据的块的有效系数位置信息。在图9A-9B所示的块400-402的例子中,再次假定Z字形扫描次序,通过将块402的有效系数标志串行化成一维阵列,可以指示用于块400的有效系数位置信息。即,可以根据Z字形扫描次序,通过生成块402的有效系数标志的序列,指示用于块400的有效系数位置信息。
[0084]在该例子中,所生成的序列可以对应于值“111111”,表示根据Z字形扫描次序的块402的前6个有效系数标志。应注意到所生成的序列可以包含与块400内的块位置的范围相对应的有效系数标志,从按Z字形扫描次序的第一块位置开始(例如,DC位置或最左最上角)以及以与根据Z字形扫描次序的块400的最低有效系数相对应的块位置结束(例如,对应于块404的等于“I”的最低有效系数标志)。
[0085]也如上所述,使用与该块相关联的扫描次序,通过将用于该块的最低有效系数标志从如在图9C所示的块404所述的二维块表示串行化成一维阵列,可以指示用于该块的最低有效系数位置信息。在图9A-9C所示的块400-404的例子中,再次假定Z字形扫描次序,通过将块404的最低有效系数标志串行化成一维阵列,可以指示用于块400的最低有效系数位置信息。即,根据Z字形扫描次序,通过生成块404的最低有效系数标志的序列,可以指示用于块400的最低有效系数位置信息。在该例子中,所生成的序列可以对应于值“000001”,表示根据Z字形扫描次序的块404的前6个最低有效系数标志。
[0086]图10是图示使用传统Z字形扫描次序扫描的视频数据的块的例子的概念图。如图10所示,视频数据的8X8块,例如宏块,或CU的TU,可以包括用圆表示的相应块位置中的64个量化变换系数。例如,块500可以包括使用先前所述的预测、变换和量化技术生成的64个量化变换系数,再一次,其中,用圆表示每一相应块位置。对该例子,假定块500具有2NX2N的大小,其中,N等于4。因此,块500具有8X8的大小。
[0087]如图10所示,与块500相关联的扫描次序是传统的Z字形扫描次序。Z字形扫描次序以如由图10的箭头所示的对角方式来扫描块500的量化变换系数。[0088]图11是图示使用Z字形扫描次序扫描的视频数据的块的另一例子的概念图。如图11所示,块600可以包括如箭头所示,以及如上参考图10所述,根据Z字形扫描次序,从O至15排序的16个块位置。16个块位置中的每一个可以包含量化变换系数,如上参考图9A所示。还如图11所示,与位置“O”和“I”相对应的、根据Z字形扫描次序的块600内的第一和第二位置可以分别称为共同位置606和共同位置608。在一些例子中,共同位置606,608中的一个或多个可以与根据另一扫描次序的视频数据的另一块内的第一和第二块位置重合。
[0089]如上所述和参考图10和11所示,使用Z字形图案来扫描视频数据的块,由此以对角扫描每一块位置,然后,当达到对角的末端时,扫描改变方向并且继续直到达到第二对角的末端为止,此时,扫描再次改变方向等等。尽管该Z字形扫描可以捕捉视频数据的每一块,但整个扫描有点慢,因为每一块必须等待它之前的块完成扫描。例如,块612必须等待块610扫描,而块610必须等待块608扫描,块608必须等待块606扫描。因此,扫描块600中的所有块的时间至少是扫描每一单个块606、608、610等等花费的时间的总和。由此,对每一随后块的在先块存在依赖性。因此,使用Z字形扫描,数据或并行数据集合的并行处理是不可能的。
[0090]方波前扫描或固定对角扫描已经引入HEVC,如图12所示,同样参见V.Sze和M.Budagav i, ^ CE 11: Paral lelization of HHI_TRANSF0RM_C0DING (来自 C227 的固定对角扫描)”,JCTVC-F129,2011年7月,通过引用将其合并于此。不是使用传统的Z字形扫描,例如,当使用CABAC时,所有扫描线具有相同的对角扫描方向。该扫描的好处在于对在前解码数据块或格(bin)不再具有依赖性。至此,波前扫描不仅限于方块,如图12所示。
[0091]如上所述,HEVC的优点中的一个是视频块可以对应于编译单元,例如,LCU或编译单元的分块,并且不受大小限制。这是期望的,因为如图1所示,帧通常是矩形形状,或特征化为NXM,其中,在垂直方 向具有N个像素,以及在水平方向具有M个像素,其中,N和M表示不相等的非负整数值。例如,仍然参考图1,N等于8以及M等于12。
[0092]通常,当帧为矩形时,其分块,或子块也很可能变为矩形。在HEVC中,可以利用矩形PU,因为它们通常对矩形对象具有更好的预测。类似地,矩形变换可以用于更好压缩矩形或方形预测残差。因此,用于可以利用并行数据集的矩形子块的有效扫描图案是期望的。
[0093]此外,近来已经提出矩形变换来实现用于HEVC的较高编译效率。用于该较高编译效率的一种可能解释是矩形变换可以给出残差编译的更多选择。例如,如果根据给定或预定准则,应当使用方形变换或矩形变换,编码器可以自适应选择,使得可以实现较高压缩效率。例如,参见 Y.Yuan, X.Zheng, X.Peng, J.Xu, L.Liu, Y.Wang, X.Cao, C.Lai, J.Zheng, Y.He,和 H.Yu, “CE2:Non-Square Quadtree Transform for symmetric motionpartitions, ”JCTVC-F410, 2011 年 7 月;Y.Yuan, X.Zheng, X.Peng, J.Xu, 1.-K Kim, L.Liu, Y.Wang, X.Cao, C.Lai, J.Zheng, Y.He,和 H.Yu,uCE2:Non-Square Quadtree Transformfor symmetric and asymmetric motion partitions,,,JCTVC-F412,2011 年 7 月;以及 L.Guo, J.Sole, R.Joshi, P.Chen, X.Wang,和 M.Karczewicz, “Non-Square Transformfor2NxN and Nx2N Motion Partitions, ” JCTVC-F563, 2011 年 7 月,其每一个通过引用合并于此。
[0094]因此,提出将波前扫描用于矩形变换,其中,所有扫描线均是同一扫描方向。波前扫描的扫描方向可以是任何角度Θ。图13A-D图示了允许对在0°、45°、-90°和-135°的Θ,矩形块或子块的有效扫描的这样的示例扫描图案。
[0095]矩形波前扫描的四种具体变形表示如下。图14图示了具有45°扫描方向的整个正向矩形波前扫描的例子,其中,从左下到右上,处理每一扫描线上的量化变换系数。图15图示了具有45°扫描方向的整个反向矩形波前扫描的例子,其中,从左下到右上,处理每一扫描线上的量化变换系数。图16图示了具有-135°扫描方向的整个正向矩形波前扫描的例子,其中,从右上到左下,处理每一扫描线上的量化变换系数。图17图示了具有-135°扫描方向的整个反向矩形波前扫描的例子,其中,从右上到左下,处理每一扫描线上的量化变换系数。
[0096]从回顾图14-17,应当清楚每一扫描线与前一扫描线相对无关,例如,具有小的依赖性。应当理解,可能存在一些延迟,尽管延迟可能相对小。这些延迟可能是由于每一线之间的小依赖性,然而,与其他扫描,例如Z字形相比,延迟可能小。因此,可以几乎同时扫描每一线,意味着处理数据块数据所需的总时间可以是扫描单一扫描线花费的时间长度的函数,例如,具有一些延迟量。然而,可能会有限制,在第一扫描线的扫描已经开始后,开始第二扫描线的扫描是期望的,使得在第一扫描线中已经扫描紧跟或接近第二线中的块的块。例如,对正向扫描,例如,波前或Z字形,可能期望首先解码左邻居,因为它可以用于其紧右边的位置的上下文建模。类似地,对反向扫描,可能期望首先解码右邻居,因为其可以用于其紧右边的位置的上下文建模。应意识到通过几乎同时,例如,差不多并行地扫描多线,可以实现用于熵编码的读出的更好速度。另外,至少部分由于扫描数据的并行处理,增加计算复杂度效率。
[0097]一般来说,TU内的高频变换系数具有比DC或低频变换系数更小的能量。通常,例如,用于变换系数的高频和低频是相对概念。高频是指改变更快速的频率分量,而低频是指改变不太快速的频率分量。特别地,在视频压缩中,在变换(例如DCT)之后,DC是左上位置(0,0位置)的分量。低频是左上角的分量以及高频是右下角的分量。
[0098]所述的另一种方法,在离散余弦处理(DSP)中,通常将空间域中的NXM样本的块变换成变换域中的NXM系数的块。每一变换系数表示在用于该块的某一频率的能量。自然视频图片中的块通常在低频中具有更多能量以及在高频中具有更少能量。那是我们通常在自然视频图片中的块看到大的低频系数和小的高频系数的原因。
[0099]因此,在量化后,许多高频系数变为0,如上所详细解释的。良好设计的熵代码利用量化变换系数的这一特性。在一些实施例中,我们可以假定在正向扫描的意义上,指定最后一个非零量化变换系数。如上图9的论述中所解释的,这能使用有效系数标志来实现。
[0100]如果使用正向扫描,则一旦遇到最后一个非零量化系数,不需要沿扫描路径进一步编译。另一方面,如果使用逆向或反向扫描,编译可以从最后一个非零系数开始。使用不同方法,可以编译特定(正向或反向)扫描上的最后一个非零系数的位置信息。例如,可以使用诸如last_significant_coeff_flag的标志来指示非零系数是否是最后一个。替代地,可以编译最后一个非零系数的坐标,last_significant_coeff_x和last_significant_coeff_y,如在 J.Sole, R.Joshi, M.Karczewicz, “CE11:Parallel Context Processing forthe significance map in high coding efficiency,,,JCTVC-E338,2011 年 3 月中所述,通过引用将其合并于此。[0101]在最后一个非零量化变换系数终止或开始的矩形波前扫描的四种具体变形表示如下。图18图示了具有45°的扫描方向的部分正向矩形波前扫描的例子,其中,从左下到右上处理每一扫描线上的量化变换系数。在该例子中,该过程在最后一个非零量化变换系数停止。图19图示了具有45°的扫描方向的部分逆向矩形波前扫描图案的例子,其中,从左下到右上处理每一扫描线上的量化变换系数。在该例子中,该过程从最后一个非零量化变换系数开始。图20图示了具有-135°的扫描方向的部分正向矩形波前扫描的例子,其中,从右上到左下处理每一扫描线上的量化变换系数。在该例子中,该过程在最后一个非零量化变换系数停止。图21图示了具有-135°的扫描方向的部分逆向矩形波前扫描的例子,其中,从右上到左下处理每一扫描线上的量化变换系数。在该例子中,该过程从最后一个非零量化变换系数开始。
[0102]图14-17和18-21的比较表明主要不同在于图18_21仅扫描到最后一个非零量化变换系数为止或仅在最后一个非零量化变换系数开始扫描。因此,应当理解,图18-21通常将具有更少系数来扫描和编译,比图14-17提供提高的效率(例如,位节省)。
[0103]在下文示出表1-12,表1-12指示不同大小的矩形块中的扫描索引和坐标之间的映射。在其他例子中,块可以具有比表1-12中列出的块的大小更小或更大的大小,以及可以包括更多或更少的量化变换系数和相应的块位置。在这些例子中,与块相关联的扫描次序可以以与图14-17和18-21的矩形块的例子中所示的基本相同的方式来扫描块的量化变换系数,例如,可以在先前所述的扫描次序的任何一个后,扫描所述块。
[0104]用于整个8X2波前扫描图案的例子
[0105]表1整个8X2波前扫描图案
【权利要求】
1.一种用于编译具有多个图片的数字视频序列的方法,所述方法包括步骤: Ca)将所述多个图片中的至少一个分成块, (b)对所述块中的至少一个执行矩形变换以产生一个或多个变换系数, (c)对所述一个或多个变换系数执行量化,以及 Cd)沿编译扫描次序,一次一个地编码所述一个或多个变换系数,以生成压缩位流, 其中,所述编译扫描次序包括正向波前扫描次序或逆向波前扫描次序,以及 其中,所述量化导致产生量化的变换系数。
2.如权利要求1所述的方法,进一步包括: 将步骤(a)的所述块划分成更小的子块。
3.如权利要求1所述的方法,其中,所述正向波前扫描次序被配置成在第一非零变换系数或DC系数处开始扫描。
4.如权利要求1所述的方法,其中,所述逆向波前扫描次序被配置成在最后一个非零变换系数处开始扫描。
5.如权利要求1所述的方法,其中,将所述矩形变换应用于比128X 128像素小的块上。
6.如权利要求1所述的方法,其中,所述一个或多个变换系数存在于变换块中,使得存在多行变换系数,进一步包括: 并行地编码至少两行变换系数。
7.如权利要求6所述的方法,其中,在单一方向上执行所述编码。
8.如权利要求1所述的方法,其中,在具有处理器和耦合到所述处理器的存储器的计算机上实施所述方法,其中,使用所述处理器执行步骤(a)至(d)中的至少一些。
9.一种用于编译具有多个图片的数字视频序列的装置,所述装置包括视频编译器,所述视频编译器被配置成: 将所述多个图片中的至少一个分成块, 对所述块中的至少一个执行矩形变换以产生一个或多个变换系数, 对所述一个或多个变换系数执行量化,以及 沿编译扫描次序,一次一个地编码所述一个或多个变换系数,以生成压缩位流, 其中,所述编译扫描次序包括正向波前扫描次序或逆向波前扫描次序,以及 其中,所述量化导致产生量化的变换系数。
10.如权利要求9所述的装置,其中,所述装置包括下述中的至少一个: 集成电路; 微处理器;以及 包括所述视频编译器的无线通信设备。
11.如权利要求9所述的装置,其中,所述一个或多个变换系数存在于变换块中,使得存在多行变换系数,进一步包括两个或更多个微处理器,所述微处理器被配置成并行地操作以同时编码至少两行变换系数。
12.如权利要求9所述的装置,其中,所述正向波前扫描次序被配置成在第一非零变换系数或DC系数处开始扫描。
13.如权利要求9所述的装置,其中,所述逆向波前扫描次序被配置成在最后一个非零变换系数处开始扫描。
14.一种用于处理压缩位流的方法,所述方法包括: (a)接收压缩位流;以及 (b)处理所述压缩位流以生成矩形变换的一个或多个变换系数, 其中,沿所述矩形变换的编译扫描次序,一次一个地生成所述一个或多个变换系数,以及 其中,所述编译扫描次序包括正向波前扫描次序或逆向波前扫描次序。
15.如权利要求14所述的方法,进一步包括: (c)对所述一个或多个变换系数执行解量化。
16.如权利要求14所述的方法,进一步包括: Cd)对所述一个或多个变换系数执行逆矩形变换。
17.一种用于处理压缩位流的装置,所述装置包括视频解码器,所述视频解码器被配置成: 接收压缩位流;以及 处理压缩位流以生成矩形变换的一个或多个变换系数, 其中,沿矩形变换的编译扫描次序,一次一个地生成所述一个或多个变换系数,以及 其中,所述编译扫描次序包括正向波前扫描次序或逆向波前扫描次序。
18.如权利要求17所述的装置,其中,所述装置包括下述的至少一个: 集成电路; 微处理器;以及 包括所述视频解码器的无线通信设备。
19.如权利要求17所述的装置,其中,所述正向波前扫描次序被配置成在第一非零变换系数或DC系数处开始扫描。
20.如权利要求17所述的装置,其中,所述逆向波前扫描次序被配置成在最后一个非零变换系数处开始扫描。
【文档编号】H04N19/61GK103918263SQ201280036378
【公开日】2014年7月9日 申请日期:2012年7月23日 优先权日:2011年7月22日
【发明者】娄健, 金在勋, 王利民 申请人:摩托罗拉移动有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1