一种基于极小化全局噪声掩蔽比准则和熵编码的量化的音频编码方法

文档序号:7533199阅读:298来源:国知局
专利名称:一种基于极小化全局噪声掩蔽比准则和熵编码的量化的音频编码方法
技术领域
本发明涉及一种对输入音频信号进行编码和量化的处理方法,具体地说是指一种基于极小化全局噪声掩蔽比准则和熵编码量化的音频编码方法。
MPEG2标准中AAC音频编码标是比MP1、MP2更为先进的音频感知编码标准。与MP1、MP2标准相同,AAC标准也将输入的时域音频信号分割成以帧为长度的块;并将每帧时域信号变换成频域系数,然后将频域系数划分若干频域子带;同时通过心理声学模型对当前帧的时域信号进行分析得到各个频域子带的噪声掩蔽阈值。AAC的比特分配和量化过程与MP1、MP2不同,其中,每个子带的系数用同一个量化步长进行量化,每个子带的量化步长由各自的称为尺度因子的整型变量来表示,此时的比特分配是通过一种隐性的方式实现的,即当需要给某个子带追加(或减少)比特时,就将该子带的尺度因子增加(或减少)1,然后根据此时的尺度因子对该子带进行量化、熵编码和计算编码所需比特数,此时所需比特数和变动前所需比特数之差就是此时对该子带追加(或减少)的比特数。在比特分配和量化的过程中,AAC标准通过两层循环来调整各个子带的尺度因子的大小,并以此来实现各个子带间的比特分配,其中外层循环用来控制各个子带的量化噪声不超过掩蔽阈值,内层循环用来控制量化编码频域系数所需要的比特数不超过当前可用比特数,这两层循环交替进行,直至两层循环的控制条件都被满足或别的退出条件被满足。在上述的外层循环中,各子带的频域系数被由尺度因子所确定的量化步长进行量化,得到量化系数,接着量化系数又被反量化得到反量化系数,然后由频域系数与反量化系数相减得到各个子带的量化噪声;在内层循环中,同样,各个子带的频域系数被量化成量化系数,然后量化系数被多码书的Huffman编码方法编码成相应的码字,再统计这些码字的总长度,这个长度加上其它一些辅助信息的编码长度后就得到了编码当前帧所需的比特数。因此,AAC在比特分配过程中,是通过对系数进行实际的量化,然后根据频域系数和反量化系数计算出量化噪声,并且通过统计量化系数Huffman码字的长度得到编码比特数,这显然要比MP1、MP2中在给定比特数时通过经验值估计噪声精确,但是两层循环的分配过程要比MP1、MP2的比特分配过程复杂得多,并且在目标比特数比透明量化所需比特数小得多的情况下,当量化的两层循环结束时,各个子带的噪声掩蔽比是极不均匀的,在这种情况下,量化是没有达到感知最优解的。
本发明的一种基于极小化全局噪声掩蔽比准则和熵编码量化的音频编码方法,是对输入音频信号进行编码和量化的处理方法,包括如下步骤,(A)将输入音频信号分割成长度为帧的块,每次读入一帧时域信号;(B)对当前帧信号进行时频变换,得到当前帧的频域系数;(C)将频域系数按固定的频带分划划分为若干频域子带;(D)对当前帧输入信号进行心理声学分析,计算各个子带的噪声掩蔽阈值;(E)根据编码码率计算出当前帧信号的可用比特数;(F)根据当前帧可用比特数和各个子带的噪声掩蔽阈值对各个子带的频域系数进行比特分配和量化;(G)对量化系数进行熵编码,并将编码信息和相关边信息写入码流文件。
所述的音频编码方法,其同一个频域子带的系数由同一个步长进行量化。
所述的音频编码方法,其对于每帧信号频域系数的比特分配和量化过程包括如下步骤,(A)给各个子带选择合适的初始量化步长,并对各个子带根据各自的尺度因子进行量化、计算各个子带NMR值、各个子带所需比特数和总共所需比特数;(B)根据最小化最大的子带NMR的原则对各个子带进行比特分配,分配过程包括一个循环过程,循环过程进行到比特恰好被分配完为止,每次循环通过调整一个子带的量化步长来调整总体所需比特数,在每次循环中若步骤(A)中计算出的所需比特数大于可用比特数,则进行如下步骤,(a)在每次循环中找出NMR最小的子带,适当增大该子带的量化步长;(b)以此量化步长对所选子带进行量化,该子带计算NMR值;(c)对所选子带的量化系数进行熵编码,计算该子带所需比特数和总的所需比特数;若步骤(A)中计算出的所需比特数小于可用比特数,则进行如下步骤,(a)在每次循环中找出NMR最大的子带,适当减小该子带的量化步长;(b)以此量化步长对所选子带进行量化,该子带计算NMR值;(c)对所选子带的量化系数进行熵编码,计算该子带所需比特数和总的所需比特数。
所述的音频编码方法,其量化模型表示为 其中x是一个频域系数,Scale_factor是整型的尺度因子, 表示不超过y的最大整数,α和β是两个不大于1的实数。
本发明采用基于极小化全局噪声掩蔽比准则和熵编码量化对音频信号进行编码处理,其优点是量化方法快速的达到最优感知量化结果,既克服了MP1、MP2量化精度不高的缺点,又克服了AAC运算复杂度高的缺点,而且,在可用比特数不足的情况下,也能使量化达到感知效果最优的解。
图2是本发明中比特分配和量化过程的流程框图。
图3是在图2进行改进的一个实施例流程框图。
图4是本发明中比特分配和量化过程的另一个实施例流程框图。
图5是本发明中比特分配和量化过程的再一个实施例流程框图。
图6是本发明中对某一个子带量化系数进行多码书编码的流程框图。
本发明是一种基于极小化全局噪声掩蔽比准则和熵编码量化的音频编码方法,在时域音频信号被分成一定长度的帧;每一帧时域信号通过时频变换后被变换成为频域系数;每一帧的频域系数被划分成不同的频率子带;同时,时域信号通过心理声学模型分析得到各个频域子带的噪声掩蔽阈值;在各个子带噪声掩蔽阈值的控制下,可用比特数被分配给频域系数的各个子带,比特分配时遵循最小化全局噪声掩蔽比的准则。
参见

