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

上传人:a1 文档编号:1278276 上传时间:2018-04-12 格式:PDF 页数:22 大小:524.49KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010268819.8

申请日:

2004.09.20

公开号:

CN101968781A

公开日:

2011.02.09

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/14申请日:20040920|||公开

IPC分类号:

G06F17/14; G10L19/02

主分类号:

G06F17/14

申请人:

索尼电子有限公司

发明人:

J·雍

地址:

美国新泽西州

优先权:

2003.09.29 US 10/674616

专利代理机构:

中国专利代理(香港)有限公司 72001

代理人:

李亚非;刘鹏

PDF下载: PDF下载
内容摘要

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

权利要求书

1: 一种方法, 包括 : 利用长视窗类型来为数据的当前帧和数据的下一帧中的每一个计算当前帧的多个初 级修正离散余弦变换 (MDCT) 系数和下一帧的多个初级 MDCT 系数 ; 利用当前帧的多个初级 MDCT 系数和下一帧的多个初级 MDCT 系数来确定当前帧的视窗 类型 ; 以及 如果所确定的当前帧的视窗类型不是长视窗类型, 则利用所确定的视窗类型来计算当 前帧的多个最终 MDCT 系数。
2: 根据权利要求 1 所述的方法, 其中多个初级 MDCT 系数是根据沿时间轴产生的多个相 应的样值计算的。
3: 根据权利要求 1 所述的方法, 进一步包括 : 如果所确定的当前帧的视窗类型是长视窗类型, 则将当前帧的多个初级 MDCT 系数用 作为当前帧的多个最终 MDCT 系数。
4: 根据权利要求 1 所述的方法, 其中确定当前帧的视窗类型包括 : 确定下一帧的初级视窗类型 ; 以及 使用下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型。
5: 根据权利要求 4 所述的方法, 其中确定下一帧的初级视窗类型包括 : 利用当前帧的多个初级 MDCT 系数来计算当前帧的总能量 ; 利用下一帧的多个初级 MDCT 系数来计算下一帧的总能量 ; 根据当前帧的总能量和下一帧的总能量来确定是否很可能在下一帧中发生从稳定信 号到瞬态信号的转变 ; 以及 如果很可能发生转变, 则判定下一帧的初级视窗类型是短视窗类型。
6: 根据权利要求 5 所述的方法, 进一步包括 : 如果不大可能发生转变, 则判定下一帧的初级视窗类型是长视窗类型。
7: 根据权利要求 5 所述的方法, 其中使用下一帧的初级视窗类型和前一帧的视窗类型 来确定当前帧的视窗类型包括 : 识别前一帧的视窗类型 ; 以及 为当前帧选择过渡视窗类型以便从前一帧的视窗类型转变到下一帧的初级视窗类型, 所述选择优先使用长视窗类型而非短视窗类型。
8: 一种设备, 包括 : 用于利用长视窗类型来为数据的当前帧和数据的下一帧中的每一个计算当前帧的多 个初级修正离散余弦变换 (MDCT) 系数和下一帧的多个初级 MDCT 系数的装置 ; 用于利用当前帧的多个初级 MDCT 系数和下一帧的多个初级 MDCT 系数来确定当前帧的 视窗类型的装置 ; 以及 用于如果所确定的当前帧的视窗类型不是长视窗类型, 则利用所确定的视窗类型来计 算当前帧的多个最终 MDCT 系数的装置。
9: 一种设备, 包括 : 修正离散余弦变换 (MDCT) 系数计算器, 用于利用长视窗类型来为数据的当前帧和数 据的下一帧中的每一个计算当前帧的多个初级修正离散余弦变换 (MDCT) 系数和下一帧的 多个初级 MDCT 系数 ; 和 2 视窗类型确定器, 用于利用当前帧的多个初级 MDCT 系数和下一帧的多个初级 MDCT 系 数来确定当前帧的视窗类型, 其中所述 MDCT 系数计算器进一步执行如下操作 : 如果所确定的当前帧的视窗类型不 是长视窗类型, 则利用所确定的视窗类型来计算当前帧的多个最终 MDCT 系数。

