CN104681028B - 一种编码方法及装置 - Google Patents

一种编码方法及装置 Download PDF

Info

Publication number
CN104681028B
CN104681028B CN201410425477.4A CN201410425477A CN104681028B CN 104681028 B CN104681028 B CN 104681028B CN 201410425477 A CN201410425477 A CN 201410425477A CN 104681028 B CN104681028 B CN 104681028B
Authority
CN
China
Prior art keywords
subbands
sub
data frame
subband
bands
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
Application number
CN201410425477.4A
Other languages
English (en)
Other versions
CN104681028A (zh
Inventor
刘泽新
王宾
苗磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410425477.4A priority Critical patent/CN104681028B/zh
Publication of CN104681028A publication Critical patent/CN104681028A/zh
Application granted granted Critical
Publication of CN104681028B publication Critical patent/CN104681028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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
    • G10L19/0204Speech 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 using subband decomposition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/035Scalar quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients

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)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明实施例提供一种编码方法及装置,涉及通信领域,能够对音频信号的频谱系数进行合理的量化比特分配,从而提高解码器解出的信号质量。该方法包括:将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值;对该各个子带中的第一数量个子带的量化频域包络值进行修正;根据修正后的该第一数量个子带的量化频域包络值,为各个子带分配量化比特;对各个子带中分配了量化比特的子带的频谱系数进行量化;将量化后的分配了量化比特的子带的频谱系数写入码流。

Description

