用于明度及色度块的可变长度译码系数译码的制作方法

文档序号:7990792阅读:152来源:国知局
用于明度及色度块的可变长度译码系数译码的制作方法
【专利摘要】本发明描述用于对视频数据块的变换系数进行译码的技术。根据这些技术,视频译码器(视频编码器或视频解码器)确定视频数据块是明度块还是色度块。如果所述视频数据块为明度块,则所述视频译码器基于码编号cn及比例因子的值自适应性地更新VLC表索引值。然而,如果所述视频数据块为色度块,则所述视频译码器基于所述码编号cn自适应性地更新所述VLC表索引值且不使用所述比例因子。所述视频译码器使用所述经更新的VLC表索引值来选择用以对所述视频数据块进行编码或解码的多个VLC表中的一VLC表。
【专利说明】用于明度及色度块的可变长度译码系数译码
[0001 ] 本申请案主张以下美国临时申请案的优先权,所述申请案中的每一者的全部内容以引用的方式并入本文:
[0002]2011年6月29日申请的美国临时申请案61 / 502,794;以及
[0003]2011年10月27日申请的美国临时申请案61 / 552,346。
【技术领域】
[0004]本发明涉及视频译码及压缩。更特定来说,本发明涉及使用可变长度译码(VLC)来对一个或一个以上视频数据块的变换系数进行编码的技术。
【背景技术】
[0005]熵编码为广泛用于视频译码中以压缩视频数据的方法。根据熵编码的一些方面,视频编码器扫描表示图像的像素的变换系数的二维矩阵,以产生变换系数的一维向量。在许多应用中,视频编码器有利地使用量化变换系数以进一步压缩视频数据的方法。视频解码器对视频数据进行解码。作为解码过程的部分,视频解码器扫描变换系数的一维向量,以重建变换系数的二维矩阵。
[0006]一个或一个以上实例的细节阐述于随附图式及以下描述中。本发明的其它特征、目标及优点将从描述及图式以及从权利要求书显而易见。

【发明内容】

[0007]—股来说,本发明描述用于对视频数据进行译码的技术,特定来说涉及在视频译码过程期间扫描变换系数的技术。在一些实例中,视频编码器经配置以使用可变长度码(VLC)来表示与在熵编码期间所产生的经量化变换系数阵列相关联的各种可能值。在这些情况下,所述编码过程的中间步骤依赖于使用存储于存储器中的至少一个值。本发明描述用以最小化或减少所需要的存储器资源以便实施视频数据的VLC译码的方法。
[0008]一个或一个以上实例的细节阐述于随附图式及以下描述中。本发明的其它特征、目标及优点将从描述及图式以及从权利要求书显而易见。根据这些实例中的一些,针对大小大于8X8的色度块描述专用译码方案。
[0009]一个实施例包含一种方法,在所述方法中,通过最初确定视频数据块是明度块还是色度块来对视频数据块进行译码。如果所述视频数据块为明度块,则基于码编号cn及比例因子的值两者自适应性地更新用以从多个VLC表选择VLC表的VLC表索引值。另一方面,如果所述视频数据块为色度块,则基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子。
[0010]另一实施例包含可用以执行以上实例的方法或本文中所揭示的其它技术的计算装置的处理器,或特定来说,编码器或解码器。其它实施例包含存储用于致使处理器执行这些方法的指令的计算机可读媒体。【专利附图】

