一种立体声信号处理方法及装置与流程

文档序号:33052496发布日期:2023-01-24 23:33阅读:45来源:国知局
一种立体声信号处理方法及装置与流程
一种立体声信号处理方法及装置
1.本技术是分案申请,原申请的申请号是201780090879.5,原申请日是2017年12月14日,原申请的全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及信息技术领域,尤其涉及一种立体声信号处理方法及装置。


背景技术:

3.随着生活质量的提高,人们对高质量音频的需求不断增大。相对于单声道音频,立体声音频具有各声源的方位感和分布感,能够提高信息的清晰度、可懂度及临场感,因而备受人们青睐。现有的时域立体声编码技术,通常是在时域将左声道信号和右声道信号下混为中央通道(mid channel)信号以及边通道(side channel)信号。下混后的中央通道信号可以表示为0.5
×
(l+r),表征了左声道信号和右声道信号之间的相关信息;下混后的边通道信号可以表示为0.5
×
(l-r),表征了左声道信号和右声道信号之间的差异信息,其中l表示左声道信号,r表示右声道信号。然后,再分别对中央通道信号及边通道信号采用单声道编码方法进行编码。对于中央通道信号,通常用较多的比特数进行编码;对于边通道信号,通常用较少的比特数进行编码。
4.为了提高编码效率,需要使得中央通道信号更大,而边通道信号更小。目前在时域立体声编码中,在获得中央通道信号及边通道信号之前会使用匹配算法对左声道信号和右声道信号进行时延估计得到声道间时间差,并根据声道间时间差对左声道信号和右声道信号进行时延对齐处理,从而使得下混后获得的中央通道信号更大、而边通道信号更小。根据声道间时间差进行时延对齐的算法中,通常的做法是从左声道和右两个声道中选择一个声道,对该声道的信号进行时延对齐处理,这个声道被称为目标声道;而另一个声道的信号不进行时延调整,只是作为目标声道进行时延调整的一个参考,这个声道被称为参考声道。
5.现有方法中,若发现时延估计得到的当前帧的声道间时间差的符号不同于前一帧的声道间时间差的符号,则将当前帧的目标声道的选择保持和前一帧的目标声道相同。同时无论当前帧的声道间时间差的估计值是多少,都将其强制的设为零。然后,根据设置为零的声道间时间差对当前帧的目标声道进行时延对齐处理,从而保证时延对齐处理后的当前帧的目标声道和参考声道之间的时延为零。
6.上述方法中,当两帧立体声信号的声道间时间差的符号发生变化,说明左右声道的信号到达先后顺序发生了变化,可能是从左声道信号先到达转变成右声道信号先到达,也可能是从右声道信号先到达转变成左声道信号先到达。如果将当前帧的声道间时间差强制设置为零,就只是按照零时间差而非左右声道真实的时间差调整左右声道,对这样获得的时延调整后的左右声道信号进行时域下混处理,但实际上两个声道的信号并没有实现真正的时延对齐,也就没有办法有效的对两个声道之间的相关性成分进行抵消,造成当前帧时域下混后的边通道信号能量变大,降低了立体声编码的整体质量。


技术实现要素:

7.本技术提供一种立体声信号处理方法及装置,用以解决在两帧立体声信号的声道间时间差的符号发生变化时,由于声道间时延不对齐,导致的立体声编码的编码质量低的问题。
8.本技术实施例提供了一种立体声信号处理方法,应用于立体声编解码器的编码端,该方法包括:
9.对当前帧的立体声信号进行时延估计,确定所述当前帧的声道间时间差;所述当前帧的声道间时间差为所述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差;
10.若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标声道信号处于相同声道。
11.根据本技术提供的方法,当确定当前帧的声道间时间差的符号与当前帧的前一帧的声道间时间差的符号不同时,根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理,使得当前帧的时延对齐处理能够按照真实的声道间时间差进行,保证了对齐效果更优,避免了现有技术中因为将当前帧的声道间时间差强制设置为零,而导致时延对齐处理后当前帧两个声道之间的相关性成分无法进行抵消,造成当前帧时域下混后的次要声道信号能量变大、影响编码整体质量的问题。
12.可选的,根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理,包括:
13.将所述当前帧的第一声道信号中第一处理长度的信号压缩为第一对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第一声道信号;
14.所述第一处理长度是根据所述当前帧的声道间时间差和所述第一对齐处理长度确定的,所述第一处理长度大于所述第一对齐处理长度。
15.可选的,所述第一处理长度为所述当前帧的声道间时间差的绝对值与所述第一对齐处理长度之和。
16.可选的,所述第一处理长度的信号的起始点位于所述第一对齐处理长度的信号的起始点之前、且所述第一处理长度的信号的起始点与第一对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
17.可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号结束点之间的长度大于或等于所述第一对齐处理长度。
18.可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点之前,且与当前帧的第一声道信号的起始点之间的长度小于或等于过渡长度,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号的结束点之间的长度大于或等于所述第一对齐处理长度与所述过渡长度之和,其中,所述过渡长度小于或等于当
前帧的声道间时间差的绝对值的最大值。
19.可选的,根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理,包括:
20.将所述当前帧的第二声道信号中第二处理长度的信号拉伸为第二对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第二声道信号;
21.所述第二处理长度是根据所述前一帧的声道间时间差和所述第二对齐处理长度确定的,所述第二处理长度小于所述第二对齐处理长度。
22.可选的,所述第二处理长度为所述第二对齐处理长度与所述前一帧的声道间时间差的绝对值之差。
23.可选的,所述第二处理长度的信号的起始点位于所述第二对齐处理长度的信号的起始点之后、且所述第二处理长度的信号的起始点与第二对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。
24.可选的,所述第二对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点或位于当前帧的第二声道信号的起始点之后,且所述第二对齐处理长度的信号的起始点与所述当前帧的第二声道信号的结束点之间的长度大于或等于所述第二对齐处理长度。
25.可选的,所述第二对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第二预设长度;所述第一对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第二预设长度与第二对齐处理长度之和。
26.可选的,所述第一对齐处理长度小于或等于所述当前帧的帧长,所述第一对齐处理长度为预先设定的长度,或者,所述第一对齐处理长度满足以下公式:
[0027][0028]
其中,l_next_target为所述第一对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0029]
可选的,所述第二对齐处理长度小于或等于所述当前帧的帧长,所述第二对齐处理长度为预先设定的长度,或者,所述第二对齐处理长度满足以下公式:
[0030][0031]
其中,l_pre_target为所述第二对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0032]
可选的,所述时延对齐处理的处理长度小于或等于所述当前帧的帧长,所述时延对齐处理的处理长度为预先设定的长度;或者,所述时延对齐处理的处理长度满足以下公式:
[0033][0034]
其中,l为时延对齐处理的处理长度,max_delay_change为相邻帧声道间时间差的最大差值,l_init为预设的时延对齐处理的处理长度。
[0035]
本技术实施例提供一种立体声信号处理装置,可以执行实现上述方法提供的任意一种立体声信号处理方法。
[0036]
在一种可能的设计中,该立体声信号处理装置包括多个功能模块,例如包括处理单元和收发单元,用于实现上述提供的任意一种立体声信号处理方法,使得当确定当前帧的声道间时间差的符号与当前帧的前一帧的声道间时间差的符号不同时,根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理,使得当前帧的时延对齐处理能够按照真实的声道间时间差进行,保证了对齐效果更优,避免了现有技术中因为将当前帧的声道间时间差强制设置为零,而导致时延对齐处理后当前帧两个声道之间的相关性成分无法进行抵消,造成当前帧时域下混后的次要声道信号能量变大、影响编码整体质量的问题。
[0037]
本技术实施例提供一种立体声信号处理装置,所述装置包括:所述装置包括处理器和存储器,所述存储器存储了可执行指令,所述可执行指令用于指示所述处理器执行如下步骤:
[0038]
对当前帧的立体声信号进行时延估计,确定所述当前帧的声道间时间差;所述当前帧的声道间时间差为所述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差;
[0039]
若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标声道信号处于相同声道。
[0040]
可选的,所述可执行指令用于指示所述处理器在根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理时执行如下步骤:
[0041]
将所述当前帧的第一声道信号中第一处理长度的信号压缩为第一对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第一声道信号;
[0042]
所述第一处理长度是根据所述当前帧的声道间时间差和所述第一对齐处理长度确定的,所述第一处理长度大于所述第一对齐处理长度。
[0043]
可选的,所述第一处理长度为所述当前帧的声道间时间差的绝对值与所述第一对齐处理长度之和。
[0044]
可选的,所述第一处理长度的信号的起始点位于所述第一对齐处理长度的信号的起始点之前、且所述第一处理长度的信号的起始点与第一对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0045]
可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号结束点之间的长度大于或等于所述第一对齐处理长度。
[0046]
可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点之前,且与当前帧的第一声道信号的起始点之间的长度小于或等于过渡长度,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号的结束点之间的长度大于或等于所述第一对齐处理长度与所述过渡长度之和,其中,所述过渡长度小于或等于当前帧的声道间时间差的绝对值的最大值。
[0047]
可选的,所述可执行指令用于指示所述处理器在根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理时执行如下步骤:
[0048]
将所述当前帧的第二声道信号中第二处理长度的信号拉伸为第二对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第二声道信号;
[0049]
所述第二处理长度是根据所述前一帧的声道间时间差和所述第二对齐处理长度确定的,所述第二处理长度小于所述第二对齐处理长度。
[0050]
可选的,所述第二处理长度为所述第二对齐处理长度与所述前一帧的声道间时间差的绝对值之差。
[0051]
可选的,所述第二处理长度的信号的起始点位于所述第二对齐处理长度的信号的起始点之后、且所述第二处理长度的信号的起始点与第二对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。可选的,所述第二对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点或位于当前帧的第二声道信号的起始点之后,且所述第二对齐处理长度的信号的起始点与所述当前帧的第二声道信号的结束点之间的长度大于或等于所述第二对齐处理长度。
[0052]
可选的,所述第二对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第二预设长度;所述第一对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第二预设长度与第二对齐处理长度之和。
[0053]
可选的,所述第一对齐处理长度小于或等于所述当前帧的帧长,所述第一对齐处理长度为预先设定的长度;或者,所述第一对齐处理长度满足以下公式:
[0054][0055]
其中,l_next_target为所述第一对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0056]
可选的,所述第二对齐处理长度小于或等于所述当前帧的帧长,所述第二对齐处理长度为预先设定的长度;或者,所述第二对齐处理长度满足以下公式:
[0057][0058]
其中,l_pre_target为所述第二对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0059]
可选的,所述时延对齐处理的处理长度小于或等于所述当前帧的帧长,所述时延对齐处理的处理长度为预先设定的长度;或者,所述时延对齐处理的处理长度满足以下公式:
[0060][0061]
其中,l为时延对齐处理的处理长度,max_delay_change为相邻帧声道间时间差的最大差值,l_init为预设的时延对齐处理的处理长度。
[0062]
本技术实施例提供了一种立体声信号处理方法,应用于立体声编解码器的解码端,该方法包括:
[0063]
根据接收到的码流确定当前帧的声道间时间差;所述当前帧的声道间时间差为所
述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差;
[0064]
若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标声道信号处于相同声道。
[0065]
根据本技术提供的方法,当确定当前帧的声道间时间差的符号与当前帧的前一帧的声道间时间差的符号不同时,根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理,使得当前帧的时延恢复处理能够按照真实的声道间时间差进行,保证了对齐效果更优,避免了现有技术中因为将当前帧的声道间时间差强制设置为零,而导致时延恢复处理后当前帧两个声道之间的相关性成分无法进行抵消,造成当前帧时域下混后的次要声道信号能量变大、影响解码后的信号质量的问题。
[0066]
可选的,所述根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理,包括:
[0067]
将所述当前帧的第一声道信号中第三处理长度的信号拉伸为第三对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第一声道信号;
[0068]
所述第三处理长度是根据所述当前帧的声道间时间差和所述第三对齐处理长度确定的,所述第三处理长度小于所述第三对齐处理长度。
[0069]
可选的,所述第三处理长度为所述第三对齐处理长度与所述当前帧的声道间时间差的绝对值之差。
[0070]
可选的,所述第三处理长度的信号的起始点位于所述第三对齐处理长度的信号的起始点之后、且所述第三处理长度的信号的起始点与第三对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0071]
可选的,所述第三处理长度的信号的起始点位于所述当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第三处理长度的信号的起始点与当前帧的第一声道信号的结束点之间的长度大于或等于所述第三对齐处理长度与当前帧的声道间时间差的绝对值之差。
[0072]
可选的,所述根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理,包括:
[0073]
将所述当前帧的第二声道信号中第四处理长度的信号压缩为第四对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第二声道信号;
[0074]
所述第四处理长度是根据所述前一帧的声道间时间差和所述第四对齐处理长度确定的,所述第四处理长度大于所述第四对齐处理长度。
[0075]
可选的,所述第四处理长度为所述前一帧的声道间时间差的绝对值与所述第四对齐处理长度之和。
[0076]
可选的,所述第四处理长度的信号的起始点位于所述第四对齐处理长度的信号的起始点之前、且所述第四处理长度的信号的起始点与第四对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。
[0077]
可选的,所述第四对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点或位于当前帧的第二声道信号的起始点之后,且所述第四对齐处理长度的信号的起始点与所述当前帧的第二声道信号的结束点之间的长度大于等于所述第四对齐处理长度。
[0078]
可选的,所述第四对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第四预设长度;所述第三对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第四预设长度与第四对齐处理长度之和。
[0079]
可选的,所述第三对齐处理长度为预先设定的长度;或者,所述第三对齐处理长度满足以下公式:
[0080][0081]
其中,l2_next_target为所述第三对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0082]
可选的,所述第四对齐处理长度为预先设定的长度;或者,所述第四对齐处理长度满足以下公式:
[0083][0084]
其中,l2_pre_target为所述第四对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0085]
可选的,所述时延对齐处理的处理长度为预先设定的长度;或者,所述时延对齐处理的处理长度满足以下公式:
[0086][0087]
其中,l为时延对齐处理的处理长度,max_delay_change为相邻帧声道间时间差的最大差值,l_init为预设的时延对齐处理的处理长度。
[0088]
本技术实施例提供一种立体声信号处理装置,可以执行实现上述方法提供的任意一种立体声信号处理方法。
[0089]
在一种可能的设计中,该立体声信号处理装置包括多个功能模块,例如包括处理单元和收发单元,用于实现上述提供的任意一种立体声信号处理方法,使得当确定当前帧的声道间时间差的符号与当前帧的前一帧的声道间时间差的符号不同时,根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理,使得当前帧的时延恢复处理能够按照真实的声道间时间差进行,保证了对齐效果更优,避免了现有技术中因为将当前帧的声道间时间差强制设置为零,而导致时延恢复处理后当前帧两个声道之间的相关性成分无法进行抵消,造成当前帧时域下混后的次要声道信号能量变大、影响解码后的信号质量的问题。
[0090]
本技术实施例提供一种立体声信号处理装置,所述装置包括:处理器和存储器,所述存储器存储了可执行指令,所述可执行指令用于指示所述处理器执行如下步骤:
[0091]
根据接收到的码流确定当前帧的声道间时间差;所述当前帧的声道间时间差为所述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差;
[0092]
若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标声道信号处于相同声道。
[0093]
可选的,所述可执行指令用于指示所述处理器在根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理时执行如下步骤:
[0094]
将所述当前帧的第一声道信号中第三处理长度的信号拉伸为第三对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第一声道信号;
[0095]
所述第三处理长度是根据所述当前帧的声道间时间差和所述第三对齐处理长度确定的,所述第三处理长度小于所述第三对齐处理长度。
[0096]
可选的,所述第三处理长度为所述第三对齐处理长度与所述当前帧的声道间时间差的绝对值之差。
[0097]
可选的,所述第三处理长度的信号的起始点位于所述第三对齐处理长度的信号的起始点之后、且所述第三处理长度的信号的起始点与第三对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0098]
可选的,所述第三处理长度的信号的起始点位于所述当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第三处理长度的信号的起始点与当前帧的第一声道信号的结束点之间的长度大于或等于所述第三对齐处理长度与当前帧的声道间时间差的绝对值之差。
[0099]
可选的,所述可执行指令用于指示所述处理器在根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理时执行如下步骤:
[0100]
将所述当前帧的第二声道信号中第四处理长度的信号压缩为第四对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第二声道信号;
[0101]
所述第四处理长度是根据所述前一帧的声道间时间差和所述第四对齐处理长度确定的,所述第四处理长度大于所述第四对齐处理长度。
[0102]
可选的,所述第四处理长度为所述前一帧的声道间时间差的绝对值与所述第四对齐处理长度之和。
[0103]
本技术实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述任意一种设计提供的立体声信号处理方法。
[0104]
本技术实施例还提供了一种系统,该系统包括上述任意一种设计提供的立体声信号处理装置,可选的,该系统还可以包括本技术实施例提供的方案中与所述立体声信号处理装置进行交互的其他设备。
[0105]
本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
[0106]
图1为本技术实施例提供的一种立体声信号处理方法流程示意图;
[0107]
图2为本技术实施例提供的一种立体声信号处理方法示意图;
[0108]
图3为本技术实施例提供的一种立体声信号处理方法示意图;
[0109]
图4为本技术实施例提供的一种立体声信号处理方法示意图;
[0110]
图5为本技术实施例提供的一种立体声信号处理方法示意图;
[0111]
图6为本技术实施例提供的一种立体声信号处理方法示意图;
[0112]
图7(a)为本技术实施例提供的一种立体声信号处理方法示意图;
[0113]
图7(b)为本技术实施例提供的一种立体声信号处理方法示意图;
[0114]
图8为本技术实施例提供的一种立体声信号处理方法示意图;
[0115]
图9为本技术实施例提供的一种立体声信号处理方法示意图;
[0116]
图10为本技术实施例提供的一种立体声信号处理方法示意图;
[0117]
图11为本技术实施例提供的一种立体声信号处理方法示意图;
[0118]
图12为本技术实施例提供的一种立体声信号处理方法示意图;
[0119]
图13为本技术实施例提供的一种立体声信号处理方法示意图;
[0120]
图14为本技术实施例提供的一种立体声信号处理装置结构法示意图;
[0121]
图15为本技术实施例提供的一种立体声信号处理装置结构法示意图;
[0122]
图16为本技术实施例提供的一种立体声信号处理装置结构法示意图;
[0123]
图17为本技术实施例提供的一种立体声信号处理装置结构法示意图。
具体实施方式
[0124]
下面将结合附图对本技术作进一步地详细描述。
[0125]
本技术实施例适用于音频信号特别是立体声信号的编码和解码。目前的立体声信号的编码主要包括以下过程:时域预处理、时延估计与编码、时延对齐、时域分析、下混参数提取与编码、时域下混处理、下混后的信号编码等。音频信号的解码过程可以与之相反,在此不再赘述。
[0126]
上述编码过程只是示例,实际的编码过程可能会有所变化,本技术实施例并不限定。本技术实施例主要是对时延对齐进行处理,下面进行详细描述,同时,上述编码过程的其他步骤可以参考现有技术中的描述,在此不再逐一举例说明。
[0127]
本技术实施例中,每一帧立体声信号包括左声道信号和右声道信号,且帧长为n,n为大于0的正整数。
[0128]
如图1所示,为本技术实施例提供的一种立体声信号处理方法流程示意图。
[0129]
参见图1,该方法包括:
[0130]
步骤101:对当前帧的立体声信号进行时延估计,确定所述当前帧的声道间时间差;所述当前帧的声道间时间差为所述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差。
[0131]
步骤102:若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标声道信号处于相同声道。
[0132]
其中,当前帧的前一帧与该当前帧是紧邻的两帧,在时序上是连续的。
[0133]
步骤101中,对当前帧进行时延估计的过程可以如下:
[0134]
第一步:对当前帧的左声道信号、右声道信号进行时域预处理。
[0135]
若立体声信号的采样率为16khz,一帧立体声信号持续长度为20ms,帧长记作n,则n=320,即帧长为320个样点。当前帧的立体声信号包括当前帧的左声道信号以及当前帧的右声道信号,当前帧的左声道信号记作x
l
(n),当前帧的右声道信号记作xr(n),其中n为样点序号,n=0,1,

