CN100568741C - 算术解码方法和设备及截去音频数据比特流的方法和设备 - Google Patents
算术解码方法和设备及截去音频数据比特流的方法和设备 Download PDFInfo
- Publication number
- CN100568741C CN100568741C CNB2006800021444A CN200680002144A CN100568741C CN 100568741 C CN100568741 C CN 100568741C CN B2006800021444 A CNB2006800021444 A CN B2006800021444A CN 200680002144 A CN200680002144 A CN 200680002144A CN 100568741 C CN100568741 C CN 100568741C
- Authority
- CN
- China
- Prior art keywords
- decoding
- code element
- value
- bit stream
- low
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000007689 inspection Methods 0.000 claims abstract description 11
- 238000005070 sampling Methods 0.000 claims description 24
- 230000005236 sound signal Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 9
- 238000001228 spectrum Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- PEIBAWRLFPGPAT-UHFFFAOYSA-N 1-(diazomethyl)pyrene Chemical compound C1=C2C(C=[N+]=[N-])=CC=C(C=C3)C2=C2C3=CC=CC2=C1 PEIBAWRLFPGPAT-UHFFFAOYSA-N 0.000 description 1
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 238000002266 amputation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种可分级音频数据算术解码的方法、介质和设备和一种截去音频数据比特流的方法、介质和设备。对可分级算术编码的码元进行解码的算术解码的方法可包括:通过使用期望被解码的码元和码元的概率对码元进行算术解码;和通过检查指示将被解码的码元的解码是否完成的歧义来确定是否继续解码。根据本发明的方法、介质和设备,当在MPEG-4可分级无损音频编码中执行算术解码时,应用可分级的数据可被进行有效的解码。即使当截去比特流时,也可知道解码终止点,从而可执行截去部分的附加解码。
Description
技术领域
本发明的实施例涉及可分级音频数据解码,更具体地讲,涉及一种可分级音频数据算术解码的方法、介质和设备和一种截去音频数据比特流的方法、介质和设备。
背景技术
音频无损编码技术已被用于音频广播和/或存档目的。无损音频编码的主要技术包括例如使用时间/频率转换或线性预测的熵编码器的应用。
例如当应用通过比特流再解析的分级时,在服务器端在任意位置截去与帧相应的比特流,并将其发送到解码端。
图1示出传统的算术解码方法。
首先,在操作100,执行初始化,并在操作110,检测期望解码的码元。在操作120,通过使用相应的上下文,可计算码元存在的概率,然后在操作130,可执行算术解码,然后在操作140,检查所述码元是否在比特流的末端,如果所述码元不在比特流的末端,则可再次确定将被解码的码元,并重复上述操作。当确定所述码元为比特流的末端时,完成解码。
发明内容
技术问题
同时,当执行算术解码方法时,获知所有将被解码的码元,或者插入预定的终止代码,并且将应该完成解码的时间通知给解码器。然而,当截去比特流时,如图2所示,指示终止代码的信息被截除,并且解码器不知道何时完成解码。因此,由于不知道精确的终止时间,因此不期望的数据可被解码。
技术解决方案
在此阐述的本发明的实施例包括能够没有解码错误地有效地终止解码的可分级音频数据算术解码方法、介质和设备。
本发明的实施例还包括截去可分级音频数据比特流的方法、介质和设备。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种用于对可分级算术编码的码元进行解码的可分级数据算术解码的方法,所述方法包括:通过使用码元和码元的概率对期望的码元进行算术解码,并且通过检查指示码元的解码是否完成的歧义(ambiguity)来确定是否继续码元的解码,其中,在确定是否继续解码的步骤中,当在对截去之后剩余的有效比特流解码然后通过使用空比特执行解码以对为分级截去的比特流解码时,如果在不考虑空比特的情况下对码元解码,则继续执行解码,如果依赖空比特对码元解码,并且确定歧义发生,则然后相应地终止解码。
确定是否继续解码的步骤可包括计算K,假设K为下式的右侧的值:
该步骤还可包括根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限,如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0,如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
在码元的算术解码之前,所述方法可包括:查找码元,并计算码元的概率。
码元的概率的计算可包括:从将被解码的比特流的头信息查找解码模式,并且如果解码模式是基于上下文的算术编码模式(cbac),则通过参考码元的上下文来获得码元的概率。
在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位可被算术解码,并且在确定歧义发生的步骤中,如果K在0和2dummy-1之间,则可确定歧义已经发生,并且可通过将在歧义紧前面被解码的采样设置为0来终止解码。
码元的概率的计算可包括从将被解码的比特流的头信息查找解码模式,如果解码模式为位平面Golomb模式(bpgc),则假设将被解码的数据具有Laplacian分布,获得码元的概率。
在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位可被算术解码,和在确定歧义发生的步骤中,如果K在0和2dummy-1之间,则可确定歧义已经发生,并且通过将在歧义紧前面被解码的采样设置为0来终止解码。
码元的概率的计算还可包括:从将被解码的比特流的头信息查找解码模式;和如果解码模式是低能量模式,则通过使用比特流头的概率模型信息来获得码元的概率。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种用于对可分级算术编码的码元进行解码的可分级数据算术解码设备,所述设备包括:码元解码单元,通过使用码元和码元的概率对期望的码元进行算术解码;和歧义检查单元,通过检查歧义来确定是否继续解码,所述歧义检查单元包括解码继续确定单元,所述解码继续确定单元计算K,假设K为下式的右侧的值,并根据K的值确定是否继续解码:
这里,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限。所述设备还可包括附加解码单元,如果K等于或大于2dummy-1,则所述附加解码单元将码元解码为1,如果K等于或小于0,则将码元解码为0;和解码终止单元,如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
所述设备还可包括:码元确定/概率预测单元,查找码元并计算码元的概率。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种截去可分级数据比特流的方法,所述方法包括:从比特流的头解析比特流的长度;通过读取比特流计算与目标比特率相应的字节;使用计算的目标字节和实际的比特数之间较小的值改变比特流长度;和基于所述比特流和目标长度存储并发送截去的比特流。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:通过使用码元和码元的概率对期望的码元进行算术解码,并通过检查指示码元的解码是否完成的歧义来确定是否继续码元的解码,其中,确定是否继续解码的步骤可包括:计算K,假设K为下式的右侧的值:
这里,所述方法还可包括:根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限,如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0,和如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:通过使用码元和码元的概率对期望的码元进行算术解码,其中,在码元的概率的计算中,从将被解码的比特流的头信息查找解码模式,并且如果解码模式是基于上下文的算术编码模式,则通过参考码元的上下文来获得码元的概率,和通过检查指示码元的解码是否完成的歧义来确定是否继续码元的解码,其中,确定是否继续解码的步骤包括:计算K,假设K为下式的右侧的值:
这里,所述方法还可包括:根据K的值确定是否继续解码,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限,如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0,和如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位可被算术解码,和在确定歧义发生的步骤中,如果K在0和2dummy-1之间,则可确定歧义已经发生,并且通过将在歧义紧前面被解码的采样设置为0来相应地终止解码。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:通过使用码元和码元的概率对期望的码元进行算术解码,其中,在码元的概率的计算中,从将被解码的相应的比特流的头信息查找解码模式,并且如果解码模式为位平面Golomb模式(bpgc),则假设将被解码的数据具有Laplacian分布,获得码元的概率,和通过检查指示码元的解码是否完成的歧义来确定是否继续解码,其中,确定是否继续解码的步骤包括:计算K,假设K为下式的右侧的值:
这里,所述方法还可包括:根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限,如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0,和如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位可被算术解码,和其中,在确定歧义发生的步骤中,如果K在0和2dummy-1之间,则可确定歧义已经发生,并且通过将在歧义紧前面被解码的采样设置为0来相应地终止解码。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:通过使用码元和码元的概率对期望的码元进行算术解码,其中,在码元的概率的计算中,从将被解码的相应的比特流的头信息查找解码模式,并且如果解码模式是低能量模式,则通过使用比特流头的概率模型信息来获得码元的概率,和通过检查指示码元的解码是否完成的歧义来确定是否继续解码,其中,确定是否继续解码的步骤包括:计算K,假设K为下式的右侧的值:
这里,所述方法还可包括:根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限,如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0,和如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种截去可分级数据比特流的方法,所述方法包括:从比特流的头解析比特流的长度,通过读取比特流计算与目标比特率相应的字节,使用计算的目标字节和实际比特数之间较小的值改变比特流长度,和基于所述比特流和目标长度存储并发送截去的比特流,其中,使用下面的等式获得目标字节:
target_bits=(int)(target_bitrate/2*1024.*osf/sampling_rate+0.5)-16;和
target_bytes=(target_bits+7)/8;
这里,target_bitrate表示以比特/秒为单位的期望的目标比特率,sampling_rate表示以Hz为单位的输入音频信号的采样频率,osf表示具有1、2和4中的任意一个值的过采样因数。
为了实现上述和/或其他方面和优点,本发明的实施例包括一种介质,所述介质包括实现本发明的实施例的计算机可读代码。
将在下面的描述中部分地阐述本发明的附加的方法和/或优点,部分地根据说明书将是清楚的,或可通过本发明的实施而认识到。
有益的效果
根据上面描述的本发明实施例的可分级音频数据算术解码方法、介质和设备,当在MPEG-4可分级无损音频编码中执行算术解码时,应用可分级的数据可被进行有效的解码。即使当截去比特流时,可知道解码终止点,从而可执行截去部分的附加解码。
附图说明
图1示出传统的算术解码方法;
图2示出普通可分级的比特流截去;
图3示出传统的二进制算术解码的伪码;
图4示出当截去比特流时在截去点附近输入缓冲器的值;
图5示出根据本发明实施例的可分级音频数据的算术解码设备;
图6示出根据本发明实施例的诸如用于图5的算术解码设备的歧义检查单元;
图7示出根据本发明实施例的可分级音频数据的算术解码;
图8示出根据本发明实施例的应用确定是否继续恢复可分级比特流的附加解码;
图9示出根据本发明实施例的发生在符号位的歧义的处理;和
图10示出根据本发明实施例的可分级音频数据的比特流的截去。
具体实施方式
将详细描述本发明的实施例,其示例示出在附图中,其中,相同的标号始终代表相同的部件。以下参照附图描述实施例以说明本发明。
因此,现在将更加详细地描述根据本发明实施例的可分级音频数据算术解码的方法、介质和设备以截去音频数据比特流的方法、介质和设备。
图3示出传统的二进制算术解码的伪码。即,可在MPEG-4可分级无损音频编码的熵编码器中使用的算术解码算法。
根据图3中的伪码,通过frequency、low、high和value的当前值确定解码码元,然后执行low、high和value的值的重新调节和更新。
图4示出当截去比特流时在截去点附近输入的缓冲器的值。由于在截去的缓冲器索引之后不存在有意义的信息,因此输入值没有意义。这里,该值被称为v2,在缓冲器的剩余部分的值被称为v1。
根据本发明的实施例,在v2中存在3比特(空比特),例如,相应地v2值的范围为从0到7。
图5示出根据本发明实施例的可分级音频数据的算术解码设备。
算术解码设备可包括码元解码单元520和歧义(ambiguity)检查单元540。算术解码设备还可包括:例如码元确定/概率预测单元500。
码元确定/概率预测单元500识别比特流中将被解码的码元,并预测码元的存在的概率。
现在将描述存在码元的概率预测的执行。首先,可从将被解码的比特流的头信息检测解码模式。如果解码模式是基于上下文的算术编码(cbac)模式(指通过将被解码的码元的上下文),则可获得码元的概率。如果解码模式是位平面Golomb编码模式,则可通过假设将被解码的数据的具有Laplacian分布来获得将被解码的码元的概率。此外,如果解码模式是低能量模式,则通过使用比特流头的概率模型信息来获得将被解码的码元的存在的概率。
码元解码单元520可使用预测的概率执行码元的算术解码,然后可产生码元。现在将说明对位平面的符号位的解码。在MPEF-4可分级无损比特流的解码中,可对位平面上的值中的第一非零采样解码,然后可对与所述采样相应的符号解码。然而,如果在符号值中发生歧义错误并因为发生歧义错误立即终止解码,则可能不知道在紧前面被解码的非零采样的符号。为此,当在符号位中终止解码时,在紧前面被解码的采样被设置为0,并终止所述解码。
假设下面的等式1和2的右侧的值为K,则歧义检查单元540可计算K,并且根据K值确定是否继续对码元解码:
这里,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限。[参考14496-4:2001/PDAM 5,Scalable Lossless Coding(SLS),ISO/IEC JTC 1/SC 29/WG 11N6792]
将更加详细地描述等式1和等式2。在图3中示出的伪码的解码表达式可被分为v1和v2,然后被扩展。
如果(v1+v2-low+1)·214<(high-low+1)·freq,则可产生具有1的值的码元(sym)。这里,如果关于v2对其进行重新整理,则得到等式1。
此外,如果(v1+v2-low+1)·214≥(high-low+1)·freq,则可产生具有0的值的码元(sym)。这里,如果关于v2对其进行重新整理,则得到等式2。
在等式1中,如果表达式的右侧的值大于7,则可在不考虑v2的情况下将码元解码为1。在等式2中,如果右侧表达式的值小于0,则可在不考虑v2的情况下将码元解码为0。在其他情况下,发生解码歧义并完成解码。
图6示出根据本发明实施例的诸如用于图5的算术解码设备的歧义检查单元540。
假设等式1和等式2的右侧值为K,则解码继续确定单元600可计算K的值,并根据K的值确定是否继续对码元解码。如果K等于或大于2dummy-1,则附加解码单元620可将码元解码为1,如果K等于或小于0,则附加解码单元620将码元解码为0。如果K在0和2dummy-1之间,则解码终止单元640可确定已发生歧义,并终止解码。
图7示出根据本发明实施例的可分级音频数据的算术解码,参照图7,现在将根据本发明实施例更加详细地描述确定是否继续恢复可分级比特流。
在操作700,可确定将在算术编码的可分级比特流中被解码的码元,在操作710,可预测确定的码元的概率。
现在将进一步说明执行码元的概率预测。
可从将被解码的比特流的头信息确定解码模式。如果解码模式是基于上下文的算术编码(cbac)模式(即,通过参照将被解码的码元的上下文),则可获得码元的存在的概率。如果解码模式是位平面Golomb编码模式,则可通过假设将被解码的数据的具有Laplacian分布来获得将被解码的码元的概率。此外,如果解码模式是低能量模式,则通过使用比特流头的概率模型信息来获得将被解码的码元的存在的概率。
在操作720,通过使用预测的概率,可算术解码并产生码元。
假设等式1和等式2的右侧的值为K,当计算K时,如果在操作730发现K在0和2dummy-1之间,则可确定已发生歧义,并在操作740,可终止算术解码。
在操作750,如果发现K等于或小于0,则在操作760,码元可被解码为0,如果发现K等于或大于2dummy-1,则在操作770,码元可被解码为1。
图8示出根据本发明实施例的确定是否继续恢复可分级比特流的附加解码。图8示出被附加解码的5个采样。
在MPEG-4可分级无损解码中,位平面上的值中的第一非零采样被解码,然后与所述采样相应的符号被解码。然后,如果在符号值中出现歧义错误,从而因为出现歧义错误立即终止解码,则可能不知道紧前面被解码的非零采样的符号。为此,当在符号位终止解码时,紧前面被解码的采样被设置为0,并终止解码。
图9示出根据本发明实施例的发生在符号位的歧义的处理。
首先,将更加详细地说明BPGC、CBAC和低能量的每个的算术解码的伪码。这里,ambiguity_check(f)是用于检测算术解码的歧义的函数,变量f指示概率1。函数terminate_decoding()是用于当发生歧义时终止LLE数据的解码的函数。函数smart_decoding_cbac_bpgc()是用于在cbac/bpgc模式解码中不存在输入比特时对附加码元解码的函数。根据本发明实施例的可分级音频数据算术解码继续直到不存在歧义的点。该码(伪码)包括上述函数:ambiguity_check(f)和terminate_decoding()。此外,函数smart_decoding_low_enrgy()是用于在低能量模式中输入比特不存在时对附加码元解码的函数。该该码还包括函数:ambiguity_check(f)和terminate_decoding(),如下所示:
while((max_bp[g][sfb]cur_bp[g][sfb]<LAZY_BP)&&(cur_bp[g][sfb]>=
0)){
for(g=0;g<num_windows_group;g++){
for(sfb=0;sfb<num_sfb;sfb++){
if((cur_bp[g][sfb]>=0)&&(lazy_bp[g][sfb]>0)){
width=swb_offset[g][sfb+1]swb_offset[g][sfb];
for(win=0;win<window_group_len[g];win++){
for(bin=0;bin<width;bin++){
if(!is_lle_ics_eof()){
if(interval[g][win][sfb][bin]>res[g][win][sfb][bin]+(1<<cur_bp[g][sfb])
{
freq=determine_frequency();
res[g][win][sfb][bin]+=decode(freq)<<cur_bp[g][sfb];
/*解码位平面cur bp*/
if((!is_sig[g][win][sfb][bin])&&(res[g][win][sfb][bin])){
/*如果必要则解码符号位*/
res[g][win][sfb][bin]*=(decode(freq_sign))?1:-1;
is_sig[g][win][sfb][bin]=1;
}
}
}
else{
smart_decoding_cbac_bpgc();
}
}
}
cur_bp[g][sfb];/*进行下一位平面*/
}
}
}
}
/*低能量模式解码*/
for(g=0;g<num_windows_group;g++){
for(sfb=0;sfb<num_sfb+num_osf_sfb;sfb++){
if((cur_bp[g][sfb]>=0)&&(lazy_bp[g][sfb]<=0))
{
width=swb_offset[g][sfb+1]swb_offset[g][sfb];
for(win=0;win<window_group_len[g];win++){
res[g[sfb][win][bin]=0;
pos=0;
for(bin=0;bin<width;bin++){
if(!is_lle_ics_eof()){
/*解码二进制字符串并重构res*/
while(decode(freq_silence[pos])==1){
res[g][sfb][win][bin]++;
pos++;
if(pos>2)pos=2;
if(res[g][sfb][win][bin]==(1<<(max_bp[g][sfb]+1))-1)break;
}
/*解码res的符号*/
if(!is_sig[g][win][sfb][bin])&&res[g][sfb][win][bin]){
res[g][sfb][win][bin]*=(decode(freq_sign))?-1:1;
is_sig[g][win][sfb][bin]=1;
}
}
else smart_decoding_low_energy();
}
}
}
}
}
根据本发明实施例的截去的SLS比特流的算术解码提供用于对与给定的目标比特率相应的中间层解码的有效方法,从而,即使当在解码缓冲器中没有比特输入时,有意义的信息也可仍然包括在解码缓冲器中。执行解码处理直到码元中不存在歧义的点。下面的伪码示出用于在根据本发明实施例的算术解码模块中检测歧义的算法。变量num_dummy_bits指示因为截去没有输入到数值缓冲器中的比特数。
int ambiguity_check(int freq)
{
/*如果没有歧义,返回1*/
/*否则,返回0*/
upper=1<<num_dummy_bits;
decisionVal=((high-low)*freq>>PRE_SHT)-value+low-1;
if(decision Val>upper‖decision Val<0)return 0;
else return 1;
}
下面,当num_dummy_bits大于0时,可执行smart_decoding_cbac_bpgc()或smart_decoding_low_enrgy()。为了避免符号位错误,当在对符号位解码的同时发生歧义时,当前谱线的谱值被设置为0。在根据本发明实施例的算术解码处理中的所有索引变量自先前的算术解码处理被继续处理。
smart_decoding_cbac_bpgc()
{
/*有歧义检测的BPGC/CBAC正常解码*/
while((max_bp[g][sfb]-cur_bp[g][sfb]<LAZY_BP)&&(cur_bp[g][sfb]>=
0)){
for(;g<num_windows_group;g++){
for(;sfb<num_sfb;sfb++){
if((cur_bp[g][sfb]>=0)&&(lazy_bp[g][sfb]>0)){
width=swb_offset[g][sfb+1]-swb_offset[g][sfb];
for(;win<window_group_len[g];win++){
for(;bin<width;bin++){
if(interval[g][win][sfb][bin]>res[g][win][sfb][bin]+(1<<cur_bp[g][sfb])
{
freq=determine_frequency();
if(ambiguity_check(freq)){
/*没有歧义的算术解码*/
res[g][win][sfb][bin]+=decode(freq)<<cur_bp[g][sfb];
/*对位平面cur_bp解码*/
if((!is_sig[g][win][sfb][bin])&&(res[g][win][sfb][bin])){
/*如果必要则对符号位解码*/
if(ambiguity_check(freq)){
res[g][win][sfb][bin]*=(decode(freq_sign))?1:-1;
is_sig[g][win][sfb][bin]=1;
}
else{
/*丢弃符号码元之前的被解码的码元*/
res[g][win][sfb][bin]=0;
terminate_decoding();
}
}
}
else terminate_decoding();
}
}
}
cur_bp[g][sfb];/*进行下一位平面*/
}
}
}
}
}
smart_decoding_low_energy()
{
/*低能量模式解码*/
for(;g<num_windows_group;g++){
for(;sfb<num_sfb+num_osf_sfb;sfb++){
if((cur_bp[g][sfb]>=0)&&(lazy_bp[g][sfb]<=0))
{
width=swb_offset[g][sfb+1]swb_offset[g][sfb];
for(;win<window_group_len[g];win++){
res[g][sfb][win][bin]=0;
pos=0;
for(;bin<width;bin++){
while(1){
/*如果歧义检查是假,则谱值被设置为0*/
if(!ambiguity_check(freq))res[g][sfb][win][bin]=0,terminate_decoding();
tmp=decode(freq_silence[pos]);
if(tmp==0)break;
res[g][sfb][win][bin]++;
pos++;
if(pos>2)pos=2;
if(res[g][sfb][win][bin]==(1<<(max_bp[g][sfb]+1))-1)break;
}
/*对res的符号位解码*/
if(!is_sig[g][win][sfb][bin])&&res[g][sfb][win][bin]){
/*如果歧义检查是假,则当前谱值被设置为0*/
if(!ambiguity_check(freq))res[g][sfb][win][bin]=0,terminate_decoding();
res[g][sfb][win][bin]*=(decode(freq_sign))?-1:1;
is_sig[g][win][sfb][bin]=1;
}
}
}
}
}
}
}
下面,将根据通过再次解析产生截去的比特流的方法来说明当在头中传送比特流的大小时,再次解析和比特流截去的处理。
图10示出根据本发明实施例的可分级音频数据的比特流的截去。参照图10,现在将更加详细地说明截去可分级音频数据的比特流的方法。
在操作1000,可从比特流头信息来解析比特流的长度。在操作1020,可通过使用等式3和等式4来计算与目标比特率相应的字节。可从外部(例如,通过服务器或用户)提供目标比特率。
target_bits=(int)(target_bitrate/2*1024.*osf/sampling_rate+0.5)-16......(3)
target_bytes=(target_bits+7)/8......(4)
可使用获得的目标字节改变比特流的长度。即,在操作1030,实际的比特数和target_bytes中较小的值可被确定为比特流的长度。在操作1040,还可存储和发送目标长度的比特流。
现在将更加详细的说明重新解析和截去比特流的方法。可以以简单的方式以给定的目标比特率截去SLS比特流。lle_ics_length的值的改变不影响截去点之前的LLE解码结果。lle_ics_length独立于LLE解码过程。现在将说明比特流截去。从比特流读取LLE比特流计算给定的目标比特率的可用的帧长度。计算可用的帧长度的最简单的方法是使用上面的等式3和等式4。
这里,在等式3和等式4中,变量target_bitrate表示以比特/秒为单位的目标比特率,变量osf表示过采样因数,变量sampling_rate表示以Hz为单位的输入音频信号的采样频率。通过取可用的帧长度和当前的帧长度中的较小值,lle_ics_length可被更新如下:
lle_ics_length=min(lle_ics_length,target_bytes)
可产生具有更新的lle_ics_length的截去的比特流。
本发明的实施例还可被实现为介质上(即,在计算机可读记录介质上)的计算机可读代码。所述介质可以是其后可被计算机系统读取的存储/发送数据的数据存储装置。所述介质的示例可包括:只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、和光学数据存储设备,以上这些仅为示例。
尽管已经显示和描述了本发明的几个实施例,但是本领域的技术人员应该理解,在不脱离本发明的原理和精神的情况下,可以对这些实施例进行改变,本发明的范围由权利要求及其等同物所限定。
Claims (18)
1、一种用于对可分级算术编码的码元进行解码的可分级数据算术解码的方法,所述方法包括:
通过使用码元和码元的概率对期望的码元进行算术解码;和
通过检查指示码元的解码是否完成的歧义来确定是否继续码元的解码,
其中,在确定是否继续解码的步骤中,当在对截去之后剩余的有效比特流解码然后通过使用空比特执行解码以对为分级截去的比特流解码时,如果在不考虑空比特的情况下对码元解码,则继续执行解码,如果依赖空比特对码元解码,并确定歧义发生,则然后相应地终止解码。
2、如权利要求1所述的方法,其中,确定是否继续解码的步骤包括:
计算K,假设K为下式的右侧的值:
根据K的值确定是否继续解码,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限;
如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0;和
如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
3、如权利要求2所述的方法,在码元的算术解码之前,还包括:
查找码元;和
计算码元的概率。
4、如权利要求3所述的方法,其中,码元的概率的计算包括:
从将被解码的比特流的头信息查找解码模式;和
如果解码模式是基于上下文的算术编码模式,则通过参考码元的上下文来获得码元的概率。
5、如权利要求4所述的方法,其中,在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位被算术解码,和
在确定歧义发生的步骤中,如果K在0和2dummy-1之间,则确定歧义已经发生,并且通过将在歧义紧前面被解码的采样设置为0来终止解码。
6、如权利要求3所述的方法,其中,码元的概率的计算包括:
从将被解码的比特流的头信息查找解码模式;和
如果解码模式为位平面Golomb模式,则假设将被解码的数据具有Laplacian分布,获得码元的概率。
7、如权利要求3所述的方法,其中,在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位被算术解码,和
其中,在确定发生歧义的步骤中,如果K在0和2dummy-1之间,则确定歧义已经发生,并且通过将在歧义紧前面被解码的采样设置为0来终止解码。
8、如权利要求3所述的方法,其中,码元的概率的计算包括:
从将被解码的比特流的头信息查找解码模式;和
如果解码模式是低能量模式,则通过使用比特流头的概率模型信息来获得码元的概率。
9、一种用于对可分级算术编码的码元进行解码的可分级数据算术解码设备,所述设备包括:
码元解码单元,通过使用码元和码元的概率对期望的码元进行算术解码;和
歧义检查单元,通过检查歧义来确定是否继续解码,所述歧义检查单元包括解码继续确定单元,所述解码继续确定单元计算K,假设K为下式的右侧的值,并根据K的值确定是否继续解码,:
其中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限;
附加解码单元,如果K等于或大于2dummy-1,则所述附加解码单元将码元解码为1,如果K等于或小于0,则将码元解码为0;和
解码终止单元,如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
10、如权利要求9所述的设备,还包括:码元确定/概率预测单元,查找码元并计算码元的概率。
11、一种截去可分级数据比特流的方法,所述方法包括:
从比特流的头解析比特流的长度;
通过读取比特流计算与目标比特率相应的字节;
使用计算的目标字节和实际比特数之间较小的值改变比特流长度;和
基于所述比特流和目标长度存储并发送截去的比特流。
12、一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:
通过使用码元和码元的概率对期望的码元进行算术解码;和
通过检查指示码元的解码是否完成的歧义来确定是否继续码元的解码,
其中,确定是否继续解码的步骤包括:
计算K,假设K为下式的右侧的值:
根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限;
如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0;和
如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
13、一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:
通过使用码元和码元的概率对期望的码元进行算术解码,其中,在码元的概率的计算中,从将被解码的比特流的头信息查找解码模式,并且如果解码模式是基于上下文的算术编码模式,则通过参考码元的上下文来获得码元的概率;和
通过检查指示码元的解码是否完成的歧义来确定是否继续码元的解码,
其中,确定是否继续解码的步骤包括:
计算K,假设K为下式的右侧的值:
根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限;
如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0;和
如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
14、如权利要求13所述的方法,其中,在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位被算术解码,和
在确定歧义发生的步骤中,如果K在0和2dummy-1之间,则确定歧义已经发生,并且通过将在歧义紧前面被解码的采样设置为0来相应地终止解码。
15、一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:
通过使用码元和码元的概率对期望的码元进行算术解码,其中,在码元的概率的计算中,从将被解码的相应的比特流的头信息查找解码模式,并且如果解码模式为位平面Golomb模式,则假设将被解码的数据具有Laplacian分布,获得码元的概率;和
通过检查指示码元的解码是否完成的歧义来确定是否继续解码,
其中,确定是否继续解码的步骤包括:
计算K,假设K为下式的右侧的值:
根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限;
如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0;和
如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
16、如权利要求15所述的方法,其中,在码元的算术解码的步骤中,如果位平面上的第一非零采样被解码,则与所述采样相应的符号位被算术解码,和
其中,在确定歧义发生的步骤中,如果K在0和2dummy-1之间,则确定歧义已经发生,并且通过将在歧义紧前面被解码的采样设置为0来相应地终止解码。
17、一种用于对可分级音频算术编码的码元进行解码的可分级音频数据算术解码方法,所述方法包括:
通过使用码元和码元的概率对期望的码元进行算术解码,其中,在码元的概率的计算中,从将被解码的相应的比特流的头信息查找解码模式,并且如果解码模式是低能量模式,则通过使用比特流头的概率模型信息来获得码元的概率;和
通过检查指示码元的解码是否完成的歧义来确定是否继续解码,
其中,确定是否继续解码的步骤包括:
计算K,假设K为下式的右侧的值:
根据K的值确定是否继续解码,其中,在这些等式中,v1表示在截去后剩余的有效比特流的值,v2表示在截去后截去的比特流的值,dummy表示v2的比特数,freq表示码元的概率值,high和low分别表示码元的概率值存在的范围的上限和下限;
如果K等于或大于2dummy-1,则将码元解码为1,如果K等于或小于0,则将码元解码为0;和
如果K在0和2dummy-1之间,则确定歧义发生,并相应地终止解码。
18、一种截去可分级数据比特流的方法,所述方法包括:
从比特流的头解析比特流的长度;
通过读取比特流计算与目标比特率相应的字节;
使用计算的目标字节和实际比特数之间较小的值改变比特流长度;和
基于所述比特流和目标长度存储并发送截去的比特流,
其中,使用下面的等式获得目标字节:
target_bits=(int)(target_bitrate/2*1024.*osf/sampling_rate+0.5)-16;和
target_bytes=(target_bits+7)/8;
其中,target_bitrate表示以比特/秒为单位的期望的目标比特率,sampling_rate表示以Hz为单位的输入音频信号的采样频率,osf表示具有1、2和4中的任意一个值的过采样因数。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US64311805P | 2005-01-12 | 2005-01-12 | |
US60/643,118 | 2005-01-12 | ||
US60/670,643 | 2005-04-13 | ||
US60/673,363 | 2005-04-21 | ||
KR1020050110878 | 2005-11-18 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910204741.0A Division CN101673546B (zh) | 2005-01-12 | 2006-01-12 | 算术解码方法和设备及截去音频数据比特流的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101103531A CN101103531A (zh) | 2008-01-09 |
CN100568741C true CN100568741C (zh) | 2009-12-09 |
Family
ID=39036785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006800021444A Expired - Fee Related CN100568741C (zh) | 2005-01-12 | 2006-01-12 | 算术解码方法和设备及截去音频数据比特流的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100568741C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303731B (zh) * | 2023-05-22 | 2023-07-21 | 四川互慧软件有限公司 | 医院标准主数据的对码方法、装置及电子设备 |
-
2006
- 2006-01-12 CN CNB2006800021444A patent/CN100568741C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101103531A (zh) | 2008-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101432610B (zh) | 使用有损编码的数据流和无损扩展数据流对源信号进行无损编码的方法以及设备 | |
EP2439737B1 (en) | Compression coding and decoding method, coder, decoder and coding device | |
KR100946057B1 (ko) | 데이터 프레임에 코딩된 부가 데이터의 존재 결정 | |
KR20070110311A (ko) | 데이터의 중요도에 따라 변형된 데이터 스트림을 생성하는장치 및 그 데이터 스트림을 해석하는 장치 | |
US20120065753A1 (en) | Audio signal encoding and decoding method, and apparatus for same | |
CN101790756A (zh) | 瞬态检测器以及用于支持音频信号的编码的方法 | |
RU2740688C1 (ru) | Обратно совместимая интеграция методов высокочастотного восстановления для аудиосигналов | |
KR20150087226A (ko) | 부호화 모드 결정방법 및 장치, 오디오 부호화방법 및 장치와, 오디오 복호화방법 및 장치 | |
CN102047336A (zh) | 用于产生或截除或改变包括至少一个报头部分在内的基于帧的比特流格式文件的方法和设备以及相应数据结构 | |
US20050091066A1 (en) | Classification of speech and music using zero crossing | |
CN101673546A (zh) | 算术解码方法和设备及截去音频数据比特流的方法和设备 | |
CN101208741A (zh) | 一种适用于数字信号短时相关性模型之间的互用性的方法 | |
EP2251981A1 (en) | Method and apparatus for coding and decoding | |
CN100568741C (zh) | 算术解码方法和设备及截去音频数据比特流的方法和设备 | |
CN101278485B (zh) | 提供可分级bsac音频数据的算术解码的方法和装置 | |
CN101540612B (zh) | 编码、解码系统、方法及装置 | |
RU2832121C1 (ru) | Декодирование битовых аудиопотоков с метаданными расширенного копирования спектральной полосы по меньшей мере в одном заполняющем элементе | |
KR101001745B1 (ko) | 스케일러블 BSAC(Bit Sliced Arithmetic Coding) 오디오 데이터 산술복호화 방법 및 장치 | |
US20090063161A1 (en) | Method and apparatus for encoding and decoding continuation sinusoidal signal of audio signal | |
KR20070021287A (ko) | 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법 | |
UA119808C2 (uk) | Декодування бітових потоків аудіо з метаданими розширеного копіювання спектральної смуги в щонайменше одному заповнюючому елементі | |
Kwong et al. | A simple MDCT-based speech coder for Internet applications | |
MXPA06009370A (en) | Coding model selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091209 Termination date: 20210112 |