首页> 中国专利> 音频编码器、音频解码器、用于将音频信息编码的方法、用于将音频信息解码的方法及使用区域从属算术编码映射规则的计算机程序

音频编码器、音频解码器、用于将音频信息编码的方法、用于将音频信息解码的方法及使用区域从属算术编码映射规则的计算机程序

摘要

一种用以基于一已编码的音频信息(2210)而提供一已解码的音频信息(2212)的音频解码器(2200),包含:用以基于经算术编码的频谱值表示(2222)而提供多个已解码的频谱值(2224)的一算术解码器(2220),及用以使用已解码的频谱值(2224)而提供时域音频表示的一频域至时域变换器(2230),从而获得解码的音频信息。该算术解码器被配置为依据上下文状态而选择描述一码值映射至一符号码的映射规则。该算术解码器被配置为依据多个事先解码频谱值并且还依据欲解码的频谱值是位于第一预定频率区还是位于第二预定频率区,而判定描述该目前上下文状态的一数值型目前上下文值。一种音频编码器基于一输入的音频信息而提供已编码的音频信息。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-12-30

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G10L19/008 变更前: 变更后: 申请日:20101019

    专利权人的姓名或者名称、地址的变更

  • 2014-11-05

    授权

    授权

  • 2012-11-07

    实质审查的生效 IPC(主分类):G10L19/00 申请日:20101019

    实质审查的生效

  • 2012-09-12

    公开

    公开

说明书

技术领域

依据本发明的实施例是有关于一种用以基于已编码的音频信息而提 供已解码的音频信息的音频解码器,一种用以基于输入的音频信息而提供 已编码的音频信息的音频编码器,一种用以基于已编码的音频信息而提供 已解码的音频信息的方法,一种用以基于输入的音频信息而提供已编码的 音频信息的方法,及一种计算机程序。

依据本发明的实施例是有关于一种改良式无噪声频谱编码,其可用于 音频编码器或音频解码器,例如所谓的统一语音与音频编码器(USAC)。

背景技术

后文中将简短解说本发明的背景,从而有助于了解本发明及其优点。 过去十年间,大量努力致力于以良好位率效率而可能数字式储存与发布音 频内容。此一方面有一项重大成就是国际标准ISO/IEC 14496-3的定义。 此一标准的第三部分是有关音频内容的编码及解码,而第三部分的第四子 部分是有关一般音频编码。ISO/IEC 14496第三部分,第四子部分定义一 般音频内容的编码及解码构想。此外,已提出进一步改良来改善质量和/ 或减低所要求的位率。

依据该项标准所叙述的构想,时域音频信号被转换成时频表示。从时 域变换成时频域典型地是使用时域样本的变换区块执行,该变换区块也称 作为“帧”。已发现较佳是使用重叠帧,其移位例如半个帧,原因在于重 叠允许有效地避免(或至少减少)假影(artifacts)。此外,已发现须进行 开窗(windowing),以免源自于此种时间上有限的帧处理的假影。

通过将该输入的音频信号的一开窗部从时域变换成时频域,许多情况 下,获得能量压缩,使得部分频谱值包含比多个其它频谱值显著更大的幅 度。如此,许多情况下,幅度显著高于该等频谱值平均幅度的频谱值的数 量相对较少。结果导致能量压缩的时域至时频域变换的一个典型例是所谓 的修正离散余弦变换(MDCT)。

频谱值经常是依据心理声学(psychoacoustic)模型而定标(scaled) 及量化,使得针对心理声学上较重要的频谱值的量化误差较小,而针对心 理声学上较不重要的频谱值的量化误差较大。已经定标与量化的频谱值被 编码来提供其位率有效的表示。

例如,所谓的量化频谱系数的霍夫曼编码的使用在国际标准ISO/IEC 14496-3:2005(E),第三部分,第四子部分中进行了描述。

然而,已发现频谱值的编码质量对所要求的位率有显著影响。同样, 已发现音频解码器的复杂程度是取决于用于编码该频谱值的编码处理,音 频解码器经常制作成可携式消费者装置,因此须价廉且耗电量低。

综上所述,需要可提供位率效率与资源效率间的改良式折衷的一种音 频内容的编码及解码构想。

发明内容

依据本发明的一实施例,形成一种用以基于已编码的音频信息而提供 已解码的音频信息的音频解码器。该音频解码器包含用以基于多个频谱值 的经算术编码的表示而提供该些已解码的频谱值的一算术解码器。该音频 解码器也包含用以使用该些已解码的频谱值而提供一时域音频表示,藉此 获得已解码的音频信息的一频域至时域变换器。该算术解码器被配置为依 据一上下文状态,而选择描述一码值(其可提取自表示该已编码的音频信 息的一位串流)映射至一符号码(其可为表示一已解码的频谱值的数值、 或其最高有效位平面)的映射规则。该算术解码器被配置为依据多个事先 解码的频谱值并且也依据要被解码的频谱值是否位于第一预定频率区或 位于第二预定频率区,而判定描述该目前上下文状态的一数值型目前上下 文值。

已发现对于目前要被解码的频谱值所在频率区的考虑,允许上下文运 算质量的显著改良而未显著增加上下文运算所要求的运算量。此外,通过 考虑位在目前要被解码的频谱值邻近的事先解码频谱值间的统计相依性 是随频率而异这一事实,上下文可被选择从而允许用于与较低频相关联的 频谱值的解码及用于与较高频相关联的频谱值的解码这两者都有高的编 码效率。上下文对目前要被解码的频谱值与事先解码频谱值(典型地来自 于目前要被解码的频谱值的直接邻近或间接邻近)间的统计相依性细节的 调整适应良好,能够提高编码效率,同时保持运算量合理地低。发现能够 以极低运算量来考虑频率区,原因在于目前要被解码的频谱值的频率指数 在算术解码过程中是必然已知的。如此,上下文的选择性调适能够以少量 运算量执行而仍带来编码效率的改良。

在一较佳实施例,算术解码器被配置为依据要被解码的频谱值是否位 在第一预定频率区或位在第二预定频率区,而选择性地修正该数值型目前 上下文值。除了数值型目前上下文值的先前运算(或其它测定)外,数值 型目前上下文值的选择性地修正允许该数值型目前上下文值的“正常”运 算(或其它测定)与要被解码的频谱值目前所在该频率区的考虑组合。该 数值型目前上下文值的“正常”运算可与该数值型目前上下文值的区相依 性调适工作分开处理,这典型地降低了运算法则与运算量的复杂度。同样, 只使用此一构想,就能够容易地升级包含该数值型目前上下文值的“正常” 运算的系统。

在一较佳实施例,该算术解码器被配置为测定该数值型目前上下文 值,使得该数值型目前上下文值是基于多个事先解码频谱值的组合,或基 于自多个事先解码频谱值所导出的多个中间值的组合;以及使得该数值型 目前上下文值依据要被解码的频谱值是位在第一预定频率区还是位在第 二预定频率区,而选择性地在基于多个事先解码频谱值的组合,或基于自 多个事先解码频谱值所导出的多个中间值的组合所得的一值上增加。已发 现数值型目前上下文值依据要被解码的频谱值所在的频率区而选择性增 加,允许数值型目前上下文值的有效评估,而同时维持运算量少。

在一较佳实施例,该算术解码器被配置为至少在第一频率区与第二频 率之间区别,藉此判定该数值型目前上下文值,其中,该第一频率区包含 与该音频内容的一给定时间部分(例如,一帧或一子帧)相关联的频谱值 中的至少15%;及其中该第一频率区为低频区且包含具有最低频率的相关 联的频谱值(是在与该音频内容的给定(目前)时间部分相关联的该频谱 值集合内)。已发现通过常见地考虑频谱的下部(包含频谱值的至少15%) 作为第一频率区,可达成良好的上下文调适,原因在于频谱值间的统计相 依性并未包含在此低频率区的强变化。如此,不同区的数目可维持充分地 小,而其又转而协助避开使用过多不同的映射规则。然而,在若干实施例, 若第一频率区包含至少一个频谱值、至少二个频谱值、或至少三个频谱值 就足够了,即便如此仍以选用更延伸的第一频谱区为佳。

在一较佳实施例,该算术解码器被配置为至少在第一频率区与第二频 率之间区别,藉此判定该数值型目前上下文值,其中该第二频率区包含与 该音频内容的一给定时间部分(例如一帧或一子帧)相关联的频谱值中的 至少15%;及其中该第二频率区为高频区且包含具有最高频率的相关联的 频谱值(是在与该音频内容的给定(目前)时间部分相关联的该频谱值集 合内)。已发现通过常见地考虑频谱顶部(包含频谱值的至少15%)作为 第二频率区,可达成良好的上下文调适,原因在于频谱值间的统计相依性 并未包含在该高频率区上的强变化。如此,不同区的数目可维持充分地小, 而其又转而协助避开使用过多不同的映射规则。然而,在若干实施例,若 第二频率区包含至少一个频谱值、至少二个频谱值、或至少三个频谱值就 足够了,但即便如此仍以选用更延伸的第一频谱区为佳。

在一较佳实施例,该算术解码器被配置为至少在第一频率区、第二频 率区、以及第三频率之间区别,藉此依据要被解码的频谱值是在这至少三 个频率区中的哪一个的判定而判定该数值型目前上下文值。此种情况下, 该第一频率区、第二频率区与第三频率区各自包含多个相关联的频谱值。 已发现对于典型音频信号,推荐区别至少三个不同频率区,原因在于典型 地至少有三个不同频率区其中频谱值间有不同的统计相依性。已发现推荐 (但非必要)即使对窄带音频信号(例如,对具有300Hz至3KHz间的 频率范围的音频信号),在三个或更多个频率之间进行区别。同样,发现 对于具有更高带宽的音频信号,推荐(但非必要)区别三个或更多个延伸 的频率区(各自具有多于一个相关联的频谱值)。

在一较佳实施例,该音频信息的一(目前)时间部分的频谱值中的至 少八分之一是与该第一频率区相关联,并且该音频信息的一(目前)时间 部分的频谱值中的至少五分之一是与该第二频率区相关联,以及该音频信 息的一(目前)时间部分的频谱值中的至少四分之一是与该第三频率区相 关联。已发现推荐具有足够大的频率区,原因在于这种足够大的频率区可 使得编码效率与运算复杂度间的良好折衷。同样,已发现使用极小频率区 (例如,只包含一个相关联的频谱值的频率区)是运算无效,且甚至可能 造成编码效率的降级。此外,须注意即便当只使用两个频率区时,也推荐 选用足够大的频率区(例如,包含至少两个相关联的频谱值的频率区)。

在一较佳实施例,该算术解码器被配置为运算包含至少第一被加数及 至少第二被加数的和,作为该加的结果而获得该数值型目前上下文值。此 种情况下,该第一被加数是经由描述事先解码频谱值的振幅的多个中间值 的组合获得,而该第二被加数描述(目前)要被解码的频谱值是与多个频 率区中的哪一个频率区相关联。使用此种办法,可实现基于有关事先解码 频谱值的振幅信息的一上下文计算值与依据目前要被解码的频谱值相关 联的该频率区的一上下文调适值之间的分开。但也发现统计相依性的评价 (其是基于事先解码频谱值振幅的评估),可通过将目前要被解码的频谱 值相关联的频率区考虑在内而得到改良。然而,已发现运算上将该区信息 包含至数值型目前上下文值作为和值就足够了,并且即便如此简单的机制 也可带来该数值型目前上下文值的良好改进。

在一较佳实施例,该算术解码器被配置为依据要被解码的频谱值是位 于多个不同频率区中的哪一个频率区的判定,而修正该数值型目前上下文 值的二进制表示的一个或多个预定比特位置。已发现对该区信息使用专用 的比特位置,可协助依据该数值型目前上下文值而选用映射规则。例如, 经由对该目前要被解码的频谱值相关联的的频率区的描述,使用该数值型 目前上下文值的一预定位位置,可简化该映射规则的选择。例如,典型地 有多个上下文情况,其中在目前要被解码的频谱值的给定邻近(就频谱值 而言)的存在下,可使用相同映射规则,而与目前要被解码的频谱值相关 联的的频率区无关。此种情况下,目前要被解码的频谱值相关联的频率区 有关的信息可不加考虑,其是通过使用该信息编码的预定比特位置协助。 但是,在其它情况下,即,对于目前要被解码的频谱值的不同环境格局(就 频谱值而言),当选择映射规则时,有关目前要被解码的频谱值相关联的 的频率区的信息可加以利用。

在一较佳实施例,该算术解码器被配置为依据该数值型目前上下文值 而选择映射规则,使得多个不同数值型目前上下文值导致选择相同的映射 规则。已发现,目前要被解码的频谱值相关联的频率区列入考虑的构想可 以和相同映射规则是与多个不同数值型目前上下文值相关联的构想相结 合。已发现,在全部情况下无需考虑与目前要被解码的频谱值相关联的频 率,但至少在某些情况下,推荐考虑与目前要被解码的频谱值相关联的频 率区有关的信息。

在一较佳实施例,该算术解码器被配置为依据该数值型目前上下文值 而执行映射规则的二阶段式选择。此种情况下,该算术解码器被配置为在 第一选择步骤中检查该数值型目前上下文值是否等于由一直接命中表的 一登录项目所描述的一有效状态值。该算术解码器也被配置为在第二选择 步骤,判定若该数值型目前上下文值与由一直接命中表的一登录项目所描 述的一有效状态值不同,则该数值型目前上下文值位在多个区间中的哪一 个区间是唯一执行者。此种情况下,该算术解码器被配置为依据第一选择 步骤和/或第二选择步骤的结果而选定映射规则。该算术解码器也被配置为 依据要被解码的频谱值是位于第一频率区还是位于第二频率区而选定该 映射规则。已发现前文讨论的数值型目前上下文值的运算与二步骤式映射 规则的选择的组合构想可带来特殊优势。例如,使用此种构想,对要被解 码且排列在不同频率区的频谱值,可定义在第一选择步骤中映射规则所关 联的不同的“直接命中”上下文配置。同样,其中执行映射规则的基于区 间的选择的第二选择步骤,极为适合用于以下情况(事先解码频谱值的环 境)的处理,其中不期望(或至少不需要)考虑目前要被解码的频谱值相 关联的频率区。

在一较佳实施例,该算术解码器被配置为依据该要被解码的频谱值是 位在多个不同频率区中的哪一个频率区的判定,而选择性地修正该数值型 目前上下文值的二进制表示的一个或多个最低有效比特位置。此种情况 下,该算术解码器被配置为在该第二选择步骤中判定该数值型目前上下文 值的二进制表示是位于多个区间中的哪一个区间,而选择该映射,使得若 干数值型目前上下文值导致与该要被解码的频谱值所位于的频率区不相 干地选择相同的映射规则;及使得对若干数值型目前上下文值而言,该映 射规则是依据要被解码的频谱值是位在哪一个频率区而选定。已发现以该 数值型目前上下文值的二进制表示的最低有效位所编码的频率区是极为 适合用来与该二步骤式映射规则的选择进行有效协力合作。

依据本发明的一实施例,形成一种用以基于一输入的音频信息而提供 一已编码音频信息的音频编码器。该音频编码器包含用以基于该输入的音 频信息的时域表示而提供一频域音频表示,使得该频域音频表示包含一频 谱值集合的一能量压缩时域至频域变换器。该算术解码器被配置为使用一 可变长度码字组而编码频谱值、或其预处理版本。该算术编码器被配置为 将一频谱值、或一频谱值的最高有效位平面值映射至一码值(其可被包括 至以编码形式来表示该输入的音频信息的一位串流)。该算术编码器被配 置为选择描述依据一上下文状态而将一频谱值、或一频谱值的最高有效位 平面值映射至一码值的映射规则。该算术编码器被配置为依据多个先前已 编码的频谱值,并且也依据要被编码的频谱值是否位于第一预定频率区或 是位于第二预定频率区来判定描述该目前上下文状态的一数值型目前上 下文值。

此种音频信号编码器是基于与前文讨论的音频信号解码器相同的发 现。已发现显示出可有效用于音频内容解码的上下文的调适机制,应该也 适用于编码器端来允许获得一致性系统。

依据本发明的一实施例,形成一种用以基于已编码的音频信息而提供 已解码的音频信息的方法。

依据本发明的另一实施例,形成一种用以基于输入的音频信息而提供 已编码的音频信息的方法。

依据本发明的又一实施例,形成一种用于执行该些方法中的一个的计 算机程序。

该些方法及计算机程序是基于与前述音频解码器及前述音频编码器 相同的发现。

附图例明

接着将参考附图描述依据本发明的实施例,附图中:

图1显示依据本发明的一实施例的一种音频编码器的方块示意图;

图2显示依据本发明的一实施例的一种音频解码器的方块示意图;

图3显示用以解码频谱值的运算法则“value_decode()”的虚拟程序 码表示;

图4显示用于状态计算的上下文的示意代表图;

图5a显示用以映射上下文的运算法则“arith_map_context()”的虚 拟程序码表示;

图5b及图5c显示用以获得上下文状态值的运算法则 “arith_get_context()”的虚拟程序码表示;

图5d显示用以从状态变量导出累积-频率-表指数值“pki”的运算法 则“get_pk(s)”的虚拟程序码表示;

图5e显示用以从状态值导出累积-频率-表指数值“pki”的运算法则 “arith_get_pk(s)”的虚拟程序码表示;

图5f显示用以从状态值导出累积-频率-表指示值“pki”的运算法则 “get pk(unsigned long s)”的虚拟程序码表示;

图5g显示用以从可变长度码字组算术地解码一符号的运算法则 “arith_decode()”的虚拟程序码表示;

图5h显示用以更新上下文的运算法则“arith_update_context()”的 虚拟程序码表示;

图5i显示定义及变量的图例;

图6a显示统一语音与音频编码器(USAC)原始数据区块的语法表示;

图6b显示单一信道元素的语法表示;

图6c显示成对信道元素的语法表示;

图6d显示“ics”控制信息的语法表示;

图6e显示频域信道串流的语法表示;

图6f显示算术式编码频谱数据的语法表示;

图6g显示解码一频谱值集合的语法表示;

图6h显示数据元素及变量的图例;

图7显示依据本发明的另一实施例的一种音频编码器的方块示意图;

图8显示依据本发明的另一实施例的一种音频解码器的方块示意图;

图9显示使用依据本发明的编码方案,依据USAC草拟标准的工作草 案3,用于无噪声编码比较的配置;

图10a显示用于状态计算的上下文当其用于依据USAC草拟标准的工 作草案4时的示意代表图;

图10b显示用于状态计算的上下文当其用于依据本发明的实施例时的 示意代表图;

图11a显示该表当其用于依据USAC草拟标准的工作草案4的该算术 编码方案时的综论;

图11b显示该表当其用于依据本发明的算术编码方案时的综论;

图12a显示用于依据本发明及依据USAC草拟标准的工作草案4的无 噪声编码方案的只读存储器需求指令的图解代表图;

图12b显示依据本发明及依据USAC草拟标准的工作草案4的构想的 总USAC解码器数据只读存储器需求指令的图解代表图;

图13a显示使用依据USAC草拟标准的工作草案3的算术编码器、及 依据本发明的一实施例的算术解码器,统一语音与音频编码编码器所使用 的平均位率的表代表图;

图13b显示使用依据USAC草拟标准的工作草案3的算术编码器、及 依据本发明的一实施例的算术编码器,用于统一语音与音频编码编码器的 位累积控制的表代表图;

图14显示依据USAC草拟标准的工作草案3、及依据本发明的一实 施例,用于USAC编码器的平均位率的表代表图;

图15显示按照帧的USAC的最小、最大、及平均位率的表代表图;

图16显示按照帧的最佳状况及最恶劣状况的表代表图;

图17(1)及图17(2)显示表“ari_s_hash[387]”的内容的表代表图;

图18显示表“ari_gs_hash[225]”的内容的表代表图;

图19(1)及图19(2)显示表“ari_cf_m[64][9]”的内容的表代表图; 以及

图20(1)及图20(2)显示表“ari_s_hash[387]”的内容的表代表图; 以及

图21显示依据本发明的一实施例的一种音频编码器的方块示意图; 及

图22显示依据本发明的一实施例的一种音频解码器的方块示意图。

具体实施方式

1.依据图7的音频编码器

图7显示依据本发明的一实施例的一种音频编码器的方块示意图。音 频编码器700被配置为接收输入的音频信息710,并基于此而提供已编码 的音频信息712。音频编码器包含能量压缩时域至频域变换器720,该变 换器被配置为基于该输入的音频信息710的时域表示而提供频域音频表示 722,使得该频域音频表示722包含一频谱值集合。音频编码器700也包 含算术编码器730,该算数编码器被配置为使用一可变长度码字组而编码 (形成该频域音频表示722的频谱值集合中的)一频谱值或其预处理版本, 来获得已编码的音频信息712(其可包含例如多数可变长度码字组)。

算术编码器730被配置为依据上下文状态,而将一频谱值或频谱值的 一最高有效位平面值映射至一码值(即,映射至一可变长度码字组)。算 术编码器730被配置为依据上下文状态,选择描述将一频谱值或频谱值的 一最高有效位平面值映射至一码值的映射规则。算术编码器被配置为依据 多个事先编码的频谱值而判定该目前上下文状态。为了达成此目的,算术 编码器被配置为检测一组多个事先编码相邻频谱值(其是单独地或共同地 满足有关其幅度的预定状况),并依据该检测结果而判定该目前上下文状 态。

如此可知,一频谱值或频谱值的一最高有效位平面值映射至一码值可 通过使用映射规则742由频谱值编码740执行。状态追踪器750可被配置 为追踪该上下文状态,且可包含一群组检测器752来检测一组多个事先编 码相邻频谱值(其是单独地或共同地满足有关其幅度的预定状况)。状态 追踪器750也较佳被配置为依据由该群组检测器752所执行的该检测结果 而判定目前上下文状态。如此,状态追踪器750提供描述该目前上下文状 态的信息754。映射规则选择器760可选择映射规则,例如累积频率表, 其描述一频谱值或频谱值的一最高有效位平面值映射至一码值。如此,映 射规则选择器760将映射规则信息742提供至该频谱编码740。

综上所述,音频编码器700执行由该时域至频域变换器所提供的一频 域音频表示的算术编码。该算术编码为上下文相依性,使得映射规则(例 如累积频率表)是依据事先编码频谱值而选择。如此,时间和/或频率(或 至少在预定环境内)是彼此相邻和/或与该目前编码频谱值(即,在该目前 编码频谱值的预定环境内的频谱值)相邻的频谱值在算术编码中被考虑从 而调整由该算术编码评估的概率分布。当选定适当的映射规则时,执行检 测来测定是否有一组多个事先编码相邻频谱值是单独地或共同地满足有 关其幅度的预定状况。此项检测结果是应用于该目前上下文状态的选择, 即,应用在映射规则的选择。通过检测是否有一组多数频谱值其是特小或 特大,可辨识频域音频表示(其可为时频表示)内的特定特征。该特定特 征(诸如一组多数特小的或特大的频谱值)指示应当使用的特定上下文状 态,原因在于此一特定上下文状态可提供极佳编码效率。如此,检测满足 预定状况的该组相邻频谱值,该检测通常是用来与基于多个事先编码频谱 值的一组合的可替换上下文评估相结合地使用,提供一种机制,其允许有 效地选定适当的上下文,该输入的音频信息是否具有某些特殊状态(例如, 包含大的被遮蔽的频率范围)。

如此,可达成有效编码,同时维持上下文的计算充分简单。

2.依据图8的音频解码器

图8显示音频解码器800的方块示意图。音频解码器800被配置为接 收已编码的音频信息810,并基于此而提供已解码的音频信息812。音频 解码器800包含算术解码器820,该算数解码器被配置为基于频谱值的算 术式编码表示821而提供多个已解码的频谱值822。音频解码器800也包 含频域至时域变换器830,该变换器被配置为接收已解码的频谱值822, 并使用该已解码的频谱值822,提供时域音频表示812(其可组成该已解 码的音频信息),来获得已解码的音频信息812。

算术解码器820包含频谱值测定器824,该测定器被配置为将算术式 编码的频谱值表示的一码值映射至表示已解码的频谱值中的一者或多者、 或已解码的频谱值中的一者或多者的至少一部分(例如,最高有效位平面) 的一符号码。频谱值测定器824可被配置为依据映射规则而执行映射,该 映射规则可由映射规则信息828a描述。

算术解码器820被配置为依据上下文状态(其可由上下文状态信息 826a描述),选择描述一码值(由算术式编码的频谱值表示821描述)映 射至一符号码(描述一个或多个频谱值)的映射规则。算术解码器820被 配置为依据多数事先解码频谱值822而判定该目前上下文状态。为了达成 此目的,可使用状态追踪器826,其接收描述事先解码频谱值的信息。算 术解码器也被配置为检测一组多个事先解码相邻的频谱值(其是单独地或 共同地满足有关其幅度的预定状况),并依据该检测结果而判定该目前上 下文状态(例如,由上下文状态信息826a描述)。

检测满足有关其幅度的预定状况的该组多个事先解码相邻频谱值例 如可由一群组检测器(其是状态追踪器826的一部分)而进行。如此,获 得目前上下文状态信息826a。该映射规则的选择可由映射规则选择器828 执行,该映射规则选择器从该目前上下文状态信息826a中导出映射规则 信息828a,并且将该映射规则信息828a提供至该频谱值测定器824。

有关该音频信号解码器800的功能,须注意该算术解码器820被配置 为选择平均地极为适合用于要被解码的频谱值的映射规则(例如累积频率 表),原因在于该映射规则是依据目前上下文状态而选定,而该目前上下 文状态又是依据多个事先解码频谱值而判定。如此,可利用要被解码的相 邻频谱值间的统计相依性。此外,通过检测一组多个事先解码相邻频谱值 其是单独地或共同地满足有关其幅度的预定状况,可调整映射规则适应事 先解码频谱值的特殊状况(或样式)。例如,若识别一组多个较小的事先 解码相邻频谱值,或若识别一组多个较大的事先解码相邻频谱值,则可选 出特定映射规则。已发现存在有一组较大频谱值、或存在有一组较小频谱 值可被视为须使用特别适用于此种状况的一专用映射规则的显著指示。如 此,通过利用此组多个频谱值的检测可协助(或加速)上下文运算。同样, 若未应用前述构想,则一音频内容的特性可视为不容易考虑。例如,比较 用于正常上下文运算的该频谱值集合,一组多个事先解码频谱值其是单独 地或共同地满足有关其幅度的预定状况的检测可基于不同的一频谱值集 合执行。

进一步细节稍后详述。

3.依据图1的音频编码器

后文中,将叙述依据本发明的一实施例的音频编码器。图1显示此种 音频编码器100的方块示意图。

音频编码器100被配置为接收一输入的音频信息110,及基于此提供 一位串流112,其构成一已编码的音频信息。音频编码器100选择性地包 含一预处理器120,其被配置为接收该输入的音频信息110,及基于此而 提供预处理输入的音频信息110a。音频编码器100也包含一能量压缩时域 至频域信号变换器130,其也定名为信号变换器。信号变换器130被配置 为接收输入的音频信息110、110a,及基于此而提供一频域音频信息132, 其较佳是呈一频谱值集合形式。例如,信号变换器130被配置为接收输入 的音频信息110、110a的一帧(例如时域样本的一区块),及提供表示该 个别音频帧的音频内容的一频谱值集合。此外,该信号变换器130可被配 置为接收多个接续的、重叠或非重叠输入的音频信息110、110a的音频帧, 及基于此而提供一时频域音频表示,其包含与各帧相邻频谱值接续频谱值 集合的一序列,亦即一个频谱值集合。

能量压缩时域至频域信号变换器130可包含一能量压缩滤波器排组, 其是提供与不同的、重叠或非重叠频率范围相关联的频谱值。例如,该信 号变换器130可包含一开窗MDCT变换器130a,其被配置为使用一变换 窗而开窗该输入的音频信息110、110a(或其帧),及执行该开窗输入的音 频信息110、110a(或其开窗帧)的修正离散余弦变换。如此,该频域音 频表示132可包含与该输入的音频信息的一帧相关联的呈MDCT系数形 式的例如1024个频谱值的一集合。

音频编码器100可选择性地进一步包含一频谱后处理器140,其被配 置为接收频域音频表示132,及基于此而提供一后处理频域音频表示142。 该频谱后处理器140例如可被配置为执行时间噪声成形、和/或长期预测、 和/或本领域已知的任何其它频谱后处理。音频编码器选择性地进一步包含 定标器/量化器150,其被配置为接收频域音频表示132或其后处理版本 142,及提供一已定标且已量化的频域音频表示152。

音频编码器100选择性地,进一步包含一心理声学模型处理器160, 其被配置为提供该输入的音频信息110(或其的后处理版本110a),及基 于此而提供一选择性控制信息,其可用于能量压缩时域至频域信号变换器 130的控制,用于选择性的频谱后处理器140的控制,和/或用于选择性的 定标器/量化器150的控制。举例而言,心理声学模型处理器160可被配置 为分析该输入的音频信息,判定该输入的音频信息110、110a的哪些分量 对于人类的音频内容听觉特别重要,而该输入的音频信息110、110a的哪 些分量对于人类的音频内容听觉较不重要。据此,心理声学模型处理器160 可提供控制信息,其是由音频编码器100使用来调整由该定标器/量化器 150对频域音频表示132、142的定标、和/或由该定标器/量化器150所施 加的量化分辨率。结果,听觉上重要的标度因子频带(即,对人类的音频 内容听觉特别重要的相邻频谱值组)是以大的定标因子定标且以相对较高 分辨率量化,听觉上较不重要的标度因子频带(即,成组的相邻频谱值) 是以较小的定标因子定标且以较低分辨率量化。据此,典型地,听觉上较 为重要的频率的已定标频谱值明显大于听觉上较不重要的频谱值。

音频编码器也包含一算术编码器170,其被配置为接收频域音频表示 132(或者,可替换地,该频域音频表示132的后处理版本142,或甚至该 频域音频表示132本身)的已定标且已量化版本152,及基于此而提供算 术码字组信息172a,使得该算术码字组信息表示该频域音频表示152。

音频编码器100也包含位串流有效负载格式化器190,其被配置为接 收该算术码字组信息172a。该位串流有效负载格式化器190也典型地被配 置为接收额外信息,例如描述哪些标度因子已经被定标器/量化器150应用 的标度因子信息。此外,位串流有效负载格式化器190可被配置为接收其 它控制信息。位串流有效负载格式化器190被配置为基于所接收的信息, 通过依据期望的位串流语法而组装该位串流来提供该位串流112,稍后详 述。

后文中,将叙述有关算术编码器170的细节。算术编码器170被配置 为接收该频域音频表示132的多个后处理且已定标且已量化的频谱值。算 术编码器包含一最高有效位平面提取器174,其被配置为从一频谱值提取 最高有效位平面m。此处须注意,最高有效位平面可包含一个或甚至多个 位(例如2或3位)其是该频谱值的最高有效位。如此,最高有效位平面 提取器174提供一频谱值的最高有效位平面值176。

算术编码器170也包含一第一码字组测定器180,其被配置为测定表 示该最高有效位平面值m的算术码字组acod_m[pki][m]。选择性地,码字 组测定器180也提供一个或多个逸出码字组(此处也标示以 “ARITH_ESCAPE”),指示例如多少个较低有效位平面(以及结果,指示 该最高有效位平面的数值型权重)可用。第一码字组测定器180可被配置 为使用具有(或参考)累积频率表指数pki的一选定的累积频率表而提供 与最高有效位平面值m相关联的该码字组。

为了判定是否应选择该累积频率表,该算术编码器较佳包含一状态追 踪器182,其被配置为例如通过观察哪些频谱值是事先编码而追踪该算术 编码器的状态。结果,该状态追踪器182提供一状态信息184,例如以“s” 或“t”标示的状态值。算术编码器170也包含一累积频率表选择器186, 其被配置为接收该状态信息184,并将描述该选定的累积频率表的信息188 提供给该码字组测定器180。举例而言,累积频率表选择器186可提供一 累积频率表指数“pki”描述64累积频率表的一集合中哪一个累积频率表 被选择用于由该码字组测定器使用。可替换地,累积频率表选择器186可 将整个选定的累积频率表提供给该码字组测定器。如此,码字组测定器180 可使用所择定的累积频率表来提供该最高有效位平面值m的码字组 acod_m[pki][m],使得编码该最高有效位平面值m的实际码字组 acod_m[pki][m]是与m值及累积频率表指数pki有相依性,并因此与该目 前状态信息184有相依性。有关编码处理及所获得码字组格式的进一步细 节稍后详述。

算术编码器170又包含一较低有效位平面提取器189a,其被配置为如 果要被解码的频谱值中的一者或多者超过只使用该最高有效位平面所能 编码的数值范围,则从该已定标且已量化的频域音频表示152提取一个或 多个较低有效位平面。若有所需,该等较低有效位平面可包含一个或多个 位。据此,该较低有效位平面提取器189a提供较低有效位平面信息189b。 算术编码器170也包含一第二码字组测定器189c,其被配置为接收较低有 效位平面信息189d,及基于此而提供表示0、1、或更多较低有效位平面 的内容的0、1、或更多个码字组“acor_r”。该第二码字组测定器189c可 被配置为应用算术编码运算法则或任何其它编码运算法则,而从该较低有 效位平面信息189b导出该些较低有效位平面码字组“acor_r”。

此处须注意,较低有效位平面数目可取决于该些已定标且已量化的频 谱值152而改变,使得如果要被编码的已定标且已量化的频谱值为较小, 则可能根本没有较低有效位平面;使得如果要被编码的该目前已定标且已 量化的频谱值为中等范围,则可有一个较低有效位平面;及使得如果要被 编码的已定标且已量化的频谱值具有较大值,则可有多于一个较低有效位 平面。

综上所述,算术编码器170被配置为使用阶层编码处理而编码已定标 且已量化的频谱值,其是由该信息152描述。最高有效位平面(例如,每 个频谱值包含1、2或3位)被编码来获得最高有效位平面值的一算术码 字组“acod_m[pki][m]”。一个或多个较低有效位平面(该些较低有效位平 面各自例如包含1、2或3位)被编码从而获得一个或多个码字组“acod_r”。 当编码最高有效位平面时,该最高有效位平面的值m被映射至一码字组 acod_m[pki][m]。为了达成此目的,64个不同累积频率表是可用的,用于 依据算术编码器170的状态,亦即依据事先编码频谱值来编码值m。如此, 获得码字组“acod_m[pki][m]”。此外,若存在有一个或多个较低有效位平 面,则提供一个或多个码字组“acod_r”且包含至该位串流。

重置描述

音频编码器100选择性地可被配置为判定经由重置该内容,例如经由 将该状态指标重置至一默认值,是否可获得位率的改良。如此,音频编码 器100可被配置为提供一重置信息(例如,定名“arith_reset_flag”),指示 该算术编码内容是否经重置,及也指示于相对应解码器中用于算术解码的 内容是否应重置。

有关位串流格式及应用的累积频率表的细节稍后详述。

4.音频解码器

后文中,将叙述依据本发明的一实施例的音频解码器。图2显示此种 音频解码器200的方块示意图。

音频解码器200被配置为接收一位串流210,其表示一己编码的音频 信息,并且其可与由音频编码器100所提供的位串流112相同。音频解码 器200基于该位串流210而提供已解码的音频信息212。

音频解码器200包含一选择性的位串流有效负载解格式化器220,其 被配置为接收该位串流210,并且从该位串流210提取一已编码的频域音 频表示222。例如,该位串流有效负载解格式化器220可被配置为从位串 流210,提取算术式编码的频谱值,例如表示该频域音频表示的频谱值a 的最高有效位平面值m的一算术码字组“acod_m[pki][m]”,及表示该频 谱值a的较低有效位平面的内容的码字组“acod_r”。如此,已编码的频域 音频表示222组成(或包含)频谱值的一算术式编码表示。该位串流有效 负载解格式化器220进一步被配置为从该位串流提取额外控制信息,其未 显示于图2。此外,位串流有效负载解格式化器选择性地被配置为从位串 流210提取一状态重置信息224,其也被标示为算术重置标记或 “arith_reset_flag”。

音频解码器200包含一算术解码器230,其也称作为“频谱无噪声解 码器”。算术解码器230被配置为接收该已编码的频域音频表示220,及选 择性地,接收状态重置信息224。算术解码器230也被配置为提供一已解 码的频域音频表示232,其可包含已解码的频谱值表示。举例而言,已解 码的频域音频表示232可包含已解码的频谱值表示,其是由已编码的频域 音频表示220描述。

音频解码器200也包含一可选的反量化器/复位蔡器240,其被配置为 接收该已解码的频域音频表示232,及基于此而提供已反量化及已复位标 的频域音频表示242。

音频解码器200进一步包含一可选的频谱预处理器250,其被配置为 接收该已反量化及已复位标的频域音频表示242,及基于此而提供该已反 量化及已复位标的频域音频表示242的一预处理版本252。音频解码器200 也包含一频域至时域信号变换器260,其也称作“信号变换器”。信号变换 器260被配置为接收该已反量化及已复位标的频域音频表示242的该域处 理版本252(或者,可替换地,该已反量化及已复位标的频域音频表示242 或已解码的频域音频表示232),及基于此而提供该音频信息的一时域表示 262。该频域至时域信号变换器260例如可包含用以执行修正离散余弦反 变换(IMDCT)及适当开窗(以及其它辅助功能,例如重叠与相加)的一 变换器。

音频解码器200进一步可包含可选的时域后处理器270,其被配置为 接收音频信息的时域表示262,及使用时域后处理而获得已解码的音频信 息212。但若省略该后处理,则时域表示262可与已解码的音频信息212 相同。

此处须注意,反量化器/复位标器240、频谱预处理器250、频域至时 域信号变换器260、及时域后处理器270可依据控制信息加以控制,该控 制信息是由位串流有效负载解格式化器220而提取自该位串流210。

总而言之,音频解码器200的整体功能、已解码的频域音频表示232 (例如与已编码的音频信息的音频帧相关联的的一频谱值集合),可使用 算术解码器230基于已编码的频域音频表示222而获得。结果,例如1024 个频谱值(其可为MDCT系数)的集合是经反量化、经复位标、及经预 处理。如此,获得已经反量化、经复位标、及经频谱预处理的频谱值集合 (例如,1024个MDCT系数)。随后,自该已经反量化、经复位标、及经 频谱预处理的频谱值集合(例如,MDCT系数)而导出一音频帧的时域表 示。如此,获得一音频帧的时域表示。一给定音频帧的时域表示可组合先 前和/或后续音频帧的时域表示。举例而言,可执行后续音频帧的时域表示 间的重叠及相加,从而平滑相邻音频帧的时域表示之间的变迁,并且获得 频迭消除(aliasing cancellation)。有关基于已解码的频域音频表示232而 重构已解码的音频信息212的相关细节例如可参考国际标准ISO/IEC 14496-3,部分3,子部分4的详细讨论。但也可使用其它更精细的重叠及 频迭消除方案。

后文中,将叙述有关算术解码器230的若干细节。算术解码器230包 含最高有效位平面测定器284,其被配置为接收描述最高有效位平面值m 的算术码字组acod_m[pki][m]。最高有效位平面测定器284可被配置为使 用一包含多个64累积频率表集合中的一个累积频率表用以自该算术码字 组“acod_m[pki][m]”而导出最高有效位平面值m。

最高有效位平面测定器284被配置为基于码字组acod_m而导出频谱 值的一最高有效位平面的值286。算术解码器230进一步包含较低有效位 平面测定器288,其被配置为接收表示一频谱值的一个或多个较低有效位 平面的一个或多个码字组“acod_r”。如此,较低有效位平面测定器288 被配置为提供一个或多个较低有效位平面的解码值290。音频解码器200 也包含一位平面组合器292,其被配置为接收该些频谱值的最高有效位平 面的解码值286;并且如果这种较低有效位平面对于目前频谱值可用,则 可接收该些频谱值的一个或多个较低有效位平面的解码值290。如此,位 平面组合器292提供已解码的频谱值,其是该已解码的频域音频表示232 的一部分。当然,算术解码器230典型地被配置为提供多个频谱值,从而 获得与该音频内容的目前帧相关联的已解码的频谱值的一全集。

算术解码器230进一步包含一累积频率表选择器296,其被配置为依 据描述该算术解码器状态的一状态指标298而选择64个累积频率表中的 一个。算术解码器230进一步包含一状态追踪器299,其被配置为依据事 先解码频谱值而追踪算术解码器的状态。该状态信息可选择性地响应于状 态重置信息224而被重置为一默认状态信息。如此,累积频率表选择器296 被配置为提供选定的累积频率表的指数(例如pki)、或累积频率表本身用 来依据码字组“acod_m”而应用于最高有效位平面值m的解码。

概述音频解码器200的功能,音频解码器200被配置为接收一经位率 有效地编码的频域音频表示222,及基于此而获得已解码的频域音频表示。 在用来基于已编码的频域音频表示222而获得已解码的频域音频表示232 的算术解码器230中,通过使用算术解码器280(其被配置为应用累积频 率表)而开发相邻频谱值的最高有效位平面值间的不同组合的概率。换言 之,通过依据状态指标298(其是通过观察事先运算解码频谱值而得的) 而从包含64个不同累积频率表的一集合中选出不同的累积频率表,来开 发频谱值间的统计相依性。

5.频谱无噪声编码工具的综论

后文中,将解说有关由例如算术编码器170及算术解码器230执行的 编码及解码运算法则的细节。

重点是放在解码运算法则的说明。但须注意,相对应的编码运算法则 可依据解码运算法则的教导执行,其中映射是逆向的。

须注意,后文将讨论的解码是用来允许典型地经后处理典型地经后处 理、经定标且经量化的频谱值的所谓的“频谱无噪声编码”。频谱无噪声 编码是用在音频编码/解码构想来进一步降低量化频谱的冗余,该量化频谱 是例如经由能量压缩时域至频域变换器获得。

用于本发明的实施例的频谱无噪声编码方案是基于算术编码结合动 态调适上下文。频谱无噪声编码被馈以量化频谱值(其原始表示或已编码 表示),并使用例如从多个事先解码邻近频谱值中导出的上下文相依性累 积频率表。此处,时间上及频率上这二者的邻近皆列入考虑,如图4所示。 然后,累积频率表(稍后详述)由算术编码器用来产生一可变长度二进制 码,并由算术解码器用来从一可变长度二进制码导出解码值。

举例而言,算术编码器170依据各个概率,对一给定符号集合产生二 进制码。该二进制码是经由将该符号集合所在的一概率区间映射至一码字 组而产生。

