CN112151045B - 一种立体声编码方法、立体声解码方法和装置 - Google Patents
一种立体声编码方法、立体声解码方法和装置 Download PDFInfo
- Publication number
- CN112151045B CN112151045B CN201910581386.2A CN201910581386A CN112151045B CN 112151045 B CN112151045 B CN 112151045B CN 201910581386 A CN201910581386 A CN 201910581386A CN 112151045 B CN112151045 B CN 112151045B
- Authority
- CN
- China
- Prior art keywords
- channel signal
- pitch period
- secondary channel
- value
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 193
- 238000012545 processing Methods 0.000 claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 claims description 33
- 238000004458 analytical method Methods 0.000 claims description 32
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 36
- 238000004891 communication Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 21
- 238000013139 quantization Methods 0.000 description 18
- 238000007781 pre-processing Methods 0.000 description 13
- 238000012937 correction Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000005311 autocorrelation function Methods 0.000 description 6
- 238000005314 correlation function Methods 0.000 description 6
- 230000005284 excitation Effects 0.000 description 6
- 238000011022 operating instruction Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 230000001052 transient effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000009432 framing Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/09—Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/90—Pitch determination of speech signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例公开了一种立体声编码方法、立体声解码方法和装置,用于提高立体声的编解码性能。本申请实施例提供的立体声编码方法,包括:对当前帧的左声道信号和所述当前帧的右声道信号进行下混处理,以得到所述当前帧的主要声道信号和所述当前帧的次要声道信号;当确定所述帧结构相似性值在所述帧结构相似性区间内时,使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,以得到所述次要声道信号的基音周期索引值,所述次要声道信号的基音周期索引值用于生成待发送的立体声编码码流。
Description
技术领域
本申请涉及立体声技术领域,尤其涉及一种立体声编码方法、立体声解码方法和装置。
背景技术
目前,单声道音频已无法满足人们对高质量音频的需求。相对于单声道音频,立体声音频具有各声源的方位感和分布感,能够提高信息的清晰度、可懂度及临场感,因而备受人们青睐。
为了利用有限的带宽更好地传输立体声信号,通常需要先对立体声信号进行编码,然后将编码处理后得到的码流通过信道传输到解码端。在解码端根据接收到的码流进行解码处理,以得到解码后的立体声信号,该立体声信号可用于回放。
立体声编解码技术有很多不同的实现方法,例如在编码端将时域信号下混为两路单声道信号。通常先将左右声道信号下混为主要声道信号以及次要声道信号。然后,分别对主要声道信号及次要声道信号采用单声道编码方法进行编码。对于主要声道信号,通常用较多的比特数进行编码;对于次要声道信号,通常用较少的比特数进行编码。解码时,通常是根据接收到的码流分别解码主要声道信号和次要声道信号,然后进行时域上混处理,以得到解码后的立体声信号。
对于立体声信号来说,区别于单声道信号的重要特征就是声音具有声像信息,使得声音空间感更强。在立体声信号中,次要声道信号的准确性能够更好地体现立体声信号的空间感,同时次要声道编码的准确性对立体声声像的稳定性也起着很重要的作用。
在立体声编码中,基音周期作为体现人类语音产生的重要特征,是主要声道信号编码和次要声道信号编码的重要参数。基音周期参数预测值的准确性会影响整个立体声的编码质量。在时域或频域下的立体声编码中,对输入信号进行分析后可以获得立体声参数及主要声道信号和次要声道信号。在编码速率比较高的情况下(例如32kbps及更高速率),编码器对主要声道信号和次要声道信号采取独立编码的方式分别进行编码。这就需要使用较多的比特数对次要声道信号的基音周期进行编码,因此会造成编码比特的浪费,进而减少了立体声编码中其他编码参数分配到的比特资源,使得立体声编码的总体编码性能较低。相应的,立体声解码的解码性能也较低。
发明内容
本申请实施例提供了一种立体声编码方法、立体声解码方法和装置,用于提高立体声的编解码性能。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种立体声编码方法,包括:对当前帧的左声道信号和所述当前帧的右声道信号进行下混处理,以得到所述当前帧的主要声道信号和所述当前帧的次要声道信号;当确定所述帧结构相似性值在所述帧结构相似性区间内时,使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,以得到所述次要声道信号的基音周期索引值,所述次要声道信号的基音周期索引值用于生成待发送的立体声编码码流。本申请实施例中由于使用了主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分编码,因此不需要再对次要声道信号的基音周期进行独立编码,因此可以使用少量比特资源分配给次要声道信号的基音周期进行差分编码,通过对次要声道信号的基音周期进行差分编码,可以提高立体声信号的空间感和声像稳定性。另外,本申请实施例中采用较小的比特资源进行了次要声道信号的基音周期的差分编码,因此可以将节省的比特资源用于立体声的其他编码参数,进而提升了次要声道的编码效率,最终提升了整体的立体声编码质量。
在一种可能的实现方式中,所述方法还包括:根据所述主要声道信号和所述次要声道信号获取信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;当所述信号类型标识为预设的第一标识、且所述帧结构相似性值在所述帧结构相似性区间内时,将所述次要声道基音周期复用标识配置为第二标识,所述第一标识和所述第二标识用于生成所述立体声编码码流。其中,编码端根据主要声道信号和次要声道信号获取信号类型标识,例如主要声道信号和次要声道信号中携带有信号的模式信息,基于该信号的模式信息确定信号类型标识的取值。信号类型标识用于标识主要声道信号的信号类型和次要声道信号的信号类型,该信号类型标识同时指示了主要声道信号的信号类型和次要声道信号的信号类型。次要声道基音周期复用标识的取值可根据帧结构相似性值是否在帧结构相似性区间内进行配置,次要声道基音周期复用标识用于指示次要声道信号的基音周期采用差分编码或者采用独立编码。
在一种可能的实现方式中,所述方法还包括:当确定所述帧结构相似性值不在所述帧结构相似性区间内时,或者当所述信号类型标识为预设的第三标识时,将所述次要声道基音周期复用标识配置为第四标识,所述第四标识和所述第三标识用于生成所述立体声编码码流;对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行编码。其中,次要声道基音周期复用标识可以具有多种标识配置方式,例如次要声道基音周期复用标识可以为预设的第二标识,或者配置为第四标识。接下来对次要声道基音周期复用标识的配置方法进行举例说明,首先判断信号类型标识是否为预设的第一标识,若信号类型标识为预设的第一标识,确定帧结构相似性值是否在预设的帧结构相似性区间内,当确定帧结构相似性值不在帧结构相似性区间内时,将次要声道基音周期复用标识配置为第四标识。通过次要声道基音周期复用标识指示第四标识,可以使得解码端确定可以对次要声道信号的基音周期进行独立解码。另外,判断信号类型标识为预设的第一标识或第三标识,若信号类型标识为预设的第三标识,直接对次要声道信号的基音周期和主要声道信号的基音周期分别进行编码,即对次要声道信号的基音周期进行独立编码。
在一种可能的实现方式中,所述帧结构相似性值通过如下方式确定:对所述当前帧的次要声道信号进行开环基音周期分析,以得到所述次要声道信号的开环基音周期估计值;根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;根据所述次要声道信号的开环基音周期估计值和所述次要声道信号的闭环基音周期参考值,确定所述帧结构相似性值。在本申请实施例中,在获取到当前帧的次要声道信号之后,可以对次要声道信号进行开环基音周期分析,从而可以得到次要声道信号的开环基音周期估计值,由于次要声道信号的闭环基音周期参考值是以主要声道信号的基音周期估计值来确定的参考值,因此只要比较次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值的差异性,就可以使用次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值计算出主要声道信号和次要声道信号之间的帧结构相似性值。
在一种可能的实现方式中,所述根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值,包括:根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分loc_frac_prim;通过如下方式计算出所述次要声道信号的闭环基音周期参考值f_pitch_prim:f_pitch_prim=loc_T0+loc_frac_prim/N;其中,所述N表示所述次要声道信号被划分的子帧个数。本申请实施例中,根据主要声道信号的基音周期估计值首先确定次要声道信号的闭环基音周期整数部分和闭环基音周期分数部分,举例说明如下,直接将主要声道信号的基音周期估计值的整数部分作为次要声道信号的闭环基音周期整数部分,将主要声道信号的基音周期估计值的分数部分作为次要声道信号的闭环基音周期分数部分,还可以采用插值方法将主要声道信号的基音周期估计值映射为次要声道信号的闭环基音周期整数部分和闭环基音周期分数部分。不限定的是,本申请实施例中计算次要声道信号的闭环基音周期参考值可以不限于上述公式。
在一种可能的实现方式中,所述根据所述次要声道信号的开环基音周期估计值和所述次要声道信号的闭环基音周期参考值,确定所述帧结构相似性值,包括:通过如下方式计算出所述帧结构相似性值ol_pitch:ol_pitch=T_op﹣f_pitch_prim;其中,所述T_op表示所述次要声道信号的开环基音周期估计值,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值。本申请实施例中,T_op表示次要声道信号的开环基音周期估计值,f_pitch_prim表示次要声道信号的闭环基音周期参考值,T_op和f_pitch_prim两者的差值就可以作为最终的帧结构相似性值ol_pitch。由于次要声道信号的闭环基音周期参考值是以主要声道信号的基音周期估计值来确定的参考值,因此只要比较次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值的差异性,就可以使用次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值计算出主要声道信号和次要声道信号之间的帧结构相似性值。
在一种可能的实现方式中,所述使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,包括:根据所述主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值;根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;根据所述主要声道信号的基音周期估计值、所述次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期索引值。其中,编码端首先根据次要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以确定次要声道信号的基音周期估计值。次要声道信号的基音周期搜索范围调整因子可用于调整次要声道信号的基音周期索引值,以确定出次要声道信号的基音周期索引值上限。该次要声道信号的基音周期索引值上限表示了次要声道信号的基音周期索引值的取值不能超过的上限值。次要声道信号的基音周期索引值可用于确定次要声道信号的基音周期索引值。编码端在确定出主要声道信号的基音周期估计值、次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限之后,根据主要声道信号的基音周期估计值、次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限进行差分编码,输出次要声道信号的基音周期索引值。
在一种可能的实现方式中,所述根据所述主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值,包括:使用所述次要声道信号的闭环基音周期参考值作为所述次要声道信号的闭环基音周期搜索的起始点,采用整数精度和分数精度进行闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的闭环基音周期参考值通过所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数确定。其中,以次要声道信号的闭环基音周期参考值作为次要声道信号的闭环基音周期搜索的起始点,采用整数精度和下采样分数精度进行闭环基音周期搜索,最后通过计算内插归一化相关性得到次要声道信号的基音周期估计值。
在一种可能的实现方式中,所述根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限,包括:通过如下方式计算出所述次要声道信号的基音周期索引值上限soft_reuse_index_high_limit;soft_reuse_index_high_limit=0.5+2Z;其中,所述Z为所述次要声道信号的基音周期搜索范围调整因子,所述Z的取值为:3、或者4、或者5。其中,计算差分编码中次要声道信号的基音周期索引上限,需要首先确定次要声道信号的基音周期搜索范围调整因子Z,例如Z可取3、或者4、或者5,对于Z的具体取值此处不做限定,具体取决于应用场景。
在一种可能的实现方式中,所述根据所述主要声道信号的基音周期估计值、所述次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期索引值,包括:根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分loc_frac_prim;通过如下方式计算出所述次要声道信号的基音周期索引值soft_reuse_index:soft_reuse_index=(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M;其中,所述pitch_soft_reuse表示所述次要声道信号的基音周期估计值的整数部分,所述pitch_frac_soft_reuse表示所述次要声道信号的基音周期估计值的分数部分,所述soft_reuse_index_high_limit表示所述次要声道信号的基音周期索引值上限,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述*表示相乘运算符,所述+表示相加运算符,所述﹣表示相减运算符。具体的,首先根据主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期整数部分loc_T0,和次要声道信号的闭环基音周期分数部分loc_frac_prim,详见前述的计算过程。N表示次要声道信号被划分的子帧个数,例如N的取值可以为3,或者4,或者5,M表示次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,例如M的取值可以为2,或者3,对于N和M的取值取决于应用场景,此处不做限定。
在一种可能的实现方式中,所述方法应用于所述当前帧的编码速率超过预设的速率阈值的立体声编码场景;所述速率阈值为如下取值中的至少一种:32千比特每秒kbps、48kbps、64kbps、96kbps、128kbps、160kbps、192kbps、256kbps。其中,速率阈值可以为大于或等于32kbps,例如速率阈值还可以为48kbps、或者64kbps、或者96kbps、或者128kbps、或者160kbps、或者192kbps、或者256kbps,速率阈值的具体取值可以根据应用场景来确定。又如,本申请实施例可以不局限于以上速率,除了以上速率之外例如速率阈值还可以是:80kbps、144kbps、320kbps等。在编码速率比较高的情况下(如32kbps及更高速率)不进行次要声道基音周期独立编码,利用主要声道信号的基音周期估计值作为参考值,并对次要声道信号的比特资源重新分配,实现提升立体声编码质量的目的。
在一种可能的实现方式中,所述帧结构相似性区间的最小值为﹣4.0,所述帧结构相似性区间的最大值为3.75;或,所述帧结构相似性区间的最小值为﹣2.0,所述帧结构相似性区间的最大值为1.75;或,所述帧结构相似性区间的最小值为﹣1.0,所述帧结构相似性区间的最大值为0.75。帧结构相似性区间的最大值和最小值具有多种取值方式,举例说明如下,本申请实施例中可以设置多个帧结构相似性区间,例如设置3个档次的帧结构相似性区间,例如最低档次的帧结构相似性区间的最小值为﹣4.0,最低档次的帧结构相似性区间的最大值为3.75;或,中档次的帧结构相似性区间的最小值为﹣2.0,中档次的帧结构相似性区间的最大值为1.75;或,最高档次的帧结构相似性区间的最小值为﹣1.0,最高档次的帧结构相似性区间的最大值为0.75。
第二方面,本申请实施例还提供一种立体声解码方法,包括:根据接收到的立体声编码码流确定是否对次要声道信号的基音周期进行差分解码;当确定对所述次要声道信号的基音周期进行差分解码时,从所述立体声编码码流中获取当前帧的主要声道信号的基音周期估计值和所述当前帧的次要声道信号的基音周期索引值;根据所述主要声道信号的基音周期估计值和所述次要声道信号的基音周期索引值,对所述次要声道信号的基音周期进行差分解码,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的基音周期估计值用于解码得到立体声解码码流。本申请实施例中在可以对次要声道信号的基音周期进行差分解码时,可以使用主要声道信号的基音周期估计值和次要声道信号的基音周期索引值对次要声道信号的基音周期进行差分解码,因此得到次要声道信号的基音周期估计值,使用该次要声道信号的基音周期估计值可以解码得到立体声解码码流,因此可以提高立体声信号的空间感和声像稳定性。
在一种可能的实现方式中,所述根据接收到的立体声编码码流确定是否对所述次要声道信号的基音周期进行差分解码,包括:从所述当前帧中获取次要声道信号基音周期复用标识和信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第二标识时,确定对所述次要声道信号的基音周期进行差分解码。在本申请实施例中,次要声道基音周期复用标识可以具有多种标识配置方式,例如次要声道基音周期复用标识可以为预设的第二标识,或者为第四标识。例如,次要声道基音周期复用标识的取值可以为0或者1,第二标识为1,第四标识为0。同样的,信号类型标识可以为预设的第一标识,或者可以为第三标识。例如,信号类型标识取值可以为0或者1,第一标识为1,第三标识为0。例如当次要声道基音周期复用标识的取值为1时,当信号类型标识的取值为1时执行差分解码的流程。
在一种可能的实现方式中,所述方法,还包括:当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第四标识时,或者当所述信号类型标识为预设的第三标识时,对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行解码。其中,次要声道基音周期复用标识是第一标识,且次要声道信号基音周期复用标识为第四标识时,直接对次要声道信号的基音周期和主要声道信号的基音周期分别进行解码,即对次要声道信号的基音周期进行独立解码。又如,当信号类型标识为预设的第三标识时,对次要声道信号的基音周期和主要声道信号的基音周期分别进行解码。解码端根据立体声编码码流中携带的次要声道基音周期复用标识和信号类型标识可以确定执行差分解码方法或者独立解码方法。
在一种可能的实现方式中,所述根据所述主要声道信号的基音周期估计值和所述次要声道信号的基音周期索引值,对所述次要声道信号的基音周期进行差分解码,包括:根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;根据所述次要声道信号的闭环基音周期参考值、所述次要声道信号的基音周期索引值和所述次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期估计值。举例说明如下,使用主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期参考值。次要声道信号的基音周期搜索范围调整因子可用于调整次要声道信号的基音周期索引值,以确定出次要声道信号的基音周期索引值上限。该次要声道信号的基音周期索引值上限表示了次要声道信号的基音周期索引值的取值不能超过的上限值。次要声道信号的基音周期索引值可用于确定次要声道信号的基音周期索引值。解码端在确定出次要声道信号的闭环基音周期参考值、次要声道信号的基音周期索引值和次要声道信号的基音周期索引值上限之后,根据次要声道信号的闭环基音周期参考值、次要声道信号的基音周期索引值和次要声道信号的基音周期索引值上限进行差分解码,输出次要声道信号的基音周期估计值。
在一种可能的实现方式中,所述根据所述次要声道信号的闭环基音周期参考值、所述次要声道信号的基音周期索引值和所述次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期估计值,包括:通过如下方式计算出所述次要声道信号的基音周期估计值T0_pitch:T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N;其中,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值,所述soft_reuse_index表示所述次要声道信号的基音周期索引值,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述/表示相除运算符,所述+表示相加运算符,所述﹣表示相减运算符。具体的,首先根据主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期整数部分loc_T0,和次要声道信号的闭环基音周期分数部分loc_frac_prim。N表示次要声道信号被划分的子帧个数,例如N的取值可以为3,或者4,或者5,M表示次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,例如M的取值可以为2,或者3,对于N和M的取值取决于应用场景,此处不做限定。不限定的是,本申请实施例中计算次要声道信号的基音周期估计值可以不限于上述公式。
第三方面,本申请实施例还提供一种立体声编码装置,包括:下混模块,用于对当前帧的左声道信号和所述当前帧的右声道信号进行下混处理,以得到所述当前帧的主要声道信号和所述当前帧的次要声道信号;差分编码模块,用于当确定所述帧结构相似性值在所述帧结构相似性区间内时,使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,以得到所述次要声道信号的基音周期索引值,所述次要声道信号的基音周期索引值用于生成待发送的立体声编码码流。
在一种可能的实现方式中,所述立体声编码装置还包括:信号类型标识获取模块,用于根据所述主要声道信号和所述次要声道信号获取信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;复用标识配置模块,用于当所述信号类型标识为预设的第一标识、且所述帧结构相似性值在所述帧结构相似性区间内时,将所述次要声道基音周期复用标识配置为第二标识,所述第一标识和所述第二标识用于生成所述立体声编码码流。
在一种可能的实现方式中,所述立体声编码装置还包括:所述复用标识配置模块,还用于当确定所述帧结构相似性值不在所述帧结构相似性区间内时,或者当所述信号类型标识为预设的第三标识时,将所述次要声道基音周期复用标识配置为第四标识,所述第四标识和所述第三标识用于生成所述立体声编码码流;独立编码模块,用于对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行编码。
在一种可能的实现方式中,所述立体声编码装置还包括:开环基音周期分析模块,用于对所述当前帧的次要声道信号进行开环基音周期分析,以得到所述次要声道信号的开环基音周期估计值;闭环基音周期分析模块,用于根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;相似性值计算模块,用于根据所述次要声道信号的开环基音周期估计值和所述次要声道信号的闭环基音周期参考值,确定所述帧结构相似性值。
在一种可能的实现方式中,所述闭环基音周期分析模块,用于根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分loc_frac_prim;通过如下方式计算出所述次要声道信号的闭环基音周期参考值f_pitch_prim:f_pitch_prim=loc_T0+loc_frac_prim/N;其中,所述N表示所述次要声道信号被划分的子帧个数。
在一种可能的实现方式中,所述相似性值计算模块,用于通过如下方式计算出所述帧结构相似性值ol_pitch:ol_pitch=T_op﹣f_pitch_prim;其中,所述T_op表示所述次要声道信号的开环基音周期估计值,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值。
在一种可能的实现方式中,所述差分编码模块,包括:闭环基音周期搜索模块,用于根据所述主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值;索引值上限确定模块,用于根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;索引值计算模块,用于根据所述主要声道信号的基音周期估计值、所述次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期索引值。
在一种可能的实现方式中,所述闭环基音周期搜索模块,用于使用所述次要声道信号的闭环基音周期参考值作为所述次要声道信号的闭环基音周期搜索的起始点,采用整数精度和分数精度进行闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的闭环基音周期参考值通过所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数确定。
在一种可能的实现方式中,所述索引值上限确定模块,用于通过如下方式计算出所述次要声道信号的基音周期索引值上限soft_reuse_index_high_limit;soft_reuse_index_high_limit=0.5+2Z;其中,所述Z为所述次要声道信号的基音周期搜索范围调整因子,所述Z的取值为:3、或者4、或者5。
在一种可能的实现方式中,所述索引值计算模块,用于根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分loc_frac_prim;通过如下方式计算出所述次要声道信号的基音周期索引值soft_reuse_index:soft_reuse_index=(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M;其中,所述pitch_soft_reuse表示所述次要声道信号的基音周期估计值的整数部分,所述pitch_frac_soft_reuse表示所述次要声道信号的基音周期估计值的分数部分,所述soft_reuse_index_high_limit表示所述次要声道信号的基音周期索引值上限,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述*表示相乘运算符,所述+表示相加运算符,所述﹣表示相减运算符。
在一种可能的实现方式中,所述立体声编码装置应用于所述当前帧的编码速率超过预设的速率阈值的立体声编码场景;所述速率阈值为如下取值中的至少一种:32千比特每秒kbps、48kbps、64kbps、96kbps、128kbps、160kbps、192kbps、256kbps。
在一种可能的实现方式中,所述帧结构相似性区间的最小值为﹣4.0,所述帧结构相似性区间的最大值为3.75;或,所述帧结构相似性区间的最小值为﹣2.0,所述帧结构相似性区间的最大值为1.75;或,所述帧结构相似性区间的最小值为﹣1.0,所述帧结构相似性区间的最大值为0.75。
在本申请的第三方面中,立体声编码装置的组成模块还可以执行前述第一方面以及各种可能的实现方式中所描述的步骤,详见前述对第一方面以及各种可能的实现方式中的说明。
第四方面,本申请实施例还提供一种立体声解码装置,包括:确定模块,用于根据接收到的立体声编码码流确定是否对次要声道信号的基音周期进行差分解码;值获取模块,用于当确定对所述次要声道信号的基音周期进行差分解码时,从所述立体声编码码流中获取当前帧的主要声道信号的基音周期估计值和所述当前帧的次要声道信号的基音周期索引值;差分解码模块,用于根据所述主要声道信号的基音周期估计值和所述次要声道信号的基音周期索引值,对所述次要声道信号的基音周期进行差分解码,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的基音周期估计值用于解码得到立体声解码码流。
在一种可能的实现方式中,所述确定模块,用于从所述当前帧中获取次要声道信号基音周期复用标识和信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第二标识时,确定对所述次要声道信号的基音周期进行差分解码。
在一种可能的实现方式中,所述立体声解码装置,还包括:独立解码模块,用于当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第四标识时,或者当所述信号类型标识为预设的第三标识、且所述次要声道信号基音周期复用标识为第四标识时,对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行解码。
在一种可能的实现方式中,所述差分解码模块,包括:参考值确定子模块,用于根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;索引值上限确定子模块,用于根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;估计值计算子模块,用于根据所述次要声道信号的闭环基音周期参考值、所述次要声道信号的基音周期索引值和所述次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期估计值。
在一种可能的实现方式中,所述估计值计算子模块,用于通过如下方式计算出所述次要声道信号的基音周期估计值T0_pitch:
T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N;
其中,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值,所述soft_reuse_index表示所述次要声道信号的基音周期索引值,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述/表示相除运算符,所述+表示相加运算符,所述﹣表示相减运算符。
在本申请的第四方面中,立体声解码装置的组成模块还可以执行前述第二方面以及各种可能的实现方式中所描述的步骤,详见前述对第二方面以及各种可能的实现方式中的说明。
第五方面,本申请实施例提供一种立体声处理装置,该立体声处理装置可以包括立体声编码装置或者立体声解码装置或者芯片等实体,所述立体声处理装置包括:处理器。可选的,该立体声处理装置还可以包括存储器;所述存储器用于存储指令;所述处理器用于执行所述存储器中的所述指令,使得所述立体声处理装置执行如前述第一方面或第二方面中任一项所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
第七方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
第八方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持立体声编码装置或者立体声解码装置实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存立体声编码装置或者立体声解码装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1为本申请实施例提供的立体声处理系统的组成结构示意图;
图2a为本申请实施例提供的立体声编码器和立体声解码器应用于终端设备的示意图;
图2b为本申请实施例提供的立体声编码器应用于无线设备或者核心网设备的示意图;
图2c为本申请实施例提供的立体声解码器应用于无线设备或者核心网设备的示意图;
图3a为本申请实施例提供的多声道编码器和多声道解码器应用于终端设备的示意图;
图3b为本申请实施例提供的多声道编码器应用于无线设备或者核心网设备的示意图;
图3c为本申请实施例提供的多声道解码器应用于无线设备或者核心网设备的示意图;
图4为本申请实施例中立体声编码装置和立体声解码装置之间的一种交互流程示意图;
图5为本申请实施例提供的一种立体声信号编码的流程示意图;
图6为本申请实施例提供的主要声道信号的基音周期参数和次要声道信号的基音周期参数进行编码的流程图;
图7为采用独立编码方式和差分编码方式得到的基音周期量化结果的比较图;
图8为采用独立编码方式和差分编码方式之后分配给固定码表的比特数的比较图;
图9为本申请实施例提供的时域立体声编码方法的示意图;
图10为本申请实施例提供的一种立体声编码装置的组成结构示意图;
图11为本申请实施例提供的一种立体声解编码装置的组成结构示意图;
图12为本申请实施例提供的另一种立体声编码装置的组成结构示意图;
图13为本申请实施例提供的另一种立体声解编码装置的组成结构示意图。
具体实施方式
本申请实施例提供了一种立体声编码方法、立体声解码方法和装置,提高立体声的编解码性能。
下面结合附图,对本申请的实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例的技术方案可以应用于各种的立体声处理系统,如图1所示,为本申请实施例提供的立体声处理系统的组成结构示意图。立体声处理系统100可以包括:立体声编码装置101和立体声解码装置102。其中,立体声编码装置101可用于生成立体声编码码流,然后该立体声编码码流可以通过音频传输通道传输给立体声解码装置102,立体声解码装置102可以接收到立体声编码码流,然后执行立体声解码装置102的立体声解码功能,最后得到立体声解码码流。
在本申请的实施例中,该立体声编码装置可以应用于各种有音频通信需要的终端设备、有转码需要的无线设备与核心网设备,例如立体声编码装置可以是上述终端设备或者无线设备或者核心网设备的立体声编码器。同样的,该立体声解码装置可以应用于各种有音频通信需要的终端设备、有转码需要的无线设备与核心网设备,例如立体声解码装置可以是上述终端设备或者无线设备或者核心网设备的立体声解码器。
如图2a所示,为本申请实施例提供的立体声编码器和立体声解码器应用于终端设备的示意图。对于每个终端设备都可以包括:立体声编码器、信道编码器、立体声解码器、信道解码器。具体的,信道编码器用于对立体声信号进行信道编码,信道解码器用于对立体声信号进行信道解码。例如,在第一终端设备20中可以包括:第一立体声编码器201、第一信道编码器202、第一立体声解码器203、第一信道解码器204。在第二终端设备21中可以包括:第二立体声解码器211、第二信道解码器212、第二立体声编码器213、第二信道编码器214。第一终端设备20连接无线或者有线的第一网络通信设备22,第一网络通信设备22和无线或者有线的第二网络通信设备23之间通过数字信道连接,第二终端设备21连接无线或者有线的第二网络通信设备23。其中,上述无线或者有线的网络通信设备可以泛指信号传输设备,例如通信基站,数据交换设备等。
在音频通信中,作为发送端的终端设备对采集到的立体声信号进行立体声编码,再进行信道编码后,通过无线网络或者核心网进行在数字信道中传输。而作为接收端的终端设备根据接收到的信号进行信道解码,以得到立体声信号编码码流,然后经过立体声解码恢复出立体声信号,由接收端的终端设备进回放。
如图2b所示,为本申请实施例提供的立体声编码器应用于无线设备或者核心网设备的示意图。其中,无线设备或者核心网设备25包括:信道解码器251、其他音频解码器252、立体声编码器253、信道编码器254,其中,其他音频解码器252是指除立体声解码器以外的其他音频解码器。在无线设备或者核心网设备25内,首先通过信道解码器251对进入该设备的信号进行信道解码,然后使用其他音频解码器252进行音频解码(除了立体声解码),然后使用立体声编码器253进行立体声编码,最后使用信道编码器254对立体声信号进行信道编码,完成信道编码之后再传输出去。
如图2c所示,为本申请实施例提供的立体声解码器应用于无线设备或者核心网设备的示意图。其中,无线设备或者核心网设备25包括:信道解码器251、立体声解码器255、其他音频编码器256、信道编码器254,其中,其他音频编码器256是指除立体声编码器以外的其他音频编码器。在无线设备或者核心网设备25内,首先通过信道解码器251对进入该设备的信号进行信道解码,然后使用立体声解码器255对接收到的立体声编码码流进行解码,然后使用其他音频编码器256进行音频编码(除了立体声编码),最后使用信道编码器254对立体声信号进行信道编码,完成信道编码之后再传输出去。在无线设备或者核心网设备中,如果需要实现转码,则需要进行相应的立体声编解码处理。其中,无线设备指的是通信中的射频相关的设备,核心网设备指的是通信中核心网相关的设备。
在本申请的一些实施例中,该立体声编码装置可以应用于各种有音频通信需要的终端设备、有转码需要的无线设备与核心网设备,例如立体声编码装置可以是上述终端设备或者无线设备或者核心网设备的多声道编码器。同样的,该立体声解码装置可以应用于各种有音频通信需要的终端设备、有转码需要的无线设备与核心网设备,例如立体声解码装置可以是上述终端设备或者无线设备或者核心网设备的多声道解码器。
如图3a所示,为本申请实施例提供的多声道编码器和多声道解码器应用于终端设备的示意图,对于每个终端设备都可以包括:多声道编码器、信道编码器、多声道解码器、信道解码器。具体的,信道编码器用于对多声道信号进行信道编码,信道解码器用于对多声道信号进行信道解码。例如,在第一终端设备30中可以包括:第一多声道编码器301、第一信道编码器302、第一多声道解码器303、第一信道解码器304。在第二终端设备31中可以包括:第二多声道解码器311、第二信道解码器312、第二多声道编码器313、第二信道编码器314。第一终端设备30连接无线或者有线的第一网络通信设备32,第一网络通信设备32和无线或者有线的第二网络通信设备33之间通过数字信道连接,第二终端设备31连接无线或者有线的第二网络通信设备33。其中,上述无线或者有线的网络通信设备可以泛指信号传输设备,例如通信基站,数据交换设备等。音频通信中作为发送端的终端设备对采集到的多声道信号进行多声道编码,再进行信道编码后,通过无线网络或者核心网进行在数字信道中传输。而作为接收端的终端设备根据接收到的信号,进行信道解码,以得到多声道信号编码码流,然后经过多声道解码恢复出多声道信号,由作为接收端的终端设备进回放。
如图3b所示,为本申请实施例提供的多声道编码器应用于无线设备或者核心网设备的示意图,其中,无线设备或者核心网设备35包括:信道解码器351、其他音频解码器352、多声道编码器353、信道编码器354,与前述图2b类似,此处不再赘述。
如图3c所示,为本申请实施例提供的多声道解码器应用于无线设备或者核心网设备的示意图,其中,无线设备或者核心网设备35包括:信道解码器351、多声道解码器355、其他音频编码器356、信道编码器354,与前述图2c类似,此处不再赘述。
其中,立体声编码处理可以是多声道编码器中的一部分,立体声解码处理可以是多声道解码器中的一部分,例如,对采集到的多声道信号进行多声道编码可以是将采集到的多声道信号经过降维处理后得到立体声信号,对得到的立体声信号进行编码;解码端根据多声道信号编码码流,解码得到立体声信号,经过上混处理后恢复出多声道信号。因此,本申请实施例也可应用于终端设备、无线设备、核心网设备中的多声道编码器和多声道解码器。在无线或者核心网设备中,如果需要实现转码,则需要进行相应的多声道编解码处理。
在申请实施例中,在对立体声编码方法中,较重要的一个环节就是基音周期编码。因为浊音是由准周期脉冲激励产生的,所以它的时域波形呈现出明显的周期性,这个周期称为基音周期。基音周期对产生高质量的浊音语音发挥着十分重要的作用,这是因为浊音语音被表征为由基音周期分隔的样点组成的准周期信号。在语音处理中,基音周期也可以用一个周期内包含的样本数来表示,此时被称为基音延迟。基音延迟是自适应码本的重要参数。
基音周期估计主要是指对基音周期的估计过程,因此基音周期估计的准确性直接决定了激励信号的正确性,也就决定了语音信号的合成质量。主要声道信号和次要声道信号的基音周期有着很强的相似性,本申请实施例可以合理地利用基音周期的相似性,提升编码效率。
在本申请实施例中,对于在频域或时频结合情况下进行的参数立体声编码,主要声道信号的基音周期和次要声道信号的基音周期之间具有相关性,针对次要声道信号的基音周期编码,采用一种帧结构相似性判别的方式衡量主要声道信号和次要声道信号的编码帧结构相似程度,当确定帧结构相似性值在帧结构相似性区间内时通过差分编码方法,对次要声道信号中的基音周期参数进行合理预测并进行差分编码,将少量比特资源分配给次要声道信号的基音周期进行差分编码。本申请实施例可以提高立体声信号的空间感和声像稳定性。另外,本申请实施例采用较小的比特资源保证了次要声道信号的基音周期预测的准确性,将剩余比特资源用于其他立体声编码参数,例如可用于固定码表等编码参数,进而提升了次要声道的编码效率,最终提升了整体的立体声编码质量。
本申请实施例中针对次要声道信号的基音周期编码,采用面向次要声道信号的基音周期差分编码方法,利用主要声道信号的基音周期作为参考值,并对次要声道比特资源重新分配,实现提升立体声编码质量的目的。接下来基于前述的系统架构以及立体声编码装置和立体声解码装置,对本申请实施例提供的立体声编码方法和立体声解码方法进行说明。如图4所示,为本申请实施例中立体声编码装置和立体声解码装置之间的一种交互流程示意图,其中,下述步骤401至步骤403可以由立体声编码装置(如下简称编码端)执行,下述步骤411至步骤413可以由立体声解码装置(如下简称界面端)执行,主要包括如下过程:
401、对当前帧的左声道信号和当前帧的右声道信号进行下混处理,以得到当前帧的主要声道信号和当前帧的次要声道信号。
在本申请实施例中,当前帧是指在编码端中当前进行编码处理的一个立体声信号帧,首先获取当前帧的左声道信号和当前帧的右声道信号,通过对左声道信号和右声道信号进行下混处理,可以得到当前帧的主要声道信号和当前帧的次要声道信号。举例说明,立体声编解码技术也有很多不同的实现,例如编码端将时域信号下混为两路单声道信号,先将左右声道信号下混为主要声道信号以及次要声道信号,其中,L表示左声道信号,R表示右声道信号,则主要声道信号可以为0.5*(L+R),表征了两个声道之间的相关信息;次要声道信号可以为0.5*(L-R),表征了两个声道之间的差异信息。
需要说明的是,后续实施例中将详细说明频域立体声编码中的下混过程以及时域立体声编码中的下混过程。
在本申请的一些实施例中,编码端执行的立体声编码方法可以应用于当前帧的编码速率超过预设的速率阈值的立体声编码场景。解码端执行的立体声解码方法可以应用于当前帧的解码速率超过预设的速率阈值的立体声解码场景。其中,当前帧的编码速率是指当前帧的立体声信号采用的编码速率,速率阈值是指针对立体声信号设置的最大速率值,在当前帧的编码速率超过预设的速率阈值时可以执行本申请实施例提供的立体声编码方法,在当前帧的解码速率超过预设的速率阈值时可以执行本申请实施例提供的立体声解码方法。
进一步的,在本申请的一些实施例中,速率阈值为如下取值中的至少一种:32千比特每秒(kbps)、48kbps、64kbps、96kbps、128kbps、160kbps、192kbps、256kbps。
其中,速率阈值可以为大于或等于32kbps,例如速率阈值还可以为48kbps、或者64kbps、或者96kbps、或者128kbps、或者160kbps、或者192kbps、或者256kbps,速率阈值的具体取值可以根据应用场景来确定。又如,本申请实施例可以不局限于以上速率,除了以上速率之外例如速率阈值还可以是:80kbps、144kbps、320kbps等。在编码速率比较高的情况下(如32kbps及更高速率)不进行次要声道基音周期独立编码,利用主要声道信号的基音周期估计值作为参考值,并对次要声道信号的比特资源重新分配,实现提升立体声编码质量的目的。
402、确定主要声道信号和次要声道信号之间的帧结构相似性值是否在预设的帧结构相似性区间内。
在本申请实施例中,获取到当前帧的主要声道信号和当前帧的次要声道信号之后,接下来计算主要声道信号和次要声道信号之间的帧结构相似性值,其中,帧结构相似性值是指帧结构相似性参数的取值,帧结构相似性值的取值大小可以用于衡量主要声道信号和次要声道信号是否具有帧结构相似性。帧结构相似性值的取值大小由主要声道信号和次要声道信号的信号自身特性来确定,后续实施例中将举例说明帧结构相似性值的计算方式。
在本申请实施例中,计算出主要声道信号和次要声道信号之间的帧结构相似性值之后,再获取到预设的帧结构相似性区间,该帧结构相似性区间是一个区间范围,该帧结构相似性区间可以包括区间范围的左右端点,也可以不包括区分范围的左右端点。帧结构相似性区间的范围大小可以根据当前帧的编码速率、差分编码触发条件等进行灵活确定,此处对于帧结构相似性区间的范围大小不做限定。
在本申请的一些实施例中,帧结构相似性区间的最大值和最小值具有多种取值方式,举例说明如下,本申请实施例中可以设置多个帧结构相似性区间,例如设置3个档次的帧结构相似性区间,例如最低档次的帧结构相似性区间的最小值为﹣4.0,最低档次的帧结构相似性区间的最大值为3.75;或,中档次的帧结构相似性区间的最小值为﹣2.0,中档次的帧结构相似性区间的最大值为1.75;或,最高档次的帧结构相似性区间的最小值为﹣1.0,最高档次的帧结构相似性区间的最大值为0.75。举例说明如下,帧结构相似性区间可以用于判断帧结构相似性值是否属于该区间内。例如,判断帧结构相似性值ol_pitch是否满足如下的预设条件:down_limit<ol_pitch<up_limit,其中,down_limit和up_limit分别为自定义的帧结构相似性区间的最小值(即下限阈值)和最大值(即上限阈值),例如down_limit取值可以为-4.0,up_limit取值可以为3.75。帧结构相似性区间的两个端点具体取值可以根据应用场景来确定。
在本申请实施例中,使用计算出的帧结构相似性值判断是否处于帧结构相似性区间内,例如可以将帧结构相似性值的取值大小和帧结构相似性区间的区间最大值、最小值进行数值比较,以确定主要声道信号和次要声道信号之间的帧结构相似性值是否在预设的帧结构相似性区间内。当确定帧结构相似性值在帧结构相似性区间内时,可以确定主要声道信号和次要声道信号之间具有帧结构相似性,当帧结构相似性值不属于帧结构相似性区间内时,可以确定主要声道信号和次要声道信号之间不具有帧结构相似性。
在本申请实施例中,确定主要声道信号和次要声道信号之间的帧结构相似性值是否在预设的帧结构相似性区间内之后,根据确定出的结果判断是否执行步骤403,当帧结构相似性值在帧结构相似性区间内,触发执行后续的步骤403。
在本申请的一些实施例中,步骤402确定主要声道信号和次要声道信号之间的帧结构相似性值是否在预设的帧结构相似性区间内之后,本申请实施例提供的方法还包括:
根据主要声道信号和次要声道信号获取信号类型标识,信号类型标识用于标识主要声道信号的信号类型和次要声道信号的信号类型;
当信号类型标识为预设的第一标识、且帧结构相似性值在帧结构相似性区间内时,将次要声道基音周期复用标识配置为第二标识,第一标识和第二标识用于生成所述立体声编码码流。
其中,编码端根据主要声道信号和次要声道信号获取信号类型标识,例如主要声道信号和次要声道信号中携带有信号的模式信息,基于该信号的模式信息确定信号类型标识的取值。信号类型标识用于标识主要声道信号的信号类型和次要声道信号的信号类型,该信号类型标识同时指示了主要声道信号的信号类型和次要声道信号的信号类型。次要声道基音周期复用标识的取值可根据帧结构相似性值是否在帧结构相似性区间内进行配置,次要声道基音周期复用标识用于指示次要声道信号的基音周期采用差分编码或者采用独立编码。
在本申请实施例中,次要声道基音周期复用标识可以具有多种标识配置方式,例如次要声道基音周期复用标识可以为预设的第二标识,或者配置为第四标识。接下来对次要声道基音周期复用标识的配置方法进行举例说明,首先判断信号类型标识是否为预设的第一标识,若信号类型标识为预设的第一标识,执行步骤402中确定帧结构相似性值是否在预设的帧结构相似性区间内,当确定帧结构相似性值在帧结构相似性区间内时,将次要声道基音周期复用标识配置为第二标识。第一标识和第二标识用于生成立体声编码码流,通过次要声道基音周期复用标识指示第二标识,可以使得解码端确定可以对次要声道信号的基音周期进行差分解码。例如,次要声道基音周期复用标识的取值可以为0或者1,第二标识为1,第四标识为0。同样的,信号类型标识可以为预设的第一标识,或者是预设的第三标识。例如,信号类型标识取值可以为0或者1,第一标识为1,第三标识为0。
举例说明如下,次要声道基音周期复用标识为soft_pitch_reuse_flag、主要声道和次要声道的信号类型标识为both_chan_generic。例如在次要声道编码中,soft_pitch_reuse_flag和both_chan_generic定义为0或1,用于指示主要声道信号和次要声道信号是否具有帧结构相似性。首先判断主要声道和次要声道的信号类型标识为both_chan_generic;当both_chan_generic为1时,表示当前帧所处的主要声道和次要声道均为通用模式(GENERIC),根据帧结构相似性值是否在帧结构相似性区间内设置次要声道基音周期复用标识soft_pitch_reuse_flag,帧结构相似性值在帧结构相似性区间内时soft_pitch_reuse_flag为1,执行本申请实施例中的差分编码方法,帧结构相似性值不在帧结构相似性区间内时soft_pitch_reuse_flag为0,且执行独立编码方法。
在本申请的一些实施例中,步骤402确定主要声道信号和次要声道信号之间的帧结构相似性值是否在预设的帧结构相似性区间内之后,本申请实施例提供的方法还包括:
当确定帧结构相似性值不在帧结构相似性区间内时,或者当信号类型标识为预设的第三标识时,将次要声道基音周期复用标识配置为第四标识,所述第四标识和所述第三标识用于生成所述立体声编码码流;
对次要声道信号的基音周期和主要声道信号的基音周期分别进行编码。
其中,次要声道基音周期复用标识可以具有多种标识配置方式,例如次要声道基音周期复用标识可以为预设的第二标识,或者配置为第四标识。接下来对次要声道基音周期复用标识的配置方法进行举例说明,首先判断信号类型标识是否为预设的第一标识,若信号类型标识为预设的第一标识,执行步骤402中确定帧结构相似性值是否在预设的帧结构相似性区间内,当确定帧结构相似性值不在帧结构相似性区间内时,将次要声道基音周期复用标识配置为第四标识。通过次要声道基音周期复用标识指示第四标识,可以使得解码端确定可以对次要声道信号的基音周期进行独立解码。另外,判断信号类型标识为预设的第一标识或第三标识,若信号类型标识为预设的第三标识,不执行步骤402,直接对次要声道信号的基音周期和主要声道信号的基音周期分别进行编码,即对次要声道信号的基音周期进行独立编码。
在本申请的一些实施例中,编码端执行的立体声编码方法中,帧结构相似性值通过如下方式确定:
对当前帧的次要声道信号进行开环基音周期分析,以得到次要声道信号的开环基音周期估计值;
根据主要声道信号的基音周期估计值和当前帧的次要声道信号被划分的子帧个数,确定次要声道信号的闭环基音周期参考值;
根据次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值,确定帧结构相似性值。
其中,在获取到当前帧的次要声道信号之后,可以对次要声道信号进行开环基音周期分析,从而可以得到次要声道信号的开环基音周期估计值,对于开环基音周期分析的具体过程,不再详细说明。当前帧的次要声道信号被划分的子帧个数可以通过次要声道信号的子帧配置来确定,例如可以被划分4个子帧个数,或者3个子帧个数,具体结合应用场景确定。在获取到主要声道信号的基音周期估计值之后,可以使用该主要声道信号的基音周期估计值和次要声道信号被划分的子帧个数来计算次要声道信号的闭环基音周期参考值。次要声道信号的闭环基音周期参考值是根据主要声道信号的基音周期估计值来确定的参考值,该次要声道信号的闭环基音周期参考值表示了以主要声道信号的基音周期估计值作为参考来确定的次要声道信号的闭环基音周期。举例说明如下,其中一种方法是直接将主要声道信号的基音周期作为次要声道信号的闭环基音周期参考值,即从主要声道信号的5个子帧中的基音周期选出4个值作为次要声道信号的4个子帧的闭环基音周期参考值。另一种方法是采用插值方法将主要声道信号的5个子帧中的基音周期映射为次要声道信号的4个子帧的闭环基音周期参考值。
在分别获取到次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值之后,由于次要声道信号的闭环基音周期参考值是以主要声道信号的基音周期估计值来确定的参考值,因此只要比较次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值的差异性,就可以使用次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值计算出主要声道信号和次要声道信号之间的帧结构相似性值。
进一步的,在本申请的一些实施例中,根据主要声道信号的基音周期估计值和当前帧的次要声道信号被划分的子帧个数,确定次要声道信号的闭环基音周期参考值,包括:
根据主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期整数部分loc_T0,和次要声道信号的闭环基音周期分数部分loc_frac_prim;
通过如下方式计算出次要声道信号的闭环基音周期参考值f_pitch_prim:
f_pitch_prim=loc_T0+loc_frac_prim/N;
其中,N表示次要声道信号被划分的子帧个数。
具体的,根据主要声道信号的基音周期估计值首先确定次要声道信号的闭环基音周期整数部分和闭环基音周期分数部分,举例说明如下,直接将主要声道信号的基音周期估计值的整数部分作为次要声道信号的闭环基音周期整数部分,将主要声道信号的基音周期估计值的分数部分作为次要声道信号的闭环基音周期分数部分,还可以采用插值方法将主要声道信号的基音周期估计值映射为次要声道信号的闭环基音周期整数部分和闭环基音周期分数部分。例如,通过以上方法均可以得到次要声道的闭环基音周期整数部分为loc_T0,闭环基音周期分数部分为loc_frac_prim。
N表示次要声道信号被划分的子帧个数,例如N的取值可以为3,或者4,或者5等,具体取值取决于应用场景。通过上述公式可以计算出次要声道信号的闭环基音周期参考值,不限定的是,本申请实施例中计算次要声道信号的闭环基音周期参考值可以不限于上述公式,例如在loc_T0+loc_frac_prim/N计算出结果之后,还可以设置修正因子,该修正因子再乘以loc_T0+loc_frac_prim/N的结果,可以作为最终输出的f_pitch_prim。又如,f_pitch_prim=loc_T0+loc_frac_prim/N中的等式右边,还可以将N替换为N-1,同样也可以计算出最终的f_pitch_prim。
进一步的,在本申请的一些实施例中,根据次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值,确定帧结构相似性值,包括:
通过如下方式计算出帧结构相似性值ol_pitch:
ol_pitch=T_op﹣f_pitch_prim;
其中,T_op表示次要声道信号的开环基音周期估计值,f_pitch_prim表示次要声道信号的闭环基音周期参考值。
具体的,T_op表示次要声道信号的开环基音周期估计值,f_pitch_prim表示次要声道信号的闭环基音周期参考值,T_op和f_pitch_prim两者的差值就可以作为最终的帧结构相似性值ol_pitch。由于次要声道信号的闭环基音周期参考值是以主要声道信号的基音周期估计值来确定的参考值,因此只要比较次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值的差异性,就可以使用次要声道信号的开环基音周期估计值和次要声道信号的闭环基音周期参考值计算出主要声道信号和次要声道信号之间的帧结构相似性值。不限定的是,本申请实施例中计算帧结构相似性值可以不限于上述公式,例如在T_op﹣f_pitch_prim计算出结果之后,还可以设置修正因子,该修正因子再乘以T_op﹣f_pitch_prim的结果,可以作为最终输出的ol_pitch。又如,ol_pitch=T_op﹣f_pitch_prim中的等式右边,还可以再加上一个修正因子,该修正因子的具体取值不做限定,同样也可以计算出最终的ol_pitch。
403、当确定帧结构相似性值在帧结构相似性区间内时,使用主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分编码,以得到次要声道信号的基音周期索引值,次要声道信号的基音周期索引值用于生成待发送的立体声编码码流。
在本申请实施例中,帧结构相似性值在帧结构相似性区间内时,可以确定主要声道信号和次要声道信号之间具有帧结构相似性,由于主要声道信号和次要声道信号之间具有帧结构相似性,因此可以使用主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分编码,由于上述的差分编码使用了主要声道信号的基音周期估计值,因此考虑到了主要声道信号和次要声道信号之间的基音周期相似性,通过进行差分编码,相对于对次要声道信号的基音周期进行独立编码,本申请实施例可以减少对次要声道信号的基音周期进行编码时使用的比特资源开销,将节省的比特分配给其他立体声编码参数,实现准确的次要声道基音周期编码,提高整体立体声编码质量。
在本申请实施例中,在步骤401中得到当前帧的主要声道信号之后,可以根据主要声道信号进行编码,从而得到主要声道信号的基音周期估计值。具体的,在主要声道编码中,基音周期估计采用开环基音分析和闭环基音搜索相结合,提高了基音周期估计的准确度。语音信号的基音周期估计可以采用多种方法,例如可以采用自相关函数,短时平均幅度差等。基音周期估计算法以自相关函数为基础。自相关函数在基音周期的整数倍位置上出现峰值,利用这个特点可以完成基音周期估计。为了提高基音预测的准确性,更好地逼近语音实际的基音周期,基音周期检测采用以1/3为采样分辨率的分数延迟。为了减少基音周期估计的运算量,基音周期估计包括开环基音分析和闭环基音搜索两个步骤。利用开环基音分析对一帧语音的整数延迟进行粗略估计得到一个候选的整数延迟,闭环基音搜索在其附近对基音延迟进行细致估计,闭环基音搜索每一子帧执行一次。开环基音分析每帧进行一次,分别计算自相关、归一化处理和计算最佳的开环整数延迟。通过以上过程可以得到主要声道信号的基音周期估计值。
需要说明的是,在本申请实施例中,当帧结构相似性值没有处于帧结构相似性区间内时,无法对次要声道信号的基音周期进行差分编码。举例说明如下,若主要声道信号和次要声道信号的帧结构不具有相似性,则使用次要声道的基音周期独立编码方法,对次要声道信号的基音周期进行编码。
接下来对本申请实施例中差分编码的具体过程进行说明,具体的,步骤403使用主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分编码,包括:
根据主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到次要声道信号的基音周期估计值;
根据次要声道信号的基音周期搜索范围调整因子确定次要声道信号的基音周期索引值上限;
根据主要声道信号的基音周期估计值、次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出次要声道信号的基音周期索引值。
其中,编码端首先根据次要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以确定次要声道信号的基音周期估计值。接下来对闭环基音周期搜索的具体过程进行详细说明。在本申请的一些实施例中,根据主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到次要声道信号的基音周期估计值,包括:
使用次要声道信号的闭环基音周期参考值作为次要声道信号的闭环基音周期搜索的起始点,采用整数精度和分数精度进行闭环基音周期搜索,以得到次要声道信号的基音周期估计值,所述次要声道信号的闭环基音周期参考值通过所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数确定。
举例说明如下,使用主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期参考值,详见前述的计算过程。具体的,以次要声道信号的闭环基音周期参考值作为次要声道信号的闭环基音周期搜索的起始点,采用整数精度和下采样分数精度进行闭环基音周期搜索,最后通过计算内插归一化相关性得到次要声道信号的基音周期估计值。次要声道信号的基音周期估计值的计算过程,详见后续实施例中的举例说明。
次要声道信号的基音周期搜索范围调整因子可用于调整次要声道信号的基音周期索引值,以确定出次要声道信号的基音周期索引值上限。该次要声道信号的基音周期索引值上限表示了次要声道信号的基音周期索引值的取值不能超过的上限值。次要声道信号的基音周期索引值可用于确定次要声道信号的基音周期索引值。
在本申请的一些实施例中,根据次要声道信号的基音周期搜索范围调整因子确定次要声道信号的基音周期索引值上限,包括:
通过如下方式计算出次要声道信号的基音周期索引值上限soft_reuse_index_high_limit;
soft_reuse_index_high_limit=0.5+2Z;
其中,Z为次要声道信号的基音周期搜索范围调整因子,Z的取值为:3、或者4、或者5。
其中,计算差分编码中次要声道信号的基音周期索引上限,需要首先确定次要声道信号的基音周期搜索范围调整因子Z,然后通过如下计算式:soft_reuse_index_high_limit=0.5+2Z,以得到soft_reuse_index_high_limit,例如Z可取3、或者4、或者5,对于Z的具体取值此处不做限定,具体取决于应用场景。
编码端在确定出主要声道信号的基音周期估计值、次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限之后,根据主要声道信号的基音周期估计值、次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限进行差分编码,输出次要声道信号的基音周期索引值。
进一步的,在本申请的一些实施例中,根据主要声道信号的基音周期估计值、次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出次要声道信号的基音周期索引值,包括:
根据主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期整数部分loc_T0,和次要声道信号的闭环基音周期分数部分loc_frac_prim;
通过如下方式计算出次要声道信号的基音周期索引值soft_reuse_index:
soft_reuse_index=(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M;
其中,pitch_soft_reuse表示次要声道信号的基音周期估计值的整数部分,pitch_frac_soft_reuse表示次要声道信号的基音周期估计值的分数部分,soft_reuse_index_high_limit表示次要声道信号的基音周期索引值上限,N表示次要声道信号被划分的子帧个数,M表示次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,*表示相乘运算符,+表示相加运算符,﹣表示相减运算符。
具体的,首先根据主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期整数部分loc_T0,和次要声道信号的闭环基音周期分数部分loc_frac_prim,详见前述的计算过程。N表示次要声道信号被划分的子帧个数,例如N的取值可以为3,或者4,或者5,M表示次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,例如M的取值可以为2,或者3,对于N和M的取值取决于应用场景,此处不做限定。
不限定的是,本申请实施例中计算次要声道信号的基音周期索引值可以不限于上述公式,例如在(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M计算出结果之后,还可以设置修正因子,该修正因子再乘以(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M的结果,可以作为最终输出的soft_reuse_index。
又如,soft_reuse_index=(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M中的等式右边,还可以再加上一个修正因子,该修正因子的具体取值不做限定,同样也可以计算出最终的soft_reuse_index。
在申请实施例中,使用主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分编码,可以得到次要声道信号的基音周期索引值,次要声道信号的基音周期索引值用于表示次要声道信号的基音周期。在得到次要声道信号的基音周期索引值之后,还可以将次要声道信号的基音周期索引值用于生成待发送的立体声编码码流。当编码端生成立体声编码码流之后,可以将该立体声编码码流输出,并经过音频传输通道,发送至解码端。
411、根据接收到的立体声编码码流确定是否对次要声道信号的基音周期进行差分解码。
在本申请实施例中,根据接收到的立体声编码码流判断是否对次要声道信号的基音周期进行差分解码,例如解码端可以根据立体声编码码流携带的指示信息确定是否对次要声道信号的基音周期进行差分解码。又如,在立体声信号的传输环境预先配置完成之后,就可以预先配置是否进行差分解码,从而解码端还可以根据预先配置的结果确定是否对次要声道信号的基音周期进行差分解码。
在本申请的一些实施例中,步骤411根据接收到的立体声编码码流确定是否对次要声道信号的基音周期进行差分解码,包括:
从当前帧中获取次要声道信号基音周期复用标识和信号类型标识,信号类型标识用于标识主要声道信号的信号类型和次要声道信号的信号类型;
当信号类型标识为预设的第一标识、且次要声道信号基音周期复用标识为第二标识时,确定对次要声道信号的基音周期进行差分解码。
在本申请实施例中,次要声道基音周期复用标识可以具有多种标识配置方式,例如次要声道基音周期复用标识可以为预设的第二标识,或者为第四标识。例如,次要声道基音周期复用标识的取值可以为0或者1,第二标识为1,第四标识为0。同样的,信号类型标识可以为预设的第一标识,或者可以为第三标识。例如,信号类型标识取值可以为0或者1,第一标识为1,第三标识为0。例如当次要声道基音周期复用标识的取值为1时,当信号类型标识的取值为1时,触发执行步骤412。
举例说明如下,次要声道基音周期复用标识为soft_pitch_reuse_flag、主要声道和次要声道的信号类型标识为both_chan_generic。例如在次要声道解码中,从码流中读取主要声道和次要声道的信号类型标识both_chan_generic;当both_chan_generic为1时,再从码流中读取次要声道基音周期复用标识soft_pitch_reuse_flag;帧结构相似性值在帧结构相似性区间内时soft_pitch_reuse_flag为1,执行本申请实施例中的差分解码方法,帧结构相似性值不在帧结构相似性区间内时,soft_pitch_reuse_flag为0,执行独立解码方法。例如,在本申请实施例中,只有当满足soft_pitch_reuse_flag和both_chan_generic均为1时,才执行步骤412和步骤413中的差分解码过程。
在本申请的另一些实施例中,根据次要声道基音周期复用标识和信号类型标识的标识取值,解码端执行的立体声解码方法还可以包括如下步骤:
当信号类型标识为预设的第一标识、且次要声道信号基音周期复用标识为第四标识时,或者当信号类型标识为预设的第三标识时,对次要声道信号的基音周期和主要声道信号的基音周期分别进行解码。
其中,次要声道基音周期复用标识是第一标识,且次要声道信号基音周期复用标识为第四标识时,确定不执行步骤412和步骤413中的差分解码过程,而是直接对次要声道信号的基音周期和主要声道信号的基音周期分别进行解码,即对次要声道信号的基音周期进行独立解码。又如,当信号类型标识为预设的第三标识时,确定不执行步骤412和步骤413中的差分解码过程,对次要声道信号的基音周期和主要声道信号的基音周期分别进行解码。解码端根据立体声编码码流中携带的次要声道基音周期复用标识和信号类型标识可以确定执行差分解码方法或者独立解码方法。
412、当确定对次要声道信号的基音周期进行差分解码时,从立体声编码码流中获取当前帧的主要声道信号的基音周期估计值和当前帧的次要声道信号的基音周期索引值。
在本申请实施例中,编码端发送立体声编码码流之后,解码端首先通过音频传输通道接收到该立体声编码码流,然后根据该立体声编码码流进行信道解码,若需要对次要声道信号的基音周期进行差分解码,可以从立体声编码码流中获取到当前帧的次要声道信号的基音周期索引值,还可以从立体声编码码流中获取到当前帧的主要声道信号的基音周期估计值。
413、根据主要声道信号的基音周期估计值和次要声道信号的基音周期索引值,对次要声道信号的基音周期进行差分解码,以得到次要声道信号的基音周期估计值,次要声道信号的基音周期估计值用于解码得到立体声解码码流。
在本申请实施例中,在步骤411中确定出需要对次要声道信号的基音周期进行差分解码时,可以确定主要声道信号和次要声道信号之间具有帧结构相似性。由于主要声道信号和次要声道信号之间具有帧结构相似性,因此可以使用主要声道信号的基音周期估计值和次要声道信号的基音周期索引值,对次要声道信号的基音周期进行差分解码,实现准确的次要声道基音周期解码,提高整体立体声解码质量。
接下来对本申请实施例中差分解码的具体过程进行说明,具体的,步骤413根据主要声道信号的基音周期估计值和次要声道信号的基音周期索引值,对次要声道信号的基音周期进行差分解码,包括:
根据主要声道信号的基音周期估计值和当前帧的次要声道信号被划分的子帧个数,确定次要声道信号的闭环基音周期参考值;
根据次要声道信号的基音周期搜索范围调整因子确定次要声道信号的基音周期索引值上限;
根据次要声道信号的闭环基音周期参考值、次要声道信号的基音周期索引值和次要声道信号的基音周期索引值上限计算出次要声道信号的基音周期估计值。
举例说明如下,使用主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期参考值,详见前述的计算过程。次要声道信号的基音周期搜索范围调整因子可用于调整次要声道信号的基音周期索引值,以确定出次要声道信号的基音周期索引值上限。该次要声道信号的基音周期索引值上限表示了次要声道信号的基音周期索引值的取值不能超过的上限值。次要声道信号的基音周期索引值可用于确定次要声道信号的基音周期索引值。
解码端在确定出次要声道信号的闭环基音周期参考值、次要声道信号的基音周期索引值和次要声道信号的基音周期索引值上限之后,根据次要声道信号的闭环基音周期参考值、次要声道信号的基音周期索引值和次要声道信号的基音周期索引值上限进行差分解码,输出次要声道信号的基音周期估计值。
进一步的,在本申请的一些实施例中,根据次要声道信号的闭环基音周期参考值、次要声道信号的基音周期索引值和次要声道信号的基音周期索引值上限计算出次要声道信号的基音周期估计值,包括:
通过如下方式计算出次要声道信号的基音周期估计值T0_pitch:
T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N;
其中,f_pitch_prim表示次要声道信号的闭环基音周期参考值,soft_reuse_index表示次要声道信号的基音周期索引值,N表示次要声道信号被划分的子帧个数,M表示次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,/表示相除运算符,+表示相加运算符,﹣表示相减运算符。
具体的,首先根据主要声道信号的基音周期估计值确定次要声道信号的闭环基音周期整数部分loc_T0,和次要声道信号的闭环基音周期分数部分loc_frac_prim,详见前述的计算过程。N表示次要声道信号被划分的子帧个数,例如N的取值可以为3,或者4,或者5,M表示次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,例如M的取值可以为2,或者3,对于N和M的取值取决于应用场景,此处不做限定。
不限定的是,本申请实施例中计算次要声道信号的基音周期估计值可以不限于上述公式,例如在f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N计算出结果之后,还可以设置修正因子,该修正因子再乘以f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N的结果,可以作为最终输出的T0_pitch。又如,T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N中的等式右边,还可以再加上一个修正因子,该修正因子的具体取值不做限定,同样也可以计算出最终的T0_pitch。
需要说明的是,计算出次要声道信号的基音周期估计值T0_pitch之后,还可以根据次要声道信号的基音周期估计值T0_pitch进一步的计算出次要声道信号的基音周期估计值整数部分T0和基音周期估计值分数部分T0_frac。举例说明如下,T0=INT(T0_pitch),T0_frac=(T0_pitch–T0)*N。其中,INT(T0_pitch)表示对T0_pitch下取整运算,T0为解码次要声道基音周期的整数部分,T0_frac为解码次要声道基音周期的分数部分。
通过前述实施例的举例说明,本申请实施例中由于使用了主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分编码,因此不需要再对次要声道信号的基音周期进行独立编码,因此可以使用少量比特资源分配给次要声道信号的基音周期进行差分编码,通过对次要声道信号的基音周期进行差分编码,可以提高立体声信号的空间感和声像稳定性。另外,本申请实施例中采用较小的比特资源进行了次要声道信号的基音周期的差分编码,因此可以将节省的比特资源用于立体声的其他编码参数,进而提升了次要声道的编码效率,最终提升了整体的立体声编码质量。本申请实施例中在可以对次要声道信号的基音周期进行差分解码时,可以使用主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分解码,通过对次要声道信号的基音周期进行差分解码,可以提高立体声信号的空间感和声像稳定性。另外,本申请实施例中采用次要声道信号的基音周期的差分解码,提升了次要声道的解码效率,最终提升了整体的立体声解码质量。
为便于更好的理解和实施本申请实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本申请实施例所提出的针对次要声道信号的基音周期编码方案,在次要声道信号基音周期编码过程中设置帧结构相似性计算准则,可用于计算帧结构相似性值,判断帧结构相似性值是否属于预设的帧结构相似性区间,若帧结构相似性值属于预设的帧结构相似性区间,则采用面向次要声道信号基音周期的差分编码方法对次要声道信号基音周期编码,用少量比特资源进行差分编码,将节省的比特分配给其他立体声编码参数,实现准确的次要声道信号基音周期编码,提高整体立体声编码质量。
本申请实施例中,立体声信号可以是原始的立体声信号,也可以是多声道信号中包含的两路信号组成的立体声信号,还可以是由多声道信号中包含的多路信号联合产生的两路信号组成的立体声信号。立体声编码可以构成独立的立体声编码器,也可以用于多声道编码器中的核心编码部分,旨在对由多声道信号中包含的多路信号联合产生的两路信号组成的立体声信号进行编码。
本申请实施例以立体声信号的编码速率为32kbps编码速率示例说明,可以理解的是,本申请实施例不限制于32kbps编码速率下实施,也可应用于更高速率的立体声编码中。如图5所示,为本申请实施例提供的一种立体声信号编码的流程示意图。本申请实施例提出一种立体声编码中的基音周期编码判别方法,立体声编码可以是时域立体声编码,也可以是频域立体声编码,还可以是时频结合的立体声编码,本申请实施例不做限定。以频域立体声编码为例,接下来对立体声编码的编解码流程进行说明,重点说明后续步骤中的次要声道信号编码中基音周期的编码过程。具体地:
首先从频域立体声编码的编码端进行说明,编码端的具体实现步骤:
S01、对左右声道时域信号进行时域预处理。
立体声信号编码一般采用分帧处理来进行。若立体声音频信号的采样率为16KHz,每帧信号为20ms,帧长记作N,则N=320,即帧长为320个样点。当前帧的立体声信号包括当前帧的左声道时域信号以及当前帧的右声道时域信号,当前帧的左声道时域信号记作xL(n),当前帧的右声道时域信号记作xR(n),其中n为样点序号,n=0,1,…,N-1。当前帧的左右声道时域信号是当前帧的左声道时域信号以及当前帧的右声道时域信号的简称。
对当前帧的左右声道时域信号进行时域预处理,具体地可以包括:对当前帧的左右声道时域信号分别进行高通滤波处理,以得到当前帧预处理后的左右声道时域信号,当前帧预处理后的左时域信号记作xL_HP(n),当前帧预处理后的右时域信号记作xR_HP(n)。其中,n为样点序号,n=0,1,…,N-1。当前帧预处理后的左右声道时域信号是当前帧预处理后的左声道时域信号以及当前帧预处理后的右声道时域信号的简称。高通滤波处理可以是截止频率为20Hz的无限脉冲响应(infinite impulse response,IIR)滤波器,也可是其他类型的滤波器。例如,采样率为16KHz对应的截止频率为20Hz的高通滤波器的传递函数为:
其中,b0=0.994461788958195,b1=-1.988923577916390,b2=0.994461788958195,a1=1.988892905899653,a2=-0.988954249933127,z为在Z变换域下的变换因子。
相应的时域滤波器为:
xL_HP(n)=b0*xL(n)+b1*xL(n-1)+b2*xL(n-2)-a1*xL_HP(n-1)-a2*xL_HP(n-2),
可以理解的是,对当前帧的左右声道时域信号进行时域预处理不是必须要执行的步骤。如果没有时域预处理的步骤,则用于进行时延估计的左右声道信号就是原始立体声信号中的左右声道信号。这里原始立体声信号中的左右声道信号是指采集到的经过模数转换后的脉冲编码调制(pulse code modulation,PCM)信号,信号的采样率可以包括8KHz、16KHz、32KHz、44.1KHz以及48KHz。另外,预处理除了本实施例中描述的高通滤波处理,还可以包含其它处理,例如预加重处理等,本申请实施例不做限定。
S02、根据预处理后的左右声道信号进行时域分析。
具体地,时域分析可以包括瞬态检测等。其中,瞬态检测可以是分别对当前帧预处理后的左右声道时域信号进行能量检测,检测当前帧是否发生能量突变。例如,计算当前帧预处理后的左声道时域信号的能量Ecur_L;根据前一帧预处理后的左声道时域信号的能量Epre_L和当前帧预处理后的左声道时域信号的能量Ecur_L之间的差值的绝对值进行瞬态检测,以得到当前帧预处理后的左声道时域信号的瞬态检测结果。同样的,还可以用相同的方法对当前帧预处理后的右声道时域信号进行瞬态检测。时域分析可以包含除瞬态检测之外的其他的时域分析,例如可以包含时域声道间时间差参数(inter-channel timedifference,ITD)确定、时域的时延对齐处理、频带扩展预处理等。
S03、对预处理后的左右声道信号进行时频变换,以得到左右声道频域信号。
具体地,可以是对预处理后的左声道信号进行离散傅里叶变换,以得到左声道频域信号;对预处理后的右声道信号进行离散傅里叶变换,以得到右声道频域信号。为了克服频谱混叠的问题,连续两次离散傅里叶变换之间一般都采用叠接相加的方法进行处理,有时还会对离散傅里叶变换的输入信号进行补零。
离散傅里叶变换可以是每帧进行一次,也可以将每帧信号分成P个子帧,每个子帧进行一次。如果每帧进行一次,则变换后左声道频域信号可以记作L(k),k=0,1,…,L/2-1,L表示采样点,变换后右声道频域信号可以记作R(k),k=0,1,…,L/2-1,k为频点索引值。如果每子帧进行一次,则变换后第i个子帧的左声道频域信号可以记作Li(k),k=0,1,…,L/2-1,变换后第i个子帧的右声道频域信号可以记作Ri(k),k=0,1,…,L/2-1,k为频点索引值,i为子帧索引值,i=0,1,…P-1。例如,本实施例中以宽带为例,宽带指的是编码带宽可以为8kHz或者更大,每帧左声道或每帧右声道信号为20ms,帧长记作N,则N=320,即帧长为320个样点。将每帧信号分成两个子帧,即P=2,每个子帧信号为10ms,子帧长为160个样点。每个子帧进行一次离散傅里叶变换,离散傅里叶变换的长度记作L,L=400,即离散傅里叶变换的长度为400个样点,则变换后第i个子帧的左声道频域信号可以记作Li(k),k=0,1,…,L/2-1,变换后第i个子帧的右声道频域信号可以记作Ri(k),k=0,1,…,L/2-1,k为频点索引值,i为子帧索引值,i=0,1,…,P-1。
S04、确定ITD参数,并进行编码。
确定ITD参数的方法有很多种,可以只在频域进行,可以只在时域进行,也可以通过时频结合的方法来确定,本申请实施例不做限制。
例如,可以在时域采用左右声道互相关系数提取ITD参数,例如:在0≤i≤Tmax范围内,计算和/>如果则ITD参数值为max(Cn(i))对应的索引值的相反数,其中,在编解码器中默认规定了max(Cn(i))值对应的索引表;否则ITD参数值为max(Cp(i))对应的索引值。
其中,i为计算互相关系数的索引值,j为样点的索引值,Tmax对应于不同采样率下ITD取值的最大值,N为帧长。也可以在频域基于左右声道频域信号确定ITD参数,例如:可以采用离散傅里叶变换(discrete Fourier transform,DFT)、快速傅氏变换(fast fouriertransformation,FFT)、修正离散余弦变换(modified discrete cosine transform,MDCT)等时频变换技术,将时域信号变换为频域信号。本实施例中DFT变换后第i个子帧的左声道频域信号Li(k),k=0,1,…,L/2-1,变换后第i个子帧的右声道频域信号Ri(k),k=0,1,…,L/2-1,i=0,1,…,P-1,计算第i个子帧的频域相关系数:XCORRi(k)=Li(k)*R* i(k)。其中,R* i(k)为时频变换后第i个子帧的右声道频域信号的共轭。将频域互相关系数转换到时域xcorri(n),n=0,1,…,L-1,在L/2-Tmax≤n≤L/2+Tmax范围内搜索xcorri(n)的最大值,以得到第i个子帧的ITD参数值为
又如,还可以根据DFT变换后第i个子帧的左声道频域信号和第i个子帧的右声道频域信号,在搜索范围-Tmax≤j≤Tmax,计算幅度值:则ITD参数值为/>即幅度值最大的值对应的索引值。
在确定了ITD参数后,需要在编码器中将ITD参数进行残差编码和熵编码,然后写入立体声编码码流。
S05、根据ITD参数,对左右声道频域信号进行时移调整。
本申请实施例对左右声道频域信号进行时移调整的方式有多种,接下来进行举例说明。
本实施例中,以每帧信号分成P个子帧,P=2为例,经过时移调整后的第i个子帧的左声道频域信号可以记作Li′(k),k=0,1,…,L/2-1,经过时移调整后的第i个子帧的右声道频域信号可以记作Ri′(k),k=0,1,…,L/2-1,k为频点索引值,i=0,1,…,P-1。
其中,τi为第i个子帧的ITD参数值,L为离散傅里叶变换的长度,Li(k)为时频变换后第i个子帧的左声道频域信号,Ri(k)为变换后第i个子帧的右声道频域信号,i为子帧索引值,i=0,1,…,P-1。
可以理解的是,如果DFT不是分帧进行的,也可以整帧进行一次时移调整。其中,分帧后则按每个子帧进行时移调整,若不分帧则按每帧进行时移调整。
S06、计算其他频域立体声参数,并进行编码。
其他频域立体声参数可以包含但不限于:声道间相位差(inter-channel phasedifference,IPD)参数、声道间电平差(也称声道间幅度差)(inter-channel leveldifference,ILD)参数、子带边增益等,本申请实施例中不做限定。计算得到其他频域立体声参数后,需要将其进行残差编码和熵编码,写入立体声编码码流。
S07、计算主要声道信号和次要声道信号。
计算主要声道信号和次要声道信号。具体地,可以使用本申请实施例中的任何一种时域或频域下混处理实现。例如,可以根据当前帧的左声道频域信号和当前帧的右声道频域信号,计算当前帧的主要声道信号和次要声道信号;可以根据当前帧预设低频带所对应的各个子带的左声道频域信号和当前帧预设低频带所对应的各个子带的右声道频域信号,计算当前帧预设低频带所对应的各个子带的主要声道信号和次要声道信号;也可以根据当前帧各个子帧的左声道频域信号和当前帧各个子帧的右声道频域信号,计算当前帧各个子帧的主要声道信号和次要声道信号;还可以根据当前帧各个子帧预设低频带所对应的各个子带的左声道频域信号和当前帧各个子帧预设低频带所对应的各个子带的右声道频域信号,计算当前帧各个子帧预设低频带所对应的各个子带的主要声道信号和次要声道信号。可以根据当前帧的左声道时域信号和当前帧的右声道时域信号,通过两路信号相加得到主要声道信号,通过两路信号相减得到次要声道信号。
在本实施例中,由于对每帧信号进行了分帧处理,将每个子帧的主要声道信号和次要声道信号经过离散傅里叶变换的逆变换转换到时域,并进行子帧间的叠接相加处理,以得到当前帧的时域主要声道信号和次要声道信号。
需要说明的是,步骤S07得到主要声道信号和次要声道信号的过程称为下混处理,从步骤S08开始是对主要声道信号和次要声道信号处理。
S08、对下混后的主要声道信号和次要声道信号进行编码。
具体地,可以先根据前一帧的主要声道信号和次要声道信号编码中得到的参数信息以及主要声道信号编码和次要声道信号编码的总比特数,对主要声道信号编码和次要声道信号编码进行比特分配。然后根据比特分配的结果分别对主要声道信号和次要声道信号进行编码。主要声道信号编码和次要声道信号编码,可以采用任何一种单声道音频编码技术。例如,采用ACELP的编码方法对下混处理得到的主要声道信号和次要声道信号进行编码。ACELP编码方法通常包括:确定线性预测系数(linear prediction coefficient,LPC)并将其转换成为线谱频率参数(line spectral frequency,LSF)进行量化编码;搜索自适应码激励确定基音周期及自适应码本增益,并对基音周期及自适应码本增益分别进行量化编码;搜索代数码激励确定代数码激励的脉冲索引及增益,并对代数码激励的脉冲索引及增益分别进行量化编码。
如图6所示,为本申请实施例提供的主要声道信号的基音周期参数和次要声道信号的基音周期参数进行编码的流程图。图6所示的流程包括如下步骤S09至步骤S12,对于主要声道信号的基音周期参数和次要声道信号的基音周期参数进行编码的过程为:
S09、确定主要声道信号基音周期并进行编码。
在主要声道信号编码中,基音周期估计采用开环基音分析和闭环基音搜索相结合,提高了基音周期估计的准确度。语音的基音周期估计可以采用多种方法,例如自相关函数,短时平均幅度差等。基音周期估计算法以自相关函数为基础。自相关函数在基音周期的整数倍位置上出现峰值,利用这个特点可以完成基音周期估计。为了提高基音预测的准确性,更好地逼近语音实际的基音周期,基音周期检测采用以1/3为采样分辨率的分数延迟。为了减少基音周期估计的运算量,基音周期估计包括开环基音分析和闭环基音搜索两个步骤。利用开环基音分析对一帧语音的整数延迟进行粗略估计得到一个候选的整数延迟,闭环基音搜索在其附近对基音延迟进行细致估计,闭环基音搜索每一子帧执行一次。开环基音分析每帧进行一次,分别计算自相关、归一化处理和计算最佳的开环整数延迟。
通过以上步骤得到的主要声道信号的基音周期估计值,除了作为主要声道信号基音周期编码参数之外,还会作为次要声道信号的基音周期参考值。
S10、次要声道信号编码中判断帧结构相似性。
在次要声道信号编码中,根据帧结构相似性判别准则进行次要声道信号基音周期复用判决。
S101:判断帧结构相似性。
具体的,可以根据主要声道信号和次要声道信号的信号类型标志both_chan_generic确定是否计算帧结构相似性值,再根据帧结构相似性值是否属于预设的帧结构相似性区间,确定次要声道信号的基音周期复用标志soft_pitch_reuse_flag的取值。例如:在次要声道信号编码中,soft_pitch_reuse_flag和both_chan_generic定义为0或1,用于指示主要声道信号和次要声道信号是否具有帧结构相似性。首先判断主要声道和次要声道的信号类型标识为both_chan_generic;当both_chan_generic为1时,表示当前帧所处的主要声道和次要声道均为通用模式(GENERIC),根据帧结构相似性值是否在帧结构相似性区间内设置次要声道基音周期复用标识soft_pitch_reuse_flag,帧结构相似性值在帧结构相似性区间内时soft_pitch_reuse_flag为1,且执行本申请实施例中的差分编码方法,帧结构相似性值不在帧结构相似性区间内时,soft_pitch_reuse_flag为0,执行独立编码方法。
S102:若不具有帧结构相似性,则使用次要声道信号的基音周期独立编码方法,对次要声道信号的基音周期进行编码。
S103:计算帧结构相似性值。
计算帧结构相似性值的具体步骤包括:
S10301:基音周期映射。
在本实施例中以编码速率为32kbps为例,基音周期编码按子帧进行,主要声道信号被划分为5个子帧,次要声道信号被划分为4个子帧。根据主要声道信号的基音周期确定次要声道信号基音周期的参考值,其中一种方法是直接将主要声道信号的基音周期作为次要声道信号的基音周期参考值,即从主要声道信号5个子帧中的基音周期选出4个值作为次要声道信号4个子帧的基音周期参考值。另一种方法是采用插值方法将主要声道信号5个子帧中的基音周期映射为次要声道信号4个子帧的基音周期参考值。通过以上方法均可以得到次要声道信号的闭环基音周期参考值,其中整数部分为loc_T0,分数部分为loc_frac_prim。
S10302:计算次要声道信号的基音周期参考值。
采用下式计算得到次要声道信号的基音周期参考值f_pitch_prim:
f_pitch_prim=loc_T0+loc_frac_prim/4.0。
S10303:计算帧结构相似性值。
采用下式计算得到帧结构相似性值ol_pitch:
ol_pitch=T_op-f_pitch_prim,
其中,T_op为次要声道信号开环基音分析得到的开环基音周期。
S10304:判断帧结构相似性值是否属于帧结构相似性区间,根据判决结果选择相应的方法编码次要声道信号的基音周期。
若帧结构相似性属于帧结构相似性区间,则使用次要声道信号的基音周期差分编码方法,对次要声道信号的基音周期进行编码。若帧结构相似性不属于帧结构相似性区间,则使用次要声道信号的基音周期独立编码方法,对次要声道信号的基音周期进行编码。
具体地可以是,判断帧结构相似性值是否属于帧结构相似性区间。例如,判断ol_pitch是否满足down_limit<ol_pitch<up_limit,其中,down_limit和up_limit分别为自定义的帧结构相似性区间的下限阈值和上限阈值。例如,本申请实施例中可以设置多个帧结构相似性区间,例如设置3个档次的帧结构相似性区间,例如最低档次的帧结构相似性区间的最小值为﹣4.0,最低档次的帧结构相似性区间的最大值为3.75;或,中档次的帧结构相似性区间的最小值为﹣2.0,中档次的帧结构相似性区间的最大值为1.75;或,最高档次的帧结构相似性区间的最小值为﹣1.0,最高档次的帧结构相似性区间的最大值为0.75,基于上述不同档次的帧结构相似性区间,可以分别执行如下判断:-4.0<ol_pitch<3.75,或者-2.0<ol_pitch<1.75,或者-1.0<ol_pitch<0.75。
当满足于down_limit<ol_pitch<up_limit时,表示帧结构相似性值属于帧结构相似性区间,则执行下述步骤S11中面向次要声道信号的基音周期编码;否则执行下述步骤S12中的次要声道信号基音周期独立编码。
S11、次要声道信号基音周期独立编码。
次要声道信号采用独立编码方式,不考虑主要声道信号和次要声道信号之间的相关性,对基音周期估计值进行独立搜索、独立编码,编码方式如上一步骤S08中的主要声道信号编码和基音周期检测。
S12、次要声道信号基音周期差分编码。
在本实施例中基音周期编码按子帧进行,主要声道信号被划分为5个子帧,次要声道信号被划分为4个子帧。本实施例中采用插值方法将主要声道信号5个子帧中的基音周期映射为主要声道信号4个子帧的基音周期参考值。即主要声道信号的闭环基音周期映射值,其中整数部分为loc_T0,分数部分为loc_frac_prim。本实施例中次要声道信号基音周期编码的流程如下:
S121:根据主要声道信号的基音周期进行次要声道信号闭环基音周期搜索,确定次要声道信号基音周期估计值。
S12101:根据主要声道信号的基音周期确定次要声道信号基音周期的参考值,其中一种方法是直接将主要声道信号的基音周期作为次要声道信号基音周期的参考值,即从主要声道信号5个子帧中的基音周期选出4个值作为次要声道信号4个子帧的基音周期参考值。另一种方法是采用插值方法将主要声道信号5个子帧中的基音周期映射为次要声道信号4个子帧的基音周期参考值。通过以上方法均可以得到次要声道信号的闭环基音周期参考值,其中整数部分为loc_T0,分数部分为loc_frac_prim。
S12102:根据次要声道信号基音周期参考值进行次要声道信号闭环基音周期搜索,确定次要声道信号基音周期。具体为:使用次要声道信号的闭环基音周期参考值作为次要声道信号闭环基音周期搜索的起始点,采用整数精度和下采样分数精度进行闭环基音周期搜索,通过计算内插归一化相关性得到次要声道信号基音周期估计值。
例如,其中一种方法是采用2比特(bits)用于次要声道信号基音周期编码,具体为:
以loc_T0为搜索起点,在[loc_T0-1,loc_T0+1]范围内对次要声道信号基音周期进行整数精度搜索,每个搜索点再以loc_frac_prim为初始值,在[loc_frac_prim+2,loc_frac_prim+3]或[loc_frac_prim,loc_frac_prim-3]或[loc_frac_prim-2,loc_frac_prim+1]范围内对次要声道信号基音周期进行分数精度搜索,计算每个搜索点对应的内插归一化相关性,在一个帧计算多个搜索点对应的相似度,当内插归一化相关性取得最大值时,该搜索点即为最优次要声道信号基音周期估计值,其中整数部分为pitch_soft_reuse,分数部分为pitch_frac_soft_reuse。
又如,另一种方法是采用3bits至5bits用于编码次要声道信号基音周期编码,具体为:
当采用3bits至5bits用于编码次要声道信号基音周期编码时,搜索半径half_range分别为1,2,4。此时以loc_T0为搜索起点,在[loc_T0-half_range,loc_T0+half_range]范围内对次要声道信号基音周期进行整数精度搜索,每个搜索点再以loc_frac_prim为初始值,在[loc_frac_prim,loc_frac_prim+3]或[loc_frac_prim,loc_frac_prim-1]或[loc_frac_prim,loc_frac_prim+3]范围内计算每个搜索点对应的内插归一化相关性,当内插归一化相关性取得最大值时,该搜索点即为最优次要声道信号基音周期估计值,其中整数部分为pitch_soft_reuse,分数部分为pitch_frac_soft_reuse。
S122:利用主要声道信号基音周期和次要声道信号的基音周期进行差分编码。具体可以包括如下过程:
S12201:计算差分编码中次要声道信号基音周期索引上限。
次要声道信号基音周期索引上限用下式计算得到:
soft_reuse_index_high_limit=2Z,
其中,Z为次要声道基音周期搜索范围调整因子。本实施例中Z=3,4,5。
S12202:计算差分编码中次要声道信号基音周期索引值。
次要声道信号基音周期索引表征了对前述步骤得到的次要声道信号基音周期的参考值和最优次要声道信号基音周期估计值的差值进行差分编码的结果。
次要声道信号基音周期索引值soft_reuse_index用下式计算得到:
soft_reuse_index=(4*pitch_soft_reuse+pitch_frac_soft_reuse)-(4*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/2。
S12203:对次要声道信号基音周期索引进行差分编码。
例如,对次要声道信号基音周期索引soft_reuse_index进行残差编码。
本申请实施例采用次要声道信号的基音周期码方法,每个编码帧被划分为4个子帧(subframe),对每个子帧的基音周期进行差分编码。与次要声道信号的基音周期独立编码相比可以节省22bits或18bits,并分配给其他编码参数用于量化编码,例如可以将节省的比特开销分配给固定码表(fixed codebook)。
采用本申请实施例完成主要声道信号和次要声道信号的其他参数编码,以得到主要声道信号和次要声道信号的编码码流,将编码数据按一定码流格式要求写入立体声编码码流中。
接下来对本申请实施例中节省次要声道信号的编码开销的效果进行举例说明,对于次要声道信号基音周期独立编码方式,分配给4个子帧的基音周期编码比特数分别为10,6,9,6,即编码每帧需要31bits。而采用本申请实施例所提出的面向次要声道信号基音周期差分编码方法,每个子帧只需要3bits用于差分编码,再需要1bit用于编码帧结构相似性判别结果参数(值为0或1)。因此采用本申请实施例方法编码次要声道信号基音周期每帧只需要31-4×3=13bits。即可以节省18bits并分配给其他编码参数,例如固定码表参数等。
假设采用独立编码得到的次要声道基音周期为准确值时,评估采用本申请实施例方法计算得到的次要声道基音周期的准确率。当次要声道基音周期搜索范围调整因子Z取3,4,5时,对应高、中、低档次的帧结构相似性区间下的次要声道基音周期准确率,如下表1所示:
高档次 | 中档次 | 低档次 | |
满足条件帧数比例 | 17% | 39% | 55% |
Z=3 | 91% | 84% | 73% |
Z=4 | 97% | 93% | 86% |
Z=5 | 99% | 98% | 95% |
如图7所示,为采用独立编码方式和差分编码方式得到的基音周期量化结果的比较图。实线为独立编码的基音周期量化值,虚线为差分编码的基音周期量化值。图7中Z=3、采用低档次的帧结构相似性区间时,可以看出采用面向次要声道信号的基音周期差分编码可以准确的表征独立编码结果,随着采用的Z的取值增加,以采用高档次的帧结构相似性区间时,采用面向次要声道信号的基音周期差分编码可以更准确的表征独立编码结果。
由此可知,当采用3bit对次要声道基音周期进行编码时,约有17%的编码帧满足高档次帧结构相似性区间,此时次要声道基音周期编码准确率可以达到91%。与次要声道独立编码相比节省了18bit。当采用5bit对次要声道基音周期进行编码时,约有55%的编码帧满足低档次帧结构相似性区间,此时次要声道基音周期编码准确率可以达到95%。与次要声道独立编码相比节省了10bit。因此,用户可以根据实际传输带宽限制和编码精度需求自行选择次要声道基音周期搜索范围调整因子和不同档次帧结构相似性区间。在不同的配置下均可以达到节省次要声道基音周期编码比特目的。
如图8所示,为采用独立编码方式和差分编码方式之后分配给固定码表的比特数的比较图,实线为独立编码之后分配给固定码表的比特数,虚线为差分编码之后分配给固定码表的比特数。从图8中可以看出采用面向次要声道信号的基音周期差分编码节省出的大量比特资源分配至固定码表的量化编码上,使次要声道信号的编码质量得到提升。
接下对解码端的执行的立体声解码算法进行举例说明,主要执行如下流程:
S13:从码流中读取soft_pitch_reuse_flag;
S14:在满足如下条件:次要声道编码且编码速率较高,且主要声道和次要声道均为通用编码模式,且soft_pitch_reuse_flag=1时,进行次要声道基音周期差分解码,否则进行次要声道基音周期独立解码。
举例说明如下,次要声道基音周期复用标识为soft_pitch_reuse_flag、主要声道和次要声道的信号类型标识为both_chan_generic。例如在次要声道解码中,从码流中读取主要声道和次要声道的信号类型标识both_chan_generic;当both_chan_generic为1时,再从码流中读取次要声道基音周期复用标识soft_pitch_reuse_flag;帧结构相似性值在帧结构相似性区间内时,soft_pitch_reuse_flag为1,执行本申请实施例中的差分解码方法,帧结构相似性值不在帧结构相似性区间内时,soft_pitch_reuse_flag为0,执行独立解码方法。例如,在本申请实施例中,只有当满足soft_pitch_reuse_flag和both_chan_generic均为1时,才执行差分解码过程。
S1401:基音周期映射。
在本实施例中基音周期编码按子帧进行,主要声道被划分为5个子帧,次要声道被划分为4个子帧。根据主要声道信号的基音周期估计值确定次要声道基音周期的参考值,其中一种方法是直接将主要声道的基音周期作为次要声道基音周期的参考值,即从主要声道5个子帧中的基音周期选出4个值作为次要声道4个子帧的基音周期参考值。另一种方法是采用插值方法将主要声道5个子帧中的基音周期映射为次要声道4个子帧的基音周期参考值。通过以上方法均可以得到次要声道闭环基音周期的整数部分loc_T0和分数部分loc_frac_prim。
S1402:计算次要声道闭环基音周期参考值。
采用下式计算得到次要声道闭环基音周期参考值f_pitch_prim:
f_pitch_prim=loc_T0+loc_frac_prim/4.0
S1403:计算差分编码中次要声道基音周期索引上限。
次要声道基音周期索引上限用下式计算得到:
soft_reuse_index_high_limit=0.5+2Z
其中,Z为次要声道基音周期搜索范围调整因子。本实施例中Z可取3,或4,或5。
S1404:从码流中读取次要声道基音周期索引值soft_reuse_index;
S1405:计算次要声道信号的基音周期估计值。
T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/2.0)/4.0。
T0=INT(T0_pitch),
T0_frac=(T0_pitch–T0)*4.0。
其中,INT(T0_pitch)表示对T0_pitch下取整运算,T0为解码次要声道基音周期的整数部分,T0_frac为解码次要声道基音周期的分数部分。
前述实施例中描述了频域下的立体声编解码过程,接下来描述将本申请实施例应用于时域立体声编码时,前述实施例中的步骤S01到S07将由下述步骤S21到S26代替。如图9所示,为本申请实施例提供的时域立体声编码方法的示意图,具体地:
S21、对立体声时域信号进行时域预处理,以得到预处理后的立体声左右声道信号。
若立体声音频信号的采样率为16KHz,一帧信号为20ms,帧长记作N,则N=320,即帧长为320个样点。当前帧的立体声信号包括当前帧的左声道时域信号以及当前帧的右声道时域信号,当前帧的左声道时域信号记作xL(n),当前帧的右声道时域信号记作xR(n),其中n为样点序号,n=0,1,…,N-1。
对当前帧的左、右声道时域信号进行时域预处理,具体地可以包括对当前帧的左、右声道时域信号进行高通滤波处理,以得到当前帧预处理后的左、右声道时域信号。当前帧预处理后的左声道时域信号记作当前帧预处理后的右声道时域信号记作/>其中n为样点序号,n=0,1,…,N-1。
可以理解的是,对当前帧的左、右声道时域信号进行时域预处理不是必须要做的。如果没有时域预处理的步骤,则用于进行时延估计的左右声道信号就是原始立体声信号中的左右声道信号。这里原始立体声信号中的左右声道信号是指采集到的经过A/D转换后的PCM信号。信号的采样率可以包括8KHz、16KHz、32KHz、44.1KHz以及48KHz。
另外,预处理除了本实施例中描述的高通滤波处理,还可以包含其它处理,如预加重处理等,本申请实施例不做限定。
S22、根据当前帧预处理后的左、右声道时域信号,进行时延估计,获得当前帧估计出的声道间时延差。
最简单地,可以根据当前帧预处理后的左、右声道时域信号计算左右声道间的互相关函数。然后,搜索互相关函数的最大值,作为当前帧估计出的声道间时延差。
假设Tmax对应于当前采样率下声道间时延差取值的最大值,Tmin对应于当前采样率下声道间时延差取值的最小值。Tmax和Tmin为预先设定的实数,且Tmax>Tmin。在本实施例中,Tmax等于40,Tmin等于-40,在Tmin≤i≤Tmax范围内搜索左右声道间的互相关系数c(i)的最大值,以得到最大值对应的索引值,作为当前帧估计出的声道间时延差,记作cur_itd。
不限定的是,本申请实施例中还很多时延估计的具体方法,例如也可以是,根据当前帧预处理后的左、右声道时域信号或者根据当前帧的左、右声道时域信号计算左右声道间的互相关函数。然后,根据前L帧(L为大于等于1的整数)的左右声道间的互相关函数以及计算出的当前帧的左右声道间的互相关函数进行长时平滑处理,以得到平滑后的左右声道间的互相关函数,然后在Tmin≤i≤Tmax范围内搜索平滑后的左右声道间的互相关系数的最大值,以得到最大值对应的索引值,作为当前帧估计出的声道间时延差。还可以包括,对根据前M帧(M为大于等于1的整数)的声道间时延差和当前帧估计出的声道间时延差进行帧间平滑处理,用平滑后的声道间时延差作为当前帧最终估计出的声道间时延差。本申请实施例不限于以上所述的时延估计方法。
其中,当前帧估计出的声道时延差,通过在Tmin≤i≤Tmax范围内搜索左右声道间的互相关系数c(i)的最大值,以得到最大值对应的索引值。
S23、根据当前帧估计出的声道间时延差,对立体声左右声道信号进行时延对齐处理,以得到时延对齐后的立体声信号。
本申请实施例中对立体声左右声道信号进行时延对齐处理的方法有很多种,例如,根据当前帧估计出的声道间时延差以及前一帧的声道间时延差,对立体声左右声道信号中的一路或者两路进行压缩或拉伸处理,使得处理后得到的时延对齐后的立体声信号中两路信号不存在声道间时延差。本申请实施例不限于以上所述的时延对齐处理方法。
当前帧时延对齐后的左声道时域信号记作x′L(n),当前帧时延对齐后的右声道时域信号记作x′R(n),其中n为样点序号,n=0,1,…,N-1。
S24、量化编码当前帧估计出的声道间时延差。
量化声道间时延差的方法可以多种,例如对当前帧估计出的声道间时延差进行量化处理,以得到量化索引,然后对量化索引编码。将量化索引编码后写入码流。
S25、根据时延对齐后的立体声信号,计算声道组合比例因子并量化编码,可以增加将量化编码结果写入码流。
计算声道组合比例因子的方法有很多种。例如本申请实施例中计算声道组合比例因子的方法。首先根据当前帧时延对齐后的左、右声道时域信号,计算左、右声道的帧能量。
当前帧左声道的帧能量rms_L满足:
当前帧右声道的帧能量rms_R满足:
其中,x′L(n)为当前帧时延对齐后的左声道时域信号,x′R(n)为当前帧时延对齐后的右声道时域信号。
然后,根据左、右声道的帧能量,计算当前帧的声道组合比例因子。
计算得到的当前帧的声道组合比例因子ratio满足:
最后,对计算出的当前帧声道组合比例因子进行量化,以得到比例因子对应的量化索引ratio_idx,及量化后的当前帧的声道组合比例因子ratioqua:
ratioqua=ratio_tabl[ratio_idx],
其中,ratio_tabl为标量量化的码书。量化编码可以采用本申请实施例中的任何一种标量量化方法,如均匀的标量量化,也可以是非均匀的标量量化,编码比特数可以是5比特,这里对具体方法不再赘述。
本申请实施例不限于以上所述的声道组合比例因子计算和量化编码方法。
S26、根据声道组合比例因子对时延对齐后的立体声信号进行时域下混处理,以得到主要声道信号和次要声道信号。
具体地,可以使用本申请实施例中的任何一种时域下混处理实现。但是需要注意的是,需要根据声道组合比例因子的计算方法选择对应的时域下混处理方式,对时延对齐后的立体声信号进行时域下混处理,以得到主要声道信号和次要声道信号。
例如,上面的不用前述步骤5中的计算声道组合比例因子的方法,其对应的时域下混处理可以是:根据声道组合比例因子ratio进行时域下混处理,第一种声道组合方案对应的时域下混处理后得到的主要声道信号Y(n)和次要声道信号X(n)满足:
本申请实施例不限于以上所述的时域下混处理方法。
S27、对次要声道信号进行差分编码。
对于步骤S27所包括的内容,详见前述实施例中步骤S10至步骤S12的描述,此处不再赘述。
通过前述的举例说明可知,本申请实施例中,根据主要声道信号类型和次要声道信号类型等参数进行帧结构相似性值的计算,再通过帧结构相似性值与帧结构相似性区间的判决是否采用次要声道信号基音周期差分编码,通过差分编码的方式,可以节省对次要声道信号的基音周期的编码开销。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
为便于更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图10所示,本申请实施例提供的一种立体声编码装置1000,可以包括:下混模块1001、相似性值确定模块1002、差分编码模块1003,其中,
下混模块1001,用于对当前帧的左声道信号和所述当前帧的右声道信号进行下混处理,以得到所述当前帧的主要声道信号和所述当前帧的次要声道信号;
相似性值确定模块1002,用于确定所述主要声道信号和所述次要声道信号之间的帧结构相似性值是否在预设的帧结构相似性区间内;
差分编码模块1003,用于当确定所述帧结构相似性值在所述帧结构相似性区间内时,使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,以得到所述次要声道信号的基音周期索引值,所述次要声道信号的基音周期索引值用于生成待发送的立体声编码码流。
在本申请的一些实施例中,所述立体声编码装置还包括:
信号类型标识获取模块,用于所述相似性值确定模块确定所述主要声道信号和所述次要声道信号之间的帧结构相似性值是否在预设的帧结构相似性区间内之后,根据所述主要声道信号和所述次要声道信号获取信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;
复用标识配置模块,用于当所述信号类型标识为预设的第一标识、且所述帧结构相似性值在所述帧结构相似性区间内时,将所述次要声道基音周期复用标识配置为第二标识,所述第一标识和所述第二标识用于生成所述立体声编码码流。
在本申请的一些实施例中,所述立体声编码装置还包括:
所述复用标识配置模块,还用于当确定所述帧结构相似性值不在所述帧结构相似性区间内时,或者当所述信号类型标识为预设的第三标识时,将所述次要声道基音周期复用标识配置为第四标识,所述第四标识和所述第三标识用于生成所述立体声编码码流;
独立编码模块,用于对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行编码。
在本申请的一些实施例中,所述立体声编码装置还包括:
开环基音周期分析模块,用于对所述当前帧的次要声道信号进行开环基音周期分析,以得到所述次要声道信号的开环基音周期估计值;
闭环基音周期分析模块,用于根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;
相似性值计算模块,用于根据所述次要声道信号的开环基音周期估计值和所述次要声道信号的闭环基音周期参考值,确定所述帧结构相似性值。
在本申请的一些实施例中,所述闭环基音周期分析模块,用于根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分loc_frac_prim;通过如下方式计算出所述次要声道信号的闭环基音周期参考值f_pitch_prim:
f_pitch_prim=loc_T0+loc_frac_prim/N;
其中,所述N表示所述次要声道信号被划分的子帧个数。
在本申请的一些实施例中,所述相似性值计算模块,用于通过如下方式计算出所述帧结构相似性值ol_pitch:
ol_pitch=T_op﹣f_pitch_prim;
其中,所述T_op表示所述次要声道信号的开环基音周期估计值,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值。
在本申请的一些实施例中,所述差分编码模块,包括:
闭环基音周期搜索模块,用于根据所述主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值;
索引值上限确定模块,用于根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;
索引值计算模块,用于根据所述主要声道信号的基音周期估计值、所述次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期索引值。
在本申请的一些实施例中,所述闭环基音周期搜索模块,用于使用所述次要声道信号的闭环基音周期参考值作为所述次要声道信号的闭环基音周期搜索的起始点,采用整数精度和分数精度进行闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的闭环基音周期参考值通过所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数确定。
在本申请的一些实施例中,所述索引值上限确定模块,用于通过如下方式计算出所述次要声道信号的基音周期索引值上限soft_reuse_index_high_limit;
soft_reuse_index_high_limit=0.5+2Z;
其中,所述Z为所述次要声道信号的基音周期搜索范围调整因子,所述Z的取值为:3、或者4、或者5。
在本申请的一些实施例中,所述索引值计算模块,用于根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分loc_frac_prim;通过如下方式计算出所述次要声道信号的基音周期索引值soft_reuse_index:
soft_reuse_index=(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M;
其中,所述pitch_soft_reuse表示所述次要声道信号的基音周期估计值的整数部分,所述pitch_frac_soft_reuse表示所述次要声道信号的基音周期估计值的分数部分,所述soft_reuse_index_high_limit表示所述次要声道信号的基音周期索引值上限,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述*表示相乘运算符,所述+表示相加运算符,所述﹣表示相减运算符。
在本申请的一些实施例中,所述立体声编码装置应用于所述当前帧的编码速率超过预设的速率阈值的立体声编码场景;
所述速率阈值为如下取值中的至少一种:32千比特每秒kbps、48kbps、64kbps、96kbps、128kbps、160kbps、192kbps、256kbps。
在本申请的一些实施例中,所述帧结构相似性区间的最小值为﹣4.0,所述帧结构相似性区间的最大值为3.75;或,
所述帧结构相似性区间的最小值为﹣2.0,所述帧结构相似性区间的最大值为1.75;或,
所述帧结构相似性区间的最小值为﹣1.0,所述帧结构相似性区间的最大值为0.75。
请参阅图11所示,本申请实施例提供的一种立体声解码装置1100,可以包括:确定模块1101、值获取模块1102、差分解码模块1103,其中,
确定模块1101,用于根据接收到的立体声编码码流确定是否对次要声道信号的基音周期进行差分解码;
值获取模块1102,用于当确定对所述次要声道信号的基音周期进行差分解码时,从所述立体声编码码流中获取当前帧的主要声道信号的基音周期估计值和所述当前帧的次要声道信号的基音周期索引值;
差分解码模块1103,用于根据所述主要声道信号的基音周期估计值和所述次要声道信号的基音周期索引值,对所述次要声道信号的基音周期进行差分解码,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的基音周期估计值用于解码得到立体声解码码流。
在本申请的一些实施例中,所述确定模块,用于从所述当前帧中获取次要声道信号基音周期复用标识和信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第二标识时,确定对所述次要声道信号的基音周期进行差分解码。
在本申请的一些实施例中,所述立体声解码装置,还包括:
独立解码模块,用于当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第四标识时,或者当所述信号类型标识为预设的第三标识、且所述次要声道信号基音周期复用标识为第四标识时,对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行解码。
在本申请的一些实施例中,所述差分解码模块,包括:
参考值确定子模块,用于根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;
索引值上限确定子模块,用于根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;
估计值计算子模块,用于根据所述次要声道信号的闭环基音周期参考值、所述次要声道信号的基音周期索引值和所述次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期估计值。
在本申请的一些实施例中,所述估计值计算子模块,用于通过如下方式计算出所述次要声道信号的基音周期估计值T0_pitch:
T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N;
其中,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值,所述soft_reuse_index表示所述次要声道信号的基音周期索引值,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述/表示相除运算符,所述+表示相加运算符,所述﹣表示相减运算符。
通过前述实施例的举例说明,本申请实施例中由于使用了主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分编码,因此不需要再对次要声道信号的基音周期进行独立编码,因此可以使用少量比特资源分配给次要声道信号的基音周期进行差分编码,通过对次要声道信号的基音周期进行差分编码,可以提高立体声信号的空间感和声像稳定性。另外,本申请实施例中采用较小的比特资源进行了次要声道信号的基音周期的差分编码,因此可以将节省的比特资源用于立体声的其他编码参数,进而提升了次要声道的编码效率,最终提升了整体的立体声编码质量。本申请实施例中在可以对次要声道信号的基音周期进行差分解码时,可以使用主要声道信号的基音周期估计值对次要声道信号的基音周期进行差分解码,通过对次要声道信号的基音周期进行差分解码,可以提高立体声信号的空间感和声像稳定性,进而提升了次要声道的解码效率,最终提升了整体的立体声解码质量。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本申请实施例提供的另一种立体声编码装置,请参阅图12所示,立体声编码装置1200包括:
接收器1201、发射器1202、处理器1203和存储器1204(其中立体声编码装置1200中的处理器1203的数量可以一个或多个,图12中以一个处理器为例)。在本申请的一些实施例中,接收器1201、发射器1202、处理器1203和存储器1204可通过总线或其它方式连接,其中,图12中以通过总线连接为例。
存储器1204可以包括只读存储器和随机存取存储器,并向处理器1203提供指令和数据。存储器1204的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1204存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器1203控制立体声编码装置的操作,处理器1203还可以称为中央处理单元(central processing unit,CPU)。具体的应用中,立体声编码装置的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1203中,或者由处理器1203实现。处理器1203可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1203中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1203可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1204,处理器1203读取存储器1204中的信息,结合其硬件完成上述方法的步骤。
接收器1201可用于接收输入的数字或字符信息,以及产生与立体声编码装置的相关设置以及功能控制有关的信号输入,发射器1202可包括显示屏等显示设备,发射器1202可用于通过外接接口输出数字或字符信息。
本申请实施例中,处理器1203用于执行前述实施例图4所示的由立体声编码装置执行的立体声编码方法。
接下来介绍本申请实施例提供的另一种立体声解码装置,请参阅图13所示,立体声解码装置1300包括:
接收器1301、发射器1302、处理器1303和存储器1304(其中立体声解码装置1300中的处理器1303的数量可以一个或多个,图13中以一个处理器为例)。在本申请的一些实施例中,接收器1301、发射器1302、处理器1303和存储器1304可通过总线或其它方式连接,其中,图13中以通过总线连接为例。
存储器1304可以包括只读存储器和随机存取存储器,并向处理器1303提供指令和数据。存储器1304的一部分还可以包括NVRAM。存储器1304存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器1303控制立体声解码装置的操作,处理器1303还可以称为CPU。具体的应用中,立体声解码装置的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1303中,或者由处理器1303实现。处理器1303可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1303中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1303可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1304,处理器1303读取存储器1304中的信息,结合其硬件完成上述方法的步骤。
本申请实施例中,处理器1303,用于执行前述实施例图4所示的由立体声解码装置执行的立体声解码方法。
在另一种可能的设计中,当立体声编码装置或者立体声解码装置为终端内的芯片时,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端内的芯片执行上述第一方面任意一项的无线通信方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面或第二方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (39)
1.一种立体声编码方法,其特征在于,包括:
对当前帧的左声道信号和所述当前帧的右声道信号进行下混处理,以得到所述当前帧的主要声道信号和所述当前帧的次要声道信号;
当确定帧结构相似性值在帧结构相似性区间内时,使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,以得到所述次要声道信号的基音周期索引值,所述次要声道信号的基音周期索引值用于生成待发送的立体声编码码流;
其中,所述帧结构相似性值通过如下方式确定:
对所述当前帧的次要声道信号进行开环基音周期分析,以得到所述次要声道信号的开环基音周期估计值;
根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;
根据所述次要声道信号的开环基音周期估计值和所述次要声道信号的闭环基音周期参考值,确定所述帧结构相似性值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述主要声道信号和所述次要声道信号获取信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;
当所述信号类型标识为预设的第一标识、且所述帧结构相似性值在所述帧结构相似性区间内时,将所述次要声道基音周期复用标识配置为第二标识,所述第一标识和所述第二标识用于生成所述立体声编码码流。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当确定所述帧结构相似性值不在所述帧结构相似性区间内时,或者当所述信号类型标识为预设的第三标识时,将所述次要声道基音周期复用标识配置为第四标识,所述第四标识和所述第三标识用于生成所述立体声编码码流;
对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行编码。
4.根据权利要求1所述的方法,其特征在于,所述根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值,包括:
根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分 loc_frac_prim;
通过如下方式计算出所述次要声道信号的闭环基音周期参考值f_pitch_prim:
f_pitch_prim = loc_T0+loc_frac_prim/N;
其中,所述N表示所述次要声道信号被划分的子帧个数。
5.根据权利要求1所述的方法,其特征在于,所述根据所述次要声道信号的开环基音周期估计值和所述次要声道信号的闭环基音周期参考值,确定所述帧结构相似性值,包括:
通过如下方式计算出所述帧结构相似性值ol_pitch:
ol_pitch = T_op﹣f_pitch_prim;
其中,所述T_op表示所述次要声道信号的开环基音周期估计值,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,包括:
根据所述主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值;
根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;
根据所述主要声道信号的基音周期估计值、所述次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期索引值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值,包括:
使用所述次要声道信号的闭环基音周期参考值作为所述次要声道信号的闭环基音周期搜索的起始点,采用整数精度和分数精度进行闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的闭环基音周期参考值通过所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数确定。
8.根据权利要求6所述的方法,其特征在于,所述根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限,包括:
通过如下方式计算出所述次要声道信号的基音周期索引值上限soft_reuse_index_high_limit;
soft_reuse_index_high_limit= 0.5+2Z;
其中,所述Z为所述次要声道信号的基音周期搜索范围调整因子。
9.根据权利要求8所述的方法,其特征在于,所述Z的取值为:3、或者4、或者5。
10.根据权利要求6所述的方法,其特征在于,所述根据所述主要声道信号的基音周期估计值、所述次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期索引值,包括:
根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分 loc_frac_prim;
通过如下方式计算出所述次要声道信号的基音周期索引值soft_reuse_index:
soft_reuse_index=(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M;
其中,所述pitch_soft_reuse表示所述次要声道信号的基音周期估计值的整数部分,所述pitch_frac_soft_reuse表示所述次要声道信号的基音周期估计值的分数部分,所述soft_reuse_index_high_limit表示所述次要声道信号的基音周期索引值上限,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述*表示相乘运算符,所述+表示相加运算符,所述﹣表示相减运算符。
11.根据权利要求10所述的方法,其特征在于,所述次要声道信号的基音周期索引值上限的调整因子的取值为2,或者3。
12.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法应用于所述当前帧的编码速率超过预设的速率阈值的立体声编码场景;
所述速率阈值为如下取值中的至少一种:32kbps、48kbps、64kbps、96kbps、128kbps、160kbps、192kbps、256kbps。
13.根据权利要求1至3中任一项所述的方法,其特征在于,所述帧结构相似性区间的最小值为﹣4.0,所述帧结构相似性区间的最大值为3.75;或,
所述帧结构相似性区间的最小值为﹣2.0,所述帧结构相似性区间的最大值为1.75;或,
所述帧结构相似性区间的最小值为﹣1.0,所述帧结构相似性区间的最大值为0.75。
14.一种立体声解码方法,其特征在于,包括:
根据接收到的立体声编码码流确定是否对次要声道信号的基音周期进行差分解码;
当确定对所述次要声道信号的基音周期进行差分解码时,从所述立体声编码码流中获取当前帧的主要声道信号的基音周期估计值和所述当前帧的次要声道信号的基音周期索引值;
根据所述主要声道信号的基音周期估计值和所述次要声道信号的基音周期索引值,对所述次要声道信号的基音周期进行差分解码,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的基音周期估计值用于解码得到立体声解码码流;
其中,所述根据所述主要声道信号的基音周期估计值和所述次要声道信号的基音周期索引值,对所述次要声道信号的基音周期进行差分解码,包括:
根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;
根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;
根据所述次要声道信号的闭环基音周期参考值、所述次要声道信号的基音周期索引值和所述次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期估计值。
15.根据权利要求14所述的方法,其特征在于,所述根据接收到的立体声编码码流确定是否对所述次要声道信号的基音周期进行差分解码,包括:
从所述当前帧中获取次要声道信号基音周期复用标识和信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;
当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第二标识时,确定对所述次要声道信号的基音周期进行差分解码。
16.根据权利要求15所述的方法,其特征在于,所述方法,还包括:
当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第四标识时,或者当所述信号类型标识为预设的第三标识时,对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行解码。
17.根据权利要求14至16中任一项所述的方法,其特征在于,所述根据所述次要声道信号的闭环基音周期参考值、所述次要声道信号的基音周期索引值和所述次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期估计值,包括:
通过如下方式计算出所述次要声道信号的基音周期估计值T0_pitch:
T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N;
其中,所述f_pitch_prim 表示所述次要声道信号的闭环基音周期参考值,所述soft_reuse_index表示所述次要声道信号的基音周期索引值,所述soft_reuse_index_high_limit表示所述次要声道信号的基音周期索引上限,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述/表示相除运算符,所述+表示相加运算符,所述﹣表示相减运算符。
18.根据权利要求17所述的方法,其特征在于,所述次要声道信号的基音周期索引值上限的调整因子的取值为2,或者3。
19.一种立体声编码装置,其特征在于,包括:
下混模块,用于对当前帧的左声道信号和所述当前帧的右声道信号进行下混处理,以得到所述当前帧的主要声道信号和所述当前帧的次要声道信号;
差分编码模块,用于当确定帧结构相似性值在帧结构相似性区间内时,使用所述主要声道信号的基音周期估计值对所述次要声道信号的基音周期进行差分编码,以得到所述次要声道信号的基音周期索引值,所述次要声道信号的基音周期索引值用于生成待发送的立体声编码码流;
所述立体声编码装置还包括:
开环基音周期分析模块,用于对所述当前帧的次要声道信号进行开环基音周期分析,以得到所述次要声道信号的开环基音周期估计值;
闭环基音周期分析模块,用于根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;
相似性值计算模块,用于根据所述次要声道信号的开环基音周期估计值和所述次要声道信号的闭环基音周期参考值,确定所述帧结构相似性值。
20.根据权利要求19所述的装置,其特征在于,所述立体声编码装置还包括:
信号类型标识获取模块,用于根据所述主要声道信号和所述次要声道信号获取信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;
复用标识配置模块,用于当所述信号类型标识为预设的第一标识、且所述帧结构相似性值在所述帧结构相似性区间内时,将所述次要声道基音周期复用标识配置为第二标识,所述第一标识和所述第二标识用于生成所述立体声编码码流。
21.根据权利要求20所述的装置,其特征在于,所述立体声编码装置还包括:
所述复用标识配置模块,还用于当确定所述帧结构相似性值不在所述帧结构相似性区间内时,或者当所述信号类型标识为预设的第三标识时,将所述次要声道基音周期复用标识配置为第四标识,所述第四标识和所述第三标识用于生成所述立体声编码码流;
独立编码模块,用于对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行编码。
22.根据权利要求19所述的装置,其特征在于,所述闭环基音周期分析模块,用于根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分 loc_frac_prim;通过如下方式计算出所述次要声道信号的闭环基音周期参考值f_pitch_prim:
f_pitch_prim = loc_T0+loc_frac_prim/N;
其中,所述N表示所述次要声道信号被划分的子帧个数。
23.根据权利要求19所述的装置,其特征在于,所述相似性值计算模块,用于通过如下方式计算出所述帧结构相似性值ol_pitch:
ol_pitch = T_op﹣f_pitch_prim;
其中,所述T_op表示所述次要声道信号的开环基音周期估计值,所述f_pitch_prim表示所述次要声道信号的闭环基音周期参考值。
24.根据权利要求19至21中任一项所述的装置,其特征在于,所述差分编码模块,包括:
闭环基音周期搜索模块,用于根据所述主要声道信号的基音周期估计值进行次要声道的闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值;
索引值上限确定模块,用于根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;
索引值计算模块,用于根据所述主要声道信号的基音周期估计值、所述次要声道信号的基音周期估计值和次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期索引值。
25.根据权利要求24所述的装置,其特征在于,所述闭环基音周期搜索模块,用于使用所述次要声道信号的闭环基音周期参考值作为所述次要声道信号的闭环基音周期搜索的起始点,采用整数精度和分数精度进行闭环基音周期搜索,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的闭环基音周期参考值通过所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数确定。
26.根据权利要求24所述的装置,其特征在于,所述索引值上限确定模块,用于通过如下方式计算出所述次要声道信号的基音周期索引值上限soft_reuse_index_high_limit;
soft_reuse_index_high_limit= 0.5+2Z;
其中,所述Z为所述次要声道信号的基音周期搜索范围调整因子。
27.根据权利要求26所述的装置,其特征在于,所述Z的取值为:3、或者4、或者5。
28.根据权利要求24所述的装置,其特征在于,所述索引值计算模块,用于根据所述主要声道信号的基音周期估计值确定所述次要声道信号的闭环基音周期整数部分loc_T0,和所述次要声道信号的闭环基音周期分数部分 loc_frac_prim;通过如下方式计算出所述次要声道信号的基音周期索引值soft_reuse_index:
soft_reuse_index=(N*pitch_soft_reuse+pitch_frac_soft_reuse)﹣(N*loc_T0+loc_frac_prim)+soft_reuse_index_high_limit/M;
其中,所述pitch_soft_reuse表示所述次要声道信号的基音周期估计值的整数部分,所述pitch_frac_soft_reuse表示所述次要声道信号的基音周期估计值的分数部分,所述soft_reuse_index_high_limit表示所述次要声道信号的基音周期索引值上限,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述*表示相乘运算符,所述+表示相加运算符,所述﹣表示相减运算符。
29.根据权利要求28所述的装置,其特征在于,所述次要声道信号的基音周期索引值上限的调整因子的取值为2,或者3。
30.根据权利要求19至21中任一项所述的装置,其特征在于,所述立体声编码装置应用于所述当前帧的编码速率超过预设的速率阈值的立体声编码场景;
所述速率阈值为如下取值中的至少一种:32kbps、48kbps、64kbps、96kbps、128kbps、160kbps、192kbps、256kbps。
31.根据权利要求19至21中任一项所述的装置,其特征在于,所述帧结构相似性区间的最小值为﹣4.0,所述帧结构相似性区间的最大值为3.75;或,
所述帧结构相似性区间的最小值为﹣2.0,所述帧结构相似性区间的最大值为1.75;或,
所述帧结构相似性区间的最小值为﹣1.0,所述帧结构相似性区间的最大值为0.75。
32.一种立体声解码装置,其特征在于,包括:
确定模块,用于根据接收到的立体声编码码流确定是否对次要声道信号的基音周期进行差分解码;
值获取模块,用于当确定对所述次要声道信号的基音周期进行差分解码时,从所述立体声编码码流中获取当前帧的主要声道信号的基音周期估计值和所述当前帧的次要声道信号的基音周期索引值;
差分解码模块,用于根据所述主要声道信号的基音周期估计值和所述次要声道信号的基音周期索引值,对所述次要声道信号的基音周期进行差分解码,以得到所述次要声道信号的基音周期估计值,所述次要声道信号的基音周期估计值用于解码得到立体声解码码流;
所述差分解码模块,包括:
参考值确定子模块,用于根据所述主要声道信号的基音周期估计值和所述当前帧的次要声道信号被划分的子帧个数,确定所述次要声道信号的闭环基音周期参考值;
索引值上限确定子模块,用于根据所述次要声道信号的基音周期搜索范围调整因子确定所述次要声道信号的基音周期索引值上限;
估计值计算子模块,用于根据所述次要声道信号的闭环基音周期参考值、所述次要声道信号的基音周期索引值和所述次要声道信号的基音周期索引值上限计算出所述次要声道信号的基音周期估计值。
33.根据权利要求32所述的装置,其特征在于,所述确定模块,用于从所述当前帧中获取次要声道信号基音周期复用标识和信号类型标识,所述信号类型标识用于标识所述主要声道信号的信号类型和所述次要声道信号的信号类型;当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第二标识时,确定对所述次要声道信号的基音周期进行差分解码。
34.根据权利要求33所述的装置,其特征在于,所述立体声解码装置,还包括:
独立解码模块,用于当所述信号类型标识为预设的第一标识、且所述次要声道信号基音周期复用标识为第四标识时,或者当所述信号类型标识为预设的第三标识、且所述次要声道信号基音周期复用标识为第四标识时,对所述次要声道信号的基音周期和所述主要声道信号的基音周期分别进行解码。
35.根据权利要求32至34中任一项所述的装置,其特征在于,所述估计值计算子模块,用于通过如下方式计算出所述次要声道信号的基音周期估计值T0_pitch:
T0_pitch=f_pitch_prim+(soft_reuse_index-soft_reuse_index_high_limit/M)/N;
其中,所述f_pitch_prim 表示所述次要声道信号的闭环基音周期参考值,所述soft_reuse_index表示所述次要声道信号的基音周期索引值,所述soft_reuse_index_high_limit表示所述次要声道信号的基音周期索引上限,所述N表示所述次要声道信号被划分的子帧个数,所述M表示所述次要声道信号的基音周期索引值上限的调整因子,M为非零的实数,所述/表示相除运算符,所述+表示相加运算符,所述﹣表示相减运算符。
36.根据权利要求35所述的装置,其特征在于,所述次要声道信号的基音周期索引值上限的调整因子的取值为2,或者3。
37.一种立体声编码装置,其特征在于,所述立体声编码装置包括至少一个处理器,所述至少一个处理器用于与存储器耦合,读取并执行所述存储器中的指令,以实现如权利要求1至13中任一项所述的方法。
38.一种立体声解码装置,其特征在于,所述立体声解码装置包括至少一个处理器,所述至少一个处理器用于与存储器耦合,读取并执行所述存储器中的指令,以实现如权利要求14至18中任一项所述的方法。
39.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至13、或者14至18中任意一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581386.2A CN112151045B (zh) | 2019-06-29 | 2019-06-29 | 一种立体声编码方法、立体声解码方法和装置 |
KR1020227000340A KR102710541B1 (ko) | 2019-06-29 | 2020-06-16 | 스테레오 코딩 방법 및 디바이스, 및 스테레오 디코딩 방법 및 디바이스 |
EP20834415.0A EP3975174A4 (en) | 2019-06-29 | 2020-06-16 | METHOD AND DEVICE FOR STEREO CODING AND METHOD AND DEVICE FOR STEREO DECODING |
PCT/CN2020/096307 WO2021000724A1 (zh) | 2019-06-29 | 2020-06-16 | 一种立体声编码方法、立体声解码方法和装置 |
US17/551,451 US11887607B2 (en) | 2019-06-29 | 2021-12-15 | Stereo encoding method and apparatus, and stereo decoding method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581386.2A CN112151045B (zh) | 2019-06-29 | 2019-06-29 | 一种立体声编码方法、立体声解码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112151045A CN112151045A (zh) | 2020-12-29 |
CN112151045B true CN112151045B (zh) | 2024-06-04 |
Family
ID=73891298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910581386.2A Active CN112151045B (zh) | 2019-06-29 | 2019-06-29 | 一种立体声编码方法、立体声解码方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11887607B2 (zh) |
EP (1) | EP3975174A4 (zh) |
KR (1) | KR102710541B1 (zh) |
CN (1) | CN112151045B (zh) |
WO (1) | WO2021000724A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112233682B (zh) * | 2019-06-29 | 2024-07-16 | 华为技术有限公司 | 一种立体声编码方法、立体声解码方法和装置 |
CN115346537A (zh) * | 2021-05-14 | 2022-11-15 | 华为技术有限公司 | 一种音频编码、解码方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592937A (zh) * | 2015-03-09 | 2018-01-16 | 弗劳恩霍夫应用研究促进协会 | 用于对多声道信号进行编码或解码的装置与方法 |
CN108206021A (zh) * | 2016-12-16 | 2018-06-26 | 南京青衿信息科技有限公司 | 一种后向兼容式三维声编码器、解码器及其编解码方法 |
CN108352162A (zh) * | 2015-09-25 | 2018-07-31 | 沃伊斯亚吉公司 | 用于使用主声道的编码参数编码立体声声音信号以编码辅声道的方法和系统 |
CN109300480A (zh) * | 2017-07-25 | 2019-02-01 | 华为技术有限公司 | 立体声信号的编解码方法和编解码装置 |
CN109389985A (zh) * | 2017-08-10 | 2019-02-26 | 华为技术有限公司 | 时域立体声编解码方法和相关产品 |
CN112233682A (zh) * | 2019-06-29 | 2021-01-15 | 华为技术有限公司 | 一种立体声编码方法、立体声解码方法和装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3343082B2 (ja) * | 1998-10-27 | 2002-11-11 | 松下電器産業株式会社 | Celp型音声符号化装置 |
JP3863706B2 (ja) * | 2000-07-04 | 2006-12-27 | 三洋電機株式会社 | 音声符号化方法 |
US6584437B2 (en) * | 2001-06-11 | 2003-06-24 | Nokia Mobile Phones Ltd. | Method and apparatus for coding successive pitch periods in speech signal |
DE102004009954B4 (de) * | 2004-03-01 | 2005-12-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Verarbeiten eines Multikanalsignals |
JP4555299B2 (ja) * | 2004-09-28 | 2010-09-29 | パナソニック株式会社 | スケーラブル符号化装置およびスケーラブル符号化方法 |
US7953605B2 (en) * | 2005-10-07 | 2011-05-31 | Deepen Sinha | Method and apparatus for audio encoding and decoding using wideband psychoacoustic modeling and bandwidth extension |
US20090319263A1 (en) * | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
US8670990B2 (en) * | 2009-08-03 | 2014-03-11 | Broadcom Corporation | Dynamic time scale modification for reduced bit rate audio coding |
JP5345024B2 (ja) * | 2009-08-28 | 2013-11-20 | 日本放送協会 | 3次元音響符号化装置、3次元音響復号装置、符号化プログラム及び復号プログラム |
JPWO2012046447A1 (ja) * | 2010-10-06 | 2014-02-24 | パナソニック株式会社 | 符号化装置、復号装置、符号化方法及び復号方法 |
US8762136B2 (en) * | 2011-05-03 | 2014-06-24 | Lsi Corporation | System and method of speech compression using an inter frame parameter correlation |
US9015039B2 (en) * | 2011-12-21 | 2015-04-21 | Huawei Technologies Co., Ltd. | Adaptive encoding pitch lag for voiced speech |
EP2959479B1 (en) * | 2013-02-21 | 2019-07-03 | Dolby International AB | Methods for parametric multi-channel encoding |
CN103247293B (zh) * | 2013-05-14 | 2015-04-08 | 中国科学院自动化研究所 | 一种语音数据的编码及解码方法 |
CN104347077B (zh) * | 2014-10-23 | 2018-01-16 | 清华大学 | 一种立体声编解码方法 |
CN105405445B (zh) * | 2015-12-10 | 2019-03-22 | 北京大学 | 一种基于声道间传递函数的参数立体声编码、解码方法 |
-
2019
- 2019-06-29 CN CN201910581386.2A patent/CN112151045B/zh active Active
-
2020
- 2020-06-16 EP EP20834415.0A patent/EP3975174A4/en active Pending
- 2020-06-16 KR KR1020227000340A patent/KR102710541B1/ko active IP Right Grant
- 2020-06-16 WO PCT/CN2020/096307 patent/WO2021000724A1/zh unknown
-
2021
- 2021-12-15 US US17/551,451 patent/US11887607B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592937A (zh) * | 2015-03-09 | 2018-01-16 | 弗劳恩霍夫应用研究促进协会 | 用于对多声道信号进行编码或解码的装置与方法 |
CN108352162A (zh) * | 2015-09-25 | 2018-07-31 | 沃伊斯亚吉公司 | 用于使用主声道的编码参数编码立体声声音信号以编码辅声道的方法和系统 |
CN108206021A (zh) * | 2016-12-16 | 2018-06-26 | 南京青衿信息科技有限公司 | 一种后向兼容式三维声编码器、解码器及其编解码方法 |
CN109300480A (zh) * | 2017-07-25 | 2019-02-01 | 华为技术有限公司 | 立体声信号的编解码方法和编解码装置 |
CN109389985A (zh) * | 2017-08-10 | 2019-02-26 | 华为技术有限公司 | 时域立体声编解码方法和相关产品 |
CN112233682A (zh) * | 2019-06-29 | 2021-01-15 | 华为技术有限公司 | 一种立体声编码方法、立体声解码方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021000724A1 (zh) | 2021-01-07 |
KR20220018557A (ko) | 2022-02-15 |
US20220108708A1 (en) | 2022-04-07 |
CN112151045A (zh) | 2020-12-29 |
EP3975174A1 (en) | 2022-03-30 |
US11887607B2 (en) | 2024-01-30 |
EP3975174A4 (en) | 2022-07-20 |
KR102710541B1 (ko) | 2024-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240282318A1 (en) | Method for determining audio coding/decoding mode and related product | |
US11640825B2 (en) | Time-domain stereo encoding and decoding method and related product | |
JP7520922B2 (ja) | ステレオ信号符号化方法およびステレオ信号符号化装置 | |
US20240153511A1 (en) | Time-domain stereo encoding and decoding method and related product | |
US11887607B2 (en) | Stereo encoding method and apparatus, and stereo decoding method and apparatus | |
US20220122619A1 (en) | Stereo Encoding Method and Apparatus, and Stereo Decoding Method and Apparatus | |
US20230352033A1 (en) | Time-domain stereo parameter encoding method and related product | |
EP2212883A1 (en) | An encoder | |
EP3975175B9 (en) | Stereo encoding method, stereo decoding method and devices | |
Bosi | MPEG audio compression basics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |