首页> 中国专利> 将多种可变长度编码方法用于多种类型的变换系数块的视频压缩

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

摘要

将图像数据块的量化变换系数系列分类到用于熵编码的多种预定义的类别之一内并且对该块进行熵编码。类别至少由该块的大小以及通常但不是必要的一个或多个其它因素来定义。被分类的系列通过针对该预定义类别的例如可变长度编码方法之类的一组预定义熵编码方法之一被编码。

著录项

  • 公开/公告号CN103004195A

    专利类型发明专利

  • 公开/公告日2013-03-27

    原文格式PDF

  • 申请/专利权人 思科技术公司;

    申请/专利号CN201180035476.3

  • 发明设计人 陈文雄;徐怡安;

    申请日2011-07-13

  • 分类号H04N7/26;H03M7/42;

  • 代理机构北京东方亿思知识产权代理有限责任公司;

  • 代理人李晓冬

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 19:11:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-22

    授权

    授权

  • 2013-04-24

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20110713

    实质审查的生效

  • 2013-03-27

    公开

    公开

说明书

相关申请

本公开要求发明人陈等2010年7月20日提交的美国申请No. 12/840,080的优先权,该申请的内容通过引用被结合于此。

技术领域

本公开大体涉及图像压缩,并且具体地涉及对图像数据的块的量化变 换系数的系列进行的熵编码。

背景技术

数字视频压缩的范围从对静止图像编码到对用于摄影、广播、流传输 和会议应用的运动视频编码。在传统的变换编码中,由像素构成的图片被 分割成块;对每个像素块进行变换;变换系数被排序并被量化;并且某种 形式的可变长度编码(VLC,包括算术编码)被用来表示每块的量化变换 系数的系列。在许多当前标准中,块具有固定大小,例如,对于JPEG, MPEG1,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)联合事件,非零幅度系数及其 编码之前的零的长度,可能为0。

LF:低频,在混合可变长度编码中通常称为低频量化系数,在混合可 变长度编码中,通过断点将图像数据块的量化变换系数的有序序列分割成 低频系数系列和高频有序系数系列。

1D:一维

2D:二维

3D:三维

AVS:中国音视频编码标准,由中国音视频编码标准工作组公布作为 信息技术高级音视频编码第2部分:视频(AVS1-P2JQP FCD1.0),中国音 视频编码标准组(AVS),Doc.AVS-N1538,2008年9月。

H.264/AVC:ITU-T Rec.H.264,第10部分,现在是国际标准ISO/IEC 14496-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位置编码:例如,任何非零系数簇之前的零值的运行长度(可能为 零)以及非零系数的数目;并且对簇中的非零幅度进行1D幅度编码。

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:改进的上下文自适应可变长度编码,其包括取决于待编码 的零系数的数目和非零系数的数目,利用1D VLC一次一者地交替对零系 数的运行长度和非零系数的运行长度进行编码,并且在替代实现方式中, 通过多维VLC并发地对零系数和非零系数的位置进行编码。ICAVLC可以 改进CAVLC,C2DVLC和HVLC。

CAPAC:上下文自适应位置和幅度编码,在一些版本中,其包括两路 位置和幅度编码处理。借助于具有基于上下文、即通过可从先前编码的信 息中确定的且在预测行为中有用的一个或多个信息项(例如,从先前编码 的系数确定的信息)的自适应表切换的多个VLC表来对非零系数簇的位 置进行排序和编码。从高频到低频按逆序对非零幅度编码,并且根据它们 与零的相邻度来将它们重组为子序列。这些子序列利用具有不同维度的不 同的相应(多维)VLC映射被编码。

HVLC3DPA:对联合位置和幅度事件进行3D编码并对事件进行编码 的混合VLC。3DPA事件由位于每个非零簇之前的零值系数的数目、每个 簇的运行长度以及指示幅度为1的拖尾系数的数目的参数来定义。其余幅 度通过一维VLC映射单独被编码。

CAHVLC:上下文自适应混合可变长度编码。一些实施例包括 HVLC3DPA的编码以及:多个代码表被用于3DPA和1DA编码两者并且 代码表是基于可从经编码的相邻块或者可从当前正被编码的块的经编码部 分中得到的上下文信息而自适应地被选择的。

Rnz,Rnz≥1:非零值系数簇中的非零幅度量化系数的数目。在一些 方法中,该簇包括紧随该簇之后的单个零值量化系数。

Rz,Rz≥0:紧邻非零值量化系数簇之前的连续零值系数的数目。

2DP:(Rz,Rnz)的2D位置编码。

3DPA:由至少三个变量(通常包括Rz和Rnz)定义的3D联合位置 和幅度事件。

1DA:1D幅度事件和该事件的编码。因此,HVLC2DP1DA是指对簇 进行2D位置编码以及对幅度进行1D编码的混合可变长度编码。

CA:上下文自适应,基于上下文。在这里的示例方法中,上下文是指 可从先前编码的信息中确定的且在预测行为中有用的一个或多个信息项, 例如,从一个或多个先前编码系数中确定的信息。

一些实施例

本发明的实施例包括方法、装置、编码在一个或多个计算机可读有形 存储介质中以执行方法的逻辑以及有形的,例如非暂时性计算机可读存储 介质。该方法对量化系数的一个或多个有序系列编码,每个系列是通过对 图像数据块进行变换,对变换系数进行排序和量化获得的。

已经存在被开发用于压缩图片(例如,静止图片或运动图片)的许多 基于变换的编码方法,并且在这些方法中,许多方法被标准化。通常这些 方法包括将图片分割成块,将块变换成变换系数,量化变换系数,沿着 2D变换域上的预定路径对变换系数排序,并且对量化变换系数的有序系 列进行熵编码。可以利用运动补偿对该图片进行帧间编码,或者进行帧内 编码。标准编码方法的示例包括但不限于:ITU-T H.261,ITU-T H.263, ITU-T H.264/AVC,AVS(中国视频编码标准),MPEG1,MPEG-2,DIRAC (由BBC设计发布的开放源视频编解码),VC-1等等。这些标准方法中的 一些的更多细节请参见上节“一些熵编码方法中的一些缩写和说明”。