,n-1。
[0136]
对当前帧的左声道信号、右声道信号进行时域预处理,具体地可以包括对当前帧的左声道信号、右声道信号进行高通滤波处理,得到当前帧预处理后的左声道信号、右声道信号,当前帧预处理后的左声道信号记作x
l_hp
(n),当前帧预处理后的右声道信号记作x
r_hp
(n),其中n为样点序号,n=0,1,

,n-1。高通滤波处理可以是截止频率为20hz的无限脉冲响应(infinite impulse response,iir)滤波器,也可是其他类型的滤波器。例如,采样率为16khz对应的截止频率为20hz的高通滤波器的传递函数为:
[0137][0138]
其中,b0=0.994461788958195,b1=-1.988923577916390,b2=0.994461788958195,a1=1.988892905899653,a2=-0.988954249933127,z为z变换的变换因子。相应的时域滤波后的信号为:
[0139]
x
l_hp
(n)=b0*x
l
(n)+b1*x
l
(n-1)+b2*x
l
(n-2)-a1*x
l_hp
(n-1)-a2*x
l_hp
(n-2)..(2)
[0140]
x
r_hp
(n)=b0*xr(n)+b1*xr(n-1)+b2*xr(n-2)-a1*x
r_hp
(n-1)-a2*x
r_hp
(n-2)..(3)
[0141]
需要说明的是,对当前帧的左声道信号、右声道信号进行时域预处理不是必须要做的。如果没有时域预处理的步骤,则用于进行时延估计和时延对齐处理的左声道信号和右声道信号就是原始立体声信号中的左声道信号和右声道信号。这里原始立体声信号中的左声道信号和右声道信号是指采集到的经过模数(analog to digital,a/d)转换后的脉冲编码调制(pulse code modulation,pcm)信号。同时,本技术实施例中,信号的采样率还可以为8khz、16khz、32khz、44.1khz以及48khz等,本技术实施例对此并不限定。
[0142]
当前帧预处理后的左声道信号记作当前帧预处理后的右声道信号记作其中n为样点序号,n=0,1,

