CN102081927A - 一种可分层音频编码、解码方法及系统 - Google Patents

一种可分层音频编码、解码方法及系统 Download PDF

Info

Publication number
CN102081927A
CN102081927A CN2009102498557A CN200910249855A CN102081927A CN 102081927 A CN102081927 A CN 102081927A CN 2009102498557 A CN2009102498557 A CN 2009102498557A CN 200910249855 A CN200910249855 A CN 200910249855A CN 102081927 A CN102081927 A CN 102081927A
Authority
CN
China
Prior art keywords
coding
layer
band
bit
sub
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.)
Granted
Application number
CN2009102498557A
Other languages
English (en)
Other versions
CN102081927B (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.)
ZTE Corp
Original Assignee
ZTE Corp
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
Priority to CN2009102498557A priority Critical patent/CN102081927B/zh
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to PCT/CN2010/078126 priority patent/WO2011063694A1/zh
Priority to RU2012119783/08A priority patent/RU2509380C2/ru
Priority to EP10832601.8A priority patent/EP2482052B1/en
Priority to BR112012012573-7A priority patent/BR112012012573B1/pt
Priority to US13/505,064 priority patent/US8694325B2/en
Priority to JP2012535611A priority patent/JP5192099B2/ja
Publication of CN102081927A publication Critical patent/CN102081927A/zh
Application granted granted Critical
Publication of CN102081927B publication Critical patent/CN102081927B/zh
Priority to HK12111842.3A priority patent/HK1171079A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • 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/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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • 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/0212Speech 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 orthogonal transformation
    • 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/028Noise substitution, i.e. substituting non-tonal spectral components by noisy source
    • 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/038Vector quantisation, e.g. TwinVQ audio

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种可分层音频编码、解码方法及系统,将音频信号经过MDCT变换后的频域系数划分为核心层和扩展层频域系数,并划分成多个编码子带;对编码子带的幅值包络值进行量化和编码;对核心层编码子带进行比特分配;对核心层频域系数进行量化和编码;计算核心层残差信号各编码子带的幅值包络值;根据由核心层残差信号和扩展层频域系数构成的扩展层编码信号和由扩展层编码信号构成的各编码子带的幅值包络值对扩展层各编码子带进行比特分配,对扩展层编码信号进行量化和编码得到扩展层编码信号的编码比特;将核心层和扩展层频域系数构成的编码子带的幅值包络编码比特、核心层频域系数编码比特和扩展层编码信号的编码比特传送给解码端。

Description

一种可分层音频编码、解码方法及系统
技术领域
本发明涉及一种可分层音频编码、解码方法及系统。
背景技术
可分层音频编码是指以分层的方式组织音频编码的码流,一般分成一个核心层和若干个扩展层,解码器可以在没有高层(譬如扩展层)编码码流的情况下实现只对低层(譬如核心层)编码码流进行解码,解码的层数越多,音质提高得越大。
可分层编码技术对于通信网络有非常重要的实用价值。一方面,数据的传输可以由不同信道共同合作完成,而每个信道的丢包率都有可能不同,这时候往往需要对数据进行可分层处理,将数据中重要的部分放在丢包率相对较低的稳定信道中传输,而将数据中次要的部分放在丢包率相对较高的非稳定信道中传输,从而保证当非稳定信道丢包时只会产生相对的音质下降,而不会出现一帧数据完全无法解码的情况。另一方面,某些通信网络(比如因特网)的带宽很不稳定,不同用户之间的带宽各不相同,不能采用一个固定的码率来兼顾不同带宽用户的需求,而采用可分层的编码方案就可以使得不同用户在各自所拥有的带宽条件下获得最佳的音质享受。
传统的可分层音频编码方案,比如ITU(International TelecommunicationUnion,国际电信联合会)的标准G.729.1和G.VBR,所采用的方式为核心层使用语音编码,扩展层采用时域或者变换域编码。核心层与扩展层之间的编码方式相互独立,这样就会造成编码效率低,同时在中低码率的传输条件下对音乐信号编码质量有影响。另外一些可分层方案,如MPEG4(MovingPicture Experts Group 4,运动图像专家组-4)所采用的BSAC(Bit-SliceArithmetic Code,比特时间片算术编码)可变码率(或者可伸缩)的编码方案,仅从数据本身的大小出发进行比特分配和可分层操作,没有考虑到整个信号本身的残差感知分布特性,不能利用核心层已有的信息帮助扩展层的编码,使得编码效率不高。
发明内容
本发明所要解决的技术问题是,克服现有技术的不足,提供一种高效的可分层音频编码、解码方法及系统。
为了解决上述技术问题,本发明提供一种可分层音频编码方法,该方法包括:
将音频信号经过修正离散余弦变换MDCT变换后的频域系数,划分为核心层频域系数和扩展层频域系数,将所述频域系数划分成多个编码子带,并对所述编码子带的幅值包络值进行量化和编码;
根据核心层各编码子带幅值包络值对核心层各编码子带进行比特分配,然后对核心层频域系数进行量化和编码得到核心层频域系数的编码比特;
根据核心层各编码子带幅值包络值和比特分配数计算核心层残差信号各编码子带的幅值包络值;
根据由核心层残差信号和扩展层频域系数构成的扩展层编码信号和由所述扩展层编码信号构成的各编码子带的幅值包络值对扩展层各编码子带进行比特分配,然后对扩展层编码信号进行量化和编码得到扩展层编码信号的编码比特;
将核心层和扩展层频域系数构成的各编码子带的幅值包络编码比特、核心层频域系数编码比特和扩展层编码信号的编码比特复用打包后,传送给解码端。
此外,将MDCT变换后的系数分成多个等间隔编码子带,或者按照听觉感知特性划分成多个非均匀编码子带;将低频编码子带划分为核心层编码子带,将高频编码子带划分到扩展层。
此外,根据编码子带幅值包络值对各编码子带进行变步长比特分配;
在比特分配过程中,对比特分配数为0的编码子带分配比特的步长是1个比特,比特分配后重要性降低的步长为1,对比特分配数大于0且小于分类阈值的编码子带追加分配比特时的比特分配步长为0.5个比特,比特分配后重要性降低的步长为0.5,对比特分配数大于等于所述分类阈值的编码子带追加分配比特时的比特分配步长为1,比特分配后重要性降低的步长为1;
比特分配数是一个编码子带中单个频域系数所分配到的比特数。
此外,在对核心层各个编码子带的频域系数和扩展层各个编码子带的编码信号进行量化和编码的过程中,对比特分配数小于分类阈值的编码子带的待量化矢量采用塔型格型矢量量化方法进行量化和编码,对比特分配数大于所述分类阈值的编码子带的待量化矢量采用球型格型矢量量化方法进行量化和编码;
比特分配数是一个编码子带中单个频域系数所分配到的比特数。
此外,采用如下方法计算核心层残差信号各编码子带的幅值包络值:
对核心层频域系数的量化值进行反量化,并与核心层频域系数进行差计算,得到核心层残差信号;
将核心层残差信号按核心层频域系数相同的方法划分成编码子带,根据核心层各编码子带幅值包络值和比特分配数推算出核心层残差信号各编码子带的幅值包络值。
此外,采用如下方法推算出核心层残差信号各编码子带的幅值包络值:计算核心层各编码子带的幅值包络量化指数,并与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数;
各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的比特分配数增加时不减小;
当核心层的某个编码子带的比特分配数为0时,量化指数修正值为0,当某个编码子带的比特分配数为所限定的最大比特分配数时,残差信号在该子带的幅值包络值为零。
此外,编码子带的量化指数修正值是根据核心层比特分配数得到的,当核心层编码子带的比特分配数分别为0、1、1.5、2、2.5、3、3.5、4、4.5、5、6、7或8时,该编码子带所对应的量化指数修正值分别取0、1、2、3、4、5、5、6、7、7、9、10或12;
此外,得到核心层频域系数编码比特的方法为:
计算核心层各编码子带的幅值包络量化指数,对核心层各编码子带进行比特分配;
根据核心层各编码子带的幅值包络量化指数重建的核心层各编码子带的量化幅值包络值对各编码子带的频域系数进行归一化,根据编码子带的比特分配数分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到核心层频域系数的编码比特;
得到扩展层编码信号编码比特的方法为:
用核心层残差信号和扩展层频域系数构成扩展层编码信号;
根据扩展层编码信号各编码子带的幅值包络量化指数,对扩展层各编码子带进行比特分配;
根据扩展层各编码子带的幅值包络量化指数重建的扩展层各编码子带的量化幅值包络值对各编码子带的编码信号进行归一化,根据编码子带的比特分配数分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到扩展层编码信号的编码比特。
此外,按照如下码流格式进行复用打包:
首先将核心层的边信息比特写入码流的帧头后面,将核心层的编码子带幅值包络编码比特写入比特流复用器MUX,然后将核心层频域系数的编码比特写入MUX;
然后将扩展层的边信息比特写入MUX,然后将扩展层频域系数编码子带的幅值包络编码比特写入MUX,然后将扩展层编码信号的编码比特写入MUX;
根据所要求的码率,将满足码率要求的比特数传送到解码端。
此外,将扩展层编码信号编码比特按照各编码子带重要性的初始值从大到小排序的顺序写入码流,传送到解码端。
此外,核心层的边信息包括MDCT系数构成的编码子带幅值包络的霍夫曼编码标志位比特,核心层频域系数的霍夫曼编码标志位比特和迭代次数比特;
扩展层的边信息包括扩展层编码信号的霍夫曼编码标志位比特和迭代次数比特。
此外,采用如下编码码率分层方法将满足码率要求的比特数传送到解码端::
按照所定最大编码码率的比特数在整个所需编码的频带范围内,对核心层和扩展层编码,使得在编码频带范围内达到最大编码码率;
在核心层编码比特之后,将扩展层编码信号的编码比特按照各编码子带重要性初始值从大到小的顺序写入比特流复用器;
根据各个分层的码率设计要求,把比特流复用器后部不必要的比特舍去,即按照将编码子带重要性初始值小的编码子带的编码比特先舍去的原则,将满足码率要求的比特数传送到解码端;
将核心层对应的码率记为L0层,根据扩展层舍去比特数的多少将扩展层对应的各个码率分别记为L1_1层、L1_2层、直至L1_K层,其中L1_K层的码率就是所要求的最大码率。
此外,编码频带范围为0~13.6kHz,最大编码码率为64kbps时,采用如下编码码率分层方法将满足码率要求的比特数传送到解码端:
将编码频带范围0~13.6kHz中0~6.4kHz内的MDCT频域系数划分成核心层,核心层所对应的最大码率是32kbps,记为L0层;扩展层的编码频带范围为0~13.6kHz,其最大码率为64kbps,记为L1_5层;
在送到解码端之前,根据舍去比特数的多少将码率划分为L1_1层,对应36kbps,L1_2层,对应40kbps,L1_3层,对应48kbps,L1_4层,对应56kbps,及L1_5层,对应64kbps。
此外,将音频信号经过修正离散余弦变换MDCT变换后的频域系数,划分为核心层频域系数和扩展层频域系数之后,还包含如下步骤:把扩展层的频域系数按照频率从小到大的顺序分成M个部分,它们分别是扩展层1到扩展层M的频域系数,其中扩展层1中频域系数的频率最小,扩展层M中频域系数的频率最大;
对核心层频域系数进行量化之后,还包含如下步骤:对核心层频域系数的量化值进行反量化,并与核心层频域系数进行差计算,得到核心层残差信号;将残差信号按核心层相同的方法划分成编码子带,根据核心层各编码子带幅值包络值和比特分配数推算出核心层残差信号各编码子带的幅值包络值;用核心层残差信号和扩展层1的频域系数构成扩展层1的编码信号,根据扩展层1的编码信号各编码子带的幅值包络量化指数,对扩展层1各编码子带进行比特分配;根据扩展层1的各编码子带的比特分配数对扩展层1的编码信号进行量化和编码。
此外,对扩展层1的编码信号进行量化之后,还包含如下步骤:
对扩展层i的编码信号的量化值进行反量化,并与扩展层i的编码信号进行差计算,得到扩展层i的残差信号;
将扩展层i的残差信号按扩展层i相同的方法划分成编码子带,根据扩展层i的各编码子带幅值包络值和比特分配数推算出扩展层i的残差信号各子带的幅值包络值;
根据扩展层i的残差信号和扩展层i+1的频域系数构成扩展层i+1的编码信号,根据扩展层i+1的编码信号各编码子带的幅值包络量化指数,对扩展层i+1的各编码子带进行比特分配;
根据扩展层i+1各编码子带的幅值包络量化指数重建的扩展层i+1各编码子带的量化幅值包络值和编码比特数对扩展层i+1各编码子带的编码信号进行归一化、矢量量化和编码,得到扩展层i+1的编码信号的编码比特;
所述i=1,....N-1。
此外,按照如下码流格式进行复用打包:
在核心层的编码比特之后,根据扩展层编号的大小,将编号小的扩展层的比特先写入比特流复用器MUX,然后将编号大的扩展层的比特再写入比特流复用器MUX,即先写入扩展层i的比特再将扩展层i+1的比特写入MUX;
在同一个扩展层中,先将该扩展层的边信息比特写入MUX,然后将该扩展层频域系数编码子带的幅值包络编码比特写入MUX,然后将该扩展层编码信号的编码比特写入MUX;
根据所要求的码率,将满足码率要求的比特数传送到解码端。
此外,采用如下编码码率分层方法将满足码率要求的比特数传送到解码端:
按照所定最大编码码率的比特数在整个所需编码的频带范围内,对核心层和扩展层1到扩展层M进行编码,使得在编码频带范围内达到所定最大编码码率;
在核心层编码比特之后,将编号小的扩展层的比特优先写入比特流复用器,在同一个扩展层中将编码子带重要性初始值大的编码子带的编码比特优先写入比特流复用器;
对于每一个扩展层,根据各个分层的码率设计要求,把比特流复用器后部不必要的比特舍去,既按照将编码子带重要性初始值小的编码子带的编码比特先舍去的原则,将满足码率要求的比特数传送到解码端;
将核心层对应的码率记为L0层,根据所定传送码率的要求将各个扩展层对应的最大码率分别记为L1_K1层、L2_K2层、直至LM_KM层,其中LM_KM层的码率就是编码器所要求的最大码率;
在扩展层i和扩展层i+1之间,根据舍去比特数的多少进一步将码率层细化,即在Li_Ki层和Li+1_Ki+1层之间根据舍去比特数的多少,划分出Li+1_1层,Li+1_2层,直至Li+1_Ki+1层。
此外,编码频带范围为0~20kHz,最大编码码率为96kbps时,采用如下编码码率分层方法将满足码率要求的比特数传送到解码端:
将编码频带范围0~20kHz中0~6.4kHz内的MDCT频域系数划分成核心层,核心层所对应的最大码率是32kbps,记为L0层;
扩展层1的编码频带范围为0~13.6kHz,其最大码率为64kbps,记为L1_5层;扩展层2的编码频带范围为0~20kHz,其最大码率为96kbps,记为L2_2层;
在送到解码端之前,根据舍去比特数的多少可以将L1_5层和L2_2层之间进一步划分为L2_1层,对应80kbps,及L2_2层,对应96kbps。
本发明还提供一种可分层音频解码方法,该方法包括:
对编码端传送过来的比特流进行解复用,对核心层的频域系数幅值包络编码比特解码,得到各编码子带的幅值包络值;
根据核心层编码子带的幅值包络值,对核心层各编码子带进行比特分配,并由此推算核心层残差信号的幅值包络值,对扩展层的频域系数幅值包络编码比特解码,得到扩展层频域系数幅值包络值,根据核心层残差信号的幅值包络值和扩展层频域系数幅值包络值对扩展层各编码子带进行比特分配;
根据核心层和扩展层的比特分配数,分别对核心层频域系数编码比特和扩展层编码信号的编码比特解码,得到核心层频域系数和扩展层编码信号,将扩展层编码信号按照频带顺序重新排列,并和核心层频域系数相加,得到全体带宽的频域系数,对全体带宽的频域系数进行修正离散余弦逆变换IMDCT变换,得到输出的音频信号。
此外,推算残差信号的幅值包络值的方法为:
计算核心层各编码子带的幅值包络量化指数,并与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数;
根据扩展层i的各编码子带幅值包络和比特分配数推算出扩展层i的残差信号各子带的幅值包络值;
各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的比特分配数增加时不减小;
当核心层的编码子带的比特分配数为0时,量化指数修正值为0,当编码子带的比特分配数为所限定的最大比特分配数时,残差信号在该编码子带的幅值包络值为零。
此外,编码子带的量化指数修正值是根据核心层比特分配数得到的,当核心层编码子带的比特分配数分别为0、1、1.5、2、2.5、3、3.5、4、4.5、5、6、7或8时,该编码子带所对应的量化指数修正值分别取0、1、2、3、4、5、5、6、7、7、9、10或12;
此外,得到核心层频域系数和扩展层编码信号的方法为:
根据核心层各编码子带的比特分配数、量化幅值包络值和边信息对核心层频域系数编码比特进行解码、反量化及反归一化处理,得到核心层的频域系数;
根据各扩展层各编码子带的比特分配数,编码信号的量化幅值包络值和边信息对该扩展层编码信号的编码比特进行解码、反量化及反归一化处理,得到扩展层的编码信号。
此外,采用如下顺序对扩展层编码信号的编码比特进行解码:
在不同的扩展层中,各层解码的顺序是先对扩展层编号小的低扩展层的幅值包络和各编码子带的编码比特进行解码,然后再对扩展层编号大的高扩展层的幅值包络和各编码子带的编码信号进行解码,解码过程中计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码;
在同一个扩展层中,各编码子带解码的顺序是根据各个编码子带重要性的初始值决定的,重要性大的编码子带优先解码,如果有两个编码子带具有相同的重要性,则低频编码子带优先解码,解码过程中计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码。
此外,当从编码端送往解码端的码率为64kbps时,在解码端截取不同的比特数进行解码,可以到36kbps,40kbps,48kbps,56kbps或64kbps的解码码率。
当从编码端送往解码端的码率为96kbps时,在解码端截取不同的比特数进行解码,可以到80kbps或96kbps的解码码率。
本发明还提供一种可分层音频编码系统,该系统包括:修正离散余弦变换MDCT单元、幅值包络计算单元、幅值包络量化和编码单元、核心层比特分配单元、核心层频域系数矢量量化和编码单元以及比特流复用器;其特征在于,该系统还包括:扩展层编码信号生成单元、残差信号幅值包络生成单元、扩展层比特分配单元以及扩展层编码信号矢量量化和编码单元;其中:
所述MDCT单元用于对输入的音频信号进行修正离散余弦变换,生成核心层频域系数和扩展层频域系数;
所述幅值包络计算单元用于将所述频域系数中待编码的部分划分为核心层频域系数编码子带和扩展层频域系数编码子带,并计算各编码子带的幅值包络值;
所述幅值包络量化和编码单元用于将所述核心层频域系数编码子带和扩展层频域系数编码子带的幅值包络值进行量化和编码,生成核心层频域系数和扩展层频域系数各编码子带的幅值包络量化指数和幅值包络的编码比特;
所述核心层比特分配单元用于进行核心层的比特分配,得到核心层各编码子带的比特分配数;
所述核心层频域系数矢量量化和编码单元用于使用根据核心层各编码子带的量化指数重建的核心层各编码子带的量化幅值包络值和比特分配数对核心层各编码子带的频域系数进行归一化、矢量量化和编码,得到核心层频域系数的编码比特;
所述扩展层编码信号生成单元用于生成残差信号,得到由残差信号和扩展层频域系数构成的扩展层编码信号;
所述残差信号幅值包络生成单元用于根据核心层各编码子带的幅值包络量化指数与对应编码子带的比特分配数,得到残差信号相同编码子带的幅值包络量化指数;
所述扩展层比特分配单元用于根据残差信号编码子带幅值包络量化指数和扩展层频域系数子带幅值包络量化指数进行扩展层的比特分配,得到扩展层编码信号各编码子带的比特分配数;
所述扩展层编码信号矢量量化和编码单元用于使用根据扩展层各编码子带的幅值包络量化指数重建的扩展层各编码子带的量化幅值包络值和编码比特数对扩展层各编码子带的编码信号进行归一化、矢量量化和编码,得到扩展层编码信号矢量量化值的编码比特;
所述比特流复用器用于将核心层边信息比特、核心层各编码子带的幅值包络的编码比特、核心层频域系数的编码比特、扩展层边信息比特,扩展层频域系数各幅值包络的编码比特和扩展层编码信号的编码比特进行打包。
此外,所述扩展层编码信号生成单元还包括残差信号生成单元和扩展层编码信号合成单元;
所述残差信号生成单元用于对核心层频域系数的量化值进行反量化,并与核心层频域系数进行差计算,得到核心层残差信号;
所述扩展层编码信号合成单元用于将核心层残差信号和扩展层的频域系数按频带的顺序合成,得到扩展层的编码信号。
此外,所述残差信号幅值包络生成单元还包含量化指数修正值获取单元和残差信号幅值包络量化指数计算单元;
所述量化指数修正值获取单元用于根据核心层各编码子带比特分配数推算残差信号各子带的量化指数修正值,各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的编码比特数增加时不减,如果核心层的编码子带的比特分配数为0,则量化指数修正值为0,如果子带的比特分配数为所限定的最大比特分配数,则残差信号在该子带的幅值包络值为零;
所述残差信号幅值包络量化指数计算单元用于将核心层各编码子带的幅值包络量化指数与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数。
此外,所述比特流复用器将扩展层编码信号编码比特按照各编码子带重要性的初始值从大到小的顺序写入码流,对于具有相同重要性的编码子带,低频编码子带的编码比特优先写入码流。
本发明还提供一种可分层音频解码系统,该系统包括:比特流解复用器、核心层幅值包络解码单元、核心层比特分配单元、核心层解码和反量化单元;其特征在于,该系统还包括:扩展层幅值包络解码单元、残差信号幅值包络生成单元、扩展层比特分配单元、扩展层编码信号解码和反量化单元、频域系数生成单元、噪声填充单元和IMDCT单元;其中:
所述核心层幅值包络解码单元用于对所述比特流解复用器输出的核心层子带幅值包络编码比特进行解码,得到核心层各编码子带的幅值包络量化指数;
所述核心层比特分配单元用于进行核心层的比特分配,得到核心层各编码子带的比特分配数;
所述核心层解码和反量化单元用于根据核心层各编码子带的幅值包络量化指数计算得到核心层各编码子带的量化幅值包络值,使用核心层各编码子带的比特分配数和量化幅值包络值对所述比特流解复用器输出的核心层频域系数编码比特进行解码、反量化及反归一化处理,得到核心层的频域系数;
所述扩展层幅值包络解码单元用于对比特流解复用器输出的扩展层频域系数子带幅值包络编码比特进行解码,得到扩展层频域系数各编码子带的幅值包络量化指数;
所述核心层残差信号幅值包络生成单元用于根据核心层各编码子带的幅值包络量化指数与对应编码子带的比特分配数计算得到残差信号相同编码子带的幅值包络量化指数;
所述扩展层比特分配单元用于根据残差信号子带幅值包络量化指数和扩展层频域系数子带幅值包络量化指数进行扩展层的比特分配,得到扩展层编码信号各编码子带的比特分配数;
所述扩展层编码信号解码和反量化单元用于使用扩展层各编码子带的幅值包络量化指数计算得到扩展层各编码子带的量化幅值包络值,使用扩展层各编码子带的编码比特数和量化幅值包络值对所述比特流解复用器输出的扩展层编码信号的编码比特进行解码、反量化及反归一化处理,得到扩展层编码信号;
所述频域系数生成单元用于根据频带顺序对所述扩展层编码信号解码和反量化单元输出的扩展层的编码信号进行重新排序,然后与所述核心层解码和反量化单元输出的核心层频域系数做和计算,得到频域系数输出值;
所述噪声填充单元用于对编码过程中未分配编码比特的子带进行噪声填充;
IMDCT单元用于对进行了噪声填充后的全体频域系数进行IMDCT,得到输出的音频信号。
此外,所述残差信号幅值包络生成单元还包含量化指数修正值获取单元和残差信号幅值包络量化指数计算单元;
所述量化指数修正值获取单元用于根据核心层各子带比特分配数推算残差信号各子带的量化指数修正值,并根据对应编码子带频域系数的绝对值进行调整,其特征在于,各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的编码比特数增加时不减小,如果核心层的某个编码子带的比特分配数为0,则量化指数修正值为0,如果某个子带的比特分配数为所限定的最大比特分配数,则残差信号在该子带的幅值包络值为零;
所述残差信号幅值包络量化指数计算单元用于将核心层各编码子带的幅值包络量化指数与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数。
此外,所述扩展层编码信号解码和反量化单元对扩展层编码信号的各编码子带解码的顺序是根据各个编码子带重要性的初始值决定的,重要性大的编码子带优先解码,如果有两个编码子带具有相同的重要性,则低频编码子带优先解码,解码过程中计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码。
综上所述,本发明通过在核心层和扩展层中采用相同的子带划分和比特分配方法,并根据核心层幅值包络信息计算出扩展层幅值包络信息,在核心层与扩展层比特分配中都充分考虑信号本身的分布特性,使得核心层与扩展层之间紧密相连,并且在扩展层码流中不包括残差信号幅值包络信息,提高了可分层音频编解码的效率,同时也提高了代码利用率。
附图说明
图1是本发明第一实施例增强型可分层音频编码方法的流程图;
图2是本发明实施例在矢量量化后进行比特分配修正的方法流程图;
图3是本发明第一实施例增强型可分层音频编码系统的结构示意图;
图3a是本发明第一实施例可分层编码码流的示意图;
图4是本发明第一实施例增强型可分层音频解码方法的流程图;
图5是本发明第一实施例增强型可分层音频解码系统的结构示意图;
图6是本发明第二实施例扩展型可分层音频编码方法的流程图;
图6a是本发明第二实施例可分层编码码流的示意图;
图7是本发明第二实施例扩展型可分层音频编码系统的结构示意图;
图8是本发明第二实施例扩展型可分层音频解码方法的流程图;
图9是本发明第二实施例扩展型可分层音频解码系统的结构示意图;
图10是本发明中采用在频带范围分层和根据码率分层的关系示意图。
具体实施方式
本发明的核心思想是,对核心层的量化噪声进行补偿,在核心层和扩展层中采用相同的子带划分方法、和比特分配方法,并根据核心层幅值包络信息计算出核心层的残差信号的幅值包络信息,因此可以提高核心层的音质质量而在扩展层码流中不传送残差信号幅值包络信息。
下面将结合附图和实施例对本发明进行详细描述。
第一实施例
图1是本发明第一实施例增强型可分层音频编码方法的流程图。本实施例中以帧长为20ms,采样率为32kHz的音频流为例具体说明本发明的可分层音频编码方法。在其它帧长和采样率条件下,本发明的方法同样适用。如图1所示,该方法包括:
101:对帧长为20ms、采样率为32kHz的音频流实施MDCT(ModifiedDiscrete Cosine Transform,修正离散余弦变换)得到N个频域采样点上的频域系数。
本步骤的具体实现方式可以是:
将当前帧的N点时域采样信号x(n)与上一帧的N点时域采样信号xold(n)组成2N点时域采样信号x(n),2N点的时域采样信号可由下式表示:
x ‾ ( n ) = x old ( n ) n = 0,1 , . . . , N - 1 x ( n - N ) n = N , N + 1 , . . . , 2 N - 1 - - - ( 1 )
对x(n)实施MDCT,得到如下频域系数:
X ( k ) = Σ n = 0 2 N - 1 x ‾ ( n ) w ( n ) cos [ π N ( n + 1 2 + N 2 ) ( k + 1 2 ) ] k = 0 , . . . , N - 1 - - - ( 2 )
其中,w(n)表示正弦窗函数,表达式为:
w ( n ) = sin [ π 2 N ( n + 1 2 ) ] n = 0 , . . . , 2 N - 1 - - - ( 3 )
此外,当帧长为20ms,采样率为32kHz时,N=640(其他帧长及采样率可同样算出相应的N)。
102:将N点频域系数分成若干个子带,所述子带可以是均匀划分,也可以是非均匀划分,在本实施例中采用非均匀子带划分,计算各个子带的频域幅值包络(简称幅值包络)。
本步骤可以采用如下子步骤实现:
102a:将所需编码的频带范围内的频域系数分成L个子带(可以称为编码子带);
本实施例中,所需编码的频带范围是0~13.6kHz,可以按照人耳感知特性进行非均匀子带划分,表1给出了一个具体的划分方式。
在表1中将0~13.6kHz频带范围内的频域系数划分成28个编码子带,也就是L=28;并将13.6kHz以上的频域系数置为0。
在本实施例中,还划分出核心层的频域范围。选择表1中的0~15号子带作为核心层的子带,共有L_core=16个子带。核心层的频带范围是0~6.4kHz。
子带序号   起始频率点(LIndex)   结束频率点(HIndex)   子带宽度(BandWidth)
  0   0   7   8
  1   8   15   8
  2   16   23   8
  3   24   31   8
  4   32   47   16
  5   48   63   16
  6   64   79   16
  7   80   95   16
  8   96   111   16
  9   112   127   16
  10   128   143   16
  11   144   159   16
  12   160   183   24
  13   184   207   24
  14   208   231   24
  15   232   255   24
  16   256   279   24
  17   280   303   24
  18   304   327   24
  19   328   351   24
  20   352   375   24
  21   376   399   24
  22   400   423   24
  23   424   447   24
  24   448   471   24
  25   472   495   24
  26   496   519   24
  27   520   543   24
