用于视频数据译码的可变长度码的制作方法

文档序号:7525212阅读:113来源:国知局
专利名称:用于视频数据译码的可变长度码的制作方法
技术领域
本发明的方面大体上涉及视频译码,且更明确地说,涉及基于块的视频译码。
背景技术
可将数字视频能力并入到广泛范围的装置中,所述装置包括数字电视、数字直播系统、无线通信装置、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、视频游戏装置、蜂窝式或卫星无线电电话或其类似者。数字视频装置实施例如MPEG-2、 MPEG-4或H. 264/MPEG-4高级视频译码(AVC)等视频压缩技术,以更有效地发射及接收数字视频。视频压缩技术执行空间及时间预测以减少或移除视频信号中所固有的冗余。在视频译码中,视频压缩通常包括空间预测、运动估计及运动补偿。明确地说,帧内译码依赖于空间预测以减少或移除给定视频帧内的视频中的空间冗余。帧间译码依赖于时间预测以减少或移除邻近帧内的视频中的时间冗余。对于帧间译码,视频编码器执行运动估计以跟踪两个或两个以上邻近帧之间的匹配视频块的移动。运动估计产生运动向量,所述运动向量指示视频块相对于一个或一个以上参考帧中的对应视频块的位移。运动补偿使用运动向量来根据参考帧产生预测视频块。在运动补偿之后,通过从原始视频块减去预测视频块来形成残余视频块。视频编码器应用变换过程、量化过程及熵译码过程以进一步减少残余块的位率。熵译码通常涉及应用算术码或可变长度码(VLC)以进一步压缩通过变换运算及量化运算产生的残余系数。实例包括上下文自适应性二进制算术译码(CABAC)及上下文自适应性可变长度译码(CAVLC),其在一些编码器中可用作替代性熵译码模式。在使用块中的每一者的运动信息及残余信息的情况下,视频解码器执行逆运算以重构经编码视频。

发明内容
本发明的方面包括用于数字视频数据(例如变换块系数及残余数据)的译码方案,其使用可变长度码(VLC)。可以特定次序扫描来自每一数字视频块的系数且将其布置成有序阵列。在一个方面中,本发明提供一种视频译码装置,所述视频译码装置包含可变长度码(VLC)单元,所述VLC单元经配置以使用表示一个或一个以上VLC参数的符号组合来执行所述数字视频块系数的VLC译码。所述VLC参数包括所述系数阵列中的系数的游程、层级及块结束(EOB)信息。本发明进一步提供一种多层级VLC表,其中第一层级VLC表基于符号组合的出现机率而将符号组合映射到码字,且第二层级VLC表包含可经动态地产生且无需加以存储的结构化码。基于由特定符号组合表示的游程信息,可将所述符号组合译码为来自所述第一层级VLC表的码字,或译码为来自所述第一层级VLC表的转义码及来自所述第二层级VLC表的码字。可通过限制作为待映射到所述第一层级VLC表中的码字的候选者的可能符号组合的数目来改进译码效率及总系统性能。在一个实例中,本发明提供一种方法,所述方法包括识别变换块的多个数字视频块系数的多个符号组合的游程信息,其中所述游程信息指示相连零系数的数目;存储定义多层级VLC表的数据,其中所述多层级VLC表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合;及对于包含指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,将第一码字指派给所述第一符号组合,其中所述第一码字包含来自所述第一层级VLC表的转义码。在另一实例中,本发明提供一种用于译码视频数据的视频译码装置,所述视频译码装置包括可变长度码(VLC)表模块,其经配置以存储定义多层级VLC表的数据,其中所述多层级表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合;及VLC译码模块,其经配置以将第一码字指派给第一符号组合,所述第一符 号组合包含第一游程信息,所述第一游程信息指示大于截止游程值的相连零系数的第一数目,其中所述第一码字包含来自所述第一层级VLC表的转义码。在一个实例中,本发明提供一种视频译码设备,所述视频译码设备包括用于识别变换块的多个数字视频块系数的多个符号组合的游程信息的装置,其中所述游程信息指示相连零系数的数目;用于存储定义多层级VLC表的数据的装置,其中所述多层级VLC表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合;对于包含指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,用于将第一码字指派给所述第一符号组合的装置,其中所述第一码字包含来自所述第一层级VLC表的转义码。本发明中所描述的技术可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,则可在一个或一个以上处理器(例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP))中执行所述软件。最初可将执行所述技术的软件存储于计算机可读媒体中,且在处理器中加载及执行所述软件。因此,本发明还涵盖一种非暂时性计算机可读存储媒体,所述非暂时性计算机可读存储媒体有形地存储一个或一个以上指令,所述一个或一个以上指令在由一个或一个以上处理器执行时致使所述一个或一个以上处理器识别变换块的多个数字视频块系数的多个符号组合的游程信息,其中所述游程信息指示相连零系数的数目;存储定义多层级VLC表的数据,其中所述多层级VLC表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合;对于包含指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,将第一码字指派给所述第一符号组合,其中所述第一码字包含来自所述第一层级VLC表的转义码。在附图及以下描述中陈述本发明中所描述的技术的一个或一个以上方面的细节。本发明的方面的其它特征、目标及优点将从所述描述及图式中以及从权利要求书中显而易见。