一种编码方法及装置
技术领域
本发明涉及通信领域,尤其涉及一种编码方法及装置。
背景技术
音频压缩技术是数字音频广播、互联网的音乐传播和音频通讯等多媒体应用技术的核心。变换编码是音频压缩技术中一种常用的方法,变换编码通过将音频数据从一个数据域变换到另一个数据域,从而可以将音频数据中的大量信息用较少的数据表示出来,进而有利于量化该音频数据以达到高效压缩编码的目的。
现有的变换编码算法,编码器通过将音频信号从时域转换到频域(时频变换)以得到该音频信号的频谱系数,再将该频谱系数划分成若干个子带,并对各个子带的频域包络进行计算并量化,以得到各个子带的量化频域包络索引值和各个子带的量化频域包络值,然后根据各个子带的量化频域包络值和可用比特数对各个子带的频谱系数分别进行比特分配,以及根据各个子带的量化频域包络值和为各个子带的频谱系数分配的比特数量化各个子带的频谱系数,最后再将各个子带的量化频域包络索引值和量化后的各个子带的频谱系数写入码流,将码流传送至解码器。
然而,由于现有技术在对各个子带的频谱系数进行比特分配时,是根据各个子带的量化频域包络值对各个子带的频谱系数进行量化比特分配,可能导致对一些子带的频谱系数的量化比特分配不合理,从而使得解码器解出的信号质量差。
发明内容
本发明的实施例提供一种编码方法及装置,能够对音频信号的频谱系数进行合理的量化比特分配,从而提高解码器解出的信号质量。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种编码方法,包括:
将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值;
对所述各个子带中的第一数量个子带的量化频域包络值进行修正;
根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特;
对所述各个子带中分配了量化比特的子带的频谱系数进行量化;
将量化后的所述分配了量化比特的子带的频谱系数写入码流。
在第一方面的第一种可能实现的方式中,所述对所述各个子带中的第一数量个子带的量化频域包络值进行修正包括:
获取所述第一数量个子带的修正因子;
使用所述第一数量个子带的修正因子对所述第一数量个子带的量化频域包络值进行修正。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取所述第一数量个子带的修正因子包括:
获取所述第一数量个子带的信号类型;
根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子的方法包括:
在所述第一数量个子带中的第一子带的信号类型为谐波时,确定所述第一子带的修正因子大于1;
在所述第一数量个子带中的第一子带的信号类型为非谐波时,确定所述第一子带的修正因子小于或等于1。
结合第一方面的第二种可能的实现方式或第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子之前,所述方法还包括:
获取保存的所述当前数据帧的前一个数据帧中的第二数量个子带的参考信息,所述第二数量小于或等于所述第一数量;
其中,所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子,具体包括:
根据所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子的方法包括:
根据所述第一数量个子带中的第一子带的信号类型,确定所述第一子带的第一修正因子;
根据所述第二数量个子带中与所述第一子带对应的第二子带的参考信息,确定所述第一子带的第二修正因子;
将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,
所述第二子带的参考信息包括所述第二子带的量化比特分配状态和/或所述第二子带的信号类型;
其中,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态时,所述第二修正因子为第三修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的信号类型时,所述第二修正因子为第四修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的量化比特分配状态和所述第二子带的信号类型时,所述第二修正因子为所述第三修正因子与所述第四修正因子的乘积。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,
在所述第二子带的量化比特分配状态表示没有频谱系数被编码时,确定所述第三修正因子小于1,或,在所述第二子带的量化比特分配状态表示有频谱系数被编码时,确定所述第三修正因子大于1;
在所述第二子带的信号类型为谐波时,确定所述第四修正因子大于1,或,在所述第二子带的信号类型为非谐波时,确定所述第四修正因子小于或等于1。
结合第一方面的第六种可能的实现方式或第七种可能的实现方式,在第八种可能的实现方式中,所述第一子带的第二修正因子由所述第二子带的频域包络值,所述第二数量个子带的频域包络均值,所述第二数量个子带的带宽值,所述第二数量个子带的频域包络值中的最大值及所述第二数量个子带的频域包络方差值中任意两个值的比值确定。
结合第一方面的第五种可能的实现方式至第七种可能的实现方式中的任一种可能的实现方式,在第九种可能的实现方式中,所述第一子带的第一修正因子由所述第一子带的频域包络值,所述第一数量个子带的频域包络均值,所述第一数量个子带的带宽值,所述第一数量个子带的频域包络值中的最大值及所述第一数量个子带的频域包络方差值中任意两个值的比值确定。
结合第一方面的第一种可能的实现方式,在第十种可能的实现方式中,所述获取所述第一数量个子带的修正因子包括:
获取保存的所述当前数据帧的前一个数据帧中的第一数量个子带的参考信息;
根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子。
结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子之前,所述方法还包括:
获取所述当前数据帧中的各个子带中的第三数量个子带的信号类型,所述第三数量小于或等于所述第一数量;
其中,所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子,具体包括:
根据所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子。
结合第一方面的第十一种可能的实现方式,在第十二种可能的实现方式中,所述根据所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子的方法包括:
根据所述前一个数据帧中的第一数量个子带中的第二子带的参考信息,确定所述当前数据帧中的第一数量个子带中的第一子带的第二修正因子;
根据所述第一子带的信号类型,确定所述第一子带的第一修正因子;
将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
结合前述的第一方面或第一方面的第一种可能的实现方式至第十二种可能的实现方式中的任一种可能的实现方式,在第十三种可能的实现方式中,所述根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特之后,所述方法还包括:
保存所述第一数量个子带的参考信息。
结合前述的第一方面或第一方面的第一种可能的实现方式至第十二种可能的实现方式中的任一种可能的实现方式,在第十四种可能的实现方式中,所述根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特,具体包括:根据修正后的所述第一数量个子带的量化频域包络值以及所述子带中未经所述修正的子带的量化频域包络值,为所述各个子带分配量化比特。第二方面,本发明实施例提供一种编码装置,包括:
获取单元,用于将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值;
修正单元,用于对所述获取单元获取的所述各个子带中的第一数量个子带的量化频域包络值进行修正;
分配单元,用于根据所述修正单元修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特;
量化单元,用于对所述各个子带中所述分配单元分配了量化比特的子带的频谱系数进行量化;
复用单元,用于将所述量化单元量化后的所述分配了量化比特的子带的频谱系数写入码流。
在第二方面的第一种可能实现的方式中,
所述获取单元,还用于获取所述第一数量个子带的修正因子;
所述修正单元,还用于使用所述获取单元获取的所述第一数量个子带的修正因子对所述获取单元获取的所述第一数量个子带的量化频域包络值进行修正。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述编码装置还包括确定单元;
所述获取单元,还用于获取所述第一数量个子带的信号类型;
所述确定单元,用于根据所述获取单元获取的所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述确定单元,还用于在所述获取单元获取的所述第一数量个子带中的第一子带的信号类型为谐波时,确定所述第一子带的修正因子大于1,以及在所述获取单元获取的所述第一数量个子带中的第一子带的信号类型为非谐波时,确定所述第一子带的修正因子小于或等于1。
结合第二方面的第二种可能的实现方式或第三种可能的实现方式,在第四种可能的实现方式中,
所述获取单元,还用于在所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子之前,获取保存的所述当前数据帧的前一个数据帧中的第二数量个子带的参考信息,所述第二数量小于或等于所述第一数量;
所述确定单元,具体用于根据所述获取单元获取的所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述确定单元,还用于根据所述获取单元获取的所述第一数量个子带中的第一子带的信号类型,确定所述第一子带的第一修正因子,及根据所述获取单元获取的所述第二数量个子带中与所述第一子带对应的第二子带的参考信息,确定所述第一子带的第二修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,
所述获取单元获取的所述第二子带的参考信息包括所述第二子带的量化比特分配状态和/或所述第二子带的信号类型;
其中,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态时,所述确定单元确定的所述第二修正因子为第三修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的信号类型时,所述第二修正因子为第四修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的量化比特分配状态和所述第二子带的信号类型时,所述第二修正因子为所述第三修正因子与所述第四修正因子的乘积。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,
所述确定单元,还用于在所述第二子带的量化比特分配状态表示没有频谱系数被编码时,确定所述第三修正因子小于1,或,在所述第二子带的量化比特分配状态表示有频谱系数被编码时,确定所述第三修正因子大于1,以及在所述获取单元获取的所述第二子带的信号类型为谐波时,确定所述第四修正因子大于1,或,在所述获取单元获取的所述第二子带的信号类型为非谐波时,确定所述第四修正因子小于或等于1。
结合第二方面的第六种可能的实现方式或第七种可能的实现方式,在第八种可能的实现方式中,所述确定单元确定的所述第一子带的第二修正因子由所述第二子带的频域包络值,所述第二数量个子带的频域包络均值,所述第二数量个子带的带宽值,所述第二数量个子带的频域包络值中的最大值及所述第二数量个子带的频域包络方差值中任意两个值的比值确定。
结合第二方面的第五种可能的实现方式至第七种可能的实现方式,在第九种可能的实现方式中,所述确定单元确定的所述第一子带的第一修正因子由所述第一子带的频域包络值,所述第一数量个子带的频域包络均值,所述第一数量个子带的带宽值,所述第一数量个子带的频域包络值中的最大值及所述第一数量个子带的频域包络方差值中任意两个值的比值确定。
结合第二方面的第一种可能的实现方式,在第十种可能的实现方式中,
所述获取单元,还用于获取所述保存单元保存的所述当前数据帧的前一个数据帧中的第一数量个子带的参考信息;
所述确定单元,还用于根据所述获取单元获取的所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子。
结合第二方面的第十种可能的实现方式,在第十一种可能的实现方式中,
所述获取单元,还用于所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子之前,获取所述当前数据帧中的各个子带中的第三数量个子带的信号类型,所述第三数量小于或等于所述第一数量;
所述确定单元,具体用于根据所述获取单元获取的所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子。
结合第二方面的第十一种可能的实现方式,在第十二种可能的实现方式中,
所述确定单元,还用于根据所述获取单元获取的所述前一个数据帧中的第一数量个子带中的第二子带的参考信息,确定所述当前数据帧中的第一数量个子带中的第一子带的第二修正因子,及根据所述获取单元获取的所述第一子带的信号类型,确定所述第一子带的第一修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
结合前述的第二方面或第二方面的第一种可能的实现方式至第十二种可能的实现方式中的任一种可能的实现方式,在第十三种可能的实现方式中,
所述保存单元,还用于在根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特之后,保存所述第一数量个子带的参考信息。
结合前述的第二方面或第二方面的第一种可能的实现方式至第十二种可能的实现方式中的任一种可能的实现方式,在第十四种可能的实现方式中,
所述分配单元具体用于,根据修正后的所述第一数量个子带的量化频域包络值以及所述子带中未经所述修正的子带的量化频域包络值,为所述各个子带分配量化比特。
本发明实施例提供的一种编码方法及装置,编码器将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值,且编码器对各个子带中的第一数量个子带的量化频域包络值进行修正,以及编码器根据第一数量个子带的修正后的该量化频域包络值,为各个子带分配量化比特,并且编码器对各个子带中分配了量化比特的子带的频谱系数进行量化,最后编码器将分配了量化比特的子带的量化后的频谱系数写入码流。通过该方案,由于在对音频信号的当前数据帧中的各个子带的频谱系数进行量化比特分配之前,可根据当前数据帧的信号类型和前一个数据帧的信息,修正当前数据帧中的各个子带的量化频域包络值,因此,根据修正后的该各个子带的量化频域包络值和可用比特数对该各个子带的频谱系数进行量化比特分配,能够达到对音频信号的频谱系数进行合理的量化比特分配的目的,从而提高解码器解出的信号质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种编码方法的流程图一;
图2为本发明实施例提供的一种编码方法的流程图二;
图3为本发明实施例提供的一种编码方法的音频信号的频谱图;
图4为本发明实施例提供的编码装置的结构示意图一;
图5为本发明实施例提供的编码装置的结构示意图二;
图6为本发明实施例提供的编码装置的结构示意图三;
图7为本发明实施例提供的编码器的结构示意图。
具体实施方式
下面结合附图对本发明实施例提供的一种编码方法及装置进行详细地描述。
实施例一
本发明实施例提供一种编码方法,如图1所示,该方法可以包括:
S101、编码器将当前数据帧的频谱系数划分成子带后,编码器获取各个子带的量化频域包络值。
编码器(encoder)是将数据或信号(如比特流)进行编制,转换为可用于通讯、传输和存储的信号形式的设备。编码器在不同的技术领域有不同的分类,其中,在通信技术领域,编码器可以包括视频编码器、音频编码器等。
本发明实施例提供的编码器可以为音频编码器,音频编码器为一种可以将模拟音频信号压缩成数据编码文件的工具,即音频压缩编码的工具,其中,音频压缩编码可分为语音信号的压缩编码和宽带音频信号的压缩编码。语音信号的压缩编码主要用于数字电话通信上,宽带音频信号的压缩编码主要应用于数字声音广播、VCD(Video Compact Disc,影音光碟)、数字多功能光盘(Digital Video Disc,DVD)及高清晰度电视(High DefinitionTelevision,HDTV)的伴音中。
需要说明的是,音频信号可以数据帧的形式一帧一帧连续传输至编码器,其中,数据帧是数据链路层的协议数据单元,且数据帧可以包括:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP(Internet Protocol,网络之间互连的协议)数据包等。
编码器先将当前数据帧的频谱系数划分成子带,再获取各个子带的量化频域包络值。
示例性的,本发明实施例提供的编码方法中,设当前数据帧为第y个数据帧,编码器将当前数据帧,即第y个数据帧的频谱系数划分成N个子带后,编码器分别获取该N个子带的量化频域包络值。其中,N≥1,y≥1。编码器通过第y个数据帧中的N个子带的频域包络,以得到该第y个数据帧中的N个子带的频域包络值,编码器再对该频域包络值进行量化,以得到该第y个数据帧中的N个子带的量化频域包络索引值,并根据该量化频域包络索引值重新建立第y个数据帧中的N个子带的频域包络,从而得到该第y个数据帧中的N个子带的量化频域包络值。
量化可以包括标量量化和矢量量化,其中,矢量量化是一种高效的数据压缩技术,具有压缩比大,解码简单及失真小等优点,矢量量化技术广泛应用在图像压缩和语音编码中。
可选的,矢量量化可以包括塔型格型矢量量化,球型格型矢量量化等。
S102、编码器对各个子带中的第一数量个子带的量化频域包络值进行修正。
编码器获取各个子带的量化频域包络值之后,编码器对第一数量个子带的量化频域包络值进行修正,其中,该第一数量个子带可以为各个子带中的一部分子带。
本发明实施例提供的编码方法中,编码器会将传输来的音频信号的每一个数据帧都划分成相同数量个子带,即当前数据帧和前一个数据帧中的都包含有相同数量个子带。
具体的编码器得到该当前数据帧中的各个子带的量化频域包络值之后,编码器可根据当前数据帧中的子带的信号类型和前一个数据帧中的子带的参考信息,或当前数据帧中的子带的信号类型,或前一个数据帧中的子带的参考信息,修正该当前数据帧中的第一数量个子带的量化频域包络值。本发明实施例中,当前数据帧与前一个数据帧相邻。
举例来说,假设每一帧中的子带个数为N,编码器可以根据当前数据帧中的M个子带的信号类型和/或前一个数据帧中的L个子带的参考信息,修正当前数据帧中的第一数量个子带的量化频域包络值。其中,第一数量的值为M与L中的最大值,1≤M≤N,1≤L≤N。本发明实施例中,当前数据帧中的M个子带的信号类型为该M个子带中每个子带的信号类型,前一个数据帧中的L个子带的参考信息为该L个子带中的每个子带的参考信息。
其中,每个数据帧中的具体的子带划分方法及具体的修正方式将在后续的实施例中进行详细地说明。
可选的,子带的信号类型可以包括谐波与非谐波。
可以理解的是,由于编码器根据该当前数据帧中的子带的信号类型和/或前一个数据帧中的子带的参考信息,修正该当前数据帧中的第一数量个子带的量化频域包络值,因此,修正后的当前数据帧中的子带的量化频域包络值更符合音频信号的特性,且使得前一个数据帧的频谱系数与当前数据帧的频谱系数更连续。
S103、编码器根据修正后的第一数量个子带的量化频域包络值,为各个子带分配量化比特。
编码器对各个子带中的第一数量个子带的量化频域包络值进行修正之后,编码器可以根据修正后的第一数量个子带的量化频域包络值,为当前数据帧中的各个子带进行量化比特分配。
具体的,编码器修正当前数据帧中的第一数量个子带的量化频域包络值后,编码器可根据修正后的该当前数据帧中的第一数量个子带的量化频域包络值计算当前数据帧中的各个子带的重要性的初始值(子带的重要性可以用子带的能量、频率等参数来衡量),再根据该各个子带的重要性的初始值将可用比特数分别分配给各个子带,其中,重要性高的子带分配的比特较多,重要性低的子带分配的比特较少。
为了在数据帧重建时更加的连续,所述编码器可以根据修正后的该当前数据帧中的第一数量个子带的量化频域包络值以及所述子带中未未经调整的子带的量化频域包络值来进行为各个子带分配量化比特。
需要说明的是,可用比特数是指当前数据帧可以使用的总比特数,其中,可用比特数是由编码器的码率决定的,编码器的码率越大,可用比特数就越大。
可以理解的是,通过对当前数据帧中的各个子带的量化频域包络值进行修正,一方面,由于用于量化比特分配的修正后的当前数据帧中的各个子带的量化频域包络值更符合音频信号的特性,因此,使得对该各个子带的频谱系数的量化比特分配更合理;另一方面,由于修正后的当前数据帧中的各个子带的量化频域包络值可使得前一个数据帧的频谱系数与当前数据帧的频谱系数更连续,因此,减少了解码器解码时频谱上的一些离散点,从而使得解码器可以更好地完成解码。
S104、编码器对各个子带中分配了量化比特的子带的频谱系数进行量化。
编码器对当前数据帧中的各个子带的频谱系数进行量化比特分配之后,编码器对当前数据帧中的各个子带中分配了量化比特的子带的频谱系数进行量化。
具体的,编码器对当前数据帧中的各个子带的频谱系数进行量化比特分配之后,编码器可根据修正后的当前数据帧中的各个子带的量化频域包络值对该当前数据帧中的各个子带的频谱系数进行归一化处理,然后再根据编码器为当前数据帧中的各个子带中分配了量化比特的子带的频谱系数分别分配的比特数,量化该当前数据帧中的各个子带的频谱系数。
示例性的,设当前数据帧为第y个数据帧,前一个数据帧为第y-1个数据帧,编码器将每一个数据帧划分为N个子带。编码器根据为第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数分配的比特数,量化第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数时,可采用塔型格型矢量量化方法对分配较少比特的子带的频谱系数进行量化,以得到量化后的分配较少比特的子带的频谱系数;相应的,编码器也可采用球型格型矢量量化方法对分配较多比特的子带的频谱系数进行量化,以得到量化后的分配较多比特的子带的频谱系数。
需要说明的是,当前数据帧中的各个子带可以有没有分配到量化比特分配的情况,本发明实施例中,编码器对当前数据帧中的各个子带中分配了量化比特的子带的频谱系数进行量化。具体地,如果一个子带被分配了量化比特,则使用为该子带分配的量化比特对该子带的频谱系数进行量化。例如,为一个子带分配了2个量化比特,则使用这2个量化比特对该一个子带的频谱系数进行量化;为另一个子带分配了3个比特,则使用这3个量化比特对该另一个子带的频谱系数进行量化;如果一个子带没有被分配量化比特,则该没有分配量化比特的子带的频谱系数不会被量化。
S105、编码器将量化后的分配了量化比特的子带的频谱系数写入码流。
编码器量化当前数据帧中的分配了量化比特的子带的频谱系数之后,编码器需将量化后的分配了量化比特的子带的频谱系数写入码流,以用于解码器进行解码。
具体的,编码器量化当前数据帧中的分配了量化比特的子带的频谱系数之后,编码器将分配了量化比特的子带的量化后的频谱系数、当前数据帧中的子带的信号类型、前一个数据帧中的子带的参考信息,以及当前数据帧中的各个子带的量化频域包络索引值写入码流,并将该码流传送至解码器进行解码。
需要说明的是,对于音频信号的每一个数据帧,编码器均按照上述S101-S105的步骤进行编码,即编码器重复执行S101-S105,直至对音频信号的所有数据帧均完成编码。
可以理解的是,编码器对待编码的音频信号的每一个数据帧在编码器中进行计算、量化、修正后,编码器需将上述过程中得到的相应的当前数据帧中的子带的信号类型、前一个数据帧中的子带的参考信息,以及当前数据帧中的各个子带的量化频域包络索引值等参数与当前数据帧中的量化后的分配了量化比特的子带的频谱系数写入码流,传送至解码器,以便解码器能根据编码时得到的相应的参数对编码后的音频信号的码流进行反量化,反归一化等处理,从而解码器完成解码后得到编码前的该音频信号。
本发明实施例提供的一种编码方法,编码器将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值,且编码器对各个子带中的第一数量个子带的量化频域包络值进行修正,及编码器根据第一数量个子带的修正后的该量化频域包络值,为各个子带分配量化比特,以及编码器对各个子带中分配了量化比特的子带的频谱系数进行量化,最后编码器将分配了量化比特的子带的量化后的频谱系数写入码流。通过该方案,由于在对音频信号的当前数据帧的各个子带的频谱系数进行量化比特分配之前,可根据当前数据帧的信号类型和前一数据帧的信息,修正该各个子带的量化频域包络值,因此,根据修正后的该各个子带的量化频域包络值和可用比特数对该各个子带的频谱系数进行量化比特分配,能够达到对音频信号的频谱系数进行合理的量化比特分配的目的,从而提高解码器解出的信号质量。
实施例二
本发明实施例提供一种编码方法,在本发明实施例提供的编码方法中,以当前数据帧为第y个数据帧,前一个数据帧为第y-1个数据帧为例来进行说明,其中y≥1,如图2所示,该方法可以包括:
S201、编码器对音频信号的第y个数据帧进行时频变换,以得到该第y个数据帧的频谱系数,其中y≥1。
编码器是将数据或信号(如比特流)进行编制,转换为可用于通讯、传输和存储的信号形式的设备。编码器在不同的技术领域有不同的分类,其中,在通信技术领域,编码器可以包括视频编码器、音频编码器等。
本发明实施例提供的编码器可以为音频编码器,音频编码器为一种可以将模拟音频信号压缩成数据编码文件的工具,即音频压缩编码的工具,其中,音频压缩编码可分为语音信号的压缩编码和宽带音频信号的压缩编码。语音信号的压缩编码主要用于数字电话通信上,宽带音频信号的压缩编码主要应用于数字声音广播、VCD、DVD及HDTV的伴音中。
时频变换是指将信号从时域变换为频域,目前,通常使用的时频变换方法有离散傅里叶变换(Discrete Fourier Transform,DFT)、离散余弦变换(Discrete CosineTransform,DCT)及改进型离散余弦变换(Modified Discrete Cosine Transform,MDCT)等。
需要说明的是,音频信号可以数据帧的形式一帧一帧连续传输至编码器,其中,数据帧是数据链路层的协议数据单元,且数据帧可以包括:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包等。
编码器采用时频变换的方法,将音频信号的第y个数据帧,从时域变换到频域,以得到该第y个数据帧的频谱系数。可以理解,在编码过程中,编码器会依次将音频信号的每一个数据帧从时域变换到频域。
S202、编码器将第y个数据帧的频谱系数划分成N个子带,其中,N≥1。
子带是指在某一频带中,携带有特定特性的频带。
本发明实施例提供的编码方法中,编码器对音频信号进行时频变换后,编码器会将经时频变换后的音频信号的每一个数据帧都划分为N个子带,即编码器将传输来的任一个数据帧中都划分为N个子带,故第y个数据帧和第y-1个数据帧的子带个数相同,都为N个。
其中,对于第y个数据帧中的每个子带都是第y个数据帧中的不同的一段频带。示例性的,若第y个数据帧的频谱系数在0-8000赫兹内,则0-20赫兹的一段频带就是该第y个数据帧中的一个子带。
可选的,划分子带时,可将变换后的第y个数据帧的频谱系数分成若干个等间隔的子带,也可按照听觉感知特性将变换后的第y个数据帧的频谱系数划分成若干个非等间隔的子带,具体可根据实际划分要求进行划分,本发明不做限制。
S203、编码器获取第y个数据帧中的N个子带的量化频域包络值。
量化可以包括标量量化和矢量量化,其中,矢量量化是一种高效的数据压缩技术,具有压缩比大,解码简单及失真小等优点,矢量量化技术广泛应用在图像压缩和语音编码中。
编码器通过计算第y个数据帧中的N个子带的频域包络,以得到该第y个数据帧中的N个子带的频域包络值,编码器再对该频域包络值进行量化,以得到该第y个数据帧中的N个子带的量化频域包络索引值,并根据该量化频域包络索引值重新建立第y个数据帧中的N个子带的频域包络,从而得到该第y个数据帧中的N个子带的量化频域包络值。
可选的,矢量量化可以包括塔型格型矢量量化,球型格型矢量量化等。
S204、编码器获取第y个数据帧中的第一数量个子带的修正因子。
本发明实施例中,优选的,编码器修正第y个数据帧中的N个子带的量化频域包络值时,只需根据第y个数据帧中的各个子带的重要性,修正第y个数据帧中的重要性高的几个子带,即第y个数据帧中的子带能量的最大的几个子带,即第y个数据帧中的频率最高的几个子带。由于考虑到相邻数据帧间的连续性,因此,具体修正第y个数据帧中的子带的第一数量的值的多少,由从第y个数据帧中选取的频率最高的子带的个数M与从第y-1个数据帧中选取的频率最高的子带的个数L的大小决定,即第一数量的值为M与L的最大值。其中,1≤M≤N,1≤L≤N。
特别的,第y个数据帧中的最高频率的M个子带或第y-1个数据帧中的最高频率的L个子带的选择方法为:编码器可以在选择一个频率的基准频率,当子带的起始频率高于该基准频率时,该子带为一个最高频率的子带。其中,基准频率可以是5千赫兹、5.45千赫兹、5.8千赫兹、6千赫兹、6.2千赫兹、7千赫兹、8千赫兹或10千赫兹,即最高频率的子带的选择可以根据不同的情况,自行进行设定,本发明不做限制。
进一步地,在本发明的实施例中,基准频率的选择可以根据当前数据帧中子带的最高频率以及预先设定的频率范围确定,即,基准频率=最高频率-频率范围;例如,如果预先设定的频率范围是2千赫兹,当前数据帧中子带的最高频率为7.45千赫兹,则基准频率=7.45千赫兹-2千赫兹=5.45千赫兹;如果预先设定的频率范围是3千赫兹,当前数据帧中子带的最高频率为9.2千赫兹,则基准频率=9.2千赫兹-3千赫兹=6.2千赫兹;可以理解的是,预先设定的频率范围可以根据需要或者根据经验设定。
进一步地,编码器可以修正第y个数据帧中的M或L个子带。其中,如图3所示,第y个数据帧中的M个子带为从第y个数据帧中的N个子带中频率最高的子带开始的连续M个子带,第y-1个数据帧中的L个子带为从第y-1个数据帧中的N个子带中频率最高的子带开始的连续L个子带。
下面以M≥L时的情况,进行说明。
若M≥L,则第一数量为M;若将第y-1个数据帧中的L个子带的个数称为第二数量,第二数量小于或等于第一数量,则第y-1个数据帧中的第二数量个子带为第y-1个数据帧中的L个子带。编码器获取第y个数据帧中的第一数量个子带的修正因子的方法,包括:编码器根据第y个数据帧中的第一数量个子带的信号类型,确定第y个数据帧中的第一数量个子带的修正因子,或编码器根据第y个数据帧中的第一数量个子带的信号类型以及第y-1个数据帧中的第二数量个子带的参考信息,确定第y个数据帧中的第一数量个子带的修正因子。
具体的,编码器根据第y个数据帧中的M个子带中每个子带的信号类型,选择相应的计算公式,以确定该M个子带中每个子带分别对应的修正因子的值,或编码器根据第y个数据帧中的M个子带中每个子带的信号类型和第y-1个数据帧中L个子带中的信息,分别选择相应的计算公式,以确定该第y个数据帧中的M个子带中每个子带分别对应修正因子。
需要说明的是,第y个数据帧中的M个子带的信号类型为该M个子带中每个子带的信号类型,该M个子带中每个子带分别对应一个修正因子。
进一步地,编码器获取第y个数据帧中的M个子带的修正因子的方法如下:
(1)编码器根据第y个数据帧中的M个子带中每个子带的信号类型,选择相应的计算公式,以确定该第y个数据帧中的M个子带中每个子带分别对应的修正因子的值。
可选的,子带的信号类型可以包括谐波与非谐波。在第y个数据帧中的第一数量个子带中的第一子带的信号类型为谐波时,编码器确定该第一子带的修正因子大于1;在第y个数据帧中的第一数量个子带中的该第一子带的信号类型为非谐波时,编码器确定该第一子带的修正因子小于或等于1。即,若第y个数据帧中的M个子带中的第一子带的信号类型为谐波,编码器则确定与第一子带对应的修正因子为大于1的数,或,若第一子带的信号类型为非谐波,编码器则确定与第一子带对应的修正因子为小于或者等于1的数。
具体的,第一子带的修正因子由该第一子带的频域包络值,第一数量个子带的频域包络均值,第一数量个子带的带宽值,第一数量个子带的频域包络中的最大值,第一数量个子带的频域包络方差值中任意两个值的比值确定,即第一子带的修正因子由该第一子带的频域包络值,M个子带的频域包络均值,M个子带的带宽值,M个子带的频域包络中的最大值,M个子带的频域包络方差值中任意两个值的比值确定,其中,具体的组合形式可根据该第一子带的信号类型进行选择,即可根据第一子带的信号类型,选择相应的公式计算修正因子。
第一公式如下:
factor ( i ) = bandlength * Ep _ tmp [ i ] * Ep _ vari Ep _ avrg 2 , i ≥ 1 - - - ( 1 )
其中,bandlength为M子带中第i个字带距离N个子带中除M个子带以外的某一子带的间隔子带的个数;
Ep[i]为第i个子带的能量,Ep_tmp[i]为第i个子带的频域包络值,band_width[i]为第i个子带的带宽;
Ep _ vari = Σ i N | Ep _ tmp [ i ] - Ep _ tmp [ i - 1 ] | , Ep_vari为某频段的频域包络方差;
Ep_avrg为某频段内某几个子带的频域包络均值。
第二公式如下:
factor(i)=1.0 (2)
示例性的,若该第一子带的信号类型为谐波,则选择第一公式,从而可使得计算得到的该第一子带对应的修正因子的值大于1;若该第一子带的信号类型为非谐波,则选择第二公式,从而可使得计算得到的该第一子带对应的修正因子的值小于或者等于1。
可以理解的是,若该第一子带的信号类型为谐波,为了解码时能更好地恢复出该第一子带的谐波特性,则需给该第一子带分配较多的比特。即当该第一子带的信号类型为谐波时,通过确定该第一子带对应的修正因子为大于1的数,从而使得修正后的该第一子带的量化频域包络值大于未修正的该第一子带的量化频域包络值,进而使得为该第一子带分配的比特较多。
需要说明的是,第y个数据帧中第一数量个子带中的每个子带的修正因子的获取方法都如上述第一子带的修正因子的方法一样。
(2)编码器根据第y个数据帧中的M个子带中每个子带的信号类型和第y-1个数据帧中L个子带的参考信息,分别选择相应的计算公式,以确定该第y个数据帧中的M个子带中每个子带分别对应的修正因子。
需要说明的是,M≥L,编码器根据第y个数据帧中的M个子带中每个子带的信号类型,确定M个第一修正因子,编码器根据第y-1个数据帧中L个子带的参考信息,确定L个第二修正因子。M个第一修正因子中的L个第一修正因子和L个第二修正因子,分别对应修正第y个数据帧中的M个子带中的L个子带的量化频域包络值,以及编码器根据M个第一修正因子中剩余的M-L个第一修正因子,分别对应修正第y个数据帧中的M个子带中剩余的M-L个子带的量化频域包络值。
具体的,对第y个数据帧中的第一子带来说明。若与第y个数据帧中的第一子带有对应的第y-1个数据帧中第二子带的参考信息,则编码器根据第y个数据帧中的第一子带的信号类型,确定该第一子带的第一修正因子,以及编码器根据第y-1个数据帧中的第二数量个子带中与第y个数据帧中的第一子带对应的第y-1个数据帧中第二子带的参考信息,确定该第一子带的第二修正因子,最后将该第一修正因子和该第二修正因子的乘积作为该第一子带的修正因子。若与第y个数据帧中的第一子带没有对应的第y-1个数据帧中第二子带的参考信息,则编码器根据第y个数据帧中的第一子带的信号类型,确定该第一子带的第一修正因子,该第一子带的修正因子为该第一修正因子。
需要说明的是,编码器根据第y个数据帧中的M个子带中每个子带的信号类型,分别选择相应的计算公式,以确定该M个子带中每个子带分别对应的第一修正因子的值时,该第一修正因子的值为上述(1)中的修正因子的确定方法,即上述(1)中的修正因子为这里的第一修正因子。
需要说明的是,第y-1个数据帧中的L个子带的参考信息为该L个子带中的每个子带的参考信息。
进一步地,编码器根据第y个数据帧中的第一数量个子带的信号类型,确定与第y个数据帧中的第一数量个子带的修正因子之前,编码器要先获取第y个数据帧中的第一数量个子带的信号类型,以及编码器根据第y-1个数据帧中第二数量个子带的参考信息,确定第y-1个数据帧中第二数量个子带的修正因子之前,编码器要先获取保存的第y-1个数据帧中的第二数量个子带的参考信息,其中,第y-1个数据帧中的第二数量个子带的参考信息为编码器编码完第y-1个数据帧时保存的。
可选的,第y-1个数据帧中的第二子带的参考信息为该第二子带的量化比特分配状态和/或该第二子带的信号类型。
其中,当该第二子带的参考信息包括该第二子带的量化比特分配状态时,第二修正因子为第三修正因子,或者,当该第二子带的参考信息包括该第二子带的信号类型时,第二修正因子为第四修正因子,或者,当该第二子带的参考信息包括该第二子带的量化比特分配状态和该第二子带的信号类型时,第二修正因子为该第三修正因子与该第四修正因子的乘积。
具体的,第y-1个数据帧中的L个子带的参考信息包括第y-1个数据帧中的L个子带的量化比特分配状态和/或第y-1个数据帧中的L个子带的信号类型。当第y-1个数据帧中的L个子带的参考信息包括第y-1个数据帧中的L个子带的量化比特分配状态时,第二修正因子为第三修正因子,或者,当第y-1个数据帧中的L个子带的参考信息包括第y-1个数据帧中的L个子带的信号类型时,第二修正因子为第四修正因子,或者,当第y-1个数据帧中的L个子带的参考信息包括第y-1个数据帧中的L个子带的量化比特分配状态和第y-1个数据帧中的L个子带的信号类型时,第二修正因子为第三修正因子与第四修正因子的乘积。
优选的,第二修正因子为第三修正因子与第四修正因子的乘积。
编码器可根据第y-1个数据帧中的L个子带中每个子带的量化比特分配状态选择相应的计算公式,以确定该L个子带中每个子带对应的第三修正因子的值,及根据第y-1个数据帧中的L个子带中每个子带的信号类型选择相应的计算公式,以确定该L个子带中每个子带对应的第四修正因子的值,并根据该L个子带中每个子带对应的第三修正因子和/或第四修正因子,以确定该L个子带中每个子带对应的第二修正因子的值。
可选的,若第y-1个数据帧中的L个子带中的第二子带的量化比特分配状态表示有频谱系数被编码时,编码器则确定与第二子带对应的第三修正因子为大于1的数,或,若第二子带的量化比特分配状态表示没有频谱系数被编码时,编码器则确定与第二子带对应的第三修正因子为小于1的数。若第二子带的信号类型为谐波,编码器则确定与第二子带对应的第四修正因子为大于1的数,或,若第二子带的信号类型为非谐波,编码器则确定与第二子带对应的第四修正因子为小于1或者等于1的数。
需要说明的是,第y-1个数据帧中的L个子带中的第二子带的量化比特分配状态为“1”时,表示有频谱系数被编码,第y-1个数据帧中的L个子带中的第二子带的量化比特分配状态为“0”时,表示没有频谱系数被编码。这里第四修正因子的获取方法与上述(1)中的修正因子的获取方法相同。
具体的,第一子带的第二修正因子由第二子带的频域包络值,第二数量个子带的频域包络均值,第二数量个子带的带宽值,第二数量个子带的频域包络中的最大值,第二数量个子带的频域包络方差值中任意两个值的比值确定,其中,具体的组合形式可分别根据该第二子带的参考信息选择,即分别根据第二子带的量化比特分配状态和/或第二子带的信号类型,选择相应的公式计算第三修正因子和第四修正因子。
第三公式如下:
factor ( i ) = Ep _ avrg * Ep _ tmp [ i ] * Ep _ avrg bandlength , i ≥ 1 - - - ( 3 )
其中,bandlength为L子带中第i个字带距离N个子带中除L个子带以外的某一子带的间隔子带的个数。
第四公式如下:
factor ( i ) = bandlength Ep _ avrg * Ep _ tmp [ i ] * Ep _ avrg , i ≥ 1 - - - ( 4 )
其中,bandlength为L子带中第i个字带距离N个子带中除L个子带以外的某一子带的间隔子带的个数。
示例性的,若该第二子带的量化比特分配状态为“1”,则选择第三公式,从而使得计算得到的该第二子带对应的第三修正因子的值大于1;若该第二子带的量化比特分配状态为“0”,则选择第四公式,从而使得计算得到的该第二子带对应的第三修正因子的值小于1。
若该第二子带的信号类型为谐波,则选择第一公式,从而使得计算得到的该第二子带对应的第四修正因子的值大于1;若该第二子带的信号类型为非谐波,则选择第二公式,从而使得计算得到的该第二子带对应的第四修正因子的值小于或者等于1。
可以理解的是,若第y-1个数据帧中的第二子带的量化比特分配状态为“1”,为了编码时能更好的保持音频信号的相邻数据帧之间的连续性,则表示为该第二子带分配了较多比特。即当该第二子带的量化比特分配状态为“1”时,通过确定该第二子带对应的第三修正因子为大于1的数,从而使得修正后的第y个数据帧中与该第二子带对应的子带的量化频域包络值大于未修正的第y个数据帧中与该第二子带对应的子带的量化频域包络值,进而使得为该子带分配的比特较多。
需要说明的是,第y个数据帧中第一数量个子带中的每个子带的修正因子的获取方法都如上述第一子带的修正因子的方法一样。
下面以M≤L时的情况,进行说明。
若M≤L,则第一数量的值为L;若将第y个数据帧中的M个子带的个数称为第三数量,则第y个数据帧中的第三数量个子带为第y个数据帧中的M个子带。编码器获取第y个数据帧中的第一数量个子带的修正因子的方法,包括:根据第y-1个数据帧的第一数量个子带的参考信息,确定第y个数据帧的第一数量个子带的修正因子,或编码器根据第y-1个数据帧的第一数量个子带的参考信息以及第y个数据帧中的第三数量个子带的信号类型,确定第y个数据帧中的第一数量个子带的修正因子。
具体的,编码器根据第y-1个数据帧中的L个子带中每个子带的参考信息,选择相应的计算公式,以确定第y个数据帧中的L个子带中每个子带分别对应的修正因子的值,或编码器根据第y个数据帧中的M个子带中每个子带的信号类型和第y-1个数据帧中L个子带的参考信息,分别选择相应的计算公式,以确定该第y个数据帧中的L个子带中每个子带分别对应的修正因子。
进一步地,编码器获取第y个数据帧中的L个子带的修正因子的方法如下:
(1)编码器根据第y-1个数据帧中的L个子带中每个子带的参考信息,选择相应的计算公式,以确定第y个数据帧中的L个子带中每个子带分别对应的修正因子的值。
进一步地,编码器根据第y个数据帧中的第三数量个子带的信号类型,确定与第y个数据帧中的第三数量个子带的修正因子之前,编码器要先获取第y个数据帧中的第三数量个子带的信号类型,以及编码器根据第y-1个数据帧中第一数量个子带的参考信息,确定第y-1个数据帧中第一数量个子带的修正因子之前,编码器要先获取保存的第y-1个数据帧中的第一数量个子带的参考信息,其中,第y-1个数据帧中的第一数量个子带的参考信息为编码器编码完第y-1个数据帧时保存的。
需要说明的是,编码器根据第y-1个数据帧中的L个子带中每个子带的参考信息,选择相应的计算公式,以确定第y个数据帧中的L个子带中每个子带分别对应的修正因子的值时,该修正因子的值为上述M≥L中的上述(2)中的第二修正因子的确定方法,即M≥L中的上述(2)中的第二修正因子为这里的修正因子。
(2)编码器根据第y个数据帧中的M个子带中每个子带的信号类型和第y-1个数据帧中L个子带的参考信息,分别选择相应的计算公式,以确定该第y个数据帧中的L个子带中每个子带分别对应的修正因子。
需要说明的是,M≤L,编码器根据第y个数据帧中的M个子带中每个子带的信号类型,确定M个第一修正因子,编码器根据第y-1个数据帧中L个子带的参考信息,确定L个第二修正因子。L个第二修正因子中的M个第二修正因子和L个第一修正因子,分别对应修正第y个数据帧中的L个子带中的M个子带的量化频域包络值,以及编码器根据L个第二修正因子中剩余的L-M个第二修正因子,分别对应修正第y个数据帧中的L个子带中剩余的L-M个子带的量化频域包络值。
具体的,对第y个数据帧中的第一子带来说明。若与第y-1个数据帧中的第二子带有对应的第y个数据帧中第一子带的信号类型,则编码器根据第y-1个数据帧的L个子带中的第二子带的参考信息,确定所第y个数据帧的L个子带中的第一子带的第二修正因子,以及编码器根据第y个数据帧中第一子带的信号类型,确定该第一子带的第一修正因子,最后将该第一修正因子和该第二修正因子的乘积作为该第一子带的修正因子。若与第y-1个数据帧中的第二子带没有对应的第y个数据帧中第一子带的信号类型,则编码器根据第y-1个数据帧中的第二子带的参考信息,确定第y个数据帧中第一子带的第一修正因子,该第一子带的修正因子为该第一修正因子。
需要说明的是,上述第一修正因子的值和第二修正因子的值的确定方法,与M≥L中的第一修正因子的值和第二修正因子的值的确定方法相同,此处不再赘述。
S205、编码器对第y个数据帧中的第一数量个子带的量化频域包络值进行修正。
编码器获取第y个数据帧的第一数量个子带的修正因子之后,编码器对该第y个数据帧中的第一数量个子带的量化频域包络值进行修正。
具体的,编码器使用第y个数据帧中的第一数量个子带的修正因子对该第一数量个子带的量化频域包络值进行修正。
需要说明的是,本发明实施例中,编码器修正第y个数据帧中的第一数量个子带的量化频域包络值时,优选的,如图3所示,编码器只需根据第y个数据帧中的各个子带的重要性,修正第y个数据帧中的重要性高的M或L个子带,并将编码器修正后的第y个数据帧中的M或L个子带与第y个数据帧中的其余未修正的子带重新组成修正后的第y个数据帧中的N个子带。
本发明实施例提供的编码方法中,编码器可根据M与L的大小关系,先确定第y个数据帧中需修正的子带的个数(M与L中的最大值),然后选择M>L,或M<L,或M=L时对应的修正方式,再确定该修正方式对应的修正因子,以对第y个数据帧中的第一数量个子带的量化频域包络值进行修正。
可选的,编码器根据M与L的大小关系选择相应的修正方式对第y个数据帧中的第一数量个子带的量化频域包络值进行修正。
若M≥L,第一数量的值为M,编码器则根据第y个数据帧中的M个子带的信号类型,或第y个数据帧中的M个子带的信号类型和第y-1个数据帧中的L个子带的参考信息,修正第y个数据帧中的M个子带的量化频域包络值,其中,第y个数据帧中的M个子带为从第y个数据帧中的N个子带中频率最高的子带开始的连续M个子带,第y个数据帧中的L个子带为从第y个数据帧中的N个子带中频率最高的子带开始的连续L个子带,第y-1个数据帧中的L个子带为从第y-1个数据帧中的N个子带中频率最高的子带开始的连续L个子带。
或者,
若M≤L,第一数量的值为L,编码器则根据第y-1个数据帧中的L个子带的参考信息,或第y个数据帧中的M个子带的信号类型和第y-1个数据帧中的L个子带的参考信息,修正第y个数据帧中的L个子带的量化频域包络值。
可选的,编码器可根据M与L的大小关系,即修正条件选择与该修正条件对应的修正方式,并根据该修正方式确定对应的修正因子,从而对第y个数据帧中的第一数量个子带的量化频域包络值进行修正。具体的,编码器对第y个数据帧中的第一数量个子带的量化频域包络值进行修正的修正方式可以为下述的一种:
(1)当M≥L时,第一数量的值为M,编码器使用修正因子分别对应修正第y个数据帧中的M个子带中的每个子带的量化频域包络值,其中,该修正因子为编码器根据第y个数据帧中的M个子带中每个子带的信号类型确定的。具体的,编码器通过将M个修正因子和第y个数据帧中的M个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的M个子带量化频域包络值。或编码器根据M个第一修正因子中的L个第一修正因子和L个第二修正因子,分别对应修正第y个数据帧中的M个子带中的L个子带的量化频域包络值,且编码器根据M个第一修正因子中剩余的M-L个第一修正因子,分别对应修正第y个数据帧中的M个子带中剩余的M-L个子带的量化频域包络值。具体的,编码器通过将M个第一修正因子中的L个第一修正因子、L个第二修正因子和第y个数据帧中的M个子带中的L个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的M个子带中的L个子带的量化频域包络值,且编码器通过将M个第一修正因子中剩余的M-L个第一修正因子与第y个数据帧中的M个子带中剩余的M-L个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的M个子带中剩余的M-L个子带的量化频域包络值。
(2)当M≤L时,第一数量的值为L,编码器使用修正因子分别对应修正第y个数据帧中的L个子带中的每个子带的量化频域包络值,其中,该修正因子为编码器根据第y-1个数据帧中的L个子带中每个子带的参考信息确定的。具体的,编码器通过将L个修正因子和第y个数据帧中的L个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的L个子带量化频域包络值。或编码器根据M个第一修正因子和L个第二修正因子中的M个第二修正因子,分别对应修正第y个数据帧中的M个子带的量化频域包络值,且编码器根据L个第二修正因子中剩余的L-M个第二修正因子,分别对应修正第y个数据帧中的L个子带中剩余的L-M个子带的量化频域包络值。具体的,编码器通过将M个第一修正因子中的M个第一修正因子、M个第二修正因子和第y个数据帧中的M个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的M个子带的量化频域包络值,且编码器通过将L个第二修正因子中剩余的L-M个第二修正因子与第y个数据帧中的L个子带中剩余的L-M个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的L个子带中剩余的L-M个子带的量化频域包络值。
示例性的,若M=3,L=2,则M>L,故需修正第y个数据帧中的3个子带,先选择M>L时的修正方式,然后编码器根据3个第一修正因子中的2个第一修正因子和2个第二修正因子,分别对应修正第y个数据帧中的3个子带中的2个子带的量化频域包络值,且编码器根据3个第一修正因子中剩余的1个第一修正因子,分别对应修正第y个数据帧中的3个子带中剩余的1个子带的量化频域包络值,具体的,编码器通过将3个第一修正因子中的2个第一修正因子、2个第二修正因子和第y个数据帧中的3个子带中的2个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的3个子带中的2个子带的量化频域包络值,且编码器通过将3个第一修正因子中剩余的1个第一修正因子与第y个数据帧中的3个子带中剩余的1个子带的量化频域包络值分别对应相乘,以得到修正后的第y个数据帧中的3个子带中剩余的1个子带的量化频域包络值。
可以理解的是,当M=L或M<L时,编码器对第y个数据帧中的M个子带的量化频域包络值进行修正的过程与上述M>L时的修正过程类似,将在后续举例中进行详细地举例说明。
S206、编码器根据修正后的第一数量个子带的量化频域包络值,为各个子带分配量化比特。
编码器对第y个数据帧中的第一数量个子带量化频域包络值进行修正之后,编码器可以根据修正后的第一数量个子带的量化频域包络值,为第y个数据帧中的N个子带进行量化比特分配。
具体的,编码器修正第y个数据帧中的N个子带的量化频域包络值后,编码器可根据修正后的该第y个数据帧中的N个子带的量化频域包络值计算该N个子带的重要性的初始值(子带的重要性可以用子带的能量、频率等参数来衡量),再根据N个子带的重要性的初始值将可用比特数分别分配给N个子带,其中,重要性高的子带分配的比特较多,重要性低的子带分配的比特较少。
需要说明的是,可用比特数是指第y个数据帧可以使用的总比特数,其中,可用比特数是由编码器的码率决定的,编码器的码率越大,可用的比特数就越大。
可以理解的是,通过对第y个数据帧中的N个子带的量化频域包络值进行修正,一方面,由于用于量化比特分配的修正后的第y个数据帧中的N个子带的量化频域包络值更符合音频信号的特性,因此,使得对该N个子带的频谱系数的量化比特分配更合理;另一方面,由于修正后的第y个数据帧中的N个子带的量化频域包络值可使得第y-1个数据帧的频谱系数与第y个数据帧的频谱系数更连续,因此,减少了解码器解码时频谱上的一些离散点,从而使得解码器可以更好地完成解码。
S207、编码器对N个子带中分配了量化比特的子带的频谱系数进行量化。
编码器对第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数进行量化比特分配之后,编码器对第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数进行量化。
具体的,编码器对第y个数据帧中的N个子带的频谱系数进行量化比特分配之后,编码器可根据修正后的第y个数据帧中的N个子带的量化频域包络值对该第y个数据帧中的N个子带的频谱系数进行归一化处理,然后再根据编码器为第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数分别分配的比特数,量化该第y个数据帧中的N个子带的频谱系数。
示例性的,编码器根据为第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数分配的比特数,量化第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数时,可采用塔型格型矢量量化方法对分配较少比特的子带的频谱系数进行量化,以得到量化后的分配较少比特的子带的频谱系数;相应的,编码器也可采用球型格型矢量量化方法对分配较多比特的子带的频谱系数进行量化,以得到量化后的分配较多比特的子带的频谱系数。
需要说明的是,第y个数据帧中的N个子带可以有没有分配到量化比特分配的情况,本发明实施例中,编码器对第y个数据帧中的N个子带中分配了量化比特的子带的频谱系数进行量化。
S208、编码器将量化后的分配了量化比特的子带的频谱系数写入码流。
编码器量化第y个数据帧中的分配了量化比特的子带的频谱系数之后,编码器需将量化后的分配了量化比特的子带的频谱系数写入码流,以用于解码器进行解码。
具体的,编码器量化第y个数据帧中的分配了量化比特的子带的频谱系数之后,编码器将量化后的分配了量化比特的子带的频谱系数、第y个数据帧中的M个子带的信号类型、第y-1个数据帧中的L个子带的参考信息,以及第y个数据帧中的N个子带的量化频域包络索引值写入码流,并将该码流送至解码器进行解码。
需要说明的是,对于音频信号的每一个数据帧,编码器均按照上述S201-S208的步骤进行编码,即编码器重复执行S201-S208,直至对音频信号的所有数据帧均完成编码。编码完成后,编码器保存第y个数据帧中的第一数量个子带的参考信息,以用于第y+1个数据帧编码时使用。
可以理解的是,编码器对待编码的音频信号在编码器中进行计算、量化、修正后,编码器需将上述过程中得到的相应的第y个数据帧中的M个子带的信号类型、第y-1个数据帧中的L个子带的参考信息,以及第y个数据帧中的N个子带的量化频域包络索引值等参数与量化后的第y个数据帧中的分配了量化比特的子带的量化后的频谱系数写入码流,传送至解码器,以便解码器能根据编码时得到的相应的参数对编码后的音频信号的码流进行反量化,反归一化等处理,从而解码器完成解码后得到编码前的该音频信号。
下面以一个具体的宽带音频信号,如编码器根据第y个数据帧中的M个子带的参考信息和第y-1个数据帧中的L个子带的参考信息,确定第y个数据帧中的第一数量个子带的修正因子为例来对本发明实施例提供的编码方法中的修正量化频域包络值的过程进行详细地说明。
假设y=6,N=18,即编码器对宽带音频信号的第6个数据帧进行编码。当宽带音频信号的该第6个数据帧输入编码器后,编码器首先对该第6个数据帧进行MDCT变换,以得到0-8000赫兹内的320个频谱系数,如图3所示,编码器将上述第6个数据帧的320个频谱系数按照听觉感知特性划分成18个非等间隔的子带。其中,在第6个数据帧输入编码器之前,输入至编码器的宽带音频信号的第5个数据帧,也被编码器经过MDCT变换后,得到0-8000赫兹内的320个频谱系数,并将第5个数据帧的320个频谱系数按照听觉感知特性划也分成18个非等间隔的子带。编码器计算并量化第6个数据帧中的18个子带的频域包络后,获得该第6个数据帧中的18个子带的量化频域包络索引值和该第6个数据帧中的18个子带的量化频域包络值fenv。
(1)若选第6个数据帧中的最高频率的3个子带,第5个数据帧中的最高频率的2个子带,即M=3,L=2,则第y个数据帧中的M个子带为第6个数据帧中的第16、17、18个子带,第y-1个数据帧中的L个子带为第5个数据帧中的第17、18个子带。假设第6个数据帧的第16、17、18个子带的信号类型分别为谐波、非谐波、谐波,第5个数据帧的第17、18个子带的量化比特分配状态分别为“1”、“0”,以及第5个数据帧的第17、18个子带的信号类型分别为为谐波、非谐波。
由于M>L,故优选的,编码器只需修正第6个数据帧中的3个子带的量化频域包络值,即只需修正第6个数据帧中的第16、17、18个子带。
下面为了说明的方便,将整体详细阐述第16、17、18个子带的修正因子的确定方法。
首先,编码器确定第一修正因子factor1如下,第6个数据帧中的第16个子带为谐波,故该第16个子带对应的第一修正因子factor1为大于1的数,第6个数据帧中的第17个子带为非谐波,故该第17个子带对应的第一修正因子factor1为小于或者等于1的数,同理,第6个数据帧中的第18个子带对应的factor1为大于1的数,其中,若子带的信号类型为谐波,则factor1用第一公式计算得到,若子带的信号类型为非谐波,则factor1用第二公式计算得到。
其次,编码器确定第二修正因子factor2如下,编码器先需确定第三修正因子与第四修正因子。确定第三修正因子,由于第5个数据帧的第17、18个子带的量化比特分配状态分别为“1”、“0”,故第5个数据帧中的第17个子带对应的第三修正因子factor3为大于1的数,第5个数据帧中的第18个子带对应的第三修正因子factor3为小于1的数,其中,若子带的量化比特分配状态为“1”,则factor3用第三公式计算得到,若子带的量化比特分配状态为“0”,则factor3用第四公式计算得到。确定第四修正因子,由于第5个数据帧中的第17、18个子带的信号类型分别为谐波、非谐波,故第5个数据帧中的第17个子带对应的第四修正因子factor4为大于1的数,第5个数据帧中的第18个子带对应的第四修正因子factor4为小于1的数,其中,若子带的信号类型为谐波,则factor4用第一公式计算得到,若子带的信号类型为非谐波,则factor4用第二公式计算得到。
优选的,对第5个数据帧中的第17个子带进行修正的第二修正因子为第6个数据帧中的第17个子带对应的第三修正因子factor3与第5个数据帧中的第17个子带对应的第四修正因子factor4的乘积,对第5个数据帧中的第18个子带进行修正的第二修正因子为第5个数据帧中的第18个子带对应的第三修正因子factor3与第5个数据帧中的第18个子带对应的第四修正因子factor4的乘积。
最后,编码器可根据M个第一修正因子中的L个第一修正因子和L个第二修正因子,分别对应修正第y个数据帧中的M个子带中的L个子带的量化频域包络值,且编码器根据M个第一修正因子中剩余的M-L个第一修正因子,分别对应修正第y个数据帧中的M个子带中剩余的M-L个子带的量化频域包络值。本例中,M=3,L=2,故在第6个数据帧中,编码器通过将第6个数据帧中的第17个子带对应的第一修正因子、第5个数据帧中的第17个子带对应的第二修正因子与该第6个数据帧中的第17个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第17个子带的量化频域包络值;同时,编码器通过将第6个数据帧中的第18个子带对应的第一修正因子、第5个数据帧中的第18个子带对应的第二修正因子与该第6个数据帧中的第18个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第18个子带的量化频域包络值;同时编码器通过将第6个数据帧中的第16个子带对应的第一修正因子与第6个数据帧中的第16个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第16个子带的量化频域包络值,从而编码器修正了第6个数据帧中的第16、17、18个子带的量化频域包络值。即,
对于第6个数据帧中的第16子带,fenv修正后16=factor1*fenv16,其中,factor1为第6个数据帧中的第16个子带对应的第一修正因子,fenv修正后16为修正后的第6个数据帧中的第16个子带的量化频域包络值,fenv16为修正前的第6个数据帧中的第16个子带的量化频域包络值。
对于第6个数据帧中的第17个子带,
fenv修正后17=factor1*factor2*fenv17,其中,factor2=factor3*factor4,factor1为第6个数据帧中的第17个子带对应的第一修正因子,factor2为第5个数据帧中的第17个子带对应的第二修正因子,factor3为第5个数据帧中的第17个子带对应的第三修正因子,factor4为第5个数据帧中的第17个子带对应的第四修正因子,fenv修正后17为修正后的第6个数据帧中的第17个子带的量化频域包络值,fenv17为修正前的第6个数据帧中的第17个子带的量化频域包络值。
同理,对于第6个数据帧中的第18个子带,
fenv修正后18=factor1*factor2*fenv18,其中,fenv修正后18为修正后的第6个数据帧中的第18个子带的量化频域包络值,fenv18为修正前的第6个数据帧中的第18个子带的量化频域包络值。
(2)若选第6个数据帧中的最高频率的3个子带,第5个数据帧中的最高频率的3个子带,即M=3,L=3,则第y个数据帧中的M个子带为第6个数据帧中的第16、17、18个子带,第y-1个数据帧中的L个子带为第5个数据帧中的第16、17、18个子带。第6个数据帧中的第16、17、18个子带对应的第一修因子和第5个数据帧中的第16、17、18个子带对应的第二修正因子的确定方法与M>L时相同,此处不再赘述。
由于M=L,因此,编码器可根据M个第一修正因子和L个第二修正因子,分别对应修正第y个数据帧中的M个子带的量化频域包络值。本例中,M=3,L=3,故在第6个数据帧中,编码器通过将第6个数据帧中的第16个子带对应的第一修正因子、第5个数据帧中的第16个子带对应的第二修正因子与该第6个数据帧中的第16个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第16个子带的量化频域包络值;同时,编码器通过将第6个数据帧中的第17个子带对应的第一修正因子、第5个数据帧中的第17个子带对应的第二修正因子与该第6个数据帧中的第17个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第17个子带的量化频域包络值;同时,编码器通过将第6个数据帧中的第18个子带对应的第一修正因子、第5个数据帧中的第18个子带对应的第二修正因子与该第6个数据帧中的第18个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第18个子带的量化频域包络值,从而编码器修正了第6个数据帧中的第16、17、18个子带的量化频域包络值。即,
对于第6个数据帧中的第16子带,
fenv修正后16=factor1*factor2*fenv16,其中,
factor2=factor3*factor4,factor1为第6个数据帧中的第16个子带对应的第一修正因子,factor2为第5个数据帧中的第16个子带对应的第二修正因子,factor3为第5个数据帧中的第16个子带对应的第三修正因子,factor4为第5个数据帧中的第16个子带对应的第四修正因子,fenv修正后16为修正后的第6个数据帧中的第16个子带的量化频域包络值,fenv16为修正前的第6个数据帧中的第16个子带的量化频域包络值。
同理,对于第6个数据帧中的第17个子带,
fenv修正后17=factor1*factor2*fenv17,其中,fenv修正后17为修正后的第6个数据帧中的第17个子带的量化频域包络值,fenv17为修正前的第6个数据帧中的第17个子带的量化频域包络值。
同理,对于第6个数据帧中的第18个子带,
fenv修正后18=factor1*factor2*fenv18,其中,fenv修正后18为修正后的第6个数据帧中的第18个子带的量化频域包络值,fenv18为修正前的第6个数据帧中的第18个子带的量化频域包络值。
(3)若选第6个数据帧中的最高频率的3个子带,第5个数据帧中的最高频率的4个子带,即M=3,L=4,则第y个数据帧中的M个子带为第6个数据帧中的第16、17、18个子带,第y-1个数据帧中的L个子带为第5个数据帧中的第15、16、17、18个子带。第6个数据帧中的第16、17、18个子带分别对应的第一修因子和第5个数据帧中的第16、17、18个子带分别对应的第二修正因子,及第5个数据帧中的第15个子带对应的第二修正因子的确定方法与M>L时相同,此处不再赘述。
由于M<L,故优选的,编码器只需修正第6个数据帧中的4个子带的量化频域包络值,即只需修正第6个数据帧中的第15、16、17、18个子带。当M<L时,根据M个第一修正因子和L个第二修正因子中的M个第二修正因子,分别对应修正第y个数据帧中的M个子带的量化频域包络值,且编码器根据L个第二修正因子中剩余的L-M个第二修正因子,分别对应修正第y个数据帧中的L个子带中剩余的L-M个子带的量化频域包络值。本例中,M=3,L=4,故在第6个数据帧中,编码器通过将第6个数据帧中的第16个子带对应的第一修正因子、第5个数据帧中的第16个子带对应的第二修正因子与该第6个数据帧中的第16个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第16个子带的量化频域包络值;同时,编码器通过将第6个数据帧中的第17个子带对应的第一修正因子、第5个数据帧中的第17个子带对应的第二修正因子与该第6个数据帧中的第17个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第17个子带的量化频域包络值;同时,编码器通过将第6个数据帧中的第18个子带对应的第一修正因子、第5个数据帧中的第18个子带对应的第二修正因子与该第6个数据帧中的第18个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第18个子带的量化频域包络值;同时,编码器通过将第5个数据帧中的第15个子带的第二修正因子与第6个数据帧中的第15个子带的量化频域包络值相乘,以得到修正后的第6个数据帧中的第15个子带的量化频域包络值,从而编码器修正了第6个数据帧中的第15、16、17、18个子带的量化频域包络值,即,
对于第6个数据帧中的第15子带,fenv修正后15=factor2*fenv15,其中,factor2=factor3*factor4,factor2为第5个数据帧中的第15个子带对应的第二修正因子,factor3为第5个数据帧中的第15个子带对应的第三修正因子,factor4为第5个数据帧中的第15个子带对应的第四修正因子,fenv修正后15为修正后的第6个数据帧中的第15个子带的量化频域包络值,fenv15为修正前的第6个数据帧中的第15个子带的量化频域包络值。
对于第6个数据帧中的第16个子带,
fenv修正16=factor1*factor2*fenv16,其中,factor1为第6个数据帧中的第16个子带对应的第一修正因子,factor2为第5个数据帧中的第16个子带对应的第二修正因子,fenv修正后16为修正后的第6个数据帧中的第16个子带的量化频域包络值,fenv16为修正前的第6个数据帧中的第16个子带的量化频域包络值。
同理,对于第6个数据帧中的第17个子带,
fenv修正后17=factor1*factor2*fenv17,其中,fenv修正后17为修正后的第6个数据帧中的第17个子带的量化频域包络值,fenv17为修正前的第6个数据帧中的第17个子带的量化频域包络值。
同理,对于第6个数据帧中的第18个子带,
fenv修正后18=factor1*factor2*fenv18,其中,fenv修正后18为修正后的第6个数据帧中的第18个子带的量化频域包络值,fenv18为修正前的第6个数据帧中的第18个子带的量化频域包络值。
本发明实施例提供的一种编码方法,编码器将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值,且编码器对各个子带中的第一数量个子带的量化频域包络值进行修正,及编码器根据第一数量个子带的修正后的该量化频域包络值,为各个子带分配量化比特,以及编码器对各个子带中分配了量化比特的子带的频谱系数进行量化,最后编码器将分配了量化比特的子带的量化后的频谱系数写入码流。通过该方案,由于在对音频信号的当前数据帧的各个子带的频谱系数进行量化比特分配之前,可根据当前数据帧的信号类型和前一数据帧的信息,修正该各个子带的量化频域包络值,因此,根据修正后的该各个子带的量化频域包络值和可用比特数对该各个子带的频谱系数进行量化比特分配,能够达到对音频信号的频谱系数进行合理的量化比特分配的目的,从而提高解码器解出的信号质量。
实施例三
如图4所示,本发明实施例提供一种编码装置1,该编码装置1可以包括:
获取单元10,用于将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值。
修正单元11,用于对所述获取单元10获取的所述各个子带中的第一数量个子带的量化频域包络值进行修正。
分配单元12,用于根据所述修正单元11修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特。
量化单元13,用于对所述各个子带中所述分配单元12分配了量化比特的子带的频谱系数进行量化。
复用单元14,用于将所述量化单元13量化后的所述分配了量化比特的子带的频谱系数写入码流。
可选的,所述获取单元10,还用于获取所述第一数量个子带的修正因子。
所述修正单元11,还用于使用所述获取单元10获取的所述第一数量个子带的修正因子对所述获取单元10获取的所述第一数量个子带的量化频域包络值进行修正。
可选的,如图5所示,所述编码装置还包括确定单元15。
所述获取单元10,还用于获取所述第一数量个子带的信号类型。
所述确定单元15,用于根据所述获取单元10获取的所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子。
所述确定单元15,还用于在所述获取单元10获取的所述第一数量个子带中的第一子带的信号类型为谐波时,确定所述第一子带的修正因子大于1,以及在所述获取单元10获取的所述第一数量个子带中的第一子带的信号类型为非谐波时,确定所述第一子带的修正因子小于或等于1。
可选的,所述获取单元10,还用于在所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子之前,获取保存的所述当前数据帧的前一个数据帧中的第二数量个子带的参考信息,所述第二数量小于或等于所述第一数量。
所述确定单元15,具体用于根据所述获取单元10获取的所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子。
可选的,所述确定单元15,还用于根据所述获取单元10获取的所述第一数量个子带中的第一子带的信号类型,确定所述第一子带的第一修正因子,及根据所述获取单元10获取的所述第二数量个子带中与所述第一子带对应的第二子带的参考信息,确定所述第一子带的第二修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
可选的,所述获取单元10获取的所述第二子带的参考信息包括所述第二子带的量化比特分配状态和/或所述第二子带的信号类型。其中,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态时,所述确定单元15确定的所述第二修正因子为第三修正因子,或者,当所述第二子带的参考信息包括所述第二子带的信号类型时,所述第二修正因子为第四修正因子,或者,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态和所述第二子带的信号类型时,所述第二修正因子为所述第三修正因子与所述第四修正因子的乘积。
可选的,所述确定单元15,还用于在所述第二子带的量化比特分配状态表示没有频谱系数被编码时,确定所述第三修正因子小于1,或,在所述第二子带的量化比特分配状态表示有频谱系数被编码时,确定所述第三修正因子大于1,以及在所述获取单元10获取的所述第二子带的信号类型为谐波时,确定所述第四修正因子大于1,或,在所述获取单元10获取的所述第二子带的信号类型为非谐波时,确定所述第四修正因子小于或等于1。
可选的,所述确定单元15确定的所述第一子带的第二修正因子由所述第二子带的频域包络值,所述第二数量个子带的频域包络均值,所述第二数量个子带的带宽值,所述第二数量个子带的频域包络值中的最大值及所述第二数量个子带的频域包络方差值中任意两个值的比值确定。
可选的,所述确定单元15确定的所述第一子带的第一修正因子由所述第一子带的频域包络值,所述第一数量个子带的频域包络均值,所述第一数量个子带的带宽值,所述第一数量个子带的频域包络值中的最大值及所述第一数量个子带的频域包络方差值中任意两个值的比值确定。
可选的,所述获取单元10,还用于获取保存的所述当前数据帧的前一个数据帧中的第一数量个子带的参考信息。
所述确定单元15,还用于根据所述获取单元10获取的所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子。
可选的,所述获取单元10,还用于所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子之前,获取所述当前数据帧中的所述各个子带中的第三数量个子带的信号类型,所述第三数量小于或等于所述第一数量。
所述确定单元15,具体用于根据所述获取单元10获取的所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子。
可选的,所述确定单元15,还用于根据所述获取单元10获取的所述前一个数据帧中的第一数量个子带中的第二子带的参考信息,确定所述当前数据帧中的第一数量个子带中的第一子带的第二修正因子,及根据所述获取单元10获取的所述第一子带的信号类型,确定所述第一子带的第一修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
可选的,如图6所示,所述编码装置,还包括保存单元16。
所述保存单元16,还用于在根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特之后,保存所述第一数量个子带的参考信息。
本发明实施例提供的一种编码装置,该编码装置将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值,且该编码装置对各个子带中的第一数量个子带的量化频域包络值进行修正,及该编码装置根据第一数量个子带的修正后的该量化频域包络值,为各个子带分配量化比特,以及该编码装置对各个子带中分配了量化比特的子带的频谱系数进行量化,最后该编码装置将分配了量化比特的子带的量化后的频谱系数写入码流。通过该方案,由于在对音频信号的当前数据帧的各个子带的频谱系数进行量化比特分配之前,可根据当前数据帧的信号类型和前一数据帧的信息,修正该各个子带的量化频域包络值,因此,根据修正后的该各个子带的量化频域包络值和可用比特数对该各个子带的频谱系数进行量化比特分配,能够达到对音频信号的频谱系数进行合理的量化比特分配的目的,从而提高解码器解出的信号质量。
实施例四
如图7所示,本发明实施例提供一种编码器,该编码器可以包括:处理器20、存储器21、通信接口22和系统总线23,其中,
处理器20、存储器21和通信接口22之间通过系统总线23连接并完成相互间的通信。
处理器20可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器21可以为高速RAM存储器,也可以为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
存储器21用于存储编码器执行指令。具体的,编码器执行指令中可以包括软件代码和软件程序。
具体的,所述处理器20,用于将通过系统总线23从通信接口22获取的当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值,并对所述各个子带中的第一数量个子带的量化频域包络值进行修正,及根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特,以及对所述各个子带中分配了量化比特的子带的频谱系数进行量化,最后将量化后的所述分配了量化比特的子带的频谱系数通过系统总线23写入码流;所述存储器21可用于存储所述当前数据帧中的第一数量个子带的信号类型的软件代码、所述当前数据帧前一个数据帧中的第二数量个子带的参考信息的软件代码,或所述当前数据帧中的第三数量个子带的信号类型的软件代码、所述当前数据帧前一个数据帧中的第一数量个子带的参考信息的软件代码、以及控制编码器完成上述过程的软件程序,从而使得所述处理器20可通过执行上所述存储器21中存储的所述软件程序及调用相应的软件代码,完成上述过程。
可选的,所述处理器20,还用于获取所述第一数量个子带的修正因子,以及使用所述第一数量个子带的修正因子对所述第一数量个子带的量化频域包络值进行修正。
可选的,所述处理器20,还用于通过所述系统总线23从所述通信22获取所述第一数量个子带的信号类型,以及根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子。
可选的,所述处理器20,还用于在所述第一数量个子带中的第一子带的信号类型为谐波时,确定所述第一子带的修正因子大于1,以及在所述第一数量个子带中的第一子带的信号类型为非谐波时,确定所述第一子带的修正因子小于或等于1。
可选的,所述处理器20,还用于在所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子之前,获取保存的所述当前数据帧的前一个数据帧中的第二数量个子带的参考信息,所述第二数量小于或等于所述第一数量。
可选的,所述处理器20,具体用于根据所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子。
可选的,所述处理器20,还用于根据所述第一数量个子带中的第一子带的信号类型,确定所述第一子带的第一修正因子,及根据所述第二数量个子带中与所述第一子带对应的第二子带的参考信息,确定所述第一子带的第二修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
可选的,所述处理器20,所述第二子带的参考信息包括所述第二子带的量化比特分配状态和/或所述第二子带的信号类型。其中,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态时,所述第二修正因子为第三修正因子,或者,当所述第二子带的参考信息包括所述第二子带的信号类型时,所述第二修正因子为第四修正因子,或者,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态和所述第二子带的信号类型时,所述第二修正因子为所述第三修正因子与所述第四修正因子的乘积。
可选的,所述处理器20,还用于在所述第二子带的量化比特分配状态表示没有频谱系数被编码时,确定所述第三修正因子小于1,或,在所述第二子带的量化比特分配状态表示有频谱系数被编码时,确定所述第三修正因子大于1,以及在所述第二子带的信号类型为谐波时,确定所述第四修正因子大于1,或,在所述第二子带的信号类型为非谐波时,确定所述第四修正因子小于或等于1。
可选的,所述第一子带的第一修正因子由所述第一子带的频域包络值,所述第一数量个子带的频域包络均值,所述第一数量个子带的带宽值,所述第一数量个子带的频域包络值中的最大值及所述第一数量个子带的频域包络方差值中任意两个值的比值确定,以及所述第一子带的第二修正因子由所述第二子带的频域包络值,所述第二数量个子带的频域包络均值,所述第二数量个子带的带宽值,所述第二数量个子带的频域包络值中的最大值及所述第二数量个子带的频域包络方差值中任意两个值的比值确定。
可选的,所述处理单元20,还用于获取所述当前数据帧的前一个数据帧中的第一数量个子带的参考信息。
可选的,所述处理器20,还用于根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子。
可选的,所述处理器20,还用于所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子之前,获取所述当前数据帧中的各个子带中的第三数量个子带的信号类型,所述第三数量小于或等于所述第一数量。
可选的,所述处理器20,具体用于根据所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子。
可选的,所述处理器20,还用于根据所述前一个数据帧中的第一数量个子带中的第二子带的参考信息,确定所述当前数据帧中的第一数量个子带中的第一子带的第二修正因子,及根据所述第一子带的信号类型,确定所述第一子带的第一修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
可选的,所述处理器20,还用于在根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特之后,保存所述第一数量个子带的参考信息。
本发明实施例提供的一种编码器,该编码器将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值,且该编码器对各个子带中的第一数量个子带的量化频域包络值进行修正,及该编码器根据第一数量个子带的修正后的该量化频域包络值,为各个子带分配量化比特,以及该编码器对各个子带中分配了量化比特的子带的频谱系数进行量化,最后该编码器将分配了量化比特的子带的量化后的频谱系数写入码流。通过该方案,由于在对音频信号的当前数据帧的各个子带的频谱系数进行量化比特分配之前,可根据当前数据帧的信号类型和前一数据帧的信息,修正该各个子带的量化频域包络值,因此,根据修正后的该各个子带的量化频域包络值和可用比特数对该各个子带的频谱系数进行量化比特分配,能够达到对音频信号的频谱系数进行合理的量化比特分配的目的,从而提高解码器解出的信号质量。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (30)

