一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2021-06-18 20:39:00 来源:中国专利 TAG:编码 用于 参数 声场 排他
确定空间音频参数的编码和相关联解码的制作方法

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



背景技术:

参数化空间音频处理是其中使用一组参数描述声音的空间方面的音频信号处理的领域。例如,在来自麦克风阵列的参数化空间音频采集中,典型且有效的选择是从麦克风阵列信号估计出一组参数,诸如声音在频带中的方向,以及所采集的声音在频带中的方向性部分和非方向性部分之间的比率。已知这些参数良好地描述所采集的声音在麦克风阵列的位置处的感知空间性质。这些参数可以因此在空间声音的合成中用于双耳耳机、用于扬声器,或用于其他格式,诸如全景声(ambisonic)。

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

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

上述解决方案特别适合于对来自麦克风阵列(例如,在移动电话、vr相机、独立麦克风阵列中)的所捕获的空间声音进行编码。然而,对于此种编码器,可能期望还具有除麦克风阵列捕获的信号之外的其他输入类型,例如,扬声器信号、音频对象信号或全景声信号。

在与定向音频编码(dirac)和谐波平面波扩展(harpex)相关的科学文献中,已彻底记录了分析用于空间元数据提取的一阶全景声(foa)输入。这是因为存在直接提供foa信号(更准确地说:其变体,b格式信号)的麦克风阵列,并且分析此种输入因此已是该领域的研究重点。

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

然而关于元数据分量,压缩是目前的研究课题。



技术实现要素:

根据第一方面,提供了一种装置,其包括用于以下操作的模块:接收用于音频信号的帧的子带的值,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本;对至少一个向量进行离散余弦变换,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码。

用于基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个相干值进行编码的码本的模块可以进一步用于:获得表示用于帧的每个子带的至少一个能量比值的加权平均的指数;确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值;以及基于指数和确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值,来选择码本。

用于基于指数,和确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值来选择码本的模块可以进一步用于基于指数选择用于码本的码字的数量。

分布的度量可以是以下中的一个:连续方位角值之间的平均绝对差;相对于子带中的平均方位角值的平均绝对差;用于帧的子带的至少一个方位角值的标准偏差;以及用于帧的子带的至少一个方位角值的方差。

用于基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码的模块可以进一步用于:确定离散余弦变换向量的第一数量取决于子带;基于码本对第一数量的离散余弦变换向量分量中的第一分量进行编码。

用于基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码的模块可以进一步用于:基于子带的指数确定用于标量量化的码本,每个码本包括确定数量的码字;基于所确定的码本,为第一数量的离散余弦变换向量分量的分量剩余部分生成至少一个进一步指数;基于用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,生成均值移除指数;以及对均值移除指数进行熵编码。

用于基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码的模块可以进一步用于:基于具有所定义数量的码字的码本,确定用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,该码本进一步基于向量的子带指数;基于用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,确定均值移除指数;以及对均值移除指数进行熵编码。

用于对均值移除指数进行熵编码的模块可以进一步用于对均值移除指数进行golomb-rice编码。

该模块可以进一步用于:存储和/或发送离散余弦变换向量的编码的第一数量的分量。

该模块可以进一步用于对至少一个能量比值进行标量量化,以生成适合于确定码本的至少一个能量比值指数,该码本用于对用于每个子带的至少一个相干值进行编码。

该模块可以进一步用于:基于目标位数、在编码前基于所确定的码本估计的用于对离散余弦变换向量的第一数量的分量进行编码的位数、表示至少一个能量比值指数的位数、和表示均值移除指数的熵编码的位数,来估计用于对至少一个方位角值和至少一个仰角值进行编码的剩余位数;对至少一个方位角值和至少一个仰角值进行编码,以基于剩余位数生成至少一个方位角值指数和至少一个仰角值指数,其中基于至少一个方位角值指数确定用于对用于每个子带的至少一个相干值进行编码的码本。

根据第二方面,提供了一种装置,其包括用于以下动作的模块:获得用于音频信号的帧的子带的编码值,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本;对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值。

用于基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本的模块可以进一步用于:确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值;以及基于至少一个能量比指数和确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值,来选择码本。

用于基于至少一个能量比指数,和确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值来选择码本的模块可以进一步用于基于至少一个能量比指数选择用于所述码本的码字的数量。

分布的度量可以是以下中的一个:连续方位角值之间的平均绝对差;相对于子带中的平均方位角值的平均绝对差;用于帧的子带的至少一个方位角值的方差;以及用于帧的子带的至少一个方位角值的方差。

用于基于所确定的码本对离散余弦变换向量的第一数量的分量进行解码的模块可以进一步用于:基于码本对第一数量的离散余弦变换向量分量的第一分量进行解码;基于码本对第一数量的离散余弦变换向量分量的进一步分量进行解码;以及对解码的第一分量和进一步分量进行逆余弦变换。

根据第三方面,提供了一种方法,其包括:接收用于音频信号的帧的子带的值,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本;对至少一个向量进行离散余弦变换,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码。

基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个相干值进行编码的码本可以进一步包括:获得表示用于帧的每个子带的至少一个能量比值的加权平均值的指数;确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值;以及基于指数和确定用于上述帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值,来选择码本。

基于指数,和确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值来选择码本可以进一步包括基于指数选择用于所述码本的码字的数量。

分布的度量可以是以下中的一个:连续方位角值之间的平均绝对差;相对于子带中的平均方位角值的平均绝对差;用于帧的子带的至少一个方位角值的标准偏差;以及用于帧的子带的至少一个方位角值的方差。

基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码可以进一步包括:确定离散余弦变换向量的第一数量取决于子带;基于码本对第一数量的离散余弦变换向量分量的第一分量进行编码。

基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码可以进一步包括:基于子带的指数确定用于标量量化的码本,每个码本包括确定数量的码字;基于所确定的码本为第一数量的离散余弦变换向量分量的分量剩余部分生成至少一个进一步指数;基于用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数生成均值移除指数;以及对均值移除指数进行熵编码。

基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码可以进一步包括:基于具有所定义数量的码字的码本,确定用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,该码本进一步基于向量的子带指数;基于用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,确定均值移除指数;以及对均值移除指数进行熵编码。

对均值移除指数进行熵编码可以进一步包括对均值移除指数进行golomb-rice编码。

该方法可以进一步包括:存储和/或发送离散余弦变换向量的编码的第一数量的分量。

该方法可以进一步包括:对至少一个能量比值进行标量量化,以生成适合于确定码本的至少一个能量比值指数,该码本用于对用于每个子带的至少一个相干值进行编码。

该方法可以进一步包括:基于目标位数、在所述编码前基于所确定的码本估计的用于对离散余弦变换向量的第一数量的分量进行编码的位数、表示至少一个能量比值指数的位数、和表示均值移除指数的熵编码的位数,来估计用于对至少一个方位角值和至少一个仰角值进行编码的剩余位数;对至少一个方位角值和至少一个仰角值进行编码,以基于剩余位数生成至少一个方位角值指数和至少一个仰角值指数,其中基于至少一个方位角值指数确定用于对用于每个子带的至少一个相干值进行编码的码本。

根据第四方面,提供了一种方法,其包括:获得用于音频信号的帧的子带的编码值,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本;对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值。

基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本可以进一步包括:确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值;以及基于至少一个能量比指数和确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值,来选择码本。

基于至少一个能量比指数,和确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值来选择码本可以进一步包括:基于至少一个能量比指数选择用于所述码本的码字的数量。

分布的度量可以是以下中的一个:连续方位角值之间的平均绝对差;相对于子带中的平均方位角值的平均绝对差;用于帧的子带的至少一个方位角值的方差;以及用于帧的子带的至少一个方位角值的方差。

基于所确定的码本对离散余弦变换向量的第一数量的分量进行解码可以进一步包括:基于码本对第一数量的离散余弦变换向量分量的第一分量进行解码;基于码本对第一数量的离散余弦变换向量分量的进一步分量进行解码;以及对解码的第一分量和进一步分量进行逆余弦变换。

根据第五方面,提供了一种装置,其包括至少一个处理器和至少一个包括计算机程序代码的存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理器一起,致使该装置至少:接收用于音频信号的帧的子带的值,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本;对至少一个向量进行离散余弦变换,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码。

被致使基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个相干值进行编码的码本的装置可以进一步被致使:获得表示用于帧的每个子带的至少一个能量比值的加权平均的指数;确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值;以及基于指数和确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值,来选择码本。

被致使基于指数,和确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值来选择码本的装置可以进一步被致使:基于指数选择用于所述码本的码字的数量。

所述分布的度量可以是以下中的一个:连续方位角值之间的平均绝对差;相对于子带中的平均方位角值的平均绝对差;用于帧的子带的至少一个方位角值的标准偏差;以及用于帧的子带的至少一个方位角值的方差。

被致使基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码的装置可以进一步被致使:确定离散余弦变换向量的第一数量取决于子带;基于码本对第一数量的离散余弦变换向量分量的第一分量进行编码。

被致使基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码的装置可以进一步被致使:基于子带的指数确定用于标量量化的码本,每个码本包括确定数量的码字;基于所确定的码本,为第一数量的离散余弦变换向量分量的分量剩余部分生成至少一个进一步指数;基于用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,生成均值移除指数;以及对均值移除指数进行熵编码。

