一种声道间相位差参数的编码方法及装置与流程

文档序号:16636468发布日期:2019-01-16 07:04阅读:254来源:国知局
一种声道间相位差参数的编码方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种声道间相位差参数的编码方法及装置。



背景技术:

随着生活质量的提高,人们对高质量的音频的需求不断增大。相对于单声道音频,立体声音频具有各声源的方位感和分布感,能够提高音频信息的清晰度和可懂度,增强音频播放的临场感,因而备受人们的青睐。

参数立体声(parametricstereo,ps)编码技术是一种常用的立体声编码技术。ps编码技术时根据空间感知特性对立体声信号(即多声道信号)进行编解码处理,具体是将多声道信号的编解码转换为单声道音频信号的编解码和空间感知参数的编解码。ps编码中的空间感知参数包括声道间相关性(inter-channelcoherence,ic)、声道间电平差(inter-channelleveldifference,ild)、声道间时间差(inter-channeltimedifference,itd)和声道间相位差(inter-channelphasedifference,ipd)等等,其中,itd参数和ipd参数为表示声源水平方位的空间感知参数。ild参数、itd参数和ipd参数决定人耳对声源位置的感知,可以有效确定声场位置,对立体声信号的恢复具有重大作用,因此,ipd参数等参数的确定对立体声信号的恢复具有重要作用。

现有技术一中,计算立体声信号的每一帧的ipd参数时,具体是将时域信号变换为频域信号,将频域信号划分为多个子带,再逐个子带计算子带ipd参数,然后将各个子带的ipd参数进行量化以用于立体声信号的编码。可见,现有技术一的ipd参数计算,需要逐个子带进行计算,占用资源多,编码效率低。

现有技术二中,计算立体声信号的每一帧的ipd参数时,具体是将时频信号变换为频域信号,再基于频域信号计算一帧立体声信号的ipd参数,该一帧立体声信号的ipd参数称为全局声道间相位差(即groupipd)参数,然后对groupipd参数进行量化以用于立体声信号的编码。可见,现有技术二只计算了一个ipd参数(即groupipd参数)进而仅能对一个ipd参数进行量化,虽然占用资源少,但是编码的相位信息精度低,编码质量差。



技术实现要素:

本申请提供一种声道间相位差参数的编码方法及装置,可提高ipd参数编码方式的选择多样性,更好地保持相位信息,提升音频的编码质量。

本发明的第一方面提供了一种声道间相位差参数的编码方法,包括:

获取用于确定多声道信号的当前帧的声道间相位差ipd参数编码方式的参考参数;

根据所述参考参数确定当前帧的ipd参数编码方式,所述确定的当前帧的ipd参数编码方式为预设的至少两种ipd参数编码方式中的一种;

根据所述确定的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理。

可见,在对ipd参数进行编码时,会获取参考参数,并根据参考参数确定与当前帧对应的当前帧的ipd参数编码方式,并使用确定的ipd参数编码方式对当前帧的ipd参数进行处理,从而不仅能够自适应地对当前帧的ipd参数进行处理,还能使得对当前帧的ipd参数的处理能够与当前帧相匹配,能够提升多声道信号的编码质量。

结合第一方面,在第一方面的第一种实施方式中,所述参考参数包括所述当前帧的信号特性参数和当前帧的前a帧的信号特性参数中的至少一种,其中,所述a为不小于1的整数;

其中,所述当前帧的信号特性参数包括表示所述当前帧的左右声道相关性的参数、所述当前帧的子带ipd参数的方差、所述当前帧的信号类型以及所述当前帧的声道间时间差itd参数中的至少一种;

所述当前帧的前a帧的信号特性参数包括所述前a帧中每一帧的表示左右声道相关性的参数、所述前a帧中每一帧的子带ipd参数的方差、所述前a帧中每一帧的itd参数、所述前a帧中每一帧的ipd参数编码方式以及所述前a帧中每一帧的信号类型中的至少一种;

其中,所述信号类型包括语音类型或者音乐类型。

其中,a的取值可以是1,2,3,4,或5等等。

可见,在某些情况下在对当前帧的ipd参数编码方式进行确定时,不仅会利用当前帧的信号特征参数还会利用当前帧的前a帧的信号特征参数,从而使得确定的当前帧的ipd参数编码方式不仅与当前帧相匹配,还能够与当前帧的前a帧相匹配,从而保证了编码方式的连续性,进一步提高编码质量。

结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述参考参数包括表示所述当前帧的左右声道相关性的参数;

若表示所述当前帧的左右声道相关性的参数的值大于或等于第一阈值,所述当前帧的ipd参数编码方式为所述至少两种ipd参数编码方式中的第一编码方式。

结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述第一阈值为0.75。

结合第一方面的第一种实施方式至第三种实施方式中的任意一种,在第一方面的第四种实施方式中,所述参考参数包括所述前a帧的每一帧的ipd参数编码方式和所述前a帧的每一帧的信号类型;

若所述前a帧的每一帧的ipd参数编码方式均为所述至少两种ipd参数编码方式中的第一编码方式,并且所述前a帧的每一帧的信号类型均为音乐类型,所述当前帧的ipd参数编码方式为所述第一编码方式。其中,a的取值可以为1。

结合第一方面的第一种实施方式,在第一方面的第五种实施方式中,所述参考参数包括所述当前帧的itd参数、所述当前帧的子带ipd参数的方差,以及所述前a帧的每一帧的信号类型;

若所述当前帧的itd参数的值大于第三阈值、所述当前帧的子带ipd参数的方差小于第四阈值,并且所述当前帧的前a帧的每一帧的信号类型均为语音类型,所述当前帧的ipd参数编码方式为至少两种ipd参数编码方式中的第一编码方式。

结合第一方面的第二种实施方式至第五种实施方式中的任意一个,在第一方面的第六种实施方式中,所述第一编码方式包括如下方式中的任一:

全局声道间相位差groupipd参数编码方式;或者,

不编码ipd参数;或者,

将ipd参数的值设置为0。

其中,在某些情况下当前帧的ipd参数是不是传输到解码端并不会对解码效果有什么提升,因此第一编码方式可以为不编码ipd参数或将ipd参数的值设置为0或groupid参数编码方式,其中在第一编码方式为不编码ipd参数时,可以编码比特全部用于编码对解码效果提升更有效的参数;在第一编码方式为将ipd参数的值设置为0或groupid参数编码方式时,由于为值0的ipd参数groupid参数占用的比特很少,因此也可以将编码比特尽可能多地用于编码对解码效果提升更有效的参数;从而提高编码效果。

结合第一方面的第六种实施方式,在第一方面的第七种实施方式中,当所述第一编码方式为groupipd参数编码方式时,所述根据所述确定的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理包括:

提取所述当前帧的左右声道频域信号的子带的ipd参数;

根据所述提取的子带的ipd参数确定所述当前帧的groupipd参数;

对所述当前帧的groupipd参数进行编码。

结合第一方面的第二种实施方式至第七种实施方式中的任意一个,在第一方面的第八种实施方式中,若所述当前帧的ipd参数编码方式不为第一编码方式,

则所述当前帧的ipd参数编码方式为第二编码方式;

其中,所述第二编码方式包括:子带集合ipd参数编码方式或者子带ipd参数编码方式,其中,所述子带ipd参数编码方式是编码所述当前帧的部分或全部子带的子带ipd参数。

结合第一方面的第八种实施方式,在第一方面的第九种实施方式中,所述第二编码方式为子带ipd参数编码方式;

所述根据所述确定的当前帧的ipd参数编码方式编码对所述当前帧的ipd参数进行处理包括:

计算所述当前帧的左右声道频域信号的各个子带或部分子带的ipd参数;

对所述计算获得的各个子带或部分子带的ipd参数进行编码。

