空间音频参数编码和关联解码的确定的制作方法

文档序号:24640107发布日期:2021-04-09 20:52阅读:112来源:国知局
空间音频参数编码和关联解码的确定的制作方法

本申请涉及用于与声场相关的参数编码的装置和方法,但不仅限于用于针对音频编码器和解码器的时频域方向相关的参数编码的装置和方法。



背景技术:

参数化空间音频处理是音频信号处理的一个领域,其中使用一组参数来描述声音的空间方面。例如,在从麦克风阵列进行参数化空间音频捕获时,从麦克风阵列信号中估计一组参数(例如,频带中声音的方向以及频带中所捕获声音的定向与非定向部分之间的比率)是一种典型且有效的选择。众所周知,这些参数很好地描述了麦克风阵列位置处的所捕获声音的感知空间属性。这些参数可以相应地用于空间声音的合成,用于双耳式耳机、用于扬声器或其他格式,例如全景声(ambisonics)。

因此,频带中的方向和直接与总体能量比是对空间音频捕获特别有效的参数化。

由频带中的方向参数和频带中的能量比参数(指示声音的方向性)组成的参数集也可以用作音频编解码器的空间元数据(其还可以包括其他参数,例如相干性、扩展相干性、方向数量、距离等信息)。例如,可以从麦克风阵列捕获的音频信号估计这些参数,并且例如可以从麦克风阵列信号中生成立体声信号,以与空间元数据一起传送。立体声信号可以例如用aac编码器编码。解码器可以将音频信号解码为pcm信号,并处理频带中的声音(使用空间元数据)以获得空间输出,例如双耳输出。

前述解决方案特别适用于对从麦克风阵列(例如,在移动电话、vr相机、独立麦克风阵列中)捕获的空间声音进行编码。但是,可能希望这种编码器还具有除麦克风阵列捕获的信号以外的其他输入类型,例如扬声器信号、音频对象信号或全景声信号。

在与定向音频编码(dirac)和谐波平面波展开(harpex)有关的科学文献中,对于空间元数据提取的一阶全景声(foa)输入进行全面分析。这是因为存在直接提供foa信号(更准确地说是其变体,即b格式信号)的麦克风阵列,因此分析这种输入已成为所述领域的研究重点。

编码器的另一个输入也是多声道扬声器输入,例如5.1或7.1声道环绕声输入。

但是,对于元数据的方向性分量,针对每个考虑的时间/频率子频带,这些方向分量可以包括结果方向的仰角、方位角(以及和1-扩散度的能量比),这些方向分量的量化是当前的研究主题。



技术实现要素:

根据第一方面,提供一种装置,包括用于以下的模块:接收针对音频信号帧的子频带的值,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;确定第一比特数的分配以对帧的值进行编码,其中所述第一比特数是固定的;基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码;基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码,其中,所述第三比特数在逐个子频带的基础上可变地分布。

用于基于所述第一比特数中的所述第二比特数的定义分配来对所述帧的所述至少一个能量比值进行编码的模块还可以用于:生成至少一个能量比值的加权平均值;基于所述第二比特数来对所述至少一个能量比值的加权平均值进行编码。

用于基于所述第二比特数来对所述至少一个能量比率值的所述加权平均值进行编码的模块还可以用于对所述至少一个能量比值的所述至少一个加权平均值进行标量非均匀地量化。

用于基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码的所述模块还可以用于以下操作,其中所述第三比特数在逐个子频带的基础上可变地分布:在逐个子频带的基础上确定所述第三比特数的分布的初始估计,所述初始估计基于与所述子频带相关联的至少一个能量比值;在逐个子频带的基础上基于对所述第三比特数的分布的初始估计,对所述至少一个方位角值和/或至少一个仰角值进行空间量化,以生成针对每个子频带的至少一个方位角索引和/或至少一个仰角索引。

用于基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或所述至少一个仰角值进行编码的所述模块还可以用于以下操作,其中所述第三比特数在逐个子频带的基础上可变地分布:通过在逐个子频带的基础上确定所述第三比特数的减少的分布来在逐个子频带的基础上进行编码,所述减少的估计基于所述初始估计和所述第二比特数的定义分配。

用于基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码的所述模块还可以用于通过以下操作在逐个子频带的基础上编码,其中所述第三比特数在逐个子频带的基础上可变地分布:基于所述减少的分布,确定用于对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引进行编码的比特分配;估计对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数;基于对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数小于用于对针对子频带的所述至少一个方位索引和/或至少一个仰角索引编码的比特分配,对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码,并且否则,基于所述比特分配进行固定速率编码;生成标识所述至少一个方位角索引和/或至少一个仰角索引的编码的信令比特;从对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引编码的比特分配与编码所述子频带的比特数和所述信令比特之和的差中,分配任何可用比特以用于编码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配,或者否则将用于编码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配减少一个比特。

用于基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码的所述模块还可以用于通过以下操作在逐个子频带的基础上编码,其中所述第三比特数在逐个子频带的基础上可变地分布:基于所述减少的分布,来确定用于对针对最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行编码的比特分配;以及基于所述比特分配的减少的分布,对针对所述最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行固定速率编码。

用于基于对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数来对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码的模块可以是用于具有两个gr参数值的golombrice编码的模块。

用于通过在逐个子频带的基础上确定所述第三比特数的减少的分布来在逐个子频带的基础上进行编码的模块还可以用于以下操作,所述减少的估计基于所述初始估计和所述第二比特数的定义分配:在逐个子频带的基础上均匀地减少用于编码所述至少一个方位角索引和/或至少一个仰角索引的比特分配。

用于基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或所述至少一个仰角值进行编码的所述模块还可以用于以下至少一个操作,其中所述第三比特数在逐个子频带的基础上可变地分布:按照距离正面方向的距离的递增顺序分配用于编码的索引;按方位角值的递增顺序分配索引。

所述模块还可以用于:存储和/或发送编码的至少一个能量比值和至少一个方位角值和/或至少一个仰角值。

根据第二方面,提供了一种装置,包括用于以下的模块:接收针对音频信号的帧的子频带的编码值,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;基于定义的比特分配来对所述编码值进行解码,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

用于基于定义的比特分配来对所述帧的所述编码值进行解码的模块还可以被用于以下操作,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配:基于针对每个子频带的至少一个能量比值,来确定用于解码针对每个子频带的至少一个方位角索引和/或至少一个仰角索引的初始比特分配分布;基于初始比特分配分布和用于解码所述帧的所述至少一个能量值的比特分配分布,来确定减少的比特分配分布;以及基于所述减少的比特分配分布,解码所述帧的至少一个方位角索引和/或至少一个仰角索引。

用于基于所述减少的比特分配分布来解码所述帧的所述至少一个方位角索引和/或至少一个仰角索引的模块还可以用于:基于所述减少的分布来确定用于解码针对子频带的所述至少一个方位角索引和/或至少一个仰角索引的比特分配;基于指示熵编码的信令比特对所述至少一个方位角索引和/或至少一个仰角索引进行熵解码,否则进行固定速率解码;从对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引编码的比特分配与解码所述子频带的比特数和所述信令比特之和的差中,分配任何可用比特以用于解码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配,或者否则将用于解码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配减少一个比特。

基于所述减少的比特分配分布来解码所述帧的所述至少一个方位角索引和/或至少一个仰角索引的模块还可以用于:基于所述减少的分布,来确定用于对针对最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行解码的比特分配;以及基于所述减少的比特分配分布,对针对所述最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行固定速率解码。

用于对所述至少一个方位角索引和/或至少一个仰角索引进行熵解码的模块可以是用于具有两个gr参数值的golombrice解码的模块。

根据第三方面,提供了一种方法,包括:接收针对音频信号帧的子频带的值,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;确定第一比特数的分配以对帧的值进行编码,其中所述第一比特数是固定的;基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码;基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码,其中,所述第三比特数在逐个子频带的基础上可变地分布。

基于所述第一比特数中的所述第二比特数的定义分配来对所述帧的所述至少一个能量比值进行编码还可以包括:生成至少一个能量比值的加权平均值;基于所述第二比特数对所述至少一个能量比值的加权平均值进行编码。

基于所述第二比特数来对所述至少一个能量比率值的所述加权平均值进行编码的模块还可以包括对所述至少一个能量比值的所述至少一个加权平均值进行标量非均匀地量化。

基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码还可以包括,其中所述第三比特数在逐个子频带的基础上可变地分布:在逐个子频带的基础上确定所述第三比特数的分布的初始估计,所述初始估计基于与所述子频带相关联的至少一个能量比值;在逐个子频带的基础上基于对所述第三比特数的分布的初始估计,对所述至少一个方位角值和/或至少一个仰角值进行空间量化,以生成针对每个子频带的至少一个方位角索引和/或至少一个仰角索引。

基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或所述至少一个仰角值进行编码的所述模块还可以包括,其中所述第三比特数在逐个子频带的基础上可变地分布:通过在逐个子频带的基础上确定所述第三比特数的减少的分布来在逐个子频带的基础上进行编码,所述减少的估计基于所述初始估计和所述第二比特数的定义分配。

基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码还可以包括通过以下操作在逐个子频带的基础上编码,其中所述第三比特数在逐个子频带的基础上可变地分布:基于所述减少的分布,确定用于对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引进行编码的比特分配;估计对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数;基于对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数小于用于对针对子频带的所述至少一个方位索引和/或至少一个仰角索引编码的比特分配,对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码,并且否则,基于所述比特分配进行固定速率编码;生成标识所述至少一个方位角索引和/或至少一个仰角索引的编码的信令比特;从对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引编码的比特分配与编码所述子频带的比特数和所述信令比特之和的差中,分配任何可用比特以用于编码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配,或者否则将用于编码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配减少一个比特。

基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码还可以包括通过以下操作在逐个子频带的基础上编码,其中所述第三比特数在逐个子频带的基础上可变地分布:基于所述减少的分布,来确定用于对针对最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行编码的比特分配;以及基于所述减少的比特分配分布,对针对所述最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行固定速率编码。

基于对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数来对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码还可以包括具有两个gr参数值的golombrice编码。

通过在逐个子频带的基础上确定所述第三比特数的减少的分布来在逐个子频带的基础上进行编码还可以包括以下操作,所述减少的估计基于所述初始估计和所述第二比特数的定义分配:在逐个子频带的基础上均匀地减少用于编码所述至少一个方位角索引和/或至少一个仰角索引的比特分配。

基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或所述至少一个仰角值进行编码还可以包括以下至少一个操作,其中所述第三比特数在逐个子频带的基础上可变地分布:按照距离正面方向的距离的递增顺序分配用于编码的索引;按方位角值的递增顺序分配索引。

所述方法还可以包括:存储和/或发送所述帧的编码的至少一个能量比值和至少一个方位角值和/或至少一个仰角值。

根据第四方面,提供了一种方法,包括:接收针对音频信号的帧的子频带的编码值,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;基于定义的比特分配来对所述编码值进行解码,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

基于定义的比特分配来对所述帧的所述编码值进行解码还可以包括以下操作,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配:基于针对每个子频带的至少一个能量比值,来确定用于解码针对每个子频带的至少一个方位角索引和/或至少一个仰角索引的初始比特分配分布;基于初始比特分配分布和用于解码所述帧的所述至少一个能量值的比特分配分布,来确定减少的比特分配分布;以及基于所述比特分布的减少的分配,解码所述帧的至少一个方位角索引和/或至少一个仰角索引。

基于所述减少的比特分配分布来解码所述帧的所述至少一个方位角索引和/或至少一个仰角索引还可以包括:基于所述减少的分布来确定用于解码针对子频带的所述至少一个方位角索引和/或至少一个仰角索引的比特分配;基于指示熵编码的信令比特对所述至少一个方位角索引和/或至少一个仰角索引进行熵解码,否则进行固定速率解码;从对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引编码的比特分配与解码所述子频带的比特数和所述信令比特之和的差中,分配任何可用比特以用于解码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配,或者否则将用于解码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配减少一个比特。

基于所述减少的比特分配分布来解码所述帧的所述至少一个方位角索引和/或至少一个仰角索引还可以包括:基于所述减少的分布,来确定用于对针对最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行解码的比特分配;以及基于所述减少的比特分配分布,对针对所述最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行固定速率解码。

对所述至少一个方位角索引和/或至少一个仰角索引进行熵解码还可以包括具有两个gr参数值的golombrice解码。