这些编码标准中的一些将“规范”定义为可应用于一定类型的图像和/ 或应用的因素集。在每个规范中,块大小是固定的或者存在大于一个变换 块大小的选项,但是同一熵编码方法被用于所有块大小。例如, H.264/AVC的高级规范允许4x4或8x8像素变换块,而熵编码方法对于图 片的所有块是相同的。类似地,VC-1的高级规范允许4x4,4x8,8x4和8x8 变换块,但熵编码对于图像的所有这些块是相同的。

为了继续提高编码效率,新生代的编码方法正继续被开发。虽然通常 将不同块大小用于运动补偿并且本公开不处理运动补偿块大小的主题,但 是正提出的一种改进是在同一规范内使用被应用了变换的不同大小的图像 块。根据本发明的一个方面,多种熵编码处理可用于同一规范(例如,同 一图片)的图像数据的变换块的量化系数的有序系列的不同类别,其中, 块的大小是类别的确定者之一。“编码处理”是指一种编码方法或者方法 的组合。每个特定系列是通过沿着变换域上的所选路径,通常从低频到高 频,对图像的特定像素块的量化变换系数进行排序而获得的。根据一个或 多个标准(包括形成系列的块的大小),并且在一些实施例中,根据由一 个或多个因素确定的系数可能如何被分布在系列中,来将每个量化系数系 列分类到多个预定义类别之一。对于每个类别,所提供编码方法中的一种 或多种方法的相应集合被用来对系列编码。因此,应用于任何特定数据块 的一种或多种编码方法取决于块的大小,并且在一些实施例中,取决于从 一个或多个因素确定的量化变换系数的分布。

根据本发明的一个方面,图像数据块的量化变换系数的系列可被分类 到预定义的多个类别之一中,其中,类别至少是由块的大小以及(通常地 但不一定)一个或多个其它因素来定义的。被分类的系列通过预定义熵编 码方法的集合中的一种方法被编码,预定义熵编码方法被映射到预定义的 多种类别中的每种类别。因此,本发明的实施例使用多种类型的熵编码方 法来对各种类别的变换块的量化系数进行编码,其中,类别至少是由块的 大小以及通常一个或多个其它因素来定义的。在这里描述的实施例中,至 少一些熵编码方法是可变长度编码方法。

图1示出了根据本发明一个实施例的方法的简化流程图,并且包括: 接受图像数据块的变换系数的有序系列,并且在101中,根据包括该图像 数据块的大小在内的一个或多个因素将所接受的系列分类到多个预定义类 别之一中。在103,该方法取决于分类而前进到一组路径中的一条路径。 令Nc表示预定义类别的数目,这样的类别被表示为类别1、类别2...,类 别Nc。该方法包括在105-1,105-2,...,105-Nc之一中,向所接受的有序系 列应用多种熵编码方法之一以形成码字序列,所应用的该熵编码方法是根 据所接受系列的类别的。因此,105-1包括应用针对类别1的方法,105-2 包括应用针对类别2的方法,等等。

对于不同大小的有序系列的至少两个类别,不同熵编码方法被应用于 不同类别。

块的编码产生了用于解码的比特流。解码器需要能够对该流进行解 码,并且因此需要接收指示或确定任何块的比特流的类别。

在一些实施例中,一幅图片或者在运动视频的情况中图片序列的块的 集合的比特流包括对如下因素的指示,所述因素足以让解码器确定该比特 流中的系列的任何码字序列的块集合中的每块的类别。

在其它实施例中,特定块的码字序列包括对该块的类别的明确指示。 虽然本领域技术人员将明白许多这样的指示可以被使用,但是在本发明的 一些实施例中,该指示为前缀的形式。图2示出了根据本发明实施例的方 法的简化流程图,并且除了图1的元素101、103和105-1,……,105-Nc 外,还包括:在207-1,207-2,...,207-Nc中,将针对类别Class1,Class 2...,Class Nc的相应前缀分别应用于从分别应用方法元素105-1,105-2, 105-Nc得到的码字。

在一些实施例中,针对多个块大小,例如,预定义的一组块大小,的 每个块大小,来预定义一种或多种预定义类别及相关联熵编码方法。在这 样的实施例中,分类包括将系列分类到块大小,并且进一步分类到用于该 块大小的一个或多个预定义类别之一内。应用多种预定义熵编码方法之一 应用的是针对该预定义块大小的预定义类别的预定义熵编码方法。

对于某些这样的实施例,可在两个阶段中考虑分类,第一阶段是分类 到多个预定义块大小之一,并且针对每个块大小,根据一个或多个因素进 一步分类到用于该块大小的一个或多个类别中。用Ns表示块大小的数 目,Ns≥2,并且用大小1,大小2,...大小Ns来表示块大小。图3示出了 对图像数据块的量化变换系数的有序系列进行熵编码的方法的一个实施例 的简化流程图,其包括接受有序系列,并且在303中将该系列分类到大小 Size(大小)1,Size2,...,Size Ns中的块大小。对于每个块大小,该 方法包括在相应块307-1,307-2,...,307-Ns中将块大小分类到多种类别中, 用于大小Size1,Size2,...,Size Ns的类别的数目被表示为Nc_1,..., Nc_Ns,每个这样的类别数目为1或更大。在图3中类别被示为用于大小 1的类别1_1,...,类别Nc_1,用于大小2的类别1_2,...,类别Nc_2,以及 用于大小Ns的类别1_Ns,...,类别Nc_Ns。在根据大小进行分类之后,并 且如果该大小具有一个以上的预定义类别,则根据用于该大小的该类别, 该方法包括在块309-1_1,...,309-Nc_l,309-1_2,…,309-Nc_2,...,309- 1_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的一些变体中的一些低频编码方法包括考虑到幅度1是簇中最可能 出现的非零幅度,因此,对非幅度1非零系数的位置进行编码。

在HVLC的许多实施例中,断点是“软”的,因为如果断点被确定为 在簇的中间,则断点被移动以使得低频区域在该簇的结尾处结束。在许多 低频区域方法中,簇的编码包括对紧随该簇之后的单个零值系数进行编 码。