表1
102b:按照以下公式计算各编码子带的幅值包络:
Th ( j ) = 1 HIndex ( j ) - LIndex ( j ) + 1 Σ k = LIndex ( j ) HIndex ( j ) X ( k ) X ( k ) j = 0,1 , . . . , L - 1 - - - ( 4 )
其中,LIndex(j)和HIndex(j)分别表示第j个编码子带的起始频率点和结束频率点,其具体数值如表1所示。
103:对各编码子带的幅值包络值进行量化和编码,得到幅值包络的量化指数和幅值包络的编码比特,幅值包络的编码比特需要传送到比特流复用器(MUX)中。
采用以下公式(5)对各编码子带幅值包络进行量化,得到各编码子带幅值包络的量化指数,即量化器的输出值:
其中,
Figure G2009102498557D00173
表示向下取整,Thq(0)为第一个编码子带的幅值包络量化指数,将其范围限制在[-5,34]内,即当Thq(0)<-5时,令Thq(0)=-5;当Thq(0)>34时,令Thq(0)=34。
根据量化指数重建的量化幅值包络为
Figure G2009102498557D00174
使用6比特对第一个编码子带的幅值包络量化指数进行编码,即消耗6比特。
各编码子带幅值包络量化指数间的差分运算值采用如下公式计算:
ΔThq(j)=Thq(j+1)-Thq(j)      j=0,…,L-2      (6)
可以对幅值包络进行如下修正以保证ΔThq(j)的范围在[-15,16]之内:
如果ΔThq(j)<-15,则令ΔThq(j)=-15,Thq(j)=Thq(j+1)+15,j=L-2,…,0;
如果ΔThq(j)>16,则令ΔThq(j)=16,Thq(j+1)=Thq(j)+16,j=0,...,L-2;
对ΔThq(j),j=0,...,L-2进行霍夫曼(Huffman)编码,并计算此时所消耗的比特数(称为霍夫曼编码比特,Huffman coded bits)。如果此时霍夫曼编码比特大于等于固定分配的比特数(在本实施例中大于(L-1)×5),则不使用霍夫曼编码方式对ΔThq(j),j=0,...,L-2进行编码,并置霍夫曼编码标志位Flag_huff_rms=0;否则利用霍夫曼编码对ΔThq(j),j=0,...,L-2进行编码,并置霍夫曼编码标志位Flag_huff_rms=1。幅值包络量化指数的编码比特(即幅值包络差分值的编码比特)和霍夫曼编码标志位需要被传送到MUX中。
104:根据码率失真理论和编码子带幅值包络信息计算核心层各编码子带重要性的初始值,并根据各编码子带的重要性进行核心层的比特分配。
本步骤可以采用如下子步骤实现:
104a:计算核心层单个频域系数的比特消耗平均值:
从20ms帧长可提供的总的比特数bits_available中抽出用于核心层编码的比特数bits_available_core,扣除核心层边信息消耗的比特数bit_sides_core和核心层编码子带幅值包络量化指数所消耗掉的比特数bits_Th_core,得到剩余的可用于核心层频域系数编码的比特数bits_left_core,即:
bits_left_core=bits_available_core-bit_sides_core-bits_Th_core(7)
边信息包括霍夫曼编码标志Flag_huff_rms、Flag_huff_PLVQ和迭代次数count的比特。Flag_huff_rms用于标识是否对核心层和扩展层编码子带幅值包络量化指数使用了霍夫曼编码;Flag_huff_PLVQ_core用于标识是否在对频域系数进行矢量编码时使用了霍夫曼编码,而迭代次数count用于标识比特分配修正时的迭代次数(详见后续步骤中的描述)。
计算核心层单个频域系数的比特消耗平均值为R_core:
R ‾ _ core = bits _ left _ core HIndex ( L _ core - 1 ) + 1 - - - ( 8 )
其中,L_core为核心层编码子带的个数。
104b:根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值:
通过拉格朗日方法优化基于独立高斯分布随机变量的码率失真度,可计算得到该码率失真度界限下各编码子带的最大量化信噪比增益条件下的最佳比特值为:
rr_core(j)=[R_core+Rmin_core(j)],j=0,…,L_core-1(9)
其中,
R min _ core ( j ) = 1 2 [ Th q ( j ) - mean _ T h q _ core ] j = 0 , . . . , L _ core - 1 - - - ( 10 )
以及
mean _ Th q _ core = 1 HIndex ( L _ core - 1 ) + 1 Σ i = 0 L _ core - 1 Th q ( i ) [ HIndex ( i ) - LIndex ( i ) + 1 ]
104c:计算各编码子带在进行比特分配时的重要性初始值:
使用上述最佳比特值,以及符合人耳感知特性的比例因子,可以得到在实际比特分配中用于控制比特分配的各编码子带重要性的初始值:
rk(j)=α×rr_core(j)=α[R_core+Rmin_core(j)],j=0,…,L_core-1(12)
其中α为比例因子,该因子跟编码码率相关,可通过统计分析得到,通常0<α<1,在本实施例中α取值为0.4;rk(j)表示在进行比特分配时第j个编码子带的重要性。
104d:根据各编码子带的重要性进行核心层的比特分配;具体描述如下:
首先从各rk(j)中找到最大值所在的编码子带,假设该编码子带的编号为jk,然后增加该编码子带中每个频域系数的编码比特数region_bit(jk),并降低该编码子带的重要性;同时计算该子带编码消耗比特总数bit_band_used(jk);最后计算所有编码子带所消耗比特数的总和sum(bit-_band_used(j)),j=0,...,L_core-1;重复上述过程直至消耗比特数的总和满足可提供比特限制条件下的最大值。
本步骤中的比特分配方法可以由如下伪代码表示:
令region_bit(j)=0,j=0,1,…,L_core-1;
对于编码子带0,1,...,L_core-1:
{
寻找 j k = arg max j = 0 , . . . , L - 1 [ rk ( j ) ] ;
如果region_bit(jk)<分类阈值
{
如果region_bit(jk)=0
令region_bit(jk)=region_bit(jk)+1;
计算bit_band_used(jk)=region_bit(jk)*BandWidth(jk);
令rk(jk)=rk(jk)-1;
否则如果region_bit(jk)>=1
令region_bit(jk)=region_bit(jk)+0.5;
计算bit_band_used(jk)=region_bit(jk)*BandWidth(jk)*0.5;
令rk(jk)=rk(jk)-0.5;
}
否则如果region_bit(jk)>=分类阈值
{
令region_bit(jk)=region_bit(jk)+1;
rk ( j k ) = rk ( j k ) - 1 if region _ bit ( j k ) < MaxBit - 100 else ;
计算bit_band_used(jk)=region_bit(jk)×BandWidth(jk);
}
计算bit_used_all=sum(bit_band_used(j))  j=0,1,...,L_core-1;
如果bit_used_all<bits_left_core-24,返回并在各编码子带中重新寻找jk,循环计算比特分配数(或称为编码比特数);其中24为编码子带宽度的最大值。
否则,结束循环,计算比特分配数,输出此时的比特分配数。
}
最后,根据子带的重要性,将剩余的不到24个比特按如下原则分配给满足要求的编码子带,优先在比特分配为1的编码子带中给每个频域系数分配0.5个比特,同时降低该编码子带的重要性0.5;否则给比特分配为0的子带中每个频域系数分配1个比特,同时降低该编码子带的重要性1,直至bit_left-bit_used_all<4,比特分配结束。
上述分类阈值的取值范围为大于等于2且小于等于8,本实施例中可以为5。
其中,MaxBit为编码子带中单个频域系数所能分配到的最大的比特分配数,单位为bit/频域系数。本实施例中采用MaxBit=9。这个值可以根据编解码器的编码码率适当调整。region_bit(j)为第j个编码子带中单个频域系数所分配的比特数,也就是该子带中单个频域系数的编码比特数。
此外,本步骤中也可以将Thq(j)、或将
Figure G2009102498557D00211
作为各编码子带的比特分配重要性初始值进行核心层的比特分配,j=0,...,L_core-1;μ>0。
105:用核心层各编码子带量化指数重建的量化幅值包络值对该编码子带中的各频域系数进行归一化计算,然后对归一化的频域系数进行分组,组成若干个矢量;
使用编码子带j的量化幅值包络对该编码子带中所有频域系数Xj进行归一化处理:
X j normalized = X 2 Th q ( j ) / 2 ;
将编码子带中连续的8个系数分组构成1个8维矢量。根据表1对编码子带的划分,编码子带j中的系数正好可以分组构成Lattice_D8(j)个8维矢量。各个归一化后分组的8维待量化矢量可表示为Yj m,其中m表示该8维矢量在编码子带中的位置,其范围在0到Lattice_D8(j)-1之间。
106:判断编码子带j所分配比特数region_bit(j)的大小,如果所分配比特数region_bit(j)小于分类阈值,则对该编码子带中待量化矢量采用塔型格型矢量量化方法进行量化和编码;如果所分配比特数region_bit(j)大于等于该阈值,则对该编码子带中的待量化矢量采用球型格型矢量量化方法进行量化和编码;本实施例的阈值采用5比特。
107:对低比特编码子带采用塔型格型矢量量化方法进行量化,此时子带j所分配到的比特数满足:1<=region_bit(j)<5。
本发明采用基于D8格点的8维格型矢量量化,其中D8格点定义如下:
D 8 = { v = ( v 1 , v 2 , . . . , v 8 ) T &Element; Z 8 | &Sigma; i = 1 8 v i = even }
其中Z8表示8维的整数空间。将8维矢量映射到(即量化到)D8格点的基本方法描述如下:
设x为任意实数,f(x)表示取和x相邻的两个整数中相距较近的整数的取整量化,w(x)表示取相邻的两个整数中相距较远的整数的取整量化。对任意矢量X=(x1,x2,...,x8)∈R8,同样可定义f(X)=(f(x1),f(x2),...,f(x8))。在f(X)中选择取整量化误差的绝对值最大的分量中的最小下标,记为k,由此定义g(X)=(f(x1),f(x2),...w(xk),...,f(x8)),则f(X)或g(X)中有一个且只有一个是D8格点的数值,此时量化器输出D8格点的量化值为:
f D 8 ( x ) = f ( X ) , if f ( X ) &Element; D 8 g ( X ) , if g ( X ) &Element; D 8 .
将待量化矢量量化到D8格点的方法及求解D8格点索引的具体步骤如下:
107a:待量化矢量的能量规整
量化之前需要对待量化矢量进行能量规整。根据待量化矢量所在编码子带j所分配的比特数region_bit(j),从表2中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
Y ~ j , scale m = ( Y j m - a ) * scale ( index )
其中,Yj m表示编码子带j中第m个归一化后的待量化8维矢量,
Figure G2009102498557D00224
表示对Yj m进行能量规整后的8维矢量,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6)。
表2塔式格型矢量量化比特数与码本序号、能量缩放因子及最大塔面能量半径的对应关系
Figure G2009102498557D00231
107b:对规整后的矢量进行格点量化
将能量规整后的8维矢量
Figure G2009102498557D00232
量化到D8格点
Figure G2009102498557D00233
上::
Y ~ j m = f D 8 ( Y ~ j , scale m )
其中,
Figure G2009102498557D00235
表示将某个8维矢量映射到D8格点的量化算子。
107c:根据D8格点的塔面能量对
Figure G2009102498557D00237
的能量进行截断计算D8格点
Figure G2009102498557D00238
的能量并和编码码本中的最大塔面能量半径LargeK(index)进行比较。如果不大于最大塔面能量半径,则计算该格点在码本中的索引;否则将该编码子带规整后的待量化矢量
Figure G2009102498557D00239
进行能量截断,直到能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径;这时对能量截断后的待量化矢量持续增加其自身的一个小能量,直至其量化到D8格点的能量超过最大塔面能量半径;取最后一个能量不超过最大塔面能量半径的D8格点作为待量化矢量的量化值。具体过程可以用下面伪代码描述:
计算的塔面能量,即求编码子带j中第m个矢量的各分量绝对值之和,
temp _ K = sum ( | Y ~ j m | )
Ybak = Y ~ j m
Kbak=temp_K
If temp_K>LargeK(index)
{
      While temp_K>LargeK(index)
   {
Y ~ j , scale m = Y ~ j , scale m / 2 ,
Y ~ j m = f D 8 ( Y ~ j , scale m )
temp _ K = sum ( | Y ~ j m | )
}
w = Y ~ j , scale m / 16
Ybak = Y ~ j m
Kbak=temp_K
While temp_K<=LargeK(index)
{
Ybak = Y ~ j m
     Kbak=temp_K
Y ~ j , scale m = Y ~ j , scale m + w
Y ~ j m = f D 8 ( Y ~ j , scale m )
temp _ K = sum ( | Y ~ j m | )
    }
}
Y ~ j m = Ybak
temp_K=Kbak
这时的是最后一个能量不超过最大塔面能量半径的D8格点,temp_K是该格点的能量。
107d:生成D8格点
Figure G2009102498557D00255
在码本中的量化索引
根据以下步骤,通过计算得到D8格点
Figure G2009102498557D00256
在码本中的索引。具体步骤如下:
步骤1:根据塔面能量的大小,分别对各个塔面上的格点进行标号。
对于维数为L的整数格点网格ZL,定义能量半径为K的塔面为:
S ( L , K ) = { Y = ( y 1 , y 2 , . . . , y L ) &Element; Z L | &Sigma; i = 1 L | y i | = K }
记N(L,K)为S(L,K)中格点的个数,对于整数格ZL来说,N(L,K)有如下的递推关系:
N(L,0)=1(L≥0),N(0,K)=0(K≥1)
N(L,K)=N(L-1,K)+N(L-1,K-1)+N(L,K-1)(L≥1,K≥1)
对于能量半径为K的塔面上的整数格点Y=(y1,y2,...,yL)∈ZL,用[0,1,...,N(L,K)-1]中的某一个数b来标识,并称b为该格点的标号。求解标号b的步骤如下:
步骤1.1:令b=0,i=1,k=K,l=L,根据上述的递推公式,计算N(m,n),(m<=L,n<=K)。定义:
sgn ( x ) = 1 x > 0 0 x = 0 - 1 x < 0
步骤1.2:如果yi=0,则b=b+0;
果|yi|=1,则 b = b + N ( l - 1 , k ) + [ 1 - sgn ( y i ) 2 ] N ( l - 1 , k - 1 ) ;
如果|yi|>1,则
b = b + N ( l - 1 , k ) + 2 &Sigma; j = 1 | y i | - 1 N ( l - 1 , k - j )
+ [ 1 - sgn ( y i ) 2 ] N ( l - 1 , k - | y i | )
步骤1.3:k=k-|yi|,l=l-1,i=i+1,如果此时k=0,则停止搜索,b为
Figure G2009102498557D00265
的标号,否则继续步骤1.2)。
步骤2:对所有塔面上的格点进行统一标号。
根据各个塔面的格点数和每个格点在各自塔面上的标号,计算每个格点在全体塔面中的标号:
index _ b ( j , m ) = b ( j , m ) + &Sigma; kk = 0 K - 2 N ( 8 , kk )
其中,kk为偶数。此时的index_b(j,m)即为D8格点在码本中的索引
Figure G2009102498557D00268
也就是编码子带j中第m个8维矢量的索引。
107e:重复步骤107a~107d,直到所有编码比特大于0的编码子带的各个8维矢量都完成索引生成;
108:对高比特编码子带采用球型格型矢量量化方法进行量化,此时子带j所分配到的比特数满足:5<=region_bit(j)<=9。
此处同样采用基于D8格的8维格型矢量量化。
108a:根据编码子带j中单个频域系数所分配到的比特数region_bit(j)对该编码子带归一化后的第m个待量化矢量Yj m进行如下能量规整:
Y ^ j m = &beta; ( Y j m - a )
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),
&beta; = 2 region _ bit ( j ) scale ( region _ bit ( j ) ) ,
而scale(region_bit(j))表示编码子带中单个频域系数的比特分配数为region_bit(j)时的能量缩放因子,根据表3可查到它们的对应关系。
表3球型格型矢量量化的比特分配数与能量缩放因子的对应关系
Figure G2009102498557D00273
108b:生成D8格点的索引矢量
将编码子带j中进行能量缩放后的第m个待量化矢量映射到D8的格点
Figure G2009102498557D00275
上:
Y ~ j m = f D 8 ( Y ^ j m )
判断
Figure G2009102498557D00277
是否为零矢量,即它的各个分量是否都为零,如果是则称为零矢量条件满足,否则称为零矢量条件不满足。
如果零矢量条件满足,那么索引矢量可由下面的索引矢量生成公式得到:
k = ( Y ~ j m G - 1 ) mod 2 region _ bit ( j )
输出此时D8格点的索引矢量k,其中G为D8格点的生成矩阵,形式如下:
G = 2 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 ;
如果零矢量条件不满足,将矢量
Figure G2009102498557D00283
的值除以2,直至零矢量条件
Figure G2009102498557D00284
成立;并备份
Figure G2009102498557D00285
自身的小倍数值为w,然后对缩减后的矢量
Figure G2009102498557D00286
加上备份的小倍数值w,再量化到D8格点,判断零矢量条件是否满足;如果零矢量条件不满足,则根据索引矢量计算公式得到最近满足零矢量条件的D8格点的索引矢量k,否则继续对矢量
Figure G2009102498557D00287
增加备份的小倍数值w,然后再量化到D8格点,直至零矢量不条件满足;最后根据索引矢量计算公式得到最近满足零矢量条件的D8格点的索引矢量k;输出D8格点
Figure G2009102498557D00288
的索引矢量k。这个过程也可通过下面的伪代码描述:
temp _ D = f D 8 ( Y ~ j m / 2 region _ bit ( j ) )
Ybak = Y ~ j m
Dbak=temp_D
While temp_D≠0
{
Y ^ j m = Y ^ j m / 2
Y ~ j m = f D 8 ( Y ^ j m )
temp _ D = f D 8 ( Y ~ j m / 2 region _ bit ( j ) )
}
w = Y ^ j m / 16
Ybak = Y ~ j m
 Dbak=temp_D
 While temp_D=0
{
Ybak = Y ~ j m
  Dbak=temp_D
Y ^ j m = Y ^ j m + w
Y ~ j m = f D 8 ( Y ^ j m )
temp _ D = f D 8 ( Y ~ j m / 2 region _ bit ( j ) )
}
Y ~ j m = Ybak
k = ( Y ~ j m G - 1 ) mod 2 region _ bit ( j )
109:对低比特编码子带的矢量量化索引进行编码,此时子带j所分配的比特数满足:1<=region_bit(j)<5。
根据塔型格型矢量量化方法得到各个编码子带中每个8维矢量的矢量量化索引index_b(j,k),其中k表示编码子带j的第k个8维矢量。对量化索引index_b(j,k)进行霍夫曼编码的步骤如下:
109a:在单个频域系数所分配到的比特数为大于1小于5但除去2的所有编码子带中,对每个矢量量化索引的自然二进制码中每4位分成一组并对其进行霍夫曼编码。
109b:在单个频域系数所分配到的比特数为2的所有编码子带中,对每个8维矢量的塔型格型矢量量化索引使用15个比特进行编码。在15个比特中,对3组4位比特和1组3位比特分别进行霍夫曼编码。
109c:当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引小于127,则对量化索引使用7个比特进行编码,把7个比特分成1组3比特和1组4比特,分别对两组进行霍夫曼编码;如果量化索引等于127,则它的自然二进制码值为”1111 1110”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码;如果量化索引等于128,则它的自然二进制码值为”1111 1111”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码。
对量化索引进行霍夫曼编码的方法可用如下伪代码描述:
在所有的region_bit(j)=1.5和2<region_bit(j)<5的编码子带内
{
n在[0,region_bit(j)×8/4-1]的范围内,步长为1递增,做如下循环:
{
将index_b(j,k)右移4*n位,
计算index_b(j,k)低4比特位tmp,也就是tmp=and(index_b(j,k),15)
计算tmp在码本中的码字及其比特消耗数:
plvq_codebook(j,k)=plvq_code(tmp+1);
plvq_count(j,k)=plvq_bit_count(tmp+1);
其中plvq_codebook(j,k),和plvq_count(j,k)分别为j子带第k个8维矢量的霍夫曼编码码本中的码字和比特消耗数;plvq_bit_count和plvq_code根据表4查找。
更新采用霍夫曼编码后的比特消耗总数:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
}
在region_bit(j)=2的编码子带内
{
n在[0,region_bit(j)×8/4-2]的范围内,步长为1递增,做如下循环:
{
将index_b(j,k)右移4*n位,
计算index_b(j,k)低4比特位tmp,也就是tmp=and(index_b(j,k),15)
计算tmp在码本中的码字及其比特消耗:
plvq_count(j,k)=plvq_bit_count(tmp+1);
plvq_codebook(j,k)=plvq_code(tmp+1);
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;plvq_bit_count和plvq_code根据表4查找。
更新采用霍夫曼编码后的比特消耗总数:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
{
下面需要处理一个3比特情况:
在index_b(j,k)右移[region_bit(j)×8/4-2]*4位后,
计算index_b(j,k)低3比特位tmp,也就是tmp=and(index_b(j,k),7)
计算tmp在码本中的码字及其比特消耗:
plvq_count(j,k)=plvq_bit_count_r2_3(tmp+1);
plvq_codebook(j,k)=plvq_code_r2_3(tmp+1);
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;plvq_bit_count_r2_3和plvq_code_r2_3根据表5查找。
更新采用霍夫曼编码后的比特消耗总数:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
}
在region_bit(j)=1的编码子带内
{
如果index_b(j,k)<127
{
{
计算index_b(j,k)低4比特位tmp,也就是tmp=and(index_b(j,k),15)
计算tmp在码本中的码字及其比特消耗:
plvq_count(j,k)=plvq_bit_count_r1_4(tmp+1);
plvq_codebook(j,k)=plvq_code_r1_4(tmp+1);
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;plvq_bit_count_r1_4和plvq_code_r1_4根据表6查找。
更新采用霍夫曼后的比特消耗总数:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
{
下面需要处理一个3比特情况:
将index_b(j,k)右移4位,
计算index_b(j,k)低3比特位tmp,也就是tmp=and(index_b(j,k),7)
计算tmp在码本中的码字及其比特消耗:
plvq_count(j,k)=plvq_bit_count_r1_3(tmp+1);
plvq_codebook(j,k)=plvq_code_r1_3(tmp+1);
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;码本plvq_bit_count_r1_3和plvq_code_r1_3根据表7查找。
更新采用霍夫曼后的比特消耗总数:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
}
如果index_b(j,k)=127
{它的二进制值为”1111 1110”
对于前三个”1”和后四个”1”分别查找表7和表6的霍夫曼码表,
计算方法同前面index_b(j,k)<127下的情况.
更新采用霍夫曼后的比特消耗总数:总共需要8个比特.
}
如果index_b(j,k)=128
{它的二进制值为”1111 1111”
对于前三个”1”和后四个”1”分别查找表7和表6的霍夫曼码表,计算方法同前面index_b(j,k)<127下的情况.
更新采用霍夫曼后的比特消耗总数:总共需要8个比特.
}
}
表4塔式矢量量化霍夫曼码表
  Tmp Plvq_bit_count   plvq_code
  0   2   0
  1   4   6
  2   4   1
  3   4   5
  4   4   3
  5   4   7
  6   4   13
  7   4   10
  8   4   11
  9   5   30
  10   5   25
  11   5   18
  12   5   9
  13   5   14
  14   5   2
  15   4   15
表5塔式矢量量化霍夫曼码表
  Tmp   Plvq_bit_count_r2_3   plvq_code_r2_3
  0   1   0
  1   4   1
  2   4   15
  3   5   25
  4   3   3
  5   3   5
  6   4   7
  7   5   9
表6塔式矢量量化霍夫曼码表
  Tmp Plvq_bit_count_r1_4  plvq_code_r1_4
  0   3   7
  1   5   13
  2   5   29
  3   4   14
  4   4   3
  5   4   6
  6   4   1
  7   4   0
  8   4   8
  9   4   12
  10   4   4
  11   4   10
  12   4   9
  13   4   5
  14   4   11
  15   4   2
表7塔式矢量量化霍夫曼码表
 Tmp   Plvq_bit_count_r1_3   plvq_code_r1_3
  0   2   1
  1   3   0
  2   3   2
  3   4   7
  4   4   15
  5   3   6
  6   3   4
  7   3   3
109b:判断霍夫曼编码是否节省比特
将所有低比特编码子带的集合记为C,计算属于C中所有编码子带的8维矢量的量化矢量索引经过霍夫曼编码后消耗比特的总数bit_used_huff_all。将bit_used_huff_all和给C中所有编码子带说分配比特数的总数sum(bit_band_used(j),j∈C)进行比较,如果bit_used_huff_all<sum(bit_band_used(j),j∈C),则传输霍夫曼编码后的量化矢量索引,同时设置霍夫曼编码标志Flag_huff_PLVQ为1;否则,直接对量化矢量索引进行自然编码,并设置霍夫曼编码标志Flag_huff_PLVQ为0。
109c:比特分配数的修正
若霍夫曼编码标志Flag_huff_PLVQ为0,则不修正编码子带的比特分配。若霍夫曼编码标志Flag_huff_PLVQ为1,则利用霍夫曼编码节省下来的比特对编码子带的比特分配进行修正。
如图2所示,比特分配修正流程具体包括如下步骤:
109d:计算霍夫曼编码节省的比特数,令count=0:
diff_huff=sum(bit_band_used(j),j∈C)-bit_used_huff_all
109e:如果diff_huff大于零,则在各rk(j)(j=0,...,L-1)中寻找最大值rk(jk),用公式表示为:
j k = arg max j = 0 , . . . , L - 1 [ rk ( j ) ]
109f:判断region_bit(jk)+1是否小于等于9,如果是则执行下一步,否则将jk对应的编码子带的重要性调整到最低(例如令rk(jk)=-100),表示无需再对该编码子带的比特分配数进行修正,并跳转至步骤109e。
109g:判断diff_huff-(region_bit(jk)+1)×BandWidth(jk)是否大于等于0,如果大于等于0,则修正编码子带jk的比特分配数region_bit(jk),降低子带重要性rk(jk)的值,令count=count+1,并对编码子带jk重新进行矢量量化和霍夫曼编码,最后更新diff_huff的值;否则比特分配修正流程结束。
109h:在比特分配修正过程中,对比特分配数为0的编码子带分配1个比特,比特分配后重要性降低1,对比特分配数大于0且小于5的编码子带分配0.5个比特,比特分配后重要性降低0.5,对比特分配数大于5的编码子带分配1个比特,比特分配后重要性降低1。
109i:判断count是否小于等于Maxcount,如果是,则跳转至步骤109e,否则比特分配修正流程结束。
上述Maxcount为循环迭代次数上限值,该值由编码比特流及其采样率决定,本实施例中采用Maxcount=31。
110:对高比特编码子带的矢量量化索引进行编码,此时子带j所分配的比特数满足:5<=region_bit(j)<=9。
根据108的方法,对编码比特数为5到9的编码子带中的8维矢量进行量化后得到矢量索引k={k1,k2,k3,k4,k5,k6,k7,k8},根据单个频域系数所分配到的比特数对索引矢量k的各个分量进行直接编码,得到该矢量的编码比特。
111:对上述核心层中经过矢量量化的频域系数进行反量化,并与原始的经过MDCT后得到的频域系数进行差计算,得到核心层的残差信号。
112:对核心层的残差信号进行与频域系数相同的子带划分,根据核心层的编码子带幅值包络量化指数和核心层的比特分配数(即各region_bit(j),j=0,...,L_core-1)计算出核心层残差信号子带的幅值包络量化指数。
本步骤可以采用如下子步骤实现:
112a:根据核心层各编码子带中单个频域系数所分配的比特数region_bit(j),j=0,...,L_core-1,计算得到核心层残差信号幅值包络量化指数的修正值diff(region_bit(j)),j=0,...,L_core-1;
其中,region_bit(j)=1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,j=0,...,L_core-1,而幅值包络量化指数修正值可通过以下规则进行设置:
Figure G2009102498557D00381
diff(region_bit(j))≥0;且
Figure G2009102498557D00382
当region_bit(j)>0时,diff(region_bit(j))随着region_bit(j)值的增大而不减。
为了得到更好的编解码效果,可以对各比特分配数(region_bit)下计算出的子带幅值包络量化指数和直接从残差信号计算出的子带幅值包络量化指数的差值进行统计,得到概率最高的幅值包络量化指数修正值,如表8所示:
  region_bit   diff
  1   1
  1.5   2
  2   3
  2.5   4
  3   5
  3.5   5
  4   6
  4.5   7
  5   7
  6   9
  7   10
  8   12
表8
112b:根据核心层中编码子带j的幅值包络量化指数和表8中的量化指数修正值,计算出核心层残差信号第j个子带的幅值包络量化指数:
Thq(j)=Thq(j)-diff(region_bit(j)),j=0,...,L_core-1
其中,Thq(j)是核心层中编码子带j的幅值包络量化指数。
需要注意的是,当核心层中某个编码子带的比特分配数为0时,则无需对核心层残差信号的编码子带幅值包络进行修正,这时核心层的残差信号子带幅值包络值与核心层的编码子带幅值包络值相同。
此外,当核心层中某个编码子带比特分配数region_bit(j)=9时,置核心层残差信号第j个编码子带的量化幅值包络值为零。
113:在扩展层中对各编码子带进行比特分配:
扩展层的编码信号由核心层的残差信号,和核心层频率范围以上的MDCT系数构成。扩展层子带划分由表1决定。子带0,...,L_core-1中的编码信号是核心层残差信号,L_core,...,L-1中的编码信号是相应子带中的MDCT系数。
根据计算出的核心层残差信号的子带幅值包络量化指数、扩展层中的MDCT系数构成编码子带的幅值包络量化指数以及扩展层可用比特数,采用与核心层相同的比特分配方案在整个扩展层频带范围内计算扩展层各编码子带重要性的初始值,并对各个编码子带进行比特分配。
本实施例中,扩展层频带范围是0~13.6kHz。音频流的总码率为64kbps,核心层的码率为32kbps,则扩展层的最大码率为64kbps。根据核心层码率和扩展层最大码率计算出扩展层中总的可用的比特数,然后进行比特分配,直至比特完全消耗。
114:根据扩展层各编码子带幅值包络量化指数和相应的比特分配数,对扩展层编码信号进行归一化、矢量量化和编码,得到编码信号的编码比特。其中,扩展层中编码信号的矢量构成、矢量量化方法和编码方法分别与核心层中频域系数的矢量构成、矢量量化方法和编码方法相同。
115:如图3a所示,采用如下方式构造可分层编码码流:首先将核心层的边信息按如下顺序写入比特流复用器MUX,Flag_huff_rms、Flag_huff_PLVQ_core和count;然后将核心层的编码子带幅值包络编码比特写入MUX,然后将核心层频域系数的编码比特写入MUX;然后将扩展层的矢量编码霍夫曼编码标志位Flag_huff_PLVQ_ext和扩展层迭代次数count_ext写入MUX,然后将扩展层中MDCT系数构成的编码子带(L_core,...,L-1)的幅值包络编码比特写入MUX,然后将扩展层编码信号的编码比特写入MUX;最后将按上述顺序写成的可分层码流传送到解码端;
其中,扩展层编码信号编码比特的写入顺序按照各编码子带重要性的初始值排序。即重要性初始值大的编码子带的编码比特优先写入码流,对于具有相同重要性的编码子带,低频编码子带优先。
由于扩展层中的残差信号的幅值包络是由核心层的幅值包络和比特分配数计算出来的,因此不用传送到解码端。这样既可以增加核心层带宽的编码精度又不必附加比特用以传送残差信号的幅值包络值。
116:根据码率的大小构造码率层
根据所要求传送的码率,把比特流复用器后部不必要的比特舍去后,将满足码率要求的比特数传送到解码端。即按照编码子带重要性从小到大的顺序舍去不必要的比特。
在本实施例中,编码频带范围为0~13.6kHz,最大码率为64kbps,按码率分层的方法如下:
将编码频带范围0~6.4kHz内的MDCT频域系数划分成核心层,核心层所对应的最大码率是32kbps,记为L0层;扩展层的编码频带范围为0~13.6kHz,其最大码率为64kbps,记为L1_5层;
在送到解码端之前,根据舍去比特数的多少可以将码率划分为L1_1层,对应36kbps,L1_2层,对应40kbps,L1_3层,对应48kbps,L1_4层,对应56kbps及L1_5层,对应64kbps。
图10表示了根据频带范围分层和根据码率分层的关系。
图3是本发明第一实施例增强型可分层音频编码系统的结构示意图,如图3所示,该系统包含:MDCT单元、幅值包络计算单元、幅值包络量化和编码单元、核心层比特分配单元、核心层频域系数矢量量化和编码单元、扩展层编码信号生成单元、残差信号幅值包络生成单元、扩展层比特分配单元、扩展层编码信号矢量量化和编码单元、比特流复用器;其中:
MDCT单元,用于对输入的音频流进行MDCT,生成频域系数;
幅值包络计算单元,用于将MDCT单元输出的频域系数进行子带划分,并计算各编码子带的频域幅值包络值。根据幅值包络对应的子带位置,它可分成核心层的幅值包络和扩展成的幅值包络;
幅值包络量化和编码单元,用于对幅值包络计算单元输出的各编码子带的幅值包络值进行量化和编码,生成子带幅值包络的量化指数和幅值包络量化指数的编码比特;
核心层比特分配单元,用于根据幅值包络量化和编码单元输出的子带幅值包络的量化指数计算各编码子带重要性的初始值,并根据各编码子带的重要性进行核心层的比特分配;
核心层频域系数矢量量化和编码单元,用于利用量化后的各编码子带的幅值包络值对该编码子带中的频域系数进行归一化处理,然后对需要编码的频域系数进行矢量量化和编码,生成频域系数的矢量量化值和编码比特;
扩展层编码信号生成单元,用于对上述经过矢量量化的频域系数进行反量化,并与MDCT单元输出的核心层频带范围以内的频域系数进行差计算,得到核心层残差信号。核心层残差信号和MDCT单元输出的核心层范围以上的频域系数构成扩展层编码信号;
残差信号幅值包络生成单元,用于对残差信号进行与频域系数相同的子带划分,根据核心层各编码子带的幅值包络量化指数和比特分配数计算出残差信号各编码子带的幅值包络量化指数;
扩展层比特分配单元,用于在扩展层对各编码子带进行比特分配,生成扩展层各编码子带的比特分配数;
编码信号矢量量化和编码单元,用于根据扩展层的编码信号子带幅值包络量化指数和相应的比特分配数对编码信号归一化、矢量量化和编码得到编码信号的编码比特;
比特流复用器,用于将边信息、编码子带幅值包络编码比特、核心层频域系数的编码比特、扩展层的编码信号的编码比特发送给解码端。
图3中的各单元(模块)的具体功能详见对图1所示流程的描述。
图4是本发明第一实施例增强型可分层音频解码方法的流程图。如图4所示,该方法包括:
401:从编码端传送过来的可分层码流中(即从比特流解复用器DeMUX中)提取一帧的编码比特;
提取出编码比特后,首先对边信息进行解码,然后根据Flag_huff_rms的值对该帧中核心层的各幅值包络编码比特进行霍夫曼解码或直接解码,得到核心层各编码子带的幅值包络量化指数Thq(j),j=0,...,L_core-1。
402:根据核心层各编码子带的幅值包络量化指数计算出核心层各编码子带重要性初始值,并利用子带重要性对核心层各编码子带进行比特分配,得到核心层的比特分配数;解码端的比特分配方法和编码端的比特分配方法完全相同。在比特分配过程中,比特分配步长及比特分配后编码子带重要性降低的步长是变化的。
在完成上述比特分配过程后,根据编码端核心层的比特分配修正次数count值和各编码子带的重要性,对编码子带再进行count次比特分配,然后比特分配全过程结束。
在比特分配过程中,对比特分配数为0的编码子带分配比特的步长是1个比特,比特分配后重要性降低的步长为1,对比特分配数大于0且小于某个阈值的编码子带追加分配比特时的比特分配步长为0.5个比特,比特分配后重要性降低的步长也为0.5,对比特分配数大于等于该阈值的编码子带追加分配比特时的比特分配步长为1,比特分配后重要性降低的步长也为1;
403:利用核心层的比特分配数和各编码子带的量化幅值包络值,并根据Flag_huff_PLVQ_core对频域系数的编码比特进行解码、反量化及反归一化处理,得到核心层频域系数。
404:在对频域系数的编码比特进行解码、反量化时,根据核心层编码子带比特分配数将各个编码子带划分成低比特子带和高比特子带,对低比特子带和高比特子带分别使用塔型格型矢量量化反量化方法和球型格型矢量量化反量化方法进行反量化;
405:根据边信息,对低比特编码子带进行霍夫曼解码或者直接进行自然解码得到低比特编码子带的塔型格型矢量量化的索引,对所有塔型格型矢量量化的索引进行反量化及反归一化,得到该编码子带的频域系数。
405a)如果Flag_huff_PLVQ=0,直接解码得到低比特编码子带j的第m个矢量量化的索引index_b(j,m),如果Flag_huff_PLVQ=1,那么根据编码子带单个频域系数的比特分配数所对应的霍夫曼编码码表,得到低比特编码子带j的第m个矢量量化的索引index_b(j,m);
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引的自然二进制码值小于”1111 111”,则按照自然二进制码值计算量化索引;如果量化索引的自然二进制码值等于”1111 111”,则继续读入下一位比特,如果下一位比特是0,则量化索引值为127,如果下一位比特是1,则量化索引值为128。
405b)对该量化索引的塔式格型矢量反量化的过程实际上是矢量量化过程107的逆过程,反量化过程如下:
405c)确定矢量量化索引所在的能量塔面及在该能量塔面上的标号:
在塔面能量从2到LargeK(region_bit(j))中寻找kk,使得下面的不等式满足:
N(8,kk)<=index_b(j,m)<N(8,kk+2),
如果找到这样的kk,则K=kk为量化索引index_b(j,m)所对应D8格点所在塔面的能量,b=index_b(j,m)-N(8,kk)为该D8格点在所在塔面上的索引标号;
如果找不到这样的kk,则量化索引index_b(j,m)所对应D8格点的塔面能量K=0及索引标号b=0;
405d)求解塔面能量为K和索引标号为b的D8格点矢量Y=(y1,y2 y3,y4,y5,y6,y7,y8,)的具体步骤如下:
步骤1:令Y=(0,0,0,0,0,0,0,0),xb=0,i=1,k=K,1=8;
步骤2:如果b=xb那么yi=0;跳转至步骤6;
步骤3:如果b<xb+N(l-1,k),则yi=0,跳转至步骤5;
否则,xb=xb+N(l-1,k);令j=1;
步骤4:如果b<xb+2*N(l-1,k-j),则
如果xb<=b<xb+N(l-1,k-j),则yi=j;
如果b>=xb+N(l-1,k-j),则yi=-j,xb=xb+N(l-1,k-j);
否则xb=xb+2*N(l-1,k-j),j=j+1;继续本步骤;
步骤5:更新k=k-|yi|,l=l-1,i=i+1,如果k>0,则跳转到步骤2;
步骤6:如果k>0,则y8=k-|yi|,Y=(y1,y2,…,y8)为所求格点。
405e)对所求D8格点进行能量反规整,得到
Y &OverBar; j m = ( Y + a ) / scale ( index )
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(index)是缩放因子,可从表2查找到。
405f)对Yj m进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
406:对高比特编码子带直接解码得到高比特编码子带的矢量量化索引,对所有矢量量化索引进行反量化及反归一化,得到该编码子带的频域系数。
对高比特编码子带的编码比特直接进行自然解码得到高比特编码子带j的第m个索引矢量k,对该索引矢量进行球型格型矢量量化的反量化过程实际上是量化过程的逆过程,具体步骤如下:
406a)计算x=k*G,并计算ytemp=x/(2^(region_bit(j));其中,k为矢量量化的索引矢量,region_bit(j)表示编码子带j中单个频域系数的比特分配数;G为D8格点的生成矩阵,形式如下:
G = 2 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1
406b)计算y=x-fD8(ytemp)*(2^(region_bit(j));
406c)对所求D8格点进行能量反规整,得到
Y &OverBar; j m = y * scale ( region _ bit ( j ) ) / ( 2 region _ bit ( j ) ) + a ,
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(region_bit(j))是缩放因子,可从表3查找到。
406d)对Yj m进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
407:利用核心层各编码子带的幅值包络量化指数和核心层的比特分配数计算核心层残差信号的子带幅值包络量化指数;解码端的计算方法与编码端的计算方法完全相同;
根据Flag_huff_rms的值对核心层频域范围以上的各幅值包络编码比特进行霍夫曼解码或直接解码,得到扩展层相应编码子带的幅值包络量化指数Thq(j),j=,L_core,...,L-1。
408:扩展层编码信号是由核心层残差信号和扩展层频域系数构成,根据扩展层各编码子带的幅值包络量化指数计算各编码子带重要性的初始值,并使用各编码子带的重要性对扩展层各编码子带进行比特分配,得到扩展层各编码子带的比特分配数;解码端的编码子带重要性初始值的计算和比特分配方法与编码端的编码子带重要性初始值的计算方法和比特分配方法相同。
409:计算扩展层编码信号:
利用扩展层的比特分配数对编码信号的编码比特进行解码和反量化,并利用扩展层各编码子带的量化幅值包络值对反量化后的数据进行反归一化,得到扩展层的编码信号。
扩展层的解码及反量化的方法和核心层解码及反量化的方法相同。
本步骤中,各编码子带解码的顺序是根据各个编码子带重要性的初始值决定的。如果有两个编码子带具有相同的重要性,则低频编码子带优先解码,同时计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码。
例如,从编码端送往解码端的码率为64kbps,但是由于网络原因,解码端只能得到码流前面48kbps的信息,或解码端只支持48kbps的解码,所以当解码端解码到48kbps时就停止解码。
410:将扩展层解码得到的编码信号按频率大小重新排列,并将相同频率下的核心层频域系数和扩展层编码信号相加得到频域系数输出值。
411:对编码过程中未分配编码比特的子带或传输过程中丢失了的子带进行噪声填充。
412:对噪声填充后的频域系数进行IMDCT(Inverse Modified DiscreteCosine Transform,修正离散余弦逆变换),得到最终的音频输出信号。
图5是本发明第一实施例增强型可分层音频解码系统的结构示意图,如图5所示,该系统包含:比特流解复用器(DeMUX)、核心层幅值包络解码单元、核心层比特分配单元、核心层解码和反量化单元、核心层残差信号幅值包络生成单元、扩展层幅值包络解码单元、扩展层比特分配单元、扩展层编码信号解码和反量化单元、频域系数生成单元、噪声填充单元、IMDCT单元;其中:
比特流解复用器,用于输出幅值包络编码比特、频域系数编码比特和扩展层编码信号编码比特;
核心层幅值包络解码单元,用于根据边信息中的Flag_huff_rms值对比特流解复用器输出的核心层幅值包络编码比特进行霍夫曼解码或直接解码,得到核心层各编码子带的幅值包络量化指数Thq(j),j=0,...,L_core-1;
核心层比特分配单元,用于根据幅值包络解码单元输出的核心层各编码子带的幅值包络量化指数计算各编码子带重要性的初始值,并使用各编码子带的重要性对核心层各编码子带进行比特分配,得到核心层的比特分配数;
核心层解码和反量化单元,用于利用核心层的比特分配数和量化幅值包络值,并根据边信息中的Flag_huff_PLVQ_core值对频域系数的编码比特进行解码、反量化及反归一化处理,得到核心层频域系数;
核心层残差信号幅值包络生成单元,用于利用核心层各编码子带的幅值包络量化指数和核心层的比特分配数计算核心层相应编码子带残差信号的幅值包络量化指数;
扩展层幅值包络解码单元,用于根据边信息中的Flag_huff_rms值对比特流解复用器输出的核心层范围以上的幅值包络编码比特进行霍夫曼解码或直接解码,得到扩展层中相应编码子带的幅值包络量化指数Thq(j),j=L_core,...,L-1;
扩展层比特分配单元,用于根据扩展层各编码子带编码信号的幅值包络量化指数计算各编码子带重要性的初始值,并使用各编码子带的重要性对扩展层各编码子带进行比特分配,得到扩展层的比特分配数;
扩展层编码信号解码和反量化单元,用于利用扩展层的比特分配数对扩展层编码信号的编码比特进行解码,并利用扩展层编码信号编码子带的量化幅值包络值对解码得到的数据进行矢量反量化和反归一化,得到扩展层的编码信号;
频域系数生成单元,用于将核心层解码和反量化单元输出的核心层频域系数和扩展层编码信号解码和反量化单元输出的扩展层编码信号相加,得到频域系数输出值;
噪声填充单元,用于对频域系数生成单元输出的频域系数输出值中未分配比特的子带进行噪声填充;
IMDCT单元,用于对噪声填充后的频域系数进行IMDCT,得到最终的音频输出信号。
第二实施例
图6是本发明第二实施例扩展型可分层音频编码方法的流程图。本实施例中以帧长为20ms,采样率为48kHz的音频流为例具体说明本发明的可分层音频编码方法。在其它帧长和采样率条件下,本发明的方法同样适用。如图6所示,该方法包括:
601:对帧长为20ms、采样率为48kHz的音频流实施MDCT(ModifiedDiscrete Cosine Transform,修正离散余弦变换)得到N点频域系数,在本实施例中N=960。
本步骤的具体实现方法可参照步骤101。
602:将N点频域系数分成若干非均匀子带,计算各编码子带的幅值包络(简称幅值包络)。
102a:将所需编码的频带范围内的频域系数分成L个子带(可以称为编码子带);
本实施例中,所需编码的频带范围是0~20kHz,可以按照人耳感知特性进行非均匀子带划分,表9给出了一个具体的划分方式。
在表9中将0~20kHz频带范围内的频域系数划分成36个编码子带,也就是L=36;并将20kHz以上的频域系数置为0。
在本实施例中,还划分出核心层的频域范围。选择表9中的0~15号子带作为核心层的编码子带,共有L_core=16个子带,核心层的频带范围是0~6.4kHz;选择表9中的0~27号子带作为扩展层1的编码子带,共有L1=28个编码子带,扩展层1的频率范围是0~13.6kHz;选择表9中的0~35号子带作为扩展层2的编码子带,共有L=36个子带,扩展层2频率范围是0~20kHz。
表9实施例2中的编码子带
子带序号   起始频率点(LIndex)   结束频率点(HIndex)   子带宽度(BandWidth)
  0   0   7   8
  1   8   15   8
  2   16   23   8
  3   24   31   8
  4   32   47   16
  5   48   63   16
  6   64   79   16
  7   80   95   16
  8   96   111   16
  9   112   127   16
  10   128   143   16
  11   144   159   16
  12   160   183   24
  13   184   207   24
  14   208   231   24
  15   232   255   24
  16   256   279   24
  17   280   303   24
  18   304   327   24
  19   328   351   24
  20   352   375   24
  21   376   399   24
  22   400   423   24
  23   424   447   24
  24   448   471   24
  25   472   495   24
  26   496   519   24
  27   520   543   24
  28   544   575   32
  29   576   607   32
  30   608   639   32
  31   640   671   32
  32   672   703   32
  33   704   735   32
  34   736   767   32
  35   768   799   32
