基于cabac的编码方法和设备及解码方法和设备的制作方法

文档序号:7510504阅读:162来源:国知局
专利名称:基于cabac的编码方法和设备及解码方法和设备的制作方法
技术领域
与本发明一致的方法和设备涉及基于上下文的自适应二进制算术编码(CABAC),更具体地讲,涉及使用改善的上下文模型选择以获得高压缩率的基于CABAC的解码或编码。
背景技术
CABAC是用于压缩运动图像的算法。CABAC包括基于先前输入的数据选择上下文,执行二进制算术编码,以及更新统计信息。上下文是收集由先前已出现的数据符号定义的统计信息的环境,并且用于出现数据符号的出现概率的精确预测。
CABAC的压缩率取决于对上下文建模的方法。如果上下文模型的小概率符号(LPS)的出现概率变低,则有利于具有高压缩。然而,虽然当输入的符号具有在上下文模型中预测的值时编码效率较高,但是当输入的符号具有在上下文模型中不可预测的值时,采用传统技术存在由编码的低压缩率引起的低效率的问题。

发明内容
本发明提供了一种通过根据输入的符号选择上下文模型而具有改善的压缩率的基于CABAC的编码方法和设备,以及一种存储有执行所述方法的计算机程序的计算机可读记录介质。
本发明还提供了一种可对通过基于CABAC的编码而编码的符号解码的基于CABAC的解码方法和设备,以及存储有执行所述方法的计算机程序的计算机可读记录介质。
根据本发明的一方面,提供了一种基于CABAC的编码方法,所述方法包括基于先前输入的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号(MPS)值不同的MPS值的第二上下文模型;在当前输入的符号具有与第一上下文模型的MPS值相同的值时,或者在不能选择第二上下文模型时,使用第一上下文模型对当前输入的符号编码;和在当前输入的符号具有与第一上下文模型的MPS值不同的值并且能够选择第二上下文模型时,使用第二上下文模型对当前输入的符号编码。
根据本发明的另一方面,提供了一种基于CABAC的编码设备,所述设备包括上下文模型选择单元,基于先前输入的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的MPS值不同的MPS值的第二上下文模型;第一编码单元,在当前输入的符号具有与第一上下文模型的MPS值相同的值时,或者在不能选择第二上下文模型时,使用第一上下文模型对当前输入的符号编码;和第二编码单元,在当前输入的符号具有与第一上下文模型的MPS值不同的值并且能够选择第二上下文模型时,使用第二上下文模型对当前输入的符号编码。
根据本发明的另一方面,提供了一种基于CABAC的解码方法,所述方法包括基于先前解码的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的MPS值不同的MPS值的第二上下文模型;通过使用第一上下文模型对编码的输入的符号解码,产生第一解码的符号;当第一解码的符号具有与第一上下文模型的MPS值相同的值时,将第一解码的符号选择为基于CABAC的解码的结果值;和当第一解码的符号具有与第一上下文模型的MPS值不同的值时,通过使用第二上下文模型对编码的输入的符号解码,产生第二解码的符号。
根据本发明的另一方面,提供了一种基于CABAC的解码设备,所述设备包括上下文模型选择单元,基于先前解码的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号(MPS)值不同的MPS值的第二上下文模型;第一解码单元,通过使用第一上下文模型对编码的输入的符号解码,产生第一解码的符号;第一结果值选择单元,当第一解码的符号具有与第一上下文模型的MPS值相同的值时,将第一解码的符号选择为基于CABAC的解码的结果值;和第二解码单元,当第一解码的符号具有与第一上下文模型的MPS值不同的值时,通过使用第二上下文模型对编码的输入的符号解码,产生第二解码的符号。


通过参照附图对本发明的示例性实施例进行的详细描述,本发明的以上和其他方面将会变得更加清楚,其中图1是根据本发明示例性实施例的基于CABAC的编码方法的流程图;图2是根据本发明另一示例性实施例的基于CABAC的解码方法的流程图;图3是根据本发明另一示例性实施例的基于CABAC的编码设备的框图;图4示出了根据本发明示例性实施例的二进制算术编码算法;图5A到图5C是示出H.264中宏块的运动向量差值(MVD)的示图;图6A到图6C是示出在对H.264中宏块的MVD编码中的上下文模型的示例的示图;图7是示出根据LPS值的出现概率的压缩效率的理想曲线图;图8是比较传统的上下文模型和根据本发明示例性实施例的上下文模型的示图;和图9是根据本发明示例性实施例的基于CABAC的编码方法的示图。
具体实施例方式
现在将参照附图对根据本发明示例性实施例的基于CABAC的编码或基于CABAC的解码方法和设备进行详细的描述。
图1是根据本发明示例性实施例的基于CABAC的编码方法的流程图。首先,将xk输入为当前的输入符号(S100)。然后,基于函数F(z)的结果选择第一上下文模型Cm,并基于大概率符号(MPS)值和作为小概率符号(LPS)的出现概率的P_lps值选择第二上下文模型Ca(S110)。这里,函数F(z)是用于基于对先前输入的符号的统计来确定上下文模型的建模函数。
现在将描述选择第二上下文模型Ca的方法。首先Ca和Cm应该具有不同的MPS值。例如,当Cm的MPS值是0时,具有MPS值1的一个上下文模型被选择为Ca。当存在多个具有不同的MPS值的上下文模型时,选择具有P_lps的最小值的上下文模型。当存在多个具有P_lps的最小值的上下文模型时,可选择在上下文模型中按顺序首先出现的上下文模型。上下文模型的顺序基于指示上下文的上下文索引值来确定。
当符号xk具有与Cm的MPS值相同的值时,或者当不能选择第二上下文模型Ca时(S120的“是”),根据传统方法使用Cm对输入的符号编码(S140)。
不能选择第二上下文模型Ca的情况的示例是,所有可选择的上下文模型都具有与Cm的MPS值相同的MPS值。
当输入的符号xk具有与第一上下文模型Cm的MPS值不同的值,并且能够选择第二上下文模型Ca时(S120的“否”),如果使用Cm对输入的符号编码,则将降低压缩效率。因此,使用Ca对输入的符号编码(S130)。
如上所述,当输入的符号值与Cm的MPS值相同时使用Cm编码,而当输入的符号值与Cm的MPS值不同时使用Ca编码。因此,通过使用该方法,可改善压缩效率。
然而,根据所述方法,在解码处理中哪个上下文模型应该被用于解码是不确定的。在本发明的实施例中,这种情况被称为模糊现象的发生。
为了防止模糊现象的发生,在本发明示例性实施例中,通过在CABAC编码单元中执行测试解码来检查模糊现象的发生,并且当在通过S130的编码步骤的编码的值中确定模糊现象的发生时,通过使用第一上下文模型Cm对输入的符号编码来去除模糊现象。
为了检查模糊现象的发生,首先,通过使用第一上下文模型Cm对编码的输入符号解码,获得xk′(S150)。
当使用Ca对编码的输入符号编码,并且xk′具有与Cm的MPS值相同的值时(S160的“是”),存在模糊现象的发生。换句话说,当在解码处理中对编码的输入符号解码时,获得Cm的MPS值,从而存在将输入的符号识别为已经使用Cm编码的可能性。因此,尽管降低了压缩效率,仍应该使用Cm对输入的符号重新编码(S180)。
当使用Cm解码的值与Cm的MPS值不同时(S160中的“否”),则没有发生模糊现象。因此,执行对下一输入的符号Xk+1编码(S170)。
图2是根据本发明另一示例性实施例的基于CABAC的解码方法的流程图。
最初,根据建模函数F(z)基于先前解码的符号的统计选择第一上下文模型Cm,并选择具有与Cm的MPS值不同的MPS值的第二上下文模型Ca(S200)。这时,当存在多个具有与Cm的MPS值不同的MPS值的上下文模型时,选择具有P_lps的最小值的上下文模型。
接下来,使用第一上下文模型Cm对输入的符号解码(S210)。以下,在步骤S210中解码的符号被称为第一解码符号。
将第一解码符号与Cm的MPS值进行比较(S220)。当第一解码符号具有与Cm的MPS值相同的值时,应该使用第一上下文模型Cm对输入的符号编码。因此,将第一解码符号选择为解码的结果值,并执行对下一符号的解码(S270)。
当第一解码符号具有与Cm的MPS值不同的值时,使用第二上下文模型Ca对编码的输入符号解码。以下,步骤S230中解码的值被称为第二解码符号。
将第二解码符号与Ca的MPS值进行比较(S240)。当第二解码符号具有与第二上下文模型Ca的MPS值不同的值时,应该已经使用第一上下文模型Cm对输入的符号解码。因此,将作为使用Cm解码的值的第一解码符号选择为解码的结果值,并执行对下一输入符号的解码(S270)。
当第二解码符号具有与Ca的MPS值相同的值时,使用Ca对第二解码符号重新编码,并使用Cm对重新编码的第二解码符号解码(S250)。以下,步骤S250中解码的值被称为第三解码符号。
将第三解码符号与Ca的MPS值进行比较(S260)。当第三解码符号具有与Ca的MPS值相同的值时,应该已经使用第二上下文模型Ca对输入的符号编码。因此,将第二解码符号选择为解码的结果值,并执行对下一输入符号的解码(S280)。
当第三解码符号具有与Ca的MPS值不同的值时,应该已经使用第一上下文模型Cm对输入的符号解码。因此,将第一解码符号选择为解码的结果值,并执行对下一输入符号的解码(S270)。
根据图1和图2分别示出的基于CABAC的编码和解码方法,可在没有模糊现象的发生的情况下改善压缩效率。
以下,将描述本发明示例性实施例的原理以及如何防止模糊现象的发生。主要为了便于描述,将描述使用H.264标准的方法的示例性实施例。
在二进制算术编码(BAC)中,执行二进制输入符号的算术编码(AC)。AC是具有比众所周知的霍夫曼编码更高效率的熵编码的方法。在使用p比特的p比特BAC中,将数字的初始区间设置为[0,2p),并且基于输入符号的概率将区间分别划分为输入的符号的多个子区间。使用表示区间的起始值的下界L和表示区间长度的范围R来表示区间。在初始区间的情况下,L为0,R为2p-1。输入的符号被划分为作为具有最高出现概率的符号的MPS和作为具有最低出现概率的符号的LPS。将MPS和LPS的值分别表示为valMPS和valLPS。
在BAC中,管理输入的符号的概率以用于选择区间。为了计算MPS的出现概率P_mps和LPS的出现概率P_lps,使用先前输入的符号的统计。例如,当二进制0输入出现20次且二进制1输入出现80次时,MPS的值是1并且P_lps是0.2。在完成新的符号的编码之后,调整出现概率的值以反映用于下一编码的新的符号的出现。对于第一输入的符号,没有先前输入的符号的统计,因此使用预定的初始值。通常,将LPS的出现概率P_lps设置为0.5。在H.264中,通过预先分析运动图像数据获得统计,并基于该统计设置初始值。只管理P_lps,这是因为,可通过使用等式P_mps=1-P_lps,使用已知的LPS的出现概率来简单地计算MPS的出现概率。
图7是示出根据LPS值的出现概率的压缩效率的理想曲线图。在理想情况下,根据以下的等式1来计算表示1比特所需的比特数量,图7是示出根据P_lps的值的最小比特数量的曲线图。
等式1最小比特数量=P_lps*log2(1/P_lps)+P_mps*log2(1/P_mps)根据等式1,在BAC中,压缩效率随着P_lps值的减小而增大,这是因为,在具有相同长度的数据的熵编码中,压缩效率随着相同符号的比率的增大而增大。例如,串“1111011110”比串“1010100110”被更大地压缩,尽管数据串具有10比特的相同长度。在CABAC中,将二进制输入流划分为具有相同值的符号组,以增大压缩效率。因为在统计上,当前输入的符号与先前出现的输入符号的值具有较强的关系,所以根据先前出现的符号的值来划分组。这里,将每个组称为上下文,并对每个上下文管理P_lps和valMPS。
先前出现的符号的值是上下文确定因素,因此被称为上下文参数。作为上下文的示例,当对1010101010压缩产生两个上下文时,可产生包括奇数比特的上下文和包括偶数比特的上下文。在这种情况下,因为所有的奇数比特是1,而所有的偶数比特是0,所以获得高的压缩效率。
图3是根据本发明示例性实施例的基于CABAC的编码设备的框图,该框图示出所述设备的结构。在CABAC中,通过对每个二进制输入值重复以下步骤来执行压缩。
当输入的数据10不是二进制时,通过使用适当的方法将输入的数据10转换为二进制码(300)。接下来,为输入的数据10的每个比特选择上下文(310)通过使用从选择的上下文和输入的比特检索的P_lps和valMPS来执行BAC(320)。
最后,通过反映当前编码的比特来更新选择的上下文的概率值(330)。
图4是根据本发明的二进制算术编码算法的示例性实施例。
当前的区间[L,L+R)、一比特的输入值以及具有valMPS和P_lps值的输入值的上下文被用作BAC的输入。基于输入的比特值是MPS还是LPS,将所述区间分别改变为[L,L+R*R*P_mps)和[L+R*P_mps,L+R)。
执行重新正规化以防止在重复地改变区间之后不能进一步划分区间的情况。重新正规化是扩展当前区间并将扩展所需的信息存储在存储器中的处理。
在完成编码之后,更新选择的上下文的P_lps和valMPS以反映当前编码的比特。基于已经输入的符号的频率来设置这些P_lps和valMPS的值。例如,当输入的符号中二进制0被输入20次且二进制1被输入80次时,valMPS是1,P_lps是0.2。
对于第一输入的符号,没有先前输入的符号的统计,因此使用预定的初始值。通常,将P_lps设置为0.5。在H.264标准中,通过预先分析运动图像数据获得统计,并基于从所述分析获得的统计设置初始值。可通过除了计算输入的符号的出现以外的不同方法来计算概率。
在BAC中,因为当相同的符号出现多次时,在具有相同长度的数据的压缩中压缩效率增大,所以提供了将具有相同值的输入的符号划分为一组(即,上下文)的方法。
图5A到图5C是H.264中宏块的运动向量差值(mvd)的示图,图6A到图6C是对H.264中宏块的mvd的二进制值的第一比特编码的上下文模型的示例。参照图5A到图5C和图6A到图6C,将描述在对H.264中mvd的二进制的第一比特编码中使用的分组的方法。
参照图5A,如果宏块B的mvd是当前将被编码的,则上下文基于左宏块A和上宏块C的mvd被确定。上下文参数z根据宏块A和B的mvd值被确定。如果F(z)被确定为从上下文参数z到上下文集合C的映射,则F(z)如以下的等式2被计算,在本示例中,上下文集合C为(0,l,2)。
等式2F(0,0)=0,F(0,1)=0, F(0,2)=0, F(0,3)=1F(1,0)=0,F(1,1)=0, F(1,2)=1, F(1,3)=l解码器和编码器共享初始的R、确定上下文的映射F、上下文参数的值不存在时使用的上下文、以及每个上下文的初始的P_lps和valMPS。当输入编码的数据时,检索到P比特的编码的数据以设置为值L,并使用P_lps、valMPS、L和R执行AC解码。在AC解码处理中,重新调整L和R。在完成解码之后,更新选择的上下文的P_lps和valMPS以反映解码的符号。
在上下文模型中,通过分析输入的比特流的模式来执行具有相同值的比特的分组。
这时,因为统计上特定情况下的上下文与先前的值相关,所以使用先前的值确定上下文。在图6A到图6C所示的示例中,从块A和C的值确定当前将被编码的块B的mvd值的第一比特的上下文。如图6B所示,当块A和C的mvd值是2时,将块B的mvd值的第一比特的上下文设置为1。在这种情况下,因为符号的值大约为1的概率较高,所以可使用上下文1来增大压缩效率。这是因为,压缩效率随着具有相同值的符号的出现的增加而增大。
然而,如果如图5C,块B的mvd是0,则因为mvd的第一比特的值不是1,所以根据压缩,选择不同的上下文是有利的。
根据本发明的示例性实施例,提供了一种通过基于情况选择上下文来改善具有不期望模式的输入的编码效率的方法。
图8是示出用于比较的传统的上下文模型和根据本发明示例性实施例的上下文模型的示图。参照图8,上下文模型使用刚好在当前符号之前出现的符号的值,在这种情况下,上下文0 ctx0和上下文1 ctxl的P_lps分别是1/5和1/4。基于0和1相继出现的假设来创建所述模型。然而,在图8的示例中,输入的x6和x8不同于预测的模式被输入。在这种情况下,x6和x8的上下文应该被改变为不同的上下文以增大编码的效率。
在根据本发明实施例的基于CABAC的解码方法中,提供了一种能够保持P_lps值为低值的建模方法,当选择上下文模型时,所述建模方法将作为包括在每个上下文模型中的提示的P_lps和valMPS的值使用为上下文参数。Ca是变为选择的候选以增大编码的效率的上下文模型。
在根据本发明实施例的基于CABAC的编码方法中,在当前输入与选择的第一上下文的MPS相同时,使用选择的第一上下文模型来执行编码,并且在当前输入与选择的第一上下文的MPS不同时,使用第二上下文模型来执行编码,在第二上下文模型中MPS值是当前输入的值。
在图8所示的示例中,对于输入的符号x1到x5、x7和x9,使用先前已经选择的第一上下文模型Cm,对于输入的符号x6和x8,当在解码中没有出现模糊现象的发生时,使用增大编码效率的不同的上下文模型。因此,使用valMPS与输入的符号值相同且P_lps具有最低值的上下文模型。当没有匹配这种条件的上下文模型时,使用先前已经选择的上下文模型,并且当存在n个匹配条件的上下文模型时,选择在上下文模型中按顺序首先出现的上下文模型。因为使用具有输入的符号的出现概率高的上下文模型来对输入的符号编码,所以使用新选择的上下文模型Ca的编码增大了编码效率。然而,可能存在由于解码中模糊现象的发生而导致不能对编码的符号解码的情况。因此,应该防止模糊现象的发生。为此,编码器在执行测试解码时检查模糊现象的发生,并且当确定模糊现象的发生时,编码器使用先前已经选择的上下文模型来对输入的符号编码。
图9是根据本发明示例性实施例的基于CABAC的编码方法的示图,示出了根据输入的符号的前进执行的步骤。在图9中,情况1是xi和Cmi的valMPS具有相同值的情况,情况2是xi和Cmi的valMPS具有不同值的情况。
首先,当xi是Cmi的LPS时,执行使用Cai的编码(402)。当对编码的数据解码的同时发现已经使用Cai编码的xi时,编码器检查是否可进行唯一编码(404)。当可进行唯一解码时执行下一步骤(407)。当不可进行唯一编码时,执行不可进行唯一编码时的xi的重新编码。在重新编码中应该使用Cmi来代替Cai。换句话说,通过在编码处理期间使用预测解码处理中的情况的规则来防止模糊现象的发生,并且当预测到模糊现象的发生时,选择传统方法中选择的上下文。
现在将描述防止模糊现象的发生。
编码器每次都在编码处理期间对编码的数据α执行测试解码,以检查模糊现象的发生。只有当确定没有模糊现象的发生时,才执行使用新的上下文模型的编码。
以下是编码算法的上下文模型选择方法。
Encode(xi)e1. 确定Cmi,Caie2. E(Cmi,xi)e3. if(xi==mps(Cm)or Cai不存在)e4. Encode(xi+1)e5. else(xi是Cm的LPS AND存在具有作为MPS的xi的另一上下文模型)e6. E(Cai,xi)e7. if(当前解码的xi是在对α解码之后使用Ca编码的符号)e8. if(Di(Cmi,α==mps(Cmi))e9. 从xi对串重新编码,此时使用Cmea. elseeb. next Encode()(在使用Ca的编码的情况下没有模糊现象的发生)在该编码算法中根据步骤e8和e9,保证使用Cm编码的x的解码的结果总是mps(Ca)。
如下执行解码器的上下文模型的选择。
Decode(α,i)(对第i符号xi解码)d1. 确定Cmi,Caid2. if(Di(Cm,α)==mps(Cm))d3. Decode(α,i+1)(使用Cm解码并进行到下一符号)d4. else if((Di(Ca,α==mps(Ca))(在这种情况下,使用Cm的解码的结果也是mps(Ca))d5. if(Di(Cm,E(Ca,mps(Ca)))==mps(Ca))d6. Di(Ca,α,Decode(α,i+1)(使用Ca解码并进行到下一符号)d7. Di(Cm,α,Decode(α,i+1)(使用Cm解码并进行到下一符号)为了显示可进行唯一编码,可以显示用于对xi编码的上下文模型总是与用于对编码的xi解码的上下文模型相同。因为以相同的方式在编码器和解码器中保持P_lps和valMPS,所以在对xi解码之前解码器中的P_lps和valMPS与在对xi编码之前编码器中的P_lps和valMPS相同。因此,在这种情况下,在编码器和在解码器中选择相同的Cmi或Cai。当不存在Ca时,只有Cm用于编码和解码,从而没有模糊现象的发生的问题。因此,可仅考虑存在Ca的情况。
根据编码算法,当输入的符号x是mps(Cm)时,执行E(Cm,x)。当输入的符号x不是mps(Cm)时,执行E(Cm,x)或E(Ca,x)。当编码的数据被表示为a1、a2和a3时,所述情况可分别表示为以下的等式3到5。
等式3a1=E(Cm,mps(Cm))等式4a2=E(Ca,mps(Ca))等式5a3=E(Cm,mps(Ca))在等式3的情况下,因为Di(Cm,a1)==mps(Cm),所以步骤d2的结果为真,从而执行使用相同的上下文模型的解码。
在等式4的情况下,根据步骤e8和e9,步骤d2的结果为假并且步骤d4的结果为真。
在等式5的情况下,当使用Ca或Cm解码时,结果总是mps(Ca)。因此,步骤d2的结果为假并且步骤d4的结果为真。在等式4和等式5中,因为通过在编码中应用步骤e8和e9而使得上下文模型不同,所以当在步骤d5中应用步骤e7和e8时,无论是等式4还是等式5的情况,都可以根据应用的结果来确定。如上所述,因为在编码器和解码器中,总是将相同的上下文模型用于特定的输入符号,所以可通过解码处理恢复原始输入的数据。
根据本发明的示例性实施例,增大了压缩效率。在本发明中,因为CABAC通常用于多媒体数据的压缩(如H.264),所以可改善运动图像的压缩性能。虽然为了实施根据本发明实施例的方法,在某种程度上增加了编码器和解码器的复杂性,但是因为硬件性能不断改善,所以可忽略这一点。
本发明也可实现为计算机可读记录介质上的计算机可读代码。所述计算机可读记录介质为任何可存储其后能由计算机系统读取的数据的数据存储装置,所述计算机系统包括具有信息处理功能的设备。所述计算机可读记录介质的例子包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储装置等。
根据基于CABAC的编码或解码方法和设备,通过使用当前输入的符号另外选择上下文模型以及基于先前输入的符号一般地选择上下文,可改善编码的压缩率。此外,因为通过在编码处理期间执行测试解码防止了模糊现象的发生,所以可在没有模糊现象的发生的情况下正确地恢复原始输入的数据。
虽然已经参照本发明的示例性实施例具体显示和描述了本发明,但是本领域技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上对其进行各种变动。应该仅将示例性实施例理解为描述性的意义,而非限制性的目的。因此,本发明的范围不是由示例性实施例的详细描述限定,而是由权利要求限定,并且所述范围内的所有不同应该被解释为包括在本发明内。
权利要求
1.一种基于CABAC的编码方法,所述方法包括基于先前输入的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号值不同的大概率符号值的第二上下文模型;如果当前输入的符号具有与第一上下文模型的大概率符号值相同的值,或者如果不能选择第二上下文模型,则使用第一上下文模型对当前输入的符号编码;和如果当前输入的符号具有与第一上下文模型的大概率符号值不同的值并且能够选择第二上下文模型,则使用第二上下文模型对当前输入的符号编码。
2.如权利要求1所述的方法,还包括使用第一上下文模型对已经使用第一上下文模型或第二上下文模型编码的编码的输入的符号解码;和如果已经通过使用第二上下文模型对当前输入的符号编码来产生编码的输入的符号,并且编码的输入的符号的解码值与第一上下文模型的大概率符号值相同,则使用第一上下文模型对当前输入的符号编码。
3.如权利要求1所述的方法,其中,选择第一上下文模型和第二上下文模型的步骤包括在每个具有与第一上下文模型的大概率符号值不同的大概率符号值的一个或多个上下文模型中,选择具有小概率符号值的出现概率的最小值的上下文模型作为第二上下文模型。
4.一种基于CABAC的编码设备,所述设备包括上下文模型选择单元,基于先前输入的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号值不同的大概率符号值的第二上下文模型;第一编码单元,如果当前输入的符号具有与第一上下文模型的大概率符号值相同的值,或者如果不能选择第二上下文模型,则使用第一上下文模型对当前输入的符号编码;和第二编码单元,如果当前输入的符号具有与第一上下文模型的大概率符号值不同的值并且能够选择第二上下文模型,则使用第二上下文模型对当前输入的符号编码。
5.如权利要求4所述的设备,还包括符号解码单元,使用第一上下文模型对已经使用第一上下文模型或第二上下文模型编码的编码的输入的符号解码;和第三编码单元,如果已经通过使用第二上下文模型对当前输入的符号编码来产生编码的输入的符号,并且编码的输入的符号的解码值与第一上下文模型的大概率符号值相同,则使用第一上下文模型对输入的符号编码。
6.如权利要求4所述的设备,其中,上下文模型选择单元在每个具有与第一上下文模型的大概率符号值不同的大概率符号值的一个或多个上下文模型中,选择具有小概率符号值的出现概率的最小值的上下文模型作为第二上下文模型。
7.一种基于CABAC的解码方法,所述方法包括基于先前解码的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号值不同的大概率符号值的第二上下文模型;通过使用第一上下文模型对编码的输入的符号解码,产生第一解码的符号;如果第一解码的符号具有与第一上下文模型的大概率符号值相同的值,则将第一解码的符号选择为基于CABAC的解码的结果值;和如果第一解码的符号具有与第一上下文模型的大概率符号值不同的值,则通过使用第二上下文模型对编码的输入的符号解码,产生第二解码的符号。
8.如权利要求7所述的方法,还包括如果第二解码的符号具有与第二上下文模型的大概率符号值不同的值,则将第一解码的符号选择为基于CABAC的解码的结果值;如果第二解码的符号具有与第二上下文模型的大概率符号值相同的值,则使用第二上下文模型对第二解码的符号编码,从而通过使用第一上下文模型对第二解码的符号的编码的结果解码,产生第三解码的符号;如果第三解码的符号具有与第二上下文模型的大概率符号值相同的值,则将第二解码的符号选择为基于CABAC的解码的结果值;和如果第三解码的符号具有与第二上下文模型的大概率符号值不同的值,则将第一解码的符号选择为基于CABAC的解码的结果值。
9.如权利要求7所述的方法,其中,选择第一上下文模型和第二上下文模型的步骤包括在每个具有与第一上下文模型的大概率符号值不同的大概率符号值的一个或多个上下文模型中,选择具有小概率符号值的出现概率的最小值的上下文模型作为第二上下文模型。
10.一种基于CABAC的解码设备,所述设备包括上下文模型选择单元,基于先前解码的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号值不同的大概率符号值的第二上下文模型;第一解码单元,通过使用第一上下文模型对编码的输入的符号解码,产生第一解码的符号;第一结果值选择单元,如果第一解码的符号具有与第一上下文模型的大概率符号值相同的值,则将第一解码的符号选择为基于CABAC的解码的结果值;和第二解码单元,如果第一解码的符号具有与第一上下文模型的大概率符号值不同的值,则通过使用第二上下文模型对编码的输入的符号解码,产生第二解码的符号。
11.如权利要求10所述的设备,还包括第二结果值选择单元,如果第二解码的符号具有与第二上下文模型的大概率符号值不同的值,则将第一解码的符号选择为基于CABAC的解码的结果值;第三解码单元,如果第二解码的符号具有与第二上下文模型的大概率符号值相同的值,则使用第二上下文模型对第二解码的符号编码,从而通过使用第一上下文模型对第二解码的符号的编码的结果解码,产生第三解码的符号;第三结果值选择单元,如果第三解码的符号具有与第二上下文模型的大概率符号值相同的值,则将第二解码的符号选择为基于CABAC的解码的结果值;和第四结果值选择单元,如果第三解码的符号具有与第二上下文模型的大概率符号值不同的值,则将第一解码的符号选择为基于CABAC的解码的结果值。
12.如权利要求10所述的设备,其中,上下文模型选择单元在每个具有与第一上下文模型的大概率符号值不同的大概率符号值的一个或多个上下文模型中,选择具有小概率符号值的出现概率的最小值的上下文模型作为第二上下文模型。
13.一种其上记录有执行基于CABAC的编码方法的程序的计算机可读记录介质,所述方法包括基于先前输入的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号值不同的大概率符号值的第二上下文模型;如果当前输入的符号具有与第一上下文模型的大概率符号值相同的值,或者如果不能选择第二上下文模型,则使用第一上下文模型对当前输入的符号编码;和如果当前输入的符号具有与第一上下文模型的大概率符号值不同的值并且能够选择第二上下文模型,则使用第二上下文模型对当前输入的符号编码。
14.一种其上记录有执行基于CABAC的解码方法的程序的计算机可读记录介质,所述方法包括基于先前解码的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号值不同的大概率符号值的第二上下文模型;通过使用第一上下文模型对编码的输入的符号解码,产生第一解码的符号;如果第一解码的符号具有与第一上下文模型的大概率符号值相同的值,则将第一解码的符号选择为基于CABAC的解码的结果值;和如果第一解码的符号具有与第一上下文模型的大概率符号值不同的值,则通过使用第二上下文模型对编码的输入的符号解码,产生第二解码的符号。
全文摘要
提供了一种使用改善的上下文模型选择以获得高压缩率的基于上下文的自适应二进制算术编码(CABAC)的编码或解码方法和设备。所述基于CABAC的编码方法包括基于先前输入的符号的统计选择第一上下文模型,并选择具有与第一上下文模型的大概率符号(MPS)值不同的大概率符号值的第二上下文模型;如果当前输入的符号具有与第一上下文模型的大概率符号值相同的值,或者如果不能选择第二上下文模型,则使用第一上下文模型对当前输入的符号编码;和如果当前输入的符号具有与第一上下文模型的大概率符号值不同的值并且如果能够选择第二上下文模型,则使用第二上下文模型对当前输入的符号编码。
文档编号H03M7/38GK101034891SQ200710078880
公开日2007年9月12日 申请日期2007年2月16日 优先权日2006年2月22日
发明者曹荣佑 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1