在许多高频区域编码方法中,另外的二进制值参数被用来指示待编码 事件中的非零值系数是否是该有序系列中的最后的非零值系数。

CAPAC

CAPAC的实施例中的VLC编码方法包括对于量化系数系列的两路位 置和幅度编码处理。图5示出了CAPAC的低频方法的一个实施例的简化 流程图,并且包括在503中,利用诸如VLC表之类的多个VLC编码映 射,包括基于上下文的例如VLC表之类的编码映射之间的切换,来对图 像数据块的量化变换系数的有序系列中的非零值系数的位置进行编码。该 方法还包括在505中,按该系列的原始顺序的逆序利用可变维度幅度编码 来对非零值系数的幅度进行编码。该方法还包括在507中,对非零值系数 的符号进行编码。这些编码产生码字。一个实施例还包括在50中将码字 联接起来。

用于位置编码的上下文包括可从一个或多个先前编码事件(例如,位 置事件或幅度)得到的一个或多个参数,以使得对当前事件(例如,位置 事件或(一个或多个)幅度)进行编码的编码处理可以在对当前事件进行 编码时得到该上下文。在一个CAPAC实施例中,该上下文的一个或多个 参数包括最有可能出现的幅度的最大运行长度。在一个实施例中,上下文 的一个或多个参数还包括或者取代地包括与最有可能出现的幅度以外的幅 度的最近运行长度。在一个实施例中,上下文的一个或多个参数还包括或 者取代地包括正被编码的系数的相对频率,例如,指示正被编码的系数的 相对频率的已被编码的系数总数。

在CAPAC的一个实施例中,可变维度幅度编码使用各自将事件映射 到码字的多种可变长度编码映射,并且包括基于上下文的在编码映射之间 的切换。在一个实施例中,编码映射的切换所基于的上下文的一个或多个 参数包括先前编码的最大幅度。

HVLC3DPA

图6示出了HVLC3DPA(即,具有3D位置和幅度编码的HVLC)的 低频区域编码的一个实施例的简化流程图。该方法包括在603中,结合指 示在非零系数簇中具有幅度1的拖尾系数的数目的参数,将非零值量化系 数的每个簇的运行长度和每个簇的之前的零系数的运行长度一起编码为一 对。在605中通过一维VLC映射(例如编码表),来单独对其余幅度编 码。该方法包括在607中对符号进行编码,以及在609中在该系列中存在 多于一个区域的情况下,对其余区域中的系数进行编码。

对于记号,考虑将HVLC3DPA(即,具有3D位置和幅度编码的 HVLC)用于一个序列或其一部分的情况。在该情况中,

C3D表示用于由非零值系数的簇(包括紧随该簇之后的零值系数)定 义的事件的3DPA码字,对于块中的第一事件表示为C3D(Rz,Rnz,T1,Ln) 形式,对于其他表示为C3D(Rz-1,Rnz,T1,Ln)形式,其中:

Rz表示位于该非零簇之前的零值系数的运行。

Rnz表示连续非零值系数的运行。

T1表示在该非零系数簇中幅度为1的拖尾系数的数目。

Ln表示指示其是否是该有序序列中的最后一个非零系数的二进制值。 在该记号中,Ln=1指其是最后一个非零值系数。

CA(Level)表示针对幅度值Level(级别)的一维幅度码字,Level 表示所有其余非零系数的幅度。一个例外是紧邻拖尾的1之前的系数的幅 度被减少1,因为该幅度必定大于1。

作为示例,考虑有序系列

9-53-2100211000-1100110...

其被分类为利用HVLC3DPA的低频区域被编码,即,断点被设置为 使得仅存在低频区域。忽略用于系数的符号的代码,该系列通过如下码字 序列被编码:

C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1)C3D(1,3,2,0)CA(1)C3D(2,2,2,0)C3D(1,2,2, 0)...

CAHVLC

在一些实施例中,CAHVLC将在HVLC3DPA中描述的VLC方案与 CAPAC的上下文自适应本质结合起来。

图7示出了量化变换系数的有序系列的CAHVLC的一个方法实施例 的简化流程图。该方法包括在703中,除非仅存在一个区域,否则定义将 系列分割成第一(低频)区域和第二(高频)区域的断点。

该方法还包括:在第一(低频)区域中,对有序系列进行编码,该有 序系列被编码为前面是运行长度为Rz,Rz≥0的多个连续的零并且后面跟 随着一个零的、运行长度为Rnz,Rnz≥1的连续非零值系数的簇的序列。 例如,系数序列9530130010...(全0)被编码为三个系数簇:9530,1 30和010。在705,在第一区域中,该方法包括对事件的位置进行编 码,每个事件包括Rnz,Rnz≥1的非零值量化系数,该编码使用多个预定 VLC映射,例如,VLC表,包括首先选择初始位置VLC映射,然后根据 一个或多个位置VLC选择标准(包括至少一个基于上下文的标准)在位 置VLC映射之间进行切换。针对低频区域中的所有事件重复此操作。该 方法包括在707中,对于第一区域,如果事件的位置编码留下了待编码的 任何非零幅度值,则根据多个预先选择的幅度VLC映射(例如VLC表) 之一(包括首先选择例如表之类的幅度VLC映射,并且然后根据一个或 多个幅度VLC选择标准(包括至少一个基于上下文的标准)在多个幅度 VLC映射之间进行切换),来按该系列的原始顺序的逆序来对簇或区域中 的待编码非零幅度值的幅度进行编码。针对所有簇重复此操作。在709, 该方法包括对符号进行编码,并且在711,将码字联接起来。在该系列中 存在一个以上的区域的情况中,例如,对于混合可变长度编码,该方法包 括在713中对其余(一个或多个)区域中的系数进行编码。

