一种mp3编码量化中的内循环方法及mp3编码器的制作方法

文档序号:2832139阅读:349来源:国知局
专利名称:一种mp3编码量化中的内循环方法及mp3编码器的制作方法
技术领域
本发明涉及音频编码领域,尤其涉及一种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的值,设置叩等于 step,进行步骤36;
36、 ?文变step, 4吏step 土曾力口 △ S;
如果改变后的step小于或等于dn,则step等于dn加l,返回步骤M;
如果改变后的step大于或等于up,则令step等于up减1,如果得到的 step等于或小于dn,则令st印等于up后返回步骤34,如果得到的step大于 dn则直接返回步骤34;
如果改变后的step小于up且大于dn,则直接返回步骤34;
37、 得到当前颗粒的QS一min为step,结束。 进一步地,步骤35中
当AD小于O时,AS为AD除以C后减去1的差;当AD大于O时, △ S为AD除以C后加上1的和;C为一在16到1024之间的常凄t。
本发明还提供了一种MP3编码量化中的内循环装置,包括量化单元,用于当接收到QS—minp时,以QS—minp作为量化步长对当前 的频谱xr进行量化,得到的编码长度为CL;
预估单元,用于将同一声道中的前若干个颗粒的第一次内循环时的最小 量化步长QS—min分别乘以预定系数后相加,得到当前颗粒预计的第 一次内 循环时的最小量化步长QS—minp,并发送给所述量化单元;所述系数的总和
为i;
调节单元,用于根据所述CL与CL—limit的大小关系相应调节QS—minP 的大小,并将调节后的QS一minp发送给所述量化单元;当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,然后相加得到所述QS—minp。
进一步地,所述预估单元当CL〉CL—limit时增大QS—minP,当CL < CL—limit时减小QS—minp具体是指
所述预估单元得到CL和CL—limit的差为AD=CL - CL—limit;当AD>0 时,增大QS—minp,当AD<0时,减小QS—minP;增大和减小QS—minP的幅 度与AD的绝对值成正比。
进一步地,调节单元具体包括修正模块;
初始化模块,用于设置top和AS为0, bot为最大量化补偿;得到频谱 xr的绝对值最大值xrabsmax;使用top作为量化步长对xrabsmax进4亍量化, 得到量化值q-max;如果q-max不在标准Huffman表允许的最大值内,则将 top增力口 1再次量化;否则i殳置up为bot力口 1 , dn为top减1, step为QS—minP, 如果step小于top,则令step等于top,并将step作为QS—minp发送给所述 量化单元;输出模块,用于将step作为当前Granule的QS_min输出; 调节冲莫块,用于将量化单元得到的CL减去CLJimit得到AD;当AD 等于O时指示所述输出单元输出;当AD小于0时,如果AS大于或等于1、 或是step等于top、或是step-drK^则指示所述输出单元输出,否则设置 AS为小于或等于-1的值,设置up等于step,指示所述修正模块工作;当 AD大于0时,设置AS为大于或等于1的值,设置dn等于step,指示所述 修正模块工作;
所述修正才莫块用于改变step,使step增加△ S;如果改变后的step小于 up且大于dn,则直接将step作为QS一minp发送给所述量化单元;如果改变 后的step小于或等于dn,则step等于dn加l,将step作为QS—minp发送给 所述量化单元;如果改变后的step大于或等于up,则令step等于up减1, 如果得到的step等于或小于dn,则令step等于up后将step作为QS—minP 发送给所述量化单元,大于dn则直接将step作为QS—minp发送给所述量化 单元。
进一步地,所述修正模块当AD小于O时,令AS为AD除以C后减去 1的差;当AD大于0时,令AS为AD除以C后加上1的和;C为一在16 到1024之间的常数。
本发明在MP3编码量化的内循环步骤中,通过预测方法来减少确定量 化步长所需的运算量,提高了量化效率;本发明的优化方案根据编码长度和 规定的最大编码长度的差来实时调节步长,使得该过程的计算量大大减小, 可以进一 步提高量化效率。


