一种MP3编码量化中的内循环方法及MP3编码器技术

技术编号:3851561 阅读:391 留言:0更新日期:2012-04-11 18:40
MP3编码量化中的内循环方法及MP3编码器;方法包括:将同一声道中的前若干个颗粒第一次内循环时的最小量化步长分别乘以预定系数后相加,得到当前颗粒预计的第一次内循环时的最小量化步长QS_min↓[p];所述系数的总和为1;使用QS_min↓[P]作为量化步长对当前的频谱xr进行量化,得到的编码长度为CL;反复根据CL与CL_limit的大小关系相应调节QS_min↓[P]的大小、并采用调节后的QS_min↓[P]得到CL,直到CL等于CL_limit、或在小于CL_limit的情况下尽可能接近CL_limit时,得到当前颗粒的QS_min为QS_min↓[P]。本发明专利技术能快速找到第一次内循环时的最小量化步长,提高效率。

【技术实现步骤摘要】

本专利技术涉及音频编码领域,尤其涉及一种MP3编码量化中的内循环方法及MP3编码器
技术介绍
在MP3编码的量化过程中,其内循环需要寻找一个使编码的长度小于规定长度的最小量化步长。MP3编码参考标准的内循环步骤如图1所示,内循环通过不断增加量化步长QS来使编码长度CL小于或等于由外部控制决定的最大编码长度CL—Limit。量化步长的范围为0-QS—MAX(最大量化步长)之间的整数。 一般的情况下,量化步长越小,码长CL就越大,量化噪声越小;反之,当量化步长增大时,码长CL会减小,但是量化噪声增大。内循环的目的是寻找一个最小的量化步长QS_min,在使用QS—min进行量化后,编码得到的码长CL—max小于CL—Limit,并且保存量化结果。内循环每循环一次,如果量化得到的编码长度大于CL—Limit,则量化步长QS增加1,否则就保存量化结果退回到外循环。在外循环再次进入内循环时,使用的步长初始值为上一次内循环最后得到的步长QS—min。而当外循环第一次进入内循环时,量化步长的初始值可以i殳为0,当然这时内循环要循环QS一min次才能得到符合要求的量化步长QS—min。在ISO 11172-3 ANNEX—C推荐的方法中,第一次进入内循环时,量化步长QS的初始值quantanf的计算方法为quantanf = system—const * loge(sfm) 等式1等式1中sfm是一种频i普平滑度测度,其计算公式可见于ISO 11172-3ANNEX-C。 sfm的计算过程中使用了函数log(x)和pow(e, x),使其的定点化变得困难。另外sysstem—const时ISO 11172-3 ANNEX—C标准留给具体得6编码器指定的常数。System—const的选择最好能够使得量化步长quantanf得 到的编码长度CL比CL—Limit稍大。在内循环中使用得量化步长QS = quantanf + qquant。 qquant是量化步长QS相对初始化量化步长quantanf增长 的值,每次内循环通过qquant = qquant + 1来增加量化步长。可见只要选择 适当的初始量化步长quantanf,在内循环中就可以减少循环次数来得到 QS—min。但是在ISO 11172-3 ANNEX—C推荐的方法中,计算quantanf中用到 的常数system—const的选择非常困难如果选择的过大,quantanf大于 QS—min,得到的编码长度CL可能小于CLJimit,这样不能保证每次编码都 在规定的范围内使用最大的码长;如果system—const选择得过小,则可能 quantanf距离QS—min很远,这样在编码器第一次进入内循环时要循环的次 数很多才能得到QS—min,导致计算量的浪费。另外,测度sfm的计算不利于 定点实现。所以在^艮多MP3编码器中第一次内循环都使用binsearch的方法 来得QS—min.在下文中,QS—min专指第一次进入内循环时求得的最小量化步长。binSearch算法并不采用逐步累加的方式来得到QS—min;其计算量从理 "^仑上来讲最多只需循环8次就可以在0 - 255的范围内找出QS—min;其步骤 如下:1、 初始化top(最小量化步长)=0, bot(最大量化步长)=QS—MAX, 找出频谱xr的绝对值最大值xrabsmax。2、 使用top作为量化步长,对xrabsmax进行量化,得到量化值q-max, 如果q-max在标准Huffman表允许的最大值内,则跳至步骤3;否则 top=top+l,返回步骤2。3、 step=(top+bot+l)/2,使用step作为量化步长,对xr进行量化,并且 执行内循环的步骤(参考标准IS011172-3 ANNEXC中的内循环步骤), 得到的编码长度为CL。4、 如果CL<=CL_limit,且step等于bot,贝'J QS_min = step,结束。5、 如果CL< = CLJimit,且step等于top,则QS_min=step,结束。6、如果CL<CL—limit,则令bot-step,跳至步骤3;如果CL>=CL—limit 且step既不等于bot也不等于top,则令top3tep,返回步骤3。
技术实现思路
本专利技术要解决的技术问题是提供一种MP3编码量化中的内循环方法及 MP3编码器,能够在量化过程中快速找到第一次内循环时的最小量化步长, 提高量化效率。为了解决上述问题,本专利技术提供了 一种MP3编码量化中的内循环方法, 包括A、 将同一声道中的前若干个颗粒的第一次内循环时的最小量化步长 QS—min分别乘以预定系数后相加,得到当前颗粒预计的第一次内循环时的 最小量化步长QS一minp;所述系数的总和为1;B、 使用QS一minp作为量化步长对当前的频谱xr进行量化,得到的编码 长度为CL;反复根据CL与CL—limit的大小关系相应调节QS一minp的大小、 并采用调节后的QS—minp得到CL,直到CL等于CL—limit、或在小于CL—limit 的情况下尽可能接近CL—limit时,得到当前颗粒的QS—min为QS_minP;其中,根据CL与CL—limit的大小关系相应调节QS—minp的大小是指 当CL〉CL—limit时增大QS—minP,当CL < CL—limit时减小QS—minP。进一步地,将同 一声道中的前若干个颗粒的第 一次内循环时的最小量化 步长QS一min分别乘以预定系数后相加是指将同一声道中的前一个颗粒的QS_min乘以2,同一声道中当前颗粒之 前第二个颗粒的QS—min乘以-1,然后相加。进一步地,当CL 〉 CL—limit时增大QS—minP,当CL < CL—limit时减小 QS—minp具体包括得到CL和CL—limit的差为<formula>formula see original document page 8</formula>;当AD>0时,增大 QS—minp,当AD<0时,减小QS—minP;增大和减小QS—minP的幅度与AD 的绝对Y直成正比。进一步地,步骤B具体包:fe:31、 设置top和AS为0, bot为最大量化补偿;得到频谱xr的绝对值最 大值xrabsmax;32、 使用top作为量化步长对xrabsmax进行量化,得到量化值q-max,如 果q-max在标准Huffman表允许的最大值内,则进行步骤33;否则将top 增力口 1,返回步骤32;33、 i殳置up为bot力口 1, dn为top减1 , step为QS—minP,长口果step小 于top,则令step等于top;34、 使用step作为量化步长对xr进行量化,得到的编码长度为CL,得 到CL减去CLJimit的差AD;35、 当AD等于0时进行步骤37;当AD大于0时,设置AS为大于或等于1的值,设置dn等于step,进 行步骤36;当AD小于0时,如果AS大于或等于1、或是step等于top、或是step -dn<=l则跳至步骤37;否则设置AS为小于或等于-1的值,设本文档来自技高网
...

【技术保护点】
一种MP3编码量化中的内循环方法,包括: A、将同一声道中的前若干个颗粒的第一次内循环时的最小量化步长QS_min分别乘以预定系数后相加,得到当前颗粒预计的第一次内循环时的最小量化步长QS_min↓[p];所述系数的总和为1; B、 使用QS_min↓[P]作为量化步长对当前的频谱xr进行量化,得到的编码长度为CL;反复根据CL与CL_limit的大小关系相应调节QS_min↓[P]的大小、并采用调节后的QS_min↓[P]得到CL,直到CL等于CL_limit、或在小于CL_limit的情况下尽可能接近CL_limit时,得到当前颗粒的QS_min为QS_min↓[P]; 其中,根据CL与CL_limit的大小关系相应调节QS_min↓[P]的大小是指:当CL>CL_limit时增大QS_min↓ [P],当CL<CL_limit时减小QS_min↓[P]。

【技术特征摘要】

【专利技术属性】
技术研发人员:林中松
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1