根据第五方面,提供了一种装置,包括至少一个处理器和至少一个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起致使所述装置至少:接收针对音频信号帧的子频带的值,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;确定第一比特数的分配以对帧的值进行编码,其中所述第一比特数是固定的;基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码;基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码,其中,所述第三比特数在逐个子频带的基础上可变地分布。

被致使基于所述第一比特数中的所述第二比特数的定义分配来对所述帧的所述至少一个能量比值进行编码的装置还可以被致使:生成至少一个能量比值的加权平均值;基于所述第二比特数来对所述至少一个能量比值的加权平均值进行编码。

被致使基于所述第二比特数来对所述至少一个能量比率值的所述加权平均值进行编码的装置还可以被致使对所述至少一个能量比值的所述至少一个加权平均值进行标量非均匀地量化。

被致使基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码的所述装置还可以被致使执行以下操作,其中所述第三比特数在逐个子频带的基础上可变地分布:在逐个子频带的基础上确定所述第三比特数的分布的初始估计,所述初始估计基于与所述子频带相关联的至少一个能量比值;在逐个子频带的基础上基于对所述第三比特数的分布的初始估计,对所述至少一个方位角值和/或至少一个仰角值进行空间量化,以生成针对每个子频带的至少一个方位角索引和/或至少一个仰角索引。

被致使基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或所述至少一个仰角值进行编码的所述装置还可以被致使执行以下操作,其中所述第三比特数在逐个子频带的基础上可变地分布:通过在逐个子频带的基础上确定所述第三比特数的减少的分布来在逐个子频带的基础上进行编码,所述减少的估计基于所述初始估计和所述第二比特数的定义分配。

被致使基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码的所述装置还可以被致使通过执行以下操作在逐个子频带的基础上编码,其中所述第三比特数在逐个子频带的基础上可变地分布:基于所述减少的分布,确定用于对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引进行编码的比特分配;估计对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数;基于对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数小于用于对针对子频带的所述至少一个方位索引和/或至少一个仰角索引编码的比特分配,对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码,并且否则,基于所述比特分配进行固定速率编码;生成标识所述至少一个方位角索引和/或至少一个仰角索引的编码的信令比特;从对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引编码的比特分配与编码所述子频带的比特数和所述信令比特之和的差中,分配任何可用比特以用于编码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配,或者否则将用于编码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配减少一个比特。

被致使基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或至少一个仰角值进行编码的所述装置还可以被致使通过执行以下操作在逐个子频带的基础上编码,其中所述第三比特数在逐个子频带的基础上可变地分布:基于所述减少的分布,来确定用于对针对最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行编码的比特分配;以及基于所述减少的比特分配分布,对针对所述最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行固定速率编码。

被致使基于对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码所需的比特数来对所述至少一个方位角索引和/或至少一个仰角索引进行熵编码的装置还可以被致使进行具有两个gr参数值的golombrice编码。

被致使通过在逐个子频带的基础上确定所述第三比特数的减少的分布来在逐个子频带的基础上进行编码的装置还可以被致使执行以下操作,所述减少的估计基于所述初始估计和所述第二比特数的定义分配:在逐个子频带的基础上均匀地减少用于编码所述至少一个方位角索引和/或至少一个仰角索引的比特分配。

被致使基于所述第一比特数中的所述第三比特数的定义分配来对所述帧的所述至少一个方位角值和/或所述至少一个仰角值进行编码的所述装置还可以被致使执行以下至少一个操作,其中所述第三比特数在逐个子频带的基础上可变地分布:按照距离正面方向的距离的递增顺序分配用于编码的索引;按方位角值的递增顺序分配索引。

所述装置还可以被致使执行:存储和/或发送编码的至少一个能量比值和至少一个方位角值和/或至少一个仰角值。

根据第六方面,提供了一种装置,包括至少一个处理器和至少一个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起致使所述装置至少:接收针对音频信号的帧的子频带的编码值,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;基于定义的比特分配来对所述编码值进行解码,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

被致使基于定义的比特分配来对所述帧的所述编码值进行解码的装置还可以被致使执行以下操作,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配:基于针对每个子频带的至少一个能量比值,来确定用于解码针对每个子频带的至少一个方位角索引和/或至少一个仰角索引的初始比特分配分布;基于初始比特分配分布和用于解码所述帧的所述至少一个能量值的比特分配分布,来确定减少的比特分配分布;以及基于所述减少的比特分配分布,解码所述帧的至少一个方位角索引和/或至少一个仰角索引。

被致使基于所述减少的比特分配分布来解码所述帧的所述至少一个方位角索引和/或至少一个仰角索引的所述装置还可以被致使:基于所述减少的分布来确定用于解码针对子频带的所述至少一个方位角索引和/或至少一个仰角索引的比特分配;基于指示熵编码的信令比特对所述至少一个方位角索引和/或至少一个仰角索引进行熵解码,否则进行固定速率解码;从对针对子频带的所述至少一个方位角索引和/或至少一个仰角索引编码的比特分配与解码所述子频带的比特数和所述信令比特之和的差中,分配任何可用比特以用于解码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配,或者否则将用于解码针对另一子频带的至少一个方位索引和/或至少一个仰角索引的另一比特分配减少一个比特。

被致使基于所述减少的比特分配分布来解码所述帧的所述至少一个方位角索引和/或至少一个仰角索引的装置还可以被致使:基于所述减少的分布,来确定用于对针对最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行解码的比特分配;以及基于所述减少的比特分配分布,对针对所述最后一个子频带的至少一个方位角索引和/或至少一个仰角索引进行固定速率解码。

被致使对所述至少一个方位角索引和/或至少一个仰角索引进行熵解码的装置还可以被致使进行具有两个gr参数值的golombrice解码。

根据第七方面,提供了一种装置,包括:用于接收针对音频信号帧的子频带的值的模块,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;用于确定第一比特数的分配以对帧的值进行编码的模块,其中所述第一比特数是固定的;用于基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码的模块;用于基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码的模块,其中,所述第三比特数在逐个子频带的基础上可变地分布。

根据第八方面,提供了一种装置,包括用于接收针对音频信号的帧的子频带的编码值的模块,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;用于基于定义的比特分配来对所述编码值进行解码的模块,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

