CN101308661A - 一种基于先进音频编码器的量化器码率失真控制方法 - Google Patents

一种基于先进音频编码器的量化器码率失真控制方法 Download PDF

Info

Publication number
CN101308661A
CN101308661A CNA2007101484543A CN200710148454A CN101308661A CN 101308661 A CN101308661 A CN 101308661A CN A2007101484543 A CNA2007101484543 A CN A2007101484543A CN 200710148454 A CN200710148454 A CN 200710148454A CN 101308661 A CN101308661 A CN 101308661A
Authority
CN
China
Prior art keywords
quantization step
paddy
band
subband
factorchange
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
CNA2007101484543A
Other languages
English (en)
Other versions
CN101308661B (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.)
ZTE Corp
Original Assignee
ZTE 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 ZTE Corp filed Critical ZTE Corp
Priority to CN2007101484543A priority Critical patent/CN101308661B/zh
Publication of CN101308661A publication Critical patent/CN101308661A/zh
Application granted granted Critical
Publication of CN101308661B publication Critical patent/CN101308661B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种基于先进音频编码器的量化器码率失真控制方法,包含如下处理过程:A.由待编码的码流获得子带可分配比特数的预测值,根据子带可分配比特数的预测值计算子带平均采样可分配比特数;B.由上述子带平均采样可分配比特数通过预定原则确定谷带量化阶选取系数;由待编码的码流的改进离散余弦变换谱和谷带量化阶选取系数计算得到谷带量化阶;C.以上述谷带量化阶为参数进行码率失真控制,得到最终参考比特消耗数。本发明有效地降低了码率失真控制的复杂度,并因此降低了量化编码时的运算量,从而提高了编码器的编码质量和效率。

Description