其中,在第二编码方式为对当前帧的左右声道频域信号的部分子带的ipd参数进行编码时,可以是仅编码当前帧的左右声道频域信号的频率较低的一些子带的子带ipd参数,在一种实施方式中,可以编码除频率最高的子带和频率次高的子带外的其余子带的ipd参数,由于除频率最高的子带和频率次高的子带的子带ipd参数对编码效果的提升效果不明显,因此不编码这两个子带的子带ipd参数可以确保编码比特用在对编码效果的提升效果更好的参数上,进一步提高编码质量。

结合第一方面或者第一方面的第一种实施方式至第九种实施方式中的任意一个,在第一方面的第十种实施方式中,所述方法还包括:

对所述确定的当前帧的ipd参数编码方式进行编码。

例如,可以设置编码方式标志位,该标志位占用一个比特,从而能够指示当前帧的ipd参数编码方式是第一编码方式还是第二编码方式,使得解码端能够根据该编码方式标志位确定当前帧的ipd参数编码方式,从而采用对应的解码方式进行解码。

结合第一方面或者第一方面的第一种实施方式至第十种实施方式中的任意一个,在第一方面的第十一种实施方式中,所述根据所述确定的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理前还包括:

确定是否需要对所述确定的当前帧的ipd参数编码方式进行调整;

在确定需要对所述确定的当前帧的ipd参数编码方式进行调整时,对所述确定的当前帧的ipd参数编码方式进行调整;

所述根据所述确定的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理包括:

根据所述调整后的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理。

结合第一方面的第十一种实施方式,在第一方面的第十二种实施方式中,所述确定是否需要对所述确定的当前帧的ipd参数编码方式进行调整是基于所述当前帧的前a帧的ipd参数编码方式进行的。

由于根据了当前帧的前a帧的ipd参数编码方式确定是否对当前帧的ipd参数编码方式进行调整,从而使得当前帧的ipd参数编码方式能够与当前帧的前a帧的ipd参数编码方式能够保持平滑,避免了编码效果发生突变。

结合第一方面的第一种实施方式至第十二种实施方式中的任意一个,在第一方面的第十三种实施方式中,所述表示所述当前帧的左右声道相关性的参数通过如下计算式获得:

其中,

其中,el(b)为左声道能量和,er(b)是右声道能量和,lr(k)为左声道频域信号的第k个频点值的实部,rr(k)为右声道频域信号的第k个频点值的实部,li(k)为左声道频域信号的第k个频点值的虚部,ri(k)为右声道频域信号的第k个频点值的虚部;l为子带频谱系数的数量;n为子带数量;n为时域信号索引值,k为频域信号索引值;length为帧长;xl(n)为左声道时域信号,xr(n)为右声道时域信号,l(k)为用于计算ipd参数的左声道频域信号的第k个频点值,r(k)为用于计算ipd参数的右声道频域信号的第k个频点值;其中,xl(n)和xr(n)为实数序列。

结合第一方面的第一种实施方式至第十二种实施方式中的任意一个,在第一方面的第十四种实施方式中,所述表示所述当前帧的左右声道相关性的参数通过如下计算式获得:

其中,

l为子带频谱系数的数量;n为时域信号索引值,k为频域信号索引值;length为帧长;xl(n)为左声道时域信号,xr(n)为右声道时域信号,其中,xl(n)和xr(n)为实数序列。

结合第一方面的第一种实施方式至第十二种实施方式中的任意一个,在第一方面的第十五种实施方式中,所述表示所述当前帧的左右声道相关性的参数通过如下计算式获得:

其中,

l为子带频谱系数的数量;n为时域信号索引值,k为频域信号索引值;length为帧长;xl(n)为左声道时域信号,xr(n)为右声道时域信号,其中,xl(n)和xr(n)为实数序列;r*(k)表示r(k)的共轭,即r*(k)为右声道频域信号的第k个频点值的共轭。

本发明的第二方面提供了一种声道间相位差参数的编码装置,包括:

获取单元,用于获取参考参数,所述参考参数用于确定多声道信号的当前帧的声道间相位差ipd参数编码方式;

确定单元,用于根据所述参考参数确定当前帧的ipd参数编码方式,所述确定的当前帧的ipd参数编码方式为预设的至少两种ipd参数编码方式中的一种;

处理单元,用于根据所述确定的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理。

可见,在对ipd参数进行编码时,会获取参考参数,并根据参考参数确定与当前帧对应的当前帧的ipd参数编码方式,并使用确定的ipd参数编码方式对当前帧的ipd参数进行处理,从而不仅能够自适应地对当前帧的ipd参数进行处理,还能使得对当前帧的ipd参数的处理能够与当前帧相匹配,能够提升多声道信号的编码质量。

结合第二方面,在第二方面的第一种实施方式中,所述参考参数包括所述当前帧的信号特性参数和当前帧的前a帧的信号特性参数中的至少一种,其中,所述a为不小于1的整数;

其中,所述当前帧的信号特性参数包括表示所述当前帧的左右声道相关性的参数、所述当前帧的子带ipd参数的方差、所述当前帧的信号类型以及所述当前帧的声道间时间差itd参数中的至少一种;

所述当前帧的前a帧的信号特性参数包括所述前a帧中每一帧的表示左右声道相关性的参数、所述前a帧中每一帧的子带ipd参数的方差、所述前a帧中每一帧的itd参数、所述前a帧中每一帧的ipd参数编码方式以及所述前a帧中每一帧的信号类型中的至少一种;

其中,所述信号类型包括语音类型或者音乐类型。

可见,在某些情况下在对当前帧的ipd参数编码方式进行确定时,不仅会利用当前帧的信号特征参数还会利用当前帧的前a帧的信号特征参数,从而使得确定的当前帧的ipd参数编码方式不仅与当前帧相匹配,还能够与当前帧的前a帧相匹配,从而保证了编码方式的连续性,进一步提高编码质量。

结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述参考参数包括表示所述当前帧的左右声道相关性的参数;

若表示所述当前帧的左右声道相关性的参数的值大于或等于第一阈值,所述当前帧的ipd参数编码方式为所述至少两种ipd参数编码方式中的第一编码方式。

结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述第一阈值为0.75。

结合第二方面的第一种实施方式,在第二方面的第四种实施方式中,所述参考参数包括所述前a帧的每一帧的ipd参数编码方式和所述前a帧的每一帧的信号类型;

若所述前a帧的每一帧的ipd参数编码方式均为所述至少两种ipd参数编码方式中的第一编码方式,并且所述前a帧的每一帧的信号类型均为音乐类型,所述当前帧的ipd参数编码方式为所述第一编码方式。其中,a的值可以为1。

结合第二方面的第二种实施方式至第四种实施方式中的任意一种,在第二方面的第五种实施方式中,所述参考参数包括所述当前帧的itd参数、所述当前帧的子带ipd参数的方差,以及所述前a帧的每一帧的信号类型;

若所述当前帧的itd参数的值大于第三阈值、所述当前帧的子带ipd参数的方差小于第四阈值,并且所述当前帧的前a帧的每一帧的信号类型均为语音类型,所述当前帧的ipd参数编码方式为至少两种ipd参数编码方式中的第一编码方式。

结合第二方面的第二种实施方式至第五种实施方式中的任意一种,在第二方面的第六种实施方式中,所述第一编码方式包括如下方式中的任一:

全局声道间相位差groupipd参数编码方式;或者,

不编码ipd参数;或者,

将ipd参数的值设置为0。

其中,在某些情况下当前帧的ipd参数是不是传输到解码端并不会对解码效果有什么提升,因此第一编码方式可以为不编码ipd参数或将ipd参数的值设置为0或groupid参数编码方式,其中在第一编码方式为不编码ipd参数时,可以编码比特全部用于编码对解码效果提升更有效的参数;在第一编码方式为将ipd参数的值设置为0或groupid参数编码方式时,由于为值0的ipd参数groupid参数占用的比特很少,因此也可以将编码比特尽可能多地用于编码对解码效果提升更有效的参数;从而提高编码效果。