说明书


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

    本申请是申请日为 2004 年 9 月 20 日、 中国申请号 200480035333.2( 国际申请号 为 PCT/US2004/031024) 的题为 “在音频编码过程中根据 MDCT 数据进行视窗类型判定的方 法” 的发明专利申请的分案申请。
     技术领域 本发明总体上涉及音频编码。更具体而言, 本发明涉及在音频编码过程中进行视 窗类型确定。
     版权标记 / 许可
     这篇专利文件的部分公开内容包含受版权保护的材料。 版权所有者不反对由出现 在专利商标局专利文档或记录中的专利文件或专利公开中的任何一种的影印复制, 但在别 的方面却无论如何保留所有版权。将以下通告应用于如下所述的及附图中的软件和数据 : Copyright 2001, Sony Electronics, Inc., All Rights Reserved。
     背景技术 标准化机构运动图象专家组 (MPEG) 在他们的标准中公开了通用数据压缩方法, 例 如, 所 述 标 准 诸 如 是 MPEG-2 高 级 音 频 编 码 (AAC) 标 准 ( 参 见 ISO/IEC 13818-7) 和 MPEG-4AAC 标准 ( 参见 ISO/IEC 14496-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-2AAC 标准、 MPEG-4AAC 标准等等 )。所述编码系统 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_i ndex 1 to 6
     if(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 是具有不同的体系结构的许多可能的计 算机系统中的一个例子。典型的计算机系统将通常至少包括 : 处理器、 存储器和将存储器 耦合于处理器的总线。本领域的技术人员将会立即认识到 : 可以利用其它计算机系统结构 来实施本发明, 包括多处理器系统、 微型计算机、 大型计算机等等。本发明还可以在分布计 算环境中实施, 在所述分布计算环境中任务是由通过通信网络链接的远程处理设备来执行 的。
     已经描述了在音频编码过程中进行视窗类型确定的各种不同的方面。 尽管在这里 已经举例说明和描述了特定实施例, 但是本领域的技术人员将会认识到的是, 计算以达到 相同目的的任何方案都可以替代所示的特定实施例。 本申请意在涵盖本发明的任何修改或 变形。

在音频编码过程中根据MDCT数据进行视窗类型判定的方法.pdf_第1页
第1页 / 共22页
在音频编码过程中根据MDCT数据进行视窗类型判定的方法.pdf_第2页
第2页 / 共22页
在音频编码过程中根据MDCT数据进行视窗类型判定的方法.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《在音频编码过程中根据MDCT数据进行视窗类型判定的方法.pdf》由会员分享,可在线阅读,更多相关《在音频编码过程中根据MDCT数据进行视窗类型判定的方法.pdf(22页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101968781A43申请公布日20110209CN101968781ACN101968781A21申请号201010268819822申请日2004092010/67461620030929US200480035333220040920G06F17/14200601G10L19/0220060171申请人索尼电子有限公司地址美国新泽西州72发明人J雍74专利代理机构中国专利代理香港有限公司72001代理人李亚非刘鹏54发明名称在音频编码过程中根据MDCT数据进行视窗类型判定的方法57摘要利用长视窗类型来为数据的当前帧和数据的下一帧计算初级修正离散余弦变换MDCT系数。然后。

2、,使用计算出的当前帧和下一帧的初级MDCT系数来确定视窗类型不是长视窗类型,利用所确定的视窗类型来为当前帧计算最终MDCT系数。30优先权数据62分案原申请数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图10页CN101968781A1/2页21一种方法,包括利用长视窗类型来为数据的当前帧和数据的下一帧中的每一个计算当前帧的多个初级修正离散余弦变换MDCT系数和下一帧的多个初级MDCT系数;利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗类型;以及如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计。

3、算当前帧的多个最终MDCT系数。2根据权利要求1所述的方法,其中多个初级MDCT系数是根据沿时间轴产生的多个相应的样值计算的。3根据权利要求1所述的方法,进一步包括如果所确定的当前帧的视窗类型是长视窗类型,则将当前帧的多个初级MDCT系数用作为当前帧的多个最终MDCT系数。4根据权利要求1所述的方法,其中确定当前帧的视窗类型包括确定下一帧的初级视窗类型;以及使用下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型。5根据权利要求4所述的方法,其中确定下一帧的初级视窗类型包括利用当前帧的多个初级MDCT系数来计算当前帧的总能量;利用下一帧的多个初级MDCT系数来计算下一帧的总能量;根据当。

4、前帧的总能量和下一帧的总能量来确定是否很可能在下一帧中发生从稳定信号到瞬态信号的转变;以及如果很可能发生转变,则判定下一帧的初级视窗类型是短视窗类型。6根据权利要求5所述的方法,进一步包括如果不大可能发生转变,则判定下一帧的初级视窗类型是长视窗类型。7根据权利要求5所述的方法,其中使用下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型包括识别前一帧的视窗类型;以及为当前帧选择过渡视窗类型以便从前一帧的视窗类型转变到下一帧的初级视窗类型,所述选择优先使用长视窗类型而非短视窗类型。8一种设备,包括用于利用长视窗类型来为数据的当前帧和数据的下一帧中的每一个计算当前帧的多个初级修正离散余弦变。

5、换MDCT系数和下一帧的多个初级MDCT系数的装置;用于利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗类型的装置;以及用于如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计算当前帧的多个最终MDCT系数的装置。9一种设备,包括修正离散余弦变换MDCT系数计算器,用于利用长视窗类型来为数据的当前帧和数据的下一帧中的每一个计算当前帧的多个初级修正离散余弦变换MDCT系数和下一帧的多个初级MDCT系数;和权利要求书CN101968781A2/2页3视窗类型确定器,用于利用当前帧的多个初级MDCT系数和下一帧的多个初级MDCT系数来确定当前帧的视窗。

6、类型,其中所述MDCT系数计算器进一步执行如下操作如果所确定的当前帧的视窗类型不是长视窗类型,则利用所确定的视窗类型来计算当前帧的多个最终MDCT系数。权利要求书CN101968781A1/9页4在音频编码过程中根据MDCT数据进行视窗类型判定的方法0001本申请是申请日为2004年9月20日、中国申请号2004800353332国际申请号为PCT/US2004/031024的题为“在音频编码过程中根据MDCT数据进行视窗类型判定的方法”的发明专利申请的分案申请。技术领域0002本发明总体上涉及音频编码。更具体而言,本发明涉及在音频编码过程中进行视窗类型确定。0003版权标记/许可0004这篇。

7、专利文件的部分公开内容包含受版权保护的材料。版权所有者不反对由出现在专利商标局专利文档或记录中的专利文件或专利公开中的任何一种的影印复制,但在别的方面却无论如何保留所有版权。将以下通告应用于如下所述的及附图中的软件和数据COPYRIGHT2001,SONYELECTRONICS,INC,ALLRIGHTSRESERVED。背景技术0005标准化机构运动图象专家组MPEG在他们的标准中公开了通用数据压缩方法,例如,所述标准诸如是MPEG2高级音频编码AAC标准参见ISO/IEC138187和MPEG4AAC标准参见ISO/IEC144963。这些标准在此统称为MPEG标准。0006MPEG标准所。

8、定义的音频编码器接收音频信号,通过修正离散余弦变换MDCT运算将它转换成频谱数据,并且利用失真率控制机制来判定用于量化频谱数据的最优比例因子。音频编码器还利用最优比例因子来量化频谱数据,将所得到的量化后的频谱系数编组成比例因子带,然后对编组的量化系数进行HUFFMAN编码。0007根据MPEG标准,以使相邻变换值域沿时间轴重叠50的方式对音频信号执行MDCT,以便抑制失真发生在相邻变换值域之间的边界部分上。另外,利用长变换值域由长视窗定义的或短变换值域每一个都是由短视窗定义的将音频信号映射到频率域中。长视窗包括2048个样值,而短视窗包括256个样值。从长视窗产生的MDCT系数的数目为1024。

9、,而从每一个短视窗产生的MDCT系数的数目为128。一般而言,对于信号波形变化细微的稳定部分,需要使用长视窗类型。对于信号波形变化剧烈的冲击部分,需要使用短视窗类型。使用其中哪一个是重要的。如果为瞬态信号使用长视窗类型,则称作预回波的噪声发生在冲击部分之前。当为稳定信号使用短视窗类型时,由于在频域中的分辩率缺乏、编码效率降低以及噪声出现,同样也不能执行适当的比特分配。这种缺陷对于低频声音是格外显著的。0008根据MPEG标准所提出的方法,对于频谱数据帧的视窗类型的确定始于对时域音频数据执行快速傅里叶变换FFT以及计算FFT系数。然后使用FFT系数来计算所述帧内的每个比例因子带的音频信号强度。同。

10、样,利用音质建模来确定所述帧的可容许失真级别。可容许失真级别表示能在不可听到的情况下被注入到频谱数据中的最大噪声量。说明书CN101968781A2/9页5根据所述帧的可容许失真级别和该帧内的每个比例因子带的音频信号强度,计算知觉熵PERCEPTUALENTROPY。如果知觉熵大于预定常量,则为所述帧使用短视窗类型。否则,为所述帧使用长视窗类型。0009进行视窗类型确定的上述方法要进行大量的计算。另外,如果信号强度高,则不论所述信号是瞬态的还是稳定的,所得到的知觉熵的数值都可能是高的。也就是说,即使所述帧不处于转变中,也可能给一帧指定短视窗类型。正如上面所论述的那样,这将导致编码效率降低以及噪。

11、声出现。0010此外,如果判定使用短视窗类型,则产生MDCT系数的8个连续块短视窗。为了减少与短视窗相关联的辅助信息量,可以将短视窗编组。每个群组都包括一个或多个连续的短视窗,其比例因子是相同的。然而,当没有适当地执行编组时,出现代码数量的增加或音质的下降。当群组的数量相对于短视窗的数量而言过大时,原本可以被共同编码的比例因子将被重复编码,由此使编码效率降低。当群组的数量相对于短视窗的数量而言过小时,即使是当音频信号变化剧烈时也使用公共比例因子。其结果是,音质被降低。所述MPEG标准未提供任何用于编组短视窗的特定方法。发明内容0011利用长视窗类型来为数据的当前帧和数据的下一帧来计算初级修正离。

12、散余弦变换MDCT系数。然后,使用所计算出的当前帧和下一帧的初级MDCT系数来确定当前帧的视窗类型。如果所确定的视窗类型不是长视窗类型,则利用所确定的视窗类型来为当前帧计算最终MDCT系数。附图说明0012通过如下详细说明以及本发明各种实施例的附图,将更充分地理解本发明,然而不应该将这些理解为将本发明限制到特定的实施例,而是仅用来解释和帮助理解。0013图1是编码系统的一个实施例的框图。0014图2是对频谱数据帧执行MDCT的过程的一个实施例的流程图。0015图3是视窗类型判定过程的一个实施例的流程图。0016图4是用于检测帧当中从稳定信号到瞬态信号的转变的指示的过程的一个实施例的流程图。00。

13、17图5是用于根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型的过程的一个实施例的流程图。0018图6是用于编组帧内的短视窗的过程的一个实施例的流程图。0019图7是用于确定短视窗类型的过程的一个实施例的流程图。0020图8是用于创建短视窗的两个初级群组的过程的一个实施例的流程图。0021图9是用于执行短视窗的最终编组的过程的一个实施例的流程图。0022图10举例说明了帧的短视窗的编组。0023图11是适用于实施本发明的实施例的计算机环境的框图。说明书CN101968781A3/9页6具体实施方式0024在本发明实施例的下列详细说明中,给附图加上了参考标记,其中同样的参考标记表。

14、示相似的元件,并且附图中作为例子示出了可以实施本发明的特定实施例。这些实施例被足够详细地描述以使本领域的技术人员能实施本发明,而且将理解可以使用其它的实施例并且在不偏离本发明的范围的情况下可以作出逻辑的、机械的、电学的、功能性的及其它的改变。因此,下列详细说明不是一种限制,而本发明的范围仅由所附的权利要求来限定。0025从本发明的操作的概述起,图1举例说明了编码系统100的一个实施例。所述编码系统100不遵循在此统称为MPEG标准的MPEG音频编码标准例如,MPEG2AAC标准、MPEG4AAC标准等等。所述编码系统100包括滤波器组模块102、编码工具104、音质建模器106、量化模块110。

15、和霍夫曼编码模块114。0026所述滤波器组模块102接收音频信号并且执行修正离散余弦变换运算MDCT以将音频信号映射到频率域中。所述映射是利用长变换值域由长视窗定义的或短变换值域由短视窗定义的来执行的,在所述长变换值域中待分析信号在时间上扩展以提高频率分辨率,在所述短变换值域中待分析信号在时间上缩减以提高时间分辨率。在只有稳定信号的情况下使用长视窗类型,而当存在快速的信号变化时使用短视窗类型。通过根据待分析信号的特性而使用这两个类型的操作,就可以防止称作预回波的令人厌恶的噪声的产生,否则由于不充分的时间分辨率将产生预回波。0027正如将在下面更详细论述的那样,所述滤波器组模块102负责确定使。

16、用哪一个视窗类型以及利用所确定的视窗类型来产生MDCT系数。在一个实施例中,所述滤波器组模块102还可以负责在使用短视窗类型来产生MDCT系数时执行编组。编组减少了与短视窗相关联的辅助信息量。每一个群组都包括一个或多个连续的短视窗,其比例因子是相同的。0028所述编码工具104包括用于频谱处理的一组任选工具。例如,所述编码工具可以包括临时噪声整形TNS工具和预测工具以执行预测编码,还包括强度/耦合工具和MS制立体声M/S工具以执行立体声相关编码。0029所述音质建模器106分析样值以确定听觉遮蔽曲线。听觉遮蔽曲线表示能在不可听的情况下被注入到各个样值的每一个中的最大噪声量。在这点上,什么是可听。

17、得到的是基于人类听觉的音质模型的。听觉遮蔽曲线充当期望噪声谱的估计。0030所述量化模块110负责为频率频谱数据选择最优比例因子。比例因子选择过程是基于根据遮蔽曲线计算出的容许的失真和根据依据编码所规定的比特率计算出的可容许比特数的。一旦选择了最优比例因子,所述量化模块110就使用它们来量化频率频谱数据。将所得到的量化后的频谱系数编组成比例因子带SFB。每个SFB都包括由相同比例因子的使用而产生的系数。0031所述霍夫曼编码模块114负责为量化后的频谱系数的每一个群组选择最优霍夫曼代码本并且利用最优霍夫曼代码本来执行霍夫曼编码操作。所得到的可变长度编码VLC,标识在编码中使用的代码本的数据、量。

18、化模块110所选的比例因子和一些其它信息都是随后被汇编到比特流中的。0032在一个实施例中,所述滤波器组模块102包括视窗类型确定器108、MDCT系数计算器112和短视窗编组确定器116。所述视窗类型确定器108负责确定为MDCT运算而使用的视窗类型。在一个实施例中,正如将在下面更详细地论述的那样,所述确定是利用适于使用说明书CN101968781A4/9页7长视窗的视窗类型判定方法来作出的。0033所述MDCT系数计算器112负责利用所确定的视窗类型来计算MDCT系数。在一个实施例中,所述MDCT系数计算器112首先利用假定的长视窗类型来计算初级MDCT系数。然后,如果视窗类型确定器108。

19、确定将要使用的视窗类型不是长视窗类型,则所述MDCT系数计算器112就利用所确定的视窗类型来重新计算MDCT系数。否则,初级MDCT系数就无需被重新计算。0034所述短视窗编组确定器116在使用短视窗类型时进行工作并且负责定义如何编组短视窗。在一个实施例中,所述短视窗编组确定器116根据与每个短视窗相关联的能量来执行短视窗的初级编组,将其划分为两个群组。正如在下面将更详细地论述的那样,如果两个初级群组中的任何一个过大的话,则就进一步将大的群组分成两个或多个群组。0035图29是根据本发明的各种实施例的、可以由图1的滤波器组模块102执行的过程的流程图。所述过程可以由处理逻辑来执行,所述处理逻辑。

20、可以包括硬件例如,电路、专用逻辑等等、软件比如运行在通用计算机系统或专用机上的或者上述两者的组合。对于软件实现的过程,流程图的描述使本领域的技术人员能开发这种包含能在适当配置的计算机执行来自于计算机可读介质的指令的计算机的处理器,所述计算机可读介质包括存储器上执行所述过程的指令的程序。计算机可执行指令可以用计算机程序设计语言来编写或者可以嵌入在固件逻辑中。如果用遵循所标识的标准的程序设计语言进行编写,则可以在各种硬件平台上执行这类指令并且可以接口连接于各种操作系统。另外,没有参考任何特定程序设计语言来描述本发明的实施例。将会认识到的是,可以使用各种程序设计语言来实现这里所描述的教导。此外,说到。

21、采取动作或导致结果的软件,可以采取一种形式或其它的形式例如,程序、步骤、过程、应用、模块、逻辑,这是本领域所公知的。这样的表达仅仅是计算机执行软件令该计算机的处理器执行动作或产生结果的简述方式。将会认识到的是,在不脱离本发明的范围的情况下,可以将更多或更少的操作并入到图29中所举例说明的过程当中,而且这里所示出和所述的块的排列并不暗指特定的顺序。0036图2是用于对频谱数据帧执行MDCT的过程200的一个实施例的流程图。0037参照图2,处理逻辑始于计算当前帧的初级MDCT系数集合和下一帧的初级MDCT系数集合处理块202。计算是在假定当前帧和下一帧两者的视窗类型都为长视窗类型的情况下执行的。。

22、所计算出的当前帧和下一帧的初级MDCT系数都被存储在缓冲器中。在一个实施例中,当前帧和下一帧是沿时间轴产生以使相邻帧彼此重叠例如,50重叠的样值的帧序列也称为块中的两个相邻帧。所述重叠抑制了在相邻帧之间的边界部分上发生的失真。0038在处理块204,处理逻辑利用当前帧的初级MDCT系数和下一帧的初级MDCT系数来确定当前帧的视窗类型。所述视窗类型确定是利用适于使用长视窗的视窗类型判定方法来作出的。下面将结合图3更详细地论述这类方法的一个实施例。0039在判定框206,处理逻辑确定所判定的当前帧的视窗类型是否是长视窗类型。如果不是,则处理逻辑利用所判定的视窗类型来计算当前帧的最终MDCT系数集合。

23、处理块208。如果是,则处理逻辑考虑将当前帧的初级MDCT系数作为最终系数集合处理块210。0040图3是视窗类型判定过程300的一个实施例的流程图。0041参照图3,处理逻辑始于确定在下一帧中是否存在从稳定信号到瞬态信号的转变说明书CN101968781A5/9页8的指示判定框302。在一个实施例中,这一确定是通过将与当前帧相关联的能量和与下一帧相关联的能量相比较来作出的。下面结合图4来更详细地论述用于检测帧当中从稳定信号到瞬态信号的转变的过程的一个实施例。0042如果在判定框302确定为肯定的,则处理逻辑就判定下一帧的初级视窗类型是短视窗类型处理块304。否则,处理逻辑判定下一帧的初级视窗。

24、类型是长视窗类型处理块306。0043此外,处理逻辑根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型处理块308。当前帧的视窗类型的确定适于使用长视窗类型。在一个实施例中,其中正如MPEG标准所定义的那样,每个不同的视窗类型后面可能跟着两个过渡视窗类型,处理逻辑选择使当前帧和后续帧中的短视窗的使用最小化的视窗类型。也就是说,所述MPEG标准提供了从每个不同视窗类型开始的两个过渡视窗类型,其中一个过渡视窗类型允许在当前帧或下一帧中使用短视窗,而另一个过渡视窗类型允许在当前帧或下一帧中使用长视窗。具体地说,所述MPEG标准允许下列转变0044A从长视窗类型到长视窗类型或者长短视窗类。

25、型;0045B从长短视窗类型到短视窗类型或者短长视窗类型;0046C从短长视窗类型到长视窗类型或者长短视窗类型;和0047D从短视窗类型到短视窗类型或短长视窗类型。0048因此,如果前一帧的视窗类型例如是短长视窗类型并且下一帧的初级视窗类型是长视窗类型,则处理逻辑就为当前帧选择长视窗类型,而不是选择其它的选项,即方便下一帧使用短视窗的长短视窗类型。0049下面将结合图5更详细地论述用于根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型的过程的一个实施例。0050上述视窗类型判定方法与MDCT计算相结合,直接对MDCT数据进行运算而不需要快速傅里叶变换FFT运算和计算知觉熵。另外,。

26、上述视窗类型判定方法适于使用长视窗,由此使短视窗的使用最小化。它只有当检测到从稳定信号到瞬态信号的转变的指示时才使用短视窗。0051图4是用于检测帧当中从稳定信号到瞬态信号的转变的指示的过程400的一个实施例的流程图。0052参照图4,处理逻辑始于计算当前帧的MDCT系数集合和下一帧的初级MDCT系数的集合处理块402。然后,处理逻辑在缓冲器中存储所计算出的MDCT系数集合。0053在处理块404,处理逻辑利用所计算出的当前帧的初级MDCT系数来计算当前帧的总能量。在一个实施例中,按如下计算当前帧的总能量0054CURRENT_TOTAL_ENERGYSUMCURRENT_COEFICURRE。

27、NT_COEFI/CFORI0TO1023,0055其中CURRENT_COEFI是当前帧中的第I个MDCT系数的数值,而C是用来防止总和溢出的常量例如,对于16位寄存器,C32767。0056在处理块406,处理逻辑利用所计算出的下一帧的初级MDCT系数来计算下一帧的总能量。同样,按如下计算下一帧的总能量0057NEXT_TOTAL_ENERGYSUMNEXT_COEFINEXT_COEFI/CFORI0TO1023,说明书CN101968781A6/9页90058其中NEXT_COEFI是下一帧中的第I个MDCT系数的数值,而C是用来防止总和溢出的常量。0059在处理块408,处理逻辑以对。

28、数方式缩放当前帧的总能量和下一帧的总能量。在一个实施例中,所述缩放是按如下完成的0060C_POWLOGCURRENT_TOTAL_ENERGY和N_POWLOGNEXT_TOTAL_ENERGY。0061在处理块410,处理逻辑通过将缩放后的下一帧的总能量减去缩放后的当前帧的总能量来计算梯度能量。0062在判定框412,处理逻辑确定梯度能量是否超出阈值例如,1。在一个实施例中,所述阈值是实验上定义的。如果在判定框412确定为肯定的,则处理逻辑就判定在下一帧中很可能发生到瞬态信号的转变处理块414。0063图5是用于根据下一帧的初级视窗类型和前一帧的视窗类型来确定当前帧的视窗类型的过程500的。

29、一个实施例的流程图。0064参照图5,处理逻辑从确定下一帧的初级视窗类型是否是长视窗类型开始判定框502。如果是,则处理逻辑进一步确定前一帧的视窗类型是长视窗类型还是短长视窗类型判定框504。如果是,则处理逻辑就判定当前帧的视窗类型是长视窗类型处理块506。如果不是,则处理逻辑就判定当前帧的视窗类型是短长视窗类型处理块508。0065如果在判定框502确定为否定的,即下一帧的初级视窗类型是短视窗类型,则处理逻辑进一步确定前一帧的视窗类型是长视窗类型还是短长视窗类型判定框510。如果是,则处理逻辑就判定当前帧的视窗类型是长短视窗类型处理块512。如果不是,则处理逻辑就判定当前帧的视窗类型是短视窗。

30、类型处理块514。0066在一个实施例中,如果判定为一帧使用短视窗类型,则利用短视窗编组来减少与短视窗相关联的辅助信息量。每个群组都包括一个或多个连续的短视窗,其比例因子是相同的。在一个实施例中,关于编组的信息被包含在所指定的比特流元素当中。在一个实施例中,关于编组的信息包括帧内的群组数量和每一帧中的短视窗的数量。0067图6是用于编组帧内的短视窗的过程600的一个实施例的流程图。0068参照图6,处理逻辑从识别帧内的第一类型的短视窗和第二类型的短视窗开始处理块602。短视窗的类型是根据与这个视窗相关联的能量来确定的。下面将结合图7更详细地论述用于确定短视窗类型的过程的一个实施例。0069在处。

31、理块604,处理逻辑调整其分类很可能不正确的短视窗的类型。在一个实施例中,如果其类型不匹配相邻视窗的类型并且相邻视窗具有相同的类型,则短视窗的分类很可能是不正确的。在一个实施例中,其中帧内短视窗的数量等于8,所述调整过程可以表示为0070FORWIN_INDEX1TO60071IFCANDIDATEWIN_INDEX_1CANDIDATEWIN_INDEX1,0072CANDIDATEWIN_INDEXCANDIDATEWIN_INDEX1,其中WIN_INDEX指的是帧内的短视窗的号码,而CANDIDATEWIN_INDEX、CANDIDATEWIN_INDEX1和CANDIDATEWIN_。

32、INDEX1分别表示当前视窗、前一视窗、和下一视窗的类型。0073在处理块606,处理逻辑将帧内的短视窗根据它们的类型编组成两个初级群组。下面将结合图8更详细地论述用于创建短视窗的两个初级群组的过程的一个实施例。说明书CN101968781A7/9页100074在判定框608,处理逻辑确定任何初级群组中的短视窗的数量是否超出阈值数量。在一个实施例中,阈值数量是一个实验上确定的常量。取决于阈值数量,可能没有一个群组是过大的,或者一个或两个初级群组是过大的。在另一个实施例中,所述阈值数量是其它初级群组中的短视窗的数量,并且如果一个初级群组中的短视窗的数量超出其它初级群组中的短视窗的数量则处理逻辑就。

33、判定它超出阈值。当使用比较时,可能没有一个初级群组是过大的,或一个初级群组可能是过大的。当群组过大时,很可能它将具有不同特性的短视窗组合起来。然后,这个群组的公共比例因子的使用可能导致音质的下降。0075如果处理逻辑在判定框608确定两个初级群组中的任何群组过大,则处理逻辑就进一步将大的初级群组划分成两个或多个最终群组处理块610。按这样的方法来完成最终群组,以便群组数量能够实现编码效率和音质之间的平衡。下面将结合图9更详细地描述用于执行短视窗的最终编组的过程的一个实施例。0076在处理块612,处理逻辑根据最终群组来确定帧内的群组的数量以及每个群组中的短视窗的数量。0077图7是用于确定短视。

34、窗的类型的过程700的一个实施例的流程图。0078参照图7,处理逻辑从计算帧内的每个短视窗的能量开始处理块702。在一个实施例中,按如下计算每个短视窗的能量0079WIN_ENERGYWIN_INDEXLOGSUMCOEFICOEFI05,其中WIN_INDEX标识帧内的当前短视窗的号码,WIN_ENERGY是所得到的能量,而COEFI是短视窗内的第I个频谱系数。0080接下来,处理逻辑找到具有最小能量的短视窗处理块704并且计算所述帧中的每个短视窗的偏移能量值处理块706。在一个实施例中,偏移能量值是通过将相应的短视窗的能量减去最小能量而计算出的。0081在处理块708,处理逻辑通过用所述帧。

35、内的所有偏移能量值的总和除以所述帧中的短视窗数量来计算所述帧的平均偏移能量值。0082在判定框710,处理逻辑为第一短视窗确定是否其偏移能量值超出平均偏移能量值。如果是,则处理逻辑判定该短视窗具有第一类型处理块712。如果不是,则处理逻辑判定该短视窗具有第二类型处理块714。0083接下来,处理逻辑确定在所述帧中是否有更多的未处理的视窗判定框715。如果是,则处理逻辑移动到下一个短视窗处理块716并且前进至判定框710。如果不是,则过程700结束。0084图8是用于创建短视窗的两个初级群组的过程800的一个实施例的流程图。0085参照图8,处理逻辑从初始化一组变量开始处理块802。例如,处理逻。

36、辑可以将前一视窗类型变量的值设置为第一短视窗类型,将初级群组数目变量的数值设置为1,并且将第一初级群组长度变量的数值设置为1。0086接下来,处理逻辑从所述帧中的第二短视窗起,开始处理短视窗。具体地说,处理逻辑确定当前短视窗的类型是否与第一短视窗类型相同判定框804。如果是,则处理逻辑使第一初级群组长度增加1处理块806,并且检查是否还有更多的短视窗仍未处理判定框808。如果还有更多的短视窗仍未处理,则处理逻辑移动到下一个短视窗处理块810并且返回到判定框804。如果没有还未处理的短视窗,则过程800结束。说明书CN101968781A8/9页110087如果处理逻辑在判定框804确定当前短视。

37、窗的类型与第一短视窗的类型不同,则处理逻辑就将初级群组数目设置为2处理块812并且通过将短帧的总数量减去第一初级群组的长度来计算第二初级群组的长度处理块814。0088图9是用于执行短视窗的最终编组的过程900的一个实施例的流程图。过程900根据MPEG标准进行操作,根据该标准所述帧中的短视窗的数量等于8。0089参照图9,处理逻辑从确定第一初级群组的长度是否超出阈值例如,4开始判定框902。如果是,则处理逻辑进一步确定第一初级群组的长度是否等于8判定框904。如果是,则处理逻辑将最终的群组数量设置为2,将第一最终群组的长度设置为第一初级群组的长度,并且将第二最终群组的长度设置为第二初级群组的。

38、长度处理块906。如果不是,则处理逻辑将群组的最终数量设置为3处理块908,将第三最终群组的长度设置为第二初级群组的长度处理块910,通过用初级第二群组的长度除以二来计算第二最终群组的长度所述计算可以用WINDOW_GROUP_LENGTH11来表示处理块912,并且通过将第一初级群组的长度减去第二最终群组的长度来计算第一最终群组的长度处理块914。0090如果处理逻辑在判定框902确定第一初级群组的长度没有超出阈值,则它就进一步确定第一初级群组的长度是否小于阈值判定框916。如果是,处理逻辑将群组的最终数量设置为3处理块917,通过用第二初级群组的长度除以二来计算第三最终群组的长度所述计算可。

39、以用WINDOW_GROUP_LENGTH21来表示处理块918,通过从第二初级群组的长度减去第三最终群组的长度来计算第二最终群组的长度处理块920,并且将第一最终群组的长度设置为第一初级群组的长度处理块922。0091如果处理逻辑在判定框916确定第一初级群组的长度不小于阈值,则它就将群组的数量设置为2并且将第一最终群组的长度设置为第一初级群组的长度并且将第二最终群组的长度设置为第二初级群组的长度处理块924。0092图10举例说明了帧的短视窗的编组的示例。0093参照图10,正在编组的短视窗的类型被示出为GROUPING_BITS11100011。短视窗的类型可以由图7的过程700来确定。。

40、根据短视窗的这些类型,可以首先通过图8的过程800将短视窗编组成两个初级群组,由此创建具有3个短视窗的第一初级群组和具有5个短视窗的第二初级群组。接下来,可以利用阈值数量4来执行图9的过程900,以进一步将第二初级群组划分成两个群组。其结果是,创建了三个最终群组,其中第一最终群组具有3个短视窗,第二最终群组具有3个短视窗,并且第三最终群组具有2个短视窗。0094图11的下列描述意在提供对适用于实现本发明的计算机硬件及其它工作的组件的概述,但是不意在限制应用环境。图11举例说明了适合用作为编码系统100或仅用作为图1的滤波器组模块102的计算机系统的一个实施例。0095所述计算机系统1140包括。

41、处理器1150、存储器1155和耦合于系统总线1165的输入/输出能力1160。所述存储器1155被配置成能存储当由处理器1150执行时运行这里所述的方法的指令。输入/输出1160还包含各种类型的计算机可读介质,包括可由处理器1150访问的任何类型的存储设备。本领域的技术人员将会立即认识到术语计算机可读媒体/介质还包含编码数据信号的载波。还将认识到的是所述系统1140是由存储器1155中所执行的操作系统软件来控制的。输入/输出和相关介质1160存储用于操作系说明书CN101968781A9/9页12统的可执行指令以及本发明的方法。图1中所示的滤波器组模块102可以是耦合于处理器1150的独立组。

42、件或者可以由处理器1150所执行的计算机可执行指令加以具体化。在一个实施例中,所述计算机系统1140可以是ISP因特网服务提供商的一部分或者通过输入/输出1160耦合于ISP以便在因特网上发送或接收图像数据。显而易见的是本发明不限于因特网访问以及因特网基于WEB的站点;还可以设想直接耦合的网络和专用网络。0096将会认识到的是,所述计算机系统1140是具有不同的体系结构的许多可能的计算机系统中的一个例子。典型的计算机系统将通常至少包括处理器、存储器和将存储器耦合于处理器的总线。本领域的技术人员将会立即认识到可以利用其它计算机系统结构来实施本发明,包括多处理器系统、微型计算机、大型计算机等等。本。

43、发明还可以在分布计算环境中实施,在所述分布计算环境中任务是由通过通信网络链接的远程处理设备来执行的。0097已经描述了在音频编码过程中进行视窗类型确定的各种不同的方面。尽管在这里已经举例说明和描述了特定实施例,但是本领域的技术人员将会认识到的是,计算以达到相同目的的任何方案都可以替代所示的特定实施例。本申请意在涵盖本发明的任何修改或变形。说明书CN101968781A1/10页13图1说明书附图CN101968781A2/10页14图2说明书附图CN101968781A3/10页15图3说明书附图CN101968781A4/10页16图4说明书附图CN101968781A5/10页17图5说明书附图CN101968781A6/10页18图6说明书附图CN101968781A7/10页19图7说明书附图CN101968781A8/10页20图8说明书附图CN101968781A9/10页21图9说明书附图CN101968781A10/10页22图10图11说明书附图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1