计算、量化、音频编码的装置和方法及程序的制作方法

文档序号:6580074阅读:185来源:国知局

专利名称::计算、量化、音频编码的装置和方法及程序的制作方法
技术领域
:本发明涉及计算装置和方法、量化装置和方法、音频编码装置和方法及程序,并且更具体地涉及使得能够更有效地执行计算处理的计算装置和方法、量化装置和方法、音频编码装置和方法及程序。
背景技术
:MPEG(运动图像专家组)音频标准是已知的用于对音频信号编码的方案。MPEG音频标准包括多种编码方案,其中,称为"MPEG-2音频标准AAC(高级音频编码)"的编码方案在ISO/IEC(国际标准化组织/国际电工技术委员会)13818-7中被标准化。称为"MPEG-4音频标准AAC"的另一编码方案也在扩充的ISO/IEC14496-3中被标准化。在下文中,将MPEG-2音频标准AAC和MPEG-4音频标准AAC总称为"AAC标准"。遵从AAC标准的现有技术的音频编码装置包括心理声学模式保持(psychoacousticmodelholding)部件、增益控制部件、频谱处理部件、量化/编码部件以及复用器部件。心理声学模式保持部件沿着时间轴将输入到音频编码装置中的音频信号划分为多块,并且根据人类听觉特性分析每个划分出的频带的音频信号,以计算每个划分出的频带的可容忍误差强度。同时,增益控制部件将输入音频信号划分为四个相等间隔的频带,并且对预定频带的音频信号执行增益调节。频谱处理部件将已经过增益调节的音频信号转换为频域频谱数据,并且基于心理声学模式保持部件计算出的可容忍误差强度对频谱数据执行预定处理。量化/编码部件将经过预定处理的频谱数据(音频信号)转换为码串,复用器部件在该码串上复用各种信息以输出比特流。6上面讨论的频谱处理部件对频域频谱数据执行称为"TNS(瞬时噪声整形"的处理以控制时间轴上的量化噪声波形。对于TNS处理,具体地,提出了利用能够用比线性预测所使用的参数更少的参数表示复杂波形的FM合成方案来预测频域频谱数据,求得作为与该信号的差分的残差(residual)信号,并且对参数和残差信号编码,这获得了比利用线性预测的处理更高效的编码处理(例如参见日本未实审专利申请公报No.2006-47561)。
发明内容然而,由于上面讨论的TNS处理使用了诸如反正弦函数和正弦函数之类的非线性函数,因此,其算法可能较复杂并且可能要执行大量周期。由于安装在上面讨论的音频编码装置中的CPU(中央处理单元)和/或DSP(数字信号处理器)具有比个人计算机的CPU的操作频率低的数百Hz的操作频率,因此,希望避免使用可能要执行大量周期的函数,例如数学库中的函数。因此,希望使得能够更高效地执行计算处理。根据本发明第一实施例,提供了一种计算装置,包括范围计算装置,用于计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及离散值输出装置,用于在输入值被输入时,输出与包含已输入的输入值的范围相对应的预定离散值。计算装置还可以包括范围表制成装置,用于制成使输入值的范围与预定离散值相关联的范围表,并且离散值输出装置基于范围表输出与包含已输入的输入值的范围相对应的预定离散值。计算装置还可以包括哈希(hash)表制成装置,用于基于范围表制成哈希表,并且离散值输出装置基于哈希表指定针对范围表的初始搜索值,并且基于初始搜索值和范围表输出与包含已输入的输入值的范围相对应的预定离散值。离散值输出装置可以对包含已输入的输入值的范围执行二进制搜索,并且输出与所搜索的范围相对应的预定离散值。范围计算装置可以预先计算与预定离散值相对应的输入值的范围。根据本发明的第一实施例,提供了一种计算方法,包括以下步骤计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及当输入值被输入时,输出与包含已输入的输入值的范围相对应的预定离散值。根据本发明的第一实施例,提供了一种使计算机执行处理的程序,所述处理包括以下步骤计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及当输入值被输入时,输出与包含已输入的输入值的范围相对应的预定离散值。根据本发明的第二实施例,提供了一种量化装置,包括范围计算装置,用于计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围;以及量化值输出装置,用于在输入值被输入时,输出与包含己输入的输入值的范围相对应的预定量化值。根据本发明的第二实施例,提供了一种量化方法,包括以下步骤计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围;以及在输入值被输入时,输出与包含已输入的输入值的范围相对应的预定量化值。根据本发明的第二实施例,提供了一种使计算机执行处理的程序,所述处理包括以下步骤计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围;以及在输入值被输入时,输出与包含已输入的输入值的范围相对应的所述预定量化值。根据本发明的第三实施例,提供了一种音频编码装置,包括线性预测装置,用于对通过转换音频信号而获得的频域频谱数据执行线性预测,以获得反射(reflection)系数;量化装置,用于量化反射系数以获得量化值,并且相逆地量化量化值以获得逆量化值;范围计算装置,用于预先计算可以给出预定量化值的反射系数的范围;系数转换装置,用于将逆量化值转换为线性预测系数;以及残留信号计算装置,用于利用线性预测系数计算频谱数据与经过了线性预测的频谱数据之间的残留信号,其中,当反射系数被输入时,量化装置获得与包含已输入的反射系数的范围相对应的预定量化值。根据本发明的第三实施例,提供了一种音频编码方法,包括以下步骤对通过转换音频信号而获得的频域频谱数据执行线性预测,以获得反射系数;量化反射系数以获得量化值,并且枏逆地量化量化值以获得逆量化值;预先计算可以给出预定量化值的反射系数的范围;将逆量化值转换为线性预测系数;以及利用线性预测系数计算频谱数据与经过了线性预测的频谱数据之间的残留信号,其中,当在量化步骤中反射系数被输入时,获得与包含已输入的反射系数的范围相对应的预定量化值。根据本发明的第三实施例,提供了一种使计算机执行处理的程序,所述处理包括以下步骤对通过转换音频信号而获得的频域频谱数据执行线性预测,以获得反射系数;量化反射系数以获得量化值,并且相逆地量化量化值以获得逆量化值;预先计算可以给出预定量化值的反射系数的范围;将逆量化值转换为线性预测系数;以及利用线性预测系数计算频谱数据与经过了线性预测的频谱数据之间的残留信号,其中,当在量化步骤中反射系数被输入时,获得与包含已输入的反射系数的范围相对应的预定量化值。在本发明的第一实施例中,计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围,并且当输入值被输入时,输出与包含已输入的输入值的范围相对应的预定离散值。在本发明的第二实施例中,计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围,并且当输入值被输入时,输出与包含已输入的输入值的范围相对应的预定量化值。在本发明的第三实施例中,对通过转换音频信号而获得的频域频谱数据执行线性预测,以获得反射系数;量化反射系数以获得量化值,并且相逆地量化量化值以获得逆量化值;预先计算可以给出预定量化值的反射系数的范围;将逆量化值转换为线性预测系数;以及利用线性预测系数计算频谱数据与经过了线性预测的频谱数据之间的残留信号;并且当在量化步骤中反射系数被输入时,获得与包含已输入的反射系数的范围相对应的预定量化值。根据本发明的第一和第二实施例,可以更高效地执行计算处理。根据本发明的第三实施例,可以更高效地执行TNS处理。图1是示出根据本发明一个实施例的音频编码装置的示例性配置的框图2是示出图1的音频编码装置中的TNS处理部件的示例性配置的框图3是图示出由图2的TNS处理部件执行的范围计算处理的流程图;图4是图示出由图2的TNS处理部件执行的TNS处理的流程图;图5示出了用C语言编写的图4的流程图的步骤S53中执行的处理的示例性程序;图6是示出TNS处理部件的另一示例性配置的框图7是图示出由图6的TNS处理部件执行的范围表制成处理的流程图8是图示出由图6的TNS处理部件执行的TNS处理的流程图9示出了用C语言编写的图8的流程图的步骤S153、S154中执行的处理的示例性程序;图10示出了使用定点数取代图9的示例性程序中的浮点数的情况下用C语言编写的示例性程序;图11是示出TNS处理部件的又一示例性配置的框图12是图示出由图11的TNS处理部件执行的哈希表制成处理的流程图13是图示出由图11的TNS处理部件执行的TNS处理的流程图;图14示出了用C语言编写的图13的流程图的步骤S253中执行的处理的示例性程序;图15是图示出当应用各个TNS处理时执行的周期数的表;图16是示出根据本发明一个实施例的计算装置的示例性配置的框10图17是图示出由图16的计算装置执行的范围表制成处理的流程图;图18是图示出由图16的计算装置执行的离散值输出处理的流程以及图19是示出个人计算机的示例性配置的框图。具体实施例方式下面将参考附图描述本发明的实施例。将以如下顺序进行描述。1.第一实施例2.第二实施例3.第三实施例4.执行结果5.第四实施例<1.第一实施例>[音频编码装置的示例性配置]图1示出了根据本发明一个实施例的音频编码装置的配置。图1的音频编码装置遵从AAC标准,并且包括心理声学模式保持部件11、增益控制部件12、频谱处理部件13、量化/编码部件14以及复用器部件15。输入到音频编码装置的音频信号被提供给心理声学模式保持部件11和增益控制部件12。心理声学模式保持部件11沿着时间轴将输入的音频信号划分为多块,并且根据人类听觉特性来分析每个划分出的频带中的块形式的音频信号,以计算每个划分出的频带的可容忍误差强度。心理声学模式保持部件11将计算出的可容忍误差强度提供给频谱处理部件13和量化/编码部件14。在根据AAC标准制成的作为编码算法的三种简档(profile),即Main、LC(低复杂度)和SSR(可縮放采样率)简档中,仅针对SSR简档使用增益控制部件12。增益控制部件12将输入的音频信号划分为四个相等间隔的频带,并且例如对除了最低频带之外的频带中的音频信号执行增益调节,以向频谱处理部件13提供调节结果。ii频谱处理部件13将经过增益控制部件12执行的增益调节的音频信号转换为频域频谱数据。频谱处理部件13还基于从心理声学模式保持部件11提供来的可容忍误差强度控制其子组件,以对频谱数据执行预定处理。频谱处理部件13包括MDCT(经修改的离散余弦变换)部件21、TNS(瞬时噪声整形)处理部件22、强度/耦合部件23、预测部件24以及M/S立体声(中间/旁边立体声)部件25。MDCT部件21将从增益控制部件12提供来的时域音频信号转换为频域频谱数据(MDCT系数),并且将转换结果提供给TNS处理部件22。TNS处理部件22就好像频谱数据是时域信号那样来对来自MDCT部件21的频谱数据执行线性预测,从而对频谱数据应用预测滤波,并且将滤波后的结果作为比特流提供给强度/耦合部件23。强度/耦合部件23利用不同声道之间的关联性对作为频谱数据的来自TNS处理部件22的音频信号执行压縮处理(立体声关联编码处理)。仅针对上面讨论的三种简档中的Main简档使用预测部件24。预测部件24利用经过强度/耦合部件23执行的立体声关联编码的音频信号以及从量化/编码部件14提供来的音频信号执行预测编码,并且将得到的音频信号提供给M/S立体声部件25。M/S立体声部件25对来自预测部件24的音频信号执行立体声关联编码,并且将编码结果提供给量化/编码部件14。量化/编码部件14包括归一化系数部件31、量化部件32以及Huffman编码部件33。量化/编码部件14将来自频谱处理部件13的M/S立体声部件25的音频信号转换为码串,并且将转换结果提供给复用器部件15。归一化系数部件31将来自M/S立体声部件25的音频信号提供给量化部件32。归一化系数部件31还基于音频信号计算在量化音频信号时使用的归一化系数,并且将计算结果提供给量化部件32和Huffinan编码部件33。在图1的量化装置中,例如,将来自心理声学模式保持部件11的可容忍误差强度用来计算作为各个划分出的频带的归一化系数的量化步长(step)参数。量化部件32利用来自归一化系数部件31的归一化系数对从归一化系数部件31提供来的音频信号执行非线性量化,并且将得到的音频信号(经量化值)提供给Huffinan编码部件33以及预测部件24。Huffman编码部件33基于预定Huffman代码表将来自归一化系数部件31的归一化系数以及来自量化部件32的经量化值转换为Huffman码,并且将Huffman码提供给复用器部件15。复用器部件15将从增益控制部件12以及MDCT部件21至归一化系数部件31提供来的并且在音频信号编码过程中生成的各种信息与来自Huffinan编码部件33的Huffman码进行复用,以生成并输出音频信号的比特流。接下来参考图2的框图描述TNS处理部件22的示例性配置。图2的TNS处理部件22包括线性预测部件51、执行确定部件52、量化部件53、线性预测系数转换部件54、残留信号计算部件55以及量化/编码部件56。线性预测部件51利用来自MDCT部件21的频域频谱数据(MDCT系数)x[n]执行第(TNS—MAX—ORDER)阶次(order)的线性预测,并且将得到的预测增益和反射系数r[i](i=0,...,TNS—MAX—ORDER-1)提供给执行确定部件52。执行确定部件52判断来自线性预测部件51的预测增益是否大于预定阈值,并相应地判断线性预测部件51是否正确执行了线性预测。如果判断出线性预测部件51正确地执行了线性预测,即,如果TNS处理是可执行的,则执行确定部件52将来自线性预测部件51的反射系数r[i]提供给量化部件53。现在描述相关技术的TNS处理部件中的量化部件。相关技术的TNS处理部件中的量化部件利用量化比特率coef—res对来自执行确定部件的反射系数r[i]进行量化,并且还相逆地量化得到的量化值index[i]。量化部件还将作为量化结果而获得的量化值index[i]以及作为逆量化结果而获得的逆量化值rq[i]提供给线性预测系数转换部件。分别用下面的公式(1)和(2)来表示量化值index[i]和逆量化值rq[i]:[公式1]index[i]=(int)(arcsin(r[i])xQ}...(1)rq[i]=sin(index[i]/Q)…(2)在公式(1)中,(int)(X)表示用于提取浮点数X的整数部分的函数<参数Q表示量化步长并且由下面的公式(3)至(5)表示[公式3]iqfac_pr[i]20Q=…(3)iqfac—mr[j]<0^coef—res—1一n;iqfao—p=Z—兀,2…(4)2咖f一res-1+05iqfac一m=--…(5)艮口,相关技术的TNS处理部件中的量化部件利用作为非线性函数的反正弦函数通过如公式(1)表示的参数Q所表示的量化步长来对反射系数r[i]进行量化,并且利用如公式(2)表示的正弦函数来对得到的量化值index[i]进行逆量化。由于上面讨论的相关技术的TNS处理部件中的量化部件使用了反正弦函数和正弦函数,因此,其算法可能较复杂并且可能会执行大量周期。返回图2的框图,量化部件53包括指定部件53a和决定部件53b。指定部件53a通过顺序读取存储在范围存储部件58中的反射系数的范围以及相对应的量化值index[i]和逆量化值rq[i],来指定包含了从执行确定部件52提供来的反射系数r[i]的范围。决定部件53b决定出与指定部件53a所指定的范围相关联的量化值index[i]和逆量化值rq[i],并且将所决定出的值提供给线性预测系数转换部件54。线性预测系数转换部件54计算来自量化部件53的逆量化值rq[i]的绝对值变得大于预定阈值的阶次TNS—ORDER,来作为残差信号计算部件55执行的计算中使用的阶次。线性预测系数转换部件54还将逆量化值rq[i]转换为第(TNS—ORDER+1)阶次的线性预测系数a[i],并且将转换结果与来自量化部件53的量化值index[i]—起提供给残差信号计算部件55。残差信号计算部件55计算来自MDCT部件21的频谱数据x[n]与来自线性预测系数转换部件54的线性预测系数a[i]之间的残差信号y[n],并且将残差信号y[n]与来自线性预测系数转换部件54的量化值一起提供给量化/编码部件56。量化/编码部件56基于来自残差信号计算部件55的残差信号y[n]和量化值index[i],将线性预测系数的阶次TNS一ORDER、反射系数的量化值index[i]以及残差信号y[n]转换为比特流,并且将比特流提供给强度/耦合部件23和复用器部件15。范围计算部件57计算与量化值相对应的反射系数的范围。更具体地,范围计算部件57计算可以给出公式(1)所表示的每个量化值index[i]的反射系数r[i](量化值index[i]变化时的反射系数r[i])的范围。范围计算部件57还逆量化每个量化值以计算与量化值index[i]相对应的逆量化值rq[i]。范围计算部件57将量化值index[i]和逆量化值rq[i]与反射系数r[i]的范围相关联,并且将关联结果存储在范围存储部件58中。范围存储部件58将反射系数r[i]的范围与相对应的量化值index[i]和逆量化值rq[i]—起存储。根据上面的配置,TNS处理部件22基于预先存储的反射系数的范围以及相对应的量化值和逆量化值,来决定与从输入频谱数据获得的反射系数相对应的量化值和逆量化值。为了对由上面讨论的包括TNS处理部件的编码装置执行的编码处理的结果进行解码,首先对线性预测系数的阶次TNS一ORDER、反射系数的量化值index[i]以及残差信号y[n]进行解码。从解码结果计算出频谱数据,并且使频谱数据经受逆MDCT处理以获得音频信号。作为TNS处理的结果,包含在从逆MDCT处理获得的音频信号中的量化噪声分布在时间轴上具有较大幅度(高信号电平)的波形部分处。即,TNS处理使得在音频信号产生低音量声音的部分中的量化噪声较低而在音频信号产生高音量声音的部分中的量化噪声较高,这使得包含在音频信号中的量化噪声不引人注目。因此,可以减少称为"前回声(pre-echo)"的声音质量的恶化。接下来参考图3的流程图描述由图2的TNS处理部件22执行的范围计算处理。TNS处理部件22在执行TNS处理之前执行范围计算处理。在步骤S31,范围计算部件57计算与量化值相对应的反射系数的范围。更具体地,范围计算部件57计算可以给出公式(1)所表示的每个量化值index[i]的反射系数r[i]的范围。这里,假设公式(1)中的量化比特率coef—res为4比特。在步骤S32,范围计算部件57通过逆量化量化值index[i]来计算与量化值index[i]相对应的逆量化值rq[i]。在步骤S33,范围计算部件57将量化值index[i]和逆量化值rq[i]与反射系数r[i]的范围相关联,并且将关联结果存储在范围存储部件58中。作为上面处理的结果,可以在执行TNS处理之前,建立并存储反射系数的范围与量化值index[i]和逆量化值rq[i]之间的相关性。接下来参考图4的流程图描述由图2的TNS处理部件22执行的TNS处理。在步骤S51,线性预测部件51利用来自MDCT部件21的频域频谱数据(MDCT系数)x[n]执行第(TNS_MAX—ORDER)阶次的线性预测,并且将得到的预测增益和反射系数r[i](i=0,…,TNS—MAX—ORDER-1)提供给执行确定部件52。在步骤S52,执行确定部件52判断来自线性预测部件51的预测增益是否大于预定阈值,并且相应地判断线性预测部件51是否正确执行了线性预测。如果判断出线性预测部件51正确地执行了线性预测,S卩,如果TNS处理是可执行的,则执行确定部件52将来自线性预测部件51的反射系数r[i]提供给量化部件53。处理前进到步骤S53。在步骤S53,量化部件53的指定部件53a通过顺序读取存储在范围存储部件58中的反射系数的范围、相对应的量化值index[i]和逆量化值16rq[i],来指定包含了从执行确定部件52提供来的反射系数r[i]的范围。在步骤S54,量化部件53的决定部件53b决定出与指定部件53a所指定的范围相关联的量化值index[i]和逆量化值rq[i],并且将所决定的量化值index[i]和逆量化值rq[i]提供给线性预测系数转换部件54。在步骤S55,线性预测系数转换部件54计算来自量化部件53的逆量化值rq[i]的绝对值变得大于预定阈值的阶次TNS一ORDER,来作为残差信号计算部件55执行的计算中使用的阶次。线性预测系数转换部件54还将逆量化值rq[i]转换为第(TNS—ORDER+1)次的线性预测系数a[i],并且将转换结果与来自量化部件53的量化值index[i]—起提供给残差信号计算部件55。在步骤S56,残差信号计算部件55计算来自MDCT部件21的频谱数据x[n]与来自线性预测系数转换部件54的线性预测系数a[i]之间的残差信号y[n]。残差信号y[n]由下面的公式(6)来表示TNSJ)RDERy[n]=x[n〗+^a[k]xx[n-k]…(6)残差信号计算部件55将计算出的残差信号y[n]与来自线性预测系数转换部件54的量化值index[i]—起提供给量化/编码部件56。在步骤S57,量化/编码部件56基于来自残差信号计算部件55的残差信号y[n]和量化值index[i],将线性预测系数的阶次TNS一ORDER、反射系数的量化值iiidex[i]以及残差信号y[n]转换为比特流,并且将比特流提供给强度/耦合部件23和复用器部件15。以这种方式,可以在不使用反正弦函数和正弦函数的情况下执行TNS处理。图5示出了用C语言编写的用于图4的流程图的步骤S53中执行的处理的示例性程序。在图5的程序181中,每行左侧的数字是为了说明的目的而提供的每行的序号。因此,在实际程序中是不需要这些数字的。这也适用于随后提供的其它示例性程序。在程序181的行1至3中,判断第i次输入的反射系数r[i]是否小于-0.9827931F。如果反射系数r[i]小于-0.9827931F,则决定与反射系数r[i]的范围r[i]<-0.982973IF相关联的量化值index[i]=-7并且逆量化值rq[i]=-0.9618257。另一方面,如果反射系数r[i]不小于-0.9827931F,则在行4至6中判断第i次输入的反射系数r[i]是否小于-0.9324722F。如果反射系数r[i]小于-0.9324722F,则决定与反射系数r[i]的范围-0.9829731F《r[i]<-0.9324722F相关联的量化值index[i]=-6并且逆量化值rq[i]=-0.8951633。接下来,以相同方式从较小值顺序地确定输入的反射系数r[i]的范围,以便决定出设置到与反射系数r[i]相对应的范围中的量化值index[i]和逆量化值rq[i]。作为上面的处理的结果,可以基于与预先获得的量化值相对应的反射系数的范围决定出与输入频谱数据相对应的量化值。因此,可以不用利用了反正弦函数(如公式(1)表示的非线性函数)的计算而通过使用了上面讨论的条件的搜索来决定量化值,这使得能够更高效地执行TNS处理。在上述示例中,通过15次利用了不同条件的顺序搜索来决定量化值。然而,可以通过利用每个条件语句将范围划分为两部分的二进制搜索的少达4次的确定来决定出量化值。搜索量化值(反射系数的范围以及相对应的量化值index[i]和逆量化值rq[i])的条件可以存储在表(在下文中称为"范围表")中,以基于范围表来决定量化值。<2.第二实施例〉图6示出了基于范围表决定量化值的TNS处理部件的示例性配置。将相同的名称以及相同的标号赋予与图2的TNS处理部件22的那些组件共同的图6的TNS处理部件221的组件,并且适当地省略其描述。图6的TNS处理部件221与图2的TNS处理部件22的不同之处在于包括取代量化部件53和范围存储部件58的范围表制成部件251以及量化部件252。范围表制成部件251制成将量化值index[i]和逆量化值rq[i]与来自范围计算部件57的反射系数r[i]的范围相关联的范围表,并且将所制成的范围表提供给量化部件252。量化部件252包括指定部件252a和决定部件252b。指定部件252a基于从范围表制成部件251提供来的范围表中的反射系数的范围以及量化值和逆量化值,指定包含了从执行确定部件52提供来的反射系数的范围。决定部件252b决定与指定部件252a所指定的范围相关联的量化值和逆量化值,并且将所决定的值提供给线性预测系数转换部件54。根据上面的配置,TNS处理部件221基于预先制成的范围表中的反射系数的范围以及相对应的量化值和逆量化值,来决定与从输入频谱数据获得的反射系数相对应的量化值和逆量化值。接下来参考图7的流程图描述由图6的TNS处理部件221执行的范围表制成处理。TNS处理部件221在执行TNS处理之前执行范围表制成处理。图7的流程图的步骤S131、S132中的处理分别与参考图3的流程图描述的步骤S31、S32中的那些处理相同,因此省略对其的描述。在步骤S133,范围表制成部件251制成将量化值index[i]和逆量化值rq[i]与来自范围计算部件57的反射系数r[i]的范围相关联的范围表,并且将所制成的范围表提供给量化部件252。作为上面的处理的结果,可以在执行TNS处理之前制成将反射系数的范围与量化值index[i]和逆量化值rq[i]相关联的范围表。接下来参考图8的流程图描述由图6的TNS处理部件221执行的TNS处理。图8的流程图的步骤S151、S152、S155和S157中的处理分别与参考图4的流程图描述的步骤S51、S52、S55和S57中的那些处理相同,因此省略对其的描述。在步骤S153,量化部件252的指定部件252a基于从范围表制成部件251提供来的范围表中的反射系数r[i]的范围以及量化值index[i]和逆量化值rq[i],指定包含从执行确定部件52提供来的反射系数r[i]的范围。在步骤S154,决定部件252b决定与指定部件252a所指定的范围相关联的量化值index[i]和逆量化值rq[i],并且将所决定的值提供给线性预测系数转换部件54。以这种方式,可以不用反正弦函数或正弦函数而是用范围表来执行TNS处理。图9示出了用C语音编写的用于图8的流程图的步骤S153、S154中执行的处理的示例性程序。在图9的程序281中,行1至行6中的"arcsin—Q—table[15]"表示将反射系数r[i]的范围与量化值index[i](=k-7)相关联的表。同时,行7至12中的"sin—Q—table[15]"表示将量化值index[i](=k-7)与逆量化值rq[i]相关联的表。艮卩,范围表包括程序281中的"arcsin一Q—table[15]"和"sin—Q—table[15]"。在行13至行19中,判断第i次输入的反射系数r[i]是否小于表中行1至行6的第k个表值arcsin—Q—table[k]。如果反射系数r[i]小于表值arcsin—Q—table[k],则决定出量化值index[i]=k-7并且逆量化值rq[i]=sin—Q一table[k]。通过以这种方式使用范围表,与图5的程序181相比而言,可以减少用C语言写的程序的语句数。作为上面的处理的结果,可以基于与预先获得的量化值相对应的反射系数的范围来决定出与输入频谱数据相对应的量化值。因此,可以不用利用了反正弦函数(如公式(1)表示的非线性函数)的计算而通过使用了范围表的搜索来决定量化值,这使得能够更高效地执行TNS处理。虽然在上面的示例中将输入数据的值或表中的值当作浮点数处理,然而,也可以将这些值当作定点数(fixed-pointnumber)来处理。更具体地,可以利用浮点数来计算与离散值相对应的输入数据的范围,基于其可以计算定点数的整数部分。图10示出了用C语音编写的用于将图9所示的表arcsin_Q_table[15]、sin_Q—table[15]中的浮点数的值表示为16位定点数的20示例性情况的示例性程序。在图10的程序291中,行1至6中的"arcsin—Q—table—int[15]"表示将反射系数r[i]的范围与量化值index[i](:k-7)相关联的表。同时,行7至12中的"sin—Q—table—int[15]"表示将量化值index[i](=k-7)与逆量化值rq[i]相关联的表。艮卩,范围表包括程序291中的"arcsin—Q—table—int[15]"禾B"sin—Q_table—int[15〗"。行13至19的处理与图9的程序281的行13至19的处理相同,因此省略对其的描述。同样,在上面的示例中,可以不用利用了反正弦函数(如公式(1)表示的非线性函数)的计算而通过使用了包含定点数的范围表的搜索来决定量化值,这使得能够更高效地执行TNS处理。虽然在上面的示例中利用范围表来搜索与反射系数相匹配的量化值,然而,也可以进一步高效地搜索量化值。<3.第三实施例>图11示出了基于哈希表决定量化值的TNS处理部件的示例性配置。将相同的名称以及相同的标号赋予与图6的TNS处理部件221的那些组件共同的图11的TNS处理部件321的组件,并且适当地省略其描述。图11的TNS处理部件321与图6的TNS处理部件221的不同之处在于还包括哈希表制成部件351。在图11的TNS处理部件321中,范围表制成部件251制成范围表,并且将所制成的范围表提供给哈希表制成部件351和量化部件352。哈希表制成部件351基于来自范围表制成部件251的范围表制成允许快速搜索表值的哈希表,并且将所制成的哈希表提供给量化部件352。术语"哈希表"指将表示如下组的信息包含作为表值的表即与反射系数的值相对应地将包含了作为范围表表值的反射系数的范围分组到其中的组。S卩,当输入反射系数时,利用哈希表来决定与反射系数的值相对应的组,并且在该组中首先利用初始搜索值进行搜索,该初始搜索值是应当用来进行第一次搜索的表值。因此,能够比顺序搜索范围表中所定义的所有表值更快地搜索表值。后面将详细讨论哈希表的制成。量化部件352包括初始搜索值决定部件352a、指定部件352b以及决定部件352c。初始搜索值决定部件352a利用从哈希表制成部件351提供来的哈希表,决定用来开始搜索作为反射系数(的范围)的表值的对范围表的索引(初始搜索值)。指定部件352b基于从范围表制成部件251提供来的范围表以及初始搜索值,来指定包含了从执行确定部件52提供来的反射系数的范围。决定部件352c决定与指定部件352b所指定的范围相关联的量化值和逆量化值,并且将所决定的值提供给线性预测系数转换部件54。根据上面的配置,TNS处理部件321基于预先制成的哈希表和范围表,决定与从输入频谱数据获得的反射系数相对应的量化值和逆量化值。[由TNS处理部件执行的哈希表制成处理]接下来参考图12的流程图描述由图11的TNS处理部件321执行的哈希表制成处理。TNS制成部件321在执行TNS处理之前执行哈希表制成处理。图12的流程图的步骤S231至S233中的处理分别与参考图7的流程图描述的步骤S131至S133中的处理相同,因此省略对其的描述。在步骤S234中,哈希表制成部件351基于来自范围表制成部件251的范围表制成哈希表,并且将所制成的哈希表提供给量化部件352。更具体地,哈希表制成部件351将经过预定计算后具有同一值的整数部分的如图9的程序281的行1至6所指示的表arcsin—Q—table[15]中的表值(反射系数)分组为一组。哈希表制成部件351然后制成哈希表,该哈希表将该组中指示具有最小值的反射系数的范围的索引定义为初始搜索值。作为上面处理的结果,可以在执行TNS处理之前制成允许在范围表中快速搜索表值的哈希表。接下来将参考图13的流程图描述由图11的TNS处理部件321执行的TNS处理。图13的流程图的步骤S251、S252、S256至S258中的处理分别与参考图4的流程图描述的步骤S51、S52、S55至S57中的那些处理相同,因此省略对其的描述。在步骤S253中,量化部件352的初始搜索值决定部件352a利用从哈希表制成部件351提供来的哈希表,决定针对作为反射系数(的范围)的范围表表值的初始搜索值。更具体地,初始搜索值决定部件352a利用哈希表决定范围表中与来自执行确定部件52的反射系数相对应的表值组,并且将该组中具有最小值的反射系数决定为初始搜索值。在步骤S254,量化部件352的指定部件352b基于从范围表制成部件251提供来的范围表以及初始搜索值,来指定包含了从执行确定部件52提供来的反射系数的范围。在步骤S255,量化部件352的决定部件352c决定与指定部件352b所指定的范围相关联的量化值和逆量化值,并且将所决定的值提供给线性预测系数转换部件54。以这种方式,可以利用哈希表快速搜索表值(反射系数的范围)。图14示出了用C语言写的用于图13的流程图的步骤S253至S255中执行的处理的示例性程序。在图14的程序381中,行1至4中的哈希表hash—table[8]的每个表值表示了在如图9的程序281所指示的表arcsin—Q—table[15]中经过了预定计算后具有同一值的整数部分的表值的组中,具有最小值的表值的位置(索引)。这里,"预定计算"等同于程序381的行5中指定的计算。在此示例中,将index[i]--7的范围的边界定义为r[i]〈-0.982971。因此,为了制成具有8个元素的哈希表,执行计算r[i]+1.0F以转换为正值。作为转换的结果,index[i]=6的范围的边界被定义为0.9781476F+1.0F=1.9781476F,其是小于2的值。还乘以值4.0F来制成具有8个元素的哈希表。艮口,通过使从执行确定部件52提供来的反射系数r[i]经过预定计算而获得的值的整数部分T(行5)以及哈希表hash—table[T]被用来决定初始搜索值在范围表中的位置k(行6)(步骤S253中的处理)。当决定了初始搜索值的位置k后,在行7中将k递增1来指定行8中的"arcsin—Q—table[k]",这允许在范围表中快速搜索表值(步骤S254、23例如,在反射系数r[i]为0.20F的情况中,程序381的行5得出T-4。行6基于T=4以及行1至4中的哈希表hash—table[T]得出k=7。然后在行8中判断反射系数r[i]是否小于arcsin—Q—table[7]=0.1045285F。由于反射系数r[i]满足r[i]=0.20F,因此处理返回行7,其中,k被递增1(k=8)并且在行8中判断反射系数r[i]是否小于arcsin—Q—table[8]=(U045285F。由于反射系数r[i]-0.20F小于0.1045285F,因此行9、10得出量化值index[i]=0以及逆量化值rq[i]=0.2079117F。S卩,能够通过2次搜索来获得量化值和逆量化值。在程序381中,搜索次数在k=11,即k=ll至k=14时最大,为4次,这使得能够通过最多4次搜索来决定量化值。根据图5的程序181以及图9的程序281,并且在反射系数r[i]为0.20F的情况中,从较小的表值顺序地进行搜索,并且通过9次搜索获得量化值和逆量化值。作为上面处理的结果,能够基于与预先获得的量化值相对应的反射系数的范围来决定与输入频谱数据相对应的量化值。因此,可以不用利用了反正弦函数(如公式(1)表示的非线性函数)的计算而通过使用了哈希表的搜索来决定量化值,这使得能够更高效地执行TNS处理。<4.执行结果>[应用了根据实施例的TNS处理的执行结果]现在将参考图15描述当应用上面讨论的TNS处理时所执行的周期数。图15示出了当利用由MIPS制造的RISC(精简指令集计算机)CPU,R4000来执行上面讨论的TNS处理时所执行的周期数。假设当相关技术中的TNS处理包括利用了三角函数(反正弦函数,其是如公式(1)所表示的非线性函数)的计算时所执行的周期数18657表示1,则当执行使用了条件语句的TNS处理(使用条件的搜索)(图4)时所执行的周期数4537表示0.24,这表现出了76%的效率提高。当在使用条件的搜索中使用二进制搜索时所执行的周期数1980表示0.11,这表现出了89%的效率提高。当执行使用了范围表的TNS处理(图8)时所执行的周期数7450表示0.40,这表现出了60%的效率提高。当执行使用了哈希表的TNS处理(图15)时所执行的周期数3854表示0.21,这表现出了79%的效率提高。如上所述,与相关技术中的技术相比,使用根据本发明的TNS处理可以提高效率。<5.第四实施例>[非线性函数和离散值]虽然在上述描述中反正弦函数作为非线性函数的一个示例被执行,然而,本发明还可应用于针对如下面的公式(7)所示的输入值X的预定非线性函数fimc(X)来获得离散值Y的情况<formula>formulaseeoriginaldocumentpage25</formula>同时,虽然在上面讨论的示例中离散值为整数,然而,只需要如下面的公式(8)所示离散值Y对于输入值X应当是唯一的,并且本发明还可以用于离散值Y为浮点数的情况。<formula>formulaseeoriginaldocumentpage25</formula>此外,虽然如上所述需要离散值Y对于输入值X应当是唯一的,然而,可以提供给出特定离散值Y的输入值X的多个范围。虽然在本发明中需要离散值Y应当具有有限范围,然而,还可以将实施例应用到其中将输入值X转换为离散值Y的计算处理的频率较高的范围中,并且可以在其它范围中执行例如公式(7)所示的计算。虽然给出离散值Y的输入值X的范围是根据上面的描述预先计算的,然而,例如在将输入值X转换为离散值Y的期间给出离散值Y的输入值X的范围发生变化的情况中,可以适当地重新计算输入值X。[计算装置的示例性配置]现在参考图16的框图描述使输入值X经过利用了预定非线性函数func(X)的计算以输出离散值Y的计算装置。图16的计算装置401包括范围计算部件431、范围表制成部件432以及搜索/转换部件433。范围计算部件431计算可以给出离散值作为输出值的输入值的范围,并且将输入值的范围与离散值相关联,并且将关联结果提供给范围表制成部件432。范围表制成部件432制成将来自范围计算部件431的输入值的范围与离散值相关联的范围表,并且将所制成的范围表提供给搜索/转换部件433。搜索/转换部件433包括指定部件433a和决定部件433b。指定部件433a基于从范围表制成部件432提供来的范围表中的输入值的范围和离散值,指定包含己输入的输入值的范围。决定部件433b决定与指定部件433a所指定的范围相关联的离散值,并且将所决定的值输出到外部设备。[由计算装置执行的范围表制成处理]接下来将参考图17的流程图描述由图16的计算装置401执行的范围表制成处理。计算装置401在执行离散值输出处理之前执行范围表制成处理。在步骤S331,范围计算部件431计算可以给出预定离散值的输入值的范围,并且将输入值的范围与离散值相关联,并且将关联结果提供给范围表制成部件432。在步骤S332,范围表制成部件432制成将来自范围计算部件431的输入值的范围与离散值相关联的范围表,并且将所制成的范围表提供给搜索/转换部件433。作为上面的处理的结果,可以在执行离散值输出处理之前制成使输入值的范围与离散值相关联的范围表。[由计算装置执行的离散值输出处理]接下来将参考图18的流程图描述由图16的计算装置401执行的范围表制成处理。在步骤S351,搜索/转换部件433判断是否输入了输入值。如果确定未输入输入值,则搜索/转换部件433重复步骤S351中的处理直到输入了输入值为止。另一方面,如果在步骤S351中确定输入了输入值,则处理前进到步骤S352,在步骤S352中,搜索/转换部件433的指定部件433a基于从范围表制成部件432提供来的范围表中的输入值的范围和离散值,指定包含已输入的输入值的范围。在步骤S353中,搜索/转换部件433的决定部件433b决定与指定部件433a所指定的范围相关联的离散值。搜索/转换部件433将所决定的离散值输出到外部设备。作为上面处理的结果,可以基于与预先获得的离散值相对应的输入值的范围来决定与已输入的输入值相对应的离散值。因此,能够不用使用非线性函数ftmc(X)的计算而通过使用了范围表的搜索来决定离散值,这使得能够更高效地执行计算处理。虽然图16的计算装置401针对一个输入值X具有一个范围表(其中,使包含输入值的范围与离散值Y相关联),然而,计算装置401还可以针对各种类型的输入值而具有多个范围表(其中,使输入值的各个范围与离散值相关联)。即,计算装置401可以读取范围表中与指示输入值的类型的信息、地址等相对应的相应的一个范围表,并且可以利用所读取的范围表输出与输入值的范围相对应的离散值。因此,即使在将针对多种类型的输入值输出不同离散值的情况下,单个计算装置也可以通过读取与输入值的类型相匹配的范围表来输出多种类型的离散值。上面讨论的处理序列可通过硬件或通过软件来执行。在通过软件来执行处理序列的情况中,构成软件的程序从程序存储介质被装载到例如在各种程序被执行时能够执行各种功能的包括专用硬件的计算机或者通用个人计算机中。图19是示出用于通过程序执行上面讨论的处理序列的计算机的硬件的示例性配置的框图。27在该计算机中,CPU(中央处理单元)901、ROM(只读存储器)902和RAM(随机存取存储器)903通过总线904彼此相连。输入/输出接口卯5还连接到总线904。下面的部件被连接到输入/输出接口905:诸如键盘、鼠标和麦克风之类的输入部件906、诸如显示器和扬声器之类的输出部件907、诸如硬盘驱动器和非易失性存储器之类的存储部件908、诸如网络接口之类的通信部件909,以及诸如磁盘、光盘、磁光盘和半导体存储器之类的用于驱动可移除介质911的驱动器910。在如上所述那样配置的计算机中,CPU901例如将存储在存储部件908中的程序经由输入/输出接口905和总线904载入RAM903中,并且执行程序以执行上面讨论的处理序列。由计算机(CPU901)执行的程序例如是按其记录在作为封装介质的可移除介质911(例如,磁盘(包括软盘)、光盘(包括CD-ROM(致密盘-只读存储器)和DVD(数字通用盘)、磁光盘,以及半导体)中那样来提供的,或者是经由诸如局域网、因特网以及数字卫星广播之类的有线或无线传输介质提供的。然后,可以通过将可移除介质911安装到驱动器910中来经由输入/输出接口905将程序安装到存储部件908中。或者,可以经由有线或无线传输介质通过通信部件909来接收程序并安装到存储部件908中。或者,可以预先将程序安装在ROM902或存储部件908中。可以配置由计算机执行的程序,以便根据这里描述的顺序按时间顺序来执行其处理,或者例如当进行调用时并行地或以适当地定时来执行处理。本申请包含与2008年9月5日向日本专利局提交的日本优先权专利公报JP2008-228163中公开的主题有关的主题,该申请的全部内容通过引用结合于此。本发明不限于上述实施例,而是可以在不脱离本发明的范围和精神的情况下以各种方式进行修改。权利要求1.一种计算装置,包括范围计算装置,所述范围计算装置用于计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及离散值输出装置,所述离散值输出装置用于在所述输入值被输入时,输出与包含已输入的输入值的范围相对应的所述预定离散值。2.根据权利要求1所述的计算装置,还包括范围表制成装置,所述范围表制成装置用于制成使所述输入值的范围与所述预定离散值相关联的范围表,其中,所述离散值输出装置基于所述范围表输出与包含已输入的输入值的范围相对应的所述预定离散值。3.根据权利要求2所述的计算装置,还包括哈希表制成装置,所述哈希表制成装置用于基于所述范围表制成哈希表,其中,所述离散值输出装置基于所述哈希表指定针对所述范围表的初始搜索值,并且基于所述初始搜索值和所述范围表输出与包含已输入的输入值的范围相对应的所述预定离散值。4.根据权利要求1所述的计算装置,其中,所述离散值输出装置对包含已输入的输入值的范围执行二进制搜索,并且输出与所搜索的范围相对应的所述预定离散值。5.根据权利要求1所述的计算装置,其中,所述范围计算装置预先计算与所述预定离散值相对应的输入值的范围。6.—种计算方法,包括以下步骤计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及当所述输入值被输入时,输出与包含已输入的输入值的范围相对应的所述预定离散值。7.—种使计算机执行处理的程序,所述处理包括以下步骤计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及当所述输入值被输入时,输出与包含已输入的输入值的范围相对应的所述预定离散值。8.—种量化装置,包括范围计算装置,所述范围计算装置用于计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围;以及量化值输出装置,所述量化值输出装置用于在所述输入值被输入时,输出与包含已输入的输入值的范围相对应的所述预定量化值。9.一种量化方法,包括以下步骤计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围;以及在所述输入值被输入时,输出与包含己输入的输入值的范围相对应的所述预定量化值。10.—种使计算机执行处理的程序,所述处理包括以下步骤计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围;以及在所述输入值被输入时,输出与包含已输入的输入值的范围相对应的所述预定量化值。11.一种音频编码装置,包括线性预测装置,所述线性预测装置用于对通过将音频信号转换至频域而获得的频谱数据执行线性预测,以获得反射系数;量化装置,所述量化装置用于量化所述反射系数以获得量化值,并且相逆地量化所述量化值以获得逆量化值;范围计算装置,所述范围计算装置用于预先计算可以给出预定量化值的所述反射系数的范围;系数转换装置,所述系数转换装置用于将所述逆量化值转换为线性预测系数;以及残差信号计算装置,所述残差信号计算装置用于利用所述线性预测系数计算所述频谱数据与经过了线性预测的频谱数据之间的残差信号,其中,当所述反射系数被输入时,所述量化装置获得与包含已输入的所述反射系数的范围相对应的所述预定量化值。12.—种音频编码方法,包括以下步骤对通过将音频信号转换至频域而获得的频谱数据执行线性预测,以获得反射系数;量化所述反射系数以获得量化值,并且相逆地量化所述量化值以获得逆量化值;预先计算可以给出预定量化值的所述反射系数的范围;将所述逆量化值转换为线性预测系数;以及利用所述线性预测系数计算所述频谱数据与经过了线性预测的频谱数据之间的残差信号,其中,当在所述量化步骤中所述反射系数被输入时,获得与包含已输入的所述反射系数的范围相对应的所述预定量化值。13.—种使计算机执行处理的程序,所述处理包括以下步骤对通过将音频信号转换至频域而获得的频谱数据执行线性预测,以获得反射系数;量化所述反射系数以获得量化值,并且相逆地量化所述量化值以获得逆量化值;预先计算可以给出预定量化值的所述反射系数的范围;将所述逆量化值转换为线性预测系数;以及利用所述线性预测系数计算所述频谱数据与经过了线性预测的频谱数据之间的残差信号,其中,当在所述量化步骤中所述反射系数被输入时,获得与包含已输入的所述反射系数的范围相对应的所述预定量化值。14.—种计算装置,包括范围计算部件,所述范围计算部件用于计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及离散值输出部件,所述离散值输出部件用于在所述输入值被输入时,输出与包含己输入的输入值的范围相对应的所述预定离散值。15.—种量化装置,包括范围计算部件,所述范围计算部件用于计算可以给出通过量化非线性运算的计算结果而获得的预定量化值的输入值的范围;以及量化值输出部件,所述量化值输出部件用于在所述输入值被输入时,输出与包含已输入的输入值的范围相对应的所述预定量化值。16.—种音频编码装置,包括线性预测部件,所述线性预测部件用于对通过将音频信号转换至频域而获得的频谱数据执行线性预测,以获得反射系数;量化部件,所述量化部件用于量化所述反射系数以获得量化值,并且相逆地量化所述量化值以获得逆量化值;范围计算部件,所述范围计算部件用于预先计算可以给出预定量化值的所述反射系数的范围;系数转换部件,所述系数转换部件用于将所述逆量化值转换为线性预测系数;以及残差信号计算部件,所述残差信号计算部件用于利用所述线性预测系数计算所述频谱数据与经过了线性预测的频谱数据之间的残差信号,其中,当所述反射系数被输入时,所述量化部件获得与包含已输入的所述反射系数的范围相对应的所述预定量化值。全文摘要本发明公开了计算、量化、音频编码的装置和方法及程序。一种计算装置包括范围计算部件,用于计算可以给出通过使非线性运算的计算结果离散化而获得的预定离散值的输入值的范围;以及离散值输出部件,用于在输入值被输入时,输出与包含已输入的输入值的范围相对应的预定离散值。文档编号G06F17/14GK101667170SQ200910168730公开日2010年3月10日申请日期2009年9月7日优先权日2008年9月5日发明者茂木幸彦,镰田征人申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1