被致使基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码的装置可以进一步被致使:基于具有所定义数量的码字的码本,确定用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,该码本进一步基于向量的子带指数;基于用于第一数量的离散余弦变换向量分量的分量剩余部分的至少一个进一步指数,确定均值移除指数;以及对均值移除指数进行熵编码。

被致使对均值移除指数进行熵编码的装置可以进一步被致使对均值移除指数进行golomb-rice编码。

该装置可以进一步被致使:存储和/或发送离散余弦变换向量的编码的第一数量的分量。

该装置可以进一步被致使:对至少一个能量比值进行标量量化,以生成适合于确定码本的至少一个能量比值指数,该码本用于对用于每个子带的至少一个相干值进行编码。

该装置可以进一步被致使:基于目标位数、在编码前基于所确定的码本估计用于对离散余弦变换向量的第一数量的分量进行编码的位数、表示至少一个能量比值指数的位数、和表示均值移除指数的熵编码的位数,来估计用于对至少一个方位角值和至少一个仰角值进行编码的剩余位数;对至少一个方位角值和至少一个仰角值进行编码,以基于剩余位数生成至少一个方位角值指数和至少一个仰角值指数,其中基于至少一个方位角值指数确定用于对用于每个子带的至少一个相干值进行编码的码本。

根据第六方面,提供了一种装置,其包括至少一个处理器和至少一个包括计算机程序代码的存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理器一起,致使该装置至少:获得用于音频信号的帧的子带的编码值,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本;对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值。

被致使基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本的装置可以进一步被致使:确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值;以及基于至少一个能量比指数和确定用于帧的子带的至少一个方位角值的分布的度量是否大于或等于所确定的阈值,来选择码本。

被致使基于至少一个能量比指数,和确定用于帧的子带的至少一个方位角指数的分布的度量是否大于或等于所确定的阈值来选择码本的装置可以进一步被致使:基于至少一个能量比指数选择用于所述码本的码字的数量。

所述分布的度量可以是以下中的一个:连续方位角值之间的平均绝对差;相对于子带中的平均方位角值的平均绝对差;用于帧的子带的至少一个方位角值的方差;以及用于帧的子带的至少一个方位角值的方差。

被致使基于所确定的码本对离散余弦变换向量的第一数量的分量进行解码的装置可以进一步被致使:基于码本对第一数量的离散余弦变换向量分量的第一分量进行解码;基于码本对第一数量的离散余弦变换向量分量的进一步分量进行解码;以及对解码的第一分量和进一步分量进行逆余弦变换。

根据第七方面,提供了一种装置,其包括:用于接收用于音频信号的帧的子带的值的模块,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;用于基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本的模块;用于对至少一个向量进行离散余弦变换的模块,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及用于基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码的模块。

根据第八方面,提供了一种装置,其包括:用于获得用于音频信号的帧的子带的编码值的模块,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;用于基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本的模块;用于对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量的模块,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及用于解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值的模块。

根据第九方面,提供了一种包括指令的计算机程序[或包括程序指令的计算机可读介质],其用于致使装置至少执行以下操作:接收用于音频信号的帧的子带的值,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本;对至少一个向量进行离散余弦变换,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码。

根据第十方面,提供了一种包括指令的计算机程序[或包括程序指令的计算机可读介质],其用于致使装置至少执行以下操作:获得用于音频信号的帧的子带的编码值,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本;对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值。

根据第十一方面,提供了一种非暂时性计算机可读介质,其包括用于引起装置至少执行以下操作的程序指令:接收用于音频信号的帧的子带的值,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本;对至少一个向量进行离散余弦变换,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码。

根据第十二方面,提供了一种非暂时性计算机可读介质,其包括用于致使装置至少执行以下操作的程序指令:获得用于音频信号的帧的子带的编码值,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本;对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值。

根据第十三方面,提供了一种装置,其包括:接收电路系统,其被配置为接收用于音频信号的帧的子带的值,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;确定电路系统,其被配置为基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本;变换电路系统,其被配置为对至少一个向量进行离散余弦变换,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及编码电路系统,其被配置为基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码。

根据第十四方面,提供了一种装置,其包括:获得电路系统,其被配置为获得用于音频信号的帧的子带的编码值,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;确定电路系统,其被配置为基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本;变换电路系统,其被配置为对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及解析电路系统,其被配置为解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值。

根据第十五方面,提供了一种计算机可读介质,其包括用于致使装置至少执行以下操作的程序指令:接收用于音频信号的帧的子带的值,该值包括用于每个子带的至少一个方位角值、至少一个仰角值、至少一个能量比值和至少一个扩展和/或环绕相干值;基于用于帧的每个子带的至少一个能量比值和至少一个方位角值,确定用于对用于每个子带的至少一个扩展和/或环绕相干值进行编码的码本;对至少一个向量进行离散余弦变换,该至少一个向量包括用于所述帧的子带的至少一个扩展和/或环绕相干值;以及基于所确定的码本对离散余弦变换向量的第一数量的分量进行编码。

