音频编码码量控制和调整的方法

文档序号:7508638阅读:260来源:国知局
专利名称:音频编码码量控制和调整的方法
技术领域
本发明涉及一种音频编解码的方法,具体地说,涉及一种宽带音频编码码量控制和调整的方法。
背景技术
码量控制是音频压缩编码中的重要步骤之一,该步骤涉及编码器音频编码时的比特分配,并最终影响到音频的编码效率和压缩质量。目前,公知的基于宽带编码的音频压缩编码器一般均采用迭代的方法实现每个音频处理帧编码码量的控制,其目的是在保证编码音质的前提下尽量接近目标允许码量,一个好的码量控制算法应能使用尽量少的迭代次数实现这一过程。因此,采取不同的码量控制算法对编码器的性能,包括编码速度、音质编码损失具有举足轻重的作用。目前公知的编码码量控制算法,不但因迭代次数过多而影响编码速度,而且编码后的音质损失也较大。

发明内容
本发明要解决的技术问题是提供一种音频编码码量控制和调整的方法,它可以显著提高编码器的编码速度、减少编码后音质的损失。
为了解决上述技术问题,本发明音频编码码量控制和调整的方法采取以下步骤获得当前每一音频处理帧频谱,且得到各Bark(巴克,子临界频带的单位)频带的最大绝对值;计算初始最小量化因子阈值并设定各Bark频带量化因子值;对每一音频处理帧频谱采用不同的量化因子进行量化,并对量化后的频谱进行编码并计算当前帧编码的码量;判定当前帧码量与期望码量是否在允许误差范围内,“是”,则格式化并输出码流;“否”,则对最小量化因子阈值再次进行调整,重复上述步骤,直到符合要求。本发明不仅是一个码量调整的快速算法,同时也是一个码量调整策略(比特分配策略)。本发明针对的是平均常数比特率编码方式。
本发明提供的音频编码的码量控制和调整方法,在确保编码音质的前提下一般能在3次以内,最多5次的迭代调整过程,快速设定各量化因子,实现码量的快速调整,从而显著提高编码器的编码速度、减少编码后的音质损失。