在一个版本中,每个系数簇由后面跟随有一定数量的一维幅度 (1DA)事件的一个三维位置幅度(3DPA)事件来表示。每个3DPA事件 具有(Rz,Rnz,T1)形式,其中Rz,Rnz分别是零和非零的运行长度,并且 T1≤Rnz是该簇中具有大小1的拖尾系数的数目。例如,系数簇000621 110将由具有两个其余幅度(6和2)的3DPA事件(3,5,3)来表示;另一簇0 00612110将由具有三个其余幅度(6,1和2)的3DPA事件(3,5,2)来表 示。

每个簇中T1个拖尾1之外的大小按逆扫描顺序通过1DA被编码。换 言之,编码开始于该簇中紧邻T1个拖尾1之前的非1系数,并且向较低频 率移动。例如,对于系数簇000612110,三个其余幅度(6,1,2)需要另 外的一维幅度编码。

多个编码表被用于3DPA和1DA编码两者,并且编码表基于可从经编 码的相邻块或可从当前正被编码的块的经编码部分得到的上下文信息而自 适应地被选择。在CAHVLC中,三个上下文在预测系数分布和确定VLC 表时被采用:(1)相邻块中的非零系数数目,被用来预测当前块中的非 零系数数目;(2)当前块中的先前编码系数簇中的非零运行和零运行的 运行长度;(3)当前块(按逆序)的每个非零簇中的先前编码的非零系 数的大小。

CABAC,CAVLC和C2DVLC

由于CABAC和CAVLC在公知的广泛使用的H.264/AVC标准中有所 描述,因此在这里不提供这些方法的详细描述。类似地,C2DVLC是针对 中国的AVS(中国音视频编码标准)描述的RL-VLC的变体。

CAVLC利用经量化的4x4块的若干特性,包括有序系列通常是稀疏 的,主要包含零。CAVLC使用运行级别编码来紧凑地表示零的运行。 CAVLC还使用如下观察结果:次序中最高的非零系数常常具有幅度1。高 频幅度1系数的数目被称为“拖尾1”,并且以紧凑方式被编码。一种实 现方式仅允许多达三个拖尾1。任何更多的拖尾1被视为它们具有大于1 的非零幅度。CAVLC还有利地利用:相邻块中的非零系数的数目是相关 的。利用查找表来对系数的数目进行编码;查找表的选择取决于相邻块中 非零系数的数目。CAVLC还有利地利用:非零系数的大小在接近DC系 数的有序序列开头处往往较高,往更高频率则较低。CAVLC通过依据最 近被编码的级别大小针对“level”参数适配VLC查找表的选择来利用这一 点。

图8示出了用于对量化变换系数的该有序序列进行编码的CAVLC的 概括的一个实施例的简化流程图,并且包括在803中,形成由非零系数的 数目和拖尾的幅度1系数的数目定义的联合事件。最后三个以外的任何拖 尾的幅度1都被作为非幅度1系数对待。该方法还包括在805中,例如利 用第一VLC方法,例如,利用第一2D VLC表,来对联合事件进行编码, 并且在807中,对每个拖尾1的符号进行编码。该方法还包括在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被用于(可以为 整个系列的)该系列的高频区域的类别。对于该区域:

CRL(Rz,Level,Ln)表示由三个参数定义的事件的码字,其中:

Rz:表示位于非零值系数之前的连续非零系数的运行长度,可能为 0。

Level(级别)表示紧随在前的零值系数的运行之后的非零系数的幅 度。

Ln表示指示其是否是该有序系列中的最后一个非零系数的二进制值。 在我们的记号中,Ln=1是指其是最后的非零值系数。

例如,考虑被分类到使用HVLC3DPA且将CAVLC用于高频区域的 类别中的有序系列,并且考虑示例有序系列:

9-53-2100211000-1100010...

假设断点被设在14处,并且其是软断点,因为其并不打断一个簇。 忽略用于符号的码,码字序列为:

C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1)C3D(1,3,2,0)CA(1)C3D(2,2,2,0)CRL(2,1,1) …

作为另一示例,考虑被分类为使用将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

块大小:64x64(16n x16n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度,并且它们在频谱的大部分中聚集。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:针对整个系列,即, 整个频谱的CAHVLC。

注意:高分辨率视频往往使用大的块大小。

类别号:2

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度,并且它们在频谱的大部分中聚集。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:针对整个系列的 CAHVLC,但是具有与针对64x64块大小的类别不同的VLC表。

注意:高分辨率视频往往使用大的块大小。

类别号:3

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有小的幅度,尤其是幅度1为主,并且这些非零系数在该系 列(频谱)的大部分中聚集。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、复杂 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个系列的 HVLC3DPA。

注意:高分辨率视频往往使用大的块大小。

示例序列:9-53-2100211000-1100110...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)C3D(1,2,2,0)...

类别号:4

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度并且它们在低频区域中聚集并在高频区域中发 散。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具体地,针 对低频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的在 H.264/AVC中使用的CAVLC。

注意:高分辨率视频往往使用大的块大小。

示例序列:9-53-2100211000-1100010...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)CRL(2,1,1)...

类别号:5