根据第十六方面,提供了一种计算机可读介质,其包括用于致使装置至少执行以下操作的程序指令:获得用于音频信号的帧的子带的编码值,该值包括用于每个子带的至少一个方位角指数、至少一个仰角指数、至少一个能量比指数和至少一个扩展和/或环绕相干指数;基于至少一个能量比指数和至少一个方位角指数,确定用于对用于每个子带的至少一个扩展和/或环绕相干指数进行解码的码本;对至少一个扩展和/或环绕相干指数进行逆离散余弦变换以生成至少一个向量,该至少一个向量包括用于帧的子带的至少一个扩展和/或环绕相干值;以及解析该向量以生成用于每个子带的至少一个扩展和/或环绕相干值。

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

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

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

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

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

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

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

附图说明

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

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

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

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

图4示意性地示出了根据一些实施例的如图2所示的相干编码器;

图5示出了根据一些实施例的如图4所示的相干编码器的操作的流程图;

图6示出了根据一些实施例的相干编码器对第一相干分量和进一步相干分量进行编码的操作的流程图;

图7示出了根据一些进一步实施例的相干编码器对第一相干分量和进一步相干分量进行编码的进一步操作的流程图;

图8示意性地示出了根据一些实施例的关于相干解码的元数据解码器;

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

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

具体实施方式

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

对于每个所考虑的时频块(时间/频率子带),元数据至少由方向(仰角、方位角)、所得方向的能量比,以及所得方向的扩展相干分量组成。此外,独立于方向,可以针对每个时频块确定并包括环绕相干性。所有该数据由编码器编码和发送(或存储),以便能够在解码器处重建空间信号。

编解码器的典型总体操作位率留有3.0kbps、4.0kbps、8kbps或10kbps用于发送/存储元数据。前面已研究了方向参数和能量比分量的编码,但对相干数据的编码还没有探讨,并且在较低的位率下,相干数据被去除并且不被发送或存储。

如下文中讨论的概念是将相干参数与用于每个时频块的方向参数和能量比参数一起进行编码。在下面的示例中,编码在离散余弦变换域中执行,并且取决于当前的子带指数,以及当前的能量比和方位角值。在下面的实施例中选择了dct变换,因为其是针对低复杂度实现方式而被优化的,然而可以代替地应用和使用其他时频域变换。

在一些实施例中,固定位率编码方法可以与可变位率编码组合,该可变位率编码在不同的段之间分配要压缩的数据的编码位,使得每帧的总体位率是固定的。在时频块内,位可以在频率子带之间转移。

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

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

多声道信号被传递给传送信号发生器103和分析处理器105。

在一些实施例中,传送信号发生器103被配置为接收多声道信号,并生成包括确定的声道数的合适传送信号,并输出传送信号104。例如,传送信号发生器103可以被配置为生成多声道信号的2音频声道混缩。确定的声道数可以是任何合适的声道数。传送信号发生器在一些实施例中被配置为以其他方式选择或组合,例如通过波束成形技术将输入的音频信号选择或组合到确定的声道数,并将这些信号作为传送信号输出。

在一些实施例中,传送信号发生器103是任选的,并且多声道信号以与该示例中传送信号相同的方式未经处理地传递给编码器107。

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

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

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

在解码器侧中,所接收或所检索的数据(流)可由解码器/解多路复用器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为频率仓(frequencybin)指数,并且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),例如,使用方向估计的稳定性度量,或使用任何相关性度量,或任何其他合适的方法来获得比率参数。能量比可以被传递给能量比编码器207。

空间分析器203此外可以被配置为确定多个相干参数112,其可以包括环绕相干(γ(k,n))和扩展相干(ζ(k,n)),两者都在时频域中分析。扩展相干参数的值可以为从0到1。扩展相干值为0表示为点声源,换句话说,当使用多扬声器系统重现音频信号时,应该用尽可能少的扬声器重现声音(例如当方向为中心时,仅用中心扬声器)。随着扩展相干值的增加,更多的能量被扩展到围绕中心扬声器的其他扬声器,直到值为0.5时,能量在中心扬声器和邻近的扬声器之间均匀扩展。当扩展相干的值增加到高于0.5时,中心扬声器中的能量减少,直到值为1时,中心扬声器中没有能量,并且所有的能量都在邻近的扬声器中。环绕相干参数的值为从0到1。值为1意味着所有(或几乎所有)扬声器声道之间都有相干。值为0意味着所有(或甚至几乎所有)扬声器声道之间没有相干。这在gb申请号1718341.9和pct申请pct/fi2018/050788中进一步解释。

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

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

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

尽管方向、能量比和相干参数在这里针对每个时间指数n表达,但在一些实施例中,参数可以在若干个时间指数上组合。同样的适用于频率轴线,正如已表达的那样,若干个频率仓b的方向可以通过由若干个频率仓b组成的频带k中的一个方向参数表达。同样的适用于本文中讨论的所有空间参数。

在一些实施例中,方向数据可以使用16位来表示,使得每个方位角参数大约在9位上表示,并且仰角在7位上表示。在此类实施例中,能量比参数可以在8位上表示。对于每个帧,可以有n=5个子带和m=4个时频(tf)块。因此在该示例中,需要有(16 8)×m×n位以存储用于每个帧的未压缩方向和能量比元数据。用于每个tf块的相干数据可以是0和1之间的浮点表示,并且可以最初在8位上表示。

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

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

此外,在一些实施例中,方向编码器205被配置为确定方位角参数值的方差,并将该方差传递给相干编码器209。

然后,编码的方向参数可以被传递给组合器211。

元数据编码器/量化器111可以包括能量比编码器207。能量比编码器207被配置为接收能量比并确定用于压缩用于子带和时频块的能量比的合适编码。例如在一些实施例中,能量比编码器207被配置为使用3位来对每个能量比参数值进行编码。

此外,在一些实施例中,不是发送或存储用于所有tf块的所有能量比值,而是仅发送或存储每个子带的一个加权平均值。该平均值可以通过考虑每个时间块的总能量来确定,因此有利于具有更多能量的子带的值。

在此类实施例中,量化的能量比值对于给定子带的所有tf块是相同的。

在一些实施例中,能量比编码器207进一步被配置为将量化的(编码的)能量比值传递给组合器211和相干编码器209。

元数据编码器/量化器111可以包括相干编码器209。相干编码器209被配置为接收相干值,并确定用于对用于子带和时频块的相干值进行压缩的合适编码。用于相干参数值的3位精度值已示出产生可接受的音频合成结果,但即使如此,这也需要为所有tf块(在示例中每帧8个子带和5个tf块)的相干数据提供总共3×20位。

如下文中所述,在一些实施例中,编码在dct域中实现,并且可以取决于当前的子带指数,以及当前的能量比和方位角值。

然后,编码的相干参数值可以传递给组合器211。

元数据编码器/量化器111可以包括组合器211。该组合器被配置为接收编码的(或量化/压缩的)方向参数、能量比参数和相干参数,并将这些组合以生成合适的输出(例如,元数据位流,其可与传送信号组合,或与传送信号分开发送或存储)。

关于图3,示出了根据一些实施例的如图2所示的元数据编码器/量化器的示例操作。

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

然后,方向值(仰角、方位角)可以被压缩或编码(例如通过应用球面量化,或任何合适的压缩),如图3中通过步骤303所示。

能量比值被压缩或编码(例如通过生成每子带的加权平均值,并然后将这些量化为3位值),如图3中通过步骤305所示。

相干值也被压缩或编码(例如通过在dct域中编码,如下文中所指示),如图3中通过步骤307所示。

然后将编码的方向值、能量比、相干值组合以生成编码的元数据,如图3中通过步骤305所示。

关于图4示出了如图2所示的示例相干编码器209。

在一些实施例中,相干编码器209包括相干向量发生器401。相干向量发生器401被配置为接收相干值112,其可以是0和1之间的8位浮点表示。

相干向量发生器401被配置为针对每个子带生成相干值的向量。因此,在其中有m个时频块的示例中,则相干向量发生器401被配置为生成m维的相干数据向量402。

相干数据向量402被输出到离散余弦变换器403。

在一些实施例中,相干编码器209包括离散余弦变换器。离散余弦变换器可以被配置为接收m维相干数据向量402并对该向量进行离散余弦变换(dct)。

可以实现用于执行dct的任何合适的方法。例如在一些实施例中,其中向量包括对应于子带的4维相干向量。于是向量x=(x1,x2,x3,x4)′与4阶dct矩阵的矩阵相乘等于:

其中

a=x1 x2

b=x2 x3

c=x1-x4

d=x2-x3

这将dct变换的操作次数从28次减少到14次。

然后,dct相干向量404可以被输出到向量编码器405。

在一些实施例中,相干编码器209包括向量编码器405。向量编码器405被配置为接收dct相干向量404并通过使用合适的码本对其进行编码。

在一些实施例中,向量编码器405包括码本确定器415。该码本确定器被配置为接收编码/量化的能量比412和量化的方位角414的方差(其可以从能量比编码器和方向编码器确定,如图2所示),并确定应用于dct相干向量值的合适码本。

