CN104103276B - 一种声音编解码装置及其方法 - Google Patents
一种声音编解码装置及其方法 Download PDFInfo
- Publication number
- CN104103276B CN104103276B CN201310128173.7A CN201310128173A CN104103276B CN 104103276 B CN104103276 B CN 104103276B CN 201310128173 A CN201310128173 A CN 201310128173A CN 104103276 B CN104103276 B CN 104103276B
- Authority
- CN
- China
- Prior art keywords
- frequency
- signal
- coding
- block
- mapping
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种声音编解码装置及其方法,包括:分别针对低频波形编码和高频参数编码对声音信号逐帧进行信号分析,将一帧划分为适应波形编码和参数编码的各自特点的块序列并将其从时域映射到映射域,分别对映射域上的两种块序列进行低频波形编码和高频参数编码;对低频波形编码数据、高频参数编码数据、和两组块序列信息进行复用得到声音编码码流。本发明通过对声音信号分别进行各自独立的信号块类型分析和时频映射,针对低频波形编码和高频参数编码的特点在其时频映射中采用不同的块类型,使得低频波形编码能够有效去除冗余,高频参数编码能够对信号的时域和频域包络进行高效表达从而避免了预回声问题,有效提高了编码效率。
Description
技术领域
本发明涉及音频编解码,尤其涉及一种声音编解码装置及其方法。
背景技术
图1是现有技术的一种声音编解码装置,包括:重采样模块,信号类型判断模块、时频映射模块、低频波形编码模块、映射域边界预处理模块、高频参数编码模块,以及比特流复用模块。
重采样模块用于将输入的数字声音信号从原始采样率变换到目标采样率,并将重采样后的信号以帧为单位输出到信号类型判断模块和时频映射模块。
信号类型判断模块用于对重采样后的声音信号逐帧进行信号类型分析,并输出信号类型分析的结果。
时频映射模块用于根据从信号类型判断模块输出的信号类型分析结果,采用不同阶数变换或子带域滤波,将重采样后的声音信号映射到诸如频域或子带域之类的映射域。低频波形编码模块用于从时频映射模块接收映射域的声音信号的低频部分,对其进行冗余消除处理,并将冗余处理后的低频谱进行量化编码得到低频编码数据,并输出到所述的比特流复用模块。应注意,如果低频成分的冗余度满足编码要求,低频波形编码模块也可以不进行冗余消除处理。
映射域边界预处理模块用于从时频映射模块接收映射域的声音信号的低频谱和高频谱,对声音信号的低频谱和高频谱进行边界预处理,并将经过边界预处理后的低频谱和高频谱输出到高频参数编码模块。
高频参数编码模块用于从映射域边界预处理模块接收边界预处理后的低频谱和高频谱,从中提取所需要的诸如增益参数、调性参数之类的高频参数,并对高频参数进行量化编码并输出到比特流复用模块。
比特流复用模块用于将从信号类型判断模块、低频波形编码模块和高频参数编码模块输出的编码数据以及边信息进行复用,形成声音编码码流。
该声音编解码装置和方法引入了新的编解码框架,以充分结合声音波形编码和参数编码的特点,在较低的码率和计算复杂度约束下,对语音和音乐均能高质量编码。
根据上述方法,低频波形编码与高频参数编码基于同一时频映射模块得到的映射域数据来进行,低频波形编码所在的映射域与高频参数编码所在的映射域保持在块类型上的同步,即低频参数编码前进行的时频映射采用了什么块类型,高频参数编码的时频映射也会采用相同的块类型。从低频波形编码的角度看,要求变换域能够有利于去除冗余,提高编码效率,更多地倾向于采用长块;而从高频参数编码的角度看,要求能够对信号的时域和频域包络进行高效表达,过多采用长块会使得时域分辨率不足,带来预回声问题。因此,低频波形编码与高频参数编码中时频映射的块类型保持一致不利于提高编码器的编码效率。
发明内容
本发明的目的是提供一种能够克服上述缺陷的声音编解码装置及其方法。
在本发明的第一方面,提供了一种声音编码装置,包括:低频编码信号分析模块,用于对数字声音信号逐帧进行信号分析得到与波形编码的特点相适应的第一块序列信息;低频编码时频映射模块,用于利用所述第一块序列信息将一帧划分为第一块序列,将所述第一块序列中的块数据从时域映射到映射域,得到映射域上的频谱,其中,所述第一块序列决定其中每一块数据的时频变换长度;低频波形编码模块,用于对所述映射域上的频谱进行量化编码,得到低频波形编码数据;高频编码信号分析模块,用于对数字声音信号逐帧进行信号分析得到与参数编码的特点相适应的第二块序列信息;高频编码时频映射模块,用于利用所述第二块序列信息将一帧划分为第二块序列,将所述第二块序列中的块数据从时域映射到映射域,并且将映射域上的声音信号划分为低频谱和高频谱,其中,所述第二块序列决定其中每一块数据的时频变换长度;低频谱至高频谱映射模块,用于将划分得到的低频谱的特定频段映射到高频谱的特定频段,得到频谱映射后的高频谱;高频参数编码模块,用于根据划分得到高频谱和所述频谱映射后的高频谱,计算用于在解码端从低频谱中恢复高频谱的高频参数,并且对所述高频参数进行量化编码,得到高频参数编码数据;以及比特流复用模块,用于对所述低频波形编码数据、所述高频参数编码数据、所述第一块序列信息和所述第二块序列信息进行复用,得到声音编码码流。
在本发明的第二方面,提供了一种声音编码方法,包括:对数字声音信号逐帧进行信号分析得到与波形编码的特点相适应的第一块序列信息,利用所述第一块序列信息将一帧划分为第一块序列,将所述第一块序列中的块数据从时域映射到映射域,得到映射域上的频谱,其中,所述第一块序列决定其中每一块数据的时频变换长度,对所述映射域上的频谱进行量化编码,得到低频波形编码数据,并且对数字声音信号逐帧进行信号分析得到与参数编码的特点相适应的第二块序列信息,利用所述第二块序列信息将一帧划分为第二块序列,将所述第二块序列中的块数据从时域映射到映射域,并且将映射域上的声音信号划分为低频谱和高频谱,其中,所述第二块序列决定其中每一块数据的时频变换长度,将划分得到的低频谱的特定频段映射到高频谱的特定频段,得到频谱映射后的高频谱,根据划分得到高频谱和所述频谱映射后的高频谱,计算用于在解码端从低频谱中恢复高频谱的高频参数,对所述高频参数进行量化编码,得到高频参数编码数据;以及对所述低频波形编码数据、所述高频参数编码数据、所述第一块序列信息和所述第二块序列信息进行复用,得到声音编码码流。
在第三方面,本发明提供了一种声音解码装置,包括:比特流解复用模块,用于对声音编码码流进行解复用,以获取低频波形编码数据、高频参数编码数据、低频编码块序列信息和高频编码块序列信息;低频波形解码模块,用于对所述低频波形编码数据进行解码,得到频域的低频谱数据;低频频时映射模块,用于根据所述低频编码块序列信息对所述频域的低频谱数据进行频时映射,得到时域上的低频谱数据;高频解码时频映射模块,用于根据所述高频编码块序列信息将所述时域上的低频谱数据映射到频域,得到频域上的低频谱数据;低频谱至高频谱映射模块,用于从所述频域上的低频谱数据中映射部分谱数据到高频部分,得到频谱映射后的高频谱数据;高频参数解码模块,用于根据所述高频参数编码数据和所述高频编码块序列信息,对所述频谱映射后的高频谱数据进行参数解码,得到频域上的高频谱数据;以及频时映射模块,用于将所述频域上的低频谱数据和所述频域上的高频谱数据进行组合在一起进行频时变换,得到时域上的声音解码数据。
在第四方面,本发明提供了一种声音解码方法,包括:对声音编码码流进行解复用,以获取低频波形编码数据、高频参数编码数据、低频编码块序列信息和高频编码块序列信息;对所述低频波形编码数据进行解码,得到频域的低频谱数据;对所述频域的低频谱数据进行频时映射,得到时域上的低频谱数据;根据所述低频编码块序列信息将所述时域上的低频谱数据映射到频域,得到频域上的低频谱数据;从所述频域上的低频谱数据中映射部分谱数据到高频部分,得到频谱映射后的高频谱数据;根据所述高频参数编码数据和所述高频编码块序列信息,对所述频谱映射后的高频谱数据进行参数解码,得到频域上的高频谱数据;以及将所述频域上的低频谱数据和所述频域上的高频谱数据进行组合在一起进行频时变换,得到时域上的声音解码数据。
本发明通过对低频波形编码时频变换与高频参数编码时频变换分别进行块类型划分和时频映射,使得低频编码时频变换块划分能够更好地适应低频波形编码的要求,高频编码时频变换块划分能够更好地适应高频参数编码的要求,能够适应对不同类型信号的高频参数编码,有效提高了编码效率。
附图说明
图1是现有技术的单声道声音编码装置的结构示意图;
图2是根据本发明实施例的单声道声音编码装置的结构示意图;
图3是图2的高频参数编码模块的结构示意图;
图4是不同长度的窗函数的示意图;
图5是一种窗序列的示意图;
图6是图1的高频编码时频映射模块的各种块类型在时频映射后的时频平面图;
图7是图1的低频谱至高频谱映射模块的频谱映射的时频平面图;
图8是图1的高频参数编码模块的时频平面划分示意图;
图9是根据本发明实施例的单声道声音解码装置的结构示意图;以及
图10是图9的高频参数解码模块的结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图2是根据本发明优选实施例的单声道声音编码装置的结构框图。
如图2所示,本发明优选实施例的单声道声音编码装置包括:重采样模块201,低频编码时频映射模块202、低频编码信号分析模块203、高频编码时频映射模块204、高频编码信号分析模块205、低频波形编码模块206、低频谱至高频谱映射模块207、高频参数编码模块208,以及比特流复用模块209。
首先,概括介绍图2中各个模块的连接关系和功能,其中:
重采样模块201用于将输入的数字声音信号从原始采样率变换到目标采样率,并将重采样后的信号以帧为单位输出到低频编码时频映射模块
202、低频编码信号分析模块203、高频编码时频映射模块204及高频编码信号分析模块205。应注意,如果所输入的数字声音信号本身就具有目标采样率,则根据本发明原理的编码装置可以不包括该模块,可直接将数字声音信号输入到低频编码时频映射模块202、低频编码信号分析模块203、高频编码时频映射模块204及高频编码信号分析模块205。
低频编码信号分析模块203用于对输入的数字声音信号逐帧进行低频编码的信号分析,依据低频波形编码方法的特点,判断该帧信号低频编码部分所应采用的块序列信息,并将低频编码块序列信息输出到低频编码时频映射模块202中进行时频映射的阶数控制。根据本发明原理的编码装置的时频映射可选择时频变换(Transform)或子带滤波(FilterBank)。另外,信号分析的结果,例如上述的块序列信息,还输出到比特流复用模块209。
高频编码信号分析模块205用于对输入的数字声音信号逐帧进行高频编码的信号分析,依据高频参数编码方法的特点,判断该帧信号是快变信号还是缓变信号;计算快变点发生的位置,判断快变处的时域宽度,并根据这些信息输出一组用于高频编码时频变换的块序列。高频编码信号分析的结果输出到高频编码时频映射模块中进行时频映射的阶数控制。另外,高频编码信号分析的结果还可输出到比特流复用模块。
低频编码时频映射模块202用于根据从低频编码信号分析模块输出的信号分析结果,采用不同长度阶数的变换,将输入的数字声音信号映射到诸如频域或子带域之类的变换域。这里,映射域在采用变换方式时为频域,在采用滤波器组滤波方式时为子带域,以获取声音信号的频域或子带域信号表示;也可以先对时域信号进行低频滤波处理,然后再进行时频映射变换。最后,将变换域上的声音信号输出到低频波形编码模块206。
高频编码时频映射模块204用于根据从高频编码信号分析模块输出的信号分析结果,将输入的信号划分为块序列,并采用不同长度阶数的变换逐块进行时频映射将信号映射到诸如频域或子带域之类的变换域。这里,映射域在采用变换方式时为频域,在采用滤波器组滤波方式时为子带域,以获取声音信号的频域或子带域信号表示。然后,将变换域上的声音信号输出到低频谱至高频谱映射模块、高频参数编码模块。具体地,将变换域上的声音信号划分为低频谱和高频谱,其中,低频谱被输出到低频谱至高频谱映射模块207,高频谱被输出到高频参数编码模块208。
低频波形编码模块206用于从低频编码时频映射模块接收变换域的声音信号的低频部分,对其进行冗余消除处理,并将冗余处理后的低频谱进行量化编码得到低频编码数据,并输出到所述的比特流复用模块。应注意,如果低频成分的时间冗余度满足编码要求,低频波形编码模块也可以不进行冗余消除处理。
低频谱至高频谱映射模块207用于从高频编码时频映射模块204接收低频谱,将低频谱的特定频段映射到高频谱的特定频段,得到映射后的高频谱,将映射后高频谱输出到高频参数编码模块208。
高频参数编码模块208用于从高频编码时频映射模块204接收高频谱,以及从低频谱至高频谱映射模块207接收映射后高频谱,从中提取所需要的诸如增益参数、调性参数之类的高频参数,并对高频参数进行量化编码并输出到比特流复用模块。
比特流复用模块209用于将从低频编码信号分析模块、高频频编码信号分析模块、低频波形编码模块和高频参数编码模块输出的编码数据以及边信息进行复用,形成声音编码码流。
应当理解,按照低频/高频编码信号分析模块的分析结果将输入信号划分为不同的块序列的处理也可以直接在低频/高频编码信号分析模块中进行,而不限于在低频/高频编码时频映射模块中进行。
应当指出,从低频波形编码的角度看,要求变换域能够有利于去除冗余,提高编码效率,其块类型更多地倾向于采用长块;而从高频参数编码的角度看,要求能够对信号的时域和频域包络进行高效表达,其块类型过多采用长块会使得时域分辨率不足,带来预回声问题。因此,本发明的低频波形编码与高频参数编码中时频映射的块类型保持一致不利于提高编码器的编码效率。换言之,针对低频波形编码和高频参数编码的特点,优选地,本发明的低频编码信号分析模块和高频编码信号分析模块得出的块类型是不同的。
下面,对上述单声道声音编码装置中的低频编码信号分析模块203、高频编码信号分析模块205、高频编码时频映射模块204、高频参数编码模块208、比特流复用模块209进行具体详细地说明。
低频编码信号分析模块203用于对输入的数字声音信号逐帧进行低频编码的信号分析,依据低频波形编码方法的特点,判断该帧信号低频编码部分所应采用的块序列信息。低频编码信号分析的结果输出到低频编码时频映射模块中进行时频映射的阶数控制。低频波形编码的编码效率与时频映射的阶数相关。一般而言,时频映射的阶数越高编码效率也越高;但对于快变信号而言,高的时频映射的阶数所带来的编码效率不明显,且会带来预回声问题;波形编码方法能够对低频编码时频映射的映射域数据进行高质量的编码,编码所引入的误差能量相对于原信号能量而言是很小的,这决定了只有在信号突变特别显著时预回声问题才显现。
低频编码信号分析可以采用许多种方法。例如,通过计算信号感知熵的方法,通过计算信号子帧的能量来判断信号类型的方法等。优选地,可以采用通过计算信号感知熵的方法,通过对信号感知熵的分析,确定合适的块序列,使得基于此低频编码块序列进行的低频编码时频变换的长度与信号特点相适应,与后续的低频波形编码方法相适应,提高编码效率。组成块序列中的各块的块长可以灵活选择,以更好地与信号特点相适应,比如可以是帧长的长度M,也可以是M/2、M/4、M/8、M/16等。
如下给出一种低频编码信号分析方法的实例,其中,块类型有长块(M块)、中长块(M/2块)、中块(M/4块)、短块(M/8块)、超短块(M/16块)。该模块输出的低频编码块序列可以是M长度的长块(M块),也可以是一组中长块(M/2块)、中块(M/4块)、短块(M/8块)、超短块(M/16块)的组合。通过计算采用不同块序列时变换域信号的感知熵,并对感知熵进行比较和分析,选取感知熵最低时的块序列作为低频编码块序列。
首先,对于每帧信号进行带通滤波,滤除极低频成分(频率低于一个极小的预定阈值的成分)和超过低频编码频率范围的高频成分,并对滤波后信号分别按照不同的块序列信息如{M}、{M/2,M/2}、{M/4,M/4,M/4,M/4}、{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8}等进行分块得到块序列数据,并对块序列中的每个块进行离散傅立叶变换(DFT)或者修正离散傅立叶变换(MDFT),得到映射域的谱线。
其次,根据所得的映射域谱线信息分别计算每种块序列下的信号感知熵PE。对于由多个块组成的块序列,其感知熵是各个块的块感知熵的和。
最后,比较采用不同块序列下的感知熵PE,选取使得感知熵最小的块序列作为低频编码块序列。还可以根据分块感知熵的信息对低频编码块序列进行进一步优化。比如,该帧信号在块序列{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8}下信号的感知熵PE最小,且采用此块序列时分块信号的块感知熵为PEb(i),i=0…7,如果前6个块的块感知熵满足
PEb(m)<β*sum{PEb(i)}/8,mm0…5
即信号的感知熵集中在块序列中的后两个块中,前面几个块的块感知熵远小于块感知熵的均值,则可以将块序列优化为{M/2,M/8,M/8,M/8,M/8}。这样可以使得块序列的组成更加灵活,以达到最优的低频波形编码效果。
下面对感知熵PE的计算进行详细说明。感知熵是信号感知信息量的近似估计,根据信息论,当该帧有瞬时信号的时候,相当于包含较多的信息量,计算得到的感知熵会比较大。感知熵PE的计算公式如下所示:
其中,bhigh是频带分区数量,whigh(b)、wlow(b)是每个频带分区的下界和上界,eband(b)是每个分区的能量,nb(b)是分区掩蔽阈值。
对块序列中每一块信号的映射域的谱线进行运算,得到块的感知熵;某一块序列下整帧信号的感知熵是块序列中各个块的感知熵的和。若块序列中某块信号的变换域谱线数据为X(i)则其感知熵的计算方法如下:
第一,频带不可预测度cb(b)的计算。
每根谱线的不可预测性的运算,首先需要用前两块数据的谱线幅度和相位对当前帧谱线的幅度和相位进行预测,预测公式如下:
rpred(i)=2.0r-1(i)-r-2(i)
fpred(i)=2.0f-1(i)-f-2(i)
其中,rpred(i)是当前块的映射域谱线中第i根谱线幅度的预测值,fpred(i)是第i根谱线相位的预测值,r-1(i)、r-2(i)是前一块、前二块谱线X(i)对应的幅度,f-1(i)、f-2(i)是前一块、前二块谱线X(i)对应的相位。
得到预测值后,比较真实值与预测值之间的欧氏距离,如下式所示:
计算不可预测性c(i),如下式所示:
得到每根谱线对应的不可预测性之后,就可以计算每个频带分区的不可预测度cband(b)
其中,indexlow、indexhigh分别是频带分区的上下界,每个频带分区的不可预测度是通过本频带分区内的所有谱线的不可预测度的加权求和得到的,加权的权重就是每根谱线的能量。每个频带分区的能量由频带分区内所有谱线能量相加得到:
由于信号可以跨越频带分区掩蔽,为了更准确的计算掩蔽阈值,可以使用扩展函数分别和各频带分区的不可预测度和能量进行卷积,得到频带分区不可预测度和能量。
其中,bb是频带分区的序号,bmax是最大频带分区序号,bval(bb)是第bb个分区的中心的巴克值。扩展函数表征的是第bb分区对第b分区的扩散影响。
因为在不可预测度的计算过程中,曾经用信号能量进行加权,因此扩展后的频带分区不可预测度,需要根据扩展后的频带分区能量做归一化处理:
在能量与扩展函数卷积过程后,也需要对频带分区能量重新进行归一化处理:
第二,频带掩蔽阈值nb(b)的计算。
信号的频带分区弦性tb(b)可以通过下式由cb(b)得出:
tb(b)=-0.299-0.43ln(cb(b))
得到弦性tb(b)后,可以通过内插得到每个频带分区的信噪比SNR
SNR(b)=tb(b)TMN(b)+(1-tb(b))NMT(b)
其中,TMN(b)是每个频带分区的弦音掩蔽噪声比,设为18dB,TMN(b)是每个频带分区的噪声掩蔽弦音比,设为6dB。
根据每个分区的归一化能量en(b)和信噪比SNR(b),计算每个频带分区的掩蔽阈值
nb(b)=en(b)*10-SNR(b)/10
比较前面计算出的分区阈值和前一块的同一频带分区的阈值和静音阈值,得到最后的分区掩蔽阈值
nb(b)=max{qsthr(b),min{nb(b),nb1(b)*rpelev}}
其中,qsthr(b)是静音阈值,nb1(b)是前一块的b频带分区的掩蔽阈值,rpelev在长块中取值2,在短块中取值1。
第三,计算感知熵PE:
高频编码信号分析模块205依据高频参数编码方法的特点对输入的数字声音信号逐帧进行高频编码的信号分析,根据分析结果可以输出一组不同长度的块序列。通过选择合适的块序列,基于此高频编码块序列进行的高频编码时频变换的长度与信号特点相适应,与后续的高频参数编码方法相适应,提高高频参数编码的质量和效率。高频参数编码通过对映射域的时域和频域包络进行刻画来完成对高频信息的编码和表达,其编码质量与分块序列相关。块长过大则时域分辨率不足,无法对时域包络进行有效编码,块长过短则影响编码效率;参数编码方法决定了其所引入的误差能量较大,容易引入预回声问题。
本发明设计了一系列不同块长的块类型,以更好地适用于高频参数编码,如长度分别为M、M/2、M/4、M/8、M/16的块,分别对应于长块(M块)、中长块(M/2块)、中块(M/4块)、短块(M/8块)、超短块(M/16块)。对于每帧信号,该模块输出的块序列可以是M长度的长块(M块),也可以是一组中长块(M/2块)、中块(M/4块)、短块(M/8块)、超短块(M/16块)的组合。
低频编码信号分析模块也可以采用类似上述的高频编码信号分析中的块类型,输出低频编码块序列信息。
高频编码时频映射模块204用于根据从高频编码信号分析模块205输出的信号分析结果,采用不同长度阶数的变换,将输入的数字声音信号映射到诸如频域或子带域之类的变换域。以时频映射为MDFT为例,首先,根据高频编码信号分析模块205所输出的块序列构建本帧高频编码时频映射的窗序列,然后逐块对块序列中的每块信号进行加窗MDFT变换,得到每块的MDFT域数据。
图3是图1所示高频参数编码模块的结构框图。
高频参数编码模块208根据高频编码信号分析模块205输出的块类型序列信息,对本帧高频谱数据的各个块进行分组,然后对分组信息和每组数据进行参数编码。需要指出的是,块的分组可以跨越帧的限制,即可以将前后两帧中的块分在同一分组内。如图3所示,高频参数编码模块208包括频带划分器301、调性参数提取器302和增益参数提取器303。
频带划分器301用于从高频编码时频映射模块204接收本帧块序列中每块信号的高频谱,以及从低频谱至高频谱映射模块207接收映射后高频谱,将映射后的高频时频平面和原始高频时频平面根据块序列信息、信号类型、快变点发生的位置等信息划分多个区域,得到块分组信息和频带划分信息。然后,将块分组信息作为边信息输出到调性参数提取器302、增益参数提取器303、比特流复用模块。
调性参数提取器302接收频带划分器301的输出,根据频带划分信息,对每个频带分别计算原始高频频带的调性和映射后高频谱对应频带的调性,得到在解码装置端用来调整拷贝后高频谱调性的所需要的调性参数,并将这些参数经过量化编码后输出到比特流复用模块中,其中,调性参数可以包括调整类型和调整参数。
增益参数提取器303接收频带划分器301的输出,根据块分组信息和频带划分信息以及划分得到的多个区域,对其中的每个频带计算原始时频平面中每个区域的能量与映射时频平面对应的区域能量的比值作为增益参数,该增益参数经过量化编码后输出到比特流复用模块中。
如此,高频参数包括调性参数、增益参数以及块分组信息。
比特流复用模块209用于从低频编码信号分析模块接收低频编码类型信息并进行编码,从高频编码信号分析模块接收高频编码类型信息并进行编码,从高频参数编码模块接收输出的分组信息等边信息并进行编码,从低频波形编码模块和高频参数编码模块接收输出的编码数据,并对编码数据进行复用,形成声音编码码流。本发明与其他方法的显著不同是码流信息中有高频编码块类型信息。
下面对根据本发明优选实施例的单声道声音编码方法进行详细描述,该方法包括以下步骤:
步骤11:对输入信号进行重采样处理;
步骤12:对重采样后的声音信号逐帧进行低频编码信号分析,依据低频波形编码方法的特点,判断并输出该帧信号低频编码部分所应采用的块序列信息;
步骤13:对输入的数字声音信号逐帧进行高频参数编码信号分析,判断该帧信号是快变信号还是缓变信号,计算快变点发生的位置,判断快变处的时域宽度,并根据这些信息输出一组用于高频编码时频变换的块序列,并输出相应的快变点位置信息。
步骤14:根据低频信号分析的结果,将每帧信号划分为低频编码块序列并逐块对低频编码块序列中的每块数据采用对应阶数的变换或子带域滤波,将重采样后声音信号或低频滤波后的重采样后声音信号进行时频映射,映射到诸如频域或子带域之类的映射域,得到低频编码的映射域上的声音信号;
步骤15:根据高频参数编码信号分析结果,将每帧信号划分为高频编码块序列,逐块对高频编码块序列中的每块数据采用不同长度阶数的变换或滤波器组,对重采样后的声音信号进行时频映射,得到高频参数编码的映射域上的声音信号;
步骤16:对低频编码映射域上的低频谱进行低频波形编码得到低频波形编码数据;
步骤17:将高频编码映射域上的低频谱的特定频段映射到高频的特定频段,形成映射的高频谱;
步骤18:提取用来从低频谱至高频谱映射后的高频谱来恢复原始高频谱的高频参数,对高频参数进行量化编码得到高频参数编码数据。
步骤19:将编码后的数据以及边信息进行复用,得到声音编码码流。
下面对根据本发明优选实施例的单声道声音编码方法的各步骤进行详细说明:
在步骤11,重采样处理具体包括:首先由输入信号的采样率Fs和重采样目标采样率Fmax,计算出重采样的采样率比Fmax/Fs=L/M。其中,重采样目标采样率Fmax为解码信号的最高分析频率,一般由编码比特率确定。然后对输入声音信号x(n)进行L倍的上采样,输出的信号为
上采样后的信号通过低通滤波器得到
其中N为低通滤波器的长度(当N=∞时,该滤波器为IIR滤波器),低通滤波器的截止频率为Fmax;对v(n)进行M倍的下采样后的序列为y(n),则y(n)=v(Mn)。这样,重采样后的声音信号y(n)的采样率就是原始输入的声音信号x(n)的采样率的L/M倍。应注意,如果所输入的数字声音信号本身就具有目标采样率,则无需执行步骤11。
在步骤12,对重采样后的数字声音信号进行低频编码信号分析,依据低频波形编码方法的特点,选择与之相适应的块序列信息。低频编码信号分析通过选择合适的块序列,使得基于此低频编码块序列进行的低频编码时频变换的长度与信号特点相适应,后续的低频波形编码取得较优的效果,提高编码效率。
低频编码信号类型判断可以采用许多种方法。例如,通过计算信号感知熵的方法,通过计算信号子帧的能量来判断信号类型的方法等。优选地,可以采用通过计算信号感知熵的方法,通过对信号感知熵的分析,确定合适的块序列,使得基于此低频编码块序列进行的低频编码时频变换的长度与信号特点相适应,与后续的低频波形编码方法相适应,提高编码效率。其具体过程如下:在步骤12-1:将一帧数字声音信号y(n)进行带通滤波,将低频部分和超过低频编码频率范围的高频部分,例如50Hz以下的频率和10kHz以上的频率,滤除掉;
在步骤12-2:对滤波后进行分别按照{M}、{M/2,M/2}、{M/4,M/4,M/4,M/4}、{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8}等块序列信息进行分块得到块序列,并对块序列中的每个块进行离散傅立叶变换(DFT)或者修正离散傅立叶变换(MDFT),得到映射域的谱线。
在步骤12-3:根据所得的映射域谱线信息分别计算每种块序列下的信号感知熵PE。对于多个短块组成的块序列,其感知熵是各个块的块感知熵PEb(i)的和。感知熵的运算方法,与低频编码信号分析模块203中所述方法相同,不再详述。在步骤12-4:比较采用不同块序列下的感知熵PE,选取使得感知熵最小的块序列作为低频编码块序列。还可以根据分块感知熵的信息对低频编码块序列进行进一步优化,比如,该帧信号在块序列{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8}下信号的感知熵PE最小,且在此块序列下的分块信号的块感知熵为PEb(i),i=0…7,如果前6个块的块感知熵满足:
PEb(m)<β*sum{PEb(i)}/8,m=0…5
即信号的感知熵集中在块序列中的后两个块中,前面几个块的块感知熵远小于块感知熵的均值,则可将块序列优化为{M/2,M/8,M/8,M/8,M/8}。这样可以使得块序列的组成更加灵活,以达到最优的低频波形编码效果。
在步骤13,对输入的数字声音信号逐帧进行高频参数编码信号分析,判断该帧信号是快变信号还是缓变信号,计算快变点发生的位置,判断快变处的时域宽度,并根据这些信息输出一组用于高频编码时频变换的块序列,并输出相应的快变点位置信息。
高频编码信号分析可以采用许多种方法。例如,通过信号感知熵来判断信号类型,通过计算信号子帧的能量来判断信号类型等。优选地,可以采用通过计算信号子帧能量来判断信号类型。通过对信号进行分析,判断信号类型,识别出信号的快变点位置和宽度,并基于这些信息来选择合适的块序列,使得基于此高频编码块序列进行的高频编码时频变换的长度与信号特点相适应,与后续的高频参数编码方法相适应,提高高频参数编码的质量和效率。其具体过程如下:
在步骤13-1:将一帧数字声音信号y(n)进行高通滤波,将低频部分,例如500Hz以下的频率,滤除掉;
在步骤13-2:将高通滤波后的信号分成若干个子帧yi(n),为计算方便,通常将一帧信号分成整数个子帧,如一帧为2048点时,可128点为一个子帧;
在步骤13-3:分别计算每个子帧yi(n)的能量Ei,其中i为子帧的序号。再求出当前子帧与前一子帧的能量比,当其中一个能量比大于某个阈值Te时,则判断该帧信号类型为快变信号,若所有子帧与前一帧的能量比均小于Te时,则判断该帧信号类型为缓变信号。如果是快变信号,则继续执行步骤13-4,否则不执行步骤13-4,将缓变的信号类型确定为低频子带域信号分析结果。在该方法中的阈值Te可采用一些信号处理中的熟知方法获取,如统计已编码信号能量的平均比值,并乘以某个常数得到Te;
在步骤13-4:对于快变信号,将能量最大的子帧判断为快变点发生的位置,并根据每个子帧位置是否存在快变来得到子帧能量变化序列
Onsetlist(i),i=0…31:
Onsetlist(i)=0,第i子帧处不存在突变;
Onsetlist(i)=1,第i子帧处存在突变;
在步骤13-5:根据Onsetlist(i)来确定高频编码分析的块序列。
本发明设计了一系列不同块长的块类型,以更好地适用于高频参数编码,如长度分别为M、M/2、M/4、M/8、M/16的块,可对应称之为长块(M块)、中长块(M/2块)、中块(M/4块)、短块(M/8块)、超短块(M/16块),其块类型长度分别为M、M/2、M/4、M/8、M/16。将时域信号划分为一系列前后相连的块,就能得到一组块序列。对于每帧信号,该模块输出的块序列可以是M长度的长块,也可以是一组M/2、M/4、M/8、M/16的块的组合。在块序列中,当不同长度的块相邻时,则表现为切换块,当存在切换时,块在时间域上的长度由当前块块类型及前一块块类型决定,取两个块类型长度中的最大值。
如果不存在突变,则输出的块序列信息就是{M}长块;
如果存在突变,则根据子帧连续突变的数量来确定突变点宽度,如
Onsetlist(i-1)=0,Onsetlist(i)=1,Onsetlist(i+1)=1,
Onsetlist(i+2)=0,则突变点宽度为2。可以看出,突变点宽度代表了一帧中的子帧连续突变的数量。请注意,文中的快变和突变所表示的意义相同,并且所述突变点宽度是上文中提到的快变处的时域宽度。
根据本帧中宽度最小的突变点的宽度、突变点个数等信息来确定块序列信息。例如,可采用最小突变点宽度/突变点宽度最小值来确定块序列信息。具体地,突变点宽度最小值为1,则分析块序列信息为{M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16,M/16};突变点宽度最小值为2或3,则分析块序列信息为{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8};突变点宽度最小值为4或5或6或7,则分析块序列信息为{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8};突变点宽度最小值大于等于8且小于16,则分析块序列信息为{M/4,M/4,M/4,M/4};突变点宽度最小值大于等于16,则分析块序列信息为{M/2,M/2};
在步骤13-6:对步骤13-5中所得的块序列信息进行归并和优化。根据突变点位置信息及子帧能量信息对步骤13-5中所得的块序列信息进行归并和优化,将不存在突变的短块归并为较长的块。如突变点位置分别为i=0,i=4,突变点宽度分别为2和4,突变点宽度的最小值为2,步骤13-5所得块序列为{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8}。可以将其优化为{M/8,M/8,M/4,M/4,M/4},对应的块的长度依次为M/8、M/8、M/4、M/4、M/4,总长度M;或将其优化为{M/8,M/8,M/4,M/2},对应的块的长度依次为M/8、M/8、M/4、M/2,总长度M;
在步骤14,根据低频编码信号分析结果,对本帧块序列中的每一块数据采用对应长度阶数的变换或滤波器组,对重采样后的声音信号进行低频编码时频映射,得到低频编码映射域上的声音信号;或者,先对本帧块序列中的每一块的重采样后的声音信号进行低通滤波,然后对低通滤波后声音信号进行低频编码时频映射,得到低频编码映射域上的声音信号。
下面以时频映射为修正离散余弦变换(MDCT)为例进行具体说明。
选取前一块M个样本和当前块M个样本的时域信号,再对这两帧共2M个样本的时域信号进行加窗操作,然后对经过加窗后的信号进行MDCT变换,从而获取M个频谱系数。
MDCT分析滤波器的脉冲响应为:
则MDCT变换为:0≤k≤M-1,其中:w(n)为窗函数;x(n)为MDCT变换的输入时域信号;X(k)为MDCT变换的输出频域信号。
在步骤15,根据高频编码信号分析结果,采用不同长度阶数的变换或滤波器组,对重采样后的声音信号进行高频编码时频映射,得到高频编码映射域上的声音信号。这一步骤与步骤14类似,不同的是,高频编码的时频映射中的块序列与低频编码块序列并不一致。
下面,以时频映射为修正离散傅立叶变换(MDFT变换)时的情形为例对高频编码时频映射进行说明。
步骤15-1,根据高频编码信号分析得到的块序列构建本帧高频编码时频映射的窗序列。
根据高频编码信号分析得到的块序列可以将本帧信号划分为前后交叠的一系列窗,并构建出每一块的窗函数,组成本帧高频编码时频映射的窗序列。
对于不存在切换时的情况,为满足信号完全重构的条件,窗函数w(n)必须满足以下两个条件:
w(2M-1-n)=w(n)且w2(n)+w2(n+M)=1。
M为块类型长度。在实际中,可选用Sine窗作为窗函数。当然,也可以通过使用双正交变换,用特定的分析滤波器和综合滤波器来修改对窗函数的限制。图4(1)至图4(4)例示了当窗函数为Sine窗时M块、M/2块、M/4块、M/8块的窗函数。
对于块序列中的每一块数据,其所对应的窗函数由当前块及前一块的块类型长度共同决定,窗长度是两个块类型长度的最大值的2倍,窗函数由如下公式计算得到:
其中,w1(n)是前一块的块类型对应的窗函数,w2(n)是当前块的块类型对应的窗函数,L是前一块的块类型对应的块类型长度,K是当前块的块类型对应的块类型长度。图4(5)至图4(16)例示了当窗函数为Sine窗时不同切换块的窗函数。
当前帧的块序列中各块的窗函数组成了当前帧的窗序列,相邻块的窗函数前后交叠;前后帧的窗函数也存在交叠。图5中例示了一种窗序列的情况,前后帧窗序列均为长窗,即前后帧均为缓变帧,当前帧块序列为{M/8,M/8,M/4,M/2},则其窗序列如图所示。
上述高频编码时频映射中的窗序列及窗序列构造方法也适用于步骤14中的低频编码时频映射部分。
步骤15-2,逐块对块序列中的每块信号进行加窗MDFT变换,得到每块的MDFT域数据。
MDFT变换的计算公式为:
k=0,1,…,2M-1,其中,w(n)为窗函数;s(n)为MDFT变换的输入时域信号,X(k)为MDFT变换输出的频域信号。
进行时频变换的该块数据根据变换所采用的窗长度的不同就得到不同的时频平面图。例如,假设当前帧为缓变信号时的时频变换阶数为M=2048,其他类型的窗长度分别为M/2、M/4、M/8、M/16,则时频平面图如图6所示,其中图6(1)为M长度的缓变信号的时频平面图;图6(2)为M/2块信号的时频平面图;图6(3)为M/4块信号的时频平面图;图6(4)为M/8块信号的时频平面图;图6(5)为M/16块信号的时频平面图。
在步骤16,低频波形编码包括低频冗余处理和低频量化编码两个步骤。低频冗余处理可以采用许多种方法。例如,采用较短阶数的变换器或者较高阶数的预测器以消除两个子帧之间或者连续两帧之间的映射域上的声音信号的时间相关性,如离散余弦变换(DCT)、离散傅里叶变换(DFT)、修正离散余弦变换(MDCT)、长时预测器(LTP)等;采用较低阶数的预测器以消除映射域上的声音信号中的频域相关性,如线性预测器(LPC)等。
对低频波形量化编码可采用类似MPEG AAC中的标量加哈夫曼编码的量化方案,也可以采用矢量量化方案。在定码率编码中,矢量量化器是一个合理的选择方案。
在步骤17,将低频谱的特定频段映射到高频的特定频段,形成低频谱至高频谱映射后的高频谱。首先将时频映射得到的映射域系数划分为低频谱和高频谱。由于编码声音信号的采样率和编码比特率很多,频带的划分是可调的。典型的,低频谱和高频谱的分界点可在编码带宽的[1/3,1]之间。其中,编码带宽不大于待编码信号的实际带宽,这里,按照奈奎斯特采样定理,信号的实际带宽为其采样频率的一半。例如,在16kbps码率下,编码44.1kHz单声道声音信号时,编码带宽的一个选择是12kHz。
目前,低频谱至高频谱映射可以采用多种方法实现,例如折叠映射,线性映射,倍频映射等。以线性映射为例,假设原始信号的低频频谱的范围为[0,Fl],高频频谱的范围为[Fl,Fs],其中2×Fl<Fs<3×Fl,如图7中a)所示。在进行线性映射之后,可以得到如图7中b)所示的频谱。
在步骤18,高频参数编码是一种根据低频谱至高频谱映射后的高频谱提取用来恢复高频谱的高频参数的方法。本发明中对高频参数编码方法包含以下步骤:
步骤18-1、根据信号类型、快变点发生的位置和高频参数编码块类型等信息,将低频谱至高频谱映射后的高频时频平面和原始高频时频平面划分多个分组区域,输出频带划分信息和块分组信息。
步骤18-1中所述划分的区域类似于MPEG AAC中的尺度因子带(ScaleFactorBand),某个区域的能量是由计算该区域的谱线的能量之和得到。由于低频谱至高频谱映射后的高频谱是由低频谱映射得到的,所以其结构也和低频谱一致,如图8所示。当本帧为缓变帧时,高频谱可以沿频率方向做区域划分;当本帧为快变帧时,为了抑制前回声(pre-echo)和后回声(post-echo)的影响,需要有较高的时间分辨率,这时沿时间方向可以根据快变点的位置做不同的区域划分。如果快变点发生位置如图8中a)所示,则对应的区域划分如图8中b)所示。例如,通过信号分析模块判断出快变点发生位置在第三个窗,且高频编码的块类型序列为{M/8,M/8,M/8,M/8,M/8,M/8,M/8,M/8},则利用图8中a)需要选择模式3,然后按照图8中b)所示模式3对应的区域划分为(3,1,3,1)。为提高编码效率,可以打破帧的限制,将后续帧中的子帧划入本帧中进行编码,比如本帧和下一帧都是短块类型,将本帧分为2个区域,第1窗到第5窗为第一区域;第6窗到第9窗(下一帧的第一窗)为第二区域;这样下一帧就可从下一帧的第2窗开始划分区域和编码。为了减少传输边信息所用的比特数,在快变帧时可以将频率的分辨率降低。特别注意的是原始高频谱和低频谱至高频谱映射的高频谱的区域划分应该一致。这样,某个区域的增益就是该区域计算出的原始高频谱的能量和低频谱至高频谱映射的高频谱的能量之比。
步骤18-2、分别计算每个原始高频频带的调性和对应的低频谱至高频谱映射的高频频带的调性,得到调整特定频带调性的边信息,包括调整类型和调整参数,并对这些参数进行量化编码。可以采用多种方法来计算调性。比如,在时域通过线性预测的方法、谱平坦度的方法和MPEG中心理声学模型2利用不可预测度得到调性的方法。
步骤18-3、根据频带划分信息以及划分得到的多个区域,计算原始时频平面中每个区域的能量与映射时频平面对应的区域能量的比值,该比值作为增益参数,并对增益参数进行量化编码。
图9是根据本发明实施例的单声道声音解码装置,
如图9所示,该装置包括:比特流解复用模块901、低频波形解码模块902、低频频时映射模块903、高频解码时频映射模块904、低频谱到高频谱映射模块905、高频参数解码模块906、频时映射模块907和重采样模块908。
下面,概括介绍图9所示各模块之间的连接关系和及其各自的功能。
比特流解复用模块901,用于对接收的声音编码码流进行解复用,得到相应数据帧的编码数据和边信息,向低频波形解码模块902输出相应的编码数据和边信息,向高频参数解码模块907和低频频时变换模块903输出相应的边信息。
低频波形解码模块902用于对该帧低频波形编码数据解码,并根据冗余处理边信息对解码数据进行冗余逆处理,获取映射域的低频谱解码数据并输出到低频频时映射模块。
低频频时映射模块903用于接收低频波形解码模块902的输出,根据比特流解复用模块901输出的低频编码信号类型,通过频时变换比如IMDCT变换得到低频解码时域数据。
高频解码时频映射模块904,用于根据比特流解复用模块901输出的高频编码块序列信息,采用不同长度阶数的变换,将低频解码所得时域信号映射到诸如频域或子带域之类的变换域。然后,将变换域上的声音信号输出到低频谱至高频谱映射模块905、高频参数解码模块906。
低频谱到高频谱映射模块905,用于从高频解码时频映射模块904接收高频解码所用的低频谱,将低频谱的特定频段映射到高频谱的特定频段,得到映射后的高频谱,将映射后高频谱输出到高频参数解码模块906。
高频参数解码模块906用于从该帧MDFT域的低频谱中映射部分谱数据到高频部分,再按照比特流解复用模块901输出的高频参数解码数据(包括增益调整和音调性调整边信息)调整其增益和音调性得到高频谱解码数据。
频时映射模块907用于将低频谱和高频谱组合在一起进行频时变换如IMDFT变换,得到重建的时域信号。频时变换根据信号类型边信息采用不同长度阶数的变换,获取该帧的时域信号。
重采样模块908用于将频时变换模块907输出的该帧时域信号的采样频率变换到适合声音回放的采样频率,应注意,如果频时变换输出的信号的采样频率适于声音回放,则本发明的声音解码装置中可以不包括该模块。
下面,对单声道声音解码装置的比特流解复用模块901、高频参数解码模块905进行具体详细地说明。
比特流解复用模块901,对接收的声音编码码流进行解复用,得到相应数据帧的编码数据和边信息。向低频波形解码模块902输出相应的编码数据和边信息,向低频频时变换模块903输出低频编码块类型信息;向高频解码时频映射模块904输出高频编码块类型信息;高频参数解码模块907输出相应的边信息,包括块分组信息、高频编码类型信息等。
图10是图9所示高频参数解码模块的结构框图。
如图10所示,高频参数解码模块905包括频带划分器1001、调性调整器1002和增益调整器1003。
频带划分器1001根据从比特流解复用模块901接收的块分组信息、高频编码块类型等边信息,将低频谱至高频谱映射后的高频谱划分为多个频带,划分方法与编码端高频参数编码器中频带划分301划分方法相同,并将频带划分信息输出到调性调整器1002和增益调整器1003。
调性调整器1002根据频带划分器1002输出的频带划分信息,对每个频带根据调性调整类型边信息作判断,如果调整类型为不调整,则映射后的频谱不作处理;如果调整类型为加噪,则解量化调整参数边信息,根据解量化的结果计算得出加噪的能量,并在映射后的频谱中对应频带加入相应能量的噪声;如果调整类型为加弦,则解量化调整参数边信息,根据解量化的结果计算得出加弦的能量,并在映射后频谱的本频带中的中央加入相应能量的弦。加弦时,前后帧加弦的相位要保持连续。
增益调整器1003根据频带划分器1002输出的频带划分信息,对时频平面的每个区域计算由增益调整参数边信息得到每个区域增益调整的目标能量,最后将每个区域的能量进行调整使其与该区域目标能量相同。
下面对根据本发明优选实施例的单声道声音解码方法进行详细描述,该方法包括以下步骤:
步骤21、将声音编码码流进行解复用,得到低频编码数据、高频参数编码数据以及解码所用的所有边信息。
步骤22、根据低频编码数据以及边信息对低频编码数据进行逆量化和解码,然后进行低频冗余逆处理得到解码后的低频谱;
步骤23、对解码后的低频谱进行低频频时映射,得到解码后的低频时域信号;
步骤24、依据码流进行解复用得到的高频编码块序列信息等边信息,对解码后的低频时频信号进行高频解码时频映射,得到高频参数解码所需的低频谱;
步骤25、将低频谱的特定频带映射到高频的特定频带;
步骤26、根据低频谱至高频谱映射后的高频谱,对高频参数进行参数解码,得到解码后的高频谱;
步骤27、对解码后的低频谱和高频谱组合在一起进行频时映射,得到解码后的时域信号;
步骤28、对解码后的时域信号进行重采样操作,将解码后的时域信号的采样率变换到适合声音回放的采样频率。
下面对根据本发明优选实施例的单声道声音解码方法的各步骤进行详细说明:
在步骤21,将声音编码码流进行解复用,得到低频编码数据、高频参数编码数据以及解码所用的所有边信息。这些边信息包括低频编码块序列信息、高频编码块序列信息、高频编码块序列分组信息等。本发明与其他方法的显著不同是码流信息中有高频编码块类型/块序列信息。
在步骤22,低频信号解码包括低频逆量化和低频冗余逆处理两个步骤。首先对低频编码数据进行逆量化和解码,得到逆量化后的低频谱。然后根据边信息判断该帧数据在编码端是否进行了低频冗余处理,如果是则需要将逆量化后的低频谱进行低频冗余逆处理,否则逆量化后的低频谱不做变化。
步骤23、对解码后的低频谱进行频时映射,得到解码后的低频时域信号;
比如对于逆修正离散余弦变换(IMDCT),频率-时间映射过程包括三个步骤:IMDCT变换、时域加窗处理和时域叠加运算。
首先对逆量化谱进行IMDCT变换,得到变换后的时域信号xi,n。IMDCT变换的表达式为:
其中,n表示样本序号,且0≤n<N,N表示时域样本数,取值为2048,n0=(N/2+1)/2;i表示帧序号;k表示谱序号。
其次,对IMDCT变换获取的时域信号在时域进行加窗处理。为满足完全重构条件,窗函数w(n)必须满足以下两个条件:w(2M-1-n)=w(n)且w2(n)+w2(n+M)=1。
最后,对上述加窗时域信号进行叠加处理,得到时域音频信号。具体是:将加窗操作后获取的信号的前N/2个样本和前一帧信号的后N/2个样本重叠相加,获取N/2个输出的时域音频样本,即
timeSami,n=preSami,n+preSami-1,n+N/2,其中i表示帧序号,n表示样本序号,有
步骤24、根据高频编码块序列信息,对解码后的低频时域信号进行高频解码时频映射,得到高频参数解码所需的低频谱。这一部分与编码方法中的高频编码时频映射方法类似。
在步骤25,根据解码所得的高频编码块类型信息即一组块序列,对本帧中所有块的映射域数据逐块进行低频谱到高频谱的映射。低频谱至高频谱映射目前有多种方法实现,例如折叠映射,线性映射,倍频映射等。具体方法与前述编码方法中的类似。
在步骤26,高频参数解码方法可以包含以下步骤:
步骤26-1、根据高频编码块类型、块分组信息等对映射后的时频平面进行划分,区域的划分同编码器一致。
步骤26-2、求映射后的时频平面的各区域的能量。
步骤26-3、从比特流解复用模块得到调性调整类型,如果调整类型为不调整,则执行步骤26-5,否则进行步骤26-4。
步骤26-4、从比特流解复用模块得到调性调整参数并解量化,然后根据解量化后的调性调整参数对映射后的频谱进行调性调整。
步骤26-5、从比特流解复用模块得到的时频平面各区域量化后的增益,解量化后并对步骤26-2或步骤26-4输出的高频谱的各区域增益进行调整,使得调整后的各区域的能量与目标能量相同,形成信号的高频谱。
步骤27,根据本帧解码所得的高频编码块类型信息,依次对块序列中的每个块进行频时映射和时域叠加处理,得到信号的时域解码数据。
步骤27-1,根据高频编码块类型信息,按照块序列构建本帧高频编码时频映射的窗序列;
步骤27-2,逐块对块序列中的每块信号进行频时变换,得到每块的时域数据。对于每一个块的频时变换,以修正离散傅立叶变换(IMDFT)为例说明频时映射的过程。
对于逆修正离散傅里叶变换(IMDFT),频率-时间映射过程包括三个步骤:IMDFT变换、时域加窗处理和时域叠加运算。
首先对逆量化谱进行IMDFT变换,得到变换后的时域信号xi,n。IMDFT变换的表达式为:
其中,n表示样本序号,2M为帧长,表示时域样本数,取值为2048/256;k表示谱序号。
其次,对IMDFT变换获得的时域信号在时域进行加窗处理。为满足完全重构条件,窗函数w(n)必须满足以下两个条件:w(2M-1-n)=w(n)且w2(n)+w2(n+M)=1。
最后,对上述加窗时域信号进行叠加处理,得到时域音频信号。具体是:将加窗操作后获得的信号的前N/2个样本和前一帧信号的后N/2个样本重叠相加,获得N/2个输出的时域音频样本,即
timeSami,n=preSami,n+preSami-1,n+N/2,其中i表示帧序号,n表示样本序号,有
在步骤28,重采样的实施方法与编码装置端相同。应注意,如果频时映射后的时域信号的采样频率适于声音回放,则可以不包括重采样操作。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种声音编码装置,包括:
低频编码信号分析模块,用于对数字声音信号逐帧进行信号分析得到与波形编码的特点相适应的第一块序列信息;
低频编码时频映射模块,用于利用所述第一块序列信息将一帧划分为第一块序列,将所述第一块序列中的块数据从时域映射到映射域,得到映射域上的频谱,其中,所述第一块序列决定其中每一块数据的时频变换长度;
低频波形编码模块,用于对所述映射域上的频谱进行量化编码,得到低频波形编码数据;
高频编码信号分析模块,用于对数字声音信号逐帧进行信号分析得到与参数编码的特点相适应的第二块序列信息;
高频编码时频映射模块,用于利用所述第二块序列信息将一帧划分为第二块序列,将所述第二块序列中的块数据从时域映射到映射域,并且将映射域上的声音信号划分为低频谱和高频谱,其中,所述第二块序列决定其中每一块数据的时频变换长度;
低频谱至高频谱映射模块,用于将划分得到的低频谱的特定频段映射到高频谱的特定频段,得到频谱映射后的高频谱;
高频参数编码模块,用于根据划分得到高频谱和所述频谱映射后的高频谱,计算用于在解码端从低频谱中恢复高频谱的高频参数,并且对所述高频参数进行量化编码,得到高频参数编码数据;以及
比特流复用模块,用于对所述低频波形编码数据、所述高频参数编码数据、所述第一块序列信息和所述第二块序列信息进行复用,得到声音编码码流。
2.根据权利要求1所述的装置,其中,所述高频编码信号分析模块被配置用于:
判断一帧信号是快变信号还是缓变信号;
如果是快变信号,则根据快变时域宽度得到第二块序列信息,其中,所述快变时域宽度是一帧中连续发生快变的子帧的数量。
3.根据权利要求2所述的装置,其中,所述判断一帧信号是快变信号还是缓变信号的步骤包括:
对一帧信号进行高通滤波;
将高通滤波后的信号分成多个子帧;
计算所述多个子帧中每个子帧的能量;以及
如果其中一个子帧与其前一子帧的能量比大于预定阈值,则所述子帧位置存在快变,判断所述一帧信号为快变信号,否则判断该帧信号为缓变信号。
4.根据权利要求3所述的装置,其中,所述根据快变时域宽度得到所述第二块序列信息的步骤包括:
根据每个子帧位置是否存在快变得到子帧能量变化序列;
根据所述子帧能量变化序列确定一帧中的一个或多个快变时域宽度;以及
根据一帧中最小的快变时域宽度构造所述第二块序列信息。
5.根据权利要求2所述的装置,其中,所述高频编码信号分析模块还被配置用于:
如果是快变信号,则计算快变点位置;以及
根据所述快变点位置和所述快变时域宽度对所述第二块序列信息进行优化。
6.根据权利要求1所述的装置,其中,所述低频编码信号分析模块被配置用于:
对一帧信号进行带通滤波,滤除该帧信号的极低频成分和超过低频波形编码频率范围的高频成份;
将带通滤波后的一帧分别划分为多个不同的预定块序列;
将每个预定块序列中的每一块数据从时域映射到映射域,得到每一块数据在映射域上的谱线;
根据所述每一块数据在映射域上的谱线计算每个预定块序列的信号感知熵;
选择信号感知熵最小的预定块序列来构建所述第一块序列信息。
7.根据权利要求6所述的装置,其中,所述每个预定块序列的信号感知熵是通过计算每个预定块序列中的每一块数据的信号感知熵得到的,所述低频编码信号分析模块还被配置用于:
根据所述信号感知熵最小的预定块序列中的每一块数据的信号感知熵对所述第一块序列信息进行优化。
8.根据权利要求1所述的装置,其中,所述高频参数编码模块包括:
频带划分器,用于根据所述第二块序列信息,将所述划分得到的高频谱的时频平面和所述频谱映射后的高频谱的时频平面划分成多个区域,得到分别与时域划分和频域划分相对应的块分组信息和频带划分信息;
调性参数提取器,用于根据所述频带划分信息和划分得到的多个频带,提取出在解码端用来调整高频谱的调性所需的调性参数;以及
增益参数提取器,用于根据所述块分组信息、所述频带划分信息和划分得到的多个区域,提取出在解码端用来调整高频谱的增益所需的增益参数,
其中,所述高频参数包括所述调性参数、所述增益参数,和所述块分组信息。
9.一种声音编码方法,包括:
对数字声音信号逐帧进行信号分析得到与波形编码的特点相适应的第一块序列信息,利用所述第一块序列信息将一帧划分为第一块序列,将所述第一块序列中的块数据从时域映射到映射域,得到映射域上的频谱,其中,所述第一块序列决定其中每一块数据的时频变换长度,对所述映射域上的频谱进行量化编码,得到低频波形编码数据,并且对数字声音信号逐帧进行信号分析得到与参数编码的特点相适应的第二块序列信息,利用所述第二块序列信息将一帧划分为第二块序列,将所述第二块序列中的块数据从时域映射到映射域,并且将映射域上的声音信号划分为低频谱和高频谱,其中,所述第二块序列决定其中每一块数据的时频变换长度,将划分得到的低频谱的特定频段映射到高频谱的特定频段,得到频谱映射后的高频谱,根据划分得到高频谱和所述频谱映射后的高频谱,计算用于在解码端从低频谱中恢复高频谱的高频参数,对所述高频参数进行量化编码,得到高频参数编码数据;以及
对所述低频波形编码数据、所述高频参数编码数据、所述第一块序列信息和所述第二块序列信息进行复用,得到声音编码码流。
10.根据权利要求9所述的方法,其中,所述对数字声音信号逐帧进行信号分析得到与参数编码的特点相适应的第二块序列信息的步骤包括:
判断一帧信号是快变信号还是缓变信号;以及
如果是快变信号,则根据快变时域宽度得到所述第二块序列信息,其中,所述快变时域宽度是一帧中连续发生快变的子帧的数量。
11.根据权利要求10所述的方法,其中,所述判断一帧信号是快变信号还是缓变信号的步骤包括:
对一帧信号进行高通滤波;
将高通滤波后的信号分成多个子帧;
计算所述多个子帧中每个子帧的能量;以及
如果其中一个子帧与其前一子帧的能量比大于预定阈值,则所述子帧位置存在快变,判断所述一帧信号为快变信号,否则判断该帧信号为缓变信号。
12.根据权利要求11所述的方法,其中,所述根据快变时域宽度得到所述第二块序列的步骤包括:
根据每个子帧位置是否存在快变得到子帧能量变化序列;以及
根据所述子帧能量变化序列确定一帧中的一个或多个快变时域宽度;
根据一帧中最小的快变时域宽度构造所述第二块序列信息。
13.根据权利要求10所述的方法,所述对数字声音信号进行信号分析,得到与参数编码的特点相适应的第二块序列信息的步骤还包括:
如果是快变信号,则计算快变点位置;以及
根据所述快变点位置和所述快变时域宽度对所述第二块序列信息进行优化。
14.根据权利要求9所述的方法,其中,对数字声音信号逐帧进行信号分析得到与波形编码的特点相适应的第一块序列信息的步骤包括:
对一帧信号进行带通滤波,滤除该帧信号的极低频成分和超过低频波形编码频率范围的高频成份;
将带通滤波后的一帧分别划分为多个不同的预定块序列;
将每个预定块序列中的每一块数据从时域映射到映射域,得到每一块数据在映射域上的谱线;
根据所述每一块数据在映射域上的谱线计算每个预定块序列的信号感知熵;以及
选择信号感知熵最小的预定块序列来构建所述第一块序列信息。
15.根据权利要求14所述的方法,其中,所述每个预定块序列的信号感知熵是通过计算每个预定块序列中的每一块数据的信号感知熵得到的,所述对数字声音信号逐帧进行信号分析得到与波形编码的特点相适应的第一块序列信息的步骤还包括:
根据所述信号感知熵最小的预定块序列中的每一块数据的信号感知熵对所述第一块序列信息进行优化。
16.根据权利要求9所述的方法,其中,所述计算用于在解码端从低频谱中恢复高频谱的高频参数的步骤包括:
根据第二块序列信息,将所述划分得到的高频谱的时频平面和所述频谱映射后的高频谱的时频平面划分成多个区域,得到分别与时域划分和频域划分相对应的块分组信息和频带划分信息;
根据所述频带划分信息和划分得到的多个频带,提取出在解码端用来调整高频谱的调性所需的调性参数;以及
根据所述块分组信息、所述频带划分信息和划分得到的多个区域,提取出在解码端用来调整高频谱的增益所需的增益参数,
其中,所述高频参数包括所述调性参数、所述增益参数和所述块分组信息。
17.一种声音解码装置,包括:
比特流解复用模块,用于对声音编码码流进行解复用,以获取低频波形编码数据、高频参数编码数据、低频编码块序列信息和高频编码块序列信息;
低频波形解码模块,用于对所述低频波形编码数据进行解码,得到频域的低频谱数据;
低频频时映射模块,用于根据所述低频编码块序列信息对所述频域的低频谱数据进行频时映射,得到时域上的低频谱数据;
高频解码时频映射模块,用于根据所述高频编码块序列信息将所述时域上的低频谱数据映射到频域,得到频域上的低频谱数据;
低频谱至高频谱映射模块,用于从所述频域上的低频谱数据中映射部分谱数据到高频部分,得到频谱映射后的高频谱数据;
高频参数解码模块,用于根据所述高频参数编码数据和所述高频编码块序列信息,对所述频谱映射后的高频谱数据进行参数解码,得到频域上的高频谱数据;以及
频时映射模块,用于将所述频域上的低频谱数据和所述频域上的高频谱数据进行组合在一起进行频时变换,得到时域上的声音解码数据。
18.根据权利要求17所述的装置,其中,所述高频参数编码数据包括调性参数、增益参数和块分组信息,所述块分组信息在编码端用于提取所述调性参数和所述增益参数,所述高频参数解码模块包括:
频带划分器,用于根据所述块分组信息和所述高频编码块序列信息,将所述频谱映射后的高频谱数据划分为多个频带;
调性调整器,用于根据所述调性参数对所述多个频带进行调性调整;以及
增益调整器,用于根据所述增益参数对所述多个频带进行增益调整。
19.一种声音解码方法,包括:
对声音编码码流进行解复用,以获取低频波形编码数据、高频参数编码数据、低频编码块序列信息和高频编码块序列信息;
对所述低频波形编码数据进行解码,得到频域的低频谱数据;
对所述频域的低频谱数据进行频时映射,得到时域上的低频谱数据;
根据所述低频编码块序列信息将所述时域上的低频谱数据映射到频域,得到频域上的低频谱数据;
从所述频域上的低频谱数据中映射部分谱数据到高频部分,得到频谱映射后的高频谱数据;
根据所述高频参数编码数据和所述高频编码块序列信息,对所述频谱映射后的高频谱数据进行参数解码,得到频域上的高频谱数据;以及
将所述频域上的低频谱数据和所述频域上的高频谱数据进行组合在一起进行频时变换,得到时域上的声音解码数据。
20.根据权利要求19所述的方法,其中,所述高频参数编码数据包括调性参数、增益参数和块分组信息,所述块分组信息在编码端用于提取所述调性参数和所述增益参数,所述参数解码包括:
根据所述块分组信息和所述高频编码块序列信息,将所述频谱映射后的高频谱数据划分为多个频带;
根据所述调性参数对所述多个频带进行调性调整;以及根据所述增益参数对所述多个频带进行增益调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310128173.7A CN104103276B (zh) | 2013-04-12 | 2013-04-12 | 一种声音编解码装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310128173.7A CN104103276B (zh) | 2013-04-12 | 2013-04-12 | 一种声音编解码装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104103276A CN104103276A (zh) | 2014-10-15 |
CN104103276B true CN104103276B (zh) | 2017-04-12 |
Family
ID=51671362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310128173.7A Active CN104103276B (zh) | 2013-04-12 | 2013-04-12 | 一种声音编解码装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104103276B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2679254C1 (ru) * | 2015-02-26 | 2019-02-06 | Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. | Устройство и способ для обработки аудиосигнала для получения обработанного аудиосигнала с использованием целевой огибающей во временной области |
CN105280189B (zh) * | 2015-09-16 | 2019-01-08 | 深圳广晟信源技术有限公司 | 带宽扩展编码和解码中高频生成的方法和装置 |
CN113192521B (zh) * | 2020-01-13 | 2024-07-05 | 华为技术有限公司 | 一种音频编解码方法和音频编解码设备 |
CN113192517B (zh) * | 2020-01-13 | 2024-04-26 | 华为技术有限公司 | 一种音频编解码方法和音频编解码设备 |
CN113963703A (zh) * | 2020-07-03 | 2022-01-21 | 华为技术有限公司 | 一种音频编码的方法和编解码设备 |
CN113948094A (zh) * | 2020-07-16 | 2022-01-18 | 华为技术有限公司 | 音频编解码方法和相关装置及计算机可读存储介质 |
CN112885364B (zh) * | 2021-01-21 | 2023-10-13 | 维沃移动通信有限公司 | 音频编码方法和解码方法、音频编码装置和解码装置 |
CN113593592B (zh) * | 2021-08-04 | 2024-03-22 | 深圳市瑞江科技有限公司 | 基于多域扩张的音频增强方法及装置 |
CN114566174B (zh) * | 2022-04-24 | 2022-07-19 | 北京百瑞互联技术有限公司 | 一种优化语音编码的方法、装置、***、介质及设备 |
CN115116456A (zh) * | 2022-06-15 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 音频处理方法、装置、设备、存储介质及计算机程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086845A (zh) * | 2006-06-08 | 2007-12-12 | 北京天籁传音数字技术有限公司 | 声音编码装置及方法以及声音解码装置及方法 |
CN101276587A (zh) * | 2007-03-27 | 2008-10-01 | 北京天籁传音数字技术有限公司 | 声音编码装置及其方法和声音解码装置及其方法 |
CN101925950A (zh) * | 2008-01-04 | 2010-12-22 | 杜比国际公司 | 音频编码器和解码器 |
CN101763856B (zh) * | 2008-12-23 | 2011-11-02 | 华为技术有限公司 | 信号分类处理方法、分类处理装置及编码*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1470550B1 (en) * | 2002-01-30 | 2008-09-03 | Matsushita Electric Industrial Co., Ltd. | Audio encoding and decoding device and methods thereof |
KR20070115637A (ko) * | 2006-06-03 | 2007-12-06 | 삼성전자주식회사 | 대역폭 확장 부호화 및 복호화 방법 및 장치 |
CN102081927B (zh) * | 2009-11-27 | 2012-07-18 | 中兴通讯股份有限公司 | 一种可分层音频编码、解码方法及*** |
-
2013
- 2013-04-12 CN CN201310128173.7A patent/CN104103276B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086845A (zh) * | 2006-06-08 | 2007-12-12 | 北京天籁传音数字技术有限公司 | 声音编码装置及方法以及声音解码装置及方法 |
CN101276587A (zh) * | 2007-03-27 | 2008-10-01 | 北京天籁传音数字技术有限公司 | 声音编码装置及其方法和声音解码装置及其方法 |
CN101925950A (zh) * | 2008-01-04 | 2010-12-22 | 杜比国际公司 | 音频编码器和解码器 |
CN101763856B (zh) * | 2008-12-23 | 2011-11-02 | 华为技术有限公司 | 信号分类处理方法、分类处理装置及编码*** |
Also Published As
Publication number | Publication date |
---|---|
CN104103276A (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104103276B (zh) | 一种声音编解码装置及其方法 | |
KR102117051B1 (ko) | 프레임 에러 은닉방법 및 장치와 오디오 복호화방법 및 장치 | |
RU2765618C2 (ru) | Гармоническое преобразование, усовершенствованное перекрестным произведением | |
US20230154476A1 (en) | Audio encoder and decoder using a frequency domain processor with full-band gap filling and a time domain processor | |
EP3262639B1 (en) | Apparatus and method for processing an audio signal to obtain a processed audio signal using a target time-domain envelope | |
AU2006252962B2 (en) | Audio CODEC post-filter | |
AU2007206167B2 (en) | Apparatus and method for encoding and decoding signal | |
CN101276587B (zh) | 声音编码装置及其方法和声音解码装置及其方法 | |
US11264042B2 (en) | Apparatus and method for generating an enhanced signal using independent noise-filling information which comprises energy information and is included in an input signal | |
CN104025189B (zh) | 编码语音信号的方法、解码语音信号的方法,及使用其的装置 | |
CN107925388A (zh) | 用于增强瞬时处理的后置处理器、预处理器、音频编码器、音频解码器及相关方法 | |
CN105280190B (zh) | 带宽扩展编码和解码方法以及装置 | |
MX2012010416A (es) | Aparato y método para procesar una señal de audio usando alineación de borde de patching. | |
CN101086845A (zh) | 声音编码装置及方法以及声音解码装置及方法 | |
WO2016016724A2 (ko) | 패킷 손실 은닉방법 및 장치와 이를 적용한 복호화방법 및 장치 | |
CN102460574A (zh) | 用于使用层级正弦脉冲编码对音频信号进行编码和解码的方法和设备 | |
CN103366751A (zh) | 一种声音编解码装置及其方法 | |
EP4120254A1 (en) | Improved harmonic transposition | |
CN111210831A (zh) | 基于频谱拉伸的带宽扩展音频编解码方法及装置 | |
RU2778834C1 (ru) | Гармоническое преобразование, усовершенствованное перекрестным произведением | |
AU2013201597B2 (en) | Cross product enhanced harmonic transposition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |