用于创建对线性依赖于值平方的计算结果的表示的方法

文档序号:2829272阅读:290来源:国知局
专利名称:用于创建对线性依赖于值平方的计算结果的表示的方法
技术领域
本发明涉及对线性依赖于值平方的计算结果的表示的创建,例如 在一些音频编码器中需要的一组值的平方和,在这些音频编码器中,根据心理声学模型,将频线(frequency line)组合形成频群(frequency group),以使用该频群的信号能量执行进一步编码。
背景技术
在诸如MPEG Layer-3或MPEG AAC等现代基于滤波器组的音频 编码方法中,在编码器中使用心理声学模型。在该心理声学模型中, 将变换至频率范围的音频信号的整个频谱划分为单独的频群,每个频 群具有不同宽度和/或不同数目的频线。为了计算心理声学的听力阈 值,决定是否应该使用中心/侧立体声编码,以及评估和/计算音频编 码器的量化模块中的缩放因子,在心理声学模型中计算单独频群中的 音频信号部分的信号能量。这是按照如下方式实现的对每个单独频 线进行平方,产生线能量,随后将频群中的所有线能量相加,以形成 频群的频带能量,在例如MPEG AAC的情况下,每个音频通道可能 存在大约40到60个频线。下面将考虑在定点处理器中实施该方法的特殊应用。 在定点表示中,用例如24比特或32比特的字宽来表示频线。只 有16比特的字宽是不够的。使用全局縮放因子或移位因子,这应用于 音频通道的所有频线以及解码器中处理的所有音频通道的所有频线, 并确定每个频线值必须向左或向右移动多少个位置,以便可以再次获 得原始縮放,这称作块浮点表示。即,平等地选送(gate out)至少一 个音频通道的所有频线,以及/或者这些频线处于相同的縮放等级。考 虑到单独频线的幅度一般具有较大的动态变化,用相对较高的精度表示频线中的一些,例如22个有效比特,24比特的字宽,或者30个有 效比特,32比特的字宽,而只用少量有效比特表示其他频线,因此相 当不精确。在定点处理器中实现上述基于滤波器组的音频编码方法时,会出 现如下所述的问题。首先,问题涉及信号能量自身的表示。通过平方,如果要保持整 体精度,则作为频线的平方和的信号能量获得了比频线的动态变化大 一倍的动态变化。确实,存在对信号能量进行表示的多种可能方式。 一种可能方式 是用数据类型表示信号能量,该数据类型的字宽是用于表示频线的数 据类型的字宽的两倍,例如,字宽为48比特或6丰比特的数^^型。 例如,设想由24比特的数据类型表示的具有22个有效比特的频线。 基于总和,信号能量连同其他频线将具有至少44个有效比特,并可以 采用48比特的数据类型表示。然而,该过程至少对于64比特能量是 不可行的,即在以32比特数据类型表示频线的情况下。原因在于大多 数传统定点处理器根本不支持64比特数据类型,或者相比于例如32 比特的存取操作和计算,使用64比特数据类型的存储器存取操作和计 算速度太慢。此外,在64比特数据的情况下,存储器消耗显著提高。信号能量表示的另一可能方式是通过使用尾数和指数的浮点数据 类型来表示。同样,假设上述以24比特数据类型表示的具有22个有 效比特的频线的示例情况。则各个群的信号能量可以采用具有包括符 号位和8位指数的16位尾数的标准化或专用(proprietary)浮点数据 类型来表示。这里,如果考虑诸如IEEE-P754等标准化浮点数据类型 或具有任意选择的尾数和指数宽度的专用浮点数据类型,则这是不重 要。在无浮点计算单元的定点处理器上,对于浮点数据类型的计算总 是必须通过多个计算步骤来仿真,从而速度非常缓慢,因此这种过程 是不可行的。在定点处理器中实现上述基于滤波器组的音频编码方法中的另一 问题在于编码方法过程中的信号能量再处理(reprocessing)。例如, 为了计算信号能量与从其导出的听力阈值(listening threshold)之间的
比率或商,在算法中多个不同位置处,将信号能量和听力阈值用于音 频编码器的另一例程。所需除法运算不易在定点处理器上执行。在定点处理器上执行除法运算的一种可能方法是使用单比特(single-bit)除法命令,该命令在一些定点处理器中实现,并在每次 调用时在商中提供附加比特的精度。因此,例如,对于具有48比特精 度的除法运算,需要用于两个信号能量或信号能量与听力阈值的单次 除法运算的48个除法运算命令。因为涉及到较高的计算时间开销,所 以这是不可行的,效率非常低。在定点处理器中实现除法运算的另一可能方法是使用表,并可以 结合用于提高除法运算结果精度的后续迭代步骤。然而,该过程通常 是不可行的,原因在于对于所需的除法运算结果精度,必须使用非常 大的表,或者后续迭代步骤对计算时间的要求很高。结合定点数据类型或通过软件仿真的浮点数据类型,可以在定点 处理器中实现上述两种方法,然而,在这些情况下,在确保结果精度 的同时,相对于计算时间和存储器消耗,均无法提供足够有效的应用。如果使用GPP (通用处理器),则不会出现上述问题。然而,对 于许多应用,因为较高的价格压力和数目较多的部件,使用具有更高 性能的处理器而不是无浮点计算单元的定点处理器本身就是不可能 的。这种应用的示例是移动电话和PDA。响应于SMR计算问题,g口,信号能量与听力阈值之比的计算, US 6,754,618 Bl在使用定点DSP芯片的背景下解决该问题。根据该 文献中提出的过程,首先执行常规加窗和后续傅立叶变换,以将音频 信号分解为它的频谱分量,此后,根据各个频线值的实部和虚部,计 算每个输入信号和/或频线信号的能量,即,线能量。在不进一步创建 频线群的信号能量的情况下,也可以基于这些群的信号能量来继续执 行该方法。该文献的内容尝试消除以下问题大多数输入数据(即能 量)具有过大的动态范围,大多数定点DSP芯片只包括16到24位的 数据宽度,而MPEG标志要求34位的数据宽度,即101dB的动态范 围,因此,必须首先对能量进行缩放。具体地,该文献提出离开前面 的过程,而使用两个不同的缩放值。更精确地,根据该文献,将能量
与阈值相比较,并分别对其进行放大或縮小,以便能够在转换到对数范围时足以用16位来表示对数结果,并能够用16位在对数范围中计 算SMR比。依据是执行放大还是执行縮小,使用不同的阈值表。为 了进行对数计算,使用常用对数乘以10,从而获得单位dB。如果对 放大的线能量取对数的结果是0,则通过对放大的线能量取对数,并 减去阈值能量的对数乘以10,来计算SMR比。否则,将放大的线能 量和縮小的线能量的结果彼此组合。US 6,754,618 Bl中提出的过程通过提出在对数范围中计算SMR 比,避免了上述相对于信号能量再处理的问题中的一些。这去除了复 杂的除法计算。然而,该过程的不利之处在于,因为适合16位DSP 定点处理器的16位定点表示的值范围仅在对数计算后才设置,所以对 数计算仍然相对复杂,同时这种取对数仍然是针对存在较大动态变化 的能量执行的,这导致对于每个能量值必须进行多达两次的取对数运 算。因此,希望在不发生动态范围损失的情况下,简化向对数范围的 转换。US 5,608,663涉及通过向对数定点格式的转换、对数范围中的加 法和随后的逆向(back)转换,来快速执行浮点数的并行乘法。 US 5,197,024总体上涉及指数/对数计算以及相应的装置。 US 6,732,071涉及针对音频编码中的速率控制的有效解决方案, 并针对量化参数值的确定,使用具有完成条件的循环迭代,根据该完 成条件,将量化参数值与从依据最大频线值的项的底2对数中导出的 项相比较。US 6,351,730描述了针对音频编码内增益计算的底2对数的使用。 增益值用于MDCT编码音频编解码器中的比特分配。US 5,764,698描述了将自然对数用于音频信号能量的表示。未给 出向对数范围的转换的更加详细的描述。