1.一种编码方法,其特征在于,包括:
将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值;
对所述各个子带中的第一数量个子带的量化频域包络值进行修正;
根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特;
对所述各个子带中分配了量化比特的子带的频谱系数进行量化;
将量化后的所述分配了量化比特的子带的频谱系数写入码流。
2.根据权利要求1所述的编码方法,其特征在于,所述对所述各个子带中的第一数量个子带的量化频域包络值进行修正包括:
获取所述第一数量个子带的修正因子;
使用所述第一数量个子带的修正因子对所述第一数量个子带的量化频域包络值进行修正。
3.根据权利要求2所述的编码方法,其特征在于,所述获取所述第一数量个子带的修正因子包括:
获取所述第一数量个子带的信号类型;
根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子。
4.根据权利要求3所述的编码方法,其特征在于,所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子的方法包括:
在所述第一数量个子带中的第一子带的信号类型为谐波时,确定所述第一子带的修正因子大于1;
在所述第一数量个子带中的第一子带的信号类型为非谐波时,确定所述第一子带的修正因子小于或等于1。
5.根据权利要求3或4所述的编码方法,其特征在于,所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子之前,所述方法还包括:
获取保存的所述当前数据帧的前一个数据帧中的第二数量个子带的参考信息,所述第二数量小于或等于所述第一数量;
其中,所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子,具体包括:
根据所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子。
6.根据权利要求5所述的编码方法,其特征在于,所述根据所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子的方法包括:
根据所述第一数量个子带中的第一子带的信号类型,确定所述第一子带的第一修正因子;
根据所述第二数量个子带中与所述第一子带对应的第二子带的参考信息,确定所述第一子带的第二修正因子;
将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
7.根据权利要求6所述的编码方法,其特征在于,
所述第二子带的参考信息包括所述第二子带的量化比特分配状态和/或所述第二子带的信号类型;
其中,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态时,所述第二修正因子为第三修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的信号类型时,所述第二修正因子为第四修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的量化比特分配状态和所述第二子带的信号类型时,所述第二修正因子为所述第三修正因子与所述第四修正因子的乘积。
8.根据权利要求7所述的编码方法,其特征在于,
在所述第二子带的量化比特分配状态表示没有频谱系数被编码时,所述第三修正因子小于1,或,在所述第二子带的量化比特分配状态表示有频谱系数被编码时,所述第三修正因子大于1;
在所述第二子带的信号类型为谐波时,所述第四修正因子大于1,或,在所述第二子带的信号类型为非谐波时,所述第四修正因子小于或等于1。
9.根据权利要求7或8所述的编码方法,其特征在于,所述第一子带的第二修正因子由所述第二子带的频域包络值,所述第二数量个子带的频域包络均值,所述第二数量个子带的带宽值,所述第二数量个子带的频域包络值中的最大值及所述第二数量个子带的频域包络方差值中任意两个值的比值确定。
10.根据权利要求6-8任一项所述的编码方法,其特征在于,所述第一子带的第一修正因子由所述第一子带的频域包络值,所述第一数量个子带的频域包络均值,所述第一数量个子带的带宽值,所述第一数量个子带的频域包络值中的最大值及所述第一数量个子带的频域包络方差值中任意两个值的比值确定。
11.根据权利要求2所述的编码方法,其特征在于,所述获取所述第一数量个子带的修正因子包括:
获取保存的所述当前数据帧的前一个数据帧中的第一数量个子带的参考信息;
根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子。
12.根据权利要求11所述的编码方法,其特征在于,所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子之前,所述方法还包括:
获取所述当前数据帧中的各个子带中的第三数量个子带的信号类型,所述第三数量小于或等于所述第一数量;
其中,所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子,具体包括:
根据所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子。
13.根据权利要求12所述的编码方法,其特征在于,所述根据所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子的方法包括:
根据所述前一个数据帧中的第一数量个子带中的第二子带的参考信息,确定所述当前数据帧中的第一数量个子带中的第一子带的第二修正因子;
根据所述第一子带的信号类型,确定所述第一子带的第一修正因子;
将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
14.根据权利要求1至4,6至8以及11至13任一项所述的编码方法,其特征在于,所述根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特之后,所述方法还包括:
保存所述第一数量个子带的参考信息。
15.根据权利要求1至4,6至8以及11至13任一项所述的编码方法,其特征在于,所述根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特,具体包括:根据修正后的所述第一数量个子带的量化频域包络值以及所述子带中未经所述修正的子带的量化频域包络值,为所述各个子带分配量化比特。
16.一种编码装置,其特征在于,包括:
获取单元,用于将当前数据帧的频谱系数划分成子带后,获取各个子带的量化频域包络值;
修正单元,用于对所述获取单元获取的所述各个子带中的第一数量个子带的量化频域包络值进行修正;
分配单元,用于根据所述修正单元修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特;
量化单元,用于对所述各个子带中所述分配单元分配了量化比特的子带的频谱系数进行量化;
复用单元,用于将所述量化单元量化后的所述分配了量化比特的子带的频谱系数写入码流。
17.根据权利要求16所述的编码装置,其特征在于,
所述获取单元,还用于获取所述第一数量个子带的修正因子;
所述修正单元,还用于使用所述获取单元获取的所述第一数量个子带的修正因子对所述获取单元获取的所述第一数量个子带的量化频域包络值进行修正。
18.根据权利要求17所述的编码装置,其特征在于,所述编码装置还包括确定单元;
所述获取单元,还用于获取所述第一数量个子带的信号类型;
所述确定单元,用于根据所述获取单元获取的所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子。
19.根据权利要求18所述的编码装置,其特征在于,
所述确定单元,还用于在所述获取单元获取的所述第一数量个子带中的第一子带的信号类型为谐波时,确定所述第一子带的修正因子大于1,以及在所述获取单元获取的所述第一数量个子带中的所述第一子带的信号类型为非谐波时,确定所述第一子带的修正因子小于或等于1。
20.根据权利要求18或19所述的编码装置,其特征在于,
所述获取单元,还用于在所述根据所述第一数量个子带的信号类型,确定所述第一数量个子带的修正因子之前,获取保存的所述当前数据帧的前一个数据帧中的第二数量个子带的参考信息,所述第二数量小于或等于所述第一数量;
所述确定单元,具体用于根据所述获取单元获取的所述第一数量个子带的信号类型以及所述第二数量个子带的参考信息,确定所述第一数量个子带的修正因子。
21.根据权利要求20所述的编码装置,其特征在于,
所述确定单元,还用于根据所述获取单元获取的所述第一数量个子带中的第一子带的信号类型,确定所述第一子带的第一修正因子,及根据所述获取单元获取的所述第二数量个子带中与所述第一子带对应的第二子带的参考信息,确定所述第一子带的第二修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
22.根据权利要求21所述的编码装置,其特征在于,
所述获取单元获取的所述第二子带的参考信息包括所述第二子带的量化比特分配状态和/或所述第二子带的信号类型;
其中,当所述第二子带的参考信息包括所述第二子带的量化比特分配状态时,所述确定单元确定的所述第二修正因子为第三修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的信号类型时,所述第二修正因子为第四修正因子,或者,
当所述第二子带的参考信息包括所述第二子带的量化比特分配状态和所述第二子带的信号类型时,所述第二修正因子为所述第三修正因子与所述第四修正因子的乘积。
23.根据权利要求22所述的编码装置,其特征在于,
所述确定单元,还用于在所述第二子带的量化比特分配状态表示没有频谱系数被编码时,确定所述第三修正因子小于1,或,在所述第二子带的量化比特分配状态表示有频谱系数被编码时,确定所述第三修正因子大于1,以及在所述获取单元获取的所述第二子带的信号类型为谐波时,确定所述第四修正因子大于1,或,在所述获取单元获取的所述第二子带的信号类型为非谐波时,确定所述第四修正因子小于或等于1。
24.根据权利要求22或23所述的编码装置,其特征在于,所述确定单元确定的所述第一子带的第二修正因子由所述第二子带的频域包络值,所述第二数量个子带的频域包络均值,所述第二数量个子带的带宽值,所述第二数量个子带的频域包络值中的最大值及所述第二数量个子带的频域包络方差值中任意两个值的比值确定。
25.根据权利要求21-23任一项所述的编码装置,其特征在于,所述确定单元确定的所述第一子带的第一修正因子由所述第一子带的频域包络值,所述第一数量个子带的频域包络均值,所述第一数量个子带的带宽值,所述第一数量个子带的频域包络值中的最大值及所述第一数量个子带的频域包络方差值中任意两个值的比值确定。
26.根据权利要求17所述的编码装置,其特征在于,
所述获取单元,还用于获取所述保存单元保存的所述当前数据帧的前一个数据帧中的第一数量个子带的参考信息;
所述确定单元,还用于根据所述获取单元获取的所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子。
27.根据权利要求26所述的编码装置,其特征在于,
所述获取单元,还用于所述根据所述前一个数据帧中的第一数量个子带的参考信息,确定所述当前数据帧中的第一数量个子带的修正因子之前,获取所述当前数据帧中的各个子带中的第三数量个子带的信号类型,所述第三数量小于或等于所述第一数量;
所述确定单元,具体用于根据所述获取单元获取的所述前一个数据帧中的第一数量个子带的参考信息以及所述第三数量个子带的信号类型,确定所述当前数据帧中的第一数量个子带的修正因子。
28.根据权利要求27所述的编码装置,其特征在于,
所述确定单元,还用于根据所述获取单元获取的所述前一个数据帧中的第一数量个子带中的第二子带的参考信息,确定所述当前数据帧中的第一数量个子带中的第一子带的第二修正因子,及根据所述获取单元获取的所述第一子带的信号类型,确定所述第一子带的第一修正因子,以及将所述第一修正因子和所述第二修正因子的乘积作为所述第一子带的修正因子。
29.根据权利要求16至19,21至23以及26至28任一项所述的编码装置,其特征在于,
所述保存单元,还用于在根据修正后的所述第一数量个子带的量化频域包络值,为所述各个子带分配量化比特之后,保存所述第一数量个子带的参考信息。
30.根据权利要求16至19,21至23以及26至28任一项所述的编码装置,其特征在于,所述分配单元具体用于,根据修正后的所述第一数量个子带的量化频域包络值以及所述子带中未经所述修正的子带的量化频域包络值,为所述各个子带分配量化比特。
CN201410425477.4A 2013-12-02 2014-08-26 一种编码方法及装置 Active CN104681028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410425477.4A CN104681028B (zh) 2013-12-02 2014-08-26 一种编码方法及装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2013106350042 2013-12-02
CN201310635004 2013-12-02
CN201410425477.4A CN104681028B (zh) 2013-12-02 2014-08-26 一种编码方法及装置