在一些实施例中,第一dct参数的编码以不同于进一步dct参数的编码的方式实现。这是因为第一dct参数和进一步dct参数具有显著不同的分布。此外,第一dct参数的分布还取决于两个因素:用于当前子带的能量比值和当前子带内方位角的方差。

在一些实施例中(并且如先前所讨论的),3位用于对每个能量比值进行编码,并且每个子带仅生成和发送(和/或存储)一个加权平均值。这意味着量化的能量比值对于给定子带的所有tf块都是相同的。

此外,方位角的方差基于子带内的量化方位角的方差是非常小(在所确定的阈值下)还是大于阈值而影响第一dct参数的分布。

在一些实施例中,此外,子带的数量选择为i_n。例如在一些实施例中i_n=3。在此类实施例中,对直到所选择的子带限制的子带使用第一数量的次级dct参数进行编码,并且对剩余的子带使用第二数量的次级dct参数进行编码。在一些实施例中,第一数量是1并且第二数量是2。换句话说,在一些实施例中,向量编码器被配置为使得子带<=i_n对dct变换向量的前2个分量(一个初级和一个次级)进行编码,并且子带>i_n对dct变换向量的前3个分量(一个初级和两个次级)进行编码。这两个额外分量可以用2维向量量化器进行编码,或者它们可以作为额外维度添加到第二dct参数的n维向量量化器,并立即使用n 2维向量量化器用于对所有的次级参数进行编码。

相干参数的编码的概述在流程图,即图6中示出。

第一操作是获得相干参数值,如图6中通过步骤501所示。

在获得了用于帧的相干参数值后,下一个操作是生成用于每个子带的m维相干向量,如图6中通过步骤503所示。

然后对m维相干向量进行变换,例如使用离散余弦变换(dct),如图6中通过步骤505所示。

然后,将dct表示排序为低于所确定的子带选择值的子带和高于该值的子带,如图6中通过步骤507所示。换句话说,确定正在处理的当前子带是小于或等于i_n还是大于i-n。

然后,通过对dct变换向量的前2个分量进行编码,对针对小于或等于i_n的子带的m维相干向量的dct表示进行编码,如图6中通过步骤509所示。

然后,通过对dct变换向量的前3个分量进行编码,对针对大于i_n的子带的m维相干向量的dct表示进行编码,如图6中通过步骤511所示。

例如,这可以概括为以下伪码形式。

关于图5进一步详细示出了向量编码器405,根据一些实施例向量编码器405被示出接收dct相干向量404作为输入。

在一些实施例中,向量编码器包括dct0阶扩展相干位编码估计器(或第一/初级dct相干参数估计器)451。

dct0阶扩展相干位编码估计器(或第一/初级dct相干参数估计器)451被配置为接收dct相干向量404,并由此确定是否所有的相干值都为非空的。当至少一个相干值为非空时,dct0阶扩展相干位编码估计器被配置为估计用于扩展相干的0阶dct参数的编码的位数,用于联合编码:「log2πilen_cb_dcto[indexeri]],其中indexeri是子带i的量化能量比的指数,并且len-cb_dct0[]={7,6,5,4,4,4,3,2}。

该估计被传递给码本确定器415。

向量编码器此外在一些实施例中可以包括dct1阶(和2阶往后)扩展相干编码器(或进一步的/次级dct相干参数编码器)455。dct1阶(和2阶往后)扩展相干编码器455被配置为接收dct相干向量404,并由此对用于扩展相干的1阶(以及对于对进一步的次级参数进行编码的子带,2阶往后)的dct参数进行编码,使用golombrice编码用于量化指数的均值移除指数。在一些实施例中,指数从取决于子带的指数的码本中的标量量化获得。码字的数量对于所有子带是相同的,例如5个码字。

输出的编码dct1阶(和2阶往后)所、编码的扩展相干参数可以被准备作为编码的相干向量404的一部分输出。

在一些实施例中,向量编码器此外可以包括环绕相干编码器457。环绕相干编码器457被配置为接收环绕相干参数,并由此对环绕相干参数进行编码并计算用于环绕相干的位数。在一些实施例中,环绕相干编码器457被配置每子带发送一个环绕相干值。以如关于能量比的编码来描述的方式,在一些实施例中,该值可以作为子带的时频块的加权平均值获得,权重由信号能量确定。

在一些实施例中,平均环绕相干值是用码本标量量化的,该码本的长度(码字数量)取决于能量比指数(对于指数:0,1,2,3,4,5,6,7,码字2,3,4,5,6,7,8,8)。在一些实施例中,使用针对均值移除值的golombrice编码器,或者通过考虑到所使用的码字数量的联合编码,来对指数进行编码(换句话说,基于哪一个将值编码为较少的位,选择诸如gr编码的熵编码,或联合编码)。