计算各编码子带幅值包络的具体方法可参照步骤102。
603:对各编码子带的幅值包络值进行量化和编码,得到各编码子带的幅值包络量化指数和幅值包络的编码比特,幅值包络的编码比特需要传送到MUX中。
本步骤的具体实现方法可参照步骤103。
604:根据码率失真理论和编码子带幅值包络信息计算各编码子带重要性的初始值,并根据核心层各编码子带的重要性进行核心层的比特分配。
本步骤的具体实现方法可参照步骤104。
605:用核心层各编码子带的量化幅值包络值
Figure G2009102498557D00511
对该编码子带中的各频域系数进行归一化计算,然后对归一化的频域系数进行分组,组成若干个矢量;对所述矢量进行矢量量化和编码,生成频域系数的矢量量化值和编码比特;频域系数的编码比特需要传送到MUX中。
本步骤的具体实现方法可参照步骤105至110。
606:对上述经过矢量量化的核心层频域系数进行反量化,并与原始的经过MDCT后得到的频域系数进行差计算,得到核心层残差信号,记为残差信号1,由残差信号1和扩展层1的频域系数构成扩展层1的编码信号;同样,由扩展层k-1的编码信号与经过矢量量化的扩展层k-1的编码信号的反量化值进行差计算得到扩展层k-1的残差信号,记为残差信号k,由残差信号k和扩展层k的频域系数构成扩展层k的编码信号。
607:对残差信号k进行与扩展层k-1的编码信号同样的子带划分,并计算残差信号k的子带幅值包络量化指数;
根据核心层的子带幅值包络量化指数和核心层的比特分配数可计算出残差信号1的编码子带幅值包络量化指数。同样,高扩展层中的残差信号的编码子带幅值包络量化指数可以利用低扩展层残差信号编码子带包络量化指数和低扩展层的比特分配数推算出来的;也就是说,扩展层k(k>1)中的残差信号k子带包络量化指数是由扩展层k-1的编码信号编码子带包络量化指数和相应的修正值计算出来的。
本步骤的具体实现方法可参照步骤112。
608:在各扩展层中对各编码子带进行比特分配(即对各扩展层编码信号的各编码子带进行比特分配):
根据计算出的扩展层编码信号的幅值包络量化指数,采用与核心层相同的比特分配方案在各扩展层中计算各编码子带重要性的初始值,并对各编码子带进行比特分配;本实例中音频流的总码率为96kbps,核心层的码率为32kbps,扩展层1的最大码率为64kbps,扩展层2的最大码率为96kbps。分别计算各扩展层可提供的编码比特数,然后进行比特分配,直至比特完全消耗。各扩展层的比特分配方法与核心层的比特分配方法相同。
609:根据计算出的扩展层编码信号编码子带的量化幅值包络值和相应的比特分配数,对编码信号进行归一化、矢量量化和编码,得到编码信号的编码比特。其中,各扩展层编码信号的矢量构成,矢量量化方法和编码方法都分别与核心层中频域系数的矢量构成,矢量量化方法和编码方法相同。
610:如图3b所示,采用如下方法构造可分层编码码流:首先将核心层的边信息按如下顺序写入比特流复用器MUX,Flag_huff_rms,Flag_huff_PLVQ_core和count;然后将核心层的编码子带幅值包络编码比特写入MUX,然后将核心层频域系数的编码比特写入MUX;然后按各扩展层的顺序将扩展层中的Flag_huff_PLVQ和count写入MUX后,将扩展层频域系数的编码子带幅值包络编码比特写入MUX,然后将编码信号的编码比特写入MUX;最后将按上述顺序写成的可分层码流传送到解码端;
其中,编码信号编码比特的写入顺序是按照扩展层从低到高的顺序将各个扩展层的编码比特写入码流;即先写完第k-1个扩展层的边信息、频域系数编码子带幅值包络编码比特和编码信号编码比特后再写第k个扩展层的边信息、频域系数编码子带幅值包络编码比特和编码信号编码比特。而在各扩展层中,写入编码信号编码比特的顺序是根据各子带的初始重要性排序的;即初始重要性大的子带的编码信号编码比特优先写入码流。
611:根据码率的大小构造码率层;
根据所要求传送的码率,把比特流复用器后部不必要的比特舍去后,将满足码率要求的比特数传送到解码端。即按照编码子带重要性从小到大的顺序舍去不必要的比特。
在本实施例中,编码频带范围为0~20kHz,最大码率为96kbps,按码率分层的方法如下:
将编码频带范围0~6.4kHz内的MDCT频域系数划分成核心层,核心层所对应的最大码率是32kbps,记为L0层;
扩展层1的编码频带范围为0~13.6kHz,其最大码率为64kbps,记为L15层;扩展层2的编码频带范围为0~20kHz,其最大码率为96kbps,记为L2_2层;
在送到解码端之前,根据舍去比特数的多少可以将L1_5层和L2_2层之间进一步划分为L2_1层,对应80kbps及L2_2层,对应96kbps。
图10表示了根据频带范围分层和根据码率分层的关系。
图7是本发明第二实施例扩展型可分层音频编码系统的结构示意图,如图7所示,该系统包含:MDCT单元、幅值包络计算单元、幅值包络量化和编码单元、核心层比特分配单元、频域系数矢量量化和编码单元、扩展层编码信号生成单元、残差信号幅值包络生成单元、扩展层比特分配单元、编码信号矢量量化和编码单元、多路复用器。
图7中为了清晰地描述各扩展层之间的数据交互关系,将扩展层编码信号生成单元进一步划分为:扩展层编码信号生成单元1至扩展层编码信号生成单元K;将残差信号幅值包络生成单元进一步划分为:残差信号幅值包络生成单元1至残差信号幅值包络生成单元K;将扩展层比特分配单元进一步划分为:扩展层比特分配单元1至扩展层比特分配单元K;将编码信号矢量量化和编码单元进一步划分为:编码信号矢量量化和编码单元1至编码信号矢量量化和编码单元K。
MDCT单元,用于对输入的音频流进行MDCT,生成频域系数;
幅值包络计算单元,用于将MDCT单元输出的频域系数进行子带划分,并计算各编码子带的频域包络值;
幅值包络量化和编码单元,用于对幅值包络计算单元输出的各编码子带的幅值包络值进行量化和编码,生成各编码子带的幅值包络量化指数和幅值包络的编码比特;
核心层比特分配单元,用于根据幅值包络量化和编码单元输出的核心层各编码子带的幅值包络量化指数进行核心层的比特分配;
频域系数矢量量化和编码单元,用于利用核心层各编码子带的量化幅值包络值对该子带中的频域系数进行归一化处理,然后对需要编码的频域系数进行矢量量化和编码,生成核心层频域系数的矢量量化值和编码比特;
扩展层编码信号生成单元1,用于对频域系数矢量量化和编码单元输出的经过矢量量化的频域系数进行反量化,并与MDCT单元输出的频域系数进行差计算,得到核心层残差信号(记为残差信号1),由残差信号1和扩展层1的频域系数构成扩展层1的编码信号(记为编码信号1);
扩展层编码信号生成单元i+1,用于对扩展层i的编码信号矢量量化和编码单元i输出的经过矢量量化的编码信号i进行反量化,并将其与扩展层编码信号生成单元i输出的未经过矢量量化的编码信号i进行差计算,得到扩展层i的残差信号(记为残差信号i+1),由残差信号i+1和扩展层i+1的频域系数构成扩展层i+1的编码信号(记为编码信号i+1);其中,i=1,...,K-1,K为扩展层个数。
残差信号幅值包络生成单元1,用于对核心层的残差信号进行与核心层频域系数相同的子带划分,根据核心层的编码子带幅值包络量化指数和核心层的比特分配数计算出核心层的残差信号(残差信号1)的编码子带幅值包络量化指数;
残差信号幅值包络生成单元i+1,用于根据扩展层i的编码子带幅值包络量化指数和比特分配数计算出扩展层i的残差信号(残差信号i+1)的编码子带幅值包络量化指数;其中,i=1,...,K-1,K为扩展层个数;
扩展层比特分配单元i,用于在扩展层i中对各编码子带进行比特分配,生成扩展层i的各编码子带的比特分配数;其中,i=1,...,K,K为扩展层个数;
编码信号矢量量化和编码单元i,用于根据扩展层i的编码信号编码子带量化幅值包络值和相应的比特分配数对编码信号归一化、矢量量化和编码得到编码信号i的编码比特;其中,i=1,...,K,K为扩展层个数;
多路复用器,用于将边信息、频域系数各编码子带幅值包络编码比特、核心层频域系数的编码比特、各扩展层的边信息和编码信号的编码比特发送给解码端。
图8是本发明第二实施例扩展型可分层音频解码方法的流程图。如图8所示,该方法包括:
801:从编码端传送过来的可分层码流中(即从多路分离器DeMUX中)提取一帧的编码比特;
提取出编码比特后,首先对边信息进行解码,然后根据Flag_huff_rms的值对该帧中的各幅值包络编码比特进行霍夫曼解码或直接解码,得到核心层各编码子带的幅值包络量化指数Thq(j),j=0,...,L_core-1。
802:根据核心层各编码子带的幅值包络量化指数计算出核心层各编码子带重要性初始值,并利用子带重要性对核心层各编码子带进行比特分配,得到核心层的比特分配数(即Region_bit(j),j=0,...,L_core-1);解码端的比特分配方法和编码端的比特分配方法完全相同。在比特分配过程中,比特分配步长及比特分配后编码子带重要性降低的步长是变化的。
在完成上述比特分配过程后,根据编码端核心层的比特分配修正次数count值和各编码子带的重要性,对编码子带再进行count次比特分配,然后比特分配全过程结束。
在比特分配过程中,对比特分配数为0的编码子带分配比特的步长是1个比特,比特分配后重要性降低的步长为1,对比特分配数大于0且小于某个阈值的编码子带追加分配比特时的比特分配步长为0.5个比特,比特分配后重要性降低的步长也为0.5,对比特分配数大于等于该阈值的编码子带追加分配比特时的比特分配步长为1,比特分配后重要性降低的步长也为1;
803:利用核心层的比特分配数和各编码子带的量化幅值包络值
Figure G2009102498557D00551
并根据Flag_huff_PLVQ对核心层频域系数的编码比特进行解码、反量化及反归一化处理,得到核心层频域系数。
804:利用核心层各编码子带的幅值包络量化指数和核心层的比特分配数计算核心层残差信号各编码子带的幅值包络量化指数;解码端的计算方法与编码端的计算方法完全相同。核心层的残差信号和扩展层1的频域系数构成扩展层1的编码信号。
同样,高扩展层中的残差信号编码子带幅值包络量化指数是利用低扩展层编码信号编码子带幅值包络量化指数和低扩展层比特分配数推算出来的,即扩展层i-1的残差信号子带包络量化指数是由扩展层i-1的编码信号编码子带幅值包络量化指数和相应的修正值计算出来的。扩展层i-1的残差信号和扩展层i的频域系数构成扩展层i的编码信号。
805:根据各扩展层各编码子带编码信号的幅值包络量化指数计算各编码子带的重要性的初始值,并根据各编码子带的重要性对该扩展层的各编码子带进行比特分配,得到该扩展层的比特分配数;解码端的编码子带重要性的初始值的计算和比特分配方法与编码端的各编码子带重要性的初始值的计算方法和比特分配方法相同。
806:计算扩展层编码信号:
利用扩展层的比特分配数对编码信号编码比特进行解码和矢量反量化,并利用扩展层编码信号各编码子带的量化幅值包络值对反量化数据进行反归一化,得到扩展层的编码信号。
本步骤中,各扩展层编码信号解码的顺序是从低扩展层到高扩展层,而在同一扩展层中各编码子带编码信号解码的顺序是根据各个编码子带重要性的初始值决定的。如果有两个编码子带具有相同的重要性,则低频编码子带优先解码,同时计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码。
807:将核心层频域系数和各扩展层编码信号相加得到频域系数输出值。
808:对编码过程中未分配编码比特的子带进行噪声填充。
809:对噪声填充后的频域系数进行IMDCT,得到最终的音频输出信号。
图9是本发明第二实施例扩展型可分层音频解码系统的结构示意图,如图9所示,该系统包含:比特流解复用器(DeMUX)、幅值包络解码单元、核心层比特分配单元、核心层解码和反量化单元、残差信号幅值包络生成单元、扩展层比特分配单元、编码信号解码和反量化单元、频域系数生成单元、噪声填充单元、IMDCT单元。
图9中为了清晰地描述各扩展层之间的数据交互关系,将残差信号幅值包络生成单元进一步划分为:残差信号幅值包络生成单元1至残差信号幅值包络生成单元K;将扩展层比特分配单元进一步划分为:扩展层比特分配单元1至扩展层比特分配单元K;将编码信号解码和反量化单元进一步划分为:编码信号解码和反量化单元1至编码信号解码和反量化单元K。
比特流解复用器,用于输出幅值包络编码比特、频域系数编码比特和各扩展层的编码信号编码比特;
幅值包络解码单元,用于根据边信息中的Flag_huff_rms值对比特流解复用器输出的幅值包络编码比特进行霍夫曼解码或直接解码,得到核心层各编码子带的幅值包络量化指数Thq(j),j=0,...,L_core-1;
核心层比特分配单元,用于根据幅值包络解码单元输出的核心层各编码子带的幅值包络量化指数计算出核心层各编码子带重要性初始值,并利用子带重要性对核心层各编码子带进行比特分配,得到核心层的比特分配数(即Region_bit(j),j=0,...,L_core-1);
核心层解码和反量化单元,用于利用核心层的比特分配数和各编码子带的量化幅值包络值并根据边信息中的Flag_huff_PLVQ值对频域系数的编码比特进行解码、反量化及反归一化处理,得到核心层频域系数;
残差信号幅值包络生成单元1,用于利用核心层各编码子带的幅值包络量化指数和核心层的比特分配数计算核心层的各编码子带残差信号的幅值包络量化指数;
残差信号幅值包络生成单元i+1,用于利用扩展层i中各编码子带的幅值包络量化指数和扩展层i的比特分配数计算扩展层i的各编码子带残差信号的幅值包络量化指数;其中,i=1,...,K-1,K为扩展层个数;
扩展层比特分配单元i,用于根据扩展层i的各编码子带编码信号的幅值包络量化指数计算扩展层i的各编码子带重要性的初始值,并使用扩展层i的各编码子带重要性对扩展层i的各编码子带进行比特分配,得到扩展层i的比特分配数;其中,i=1,...,K,K为扩展层个数;
编码信号解码和反量化单元i,用于利用扩展层i的比特分配数对编码信号i编码比特进行解码和矢量反量化,并利用扩展层i的编码信号编码子带的量化幅值包络值对反量化数据进行反归一化,得到扩展层i的编码信号;其中,i=1,...,K,K为扩展层个数;
频域系数生成单元,用于将核心层解码和反量化单元输出的核心层频域系数和编码信号解码和反量化单元输出的各扩展层编码信号相加,得到频域系数输出值;
噪声填充单元,用于对频域系数生成单元输出的频域系数输出值中未分配编码比特的子带进行噪声填充;
IMDCT单元,用于对噪声填充后的频域系数进行IMDCT,得到最终的音频输出信号。