图1是流程图,表示本发明音频编码码量控制和调整方法的步骤;图2是流程图,表示本发明具体实施例中音频编码码量调整的步骤;图3表示了计算初始最小量化因子阈值步骤中,函数F的取值与编码码率的对应关系;图4为采用本发明音频编码的码量控制和调整方法的编码效果示意图。其中,(a)为原始音频信号的谱图,(b)为编码后解码所得音频信号的频谱图,(c)为相应解码信号的波形图;图5为码量调整方法实施例的过程数据。
具体实施例方式
下面结合附图对本发明作进一步详细的说明。
图1是本发明音频编码码量控制和调制方法的流程,根据图1所示的流程,包括以下步骤步骤101,假设当前每一音频处理帧频谱已获得,且得到各Bark频带的最大绝对值;步骤102,根据当前音频处理帧各Bark频带的最大绝对值以及最小量化因子阈值设定各Bark频带量化因子值。
步骤103,根据步骤102设定的量化因子值,对每一音频处理帧频谱进行量化。频谱的量化是基于Bark频带进行的,同一Bark频带中所有频率子带的谱值采用相同量化因子量化,不同Bark频带可以使用不同的量化因子。由于不同大小的量化谱值在编码时占用的码量将会不同,从而影响到编码所需要的总码量。
频率子带谱值(绝对值)的量化值由下列数学公式取整得到S(i)*(2)Scale_factor]]>式中,S(i)为第i个频率子带谱值的绝对值,Scale_factor为量化因子,取值范围为[-31,31]。由于量化因子值越大,对应谱值的量化值也越大,编码所需的码量就越多;另外,还由于量化因子越小,其量化误差也越大,编码压缩损失就越大,因此合理选择量化因子,可以保证量化质量的情况下尽量少产生编码码量。
步骤104,对量化后的频谱进行编码并计算当前帧编码的码量。
步骤105,比较当前帧码量与期望码量是否在允许误差范围内?如“是”,则进行步骤107,格式化并输出码流;如“否”,则进行步骤106,根据实际编码的码量与期望码量间的差异及相应的判断准则,对最小量化因子阈值进行调整,并重复步骤102至105,直到符合要求。
图2描述了本发明实施例中音频编码码量调整方法的具体步骤;步骤201,量化因子初始值设置,量化因子初始值是每个Bark频带最小的量化因子,使用该因子量化该Bark频带,所有量化结果的最大值为1,即每个Bark频带量化后都有能量存在。如果某个Bark频带实际能量非常小且该频带内各频率子带能量最大值小于固定阈值2-13时,则将该频带的初始量化因子设置为固定值25。
步骤202,计算初始最小量化因子阈值,初始最小量化因子阈值是根据相应帧频谱总能量E和编码码率(bitrate)计算获得的,以下列数学公式表达Scalemin_thr=F(bitrate)-Bit(E)式中,函数F(.)的值与编码码率有关,其具体对应关系由图3给出。函数Bit(.)为用二进制完整表示总能量E整数部分所需要的比特数。Scalemin_thr饱和值范围设为[-31,25],当计算所得数据小于-31时,将其设为-31。如果计算所得数据大于25时,将其设为25。根据上式得到本发明实施例中的Scalemin_thr=-2。
步骤203,调整各Bark频带最小量化因子值,首先以当前最小量化因子阈值Scalemin_thr为下限,将各Bark频带对应最小量化因子小于Scalemin_thr的部分全部设置为Scalemin_thr,其他部分对应的量化因子保持不变。然后对所有Bark频带对应的量化因子做差分幅值调整,调整目标为相邻Bark频带对应的量化因子变化量小于或等于30。分如下三个步骤进行步骤1从低频带(Bark值为1)到最高截止频率对应频带为止,如果相邻高频带对应量化因子Scale_i+1比相邻低频带对应量化因子Scale_i大30,那么Scale_i+1设为(Scale_i+30),否则就不改变相应的值。步骤2从高频带(最高截止频率对应频带)到最低频带(Bark值为1)为止,如果相邻低频带对应量化因子Scale_i比相邻高频带对应量化因子Scale_i+1大30,那么Scale_i设为(Scale_i+1+30),否则就不改变相应的值。步骤3如果经过步骤1和步骤2的调整后,所有量化因子的最小值Scale_min大于Scalemin_thr,那么将所有的量化因子都减去(Scale_min-Scalemin_thr)。
步骤204,对频谱进行量化,并对量化后的频谱进行编码、计算当前帧编码的码量。
步骤205,比较当前帧码量与目标码量之差,用以下数学公式表达δC=Ccur_frm-Ctarget步骤206,判断步骤205的结果是否小于0,“是”,则通过步骤209,格式化输出码流;“否”,则进行步骤208,调整最小量化因子阈值,重复进行步骤203~205。
步骤207为判断步骤205的结果是否小于目标码量的5%,“是”,则通过步骤209,格式化输出码流;“否”,则进行步骤208,调整最小量化因子阈值,重复进行步骤203~205。
步骤208为调整最小量化因子阈值的步骤,包括以下两种情况如果采用最初最小量化因子阈值编码的码量比期望允许的码量小,那么下一个码量调整迭代采用的最小量化阈值在原来的基础上递增1,然后再重复量化因子设置、量化及编码过程并同时计算当前编码的码量。这个迭代过程一般进行到对应编码量超过允许码量为止,并将上一次迭代对应的编码结果作为最终编码码流。此外,还有两个中止迭代的条件1)量化因子最小值大于等于25;2)实际码量比目标码量小5%以内。如果属于这两种情况时,即用当前量化因子对应的编码结果作为最终编码码流。
如果采用最初最小量化因子阈值编码的码量比期望允许的码量大,那么下一次码量调整迭代采用的最小量化阈值在原来的基础上递减1,然后再重复量化因子设置、量化及编码过程并同时计算当前编码的码量。这个迭代过程一般进行到对应编码量少于允许码量为止,并将当前量化因子对应的编码结果作为最终编码码流。
图3给出了本发明实施例步骤202中,函数F(.)的值与编码码率的对应关系。
图4为采用本发明音频编码的码量控制和调整方法的编码效果示意图。其中,(a)为原始音频信号的谱图,(b)为编码后解码所得音频信号的频谱图,(c)为相应解码信号的波形图;从中可以看出,解码信号的波形同原始信号的谱图相当一致,保证了编码音质。
图5给出了本发明实施例各迭代过程所使用的量化因子值,实际进行了3次迭代即完成码量调整过程。其中“最大绝对值”为步骤101所获得的各Bark频带最大绝对值。“量化因子初值”为步骤201计算得到。“第1次迭代量化因子”“第2次迭代量化因子”和“第3次迭代量化因子”分别来自步骤106,根据实际编码的码量与期望码量间的差异,对最小量化因子阈值进行调整过程中各次迭代所使用的量化因子值。
本发明是一种高质量低复杂度宽带音频编码器的关联发明,针对的是平均常数比特率编码情况。本发明本身是一种码量调整方法,同时也是一种快速算法。采用本发明可有效减少迭代次数,一般在5次以内,绝大多数在3次以内,从而显著地提高了编码效率。
权利要求
1.一种音频编码码量控制和调整的方法,其特征在于,采用以下步骤获得当前每一音频处理帧频谱,得到各Bark频带的最大绝对值;计算初始最小量化因子阈值并设定各Bark频带量化因子值;对每一音频处理帧频谱采用不同的量化因子进行量化,并对量化后的频谱进行编码并计算当前帧编码的码量;判定当前帧码量与期望码量是否在允许误差范围内,“是”,则格式化并输出码流;“否”,则对最小量化因子阈值再次进行调整,重复上述步骤,直到符合要求。
2.根据权利要求1所述的音频编码码量控制和调整的方法,其特征在于,所述的设定各Bark频带量化因子的初始值,采取以下步骤使用每个Bark频带最小的量化因子量化该Bark频带,所有量化结果的最大值为1,如果某个Bark频带实际能量非常小,且该频带内各频率子带能量最大值小于固定阈值2-13时,则将该频带的初始量化因子设置为固定值25。
3.根据权利要求1所述的音频编码码量控制和调整的方法,其特征在于,所述的对每一音频处理帧频谱采用不同的量化因子进行量化,采取以下步骤其频率子带谱值的量化值由下列数学公式取整得到S(i)*(2)Scale_factor]]>式中,S(i)为第i个频率子带谱值的绝对值,Scale_factor为量化因子,取值范围为[-31,31]。
4.根据权利要求1所述的音频编码码量控制和调整的方法,其特征在于,所述的计算初始最小量化因子阈值,采取以下步骤根据相应帧频谱总能量E和编码码率计算获得最小量化因子阈值,以下列数学公式表达Scalemin_thr=F(bitrate)-Bit(E)式中,函数F(.)的值与编码码率有关,Scalemin_thr饱和值范围设为[-31,25]。
5.根据权利要求1所述的音频编码码量控制和调整的方法,其特征在于,所述的对量化因子值的设定,采取以下步骤以当前最小量化因子阈值Scalemin_thr为下限,将各Bark频带对应最小量化因子小于Scalemin_thr的部分全部设置为Scalemin_thr,其他部分对应的量化因子保持不变;对所有Bark频带对应的量化因子做差分幅值调整,调整目标为相邻Bark频带对应的量化因子变化量小于或等于30。
6.根据权利要求1或5所述的音频编码码量控制和调整的方法,其特征在于,所述对量化因子进行调整,还包括以下步骤从Bark值为1的低频带到最高截止频率对应频带为止,如果相邻高频带对应量化因子Scale_i+1比相邻低频带对应量化因子Scale_i大30以上,那么Scale_i+1设为Scale_i+30,否则就不改变相应的值;从最高截止频率对应频带的高频带到Bark值为1的最低频带为止,如果相邻低频带对应量化因子Scale_i比相邻高频带对应量化因子Scale_i+1大30以上,那么Scale_i设为Scale_i+1+30,否则就不改变相应的值;如果经过上述2个步骤的调整后,所有量化因子的最小值Scale_min大于Scalemin_thr,那么将所有的量化因子都减去(Scale_min-Scalemin_thr)。
7.根据权利要求1或5所述的音频编码码量控制和调整的方法,其特征在于,所述对最小量化因子阈值进行调整,还包括以下步骤如果采用最初最小量化因子阈值编码的码量比期望允许的码量小那么下一个码量调整迭代采用的最小量化阈值在原来的基础上递增1,再重复所述的量化因子设置、量化及编码步骤,并同时计算当前编码的码量,直至对应编码量超过允许码量为止,并将上一次迭代对应的编码结果作为最终编码码流;当量化因子最小值大于等于25、实际码量比目标码量小5%以内时,即用当前量化因子对应的编码结果作为最终编码码流。
8.根据权利要求1或5所述的音频编码码量控制和调整的方法,其特征在于,所述对最小量化因子阈值进行调整,还包括以下步骤如果采用最初最小量化因子阈值编码的码量比期望允许的码量大,那么下一次码量调整迭代采用的最小量化阈值在原来的基础上递减1,再重复所述的量化因子设置、量化及编码步骤,并同时计算当前编码的码量,直至对应编码量少于允许码量为止,并将当前量化因子对应的编码结果作为最终编码码流。
9.根据权利要求1所述的音频编码码量控制和调整的方法,其特征在于,所述的判定当前帧码量与期望码量是否在允许误差范围内的方法,采用以下数学公式表达δC=Ccur_frm-Ctarget。
全文摘要
本发明提供一种音频编码码量控制和调整的方法,采取以下步骤获得当前每一音频处理帧频谱,得到各Bark(巴克,子临界频带的单位)频带的最大绝对值;计算初始最小量化因子阈值并设定各Bark频带量化因子值;对每一音频处理帧频谱采用不同的量化因子进行量化,并对量化后的频谱进行编码并计算当前帧编码的码量;判定当前帧码量与期望码量是否在允许误差范围内,“是”,则格式化并输出码流;“否”,则对最小量化因子阈值进行调整,重复上述步骤,直到符合要求。采用本发明方法可以显著提高编码器的编码速度、减少编码后音质的损失。
文档编号H03M7/30GK1909066SQ20051002840
公开日2007年2月7日 申请日期2005年8月3日 优先权日2005年8月3日
发明者欧阳合, 吴秉惠, 周毅, 罗霖, 万凯 申请人:上海杰得微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1