根据第九方面,提供了一种计算机程序,(包括程序指令的计算机可读介质),用于使装置至少执行以下操作:接收针对音频信号帧的子频带的值,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;确定第一比特数的分配以对帧的值进行编码,其中所述第一比特数是固定的;基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码;基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码,其中,所述第三比特数在逐个子频带的基础上可变地分布。

根据第十方面,提供了一种包括计算机程序(或包括程序指令的计算机可读介质),包括用于使装置至少执行以下操作:接收针对音频信号的帧的子频带的编码值,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;基于定义的比特分配来对所述编码值进行解码,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

根据第十一方面,提供了一种非暂时性计算机可读介质,包括用于使装置至少执行以下操作的程序指令:接收针对音频信号帧的子频带的值,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;确定第一比特数的分配以对帧的值进行编码,其中所述第一比特数是固定的;基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码;基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码,其中,所述第三比特数在逐个子频带的基础上可变地分布。

根据第十二方面,提供了一种非暂时性计算机可读介质,包括用于使装置至少执行以下操作的程序指令:接收针对音频信号的帧的子频带的编码值,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;基于定义的比特分配来对所述编码值进行解码,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

根据第十三方面,提供了一种装置,包括:接收电路,被配置为接收针对音频信号帧的子频带的值,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;分配电路,被配置为确定第一比特数的分配以对帧的值进行编码,其中所述第一比特数是固定的;编码电路,被配置为基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码;编码电路,其被配置为基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码,其中,所述第三比特数在逐个子频带的基础上可变地分布。

根据第十四方面,提供了一种装置,包括:接收电路,被配置为:接收针对音频信号的帧的子频带的编码值,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;解码电路,被配置为基于定义的比特分配来对所述编码值进行解码,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

根据第十五方面,提供了一种计算机可读介质,其包括用于使装置至少执行以下操作的程序指令:接收针对音频信号帧的子频带的值,所述值包括针对每个子频带的至少一个方位角值、至少一个仰角值和至少一个能量比值;确定第一比特数的分配以对帧的值进行编码,其中所述第一比特数是固定的;基于所述第一比特数中的第二比特数的定义分配,来对所述帧的至少一个能量比值进行编码;基于所述第一比特数中的第三比特数的定义分配,来对所述帧的至少一个方位角值和/或所述帧的至少一个仰角值进行编码,其中,所述第三比特数在逐个子频带的基础上可变地分布。

根据第十六方面,提供了一种计算机可读介质,其包括用于使装置至少执行以下操作的程序指令:接收针对音频信号的帧的子频带的编码值,所述值包括针对每个子频带的至少一个方位角索引、至少一个仰角索引和至少一个能量比值;基于定义的比特分配来对所述编码值进行解码,其中对所述帧的所述至少一个方位角索引和/或至少一个仰角索引进行的解码使用在逐个子频带的基础上可变地分布的比特分配。

一种装置,包括用于执行如上所述的方法的动作的模块。

一种装置,被配置为执行如上所述的方法的动作。

一种计算机程序,包括用于使计算机执行如上所述的方法的程序指令。

一种存储在介质上的计算机程序产品,可以使装置执行本文所述的方法。

一种电子设备,可以包括本文所述的装置。

一种芯片组,可以包括本文所述的装置。

本申请的实施例旨在解决与现有技术相关的问题。

附图说明

为了更好地理解本申请,现在将通过示例的方式参考附图,其中:

图1示意性地示出了适于实现一些实施例的装置的系统;

图2示意性地示出了根据一些实施例的元数据编码器;

图3示出了根据一些实施例的如图2所示的元数据编码器的操作的流程图;

图4示意性地示出了根据一些实施例的元数据解码器;

图5示出了根据一些实施例的如图4所示的元数据解码器的操作的流程图;以及

图6示意性地示出了适于实现所示装置的示例设备。

具体实施方式

以下进一步详细描述用于提供有效空间分析导出的元数据参数的合适的装置和可能的机制。在以下讨论中,关于多声道麦克风实现来讨论多声道系统。但是,如上所述,输入格式可以是任何合适的输入格式,例如多声道扬声器,全景声(foa/hoa)等。应理解,在一些实施例中,声道位置是基于麦克风的位置,或者是虚拟位置或方向。此外,示例系统的输出是多声道扬声器装备。然而,应当理解,可以通过扬声器以外的模块将输出渲染给用户。此外,可以将多声道扬声器信号概括为两个或更多个回放音频信号。

针对每个考虑的时间/子频带,元数据至少包括结果方向的仰角、方位角和能量比。从音频数据中提取方向参数分量、方位角和仰角,然后量化为给定的量化分辨率。为了高效传输,必须进一步压缩生成的索引。对于高比特率,需要对元数据进行高质量的无损编码。

下文中讨论的概念是将固定比特率编码方法与可变比特率编码相结合,所述可变比特率编码在不同段之间分配要压缩的数据的编码比特,使得每帧的总比特率是固定的。在时间频率块内,比特可以是在子频带之间转移。

关于图1,示出了用于实现本申请的实施例的示例装置和系统。系统100显示为具有“分析”部分121和“合成”部分131。“分析”部分121是从接收多声道扬声器信号直到元数据和缩混信号的编码的部分,并且“合成”部分131是从对编码的元数据和缩混信号的解码到对重新生成的信号(例如,多声道扬声器形式)的呈现的部分。

系统100和“分析”部分121的输入是多声道信号102。在以下示例中,描述了麦克风声道信号输入,但是在其他实施例中可以实现任何合适的输入(或合成多声道)格式。例如,在一些实施例中,空间分析器和空间分析可以在编码器外部实现。例如,在一些实施例中,可以将与音频信号相关联的空间元数据作为分开的比特流提供给编码器。在一些实施例中,空间元数据可以作为一组空间(方向)索引值来提供。

多声道信号被传递到缩混器(downmixer)103和分析处理器105。

在一些实施例中,缩混器103被配置为接收多声道信号并将所述信号缩混到确定数量的声道并输出缩混信号104。例如,缩混器103可以被配置为生成多声道信号的2声道音频缩混。所确定的声道数量可以是任何合适的声道数量。在一些实施例中,缩混器103是可选的,并且多声道信号以与本示例中的缩混信号相同的方式未经处理地传递至编码器107。

在一些实施例中,分析处理器105还被配置为接收多声道信号并分析所述信号以生成与多声道信号相关联并因此与缩混信号104相关联的元数据106。分析处理器105可以被配置为生成元数据,所述元数据针对每个时频分析间隔可以包括方向参数108和能量比参数110(以及在一些实施例中的相干参数和扩散参数)。在一些实施例中,方向和能量比可以被认为是空间音频参数。换句话说,空间音频参数包括旨在表征由多声道信号(或通常是两个或更多个回放音频信号)创建的声场的参数。

在一些实施例中,所生成的参数可能在频带之间不同。因此,例如,在频带x中,所有参数都被生成和传输,而在频带y中,仅有一个参数被生成和传输,此外,在频带z中,没有参数被生成或传输。这方面的一个实际的例子可能是,对于一些频带,例如最高频带,出于感知的原因,一些参数是不需要的。缩混信号104和元数据106可以被传递给编码器107。

编码器107可以包括音频编码器核心109,其被配置为接收缩混(或其他)信号104并生成这些音频信号的适当编码。在一些实施例中,编码器107可以是计算机(运行存储在存储器和至少一个处理器上的适当软件),或者使用例如fpga或asic的特定设备。可以使用任何合适的方案来实现编码。编码器107还可包括元数据编码器/量化器111,其被配置为接收元数据并输出信息的编码或压缩形式。在一些实施例中,在图1中虚线所示的传输或存储之前,编码器107可以进一步交织、多路复用到单个数据流或将元数据嵌入编码的缩混信号内。可以使用任何合适的方案来实现复用。

在解码器侧,接收到的或检索到的数据(流)可以由解码器/解复用器133接收。解码器/解复用器133可以对编码流进行解复用,并将音频编码流传递给缩混提取器135,其被配置为对音频信号进行解码以获得缩混信号。类似地,解码器/解复用器133可以包括元数据提取器137,其被配置为接收编码的元数据并生成元数据。在一些实施例中,解码器/解复用器133可以是计算机(运行存储在存储器和至少一个处理器上的合适的软件),或者可使用例如fpga或asic的特定设备。

解码的元数据和缩混音频信号可以被传递到合成处理器139。

系统100“合成”部分131还示出了合成处理器139,其被配置为接收缩混和元数据,并基于缩混信号和元数据以任何合适的格式来重新创建呈多声道信号110形式的合成空间音频(这些可以是多声道扬声器格式,或在某些实施例中的其他格式,例如双耳或全景声信号,取决于使用情况)。

因此,总而言之,首先将系统(分析部件)被配置为接收多声道音频信号。

然后,系统(分析部分)被配置为生成缩混或以其他方式生成合适的传输音频信号(例如,通过选择一些音频信号声道)。

然后,所述系统被配置为缩混(或更一般地为传输)信号进行编码,以便用于存储/传输。

此后,系统可以存储/传输编码的缩混和元数据。

系统可以检索/接收编码的缩混和元数据。

然后,所述系统被配置为从编码的缩混和元数据参数提取缩混和元数据,例如,对编码的缩混和元数据参数进行解复用和解码。

系统(合成部分)被配置为基于提取的多声道音频信号的缩混和元数据来合成输出的多声道音频信号。

关于图2,进一步详细描述了根据一些实施例的示例分析处理器105和元数据编码器/量化器111(如图1所示)。

在一些实施例中,分析处理器105包括时频域变换器201。

在一些实施例中,时频域变换器201被配置为接收多声道信号102,并应用适当的时频域变换,例如短时傅立叶变换(stft),以便将输入的时域信号转换为合适的时频信号。这些时频信号可以被传递到空间分析器203和信号分析器205。

因此,例如,时频信号202可以在时频域表示中被表示为

si(b,n),

其中b是频率仓索引,n是时频块(帧)索引,i是声道索引。在另一个表达式中,可以将n视为采样率比原始时域信号的采样率低的时间索引。这些频率仓可以被分组为子频带,子频带将一个或多个频率仓分组为频带索引为k=0,...,k-1的子频带。每个子频带k具有最低的仓bk,low和最高的仓bk,high,并且子频带包含从bk,low到bk,high的所有仓。子频带的宽度可以近似任何合适的分布。例如,等效矩形带宽(erb)标度或巴克(bark)标度。

在一些实施例中,分析处理器105包括空间分析器203。空间分析器203可以被配置为接收时频信号202,并基于这些信号来估计方向参数108。可以基于任何基于音频的“方向”确定,来确定方向参数。

例如,在一些实施例中,空间分析器203被配置为利用两个或更多个信号输入来估计方向。这代表了估计“方向”的最简单配置,可以使用更多信号来执行更复杂的处理。

因此,空间分析器203可以被配置为针对音频信号的帧内的每个频带和时间时频块提供至少一个方位角和仰角,表示为方位角和仰角θ(k,n)。方向参数108也可以被传递到方向索引生成器205。

空间分析器203还可被配置为确定能量比参数110。能量比可以被认为是从一个方向到达的音频信号的能量的确定。例如,可以使用方向估计的稳定性度量,或使用任何相关度量,或任何其他合适的方法以获得比率参数,来估计直接与总体能量比r(k,n)。能量比可以被传递到能量比分析器221和能量比编码器223。

因此,总而言之,分析处理器被配置为接收时域多声道或其他格式,例如麦克风或全景声音频信号。

此后,分析处理器可以应用时域到频域变换(例如,stft)来生成用于分析的合适的时频域信号,然后应用方向分析来确定方向和能量比参数。

然后可以将分析处理器配置为输出所确定的参数。

尽管这里针对每个时间索引n表示方向和比率,但是在一些实施例中,可以在多个时间索引上组合参数。如已经表达的那样,同样适用于频率轴,多个频率仓b的方向可以由由多个频率仓b组成的频带k中的一个方向参数表达。同样适用于本文讨论的所有空间参数。

还如图2所示,根据一些实施例示出了示例性元数据编码器/量化器111。

元数据编码器/量化器111可以包括能量比分析器(或量化分辨率确定器)221。能量比分析器221可以被配置为接收能量比,并且从所述分析中为所述帧中所有时频块生成方向参数的量化分辨率(换句话说,用于仰角和方位角值的量化分辨率)。所述比特分配例如可以由bits_dir0[0:n-1][0:m-1]定义。