后文中,将提供频谱无噪声编码工具的另一项短综论。频谱无噪声编 码是用来进一步缩减量化频谱的冗余。该频谱无噪声编码方案是基于算术 编码结合动态调适上下文。无噪声编码被馈以量化频谱值,并使用例如从 七个事先解码邻近频谱值中导出的上下文相依性累积频率表。

此处,时间上及频率上二者的邻近皆列入考虑,如图4所示。然后, 累积频率表由算术编码器用来产生一可变长度二进制码。

算术编码器对一给定符号集合及其各个概率产生二进制码。该二进制 码是经由将该符号集合所在的一概率区间映射至一码字组而产生。

6.解码程序

6.1.解码处理综论

后文中,将参考图3给予解码频谱值的程序的综合讨论,该图显示解 码多个频谱值的程序的伪程序码表示。

解码多个频谱值的程序包含上下文的初始化310。上下文的初始化310 包含使用函数“arith_map_context(lg)”从前一个上下文导出该目前上下 文。从前一个上下文导出该目前上下文可包含该上下文的重置。上下文的 重置及从前一个上下文导出该目前上下文这二者稍后详述。

多个频谱值的解码也包含频谱值解码312及上下文更新314的迭代, 该上下文更新是由函数“Arith_update_context(a,I,lg)”执行,稍后详述。 频谱解码312及上下文更新314被重复lg次,其中lg是指示(例如,针 对一音频帧)要被解码的频谱值数目。频谱值解码312包含上下文值计算 312a、最高有效位平面解码312b、及较低有效位平面加法312c。

状态值运算312a  包括使用函数“arith_get_context (I,lg,arith_reset_flag,N/2)”运算第一状态值s,该函数返回该第一状态值 s。该状态值运算312a也包含位准值“lev0”及位准值“lev”的运算,该 些位准值“lev0”、“lev”是通过将第一状态值s向右位移24位获得的。 该状态值运算312a也包含依据图3显示在参考标号312a的公式,运算第 二状态值t。

最高有效位平面解码312b包含解码运算法则312ba的迭代执行,其 中初次执行运算法则312ba之前,变量j被初始化为0。

运算法则312ba包含使用函数“arith_get_pk()”,依据第二状态值t, 并且也依据位准值“lev”及lev0运算状态指数“pki”(也用作为累积频率 表指数),稍后后详述。运算法则312ba也包含依据状态指数pki而选择累 积频率表,其中变量“cum_freq”可依据状态指数pki而设定至64累积频 率表中的一个起始地址。同样,变量“cfl”可被初始化为所选定的累积频 率表长度,其(例如)等于字母表中的符号数目,即,可解码的不同值的 数目。从“arith_cf_m[pki=0][9]”至“arith_cf_m[pki=63][9]”的全部累积 频率表中可用于最高有效位平面值m解码的长度为9,原因在于8个不同 最高有效位平面值及一个逸出符号可被解码。随后考虑所选的累积频率表 (由变量“cum_freq”及变量“cfl”描述),通过执行函数“arith_decode ()”可获得最高有效位平面值m。当导出最高有效位平面值m时,可评 估位串流210中名为“acod_m”的位(例如参考图6g)。

运算法则312ba也包含检验最高有效位平面值m是否等于逸出符号 “ARITH_ESCAPE”。若最高有效位平面值m不等于该算术逸出符号,则 舍弃运算法则312ba(“断裂”-状况),因而运算法则312ba的其余指令被 跳过。如此,该处理程序的执行是以设定频谱值a为等于最高有效位平面 值m来继续(指令“a=m”)。相反地,若最高有效位平面值m是与算术 逸出符号“ARITH_ESCAPE”相等,则位准值“lev”递增1。如所述,然 后重复运算法则312ba直至解码的最高有效位平面值m不同于该算术逸出 符号为止。

一旦完成最高有效位平面解码,即已经解码与该算术逸出符号不同的 最高有效位平面值m,则频谱值变量“a”设定为等于最高有效位平面值 m。随后,获得较低有效位平面,例如如图3以参考标号312c所示。针对 该频谱值的各个较低有效位平面,解码两个二进制值中的一个。举例而言, 获得较低有效位平面值r。随后,通过将频谱值变数“a”向左位移1位, 及通过加上目前解码的较低有效位平面值r作为最低有效位,而更新频谱 值变量“a”。但须注意,本发明并未特别推荐获得较低有效位平面的构想。 在某些情况下,甚至可省略任何较低有效位平面的解码。可替换地,可使 用不同解码运算法则用于达成此目的。

6.2.依据图4的解码顺序

后文中,将叙述频谱值的解码顺序。

频谱系数是经无噪声编码,及始于最低频系数及前进至最高频系数而 传输(例如,在位串流中)。

得自进阶音频编码(例如,使用修正离散余弦变换获得,如ISO/IEC 14496-3,部分3,子部分4讨论)的系数被储存在称作 “x_ac_quant[g][win][sfb][bin]”的数组中,而无噪声编码码字组(例如 acod_m、acod_r)的传输顺序,使得当其是以接收且储存于该数组的顺序 解码时,“bin”(频率指数)为最快递增指数,而“g”为最慢递增指数。

与较低频相关联的频谱系数是比与较高频相关联的频谱系数更早编 码。

得自变换编码激励(tcx)的系数被直接储存于数组 x_tcx_invquant[win][bin],而无噪声编码码字组的传输顺序,使得当其是 以接收且储存于该数组的顺序解码时,“bin”为最快递增指数,而“win” 为最慢递增指数。换言之,若频谱值描述语音编码器的线性预测滤波器的 变换编码激励,则频谱值a是与变换编码激励的相邻且递增的频率相关联。

与较低频相关联的频谱系数是比与较高频相关联的频谱系数更早编 码。

值得注意,音频编码器200可被配置为应用由算术解码器230所提供 的已解码的频域音频表示232,用于使用频域至时域信号变换而“直接” 产生时域音频信号表示,及用于使用频域至时域解码器及由频域至时域信 号变换器的输出所激励的线性预测滤波器二者而“间接”提供音频信号表 示。

换言之,此处详细讨论其功能的算术解码器200极为适合用于解码以 频域编码的音频内容的时频域表示的频谱值,及用于提供线性预测滤波器 的一刺激信号的时频域表示,该滤波器是适用于解码以线性预测域编码的 语音信号。如此,算术解码器是极为适合用于音频解码器,该音频解码器 可处理频域编码音频内容及线性预测频域编码音频内容(变换编码激励线 性预测域模式)。

6.3.依据图5a及图5b的上下文初始化

后文中,将叙述在步骤310中执行的上下文初始化(也标示为“上下 文映射”)。

上下文初始化包含依据运算法则“arith_map_context()”,在过去上 下文与目前上下文之间的映射,显示于图5a。如图可知,目前上下文储存 于通用变量q[2][n_context],其是呈现具有2的第一维度及n_context的第 二维度的数组。过去上下文储存于变量qs[n_context],其是呈现具有 n_context维度的表形式。变量“previous_lg”描述过去上下文的频谱值数 目。

变量“lg”描述该帧内要解码的频谱系数数目。变量“previous_lg” 描述前一帧的频谱行的先前数目。

上下文的映射可依据运算法则“arith_map_context()”进行。此处须 注意,若与目前(例如,经频域编码的)音频帧相关联的频谱值数目是与 对i=0至i=lg-1的前一个音频帧相关联的频谱值数目相等,则函数 “arith_map_context()”将目前上下文数组q的登录项目q[0][i]设定为过 去上下文数组qs的值qs[i]。

然而,若目前音频帧相关联的频谱值数目是与前一个音频帧相关联的 频谱值数目不等,则执行更复杂的映射。但此种情况下,有关映射细节与 本发明的关键构想并非特别相关,故参考图5a的伪程序代码的细节。

6.4.依据图5b及图5c的状态值运算

后文中,将更详细叙述状态值运算312a。

须注意,第一状态值s(如图3所示)可获得函数“arith_get_context (I,lg,arith_reset_flag,N/2)”作为返回值,其伪程序码表示是显示在图5b 及图5c中。

有关状态值的运算,也参考图4,其显示用于状态评估的上下文。图 4显示频谱值在时间及频率这二者上的二维表示。横坐标410描述时间, 及纵坐标412描述频率。如图4可知,要解码的频谱值420是与时间指数 t0及频率指数i相关联。如图可知,对时间指标t0而言,当具有频率指数 i的频谱值420要被解码时,具有频率指数i-1、i-2及i-3的重元组已经解 码。如由图4可知,在频谱值420被解码之前,具有时间指数t0及频率指 数i-1的频谱值430已经解码,而频谱值430被考虑在用于频谱值420的 解码的上下文。同理,在频谱值420被解码之前,具有时间指数t0及频率 指数i-2的频谱值434已经解码,而频谱值434被考虑在用于频谱值420 的解码的上下文。类似地,在频谱值420被解码之前,具有时间指数t-1 及频率指数i-2的频谱值440、具有时间指数t-1及频率指数i-1的频谱值 444、具有时间指数t-1及频率指数i的频谱值448、具有时间指数t-1及频 率指数i+1的频谱值452、具有时间指数t-1及频率指数i+2的频谱值456 已经解码,并且被考虑在用于频谱值420的解码的上下文的判定。当频谱 值420解码时已经解码且被考虑用于上下文的频谱值(频谱是数)是以影 线方形显示。相反地,(当频谱值420解码时)若干其它已经解码的频谱 值是以具有虚线的方形显示;而(当频谱值420解码时)其它尚未解码的 频谱值是以具有虚线的圆形显示,则并未用来判定用于解码频谱值420的 上下文。

但须注意虽言如此,若干这些尚未用于解码频谱值420的上下文的“常 规”(或“正常”)运算的频谱值可被评估用于检测多个事先解码相邻频谱 值其是单独地或共同地满足有关其幅度的预定状况。

现在参考图5b及图5c,该些图显示呈伪程序代码形式的函数 “arith_get_context()”的函数性,将叙述有关由函数“arith_get_context ()”执行的第一上下文值“s”的计算的进一步细节。

须注意,函数“arith_get_context()”接收要解码的频谱值的指数i 作为输入变量。指数i典型地为频率指数。输入变量lg描述(针对一目前 音频帧)预期量化系数的(总)数目。变数N描述变换的行数。标记 “arith_reset_flag”指示该上下文是否应重置。函数“arith_get_context”提 供表示连锁并置(concatenated)状态指数s及预测位平面位准lev0的变 量“t”作为输出值。

函数“arith_get_context()”使用整数变量a0、c0、c1、c2、c3、c4、 c5、c6、lev0、及“region”。

函数“arith_get_context()”包含第一算术重置处理510、一组多个事 先解码相邻零频谱值的检测 512、第一变量设定514、第二变量设定516、 位准调适518、区值设定520、位准调适522、位准限制524、算术重置处 理526、第三变量设定528、第四变量设定530、第五变量设定532、位准 调适534及选择返回值运算536作为主功能方块。

在第一算术重置处理510中,检验是否设定算术重置标记 “arith_reset_flag”,而要解码的频谱值的指标是等于零。此种情况下,返 回零上下文值,及舍弃该功能。

在一组多个事先解码零频谱值的检测512,该功能唯有在算术重置标 记为无效且要解码的频谱值指数i是非零时才执行,名为“flag”的变量 被初始化为1,如参考标号512a所示;及要被评估的频谱值一区经判定, 如参考标号512b所示。随后,如参考标号512b所示而判定的该区频谱值 是经评估,如参考标号512c所示。若发现有足够一区事先解码零频谱值, 则返回1上下文值,如参考标号512d所示。举例而言,上频率指数边界 “lim_max”设定为i+6,除非要被解码的频谱值指数i是接近最大频率指 数lg-1,该种情况下,对上频率指数边界作特殊设定,如参考标号512b 所示。此外,下频率指数边界“lim_min”设定为-5,除非要解码的频谱值 指数i是接近零(i+lim_min<0),该种情况下,对下频率指数边界lim_min 作特殊设定,如参考标号512b所示。当评估步骤512b所判定的该区频谱 值时,首先对下频率指数边界lim_min与零之间的负频率指数k执行评估。 对lim_min与零间的频率指数k,证实上下文值q[0][k].c与q[1][k].c中的 至少一个是否等于零。然而,若对lim_min与零间的任何频率指数k,上 下文值q[0][k].c与q[1][k].c二者皆非为零,则结论是并无足够的零频谱值 组群,进而舍弃评估512c。随后,评估零与lim_max间的频率指数的上下 文值q[0][k].c。若发现零与lim_max间的频率指数的任何上下文值q[0][k].c 非零,则结论是并无足够的成组事先解码零频谱值,进而舍弃评估512c。 但若发现对lim_min与零间的每个频率指数k,有至少一个上下文值 q[0][k].c或q[1][k].c等于零,且若对零与lim_max间的每个频率指数k有 零上下文值q[0][k].c,则结论是有足够的成组事先解码零频谱值。据此, 返回上下文值1来指示此种状况,而不再作任何额外计算。换言之,若识 别有足够一组多个上下文值q[0][k].c、q[1][k].c具有零值,则跳过计算514、 516、518、520、522、524、526、528、530、532、534、536。换言之, 回应于检测到满足预定状况,则与事先解码频谱值不相干地来判定描述上 下文状态的所返回的上下文值。

否则,即,若无足够成组上下文值q[0][k].c、q[1][k].c具有零值,则 至少部分地执行运算514、516、518、520、522、524、526、528、530、 532、534、536。

在第一变量设定514,该步骤是若(且仅若)要被解码的频谱值指数 i小于1才选择性执行,变量a0被初始化为上下文值q[1][i-1],及变量c0 被初始化具有变量a0的绝对值。变量“lev0”被初始化为零值。随后,若 变量a0包含较大的绝对值,即小于-4,或大于等于4,则变量“lev0”及 c0递增。变量“lev0”及c0的递增是迭代进行,直至变量a0通过朝右位 移运算而进入-4至3的范围为止(步骤514b)。

随后,变量c0及“lev0”分别限于最大值7及3(步骤514c)。

若要被解码的频谱值的指数值i等于1并且算术重置标记 (“arith_reset_flag”)有效,则返回上下文值,其是单纯基于变量c0及lev0 运算(步骤514d)。如此,只有具有与要解码的频谱值相同的时间指数及 具有频率指数比要被解码的频谱值的频率指数i小1的单一事先解码频谱 值被考虑用于上下文运算(步骤514d)。否则,即,若无算术重置函数, 则初始化变量c4(步骤514e)。