在一些实施例中,确定估计的(用于对初级扩展相干进行编码)和使用的(用于对二次扩展和环绕相干参数进行编码)的总位数,并由此确定可用于对方向参数进行编码的剩余位数。这例如可以在数学上确定为

ed=b-(epsc ssc sc ep)

其中ed是可用的剩余位数,b是原始位目标,epsc是用于对初级扩展相干参数进行编码的估计位数,ssc是用于对次级扩展相干参数进行编码的位数,sc是用于对环绕相干参数进行编码的位数,并且ep是用于对能量比进行编码的位数。

可将可用的剩余位数传递给方向编码器,并确定用于根据任何合适的编码方法(例如如上所述)对方向参数进行编码将使用的位数。

此外,在一些实施例中,向量编码器此外可以包括如前所讨论的码本确定器415。在一些实施例中,码本确定器415被配置为接收用于对dct0阶扩展相干参数进行编码的位数的估计,并且此外接收编码/量化的能量比412和方位角414的编码方差。码本确定器415可以从这些输入确定用于对dct0阶扩展相干参数进行编码的合适码本。在一些实施例中,该确定基于能量比和量化方位角值(用于当前子带的量化方位角值的方差)。如果用于子带的方位角的方差低于所确定的阈值(例如阈值为30),则使用第一所确定码本,否则使用另一个所确定码本。在一些实施例中,对于0阶dct系数,总共有16个码本(基于有用于能量比的8个指数和与给定阈值有关的对于方位角方差的2种可能性)。

所选择的码本被传递给dct0阶扩展相干编码器453。

此外,在一些实施例中,向量编码器此外可以包括dct0阶扩展相干编码器453。在接收到所确定的码本和dct相干向量后,dct0阶扩展相干编码器453被配置为使用码本对dct0阶扩展相干进行编码,并将其作为编码的相干向量404输出。

关于图7,示出了根据一些实施例的用于对能量比参数和方向参数(如虚线左侧所示)和相干参数(虚线右侧)进行编码的方法的流程图。

在一些实施例中,使用每个值3位并通过使用优化标量量化(sq)方法对能量比进行编码,如图7中通过步骤601所示。

然后,如果至少一个相干值是非空的,则估计用于扩展相干的0阶dct参数的编码的位数,如图7中通过步骤603所示。否则,如果输出全部为零,则仅发送一个位来表明该值为零。

此外,该方法可以包括使用用于量化指数的均值移除指数的golombrice编码,对用于扩展相干的1阶dct参数进行编码,如图7中通过步骤605所示。如上面讨论的指数在一些实施例中可以从取决于子带的指数的码本中的标量量化获得。对于所有子带来说,码字的数量是相同的(例如5)。

另外在一些实施例中,该方法进一步包括对环绕相干进行编码并计算用于环绕相干的位数,如图7中通过步骤607所示。在一些实施例中,如上面所讨论的,每个子带发送一个环绕相干值。此外在一些实施例中,该值是以与步骤601中用于能量比的方法类似的方式获得,作为子带的时频块的加权平均值,权重是信号能量。然后将平均的环绕相干值用码本进行标量量化,该码本的长度(码字数量)取决于能量比指数(针对指数:0,1,2,3,4,5,6,7,码字2,3,4,5,6,7,8,8)。通过针对均值移除值进行编码的golombrice,或通过考虑到所使用的码字数量的联合编码,对指数进行编码。

在一些实施例中,该方法包括计算用于对方向参数进行编码的剩余位数,如图7中通过步骤609所示。

在确定了用于对方向参数进行编码的剩余位数之后,于是对方向参数进行编码,如图7中通过步骤611所示。

此外,该方法包括,使用取决于能量比和量化方位角值(用于当前子带的量化方位角值的方差)的码本,对用于扩展相干的0阶dct系数进行编码,如图7中通过步骤613所示。该确定可以基于为能量比值范围选择两个可能的码本中的一个或另一个,该选择基于用于子带的方位角的方差低于(或高于)阈值。以此方式,可以有用于0阶dct系数的总共16个码本(用于能量比的8个指数和与给定阈值的有关的用于方位角方差的两种可能性)。

该操作可以以下面的代码表示。

关于图8,示出了根据一些实施例的从对相干值进行提取和解码的视角来看作为解码器133的一部分的示例元数据提取器137。

在一些实施例中,编码的数据流被传递给解多路复用器。解多路复用器提取编码的方向指数、能量比指数和相干指数,并且在一些实施例中还可以提取其他元数据和传送音频信号(未示出)。