结合第二方面的第二种实施方式至第五种实施方式中的任意一种,在第二方面的第七种实施方式中,若所述当前帧的ipd参数编码方式不为第一编码方式,

则所述当前帧的ipd参数编码方式为第二编码方式;

其中,所述第二编码方式包括:子带集合ipd参数编码方式或者子带ipd参数编码方式,其中,所述子带ipd参数编码方式是编码所述当前帧的部分或全部子带的子带ipd参数。

结合第二方面的第七种实施方式,在第二方面的第八种实施方式中,所述第二编码方式为子带ipd参数编码方式;

所述根据所述确定的当前帧的ipd参数编码方式编码对所述当前帧的ipd参数进行处理包括:

计算所述当前帧的左右声道频域信号的各个子带或部分子带的ipd参数;

对所述计算获得的各个子带或部分子带的ipd参数进行编码。

其中,在第二编码方式为对当前帧的左右声道频域信号的部分子带的ipd参数进行编码时,可以是仅编码当前帧的左右声道频域信号的频率较低的一些子带的子带ipd参数,在一种实施方式中,可以编码除频率最高的子带和频率次高的子带外的其余子带的ipd参数,由于除频率最高的子带和频率次高的子带的子带ipd参数对编码效果的提升效果不明显,因此不编码这两个子带的子带ipd参数可以确保编码比特用在对编码效果的提升效果更好的参数上,进一步提高编码质量。

结合第二方面或者第二方面的第一种实施方式至第八种实施方式中的任意一种,在第二方面的第九种实施方式中,所述装置还包括:

编码单元,用于对所述确定的当前帧的ipd参数编码方式进行编码。

例如,可以设置编码方式标志位,该标志位占用一个比特,从而能够指示当前帧的ipd参数编码方式是第一编码方式还是第二编码方式,使得解码端能够根据该编码方式标志位确定当前帧的ipd参数编码方式,从而采用对应的解码方式进行解码。

结合第二方面或者第二方面的第一种实施方式至第九种实施方式中的任意一种,在第二方面的第十种实施方式中,所述确定单元,还用于确定是否需要对所述确定单元确定的当前帧的ipd参数编码方式进行调整;

所述装置还包括:

调整单元,用于在所述确定单元确定需要对所述确定的当前帧的ipd参数编码方式进行调整时,对所述确定的当前帧的ipd参数编码方式进行调整;

所述处理单元,还用于根据所述调整后的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理。

结合第二方面的第十种实施方式,在第二方面的第十一种实施方式中,所述确定是否需要对所述确定的当前帧的ipd参数编码方式进行调整是基于所述当前帧的前a帧的ipd参数编码方式进行的。

由于根据了当前帧的前a帧的ipd参数编码方式确定是否对当前帧的ipd参数编码方式进行调整,从而使得当前帧的ipd参数编码方式能够与当前帧的前a帧的ipd参数编码方式能够保持平滑,避免了编码效果发生突变。

结合第二方面或者第二方面的第一种实施方式至第十一种实施方式中的任意一种,在第二方面的第十二种实施方式中,所述获取单元,具体用于通过如下计算式获得所述表示所述当前帧的左右声道相关性的参数:

其中,

其中,el(b)为左声道能量和,er(b)是右声道能量和,lr(k)为左声道频域信号的第k个频点值的实部,rr(k)为右声道频域信号的第k个频点值的实部,li(k)为左声道频域信号的第k个频点值的虚部,ri(k)为右声道频域信号的第k个频点值的虚部;l为子带频谱系数的数量;n为子带数量;n为时域信号索引值,k为频域信号索引值;length为帧长;xl(n)为左声道时域信号,xr(n)为右声道时域信号,l(k)为用于计算ipd参数的左声道频域信号的第k个频点值,r(k)为用于计算ipd参数的右声道频域信号的第k个频点值;其中,xl(n)和xr(n)为实数序列。

结合第一方面的第一种实施方式至第十一种实施方式中的任意一个,在第一方面的第十三种实施方式中,所述表示所述当前帧的左右声道相关性的参数通过如下计算式获得:

其中,

l为子带频谱系数的数量;n为时域信号索引值,k为频域信号索引值;length为帧长;xl(n)为左声道时域信号,xr(n)为右声道时域信号,其中,xl(n)和xr(n)为实数序列。

结合第一方面的第一种实施方式至第十一种实施方式中的任意一个,在第一方面的第十四种实施方式中,所述表示所述当前帧的左右声道相关性的参数通过如下计算式获得:

其中,

l为子带频谱系数的数量;n为时域信号索引值,k为频域信号索引值;length为帧长;xl(n)为左声道时域信号,xr(n)为右声道时域信号,其中,xl(n)和xr(n)为实数序列;r*(k)表示r(k)的共轭,即r*(k)为右声道频域信号的第k个频点值的共轭。

本发明的第三方面提供了一种终端,包括:存储器和处理器;

所述存储器用于存储一组可执行代码;

所述处理器用于执行所述存储器中存储的可执行代码以执行第一方面,或者第一方面的第一种实施方式至第十三种实施方式中的任意一种。

本发明的第四方面提供了一种存储介质,所述存储介质存储有可执行代码,所述可执行代码被执行时可执行第一方面,或者第一方面的第一种实施方式至第十三种实施方式中的任意一种。

本发明的第五方面提供了一种计算机程序,所述计算机程序可执行第一方面,或者第一方面的第一种实施方式至第十三种实施方式中的任意一种。

本发明实施例在对ipd参数进行编码时,会获取参考参数,并根据参考参数确定与当前帧对应的当前帧的ipd参数编码方式,并使用确定的ipd参数编码方式对当前帧的ipd参数进行处理,从而不仅能够自适应地对当前帧的ipd参数进行处理,还能使得对当前帧的ipd参数的处理能够与当前帧相匹配,能够提升多声道信号的编码质量。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是ps编码的原理示意图;

图2是ps解码的原理示意图;

图3是本发明实施例提供的本发明方案的一个应用场景示意图;

图4是本发明实施例提供的本发明方案的另一个应用场景示意图;

图5是本发明实施例提供的ipd参数的编码方法的一流程示意图;

图6是本发明实施例提供的ipd参数的编码方法的另一流程示意图;

图7是本发明实施例提供的ipd参数的编码方法的另一流程示意图;

图8是本发明实施例提供的ipd参数编码装置的结构示意图;

图9是本发明另一实施例提供的ipd参数编码装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1是ps编码的原理示意图。

在ps编码中,编码端将多声道(例如x1声道和x2声道)输入的立体声信号的编码下混(downmix)为单声道音频信号,并通过空间感知参数分析来提取立体声信号的空间感知参数,进而通过单声道音频信号编码得到单声道音频比特流,通过空间感知参数编码得到空间感知参数比特流。进一步的,编码端通过单声道音频比特流和空间感知参数比特流的比特流复用得到立体声信号编码的比特流。

参见图2,图2是ps解码的原理示意图。

解码端将立体声信号编码的比特流进行比特流解复用得到单声道音频比特流和空间感知参数比特流,再对单声道音频比特流进行单声道音频信号解码,对空间感知参数比特流进行空间感知参数解码。进一步的,解码端将单声道音频信号解码后借助空间感知参数来合成重建立体声信号。

具体实现中,上述ps编码和ps解码中的空间感知参数包括ic、ild、itd和ipd等参数。其中,ic描述了声道间的互相关或相干性,该参数决定了声场范围的感知,可以提高音频信号空间感和声响稳定性。ild参数用于分辨立体声源的水平方向角度,描述了声道间的强度差别,该参数将影响整个频谱的频率成分。itd参数和ipd参数为表示声源水平方位的空间感知参数。ild参数、itd参数和ipd参数决定人耳对声源位置的感知,可以有效确定声场位置,对立体声信号的恢复具有重大作用。因此,ipd参数等参数的确定对立体声信号的恢复具有重要作用。

本发明方案的一种应用场景如图3所示,其中,终端301用于对采集到的多声道信号进行编码(包括对ipd参数的编码)后,将编码获得的码流发送至无线接入网(ran:radioaccessnetwork)302,例如可以是直接发送给ran302中的基站3021;码流经过基站3021后传输至分组网络网关(pgw:packetdatanetworkgateway)3022;码流经过pgw3022后传入核心网303,具体可以经过核心网303中的会话边界控制器(sbc:sessionbordercontroller)3031;经过核心网303的码流进入ran304,ran304包括了pgw3042和基站3041,在码流经过pgw3042到达基站3041后,基站3041将码流发送给终端305,由终端305对码流进行解码并对解码得到的多声道信号进行播放。

需要说明的是,上述描述中ran只示例性地描述了两个网元(基站和pgw),实际中ran中还包括了很多其他的网元,本发明实施例为了描述方便对其他的网元进行了省略;同理,核心网也只是示例性地描述了sbc,本发明实施例为了描述方便对其他的网元进行了省略。可以理解的是,上述网络中的网元仅仅是示例性的举例,并且其名称在不同的网络中可能还不一样,例如pgw在lte网络中被称为演进的分组数据网关(epdg:evolvedpacketdatagateway)。同理,随着网络的演进,上述网元之间的连接方式也可能会改变。因此本发明实施例并不限定本发明的应用场景仅仅限于上述举例。

其中,终端301和终端305是具有蜂窝网络接入能力的终端,可以是可穿戴设备,虚拟现实(vr:virtualreality)设备,增强现实(ar:augmentedreality)设备,手机,平板电脑(pad),笔记本电脑(nb:notebookcomputer),或个人电脑(pc:personalcomputer)等等。

本发明方案的另一种应用场景如图4所示,终端401用于对采集到的多声道信号进行编码(包括对ipd参数的编码)后,将编码获得的码流通过因特网402发送给终端403,由终端403对码流进行解码并对解码得到的多声道信号进行播放。

其中,终端401和终端403是具有因特网接入能力的终端,可以是可穿戴设备,vr设备,ar设备,手机,pad,nb,或pc等等。

参见图5,是本发明实施例提供的ipd参数的编码方法的一流程示意图,包括步骤:

s501、获取用于确定多声道信号的当前帧的ipd参数编码方式的参考参数。

具体实现中,本发明实施例提供的ipd参数的编码方法的执行主体可为能够对多声道信号进行编码的编码端。编码端根据本发明实施例提供的ipd参数的编码方法当前帧的ipd参数进行编码之后,会将编码的ipd参数进行传输。解码端将解码得到的ipd参数用于立体声合成处理。下面将对本发明实施例提供的ipd参数的编码方法进行具体描述。需要说明的是,本发明实施例中的编码端和解码端仅仅是从功能上进行描述的,实际形态上可以是如上所述的终端,可以理解的是,在通话过程中,终端是可以兼具编码端和解码端的功能的。其中,为了描述方便,后续在描述多声道信号的当前帧时直接用当前帧。其中,本发明实施例中的多声道信号具体可以是双声道信号,或者三声道信号,或者四声道信号等等,本发明实施例不对多声道信号具体有几个声道进行限定。

在一些可行的实施方式中,编码端在对当前帧的ipd参数进行编码时,可首先获取用于确定当前帧的ipd参数编码方式的参考参数,然后根据该参考参数确定当前帧的ipd参数编码方式。即,上述参考参数用于确定当前帧的ipd参数编码方式,可以理解的是,该参考参数也可以用于确定当前帧的其他参数的编码方式,本发明实施例并不限定该参考参数仅能用于ipd参数编码方式的确定。具体实现中,上述参考参数可以包括当前帧的信号特性参数和上述当前帧的前a帧的信号特性参数中的至少一种。即,上述参考参数可包括当前帧的信号特性参数,或者当前帧的前a帧的信号特性参数,或者当前帧的信号特性参数和当前帧的前a帧的信号特性参数等,具体可根据实际应用场景确定,在此不做限制。其中,上述a为不小于1的整数,即上述当前帧的前a帧可为当前帧的前一帧、前二帧或者前三帧等,在此不做限制。其中,当前帧的前一帧与当前帧在时序上连续,当前帧的前二帧在时序上连续并且包括上述当前帧的前一帧,当前帧的前三帧在时序上连续并且包括上述当前帧的前二帧。

具体实现中,上述当前帧的信号特性参数可以包括表示所述当前帧的左右声道相关性的参数、当前帧的子带ipd参数的方差、所述当前帧的信号类型以及当前帧的itd参数等参数中的一种或者多种。其中,上述当前帧的表示当前帧的左右声道相关性的参数和当前帧的子带ipd参数的方差可根据多声道信号的左右声道频域信号计算得到。上述当前帧的itd参数可根据当前帧多声道信号的itd参数的提取方式确定,其中,上述当前帧的itd参数的提取方式可包括标准协议中提供的提取方式,或者现有的本领域技术人员公知的提取方式,在此不做限制。

上述当前帧的前a帧的信号特性参数包括当前帧的前a帧中每一帧表示左右声道相关性的参数、当前帧的前a帧中每一帧的子带ipd参数的方差、当前帧的前a帧中每一帧的itd参数、当前帧的前a帧中每一帧的ipd参数编码方式以及当前帧的前a帧中每一帧的信号类型等参数中的一种或多种。具体可选择哪个或哪些参数根据实际应用场景确定,在此不做限制。其中,上述当前帧的前a帧中每一帧的ipd参数编码方式可以保存在缓存或者存储器中。上述信号类型可包括语音类型或者音乐类型。其中,当前帧的前a帧的信号特性参数可以保存在缓存中;可以理解的是,在获取了当前帧的信号特征参数后,当前帧的信号特征参数也会保存到缓存中,以用于下一帧的ipd参数编码方式的确定。

在一些可行的实施方式中,编码端可对当前帧多声道信号的左右声道时域信号进行时频变换,得到当前帧的左右声道频域信号。具体的,上述时频变换可采用快速傅立叶变换(fastfouriertransformation,fft)或者修正离散余弦变换(modifieddiscretecosinetransform,mdct)等实现方式,在此不做限制。其中,在对当前帧多声道信号的左右声道时域信号进行时频变换可以以帧为单位进行,也可以以子帧为单位进行,一帧一般可以包括4个子帧,或2个子帧,或8个子帧,具体的子帧数量可以根据具体情况进行确定。

例如,在一种实施方式中,编码端在采用fft将当前帧多声道信号的左右声道时域信号变换为左右声道频域信号时,具体可以通过如下变换式进行:

其中,n为时域信号索引值,k为频域信号索引值;length为帧长,m为将时域信号变换为频域信号的时频变换长度;xl(n)为左声道时域信号,xr(n)为右声道时域信号,l(k)为用于计算ipd参数的左声道频域信号的第k个频点值,r(k)为用于计算ipd参数的右声道频域信号的第k个频点值。其中,xl(n)和xr(n)为实数序列。

实数序列x(n)(包括xl(n)或者xr(n))的傅立叶变换系数x(k)为复数,并且其实部具有偶对称性,虚部具有奇对称性,即x(k)具有如下的共轭对称性:x(0)和x(n/2)都是实数,且满足如下关系式:

x(k)=x*(n-k),1≤k≤l/2-1

在进行离散傅立叶变换时,利用这种共轭对称性,编码端就不必计算和存储x(k),l/2+1≤k≤l-1以及x(0)和x(l/2)的虚部,而只需要计算x(0)到x(l/2)即可,从而降低对编码端的计算资源和存储资源的占用。

编码端在将当前帧的左右声道时域信号按帧或子帧变换为左右声道频域信号之后,就可以根据左右声道频域信号计算表示当前帧的左右声道相关性的参数。