一种基于先进音频编码器的量化器码率失真控制方法
技术领域
本发明涉及一种基于先进音频编码(Advanced Audio Coding,AAC)的量化器码率失真控制方法。
背景技术
AAC是变换域编码的一种,它的目标是在一定的比特约束之下将失真的某种度量最优化。失真是由量化过程引起的,在量化过程中,码率失真控制为量化编码器的参数赋值,以获得准确的比特消耗数,从而能够将量化失真控制在感知容忍的范围内,以便保证编码的质量和效率。
AAC编码使用了非均匀的量化器和变长编码,这使得量化算法的设计变得非常困难。首先,非均匀量化器无法根据感知容忍噪声来制定编码器参数,并且,因为变长编码的原因,比特消耗数只能通过量化结果计算获得。为控制量化失真和比特消耗,需要恰当地选择量化器的量化阶(scalefactor)等参数以保证码率失真控制有效地控制量化失真和码率。
双循环嵌套搜索(TLS)算法是目前使用得比较广泛的R-D控制算法,它是AAC标准推荐的算法,但这种算法在进行强制搜索最优解时会带来算法的不可实现性,它的复杂度为O((60′11)49)(60种量化阶的可能性,11个码书,49个独立的子带)。为了降低R-D算法的复杂度,数种修正方法被提出,其中有设置最大循环次数,缩小量化阶搜索范围,使用统计线性模型预测比特消耗,使用上一帧的参数作为当前帧的初始值等等,但均未取得良好效果。
发明内容
有鉴于此,本发明所要解决的技术问题在于,提供一种基于先进音频编码的量化器码率失真控制方法,该方法可以降低码率失真控制的复杂度,提高编码器的编码质量和效率。
为了实现上述目的,本发明采用的技术方案如下:
一种基于先进音频编码器的量化器码率失真控制方法,包含如下处理过程:
A、由待编码的码流获得子带可分配比特数的预测值,根据子带可分配比特数的预测值计算子带平均采样可分配比特数;
B、由上述子带平均采样可分配比特数通过预定原则确定谷带量化阶选取系数;由待编码的码流的改进离散余弦变换谱和谷带量化阶选取系数计算得到谷带量化阶;
C、以上述谷带量化阶为参数进行码率失真控制,得到最终参考比特消耗数。
所述步骤B中的由待编码的码流的改进离散余弦变换谱和谷带量化阶选取系数计算得到谷带量化阶通过下式实现:
假设量化公式用如下函数表述:c=Q(x(w),D),x(w)为待编码的码流的改进离散余弦变换谱,D为量阶,c为量化值。令c=valleybase,Q-1()为量化函数Q()的逆函数,则求得的量阶D就是谷带量化阶,表达式为: valley = Q - 1 ( x · ( w ) , valleybase ) , 特别的,如果在AAC中,表达式为:
valley = 16 3 log 2 [ max ( | x ( w ) | 3 4 ) valleybase ] , 其中,valley为谷带量化阶,x(w)为待编码的码流的改进离散余弦变换谱,valleybase为谷带量化阶选取系数。
所述步骤B中确定谷带量化阶选取系数的预定原则为:
若bitPerSamplep<1.5,valleybase=1;
若1.5≤bitPerSamplep<2.5,valleybase=2;
若2.5≤bitPerSamplep<3.5,valleybase=4;
若3.5≤bitPerSamplep<4.7,valleybase=7;
若4.7≤bitPerSamplep<6,valleybase=12;
若6≤bitPerSamplep,valleybase=15;
其中,valleybase为谷带量化阶选取系数,bitPerSamplep为子带平均采样可分配比特数。
所述子带平均采样可分配比特数通过下式计算得到:
bitPerSample p = sfbAvailable ( k ) bw sfb ( k ) + 0.15 [ log 2 ( bw sfb ( k ) ) - 2 ] ,
其中,bitPerSamplep为子带平均采样可分配比特数,sfbAvailable(k)为当前子带可分配比特数,bwsfb(k)为当前子带带宽。
所述当前子带可分配比特数通过下式计算得到:
sfbAvailable(k)=sfbAvailable(k-1)-sfbCost(k-1)+0.7sfbBits(k),
sfbAvailable(k)=max(0.95sfbBits(k),sfbAvailable(k))
其中,sfbAvailable(k)为当前子带可分配比特数,sfbBits(k)为所述步骤A中得到的子带可分配比特数的预测值,sfbCost(k-1)为上一子带的参考比特消耗数,所述参考比特消耗数通过谷带量化阶按预定方式计算得到。
所述预定方式是:利用谷带量化阶对子带进行量化,得到整数量化谱,并以整数量化谱为索引检索霍夫曼码书。
所述的量化器码率失真控制方法,步骤C中还包括对谷带量化阶的修正处理:
71)通过下式计算得到量化阶修正幅度因子:
factorChange = int ( bitPerSample p - bitPerSample ref 0.19 + 0.5 ) , 其中,factorChange为量化阶修正幅度因子,int为取整运算符,bitPerSamplep为子带平均采样可分配比特数,bitPerSampleref为子带平均采样参考比特消耗数,由下式计算得到:
bitPerSample ref = sfbbit ( k ) bw sfb ( k ) , 其中,sfbbit(k)为当前子带参考比特消耗数,bwsfb(k)为当前子带带宽;
72)利用量化阶修正幅度因子按预定原则对谷带量化阶进行修正。
所述步骤72)中谷带量化阶修正的预定原则为:
若量化阶修正幅度因子factorChange小于-4,且谷带量化阶选取系数为1,放弃当前子带信息,不进行编码;
若量化阶修正幅度因子factorChange大于等于-4,小于0,且谷带量化阶选取系数为1,子带带宽大于4,将谷带量化阶增加|factorChange|;
若量化阶修正幅度因子factorChange大于等于0,小于等于1,或者量化阶修正幅度因子factorChange小于0且子带带宽为4,谷带量化阶不变;
若量化阶修正幅度因子factorChange大于1,或者factorChange小于0且子带带宽大于4,进行窗口搜索,选择子带内加权量化误差最小的谷带量化阶作为当前子带的谷带量化阶。
当量化阶修正采用窗口搜索方式时,包括如下步骤:
91)确定窗口范围:以[searchStep,searchStep+1,…,searchStep+searchNum]作为量化阶搜索的窗口范围,其中,
searchStep = valley - factorChange + int ( factorChange 2 + 0.5 ) ,
searchStep=max(searchStep,valley-maxStep+1)
max Step = 16 3 log 2 [ 2435 max ( | x ( w ) | 3 4 ) ] + valley ,
searchNum = min ( valleybase , int ( 24 bw ( k ) ) ) + min ( 6 , abs ( factorchange ) cos ( k 2 - 200 1450 ) )
,式中,valley为谷带量化阶,x(w)为待编码的码流的改进离散余弦变换谱,valleybase为谷带量化阶选取系数,factorChange为量化阶修正幅度因子,bw(k)为子带k的带宽;
92)计算子带内加权量化误差:
Error sfb ( k ) = Σ w = sfblow ( k ) sfbhigh ( k ) rate ( w ) ( 0.06416 α ( w ) 4 + 0.5948 α ( w ) 3 + 1.775 α ( w ) 2 ) ,
其中,Errorsfb(k)为子带内加权量化误差,w是谱序号,sfblow(k),sfbhigh(k)分别为子带k的上界和下界,α(w)为相对取整误差,由下式计算得到:
α ( w ) = int [ | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) + magic ] - | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k )
其中 | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) 是量化后未取整的谱,saclefactor(k)为子带k进行窗口搜索时的候选量化阶;rate(w)为加权系数,由下式计算得到:
rate ( w ) = 0.1 x ( w ) 2 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 2 + 0.9 x ( w ) 4 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 4 ;
93)选择子带内加权量化误差最小的谷带量化阶作为当前子带的谷带量化阶。
所述量化器码率失真控制方法,步骤C中的子带参考比特消耗数可以直接用谷带量化阶,或者更精确地用通过对谷带量化阶调整得到的量化阶对编码子带进行量化(如果没有调整,无需重新量化),得到整数量化谱,并以整数量化谱为索引检索霍夫曼码书得到的。
所述的量化器码率失真控制方法,还包括利用幅度畸变因子对量化阶的再修正处理:
若R<0.8,saclefactor′(k)=saclefactor(k)+1;
若0.8≤R≤1.25,不做修正;
若R>1.25,saclefactor′(k)=saclefactor(k)-1;
其中,saclefactor′(k)为再修正后的量化阶,saclefactor(k)为再修正前的量化阶,R为幅度畸变因子,通过下式计算得到:
R = Σ w = sfblow ( k ) sfbhigh ( k ) { ( | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) int [ | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) + magic ] ) 3 x ( w ) 2 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 2 }
其中,sfblow(k),sfbhigh(k)分别为子带k的上界和下界,x(w)为待编码的码流的改进离散余弦变换谱,w为谱序号,magic为量化跳跃点,取值0.4054。
本发明的有益效果在于,改进了量化阶的确定方法,以此方法确定的量化阶作为码率失真控制方法的参数,有效地降低了码率失真控制的复杂度,并因此降低了量化编码时的运算量,从而提高了编码器的编码质量和效率。
附图说明
图1是运用本发明所述方法的Megal AAC编码器的结构框图;
图2是本发明具体实施方式的流程图;
图3是图1所示Megal AAC编码器与另两种现有的编码器的ODG指标比较示意图;
图4是图1所示Megal AAC编码器与另两种现有的编码器的NMR指标比较示意图;
图5是图1所示Megal AAC编码器与另两种现有的编码器的ODG分布示意图;
图6是图1所示Megal AAC编码器与另两种现有的编码器的NMR分布示意图。
具体实施方式
下面对照附图结合具体实施方式对本发明作详细说明。
图1是运用本发明所述方法的Megal AAC编码器的结构框图,主要包括心理声学模型处理模块、谱处理模块、量化编码模块和码流合成模块,其中,量化编码模块中采用了本发明所述的量化器码率失真控制方法,以便降低量化编码时的运算量。
本发明具体实施方式的所述方法的流程参看图2,包含如下步骤:
1.获取谷带量化阶
进行量化编码处理,需要先确定量化阶;本发明确定的量化阶,称为谷带量化阶,其计算步骤如下:
1a)计算子带平均采样可分配比特数
对于待编码的码流的编码处理是一个连续的过程,通常以一帧为单位,并将每一帧数据分为若干子带进行处理。设子带可分配比特数的预测值为sfbBits(k),该预测值可以通过AAC标准提供的传统心理声学模型算法由待编码的码流计算得出。一般公式为:子带可分配比特数的预测值=子带感知熵×当前帧可用的比特数/所有子带感知熵和。其中,如编码是定比特率编码(CBR),那么当前帧可用的比特数是一个定值,等于比特率×1024/采样率;如果是随着使用情况变化,那么就是可变比特率编码(VBR),这种情况下的当前帧可用的比特数一般由帧间比特控制算法提供。将该预测值减去边带信息所占据的一部分比特数比例,该比例通常在0.05到0.5之间,本实施例取0.3。若上一子带的参考比特消耗数为sfbCost(k-1),上一子带可分配比特数的预测值为sfbAvailable(k-1),那么当前子带可分配比特数为
sfbAvailable(k)=sfbAvailable(k-1)-sfbCost(k-1)+0.7sfbBits(k)
                                                                (1)