能量比指数可以由能量比解码器解码,通过执行由能量比编码器实现的能量比编码的逆转来生成针对帧的能量比。此外,能量比指数可以被传递给相干dct向量发生器(并且在一些实施例中传递给码本确定器815)。

方向指数可以由方向解码器解码,该方向解码器被配置为执行由方向编码器实现的方向值的编码的逆转。在一些实施例中,在对方向值进行解码后,确定方位角值的方差,并将其输出给相干dct向量发生器(并且在一些实施例中输出给码本确定器815)。

元数据提取器137在一些实施例中包括相干dct向量发生器801(并且在一些实施例中包括到码本确定器815)。相干dct向量发生器801被配置为接收编码的相干值800,并且此外接收编码的能量比812和(解码的)方位角值的方差814。基于这些值选择或确定码本(例如码本确定器815可以与来自相干编码器209的码本确定器415相同)。

在确定了码本之后,于是使用相干编码器中使用的编码方法的逆转对所接收的编码的相干指数进行解码,从而为扩展相干值和环绕相干值生成合适的dct相干向量802。然后将dct相干向量802传递给逆离散余弦变换器803。

元数据提取器137在一些实施例中包括逆离散余弦变换器803。逆离散余弦变换器803被配置为接收(解码的)dct相干向量802并生成相干向量804,该相干向量804被输出给向量解码器805。

元数据提取器137在一些实施例中包括向量解码器805。向量解码器805被配置为接收解码的相干向量804并从中提取用于子带的相干参数806。

关于图9示出了用于对扩展相干参数进行解码的方法的流程图。

第一操作是获得(例如接收或检索)编码的扩展相干值,如图9中通过步骤901所示。

在获得了编码的扩展相干值后,于是下一个操作是针对(每个)子带:读取第一dct扩展相干参数指数(初级dct参数),如图9中通过步骤903所示。

尽管在图9中没有与获得编码的扩展相干值一起示出,但编码的环绕相干值、编码的能量比和编码的方位角和仰角值被获得。

通过应用在编码器中执行的编码过程的逆转,对编码的能量比和编码的方位角和仰角值进行解码。首先对能量比进行解码。基于能量比值知道用于扩展相干dct指数的位数。被发送用于对扩展相干的零阶dct参数进行编码的指数首先被读取,并且仅在对方位角值进行解码之后才能被解码。

此外,编码的环绕相干值基于应用编码器中编码过程的逆转进行解码。例如,这涉及基于能量比值选择合适的码本。

下一个操作是基于量化的能量比和解码的方位角量化方差来确定用于第一dct扩展相干参数的码本。确定了码本后,对第一dct扩展相干参数指数进行解码,如图9中通过步骤905所示。

下一个操作是确定正在解码的当前子带是否小于或等于编码器中使用的子带值(i_n),如图9中通过步骤907所示。

在正在解码的当前子带小于或等于编码器中使用的子带值(i_n)的情况下,于是读取下一个(第一次级)dct扩展相干参数,并使用编码器中实现的编码的逆转对其进行解码,如图9中通过步骤909所示。

在正在解码的当前子带大于编码器中使用的子带值(i_n)的情况下,于是读取下两个(第一次级和第二次级)dct扩展相干参数,并使用编码器中实现的编码的逆转对其进行解码,如图9中通过步骤911所示。

在对两个(或三个)dct参数进行解码后,下一个操作是对参数执行逆dct以生成解码的向量,如图9中通过步骤913所示。

然后,可以将解码的向量读取作为用于该子带的时频块扩展相干值。下一个操作是检查是否所有的子带都已被解码,如图9中通过步骤915所示。

当有另一个子带要解码时,操作可以循环回到步骤903。

当所有的子带都被解码时,那么下一帧解码可以开始,如图9中通过步骤917所示(换句话说操作循环回到步骤901)。

关于图10,示出了可用作分析或合成装置的示例电子设备。该设备可以是任何合适的电子设备或装置。例如在一些实施例中,设备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公司和加利福尼亚州圣何塞的cadence设计公司提供的那些程序,使用既定的设计规则以及预先存储的设计模块库,自动地在半导体芯片上路由导体和定位部件。一旦完成了用于半导体电路的设计,则呈标准化的电子格式(例如,opus、gdsii等)的所得设计可以被传输到半导体制造设施或“制造厂”用于制造。

上述描述已通过示例性和非限制性的示例提供了本发明的示例性实施例的完整和信息性描述。然而,鉴于上述描述,当结合附图和所附权利要求阅读时,各种修改和适配对于相关领域技术人员来说可能变得明显。然而,对本发明的教导的所有此类和类似的修改仍将落在如所附权利要求中定义的本发明的范围内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