CN102081926A - 格型矢量量化音频编解码方法和*** - Google Patents
格型矢量量化音频编解码方法和*** Download PDFInfo
- 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
Links
- 239000013598 vector Substances 0.000 title claims abstract description 606
- 238000013139 quantization Methods 0.000 title claims abstract description 516
- 238000000034 method Methods 0.000 title claims abstract description 166
- 230000005236 sound signal Effects 0.000 claims abstract description 13
- 238000006243 chemical reaction Methods 0.000 claims abstract description 12
- 238000012937 correction Methods 0.000 claims description 94
- 238000011002 quantification Methods 0.000 claims description 62
- 238000010606 normalization Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 13
- 239000000945 filler Substances 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 8
- 238000012856 packing Methods 0.000 claims description 8
- 230000008447 perception Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 6
- 238000004806 packaging method and process Methods 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- JLYXXMFPNIAWKQ-UHFFFAOYSA-N γ Benzene hexachloride Chemical compound ClC1C(Cl)C(Cl)C(Cl)C(Cl)C1Cl JLYXXMFPNIAWKQ-UHFFFAOYSA-N 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0212—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding 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变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
进一步地,对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
进一步地,对各编码子带进行比特分配的过程包括:
计算单个频域系数的比特消耗平均值;
根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;
计算各编码子带在比特分配中的重要性初始值;
根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
进一步地,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
进一步地,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
进一步地,对所述低比特编码子带进行塔型格型矢量量化的过程包括:
使用编码子带的量化幅值包络值对该编码子带中所有频域系数进行归一化处理,并分组形成若干个8维待量化矢量;对各待量化矢量进行量化的过程包括以下步骤:;
对编码子带中的8维待量化矢量进行能量规整,将能量规整后的8维待量化矢量量化到D8格点;
将通过量化得到的D8格点的能量和编码码本中的最大塔面能量半径进行比较,如果小于或等于最大塔面能量半径,则计算所述D8格点在码本中的量化索引;如果大于最大塔面能量半径,则将该编码子带规整后的待量化矢量进行能量截断,直至能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径,同时对能量截断后的待量化矢量持续增加其自身的一个小能量,直至其量化到的D8格点的能量超过最大塔面能量半径,确定最后一个能量不超过最大塔面能量半径的D8格点为矢量量化格点并计算其在码本中的量化索引。
进一步地,对所述8维待量化矢量进行能量规整时,先根据所述8维待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),从下表中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
进一步地,对所述高比特编码子带进行球型格型矢量量化的过程:
使用编码子带的量化幅值包络值对该子带中所有频域系数进行归一化处理,并分组形成若干个多维待量化矢量;对各待量化矢量进行量化的过程包括以下步骤:
对编码子带中的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变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
进一步地,所述比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
进一步地,所述重要性计算模块中计算所述重要性初始值时,先计算单个频域系数的比特消耗平均值;再根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;之后再根据所述比特消耗平均值及最佳比特值计算各编码子带在比特分配中的重要性初始值;
所述比特分配模块根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
进一步地,所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。
进一步地,所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为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)、或将(其中μ>0,μ和v均为实数)作为各编码子带的比特分配重要性初始值,j=0,...,L-1。
C、将各编码子带的所述幅值包络的编码比特和所述频域系数的编码比特复用打包后,传送给解码端。
实施例1-编码方法
图1是本发明实施例一种格型矢量量化音频编码方法的结构示意图。本实施例中以帧长为20ms,采样率为32kHz的音频流为例具体说明本发明的音频编码方法。在其它帧长和采样率条件下,本发明的方法同样适用。如图1所示,该方法包括:
101:对待编码音频流实施MDCT(Modified Discrete Cosine Transform,修正离散余弦变换)得到N个频域采样点上的频域系数;
本步骤的具体实现方式可以是:
对实施MDCT变换,得到如下频域系数:
其中,w(n)表示正弦窗函数,表达式为:
当帧长为20ms,采样率为32kHz时,得到640个频域系数。其他帧长及采样率可同样算出相应的频域系数个数N。
102:将N点频域系数分成若干个编码子带,计算各个编码子带的幅值包络;
在本实施例中采用非均匀子带划分,计算各个子带的频域幅值包络(简称幅值包络)。
本步骤可以采用如下子步骤实现:
102a:将所需处理的频带范围内的频域系数分成L个子带(可以称为编码子带);
本实施例中,所需处理的频带范围是0~13.6kHz,可以按照人耳感知特性进行非均匀子带划分,表1给出了一个具体的划分方式。
在表1中将0~13.6kHz频带范围内的频域系数划分成28个编码子带,也就是L=28;并将13.6kHz以上的频域系数置为0。
102b:按照以下公式计算各编码子带的幅值包络:
其中,LIndex(j)和HIndex(j)分别表示第j个编码子带的起始频率点和结束频率点,其具体数值如表1所示。
表1 频域非均匀子带划分方式实例
103:对各编码子带的幅值包络值进行量化和编码,得到幅值包络的量化指数和幅值包络的量化指数编码比特(即幅值包络的编码比特);
采用以下公式(5)对根据公式(4)计算得到的各编码子带幅值包络进行量化,得到各编码子带幅值包络的量化指数:
使用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用于标识比特分配修正时的迭代次数(详见后续步骤中的描述)。
计算单个频域系数的比特消耗平均值
其中,L为编码子带的个数。
104b:根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;
通过拉格朗日方法优化基于独立高斯分布随机变量的码率失真度,可计算得到该码率失真度界限下各编码子带的最大量化信噪比增益条件下的最佳比特分配值为:
其中,
以及
104c:计算各编码子带在比特分配中的重要性初始值:
使用上述最佳比特值,以及符合人耳感知特性的比例因子,可以得到在实际比特分配中用于控制比特分配的各编码子带重要性的初始值:
其中α为比例因子,该因子跟编码比特率相关,可通过统计分析得到,通常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进行归一化处理:
将编码子带中连续的8个频域系数分组构成1个8维矢量。根据表1对编码子带的划分,编码子带j中的系数正好可以分组构成Lattice_D8(j)个8维矢量。各个归一化后分组的8维待量化矢量可表示为其中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格点定义如下:
其中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格点的量化值为:
对低比特编码子带的待量化矢量量化进行塔型格型矢量量化的过程包括:
203a、对待量化矢量进行能量规整
根据待量化矢量所在编码子带j中单个频域系数所分配的比特数region_bit(j),从以下表2中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
需要说明的是以下表2是根据统计得到的,其统计方法为:
首先将scale限制在一定范围中并以特定步长1计算采用相应步长条件下塔式格型矢量量化和反量化在某个量化比特数条件下对应的均方误差值,寻找最小均方误差值对应的Scale值所在的特定区域范围,以特定步长2搜索塔式格型矢量量化和反量化在某个量化比特数条件下对应的均方误差值,寻找最小均方误差值对应的Scale值,该值为某个量化比特条件下对应的Scale值。
表2 塔型格型矢量量化比特数与码本序号、能量缩放因子及最大塔面能量半径的对应关系
203b:将能量规整后的矢量量化到格点上
其中,表示将某个8维矢量映射到D8格点的量化算子。
如果该格点的塔面能量大于最大塔面能量半径,则将该编码子带规整后的待量化矢量进行能量截断,直到能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径;这时对能量截断后的待量化矢量持续增加其自身的一个小能量,直至其量化到D8格点的能量超过最大塔面能量半径;取最后一个能量不超过最大塔面能量半径的D8格点作为待量化矢量的量化值,即作为生成矢量量化索引的格点。
步骤1:根据塔面能量的大小,分别对各个塔面上的格点进行标号。
对于维数为L的整数格点网格ZL,定义能量半径为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)。定义:
步骤1.2:如果yi=0,则b=b+0;
果|yi|=1,则 如果|yi|>1,则
步骤1.3:k=k-|yi|,l=l-1,i=i+1,如果此时k=0,则停止搜索,b为Y的标号,否则继续步骤1.2)。
步骤2:对所有塔面上的格点进行统一标号。
根据各个塔面的格点数和每个格点在各自塔面上的标号,计算每个格点在全体塔面中的标号:
203d:重复以上步骤203a~203c,直到所有编码比特大于0但小于阈值5的编码子带的各个8维矢量都完成矢量量化索引的计算;
204:对高比特编码子带采用球型格型矢量量化方法进行量化;
高比特编码子带j所分配到的比特数满足:5<=region_bit(j)<=9。
此处同样采用基于D8格的8维格型矢量量化。
对高比特编码子带的待量化矢量进行球型格型矢量量化的过程包括:
204a:对待量化矢量进行能量规整
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),
而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)后再投影到量化格点的量化值,即是否为零矢量,如果是则执行步骤204c,否则对能量规整后的矢量进行能量截断后再量化到格点上;
判断量化格点值除以2的比特分配数次方2region_bit(j)后再投影到量化格点的量化值是否为零矢量,即它的各个分量是否都为零,如果是则称为零矢量条件满足,否则称为零矢量条件不满足。
如果零矢量条件满足,直接执行步骤204c;
如果零矢量条件不满足,对能量规整后的矢量进行能量截断,本实施例中将的值除以2,直至零矢量条件成立;并备份自身的小倍数值为w,然后对能量截断后的矢量加上备份的小倍数值w,再量化到D8格点,判断零矢量条件是否满足;如果零矢量条件不满足,则将最近满足零矢量条件的D8格点作为待量化矢量的量化格点,否则继续对矢量增加备份的小倍数值w,然后再量化到D8格点,直至零矢量不条件满足。
对待量化矢量进行能量截断的具体过程可以用下面伪代码描述:
矢量量化的索引可由下面的索引矢量生成公式得到:
输出此时D8格点的索引矢量k,其中G为D8格点的生成矩阵,形式如下:
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查找。
更新采用霍夫曼编码后的比特消耗总数:
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;plvq_bit_count和plvq_code根据表4查找。
更新采用霍夫曼编码后的比特消耗总数:
其中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查找。
更新采用霍夫曼后的比特消耗总数:
其中plvq_count(j,k),和plvq_codebook(j,k)分别为j子带第k个8维矢量的霍夫曼比特消耗数和码字;码本plvq_bit_count_r1_3和plvq_code_r1_3根据表7查找。
更新采用霍夫曼后的比特消耗总数:
表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),用公式表示为:
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格点进行能量反规整,得到
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(index)是缩放因子,可从表2查找到。
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
406:对高比特编码子带进行解码、球型格型矢量量化的反量化及反归一化,得到高比特编码子带的频域系数;
对高比特编码子带的编码比特直接进行自然解码得到高比特编码子带j的第m个索引矢量k,对该索引矢量进行球型格型矢量量化的反量化过程实际上是量化过程的逆过程,具体步骤如下:
406a)计算x=k*G,并计算ytemp=x/(2^(region_bit(j));其中,k为矢量量化的索引矢量,region_bit(j)表示编码子带j中单个频域系数的比特分配数;G为D8格点的生成矩阵,形式如下:
406b)计算y=x-fD8(ytemp)*(2^(region_bit(j));
406c)对所求D8格点进行能量反规整,得到
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(region_bit(j))是缩放因子,可从表3查找到。
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
406:将各编码子带的频域系数按频率大小顺序排列,对编码过程中未分配编码比特的子带或传输过程中丢失了的子带进行噪声填充和带宽扩展;
407:对噪声填充和带宽扩展后的频域系数进行IMDCT(InverseModified Discrete Cosine Transform,修正离散余弦逆变换),得到最终的音频输出信号。
三、编码***
为实现以上编码方法,本发明还提供了一种格型矢量量化音频编码***,如图5所示,该***包括该***包括修正离散余弦变换(MDCT)单元、幅值包络计算单元、幅值包络量化和编码单元、比特分配单元、归一化处理单元、分类格型矢量量化和编码单元;其中:
MDCT单元,用于对音频信号进行修正离散余弦逆变换变换生成频域系数;
幅值包络计算单元,与所述MDCT单元连接,用于将所述MDCT生成的频域系数划分为若干个编码子带,并计算各编码子带的幅值包络值;
幅值包络计算单元划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
幅值包络量化和编码单元,与所述幅值包络计算单元连接,用于将各编码子带的幅值包络值进行量化和编码,生成各编码子带幅值包络的编码比特;
比特分配单元,与所述幅值包络量化和编码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
具体地,比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
所述重要性计算模块计算所述重要性初始值时,先计算单个频域系数的比特消耗平均值;再根据码率失真理论计算在最大量化信噪比增益条件下的最佳比特值;之后再根据所述比特消耗平均值及最佳比特指计算各编码子带在比特分配中的重要性初始值;
所述比特分配模块根据各编码子带的重要性对各编码子带进行比特分配:增加重要性最大的编码子带中每个频域系数的编码比特数,并降低该编码子带的重要性;直至所有编码子带所消耗比特数的总和满足可提供比特限制条件下的最大值。
所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长小于零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长。如:所述比特分配模块进行比特分配时,低比特编码子带的比特分配步长及比特分配后的重要性降低步长均为0.5;零比特编码子带和高比特编码子带的比特分配步长及比特分配后的重要性降低步长均为1。
归一化处理单元,与MDCT单元连接,用于使用编码子带的量化幅值包络值对各编码子带中所有频域系数进行归一化处理;
分类格型矢量量化和编码单元,与所述归一化处理单元及比特分配单元连接,用于对低比特编码子带和高比特编码子带中的归一化后的待量化矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到频域系数的编码比特;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
比特流复用器(MUX),与所述幅值包络量化和编码单元以及分类格型矢量量化和编码单元连接,用于将各编码子带的编码比特以及频域系数的编码比特复用并发送到解码端。
以下结合图6对分类格型矢量量化和编码单元进行详细描述:
如图6所示,分类格型矢量量化和编码单元包括分类处理模块、塔型格型矢量量化模块、球型格型矢量量化模块、编码类型判断模块、霍夫曼编码模块、自然编码模块及比特分配修正模块,其中:
分类处理模块,与所述归一化处理单元连接,用于对归一化后的频域系数进行分组形成8维待量化矢量,将低比特编码子带归一化后的待量化矢量转给塔型格型矢量量化器;还用于将高比特编码子带归一化处理后的待量化矢量转给球型格型矢量量化模块处理;
塔型格型矢量量化模块,与所述分类处理模块连接,用于对各低比特编码子带归一化处理后的待量化矢量进行塔型格型矢量量化,包括能量规整子模块、格点量化子模块、能量调整子模块及量化索引计算子模块,其中:
能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;
所述能量规整子模块对所述8维待量化矢量进行能量规整时,还用于先根据所述8维待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),从前述表2中查询到该比特数所对应的码本序号index和能量缩放因子scale;然后根据下面的公式对待量化矢量进行能量规整:
格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
能量调整子模块,与所述格点量化子模块连接,用于将D8格点的能量和编码码本中的最大塔面能量半径进行比较,如果小于或等于最大塔面能量半径,则通知所述量化索引计算子模块计算所述D8格点在码本中的量化索引;如果大于最大塔面能量半径,还用于将该编码子带规整后的待量化矢量进行能量截断,并通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至能量截断后的待量化矢量的量化格点的能量不大于最大塔面能量半径,同时对能量截断后的待量化矢量持续增加其自身的一个小能量,并通知所述格点量化子模块将增加小能量后的待量化矢量量化到D8格点,直至其量化到的D8格点的能量超过最大塔面能量半径,还用于通知量化索引计算子模块计算最后一个能量不超过最大塔面能量半径的D8格点在码本中的量化索引;
索引量化计算模块,与所述能量调整子模块连接,用于根据能量调整子模块的通知计算所述D8格点在码本中的量化索引。
球型格型矢量量化模块,与所述分类处理模块连接的,用于对高比特编码子带归一化处理后的待量化矢量进行球型格型矢量量化,包括能量规整子模块、格点量化子模块、零矢量条件判断子模块、能量调整子模块及索引矢量计算子模块,其中:
能量规整子模块,用于对编码子带中的8维待量化矢量进行能量规整;所述能量规整子模块,对所述8维待量化矢量进行能量规整时,先根据待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),查询到该比特数所对应和能量缩放因子scale(region_bit(j));然后根据下面的公式第m个对待量化矢量进行能量规整:
而scale(region_bit(j))表示编码子带中单个频域系数的比特分配数为region_bit(j)时的能量缩放因子,根据表3可查到它们的对应关系;
格点量化子模块,与所述能量规整子模块连接,用于将8维待量化矢量量化到D8格点;
零矢量条件判断子模块,与所述格点量化子模块连接,用于判断所述D8格点是否满足零矢量条件,具体包括,能量规整后的格点满足零矢量条件时,通知索引矢量计算子模块计算所述格点的索引矢量;能量规整后的格点不满足零矢量条件时,通知所述能量调整子模块;所述零矢量条件是指将通过矢量量化得到的D8格点值除以2的比特分配数次方2region_bit(j)后再投影到D8格点,投影的D8格点值是零矢量,其中region_bit(j)表示第j个编码子带中单个频域系数所分配到的比特数;
能量调整子模块,与所述零矢量条件判断子模块及格点量化子模块连接,用于将待量化矢量的值进行截断,并通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件满足;还用于备份待量化矢量自身的小倍数值w,对能量截断后的待量化矢量加上备份的小倍数值w,以及通知所述格点量化子模块将能量截断后的待量化矢量量化到D8格点,直至零矢量条件不满足,还用于通知索引矢量计算子模块计算最近满足零矢量条件的D8格点的索引矢量;
索引矢量计算子模块,用于与所述零矢量条件判断子模块及能量调整子模块连接,用于根据零矢量条件判断子模块及能量调整子模块的通知计算所述D8格点在码本中的量化索引。
,其中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。
分类格型矢量量化反量化单元,用于对低比特编码子带的量化索引进行塔型格型矢量量化的反量化,以及对高比特编码子带的索引矢量进行球型格型矢量量化的反量化;
反归一化处理单元,用于对编码子带反量化后的值进行反归一化,得到频域系数;
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
噪声填充单元,用于对频域系数生成单元输出的频域系数输出值中未分配比特的子带进行噪声填充;
修正离散余弦逆变换(IMDCT)单元,与所述噪声填充单元连接,用于对噪声填充后的频域系数进行IMDCT,得到的音频信号。
以下结合图8对分类格型矢量量化反量化单元进行详细说明:
如图8所示,分类格型矢量量化反量化单元包括分类处理模块、塔型格型矢量量化反量化模块及球型格型矢量量化反量化模块,其中:
分类处理模块,用于将低比特编码子带的量化索引转给塔型格型矢量量化器;还用于将高比特编码子带的索引矢量转给球型格型矢量量化模块处理;
塔型格型矢量量化反量化模块,用于塔型格型矢量量化反量化模块对低比特编码子带的量化索引进行反量化,包括相连接的格点反量化子模块及能量反规整子模块,其中:
格点反量化子模块,用于确定低比特编码子带的量化索引所在的能量塔面及在该能量塔面上的标号,以及进一步求解对应的D8格点;
能量反规整子模块,用于对所求D8格点进行能量反规整,得到
其中,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格点的生成矩阵,形式如下:
能量反规整子模块用于对所求D8格点进行能量反规整,得到
其中,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所述的方法,其特征在于,
对各编码子带进行比特分配前,先根据编码子带幅值包络值计算各编码子带重要性的初始值,再根据编码子带的重要性对编码子带中每个频域系数进行比特分配,在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
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;然后根据下面的公式对待量化矢量进行能量规整:
步骤1:根据塔面能量的大小,分别对各个塔面上的格点进行标号,
对于维数为L的整数格点网格ZL,定义能量半径为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),并定义:
步骤1.2:如果yi=0,则b=b+0;
果|yi|=1,则
如果|yi|>1,则
步骤1.3:k=k-|yi|,l=l-1,i=i+1,如果此时k=0,则停止搜索,b(j,m)=b为Y的标号,否则继续步骤1.2;
步骤2:在所有塔面上对该格点进行统一标号,
根据各个塔面的格点数和格点在自己的塔面上的标号,计算该格点在全体塔面中的标号,
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维待量化矢量进行能量规整时,先根据待量化矢量所在编码子带j中单个频域系数所分配到的比特数region_bit(j),查询到该比特数所对应和能量缩放因子scale(region_bit(j));然后根据下面的公式第m个对待量化矢量进行能量规整:
而scale(region_bit(j))表示编码子带中单个频域系数的比特分配数为region_bit(j)时的能量缩放因子,根据下表查寻到它们的对应关系;
采用以下公式将编码子带j中进行能量规整后的第m个待量化矢量映射到D8的格点上:
,其中region_bit(j)表示编码子带j中单个频域系数的比特分配数;G为D8格点的生成矩阵,形式如下:
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格点进行能量反规整,得到
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(index)是缩放因子,可从表2查找到;
其中,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格点的生成矩阵,形式如下:
b)计算y=x-fD8(ytemp)*(2^(region_bit(j));
c)对所求D8格点进行能量反规整,得到
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(region_bit(j))是缩放因子,可从表3查找到;
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
27.一种格型矢量量化音频编码***,其特征在于,该***包括修正离散余弦变换(MDCT)单元、幅值包络计算单元、幅值包络量化和编码单元、比特分配单元、归一化处理单元、分类格型矢量量化和编码单元;其中:
所述MDCT单元,用于对音频信号进行修正离散余弦变换生成频域系数;
所述幅值包络计算单元,与所述MDCT单元连接,用于将所述MDCT生成的频域系数划分为若干个编码子带,并计算各编码子带的幅值包络值;
所述幅值包络量化和编码单元,与所述幅值包络计算单元连接,用于将各编码子带的幅值包络值进行量化和编码,生成各编码子带幅值包络的编码比特;
所述比特分配单元,与所述幅值包络量化和编码单元连接,用于进行比特分配,得到各编码子带中为每个频域系数所分配的编码比特数;
归一化处理单元,与MDCT单元连接,用于使用编码子带的量化幅值包络值对各编码子带中所有频域系数进行归一化处理;
所述分类格型矢量量化和编码单元,与所述归一化处理单元及比特分配单元连接,用于对低比特编码子带和高比特编码子带中的归一化后的待量化矢量分别使用塔型格型矢量量化方法和球型格型矢量量化方法进行量化和编码,得到频域系数的编码比特;其中,所述低比特编码子带是指该编码子带中单个频域系数所分配到的比特数小于预设阈值的编码子带,所述高比特编码子带是指该编码子带中单个频域系数所分配到的比特数大于或等于预设阈值的编码子带;
比特流复用器,与所述幅值包络量化和编码单元以及分类格型矢量量化和编码单元连接,用于将各编码子带的编码比特以及频域系数的编码比特复用并发送到解码端。
28.如权利要求27所述的***,其特征在于,
所述幅值包络计算单元划分编码子带时,将所述MDCT变换后的频域系数分成若干个等间隔的编码子带,或者按照听觉感知特性划分成若干个非均匀编码子带。
29.如权利要求27所述的***,其特征在于,
所述比特分配单元包括相连接的重要性计算模块及比特分配模块,其中:
重要性计算模块用于根据编码子带幅值包络值计算各编码子带重要性的初始值;
所述比特分配模块用于根据各编码子带的重要性对编码子带中每个频域系数进行比特分配,且在比特分配过程中,比特分配步长及比特分配后重要性降低的步长均是变化的。
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;然后根据下面的公式对待量化矢量进行能量规整:
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个对待量化矢量进行能量规整:
而scale(region_bit(j))表示编码子带中单个频域系数的比特分配数为region_bit(j)时的能量缩放因子,根据下表查找它们的对应关系;
,其中region_bit(j)表示编码子带j中单个频域系数的比特分配数;G为D8格点的生成矩阵,形式如下:
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进行能量反规整,得到
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(index)是缩放因子;
其中,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格点的生成矩阵,形式如下:
所述能量反规整子模块,用于对所求D8格点进行能量反规整,得到
其中,a=(2-6,2-6,2-6,2-6,2-6,2-6,2-6,2-6),scale(region_bit(j))是缩放因子;
所述反归一化子单元对进行反归一化处理,得到解码端恢复出的编码子带j的第m个矢量的频域系数:
其中,Thq(j)为第j个编码子带的幅值包络量化指数。
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)
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)
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)
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 | 炬力集成电路设计有限公司 | 一种音频数据的编解码***及方法 |
-
2009
- 2009-11-27 CN CN2009102498542A patent/CN102081926B/zh active Active
-
2010
- 2010-10-12 BR BR112012009714-8A patent/BR112012009714B1/pt active IP Right Grant
- 2010-10-12 US US13/499,534 patent/US9015052B2/en active Active
- 2010-10-12 WO PCT/CN2010/001597 patent/WO2011063594A1/zh active Application Filing
- 2010-10-12 RU RU2012116045/08A patent/RU2506698C9/ru active
- 2010-10-12 EP EP10832501.0A patent/EP2472241B1/en active Active
-
2011
- 2011-11-23 HK HK11112697.8A patent/HK1158354A1/xx unknown
Cited By (33)
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 |