元数据编码器/量化器111可以包括方向索引生成器205。方向索引生成器205被配置为接收方向参数(诸如方位角和仰角108以及量化比特分配),并由此生成量化输出。在一些实施例中,量化基于在“表面”球体上以环的形式排列的形成球面网格的球体排列,所述“表面”球体由确定的量化分辨率定义的查找表定义。换句话说,球面网格使用的想法是用较小的球体覆盖一个球体,并将较小的球体的中心视为定义几乎等距方向的网格的点。因此,较小的球体围绕中心点定义了圆锥或立体角,可以根据任何合适的索引算法对该圆锥或立体角进行索引。尽管这里描述了球面量化,但是可以使用任何合适的量化、线性或非线性。

例如,在一些实施例中,方向参数(方位角和仰角)的比特是根据bits_direction[]表来分配的;如果能量比具有索引i,则所述方向的比特数是bits_direction[i]。

constshortbits_direction[]={

3,5,6,8,9,10,11,11};

以下变量给出了用于不同比特分辨率的方向量化器的结构:

constshortno_theta[]=/*从1to11比特*/

{/*1,-1bit

1,*//*2bits*/

1,/*3bits*/

2,/*4bits*/

4,/*5bits*/

5,/*6bits*/

6,/*7bits*/

7,/*8bits*/

10,/*9bits*/

14,/*10bits*/

19/*11bits*/

};

constshortno_phi[][max_no_theta]=/*从1到11比特*/

{

{2},

{4},

{8},

{12,4},/*极点处没有点*/

{12,7,2,1},

{14,13,9,2,1},

{22,21,17,11,3,1},

{33,32,29,23,17,9,1},

{48,47,45,41,35,28,20,12,2,1},

{60,60,58,56,54,50,46,41,36,30,23,17,10,1},

{89,89,88,86,84,81,77,73,68,63,57,51,44,38,30,23,15,8,1}

};

“no_theta”对应于方向球(包括赤道)的“北半球”中的仰角值的数量。“no_phi”对应于每个量化器在每个仰角处的方位角值的数量。

例如,对于5比特,有4个仰角值对应[0、30、60、90],并且4-1=3负仰角值[-30,-60,-90]。对于第一个仰角值0,有12个等距方位角值,对于仰角值30和-30,有7个等距方位角值,依此类推。

除对应于4比特的结构之外,所有量化结构在连续仰角值之间的差为90度除以仰角值的数量“no_theta”。对应于4比特的结构仅具有针对0和+45度仰角值的点。所述结构在赤道线以下没有点。这是一个示例,并且可以实现任何其他合适的分布。例如,在一些实施例中,可以实现用于4比特的球面网格,所述球面网格也具有在赤道下方的点。同样,3比特分布可以在球体上扩展或仅限于赤道。

然后可以将一组时间块内的子频带的量化索引传递给方向索引编码器225。方向索引编码器225于是可以被配置为以子频带为基础对子频带上的索引值进行编码。

方向索引编码器225因此可以被配置为减少分配的比特数bits_dir1[0:n-1][0:m-1],使得分配的比特之和等于编码能量比之后剩余的可用比特数。

在某些实施例中,可以通过以下方式实现初始分配的比特数的减少,换句话说,从bits_dir0[0:n-1][0:m-1]到bits_dir1[0:n-1][0:m-1]:

首先,将时/频块上的比特数均匀地减少这样的比特数目,该比特数目由要被减少的比特与时频块的数量之间的整数除法给出;

其次,仍需减去的比特从子频带0、时频块0开始,每时频块减去一个。

例如,这可以通过以下c代码实现:

在一些实施例中,可以为每个块施加大于0的最小比特数。

然后,方向索引编码器225然后可以被配置为在子频带基础上实现在子频带上允许的所减少比特数。

例如,方向索引编码器225可以被配置为从第一子频带到倒数第二子频带基于所计算的针对当前子频带的所允许比特数来确定。换句话说,从i=1到n-1,bits_allowed=sum(bits_dir1[i][0:m-1])。

然后,可以将方向索引编码器配置为尝试使用合适的熵编码对方向参数索引进行编码,并确定当前子频带(bits_ec)需要多少个比特。如果这小于使用确定的所减少的分配比特数(bits_fixed=bits_allowed)的合适的固定速率编码机制,则选择熵编码。否则,选择固定速率编码方法。

此外,一比特用于指示所选方法。

换句话说,用于编码子频带方向索引的比特数为:

nb=min(bits_fixed,bits_ec)+1;

方向索引编码器然后可以被配置为确定从可用比特的子频带“池”中是否剩余比特。

例如,方向索引编码器225可以被配置为确定差值

diff=(allowed_bits-nb)

在diff>0的情况下,换句话说,存在来自分配中未使用的比特,则可以将这些比特重新分配给后续子频带。例如,通过更新由数组bits_dir1[i+1:n-1][0:m-1]定义的分布。

在diff=0或<0的情况下,然后从后续子频带的分配中从分配中减去一比特。例如,通过更新由数组bits_dir1[i+1][0]定义的分布

已经对除最后一个子频带之外的所有子频带进行编码之后,使用由dir1[n-1][0:m-1]比特定义的比特分配,使用固定速率编码对最后一个子频带索引值进行编码。

然后可以将这些传递到组合器207。

在一些实施例中,编码器包括能量比编码器223。能量比编码器223可以被配置为接收所确定的能量比(例如,直接与总体能量比,以及进一步的扩散与总体能量比和剩余与总体能量比)并对它们进行编码/量化。

例如,在一些实施例中,能量比编码器223被配置为针对每个子频带使用3个比特来应用标量非均匀量化。

此外,在一些实施例中,能量比编码器223被配置为每子频带生成一个加权平均值。在一些实施例中,通过考虑每个时频块的总能量和基于具有更多能量的子频带应用的加权,来计算所述平均值。

能量比编码器223然后可以将其传递给组合器,所述组合器被配置为组合元数据并输出组合的编码后的元数据。

关于图3,示出了如图2所示的元数据编码器/量化器111的操作。

如图3通过步骤301所示,初始操作是获得元数据(方位角值、仰角值、能量比)的一个操作。