【附图说明】
[0011]图1是说明经配置以根据本发明的技术操作的视频编码和解码系统的一个实例的框图。
[0012]图2是说明经配置以根据本发明的技术操作的视频编码器的一个实例的框图。
[0013]图3是说明经配置以根据本发明的技术操作的视频解码器的一个实例的框图。
[0014]图4是说明与本发明的一个或一个以上方面一致的对视频数据块进行译码的方法的一个实例的表。
[0015]图5是说明与本发明的一个或一个以上方面一致的对视频数据块进行译码的方法的一个实例的流程图。
【具体实施方式】
[0016]一股来说,本发明描述用于对视频数据进行译码的技术。更特定来说,本发明描述涉及在视频译码过程期间扫描变换系数的技术。经编码视频数据通常包含预测数据和残余数据。视频编码器使用帧内预测模式或帧间预测模式产生预测数据。帧内预测一股涉及相对于同一图片的相邻的先前译码块预测图片的视频块。帧间预测一股涉及相对于先前译码图片的数据预测图片的块。
[0017]宏块为由ITU H.264标准及其它标准所定义的一种类型的视频块。宏块通常指代16X16数据块。ITU-T H.264标准支持各种块大小的帧内预测(例如,对于明度分量的16X 16、8X8或4X4,及对于色度分量的8X8),以及各种块大小的帧间预测(例如,对于明度分量的16X16、16X8、8X16、8X8、8X4、4X8及4X4,及对于色度分量的对应按比例缩放大小)。举例来说,ITU-T H.264提供9个帧内预测模式,而HM提供至少34个帧内预测模式。
[0018]新兴的HEVC标准定义针对视频块的新术语。明确地说,在HEVC的情况下,视频块(或其分割区)可准许被称为“译码单元”。在HEVC标准的情况下,根据四叉树分割方案将最大译码单元(LCU)划分成愈来愈小的译码单元(CU),且可将在方案中所定义的不同CU进一步分割成所谓的预测单元(PU)和/或变换单元(TU)。在本发明的含义内,LCU、CU及PU以及TU皆为视频块。与HEVC标准或其它视频译码标准一致,还可能使用其它类型的视频块。因此,片语“块”指代任何大小的视频块。此外,视频块有时指代像素域中的视频数据块,或变换域(例如,离散余弦变换(DCT)域、类似于DCT的域、小波域或其类似者)中的数据块。另外,如本文中所描述的数据块可指代明度块、经子取样色度块,或明度块及两个经子取样色度块两者。
[0019]当前在HEVC测试模型中,针对大于8X8的块的专用系数译码方案仅应用于明度块。对于色度块,不存在针对大于8X8的块的可用及专用系数译码方案。为了对大于8X8的色度块进行译码,使用针对8X8块的相同系数译码方案保留且译码彼块中根据扫描次序的仅前64个系数。所得截断可导致有效数据(significant data)的损失。出于减小或消除色度数据损失的目的,本发明描述针对大小大于8X8的色度块的专用译码方案。
[0020]在帧内或帧间预测之后,视频编码器计算块的残余值。残余值一股对应于块的预测数据与块的真值之间的差。为了进一步压缩块的残余值,可将残余值变换成将尽可能多的数据(也被称作“能量”)压紧成尽可能少的系数的变换系数组。变换系数对应于大小与原始块相同的二维系数矩阵。换句话说,存在恰好与原始块中的像素一样多的变换系数。然而,归因于变换,变换系数中的许多变换系数可具有等于零的值。
[0021]视频编码器常常量化变换系数以进一步压缩视频数据,从而减少表示经量化变换系数所需要的数据量。在量化之后,视频编码器扫描变换系数,从而从包含经量化变换系数的二维矩阵产生一维向量。视频编码器任选地在扫描之前或之后将某些系数设定为等于零。
[0022]视讯视频编码器对所得阵列进行熵编码,以甚至进一步压缩数据。在一些实例中,视频编码器经配置以使用可变长度码(VLC)来表示阵列的各种可能的经量化变换系数(例如,使用上下文自适应可变长度译码(CAVLC))。在其它实例中,视频编码器经配置以使用二进制算术译码来对所得经量化系数进行编码(例如,使用上下文自适应二进制算术译码(CABAC))。在其它实例中,视频编码器经配置以使用机率区间分割熵译码(PIPE)来对所得经量化系数进行编码。
[0023]本发明描述涉及在视频译码过程期间扫描变换系数的技术。所述技术适用于包含经配置以执行视频编码和/或解码的视频编码器/解码器(CODEC)及处理单元的视频编码及解码单元两者。对“视频译码单元”或“视频译码装置”的参考应被理解为指代能够编码、解码,或既编码又解码视频数据的单元或装置。
[0024]图1为说明可经配置以实施本发明的技术的示范性视频编码和解码系统100的框图。如图1中所展示,系统100包含将经编码视频经由通信信道115发射到目的地装置106的源装置102。源装置102和目的地装置106包括广泛范围的装置中的任一者。在一些情况下,源装置102和目的地装置106包括无线通信装置手持机,例如所谓的蜂窝式或卫星无线电电话。然而,一股应用于视频数据的变换系数的编码及解码的本发明的技术未必限于无线应用或设置,且可能适用于包含视频编码和/或解码性能的广泛多种非无线装置。
[0025]在图1的实例中,源装置102包含视频源120、视频编码器122、调制器/解调制器(调制解调器)124和发射器126。目的地装置106包含接收器128、调制解调器130、视频解码器132和显示装置134。根据本发明,源装置102的视频编码器122将包含变换系数(例如,各自对应于所显示图像的像素)的二维矩阵的视频数据块的变换系数扫描成表示变换系数的一维向量。根据本发明的一些实施例,视频编码器122自适应性地扫描视频数据块的第一多个系数,且对于块的第二多个系数使用固定扫描。举例来说,对于第一多个变换系数,视频编码器122相对于扫描至少一个先前经编码视频数据块的变换系数的次序自适应性地修改扫描第一多个变换系数的次序。举例来说,视频编码器122基于其它先前经编码块中在同一位置处的系数为非零系数的频繁程度而修改扫描变换系数的次序。对于第二多个变换系数,视频编码器122不会相对于至少一个先前经编码视频数据块的扫描次序自适应性地修改扫描第二多个变换系数的次序。确切地说,视频编码器122使用由编码器编码的多个视频数据块的相同扫描次序扫描第二多个系数。
[0026]目的地装置106的视频解码器132还可经配置以执行互逆变换系数解码。在那些情境下,视频解码器132将表示视频数据块的变换系数的一维向量的系数映射到变换系数的二维矩阵内的位置,以重建变换系数的二维矩阵。
[0027]图1的所说明系统100仅为示范性的。可通过任何编码或解码装置来执行本发明的变换系数编码及解码技术。源装置102和目的地装置106仅为可支持这些技术的译码装置的实例。
[0028]在此实例中,源装置102的视频编码器122对从视频源120所接收的视频数据进行编码。视频源120包括视频俘获装置,例如摄像机、含有先前俘获的视频的视频存档,或来自视频内容提供者的视频馈送。作为又一替代,视频源120任选地产生基于计算机图形的数据作为源视频,或实况视频、归档视频及计算机产生的视频的组合。在一些情况下,如果视频源120为摄像机,则源装置102与目的地装置106形成所谓的相机电话或视频电话。在每一情况下,通过视频编码器122来对所俘获、预俘获或计算机产生的视频进行编码。
[0029]在示范性系统100中,一旦通过视频编码器122来对视频数据进行编码,则通过调制解调器124根据例如码分多址(CDMA)或任何其它通信标准或技术等通信标准调制经编码视频信息,且经由发射器126将其发射到目的地装置106。调制解调器124包含各种混频器、滤波器、放大器或经设计以用于信号调制的其它组件。此实例的发射器126包含经设计以用于发射数据的电路,包含放大器、滤波器及一个或一个以上天线。目的地装置106的接收器128经由信道115接收信息,且调制解调器130解调制所述信息。并且,通过视频解码器132所执行的视频解码过程包含与通过视频编码器122所执行的编码技术类似(例如,互逆)的解码技术。
[0030]根据本发明的一些方面,通信信道115包括任何无线或有线通信媒体,例如射频(RF)频谱或一个或一个以上实体传输线,或者无线与有线媒体的任何组合。在这些情况下,通信信道115形成基于包的网络(例如,区域网络、广域网络或例如因特网等全球网络)的部分。通信信道115 —股表示用于将视频数据从源装置102发射到目的地装置106的任何合适的通信媒体,或不同通信媒体的集合。
[0031]并且,图1仅为示范性的且本发明的技术适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据可从本地存储器检索、经由网络流式传输,或其类似者。编码装置编码数据且将数据存储到存储器,和/或解码装置从存储器检索数据且解码数据。在许多情况下,由彼此不通信而是简单地编码数据到存储器和/或从存储器检索数据且解码数据的不相关装置执行编码及解码。
[0032]尽管未在图1中展示,但在一些方面中,视频编码器122和视频解码器132可各自与音频编码器和解码器集成,且任选地包含适当的多路复用器-多路分用器单元或其它硬件及软件以处置对共同数据串流或单独数据串流中的音频及视频两者的编码。如果适用,则多路复用器-多路分用器单元可遵照ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
[0033]视频编码器122和视频解码器132中的任一者或两者可实施为一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码器122和视频解码器132中的每一者可包含于一个或一个以上编码器或解码器中,其中任一者可集成为相应移动装置、用户装置、广播装置、服务器或其类似者中的组合式编码器/解码器(CODEC)的部分。
[0034]在一些情况下,装置102、106可经配置而以实质上对称的方式操作。举例来说,装置102、106中的每一者任选地包含视频编码及解码组件。因此,系统100可支持视频装置102、106之间的单向或双向视频传输,例如用于视频流式传输、视频播放、视频广播或视频电话。
[0035]在编码过程期间,视频编码器122执行数个译码技术或操作。一股来说,视频编码器122对个别视频帧(或例如切片等其它独立译码单元)内的视频块进行操作,以便对视频块进行编码。帧、切片、帧的部分、图片群组或其它数据结构可定义为包含多个视频块的独立数据单元,且在这些不同的独立数据单元处可包含语法元素。独立数据单元内的视频块可具有固定或变化大小,且可能根据所规定的译码标准而大小不同。在一些情况下,每一视频帧包含一系列可独立解码的切片,且每一切片可另外包含一个或一个以上宏块或IXU。
[0036]再次参看图1,视频编码器122常常执行预测性译码,其中将正译码的视频块与另一视频数据块进行比较以便识别预测性块。预测性译码的此过程常常被称作运动估计和运动补偿。运动估计相对于一个或一个以上预测性帧(或其它译码单元)的一个或一个以上预测性视频块而估计视频块运动。运动补偿从一个或一个以上预测性帧或其它译码单元产生所要预测性视频块。运动补偿包含内插过程,其中执行内插滤波以产生在分数像素精度下的预测性数据。
[0037]在产生预测性块之后,将正译码的当前视频块与预测性块之间的差译码为残余块,且使用预测语法(例如,运动向量)来识别预测性块。对残余块进行变换及量化。变换技术任选地包括DCT过程或概念上类似的过程、整数变换、小波变换,或其它类型的变换。在DCT或类DCT过程中,作为实例,变换过程将一组像素值(例如,残余值)转换成变换系数,所述变换系数(例如)表示频域中像素值的能量。通常将量化应用于变换系数,且量化一股涉及限制与任何给定变换系数相关联的位元的数目的过程。
[0038]在许多实施例中,在变换及量化之后,对经变换及经量化的残余视频块执行熵译码。语法元素、各种滤波器语法信息,及在编码期间所定义的预测向量包含于经熵译码的位流中。一股来说,熵译码包括共同地压缩经量化变换系数的序列和/或其它语法信息的一个或一个以上过程。对经量化变换系数执行扫描技术(例如,固定或自适应扫描次序),以便从二维视频块定义系数的一个或一个以上串行化一维向量。举例来说,根据本文中所描述的技术,对于视频块的不同系数,可使用固定及自适应扫描技术两者。一旦经扫描以产生所述一个或一个以上串行化一维向量,则经扫描的系数连同任何语法信息被熵译码。
[0039]作为编码过程的部分,对经编码视频块进行解码以产生用于后续视频块之后续基于预测的译码的视频数据。在此阶段,可使用滤波以便改进视频质量,且(例如)移除来自经解码视频的成块或其它假影。此滤波任选地为环路内或环路后。在环路内滤波的情况下,经重建的视频数据的滤波发生于译码环路中,此意谓经滤波的数据由编码器或解码器存储以供随后用于后续图像数据的预测中。相比之下,在环路后滤波的情况下,经重建的视频数据的滤波发生于译码环路外,此意味着数据的未经滤波版本由编码器或解码器存储以供随后用于后续图像数据的预测中。
[0040]图2为说明与本发明一致的实例视频编码器250的框图。视频编码器250可对应于源装置100的视频编码器122或不同装置的视频编码器。如图2中所展示,视频编码器250包含预测模块240、加法器241及246,和存储器245。视频编码器250还包含变换模块242和量化模块243,以及逆量化模块248和逆变换模块247。视频编码器250还包含熵译码模块244。熵译码模块244包含扫描模块260。
[0041]在编码过程期间,视频编码器250接收待译码的视频块,且预测模块240执行预测性译码技术。对于帧间译码来说,预测模块240将待编码的视频块与一个或一个以上视频参考帧或切片中的各种块进行比较以便定义预测性块。对于帧内译码来说,预测模块240基于同一帧、切片或视频数据的其它单元内的相邻数据而产生预测性块。预测模块240输出预测块,且加法器241从正译码的视频块减去预测块以便产生残余块。
[0042]根据本发明的一些方面,对于帧间译码来说,预测模块240包括识别指向预测块的运动向量且基于运动向量产生预测块的运动估计及运动补偿模块(未在图2中描绘)。通常,运动估计被视为产生运动向量的过程,所述运动向量估计运动。举例来说,运动向量可指示预测性帧内的预测性块相对于当前帧内正译码的当前块的位移。运动补偿通常被视为基于通过运动估计所确定的运动向量取得或产生预测性块的过程。对于帧内译码来说,预测模块240基于同一帧、切片或视频数据的其它单元内的相邻数据而产生预测性块。一个或一个以上帧内预测模式可定义帧内预测块可被定义的方式。
[0043]在一些实例中,针对帧间译码的运动补偿包含到子像素分辨率的内插。通过预测模块240所产生的内插预测性数据(例如)内插到半像素分辨率、四分的一像素分辨率或甚至更精细的分辨率。此情形准许运动估计将视频块的运动估计到此子像素分辨率。
[0044]在预测模块240输出预测块之后且在加法器241从正译码的视频块减去预测块以便产生残余块之后,变换模块242将变换应用于残余块。变换任选地包括离散余弦变换(DCT)、整数变换或概念上类似的变换,例如通过ITU H.264标准、HVEC标准或其类似者所定义的变换。在一些实例中,变换模块242执行不同大小的变换且针对译码效率及改进的压缩选择变换的不同大小。还可使用小波变换、整数变换、次频带变换或其它类型的变换。在任何情况下,变换模块242将特定变换应用于残余像素值的残余块,从而产生残余变换系数的块。变换将残余像素值信息从像素域转换为频域。
[0045]逆量化模块248与逆变换模块247分别应用逆量化与逆变换,以在像素域中重建残余块。求和器246将经重建的残余块加到由预测模块240产生的预测块,以产生经重建的视频块以供存储于存储器245中。滤波器模块249可对经重建的视频块执行环路内或环路后滤波。
[0046]在一些实例中,存储器245存储块的巾贞或切片以供用于相对于待编码的其它巾贞的块的运动估计。在此存储之前,在环路内滤波的情况下,滤波器模块249将滤波应用于视频块以改进视频质量。通过滤波器模块249进行的此滤波减少成块或其它假影。此外,滤波通过产生包括与正译码的视频块的紧密匹配的预测性视频块而改进压缩。还可在环路后执行滤波以使得经滤波数据输出为经解码数据,但未经滤波数据由预测模块240使用。
[0047]在某些实例中,量化模块243量化残余变换系数(例如,来自变换模块242)以进一步减小位元速率。量化模块243(例如)限制用以对系数中的每一者进行译码的位元的数目。在量化之后,熵编码模块244对数据进行扫描及熵编码。举例来说,熵编码模块244可从二维表示扫描经量化系数块以产生一个或一个以上串行化一维向量。举例来说,扫描模块260可执行表示经量化系数块的二维矩阵的扫描。
[0048]在此扫描过程之后,熵编码模块244根据如本文中所描述的熵译码方法编码经量化变换系数(连同任何语法元素)以进一步压缩数据。在此实例中,包含于经熵编码位流中的语法信息包含来自预测模块240的预测语法,例如针对帧间译码的运动向量或针对帧内译码的预测模式。包含于经熵编码位流中的语法信息可能还包含滤波器信息,例如由预测模块240应用于内插的滤波器信息或由滤波器模块249应用的滤波器。另外,包含于经熵译码位流中的语法信息还可包含表示语法元素中的一者或一者以上的一个或一个以上VLC码字(或其它息)。
[0049]在通过熵编码模块244进行熵译码之后,将经编码视频发射到另一装置或加以归档以供稍后发射或检索。举例来说,解码器可使用通过熵编码模块244所产生的经编码视频的变换系数的一维向量,以重建表示视频数据块的二维矩阵。
[0050]图3为说明视频解码器350的实例的框图,视频解码器350对以本文中所描述的方式编码的视频序列进行解码。所接收到的视频序列任选地包括图像帧的经编码组、帧切片组、经共同译码图片群组(GOP),或包含经编码视频块及用以定义对这些视频块进行解码的方式的语法信息的广泛多种经译码视频单元。
[0051]图3中所表示的视频解码器350并有熵解码模块344,熵解码模块344执行与由图2的熵编码模块244所执行的编码互逆的解码功能。在一些实例中,熵解码模块344将呈一维串行化格式的经熵编码的视频块转换回为二维块格式。向量的数目及大小以及针对视频块所定义的扫描次序定义重建二维块的方式。
[0052]如图3中所描绘,视频解码器包含滤波器模块349。滤波器模块349可对经重建的视频块执行环路内或环路后滤波。视频解码器350还包含预测模块340、逆量化单元343、逆变换模块342、存储器345和求和器346。
[0053]广泛多种视频压缩技术及标准执行空间及时间预测以减少或移除在输入视频信号中所固有的冗余。如上文所解释,使用空间预测(即,帧内预测)和/或时间预测(即,帧间预测或运动估计)预测输入视频块。本文中所描述的预测模块一股包含模式决策模块(未图示),以便针对给定输入视频块选择合乎需要的预测模式。模式选择考虑多种因素,例如块是经帧内译码还是经帧间译码、在使用帧内译码的情况下的预测块大小及预测模式,及在使用帧间译码的情况下的运动分割区大小及所使用的运动向量。从输入视频块中减去预测块,且接着将变换及量化应用于残余视频块上,如上文所描述。
[0054]经量化系数连同模式信息可经熵编码以形成视频位流。经量化系数还可经逆量化及逆变换以形成经重建的残余块,可将经重建的残余块加回到预测视频块(经帧内预测块或经运动补偿块,此取决于所选择的译码模式)以形成经重建的视频块。环路内或环路后滤波方法适用于减少经重建的视频信号中的视觉假影。经重建的视频块最终存储于参考帧缓冲器(即,存储器)中以用于将来视频块的译码。
[0055]在一些实例中,根据Z形扫描技术定序(扫描)视频帧的给定叶层级块的系数。由编码器250使用此技术来产生一维定序系数向量。Z形扫描技术包括在块的最左上系数处开始,且继续进行到以Z形模式扫描到块的最左下系数。
[0056]根据Z形扫描技术,假设具有最大能量(例如,最大系数值)的变换系数对应于低频率变换功能且位于朝向块的左上处。因而,对于基于Z形扫描所产生的系数向量(例如,一维系数向量),假定较高量值系数最有可能朝向向量的开始出现。还假定在已量化系数向量之后,最低能量系数将等于O。在一些实例中,在系数译码期间调适系数扫描。举例来说,扫描中的较低编号被指派到非零系数更经常出现的位置。
[0057]根据一些实例,编码器250执行变换系数的逆Z形扫描。为了执行逆Z形扫描,编码器250在对应于最后非零系数(例如,距块的左上位置最远的非零系数)的位置处开始编码。与上文所描述的Z形扫描的实例不同,根据逆Z形扫描的实例,编码器250以从最后非零系数(即,在块的右下位置中)到块的左上位置的Z形模式进行译码。在一些实例中,编码器250经配置以基于一个或一个以上已译码系数的量值在行程译码模式(run codingmode)与层级译码模式之间切换。
[0058]根据变换系数的逆Z形扫描,编码器250通过首先对指示最后非零系数(即,逆扫描次序的第一非零系数)的last_p0s语法元素进行编码来扫描视频数据块。在一些实例中,编码器250还对指示最后非零系数的量值是I还是大于I的level_ID语法元素进行编码。在一些实例中,编码器250将last_p0s及level_ID语法元素一起编码为VLC码字。
[0059]在一些实例中,为了对level_ID及last_pos语法元素进行译码,编码器250确定last_pos及level_ID语法元素的值,且使用所确定值来确定码编号cn。码编号cn包括可输入到多个VLC表中的所选择VLC表中以确定表示level_ID及last_p0s语法元素的VLC码字的项值。在一些实例中,编码器250基于使用定义level_ID及last_p0s语法元素与码编号cn之间的关系的存储于存储器中的多个映射表中的映射表确定码编号cn。在其它实例中,编码器250基于定义level_ID及last_pos语法元素与码编号cn之间的关系的结构化映射确定码编号cn。
[0060]如在上文所描述的实例中所阐述,为了确定表示level_ID及last_p0s语法元素的此VLC码字,编码器250选择存储于存储器中的多个VLC表中的VLC表,且将所确定码编号cn输入到所选择VLC表中以确定VLC码字。在一些实例中,编码器250基于VLC表索引值选择所述多个VLC表中的VLC表。VLC表索引值指示编码器250应使用多个VLC表中的哪一 VLC表以输入码编号cn,从而确定表不level_ID及last_pos语法兀素的VLC码字。
[0061]举例来说,值VlcTableIndex可用以表示VLC表的阵列的当前VLC表的索引。VLC表的此阵列可被称作arrayVLCNum。基于索引值vlcindex,接着可将数个VLC表中的表表示为arrayVLCNum [vlcindex]。如在上文所描述的实例中所阐述,编码器250将码编号cn键入到由值arrayVLCNum [vlcindex]表示的特定表中以对变换系数进行译码。
[0062]在一些实例中,基于一个或一个以上码字长度散布特性配置存储于存储器中的多个VLC表。更特定来说,VLC表中的每一者表示VLC码字长度在相应VLC表中增加的不同“速率”。举例来说,图4的VLC映射表说明一实例,其中编码器从四个VLC表VLCO到VLC3当中选择VLC表。
[0063]根据图4的实例,VLC表VLCO到VLC3的一些VLC码字继之以一个或一个以上“x”符号,所述一个或一个以上“X”符号中的每一者表示表内的VLC码字的相应长度。举例来说,图4的VLC2中的VLC码字实例Ixx表示与码编号O到3相关联的4个VLC码字:
[0064]100
[0065]101
[0066]110
[0067]111
[0068]如图4的实例中所展示,VLC表VLCO的相应码字的长度增加的速率“快”于VLC表VLCl的相应码字的长度增加的速率,VLC表VLCl的相应码字的长度增加的速率又快于VLC表VLC2的相应码字的长度增加的速率,VLC表VLC2的相应码字的长度增加的速率又快于VLC表VLC3的相应码字的长度增加的速率。在一些实例中,可有益地从图4中所描绘的VLC表O到3的各种VLC码字长度“速度”当中进行选择,以对视频数据块的last_p0s及level_ID语法元素进行编码。
[0069]如上文所阐述,在一些实例中,可基于VLC表索引值从多个VLC表(例如,图4的VLC表O到3)当中选择VLC表以对last_pos及level_ID语法元素进行编码。在一些实例中,随着由编码器250对视频数据块进行编码,编码器250更新VLC表索引值。
[0070]举例来说,对于具有16X16或更大的大小的明度块,且编码器可经配置以基于以下规则更新VLC表索引值。
[0071]vlcTablelndex+=(cn / 4==vlcTableIndex ? O: (cn / 4<vlcTableIndex ? -1:
D);
[0072]VlcTableIndex=Min(vlcTablelndex, 16);
[0073]根据此实例,每次在视频编码器确定码编号cn ( 即,如上文所阐述)且使用码编号cn来确定VLC码字时,编码器将当前VLC表索引值与除以比例因子(在此实例中为4)的码编号cn进行比较。如果当前VLC表索引值等于除以比例因子的码编号cn,则编码器250不改变VLC表索引值。在此实例中,如果当前VLC表索引值大于除以比例因子的码编号cn,则编码器250递减VLC表索引值(从VLC表索引值减去一(I))。如果VLC表索引值小于除以比例因子的码编号cn,则编码器250递增(将一(I)加到)VLC表索引值。如上文实例中还展示,编码器250进一步将经更新(即,经递增、经递减或未改变)VLC表索引值与预定阈值(即,在上文实例中为16)进行比较。如果经更新VLC表索引值大于预定阈值,则编码器250将预定阈值的值 指派到VLC表索引值。以此方式,编码器250使VLC表索引值免于超出预定阈值。
[0074]一旦编码器250已更新VLC表索引值,如上文实例中所描述,则编码器250使用经更新VLC表索引值来编码(例如,选择VLC表)另一视频数据块(由编码器编码的下一个视频数据块)的last_p0s及level_ID语法元素。返回参看上文图4的实例,编码器250使用经更新VLC表索引值以从VLC表O到3当中进行选择。举例来说,如果当前VLC表索引值具有为2的值(选择图4的第三行中的VLC表,表VLC2),且VLC表索引值小于除以比例因子的码编号cn,则编码器250递减VLC表索引值以具有为一(I)的值。根据此实例,对于下一个视频数据块,编码器250基于为I的经递减VLC表索引值选择表VLCl。
[0075]在一些实例中,对于小于16X16的明度或色度块,编码器250使用以下规则来更新VLC表索引值:
[0076]vlcTablelndex+=(cn==vlcTableIndex ? O: (cn<vlcTableIndex ? -1:1));
[0077]VlcTableIndex=Min(vlcTablelndex, 16);
[0078]根据此实例,编码器250未将当前VLC表索引值与除以比例因子的码编号cn进行比较。确切地说,对于8X8或更小的明度或色度块,编码器250将当前VLC表索引值与码编号cn自身进行比较,且基于比较更新(例如,递增、递减或维持)VLC表索引值。如根据上文所阐述的16X16明度块实例所描述,编码器250任选地还将经更新(即,经递增、经递减或未改变)VLC表索引值与预定阈值进行比较。如果经更新VLC表索引值大于预定阈值,则编码器250可经配置以将预定阈值的值指派到VLC表索引值。
[0079]根据本文中所描述的技术,编码器250可经配置以对不同大小的明度及色度块进行编码。举例来说,根据本文中所描述的技术,对于大小8X8或更大的明度块,编码器250可基于比例因子更新VLC表索引值。举例来说,编码器可基于将VLC表索引值与除以比例因子的码编号进行比较而自适应性地更新VLC表索引值,如上文所描述。然而,对于具有8 X 8或更大的大小的色度块,编码器不使用此比例因子。确切地说,编码器在不用比例因子除码编号的情况下基于将VLC表索引值与码编号进行比较而自适应性地更新VLC表索引值。以此方式,本文中所描述的编码器可经配置以对更大大小(例如,大于8X8的大小)的明度及色度块两者进行编码。
[0080]作为一实例,根据本文中所描述的技术,使用以下规则自适应性地更新值vlcTablelndex:
[0081]对于具有大于8X8的大小(B卩,16X16、32X32、64X64)的明度块:
[0082]vlcTablelndex+=(cn / 4==vlcTableIndex ? O: (cn / 4<vlcTableIndex ? -1:D);
[0083]VlcTableIndex=Min(vlcTablelndex,16);
[0084]对于其它块(其包含大小16 X 16或更大的色度块),
[0085]vlcTablelndex+=(cn==vlcTableIndex ? O: (cn<vlcTableIndex ? -1:1));
[0086]VlcTableIndex=Min(vlcTablelndex, 16);
[0087]在与本文中所描述的技术一致的一些实例中,使用自适应性地更新的VLC表索引值选择VLC表以对last_p0s及level_ID语法元素进行编码所依据的VLC表阵列取决于针对明度块的块大小,而不取决于针对色度块的块大小。举例来说,对于色度块,编码器250可使用VLC表的同一阵列(例如,arrayVLCTabIeNum)来对last_pos及level_ID语法元素进行译码,而不管色度块的大小。根据此实例,对于明度块,取决于相应明度块的大小,VLC表的不同阵列(例如,不同arrayVLCTabIeNum)可经选择且用以对明度块进行译码。
[0088]图5为描绘与本发明的一个或一个以上方面一致的译码视频数据块的方法的实例的流程图。图5的方法经描述为由图2中所描绘的编码器250执行以对视频数据块进行编码。图5的方法可由包含图3中所描绘的解码器350的任何装置执行以对视频数据块进行解码。
[0089]如图5中的实例所展示,与本发明的方面一致,编码器250确定视频数据块是明度块还是色度块(501)。如果视频数据块为明度块,则编码器250基于码编号cn及比例因子的值自适应性地更新用以选择多个VLC表中的VLC表的VLC表索引值(502)。如果视频数据块为色度块,则编码器250基于码编号cn自适应性地更新VLC表索引值而不使用比例因子(503)。
[0090]在一个或一个以上实例中,本文中所描述的功能至少部分以例如特定硬件组件或处理器等硬件来实施。更一股来说,技术可以硬件、处理器、软件、固件或其任何组合来实施。如果以软件来实施,功能可(例如)存储于计算机可读媒体上或作为一个或一个以上指令或程序代码在计算机可读媒体上传输且通过基于硬件的处理单元执行。计算机可读媒体的实例包含计算机可读存储媒体或通信媒体,计算机可读存储媒体对应于例如数据存储媒体等有形媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体大体上对应于(I)为非暂时性的有形计算机可读存储媒体或(2)例如信号或载波等通信媒体。数据存储媒体包含可通过一个或一个以上计算机或一个或一个以上处理器存取以检索用于实施本发明中所描述的技术的指令、程序代码和/或数据结构的任何可用媒体。计算机程序产品任选地包含计算机可读媒体。
[0091]作为实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构的形式的所要程序代码且可通过计算机存取的任何其它媒体。并且,任何连接可适当地称作计算机可读媒体,即计算机可读传输媒体。举例来说,如果使用同轴缆线、光缆、双绞线、数字用户线(DSL),或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源发射指令,则同轴缆线、光缆、双绞线、DSL,或例如红外线、无线电及微波等无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而替代地针对非暂时性、有形的存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光盘、数字影音光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过激光以光学方式再现数据。以上各物的组合也应包含于计算机可读媒体的范围内。
[0092]通常通过一个或一个以上处理器来执行指令,所述一个或一个以上处理器例如是一个或一个以上中央处理单元(CPU)、数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或其它等效集成电路或离散逻辑电路。因此,如本文中所使用,术语“处理器”可指代前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可实施于经配置以用于编码及解码的专用硬件和/或软件模块内,或并入于组合式编解码器中。并且,所述技术可完全实施于一个或一个以上电路或逻辑元件中。
[0093]所属领域的技术人员将容易了解,本发明的技术不限于上文所呈现的实例的范围中,且可实施于广泛多种装置或设备中,包含无线手持机、集成电路(IC)或IC组(例如,芯片组)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。确切地说,如上文所描述,各种单元可组合于编解码器硬件单元中或通过互操作的硬件单元组(包含如上文所描述的一个或一个以上处理器)结合合适的软件和/或固件来提供。
[0094]已描述各种实例。这些及其它实例处于所附权利要求书的范围内。
【权利要求】
1.一种对视频数据块进行译码的方法,其包括: 确定视频数据块是明度块还是色度块; 如果所述视频数据块为明度块,则基于码编号Cn及比例因子的值自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值;以及 如果所述视频数据块为色度块,则基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子。
2.根据权利要求1所述的方法,其进一步包括: 对视频数据的多个色度块进行编码;以及 对于每一色度块,从相同多个VLC表中选择所述VLC表,而不管所述色度块的大小。
3.根据权利要求1所述的方法,其进一步包括: 对视频数据的多个明度块进行编码;以及 对于所述明度块中的每一者,基于所述明度块的大小选择一个以上多个VLC表中的多个VLC表。
4.根据权利要求1所述的方法,其中基于码编号cn及所述比例因子自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值包括将当前VLC表索引值与除以所述比例因子的所述码编号cn进行比较。
5.根据权利要求1所述的方法,其中基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子包括将所述当前VLC表索引值与所述码编号cn进行比较。
6.根据权利要求1所述的方法,其进一步包括: 确定所述视频数据块的大小; 如果所述视频数据块为明度块且具有大于8X8的大小,则基于码编号cn及比例因子S自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值;以及 否则,基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子S。
7.根据权利要求1所述的方法,其中所述方法是由计算装置的处理器执行。
8.根据权利要求1所述的方法,其中所述方法是由编码器执行,且其中所述经更新的VLC表索引值用以对所述视频数据块进行编码。
9.根据权利要求1所述的方法,其中所述方法是由解码器执行,且其中所述经更新的VLC表索引值用以对所述视频数据块进行解码。
10.一种经配置以对视频数据块进行译码的装置,其包括: 处理器,其经配置以: 确定视频数据块是明度块还是色度块; 如果所述视频数据块为明度块,则基于码编号cn及比例因子的值自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值;以及 如果所述视频数据块为色度块,则基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子。
11.根据权利要求10所述的装置,其进一步包括处理器,所述处理器经配置以: 对视频数据的多个色度块进行编码;以及 对于每一色度块,从相同多个VLC表中选择所述VLC表,而不管所述色度块的大小。
12.根据权利要求10所述的装置,其进一步包括处理器,所述处理器经配置以:对视频数据的多个明度块进行编码;以及 对于所述明度块中的每一者,基于所述明度块的大小选择一个以上多个VLC表中的多个VLC表。
13.根据权利要求10所述的装置,其中基于码编号cn及所述比例因子自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值包括将当前VLC表索引值与除以所述比例因子的所述码编号cn进行比较。
14.根据权利要求10所述的装置,其中基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子包括将所述当前VLC表索引值与所述码编号cn进行比较。
15.根据权利要求10所述的装置,其进一步包括处理器,所述处理器经配置以: 确定所述视频数据块的大小; 如果所述视频数据块为明度块且具有大于8X8的大小,则基于码编号cn及比例因子S自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值;以及 否则,基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子S。
16.根据权利要求10所述的装置,其中所述装置为编码器,且其中所述经更新的VLC表索引值用以对所述视频数据块进行编码。
17.根据权利要求10所述的方法,其中所述装置为解码器,且其中所述经更新的VLC表索引值用以对所述视频数据块进行解码。
18.一种存储指令的计算机可读存储媒体,所述指令在执行时致使计算装置: 确定视频数据块是明度块还是色度块; 如果所述视频数据块为明度块,则基于码编号cn及比例因子的值自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值;以及 如果所述视频数据块为色度块,则基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子。
19.一种经配置以对视频数据块进行译码的装置,其包括: 用于确定视频数据块是明度块还是色度块的装置; 用于在所述视频数据块为明度块的情况下基于码编号cn及比例因子的值自适应性地更新用以选择多个VLC表中的一 VLC表的VLC表索引值的装置;以及 用于在所述视频数据块为色度块的情况下基于所述码编号cn自适应性地更新所述VLC表索引值而不使用所述比例因子的装置。
【文档编号】H04N19/176GK103636207SQ201280031931
【公开日】2014年3月12日 申请日期:2012年6月29日 优先权日:2011年6月29日
【发明者】马尔塔·卡切维奇, 翔林·王, 钱威俊, 郭立威 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1