,n-1。
[0143]
另外,预处理除了本技术实施例中描述的高通滤波处理,还可以为其它处理方式,如预加重处理等,本技术实施例对此并不限定。
[0144]
第二步:根据当前帧预处理后的左声道信号、右声道信号进行时延估计,获得当前帧的声道间时间差。
[0145]
举例来说,可以根据当前帧预处理后的左声道信号、右声道信号计算左右声道间的互相关系数。然后,确定互相关系数的最大值,根据互相关系数的最大值确定当前帧的声道间时间差。
[0146]
具体地:t
max
对应于当前采样率下声道间时间差取值的最大值,t
min
对应于当前采样率下声道间时间差取值的最小值。t
max
和t
min
为预先设定的实数,且t
max
大于t
min
。本技术实施例中,采样率为16khz时,t
max
=40,t
min
=-40。采样率为32khz时,t
max
=80,t
min
=-80,其他采样率的情况,t
max
和t
min
的取值不再赘述。
[0147]
左右声道间的互相关系数可以通过以下方式计算:
[0148]
若t
min
小于等于0,t
max
大于0,则在tmin≤i≤0范围内,左右声道间的互相关系数满足以下公式:
[0149][0150]
在0《i≤t
max
范围内,左右声道间的互相关系数满足以下公式:
[0151][0152]
其中,n为帧长,为当前帧预处理后的左声道信号,为当前帧预处理后的右声道信号,c(i)为左右声道间的互相关系数,i为互相关系数的索引值。
[0153]
若t
min
小于等于0,t
max
小于等于0,则在t
min
≤i≤t
max
范围内,左右声道间的互相关系数满足以下公式:
[0154][0155]
其中,n为帧长,为当前帧预处理后的左声道信号,为当前帧预处理后的右声道信号,c(i)为左右声道间的互相关系数,i为互相关系数的索引值。
[0156]
若设置的t
min
大于0,设置的t
max
大于0,则在t
min
《i≤t
max
范围内,左右声道间的互相关系数满足以下公式:
[0157][0158]
其中,n为帧长,为当前帧预处理后的左声道信号,为当前帧预处理后的右声道信号,c(i)为左右声道间的互相关系数,i为互相关系数的索引值。
[0159]
最后将得到互相关系数最大值对应的索引值,作为当前帧的声道间时间差。
[0160]
结合前面的描述,在本技术实施例中,t
max
等于40、t
min
等于-40时,在t
min
≤i≤t
max
范围内搜索左右声道间的互相关系数c(i)的最大值,将得到互相关系数最大值对应的索引值,作为当前帧的声道间时间差,记作cur_itd。
[0161]
在估计出当前帧的声道间时间差之后,对估计出的当前帧的声道间时间差进行量化编码,将量化后的编码索引写入码流,传输给解码端。可选的,将量化编码后的值作为当前帧的声道间时间差。
[0162]
除了上面描述的时延估计方法,还可以根据其他时延估计方法确定当前帧的声道间时间差,例如根据当前帧预处理后的左声道信号、右声道信号或者根据当前帧的左声道信号、右声道信号计算左右声道间的互相关系数,然后根据前m1个音频帧(m1为大于等于1的整数)的左右声道间的互相关系数以及计算出的当前帧的左右声道间的互相关系数进行长时平滑处理,得到平滑后的左右声道间的互相关系数,然后在t
min
≤i≤t
max
范围内搜索平滑后的左右声道间的互相关系数的最大值,得到最大值对应的索引值,作为当前帧的声道间时间差。再例如,还可以为对根据前m2个音频帧(m2为大于等于1的整数)的声道间时间差和当前帧估计出的声道间时间差进行帧间平滑处理,用平滑后的声道间时间差作为当前帧的声道间时间差。
[0163]
需要说明的是,本技术实施例中,将估计出的当前帧的声道间时间差作为最终确
定的当前帧的声道间时间差,但是估计当前帧的声道间时间差的方法包括但不限于上面描述的方法。
[0164]
步骤102中,符号可以是指正号(+)或负号(-)。本技术实施例中,前一帧位于当前帧之前,且与当前帧相邻。
[0165]
当确定当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同,则可以分别对当前帧的第一声道信号以及第二声道信号进行时延对齐处理,以下为了描述方便,将当前帧的第一声道信号对应的声道称为第一声道,将当前帧的第二声道信号对应的声道称为第二声道。需要说明的是,第一声道为当前帧的目标声道,还可以称为下一帧目标声道,也可以称作当前帧的指示目标声道,或者称为当前帧的前一帧目标声道之外的另一个声道。相应的,第二声道为当前帧的参考声道,第二声道为立体声信号的两个声道中与前一帧的目标声道相同的声道,还可以称为前一帧目标声道,也可以称作当前帧的指示参考声道,或者称为当前帧的目标声道之外的另一个声道。例如,前一帧的目标声道为左声道,则第一声道信号为当前帧中的右声道信号,第二声道信号为当前帧中的左声道信号;前一帧的目标声道为右声道,则第一声道信号为当前帧中的左声道信号,第二声道信号为当前帧中的右声道信号。
[0166]
本技术实施例中,目标声道和参考声道是专用术语,具体的,现有的根据声道间时间差进行时延对齐的算法,需要从左声道和右两个声道中选择一个声道,对选择出的声道的信号进行时延对齐处理,这个声道被称为目标声道;而另一个声道作为目标声道进行时延对齐处理的参考,被称为参考声道。而本技术实施例提出的方法中,当确定当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同时,需要对两个声道均进行时延对齐处理,因此当确定当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同时,所述的第一声道为当前帧的目标声道是广义上的当前帧的目标声道,需要进行时延对齐处理,所述的第二声道为当前帧的参考声道是广义上的当前帧的参考声道,也需要进行时延对齐处理。
[0167]
可选的,本技术实施例中,可以通过以下方式确定前一帧的目标声道和参考声道,从而确定第一声道和第二声道:若前一帧的声道间时间差小于0,则可以认为前一帧的目标声道为左声道,由于第二声道为立体声信号的两个声道中与前一帧的目标声道相同的声道,因此第二声道为左声道,第一声道为右声道;若前一帧的声道间时间差大于或等于0,则可以认为前一帧的目标声道为右声道,由于第二声道为立体声信号的两个声道中与前一帧的目标声道相同的声道,因此第二声道为右声道,第一声道为左声道。
[0168]
可选的,本技术实施例中,也可以通过以下方式确定当前帧的目标声道和参考声道,从而确定第一声道和第二声道:在确定当前帧的声道间时间差大于或等于0时,可以认为当前帧的目标声道为右声道,即第一声道为右声道,第二声道为左声道;在确定当前帧的声道间时间差小于0时,可以认为当前帧的目标声道为左声道,即第一声道为左声道,第二声道为右声道。
[0169]
可选的,本技术实施例中,还可以根据获取到的前一帧的目标声道索引或参考声道索引,直接确定前一帧的目标声道和参考声道,从而确定第一声道和第二声道。
[0170]
本技术实施例中,对第一声道信号以及第二声道信号进行时延对齐处理的方法有多种,下面分别描述。
[0171]
一、根据当前帧的声道间时间差对当前帧的第一声道信号进行时延对齐处理
[0172]
具体的,将所述当前帧的第一声道信号中第一处理长度的信号压缩为第一对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第一声道信号;其中,所述第一处理长度为根据所述当前帧的声道间时间差和所述第一对齐处理长度确定的,所述第一处理长度大于所述第一对齐处理长度。
[0173]
本技术实施例中,第一处理长度可以为当前帧的声道间时间差的绝对值与第一对齐处理长度之和。
[0174]
本技术实施例中,第一对齐处理长度可以用l_next_target表示。所述第一对齐处理长度小于或等于所述当前帧的帧长,第一对齐处理长度可以为预先设定的长度,也可以根据其他方式确定。第一对齐处理长度为预先设定的长度时,可以为l、l/2或者l/3或者是小于等于l的任意长度,l为时延对齐处理的处理长度,其中,所述时延对齐处理的处理长度小于或等于所述当前帧的帧长,即l为预设的小于或等于当前采样率下对应的帧长n的任意正整数,且大于声道间时间差绝对值的最大值的正整数,例如l=290,l=200等。在本技术实施例中,l可以针对不同的采样率设置不同的值,也可以采用统一的值。一般情况下,可以根据技术人员的经验预设一个值,例如采样率为16khz时,l设置为290,此时本技术实施例中,l_next_target=l/2=145。
[0175]
同时,本技术实施例中,所述第一处理长度的信号的起始点位于所述第一对齐处理长度的信号的起始点之前、且所述第一处理长度的信号的起始点与第一对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0176]
本技术实施例中,当前帧的声道间时间差为cur_itd,abs(cur_itd)表示当前帧的声道间时间差的绝对值,为了描述方便,以下部分描述中,将abs(cur_itd)称为第一时延长度。前一帧的声道间时间差为prev_itd,abs(prev_itd)表示前一帧的声道间时间差的绝对值,为了描述方便,以下部分描述中,将abs(prev_itd)称为第二时延长度。
[0177]
第一处理长度的信号的具体位置,可以根据不同实际情况确定,下面分别描述:
[0178]
第一种可能的情况:
[0179]
如图2所示,为本技术实施例提供的一种时延对齐处理示意图。图2中为描述方便,将时延对齐处理前第一声道信号中与压缩处理后第一声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。例如,时延对齐处理前和压缩处理后,当前帧的第一声道信号的起始点的坐标均标记为b1。
[0180]
结合图2,第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点b1。第一对齐处理长度的信号的结束点为c1,从起始点b1到结束点c1之间的长度等于第一对齐处理长度。其中b1=0,c1=b1+l_next_target-1。
[0181]
第一处理长度的信号的起始点a1位于第一对齐处理长度的信号的起始点b1之前,且所述第一处理长度的信号的起始点a1与所述第一对齐处理长度的信号的起始点b1之间的长度为当前帧的声道间时间差的绝对值。即a1=b1-abs(cur_itd)。第一处理长度的信号的结束点为c1,与第一对齐处理长度的信号的结束点的坐标相同。
[0182]
在进行时延对齐处理过程中,将第一声道的信号中从a1点到c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号,作为压缩处理后的第一声道信号中从起始点b1开始的第一对齐处理长度的信号。同时,当前帧的第一声道信号中
未被压缩的信号保持不变,即将时延对齐处理前第一声道信号中从c1+1点开始至e1点的信号,直接作为压缩处理后第一声道信号中从c1+1点开始至e1点的信号。e1为当前帧的第一声道信号的结束点,当前帧的帧长为n,e1=n-1。
[0183]
本技术实施例中,还可以根据当前帧的第二声道信号中从e2-abs(cur_itd)+1点至e2点的信号人工重建出第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的第一声道信号中从第e1+1点到g1点信号,其中,e2为当前帧的第二声道信号的结束点,e2=e1,g1=e1+abs(cur_itd)。
[0184]
需要说明的是,具体如何重建出第一时延长度的信号,本技术实施例对此并不限定,例如,可以直接将当前帧的第二声道信号中从e1-abs(cur_itd)+1点至e1点的信号直接作为重建出的第一时延长度的信号。
[0185]
最后,将压缩处理后的第一声道的信号中,从f1点开始的n个样点作为时延对齐处理后当前帧的第一声道信号,即时延对齐处理后当前帧的第一声道信号的起始点为f1点,结束点为g1点;f1点位于当前帧的第一声道信号的起始点之后,且与当前帧的第一声道信号的起始点之间的长度为第一时延长度;g1点位于当前帧的第一声道信号的结束点之后,且与当前帧的第一声道信号的结束点之间的长度为第一时延长度。即f1=b1+abs(cur_itd)。
[0186]
例如,结合图2,当前帧的第一声道为左声道、第二声道为右声道,则将左声道中从a1点至c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号作为压缩处理后左声道信号的前第一对齐处理长度的信号(即压缩处理后左声道信号的b1点至c1点的信号)。然后,将压缩处理前左声道信号中,从c1+1点至e1点的信号直接作为压缩处理后当前帧的左声道信号中从c1+1点至e1点的信号。然后,根据当前帧的右声道信号中从结束点之前的第一时延长度的信号(即当前帧的右声道信号的e1-abs(cur_itd)+1点至e1点信号)重建出第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后左声道信号中结束点之后的第一时延长度的信号(即压缩处理后左声道信号的e1+1点至g1点的信号)。最后,将压缩处理后的信号中从f1点至g1点的信号作为时延对齐处理后当前帧的左声道信号。
[0187]
当前帧的第一声道为右声道、第二声道为左声道时,可以参考前面的描述,在此不再赘述。
[0188]
第二种可能的情况:
[0189]
如图3所示,为本技术实施例提供的一种立体声信号处理示意图。图3中为描述方便,将时延对齐处理前第一声道信号中与压缩处理后第一声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。例如,时延对齐处理前和压缩处理后,当前帧的第一声道信号的起始点的坐标均标记为b1。
[0190]
结合图3,第一对齐处理长度的信号的起始点d1位于当前帧的第一声道信号的起始点b1之后,且所述第一对齐处理长度的信号的起始点d1与所述当前帧的第一声道信号结束点e1之间的长度大于或等于所述第一对齐处理长度。第一对齐处理长度的信号的结束点为c1,从起始点d1到结束点c1之间的长度等于第一对齐处理长度。其中c1=d1+l_next_target-1。
[0191]
图3中,当前帧的帧长为n,当前帧的第一声道信号的起始点b1=0,当前帧的第一
声道信号的结束点e1=n-1。第一对齐处理长度的起始点d1位于当前帧的第一声道信号的起始点b1之后,且所述第一对齐处理长度的信号的起始点d1与所述当前帧的第一声道信号结束点e1之间的长度大于或等于所述第一对齐处理长度。为描述方便,以下将第一对齐处理长度的信号的起始点d1与第一声道信号的起始点b1之间的长度称之为第一预设长度,第一预设长度大于0且小于或等于当前帧的帧长与所述第一对齐处理长度的差值,具体可以根据实际情况进行设置,在此不再赘述。
[0192]
第一处理长度的信号的起始点a1位于第一对齐处理长度的信号的起始点d1之前,且所述第一处理长度的信号的起始点a1与所述第一对齐处理长度的信号的起始点d1之间的长度为当前帧的声道间时间差的绝对值,即第一处理长度的信号的起始点a1=d1-abs(cur_itd),第一处理长度的信号的结束点为c1,与第一对齐处理长度的信号的结束点的坐标相同。
[0193]
本技术实施例中,在进行时延对齐处理过程中,对信号压缩的同时,可以将第一声道信号中,位于第一处理长度的信号的起始点之前的第一预设长度的信号,直接作为压缩处理后的第一声道信号中从起始点开始的第一预设长度的信号,即将第一声道信号中从h1点到a1-1点的信号作为压缩后的第一声道信号中从b1点到d1-1点的信号。其中,h1=b1-abs(cur_itd)。
[0194]
在对信号压缩的过程中,将第一声道信号中从a1点到c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号,作为压缩处理后的第一声道信号中从d1点开始的第一对齐处理长度的信号,即将压缩后获得的第一对齐处理长度的信号,直接作为压缩处理后第一声道信号中从d1点到c1点的信号。
[0195]
同时,当前帧的第一声道信号中未被压缩的信号保持不变,即将时延对齐处理前当前帧的第一声道信号中从c1+1点开始至e1点的信号,直接作为压缩处理后的第一声道信号中从c1+1点开始至e1点的信号。e1为当前帧的第一声道信号的结束点,当前帧的帧长为n,e1=n-1。
[0196]
本技术实施例中,还可以根据当前帧的第二声道信号中从e2-abs(cur_itd)+1点至e2点信号人工重建出的第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的第一声道信号的e1+1点至g1点的信号,其中,e2为当前帧的第二声道信号的结束点,e2=e1,g1=e1+abs(cur_itd)。
[0197]
需要说明的是,具体如何重建出第一时延长度的信号,本技术实施例对此并不限定,例如,可以直接将当前帧的第二声道信号中从e2-abs(cur_itd)+1点至e2点的信号直接作为重建出的第一时延长度的信号。
[0198]
最后,将压缩处理后的第一声道的信号中,从f1点开始的n个样点作为时延对齐处理后当前帧的第一声道信号,即时延对齐处理后当前帧的第一声道信号的起始点为f1点,结束点为g1点;f1=b1+abs(cur_itd),g1=e1+abs(cur_itd)。
[0199]
例如,结合图3,当前帧的第一声道为左声道、第二声道为右声道。将左声道的信号中从h1点至a1-1点的信号直接作为压缩处理后的左声道信号的从b1点至d1-1点的信号;将左声道信号中从a1点至c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号作为压缩处理后的左声道信号的d1点至c1点的信号。然后,将当前帧的左声道信号中,从c1+1点至e1点的信号,直接作为压缩处理后的左声道信号中从c1+1点至
e1点的信号;然后,根据当前帧的右声道信号中从e2-abs(cur_itd)+1点至e2点的信号人工重建出第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的左声道信号的e1+1点至g1点的信号。最后,将压缩处理后的信号中从f1点至g1点的信号作为时延对齐处理后当前帧的左声道信号。
[0200]
当前帧的第一声道为右声道、第二声道为左声道时,可以参考前面的描述,在此不再赘述。
[0201]
第三种可能的情况:
[0202]
如图4所示,为本技术实施例提供的一种立体声信号处理示意图。图4中为描述方便,将时延对齐处理前第一声道信号中与压缩处理后第一声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。例如,时延对齐处理前和压缩处理后,当前帧的第一声道信号的结束点的坐标均标记为e1。
[0203]
图4中,当前帧的帧长为n,当前帧的第一声道信号的起始点b1=0,当前帧的第一声道信号的结束点e1=n-1。第一对齐处理长度的起始点d1位于当前帧的第一声道信号的起始点b1之前,且与当前帧的第一声道信号的起始点b1之间的长度小于或等于过渡长度,且所述第一对齐处理长度的信号的起始点d1与所述当前帧的第一声道信号的结束点e1之间的长度大于或等于所述第一对齐处理长度与所述过渡长度之和。为了描述方便,本技术实施例以及图4中,将过渡段长度用ts表示。此时,d1=b1-ts,。第一对齐处理长度的信号的结束点为c1,从起始点d1到结束点c1之间的长度等于第一对齐处理长度。其中c1=d1+l_next_target-1。
[0204]
本技术实施例中,过渡段长度可以为预设的正整数,预设的正整数可以是相关技术人员凭经验设定的,过渡段长度一般小于或等于当前帧的声道间时间差的绝对值的最大值;过渡段长度也可以是根据当前帧的声道间时间差计算得到的,例如,过渡段长度为abs(cur_itd)/2。
[0205]
第一处理长度的信号的起始点a1位于第一对齐处理长度的信号的起始点d1之前,且所述第一处理长度的信号的起始点a1与所述第一对齐处理长度的信号的起始点d1之间的长度为当前帧的声道间时间差的绝对值,即第一处理长度的信号的起始点a1=d1-abs(cur_itd),第一处理长度的信号的结束点c1,与第一对齐处理长度的信号的结束点的坐标相同。
[0206]
需要说明的是,图4中是以所述第一对齐处理长度的信号的起始点d1与当前帧的第一声道信号的起始点b1之间的长度等于过渡长度为例进行说明,所述第一对齐处理长度的信号的起始点d1与当前帧的第一声道信号的起始点b1之间的长度还可以小于过渡长度,d1《b1且d1》b1。小于过渡长度的情况可以参考此处的描述,在此不再赘述。
[0207]
在进行时延对齐处理过程中,将第一声道信号中从a1点到c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号,作为压缩处理后的第一声道信号中从d1点开始的第一对齐处理长度的信号,即将压缩后获得的第一对齐处理长度的信号作为压缩处理后的第一声道信号中从d1点到c1点的信号。
[0208]
同时,当前帧的第一声道信号中未被压缩的信号保持不变,即将时延对齐处理前当前帧的第一声道信号中从c1+1点开始至e1点的信号,直接作为压缩处理后的第一声道信号中从c1+1点开始至e1点的信号。e1为当前帧的第一声道信号的结束点,当前帧的帧长为
n,e1=n-1。
[0209]
本技术实施例中,还可以根据当前帧的第二声道信号中从e2-abs(cur_itd)+1点至e2点信号人工重建出的第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的第一声道信号的e1+1点至g1点的信号,其中,e2为当前帧的第二声道信号的结束点,e2=e1,g1=e1+abs(cur_itd)。
[0210]
需要说明的是,具体如何重建出第一时延长度的信号,本技术实施例对此并不限定。
[0211]
最后,将压缩处理后的第一声道的信号中,从f1点开始的n个样点作为时延对齐处理后当前帧的第一声道信号,即时延对齐处理后当前帧的第一声道信号的起始点为f1点,结束点为g1点;其中f1=b1+abs(cur_itd)。
[0212]
例如,结合图4,当前帧的第一声道为左声道、第二声道为右声道。将左声道信号中从a1点至c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号作为压缩处理后的左声道信号中从d1点至c1点的信号。然后,将当前帧的左声道信号中,从c1+1点至e1点的信号,直接作为压缩处理后的左声道信号中从c1+1点至e1点的信号;然后,根据当前帧的右声道信号中从e2-abs(cur_itd)+1点至e2点信号人工重建出的第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的左声道信号的e1+1点至g1点的信号,其中,e2为当前帧的右声道信号的结束点。最后,将压缩处理后的信号中从f1点至g1点的信号作为时延对齐处理后当前帧的左声道信号。
[0213]
当前帧的第一声道为右声道、第二声道为左声道时,可以参考前面的描述,在此不再赘述。
[0214]
可选的,为了增加真实信号与人工重建信号之间的平滑,还可以设置一个平滑过渡段,平滑过渡段长度为ts2。平滑过渡段长度可以设置为预设的正整数,平滑过渡段长度与过渡段长度的差小于等于帧长与第一对齐处理长度的差,例如将ts2设置为10。
[0215]
此时,在进行时延对齐处理过程中,将第一声道信号中从a1点到c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号,作为压缩处理后的第一声道信号中从d1点开始的第一对齐处理长度的信号,即将压缩后获得的第一对齐处理长度的信号作为压缩处理后的第一声道信号中从d1点到c1点的信号。
[0216]
同时,将时延对齐处理前当前帧的第一声道信号中从c1+1点开始至e1-ts2点的信号,直接作为压缩处理后的第一声道信号中从c1+1点开始至e1-ts2点的信号。e1为当前帧的第一声道信号的结束点,当前帧的帧长为n,e1=n-1。根据当前帧的第二声道信号中从e2-abs(cur_itd)-ts2+1点至e2-abs(cur_itd)点信号人工重建出的平滑过渡段长度的信号,并将重建出的平滑过渡段长度的信号作为压缩处理后的第一声道信号的e1-ts2+1点至e1点的信号。
[0217]
本技术实施例中,还可以根据当前帧的第二声道信号中从e2-abs(cur_itd)+1点至e2点信号人工重建出的第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的第一声道信号的e1+1点至g1点的信号,其中,e2为当前帧的第二声道信号的结束点,e2=e1,g1=e1+abs(cur_itd)。
[0218]
需要说明的是,具体如何重建出第一时延长度的信号和平滑过渡段长度的信号,本技术实施例对此并不限定。
[0219]
需要说明的是,在第二种可能的情况中,也可以设置一个过渡段长度,具体设置过渡段长度的方法及步骤,以及设置过渡段长度之后对当前帧的第一声道信号进行的时延对齐处理的过程,可以参考前面的描述,在此不再赘述。在第二种可能的情况中,还可以设置一个过渡段长度和一个平滑过渡段长度,具体设置过渡段长度和平滑过渡段长度的方法及步骤,以及设置过渡段长度和平滑过渡段长度之后对当前帧的第一声道信号进行的时延对齐处理的过程,可以参考前面的描述。
[0220]
上述方法中,通过增加过渡段长度或者增加过渡段长度和平滑过渡段长度,实现增加帧与帧之间的平滑,提高了时延对齐处理后的当前帧中两个声道信号之间对齐的准确性,从而提高了编码质量。
[0221]
需要说明的是,本技术实施例中,对第一处理长度的信号进行压缩的方法可以是采用三次样条差值法进行压缩,可以是二次样条插值法进行压缩,可以使用线性差值法进行压缩,也可以是b样条插值法进行压缩,如二次b样条插值法,三次b样条插值法。本技术实施例对压缩的具体方法不作限定,可以采用任何一种技术进行处理。
[0222]
二、根据前一帧的声道间时间差对当前帧的第二声道信号进行时延对齐处理
[0223]
具体的,将所述第二声道信号中第二处理长度的信号拉伸为第二对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第二声道信号;其中,所述第二处理长度为根据所述前一帧的声道间时间差和所述第二对齐处理长度确定的,所述第二处理长度小于所述第二对齐处理长度。
[0224]
本技术实施例中,第二处理长度为所述第二对齐处理长度与所述前一帧的声道间时间差的绝对值之差。本技术实施例中,第二对齐处理长度可以用l_pre_target表示。
[0225]
第二对齐处理长度可以为预先设定的长度,也可以根据其他方式确定。所述第二对齐处理长度小于或等于所述当前帧的帧长,第二对齐处理长度为预先设定的长度时,可以为l、l/2或者l/3或者是小于等于l的任意长度,其中,l为预设的小于或等于当前采样率下对应的帧长n的任意正整数,且大于声道间时间差绝对值的最大值的正整数,例如l=290,l=200等。在本技术实施例中,l可以针对不同的采样率设置不同的值,也可以采用统一的值。一般情况下,可以根据技术人员的经验预设一个值,例如采样率为16khz时,l设置为290。本技术实施例中,l_pre_target=l/2=145。
[0226]
同时,所述第二处理长度的信号的起始点位于所述第二对齐处理长度的信号的起始点之后、且所述第二处理长度的信号的起始点与第二对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。
[0227]
第二处理长度的信号的具体位置,可以根据不同实际情况确定,下面分别描述:
[0228]
第一种可能的情况:
[0229]
如图5所示,为本技术实施例提供的一种立体声信号处理示意图。图5中为描述方便,将时延对齐处理前第二声道信号中与拉伸处理后的第二声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。例如,时延对齐处理前和压缩处理后,当前帧的第二声道信号的起始点的坐标均标记为b2。
[0230]
结合图5,当前帧的帧长为n,当前帧的第二声道信号的起始点b2=0,当前帧的第二声道信号的结束点e2=n-1。第二对齐处理长度的起始点位于当前帧的第二声道信号的起始点b2。第二对齐处理长度的信号的结束点为c2,从起始点b2到结束点c2之间的长度等
于第二对齐处理长度。其中,c2=b2+l_pre_target-1。
[0231]
第二处理长度的信号的起始点a2位于第二对齐处理长度的起始点b2之后,且与所述第二对齐处理长度的起始点b2之间的长度为前一帧的声道间时间差的绝对值。第二处理长度的信号的起始点a2=b2+abs(prev_itd),第二处理长度的信号的结束点为c2,与第二对齐处理长度的信号的结束点的坐标相同。
[0232]
在时延对齐处理过程中,将第二声道信号中从a2点到c2点的信号拉伸为第二对齐处理长度的信号,拉伸后获得的第二对齐处理长度的信号,作为拉伸处理后的第二声道信号中从起始点b2开始的第二对齐处理长度的信号,即将拉伸后获得的第二对齐处理长度的信号作为拉伸处理后的第二声道信号中从起始点b2到c2点的信号。
[0233]
本技术实施例中,在对信号拉伸的同时,可以保持当前帧的第二声道信号中未被拉伸的信号不变,即将当前帧的第二声道信号中从c2+1点开始至e2点的信号,直接作为拉伸处理后的第二声道信号中从c2+1点开始至e2点的信号。e2为当前帧的第二声道信号的结束点,当前帧的帧长为n,e2=n-1。
[0234]
最后,将拉伸处理后的第二声道信号中,从起始点b2点开始的n个样点作为时延对齐处理后当前帧的第二声道信号,即时延对齐处理后当前帧的第二声道信号的起始点为b2点,结束点为e2点。
[0235]
例如,结合图5,当前帧的第一声道为左声道、第二声道为右声道。将当前帧的右声道信号中从a2点至c2点的信号拉伸为第二对齐处理长度的信号,拉伸后获得的第二对齐处理长度的信号作为拉伸处理后的右声道信号的b2点至c2点的信号。然后,将当前帧的右声道信号中,从c2+1点至e2点的信号,直接作为拉伸处理后的右声道信号中从c2+1点至e2点的信号。最后,将拉伸处理后的信号中从b2点至e2点的信号作为时延对齐处理后当前帧的右声道信号。
[0236]
当前帧的第一声道为右声道、第二声道为左声道时,可以参考前面的描述,在此不再赘述。
[0237]
第二种可能的情况:
[0238]
如图6所示,为本技术实施例提供的一种立体声信号处理示意图。图6中为描述方便,将时延对齐处理前第二声道信号中与拉伸处理后第二声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。
[0239]
结合图6,当前帧的帧长为n,当前帧的第二声道信号的起始点b2=0,当前帧的第二声道信号的结束点e2=n-1。第二对齐处理长度的起始点位于当前帧的第二声道信号的起始点b2之后,且所述第二对齐处理长度的信号的起始点d2与所述当前帧的第二声道信号的结束点e2之间的长度大于或等于所述第二对齐处理长度,其中第二对齐处理长度的信号的结束点c2=d2+l_pre_target-1。为描述方便,以下将第二对齐处理长度的信号的起始点d2与第二声道信号的起始点b2之间的长度称之为第二预设长度,第二预设长度可以大于0且小于或等于当前帧的帧长与第二对齐处理长度的差值,具体可以根据实际情况进行设置,在此不再赘述。
[0240]
第二处理长度的信号的起始点a2位于第二对齐处理长度的起始点b2之后,且与所述第二对齐处理长度的起始点b2之间的长度为前一帧的声道间时间差的绝对值。第二处理长度的信号的起始点a2=d2+abs(prev_itd),第二处理长度的信号的结束点与第二对齐处
理长度的信号的结束点的坐标相同,c2=d2+l_pre_target-1。
[0241]
在时延对齐处理过程中,将第二声道信号中从h2=b2+abs(prev_itd)开始的第二预设长度的信号,直接作为拉伸处理后的第二声道信号中从起始点b2开始的第二预设长度的信号。即结合图6,将当前帧的第二声道信号中,从h2点至a2-1点的信号,直接作为拉伸处理后的第二声道信号中从b2点至d2-1点的信号。
[0242]
同时,将第二声道信号中从a2点到c2点的信号拉伸为第二对齐处理长度的信号,拉伸后获得的第二对齐处理长度的信号,作为拉伸处理后的第二声道信号中从d2点开始的第二对齐处理长度的信号,即将拉伸后获得的第二对齐处理长度的信号作为拉伸处理后的第二声道信号中从d2点到c2点的信号。
[0243]
本技术实施例中,在对信号拉伸的同时,可以保持当前帧的第二声道信号中未被拉伸的信号不变,即将当前帧的第二声道信号中从c2+1点开始至e2点的信号,直接作为拉伸处理后的第二声道信号中从c2+1点开始至e2点的信号。e2为当前帧的第二声道信号的结束点,当前帧的帧长为n,e2=n-1。
[0244]
最后,将拉伸处理后的第二声道信号中,从起始点b2点开始的n个样点作为时延对齐处理后当前帧的第二声道信号,即时延对齐处理后当前帧的第一声道信号的起始点为b2点,结束点为e2点。
[0245]
例如,结合图6,当前帧的第一声道为左声道、第二声道为右声道。在时延对齐处理过程中,将当前帧的右声道信号中,从h2点至a2-1点的信号,直接作为拉伸处理后的右声道信号中从b2点至d2-1点的信号;将当前帧的右声道信号中从a2点至c2点的信号拉伸为第二对齐处理长度的信号,拉伸后获得的第二对齐处理长度的信号作为拉伸处理后的右声道信号的d2点至c2点的信号。然后,将当前帧的右声道信号中,从c2+1点至e2点的信号,直接作为拉伸处理后的右声道信号中从c2+1点至e2点的信号。最后,将拉伸处理后的信号中从b2点至e2点的信号作为时延对齐处理后当前帧的右声道信号。
[0246]
当前帧的第一声道为右声道、第二声道为左声道时,可以参考前面的描述,在此不再赘述。
[0247]
需要说明的是,本技术实施例中,对第二处理长度的信号进行拉伸的方法可以是采用三次样条差值法进行拉伸,可以是二次样条插值法进行拉伸,可以使用线性差值法进行拉伸,也可以是b样条插值法进行拉伸,如二次b样条插值法,三次b样条插值法。本技术实施例对拉伸的具体方法不作限定,可以采用任何一种技术进行处理。
[0248]
本技术实施例中,在进行时延对齐处理之后,还可以量化编码当前帧的声道间时间差,获得当前帧的声道间时间差的编码索引,并将编码索引写入码流。需要说明的是,对当前帧的声道间时间差进行量化编码也可以在步骤101中进行,也可以在此处进行,本技术实施例对此并不限定。
[0249]
具体将编码索引写入码流的方法可以有很多种,本技术实施例不作限制。例如:可以是将当前帧的声道间时间差的绝对值进行量化编码后,将当前帧的声道间时间差的绝对值的编码索引写入码流,传输给解码端;同时将当前帧的目标声道的索引作为目标声道索引写入码流,或者将当前帧的参考声道的索引作为参考声道索引写入码流,传输给解码端。
[0250]
当前帧时延对齐处理后的左声道信号记作x

