将多种可变长度编码方法用于多种类型的变换系数块的视频压缩的制作方法

文档序号:7525277阅读:123来源:国知局
专利名称:将多种可变长度编码方法用于多种类型的变换系数块的视频压缩的制作方法
技术领域
本公开大体涉及图像压缩,并且具体地涉及对图像数据的块的量化变换系数的系列进行的熵编码。
背景技术
数字视频压缩的范围从对静止图像编码到对用于摄影、广播、流传输和会议应用的运动视频编码。在传统的变换编码中,由像素构成的图片被分割成块;对每个像素块进行变换;变换系数被排序并被量化;并且某种形式的可变长度编码(VLC,包括算术编码)被用来表示每块的量化变换系数的系列。在许多当前标准中,块具有固定大小,例如,对于JPEG, MPEGI, MPEG2/H. 262,MPEG4, H. 261 和 H. 263 为 8x8。虽然一些编码方法(例如 H. 264/AVC的高级规范(profile)),允许在同一图片内有两种块大小(4x4以及可选地8x8),但针对所有块的VLC方法与针对该一个图片的相同。在所有这些标准编码方法中,VLC方法是二维可变长度编码(2D VLC)或者其许多变体之一,如基于上下文的自适应二进制算术编码(CABAC)、上下文自适应可变长度编码(CAVLC)和基于上下文的2D可变长度编码(C2DVLC)。