sfbAvailable(k)=max(0.95*0.7sfbBits(k),sfbAvailable(k))
式(1)中,0.95是比特控制的一个系数,可取0.5到1之间的数,本实施例取0.95;再利用子带带宽bwsfb修正获得子带平均采样可分配比特数,如下式:
bitPerSample p = sfbAvailable ( k ) bw sfb ( k ) + 0.15 [ log 2 ( bw sfb ( k ) ) - 2 ] - - - ( 2 )
1b)谷带量化阶选取系数的确定
谷带量化阶选取系数按如下原则确定:
  (1)若bitPerSamplep<1.5,     valleybase=1(2)若1.5≤bitPerSamplep<2.5,valleybase=2(3)若2.5≤bitPerSamplep<3.5,valleybase=4(4)若3.5≤bitPerSamplep<4.7,valleybase=7(5)若4.7≤bitPerSamplep<6,  valleybase=12(6)若6≤bitPerSamplep,       valleybase=15
其中,将valleybase=1时的谷带量化阶称为第一谷带量化阶,等于2时的谷带量化阶称为第二谷带量化阶,等于4时的谷带量化阶称为第四谷带量化阶,余者类推。valleybase为谷带量化阶选取系数。
在本实施例应用于AAC中,根据AAC的量化公式,以谷带量化阶选取系数作为量化的结果,由待编码的码流的改进离散余弦变换(MDCT)谱反推计算出谷带量化阶,其具体通过下式得到:
valley = 16 3 log 2 [ max ( | x ( w ) | 3 4 ) valleybase ] - - - ( 3 )
其中,valley为谷带量化阶,x(w)为待编码的码流的改进离散余弦变换(MDCT)谱,当然,在本发明应用于其他的音频编码器时,由于量化公式的不同,式(3)也相应有所区别。
2.利用谷带量化阶进行量化,得到参考比特消耗数
2a)使用谷带量化阶进行量化,获得参考量化谱
AAC中的参考量化谱是由式(4)产生,其中scalefactor[k]为子带k的量化阶,magic为量化跳跃点,AAC的标准推荐为0.4054,x(w)为MDCT谱,w为谱序号,满足条件sfbLow(k)≤w≤sfbHigh(k),sfbLow(k)和sfbHigh(k)分别是子带k的下界和上界。
x q ( w ) = sign ( x ( w ) ) int [ | x ( w ) | 3 4 × 2 - 3 16 scalefactor [ k ] + magic ] - - - ( 4 )
以式(3)获得的谷带量化阶valley作为当前子带的量化阶,利用式(4)获得当前子带的参考量化谱。
2b)子带参考比特消耗数的计算
子带的参考比特消耗数需要使用参考量化谱查找码书来获得。本实施例中的码书,使用霍夫曼码书,AAC中的霍夫曼码书一共有13个,其规格如表1,其中0号码书用来表示量化谱数据全为0,1到11号码书用来对量化谱进行编码,缩放因子码书用来对缩放因子进行编码。
表1AAC中的霍夫曼码书
  码书序号   有符号值   维数   最大绝对值   总个数
  0   0
  1   是   4   1   81
  2   是   4   1   81
  3   否   4   2   81
  4   否   4   2   81
  5   是   2   4   81
  6   是   2   4   81
  7   否   2   7   64
  8   否   2   7   64
  9   否   2   12   169
  10   否   2   12   169
  11   否   2   16(大于16)   289
  缩放因子   是   1   60   121
计算量化阶的消耗码长,具体过程为:
获得上一子带的量化阶scalefactor[k-1]和当前子带的量化阶scalefactor[k],量化阶使用差分编码,Huf_sfLen是缩放因子的码长表,由下式确定量化阶的消耗码长:
dsf=scalefactor[k-1]-scalefactor[k]        (5)
sfLen(k)=Huf_sfLen[dsf+60]
量化谱的消耗码长的计算过程为:首先求得子带中整数量化谱的最大绝对值tmax,依次将子带中相邻的四个整数量化谱组成四维矢量[t1 t2 t3 t4]作为索引去查找,累加求得不同码书编码所需码长的总数,其中,有符号码书的索引要加上最大绝对值作为偏移,而无符号码书的索引则加上1。检索方法为:
codeLen1=Huf_Len1[t1+1][t2+1][t3+1][t4+1]
codeLen2=Huf_Len2[t1+1][t2+1][t3+1][t4+1]
codeLen5=Huf_Len5[t1+4][t2+4]+Huf_Len5[t3+4][t4+4]
codeLen6=Huf_Len6[t1+4][t2+4]+Huf_Len6[t3+4][t4+4]
t1=|t1|,t2=|t2|,t3=|t3|,t4=|t4|
signLen=!!t1+!!t2+!!t3+!!t4
codeLen3=Huf_Len3[t1][t2][t3][t4]+signLen    (6)
codeLen4=Huf_Len4[t1][t2][t3][t4]+signLen
codeLen7=Huf_Len7[t1][t2]+Huf_Len7[t3][t4]+signLen
codeLen8=Huf_Len8[t1][t2]+Huf_Len8[t3][t4]+signLen
codeLen9=Huf_Len9[t1][t2]+Huf_Len9[t3][t4]+signLen
codeLen10=Huf_Len10[t1][t2]+Huf_Len10[t3][t4]+signLen
codeLen11=Huf_Len11[t1][t2]+Huf_Len11[t3][t4]+signLen
其中符号!!的运算原则为:若t10,!!t=1,若t=0,!!t=0。
检索码书的流程根据tmax判断如下
  tmax=1,检索1,2,3,4,5,6,7,8,9,10,11号码书tmax=2,检索3,4,5,6,7,8,9,10,11号码书2<tmax□4,检索5,6,7,8,9,10,11号码书4<tmax□7,检索7,8,9,10,11号码书7<tmax□12,检索9,10,11号码书12<tmax□15,检索11号码书16£tmax,检索11号码书,启动溢出保护机制
