在音频编码过程中根据mdct数据进行视窗类型判定的方法

文档序号:2819092阅读:130来源:国知局
专利名称:在音频编码过程中根据mdct数据进行视窗类型判定的方法
技术领域
本发明总体上涉及音频编码。更具体而言,本发明涉及在音频编码过程中进行视窗类型确定。
版权标记/许可这篇专利文件的部分公开内容包含受版权保护的材料。版权所有者不反对由出现在专利商标局专利文档或记录中的专利文件或专利公开中的任何一种的影印复制,但在别的方面却无论如何保留所有版权。将以下通告应用于如下所述的及附图中的软件和数据Copyright2001,Sony Electronics,Inc.,All Rights Reserved。
背景技术
标准化机构运动图象专家组(MPEG)在他们的标准中公开了通用数据压缩方法,例如,所述标准诸如是MPEG-2高级音频编码(AAC)标准(参见ISO/IEC 13818-7)和MPEG-4 AAC标准(参见ISO/IEC14496-3)。这些标准在此统称为MPEG标准。
MPEG标准所定义的音频编码器接收音频信号,通过修正离散余弦变换(MDCT)运算将它转换成频谱数据,并且利用失真率控制机制来判定用于量化频谱数据的最优比例因子。音频编码器还利用最优比例因子来量化频谱数据,将所得到的量化后的频谱系数编组成比例因子带,然后对编组的量化系数进行Huffman编码。
根据MPEG标准,以使相邻变换值域沿时间轴重叠50%的方式对音频信号执行MDCT,以便抑制失真发生在相邻变换值域之间的边界部分上。另外,利用长变换值域(由长视窗定义的)或短变换值域(每一个都是由短视窗定义的)将音频信号映射到频率域中。长视窗包括2048个样值,而短视窗包括256个样值。从长视窗产生的MDCT系数的数目为1024,而从每一个短视窗产生的MDCT系数的数目为128。一般而言,对于信号波形变化细微的稳定部分,需要使用长视窗类型。对于信号波形变化剧烈的冲击部分,需要使用短视窗类型。使用其中哪一个是重要的。如果为瞬态信号使用长视窗类型,则称作预回波的噪声发生在冲击部分之前。当为稳定信号使用短视窗类型时,由于在频域中的分辩率缺乏、编码效率降低以及噪声出现,同样也不能执行适当的比特分配。这种缺陷对于低频声音是格外显著的。
根据MPEG标准所提出的方法,对于频谱数据帧的视窗类型的确定始于对时域音频数据执行快速傅里叶变换(FFT)以及计算FFT系数。然后使用FFT系数来计算所述帧内的每个比例因子带的音频信号强度。同样,利用音质建模来确定所述帧的可容许失真级别。可容许失真级别表示能在不可听到的情况下被注入到频谱数据中的最大噪声量。根据所述帧的可容许失真级别和该帧内的每个比例因子带的音频信号强度,计算知觉熵(perceptual entropy)。如果知觉熵大于预定常量,则为所述帧使用短视窗类型。否则,为所述帧使用长视窗类型。
进行视窗类型确定的上述方法要进行大量的计算。另外,如果信号强度高,则不论所述信号是瞬态的还是稳定的,所得到的知觉熵的数值都可能是高的。也就是说,即使所述帧不处于转变中,也可能给一帧指定短视窗类型。正如上面所论述的那样,这将导致编码效率降低以及噪声出现。
此外,如果判定使用短视窗类型,则产生MDCT系数的8个连续块(短视窗)。为了减少与短视窗相关联的辅助信息量,可以将短视窗编组。每个群组都包括一个或多个连续的短视窗,其比例因子是相同的。然而,当没有适当地执行编组时,出现代码数量的增加或音质的下降。当群组的数量相对于短视窗的数量而言过大时,原本可以被共同编码的比例因子将被重复编码,由此使编码效率降低。当群组的数量相对于短视窗的数量而言过小时,即使是当音频信号变化剧烈时也使用公共比例因子。其结果是,音质被降低。所述MPEG标准未提供任何用于编组短视窗的特定方法。

发明内容
利用长视窗类型来为数据的当前帧和数据的下一帧来计算初级修正离散余弦变换(MDCT)系数。然后,使用所计算出的当前帧和下一帧的初级MDCT系数来确定当前帧的视窗类型。如果所确定的视窗类型不是长视窗类型,则利用所确定的视窗类型来为当前帧计算最终MDCT系数。


通过如下详细说明以及本发明各种实施例的附图,将更充分地理解本发明,然而不应该将这些理解为将本发明限制到特定的实施例,而是仅用来解释和帮助理解。
图1是编码系统的一个实施例的框图。
图2是对频谱数据帧执行MDCT的过程的一个实施例的流程图。
图3是视窗类型判定过程的一个实施例的流程图。
图4是用于检测帧当中从稳定信号到瞬态信号的转变的指示的过程的一个实施例的流程图。
图5是用于根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型的过程的一个实施例的流程图。
图6是用于编组帧内的短视窗的过程的一个实施例的流程图。
图7是用于确定短视窗类型的过程的一个实施例的流程图。
图8是用于创建短视窗的两个初级群组的过程的一个实施例的流程图。
图9是用于执行短视窗的最终编组的过程的一个实施例的流程图。
图10举例说明了帧的短视窗的编组。
图11是适用于实施本发明的实施例的计算机环境的框图。
具体实施例方式
在本发明实施例的下列详细说明中,给附图加上了参考标记,其中同样的参考标记表示相似的元件,并且附图中作为例子示出了可以实施本发明的特定实施例。这些实施例被足够详细地描述以使本领域的技术人员能实施本发明,而且将理解可以使用其它的实施例并且在不偏离本发明的范围的情况下可以作出逻辑的、机械的、电学的、功能性的及其它的改变。因此,下列详细说明不是一种限制,而本发明的范围仅由所附的权利要求来限定。
从本发明的操作的概述起,图1举例说明了编码系统100的一个实施例。所述编码系统100不遵循在此统称为MPEG标准的MPEG音频编码标准(例如,MPEG-2 AAC标准、MPEG-4 AAC标准等等)。所述编码系统100包括滤波器组模块102、编码工具104、音质建模器106、量化模块110和霍夫曼编码模块114。
所述滤波器组模块102接收音频信号并且执行修正离散余弦变换运算(MDCT)以将音频信号映射到频率域中。所述映射是利用长变换值域(由长视窗定义的)或短变换值域(由短视窗定义的)来执行的,在所述长变换值域中待分析信号在时间上扩展以提高频率分辨率,在所述短变换值域中待分析信号在时间上缩减以提高时间分辨率。在只有稳定信号的情况下使用长视窗类型,而当存在快速的信号变化时使用短视窗类型。通过根据待分析信号的特性而使用这两个类型的操作,就可以防止称作预回波的令人厌恶的噪声的产生,否则由于不充分的时间分辨率将产生预回波。
正如将在下面更详细论述的那样,所述滤波器组模块102负责确定使用哪一个视窗类型以及利用所确定的视窗类型来产生MDCT系数。在一个实施例中,所述滤波器组模块102还可以负责在使用短视窗类型来产生MDCT系数时执行编组。编组减少了与短视窗相关联的辅助信息量。每一个群组都包括一个或多个连续的短视窗,其比例因子是相同的。
所述编码工具104包括用于频谱处理的一组任选工具。例如,所述编码工具可以包括临时噪声整形(TNS)工具和预测工具以执行预测编码,还包括强度/耦合工具和MS制立体声(M/S)工具以执行立体声相关编码。
所述音质建模器106分析样值以确定听觉遮蔽曲线。听觉遮蔽曲线表示能在不可听的情况下被注入到各个样值的每一个中的最大噪声量。在这点上,什么是可听得到的是基于人类听觉的音质模型的。听觉遮蔽曲线充当期望噪声谱的估计。
所述量化模块110负责为频率频谱数据选择最优比例因子。比例因子选择过程是基于根据遮蔽曲线计算出的容许的失真和根据依据编码所规定的比特率计算出的可容许比特数的。一旦选择了最优比例因子,所述量化模块110就使用它们来量化频率频谱数据。将所得到的量化后的频谱系数编组成比例因子带(SFB)。每个SFB都包括由相同比例因子的使用而产生的系数。
所述霍夫曼编码模块114负责为量化后的频谱系数的每一个群组选择最优霍夫曼代码本并且利用最优霍夫曼代码本来执行霍夫曼编码操作。所得到的可变长度编码(VLC),标识在编码中使用的代码本的数据、量化模块110所选的比例因子和一些其它信息都是随后被汇编到比特流中的。
在一个实施例中,所述滤波器组模块102包括视窗类型确定器108、MDCT系数计算器112和短视窗编组确定器116。所述视窗类型确定器108负责确定为MDCT运算而使用的视窗类型。在一个实施例中,正如将在下面更详细地论述的那样,所述确定是利用适于使用长视窗的视窗类型判定方法来作出的。
所述MDCT系数计算器112负责利用所确定的视窗类型来计算MDCT系数。在一个实施例中,所述MDCT系数计算器112首先利用假定的长视窗类型来计算初级MDCT系数。然后,如果视窗类型确定器108确定将要使用的视窗类型不是长视窗类型,则所述MDCT系数计算器112就利用所确定的视窗类型来重新计算MDCT系数。否则,初级MDCT系数就无需被重新计算。
所述短视窗编组确定器116在使用短视窗类型时进行工作并且负责定义如何编组短视窗。在一个实施例中,所述短视窗编组确定器116根据与每个短视窗相关联的能量来执行短视窗的初级编组,将其划分为两个群组。正如在下面将更详细地论述的那样,如果两个初级群组中的任何一个过大的话,则就进一步将大的群组分成两个或多个群组。
图2-9是根据本发明的各种实施例的、可以由图1的滤波器组模块102执行的过程的流程图。所述过程可以由处理逻辑来执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑等等)、软件(比如运行在通用计算机系统或专用机上的)或者上述两者的组合。对于软件实现的过程,流程图的描述使本领域的技术人员能开发这种包含能在适当配置的计算机(执行来自于计算机可读介质的指令的计算机的处理器,所述计算机可读介质包括存储器)上执行所述过程的指令的程序。计算机可执行指令可以用计算机程序设计语言来编写或者可以嵌入在固件逻辑中。如果用遵循所标识的标准的程序设计语言进行编写,则可以在各种硬件平台上执行这类指令并且可以接口连接于各种操作系统。另外,没有参考任何特定程序设计语言来描述本发明的实施例。将会认识到的是,可以使用各种程序设计语言来实现这里所描述的教导。此外,说到采取动作或导致结果的软件,可以采取一种形式或其它的形式(例如,程序、步骤、过程、应用、模块、逻辑...),这是本领域所公知的。这样的表达仅仅是计算机执行软件令该计算机的处理器执行动作或产生结果的简述方式。将会认识到的是,在不脱离本发明的范围的情况下,可以将更多或更少的操作并入到图2-9中所举例说明的过程当中,而且这里所示出和所述的块的排列并不暗指特定的顺序。
图2是用于对频谱数据帧执行MDCT的过程200的一个实施例的流程图。
参照图2,处理逻辑始于计算当前帧的初级MDCT系数集合和下一帧的初级MDCT系数集合(处理块202)。计算是在假定当前帧和下一帧两者的视窗类型都为长视窗类型的情况下执行的。所计算出的当前帧和下一帧的初级MDCT系数都被存储在缓冲器中。在一个实施例中,当前帧和下一帧是沿时间轴产生以使相邻帧彼此重叠(例如,50%重叠)的样值的帧序列(也称为块)中的两个相邻帧。所述重叠抑制了在相邻帧之间的边界部分上发生的失真。
在处理块204,处理逻辑利用当前帧的初级MDCT系数和下一帧的初级MDCT系数来确定当前帧的视窗类型。所述视窗类型确定是利用适于使用长视窗的视窗类型判定方法来作出的。下面将结合图3更详细地论述这类方法的一个实施例。
在判定框206,处理逻辑确定所判定的当前帧的视窗类型是否是长视窗类型。如果不是,则处理逻辑利用所判定的视窗类型来计算当前帧的最终MDCT系数集合(处理块208)。如果是,则处理逻辑考虑将当前帧的初级MDCT系数作为最终系数集合(处理块210)。
图3是视窗类型判定过程300的一个实施例的流程图。
参照图3,处理逻辑始于确定在下一帧中是否存在从稳定信号到瞬态信号的转变的指示(判定框302)。在一个实施例中,这一确定是通过将与当前帧相关联的能量和与下一帧相关联的能量相比较来作出的。下面结合图4来更详细地论述用于检测帧当中从稳定信号到瞬态信号的转变的过程的一个实施例。
如果在判定框302确定为肯定的,则处理逻辑就判定下一帧的初级视窗类型是短视窗类型(处理块304)。否则,处理逻辑判定下一帧的初级视窗类型是长视窗类型(处理块306)。
此外,处理逻辑根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型(处理块308)。当前帧的视窗类型的确定适于使用长视窗类型。在一个实施例中,其中正如MPEG标准所定义的那样,每个不同的视窗类型后面可能跟着两个过渡视窗类型,处理逻辑选择使当前帧和后续帧中的短视窗的使用最小化的视窗类型。也就是说,所述MPEG标准提供了从每个不同视窗类型开始的两个过渡视窗类型,其中一个过渡视窗类型允许在当前帧或下一帧中使用短视窗,而另一个过渡视窗类型允许在当前帧或下一帧中使用长视窗。具体地说,所述MPEG标准允许下列转变a.从长视窗类型到长视窗类型或者长-短视窗类型;b.从长-短视窗类型到短视窗类型或者短-长视窗类型;c.从短-长视窗类型到长视窗类型或者长-短视窗类型;和d.从短视窗类型到短视窗类型或短长视窗类型。
因此,如果前一帧的视窗类型例如是短-长视窗类型并且下一帧的初级视窗类型是长视窗类型,则处理逻辑就为当前帧选择长视窗类型,而不是选择其它的选项,即方便下一帧使用短视窗的长-短视窗类型。
下面将结合图5更详细地论述用于根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型的过程的一个实施例。
上述视窗类型判定方法与MDCT计算相结合,直接对MDCT数据进行运算而不需要快速傅里叶变换(FFT)运算和计算知觉熵。另外,上述视窗类型判定方法适于使用长视窗,由此使短视窗的使用最小化。它只有当检测到从稳定信号到瞬态信号的转变的指示时才使用短视窗。
图4是用于检测帧当中从稳定信号到瞬态信号的转变的指示的过程400的一个实施例的流程图。
参照图4,处理逻辑始于计算当前帧的MDCT系数集合和下一帧的初级MDCT系数的集合(处理块402)。然后,处理逻辑在缓冲器中存储所计算出的MDCT系数集合。
在处理块404,处理逻辑利用所计算出的当前帧的初级MDCT系数来计算当前帧的总能量。在一个实施例中,按如下计算当前帧的总能量current_total_energy=sum(current_coef[i]*current_coef[i]/C)for i=0 to 1023,其中current_coef[i]是当前帧中的第i个MDCT系数的数值,而C是用来防止总和溢出的常量(例如,对于16位寄存器,C=32767)。
在处理块406,处理逻辑利用所计算出的下一帧的初级MDCT系数来计算下一帧的总能量。同样,按如下计算下一帧的总能量next_total_energy=sum(next_coef[i]*next_coef[i]/C)for i=0to 1023,其中next_coef[i]是下一帧中的第i个MDCT系数的数值,而C是用来防止总和溢出的常量。
在处理块408,处理逻辑以对数方式缩放当前帧的总能量和下一帧的总能量。在一个实施例中,所述缩放是按如下完成的c_pow=log(current_total_energy)和n_pow=log(next_total_energy)。
在处理块410,处理逻辑通过将缩放后的下一帧的总能量减去缩放后的当前帧的总能量来计算梯度能量。
在判定框412,处理逻辑确定梯度能量是否超出阈值(例如,1)。在一个实施例中,所述阈值是实验上定义的。如果在判定框412确定为肯定的,则处理逻辑就判定在下一帧中很可能发生到瞬态信号的转变(处理块414)。
图5是用于根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型的过程500的一个实施例的流程图。
参照图5,处理逻辑从确定下一帧的初级视窗类型是否是长视窗类型开始(判定框502)。如果是,则处理逻辑进一步确定前一帧的视窗类型是长视窗类型还是短-长视窗类型(判定框504)。如果是,则处理逻辑就判定当前帧的视窗类型是长视窗类型(处理块506)。如果不是,则处理逻辑就判定当前帧的视窗类型是短-长视窗类型(处理块508)。
如果在判定框502确定为否定的,即下一帧的初级视窗类型是短视窗类型,则处理逻辑进一步确定前一帧的视窗类型是长视窗类型还是短-长视窗类型(判定框510)。如果是,则处理逻辑就判定当前帧的视窗类型是长-短视窗类型(处理块512)。如果不是,则处理逻辑就判定当前帧的视窗类型是短视窗类型(处理块514)。
在一个实施例中,如果判定为一帧使用短视窗类型,则利用短视窗编组来减少与短视窗相关联的辅助信息量。每个群组都包括一个或多个连续的短视窗,其比例因子是相同的。在一个实施例中,关于编组的信息被包含在所指定的比特流元素当中。在一个实施例中,关于编组的信息包括帧内的群组数量和每一帧中的短视窗的数量。
图6是用于编组帧内的短视窗的过程600的一个实施例的流程图。
参照图6,处理逻辑从识别帧内的第一类型的短视窗和第二类型的短视窗开始(处理块602)。短视窗的类型是根据与这个视窗相关联的能量来确定的。下面将结合图7更详细地论述用于确定短视窗类型的过程的一个实施例。
在处理块604,处理逻辑调整其分类很可能不正确的短视窗的类型。在一个实施例中,如果其类型不匹配相邻视窗的类型并且相邻视窗具有相同的类型,则短视窗的分类很可能是不正确的。在一个实施例中,其中帧内短视窗的数量等于8,所述调整过程可以表示为for win_index 1 to 6if(candidate[win_index_1]=candidate[win_index+1]),candidate[win_index]=candidate[win_index-1],其中win_index指的是帧内的短视窗的号码, 而candidate[win_index]、candidate[win_index-1]和candidate[win_index+1]分别表示当前视窗、前一视窗、和下一视窗的类型。
在处理块606,处理逻辑将帧内的短视窗根据它们的类型编组成两个初级群组。下面将结合图8更详细地论述用于创建短视窗的两个初级群组的过程的一个实施例。
在判定框608,处理逻辑确定任何初级群组中的短视窗的数量是否超出阈值数量。在一个实施例中,阈值数量是一个实验上确定的常量。取决于阈值数量,可能没有一个群组是过大的,或者一个或两个初级群组是过大的。在另一个实施例中,所述阈值数量是其它初级群组中的短视窗的数量,并且如果一个初级群组中的短视窗的数量超出其它初级群组中的短视窗的数量则处理逻辑就判定它超出阈值。当使用比较时,可能没有一个初级群组是过大的,或一个初级群组可能是过大的。当群组过大时,很可能它将具有不同特性的短视窗组合起来。然后,这个群组的公共比例因子的使用可能导致音质的下降。
如果处理逻辑在判定框608确定两个初级群组中的任何群组过大,则处理逻辑就进一步将大的初级群组划分成两个或多个最终群组(处理块610)。按这样的方法来完成最终群组,以便群组数量能够实现编码效率和音质之间的平衡。下面将结合图9更详细地描述用于执行短视窗的最终编组的过程的一个实施例。
在处理块612,处理逻辑根据最终群组来确定帧内的群组的数量以及每个群组中的短视窗的数量。
图7是用于确定短视窗的类型的过程700的一个实施例的流程图。
参照图7,处理逻辑从计算帧内的每个短视窗的能量开始(处理块702)。在一个实施例中,按如下计算每个短视窗的能量win_energy[win_index]=log[sum(coef[i]*coef[i])+0.5],其中[win_index]标识帧内的当前短视窗的号码,win_energy是所得到的能量,而coef[i]是短视窗内的第i个频谱系数。
接下来,处理逻辑找到具有最小能量的短视窗(处理块704)并且计算所述帧中的每个短视窗的偏移能量值(处理块706)。在一个实施例中,偏移能量值是通过将相应的短视窗的能量减去最小能量而计算出的。
在处理块708,处理逻辑通过用所述帧内的所有偏移能量值的总和除以所述帧中的短视窗数量来计算所述帧的平均偏移能量值。
在判定框710,处理逻辑为第一短视窗确定是否其偏移能量值超出平均偏移能量值。如果是,则处理逻辑判定该短视窗具有第一类型(处理块712)。如果不是,则处理逻辑判定该短视窗具有第二类型(处理块714)。
接下来,处理逻辑确定在所述帧中是否有更多的未处理的视窗(判定框715)。如果是,则处理逻辑移动到下一个短视窗(处理块716)并且前进至判定框710。如果不是,则过程700结束。
图8是用于创建短视窗的两个初级群组的过程800的一个实施例的流程图。
参照图8,处理逻辑从初始化一组变量开始(处理块802)。例如,处理逻辑可以将前一视窗类型变量的值设置为第一短视窗类型,将初级群组数目变量的数值设置为1,并且将第一初级群组长度变量的数值设置为1。
接下来,处理逻辑从所述帧中的第二短视窗起,开始处理短视窗。具体地说,处理逻辑确定当前短视窗的类型是否与第一短视窗类型相同(判定框804)。如果是,则处理逻辑使第一初级群组长度增加1(处理块806),并且检查是否还有更多的短视窗仍未处理(判定框808)。如果还有更多的短视窗仍未处理,则处理逻辑移动到下一个短视窗(处理块810)并且返回到判定框804。如果没有还未处理的短视窗,则过程800结束。
如果处理逻辑在判定框804确定当前短视窗的类型与第一短视窗的类型不同,则处理逻辑就将初级群组数目设置为2(处理块812)并且通过将短帧的总数量减去第一初级群组的长度来计算第二初级群组的长度(处理块814)。
图9是用于执行短视窗的最终编组的过程900的一个实施例的流程图。过程900根据MPEG标准进行操作,根据该标准所述帧中的短视窗的数量等于8。
参照图9,处理逻辑从确定第一初级群组的长度是否超出阈值(例如,4)开始(判定框902)。如果是,则处理逻辑进一步确定第一初级群组的长度是否等于8(判定框904)。如果是,则处理逻辑将最终的群组数量设置为2,将第一最终群组的长度设置为第一初级群组的长度,并且将第二最终群组的长度设置为第二初级群组的长度(处理块906)。如果不是,则处理逻辑将群组的最终数量设置为3(处理块908),将第三最终群组的长度设置为第二初级群组的长度(处理块910),通过用初级第二群组的长度除以二来计算第二最终群组的长度(所述计算可以用window_group_length[1]>>1来表示)(处理块912),并且通过将第一初级群组的长度减去第二最终群组的长度来计算第一最终群组的长度(处理块914)。
如果处理逻辑在判定框902确定第一初级群组的长度没有超出阈值,则它就进一步确定第一初级群组的长度是否小于阈值(判定框916)。如果是,处理逻辑将群组的最终数量设置为3(处理块917),通过用第二初级群组的长度除以二来计算第三最终群组的长度(所述计算可以用window_group_length[2]>>1来表示)(处理块918),通过从第二初级群组的长度减去第三最终群组的长度来计算第二最终群组的长度(处理块920),并且将第一最终群组的长度设置为第一初级群组的长度(处理块922)。
如果处理逻辑在判定框916确定第一初级群组的长度不小于阈值,则它就将群组的数量设置为2并且将第一最终群组的长度设置为第一初级群组的长度并且将第二最终群组的长度设置为第二初级群组的长度(处理块924)。
图10举例说明了帧的短视窗的编组的示例。
参照图10,正在编组的短视窗的类型被示出为grouping_bits″11100011″。短视窗的类型可以由图7的过程700来确定。根据短视窗的这些类型,可以首先通过图8的过程800将短视窗编组成两个初级群组,由此创建具有3个短视窗的第一初级群组和具有5个短视窗的第二初级群组。接下来,可以利用阈值数量4来执行图9的过程900,以进一步将第二初级群组划分成两个群组。其结果是,创建了三个最终群组,其中第一最终群组具有3个短视窗,第二最终群组具有3个短视窗,并且第三最终群组具有2个短视窗。
图11的下列描述意在提供对适用于实现本发明的计算机硬件及其它工作的组件的概述,但是不意在限制应用环境。图11举例说明了适合用作为编码系统100或仅用作为图1的滤波器组模块102的计算机系统的一个实施例。
所述计算机系统1140包括处理器1150、存储器1155和耦合于系统总线1165的输入/输出能力1160。所述存储器1155被配置成能存储当由处理器1150执行时运行这里所述的方法的指令。输入/输出1160还包含各种类型的计算机可读介质,包括可由处理器1150访问的任何类型的存储设备。本领域的技术人员将会立即认识到术语″计算机可读媒体/介质″还包含编码数据信号的载波。还将认识到的是所述系统1140是由存储器1155中所执行的操作系统软件来控制的。输入/输出和相关介质1160存储用于操作系统的可执行指令以及本发明的方法。图1中所示的滤波器组模块102可以是耦合于处理器1150的独立组件或者可以由处理器1150所执行的计算机可执行指令加以具体化。在一个实施例中,所述计算机系统1140可以是ISP(因特网服务提供商)的一部分或者通过输入/输出1160耦合于ISP以便在因特网上发送或接收图像数据。显而易见的是本发明不限于因特网访问以及因特网基于Web的站点;还可以设想直接耦合的网络和专用网络。
将会认识到的是,所述计算机系统1140是具有不同的体系结构的许多可能的计算机系统中的一个例子。典型的计算机系统将通常至少包括处理器、存储器和将存储器耦合于处理器的总线。本领域的技术人员将会立即认识到可以利用其它计算机系统结构来实施本发明,包括多处理器系统、微型计算机、大型计算机等等。本发明还可以在分布计算环境中实施,在所述分布计算环境中任务是由通过通信网络链接的远程处理设备来执行的。
已经描述了在音频编码过程中进行视窗类型确定的各种不同的方面。尽管在这里已经举例说明和描述了特定实施例,但是本领域的技术人员将会认识到的是,计算以达到相同目的的任何方案都可以替代所示的特定实施例。本申请意在涵盖本发明的任何修改或变形。
权利要求
1.一种方法,包括利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个初级修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数;利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗类型;以及如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计算当前帧的多个最终MDCT系数。
2.根据权利要求1所述的方法,其中多个初级MDCT系数是根据沿时间轴产生的多个相应的样值计算的。
3.根据权利要求1所述的方法,进一步包括如果所确定的当前帧的视窗类型是长视窗类型,则将当前帧的多个初级MDCT系数用作为当前帧的多个最终MDCT系数。
4.根据权利要求1所述的方法,其中确定当前帧的视窗类型包括确定下一帧的初级视窗类型;以及使用下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型。
5.根据权利要求4所述的方法,其中确定下一帧的初级视窗类型包括利用当前帧的多个初级MDCT系数来计算当前帧的总能量;利用下一帧的多个初级MDCT系数来计算下一帧的总能量;根据当前帧的总能量和下一帧的总能量来确定是否很可能在下一帧中发生从稳定信号到瞬态信号的转变;以及如果很可能发生转变,则判定下一帧的初级视窗类型是短视窗类型。
6.根据权利要求5所述的方法,进一步包括如果不可能发生转变,则判定下一帧的初级视窗类型是长视窗类型。
7.根据权利要求5所述的方法,其中使用下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型包括识别前一帧的视窗类型;以及为当前帧选择过渡视窗类型以便从前一帧的视窗类型转变到下一帧的初级视窗类型,所述选择倾向于使用长视窗类型而不是短视窗类型。
8.一种方法,包括检测在数据的下一帧中从稳定信号到瞬态信号的转变的指示;以及判定下一帧的初级视窗类型是短视窗类型;以及根据当前帧的初级视窗类型和数据的前一帧的视窗类型来确定数据的当前帧的视窗类型,当前帧的视窗类型的确定倾向于使用长视窗类型而不是短视窗类型。
9.根据权利要求8所述的方法,其中检测转变的指示包括利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数;利用当前帧的多个初级MDCT系数来计算当前帧的总能量;利用下一帧的多个初级MDCT系数来计算下一帧的总能量;以对数方式缩放当前帧的总能量和下一帧的总能量;通过从缩放后的下一帧的总能量减去缩放后的当前帧的总能量来计算梯度能量;确定所述梯度能量是否超出阈值;以及如果所述梯度能量超出阈值,则判定很可能在下一帧中发生到瞬态信号的转变。
10.根据权利要求9所述的方法,其中多个初级MDCT系数是根据沿时间轴产生的多个相应的样值计算的。
11.根据权利要求9所述的方法,其中所述阈值是实验上确定的。
12.根据权利要求9所述的方法,进一步包括如果所述梯度能量没有超出阈值,则判定在下一帧中未发生到瞬态信号的转变,并且判定下一帧的初级视窗类型是长视窗类型。
13.根据权利要求8所述的方法,其中根据下一帧的初级视窗类型和数据的前一帧的视窗类型来确定数据的当前帧的视窗类型,包括识别前一帧的视窗类型;以及为当前帧选择视窗类型以便从前一帧的视窗类型转变到下一帧的初级视窗类型,所述选择倾向于使用长视窗类型而不是短视窗类型。
14.根据权利要求13所述的方法,其中为当前帧选择视窗类型包括如果下一帧的初级视窗类型是长视窗类型并且前一帧的视窗类型是长视窗类型和短-长视窗类型中任何一种,则为当前帧选择长视窗类型。
15.根据权利要求13所述的方法,其中为当前帧选择视窗类型包括如果下一帧的初级视窗类型是长视窗类型并且前一帧的视窗类型是短视窗类型和长-短视窗类型中的任何一种,则为当前帧选择短-长视窗类型。
16.根据权利要求13所述的方法,其中为当前帧选择视窗类型包括如果下一帧的初级视窗类型是短视窗类型并且前一帧的视窗类型是长视窗类型和短-长视窗类型中的任何一种,则为当前帧选择长-短视窗类型。
17.根据权利要求13所述的方法,其中为当前帧选择视窗类型包括如果下一帧的初级视窗类型是短视窗类型并且前一帧的视窗类型是短视窗类型和长-短视窗类型中的任何一种,则为当前帧选择短视窗类型。
18.一种提供指令的计算机可读介质,当在处理器上执行所述指令时,令处理器执行以下方法,包括检测在数据的下一帧中从稳定信号到瞬态信号的转变的指示;以及判定下一帧的初级视窗类型是短视窗类型;以及根据当前帧的初级视窗类型和数据的前一帧的视窗类型来确定数据的当前帧的视窗类型,所述当前帧的视窗类型的确定倾向于使用长视窗类型而不是短视窗类型。
19.根据权利要求18所述的计算机可读介质,其中所述多个初级MDCT系数是根据沿时间轴产生的多个相应的样值计算的。
20.根据权利要求18所述的计算机可读介质,其中所述方法进一步包括如果所确定的当前帧的视窗类型是长视窗类型,则将当前帧的多个初级MDCT系数用作为当前帧的多个最终MDCT系数。
21.一种提供指令的计算机可读介质,当在处理器上执行所述指令时,令处理器执行以下方法,包括利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个初级修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数;利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗类型;以及如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计算当前帧的多个最终MDCT系数。
22.根据权利要求21所述的计算机可读介质,其中检测转变的指示包括利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数;利用当前帧的多个初级MDCT系数来计算当前帧的总能量;利用下一帧的多个初级MDCT系数来计算下一帧的总能量;以对数方式缩放当前帧的总能量和下一帧的总能量;通过从缩放后的下一帧的总能量减去缩放后的当前帧的总能量来计算梯度能量;确定所述梯度能量是否超出阈值;以及如果所述梯度能量超出阈值,则判定很可能在下一帧中发生到瞬态信号的转变。
23.根据权利要求22所述的计算机可读介质,其中所述多个初级MDCT系数是根据沿时间轴产生的多个相应的样值计算的。
24.一种计算机化系统,包括存储器;和耦合于存储器的至少一个处理器,所述至少一个处理器执行指令集合,所述指令使至少一个处理器检测在数据的下一帧中从稳定信号到瞬态信号的转变的指示;判定下一帧的初级视窗类型是短视窗类型;以及根据当前帧的初级视窗类型和数据的前一帧的视窗类型来确定数据的当前帧的视窗类型,当前帧的视窗类型的确定倾向于使用长视窗类型而不是短视窗类型。
25.根据权利要求24所述的系统,其中所述多个初级MDCT系数是根据沿时间轴产生的多个相应的样值计算的。
26.根据权利要求24所述的系统,其中如果所确定的当前帧的视窗类型是长视窗类型,则所述处理器进一步将当前帧的多个初级MDCT系数用作为当前帧的多个最终MDCT系数。
27.一种计算机化系统,包括存储器;和耦合于存储器的至少一个处理器,所述至少一个处理器执行指令集合,所述指令使至少一个处理器利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个初级修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数;利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗类型;以及如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计算当前帧的多个最终MDCT系数。
28.根据权利要求27所述的系统,其中所述处理器通过下列操作来检测转变的指示利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个初级修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数;利用当前帧的多个初级MDCT系数来计算当前帧的总能量;利用下一帧的多个初级MDCT系数来计算下一帧的总能量;以对数方式缩放当前帧的总能量和下一帧的总能量;通过从缩放后的下一帧的总能量减去缩放后的当前帧的总能量来计算梯度能量;确定所述梯度能量是否超出阈值;以及如果所述梯度能量超出阈值,则判定很可能在下一帧中发生到瞬态信号的转变。
29.根据权利要求28所述的系统,其中所述多个初级MDCT系数是根据沿时间轴产生的多个相应的样值计算的。
30.一种设备,包括用于检测在数据的下一帧中从稳定信号到瞬态信号的转变的指示的装置;和用于判定下一帧的初级视窗类型是短视窗类型的装置;和用于根据当前帧的初级视窗类型和数据的前一帧的视窗类型来确定数据的当前帧的视窗类型的装置,当前帧的视窗类型的确定倾向于使用长视窗类型而不是短视窗类型。
31.一种设备,包括用于利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个初级修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数的装置;用于利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗类型的装置;以及用于如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计算当前帧的多个最终MDCT系数的装置。
32.一种设备,包括修正离散余弦变换(MDCT)系数计算器,用于利用当前帧和下一帧中每一个的长视窗类型来计算数据的当前帧的多个初级修正离散余弦变换(MDCT)系数和数据的下一帧的多个初级MDCT系数;和视窗类型确定器,用于利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗类型,其中所述MDCT系数计算器进一步执行如下操作如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计算当前帧的多个最终MDCT系数。
全文摘要
利用长视窗类型来为数据的当前帧和数据的下一帧计算初级修正离散余弦变换(MDCT)系数。然后,使用计算出的当前帧和下一帧的初级MDCT系数来确定视窗类型不是长视窗类型,利用所确定的视窗类型来为当前帧计算最终MDCT系数。
文档编号G10L19/02GK1997988SQ200480035333
公开日2007年7月11日 申请日期2004年9月20日 优先权日2003年9月29日
发明者J·雍 申请人:索尼电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1