图1示出了根据本发明实施例的简化流程图。图2示出了根据本发明实施例的简化流程图,包括利用经编码块的类别的码字提供指示。图3示出了根据本发明实施例的简化流程图,包括根据大小对块的量化系数系列分类并且对于每个大小,进一步将系列分类到针对该大小预定义的一个或多个类别之一。图4示出了根据本发明实施例的针对单个大小的单个部分的流程图。图5示出了上下文自适应位置和幅度编码(CAPAC)的低频方法的一个实施例的简化流程图。图6示出了表示为HVLC3DPA的具有3D位置和幅度编码的混合VLC的低频区域编码的一个实施例的简化流程图。图7示出了上下文自适应混合可变长度编码(CAHVLC)的一个方法实施例的简化流程图。图8示出了例如在H. 264/AVC中使用的上下文自适应混合可变长度编码(CAVLC)的概括的一个实施例的简化流程图。图9示出了根据本发明实施例的简化框图,包括被配置为实现这里描述的编码方法的装置。图10示出了根据本发明实施例的简化框图,包括被配置为对通过预定义编码方法编码的比特流进行解码的解码器。图11示出了根据本发明实施例的另一简化框图,包括被配置为实现这里描述的编码方法的解码器的装置。
具体实施例方式概述本发明的实施例包括方法、装置和编码在一个或 多个计算机可读有形介质中以执行方法的逻辑。该方法对图片的块的量化变换系数的块进行编码。量化变换系数位于有序系列(ordered series)的。该方法包括将图像数据块的量化变换系数系列分类到预定义的多种类别之一中。类别至少由该块的大小以及(通常地但不是一定地)一个或多个其它因素定义。被分类的系列通过一组预定义熵编码方法中的一种方法(例如,可变长度编码方法)被编码,该预定义熵编码方法被映射到预定义的多种类别中的每个类别。因此,本发明的实施例使用多种类型的熵编码方法来对各种类别的变换块的量化系数进行编码,类别至少由该块的大小以及(通常地但不是一定地)一个或多个其它因素定义。对于至少两种类别的不同块大小的有序系列,不同熵编码方法被映射到块的不同类别。在这里描述的一些实施例中,熵编码方法包括至少一种可变长度编码方法。一些熵编码方法中的一些缩写和说明本发明的实施例描述了各种熵编码方法,尤其是可应用于对通过变换图像数据块而获得的有序变换系数序列进行熵编码的可变长度编码方法。下面定义的缩写被用在本发明的一些实施例的可变长度编码方法的一些中。VLC:可变长度编码RL :运行长度的运行级别(run level)联合事件,非零幅度系数及其编码之前的零的长度,可能为O。LF:低频,在混合可变长度编码中通常称为低频量化系数,在混合可变长度编码中,通过断点将图像数据块的量化变换系数的有序序列分割成低频系数系列和高频有序系数系列。ID :—维2D : 二维3D :三维AVS :中国音视频编码标准,由中国音视频编码标准工作组公布作为信息技术高级音视频编码第2部分视频(AVS1-P2JQP F⑶1. O),中国音视频编码标准组(AVS),Doc.AVS-N1538, 2008 年 9 月。H. 264/AVC ITU-T Rec. H. 264,第 10 部分,现在是国际标准 IS0/IEC14496-10。注意,H. 264/AVC的高级规范允许在宏块级进行优化以使得在同一图片内,可以存在具有4x4个变换块的宏块以及具有8x8个变换块的宏块。无论变换块是4x4还是8x8的,针对图片中的块的变换系数的有序系列的熵编码都相同。DIRAC 由英国广播公司(BBC)设计和发布的开放源视频编解码。
VC-1 :运动图像和电视工程师协会(SMPTE)421M视频编解码的非正式名称。注意,VC-1包括在同一图片内允许多种变换块大小的规范的规范,例如,4x4, 4x8, 8x4和8x8变换块。然而,针对图片中的块的变换系数的有序系列的熵编码相同,而与变换块的大小无关。HVLC :混合VLC。在HVLC中,图像数据块的量化变换系数的有序序列被断点分割成至少低频系数系列(LF区域)和高频有序系数系列(HF区域)。HVLC的一个方面是这样的认识非零值系数在LF区域中可能被聚集,并且在HF区域中可能被分散或分离,以使得不同方法适用于LF和HF区域。已开发出了用于这些区域中的位置和幅度编码事件的各种方法。HVLC2DP1DA :混合VLC,其中,对由如下两个变量定义的事件进行2D位置编码例如,任何非零系数簇之前的零值的运行长度(可能为零)以及非零系数的数目;并且对簇中的非零幅度进行ID幅度编码。RL-VLC :运行级别VLC,其对位于非零值量化系数之前的零值量化系数的运行长度以及非零值量化系数的幅度级别进行联合编码。2DVLC :二维 VLC,是 RL-VLC 的另一名称。CABAC :基于上下文的自适应二进制算术编码,是针对H. 264/AVC描述的RL-VLC的变体。CAVLC :上下文自适应可变长度编码,是针对H. 264/AVC描述的RL-VLC的变体,其中,利用一维位置编码方案按逆序对4x4的块的有序量化系数进行编码以便对非零系数的位置编码。C2DVLC :基于上下文的2D可变长度编码,是针对中国AVS (中国音视频编码标准)描述的RL-VLC的变体。ICAVLC :改进的上下文自适应可变长度编码,其包括取决于待编码的零系数的数目和非零系数的数目,利用ID VLC—次一者地交替对零系数的运行长度和非零系数的运行长度进行编码,并且在替代实现方式中,通过多维VLC并发地对零系数和非零系数的位置进行编码。ICAVLC可以改进CAVLC, C2DVLC和HVLC。CAPAC :上下文自适应位置和幅度编码,在一些版本中,其包括两路位置和幅度编码处理。借助于具有基于上下文、即通过可从先前编码的信息中确定的且在预测行为中有用的一个或多个信息项(例如,从先前编码的系数确定的信息)的自适应表切换的多个VLC表来对非零系数簇的位置进行排序和编码。从高频到低频按逆序对非零幅度编码,并且根据它们与零的相邻度来将它们重组为子序列。这些子序列利用具有不同维度的不同的相应(多维)VLC映射被编码。HVLC3DPA :对联合位置和幅度事件进行3D编码并对事件进行编码的混合VLC。3DPA事件由位于每个非零簇之前的零值系数的数目、每个簇的运行长度以及指示幅度为I的拖尾系数的数目的参数来定义。其余幅度通过一维VLC映射单独被编码。CAHVLC :上下文自适应混合可变长度编码。一些实施例包括HVLC3DPA的编码以及多个代码表被用于3DPA和IDA编码两者并且代码表是基于可从经编码的相邻块或者可从当前正被编码的块的经编码部分中得到的上下文信息而自适应地被选择的。Rnz, Rnz ^1:非零值系数簇中的非零幅度量化系数的数目。在一些方法中,该簇包括紧随该簇之后的单个零值量化系数。
Rz, Rz ^ O :紧邻非零值量化系数簇之前的连续零值系数的数目。2DP (Rz, Rnz)的 2D 位置编码。3DPA 由至少三个变量(通常包括Rz和Rnz)定义的3D联合位置和幅度事件。IDA ID幅度事件和该事件的编码。因此,HVLC2DP1DA是指对簇进行2D位置编码以及对幅度进行ID编码的混合可变长度编码。CA :上下文自适应,基于上下文。在这里的示例方法中,上下文是指可从先前编码的信息中确定的且在预测行为中有用的一个或多个信息项,例如,从一个或多个先前编码系数中确定的信息。一些实施例本发明的实施例包括方法、装置、编码在一个或多个计算机可读有形存储介质中 以执行方法的逻辑以及有形的,例如非暂时性计算机可读存储介质。该方法对量化系数的一个或多个有序系列编码,每个系列是通过对图像数据块进行变换,对变换系数进行排序和量化获得的。已经存在被开发用于压缩图片(例如,静止图片或运动图片)的许多基于变换的编码方法,并且在这些方法中,许多方法被标准化。通常这些方法包括将图片分割成块,将块变换成变换系数,量化变换系数,沿着2D变换域上的预定路径对变换系数排序,并且对量化变换系数的有序系列进行熵编码。可以利用运动补偿对该图片进行帧间编码,或者进行帧内编码。标准编码方法的示例包括但不限于ITU-T H. 261,ITU-T H. 263,ITU-T H. 264/AVC, AVS (中国视频编码标准),MPEG I, MPEG-2, DIRAC (由BBC设计发布的开放源视频编解码),VC-1等等。这些标准方法中的一些的更多细节请参见上节“一些熵编码方法中的一些缩写和说明”。这些编码标准中的一些将“规范”定义为可应用于一定类型的图像和/或应用的因素集。在每个规范中,块大小是固定的或者存在大于一个变换块大小的选项,但是同一熵编码方法被用于所有块大小。例如,H. 264/AVC的高级规范允许4x4或8x8像素变换块,而熵编码方法对于图片的所有块是相同的。类似地,VC-1的高级规范允许4x4,4x8, 8x4和8x8变换块,但熵编码对于图像的所有这些块是相同的。为了继续提高编码效率,新生代的编码方法正继续被开发。虽然通常将不同块大小用于运动补偿并且本公开不处理运动补偿块大小的主题,但是正提出的一种改进是在同一规范内使用被应用了变换的不同大小的图像块。根据本发明的一个方面,多种熵编码处理可用于同一规范(例如,同一图片)的图像数据的变换块的量化系数的有序系列的不同类别,其中,块的大小是类别的确定者之一。“编码处理”是指一种编码方法或者方法的组合。每个特定系列是通过沿着变换域上的所选路径,通常从低频到高频,对图像的特定像素块的量化变换系数进行排序而获得的。根据一个或多个标准(包括形成系列的块的大小),并且在一些实施例中,根据由一个或多个因素确定的系数可能如何被分布在系列中,来将每个量化系数系列分类到多个预定义类别之一。对于每个类别,所提供编码方法中的一种或多种方法的相应集合被用来对系列编码。因此,应用于任何特定数据块的一种或多种编码方法取决于块的大小,并且在一些实施例中,取决于从一个或多个因素确定的量化变换系数的分布。根据本发明的一个方面,图像数据块的量化变换系数的系列可被分类到预定义的多个类别之一中,其中,类别至少是由块的大小以及(通常地但不一定)一个或多个其它因素来定义的。被分类的系列通过预定义熵编码方法的集合中的一种方法被编码,预定义熵编码方法被映射到预定义的多种类别中的每种类别。因此,本发明的实施例使用多种类型·的熵编码方法来对各种类别的变换块的量化系数进行编码,其中,类别至少是由块的大小以及通常一个或多个其它因素来定义的。在这里描述的实施例中,至少一些熵编码方法是可变长度编码方法。图1示出了根据本发明一个实施例的方法的简化流程图,并且包括接受图像数据块的变换系数的有序系列,并且在101中,根据包括该图像数据块的大小在内的一个或多个因素将所接受的系列分类到多个预定义类别之一中。在103,该方法取决于分类而前进到一组路径中的一条路径。令Ne表示预定义类别的数目,这样的类别被表示为类别1、类别2...,类别Ne。该方法包括在105-1,105-2,105-Nc之一中,向所接受的有序系列应用多种熵编码方法之一以形成码字序列,所应用的该熵编码方法是根据所接受系列的类别的。因此,105-1包括应用针对类别I的方法,105-2包括应用针对类别2的方法,等等。对于不同大小的有序系列的至少两个类别,不同熵编码方法被应用于不同类别。块的编码产生了用于解码的比特流。解码器需要能够对该流进行解码,并且因此需要接收指示或确定任何块的比特流的类别。在一些实施例中,一幅图片或者在运动视频的情况中图片序列的块的集合的比特流包括对如下因素的指示,所述因素足以让解码器确定该比特流中的系列的任何码字序列的块集合中的每块的类别。在其它实施例中,特定块的码字序列包括对该块的类别的明确指示。虽然本领域技术人员将明白许多这样的指示可以被使用,但是在本发明的一些实施例中,该指示为前缀的形式。图2示出了根据本发明实施例的方法的简化流程图,并且除了图1的
元素 101,103 和 105-1,......,105-Nc 外,还包括在 207-1,207-2,· · ·,207-Nc 中,将
针对类别Classl,Class2. ..,Class Ne的相应前缀分别应用于从分别应用方法元素105-1,105-2,105-Nc 得到的码字。在一些实施例中,针对多个块大小,例如,预定义的一组块大小,的每个块大小,来预定义一种或多种预定义类别及相关联熵编码方法。在这样的实施例中,分类包括将系列分类到块大小,并且进一步分类到用于该块大小的一个或多个预定义类别之一内。应用多种预定义熵编码方法之一应用的是针对该预定义块大小的预定义类别的预定义熵编码方法。对于某些这样的实施例,可在两个阶段中考虑分类,第一阶段是分类到多个预定义块大小之一,并且针对每个块大小,根据一个或多个因素进一步分类到用于该块大小的一个或多个类别中。用Ns表示块大小的数目,Ns>2,并且用大小1,大小2,...大小Ns来表示块大小。图3示出了对图像数据块的量化变换系数的有序系列进行熵编码的方法的一个实施例的简化流程图,其包括接受有序系列,并且在303中将该系列分类到大小Size (大小)I, Size2, . . .,Size Ns中的块大小。对于每个块大小,该方法包括在相应块307-1,307-2,. . . , 307-Ns中将块大小分类到多种类别中,用于大小Sizel,Size2, ...,Size Ns的类别的数目被表示为Nc_l,. . .,Nc_Ns,每个这样的类别数目为I或更大。在图3中类别被示为用于大小I的类别1_1,类别Nc_l,用于大小2的类别1_2,...,类别Nc_2,以及用于大小Ns的类别l_Ns,类别Nc_Ns。在根据大小进行分类之后,并且如果该大小具有一个以上的预定义类别,则根据用于该大小的该类别,该方法包括在块309-1_1,· · ·,309-Nc_l, 309_1_2,…,309_Nc_2,· · ·,309_l_Ns,…,309_Nc_Ns之一中,应用用于该大小和该大小的类别的熵编码方法。分类并应用用于每个块大小的类别的熵编码的流程图的各部分被示为部分305-1,305-2,. . .,305-Ns。在一些实施例中,该方法包括针对图片的所有块或者图片序列的所有块形成比特流。该比特流包括针对块的系列形成的码字、对足以让解码器确定每块的大小的因素的指示、以及用于所形成的任何码字序列的块大小的类别。图3的实施例假设这样的比特流,即,该图片的比特流或者在运动视频的情况中图片序列的比特流,包括对足以让解码器确定块大小的因素的指示以及用于任何码字序列的块的大小的类别。在替代版本中,该方法包括向块的任何系列的码字添加代码,例如前缀码,以向解码器指示该块的类别。虽然在本发明的一些实施例中,当已通过大小对块分类时确定要使用不同熵编码方法中的哪种方法是根据一个或多个因素的,例如,是帧内编码还是帧间编码的、是高分辨率还是低分辨率的、图像数据块的空间复杂度、QP等等,然而,在本发明的一些实施例中,块 的每个大小被预先指派了多种预定义编码方法和用于该大小的类别,并且因此哪种熵编码方法被使用是如下确定的计算应用与用于该大小的不同类别相对应的编码处理的结果,并且将通过应用相应编码处理而获得的作为结果的压缩相比较。产生码字的最短比特流的类别被选作用于该大小的类别。该方法的流程图与图3的流程图的不同之处在于具有用于Ns个大小的每个大小的不同部分305-1,305-2,. . .,305_Ns。图4示出了根据本发明实施例的方法中用于表示为大小k的大小的表示为305-k的单个部分的流程图。部分305-k的处理在405-k中包括对于大小为Size k的块,通过用于大小k的Nc_k类别的Nc_k编码方法的每种相应编码处理来对该块进行编码的步骤406-1,406-2,. . .,406-Nc_k,并且对结果进行比较以选择提供最好压缩的方法,即,选择针对所编码的块提供最少数目的比特的方法。在步骤407中,为块选择最好类别是通过选择导致所编码数据中的最少比特的编码来实现的。选择之后,由于编码步骤已经被执行,因此步骤409应用例如作为前缀码的指示。在一些实施例中,添加前缀码可以更早执行。在部分405-k的一个版本中,对于大小为Size k的块,对系数的系列顺序地执行步骤406-1,406-2, . . .,406-Nc_k。在通过相应处理进行了每个这样的处理之后,进行比较并且维护用于产生最少数目的编码比特的那个处理的码字集,并且选择对类别的指示。当然,通过该类别的相应处理中的每个处理进行的编码可以为任何顺序。在用于该系列的每个编码处理之后,到此为止的最好结果及相应类别被存储,以使得在步骤406-1,406-2,. . .,406-Nc_k的每个之后,先前存储的结果被与新计算出的结果相比较。最后,可以得到码字和最好类别,并且指示该类别的代码被添加例如作为前缀。在替代版本中,每当在步骤中保存第一或更好结果时就添加前缀。在部分405-k的一个替代版本中,与用于大小k的每个相应类别相对应的编码处理406-1,406-2,. . .,406-Nc_k在系数系列上并行地执行。在所应用方法的结尾处,对结果进行比较并且如下类别被选择,根据该选择,相应编码处理产生最少数目的编码比特。指示该类别的代码被添加例如作为前缀。在这里描述的实施例中,熵编码方法都是可变长度编码(VLC)方法。然而,本公开不限于这些方法。VLC方法包括识别由一个或多个参数定义的事件(也称为符号),并且利用码字对事件进行编码以使得,平均而言,更有可能出现的事件通过比用于不太可能出现的事件的相应码字更短的相应码字被编码。在这里描述的实施例中,与事件相对应的码字的查找使用将事件映射到码字的一个或多个代码映射。在这里描述的实施例中,事件到码字的映射由用于查找要编码的特定事件的码字的编码表来表示,例如VLC表。然而,本领域技术人员将明白,表仅仅是可用来维护用于查找的码字的一种数据结构。因此,“表”是指用于存储从事件到码字的映射,例如以使得例如一个值或一组值之类的事件可被查找的任何数据结构。量化系数沿着预定顺序的分布可以形成非零系数的各种簇(cluster)以及未聚集(clustered)的(分离的)非零系数。聚集和未聚集的系数的分布取决于许多因素,包括空间图片块的复杂度、用于编码的比特速率、量化参数QP、块是被帧间编码还是帧内编码等等。一般地,与较小和/或不太复杂的块相比,较大的块以及对于较复杂的块可能存在更多聚集的系数。此外,经运动补偿的帧间块可能没有帧内块复杂,因此,可能具有更多的非零幅度量化系数的簇。
·
本领域技术人员还将明白,将被使用的VLC表是根据事件的统计来确定的。在不同版本中,可以基于对类似图片或图片序列的测量或者基于假设的统计来假设该统计。此外,本领域技术人员将明白,VLC表不需要仅包括可变长度码。为了减小任何特定表的大小,相对罕见的一些事件可以通过相应的固定长度码字而非可变长度码字被编码。定义待编码事件的参数取决于特定编码方法,并且可以包括例如系列中位于一个或多个非零值系数的簇之前的连续零值系数的数目,和/或簇中的连续非零值系数的数目等等,如这里描述的一些VLC方法所说明的。更详细的一些编码方法虽然本示例实施例使用这样的VLC方法作为HVLC及其变体以及RL-VLC及其变体,但是本公开不限于使用这些用于熵编码的方法。本公开包括有关对不同类别的块的变换系数进行编码的任何不同熵编码方法,例如VLC方法,类别至少由块的大小来定义。本公开不限于用于不同类别的块的任何特定的熵编码方法。然而,这里描述的示例实施例使用了一些已知VLC方法,并且在此简要描述这些方法中的一些。参见“熵编码方法的一些缩写和说明”章节。混合VLC混合可变长度编码(混合VLC,HVLC)包括将该系列分割到第一区域,例如低频区域(可能为整个系列)以及可能的高频区域,高频区域也可为整个系列,其中每个区域根据不同编码方法被编码。在一些实施例中,存在两个以上的区域,第一区域是低频区域。对于这里的描述,假设了最多两个区域。本领域技术人员从这里的描述以及所引用参考文献中的描述将明确如何将方法修改用于多于两个区域的情况。低频区域是在其中非零值系数有可能被聚集成连续非零值系数簇的区域,并且高频区域是在其中非零值系数可能是稀疏的并且被分离的区域。不同VLC方法被用于对低频区域和高频区域进行编码。划分界限由断点来定义。因此,针对HVLC及其变体设计的低频区域VLC编码方法可能对于对聚集的变换系数进行编码特别有益,而高频VLC编码方法,例如,RL-VLC及其变体,可能对于对非聚集或分离的系数进行编码更有益。如果HVLC,例如,诸如上下文自适应HVLC (CAHVLC)之类的其变体之一,被应用于对其中更可能形成簇的较大变换块的系数进行编码,并且RL-VLC或者诸如CABAC (基于上下文的自适应二进制算术编码)或CAVLC (上下文自适应RL-VLC)之类的其变体之一被应用于对较小变换块的系数进行编码,则可以提高编码效率。低频区域编码方法包括对连续非零值系数的簇的位置进行编码以及对低频区域(其可能是整个系列)中的非零值系数的幅度进行编码。HVLC的一些变体中的一些低频编码方法包括对位置和幅度联合地进行编码。HVLC的一些变体中的一些低频编码方法包括考虑到幅度I是簇中最可能出现的非零幅度,因此,对非幅度I非零系数的位置进行编码。在HVLC的许多实施例中,断点是“软”的,因为如果断点被确定为在簇的中间,则 断点被移动以使得低频区域在该簇的结尾处结束。在许多低频区域方法中,簇的编码包括对紧随该簇之后的单个零值系数进行编码。在许多高频区域编码方法中,另外的二进制值参数被用来指示待编码事件中的非零值系数是否是该有序系列中的最后的非零值系数。CAPACCAPAC的实施例中的VLC编码方法包括对于量化系数系列的两路位置和幅度编码处理。图5示出了 CAPAC的低频方法的一个实施例的简化流程图,并且包括在503中,利用诸如VLC表之类的多个VLC编码映射,包括基于上下文的例如VLC表之类的编码映射之间的切换,来对图像数据块的量化变换系数的有序系列中的非零值系数的位置进行编码。该方法还包括在505中,按该系列的原始顺序的逆序利用可变维度幅度编码来对非零值系数的幅度进行编码。该方法还包括在507中,对非零值系数的符号进行编码。这些编码产生码字。一个实施例还包括在50中将码字联接起来。用于位置编码的上下文包括可从一个或多个先前编码事件(例如,位置事件或幅度)得到的一个或多个参数,以使得对当前事件(例如,位置事件或(一个或多个)幅度)进行编码的编码处理可以在对当前事件进行编码时得到该上下文。在一个CAPAC实施例中,该上下文的一个或多个参数包括最有可能出现的幅度的最大运行长度。在一个实施例中,上下文的一个或多个参数还包括或者取代地包括与最有可能出现的幅度以外的幅度的最近运行长度。在一个实施例中,上下文的一个或多个参数还包括或者取代地包括正被编码的系数的相对频率,例如,指示正被编码的系数的相对频率的已被编码的系数总数。在CAPAC的一个实施例中,可变维度幅度编码使用各自将事件映射到码字的多种可变长度编码映射,并且包括基于上下文的在编码映射之间的切换。在一个实施例中,编码映射的切换所基于的上下文的一个或多个参数包括先前编码的最大幅度。HVLC3DPA图6示出了 HVLC3DPA (即,具有3D位置和幅度编码的HVLC)的低频区域编码的一个实施例的简化流程图。该方法包括在603中,结合指示在非零系数簇中具有幅度I的拖尾系数的数目的参数,将非零值量化系数的每个簇的运行长度和每个簇的之前的零系数的运行长度一起编码为一对。在605中通过一维VLC映射(例如编码表),来单独对其余幅度编码。该方法包括在607中对符号进行编码,以及在609中在该系列中存在多于一个区域的情况下,对其余区域中的系数进行编码。对于记号,考虑将HVLC3DPA (即,具有3D位置和幅度编码的HVLC)用于一个序列或其一部分的情况。在该情况中,C3d表示用于由非零值系数的簇(包括紧随该簇之后的零值系数)定义的事件的3DPA码字,对于块中的第一事件表示为C3D(R^RnzJDLn)形式,对于其他表示为C3D (Rz-l,Rnz, T1, Ln)形式,其中Rz表示位于该非零簇之前的零值系数的运行。Rnz表示连续非零值系数的运行。T1表示在该非零系数簇中幅度为I的拖尾系数的数目。
Ln表示指示其是否是该有序序列中的最后一个非零系数的二进制值。在该记号中,Ln=I指其是最后一个非零值系数。Ca (Level)表示针对幅度值Level (级别)的一维幅度码字,Level表示所有其余非零系数的幅度。一个例外是紧邻拖尾的I之前的系数的幅度被减少1,因为该幅度必定大于I。作为示例,考虑有序系列9-53-2100211000-1100110. · ·其被分类为利用HVLC3DPA的低频区域被编码,即,断点被设置为使得仅存在低频区域。忽略用于系数的符号的代码,该系列通过如下码字序列被编码C3d (0,5,1,O) Ca (9) Ca (5) Ca (3) Ca (I) C3d (1,3,2,O) Ca (I) C3d (2,2,2,O)C3d(1,2,2,0)...CAHVLC在一些实施例中,CAHVLC将在HVLC3DPA中描述的VLC方案与CAPAC的上下文自适应本质结合起来。图7示出了量化变换系数的有序系列的CAHVLC的一个方法实施例的简化流程图。该方法包括在703中,除非仅存在一个区域,否则定义将系列分割成第一(低频)区域和第二(高频)区域的断点。该方法还包括在第一(低频)区域中,对有序系列进行编码,该有序系列被编码为前面是运行长度为Rz,Rz ^ O的多个连续的零并且后面跟随着一个零的、运行长度为Rnz, Rnz彡I的连续非零值系数的簇的序列。例如,系数序列9530130010. · ·(全O)被编码为三个系数簇9530,130和010。在705,在第一区域中,该方法包括对事件的位置进行编码,每个事件包括Rnz,Rnz ^ I的非零值量化系数,该编码使用多个预定VLC映射,例如,VLC表,包括首先选择初始位置VLC映射,然后根据一个或多个位置VLC选择标准(包括至少一个基于上下文的标准)在位置VLC映射之间进行切换。针对低频区域中的所有事件重复此操作。该方法包括在707中,对于第一区域,如果事件的位置编码留下了待编码的任何非零幅度值,则根据多个预先选择的幅度VLC映射(例如VLC表)之一(包括首先选择例如表之类的幅度VLC映射,并且然后根据一个或多个幅度VLC选择标准(包括至少一个基于上下文的标准)在多个幅度VLC映射之间进行切换),来按该系列的原始顺序的逆序来对簇或区域中的待编码非零幅度值的幅度进行编码。针对所有簇重复此操作。在709,该方法包括对符号进行编码,并且在711,将码字联接起来。在该系列中存在一个以上的区域的情况中,例如,对于混合可变长度编码,该方法包括在713中对其余(一个或多个)区域中的系数进行编码。
在一个版本中,每个系数簇由后面跟随有一定数量的一维幅度(IDA)事件的一个三维位置幅度(3DPA)事件来表示。每个3DPA事件具有(Rz,Rnz, T1)形式,其中Rz,Rnz分别是零和非零的运行长度,并且T1 ( Rnz是该簇中具有大小I的拖尾系数的数目。例如,系数簇000621110将由具有两个其余幅度(6和2)的3DPA事件(3,5,3)来表示;另一簇000612110将由具有三个其余幅度(6,I和2)的3DPA事件(3,5,2)来表示。每个簇中T1个拖尾I之外的大小按逆扫描顺序通过IDA被编码。换言之,编码开始于该簇中紧邻T1个拖尾I之前的非I系数,并且向较低频率移动。例如,对于系数簇000612110,三个其余幅度(6,1,2)需要另外的一维幅度编码。多个编码表被用于3DPA和IDA编码两者,并且编码表基于可从经编码的相邻块或可从当前正被编码的块的经编码部分得到的上下文信息而自适应地被选择。在CAHVLC中,三个上下文在预测系数分布和确定VLC表时被采用(I)相邻块中的非零系数数目,被用来预测当前块中的非零系数数目;(2)当前块中的先前编码系数簇中的非零运行和零运行的
运行长度;(3)当前块(按逆序)的每个非零簇中的先前编码的非零系数的大小。CABAC, CAVLC 和 C2DVLC由于CABAC和CAVLC在公知的广泛使用的H. 264/AVC标准中有所描述,因此在这里不提供这些方法的详细描述。类似地,C2DVLC是针对中国的AVS (中国音视频编码标准)描述的RL-VLC的变体。CAVLC利用经量化的4x4块的若干特性,包括有序系列通常是稀疏的,主要包含零。CAVLC使用运行级别编码来紧凑地表示零的运行。CAVLC还使用如下观察结果次序中最高的非零系数常常具有幅度I。高频幅度I系数的数目被称为“拖尾1”,并且以紧凑方式被编码。一种实现方式仅允许多达三个拖尾I。任何更多的拖尾I被视为它们具有大于I的非零幅度。CAVLC还有利地利用相邻块中的非零系数的数目是相关的。利用查找表来对系数的数目进行编码;查找表的选择取决于相邻块中非零系数的数目。CAVLC还有利地利用非零系数的大小在接近DC系数的有序序列开头处往往较高,往更高频率则较低。CAVLC通过依据最近被编码的级别大小针对“ level ”参数适配VLC查找表的选择来利用这一点。图8示出了用于对量化变换系数的该有序序列进行编码的CAVLC的概括的一个实施例的简化流程图,并且包括在803中,形成由非零系数的数目和拖尾的幅度I系数的数目定义的联合事件。最后三个以外的任何拖尾的幅度I都被作为非幅度I系数对待。该方法还包括在805中,例如利用第一 VLC方法,例如,利用第一 2D VLC表,来对联合事件进行编码,并且在807中,对每个拖尾I的符号进行编码。该方法还包括在809中,利用级别编码方法(例如,可变长度编码(VLC)方法)例如,使用从多个(例如7个)VLC表中选择的VLC表,按逆序来对其余非零系数的值进行编码,以依据每个相继编码值的大小来适应性地对每个值编码。这就是所谓的上下文自适应性质。该方法还包括在811中,对最后一个系数之前的零的总数进行编码,在一种实现方式中该编码使用VLC。该方法还包括在813中,通过从最高频率开始按逆序对每个非零系数之前的零的数目(Rz,运行长度)进行编码来对非零系数的位置进行编码,除非(a)如果没有待编码的零剩下,则不需要对任何更多的Rz值进行编码,并且不需要对最后的(最低频率)非零系数进行编码。在一个版本中,位置的编码使用位置编码方法,通常,该方法是利用VLC表对在前的零的运行长度进行编码的VLC编码方法。VLC是取决于(a)尚未被编码的零的数目和(b)Rz的值来选择的。该方法还包括在815中,将通过编码产生的码字联接起来以形成用于该有序系数序列的一组码字一比特流。如果存在另外的区域,则该方法包括对这些区域中的量化系数进行编码。CAVLC的一种改进包括针对第一位置编码方法的、在非零系数的位置的编码中称为“混合运行长度位置编码”的方法。取代仅对零的运行长度进行编码,一种混合编码方法实施例包括依据留待编码的零系数和非零系数的数目,对一连串零系数的运行长度或一连串非零系数的运行长度中的总有一个进行重复编码。
对于记号,考虑被分类为使用将RL-VLC用于第二高频区域的HVLC的有序系列,例如,考虑在H. 265/AVC中使用的CAVLC被用于(可以为整个系列的)该系列的高频区域的类别。对于该区域Cel(Rz, Level, Ln)表示由三个参数定义的事件的码字,其中Rz :表示位于非零值系数之前的连续非零系数的运行长度,可能为O。Level (级别)表示紧随在前的零值系数的运行之后的非零系数的幅度。Ln表示指示其是否是该有序系列中的最后一个非零系数的二进制值。在我们的记号中,Ln=I是指其是最后的非零值系数。例如,考虑被分类到使用HVLC3DPA且将CAVLC用于高频区域的类别中的有序系列,并且考虑示例有序系列9-53-2100211000-1100010.··假设断点被设在14处,并且其是软断点,因为其并不打断一个簇。忽略用于符号的码,码字序列为C3d (O, 5,I, O) Ca (9) Ca(5) Ca (3) Ca(I) C3d (I, 3,2,O) Ca(I) C3d (2,2,2,O) Cel (2,I, I)...作为另一示例,考虑被分类为使用将RL-VLC用于第二高频区域的HVLC的有序系列,例如,考虑在AVS中使用的C2DVLC被用于(可以为整个系列的)该系列的高频区域的类别。对于这样的区域,码字的记号与CAVLC的相同,差别在于在AVS中,(2D变换域中的扫描)顺序是从高频到低频的逆方向。系列中的指示符号和最后一个非零系数本领域技术人员将明白,存在用于指示有序系列中的每个非零值系数的符号的许多方式。在这里提供的任何示例中未示出指示符号的任何码字。本领域技术人员还将明白,存在用于指示系列中的最后一个非零值系数的许多方式。一种方法使用特殊码字来指示系列的末尾,即,指示系列的其余部分仅具有零值系数。另一方法向每个正被编码的事件添加二进制值指示符以指示该事件是否是具有非零值系数的最后一个事件,即,该有序系列的其余部分仅由零组成。当后一方法被使用来例如对3DPA事件进行编码时,存在四个参数而非三个参数,表示为Ln的最后一个参数是有序系列的其余部分仅包括零值系数的指示符。类似地,在这里的CAVLC示例中,由Rz和Level定义的2D RL事件包括表示为Ln的第三参数以指示该事件包括该有序系列中的最后一个非零幅度。本领域技术人员将明白,通常,为了缩短编码映射的大小,例如,VLC表的大小,一些码字可以通过后面跟随着不涉及表查找的所计算出的码字的“逃脱”码来从事件中被确定。这样的方法符合本发明的实施例。
可通过以下示例来最好地图示说明本发明的各方面 一些示例分类和用于其的编码方法在以下示例中,考虑如下变换编码方法,该方法将多种不同块大小用于变换,例如32x32,16x16,8x8,4x4 的 4 种块大小或 64x64,32x32,16x16,8x8,4x4 的 5 种块大小,或者不需要块为正方形的另外的多种大小。根据本发明一个实施例的方法包括将图片的每个块分类到多种预定义块类别之一,并且对于任何块类别,使用为该块大小预定义的熵编码方法(例如,VLC方法),以使得多种熵编码方法被用于具有多种块类别的块的图片。分类到块大小至少是根据块的大小进行的。对于每个被分类的块,相应编码方法可以包括HVLC,其中,量化变换系数的有序系列根据该系列中的非零值系数的分布以及用于对每个区域中的量化系数进行编码的不同编码方法而被分割成两个或两个以上的区域。在以下示例中,下面的VLC方法用于不同类别,多于一种方法被用于为其使用了HVLC的变体之一的类别,并且存在由(软)断点划界的低频区域和高频区域,以使得界线从 不位于非零值系数簇的中间。具有64x64大的块大小的分类示例类别号1块大小64χ64(16η χ16η)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度,并且它们在频谱的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法针对整个系列,即,整个频谱的CAHVLC。注意高分辨率视频往往使用大的块大小。类别号2块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度,并且它们在频谱的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法针对整个系列的CAHVLC,但是具有与针对64x64块大小的类别不同的VLC表。注意高分辨率视频往往使用大的块大小。类别号3块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有小的幅度,尤其是幅度I为主,并且这些非零系数在该系列(频谱)的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、复杂场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法针对整个系列的HVLC3DPA。
注意高分辨率视频往往使用大的块大小。示例序列:9-53-2100211000-1100110.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca(I) C3d (2,2,2,O) C3d (1,2,2,0)...类别号4块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数 具有大的幅度并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法HVLC,具体地,针对低频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的在H. 264/AVC中使用的CAVLC。注意高分辨率视频往往使用大的块大小。示例序列:9-53-2100211000-1100010.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca (I) C3d (2,2,2, O) Cel (2, I, I)...类别号5块大小16x16(4n x4n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度,并且它们在该系列,即整个频谱的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法针对整个有序系列的CAHVLC,具有与针对32x32块大小类别而使用的CAHVLC不同的VLC表。注意高分辨率视频往往使用大的块大小。类别号6块大小16x16(4n x4n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有小的幅度(尤其是以I为主)并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、复杂场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的在AVS中使用的C2DVLC。注意高分辨率视频往往使用大的块大小。示例序列:9-53-2100211000-11000000001.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca (I) C3d (2,2,2, O) Cel (7, I, I)...类别号7块大小8x8(2nx2n)
与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度,并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC2DP1DA,以及RL_VLC,具体地,用于高频区域的在AVS中使用的C2DVLC。类别号8·块大小8x8(2nx2n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有小的幅度(尤其是以I为主),并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的在AVS中使用的C2DVLC。类别号9块大小8x8(2nx2n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度并且它们在频谱的大部分中发散。确定类别的(一个或多个)示例性其它因素帧间、低分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,在AVS中使用的C2DVLC。示例序列:0000100201000-1000110.· ·码字(不包括用于符号的码)CEL(4, I, O) Cel (2, 2, O) Cel (I, I, O) Cel(3, 1,0)Cel (3, I, O) Cel(O, I, I)类别号10块大小4x4(nxn)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度并且它们在整个的有序系列中,即,在频谱的大部分中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,在H. 264/AVC中使用的CAVLC。示例序列:9-500100201000-1000110.· ·码字(不包括用于符号的码)CEL(O, 9,O) Cel (O, 5,O) Cel (2, I, O) Cel(2, 2,O)Cel (I, I, O) Cel(3, I, O) Cel(3, I, O) Cel (O, I, I)类别号11块大小4x4(nxn)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有小的幅度(尤其是以I为主)并且它们在频谱的大部分中发散。确定类别的(一个或多个)示例性其它因素帧间、低分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,CAVLC,但是具有替代编码方案以利用占主要地位的低幅度系数,例如,使用ICAVLC具有32x32大的块大小的分类示例类别号1块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数 具有大的幅度,并且它们在频谱的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法针对整个有序系列的CAHVLC。注意高分辨率视频往往使用大的块大小。类别号2块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有小的幅度(尤其是I为主),并且它们在频谱的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、复杂场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法针对整个有序系列的HVLC3DPA。注意高分辨率视频往往使用大的块大小。示例序列:9-53-2100211000-1100110.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca(I) C3d (2,2,2,O) C3d (1,2,2,0)...类别号3块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的(在H. 264/AVC中使用的)CAVLC。注意高分辨率视频往往使用大的块大小。示例序列:9-53-2100211000-110001.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca (I) C3d (2,2,2, O) Cel (2, I, I)...类别号4块大小16x16(4n x4n)
与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度,并且它们在频谱的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法针对整个有序系列的CAHVLC (具有与32x32块大小不同的VLC表)。注意高分辨率视频往往使用大的块大小。类别号5块大小16x16(4n x4n) 与典型的这样的量化系数系列有关的观察沿着预定路径的大多数非零系数具有小的幅度(尤其是以I为主)并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、复杂场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的(在AVS中使用的)C2DVLC。注意高分辨率视频往往使用大的块大小。示例序列:9-53-2100211000-11000000001.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca (I) C3d (2,2,2, O) Cel (7, I, I)...类别号6块大小8x8(2nx2n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度,并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC2DP1DA,以及RL_VLC,具体地,用于高频区域的(在AVS中使用的)C2DVLC。类别号7块大小8x8(2nx2n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有小的幅度(尤其是以I为主),并且它们在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的(在AVS中使用的)C2DVLC。类别号8块大小8x8(2nx2n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度并且它们在频谱的大部分中发散。
确定类别的(一个或多个)示例性其它因素帧间、低分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,(在AVS中使用的)C2DVLC。示例序列:0000100201000-1000110.· ·码字(不包括用于符号的码)CEL(4, I, O) Cel (2, 2,O) Cel (I, I, O) Cel(3, I, O)Cel (3, I, O) Cel(O, I, I)类别号9
块大小4x4(nxn)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有大的幅度并且它们在频谱的大部分中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率/低QPo 用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,(在H. 264/AVC中使用的)CAVLC。示例序列:9-500100201000-1000110.· ·码字(不包括用于符号的码)CEL(O, 9,O) Cel (O, 5,O) Cel (2, I, O) Cel(2, 2,O)Cel (I, I, O) Cel(3, I, O) Cel(3, I, O) Cel (O, I, I)类别号10块大小4x4(nxn)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数具有小的幅度(尤其是以I为主)并且它们在频谱的大部分中发散。确定类别的(一个或多个)示例性其它因素帧间、低分辨率、简单场景、低比特速
率/高QP。用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,CAVLC,但是具有替代编码方案以利用占主要地位的低幅度系数,例如,使用ICAVLC。具有32x32大的块大小和五个类的分类示例类别号1块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数在频谱的大部分中聚集。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、复杂场景、高比特速率、低QPo用于该类别的(一个或多个)预定义编码方法将HVLC3DPA用于针对整个有序系列的HVLC。示例序列:9-53-2100211000-1100110.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca(I) C3d (2,2,2,O) C3d (1,2,2,0)...类别号2
块大小32x32(8nx8n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧间、高分辨率、复杂场景、低比特速率、高QPo用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC3DPA,以及用于高频区域的RL_VLC。9-53-2100211000-1100010. · ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca (I) C3d (2,2,2, O) Cel (2, I, I)... 类别号3块大小16x16(4n x4n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的非零系数在低频区域中聚集并在高频区域中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、复杂场景、高比特速率、低QPo用于该类别的(一个或多个)预定义编码方法HVLC,具有用于低频区域的HVLC3DPA,以及用于高频区域的RL_VLC。示例序列:9-53-2100211000-1100010.· ·码字(不包括用于符号的码)C3D(0,5, 1,O)Ca(9)Ca(5)Ca⑶Ca⑴C3d(1,3,2,O)Ca (I) C3d (2,2,2, O) Cel (2, I, I)...类别号4块大小8x8(2nx2n)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数在频谱的大部分中发散。确定类别的(一个或多个)示例性其它因素帧间、低分辨率、简单场景、低比特速率、高QPo用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,(在AVS中使用的)C2DVLC。示例序列0000100201000-1000110...(从高频到低频的量化系数的逆序)码字(不包括用于符号的码)CEL(4, I, O) Cel (2, 2,O) Cel (I, I, O) Cel(3, I, O)Cel (3, I, O) Cel(O, I, I)类别号5块大小4x4(nxn)与典型的这样的量化系数系列有关的观察沿着该系列的顺序的大多数非零系数在频谱的大部分中发散。确定类别的(一个或多个)示例性其它因素帧内、高分辨率、简单场景、低比特速率、高QPo用于该类别的(一个或多个)预定义编码方法针对整个有序系列的RL_VLC,具体地,(在H. 264/AVC中使用的)CAVLC。示例序列:9-500100201000-1000110.· ·码字(不包括用于符号的码)CEL(O, 9,O) Cel (O, 5,O) Cel (2, I, O) Cel(2, 2,O)Cel (I, I, O) Cel(3, I, O) Cel(3, I, O) Cel (O, I, I)解码虽然以上描述的主要是编码方法,但是本领域技术人员将明白,本描述还涉及对由这里描述的任何编码实施例编码的比特流进行解码的解码方法和装置。该解码方法包括接受包含有通过上述编码方法编码的码字的比特流,包括识别该比特流中的码字并且对码字进行解码。利用VLC映射,例如,VLC表来对码字进行解码。此外,解码方法包括将块的
码字分类到相应类别中或者识别类别所包括的代码,以使得解码是针对该类别的预定义编码方法的。对于上下文自适应VLC方法,根据在编码中使用的一个或多个基于上下文的选择标准来选择用于解码的VLC表。由于任何经解码的信息项可由编码器在解码处理中使用,因此在码字的解码期间,任何基于上下文的选择标准是已知的或者可从一个或多个先前解码信息项得到。例如,任何表切换使用例如与正被编码的块相邻的(一个或多个)块的先前解码系数的信息和/或正被解码的块内的先前解码系数的信息,根据与编码方法使用的相同标准将用于特定码字的VLC表包括在解码方法中。在针对某类别的预定义编码方法是混合方法以使得该系列包括第一(低频)区域和一个或多个其它区域的情况中,编码方法包括对所有区域进行编码。解码方法包括对所有区域的那些码字进行解码。装置实施例具体实施例包括装置实施例,该装置实施例包括分类器,被配置为接受图像数据块的量化变换系数的有序系列并且根据包括该图像数据块的大小在内的一个或多个因素将所接受系列分类到多种预定义类别中的类别内。该装置实施例还包括熵编码器,被耦合到分类器并被配置为接受该有序系列并且向所接受的有序系列应用多种预定义熵编码方法之一以形成码字序列。熵编码方法是根据所接受系列的类别被应用的。如在方法实施例中一样,对于至少两种不同预定义类别的不同大小的有序系列,不同预定义熵编码方法被应用于这些不同预定义类别。在预定义编码方法之一包括上下文自适应HVLC (CAHVLC)方法的情况中,该编码器包括联合编码器,联合编码器被配置为在该系列的第一区域(对于一些类别,其可以为整个系列)中,对各自由连续非零值系数的簇定义的幅度事件和联合位置进行编码,每个事件由如下三个参数定义位于该簇之前的零值系数的数目、该簇中的非零值系数的数目以及指示该簇中具有幅度I的拖尾非零值系数的数目的第三参数,其中该编码根据3维联合VLC表进行。在一些实施例中,对于簇长度2,第三参数指示两个量化系数中的哪个具有幅度I。在一些实施例中,对于簇长度1,第三参数指示非零幅度的值。用于对CAHVLC进行编码的编码器还包括幅度编码器,幅度编码器被配置为对未通过联合编码被编码的非零值系数进行编码,例如,对幅度I拖尾系数之外的系数进行编码。这样的幅度包括相对于幅度I的次最有可能出现幅度,其为幅度2。在一些实施例中,系数幅度编码器对于指示幅度的每个值使用1-D VLC0 一个实施例单独对不与拖尾幅度I系数相邻的非零值系数进行编码,然后对这样的值,即,相邻非零系数的幅度值减I进行编码,因为该系数具有大于I的幅度。在预定义编码方法之一包括具有量化修改的上下文自适应HVLC (CAHVLC)方法的情况中,编码器包括量化修改器,量化修改器被配置为局部修改量化器所生成的量化以减少需要被编码的事件的数目并且缩短经编码比特流长度,局部修改包括一种或多种量化修改方法。该装置还包括符号编码器,符号编码器被配置为对非零值系数的符号进行编码。利用混合可变长度编码方法进行编码的编码器的一个实施例在为该有序系列定义了两个或两个以上的区域的情况中,对其余区域的系数进行编码。该编码器还包括被配置为将得到的码字联接 起来的联接器。图9示出了包括装置900的实施例,装置900被配置为实现如这里描述的,例如如图1中描述的编码方法。装置1100包括处理系统1103,处理系统1103包括一个或多个处理器1105和存储器1107。该装置被配置为接受通过固定的量化方法来量化的量化变换系数的有序系列。在图9中示出了单个处理器,但本领域技术人员将理解,其可以代表若干个处理器。类似地,示出了单个存储器子系统907,并且本领域技术人员将理解,该存储器子系统可以包括诸如RAM,ROM之类的不同元件。另外,该存储器子系统意欲包括任何非易失性存储器存储装置,例如磁或光存储组件。计算机程序909被包括并被载入存储器907中。注意,如本领域技术人员将明白的,在任何时候,程序中的一些可位于存储器子系统的不同部分中。程序907包括指令以指示处理器实现分类器和在不同版本中针对如这里描述的相应的不同预定义块类别而包括的相应不同编码方法。在所示实施例中,该方法使用存储器子系统907中的一个或多个编码表911。图10示出了被配置为对通过预定义编码方法来编码的比特流进行解码的解码器的一个实施例。该装置包括输入缓冲器1001,输入缓冲器1001被配置为接受通过压缩方法来编码的比特流,该压缩方法包括这里描述的任何编码方法实施例。该缓冲器的输出用作类别确定器和码字识别器1003的输入。元件1003包括类别确定器1003以及在基于上下文的编码的情况中的上下文确定器。类别确定器1003接受输入比特流的比特并且被配置为确定哪种编码方法被使用,因此确定如何识别码字、确定码字以及使用哪些编码表来查找每个码字。解码器1005被耦合到码字识别器和类别确定器1003并且被配置为针对该块的类别来确定用于由码字识别器识别出的码字的数据,对于这里描述的任何位置编码方法,包括这样的码字识别器该码字识别器可依据所使用的位置编码而确定非零值系数或零值系数的位置。该类别确定器和码字识别器还依据该块的类别和相应编码方法来识别其它码字,所述其它码字对通过编码方法来编码的其它参数进行编码,其它参数包括非零值、对拖尾系数数目的指示等等。类别确定器和码字识别器1003还提供信息以使得解码器1005能够确定作为要使用的解码表的编码表。在一些实施例中,解码器1005包括查找存储在存储器1007中的适当解码表的查找设备。该表提供用于码字序列中的至少一些码字的事件。其它码字可以包括“逃脱”码,以使得解码可以不通过表查找方法进行。虽然在图10所示实施例中,存储器被示为与查找设备(解码器)1005分离,但是本领域技术人员将明白,在其它实施例中,查找设备1005包括用于表的存储器,并且这样的其它实施例被包括在此。
图11示出了包括装置1300的另一实施例,装置1300被配置为实现这里描述的可变长度编码方法的解码器。解码装置1100包括具有一个或多个处理器1105和存储器1107的处理系统1103。在图11中示出了单个处理器,但本领域技术人员将理解,其可以代表若干处理器。类似地,示出了单个存储器子系统1307,并且本领域技术人员将理解,该存储器子系统可以包括诸如RAM,ROM之类的不同元件。另外,该存储器子系统意欲包括任何非易失性存储器存储装置,例如磁或光存储组件。计算机程序1109被包括并被载入存储器1107中。注意,如本领域技术人员将明白的,在任何时候,程序中的一些可位于存储器子系统的不同部分中。程序1109包括指令以指示处理器在不同版本中实现对块类别的识别、对码字的识别以及对码字的解码。在所示实施例中,解码方法使用存储器子系统1107中的一个或多个编码表1111。存储器子系统的一部分还可以用作进入的比特流的缓冲器,该进入的比特流包括待解码的码字。其它实施例其它实施例包括在一个或多个有形计算机可读存储介质中被编码的逻辑,该逻辑供运行并且当被运行时使得执行这里描述的编码方法中的任一个。本领域技术人员将从这里的描述中清楚如何实现该逻辑。其它实施例包括在一个或多个有形计算机可读存储介质中被编码的逻辑,该逻辑供运行并且当被运行时用于执行这里描述的解码方法中的任一个。本领域技术人员将从这里的描述中清楚如何实现该逻辑。其它实施例包括在其上编码了指令集的计算机可读存储介质,当该指令集被处理系统的一个或多个处理器运行时,使得执行这里描述的编码方法中的任何编码方法。其它实施例包括在其上编码了指令集的计算机可读存储介质,当该指令集被处理系统的一个或多个处理器运行时,使得执行这里描述的解码方法中的任何解码方法。 其它观察这里针对量化系数系列使用的术语“系列”(series)有时被称为系数的“块”,并且也称为系数的“系列”。有时使用术语系数序列。本领域技术人员将明白,这些术语可互换使用并且本领域技术人员将从上下文清楚含义。此外,在说明书中,假设该系列仅包括AC系数,并且块的变换的DC系数被单独编码。本领域技术人员将清楚如何修改这里描述的方法以包括DC系数。此外,在示例实施例的描述中,假设了系数的量化使得零是最有可能出现的量化幅度并且I是次最有可能出现的量化幅度。当然,可以以如下方式进行量化该方式使得其它值或事件被用于最有可能出现的一个或多个量化值,并且不同的其它值或事件被用于次最有可能出现的一个或多个量化值。本领域技术人员将明白,如何修改这里描述的具体方法以容纳这些变体,并且这些变体是本发明的其它实施例。此外,本发明的实施例不限于任何一种类型的体系结构或任何一种类型的变换编码或遵循某标准的变换编码。此外,虽然示例实施例包括将系列分类到多个预定义类别之一内并且将预定义熵编码方法映射到每种类别,但是本发明的其它实施例不限于这里描述的VLC方法或者这里提供的示例中的类别的数目或者这里提供的示例的块大小。作为示例,具有局部可变量化的上下文自适应混合可变长度编码CAHVLC(LV)可被用于一些更大的块。CAHVLC的效率中的一些来自于其联合编码性质,例如,将零系数和非零系数的相应运行长度与拖尾I一起表示为3元组并且通过更高维可变长度编码对其进行编码,并且将自适应编码表切换用于位置编码和幅度编码两者。如果更少的编码(3DPA和IDA)事件可用来表示整个变换系数系列并且/或者如果针对每个块的编码事件可以通过消除图片的每块中的编码事件的局部变化而更好地与编码表切换趋势相匹配,则可以进一步提高编码效率。CAHVLC (LV)包括根据局部状况而局部地改变量化以便减少需要用来表示变换系数系列的编码事件数目并且/或者在将编码事件与编码表切换趋势相匹配的同时保持引入的失真较小。例如,可以包括以下量化修改中的一个或多个(I)在被分离的小的非零系数(比如I)之前有一系列零且后面跟随着一系列零的情况中,其中,该被分离的小的非零系数被量化为零以使得单个3DPA事件可以表示长得多的系数系列。非零系数的大小较小,例如为1,通常仅引入小的失真(由于将系数量化为零引入的)。(2)在被分离的零系数之前有一系列非零系数且后面跟随着一系列非零系数的情·况中,被分离的零系数被量化为非零值,例如1,以使得其可通过一个3DPA事件被编码而不会引入显著失真。(3)在一对小的系数(01)之前有一系列非零系数且后面跟随着一系列零系数,例如需要三个3DPA事件来编码的(...85321010005310000...)的情况中,一种或两种方式被用来通过以(00)或(11)取代(01)来减少编码事件的数目。(4)在一对小的系数(10)之前有一系列零系数且后面跟随着一系列非零系数,例如需要三个3DPA事件来编码的(...85321000105310000...)的情况中,用来减少编码事件数目的如下两种方式之一被使用以(00)或(11)取代(10)。(5)在小的非零非幅度I的系数(例如幅度为2的系数)之前有一系列幅度为I的系数且后面跟随着一系列幅度为I的系数的情况中,幅度为2的系数被量化为具有幅度1,以使得更多系数可通过拖尾幅度I系数的数目(T1)被编码,从而使得更少的系数需要通过另外的IDA编码被编码。通过修改一个小的系数,减少了编码事件的数目。本公开不依赖于任何特定类型的帧间编码(如果被使用的话)或者运动补偿(如果被用于帧间编码的话),或者任何帧内估计(如果被用于利用来自相邻块的信息估计块的像素的话)。注意,可变长度编码有时称为熵编码或统计编码。注意,术语编码(coding)和编码(encoding)在此可互换使用。注意,术语系列指量化变换系数的有序系列,除非另外指示。注意,幅度指量化之后的幅度,除非在此另外指示。还注意,零值和非零值是指根据量化方法进行量化之后的幅度值,以使得零是最有可能出现的量化幅度,I是次最有可能出现的量化幅度。类似地,在提到系数的值的情况中,将明白,该术语是指量化的值,除非另外指示或者从情境中能够清楚。在上述实施例的一些中,包括有无符号数据。大多数变换产生正的和负的系数,并且码字的形成包括对任何非零值量化系数的符号的指示。在一个版本中,任何区域中的非零幅度的任何运行的符号信息与每个幅度的信息一起被添加。在替代实施例中,任何区域中的非零幅度的任何运行的符号信息可以不同方式被包括,例如作为用于符号系列的代码。用于对符号进行编码的其它替代实施例也是可以的。本领域技术人员将明白,本发明的实施例不限于用于包括符号信息的任何特定机制。注意,在用于幅度编码的一些示例中,不同数目的可能的非零值可被假设用于系数。然而,本发明的实施例不限于任何数目的可能的量化值。还注意,术语幅度与符号无关。因此,例如,值+1和-1的系数都具有幅度I。虽然这里描述的一个实施例包括存储编码表的存储器,然而其它实施例以表之外的数据结构(例如,包括树的结构)的 形式来存储编码信息。其它数据结构也可被使用。类似地,虽然这里描述的一个实施例包括存储解码的存储器,然而其它实施例以用于解码的表之外的数据结构的形式来存储解码信息。还注意,本公开不依赖于用于任何编码方法(例如,编码表)的特定类型的可变长度编码,并且例如,可以利用霍夫曼编码和算术编码方法进行工作。此外,虽然描述的实施例针对基于假设的或先验的事件出现可能性的事件(也称为事件)使用固定的编码,即,事件出现的可能性不变,然而其它实施例使用自适应编码,即,该编码可根据统计数据(例如从实际系数收集的直方图)改变。除非特别阐明,否则如从以下讨论将清楚的,将理解,在整个说明书中,使用诸如“处理”、“计算”、“运算”、“确定”等之类的术语的讨论是指操纵被表示为物理(诸如电子)量的数据和/或将被表示为物理量(诸如电量)的数据变换成类似地被表示为物理量的其它数据的计算机或计算系统,或者类似的电子计算设备的动作和/或处理。以类似方式,术语“处理器”可指处理例如来自寄存器和/或存储器的电子数据以将该电子数据变换成例如可存储在寄存器和/或存储器中的其它电子数据的任何设备或设备的一部分。“计算机”或“计算机器”或“计算平台”可以包括一个或多个处理器。注意,当描述包括若干元素(例如,若干步骤)的方法时,没有隐含这些元素(例如,步骤)的顺序,除非特别阐述。在一些实施例中,这里描述的方法可由一个或多个处理器执行,这一个或多个处理器接受逻辑,例如编码在一个或多个计算机可读存储介质上的指令。当被一个或多个处理器运行时,指令使得执行这里描述的至少一种方法。能够(顺序地或以其它方式)运行指定要采取的动作的指令集的任何处理器被包括。因此,一个示例是包括一个或多个处理器的典型处理系统。每个处理器可以包括CPU或类似元件、图形处理单元(GPU)和/或可编程DSP单元中的一个或多个。处理系统还包括具有至少一个存储介质的存储子系统,其可包括嵌入在半导体设备中的存储器;或者单独的存储器子系统,其包括主RAM和/或静态RAM和/或R0M,以及高速缓存存储器。存储子系统还可以包括一个或多个其它存储设备,例如磁和/或光和/或另外的固态存储设备。用于在组件之间进行通信的总线子系统可被包括。处理系统还可以是分布式处理系统,该分布式处理系统具有例如经由网络接口设备或无线网络接口设备通过网络相耦合的处理器。如果处理系统需要显示器,则可以包括这样的显示器,例如,液晶显示器(IXD)、有机发光显示器(OLED)或阴极射线管(CRT)显示器。如果需要手动数据输入,则处理系统还包括输入设备,例如,诸如键盘之类的字母数字输入单元、诸如鼠标之类的点选控制设备等中的一个或多个。如果从上下文能清楚以及除非另外明确阐述,否则这里使用的术语存储设备、存储子系统或存储器单元还涵盖了诸如盘驱动单元之类的存储系统。一些配置中的处理系统可以包括声音输出设备和网络接口设备。
在替代实施例中,一个或多个处理器作为单独设备操作,或者可在联网部署中被连接,例如被联网到(一个或多个)其它处理器,一个或多个处理器在服务器-客户端网络环境中可以以服务器或客户端机器的能力操作或者在对等或分布式网络环境中作为对等机器操作。术语处理系统涵盖了所有这些可能性,除非这里明确排除。一个或多个处理器可以形成个人计算机(PC)、媒体回放设备、平板PC、机顶盒(STB)、个人数字助理(PDA)、游戏机、蜂窝电话、Web装置、网络路由器、交换机或桥接器、或者能够(顺序地或以其它方式)执行指定该机器要采取的动作的指令集的任何机器。注意,虽然某个或某些示图仅示出了单个处理器和单个存储子系统,例如,存储包括指令的逻辑的单个存储器,但是本领域技术人员将明白,上述组件中的许多被包括,而没·有明确示出或描述,以便不模糊发明性方面。例如,虽然仅单个机器被图示出,但是术语“机器”还应被认为包括个体地或联合地执行一个(或多个)指令集以执行这里讨论的任何一个或多个方法的任何机器集合。虽然计算机可读介质在示例实施例中可能被示为单个介质,但是术语“介质”应当被认为包括存储一个或多个指令集的单个介质或多个介质(例如,若干存储器、中央式或分布式数据库、一个或多个服务器等)。计算机可读存储介质可以采取许多形式,包括但不限于固态存储器、诸如光盘之类的光存储器、诸如磁盘之类的磁存储器和磁光盘。还将明白,本发明的实施例不限于任何特定实现方式或编程技术并且这些实施例可以利用用于实现这里描述的功能的任何合适技术来实现。此外,实施例不限于任何特定编程语言或操作系统。在本说明书中对“一个实施例”或“实施例”的引用是指结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,说明书各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,如本领域技术人员从本公开将清楚的,可以以任何合适方式来组合特定特征、结构或特性。类似地,应理解,在本发明的示例实施例的以上描述中,本发明的各种特征有时在单个实施例、附图或其描述中被分组在一起以便流畅地描述本公开并且辅助理解各个发明性方面中的一个或多个方面。然而,本公开的该方法不被解释为反映如下意图要求保护的发明需要比每个权利要求中明确记载的特征更多的特征。而是,如以下权利要求反映的,发明性方面在于比单个前面公开的实施例的所有特征更少。因此,具体实施方式
后面的权利要求在此明确地被结合到本具体实施方式
中,每个权利要求代表其自己。此外,虽然这里描述的一些实施例包括其它实施例中的一些特征而不包括其它特征,但是两个或更多个实施例的特征的组合形成了本发明的不同实施例,如本领域技术人员将明白的。例如,在以下权利要求中,可以以任何组合来使用要求保护的实施例中的任何实施例。此外,实施例中的一些在此被描述为可由计算机系统的处理器或实现功能的其它装置来实现的方法或方法的元素的组合。因此,具有实现该方法或方法的元素的必要指令的处理器形成了实现该方法或方法的元素的装置。此外,装置实施例的这里描述的元素是用于实现由该元素执行的功能的装置的示例。在这里提供的描述中,阐述了多个具体细节。然而,将明白,本发明的实施例可以在没有这些具体细节的情况下实施。在其它实例中,公知的方法、结构和技术未详细示出,以便不模糊对本描述的理解。如这里使用的,除非另外指出,否则,对描述共同对象的序数形容词“第一”、“第二”、“第三”等的使用仅仅表示类似对象的不同实例被提及,而不旨在隐含着如此描述的对象必须在时间上、空间上、排序上或任何其它方式上位于给定的序列中。这里引用的指定美国的所有美国专利、美国专利申请和国际(PCT)专利申请通过引用被结合于此。在专利法或专利状态不允许本身通过引用结合了信息的素材被通过引用结合的情况中,这里素材的通过引用结合排除在该“通过引用结合”的素材中的任何通过引用结合的信息,除非这样的信息明确被通过引用结合于此。本说明书中对现有技术的任何讨论不应以任何方式被认为是承认这些现有技术是广泛已知的,公开知道的或者形成本领域普通知识的一部分。 在下面的权利要求和这里的描述中,术语包含、由…组成或其包含中的任一者是开放式术语,其意味着至少包括下面的元素/特征,但不排除其它的元素/特征。因此,当在权利要求中使用时,术语包含不应解释为限于此后列出的装置或元素或步骤。例如,“设备包含A和B”这一表述的范围不应局限于设备仅由元件A和B组成。如这里使用的包括或其包括或它包括中的任一者也是开放式术语,其也意味着至少包括该术语之后的元素/特征,但不排除其它的元素/特征。因此,包括与包含同义且意味着包含。类似地,注意,当在权利要求中使用时,术语耦合不应被解释为仅限于直接连接。术语“耦合”和“连接”及其衍生词可以被使用。应明白,这些术语彼此不是同义的。因此,表述“设备A耦合到设备B”的范围不应限于设备A的输出直接连接到设备B的输入的设备或系统。其意味着,A的输出与B的输入之间存在路径,该路径可能是包括其它设备或装置的路径。“耦合”可以指两个或两个以上的元件直接物理地或电气地接触,或者两个或两个以上的元件彼此不直接接触但依然彼此协同操作或交互。因此,虽然已描述了被认为是本发明的示例实施例的内容,然而本领域技术人员将认识到,可在不脱离本发明的精神的情况下对其作出其它和另外的修改,并且意欲所有这些改变和修改都落在所附权利要求的范围内。例如,以上给出的任何公式仅仅代表可使用的过程,可从框图中添加或删除功能,功能块间的操作可互换,并且可向在本发明范围内描述的方法添加或删除步骤。
权利要求
1.一种处理方法,包括 接受图像数据块的量化变换系数的有序系列; 根据包括该图像数据块的大小在内的一个或多个因素来将所接受的系列分类到多种预定义类别中的类别内; 向所接受的有序系列应用多种预定义熵编码方法之一以形成码字系列,该熵编码方法是根据所接受系列的类别被应用的, 其中,对于至少两种不同预定义类别的不同大小的有序系列,不同预定义熵编码方法被应用于所述不同预定义类别。
2.如权利要求1所述的方法,其中,一种或多种预定义类别及相关联熵编码方法是针对一组预定义块大小中的每种块大小预定义的,其中,该分类步骤包括将该系列分类到块大小,并且进一步分类到针对该块大小的所述一种或多种预定义类别中的一种类别,并且其中,应用多种预定义熵编码方法之一应用的是针对该预定义块大小的预定义类别的预定义熵编码方法。
3.如权利要求1或2所述的方法,还包括形成图片或图片序列的块集合的比特流,该比特流包括针对该块集合的系列形成的码字、对足以让解码器确定每块的大小的因素的指示以及针对任何所形成的码字序列的块的大小的类别。
4.如权利要求1或2所述的方法,还包括向该系列的码字添加代码以向解码器指示该块的类别。
5.如权利要求1至4中任一项所述的方法,其中,所述预定义编码方法中的至少一些是可变长度编码(VLC)方法。
6.如权利要求1至4中任一项所述的方法, 其中,所述量化系数能够具有包括最有可能出现的幅度和至少次最有可能出现的幅度在内的幅度, 其中,所述预定义编码方法中的至少一种是包括至少一种混合VLC方法(HVLC)的VLC方法,每种HVLC方法包括对于可能是该系列的低频区域,对具有所述最有可能出现幅度之外的幅度的连续系数的簇的位置进行编码,并且对于所述簇,对具有所述最有可能出现幅度之外的幅度的系数的幅度进行编码,其中所述低频区域可以是整个系列。
7.如权利要求6所述的方法, 其中,至少一个低频区域VLC方法是上下文自适应位置和幅度编码(CAPAC)方法的低频VLC方法,根据该方法,具有所述最有可能出现幅度之外的幅度的系数的簇的位置通过具有自适应表切换的多个VLC映射被排序并编码,所述自适应表切换基于能从先前编码信息中确定的一个或多个信息项。
8.如权利要求6所述的方法, 其中,至少一个低频区域VLC方法是具有对事件的三维编码的混合VLC (HVLC3DPA方法)的低频VLC方法,所述事件由位于每个非零簇之前的具有所述最有可能出现幅度的连续系数的数目、具有所述最有可能出现幅度之外的幅度的连续系数的每个簇的运行长度以及具有所述次最有可能出现幅度的拖尾系数的数目来定义,任何其余幅度通过一维VLC映射被编码。
9.如权利要求6所述的方法,其中,至少一个低频区域VLC方法是上下文自适应混合可变长度编码(CAHVLC)方法的低频VLC方法。
10.如权利要求1至4中任一项所述的方法, 其中,所述量化系数能够具有包括最有可能出现幅度和至少次最有可能出现幅度在内的幅度, 其中,所述预定义熵编码方法中的至少一种是HVLC方法,该HVLC方法包括将该系列分割成可以为整个系列的低频区域和可以为整个系列的高频区域,其中,所述低频区域通过低频VLC方法被编码并且所述高频区域通过高频VLC方法被编码,所述低频VLC方法包括对于该系列的可以为整个系列的所述低频区域,对具有所述最有可能出现幅度之外的幅度的连续系数簇的位置进行编码,并且对于所述簇,对具有所述最有可能出现幅度之外的幅度的系数的幅度进行编码,并且所述高频VLC方法包括针对可以为整个系列的所述高频区域的运行级别VLC,该运行级别VLC对具有所述最有可能出现幅度的量化系数的可能为零的运行长度以及具有所述最有可能出现幅度之外的幅度的单个紧随的量化系数的幅度级别进行联合编码。
11.如权利要求10所述的方法, 其中,至少一个低频区域VLC方法是CAPAC方法的低频VLC方法,根据该方法,具有所述最有可能出现幅度之外的幅度的系数的簇的位置通过具有自适应表切换的多个VLC映射被排序并编码,所述自适应表切换基于能从先前编码信息中确定的一个或多个信息项。
12.如权利要求10所述的方法, 其中,至少一个低频区域VLC方法是HVLC3DPA的低频VLC方法,其中,事件由位于每个非零簇之前的具有所述最有可能出现幅度的连续系数的数目、具有所述最有可能出现幅度之外的幅度的连续系数的每个簇的运行长度以及指示具有所述次最有可能出现幅度的拖尾系数的数目的参数来定义并被联合编码,任何其余幅度通过一维VLC映射被编码。
13.如权利要求10所述的方法, 其中,至少一个低频区域VLC方法是CAHVLC方法的低频VLC方法。
14.如权利要求1至13中任一项所述的方法, 其中,所述块大小之一是4x4,并且其中,针对所述4x4块大小的预定义熵编码方法是根据H. 264/AVC标准为4x4块定义的熵方法。
15.如权利要求1至13中任一项所述的方法, 其中,所述块大小之一是8x8,并且其中,针对所述8x8块大小的预定义熵编码方法是根据中国AVS标准为8x8块定义的熵方法。
16.如权利要求1至13中任一项所述的方法, 其中,所述块大小包括32x32,16x16, 8x8和4x4。
17.一种利用指令配置的计算机可读存储介质,当所述指令被处理系统的一个或多个处理器运行时,使得执行如权利要求1至16中任一项所记载的方法。
18.—种编码在一个或多个计算机可读有形介质中的逻辑,当所述逻辑被处理系统的一个或多个处理器运行时,使得执行如权利要求1至16中任一项所记载的方法。
19.一种装置,包括 分类器,可操作来接受图像数据块的量化变换系数的有序系列并且根据包括该图像数据块的大小在内的一个或多个因素来将所接受的系列分类到多种预定义类别中的类别内; 熵编码器,被耦合到所述分类器并且可操作来接受该有序系列并且向所接受的有序系列应用多种预定义熵编码方法之一以形成码字系列,该熵编码方法是根据所接受系列的类别被应用的, 其中,对于至少两种不同预定义类别的不同大小的有序系列,不同预定义熵编码方法被应用于所述不同预定义类别。
20.如权利要求19所述的装置, 其中,所述量化系数能够具有包括最有可能出现的幅度和至少次最有可能出现的幅度在内的幅度, 其中,所述预定义编码方法中的至少一些是包括至少一种混合VLC方法(HVLC)的VLC方法,每种HVLC方法包括对于该系列的低频区域,对具有所述最有可能出现幅度之外的幅度的连续系数的簇的位置进行编码,并且对于所述簇,对具有所述最有可能出现幅度之外的幅度的系数的幅度进行编码,所述低频区域可以是整个系列。
21.如权利要求20所述的装置, 其中,至少一个低频区域VLC方法是CAPAC方法、HVLC3DPA方法和CAHVLC方法中的至少一者的低频VLC方法。
22.如权利要求19所述的装置, 其中,所述量化系数能够具有包括最有可能出现幅度和至少次最有可能出现幅度在内的幅度, 其中,所述预定义熵编码方法中的至少一种是HVLC方法,该HVLC方法包括将该系列分割成可以为整个系列的低频区域和可以为整个系列的高频区域,其中,所述低频区域通过低频VLC方法被编码并且所述高频区域通过高频VLC方法被编码,所述低频VLC方法包括对于该系列的可以为整个系列的所述低频区域,对具有所述最有可能出现幅度之外的幅度的连续系数簇的位置进行编码,并且对于所述簇,对具有所述最有可能出现幅度之外的幅度的系数的幅度进行编码,并且所述高频VLC方法针对可以为整个系列的所述高频区域包括运行级别VLC,该运行级别VLC对具有所述最有可能出现幅度的量化系数的可能为零的运行长度以及具有所述最有可能出现幅度之外的幅度的单个紧随的量化系数的幅度级别进行联合编码。
23.如权利要求22所述的装置, 其中,至少一个低频区域VLC方法是CAPAC方法、HVLC3DPA方法和CAHVLC方法中的至少一者的低频VLC方法。
24.如权利要求19至23中任一项所述的装置, 其中,所述块大小之一是4x4,其中,针对所述4x4块大小的预定义熵编码方法是根据H. 264/AVC标准为4x4块定义的熵方法,其中,所述块大小之一是8x8,并且其中,针对所述8x8块大小的预定义熵编码方法是根据中国AVS标准为8x8块定义的熵方法。
25.如权利要求19至23中任一项所述的装置, 其中,所述块大小包括32x32,16x16, 8x8和4x4。
26.一种利用指令配置的计算机可读存储介质,当所述指令被处理系统的一个或多个处理器运行时,使得执行包括以下步骤的方法 接受图像数据块的量化变换系数的有序系列; 根据包括该图像数据块的大小在内的一个或多个因素来将所接受的系列分类到多种预定义类别中的类别内; 向所接受的有序系列应用多种预定义熵编码方法之一以形成码字系列,该熵编码方法是根据所接受系列的类别被应用的, 其中,对于至少两种不同预定义类别的不同大小的有序系列,不同预定义熵编码方法被应用于所述不同预定义类别。
全文摘要
将图像数据块的量化变换系数系列分类到用于熵编码的多种预定义的类别之一内并且对该块进行熵编码。类别至少由该块的大小以及通常但不是必要的一个或多个其它因素来定义。被分类的系列通过针对该预定义类别的例如可变长度编码方法之类的一组预定义熵编码方法之一被编码。
文档编号H03M7/42GK103004195SQ201180035476
公开日2013年3月27日 申请日期2011年7月13日 优先权日2010年7月20日
发明者陈文雄, 徐怡安 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1