在一个实施方式中,上述表示当前帧的左右声道相关性的参数可通过如下计算式计算获得:

其中,

其中,el(b)为左声道能量和,er(b)是右声道能量和,lr(k)为左声道频域信号的第k个频点值的实部,rr(k)为右声道频域信号的第k个频点值的实部,li(k)为左声道频域信号的第k个频点值的虚部,ri(k)为右声道频域信号的第k个频点值的虚部;l为子带频谱系数的数量;n为子带数量;

在另一个实施方式中,上述表示当前帧的左右声道相关性的参数可通过如下计算式计算获得:

在另一个实施方式中,上述表示当前帧的左右声道相关性的参数可通过如下计算式计算获得:

其中,r*(k)表示r(k)的共轭,即r*(k)为右声道频域信号的第k个频点值的共轭。

在一些可行的实施方式中,编码端在将当前帧的左右声道时域信号变换为左右声道频域信号之后,还可根据左右声道频域信号计算当前帧的子带ipd参数的方差。具体的,编码端可首先将当前帧的左右声道频域信号划分为至少二个子带(即多个子带),假设划分为nsubband个子带,其中,nsubband为大于2的整数。然后,编码端可根据划分得到的nsubband个子带的频域信号计算各个子带的ipd参数,并根据计算得到的nsubband个子带的ipd参数计算当前帧的子带ipd参数的方差。

其中,在一种实施方式中,编码端具体可以采用如下计算式计算子带ipd参数:

其中,b为子带的索引值,子带b包含的频点为ab-1≤k≤ab-1。

其中,在一种实施方式中,编码端可以采用如下计算式计算子带ipd参数的方差:

其中,

在本发明的另一个实施方式中,子带ipd参数可以通过如下计算式计算获得:

其中,atan2表示反正切函数。

可以理解的是,在实际应用中,子带ipd参数也可以通过其他方式计算获得,本发明实施例并不限定子带ipd参数的具体计算方式。

s502、根据获取的参考参数确定当前帧的ipd参数编码方式。

具体实现中,编码端可根据获取的参考参数,自适应地从预先设置的多种ipd参数编码方式中选择一种作为当前帧的ipd参数编码方式。

其中,上述预先设置的多种ipd参数编码方式可包括:第一编码方式和第二编码方式。其中第一编码方式包括groupipd参数编码方式、或者不编码ipd参数、或者将ipd参数的值置为0等等。上述第二编码方式包括子带集合ipd参数编码方式或者子带ipd参数编码方式等,其中子带ipd参数编码方式可以是编码当前帧的左右声道频域信号的各个子带或部分子带的ipd参数。

可以理解的是,在一些实施方式中,可以预先确定第一编码方式为groupipd参数编码方式、或者不编码ipd参数、或者将ipd参数的值置为0中的具体一种,因此编码端可以直接确定编码方式为groupipd参数编码方式、或者不编码ipd参数、或者将ipd参数的值置为0,而不需要从这三种编码方式中进行选择。相应地,也可以预先确定第二编码方式为子带集合ipd参数编码方式或者子带ipd参数编码方式中的具体一种,因此编码端可以直接确定编码方式为子带集合ipd参数编码方式或者子带ipd参数编码方式,而不需要从这二种编码方式中进行选择。

在另一些实施方式中,编码端可以先确定是第一编码方式还是第二编码方式,在确定是第一编码方式时再从上述三种第一编码方式中选择一种,相应地,在确定是第二编码方式时再从上述二种第二编码方式中选择一种。

在一些实施方式中,在确定了当前帧的ipd参数编码方式后,可以对确定的当前帧的ipd参数编码方式进行编码。具体的编码方式可以将预设的参数设为预设的值,用不同的值表示不同的编码方式。例如,在一种实施方式中,可以用编码方式标志位来表示当前帧的ipd参数编码方式,该标志位可以占用一个比特,当这个比特的取值为0时,表示当前帧的ipd参数编码方式为第一编码方式,当这个比特的取值为1时,表示当前帧的ipd参数编码方式为第二编码方式;当然,也可以当这个比特的取值为1时,表示当前帧的ipd参数编码方式为第一编码方式,当这个比特的取值为0时,表示当前帧的ipd参数编码方式为第二编码方式。解码端可以根据该标志位的取值来确定ipd参数编码方式,从而确定对应的解码方式。

s503、根据确定的当前帧的ipd参数编码方式对所述当前帧的ipd参数进行处理。

在一些可行的实施方式中,参考参数包括表示当前帧的左右声道相关性的参数,则在确定当前帧的ipd参数编码方式时,可以将表示当前帧的左右声道相关性的参数与预先定义的第一阈值进行比较,若表示当前帧的左右声道相关性的参数的值大于或等于第一阈值,则当前帧的ipd参数编码方式为第一编码方式;反之,如果表示当前帧的左右声道相关性的参数的值小于第一阈值,则当前帧的ipd参数编码方式为第二编码方式。其中,上述预先定义的第一阈值的取值范围为[0.6,0.95],例如具体可以取值为0.89,或者0.8,或者0.75等。

在一些可行的实施方式中,参考参数包括当前帧的子带ipd参数的方差,则在确定当前帧的ipd参数编码方式时,可以将当前帧的子带ipd参数的方差与预先定义的第二阈值进行比较,若表示当前帧的左右声道相关性的参数的值小于第二阈值,则当前帧的ipd参数编码方式为第一编码方式;反之,如果表示当前帧的左右声道相关性的参数的值大于或等于第二阈值,则当前帧的ipd参数编码方式为第二编码方式。其中,上述预先定义的第二阈值的取值范围为[0.05,0.5],例如具体可以取值为0.45,或者0.25,或者0.3等。

在一些可行的实施方式中,参考参数包括当前帧的信号类型。例如,在一种实施方式中,在当前帧的信号类型为语音类型时,可以确定当前帧的ipd参数编码方式为第二编码方式,在当前帧的信号类型为音乐类型时,可以确定当前帧的ipd参数编码方式为第一ipd参数编码方式。可以理解的是,在另一些实施例中,当前帧的信号类型不是确定当前帧的ipd参数编码方式的唯一参考参数,还可以结合其他参考参数进行判断。

在一些可行的实施方式中,参考参数包括当前帧的声道间时间差itd参数,如果当前帧的itd参数的值大于预设的阈值则确认当前帧的ipd参数编码方式为第一编码方式,否则当前帧的ipd参数编码方式为第二编码方式。在一个实施例中,该预设的阈值可以是1,2,3,4,或5。

可以理解的是,当前帧的信号特征参数可以只包括上述参数中的一种,这时候只需要这一种参数满足了对应的参数条件就可以确定当前帧的ipd参数编码方式;当然,当前帧的信号特征参数也可以包括上述参数中的至少两种,此时则需要该至少两个参数分别满足对应的参数条件才可以确定当前帧的ipd参数编码方式。

在一些可行的实施方式中,参考参数包括当前帧的前a帧中每一帧的ipd参数编码方式和当前帧的前a帧的每一帧的信号类型,则可判断上述当前帧的前a帧的每一帧的ipd参数编码方式是否为预设的ipd参数编码方式,上述当前帧的前a帧的每一帧的信号类型是否为预设的信号类型。若上述当前帧的前a帧的每一帧的ipd参数编码方式均为第一编码方式,并且上述当前帧的前a帧的每一帧的信号类型均为音乐类型,则可将当前帧的ipd参数编码方式确定为第一编码方式。

例如,当a=1时,上述当前帧的前a帧即为当前帧的前一帧。若上述当前帧的前一帧的ipd参数编码方式为第一编码方式,并且上述当前帧的前一帧的信号类型为音乐类型,则可将当前帧的ipd参数编码方式确定为第一编码方式。否则,确定当前帧的ipd参数编码方式不为第一编码方式,例如为第二编码方式。