已经获得了针对每个子频带的元数据(i=1:n),准备进行初始分布或分配,并且如图3通过步骤303所示,使用3比特对相应的能量比值进行编码,然后为当前子频带的所有时频块设置用于方位角和仰角的量化分辨率。量化分辨率通过允许由能量比的值给出预定义比特数来设置,bits_dir0[0:n-1][0:m-1]。

如图3通过步骤305所示,生成初始分配后,减少分配的比特数,即bits_dir1[0:n-1][0:m-1](分配的比特数之和=编码能量比后剩余的可用比特数)。

然后,通过针对直到倒数第二个子频带的子频带(换句话说,针对每个子频带i=1:n-1)(或者,如果为最后一个子频带分配零个比特,则“比特通过”过程可以仅在倒数第二个子频带之前的子频带(1:n-2)中实现)子频带实现以下操作,来实现减少的比特分配:对于当前子频带计算允许比特:bits_allowed=sum(bits_dir1[i][0:m-1])。使用减少的分配比特数对方向参数索引进行编码(使用固定速率编码或熵编码,以使用较少比特的为准)并指示编码选择。如果相对于允许的比特有可用比特:将差值重新分配给随后的子频带(通过更新bits_dir1[i+1:n-1][0_m-1]),否则从bits_dir1[i+1][0]中减去一比特。这在图3中由步骤307示出。

如图3通过步骤309所示,对于最后一个子频带,使用bits_dir1[n-1][0:m-1]比特以固定速率方法对针对最后一个子频带的方向参数索引进行编码。

关于图4,示出了作为解码器133的一部分的示例元数据提取器137。

在一些实施例中,编码的数据流被传递到解复用器401。示出解复用器401提取编码的能量比和编码的方向索引,并且在一些实施例中还可以提取其他元数据和传输音频信号(未示出)。

能量比可以被输出并且还可以被传递给能量比分析器(量化分辨率确定器),其中与在元数据编码器能量比分析器(量化分辨率确定器)内执行的分析类似的分析生成用于方向信息的初始比特分配。这被传递给方向索引解码器405。

方向索引解码器405还可从解复用器接收编码的方向索引。

方向索引解码器405可以被配置为以类似于在编码器内执行的方式来确定对于方向值的减少的比特分配。

然后,方向索引解码器405还可以被配置为读取一比特,以确定是否所有仰角数据都是0(换句话说,方向值是2d)。

在方向值是3d的情况下,则确定对于最后一个子频带分配nb_last的计数值。

如果值nb_last为0,则要解码的最后一个子频带为n-1,否则要解码的最后一个子频带为n。

然后,在从第一子频带到最后一个子频带(根据先前的确定,为n或n-1)的逐个子频带的基础上,方向索引解码器405被配置为确定当前子频带的编码是使用固定速率码还是可变速率码。

在编码器处使用固定速率码的情况下,则对球面索引(或其他索引分布)进行读取和解码,以获得仰角和方位角值,并将对于下一个子频带的比特分配减少1。

在编码器处使用可变速率码的情况下,则对熵编码的索引进行读取和解码,以生成仰角和方位角值。然后,对在熵编码信息中使用的比特数进行计数,并确定在对于当前子频带的允许比特与在熵编码中使用的比特之间的差值。此后,将差值比特分配给随后的子频带。

然后,基于固定速率码对最后一个子频带进行解码。

在方向值是2d的情况下,则针对每个子频带,基于固定速率编码的方位角索引来解码索引。

关于图5,示出了示例编码比特流的解码的流程图。

因此,例如,第一操作将是获取元数据(方位角值、仰角值、能量比),如图5中通过步骤501所示。

然后,所述方法可以基于能量比值来估计用于方向信息的初始比特分配,如图5中通过步骤503所示。

然后如图5中通过步骤505所示,可以减少可用比特分配,bits_dir1[0:n-1][0:m-1](分配的比特之和=可用于解码方向信息的剩余可用比特的数量)。

然后读取一比特来确定所有仰角数据是否为0(2d数据)。

如果方向性数据是3d,则如图5中的步骤509所示,

计数可用于最后一个子频带(nb_last)的可用比特数,其中(nb_last=0),然后last_j=n-1,否则last_j=n;

针对从j=1:last_j-1的每个子频带

读取1比特来判断编码是固定速率还是可变速率

如果是固定速率编码:

读取和解码用于方向性信息的球面索引,获取仰角和方位角值,并从针对下一子频带的比特中减去1个比特;

否则,读取和解码用于仰角和方位角的熵编码索引,计数在熵编码信息中使用的比特数,计算在针对当前子频带的允许比特与在熵编码中使用的比特之间的差,并为下一子频带分配差值比特;

结束for(循环);

针对从j=last_j:n的每个子频带:读取并解码用于方向性数据的固定速率编码的球面索引。

如果方向性数据是2d,则针对从j=1:n的每个子频带:解码固定速率编码的方位角索引,如图5通过步骤511所示。

在一些实施例中,可以使用具有golombrice参数的两个可能值的golombrice编码方法来实现方位角和仰角索引的熵编码/解码。在一些实施例中,也可以使用任何适当的熵编码技术(例如,霍夫曼(huffman),算术编码......)来实现熵编码。

在一些实施例中,当对仰角索引进行编码/解码时,对于用于量化的比特数小于或等于3的情况,可能会有几个例外。对于这些情况,仅存在一个仰角值,因此不需要对仰角的索引进行编码/解码,并且仅需要方位角索引。

如果用于一个子频带的所有时频块都使用少于4比特,则不发送任何用于仰角编码的比特,否则,发送一比特以规定golombrice参数,其余比特对应于针对使用3比特以上的时频块的golombrice码。golombrice参数为1或0。gr参数值的选择基于每种情况下的估计比特消耗,并选择具有较少比特数的一个。

例如,这可以使用以下c代码实现

可以使用具有两个gr参数值的golombrice编码来实现方位角的编码/解码。这两个值是1和2。gr参数值的选择是通过估计两种情况下的比特数并选择比特数较少的一个来完成的。当用于一个子频带的至少一个时频块的分配比特数小于或等于1时,将考虑一种特殊情况。如果是这种情况(以下c函数中的“use_context”情况),则基于分配的比特数,用1或0比特对相应的块信息进行编码,而其余时频块则使用gr编码进行编码,参数等于1。

