CN102081926A - 格型矢量量化音频编解码方法和*** - Google Patents

格型矢量量化音频编解码方法和*** Download PDF

Info

Publication number
CN102081926A
CN102081926A CN2009102498542A CN200910249854A CN102081926A CN 102081926 A CN102081926 A CN 102081926A CN 2009102498542 A CN2009102498542 A CN 2009102498542A CN 200910249854 A CN200910249854 A CN 200910249854A CN 102081926 A CN102081926 A CN 102081926A
Authority
CN
China
Prior art keywords
bit
coding
subband
vector
discrete
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
CN2009102498542A
Other languages
English (en)
Other versions
CN102081926B (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 CN2009102498542A priority Critical patent/CN102081926B/zh
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to US13/499,534 priority patent/US9015052B2/en
Priority to PCT/CN2010/001597 priority patent/WO2011063594A1/zh
Priority to EP10832501.0A priority patent/EP2472241B1/en
Priority to BR112012009714-8A priority patent/BR112012009714B1/pt
Priority to RU2012116045/08A priority patent/RU2506698C9/ru
Publication of CN102081926A publication Critical patent/CN102081926A/zh
Priority to HK11112697.8A priority patent/HK1158354A1/xx
Application granted granted Critical
Publication of CN102081926B publication Critical patent/CN102081926B/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/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/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • 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/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • 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/70Type of the data to be coded, other than image and sound
    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation

Landscapes

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

Abstract

本发明格型矢量量化音频编码方法包括:将音频信号经过MDCT变换后的频域系数划分为若干个编码子带,并对各编码子带的幅值包络值进行量化和编码,得到幅值包络的编码比特;对各编码子带进行比特分配,并对低比特编码子带和高比特编码子带中的矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行归一化、量化和编码,得到频域系数的编码比特;将各编码子带的幅值包络的编码比特和频域系数的编码比特复用打包后,传送给解码端。本发明格型矢量量化音频编解码方法和***,以获得较好的语音信源编码效果。

Description

格型矢量量化音频编解码方法和***
技术领域
本发明涉及一种音频编解码技术,尤其是一种格型矢量量化音频编解码方法和***。
背景技术
音频编码技术是诸如数字音频广播、互联网的传播音乐和音频通讯等多媒体应用技术的核心,这些应用会极大地受益于音频编码器压缩性能的提高。感知音频编码器作为有损变换域编码的一种,是现代的主流音频编码器。现有音频编解码器如MPEG 4AAC等采用非均匀标量量化方式进行变换域音频编解码,运算复杂度较高,压缩能力不强;基于传统的统计型矢量量化器(如用LBG算法设计的矢量量化器)具有很强的压缩能力,因而在音视频压缩领域得到了广泛应用,但是量化器运算复杂度随维数呈指数关系增长,并且用聚类算法对训练序列进行训练得到的码本通常不是全局最佳的。近年来出现一种新的音频编解码矢量量化器,也就是格型矢量量化,格型矢量量化器是以空间网格中的格点作为矢量量化器来对信号进行量化。由于空间格点是有规律的,其码本可以通过代数方法构造仅占用很少的存储空间,并且格型矢量量化具有运算复杂度低、量化精度高的优点。然而现有的基于格型矢量量化的音频编解码器(如G.719等)在编解码码本选择上采用了球型网格,其码本截断方式仅仅适用于均匀分布和高斯分布的信源,而针对于语音这种拉普拉斯分布的信源来说编码效果不好;同时现有的格型矢量量化器(如G.719)在编码过程中比特步长为整数个比特(如一个比特),低比特分配时步长过长,造成比特分配过于集中而不能更加有效地使用有限的比特;另外该编解码器的单个比特的网格码本占用过多的存储空间。
发明内容
本发明要解决的技术问题是提供一种格型矢量量化音频编解码方法和***,以获得较好的语音信源编码效果。
为解决以上技术问题,本发明提供一种格型矢量量化音频编码方法,该方法包括:
将音频信号经过修正离散余弦逆变换(MDCT)变换后的频域系数划分为若干个编码子带,并对各编码子带的幅值包络值进行量化和编码,得到幅值包络的编码比特;
对各编码子带进行比特分配,并对低比特编码子带和高比特编码子带中的矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行归一化、量化和编码,得到频域系数的编码比特,其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
将各编码子带的幅值包络的编码比特和频域系数的编码比特复用打包后,传送给解码端。
进一步地,划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
进一步地,对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
进一步地,所述重要性初始值是根据最大量化信噪比增益条件下的最佳比特值和符合人耳感知特性的比例因子计算的,或者是各编码子带幅值包络的量化指数Thq(j)或
Figure B2009102498542D0000021
其中μ>0,μ和v均为实数。
进一步地,对各编码子带进行比特分配的过程包括:
计算单个频域系数的比特消耗平均值;
根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;
计算各编码子带在比特分配中的重要性初始值;
根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
进一步地,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
进一步地,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
进一步地,对所述低比特编码子带进行塔型格型矢量量化的过程包括:
使用编码子带的量化幅值包络值对该编码子带中所有频域系数进行归一化处理,并分组形成若干个8维待量化矢量;对各待量化矢量进行量化的过程包括以下步骤:;
对编码子带中的8维待量化矢量进行能量规整,将能量规整后的8维待量化矢量量化到D8格点;
将通过量化得到的D8格点的能量和编码码本中的最大塔面能量半径进行比较,如果小于或等于最大塔面能量半径,则计算所述D8格点在码本中的量化索引;如果大于最大塔面能量半径,则将该编码子带规整后的待量化矢量进行能量截断,直至能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径,同时对能量截断后的待量化矢量持续增加其自身的一个小能量,直至其量化到的D8格点的能量超过最大塔面能量半径,确定最后一个能量不超过最大塔面能量半径的D8格点为矢量量化格点并计算其在码本中的量化索引。
进一步地,对所述8维待量化矢量进行能量规整时,先根据所述8维待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),从下表中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
Y ~ j , scale m = ( Y j m - a ) * scale ( index )
其中,
Figure B2009102498542D0000042
表示编码子带j中第m个归一化后的待量化8维矢量,
Figure B2009102498542D0000043
表示对
Figure B2009102498542D0000044
进行能量规整后的8维矢量,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6);
Figure B2009102498542D0000045
对规整后的矢量进行格点量化时,采用以下公式将能量规整后的8维矢量
Figure B2009102498542D0000046
量化到D8格点
Figure B2009102498542D0000047
上:
Y ~ j m = f D 8 ( Y ~ j , scale m )
其中,
Figure B2009102498542D0000049
表示将某个8维矢量映射到D8格点的量化算子;
进一步地,对所述高比特编码子带进行球型格型矢量量化的过程:
使用编码子带的量化幅值包络值对该子带中所有频域系数进行归一化处理,并分组形成若干个多维待量化矢量;对各待量化矢量进行量化的过程包括以下步骤:
对编码子带中的8维待量化矢量进行能量规整,将能量规整后的8维矢量量化到D8格点;
将通过矢量量化得到的D8格点值除以2的比特分配数次方2region_bit(j)后再量化到D8格点,判断再量化的D8格点值是否是零矢量,如果是则称为零矢量条件满足,否则称为零矢量条件不满足,其中region_bit(j)表示第j个编码子带中单个频域系数所分配到的比特数;
如果零矢量条件满足,则计算所述D8格点的索引矢量;
如果零矢量条件不满足,则将待量化矢量的值进行截断,直至零矢量条件满足,备份待量化矢量自身的小倍数值w,对能量截断后的待量化矢量加上备份的小倍数值w,然后再量化到D8格点,判断零矢量条件是否满足,如果零矢量条件不满足,则计算最近满足零矢量条件的D8格点的索引矢量k,否则继续对待量化矢量增加备份的小倍数值w,然后再量化到D8格点,直至零矢量条件不满足。
进一步地,
对低比特编码子带使用塔型格型矢量量化得到的量化索引进行编码的过程包括:
对所有低比特编码子带的量化索引进行霍夫曼编码;
若所有低比特编码子带的量化索引经过霍夫曼编码后所消耗比特的总数小于所有低比特编码子带的量化索引的自然编码所需要的比特数总和,则使用霍夫曼编码并设置频域系数霍夫曼编码标识为1或true,利用霍夫曼编码节省下来的比特对编码子带的比特分配数进行修正,以及对修正了比特分配数的编码子带再次进行矢量量化和编码;否则重新对量化索引进行自然编码,并设置频域系数霍夫曼编码标识为0或false。
进一步地,利用霍夫曼编码节省下来的比特对编码子带的比特分配数进行修正的过程如下:
计算霍夫曼编码所节省的比特数;
在所有编码子带中寻找重要性最大的编码子带,如果该编码子带所分配的比特数已经达到可能分配给与的最大值,则将该编码子带的重要性调整到最低,不再对该编码子带修正比特分配数,否则对该重要性最大的编码子带进行比特分配修正;
在比特分配修正过程中,对比特分配数为0的编码子带分配1个比特,比特分配后重要性降低1;对比特分配数大于0且小于5的编码子带分配0.5个比特,比特分配后重要性降低0.5;对比特分配数大于5的编码子带分配1个比特,比特分配后重要性降低1。
进一步地,比特分配数每修正1次,即将比特分配修正迭代次数count加1,当比特分配修正迭代次数count达到预设上限值或能够使用的比特数小于比特分配修正所需要的比特数时,比特分配修正流程结束。
进一步地,编码后的比特复用打包的顺序依次为幅值包络霍夫曼编码标识、频域系数霍夫曼编码标识、比特分配修正迭代次数、幅值包络的编码比特、频域系数的编码比特。
进一步地,对所有低比特编码子带的量化索引进行霍夫曼编码时,根据编码子带中单个频域系数所分配到的比特数,对编码子带的矢量量化索引使用不同的码本进行编码;
为解决以上技术问题,本发明还提供了一种格型矢量量化音频解码方法,该方法包括:
对待解码比特流中各幅值包络编码比特进行解码,得到各编码子带的幅值包络量化指数;
对各编码子带进行比特分配,并对低比特编码子带进行解码、塔型格型矢量量化的反量化及反归一化,以及对高比特编码子带进行解码、球型格型矢量量化的反量化及反归一化,得到低比特编码子带和高比特编码子带的频域系数;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于预设阈值的编码子带;
对噪声填充后的频域系数进行修正离散余弦逆变换(IMDCT),得到最终的音频信号。
进一步地,对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
进一步地,在进行比特分配之后,解码之前,根据编码端的比特分配修正迭代次数count值和各编码子带的重要性,对编码子带再进行count次比特分配修正。
进一步地,进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长;
比特分配修正时,低比特编码子带的比特修正步长及比特修正后的重要性降低步长小于零比特编码子带和高比特编码子带的比特修正步长及比特修正后的重要性降低步长。
进一步地,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
进一步地,对低比特编码子带解码时,根据编码端的频域系数霍夫曼编码标识对低比特编码子带进行霍夫曼解码或直接解码得到低比特编码子带的矢量量化索引,对所有矢量量化索引进行塔型格型矢量量化的反量化及反归一化,得到该编码子带的频域系数;对高比特编码子带解码时,直接采用自然解码得到高比特编码子带的矢量量化索引,对所有矢量量化索引进行球型格型矢量量化的反量化及反归一化,得到该编码子带的频域系数。
为解决以上技术问题,本发明还提供了一种格型矢量量化音频编码***,该***包括修正离散余弦变换(MDCT)单元、幅值包络计算单元、幅值包络量化和编码单元、比特分配单元、归一化处理单元、分类格型矢量量化和编码单元;其中:
所述MDCT单元,用于对音频信号进行修正离散余弦变换生成频域系数;
所述幅值包络计算单元,与所述MDCT单元连接,用于将所述MDCT生成的频域系数划分为若干个编码子带,并计算各编码子带的幅值包络值;
所述幅值包络量化和编码单元,与所述幅值包络计算单元连接,用于将各编码子带的幅值包络值进行量化和编码,生成各编码子带幅值包络的编码比特;
所述比特分配单元,与所述幅值包络量化和编码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
归一化处理单元,与MDCT单元连接,用于使用编码子带的量化幅值包络值对各编码子带中所有频域系数进行归一化处理;
所述分类格型矢量量化和编码单元,与所述归一化处理单元及比特分配单元连接,用于对低比特编码子带和高比特编码子带中的归一化后的待量化矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到频域系数的编码比特;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
比特流复用器,与所述幅值包络量化和编码单元以及分类格型矢量量化和编码单元连接,用于将各编码子带的编码比特以及频域系数的编码比特复用并发送到解码端。
进一步地,所述幅值包络计算单元划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
进一步地,所述比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
进一步地,所述重要性初始值是根据最大量化信噪比增益条件下的最佳比特值和符合人耳感知特性的比例因子计算的,或者是各编码子带幅值包络的量化指数Thq(j)或
Figure B2009102498542D0000091
其中μ>0,μ和v均为实数。
进一步地,所述重要性计算模块中计算所述重要性初始值时,先计算单个频域系数的比特消耗平均值;再根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;之后再根据所述比特消耗平均值及最佳比特值计算各编码子带在比特分配中的重要性初始值;
所述比特分配模块根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
进一步地,所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
进一步地,所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
进一步地,所述分类格型矢量量化和编码单元包括分类处理模块及塔型格型矢量量化模块,其中:
所述分类处理模块,与所述归一化处理单元连接,用于对归一化后的频域系数进行分组形成8维待量化矢量,将低比特编码子带归一化后的待量化矢量转给塔型格型矢量量化器,将高比特编码子带归一化后的待量化矢量转给球型格型矢量量化器;
塔型格型矢量量化模块,与所述分类处理模块连接,用于对各低比特编码子带归一化处理后的待量化矢量进行塔型格型矢量量化,包括能量规整子模块、格点量化子模块、能量调整子模块及量化索引计算子模块,其中:
所述能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;
所述格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
所述能量调整子模块,与所述格点量化子模块连接,用于将D8格点的能量和编码码本中的最大塔面能量半径进行比较,如果小于或等于最大塔面能量半径,则通知所述量化索引计算子模块计算所述D8格点在码本中的量化索引;如果大于最大塔面能量半径,还用于将该编码子带规整后的待量化矢量进行能量截断,并通知所述格点量化子模块将能量截断,直至能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径,同时对能量截断后的待量化矢量持续增加其自身的一个小能量,并通知所述格点量化子模块将增加小能量后的待量化矢量量化到D8格点,直至其量化到的D8格点的能量超过最大塔面能量半径,还用于通知量化索引计算子模块计算最后一个能量不超过最大塔面能量半径的D8格点在码本中的量化索引;
索引量化计算模块,与所述能量调整子模块连接,用于根据能量调整子模块的通知计算所述D8格点在码本中的量化索引。
进一步地,所述分类格型矢量量化和编码单元还包括与所述分类处理模块连接的球型格型矢量量化模块,所述分类处理模块还用于将高比特编码子带归一化处理后的待量化矢量转给球型格型矢量量化模块处理;所述球型格型矢量量化模块用于对高比特编码子带归一化处理后的待量化矢量进行球型格型矢量量化,包括能量规整子模块、格点量化子模块、零矢量条件判断子模块、能量调整子模块及索引矢量计算子模块,其中:
所述能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;
所述格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
零矢量条件判断子模块,与所述格点量化子模块连接,用于判断所述D8格点是否满足零矢量条件,具体包括,能量规整后的格点满足零矢量条件时,通知索引矢量计算子模块计算所述格点的索引矢量;能量规整后的格点不满足零矢量条件时,通知所述能量调整子模块对待量化矢量的能量进行调整;所述零矢量条件是指将通过矢量量化得到的D8格点值除以2的比特分配数次方2region_bit(j)后再投影到D8格点,投影后的D8格点值是零矢量,其中region_bit(j)表示第j个编码子带中单个频域系数所分配到的比特数;
所述能量调整子模块,与所述零矢量条件判断子模块及格点量化子模块连接,用于将待量化矢量的值进行截断,并通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件满足;还用于备份待量化矢量自身的小倍数值w,对能量截断后的待量化矢量加上备份的小倍数值w,以及通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件不满足,还用于通知索引矢量计算子模块计算最近满足零矢量条件的D8格点的索引矢量;
所述索引矢量计算子模块,用于与所述零矢量条件判断子模块及能量调整子模块连接,用于根据零矢量条件判断子模块及能量调整子模块的通知计算所述D8格点在码本中的量化索引。
进一步地,所述分类格型矢量量化和编码单元还包括编码类型判断模块、霍夫曼编码模块、自然编码模块及比特分配修正模块,其中:
编码类型判断模块,用于判断所有低比特编码子带的量化索引经过霍夫曼编码后所消耗比特的总数是否小于所有低比特编码子带的量化索引自然编码所需要的比特数总数,如果是,则通知霍夫曼编码模块及比特分配修正模块;否则通知自然编码模块;
霍夫曼编码模块,用于对低比特编码子带的量化索引进行霍夫曼编码,并设置频域系数霍夫曼编码标识为1或true;
自然编码模块,用于对低比特编码子带的量化索引及高比特编码子带的索引矢量进行自然编码;
所述比特分配修正模块,用于利用霍夫曼编码节省下来的比特对编码子带的比特分配数进行修正,以及通知所述分类处理模块对修正了比特分配数的编码子带分类后,再次进行矢量量化和编码。
进一步地,所述比特分配修正模块进行比特分配时,在所有编码子带中寻找重要性最大的编码子带,如果该编码子带所分配的比特数已经达到可能分配给与的最大值,则将该编码子带的重要性调整到最低,不再对该编码子带修正比特分配数,否则对该重要性最大的编码子带进行比特分配修正;
在比特分配修正过程中,对比特分配数为0的编码子带分配1个比特,比特分配后重要性降低1;对比特分配数大于0且小于5的编码子带分配0.5个比特,比特分配后重要性降低0.5;对比特分配数大于5的编码子带分配1个比特,比特分配后重要性降低1。
进一步地,所述比特分配修正模块每修正一次比特分配数,即将比特分配修正迭代次数count加1,当比特分配修正迭代次数count达到预设上限值或能够使用的比特数小于比特分配修正所需要的比特数时,结束比特分配修正流程。
进一步地,所述比特流复用器对编码后的比特复用打包的顺序依次为幅值包络霍夫曼编码标识、频域系数霍夫曼编码标识、比特分配修正迭代次数、幅值包络的编码比特、频域系数的编码比特。
进一步地,所述霍夫曼编码模块对所有低比特编码子带的量化索引进行霍夫曼编码时,根据编码子带中单个频域系数所分配到的比特数,对编码子带的矢量量化索引使用不同的码本进行编码。
为解决以上技术问题,本发明还提供了一种格型矢量量化音频解码***,该***包括比特流解复用器、编码子带幅值包络解码单元、比特分配单元、频域系数解码单元;分类格型矢量量化反量化单元、反归一化处理单元、噪声填充单元、修正离散余弦逆变换(IMDCT)单元,其中:
比特流解复用器,用于从待解码比特流中分离出幅值包络编码比特、频域系数编码比特;
所述幅值包络解码单元,与所述比特流解复用器连接,用于对所述比特流解复用器输出的幅值包络的编码比特进行解码,得到各编码子带的幅值包络量化指数;
所述比特分配单元,与所述幅值包络解码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
频域系数解码单元,与幅值包络解码单元和比特分配单元连接,用于对低比特编码子带解码,得到低比特编码子带的量化索引;以及对高比特编码子带进行解码得到高比特编码子带的索引矢量,其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
分类格型矢量量化反量化单元,用于对低比特编码子带的量化索引进行塔型格型矢量量化反量化,以及对高比特编码子带的索引矢量进行球型格型矢量量化反量化;
反归一化处理单元,用于对编码子带反量化后的值进行反归一化,得到频域系数;
噪声填充单元,用于对频域系数生成单元输出的频域系数输出值中未分配比特的子带进行噪声填充;
修正离散余弦逆变换(IMDCT)单元,与所述噪声填充单元连接,用于对噪声填充后的频域系数进行IMDCT,得到音频信号。
进一步地,所述比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
进一步地,所述比特分配单元,还包括与所述比特分配模块连接的比特分配修正模块,用于在进行比特分配之后,根据编码端的比特分配修正迭代次数count值和各编码子带的重要性,对编码子带再进行count次比特分配修正。
进一步地,所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
所述比特分配修正模块进行比特分配修正时,低比特编码子带的比特分配修正步长及比特分配修正后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配修正步长及比特分配修正后的重要性降低步长。
进一步地,所述频域系数解码单元,对低比特编码子带解码时,根据编码端的频域系数霍夫曼编码标识对低比特编码子带进行霍夫曼解码或进行自然解码得到低比特编码子带的矢量量化索引;对高比特编码子带解码时,直接进行自然解码得到高比特编码子带的矢量量化索引。
本发明格型矢量量化音频编解码方法和***充分考虑语音信源的分布特性,采用一种融合型格型矢量量化方式对待量化矢量进行量化,具体根据编码子带的比特分配数,对低比特编码子带和高比特编码子带分别使用塔型格型矢量量化方式和球型格型矢量量化方式,并在解码时采用编码的逆过程,从而获得较好的音频信源编码效果。另外,在比特分配时采用了变步长的比特分配方式,单个频域系数的比特分配步长最低可以调整为半个比特,提高了比特的使用效率。同时设计出低比特步长的塔型格型矢量量化器,其格点标号算法复杂度低,也减少存储空间,另外在高比特编码子带的球型格型矢量量化中,在码本扩展标号上采用新的判别准则,可进一步降低格型矢量量化器的算法复杂度。在编码过程中还设计出了节省比特的算法。
附图说明
图1是本发明格型矢量量化音频编码方法示意图。
图2是本发明格型矢量量化过程示意图。
图3是本发明比特分配修正过程示意图。
图4是本发明格型矢量量化音频解码方法示意图。
图5是本发明格型矢量量化音频编码***的结构示意图。
图6是本发明编码***的分类格型矢量量化和编码单元的模块结构示意图。
图7是本发明格型矢量量化音频解码***的结构示意图。
图8是本发明解码***的分类格型矢量量化反量化单元的模块结构示意图。
图9是本发明实施例的码流构成示意图。
具体实施方式
本发明的核心思想是,采用一种融合型格型矢量量化方式对待量化矢量进行量化,具体根据编码子带的比特分配数,对低比特编码子带和高比特编码子带分别使用塔型格型矢量量化方式和球型格型矢量量化方式,在解码时采用编码的逆过程,从而获得较好的编码效果。另外,在比特分配时采用了变步长的比特分配方式,提高了比特的使用效率。
以下分编码方法、解码方法、编码***、解码***四部分来对本发明进行详细说明:
一、编码方法
本发明格型矢量量化音频编码方法包括以下步骤:
A、将音频信号经过修正离散余弦逆变换(MDCT)变换后的频域系数划分为若干个编码子带,并对各编码子带的幅值包络值进行量化和编码,得到幅值包络的编码比特;
划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
B、对各编码子带进行比特分配,并对低比特编码子带和高比特编码子带中的矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行归一化、量化和编码,得到频域系数的编码比特;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
根据编码子带的重要性对编码子带中每个频域系数进行比特分配时,比特分配步长及比特分配后的重要性降低步长是变化的;具体表现为:
对编码子带进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。零比特编码子带指编码子带中每个频域系数分配的比特数为零的编码子带。
重要性初始值可以根据最大量化信噪比增益条件下的最佳比特值和符合人耳感知特性的比例因子计算,也可以将编码子带幅值包络的量化指数Thq(j)、或将
Figure B2009102498542D0000161
(其中μ>0,μ和v均为实数)作为各编码子带的比特分配重要性初始值,j=0,...,L-1。
C、将各编码子带的所述幅值包络的编码比特和所述频域系数的编码比特复用打包后,传送给解码端。
实施例1-编码方法
图1是本发明实施例一种格型矢量量化音频编码方法的结构示意图。本实施例中以帧长为20ms,采样率为32kHz的音频流为例具体说明本发明的音频编码方法。在其它帧长和采样率条件下,本发明的方法同样适用。如图1所示,该方法包括:
101:对待编码音频流实施MDCT(Modified Discrete Cosine Transform,修正离散余弦变换)得到N个频域采样点上的频域系数;
本步骤的具体实现方式可以是:
将当前帧的N点时域采样信号x(n)与上一帧的N点时域采样信号xold(n)组成2N点时域采样信号
Figure B2009102498542D0000162
2N点的时域采样信号可由下式表示:
x ‾ ( n ) = x old ( n ) n = 0 , 1 , · · · , N - 1 x ( n - N ) n = N , N + 1 , · · · , 2 N - 1 - - - ( 1 )
实施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时,得到640个频域系数。其他帧长及采样率可同样算出相应的频域系数个数N。
102:将N点频域系数分成若干个编码子带,计算各个编码子带的幅值包络;
在本实施例中采用非均匀子带划分,计算各个子带的频域幅值包络(简称幅值包络)。
本步骤可以采用如下子步骤实现:
102a:将所需处理的频带范围内的频域系数分成L个子带(可以称为编码子带);
本实施例中,所需处理的频带范围是0~13.6kHz,可以按照人耳感知特性进行非均匀子带划分,表1给出了一个具体的划分方式。
在表1中将0~13.6kHz频带范围内的频域系数划分成28个编码子带,也就是L=28;并将13.6kHz以上的频域系数置为0。
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所示。
Figure B2009102498542D0000181
表1  频域非均匀子带划分方式实例
103:对各编码子带的幅值包络值进行量化和编码,得到幅值包络的量化指数和幅值包络的量化指数编码比特(即幅值包络的编码比特);
采用以下公式(5)对根据公式(4)计算得到的各编码子带幅值包络进行量化,得到各编码子带幅值包络的量化指数:
Figure B2009102498542D0000191
其中,
Figure B2009102498542D0000192
表示向下取整,Thq(0)为第一个编码子带的幅值包络量化指数,将其范围限制在[-5,34]内,即当Thq(0)<-5时,令Thq(0)=-5;当Thq(0)>34时,令Thq(0)=34。
根据量化指数重建的量化幅值包络为
Figure B2009102498542D0000193
使用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中,扣除边信息消耗的比特数bit_sides和编码子带幅值包络所消耗掉的比特数bits_Th,得到剩余的可用于频域系数编码的比特数bits_left,即:
bits_left=bits_available-bit_sides-bits_Th    (7)
边信息包括幅值包络霍夫曼编码标志Flag_huff_rms、频域系数霍夫曼编码标志Flag_huff_plvq和迭代次数count的比特。Flag_huff_rms用于标识是否对子带幅值包络使用了霍夫曼编码;Flag_huff_plvq用于标识是否在对频域系数进行矢量量化和编码时使用了霍夫曼编码,而迭代次数count用于标识比特分配修正时的迭代次数(详见后续步骤中的描述)。
计算单个频域系数的比特消耗平均值
R ‾ = bits _ left HIndex ( L - 1 ) + 1 - - - ( 8 )
其中,L为编码子带的个数。
104b:根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;
通过拉格朗日方法优化基于独立高斯分布随机变量的码率失真度,可计算得到该码率失真度界限下各编码子带的最大量化信噪比增益条件下的最佳比特分配值为:
rr ( j ) = [ R ‾ + R min ( j ) ] , j = 0 , · · · , L - 1 - - - ( 9 )
其中,
R min ( j ) = 1 2 [ Th q ( j ) - mean _ Th q ] , j = 0 , · · · , L - 1 - - - ( 10 )
以及
mean _ Th q = 1 HIndex ( L - 1 ) + 1 Σ i = 0 L - 1 Th q ( i ) [ HIndex ( i ) - LIndex ( i ) + 1 ] - - - ( 11 )
104c:计算各编码子带在比特分配中的重要性初始值:
使用上述最佳比特值,以及符合人耳感知特性的比例因子,可以得到在实际比特分配中用于控制比特分配的各编码子带重要性的初始值:
rk ( j ) = α × rr ( j ) = α [ R ‾ + R min ( j ) ] , j = 0 , · · · , L - 1 - - - ( 12 )
其中α为比例因子,该因子跟编码比特率相关,可通过统计分析得到,通常0<α<1,在本实施例中α取值为0.6。rk(j)表示第j个编码子带用于比特分配时的重要性。
104d:根据各编码子带的重要性对各编码子带进行比特分配;
具体描述如下:
首先从各rk(j)中找到最大值所在的编码子带,假设该编码子带的编号为jk,然后增加该编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;同时计算用于该子带编码所消耗比特总数bit_band_used(jk);最后计算所有编码子带所消耗比特数的总和sum(bit_band_used(j)),j=0,...,L-1;重复上述过程直至所消耗比特数的总和满足可提供比特限制条件下的最大值。
比特分配数是指一个编码子带中单个频域系数所分配到的比特数。一个编码子带所消耗的比特数是指该编码子带中单个频域系数所分配比特数乘以该编码子带中所包含频域系数的个数。
在本实施例中,对比特分配数为0的编码子带分配比特的步长是1个比特,比特分配后重要性降低的步长为1,对比特分配数大于0且小于阈值5的编码子带追加分配比特时的比特分配步长为0.5个比特,追加分配比特后重要性降低的步长也为0.5,对比特分配数大于等于阈值5的编码子带追加分配比特时的比特分配步长为1,追加分配比特后重要性降低的步长也为1。
本步骤中的比特分配方法可以由如下伪代码表示:
最后,根据编码子带的重要性,将剩余的不到24个比特按如下原则分配给满足要求的编码子带,优先在比特分配为1的编码子带中给每个频域系数分配0.5个比特,同时降低该编码子带的重要性0.5;否则给比特分配为0的子带中每个频域系数分配1个比特,同时降低该编码子带的重要性1,直至bit_left-bit_used_all<4,比特分配结束。
其中,MaxBit为编码子带中单个频域系数所能分配到的最大的编码比特数。本实施例中采用MaxBit=9。这个值可以根据编解码器的编码码率适当调整。region_bit(j)为第j个编码子带中单个频域系数所分配的比特数。
105:对低比特编码子带和高比特编码子带中的矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到频域系数的编码比特;
后续结合图2对本发明分类格型矢量量化和编码的过程进行详细说明。
106:构造编码码流
图9是本发明实施例的码流构成示意图。首先将边信息按如下顺序写入比特流复用器MUX中,Flag_huff_rms、Flag_huff_plvq和count;然后将编码子带幅值包络编码比特写入MUX,然后将频域系数的编码比特写入MUX;最后将按上述顺序写成的码流传送到解码端;
分类格型矢量量化和编码过程
具体地,如图2所示,分类格型矢量量化和编码过程包括:
201:使用编码子带的量化幅值包络值对该编码子带中所有频域系数进行归一化处理,并分组形成若干个待量化矢量;
使用编码子带j的量化幅值包络对该编码子带中所有频域系数Xj进行归一化处理:
X j normalized = X j 2 Th q ( i ) / 2 ;
将编码子带中连续的8个频域系数分组构成1个8维矢量。根据表1对编码子带的划分,编码子带j中的系数正好可以分组构成Lattice_D8(j)个8维矢量。各个归一化后分组的8维待量化矢量可表示为
Figure B2009102498542D0000241
其中m表示该8维矢量在编码子带中的位置,其范围在0到Lattice_D8(j)-1之间。
202:判断编码子带j的比特分配数region_bit(j)是否小于预设阈值,如果是,则该编码子带为低比特编码子带,执行步骤203,即采用塔型格型矢量量化方法进行量化,并在量化后执行步骤205进行编码;否则该编码子带为高比特编码子带,执行步骤204,即采用球型格型矢量量化方法进行量化,并在量化后执行步骤206进行编码;
203:对低比特编码子带采用塔型格型矢量量化方法进行量化;
在本实施例中,预设阈值为5,即低比特编码子带j所分配到的比特数满足:1<=region_bit(j)<5。
本实施例采用基于D8格点的8维格型矢量量化,其中D8格点定义如下:
D 8 = { v = ( v 1 , v 2 , . . . , v 8 ) T ∈ Z 8 | Σ 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 ) ∈ D 8 g ( X ) , if g ( X ) ∈ D 8 .
对低比特编码子带的待量化矢量量化进行塔型格型矢量量化的过程包括:
203a、对待量化矢量进行能量规整
根据待量化矢量所在编码子带j中单个频域系数所分配的比特数region_bit(j),从以下表2中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
Y ~ j , scale m = ( Y j m - a ) * scale ( index )
其中,
Figure B2009102498542D0000252
表示编码子带j中第m个归一化后的待量化8维矢量,
Figure B2009102498542D0000253
表示对
Figure B2009102498542D0000254
进行能量规整后的8维矢量,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6)。
需要说明的是以下表2是根据统计得到的,其统计方法为:
首先将scale限制在一定范围中并以特定步长1计算采用相应步长条件下塔式格型矢量量化和反量化在某个量化比特数条件下对应的均方误差值,寻找最小均方误差值对应的Scale值所在的特定区域范围,以特定步长2搜索塔式格型矢量量化和反量化在某个量化比特数条件下对应的均方误差值,寻找最小均方误差值对应的Scale值,该值为某个量化比特条件下对应的Scale值。
表2  塔型格型矢量量化比特数与码本序号、能量缩放因子及最大塔面能量半径的对应关系
Figure B2009102498542D0000255
Figure B2009102498542D0000261
203b:将能量规整后的矢量量化到格点上
首先将能量规整后的矢量量化到格点上,然后判断量化后的格点
Figure B2009102498542D0000262
的塔面能量是否小于或等于编码码本中的最大塔面能量半径,如果是则执行步骤203c,否则对能量规整后的矢量进行能量截断后再进行格点量化;
将能量规整后的8维矢量
Figure B2009102498542D0000263
量化到D8格点上::
Y ~ j m = f D 8 ( Y ~ j , scale m )
其中,表示将某个8维矢量映射到D8格点的量化算子。
计算D8格点的塔面能量并和编码码本中的最大塔面能量半径进行比较。D8格点
Figure B2009102498542D0000268
的塔面能量即
Figure B2009102498542D0000269
各分量绝对值之和。编码码本是指所有用来量化待量化矢量的D8格点的集合。
如果D8格点
Figure B2009102498542D00002610
的塔面能量不大于最大塔面能量半径LargeK(index),则直接执行步骤203c,计算该格点在码本中的量化索引;
如果该格点
Figure B2009102498542D00002611
的塔面能量大于最大塔面能量半径,则将该编码子带规整后的待量化矢量
Figure B2009102498542D00002612
进行能量截断,直到能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径;这时对能量截断后的待量化矢量持续增加其自身的一个小能量,直至其量化到D8格点的能量超过最大塔面能量半径;取最后一个能量不超过最大塔面能量半径的D8格点作为待量化矢量的量化值,即作为生成矢量量化索引的格点。
在格点
Figure B2009102498542D00002613
能量大于最大塔面能量半径时,对待量化矢量进行能量截断的具体过程可以用下面伪代码描述:
Figure B2009102498542D00002614
Figure B2009102498542D0000271
这时的
Figure B2009102498542D0000272
是最后一个能量不超过最大塔面能量半径的D8格点,temp_K是该格点的能量。
203c:计算D8格点
Figure B2009102498542D0000281
在码本中的矢量量化索引
计算D8格点
Figure B2009102498542D0000282
在码本中的矢量量化索引的步骤包括:
步骤1:根据塔面能量的大小,分别对各个塔面上的格点进行标号。
对于维数为L的整数格点网格ZL,定义能量半径为K的塔面为:
S ( L , K ) = { Y = ( y 1 , y 2 , . . . , y L ) ∈ Z L | Σ 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为Y的标号,否则继续步骤1.2)。
步骤2:对所有塔面上的格点进行统一标号。
根据各个塔面的格点数和每个格点在各自塔面上的标号,计算每个格点在全体塔面中的标号:
index _ b ( j , m ) = b ( j , m ) + &Sigma; kk = 0 K - 2 N ( 8 , kk )
其中,kk为偶数,b(j,m)为D8格点在自身所在塔面上的标号,而index_b(j,m)为
Figure B2009102498542D0000293
在码本中的索引。也就是编码子带j中第m个8维矢量的索引。
203d:重复以上步骤203a~203c,直到所有编码比特大于0但小于阈值5的编码子带的各个8维矢量都完成矢量量化索引的计算;
204:对高比特编码子带采用球型格型矢量量化方法进行量化;
高比特编码子带j所分配到的比特数满足:5<=region_bit(j)<=9。
此处同样采用基于D8格的8维格型矢量量化。
对高比特编码子带的待量化矢量进行球型格型矢量量化的过程包括:
204a:对待量化矢量进行能量规整
对编码子带j的第m个归一化后待量化矢量
Figure B2009102498542D0000294
进行如下能量规整:
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的统计方法与获取表2的统计方法相同。
表3球型格型矢量量化的比特分配数与能量缩放因子的对应关系
  比特分配数region_bit   能量缩放因子scale
  5   6
  6   6.2
  7   6.5
  8   6.2
  9   6.6
204b:将能量规整后的矢量量化到格点上,判断量化格点值除以2的比特分配数次方2region_bit(j)后再投影到量化格点的量化值,即
Figure B2009102498542D0000301
是否为零矢量,如果是则执行步骤204c,否则对能量规整后的矢量进行能量截断后再量化到格点上;
将编码子带j中进行能量规整后的第m个待量化矢量映射到D8格点
Figure B2009102498542D0000303
上:
其中,
Figure B2009102498542D0000305
表示将某个8维矢量映射到D8格点的量化算子。
判断量化格点值除以2的比特分配数次方2region_bit(j)后再投影到量化格点的量化值是否为零矢量,即它的各个分量是否都为零,如果是则称为零矢量条件满足,否则称为零矢量条件不满足。
如果零矢量条件满足,直接执行步骤204c;
如果零矢量条件不满足,对能量规整后的矢量
Figure B2009102498542D0000307
进行能量截断,本实施例中将
Figure B2009102498542D0000308
的值除以2,直至零矢量条件成立;并备份
Figure B2009102498542D00003010
自身的小倍数值为w,然后对能量截断后的矢量
Figure B2009102498542D00003011
加上备份的小倍数值w,再量化到D8格点,判断零矢量条件是否满足;如果零矢量条件不满足,则将最近满足零矢量条件的D8格点作为待量化矢量的量化格点,否则继续对矢量
Figure B2009102498542D00003012
增加备份的小倍数值w,然后再量化到D8格点,直至零矢量不条件满足。
对待量化矢量进行能量截断的具体过程可以用下面伪代码描述:
Figure B2009102498542D00003013
Figure B2009102498542D0000311
204c:生成D8格点
Figure B2009102498542D0000312
的矢量量化的索引矢量。
矢量量化的索引可由下面的索引矢量生成公式得到:
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
205:对低比特编码子带的矢量量化索引进行编码;
如上所述,低比特编码子带j所分配的比特数满足:1<=region_bit(j)<5。
对低比特编码子带的矢量量化索引进行编码包括以下步骤:
205a:对低比特编码子带的矢量量化索引进行霍夫曼编码;
对单个频域系数的比特分配数小于某个阈值的所有编码子带构成的集合C中的矢量量化索引进行霍夫曼编码;根据塔型格型矢量量化方法得到各个编码子带中每个8维矢量的矢量量化索引index_b(j,k),其中k表示编码子带j的第k个8维矢量。对量化索引index_b(j,k)进行霍夫曼编码包括以下情形:
a:在单个频域系数所分配到的比特数为大于1小于5但除去2的所有编码子带中,对每个矢量量化索引的自然二进制码中每4位分成一组并对其进行霍夫曼编码,所有4位一组的霍夫曼编码比特数之和就是该量化索引的霍夫曼编码的消耗比特数;
b:在单个频域系数所分配到的比特数为2的所有编码子带中,对每个8维矢量的塔型格型矢量量化索引使用15个比特进行编码;
将15个比特分成3组4位比特和1组3位比特,然后对它们分别进行霍夫曼编码,4组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
c:当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引小于127,则对量化索引使用7个比特进行编码,把7个比特分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
d:当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于127,则定义它的自然二进制码值为”1111 1110”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
e:当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于128,则定义它的自然二进制码值为”1111 1111”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数。
对量化索引进行霍夫曼编码的方法可用如下伪代码描述:
其中plvq_codebook(j,k),和plvq_count(j,k)分别为j子带第k个8维矢量的霍夫曼编码码本中的码字和比特消耗数;plvq_bit_count和plvq_code根据表4查找。
更新采用霍夫曼编码后的比特消耗总数:
Figure B2009102498542D0000332
Figure B2009102498542D0000341
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;plvq_bit_count和plvq_code根据表4查找。
更新采用霍夫曼编码后的比特消耗总数:
Figure B2009102498542D0000342
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;plvq_bit_count_r2_3和plvq_code_r2_3根据表5查找。
更新采用霍夫曼编码后的比特消耗总数:
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;plvq_bit_count_r1_4和plvq_code_r1_4根据表6查找。
更新采用霍夫曼后的比特消耗总数:
Figure B2009102498542D0000352
Figure B2009102498542D0000361
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;码本plvq_bit_count_r1_3和plvq_code_r1_3根据表7查找。
更新采用霍夫曼后的比特消耗总数:
Figure B2009102498542D0000362
表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
对所有编码子带的塔型格型矢量量化索引进行霍夫曼编码时,根据编码子带中单个频域系数所分配到的比特数,对编码子带的矢量量化索引使用不同的码本进行编码。
205b:判断霍夫曼编码是否节省比特,如果节省,则对量化索引采用霍夫曼编码,并执行步骤205c,否则对量化索引进行自然编码;
通过205a)计算得到属于C中所有编码子带的8维矢量的量化索引经过霍夫曼编码后消耗比特的总数bit_used_huff_all。将bit_used_huff_all和C中所有编码子带所消耗比特数的总和sum(bit_band_used(j),j∈C)进行比较,也就是和C中所有编码子带的频域系数个数和该编码子带中单个频域系数所分配比特数乘积的总和进行比较;如果bit_used_huff_all<sum(bit_band_used(j),j∈C),则传输霍夫曼编码后的量化索引的比特,同时设置频域系数霍夫曼编码标志Flag_huff_plvq为1;否则,对量化矢量索引进行自然编码,并设置频域系数霍夫曼编码标志Flag_huff_plvq为0。
205c:进行比特分配修正,并对修正了比特分配的编码子带再次进行矢量量化和编码。
若频域系数霍夫曼编码标志Flag_huff_plvq为0,则不修正编码子带的比特分配。若频域系数霍夫曼编码标志Flag_huff_plvq为1,则利用霍夫曼编码节省下来的比特对编码子带的比特分配进行修正。
对编码子带的比特分配进行修正时,在本实施例中,低比特编码子带的比特修正步长及比特修正后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特增加步长及比特增加后的重要性降低步长均为1。
低比特编码子带指编码子带中每个频域系数分配的比特数小于阈值的编码子带,高比特编码子带指编码子带中每个频域系数分配的比特数大于或等于阈值的编码子带。零比特编码子带指编码子带中每个频域系数分配的比特数为零的编码子带。
如图3所示,步骤205c的比特分配修正流程具体包括如下步骤:
301:计算霍夫曼编码节省的比特数diff_huff,令count=0:
diff_huff=sum(bit_band_used(j),j∈C)-bit_used_huff_all
如果diff_huff大于零,则表示霍夫曼编码能节省比特,霍夫曼编码所节省的比特数即对编码子带进行比特分配修正时所能使用的比特数。
302:在所有编码子带中寻找重要性最大的编码子带;
在各rk(j)(j=0,...,L-1)中寻找最大值rk(jk),用公式表示为:
j k = arg max j = 0 , &CenterDot; &CenterDot; &CenterDot; , L - 1 [ rk ( j ) ]
303:判断重要性最大的编码子带的比特分配数加1(region_bit(jk)+1)是否小于等于编码子带中单个频域系数所能分配到的最大的编码比特数MaxBit(如MaxBit=9),如果是则执行步骤304,否则将jk对应的编码子带的重要性调整到最低(例如令rk(jk)=-100),表示无需再对该编码子带的比特分配值进行修正。
如果重要性最大的编码子带所分配的比特数已经达到可能分配给与的最大值,则将该编码子带的重要性调整到最低,不再对该编码子带修正比特分配值。
304:判断diff_huff-(region_bit(jk)+1)×BandWidth(jk)是否大于等于0,如果大于等于0,表明节省的比特数足够该编码子带进行比特分配修正,则执行步骤305;;否则结束比特分配修正流程。
步骤305:判断比特分配数region_bit(jk)是否等于0或大于等于阈值5,如果是则执行步骤306,否则执行步骤307;
步骤306:修正编码子带jk的比特分配数region_bit(jk),使region_bit(jk)=region_bit(jk)+1,降低子带重要性rk(jk)的值,使rk(jk)=rk(jk)-1;令count=count+1,并对编码子带jk重新进行矢量量化和霍夫曼编码,最后更新diff_huff的值;
步骤307:修正编码子带jk的比特分配数region_bit(jk),使region_bit(jk)=region_bit(jk)+0.5;降低子带重要性rk(jk)的值,使rk(jk)=rk(jk)-0.5;令count=count+1,并对编码子带jk重新进行矢量量化和霍夫曼编码,最后更新diff_huff的值;
对修正了比特分配的编码子带再次进行矢量量化和编码,如果霍夫曼编码仍然比自然编码节省比特,则将节省下来的比特进一步用于编码子带的比特分配修正。
308:判断count是否小于Maxcount,如果是,则跳转至步骤302,否则比特分配修正流程结束。
上述Maxcount为循环迭代次数上限值,该值由编码比特流及其采样率决定,本实施例中采用Maxcount=31。
206:对高比特编码子带的矢量量化索引进行编码。
高比特编码子带j所分配的比特数满足:5<=region_bit(j)<=9。
对编码比特数为5到9的编码子带中的8维矢量进行量化后得到索引矢量k={k1,k2,k3,k4,k5,k6,k7,k8},根据单个频域系数所分配到的比特数对索引矢量k的各个分量进行直接编码,得到该矢量的编码比特。
根据统计结果可以看到,在32kHz采样率32kbps码率的条件下,比特分配数小于5的编码子带占96%左右。也就是说,使用塔型格型矢量量化方式的概率在整个矢量量化中为96%,塔型格型矢量量化方式在本发明中占有极为重要的地位,其且在比特分配时采用了变步长的比特分配方式,单个频域系数的比特分配步长最低可以调整为半个比特,提高了比特的使用效率。本发明的低比特步长的塔型格型矢量量化方法的格点标号算法复杂度低,占用存储空间少,另外在高比特编码子带的球型格型矢量量化中,在码本扩展标号上采用新的判别准则,可进一步降低格型矢量量化方法的算法复杂度。
二、解码方法
本发明格型矢量量化音频解码方法是编码方法的逆过程,包括:
A、对待解码比特流中各幅值包络编码比特进行解码,得到各编码子带的幅值包络量化指数;
B、对各编码子带进行比特分配,根据各编码子带的比特分配数,将编码子带分成低比特编码子带和高比特编码子带,对低比特编码子带进行解码和塔型格型矢量量化的反量化及反归一化,以及对高比特编码子带进行解码和球型格型矢量量化的反量化及反归一化,得到低比特编码子带和高比特编码子带的频域系数;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于预设阈值的编码子带;
对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。在进行比特分配之后,解码之前,根据编码端的比特分配修正迭代次数count值和各编码子带的重要性,对编码子带再进行count次比特分配修正。
对低比特编码子带解码时,根据编码端的频域系数霍夫曼编码标识对低比特编码子带进行霍夫曼解码或直接解码得到低比特编码子带的矢量量化索引,对所有矢量量化索引进行塔型格型矢量量化的反量化,得到该编码子带的频域系数;对高比特编码子带解码时,直接进行自然解码得到高比特编码子带的矢量量化索引,对所有矢量量化索引进行球型格型矢量量化的反量化,得到该编码子带的频域系数。
C、对噪声填充后的频域系数进行修正离散余弦逆变换(IMDCT),得到最终的音频信号。
图4是本发明实施例一种格型矢量量化音频解码方法的结构示意图。如图4所示,该方法包括:
401:对各幅值包络编码比特进行解码得到各编码子带的幅值包络量化指数;
从编码端传送过来的编码比特流中(即从比特流解复用器DeMUX中)提取一帧的编码比特;提取出编码比特后,首先对边信息进行解码,然后根据幅值包络霍夫曼编码标志Flag_huff_rms的值对该帧中各幅值包络编码比特进行霍夫曼解码或直接解码,得到各编码子带的幅值包络量化指数Thq(j),j=0,...,L-1。
402:对各编码子带进行比特分配;
根据各编码子带的幅值包络量化指数计算出各编码子带重要性初始值,并利用编码子带重要性对各编码子带进行比特分配,得到编码子带的比特分配数;解码端的比特分配方法和编码端的比特分配方法完全相同。在比特分配过程中,比特分配步长及比特分配后编码子带重要性降低的步长是变化的。
在完成上述比特分配过程后,根据编码端的比特分配修正迭代次数count值和各编码子带的重要性,对编码子带再进行count次比特分配修正,然后比特分配全过程结束。
在比特分配及修正过程中,对比特分配数为0的编码子带分配比特时的比特分配步长及比特分配修正的步长是1个比特,比特分配及比特分配修正后重要性降低的步长为1,对比特分配数大于0且小于某个阈值的编码子带追加分配比特时的比特分配步长及比特分配修正的步长为0.5个比特,比特分配及比特分配修正后重要性降低的步长也为0.5,对比特分配数大于等于该阈值的编码子带追加分配比特时的比特分配步长及比特分配修正的步长为1,比特分配及比特分配修正后重要性降低的步长也为1;
403:根据编码子带比特分配数将各个编码子带划分成低比特编码子带和高比特编码子带,即判断编码子带j所分配比特数region_bit(j)是否小于预设阈值,如果是,则该编码子带为低比特编码子带,执行步骤404,否则该编码子带为高比特编码子带,执行步骤406;
404:对低比特编码子带进行解码,得到塔型格型矢量量化的索引;
根据边信息,对低比特编码子带进行霍夫曼解码或者直接进行自然解码得到低比特编码子带的塔型格型矢量量化的索引。
如果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。
405:计算塔型格型矢量量化的索引所对应的D8格点,并经过反归一化后得到低比特编码子带的频域系数;
计算塔型格型矢量量化的索引所对应的D8格点的过程实际上是矢量量化过程的逆过程,塔型格型矢量量化的反量化过程如下:
405a)确定矢量量化索引所在的能量塔面及在该能量塔面上的标号:
在塔面能量从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;
405b)求解塔面能量为K和索引标号为b的D8格点矢量Y=(y1,y2y3,y4,y5,y6,y7,y8,)的具体步骤如下:
步骤1:令Y=(0,0,0,0,0,0,0,0),xb=0,i=1,k=K,l=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)为所求格点。
405c)对所求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查找到。
405d)对
Figure B2009102498542D0000452
进行反归一化处理,得到解码端恢复出的编码子带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查找到。
506d)对
Figure B2009102498542D0000463
进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
406:将各编码子带的频域系数按频率大小顺序排列,对编码过程中未分配编码比特的子带或传输过程中丢失了的子带进行噪声填充和带宽扩展;
407:对噪声填充和带宽扩展后的频域系数进行IMDCT(InverseModified Discrete Cosine Transform,修正离散余弦逆变换),得到最终的音频输出信号。
三、编码***
为实现以上编码方法,本发明还提供了一种格型矢量量化音频编码***,如图5所示,该***包括该***包括修正离散余弦变换(MDCT)单元、幅值包络计算单元、幅值包络量化和编码单元、比特分配单元、归一化处理单元、分类格型矢量量化和编码单元;其中:
MDCT单元,用于对音频信号进行修正离散余弦逆变换变换生成频域系数;
幅值包络计算单元,与所述MDCT单元连接,用于将所述MDCT生成的频域系数划分为若干个编码子带,并计算各编码子带的幅值包络值;
幅值包络计算单元划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
幅值包络量化和编码单元,与所述幅值包络计算单元连接,用于将各编码子带的幅值包络值进行量化和编码,生成各编码子带幅值包络的编码比特;
比特分配单元,与所述幅值包络量化和编码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
具体地,比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
所述重要性初始值是根据最大量化信噪比增益条件下的最佳比特值和符合人耳感知特性的比例因子计算的,或者是各编码子带幅值包络的量化指数Thq(j)或
Figure B2009102498542D0000471
其中μ>0,μ和v均为实数。
所述重要性计算模块计算所述重要性初始值时,先计算单个频域系数的比特消耗平均值;再根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;之后再根据所述比特消耗平均值及最佳比特指计算各编码子带在比特分配中的重要性初始值;
所述比特分配模块根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。如:所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
归一化处理单元,与MDCT单元连接,用于使用编码子带的量化幅值包络值对各编码子带中所有频域系数进行归一化处理;
分类格型矢量量化和编码单元,与所述归一化处理单元及比特分配单元连接,用于对低比特编码子带和高比特编码子带中的归一化后的待量化矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到频域系数的编码比特;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
比特流复用器(MUX),与所述幅值包络量化和编码单元以及分类格型矢量量化和编码单元连接,用于将各编码子带的编码比特以及频域系数的编码比特复用并发送到解码端。
以下结合图6对分类格型矢量量化和编码单元进行详细描述:
如图6所示,分类格型矢量量化和编码单元包括分类处理模块、塔型格型矢量量化模块、球型格型矢量量化模块、编码类型判断模块、霍夫曼编码模块、自然编码模块及比特分配修正模块,其中:
分类处理模块,与所述归一化处理单元连接,用于对归一化后的频域系数进行分组形成8维待量化矢量,将低比特编码子带归一化后的待量化矢量转给塔型格型矢量量化器;还用于将高比特编码子带归一化处理后的待量化矢量转给球型格型矢量量化模块处理;
塔型格型矢量量化模块,与所述分类处理模块连接,用于对各低比特编码子带归一化处理后的待量化矢量进行塔型格型矢量量化,包括能量规整子模块、格点量化子模块、能量调整子模块及量化索引计算子模块,其中:
能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;
所述能量规整子模块对所述8维待量化矢量进行能量规整时,还用于先根据所述8维待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),从前述表2中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
Y ~ j , scale m = ( Y j m - a ) * scale ( index )
其中,
Figure B2009102498542D0000492
表示编码子带j中第m个归一化后的待量化8维矢量,
Figure B2009102498542D0000493
表示对
Figure B2009102498542D0000494
进行能量规整后的8维矢量,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6);
格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
所述格点量化子模块进行格点量化时,采用以下公式将8维矢量
Figure B2009102498542D0000495
量化到D8格点
Figure B2009102498542D0000496
上:
Y ~ j m = f D 8 ( Y ~ j , scale m )
其中,
Figure B2009102498542D0000498
表示将某个8维矢量映射到D8格点的量化算子;
能量调整子模块,与所述格点量化子模块连接,用于将D8格点的能量和编码码本中的最大塔面能量半径进行比较,如果小于或等于最大塔面能量半径,则通知所述量化索引计算子模块计算所述D8格点在码本中的量化索引;如果大于最大塔面能量半径,还用于将该编码子带规整后的待量化矢量进行能量截断,并通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径,同时对能量截断后的待量化矢量持续增加其自身的一个小能量,并通知所述格点量化子模块将增加小能量后的待量化矢量量化到D8格点,直至其量化到的D8格点的能量超过最大塔面能量半径,还用于通知量化索引计算子模块计算最后一个能量不超过最大塔面能量半径的D8格点在码本中的量化索引;
索引量化计算模块,与所述能量调整子模块连接,用于根据能量调整子模块的通知计算所述D8格点在码本中的量化索引。
量化索引计算子模块,计算D8格点
Figure B2009102498542D0000501
在码本中的量化索引时,先根据塔面能量的大小,分别对各个塔面上的格点进行标号,再在所有塔面上对该格点进行统一标号,该统一标号即D8格点
Figure B2009102498542D0000502
在码本中的量化索引。
球型格型矢量量化模块,与所述分类处理模块连接的,用于对高比特编码子带归一化处理后的待量化矢量进行球型格型矢量量化,包括能量规整子模块、格点量化子模块、零矢量条件判断子模块、能量调整子模块及索引矢量计算子模块,其中:
能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;所述能量规整子模块,对所述8维待量化矢量进行能量规整时,先根据待量化矢量
Figure B2009102498542D0000503
所在编码子带j中单个频域系数所分配到的比特数region_bit(j),查询到该比特数所对应和能量缩放因子scale(region_bit(j));然后根据下面的公式第m个对待量化矢量
Figure B2009102498542D0000504
进行能量规整:
Y ^ j m = &beta; ( Y j m - a )
其中,
Figure B2009102498542D0000506
表示编码子带j中第m个归一化后的8维待量化矢量,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可查到它们的对应关系;
格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
所述格点量化子模块采用以下公式将编码子带j中第m个待量化矢量
Figure B2009102498542D0000511
映射到D8的格点
Figure B2009102498542D0000512
上:
Y ~ j m f D 8 ( Y ^ j m )
零矢量条件判断子模块,与所述格点量化子模块连接,用于判断所述D8格点是否满足零矢量条件,具体包括,能量规整后的格点满足零矢量条件时,通知索引矢量计算子模块计算所述格点的索引矢量;能量规整后的格点不满足零矢量条件时,通知所述能量调整子模块;所述零矢量条件是指将通过矢量量化得到的D8格点值除以2的比特分配数次方2region_bit(j)后再投影到D8格点,投影的D8格点值是零矢量,其中region_bit(j)表示第j个编码子带中单个频域系数所分配到的比特数;
能量调整子模块,与所述零矢量条件判断子模块及格点量化子模块连接,用于将待量化矢量的值进行截断,并通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件满足;还用于备份待量化矢量自身的小倍数值w,对能量截断后的待量化矢量加上备份的小倍数值w,以及通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件不满足,还用于通知索引矢量计算子模块计算最近满足零矢量条件的D8格点的索引矢量;
索引矢量计算子模块,用于与所述零矢量条件判断子模块及能量调整子模块连接,用于根据零矢量条件判断子模块及能量调整子模块的通知计算所述D8格点在码本中的量化索引。
所述索引矢量计算子模块,依据以下公式计算出第j个编码子带的第m个矢量被量化到D8格点
Figure B2009102498542D0000514
的矢量量化索引矢量k:
k = ( Y ~ j m G - 1 ) mod 2 region _ bit ( j )
,其中region_bit(j)表示编码子带j中单个频域系数的比特分配数;G为D8格点的生成矩阵,形式如下:
编码类型判断模块,与塔型格型矢量量化模块连接,用于判断所有低比特编码子带的量化索引经过霍夫曼编码后所消耗比特的总数是否小于所有低比特编码子带的量化索引自然编码所需要的比特数总数,如果是,则通知霍夫曼编码模块及比特分配修正模块;否则通知自然编码模块;
霍夫曼编码模块,用于对低比特编码子带的量化索引进行霍夫曼编码,并设置频域系数霍夫曼编码标识为已使用霍夫曼编码;
所述霍夫曼编码模块对所有低比特编码子带的量化索引进行霍夫曼编码时:
在单个频域系数所分配到的比特数为大于1小于5但除去2的所有编码子带中,对每个矢量量化索引的自然二进制码中每4位分成一组并对其进行霍夫曼编码,所有4位一组的霍夫曼编码比特数之和就是该量化索引的霍夫曼编码的消耗比特数;
在单个频域系数所分配到的比特数为2的所有编码子带中,对每个8维矢量的塔型格型矢量量化索引使用15个比特进行编码,将15个比特分成3组4位比特和1组3位比特,然后对它们分别进行霍夫曼编码,4组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引小于127,则对量化索引使用7个比特进行编码,把7个比特分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于127,则定义它的自然二进制码值为”1111 1110”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于128,则定义它的自然二进制码值为”1111 1111”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数。
所述霍夫曼编码模块对所有低比特编码子带的的量化索引进行霍夫曼编码时,根据编码子带中单个频域系数所分配到的比特数,对编码子带的矢量量化索引使用不同的码本进行编码。
自然编码模块,用于对低比特编码子带的量化索引及高比特编码子带的索引矢量进行自然编码;
比特分配修正模块,用于利用霍夫曼编码节省下来的比特对编码子带的比特分配进行修正,以及通知所述分类处理模块对修正了比特分配的编码子带分类后,再次进行矢量量化和编码。
所述比特分配修正模块进行比特分配时,在所有编码子带中寻找重要性最大的编码子带,如果该编码子带所分配的比特数已经达到可能分配给与的最大值,则将该编码子带的重要性调整到最低,不再对该编码子带修正比特分配数,否则对该重要性最大的编码子带进行比特分配修正;
在比特分配修正过程中,对比特分配数为0的编码子带分配1个比特,比特分配后重要性降低1;对比特分配数大于0且小于5的编码子带分配0.5个比特,比特分配后重要性降低0.5;对比特分配数大于5的编码子带分配1个比特,比特分配后重要性降低1。
所述比特分配修正模块每修正一次比特分配时,将比特分配修正迭代次数count加1,当比特分配修正迭代次数count达到预设上限值或能够使用的比特数小于比特分配修正所需要的比特数时,结束比特分配修正流程。
比特流复用器对编码后的比特复用打包的顺序依次为幅值包络霍夫曼编码标识、频域系数霍夫曼编码标识、比特分配修正迭代次数、幅值包络的编码比特、频域系数的编码比特。
四、解码***
为了实现以上解码方法,本发明还提供了一种格型矢量量化音频解码***,如图7所示,该***包括多路分离器、编码子带幅值包络解码单元、比特分配单元、频域系数解码单元;分类格型矢量反量化单元、反归一化处理单元、噪声填充单元、修正离散余弦逆变换(IMDCT)单元,其中:
比特流解复用器(DeMUX),用于从待解码比特流中分离出边信息、幅值包络编码比特、频域系数编码比特;
幅值包络解码单元,与所述比特流解复用器连接,用于对所述比特流解复用器输出的幅值包络的编码比特进行解码,得到各编码子带的幅值包络量化指数;
比特分配单元,与所述幅值包络解码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
比特分配单元包括重要性计算模块及比特分配模块及比特分配修正模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性初始值对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的;
比特分配修正模块,用于在进行比特分配之后,根据编码端的比特分配修正迭代次数count值和各编码子带的重要性,对编码子带再进行count次比特分配修正。
所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
所述比特分配修正模块进行比特修正时,低比特编码子带的比特修正步长及比特修正后的重要性降低步长小于零比特编码子带和高比特编码子带的比特修正步长及比特修正后的重要性降低步长。
频域系数解码单元,与幅值包络解码单元和比特分配单元连接,用于对低比特编码子带解码得到低比特编码子带的量化索引;以及对高比特编码子带进行解码得到高比特编码子带的索引矢量,其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
所述频域系数解码单元,对低比特编码子带解码时,根据编码端的频域系数霍夫曼编码标识对低比特编码子带进行霍夫曼解码或直接解码得到低比特编码子带的矢量量化索引;对高比特编码子带解码时,直接解码得到高比特编码子带的矢量量化索引。
所述频域系数解码单元对低比特编码子带进行霍夫曼解码方法时,当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引的自然二进制码值小于”1111 111”,则按照自然二进制码值计算量化索引;如果量化索引的自然二进制码值等于”1111 111”,则继续读入下一位比特,如果下一位比特是0,则量化索引值为127,如果下一位比特是1,则量化索引值为128。
分类格型矢量量化反量化单元,用于对低比特编码子带的量化索引进行塔型格型矢量量化的反量化,以及对高比特编码子带的索引矢量进行球型格型矢量量化的反量化;
反归一化处理单元,用于对编码子带反量化后的值进行反归一化,得到频域系数;
具体地,
Figure B2009102498542D0000551
进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
噪声填充单元,用于对频域系数生成单元输出的频域系数输出值中未分配比特的子带进行噪声填充;
修正离散余弦逆变换(IMDCT)单元,与所述噪声填充单元连接,用于对噪声填充后的频域系数进行IMDCT,得到的音频信号。
以下结合图8对分类格型矢量量化反量化单元进行详细说明:
如图8所示,分类格型矢量量化反量化单元包括分类处理模块、塔型格型矢量量化反量化模块及球型格型矢量量化反量化模块,其中:
分类处理模块,用于将低比特编码子带的量化索引转给塔型格型矢量量化器;还用于将高比特编码子带的索引矢量转给球型格型矢量量化模块处理;
塔型格型矢量量化反量化模块,用于塔型格型矢量量化反量化模块对低比特编码子带的量化索引进行反量化,包括相连接的格点反量化子模块及能量反规整子模块,其中:
格点反量化子模块,用于确定低比特编码子带的量化索引所在的能量塔面及在该能量塔面上的标号,以及进一步求解对应的D8格点;
能量反规整子模块,用于对所求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)是缩放因子。
球型格型矢量量化反量化模块用于对高比特编码子带的索引矢量进行反量化,包括相连接的格点反量化子模块及能量反规整子模块,其中:
格点反量化子模块,用于求解索引矢量对应的D8格点,具体包括:
计算x=k*G,
并计算ytenp=x/(2^(region_bit(j));y=x-fD8(ytenp)*(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
能量反规整子模块用于对所求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))是缩放因子。
本发明格型矢量量化音频编解码方法和***充分考虑语音信源的分布特性,采用一种融合型格型矢量量化方式对待量化矢量进行量化,具体根据编码子带的比特分配数,对低比特编码子带和高比特编码子带分别使用塔型格型矢量量化方式和球型格型矢量量化方式,并在解码时采用编码的逆过程,从而获得较好的音频信源编码效果。另外,在比特分配时采用了变步长的比特分配方式,单个频域系数的比特分配步长最低可以调整为半个比特,提高了比特的使用效率。同时设计出低比特步长的塔型格型矢量量化器,其格点标号算法复杂度低,也减少存储空间,另外在高比特编码子带的球型格型矢量量化中,在码本扩展标号上采用新的判别准则,可进一步降低格型矢量量化器的算法复杂度。在编码过程中还设计出了节省比特的算法。

Claims (51)

1.一种格型矢量量化音频编码方法,其特征在于,该方法包括:
将音频信号经过修正离散余弦逆变换(MDCT)变换后的频域系数划分为若干个编码子带,并对各编码子带的幅值包络值进行量化和编码,得到幅值包络的编码比特;
对各编码子带进行比特分配,并对低比特编码子带和高比特编码子带中的矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行归一化、量化和编码,得到频域系数的编码比特,其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
将各编码子带的幅值包络的编码比特和频域系数的编码比特复用打包后,传送给解码端。
2.如权利要求1所述的方法,其特征在于,
划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
3.如权利要求1所述的方法,其特征在于,
对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
4.如权利要求3所述的方法,其特征在于,所述重要性初始值是根据最大量化信噪比增益条件下的最佳比特值和符合人耳感知特性的比例因子计算的,或者是各编码子带幅值包络的量化指数Thq(j)或
Figure F2009102498542C0000011
其中μ>0,μ和v均为实数。
5.如权利要求1或3所述的方法,其特征在于,对各编码子带进行比特分配的过程包括:
计算单个频域系数的比特消耗平均值;
根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;
计算各编码子带在比特分配中的重要性初始值;
根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
6.如权利要求1或3所述的方法,其特征在于,
低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
7.如权利要求1或3所述的方法,其特征在于,
低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
8.如权利要求1所述的方法,其特征在于,
对所述低比特编码子带进行塔型格型矢量量化的过程包括:
使用编码子带的量化幅值包络值对该编码子带中所有频域系数进行归一化处理,并分组形成若干个8维待量化矢量;对各待量化矢量进行量化的过程包括以下步骤:;
对编码子带中的8维待量化矢量进行能量规整,将能量规整后的8维待量化矢量量化到D8格点;
将通过量化得到的D8格点的能量和编码码本中的最大塔面能量半径进行比较,如果小于或等于最大塔面能量半径,则计算所述D8格点在码本中的量化索引;如果大于最大塔面能量半径,则将该编码子带规整后的待量化矢量进行能量截断,直至能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径,同时对能量截断后的待量化矢量持续增加其自身的一个小能量,直至其量化到的D8格点的能量超过最大塔面能量半径,确定最后一个能量不超过最大塔面能量半径的D8格点为矢量量化格点并计算其在码本中的量化索引。
9.如权利要求8所述的方法,其特征在于,
对所述8维待量化矢量进行能量规整时,先根据所述8维待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),从下表中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
Y ~ j , scale m = ( Y j m - a ) * scale ( index )
其中,表示编码子带j中第m个归一化后的待量化8维矢量,
Figure F2009102498542C0000033
表示对
Figure F2009102498542C0000034
进行能量规整后的8维矢量,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6);
Figure F2009102498542C0000035
对规整后的矢量进行格点量化时,采用以下公式将能量规整后的8维矢量
Figure F2009102498542C0000036
量化到D8格点上:
Y ~ j m = f D 8 ( Y ~ j , scale m )
其中,
Figure F2009102498542C0000041
表示将某个8维矢量映射到D8格点的量化算子;
计算D8格点
Figure F2009102498542C0000042
在码本中的量化索引的过程包括:
步骤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(j,m)=b为Y的标号,否则继续步骤1.2;
步骤2:在所有塔面上对该格点进行统一标号,
根据各个塔面的格点数和格点在自己的塔面上的标号,计算该格点在全体塔面中的标号,
index _ b ( j , m ) = b ( j , m ) + &Sigma; kk = 0 K - 2 N ( 8 , kk )
其中,kk为偶数,b(j,m)为D8格点
Figure F2009102498542C0000052
在自身所在塔面上的标号,而index_b(j,m)为D8格点在码本中的索引。
10.如权利要求1所述的方法,其特征在于,
对所述高比特编码子带进行球型格型矢量量化的过程:
使用编码子带的量化幅值包络值对该子带中所有频域系数进行归一化处理,并分组形成若干个多维待量化矢量;对各待量化矢量进行量化的过程包括以下步骤:
对编码子带中的8维待量化矢量进行能量规整,将能量规整后的8维矢量量化到D8格点;
将通过矢量量化得到的D8格点值除以2的比特分配数次方2region_bit(j)后再量化到D8格点,判断再量化的D8格点值是否是零矢量,如果是则称为零矢量条件满足,否则称为零矢量条件不满足,其中region_bit(j)表示第j个编码子带中单个频域系数所分配到的比特数;
如果零矢量条件满足,则计算所述D8格点的索引矢量;
如果零矢量条件不满足,则将待量化矢量的值进行截断,直至零矢量条件满足,备份待量化矢量自身的小倍数值w,对能量截断后的待量化矢量加上备份的小倍数值w,然后再量化到D8格点,判断零矢量条件是否满足,如果零矢量条件不满足,则计算最近满足零矢量条件的D8格点的索引矢量k,否则继续对待量化矢量增加备份的小倍数值w,然后再量化到D8格点,直至零矢量条件不满足。
11.如权利要求10所述的方法,其特征在于,
对所述8维待量化矢量进行能量规整时,先根据待量化矢量
Figure F2009102498542C0000061
所在编码子带j中单个频域系数所分配到的比特数region_bit(j),查询到该比特数所对应和能量缩放因子scale(region_bit(j));然后根据下面的公式第m个对待量化矢量进行能量规整:
Y ^ j m = &beta; ( Y j m - a )
其中,
Figure F2009102498542C0000064
表示编码子带j中第m个归一化后的8维待量化矢量,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)时的能量缩放因子,根据下表查寻到它们的对应关系;
  比特数region_bit   能量缩放因子scale   5   6   6   6.2   7   6.5   8   6.2   9   6.6