图1,音频编码器先在步骤101中从音频输入文件中读入长度为一帧的时域信号;然后在步骤102中将读入的时域信号通过时频变换成频域系数;接着在103中根据心理声学中的临界子带的频率区域划分将频域系数划分成若干子带;在104中,根据心理声学模型对当前帧的时域信号进行了心理声学分析,得出当前帧的感知熵和各个子带的感知噪声阈值,为了使音频编码达到感知透明的效果,必须使各个子带系数的编码噪声小于对应的感知噪声阈值;根据得到的感知熵和目标码率在105中计算当前帧编码的可用比特数;在上述步骤完成后,在106中对各个子带实施比特分配和量化的过程,在这个比特分配和量化过程实现了在量化系数所需编码比特数小于目标比特数的前提下使得各个子带噪声掩蔽比的最大值达到最小的最优化过程,分配给各个子带的比特数正是这个最优化过程的解;在完成量化以后,在107中比特分配信息和量化系数就被编码写入码流文件,其中由熵编码过程将量化系数编成码流。这样,对于一帧音频时域信号的编码就完成了。
在本发明的比特分配和量化过程106中,同一个子带内的频域系数用同一个量化步长进行量化,当前帧的可用比特数被分配给各个子带,实际上就是给各个子带设置合适的量化步长。比特分配的目的是使得在整帧系数编码所需比特数不超过可用比特数的约束下,所有子带中最大的NMR值最小化。对于这个目的,本专利是通过如下的过程实现的,首先,给各个子带选定一个合适的量化步长的初始值201、301、401,并计算各子带在初始量化步长下的NMR值、所需比特数以及所需总的比特数;然后进行比特调整循环,在每次循环中,先选出某个子带,调整所选子带的量化步长,然后根据调整后的步长重新量化该子带,计算所选子带NMR值以及所需比特数,并且根据所选子带所需比特数的变动计算此时所需总的比特数,如此循环直至求出上述约束最小化问题的解。给每个子带确定初始步长时,可以选取较大的步长,使得每个子带的系数都被量化为0,此时每个子带被分配的比特数是0,在以后的每次循环中,选出NMR最大的子带,然后适当减小该子带的量化步长,如此循环直到比特数被分配完毕;也可以在初始化时给每个子带确定一个较小的量化步长,使得每个子带的量化噪声都小于感知噪声阈值,并且所需比特数大于可用比特数,在每次循环中,选出NMR最小的子带,适当增大它的量化步长,如此循环直到所需比特数小于可用比特数。参见图2、3、4所示。
作为本发明的一个实施例,对于频域系数的量化可以采取如下的模型, 其中x是一个频域系数,Scale_factor是整型的尺度因子, 表示不超过y的最大整数,α和β是两个不大于1的实数,例如它们可以取值为α=34,]]>β=316.]]>由公式(I)可知,量化步长是尺度因子的函数,并且是单调递减的函数。每一个子带的系数用同一个尺度因子,即同一个量化步长进行量化,对各个子带分配比特的过程实际上是调整各个子带的尺度因子的过程。
图2和图4分别给出了在以(I)式作为量化模型时实现比特分配和量化过程106的两个流程,它们的不同之处在于初始点选取得不同,但它们实现的功能是相同的。
首先根据图2来说明比特分配的实现过程。在201中的可用比特数、掩蔽阈值和频域系数是由图1中的步骤102、103、104和105得到的。比特分配过程开始时,在202中,先对每个子带给出初始尺度因子,使得在用初始尺度因子进行量化时,子带中的系数都被量化为0。例如,当α和β取值为α=34,]]>β=316]]>时,每个子带的初始尺度因子可以取如下的值, 其中xmax是当前子带中绝对值最大的系数。在得出各个子带的初始尺度因子后,在203中计算每个子带的噪声掩蔽比,由于此时各个子带都被量化为0,因此此时的量化噪声就是子带的能量,将子带的能量与噪声掩蔽值相比并且将比值求对数就得到了此时的噪声掩蔽比值。在完成了上述初始化工作后,各个子带被量化为0,分配给各个子带的比特数为0,整帧系数编码所需要的总的比特数只包括一些编码边信息的比特数,然后从这种初始状态开始比特分配循环。每次比特分配循环从204开始,在204中,在所有子带中找出NMR最大的子带。在205中让NMR最大的子带的尺度因子加1,以此尺度因子对该子带重新进行量化,计算该子带新的NMR值和量化编码该子带所需的比特数,然后重新计算编码整帧系数所需的比特数。完成了205中的调整后,在206中判断所需比特数是否超过了可用比特数,如果是,表明比特数已经分配完毕,为了保证所需比特数小于可用比特数,于是转到207,让刚增加1的尺度因子减1,并以该尺度因子对对应子带重新量化,然后结束比特分配过程,此时量化过程同样也已完成;如果206中判断所需比特数小于可用比特数,表明还存在多余比特,则刚作的比特分配有效,并且分配过程转到204继续进行。可以看出,图2中所述比特分配和量化过程将一直进行直到可用比特数被分配完毕,而随着过程的进行各子带NMR的最大值也逐渐减小。
在图2所示的过程中,即使可用比特数足够多,在比特分配的某一个循环中,所有子带的量化系数已经达到了感知透明,即最大的NMR值小于等于0,此时比特分配过程也将继续进行,因此,可以对图2作些改动,使得当达到透明量化时,就结束比特分配过程,从而加快编码速度,如图3所示。图3的整体结构与图2基本一致,只是图3的过程在每次比特分配的循环中,在找出了当前最大的子带NMR后,增加了检验此最大NMR是否大于0的判断,如果NMR大于0,则表明所有子带的量化系数还未达到透明量化,于是继续比特分配过程;如果NMR不大于0,则表明所有子带都已达到感知透明,从而不需要继续追加分配比特,于是直接结束比特分配的过程。
图2和图3都是从0分配比特数的起点出发,然后逐步给各个子带分配比特,直到比特分配完毕或达到透明量化时为止;在图4中给出的比特分配过程与图2和图3不同,是首先给各个子带分配较多的比特数,使得所有子带都已达到透明量化,然后逐步减少各个子带的比特分配数,直到所需比特数小于可用比特数。在图4所示的过程中,先在402中给每个子带选择合适的尺度因子,使得每个子带在各自的尺度因子量化下,都达到感知透明,然后,在403中,计算每个子带的NMR,并且在404中计算所需比特数。在到404为止的初始化工作完成后,进入比特调整循环,首先,在405中判断当前所需比特数是否小于或等于可用比特数,如果是,则表明当前的比特分配结果已经在满足比特分配数小于可用比特数的条件下达到了透明量化,为了充分利用可用比特数,要将多余比特数继续分配,于是转406进入分配多余比特的循环;如果所需比特数大于可用比特数,则必须减少当前比特分配数,于是转410进入减少分配比特的循环。在分配多余比特的循环中,首先在406中找出NMR最大的子带,然后在407中让该子带的尺度因子加1,并以此尺度因子对该子带作量化,同时计算该子带的NMR和所需比特数、以及编码整帧系数所需的比特数,做完407的调整后,在408中判断目前所需比特数是否大于可用比特数,如果是,则表明比特数已经全部分配完毕,于是转409将刚增加1的尺度因子减1,并以此尺度因子重新量化对应子带,然后转413中结束比特分配和量化过程;如果在408的判断中所需比特数不大于可用比特数,则表明还存在比特数有待分配,于是再转406进行下一次的比特分配循环。如果在405的判断中所需比特数大于可用比特数,则必须进入减少比特分配的过程,该过程从410开始,即找出NMR最小的子带,然后在411中将该子带的尺度因子减1,以此尺度因子对该子带重新量化,统计该子带编码所需比特数,并且重新计算对当前整帧量化系数编码所需比特数,做完这一步调整后,在412中判断所需比特数是否小于或等于可用比特数,如果是,则转413结束比特分配,如果否,则转410继续下一次减少分配比特的循环。虽然初始点不同,但是图2和图4所表示的过程完成了同样的优化过程,即在所需比特数不超过可用比特数的约束下,使得最大的子带NMR最小。
在图2、图3、图4所示的过程中,尺度因子的初始化,即各个子带的初始比特分配都只利用了当前帧的信息,在图5中,我们给出了一个充分利用前后连续的两帧之间的相关性进行量化和比特分配的流程,这种量化和比特过程在当前帧信号与前一帧信号有很强的相关性时,能够很大幅度地提高量化的速度。在图5所示的流程中,在当前帧开始量化时,先在501中判断当前帧的信号类型是否与前一帧信号类型相同,如果不相同,则转502,采取框图2、3、4中的某一个方法继续量化,如果相同,则转503,在利用前一帧量化信息的前提下,对当前帧系数进行量化和比特分配。在503中,我们将前一帧量化完成时尺度因子的取值作为当前帧尺度因子的初始值;然后在504中,以当前被初始化后的尺度因子对当前帧的系数进行量化,并且计算所需要消耗的比特数,以及各个子带的NMR指标。完成504中的计算后,进入量化和比特分配的循环,在循环中,首先,在505中判断当前总的所需消耗的比特数是否超过了目标比特数,如果否,则表明还存在多余比特,则转入506进入追加分配比特的子循环;如果是,则转入511进行减少分配比特的子循环。在506中,我们在所有的子带中,选择NMR最大的子带,让该子带的尺度因子增加1,然后以该尺度因子重新对该子带进行量化,并重新计算该子带所需比特数、总的所需比特数、以及该子带的NMR;完成上述计算后,再在507中判断当前总的所需比特数是否超过了目标比特,如果否,则重回506,继续追加分配比特的过程,如果是,则转入508。在508中,判断是否存在这样的子带,这些子带在以初始化后的尺度因子进行量化时被分配了比特,但在量化和比特分配的循环中未被追加分配过比特,如果存在这样的子带,则表明在这些子带中可能还存在着多占用的比特,需要继续进行比特重新分配,则转入515,如果不存在这样的子带,则表明所有子带中都不存在多余比特了,为了保证量化所需比特数小于目标比特,于是转509,让最近尺度因子增加1的子带的尺度因子减小1,重新量化该子带,计算比特数和NMR;然后,进入510,结束量化。如果在505的判断中,所需比特数超过了目标比特数,则转入511,执行与508中同样的判断,即判断是否存在在初始化时被分配了比特,但在量化循环中未被追加分配比特的子带,同样,如果存在这样的子带,也转入515,但如果不存在这样的子带,则转入512,进行减少分配比特的子循环。在512中,在所有已经被分配比特的子带中,选取NMR最小的子带,让该子带的尺度因子减1,并重新量化、计算比特、NMR;然后在513中判断目前所需比特总数是否超过目标比特,如果是,则转512继续减少比特分配的循环,如果否,则转514结束量化过程。在515中我们选出可能占用多余比特数的子带,减少这些子带的比特分配,具体来说我们在所有以初始化后的尺度因子进行量化时被分配了比特,但在量化和比特分配的循环中未被追加分配过比特的子带中,选择NMR最小的子带,让该子带的尺度因子减1,并且重新量化,计算比特数和NMR;完成该操作后,转判断505,开始新一轮的量化循环。
在图2、图3、图4所示的过程中,需要对每个子带的量化系数单独进行编码和统计比特数,为了提高编码效率,本专利中对子带的量化系数运用熵编码技术进行编码,图6给出了运用多码书的HUFFMAN编码方法对单个子带的量化系数进行编码和统计比特数的过程。在多码书的HUFFMAN编码方法中,存有多个对应于不同概率特性的HUFFMAN码表,对于每个子带的量化系数,选择使得编码长度最小的码书对量化系数进行编码,被选中的码书的序号作为边信息将与编码所得HUFFMAN码字一同编入码流。编码过程从601开始,将当前码书序号置为1,然后在602中,用当前码书序号所指码书对当前子带的量化系数进行编码,并统计编码码字的所需比特数,接着在603中将当前码书序号记为最优码书序号,所需比特数记为最小所需比特数,然后进入选择码书的循环。在每次选择码书的循环中,首先在604中将当前码书序号加1,然后在605中判断当前序号是否已经超过了最大码书序号,如果是,则表明整个选择过程已经完成,于是转609,将此时记录的最优码书序号对应的码书作为对当前子带实际编码的码书,记录下该码书的序号,并且将最小比特数记为所需比特数,然后在610中结束此次编码过程;如果在605中判断当前码书序号不超过最大码书序号,则转606用当前码书序号对应的码书对当前子带量化系数进行编码,并统计码字所占比特数,然后在607中比较最小比特数和当前比特数,如果当前比特数小于最小比特数,则表明当前码书优于当前的最优码书,于是在608中将当前比特数记为最小比特数,当前码书序号记为最优码书序号,然后转604进行下一个码书的比较,若507中判断当前比特数不小于最小比特数,则表明当前码书并不优于当前最优码书,于是直接转604进行下一个码书的比较。
上述对一个子带内的量化系数所运用的多码书的HUFFMAN编码方法曾运用于AAC音频编码标准中,该方法在本发明中并不是关键的,对于单个子带量化系数的编码,也可以采取别的熵编码形式,例如可以采取算术编码的方式。
图2、图3、图4和图5只是本发明的四个实施例的过程,但是本发明并不只是局限于这四个实现过程,根据本发明所提出的权利要求中的原则对比特分配和量化过程做的任何形式上而非本质的改动也是属于本发明范围之内的。
权利要求
1.一种基于极小化全局噪声掩蔽比准则和熵编码量化的音频编码方法,是对输入音频信号进行编码和量化的处理方法,其特征是包括如下步骤,(A)将输入音频信号分割成长度为帧的块,每次读入一帧时域信号(101);(B)对当前帧信号进行时频变换,得到当前帧的频域系数(102);(C)将频域系数按固定的频带分划划分为若干频域子带(103);(D)对当前帧输入信号进行心理声学分析,计算各个子带的噪声掩蔽阈值(104);(E)根据编码码率计算出当前帧信号的可用比特数(105);(F)根据当前帧可用比特数和各个子带的噪声掩蔽阈值对各个子带的频域系数进行比特分配和量化(106);(G)对量化系数进行熵编码,并将编码信息和相关边信息写入码流文件(107)。
2.根据权利要求1所述的对输入音频信号进行编码和量化的处理方法,其特征是同一个频域子带的系数由同一个步长进行量化。
3.根据权利要求1、2所述的对输入音频信号进行编码和量化的处理方法,其特征是对于每帧信号频域系数的比特分配和量化过程包括如下步骤,(A)给各个子带选择合适的初始量化步长,并对各个子带根据各自的尺度因子进行量化、计算各个子带NMR值、各个子带所需比特数和总共所需比特数;(B)根据最小化最大的子带NMR的原则对各个子带进行比特分配,分配过程包括一个循环过程,循环过程进行到比特恰好被分配完为止,每次循环通过调整一个子带的量化步长来调整总体所需比特数,在每次循环中若步骤(A)中计算出的所需比特数大于可用比特数,则进行如下步骤,(a)在每次循环中找出NMR最小的子带,适当增大该子带的量化步长;(b)以此量化步长对所选子带进行量化,该子带计算NMR值;(c)对所选子带的量化系数进行熵编码,计算该子带所需比特数和总的所需比特数;若步骤(A)中计算出的所需比特数小于可用比特数,则进行如下步骤,(a)在每次循环中找出NMR最大的子带,适当减小该子带的量化步长;(b)以此量化步长对所选子带进行量化,该子带计算NMR值;(c)对所选子带的量化系数进行熵编码,计算该子带所需比特数和总的所需比特数。
4.根据权利要求3所述的对输入音频信号进行编码和量化的处理方法,其特征是量化模型表示为 其中x是一个频域系数,Scale_factor是整型的尺度因子, 表示不超过y的最大整数,α和β是两个不大于1的实数。
5.根据权利要求4所述的对输入音频信号进行编码和量化的处理方法,其特征是采用(I)式的量化模型,其中对于每帧信号频域系数的比特分配和量化过程包括如下步骤,(A)给各个子带选择合适的尺度因子,使得各个子带的系数在各自的尺度因子所对应的量化步长进行量化时,都被量化为0(202);(B)根据各个子带所对应的掩蔽阈值和当前帧可用比特数对划分成子带的频域系数进行比特分配和量化的循环,每次循环包括如下步骤,(a)选择当前NMR最大的子带,适当增大让该子带的尺度因子(204);(b)用增大后的尺度因子所对应的量化步长对所选子带的系数进行量化,并且计算NMR(205);(c)对所选子带进行熵编码,计算该子带编码所需比特数,并且计算整帧系数编码所需比特数(205);(d)如果此时所需比特数仍小于可用比特数(206),则进入下一次循环,如果所需比特数已经超过了目标比特数,则将刚增大后的尺度因子恢复为增大前的值,并对所选子带重新量化,然后退出比特分配循环(207)。
6.根据权利要求4所述的对输入音频信号进行编码和量化的处理方法,其特征是采用(I)式的量化模型,其中对于每帧信号频域系数的比特分配和量化过程包括如下步骤(A)给各个子带选择合适的尺度因子,使得各个子带的系数在各自的尺度因子所对应的量化步长进行量化时,都被量化为0(302);(B)根据各个子带所对应的掩蔽阈值和当前帧可用比特数对划分成子带的频域系数进行比特分配和量化的循环,每次循环包括如下步骤(a)找出子带NMR中最大的NMR,判断最大NMR是否大于0(304),如果否,则退出比特分配循环,如果是,则继续以下的步骤;(b)对于NMR最大的子带,适当增大该子带的尺度因子(306);(c)用增大后的尺度因子所对应的量化步长对所选子带的系数进行量化,并且计算NMR(306);(d)对所选子带的量化系数进行熵编码,计算该子带编码所需比特数,并且计算整帧系数编码所需比特数(306);(e)如果此时所需比特数仍小于可用比特数(307),则转(a)进入下一次循环,如果所需比特数已经超过了目标比特数,则将增大后尺度因子恢复为增大前的值,并对所选子带重新量化(308),然后退出比特分配循环。
7.根据权利要求4所述的对输入音频信号进行编码和量化的处理方法,其特征是采用(I)式的量化模型,其中对于每帧信号频域系数的比特分配和量化过程包括如下步骤,(A)给各个子带选择合适的尺度因子对各个子带的系数进行量化,使得各个子带的量化噪声都小于各自对应的感知噪声阈值(402);(B)对量化系数进行熵编码,统计对各个子带的系数进行熵编码所需比特数以及总共所需比特数(404);(C)判断所需比特数是否大于目标比特(405),如果是,则转步骤(D)减少分配比特循环,如果否,则转步骤(E)继续分配比特循环;(D)减少分配比特的循环;每次循环包括如下步骤,(a)选出NMR最小的子带,适当减小该子带的尺度因子(410);(b)用减小后的尺度因子所对应的量化步长对所选子带的系数进行量化,并且计算NMR(411);(c)对所选子带的量化系数进行熵编码,计算该子带编码所需比特数,并且计算整帧系数编码所需比特数(411);(d)若所需比特大于可用比特数(412),则转(a)进入下一次循环,否则结束比特分配循环和量化过程;(E)继续分配比特的循环;每次循环包括如下步骤,(a)选出NMR最大的子带,适当增大该子带的尺度因子(406);(b)用增大后的尺度因子所对应的量化步长对所选子带的系数进行量化,并且计算NMR(407);(c)对所选子带的量化系数进行熵编码,计算该子带编码所需比特数,并且计算整帧系数编码所需比特数(407);(d)如果此时所需比特数仍小于可用比特数(408),则转(a)进入下一次循环,如果所需比特数已经超过了目标比特数,则将增大后尺度因子恢复为增大前的值,并对所选子带重新量化(409),然后退出比特分配循环。
8.根据权利要求4所述的对输入音频信号进行编码和量化的处理方法,其特征是采用(I)式的量化模型,其中对于每帧信号频域系数的比特分配和量化过程包括如下步骤,(A)判断当前帧信号类型是否与前一帧信号类型相同(501),如果否,则对当前帧系数进行量化(502),如果是,则继续以下的步骤;(B)以上一帧系数量化完成时各个子带的尺度因子值作为当前系数各个子带尺度因子的初始值(503),并且以这些尺度因子值对当前帧系数进行量化,计算各个子带的NMR值(504);(C)对量化系数进行熵编码,统计对各个子带的系数进行熵编码所需比特数以及总共所需比特数(504);(D)判断所需比特数是否大于目标比特(505),如果是,则减少分配比特,如果否,则继续分配比特;(E)减少分配比特过程,包括如下步骤(a)判断是否存在初始化时被分配了比特,但在量化循环中未被分配比特的子带(511),如果是,则转步骤(G);如果否,则进行以下步骤进行减少比特的分配的子循环;(b)减少比特分配的子循环,包括如下步骤(I)在所有已经被分配了比特的子带中,选出NMR最小的子带,适当减小该子带的尺度因子(512);(II)用减小后的尺度因子所对应的量化步长对所选子带的系数进行量化,并且计算噪声掩蔽比NMR(512);(III)对所选子带的量化系数进行熵编码,计算该子带编码所需比特数,并且计算整帧系数编码所需比特数(512);(IV)若所需比特仍大于可用比特数(513),则转(i)进入下一次子循环,否则结束比特分配循环和量化过程(514),(F)继续分配比特过程,包括如下步骤(a)追加分配比特的子循环,包括如下步骤(I)选出NMR最大的子带,适当增大该子带的尺度因子(506);(II)用增大后的尺度因子所对应的量化步长对所选子带的系数进行量化,并且计算噪声掩蔽比NMR(506);(III)对所选子带的量化系数进行熵编码,计算该子带编码所需比特数,并且计算整帧系数编码所需比特数(506);(IV)如果此时所需比特数仍未超过目标比特数(507),则转(i)进入下一次子循环,否则跳出子循环,继续子循环以下的步骤,(b)判断是否存在初始化时被分配了比特,但在量化循环中未被分配比特的子带(508),如果是,则转步骤(G);如果否,则进行以下步骤;(c)对最后尺度因子增大的子带,将增大后尺度因子恢复为增大前的值,并对该子带重新量化(509),然后结束比特分配和量化过程(510),(G)在所有初始时被分配了比特,但在循环中未被追加分配比特的子带中,选取NMR最小的子带,适当减小该子带的尺度因子,然后重新对该子带进行量化,并计算该子带的NMR和所需比特数(515);完成上述操作后,转步骤(G)进行下次比特分配循环。
全文摘要
本发明公开了一种基于极小化全局噪声掩蔽比准则和熵编码量化的音频编码方法,是对输入音频信号进行编码和量化的处理方法,在本发明中,时域音频信号被分成一定长度的帧;每一帧时域信号通过时频变换后被变换成为频域系数;每一帧的频域系数被划分成不同的频率子带;同时,时域信号通过心理声学模型分析得到各个频域子带的噪声掩蔽阈值;在各个子带噪声掩蔽阈值的控制下,可用比特数被分配给频域系数的各个子带,比特分配时遵循最小化全局噪声掩蔽比的准则,在量化和比特分配的过程中,我们对量化系数实行了熵编码,从而有效地提高了压缩效率。
文档编号H03M7/30GK1461112SQ0314621
公开日2003年12月10日 申请日期2003年7月4日 优先权日2003年7月4日
发明者潘兴德, 朱晓明 申请人:北京阜国数字技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1