Publications (2)

Publication Number Publication Date
CN104681028A CN104681028A (zh) 2015-06-03
CN104681028B true CN104681028B (zh) 2016-12-21

Family

ID=53272827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410425477.4A Active CN104681028B (zh) 2013-12-02 2014-08-26 一种编码方法及装置

Country Status (14)

Country Link
US (4) US9754594B2 (zh)
EP (4) EP4407609A3 (zh)
JP (1) JP6319753B2 (zh)
KR (3) KR101913241B1 (zh)
CN (1) CN104681028B (zh)
AU (2) AU2014360038B2 (zh)
BR (1) BR112016006925B1 (zh)
CA (1) CA2925037C (zh)
ES (3) ES2901806T3 (zh)
HK (1) HK1209893A1 (zh)
MX (1) MX357353B (zh)
RU (1) RU2636697C1 (zh)
SG (2) SG11201602234YA (zh)
WO (1) WO2015081699A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102200643B1 (ko) * 2012-12-13 2021-01-08 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 음성 음향 부호화 장치, 음성 음향 복호 장치, 음성 음향 부호화 방법 및 음성 음향 복호 방법
RU2636697C1 (ru) 2013-12-02 2017-11-27 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ кодирования
SG11201609834TA (en) * 2014-03-24 2016-12-29 Samsung Electronics Co Ltd High-band encoding method and device, and high-band decoding method and device
WO2016142002A1 (en) * 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal
CN107153647B (zh) * 2016-03-02 2021-12-07 北京字节跳动网络技术有限公司 进行数据压缩的方法、装置、系统和计算机程序产品
EP3723085B1 (en) 2016-03-21 2022-11-16 Huawei Technologies Co., Ltd. Adaptive quantization of weighted matrix coefficients
US10586546B2 (en) 2018-04-26 2020-03-10 Qualcomm Incorporated Inversely enumerated pyramid vector quantizers for efficient rate adaptation in audio coding
US10573331B2 (en) 2018-05-01 2020-02-25 Qualcomm Incorporated Cooperative pyramid vector quantizers for scalable audio coding
US10734006B2 (en) 2018-06-01 2020-08-04 Qualcomm Incorporated Audio coding based on audio pattern recognition
US10580424B2 (en) 2018-06-01 2020-03-03 Qualcomm Incorporated Perceptual audio coding as sequential decision-making problems
CN114822564A (zh) * 2021-01-21 2022-07-29 华为技术有限公司 音频对象的比特分配方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562015A (zh) * 2008-04-18 2009-10-21 华为技术有限公司 音频处理方法及装置
CN101770775A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 信号处理方法及装置
WO2012012414A1 (en) * 2010-07-19 2012-01-26 Huawei Technologies Co., Ltd. Spectrum flatness control for bandwidth extension

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08167247A (ja) * 1994-12-15 1996-06-25 Sony Corp 高能率符号化方法及び装置、並びに伝送媒体
US6301555B2 (en) * 1995-04-10 2001-10-09 Corporate Computer Systems Adjustable psycho-acoustic parameters
KR100335609B1 (ko) * 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
JP3515903B2 (ja) * 1998-06-16 2004-04-05 松下電器産業株式会社 オーディオ符号化のための動的ビット割り当て方法及び装置
EP1345331B1 (en) * 2000-12-22 2008-08-20 Sony Corporation Encoder
CN1288622C (zh) * 2001-11-02 2006-12-06 松下电器产业株式会社 编码设备和解码设备
JP3942882B2 (ja) * 2001-12-10 2007-07-11 シャープ株式会社 ディジタル信号符号化装置およびそれを備えたディジタル信号記録装置
US7027980B2 (en) * 2002-03-28 2006-04-11 Motorola, Inc. Method for modeling speech harmonic magnitudes
JP4296752B2 (ja) * 2002-05-07 2009-07-15 ソニー株式会社 符号化方法及び装置、復号方法及び装置、並びにプログラム
US7128443B2 (en) 2002-06-28 2006-10-31 Koninklijke Philips Electronics, N.V. Light-collimating system
KR100723400B1 (ko) 2004-05-12 2007-05-30 삼성전자주식회사 복수의 룩업테이블을 이용한 디지털 신호 부호화 방법 및장치
JP4168976B2 (ja) * 2004-05-28 2008-10-22 ソニー株式会社 オーディオ信号符号化装置及び方法
KR100682890B1 (ko) * 2004-09-08 2007-02-15 삼성전자주식회사 비트량 고속제어가 가능한 오디오 부호화 방법 및 장치
KR100707184B1 (ko) * 2005-03-10 2007-04-13 삼성전자주식회사 오디오 부호화 및 복호화 장치와 그 방법 및 기록 매체
WO2006108543A1 (en) * 2005-04-15 2006-10-19 Coding Technologies Ab Temporal envelope shaping of decorrelated signal
TWI271703B (en) * 2005-07-22 2007-01-21 Pixart Imaging Inc Audio encoder and method thereof
US7590523B2 (en) * 2006-03-20 2009-09-15 Mindspeed Technologies, Inc. Speech post-processing using MDCT coefficients
JP4823001B2 (ja) * 2006-09-27 2011-11-24 富士通セミコンダクター株式会社 オーディオ符号化装置
CN101206860A (zh) * 2006-12-20 2008-06-25 华为技术有限公司 一种可分层音频编解码方法及装置
KR101411900B1 (ko) * 2007-05-08 2014-06-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 장치
WO2009001874A1 (ja) * 2007-06-27 2008-12-31 Nec Corporation オーディオ符号化方法、オーディオ復号方法、オーディオ符号化装置、オーディオ復号装置、プログラム、およびオーディオ符号化・復号システム
KR100921867B1 (ko) * 2007-10-17 2009-10-13 광주과학기술원 광대역 오디오 신호 부호화 복호화 장치 및 그 방법
EP2051245A3 (en) * 2007-10-17 2013-07-10 Gwangju Institute of Science and Technology Wideband audio signal coding/decoding device and method
US8515767B2 (en) * 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
ES2629453T3 (es) * 2007-12-21 2017-08-09 Iii Holdings 12, Llc Codificador, descodificador y procedimiento de codificación
US9037454B2 (en) * 2008-06-20 2015-05-19 Microsoft Technology Licensing, Llc Efficient coding of overcomplete representations of audio using the modulated complex lapped transform (MCLT)
EP2304719B1 (en) 2008-07-11 2017-07-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, methods for providing an audio stream and computer program
JP5551694B2 (ja) * 2008-07-11 2014-07-16 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 多くのスペクトルエンベロープを計算するための装置および方法
CN101751926B (zh) 2008-12-10 2012-07-04 华为技术有限公司 信号编码、解码方法及装置、编解码系统
JP4932917B2 (ja) 2009-04-03 2012-05-16 株式会社エヌ・ティ・ティ・ドコモ 音声復号装置、音声復号方法、及び音声復号プログラム
FR2947945A1 (fr) 2009-07-07 2011-01-14 France Telecom Allocation de bits dans un codage/decodage d'amelioration d'un codage/decodage hierarchique de signaux audionumeriques
US8498874B2 (en) * 2009-09-11 2013-07-30 Sling Media Pvt Ltd Audio signal encoding employing interchannel and temporal redundancy reduction
CN102081926B (zh) * 2009-11-27 2013-06-05 中兴通讯股份有限公司 格型矢量量化音频编解码方法和系统
CN102081927B (zh) * 2009-11-27 2012-07-18 中兴通讯股份有限公司 一种可分层音频编码、解码方法及系统
US20130030796A1 (en) * 2010-01-14 2013-01-31 Panasonic Corporation Audio encoding apparatus and audio encoding method
JP5316896B2 (ja) * 2010-03-17 2013-10-16 ソニー株式会社 符号化装置および符号化方法、復号装置および復号方法、並びにプログラム
CN102222505B (zh) * 2010-04-13 2012-12-19 中兴通讯股份有限公司 可分层音频编解码方法系统及瞬态信号可分层编解码方法
KR101699720B1 (ko) 2010-08-03 2017-01-26 삼성전자주식회사 음성명령 인식 장치 및 음성명령 인식 방법
KR101826331B1 (ko) * 2010-09-15 2018-03-22 삼성전자주식회사 고주파수 대역폭 확장을 위한 부호화/복호화 장치 및 방법
JP2012103395A (ja) 2010-11-09 2012-05-31 Sony Corp 符号化装置、符号化方法、およびプログラム
AU2011350143B9 (en) * 2010-12-29 2015-05-14 Samsung Electronics Co., Ltd. Apparatus and method for encoding/decoding for high-frequency bandwidth extension
CA2833874C (en) * 2011-04-21 2019-11-05 Ho-Sang Sung Method of quantizing linear predictive coding coefficients, sound encoding method, method of de-quantizing linear predictive coding coefficients, sound decoding method, and recording medium
RU2464649C1 (ru) * 2011-06-01 2012-10-20 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ обработки звукового сигнала
US8731949B2 (en) 2011-06-30 2014-05-20 Zte Corporation Method and system for audio encoding and decoding and method for estimating noise level
CN102208188B (zh) 2011-07-13 2013-04-17 华为技术有限公司 音频信号编解码方法和设备
CN103718240B (zh) 2011-09-09 2017-02-15 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
ES2565394T3 (es) * 2011-12-15 2016-04-04 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato, método y programa informático para evitar artefactos de recorte
CN108831501B (zh) * 2012-03-21 2023-01-10 三星电子株式会社 用于带宽扩展的高频编码/高频解码方法和设备
KR101661917B1 (ko) * 2012-05-30 2016-10-05 니폰 덴신 덴와 가부시끼가이샤 부호화 방법, 부호화 장치, 프로그램 및 기록 매체
KR102200643B1 (ko) * 2012-12-13 2021-01-08 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 음성 음향 부호화 장치, 음성 음향 복호 장치, 음성 음향 부호화 방법 및 음성 음향 복호 방법
CN106847297B (zh) * 2013-01-29 2020-07-07 华为技术有限公司 高频带信号的预测方法、编/解码设备
RU2636697C1 (ru) 2013-12-02 2017-11-27 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ кодирования

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562015A (zh) * 2008-04-18 2009-10-21 华为技术有限公司 音频处理方法及装置
CN101770775A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 信号处理方法及装置
WO2012012414A1 (en) * 2010-07-19 2012-01-26 Huawei Technologies Co., Ltd. Spectrum flatness control for bandwidth extension
CN103026408A (zh) * 2010-07-19 2013-04-03 华为技术有限公司 音频信号产生装置