采用以下公式将编码子带j中进行能量规整后的第m个待量化矢量映射到D8的格点上:
Y ~ j m = f D 8 ( Y ^ j m )
其中,
Figure F2009102498542C0000069
表示将某个8维矢量映射到D8格点的量化算子;
依据以下公式计算出第j个编码子带的第m个矢量被量化到D8格点
Figure F2009102498542C00000610
的矢量量化索引矢量k:
k = ( Y ~ j m G - 1 ) mod 2 region _ bit ( j )
,其中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 .
12.如权利要求1所述的方法,其特征在于,
对低比特编码子带使用塔型格型矢量量化得到的量化索引进行编码的过程包括:
对所有低比特编码子带的量化索引进行霍夫曼编码;
若所有低比特编码子带的量化索引经过霍夫曼编码后所消耗比特的总数小于所有低比特编码子带的量化索引的自然编码所需要的比特数总和,则使用霍夫曼编码并设置频域系数霍夫曼编码标识为1或true,利用霍夫曼编码节省下来的比特对编码子带的比特分配数进行修正,以及对修正了比特分配数的编码子带再次进行矢量量化和编码;否则重新对量化索引进行自然编码,并设置频域系数霍夫曼编码标识为0或false。
13.如权利要求12所述的方法,其特征在于,
利用霍夫曼编码节省下来的比特对编码子带的比特分配数进行修正的过程如下:
计算霍夫曼编码所节省的比特数;
在所有编码子带中寻找重要性最大的编码子带,如果该编码子带所分配的比特数已经达到可能分配给与的最大值,则将该编码子带的重要性调整到最低,不再对该编码子带修正比特分配数,否则对该重要性最大的编码子带进行比特分配修正;
在比特分配修正过程中,对比特分配数为0的编码子带分配1个比特,比特分配后重要性降低1;对比特分配数大于0且小于5的编码子带分配0.5个比特,比特分配后重要性降低0.5;对比特分配数大于5的编码子带分配1个比特,比特分配后重要性降低1。
14.如权利要求13所述的方法,其特征在于:
比特分配数每修正1次,即将比特分配修正迭代次数count加1,当比特分配修正迭代次数count达到预设上限值或能够使用的比特数小于比特分配修正所需要的比特数时,比特分配修正流程结束。
15.如权利要求14所述的方法,其特征在于:编码后的比特复用打包的顺序依次为幅值包络霍夫曼编码标识、频域系数霍夫曼编码标识、比特分配修正迭代次数、幅值包络的编码比特、频域系数的编码比特。
16.如权利要求1所述的方法,其特征在于,
对所有低比特编码子带的量化索引进行霍夫曼编码时,根据编码子带中单个频域系数所分配到的比特数,对编码子带的矢量量化索引使用不同的码本进行编码;
17.如权利要求1所述的方法,其特征在于,
对所有低比特编码子带的量化索引进行霍夫曼编码时:
在单个频域系数所分配到的比特数为大于1小于5但除去2的所有编码子带中,对每个矢量量化索引的自然二进制码中每4位分成一组并对其进行霍夫曼编码,所有4位一组的霍夫曼编码比特数之和就是该量化索引的霍夫曼编码的消耗比特数;
在单个频域系数所分配到的比特数为2的所有编码子带中,对每个8维矢量的塔型格型矢量量化索引使用15个比特进行编码,将15个比特分成3组4位比特和1组3位比特,然后对它们分别进行霍夫曼编码,4组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引小于127,则对量化索引使用7个比特进行编码,把7个比特分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于127,则定义它的自然二进制码值为”1111 1110”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于128,则定义它的自然二进制码值为”1111 1111”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数。
18.一种格型矢量量化音频解码方法,其特征在于,该方法包括:
对待解码比特流中各幅值包络编码比特进行解码,得到各编码子带的幅值包络量化指数;
对各编码子带进行比特分配,并对低比特编码子带进行解码、塔型格型矢量量化的反量化及反归一化,以及对高比特编码子带进行解码、球型格型矢量量化的反量化及反归一化,得到低比特编码子带和高比特编码子带的频域系数;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于预设阈值的编码子带;
对噪声填充后的频域系数进行修正离散余弦逆变换(IMDCT),得到最终的音频信号。
19.如权利要求18所述的方法,其特征在于,
对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
20.如权利要求18所述的方法,其特征在于,
在进行比特分配之后,解码之前,根据编码端的比特分配修正迭代次数count值和各编码子带的重要性,对编码子带再进行count次比特分配修正。
21.如权利要求19或20所述的方法,其特征在于,
进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长;
比特分配修正时,低比特编码子带的比特修正步长及比特修正后的重要性降低步长小于零比特编码子带和高比特编码子带的比特修正步长及比特修正后的重要性降低步长。
22.如权利要求21所述的方法,其特征在于,
低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
23.如权利要求18所述的方法,其特征在于:
对低比特编码子带解码时,根据编码端的频域系数霍夫曼编码标识对低比特编码子带进行霍夫曼解码或直接解码得到低比特编码子带的矢量量化索引,对所有矢量量化索引进行塔型格型矢量量化的反量化及反归一化,得到该编码子带的频域系数;对高比特编码子带解码时,直接采用自然解码得到高比特编码子带的矢量量化索引,对所有矢量量化索引进行球型格型矢量量化的反量化及反归一化,得到该编码子带的频域系数。
24.如权利要求18或23所述的方法,其特征在于,
在低比特编码子带的霍夫曼解码过程中,当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引的自然二进制码值小于”1111 111”,则按照自然二进制码值计算量化索引;如果量化索引的自然二进制码值等于”1111 111”,则继续读入下一位比特,如果下一位比特是0,则量化索引值为127,如果下一位比特是1,则量化索引值为128。
25.如权利要求18或23所述的方法,其特征在于,
对低比特编码子带的编码比特进行解码时:
如果频域系数霍夫曼编码标识表明未使用霍夫曼编码,则直接解码得到低比特编码子带j的第m个矢量量化索引index_b(j,m),如果频域系数霍夫曼编码标识表明采用了霍夫曼编码,则通过霍夫曼解码得到低比特编码子带j的第m个矢量量化索引index_b(j,m);
对该量化索引的塔式格型矢量反量化的过程包括:
a:确定量化索引所在的能量塔面及在该能量塔面上的标号:
在塔面能量从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;
b:求解塔面能量为K和索引标号为b的D8格点矢量Y=(y1,y2y3,y4,y5,y6,y7,y8,)的具体步骤如下:
步骤1:令Y=(0,0,0,0,0,0,0,0),xb=0,i=1,k=K,l=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)为所求格点;
c:对所求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查找到;
Figure F2009102498542C0000122
进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
26.权利要求18或23所述的方法,其特征在于,
对高比特编码子带的编码比特直接进行自然解码得到高比特编码子带j的第m个索引矢量k,对该索引矢量进行球型格型矢量量化的反量化过程包括:
a)计算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
b)计算y=x-fD8(ytemp)*(2^(region_bit(j));
c)对所求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查找到;
Figure F2009102498542C0000126
进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
27.一种格型矢量量化音频编码***,其特征在于,该***包括修正离散余弦变换(MDCT)单元、幅值包络计算单元、幅值包络量化和编码单元、比特分配单元、归一化处理单元、分类格型矢量量化和编码单元;其中:
所述MDCT单元,用于对音频信号进行修正离散余弦变换生成频域系数;
所述幅值包络计算单元,与所述MDCT单元连接,用于将所述MDCT生成的频域系数划分为若干个编码子带,并计算各编码子带的幅值包络值;
所述幅值包络量化和编码单元,与所述幅值包络计算单元连接,用于将各编码子带的幅值包络值进行量化和编码,生成各编码子带幅值包络的编码比特;
所述比特分配单元,与所述幅值包络量化和编码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
归一化处理单元,与MDCT单元连接,用于使用编码子带的量化幅值包络值对各编码子带中所有频域系数进行归一化处理;
所述分类格型矢量量化和编码单元,与所述归一化处理单元及比特分配单元连接,用于对低比特编码子带和高比特编码子带中的归一化后的待量化矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到频域系数的编码比特;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
比特流复用器,与所述幅值包络量化和编码单元以及分类格型矢量量化和编码单元连接,用于将各编码子带的编码比特以及频域系数的编码比特复用并发送到解码端。
28.如权利要求27所述的***,其特征在于,
所述幅值包络计算单元划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
29.如权利要求27所述的***,其特征在于,
所述比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
30.如权利要求27所述的***,其特征在于,
所述重要性初始值是根据最大量化信噪比增益条件下的最佳比特值和符合人耳感知特性的比例因子计算的,或者是各编码子带幅值包络的量化指数Thq(j)或
Figure F2009102498542C0000141
其中μ>0,μ和v均为实数。
31.如权利要求27或29所述的方法,其特征在于,
所述重要性计算模块中计算所述重要性初始值时,先计算单个频域系数的比特消耗平均值;再根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;之后再根据所述比特消耗平均值及最佳比特值计算各编码子带在比特分配中的重要性初始值;
所述比特分配模块根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
32.如权利要求27或29所述的***,其特征在于,
所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
33.如权利要求27或29所述的***,其特征在于,所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
34.如权利要求27所述的***,其特征在于,
所述分类格型矢量量化和编码单元包括分类处理模块及塔型格型矢量量化模块,其中:
所述分类处理模块,与所述归一化处理单元连接,用于对归一化后的频域系数进行分组形成8维待量化矢量,将低比特编码子带归一化后的待量化矢量转给塔型格型矢量量化器,将高比特编码子带归一化后的待量化矢量转给球型格型矢量量化器;
塔型格型矢量量化模块,与所述分类处理模块连接,用于对各低比特编码子带归一化处理后的待量化矢量进行塔型格型矢量量化,包括能量规整子模块、格点量化子模块、能量调整子模块及量化索引计算子模块,其中:
所述能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;
所述格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
所述能量调整子模块,与所述格点量化子模块连接,用于将D8格点的能量和编码码本中的最大塔面能量半径进行比较,如果小于或等于最大塔面能量半径,则通知所述量化索引计算子模块计算所述D8格点在码本中的量化索引;如果大于最大塔面能量半径,还用于将该编码子带规整后的待量化矢量进行能量截断,并通知所述格点量化子模块将能量截断,直至能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径,同时对能量截断后的待量化矢量持续增加其自身的一个小能量,并通知所述格点量化子模块将增加小能量后的待量化矢量量化到D8格点,直至其量化到的D8格点的能量超过最大塔面能量半径,还用于通知量化索引计算子模块计算最后一个能量不超过最大塔面能量半径的D8格点在码本中的量化索引;
索引量化计算模块,与所述能量调整子模块连接,用于根据能量调整子模块的通知计算所述D8格点在码本中的量化索引。
35.如权利要求34所述的***,其特征在于,
所述能量规整子模块对所述8维待量化矢量进行能量规整时,用于根据所述8维待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),从下表中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
Y ~ j , scale m = ( Y j m - a ) * scale ( index )
其中,
Figure F2009102498542C0000162
表示编码子带j中第m个归一化后的待量化8维矢量,表示对进行能量规整后的8维矢量,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6);
所述格点量化子模块,进行格点量化时,采用以下公式将8维矢量
Figure F2009102498542C0000166
量化到D8格点
Figure F2009102498542C0000167
上:
Y ~ j m = f D 8 ( Y ~ j , scale m )
其中,
Figure F2009102498542C0000172
表示将某个8维矢量映射到D8格点的量化算子;
所述量化索引计算子模块,计算D8格点
Figure F2009102498542C0000173
在码本中的量化索引时,先根据塔面能量的大小,分别对各个塔面上的格点进行标号,再在所有塔面上对该格点进行统一标号,该统一标号即D8格点
Figure F2009102498542C0000174
在码本中的量化索引。
36.如权利要求27所述的***,其特征在于,
所述分类格型矢量量化和编码单元还包括与所述分类处理模块连接的球型格型矢量量化模块,所述分类处理模块还用于将高比特编码子带归一化处理后的待量化矢量转给球型格型矢量量化模块处理;所述球型格型矢量量化模块用于对高比特编码子带归一化处理后的待量化矢量进行球型格型矢量量化,包括能量规整子模块、格点量化子模块、零矢量条件判断子模块、能量调整子模块及索引矢量计算子模块,其中:
所述能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;
所述格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
零矢量条件判断子模块,与所述格点量化子模块连接,用于判断所述D8格点是否满足零矢量条件,具体包括,能量规整后的格点满足零矢量条件时,通知索引矢量计算子模块计算所述格点的索引矢量;能量规整后的格点不满足零矢量条件时,通知所述能量调整子模块对待量化矢量的能量进行调整;所述零矢量条件是指将通过矢量量化得到的D8格点值除以2的比特分配数次方2region-bit(j)后再投影到D8格点,投影后的D8格点值是零矢量,其中region_bit(j)表示第j个编码子带中单个频域系数所分配到的比特数;
所述能量调整子模块,与所述零矢量条件判断子模块及格点量化子模块连接,用于将待量化矢量的值进行截断,并通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件满足;还用于备份待量化矢量自身的小倍数值w,对能量截断后的待量化矢量加上备份的小倍数值w,以及通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件不满足,还用于通知索引矢量计算子模块计算最近满足零矢量条件的D8格点的索引矢量;
所述索引矢量计算子模块,用于与所述零矢量条件判断子模块及能量调整子模块连接,用于根据零矢量条件判断子模块及能量调整子模块的通知计算所述D8格点在码本中的量化索引。
37.如权利要求36所述的***,其特征在于,
所述能量规整子模块,对所述8维待量化矢量进行能量规整时,先根据待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),查询到该比特数所对应和能量缩放因子scale(region_bit(j));然后根据下面的公式第m个对待量化矢量
Figure F2009102498542C0000182
进行能量规整:
Y ^ j m = &beta; ( Y j m - a )
其中,
Figure F2009102498542C0000184
表示编码子带j中第m个归一化后的8维待量化矢量,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)时的能量缩放因子,根据下表查找它们的对应关系;
  比特数regjon_bit   能量缩放因子scale   5   6   6   6.2   7   6.5   8   6.2   9   6.6
