谐波音频信号的变换编码/解码的制作方法

文档序号:13474196阅读:190来源:国知局
谐波音频信号的变换编码/解码的制作方法
本申请是2012年10月30日提交的中国专利申请no.201280072072.6的发明名称为“谐波音频信号的变换编码/解码”的分案申请。本发明所提出的技术涉及音频信号(特别是谐波音频信号)的变换编码/解码。
背景技术
:变换编码是用于压缩和发送音频信号的主要技术。变换编码的概念是首先将信号变换到频域,然后量化并发送变换系数。解码器使用所接收的变换系数通过应用逆频率变换来重构信号波形,见图1。在图1中,将音频信号x(n)转发到频率变换器10。将所得到的频率变换y(k)转发到变换编码器12,并将已编码的变换发送到解码器,变换解码器14对该已编码的变换进行解码。将已解码的变换转发到逆频率变换器16,逆频率变换器16将其变换为已解码的音频信号此方案背后的动机是,因为以下原因,可以更高效地量化频域系数:1)变换系数(图1中的y(k))比输入信号采样(图1中的x(n))更非相关。2)频率变换提供能量压缩(更多的系数y(k)接近于零并可以被忽略),以及3)变换背后的主观动机是人的听觉系统在变换域上工作,在该域上更易于选择感官上重要的信号成分。在典型的变换编解码器中,使用修正离散余弦变换(mdct)来逐块地(有50%重合)对信号波形进行变换。在mdct类型变换编解码器中,将块信号波形x(n)变换为mdct矢量y(k)。波形块的长度对应于20-40ms音频段。如果长度用2l表示,则mdct变换可以定义为:其中k=0,...,l-1。然后,mdct矢量y(k)被分为多个频带(子矢量),并且每个频带中的能量(或增益)计算为:其中,mj是频带j中的第一系数,nj指代对应频带中mdct系数的数量(典型范围包含8-32个系数)。作为均匀频带结构的示例,对所有j设nj=8,则g(0)可以是前8个系数的能量,g(1)可以是下8个系数的能量,以此类推。这些能量值或增益给出已量化的谱包络的近似,并将量化索引发送给解码器。通过利用对应包络增益缩放mdct子矢量来获得残余子矢量或形状,例如对每个频带中的残余进行缩放以具有单位均方根(rms)能量。然后,基于对应的包络增益,利用不同数量的比特来量化残余子矢量或形状。最终,在解码器处,通过利用对应包络增益缩放残余子矢量或形状来重构mdct矢量,并使用逆mdct来重构时域音频帧。传统变换编码概念对非常谐波的音频信号(例如单一乐器)不太有效。在图2中示出了这种谐波谱的示例(为了比较,在图3中示出了不具有过量谐波的典型音频谱)。原因是,利用谱包络的归一化不会导致足够“平”的残余矢量,并且残余编码方案不会产生可接受质量的音频信号。这种信号和编码模型之间的不匹配仅可以以非常高比特率解决,但在大多数情况下,此方案是不合适的。技术实现要素:所提出的技术的目的是更合适于谐波音频信号的变换编码/解码方案。所提出的技术涉及一种对谐波音频信号的频率变换系数进行编码的方法,所述方法包括以下步骤:对具有超过预定频率相关阈值的幅度的谱峰进行定位;对包括已定位的波峰并在已定位的波峰周围的峰域进行编码;对在所述峰域之外并在交越频率以下的系数的至少一个低频集合进行编码,该交越频率取决于用于对所述峰域进行编码的比特数;对所述峰域之外的尚未编码系数的至少一个高频集合的噪声基底增益进行编码。所提出的技术还涉及一种用于对谐波音频信号的频率变换系数进行编码的编码器,所述编码器包括:波峰定位器,被配置为:对具有超过预定频率相关阈值的幅度的谱峰进行定位;峰域编码器,被配置为:对包括已定位的波峰和在已定位的波峰周围的峰域进行编码;低频集合编码器,被配置为:对在所述峰域之外并在交越频率以下的系数的至少一个低频集合进行编码,所述交越频率取决于用于对所述峰域进行编码的比特数;噪声基底增益编码器,被配置为:对所述峰域之外的尚未编码的系数的至少一个高频集合的噪声基底增益进行编码。所提出的技术还涉及一种包括这种编码器的用户设备(ue)。所提出的技术涉及一种用于对已编码的频率变换谐波音频信号的频率变换系数进行重构的方法,所述方法包括以下步骤:对已编码的频率变换谐波音频信号的谱峰域进行解码;对系数的至少一个低频集合进行解码;对所述峰域之外的每个低频集合的系数进行分配;对所述峰域之外的系数的至少一个高频集合的噪声基底增益进行解码;用具有所述对应噪声基底增益的噪声来填充每个高频集合。所提出的技术还涉及一种用于对已编码的频率变换谐波音频信号的频率变换系数进行重构的解码器,所述解码器包括:峰域解码器,被配置为:对所述已编码的频率变换谐波音频信号的谱峰域进行解码;低频集合解码器,被配置为:对系数的至少一个低频集合进行解码;系数分配器,被配置为:对所述峰域之外的每个低频集合的系数进行分配;噪声基底增益解码器,被配置为:对所述峰域之外的系数的至少一个高频集合的噪声基底增益进行解码;噪声填充器,被配置为:用具有所述对应噪声基底增益的噪声来填充每个高频集合。所提出的技术还涉及一种包括这种编码器的用户设备(ue)。所提出的谐波音频编码/解码方案为大类别的谐波音频信号提供了比传统编码方案更好的感官质量。附图说明可以通过参考以下说明书连同附图最佳地理解本技术及其其他目的和优点,在附图中:图1示出了频率变换编码概念;图2示出了谐波音频信号的典型谱;图3示出了非谐波音频信号的典型谱;图4示出了峰域;图5是示出了所提出的编码方法的流程图;图6a-d是示出了所提出的编码方法的示例实施例;图7是所提出的编码器的示例实施例的框图;图8是所提出的解码方法的流程图;图9a-c示出了所提出的解码方法的示例实施例;图10是所提出的解码器的示例实施例的框图;图11是所提出的编码器的示例实施例的框图;图12是所提出的解码器的示例实施例的框图;图13是包括所提出的编码器的ue的示例实施例的框图;图14是包括所提出的解码器的ue的示例实施例的框图;图15是所提出的编码方法的一部分的示例实施例的流程图;图16是所提出的编码器中峰域编码器的示例实施例的框图;图17是所提出的解码方法的一部分的示例实施例的流程图;图18是所提出的解码器中峰域解码器的示例实施例的框图。具体实施方式图2示出了谐波音频信号的典型谱,图3示出了非谐波音频信号的典型谱。谐波信号的谱是通过由非常弱的频带分离的强谱峰形成的,而非谐波信号的谱更平滑。所提出的技术提供更好地处理谐波音频信号的备选音频编码模型。主要概念是频率变换矢量(例如mdct矢量)未分为包络和残余部分,而是一起直接提取和量化谱峰以及相邻mdct频段(bin)。在高频处,不对相邻波峰之外的低能量系数进行编解码(coded),而是在解码器处进行噪声填充。这里,在传统编码中使用的信号模型,{谱包络+残余}被替换为新模型{谱峰+噪声基底}。在低频处,仍对相邻波峰之外的系数进行编解码,因为它们具有重要的感官作用。编码器编码器侧的主要步骤是:●对谱峰域进行定位和编码●对低频(lf)谱系数进行编码。已编码区域的大小取决于在峰域编码之后剩余的比特的数量。●对峰域之外的谱系数的噪声基底增益进行编码首先估计噪声基底,然后通过波峰采选算法(在附录i-ii中更详细地描述了对应的算法)提取谱峰。在波峰位置,将每个波峰及其周围的4个相邻波峰归一化为单位能量,参见图4。换言之,对整个区域进行缩放使得波峰具有幅度一。对波峰位置、增益(表示波峰幅度、量值)和符号进行量化。将矢量量化器(vq)应用于波峰周围的mdct频段,并搜索提供最佳匹配的码本矢量的索引ishape。对波峰位置、增益和符号以及周围形状矢量进行量化,并将量化索引{ipositionigainisignishape}发送到解码器。除了这些索引之外,还向解码器通知波峰的总数。在以上示例中,每个峰域包括对称地处于波峰周围的4个相邻波峰。然而,以对称或非对称方式在波峰周围具有更少更多相邻波峰也是切实可行的。在对峰域进行量化之后,使用所有可用的剩余比特(除了为噪声基底编码保留的比特之外,见下文)来对低频mdct系数进行量化。这是通过将剩余的未量化的mdct系数分组到例如从第一频段起的24维频带中来完成。因此,这些频带将覆盖最低频直至特定交越频率。不包括在波峰编码中已经量化的系数,因此频带不一定由24个连续系数组成。因此,以下还将频带称为“集合”。lf频带或集合的总数取决于可用比特的数量,但总是保留了足够的比特用于创建至少一个集合。当更多比特可用时,为第一集合分配更多比特,直到达到每个集合的最大比特数的阈值。如果存在更多可用比特,则创建另一集合并向该集合分配比特直到达到阈值。重复此过程直到分配完所有可用比特。这意味着此过程停止的交越(crossover)频率将取决于帧,因为波峰的数量随着帧而改变。交越频率将由已经对峰域进行编码时对lf编码可用的比特的数量来确定。可用利用任意合适的矢量量化方案完成lf集合的量化,但通常使用某种类型的增益形状编码。例如,可将阶乘脉冲编码用于波形矢量,并可将标量量化器用于增益。总是保留特定数量的比特用于对峰域之外的系数的至少一个高频频带和lf频带的上边频以上的噪声基底增益进行编码。优选地,将两个增益用于此目的。可用从附录i中描述的噪声基底算法获得这些增益。如果将阶乘脉冲编码用于对低频频带的编码,则可以不对某些lf系数进行编码。作为替代,将这些系数包括在高频频带编码中。因为在lf频带的情况下,hf频带不必须由连续系数组成。因此,以下频带也将被称为“集合”。如果合适的话,还可以编码并发送针对带宽扩展(bwe)区域的谱包络。频带的数量(以及bwe起始的过渡频率)是取决于比特率的,例如在24kbps时是5.6khz,在32kbps时是6.4khz。图5是示出了从通常角度看的所提出的编码方法的流程图。步骤s1定位具有超过预定频率相关阈值的幅度的谱峰。步骤s2对包括已定位的波峰和在已定位的波峰周围的峰域进行编码。步骤s3对在峰域之外并在交越频率以下的至少一个低频集合的系数进行编码,该交越频率取决于用于对峰域进行编码的比特数。步骤s4对峰域之外的尚未编码(仍未编码或剩余)系数的至少一个高频集合的噪声基底增益进行编码。图6a-d示出了所提出的编码方法的示例实施例。图6a示出了要编码的信号帧的mdct变换。在图中有比实际信号更少的系数。然而,应当记住,附图的目的仅是用于阐述编码过程。图6b示出了准备用于增益形状编码的4个已标识的峰域。附录ii中描述的方法可以用于找到它们。然后在图6c中收集峰域之外的lf系数。这些lf系数被连接到已经增益形状编码的块中。图6a中原始信号的剩余系数是图6d中所示的高频系数。它们被分为2个集合并针对每个集合通过噪声基底增益进行编码(编码为已连接的块)。该噪声基底增益可以根据每个集合的能量获得,或通过从附录i中描述的噪声基底估计算法获得的估计获得。图7是所提出的编码器20的示例实施例的框图。波峰定位器22被配置为对具有超过预定频率相关阈值的幅度的谱峰进行定位。峰域编码器24被配置为对包括和在所提取的波峰周围的峰域进行编码。低频集合编码器26被配置为对在峰域之外并在交越频率以下的系数的至少一个低频集合进行编码,该交越频率取决于用于对波形区域进行编码的比特数。噪声基底增益编码器28被配置为:对峰域之外的尚未编码系数的至少一个高频集合的噪声基底增益进行编码。在本实施例中,编码器24、26、28使用所检测的波峰位置来决定在各自编码中要包括哪些系数。解码器解码器中的主要步骤是:●重构谱峰区域●重构lf谱系数●用利用所接收的噪声基底增益进行缩放的噪声来对非编码区域进行噪声填充。音频解码器从比特流中提取峰域的数量和量化索引{ipositionigainisignishape}以重构已编码的峰域。这些量化索引包含关于波峰的谱峰位置、增益和符号的信息以及为相邻波峰提供最佳匹配的码本矢量的索引。根据已编码的lf系数重构峰域之外的mdct低频系数。在解码器处对峰域之外的mdct高频系数进行噪声填充。解码器优选地以两个已编码的噪声基底增益(一个针对矢量的下一半或部分,一个针对矢量的上一半或部分)的形式接收噪声基底电平。如果可应用,音频解码器根据预定义的过渡频率利用针对hfmdct系数的所接收的包络增益执行bwe。图8是示出了从通常角度的所提出的解码方法的流程图。步骤s11对已编码频率变换谐波音频信号的谱峰域进行解码。步骤s12对系数的至少一个低频集合进行解码。步骤s13对峰域之外的每个低频集合的系数进行分配。步骤s14对峰域之外的系数的至少一个高频集合的噪声基底增益进行解码。步骤s15用具有对应噪声基底增益的噪声来填充每个高频集合。在示例实施例中,低频集合的解码基于增益形状解码方案。在示例实施例中,增益形状解码方案基于标量增益解码和阶乘脉冲形状解码。示例实施例包括对两个高频集合中每个的噪声基底增益进行解码的步骤。图9a-c示出了所提出的解码方法的示例实施例。频率变换的重构开始于对谱峰区域及其位置的增益形状解码,如图9a所示。在图9b中,对lf集合进行增益形状解码,并将已解码的变换系数分配到峰域之外的块中。在图9c中,对噪声基底增益已经解码,并利用具有对应噪声基底增益的噪声来填充剩余的变换系数。以此方式,已经近似地重构了图6a的变换。图9c与图6a和6d的比较示出了如所期望的具有不同的各个系数但具有相同能量的噪声填充区域。图10是所提出的解码器40的示例实施例的框图。峰域解码器42被配置为:对已编码频率变换谐波音频信号的谱峰域进行解码。低频集合解码器44被配置为:对系数的至少一个低频集合进行解码。系数分配器46被配置为:对峰域之外的每个低频集合的系数进行分配。噪声基底增益解码器48被配置为:对峰域之外的系数的至少一个高频集合的噪声基底增益进行解码。噪声填充器50被配置为:用具有对应噪声基底增益的噪声来填充每个高频集合。在本实施例中,向系数分配器46和噪声填充器50转发波峰位置以避免峰域的重写。本文所描述的步骤、功能、过程和/或块可以以使用任意传统技术的硬件(例如分立电路或包括通用电路和专用电路两者的集成电路技术)来实现。备选地,本文所描述的步骤、功能、过程和/或块中的至少一些可以以由合适处理装置执行的软件来实现。该装置可以包括例如一个或若干个微处理器、一个或若干个数字信号处理器(dsp)、一个或若干个专用集成电路(asic)、视频加速硬件或一个或若干个合适的可编程逻辑设备(例如现场可编程门阵列(fpga))。这些处理单元的组合也是可行的。还应当理解的是,能够重用编码器/解码器中已经呈现的通用处理性能。这可以例如通过现有软件的重新编程或通过添加新软件组件来完成。图11是所提出的编码器20的示例实施例的框图。本实施例是基于例如执行用于定位波峰的软件120、用于对峰域进行编码的软件130、用于对至少一个低频集合进行编码的软件140以及用于对至少一个噪声基底增益进行编码的软件150的处理器110(例如微处理器)。软件存储在存储器160中。处理器110通过系统总线与存储器进行通信。进入频率变换是由控制处理器110和存储器160连接的i/o总线的输入/输出(i/o)控制器170接收的。存储器160通过i/o控制器170在i/o总线上输出从软件150获得的已编码的频率变化。图12是已提出的解码器40的示例实施例的框图。本实施例是基于例如执行用于对峰域进行解码的软件220、用于对至少一个低频集合进行解码的软件230、用于分配lf系数的软件240、用于对至少一个噪声基底增益进行解码的软件250和用于噪声填充的软件260的处理器210(例如微处理器)。软件存储在存储器270中。处理器110通过系统总线与存储器进行通信。进入已编码频率变换是由控制处理器210和存储器280连接的i/o总线的输入/输出(i/o)控制器280来接收的。存储器270通过i/o控制器280在i/o总线上输出从软件260获得的重构的频率变化。以上所描述的技术旨在用在音频编码器/解码器中,该音频编码器/解码器可以用在移动设备(例如移动电话、膝上型计算机)或固定设备(例如个人计算机)中。这里,术语用户设备(ue)可以用作这些设备的通用名。图13是包括所提出的编码器的ue的示例实施例的框图。将来自麦克风70的音频信号转发到a/d转换器72,将a/d转换器72的输出转发到音频编码器74。音频编码器74包括将数字音频采样变换到频域的频率变换器76。谐波信号检测器78确定变换表示谐波音频还是非谐波音频。如果其表示非谐波音频,以传统编码模式对其进行编码(未示出)。如果其表示谐波音频,根据所提出的技术将其转发到频率变换编码器20。将已编码的信号转发到无线电单元80用于向接收机发送。谐波信号检测器78的决定基于附录i和ii中的噪声基底能量enf和波峰能量逻辑如下:如果在阈值以上且所检测的波峰的数量在预定义的范围中,则将信号归类为谐波。否则,将信号归类为非谐波。向解码器显式地发信号通知分类和编码模式。图14是包括所提出的解码器的ue的示例实施例的框图。将无线电单元82接收的无线电信号转换到基带、进行信道解码并转发到音频解码器84。音频解码器包括解码模式选择器86,如果信号被归类为谐波,则解码模式选择器86根据所提出的技术将信号转发到频率变换解码器40。如果信号被归类为非谐波音频,在传统解码器(未示出)中对其进行解码。频率变换解码器40如上所述重构频率变换。在逆频率变换器88中将重构的频率变换转换到时域。将得到的音频采样转发到d/a转换和放大单元90,d/a转换和放大单元90将最终音频信号转发到扩音器92。图15是所提出的编码方法的一部分的示例实施例的流程图。在本实施例中,图5中的峰域编码步骤s2已经被分为子步骤s2-a至s2-e。步骤s2-a对波峰的谱位置和符号进行编码。步骤s2-b对波峰增益进行量化。步骤s2-c对已量化的波峰增益进行编码。步骤s2-d将围绕在波峰周围的预定频段缩放已量化的波峰增益的倒数倍。步骤s2-e对已缩放的频段进行形状编码。图16是所提出的编码器中的峰域编码器的示例实施例的框图。在本实施例中,峰域编码器24包括单元24-a至24-d。位置与符号编码器24-a被配置为:对波峰的谱位置和符号进行编码。波峰增益编码器24-b被配置为:对波峰增益进行量化并对所量化的波峰增益进行编码。缩放单元24-c被配置为:将围绕在波峰周围的预定频段缩放已量化的波峰增益的倒数倍。波形编码器24-d被配置为:对已缩放的频段进行形状编码。图17是所提出的解码方法的一部分的示例实施例的流程图。在本实施例中,图8中的峰域解码步骤s11已经被分为子步骤s11-a至s11-d。步骤s11-a对波峰的谱位置和符号进行解码。步骤s11-b对波峰增益进行解码。步骤s11-c对围绕在波峰周围的预定频段的形状进行解码。步骤s11-d将已解码的形状缩放已解码的波峰增益倍。图18是所提出的解码器中的峰域解码器的示例实施例的框图。在本实施例中,峰域解码器42包括单元42-a至42-d。位置和符号解码器42-a被配置为:对波峰的谱位置和符号进行解码。波峰增益解码器42-b被配置为:对波峰增益进行解码。形状解码器42-c被配置为:对围绕在波峰周围的预定频段的形状进行解码。缩放单元42-d被配置为:将已解码的形状缩放已解码的波峰增益倍。以下给出对于24kbps模式的具体实现细节。●编解码针对20ms的帧进行操作,24kbps的比特率给出每帧480比特。●处理后的音频信号以32khz进行采样,并具有16khz的音频带宽。●将过渡频率设为5.6khz(对5.6khz以上的所有频率分量进行带宽扩展)。●针对信令和过渡频率以上的频率的带宽扩展的保留比特:~30-40。●用于对两个噪声基底增益进行编码的比特:10。●已编码的谱峰域的数量是7-17。每个峰域所使用的比特的数量是~20-22,这给出了~140-340的用于对所有波峰位置、增益、符号和波形进行编码的总数量。●用于对低频频带进行编码的比特:~100-300。●已编码的低频频带:1-4(每个频带包含8个mdct频段)。因为每个mdct频段对应于25hz,已编码的低频区域对应于200-800hz。●对用于带宽扩展的增益和波峰增益进行huffman编码,使得即使对于恒定数量的波峰,它们所使用的比特的数量可以在帧之间改变。●波峰位置和符号编码利用优化,随着波峰数量的增加,该优化使波峰位置和符号编码更高效。对于7个波峰,位置和符号需要每波峰约6.9个比特,对于17个波峰,数量是每波峰约5.7个比特。●在编码的不同阶段中使用多少比特的可变性是没有问题的,因为低频频带编码在最后进行并用完剩余的比特。然而,设计系统使得总是剩余足够的比特用于对一个低频频带进行编码。下表表示来自根据itu-rbs.1534-1mushra(隐藏参考和锚点(anchor)的多激励法)中描述的过程执行的听力测试的结果。mushra测试中的范围是0至100,其中,低值对应于低感知质量,高值对应于高质量。编解码器均以24kbps进行操作。测试结果根据24个音乐道具和来自8个听众的投票进行平均。测试系统mushra分数低通锚点信号(带宽7khz)48.89传统编码方案49.94所提出的谐波编码方案55.87参考信号(带宽16khz)100.00本领域技术人员将理解的是,在不脱离由所附权利要求所限定的所提出的技术的范围的前提下,可以对所提出的技术作出各种修改和改变。附录i噪声基底估计算法对变换系数的绝对值|y(k)|进行操作。根据递归来估计即时噪声基底能量enf(k):enf(k)=αenf(k)+(1-α)|y(k)|(3)其中特定形式的加权因子α最小化高能变换系数的效果,并强调低能系数的贡献。最终通过简单地对即时能量enf(k)作平均来估计噪声基底电平附录ii波峰采选算法需要噪声基底电平和谱峰的平均电平的知识。波峰能量估计算法与噪声基底估计算法类似,但是其跟踪高谱能量而不是低能量:ep(k)=βep(k)+(1-β)|y(k)|(5)其中在此情况下,加权因子β最小化低能变换系数的效果,并强调高能系数的贡献。通过简单地对即时能量求平均来估计整体波峰能量当计算波峰和噪声基底电平时,阈值电平θ形成为:其中γ=0.88579。将变换系数与阈值进行比较,并且具有阈值以上的变换系数形成波峰候选的矢量。因为自然源一般不产生非常近(例如80hz)的波峰,因此进一步完善(refine)具有波峰候选的矢量。以降序提取矢量元素,并将每个元素的相邻元素设为零。以此方式,仅剩余特定谱区域中的最大元素,这些元素的集合形成当前帧的谱峰。缩略语asic专用集成电路bwe带宽扩展dsp数字信号处理器fpga现场可编程门阵列hf高频lf低频mdct修正离散余弦变换rms均方根vq矢量量化器当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1