CN1741393A - 一种音频编码中比特分配的方法 - Google Patents

一种音频编码中比特分配的方法 Download PDF

Info

Publication number
CN1741393A
CN1741393A CNA200510102978XA CN200510102978A CN1741393A CN 1741393 A CN1741393 A CN 1741393A CN A200510102978X A CNA200510102978X A CN A200510102978XA CN 200510102978 A CN200510102978 A CN 200510102978A CN 1741393 A CN1741393 A CN 1741393A
Authority
CN
China
Prior art keywords
scale factor
value
effective
band
scfgain
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.)
Granted
Application number
CNA200510102978XA
Other languages
English (en)
Other versions
CN100459436C (zh
Inventor
邓昊
冯宇红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB200510102978XA priority Critical patent/CN100459436C/zh
Publication of CN1741393A publication Critical patent/CN1741393A/zh
Application granted granted Critical
Publication of CN100459436C publication Critical patent/CN100459436C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种可有效降低运算量、保证编码效率的音频编码中比特分配的方法,应用于基于感知准则的音频编码器中,包括如下步骤:(1)根据尺度因子带的量化噪声小于掩蔽阈值的限制条件,由掩蔽阈值估计一帧信号内所有尺度因子带的有效尺度因子的初值;(2)调整各个有效尺度因子,包括根据有效尺度因子的下限值调整步骤,并当步骤(1)中所获得的有效尺度因子的初值小于所述下限值时,取下限值作为该有效尺度因子的值;(3)根据所有有效尺度因子的取值,获得全局尺度因子和各个尺度因子带的尺度因子;(4)进行码率控制,具体是指根据码率限制条件,调整全局尺度因子,直到熵编码所需比特数小于可用比特数。

Description

一种音频编码中比特分配的方法
技术领域
本发明涉及一种基于感知的音频编码技术,特别是一种音频编码中比特分配的方法。
技术背景
在音频***的设计中,一种声音数据压缩编码的方法是利用人的听觉***的特性,使用心理声学模型(psychoacoustic model)来达到压缩声音数据的目的,这种压缩编码称为感知音频编码(perceptual audio coding)。心理声学模型中一个基本的概念就是听觉***中存在一个听觉阈值,低于这个阈值的声音信号就听不到,因此满足量化误差小于掩蔽阈值条件时,虽然是有损编码,但可达到感知透明。掩蔽阈值的取值与特定音频信号的时频特性有关。
进入20世纪80年代之后,尤其最近几年,人类在利用自身的听觉***的特性来压缩声音数据方面取得了很大的进展,先后制定了MPEG-1Audio、MPEG-2Audio、MPEG-2AAC和Dolby AC-3等标准。它们都是利用人的听觉***的特性来压缩数据。
下面以MPEG-2AAC的音频编码算法为例详细分析。
ISO 13818-7MPEG-2AAC(Advanced Audio Coding)是一种高效的感知音频编码算法,它的简化的基本结构框图如图1所示。其余基于感知准则的音频编码器的组成模块和编码过程与此类似。
其中,时频映射模块采用MDCT(modified discrete cosine transform,改进离散余弦变换)变换将输入的一帧音频时域信号转化为频域谱系数;心理声学模型分析模块依据人耳的听觉特性计算出掩蔽阈值;比特分配模块根据掩蔽阈值确定尺度因子带之间的比特分配方案,尽量保证量化和熵编码模块输出的谱系数与原始谱系数之间的差值(即量化误差)小于掩蔽阈值,从而达到重建信号感知透明的目的;比特流复用模块将谱系数的熵编码值和有关边信息按规范指定的语法格式写入码流。
AAC中谱系数的量化公式为:
X quant ( k ) = nint ( | X ( k ) 3 4 | 2 3 16 · scfGain ( n ) - 0.0946 ) - - - ( 1 )
逆量化公式为:
X invquant ( k ) = sgn ( X ( k ) ) · ( X quant ( k ) · 2 3 16 · scfGain ( n ) ) 4 3 - - - ( 2 )
一个尺度因子带内的量化噪声为:
P Q ( n ) = Σ k - k min ( n ) k max ( n ) Q 2 ( k ) - - - ( 3 )
= Σ k = k min ( n ) k max ( n ) ( X ( k ) - X invquant ( k ) ) 2
= Σ k = k min ( n ) k max ( n ) ( ( X quant ( k ) · 2 3 16 scfGain ( n ) ) 4 3 - X ( k ) ) 2
上式中,
n为尺度因子带序号,k为谱系数序号;
sgn()表示取符号,nint()表示带四舍五入的取整;
kmin(n),kmax(n)分别为n号尺度因子带内谱系数的最小、最大序号
X(k):量化前谱系数值;
Xquant(k):X(k)的量化值;
Xinvquant(k):X(k)的逆量化值;
scfGain(n)=globalGain-scf(n),globalGain为公共尺度因子,作用于一帧信号内的全体尺度因子带,scf(n)为n号尺度因子带的尺度因子。
由(1)式可以看出,AAC使用了非均匀量化器(指数量化器),量化步长由有效尺度因子scfGain(n)确定。
比特分配是通过确定最佳scfGain(n)(含globalGain,scf(n))来进行的。尺度因子scfGain(n)确定了量化一个尺度因子带内的谱系数时采用的量化步长,同时也就确定了该尺度因子带的量化噪声和谱系数的熵编码所需的比特数。按照率失真理论,可知一般量化步长越小,量化噪声也越小,但对谱系数的量化值进行熵编码需要的比特数也越多。因此,比特分配模块是在有限可用比特数和量化噪声需小于掩蔽阈值这两个限制条件下为各尺度因子带搜索最佳的尺度因子。
AAC规范中给出了一种被广泛使用的基于双层嵌套循环(two-loop)的比特分配方案:内层循环为码率控制循环,它的任务是调整globalGain,重新对谱系数进行量化和熵编码,统计对谱系数的量化值进行熵编码所需比特数,直到所需比特数小于可用比特数;外层循环为失真控制循环,它的任务是调整尺度因子scf(n),尽可能的使得各尺度因子带的量化噪声低于掩蔽阈值,内层循环为其所调用。
双层嵌套循环的一种具体实施方案如图2、3所示。由图中可以看出,基于双层嵌套循环(two-loop)的比特分配方案具有较高的计算复杂度:内层循环的复杂度主要在于对谱系数进行非均匀量化和熵编码的过程;外层循环的复杂度则在于对量化后的谱系数进行逆量化和计算量化噪声的过程;内层循环嵌套在外层循环之中,运行次数较多。此外,在码率较低时,外层循环的循环次数会较大,甚至永远达不到循环结束的条件,而只能靠设置循环次数的上限值来结束循环。双层嵌套循环的比特分配过程一般是高质量AAC编码器中运算量最大的部分,而且编码不同类型的音频信号,同一段音频信号的不同帧时,该过程所需运算量的变化较为剧烈。在实际的操作过程中,一般可以采用以下方法减少运算量:在进入循环之前计算并储存量化公式(1)中的 项;如果外层循环没有改变尺度因子scf(n),则在随后的内层循环中,n号尺度因子带的相关信息采用上一次内层循环的结果,无需重复计算。在有的应用场合中,运算复杂度和编码质量都是重要的考量因素,这时上述的基于双层嵌套循环(two-loop)的比特分配方案就显得过于复杂,而普通的优化方法不能从根本上解决这种分配方案结构本身的复杂性。
发明内容
本发明的目的是:针对现有技术的不足,提供一种简单合理,可有效降低运算量,提高运行速度,同时保证编码效率的适用于感知音频编码的比特分配方法。
为了解决上述技术问题,本发明所采取的技术方案是:一种音频编码中比特分配的方法,应用于基于感知准则的音频编码器中,包括如下步骤:
(1)、获得一帧信号内所有尺度因子带的有效尺度因子的初值,具体为根据尺度因子带的量化噪声小于掩蔽阈值的限制条件,由掩蔽阈值估计有效尺度因子的初值;
(2)、调整各个有效尺度因子,包括根据有效尺度因子的下限值调整步骤,并当步骤(1)中所获得的有效尺度因子的初值小于所述下限值时,取下限值作为该有效尺度因子的值;
(3)、获得全局尺度因子值和尺度因子值,具体是指根据所有有效尺度因子的取值,获得全局尺度因子和各个尺度因子带的尺度因子;
(4)、进行码率控制,具体是指根据码率限制条件,调整全局尺度因子,直到熵编码所需比特数小于可用比特数。
进一步的,所述步骤(2)中的根据有效尺度因子的下限值调整步骤具体可以为:根据预先设定的谱系数量化值的最大值以及某一尺度因子带中谱系数的绝对值的最大值,获得该尺度因子带中有效尺度因子的下限值,并当步骤(1)中所获得的该尺度因子带的有效尺度因子的初值小于该下限值时,取下限值作为该有效尺度因子的值。
优选的,所述预先设定的谱系数量化值的最大值为8191,并且从某一尺度因子带中比较获得的谱系数的绝对值的最大值为max_spec_coeff,则所述有效尺度因子的下限值由以下公式计算得到:
          scfGain_min(n)=ceil(-69.3+13.3·log(max_sepc_coeff)).
其中,scfGain_min(n)为第n号尺度因子带的有效尺度因子的下限值,
ceil():向上取整;
max_spec_coeff为第n号尺度因子带中的谱系数绝对值最大值;
Log():以10为底的对数。
进一步的,所述步骤(1)中,有效尺度因子的初值可以根据下面的公式计算所得:
scfGain ( n ) = floor ( 8 3 log ( 2 ) · ( log ( f ( | ϵ ( k ) | ) T ( n ) ) - log ( sum _ abs _ spectrum ( n ) ) ) )
其中:scfGain(n)表示n号尺度因子带的有效尺度因子,n为尺度因子带序号;
floor():向下取整函数;
|ε(k)|:圆整误差,理论最大值为0.5;
f(|ε(k)|):与|ε(k)|的取值相关的一个常量,其取值范围为∈(0,0.5);
T(n)表示对应第n号尺度因子带的掩蔽阈值;
sum _ abs _ spectrum ( n ) = Σ k = k min ( n ) k = k max ( n ) | X ( k ) | 1 2 , 其中X(k)表示量化前谱系数值,k为谱系数序号,kmin(n)、kmax(n)分别为n号尺度因子带内谱系数的最小、最大序号;
log():以10为底的对数。
进一步的,所述步骤(3)具体可以为:首先选择全体有效尺度因子中的最大值作为作用于该一帧信号内全体尺度因子带的全局尺度因子,然后分别将该全局尺度因子与其中某一尺度因子带的有效尺度因子之间的差值作为该尺度因子带的尺度因子。
进一步的,所述步骤(3)中还可包括限制尺度因子差值的范围的步骤,即首先查找所有有效尺度因子的最小值,然后调整所有有效尺度因子的值,使其小于所述最小值与预先设定的熵编码所要求的最大输入值的绝对值之和。
进一步的,所述步骤(4)具体可以包括:
(40)、将各个谱系数进行非均匀量化,获得对应的谱系数量化值;
(41)、将谱系数量化值进行熵编码,并统计使用的比特数;
(42)、判断所统计的使用比特数是否小于可用比特数,如果是,则结束整个流程,否则增加公共尺度因子的值,并返回步骤(40)。
优选的,所述步骤(40)中,根据公式
X quant ( k ) = nint ( | X ( k ) 3 4 | 2 3 16 scfGain ( n ) - 0.0946 ) 计算谱系数量化值,其中:
n为尺度因子带序号,k为谱系数序号;
nint()表示带四舍五入的取整;
X(k):量化前谱系数值;
Xquant(k):X(k)的量化值;
scfGain(n)=globalGain-scf(n),globalGain为公共尺度因子,scf(n)为n号尺度因子带的尺度因子。
优选的,所述步骤(41)中还可将各个尺度因子带的尺度因子进行熵编码,从而统计得到的使用的比特数为谱系数的比特数和尺度因子的比特数之和。
进一步的,所述步骤(2)中,还可包括微调各个有效尺度因子的步骤,具体为:如果根据当前所得到的有效尺度因子所获得的量化误差已经小于掩蔽阈值,则增大该有效尺度因子;如果根据当前所得到的有效尺度因子所获得的量化误差大于掩蔽阈值,则增大或减小有效尺度因子,以减少量化误差。
进一步的,所述步骤(2)中,还可包括平滑各有效尺度因子的步骤,即计算相邻尺度因子带的有效尺度因子之间的差值,从而调整其中差值大的有效尺度因子的值,其中调整的依据是调整后的有效尺度因子满足以下三个条件:
条件a、满足感知透明条件;
条件b、相邻尺度因子带的有效尺度因子的差值的绝对值小于熵编码所要求的最大输入值的绝对值;
条件c、调整后熵编码相关尺度因子带的尺度因子和谱系数所需的比特数减少。
优选的,所述平滑有效尺度因子的步骤包括:
A、计算所有相邻有效尺度因子之间的差值的绝对值;
B、定位相临差值绝对值的最大值,即在所有尺度因子带中搜索第n0个尺度因子带,满足:|scfGain(n0+1)-scfGain(n0)|=max(|scfGain(n+1)-scfGain(n)|),如果n0与上一次搜索结果相同,则转而定位差值的第二大值;
C、将scfGain(n0+1)或scfGain(n0)重置为相临两有效尺度因子的平均值;
D、比较重置后的相邻两个有效尺度因子之间的差值绝对值是否大于60,如果是,则查找获得所有有效尺度因子中的最小值,并使所述相邻两个有效尺度因子中较大的那个有效尺度因子的值等于该最小值与60之和;
E、比较步骤C进行前和步骤D进行后的熵编码相关尺度因子带的尺度因子和谱系数所需要的比特数,如果步骤D进行后所需要的比特数较少,则执行步骤F,否则跳转至步骤A;
F、判断步骤D进行后是否依然满足感知透明条件,如果是则接受本次平滑有效尺度因子的调整结果,否则放弃本次平滑调整的结果;
G、如果总的循环运行次数小于一预先设定的值,则跳转至步骤A
在上述技术方案中,本发明从谱系数的量化关系式出发,考察量化噪声的取值范围,将现有技术中的双层嵌套循环结构简化为两个串行的单层循环结构,从结构本身降低了比特分配模块的复杂度。并且,本发明的方法由掩蔽阈值直接估计有效尺度因子的初值,再根据有效尺度因子获得各个尺度因子带的尺度因子和全局尺度因子。与现有技术中采用的循环调整方法相比,大大简化了计算步骤,降低了计算量。总之,相对现有技术,本发明具有算法结构简单合理、计算量小、计算循环次数少,复杂度低,可有效提高音频编码的整体运行速度并同时保证较高的编码效率等特点。
附图说明
图1为现有技术中MPEG-2AAC简化结构框图;
图2为现有技术中MPEG-2AAC进行比特分配时的内层循环框图;
图3为现有技术中MPEG-2AAC进行比特分配时的外层循环框图;
图4为本发明的音频编码中比特分配方法的一种较佳实施例的流程图。
具体实施方式
下面将结合说明书附图及具体实施例对本发明作进一步详细说明。
为了清楚的说明本发明,首先有必要说明本发明形成的基本思路。
令量化步长
step _ size ( n ) = 2 3 16 scfGain ( n ) - - - ( 4 )
考察式(1),(2)和(3)式,由于取整操作的性质,可知量化噪声能量PQ(n)不是量化步长step_size(n)的严格意义上的单调函数。但如前所述,一般的有step_size(n)越大,PQ(n)越大。感知透明的标准是各尺度因子带的量化噪声能量PQ(n)小于掩蔽阈值T(n),这相当于为step_size(n)设了一个上限值;同时step_size(n)越小,Xquant(k)的值越大,熵编码所需的比特数也就越多,因此step_size(n)的值也应该尽可能的大。由(4)式,step_size(n)由有效尺度因子scfGain(n)唯一决定,可以先考虑量化噪声小于掩蔽阈值这个限制条件来选择scfGain(n),使得PQ(n)的理论最大值(或估计值)小于T(n),然后从scfGain(n)中分离出globalGain和scf(n),再考虑码率限制条件来调整globalGain。这样双层嵌套循环的比特分配模式就变为了串行的先失真控制循环,再码率控制循环的模式。
基于上述基本原理,本发明的给出针对MPEG-2 AAC标准的一种较佳实施例如下:
步骤一,获得一帧信号内所有尺度因子带的有效尺度因子的初值,具体为根据尺度因子带的量化噪声小于掩蔽阈值的限制条件,由掩蔽阈值估计有效尺度因子的初值。
由(1)式,令
| X ( k ) | 3 4 step _ size ( n ) - 0.0946 = X quant ( k ) - ϵ ( k ) - - - ( 5 )
其中ε(k)为圆整误差。
由于(1)使用的是带四舍五入的取整,因此有
|ε(k)|≤0.5                                (6)
则(5)即为
X quant ( k ) = | X ( k ) | 3 4 Step _ size ( n ) + ϵ ′ ( k ) - - - ( 7 )
上式中,
ε′(k)=ε(k)-0.0946                        (8)
(7)代入(2),可得:
X invquant ( k ) = sgn ( X ( k ) ) · ( X quant ( k ) · step _ size ( n ) ) 4 3
= sgn ( X ( k ) ) · ( | X ( k ) | 4 3 + step _ size ( n ) · ϵ ′ ( k ) ) 4 3 - - - ( 9 )
考虑式(7),在实际的量化过程中一般有Xquant(k)>>ε′(k),也即有 | X ( k ) | 4 3 > > step _ size ( n ) · ϵ ′ ( k ) . 则由牛顿多项式展开理论
( x + y ) r = Σ k = 0 ∞ r k x k y r - k ,
其中 r k = 1 k ! Π n = o k - 1 ( r - n ) ,可对(9)进行一阶展开近似得:
X invquant ( k ) ≈ sgn ( X ( k ) ) · ( | X ( k ) | + 4 3 step _ size ( n ) ϵ ′ ( k ) · | X ( k ) | 1 4 ) - - - ( 10 )
由上式可得量化误差能量为:
Q 2 ( k ) ≈ 16 9 step _ size 2 ( n ) | ϵ ′ ( k ) | 2 | X ( k ) | 1 2 - - - ( 11 )
结合(6)和(8),有
|ε′(k)|≤0.5946                                  (12)
结合(12)、(11)和(3),可知一个尺度因子带内的噪声能量的上限值为:
P Q ( n ) ≤ 0.63 · step _ size 2 ( n ) Σ k = k min ( n ) k = k max ( n ) | X ( k ) | 1 2 - - - ( 13 )
(13)式给出了量化步长(也即尺度因子scfGain(n))与量化噪声的理论上限值之间的关系。
而感知透明的条件为
                PQ(n)≤T(n)                         (14)
结合(13)、(14)和(4),得只要满足
0.63 · 2 3 8 scfGain ( n ) · Σ k = k min ( n ) k = k max ( n ) | X ( k ) | 1 2 ≤ T ( n ) - - - ( 15 )
则可达到感知透明。如前所述,考虑可用比特数有限的条件,scfGain(n)应该尽可能的大,因此由掩蔽阈值可直接定出一个scfGain(n)的初值为:
scfGain ( n ) = floor ( 8 3 log ( 2 ) · ( log ( 1.59 T ( n ) ) - log ( sum _ abs _ spectrum ( n ) ) ) ) - - - ( 16 )
其中
sum _ abs _ spectrum ( n ) = Σ k = k min ( n ) k = k max ( n ) | X ( k ) | 1 2 ,
log():以10为底的对数,下同。
圆整误差|ε(k)|的取值在实际的量化过程中是不确定的,将其设为理论最大值0.5对应(16)给出的表达式。显然这样确定的scfGain(n)比较保守(偏小),不利于提高编码效率。在码率较低的情况下可以将|ε(k)|设得小一些,或者对应低频部分的尺度因子带该值设得大一些,对应高频部分的尺度因子带设得小一些。此时(16)可改写为:
scfGain = floor ( 8 3 log ( 2 ) · ( log ( f ( | ϵ ( k ) | ) T ( n ) ) - log ( sum _ abs _ spectrum ( n ) ) ) ) - - - ( 17 )
floor():向下取整。
f(|ε(k)|):与|ε(k)|的取值相关的一个常量。
因此,在实际应用中,量化前谱系数X(k)由时频映射模块给出,掩蔽阈值T(n)由心理声学模型分析模块给出,因此根据式(17)即可计算获得一帧音频信号内所有尺度因子带的有效尺度因子的初值。
步骤二,调整各个有效尺度因子。
所述的调整步骤中至少包括根据下限值调整的步骤。也可以包括微调步骤和平滑步骤。
①根据下限值调整步骤
该步骤是根据预先设定的谱系数量化值的最大值以及某一尺度因子带中谱系数的绝对值的最大值,获得该尺度因子带中有效尺度因子的下限值,并当步骤一中所获得的该尺度因子带的有效尺度因子的初值小于该下限值时,取下限值作为该有效尺度因子的值。
本实施例由于针对MPEG-2AAC标准,该标准中限制了谱系数量化值的最大值为8191。因此设从第n号尺度因子带中谱系数的绝对值中比较获得的最大值为max_spec_coeff,由(1)可知scfGain(n)的下限值为:
scfGain_min(n)=ceil(-69.3+13.3·log(max_sepc_coeff))   (18)
ceil():向上取整。
②微调scfGain(n)
即以一定调整步长微调有效尺度因子的值,使其既可保证满足感知透明条件,还可保证熵编码所需的比特数尽量少。
如前所述,由于|ε(k)|取值的不确定性,由式(17)得到的scfGain(n)初始值可能并不能保证感知透明条件(14),或者虽然满足(14),但scfGain(n)的取值偏小造成了欠量化,降低了编码效率。因此在由(17)和(18)得到scfGain(n)的初值后,应该仿照现有技术中的外层循环的处理方法调整scfGain(n):如果量化误差已经小于掩蔽阈值,尝试增大scfGain(n)来节省熵编码所需的比特数,但此时应同时保证量化误差小于掩蔽阈值或稍微大一些;如果量化误差大于掩蔽阈值,由于量化噪声能量PQ(n)不是量化步长step_size(n)的严格意义上的单调函数,可以同时尝试减小或增大scfGain(n)来减少量化误差。这时scfGain(n)的调整步长可以设得较小,调整的次数也无需很多。
另外,在调整的过程中可以在每获得一个新的有效尺度因子的时候,判断其是否符合前述的步骤①中式(18)的下限值,如果不符合,可以将其按照步骤①的调整方法调整。
③平滑scfGain(n)
即计算相邻尺度因子带的有效尺度因子之间的差值,从而调整其中差值大的有效尺度因子的值,其中调整的依据是调整后的有效尺度因子满足以下三个条件:
条件a、满足感知透明条件;
条件b、相邻尺度因子带的有效尺度因子的差值的绝对值小于熵编码所要求的最大输入值的绝对值;
条件c、调整后熵编码相关尺度因子带的尺度因子和谱系数所需的比特数减少。
AAC中,相临尺度因子的差值的熵编码值被传递到解码端。为了节省比特,可以尝试缩小尺度因子之间的差值。一个简单的实施方法描述如下:
A、计算所有相邻有效尺度因子之间的差值的绝对值;
B、定位相临差值绝对值的最大值,设共有N个尺度因子带,搜索找到n0满足:
      |sfbGain(n0+1)-sfbGain(n0)|=min(|sfbGain(n+1)-sfbGain(n)||n<N-1)
如果n0与上一次搜索结果相同,则转而定位差值的第二大值;
C、将scfGain(n0+1)或scfGain(n0)重置为相临两有效尺度因子的平均值;
D、由于AAC使用12号码书对尺度因子的差值进行熵编码,该码书要求输入值(差值)的绝对值不超过60。因此比较重置后的相邻两个有效尺度因子之间的差值绝对值是否大于60,如果是,则查找获得所有有效尺度因子中的最小值,并使所述相邻两个有效尺度因子中较大的那个有效尺度因子的值等于该最小值与60之和;
E、比较步骤C进行前和步骤D进行后的熵编码相关尺度因子带的尺度因子和谱系数所需要的比特数,如果步骤D进行后所需要的比特数较少,则执行步骤F,否则跳转至步骤A;
F、判断步骤D进行后是否依然满足感知透明条件,如果是则接受本次平滑有效尺度因子的调整结果,否则放弃本次平滑调整的结果;
G、如果总的循环运行次数小于一预先设定的值,则跳转至步骤A。所述的预先设定的值是用于控制循环次数,具体实施时可以根据需要而定,一般可设置一个较小值。
以上的操作步骤中可以在每获得一个新的有效尺度因子的时候,判断其是否符合前述的步骤①中式(18)的下限值,如果不符合,可以将其按照步骤①的调整方法调整。
步骤三,获得全局尺度因子值和尺度因子值,具体是指根据所有有效尺度因子,获得全局尺度因子和各个尺度因子带的尺度因子。
①限制尺度因子差值的范围
由于本实施例中AAC使用12号码书对尺度因子的差值进行熵编码,该码书要求输入值(差值)的绝对值不超过60。一种简单的调整方法是将所有scfGain(n)的值限制为(scfGain_min+60)以下。scfGain_min为scfGain(n)中的最小值。
②分离scf(n)和scfGain(n)
选择一帧信号中的scfGain(n)中的最大值scfGain_max作为globalGain,尺度因子scf(n)设为scfGain(n)与globalGain的差值。即:
globalGain = scfGain _ max scf ( n ) = globalGain - scfGain ( n ) - - - ( 19 )
步骤四、进行码率控制,具体是指根据码率限制条件,调整全局尺度因子,直到熵编码所需比特数小于可用比特数。
这个步骤类似于图2描述的内层循环过程。即由前述三大步骤确定尺度因子后,统计熵编码谱系数量化值所需的比特数,如果需求比特数超过可用比特数,逐步增大globalGain以满足码率限制条件。
其流程为:
(40)、将各个谱系数进行非均匀量化,获得对应的谱系数量化值;具体计算方法是:根据公式
X quant ( k ) = nint ( | X ( k ) 3 4 | 2 3 16 scfGain ( n ) - 0.0946 )
计算谱系数量化值,其中:
n为尺度因子带序号,k为谱系数序号;
nint()表示带四舍五入的取整;
X(k):量化前谱系数值;
Xquant(k):X(k)的量化值;
scfGain(n)=globalGain-scf(n),globalGain为公共尺度因子,scf(n)为n号尺度因子带的尺度因子。
(41)、将谱系数量化值进行熵编码,并统计使用的比特数;
(42)、判断所统计的使用比特数是否小于可用比特数,如果是,则结束整个流程,否则增加公共尺度因子的值,并返回步骤(40)。
作为本实施例的另一种实施方式,所述步骤(41)中还可以将各个尺度因子带的尺度因子进行熵编码,从而统计得到的使用的比特数为谱系数的比特数和尺度因子的比特数之和。
从上述分析中,可知本实施例的步骤一和步骤二类似于失真控制循环,步骤四类似于码率控制循环,步骤三为其中的过渡步骤。即正如前所述,本实施例的这种比特分配方法采用的是串行的先失真控制循环,再码率控制循环的模式。
该种方法利用式(17)直接由掩蔽阈值估计出尺度因子的初值,而两种循环模式也是独立进行,因此与采用two-loop的比特分配方法相比,这种方法具有结构简单,复杂度低,运行速度快等优点。
上述较佳实施例给出的是本发明针对MPEG-2AAC标准而具体实施的方法流程。事实上,本发明方法可以应用到其它基于感知的音频编码技术中,本领域内的技术人员应当得知,本发明方法应用到其它基于感知的音频编码技术中时,只需要根据其谱系数量化公式、量化噪声计算公式等相关关系式,按照本实施例给出的推导过程相应得到根据掩蔽阈值估计有效尺度因子的关系式、并可进一步获得用于调整有效尺度因子的下限值。其中涉及的预先设定的值,如预先设定的谱系数量化值的最大值、预先设定的熵编码所要求的最大输入值的绝对值之和,只需根据不同的音频编码技术中规定的标准值设定即可。
因此,本发明的保护范围不局限于具体实施例的方案,而应以权利要求书为准。

Claims (12)

1、一种音频编码中比特分配的方法,应用于基于感知准则的音频编码器中,包括如下步骤:
(1)、获得一帧信号内所有尺度因子带的有效尺度因子的初值,具体为根据尺度因子带的量化噪声小于掩蔽阈值的限制条件,由掩蔽阈值估计有效尺度因子的初值;
(2)、调整各个有效尺度因子,包括根据有效尺度因子的下限值调整步骤,并当步骤(1)中所获得的有效尺度因子的初值小于所述下限值时,取下限值作为该有效尺度因子的值;
(3)、获得全局尺度因子值和尺度因子值,具体是指根据所有有效尺度因子的取值,获得全局尺度因子和各个尺度因子带的尺度因子;
(4)、进行码率控制,具体是指根据码率限制条件,调整全局尺度因子,直到熵编码所需比特数小于可用比特数。
2、如权利要求1所述方法,其特征在于:所述步骤(2)中的根据有效尺度因子的下限值调整步骤具体为:根据预先设定的谱系数量化值的最大值以及某一尺度因子带中谱系数的绝对值的最大值,获得该尺度因子带中有效尺度因子的下限值,并当步骤(1)中所获得的该尺度因子带的有效尺度因子的初值小于该下限值时,取下限值作为该有效尺度因子的值。
3、如权利要求2所述方法,其特征在于:所述预先设定的谱系数量化值的最大值为8191,并且从某一尺度因子带中比较获得的谱系数的绝对值的最大值为max_spec_coeff,则所述有效尺度因子的下限值由以下公式计算得到:
        scfGain_min(n)=ceil(-69.3+13.3·log(max_sepc_coeff)),
其中,scfGain_min(n)为第n号尺度因子带的有效尺度因子的下限值,
ceil():向上取整;
max_spec_coeff为第n号尺度因子带中的谱系数绝对值最大值;
Log():以10为底的对数。
4、如权利要求1、2或3所述方法,其特征在于:所述步骤(1)中,有效尺度因子的初值是根据下面的公式计算所得:
scfGain ( n ) = floor ( 8 3 log ( 2 ) · ( log ( f ( | ϵ ( k ) | ) T ( n ) ) - log ( sum _ abs _ spectrum ( n ) ) ) )
其中:scfGain(n)表示n号尺度因子带的有效尺度因子,n为尺度因子带序号;
floor():向下取整函数;
|ε(k)|:圆整误差,理论最大值为0.5;
f(|ε(k)|):与|ε(k)|的取值相关的一个常量,其取值范围为∈(0,0.5);
T(n)表示对应第n号尺度因子带的掩蔽阈值;
sum _ abs _ spectrum ( n ) = Σ k = k min ( n ) k = k max ( n ) | X ( k ) | 1 2 , 其中X(k)表示量化前谱系数值,k
为谱系数序号,kmin(n)、kmax(n)分别为n号尺度因子带内谱系数的最小、最大序号;
log():以10为底的对数。
5、如权利要求4所述方法,其特征在于:所述步骤(3)具体为:首先选择全体有效尺度因子中的最大值作为作用于该一帧信号内全体尺度因子带的全局尺度因子,然后分别将该全局尺度因子与其中某一尺度因子带的有效尺度因子之间的差值作为该尺度因子带的尺度因子。
6、如权利要求5所述方法,其特征在于:所述步骤(3)中还包括限制尺度因子差值的范围的步骤,即首先查找所有有效尺度因子的最小值,然后调整所有有效尺度因子的值,使其小于所述最小值与预先设定的熵编码所要求的最大输入值的绝对值之和。
7、如权利要求4所述方法,其特征在于:所述步骤(4)具体包括:
(40)、将各个谱系数进行非均匀量化,获得对应的谱系数量化值;
(41)、将谱系数量化值进行熵编码,并统计使用的比特数;
(42)、判断所统计的使用比特数是否小于可用比特数,如果是,则结束整个流程,否则增加公共尺度因子的值,并返回步骤(40)。
8、如权利要求7所述方法,其特征在于:所述步骤(40)中,根据公式
X quant ( k ) = nint ( | X ( k ) 3 4 | 2 3 16 scfGain ( n ) - 0.0946 ) 计算谱系数量化值,其中:
n为尺度因子带序号,k为谱系数序号;
nint()表示带四舍五入的取整;
X(k):量化前谱系数值;
Xquant(k):X(k)的量化值;
scfGain(n)=globalGain-scf(n),globalGain为公共尺度因子,scf(n)为n号尺度因子带的尺度因子。
9、如权利要求8所述方法,其特征在于:所述步骤(41)中还将各个尺度因子带的尺度因子进行熵编码,从而统计得到的使用的比特数为谱系数的比特数和尺度因子的比特数之和。
10、如权利要求1所述方法,其特征在于:所述步骤(2)中,还包括微调各个有效尺度因子的步骤,具体为:如果根据当前所得到的有效尺度因子所获得的量化误差已经小于掩蔽阈值,则增大该有效尺度因子;如果根据当前所得到的有效尺度因子所获得的量化误差大于掩蔽阈值,则增大或减小有效尺度因子,以减少量化误差。
11、如权利要求1或10所述方法,其特征在于:所述步骤(2)中,还包括平滑各有效尺度因子的步骤,即计算相邻尺度因子带的有效尺度因子之间的差值,从而调整其中差值大的有效尺度因子的值,其中调整的依据是调整后的有效尺度因子满足以下三个条件:
条件a、满足感知透明条件;
条件b、相邻尺度因子带的有效尺度因子的差值的绝对值小于熵编码所要求的最大输入值的绝对值;
条件c、调整后熵编码相关尺度因子带的尺度因子和谱系数所需的比特数减少。
12、如权利要求11所述方法,其特征在于:所述平滑有效尺度因子的步骤包括:
A、计算所有相邻有效尺度因子之间的差值的绝对值;
B、定位相临差值绝对值的最大值,即在所有尺度因子带中搜索第n0个尺度因子带,满足:
|scfGain(n0+1)-scfGain(n0)|=max(|scfGain(n+1)-scfGain(n)|),
如果n0与上一次搜索结果相同,则转而定位差值的第二大值;
C、将scfGain(n0+1)或scfGain(n0)重置为相临两有效尺度因子的平均值;
D、比较重置后的相邻两个有效尺度因子之间的差值绝对值是否大于60,如果是,则查找获得所有有效尺度因子中的最小值,并使所述相邻两个有效尺度因子中较大的那个有效尺度因子的值等于该最小值与60之和;
E、比较步骤C进行前和步骤D进行后的熵编码相关尺度因子带的尺度因子和谱系数所需要的比特数,如果步骤D进行后所需要的比特数较少,则执行步骤F,否则跳转至步骤A;
F、判断步骤D进行后是否依然满足感知透明条件,如果是则接受本次平滑有效尺度因子的调整结果,否则放弃本次平滑调整的结果;
G、如果总的循环运行次数小于一预先设定的值,则跳转至步骤A。
CNB200510102978XA 2005-09-16 2005-09-16 一种音频编码中比特分配的方法 Expired - Fee Related CN100459436C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200510102978XA CN100459436C (zh) 2005-09-16 2005-09-16 一种音频编码中比特分配的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200510102978XA CN100459436C (zh) 2005-09-16 2005-09-16 一种音频编码中比特分配的方法

Publications (2)

Publication Number Publication Date
CN1741393A true CN1741393A (zh) 2006-03-01
CN100459436C CN100459436C (zh) 2009-02-04

Family

ID=36093635

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510102978XA Expired - Fee Related CN100459436C (zh) 2005-09-16 2005-09-16 一种音频编码中比特分配的方法

Country Status (1)

Country Link
CN (1) CN100459436C (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847413A (zh) * 2010-04-09 2010-09-29 北京航空航天大学 一种使用新型心理声学模型和快速比特分配实现数字音频编码的方法
CN101944361A (zh) * 2010-09-02 2011-01-12 北京中星微电子有限公司 一种比特分配方法及比特分配装置
CN101101755B (zh) * 2007-07-06 2011-04-27 北京中星微电子有限公司 一种音频编码的比特分配及量化方法及音频编码装置
CN101425293B (zh) * 2008-09-24 2011-06-08 天津大学 一种高效感知音频比特分配方法
CN101064106B (zh) * 2006-04-28 2011-12-28 意法半导体亚太私人有限公司 用于低复杂度高级音频编码的自适应速率控制算法
CN101494054B (zh) * 2009-02-09 2012-02-15 华为终端有限公司 一种音频码率控制方法及***
CN101866649B (zh) * 2009-04-15 2012-04-04 华为技术有限公司 语音编码处理方法与装置、语音解码处理方法与装置、通信***
CN101853663B (zh) * 2009-03-30 2012-05-23 华为技术有限公司 比特分配方法、编码装置及解码装置
CN102483924A (zh) * 2009-09-11 2012-05-30 斯灵媒体有限公司 使用通道间及时间冗余减少的音频信号编码
CN101377926B (zh) * 2007-08-31 2012-06-27 瑞昱半导体股份有限公司 加速量化循环程序功能的音频编码方法
US8255232B2 (en) 2007-07-31 2012-08-28 Realtek Semiconductor Corp. Audio encoding method with function of accelerating a quantization iterative loop process
CN105071815A (zh) * 2009-10-09 2015-11-18 汤姆森特许公司 算术编码或算术解码的方法和设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3515903B2 (ja) * 1998-06-16 2004-04-05 松下電器産業株式会社 オーディオ符号化のための動的ビット割り当て方法及び装置
CN1318904A (zh) * 2001-03-13 2001-10-24 北京阜国数字技术有限公司 一种实用的基于小波变换的声音编解码器
CN1461112A (zh) * 2003-07-04 2003-12-10 北京阜国数字技术有限公司 一种基于极小化全局噪声掩蔽比准则和熵编码的量化的音频编码方法
TWI231656B (en) * 2004-04-08 2005-04-21 Univ Nat Chiao Tung Fast bit allocation algorithm for audio coding

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064106B (zh) * 2006-04-28 2011-12-28 意法半导体亚太私人有限公司 用于低复杂度高级音频编码的自适应速率控制算法
CN101101755B (zh) * 2007-07-06 2011-04-27 北京中星微电子有限公司 一种音频编码的比特分配及量化方法及音频编码装置
US8255232B2 (en) 2007-07-31 2012-08-28 Realtek Semiconductor Corp. Audio encoding method with function of accelerating a quantization iterative loop process
CN101377926B (zh) * 2007-08-31 2012-06-27 瑞昱半导体股份有限公司 加速量化循环程序功能的音频编码方法
CN101425293B (zh) * 2008-09-24 2011-06-08 天津大学 一种高效感知音频比特分配方法
CN101494054B (zh) * 2009-02-09 2012-02-15 华为终端有限公司 一种音频码率控制方法及***
CN101853663B (zh) * 2009-03-30 2012-05-23 华为技术有限公司 比特分配方法、编码装置及解码装置
CN101866649B (zh) * 2009-04-15 2012-04-04 华为技术有限公司 语音编码处理方法与装置、语音解码处理方法与装置、通信***
CN102483924B (zh) * 2009-09-11 2014-05-28 斯灵媒体有限公司 使用通道间及时间冗余减少的音频信号编码
CN102483924A (zh) * 2009-09-11 2012-05-30 斯灵媒体有限公司 使用通道间及时间冗余减少的音频信号编码
CN105071815A (zh) * 2009-10-09 2015-11-18 汤姆森特许公司 算术编码或算术解码的方法和设备
US9973208B2 (en) 2009-10-09 2018-05-15 Dolby Laboratories Licensing Corporation Method and device for arithmetic encoding or arithmetic decoding
CN105071815B (zh) * 2009-10-09 2018-10-16 杜比国际公司 算术编码设备和算术解码设备
US10516414B2 (en) 2009-10-09 2019-12-24 Dolby Laboratories Licensing Corporation Method and device for arithmetic encoding or arithmetic decoding
US10848180B2 (en) 2009-10-09 2020-11-24 Dolby Laboratories Licensing Corporation Method and device for arithmetic encoding or arithmetic decoding
US11381249B2 (en) 2009-10-09 2022-07-05 Dolby Laboratories Licensing Corporation Arithmetic encoding/decoding of spectral coefficients using preceding spectral coefficients
US11770131B2 (en) 2009-10-09 2023-09-26 Dolby Laboratories Licensing Corporation Method and device for arithmetic encoding or arithmetic decoding
CN101847413A (zh) * 2010-04-09 2010-09-29 北京航空航天大学 一种使用新型心理声学模型和快速比特分配实现数字音频编码的方法
CN101847413B (zh) * 2010-04-09 2011-11-16 北京航空航天大学 一种使用新型心理声学模型和快速比特分配实现数字音频编码的方法
CN101944361A (zh) * 2010-09-02 2011-01-12 北京中星微电子有限公司 一种比特分配方法及比特分配装置

Also Published As

Publication number Publication date
CN100459436C (zh) 2009-02-04

Similar Documents

Publication Publication Date Title
CN1741393A (zh) 一种音频编码中比特分配的方法
CN1288625C (zh) 音频编码与解码设备及其方法
CN1131598C (zh) 可缩放的音频编码/解码方法和装置
CN1126265C (zh) 可伸缩的立体声音频编码/解码方法和装置
CN1702974A (zh) 用于对数字信号编码/解码的方法和设备
CN101057275A (zh) 矢量变换装置以及矢量变换方法
CN1146203C (zh) 用于音频编码的动态位分配装置和方法
CN1324558C (zh) 编码设备,解码设备以及音频数据分配***
CN1237506C (zh) 音响信号编码方法及设备、音响信号解码方法及设备
CN1765072A (zh) 多声道音频扩展支持
CN1233163C (zh) 多声道数字音频信号的压缩编码和解码设备及其方法
CN1689069A (zh) 声音编码设备和声音编码方法
CN1240978A (zh) 音频信号编码装置、解码装置及音频信号编码、解码装置
CN1677490A (zh) 一种增强音频编解码装置及方法
CN101048814A (zh) 编码装置、解码装置、编码方法及解码方法
CN1816847A (zh) 保真度优化的可变帧长编码
CN1677493A (zh) 一种增强音频编解码装置及方法
CN1310431C (zh) 用于编码音频信号的设备和方法
CN1890711A (zh) 将数字信号编码成可扩缩比特流的方法和对可扩缩比特流解码的方法
CN1795495A (zh) 音频编码设备、音频解码设备、音频编码方法和音频解码方法
CN1669074A (zh) 话音增强装置
CN1910655A (zh) 构造多通道输出信号或生成下混信号的设备和方法
CN1910657A (zh) 声频信号编码方法、声频信号解码方法、发送器、接收器和无线传声***
CN1787383A (zh) 变换、编码、逆变换和解码音频信号的方法和设备
CN101031961A (zh) 对编码信号进行处理

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090204

Termination date: 20120916