当a=2时,上述当前帧的前a帧即为当前帧的前两帧。若上述当前帧的前两帧的ipd参数编码方式均为第一编码方式,并且上述当前帧的前两帧的信号类型均为音乐类型,则可将当前帧的ipd参数编码方式确定为第一编码方式。否则,确定当前帧的ipd参数编码方式不为第一编码方式,例如为第二编码方式。

在一些可行的实施方式中,参考参数包括当前帧的itd参数、当前帧的子带ipd参数的方差和当前帧的前a帧的每一帧的信号类型,则可将上述当前帧的itd参数的绝对值与预先定义的第三阈值进行比对,将上述当前帧的子带ipd参数的方差与预先定义的第四阈值进行比对,并判断上述当前帧的前a帧的每一帧的信号类型是否为语音类型。其中,上述预先定义的第三阈值的取值可以为[0,4],第三阈值可取值为4,或者2,或者0等。上述预先定义的第四阈值的取值范围可以为[0.05,0.4],第四阈值可取值为0.4,或者0.35,或者0.25,或者0.05等。若上述当前帧的itd参数的绝对值大于第三阈值,当前帧的子带ipd参数的方差小于第四阈值,并且上述当前帧的前a帧的每一帧的信号类型均为语音类型,则可将当前帧的ipd参数编码方式确定为第一编码方式。否则,确定当前帧的ipd参数编码方式不为第一编码方式,例如为第二编码方式。

其中,若当前帧的前a帧为当前帧的前一帧,则当上述当前帧的itd参数的绝对值大于第三阈值,当前帧的子带ipd参数的方差小于第四阈值,并且上述当前帧的前一帧的信号类型为语音类型时,可将当前帧的ipd参数编码方式确定为第一编码方式。若当前帧的前a帧为当前帧的前二帧,则当上述当前帧的itd参数的绝对值大于第三阈值,当前帧的子带ipd参数的方差小于第四阈值,并且上述当前帧的前二帧中每一帧的信号类型均为语音类型时,可将当前帧的ipd参数编码方式确定为第一编码方式。

在一些可行的实施方式中,编码端确定当前帧的ipd参数编码方式为第一编码方式之后,则可根据第一编码方式当前帧的ipd参数进行处理。例如,若上述第一编码方式是不编码ipd参数,则不做任何操作,即,结束当前帧的ipd参数的编码对应的进程。若上述第一编码方式是groupipd参数编码方式,则可编码当前帧的groupipd参数,其中,当前帧的groupipd参数作为当前帧的ipd参数。若上述第一编码方式是将ipd参数的值置为0,则可以将当前帧的ipd参数的值置为0,然后对值置为0的ipd参数进行后续处理。例如,在某些处理中需要ipd参数的值作为输入,则在将当前帧的ipd参数的值置为0后,则可以将0作为这些处理的输入。

在一些实施方式中,参考参数包括表示当前帧的左右声道相关性的参数,进一步还可以包括当前帧的前一帧的ipd参数编码方式以及该前一帧的信号类型;若表示当前帧的左右声道相关性的参数的值大于或等于第一阈值,则可以确定当前帧的ipd参数编码方式为第一编码方式;若表示当前帧的左右声道相关性的参数的值小于第一阈值,如果当前帧的前一帧的ipd参数编码方式为第一编码方式且该前一帧的信号类型为音乐信号类型时,也可以确定当前帧的ipd参数编码方式为第一编码方式;反之,如果表示当前帧的左右声道相关性的参数的值小于第一阈值,并且当前帧的前一帧的ipd参数编码方式为第二编码方式或当前帧的前一帧的信号类型为语音类型时,则确定当前帧的ipd参数编码方式为第二编码方式。

进一步地,在一种可选的实施方式中,在通过上述实施方式确定了当前帧的ipd参数编码方式后,还可以进一步根据当前帧的前a帧的ipd参数编码方式确定是否对当前帧的ipd参数编码方式进行调整。例如可以根据当前帧的前一帧,或者前二帧,或者前三帧,或者前四帧,或者前五帧的ipd参数编码方式确定是否对当前帧的ipd参数编码方式进行调整。在一种可能的实施方式中,如果当前帧的ipd参数编码方式与当前帧的ipd参数编码方式相同,则不需要对当前帧的ipd参数编码方式进行调整。如果当前帧的ipd参数编码方式当前帧的ipd参数编码方式不相同,则可以考虑对当前帧的ipd参数编码方式进行调整;例如,在包括当前帧的前一帧在内的当前帧的前二帧,或者前三帧,或者前四帧,或者前五帧采用的都是相同的ipd参数编码方式,并且包括当前帧的前一帧在内的当前帧的前二帧,或者前三帧,或者前四帧,或者前五帧采用的ipd参数编码方式与当前帧的ipd参数编码方式不相同时,则可以对当前帧的ipd参数编码方式进行调整,即将当前帧的ipd参数编码方式调整为与当前帧的ipd参数编码方式相同。对当前帧的ipd参数编码方式进行调整,可以确保当前帧的编码方式在一定程度上保持与前一帧一致,从而使编码的码流在解码时保证当前帧和前一帧能够平滑过渡,听觉感受上更好。

具体的,在一些实施方式中,在编码方式为第二编码方式时,编码端可提取当前帧的左右声道频域信号的至少一部分子带的ipd参数。其中,上述当前帧的左右声道频域信号的至少一部分子带具体可包括上述当前帧的左右声道频域信号划分得到的nsubband个子带中的全部子带或者部分子带,在此不做限制。具体实现中,用户可根据多声道信号编码的编码速率或者编码质量等编码需求,确定编码当前帧的groupipd参数时所使用的当前帧的左右声道频域信号的频域范围,包括当前帧的左右声道频域信号的整个频域范围的频域信号,即当前帧的左右声道频域信号的所有子带的频域信号,或者当前帧的左右声道频域信号的特定频域范围,即当前帧的左右声道频域信号中的部分帧的频域信号,上述当前帧的左右声道频域信号中的部分帧的频域信号包含在左右声道频域信号的部分子带频域信号中。

在一些可行的实施方式中,编码端可以先不提取当前帧左右声道频域信号的所有子带或部分子带的ipd参数,然后再确认当前帧的ipd参数编码方式,如果上述第一编码方式是不编码当前帧的ipd参数,则可以直接不提取当前帧左右声道频域信号的所有子带或部分子带的ipd参数。在另一些实施方式中,也可以先提取当前帧的左右声道频域信号的所有子带或部分子带中每一个子带的ipd参数,再确定当前帧的ipd参数编码方式。

在一些可行的实施方式中,若编码端确定编码当前帧的左右声道频域信号的groupipd参数时所使用的当前帧的左右声道频域信号的频域范围为当前帧的左右声道频域信号的整个频域范围,则可提取当前帧的左右声道频域信号的所有子带(即当前帧的nsubband个子带)中每一个子带的ipd参数,计算提取的所有子带的ipd参数的均值,进而将获取的所有子带的ipd参数的均值作为当前帧的groupipd参数。在一种实施方式中,当前帧的groupipd参数的计算公式如下:

其中,g_ipd即为当前帧的groupipd参数,ipd(b)为第b个子带的ipd参数。

可选的,在一些可行的实施方式中,若编码端确定编码当前帧的左右声道频域信号的groupipd参数时所使用的当前帧的左右声道频域信号的频域范围为当前帧的左右声道频域信号的特定频域范围,例如[k1,k2],即第k1个频点到第k2个频点之间的频域信号,则可提取当前帧的左右声道频域信号的部分子带(即第k1个频点到第k2个频点之间的频域信号所属的子带)中每一个子带的ipd参数,计算提取的所有子带的ipd参数的均值,进而将获取的所有子带的ipd参数的均值作为当前帧的groupipd参数。