所述格点量化子模块,采用以下公式将编码子带j中第m个待量化矢量映射到D8的格点
Figure F2009102498542C0000192
上:
Y ~ j m = f D 8 ( Y ^ j m )
所述索引矢量计算子模块,依据以下公式计算出第j个编码子带的第m个矢量被量化到D8格点
Figure F2009102498542C0000194
的矢量量化索引矢量k:
k = ( Y ~ j m G - 1 ) mod 2 region _ bit ( j )
,其中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 .
38.如权利要求37所述的***,其特征在于,
所述分类格型矢量量化和编码单元还包括编码类型判断模块、霍夫曼编码模块、自然编码模块及比特分配修正模块,其中:
编码类型判断模块,用于判断所有低比特编码子带的量化索引经过霍夫曼编码后所消耗比特的总数是否小于所有低比特编码子带的量化索引自然编码所需要的比特数总数,如果是,则通知霍夫曼编码模块及比特分配修正模块;否则通知自然编码模块;
霍夫曼编码模块,用于对低比特编码子带的量化索引进行霍夫曼编码,并设置频域系数霍夫曼编码标识为1或true;
自然编码模块,用于对低比特编码子带的量化索引及高比特编码子带的索引矢量进行自然编码;
所述比特分配修正模块,用于利用霍夫曼编码节省下来的比特对编码子带的比特分配数进行修正,以及通知所述分类处理模块对修正了比特分配数的编码子带分类后,再次进行矢量量化和编码。
39.如权利要求38所述的***,其特征在于,所述比特分配修正模块进行比特分配时,在所有编码子带中寻找重要性最大的编码子带,如果该编码子带所分配的比特数已经达到可能分配给与的最大值,则将该编码子带的重要性调整到最低,不再对该编码子带修正比特分配数,否则对该重要性最大的编码子带进行比特分配修正;
在比特分配修正过程中,对比特分配数为0的编码子带分配1个比特,比特分配后重要性降低1;对比特分配数大于0且小于5的编码子带分配0.5个比特,比特分配后重要性降低0.5;对比特分配数大于5的编码子带分配1个比特,比特分配后重要性降低1。
40.如权利要求38所述的***,其特征在于:所述比特分配修正模块每修正一次比特分配数,即将比特分配修正迭代次数count加1,当比特分配修正迭代次数count达到预设上限值或能够使用的比特数小于比特分配修正所需要的比特数时,结束比特分配修正流程。
41.如权利要求40所述的***,其特征在于:所述比特流复用器对编码后的比特复用打包的顺序依次为幅值包络霍夫曼编码标识、频域系数霍夫曼编码标识、比特分配修正迭代次数、幅值包络的编码比特、频域系数的编码比特。
42.如权利要求38所述的***,其特征在于,
所述霍夫曼编码模块对所有低比特编码子带的量化索引进行霍夫曼编码时,根据编码子带中单个频域系数所分配到的比特数,对编码子带的矢量量化索引使用不同的码本进行编码。
43.如权利要求38所述的***,其特征在于,
所述霍夫曼编码模块对所有低比特编码子带的量化索引进行霍夫曼编码时:
在单个频域系数所分配到的比特数为大于1小于5但除去2的所有编码子带中,对每个矢量量化索引的自然二进制码中每4位分成一组并对其进行霍夫曼编码,所有4位一组的霍夫曼编码比特数之和就是该量化索引的霍夫曼编码的消耗比特数;
在单个频域系数所分配到的比特数为2的所有编码子带中,对每个8维矢量的塔型格型矢量量化索引使用15个比特进行编码,将15个比特分成3组4位比特和1组3位比特,然后对它们分别进行霍夫曼编码,4组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引小于127,则对量化索引使用7个比特进行编码,把7个比特分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于127,则定义它的自然二进制码值为”1111 1110”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数;
当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引等于128,则定义它的自然二进制码值为”1111 1111”,把前面7个1分成1组3比特和1组4比特,分别对两组进行霍夫曼编码,两组的霍夫曼编码比特消耗数之和就是该量化索引的霍夫曼编码消耗比特数。
44.一种格型矢量量化音频解码***,其特征在于,该***包括比特流解复用器、编码子带幅值包络解码单元、比特分配单元、频域系数解码单元;分类格型矢量量化反量化单元、反归一化处理单元、噪声填充单元、修正离散余弦逆变换(IMDCT)单元,其中:
比特流解复用器,用于从待解码比特流中分离出幅值包络编码比特、频域系数编码比特;
所述幅值包络解码单元,与所述比特流解复用器连接,用于对所述比特流解复用器输出的幅值包络的编码比特进行解码,得到各编码子带的幅值包络量化指数;
所述比特分配单元,与所述幅值包络解码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
频域系数解码单元,与幅值包络解码单元和比特分配单元连接,用于对低比特编码子带解码,得到低比特编码子带的量化索引;以及对高比特编码子带进行解码得到高比特编码子带的索引矢量,其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
分类格型矢量量化反量化单元,用于对低比特编码子带的量化索引进行塔型格型矢量量化反量化,以及对高比特编码子带的索引矢量进行球型格型矢量量化反量化;
反归一化处理单元,用于对编码子带反量化后的值进行反归一化,得到频域系数;
噪声填充单元,用于对频域系数生成单元输出的频域系数输出值中未分配比特的子带进行噪声填充;
修正离散余弦逆变换(IMDCT)单元,与所述噪声填充单元连接,用于对噪声填充后的频域系数进行IMDCT,得到音频信号。
45.如权利要求44所述的***,其特征在于,
所述比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
46.如权利要求44所述的***,其特征在于,
所述比特分配单元,还包括与所述比特分配模块连接的比特分配修正模块,用于在进行比特分配之后,根据编码端的比特分配修正迭代次数count值和各编码子带的重要性,对编码子带再进行count次比特分配修正。
47.如权利要求46所述的***,其特征在于,
所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
所述比特分配修正模块进行比特分配修正时,低比特编码子带的比特分配修正步长及比特分配修正后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配修正步长及比特分配修正后的重要性降低步长。
48.如权利要求45所述的***,其特征在于,
所述频域系数解码单元,对低比特编码子带解码时,根据编码端的频域系数霍夫曼编码标识对低比特编码子带进行霍夫曼解码或进行自然解码得到低比特编码子带的矢量量化索引;对高比特编码子带解码时,直接进行自然解码得到高比特编码子带的矢量量化索引。
49.如权利要求45所述的***,其特征在于,
所述频域系数解码单元对低比特编码子带进行霍夫曼解码方法时,当编码子带的单个频域系数所分配到的比特数为1时,如果量化索引的自然二进制码值小于”1111 111”,则按照自然二进制码值计算量化索引;如果量化索引的自然二进制码值等于”1111 111”,则继续读入下一位比特,如果下一位比特是0,则量化索引值为127,如果下一位比特是1,则量化索引值为128。
50.如权利要求45所述的***,其特征在于,
所述分类格型矢量量化反量化单元包括分类处理模块及塔型格型矢量量化反量化模块,其中,
分类处理模块,用于将低比特编码子带的量化索引转给塔型格型矢量量化器;
所述塔型格型矢量量化反量化模块,用于对低比特编码子带的量化索引进行反量化,包括相连接的格点反量化子模块及能量反规整子模块,其中:
所述格点反量化子模块,用于确定低比特编码子带的量化索引所在的能量塔面及在该能量塔面上的标号,以及进一步求解对应的D8格点;
能量反规整子模块,用于对所求D8格点Y进行能量反规整,得到
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)是缩放因子;
所述反归一化处理子单元对
Figure F2009102498542C0000242
进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
51.权利要求45所述的***,其特征在于,
所述分类格型矢量量化反量化单元还包括球型格型矢量量化反量化模块,所述分类处理模块,还用于将高比特编码子带的索引矢量转给球型格型矢量量化模块处理;
球型格型矢量量化反量化模块用于对高比特编码子带的索引矢量进行反量化,包括相连接的格点反量化子模块及能量反规整子模块,其中:
所述格点反量化子模块,用于求解索引矢量对应的D8格点,具体包括:
计算x=k*G,并计算ytemp=x/(2^(region_bit(j));
和计算D8格点y=x-fD8(ytemp)*(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
所述能量反规整子模块,用于对所求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))是缩放因子;
所述反归一化子单元对进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
X &OverBar; j m = 2 Th q ( j ) / 2 &CenterDot; Y &OverBar; j m
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
CN2009102498542A 2009-11-27 2009-11-27 格型矢量量化音频编解码方法和*** Active CN102081926B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN2009102498542A CN102081926B (zh) 2009-11-27 2009-11-27 格型矢量量化音频编解码方法和***
PCT/CN2010/001597 WO2011063594A1 (zh) 2009-11-27 2010-10-12 格型矢量量化音频编解码方法和***
EP10832501.0A EP2472241B1 (en) 2009-11-27 2010-10-12 Audio encoding/decoding method and system of lattice-type vector quantizing
BR112012009714-8A BR112012009714B1 (pt) 2009-11-27 2010-10-12 método de codificação de áudio de quantização de vetor de retículo, método de decodificação de áudio de quantização de vetor de retículo, sistema de cotificação de áudio de quantização de vetor de retículo e sistema de decodificação de áudio de quantização de vetor de retículo
US13/499,534 US9015052B2 (en) 2009-11-27 2010-10-12 Audio-encoding/decoding method and system of lattice-type vector quantizing
RU2012116045/08A RU2506698C9 (ru) 2009-11-27 2010-10-12 Способ кодирования/декодирования звука и система векторного квантования решетчатого типа
HK11112697.8A HK1158354A1 (en) 2009-11-27 2011-11-23 Audio encoding/decoding method and system of lattice-type vector quantizing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102498542A CN102081926B (zh) 2009-11-27 2009-11-27 格型矢量量化音频编解码方法和***