图1是现有技术中内循环的流程示意图; 图2是本发明实施例一中的流程示意图。
具体实施例方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。本发明的提出基于以下思路在研究了音频信号、频谱能量及量化步长 之间的关系后,发现音频信号往往在频i普能量和特征上前后相关,因此可以 根据前面的信号特征来预测后来的音频信号;而第一次进入内循环时的最小 量化步长QS—min的大小和频谱能量的大小也密切相关当频谱能量大时, 往往(^_1^11也大,当频谱能量小时,往往QS—min也小。所以预测方法也 可以使用在量化步长的估算中。
实施例一, 一种MP3编码量化中的内循环方法,包括
A、 # 据在同一个声道中以前得到的QS—min值来预测当前的QS—min 值。由于MP3编码量化是以Granule (颗粒)为单位( 一个Granule包含576 个样本Sample值),当前Granule可以参考前一个或者更多Granule的QS—min 值来估计当前Granule的QS—min值。
将同 一声道中的前若干个Granule的QS一min分别乘以预定系数后相加, 得到预计的当前Granule的QS—min;所述系数的总和为1。
下文中,QS—min.i表示同一声道中当前颗粒之前第i个Granule的 QS—min值,QS—minp 表示对当前Granule的QS— min的予页测i"直。
比如QS—minp 二 ( QS一min.! + QS—min_2) /2, QSmin.,和QS_min.2的 系数均为1/2,总和为1。再比如QS—minP = (3QS—min., + 2QS__min—2+ QS—min.3)/6, QS—min陽,、QS—min》QS—min.3的系数分別为1/2、 1/3和 1/6,总和也为1。可以根据实际情况或实验来确定使用同一声道中前几个 Granule的QS—min ,以及各QS—min的系数。
本实施例中,可以但不限于使用下式来估计当前Granule的QS—min值
QS—minP = 2 x QS—min—i — QS—min—2 等式2
B、 使用QS—minp作为量化步长对当前的频谱xr进行量化,得到的编码 长度为CL;反复根据CL与CL—limit的大小关系相应调节QS—minp的大小、 并采用调节后的QS一minp得到CL,直到CL等于CLJimit、或在小于CL—limit 的情况下尽可能接近CL—limit时,得到当前颗粒的QS一min为QS—minP。才艮 据CL与CL—limit的大小关系相应调节QS—minp的大小可以是指当CL> CL—limit时,增大QS—minp;当CL < CL—limit时,减小QS—minP。
12所述的"尽可能接近"的情况是指只要再减小QS—minP,所得到的 CL就会大于CL—limit的情况。
本实施例中,步骤B中根据CL与CL—limit的大小关系调节QS—minP 的大小也可以是指先得到CL和CL—limit的差为AD二 CL - CL—limit;根 据AD来对QS—minp进行调整以逼近最终的QS—min值当AD>0时,增大 QS—minP,当AD<0时,减小QS—minP。增大和减小的幅度可以与AD的绝 对值成正比。
本实施例的一种实施方式中,步骤B如图2所示,具体可以包括
Bl、初始化top(最小量化步长)O, bot(最大量化步长)-QS—MAX。
△ S=0( △ S表示量化步长的改变值)。找出频谱xr的绝对值最大值xrabsmax。
B2、使用top作为量化步长对xrabsmax进行量化,得到量化值q-max,如 果q-max在标准Huffman表允许的最大值内,则进行步骤B3;否则 top=top+l,返回步骤B2。
B3、设置变量up=bot+l (表示已知的使CL小于CL—limit的最大步长), dn=top — 1 (表示已知的使CL大于CL—limit的最小步长),step = QS—minP, ^口果step<top, step = top。
实际应用中,步骤A和B不需要依次进行,步骤A可以在步骤B4前 的任一步进行。
B4、使用step作为量化步长对xr进行量化,并且执行内循环,得到的 编码长度为CL, △ D= CL - CL—limit。
B5、如果AD二O,则跳至步骤BIO,否则进行步骤B6。
B6、如果ADO则进行步骤B7,否则设置ASX,且设置dn=step, 然后跳至步骤B9。
B7、如果AS大于或等于l,则跳至步骤B10; AS》1意味着前一次时
△ D>0,本次是step加上AS后计算AD,该AD〈0,因此得到的CL是在 小于CL—limit的情况下尽可能接近CL—limit,所以可以认为此时的st印就是 当前Granule的QS—min 了 ;
如果step等于top (表明了量化步长为最小允许的步长,且编码长度CL),则跳至步骤B10;因为此时step已经减小 到下限了 ,不能再减小step以提高CL,所以得到的CL是在小于CLJimit 的情况下尽可能接近CL—limit,可以认为top就是当前Granule的QS—min 了;
如果step - dn<=l,则跳至步骤BIO; 如果没有跳至步骤BIO,则进行步骤B8。
图2中是依次判断是否AS大于或等于1、是否step等于top、是否st印 -dn<=l,而实际应用时这三次判断步骤的先后可以任意调整,或并行。
B8、设置AS《-1,且设置up-step,进行步骤B9。
B9、改变量化步长step=step+ △ S;
如果改变后的step小于或等于dn,则step=dn+l,返回步骤B4;
如果改变后的step大于或等于up,则令step=up- 1,如果得到的step 等于dn,则令step=up后返回步骤B4,如果得到的step大于dn则直接返回 步骤B4;
如果改变后的step小于up且大于dn,则直接返回步骤B4。 B10、得到当前Granule的QS—min为step,结束。
为了接下来计算同一声道的下一个Granule的QS—min,此时还可以令 QS—mirL2 = QS—min—, , QS—min-产QS一min。
实际应用中,可以不按照从B5到B8的顺序依次进行;比如可以先比 较AD和0的大小,当AD=0时进行步骤B10;当AD大于0时,设置AS〉4, 设置dn二step,进行步骤B9;当AD小于0时,如果△ S小于1并且step大 于top,则设置AS〈^- 1,设置up-step,进行步骤B9,否则进行步骤BIO。
另夕卜,实际应用中也可以采用其它以QS—mhip为基础值,逐步逼近的方 法来实现步骤B,不限于上述具体步骤。比如采用binSearch算法,但第一 次的step采用QS—minp。再比如可以不引入AD,直接用CL和CL—limit之 间的大小关系判断所要进行的步骤。
14本实施例中,所述△S可以为
[-1,AD<0〗 |l,A£ >0
等式3
本实施例中,所述AS也可以为
tAD/C + l,A£ >Oj 等式4
此时是根据AD的大小相应改变厶S的大小,计算步骤将进一步缩减。
在等式4中,所述C是根据经验或实验得出的常数, 一般来说C在16 到1024之间。C的最佳选择应该使循环次数最小,往往和编码所要达到的 比特率相关。比如在MP3编码比特率为192Kbits/s时,选择C=128能够把
循环次数减到很少。
实施例二、 一种MP3编码量化中的内循环装置,包括
量4b单元,用于当才妻4丈到QS一minp时,以QS—minP 作为量化步长对当前 的频谱xr进行量化,得到的编码长度为CL;
预估单元,用于将同一声道中的前若千个颗粒的第 一次内循环时的最小 量化步长QS_min分别乘以预定系数后相加,得到当前颗粒预计的第一次内 循环时的最小量化步长QS—minp,并发送给所述量化单元;所述系数的总和
为i;
调节单元,用于#4居所述CL与CL—limit的大小关系相应调节QS—minP 的大小,并将调节后的QS一minp发送给所述量化单元;当CL等于CL—limit、 或在小于CLJimit的情况下尽可能接近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,同 一声道中当前颗粒之前第二个颗粒的
15QS—min乘以-1,然后相加得到所述QS—minp。
本实施例中,所述预估单元当CL〉CL—limit时增大QS—minP,当CL〈 CL—limit时减小QS—minp具体是指
所述预估单元得到CL和CL—limit的差为AD= CL - CL—limit;当AD>0 时,增大QS—minp,当AD<0时,减小QS—minP;增大和减小QS—minP的幅 度与AD的绝对值成正比。
本实施例的一种实施方式中,调节单元具体包括修正模块;
初始化模块,用于设置top和AS为0, bot为最大量化补偿;得到频谱 xr的绝对值最大值xrabsmax;使用top作为量化步长对xrabsmax进行量化, 得到量化值q-max;如果q-max不在标准Huffman表允许的最大值内,则将 top增加1再次量化;否则设置up为bot力口 1, dn为top减1 , step为QS_minP, 如果step小于top,则令step等于top,并将step作为QS—minP发送给所述 量化单元;
输出模块,用于将step作为当前Granule的QS—min输出;
调节才莫块,用于将量化单元得到的CL减去CL—limit得到AD;当AD 等于0时指示所述输出单元输出;当AD小于0时,如果AS大于或等于1、 或是step等于top、或是step - dn<=l则指示所述输出单元输出,否则设置 AS为小于或等于-1的值,设置up等于step,指示所述修正模块工作;当 △ D大于0时,设置AS为大于或等于1的值,设置dn等于step,指示所述 修正模块工作;
所述修正模块用于改变step,使step增加△ S;如果改变后的step小于 up且大于dn,则直接将step作为QS—minP发送给所述量化单元;如果改变 后的step小于或等于dn,则step等于dn加1 ,将step作为QS—minp发送给 所述量化单元;如果改变后的step大于或等于up,则令step等于up减1, 如果得到的step等于或小于dn,则令step等于up后将step作为QS—minP 发送给所述量化单元,大于dn则直接将step作为QS—minp发送给所述量化 单元。
该实施方式中,所述修正模块可以当AD小于0时,令AS为AD除以
16C后减去l的差;当AD大于0时,令AS为AD除以C后加上1的和;C 为一在16到1024之间的常数;也可以当AD小于O时,令AS为-1;当 △ D大于0时,令AS为1。
其它实现细节可以同实施例一中所述。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的 形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
权利要求
1、一种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。
2、 如权利要求1所述的内循环方法,其特征在于,将同一声道中的前 若干个颗粒的第一次内循环时的最小量化步长QS一min分别乘以预定系数后 相加是指将同 一声道中的前一个颗粒的QS—min乘以2,同一声道中当前颗粒之 前第二个颗粒的QS—min乘以-1,然后相加。
3、 如权利要求1或2所述的内循环方法,其特征在于,当CL〉CL—limit 时增大QS—minP,当CL<CL—limit时减小QS—minp具体包括得到CL和CL—limit的差为AD二 CL - CL—limit;当AD>0时,增大 QS—minp,当AD<0时,减小QS—minP;增大和减小QS—minP的幅度与AD 的绝对l直成正比。
4、 如权利要求1或2所述的内循环方法,其特征在于,步骤B具体包括31、 设置top和AS为O, bot为最大量化补偿;得到频语xr的绝对值最 大值xmbsmax;32、 4吏用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减去CL—limit的差△ D;,35、 当AD等于0时进行步骤37;当AD大于0时,设置AS为大于或等于1的值,设置dn等于step,进 行步骤36;当AD小于0时,如果AS大于或等于1、或是step等于top、或是step -dn<=l则跳至步骤37;否则设置AS为小于或等于-1的值,设置up等于 step,进4亍步骤36;,36、 改变step,使step增力口AS;如果改变后的step小于或等于dn,则step等于dn加l,返回步骤34;如果改变后的step大于或等于up,则令step等于up减1,如果得到的 step等于或小于dn,则令step等于up后返回步骤34,如果得到的step大于 dn则直接返回步骤34;如果改变后的step小于up且大于dn,则直接返回步骤34;,37、 得到当前颗粒的QS—min为step,结束。
5、 如权利要求4所述的内循环方法,其特征在于,步骤35中当AD小于O时,AS为AD除以C后减去1的差;当AD大于O时, △ S为AD除以C后加上1的和;C为一在16到1024之间的常数。
6、 一种MP3编码量化中的内循环装置,其特征在于,包括量化单元,用于当接收到QS—rninp时,以QS—minp作为量化步长对当前 的频谱xr进行量化,得到的编码长度为CL;预估单元,用于将同一声道中的前若干个颗粒的第一次内循环时的最小量化步长QS一min分别乘以预定系数后相加,得到当前颗粒预计的第 一次内 循环时的最小量化步长QS一mitip,并发送给所述量化单元;所述系数的总和为i;调节单元,用于根据所述CL与CL—limit的大小关系相应调节QS一minp 的大小,并将调节后的QS—minp发送给所述量化单元;当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。
7、 如权利要求6所述的内循环装置,其特征在于所述预估单元将同一声道中的前若干个颗粒的第一次内循环时的最小 量化步长QS一min分别乘以预定系数后相加是指将同 一声道中的前一个颗粒 的QS一min乘以2,同一声道中当前颗粒之前第二个颗粒的QS一min乘以-1, 然后相加得到所述QS—minp。
8、 如权利要求6或7所述的内循环装置,其特征在于,所述预估单元 当CL 〉 CL—limit时增大QS—minP,当CL < CLJimit时减小QS—minP具体是 指所述预估单元得到CL和CL—limit的差为AD= CL - CL—limit;当AD>0 时,增大QS—minp,当ADO时,减小QS—minP;增大和减小QS—minP的幅 度与AD的绝对^i成正比。
9、 如权利要求1或2所述的内循环装置,其特征在于,调节单元具体 包括修正模块;初始化模块,用于设置top和AS为0, bot为最大量化补偿;得到频谱 xr的绝对值最大值xrabsmax;使用top作为量化步长对xrabsmax进行量化, 得到量化值q-max;如果q-max不在标准Huffman表允许的最大值内,则将 top增力口 1再次量4b;否则i殳置up为bot力口 1, dn为top减1, step为QS—minP, 如果step小于top,则令step等于top,并将step作为QS—minp发送给所述量化单元;输出模块,用于将step作为当前Granule的QS—min输出;调节模块,用于将量化单元得到的CL减去CL—limit得到AD;当AD 等于O时指示所述输出单元输出;当AD小于0时,如果AS大于或等于1、 或是step等于top、或是step - dn<=l则指示所述输出单元输出,否则设置 AS为小于或等于-1的值,设置up等于step,指示所述修正模块工作;当 AD大于0时,设置AS为大于或等于1的值,设置dn等于step,指示所述 修正模块工作;所述修正模块用于改变step,使step增加AS;如果改变后的step小于 up且大于dn,则直4妻将step作为QS—minp发送给所述量化单元;如果改变 后的step小 于或等于dn,则step等于dn加l,将step作为QS—minp发送给 所述量化单元;如果改变后的step大于或等于up,则令step等于up减1, 如果得到的step等于或小于dn,则令step等于up后将step作为QS—minP 发送给所述量化单元,大于dn则直接将step作为QS—minp发送给所述量化 单元。
10、如权利要求4所述的内循环方法,其特征在于所述修正模块当AD小于0时,令AS为AD除以C后减去1的差;当 AD大于0时,令AS为AD除以C后加上1的和;C为一在16到1024之间的常数。
全文摘要
MP3编码量化中的内循环方法及MP3编码器;方法包括将同一声道中的前若干个颗粒第一次内循环时的最小量化步长分别乘以预定系数后相加,得到当前颗粒预计的第一次内循环时的最小量化步长QS_min<sub>p</sub>;所述系数的总和为1;使用QS_min<sub>P</sub>作为量化步长对当前的频谱xr进行量化,得到的编码长度为CL;反复根据CL与CL_limit的大小关系相应调节QS_min<sub>P</sub>的大小、并采用调节后的QS_min<sub>P</sub>得到CL,直到CL等于CL_limit、或在小于CL_limit的情况下尽可能接近CL_limit时,得到当前颗粒的QS_min为QS_min<sub>P</sub>。本发明能快速找到第一次内循环时的最小量化步长,提高效率。
文档编号G10L19/00GK101593521SQ200910088069
公开日2009年12月2日 申请日期2009年7月1日 优先权日2009年7月1日
发明者林中松 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1