Claims (31)

1.一种可分层音频编码方法,其特征在于,该方法包括:
将音频信号经过修正离散余弦变换MDCT变换后的频域系数,划分为核心层频域系数和扩展层频域系数,将所述频域系数划分成多个编码子带,并对所述编码子带的幅值包络值进行量化和编码;
根据核心层各编码子带幅值包络值对核心层各编码子带进行比特分配,然后对核心层频域系数进行量化和编码得到核心层频域系数的编码比特;
根据核心层各编码子带幅值包络值和比特分配数计算核心层残差信号各编码子带的幅值包络值;
根据由核心层残差信号和扩展层频域系数构成的扩展层编码信号和由所述扩展层编码信号构成的各编码子带的幅值包络值对扩展层各编码子带进行比特分配,然后对扩展层编码信号进行量化和编码得到扩展层编码信号的编码比特;
将核心层和扩展层频域系数构成的各编码子带的幅值包络编码比特、核心层频域系数编码比特和扩展层编码信号的编码比特复用打包后,传送给解码端。
2.如权利要求1所述的方法,其特征在于,
将MDCT变换后的系数分成多个等间隔编码子带,或者按照听觉感知特性划分成多个非均匀编码子带;将低频编码子带划分为核心层编码子带,将高频编码子带划分到扩展层。
3.如权利要求1所述的方法,其特征在于,
根据编码子带幅值包络值对各编码子带进行变步长比特分配;
在比特分配过程中,对比特分配数为0的编码子带分配比特的步长是1个比特,比特分配后重要性降低的步长为1,对比特分配数大于0且小于分类阈值的编码子带追加分配比特时的比特分配步长为0.5个比特,比特分配后重要性降低的步长为0.5,对比特分配数大于等于所述分类阈值的编码子带追加分配比特时的比特分配步长为1,比特分配后重要性降低的步长为1;
比特分配数是一个编码子带中单个频域系数所分配到的比特数。
4.如权利要求1所述的方法,其特征在于,
在对核心层各个编码子带的频域系数和扩展层各个编码子带的编码信号进行量化和编码的过程中,对比特分配数小于分类阈值的编码子带的待量化矢量采用塔型格型矢量量化方法进行量化和编码,对比特分配数大于所述分类阈值的编码子带的待量化矢量采用球型格型矢量量化方法进行量化和编码;
比特分配数是一个编码子带中单个频域系数所分配到的比特数。
5.如权利要求1所述的方法,其特征在于,
采用如下方法计算核心层残差信号各编码子带的幅值包络值:
对核心层频域系数的量化值进行反量化,并与核心层频域系数进行差计算,得到核心层残差信号;
将核心层残差信号按核心层频域系数相同的方法划分成编码子带,根据核心层各编码子带幅值包络值和比特分配数推算出核心层残差信号各编码子带的幅值包络值。
6.如权利要求5所述的方法,其特征在于,
采用如下方法推算出核心层残差信号各编码子带的幅值包络值:计算核心层各编码子带的幅值包络量化指数,并与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数;
各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的比特分配数增加时不减小;
当核心层的某个编码子带的比特分配数为0时,量化指数修正值为0,当某个编码子带的比特分配数为所限定的最大比特分配数时,残差信号在该子带的幅值包络值为零。
7.如权利要求6所述的方法,其特征在于,
编码子带的量化指数修正值是根据核心层比特分配数得到的,当核心层编码子带的比特分配数分别为0、1、1.5、2、2.5、3、3.5、4、4.5、5、6、7或8时,该编码子带所对应的量化指数修正值分别取0、1、2、3、4、5、5、6、7、7、9、10或12;
8.如权利要求1所述的方法,其特征在于,
得到核心层频域系数编码比特的方法为:
计算核心层各编码子带的幅值包络量化指数,对核心层各编码子带进行比特分配;
根据核心层各编码子带的幅值包络量化指数重建的核心层各编码子带的量化幅值包络值对各编码子带的频域系数进行归一化,根据编码子带的比特分配数分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到核心层频域系数的编码比特;
得到扩展层编码信号编码比特的方法为:
用核心层残差信号和扩展层频域系数构成扩展层编码信号;
根据扩展层编码信号各编码子带的幅值包络量化指数,对扩展层各编码子带进行比特分配;
根据扩展层各编码子带的幅值包络量化指数重建的扩展层各编码子带的量化幅值包络值对各编码子带的编码信号进行归一化,根据编码子带的比特分配数分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到扩展层编码信号的编码比特。
9.如权利要求1所述的方法,其特征在于,
按照如下码流格式进行复用打包:
首先将核心层的边信息比特写入码流的帧头后面,将核心层的编码子带幅值包络编码比特写入比特流复用器MUX,然后将核心层频域系数的编码比特写入MUX;
然后将扩展层的边信息比特写入MUX,然后将扩展层频域系数编码子带的幅值包络编码比特写入MUX,然后将扩展层编码信号的编码比特写入MUX;
根据所要求的码率,将满足码率要求的比特数传送到解码端。
10.如权利要求9所述的方法,其特征在于,
将扩展层编码信号编码比特按照各编码子带重要性的初始值从大到小排序的顺序写入码流,传送到解码端。
11.如权利要求9所述的方法,其特征在于,
核心层的边信息包括MDCT系数构成的编码子带幅值包络的霍夫曼编码标志位比特,核心层频域系数的霍夫曼编码标志位比特和迭代次数比特;
扩展层的边信息包括扩展层编码信号的霍夫曼编码标志位比特和迭代次数比特。
12.如权利要求9所述的方法,其特征在于,
采用如下编码码率分层方法将满足码率要求的比特数传送到解码端::
按照所定最大编码码率的比特数在整个所需编码的频带范围内,对核心层和扩展层编码,使得在编码频带范围内达到最大编码码率;
在核心层编码比特之后,将扩展层编码信号的编码比特按照各编码子带重要性初始值从大到小的顺序写入比特流复用器;
根据各个分层的码率设计要求,把比特流复用器后部不必要的比特舍去,即按照将编码子带重要性初始值小的编码子带的编码比特先舍去的原则,将满足码率要求的比特数传送到解码端;
将核心层对应的码率记为L0层,根据扩展层舍去比特数的多少将扩展层对应的各个码率分别记为L1_1层、L1_2层、直至L1_K层,其中L1_K层的码率就是所要求的最大码率。
13.如权利要求9所述的方法,其特征在于,
编码频带范围为0~13.6kHz,最大编码码率为64kbps时,采用如下编码码率分层方法将满足码率要求的比特数传送到解码端:
将编码频带范围0~13.6kHz中0~6.4kHz内的MDCT频域系数划分成核心层,核心层所对应的最大码率是32kbps,记为L0层;扩展层的编码频带范围为0~13.6kHz,其最大码率为64kbps,记为L15层;
在送到解码端之前,根据舍去比特数的多少将码率划分为L1_1层,对应36kbps,L1_2层,对应40kbps,L1_3层,对应48kbps,L1_4层,对应56kbps,及L1_5层,对应64kbps。
14.如权利要求1至4中任何一项所述的方法,其特征在于,
将音频信号经过修正离散余弦变换MDCT变换后的频域系数,划分为核心层频域系数和扩展层频域系数之后,还包含如下步骤:把扩展层的频域系数按照频率从小到大的顺序分成M个部分,它们分别是扩展层1到扩展层M的频域系数,其中扩展层1中频域系数的频率最小,扩展层M中频域系数的频率最大;
对核心层频域系数进行量化之后,还包含如下步骤:对核心层频域系数的量化值进行反量化,并与核心层频域系数进行差计算,得到核心层残差信号;将残差信号按核心层相同的方法划分成编码子带,根据核心层各编码子带幅值包络值和比特分配数推算出核心层残差信号各编码子带的幅值包络值;用核心层残差信号和扩展层1的频域系数构成扩展层1的编码信号,根据扩展层1的编码信号各编码子带的幅值包络量化指数,对扩展层1各编码子带进行比特分配;根据扩展层1的各编码子带的比特分配数对扩展层1的编码信号进行量化和编码。
15.如权利要求14所述的方法,其特征在于,
对扩展层1的编码信号进行量化之后,还包含如下步骤:
对扩展层i的编码信号的量化值进行反量化,并与扩展层i的编码信号进行差计算,得到扩展层i的残差信号;
将扩展层i的残差信号按扩展层i相同的方法划分成编码子带,根据扩展层i的各编码子带幅值包络值和比特分配数推算出扩展层i的残差信号各子带的幅值包络值;
根据扩展层i的残差信号和扩展层i+1的频域系数构成扩展层i+1的编码信号,根据扩展层i+1的编码信号各编码子带的幅值包络量化指数,对扩展层i+1的各编码子带进行比特分配;
根据扩展层i+1各编码子带的幅值包络量化指数重建的扩展层i+1各编码子带的量化幅值包络值和编码比特数对扩展层i+1各编码子带的编码信号进行归一化、矢量量化和编码,得到扩展层i+1的编码信号的编码比特;
所述i=1,....N-1。
16.如权利要求1或9所述的方法,其特征在于,
按照如下码流格式进行复用打包:
在核心层的编码比特之后,根据扩展层编号的大小,将编号小的扩展层的比特先写入比特流复用器MUX,然后将编号大的扩展层的比特再写入比特流复用器MUX,即先写入扩展层i的比特再将扩展层i+1的比特写入MUX;
在同一个扩展层中,先将该扩展层的边信息比特写入MUX,然后将该扩展层频域系数编码子带的幅值包络编码比特写入MUX,然后将该扩展层编码信号的编码比特写入MUX;
根据所要求的码率,将满足码率要求的比特数传送到解码端。
17.如权利要求16所述的方法,其特征在于,
采用如下编码码率分层方法将满足码率要求的比特数传送到解码端:
按照所定最大编码码率的比特数在整个所需编码的频带范围内,对核心层和扩展层1到扩展层M进行编码,使得在编码频带范围内达到所定最大编码码率;
在核心层编码比特之后,将编号小的扩展层的比特优先写入比特流复用器,在同一个扩展层中将编码子带重要性初始值大的编码子带的编码比特优先写入比特流复用器;
对于每一个扩展层,根据各个分层的码率设计要求,把比特流复用器后部不必要的比特舍去,既按照将编码子带重要性初始值小的编码子带的编码比特先舍去的原则,将满足码率要求的比特数传送到解码端;
将核心层对应的码率记为L0层,根据所定传送码率的要求将各个扩展层对应的最大码率分别记为L1_K1层、L2_K2层、直至LM_KM层,其中LM_KM层的码率就是编码器所要求的最大码率;
在扩展层i和扩展层i+1之间,根据舍去比特数的多少进一步将码率层细化,即在Li_Ki层和Li+1_Ki+1层之间根据舍去比特数的多少,划分出Li+1_1层,Li+1_2层,直至Li+1_Ki+1层。
18.如权利要求17所述的方法,其特征在于,
编码频带范围为0~20kHz,最大编码码率为96kbps时,采用如下编码码率分层方法将满足码率要求的比特数传送到解码端:
将编码频带范围0~20kHz中0~6.4kHz内的MDCT频域系数划分成核心层,核心层所对应的最大码率是32kbps,记为L0层;
扩展层1的编码频带范围为0~13.6kHz,其最大码率为64kbps,记为L15层;扩展层2的编码频带范围为0~20kHz,其最大码率为96kbps,记为L2_2层;
在送到解码端之前,根据舍去比特数的多少可以将L1_5层和L2_2层之间进一步划分为L2_1层,对应80kbps,及L2_2层,对应96kbps。
19.一种可分层音频解码方法,其特征在于,该方法包括:
对编码端传送过来的比特流进行解复用,对核心层的频域系数幅值包络编码比特解码,得到各编码子带的幅值包络值;
根据核心层编码子带的幅值包络值,对核心层各编码子带进行比特分配,并由此推算核心层残差信号的幅值包络值,对扩展层的频域系数幅值包络编码比特解码,得到扩展层频域系数幅值包络值,根据核心层残差信号的幅值包络值和扩展层频域系数幅值包络值对扩展层各编码子带进行比特分配;
根据核心层和扩展层的比特分配数,分别对核心层频域系数编码比特和扩展层编码信号的编码比特解码,得到核心层频域系数和扩展层编码信号,将扩展层编码信号按照频带顺序重新排列,并和核心层频域系数相加,得到全体带宽的频域系数,对全体带宽的频域系数进行修正离散余弦逆变换IMDCT变换,得到输出的音频信号。
20.如权利要求19所述的方法,其特征在于,
推算残差信号的幅值包络值的方法为:
计算核心层各编码子带的幅值包络量化指数,并与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数;
根据扩展层i的各编码子带幅值包络和比特分配数推算出扩展层i的残差信号各子带的幅值包络值;
各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的比特分配数增加时不减小;
当核心层的编码子带的比特分配数为0时,量化指数修正值为0,当编码子带的比特分配数为所限定的最大比特分配数时,残差信号在该编码子带的幅值包络值为零。
21.如权利要求20所述的方法,其特征在于,
编码子带的量化指数修正值是根据核心层比特分配数得到的,当核心层编码子带的比特分配数分别为0、1、1.5、2、2.5、3、3.5、4、4.5、5、6、7或8时,该编码子带所对应的量化指数修正值分别取0、1、2、3、4、5、5、6、7、7、9、10或12;
22.如权利要求19所述的方法,其特征在于,
得到核心层频域系数和扩展层编码信号的方法为:
根据核心层各编码子带的比特分配数、量化幅值包络值和边信息对核心层频域系数编码比特进行解码、反量化及反归一化处理,得到核心层的频域系数;
根据各扩展层各编码子带的比特分配数,编码信号的量化幅值包络值和边信息对该扩展层编码信号的编码比特进行解码、反量化及反归一化处理,得到扩展层的编码信号。
23.如权利要求19或22所述的方法,其特征在于,
采用如下顺序对扩展层编码信号的编码比特进行解码:
在不同的扩展层中,各层解码的顺序是先对扩展层编号小的低扩展层的幅值包络和各编码子带的编码比特进行解码,然后再对扩展层编号大的高扩展层的幅值包络和各编码子带的编码信号进行解码,解码过程中计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码;
在同一个扩展层中,各编码子带解码的顺序是根据各个编码子带重要性的初始值决定的,重要性大的编码子带优先解码,如果有两个编码子带具有相同的重要性,则低频编码子带优先解码,解码过程中计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码。
24.如权利要求23所述的方法,其特征在于,
当从编码端送往解码端的码率为64kbps时,在解码端截取不同的比特数进行解码,可以到36kbps,40kbps,48kbps,56kbps或64kbps的解码码率。
当从编码端送往解码端的码率为96kbps时,在解码端截取不同的比特数进行解码,可以到80kbps或96kbps的解码码率。
25.一种可分层音频编码系统,该系统包括:修正离散余弦变换MDCT单元、幅值包络计算单元、幅值包络量化和编码单元、核心层比特分配单元、核心层频域系数矢量量化和编码单元以及比特流复用器;其特征在于,该系统还包括:扩展层编码信号生成单元、残差信号幅值包络生成单元、扩展层比特分配单元以及扩展层编码信号矢量量化和编码单元;其中:
所述MDCT单元用于对输入的音频信号进行修正离散余弦变换,生成核心层频域系数和扩展层频域系数;
所述幅值包络计算单元用于将所述频域系数中待编码的部分划分为核心层频域系数编码子带和扩展层频域系数编码子带,并计算各编码子带的幅值包络值;
所述幅值包络量化和编码单元用于将所述核心层频域系数编码子带和扩展层频域系数编码子带的幅值包络值进行量化和编码,生成核心层频域系数和扩展层频域系数各编码子带的幅值包络量化指数和幅值包络的编码比特;
所述核心层比特分配单元用于进行核心层的比特分配,得到核心层各编码子带的比特分配数;
所述核心层频域系数矢量量化和编码单元用于使用根据核心层各编码子带的量化指数重建的核心层各编码子带的量化幅值包络值和比特分配数对核心层各编码子带的频域系数进行归一化、矢量量化和编码,得到核心层频域系数的编码比特;
所述扩展层编码信号生成单元用于生成残差信号,得到由残差信号和扩展层频域系数构成的扩展层编码信号;
所述残差信号幅值包络生成单元用于根据核心层各编码子带的幅值包络量化指数与对应编码子带的比特分配数,得到残差信号相同编码子带的幅值包络量化指数;
所述扩展层比特分配单元用于根据残差信号编码子带幅值包络量化指数和扩展层频域系数子带幅值包络量化指数进行扩展层的比特分配,得到扩展层编码信号各编码子带的比特分配数;
所述扩展层编码信号矢量量化和编码单元用于使用根据扩展层各编码子带的幅值包络量化指数重建的扩展层各编码子带的量化幅值包络值和编码比特数对扩展层各编码子带的编码信号进行归一化、矢量量化和编码,得到扩展层编码信号矢量量化值的编码比特;
所述比特流复用器用于将核心层边信息比特、核心层各编码子带的幅值包络的编码比特、核心层频域系数的编码比特、扩展层边信息比特,扩展层频域系数各幅值包络的编码比特和扩展层编码信号的编码比特进行打包。
26.如权利要求25所述的系统,其特征在于,
所述扩展层编码信号生成单元还包括残差信号生成单元和扩展层编码信号合成单元;
所述残差信号生成单元用于对核心层频域系数的量化值进行反量化,并与核心层频域系数进行差计算,得到核心层残差信号;
所述扩展层编码信号合成单元用于将核心层残差信号和扩展层的频域系数按频带的顺序合成,得到扩展层的编码信号。
27.如权利要求25所述的系统,其特征在于,
所述残差信号幅值包络生成单元还包含量化指数修正值获取单元和残差信号幅值包络量化指数计算单元;
所述量化指数修正值获取单元用于根据核心层各编码子带比特分配数推算残差信号各子带的量化指数修正值,各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的编码比特数增加时不减,如果核心层的编码子带的比特分配数为0,则量化指数修正值为0,如果子带的比特分配数为所限定的最大比特分配数,则残差信号在该子带的幅值包络值为零;
所述残差信号幅值包络量化指数计算单元用于将核心层各编码子带的幅值包络量化指数与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数。
28.如权利要求25所述的系统,其特征在于,
所述比特流复用器将扩展层编码信号编码比特按照各编码子带重要性的初始值从大到小的顺序写入码流,对于具有相同重要性的编码子带,低频编码子带的编码比特优先写入码流。
29.一种可分层音频解码系统,该系统包括:比特流解复用器、核心层幅值包络解码单元、核心层比特分配单元、核心层解码和反量化单元;其特征在于,该系统还包括:扩展层幅值包络解码单元、残差信号幅值包络生成单元、扩展层比特分配单元、扩展层编码信号解码和反量化单元、频域系数生成单元、噪声填充单元和IMDCT单元;其中:
所述核心层幅值包络解码单元用于对所述比特流解复用器输出的核心层子带幅值包络编码比特进行解码,得到核心层各编码子带的幅值包络量化指数;
所述核心层比特分配单元用于进行核心层的比特分配,得到核心层各编码子带的比特分配数;
所述核心层解码和反量化单元用于根据核心层各编码子带的幅值包络量化指数计算得到核心层各编码子带的量化幅值包络值,使用核心层各编码子带的比特分配数和量化幅值包络值对所述比特流解复用器输出的核心层频域系数编码比特进行解码、反量化及反归一化处理,得到核心层的频域系数;
所述扩展层幅值包络解码单元用于对比特流解复用器输出的扩展层频域系数子带幅值包络编码比特进行解码,得到扩展层频域系数各编码子带的幅值包络量化指数;
所述核心层残差信号幅值包络生成单元用于根据核心层各编码子带的幅值包络量化指数与对应编码子带的比特分配数计算得到残差信号相同编码子带的幅值包络量化指数;
所述扩展层比特分配单元用于根据残差信号子带幅值包络量化指数和扩展层频域系数子带幅值包络量化指数进行扩展层的比特分配,得到扩展层编码信号各编码子带的比特分配数;
所述扩展层编码信号解码和反量化单元用于使用扩展层各编码子带的幅值包络量化指数计算得到扩展层各编码子带的量化幅值包络值,使用扩展层各编码子带的编码比特数和量化幅值包络值对所述比特流解复用器输出的扩展层编码信号的编码比特进行解码、反量化及反归一化处理,得到扩展层编码信号;
所述频域系数生成单元用于根据频带顺序对所述扩展层编码信号解码和反量化单元输出的扩展层的编码信号进行重新排序,然后与所述核心层解码和反量化单元输出的核心层频域系数做和计算,得到频域系数输出值;
所述噪声填充单元用于对编码过程中未分配编码比特的子带进行噪声填充;
IMDCT单元用于对进行了噪声填充后的全体频域系数进行IMDCT,得到输出的音频信号。
30.如权利要求29所述的系统,其特征在于,
所述残差信号幅值包络生成单元还包含量化指数修正值获取单元和残差信号幅值包络量化指数计算单元;
所述量化指数修正值获取单元用于根据核心层各子带比特分配数推算残差信号各子带的量化指数修正值,并根据对应编码子带频域系数的绝对值进行调整,其特征在于,各编码子带的量化指数修正值大于等于0,且当核心层对应编码子带的编码比特数增加时不减小,如果核心层的某个编码子带的比特分配数为0,则量化指数修正值为0,如果某个子带的比特分配数为所限定的最大比特分配数,则残差信号在该子带的幅值包络值为零;
所述残差信号幅值包络量化指数计算单元用于将核心层各编码子带的幅值包络量化指数与对应编码子带的量化指数修正值进行差计算,得到核心层残差信号各编码子带的幅值包络量化指数。
31.如权利要求29所述的系统,其特征在于,
所述扩展层编码信号解码和反量化单元对扩展层编码信号的各编码子带解码的顺序是根据各个编码子带重要性的初始值决定的,重要性大的编码子带优先解码,如果有两个编码子带具有相同的重要性,则低频编码子带优先解码,解码过程中计算已解码的比特数,当已解码的比特数满足总比特数要求时停止解码。
CN2009102498557A 2009-11-27 2009-11-27 一种可分层音频编码、解码方法及系统 Active CN102081927B (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN2009102498557A CN102081927B (zh) 2009-11-27 2009-11-27 一种可分层音频编码、解码方法及系统
RU2012119783/08A RU2509380C2 (ru) 2009-11-27 2010-10-26 Способ и устройство иерархического кодирования, декодирования аудио
EP10832601.8A EP2482052B1 (en) 2009-11-27 2010-10-26 Hierarchical audio coding / decoding method and system
BR112012012573-7A BR112012012573B1 (pt) 2009-11-27 2010-10-26 Método e sistema de codificação, decodificação hierárquicas de áudio
PCT/CN2010/078126 WO2011063694A1 (zh) 2009-11-27 2010-10-26 一种可分层音频编码、解码方法及系统
US13/505,064 US8694325B2 (en) 2009-11-27 2010-10-26 Hierarchical audio coding, decoding method and system
JP2012535611A JP5192099B2 (ja) 2009-11-27 2010-10-26 階層的オーディオ符号化、復号化方法及びシステム
HK12111842.3A HK1171079A1 (zh) 2009-11-27 2012-11-20 種可分層音頻編碼/解碼方法及系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102498557A CN102081927B (zh) 2009-11-27 2009-11-27 一种可分层音频编码、解码方法及系统

Publications (2)

Publication Number Publication Date
CN102081927A true CN102081927A (zh) 2011-06-01
CN102081927B CN102081927B (zh) 2012-07-18

Family

ID=44065854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102498557A Active CN102081927B (zh) 2009-11-27 2009-11-27 一种可分层音频编码、解码方法及系统

Country Status (8)

Country Link
US (1) US8694325B2 (zh)
EP (1) EP2482052B1 (zh)
JP (1) JP5192099B2 (zh)
CN (1) CN102081927B (zh)
BR (1) BR112012012573B1 (zh)
HK (1) HK1171079A1 (zh)
RU (1) RU2509380C2 (zh)
WO (1) WO2011063694A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104681028A (zh) * 2013-12-02 2015-06-03 华为技术有限公司 一种编码方法及装置
CN105340010A (zh) * 2013-06-10 2016-02-17 弗朗霍夫应用科学研究促进协会 用于通过应用分布量化和编码分裂音频信号包络的音频信号包络编码、处理和解码的装置和方法
CN105976824A (zh) * 2012-12-06 2016-09-28 华为技术有限公司 信号解码的方法和设备
CN105993178A (zh) * 2014-02-27 2016-10-05 瑞典爱立信有限公司 用于音频/视频采样矢量的棱椎矢量量化编索引和解索引的方法和装置
CN106463133A (zh) * 2014-03-24 2017-02-22 三星电子株式会社 高频带编码方法和装置,以及高频带解码方法和装置
CN106796798A (zh) * 2014-07-28 2017-05-31 弗劳恩霍夫应用研究促进协会 用于使用独立噪声填充生成增强信号的装置和方法
CN106782575A (zh) * 2011-06-01 2017-05-31 三星电子株式会社 音频编码方法和设备、音频解码方法和设备
CN107633847A (zh) * 2012-11-05 2018-01-26 松下电器(美国)知识产权公司 语音音响编码装置和语音音响编码方法
CN109509483A (zh) * 2013-01-29 2019-03-22 弗劳恩霍夫应用研究促进协会 产生频率增强音频信号的译码器和产生编码信号的编码器
CN110706715A (zh) * 2012-03-29 2020-01-17 华为技术有限公司 信号编码和解码的方法和设备
US10734008B2 (en) 2013-06-10 2020-08-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for audio signal envelope encoding, processing, and decoding by modelling a cumulative sum representation employing distribution quantization and coding
RU2744477C2 (ru) * 2012-03-29 2021-03-10 Телефонактиеболагет Л М Эрикссон (Пабл) Преобразующее кодирование/декодирование гармонических звуковых сигналов
CN115795067A (zh) * 2023-02-08 2023-03-14 济宁市质量计量检验检测研究院(济宁半导体及显示产品质量监督检验中心、济宁市纤维质量监测中心) 一种用于温度测量数据的存储方法
US11676614B2 (en) 2014-03-03 2023-06-13 Samsung Electronics Co., Ltd. Method and apparatus for high frequency decoding for bandwidth extension
WO2024179055A1 (zh) * 2023-02-28 2024-09-06 华为技术有限公司 音频编解码方法及相关装置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5850216B2 (ja) 2010-04-13 2016-02-03 ソニー株式会社 信号処理装置および方法、符号化装置および方法、復号装置および方法、並びにプログラム
JP5707842B2 (ja) 2010-10-15 2015-04-30 ソニー株式会社 符号化装置および方法、復号装置および方法、並びにプログラム
CA2827000C (en) 2011-02-14 2016-04-05 Jeremie Lecomte Apparatus and method for error concealment in low-delay unified speech and audio coding (usac)
PL3471092T3 (pl) 2011-02-14 2020-12-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekodowanie pozycji impulsów ścieżek sygnału audio
SG192746A1 (en) 2011-02-14 2013-09-30 Fraunhofer Ges Forschung Apparatus and method for processing a decoded audio signal in a spectral domain
AU2012217216B2 (en) 2011-02-14 2015-09-17 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding a portion of an audio signal using a transient detection and a quality result
AU2012217153B2 (en) 2011-02-14 2015-07-16 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for encoding and decoding an audio signal using an aligned look-ahead portion
CN102959620B (zh) 2011-02-14 2015-05-13 弗兰霍菲尔运输应用研究公司 利用重迭变换的信息信号表示
ES2534972T3 (es) 2011-02-14 2015-04-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Predicción lineal basada en esquema de codificación utilizando conformación de ruido de dominio espectral
CN103534754B (zh) * 2011-02-14 2015-09-30 弗兰霍菲尔运输应用研究公司 在不活动阶段期间利用噪声合成的音频编解码器
MY159444A (en) 2011-02-14 2017-01-13 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V Encoding and decoding of pulse positions of tracks of an audio signal
EP2772912B1 (en) * 2011-10-28 2016-08-10 Panasonic Intellectual Property Corporation of America Audio encoding apparatus, audio decoding apparatus, audio encoding method, and audio decoding method
WO2013118476A1 (ja) * 2012-02-10 2013-08-15 パナソニック株式会社 音響/音声符号化装置、音響/音声復号装置、音響/音声符号化方法および音響/音声復号方法
KR101398189B1 (ko) * 2012-03-27 2014-05-22 광주과학기술원 음성수신장치 및 음성수신방법
KR102200643B1 (ko) * 2012-12-13 2021-01-08 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 음성 음향 부호화 장치, 음성 음향 복호 장치, 음성 음향 부호화 방법 및 음성 음향 복호 방법
CN110827841B (zh) 2013-01-29 2023-11-28 弗劳恩霍夫应用研究促进协会 音频解码器
US9560386B2 (en) * 2013-02-21 2017-01-31 Mozilla Corporation Pyramid vector quantization for video coding
US9940942B2 (en) * 2013-04-05 2018-04-10 Dolby International Ab Advanced quantizer
CN104103276B (zh) * 2013-04-12 2017-04-12 北京天籁传音数字技术有限公司 一种声音编解码装置及其方法
US9665541B2 (en) 2013-04-25 2017-05-30 Mozilla Corporation Encoding video data using reversible integer approximations of orthonormal transforms
CN108198564B (zh) 2013-07-01 2021-02-26 华为技术有限公司 信号编码和解码方法以及设备
EP2830061A1 (en) 2013-07-22 2015-01-28 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an encoded audio signal using temporal noise/patch shaping
EP2830060A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Noise filling in multichannel audio coding
AU2014371411A1 (en) 2013-12-27 2016-06-23 Sony Corporation Decoding device, method, and program
US9564136B2 (en) * 2014-03-06 2017-02-07 Dts, Inc. Post-encoding bitrate reduction of multiple object audio
CN105096957B (zh) 2014-04-29 2016-09-14 华为技术有限公司 处理信号的方法及设备
JPWO2016052191A1 (ja) * 2014-09-30 2017-07-20 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
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
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
US10580424B2 (en) 2018-06-01 2020-03-03 Qualcomm Incorporated Perceptual audio coding as sequential decision-making problems
US10734006B2 (en) 2018-06-01 2020-08-04 Qualcomm Incorporated Audio coding based on audio pattern recognition
CN113113032B (zh) * 2020-01-10 2024-08-09 华为技术有限公司 一种音频编解码方法和音频编解码设备
WO2022104588A1 (en) * 2020-11-18 2022-05-27 Qualcomm Incorporated Subband level constellation shaping

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289308B1 (en) * 1990-06-01 2001-09-11 U.S. Philips Corporation Encoded wideband digital transmission signal and record carrier recorded with such a signal
US5684920A (en) * 1994-03-17 1997-11-04 Nippon Telegraph And Telephone Acoustic signal transform coding method and decoding method having a high efficiency envelope flattening method therein
RU2214047C2 (ru) * 1997-11-19 2003-10-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для масштабируемого кодирования/декодирования аудиосигналов
DE69926821T2 (de) * 1998-01-22 2007-12-06 Deutsche Telekom Ag Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
CN100346392C (zh) * 2002-04-26 2007-10-31 松下电器产业株式会社 编码设备、解码设备、编码方法和解码方法
KR101000345B1 (ko) * 2003-04-30 2010-12-13 파나소닉 주식회사 음성 부호화 장치, 음성 복호화 장치 및 그 방법
US8526412B2 (en) * 2003-10-24 2013-09-03 Qualcomm Incorporated Frequency division multiplexing of multiple data streams in a wireless multi-carrier communication system
ATE403217T1 (de) * 2004-04-28 2008-08-15 Matsushita Electric Ind Co Ltd Hierarchische kodierungsanordnung und hierarchisches kodierungsverfahren
EP1939862B1 (en) * 2004-05-19 2016-10-05 Panasonic Intellectual Property Corporation of America Encoding device, decoding device, and method thereof
EP1806737A4 (en) 2004-10-27 2010-08-04 Panasonic Corp TONE CODIER AND TONE CODING METHOD
ES2476992T3 (es) * 2004-11-05 2014-07-15 Panasonic Corporation Codificador, descodificador, método de codificación y método de descodificaci�n
US8265929B2 (en) 2004-12-08 2012-09-11 Electronics And Telecommunications Research Institute Embedded code-excited linear prediction speech coding and decoding apparatus and method
US7937272B2 (en) * 2005-01-11 2011-05-03 Koninklijke Philips Electronics N.V. Scalable encoding/decoding of audio signals
FR2888699A1 (fr) * 2005-07-13 2007-01-19 France Telecom Dispositif de codage/decodage hierachique
EP1912206B1 (en) * 2005-08-31 2013-01-09 Panasonic Corporation Stereo encoding device, stereo decoding device, and stereo encoding method
KR100738077B1 (ko) * 2005-09-28 2007-07-12 삼성전자주식회사 계층적 오디오 부호화 및 복호화 장치와 방법
WO2007043642A1 (ja) * 2005-10-14 2007-04-19 Matsushita Electric Industrial Co., Ltd. スケーラブル符号化装置、スケーラブル復号装置、およびこれらの方法
US7835904B2 (en) * 2006-03-03 2010-11-16 Microsoft Corp. Perceptual, scalable audio compression
US8306827B2 (en) * 2006-03-10 2012-11-06 Panasonic Corporation Coding device and coding method with high layer coding based on lower layer coding results
FR2898443A1 (fr) * 2006-03-13 2007-09-14 France Telecom Procede de codage d'un signal audio source, dispositif de codage, procede et dispositif de decodage, signal, produits programme d'ordinateur correspondants
BRPI0721079A2 (pt) * 2006-12-13 2014-07-01 Panasonic Corp Dispositivo de codificação, dispositivo de decodificação e método dos mesmos
CN101206860A (zh) * 2006-12-20 2008-06-25 华为技术有限公司 一种可分层音频编解码方法及装置
JP4871894B2 (ja) 2007-03-02 2012-02-08 パナソニック株式会社 符号化装置、復号装置、符号化方法および復号方法
PT2186089T (pt) * 2007-08-27 2019-01-10 Ericsson Telefon Ab L M Método e dispositivo para descodificação espetral percetual de um sinal áudio que inclui preenchimento de buracos espetrais
KR101449431B1 (ko) * 2007-10-09 2014-10-14 삼성전자주식회사 계층형 광대역 오디오 신호의 부호화 방법 및 장치
CN101562015A (zh) 2008-04-18 2009-10-21 华为技术有限公司 音频处理方法及装置
CN101521014B (zh) * 2009-04-08 2011-09-14 武汉大学 音频带宽扩展编解码装置
US20130030796A1 (en) * 2010-01-14 2013-01-31 Panasonic Corporation Audio encoding apparatus and audio encoding method
WO2011156905A2 (en) * 2010-06-17 2011-12-22 Voiceage Corporation Multi-rate algebraic vector quantization with supplemental coding of missing spectrum sub-bands

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106782575A (zh) * 2011-06-01 2017-05-31 三星电子株式会社 音频编码方法和设备、音频解码方法和设备
US11264041B2 (en) 2012-03-29 2022-03-01 Telefonaktiebolaget Lm Ericsson (Publ) Transform encoding/decoding of harmonic audio signals
RU2744477C2 (ru) * 2012-03-29 2021-03-10 Телефонактиеболагет Л М Эрикссон (Пабл) Преобразующее кодирование/декодирование гармонических звуковых сигналов
CN110706715B (zh) * 2012-03-29 2022-05-24 华为技术有限公司 信号编码和解码的方法和设备
US12027175B2 (en) 2012-03-29 2024-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Transform encoding/decoding of harmonic audio signals
CN110706715A (zh) * 2012-03-29 2020-01-17 华为技术有限公司 信号编码和解码的方法和设备
CN107633847B (zh) * 2012-11-05 2020-09-25 松下电器(美国)知识产权公司 语音音响编码装置和语音音响编码方法
CN107633847A (zh) * 2012-11-05 2018-01-26 松下电器(美国)知识产权公司 语音音响编码装置和语音音响编码方法
US11610592B2 (en) 2012-12-06 2023-03-21 Huawei Technologies Co., Ltd. Method and device for decoding signal
US10971162B2 (en) 2012-12-06 2021-04-06 Huawei Technologies Co., Ltd. Method and device for decoding signal
CN105976824A (zh) * 2012-12-06 2016-09-28 华为技术有限公司 信号解码的方法和设备
CN109509483B (zh) * 2013-01-29 2023-11-14 弗劳恩霍夫应用研究促进协会 产生频率增强音频信号的译码器和产生编码信号的编码器
CN109509483A (zh) * 2013-01-29 2019-03-22 弗劳恩霍夫应用研究促进协会 产生频率增强音频信号的译码器和产生编码信号的编码器
CN105340010B (zh) * 2013-06-10 2019-06-04 弗朗霍夫应用科学研究促进协会 用于通过应用分布量化和编码分裂音频信号包络的音频信号包络编码、处理和解码的装置和方法
US10734008B2 (en) 2013-06-10 2020-08-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for audio signal envelope encoding, processing, and decoding by modelling a cumulative sum representation employing distribution quantization and coding
US10115406B2 (en) 2013-06-10 2018-10-30 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V Apparatus and method for audio signal envelope encoding, processing, and decoding by splitting the audio signal envelope employing distribution quantization and coding
CN105340010A (zh) * 2013-06-10 2016-02-17 弗朗霍夫应用科学研究促进协会 用于通过应用分布量化和编码分裂音频信号包络的音频信号包络编码、处理和解码的装置和方法
US10347257B2 (en) 2013-12-02 2019-07-09 Huawei Technologies Co., Ltd. Encoding method and apparatus
US9754594B2 (en) 2013-12-02 2017-09-05 Huawei Technologies Co., Ltd. Encoding method and apparatus
CN104681028A (zh) * 2013-12-02 2015-06-03 华为技术有限公司 一种编码方法及装置
US11289102B2 (en) 2013-12-02 2022-03-29 Huawei Technologies Co., Ltd. Encoding method and apparatus
CN105993178B (zh) * 2014-02-27 2019-03-29 瑞典爱立信有限公司 用于音频/视频采样矢量的棱椎矢量量化编索引和解索引的方法和装置
CN105993178A (zh) * 2014-02-27 2016-10-05 瑞典爱立信有限公司 用于音频/视频采样矢量的棱椎矢量量化编索引和解索引的方法和装置
US11676614B2 (en) 2014-03-03 2023-06-13 Samsung Electronics Co., Ltd. Method and apparatus for high frequency decoding for bandwidth extension
CN106463133B (zh) * 2014-03-24 2020-03-24 三星电子株式会社 高频带编码方法和装置,以及高频带解码方法和装置
US10909993B2 (en) 2014-03-24 2021-02-02 Samsung Electronics Co., Ltd. High-band encoding method and device, and high-band decoding method and device
US10468035B2 (en) 2014-03-24 2019-11-05 Samsung Electronics Co., Ltd. High-band encoding method and device, and high-band decoding method and device
US11688406B2 (en) 2014-03-24 2023-06-27 Samsung Electronics Co., Ltd. High-band encoding method and device, and high-band decoding method and device
CN106463133A (zh) * 2014-03-24 2017-02-22 三星电子株式会社 高频带编码方法和装置,以及高频带解码方法和装置
US11264042B2 (en) 2014-07-28 2022-03-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for generating an enhanced signal using independent noise-filling information which comprises energy information and is included in an input signal
US10885924B2 (en) 2014-07-28 2021-01-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for generating an enhanced signal using independent noise-filling
CN106796798A (zh) * 2014-07-28 2017-05-31 弗劳恩霍夫应用研究促进协会 用于使用独立噪声填充生成增强信号的装置和方法
US11908484B2 (en) 2014-07-28 2024-02-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for generating an enhanced signal using independent noise-filling at random values and scaling thereupon
CN115795067A (zh) * 2023-02-08 2023-03-14 济宁市质量计量检验检测研究院(济宁半导体及显示产品质量监督检验中心、济宁市纤维质量监测中心) 一种用于温度测量数据的存储方法
WO2024179055A1 (zh) * 2023-02-28 2024-09-06 华为技术有限公司 音频编解码方法及相关装置

Also Published As

Publication number Publication date
EP2482052A1 (en) 2012-08-01
EP2482052A4 (en) 2013-04-24
WO2011063694A1 (zh) 2011-06-03
RU2012119783A (ru) 2014-01-10
US8694325B2 (en) 2014-04-08
BR112012012573A2 (pt) 2020-12-01
US20120226505A1 (en) 2012-09-06
JP5192099B2 (ja) 2013-05-08
CN102081927B (zh) 2012-07-18
BR112012012573B1 (pt) 2021-10-19
RU2509380C2 (ru) 2014-03-10
HK1171079A1 (zh) 2013-03-15
JP2013511054A (ja) 2013-03-28
EP2482052B1 (en) 2014-07-16

Similar Documents

Publication Publication Date Title
CN102081927B (zh) 一种可分层音频编码、解码方法及系统
CN102222505B (zh) 可分层音频编解码方法系统及瞬态信号可分层编解码方法
EP2472241B1 (en) Audio encoding/decoding method and system of lattice-type vector quantizing
TWI605448B (zh) 產生帶寬延伸訊號的裝置
JP6600054B2 (ja) 方法、符号化器、復号化器、及び移動体機器
US20120232913A1 (en) Methods and systems for bit allocation and partitioning in gain-shape vector quantization for audio coding
CN102208188A (zh) 音频信号编解码方法和设备
CN102918590B (zh) 编码方法和装置、以及解码方法和装置
JP5629319B2 (ja) スペクトル係数コーディングの量子化パラメータを効率的に符号化する装置及び方法
CN101308657B (zh) 一种基于先进音频编码器的码流合成方法
Hansen et al. Fine-grain scalable audio coding based on envelope restoration and the SPIHT algorithm
KR20160098597A (ko) 통신 시스템에서 신호 코덱 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant