使用高效下混合的音频解码器和解码方法

文档序号:2832677阅读:1092来源:国知局
专利名称:使用高效下混合的音频解码器和解码方法
技术领域
本公开总体上涉及音频信号处理。
背景技术
数字音频数据压缩已变为音频工业中的重要技术。新格式已被引入,其在不需要使用传统技术所需的高数据带宽的情况下允许高质量的音频再现。AC-3以及更近的增强 AC-3(E-AC-3)编码技术已被高级电视系统委员会(ATSC)采用作为用于美国的高清晰度电视(HDTV)的音频服务标准。E-AC-3还应用于消费者媒体(数字视频盘)和直接卫星广播。 E-AC-3是感知编码的示例,并且向编码音频和元数据的位流提供用于编码的多个数字音频声道。存在对编码音频位流的高效解码的关注。例如,便携式设备的电池寿命主要受其主处理单元的能耗的限制。处理单元的能耗与其任务的计算复杂度密切相关。因此,降低便携式音频处理系统的平均计算复杂度应延长这种系统的电池寿命。术语x86通常被本领域技术人员理解为指示处理器指令集架构族,其起源追溯到 Intel 8086处理器。作为x86指令集架构的无处不在的结果,还存在对具有x86指令集架构的处理器或处理系统上的编码音频位流的高效解码的关注。许多解码器实施形式在本质上是通用的,而其他实施形式被特别设计用于嵌入式处理器。诸如AMD公司的Geode和新的Intel公司的Atom的新的处理器是使用x86指令集并且用在小型便携式设备中的32位和64位设计的示例。