其中,溢出保护机制,在tmax 316时先以16替代大于16的整数谱t作为索引进行检索,然后在这个霍夫曼码字后面,为等于16的索引依次添加逃避序列。逃避序列(escape sequence)由以下三部分组成:
[escape_prefix][escape_separator][escape_word]
其中[escape_prefix]是N个‘1’,[escape_separator]是一个‘0’,[escape_word]是一个N+4比特的无符号整型数,t满足t=2N+4+[escape_word],增加比特数为2int[log2(t+1)+1]-5。
检索码长码书,得到第n子带整数量化谱使用m号码书的参考比特消耗值,将其记录在参考比特消耗矩阵refBits(m,k)中,没有计算到的则在矩阵相应位置记为65535。当前子带k的参考比特消耗数为
sfbbit(k)=sfLen(k)+min(refBits(m,k)),m=1,2…,11     (7)
为了进一步提高码率失真控制的效果,本发明具体实施方式还包括对量化阶的修正处理步骤,在此,将前述步骤中出现的没有经过修正处理的谷带量化阶称为初始谷带量化阶,而将此后出现的经过修正处理的量化阶称为最终谷带量化阶。
2c)量化阶修正幅度因子计算
计算子带平均采样参考比特消耗数
bitPerSample ref = sfbbit ( k ) bw sfb ( k ) - - - ( 8 )
计算量化阶修正幅度因子
factorChange = int ( bitPerSample p - bitPerSample ref 0.19 + 0.5 ) - - - ( 9 )
int为取整运算符,bitPerSamplep为子带平均采样可分配比特数。
2d)谷带量化阶修正判断
1)若factorChange小于-4,并且初始谷带量化阶是第一谷带量化阶,那么当前子带信息被放弃,不进行编码;
2)若factorChange大于等于-4,小于0,并且初始谷带量化阶是第一谷带量化阶且子带带宽大于4,那么,在初始谷带量化阶的基础上增加|factorChange|,以此作为最终谷带量化阶;
3)若factorChange大于等于0,小于等于1,或者factorChange小于0且带宽为4,那么以初始谷带量化阶作为最终谷带量化阶;
4)若factorChange大于1,或者factorChange小于0且带宽大于4,那么进行窗口搜索,修正判断决定进行窗口搜索时,首先确定窗口范围,过程如下:
searchStep = valley - factorChange + int ( factorChange 2 + 0.5 ) - - - ( 10 )
searchStep=max(searchStep,valley-maxStep+1)
其中maxStep起到量化谱最大值限制的作用,由下式得到:
max Step = 16 3 log 2 [ 2435 max ( | x ( w ) | 3 4 ) ] + valley - - - ( 11 )
searchNum = min ( valleybase , int ( 24 bw ( k ) ) ) + min ( 6 , abs ( factorchange ) cos ( k 2 - 200 1450 ) ) - - - ( 12 )
以[searchStep,searchStep+1,…,searchStep+searchNum]作为量化阶搜索的窗口范围,计算带内加权量化误差,过程为:
计算相对取整余差
α ( w ) = int [ | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) + magic ] - | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) - - - ( 13 )
其中 | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) 是量化后未取整的谱,saclefactor(k)为子带k搜索时的候选量化阶。加权系数为
rate ( w ) = 0.1 x ( w ) 2 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 2 + 0.9 x ( w ) 4 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 4 - - - ( 14 )
带内加权误差为
Error sfb ( k ) = Σ w = sfblow ( k ) sfbhigh ( k ) rate ( w ) ( 0.06416 α ( w ) 4 + 0.5948 α ( w ) 3 + 1.775 α ( w ) 2 )
其中sfblow(k),sfbhigh(k)分别为子带k的上界和下界,x(w)为MDCT谱,w为谱序号。
对于需要进行窗口范围量化阶搜索的子带,进行searchNum+1次带内加权量化误差计算后,选择其中带内加权量化误差最小的量化阶作为当前子带的最终谷带量化阶。
2e)经过量化阶修正处理后,由初始谷带量化阶得到最终谷带量化阶,使用最终谷带量化阶利用式(4)进行最终量化(如果没有修正,无需重新量化),计算得到最终的子带参考比特消耗数。
2f)对最终谷带量化阶进行再修正
为了解码器更好的反量化,还可以对最终谷带量化阶进行再修正,再修正后的量阶可用于解码器的反量化。再修正处理首先对当前子带的量化取整谱计算其幅度畸变因子
R = Σ w = sfblow ( k ) sfbhigh ( k ) { ( | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) int [ | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) + magic ] ) 3 x ( w ) 2 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 2 } - - - ( 15 )
若R<0.8,那么saclefactor′(k)=saclefactor(k)+1;
若0.8≤R≤1.25,不做修正;
若R>1.25,那么saclefactor′(k)=saclefactor(k)-1。
其中saclefactor′(k)为再修正后的量化阶,saclefactor(k)为再修正前的量化阶,sfblow(k),sfbhigh(k)分别为子带k的上界和下界,x(w)为MDCT谱,w为谱序号。
确定了初始谷带量化阶后,即可以该量化阶为参数进行码率失真控制。一方面,由初始谷带量化阶获得子带参考比特消耗数,可直接作为后续编码步骤的输入,完成熵编码和码流合成,最终得到编码码流。另一方面,更精确的,子带参考比特消耗数可作为反馈提供给量化阶确定过程而对初始谷带量化阶进行修正,以得到更好的码率失真控制效果,从而最终提升整个编码器的整体编码效率与质量。
以上公式和数据均是通过实验结果或者是综合待求参数的相关影响因素拟合所给出的较优值,本发明并不限于仅使用上述具体数值。
有关运算复杂度评估通过比较未使用本发明的Free Advanced AudioCoder(FAAC)和使用了本发明的Megal AAC Encoder(Megal),在对44100Hz采样,16位量化的立体声音频进行平均比特率编码的情况下进行,参考指标为每秒百万操作数,其中FAAC是德国Fraunhofer IIS开发的AAC编码器,Fraunhofer IIS是Mpeg标准的主要制定者,其FAAC编码器是AAC标准的验证编码器。
表2编码器的运算复杂度
Figure A20071014845400171
从表2可见,以64kbps速率每通道编码时,本发明的失真计算次数由FAAC的5.34次降低到了2.00次,由于采用了不需要反量化计算的带内加权量化误差计算方法,每次计算失真的计算量还要比FAAC小,本发明在计算消耗比特数时,仅需调用码书4.35次,相比较FAAC需要61.37次。Megal的量化编码算法的计算量为12.8MOPS,其总计算量为21.2MOPS,相比较FAAC分别为35MOPS和90.8MOPS,分别降低63.4%和76.7%。
编码器的音质评估使用EAQUAL1.3,这是使用感知音频客观评价标准PEAQ的客观评价程序,PEAQ提供的音质评价指标名称及其描述见表3。
表3eaqual软件输出的评价指标及意义
  指标名称   指标意义
  ODG   客观差异级(objective difference grade)
  DIX   失真指标(distortion index)
  BandwidthTest   参考信号频带宽度
  NMR   噪声掩模比(noise to mask radio)
  WinModDiff1   加窗调制差异平均
  ADB   平均失真块(Average Distortion Block)
  EHS   谐波结构失真(err of harmonic structure)
  AvgModDiff1   调差差异时间平均1
  AvgModDiff2   调差差异时间平均2
MFPD   最大滤波概率(Maximum Filtered Probability ofDetection)
  RDF   相对分散帧(Relative Disturbed Frames)