Publications (2)

Publication Number Publication Date
CN102081926A true CN102081926A (zh) 2011-06-01
CN102081926B CN102081926B (zh) 2013-06-05

Family

ID=44065830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102498542A Active CN102081926B (zh) 2009-11-27 2009-11-27 格型矢量量化音频编解码方法和***

Country Status (7)

Country Link
US (1) US9015052B2 (zh)
EP (1) EP2472241B1 (zh)
CN (1) CN102081926B (zh)
BR (1) BR112012009714B1 (zh)
HK (1) HK1158354A1 (zh)
RU (1) RU2506698C9 (zh)
WO (1) WO2011063594A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801427A (zh) * 2012-08-08 2012-11-28 深圳广晟信源技术有限公司 源信号变速率格矢量量化的编解码方法和***
CN104620315A (zh) * 2012-07-12 2015-05-13 诺基亚公司 矢量量化
WO2015081699A1 (zh) * 2013-12-02 2015-06-11 华为技术有限公司 一种编码方法及装置
CN105957533A (zh) * 2016-04-22 2016-09-21 杭州微纳科技股份有限公司 语音压缩方法、语音解压方法及音频编码器、音频解码器
CN105976824A (zh) * 2012-12-06 2016-09-28 华为技术有限公司 信号解码的方法和设备
CN106941004A (zh) * 2012-07-13 2017-07-11 华为技术有限公司 音频信号的比特分配的方法和装置
WO2018058989A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 一种音频信号的重建方法和装置
CN108028045A (zh) * 2015-07-06 2018-05-11 诺基亚技术有限公司 用于音频信号解码器的位错误检测器
CN108109629A (zh) * 2016-11-18 2018-06-01 南京大学 一种基于线性预测残差分类量化的多描述语音编解码方法和***
CN108496221A (zh) * 2016-01-26 2018-09-04 杜比实验室特许公司 自适应量化
CN108701462A (zh) * 2016-03-21 2018-10-23 华为技术有限公司 加权矩阵系数的自适应量化
CN108806712A (zh) * 2018-04-27 2018-11-13 深圳市沃特沃德股份有限公司 减少频域处理量的方法与装置
CN109286922A (zh) * 2018-09-27 2019-01-29 珠海市杰理科技股份有限公司 蓝牙提示音处理方法、***、可读存储介质和蓝牙设备
CN109644030A (zh) * 2016-08-10 2019-04-16 华为技术有限公司 单位范数码本设计和量化
WO2024021730A1 (zh) * 2022-07-27 2024-02-01 华为技术有限公司 音频信号的处理方法及其装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102804263A (zh) * 2009-06-23 2012-11-28 日本电信电话株式会社 编码方法、解码方法、利用了这些方法的装置、程序
US9560386B2 (en) * 2013-02-21 2017-01-31 Mozilla Corporation Pyramid vector quantization for video coding
US9665541B2 (en) 2013-04-25 2017-05-30 Mozilla Corporation Encoding video data using reversible integer approximations of orthonormal transforms
WO2014198726A1 (en) 2013-06-10 2014-12-18 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
CN105340010B (zh) 2013-06-10 2019-06-04 弗朗霍夫应用科学研究促进协会 用于通过应用分布量化和编码***音频信号包络的音频信号包络编码、处理和解码的装置和方法
CA2913578C (en) 2013-06-21 2018-05-22 Michael Schnabel Apparatus and method for generating an adaptive spectral shape of comfort noise
EP2824661A1 (en) 2013-07-11 2015-01-14 Thomson Licensing Method and Apparatus for generating from a coefficient domain representation of HOA signals a mixed spatial/coefficient domain representation of said HOA signals
EP3111560B1 (en) * 2014-02-27 2021-05-26 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for pyramid vector quantization indexing and de-indexing of audio/video sample vectors
WO2015162500A2 (ko) * 2014-03-24 2015-10-29 삼성전자 주식회사 고대역 부호화방법 및 장치와 고대역 복호화 방법 및 장치
CN106409303B (zh) * 2014-04-29 2019-09-20 华为技术有限公司 处理信号的方法及设备
US9847087B2 (en) 2014-05-16 2017-12-19 Qualcomm Incorporated Higher order ambisonics signal compression
EP2980792A1 (en) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for generating an enhanced signal using independent noise-filling
WO2016018185A1 (en) 2014-07-28 2016-02-04 Telefonaktiebolaget L M Ericsson (Publ) Pyramid vector quantizer shape search
US10366698B2 (en) * 2016-08-30 2019-07-30 Dts, Inc. Variable length coding of indices and bit scheduling in a pyramid vector quantizer
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
GB2585187A (en) * 2019-06-25 2021-01-06 Nokia Technologies Oy Determination of spatial audio parameter encoding and associated decoding
CN111554245B (zh) * 2020-05-22 2021-10-08 Tcl华星光电技术有限公司 显示装置的驱动方法和显示装置
RU2754497C1 (ru) * 2020-11-17 2021-09-02 федеральное государственное автономное образовательное учреждение высшего образования "Казанский (Приволжский) федеральный университет" (ФГАОУ ВО КФУ) Способ передачи речевых файлов по зашумленному каналу и устройство для его реализации

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3272214B2 (ja) * 1995-10-09 2002-04-08 三洋電機株式会社 格子量子化器および入力ベクトルを格子量子化するための方法
US6064954A (en) * 1997-04-03 2000-05-16 International Business Machines Corp. Digital audio signal coding
US6006179A (en) * 1997-10-28 1999-12-21 America Online, Inc. Audio codec using adaptive sparse vector quantization with subband vector classification
US6594627B1 (en) * 2000-03-23 2003-07-15 Lucent Technologies Inc. Methods and apparatus for lattice-structured multiple description vector quantization coding
KR20020075592A (ko) * 2001-03-26 2002-10-05 한국전자통신연구원 광대역 음성 부호화기용 lsf 양자화기
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
KR100487719B1 (ko) * 2003-03-05 2005-05-04 한국전자통신연구원 광대역 음성 부호화를 위한 엘에스에프 계수 벡터 양자화기
DE10345995B4 (de) * 2003-10-02 2005-07-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Verarbeiten eines Signals mit einer Sequenz von diskreten Werten
US7895034B2 (en) * 2004-09-17 2011-02-22 Digital Rise Technology Co., Ltd. Audio encoding system
FR2888699A1 (fr) * 2005-07-13 2007-01-19 France Telecom Dispositif de codage/decodage hierachique
US7953595B2 (en) * 2006-10-18 2011-05-31 Polycom, Inc. Dual-transform coding of audio signals
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
CN101266795B (zh) * 2007-03-12 2011-08-10 华为技术有限公司 一种格矢量量化编解码的实现方法及装置
EP2015293A1 (en) * 2007-06-14 2009-01-14 Deutsche Thomson OHG Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain
CN101110214B (zh) * 2007-08-10 2011-08-17 北京理工大学 一种基于多描述格型矢量量化技术的语音编码方法
US8527265B2 (en) * 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
CN101562015A (zh) * 2008-04-18 2009-10-21 华为技术有限公司 音频处理方法及装置
CN101540172B (zh) * 2009-04-15 2012-02-22 炬力集成电路设计有限公司 一种音频数据的编解码***及方法

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104620315B (zh) * 2012-07-12 2018-04-13 诺基亚技术有限公司 一种矢量量化的方法及装置
US10665247B2 (en) 2012-07-12 2020-05-26 Nokia Technologies Oy Vector quantization
CN104620315A (zh) * 2012-07-12 2015-05-13 诺基亚公司 矢量量化
CN106941004B (zh) * 2012-07-13 2021-05-18 华为技术有限公司 音频信号的比特分配的方法和装置
CN106941004A (zh) * 2012-07-13 2017-07-11 华为技术有限公司 音频信号的比特分配的方法和装置
CN102801427A (zh) * 2012-08-08 2012-11-28 深圳广晟信源技术有限公司 源信号变速率格矢量量化的编解码方法和***
CN102801427B (zh) * 2012-08-08 2015-05-06 深圳广晟信源技术有限公司 源信号变速率格矢量量化的编解码方法和***
CN105976824A (zh) * 2012-12-06 2016-09-28 华为技术有限公司 信号解码的方法和设备
US10971162B2 (en) 2012-12-06 2021-04-06 Huawei Technologies Co., Ltd. Method and device for decoding signal
US11610592B2 (en) 2012-12-06 2023-03-21 Huawei Technologies Co., Ltd. Method and device for decoding signal
US11289102B2 (en) 2013-12-02 2022-03-29 Huawei Technologies Co., Ltd. Encoding method and apparatus
WO2015081699A1 (zh) * 2013-12-02 2015-06-11 华为技术有限公司 一种编码方法及装置
RU2636697C1 (ru) * 2013-12-02 2017-11-27 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ кодирования
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
CN108028045A (zh) * 2015-07-06 2018-05-11 诺基亚技术有限公司 用于音频信号解码器的位错误检测器
CN108496221A (zh) * 2016-01-26 2018-09-04 杜比实验室特许公司 自适应量化
US10395664B2 (en) 2016-01-26 2019-08-27 Dolby Laboratories Licensing Corporation Adaptive Quantization
CN108496221B (zh) * 2016-01-26 2020-01-21 杜比实验室特许公司 自适应量化
US11632549B2 (en) 2016-03-21 2023-04-18 Huawei Technologies Co., Ltd. Adaptive quantization of weighted matrix coefficients
CN108701462A (zh) * 2016-03-21 2018-10-23 华为技术有限公司 加权矩阵系数的自适应量化
US11006111B2 (en) 2016-03-21 2021-05-11 Huawei Technologies Co., Ltd. Adaptive quantization of weighted matrix coefficients
CN105957533B (zh) * 2016-04-22 2020-11-10 杭州微纳科技股份有限公司 语音压缩方法、语音解压方法及音频编码器、音频解码器
CN105957533A (zh) * 2016-04-22 2016-09-21 杭州微纳科技股份有限公司 语音压缩方法、语音解压方法及音频编码器、音频解码器
US10700750B2 (en) 2016-08-10 2020-06-30 Huawei Technologies Co., Ltd. Unit-norm codebook design and quantization
CN109644030A (zh) * 2016-08-10 2019-04-16 华为技术有限公司 单位范数码本设计和量化
WO2018058989A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 一种音频信号的重建方法和装置
CN108109629A (zh) * 2016-11-18 2018-06-01 南京大学 一种基于线性预测残差分类量化的多描述语音编解码方法和***
CN108806712B (zh) * 2018-04-27 2020-08-18 深圳市沃特沃德股份有限公司 减少频域处理量的方法与装置
CN108806712A (zh) * 2018-04-27 2018-11-13 深圳市沃特沃德股份有限公司 减少频域处理量的方法与装置
CN109286922A (zh) * 2018-09-27 2019-01-29 珠海市杰理科技股份有限公司 蓝牙提示音处理方法、***、可读存储介质和蓝牙设备
CN109286922B (zh) * 2018-09-27 2021-09-17 珠海市杰理科技股份有限公司 蓝牙提示音处理方法、***、可读存储介质和蓝牙设备
WO2024021730A1 (zh) * 2022-07-27 2024-02-01 华为技术有限公司 音频信号的处理方法及其装置