发明内容
本发明的目的是提供一种用于创建线性依赖于值平方的结果的表 示的方法和设备,以使计算更加简单,或者具有更小的硬件开销。本目的由根据权利要求1的设备和根据权利要求18的方法来实现。一种用于创建线性依赖于值平方的计算结果的表示的本发明设 备,所述计算结果以未取对数的X比特表示而存在,所述设备包括处理装置,用于对所述值的未取对数的X比特表示执行处理,以 获得线性依赖于所述值的所述计算结果,其中所述处理装置配置为使 用有效缩放因子,以依据所述有效縮放因子对所述计算结果进行缩放;取对数装置,用于向所述计算结果的y比特表示应用对数函数,以获得所述计算结果的已取对数的縮放后表示和/或縮放后计算结果的已取对数的表示,其中所述y比特表示是未取对数的,并且所述y 比特表示是从所述处理装置的例如挑选比特位置等处理中间接或直接 获得的,y小于2x;以及再縮放装置,用于分别向所述縮放后对数表示加上校正值或从中 减去校正值,以获得不再有縮放的计算结果的已取对数的表示,所述 縮放后对数表示与应用于所述有效縮放因子的、诸如縮放后对数等的 对数函数相对应。本发明发现,在向对数范围的转换中,不必考虑线性依赖于值平 方的结果的整个比特宽度。而是,可以对具有x个比特的值的结果进 行縮放,以便基于所述结果的少于x比特的表示,足以获得对数表示。 通过分别向縮放后的对数表示加上或从其减去由应用于缩放因子的对 数函数获得的校正值,可以消除该缩放因子对得到的对数表示的影响, 而不会有任何动态范围损失。因此,本发明的一个优点在于,采用本发明方式,可以将多个结 果转换为对数表示,以使縮放等级对于所有结果都是相同的,同时基 本上保持动态范围。根据本发明的实施例,对所述值的x比特表示的处理包括创建一 组值的平方和,以获得线性依赖于所述值的计算结果。不是仅在所述 计算了平方和之后才执行所述有效縮放因子,而是在之前用公共縮放 因子对X比特表示进行縮放。根据值的数目和/或通过所述值的X比特 表示中的最大数目的有效位置,确定公共縮放因子。从所述值的X比 特表示的初始情况开始,该过程可以一直保持在X比特表示格式。这 同样适用于单独值的平方以及单独平方的和。这里,确定公共縮放因 子,以使平方和不会遭受由于累加而引起的溢出。根据本实施例,对 平方和的未取对数的X比特表示中的一段应用对数函数。在本实施例 中,保持的优点在于,该过程可以用于多组值,从而一方面,用不同 的公共縮放因子对各个组的值进行縮放,另一方面,对于所有平方和 的对数表示,后续縮放等级是相同的。根据本发明的另一优选实施例,将底2对数连同小于或等于1/y的因子,用作对数函数。这样,可以釆用最优地利用两种表示的值范围的方式,执行计算结果的y比特表示与计算结果的已取对数的縮放后表示之间的映射。根据本发明的另一实施例,对于音频编码,以上述方式,逐群地对群的频谱线值创建平方和,即通过如下步骤在计算平方和之前对 频谱线值进行縮放,其中频线值以未取对数的X比特定点数据格式而存在;将得到的单个平方累加,该单个平方也必须只以x比特定点数 据格式而存在;向平方和应用对数函数,包括以底2对数取对数和以 小于或等于1/x的因子进行縮放;以及分别向取对数结果的x比特定 点表示加上或从其减去由对数函数根据公共縮放因子得到的校正值。 这样,将所有频谱群的信号能量保持在相同的縮放等级,并且不减小 动态范围。此外,可以通过配置来对只具有x比特的定点数进行处理 的计算单元,执行每个计算操作。因此,本实施例的优点在于,可以 在16或24比特定点DSP中实现音频编码器,而不需要复杂编程及其 涉及的增加的计算时间开销。