具体实现中,上述第k1个频点到第k2个频点之间的频域信号所属的子带的ipd参数可预先定义为每个频点的ipd参数,即,此时,可将子带的ipd参数的计算替换为每个频点的ipd参数的计算,以每个频点的ipd参数作为每个子带的ipd参数的计算来计算当前帧的groupipd参数。其中,在预设的频域范围[k1,k2]内逐个频点计算每个频点的ipd参数的计算方式如下:

ipd(k)=∠l(k)r*(k),k1≤k≤k2

其中,∠表示求复数的角度,l(k)为左声道频域信号第k个频点值,r*(k)为右声道频域信号第k个频点值的共轭。

进一步的,可以对预设范围(多声道频域信号的多帧信号,包含当前帧和当前帧的前a帧)内的ipd(k)进行统计处理,得到groupipd参数。

例如,若上述特定频域范围[k1,k2]为6帧的左右声道频域信号中每一帧的左右声道频域信号的选取范围,则可计算这6帧的左右声道频域信号中每一帧的(k2-k1+1)个频点的ipd参数的均值,计算公式如下:

进一步,可计算包含当前帧在内的连续6帧ipd参数的均值,并作为当前帧的groupipd参数:

其中,为当前帧的ipd参数的均值,为与当前帧紧邻的前一帧的ipd参数的均值,为与当前帧的前一帧紧邻的前一帧的ipd参数的均值,其它依此类推。

在一些可行的实施方式中,第二编码方式可以为:子带集合ipd参数编码方式或子带ipd参数编码方式。例如,当当前帧的ipd参数编码方式为子带ipd参数提取方式,则提取当前帧的左右声道频域信号的所有子带或部分子带中每一个子带的ipd参数,然后采用任意一种量化方式,量化子带的ipd参数,具体量化方式不做限定。

图6描述了本发明另一个实施例提供的ipd参数的编码方法的流程,该实施例中以参考参数包括当前帧的表示当前帧的左右声道相关性的参数,当前帧的前一帧的ipd参数编码方式以及当前帧的前一帧的信号类型,第一阈值的取值为0.75,a的取值为1为例进行描述。如图6所示,该实施例包括:

s601、获取表示当前帧的左右声道相关性的参数。

其中,表示当前帧的左右声道相关性的参数的具体获取方式可以参考前面的描述,此处不再赘述。

s602、判断表示当前帧的左右声道相关性的参数的值是否大于或等于0.75;如果否,进入步骤s603,如果否,进入步骤s607。

s603、获取当前帧的前一帧的ipd参数编码方式。

当前帧的前一帧的ipd参数编码方式可以存储在缓存中,该前一帧的ipd参数编码方式可以为不编码ipd参数,或者为编码左右声道频域信号的所有子带或部分子带的子带ipd参数。

s604、判断当前帧的前一帧的ipd参数编码方式是否为不编码ipd参数;如果是,进入步骤s605,如果否,进入步骤s608。

s605、获取当前帧的前一帧的信号类型。

当前帧的前一帧的信号类型可以存储在缓存中,该前一帧的信号类型可以是音乐信号类型或语音信号类型。

s606、判断当前帧的前一帧的信号类型是否为音乐信号类型;如果是,进入步骤s607,如果否,进入步骤s608。

s607、不编码当前帧的ipd参数,即确定当前帧的ipd参数编码方式为不编码ipd参数。结束当前帧的处理流程。

s608,编码当前帧的左右声道频域信号的所有子带或部分子带的子带ipd参数。其中,子带和子带ipd参数是一一对应的,即每一个子带都会有对应的子带ipd参数。

其中,子带ipd参数的具体获取过程如前所述,此处不再赘述。

在编码当前帧的左右声道频域信号的部分子带的子带ipd参数时,具体编码哪一部分子带的子带ipd参数可以根据需要进行设定。例如,假设一共有a个子带,并且这a个子带的频率值从第0个子带至第a-1个子带逐渐增加。在一个实施例中,可以仅编码第0个子带至第a-3个子带的子带ipd参数,即不编码频率最高和频率次高的两个子带的子带ipd参数;在另一个实施例中,可以仅编码第2个子带至第a-1个子带的子带ipd参数,即不编码频率最低和频率次低的两个子带的子带ipd参数。当然,也可以不编码其中的任意两个子带的子带ipd参数。可以理解的是,在一些实施例中,子带ipd参数的被编码的子带的数量可以根据具体需要进行设定,例如可以编码a个子带中的a-1个子带的子带ipd参数,也可以编码a个子带中的a-2个子带的子带ipd参数,也可以编码a个子带中的a-3个子带的子带ipd参数,也可以编码a个子带中的a-4个子带的子带ipd参数。

其中,可以理解的是,图6中获取步骤s601,s603,和s605在执行顺序上没有任何限定,任意一个在前都可以,也可以同时进行;同理,判断步骤s602,s604和s606在执行顺序上也没有任何限定,任意一个在前都可以,也可以同时进行。

图7描述了本发明另一个实施例提供的ipd参数的编码方法的流程,该实施例包括:

s701、获取用于确定多声道信号的当前帧的ipd参数编码方式的参考参数。

其中参考参数具体是什么参数以及参考参数的具体获取参数可以参考前面实施例的描述,此处不再赘述。

s702、根据获取的参数确定当前帧的ipd参数编码方式。

当前帧的ipd参数编码方式可以参考前面实施例的描述,此处不再赘述。

s703、确定当前帧的ipd参数编码方式是否与当前帧的前一帧的ipd参数编码方式相同;如果相同,进入步骤s704;如果否,进入步骤s705。

s704、将预设的计数器的值设为0;进入步骤s707。

即不需要调整当前帧的ipd参数编码方式。

s705、判断预设的计数器的值是否小于5;如果是,进入步骤s706;如果否,进入步骤s707。

s706、调整当前帧的ipd参数编码方式,并将预设的计数器的值增加1。进入步骤s708。

其中,在当前帧的ipd参数编码方式为第一编码方式时,则将当前帧的ipd参数编码方式调整为第二编码方式,例如在当前帧的ipd参数编码方式为不编码ipd参数时,则将当前帧的ipd参数编码方式调整为编码当前帧的左右声道频域信号的所有子带或部分子带的子带ipd参数。或者,在当前帧的ipd参数编码方式为第二编码方式时,则将当前帧的ipd参数编码方式调整为第一编码方式,例如在当前帧的ipd参数编码方式为编码左右声道频域信号的所有子带或部分子带的子带ipd参数时,则将当前帧的ipd参数编码方式调整为不编码ipd参数。

s707、使用确定的当前帧的ipd参数编码方式对当前帧的ipd参数进行处理。结束流程。

s708、使用调整后的当前帧的ipd参数编码方式对当前帧的ipd参数进行处理。

在本发明的另一个实施方式中,在确定是否对当前帧的ipd参数编码方式进行调整时,可以利用两个计数器,具体的处理方式如下:

在当前帧和当前帧的前一帧的ipd参数编码方式均为第一编码方式时,将第一计数器的值设为0;如果当前帧的前一帧的ipd参数编码方式为第一编码方式,当前帧的ipd参数编码方式为第二编码方式,并且第一计数器的值小于5,则将当前帧的ipd参数编码方式调整为第一编码方式,并将第一计数器的值增加1;其中第一编码方式可以为不编码ipd参数,第二编码方式可以为编码左右声道频域信号的所有子带或部分子带的子带ipd参数。

在当前帧和当前帧的前一帧的ipd参数编码方式均为第二编码方式时,将第二计数器的值设为0;如果当前帧的前一帧的ipd参数编码方式为第二编码方式,当前帧的ipd参数编码方式为第一编码方式,并且第二计数器的值小于5,则将当前帧的ipd参数编码方式调整为第二编码方式,并将第二计数器的值增加1;其中第一编码方式可以为不编码ipd参数,第二编码方式可以为编码左右声道频域信号的所有子带或部分子带的子带ipd参数。