l
(n),当前帧时延对齐处理后的右声道信号记作x
′r(n),其中n为样点序号,n=0,1,

,n-1。根据当前帧的声道间时间差的符号
和前一帧的声道间时间差的符号,有可能是时延对齐处理后的第一声道信号为当前帧时延对齐处理后的左声道信号记作x

l
(n),也可能是时延对齐处理后的第二声道信号为当前帧时延对齐处理后的左声道信号记作x

l
(n)。同样,有可能是时延对齐处理后的第一声道信号为当前帧时延对齐处理后的右声道信号记作x
′r(n),也可能是时延对齐处理后的第二声道信号为当前帧时延对齐处理后的右声道信号记作x
′r(n)。
[0251]
最后,对时延对齐处理后的第一声道信号和时延对齐处理后的第二声道信号进行编码。
[0252]
具体地,可以使用现有的立体声编码方法对时延对齐处理后的第一声道信号和时延对齐处理后的第二声道信号进行编码,将编码得到的码流传输给解码端。本技术实施例不对其具体的编码方法作限定。
[0253]
可选的,本技术实施例中,第一对齐处理长度不为预先设定的长度时,可以满足以下公式:
[0254][0255]
其中,l_next_target为所述第一对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。|
·
|表示取绝对值。
[0256]
所述第二对齐处理长度不为预先设定的长度时,可以满足以下公式:
[0257][0258]
其中,l_pre_target为所述第二对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。l为预设的小于或等于当前采样率下对应的帧长n的任意正整数,且大于声道间时间差绝对值的最大值的正整数,例如l=290,l=200等。|
·
|表示取绝对值。
[0259]
可选的,本技术实施例中,时延对齐处理的处理长度不为预先设定的长度时,可以满足以下公式:
[0260][0261]
其中,l为时延对齐处理的处理长度,max_delay_change为相邻帧声道间时间差的最大差值,l_init为预设的时延对齐处理的处理长度,例如l_init可以大于或等于相邻帧声道间时间差的最大差值,且小于或等于所述当前帧的帧长,例如290或200等。|
·
|表示取绝对值。
[0262]
max_delay_change可以是大于0小于等于|t
max-t
min
|的正整数,t
max
对应于当前采样率下声道间时间差取值的最大值,t
min
对应于当前采样率下声道间时间差取值的最小值。例如,max_delay_change等于80、40或者20。在本技术实例中,max_delay_change可以为20。
[0263]
下面通过一个具体的实施例描述。
[0264]
步骤一:根据当前帧的立体声信号进行时延估计,确定当前帧的声道间时间差。
[0265]
该步骤的具体内容可以参考步骤101,在此不再赘述。
[0266]
步骤二:若所述当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不
同,则根据所述当前帧的声道间时间差对当前帧的第一声道信号进行时延对齐处理。
[0267]
步骤三:若所述当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同,根据所述前一帧的声道间时间差对当前帧的第二声道信号进行时延对齐处理。
[0268]
结合步骤二以及步骤三,所述第二对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第二预设长度;所述第一对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第二预设长度与第二对齐处理长度之和。同时,第一对齐处理长度满足公式(8),且第二对齐处理长度满足公式(9)。
[0269]
如图7(a)所示,为本技术实施例提供的一种立体声信号处理示意图。图7(a)中为描述方便,将时延对齐处理前第一声道信号中与时延对齐处理后第一声道信号中位置相同的点,采用相同的坐标进行标记;将时延对齐处理前第二声道信号中与时延对齐处理后的第二声道信号中位置相同的点,采用相同的坐标进行标记。
[0270]
当前帧的帧长为n,当前帧的第一声道信号的起始点为b1=0,当前帧的第一声道信号的结束点为e1=n-1,当前帧的第二声道信号的起始点b2=0,当前帧的第二声道信号的结束点e2=n-1。第一对齐处理长度的信号的起始点为d1=d2+l_pre_target,第一对齐处理长度的信号的结束点为c1=d1+l_next_target-1,第一处理长度的信号的起始点为a1=d1-abs(cur_itd),第一处理长度的信号的结束点与第一对齐处理长度的信号的结束点的坐标相同,为c1=d1+l_next_target-1。第二对齐处理长度的起始点为d2,第二对齐处理长度的结束点为c2=d2+l_pre_target-1;第二处理长度的信号的起始点为a2=d2+abs(prev_itd),第二处理长度的信号的结束点为c2=d2+l_pre_target-1。为描述方便,以下将第二对齐处理长度的信号的起始点d2与第二声道信号的起始点b2之间的长度称之为第二预设长度,第二预设长度可以大于0且小于或等于当前帧的帧长与第二对齐处理长度的差值,具体可以根据实际情况进行设置,在此不再赘述。此时对第一处理长度的信号进行压缩以及对第二处理长度的信号进行拉伸可以如图7(a)所示。
[0271]
结合图7(a),对于第一声道信号,在进行时延对齐处理过程中,将第一声道的信号中从h1点至a1-1点的信号直接作为压缩处理后的第一声道信号中从b1点至d1-1点的信号,其中h1=b1-abs(cur_itd);将当前帧的第一声道信号中从a1点至c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号作为压缩处理后的第一声道信号中d1点至c1点的信号。然后,将当前帧的第一声道信号中,从c1+1点至e1点的信号,直接作为压缩处理后的第一声道信号中从c1+1点至e1点的信号;然后,根据当前帧的第二声道信号中从结束点e2之前的第一时延长度的信号人工重建出第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的第一声道信号的e1+1点至g1点的信号,其中g1=e1+abs(cur_itd)-1。最后,将时延对齐处理后的信号中从f1点至g1点的信号作为时延对齐处理后当前帧的第一声道信号,f1=b1+abs(cur_itd)。
[0272]
对于第二声道信号,在进行时延对齐处理过程中,将第二声道信号中从h2=b2+abs(prev_itd)开始的第二预设长度的信号,直接作为拉伸处理后的第二声道信号中从起始点b2开始的第二预设长度的信号。即结合图7(a),将当前帧的第二声道信号中从h2点至a2-1点的信号,直接作为拉伸处理后的第二声道信号中从b2点至d2-1点的信号。将当前帧的第二声道信号中从a2点至c2点的信号拉伸为第二对齐处理长度的信号,拉伸后获得的第二对齐处理长度的信号作为拉伸处理后的第二声道信号的d2点至c2点的信号。然后,将当
前帧的第二声道信号中,从c2+1点至e2点的信号,直接作为拉伸处理后的第二声道信号中从c2+1点至e2点的信号。最后,将时延对齐处理后的信号中从b2点至e2点的信号作为时延对齐处理后当前帧的第二声道信号。
[0273]
结合图7(a),本技术实施例中第二对齐处理长度的起始点也可以为第二声道信号的起始点,即d2=b2,d1=b1+l_pre_target,此时对第一处理长度的信号进行压缩以及对第二处理长度的信号进行拉伸可以如图7(b)所示。
[0274]
如图7(b)所示,为本技术实施例提供的一种立体声信号处理示意图。图7(b)中为描述方便,将时延对齐处理前第一声道信号中与时延对齐处理后第一声道信号中位置相同的点,采用相同的坐标进行标记;将时延对齐处理前第二声道信号中与时延对齐处理后的第二声道信号中位置相同的点,采用相同的坐标进行标记。
[0275]
图7(b)中,当前帧的帧长为n,当前帧的第一声道信号的起始点为b1=0,当前帧的第一声道信号的结束点为e1=n-1;第一对齐处理长度的信号的起始点为d1=b1+l_pre_target,第一对齐处理长度的信号的结束点为c1=b1+l_pre_target+l_next_target-1,第一处理长度的信号的起始点为a1=b1+l_pre_target-abs(cur_itd),第一处理长度的信号的结束点与第一对齐处理长度的信号的结束点的坐标相同,为c1=b1+l_pre_target+l_next_target-1。
[0276]
当前帧的第二声道信号的起始点b2=0,当前帧的第二声道信号的结束点e2=n-1。第二对齐处理长度的起始点为第二声道信号的起始点b2,第二对齐处理长度的结束点为c2=b2+l_pre_target-1;第二处理长度的信号的起始点为a2=b2+abs(prev_itd),第二处理长度的信号的结束点为c2=b2+l_pre_target-1。
[0277]
结合图7(b),对于第一声道信号,在进行时延对齐处理过程中,将第一声道的信号中从h1点至a1-1点的信号直接作为压缩处理后的第一声道信号中从b1点至d1-1点的信号,其中h1=b1-abs(cur_itd);将当前帧的第一声道信号中从a1点至c1点的信号压缩为第一对齐处理长度的信号,压缩后获得的第一对齐处理长度的信号作为压缩处理后的第一声道信号中d1点至c1点的信号。然后,将当前帧的第一声道信号中,从c1+1点至e1点的信号,直接作为压缩处理后的第一声道信号中从c1+1点至e1点的信号;然后,根据当前帧的第二声道信号中从结束点e2之前的第一时延长度的信号人工重建出第一时延长度的信号,并将重建出的第一时延长度的信号作为压缩处理后的第一声道信号的e1+1点至g1点的信号,其中g1=e1+abs(cur_itd)-1。最后,将时延对齐处理后的信号中从f1点至g1点的信号作为时延对齐处理后当前帧的第一声道信号,f1=b1+abs(cur_itd)。
[0278]
对于第二声道信号,在进行时延对齐处理过程中,将当前帧的第二声道信号中从a2点至c2点的信号拉伸为第二对齐处理长度的信号,拉伸后获得的第二对齐处理长度的信号作为拉伸处理后的第二声道信号的b2点至c2点的信号。然后,将当前帧的第二声道信号中,从c2+1点至e2点的信号,直接作为拉伸处理后的第二声道信号中从c2+1点至e2点的信号。最后,将时延对齐处理后的信号中从b2点至e2点的信号作为时延对齐处理后当前帧的第二声道信号。
[0279]
为了增加帧与帧之间的平滑,也可以设置一个过渡段,过渡段长度为ts。可选的,还可以设置一个平滑过渡长度,平滑过渡段长度为ts2。具体方法参考前面的描述,这里不再赘述。
[0280]
本技术实施例中,若确定当前帧的声道间时间差的符号与前一帧的声道间时间差的符号相同,则可以根据当前帧的声道间时间差以及前一帧的声道间时间差对所述当前帧的目标声道的信号进行时延对齐处理,此时当前帧的目标声道与前一帧的目标声道为同一个声道。具体进行时延对齐处理的方法,本技术实施例对此并不限定。
[0281]
举例来说,一种可能的处理方法如下:
[0282]
第一步,将估计出的当前帧的声道间时间差,作为当前帧的声道间时间差。
[0283]
第二步,根据当前帧的声道间时间差和前一帧的声道间时间差选择当前帧的目标声道以及参考声道。当前帧的声道间时间差记作cur_itd,前一帧声道间时间差记作prev_itd。具体地可以是:如果cur_itd=0:则当前帧的目标声道与前一帧的目标声道保持一致。例如,当前帧的目标声道索引记作target_idx,前一帧的目标声道索引记作prev_target_idx,target_idx=prev_target_idx。如果cur_itd《0:则当前帧的目标声道为左声道。例如,当前帧的目标声道索引记作target_idx,target_idx=0。如果cur_itd》0:则当前帧的目标声道为右声道。例如,当前帧的目标声道索引记作target_idx,target_idx=1。
[0284]
同时,还可以将当前帧的目标声道索引编码写入码流,传输给解码端。
[0285]
第三步,根据当前帧的声道间时间差和前一帧的声道间时间差对选择的目标声道的信号进行时延对齐处理。具体地可以是:
[0286]
以目标声道所对应声道的经过预处理后的时域信号作为目标声道的信号,以参考声道所对应声道的经过预处理后的时域信号作为参考声道的信号。例如目标声道为左声道,则以左声道的经过预处理后的时域信号作为目标声道的信号,参考声道为右声道,则以右声道的经过预处理后的时域信号作为参考声道的信号。目标声道为右声道,则以右声道的经过预处理后的时域信号作为目标声道的信号,参考声道为左声道,则以左声道的经过预处理后的时域信号作为参考声道的信号。
[0287]
如果abs(cur_itd)等于abs(prev_itd),则不对目标声道的信号进行压缩或者拉伸处理,根据参考声道信号人工重建abs(cur_itd)点信号,作为目标声道的第b+n点到b+n+abs(cur_itd)-1点信号,直接将当前帧的目标声道信号时延abs(cur_itd)个样点,作为时延对齐处理后当前帧的目标声道信号。其中,其中b表示当前帧的目标声道信号中起始点的坐标,n表示当前帧的帧长,abs()表示取绝对值操作。直接将当前帧的参考声道信号作为将当前帧时延对齐处理后的参考声道信号。
[0288]
如果abs(cur_itd)小于abs(prev_itd),则将缓存的目标声道信号中从第b+abs(prev_itd)-abs(cur_itd)到第b+l-1点的信号拉伸为长度l点的信号,作为拉伸处理后的目标声道的前l点信号,将目标声道信号中从第b+l点到第b+n-1点的信号直接作为拉伸处理后的目标声道的第b+l点到第b+n-1点信号,根据参考声道信号人工重建abs(cur_itd)点信号,作为拉伸处理后的目标声道的第b+n点到第b+n+abs(cur_itd)-1点信号。将拉伸处理后的目标声道信号中从第b+abs(cur_itd)点开始的n点信号,作为时延对齐处理后当前帧的目标声道信号。将当前帧的参考声道信号直接作为时延对齐处理后当前帧的参考声道信号。其中b表示当前帧的目标声道信号中起始点的坐标,n表示当前帧的帧长,l为时延对齐处理的处理长度。
[0289]
如果abs(cur_itd)大于abs(prev_itd),则将缓存的目标声道信号中从第b+abs(prev_itd)-abs(cur_itd)到第b+l-1点的信号压缩为长度l点的信号,作为压缩处理后的
目标声道的前l点信号,将目标声道信号中从第b+l点到第b+n-1点的信号直接作为压缩处理后的目标声道的第b+l点到b+n-1点信号,根据参考声道信号人工重建abs(cur_itd)点信号,作为压缩处理后的目标声道的第b+n点到第b+n+abs(cur_itd)-1点信号。将压缩处理后的目标声道的从第b+abs(cur_itd)点开始的n点信号,作为时延对齐处理后当前帧的目标声道信号。将当前帧的参考声道信号直接作为时延对齐处理后当前帧的参考声道信号。其中b表示当前帧的目标声道信号中起始点的坐标,n表示当前帧的帧长,l为时延对齐处理的处理长度。
[0290]
为了增加帧与帧之间的平滑,这里可以设置一个过渡段,过渡段长度为ts。第一过渡段长度可以设置为预设的正整数,预设的正整数可以是相关技术人员凭经验设定的。例如,第一过渡段长度也可以是根据当前帧的声道间时间差计算得到的,例如,ts=abs(cur_itd)/2。同样,为了增加真实信号与重建信号之间的平滑,也可以设置一个平滑过渡段,平滑过渡段长度为ts2。平滑过渡段长度可以设置为预设的正整数,例如将ts2设置为10。则第三步根据估计出的当前帧的声道间时间差和前一帧声道间时间差对选择的目标声道的信号进行时延对齐处理,可以变为:
[0291]
如果abs(cur_itd)小于abs(prev_itd),则将缓存的目标声道信号中从第b-ts+abs(prev_itd)-abs(cur_itd)到第b+l-ts-1点的信号拉伸为长度l的信号,作为拉伸处理后的目标声道的第b-ts点到第b+l-ts-1点信号;将目标声道信号中从第b+l-ts点到第b+n-ts2-1点的信号直接作为拉伸处理后的目标声道的第b+l-ts点到第b+n-ts2-1点信号;根据参考声道信号以及目标声道信号产生ts2点信号,作为拉伸处理后的目标声道的第b+n-ts2点到第b+n-1点信号;根据参考声道信号人工重建abs(cur_itd)点信号,作为拉伸处理后的目标声道的第b+n点到第b+n+abs(cur_itd)-1点信号。将拉伸处理后的目标声道从第b+abs(cur_itd)点开始的n点信号,作为时延对齐处理后当前帧的目标声道信号。将当前帧的参考声道信号直接作为时延对齐处理后当前帧的参考声道信号。其中b表示当前帧的目标声道信号中起始点的坐标,n表示当前帧的帧长,l为时延对齐处理的处理长度。
[0292]
如果abs(cur_itd)大于abs(prev_itd),则将缓存的目标声道信号中从第b-ts+abs(prev_itd)-abs(cur_itd)到第b+l-ts-1点的信号压缩为长度l点的信号,作为压缩处理后的目标声道的第b-ts点到第b+l-ts-1点信号;将目标声道信号中从第b+l-ts点到第b+n-ts2-1点的信号直接作为压缩处理后的目标声道的第b+l-ts点到第b+n-ts2-1点信号;根据参考声道信号以及目标声道信号产生ts2点信号,作为压缩处理后的目标声道的第b+n-ts2点到第b+n-1点信号;根据参考声道信号人工重建abs(cur_itd)点信号,作为压缩处理后的目标声道的第b+n点到第b+n+abs(cur_itd)-1点信号。将压缩处理后的目标声道的从第b+abs(cur_itd)点开始的n点信号,作为时延对齐处理后当前帧的目标声道信号。将当前帧的参考声道信号直接作为时延对齐处理后当前帧的参考声道信号。其中b表示当前帧的目标声道信号中起始点的坐标,n表示当前帧的帧长,l为时延对齐处理的处理长度。
[0293]
其中,根据参考声道信号以及目标声道信号产生ts2点信号,作为压缩或者拉伸处理后的目标声道的第b+n-ts2点到b+n-1点信号,具体地可以是:根据目标声道中从第b+n-ts2点到b+n-1点的信号以及参考声道中从第b+n-abs(cur_itd)-ts2点到b+n-abs(cur_itd)-1点的信号产生ts2点信号,作为压缩或者拉伸处理后的目标声道的第b+n-ts2点到b+n-1点信号。根据参考声道信号人工重建abs(cur_itd)点信号,作为压缩或者拉伸处理后的
目标声道的第b+n点到b+n+abs(cur_itd)-1点信号,具体地可以是:根据参考声道中从第b+n-abs(cur_itd)点到b+n-1点的信号产生abs(cur_itd)点信号,作为压缩或者拉伸处理后的目标声道的第b+n点到b+n+abs(cur_itd)-1点信号。
[0294]
当前帧时延对齐处理后的左声道信号记作x