下面,参照附图,更加详细地论述本发明的优选实施例,附图中 图1是示出了 32比特定点数据格式结构的示意性表示;
图2a和2b是示出了太小的值对64比特定点结果的影响的32比 特定点数据值的平方的示意性表示;图3是根据本发明实施例的对数函数图;图4是根据本发明实施例的用于创建平方和的设备的示意框图; 图5是图4设备的可能实施方式的框图; 图6是示出了根据图5的设备功能的流程图;以及 图7是示出了根据本发明实施例的音频编码器的示意框图。
具体实施方式
下面,参照附图,并在一般的音频信号处理以及具体的音频信号 编妈的背景下,描述本发明。正如附图描述之后的更1lf]详细的说明所 述,本发明不限于上述应用领域,这种背景设置主要用于方便理解。在更加详细地说明本发明实施例之前,以下参照图l到3,对这 些实施例进行介绍,这类似于总览,并使以下实施例的优点得到更好 理解。图2示出了可能的32比特定点数据格式的结构,这是以下所述的 实施例的示例基础。可以容易地将所示的32比特数据格式应用于其他 比特计数。从图中可见,以32比特定点数据格式存储的值包括32个 比特。因此,32比特寄存器足以用于存储该32比特定点数据格式的 值。图l中用IO指示该寄存器。从最低有效位(LSB)到最高有效位 (MSB),用编号为Xo.,.X3,的各个平方数暗示32个比特位置。在各 个比特位置下面,暗示根据32比特定点数据格式的各个比特位置的意 义。可见,最高有效位表示值的符号,即,+或-。剩余的比特XmtXo 表示值的大小。根据图l的实施例,这些比特表示实分数,即,数据 格式10是分数定点数据格式,其中,小数点或逗号通常位于最左位置, 即,在左侧比特X3。之前。因此,寄存器10中的值可以表示为x = (一i)x" J; Xi . 2卜31.i = 0容易看出,分数定点数据格式可表示的值范围从近似-1 (不包括 -1)到1 (不包括1)。 如本发明的描述介绍中已论述的,例如,通过对频群中的频线平 方并将所有平方的频线(即,线能量)累加,获得信号能量。例如,在MPEG Layer-3和MPEG AAC中,频群中包含的线数目的范围是从 4至U 96。如本发明的描述介绍中已论述的,可以通过使用全局縮放因子来 以定点数据格式表示频线值,所述全局縮放因子应用于音频通道的全 部频线以及甚至编码器中处理的所有音频通道的所有频线,并确定在 解码器侧要将每个频线左移或右移多少个位置,以便可以重新获得原 始縮放。为了在具有32比特字宽的定点处理器上对这种32比特定点 数据值进行平方和,以计算音频信号能量,必须满足以下基本要求, 以有效实现 频钱的省频信号能量计算-必须用32比特字宽表示频线。16比特不足。-还必须以定点数据格式而不是浮点数据格式表示音频信号能量。-必须以字宽不大于32比特的数据类型表示音频信号能量。对于 音频信号,这也得到32比特字宽。以下所述本发明的具体实施例满足所有上述基本要求,但是必须 注意,如果所有上述基本要求并未全部得到满足,则可能获得效率不 高的实现。如稍后将述的,例如,不是绝对必须将音频信号能量的字 宽限制到32比特。只是要将音频信号能量的再处理限制到32比特定 点表示。根据上述要求,在音频信号能量的计算中出现以下问题。首先, 32比特频线值的平方产生具有64比特字宽的线能量,然而,在进一 步处理中,舍弃32比特,在以下实施例的情况下是舍弃低32比特, 并且只用高32比特继续进行分数算术运算。为了说明这一点,参照图2a和2b。图中示出了通过将相同的值 写入被乘数寄存器12a和12b而用作平方器的乘法器的两个输入寄存 器12a和12b。两个寄存器12a和12b均是32比特寄存器。此外,图 2a和2b示出了包括高部14a和低部14b的64比特输出寄存器14。将图2a和2b中没有表示出的乘法器配置为以32比特定点数据格 式读取寄存器12a和12b的寄存器内容lb,并将两个值相乘,从而产 生64比特结果,该结果以64比特定点数据格式输出到输出寄存器14 中。因此,输出寄存器14的高部14a包含逗号之后的前31个二进制 位置,而低部14b包含剩余的二进制位置。图2a和2b示出了向输入寄存器12a和12b写入不同频线值以在 输出寄存器14中产生不同结果的情况。图2a具体示出了频线值较高的情况,g卩,频线值为0x12345678。 只要在较高等级上输出频线值,即,频线值占用32比特数据字中的大 量有效比特,则实际在输出寄存器14中的64比特宽结果的高32比特 足以精确地表现结果和/或平方。在图2a的情况下,在只使用高部14a 而不是完整结果时所造成的误差只相当于0x000000003be9b080。恩2b分别示出了输入寄存器12a和12b中较小频线值的情况,即, 频线值为0x00004321。如上已提到的,因为至少一个音频通道的所有 频线具有全局縮放因子,从而典型的是大量频线只占用32比特数据字中的少量有效比特,即,具有较小幅度,所以这种较小频线值也会出 现。从图2b可见,在较小频线值的情况下,输出寄存器14的高32 比特未以足够的精度表现出平方结果。因此,特别是当多个这种线能 量累加以形成信号能量值时,会提供不正确的结果,即,例如结果为 0,在音频编码的稍后过程中,这会导致音频质量降低。在图2b的示 例中,例如,当精确结果值应该是0x0000000023349482时,输出寄存 器的高部指示结果为O。鉴于图2a和2b的示例,显然,有必要在信号能量的后续处理中 首先考虑输出寄存器14的所有64比特。然而,这需要大量复杂的64 比特数据运算(即,使用64比特操作数的操作),并违反上述有效实 现的基本要求。然而,如果实际中只使用输出寄存器14中每个信号能量值的高 32比特部分,则通过在平方之前将频群中的所有频线值向左移动相同 数目的比特,以使结果包含64比特结果的高32比特部分中的更多有 效比特,或者通过对结果寄存器14中的结果进行移位,则可以首先获 得改进。然后,通过向信号能量的各个高部分14a应用对数函数计算的计
算单元,可以将每个信号能量值的高部14a转换到对数范围中。计算 单元只须能够对32比特定点数据值取对数,以获得32比特定点数据 值。将值x转换为值y的对数函数可以是y-log2(x)/64,图3示出了该 函数过程。图3只示出了x e ]o,i[的对数函数部分,这是与32比特定 点数据格式的平方信号能量值唯一相关的部分。这里,縮放因子1/64 确保即使根据图3的对数函数对其取对数的能量信号值是64比特定点 值,最小的可能值(即,能量信号值2'63 (至少保留1比特,用于符 号))也覆盖可能的输出值范围,在定点表示的情况下,输出值范围是 从-1到1,但不包括-1和1。然后,该过程不是非常令人满意,原因在于,在音频编码器内的 音频编码的进一歩处理步骤中,所有信号能量无论如何都必须具有相 同的縮放处理,因此,用于提高精度的向左移位和/或缩放因子会干扰 该相同的縮放等级。正是在这一点上,显示了取对数的正(positive)属性的效果。如 上所述,通过在频线和/或幅度域中按照规定向左移动例如s比特位置, 和/或通过在受到所述安全距离的信号能量域中用有效22s进行縮放, 使线能量的表示最大化地精确。此时,必须注意在该频群中执行的向 左移位的数目(即,值s)。如果现在将图3所示对数函数(以下称作 LD64 ())的、以较高精度计算的信号能量值转换到对数范围中(以 下有时称作LD64格式),则最大的可能精度同样仍然存在。例如,频 线向左移动l比特与在线性、非对数范围(即,在平方之后)中将信 号能量向左移动2比特相对应,这与在对数范围中加上2/64相对应, 因为2/64 = log2(22)64 = LD64(22)。为了恢复LD64格式的信号能量中的原始縮放,只须减去2*s/64, 其中s与前述群的频线值的左移相对应。然而,因为正如在线性范围 内的右移一样,未损失和/或移出任何有效比特,所以这种减法不会导 致精度损失。因此,如以下将说明的,以LD64格式表示信号能量, 这在较高精度和所有信号能量值的相同縮放方面,对于音频编码器中 的进一步计算是有利的。在以上对本发明实施例的原理和优点进行论述之后,下面,将参
照图4-7更加详细的说明本发明的优选实施例。首先,图4示出了适于计算N个x比特定点值的组的平方和的设备的示例表示,同时该设备一方面保持动态范围,另一方面将硬件开 销保持在合理的限度内。该设备是基于以上考虑的。用20总体指示的图4设备包括x比特寄存器22l5 222... 22N,用 于存储N比特定点值;平方和装置24,用于确定非对数范围中由可调 的有效縮放因子缩放后的、寄存器22,- 22n中的信的平方和;第一结 果寄存器26,用于锁存平方和装置24的结果;取对数装置28,用于 将结果寄存器26中的结果转换为LD64格式;第二结果寄存器30, 用于锁存取对数装置28的结果;再缩放装置32,用于对结果寄存器 30中的结果i行再缩放和域对绪果的鹏放逆转;输出寄存器34, 用于如再縮放装置32输出的一样锁存最终结果;以及控制装置36, 确保再縮放装置32中的再縮放将平方和装置24实现的縮放逆转,并 确定公共縮放因子。在描述了设备20的各个单独组件之后,下面描绘它们在创建平方 和时的协同操作,其中用各个箭头指示各个交互操作。如上所述,要进行平方和处理的值首先以x比特定点格式存在于 寄存器22,-22n中。同样,如上所述,这些值可以是频线值,并且在 其有效比特的数目方面可能彼此显然不同。平方和装置24接收寄存器22r 22N中的这些值,以对它们进行创 建平方和的操作,从而寄存器22r 22w中的值的平方和经过至少由控 制装置36间接可调的有效縮放因子的縮放之后,以定点表示存在于寄 存器26中。这里,由平方和装置24将平方和结果写入到的结果寄存 器26不是绝对必须具有2x比特。而是,如寄存器26的部分虚线表示 所暗示的,如果平方和装置24提供结果的y比特定点表示(优选地, y=x),这就足够了。下面,特别挑选出两种可能方法,以示出平方和装置24如何考虑 来自控制装置36的縮放因子信息,以输出寄存器26中的縮放后结果, 以及控制装置36如何确定对结果寄存器26中的结果进行縮放所用的 縮放因子信息和/或有效縮放因子,以确保不会由于溢出而损失有效比特。基于以上描述,第一种可能方法包括控制装置36分析寄存器22,-22w的内容,以预先确定有效缩放值,从而随后对寄存器22r22N 中值的平方的求和不会引起溢出。如果图4中由38指示的平方和装置 24的加法计算单元中不存在溢出比特,或者如同例如寄存器26的情 况一样,最迟在将"溢出"平方和/或能量值写入确切不提供任何溢出 比特的存储单元中时,则不会出现溢出。因此,控制装置38依据数目 N、寄存器22r 22w中的自由比特的最大数目和/或x的最大值减去寄 存器22r 22w中各个值的有效位置的数目,调整縮放因子信息,以使 在至寄存器26的输出中不会出现溢出,以及/或者结果不会超出-1到 1 (不包括-l和l)的值范围。具体地,如上所述,控制装置36可以调整对寄存器26中的结果 进行縮放所用的有效縮放因子,在刚开始时,即在进行平方40之前, 平方和装置24利用公共縮放因子对寄存器内容22r 22w进行縮放。具 体地,如上所述,公共縮放因子可以对应于2的幂,从而通过左移操 作可以实现对寄存器22r 22w中的值的预先縮放。在这种情况下,如 上所述,可以不需要由平方和装置24以2x定点数据格式将各个縮放 后寄存器内容的平方40的中间结果相加38,以输出寄存器26中的结 果;而是,平方和装置24只需要中间平方结果42, ...42w的y比特定 点表示。对所有中间平方结果42, ... 42N的求和38产生寄存器26中的 平方和装置24的最终结果。用于确定和考虑縮放因子的另一种可能方法是,首先,平方和装 置24对寄存器内容22,- 22w逐个地进行平方40,以获得2x定点数据 格式的中间结果42, ... 42N。然后,由平方和装置24将中间结果42,... 42w求和38。针对未用比特的数目和/或2x与有效位置数目之差,控 制装置36检查得到的2x定点平方和结果,以在平方和装置24将结果 输入到结果寄存器26中之前,对平方和装置24的2x比特平方和结果 执行对应的、移动相应比特数的左移运算。相比于前述的可能方法, 该过程的缺点在于,因为必须以2x字宽对值42卜.42N进行处理,尤 其
计算开销增加了。为此,需要执行能量更高的加法计算单元,或者必须更加频繁地控制具有分配的溢出比特的y比特定点数据格式加法计 算单元。采用这种可能方法,平方和装置24首先单独地将寄存器22r 22n中的僮平方,然后将2x比特定点平方值42, ...42n求和(38),之 后,根据控制单元36的縮放因子信息对结果进行縮放,并将结果输出 至寄存器26。在优选地采用x=24比特而实现的实施例中,寄存器26具有y=2x 位置的长度。在优选地采用x=32比特而实现的实施例中,只要在平 方期间或在平方之后,但是在存储到寄存器之前,在对42卜.42w的平 方中,执行将位置减少到x个位置。然后,以x比特字宽实现求和。 因此,寄存器26只包括y=x个位置。则取对数装置也可以优选地包 括x个位置。利用有效縮放因子,几乎可以最优地调整结果寄存器26中的有效 比特数。此时,取对数装置28接收来自寄存器26的y比特定点表示, (其中,如果需要,扣除更高精度所需的剩余比特位置),并对其进行 以上参照图3而论述的LD64格式转换,以将结果以z比特定点数据 格式输入到寄存器30中,其中优选地,z=y, y=x。结果寄存器30中的结果表示寄存器22,-22N中的值的平方和的縮 放后对数表示。此时,再縮放装置32通过从寄存器30中的縮放后的 值中减去从控制装置36接收的校正值44,将縮放逆转。在LD64格 式情况下,如上所述的校正值相当于LD64 (s),其中s是对结果寄存 器26中的平方和进行縮放所用的有效縮放因子。然后,再縮放装置32以定点数据格式将结果输出至寄存器34。参照图4,对本发明优选实施例的功能进行粗略描述,而不进一 步涉及可能的硬件实现。图5略微详细地示出了图4设备的可能实现 方式。图5的设备由60总体指示,包括存储器62、控制装置64、移 位装置66、平方器68、求和器70、取对数器72、除法器74和减法器 70。所有模块62-76经由例如总线或程序接口 78彼此可通信地相连。 装置66-76可以采用硬件实现,但是也可以部分地作为由控制装置64 执行的相应程序代码,以实现相应任务。模块66-76中每个必须只能
够处理x比特定点数据格式的操作数。在模块66-76中,模块66-70 形成平方和装置80,而取对数器72和触发器74组合形成取对数装置 82。例如,控制装置64由程序控制,并使放置在x比特存储位置84... 84w中的、存储器62中的x比特定点数据格式的值的平方和创建得以 执行。参照图6,描述控制器64的确切功能。这里,具体假定存储位 置84, ... 84n中的x比特定点值是频群的频线值。首先,控制装置IOO检査存储位置84卜,.84w中的群的频线值,并 调整公共缩放因子。如上所述,基于数目N和存储位置84, ... 8~中 的未用比特位置的最小数目,执行步骤100中的调整。具体地,控制 装置100将公共缩放因子调整为2的幂,例如2S。可选地,控制装置 64调整与公共縮放因子25相对应的移位值s。控制装置将值s或25输 入内部或外部寄存器101中,以进行锁存。在随后步骤102中,控制装置64使移位装置66根据公共縮放因 子和/或移位值,将存储位置8^ ... 84n的、具有群的频线值的内容左 移s比特位置。在步骤104中,控制装置64使平方器68将存储位置84, ... 84N 中的每个值平方,并将2x比特结果的高半部分写回到相应存储位置 84, ... 84w中。例如,平方器68是乘法器,其中控制装置104要平方 的各个值从存储位置8A ... 84N之一中写入乘法器的两个x比特被乘 数寄存器中。例如,平方器内部可以包括2x比特结果寄存器,然而, 控制装置64确保只将高半部分(即,x比特定点平方值)写回到相应 的存储位置84, ... 84N中。可选地,平方器只预先计算一个x比特表示, 因此只有一个x比特输出寄存器。此后,在步骤106,控制装置64利用求和器70,创建存储位置 84卜,.84n的所有内容的和。可以开始于前两个值之和,并以x比特定 点数据格式将结果写入x比特和寄存器86中。然后,控制装置64可 以使用求和器70,以逐个地将存取位置86的值与后续值相加,并用 得到的和盖写存储位置86中的先前的每个值。可选地,控制装置64 可以确保将和写入存储位置84} ... 84n之一,并在其中进行累加。在步骤108中,控制装置64命令取对数器72对存储位置86中的 和取对数,然后,命令除法器74将结果除以64。例如,将取对数器 72的中间结果写回到存储位置86中,对于除法器74的结果也是如此。 如果除数是2的幂,则可以将除法器实现为简单的移位装置。因此,在步骤108之后,平方和的取对数的縮放后表示出现在存 储位置86中。在步骤110,控制装置命令减法器76从存储位置86中 的己经过除法和取对数的值中减去取决于锁存101中存储的缩放因子 s的值,即,值2承s/64。在参照图4-6描述了本发明优选实施例之后,下面,对其中实现 根据上述实施例的装置的音频编码器实施例进行论述。图7中由150总体指示的音频编码器包括变换装置152、群能量 计算装置154和码流产生器156,它们串联在编码器150的输入158 和输出160之间。码流产生器160使用心理声学模型162,以根据例 如要编码并存在于输入158处的音频信号164来产生不相关信息,输 出158的距离只略微或者根本不影响在输出160出输出的编码数据流 的音频质量。虽然图7中未示出,但是码流产生器156经由反馈路径 与变换装置152或群能量计算装置154连接。例如,存在于输入158的音频信号164作为以预定采样频率进行 采样的音频采样值序列而存在。例如,音频信号164可以是PCM格 式。在164处,相对于时间t而绘制音频信号,其中纵轴表示单位任 意的幅度A。然后,变换装置152通过将音频信号164分解为其频谱分量,将 音频信号164从时域变换到频谱域。例如,变换装置152可以具体包 括具有32个带通滤波器的分析滤波器组。更精确地,变换装置152 将音频信号164逐段地分解为频谱分量。对其执行频谱分解的段或帧 166在时间上彼此交叠例如50%。在每个频谱分量中,针对每个连续 帧创建频谱值和/或频线值,这由变换装置152所产生的频谱图168中 的点示出。这样,对于每个频谱分量,从频线值序列中创建频线,其 中在168处用水平箭头指示频线,在视觉上只针对3个指示出的帧166 在频线值中进行分裂。在频谱图168中,沿频谱轴或频率轴f设置任
意数目的频线,但是频线的实际数目会更大。基于由此创建的频谱图168,码流产生器156产生编码数据流。 为此,然而码流产生器156并不或并不总是需要所有频谱分量的频谱 分解。而是,根据心理声学将频线分裂为由圆圈指示的群170。为了产生每个群170的码流,码流产生器156具体需要每个帧166 的关联信号能量值,即,幅度值的平方和,也就是频线值的平方和。这种计算由群能量计算装置154执行。群能量计算装置154针对 每个群170计算作为频线平方和的信号能量,例如,将群能量计算装 置154配置为如图4和5中所示和/或图4-6中所述的功能。群能量计 算装置154的结果是信号能量值序列172,即,每个群173—个序列 172。因此,信号能量序列172中,每一帧166—个信号能量值,这通 过点沿箭头172示出。基于这些信号能量值序列172,码流产生器156根据心理声学模 型162产生编码数据流160。这里,装置156在信号能量值的再处理 过程中的一个优点不但是存在作为频线值的、以具有相同数目的比特 的定点数据格式而存在的值,而且值存在于对数范围中,这一范围使 乘法运算、指数运算和除法运算的执行更简单,因为这些计算操作在 对数范围中转换为更加简单的加法/减法以及乘法/除法。为了说明这一点,考虑图7的编码器输出MPEG数据流的情况。例如,图7的音频编码器是MPEGAAC编码器。在这种情况下, 码流产生器156包括TNS (时间噪声成形)模块,在其中码流产生器 156有效地计算能量加权频谱。具体地,TNS模块执行这种信号能量 SE的计算,即x-l/V^。因为由群能量计算装置154使用信号能量, 所以对于采用对数格式LD64的信号能量,上述计算更加容易实现。 TNS模块简单地将X计算为LD64" (-LD64—SE >> 1),其中a b指 示左侧的操作数a以右侧数b右移的移位操作,而LD64一1 ()是对数函 数LD64 ()的反函数,LD6tSE是由群能量计算装置154输出的对 数LD64格式的信号能量值。因此,"〉>1"指示右移一位,这与除以2 相对应。当在对数范围内执行时,除以2对应于线性范围中的平方根 运算。减号对应于线性范围中的反函数1/x。相比于在线性范围中将 信号能量输入码流产生器156时所需要的计算结果的平方根和对结果应用反函数,可以以较低的复杂度来实现LD64"函数的计算。码流产生器156也可以产生编码MPEG 4 AAC数据流,并包括 PNS (感知噪声替代)模块。PNS模块在内部计算听力阈值与频群170 中的信号能量之间的距离。具体地,PNS模块通过听力阈值与信号能 量之间的距离,确定是否可以或应该执行噪声替代。由群能量计算单 元154输出时信号能量的对数表示的较大动态范围和相关精度、以及 在码流产生器156中以对数表示LD64形式提供的听力阈值会对正确 的PNS确定作出必要的贡献。具体地,在PNS模块中的相干函数中, 进行形式为Y = (SE1/^SE2 SE3)的除法和平方根计算,其中SE1、 SE2 和SE3是由群能量计算装置154输出的信号能量。信号能量的对数表 示在较大程度上方便并加速了该计算。具体地,码流产生器156中的 PNS模块可以通过如下计算,执行LD64—Y的计算,即,以LD64格 式来计算Y:LD64_Y = LD64—SE1 - ((LD64一SE2 + LD64_SE3) 1), 其中LD64—SE存是由群能量计算装置154输出的各个信号能量值 SE存的对数表示。例如,码流产生器156也可以包括执行中心/侧编码决策的中心/ 侧立体声模块。在该CS模块中,从听力阈值到信号能量,计算多个 除法,以决定是否使用中心/侧(CS)编码。通过使用由群能量计算 装置154输出的LD64格式,这些除法转换为简单的减法。决定是否 使用CS编码时所用的阚值是常数,从而可以在源代码中将其转换到 对数范围,因此除了程序运行时间之外,不需要其他计算时间。这适 用于与LD64结合的已修正代码中所使用的更多常数。上述内容也特 别适用于MPEG Layer-3或ACC编码器的强度立体声模块。码流产生器156还可以包括执行响度计算的縮放因子估计器。在 例如位于码流产生器156的量化模块中的縮放因子估计器中,执行听 力阈值的四次根的计算,即,响度计算。通过用对数数据格式(即, LD64)表示听力阈值,可以通过简单地将对数均值阈值右移2位,来 非常高效地执行四次根的计算。求逆步骤,即,与4的相乘(involution)
也可以通过左移2位来非常简单地执行。在码流产生器156的縮放因子估计器中,例如还可以根据修正的听力阈值LT和信号能量SE,计算构成量化步长宽度的一部分的缩放 因子SCF。该计算包括形式为SCF = 1og(l^LT/SE)的计算步骤,其中 log〇是常用对数,k是常数。通过使用LD64格式和原始公式的对 应转换,可以非常高效地实现该计算。縮放因子估计器具体地执行计 算SCF = log(k) + log2*64* (LD64JLT — LD64—SE)。码流产生器156内的可能模块的上述示例示出了使用对数数据格 式LD64会促进定点处理器的效率提高。在许多情况下,如果要达到 特定音频质量,对数数据格式LD64几乎可以在这些平台上以较高音 频质量实现音频编解^马器。码流产生器156内的可能模块的上述示例具体示出了以对数数据 格式表示信号能量、听力阈值和其他能量值是非常合适的,因为在信 号能量和听力阈值的处理中,大多数计算步骤是通过除法或乘法执行 的。因此,除法转换为减法,乘法转换为加法,通过使用所示的对数 数据格式,可以在音频编码器中产生信号能量和听力阈值的高效表示 和处理。线性范围中(即,非对数范围中)的信号能量可以表示为分 数定点数据格式,其具有值范围-1.0至U+0.99999…。在上述实施例中,使用以2为底的对数,即,底2对数LD。在 底2对数中,线性范围中的信号能量值0.25对应于LD值-2。线性范 围中的信号能量值0.3对应于LD值-1.7369656。在定点处理器上,典 型地,可以表示整数值或分数值,但是无法表示混合的值,在前述实 施例中,在仅获得分数值的LD格式的情况下,对LD值进行縮放。 当然,另一种可能方法是选择只获得整数值的縮放。具体地选择使用 因子1/64的縮放,因为该因子适用于所有高达64比特的字宽,从而 也覆盖了 48比特和32比特的常规字宽。根据公式y = log2(x)/64 = LD64(x)执行用1/64进行縮放的底2对数的计算,即,LD64格式。在 放弃扩展的便携性的情况下,当然也可以将该因子增大,即,增大到 1/y,其中y是未取对数的縮放后的平方和的比特数。图3示出了对数函数图。这里,可以看到对数函数的特点,对于 具有实际上不太精确的定点表示的较小输入值X (接近0.0),该对数函数提供对数范围中的更大量的输出值y,即,更小的分辨率,输出 值y在幅度上更大,即,更接近-1.0,因此在定点表示中更加精确。 根据上述实施例,通过平方之前的公共縮放因子和/或公共移位值,避 免了在转换到对数范围之前信号能量计算中的精度损失。因此,图7的实施例示出了用于表示和处理信号能量和听力阈值 的心理声学模型和/或量化模块中的使用縮放后或者甚至未縮放的对 数数据格式的编码器。然而,要理解,以上底2对数和1/64缩放的描 述只是示例。在任何情况下,对数表示用于实现诸如量化模块的中心/ 侧决策模块和縮放因子估计器中的大量计算的更快执行。如上所述, 这是因为通过使用对数格式,原本存在的除法转换为在定点处理器上 可以以快许多倍的速度执行的简单减法。这同样适用于根计算,例如 平方根、四次根等的计算,根计算转换为简单的右移。该算法稍后步 骤中的速度提高大大地补偿了向对数范围转换所需要的计算开销。因 此,上述实施例的优点具体在于以对数形式表示的值的更高精度、以 及使用对数表示时的更高处理速度。参照以上描述,要理解,本发明不限于定点数据格式。以上涉及 值的平方和的创建的实施例也可以合理地应用于不是以定点数据格式 而是以整型数据格式而存在的值。在这种情况下,可以对2x比特平方 和结果中的较高值y比特进行取对数。根据上述实施例,使用取对数的函数,其中,执行l/64的縮放。 如果在不同平台上以不同定点数据格式来运行同一编码处理,则该因 子是合理的。然而,对数函数中的该因子也可以只大于x, g卩,比提 供用于平方求和的值的比特数大。此外,要理解,对于上述实施例,本发明不限于平方和的创建。 例如,如果存在只有一个值的群,从而只执行一个编码处理,则本发 明也是有利的。在这种情况下,当然,控制器根本不必预测缩放因子 信息。而是,在这种情况下,用于在平方之前进行缩放的縮放因子是 从有效比特数和/或未用比特数中自动产生的。 一般而言,本发明可以 用于创建线性依赖于值的平方的结果的表示。
参照以上描述,还要理解,本发明不限于在音频编码中的使用。 在其他应用领域,例如在向音频文件设置水印等情况下,也可以获得 相对于音频编码所述的相同优点,即,对于各个单独信号能量实现相 同的縮放等级,同时保持动态范围,并减小音频编码开销。特别是要理解,依据情况,本发明方案也可以采用软件实现。该 实现方式可以在数字存储介质上进行,特别是在具有与可编程计算机 系统协作的电可读控制信号的软盘或CD上,从而可以执行相应方法。通常,本发明也包括具有程序代码的计算机程序产品,程序代码存储 在机器可读载体上,并在计算机上运行该计算机程序代码时执行本发 明方法。换言之,本发明可以实现为具有程序代码的计算机程序,程 序代码用于在计算机上运行该计算机程序时执行该方法。
权利要求
1. 一种用于计算信息幅度信号的信号能量的设备,包括 变换装置(152),用于将信息幅度信号(164)分解为以未取对数的x比特表示而存在的频谱值;处理装置(24; 80),用于对每个频谱值(22,-22N; 84,-84n)的未取 对数的x比特表示执行平方运算(40; 68),以获得相应的平方频谱值, 并对所述平方频谱值执行求和(38; 70),以获得平方和,作为未取对 数的y比特表示(26)形式的计算结果,其中y小于或等于2x,所述 处理装置(24; 80)配置为使用有效縮放因子,以依据所述有效縮放 因^^对所述计算结果进行缩放;取对数装置(28; 82),用于向所述计算结果的未取对数的y比特 表示(26)应用对数函数,以获得所述计算结果的己取对数(30)的 縮放后表示;以及再縮放装置(32; 76),用于相应地向所述縮放后对数表示(30) 加上校正值或从中减去校正值(44),以获得所述计算结果的已取对数 (34)的表示,作为所述信号能量,所述值与应用于所述有效縮放因 子的对数函数相对应。
2. 根据权利要求1所述的设备,其中所述处理装置(24; 80)配 置为预计定点数据格式的所述群中每个频谱值的x比特表示(22r22w 84广84n)。
3. 根据权利要求1或2所述的设备,还包括控制装置(36; 64),用于驱动所述处理装置(24; 80),以使所 述有效縮放因子取决于值群中频谱值的数目(N)。
4. 根据权利要求1到3之一所述的设备,还包括控制装置(36; 64),用于驱动所述处理装置(24; 80),从而通 过用所述有效縮放因子进行缩放,所述未取对数的y比特表示(26) 中的有效位置数目更大。
5. 根据权利要求1到4之一所述的设备,还包括 控制装置(36; 64),用于依据频谱值的数目(N)调整公共縮放因子,所述处理装置(80)包括缩放装置(66),用于依据所述公共縮放因子,对所述未取对数的 x比特表示(84r84N)进行縮放,以获得x比特表示的縮放后频谱值;平方装置(68),用于对每个縮放后频谱值的x比特表示进行平方, 以获得縮放后平方频谱值;以及求和装置(70),用于对縮放后平方频谱值进行求和,以获得平方和。
6. 根据权利要求5所述的设备,其中以定点数据格式表示每个频 谱值的所述未取对数的x比特表示(84r84N),所述控制装置(64) 配置为依据所述频谱值的x比特表示中末甩比特位置的最小数目来进 一步执行所述调整。
7. 根据权利要求5或6所述的设备,其中所述控制装置(64)配 置为将所述公共縮放因子调整为2的k次幂,所述縮放装置(66)配 置为在x比特值寄存器中将所述群的频谱值的x比特表示移位k比特。
8. 根据权利要求5到7之一所述的设备,其中所述平方装置(68) 包括2x结果寄存器,并配置为在所述2x结果寄存器中以2x比特表示 方式縮放后平方频谱值中的预定縮放后平方频谱值,所述求和装置(70)配置为从所述2x结果寄存器中读取2x比特表示的y比特段, 同时忽略所述2x结果寄存器中的剩余比特,以将所述y比特段与其他 縮放后平方频谱值的y比特段求和,并将平方和写入y比特寄存器。
9. 根据前述权利要求之一所述的设备,其中所述取对数装置(28; 72)配置为处理所述未取对数的y比特表示(26),以使已取对数的縮 放后表示(30)与所述未取对数的y比特表示(26)的底2对数除以 大于或等于y的数而得到的y比特表示相对应,所述再縮放装置(32) 配置为向已取对数的縮放后表示(30)加上或从中减去与所述有效縮 放因子的底2对数除以所述数相对应的量。
10. 根据前述权利要求之一所述的设备,其中所述处理装置(24; 80)、所述取对数装置(28; 82)和所述再縮放装置(32)配置为以定 点数据格式进行操作。
11. 根据前述权利要求之一所述的设备,实现为定点处理器。
12. 根据前述权利要求之一所述的设备,其中y等于x或2x。
13. 根据前述权利要求之一所述的设备,其中 所述变换装置(152)配置为将信息幅度信号(164)分解为频谱分量,以获得每个频谱分量一个频谱线,其中每个频谱线包括频谱值序 列,将频谱线分配给不同的频谱群(170),所述处理装置配置为针对 每个群(170),对各个群(170)内的频谱值执行平方以及求和,以获 得各个群的平方和,作为计算结果,所述取对数装置和所述再縮放装置配置为获得每个平方和的信号能量。
14. 根据权利要求13所述的设备,还包括码流产生器(156),用于根祸所述群的信号能量值,产生对信息 幅度信号(164)的编码形式进行表示的编码数据流。
15. 根据前述权利要求14之一所述的设备,其中所述信息幅度信 号是音频信号。
16. 根据权利要求14或15所述的设备,其中所述码流产生器(156) 配置为进一步根据心理声学模型(162),产生编码数据流。
17. 根据权利要求14或16所述的设备,其中所述码流产生器是 MPEG l/2Layer-3编码器或MPEG 2/4AAC编码器。
18. —种用于计算信息幅度信号的信号能量的方法,包括 将信息幅度信号(164)分解为以未取对数的x比特表示而存在的频谱值;对每个频谱值(22r22N; 84r84N)的未取对数的x比特表示执行平 方运算(40; 68),以获得相应的平方频谱值,并对所述平方频谱值执 行求和(38; 70),以获得平方和,作为未取对数的y比特表示(26) 形式的计算结果,其中y小于或等于2x,使用有效縮放因子执行所述 处理(24; 80),以依据所述有效缩放因子对所述计算结果进行縮放;向所述计算结果的未取对数(26)的y比特表示应用对数函数, 以获得所述计算结果的已取对数(30)的縮放后表示;以及 向所述縮放后对数表示(30)加上校正值或从中减去校正值(44), 以获得所述计算结果的已取对数的表示,作为所述信号能量,所述校 正值与应用于所述有效缩放因子的对数函数相对应。
19. 一种计算机程序,具有在计算机上运行所述计算机程序时执 行根据权利要求18的方法的程序代码。
全文摘要
在向对数范围的转换中,不必考虑线性依赖于值平方的结果的整个比特宽度。而是,可以对具有x个比特的值的结果进行缩放,以便基于所述结果的少于x比特的表示,足以获得对数表示。通过分别向缩放后的对数表示加上或从其减去由应用于缩放因子的对数函数获得的校正值,可以消除该缩放因子对得到的对数表示的影响,而不会有任何动态范围损失。因此,提供了一种用于创建线性依赖于值平方的结果表示的方法和设备,以使计算简单以及/或者可以具有较少的硬件开销。
文档编号G10L19/02GK101147122SQ200580048052
公开日2008年3月19日 申请日期2005年12月13日 优先权日2004年12月13日
发明者伯恩哈德·格里尔, 斯特凡·盖尔斯贝格, 曼弗雷德·卢茨基, 约翰内斯·希尔伯特, 萨沙·迪施, 马克·盖耶, 马库斯·劳瓦瑟 申请人:弗劳恩霍夫应用研究促进协会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1