总结而言,在第一变量设定514,变量c0及“lev0”是依事先解码频 谱值初始化,解码用于与目前要被解码的频谱值相同帧,及用于前一个频 谱仓i-1。变量c4是依事先解码频谱值被初始化,解码用于前一个音频帧 (具有时间指数t-1),及具有频率是低于(例如达一个频率仓)与目前要 被解码的频谱值相关联的频率。

若(且仅若)目前要被解码的频谱值的频率指数是大于1,才选择性 地执行的第二变量设定516,包含变量c1及c6的初始化及变量lev0的更 新。变量c1是依据目前音频帧的事先解码频谱值相关联的上下文值 q[1][i-2].c更新,其频率是小于(例如,达2频率仓)目前要被解码的频 谱值频率。类似地,变量c6是依据描述前一个帧(具有时间指标t-1)的 事先解码频谱值的上下文值q[0][i-2].c初始化,其相关频率是小于(例如 达2频率仓)目前要被解码的频谱值频率。此外,位准变量“lev0”被设 定为与目前帧的事先解码频谱值相关联的位准值q[1][i-2].l,若q[1][i-2].l 大于lev0,则其相关频率是小于(例如达2频率仓)目前要被解码的频谱 值频率。

若(且仅若)要被解码的频谱值的指标i大于2,位准调适518及区 值设定520被选择性地执行。在位准调适518,若与目前帧的事先解码频 谱值相关联的位准值q[1][i-3].l大于位准值lev0,则位准变数”lev0”是增 至q[1][i-3].l值,其相关频率是小于(例如达3频率仓)目前要被解码的 频谱值频率。

在该区值设定520,变量“区(region)”是依据评估设定,其中多个 频谱区中的频谱区,布置目前要被解码的频谱值。举例而言,若发现目前 要被解码的频谱值是与在该些频率仓的第一(最下)象限(0≦i<N/4)频 率仓(具有频率仓指数i)相关联,则区变量“区”设定为零。否则,若 目前要被解码的频谱值是与在该等频率仓的第二象限(N/4≦i<N/2)频率 仓相关联,则区变量设定为值1。否则,若目前要被解码的频谱值是与在 该些频率仓的第二(上半)半部(N/2≦i<N)频率仓相关联,则区变量设 定为2。如此,区变量是依据目前要被解码的频谱值的频率区相关联的频 率区的评估而设定。可区别两个以上频率区。

若(且仅若)目前要被解码的频谱值包含大于3的指标,则执行额外 位准调适522。此种情况下,若位准值q[1][i-4].l(其是与目前帧的事先解 码频谱值相关联,而其是有关一种频率,该频率例如是比目前要被解码的 频谱值相关联的频率小例如4频率仓)是大于目前位准“lev0”,则位准变 量“lev0”增加(设定至值q[1][i-4].l)(步骤522)。位准变量“lev0”限 于最大值3(步骤524)。

若检测到算术重置状况及目前要被解码的频谱值的指标i大于1,则 依据变量c0、c1、lev0,以及依据区变量“区”而返回该状态值(步骤526)。 如此,若给定算术重置状况,则任何先前帧的事先解码频谱值不予考虑。

在第三变量设定528,变量c2设定为上下文值q[0][i].c,其是与前一 音频帧(具有时间指数t-1)的事先解码频谱值相关联,该事先解码频谱 值是与目前要被解码的频谱值的相同频率相关联。

在第四变量设定530,除非目前要被解码的频谱值是与最高可能频率 指数lg-1相关联,否则变量c3设定为上下文值q[0][i+1].c,其是与具有频 率指数i+1的前一个音频帧的事先解码频谱值相关联。

在第五变量设定532,除非目前要被解码的频谱值的频率指数i是太 过接近最大频率指数(即,具有频率指数值lg-2或lg-1),否则变量c5设 定为上下文值q[0][i+2].c,其是与具有频率指数i+2的前一个音频帧的事 先解码频谱值相关联。

若频率指数i等于零(即,若目前要被解码的频谱值为最低频谱值), 则进行位准变量“lev0”的额外调适。此种情况下,若变量c2或c3具有 值3(其指示与目前欲解码的频谱值相关联的频率比较时,与相同频率或 甚至更高频率相关联的的前一音频帧的事先解码频谱值具有较大值),则 位准变量“lev0”自零增至1。

在选择性返回值运算536,返回值的运算是依据目前要被解码的频谱 值的指标i是否具有值零、1、或更大值。若指标i具有零值,则返回值是 依据变量c2、c3、c5及lev0运算,如参考标号536a所示。若指标i具有 值1,则返回值是依据变量c0、c2、c3、c4、c5、及lev0运算,如参考标 号536b所示。若指标i具有非零或非1的值,则返回值是依据变量c0、 c2、c3、c4、c1、c5、c6、“区”及lev0运算(参考标号536c)。

综上所述,上下文值运算“arith_get_context()”包含一组多个事先 解码零频谱值(或至少足够小的频谱值)的检测512。若找到一组足够事 先解码零频谱值,通过设定返回值为1而指示特殊上下文的存在。否则进 行上下文值运算。通常,在上下文值运算中,指标值i被评估从而判定须 评估多少个事先解码频谱值。举例言之,若目前要被解码的频谱值的频率 指数i接近下边界(例如零)或接近上边界(例如lg-1),则减少所评估的 事先解码频谱值数目。此外,即便目前要被解码的频谱值的频率指数i足 够远离最小值,则通过区值设定520区别不同的频谱区。据此,考虑不同 频谱区(例如第一、低频率频谱区;第二、中频率频谱区;及第三、高频 率频谱区)的不同统计性质。作为返回值的上下文值的计算是取决于变量 “区”,使得该返回的上下文值是取决于该目前要被解码的频谱值是在第 一预定频率区还是在第二预定频率区(或在任何其它预定频率区)。

6.5.映射规则选择

后文中,将描述映射规则的选择,例如描述码值至符号码的映射的累 积频率表。映射规则的选择是依据上下文状态进行,该上下文状态是以状 态值s或t描述。

6.5.1.使用依据图5d的运算法则的映射规则选择

后文中,将说明依据图5d使用函数“get_pk”选择映射规则。须注意, 可执行函数“get_pk”从而在图3的运算法则的子运算法则312ba中获得 值“pki”。如此,函数“get_pk”可取代图3的运算法则中的函数 “arith_get_pk”。

也须注意,依据图5d的函数“get_pk”可评估依据图17(1)及图17 (2)的表“ari_s_hash[387]”及依据图18的表“ari_gs_hash”[225]。

函数“get_pk”接收状态值s作为输入变量,该状态值s可通过依据 图3的变量“t”与根据图3的变量“lev”、“lev0”组合而获得。函数“get_pk” 也被配置为返回变量“pki”值(其标示映射规则或累积频率表)作为返回 值。函数“get_pk”被配置为将状态值s映射至映射规则指数值“pki”。

函数“get_pk”包含第一表评估540,及第二表评估544。第一表评估 540包含变量初始化541,其中变量i_min、i_max、及i被初始化,如参 考标号541所示。第一表评估540也包含迭代表搜寻542,在该过程判定 是否存在匹配状态值s的表“ari_s_hash”的登录项目。若在迭代表搜寻 542期间识别此种匹配,则舍弃函数get_pk,其中通过匹配状态值s的表” ari_s_hash”的登录项目而判定该函数的返回值,稍后详述。然而,若在迭 代表搜寻542期间并未找到状态值s与表”ari_s_hash”的登录项目间的完 美匹配,则执行边界登录项目检查543。

现在转向第一表评估540的细节,可知由变量i_min及i_max界定搜 寻区间。只要由变量i_min及i_max界定搜寻区间够大,则重复迭代表搜 寻542,若条件i_max-i_min>1,则该状况为真。随后,至少约略近似地设 定变量i来标示该区间的中点(i=i_min+(i_max-i_min)/2)。随后,设定 变量j为由数组“ari_s_hash”位在变量i所标示的数组位置所判定的一值 (参考标号542)。此处须注意,表“ari_s_hash”的各个登录项目描述二 者,即,与该表登录项目相关联的状态值,及与该表登录项目相关联的映 射规则指数值。与该表登录项目相关联的状态值是由该表登录项目的最高 有效位(位8-31)描述;而映射规则指数值是由该表登录项目的较低位(例 如位0-7)描述。下边界i_min或上边界i_max是依据状态值s是否小于 由该表“ari_s_hash”的变量i所参考的登录项目“ari_s_hash[i]”的最高有 效24位所描述的状态值而调适。举例言之,若状态值s小于由登录项目 “ari_s_hash[i]”的最高有效24位所描述的状态值,则该表区间的上边界 i_max设定为值i。如此,迭代表搜寻542的下次迭代的表区间被限于针对 迭代表搜寻542的本次迭代所使用的表区间(自i_min至i_max)的下半。 相反地,若状态值s大于由表登录项目“ari_s_hash[i]”的最高有效24位 所描述的状态值,则迭代表搜寻542的下次迭代的表区间的下边界i_min 设定为值i,使得目前表区间(在i_min至i_max间)的上半被用作针对 下次迭代表搜寻的表区间。然而,若发现状态值s与由表登录项目 “ari_s_hash[i]”的最高有效24位所描述的状态值相等,则由函数“get_pk” 返回由表登录项目“ari_s_hash[i]”的最低有效8位所描述的映射规则指数 值,进而舍弃该函数。

迭代表搜寻542被重复,直至由变量i_min与i_max所界定的表区间 足够小为止。

(可选地)执行边界登录项目检查543来补偿迭代表搜寻542。若迭 代表搜寻542完成后,指数变量i等于指数变量i_max,则作最后检查状 态值s是否等于由表登录项目“ari_s_hash[i_min]”的最高有效24位所描 述的状态值,及此种情况下,返回由表登录项目“ari_s_hash[i_min]”的最 低有效8位所描述的映射规则指数值作为函数“get_pk”的结果。相反地, 若指数变量i与指数变量i_max不同,则执行检查状态值s是否等于由表 登录项目“ari_s_hash[i_max]”的最高有效24位所描述的状态值,及此种 情况下,返回由表登录项目“ari_s_hash[i_max]”的最低有效8位所描述 的映射规则指数值作为函数“get_pk”的返回值。

但须注意,边界登录项目检查543整体上可视为可选的。

在第一表评估540之后,执行第二表评估544,除非在第一表评估540 期间出现“直接命中”,该种情况下,状态值s等于由表“ari_s_hash”的 登录项目(或更明确地,由其24最高有效位)所描述的状态值中的一个。

第二表评估544包含变量初始化545,其中指数变量i_min、i及i_max 被初始化,如参考标号545所示。第二表评估544也包含迭代表搜寻546, 在该过程中,搜寻表“ari_gs_hash”的一登录项目,该登录项目表示与状 态值s相同的状态值。最后,第二表评估544包含返回值判定547。

只要由变量i_min及i_max界定的表区间够大(例如只要 i_max-i_min>1),则重复迭代表搜寻546。在迭代表搜寻546的重复中, 变量i设定为由i_min及i_max所界定的该表区间的中点(步骤546a)。 随后,表“ari_gs_hash”的变量j是位于指数变量i所判定的表位置获得 (546b)。换言之,表登录项目“ari_gs_hash[i]”是位于由表指数i_min及 i_max所界定的该目前表区间中点的一表登录项目。随后,判定针对迭代 表搜寻546的下次迭代的表区间。为了达成此目的,若状态值s小于由表 登录项目“j=ari_gs_hash[i]”的最高有效24位所描述的状态值,则描述该 表区间的上边界的指数值i_max被设定为值i(546c)。换言之,目前表区 间的下半被选作针对迭代表搜寻546的下次迭代的新表区间(步骤546c)。 否则,若状态值s大于由表登录项目“j=ari_gs_hash[i]”的最高有效24位 所描述的状态值,则指数值i_min被设定为值i。如此,目前表区间的上 半被选择作为针对迭代表搜寻546的下次迭代的新表区间(步骤546d)。 然而,若发现状态值s与由表登录项目“j=ari_gs_hash[i]”的最高有效24 位所描述的状态值相等,则指数变量i_max设定为值i+1或设定为值224 (若i+1大于224),且舍弃迭代表搜寻546。然而,若状态值s与由 “j=ari_gs_hash[i]”的24最高有效位所描述的状态值不同,则除非该表区 间过小(i_max-i_min≦1),否则迭代表搜寻546是以由已更新的指标值 i_min及i_max所界定的新设定表区间重复。如此,表区间(由i_min及 i_max所界定)的区间大小迭代地缩小直至检测到“直接命中”(s== (j>>8)),或直至区间达到最小容许大小(i_max-i_min≦1)为止。最后, 在舍弃了迭代表搜寻546后,判定表登录项目“j=ari_gs_hash[i_max]”,及 由该表登录项目“j=ari_gs_hash[i_max]”的8个最低有效位所描述的映射 规则指数值被返回作为函数“get_pk”的返回值。如此,映射规则指数值 是依据在迭代表搜寻546完成或舍弃后,表区间(由i_min及i_max所界 定)的上边界i_max判定。

都使用迭代表搜寻542、546的前述表评估540、544允许以极高的运 算效率检验表“ari_s_hash”及“ari_gs_hash”是否存在一给定的有效状态。 更明确地,即便于最恶劣情况下,表存取运算次数仍可维持合理地小。已 发现表“ari_s_hash”及“ari_gs_hash”的数值定序,允许加速搜寻适当哈 希值。此外,表的大小可维持较小,原因在于不需要在表“ari_s_hash”及 “ari_gs_hash”中包括逸出符号。如此,即便有大量不同状态,仍可建立 有效上下文哈希机制:在第一阶段(第一表评估540),进行针对直接命中 的搜寻(s==(j>>8))。

在第二阶段(第二表评估544),状态值s的范围可映射至映射规则指 数值。如此,可执行表“ari_s_hash”中有相关联的登录项目的特别有效状 态、与基于范围的处理的较低有效状态的良好平衡处置。据此,函数 “get_pk”组成映射规则选择的有效实现。

有关任何进一步细节,请参考图5d的伪程序代码,其是以依据众所 周知程序语言C的表示而表示函数“get_pk”的函数性。

6.5.2.使用依据图5e的运算法则的映射规则选择