这里选择总体指标(ODG)和两个重要的单项指标(BandwidthTest和NMR)作为主要参考指标。音质评估使用三种编码器参照进行,对它们进行横向评估,这三个编码器分别为本发明的Megal,现有技术的NCTU AACEncoder(以下简称NCTU)和FAAC。其中NCTU是台湾交通大学感知音频小组开发的AAC编码器,音质评估源使用美国惠威公司提供的音响试音碟的第一张和第二张,剔除了重复的曲目,选取了其中37支音乐剪辑,这些剪辑包含了乐曲的基本类型,它们的名称以及描述见表4。
表4测试曲目
  序号   曲目   类型描述   持续时间(秒)
  1   雪花飞扬   电子合成器,预回声几率高   84.07
  2   女声清唱   女声清唱,英文女声   59.30
  3   shaniaFuain   流行,英文女声,预回声几率高   88.68
  4   渡口   流行,中文女声,预回声几率高   72.77
  5   达坂城姑娘   男声合唱   68.38
  6   加州旅店   老鹰乐队   119.98
  7   鼓诗   炎黄第一鼓,预回声几率高   65.32
  8   红灯记   京剧女声   53.43
  9   张三的歌   流行,中文男声   57.77
  10   低音王   低音提琴   87.49
  11   Denon   管弦乐   61.21
  12   波罗吉他   器乐   59.98
  13   琵琶对萨克斯   器乐   84.08
  14   黄河的水干了   民族,中文男声   69.85
  15   穆特小提琴   独奏   61.63
  16   One I love   女声清唱,英文女声   74.51
  17   高山流水   古筝   53.96
  18   梁祝   小提琴协奏   50.36
  19   发烧经典   交响乐   76.63
  20   古琴对唢呐   民族乐器   77.25
  21   狩猎波尔卡   交响乐   59.98
  22   偏偏喜欢你   流行,粤语男声   89.05
  23   2001太空漫游   交响乐   99.45
  24   欢乐颂   女声合唱,音文女声   128.64
  25   步步高   古筝   63.58
  26   四季之歌   古提琴   68.71
  27   卡门前奏曲   小号   67.43
  28   送别   女声合唱,中文女童声   106.23
  29   敲击卡门   敲击乐,预回声几率高   68.66
  30   布兰诗歌   合唱,英文诗歌   151.46
  31   屋顶上的提琴手   小提琴,独奏   72.98
  32   亲爱的爸爸   女高音   76.14
  33   今夜无人入睡   男高音,歌剧   175.94
  34   人声   民族原生态,女声   61.99
  35   F-16战斗机   效果   43.89
  36   ***暴   效果,自然声   64.29
  37   火箭升空   效果   39.99
测试结果见表5。
表5测试结果
Figure A20071014845400201
Figure A20071014845400211
从以上测试数据可以得到,NCTU的平均ODG相对FAAC提高0.163,而使用本发明的Megal的平均ODG相对NCTU又提高了0.187;NCTU的平均NMR相对FAAC降低了1.06dB,而使用本发明的Megal的平均NMR相对NCTU又降低了1.08dB。类似的结论可以在关于Megal AAC编码器与另两种编码器的ODG与NMR指标比较和分布的图3、图4、图5和图6中得到。计算量评估与音质客观评价都说明,本发明可以使AAC编码器运算量大大降低,而音质得到大幅提高,整个编码器的质量和效率具有显著的提升。

Claims (10)