在一些实施例中,方位角值的索引被实现为使得不是以方位角值的递增顺序分配索引,而是以距正面方向的距离的递增顺序来分配索引。换句话说,如果量化的方位角值分别是-180、-135、-90、-45、0、45、90、135,它们没有得到索引:0、1、2、3、4、5、6、7,而是7、5、3,1、0、2、4、6。这在一些实施例中可以确保方位角索引值平均值较低,并且熵编码更有效。

整体编码方法允许将比特从一个子频带转移到另一个子频带,从而可以更好地适应本地数据统计。

关于图6,示出了可以用作分析或合成设备的示例电子设备。所述设备可以是任何合适的电子设备或装置。例如,在一些实施例中,设备1400是移动设备、用户设备、平板计算机、计算机、音频回放装置等。

在一些实施例中,设备1400包括至少一个处理器或中央处理单元1407。处理器1407可以被配置为执行各种程序代码,例如本文所述的方法。

在一些实施例中,设备1400包括存储器1411。在一些实施例中,至少一个处理器1407耦合到存储器1411。存储器1411可以是任何合适的存储装置。在一些实施例中,存储器1411包括用于存储可在处理器1407上实现的程序代码的程序代码部分。此外,在一些实施例中,存储器1411可以进一步包括用于存储数据(例如根据本文所述的实施例已经处理或将要处理的数据)的存储数据部分。只要需要,就可以通过存储器-处理器耦合由处理器1407检索存储在程序代码部分中的已实现程序代码和存储在存储数据部分中的数据。

在一些实施例中,设备1400包括用户接口1405。在一些实施例中,用户接口1405可以耦合到处理器1407。在一些实施例中,处理器1407可以控制用户接口1405的操作并从用户接口1405接收输入。在一些实施例中,用户接口1405可以使用户能够例如通过键盘向设备1400输入命令。在一些实施例中,用户接口1405可以使用户能够从设备1400获得信息。例如,用户接口1405可以包括被配置为向用户显示来自设备1400的信息的显示器。在一些实施例中,用户接口1405可以包括触摸屏或触摸接口,其既可以使信息能够被输入到设备1400,又可以向设备1400的用户显示信息。在一些实施例中,用户接口1405可以是用于与如本文所述的位置确定器通信的用户接口。

在一些实施例中,设备1400包括输入/输出端口1409。在一些实施例中,输入/输出端口1409包括收发器。在这样的实施例中,收发器可以耦合到处理器1407,并且被配置为使得能够例如经由无线通信网络与其他装置或电子设备进行通信。在一些实施例中,收发器或任何合适的收发器或发射器和/或接收器装置可以被配置为经由有线或有线耦合与其他电子设备或装置通信。

收发器可以通过任何合适的已知通信协议与另外的装置进行通信。例如,在一些实施例中,收发器可以使用合适的通用移动电信系统(umts)协议、无线局域网(wlan)协议,例如ieee802。x,合适的短距离射频通信协议,例如蓝牙或红外数据通信路径(irda)。

如本文所述,收发器输入/输出端口1409可以被配置为接收信号,并且在一些实施例中,通过使用处理器1407执行合适的代码来确定参数。此外,设备可以生成合适的缩混信号和参数输出,以发送到合成设备。

在一些实施方案中,装置1400可以用作合成装置的至少一部分。这样,输入/输出端口1409可以被配置为接收缩混信号以及在一些实施例中如本文所述在捕获设备或处理设备处确定的参数,并通过使用处理器1407执行合适的代码来生成合适的音频信号格式输出。输入/输出端口1409可以耦合到任何合适的音频输出,例如耦合到多声道扬声器系统和/或耳机等。

通常,本发明的各种实施例可以以硬件或专用电路、软件、逻辑或其任意组合来实现。例如,某些方面可以以硬件实现,而其他方面可以以固件或软件实现,其可以由控制器、微处理器或其他计算设备执行,尽管本发明不限于此。虽然本发明的各个方面可以被图示和描述为框图、流程图或使用一些其他图形表示,但是可以理解的是,本文所述的这些框、装置、系统、技术或方法可以被实现在作为非限制性示例的硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备、或其一些组合中。

本发明的实施例可以由移动设备的数据处理器可执行的计算机软件来实现,例如在处理器实体中,或者由硬件执行,或者由软件和硬件的组合执行。此外在这一点上,应当注意,如图中的逻辑流程的任何块可以表示程序步骤,或者互连的逻辑电路、块和功能,或者程序步骤和逻辑电路、决和功能的组合。所述软件可以存储在诸如存储芯片或在处理器内实现的存储块的物理介质、诸如硬盘或软盘的磁性介质、以及诸如dvd及其数据变体、cd等光学介质上。

存储器可以是适合于本地技术环境的任何类型,并且可以使用任何合适的数据存储技术来实现,例如基于半导体的存储设备、磁存储设备和系统、光学存储设备和系统、固定存储器和可移动存储器。作为非限制性示例,数据处理器可以是适合本地技术环境的任何类型,并且可以包括通用计算机、专用计算机、微处理器、数字信号处理器(dsp)、专用集成电路(asic)、门级电路和基于多核处理器架构的一个或多个处理器。

本发明的实施例可以在诸如集成电路模块的各种组件中实践。集成电路的设计总体上是一个高度自动化的过程。复杂而功能强大的软件工具可用于将逻辑级设计转换成易于在半导体衬底上蚀刻和形成的半导体电路设计。

程序,例如由加利福尼亚州山景城的synopsys公司和加利福尼亚州圣何塞的cadencedesign提供的程序,可以使用完善的设计规则以及预先存储的设计库自动在半导体半导体芯片上布线和定位元件。一旦完成了半导体电路的设计,可以将标准化电子格式(例如,opus、gdsii等)的最终设计传送到半导体制造设施或“工厂”进行制造。

前面的描述通过示例性和非限制性示例提供了本发明的示例性实施例的完整且有益的描述。然而,当结合附图和所附权利要求书阅读时,鉴于前面的描述,各种修改和改编对于相关领域的技术人员而言将变得显而易见,但是,本发明的教导的所有这样的和类似的修改仍然将落入所附权利要求所限定的本发明的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1