后文中,将参考图5e叙述映射规则选择的另一项运算法则。须注意, 依据图5e的运算法则“arith_get_pk”接收描述上下文状态的一状态值s 作为输入变量。函数“arith_get_pk”提供概率模型的指数“pki”作为输 出值或返回值,该指数可为用以选择映射规则的指数(例如累积频率表)。

须注意,依据图5e的函数“arith_get_pk”可具有图3函数 “value_decode”的函数“arith_get_pk”的函数性。

也须注意,函数“arith_get_pk”例如可评估依据图20的表ari_s_hash 及依据图18的表ari_gs_hash。

依据图5e的函数“arith_get_pk”|包含第一表评估550及第二表评估 560。在第一表评估550,对于表ari_s_hash作线性扫描,获得该表的登录 项目j=ari_gs_hash[i]。若由表ari_s_hash的一表登录项目j=ari_gs_hash[i] 的最高有效24位描述的状态值等于状态值s,则返回由该所识别的表登录 项目j=ari_gs_hash[i]的最低有效8位所描述的映射规则指数值“pki”,及 舍弃函数“arith_get_pk”。据此,除非识别“直接命中”(状态值s等于表 登录项目j的最高有效24位描述的状态值),否则表ari_s_hash的全部387 登录项目是以上升顺序评估。

若在第一表评估550未识别直接命中,则执行第二表评估560。在第 二表评估过程中,执行线性扫描,登录项目指数i自零线性递增至224最 大值。在第二表评估期间,读取针对表i的表“ari_gs_hash”的登录项目 “ari_gs_hash[i]”,且评估表登录项目“j=ari_gs_hash[i]”,其中判定由表登 录项目j的24最高有效位所表示的状态值是否大于状态值s。若属此种状 况,则返回由表登录项目j的8最低有效位所描述的映射规则指数值作为 函数“arith_get_pk”的返回值,及舍弃函数“arith_get_pk”的执行。然而, 若状态值s不小于由目前表登录项目j=ari_gs_hash[i]的24最高有效位所描 述的状态值,则通过递增表指数i而继续扫描对于表ari_gs_hash的登录项 目。然而,若状态值s大于或等于由表登录项目ari_gs_hash所描述的任一 个状态值,则返回由表ari_gs_hash的8最低有效位所界定的映射规则指数 值“pki”作为函数“arith_get_pk”的返回值。

总而言之,依据图5e的函数“arith_get_pk”执行二步骤式哈希。在 第一步骤,执行针对直接命中的搜寻,其中判定状态值s是否等于由第一 表“ari_gs_hash”的任一登录项目所描述的状态值。若在第一表评估550 中识别直接命中,则自第一表“ari_s_hash”获得返回值,而舍弃函数 “arith_get_pk”。然而,若在第一表评估550未识别直接命中,则执行第 二表评估560。在第二表评估,执行基于范围的评估。第二表“ari_gs_hash” 的接续登录项目界定范围。若发现状态值s是落入此一范围(其是由下述 事实指示,由目前表登录项目“j=ari_gs_hash[i]”的24最高有效位所描述 的状态值大于状态值s),则送返由表登录项目“j=ari_gs_hash[i]”的8最 低有效位所描述的映射规则指数值“pki”。

6.5.3.使用依据图5f的运算法则的映射规则选择

依据图5f的函数“get_pk”实质上相当于依据图5e的函数 “arith_get_pk”。因而,参考前文讨论。有关进一步细节,请参考图5f的 伪程序表示。

须注意,依据图5f的函数“get_pk”可替代图3称作为函数 “value_decode”的函数“arith_get_pk”。

6.6.依据图5g的函数“arith_decode()”

后文中,将参考图5g讨论函数“arith_decode()”的函数性的进一步 细节。须了解,函数“arith_decode()”使用助手函数“arith_first_symbol (void)”,若为该序列中的第一符号则返回TRUE,否则返回FALSE。函 数“arith_decode()”也使用助手函数“arith_get_next_bit(void)”,其获 取且提供该位串流的下一位。

此外,函数“arith_decode()”使用全局变量“low”、“high”及“value”。 此外,函数“arith_decode()”接收变量“cum_freq[]”作为输入变量,其 指向所选累积频率表的第一登录项目或元素(具有元素指数或登录项目指 数0)。同样,函数“arith_decode()”使用输入变量“cfl”,其指示以变 量“cum_freq[]”标示的所选累积频率表的长度。

函数“arith_decode()”包含变量初始化570a作为第一步骤,若助手 函数“arith_first_symbol()”指示一序列符号的第一符号是经解码,则执 行该步骤。变量初始化550a依据多个例如20位而初始化变量“value”, 该些位是使用助手函数“arith_get_next_bit”而得自位串流,使得该变量 “value”具有该些位所表示的值。同样,变量“low”被初始化为具有0 值,而变量“high”被初始化为具有1048575值。

在第二步骤570b,变量“range”设定为比变量“high”与”low”数 值间的差值大1的值。变量“cum”设定为一值,其表示变量“low”值与 变量“high”值间的变量“value”值的相对位置。如此,变量“cum”例 如依据变量“value”值而具有0至216间的一值。

指标器p被初始化为一值,该值是比所选累积频率表的起始地址小1。

运算法则“arith_decode()”也包含迭代累积频率表搜寻570c。该迭 代累积频率表搜寻被重复,直至变量cfl小于或等于1为止。在迭代累积 频率表搜寻570c,指数器变量q设定为一值,该值等于指数器变量p的目 前值与变量“cfl”值的一半的和数。若所选累积频率表的由指数器变量q 所寻址的该登录项目*q的值大于变量“cum”的值,则指数器变量p被设 定至指数器变量q的值,而变量“cfl”递增。最后,变量“cfl”向右位移 一位,由此有效地将变量“cfl”除以2,及忽略取模(modulo)部分。

如此,迭代累积频率表搜寻570c有效地比较变量“cfl”值与该所选 累积频率表的多个登录项目,从而识别出该所选累积频率表内部是由该累 积频率表的登录项目所画界的一区间,使得值cum位在所识别的区间内。 如此,该所选累积频率表的登录项目界定区间,其中个别符号值是与该所 选累积频率表的各个区间相关联。同样,该累积频率表的两相邻值之间的 区间宽度界定与该区间相关联的符号的概率,使得所选累积频率表全体界 定不同符号(或符号值)的概率分布。有关可用累积频率表的细节将参考 图19讨论如下。

再次参考图5g,符号值是从指数器变量p导出,其中该符号值的导算 是如参考标号570d所示。如此,指数器变量p值与起始地址“cum_freq” 间的差值被评估,从而获得该符号值,其以变量“symbol”表示。

运算法则“arith_decode”也包含变量“high”及“low”的调适570e。 若由变量“symbol”表示的符号值非0,则变量“high”被更新,如参考 标号570e所示。变量“high”被设定为由变量“low”、变量“range”及 所选累积频率表的具有指数“symbol-1”的登录项目的值所判定的一值。 变量“low”增加,其中增加幅度是由变量“range”及所选累积频率表的 具有指数“symbol”的登录项目判定。如此,变量“low”与“high”的值 间的差值是依据所选累积频率表的两相邻登录项目的数值差而调整。

据此,若检测到具有低概率的一符号值,则变量“low”与“high”的 值之间的区间缩小至狭窄宽度。相反地,若检测到的符号值包含相对大的 概率,则变量“low”与“high”的值之间的区间宽度设定为相对较大值。 再度,变数“low”与“high”的值之间的区间宽度是取决于检测到的符号 及相对应的累积频率表的登录项目。

运算法则“arith_decode”也包含区间再标准化570f,其中在步骤570e 中测定的区间被迭代地位移及定标直至达到“断裂(break)”状况为止。 在区间再标准化570f,执行选择性向下位移运算570fa。若变量“high” 小于524286则不作为,而以区间大小增加运算570fb继续区间再标准化。 然而,若变量“high”不小于524286,并且变数“low”大于或等于524286, 则变数“values”、“low”、及“high”全部减524286,使得由变量“low” 及“high”所界定的区间向下位移,且使得变量“value”的值也向下位移。 然而,若发现变量“high”不小于524286,且变量“low”不大于或等于 524286,且变量“low”大于或等于262143,且变量“high”小于786429, 则变数“value”、“low”、及“high”全部减262143,使得由变量“low” 及“high”所界定的区间向下位移,且使得变量“value”的值也向下位移。 然而,若未满足前述任一种情况,则舍弃区间再标准化。

然而,若满足步骤570fa评估的任一个前述件,则执行区间增加运算 570fb。在区间增加运算570fb,变量“low”的值加倍。同样,变量“high” 的值加倍,加倍结果递增1。同样,变量“value”的值加倍(朝左位移1 位),及由助手函数“arith_get_next_bit”所得的位串流的一位被用作最低 有效位。据此,变量“low”及“high”之间的区间大小被近似地加倍,及 变量“value”的精度通过使用该位串流的一新位而增高。如前述,步骤 570fa及570fb重复直至达“断裂”状况,即,直至变量“low”与“high” 数值间的区间够大为止。

有关运算法则“arith_decode()”的函数性,须注意在步骤570e,依 据由变量“cum_freq”所参照的累积频率表的两相邻登录项目,变量“low” 与“high”数值间的区间缩小。若所选累积频率表的两相邻值间的区间小, 即,若相邻值较为靠近,则步骤570e所获得的变量“low”与“high”数 值间的区间将相对较小。相反地,若累积频率表的两相邻登录项目较为远 离,则步骤570e所获得的变量“low”与“high”数值间的区间将相对较 大。

结果,若步骤570e所获得的变量“low”与“high”数值间的区间为 相对较小,则将执行大量的区间再标准化步骤来复位标该区间至“足够” 的大小(使得不满足状况评估570fa的任一种状况)。如此,相对较大量的 来自位串流的位将用来提高变量“value”的精度。相反地,若步骤570e 所获得的区间大小为相对较大,则只需少量重复区间标准化步骤570fa及 570fb从而将变量“low”与“high”数值间的区间再标准化为“足够”大 小。如此,只有相对较少数量得来自位串流的位将用来提高变量“value” 的精度,及准备下一个符号的解码。

综上所述,若解码一符号(其包含较高概率且所选累积频率表的登录 项目是与其大区间相关联),则将只从位串流读取较少数量的位,来允许 随后符号的解码。相反地,若解码一符号(其包含较低概率且所选累积频 率表的登录项目是与其小区间相关联),则将从位串流取得较大量的位来 准备下一符号的解码。

如此,累积频率表的登录项目反映不同符号的概率,同时也反映解码 一序列符号所需位数目。通过依据上下文,亦即依据事先解码符号(或频 谱值)而变量累积频率表,例如通过依据上下文而选择不同的累积频率表, 可探讨不同符号间的随机相依性,其允许随后的(或相邻的)符号的特定 位率有效编码。

综上所述,已经参考图5g描述的函数“arith_decode()”是连同累积 频率表“arith_cf_m[pki][]”调用,对应于由函数“arith_get_pk()”所返 回的指数“pki”,判定最高有效位平面值m(其可被设定为由返回变量 |symbol”表示的符号值)。

6.7.逸出机制

虽然已解码的最高有效位平面值m(其可由函数“arith_decode()” 返回作为符号值)为逸出符号“ARITH_ESCAPE”,但解码另一个最高有 效位平面值m,及变量“lev”递增1。据此,获得有关最高有效位平面值 m的数值重要性及要被解码的较低有效位平面数目的信息。

若逸出符号“ARITH_ESCAPE”经解码,则位准变量“lev”递增1。 如此,输入至函数“arith_get_pk”的状态值也经修正,由最高位(位24 及以上)所表示的值对运算法则312ba的下次迭代增加。

6.8.依据图5h的上下文更新

一旦频谱值完全被解码(即,全部最低有效位平面皆已经相加,上下 文表q及qs是通过调用函数“arith_update_context(a,i,lg)”而更新)。后 文中,将参考图5h描述有关函数“arith_update_context(a,i,lg)”的细节, 其显示该函数的伪程序码表示。

函数“arith_update_context(a,i,lg)”接收已解码的量化频谱系数a、 要被解码的频谱值(或已解码的频谱值)指数i、及与目前音频帧相关联 的频谱值(或频谱系数)的数目lg作为输入变量。

在步骤580,目前已解码的量化频谱值(或系数)a被拷贝至上下文 表或上下文数组q。如此,上下文表q的登录项目q[l][i]设定为a。同样, 变量“a0”被设定为值“a”。

在步骤582,判定上下文表q的位准值q[l][i].l。经由默认,将上下文 表q的位准值q[l][i].l设定为零。然而,若目前已解码的频谱值a的绝对 值大于4,则位准值q[l][i].l递增。随着各次递增,变量“a”向右位移一 位。重复位准值q[l][i].l的递增,直至变量a0的绝对值小于或等于4为止。

在步骤584,设定上下文表q的2-位上下文值q[l][i].c。若目前已解码 的频谱值a等于零,则2-位上下文值q[l][i].c被设定为零值。否则,若已 解码的频谱值a的绝对值小于或等于1,则2-位上下文值q[l][i].c设定为1。 否则,若目前已解码的频谱值a的绝对值小于或等于3,则2-位上下文值 q[l][i].c设定为2。否则,即,若目前已解码的频谱值a的绝对值大于3, 则2-位上下文值q[l][i].c设定为3。如此,2-位上下文值q[l][i].c是通过目 前已解码的频谱值a的极为粗糙的量化而获得。

在接续步骤586,此步骤仅在目前已解码的频谱值的指数i等于帧的 系数(频谱值)数目lg时才执行,换言之,若帧的最末频谱值已经解码及 核心模是线性预测域核心模(其是以“core_mode==1”指示),则登录项 目q[l][j].c被拷贝入上下文表qs[k]。参考标号586所示,执行拷贝,使得 目前帧的频谱值数目lg被列入考虑用以将登录项目q[l][j].c拷贝至上下文 表qs[k]。此外,变量“previous_lg”具有值1024。

然而,可替换地,若目前已解码的频谱系数的指数i达lg值,及核心 模是频域核心模(其是以“core_mode==1”指示),则上下文表q的登录 项目q[l][j].c被拷贝入上下文表qs[j]。

此种情况下,变量“previous_lg”被设定为值1024与帧内频谱值数目 lg间的最小值。

6.9.解码程序的摘要

后文中,将简单摘述解码程序。有关其细节,请参考前文讨论及图3、 图4及图5a至图5i。