1.一种基于先进音频编码器的量化器码率失真控制方法,其特征在于,包含如下处理过程:
A、由待编码的码流获得子带可分配比特数的预测值,根据子带可分配比特数的预测值计算子带平均采样可分配比特数;
B、由上述子带平均采样可分配比特数通过预定原则确定谷带量化阶选取系数;由待编码的码流的改进离散余弦变换谱和谷带量化阶选取系数计算得到谷带量化阶;
C、以上述谷带量化阶为参数进行码率失真控制,得到最终参考比特消耗数。
2.如权利要求1所述的量化器码率失真控制方法,其特征在于,所述步骤B中的由待编码的码流的改进离散余弦变换谱和谷带量化阶选取系数计算得到谷带量化阶通过下式实现:
valley = 16 3 log 2 [ max ( | x ( w ) | 3 4 ) valleybase ] , 其中,valley为谷带量化阶,x(w)为待编码的码流的改进离散余弦变换谱,valleybase为谷带量化阶选取系数。
3.如权利要求1或2所述的量化器码率失真控制方法,其特征在于,所述步骤B中确定谷带量化阶选取系数的预定原则为:
若bitPerSamplep<1.5,valleybase=1;
若1.5≤bitPerSamplep<2.5,valleybase=2;
若2.5≤bitPerSamplep<3.5,valleybase=4;
若3.5≤bitPerSamplep<4.7,valleybase=7;
若4.7≤bitPerSamplep<6,valleybase=12;
若6≤bitPerSamplep,valleybase=15;
其中,valleybase为谷带量化阶选取系数,bitPerSamplep为子带平均采样可分配比特数。
4.如权利要求3所述的量化器码率失真控制方法,其特征在于,所述子带平均采样可分配比特数通过下式计算得到:
bitPerSampl e p = sfbAvailable ( k ) bw sfb ( k ) + 0.15 [ log 2 ( bw sfb ( k ) ) - 2 ] ,
其中,bitPerSamplep为子带平均采样可分配比特数,sfbAvailable(k)为当前子带可分配比特数,bwsfb(k)为当前子带带宽。
5.如权利要求4所述的量化器码率失真控制方法,其特征在于,所述当前子带可分配比特数通过下式计算得到:
sfbAvailable(k)=sfbAvailable(k-1)-sfbCost(k-1)+0.7sfbBits(k)
sfbAvailable(k)=max(0.95sfbBits(k),sfbAvailable(k))’
其中,sfbAvailable(k)为当前子带可分配比特数,sfbBits(k)为所述步骤A中得到的子带可分配比特数的预测值,sfbCost(k-1)为上一子带的参考比特消耗数,所述参考比特消耗数通过谷带量化阶按预定方式计算得到。
6.如权利要求5所述的量化器码率失真控制方法,其特征在于,所述预定方式是:利用谷带量化阶对子带进行量化,得到整数量化谱,并以整数量化谱为索引检索霍夫曼码书。
7.如权利要求6所述的量化器码率失真控制方法,其特征在于,所述步骤C中还包括对谷带量化阶的修正处理:
71)通过下式计算得到量化阶修正幅度因子:
factorChange = int ( bitPerSamp le p - bit PerSample ref 0.19 + 0.5 ) , 其中,factorChange为量化阶修正幅度因子,int为取整运算符,bitPerSamplep为子带平均采样可分配比特数,bitPerSampleref为子带平均采样参考比特消耗数,由下式计算得到:
bitPerSample ref = sfbbit ( k ) bw sfb ( k ) , 其中,sfbbit(k)为当前子带参考比特消耗数,bwsfb(k)为当前子带带宽;
72)利用量化阶修正幅度因子按预定原则对谷带量化阶进行修正。
8.如权利要求7所述的量化器码率失真控制方法,其特征在于,所述步骤72)中谷带量化阶修正的预定原则为:
若量化阶修正幅度因子factorChange小于-4,且谷带量化阶选取系数为1,放弃当前子带信息,不进行编码;
若量化阶修正幅度因子factorChange大于等于-4,小于0,且谷带量化阶选取系数为1,子带带宽大于4,将谷带量化阶增加|factorChange|;
若量化阶修正幅度因子factorChange大于等于0,小于等于1,或者量化阶修正幅度因子factorChange小于0且子带带宽为4,谷带量化阶不变;
若量化阶修正幅度因子factorChange大于1,或者factorChange小于0且子带带宽大于4,进行窗口搜索,选择子带内加权量化误差最小的谷带量化阶作为当前子带的谷带量化阶。
9.如权利要求8所述的量化器码率失真控制方法,其特征在于,当量化阶修正采用窗口搜索方式时,包括如下步骤:
91)确定窗口范围:以[searchStep,searchStep+1,…,searchStep+searchNum]作为量化阶搜索的窗口范围,其中,
searchStep = valley - factorChange + int ( factorChange 2 + 0.5 ) ,
searchStep=max(searchStep,valley-maxStep+1)
max Step = 16 3 log 2 [ 2435 max ( | x ( w ) | 3 4 ) ] + valley ,
searchNum = min ( valleybase , int ( 24 bw ( k ) ) ) + min ( 6 , abs ( factorchange ) cos ( k 2 - 200 1450 ) )
,式中,valley为谷带量化阶,x(w)为待编码的码流的改进离散余弦变换谱,valleybase为谷带量化阶选取系数,factorChange为量化阶修正幅度因子,bw(k)为子带k的带宽;
92)计算子带内加权量化误差:
Error sfb ( k ) = Σ w = sfblow ( k ) sfbhigh ( k ) rate ( w ) ( 0.06416 α ( w ) 4 + 0.5948 α ( w ) 3 + 1.775 α ( w ) 2 ) ,
其中,Errorsfb(k)为子带内加权量化误差,w是谱序号,sfblow(k),sfbhigh(k)分别为子带k的上界和下界,α(w)为相对取整误差,由下式计算得到:
α ( w ) = int [ | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) + magic ] - | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k )
其中
Figure A2007101484540004C6
是量化后未取整的谱,saclefactor(k)为子带k进行窗口搜索时的候选量化阶;rate(w)为加权系数,由下式计算得到:
rate ( w ) = 0.1 x ( w ) 2 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 2 + 0.9 x ( w ) 4 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 4 ;
93)选择子带内加权量化误差最小的谷带量化阶作为当前子带的谷带量化阶。
10.如权利要求9所述的量化器码率失真控制方法,其特征在于,还包括利用幅度畸变因子对量化阶的再修正处理:
若R<0.8,saclefactor′(k)=saclefactor(k)+1;
若0.8≤R≤1.25,不做修正;
若R>1.25,saclefactor′(k)=saclefactor(k)-1;
其中,saclefactor′(k)为再修正后的量化阶,saclefactor(k)为再修正前的量化阶,R为幅度畸变因子,通过下式计算得到:
R = Σ w = sfblow ( k ) sfbhigh ( k ) { ( | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) int [ | x ( w ) | 3 4 × 2 - 3 16 saclefactor ( k ) + magic ] ) 3 x ( w ) 2 Σ w = sfblow ( k ) sfbhigh ( k ) x ( w ) 2 }
其中,sfblow(k),sfbhigh(k)分别为子带k的上界和下界,x(w)为待编码的码流的改进离散余弦变换谱,w为谱序号,magic为量化跳跃点,取值0.4054。
CN2007101484543A 2007-05-16 2007-08-21 一种基于先进音频编码器的量化器码率失真控制方法 Expired - Fee Related CN101308661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101484543A CN101308661B (zh) 2007-05-16 2007-08-21 一种基于先进音频编码器的量化器码率失真控制方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200710074479 2007-05-16
CN200710074479.3 2007-05-16
CN2007101484543A CN101308661B (zh) 2007-05-16 2007-08-21 一种基于先进音频编码器的量化器码率失真控制方法

Publications (2)

Publication Number Publication Date
CN101308661A true CN101308661A (zh) 2008-11-19
CN101308661B CN101308661B (zh) 2011-07-13

Family

ID=40125070

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2007101484543A Expired - Fee Related CN101308661B (zh) 2007-05-16 2007-08-21 一种基于先进音频编码器的量化器码率失真控制方法
CN2007101484562A Active CN101308657B (zh) 2007-05-16 2007-08-21 一种基于先进音频编码器的码流合成方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2007101484562A Active CN101308657B (zh) 2007-05-16 2007-08-21 一种基于先进音频编码器的码流合成方法

Country Status (1)

Country Link
CN (2) CN101308661B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102714037A (zh) * 2009-12-22 2012-10-03 高通股份有限公司 针对恒定的比特率应用的具有最佳比特分配的音频和语音处理
CN103460287A (zh) * 2011-04-05 2013-12-18 日本电信电话株式会社 编码方法、解码方法、编码装置、解码装置、程序、记录介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480572B (zh) * 2017-08-15 2020-06-23 北京安云世纪科技有限公司 一种利用通用服务识别编码数据的方法及***

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420639A (en) * 1993-04-01 1995-05-30 Scientific-Atlanta, Inc. Rate adaptive huffman coding
US6198412B1 (en) * 1999-01-20 2001-03-06 Lucent Technologies Inc. Method and apparatus for reduced complexity entropy coding
JP3323175B2 (ja) * 1999-04-20 2002-09-09 松下電器産業株式会社 符号化装置
US6542863B1 (en) * 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
JP2003066998A (ja) * 2001-08-28 2003-03-05 Mitsubishi Electric Corp 音響信号符号化装置
CN100370836C (zh) * 2004-08-02 2008-02-20 华为技术有限公司 基于率失真优化的运动预测方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102714037A (zh) * 2009-12-22 2012-10-03 高通股份有限公司 针对恒定的比特率应用的具有最佳比特分配的音频和语音处理
US8781822B2 (en) 2009-12-22 2014-07-15 Qualcomm Incorporated Audio and speech processing with optimal bit-allocation for constant bit rate applications
CN102714037B (zh) * 2009-12-22 2014-09-03 高通股份有限公司 针对恒定的比特率应用的具有最佳比特分配的音频和语音处理
CN103460287A (zh) * 2011-04-05 2013-12-18 日本电信电话株式会社 编码方法、解码方法、编码装置、解码装置、程序、记录介质
CN103460287B (zh) * 2011-04-05 2016-03-23 日本电信电话株式会社 音响信号的编码方法、解码方法、编码装置、解码装置

Also Published As

Publication number Publication date
CN101308657A (zh) 2008-11-19
CN101308657B (zh) 2011-10-26
CN101308661B (zh) 2011-07-13

Similar Documents

Publication Publication Date Title
KR101238239B1 (ko) 인코더
CN103959375B (zh) 增强的从音频编解码器的色度提取
CN101297356B (zh) 用于音频压缩的方法和设备
EP2659482B1 (en) Ranking representative segments in media data
CN103903626B (zh) 语音编码装置、语音解码装置、语音编码方法以及语音解码方法
CN103065637B (zh) 音频编码器和解码器
Grindlay et al. Transcribing multi-instrument polyphonic music with hierarchical eigeninstruments
CN102754147B (zh) 复杂度可缩放的感知节拍估计
Ravelli et al. Union of MDCT bases for audio coding
Carabias-Orti et al. Musical instrument sound multi-excitation model for non-negative spectrogram factorization
JP2774203B2 (ja) オーディオ信号処理方法
US20060173692A1 (en) Audio compression using repetitive structures
Shoham Constrained-stochastic excitation coding of speech at 4.8 kb/s
CN101499268A (zh) 自动生成音乐结构性界面信息的设备和方法及检索***
CN102237085A (zh) 音频信号的分类方法及装置
CN101308659A (zh) 一种基于先进音频编码器的心理声学模型的处理方法
Su et al. Sparse modeling of magnitude and phase-derived spectra for playing technique classification
Yoneyama et al. Source-Filter HiFi-GAN: Fast and pitch controllable high-fidelity neural vocoder
McClellan et al. Variable-rate CELP based on subband flatness
KR20100124678A (ko) 계층형 정현파 펄스 코딩을 이용한 오디오 신호의 인코딩 및 디코딩 방법 및 장치
CN101889306A (zh) 用于处理信号的方法和装置
CN101308661B (zh) 一种基于先进音频编码器的量化器码率失真控制方法
Wang et al. Few-shot musical source separation
Davidson et al. High quality audio coding with Mdctnet
Vincent et al. Low bit-rate object coding of musical audio using Bayesian harmonic models

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: 20110713

Termination date: 20170821