Also Published As

Publication number Publication date
RU2012116045A (ru) 2014-01-10
RU2506698C2 (ru) 2014-02-10
BR112012009714A2 (pt) 2020-08-04
EP2472241A1 (en) 2012-07-04
US9015052B2 (en) 2015-04-21
US20120259644A1 (en) 2012-10-11
HK1158354A1 (en) 2012-07-13
RU2506698C9 (ru) 2014-07-20
EP2472241B1 (en) 2015-09-23
EP2472241A4 (en) 2013-04-17
WO2011063594A1 (zh) 2011-06-03
CN102081926B (zh) 2013-06-05
BR112012009714B1 (pt) 2021-01-19

Similar Documents

Publication Publication Date Title
CN102081926B (zh) 格型矢量量化音频编解码方法和***
CN102081927B (zh) 一种可分层音频编码、解码方法及***
CN102222505B (zh) 可分层音频编解码方法***及瞬态信号可分层编解码方法
CN1735925B (zh) 使用网格降低mpeg-2高级音频编码的比例因子传输成本
CN100546233C (zh) 用于支持多声道音频扩展的方法和设备
CN1942928B (zh) 用于处理音频信号的模块和方法
US9009036B2 (en) Methods and systems for bit allocation and partitioning in gain-shape vector quantization for audio coding
CN100459436C (zh) 一种音频编码中比特分配的方法
CN102208188A (zh) 音频信号编解码方法和设备
CN100539437C (zh) 一种音频编解码器的实现方法
CN101494054B (zh) 一种音频码率控制方法及***
CN109313908B (zh) 用于对音频信号进行编码的音频编码器以及方法
CN101790757A (zh) 语音与音频信号的改进的变换编码
EP1749296A1 (en) Multichannel audio extension
JP6600054B2 (ja) 方法、符号化器、復号化器、及び移動体機器
KR20130047643A (ko) 통신 시스템에서 신호 코덱 장치 및 방법
CN103778918A (zh) 音频信号的比特分配的方法和装置
CN103544957A (zh) 音频信号的比特分配的方法和装置
CN1458646A (zh) 一种滤波参数矢量量化和结合量化模型预测的音频编码方法
CN101105940A (zh) 音频编解码的量化方法、反变换方法及音频编解码装置
CN101419802A (zh) 矢量量化方法及矢量量化器
CN101308657A (zh) 一种基于先进音频编码器的码流合成方法
KR20060085117A (ko) 트리 구조 벡터 양자화를 이용한 스케일러블 음성 부호화장치
Oger et al. Companded lattice VQ for efficient parametric LPC quantization
CN103035249A (zh) 一种基于时频平面上下文的音频算术编码 方法

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: 1158354

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: 1158354

Country of ref document: HK