Also Published As

Publication number Publication date
AU2014360038A1 (en) 2016-04-14
EP3040987A4 (en) 2016-08-31
AU2018200552B2 (en) 2019-05-23
KR20160055266A (ko) 2016-05-17
WO2015081699A1 (zh) 2015-06-11
SG11201602234YA (en) 2016-05-30
BR112016006925B1 (pt) 2020-11-24
US20220172730A1 (en) 2022-06-02
US9754594B2 (en) 2017-09-05
ES2976769T3 (es) 2024-08-08
KR20180118261A (ko) 2018-10-30
KR20170132906A (ko) 2017-12-04
ES2742420T3 (es) 2020-02-14
US20170316784A1 (en) 2017-11-02
BR112016006925A2 (pt) 2017-08-01
KR101803410B1 (ko) 2017-12-28
EP3975173A1 (en) 2022-03-30
CA2925037C (en) 2020-12-01
US20160275955A1 (en) 2016-09-22
ES2901806T3 (es) 2022-03-23
AU2018200552A1 (en) 2018-02-15
CA2925037A1 (en) 2015-06-11
EP3040987A1 (en) 2016-07-06
US11289102B2 (en) 2022-03-29
HK1209893A1 (zh) 2016-04-08
EP4407609A3 (en) 2024-08-21
EP3525206A1 (en) 2019-08-14
US20190385620A1 (en) 2019-12-19
KR102023138B1 (ko) 2019-09-19
EP3525206B1 (en) 2021-09-08
EP3975173B1 (en) 2024-01-17
AU2014360038B2 (en) 2017-11-02
EP4407609A2 (en) 2024-07-31
CN104681028A (zh) 2015-06-03
MX357353B (es) 2018-07-05
SG10201802826QA (en) 2018-05-30
MX2016006259A (es) 2016-09-07
RU2636697C1 (ru) 2017-11-27
JP2016538589A (ja) 2016-12-08
KR101913241B1 (ko) 2019-01-14
US10347257B2 (en) 2019-07-09
EP3040987B1 (en) 2019-05-29
JP6319753B2 (ja) 2018-05-09

Similar Documents

Publication Publication Date Title
CN104681028B (zh) 一种编码方法及装置
CN103415884B (zh) 用于执行霍夫曼编码的装置和方法
AU2018201468B2 (en) Audio decoding device, audio encoding device, audio decoding method, audio encoding method, audio decoding program, and audio encoding program
US9008811B2 (en) Methods and systems for adaptive time-frequency resolution in digital data coding
WO2009029036A1 (en) Method and device for noise filling
EP1933305B1 (en) Audio encoding device and audio encoding method
US20120232909A1 (en) Method and system for two-step spreading for tonal artifact avoidance in audio coding
JP2018205766A (ja) 方法、符号化器、復号化器、及び移動体機器
JP2004309921A (ja) 符号化装置、符号化方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1209893

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1209893

Country of ref document: HK