块大小:16x16(4n x4n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度,并且它们在该系列,即整个频谱的大部分中聚 集。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 CAHVLC,具有与针对32x32块大小类别而使用的CAHVLC不同的VLC 表。

注意:高分辨率视频往往使用大的块大小。

类别号:6

块大小:16x16(4n x4n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有小的幅度(尤其是以1为主)并且它们在低频区域中聚集 并在高频区域中发散。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、复杂 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的在AVS 中使用的C2DVLC。

注意:高分辨率视频往往使用大的块大小。

示例序列:9-53-2100211000-11000000001...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)CRL(7,1,1)...

类别号:7

块大小:8x8(2n x2n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度,并且它们在低频区域中聚集并在高频区域中发 散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC2DP1DA,以及RL_VLC,具体地,用于高频区域的在 AVS中使用的C2DVLC。

类别号:8

块大小:8x8(2n x2n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有小的幅度(尤其是以1为主),并且它们在低频区域中聚 集并在高频区域中发散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的在AVS 中使用的C2DVLC。

类别号:9

块大小:8x8(2n x2n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度并且它们在频谱的大部分中发散。

确定类别的(一个或多个)示例性其它因素:帧间、低分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,在AVS中使用的C2DVLC。

示例序列:0000100201000-1000110...

码字(不包括用于符号的码):CRL(4,1,0)CRL(2,2,0)CRL(1,1,0) CRL(3,1,0)CRL(3,1,0)CRL(0,1,1)

类别号:10

块大小:4x4(nxn)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度并且它们在整个的有序系列中,即,在频谱的大 部分中发散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,在H.264/AVC中使用的CAVLC。

示例序列:9-500100201000-1000110...

码字(不包括用于符号的码):CRL(0,9,0)CRL(0,5,0)CRL(2,1,0) CRL(2,2,0)CRL(1,1,0)CRL(3,1,0)CRL(3,1,0)CRL(0,1,1)

类别号:11

块大小:4x4(nxn)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有小的幅度(尤其是以1为主)并且它们在频谱的大部分中 发散。

确定类别的(一个或多个)示例性其它因素:帧间、低分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,CAVLC,但是具有替代编码方案以利用占主要地位 的低幅度系数,例如,使用ICAVLC

具有32x32大的块大小的分类示例

类别号:1

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度,并且它们在频谱的大部分中聚集。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 CAHVLC。

注意:高分辨率视频往往使用大的块大小。

类别号:2

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有小的幅度(尤其是1为主),并且它们在频谱的大部分中 聚集。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、复杂 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 HVLC3DPA。

注意:高分辨率视频往往使用大的块大小。

示例序列:9-53-2100211000-1100110...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)C3D(1,2,2,0)...

类别号:3

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度并且它们在低频区域中聚集并在高频区域中发 散。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的(在 H.264/AVC中使用的)CAVLC。

注意:高分辨率视频往往使用大的块大小。

示例序列:9-53-2100211000-110001...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)CRL(2,1,1)...

类别号:4

块大小:16x16(4n x4n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度,并且它们在频谱的大部分中聚集。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 CAHVLC(具有与32x32块大小不同的VLC表)。

注意:高分辨率视频往往使用大的块大小。

类别号:5

块大小:16x16(4n x4n)

与典型的这样的量化系数系列有关的观察:沿着预定路径的大多数非 零系数具有小的幅度(尤其是以1为主)并且它们在低频区域中聚集并在 高频区域中发散。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、复杂 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的(在 AVS中使用的)C2DVLC。

注意:高分辨率视频往往使用大的块大小。

示例序列:9-53-2100211000-11000000001...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)CRL(7,1,1)...

类别号:6

块大小:8x8(2n x2n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度,并且它们在低频区域中聚集并在高频区域中发 散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC2DP1DA,以及RL_VLC,具体地,用于高频区域的(在 AVS中使用的)C2DVLC。

类别号:7

块大小:8x8(2n x2n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有小的幅度(尤其是以1为主),并且它们在低频区域中聚 集并在高频区域中发散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC3DPA,以及RL_VLC,具体地,用于高频区域的(在 AVS中使用的)C2DVLC。

类别号:8

块大小:8x8(2n x2n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度并且它们在频谱的大部分中发散。

确定类别的(一个或多个)示例性其它因素:帧间、低分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,(在AVS中使用的)C2DVLC。

示例序列:0000100201000-1000110...

码字(不包括用于符号的码):CRL(4,1,0)CRL(2,2,0)CRL(1,1,0) CRL(3,1,0)CRL(3,1,0)CRL(0,1,1)

类别号:9

块大小:4x4(nxn)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有大的幅度并且它们在频谱的大部分中发散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率/低QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,(在H.264/AVC中使用的)CAVLC。

示例序列:9-500100201000-1000110...

码字(不包括用于符号的码):CRL(0,9,0)CRL(0,5,0)CRL(2,1,0) CRL(2,2,0)CRL(1,1,0)CRL(3,1,0)CRL(3,1,0)CRL(0,1,1)

类别号:10

块大小:4x4(nxn)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数具有小的幅度(尤其是以1为主)并且它们在频谱的大部分中 发散。

确定类别的(一个或多个)示例性其它因素:帧间、低分辨率、简单 场景、低比特速率/高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,CAVLC,但是具有替代编码方案以利用占主要地位 的低幅度系数,例如,使用ICAVLC。

具有32x32大的块大小和五个类的分类示例

类别号:1

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数在频谱的大部分中聚集。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、复杂 场景、高比特速率、低QP。

用于该类别的(一个或多个)预定义编码方法:将HVLC3DPA用于 针对整个有序系列的HVLC。

示例序列:9-53-2100211000-1100110...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)C3D(1,2,2,0)...

类别号:2

块大小:32x32(8n x8n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数在低频区域中聚集并在高频区域中发散。

确定类别的(一个或多个)示例性其它因素:帧间、高分辨率、复杂 场景、低比特速率、高QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC3DPA,以及用于高频区域的RL_VLC。

9-53-2100211000-1100010...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)CRL(2,1,1)...

类别号:3

块大小:16x16(4n x4n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的非零 系数在低频区域中聚集并在高频区域中发散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、复杂 场景、高比特速率、低QP。

用于该类别的(一个或多个)预定义编码方法:HVLC,具有用于低 频区域的HVLC3DPA,以及用于高频区域的RL_VLC。

示例序列:9-53-2100211000-1100010...

码字(不包括用于符号的码):C3D(0,5,1,0)CA(9)CA(5)CA(3)CA(1) C3D(1,3,2,0)CA(1)C3D(2,2,2,0)CRL(2,1,1)...

类别号:4

块大小:8x8(2n x2n)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数在频谱的大部分中发散。

确定类别的(一个或多个)示例性其它因素:帧间、低分辨率、简单 场景、低比特速率、高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,(在AVS中使用的)C2DVLC。

示例序列:0000100201000-1000110...(从高频到低频的量 化系数的逆序)

码字(不包括用于符号的码):CRL(4,1,0)CRL(2,2,0)CRL(1,1,0) CRL(3,1,0)CRL(3,1,0)CRL(0,1,1)

类别号:5

块大小:4x4(nxn)

与典型的这样的量化系数系列有关的观察:沿着该系列的顺序的大多 数非零系数在频谱的大部分中发散。

确定类别的(一个或多个)示例性其它因素:帧内、高分辨率、简单 场景、低比特速率、高QP。

用于该类别的(一个或多个)预定义编码方法:针对整个有序系列的 RL_VLC,具体地,(在H.264/AVC中使用的)CAVLC。

示例序列:9-500100201000-1000110...

码字(不包括用于符号的码):CRL(0,9,0)CRL(0,5,0)CRL(2,1,0) CRL(2,2,0)CRL(1,1,0)CRL(3,1,0)CRL(3,1,0)CRL(0,1,1)

解码

虽然以上描述的主要是编码方法,但是本领域技术人员将明白,本描 述还涉及对由这里描述的任何编码实施例编码的比特流进行解码的解码方 法和装置。该解码方法包括接受包含有通过上述编码方法编码的码字的比 特流,包括识别该比特流中的码字并且对码字进行解码。利用VLC映 射,例如,VLC表来对码字进行解码。此外,解码方法包括将块的码字分 类到相应类别中或者识别类别所包括的代码,以使得解码是针对该类别的 预定义编码方法的。

对于上下文自适应VLC方法,根据在编码中使用的一个或多个基于 上下文的选择标准来选择用于解码的VLC表。由于任何经解码的信息项 可由编码器在解码处理中使用,因此在码字的解码期间,任何基于上下文 的选择标准是已知的或者可从一个或多个先前解码信息项得到。例如,任 何表切换使用例如与正被编码的块相邻的(一个或多个)块的先前解码系 数的信息和/或正被解码的块内的先前解码系数的信息,根据与编码方法使 用的相同标准将用于特定码字的VLC表包括在解码方法中。

在针对某类别的预定义编码方法是混合方法以使得该系列包括第一 (低频)区域和一个或多个其它区域的情况中,编码方法包括对所有区域 进行编码。解码方法包括对所有区域的那些码字进行解码。

装置实施例

具体实施例包括装置实施例,该装置实施例包括分类器,被配置为接 受图像数据块的量化变换系数的有序系列并且根据包括该图像数据块的大 小在内的一个或多个因素将所接受系列分类到多种预定义类别中的类别 内。该装置实施例还包括熵编码器,被耦合到分类器并被配置为接受该有 序系列并且向所接受的有序系列应用多种预定义熵编码方法之一以形成码 字序列。熵编码方法是根据所接受系列的类别被应用的。如在方法实施例 中一样,对于至少两种不同预定义类别的不同大小的有序系列,不同预定 义熵编码方法被应用于这些不同预定义类别。

在预定义编码方法之一包括上下文自适应HVLC(CAHVLC)方法的 情况中,该编码器包括联合编码器,联合编码器被配置为在该系列的第一 区域(对于一些类别,其可以为整个系列)中,对各自由连续非零值系数 的簇定义的幅度事件和联合位置进行编码,每个事件由如下三个参数定 义:位于该簇之前的零值系数的数目、该簇中的非零值系数的数目以及指 示该簇中具有幅度1的拖尾非零值系数的数目的第三参数,其中该编码根 据3维联合VLC表进行。在一些实施例中,对于簇长度2,第三参数指示 两个量化系数中的哪个具有幅度1。在一些实施例中,对于簇长度1,第 三参数指示非零幅度的值。用于对CAHVLC进行编码的编码器还包括幅 度编码器,幅度编码器被配置为对未通过联合编码被编码的非零值系数进 行编码,例如,对幅度1拖尾系数之外的系数进行编码。这样的幅度包括 相对于幅度1的次最有可能出现幅度,其为幅度2。在一些实施例中,系 数幅度编码器对于指示幅度的每个值使用1-D VLC。一个实施例单独对不 与拖尾幅度1系数相邻的非零值系数进行编码,然后对这样的值,即,相 邻非零系数的幅度值减1进行编码,因为该系数具有大于1的幅度。

在预定义编码方法之一包括具有量化修改的上下文自适应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系数。

此外,在示例实施例的描述中,假设了系数的量化使得零是最有可能 出现的量化幅度并且1是次最有可能出现的量化幅度。当然,可以以如下 方式进行量化:该方式使得其它值或事件被用于最有可能出现的一个或多 个量化值,并且不同的其它值或事件被用于次最有可能出现的一个或多个 量化值。本领域技术人员将明白,如何修改这里描述的具体方法以容纳这 些变体,并且这些变体是本发明的其它实施例。

此外,本发明的实施例不限于任何一种类型的体系结构或任何一种类 型的变换编码或遵循某标准的变换编码。

此外,虽然示例实施例包括将系列分类到多个预定义类别之一内并且 将预定义熵编码方法映射到每种类别,但是本发明的其它实施例不限于这 里描述的VLC方法或者这里提供的示例中的类别的数目或者这里提供的 示例的块大小。

作为示例,具有局部可变量化的上下文自适应混合可变长度编码 CAHVLC(LV)可被用于一些更大的块。CAHVLC的效率中的一些来自于 其联合编码性质,例如,将零系数和非零系数的相应运行长度与拖尾1一 起表示为3元组并且通过更高维可变长度编码对其进行编码,并且将自适 应编码表切换用于位置编码和幅度编码两者。如果更少的编码(3DPA和 1DA)事件可用来表示整个变换系数系列并且/或者如果针对每个块的编码 事件可以通过消除图片的每块中的编码事件的局部变化而更好地与编码表 切换趋势相匹配,则可以进一步提高编码效率。CAHVLC(LV)包括根据局 部状况而局部地改变量化以便减少需要用来表示变换系数系列的编码事件 数目并且/或者在将编码事件与编码表切换趋势相匹配的同时保持引入的失 真较小。例如,可以包括以下量化修改中的一个或多个:

(1)在被分离的小的非零系数(比如1)之前有一系列零且后面跟随 着一系列零的情况中,其中,该被分离的小的非零系数被量化为零以使得 单个3DPA事件可以表示长得多的系数系列。非零系数的大小较小,例如 为1,通常仅引入小的失真(由于将系数量化为零引入的)。

(2)在被分离的零系数之前有一系列非零系数且后面跟随着一系列 非零系数的情况中,被分离的零系数被量化为非零值,例如1,以使得其 可通过一个3DPA事件被编码而不会引入显著失真。

(3)在一对小的系数(01)之前有一系列非零系数且后面跟随着一系 列零系数,例如需要三个3DPA事件来编码的(...853210100053100 00...)的情况中,一种或两种方式被用来通过以(00)或(11)取代(01)来减 少编码事件的数目。

(4)在一对小的系数(10)之前有一系列零系数且后面跟随着一系列 非零系数,例如需要三个3DPA事件来编码的(...853210001053100 00...)的情况中,用来减少编码事件数目的如下两种方式之一被使用:以 (00)或(11)取代(10)。

(5)在小的非零非幅度1的系数(例如幅度为2的系数)之前有一 系列幅度为1的系数且后面跟随着一系列幅度为1的系数的情况中,幅度 为2的系数被量化为具有幅度1,以使得更多系数可通过拖尾幅度1系数 的数目(T1)被编码,从而使得更少的系数需要通过另外的1DA编码被编 码。通过修改一个小的系数,减少了编码事件的数目。

本公开不依赖于任何特定类型的帧间编码(如果被使用的话)或者运 动补偿(如果被用于帧间编码的话),或者任何帧内估计(如果被用于利 用来自相邻块的信息估计块的像素的话)。

注意,可变长度编码有时称为熵编码或统计编码。

注意,术语编码(coding)和编码(encoding)在此可互换使用。

注意,术语系列指量化变换系数的有序系列,除非另外指示。

注意,幅度指量化之后的幅度,除非在此另外指示。

还注意,零值和非零值是指根据量化方法进行量化之后的幅度值,以 使得零是最有可能出现的量化幅度,1是次最有可能出现的量化幅度。类 似地,在提到系数的值的情况中,将明白,该术语是指量化的值,除非另 外指示或者从情境中能够清楚。

在上述实施例的一些中,包括有无符号数据。大多数变换产生正的和 负的系数,并且码字的形成包括对任何非零值量化系数的符号的指示。在 一个版本中,任何区域中的非零幅度的任何运行的符号信息与每个幅度的 信息一起被添加。在替代实施例中,任何区域中的非零幅度的任何运行的 符号信息可以不同方式被包括,例如作为用于符号系列的代码。用于对符 号进行编码的其它替代实施例也是可以的。本领域技术人员将明白,本发 明的实施例不限于用于包括符号信息的任何特定机制。

注意,在用于幅度编码的一些示例中,不同数目的可能的非零值可被 假设用于系数。然而,本发明的实施例不限于任何数目的可能的量化值。

还注意,术语幅度与符号无关。因此,例如,值+1和-1的系数都具有 幅度1。

虽然这里描述的一个实施例包括存储编码表的存储器,然而其它实施 例以表之外的数据结构(例如,包括树的结构)的形式来存储编码信息。 其它数据结构也可被使用。类似地,虽然这里描述的一个实施例包括存储 解码的存储器,然而其它实施例以用于解码的表之外的数据结构的形式来 存储解码信息。

还注意,本公开不依赖于用于任何编码方法(例如,编码表)的特定 类型的可变长度编码,并且例如,可以利用霍夫曼编码和算术编码方法进 行工作。此外,虽然描述的实施例针对基于假设的或先验的事件出现可能 性的事件(也称为事件)使用固定的编码,即,事件出现的可能性不变, 然而其它实施例使用自适应编码,即,该编码可根据统计数据(例如从实 际系数收集的直方图)改变。

除非特别阐明,否则如从以下讨论将清楚的,将理解,在整个说明书 中,使用诸如“处理”、“计算”、“运算”、“确定”等之类的术语的 讨论是指操纵被表示为物理(诸如电子)量的数据和/或将被表示为物理量 (诸如电量)的数据变换成类似地被表示为物理量的其它数据的计算机或 计算系统,或者类似的电子计算设备的动作和/或处理。

以类似方式,术语“处理器”可指处理例如来自寄存器和/或存储器的 电子数据以将该电子数据变换成例如可存储在寄存器和/或存储器中的其它 电子数据的任何设备或设备的一部分。“计算机”或“计算机器”或“计 算平台”可以包括一个或多个处理器。

注意,当描述包括若干元素(例如,若干步骤)的方法时,没有隐含 这些元素(例如,步骤)的顺序,除非特别阐述。

在一些实施例中,这里描述的方法可由一个或多个处理器执行,这一 个或多个处理器接受逻辑,例如编码在一个或多个计算机可读存储介质上 的指令。当被一个或多个处理器运行时,指令使得执行这里描述的至少一 种方法。能够(顺序地或以其它方式)运行指定要采取的动作的指令集的 任何处理器被包括。因此,一个示例是包括一个或多个处理器的典型处理 系统。每个处理器可以包括CPU或类似元件、图形处理单元(GPU)和/ 或可编程DSP单元中的一个或多个。处理系统还包括:具有至少一个存储 介质的存储子系统,其可包括嵌入在半导体设备中的存储器;或者单独的 存储器子系统,其包括主RAM和/或静态RAM和/或ROM,以及高速缓 存存储器。存储子系统还可以包括一个或多个其它存储设备,例如磁和/或 光和/或另外的固态存储设备。用于在组件之间进行通信的总线子系统可被 包括。处理系统还可以是分布式处理系统,该分布式处理系统具有例如经 由网络接口设备或无线网络接口设备通过网络相耦合的处理器。如果处理 系统需要显示器,则可以包括这样的显示器,例如,液晶显示器 (LCD)、有机发光显示器(OLED)或阴极射线管(CRT)显示器。如 果需要手动数据输入,则处理系统还包括输入设备,例如,诸如键盘之类 的字母数字输入单元、诸如鼠标之类的点选控制设备等中的一个或多个。 如果从上下文能清楚以及除非另外明确阐述,否则这里使用的术语存储设 备、存储子系统或存储器单元还涵盖了诸如盘驱动单元之类的存储系统。 一些配置中的处理系统可以包括声音输出设备和网络接口设备。

在替代实施例中,一个或多个处理器作为单独设备操作,或者可在联 网部署中被连接,例如被联网到(一个或多个)其它处理器,一个或多个 处理器在服务器-客户端网络环境中可以以服务器或客户端机器的能力操作 或者在对等或分布式网络环境中作为对等机器操作。术语处理系统涵盖了 所有这些可能性,除非这里明确排除。一个或多个处理器可以形成个人计 算机(PC)、媒体回放设备、平板PC、机顶盒(STB)、个人数字助理 (PDA)、游戏机、蜂窝电话、Web装置、网络路由器、交换机或桥接 器、或者能够(顺序地或以其它方式)执行指定该机器要采取的动作的指 令集的任何机器。

注意,虽然某个或某些示图仅示出了单个处理器和单个存储子系统, 例如,存储包括指令的逻辑的单个存储器,但是本领域技术人员将明白, 上述组件中的许多被包括,而没有明确示出或描述,以便不模糊发明性方 面。例如,虽然仅单个机器被图示出,但是术语“机器”还应被认为包括 个体地或联合地执行一个(或多个)指令集以执行这里讨论的任何一个或 多个方法的任何机器集合。

虽然计算机可读介质在示例实施例中可能被示为单个介质,但是术语 “介质”应当被认为包括存储一个或多个指令集的单个介质或多个介质 (例如,若干存储器、中央式或分布式数据库、一个或多个服务器等)。 计算机可读存储介质可以采取许多形式,包括但不限于固态存储器、诸如 光盘之类的光存储器、诸如磁盘之类的磁存储器和磁光盘。

还将明白,本发明的实施例不限于任何特定实现方式或编程技术并且 这些实施例可以利用用于实现这里描述的功能的任何合适技术来实现。此 外,实施例不限于任何特定编程语言或操作系统。

在本说明书中对“一个实施例”或“实施例”的引用是指结合该实施 例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因 此,说明书各个地方出现的短语“在一个实施例中”或“在实施例中”不 一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例 中,如本领域技术人员从本公开将清楚的,可以以任何合适方式来组合特 定特征、结构或特性。

类似地,应理解,在本发明的示例实施例的以上描述中,本发明的各 种特征有时在单个实施例、附图或其描述中被分组在一起以便流畅地描述 本公开并且辅助理解各个发明性方面中的一个或多个方面。然而,本公开 的该方法不被解释为反映如下意图:要求保护的发明需要比每个权利要求 中明确记载的特征更多的特征。而是,如以下权利要求反映的,发明性方 面在于比单个前面公开的实施例的所有特征更少。因此,具体实施方式后 面的权利要求在此明确地被结合到本具体实施方式中,每个权利要求代表 其自己。

此外,虽然这里描述的一些实施例包括其它实施例中的一些特征而不 包括其它特征,但是两个或更多个实施例的特征的组合形成了本发明的不 同实施例,如本领域技术人员将明白的。例如,在以下权利要求中,可以 以任何组合来使用要求保护的实施例中的任何实施例。

此外,实施例中的一些在此被描述为可由计算机系统的处理器或实现 功能的其它装置来实现的方法或方法的元素的组合。因此,具有实现该方 法或方法的元素的必要指令的处理器形成了实现该方法或方法的元素的装 置。此外,装置实施例的这里描述的元素是用于实现由该元素执行的功能 的装置的示例。

在这里提供的描述中,阐述了多个具体细节。然而,将明白,本发明 的实施例可以在没有这些具体细节的情况下实施。在其它实例中,公知的 方法、结构和技术未详细示出,以便不模糊对本描述的理解。

如这里使用的,除非另外指出,否则,对描述共同对象的序数形容词 “第一”、“第二”、“第三”等的使用仅仅表示类似对象的不同实例被 提及,而不旨在隐含着如此描述的对象必须在时间上、空间上、排序上或 任何其它方式上位于给定的序列中。

这里引用的指定美国的所有美国专利、美国专利申请和国际(PCT) 专利申请通过引用被结合于此。在专利法或专利状态不允许本身通过引用 结合了信息的素材被通过引用结合的情况中,这里素材的通过引用结合排 除在该“通过引用结合”的素材中的任何通过引用结合的信息,除非这样 的信息明确被通过引用结合于此。

本说明书中对现有技术的任何讨论不应以任何方式被认为是承认这些 现有技术是广泛已知的,公开知道的或者形成本领域普通知识的一部分。

在下面的权利要求和这里的描述中,术语包含、由…组成或其包含中 的任一者是开放式术语,其意味着至少包括下面的元素/特征,但不排除其 它的元素/特征。因此,当在权利要求中使用时,术语包含不应解释为限于 此后列出的装置或元素或步骤。例如,“设备包含A和B”这一表述的范 围不应局限于设备仅由元件A和B组成。如这里使用的包括或其包括或它 包括中的任一者也是开放式术语,其也意味着至少包括该术语之后的元素/ 特征,但不排除其它的元素/特征。因此,包括与包含同义且意味着包含。

类似地,注意,当在权利要求中使用时,术语耦合不应被解释为仅限 于直接连接。术语“耦合”和“连接”及其衍生词可以被使用。应明白, 这些术语彼此不是同义的。因此,表述“设备A耦合到设备B”的范围不 应限于设备A的输出直接连接到设备B的输入的设备或系统。其意味着, A的输出与B的输入之间存在路径,该路径可能是包括其它设备或装置的 路径。“耦合”可以指两个或两个以上的元件直接物理地或电气地接触, 或者两个或两个以上的元件彼此不直接接触但依然彼此协同操作或交互。

因此,虽然已描述了被认为是本发明的示例实施例的内容,然而本领 域技术人员将认识到,可在不脱离本发明的精神的情况下对其作出其它和 另外的修改,并且意欲所有这些改变和修改都落在所附权利要求的范围 内。例如,以上给出的任何公式仅仅代表可使用的过程,可从框图中添加 或删除功能,功能块间的操作可互换,并且可向在本发明范围内描述的方 法添加或删除步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号