图I为说明实施本发明的各种方面的视频编码及解码系统的框图。
图2为说明图I所示的视频编码器的实例的框图。图3为说明图I所示的视频解码器的实例的框图。图4为经配置以实施本发明的方面的熵编码单元的框图。图5为经配置以实施本发明的方面的熵解码单元的框图。图6展示说明本发明中所描述的译码技术的流程图。图7展示说明本发明中所描述的译码技术的流程图。图8展示说明本发明中所描述的译码技术的流程图。 图9展示折线扫描方案的实例。图10展示变换块的实例。
具体实施例方式本发明的方面大体上涉及视频译码,且更明确地说,涉及基于块的视频译码。在从源装置发射到接收装置之前,可产生一个或一个以上符号模式,其表示数字视频块系数(例如视频块的变换系数,及残余视频数据)。所述符号模式可表示例如数目等信息,所述数目表示在非零系数之前或之后的相连零系数的数目。此相连零的数目通常被称为游程长度。由符号模式表示的信息还可包括特定非零系数是具有为I的值还是具有不同于I的某值(还被称为大于一(GTO)),或特定系数是否为数据块中的最后非零系数(其通常被称为块结束(EOB))。从所述符号模式,接收装置可使用比假如在不使用符号模式的情况下分离地发送且用信号传递每一块系数时的数据位少的数据位来重构数据块。为了进一步减少从源装置发射到接收装置的位的数目,符号模式可在被发射之前经历一种形式的无损耗统计译码(通常被称为“熵译码”)。熵译码利用给定数据集合(在此例子中,符号模式集合)的符号分布属性,且一般来说,将较短码字指派给所述数据集合中较频繁出现的符号模式及将较长码字指派给所述数据集合中较不频繁出现的符号模式。本发明的方面可提供一种用于产生较大数据块的符号模式及用于将码字指派给那些符号模式的经改进的方法及系统。在信息论的上下文中,符号指代相异或可识别的位模式。实例符号可为用以表达字符的位,例如用于字母“a”的ASCII码。如本发明中所使用,符号模式通常指代表示一个或一个以上符号的位模式,其中所述一个或一个以上符号表示信息项,例如游程长度、GTO或Ε0Β。如本发明中所使用,符号组合指代表示一个或一个以上符号模式的信息的位模式。因此,符号组合可(例如)为表示游程长度或EOB的位模式,但符号组合还可为表示游程长度及EOB两者或游程长度、EOB及GTO的位模式。图I为说明实施本发明的方面的视频编码及解码系统10的框图。如图I所示,系统10包括源装置12,源装置12经由通信信道16而将经编码视频数据发射到接收装置14。源装置12可包括视频源18、视频编码器20及发射器22。接收装置14可包括接收器24、视频解码器26及视频显示装置28。系统10可经配置以实施本发明中所描述的各种技术。在图I的实例中,通信信道16可包括任何无线或有线通信媒体(例如射频(RF)频谱或一个或一个以上物理传输线),或无线媒体与有线媒体的任何组合。信道16可形成基于包的网络(例如局域网、广域网,或例如因特网等全域网)的部分。通信信道16通常表示任何合适通信媒体或不同通信媒体的集合,其用于将视频数据从源装置12发射到接收装置14。
源装置12产生供发射到接收装置14的视频。然而,在一些情况下,装置12、14可以大致上对称方式进行操作。举例来说,装置12、14中的每一者可包括视频编码及解码组件。因此,系统IO可支持视频装置12、14之间的单向或双向视频发射,例如,用于视频串流、视频广播或视频电话。因此,可在源装置12、接收装置14或两者中实施本发明的方面。视频源18可包括视频俘获装置(例如一个或一个以上摄像机)、含有经先前俘获视频的视频档案,或来自视频内容提供者的实况视频馈送。作为另一替代方案,视频源18可产生作为源视频的基于计算机图形的数据,或实况视频与计 算机产生视频的组合。在一些情况下,如果视频源18为相机,则源装置12及接收装置14可形成所谓的相机电话或视频电话。在每一情况下,可由视频编码器20编码经俘获视频、经预俘获视频或计算机产生视频以用于经由发射器22、信道16及接收器24而从视频源装置12发射到视频接收装置14的视频解码器26。显示装置28可包括多种显示装置中的任一者,例如液晶显示器(LCD)、等离子显示器或有机发光二极管(OLED)显示器。视频编码器20及视频解码器26可经配置以支持针对空间、时间及/或信噪比(SNR)可按比例缩放能力的可按比例缩放视频译码。在一些方面中,视频编码器20及视频解码器26可经配置以支持针对SVC的精细粒度SNR可按比例缩放能力(FGS)译码。在一些实例中,视频编码器20及视频解码器26可通过支持基础层及一个或一个以上可按比例缩放增强层的编码、发射及解码而支持各种程度的可按比例缩放能力。对于可按比例缩放视频译码,基础层携载具有最小质量水平的视频数据。一个或一个以上增强层携载额外位流以支持较高空间、时间及/或SNR水平。视频编码器20及视频解码器26可根据例如MPEG-2、MPEG-4、ITU-T H. 263或ITU-TH. 264/MPEG-4高级视频译码(AVC)等视频压缩标准进行操作。视频编码器20及视频解码器26还可根据例如ITU-T H. 265等下一代视频译码标准进行操作。视频编码器20及视频解码器26各自可实施为一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码器20及视频解码器26中的每一者可包括于一个或一个以上编码器或解码器中,所述一个或一个以上编码器或解码器中的任一者可在相应移动装置、订户装置、广播装置、服务器或其类似者中被集成为组合式编码器/解码器(编解码器)的部分。另外,源装置12及接收装置14各自可包括适当的调制组件、解调组件、频率转换组件、滤波组件及放大器组件以用于发射及接收经编码视频(在适用时),所述组件包括足以支持无线通信的射频(RF)无线组件及天线。然而,为了说明的简易性,在图I中未展示此些组件。视频序列包括一系列视频帧。视频编码器20对个别视频帧内的像素块进行操作,以便编码视频数据。视频块可具有固定或变化大小,且视频块的大小可根据指定译码标准而不同。每一视频巾贞包括一系列片段。每一片段可包括一系列宏块,所述宏块可被布置成子块。作为实例,ITU-T H. 264标准支持以各种块大小(例如对于亮度分量的16乘16、8乘
8、4乘4,及对于色度分量的8乘8)的帧内预测,以及以各种块大小(例如对于亮度分量的16乘16、16乘8、8乘16、8乘8、8乘4、4乘8及4乘4,及对于色度分量的对应按比例缩放大小)的帧间预测。较小视频块可提供较好分辨率,且可用于视频帧的包括较高细节水平的位置。一般来说,宏块(MB)及各种子块可被视为视频块。另外,片段可被视为一系列视频块,例如MB及/或子块。每一片段可为可独立解码单元。在预测之后,视频编码器20将变换应用于8乘8残余块或4乘4残余块。如果使用帧内16 X 16预测模式,则可将额外变换应用于针对色度分量或亮度分量的4乘4块的DC系数。尽管可出于解释的目的而在片段层级处描述本发明的方面,但还可在图片层级处应用相同技术。通常,视频编码器20将离散余弦变换(DCT)应用于块,从而产生DCT系数(还被称为变换系数,或更通常被称为数字视频块系数)。DCT产生DCT系数,所述DCT系数通常为有序的,使得具有非零值的所得DCT系数被分组在一起且具有零值的DCT系数被分组在一起。视频编码器20接着执行一种形式的串行化,其涉及根据特定扫描次序或模式来扫描所得DCT系数。下文关于图9的实例说明折线扫描,但可使用不同扫描模式以便提取零DCT系数及非零DCT系数的群组,例如垂直扫描模式、水平扫描模式或其它扫描模式。一旦被提取,视频编码器20即刻执行通常被称为“游程长度译码”的译码,其通常涉及计算在被串行化之后相连(即,彼此邻近)的零DCT系数的总数(即,所谓的“游程”)。 如下文将以图9及10的实例较详细地展示,可产生一个或一个以上符号组合,其描述串行 化DCT系数。所述符号组合可表示例如游程长度、GTO、EOB等信息,及可由接收装置14使用以重构串行化DCT系数的其它信息。在使用所述符号组合的情况下,接收装置14可重构串行化DCT系数,且最终,使用比假如在不使用符号组合的情况下分离地发送且用信号传递每一 DCT系数时的数据位少的数据位来重构数据块。接下来,视频编码器20执行统计无损耗译码,其通常被称为熵译码。熵译码为无损耗过程,其用以进一步减少需要从源装置12发射到接收装置14的位的数目,以便使接收装置14重构DCT系数集合。熵译码利用给定符号组合集合的符号分布属性,且一般来说,将较短码字指派给较频繁出现的符号组合且将较长码字指派给较不频繁出现的符号组合。在一些动态实施方案中,视频编码器20及视频解码器26可各自包括如下功能性,其用于跟踪某些符号组合的出现机率,使得对于给定上下文,可将在那个上下文中最频繁出现的符号组合映射到较短码字。可基于特定符号组合已出现的总次数或基于特定符号组合已出现的加权总次数(其中较新近出现的符号组合相较于较不新近出现的符号组合被加权得较重)来跟踪符号出现机率。还可基于特定符号组合已在特定窗口内出现的总次数或加权总次数(例如T个最新近符号组合)来跟踪符号出现机率。符号组合到码字的映射可在视频编码器20及视频解码器26处存储于多个VLC表或任何其它类型的数据结构中。存储于VLC表中的映射可为可自适应的,使得随着符号组合的所跟踪出现机率改变,符号组合到码字的映射也可改变。如果一些符号组合的出现机率变得比其它符号组合的出现更有机率或更没有机率,则在动态实施方案中,视频编码器20及视频解码器26可通过基于所述符号组合中的一些符号组合的出现机率而将其重新映射到较长码字或较短码字来更新VLC表。在这些动态实施方案中,视频编码器20及视频解码器26可经配置以实施相同数据处理技术,使得可在视频解码器26处反映出现于视频编码器20处的对VLC表的改变,而在源装置12与接收装置14之间不发送反映所述改变的数据。如下文将较详细地描述,H. 264/MPEG-4AVC标准定义用于译码变换系数的一种形式的熵译码,其被称为上下文自适应性可变长度译码(CAVLC)。CAVLC经特定地设计用于4乘4变换大小,但不总是适用于大于4乘4的变换。明确地说,大于4乘4的变换通常具有待映射到单一 VLC表的大得多的数目个可能符号组合。因此,视频编码器20必须跟踪出现机率所针对的符号组合的数目也可大得多,这可降低动态实施方案(比如上文所提及的动态实施方案)中的符号自适应的效率。由于符号自适应的效率降低,所以总译码效率及总系统性能也可降低。假定一部分视频的内容统计相对恒定,则一旦视频编码器20及视频解码器26已处理足够大的数目个符号组合,符号组合的所跟踪出现机率通常即刻达到相对稳定值。在此情况下,码字到在VLC表中所维持的符号组合的映射也变得相对稳定,其中视频编码器20及视频解码器26仅偶而需要通过将符号组合重新映射到码字来更新经存储VLC表。然而,在熵译码的早期阶段中或当存在对一部分视频的内容统计的显著改变时,存储于VLC表中的某些符号组合的出现机率可能不反映那部分视频的实际出现机率,这可导致译码效率受损失。就与大于4乘4的变换相关联的可能符号组合的较大数目来说,在符号组合的出现次数开始表示其实际出现机率之前需要由视频编码器20处理的符号组合的数目可显 著较大,因此延长这些无效熵译码周期。本发明的方面可改进VLC表的构建及维护,且因此通过减少这些无效熵译码周期对总译码效率的影响来改进译码效率。此外,因为CAVLC被特定地设计用于4乘4变换大小,所以CAVLC可能不能够满足编码高分辨率或所谓的高清晰度(HD)视频数据的需求。HD视频数据常常利用显著大于4乘4变换的变换,以便实现较好的译码效率。较大变换大小导致较多潜在符号组合,这是因为可能的符号组合的数目随着正被编码的数据的大小而增加,正被编码的数据的大小与所应用的变换的大小成正比。在此方面,CAVLC将需要大得多的表来存储所有可能的组合及其相关联码字。因此,除了上文所论述的VLC码字映射的缓慢自适应以外,扩展CAVLC以编码此高分辨率或HD视频数据也可导致显著较多的计算资源专用于跟踪出现机率,及显著较多的存储器消耗用以存储这些较大表(其通常被称为“码簿”)。根据本发明的方面,视频编码器20存储定义一个或一个以上多层级VLC表的数据且基于由特定符号组合表示的相连零系数的数目(即,游程长度)来限制作为多层级VLC表的第一层级的候选者的符号组合,而非维持用于所有可能符号组合的单层级VLC表。多层级VLC表的此第一层级可使用一般VLC技术使符号组合与码字相关联。多层级VLC表的第二层级可利用结构化VLC码,例如哥伦布-莱斯(Golomb-Rice)码。归因于第二层级VLC表的结构化性质,无需存储多层级VLC表的此第二层级,这是因为作为一个实例,可基于编码器及解码器两者所知晓的某些参数来动态地确定哥伦布-莱斯码。可将本发明的多层级VLC表的第一层级表征为存储符号组合与用于最频繁出现的符号组合的码字之间的映射。可将本发明中所描述的多层级VLC表的第二层级表征为提供在不将任何实际表存储到存储器的情况下动态地确定用于较不频繁出现的符号组合的码字的方式。在此方面,本发明的方面可改进从应用大于4乘4的大小的变换所产生的变换系数的编码及解码效率,同时还通过提供结构化码的第二层级来改进存储器消耗。经改进的译码效率可由将VLC应用于变换系数引起,所述变换系数由当尚未以此方式扩展常规CAVLC时应用大于4乘4的大小的变换引起。基于由特定符号组合表示的相连零系数的数目来限制作为多层级VLC表的第一层级的候选者的符号组合降低了视频编码器20需要跟踪出现机率所针对的符号组合的总数,这可导致机率跟踪较快地自适应,因此缩短上文所论述的无效熵译码周期。另外,由于依赖于不需要产生任何经存储码簿的结构化码字的第二层级而还可减少码簿所消耗的存储器的量。经改进的编码及解码效率可减少需要从源装置12发送到接收装置14以便使接收装置14的视频解码器26重构变换系数集合的位的数目。此外,经改进的译码及解码效率促进较有效的功率利用,这可在电池驱动的便携式装置(例如手持机或其它蜂窝式电话,包括所谓的“智能电话”)的上下文中特别重要。为了说明这些技术,视频编码器20可针对多个变换系数来确定指示相连且具有为零的值的系数的数目的游程信息。视频编码器20存储定义如上文所提且下文较详细地描述的多层级VLC表的数据。多层级VLC表包含第一层级VLC表及第二层级VLC表。第一层级VLC表以上文所描述的方式将码字映射到符号组合。响应于识别表示大于截止游程值的游程值的符号组合,视频编码器20将来自第一层级VLC表的转义码及来自第二层级VLC表的码字指派给所述符号组合。游程值通常指代相连零系数的数目,所述相连零系数取决于正使用的译码方案而在非零系数之前或之后。截止游程值通常指代阈值,其基于特定符号组合的游程值来确定将如何译码所述特定符号组合。举例来说,可将截止游程值设定为五。因此,可将指示六个 零系数取决于所使用的译码方案而在非零系数之前或之后的符号组合译码为转义码与来自第二层级VLC表的码字的串连。当视频解码器26检测到转义码时,其进一步解码来自第二层级VLC表的码字。相较于将符号组合译码为来自第一层级VLC表的码字,将符号组合译码为转义码与来自第二层级VLC表的码字的串连通常需要较多位。因此,本发明的方面包括将较频繁出现的符号组合译码为在第一层级VLC表中的码字,且将较不频繁出现的符号组合译码为转义码与来自第二层级VLC表的码字的串连。图2为说明视频编码器20 (例如图I中的视频编码器20)的实例的框图。视频编码器20可执行视频帧内的块的帧内译码及帧间译码。帧内译码依赖于空间预测以减少或移除给定视频帧内的视频中的空间冗余。帧间译码依赖于时间预测以减少或移除视频序列的邻近帧内的视频中的时间冗余。对于帧间译码,视频编码器20执行运动估计以跟踪邻近帧之间的匹配视频块的移动。如图2所示,视频编码器20接收待编码视频帧内的当前视频块30。在图2的实例中,视频编码器20包括运动估计单元32、参考帧存储装置34、运动补偿单元36、块变换单元
38、量化单元40、逆量化单元42、逆变换单元44及熵译码单元46。可应用回路内去块滤波器(未图示)以对块进行滤波以移除成块假影。视频编码器20还包括求和器48及求和器
50。图2说明视频编码器20的用于视频块的帧间译码的时间预测组件。尽管为了说明的简易性而在图2中未展示,但视频编码器20还可包括用于一些视频块的帧内译码的空间预测组件。运动估计单元32将视频块30与一个或一个以上邻近视频帧中的块进行比较以产生一个或一个以上运动向量。可从参考帧存储装置34检索所述邻近帧,参考帧存储装置34可包括任何类型的存储器或数据存储装置以存储从经先前编码块重构的视频块。可针对可变大小(例如,32乘32、32乘16、16乘32、16乘16、16乘8、8乘16、8乘8或更小块大小)的块执行运动估计。运动估计单元32识别最紧密地匹配于当前视频块30的在邻近帧中的一个或一个以上块(例如,基于速率失真模型),且确定邻近帧中的块与当前视频块之间的位移。基于此情形,运动估计单元32产生一个或一个以上运动向量(MV),其指示当前视频块30与来自用以译码当前视频块30的参考帧的一个或一个以上匹配块之间的位移的量值及轨迹。运动向量可具有二分之一像素精确度或四分之一像素精确度,或甚至更精细的精确度,从而允许视频编码器20跟踪具有比整数像素位置高的精确度的运动且获得较好预测块。当使用具有分数像素值的运动向量时,在运动补偿单元36中实行内插运算。运动估计单元32使用某些准则(例如速率失真模型)来识别视频块的最好块分区及运动向量。举例来说,在双向预测的情况下,可能不止存在运动向量。在使用所得块分区及运动向量的情况下,运动补偿单元36形成预测视频块。视频编码器20通过在求和器48处从原始当前视频块30减去由运动补偿单元36产生的预测视频块而形成残余视频块。块变换单元38将例如4乘4或8乘8的变换应用于残余块,从而产生残余变换块系数。量化单元40量化残余变换块系数以进一步减少位率。 熵译码单元46对量化系数进行熵译码以更进一步减少位率。根据下文关于图4较详细地描述的本发明的方面,熵编码单元46作为可变长度译码(VLC)单元进行操作以将VLC译码应用于量化块系数。明确地说,熵编码单元46可经配置以根据上文关于图I及下文关于图9及10所描述的技术来执行数字视频块系数的VLC译码。熵译码单元46执行一种形式的无损耗统计译码,且为此,还可将熵译码单元46称为“无损耗统计译码单元46”。一般来说,图3及5中较详细地描述的视频解码器26执行逆运算(包括VLC解码)以解码并重构经编码视频。逆量化单元42及逆变换单元44分别应用逆量化及逆变换,以重构残余块。求和器50将经重构残余块相加到由运动补偿单元36产生的运动补偿预测块,以产生供存储于参考帧存储装置34中的经重构视频块。由运动估计单元32及运动补偿单元36使用经重构视频块以编码后续视频帧中的块。图3为说明视频解码器(例如图I的视频解码器26)的实例的框图。视频解码器26可执行视频帧内的块的帧内解码及帧间解码。如图I所示,视频解码器26接收已由视频编码器20编码的经编码视频位流。在图3的实例中,视频解码器26包括熵解码单元52、运动补偿单元54、重构单元56、逆变换单元58及参考帧存储装置62。视频解码器26还可包括对求和器64的输出进行滤波的回路内去块滤波器(未图示)。视频解码器26还包括求和器64。图3说明视频解码器26的用于视频块的帧间解码的时间预测组件。尽管在图3中未展示,但视频解码器26还可包括用于一些视频块的帧内解码的空间预测组件。熵解码单元52接收经编码视频位流且从位流量化残余系数、宏块译码模式及运动信息(其可包括运动向量及块分区)进行解码。因此,熵解码单元52充当VLC解码单元。举例来说,为了从经编码位流解码量化残余系数,图3的熵解码单元52可经配置以实施上文关于图I及下文关于图9及10所描述的本发明的方面。然而,熵解码单元52相对于图2的熵编码单元46以大致上相逆方式执行VLC解码,以便从经编码位流检索量化块系数。运动补偿单元54接收运动向量及块分区以及来自参考帧存储装置62的一个或一个以上经重构参考帧以产生预测视频块。重构单元56逆量化(即,去量化)所述量化块系数。逆变换单元58将逆变换(例如,逆DCT或逆4乘4或8乘8整数变换)应用于所述系数以产生残余块。接着,由求和器64对预测视频块与残余块进行求和以形成经解码块。可应用去块滤波器(未图示)以对经解码块进行滤波以移除成块假影。接着,将经滤波块放置于参考帧存储装置62中,参考帧存储装置62提供用于解码后续视频帧的参考帧且还产生经解码视频以驱动显示装置28(图I)。图4为图2的熵编码单元46的较详细框图。熵编码单元46可驻存于图I及2的视频编码器20内。如图2所示,熵编码单元46 (例如)从量化单元40 (图2)接收量化残余块系数,且产生供发射到另一装置以进行解码的经熵译码位流。在图4的实例中,熵编码单元46包括VLC编码模块98、统计分析模块100、VLC自适应模块102及VLC表模块104。VLC表模块104存储定义如上文关于图I及下文关于图9及10所描述的多层级VLC表的数据。VLC表模块104可(例如)存储定义将码字映射到符号组合的第一层级VLC表的数据。VLC表模块104还可经配置以动态地产生不需要加以存储的结构化码(贯穿本发明还被称为第二层级VLC表)。统计分析模块100收集候选符号组合集合的译码统计。统计分析模块100跟踪对于给定上下文的符号组合的出现机率,且基于由统计分析模块100收集的译码统计,VLC自适应模块102可调整第一层级VLC表的码字与候选符号组合集合的子集之间的映射。 图5为经配置以实施本发明中所描述的各种技术的熵解码单元52的框图。如上文在图I及5的实例中所示,熵解码单元52驻存于视频解码器26内。虽然关于此实例配置加以描述,但熵解码单元52可驻存于能够执行统计无损耗译码的任何装置内。在此方面,所述技术应不限于本发明中所描述的实例。如图3所示,熵解码单元52(例如)经由信道16(图I)而从源装置12接收经编码视频位流,且熵解码所述位流以产生量化残余系数。在图5的实例中,熵解码单元52包括VLC解码模块106、统计分析模块108、VLC自适应模块110及VLC表模块112。VLC表模块112可(例如)存储定义将码字映射到符号组合的第一层级VLC表的数据。VLC表模块112还可经配置以动态地解码不需要加以存储的结构化码(贯穿本发明还被称为第二层级VLC表)。由VLC表模块112维持的第一层级VLC表及第二层级VLC表匹配于由VLC表模块104维持的VLC表,使得可在视频解码器26处解码在视频编码器20处所指派的码字。统计分析模块108跟踪对于给定上下文的符号组合的出现机率,且如果特定符号组合的出现变得更有机率或更没有机率,则VLC自适应模块110将所述特定符号组合重新映射到由VLC表模块112维持的VLC表中的较短码字或较长码字。熵译码为无损耗过程,其用以进一步减少表示给定数据集合所需要的位的数目。熵译码利用给定数据集合的符号分布属性,且一般来说,将较短码字指派给所述数据集合的较频繁出现的成员。在本实例中,给定数据集合为可能符号组合集合,且通常将较短码字指派给最频繁出现的特定符号组合。熵编码单元46的统计分析模块100及熵解码单元52的统计分析模块108可跟踪并维持特定符号组合的出现机率,使得对于给定上下文,在那个上下文中最频繁出现的符号组合映射到较短码字。如果一些符号组合的出现变得比其它符号组合的出现更有机率或更没有机率,则熵编码单元46的VLC自适应模块102更新由VLC表模块104维持的VLC表,且熵解码单元52的VLC自适应模块110通过基于一些符号组合的出现机率而将其重新映射到较长码字或较短码字来更新由VLC表模块112维持的VLC表。统计分析模块100及VLC自适应模块102可经配置以实施与统计分析模块108及VLC自适应模块110相同的数据处理技术。因此,可在由熵解码单元52处的VLC表模块112维持的VLC表处反映出现于熵编码单元46处的对由VLC表模块104维持的VLC表的改变,而在熵编码单元46与熵解码单元52之间不发送反映所述改变的数据。在熵译码之前,基于由熵编码单元46使用的扫描次序而将来自块的变换系数重新布置成有序一维阵列。如下文将参看图9及10的实例较详细地展示,可使用一个或一个以上符号组合来描述变换系数。熵编码单元46的VLC编码模块98以特定形式译码符号组合,且熵解码单元52解码经译码数据以再现符号组合且最终再现变换块。VLC表(例如由VLC表模块104、112维持的VLC表)存储于视频编码器20的熵编码单元46及视频解码器26的熵解码单元52两者处,其中来自VLC表的每一码字表示特定上下文中的特定符号组
八为了涵盖大于4乘4的变换的所有可能符号组合,针对由VLC表模块104、112维持的VLC表可能需要大量码字。然而,较大大小的VLC表需要较多存储器来保存码字。为了减轻此要求,本发明的方面包括VLC表模块104、112维持具有两个或两个以上层级的VLC表。在二层级表中,举例来说,第一层级可能由数个可变长度码组成,在所述可变长度码当中,一个可变长度码表示转义码。第二层级可能由结构化VLC码群组(例如哥伦布-莱斯码)组成。归因于其结构化性质,第二层级VLC码可在熵编码单元46及熵解码单元52两者处在运作中动态地加以确定,且因此无需加以存储。就二层级VLC表来说,仅将可能符号组合的子集映射到第一层级VLC表中的可变长度码。熵编码单元46将符号组合的其余部分译码为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连。可能符号组合的数目可大于第一层级VLC表中的可变长度码的数目。在此情况下,所有可能符号组合均可为待映射到第一层级VLC表中的可变长度码的候选符号组合。基于在某种上下文下的出现机率,熵编码单元46可能仅将具有最高出现机率的候选符号组合映射到第一层级VLC表中的码字。熵编码单元46可将候选组合的其余部分译码为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连。举例来说,如果N表示可能符号组合的数目且M表示第一层级VLC表中的可变长度码条目的数目并且N的值大于M,则N个符号组合可能全部为候选符号组合。可基于每一候选符号组合的出现机率来确定N个候选符号组合中的哪些候选符号组合被映射到第一层级VLC表中的可变长度码。熵编码单元46仅将N个可能组合中的(M-I)个符号组合映射到第一层级VLC表中的可变长度码,且将剩余(N-M+1)个符号组合译码为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连。本发明的方面可通过减少作为待映射到第一层级VLC表中的码字的候选者的符号组合的总数来改进译码效率。如上文所论述,码字到符号组合的映射在视频译码的早期阶段期间或当正被译码的视频的内容经历导致一部分视频具有显著不同于经先前译码部分的内容统计的改变时可时常为次最佳的。基于单一截止游程值或多个截止游程值来限制第一层级VLC表的候选组合可通过致使由VLC表模块104、112维持的VLC表较快速地跟踪在译码的早期阶段期间及当内容统计改变时出现的符号组合的变化出现机率来改进译码及解码效率,尤其是对于大于4乘4的变换块。另外,本发明的方面可通过限制统计分析模块100及统计分析模块108需要跟踪出现机率所针对的符号组合的数目来改进译码效率。举例来说,大于4乘4的变换块可能具有数千个或甚至一万个以上可能符号组合。本发明的方面包括识别全部可能符号组合的很可能含有最频繁出现的符号组合的子集。统计分析模块100及统计分析模块108可接着仅跟踪可能符号组合的子集的出现机率,而非跟踪所有可能符号组合的出现机率,因此减少需要专用于统计分析模块100及统计分析模块108的处理资源的量。即使从可能符号组合的子集排除一些频繁出现的符号组合,由统计分析模块100及统计分析模块108利用的处理资源的减少在总系统性能中可仍为净正的。为了获得较好译码效率,VLC表模块104及VLC表模块112可基于数个因素来维持多个VLC表,使得针对给定情形(或上下文),可使用不同VLC表,使得码字长度可较好地匹配于那个给定情形的符号分布属性。图6为展示体现本发明的方面的视频编码方法的流程图。这些方面可(例如)由图I到5所示的装置执行,且将关于图I到5所示的装置加以描述。在视频编码装置的编码器(例如源装置12的视频编码器20)处,可编码视频数据的帧且将所述帧发射到视频解码装置(例如接收装置14)。视频编码器20将视频数据的帧分割成预测块且变换并量化所述预测块(框601)。视频编码器20确定一个或一个以上符号组合的集合以表示变换块的 变换系数(框602)。每一符号组合可指示变换块的变换系数的一部分的游程信息、GTO信息及/或EOB信息。对于变换块的不同大小,视频编码器20存储定义一个或一个以上多层级VLC表(例如由熵编码单元46处的VLC表模块104维持的VLC表)的数据。对于待译码符号组合,视频编码器20基于变换块的大小以及与待译码符号组合相关联的上下文来识别由VLC表模块104维持的特定VLC表(框603)。视频编码器20可(例如)基于与符号组合相关联的零游程的第一零系数的位置索引、变换块的经先前译码游程值及层级值来确定上下文,或可在片段标头中用信号传递上下文。响应于识别指示游程信息(其指示大于截止游程值的游程)的符号组合(框604,“是”路径),视频编码器20向所述符号组合指派包含来自第一层级VLC表的转义码与第二层级VLC表的码字的串连的码字(框605)。第二层级VLC表可(例如)包括结构化VLC码,例如哥伦布-莱斯码。可基于变换块的大小来确定特定变换块的截止游程值。举例来说,当译码8乘8变换块的符号组合时的截止游程值可能不同于当译码16乘16变换块或8乘16变换块的符号组合时的截止游程值。响应于识别指示游程信息(其指示小于或等于截止游程值的游程)的符号组合(框603,“否”路径),视频编码器20向所述符号组合指派来自第一层级VLC表的码字(框606)。在一些实施方案中,如果符号组合包括指示还小于或等于第二截止游程值的游程的游程信息,则来自第一层级VLC表的码字可能含有游程信息、GTO信息及EOB信息,但如果符号组合含有指示大于第二截止游程值的游程的游程信息,则来自第一层级VLC表的码字可能仅包括游程信息或仅包括游程信息以及部分GTO信息及EOB信息。图7为展示体现本发明中所描述的技术的视频编码方法的流程图。所述技术可(例如)由图I到5所示的装置执行,且将关于图I到5所示的装置加以描述。图7所示的技术可结合图6及图8的技术加以实施,或可独立地加以实施。在视频编码装置的编码器(例如源装置12的视频编码器20)处,可确定多个符号组合以表示变换块的多个数字视频块系数。VLC编码模块98识别多个符号组合的游程信息(框701)。所述游程信息指示相连零系数的数目,所述相连零系数取决于所使用的译码方案而在非零系数之前或之后。在译码过程期间,熵编码单元46存储定义多层级VLC表的数据(框702)。多层级VLC表包括第一层级VLC表及第二层级VLC表。第一层级VLC表将码字映射到符号组合。对于包括指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,VLC编码模块98将第一码字指派给第一符号组合(框703)。第一码字包括来自第一层级VLC表的转义码。对于包括指示相连零系数的第二数目小于或等于截止游程值的第二游程信息的第二符号组合,VLC编码模块98将第二码字指派给第二符号组合(框704)。第二码字来自第一层级VLC表。对于包含指示相连零系数的第三数目小于或等于截止游程值且小于或等于第二截止游程值的第三游程信息的第三符号组合,将第一类型的码字指派给第三符号组合(框705)。第一类型的码字包括大于一信息、块结束信息及第三游程信息。对于包含指示相连零系数的第四数目小于或等于截止游程值且大于第二截止游程值的第四游程信息的第四符号组合,将第二类型的码字指派给第四符号组合(框706)。第二类型的码字包括第四游程信息,且可包括或可不包括大于一信息及块结束信息。图8为展示体现本发明中所描述的技术的视频编码方法的流程图。所述技术可 (例如)由图I到5所示的装置执行,且将关于图I到5所示的装置加以描述。图8所示的技术可结合图7及图8的技术加以实施,或可独立地加以实施。当执行VLC译码(框801)
(例如关于图6及7所描述的VLC译码方法)时,视频编码器20的熵编码单元46可存储定义多个多层级VLC表的数据(框802)。多层级VLC表可包括将符号组合映射到码字的第一层级VLC表。统计分析模块100维持关于候选符号组合集合的出现机率的统计(框803),且基于所收集的统计,VLC自适应模块102调整第一层级VLC表中码字到符号组合的映射(框804)。如上文较详细地描述及下文关于图9及10的实例所描述,熵编码单元46可基于单一截止游程值或多个截止游程值来限制候选符号组合集合。还可由熵解码单元52的统计分析模块108及VLC自适应模块110在接收装置14处同时地执行关于图8所描述的技术的方面,使得对由VLC表模块112维持的VLC表同时地执行在由VLC表模块104维持的VLC表处的对符号组合与码字的映射的改变,而不将描述所述改变的数据从源装置12传送到接收装置14,或仅将描述所述改变的有限数据从源装置12传送到接收装置14。图10展示4乘4变换块,其中每一方形中的数字表示变换系数。现将关于图10的实例4乘4变换块来描述图I到5中的各种模块及单元的功能性。根据图9所示的扫描次序,将由视频编码器20产生图10的变换块的如下变换系数的一维阵列
。为了解释的简易性,本实例使用4乘4变换块,但本发明的方面可适用于大于4乘4的变换块且对于大于4乘4的变换块可特别有利。此外,尽管本实例出于解释的目的而参考变换系数,但本发明的方面还可适用于其它类型的视频块数据(例如残余数据)。如同图10的实例变换块,变换块频繁地含有大量零系数。因而,在输送块中的非零系数的位置信息时常常使用在每一非零系数之前的相连零的数目(其还被称为“游程”或“游程长度”)。将量化非零系数的绝对振幅称为其“层级”。通常,有序系数阵列的结束含有显著数目个具有为零的值的连续变换系数。代替显式地译码那些零,视频编码器20的熵编码单元46可译码块结束(EOB)符号模式以用信号传递如下情形变换块中的剩余变换系数全部为零。或者,熵编码单元46可译码非零变换系数的数目,使得在已接收到非零变换系数的数目之后的剩余变换系数可全部被假定为零。
H. 264/MPEG-4AVC定义用于译码变换系数的上下文自适应性可变长度译码(CAVLC)方案。CAVLC主要包括用可变长度码来译码以下信息I.块中的非零系数及尾随I (即,具有I或-I的振幅的系数)的数目。2.每一尾随I的正负号。3.剩余非零系数的层级。4.在最后系数之前的零的总数。5.零的每一游程。当译码上述信息时,基于当时可用的其它信息来自适应性地确定码字的长度。这通常被称为上下文自适应性VLC(CAVLC)。此译码方案经特定地设计且因此适用于具有16 个变换系数的4乘4变换块。然而,所述方案不容易在不招致译码效率的显著损耗的情况下扩展到较大大小的变换块。随着近来将视频译码集中于高分辨率内容,发现预测块以及变换的较大大小有助于改进译码效率。因而,H. 264/MPEG-4AVC CAVLC技术可能并不灵活到足以在那些情况下提供竞争性译码性能。本发明的方面可比H. 264/MPEG-4标准中的CAVLC有利,这尤其是因为本发明的方面可自适应于大于4乘4的变换块。举例来说,本发明的方面可针对变换块的8乘8、16乘16,32乘32、8乘16、16乘32及各种其它大小而产生经改进的译码效率。举例来说,相较于4乘4块的16个变换系数,16乘16变换块具有256个变换系数,因此潜在地使H. 264/MPEG-4 CAVLC技术对于较大块大小无效。根据本发明的方面,在源装置12将数据发射到接收装置14之前,视频编码器20使用可变长度码来联合地译码来自变换块的系数阵列的游程信息、层级信息及EOB信息。每一可变长度码表示游程信息、层级信息及EOB信息的某种状态。更具体地说,对于每一非零系数,可变长度码字表示以下信息中的一些或全部信息a)游程在系数之前的相连零的数目b)大于一(GTO):指示非零系数的层级是否大于Ic)块结束(EOB):指示正被译码的非零系数是否为一维系数阵列中的最后非零系数。在将图10的变换块及图9的扫描次序用作实例的情况下,且如果系数的译码次序与扫描次序相同(即,一维阵列中的左到右),则待由视频编码器20译码且发射到接收装置14的符号组合对于一维折线扫描阵列
为如下,其呈(游程,GTO, Ε0Β)的形式(I, I, O)、(I, O, O)、(2,O, I)。在此实例中的第一符号组合(1,1,O)含有为I的游程值,其表示在第一非零系数的左边存在一个零。第一符号组合含有为I的GTO值,其指示非零系数具有大于I的值,在此例子中,所述值等于3。第一符号组合含有为O的EOB值,其指示第一符号组合不含有一维阵列的最后非零系数。基于第一符号组合,视频解码器26的熵解码单元52可重构一维阵列的
部分。第二符号组合(1,O, O)含有为I的游程值,其指示在下一非零变换系数(在此实例中为-I)的左边存在一个零。第二符号组合含有为O的GTO值,其指示非零变换系数不具有大于I的值,且第二符号组合含有为O的EOB值,其指示第二符号组合不含有一维阵列的最后非零系数。基于第二符号组合,熵解码单元52可重构一维阵列的[-0,-1,-]部分。
第三符号组合(2,O, I)含有为2的游程值,其指示在非零变换系数(在此例子中为I)的左边存在两个零。第三符号组合含有为O的GTO值,其指示非零变换系数为1,且第三符号组合含有为I的EOB值,其指示非零变换系数为一维阵列中的最后非零变换系数。基于第三符号组合,熵解码单元52可重构所述阵列的「··(),O, I, O, O, O, O, O, O, O, O, O]部分,且因此,基于所有三个符号组合,可重构整个一维阵列。通过知道在视频编码器20处所使用的扫描次序,视频解码器26可以相同次序重构变换块。视频编码器20及视频解码器26可同时地构建并管理VLC表,其中来自VLC表的每一码字表示(游程,GT0,E0B)的某种状态。对于图10中的实例,例如,三个码字(所述三个符号组合中的每一者使用一个码字)足以将上文所提及的所有信息从源装置12输送到接收装置14。或者,还可以相反扫描次序执行系数的译码。在此例子中,待译码符号组合为如下,其呈(游程,GT0,E0B)的形式(2,0,0)、(1,0,0), (1,1,I)。在此相反扫描次序实例中,第一符号组合(2,0,0)具有为2的游程值,其表示在第一非零系数的左边存在两个零系数,在此例子中,首先在一维阵列中的右到左方向上移动。第一符号组合具有为O的GTO 值,其指示非零变换系数具有为I的值,且第一符号组合具有为O的EOB值,其指示非零系数不为一维阵列中的最后非零系数。基于第一码字,熵解码单元52可重构一维阵列的[…0,0, I···]部分。第二符号组合(1,O, O)具有为I的游程值,其指示在下一非零系数(在此情况下为-I)的左边存在一个零。第二符号组合具有为O的GTO值,其表示非零变换系数具有不大于I的层级,且第二符号组合具有为O的EOB值,其指示非零变换系数不为一维阵列中的最后非零变换系数。基于第二码字,熵解码单元52可重构一维阵列的[…0,-L···]部分。第三符号组合(1,I, I)具有为I的游程值,其指示在下一非零系数的左边存在一个零。第三符号组合具有为I的GTO值,其指示非零变换系数具有大于I的层级,且第三符号组合具有为I的EOB值,其指示非零变换系数为一维阵列中的最后非零变换系数。基于第三符号组合,熵解码单元52可重构一维阵列的
部分。通过知道在视频编码器20处所使用的扫描次序,视频解码器26可重构变换块。尽管以上实例呈现表示(游程,GT0,E0B)的某种状态的单一符号组合,但符号组合可包括游程信息、GTO信息及EOB信息的任何组合。举例来说,可由表示游程信息的第一符号组合以及表示GTO信息及EOB信息的第二符号组合来表示(游程,GT0,E0B)的某种状态。可分离地熵译码及发射第一符号组合及第二符号组合。在另一实例中,符号组合可表示游程信息以及GTO信息或EOB信息,或如稍后所解释,符号组合可含有游程信息以及部分GTO信息及EOB信息。除了以上信息以外,对于层级大于I的那些系数,源装置12还可分离地译码那个层级的值且将所述值发射到接收装置14。另外,源装置12可使用I个位来译码每一非零系数的正负号且将所述正负号发射到接收装置14。归因于较大数目个非零变换系数等于1,此技术可通过减少传送非零变换系数的层级信息所需要的位的数目来进一步改进译码效率。为了涵盖给定大小的变换块的游程、GTO及/或EOB的所有可能符号组合,在视频编码器20及视频解码器26处针对VLC表可能需要大量码字,尤其是当变换大小较大时。然而,较大大小的VLC表需要较多存储器来保存码字。为了减轻此要求,本发明的方面包括使用包括两个或两个以上层级的VLC表。在二层级VLC表中,举例来说,第一层级表可能包括数个可变长度码,在所述可变长度码当中,一个可变长度码表示转义码。第二层级表可能包括结构化VLC码群组,例如哥伦布-莱斯码。归因于其结构化性质,无需保存第二层级VLC码,这是因为第二层级VLC码可分别由VLC表模块104及VLC表模块112在视频编码器20及视频解码器26两者处动态地产生。转义码告知视频解码器26使用第二层级VLC表(相对于第一层级VLC表)来解码特定码字。就二层级VLC表来说,如本发明中所描述,仅将游程、GTO及/或EOB的符号组合的子集映射到第一层级VLC表中的可变长度码。视频编码器20将符号组合的其余部分译码为来自第一层级VLC表的转义码 与来自第二层级VLC表的码字的串连。在检测到转义码后,视频解码器26即刻使用第二层级VLC表来解码码字。游程、GTO及/或EOB的可能符号组合的数目可大于第一层级VLC表中的可变长度码的数目。在此情况下,所有可能符号组合均可为待映射到第一层级VLC表中的可变长度码的候选符号组合。基于在某种上下文下的出现机率,可能分别仅将最常出现的候选符号组合映射到第一层级VLC表中的可变长度码。可将候选符号组合的其余部分译码为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连。举例来说,如果N表示可能符号组合的数目且M表示第一层级VLC表中的可变长度码条目的数目并且N的值大于M,则N个符号组合可能全部为候选符号组合。可基于每一候选符号组合的出现机率来确定N个候选符号组合中的哪些候选符号组合被映射到第一层级VLC表中的可变长度码。最终,仅将N个可能组合中的游程、GTO及/或EOB的(M-I)个符号组合映射到第一层级VLC表中的可变长度码。视频编码器20将剩余(N-M+1)个符号组合译码为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连。本发明的一方面包括视频编码器20分离地译码(游程,GTO, Ε0Β)状态的分量以减少VLC表的候选符号组合的数目。举例来说,视频编码器20可能使用来自VLC表的码字(来自第一层级VLC表,或作为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连)来仅译码(游程,GT0,E0B)状态的游程信息。视频编码器20可能与游程信息分离地译码GTO信息及EOB信息。在另一实例中,视频编码器20可能使用来自第一层级VLC表的码字来仅译码游程信息连同关于GTO及EOB的部分信息。此部分信息的实例可能为OR (GT0,Ε0Β),其中OR表示逻辑“或”运算。因而,可使用来自VLC表的码字来一起译码游程及0R(GT0,Ε0Β)的值。可分离地译码关于GTO及EOB的较详细信息。如果GTO及EOB值中的任一者或两者为非零(即,“或”运算为真),则视频解码器26将处理较详细信息。如果GTO值及EOB值两者为零(即,“或”运算为假),则视频解码器26将知道无需解码额外信息。本发明的方面可通过减少作为待映射到第一层级VLC表中的码字的候选者的符号组合的总数来改进译码效率。在一个方面中,可针对变换块的每一不同大小来定义截止游程值。接着,基于变换块大小及相关联截止游程值,仅与不大于截止游程值的游程相关联的符号组合为可被映射到第一层级VLC表中的可变长度码字的候选组合。可将与大于截止游程值的游程相关联的符号组合译码为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连。如果第一符号组合指示相连零系数的第一数目大于截止游程值,则熵编码单元46的VLC编码模块98将包括来自第一层级VLC表的转义码的第一码字指派给第一符号组合。如果第二符号组合指示相连零系数的第二数目小于或等于截止游程值,则熵编码单元46的VLC编码模块98将第二码字指派给第二符号组合。第二码字为来自第一层级VLC表的码字。在另一方面中,可针对变换块的每一不同大小来定义两个截止游程值runl及run2(其中runl ( run2)。接着,基于变换块大小及相关联截止游程值,熵编码单元46仅将与不大于run2的游程相关联的那些符号组合视为可使用第一层级VLC表中的可变长度码字加以译码的候选符号组合。然而,熵编码单元46以联合方式(即,可将游程、GTO及EOB一起译码为一个码字)仅译码与不大于runl的游程相关联的符号组合的分量。熵编码单元46分离地译码与大于runl的游程相关联的符号组合的分量。举例来说,熵编码单元46可能使用VLC表(具有第一层级VLC表中的码字,或作为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连)来仅译码那些符号组合的游程信息,且与游程信息分离地译码那些符号组合的GTO信息及EOB信息。 当利用两个截止游程值(runl及run2)时,熵编码单元46的VLC编码模块98将第一类型的码字指派给具有指示相连零系数的数目小于或等于runl且小于或等于run2的游程信息的符号组合。第一类型的码字可(例如)包括大于一信息、块结束信息及游程信息。熵编码单元46的VLC编码模块98将第二类型的码字指派给包含指示相连零系数的数目小于或等于run2且大于runl的游程信息的符号组合。第二类型的码字包括游程信息且还可包括部分大于一信息及块结束信息。在另一方面中,对于具有大于runl但小于或等于run2的游程的那些符号组合,熵编码单元46使用来自由VLC表模块104维持的VLC表的码字(作为第一层级VLC表中的码字,或作为来自第一层级VLC表的转义码与来自第二层级VLC表的码字的串连)来仅译码游程信息连同关于GTO及EOB的部分信息。此部分信息的一个实例可由0R(GT0,Ε0Β)表示,其中OR表示逻辑“或”运算。因而,熵编码单元46使用来自由VLC表模块104维持的VLC表的码字来一起译码游程及OR (GTO, Ε0Β)的值,且分离地译码关于GTO及EOB的较详细信息。本发明的方面(例如基于单一截止游程值或多个截止游程值来限制第一层级VLC表的候选符号组合的数目)可改进译码及解码效率,尤其是对于大于4乘4的变换块。另外,本发明的方面可通过限制视频编码器20及视频解码器26必须跟踪出现机率所针对的符号组合的数目来改进译码效率。举例来说,大于4乘4的变换块可能具有游程、GTO及EOB的数千个或甚至一万个以上可能符号组合。本发明的方面可用以识别全部可能符号组合的很可能含有最频繁出现的符号组合的子集。视频编码器20及视频解码器26可接着仅跟踪所述子集的出现机率,而非跟踪所有可能符号组合的出现机率,因此减少专用于跟踪出现机率的处理资源的量。即使从所述子集排除一些频繁出现的符号组合,专用于跟踪出现机率的处理资源的减少在总系统性能中可仍为净正的。为了获得较好译码效率,视频编码器20可基于数个因素而从多个VLC表中选择适当VLC表,使得对于每一给定情形(或上下文),使用不同VLC表,使得码字长度可较好地匹配于那个给定情形的符号分布属性。另一方面包括在编码过程期间,VLC编码模块98基于与待译码符号组合相关联的游程的第一零系数的位置索引来选择由VLC表模块104维持的特定表VLC表。译码从系数阵列中的第一系数开始。为了译码符号组合,检查与所述符号组合相关联的游程的第一零系数的位置索引。接着,基于扫描次序中的位置索引值,选择VLC表以译码当前符号组合。在再次将图3用作实例的情况下,待译码符号组合为(1,1,O)、(I, O, O)、(2,O, I)。对于符号组合(1,1,O),游程的第一零系数的位置索引值为O。类似地,对于(1,0,0)及(2,0,1),位置索引值分别为2及4。响应于接收到VLC码字,VLC解码模块106可经配置以在VLC表112内识别由VLC编码模块98使用的特定VLC表,且从VLC码字确定符号组合。本发明的另一方面包括VLC编码模块98基于块中的经先前译码游程值及层级值两者来选择由VLC表模块104维持的特定VLC表。译码从系数阵列中的最后非零系数开始,且以相反扫描次序加以执行。为了译码当前符号组合,检查块中的所有经先前译码符号组合的层级以及经先前译码符号组合的游程。将具有为I的层级的经先前译码符号组合的数目连同经先前译码符号组合的游程用作译码当前符号组合的上下文。然而,如果当前块的经先前译码符号组合包括大于I的至少一层级,则仅将经先前译码符号组合的游程用作译码当前符号组合的上下文。具体地说,当形成用于译码块中的第一符号组合的上下文时,将 具有为I的层级的经先前译码符号组合的数目设定为1,且将经先前译码符号组合的游程设定为数个经先前译码块中的第一经译码符号组合的游程的平均值。可在不同译码条件下针对变换系数来设计并构建上文所描述的上下文自适应性VLC表。因此,多个VLC表可用于每一上下文。本发明中所描述的一种技术的一方面包括在片段标头中用信号传递每一上下文的最好VLC表的索引。另外,在正译码片段中的块时,可(例如)由统计分析模块100累加在每一上下文下的符号组合出现机率。一旦已在当前片段中译码每特定数目个块,便可重新评估并更新在每一上下文下的符号分布机率。接着,基于经更新的符号分布属性,可将VLC表中的码字重新映射到每一上下文的不同符号组合。可由视频编码器20的统计分析模块100及VLC自适应模块102以及视频解码器26的统计分析模块108及VLC自适应模块110以相同方式来执行此符号组合出现机率的累加及重新映射。因而,无需将额外信息从视频编码器20用信号传递到视频解码器26。本发明中所描述的技术可至少部分地以硬件、软件、固件或其任何组合来实施。举例来说,可将所述技术的各种方面实施于包含在编码器、膝上型、桌上型或手持式计算机、无线移动手持机、机顶盒或其它装置中的一个或一个以上微处理器、DSP、ASIC、FPGA或任何其它等效集成或离散逻辑电路以及此些组件的任何组合内。术语“处理器”或“处理电路”可通常指代前述逻辑电路中的任一者(单独地或结合其它逻辑电路),或任何其它等效电路。本发明中所描述的技术的方面可以硬件、软件、固件或其任何组合来实施。可将被描述为模块或组件的任何特征一起实施于集成逻辑装置中或分离地实施为离散但可共同操作的逻辑装置。当以软件来实施时,归属于本发明中所描述的系统及装置的功能性可体现为在非暂时性计算机可读存储媒体(例如RAM、SDRAM、ROM、NVRAM、EEPROM、快闪存储器、磁性媒体、光学媒体或其类似者)上的指令。术语“非暂时性”可指示存储媒体并非体现于载波或传播信号中。然而,术语“非暂时性”不应被解释为意指存储媒体为不可移动的。作为一个实例,可从一装置移除存储媒体且将存储媒体移动到另一装置。作为另一实例,可将存储媒体插入到装置中。在某些实例中,非暂时性存储媒体可存储可随着时间推移而改变的数据(例如,在RAM中)。可执行所述指令以支持本发明中所描述的功能性的一个或一个以上方面。可由例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或一个以上处理器执行程序代码。因此,如本发明中所使用,术语“处理器”可指代前述结构或适于实施所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本发明中所描述的功能性可提供于经配置以用于编码及解码的专用软件模块或硬件单元内,或并入于组合式视频 编码器-解码器(编解码器)中。已描述了本发明的许多方面。可在不脱离权利要求书的范围的情况下进行各种修改。这些及其它方面属于所附权利要求书的范围内。
权利要求
1.一种可变长度译码VLC方法,其包含 识别变换块的多个数字视频块系数的多个符号组合的游程信息,其中所述游程信息指示相连零系数的数目; 存储定义多层级VLC表的数据,其中所述多层级VLC表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合; 对于包含指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,将第一码字指派给所述第一符号组合,其中所述第一码字包含来自所述第一层级VLC表的转义码。
2.根据权利要求I所述的方法,其进一步包含 对于包含指示相连零系数的第二数目小于或等于所述截止游程值的第二游程信息的第二符号组合,将第二码字指派给所述第二符号组合,其中所述第二码字来自所述第一层级VLC表。
3.根据权利要求I所述的方法,其进一步包含 对于包含指示相连零系数的第二数目小于或等于所述截止游程值且小于或等于第二截止游程值的第二游程信息的第二符号组合,将第一类型的码字指派给所述第二符号组合,其中所述第一类型的码字包含大于一信息、块结束信息及所述第二游程信息; 对于包含指示相连零系数的第三数目小于或等于所述截止游程值且大于所述第二截止游程值的第三游程信息的第三符号组合,将第二类型的码字指派给所述第三符号组合,其中所述第二类型的码字包含所述第三游程信息。
4.根据权利要求3所述的方法,其中所述第二类型的码字进一步包含部分大于一及块结束信息。
5.根据权利要求I所述的方法,其进一步包含 收集候选符号组合集合的译码统计; 基于所述译码统计来调整所述第一层级VLC表的码字与所述候选符号组合集合的子集之间的映射。
6.根据权利要求5所述的方法,其中所述候选符号组合集合包含具有游程信息的符号组合,所述游程信息指示小于或等于所述截止游程值的相连零系数的数目。
7.根据权利要求I所述的方法,其中基于所述变换块的大小来确定所述截止游程值。
8.根据权利要求I所述的方法,其进一步包含 存储定义多个多层级VLC表的数据; 基于特定符号组合的上下文来识别所述多个多层级VLC表中的待用于所述符号组合的特定多层级VLC表。
9.根据权利要求8所述的方法,其中基于与符号相关联的零的游程的第一零系数的位置索引来确定所述上下文。
10.根据权利要求8所述的方法,其中基于所述变换块的经先前译码游程值及层级值来确定所述上下文。
11.根据权利要求8所述的方法,其中在片段标头中用信号传递所述上下文。
12.根据权利要求I所述的方法,其中所述第二层级VLC表包含结构化VLC码。
13.根据权利要求I所述的方法,其中所述第二层级VLC表包含哥伦布-莱斯码。
14.根据权利要求I所述的方法,其中由视频编码装置执行所述方法。
15.根据权利要求I所述的方法,其中由视频解码装置执行所述方法。
16.一种用于对视频数据进行译码的视频译码装置,所述视频译码装置包含可变长度码VLC表模块,其经配置以存储定义多层级VLC表的数据,其中所述多层级表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合;VLC译码模块,其经配置以将第一码字指派给第一符号组合,所述第一符号组合包含第一游程信息,所述第一游程信息指示大于截止游程值的相连零系数的第一数目,其中所述第一码字包含来自所述第一层级VLC表的转义码。
17.根据权利要求16所述的视频译码装置,其中所述VLC译码模块进一步经配置以 将第二码字指派给第二符号组合,所述第二符号组合包含指示相连零系数的第二数 目小于或等于所述截止游程值的第二游程信息,其中所述第二码字来自所述第一层级VLC表。
18.根据权利要求16所述的视频译码装置,其中所述VLC译码模块进一步经配置以 将第一类型的码字指派给第二符号组合,所述第二符号组合包含指示相连零系数的第二数目小于或等于所述截止游程值且小于或等于第二截止游程值的第二游程信息,其中所述第一类型的码字包含大于一信息、块结束信息及所述第二游程信息; 将第二类型的码字指派给第三符号组合,所述第三符号组合包含指示相连零系数的第三数目小于或等于所述截止游程值且大于所述第二截止游程值的第三游程信息,其中所述第二类型的码字包含所述第三游程信息。
19.根据权利要求18所述的视频译码装置,其中所述第二类型的码字进一步包含部分大于一及块结束信息。
20.根据权利要求16所述的视频译码装置,其进一步包含 统计分析模块,其经配置以收集候选符号组合集合的译码统计; VLC自适应模块,其经配置以基于所述译码统计来调整所述第一层级VLC表的码字与所述候选符号组合集合的子集之间的映射。
21.根据权利要求20所述的视频译码装置,其中所述候选符号组合集合包含具有游程信息的符号组合,所述游程信息指示小于或等于所述截止游程值的相连零系数的数目。
22.根据权利要求16所述的视频译码装置,其中所述截止游程值是基于变换块的大小来确定。
23.根据权利要求16所述的视频译码装置,其中 所述VLC表模块进一步经配置以存储定义多个多层级VLC表的数据;且所述VLC译码模块进一步经配置以基于特定符号组合的上下文来识别所述多个多层级VLC表中的待用于所述特定符号组合的特定多层级VLC表。
24.根据权利要求23所述的视频译码装置,其中所述上下文是基于与符号相关联的零的游程的第一零系数的位置索引来确定。
25.根据权利要求23所述的视频译码装置,其中所述上下文是基于所述变换块的经先前译码游程值及层级值来确定。
26.根据权利要求23所述的视频译码装置,其中所述上下文是在片段标头中用信号传递。
27.根据权利要求16所述的视频译码装置,其中所述第二层级VLC表包含结构化VLC码。
28.根据权利要求16所述的视频译码装置,其中所述第二层级VLC表包含哥伦布-莱斯码。
29.根据权利要求16所述的视频译码装置,其中视频解码装置为视频编码器。
30.根据权利要求16所述的视频译码装置,其中所述视频解码装置为视频解码器。
31.一种视频译码设备,所述视频译码设备包含 用于识别变换块的多个数字视频块系数的多个符号组合的游程信息的装置,其中所述游程信息指示相连零系数的数目; 用于存储定义多层级VLC表的数据的装置,其中所述多层级VLC表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合; 对于包含指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,用于将第一码字指派给所述第一符号组合的装置,其中所述第一码字包含来自所述第一层级VLC表的转义码。
32.根据权利要求31所述的视频译码设备,其进一步包含 对于包含指示相连零系数的第二数目小于或等于所述截止游程值的第二游程信息的第二符号组合,用于将第二码字指派给所述第二符号组合的装置,其中所述第二码字来自所述第一层级VLC表。
33.根据权利要求31所述的视频译码设备,其进一步包含 对于包含指示相连零系数的第二数目小于或等于所述截止游程值且小于或等于第二截止游程值的第二游程信息的第二符号组合,将第一类型的码字指派给所述第二符号组合,其中所述第一类型的码字包含大于一信息、块结束信息及所述第二游程信息; 对于包含指示相连零系数的第三数目小于或等于所述截止游程值且大于所述第二截止游程值的第三游程信息的第三符号组合,将第二类型的码字指派给所述第三符号组合,其中所述第二类型的码字包含所述第三游程信息。
34.根据权利要求33所述的视频译码设备,其中所述第二类型的码字进一步包含部分大于一及块结束信息。
35.根据权利要求31所述的视频译码设备,其进一步包含 用于收集候选符号组合集合的译码统计的装置; 用于基于所述译码统计来调整所述第一层级VLC表的码字与所述候选符号组合集合的子集之间的映射的装置。
36.根据权利要求35所述的视频译码设备,其中所述候选符号组合集合包含具有游程信息的符号组合,所述游程信息指示小于或等于所述截止游程值的相连零系数的数目。
37.根据权利要求31所述的视频译码设备,其中所述截止游程值是基于所述变换块的大小来确定。
38.根据权利要求31所述的视频译码设备,其进一步包含 用于存储定义多个多层级VLC表的数据的装置; 用于基于特定符号组合的上下文来识别所述多个多层级VLC表中的待用于所述符号组合的特定多层级VLC表的装置。
39.根据权利要求38所述的视频译码设备,其中所述上下文是基于与符号相关联的零的游程的第一零系数的位置索引来确定。
40.根据权利要求38所述的视频译码设备,其中所述上下文是基于所述变换块的经先前译码游程值及层级值来确定。
41.根据权利要求38所述的视频译码设备,其中所述上下文是在片段标头中用信号传递。
42.根据权利要求31所述的视频译码设备,其中所述第二层级VLC表包含结构化VLC码。
43.根据权利要求31所述的视频译码设备,其中所述第二层级VLC表包含哥伦布-莱 斯码。
44.根据权利要求31所述的视频译码设备,其中所述视频译码设备为视频编码器的部分。
45.根据权利要求31所述的视频译码设备,其中所述视频译码设备为视频解码器的部分。
46.一种计算机可读存储媒体,其有形地存储一个或一个以上指令,所述一个或一个以上指令在由一个或一个以上处理器执行时致使所述一个或一个以上处理器 识别变换块的多个数字视频块系数的多个符号组合的游程信息,其中所述游程信息指示相连零系数的数目; 存储定义多层级VLC表的数据,其中所述多层级VLC表包含第一层级VLC表及第二层级VLC表,其中所述第一层级VLC表将码字映射到符号组合; 对于包含指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,将第一码字指派给所述第一符号组合,其中所述第一码字包含来自所述第一层级VLC表的转义码。
47.根据权利要求46所述的计算机可读存储媒体,其有形地存储一个或一个以上额外指令,所述一个或一个以上额外指令在由所述一个或一个以上处理器执行时致使所述一个或一个以上处理器 对于包含指示相连零系数的第二数目小于或等于所述截止游程值的第二游程信息的第二符号组合,将第二码字指派给所述第二符号组合,其中所述第二码字来自所述第一层级VLC表。
48.根据权利要求46所述的计算机可读存储媒体,其有形地存储一个或一个以上额外指令,所述一个或一个以上额外指令在由所述一个或一个以上处理器执行时致使所述一个或一个以上处理器 对于包含指示相连零系数的第二数目小于或等于所述截止游程值且小于或等于第二截止游程值的第二游程信息的第二符号组合,将第一类型的码字指派给所述第二符号组合,其中所述第一类型的码字包含大于一信息、块结束信息及所述第二游程信息; 对于包含指示相连零系数的第三数目小于或等于所述截止游程值且大于所述第二截止游程值的第三游程信息的第三符号组合,将第二类型的码字指派给所述第三符号组合,其中所述第二类型的码字包含所述第三游程信息。
49.根据权利要求48所述的计算机可读存储媒体,其中所述第二类型的码字进一步包含部分大于一及块结束信息。
50.根据权利要求46所述的计算机可读存储媒体,其有形地存储一个或一个以上额外指令,所述一个或一个以上额外指令在由所述一个或一个以上处理器执行时致使所述一个或一个以上处理器 收集候选符号组合集合的译码统计; 基于所述译码统计来调整所述第一层级VLC表的码字与所述候选符号组合集合的子集之间的映射。
51.根据权利要求50所述的计算机可读存储媒体,其中所述候选符号组合集合包含具有游程信息的符号组合,所述游程信息指示小于或等于所述截止游程值的相连零系数的数目。
52.根据权利要求46所述的计算机可读存储媒体,其中所述截止游程值是基于所述变换块的大小来确定。
53.根据权利要求46所述的计算机可读存储媒体,其有形地存储一个或一个以上额外指令,所述一个或一个以上额外指令在由所述一个或一个以上处理器执行时致使所述一个或一个以上处理器 存储定义多个多层级VLC表的数据; 基于特定符号组合的上下文来识别所述多个多层级VLC表中的待用于所述符号组合的特定多层级VLC表。
54.根据权利要求53所述的计算机可读存储媒体,其中所述上下文是基于与符号相关联的零的游程的第一零系数的位置索引来确定。
55.根据权利要求53所述的计算机可读存储媒体,其中所述上下文是基于所述变换块的经先前译码游程值及层级值来确定。
56.根据权利要求53所述的计算机可读存储媒体,其中所述上下文是在片段标头中用信号传递。
57.根据权利要求46所述的计算机可读存储媒体,其中所述第二层级VLC表包含结构化VLC码。
58.根据权利要求46所述的计算机可读存储媒体,其中所述第二层级VLC表包含哥伦布-莱斯码。
59.根据权利要求46所述的计算机可读存储媒体,其中所述一个或一个以上处理器为视频编码器的部分。
60.根据权利要求46所述的计算机可读存储媒体,其中所述一个或一个以上处理器为视频解码器的部分。
全文摘要
本发明揭示一种用于熵译码的方法及系统,所述方法及系统可包含响应于检测到包含指示相连零系数的第一数目大于截止游程值的第一游程信息的第一符号组合,将第一码字指派给第一符号组合,其中所述第一码字包含来自第一层级VLC表的转义码;及响应于包含指示相连零系数的第二数目小于或等于所述截止游程值的第二游程信息的第二符号组合,将第二码字指派给所述第二符号组合,其中所述第二码字来自所述第一层级VLC表。所述系统及方法可进一步包含收集候选符号组合集合的译码统计;及基于所述译码统计来调整所述第一层级VLC表的码字与所述候选符号组合集合的子集之间的映射。
文档编号H03M7/40GK102870413SQ201180021783
公开日2013年1月9日 申请日期2011年4月8日 优先权日2010年4月9日
发明者马尔塔·卡切维奇, 王翔林 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1