用于隐藏帧错误的方法和设备以及用于对音频进行解码的方法和设备转让专利

申请号 : CN201380061310.8

文献号 : CN104885149B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 成昊相李男淑

申请人 : 三星电子株式会社

摘要 :

公开了一种帧错误隐藏方法和设备以及音频解码方法和设备。所述帧错误隐藏(FEC)方法包括:基于关于时频逆变换处理之后产生的时域信号的至少一个帧的状态和相位匹配标志中的至少一个,选择FEC模式;基于选择的FEC模式对当前帧执行相应的时域错误隐藏处理,其中,当前帧是错误帧,或者,当先前帧是错误帧时当前帧是正常帧。

权利要求 :

1.一种帧错误隐藏方法,包括:

当帧被分类为在错误帧之后的下一好帧和当前错误帧之一时,基于包括所述帧的稳态性的多个参数,从包括使用相位匹配的第一模式和使用重复和平滑的第二模式的多个模式中选择一个模式;

基于选择的模式对所述帧执行相应的错误隐藏处理。

2.如权利要求1所述的方法,其中,所述多个参数包括:被产生以确定第一模式是否用于好帧的下一错误帧的第一参数以及根据第一模式是否用于所述帧的先前帧而产生的第二参数。

3.如权利要求2所述的方法,其中,第一参数是使用所述好帧的子频带的能量和频谱系数而产生的。

4.如权利要求1所述的方法,其中,当第一模式被选择时,基于所述帧是单个错误帧、突发错误帧还是所述下一好帧来执行相应的错误隐藏处理。

5.如权利要求1所述的方法,其中,当第二模式被选择时,基于所述帧是单个错误帧、突发错误帧还是所述下一好帧来执行相应的错误隐藏处理。

6.如权利要求1所述的方法,其中,当第一模式被选择时,基于对从多个先前好帧获得的相位匹配的时域信号进行复制来执行相应的错误隐藏处理。

7.如权利要求1所述的方法,其中,当第一模式被选择并且所述帧是当前错误帧时,基于将从多个先前好帧获得的相位匹配的时域信号复制到所述帧并在所述帧和相邻帧之间进行平滑处理来执行相应的错误隐藏处理。

8.如权利要求7所述的方法,其中,平滑处理包括对当前错误帧的开始部分的处理。

9.如权利要求7所述的方法,其中,平滑处理包括对当前错误帧的开始部分和末尾部分的处理。

10.如权利要求1所述的方法,还包括:当所述帧是当前错误帧时,对所述帧执行频域错误隐藏处理。

说明书 :

用于隐藏帧错误的方法和设备以及用于对音频进行解码的方

法和设备

技术领域

[0001] 示例性实施例涉及帧错误隐藏,更具体地说,涉及一种在使用时频变换(time-frequency transform)处理的音频编码和解码中在解码的音频信号的一部分帧中发生错误时,能够使重建声音质量的恶化最小化的帧错误隐藏方法和设备以及音频解码方法和设备。

背景技术

[0002] 当编码的音频信号通过有线/无线网络被发送时,如果一部分包由于传输错误而被损坏或失真,则在解码的音频信号的一部分帧中会发生错误。如果错误未被适当校正,则在包括发生错误的帧(在下文中,被称为“错误帧”)和相邻帧的持续时间中,解码的音频信号的声音质量会降低。
[0003] 关于音频信号编码,众所周知对特定信号执行时频变换处理并随后在频域中执行压缩处理的方法提供了良好的重建声音质量。在时频变换处理中,广泛地使用修正离散余弦变换(MDCT)。在这种情况下,对于音频信号解码,使用逆MDCT(IMDCT)将频域信号变换为时域信号,并可对该时域信号执行重叠相加(OLA)处理。在OLA处理中,如果在当前帧中发生错误,则下一帧也会被影响。具体地说,通过将先前帧和后续帧之间的混叠分量与时域信号中的重叠部分相加来产生最终的时域信号,如果发生错误,则不存在精确的混叠分量,因此,可能产生噪声,从而导致相当大的重建声音质量恶化。
[0004] 当使用时频变换处理对音频信号进行编码和解码时,在多个用于隐藏帧错误的方法之中的用于通过对先前好帧(PGF)的参数进行回归分析来获得错误帧的参数的回归分析方法中,可通过稍微考虑错误帧的原始能量来进行隐藏,但是在信号逐渐增强或严重波动的部分中,错误隐藏效率会降低。此外,当将被应用的参数类型的数量增加时,回归分析方法将会引起复杂度的增加。在通过重复地复制错误帧的PGF来恢复错误帧中的信号的重复方法中,可能由于OLA处理的特性而难以使重建声音质量的恶化最小化。通过对PGF和下一好帧(NGF)的参数进行插值来对错误帧的参数进行预测的插值方法需要额外一个帧的延迟,因此,不宜将该插值方法应用在对于延迟敏感的通信编解码器中。
[0005] 因此,当使用时频变换处理对音频信号进行编码和解码时,需要一种在无需额外时间延迟或复杂度的过分增加的情况下对帧错误进行隐藏以使由于帧错误而引起的重建声音质量的恶化最小化的方法。

发明内容

[0006] 技术问题
[0007] 示例性实施例提供了一种帧错误隐藏方法和设备,所述帧错误隐藏方法和设备用于在使用时频变换处理对音频信号进行编码和解码时在没有额外时间延迟并具有低复杂度的情况下对帧错误进行隐藏。
[0008] 示例性实施例还提供了一种音频解码方法和设备,所述音频解码方法和设备用于在使用时频变换处理对音频信号进行编码和解码时使由于帧错误而引起的重建声音质量的恶化最小化。
[0009] 示例性实施例还提供了一种音频编码方法和设备,所述音频解码方法和设备用于在音频解码设备中更精确地检测关于用于帧错误隐藏的瞬态帧的信息。
[0010] 示例性实施例还提供了一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储有这样的程序指令:该程序指令在被计算机运行时执行帧错误隐藏方法、音频编码方法或音频解码方法。
[0011] 示例性实施例还提供了一种采用帧错误隐藏设备、音频编码设备或音频解码设备的多媒体装置。
[0012] 技术方案
[0013] 根据示例性实施例的一方面,提供了一种帧错误隐藏(FEC)方法,包括:基于关于时频逆变换处理之后产生的时域信号的帧状态和相位匹配标志中的至少一个,选择基于相位匹配的第一主模式和基于简单重复的第二主模式之一;基于选择的模式对当前帧执行时域错误隐藏处理,其中,当前帧是错误帧,或者,当前帧是在先前错误帧之后的好帧。
[0014] 根据示例性实施例的另一方面,提供了一种音频解码方法,包括:当当前帧是错误帧时,在频域中执行错误隐藏处理;当当前帧是好帧时对频谱系数进行解码;对作为错误帧或好帧的当前帧执行时频逆变换处理;基于关于时频逆变换处理之后产生的时域信号的帧状态和相位匹配标志中的至少一个,选择基于相位匹配的第一主模式和基于简单重复的第二主模式之一,并基于选择的模式对当前帧执行时域错误隐藏处理,其中,当前帧是错误帧,或者,当前帧是在先前错误帧之后的好帧。
[0015] 有益效果
[0016] 根据示例性实施例,在使用时频变换处理的音频编码和解码中,当在解码的音频信号中的一部分帧中发生错误时,通过按照根据时域中的信号特性的最佳方法执行平滑处理,在解码的音频信号中由于错误帧而引起的快速信号波动可被平滑,并且复杂度低也没有额外延迟。
[0017] 具体地说,作为瞬态帧的错误帧或者构成突发错误的错误帧可被更精确地重建,并且作为结果,紧接着错误帧的正常帧所受到的影响也可被最小化。
[0018] 另外,通过将基于相位匹配从存储在缓冲器中的多个先前帧获得的预定大小的区段复制到作为错误帧的当前帧并执行在相邻帧之间的平滑处理,可额外预期低频带的重建声音质量的提高。

附图说明

[0019] 图1a和图1b分别是根据示例性实施例的音频编码设备和音频解码设备的框图;
[0020] 图2a和图2b分别是根据另一示例性实施例的音频编码设备和音频解码设备的框图;
[0021] 图3a和图3b分别是根据另一示例性实施例的音频编码设备和音频解码设备的框图;
[0022] 图4a和图4b分别是根据另一示例性实施例的音频编码设备和音频解码设备的框图;
[0023] 图5是根据示例性实施例的频域音频编码设备的框图;
[0024] 图6是用于描述当使用重叠时长小于50%的变换窗时拖尾延迟保护(hangover)标志被设置为1的时长的示图;
[0025] 图7是根据示例性实施例的图5的频域音频编码设备中的瞬态检测单元的框图;
[0026] 图8是用于描述根据示例性实施例的图7中的第二瞬态确定单元的操作的示图;
[0027] 图9是用于描述根据示例性实施例的图7中的信号信息(signaling information)产生单元的操作的流程图;
[0028] 图10是根据示例性实施例的频域音频解码设备的框图;
[0029] 图11是根据示例性实施例的图10中的频谱解码单元的框图;
[0030] 图12是根据另一示例性实施例的图10中的频谱解码单元的框图;
[0031] 图13是用于描述根据示例性实施例的图12中的解交织(deinterleaving)单元的操作的示图;
[0032] 图14是根据示例性实施例的图10中的重叠相加(OLA)单元的框图;
[0033] 图15是根据示例性实施例的图10的错误隐藏和OLA单元的框图;
[0034] 图16是根据示例性实施例的图15中的第一错误隐藏单元的框图;
[0035] 图17是根据示例性实施例的图15中的第二错误隐藏单元的框图;
[0036] 图18是根据示例性实施例的图15中的第三错误隐藏单元的框图;
[0037] 图19是用于描述在使用重叠时长小于50%的变换窗时由编码设备和解码设备执行的用于去除时域混叠的加窗处理的示例的示图;
[0038] 图20是用于描述图18中的使用NGF的时域信号进行OLA处理的示例的示图;
[0039] 图21是根据另一示例性实施例的频域音频解码设备的框图;
[0040] 图22是根据示例性实施例的图21中的稳态检测单元的框图;
[0041] 图23是根据示例性实施例的图21中的错误隐藏和OLA单元的框图;
[0042] 图24是用于描述根据示例性实施例的当当前帧是错误帧时图21中的FEC模式选择单元的操作的流程图;
[0043] 图25是用于描述根据示例性实施例的当先前帧是错误帧并且当前帧不是错误帧时图21中的FEC模式选择单元的操作的流程图;
[0044] 图26是示出根据示例性实施例的图23中的第一错误隐藏单元的操作的框图;
[0045] 图27是示出根据示例性实施例的图23中的第二错误隐藏单元的操作的框图;
[0046] 图28是示出根据另一示例性实施例的图23中的第二错误隐藏单元的操作的框图;
[0047] 图29是用于描述根据示例性实施例的图26中的当当前帧是错误帧时的错误隐藏方法的框图;
[0048] 图30是用于描述根据示例性实施例的图28中的当先前帧是错误帧时用于作为瞬态帧的下一好帧(NGF)的错误隐藏方法的框图;
[0049] 图31是用于描述根据示例性实施例的图27或图28中的当先前帧是错误帧时用于不是瞬态帧的NGF的错误隐藏方法的框图;
[0050] 图32是用于描述图26中的当当前帧是错误帧时进行的OLA处理的示例的示图;
[0051] 图33是用于描述图27中的当先前帧是随机错误帧时对下一帧进行的OLA处理的示例的示图;
[0052] 图34是用于描述图27中的当先前帧是突发错误帧时对下一帧进行的OLA处理的示例的示图;
[0053] 图35是用于描述根据示例性实施例的相位匹配方法的概念的示图;
[0054] 图36是根据示例性实施例的错误隐藏设备的框图;
[0055] 图37是根据示例性实施例的图36中的相位匹配FEC模块或时域FEC模块的框图;
[0056] 图38是根据示例性实施例的图37中的第一相位匹配错误隐藏单元或第二相位匹配错误隐藏单元的框图;
[0057] 图39是用于描述根据示例性实施例的图38中的平滑单元的操作的示图;
[0058] 图40是用于描述根据另一示例性实施例的图38中的平滑单元的操作的示图;
[0059] 图41是根据示例性实施例的包括编码模块的多媒体装置的框图;
[0060] 图42是根据示例性实施例的包括解码模块的多媒体装置的框图;
[0061] 图43是根据示例性实施例的包括编码模块和解码模块的多媒体装置的框图。

具体实施方式

[0062] 本发明构思可允许各种类型的改变或修改以及形式上的各种改变,特定的示例性实施例将在附图中说明,并在说明书中详细描述。然而,应理解特定示例性实施例不将本发明构思限制在特定的公开形式,而是包括本发明构思的精神和技术范围内的每个修改的、等价的或代替的形式。在以下描述中,由于公知功能或结构将使用不必要的细节来模糊本发明,因此不详细描述公知功能或结构。
[0063] 虽然诸如“第一”和“第二”的术语可被用于描述各种元件,但是这些元件不能由这些术语的限制。这些术语可被用于将特定元件与另一元件区分。
[0064] 在本申请中使用的术语仅被用于描述特定示例性实施例,并不具有限制本发明构思的目的。虽然在考虑在本发明构思中的功能的同时将当前尽可能广泛使用的一般术语选为在本发明构思中使用的术语,但是它们可根据本领域中的普通技术人员的意图、司法先例或者新技术的出现而改变。另外,在特定情况下,可使用由申请人有意选择的术语,并且在此情况下,将在本发明的相应描述中公开所述术语的含义。因此,在本发明构思中使用的术语不应由术语的简单名称来定义,而由术语的含义和本发明构思的内容来定义。
[0065] 单数形式的表达包括复数形式的表达,除非它们在上下文中明显彼此不同。在本申请中,应理解,诸如“包括”和“具有”的术语用于指示被实现的特征、数量、步骤、操作、元素、部件或它们的组合的存在,而不预先排除存在或添加一个或更多个其它特征、数量、步骤、操作、元素、部件或它们的组合的可能性。
[0066] 现在将参照附图详细地描述示例性实施例。
[0067] 图1a和图1b分别是根据示例性实施例的音频编码设备110和音频解码设备130的框图。
[0068] 图1a中示出的音频编码设备110可包括预处理单元112、频域编码单元114和参数编码单元116。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。
[0069] 在图1a中,预处理单元112可对输入信号执行滤波、下采样等,但不限于此。输入信号可包括语音信号、音乐信号或者语音和音乐的混合信号。以下,为了描述方便,输入信号被称为音频信号。
[0070] 频域编码单元114可对由预处理单元112提供的音频信号执行时频变换,选择与声道的数量、编码频带和音频信号的比特率相应的编码工具,并通过使用选择的编码工具对音频信号进行编码。时频变换使用改进离散余弦变换(MDCT)、调制重叠变换(MLT)或快速傅里叶变换(FFT),但不限于此。当给定的比特数充足时,可将一般的变换编码方法用于所有频带,当给定的比特数不足时,可将带宽扩展方案应用于一部分频带。当音频信号是立体声道或多声道时,如果给定的比特数充足,则可对每个声道执行编码,如果给定的比特数不足,则可应用向下混合(down-mixing)方案。频域编码单元114产生编码后的频谱系数。
[0071] 参数编码单元116可从提供自频域编码单元114的编码后的频谱系数提取参数,并对提取的参数进行编码。例如,可针对每个子频带来提取参数,其中,子频带是对频谱系数进行分组的单位,并可通过反映临界频带而具有统一或非统一的长度。当每个子频带具有非统一的长度时,存在于低频频带中的子频带与存在于高频频带中的子频带相比可具有相对短的长度。包括在一个帧中的子频带的数量和长度可根据编解码器算法而变化,并可影响编码性能。参数可包括例如缩放因子、功率、平均能量或范数,但不限于此。作为编码的结果而获得的频谱系数和参数可形成比特流,并且比特流可被存储在存储介质中,或者可通过信道以例如包的形式被发送。
[0072] 图1b中示出的音频解码设备130可包括参数解码单元132、频域解码单元134和后处理单元136。频域解码单元134可包括帧错误隐藏算法。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。
[0073] 在图1b中,参数解码单元132可从接收到的比特流解码出参数,并从解码后的参数以帧为单位检查是否已发生了错误。各种公知的方法可被用于错误检查,并且关于当前帧是正常帧还是错误帧的信息被提供给频域解码单元134。
[0074] 当当前帧是正常帧时,频域解码单元134可通过一般的变换解码处理执行解码来产生合成的频谱系数。当当前帧是错误帧时,频域解码单元134可通过错误隐藏算法对先前好帧(PGF)的频谱系数进行缩放来产生合成的频谱系数。频域解码单元134可通过对合成的频谱系数执行频时变换来产生时域信号。
[0075] 后处理单元136可对从频域解码单元134提供的时域信号执行滤波、上采样等以提高声音质量,但是不限于此。后处理单元136提供重建的音频信号作为输出信号。
[0076] 图2a和图2b分别是根据另一示例性实施例的音频编码设备210和音频解码设备230的框图,其中,音频编码设备210和音频解码设备230具有切换结构。
[0077] 图2a中示出的音频编码设备210可包括预处理单元212、模式确定单元213、频域编码单元214、时域编码单元215和参数编码单元216。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。
[0078] 在图2a中,由于预处理单元212基本上与图1a的预处理单元112相同,因此省略其描述。
[0079] 模式确定单元213可通过参考输入信号的特性来确定编码模式。模式确定单元213可根据输入信号的特性,确定适用于当前帧的编码模式是语音模式还是音乐模式,并且还可确定对于当前帧有效的编码模式是时域模式还是频域模式。可通过使用帧的短期特性或多个帧的长期特性来感知输入信号的特性,但不限于此。例如,如果输入信号与语音信号相应,则编码模式可被确定为语音模式或时域模式,如果输入信号与除了语音信号之外的信号(即,音乐信号或混合信号)对应,则编码模式可被确定为音乐模式或频域模式。当输入信号的特性与音乐模式或频域模式相应时,模式确定单元213可将预处理单元212的输出信号提供给频域编码单元214,当输入信号的特性与语音模式或时域模式相应时,模式确定单元213将预处理单元212的输出信号提供给时域编码单元215。
[0080] 由于频域编码单元214基本上与图1a的频域编码单元114相同,因此省略其描述。
[0081] 时域编码单元215可对从预处理单元212提供的音频信号执行码激励线性预测(CELP)编码。详细地讲,可将代数CELP用于CELP编码,但是CELP编码不限于此。时域编码单元215产生编码后的频谱系数。
[0082] 参数编码单元216可从提供自频域编码单元214或时域编码单元215的编码后的频谱系数提取参数,并对提取的参数进行编码。由于参数编码单元216基本上与图1a的参数编码单元116相同,因此省略其描述。作为编码的结果而获得的频谱系数和参数可与编码模式信息一起形成比特流,并且比特流可通过信道以包的形式被发送,或可存储在存储介质中。
[0083] 图2b中示出的音频解码设备230可包括参数解码单元232、模式确定单元233、频域解码单元234、时域解码单元235和后处理单元236。频域解码单元234和时域解码单元235中的每个可包括每个相应域中的帧错误隐藏算法。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。
[0084] 在图2b中,参数解码单元232可从以包的形式发送的比特流解码出参数,并从解码后的参数以帧为单位检测是否已发生了错误。各种公知的方法可被用于错误检查,并且关于当前帧是正常帧还是错误帧的信息被提供给频域解码单元234或时域解码单元235。
[0085] 模式确定单元233可检查包括在比特流中的编码模式信息,并将当前帧提供给频域解码单元234或时域解码单元235。
[0086] 当编码模式是音乐模式或频域模式时,频域解码单元234可进行操作,并且当当前帧是正常帧时,频域解码单元234可通过一般的变换解码处理执行解码来产生合成的频谱系数。当当前帧是错误帧,并且先前帧的编码模式是音乐模式或频域模式时,频域解码单元234可通过帧错误隐藏算法对PGF的频谱系数进行缩放来产生合成的频谱系数。频域解码单元234可通过对合成的频谱系数执行频时变换来产生时域信号。
[0087] 当编码模式是语音模式或时域模式时,时域解码单元235可进行操作,并且当当前帧是正常帧时,时域解码单元235可通过一般的CELP解码处理执行解码来产生时域信号。当当前帧是错误帧,并且先前帧的编码模式是语音模式或时域模式时,时域解码单元235可执行时域中的帧错误隐藏算法。
[0088] 后处理单元236可对从频域解码单元234或时域解码单元235提供的时域信号执行滤波、上采样等,但不限于此。后处理单元236提供重建的音频信号作为输出信号。
[0089] 图3a和图3b分别是根据另一示例性实施例的音频编码设备310和音频解码设备330的框图。
[0090] 图3a中示出的音频编码设备310可包括预处理单元312、线性预测(LP)分析单元313、模式确定单元314、频域激励编码单元315、时域激励编码单元316和参数编码单元317。
这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。
[0091] 在图3a中,由于预处理单元312基本上与图1a的预处理单元112相同,因此省略其描述。
[0092] LP分析单元313可通过对输入信号执行LP分析来提取LP系数,并从提取的LP系数产生激励信号。可基于编码模式将激励信号提供给频域激励编码单元315和时域激励编码单元316中的一个。
[0093] 由于模式确定单元314基本上与图2a的模式确定单元213相同,因此省略其描述。
[0094] 当编码模式是音乐模式或频域模式时,频域激励编码单元315可进行操作,由于除了输入信号是激励信号之外,频域激励编码单元315基本上与图1a的频域编码单元114相同,因此省略其描述。
[0095] 当编码模式是语音模式或时域模式时,时域激励编码单元316可进行操作,并且由于时域激励编码单元316基本上与图2a的时域编码单元215相同,因此省略其描述。
[0096] 参数编码单元317可从提供自频激励编码单元315或时域激励编码单元316的编码后的频谱系数提取参数,并对提取的参数进行编码。由于参数编码单元317基本上与图1a的参数编码单元116相同,因此省略其描述。作为编码的结果而获得的频谱系数和参数可与编码模式信息一起形成比特流,并且比特流可通过信道以包的形式被发送,或可被存储在存储介质中。
[0097] 图3b中示出的音频解码设备330可包括参数解码单元332、模式确定单元333、频域激励解码单元334、时域激励解码单元335、LP合成单元336和后处理单元337。频域激励解码单元334和时域激励解码单元335中的每一个可包括每个相应域中的帧错误隐藏算法。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。
[0098] 在图3b中,参数解码单元332可从以包的形式发送的比特流解码出参数,并从解码后的参数以帧为单位检查是否已发生错误。各种公知的方法可用于错误检查,并且关于当前帧是正常帧还是错误帧的信息被提供给频域激励解码单元334或时域激励解码单元335。
[0099] 模式确定单元333可检查包括在比特流中的编码模式信息,并将当前帧提供给频域激励解码单元334或时域激励解码单元335。
[0100] 当编码模式是音乐模式或频域模式时,频域激励解码单元334可进行操作,并且当当前帧是正常帧时,频域激励解码单元334可通过一般的变换解码处理执行解码来产生合成的频谱系数。当当前帧是错误帧,并且先前帧的编码模式是音乐模式或频域模式时,频域激励解码单元334可通过帧错误隐藏算法对PGF的频谱系数进行缩放来产生合成的频谱系数。频域激励解码单元334可通过对合成的频谱系数执行频时变换来产生激励信号,其中,所述激励信号是时域信号。
[0101] 当编码模式是语音模式或时域模式时,时域激励解码单元335可进行操作,并且当当前帧是正常帧时,时域激励解码单元335可通过一般的CELP解码处理执行解码来产生激励信号,其中,所述激励信号为时域信号。当当前帧是错误帧,并且先前帧的编码模式是语音模式或时域模式时,时域激励解码单元335可执行时域中的帧错误隐藏算法。
[0102] LP合成单元336可通过对从频域激励解码单元334或时域激励解码单元335提供的激励信号执行LP合成来产生时域信号。
[0103] 后处理单元337可对从LP合成单元336提供的时域信号执行滤波、上采样等,但是不限于此。后处理单元337提供重建的音频信号作为输出信号。
[0104] 图4a和图4b分别是根据另一示例性实施例的音频编码设备410和音频解码设备430的框图,其中,音频编码设备410和音频解码设备430具有切换结构。
[0105] 图4a中示出的音频编码设备410可包括预处理单元412、模式确定单元413、频域编码单元414、LP分析单元415、频域激励编码单元416、时域激励编码单元417和参数编码单元418。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。由于可考虑通过组合图2a的音频编码设备210和图3a的音频编码设备310来得到图4a中示出的音频编码设备410,因此不重复共同部件的操作描述,并且现在将描述模式确定单元413的操作。
[0106] 模式确定单元413可通过参考输入信号的特性和比特率来确定输入信号的编码模式。模式确定单元413可基于根据输入信号的特性当前帧是语音模式还是音乐模式以及基于对于当前帧有效的编码模式是时域模式还是频域模式,来将编码模式确定为CELP模式或另一模式。当输入信号的特性与语音模式相应时,模式确定单元413可将编码模式确定为CELP模式,当输入信号的特性与音乐模式和高比特率相应时,模式确定单元413可将编码模式确定为频域模式,当输入信号的特性与音乐模式和低比特率相应时,模式确定单元413可将编码模式确定为音频模式。模式确定单元413可在编码模式是频域模式时将输入信号提供给频域编码单元414,在编码模式是音频模式时经由LP分析单元415将输入信号提供给频域激励编码单元416,并在编码模式是CELP模式时经由LP分析单元415将输入信号提供给时域激励编码单元417。
[0107] 频域编码单元414可与图1a的音频编码设备110中的频域编码单元114或图2a的音频编码设备210中的频域编码单元214相应,并且频域激励编码单元416或时域激励编码单元417可与图3a的音频编码设备310中的频域激励编码单元315或时域激励编码单元316相应。
[0108] 图4b中示出的音频解码设备430可包括参数解码单元432、模式确定单元433、频域解码单元434、频域激励解码单元435、时域激励解码单元436、LP合成单元437和后处理单元438。频域解码单元434、频域激励解码单元435和时域激励解码单元436中的每一个可包括每个相应域中的帧错误隐藏算法。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。由于可考虑通过组合图2b的音频解码设备230和图3b的音频解码设备330来得到图4b中示出的音频解码设备430,因此不重复共同部分的操作描述,并且现在将描述模式确定单元433的操作。
[0109] 模式确定单元433可检查包括在比特流中的编码模式信息,并将当前帧提供给频域解码单元434、频域激励解码单元435或时域激励解码单元436。
[0110] 频域解码单元434可与图1b的音频解码设备130中的频域解码单元134或图2b的音频解码设备230中的频域解码单元234相应,频域激励解码单元435或时域激励解码单元436可与图3b的音频解码设备330中的频域激励解码单元334或时域激励解码单元335相应。
[0111] 图5是根据示例性实施例的频域音频编码设备的框图。
[0112] 图5中示出的频域音频编码设备510可包括瞬态检测单元511、变换单元512、信号分类单元513、能量编码单元514、频谱归一化单元515、比特分配单元516、频谱编码单元517和复用单元518。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。频域音频编码设备510可执行图2中示出的频域音频编码单元214的全部功能和参数编码单元216的部分功能。除了信号分类单元513之外,频域音频编码设备510可被在ITU-T G.719标准中公开的编码器的配置代替,并且变换单元512可使用重叠时长为50%的变换窗。另外,除了瞬态检测单元511和信号分类单元513之外,频域音频编码设备510可被在ITU-T G.719标准中公开的编码器的配置代替。在每个情况下,虽然未示出,但是噪声级别估计单元还可被包括在如ITU-T G.719标准中的频谱编码单元517的后端,以估计在比特分配处理中没有被分配比特的频谱系数的噪声级别,并将估计的噪声级别插入比特流中。
[0113] 参照图5,瞬态检测单元511可通过分析输入信号来检测展现瞬态特性的时长,并响应于检测的结果针对每个帧产生瞬态信号信息。各种公知方法可被用于检测瞬态时长。根据示例性实施例,当变换单元512可使用重叠时长小于50%的窗时,瞬态检测单元511可首先确定当前帧是否是瞬态帧,然后验证已被确定为瞬态帧的当前帧。瞬态信号信息可由复用单元518包括在比特流中,并可被提供给变换单元512。
[0114] 变换单元512可基于瞬态时长的检测结果确定将被用于变换的窗大小,并基于确定的窗大小来执行时频变换。例如,短窗可被应用于已检测到瞬态时长的子频带,长窗可被应用于还未检测到瞬态时长的子频带。作为另一示例,短窗可被应用于包括瞬态时长的帧。
[0115] 信号分类单元513可分析从变换单元512提供的频谱以确定每个帧是否与谐波帧相应。各种公知的方法可被用于确定谐波帧。根据示例性实施例,信号分类单元513可将从变换单元512提供的频谱划分为多个子频带,并针对每个子频带获得峰值能量值和平均能量值。随后,信号分类单元513可针对每个帧获得峰值能量值比平均能量值高预定比例或预定比例以上的子频带的数量,并将获得的子频带的数量大于或等于预定值的帧确定为谐波帧。可预先通过实验或仿真来确定预定比例和预定值。谐波信号信息可通过复用单元518被包括在比特流中。
[0116] 能量编码单元514可获得每个子频带单元中的能量,并对能量进行量化和无损编码。根据实施例,与每个子频带单元中的平均频谱能量相应的范数值可被用作能量,并且缩放因子或功率也可被使用,但是能量不限于此。每个子频带的范数值可被提供给频谱归一化单元515和比特分配单元516,并可通过复用单元518被包括在比特流中。
[0117] 频谱归一化单元515可通过使用在每个子频带单元中获得的范数值来对频谱进行归一化。
[0118] 比特分配单元516可通过使用在每个子频带单元中获得的范数值来按整数单位或小数点单位来分配比特。另外,比特分配单元516可通过使用在每个子频带单元中获得的范数值来计算掩蔽阈值,并通过使用掩蔽阈值来估计感知所需的比特数量,即,可允许的比特数量。比特分配单元516可限制分配的比特数量不超过每个子频带的可允许的比特数量。比特分配单元516可从具有更大的范数值的子频带开始顺序地分配比特,并基于每个子频带的感知重要性对每个子频带的范数值进行加权,以调整分配的比特数量,从而更多数量的比特被分配给感知重要的子频带。如在ITU-T G.719标准中,从能量编码单元514提供给比特分配单元516的量化后的范数值可在被预先调整之后用于比特分配以考虑心理声学加权和掩蔽效应。
[0119] 频谱编码单元517可通过使用每个子频带的分配的比特数量来对归一化后的频谱进行量化,并对量化的结果进行无损编码。例如,阶乘脉冲编码(FPC)可被用于频谱编码。另外,网格编码(trellis coding)也可被用于频谱编码,但频谱编码不限于此。此外,也可根据相应编解码器实现的环境或用户需要来使用各种频谱编码方法。根据FPC,可以以阶乘格式来表示分配数量的比特内的信息,诸如脉冲的位置、脉冲的幅度和脉冲的符号。关于由频谱编码单元517编码的频谱的信息可通过复用单元518被包括在比特流中。
[0120] 图6是用于描述当使用重叠时长小于50%的窗时需要拖尾延迟保护(hangover)标志的时长的示图。
[0121] 参照图6,当当前帧n+1的已被检测为瞬态的时长与没有执行重叠的时长610相应时,瞬态帧的窗(例如,短窗)不必用于下一帧n。然而,当当前帧n+1的已被检测为瞬态的时长与发生重叠的时长610相应时,可通过针对下一帧n使用瞬态帧的窗来预期已考虑了信号特性的重建声音质量的提高。如上所述,当使用了重叠时长小于50%的窗时,可基于帧中被检测为瞬态的位置来确定是否产生拖尾延迟保护标志。
[0122] 图7是根据示例性实施例的图5中示出的瞬态检测单元511(在图7中被称为710)的框图。
[0123] 图7中示出的瞬态检测单元710可包括滤波单元712、短期能量计算单元713、长期能量计算单元714、第一瞬态确定单元715、第二瞬态确定单元716和信号信息产生单元717。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。除了短期能量计算单元713、第二瞬态确定单元716和信号信息产生单元717之外,瞬态检测单元710可被在ITU-TG.719标准中公开的配置代替。
[0124] 参照图7,滤波单元712可对在例如48KHz采样的输入信号执行高通滤波。
[0125] 短期能量计算单元713可接收由滤波单元712滤波的信号,将每个帧划分为例如四个子帧(即,四个块),并计算每个块的短期能量。另外,短期能量计算单元713还可针对输入信号以帧为单位计算每个块的短期能量,并将计算出的每个块的短期能量提供给第二瞬态确定单元716。
[0126] 长期能量计算单元714可以以帧为单位计算每个块的长期能量。
[0127] 第一瞬态确定单元715可针对每个块将短期能量与长期能量进行比较,如果在当前帧的块中短期能量比长期能量高预定比例或预定比例以上,则确定当前帧是瞬态帧。
[0128] 第二瞬态确定单元716可执行附加验证处理,并可再次确定已被确定为瞬态帧的当前帧是否是瞬态帧。这是为了防止由于因滤波单元712中的高通滤波而导致的低频带中的能量去除而发生的瞬态确定错误。
[0129] 现在在如图8所示一个帧由四个块构成(即,四个子帧0、1、2和3被分配给四个块)并且基于帧n的第二块1将帧检测为瞬态的情况下描述第二瞬态确定单元716的操作。
[0130] 首先,具体地,可将在帧n的第二块1之前存在的第一多个块L 810的短期能量的第一平均值与包括帧n中的第二块1和其后存在的块的第二多个块H 830的短期能量的第二平均值进行比较。在这种情况下,根据被检测为瞬态的位置,包括在第一多个块L 810中的块的数量和包括在第二多个块H830中的块的数量可改变。也就是说,可计算包括已被检测为瞬态的块和在其后存在的块的第一多个块的短期能量的平均值(即,第二平均值)与在已被检测为瞬态的块之前存在的第二多个块的短期能量的平均值(即,第一平均值)之比。
[0131] 其次,可计算在高通滤波之前的帧n的短期能量的第三平均值与在高通滤波之后的帧n的短期能量的第四平均值之比。
[0132] 最后,如果第二平均值与第一平均值之比在第一阈值和第二阈值之间,并且第三平均值与第四平均值之比大于第三阈值,则即使第一瞬态确定单元715已首先确定了当前帧是瞬态帧,第二瞬态确定单元716也可做出当前帧是正常帧的最终确定。
[0133] 可通过实验或仿真来预先设置第一阈值至第三阈值。例如,第一阈值和第二阈值可被分别设置为0.7和2.0,对于超宽带信号,第三阈值可被设置为50,对于宽带信号,第三阈值可被设置为30。
[0134] 由第二瞬态确定单元716执行的两个比较处理可防止具有短暂大幅度的信号被检测为瞬态的错误。
[0135] 返回参照图7,信号信息产生单元717可从在第二瞬态确定单元716中的确定结果,根据先前帧的拖尾延迟保护标志确定当前帧的帧类型是否要被更新,根据当前帧的已被检测为瞬态的块的位置来不同地设置当前帧的拖尾延迟保护标志,产生其结果作为瞬态信号信息。现将参照图9详细地描述此操作。
[0136] 图9是用于描述根据示例性实施例的图7中示出的信号信息产生单元717的操作的流程图。图9示出如图8中所示构造一个帧,使用重叠时长小于50%的变换窗,并且在块2和3发生重叠的情况。
[0137] 参照图9,在操作912,可从第二瞬态确定单元716接收最终确定的当前帧的帧类型。
[0138] 在操作913,可基于当前帧的帧类型来确定当前帧是否是瞬态帧。
[0139] 如果在操作913确定当前帧的帧类型不指示瞬态帧,则在操作914,可检查针对先前帧设置的拖尾延迟保护标志。
[0140] 在操作915,可确定先前帧的拖尾延迟保护标志是否是1,如果作为在操作915中的确定结果,先前帧的拖尾延迟保护标志是1,即,如果先前帧是影响重叠的瞬态帧,则在操作916,不是瞬态帧的当前帧可被更新为瞬态帧,并且随后当前帧的拖尾延迟保护标志可被设置为0以用于下一帧。将当前帧的拖尾延迟保护标志设置为0表示由于当前帧是由于先前帧而被更新的瞬态帧,因此下一帧不受当前帧的影响。
[0141] 如果作为在操作915中的确定结果,先前帧的拖尾延迟保护标志是0,则在操作917,可在不更新帧类型的情况下,将当前帧的拖尾延迟保护标志设置为0。也就是说,保持当前帧的帧类型不是瞬态帧。
[0142] 如果作为在操作913中的确定结果,当前帧的帧类型指示瞬态帧,则在操作918,可接收已在当前帧中检测到的并被确定为瞬态的块。
[0143] 在操作919,可确定已在当前帧中检测到的并被确定为瞬态的块是否与重叠时长相应,例如,在图8中,确定已在当前帧中检测到的并被确定为瞬态的块的数量是否大于1,即,是否是2或3。如果在操作919确定已在当前帧中检测到的并被确定为瞬态的块与2或3(指示重叠时长)不相应,则在操作917,可在不更新帧类型的情况下,将当前帧的拖尾延迟保护标志设置为0。也就是说,如果已在当前帧中检测到的并被确定为瞬态的块的数量为0,则可将当前帧的帧类型保持为瞬态帧,并且可将当前帧的拖尾延迟保护标志设置为0以不影响下一帧。
[0144] 如果作为在操作919中的确定结果,已在当前帧中检测到的并被确定为瞬态的块与2或3(指示重叠时长)相应,则在操作920,可在不更新帧类型的情况下,将当前帧的拖尾延迟保护标志设置为1。也就是说,虽然当前帧的帧类型被保持为瞬态帧,但是当前帧可影响下一帧。这表示如果当前帧的拖尾延迟保护标志是1,则虽然确定下一帧不是瞬态帧,下一帧也可被更新为瞬态帧。
[0145] 在操作921,当前帧的拖尾延迟保护标志和当前帧的帧类型可被形成为瞬态信号信息。具体地说,当前帧的帧类型(即,指示当前帧是否是瞬态帧的信号信息)可被提供给音频解码设备。
[0146] 图10是根据示例性实施例的频域音频解码设备1030的框图,其中,频域音频解码设备1030可与图1b的频域解码单元134、图2b的频域解码单元234、图3b的频域激励解码单元334或图4b的频域解码单元434相应。
[0147] 图10中示出的频域音频解码设备1030可包括频域帧错误隐藏(FEC)模块1032、频谱解码单元1033、第一存储器更新单元1034、逆变换单元1035、普通重叠相加(OLA)单元1036和时域FEC模块1037。除了嵌入在第一存储器更新单元1034中的存储器(未示出)之外的组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。第一存储器更新单元1034的功能可被分配给并包括在频域FEC模块1032和频谱解码单元1033中。
[0148] 参照图10,参数解码单元1010可从接收到的比特流解码出参数,并从解码出的参数以帧为单位检查是否已发生错误。参数解码单元1010可与图1b的参数解码单元132、图2b的参数解码单元232、图3b的参数解码单元332或图4b的参数解码单元432相应。由参数解码单元1010提供的信息可包括指示当前帧是否是错误帧的错误标志和到目前为止连续的错误帧的数量。如果确定在当前帧中已发生错误,则诸如坏帧指示符(BFI)的错误标志可被设置为1,指示不存在关于错误帧的信息。
[0149] 频域FEC模块1032可在其中具有频域错误隐藏算法,并且当由参数解码单元1010提供的错误标志BFI是1且先前帧的解码模式是频域模式时,频域FEC模块1032可进行操作。根据示例性实施例,频域FEC模块1032可通过重复在存储器(未示出)中存储的PGF的合成频谱系数来产生错误帧的频谱系数。在这种情况下,可通过考虑先前帧的帧类型和到目前为止已发生的错误帧的数量来执行重复处理。为了方便描述,当已连续发生的错误帧的数量是2个或更多个时,此事件与突发错误相应。
[0150] 根据示例性实施例,当当前帧是形成突发错误的错误帧,并且先前帧不是瞬态帧时,频域FEC模块1032可从例如第五错误帧开始将解码出的PGF的频谱系数强制向下缩放固定值3dB。也就是说,如果当前帧与连续发生的错误帧中的第五错误帧相应,则频域FEC模块1032可通过减少解码出的PGF的频谱系数的能量并重复能量减少的频谱系数,来产生第五错误帧的频谱系数。
[0151] 根据另一示例性实施例,当当前帧是形成突发错误的错误帧,并且先前帧是瞬态帧时,频域FEC模块1032可从例如第二错误帧开始将解码出的PGF的频谱系数向下缩放固定值3dB。也就是说,如果当前帧与连续发生的错误帧中的第二错误帧相应,则频域FEC模块1032可通过减少解码出的PGF的频谱系数的能量并重复能量减少的频谱系数,来产生第二错误帧的频谱系数。
[0152] 根据另一示例性实施例,当当前帧是形成突发错误的错误帧时,频域FEC模块1032可通过随机地改变针对错误帧产生的频谱系数的符号来针对每个帧减小由于频谱系数的重复而产生的调制噪声。在形成突发错误的错误帧组中随机符号开始将被应用到的错误帧可根据信号特性而不同。根据示例性实施例,可根据信号特性是否指示当前帧是瞬态而不同地设置随机符号开始将被应用到的错误帧的位置,或者,可针对不是瞬态的信号之中的稳态信号不同地设置随机符号开始将被应用到的错误帧的位置。例如,当确定在输入信号中存在谐波分量时,输入信号可被确定为信号波动不严重的稳态信号,并且与稳态信号相应的错误隐藏算法可被执行。通常,从编码器发送的信息可被用于输入信号的谐波信息。当低复杂度不是必需的时,可使用由解码器合成的信号来获得谐波信息。
[0153] 可将随机符号应用到错误帧的所有频谱系数,或者,由于通过不将随机符号应用到等于或小于例如200Hz的非常低的频带中可预期更好的性能,因此可将随机符号应用到高于预定义频带的频带中的频谱系数。这是因为在低频带中,波形或能量会因为符号的改变而产生相当大的改变。
[0154] 根据另一示例性实施例,频域FEC模块1032不仅可对形成突发错误的错误帧应用向下缩放或随机符号,还可在每隔一个的帧是错误帧的情况下应用向下缩放或随机符号。也就是说,当当前帧是错误帧,在前一个的帧(one-frame previous frame)是好帧,并且在前两个的帧(two-frame previous frame)是错误帧时,可应用向下缩放或随机符号。
[0155] 当由参数解码单元1010提供的错误标志BFI是0时,即,当当前帧是好帧时,频谱解码单元1033可进行操作。频谱解码单元1033可通过使用由参数解码单元1010解码的参数执行频谱解码来合成频谱系数。将在下面参照图11和图12更详细地描述频谱解码单元1033。
[0156] 关于作为好帧的当前帧,第一存储器更新单元1034可针对下一帧对合成频谱系数、使用解码出的参数获得的信息、到目前为止连续发生的错误帧的数量、关于信号特性或每个帧的帧类型的信息等进行更新。信号特性可包括瞬态特性或稳态特性,帧类型可包括瞬态帧、稳态帧或谐波帧。
[0157] 逆变换单元1035可通过对合成频谱系数执行时频逆变换来产生时域信号。逆变换单元1035可基于当前帧的错误标志和先前帧的错误标志来将当前帧的时域信号提供给普通OLA单元1036和时域FEC模块1037之一。
[0158] 当当前帧和先前帧都是好帧时,普通OLA单元1036可进行操作。普通OLA单元1036可通过使用先前帧的时域信号来执行普通OLA处理,作为普通OLA处理的结果,产生当前帧的最终时域信号,并将最终时域信号提供给后处理单元1050。
[0159] 当当前帧是错误帧时,或者当当前帧是好帧,先前帧是错误帧并且最近的PGF的解码模式是频域模式时,时域FEC模块1037可进行操作。也就是说,当当前帧是错误帧时可由频域FEC模块1032和时域FEC模块1037执行错误隐藏处理,当先前帧是错误帧并且当前帧是好帧时,可由时域FEC模块1037执行错误隐藏处理。
[0160] 图11是根据示例性实施例的图10中示出的频谱解码单元1033(在图11中被称为1110)的框图。
[0161] 图11中示出的频谱解码单元1110可包括无损解码单元1112、参数反量化单元1113、比特分配单元1114、频谱反量化单元1115、噪声填充单元1116和频谱成形单元1117。
噪声填充单元1116可在频谱成形单元1117的后端。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。
[0162] 参照图11,无损解码单元1112可对在编码处理中已执行无损编码的参数(例如,范数值或频谱系数)执行无损解码。
[0163] 参数反量化单元1113可对无损解码后的范数值进行反量化。在解码处理中,可使用各种方法(例如矢量量化(VQ)、标量量化(SQ)、网格编码量化(TCQ)、格矢量量化(LVQ)等)之一对范数值进行量化,可使用相应方法来对范数值进行反量化。
[0164] 比特分配单元1114可基于量化后的范数值或反量化后的范数值以子频带为单位分配所需的比特。在这种情况下,以子频带为单位分配的比特的数量可与在编码处理中分配的比特的数量相同。
[0165] 频谱反量化单元1115可通过使用以子频带为单位分配的比特的数量执行反量化处理来产生归一化的频谱系数。
[0166] 噪声填充单元1116可产生噪声信号,并以子频带为单位将噪声信号填充到归一化的频谱系数之中的需要噪声填充的部分中。
[0167] 频谱成形单元1117可通过使用反量化后的范数值来使归一化的频谱系数成形。可通过频谱成形处理来获得最终解码后的频谱系数。
[0168] 图12是根据另一示例性实施例的图10中示出的频谱解码单元1033(在图12中被称为1210)的框图,其中,频谱解码单元1033可被优选地应用到短窗被用于信号波动严重的帧(例如,瞬态帧)的情况。
[0169] 图12中示出的频谱解码单元1210可包括无损解码单元1212、参数反量化单元1213、比特分配单元1214、频谱反量化单元1215、噪声填充单元1216、频谱成形单元1217和解交织单元1218。噪声填充单元1216可在频谱成形单元1217的后端。这些组件可被集成在至少一个模块中,并可被实现为至少一个处理器(未示出)。与图11中示出的频谱解码单元
1110相比,还增加了解交织单元1218,因此,不再重复相同组件的操作的描述。
[0170] 首先,当当前帧是瞬态帧时,将被使用的变换窗需要比用于稳态帧的变换窗(参照图13的1310)更短。根据示例性实施例,瞬态帧可被划分为四个子帧,总共四个短窗(参照图13的1330)可被用作用于每个子帧的短窗。在描述解交织单元1218的操作之前,现将描述编码器端中的交织处理。
[0171] 可设置使得当瞬态帧被划分为四个子帧时使用四个短窗获得的四个子帧的频谱系数的和与针对瞬态帧使用一个长窗获得的频谱系数的和相同。首先,通过应用四个短窗来执行变换,并且作为结果,可获得频谱系数的四个集。接下来,按照每个集的频谱系数的顺序来连续执行交织。具体地说,如果假设第一短窗的频谱系数是c01、c02、…、c0n,第二短窗的频谱系数是c11、c12、…、c1n,第三短窗的频谱系数是c21、c22、…、c2n,第四短窗的频谱系数是c31、c32、…、c3n,则交织的结果可以是c01、c11、c21、c31、…、c0n、c1n、c2n、c3n。
[0172] 如上所述,通过交织处理,可像使用长窗的情况一样来更新瞬态帧,并可执行诸如量化和无损编码的后续编码处理。
[0173] 返回参照图12,解交织单元1218可被用于将由频谱成形单元1217提供的重建频谱系数更新为最初使用短窗的情况。瞬态帧具有能量波动严重的特性,通常趋向于在开始部分具有低能量在末尾部分具有高能量。因此,当PGF是瞬态帧时,如果瞬态帧的重建频谱系数被重复用于错误帧,则由于能量波动严重的帧连续存在,因此噪声会非常大。为了防止这点,当PGF是瞬态帧时,可使用利用第三短窗和第四短窗解码的频谱系数代替使用第一短窗和第二短窗解码的频谱系数,来产生错误帧的频谱系数。
[0174] 图14是根据示例性实施例的图10中示出的普通OLA单元1036(在图14中被称为1410)的框图,其中,普通OLA单元1036(在图14中被称为1410)可在当前帧和先前帧是好帧(正常帧)时进行操作,并对由逆变换单元(图10的1035)提供的时域信号(即,IMDCT信号)执行OLA处理。
[0175] 图14中示出的普通OLA单元1410可包括加窗单元1412和OLA单元1414。
[0176] 参照图14,加窗单元1412可对当前帧的IMDCT信号执行加窗处理以去除时域混叠。以下将参照图19来描述重叠时长小于50%的窗的情况。
[0177] OLA单元1414可对加窗后的IMDCT信号执行OLA处理。
[0178] 图19是用于描述当使用重叠时长小于50%的窗时由编码设备和解码设备执行的用于去除时域混叠的加窗处理的示例的示图。
[0179] 参照图19,可以以彼此相反的方向来表示由编码设备使用的窗格式和由解码设备使用的窗格式。当新的输入被接收到时,编码设备通过使用过去存储的信号来应用加窗。当重叠时长的大小被减小以防止时间延迟时,重叠时长可位于窗的两端。解码设备通过对当前帧n中图19(a)的旧音频输出信号执行OLA处理来生成音频输出信号,其中,当前帧n中图19(a)的旧音频输出信号与当前帧n的区域中的旧加窗IMDCT输出信号相同。音频输出信号的将来区域被用于在下一帧中的OLA处理。图19(b)示出根据示例性实施例的用于隐藏错误帧的窗格式。当在频域编码中发生错误时,通常重复过去的频谱系数,因此,可能无法在错误帧中去除时域混叠。因此,修改的窗可被用于隐藏由于时域混叠而造成的失真
(artifact)。具体地说,当使用重叠时长小于50%的窗时,为了减少由于短重叠时长而引起的噪声,可通过将重叠时长的长度1930调整为J ms(0
[0180] 图15是根据示例性实施例的图10中示出的时域FEC模块1037的框图。
[0181] 图15中示出的时域FEC模块1510可包括FEC模式选择单元1512、第一时域错误隐藏单元1513、第二时域错误隐藏单元1514、第三时域错误隐藏单元1515和第二存储器更新单元1516。第二存储器更新单元1516的功能可被包括在第一时域错误隐藏单元1513、第二时域错误隐藏单元1514和第三时域错误隐藏单元1515中。
[0182] 参照图15,FEC模式选择单元1512可通过接收当前帧的错误标志BFI、先前帧的错误标志Prev_BFI和连续错误帧的数量来选择在时域中的FEC模式。对于错误标志,1可指示错误帧,0可指示好帧。当连续错误帧的数量等于或大于例如2时,可确定突发错误被形成。作为在FEC模式选择单元1512的选择结果,可将当前帧的时域信号提供给第一时域错误隐藏单元1513、第二时域错误隐藏单元1514和第三时域错误隐藏单元1515中的一个。
[0183] 第一时域错误隐藏单元1513可在当前帧是错误帧时执行错误隐藏处理。
[0184] 第二时域错误隐藏单元1514可在当前帧是好帧并且先前帧是形成随机错误的错误帧时执行错误隐藏处理。
[0185] 第三时域错误隐藏单元1515可在当前帧是好帧并且先前帧是形成突发错误的错误帧时执行错误隐藏处理。
[0186] 第二存储器更新单元1516可更新用于对当前帧进行错误隐藏处理的各种类型的信息,并将该信息存储在存储器(未示出)中以用于下一帧。
[0187] 图16是根据示例性实施例的图15中示出的第一时域错误隐藏单元1513的框图。当当前帧是错误帧时,如果通常使用重复在频域中获得的过去的频谱系数的方法,如果在IMDCT和加窗之后执行OLA处理,则在当前帧的开始部分中的时域混叠分量改变,并因此不可能进行完美重建,从而导致不希望的噪声。即使使用重复方法,第一时域错误隐藏单元1513也可被使用以使得噪声的出现最小化。
[0188] 图16中示出的第一时域错误隐藏单元1610可包括加窗单元1612、重复单元1613、OLA单元1614、重叠大小选择单元1615和平滑单元1616。
[0189] 参照图16,加窗单元1612可执行与图14的加窗单元1412的操作相同的操作。
[0190] 重复单元1613可将在当前帧之前两个的帧(被称为“在前旧”)的IMDCT信号应用到作为错误帧的当前帧的开始部分。
[0191] OLA单元1614可对由重复单元1613重复的信号和当前帧的IMDCT信号执行OLA处理。作为结果,可产生当前帧的音频输出信号,并可通过使用在前两个的帧的信号来减少音频输出信号的开始部分中的噪声的产生。即使当在频域中应用缩放和先前帧的频谱的重复时,也可大大减少当前帧的开始部分中的噪声的产生的可能性。
[0192] 重叠大小选择单元1615可选择将在平滑处理中应用的平滑窗的重叠时长的长度ov_size,其中,ov_size可以总是相同的值(例如,针对20ms的帧大小的12ms)或者可根据特定条件而不同地调整。特定条件可包括当前帧的谐波信息、能量差等。谐波信息指示当前帧是否具有谐波特性,并可从编码设备被发送或者由解码设备获得。能量差指示当前帧的能量Ecurr与每个帧能量的移动平均EMA之间的归一化的能量差的绝对值。可由等式1来表示能量差。
[0193]
[0194] 在等式1中,EMA=0.8×EMA+0.2×Ecurr。
[0195] 平滑单元1616可将选择的平滑窗应用在先前帧的信号(旧音频输出)与当前帧的信号(被称为“当前音频输出”)之间,并执行OLA处理。可以以这样的方式形成平滑窗:相邻窗之间的重叠时长的和为1。满足这样的条件的窗的示例是正弦波窗、使用基函数的窗和汉宁窗,但平滑窗不限于此。根据示例性实施例,可使用正弦波窗,在这种情况下,可由等比2来表示窗函数w(n)。
[0196]
[0197] 在等式2中,ov_size表示将在平滑处理中使用的重叠的时长,其中,ov_size由重叠大小选择单元1615选择。
[0198] 通过执行如上所述的平滑处理,当当前帧是错误帧时,可防止先前帧和当前帧之间的不连续性,其中,该不连续性可因为通过使用从在当前帧之前两个的帧复制的IMDCT信号来代替在先前帧中存储的IMDCT信号而产生。
[0199] 图17是根据示例性实施例的图15中示出的第二时域错误隐藏单元1514的框图。
[0200] 图17中示出的第二时域错误隐藏单元1710可包括重叠大小选择单元1712和平滑单元1713。
[0201] 参照图17,重叠大小选择单元1712可如图16的重叠大小选择单元1615一样,选择将在平滑处理中应用的平滑窗的重叠时长的长度ov_size。
[0202] 平滑单元1713可将选择的平滑窗应用在旧IMDCT信号和当前IMDCT信号之间,并执行OLA处理。同样,可以以这样的方式形成平滑窗:相邻窗之间的重叠时长的和为1。
[0203] 也就是说,当先前帧是随机错误帧,并且当前帧是好帧时,由于不可能进行正常加窗,因此难以去除先前帧的IMDCT信号和当前帧的IMDCT信号之间的重叠时长中的时域混叠。因此,可通过执行平滑处理来代替OLA处理来使噪声最小化。
[0204] 图18是根据示例性实施例的图15中示出的第三时域错误隐藏单元1515的框图。
[0205] 图18中示出的第三时域错误隐藏单元1810可包括重复单元1812、缩放单元1813、第一平滑单元1814、重叠大小选择单元1815和第二平滑单元1816。
[0206] 参照图18,重复单元1812可将作为好帧的当前帧的IMDCT信号之中的用于下一帧的部分复制到当前帧的开始部分。
[0207] 缩放单元1813可调整当前帧的规模以防止突然的信号增大。根据示例性实施例,缩放单元1813可执行向下缩放3dB。缩放单元1813可以是可选的。
[0208] 第一平滑单元1814可将平滑窗应用到先前帧的IMDCT信号和从将来帧(future frame)复制的IMDCT信号,并执行OLA处理。同样,可以以这样的方式形成平滑窗:相邻窗之间的重叠时长的和为1。也就是说,当将来信号被复制时,需要加窗来去除可能在先前帧和当前帧之间发生的不连续性,可通过OLA处理使过去信号被将来信号代替。
[0209] 像图16的重叠大小选择单元1615一样,重叠大小选择单元1815可选择将在平滑处理中应用的平滑窗的重叠时长的长度ov_size。
[0210] 第二平滑单元1816可通过将选择的平滑窗应用在作为被代替的信号的旧IMDCT信号和作为当前帧信号的当前IMDCT信号之间,来执行OLA处理,同时去除不连续性。同样,可以以这样的方式形成平滑窗:相邻窗之间的重叠时长的和为1。
[0211] 也就是说,当先前帧是突发错误帧并且当前帧是好帧时,由于不可能进行正常加窗,因此不能去除先前帧的IMDCT信号和当前帧的IMDCT信号之间的重叠时长中的时域混叠。在突发错误帧中,由于能量的减少或连续的重复可能产生噪声等,因此可采用复制将来信号以用于当前帧的重叠的方法。在这种情况下,平滑处理可被执行两次,以去除当前帧中可能产生的噪声并同时去除在先前帧和当前帧之间可能发生的不连续性。
[0212] 图20是用于描述图18中的使用NGF的时域信号进行OLA处理的示例的示图。
[0213] 图20(a)示出当先前帧不是错误帧时通过使用先前帧执行重复或增益缩放的方法。参照图20(b),为了不使用额外延迟,通过仅针对尚未通过重叠解码的部分将在作为NGF的当前帧中解码的时域信号重复到过去来执行重叠,并还执行增益缩放。将被重复的信号的大小可被选为小于或等于重叠部分的大小的值。根据示例性实施例,重叠部分的大小可以是13×L/20,其中,例如,对于窄带(NB),L是160,对于宽带(WB),L是320,对于超宽带(SWB),L是640,对于全频带(FB),L是960。
[0214] 现在将描述通过重复获得NGF的时域信号来生成将用于时间重叠处理的信号的方法。
[0215] 在图20(b)中,通过将在帧n+2的将来部分中标记的大小为13×L/20的块复制到帧n+1中的与帧n+2的将来部分的相同位置相应的将来部分,来执行缩放调整,以使用帧n+2的将来部分的值来代替帧n+1的将来部分的现有值。例如,缩放的值是-3dB。为了去除在复制中的帧n+2和帧n+1之间的不连续性,从图20(b)中的帧n+1(先前帧值)获得的时域信号和从将来部分复制的信号可在大小为13×L/20的第一块处彼此线性重叠。通过该处理,可获得用于重叠的最终信号,当更新的n+1信号和n+2信号彼此重叠时,可输出帧n+2的最终时域信号。
[0216] 图21是根据另一示例性实施例的频域音频解码设备2130的框图。与图10中示出的实施例相比,还包括了稳态检测单元2138。因此,不再重复与图10的组件相同的组件的操作的详细描述。
[0217] 参照图21,稳态检测单元2138可通过分析由逆变换单元2135提供的时域信号来检测当前帧是否是稳态的。在稳态检测单元2138中的检测的结果可被提供给时域FEC模块2136。
[0218] 图22是根据示例性实施例的图21中示出的稳态检测单元2138(在图22中被称为2210)的框图。在图21中示出的稳态检测单元2210可包括稳态帧检测单元2212和滞后应用(hysteresis application)单元2213。
[0219] 参照图22,稳态帧检测单元2212可通过接收包括包络变化量(envelope delta)env_delta、先前帧的稳态模式stat_mode_old、能量差diff_energy等的信息,来确定当前帧是否是稳态。通过使用关于频域的信息来获得包络变化量env_delta,包络变化量env_delta指示先前帧和当前帧之间的每个频带范数值差的平均能量。可由等式3来表示包络变化量env_delta。
[0220]
[0221] EEd_MA=ENV_SMF*EEd+(1-ENV_SMF)*EEd_MA  (3)
[0222] 在等式3中,norm_old(k)表示先前帧的频带k的范数值,norm(k)表示当前帧的频带k的范数值,nb_sfm表示频带的数量,EEd表示当前帧的包络变化量,EEd_MA是通过将平滑因子应用到EEd而获得的,并可被设置为将用于稳态确定的包络变化量,ENV_SMF表示包络变化量的平滑因子,并根据本发明的示例性实施例,ENV_SMF可以是0.1。具体地,当能量差diff_energy小于第一阈值,并且包络变化量env_delta小于第二阈值时,当前帧的稳态模式stat_mode_curr可被设置为1。第一阈值和第二阈值分别可以是0.032209和1.305974,但不限于此。
[0223] 如果确定当前帧是稳态,则滞后应用单元2213可通过应用先前帧的稳态模式stat_mode_old来产生当前帧的最终稳态信息stat_mode_out,以防止当前帧的稳态信息的频繁改变。也就是说,如果在稳态帧检测单元2212中确定当前帧是稳态并且先前帧是稳态,则当前帧被检测为稳态帧。
[0224] 图23是根据示例性实施例的图21中示出的时域FEC模块2136的框图。
[0225] 图23中示出的时域FEC模块2310可包括FEC模式选择单元2312、第一时域错误隐藏单元2313、第二时域错误隐藏单元2314和第一存储器更新单元2315。第一存储器更新单元2315的功能可被包括在第一时域错误隐藏单元2313和第二时域错误隐藏单元2314中。
[0226] 参照图23,FEC模式选择单元2312可通过接收当前帧的错误标志BFI、先前帧的错误标志Prev_BFI和各种参数来选择时域中的FEC模式。对于错误标志,1可指示错误帧,0可指示正常帧。作为FEC模式选择单元2312中的选择结果,当前帧的时域信号可被提供给第一时域错误隐藏单元2313和第二时域错误隐藏单元2314。
[0227] 第一时域错误隐藏单元2313可在当前帧是错误帧时执行错误隐藏处理。
[0228] 第二时域错误隐藏单元2314可在当前帧是好帧且先前帧是错误帧时执行错误隐藏处理。
[0229] 第一存储器更新单元2315可更新用于对当前帧进行错误隐藏处理的各种类型的信息,并可将这些信息存储在存储器(未示出)中以用于下一帧。
[0230] 在由第一时域错误隐藏单元2313和第二时域错误隐藏单元2314执行的OLA处理中,可根据输入信号是瞬态还是稳态,或者当输入信号是稳态时根据稳态级别,来应用适合的方法。根据示例性实施例,当信号是稳态时,平滑窗的重叠时长的长度被设置为长,否则,可原样使用在普通OLA处理中使用的长度。
[0231] 图24是用于描述根据示例性实施例的当当前帧是错误帧时图23的FEC模式选择单元2312的操作的流程图。
[0232] 在图24中,当当前帧是错误帧时用于选择FEC模式的参数类型如下:当前帧的错误标志、先前帧的错误标志、PGF的谐波信息、NGF的谐波信息和连续错误帧的数量。当当前帧是好帧时,连续错误帧的数量可被重置。另外,参数还可包括PGF的稳态信息、能量差和包络变化量。每一条谐波信息可从编码器被发送,或者可由解码器单独地产生。
[0233] 参照图24,在操作2411,可通过使用各种参数确定输入信号是否是稳态。具体地,当PGF是稳态,能量差小于第一阈值,并且PGF的包络变化量小于第二阈值时,可确定输入信号是稳态。可通过实验或仿真预先设置第一阈值和第二阈值。
[0234] 如果在操作2411中确定输入信号是稳态,则在操作2413,可执行重复和平滑处理。如果确定输入信号是稳态,则平滑窗的重叠时长的长度可被设置为更长,例如,设置为6ms。
[0235] 如果在操作2411中确定输入信号不是稳态,则在操作2415,可执行普通OLA处理。
[0236] 图25是用于描述根据示例性实施例的当先前帧是错误帧并且当前帧不是错误帧时图23的FEC模式选择单元2312的操作的流程图。
[0237] 参照图25,在操作2512,可通过使用各种参数确定输入信号是否是稳态。可使用与图24的操作2411使用的相同参数。
[0238] 如果在操作2512中确定输入信号不是稳态,则在操作2513,可通过检查连续错误帧的数量是否大于1来确定先前帧是否是突发错误帧。
[0239] 如果在操作2512中确定输入信号是稳态,则在操作2514,可响应于作为错误帧的先前帧,执行对NGF的错误隐藏处理,即,重复和平滑处理。当确定输入信号是稳态时,平滑窗的重叠时长的长度可被设置为更长,例如,设置为6ms。
[0240] 如果在操作2513中确定输入信号不是稳态并且先前帧是突发错误帧,则在操作2515,可响应于作为突发错误帧的先前帧,执行对NGF的错误隐藏处理。
[0241] 如果在操作2513中确定输入信号不是稳态并且先前帧是随机错误帧,则在操作2516,可执行普通OLA处理。
[0242] 图26是示出根据示例性实施例的图23的第一时域错误隐藏单元2313的操作的流程图。
[0243] 参照图26,在操作2601,当当前帧是错误帧时,可重复先前帧的信号,并可执行平滑处理。根据示例性实施例,可应用重叠时长为6ms的平滑窗。
[0244] 在操作2603,可将重叠区域中的预定时长的能量Pow1与非重叠区域中的预定时长的能量Pow2进行比较。具体地说,当在错误隐藏处理之后重叠区域的能量减小或显著增加时,由于当在重叠中相位颠倒时会发生能量的减小,当在重叠中相位保持时会发生能量的增加,因此可执行普通OLA处理。当信号比较平稳时,由于在操作2601中的错误隐藏性能很好,因此如果作为操作2601的结果,重叠区域和非重叠区域之间的能量差大,则表示由于在重叠中的相位而产生了问题。
[0245] 如果作为在操作2603的比较结果,重叠区域和非重叠区域之间的能量差大,则在操作2604,不选择操作2601的结果,并可执行普通OLA处理。
[0246] 如果作为在操作2603的比较结果,重叠区域和非重叠区域之间的能量差不大,则可选择操作2601的结果。
[0247] 图27是示出根据示例性实施例的图23的第二时域错误隐藏单元2314的操作的流程图。图27的操作2701、操作2702和操作2703可分别与图25的操作2514、操作2515和操作2516相应。
[0248] 图28是示出根据另一示例性实施例的图23的第二时域错误隐藏单元2314的操作的流程图。与图27的实施例相比,图28的实施例不同之处在于当作为NGF的当前帧是瞬态帧时的错误隐藏处理(操作2801)以及当作为NGF的当前帧不是瞬态帧时使用具有不同的重叠时长长度的平滑窗的错误隐藏窗(操作2802和2803)。也就是说,图28的实施例可被应用于除了普通OLA处理之外还包括对瞬态帧的OLA处理的情况。
[0249] 图29是用于描述根据示例性实施例的图26中的当当前帧是错误帧时的错误隐藏方法的框图。与图16的实施例相比,图29的实施例不同之处在于不包括与重叠大小选择单元(图16的1615)相应的组件,同时还包括了能量检查单元2916。也就是说,平滑单元2915可应用预定平滑窗,能量检查单元2916可执行与图26的操作2603和2604相应的功能。
[0250] 图30是用于描述根据本发明的实施例的图28中的当先前帧是错误帧时用于作为瞬态帧的NGF的错误隐藏方法的框图。当先前帧的帧类型是瞬态时,可优选地应用图30的实施例。也就是说,由于先前帧是瞬态,因此可通过在过去帧中使用的错误隐藏方法来执行对NGF的错误隐藏处理。
[0251] 参照图30,窗更新单元3012可通过考虑先前帧的窗来更新将被用于对当前帧进行平滑处理的窗的重叠时长的长度。
[0252] 平滑单元3013可通过将由窗更新单元3012更新的平滑窗应用到先前帧和作为NGF的当前帧,来执行平滑处理。
[0253] 图31是用于描述根据本发明的实施例的图27或图28中的当先前帧是错误帧时用于不是瞬态帧的NGF的错误隐藏方法的框图,其中,该错误隐藏方法与图17和图18的实施例相应。也就是说,根据连续错误帧的数量,可如图17中那样执行与随机错误帧相应的错误隐藏处理,或者可如图18中那样执行与突发错误帧相应的错误隐藏处理。然而,与图17和图18的实施例相比,图31的实施例的不同之处在于预先设置了重叠大小。
[0254] 图32是用于描述图26中的当当前帧是错误帧时的OLA处理的示例的示图。图32(a)是针对瞬态帧的示例。图32(b)示出对非常平稳的帧的OLA处理,其中,M的长度长于N,并且在平滑处理中的重叠时长的长度长。图32(c)示出对比图32(b)的情况更不平稳的帧的OLA处理,图32(d)示出普通OLA处理。该OLA处理可与对NGF的OLA处理独立地被使用。
[0255] 图33是用于描述图27中的先前帧是随机错误帧时对NGF的OLA处理的示例的示图。图33(a)示出对非常平稳的帧的OLA处理,其中,长度K长于L,在平滑处理中的重叠时长的长度长。图33(b)示出对比图33a的情况不平稳的帧的OLA处理,图33(c)示出普通OLA处理。该OLA处理可与对错误帧的OLA处理独立地被使用。因此,可进行错误帧和NGF之间的OLA处理的各种组合。
[0256] 图34是用于描述图27中的当先前帧是突发错误帧时对NGF n+2的OLA处理的示例的示图。与图18和图20相比,图34的不同之处在于可通过调整平滑窗的重叠时长的长度3412或3413来执行平滑处理。
[0257] 图35是用于描述应用于示例性实施例的相位匹配方法的概念的示图。
[0258] 参照图35,当在解码的音频信号中的帧n中发生错误时,可在缓冲器中存储的N个过去好帧之中,搜索与先前帧n-1中的解码信号中的搜索区段3512最相似的匹配区段3513,其中,搜索区段3512与帧n相邻。此时,可根据与将被搜索的音调分量相应的最小频率的波长来确定搜索区段3512的大小和缓冲器中的搜索范围。为了使搜索的复杂度最小化,搜索区段3512的大小优选为小。例如,搜索区段3512的大小可被设置为大于最小频率的波长的一半,并小于最小频率的波长。缓冲器中的搜索范围可被设置为等于或大于将被搜索的最小频率的波长。根据本发明的实施例,可根据基于上述的标准的输入频带(NB、WB、SWB或FB)来预先设置搜索区段3512的大小和缓冲器中的搜索范围。
[0259] 具体地说,可从搜索范围内的过去解码信号之中搜索到与搜索区段3512具有最高互相关性的匹配区段3513,可获得与匹配区段3513相应的位置信息,并可将从匹配区段3513的末端开始的预定时长3514复制到已发生错误的帧n。可通过考虑窗长度(例如,通过将帧长度和重叠时长的长度相加而获得的长度)来设置预定时长3514。
[0260] 图36是根据示例性实施例的错误隐藏设备3610的框图。
[0261] 图36中示出的错误隐藏设备3610可包括相位匹配标志产生单元3611、第一FEC模式选择单元3612、相位匹配FEC模块3613、时域FEC模块3614和存储器更新单元3615。
[0262] 参照图36,相位匹配标志产生单元3611可产生相位匹配标志,其中,相位匹配标志用于确定当在下一帧中发生错误时是否在每个好帧中使用相位匹配错误隐藏处理。为此,可使用每个子频带的能量和频谱系数。可从范数值获得能量,但不限于此。具体地说,当作为正常帧的当前帧中的具有最大能量的子频带属于预定低频带,并且帧内或帧间能量改变不大时,相位匹配标志可被设置为1。根据示例性实施例,当当前帧中的具有最大能量的子频带属于75Hz到1000Hz,并且当前帧中关于相应子频带的索引与先前帧中关于相应子频带的索引相同时,可将相位匹配错误隐藏处理应用到已发生错误的下一帧。根据另一示例性实施例,当当前帧中的具有最大能量的子频带属于75Hz到1000Hz,并且当前帧的关于相应子频带的索引与先前帧中关于相应子频带的索引之间的差等于或小于1时,可将相位匹配错误隐藏处理应用到已发生错误的下一帧。根据另一示例性实施例,当当前帧中的具有最大能量的子频带属于75Hz到1000Hz,当前帧的关于相应子频带的索引与先前帧的关于相应子频带的索引相同,当前帧是能量改变小的稳态帧,并且在缓冲器中存储的N个过去帧是正常帧且不是瞬态帧时,可将相位匹配错误隐藏处理应用到已发生错误的下一帧。根据另一示例性实施例,当当前帧中的具有最大能量的子频带属于75Hz到1000Hz,当前帧的关于相应子频带的索引与先前帧的关于相应子频带的索引之间的差等于或小于1,当前帧是能量改变小的稳态帧,并且在缓冲器中存储的N个过去帧是正常帧且不是瞬态帧时,可将相位匹配错误隐藏处理应用到已发生错误的下一帧。可通过对差能量与在上述的稳态帧检测处理中使用的阈值进行比较来确定当前帧是否是稳态帧。另外,可确定在缓冲器中存储的多个过去帧之中的最近的三个帧是否是正常帧,可确定在缓冲器中存储的多个过去帧之中的最近的两个帧是否是瞬态帧,但本实施例不限于此。
[0263] 当由相位匹配标志产生单元3611产生的相位匹配标志被设置为1时,如果在下一帧发生错误,则可应用相位匹配错误隐藏处理。
[0264] 第一FEC模式选择单元3612可通过考虑相位匹配标志以及帧的状态中的至少一个来从多个FEC模式选择一个FEC模式。可从当前帧的状态或通过另外地考虑至少一个先前帧的状态来获得帧的状态。相位匹配标志可指示PGF的状态。先前帧和当前帧的状态可包括先前帧或当前帧是否是错误帧,当前帧是随机错误帧还是突发错误帧,或者是否已执行了对先前错误帧的相位匹配错误隐藏处理。根据示例性实施例,多个FEC模式可包括基于相位匹配错误隐藏处理的第一主FEC模式和基于时域错误隐藏处理的第二主FEC模式。第一主FEC模式可包括第一子FEC模式、第二子FEC模式和第三子FEC模式,其中,第一子FEC模式被用于相位匹配标志被设置为1并且是随机错误帧的当前帧,第二子FEC模式在先前帧是错误帧并且已执行了对先前帧的相位匹配错误隐藏处理时被用于作为NGF的当前帧,第三子FEC模式在已执行了对先前帧的相位匹配错误隐藏处理时被用于形成突发错误帧的当前帧。根据示例性实施例,第二主FEC模式可包括第四子FEC模式和第五子FEC模式,其中,第四子FEC模式被用于相位匹配标志被设置为0并且是错误帧的当前帧,第五子FEC模式被用于相位匹配标志被设置为0并且是先前错误帧的NGF的当前帧。根据示例性实施例,可以以与参照图23所描述的相同方法来选择第四子FEC模式或第五子FEC模式,并可根据选择的FEC模式来执行相同的错误隐藏处理。
[0265] 当由第一FEC模式选择单元3612选择的FEC模式是第一主FEC模式时,相位匹配FEC模块3613可进行操作,并可通过执行与第一子FEC模式至第三子FEC模式中的每一个子FEC模式相应的相位匹配错误隐藏处理,来产生错误被隐藏的时域信号。这里,为了便于描述,示出了经过存储器更新单元3615输出错误被隐藏的时域信号。
[0266] 当由第一FEC模式选择单元3612选择的FEC模式是第二主FEC模式时,时域FEC模块3614可进行操作,并可通过执行与第四子FEC模式和第五子FEC模式中的每一个子FEC模式相应的相位匹配错误隐藏处理,来产生错误被隐藏的时域信号。同样,为了便于描述,示出了经过存储器更新单元3615输出错误被隐藏的时域信号。
[0267] 存储器更新单元3615可接收在相位匹配FEC模块3613或时域FEC模块3614中的错误隐藏的结果,并可更新用于对下一帧进行错误隐藏处理的多个参数。根据示例性实施例,存储器更新单元3615的功能可被包括在相位匹配FEC模块3613和时域FEC模块3614中。
[0268] 如上所述,通过针对错误帧重复时域中的相位匹配信号来代替重复频域中获得的频谱系数,在使用重叠时长的长度小于50%的窗时,可有效地抑制在低频带中的重叠时长中可能产生的噪声。
[0269] 图37是根据示例性实施例的图36的相位匹配FEC模块3613或时域FEC模块3614的框图。
[0270] 图37中示出的相位匹配FEC模块3710可包括第二FEC模式选择单元3711、第一相位匹配错误隐藏单元3712、第二相位匹配错误隐藏单元3713和第三相位匹配错误隐藏单元3714,图37中示出的时域FEC模块3730可包括第三FEC模式选择单元3731、第一时域错误隐藏单元3732和第二时域错误隐藏单元3733。根据示例性实施例,第二FEC模式选择单元3711和第三FEC模式选择单元3731可被包括在图36的第一FEC模式选择单元3612中。
[0271] 参照图37,当PGF在预定低频带中具有最大能量并且能量的改变小于预定阈值时,第一相位匹配错误隐藏单元3712可对作为随机错误帧的当前帧执行相位匹配错误隐藏处理。根据本发明的实施例,即使满足以上条件,也可获得相关性尺度(correlation scale)accA,并可根据相关性尺度accA是否在预定范围内来执行相位匹配错误隐藏处理或普通OLA处理。也就是说,通过考虑搜索范围中存在的区段之间的相关性以及搜索区段与搜索范围中存在的区段之间的互相关性,来优选地确定是否执行相位匹配错误隐藏处理。现将更详细地描述该处理。
[0272] 可通过等式4来获得相关性尺度accA。
[0273]
[0274] 在等式4中,d表示在搜索范围中存在的区段的数量,Rxy表示用于针对存储在帧冲器中的N个过去正常帧(y信号)搜索具有与搜索区段(x信号)3512相同长度的匹配区段3513(参照图35)的互相关性,Ryy表示存储在缓冲器中的N个过去好帧(y信号)中存在的区段之间的相关性。
[0275] 接下来,可确定相关性尺度accA是否在预定范围内,如果相关性尺度accA在预定范围内,则可执行对作为错误帧的当前帧的相位匹配错误隐藏处理,否则,可执行对当前帧的普通OLA处理。根据示例性实施例,如果相关性尺度accA小于0.5或大于1.5,则可执行普通OLA处理,否则,可执行相位匹配错误隐藏处理。这里,上限值和下限值仅是说明性的,并可通过实验或仿真来将上限值和下限值预先设置为最佳值。
[0276] 当先前帧是错误帧并且已执行了对先前帧的相位匹配错误隐藏处理时,第二相位匹配错误隐藏单元3713可对作为PGF的当前帧执行相位匹配错误隐藏处理。
[0277] 当先前帧是错误帧并且已执行了对先前帧的相位匹配错误隐藏处理时,第三相位匹配错误隐藏单元3714可对形成突发错误帧的当前帧执行相位匹配错误隐藏处理。
[0278] 当PGF在预定低频带中不具有最大能量时,第一时域错误隐藏单元3732可对作为错误帧的当前帧执行时域错误隐藏处理。
[0279] 当PGF在预定低频带中不具有最大能量时,第二时域错误隐藏单元3733可对作为先前错误帧的NGF的当前帧执行时域错误隐藏处理。
[0280] 图38是根据示例性实施例的图37的第一相位匹配错误隐藏单元3712或第二相位匹配错误隐藏单元3713的框图。
[0281] 图38中示出的相位匹配错误隐藏单元3810可包括最大相关性搜索单元3812、复制单元3813和平滑单元3814。平滑单元3814可被选择性地包括。
[0282] 参照图38,最大相关性搜索单元3812可从存储在缓冲器中的N个过去好帧中搜索与PGF中的解码信号中的搜索区段具有最大相关性(即,最相似)的匹配区段,其中,搜索区段与当前帧相邻。作为搜索的结果而获得的匹配区段的位置索引可被提供给复制单元3813。最大相关性搜索单元3812可按照相同的方式针对作为随机错误帧的当前帧或在先前帧是随机错误帧并且已执行了对先前帧的相位匹配错误隐藏处理时的作为好帧的当前帧来进行操作。当当前帧是错误帧时,可优选地预先执行频域错误隐藏处理。根据示例性实施例,最大相关性搜索单元3812可获得用于在已确定将被执行相位匹配错误隐藏处理的作为错误帧的当前帧的相关性尺度,并再次确定相位匹配错误隐藏处理是否合适。
[0283] 复制单元3813可通过参考匹配区段的位置索引来将从匹配区段的末端开始的预定时长复制到作为错误帧的当前帧。另外,当先前帧是随机错误帧并且已执行了对先前帧的相位匹配错误隐藏处理时,复制单元3813可通过参考匹配区段的位置索引来将从匹配区段的末端开始的预定时长复制到作为正常帧的当前帧。此时,与窗长度相应的时长可被复制到当前帧。根据示例性实施例,当从匹配区段的末端开始的可复制时长比窗长度短时,从匹配区段的末端开始的可复制时长可被重复地复制到当前帧。
[0284] 平滑单元3814可通过OLA执行平滑处理来产生关于错误被隐藏的当前帧的时域信号,以使当前帧和相邻帧之间的不连续性最小化。将参照图39和图40来详细描述平滑单元3814的操作。
[0285] 图39是用于描述根据示例性实施例的图38的平滑单元3814的操作的示图。
[0286] 参照图39,可在存储在缓冲器中的N个过去好帧中搜索与先前帧n-1中的解码信号中的搜索区段3912最相似的匹配区段3913,其中,搜索区段3912与作为错误帧的当前帧n相邻。接下来,可通过考虑窗长度,将从匹配区段3913的末端开始的预定时长复制到已发生错误的当前帧n。当复制处理完成时,可在当前帧n的开始部分,对复制的信号3914和存储在先前帧n-1中的用于重叠的Oldauout信号3915执行第一重叠时长3916的重叠。由于信号的相位彼此匹配,因此第一重叠时长3916的长度可比在普通OLA处理中使用的长度更短。例如,如果在普通OLA处理中使用6ms,则第一重叠时长3916可使用1ms,但不限于此。当从匹配区段3913的末端开始的可复制时长比窗长度短时,从匹配区段3913的末端开始的可复制时长可部分重叠,并可被重复地复制到当前帧n。根据示例性实施例,重叠时长可与第一重叠时长3916相同。在这种情况下,可在下一帧n+1的开始部分,对两个复制的信号3914和3917中的重叠部分与存储在当前帧n中的用于重叠的Oldauout信号3918执行第二重叠时长3919的重叠。由于信号的相位彼此匹配,因此第二重叠时长3919的长度可比在普通OLA处理中使用的长度更短。例如,第二重叠时长3919的长度可与第一重叠时长3916的长度相同。也就是说,当从匹配区段3913的末端开始的可复制时长等于或长于窗长度时,可执行仅针对第一重叠时长3916的重叠。如上所述,通过对复制的信号3914和存储在先前帧n-1中的用于重叠的Oldauout信号3915执行重叠,可使在当前帧n的开始部分与先前帧n-1的不连续性最小化。作为结果,可产生信号3920,其中,信号3920与窗长度相应,并且对于信号3920,已执行了当前帧n和先前帧n-1之间的平滑处理并且错误已被隐藏。
[0287] 图40是用于描述根据另一示例性实施例的图38的平滑单元3814的操作的示图。
[0288] 参照图40,可在存储在缓冲器中的N个过去正常帧中搜索与先前帧n-1中的解码信号中的搜索区段4012最相似的匹配区段4013,其中,搜索区段4012与作为错误帧的当前帧n相邻。接下来,可通过考虑窗长度,将从匹配区段4013的末端开始的预定时长复制到已发生错误的当前帧n。当复制处理完成时,可在当前帧n的开始部分,对复制的信号4014和存储在先前帧n-1中的用于重叠的Oldauout信号4015执行第一重叠时长4016的重叠。由于信号的相位彼此匹配,因此第一重叠时长4016的长度可比在普通OLA处理中使用的长度更短。例如,如果在普通OLA处理中使用6ms,则第一重叠时长4016可使用1ms,但不限于此。当从匹配区段4013的末端开始的可复制时长比窗长度短时,从匹配区段4013的末端开始的可复制时长可部分重叠,并可被重复地复制到当前帧n。在这种情况下,可执行对两个复制的信号4014和4017中的重叠部分4019的重叠。重叠部分4019的长度可优选地与第一重叠时长4016的长度相同。也就是说,当从匹配区段4013的末端开始的可复制时长等于或长于窗长度时,可执行仅针对第一重叠时长4016的重叠。如上所述,通过对复制的信号4014和存储在先前帧n-1中的用于重叠的Oldauout信号4015执行重叠,可使在当前帧n的开始部分与先前帧n-
1的不连续性最小化。作为结果,可产生第一信号4020,其中,第一信号4020与窗长度相应,并且对于第一信号4020,已执行了当前帧n和先前帧n-1之间的平滑处理并且错误已被隐藏。接下来,通过在重叠时长4022中执行对与重叠时长4022相应的信号和存储在当前帧n中的用于重叠的Oldauout信号4018的重叠,可产生第二信号4023,其中,对于第二信号4023,作为错误帧的当前帧n和重叠时长4022中的下一帧n+1之间的不连续性被最小化。
[0289] 因此,当信号的主频率(例如,基本频率)在每个帧中不同时,或者当信号快速变化时,即使在复制的信号的尾部(即,与下一帧n+1的重叠时长中)发生相位失配,也可通过执行平滑处理来使当前帧n和下一帧n+1之间的不连续性最小化。
[0290] 与第一信号4020和第二信号4023的每个将来区域相应的部分(即,与下一帧n+1重叠的区域)可被存储在存储器中,其中,对于第一信号4020,已执行了当前帧n和先前帧n-1之间的平滑处理并且错误已被隐藏,对于第二信号4023,当前帧n和下一帧n+1之间的重叠时长4022中的不连续性已被最小化。在NGF中,可根据信号的特征来选择存储在存储器中的部分之一,并且在实际解码中,存储在存储器中的部分之一可作为Oldauout信号以用于重叠。
[0291] 除了选择Oldauout信号的部分之外,对NGF的相位匹配可与在时域中对NGF的处理相同。
[0292] 根据本发明的实施例,在图40中产生的相位匹配块的两个Oldauout信号4015和4018可被如下确定:
[0293]
[0294]
[0295] 其中,mean_en_high表示指示针对每个帧的信号的变化级别的信息,并可由存储器更新单元预先针对正常帧来计算。根据本发明的实施例,mean_en_high可指示在计算时在针对每个频带获得两个先前帧的能量平均值与当前帧的能量之比之后针对所有频带获得的帧的平均值。当mean_en_high的值接近于1时,这可表示两个先前帧的能量平均值与当前帧的能量之间的变化不大,当mean_en_high的值小于0.5或大于2时,这可表示能量的变化非常大。
[0296] 当能量的变化非常大时,oldout_pha_idx被设置为1,这种情况指示使用第二信号4023。当能量的变化不大时,oldout_pha_idx被设置为0,这种情况指示使用第一信号4020。
[0297] 接下来,对于突发错误的相位匹配的情况不需要最佳区段搜索处理,对于其它部分,除了执行搜索处理之外,还可根据如参照图39或图40描述的相同顺序来执行隐藏处理。
[0298] 图41是根据示例性实施例的包括编码模块的多媒体装置的框图。
[0299] 参照图41,多媒体装置4100可包括通信单元4110和编码模块4130。另外,多媒体装置4100还可根据作为编码的结果而获得的音频比特流的使用来包括用于存储该音频比特流的存储单元4150。此外,多媒体装置4100还可包括麦克风4170。也就是说,可选择性地包括存储单元4150和麦克风4170。多媒体装置4100还可包括任意解码模块(未示出),例如,用于执行普通解码功能的解码模块或根据示例性实施例的解码模块。编码模块4130可通过与包括在多媒体装置4100中的其它组件(未示出)集成为一体来由至少一个处理器(未示出)来实现。
[0300] 通信单元4110可接收从外部提供的音频信号或编码比特流中的至少一个,或可发送恢复音频信号或作为由编码模块4130进行编码的结果而获得的编码比特流中的至少一个。
[0301] 通信单元4110被配置为通过无线网络(诸如无线互联网、无线内联网、无线电话网络、无线局域网(LAN)、Wi-Fi、Wi-Fi直连(WFD)、第三代(3G)、第四代(4G)、蓝牙、红外数据组织(IrDA)、射频识别(RFID)、超宽带(UWB)、Zigbee或近场通信(NFC))或有线网络(诸如有线电话网络或有线互联网),将数据发送到外部多媒体装置,或从外部多媒体装置接收数据。
[0302] 根据示例性实施例,编码模块4130可考虑在通过通信单元4110或麦克风4170提供的时域信号中,当前帧中的检测为瞬态的时长是否属于重叠时长,来设置用于下一帧的拖尾延迟保护标志。
[0303] 存储单元4150可存储操作多媒体装置4100所需要的各种程序。
[0304] 麦克风4170可将来自用户或外部的音频信号提供给编码模块4130。
[0305] 图42是根据示例性实施例的包括解码模块的多媒体装置的框图。
[0306] 图42的多媒体装置4200可包括通信单元4210和解码模块4230。另外,根据作为解码结果而获得的恢复的音频信号的使用,图42的多媒体装置4200还可包括用于存储恢复的音频信号的存储单元4250。另外,图42的多媒体装置4200还可包括扬声器4270。也就是说,存储单元4250和扬声器4270是可选的。图42的多媒体装置4200还可包括编码模块(未示出),例如,用于执行普通编码功能的编码模块或根据示例性实施例的编码模块。解码模块4230可与包括在多媒体装置4200中的其它组件(未示出)集成,并可由至少一个处理器实现。
[0307] 参照图42,通信单元4210可接收从外部提供的音频信号或编码比特流中的至少一个,或可发送作为解码模块4230的解码结果而获得的恢复音频信号或作为编码的结果获得的音频比特流中的至少一个。通信单元4210可与图41的通信单元4110实质上相似地实现。
[0308] 根据示例性实施例,解码模块4230可接收通过通信单元4210提供的比特流,当当前帧是错误帧时在频域中执行错误隐藏处理,当当前帧是好帧时对频谱系数进行解码,对作为错误帧或好帧的当前帧执行时频逆变换处理,基于关于时频逆变换处理之后产生的时域信号的帧状态和相位匹配标志中的至少一个来选择基于相位匹配的第一主模式和基于简单重复的第二主模式之一,并基于选择的模式对当前帧执行时域错误隐藏处理,其中,当前帧是错误帧,或者当前帧是在先前错误帧之后的好帧。
[0309] 存储单元4250可存储由解码模块4230产生的恢复音频信号。另外,存储单元4250可存储操作多媒体装置4200所需的各种程序。
[0310] 扬声器4270可将由解码模块4230产生的恢复音频信号输出到外部。
[0311] 图43是根据示例性实施例的包括编码模块和解码模块的多媒体装置的框图。
[0312] 图43中示出的多媒体装置4300可包括通信单元4310、编码模块4320和解码模块4330。另外,多媒体装置4300还可根据作为编码的结果而获得的音频比特流或作为解码的结果而获得的恢复音频信号的使用,来包括用于存储音频比特流或恢复音频信号的存储单元4340。另外,多媒体装置4300还可包括麦克风4350和/或扬声器4360。编码模块4320和解码模块4330可通过与包括在多媒体装置4300中的其它组件(未示出)集成为一体,来由至少一个处理器(未示出)实现。
[0313] 由于图43中示出的多媒体装置4300的组件与由图41中示出的多媒体装置4100的组件或图42中示出的多媒体装置4200的组件相应,因此,省略对其的详细描述。
[0314] 图41、图42和图43中示出的多媒体装置4100、4200和4300中的每一个可包括语音通信专用终端(诸如电话或移动电话)、广播或音乐专用装置(诸如TV或MP3播放器)或语音通信专用终端和广播或音乐专用终端的混合终端装置,但不限于此。另外,多媒体装置4100、4200和4300中的每一个可被用作客户机、服务器或位于客户机和服务器之间的换能器。
[0315] 当多媒体装置4100、4200或4300是例如移动电话时,尽管未示出,但多媒体装置4100、4200或4300还可包括用户输入单元(诸如键区)、用于显示由用户界面或移动电话处理的信息的显示单元以及用于控制移动电话的功能的处理器。另外,移动电话还可包括具有图像拾取功能的相机单元和用于执行移动电话所需的功能的至少一个组件。
[0316] 当多媒体装置4100、4200或4300是例如TV时,尽管未示出,但多媒体装置4100、4200或4300还可包括用户输入单元(诸如键区)、用于显示接收到的广播信息的显示单元以及用于控制TV的所有功能的处理器。另外,TV还可包括用于执行TV的功能的至少一个组件。
[0317] 根据实施例的方法可被编写为计算机可执行程序,并可被实现在通用数字计算机中,其中,该通用数字计算机通过使用非暂时性计算机可读记录介质执行所述程序。另外,可在实施例中使用的数据结构、程序指令或数据文件可以以各种方式被记录在非暂时性计算机可读记录介质中。非暂时性计算机可读记录介质是可存储随后可由计算机系统读取的数据的任何数据存储装置。非暂时性计算机可读记录介质的示例包括磁存储介质(诸如硬盘、软盘和磁带)、光学记录介质(诸如CD-ROM和DVD)、磁光介质(诸如光盘)以及专门被配置为存储和执行程序指令的硬件装置(诸如ROM、RAM和闪存)。另外,非暂时性计算机可读记录介质可以是用于传输指定程序指令、数据结构等的信号的传输介质。程序指令的示例不仅可包括由编译器创建的机器语言代码还可包括由计算机使用解释器等可执行的高级语言代码。
[0318] 虽然已专门示出和描述了示例性实施例,但本领域的普通技术人员将理解在不脱离由权利要求限定的本发明构思的精神和范围的情况下,可在示例性实施例中进行形式和细节上的各种改变。