其中,可以理解的是,如果当前帧的ipd参数编码方式被调整了,那么在缓存当前帧的ipd参数编码方式时缓存的是调整后的,也就是说,在当前帧的下一帧做ipd参数编码方式的判决时,可以参考当前帧的调整后的ipd参数编码方式。

参加图8,是本发明实施例提供的ipd参数的编码装置800的实施例结构示意图,包括:

获取单元801,用于获取参考参数,该参考参数用于确定多声道信号的当前帧的声道间相位差ipd参数编码方式。

其中,参考参数具体是什么参数,以及参考参数的具体获取过程可以参考方法实施例部分的描述,此处不再赘述。

确定单元802,用于根据获取单元801获取的参考参数确定当前帧的ipd参数编码方式,该确定的当前帧的ipd参数编码方式为预设的至少两种ipd参数编码方式中的一种。

其中,当前帧的ipd参数编码方式的确定具体可以参考方法实施例部分的描述,以及预设的至少两种ipd参数编码方式具体是什么编码方式也参考方法实施例部分的描述,此处不再赘述。

处理单元803,用于根据确定单元802确定的当前帧的ipd参数编码方式对当前帧的ipd参数进行处理。

具体的处理过程可以参考方法实施例部分的描述,此处不再赘述。

在本发明的另一个实施例中,确定单元802还可以用于确定是否需要对确定的当前帧的ipd参数编码方式进行调整;此时,如图8所示,ipd参数的编码装置800还可以包括:调整单元804,用于在确定单元802确定需要对确定的当前帧的ipd参数编码方式进行调整时,对确定的当前帧的ipd参数编码方式进行调整;相应地,处理单元803,具体用于根据调整后的当前帧的ipd参数编码方式对当前帧的ipd参数进行处理。其中,如何确定是否需要对确定的当前帧的ipd参数编码方式进行调整,以及如何对当前帧的ipd参数编码方式进行调整可以参考方法实施例的描述,此处不再赘述。

如图8所示,在本发明的另一个实施例中,ipd参数的编码装置800还可以包括:编码单元805,用于对确定单元802确定的当前帧的ipd参数编码方式进行编码。例如,可以设置编码方式标志位,该标志位占用一个比特,从而能够指示当前帧的ipd参数编码方式是第一编码方式还是第二编码方式,使得解码端能够根据该编码方式标志位确定当前帧的ipd参数编码方式,从而采用对应的解码方式进行解码。其中,可以理解的是,在某些实施方式中,编码单元805和处理单元803可以是同一个逻辑单元。

图9描述了本发明另一个实施例提供的终端的结构,该终端可以是可穿戴设备,vr设备,ar设备,手机,pad,notebook,或pc等等。如图9所示,本发明实施例提供的终端包括了网络接口910(如图9中虚线框所示),网络接口910用于发送和接收数据,例如,在终端作为编码端时,发送的数据包括终端编码的多声道信号(承载在码流中),在编码了ipd参数时,发送的数据还包括了ipd参数(也承载在码流中,可以作为多声道信号的一部分);在终端作为解码端时,接收的数据包括了承载有多声道信号的码流,在编码端编码了ipd参数时,接收的数据还可以包括ipd参数。其中,网络接口910的具体形态可以是多种多样的,具体根据终端的具体形态以及应用场景的不同会有不同。图9给出了三种示例,第一种是由射频收发器(rftransceiver)901和调制解调器(modem)902组成的蜂窝网络接入模块,用于接入移动运营商提供的移动通信网络,如2g(2ndgeneration),3g(3rdgeneration),4g(4thgeneration),即长期演进(lte:longtermevolution)网络,以及未来的5g(5thgeneration)或6g(6thgeneration)网络等等;第二种是无线保真(wifi:wirelessfidelity)模块903,用于接入接入点(ap:accesspoint)以接入网络;第三种是以太网网卡904,可以通过双绞线或者光纤接入网络。需要说明的是,终端并不需要同时包括如上所述的三种网络接口,可以只包括如上三种网络接口终端中的至少一种使得终端能够接入网络即可;同时,终端所包括的网络接口也可以不是上述三种之一,例如还可以是蓝牙接口或modem等等。因此本发明实施例并不会对网络接口910的具体形态进行限定,只要终端能够通过网络接口910接入网络就不会影响本发明实施例的实现。

如图9所示,终端还可以包括麦克风905,用于采集多声道信号。其中麦克风905可以是内置了模数转换器的,因此麦克风可以将采集的模拟信号形式的多声道信号转换成数字信号形式的多声道信号。当然,麦克风905也可以不内置模数转换器,则此时终端还需要包括模数转换器,以用于对麦克风905采集的模拟信号形式的多声道信号进行模数转化,获得数字信号形式的多声道信号。其中麦克风905的数量可以是一个,两个,三个,或者更多,本发明实施例不对麦克风905的具体数量做限定。可以理解的是,终端也可以使用外置麦克风来采集多声道信号,此时终端需要包括外置麦克风的适配接口,以便于外置麦克风的插入,从而实现终端与外置麦克风的数据交互。

如图9所示,终端还可以包括扬声器906,用于播放终端解码得到的多声道信号。其中,如果终端接收的包括多声道信号的码流包括了ipd参数,则该解码过程可以是基于该ipd参数进行的。其中,扬声器906可以是内置了数模转换器的,也就是说终端可以将数字信号形式的多声道信号发送给扬声器906,由扬声器906对数字信号形式的多声道信号进行模数转换,从而转换成模拟信号形式的多声道信号并进行播放;当然,扬声器906也可以没有内置数模转换器,此时终端需要包括模数转换器以将数字信号形式的多声道信号转换为模拟信号形式的多声道信号,并将模拟信号形式的多声道信号发送至扬声器906进行播放。其中扬声器906的数量可以是一个,两个,三个,或者更多,本发明实施例不对扬声器906的数量做限定。可以理解的是,终端也可以使用外置扬声器来播放多声道信号,此时终端需要包括外置扬声器的适配接口,以便于外置扬声器的插入,从而实现与外置扬声器的数据交互。

如图9所示,终端还包括了处理器908和存储器909,存储器909用于存储处理器可执行的代码,所述处理器908用于执行存储器909存储的代码,从而实现上述方法实施例所描述的方法。

如图9所示,终端还包括了总线907,上述的网络接口910,麦克风905,扬声器906,处理器908以及存储器909这些器件之间的数据交互都可以通过总线907进行。可以理解的是,图9仅仅是示例性的描述了终端的结构,其中的一些连接关系做了简化,实际应用中,网络接口910,麦克风905,或扬声器906等器件可能并不是直接与总线907连接,即网络接口910,麦克风905,或扬声器906等器件与总线907之间的数据交互可能还需要经过其他器件。

在一些实施方式中,上述的处理器908和存储器909也可以有数据交互接口,处理器908和存储器909之间的数据交互可以直接通过该数据交互接口进行,而不需要经过总线907,从而提高处理器908和存储器909之间的数据交互效率。

在一些实施方式中,处理器908和存储器909可以是指的数字信号处理器(dsp:digitalsignalprocessor)中的处理器和存储器,即处理器908和存储器909均被封装在dsp中,此时处理器908和存储器909可以通过dsp内部的数据交互接口进行。同时,由于处理器908和存储器909均被封装在dsp中,则处理器908和存储器909可以共用dsp与总线907之间的数据交互接口与其他器件进行数据交互。

本发明实施例还提供了一种计算机程序,该计算机程序在执行时可以执行上述任一方法实施例的流程。

本发明实施例还听了一种存储介质,该存储介质存储有可执行代码,该可执行代码被执行时可以执行上述任一方法实施例的流程。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

本发明的说明书、权利要求书以及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或者单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或者单元,或可选地还包括对于这些过程、方法、系统、产品或设备固有的其他步骤或单元。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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