始于最低频率系数并且前进至最高频率系数,量化频谱系数a是无噪 声式编码及传输。

得自进阶音频编码(AAC)的系数储存于数组 “x_ac_quant[g][win][sfb][bin]”,及无噪声编码码字组的传输顺序为当其是 以所接收的及储存于数组的顺序解码时,bin为最快递增指数,而g为最 慢递增指数。指数bin表示频率仓。指数“sfb”表示定标因子带。指数“win” 指示窗。指数“g”指示音频帧。

得自变换编码激励的系数被直接储存在数组 “x_tcx_invquant[win][bin]”,并且无噪声编码码字组的传输顺序为当其是 以所接收的及储存于数组的顺序解码时,“bin”为最快递增指数,而“win” 为最慢递增指数。

首先,在上下文表或数组“qs”中所储存的过去上下文与目前帧q上 下文(储存在上下文表或数组q)间进行映射。过去上下文“qs”被储存 在每一频率行(或每一频率仓)2-位。

在上下文表“qs”中所储存的过去上下文与储存在上下文表“q”的 目前帧上下文间的映射是使用函数“arith_map_context()”执行,其伪程 序码表示是显示于图5a。

无噪声解码器输出带符号的量化频谱系数“a”。

首先,基于环绕要解码的量化频谱系数的事先解码频谱系数,计算上 下文状态。上下文状态s与由函数“arith_get_context()”所返回值的首 24位相对应。超过返回值的第24位的位与预测位平面位准lev0相对应。 变量“lev”被初始化为lev0。函数“arith_get_context”的伪程序码表示在 图5b及图5c中示出。

一旦状态s及预测位准“lev0”为已知,则使用函数“arith_decode()” 解码最高有效逐2-位平面值m,被馈以与上下文状态相对应的概率模型相 对应的适当累积频率表。

对应关系是以函数“arith_get_pk()”作出。

函数“arith_get_pk()”的伪程序码表示在图5e中示出。

可替代函数“arith_get_pk()”的另一个函数“get_pk”的伪程序码表 示显示于图5f。可替代函数“arith_get_pk()”的另一个函数“get_pk” 的伪程序码表示显示于图5d。

使用连同累积频率表“arith_cf_m[pki][]”被调用的函数“arith_decode ()”来解码值m,此处“pki”是对应于由函数“arith_get_pk()”(或另 外,由函数“get_pk()”)所返回的指数。

算术编码器为使用以定标标度产生标签的方法的整数实现方式(例如 参考K.Sayood“Introduction to Data Compression”第三版2006年,Elsevier  Inc.)。图5g所示伪C码描述所使用的运算法则。

当解码值m为逸出符号“ARITH_ESCAPE”时,解码另一个值m, 及变量“lev”递增1。一旦值m并非逸出符号“ARITH_ESCAPE”,通过 调用函数“arith_decode()”连同累积频率表“arith_cf_r[]”达“lev”次, 则其余位平面从最高有效位准至最低有效位准解码。例如,该累积频率表 “arith_cf_r[]”可描述均衡概率分布。

解码位平面r允许以下述方式改进事先解码值m:

一旦频谱量化系数已完全解码,则上下文表q或所储存的上下文qs 由函数“arith_update_context()”更新,用于下一个要解码的量化频谱系 数。

函数“arith_update_context()”的伪程序码表示显示于图5h。

此外,定义的图例显示于图5i。

7.映射表

在依据本发明的实施例,特别优异的表“arith_s_hash”及 “arith_gs_hash”及“ari_cf_m”是用于函数“get_pk”的执行,其已经参 考图5d讨论;或用于函数“arith_get_pk”的执行,其已经参考图5e讨论; 或用于函数“get_pk”的执行,其已经参考图5f讨论;或用于函数 “arith_decode”的执行,其已经参考图5g讨论。

7.1.依据图17的表“arith_s_hash[387]”

在图17的表中示出了表“arith_s_hash”特别优异的实现方式的内容, 该表是用于已经参考图5d讨论的函数“get_pk”。须注意,图17的表列举 表“arith_s_hash[387]”的387登录项目。也须注意,图17的表表示显示 依元素指数排序的元素,使得第一值“0x00000200”是对应于具有元素指 数(或表指数)0的表登录项目“ari_s_hash[0]”,使得最末值“0x03D0713D” 对应于具有元素指数或表指数386的表“ari_s_hash[386]”。进一步须注意, “0x”指示表“ari_s_hash”的表登录项目是以十六进制格式表示。此外, 依据图17的表“ari_s_hash”的表登录项目是以数值顺序排列,从而允许 执行函数“get_pk”的第一表评估540。

进一步须注意,表“ari_s_hash”的表登录项目的最高有效24位表示 状态值,而最低有效8位表示映射规则指数值pki。

如此,表“ari_s_hash”的表登录项目描述一状态值“直接命中”映射 至一映射规则指数值“pki”。

7.2.依据图18的表“ari_gs_hash”

表“ari_gs_hash”的特佳实施例的内容显示于图18的表。此处须注意, 表18的表列举表“ari_gs_hash”的登录项目。该些登录项目是由一维整数 型登录项目指数(也标示为“元素指数”或“数组指表”或“表指标”) 参照,例如标示以“i”。须注意,共含225登录项目的表“ari_gs_hash” 极为适合用于由图5d所述的函数“get_pk”的第二表评估使用。

须注意,表“ari_gs_hash”的登录项目是以对零至224间的表指数值 i的表指数i的上升顺序列举。项“0x”指示表登录项目是以十六进制格 式描述。如此,第一表登录项目“0X000000401”对应于具有表指数0的 表登录项目“ari_gs_hash[0]”,而最末表登录项目“0Xfffff3f”对应于具有 表指数224的表登录项目“ari_gs_hash[224]”。

也须注意,表登录项目是以数值型上升方式排序,使得表登录项目极 为适合用于函数“get_pk”的第二表评估544。表“ari_gs_hash”的表登录 项目的最高有效24位描述状态值范围间的边界,而登录项目的8最低有 效位描述与24最高有效位所界定的状态值范围相关联的映射规则指数值 “pki”。

7.3.依据图19的表“ari_cf_m”

图19显示一集合64个累积频率表“ari_cf_m[pki][9]”,其中一个是由 音频编码器100、700或音频解码器200、800选用来执行函数 “arith_decode”,即,用于最高有效位平面值的解码。图19所示的64累 积频率表中的选定者利用表“cum_freq[]”的函数执行函数“arith_decode ()”。

如自图19可知,各行表示有9个登录项目的累积频率表。举例言之, 第一行1910表示针对“pki=0”的一累积频率表的9登录项目。第二行1912 表示针对“pki=1”的一累积频率表的9登录项目。最后,第64行1964 表示针对“pki=63”的一累积频率表的9登录项目。如此,图19有效表 示针对“pki=0”至“pki=63”的64个不同累积频率表,其中64个累积频 率表各自是以单行表示,及其中该些累积频率表各自包含9登录项目。

在一行内部(例如,行1910或行1912或行1964),最左值描述累积 频率表的第一登录项目,而最右值描述累积频率表的最末登录项目。

如此,图19的表表示的各行1910、1912、1964表示由依据图5g的 函数“arith_decode”使用的一累积频率表的登录项目。函数“arith_decode” 的输入变量“cum_freq[]”描述表“ari_cf_m”的64累积频率表(9登录 项目的各行表示)中的哪个应当用于目前频谱系数的解码。

7.4.依据图20的表“ari_s_hash”

图20显示表“ari_s_hash”的另一替代实例,其可组合依据图5e或图 5f的替代函数“arith_get_pk()”或“get_pk()”使用。

依据图20的表“ari_s_hash”包含386登录项目,其是以表指数的上 升顺序列举于图20。如此,第一表值“0x0090D52E”对应于具有表指数 0的表登录项目“ari_s_hash[0]”,而最末表值“0x03D0513C”对应于具有 表指数386的表登录项目“ari_s_hash[386]”。

“0x”指示表登录项目是以十六进制格式表示。表“ari_s_hash”的表 登录项目的最高有效24位表示重要状态,而表“ari_s_hash”的登录项目 最低有效8位表示映射规则指数值。

据此,表“ari_s_hash”的登录项目描述重要状态映射至映射规则指数 值“pki”。

8.性能评估及优点

依据本发明的实施例使用如前文讨论的更新函数(或运算法则)及更 新的表集合来获得运算复杂度、内存需求、与编码效率间的改良式折衷。

概略言之,依据本发明的实施例形成一种改良式频谱无噪声编码。

本说明书描述CE用于频谱系数的改良式频谱无噪声编码的实施例。 所提示的方案是基于“原先”上下文式算术编码方案,如描述于USAC草 拟标准工作草案4,但显著减低内存需求(RAM、ROM),同时维持无噪 声编码效能。WD3(即,音频编码器的输出信号提供USAC草拟标准工 作草案的位串流)的无损耗转码证实为可能。此处所述方案大致上可定标, 允许内存需求与编码效能间的进一步替代折衷。依据本发明的实施例是针 对替代如用于USAC草拟标准工作草案4的无噪声编码方案。

此处所述算术编码方案是基于USAC草拟标准工作草案4(WD4)的 参考模型0(RM0)中的方案。频谱系数先前于频率模型或时间模型为上 下文。此一上下文用于算术编解码器(编码器或解码器)的累积频率表的 选择。比较依据WD4的实施例,上下文模型化进一步改良,而保有符号 概率的表重新训练。不同概率模型的数目自32增至64。

依据本发明的实施例将表大小(数据ROM需求)缩减至900个长度 32-位字组或3600字节。相反地,依据USAC草拟标准的WD4实施例要 求16894.5字组或76578字节。依据本发明的若干实施例,每个核心编码 器信道的静态RAM需求自666字组(2664字节)减至72字组(288字节)。 同时,可全然保有编码性能,与共9个运算点的总数据率相比,甚至可达 约1.04%至1.39%的增益。全部工作草案3(WD3)位串流可以无损耗方 式转码而不影响位储存限制。

依据本发明的实施例所提示的方案可扩增:内存需求与编码效能间的 弹性折衷是可能的。通过加大表的大小从而进一步增加编码增益。

后文中,将提供USAC草拟标准WD4的编码构想的简短讨论来协助 了解此处所述构想的优点。在USAC WD4中,基于上下文的算术编码方 案是用于量化频谱系数的无噪声编码。作为上下文,使用频率及时间上为 先前的已解码的频谱系数。依据WD4,最大数目16频谱系数被用作上下 文,其中12个的时间在先。用于上下文的及要被解码的频谱系数二者是 分组成4-重元组(即,四个频谱系数的频率相邻,参考图10a)。上下文缩 减且映射至一累积频率表,其然后用来解码频谱系数的下一个4-重元组。

针对完整的WD4无噪声编码方案,需要16894.5字组(67578字节) 的内存需求(ROM)。此外,每个核心编码器信道的要求666字组(2664 字节)的静态ROM来储存下一帧状态。

图11a的表表示描述用于USAC WD4算术编码方案的表。

完整USAC WD4解码器的总内存需求估算为对不含程序代码的数据 ROM为37000字组(148000字节),而对静态RAM为10000至17000字 组。显然,无噪声编码器表消耗总数据ROM需求的约45%。该最大的个 别表已经耗掉4096字组(16384字节)。

发现全部表组合的大小及最大的个别表二者皆超过由固定点芯片对 低预算的可携式装置所提供的典型缓冲大小,其是在8至32千字节的典 型范围(例如ARM9e、TIC64xx等)。这意味着表的集合可能并未储存在 最快数据RAM(其允许快速随机存取数据)。如此造成整个解码过程变慢。

后文中,将简短叙述所提出的新颖方案。

为了克服前述问题,提示一种改良式无噪声编码方案来替代USAC草 拟标准WD4的方案。至于基于上下文的算术编码方案,其是基于USAC 草拟标准WD4方案,但具有改良式方案特征用来自该上下文导出累积频 率表。此外,上下文导算及符号编码是对单一频谱系数的粒度(granularity) 执行(与如USAC草拟标准WD4所使用的4-重元组相反)。总计7个频 谱系数用于上下文(至少在某些情况下)。通过减少映射关系,选出总计 64概率模型或累积频率表(在WD4:32)中的一个。

图10b显示用于所提出的方案,用于状态计算的上下文的图解代表图 (其中,用于零区检测的上下文未显示于图10b)。

后文中,将简短说明有关内存需求缩减的讨论,该目的可使用所提出 的编码方案达成。所提出的新方案具有总计900字组(3600字节)的ROM 需求(参考图11b的表,其描述用于所提出的编码方案的表)。

与USAC草拟标准WD4的无噪声编码方案的ROM需求相比较,ROM 需求减少15994.5字组(64978字节)(也参考图12a,该图显示USAC草 拟标准WD4的无噪声编码方案的ROM需求以及所提出的无噪声编码方 案的ROM需求的图解代表图)。如此将完整USAC解码器的总ROM需求 从约37000字组减少至约21000字组,或减少多于43%(参考图12b,其 显示依据USAC草拟标准WD4,以及依据本提案的总USAC解码器数据 ROM需求的图解代表图)。

此外,也减少下一帧(静态RAM)的上下文导算所需信息量。依据 WD4,典型具有16-位分辨率的系数的完整集合(至多1152)加至须要储 存的每个10-位分辨率4-重元组的一组指数,其相加达到每个核心编码器 信道(完整USAC WD4解码器:约10000至17000字组)666字组(2664 字节)。

用于依据本发明的实施例的新颖方案将持久信息减少至每个频谱系 数只有2-位,其相加达到每个核心编码器信道总计72字组(288字节)。 对静态内存的需求可减少594字组(2376字节)。

后文中,将描述有关细码效率可能增高的若干细节。依据新颖提案的 实施例的编码效率是对依据USAC草拟标准WD3的参考质量位串流作比 较。该比较是基于参考软件解码器,利用转码器执行。有关依据USAC草 拟标准WD3的无噪声编码与本案所提出的编码方案的比较细节,参考图 9,该图显示测试配置的示意代表图。

虽然依据本发明的实施例相比于依据USAC草拟标准WD3或WD4 的实施例,内存需求大减,但不仅维持编码效率,反而编码效率略增。编 码效率平均增高1.04%至1.39%。有关其细节请参考图13a的表,其显示 依据本发明的实施例,使用工作草案算术编码器及音频编码器(例如USAC 音频编码器),由USAC编码器所产生的平均位率的表表示。

