用于可缩放视频编码的自适应熵编码和自适应熵解码的方法和设备的制作方法

文档序号:7635554阅读:255来源:国知局

专利名称::用于可缩放视频编码的自适应熵编码和自适应熵解码的方法和设备的制作方法
技术领域
:本发明的方法和设备涉及用于可缩》文;现频编码的自适应熵编码和自适应熵解码,更具体地说,涉及使用各种上下文模型的自适应熵编码和自适应熵解码。
背景技术
:可缩放视频编码是用于在根据异构为了和终端环境调整传输数据量之后传送传输数据的视频编码,并且对于根据各种传输环境自适应地处理数据是基本的。随着移动通信技术、传输系统、高性能半导体和视频压缩技术的发展,对于能够适于各种传输环境的视频服务的需求正在快速增长。然而,为了根据包括信道带宽、终端处理能力、分组丢失率和用户的移动环境的各种环境中的变化自适应地处理视频,已经基于特定通信环境开发的传统视频编码技术不适合根据各种传输环境自适应地编码数据。可缩放视频编码是适应于这样的各种传输环境的智能技术。可缩放视频编码的例子包括空间可缩放编码、帧速率自适应时间可缩放编码和基于视频质量的信噪比(SNR)可缩;改编/玛。传统视频标准包括这些可缩放视频编码技术。例如,有基于主要在异步传输模式(ATM)网络中的视频数据传输的MPEG-2可缩放编码,H.263Annex.O的SNR、时间和空间可缩放编码以及基于MPEG-4的精细颗粒(finegranular)可缩放编码。此外,正在对符合MPEG-4AVC的可缩放视频编码进行标准化。符合MPEG-4AVC的可缩放视频编码目的是从SNR、时间和空间缩放性的角度提供可缩放视频编码。图1是示出使用可缩放视频编码的视频编码的例子的视图。参照图1,可以看出可以从SNR、时间和空间缩放性的角度来执行可缩放视频编码。可缩放视频编码涉及根据网络状态将视频编码到多个层,其中使用它们紧邻的下层的婆t据来编码增强层。在图1所示的视频编码的例子中,当视频数据的传输比特率低于41kpbs时,仅仅编码基础层(baselayer)110。当一见频数据的传输位速率在41kbps和80kbps之间时,执行使用基础层110的数据来提高视频质量的SNR可缩放编码,以产生和编码第一增强层120。基础层110和第一增强层120的每个帧的画面大小处于四分之一公共中间格式(aquartercommonintermediateformat,QCIF)中,而且以每秒15帧的速率熵编码基础层110和第一增强层120。通过CIF指定第二增强层130和第三增强层140的每个帧的画面大小,而且以每秒30帧的速率熵编码第二增强层130和第三增强层140。因此,当视频数据的传输位速率是115kbps或者更快时,通过将具有在第一增强层120中的QCIF画面大小的帧上采样(up-sampling)为具有CIF画面大小的帧,并且对经过上采样的帧执行预测编码,以进一步创建中间帧(即,高通(H)帧),来创建第二增强层130。当视频数据的传输位速率为256kpbs或者更快时,通过使用在第三增强层140之下紧邻的第二增强层130的数据执行提高视频质量的SNR可缩放编码,来创建第三增强层140。由于从传输顺序的角度将每层的双预测(B)帧或者H帧用作之前帧的运动补偿的基准帧,所以可以将它们时间可缩放编码。参照图1,I帧和P帧从传输顺序的角度在B帧或者H帧之前。如图l所示,B帧和H帧之间的传输顺序随之分配给B帧和H帧的索引(由帧名称中的上标指示)变化。最好当在B帧中其索引为低时和当在H帧中其索引为高时传输该帧。例如,在基础层IIO或者第一上层120中,通过参照I帧和P帧对B^贞运动补偿,而通过参照B4贞对B^贞运动补偿。在第二增强层130和第三增强层140中,通过参照L3帧对H3帧运动补偿,而且通过参照H3帧对H2帧运动补偿。因此,帧传输顺序在基础层IIO和第一增强层120中是I-冲-〉Bi-〉B、〉B3,而在第二增强层130和第三增强层140中是L、〉H、-H、〉H^H、由帧的时间顺序来确定在具有相同索引的帧之间的传输顺序。通过时间可缩放编码、空间可缩放编码和SNR可缩放编码,解码器可以在与层对应的可缩放位速率上对层进行解码。虽然可缩放视频编码已经被作为标准建立在MPEG-2标准中,并且已经被深入地研究,但是其还没有进入到公共使用中。这种局面的原因是编码效率低。换句话说,当与不可缩放^L频编码器比较时,可缩放一见频编码器执行编码以逐渐地改进低质量基础层的质量。作为结果,即使当视频具有相同的位速率时,还可能严重降低某些视频的质量。在不解决这种编码效率问题的情况下,难于在市场中部署可缩》文编码。研究。例如,在空间可缩放编码中,通过在运动补偿中使用较低层的上采样帧可以与每个层的独立编码相比显著地提高编码效率。换句话说,由于在层之间存在高相关性,所以能够通过使用这种高相关性在预测编码中获得高编码效率。然而,在传统可缩放一见频编码中,熵编码不使用层之间的相关性,而是被以与不可缩放视频编码的方式相同的方式执行。结果,不能解决编码效率降低的问题
发明内容技术方案本发明提供用于使用层的语法元素之间的相关性,基于上下文地自适应熵编码的方法和设备,以提高在将视频编码为多层的可缩放视频编码器中的熵编码的效率。本发明还提供用于使用层的语法元素之间的相关性基于上下文地自适应熵编码的方法和设备。有益效果根据本发明,可以通过在可缩放视频编码中不仅使用在相同层中的语法元素而且使用在较低层中的语法元素执行熵编码,来提高编码效率。通过结合附图详细描述本发明的示例实施方式,本发明的上面和其他方面将变得更加显而易见。图2是基于上下文的自适应二进制算术编码(context-basedadaptivebinaryarithmeticcoding,CABAC)编码器的框图3A和3B是用于解释上下文的确定的参考图;图4是CABAC解码器的框图5是使用码元(symbol)和码字之间的映射信息执行编码的熵编码器的框图6是使用码元和码字之间的映射信息执行解码的熵解码器的框图;图7A和7B是用于解采作的参考图8A到8G是才艮据本i码器的框图9A到9G是根据本S码器的框图IOA到IOC是示出根据本发明示例实施方式的熵编码方法的流程图;图IIA到IIC是示出根据本发明示例实施方式的熵解码方法的流程图13是根据本发明示例实施方式具有熵解码器的视频解码器的框图。具体实施方式最佳实施方式根据本发明的一个方面,提供可缩放熵编码方法。该可缩放熵编码包括通过参照作为包括要被编码的语法元素的块的相同层中的语法元素和在较低层中的语法元素两者或者只是在较低层中的语法元素来确定上下文,并使用所确定的上下文对语法元素执行熵编码。根据本发明的另一个方面,提供熵编码方法。该熵编码方法包括下列之一编码的语法元素变换为二进制串,通过参照相同层中的语法元素确定上下文,根据本发明再另一个方面,提供可缩放熵解码方法。该可缩放熵解码方法包括通过参照在作为包括熵编码的语法元素的块的相同层中的语法元素和在较低层中的语法元素,或者仅仅参照在较低层中的语法元素,来接收经熵编码的数据和确定上下文,以及使用所确定的上下文对经熵编码的数据执行熵解码。根据本发明的另一个方面,提供熵解码方法。该熵解码方法包括接收经熵编码的数据,并通过参照在作为包括熵编码的语法元素的块的相同层中的语法元素来确定上下文,使用所确定的上下文对经熵编码的数据执行熵解码,和通过参照下列之一在作为包括熵编码的语法元素的块的相同层中的语法元素、在较低层的语法元素和在相同层中的语法元素与在较低层中的语法元素两者,图12是:匡图;和将经过熵解码的二进制串变换为码元。根据本发明的再另一个方面,提供包括上下文确定单元和熵编码引擎的可缩放熵编码器。该上下文确定单元通过参照在作为包括要被编码的语法元素的中的语法元素,来确定上下文。该熵编码引擎使用所确定的上下文对语法元素#1行熵编码。根据本发明的再一个方面,提供熵编码器,其包括二进制串变换单元,上下文确定单元,和熵编码引擎。该二进制串变换单元通过参照下列之一在作为包括要被编码的语法元素的块的相同层中的语法元素、在较低层的语法元法元素变换为二进制串。该上下文确定单元通过参照相同层中的语法元素来确定上下文。该上下文确定单元通过参照相同层中的语法元素来确定上下文。熵编码引擎使用所确定的上下文对要被编码的语法元素执行熵编码。根据本发明的另一个方面,提供可缩放熵解码器,其包括上下文确定单元和熵解码引擎。该上下文确定单元接收经熵编码的数据,并通过参照在作为包括熵编码的语法元素的块的相同层中的语法元素,或者只参照在较低层的语法元素,来确定上下文。该熵解码引擎使用所确定的上下文对经熵编码的数据执行熵解码。根据本发明的再一个方面,提供熵解码器,其包括上下文确定单元、熵解码引擎和码元变换单元。该上下文确定单元来接收经熵编码的数据,并通过参熵解码引擎使用所确定的上下文对经熵编码的数据执行熵解码。该码元变换单元通过参照下列之一在作为包括经熵编码的语法元素的块的相同层中的语法两者,将经熵解码的二进制串变换为码元。发明实施方式将描述熵编码和解码,包括根据本发明的示例实施方式使用层的编码元素之间的相关性的基于上下文的熵编码和解码。具体地说,将详细描述由于其高编码效率而在H.264/MPEG-4AVC中使用的基于上下文的自适应二进制算术编码(CABAC),以及诸如自适应算术编码、霍夫曼(Huffman)编码和通用可变长度编码(UVLC)。本发明不限于CABAC,而是可以应用于普通熵编码和解码方法。图2是CABAC编码器的框图。图2的CABAC编码器接收和编码语法元素(SE),并且包括二进制串变换单元210、上下文确定单元220和自适应算术编码单元250。语法元素指示经压缩的比特流的数据,并且包括表示作为经压缩格式的视频或者分析经压缩的数据或者头部信息所需要的参数、以及残留信息。例如,在H.264中,在语法元素中包括诸如指示使用哪个熵编码模式的entr叩y—coding-mod^flag和指示宏块类型的mb—type之类的参数、头部信息、和诸如coeff—abs—level_minusl之类的剩余信息。二进制串变换单元210接收要被编码的语法元素的码元值,并且将其变换为二进制串。二进制串是诸如0和1之类的二进制值的序列。表1示出的二进制串的例子,将在H.264中所定义的B片断(slice)的宏块类型mb—type的码元值变换为这种二进制串。参照表1,B片断的mb—type的码元B—L0—16x16通过参照索引L0(列表0)指示以16x16为单元对给定宏块进行运动补偿,并且码元B—L0—16x16具有值1。通过二进制串变换单元210将码元B_L0—16x16变换为具有三个二进制值的二进制串"100"。在表l中,Binldx指示在二进制串中的二进制值的位置。例如,其BinIdx为0的二进制值位于二进制串的开始。通常针对每个语法元素定义码元值和二进制串之间的映射。<table>tableseeoriginaldocumentpage12</column></row><table>在将给定语法元素的码元变换为二进制串之后,通过参照上下文确定单元220所确定的上下文由自适应算术编码单元250来对它们顺序熵编码。上下文确定单元220确定与二进制串的二进制值0和1的每一个对应的上下文。上下文指的是与要被编码的码元相关联的周围环境。将在后面描述该周围环境。由于上下文用于概率估计单元230以估计针对二进制值0和1的每一个的概率值,所以如果二进制值的上下文变化,则针对二进制值的概率值也变化。算术编码引擎240使用概率估计单元230所估计的概率值来执行算术编码,并且更新与经编码的0或者1对应的概率估计单元230的概率模型。下面,将参照图3A和3B来描述上下文的确定。图3A和3B是用于解释上下文的确定的参考图。在图3A中,T310是上下文模板,并且包括在编码语法元素之前编码的语法元素的子集。T310可以在该子集之外还包括与要被编码的语法元素的码元值对应的二进制串的一部分,或者可以只包括二进制串的一部分。T310可以在该子集之外还包括在编码语法元素和之前所编码的语法元素和要被编码的语法元素的属性,或者只包括属性。例如,如图3B所示,CABAC的上下文模板字库位于具有要被编码的码元的当前块330的左侧的相邻块340的码元SG,以及位于块330上方的相邻块350的码元S"例如,在表1的B片断的码元mb—type的情况下,通过左边和上方的相邻块的码元my—type是否为Direct(直接)来确定其Binldx为0的二进制值的上下文。左边和上方的相邻块是否被跳过或者不存在也影响上下文。因此,编码码元my_type的第一二进制值所需要的上下文模板包括左边和上方的相邻块的码元mb—type,以及诸如关于左边和上方的相邻块是否被跳过或者不存在的信息之类的左边和上方的相邻块的属性。上下文模板还可以包括其Binldx小于要被编码的二进制值的Binldx的二进制值。例如,在表1的码元mb_type中,当要确定其Binldx为2的二进制的上下文时,将其Binldx为1的二进制值用作上下文模板。因此,其Binldx为2的二进制值的上下文根据其Binldx为1的已经编码的二进制值是O还是1而变化。建模函数F接收在用于给定码元值的上下文模板T310中所包括的码元(So,Sh...,StJ,并且确定来自上下文集合C32(HC。,d,...,Cn.,)的上下文。在表l的mb—type中其Binldx为0的二进制值的建才莫函数如下ctxldx=condTermFlag(A)+condTermFlag(B)十Offset...........(1)其中ctxldx是指示所确定的上下文C的索引,Offset是指示定义上下文的表中的mb—type的开始位置的索引的初始值,而condTermFlag(M)指示块M的状态。当块M不存在(条件1)或者被跳过(条件2),或者块M的码元mb—type为Direct(条件3)时,condTermFlag(M)为0。换句话说,满足条件1、条件2和条件3之一,condTermFlag(M)为0。否则,condTermFlag(M)为1。在mb—type的例子中,将建模函数F表示为F:T={So,S!}->C={Co,d,…,Cn.山此时,S0和是如图3B所示的当前块330的左相邻块340和上相邻块250的码元mb—type。更具体地说,S0=condTermFlag(A)而=condTermFlag(B)。因此,输入关于块A和块B是否存在或者是否被跳过的信息以及码元mb—type作为上下文模板以获得上下文索引ctxldx,从上下文集合中提取具有所获得的上下文索引ctxldx的上下文,并且确定上下文。将所确定的上下文用于自适应算术编码单元250以估计针对每个二进制值的概率值。自适应算术编码单元250包括概率估计单元230和算术编码引擎240。概率估计单元230接收与二进制串变换单元210所获得的二进制值的每一个对应的上下文,并且估计用于每个二进制值0或者1的概率值。通过上下文和概率值之间的映射表来确定与上下文对应的概率值。将所确定的概率值用于算术编码引擎240以编码二进制值。算术编码引擎240顺序编码二进制值,并且命令概率估计单元230估计每个经编码的二进制值来更新概率值。对没有二进制化的码元值执行算术编码的普通算术编码器不同于CABAC编码器,除了二进制串变换单元210以外,其具有与CABAC编码器相同的结构和功能。在普通算术编码器中,上下文确定单元确定与码元的码元值对应的上下文,而不是确定与码元的二进制值对应的上下文。图4是CABAC解码器的框图。CABAC解码器从作为由编码器压缩的视频数据并且由1和0组成的经压缩的比特流中提取码元。上下文确定单元410确定与要^^皮编码的二进制值的每一个对应的上下文,并且估计要别解码的二进制串的二进制值的每一个的位置来确定上下文。将所确定的上下文用于自适应算术解码单元450以从输入的比特流中解码二进制值。概率估计单元420接收上下文,并且估计二进制值0和1的每一个的概率值。算术解码引擎430使用所估计的概率值顺序地从输入的比特流中解码二进制值,并且将所估计的概率值传送到概率估计单元420以更新二进制值的概率值。将由自适应算术解码单元450所顺序解码的二进制值通过码元变换单元440变换为码元数据。使用如表1的CABAC编码器的二进制串变换单元210所使用的映射表来进行码元和二进制值之间的映射。其中算术解码引擎直接产生码元值的普通算术解码器不同于CABAC解码器,其不需要CABAC解码器的码元变换单元440。图5是使用码元和码字之间的映射信息执行编码的熵编码器的框图。使用码元和码字之间的映射信息的编码方法包括霍夫曼编码、通用可变长度编码(UVLC)和Exp-Golomb编码。表2示出了码元和码字之间的映射信息的例子。[表2]<table>tableseeoriginaldocumentpage15</column></row><table>参照图5,熵编码器包括上下文确定单元510、熵编码引擎520和码元-码字映射信息存储单元530。熵编码引擎520根据如表2中所示的、上下文确定单元510所确定的上下文,输出与输入码元对应的码字。此时,上下文确定单元上下文模板,来确定与要被编码的对应的上下文。熵编码引擎520从存储多个码元-码字映射信息的码元-码字映射信息存储单元530中,提取与所确定的上下文对应的映射信息,并且对输入码元4丸行熵编码。例如,在表2中,当满足0《nC《时,由上下文确定单元510确定上下文。因此,熵编码引擎520使用码元-码字映射信息存储单元530提供的码元-码字映射信息,来输出与输入码元对应的码字。这里,nC指示具有要被编码的码元的块的左边和上方相邻块(图3B的S0和S,)的非零变换系数的平均数。换句话说,nC指的是当将块(Sc)和S。的变换系数的数量给作图3A的建模函数的输入时的输出非零变换系数的平均值。图6是执行使用码元和码字之间的映射信息执行解码的熵解码器的框图。使用码元和码字之间的映射信息的解码方法包括霍夫曼解码、通用可变长度解码和Exp-Golomb解码。参照图6,熵解码器包括上下文确定单元610、熵解码引擎620和码元-码字映射信息存储单元630。上下文确定单元610确定与经熵编码的语法元素对应的上下文。码元-码字映射信息存储单元630存储如在表2中的之前所定义的多个码元-码字映射信息。熵解码引擎620使用映射信息执行熵解码。由于自适应熵编码方法根据上下文自适应地控制用于每个二进制值或者码元的概率值,所以它们的编码效率比概率值固定的情况要好得多。这是因为当概率值固定时,使用之前针对每个码元训练的概率值,导致每个码元的所使用的概率值和实际概率值之间的差异。然而,当将CABAC编码方法和自适应熵编码方法应用于可缩放视频编码器时,可以从编码效率的角度实现改进。这是因为当将CABAC方法应用于可缩放视频编码时,使用层之间的相关性的更加准确的概率估计是可能的。换句话说,根据本发明的示例实施方式的熵编码方法基于这样的事实可以通过在熵编码语法元素的码元时,不仅参照在相同层中的语法元素的码元或者来自在相同层中要被编码的语法元素的不同类型,而且参照相同类型的语法元素的码元或者较低层中的不同类型,来获得更加准确的统计特征,从而提供语法元素,具有与较低层中的语法元素更高的相关性。至此,根据本发明示例实施方式的自适应熵编码器的上下文确定单元,通过不仅参照相同层中的语法元素而且参照较低层的信息来确定上下文。下面,将参照图7A和7B,更加详细地描述根据本发明示例实施方式的上下文确定单元的操作。作的参考图。码器的上下文确定单元的不同之处如下。首先,上下文模板T710在传统地使用的上下文模板{So,S^...,ST.O之夕卜,还包括来自较低层中要被编码的语法元素的ST+1,...,St+k.J。例如,当如7B所示,当前块731包括在层M730中时,在层M730中所包括的相邻块的码元{So和S!)以及层M730的较低层的每一个的码元{ST,St+1,…,St+k.,},即层(M-1)740和层0750包括在上下文模板T710中。当较低层的码元包括在上下文模板T710中时,上下文集合C720在现存上下文{Co,d,…,0^}之外,还包括新上下文(CN,Cn+1,…,CN+q_,}。较低层的块最好包括位于相同位置中的块作为当前层中的当前块和该块的相邻块。参照图7B,层(M-1)740的码元ST741和层0750的码元ST+K.5751是作为当前块731的位于相同空间位置中的块的码元。当当前层的画面大小与较低层的不同时,最好在通过上采样或者下采样匹配画面大小之后,确定作为当前块的位于相同空间位置中的块。根据可缩放视频编码的类型,层可以是时间层、空间层、SNR层或者其组合。编码器的框图。图8A是使用CABAC作为熵编码方法的自适应熵编码器的框图,图8B是使用普通算术编码方法作为熵编码方法的自适应熵编码器的框图,图8C是利用使用码元和码字之间的映射信息的编码的熵编码方法的自适应熵编码器的框图,而图8D是使用用于二进制化的较低层的信息的CABAC编码器的框图。在图8A的自适应嫡编码器中,二进制串变换单元810将语法元素的码元变换为二进制串。上下文确定单元812确定与二进制串的每个二进制值对应的上下文。当确定与每个二进制值对应的上下文时,不仅相同层中的语法元素信息而且在较低层中的语法元素信息被从较低层语法元素存储单元814中读取,而且被添加到上下文模板中以在上下文确定中使用。概率估计单元816使用上下文确定单元812所确定的上下文搜索概率值,而算术编码引擎818接收概率值和二进制值,并且执行算术编码。在图8B的自适应熵编码器中,由于与使用CABAC编码方法的图8A的自适应熵编码器不同而不需要码元值到二进制串的变换,所以不包括二进制串变换单元810。因此,图8B的上下文确定单元820不仅读取相同层中的语法元素信息,而且从较低层语法元素存储单元822中读取在较低层中的语法元素信息,将所读取的语法元素信息添加到上下文模板中,并且确定与要被编码的码元对应的上下文。概率估计单元824使用上下文确定单元820所确定的上下文搜索概率值,而算术编码引擎826对输入码元执行算术编码。在图8C的自适应熵编码器中,上下文确定单元830不仅读取相同层中的语法元素信息,而且从较低层语法元素存储单元832中读取语法元素信息,将所读取的语法元素信息添加到上下文模板中,而且确定与要被编码的码元对应的上下文。将所确定的上下文用于从码元-码字映射信息存储单元834的多个映射信息中选择一个。熵编码引擎836使用所选择的码元-码字映射信息输出与丰lr入码元对应的码字。在图8D的自适应熵编码器中,不仅将较低层中的语法元素信息用在上下文确定单元842中,而且用在用于码元二进制化的二进制串变换单元840中。换句话说,当编码给定语法元素的码元时,CABAC编码器的二进制串变换单元语法元素的码元或者语法元素的属性,将码元变换为二进制串。换句话说,当将码元变换为二进制串时,可以只参照相同层中的语法元素或者参照相同层中的语法元素和较低层中的语法元素两者。较低层语法元素存储单元844、上下文确定单元842、概率估计单元846和算术编码引擎848与图8A的自适应熵编码器的那些相同。参照相同层中的语法元素、相同层和较低层中的语法元素、或者较低层中的语法元素自适应地将码元变换为二进制串的方法提高编码效率,而不论上下文确定单元参照较低层中的语法元素还是相同层中的语法元素。在图8E中示出了本发明的相关示例实施方式。换句话说,如参照图2所述的那样,上下文确定单元852只参照在相同层中的语法元素信息,而二进制串变换单元850只参照在相同层中的语法元素、在相同层与较低层中的语法元素、和在较低层中的语法元素之一。因此,层语法元素存储单元854根据参考信息的选择,仅仅存储在相同层中的语法元素、在相同层与较低层中的语法元素、和在较低层中的语法元素之一。作为二进制串变换单元840和850的详细实施方法,可以存^f诸在码元的码元值和二进制串之间的多个映射表,而且根据参考信息的选择可以选择它们之一,或者可以使用码元的码元值和二进制值之间的固定表和根据参考信息的选择可以重新映射码元和码元值之间的关系。在前者中,与码元对应的二进制串变化。例如,用另一个来代替与码元mb一type的1的码元值对应的二进制串"100",因此创建另一个映射表。在后者中,在如表1所示的固定映射表中,仅仅码元值和二进制串之间的映射变化。例如,当与1的码元值对应的二进制串是"100"并且与2的码元值对应的二进制串为"101"时,与1的码元值对应的二进制串被改变为"101",而与2的码元值对应的二进制串被改变为"100"。虽然上下文确定单元812和820以及概率估计单元816和824可以如图8A和8B所示地分离,但是如图8F所示,可以通过将概率估计单元816的功能添加到图8A的上下文确定单元812中来实施上下文确定单元860,而且如图8G所示,可以通过将概率估计单元824的功能添加到图8B的上下文确定单元820中来实施上下文确定单元870。概率估计单元816和824使用由图8A和8B中的上下文确定单元812和820所确定的上下文来确定特定概率,但是上下文确定单元860和870在图8F和8G中确定特定的概率值。上下文确定单元860和870执行概率更新功能。还可以在图8D和8E中进行这种改变。图9A到9G是根据本发明的示例实施方式使用上下文确定单元的自适应熵解码器的框图。更具体地说,图9A到9D是与图8A到8B的熵编码器对应的熵解码器的框图。因此,图9A是使用CABAC(基于上下文的自适应二进制算术编码)作为熵解码方法的熵解码器的框图。图9B是使用普通算术解码方法作为熵解码方法的熵解码器的框图。图9C是利用使用码元和码字之间的映射信息的解码作为熵解码方法的框图。图9D是使用用于二进制化的较低层的信息的CABAC解码器的框图。在图9A的熵解码器中,上下文确定单元910从经熵编码的比特流中确定与要被解码的二进制对应的上下文,并且根据在要被解码的二进制串中的二进制值的位置来确定上下文。当确定与每个二进制值对应的上下文时,上下文确定单元910不仅读取在相同层中的语法元素信息,而且从较低层语法元素存储单元911中读取较低层中的语法元素信息,并且将所读取的语法元素信息添加到上下文模板中以在上下文确定中使用。将所确定的上下文用于熵解码单元912以从输入的比特流中解码二进制值。概率估计单元913接收上下文并且针对二进制值0和1的每一个估计概率值。算术解码引擎914使用所估计的概率值顺序解码来在输入比特流的二进制值,并且将它们传送到概率估计单元913以更新二进制值的概率值。将由算术解码引擎914所顺序解码的二进制值通过码元变换单元915变换为码元数据。其算术解码引擎产生码元值的普通算术解码器除了码元变换单元915与CABAC解码器不同以外,具有与CABAC解码器相同的配置和功能。然而,详细实施可能不同,因此使用不同的附图标记。在图9C的熵解码器中,上下文确定单元920不仅读取相同层中的语法元素信息,而且从较低层语法原始存储单元921中使用码元的码元值而不是码元的二进制值读取较低层中的语法元素信息,将所读取的信息添加到上下文模板中,并而且确定上下文。将所确定的上下文用于从码元-码字映射信息存储单元923的多个映射信息中选择一个。熵解码引擎924使用所选择的码元-码字映射信息输出与码字对应的码元。在图9D的熵解码器中,在较低层语法元素存储单元931中所存储的较低层中的语法元素信息不仅用在上下文确定单元930中,而且用于在码元变换单元932中将二进制值变换为码元。详细变换过程与参照图8D所描述的二进制变换过程相反。用于参照在相同层中的语法元素、在相同层和较低层中的语法元素、或者在较低层中的语法元素,自适应地将二进制值变换为码元提高了编码效率,而不论上下文确定单元参照较低层中的语法元素还是在相同层中的语法元素。在图9E中示出了本发明的相关示例实施方式。换句话说,上下文确定单元940仅仅如参照图4所述的那样参照相同层中的语法元素信息,而码元变换单元942参照相同层中的语法元素、相同层和较低层中的语法元素、和较低层中的语法元素中的仅仅一个。因此,层语法元素存储单元944根据参考信息的选择,存储相同层中的语法元素、相同层和较低层中的语法元素、和较低层中的语法元素中的仅^f义一个。虽然如图9A和9B所示,上下文确定单元910和916以及概率估计单元913和918可以分离,但是如图9F所示,可以通过将概率估计单元913的功能添加到图9A的上下文确定单元910中,并且如图9G所示,可以将概率估计单元918的功能添加到图9B的上下文确定单元916中。概率估计单元913和918使用图9A和9B中的上下文确定单元910和916所确定的上下文来确定扭无率值,但是上下文确定单元950和960在图9F和9G中确定特定概率值。上下文单元950和960还执行概率更新功能。图IOA到IOC是示出根据本发明示例实施方式的熵编码方法的流程图。参照图10A,在操作S1010将要被编码的语法元素的码元输入。可以将所输出的语法元素的码元变换为二进制串。变换为二进制串的例子如参照表1所述。在操作S1012确定与语法元素的码元值或者二进制串的每个二进制值对应的上下文。此时,当通过参照作为包括语法原始的块的相同层和该层的较低层中的语法元素,或者仅仅参照低层中的语法元素确定上下文时。上下文确定如参照图7A和7B所述。在操作S1014根据所确定的上下文估计用于语法元素的概率值,以及使用所估计的概率值执行熵编码。当如参照图1所述的那样,将语法元素的码元变换为用于熵编码的二进制串时,估计针对二进制值0和1的每一个的概率值,而且在操作S1016熵编码输入语法元素的码元值或者与输入语法元素对应的二进制值。在操作S1018根据经熵编码的码元值或者二进制值更新概率模型。可以将上下文确定操作S1012和概率估计操作S1014集成到一个操作中,因此可以通过参照在作为包括语法元素的块的相同层和该层的较低层中的语法元素,或者只参照在较低层中的语法元素,来估计用于语法元素的概率值,而不需要上下文的明确确定。下面,将参照图IOB描述根据本发明的另一个示例实施方式的熵编码方法。在操作S1020输入要被编码的语法元素的码元,而且在操作S1022中确定与语法元素对应的上下文。上下文确定操作S1022与图10A的上下文确定操作S1012相同。如参照图8C所述,根据在操作S1024中所确定的上下文选择多个码元-码字映射信息之一。在操作S1026中,根据所选择的码元-码字映射信息对语法元素执行熵编码,因此输出与输入码元对应的码字。在图10B中,可以将上下文确定操作S1022和映射信息选择操作S1024集成到一个操作中,因此可以通过参照在作为包括语法元素的块的相同层和在该层的较低层中的语法元素,或者只参照在较低层中的语法元素,来针对语法元素选择码元-码字映射信息,而不需要上下文的明确确定。下面,将参照图IOC来描述使用相同层或者较低层中的信息用于二进制化的CABAC熵编码方法。在操作S1030输入要被编码的语法元素的码元。在操作S1032中,将语法元素的码元变换为二进制串。在将码元变换为二进制串时,串。换句话说,使用来自相同层的给定语法元素的相同类型或者不同类型的语法元素、相同层和较低层中的相同类型或者不同类型的语法元素、和在较低层中的相同类型或者不同类型的语法元素、或者语法元素的属性之一,将给定语法元素的每个码元变换为二进制串。换句话说,当将码元变换为二进制串时,可以只参照相同层中的语法元素、在相同层中的语法元素和在较低层中的语法元素两者、和在较低层中的语法元素中之一。在操作S1034中确定与语法元素的码元的每个二进制值对应的上下文。此时,通过只参照在作为包括语法元素的块的相同层中的语法元素、在相同层和较低层中的语法元素、和在较低层中的语法元素之一来确定上下文。上下文的确定如参照图7A和7B所述的那样。在操作S1036中根据所确定的上下文估计用于语法元素的概率值,并使用所估计的概率值执行熵编码。当如参照表1所述的那样将语法元素的码元变换为用于熵编码的二进制串时,在操作S1038,估计二进制值0和1的每一个的概率值,并且使用所估计的概率值熵编码语法元素。在操作S1040,根据经熵编码的语法元素的码元值和二进制值更新概率模型。可以将上下文确定搡作S1034和概率估计操作S1036集成到一个操作中,因此可以通过参照作为包括语法元素的块的相同层和该层的较低层中的语法元素,或者只参照较低层中的语法元素,来估计用于语法元素的概率值,而不需要上下文的明确确定。图IIA到IIC是示出根据本发明的示例实施方式的熵解码方法的流程图。下面,将参照图IIA描述使用CABAC的熵解码方法。在操作S1110输入经压缩的比特流,在操作S1112根据要被解码的二进制串的每个二进制值的位置确定上下文。当在操作S1112中确定了与每个二进制值对应的上下文时,如参照图9A所述的那样,不仅参照相同层中的语法元素信息而且参照较低层中的语法元素信息。上下文确定如参照图7A和7B所描述的那样。在步骤S1114根据所确定的上下文估计与二进制值O和1的每一个对应的概率值。在操作S1116使用所估计的概率值执行熵解码,其中从经压缩的比特流中顺序解码二进制值。在操作S1118,根据顺序解码的二进制值更新用于二进制值0和1的每一个的概率模型。码元变换操作S1119如参照图9A的码元变换单元915所述。在熵解码操作S1116中,还可以将图11A的熵解码方法应用于产生码元值的普通算术解码方法,这与使用CABAC的熵解码方法不同。在这种情况下,跳过图11A的码元变换操作S1119,并且应用参照图IIA的描述。然而,由于在熵解码操作S1116中解码码元值而不是二进制值,所以在上下文确定操作S1112中确定与要被解码的码元对应的上下文。在操作S1114中,根据所确定的上下文估计用于每个码元值的概率值。当在操作S1112中确定上下文时,不仅参照相同层中的语法元素信息,而且参照较低层中的语法元素信息。在执行使用所估计的概率值从经压缩的比特流中解码码元值的熵解码操作S1116之后,下面,将参照图11B描述使用码元-码字映射信息的解码方法。在操作S1120中输入经压缩的比特流。在操作S1122中,读取在作为包括要被解码的码元的块的相同层中的语法元素信息和在该层的较低层中的语法元素信息,并且添加到上下文模板中以确定与要被解码的码元对应的上下文。如参照图9C所述的那样,在操作S1124中,使用所确定的上下文选择多个映射信息之一。在操作S1126中使用所选择的码元-码字映射信息输出与经压缩的比特流的码字对应的码元。下面,将参照图11C描述使用相同层或者较低层中信息用于二进制化的CABAC解码方法。在操作S1130输入经压缩的比特流,并且在操作S1132根据要被解码的二进制串的每个二进制值的位置确定上下文。在操作S1134中根据所确定的上下文估计二进制值0和1的每一个的概率值。在操作S1136中,执行熵解码以使用所估计的概率值从经压缩的比特流中顺序解码二进制值。在操作S1138中,根据顺序解码的二进制值更新用于二进制值0和1的每一个的概率模型。在操作S1140中,将经熵解码的二进制值变换为码元。码元变换操作SU40如参照图9E所述。换句话说,当将二进制值变换为码元时,参照来自在作为要被解码的语法元素的相同层中要被解码的语法元素的相同类型或者不同类型的语法元素的码元、在相同层和较低层中的相同类型或者不同类型的语法用于参照相同层中的语法元素、相同层和较低层中的语法元素或者较低层中的语法元素自适应地将二进制值变换为码元的方法提高了编码效率,而不论在上下文的确定中参照较低层中的语法元素还是相同层中的语法元素。图12时根据本发明的示例实施方式的具有熵编码器的视频编码器的框图。该4见频编码器包括运动补偿单元1202、运动补偿单元1204、内预测单元1206、变换单元1208、量化单元1210、重新排列单元1212、熵变编码单元1214、逆量化单元1216、逆变换单元1218和帧存储器1222。该视频编码器以从各种编码模式中选择的一个模式来编码当前画面的宏块。至jt匕,通过在间予贞领'j(interprediction)和内予贞测(intraprediction)的所有可能模式xia执行编码来计算速率失真(RD)成本,选择具有最小RD成本的模式作为最佳编码模式,而且yi所选择的最佳编码模式执行编码。对于间预观寸,运动补偿单元1202在参考画面中搜索当前画面的宏块的预测值。如果运动估计单元1202以1/2像素或者1/4像素为单位搜索参考块,则运动补偿单元1204计算中间像素并且确定参考块的数据。因此,通过运动补偿单元1202和运动补偿单元1204执行间预测。内预测单元1206执行内预测,在该内预测中在当前画面中搜索当前画面的宏块的预测值。为了确定是否对当前宏块执行间预测或者内预测,在所有可能编码模式中计算RD成本,将具有最小RD成本的模式确定为用于单元宏块的编码模式,并且在所确定的编码模式中对当前宏块执行编码。一旦通过间预测或者内预测发现要由当前帧的宏块参照的预测数据,则从当前画面的宏块中提取它。宏块的剩余部分由变换单元1208进行变换并且由量化单元1210进行量化。将提取了预测数据之后的宏块的剩余部分称为残留部分(residual)。也将该残留部分进行编码以减少编码中的数据量。经过量化的残留部分通过重新排列单元1212以被熵编码单元1214编码。如参照图8A到8G所述的那样来配置熵编码单元1214。为了获得要用于间预测的参考画面,经过量化的画面通过逆量化单元1216和逆变换单元1218以重构当前画面。将所重构的当前画面存储在帧存储器1222中,并且在后来用于下一个画面的间预测。一旦经重构的当前画面通过滤波器1220,则获得具有附加编码误差的原始画面。图13是根据本发明的示例实施方式的具有熵解码器的视频解码器的框图。该视频解码器包括熵解码单元1310、重新排列单元1320、逆量化单元1330、逆变换单元1340、内预测单元1350、运动补偿单元1360、滤波器1370和帧存储器1380。一旦输入由视频编码器编码的比特流,熵解码单元1310就通过对所输入的比特流执行熵解码来提取码元数据。该视频解码器的其他部件具有与参照图12所述的那些相同的配置和功能。还可以将根据本发明的示例实施方式的熵编码和熵解码方法实现为在计算机可读记录介质熵的计算机可读代码。可以通过计算机领域的计算机编程人员容易地构造形成该计算机程序的代码和代码段。而且,可以将该计算机程序存储在计算才几可读介质中并且由计算机读取和执行,乂人而实施用于熵编码和熵解码的方法。计算机可读介质的例子包括^磁带、光数据存储装置和载波。虽然已经参照本发明的示例实施方式具体示出和描述了本发明的示例实施方式,但是本领域的技术人员应该理解,在不偏离由所附权利要求所限定的本发明的精神和范围的情况下,可以在形式和细节上对其进行修改。权利要求1.一种可缩放熵编码方法,包括通过参照在作为包括要被编码的语法元素的块的相同层中的语法元素和在较低层中的语法元素,或者只参照较低层中的语法元素来确定上下文;以及使用所确定的上下文对要被编码的语法元素执行熵编码。2.根据权利要求1所述的可缩放熵编码方法,其中,所参照的语法元素与要被编码的语法元素类型相同。3.根据权利要求1所述的可缩放熵编码方法,其中,所述上下文指示概率值。4.根据权利要求1所述的可缩放熵编码方法,其中,所述上下文指示预定的码元-码字映射信息。5.根据权利要求1所述的可缩放熵编码方法,其中,所参照的语法元素'媳型不同的元素。6.根据权利要求1所述的可缩放熵编码方法,其中,所述熵编码是使用预定的算术表示的算术编码或者使用码元-码字映射信息的编码。7.根据权利要求1所述的可缩放熵编码方法,其中,使用预定的码元-码字映射信息执行熵编码。8.根据权利要求6所述的可缩放熵编码方法,其中,所述熵编码是二进制算术编码、算术编码、霍夫曼编码和通用可变长度编码之一。9.根据权利要求1所述的可缩放熵编码方法,还包括将要被编码的语法元素变换为二进制串。10.根据权利要求9所述的可缩放熵编码方法,其中,通过参照作为包括要被编码的语法元素的块的相同层中的语法元素、较低层中的语法元素或者参照在相同层的语法元素和在较低层中的语法元素两者,来将要被编码的语法元素变换为二进制串。11.根据权利要求IO所述的可缩放熵编码方法,其中,根据所确定的上下文固定或者可变地改变要被编码的语法元素和二进制串之间的映射。12.—种熵编码方法,包括f话〉云7d在较低层中的语法元素、或者在相同层中的语法元素和在较低层中的语法元素,将要被编码的语法元素变换为二进制串;通过参照在相同层中的语法元素来确定上下文;以及使用所确定的上下文,对要被编码的语法元素执行熵编码。13.—种可缩放熵解码方法,包括接收经熵编码的数据,并通过参照在作为包括经熵编码的语法元素的块的相同层中的语法元素和在较低层中的语法元素,或者只参照在较低层中的语法元素,来确定上下文;和使用所确定的上下文对经熵编码的数据执行熵解码。14.根据权利要求13所述的可缩放熵解码方法,其中,所参照的语法元素与要被编码的语法元素类型相同。15.根据权利要求13所述的可缩放熵解码方法,其中,所述上下文指示概率值。16.根据权利要求13所述的可缩放熵解码方法,其中,所迷上下文指示预定的码元_码字映射信息。17.根据权利要求13所述的可缩放熵解码方法L纟扁石马站i'基,水f.妄沾直刑类型不同的元素。18.根据权利要求B所述的可缩放熵解码方法,其中,所述熵解码是使用预定的算术表示的算术解码或者使用码元-码字映射信息的解码。19.根据权利要求18所述的可缩放熵解码方法,其中,所述熵解码是二进制算术解码、算术解码、霍夫曼解码和通用可变长度解码之一。20.根据权利要求13所述的可缩放熵解码方法,还包括将经熵解码的二进制串变换为码元。21.根据权利要求20所述的可缩放熵解码方法,其中,通过参照在作为包括经过熵编码语法元素的块的相同层中的语法元素、在较低层中的语法元码的二进制串变换为码元。22.—种熵解码方法,包括接收经熵编码的数据,并且通过参照作为包括经熵编码的语法元素的块其中,所参照的语法元二编码的相同层中的语法元素来确定上下文;使用所确定的上下文对经熵编码的数据执行熵解码;和通过参照下面之一将经过熵解码的二进制串变换为码元在作为包括经熵编码的语法元素的块的相同层中的语法元素、在较低层中的语法元素、或者在相同层中语法元素和在较低层中的语法元素两者。23.根据权利要求22所述的嫡解码方法,其中,根据所确定的上下文,固定或者可变地改变二进制串和码元之间的映射。24.—种可缩放熵编码器,包括上下文确定单元,其通过参照作为包括要被编码的语法元素的块的相同层中的语法元素和在较低层中的语法元素,或者只参照在较低层中的语法元素,来确定上下文;和熵编码引擎,其使用所确定的上下文来对要编码的语法元素执行熵编码。25.根据权利要求24所述的可缩放熵编码器,其中,所述上下文确定单媳石a^7;吞、A寻.去主刑》、^刁文^L辆^5日V^"汰7LT失^^EJ冋日?g26.根据权利要求24所述的可缩放熵编码器,其中,所述上下文指示概率值。27.根据权利要求24所述的可缩放熵编码器,其中,所述上下文指示预定的码元-码字映射信息。28.根据权利要求24所述的可缩放熵编码器,其中,所述上下文确定单法元素的类型不同的语法元素来确定上下文。29.根据权利要求24所述的可缩放熵编码器,其中,所述熵编码引执行使用预定算术表示的算术编码或者使用码元-码字映射信息的编码。30.根据权利要求29所述的可缩放熵编码器,其中,所述熵编码引擎执行二进制算术编码、算术编码、霍夫曼编码和通用可变长度编码之一。31.根据权利要求24所述的可缩放熵编码器,还包括二进制串变换单元,其将要被编码的语法元素变换为二进制串。32.根据权利要求31所述的可缩放熵编码器,其中,所述二进制串变换单元通过参照下面之一将要被编码的语法元素变换为二进制串在作为包括要被编码的语法元素的块的相同层中的语法元素、在较低层中的语法元素、或者在相同层中的语法元素和在较低层中的语法元素。33.—种熵编码器,包括二进制串变换单元,其通过参照在作为包括要被编码的语法元素的块的相同层中的语法元素、在较低层中的语法元素、或者在相同层中的语法元素和在较低层中的语法元素两者,将要被编码的语法元素变换为二进制串;上下文确定单元,其通过参照相同层中的语法元素确定上下文;和34.根据权利要求33所述的嫡编码器,其中,所述二进制串变换单元使用要被编码的语法元素和根据所确定的上下文固定或者可变地变化的二进制串之间的映射,将要被编码的语法元素变换为二进制串。35.—种可缩放熵解码器,包括上下文确定单元,其接收经熵编码的数据,并且通过参照在作为包括经只参照较低层中的语法元素,来确定上下文;和熵解码引擎,其使用所确定的上下文对经熵编码的数据执行熵解码。36.根据权利要求35所述的可缩放熵解码器,其中,所述上下文确定单元通过参照与要被编码的语法元素相同类型的语法元素来确定上下文。37.根据权利要求35所述的可缩放熵解码器,其中,所述上下文指示概率值。38.根据权利要求35所述的可缩放熵解码器,其中,所述上下文指示多个预定的码元-码字映射信息之一。39.根据权利要求35所述的可缩放熵解码器,其中,所述上下文确定单元通过包括与要被编码的语法元素的类型相同的元素和与要被编码的语法元素的类型不同的元素来确定上下文。40.根据权利要求35所述的可缩放熵解码器,其中,所述熵解码引擎执行使用预定算术表示的算术解码或者使用码元-码字映射信息的编码。41.根据权利要求40所述的可缩放熵解码器,其中,所述熵解码引擎执行二进制算术解码、算术解码、霍夫曼解码和通用可变长度解码之一。42.根据权利要求35所述的可缩放熵解码器,还包括码元变换单元,将经熵解码的二进制串变换为码元。43.根据权利要求42所述的可缩放熵解码器,其中,所述码元变换单元通过参照在作为包括经过熵编码语法元素的块的相同层中的语法元素、在较低层中的语法元素、者,来将经熵解码的二进制串变换为码元。44.一种熵解码器,包括上下文确定单元,其接收经熵编码的数据,并且通过参照作为包括经熵编码的语法元素的块的相同层中的语法元素来确定上下文;熵解码引擎,其使用所确定的上下文对经熵编码的数据执行熵解码;和码元变换单元,其通过参照在作为包括经过熵编码的语法元素的块的相同层中的语法元素、在较低层中的语法元素、或者在相同层中的语法元素和在较低层中的语法元素两者,来将经熵解码的二进制串变换为码元。45.根据权利要求44所述的熵解码器,其中,所述码元变换单元使用经映射,将经熵解码的二进制串变换为码元。全文摘要提供用于使用各种上下文模型自适应地熵编码和自适应地熵解码的方法和设备。可缩放熵编码方法包括通过参照在作为包括要被编码的语法元素的块的相同层中的语法元素和在较低层中的语法元素,或者只参照在较低层中的语法元素来确定上下文,并使用所确定的上下文对语法元素执行熵编码。文档编号H04N7/26GK101099391SQ200680001707公开日2008年1月2日申请日期2006年1月14日优先权日2005年1月14日发明者全炳宇,崔雄一申请人:成均馆大学教;三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1