图1示出了关于在执行时进行典型的AC-3解码处理的指令的伪代码100。图2A至2D以简化框图的形式示出了可以有利地使用一个或多个公共模块的一些不同的解码器配置。图3示出了前端解码模块的一个实施例的伪代码和简化框图。图4示出了关于前端解码模块的一个实施例的操作的简化数据流图。图5A示出了后端解码模块的一个实施例的伪代码和简化框图。图5B示出了后端解码模块的另一实施例的伪代码和简化框图。图6示出了关于后端解码模块的一个实施例的操作的简化数据流图。图7示出了关于后端解码模块的另一实施例的操作的简化数据流图。图8示出了关于诸如图7中所示的后端解码模块的处理的一个实施例的流程图。
图9示出了针对包括从5. 1到2. 0的下混合的非交叠变换的情况的、使用本发明的实施例的包括从5. 1到2. 0的下混合的五个块的处理的示例。图10示出了针对交叠变换的情况的、使用本发明的实施例的包括从5. 1到2. 0的下混合的五个块的处理的示例。图11示出了关于时域下混合的一个实施例的简化伪代码。图12示出了包括本发明的一个或多个特征的、包括至少一个处理器并且可以进行解码的处理系统的一个实施例的简化框图。
具体实施例方式概述本发明的实施例包括一种方法、一种装置、以及在一个或多个计算机可读有形介质中编码以进行动作的逻辑。具体实施例包括一种操作音频解码器以对包括音频数据的N. η声道的编码块的音频数据进行解码以形成包括解码音频的Μ. m声道的解码音频数据的方法,M > 1,η是编码音频数据中的低频效果声道的数目,而m是解码音频数据中的低频效果声道的数目。该方法包括接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据,该编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及对接受的音频数据解码。解码包括解封并解码频域指数和尾数数据;根据解封并解码的频域指数和尾数数据确定变换系数;逆变换频域数据并应用进一步处理以确定采样音频数据; 以及对于1 < N的情况根据下混合数据对确定的采样音频数据的至少一些块进行时域下混合。Al、Bl和Cl至少之一为真Al是解码包括逐块地确定应用频域下混合还是时域下混合,并且如果对于特定块确定应用频域下混合,则针对该特定块应用频域下混合,Bl是时域下混合包括测试下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据下混合数据直接应用时域下混合,以及Cl是该方法包括识别N. η输入声道的一个或多个无贡献声道,无贡献声道是对 Μ. m声道没有贡献的声道,并且对于所识别的一个或多个无贡献声道,该方法不进行频域数据的逆变换并且不应用进一步处理。本发明的具体实施例包括一种存储解码指令的计算机可读存储介质,这些解码指令在由处理系统的一个或多个处理器执行时使处理系统进行包括音频数据的N. η声道的编码块的音频数据的解码以形成包括解码音频的Μ. m声道的解码音频数据,M > 1,η是编码音频数据中的低频效果声道的数目,而m是解码音频数据中的低频效果声道的数目。这些解码指令包括在执行时使得接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据的指令,该编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及在执行时使得对接受的音频数据解码的指令。在执行时使得解码的指令包括在执行时使得解封并解码频域指数和尾数数据的指令;在执行时使得根据解封并解码的频域指数和尾数数据确定变换系数的指令;在执行时使得逆变换频域数据并应用进一步处理以确定采样音频数据的指令;以及在执行时使得确定是否M < N的指令和在M<N的情况下在执行时使得根据下混合数据对确定的采样音频数据的至少一些块进行时域下混合的指令。A2、B2和C2至少之一为真A2是在执行时使得解码的指令包括在执行时使得逐块地确定应用频域下混合还是时域下混合的指令,以及在对于特定块确定应用频域下混合的情况下在执行时使得应用频域下混合的指令,B2是时域下混合包括测试下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据下混合数据直接应用时域下混合,以及C2是在执行时使得解码的指令包括识别N. η输入声道的一个或多个无贡献声道,无贡献声道是对Μ. m声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道, 该方法不进行频域数据的逆变换并且不应用进一步处理。具体实施例包括一种用于处理音频数据以对包括音频数据的N. η声道的编码块的音频数据解码以形成包括解码音频的Μ. m声道的解码音频数据的装置,M > 1,η是编码音频数据中的低频效果声道的数目,而m是解码音频数据中的低频效果声道的数目。该装置包括用于接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据的部件, 该编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及用于对接受的音频数据解码的部件。用于解码的部件包括用于解封并解码频域指数和尾数数据的部件;用于根据解封并解码的频域指数和尾数数据确定变换系数的部件;用于逆变换频域数据并用于应用进一步处理以确定采样音频数据的部件;以及对于M < N的情况用于根据下混合数据对确定的采样音频数据的至少一些块进行时域下混合的部件。A3、 Β3和C3至少之一为真A3是用于解码的部件包括用于逐块地确定应用频域下混合还是时域下混合的部件,以及用于应用频域下混合的部件,如果对于特定块确定应用频域下混合,则用于应用频域下混合的部件针对该特定块应用频域下混合,Β3是用于时域下混合的部件进行下混合数据是否相对先前使用的下混合数据改变的测试,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据下混合数据直接应用时域下混合, 以及C3是该装置包括用于识别N. η输入声道的一个或多个无贡献声道的部件,无贡献声道是对Μ. m声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道,该装置不进行频域数据的逆变换并且不应用进一步处理。具体实施例包括一种用于处理包括编码音频数据的N. η声道的音频数据以形成包括解码音频的Μ. m声道的解码音频数据的装置,M > l,n = 0或1是编码音频数据中的低频效果声道的数目,而m = 0或1是解码音频数据中的低频效果声道的数目。该装置包括 用于接受包括由编码方法编码的编码音频数据的N. η声道的音频数据的部件,该编码方法包括变换数字音频数据的N. η声道,使得逆变换和进一步处理能够无混叠误差地恢复时域样本,形成并封装频域指数和尾数数据,以及形成并封装与频域指数和尾数数据相关的元数据,该元数据可选地包括与瞬时预噪声处理相关的元数据;以及用于对接受的音频数据解码的部件。用于解码的部件包括一个或多个用于前端解码的部件以及一个或多个用于后端解码的部件。用于前端解码的部件包括用于解封元数据,用于解封并用于解码频域指数和尾数数据的部件。用于后端解码的部件包括如下部件该部件用于根据解封并解码的频域指数和尾数数据确定变换系数;用于逆变换频域数据;用于应用窗口化以及交叠相加操作以确定采样音频数据;用于根据与瞬时预噪声处理相关的元数据应用任何所需的瞬时预噪声处理解码;以及用于根据下混合数据进行时域下混合,下混合被配置为在M < N的情况下根据下混合数据对数据的至少一些块进行时域下混合。A4、B4和C4至少之一为真A4是用于后端解码的部件包括用于逐块地确定应用频域下混合还是时域下混合的部件,以及用于应用频域下混合的部件,如果对于特定块确定应用频域下混合,则用于应用频域下混合的部件针对该特定块应用频域下混合,B4是用于时域下混合的部件进行下混合数据是否相对先前使用的下混合数据改变的测试,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据下混合数据直接应用时域下混合, 以及C4是该装置包括用于识别N. η输入声道的一个或多个无贡献声道的部件,无贡献声道是对Μ. m声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道,用于后端解码的部件不进行频域数据的逆变换并且不应用进一步处理。具体实施例包括一种对包括编码音频数据的N. η声道的音频数据解码以形成包括解码音频的Μ. m声道的解码音频数据的系统,M^Ln是编码音频数据中的低频效果声道的数目,而m是解码音频数据中的低频效果声道的数目。该系统包括一个或多个处理器;以及耦合到一个或多个处理器的存储子系统。该系统将接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据,该编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及进一步对接受的音频数据解码,其包括解封并解码频域指数和尾数数据;根据解封并解码的频域指数和尾数数据确定变换系数;逆变换频域数据并应用进一步处理以确定采样音频数据;以及对于M < N的情况根据下混合数据对确定的采样音频数据的至少一些块进行时域下混合。Α5、Β5和C5至少之一为真Α5是解码包括逐块地确定应用频域下混合还是时域下混合,并且如果对于特定块确定应用频域下混合,则针对该特定块应用频域下混合,Β5是时域下混合包括测试下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据下混合数据直接应用时域下混合,以及C5是该方法包括识别N. η输入声道的一个或多个无贡献声道,无贡献声道是对 Μ. m声道没有贡献的声道,并且对于所识别的一个或多个无贡献声道,该方法不进行频域数据的逆变换并且不应用进一步处理。在系统实施例的一些形式中,接受的音频数据具有编码数据帧的位流的形式,并且存储子系统被配置为具有指令,这些指令在由处理系统的一个或多个处理器执行时使得对接受的音频数据解码。系统实施例的一些形式包括经由网络链接联网的一个或多个子系统,每个子系统包括至少一个处理器。在其中Al、A2、A3、A4或A5为真的一些实施例中,确定应用频域下混合还是时域下混合包括确定是否存在任何瞬时预噪声处理,以及确定N个声道中的任何声道是否具有不同的块类型,使得仅针对在N个声道中具有同一块类型、没有瞬时预噪声处理、以及M< N 的块,应用频域下混合。在其中A1、A2、A3、A4或A5为真,并且其中编码方法中的变换使用交叠变换并且进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据的一些实施例中,(i)针对特定块应用频域下混合包括确定前一块的下混合是否通过时域下混合进行,并且如果前一块的下混合通过时域下混合进行,则对将与该特定块的解码数据交叠的前一块的数据应用时域下混合(或者伪时域中的下混合),以及(ii)针对特定块应用频域下混合包括确定前一块的下混合是否通过频域下混合进行,并且如果前一块的下混合通过频域下混合进行, 则较之前一块的下混合不通过频域下混合进行的情况以不同的方式处理该特定块。在其中Bl、B2、B3、B4或B5为真的一些实施例中,使用至少一个x86处理器,其指令集包括具有向量指令的单指令多数据流扩展(SSE),并且时域下混合包括在一个或多个 x86处理器中的至少一个上运行向量指令。在其中Cl、C2、C3、C4或C5为真的一些实施例中,η = 1且m = 0,使得针对低频效果声道不进行逆变换并且不应用进一步处理。此外,在其中C为真的一些实施例中,包括编码块的音频数据包括限定下混合的信息,并且其中识别一个或多个无贡献声道使用该限定下混合的信息。此外,在其中C为真的一些实施例中,识别一个或多个无贡献声道进一步包括识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少15dB,则该声道具有相对于该另一声道不明显的内容量。对于某些情况,如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少18dB,则该声道具有相对于该另一声道不明显的内容量,而对于其他应用,如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少25dB,则该声道具有相对于该另一声道不明显的内容量。在一些实施例中,根据以下标准之一对编码音频数据编码AC_3标准、E-AC-3标准、与E-AC-3标准向后兼容的标准,MPEG-2AAC标准以及HE-AAC标准。在本发明的一些实施例中,编码方法中的变换使用交叠变换,并且进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据。在本发明的一些实施例中,编码方法包括形成并封装与频域指数和尾数数据相关的元数据,该元数据可选地包括与瞬时预噪声处理和下混合相关的元数据。 具体实施例可以提供这些方面、特征或优点中的全部或一些,或者不提供。具体实施例可以提供一个或多个其他方面、特征或优点,通过这里的附图、说明书和权利要求,其中的一个或多个其他方面、特征或优点对于本领域技术人员是显见的。对编码流解码本发明的实施例被描述为用于对已根据扩展AC-3(E-AC_3)标准编码为编码位流的音频进行解码。在高级电视系统委员会(ATSC)在2009年12月1日在互联网的World Wide Web 上的 www~dot~atsc~dot~org/standards/a_52b~dot~pdf (其中"dot"表示实际的 Web 地址中的句点(“.”))处发布的 “Digital Audio Compression Standard(AC-3, E-AC-3) ” Revision B, Document A/52B 中详细描述了 E-AC-3 和更早的 AC-3 标准。然而, 本发明不限于对以E-AC-3编码的位流进行解码,并且可以应用于对根据另一编码方法编码的位流进行解码的解码器,以及这种解码的方法、解码装置、进行这种解码的系统、在执行时使得一个或多个处理器进行这种解码的软件、和/或其上存储这种软件的有形存储介质。例如,本发明的实施例还适用于对已根据MPEG-2ACC(IS0/IEC 13818-7)和MPEG-4音频(IS0/IEC 14496-3)标准编码的音频进行解码。MPEG-4音频标准包括高效率AAC版本 1(HE-AAC vl)和高效率AAC版本2(HE-AAC v2)编码,在这里两者被共同称为HE-ACC。AC-3 和 E-AC-3 还被称为 DOLBY DIGITAL 和 DOLBY DIGITAL PLUS。并入了一些附加的、兼容的改进的HE-ACC的版本还被称为DOLBY PULSE。这些是Dolby Laboratories Licensing Corporation公司,S卩本发明的受让人的商标,并且可以在一个或多个司法管辖区中注册。E-AC-3与AC-3兼容并且包括附加功能。x86 架构术语x86通常被本领域技术人员理解为指示处理器指令集架构族,其起源追溯至 Intel 8086处理器。该架构已在来自诸如htel、Cyrix、AMD、VIA的公司以及许多其他公司的处理器中实施。通常,该术语被理解为意指与化切1 80386处理器的32位指令集的二进制兼容性。现今(2010年初),x86架构普遍存在于桌面型和笔记型计算机中,并且在服务器和工作站中日渐增加。大量软件支持该平台,包括诸如MS-DOS、Windows, Linux、BSD、 Solaris和Mac OS X的操作系统。如这里使用的,术语x86意指x86处理器指令集架构,其还支持单指令多数据 (SIMD)指令集扩展(SSE)。SSE是1999年在Intel的PentiumIII系列处理器中引入的针对原始的x86架构的单指令多数据(SIMD)指令集扩展,并且目前在许多销售商制造的x86 架构中是常见的。AC-3 和 E-AC-3 位流多声道音频信号的AC-3位流由帧组成,帧表示跨越所有编码声道的音频信号的 1536个脉冲编码调制(PCM)样本的恒定时间间隔。提供高达五个主声道和可选地标为“.1” 的低频效果(LFE)声道,即提供音频的高达5. 1声道。每个帧具有固定尺寸,其仅取决于采样速率和编码数据速率。简言之,AC-3编码包括使用交叠变换(具有50%交叠的Kaiser Bessel导出 (KBD)窗口的改进离散余弦变换(MDCT))将时间数据转化为频率数据。频率数据被感知编码,用于压缩数据以形成帧的压缩位流,每个帧包括编码音频数据和元数据。每个AC-3帧是独立实体,除了用于将时间数据转换为频率数据的MDCT中固有的变换交叠以外不与先前的帧共享数据。SI (同步信息)和BSI (位流信息)字段在每个AC-3帧的起点处。SI和BSI字段描述了位流配置,其包括采样速率、数据速率、编码声道的数目以及若干个其他系统级元素。对于每个帧还存在两个CRC (循环冗余码)字,一个在起点处,一个在终点处,其提供错误检测的手段。在每个帧内存在六个音频块,每个音频块表示音频数据的每个编码声道的256个 PCM样本。音频块包含块切换标志、耦合坐标、指数、位分配参数和尾数。在帧内允许数据共享,使得块0中出现的信息可以在后继块中重用。可选的辅助数据字段位于帧的终点处。该字段允许系统设计者将私用控制或状态信息嵌入到AC-3位流中用于系统范围的传送。
16
E-AC-3保留了六个256系数变换的AC_3帧结构,同时还允许由一个、两个和三个 256系数变换块组成的较短的帧。这使得能够在大于6401ApS的数据速率下进行音频输送。 每个E-AC-3帧包括元数据和音频数据。E-AC-3允许比AC-3的5. 1大得多的声道数目,特别地,E_AC_3现今通常允许运载 6. 1和7. 1音频,并且允许运载至少13. 1声道以支持例如未来的多声道音频音轨。通过使主音频节目位流与高达八个附加依赖子流相关联,获得了超出5. 1的附加声道,所有附加依赖子流被复用到一个E-AC-3位流中。这允许主音频节目传递AC-3的5. 1声道格式,而附加声道容量来自依赖位流。这意味着5. 1声道版本以及各种传统的下混合总是可用的, 并且通过使用声道置换处理消除了矩阵减法引起的编码产物。通过承载七个或更多的独立音频流,多节目支持总是可用的,每个独立音频流具有可能的相关联的依赖子流,以增加超出5. 1声道的每个节目的声道运载。AC-3使用相对短的变换和简单的标量量化以对音频素材进行感知编码。E-AC-3 在与AC-3兼容的同时,提供改进的频谱分辨率、改进的量化和改进的编码。通过E-AC-3,编码效率相对于AC-3增加以允许有利地使用较低的数据速率。这是通过如下方式实现的使用改进的滤波器组将时间数据转换为频域数据、使用改进的量化、使用增强的声道耦合、使用频谱扩展、以及使用被称为瞬时预噪声处理(TPNP)的技术。除了用于将时间数据转换为频率数据的交叠变换MDCT之外,E-AC-3针对静止音频信号使用自适应混合变换(AHT)。AHT包括具有交叠Kaiser Bessel导出(KBD)窗口的 MDCT,对于静止信号,该变换跟随有具有非窗口化的、非交叠的类型II离散余弦变换(DCT) 形式的次级块变换。因此,当存在具有静止特性的音频时,AHT在现有的AC-3MDCT/KBD滤波器组之后添加第二级DCT以将六个256系数变换块转换为具有增加的频率分辨率的单个 1536系数混合变换块。该增加的频率分辨率与6维向量量化(VQ)和增益自适应量化(GAQ) 组合以提高例如“难于编码的”信号的一些信号的编码效率。VQ用于高效地对需要较低精度的频带编码,而GAQ在需要较高精度量化时提供较高的效率。通过使用具有相位保持的声道耦合也获得了提高的编码效率。该方法推广了使用在解码时重新构成每个声道的高频部分的高频单复合声道的AC-3的声道耦合方法。添加相位信息和在位流中发送的频谱幅度信息的编码器控制处理改进了该处理的保真度,从而单复合声道可以扩展到比以前可能的频率低的频率。这减少了编码的有效带宽,并且因此提高了编码效率。E-AC-3还包括频谱扩展。频谱扩展包括将高频变换系数替换为频率上转变的低频谱片段。转变的片段的频谱特性通过变换系数的频谱调制,并且还通过使整形噪声分量与转变的低频谱片段混合而与原形匹配。E-AC-3包括低频效果(LFE)声道。这是具有有限(< 120Hz)带宽的可选的单声道,其旨在在相对于全带宽声道的+IOdB的水平处再现。可选的LFE声道允许针对低频声音提供高声压水平。例如AC-3和HE-AAC的其他编码标准也包括可选的LFE声道。另外的用于在低数据速率处提高音频质量的技术是使用下文进一步描述的瞬时预噪声处理。AC-3 解码在典型的AC-3解码器实施形式中,为了使存储器和解码器延时需要尽可能小,在
17一系列嵌套循环中对每个AC-3帧解码。第一步骤建立帧对准。这牵涉找到AC-3同步字,并且随后确认CRC错误检测字指示没有错误。一旦找到帧同步,则对BSI数据解封以确定诸如编码声道的数目的重要的帧信息。声道之一可以是LFE声道。编码声道的数目在这里标为N.n,其中η是LFE声道的数目,而N是主声道的数目。在目前使用的编码标准中,n = 0或1。在未来,可能存在η >1 的情况。解码中的下一步骤是对六个音频块中的每个解封。为了使输出脉冲编码调制数据(PCM)缓冲区的存储器需要最小,一次一个地对音频块解封。在许多实施形式中,在每个块时段的终点处,PCM结果被复制到输出缓冲区,该输出缓冲区用于硬件编码器中的实时操作,典型地进行双缓冲或循环缓冲用于数模转换器(DAC)的直接中断访问。AC-3解码器音频块处理可以被分为两个不同的级,其在这里被称为输入和输出处理。输入处理包括所有位流解封和编码声道操纵。输出处理主要指的是逆MDCT变换的窗口化和交叠相加级。这种区别是因为,AC-3解码器生成的主输出声道的数目(这里标为1)不一定与位流中编码的输入主声道的数目(这里标为N,N彡1)匹配,典型地,但是不一定,N彡Μ。 通过使用下混合,解码器可以接受具有任何数目N的编码声道的位流并且产生任意数目M 的输出声道,1。注意,通常输出声道的数目在这里标为M.m,其中M是主声道的数目, 而m是LFE输出声道的数目。在现今的应用中,m = 0或1。在未来有可能m>l。注意,在下混合中,并非所有编码声道包括在输出声道中。例如,在5. 1到立体声的下混合中,LFE声道信息通常被放弃。因此,在一些下混合中,η = 1且m = 0,就是说,不存在输出LFE声道。图1示出了关于在执行时进行典型的AC-3解码处理的指令的伪代码100。AC-3解码中的输入处理典型地开始于解码器对固定音频块数据解封时,固定音频块数据是位于音频块的起点处的参数和标志的集合。该固定数据包括诸如块切换标志、耦合信息、指数和位分配参数的项目。术语“固定数据”指的是如下事实这些位流元素的字尺寸是预先已知的,并且因此不需要可变长度解码处理来恢复这些元素。指数构成固定数据区域中的单个最大字段,因为它们包括来自每个编码声道的所有指数。根据编码模式,在AC-3中,对于每个尾数可能存在一个指数,每个声道可能存在高达253个尾数。不同于将所有这些指数解封到本地存储器,许多解码器实施形式保存指向指数字段的指针,并且在需要它们时一次一个声道地对它们解封。一旦固定数据被解封,许多已知的AC-3解码器开始处理每个编码声道。首先,从输入帧解封关于给定声道的指数。随后典型地执行位分配计算,该位分配计算取得指数和位分配参数并且计算每个封装尾数的字尺寸。随后典型地从输入帧解封尾数。尾数被缩放以提供适当的动态范围控制,并且如果需要,撤消耦合操作,并且随后通过指数进行解归一化。最后,计算逆变换以确定预交叠相加数据,其中的数据被称为“窗口域”,并且结果被下混合到适当的下混合缓冲区中用于随后的输出处理。在一些实施形式中,关于各个声道的指数被解封到256样本长的缓冲区中,其被称为“MDCT缓冲区”。这些指数随后出于位分配目的被编组为多达50个组。每个组中的指数的数目朝向较高的音频频率增加,大致地遵循对心理声学关健组建模的对数算法。
对于这些位分配组中的每个,指数和位分配参数被组合以生成关于该组中的每个尾数的尾数字尺寸。这些字尺寸存储在M样本长的组缓冲区中,最宽的位分配组由对个频点(frequency bin)构成。一旦已计算了字尺寸,则从输入帧解封相应的尾数并且将其原位存储回到组缓冲区中。这些尾数被缩放并且通过相应的指数被解归一化,并且被写入, 例如原位写入回到MDCT缓冲区中。在所有组均被处理并且所有尾数被解封之后,MDCT缓冲区中的任何剩余位置被典型地写零。执行,例如在MDCT缓冲区中原位执行逆变换。该处理的输出,即窗口域数据,随后可以根据下混合参数被下混合到适当的下混合缓冲区中,下混合参数根据,例如根据元数据从预先限定的数据取回的元数据而确定。一旦完成输入处理并且通过窗口域下混合数据全面生成下混合缓冲区,则解码器可以执行输出处理。对于每个输出声道,下混合缓冲区及其相应的1 样本长的半块延迟缓冲区被窗口化并组合以产生256个PCM输出样本。在包括解码器和一个或多个DAC的硬件声音系统中,这些样本被取整到DAC字宽度并且复制到输出缓冲区。一旦该操作完成,假设对于下一音频块的适当重建需要50%的交叠信息,则将下混合缓冲区的一半复制到其相应的延迟缓冲区。E-AC-3 解码本发明的具体实施例包括一种操作音频解码器以对包括编码音频数据的数目标为N. η的声道的音频数据解码,例如,操作E-AC-3音频解码器以对E-AC-3编码音频数据解码,以形成包括解码音频的Μ. m声道的解码音频数据的方法,n = 0或l,m = 0或1,并且 M彡1。η = 1指示输入LFE声道,m = 1指示输出LFE声道。M < N指示下混合,M > N指示上混合。该方法包括接受包括编码音频数据的N. η声道的音频数据,由编码方法进行编码,例如该编码方法包括使用交叠变换来变换数字音频数据的N个声道,形成并封装频域指数和尾数数据,以及形成并封装与频域指数和尾数数据相关联的元数据,该元数据可选地包括与瞬时预噪声处理相关的元数据(例如,通过E-AC-3编码方法)。这里描述的一些实施例被设计用于接受根据E-AC-3标准或者根据与E-AC-3标准向后兼容的标准编码的编码音频数据,并且可以包括超过5个编码主声道。如下文将更详细描述的,该方法包括对接受的音频数据解码,解码包括解封元数据并且解封并解码频域指数和尾数数据;根据解封并解码的频域指数和尾数数据确定变换系数;逆变换频域数据;应用窗口化和交叠相加以确定采样音频数据;根据与瞬时预噪声处理相关的元数据应用任何所需的瞬时预噪声处理解码;以及在M < N的情况下,根据下混合数据进行下混合。下混合包括测试下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用下混合,并且如果未改变,则根据下混合数据直接应用下混合。在本发明的一些实施例中,解码器使用至少一个x86处理器,x86处理器执行包括向量指令的单指令多数据(SIMD)流扩展(SSE)指令。在这些实施例中,下混合包括在一个或多个x86处理器中的至少一个上运行向量指令。在本发明的一些实施例中,用于E-AC-3音频(其可能是AC-3音频)的解码方法被分为可以被应用超过一次(即,在不同的解码器实施形式中例示超过一次)的操作模块。在包括解码的方法的情况下,解码被分为前端解码(FED)操作的集合,以及后端解码(BED) 操作的集合。如下文将详细描述的,前端解码操作包括将AC-3或E-AC-3位流的帧的频域指数和尾数数据解封并解码为关于帧的解封并解码的频域指数和尾数数据,以及帧的伴随元数据。后端解码操作包括确定变换系数,逆变换所确定的变换系数,应用窗口化和交叠相加操作,应用任何所需的瞬时预噪声处理解码,以及在输出声道少于位流中的编码声道的情况下应用下混合。本发明的一些实施例包括一种存储指令的计算机可读存储介质,这些指令在由处理系统的一个或多个处理器执行时使得处理系统进行包括编码音频数据的N. η声道的音频数据的解码,以形成包括解码音频的M.m声道的解码音频数据,1。在现今的标准中, η = 0或1且m = 0或1,但是本发明不限于此。这些指令包括在执行时使得接受包括由编码方法(例如,AC-3或E-ACD编码的编码音频数据的N. η声道的音频数据的指令。这些指令进一步包括在执行时使得对接受的音频数据解码的指令。在一些这样的实施例中,接受的音频数据具有编码数据的帧的AC-3或E-ACHMi 流的形式。在执行时使得对接受的音频数据解码的指令被分为可重用的指令模块的集合, 其包括前端解码(FED)模块和后端解码(BED)模块。前端解码模块包括在执行时使得位流的帧的频域指数和尾数数据解封并解码为关于帧的解封并解码的频域指数和尾数数据,以及帧的伴随元数据的指令。后端解码模块包括在执行时使得确定变换系数,逆变换,应用窗口化和交叠相加操作,应用任何所需的瞬时预噪声处理解码,以及在输出声道少于输入编码声道的情况下应用下混合的指令。图2A至2D以简化框图的形式示出了可以有利地使用一个或多个公共模块的一些不同的解码器配置。图2A示出了用于AC-3或E-AC-3编码5. 1音频的示例E-AC-3解码器 200的简化框图。当然,在提到框图中的框时使用术语“框”与音频数据的块不同,后者指的是音频数据的数量。解码器200包括前端解码(FED)模块201,其接受AC-3或E-AC-3帧并且逐帧地进行帧的元数据的解封并且将帧的音频数据解码为频域指数和尾数数据。解码器 200还包括后端解码(BED)模块203,其从前端解码模块201接受频域指数和尾数数据并且将其解码为高达5. 1声道的PCM音频数据。将解码器分解为前端解码模块和后端解码模块是一种设计选择,不是必要的划分。这种划分在若干个替选配置中提供了具有公共模块的益处。FED模块对于这些替选配置可以是公共的,并且如同FED模块所执行的,许多配置共同具有帧的元数据的解封以及将帧的音频数据解码为频域指数和尾数数据。作为替选配置的一个示例,图2B示出了用于E-AC-3编码5. 1音频的E_AC_3解码器/转换器210的简化框图,该E-AC-3解码器/转换器21010对AC-3或E-AC-3编码5. 1 音频两者解码,并且还将音频的高达5. 1声道的E-AC-3编码帧转换为高达5. 1声道的AC-3 编码帧。解码器/转换器210包括前端解码(FED)模块201,其接受AC-3或E-AC-3帧并且逐帧地进行帧的元数据的解封并且将帧的音频数据解码为频域指数和尾数数据。解码器/ 转换器210还包括后端解码(BED)模块203,其与解码器200的BED模块203相同或相似, 并且从前端解码模块201接受频域指数和尾数数据并且将其解码为高达5. 1声道的PCM音频数据。解码器/转换器210还包括元数据转换器模块205以及后端编码模块207,该元数据转换器模块205转换元数据,而后端编码模块207从前端解码模块201接受频域指数和尾数数据并且在不超过AC-3的可能的6401ApS的最大数据速率下将数据编码为音频数据的高达5. 1声道的AC-3帧。作为替选配置的一个示例,图2C示出了 E-AC-3解码器的简化框图,该E_AC_3解码器对编码音频的高达5. 1声道的AC-3帧解码,并且还对音频的高达7. 1声道的E-AC-3 编码帧解码。解码器220包括帧信息分析模块221,其解封BSI数据并识别帧和帧类型并且将帧提供给适当的前端解码器元件。在包括一个或多个处理器以及其中存储在执行时使得执行模块功能的指令的存储器的典型实施形式中,前端解码模块的多个例示,以及后端解码模块的多个例示可以操作。在E-AC-3解码器的一些实施例中,BSI解封功能与前端解码模块分离以查看BSI数据。这提供了在各种替选实施形式中使用的公共模块。图2C示出了具有适于音频数据的高达7. 1声道的这种架构的解码器的简化框图。图2D示出了具有这种架构的5. 1解码器240的简化框图。解码器240包括帧信息分析模块231、前端解码模块243和后端解码模块M5。这些FED和BED模块在结构上可与用在图2C的架构中的FED 和BED模块相似。返回图2C,帧信息分析模块221将高达5. 1声道的独立的AC-3/E_AC_3编码帧的数据提供给前端解码模块223,该前端解码模块223接受AC-3或E-AC-3帧并且逐帧地进行帧的元数据的解封并且将帧的音频数据解码为频域指数和尾数数据。该频域指数和尾数数据由后端解码模块225接受,该后端解码模块225与解码器200的BED模块203相同或相似,并且从前端解码模块223接受频域指数和尾数数据并且将数据解码为高达5. 1声道的 PCM音频数据。附加的声道数据的任何依赖的AC-3/E-AC-3编码帧被提供给另一前端解码模块227,该前端解码模块227与其他FED模块相似,并且因此解封帧的元数据并且将帧的音频数据解码为频域指数和尾数数据。后端解码模块2 从FED模块227接受数据并且将该数据解码为任何附加声道的PCM音频数据。PCM声道映射器模块231用于组合来自各个 BED模块的解码数据以提供高达7. 1声道的PCM数据。如果存在超过5个编码主声道,S卩,N > 5的情况,例如,存在7. 1编码声道,则编码位流包括高达5. 1编码声道的独立帧以及编码数据的至少一个依赖帧。在关于该情况的软件实施例中,例如,包括存储用于执行的指令的计算机可读介质的实施例,这些指令被布置为多个5. 1声道解码模块,每个5. 1声道解码模块包括各自的前端解码模块的例示和各自的后端解码模块的例示。多个5. 1声道解码模块包括在执行时使得对独立帧解码的第一 5. 1声道解码模块,以及用于各个依赖帧的一个或多个其他声道解码模块。在一些这样的实施例中,这些指令包括指令的帧信息分析模块,这些指令在执行时使得解封来自每个帧的位流信息(BSI)字段以识别帧和帧类型并且将识别的帧提供给适当的前端解码器模块例示;以及指令的声道映射器模块,这些指令在执行时并且在N > 5的情况下使得组合来自各个后端解码模块的解码数据以形成解码数据的N个主声道。用于操作AC-3/E-AC-3双解码器转换器的方法本发明的一个实施例具有双解码器转换器(DDC)的形式,该双解码器转换器将均具有高达5. 1声道的标为“主”和“关联”的两个AC-3/E-AC-3输入位流解码为PCM音频, 并且在转换的情况下,将主音频位流从E-AC-3转换为AC-3,并且在解码的情况下,对主位流解码并且如果存在关联位流。该双解码器转换器可选地使用从关联音频位流提取的混合元数据对两个PCM输出混合。
双解码器转换器的一个实施例执行操作解码器的方法,该方法执行解码和/或转换高达两个AC-3/E-AC-3输入位流中包括的处理。另一实施例具有包括指令(例如,其上的软件指令)的有形存储介质的形式,这些指令在由处理系统的一个或多个处理器执行时, 使得处理系统执行解码和/或转换高达两个AC-3/E-AC-3输入位流中包括的处理。AC-3/E-AC-3双解码器转换器的一个实施例具有六个子部件,其中一些子部件包括公共子部件。这些模块是解码器转换器该解码器转换器被配置为在被执行时将AC-3/E-AC-3输入位流 (高达5. 1声道)解码为PCM音频,和/或将输入位流从E-AC-3转换为AC-3。该解码器转换器具有三个主要子部件,并且可以实施上图2B中所示的实施例210。这些主要子部件是前端解码该FED模块被配置为在执行时将AC-3/E-AC-3位流的帧解码为原始频域音频数据及其伴随元数据。后端解码该BED模块被配置为在执行时完成由FED模块发起的解码处理的剩余部分。特别地,该BED模块将音频数据(具有尾数和指数格式)解码为PCM音频数据。后端编码该后端编码模块被配置为在执行时使用来自FED的音频数据的六个块对AC-3帧编码。该后端编码模块还被配置为在执行时使E-AC-3元数据同步、分解E-AC-3 元数据并且使用所包括的元数据转换器模块将AC-3/E-AC-3转换为杜比数字(Dolby Digital)元数据。5. 1解码器该5. 1解码器被配置为在执行时将AC-3/E-AC-3输入位流(高达5. 1 声道)解码为PCM音频。该5. 1解码器还可选地输出混合元数据用于由外部应用使用以使两个AC-3/E-AC-3位流混合。该解码器模块包括两个主要子部件如上文所述的FED模块以及如上文所述的BED模块。图2D中示出了示例5. 1解码器的框图。帧信息该帧信息模块被配置为在执行时解析AC-3/E-AC-3帧并且解封其位流信息。作为解封处理的一部分对帧执行CRC校验。缓冲区描述符该缓冲区描述符模块包含关于缓冲操作的AC-3、E-AC_3和PCM缓冲区描述和功能。采样速率转换器该采样速率转换器模块是可选的,并且被配置为在执行时以因子2对PCM音频上采样。外部混合器该外部混合器模块是可选的,并且被配置为在执行时使用在关联音频节目中提供的混合元数据将主音频节目和关联音频节目混合为单个输出音频节目。前端解码模块设计前端解码模块根据AC-3的方法,并且根据包括关于静止信号的AHT数据解码、 E-AC-3的增强声道耦合以及频谱扩展的E-AC-3附加解码方面,来对数据解码。在具有有形存储介质的形式的实施例的情况下,前端解码模块包括有形存储介质中存储的软件指令,这些软件指令在由处理系统的一个或多个处理器执行时使得进行这里详细描述的关于前端解码模块的操作的动作。在硬件实施形式中,前端解码模块包括被配置为在操作中进行这里详细描述的关于前端解码模块的操作的动作的元件。在AC-3解码中,逐块解码是可能的。对于E-AC-3,第一音频块,即帧的音频块0包括所有6个块的AHT尾数。因此,不使用典型的逐块编码,而是一次处理若干个块。然而, 当然针对每个块进行实际数据的处理。
在一个实施例中,为了使用统一的解码方法/解码器架构而与是否使用AHT无关, FED模块逐个声道地进行两次轮回(pass)。第一轮回包括逐块地解封元数据以及保存指向封装的指数和尾数数据的存储位置的指针,而第二轮回包括使用保存的指向封装的指数和尾数的指针,以及逐个声道地解封并解码指数和尾数数据。图3示出了前端解码模块的一个实施例的简化框图,该前端解码模块例如被实施为存储器上存储的指令集,该指令集在执行时使得进行FED处理。图3还示出了关于两轮回前端解码模块300的第一轮回的指令的伪代码,以及关于两轮回前端解码模块300的第二轮回的指令的伪代码。FED模块包括如下模块,每个模块包括指令,一些这样的指令是限定性的,其中限定结构和参数声道该声道模块限定了存储器中的用于表示音频声道的结构并且提供了用于解封并解码来自AC-3或E-AC-3位流的音频声道的指令。位分配该位分配模块提供了用于计算掩蔽曲线的指令并且计算关于编码数据的位分配。位流操作该位流操作模块提供了用于从AC-3或E-AC-3位流解封数据的指令。指数该指数模块限定了存储器中的用于表示指数的结构并且提供了被配置为在执行时解封并解码来自AC-3或E-AC-3位流的指数的指令。指数和尾数该指数和尾数模块限定了存储器中的用于表示指数和尾数的结构并且提供了被配置为在执行时解封并解码来自AC-3或E-AC-3位流的指数和尾数的指令。矩阵化该矩阵化模块提供了被配置为在执行时支持矩阵化的声道的解矩阵化的指令。辅助数据该辅助数据模块限定了 FED模块中使用的用于进行FED处理的辅助数据结构。尾数该尾数模块限定了存储器中的用于表示指数的结构并且提供了被配置为在执行时解封并解码来自AC-3或E-AC-3位流的尾数的指令。自适应混合变换该AHT模块提供了被配置为在执行时解封并解码来自E-ACH^i 流的自适应混合变换数据的指令。音频帧该音频帧模块限定了存储器中的用于表示音频帧的结构并且提供了被配置为在执行时解封并解码来自AC-3或E-AC-3位流的音频帧的指令。增强耦合该增强耦合模块限定了存储器中的用于表示增强耦合声道的结构并且提供了被配置为在执行时解封并解码来自AC-3或E-AC-3位流的增强耦合声道的指令。增强耦合通过提供相位和混沌(chaos)信息来扩展E-AC-3位流中的传统耦合。音频块该音频块模块限定了存储器中的用于表示音频块的结构并且提供了被配置为在执行时解封并解码来自AC-3或E-AC-3位流的音频块的指令。频谱扩展该频谱扩展模块提供了对E-AC-3位流中的频谱扩展解码的支持。耦合该耦合模块限定了存储器中的用于表示耦合声道的结构并且提供了被配置为在执行时解封并解码来自AC-3或E-AC-3位流的耦合声道的指令。图4示出了关于图3的前端解码模块300的一个实施例的操作的简化数据流图, 其描述了图3中所示的伪代码和子模块元件如何协作以执行前端解码模块的功能。功能元件意味着执行处理功能的元件。每个这样的元件可以是硬件元件,或者处理系统以及包括在执行时执行功能的指令的存储介质。位流解封功能模块403接受AC-3/E-AC-3帧并且生成关于标准和/或AHT位分配功能元件405的位分配参数,该位分配功能元件405产生用于位流解封的另外的数据以最终生成关于所包括的标准/增强解耦功能元件407的指数和尾数数据。功能元件407生成关于所包括的重新矩阵化功能元件409的指数和尾数数据以进行任何所需的重新矩阵化。功能元件409生成关于所包括的频谱扩展解码功能元件411的指数和尾数数据以进行任何所需的频谱扩展。功能元件407至411使用通过功能元件403 的解封操作而获得的数据。前端解码的结果是指数和尾数数据以及附加的解封音频帧参数和音频块参数。更详细地参照图3中所示的第一轮回和第二轮回伪代码,第一轮回指令被配置为在执行时从AC-3/E-AC-3帧解封元数据。特别地,第一轮回包括解封BSI信息,以及解封音频帧信息。对于从块0开始到块5的每个块(每个帧6个块),解封固定数据,并且对于每个声道,保存指向位流中的封装指数的指针,解封指数,并且保存封装尾数驻留在位流中的位置。计算位分配,并且基于位分配,可以跳过尾数。第二轮回指令被配置为在执行时从帧解码音频数据以形成尾数和指数数据。对于从块0开始的每个块,解封包括加载所保存的指向封装指数的指针,以及解封由此指向的指数,计算位分配,加载所保存的指向封装尾数的指针,以及解封由此指向的尾数。解码包括执行标准和增强解耦以及生成频谱扩展组,以及为了独立于其他模块,将得到的数据传输到存储器中,例如相对轮回的内部存储器的外部存储器,从而得到的数据可以由例如BED 模块的其他模块访问。为了便利,该存储器被称为“外部”存储器,尽管如对于本领域技术人员将明显的,其可以是用于所有模块的单个存储器结构的一部分。在一些实施例中,对于指数解封,在第一轮回期间解封的指数未被保存,以便使存储器传输最小。如果AHT用于声道,则从块0解封指数并且将其复制到编号为1至5的其他五个块。如果AHT未被用于声道,则保存指向封装指数的指针。如果声道指数策略是重用指数,则使用保存的指针再次解封指数。在一些实施例中,对于耦合尾数解封,如果AHT用于耦合声道,则AHT耦合声道尾数的所有六个块在块0中解封,并且针对作为耦合声道的每个声道重新生成的抖动 (dither)产生不相关的抖动。如果AHT未被用于耦合声道,则保存指向耦合尾数的指针。 这些保存的指针用于重新解封给定块中的关于作为耦合声道的每个声道的耦合尾数。后端解码模块设计后端解码(BED)模块可操作用于取得频域指数和尾数数据并且将其解码为PCM音频数据。基于用户选择的模式、动态范围压缩和下混合模式呈递PCM音频数据。在一些实施例中,其中前端解码模块在分立于前端模块的工作存储器的存储器 (称其为外部存储器)中存储指数和尾数数据,BED模块使用逐块的帧处理以使下混合和延迟缓冲区需要最小,并且为了与前端模块的输出兼容,使用来自外部存储器的传输以访问要处理的指数和尾数数据。在具有有形存储介质的形式的实施例的情况下,后端解码模块包括有形存储介质中存储的软件指令,这些软件指令在由处理系统的一个或多个处理器执行时使得进行这里详细描述的关于后端解码模块的操作的动作。在硬件实施形式中,后端解码模块包括被配置为在操作中进行这里详细描述的关于后端解码模块的操作的动作的元件。
24
图5A示出了后端解码模块500的一个实施例的简化框图,该后端解码模块500被实施为存储器上存储的指令集,该指令集在执行时使得进行BED处理。图5A还示出了关于后端解码模块500的指令的伪代码。BED模块500包括如下模块,每个模块包括指令,一些这样的指令是限定性的动态范围控制该动态范围控制模块提供了在执行时使得进行解码信号的动态范围控制的指令,其包括应用增益范围调节以及应用动态范围控制。变换该变换模块提供了在执行时使得进行逆变换的指令,其包括进行改进离散余弦逆变换(IMDCT),该IMDCT包括进行用于计算逆DCT变换的预旋转,进行用于计算逆 DCT变换的后旋转,以及确定快速傅立叶逆变换(IFFT)。瞬时预噪声处理该瞬时预噪声处理模块提供了在执行时使得进行窗口化,以及交叠/相加操作以根据逆变换样本重建输出样本的指令。窗口化和交叠相加具有延迟缓冲区的该窗口化和交叠相加模块提供了在执行时使得进行窗口化和交叠相加操作以根据逆变换的样本重建输出样本。时域(TD)下混合该TD下混合模块提供了在执行时使得按照需要针对少数声道进行时域下混合的指令。图6示出了关于图5A的后端解码模块500的一个实施例的操作的简化数据流图, 其描述了图5A中所示的代码和子模块元件如何协作以执行后端解码模块的功能。增益控制功能元件603接受来自前端解码模块300的指数和尾数数据并且根据元数据应用任何所需的动态范围控制、对白归一化和增益范围调节。得到的指数和尾数数据由通过指数对尾数解归一化的功能元件605接受,该功能元件605生成用于逆变换的变换系数。逆变换功能元件607将IMDCT应用于变换系数以生成进行预窗口化和交叠相加的时间样本。这些预交叠相加时域样本在这里被称为“伪时域”样本,并且这些样本处于这里所称的伪时域中。 这些样本由窗口化和交叠相加功能元件609接受,该功能元件609通过将窗口化和交叠相加操作应用于伪时域样本来生成PCM样本。由瞬时预噪声处理功能元件611根据元数据应用任何瞬时预噪声处理。如果例如在元数据中或者以其他形式指定,则得到的后瞬时预噪声处理PCM样本由下混合功能元件613下混合到PCM样本的数目为M. m的输出声道。再次参照图5A,关于BED模块处理的伪代码包括对于数据的每个块,从外部存储器传输关于声道的块的尾数和指数数据,以及对于每个声道根据元数据应用任何所需的动态范围控制、对白归一化和增益范围调节;通过指数对尾数解归一化以生成用于逆变换的变换系数;针对变换系数计算IMDCT以生成伪时域样本;将窗口化和交叠相加操作应用于伪时域样本;根据元数据应用任何瞬时预噪声处理;以及如果需要,时域下混合到PCM样本的数目为M.m的输出声道。图5A中所示的解码的实施例包括进行增益调整,诸如根据元数据应用对白归一化偏移,以及根据元数据应用动态范围控制增益因子。在频域中以尾数和指数的形式提供数据的级处执行这些增益调整是有利的。增益改变可能随时间变化,并且一旦发生逆变换和窗口化/交叠相加操作,在频域中进行的这些增益改变导致了平滑的交叉渐变。瞬时预噪声处理较之AC-3,E-AC-3编码和解码被设计为在更低的数据速率下操作和提供更好的音频质量。在较低的数据速率下,可能不利地影响编码音频的音频质量,特别是相对难于编码的瞬时素材。这种对音频质量的影响主要归因于可用于准确地对这些类型的信号编码的有限数目的数据位。瞬变现象的编码产物呈现为降低瞬时信号的清晰度,以及由于编码量化误差引起的“瞬时预噪声”产物,其遍及编码窗口抹上可听噪声。如上文以及在图5和6中描述的,BED提供了瞬时预噪声处理。E_AC_3编码包括瞬时预噪声处理编码,用于通过将适当的音频片段替换为使用位于瞬时预噪声之前的音频合成的音频,减少在对包含瞬变现象的音频编码时可能引入的瞬时预噪声产物。使用时间缩放合成来处理该音频,从而其时长增加,使得其具有用于替换包含瞬时预噪声的音频的适当长度。使用音频场景分析和最大相似度处理来分析音频合成缓冲区并且随后进行时间缩放,使得其时长增加到足以替换包含瞬时预噪声的音频。长度增加的合成音频用于替换瞬时预噪声并且交叉渐变到紧接瞬变现象的位置之前的现有瞬时预噪声中以确保从合成音频到原始编码音频数据的平滑过渡。通过使用瞬时预噪声处理,即使对于禁止块切换的情况,瞬时预噪声的长度仍可以急剧地减少或移除。在一个E-AC-3编码器实施例中,针对时域数据执行关于瞬时预噪声处理工具的时间缩放合成分析和处理以确定元数据信息,其例如包括时间缩放参数。该元数据信息连同编码位流一起由解码器接受。传送的瞬时预噪声元数据用于对解码音频执行时域处理以减少或移除由低数据速率下的低位速率音频编码引入的瞬时预噪声。E-AC-3编码器对于每个检测到的瞬变现象,基于音频内容执行时间缩放合成分析并且确定时间缩放参数。时间缩放参数作为附加元数据连同编码音频数据一起传送。在E-AC-3解码器处,接受作为接受的E-AC-3元数据的一部分的E_AC_3元数据中提供的最优时间缩放参数以用在瞬时预噪声处理中。该解码器使用从E-AC-3元数据获得的所传送的时间缩放参数,执行音频缓冲区拼接和交叉渐变。通过使用最优时间缩放信息并且通过适当的交叉渐变处理应用该信息,可以在解码中急剧地减少或移除由低位速率音频编码引入的瞬时预噪声。因此,瞬时预噪声处理使用最接近地类似原始内容的音频片段来覆写预噪声。瞬时预噪声处理指令在执行时维持四个块的延迟缓冲区以在复制中使用。在其中发生覆写的情况下,瞬时预噪声处理指令在执行时使得对覆写的预噪声执行交叉渐变(渐强和渐弱)。下混合N. η表示E-AC-3位流中编码的声道的数目,其中N是主声道的数目,而η = 0或1 是LFE声道的数目。常常期望将N个主声道下混合到数目较小的(标为Μ)的输出主声道。 本发明的实施例支持从N下混合到M个声道(Μ<Ν)。上混合也是可能的,在该情况下M >
N0因此,在最常见的实施形式中,音频解码器实施例可操作用于将包括编码音频数据的N. η声道的音频数据解码为包括解码音频的Μ. m声道的解码音频数据,并且M > l,n、 m分别指示输入、输出中的LFE声道的数目。下混合是M < N的情况并且根据下混合系数的集合包括在M < N的情况中。频域下混合对比时域下混合下混合可以在逆变换之前完全在频域中进行,在逆变换之后,但是在交叠相加块处理的情况下在窗口化和交叠相加操作之前,在时域中进行,或者在窗口化和交叠相加操作之后,在时域中进行。
频域(FD)下混合比时域下混合高效得多。其效率源自例如如下事实下混合步骤之后的任何处理步骤仅针对剩余数目的声道进行,该数目在下混合之后通常是较低的。因此,下混合步骤之后的所有处理步骤的计算复杂度至少按输入声道与输出声道的比例而减作为示例,考虑5. 0声道到立体声的下混合。在该情况下,任何后继处理步骤的计算复杂度将按约5/2 = 2. 5的因子减小。时域(TD)下混合用在典型的E-AC-3解码器中并且用在上文描述的并且通过图5A 和6图示的实施例中。典型的E-AC-3解码器使用时域下混合的原因有三具有不同块类型的声道根据将要编码的音频内容,E-AC-3编码器可以在两个不同的块类型,即短块和长块之间选择对音频数据进行分割。典型地使用长块对缓慢改变音频数据的谐波进行分割和编码,而以短块对瞬时信号进行分割和编码。结果,短块和长块的频域表示固有地不同并且不能在频域下混合操作中组合。仅在解码器中撤消块类型特有的编码步骤之后,声道才可以混合在一起。因此,在块切换变换的情况下,使用不同的部分逆变换处理,并且两个不同的变换的结果不能直接组合,直到紧接窗口化级之前。然而,用于首先将短长度变换数据转换为较长的频域数据的方法是已知的,在该情况下,下混合可以在频域中进行。然而,在最公知的解码器实施形式中,根据下混合系数在逆变换之后进行下混合。上混合如果输出主声道的数目高于输入主声道的数目,即M > N,则时域混合方法是有利的,因为这使上混合步骤朝向处理终点移动,减少了处理中的声道数目。TPNP经历瞬时预噪声处理(TPNP)的块可以不在频域中下混合,因为TPNP在时域中操作。TPNP需要PCM数据的高达四个块的历史(10M个样本),其必须针对其中应用TPNP的声道呈现。因此有必要切换到时域下混合以填补PCM数据历史并且执行预噪声替换。使用频域和时域下混合的混合下混合发明人认识到大部分编码音频信号中的声道对于超过90%的时间使用同一块类型。这意味着,假设不存在TPNP,较高效的频域下混合将针对典型的编码音频中的超过90%的数据工作。剩余的10%或更少的数据将需要时域下混合,如典型的现有技术的 E-AC-3解码器中发生的那样。本发明的实施例包括下混合方法选择逻辑,用于逐块地确定将应用哪个下混合方法,以及时域下混合逻辑和频域下混合逻辑,用于适当地应用特定的下混合方法。因此方法实施例包括逐块地确定应用频域下混合还是时域下混合。下混合方法选择逻辑操作用于确定应用频域下混合还是时域下混合,并且包括确定是否存在任何瞬时预噪声处理,以及确定N个声道中的任何声道是否具有不同的块类型。该选择逻辑仅针对在N个声道中具有同一块类型,没有瞬时预噪声处理,以及M < N的块,确定将应用频域下混合。图5B示出了后端解码模块520的一个实施例的简化框图,该后端解码模块520被实施为存储器上存储的指令集,该指令集在执行时使得进行BED处理。图5B还示出了关于后端解码模块520的指令的伪代码。BED模块520包括图5A中所示的仅使用时域下混合的模块,以及如下附加模块,每个附加模块包括指令,一些这样的指令是限定性的下混合方法选择模块,检查⑴块类型的改变;(ii)是否不存在真实的下混合(M < N),而是存在上混合,以及(iii)块是否经历TPNP,并且如果此三者均不为真,则选择频域下混合。该模块逐块地确定应用频域下混合还是时域下混合。频域下混合模块,在通过指数对尾数解归一化之后,进行频域下混合。注意,频域下混合模块还包括时域到频域的过渡逻辑模块,其检查前一块是否使用时域下混合,在该情况下如下文更详细描述的那样以不同的方式处置块。此外,该过渡逻辑模块还应对与特定的不规律地重新发生的事件相关联的处理步骤,例如诸如声道渐弱的节目改变。FD到TD下混合过渡逻辑模块,检查前一块是否使用频域下混合,在该情况下如下文更详细描述的那样以不同的方式处置块。此外,该过渡逻辑模块还应对与特定的不规律地重新发生的事件相关联的处理步骤,例如诸如声道渐弱的节目改变。此外,在包括混合下混合,即FD和TD下混合两者的实施例中,根据关于当前块的一个或多个条件,图5A中的模块的行为可能是不同的。参照图5B的伪代码,后端解码方法的一些实施例包括,在从外部存储器传输块的帧的数据之后,确定FD下混合还是TD下混合。对于FD下混合,对于每个声道,该方法包括(i)应用动态范围控制和对白归一化,但是如下文讨论的,禁止增益范围调节;(ii)通过指数对尾数解归一化;(iii)进行FD下混合;以及(iv)确定是否存在渐弱声道或者前一块是否通过时域下混合进行下混合,在该情况下如下文更详细描述的那样以不同的方式处置块。对于TD下混合的情况,并且也对于FD下混合数据,该处理包括,对于每个声道(i)在前一块进行FD下混合的情况下以不同的方式处理将进行TD下混合的块,以及还处置任何节目改变;(ii)确定逆变换;(iii)进行窗口化交叠相加;以及在TD下混合的情况下,(iv) 执行任何TPNP并且下混合到适当的输出声道。图7示出了简单的数据流图。框701对应于下混合方法选择逻辑,其针对三个条件进行测试块类型改变、TPNP或者上混合,并且如果任何条件为真,则将数据流引导至TD 下混合分支721,该TD下混合分支721包括723中的FD下混合过渡逻辑,用于以不同方式处理紧随通过FD下混合处理的块出现的块,节目改变处理,以及725中的通过指数对尾数解归一化。框721之后的数据流由公共处理框731处理。如果下混合方法选择逻辑框701 的测试确定块用于FD下混合,则数据流分支到FD下混合处理711,该FD下混合处理711包括频域下混合处理713,其禁止增益范围调节,并且对于每个声道,通过指数对尾数解归一化并且进行FD下混合;以及TD下混合过渡逻辑框715,确定前一块是否通过TD下混合处理,以及以不同的方式处理该块,并且还检测和处置任何节目改变,诸如声道渐弱。TD下混合过渡框715之后的数据流去往同一公共处理框731。公共处理框731包括逆变换和任何进一步时域处理。进一步时域处理包括撤消增益范围调节,以及窗口化和交叠相加处理。如果块来自TD下混合框721,则进一步时域处理进一步包括任何TPNP处理和时域下混合。图8示出了关于诸如图7中所示的后端解码模块的处理的一个实施例的流程图。 该流程图如下划分,对于相似的各个功能数据流框使用与图7中相同的附图标记下混合方法选择逻辑部分701,其中使用逻辑标志FD_dmx,当为1时指示频域下混合用于该块;TD下混合逻辑部分721,包括FD下混合过渡逻辑以及节目改变逻辑部分723,用于以不同的方式处理紧随通过FD下混合处理的块出现的块并且进行节目改变处理,以及用于针对每个输入声道通过指数对尾数解归一化的部分。框721之后的数据流由公共处理部分731处理。如果下混合方法选择逻辑框701确定块用于FD下混合,则数据流分支到FD下混合处理部分711,该FD下混合处理部分711包括频域下混合处理,其禁止增益范围调节,并且对于每个声道,通过指数对尾数解归一化并且进行FD下混合;以及TD下混合过渡逻辑部分 715,用于针对前一块的每个声道确定是否存在声道渐弱或者确定前一块是否通过TD下混合处理,以及以不同的方式处理该块。TD下混合过渡部分715之后的数据流去往同一公共处理逻辑部分731。公共处理逻辑部分731包括针对每个声道进行逆变换以及任何进一步时域处理。进一步时域处理包括撤消增益范围调节,以及窗口化和交叠相加处理。如果FD_ dmx是0,则指示TD下混合,731中的进一步时域处理还包括任何TPNP处理和时域下混合。注意,在FD下混合之后,在TD下混合过渡逻辑部分715中,在817中,输入声道的数目N被设定为与输出声道的数目M相同,从而处理的剩余部分,例如公共处理逻辑部分 731中的处理仅针对下混合数据进行。这减少了计算量。当然,当从被TD下混合的块(该 TD下混合在部分715中示出为819)过渡时,针对下混合中牵涉的所有这些N个输入声道, 从前一块开始进行数据的时域下混合。过渡处置在解码中,有必要具有音频块之间的平滑过渡。E-AC-3和许多其他编码方法使用重叠变换,例如,50%交叠MDCT。因此,当处理当前块时,存在与前一块的50%交叠,并且此外,将存在与时域中的后一块的50%交叠。本发明的一些实施例使用包括交叠相加缓冲区的交叠相加逻辑。当处理当前块时,交叠相加缓冲区包含来自前一音频块的数据。由于有必要具有音频块之间的平滑过渡,因此包括用于以不同方式处置从TD下混合到FD下混合的过渡以及从FD下混合到TD下混合的过渡的逻辑。图9示出了五声道音频的标为块k,k+l,…,k+4的五个块的处理的示例,五声道如常见的包括左、中心、右、左环绕和右环绕声道,其分别标为L、C、R、LS和RS,并且使用下式下混合到立体声混合标为L' = aC+bL+cLS的左输出,以及标为R' = aC+bR+cRS 的右输出。图9假设使用非交叠变换。每个矩形表示块的音频内容。从左到右的水平轴表示块k,…,k+4,而从顶至底的竖直轴表示数据的解码进程。假设块k通过TD下混合进行处理,块k+Ι和k+2通过FD下混合进行处理,而块k+3和k+4通过TD下混合进行处理。如所见的,对于每个TD下混合块,不会发生下混合,直至朝向底部的时域下混合之后,其后内容是下混合L'和R'声道,而对于FD下混合块,在频域下混合之后频域中的左和右声道已被下混合,并且C、LS和RS声道数据被忽略。由于不存在块之间的交叠,因此当从TD下混合切换到FD下混合或者从FD下混合切换到TD下混合时不需要特殊情况处置。图10描述了 50%交叠变换的情况。假设通过使用交叠相加缓冲区的交叠相加解码来进行交叠相加。在该图中,当数据块被示为两个三角形时,下面的左三角形是来自前一块的交叠相加缓冲区中的数据,而上面的右三角形示出了来自当前块的数据。关于TD下混合到FD下混合过渡的过渡处置
29
考虑作为紧随TD下混合块的FD下混合块的块k+Ι。在TD下混合之后,交叠相加缓冲区包含对于当前块需要包括的来自上一块L、C、R、LS和RS数据。还包括已被FD下混合的当前块k+Ι的贡献。为了适当地确定用于输出的下混合PCM数据,需要包括当前块的数据和前一块的数据两者。为此,前一块的数据需要被冲掉,并且由于其仍未下混合,因此在时域中下混合。两个贡献需要相加以确定用于输出的下混合PCM数据。该处理包括在图 7和8的TD下混合过渡逻辑715中,并且通过图5B中所示的FD下混合模块中包括的TD下混合过渡逻辑中的代码进行。在图8的TD下混合过渡逻辑部分715中总结了其中进行的处理。更详细地,关于TD下混合到FD下混合的过渡的过渡处置包括 通过将零馈送到交叠相加逻辑中并且进行窗口化和交叠相加来冲掉交叠缓冲区。从交叠相加逻辑复制冲掉的输出。这是下混合之前的特定声道的前一块的PCM数据。 交叠缓冲区现在包含零。 对来自交叠缓冲区的PCM数据进行时域下混合以生成前一块的TD下混合的PCM数据。 对来自当前块的新数据进行频域下混合。进行逆变换并且在FD下混合和逆变换之后将新数据馈送到交叠相加逻辑中。利用新数据进行窗口化和交叠相加等以生成当前块的FD下混合的PCM数据。 使TD下混合和FD下混合的PCM数据相加以生成PCM输出。注意,在替选实施例中,假设在前一块中不存在TPNP,交叠相加缓冲区中的数据被下混合,则对下混合输出声道执行交叠相加操作。这避免了针对每个前一块的声道进行交叠相加操作的需要。此外,如上文针对AC-3解码描述的,当下混合缓冲区及其相应的1 样本长的半块延迟缓冲区被使用并且被窗口化并被组合以产生256个PCM输出样本时,由于延迟缓冲区仅为1 个样本而非256个样本,因此下混合操作是较简单的。该方面降低了过渡处理固有的峰值计算复杂度。因此,在一些实施例中,对于数据被TD下混合的块之后的被FD下混合的特定块,过渡处理包括将伪时域中的下混合应用于将与该特定块的解码数据交叠的前一块的数据。关于FD下混合到TD下混合过渡的过渡处置考虑作为紧随FD下混合块k+2的TD下混合块的块k+3。由于前一块是FD域下混合块,因此例如TD下混合之前的前级处的交叠相加缓冲区包含左和右声道中的下混合数据,并且没有其他声道中的数据。当前块的贡献未被下混合,直至TD下混合之后。为了适当地确定用于输出的下混合PCM数据,需要包括当前块的数据和前一块的数据两者。为此, 前一块的数据需要被冲掉。当前块的数据需要在时域中进行下混合并且加到被冲掉的逆变换数据以确定用于输出的下混合PCM数据。该处理包括在图7和8的FD下混合过渡逻辑 723中,并且通过图5B中所示的FD下混合过渡逻辑模块中的代码进行。在图8的FD下混合过渡逻辑部分723中总结了其中进行的处理。更详细地,假设存在关于每个输出声道的输出PCM缓冲区,关于FD下混合到TD下混合的过渡的过渡处置包括 通过将零馈送到交叠相加逻辑中并且进行窗口化和交叠相加来冲掉交叠缓冲区。将输出复制到输出PCM缓冲区中。冲掉的数据是前一块的FD下混合的PCM数据。交叠缓冲区现在包含零。 进行当前块的新数据的逆变换以生成当前块的预下混合数据。将该新的时域数据(在变换之后)馈送到交叠相加逻辑中。 进行窗口化和交叠相加,如果需要进行TPNP,并且利用来自当前块的新数据进行TD下混合以生成当前块的TD下混合的PCM数据。 使TD下混合和FD下混合的PCM数据相加以生成PCM输出。除了从时域下混合到频域下混合的变换,在时域下混合过渡逻辑和节目改变处置器中处置节目改变。新涌现的声道被自动地包括在下混合中并且因此不需要任何特殊处理。在新节目中不再出现的声道需要渐弱。如针对FD下混合情况的图8中的部分715中所示,这通过冲掉渐变声道的交叠缓冲区来进行。该冲掉是通过将零馈送到交叠相加逻辑并且进行窗口化和交叠相加而进行的。注意,在所示流程图中并且在一些实施例中,频域下混合逻辑部分711包括对于所有声道禁止作为频域下混合的一部分的可选的增益范围调节特征。声道可以具有不同的增益范围调节参数,这些参数将引起声道频谱系数的不同的缩放,因此阻碍了下混合。在替选实施形式中,FD下混合逻辑部分711被修改,使得所有增益中的最小值用于执行(频域)下混合声道的增益范围调节。具有改变的下混合系数并且需要显性交叉渐变的时域下混合下混合可能产生若干个问题。在不同的环境中调用不同的下混合等式,因此可能需要基于信号条件动态地改变下混合系数。允许针对最优结果调节下混合系数的元数据参数是可用的。因此,下混合系数可以随时间改变。当从第一下混合系数集合变为第二下混合系数集合时,数据应从第一集合交叉渐变到第二集合。当在频域中进行下混合时,再者在许多解码器实施形式中,例如在诸如图1中所示的现有技术的AC-3解码器中,在窗口化和交叠相加操作之前进行下混合。在窗口化和交叠相加之前在频域中或在时域中进行下混合的优点在于,作为交叠相加操作的结果,存在固有的交叉渐变。因此,在许多已知的AC-3解码器和解码方法中,其中在逆变换之后在窗口域中进行下混合,或者在混合下混合实施形式中在频域中进行下混合,不存在显性交叉渐变操作。在时域下混合和瞬时预噪声处理(TPNP)的情况下,例如在7. 1解码器中,将存在由于节目改变问题引起的瞬时预噪声处理解码中一个块延迟。因此,在本发明的实施例中, 当在时域中进行下混合并且使用TPNP时,在窗口化和交叠相加之后进行时域下混合。使用时域下混合的情况下的处理顺序是进行例如DMCT的逆变换,进行窗口化和交叠相加,进行任何瞬时预噪声处理解码(无延迟),以及随后进行时域下混合。在该情况下,时域下混合需要前一下混合数据和当前下混合数据(例如,下混合系数或下混合表格)的交叉渐变以确保使下混合系数中的任何改变平滑。一个选择是因此进行交叉渐变操作以计算得到的系数。使用由c[i]表示的混合系数,其中i表示256个时域样本的时间索引,从而范围是i = 0,…,255。正窗口函数由 w2[i]表示,使得对于i = 0,…,255,w2[i]+w2[255-i] = 1。预更新混合系数由c。ld表示并且更新混合系数由cMW表示。将应用的交叉渐变操作是对于i = 0,-,255, c[i] = w2[i] · cnew+w2[255-i] · Coldo在通过系数交叉渐变操作的每个轮回之后,旧的系数被更新为新的系数,如Cold 一 Cnew°在下一轮回中,如果系数未被更新,则c[i] = W2[i] · cnew+w2[255-i] · Cnew = Cnew。换言之,旧系数集合的影响完全消失!发明人观察到在许多音频流和下混合情形中,混合系数不常改变。为了提高时域下混合处理的性能,时域下混合模块的实施例包括进行测试以确定下混合系数是否相对它们的先前值改变,如果没改变,则进行下混合,此外如果它们已改变,则根据预先选择的正的窗口函数进行下混合系数的交叉渐变。在一个实施例中,该窗口函数与窗口化和交叠相加操作中使用的窗口函数相同。在另一实施例中,使用不同的窗口函数。图11示出了关于下混合的一个实施例的简化的伪代码。关于该实施例的解码器使用执行SSE向量指令的至少一个x86处理器。下混合包括确定新的下混合数据是否相对于旧的下混合数据不变。如果是这样,则下混合包括在一个或多个x86处理器中的至少一个上设置运行的SSE向量指令,并且使用不变的下混合数据进行下混合,其包括执行至少一个运行的SSE向量指令。否则,如果新的下混合数据相对旧的下混合数据改变,则该方法包括通过交叉渐变操作确定交叉渐变下混合数据。排除处理不需要的数据在一些下混合情形中,存在至少一个对下混合输出没有贡献的声道。例如,在许多从5. 1音频下混合到立体声的情况中,不包括LFE声道,从而下混合是5. 1至2. 0。从下混合排除LFE声道对于编码格式是固有的,如AC-3的情况中的那样,或者由元数据控制,如 E-AC-3的情况中的那样。在E-AC-3中,ifemixlevcode参数确定LFE声道是否包括在下混合中。当ifemixlevcode参数是0时,LFE声道不包括在下混合中。如前所述,下混合可以在频域中进行,在逆变换之后但是在窗口化和交叠相加操作之前在伪时域中进行,或者在逆变换之后并且在窗口化和交叠相加操作之后在时域中进行。例如由于TPNP的存在,因此在许多已知的E-AC-3解码器中,并且在本发明的一些实施例中,进行纯时域下混合,并且这是有利的;由于交叠相加操作提供固有的交叉渐变,这对于下混合系数改变的情况是有利的,因此在许多AC-3解码器中并且在本发明的一些实施例中,进行伪时域下混合,并且这是有利的;并且当条件允许时在本发明的一些实施例中进行频域下混合。如这里讨论的,频域下混合是最高效的下混合方法,因为其使从5. 1声道输入产生2声道输出所需的逆变换以及窗口化和交叠相加操作的次数最少。在本发明的一些实施例中,当例如在图8中的FD下混合循环部分711中,在从元件813开始结束于814并且在 815中渐增到下一声道的循环中进行FD下混合时,在处理中排除那些在下混合中不包括的声道。在逆变换之后但是窗口化和交叠相加之前的伪时域中的或者逆变换以及窗口化和交叠相加之后的时域中的下混合在计算上不如频域中的下混合高效。在诸如现今的AC-3 解码器的许多现今的解码器中,在伪时域中进行下混合。逆变换操作独立于下混合操作进行,例如在分立的模块中进行。这些解码器中的逆变换针对所有输入声道执行。这在计算上是相对低效的,因为在不包括LFE声道的情况下,仍针对该声道进行逆变换。即使LFE声道是有限的带宽,但是较之将逆变换应用于任何全带宽声道情况,将逆变换应用于LFE声道仍需要一样多的计算,因此这种不必要的处理是明显的。发明人认识到这种低效。本发明的一些实施例包括识别N. η输入声道的一个或多个无贡献声道,无贡献声道是对解码音频的Μ. m输出声道没有贡献的声道。在一些实施例中,该识别使用例如限定下混合的元数据的信息。在5. 1至2. 0下混合示例中,LFE声道因此被识别为无贡献声道。本发明的一些实施例包括在对M. m输出声道有贡献的每个声道上执行频率到时间的变换,并且在每个识别的对M. m声道信号没有贡献的声道上不执行任何频率到时间的变换。在5. 1至2. 0的示例中,其中LFE声道对下混合没有贡献,仅在五个全带宽声道上进行例如IMCDT的逆变换, 从而进行逆变换部分,大致减少了所有5. 1声道所需的计算资源的16%。由于IMCDT是解码方法中的计算复杂度的主要来源,因此这种减少是明显的。在诸如现今的E-AC-3解码器的许多现今的解码器中,在时域中进行下混合。逆变换操作和交叠相加操作独立于下混合操作,在任何TPNP之前并且在下混合之前进行,例如在分立的模块中进行。这些解码器中的逆变换以及窗口化和交叠相加操作在所有输入声道上进行。这在计算上是相对低效的,因为在不包括LFE声道的情况下,仍针对该声道进行逆变换和窗口化/交叠相加。即使LFE声道是有限的带宽,但是较之将逆变换和窗口化/交叠相加应用于任何全带宽声道情况,将逆变换和交叠相加应用于LFE声道仍需要一样多的计算,因此这种不必要的处理是明显的。在本发明的一些实施例中,下混合在时域中进行,并且在其他实施例中,下混合可以根据应用下混合方法选择逻辑的结果而在时域中进行。其中使用TD下混合的本发明的一些实施例包括识别N. η输入声道的一个或多个无贡献声道。 在一些实施例中,该识别使用例如限定下混合的元数据的信息。在5. 1至2. 0下混合示例中,LFE声道因此被识别为无贡献声道。本发明的一些实施例包括在对M.m输出声道有贡献的每个声道上执行逆变换,即频率到时间的变换,并且在每个识别的对M. m声道信号没有贡献的声道上不执行任何频率到时间的变换以及其他的时域处理。在5. 1至2. 0的示例中,其中LFE声道对下混合没有贡献,仅在五个全带宽声道上进行例如IMCDT的逆变换、交叠相加和TPNP,从而进行逆变换和窗口化/交叠相加部分,大致减少了所有5. 1声道所需的计算资源的16%。在图8的流程图中,在公共处理逻辑部分731中,一些实施例的一个特征包括开始于元件833、继续到834并且包括渐增到下一声道元件835的循环中的处理,针对除了无贡献声道以外的所有声道执行该特征。这对于进行FD下混合的块固有地发生。尽管在一些实施例中,如AC-3和E-AC-3中常见的,LFE是无贡献声道,即不包括在下混合输出声道中,但是在其他实施例中,LFE以外的声道也是无贡献声道或者代替成为无贡献声道,并且不包括在下混合输出中。本发明的一些实施例包括检查这些条件以识别一个或多个无贡献的声道(如果存在),这种声道不包括在下混合中,并且在时域下混合的情况下,对于任何识别的无贡献声道,不执行通过逆变换和窗口交叠相加操作进行的处理。例如,在AC-3和E-AC-3中,存在其中环绕声道和/或中心声道未包括在下混合输出声道中的特定条件。这些条件由取预先限定的值的编码位流中包括的元数据限定。例如, 元数据可以包括限定下混合的信息,其包括混合水平参数。出于说明的目的,现在针对E-AC-3的情况描述这种混合水平参数的一些这样的示例。在E-AC-3中下混合到立体声时,提供了两种类型的下混合下混合到LtRt矩阵环绕编码立体声对以及下混合到传统的立体声信号LoRo。下混合的立体声信号(LoRo或LtRt) 可以进一步混合为单声道。标为ltrtsurmixlev的3位LtRt环绕混合水平码,以及标为Iorosurmixlev的3位LoRo环绕混合水平码分别指示LtRt或LoRo下混合中的环绕声道相对于左和右声道的额定下混合水平。二进制值“111”指示0,即-c dB的下混合水平。标为 Itrtcmixlevaorocmixlev的3位LtRt和LoRo中心混合水平码分别指示LtRt或LoRo下混合中的中心声道相对于左和右声道的额定下混合水平。二进制值“111”指示0,即-⑴dB 的下混合水平。存在如下条件,其中环绕声道未包括在下混合输出声道中。在E-AC-3中,这些条件由元数据识别。这些条件包括其中surmixlev =“10”(仅AC-3)、ltrtsurmixlev =“111” 以及lorosurmixlev =“111”的情况。对于这些条件,在一些实施例中,解码器包括使用混合水平元数据识别该元数据指示环绕声道未包括在下混合中,并且不通过逆变换和窗口化 /交叠相加级对环绕声道进行处理。此外,存在如下条件,其中中心声道未包括在下混合输出声道中,其通过Itrtcmixlev = “ 111”,Iorocmixlev = “111”识别。对于这些条件,在一些实施例中,解码器包括使用混合水平元数据识别该元数据指示中心声道未包括在下混合中,并且不通过逆变换和窗口化/交叠相加级对中心声道进行处理。在一些实施例中,一个或多个无贡献声道的识别是依赖内容的。作为一个示例,该识别包括识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量。使用内容量的度量。在一个实施例中,内容量的度量是能量,而在另一实施例中,内容量的度量是绝对水平。该识别包括将成对的声道之间的内容量的度量的差与可设定的阈值比较。作为示例,在一个实施例中,识别一个或多个无贡献声道包括确定块的环绕声道内容量是否比每个前声道内容量小至少可设定的阈值,以便确定环绕声道是否是无贡献声道。理想地,在不会将明显的产物引入到信号的下混合版本中的情况下将阈值选择为尽可能低,以便最大化将声道识别为无贡献的,用于减少所需的计算量,同时使质量损失最小。在一些实施例中,对于不同的解码应用提供不同的阈值,关于特定解码应用的阈值选择表示关于特定应用的下混合质量(较高阈值)和计算复杂度降低(较低阈值)之间的可接受的平衡。在本发明的一些实施例中,如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少15dB,则认为该声道相对于该另一声道是不明显的。理想地,如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少25dB,则该声道相对于该另一声道是不明显的。使用等同于25dB的关于标为A和B的两个声道之间的差的阈值大致等同于, 两个声道的绝对值的和的水平在主要的声道的水平的0.5dB内。就是说,如果声道A处于-6dBFS (相对于全刻度的dB)并且声道B处于-31dBFS,则声道A和B的绝对值的和将大致为-5. 5dBFS,或者比声道A的水平大出约0. 5dB。如果音频具有相对低的质量,并且对于低成本应用,可接受的是牺牲质量来降低复杂度,阈值可以低于25dB。在一个实施例中,使用ISdB的阈值。在该情况下,两个声道的和可以在具有较高水平的声道的水平的约IdB内。这在某些情况下可能是可听的,但是不应是过于讨厌的。在另一实施例中,使用15dB的阈值,在该情况下两个声道的和在主要声道的水平的1. 5dB内。在一些实施例中,使用若干个阈值,例如15dB、18dB和25dB。注意,尽管上文针对AC-3和E-AC-3描述了无贡献声道的识别,但是本发明的识别无贡献声道的特征不限于这些格式。例如,其他格式也提供了例如关于可用于识别一个或多个无贡献声道的下混合的元数据的信息。MPEG-2AAC(IS0/IEC 13818-7)和MPEG-4音频 (IS0/IEC 14496-3)两者能够传送该标准所称的“矩阵混缩系数”。用于对这些格式解码的本发明的一些实施例使用该系数根据3/2,即左、中心、右、左环绕、右环绕信号来构造立体声或单声道信号。矩阵混缩系数确定环绕声道如何与前声道混合以构造立体声或单声道输出。根据这些标准中的每个,矩阵混缩系数的四个可能的值是可能的,其中一个是0。0值导致了环绕声道未包括在下混合中。本发明的一些MPEG-2AAC解码器或MPEG-4音频解码器实施例包括使用在位流中以信号形式传送的缩混系数根据3/2信号生成立体声或单声道下混合,并且进一步包括通过矩阵缩混系数0来识别无贡献声道,在该情况下,不进行逆变换和窗口化/交叠相加处理。图12示出了包括至少一个处理器1203的处理系统1200的一个实施例的简化框图。在该示例中,示出了一个x86处理器,其指令集包括SSE向量指令。以简化框图的形式还示出了总线子系统1205,该处理系统的各种部件通过其耦合。该处理系统包括例如经由总线子系统1205耦合到处理器的存储子系统1211,该存储子系统1211具有一个或多个存储设备,其至少包括存储器并且在一些实施例中,包括一个或多个其他存储设备,诸如磁和 /或光存储部件。一些实施例还包括至少一个网络接口 1207,以及音频输入/输出子系统 1209,该音频输入/输出子系统1209能够接受PCM数据并且包括一个或多个DAC以将PCM 数据转换为用于驱动一组扬声器或耳机的电波形。其他元件也可以包括在该处理系统中, 并且对于本领域技术人员是明显的,并且为了简化并未在图12中示出。存储子系统1211包括指令1213,这些指令1213在处理系统中执行时使得处理系统对包括编码音频数据(例如,E-AC-3数据)的N. η声道的音频数据解码以形成包括解码音频的Μ. m声道的解码音频数据,M ^ 1,并且对于下混合的情况,M < N。对于现今已知的编码格式,η = 0或1且m = 0或1,但是本发明不限于此。在一些实施例中,指令1211被分为模块。其他指令(其他软件)1215也典型地包括在存储子系统中。所示实施例包括指令1211中的如下模块两个解码器模块包括前端解码模块1231和后端解码模块1233 的独立帧5. 1声道解码器模块1223,包括前端解码模块1235和后端解码模块1237的依赖帧解码器模块1225 ;指令的帧信息分析模块1221,其在执行时使得从每个帧解封位流信息(BSI)字段数据以识别帧和帧类型并且将识别的帧提供给适当的前端解码器模块例示 1231或1235 ;以及指令的声道映射器模块1227,其在执行时并且在N > 5的情况下使来自各个后端解码模块的解码数据组合以形成N. η声道的解码数据。替选的处理系统实施例可以包括通过至少一个网络链接耦合的,即分布式的一个或多个处理器。就是说,一个或多个模块可以位于通过网络链接耦合到主处理系统的其他处理系统中。这些替选实施例对于本领域技术人员将是明显的。因此,在一些实施例中,系统包括一个或多个经由网络链接联网的子系统,每个子系统包括至少一个处理器。因此,图12的处理系统形成了用于处理包括编码音频数据的N. η声道的音频数据以形成包括解码音频的M.m声道的解码音频数据的装置的实施例,M ^ 1,在下混合的情况下,M < N,并且对于上混合,M > N。尽管对于现今的标准,η = 0或1并且m = 0或1,但是其他实施例也是可能的。该装置包括在功能上表述为执行功能的部件的若干个功能元件。功能元件意味着执行处理功能的元件。每个这样的元件可以是硬件元件,例如专用硬
35件,或者是包括存储介质的处理系统,该存储介质包括在执行时执行功能的指令。图12的装置包括用于接受通过编码方法(例如E-AC-3编码方法)编码的编码音频数据的N个声道的音频数据的部件,并且更一般而言,该编码方法包括使用交叠变换对数字音频数据的N 个声道进行变换,形成并封装频域指数和尾数数据,以及形成并封装与频域指数和尾数数据相关的元数据,该元数据可选地包括与瞬时预噪声处理相关的元数据。该装置包括用于对接受的音频数据解码的部件。在一些实施例中,用于解码的部件包括用于解封元数据的部件和用于解封并用于解码频域指数和尾数数据的部件,用于根据解封并解码的频域指数和尾数数据确定变换系数的部件;用于逆变换频域数据的部件;用于应用窗口化和交叠相加操作以确定采样音频数据的部件;用于根据与瞬时预噪声处理相关的元数据应用任何所需的瞬时预噪声处理解码的部件;以及用于根据下混合数据进行TD下混合的部件。在M < N的情况下,用于TD下混合的部件根据下混合数据进行下混合,其在一些实施例中包括测试下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用下混合,并且如果未改变,则根据下混合数据直接应用下混合。一些实施例包括用于针对块确定使用TD下混合还是FD下混合的部件,以及在用于针对块确定使用TD下混合还是FD下混合的部件确定FD下混合的情况下激活的用于FD 下混合的部件,其包括用于TD至FD下混合过渡处理的部件。这些实施例还包括用于FD至 TD下混合过渡处理的部件。这些元件的操作如这里所描述的那样。在一些实施例中,该装置包括用于识别N. η输入声道的一个或多个无贡献声道的部件,无贡献声道是对M.m声道没有贡献的声道。对于一个或多个所识别的无贡献声道,该装置不进行频域数据的逆变换并且不应用诸如TPNP或交叠相加的进一步处理。在一些实施例中,该装置包括至少一个x86处理器,其指令集包括具有向量指令的单指令多数据流扩展(SSE)。用于下混合的部件在操作中在一个或多个x86处理器中的至少一个上运行向量指令。针对图12中所示装置的替选装置也是可能的。例如,一个或多个元件可以通过硬件设备实施,而其他元件可以通过操作x86处理器实施。这些变化形式对于本领域技术人员是简单明了的。在该装置的一些实施例中,用于解码的部件包括一个或多个用于前端解码的部件以及一个或多个用于后端解码的部件。用于前端解码的部件包括用于解封元数据的部件和用于解封并用于解码频域指数和尾数数据的部件。用于后端解码的部件包括用于针对块确定使用TD下混合还是FD下混合的部件,用于FD下混合的部件,其包括用于TD至FD下混合过渡处理的部件,用于FD至TD下混合过渡处理的部件,如下部件该部件用于根据解封并解码的频域指数和尾数数据确定变换系数;用于逆变换频域数据;用于应用窗口化和交叠相加操作以确定采样音频数据;用于根据与瞬时预噪声处理相关的元数据应用任何所需的瞬时预噪声处理解码;以及用于根据下混合数据进行时域下混合。在M < N的情况下,时域下混合根据下混合数据进行下混合,其在一些实施例中包括测试下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据交叉渐变下混合数据应用下混合,并且如果未改变,则根据下混合数据应用下混合。
为了处理编码数据的超过5. 1声道的E-AC-3数据,用于解码的部件包括用于前端解码的部件和用于后端解码的部件的多个实例,其包括用于对高达5. 1声道的独立帧解码的第一前端解码部件和第一后端解码部件,用于对数据的一个或多个依赖帧解码的第二前端解码部件和第二后端解码部件。该装置还包括用于解封位流信息字段数据以识别帧和帧类型并且将识别的帧提供给适当的前端解码部件的部件,以及用于组合来自各个后端解码部件的解码数据以形成解码数据的N个声道的部件。注意,尽管E-AC-3和其他编码方法使用交叠相加变换,但是在包括窗口化和交叠相加操作的逆变换中,已知其他形式的变换是可能的,其以如下方式操作使得逆变换和进一步处理能够无混叠误差地恢复时域样本。因此,本发明不限于交叠相加变换,并且当提到逆变换频域数据并且进行窗口化交叠相加操作以确定时域样本时,本领域技术人员将理解通常这些操作可以被叙述为“逆变换频域数据并且应用进一步处理以确定采样音频数据。”尽管在说明书通篇中使用了术语指数和尾数,但是因为这些术语用在AC-3和 E-AC-3中,因此其他编码格式可以使用其他术语,例如在HE-ACC的情况下使用缩放因子和频谱系数,并且术语指数和尾数的使用并非将本发明的范围限制于使用术语指数和尾数的格式。除非相反地明确声明,否则从以下描述明显的是,应理解,在说明书中,利用诸如 “处理”、“计算”、“运算”、“确定”、“生成”等的术语的讨论指的是硬件元件(例如,计算机或计算系统、处理系统或类似的电子计算装置)的动作和/或处理,其将被表示为物理(诸如电子)量的数据操纵和/或转换成类似地被表示为物理量的其它数据。以类似的方式,术语“处理器”可以指的是任意装置或装置的一部分,其对例如来自寄存器和/或存储器的电子数据进行处理,以将该电子数据转换成其它例如可以存储在寄存器和/或存储器中的其它电子数据。“处理系统”或“计算机”或“计算机器”或“计算平台”可以包括一个或多个处理器。注意,当描述包括多个元素(例如,多个步骤)的方法时,不暗示这些元素(例如, 步骤)的排序,除非明确声明。在一些实施例中,计算机可读存储介质配置有(例如,编码有)例如存储指令,该存储指令当由处理系统(诸如,包括至少一个处理器元件和存储子系统的数字信号处理装置或子系统)的一个或多个处理器执行时,使得执行如此处所述的方法。注意,在以上描述中,当阐述指令被配置成当被执行时执行处理时,应理解,这意味着指令当被执行时使得一个或多个处理器工作,以使得例如处理系统的硬件设备执行处理。在一些实施例中,此处所述的方法可由一个或多个处理器来执行,这一个或多个处理器接受在一个或多个计算机可读介质上编码的逻辑、指令。当被一个或多个处理器执行时,指令使得执行此处所述的至少一种方法。能够执行指定要采取的动作的指令集(顺序的或其它)的任何处理器包括在内。因此,一个示例是包括一个或多个处理器的典型处理系统。每个处理器可以包括CPU或类似元件、图形处理单元(GPU)和/或可编程DSP单元中的一个或多个。处理系统还包括具有至少一个存储介质的存储子系统(其可以包括嵌入在半导体装置中的存储器)或者包括主RAM和/或静态RAM和/或ROM以及还有缓存的单独存储器子系统。存储子系统还可以包括一个或多个其它存储装置,诸如磁和/或光和/或另外的固态存储装置。可以包括总线子系统以用于部件之间的通信。处理系统还可以是具有通过网络(例如,经由网络接口装置或无线网络接口装置)耦合的处理器的分布式处理系统。如果处理系统需要显示器,则可以包括这样的显示器,例如,液晶显示器(IXD)、有机发光显示器(OLED)或阴极射线管(CRT)显示器。如果需要手动数据输入,则处理系统还包括输入装置,诸如字母数字输入单元(诸如键盘)、指向控制装置(诸如鼠标)等中的一个或多个。如果从上下文清楚并且除非明确相反声明,否则此处所使用的术语“存储装置”、 “存储子系统”或“存储器单元”还包括诸如盘驱动单元的存储系统。在一些配置中,处理系统可以包括声音输出装置和网络接口装置。因此,存储子系统包括配置有(例如,编码有)指令(例如,逻辑(例如软件))的计算机可读介质,该指令当由一个或多个处理器执行时,使得执行此处所述的一个或多个方法步骤。在计算机系统执行期间,软件可以驻留在硬盘中或者也可以完全地或者至少部分地驻留在诸如RAM的存储器内和/或驻留在处理器内部的存储器内。因此,存储器和包括存储器的处理器也构成了其上有编码指令的计算机可读介质。此外,计算机可读介质可以形成计算机程序产品,或者可以包括在计算机程序产品中。在替选实施例中,一个或多个处理器用作单机装置或者可以连接(例如,联网)到网络化布置中的其它处理器,一个或多个处理器可以在服务器-客户机网络环境中以服务器或客户机的能力工作,或者用作对等或分布式网络环境中的对等机。术语“处理系统”包括所有这样的可能性,除非此处明确排除在外。一个或多个处理器可构成个人计算机(PC)、 媒体回放装置、台式PC、机顶盒(STB)、个人数字助理(PDA)、游戏机、蜂窝电话、网络设施、 网络路由器、交换机或桥、或者任何能够执行指令集(顺序的或其它)的机器,该指令指定要由该机器采取的动作。注意,尽管一些图仅示出了单个处理器和单个存储子系统(例如,存储包括指令的逻辑的单个存储器),但是本领域技术人员将理解,包括多个上述部件,但是没有明确示出或描述这些部件,以便不模糊本发明的方面。例如,尽管仅示出了单个机器,但是术语“机器”还应被解释为包括单独地或联合地执行指令集(或多个集)的任意机器集合,以执行此处所讨论的任意一个或多个方法。因此,此处描述的各个方法的一个实施例为配置有指令集(例如,计算机程序)的计算机可读介质的形式,该指令当在一个或多个处理器(例如,作为媒体装置的部分的一个或多个处理器)上执行时,使得执行方法步骤。一些实施例为逻辑本身的形式。因此,如本领域技术人员所理解的,本发明的实施例可以被实施为方法、诸如专用设备的设备、诸如数据处理系统的设备、例如在计算机可读存储介质中实施的逻辑、或者编码有指令的计算机可读存储介质(例如,被配置为计算机程序产品的计算机可读存储介质)。计算机可读介质还配置有如下指令集当由一个或多个处理器执行时,使得执行方法步骤。因此,本发明的方面可采取方法、包括多个功能元件的完全硬件实施例的形式,其中功能元件指的是执行处理功能的元件。每个这样的元件可以是硬件元件(例如,专用硬件)或包括存储介质的处理系统,该存储介质包括指令,该指令当被执行时执行功能。本发明的方面可采取完全软件实施例或组合软件和硬件方面的实施例的形式。此外,本发明可采取例如计算机可读介质中的程序逻辑(例如,计算机可读存储介质上的计算机程序)或配置有计算机可读程序代码的计算机可读介质(例如,计算机程序产品)的形式。注意,在专用硬件的情况下, 定义硬件的功能足以使本领域技术人员能够编写可以由程序处理的功能描述,该程序然后自动确定用于生成用以执行功能的硬件的硬件描述。因此,此处的描述足以定义这样的专用硬件。尽管计算机可读介质在示例实施例中被示出为单个介质,但是术语“介质”应该被解释为包括存储一个或多个指令集的单个介质或多个介质(例如,多个存储器、集中的或分布式的数据库和/或相关联的缓存和服务器)。计算机可读介质可采取多种形式,包括但不限于非易失性介质和易失性介质。非易失性介质包括例如光盘、磁盘和磁光盘。易失性介质包括诸如主存储器的动态存储器。还应理解,本发明的实施例不限于任何特定的实施形式或编程技术,并且本发明可使用用于实施此处描述的功能性的任何适当的技术来实施。此外,实施例不限于任何特定的编程语言或操作系统。在本说明书中提及“一个实施例”或“实施例”意思是结合实施例描述的特定特征、 结构或特性包括在本发明的至少一个实施例中。因此,在本说明书中的各个地方出现短语 “在一个实施例中”或“在实施例中”不一定都指的是同一实施例,但是可能指的是同一实施例。此外,在一个或多个实施例中,如本领域技术人员从本公开内容可明白的是,特定的特征、结构或特性可以以任何适当的方式来组合。类似地,应理解,在本发明的示例实施例的以上描述中,本发明的各个特征有时在单个实施例、图或其描述中被分组在一起,以简化本公开内容并且帮助理解各个发明方面中的一个或多个。然而,本公开内容的该方法不被解释为反映如下意图所要求保护的发明需要比各个权利要求中所明确阐述的特征更多的特征。相反,如所附权利要求所反映的,发明的方面在于小于单个上述公开实施例的全部特征。因此,所附权利要求由此明确地并入 “具体实施方式
”中,其中每个权利要求自己作为本发明的单独实施例。此外,如本领域技术人员所理解的,尽管此处描述的一些实施例包括一些其它实施例中没有包括的特征,但是不同实施例的特征的组合意为在本发明的范围内,并且形成不同的实施例。例如,在所附权利要求中,任意要求保护的实施例可以以任意组合来使用。此外,一些实施例在此处被描述为方法或可以由计算机系统的处理器或通过执行功能的其它装置来实施的方法的元素的组合。因此,具有用于执行这样的方法或方法的元素的必要指令的处理器形成用于执行方法或方法的元素的装置。此外,设备实施例的此处所描述的元件是用于执行由元件执行的功能以执行本发明的装置的示例。在此处所提供的描述中,阐述了大量具体的细节。然而,应理解,本发明的实施例可以在没有这些具体细节的情况下来实践。在其它实例中,没有详细示出公知的方法、结构和技术,以便不会模糊对本描述的理解。如此处所使用的,除非相反地指定,否则使用序数形容词“第一”、“第二”、“第三” 等来描述共同的对象仅表示指的是相同对象的不同实例,并且不旨在暗示如此描述的对象必须按时间上、空间上、队列上或任何其它方式的给定序列。应理解,尽管在E-AC-3标准的上下文中描述了本发明,但是本发明不限于这样的上下文,并且可用于对通过使用与E-AC-3类似的技术的其它方法编码的数据进行解码。例如,本发明的实施例还可适用于对与E-AC-3向后兼容的编码音频进行解码。其它实施例可
39适用于对根据HE-AAC标准编码的编码音频进行解码,并且用于对与HE-AAC向后兼容的编码音频进行解码。其它编码流也可以有利地使用本发明的实施例来解码。此处所引用的所有美国专利、美国专利申请以及指定美国的国际(PCT)专利申请通过引用合并于此。在专利法规定或章程不允许通过对本身通过引用而合并信息的材料进行引用而合并的情况下,此处通过对该材料的引用而进行的合并排除在这种通过引用合并的材料中通过引用而合并的任何信息,除非这样的信息在此处明确通过引用而被合并。本说明书中对现有技术的任何讨论决不应该认为是承认这种现有技术是广泛已知的、公开已知的或者构成本领域常识的一部分。在所附权利要求和此处的描述中,术语“包括”、“由…构成”或“其包括”中的任意一个是开放性术语,其表示至少包括该术语后的元素/特征,但是不排除其它元素/特征。 因此,术语“包括”当在权利要求中使用时,不应被解释为限于此后列出的装置或元素或步骤。例如,表述“包括A和B的装置”的范围不应限于仅由元件A和B组成的装置。如此处所使用的术语“包括”或“其包括(which includes)”或“它包括(thatincludes) ”中的任意一个也是开放性术语,其也表示至少包括该术语后的元素/特征,但是不排除其它元素/ 特征。因此,包括(including)与包括(comprising)是同义的并且表示包括(comprising)。类似地,要注意,术语“耦合”当在权利要求中使用时,不应解释为仅限于直接连接。可以使用术语“耦合”和“连接”以及其变型。应理解,这些术语不旨在为彼此的同义词。因此,表述“耦合到装置B的装置A”的范围不应被解释为装置A的输出直接连接到装置B的输入的装置或系统。其表示在A的输出与B的输入之间存在路径,该路径可以是包括其它设备或装置的路径。“耦合”可以表示两个或更多个元件直接物理或电接触,或者表示两个或更多个元件不是彼此直接接触但是仍与彼此合作或交互。因此,尽管已描述了相信为本发明的优选实施例的实施例,但是本领域技术人员将认识到,在不背离本发明的精神的情况下,可进行其它和另外的修改,并且旨在保护落入本发明的范围内的所有这样的改变和修改。例如,以上给出的任何公式仅表示可使用的过程。可向框图添加或从其删除功能性,并且可以在功能元件当中互换操作。在本发明的范围内,步骤可添加到所描述的方法或从该方法删除。
权利要求
1.一种操作音频解码器以对包括音频数据的N. η声道的编码块的音频数据进行解码以形成包括解码音频的Μ. m声道的解码音频数据的方法,M^Ln是编码音频数据中的低频效果声道的数目,而m是解码音频数据中的低频效果声道的数目,所述方法包括接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据,所述编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及对接受的音频数据解码,所述解码包括 解封并解码频域指数和尾数数据; 根据解封并解码的频域指数和尾数数据确定变换系数; 逆变换频域数据并应用进一步处理以确定采样音频数据;以及对于M < N的情况根据下混合数据对确定的采样音频数据的至少一些块进行时域下混I=I,其中A、B和C至少之一为真,A是解码包括逐块地确定应用频域下混合还是时域下混合,并且如果对于特定块确定应用频域下混合,则针对该特定块应用频域下混合,B是时域下混合包括测试所述下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据所述交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据所述下混合数据直接应用时域下混合,以及C是所述方法包括识别N. η输入声道的一个或多个无贡献声道,无贡献声道是对Μ. m 声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道,所述方法不进行频域数据的逆变换并且不应用进一步处理。
2.根据权利要求1所述的方法,其中所述编码方法中的变换使用交叠变换,以及其中所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据。
3.根据权利要求1或2所述的方法,其中所述编码方法包括形成并封装与频域指数和尾数数据相关的元数据,所述元数据可选地包括与瞬时预噪声处理和与下混合相关的元数据。
4.根据权利要求1至3中任一项所述的方法,其中A为真。
5.根据权利要求4所述的方法,其中确定应用频域下混合还是时域下混合包括确定是否存在任何瞬时预噪声处理,以及确定N个声道中的任何声道是否具有不同的块类型,使得仅针对在N个声道中具有同一块类型、没有瞬时预噪声处理、以及M < N的块,应用频域下混合。
6.根据权利要求4或5所述的方法,其中所述编码方法中的变换使用交叠变换,并且所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据,其中针对特定块应用频域下混合包括确定前一块的下混合是否通过时域下混合进行, 并且如果前一块的下混合通过时域下混合进行,则对将与该特定块的解码数据交叠的前一块的数据应用时域中的或者伪时域中的下混合,以及其中针对特定块应用时域下混合包括确定前一块的下混合是否通过频域下混合进行, 并且如果前一块的下混合通过频域下混合进行,则较之前一块的下混合不通过频域下混合进行的情况以不同的方式处理该特定块。
7.根据权利要求1至6中任一项所述的方法,其中B为真。
8.根据权利要求7所述的方法,其中所述解码器使用至少一个x86处理器,所述x86处理器的指令集包括具有向量指令的单指令多数据流扩展SSE,以及其中时域下混合包括在一个或多个x86处理器中的至少一个上运行向量指令。
9.根据权利要求1至8中任一项所述的方法,其中C为真。
10.根据权利要求9所述的方法,其中η= 1且m = 0,使得针对所述低频效果声道不进行逆变换并且不应用进一步处理。
11.根据权利要求9或10所述的方法,其中包括编码块的音频数据包括限定下混合的信息,以及其中,识别一个或多个无贡献声道使用所述限定下混合的信息。
12.根据权利要求11所述的方法,其中所述限定下混合的信息包括混合水平参数,所述混合水平参数具有指示一个或多个声道是无贡献声道的预先限定的值。
13.根据权利要求9或10所述的方法,其中识别一个或多个无贡献声道进一步包括识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少15dB,则该声道具有相对于该另一声道不明显的内容量。
14.根据权利要求13所述的方法,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少18dB,则该声道具有相对于该另一声道不明显的内容量。
15.根据权利要求13所述的方法,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少25dB,则该声道具有相对于该另一声道不明显的内容量。
16.根据权利要求13所述的方法,其中识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量包括将成对的声道之间的内容量的度量的差与能够设定的阈值比较。
17.根据权利要求16所述的方法,其中所述能够设定的阈值被设定为多个预先限定的值之一。
18.根据权利要求1至17中任一项所述的方法,其中接受的音频数据具有编码数据的帧的位流的形式,以及其中所述解码被分为前端解码操作的集合以及后端解码操作的集合,所述前端解码操作包括将所述位流的帧的频域指数和尾数数据解封并解码为关于该帧的解封并解码的频域指数和尾数数据,以及该帧的伴随元数据,所述后端解码操作包括确定所述变换系数,进行逆变换并应用进一步处理,应用任何所需的瞬时预噪声处理解码,以及在M < N的情况下应用下混合。
19.根据权利要求18所述的方法,其中所述前端解码操作在跟随有第二轮回的第一轮回中进行,所述第一轮回包括逐块地解封元数据以及保存指向封装的指数和尾数数据的存储位置的指针,而所述第二轮回包括使用所保存的指向封装的指数和尾数的指针,以及逐个声道地解封并解码指数和尾数数据。
20.根据权利要求1至19中任一项所述的方法,其中根据以下标准之一对编码音频数据编码AC-3标准、E-AC-3标准、与E-AC-3标准向后兼容的标准、HE-AAC标准以及与 HE-AAC向后兼容的标准。
21.一种存储解码指令的计算机可读存储介质,所述解码指令在由处理系统的一个或多个处理器执行时使所述处理系统对包括音频数据的N. η声道的编码块的音频数据进行解码以形成包括解码音频的M.m声道的解码音频数据,M ^ 1,η是编码音频数据中的低频效果声道的数目,而m是解码音频数据中的低频效果声道的数目,所述解码指令包括在执行时使得接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据的指令,所述编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及在执行时使得对接受的音频数据解码的指令,在执行时使得解码的所述指令包括 在执行时使得解封并解码频域指数和尾数数据的指令; 在执行时使得根据解封并解码的频域指数和尾数数据确定变换系数的指令; 在执行时使得逆变换频域数据并应用进一步处理以确定采样音频数据的指令;以及在执行时使得确定是否M < N的指令,和在M < N的情况下在执行时使得根据下混合数据对确定的采样音频数据的至少一些块进行时域下混合的指令, 其中Α、Β和C至少之一为真,A是在执行时使得解码的指令包括在执行时使得逐块地确定应用频域下混合还是时域下混合的指令,以及在对于特定块确定应用频域下混合的情况下在执行时使得应用频域下混合的指令,B是时域下混合包括测试所述下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据所述交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据所述下混合数据直接应用时域下混合,以及C是在执行时使得解码的指令包括识别N. η输入声道的一个或多个无贡献声道,无贡献声道是对Μ. m声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道,所述方法不进行频域数据的逆变换并且不应用进一步处理。
22.根据权利要求21所述的计算机可读存储介质,其中所述编码方法中的变换使用交叠变换,以及其中所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据。
23.根据权利要求21或22所述的计算机可读存储介质,其中所述编码方法包括形成并封装与频域指数和尾数数据相关的元数据,所述元数据可选地包括与瞬时预噪声处理和与下混合相关的元数据。
24.根据权利要求21至23中任一项所述的计算机可读存储介质,其中A为真。
25.根据权利要求M所述的计算机可读存储介质,其中确定应用频域下混合还是时域下混合包括确定是否存在任何瞬时预噪声处理,以及确定N个声道中的任何声道是否具有不同的块类型,使得仅针对在N个声道中具有同一块类型、没有瞬时预噪声处理、以及M< N 的块,由在执行时使得解码的指令进行频域下混合。
26.根据权利要求M或25所述的计算机可读存储介质,其中所述编码方法中的变换使用交叠变换,并且所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据,其中针对特定块应用频域下混合包括确定前一块的下混合是否通过时域下混合进行, 并且如果前一块的下混合通过时域下混合进行,则对将与该特定块的解码数据交叠的前一块的数据应用时域中的或者伪时域中的下混合,以及其中针对特定块应用时域下混合包括确定前一块的下混合是否通过频域下混合进行, 并且如果前一块的下混合通过频域下混合进行,则较之前一块的下混合不通过频域下混合进行的情况以不同的方式处理该特定块。
27.根据权利要求21至沈中任一项所述的计算机可读存储介质,其中B为真。
28.根据权利要求27所述的计算机可读存储介质,其中所述处理系统包括至少一个 x86处理器,所述x86处理器的指令集包括具有向量指令的单指令多数据流扩展SSE,其中在执行时使得对接受的音频数据解码的指令包括用于在一个或多个x86处理器中的至少一个上执行的指令,以及其中在执行时使得进行时域下混合的指令包括一个或多个x86处理器中的至少一个x86处理器的向量指令。
29.根据权利要求21至观中任一项所述的计算机可读存储介质,其中C为真。
30.根据权利要求四所述的计算机可读存储介质,其中n=1且m = 0,使得针对所述低频效果声道不进行逆变换并且不应用进一步处理。
31.根据权利要求四或30所述的计算机可读存储介质,其中包括编码块的音频数据包括限定下混合的信息,以及其中识别一个或多个无贡献声道使用所述限定下混合的信息。
32.根据权利要求31所述的计算机可读存储介质,其中所述限定下混合的信息包括混合水平参数,所述混合水平参数具有指示一个或多个声道是无贡献声道的预先限定的值。
33.根据权利要求四或30所述的计算机可读存储介质,其中识别一个或多个无贡献声道进一步包括识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量, 其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少15dB,则该声道具有相对于该另一声道不明显的内容量。
34.根据权利要求33所述的计算机可读存储介质,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少18dB,则该声道具有相对于该另一声道不明显的内容量。
35.根据权利要求33所述的计算机可读存储介质,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少25dB,则该声道具有相对于该另一声道不明显的内容量。
36.根据权利要求33所述的计算机可读存储介质,其中识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量包括将成对的声道之间的内容量的度量的差与能够设定的阈值比较。
37.根据权利要求36所述的计算机可读存储介质,其中所述能够设定的阈值被设定为多个预先限定的值之一。
38.根据权利要求21至37中任一项所述的计算机可读存储介质,其中接受的音频数据具有编码数据的帧的位流的形式,以及其中在执行时使得对接受的音频数据解码的指令被分为能够重新使用的模块的集合,其包括前端解码模块,以及后端解码操作模块,所述前端解码模块包括在执行时使得将所述位流的帧的频域指数和尾数数据解封并解码为关于该帧的解封并解码的频域指数和尾数数据,以及该帧的伴随元数据的指令,并且所述后端解码模块包括在执行时使得确定所述变换系数,进行逆变换,进行进一步处理,应用任何所需的瞬时预噪声处理解码,以及在M < N的情况下进行下混合的指令。
39.根据权利要求21至38中任一项所述的计算机可读存储介质,其中根据以下标准之一对编码音频数据编码AC-3标准、E-AC-3标准、与E-AC-3标准向后兼容的标准、HE-AAC 标准以及与HE-AAC向后兼容的标准。
40.根据权利要求38所述的计算机可读存储介质,其中编码音频数据根据E-AC-3标准或者根据与E-AC-3标准向后兼容的标准编码,并且可以包括超过5个编码声道,其中所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据, 其中,在N > 5的情况下,编码位流包括高达5. 1编码声道的独立帧以及编码数据的至少一个依赖帧,其中编码指令被布置为多个5. 1声道解码模块,每个5. 1声道解码模块包括各自的前端解码模块的例示和各自的后端解码模块的例示,所述多个5. 1声道解码模块包括在执行时使得对所述独立帧解码的第一 5. 1声道解码模块,以及用于各个依赖帧的一个或多个其他声道解码模块,以及其中解码指令进一步包括指令的帧信息分析模块,在执行时使得解封位流信息字段数据以识别帧和帧类型并且将识别的帧提供给适当的前端解码器模块例示;以及指令的声道映射器模块,在执行时并且在N > 5的情况下使得组合来自各个后端解码模块的解码数据以形成解码数据的N个声道。
41.一种用于处理音频数据以对包括音频数据的N. η声道的编码块的音频数据进行解码以形成包括解码音频的Μ. m声道的解码音频数据的装置,M^Ln是编码音频数据中的低频效果声道的数目,而m是解码音频数据中的低频效果声道的数目,所述装置包括用于接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据的部件,所述编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及用于对接受的音频数据解码的部件,所述用于解码的部件包括 用于解封并解码频域指数和尾数数据的部件; 用于根据解封并解码的频域指数和尾数数据确定变换系数的部件; 用于逆变换频域数据并用于应用进一步处理以确定采样音频数据的部件;以及对于M < N的情况用于根据下混合数据对确定的采样音频数据的至少一些块进行时域下混合的部件,其中Α、Β和C至少之一为真,A是用于解码的部件包括用于逐块地确定应用频域下混合还是时域下混合的部件, 以及用于应用频域下混合的部件,如果对于特定块确定应用频域下混合,则所述用于应用频域下混合的部件针对该特定块应用频域下混合,B是用于时域下混合的部件进行所述下混合数据是否相对先前使用的下混合数据改变的测试,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据所述交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据所述下混合数据直接应用时域下混合,以及C是所述装置包括用于识别N. η输入声道的一个或多个无贡献声道的部件,无贡献声道是对Μ. m声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道,所述装置不进行频域数据的逆变换并且不应用进一步处理。
42.根据权利要求41所述的装置,其中所述编码方法中的变换使用交叠变换,以及其中所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据。
43.根据权利要求41或42所述的装置,其中所述编码方法包括形成并封装与频域指数和尾数数据相关的元数据,所述元数据可选地包括与瞬时预噪声处理和与下混合相关的元数据。
44.根据权利要求41至43中任一项所述的装置,其中A为真。
45.根据权利要求44所述的装置,其中用于确定应用频域下混合还是时域下混合的部件确定是否存在任何瞬时预噪声处理,以及确定N个声道中的任何声道是否具有不同的块类型,使得仅针对在N个声道中具有同一块类型、没有瞬时预噪声处理、以及M < N的块,应用频域下混合。
46.根据权利要求44或45所述的装置,其中所述编码方法中的变换使用交叠变换,并且所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据,其中针对特定块应用频域下混合包括确定前一块的下混合是否通过时域下混合进行, 并且如果前一块的下混合通过时域下混合进行,则对将与该特定块的解码数据交叠的前一块的数据应用时域中的或者伪时域中的下混合,以及其中针对特定块应用时域下混合包括确定前一块的下混合是否通过频域下混合进行, 并且如果前一块的下混合通过频域下混合进行,则较之前一块的下混合不通过频域下混合进行的情况以不同的方式处理该特定块。
47.根据权利要求41至46中任一项所述的装置,其中B为真。
48.根据权利要求47所述的装置,其中所述装置包括至少一个x86处理器,所述x86处理器的指令集包括具有向量指令的单指令多数据流扩展SSE,以及其中用于时域下混合的部件在一个或多个x86处理器中的至少一个上运行向量指令。
49.根据权利要求41至48中任一项所述的装置,其中C为真。
50.根据权利要求49所述的装置,其中n=1且m = 0,使得针对所述低频效果声道不进行逆变换并且不应用进一步处理。
51.根据权利要求49或50所述的装置,其中包括编码块的音频数据包括限定下混合的信息,以及其中识别一个或多个无贡献声道使用所述限定下混合的信息。
52.根据权利要求49或50所述的装置,其中识别一个或多个无贡献声道进一步包括识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少15dB,则该声道具有相对于该另一声道不明显的内容量。
53.根据权利要求41至52中任一项所述的方法,其中根据以下标准之一对编码音频数据编码AC-3标准、E-AC-3标准、与E-AC-3标准向后兼容的标准、HE-AAC标准以及与 HE-AAC向后兼容的标准。
54.一种用于处理包括编码音频数据的N. η声道的音频数据以形成包括解码音频的 Μ. m声道的解码音频数据的装置,M > l,n = 0或1是编码音频数据中的低频效果声道的数目,而m = 0或1是解码音频数据中的低频效果声道的数目,所述装置包括用于接受包括由编码方法编码的编码音频数据的N. η声道的音频数据的部件,所述编码方法包括变换数字音频数据的N. η声道,使得逆变换和进一步处理能够无混叠误差地恢复时域样本,形成并封装频域指数和尾数数据,以及形成并封装与频域指数和尾数数据相关的元数据,所述元数据可选地包括与瞬时预噪声处理相关的元数据;以及用于对接受的音频数据解码的部件, 所述用于解码的部件包括一个或多个用于前端解码的部件以及一个或多个用于后端解码的部件, 其中用于前端解码的部件包括用于解封元数据,用于解封并用于解码频域指数和尾数数据的部件,其中用于后端解码的部件包括如下部件该部件用于根据解封并解码的频域指数和尾数数据确定变换系数;用于逆变换频域数据;用于应用窗口化以及交叠相加操作以确定采样音频数据;用于根据与瞬时预噪声处理相关的元数据应用任何所需的瞬时预噪声处理解码;以及用于根据下混合数据进行时域下混合,所述时域下混合在M < N的情况下根据下混合数据对数据的至少一些块进行时域下混合,以及其中A、B和C至少之一为真,A是用于后端解码的部件包括用于逐块地确定应用频域下混合还是时域下混合的部件,以及用于应用频域下混合的部件,如果对于特定块确定应用频域下混合,则所述用于应用频域下混合的部件针对该特定块应用频域下混合,B是用于时域下混合的部件进行所述下混合数据是否相对先前使用的下混合数据改变的测试,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据所述交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据所述下混合数据直接应用时域下混合,以及C是所述装置包括用于识别N. η输入声道的一个或多个无贡献声道的部件,无贡献声道是对Μ. m声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道,用于后端解码的部件不进行频域数据的逆变换并且不应用进一步处理。
55.根据权利要求M所述的装置,其中所述编码方法中的变换使用交叠变换,以及其中所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据。
56.根据权利要求M或55所述的装置,其中编码音频数据根据E-AC-3标准或者根据与E-AC-3标准向后兼容的标准编码,并且可以包括超过5个编码声道,其中,在N > 5的情况下,音频数据包括高达5. 1编码声道的独立帧以及编码数据的至少一个依赖帧,以及其中所述用于解码的部件包括用于前端解码的部件和用于后端解码的部件的多个实例,其包括用于对高达5. 1声道的所述独立帧解码的第一前端解码部件和第一后端解码部件,用于对数据的一个或多个依赖帧解码的第二前端解码部件和第二后端解码部件;用于解封位流信息字段数据以识别帧和帧类型并且将识别的帧提供给适当的前端解码部件的部件;以及用于组合来自各个后端解码部件的解码数据以形成解码数据的N个声道的部件。
57.根据权利要求M至56中任一项所述的装置,其中A为真。
58.根据权利要求57所述的装置,其中用于确定应用频域下混合还是时域下混合的部件确定是否存在任何瞬时预噪声处理,以及确定N个声道中的任何声道是否具有不同的块类型,使得仅针对在N个声道中具有同一块类型、没有瞬时预噪声处理、以及M < N的块,应用频域下混合。
59.根据权利要求M至58中任一项所述的装置,其中B为真。
60.根据权利要求59所述的装置,其中所述装置包括至少一个x86处理器,所述x86处理器的指令集包括具有向量指令的单指令多数据流扩展SSE,以及其中用于时域下混合的部件在一个或多个x86处理器中的至少一个上运行向量指令。
61.根据权利要求M至60中任一项所述的装置,其中B为真。
62.根据权利要求61所述的装置,其中η= 1且m = 0,使得针对所述低频效果声道不进行逆变换并且不应用进一步处理。
63.根据权利要求61或62所述的装置,其中包括编码块的音频数据包括限定下混合的信息,以及其中识别一个或多个无贡献声道使用所述限定下混合的信息。
64.根据权利要求61或62所述的装置,其中识别一个或多个无贡献声道进一步包括识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少15dB,则该声道具有相对于该另一声道不明显的内容量。
65.根据权利要求M至64中任一项所述的方法,其中根据以下标准之一对编码音频数据编码AC-3标准、E-AC-3标准、与E-AC-3标准向后兼容的标准、HE-AAC标准以及与 HE-AAC向后兼容的标准。
66.一种对包括编码音频数据的N. η声道的音频数据进行解码以形成包括解码音频的 M.m声道的解码音频数据的系统,1,η是编码音频数据中的低频效果声道的数目,而m 是解码音频数据中的低频效果声道的数目,所述系统包括一个或多个处理器;以及耦合到所述一个或多个处理器的存储子系统,其中所述系统被配置为接受包括由编码方法编码的编码音频数据的N. η声道的块的音频数据,所述编码方法包括变换数字音频数据的N. η声道,以及形成并封装频域指数和尾数数据;以及进一步对接受的音频数据解码,所述解码包括 解封并解码频域指数和尾数数据; 根据解封并解码的频域指数和尾数数据确定变换系数; 逆变换频域数据并应用进一步处理以确定采样音频数据;以及对于M < N的情况根据下混合数据对确定的采样音频数据的至少一些块进行时域下混I=I,其中A、B和C至少之一为真,A是解码包括逐块地确定应用频域下混合还是时域下混合,并且如果对于特定块确定应用频域下混合,则针对该特定块应用频域下混合,B是时域下混合包括测试所述下混合数据是否相对先前使用的下混合数据改变,并且如果改变,则应用交叉渐变以确定交叉渐变下混合数据并且根据所述交叉渐变下混合数据应用时域下混合,并且如果未改变,则根据所述下混合数据直接应用时域下混合,以及 C是所述方法包括识别N. η输入声道的一个或多个无贡献声道,无贡献声道是对Μ. m声道没有贡献的声道,并且对于一个或多个所识别的无贡献声道,所述方法不进行频域数据的逆变换并且不应用进一步处理。
67.根据权利要求66所述的系统,其中所述编码方法中的变换使用交叠变换,以及其中所述进一步处理包括应用窗口化和交叠相加操作以确定采样音频数据。
68.根据权利要求66或67所述的系统,其中A为真。
69.根据权利要求68所述的系统,其中确定应用频域下混合还是时域下混合确定是否存在任何瞬时预噪声处理,以及确定N个声道中的任何声道是否具有不同的块类型,使得仅针对在N个声道中具有同一块类型、没有瞬时预噪声处理、以及M < N的块,应用频域下混合ο
70.根据权利要求66至69中任一项所述的系统,其中B为真。
71.根据权利要求70所述的系统,其中所述系统包括至少一个x86处理器,所述x86处理器的指令集包括具有向量指令的单指令多数据流扩展SSE,以及其中时域下混合包括在一个或多个x86处理器中的至少一个上运行向量指令。
72.根据权利要求66至71中任一项所述的系统,其中C为真。
73.根据权利要求72所述的系统,其中n=1且m = 0,使得针对所述低频效果声道不进行逆变换并且不应用进一步处理。
74.根据权利要求72或73所述的系统,其中包括编码块的音频数据包括限定下混合的信息,以及其中识别一个或多个无贡献声道使用所述限定下混合的信息。
75.根据权利要求72或73所述的系统,其中识别一个或多个无贡献声道进一步包括识别一个或多个声道是否具有相对于一个或多个其他声道不明显的内容量,其中如果声道的能量或绝对水平在另一声道的能量或绝对水平以下至少15dB,则该声道具有相对于该另一声道不明显的内容量。
76.根据权利要求66至75中任一项所述的系统,其中根据以下标准之一对编码音频数据编码AC-3标准、E-AC-3标准、与E-AC-3标准向后兼容的标准、HE-AAC标准以及与 HE-AAC向后兼容的标准。
77.根据权利要求66至76中任一项所述的系统,其中接受的音频数据具有编码数据的帧的位流的形式,其中所述存储子系统被配置为具有指令,所述指令在由所述处理系统的一个或多个处理器执行时使得对接受的音频数据解码。
78.根据权利要求66至77中任一项所述的系统,包括经由网络链接联网的一个或多个子系统,每个子系统包括至少一个处理器。
全文摘要
一种方法、一种装置、一种计算机可读存储介质,其被配置为具有用于执行方法的指令,以及在一个或多个计算机可读有形介质中编码的用于执行动作的逻辑。该方法将包括N.n声道的音频数据解码为M.m解码音频声道,包括解封元数据并且解封并解码频域指数和尾数数据;根据解封并解码的频域指数和尾数数据确定变换系数;逆变换频域数据;以及在M<N的情况下,根据下混合数据进行下混合,该下混合高效地进行。
文档编号G10L19/00GK102428514SQ201180002121
公开日2012年4月25日 申请日期2011年2月3日 优先权日2010年2月18日
发明者罗伯特·L·安德森, 罗宾·特辛, 詹姆斯·M·席尔瓦 申请人:杜比国际公司, 杜比实验室特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1