通过测量位储存的填补位准,显示所提出的无噪声编码可对每个运算 点,无损耗地转码WD3位串流。有关其细节,参考图13b的表,其显示 依据本发明的实施例的音频编码器及依据USAC WD3的音频编码器,位 储存控制的表表示。

每个运算模的平均位率的相关细节,以帧为基准的最小、最大及平均 位率,及基于帧基准的最佳/最恶劣情况性能可参考图14、15及16的表, 其中图14的表显示依据本发明的实施例的音频编码器及依据USAC WD3 的音频编码器,平均位率的表表示;其中图15的表显示以帧为基准的 USAC音频编码器的最小、最大及平均位率的表表示;及其中图16的表 显示基于帧基准的最佳及最恶劣情况的表表示。

此外,须注意,依据本发明的实施例提供良好扩充性。通过调整表大 小,可依据需求而调整内存需求、运算复杂度、及编码效率间的折衷。

9.位串流语法

9.1.频谱无噪声编码器的有效负载

后文中,将叙述有关频谱无噪声编码器的有效负载的若干细节。在若 干实施例,有多种不同编码模,诸如所谓的线性预测域、“编码模”及“频 域”编码模。在线性预测域编码模,基于音频信号的线性预测分析而执行 噪声成形,并且噪声成形信号是在频域被编码。在频域模,基于心理声学 分析执行噪声成形,并且音频内容的噪声成形版本在频域中被编码。

得自“线性预测域”编码信号及“频域”编码信号二者的频谱系数是 经定标量化,然后通过调适性上下文相依性算术编码而以无噪声式编码。 量化系数从最低频传输至最高频。各个单独量化系数分裂成最高有效逐2- 位平面m,及其余较低有效位平面r。值m是依据该系数的邻近编码。其 余较低有效位平面r是经熵编码,而未考虑上下文。值m及r形成算术编 码器的符号。

算术解码程序的细节描述于此处。

9.2.语法元素

后文中,将参考图6a至6h描述载有算术式编码频谱信息的位串流的 位串流语法。

图6a显示所谓的USAC原数据区块(“usac_raw_data_block()”)的 语法表示。

USAC原数据区块包含一个或多个单信道元素 (“single_channel_element()”)和/或一个或多个信道对元素 (“channel_pair_element()”)。

现在参考图6b,叙述单信道元素的语法。依据核心模,单信道元素包 含线性预测域信道串流(“lpd_channel_stream()”)或频域通道串流 (“fd_channel_stream()”)。

图6c显示信道对元素的语法表示。信道对元素包含核心模信息 (“core_mode0”、“core_mode1”)。此外,信道对元素包含配置信息“ics_info ()”。此外,依核心模信息而定,该信道对元素包含与该些信道中的第一 个相关联的线性预测域信道串流或频域通道串流,及该信道对元素也包含 与该些通道中的第二个相关联的线性预测域信道串流或频域通道串流。

配置信息“ics_info()”的语法表示显示在图6d,包含多个不同配置 信息项,其与本发明并非特别有关。

语法表示显示于图6e的频域通道串流(“fd_channel_stream()”),包 含增益信息(“global_gain”)及配置信息(“ics_info()”)。此外,频域信 道串流包含定标因子数据(“scale_factor_data()”),其描述用于不同定标 因子带的频谱值定标的定标因子,并且其被(例如)定标器150及复位标 器240应用。频域信道串流也包含表示算术式编码频谱值的算术式编码频 谱数据(“ac_spectral_data()”)。

语法表示显示于图6f的算术式编码频谱数据(“ac_spectral_data()”), 包含用于选择性地重置上下文的选择性算术重置标记(“arith_reset_flag”), 如上所述。此外,算术式编码频谱数据包含多个算术-数据区块 (“arith_data”),其载有算术式编码频谱值。该算术式编码数据区块的结 构取决于频带数目(以变量“num_bands”表示),并且也取决于算术重置 标记的状态,稍后详述。

算术式编码数据区块的结构也将参考图6g作说明,该图显示该算术 式编码数据区块的语法表示。算术式编码数据区块内部的数据表示是取决 于要被编码的频谱值数目lg、算术重置标记状态、并且还取决于上下文, 即,事先解码频谱值。

用于频谱值的目前集合编码的上下文是依据参考标号660所示的上下 文判定运算法则而判定。前文已经参考图5a讨论的上下文判定运算法则 的细节。算术式编码数据区块包含lg个码字组集合,各个码字组集合代表 一个频谱值。一个码字组集合包含使用1至20位表示频谱值的最高有效 位平面值m的算术码字组“acod_m[pki][m]”。此外,若该频谱值需要比 最高有效位平面更多的位平面用于正确表示,则该码字组集合包含一个或 多个码字组“acod_r[r]”。码字组“acod_r[r]”表示使用1至20位间的较 低有效位平面。

但是,若还需要一个或多个较低有效位平面(除了最高有效位平面值 之外)用于频谱值的适当表示,则此是使用一个或多个算术逸出码字组 (“ARITH_ESCAPE”)进行信号通知。如此,一般可以说,对一频谱值测 定需要多少位平面(最高有效位平面及可能地,一个或多个额外较低有效 位平面)。若需一个或多个较低有效位平面,则此是由一个或多个算术逸 出码字组“acod_m[pki][ARITH_ESCAPE]”进行信号通知,其是依据目前 选定的累积频率表编码,其累积频率表指数是以变量pki给定。此外,若 有一个或多个算术逸出码字组是包含于该位串流,则上下文经调适,可参 考参考标号664、662。接在该一算术逸出码字组后方,算术码字组 “acod_m[pki][m]”包含于该比特流,如参考标号663所示,其中pki标 示目前有效概率模型指数(考虑通过包含算术逸出码字组所导致的上下文 调适),及其中m标示要被编码或要被解码的频谱值的最高有效位平面值。

如前文讨论,任何较低有效位平面的存在导致一个或多个码字组 “acod_r[r]”的存在,其各自表示最低有效位平面的一位。一个或多个码 字组“acod_r[r]”是依据相对应的累积频率表编码,该累积频率表为恒定 且为上下文非相干性。

此外,须注意,在各个频谱值的编码后,上下文经更新,如参考标号 668所示,使得该上下文典型地是与两个随后频谱值的编码不同。

图6h显示定义算术式编码数据区块语法的定义及辅助元素的图例。

综上所述,已经叙述位串流格式,其可以由音频编码器100提供,并 且其可以由音频解码器200评估。算术编码频谱值的位串流被编码,使得 其匹配前文讨论的解码运算法则。

此外,须注意编码是解码的反向运算,使得其通常假设编码器使用前 文讨论的表执行表查询,其近似为对于解码器执行表查询的逆。一般地, 了解解码运算法则和/或期望的位串流语法的本领域技术人员将容易设计 算术编码器,该算术编码器提供在位串流语法所定义的及算术解码器所要 求的数据。

10.依据图21及22的其它实施例

后文中,将描述依据本发明的若干其它简化实施例。

图21显示依据本发明的一实施例的一种音频编码器2100的方块示意 图。该音频编码器2100被配置为接收一输入的音频信息2110,以及基于 此信息而提供一已编码的音频信息2112。该音频编码器2100包含一能量 压缩时域至频域变换器2120,其被配置为接收该输入的音频表示2110的 时域表示2122,以及基于此表示而提供一频域音频表示2124,使得该频 域音频表示包含一频谱值集合(例如频谱值a)。该音频编码器2100也包 含一算术编码器2130,其被配置为使用一可变长度码字组而编码频谱值 2124或其预处理版本。该算术编码器2130被配置为将一频谱值或一频谱 值的最高有效位平面值映射至一码值(例如表示可变长度码字组的一码 值)。

该算术编码器2130包含映射规则选择2132及一上下文值判定2136。 该算术编码器被配置为依据描述上下文状态的一数值型目前上下文值而 选择映射规则,该映射规则描述一频谱值2124或一频谱值2124的最高有 效位平面的映射至一码值(其可表示一可变长度码字组)。该算术解码器 被配置为依据多个先前已编码的频谱值,并且也依据要被解码的频谱值是 在第一预定频率区还是在第二预定频率区而用来判定用在该映射规则选 择2132的一数值型目前上下文值2134。如此,该映射关系2131被调整适 应不同频率区的特定特性。

图22显示依据本发明的另一实施例的一种音频信号解码器2200的方 块示意图。该音频信号解码器2200被配置为接收已编码的音频信息2210, 及基于此而提供已解码的音频信息2212。该音频信号解码器2200包含一 算术解码器2220,其被配置为接收该频谱值的已经算术编码的表示2222, 以及基于此而提供多个已解码的频谱值2224(例如已解码的频谱值a)。 该音频信号解码器2200也包含一频域至时域变换器2230,其被配置为接 收该些已解码的频谱值2224,及使用该些已解码的频谱值而提供一时域音 频表示,从而获得该已解码的音频信息2212。

该算术解码器2220包含映射关系2225,其是用来将一码值(例如提 取自表示该已编码的音频信息一位串流的一码值)映射至一符号码(该符 号码例如可描述一已解码的频谱值或该已解码的频谱值的最高有效位平 面)。该算术解码器进一步包含映射规则选择2226,其提供映射规则选择 信息2227至该映射关系2225。该算术解码器2220也包含一上下文值判定 2228,其提供一数值型目前上下文值2229至该映射规则选择2226。算术 解码器2220被配置为依据上下文状态而选定映射规则,该映射规则描述 一码值(例如,提取自表示该已编码的音频信息一位串流的一码值)映射 至一符号码(例如,表示该已解码的频谱值的一数值,或表示该已解码的 频谱值的最高有效位平面的一数值)。该算术解码器被配置为依据多个事 先解码频谱值并且也依据要被解码的频谱值是否位于第一预定频率区或 是位于第二预定频率区,而判定描述该目前上下文状态的一数值型目前上 下文值。

如此,在该映射关系2225中考虑不同频率区的不同特性,其通常带 来编码效率的提高而未显著增加运算量。

11.实施替代例

虽然在装置的上下文已经描述若干方面,但显然此些方面也表示相对 应方法的说明,此处区块或装置与方法步骤或方法步骤的特征相对应。类 似地,在方法步骤的上下文所述方面也表示相对应区块或相对应装置的项 目或特征的描述。部分或全部方法步骤可由(或使用)硬件装置执行,例 如微处理器、可程序计算机或电子电路。在若干实施例中,最重要方法步 骤中的某一个或多个可由此种装置执行。

本发明编码的音频信号可储存于数字储存介质,或可在传输媒介上传 输,诸如无线媒介媒体或有线传输媒介(诸如,互联网)。

依据某些实施要求而定,本发明实施例可以硬件或软件实施。实施可 使用具有可电子式读取的控制信号储存其上的数字储存介质,例如软盘、 DVD、蓝光盘、CD、ROM、PROM、EPROM、EEPROM或闪存执行, 该些控制信号与可程序计算机协力合作,使得可执行各个方法。因此,数 字储存介质可以是计算机可读的。

依据本发明的若干实施例包含一数据载体,其具有可电子式读取的控 制信号,该些控制信号与可程序计算机协力合作,使得可执行此处所述方 法中的一个。

一般而言,本发明的实施例可实施为带有程序代码的计算机程序产 品,当该计算机程序产品运行在计算机上时,该程序代码可操作地执行该 方法中的一个。程序代码例如可储存在机器可读取载体上。

其它实施例包含用以执行储存在机器可读取载体上的此处所述方法 中的一个的计算机程序。

换言之,因此,本发明方法的实施例为具有程序代码用以执行储存在 机器可读取载体上的此处所述方法中的一个的计算机程序。

因此,本发明方法的又一实施例为数据载体(或数字储存介质、或计 算机可读介质)包含用以执行此处所述方法中的一个的计算机程序记录于 其上。

因此,本发明方法的又一实施例为一数据串流或一序列信号,表示用 以执行此处所述方法中的一个的计算机程序。该数据串流或信号序列例如 可被配置为经由数据通讯连接(例如,经由互联网)而传输。

又一实施例包含被配置为或被调适为执行此处所述方法中的一个的 处理装置,例如计算机或可编程逻辑装置。

又一实施例包含其上已经安装计算机程序用以执行此处所述方法中 的一个的计算机。

在若干实施例,可编程逻辑装置(例如,现场可编程门阵列)可用来 执行此处所述方法的部分或全部功能。在若干实施例,现场可编程门阵列 可与微处理器协力合作来执行此处所述方法中的一个。大致上,该等方法 较佳是由任何硬件装置执行。

前述实施例仅供举例说明本发明的原理。须了解,此处所述配置及细 节的修正与变更对于本领域的技术人员是显而易见的。因此,本发明的范 围仅受所附权利要求书的范围限制,而非受此处实施例的描述及解说所呈 现的特定细节所限。

虽然前文已经特别显示及参考前述特定实施例作说明,但本领域技术 人员须了解在未背离其精神及范围的情况下,可以在形式与细节上作出多 项其它改变。须了解,在未背离本文所公开的及随后的权利要求包含的广 义概念的情况下,适应于不同实施例而做出多项变化。

12.结论

总结而言,发现依据本发明的实施例形成一种改良式无噪声编码方 案。依据该新颖提案的实施例允许将内存需求自16894.5字组减少至900 字组(ROM)及自666字组减少至72字组(每个核心编码器信道的静态 RAM)。如此,允许在一个实施例中的完整系统的数据ROM需求减少约 43%。同时,不仅完全维持编码性能,同时甚至平均增高编码性能。WD3 的(依据USAC草拟标准WD3所提供的位串流的)无损耗转码被证实为 可能。如此,通过将此处所述无噪声编码采用至该USAC草拟标准的未来 工作草案,获得依据本发明的实施例。

要言之,在一实施例,所提出的新颖无噪声编码可导致MPEG USAC 草拟标准就下列方面的修正:就如图6g所示位串流元素“arith_data()” 的语法;就前述频谱无噪声编码器的有效负载且如图5h所示;就前述频 谱无噪声编码;就如图4所示的状态计算的上下文;就如图5i所示的定义; 就前文参考图5a、5b、5c、5e、5g、5h所述的解码程序;及就如图17、 18、20所示的表;及就如图5d所示的函数“get_pk”。但另外,依据图20 的表“ari_s_hash”可用来替代图17的表“ari_s_hash”,及图5f的函数 “get_pk”可用来替代依据图5d的函数“get_pk”。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号