l
(n),当前帧时延对齐处理后的右声道信号记作x
′r(n),其中n为样点序号,n=0,1,

,n-1。根据当前帧的声道间时间差的符号,有可能是时延对齐处理后的目标声道信号为当前帧时延对齐处理后的左声道信号记作x

l
(n),也可能是时延对齐处理后的目标声道信号为当前帧时延对齐处理后的右声道信号记作x
′r(n)。同样,有可能是时延对齐处理后的参考声道信号为当前帧时延对齐处理后的左声道信号记作x

l
(n),也可能是时延对齐处理后的参考声道信号为当前帧时延对齐处理后的右声道信号记作x
′r(n)。
[0295]
最终获得的时延对齐处理后的信号用于时域下混处理,从而获得时域下混处理后的主要声道信号和次要声道信号,分别对主要声道信号和次要声道信号进行编码,从而实现对输入的立体声信号进行编码的目的。
[0296]
本技术实施例还可以适用于解码过程,解码过程可以视为编码过程的逆过程,下面详细描述。
[0297]
如图8所示,为本技术实施例提供的一种立体声信号处理方法,包括:
[0298]
步骤801:根据接收到的码流确定当前帧的声道间时间差;所述当前帧的声道间时间差为所述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差。
[0299]
步骤801中,还可以根据接收到的码流解码得到当前帧的第一声道信号和当前帧的第二声道信号。
[0300]
本技术实施例对解码得到当前帧的第一声道信号和当前帧的第二声道信号的方法不作限定,只要与编码端对时延对齐处理后的第一声道信号和时延对齐处理后的第二声道信号进行编码的编码方法相对应即可。解码得到的当前帧的第一声道信号,即时延恢复处理前的第一声道信号,对应与编码段经过编码后的时延对齐处理后的第一声道信号;解码得到的当前帧的第二声道信号,即时延恢复处理前的第二声道信号,对应与编码段经过编码后的时延对齐处理后的第二声道信号。
[0301]
步骤801中,解码当前帧的声道间时间差的方法要与编码端编码的方法相对应:例如,若编码端是将当前帧的声道间时间差的绝对值的编码索引和参考声道索引写入码流,传输给解码端,则解码端根据接收到的码流,解码得到当前帧的声道间时间差的绝对值以及参考声道索引。
[0302]
也可以是,若编码端是将当前帧的声道间时间差的绝对值的编码索引和目标声道索引写入码流,传输给解码端,则解码端根据接收到的码流,解码得到当前帧的声道间时间差的绝对值以及目标声道索引。
[0303]
还可以是,若编码端是将当前帧的声道间时间差的编码索引写入码流传输给解码端,则解码端根据接收到的码流,解码得到当前帧的声道间时间差。
[0304]
前一帧的声道间时间差的确定方式可以参考此处的描述,在此不再赘述。
[0305]
步骤802:若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢
复处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标声道信号处于相同声道。
[0306]
步骤802中,符号可以是指正号(+)或负号(-)。本技术实施例中,前一帧位于当前帧之前,且与当前帧相邻。以下为了描述方便,将当前帧的第一声道信号对应的声道称为第一声道,将当前帧的第二声道信号对应的声道称为第二声道。需要说明的是,第一声道为当前帧的目标声道,还可以称为下一帧目标声道,也可以称作当前帧的指示目标声道,或者称为当前帧的前一帧目标声道之外的另一个声道。相应的,第二声道为当前帧的参考声道,第二声道为立体声信号的两个声道中与前一帧的目标声道相同的声道,还可以称为前一帧目标声道,也可以称作当前帧的指示参考声道,或者称为当前帧的目标声道之外的另一个声道。例如,前一帧的目标声道为左声道,则第一声道信号为当前帧中的右声道信号,第二声道信号为当前帧中的左声道信号;前一帧的目标声道为右声道,则第一声道信号为当前帧中的左声道信号,第二声道信号为当前帧中的右声道信号。
[0307]
步骤802中,如果解码端根据接收到的码流,解码得到当前帧的声道间时间差,则可以直接判断当前帧的声道间时间差的符号与前一帧声道间时间差的符号是否相同。
[0308]
如果解码端根据接收到的码流,解码得到当前帧的声道间时间差的绝对值和当前帧的参考声道,或者当前帧的声道间时间差的绝对值和目标声道索引,则需要根据当前帧的参考声道和前一帧的参考声道索引,或者根据当前帧的目标声道和前一帧的目标声道索引判断当前帧的声道间时间差的符号与前一帧声道间时间差的符号是否相同。
[0309]
这里以解码得到当前帧的声道间时间差的绝对值以及参考声道索引为例,具体地:若当前帧的参考声道索引与前一帧的参考声道索引不相等,则确定当前帧的声道间时间差的符号与前一帧声道间时间差的符号不同;若当前帧的参考声道索引与前一帧的参考声道索引相等,则确定当前帧的声道间时间差的符号与前一帧声道间时间差的符号相同。其他情况可以参考此处的描述,在此不再赘述。
[0310]
解码端的时延恢复处理与编码端的时延对齐处理是对应的,编码端若进行了压缩,则解码端就需要将压缩后的信号进行拉伸,同理,编码端若进行了拉伸,则解码端就需要将拉伸后的信号进行压缩。
[0311]
本技术实施例中,在解码过程中,对第一声道信号以及第二声道信号进行时延恢复处理的方法有多种,下面分别描述。
[0312]
一、根据当前帧的声道间时间差对当前帧的第一声道信号进行时延恢复处理
[0313]
具体的,将所述当前帧的第一声道信号中第三处理长度的信号拉伸为第三对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第一声道信号。其中,所述第三处理长度为根据所述当前帧的声道间时间差和所述第三对齐处理长度确定的,所述第三处理长度小于所述第三对齐处理长度。
[0314]
解码过程中,所述第三处理长度可以为所述第三对齐处理长度与所述当前帧的声道间时间差的绝对值之差,第三对齐处理长度可以为预先设定的长度,也可以根据其他方式确定,例如根据公式(8)确定。本技术实施例中,所述第三对齐处理长度小于或等于所述当前帧的帧长。第三对齐处理长度为预先设定的时,可以为l、l/2或者l/3或者是小于等于l的任意长度,其中,l为预设的小于或等于当前采样率下对应的帧长n的任意正整数,且大于声道间时间差绝对值的最大值的正整数,例如l=290,l=200等。在本技术实施例中,l可以
针对不同的采样率设置不同的值,也可以采用统一的值。一般情况下,可以根据技术人员的经验预设一个值,例如采样率为16khz时,l设置为290,此时第三对齐处理长度为l/2=145。
[0315]
本技术实施例中,所述第三处理长度的信号的起始点位于所述第三对齐处理长度的信号的起始点之后、且所述第三处理长度的信号的起始点与第三对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0316]
本技术实施例中,第三对齐处理长度可以用l2_next_target表示,第四对齐处理长度可以用l2_pre_target表示。需要说明的是,编码端的第一对齐处理长度,与其对应的解码端的第三对齐处理长度实际上是相等的,相应的,编码端的第二对齐处理长度,与其对应的解码端的第四对齐处理长度实际上是相等的,为了描述方便,在此用不同的标记表示。当前帧的声道间时间差为cur_itd,abs(cur_itd)表示当前帧的声道间时间差的绝对值,为了描述方便,以下部分描述中,将abs(cur_itd)称为第一时延长度。前一帧的声道间时间差为prev_itd,abs(prev_itd)表示前一帧的声道间时间差的绝对值,为了描述方便,以下部分描述中,将abs(prev_itd)称为第二时延长度。
[0317]
解码过程中,第三处理长度的信号的具体位置,可以根据不同实际情况确定,下面分别描述:
[0318]
第一种可能的情况:
[0319]
如图9所示,为本技术实施例提供的一种立体声信号处理示意图。图9中为描述方便,将时延恢复处理前第一声道信号中与拉伸处理后第一声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。
[0320]
图9中,当前帧的帧长为n,当前帧的第一声道信号的起始点b3=0,当前帧的第一声道信号的结束点e3=n-1。第三处理长度的信号的起始点位于当前帧的第一声道信号的起始点b3,第三处理长度的信号的结束点c3=b3-abs(cur_itd)+l2_next_target-1。
[0321]
图9中,第三对齐处理长度的起始点a3=b3-abs(cur_itd),第三对齐处理长度的信号的结束点为c3,与第三处理长度的信号的结束点的坐标相同。
[0322]
在时延恢复处理过程中,结合图9,将当前帧的第一声道信号中从b3点到c3点的信号拉伸为第三对齐处理长度的信号,拉伸后获得的第三对齐处理长度的信号作为拉伸处理后的第一声道信号中从第三对齐处理长度的起始点a3开始的第三对齐处理长度的信号,即作为拉伸处理后的第一声道信号中从第三对齐处理长度的起始点a3到c3点的信号。
[0323]
本技术实施例中,在对信号拉伸的同时,可以将当前帧的第一声道信号中从c3+1点开始至e3点的信号,直接作为拉伸处理后的第一声道信号中从c3+1点开始至e3点的信号。
[0324]
最后,将拉伸处理后的第一声道信号中,从起始点a3点开始的n个样点作为时延恢复处理后当前帧的第一声道信号,即时延恢复处理后当前帧的第一声道信号的起始点为a3点,结束点为g3点,g3=e3-abs(cur_itd)。
[0325]
一般情况下,第三处理长度的信号的起始点还可以位于第一声道信号的起始点之后,但要保证第三处理长度的信号的起始点位于第一声道信号的起始点之后时,所述第三处理长度的信号的起始点与当前帧的第一声道信号的结束点之间的长度大于或等于所述第三对齐处理长度与当前帧的声道间时间差的绝对值之差,下面详细描述。
[0326]
第二种可能的情况:
[0327]
如图10所示,为本技术实施例提供的一种立体声信号处理示意图。图10中为描述方便,将时延恢复处理前第一声道信号中与拉伸处理后第一声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。
[0328]
图10中,当前帧的帧长为n,当前帧的第一声道信号的起始点b3=0,当前帧的第一声道信号的结束点e3=n-1。
[0329]
图10中,第三处理长度的起始点为d3,第三处理长度的信号的结束点c3=d3-abs(cur_itd)+l2_next_target-1,a3为第三对齐处理长度的信号的起始点a3=d3-abs(cur_itd),第三对齐处理长度的信号的结束点与第三处理长度的信号的结束点c3坐标相同,c3=a3+l2_next_target-1=d3-abs(cur_itd)+l2_next_target-1。第三处理长度的信号的起始点d3位于当前帧的第一声道信号的起始点b3之后,且所述第三处理长度的信号的起始点与当前帧的第一声道信号的结束点之间的长度大于或等于所述第三对齐处理长度与当前帧的声道间时间差的绝对值之差。第三处理长度的信号的起始点d3与当前帧的第一声道信号的起始点b3之间的长度为第三预设长度,第三预设长度可以根据实际情况确定,第三预设长度大于0且小于或等于当前帧的帧长与第三处理长度的差值。图10中,以第三预设长度大于当前帧的声道间时间差的绝对值为例进行说明,第三预设长度为其他情况时可以参考此处的描述。
[0330]
图10中,第三处理长度的信号的起始点d3点与当前帧的第一声道信号的起始点b3点之间的长度为第三预设长度,第三对齐处理长度的信号的起始点为a3点,a3=a3=d3-abs(cur_itd),h3点位于当前帧的第一声道信号的起始点b3之前,h3点与a3点之间的长度为第三预设长度,h3点与b3之间的长度为当前帧的声道间时间差的绝对值,即h3=b3-abs(cur_itd)。
[0331]
需要说明的是,a3点可以在当前帧的第一声道信号的起始点b3之前,且与当前帧的第一声道信号的起始点b3之间的长度小于或等于当前帧的声道间时间差的绝对值;a3点可以位于当前帧的第一声道信号的起始点b3;a3点还可以在当前帧的第一声道信号的起始点b3之后,且与当前帧的第一声道信号的起始点b3之间的长度小于或等于当前帧的帧长与第三对齐处理长度的差值,a3点在上述位置时可以参考此处的描述,在此不再赘述。
[0332]
在时延恢复处理过程中,可以将当前帧的第一声道信号中从起始点b3开始的第三预设长度的信号,作为第三对齐处理长度的起始点a3之前的第三预设长度的信号。结合图10,将当前帧的第一声道信号中从b3点至d3-1点的信号作为时延恢复处理后的第一声道信号中从h3至a3-1点的信号。
[0333]
然后,可以将当前帧的第一声道信号中从起始点开始的第三处理长度的信号拉伸为第三对齐处理长度的信号,并将拉伸获得的第三对齐处理长度的信号作为拉伸处理后的第一声道信号中以第三对齐处理长度的起始点开始的第三对齐处理长度的信号。结合图10,将当前帧的第一声道信号中从起始点d3至c3点的信号拉伸为第三对齐处理长度的信号,作为拉伸处理后的第一声道信号中从a3点至c3点的信号。
[0334]
然后,将当前帧的第一声道信号中从c3+1点至e3点的信号,作为拉伸处理后的第一声道信号中从c3+1点至e3点的信号。
[0335]
最后,将拉伸处理后的第一声道信号中从起始点h3开始的n点信号,作为时延恢复处理后当前帧的第一声道信号,时延恢复处理后当前帧的第一声道信号的起始点为h3点,
结束点为g3点,g3=e3-abs(cur_itd)。
[0336]
二、根据前一帧的声道间时间差对当前帧的第二声道信号进行时延恢复处理
[0337]
具体的,将所述当前帧的第二声道信号中第四处理长度的信号压缩为第四对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第二声道信号;其中所述第四处理长度为根据所述前一帧的声道间时间差和所述第四对齐处理长度确定的,所述第四处理长度大于所述第四对齐处理长度。
[0338]
本技术实施例中,所述第四处理长度可以为所述前一帧的声道间时间差的绝对值与所述第四对齐处理长度之和。同时,所述第四处理长度的信号的起始点位于所述第四对齐处理长度的信号的起始点之前、且所述第四处理长度的信号的起始点与第四对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。
[0339]
需要说明的是,第四对齐处理长度可以为预先设定的长度,也可以根据其他方式确定,例如根据公式(9)确定。本技术实施例中,所述第四对齐处理长度小于或等于所述当前帧的帧长,第四对齐处理长度为预先设定的时,可以为l、l/2或者l/3或者是小于等于l的任意长度。
[0340]
本技术实施例中,所述第四对齐处理长度的信号的起始点可以位于当前帧的第二声道信号的起始点,也可以位于当前帧的第二声道信号的起始点之后,但不论哪种情况,所述第四对齐处理长度的信号的起始点与所述当前帧的第二声道信号的结束点之间的长度大于或等于所述第四对齐处理长度,下面分别描述。
[0341]
第一种可能的情况:
[0342]
如图11所示,为本技术实施例提供的一种立体声信号处理示意图。图11中为描述方便,将时延恢复处理前第二声道信号中与压缩处理后第二声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。
[0343]
图11中,当前帧的帧长为n,当前帧的第二声道信号的起始点b4=0,当前帧的第二声道信号的结束点e4=n-1。
[0344]
第四对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点b4,第四对齐处理长度的信号的结束点为c4=b4+l2_pre_target-1。第四处理长度的信号的起始点为a4=b4-abs(prev_itd),第四处理长度的信号的结束点为c4,与第四对齐处理长度的信号的起始点的坐标相同。
[0345]
在时延恢复处理过程中,可以将以第四处理长度的信号的起始点为起点的第四处理长度的信号压缩为第四对齐处理长度的信号,将压缩获得的第四对齐处理长度的信号作为压缩处理后的第二声道信号中以b4点为起点的第四对齐处理长度的信号。结合图11,将a4点至c4点的信号压缩为第四对齐处理长度的信号,并将压缩获得的第四对齐处理长度的信号作为压缩处理后第二声道信号中从b4点至c4点的信号。
[0346]
然后,将当前帧的第二声道信号中从c4+1点至e4点的信号,作为压缩处理后第二声道信号中从c4+1点至e4点的信号。
[0347]
最后,将压缩处理后的第二声道信号中从起始点b4开始的n点信号,作为时延恢复处理后当前帧的第二声道信号,即时延对齐处理后当前帧的第二声道信号的起始点为b4点,结束点为e4点。
[0348]
第二种可能的情况:
[0349]
如图12所示,为本技术实施例提供的一种立体声信号处理示意图。图12中为描述方便,将时延恢复处理前当前帧的第二声道信号中与压缩处理后当前帧的第二声道信号中位置相同的点,采用相同的坐标进行标记,但不代表坐标相同的点的信号是相同的。
[0350]
图12中,当前帧的帧长为n,当前帧的第一声道信号的起始点b4=0,当前帧的第一声道信号的结束点e4=n-1。
[0351]
第四对齐处理长度的信号的起始点为d4,第四对齐处理长度的信号的结束点为c4=d4+l2_pre_target-1。所述第四对齐处理长度的信号的起始点d4位于当前帧的第二声道信号的起始点b4之后,且所述第四对齐处理长度的信号的起始点d4与所述当前帧的第二声道信号的结束点e4之间的长度大于等于所述第四对齐处理长度。
[0352]
为描述方便,将第四对齐处理长度的信号的起始点d4与当前帧的第二声道信号的起始点b4之间的长度为第四预设长度,第四预设长度大于0且小于或等于当前帧的帧长与第四对齐处理长度的差值。
[0353]
第四处理长度的信号的起始点a4=d4-abs(prev_itd),第四处理长度的信号的结束点为c4,与第四对齐处理长度的信号的起始点的坐标相同。
[0354]
图12中,h4点与a4点之间的长度为第四预设长度,与b4点之间的长度为前一帧的声道间时间差的绝对值,即h4=b4-abs(prev_itd)。
[0355]
在时延恢复处理过程中,可以将当前帧的第二声道信号中第四处理长度的信号的起始点之前的第四预设长度的信号,直接作为压缩处理后的第二声道信号中以b4点开始的第四预设长度的信号。结合图12,将h4点至a4-1点的信号,作为压缩处理后的第二声道信号中从b4点至d4-1点的信号。
[0356]
然后,可以将当前帧的第二声道信号中,以第四处理长度的信号的起始点为起点的第四处理长度的信号压缩为第四对齐处理长度的信号,将压缩获得的第四对齐处理长度的信号作为压缩处理后的第二声道信号中,以第四对齐处理长度的信号的起始点为起点的第四对齐处理长度的信号。结合图12,将当前帧的第二声道信号中a4点至c4点的信号压缩为第四对齐处理长度的信号,并将压缩获得的第四对齐处理长度的信号作为压缩处理后的第二声道信号中从d4点至c4点的信号。
[0357]
然后,将当前帧的第二声道信号中未被压缩的信号保持不变,即将当前帧的第二声道信号中从c4+1点至e4点的信号,作为压缩处理后的第二声道信号中从c4+1点至e4点的信号。
[0358]
最后,将压缩处理后的第二声道信号中从起始点b4开始的n点信号,作为时延恢复处理后当前帧的第二声道信号。
[0359]
下面通过一个具体的实施例描述。
[0360]
步骤一:根据接收到的码流确定当前帧的声道间时间差。
[0361]
该步骤的具体内容可以参考步骤801,在此不再赘述。
[0362]
步骤二:若所述当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对当前帧的第一声道信号进行时延恢复处理。
[0363]
步骤三:若所述当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同,根据所述前一帧的声道间时间差对当前帧的第二声道信号进行时延恢复处理。
[0364]
步骤二以及步骤三中,所述第四对齐处理长度的信号的起始点与当前帧的第二声
道信号的起始点之间的长度等于第四预设长度;所述第三对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第四预设长度与第四对齐处理长度之和。同时,第三对齐处理长度满足公式(8)、第四对齐处理长度满足公式(9)。此时对第三处理长度的信号进行拉伸以及对第四处理长度的信号进行压缩可以参考如图13所示。图13中,是以第四对齐处理长度的起始点位于当前帧的第一声道信号的起始点为例进行说明,第四对齐处理长度的起始点在其他位置时可以参考第四对齐处理长度的起始点位于当前帧的第二声道信号的起始点b4之后对第二声道信号进行时延恢复处理的描述及此处对第一声道信号进行时延恢复处理的描述,在此不再赘述。
[0365]
图13中,当前帧的帧长为n,当前帧的第二声道信号的起始点为b4=0,当前帧的第二声道信号的结束点为e4=n-1;第四对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点b4,第四对齐处理长度的信号的结束点为c4=b4+l2_pre_target-1,第四处理长度的信号的起始点为a4=b4-abs(prev_itd),第四处理长度的信号的结束点c4=b4+l2_pre_target-1。
[0366]
当前帧的第一声道信号的起始点为b3=0,当前帧的第一声道信号的结束点为e3=n-1;第三处理长度的信号的起始点为d3=b4+l2_pre_target,d3=c4+1,第三处理长度的信号的结束点c3=a3+l2_next_target-1,第三对齐处理长度的信号的起始点为a3=d3-abs(cur_itd),第三对齐处理长度的信号的结束点为c3=a3+l_next_target-1,。
[0367]
在时延恢复处理过程中,针对第一声道信号,将当前帧的第一声道信号中从b3点至d3-1点的信号直接作为拉伸处理后的第一声道信号中从h3至a3-1点的信号,h3=a3-l2_pre_target。
[0368]
然后,将当前帧的第一声道信号中从起始点d3至c3点的信号拉伸为第三对齐处理长度的信号,拉伸获得的第三对齐处理长度的信号作为拉伸处理后的第一声道信号中从a3点至c3点的信号。
[0369]
然后,将当前帧的第一声道信号中从c3+1点至e3点的信号,作为拉伸处理后的第一声道信号中从c3+1点至e3点的信号。
[0370]
最后,将拉伸处理后的第一声道信号中从起始点a3开始的n点信号,作为时延恢复处理后当前帧的第一声道信号,时延恢复处理后当前帧的第一声道信号的起始点为a3点,结束点为g3点,g3=e3-abs(cur_itd)。
[0371]
在时延恢复处理过程中,针对第二声道信号,将a4点至c4点的信号压缩为第四对齐处理长度的信号,并将压缩获得的第四对齐处理长度的信号作为压缩处理后第二声道信号中从b4点至c4点的信号。
[0372]
然后,将当前帧的第二声道信号中从c4+1点至e4点的信号,作为压缩处理后第二声道信号中从c4+1点至e4点的信号。
[0373]
最后,将压缩处理后的第二声道信号中从起始点b4开始的n点信号,作为时延恢复处理后当前帧的第二声道信号,即时延对齐处理后当前帧的第二声道信号的起始点为b4点,结束点为e4点。
[0374]
需要说明的是,本技术实施例中,对信号的拉伸或压缩的方法,并不限定,具体可以参考步骤101至步骤102中的描述,在此不再赘述。
[0375]
本技术实施例中,帧与帧存在过渡段长度时,也可以参考前面的描述,在此不再赘
述。
[0376]
基于相同的技术构思,本技术实施例还提供一种立体声信号处理装置,该立体声信号处理装置可执行图1所述的方法流程。
[0377]
如图14所示,本技术实施例提供一种立体声信号处理装置结构示意图。
[0378]
参见图14,该立体声信号处理装置1400包括:
[0379]
时延估计单元1401,用于根据当前帧的立体声信号进行时延估计,确定当前帧的声道间时间差;
[0380]
处理单元1402,用于若确定所述当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对当前帧的第一声道信号进行时延对齐处理、根据所述前一帧的声道间时间差对当前帧的第二声道信号进行时延对齐处理;所述第一声道信号为当前帧的目标声道信号,所述第二声道信号为所述当前帧的立体声信号中与前一帧的目标声道处于相同声道的信号。
[0381]
可选的,所述处理单元1402具体用于:
[0382]
将所述当前帧的第一声道信号中第一处理长度的信号压缩为第一对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第一声道信号;
[0383]
所述第一处理长度为根据所述当前帧的声道间时间差和所述第一对齐处理长度确定的,所述第一处理长度大于所述第一对齐处理长度。
[0384]
可选的,所述第一处理长度为所述当前帧的声道间时间差的绝对值与所述第一对齐处理长度之和。
[0385]
可选的,所述第一处理长度的信号的起始点位于所述第一对齐处理长度的信号的起始点之前、且所述第一处理长度的信号的起始点与第一对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0386]
可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号结束点之间的长度大于或等于所述第一对齐处理长度。
[0387]
可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点之前,且与当前帧的第一声道信号的起始点之间的长度小于或等于过渡长度,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号的结束点之间的长度大于或等于所述第一对齐处理长度与所述过渡长度之和,所述过渡长度小于或等于当前帧的声道间时间差的绝对值的最大值。
[0388]
可选的,所述处理单元1402具体用于:
[0389]
将所述当前帧的第二声道信号中第二处理长度的信号拉伸为第二对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第二声道信号;
[0390]
所述第二处理长度为根据所述前一帧的声道间时间差和所述第二对齐处理长度确定的,所述第二处理长度小于所述第二对齐处理长度。
[0391]
可选的,所述第二处理长度为所述第二对齐处理长度与所述前一帧的声道间时间差的绝对值之差。
[0392]
可选的,所述第二处理长度的信号的起始点位于所述第二对齐处理长度的信号的起始点之后、且所述第二处理长度的信号的起始点与第二对齐处理长度的信号的起始点之
间的长度为前一帧的声道间时间差的绝对值。
[0393]
可选的,所述第二对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点或位于当前帧的第二声道信号的起始点之后,且所述第二对齐处理长度的信号的起始点与所述当前帧的第二声道信号的结束点之间的长度大于或等于所述第二对齐处理长度。
[0394]
可选的,所述第二对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第二预设长度;所述第一对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第二预设长度与第二对齐处理长度之和。
[0395]
可选的,所述第一对齐处理长度小于或等于所述当前帧的帧长,所述第一对齐处理长度为预先设定的长度;或者,所述第一对齐处理长度满足以下公式:
[0396][0397]
其中,l_next_target为所述第一对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0398]
可选的,所述第二对齐处理长度小于或等于所述当前帧的帧长,所述第二对齐处理长度为预先设定的长度;或者,所述第二对齐处理长度满足以下公式:
[0399][0400]
其中,l_pre_target为所述第二对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0401]
可选的,所述时延对齐处理的处理长度小于或等于所述当前帧的帧长,所述时延对齐处理的处理长度为预先设定的长度;或者,所述时延对齐处理的处理长度满足以下公式:
[0402][0403]
其中,l为时延对齐处理的处理长度,max_delay_change为相邻帧声道间时间差的最大差值,l_init为预设的时延对齐处理的处理长度。
[0404]
基于相同的技术构思,本技术实施例还提供一种立体声信号处理装置,该立体声信号处理装置可执行图1所述的方法流程。
[0405]
如图15所示,本技术实施例提供一种立体声信号处理装置结构示意图。
[0406]
参见图15,该立体声信号处理装置1500包括:处理器1501、存储器1502。
[0407]
存储器1502存储了可执行指令,所述可执行指令用于指示所述处理器1501执行如下步骤:
[0408]
对当前帧的立体声信号进行时延估计,确定所述当前帧的声道间时间差;所述当前帧的声道间时间差为所述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差;
[0409]
若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标
声道信号处于相同声道。
[0410]
可选的,所述可执行指令用于指示所述处理器1501在根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延对齐处理时执行如下步骤:
[0411]
将所述当前帧的第一声道信号中第一处理长度的信号压缩为第一对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第一声道信号;
[0412]
所述第一处理长度是根据所述当前帧的声道间时间差和所述第一对齐处理长度确定的,所述第一处理长度大于所述第一对齐处理长度。
[0413]
可选的,所述第一处理长度为所述当前帧的声道间时间差的绝对值与所述第一对齐处理长度之和。
[0414]
可选的,所述第一处理长度的信号的起始点位于所述第一对齐处理长度的信号的起始点之前、且所述第一处理长度的信号的起始点与第一对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0415]
可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号结束点之间的长度大于或等于所述第一对齐处理长度。
[0416]
可选的,所述第一对齐处理长度的信号的起始点位于当前帧的第一声道信号的起始点之前,且与当前帧的第一声道信号的起始点之间的长度小于或等于过渡长度,且所述第一对齐处理长度的信号的起始点与所述当前帧的第一声道信号的结束点之间的长度大于或等于所述第一对齐处理长度与所述过渡长度之和,其中,所述过渡长度小于或等于当前帧的声道间时间差的绝对值的最大值。
[0417]
可选的,所述可执行指令用于指示所述处理器1501在根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延对齐处理时执行如下步骤:
[0418]
将所述当前帧的第二声道信号中第二处理长度的信号拉伸为第二对齐处理长度的信号,以获得时延对齐处理后的所述当前帧的第二声道信号;
[0419]
所述第二处理长度是根据所述前一帧的声道间时间差和所述第二对齐处理长度确定的,所述第二处理长度小于所述第二对齐处理长度。
[0420]
可选的,所述第二处理长度为所述第二对齐处理长度与所述前一帧的声道间时间差的绝对值之差。
[0421]
可选的,所述第二处理长度的信号的起始点位于所述第二对齐处理长度的信号的起始点之后、且所述第二处理长度的信号的起始点与第二对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。
[0422]
可选的,所述第二对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点或位于当前帧的第二声道信号的起始点之后,且所述第二对齐处理长度的信号的起始点与所述当前帧的第二声道信号的结束点之间的长度大于或等于所述第二对齐处理长度。
[0423]
可选的,所述第二对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第二预设长度;所述第一对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第二预设长度与第二对齐处理长度之和。
[0424]
可选的,所述第一对齐处理长度小于或等于所述当前帧的帧长,所述第一对齐处理长度为预先设定的长度;或者,所述第一对齐处理长度满足以下公式:
[0425][0426]
其中,l_next_target为所述第一对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0427]
可选的,所述第二对齐处理长度小于或等于所述当前帧的帧长,所述第二对齐处理长度为预先设定的长度;或者,所述第二对齐处理长度满足以下公式:
[0428][0429]
其中,l_pre_target为所述第二对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0430]
可选的,所述时延对齐处理的处理长度小于或等于所述当前帧的帧长,所述时延对齐处理的处理长度为预先设定的长度;或者,所述时延对齐处理的处理长度满足以下公式:
[0431][0432]
其中,l为时延对齐处理的处理长度,max_delay_change为相邻帧声道间时间差的最大差值,l_init为预设的时延对齐处理的处理长度。
[0433]
基于相同的技术构思,本技术实施例还提供一种立体声信号处理装置,该立体声信号处理装置可执行图8所述的方法流程。
[0434]
如图16所示,本技术实施例提供一种立体声信号处理装置结构示意图。
[0435]
参见图16,该立体声信号处理装置1600包括:
[0436]
收发单元1601,用于根据接收到的码流确定当前帧的声道间时间差;
[0437]
处理单元1602,用于若所述当前帧的声道间时间差的符号与前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对当前帧的第一声道信号进行时延恢复处理、根据所述前一帧的声道间时间差对当前帧的第二声道信号进行时延恢复处理;所述第一声道信号为当前帧的目标声道信号,所述第二声道信号为所述当前帧的立体声信号中与前一帧的目标声道处于相同声道的信号。
[0438]
可选的,所述处理单元1602具体用于:
[0439]
将所述当前帧的第一声道信号中第三处理长度的信号拉伸为第三对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第一声道信号;
[0440]
所述第三处理长度为根据所述当前帧的声道间时间差和所述第三对齐处理长度确定的,所述第三处理长度小于所述第三对齐处理长度。
[0441]
可选的,所述第三处理长度为所述第三对齐处理长度与所述当前帧的声道间时间差的绝对值之差。
[0442]
可选的,所述第三处理长度的信号的起始点位于所述第三对齐处理长度的信号的起始点之后、且所述第三处理长度的信号的起始点与第三对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0443]
可选的,所述第三处理长度的信号的起始点位于所述当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第三处理长度的信号的起始点与
当前帧的第一声道信号的结束点之间的长度大于或等于所述第三对齐处理长度与当前帧的声道间时间差的绝对值之差。
[0444]
可选的,所述处理单元1602具体用于:
[0445]
将所述当前帧的第二声道信号中第四处理长度的信号压缩为第四对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第二声道信号;
[0446]
所述第四处理长度为根据所述前一帧的声道间时间差和所述第四对齐处理长度确定的,所述第四处理长度大于所述第四对齐处理长度。
[0447]
可选的,所述第四处理长度为所述前一帧的声道间时间差的绝对值与所述第四对齐处理长度之和。
[0448]
可选的,所述第四处理长度的信号的起始点位于所述第四对齐处理长度的信号的起始点之前、且所述第四处理长度的信号的起始点与第四对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。
[0449]
可选的,所述第四对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点或位于当前帧的第二声道信号的起始点之后,且所述第四对齐处理长度的信号的起始点与所述当前帧的第二声道信号的结束点之间的长度大于等于所述第四对齐处理长度。
[0450]
可选的,所述第四对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第四预设长度;所述第三对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第四预设长度与第四对齐处理长度之和。
[0451]
可选的,所述第三对齐处理长度小于或等于所述当前帧的帧长,所述第三对齐处理长度为预先设定的长度;或者,所述第三对齐处理长度满足以下公式:
[0452][0453]
其中,l2_next_target为所述第三对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0454]
可选的,所述第四对齐处理长度小于或等于所述当前帧的帧长,所述第四对齐处理长度为预先设定的长度;或者,所述第四对齐处理长度满足以下公式:
[0455][0456]
其中,l2_pre_target为所述第四对齐处理长度,cur_itd为所述当前帧的声道间时间差,prev_itd为所述前一帧的声道间时间差,l为时延对齐处理的处理长度。
[0457]
可选的,所述时延对齐处理的处理长度小于或等于所述当前帧的帧长,所述时延对齐处理的处理长度为预先设定的长度;或者,所述时延对齐处理的处理长度满足以下公式:
[0458][0459]
其中,l为时延对齐处理的处理长度,max_delay_change为相邻帧声道间时间差的最大差值,l_init为预设的时延对齐处理的处理长度。
[0460]
基于相同的技术构思,本技术实施例还提供一种立体声信号处理装置,该立体声信号处理装置可执行图8所述的方法流程。
[0461]
如图17所示,本技术实施例提供一种立体声信号处理装置结构示意图。
[0462]
参见图17,该立体声信号处理装置1700包括:处理器1701、存储器1702。
[0463]
存储器1702存储了可执行指令,所述可执行指令用于指示所述处理器1701执行如下步骤:
[0464]
根据接收到的码流确定当前帧的声道间时间差;所述当前帧的声道间时间差为所述当前帧的第一声道信号与所述当前帧的第二声道信号之间的时间差;
[0465]
若所述当前帧的声道间时间差的符号与所述当前帧的前一帧的声道间时间差的符号不同,则根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理、根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理;所述第一声道信号为所述当前帧的目标声道信号,所述第二声道信号与所述前一帧的目标声道信号处于相同声道。
[0466]
可选的,所述可执行指令用于指示所述处理器1701在根据所述当前帧的声道间时间差对所述当前帧的第一声道信号进行时延恢复处理时执行如下步骤:
[0467]
将所述当前帧的第一声道信号中第三处理长度的信号拉伸为第三对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第一声道信号;
[0468]
所述第三处理长度为根据所述当前帧的声道间时间差和所述第三对齐处理长度确定的,所述第三处理长度小于所述第三对齐处理长度。
[0469]
可选的,所述第三处理长度为所述第三对齐处理长度与所述当前帧的声道间时间差的绝对值之差。
[0470]
可选的,所述第三处理长度的信号的起始点位于所述第三对齐处理长度的信号的起始点之后、且所述第三处理长度的信号的起始点与第三对齐处理长度的信号的起始点之间的长度为当前帧的声道间时间差的绝对值。
[0471]
可选的,所述第三处理长度的信号的起始点位于所述当前帧的第一声道信号的起始点或位于当前帧的第一声道信号的起始点之后,且所述第三处理长度的信号的起始点与当前帧的第一声道信号的结束点之间的长度大于或等于所述第三对齐处理长度与当前帧的声道间时间差的绝对值之差。
[0472]
可选的,所述可执行指令用于指示所述处理器1701在根据所述前一帧的声道间时间差对所述当前帧的第二声道信号进行时延恢复处理时执行如下步骤:
[0473]
将所述当前帧的第二声道信号中第四处理长度的信号压缩为第四对齐处理长度的信号,以获得时延恢复处理后的所述当前帧的第二声道信号;
[0474]
所述第四处理长度为根据所述前一帧的声道间时间差和所述第四对齐处理长度确定的,所述第四处理长度大于所述第四对齐处理长度。
[0475]
可选的,所述第四处理长度为所述前一帧的声道间时间差的绝对值与所述第四对齐处理长度之和。
[0476]
可选的,所述第四处理长度的信号的起始点位于所述第四对齐处理长度的信号的起始点之前、且所述第四处理长度的信号的起始点与第四对齐处理长度的信号的起始点之间的长度为前一帧的声道间时间差的绝对值。
[0477]
可选的,所述第四对齐处理长度的信号的起始点位于当前帧的第二声道信号的起始点或位于当前帧的第二声道信号的起始点之后,且所述第四对齐处理长度的信号的起始
点与所述当前帧的第二声道信号的结束点之间的长度大于等于所述第四对齐处理长度。
[0478]
可选的,所述第四对齐处理长度的信号的起始点与当前帧的第二声道信号的起始点之间的长度等于第四预设长度;所述第三对齐处理长度的信号的起始点与当前帧的第一声道信号的起始点之间的长度等于第四预设长度与第四对齐处理长度之和。
[0479]
本技术实施例还提供了一种计算机可读存储介质,用于存储为执行上述处理器所需执行的计算机软件指令,其包含用于执行上述处理器所需执行的程序。
[0480]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
[0481]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0482]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0483]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1