Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HIERARCHICAL AUDIO CODING, DECODING METHOD AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2011/063694
Kind Code:
A1
Abstract:
A hierarchical audio coding, decoding method and system are provided. The hierarchical audio coding method includes: dividing the frequency domain coefficients of audio signal processed by Modified Discrete Cosine Transform (MDCT) into several coding sub-bands, and quantizing and coding the amplitude envelope value of the coding sub-bands; distributing bits for each coding sub-band of the core layer, and quantizing and coding the frequency domain coefficients of the core layer to obtain the coding bits of the frequency domain coefficients of the core layer; calculating the amplitude envelope value of each coding sub-band of the residual signal of the core layer; distributing the bits of each coding sub-band of the extended layer, and quantizing and coding the coding signal of the extended layer to obtain the coding bits of the coding signal of the extended layer; multiplexing and packaging the amplitude value envelope coding bits of each coding sub-band composed by the frequency domain coefficients of the core layer and the extended layer, the coding bits of the frequency coefficients of the core layer, and the coding bits of the coding signal of the extended layer, and then transmitting to the end of the decoding end.

Inventors:
LIN ZHIBIN (CN)
DENG ZHENG (CN)
YUAN HAO (CN)
LU JING (CN)
QIU XIAOJUN (CN)
LI JIALI (CN)
CHEN GUOMING (CN)
PENG KE (CN)
LIU KAIWEN (CN)
Application Number:
PCT/CN2010/078126
Publication Date:
June 03, 2011
Filing Date:
October 26, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
LIN ZHIBIN (CN)
DENG ZHENG (CN)
YUAN HAO (CN)
LU JING (CN)
QIU XIAOJUN (CN)
LI JIALI (CN)
CHEN GUOMING (CN)
PENG KE (CN)
LIU KAIWEN (CN)
International Classes:
G01L19/00; G10L19/002; G10L19/02; G10L19/24; H03M7/30; G10L19/028; G10L19/038
Foreign References:
CN101206860A2008-06-25
CN101562015A2009-10-21
CN101521014A2009-09-02
US5684920A1997-11-04
US20060122830A12006-06-08
CN101253557A2008-08-27
CN101044552A2007-09-26
Other References:
See also references of EP 2482052A4
Attorney, Agent or Firm:
AFD CHINA INTELLECTUAL PROPERTY LAW OFFICE (CN)
北京安信方达知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1、 一种可分层音频编码方法, 该方法包括:

将音频信号经过修正离散余弦变换 MDCT后的频域系数, 划分为核心层 频域系数和扩展层频域系数, 将所述核心层频域系数和扩展层频域系数划分 成多个编码子带, 并对所述编码子带的幅值包络值进行量化和编码;

根据核心层各编码子带的幅值包络值对核心层各编码子带进行比特分 配,然后对核心层频域系数进行量化和编码得到核心层频域系数的编码比特; 根据核心层各编码子带的幅值包络值和比特分配数计算核心层残差信号 各编码子带的幅值包络值;

根据由核心层残差信号和扩展层频域系数构成的扩展层编码信号和由所 述扩展层编码信号构成的各编码子带的幅值包络值对扩展层各编码子带进行 比特分配, 然后对扩展层编码信号进行量化和编码得到扩展层编码信号的编 码比特; 以及

将核心层频域系数和扩展层频域系数构成的各编码子带的幅值包络编码 比特、核心层频域系数的编码比特和扩展层编码信号的编码比特复用打包后, 传送给解码端。

2、 如权利要求 1所述的方法, 其中, 在将音频信号经过修正离散余弦变 换 MDCT后的频域系数, 划分为核心层频域系数和扩展层频域系数, 将所述 核心层频域系数和扩展层频域系数划分成多个编码子带的步骤中,

将 MDCT变换后的频域系数分成多个等间隔编码子带,或者按照听觉感 知特性划分成多个非均勾编码子带;将低频编码子带划分为核心层编码子带, 将高频编码子带划分为扩展层编码子带。

3、 如权利要求 1所述的方法, 其中,

在对核心层频域系数和扩展层编码信号进行量化和编码的步骤中, 对比特分配数小于分类阔值的编码子带的待量化矢量釆用塔型格型矢量 量化方法进行量化和编码, 对比特分配数大于所述分类阔值的编码子带的待 量化矢量釆用球型格型矢量量化方法进行量化和编码; 比特分配数是一个编码子带中单个频域系数所分配到的比特数。

4、 如权利要求 1所述的方法, 其中, 在根据核心层各编码子带的幅值包 络值和比特分配数计算核心层残差信号各编码子带的幅值包络值的步骤中, 釆用如下方法计算核心层残差信号各编码子带的幅值包络值:

对核心层频域系数的量化值进行反量化, 并与核心层频域系数进行差计 算, 得到核心层残差信号;

将核心层残差信号按与核心层频域系数相同的方法划分成编码子带, 根 据核心层各编码子带幅值包络值和比特分配数推算出核心层残差信号各编码 子带的幅值包络值。

5、 如权利要求 4所述的方法, 其中, 推算出核心层残差信号各编码子带 的幅值包络值的步骤包括:

计算核心层各编码子带的幅值包络量化指数, 并与对应编码子带的量化 指数修正值进行差计算, 得到核心层残差信号各编码子带的幅值包络量化指 数;

各编码子带的量化指数修正值大于等于 0, 且当核心层对应编码子带的 比特分配数增加时不减小; 以及

当核心层的编码子带的比特分配数为 0时, 量化指数修正值为 0, 当核 心层的编码子带的比特分配数为所限定的最大比特分配数时, 核心层残差信 号在该编码子带的幅值包络值为零。

6、 如权利要求 1所述的方法, 其中, 得到核心层频域系数的编码比特的 步骤包括:

计算核心层各编码子带的幅值包络量化指数, 对核心层各编码子带进行 比特分配; 以及

根据核心层各编码子带的幅值包络量化指数重建的核心层各编码子带的 量化幅值包络值对各编码子带的频域系数进行归一化, 根据核心层各编码子 带的比特分配数分别使用塔型格型矢量量化方法和球型格型矢量量化方法进 行量化和编码, 得到核心层频域系数的编码比特;

其中, 得到扩展层编码信号的编码比特的步骤包括: 用核心层残差信号和扩展层频域系数构成扩展层编码信号; 根据扩展层编码信号各编码子带的幅值包络量化指数, 对扩展层各编码 子带进行比特分配; 以及

根据扩展层各编码子带的幅值包络量化指数重建的扩展层各编码子带的 量化幅值包络值对各编码子带的编码信号进行归一化, 根据扩展层各编码子 带的比特分配数分别使用塔型格型矢量量化方法和球型格型矢量量化方法进 行量化和编码, 得到扩展层编码信号的编码比特。

7、 如权利要求 1所述的方法, 其中, 在核心层频域系数和扩展层频域系 数构成的各编码子带的幅值包络编码比特、 核心层频域系数的编码比特和扩 展层编码信号的编码比特复用打包后, 传送给解码端的步骤中,

按照如下码流格式进行复用打包:

将核心层的边信息比特写入码流的帧头后面, 将核心层的编码子带幅值 包络编码比特写入比特流复用器 MUX,然后将核心层频域系数的编码比特写 入 MUX; 以及将扩展层的边信息比特写入 MUX, 将扩展层频域系数编码子 带的幅值包络编码比特写入 MUX, 然后将扩展层编码信号的编码比特写入 MUX;

根据所要求的码率, 将满足码率要求的比特数传送到解码端。

8、 如权利要求 7所述的方法, 其中,

核心层的边信息包括 MDCT系数构成的编码子带幅值包络的霍夫曼编码 标志位比特、 核心层频域系数的霍夫曼编码标志位比特和迭代次数比特; 扩展层的边信息包括扩展层编码信号的霍夫曼编码标志位比特和迭代次 数比特。

9、 如权利要求 7所述的方法, 其中, 将满足码率要求的比特数传送到 解码端的步骤包括:

按照所限定的最大编码码率的比特数在整个所需编码的频带范围内, 对 核心层和扩展层编码, 使得在编码频带范围内达到最大编码码率;

在核心层编码比特之后, 将扩展层编码信号的编码比特按照各编码子带 重要性初始值从大到小的顺序写入比特流复用器; 以及 按照将编码子带重要性初始值小的编码子带的编码比特先舍去的原则, 将满足码率要求的比特数传送到解码端;

其中,将核心层对应的码率记为 L0层,根据扩展层舍去比特数的多少将 扩展层对应的各个码率分别记为 LI— 1层、 L1— 2层、直至 LI— K层,其中 LI— K 层的码率就是所述最大编码码率。

10、 如权利要求 1至 4中任一权利要求所述的方法, 其中,

在将音频信号经过修正离散余弦变换 MDCT后的频域系数, 划分为核心 层频域系数和扩展层频域系数的步骤之后, 所述方法还包括: 把扩展层的频 域系数按照频率从小到大的顺序分成 M个部分, 它们分别是扩展层 1到扩展 层 M的频域系数, 其中扩展层 1中频域系数的频率最小, 扩展层 M中频域 系数的频率最大;

在对核心层频域系数进行量化和编码的步骤之后, 所述方法还包括: 对 核心层频域系数的量化值进行反量化, 并与核心层频域系数进行差计算, 得 到核心层残差信号;

在所述根据核心层各编码子带的幅值包络值和比特分配数计算核心层残 差信号各编码子带的幅值包络值的步骤中, 将核心层残差信号按与核心层相 同的方法划分成编码子带, 根据核心层各编码子带的幅值包络值和比特分配 数推算出核心层残差信号各编码子带的幅值包络值;

在所述根据由核心层残差信号和扩展层频域系数构成的扩展层编码信号 和由所述扩展层编码信号构成的各编码子带的幅值包络值对扩展层各编码子 带进行比特分配, 然后对扩展层编码信号进行量化和编码得到扩展层编码信 号的编码比特的步骤中,

用核心层残差信号和扩展层 1的频域系数构成扩展层 1的编码信号, 根 据扩展层 1的编码信号计算各编码子带的幅值包络量化指数, 对扩展层 1各 编码子带进行比特分配; 根据扩展层 1的各编码子带的比特分配数对扩展层 1的编码信号进行量化和编码;

对扩展层 i的编码信号的量化值进行反量化,并与扩展层 i的编码信号进 行差计算, 得到扩展层 1的残差信号; 将扩展层 i的残差信号按与扩展层 i相同的方法划分成编码子带,根据扩 展层 i的各编码子带幅值包络值和比特分配数推算出扩展层 i的残差信号各子 带的幅值包络值;

根据扩展层 i的残差信号和扩展层 i+1的频域系数构成扩展层 i+1的编码 信号, 根据扩展层 i+1 的编码信号各编码子带的幅值包络量化指数, 对扩展 层 i+1的各编码子带进行比特分配; 以及

根据扩展层 i+1各编码子带的幅值包络量化指数重建的扩展层 i+1各编码 子带的量化幅值包络值和编码比特数对扩展层 i+1 各编码子带的编码信号进 行归一化、 矢量量化和编码, 得到扩展层 i+1的编码信号的编码比特;

所述 i=l,....N-l , N为大于 2的正整数。

11、 如权利要求 1或 7所述的方法, 其中, 在将核心层频域系数和扩展 层频域系数构成的各编码子带的幅值包络编码比特、 核心层频域系数的编码 比特和扩展层编码信号的编码比特复用打包的处理中,

按照如下码流格式进行复用打包:

在核心层的编码比特之后, 根据扩展层编号的大小, 将编号小的扩展层 的比特先写入比特流复用器 MUX,然后将编号大的扩展层的比特再写入比特 流复用器 MUX;

在同一个扩展层中,先将该扩展层的边信息比特写入 MUX, 然后将该扩 展层频域系数编码子带的幅值包络编码比特写入 MUX,然后将该扩展层编码 信号的编码比特写入 MUX;

根据所要求的码率, 将满足码率要求的比特数传送到解码端。

12、 一种可分层音频解码方法, 该方法包括:

对编码端传送过来的比特流进行解复用, 对核心层频域系数的幅值包络 编码比特进行解码, 得到核心层各编码子带的幅值包络值;

根据核心层各编码子带的幅值包络值, 对核心层各编码子带进行比特分 配, 并推算出核心层残差信号的幅值包络值; 对扩展层的频域系数幅值包络 编码比特进行解码, 得到扩展层频域系数幅值包络值; 根据核心层残差信号 的幅值包络值和扩展层频域系数幅值包络值对扩展层各编码子带进行比特分 配; 以及

根据核心层的比特分配数和扩展层的比特分配数, 分别对核心层频域系 数编码比特和扩展层编码信号的编码比特进行解码, 得到核心层频域系数和 扩展层编码信号, 将扩展层编码信号按照频带顺序重新排列, 并和核心层频 域系数相加, 得到全体带宽的频域系数, 对全体带宽的频域系数进行修正离 散余弦逆变换 IMDCT, 得到输出的音频信号。

13、 如权利要求 12所述的方法, 其中, 推算出核心层残差信号的幅值包 络值的步骤包括:

计算核心层各编码子带的幅值包络量化指数, 并与对应编码子带的量化 指数修正值进行差计算, 得到核心层残差信号各编码子带的幅值包络量化指 数;

根据扩展层 i的各编码子带幅值包络和比特分配数推算出扩展层 i的残差 信号各子带的幅值包络值;

各编码子带的量化指数修正值大于等于 0, 且当核心层对应编码子带的 比特分配数增加时不减小; 以及

当核心层的编码子带的比特分配数为 0时, 量化指数修正值为 0, 当编 码子带的比特分配数为所限定的最大比特分配数时, 核心层残差信号在该编 码子带的幅值包络值为零。

14、 如权利要求 12所述的方法, 其中, 得到核心层频域系数和扩展层编 码信号的步骤包括:

根据核心层各编码子带的比特分配数、 量化幅值包络值和边信息对核心 层频域系数编码比特进行解码、 反量化及反归一化处理, 得到核心层频域系 数; 以及

根据扩展层各编码子带的比特分配数、 扩展层编码信号的量化幅值包络 值和边信息对该扩展层编码信号的编码比特进行解码、 反量化及反归一化处 理, 得到扩展层编码信号。

15、 如权利要求 12或 14所述的方法, 其中, 在对扩展层编码信号的编 码比特进行解码的步骤中, 釆用如下顺序对扩展层编码信号的编码比特进行解码:

在不同的扩展层中, 各层解码的顺序是先对扩展层编号小的低扩展层的 幅值包络和各编码子带的编码比特进行解码, 然后再对扩展层编号大的高扩 展层的幅值包络和各编码子带的编码信号进行解码, 解码过程中计算已解码 的比特数, 当已解码的比特数满足总比特数要求时停止解码;

在同一个扩展层中, 各编码子带解码的顺序是根据各个编码子带重要性 的初始值决定的, 重要性大的编码子带优先解码, 如果有两个编码子带具有 相同的重要性, 则低频编码子带优先解码, 解码过程中计算已解码的比特数, 当已解码的比特数满足总比特数要求时停止解码。

16、 一种可分层音频编码系统, 该系统包括: 修正离散余弦变换 MDCT 单元、 幅值包络计算单元、 幅值包络量化和编码单元、 核心层比特分配单元、 核心层频域系数矢量量化和编码单元以及比特流复用器; 该系统还包括: 扩 展层编码信号生成单元、 残差信号幅值包络生成单元、 扩展层比特分配单元 以及扩展层编码信号矢量量化和编码单元; 其中:

所述 MDCT单元设置为, 对输入的音频信号进行修正离散余弦变换, 生 成核心层频域系数和扩展层频域系数;

所述幅值包络计算单元设置为, 将所述核心层频域系数和扩展层频域系 数中待编码的部分划分为核心层频域系数编码子带和扩展层频域系数编码子 带, 并计算各编码子带的幅值包络值;

所述幅值包络量化和编码单元设置为, 将所述核心层频域系数编码子带 和扩展层频域系数编码子带的幅值包络值进行量化和编码, 生成核心层频域 系数和扩展层频域系数各编码子带的幅值包络量化指数和幅值包络的编码比 特;

所述核心层比特分配单元设置为, 进行核心层的比特分配, 得到核心层 各编码子带的比特分配数;

所述核心层频域系数矢量量化和编码单元设置为, 使用根据核心层各编 码子带的幅值包络量化指数重建的核心层各编码子带的量化幅值包络值和比 特分配数对核心层各编码子带的频域系数进行归一化、 矢量量化和编码, 得 到核心层频域系数的编码比特;

所述扩展层编码信号生成单元设置为, 生成残差信号, 得到由残差信号 和扩展层频域系数构成的扩展层编码信号;

所述残差信号幅值包络生成单元设置为, 根据核心层各编码子带的幅值 包络量化指数与对应编码子带的比特分配数, 得到残差信号各编码子带的幅 值包络量化指数;

所述扩展层比特分配单元设置为 , 根据残差信号各编码子带的幅值包络 量化指数和扩展层频域系数各编码子带的幅值包络量化指数进行扩展层的比 特分配, 得到扩展层编码信号各编码子带的比特分配数;

所述扩展层编码信号矢量量化和编码单元设置为, 使用根据扩展层各编 码子带的幅值包络量化指数重建的扩展层各编码子带的量化幅值包络值和比 特分配数对扩展层各编码子带的编码信号进行归一化、 矢量量化和编码, 得 到扩展层编码信号的编码比特;

所述比特流复用器设置为, 将核心层边信息比特、 核心层各编码子带的 幅值包络的编码比特、 核心层频域系数的编码比特、 扩展层边信息比特, 扩 展层频域系数各幅值包络的编码比特和扩展层编码信号的编码比特进行打 包。

17、 如权利要求 16所述的系统, 其中,

所述扩展层编码信号生成单元还包括残差信号生成单元和扩展层编码信 号合成单元;

所述残差信号生成单元设置为,对核心层频域系数的量化值进行反量化, 并与核心层频域系数进行差计算, 得到核心层残差信号;

所述扩展层编码信号合成单元设置为, 将核心层残差信号和扩展层的频 域系数按频带的顺序合成, 得到扩展层编码信号。

18、 如权利要求 16所述的系统, 其中,

所述残差信号幅值包络生成单元还包括量化指数修正值获取单元和残差 信号幅值包络量化指数计算单元;

所述量化指数修正值获取单元设置为, 根据核心层各编码子带比特分配 数推算残差信号各编码子带的量化指数修正值, 各编码子带的量化指数修正 值大于等于 0, 且当核心层对应编码子带的编码比特数增加时不减小, 如果 核心层的编码子带的比特分配数为 0, 则量化指数修正值为 0, 如果编码子带 的比特分配数为所限定的最大比特分配数, 则残差信号在该编码子带的幅值 包络值为零;

所述残差信号幅值包络量化指数计算单元设置为, 将核心层各编码子带 的幅值包络量化指数与对应编码子带的量化指数修正值进行差计算, 得到核 心层残差信号各编码子带的幅值包络量化指数。

19、 如权利要求 16所述的系统, 其中,

所述比特流复用器是设置为, 将扩展层编码信号编码比特按照各编码子 带重要性的初始值从大到小的顺序写入码流, 对于具有相同重要性的编码子 带, 低频编码子带的编码比特优先写入码流。

20、 一种可分层音频解码系统, 该系统包括: 比特流解复用器、 核心层 幅值包络解码单元、 核心层比特分配单元、 核心层解码和反量化单元; 该系 统还包括: 扩展层幅值包络解码单元、 核心层残差信号幅值包络生成单元、 扩展层比特分配单元、 扩展层编码信号解码和反量化单元、 频域系数生成单 元、 噪声填充单元和修正离散余弦逆变换 IMDCT单元; 其中:

所述核心层幅值包络解码单元设置为, 对所述比特流解复用器输出的核 心层编码子带幅值包络编码比特进行解码, 得到核心层各编码子带的幅值包 络量化指数;

所述核心层比特分配单元设置为, 进行核心层的比特分配, 得到核心层 各编码子带的比特分配数;

所述核心层解码和反量化单元设置为, 根据核心层各编码子带的幅值包 络量化指数计算得到核心层各编码子带的量化幅值包络值, 使用核心层各编 码子带的比特分配数和量化幅值包络值对所述比特流解复用器输出的核心层 频域系数编码比特进行解码、 反量化及反归一化处理, 得到核心层的频域系 数;

所述扩展层幅值包络解码单元设置为, 对比特流解复用器输出的扩展层 频域系数幅值包络编码比特进行解码, 得到扩展层频域系数各编码子带的幅 值包络量化指数;

所述核心层残差信号幅值包络生成单元设置为, 根据核心层各编码子带 的幅值包络量化指数与对应编码子带的比特分配数计算得到残差信号各编码 子带的幅值包络量化指数;

所述扩展层比特分配单元设置为 , 根据残差信号各编码子带的幅值包络 量化指数和扩展层频域系数各编码子带的幅值包络量化指数进行扩展层的比 特分配, 得到扩展层编码信号各编码子带的比特分配数;

所述扩展层编码信号解码和反量化单元设置为, 使用扩展层各编码子带 的幅值包络量化指数计算得到扩展层各编码子带的量化幅值包络值, 使用扩 展层各编码子带的编码比特数和量化幅值包络值对所述比特流解复用器输出 的扩展层编码信号的编码比特进行解码、 反量化及反归一化处理, 得到扩展 层编码信号;

所述频域系数生成单元设置为, 根据频带顺序对所述扩展层编码信号解 码和反量化单元输出的扩展层的编码信号进行重新排序, 然后与所述核心层 解码和反量化单元输出的核心层频域系数做和计算, 得到频域系数输出值; 所述噪声填充单元设置为, 对编码过程中未分配编码比特的编码子带进 行噪声填充;

IMDCT单元设置为,对进行了噪声填充后的全体频域系数进行 IMDCT , 得到输出的音频信号。

21、 如权利要求 20所述的系统, 其中,

所述核心层残差信号幅值包络生成单元还包括量化指数修正值获取单元 和残差信号幅值包络量化指数计算单元;

所述量化指数修正值获取单元设置为, 根据核心层各编码子带比特分配 数推算残差信号各编码子带的量化指数修正值, 并根据对应编码子带频域系 数的绝对值进行调整, 其中, 各编码子带的量化指数修正值大于等于 0, 且 当核心层对应编码子带的编码比特数增加时不减小, 如果核心层的编码子带 的比特分配数为 0, 则量化指数修正值为 0, 如果编码子带的比特分配数为所 限定的最大比特分配数, 则残差信号在该编码子带的幅值包络值为零; 所述残差信号幅值包络量化指数计算单元设置为, 将核心层各编码子带 的幅值包络量化指数与对应编码子带的量化指数修正值进行差计算, 得到核 心层残差信号各编码子带的幅值包络量化指数。

22、 如权利要求 20所述的系统, 其中,

所述扩展层编码信号解码和反量化单元是设置为, 对扩展层编码信号的 各编码子带解码的顺序是根据各编码子带重要性的初始值决定的, 重要性大 的编码子带优先解码, 如果有两个编码子带具有相同的重要性, 则低频编码 子带优先解码, 解码过程中计算已解码的比特数, 当已解码的比特数满足总 比特数要求时停止解码。

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

技术领域

本发明涉及一种可分层音频编码、 解码方法及系统。

背景技术

可分层音频编码是指以分层的方式组织音频编 码的码流, 一般分成一个 核心层和若干个扩展层, 解码器可以在没有高层(譬如扩展层)编码码 流的 情况下实现只对低层 (譬如核心层)编码码流进行解码, 解码的层数越多, 音质提高得越大。

可分层编码技术对于通信网络有非常重要的实 用价值。 一方面, 数据的 传输可以由不同信道共同合作完成, 而每个信道的丟包率都有可能不同, 这 时候往往需要对数据进行可分层处理, 将数据中重要的部分放在丟包率相对 较低的稳定信道中传输, 而将数据中次要的部分放在丟包率相对较高的 非稳 定信道中传输, 从而保证当非稳定信道丟包时只会产生相对的 音质下降, 而 不会出现一帧数据完全无法解码的情况。 另一方面, 某些通信网络(比如因 特网) 的带宽很不稳定, 不同用户之间的带宽各不相同, 不能釆用一个固定 的码率来兼顾不同带宽用户的需求, 而釆用可分层的编码方案就可以使得不 同用户在各自所拥有的带宽条件下获得最佳的 音质享受。

传统的可分层音频编码方案, 比如 ITU ( International Telecommunication

Union, 国际电信联合会)的标准 G.729.1和 G.VBR, 所釆用的方式为核心层 使用语音编码, 扩展层釆用时域或者变换域编码。 核心层与扩展层之间的编 码方式相互独立, 这样就会造成编码效率低, 同时在中低码率的传输条件下 对音乐信号编码质量有影响。 另外一些可分层方案, 如 MPEG4 ( Moving Picture Experts Group 4 , 运动图像专家组 -4 ) 所釆用的 BSAC ( Bit-Slice Arithmetic Code, 比特时间片算术编码 )可变码率(或者可伸缩 )的编码方案, 仅从数据本身的大小出发进行比特分配和可分 层操作, 没有考虑到整个信号 本身的残差感知分布特性,不能利用核心层已 有的信息帮助扩展层进行编码, 使得编码效率不高。 发明内容

本发明所要解决的技术问题是, 克服现有技术的不足, 提供一种高效的 可分层音频编码、 解码方法及系统。

为了解决上述技术问题, 本发明提供一种可分层音频编码方法, 该方法 包括:

将音频信号经过修正离散余弦变换 MDCT后的频域系数, 划分为核心层 频域系数和扩展层频域系数, 将所述核心层频域系数和扩展层频域系数划分 成多个编码子带, 并对所述编码子带的幅值包络值进行量化和编 码;

根据核心层各编码子带的幅值包络值对核心层 各编码子带进行比特分 配,然后对核心层频域系数进行量化和编码得 到核心层频域系数的编码比特; 根据核心层各编码子带的幅值包络值和比特分 配数计算核心层残差信号 各编码子带的幅值包络值;

根据由核心层残差信号和扩展层频域系数构成 的扩展层编码信号和由所 述扩展层编码信号构成的各编码子带的幅值包 络值对扩展层各编码子带进行 比特分配, 然后对扩展层编码信号进行量化和编码得到扩 展层编码信号的编 码比特; 以及

将核心层频域系数和扩展层频域系数构成的各 编码子带的幅值包络编码 比特、核心层频域系数的编码比特和扩展层编 码信号的编码比特复用打包后, 传送给解码端。

此外, 在将音频信号经过修正离散余弦变换 MDCT后的频域系数, 划分 为核心层频域系数和扩展层频域系数, 将所述核心层频域系数和扩展层频域 系数划分成多个编码子带的步骤中,

将 MDCT变换后的频域系数分成多个等间隔编码子 ,或者按照听觉感 知特性划分成多个非均勾编码子带;将低频编 码子带划分为核心层编码子带, 将高频编码子带划分为扩展层编码子带。

此外, 根据编码子带幅值包络值对各编码子带进行变 步长比特分配; 在比特分配过程中, 对比特分配数为 0的编码子带分配比特的步长是 1 个比特, 比特分配后重要性降低的步长为 1 , 对比特分配数大于 0且小于分 类阔值的编码子带追加分配比特时的比特分配 步长为 0.5 个比特, 比特分配 后重要性降低的步长为 0.5 ,对比特分配数大于等于所述分类阔值的编码 带 追加分配比特时的比特分配步长为 1 , 比特分配后重要性降低的步长为 1 ; 比特分配数是一个编码子带中单个频域系数所 分配到的比特数。

此外,在对核心层频域系数和扩展层编码信号 进行量化和编码的步骤中, 对比特分配数小于分类阔值的编码子带的待量 化矢量釆用塔型格型矢量 量化方法进行量化和编码, 对比特分配数大于所述分类阔值的编码子带的 待 量化矢量釆用球型格型矢量量化方法进行量化 和编码;

比特分配数是一个编码子带中单个频域系数所 分配到的比特数。

此外, 在根据核心层各编码子带的幅值包络值和比特 分配数计算核心层 残差信号各编码子带的幅值包络值的步骤中,

釆用如下方法计算核心层残差信号各编码子带 的幅值包络值:

对核心层频域系数的量化值进行反量化, 并与核心层频域系数进行差计 算, 得到核心层残差信号;

将核心层残差信号按与核心层频域系数相同的 方法划分成编码子带, 根 据核心层各编码子带幅值包络值和比特分配数 推算出核心层残差信号各编码 子带的幅值包络值。

此外, 推算出核心层残差信号各编码子带的幅值包络 值的步骤包括: 计 算核心层各编码子带的幅值包络量化指数, 并与对应编码子带的量化指数修 正值进行差计算, 得到核心层残差信号各编码子带的幅值包络量 化指数; 各编码子带的量化指数修正值大于等于 0, 且当核心层对应编码子带的 比特分配数增加时不减小; 以及

当核心层的编码子带的比特分配数为 0时, 量化指数修正值为 0, 当核 心层的编码子带的比特分配数为所限定的最大 比特分配数时, 核心层残差信 号在该编码子带的幅值包络值为零。

此外, 编码子带的量化指数修正值是根据核心层比特 分配数得到的, 当 核心层编码子带的比特分配数分别为 0、 1、 1.5、 2、 2.5、 3、 3.5、 4、 4.5、 5、 6、 7或 8时, 该编码子带所对应的量化指数修正值分别取 0、 1、 2、 3、 4、 5、 5、 6、 7、 7、 9、 10或 12;

此外, 得到核心层频域系数的编码比特的步骤包括:

计算核心层各编码子带的幅值包络量化指数, 对核心层各编码子带进行 比特分配; 以及

根据核心层各编码子带的幅值包络量化指数重 建的核心层各编码子带的 量化幅值包络值对各编码子带的频域系数进行 归一化, 根据核心层各编码子 带的比特分配数分别使用塔型格型矢量量化方 法和球型格型矢量量化方法进 行量化和编码, 得到核心层频域系数的编码比特;

其中, 得到扩展层编码信号的编码比特的步骤包括:

用核心层残差信号和扩展层频域系数构成扩展 层编码信号;

根据扩展层编码信号各编码子带的幅值包络量 化指数, 对扩展层各编码 子带进行比特分配; 以及

根据扩展层各编码子带的幅值包络量化指数重 建的扩展层各编码子带的 量化幅值包络值对各编码子带的编码信号进行 归一化, 根据扩展层各编码子 带的比特分配数分别使用塔型格型矢量量化方 法和球型格型矢量量化方法进 行量化和编码, 得到扩展层编码信号的编码比特。

此外, 在核心层频域系数和扩展层频域系数构成的各 编码子带的幅值包 络编码比特、 核心层频域系数的编码比特和扩展层编码信号 的编码比特复用 打包后, 传送给解码端的步骤中,

按照如下码流格式进行复用打包:

将核心层的边信息比特写入码流的帧头后面, 将核心层的编码子带幅值 包络编码比特写入比特流复用器 MUX,然后将核心层频域系数的编码比特写 入 MUX; 以及将扩展层的边信息比特写入 MUX, 将扩展层频域系数编码子 带的幅值包络编码比特写入 MUX, 然后将扩展层编码信号的编码比特写入 MUX;

根据所要求的码率, 将满足码率要求的比特数传送到解码端。

此外, 将扩展层编码信号编码比特按照各编码子带重 要性的初始值从大 到小排序的顺序写入码流, 传送到解码端。

此外,核心层的边信息包括 MDCT系数构成的编码子带幅值包络的霍夫 曼编码标志位比特、 核心层频域系数的霍夫曼编码标志位比特和迭 代次数比 特;

扩展层的边信息包括扩展层编码信号的霍夫曼 编码标志位比特和迭代次 数比特。

此外, 将满足码率要求的比特数传送到解码端的步骤 包括:

按照所限定的最大编码码率的比特数在整个所 需编码的频带范围内, 对 核心层和扩展层编码, 使得在编码频带范围内达到最大编码码率;

在核心层编码比特之后, 将扩展层编码信号的编码比特按照各编码子带 重要性初始值从大到小的顺序写入比特流复用 器; 以及

按照将编码子带重要性初始值小的编码子带的 编码比特先舍去的原则, 将满足码率要求的比特数传送到解码端;

其中,将核心层对应的码率记为 L0层,根据扩展层舍去比特数的多少将 扩展层对应的各个码率分别记为 LI— 1层、 L1— 2层、直至 LI— K层,其中 LI— K 层的码率就是所述最大编码码率。

此外, 编码频带范围为 0 ~ 13.6kHz, 最大编码码率为 64kbps时, 釆用如 下编码码率分层方法将满足码率要求的比特数 传送到解码端:

将编码频带范围 0 ~ 13.6kHz中 0 ~ 6.4kHz内的 MDCT频域系数划分成核 心层, 核心层所对应的最大码率是 32kbps, 记为 L0层; 扩展层的编码频带 范围为 0 ~ 13.6kHz, 其最大码率为 64kbps, 记为 —5层;

在送到解码端之前, 根据舍去比特数的多少将码率划分为 —1层, 对应 36kbps, Lj_2层,对应 40kbps, _3层,对应 48kbps, _ 层,对应 56kbps, 及 — 5层, 对应 64kbps。

此外, 在将音频信号经过修正离散余弦变换 MDCT后的频域系数, 划分 为核心层频域系数和扩展层频域系数的步骤之 后, 所述方法还包括: 把扩展 层的频域系数按照频率从小到大的顺序分成 M个部分, 它们分别是扩展层 1 到扩展层 M的频域系数,其中扩展层 1中频域系数的频率最小,扩展层 M中 频域系数的频率最大;

在对核心层频域系数进行量化和编码的步骤之 后, 所述方法还包括: 对 核心层频域系数的量化值进行反量化, 并与核心层频域系数进行差计算, 得 到核心层残差信号;

在所述根据核心层各编码子带的幅值包络值和 比特分配数计算核心层残 差信号各编码子带的幅值包络值的步骤中, 将核心层残差信号按与核心层相 同的方法划分成编码子带, 根据核心层各编码子带的幅值包络值和比特分 配 数推算出核心层残差信号各编码子带的幅值包 络值;

在所述根据由核心层残差信号和扩展层频域系 数构成的扩展层编码信号 和由所述扩展层编码信号构成的各编码子带的 幅值包络值对扩展层各编码子 带进行比特分配, 然后对扩展层编码信号进行量化和编码得到扩 展层编码信 号的编码比特的步骤中,

用核心层残差信号和扩展层 1的频域系数构成扩展层 1的编码信号, 根 据扩展层 1的编码信号计算各编码子带的幅值包络量化 数, 对扩展层 1各 编码子带进行比特分配; 根据扩展层 1的各编码子带的比特分配数对扩展层 1的编码信号进行量化和编码;

对扩展层 i的编码信号的量化值进行反量化,并与扩展 i的编码信号进 行差计算, 得到扩展层 1的残差信号;

将扩展层 i的残差信号按与扩展层 i相同的方法划分成编码子带,根据扩 展层 i的各编码子带幅值包络值和比特分配数推算 扩展层 i的残差信号各子 带的幅值包络值;

根据扩展层 i的残差信号和扩展层 i+1的频域系数构成扩展层 i+1的编码 信号, 根据扩展层 i+1 的编码信号各编码子带的幅值包络量化指数, 对扩展 层 i+1的各编码子带进行比特分配; 以及

根据扩展层 i+1各编码子带的幅值包络量化指数重建的扩展 层 i+1各编码 子带的量化幅值包络值和编码比特数对扩展层 i+1 各编码子带的编码信号进 行归一化、 矢量量化和编码, 得到扩展层 i+1的编码信号的编码比特;

所述 i=l,....N-l , N为大于 2的正整数。 此外, 按照如下码流格式进行复用打包:

在核心层的编码比特之后, 根据扩展层编号的大小, 将编号小的扩展层 的比特先写入比特流复用器 MUX,然后将编号大的扩展层的比特再写入比特 流复用器 MUX, 即先写入扩展层 i的比特再将扩展层 i+1的比特写入 MUX;

在同一个扩展层中,先将该扩展层的边信息比 特写入 MUX, 然后将该扩 展层频域系数编码子带的幅值包络编码比特写 入 MUX,然后将该扩展层编码 信号的编码比特写入 MUX;

根据所要求的码率, 将满足码率要求的比特数传送到解码端。

此外, 釆用如下编码码率分层方法将满足码率要求的 比特数传送到解码 端:

按照所定最大编码码率的比特数在整个所需编 码的频带范围内, 对核心 层和扩展层 1到扩展层 M进行编码,使得在编码频带范围内达到所定 大编 码码率; 在核心层编码比特之后, 将编号小的扩展层的比特优先写入比特流复用 器, 在同一个扩展层中将编码子带重要性初始值大 的编码子带的编码比特优 先写入比特流复用器;

对于每一个扩展层, 根据各个分层的码率设计要求, 把比特流复用器后 部不必要的比特舍去, 既按照将编码子带重要性初始值小的编码子带 的编码 比特先舍去的原则, 将满足码率要求的比特数传送到解码端;

将核心层对应的码率记为 L0层,根据所定传送码率的要求将各个扩展层 对应的最大码率分别记为 Li— 层、 L 2 — K 2 层、 直至 L M — Κ Μ 层, 其中 L M — K M 层的码率就是编码器所要求的最大码率;

在扩展层 i和扩展层 i+1之间,根据舍去比特数的多少进一步将码率 层细 化,即在 Li— IQ层和 L 1+1 — K 1+1 层之间根据舍去比特数的多少,划分出 L 1+1 — 1层, Li+i_2层, 直至 Li+i_Ki+i层。

此外, 编码频带范围为 0 ~ 20kHz, 最大编码码率为 96kbps时, 釆用如 下编码码率分层方法将满足码率要求的比特数 传送到解码端:

将编码频带范围 0 ~ 20kHz中 0 ~ 6.4kHz内的 MDCT频域系数划分成核 心层, 核心层所对应的最大码率是 32kbps, 记为 L0层;

扩展层 1的编码频带范围为 0 ~ 13.6kHz,其最大码率为 64kbps,记为 —5 层; 扩展层 2的编码频带范围为 0 ~ 20kHz, 其最大码率为 96kbps, 记为 L 2 — 2 层;

在送到解码端之前, 根据舍去比特数的多少可以将 —5层和 L 2 — 2层之 间进一步划分为 L 2 — 1层, 对应 80kbps, 及 L 2 — 2层, 对应 96kbps。

本发明还提供一种可分层音频解码方法, 该方法包括:

对编码端传送过来的比特流进行解复用, 对核心层频域系数的幅值包络 编码比特进行解码, 得到核心层各编码子带的幅值包络值;

根据核心层各编码子带的幅值包络值, 对核心层各编码子带进行比特分 配, 并推算出核心层残差信号的幅值包络值; 对扩展层的频域系数幅值包络 编码比特进行解码, 得到扩展层频域系数幅值包络值; 根据核心层残差信号 的幅值包络值和扩展层频域系数幅值包络值对 扩展层各编码子带进行比特分 配; 以及

根据核心层的比特分配数和扩展层的比特分配 数, 分别对核心层频域系 数编码比特和扩展层编码信号的编码比特进行 解码, 得到核心层频域系数和 扩展层编码信号, 将扩展层编码信号按照频带顺序重新排列, 并和核心层频 域系数相加, 得到全体带宽的频域系数, 对全体带宽的频域系数进行修正离 散余弦逆变换 IMDCT, 得到输出的音频信号。

此外, 推算残差信号的幅值包络值的方法为:

推算出核心层残差信号的幅值包络值的步骤包 括:

计算核心层各编码子带的幅值包络量化指数, 并与对应编码子带的量化 指数修正值进行差计算, 得到核心层残差信号各编码子带的幅值包络量 化指 数;

根据扩展层 i的各编码子带幅值包络和比特分配数推算出 展层 i的残差 信号各子带的幅值包络值;

各编码子带的量化指数修正值大于等于 0, 且当核心层对应编码子带的 比特分配数增加时不减小; 以及 当核心层的编码子带的比特分配数为 0时, 量化指数修正值为 0, 当编 码子带的比特分配数为所限定的最大比特分配 数时, 核心层残差信号在该编 码子带的幅值包络值为零。

此外, 编码子带的量化指数修正值是根据核心层比特 分配数得到的, 当 核心层编码子带的比特分配数分别为 0、 1、 1.5、 2、 2.5、 3、 3.5、 4、 4.5、 5、 6、 7或 8时, 该编码子带所对应的量化指数修正值分别取 0、 1、 2、 3、 4、 5、 5、 6、 7、 7、 9、 10或 12;

此外, 得到核心层频域系数和扩展层编码信号的步骤 包括:

根据核心层各编码子带的比特分配数、 量化幅值包络值和边信息对核心 层频域系数编码比特进行解码、 反量化及反归一化处理, 得到核心层频域系 数; 以及

根据扩展层各编码子带的比特分配数、 扩展层编码信号的量化幅值包络 值和边信息对该扩展层编码信号的编码比特进 行解码、 反量化及反归一化处 理, 得到扩展层编码信号。

此外, 在对扩展层编码信号的编码比特进行解码的步 骤中,

釆用如下顺序对扩展层编码信号的编码比特进 行解码:

在不同的扩展层中, 各层解码的顺序是先对扩展层编号小的低扩展 层的 幅值包络和各编码子带的编码比特进行解码, 然后再对扩展层编号大的高扩 展层的幅值包络和各编码子带的编码信号进行 解码, 解码过程中计算已解码 的比特数, 当已解码的比特数满足总比特数要求时停止解 码;

在同一个扩展层中, 各编码子带解码的顺序是根据各个编码子带重 要性 的初始值决定的, 重要性大的编码子带优先解码, 如果有两个编码子带具有 相同的重要性, 则低频编码子带优先解码, 解码过程中计算已解码的比特数, 当已解码的比特数满足总比特数要求时停止解 码。

此外, 当从编码端送往解码端的码率为 64kbps时, 在解码端截取不同的 比特数进行解码, 可以到 36kbps , 40kbps , 48kbps, 56kbps或 64kbps的解 码码率。 当从编码端送往解码端的码率为 96kbps时,在解码端截取不同的比特数 进行解码, 可以到 80kbps或 96kbps的解码码率。

本发明还提供一种可分层音频编码系统, 该系统包括: 修正离散余弦变 换 MDCT单元、 幅值包络计算单元、 幅值包络量化和编码单元、 核心层比特 分配单元、 核心层频域系数矢量量化和编码单元以及比特 流复用器; 该系统 还包括: 扩展层编码信号生成单元、 残差信号幅值包络生成单元、 扩展层比 特分配单元以及扩展层编码信号矢量量化和编 码单元; 其中: 所述 MDCT单元设置为, 对输入的音频信号进行修正离散余弦变换, 生 成核心层频域系数和扩展层频域系数;

所述幅值包络计算单元设置为, 将所述核心层频域系数和扩展层频域系 数中待编码的部分划分为核心层频域系数编码 子带和扩展层频域系数编码子 带, 并计算各编码子带的幅值包络值; 所述幅值包络量化和编码单元设置为, 将所述核心层频域系数编码子带 和扩展层频域系数编码子带的幅值包络值进行 量化和编码, 生成核心层频域 系数和扩展层频域系数各编码子带的幅值包络 量化指数和幅值包络的编码比 特;

所述核心层比特分配单元设置为, 进行核心层的比特分配, 得到核心层 各编码子带的比特分配数;

所述核心层频域系数矢量量化和编码单元设置 为, 使用根据核心层各编 码子带的幅值包络量化指数重建的核心层各编 码子带的量化幅值包络值和比 特分配数对核心层各编码子带的频域系数进行 归一化、 矢量量化和编码, 得 到核心层频域系数的编码比特;

所述扩展层编码信号生成单元设置为, 生成残差信号, 得到由残差信号 和扩展层频域系数构成的扩展层编码信号;

所述残差信号幅值包络生成单元设置为, 根据核心层各编码子带的幅值 包络量化指数与对应编码子带的比特分配数, 得到残差信号各编码子带的幅 值包络量化指数;

所述扩展层比特分配单元设置为 , 根据残差信号各编码子带的幅值包络 量化指数和扩展层频域系数各编码子带的幅值 包络量化指数进行扩展层的比 特分配, 得到扩展层编码信号各编码子带的比特分配数 ;

所述扩展层编码信号矢量量化和编码单元设置 为, 使用根据扩展层各编 码子带的幅值包络量化指数重建的扩展层各编 码子带的量化幅值包络值和比 特分配数对扩展层各编码子带的编码信号进行 归一化、 矢量量化和编码, 得 到扩展层编码信号的编码比特;

所述比特流复用器设置为, 将核心层边信息比特、 核心层各编码子带的 幅值包络的编码比特、 核心层频域系数的编码比特、 扩展层边信息比特, 扩 展层频域系数各幅值包络的编码比特和扩展层 编码信号的编码比特进行打 包。

此外, 所述扩展层编码信号生成单元还包括残差信号 生成单元和扩展层 编码信号合成单元;

所述残差信号生成单元设置为,对核心层频域 系数的量化值进行反量化, 并与核心层频域系数进行差计算, 得到核心层残差信号;

所述扩展层编码信号合成单元设置为, 将核心层残差信号和扩展层的频 域系数按频带的顺序合成, 得到扩展层编码信号。

此外, 所述残差信号幅值包络生成单元还包含量化指 数修正值获取单元 和残差信号幅值包络量化指数计算单元;

所述量化指数修正值获取单元设置为, 根据核心层各编码子带比特分配 数推算残差信号各编码子带的量化指数修正值 , 各编码子带的量化指数修正 值大于等于 0 , 且当核心层对应编码子带的编码比特数增加时 不减, 如果核 心层的编码子带的比特分配数为 0, 则量化指数修正值为 0, 如果编码子带的 比特分配数为所限定的最大比特分配数, 则残差信号在该编码子带的幅值包 络值为零;

所述残差信号幅值包络量化指数计算单元设置 为, 将核心层各编码子带 的幅值包络量化指数与对应编码子带的量化指 数修正值进行差计算, 得到核 心层残差信号各编码子带的幅值包络量化指数 。

此外, 所述比特流复用器是设置为, 将扩展层编码信号编码比特按照各 编码子带重要性的初始值从大到小的顺序写入 码流, 对于具有相同重要性的 编码子带, 低频编码子带的编码比特优先写入码流。

本发明还提供一种可分层音频解码系统, 该系统包括: 比特流解复用器、 核心层幅值包络解码单元、核心层比特分配单 元、核心层解码和反量化单元; 该系统还包括: 扩展层幅值包络解码单元、 核心层残差信号幅值包络生成单 元、 扩展层比特分配单元、 扩展层编码信号解码和反量化单元、 频域系数生 成单元、 噪声填充单元和修正离散余弦逆变换 IMDCT单元; 其中:

所述核心层幅值包络解码单元设置为, 对所述比特流解复用器输出的核 心层编码子带幅值包络编码比特进行解码, 得到核心层各编码子带的幅值包 络量化指数; 所述核心层比特分配单元设置为, 进行核心层的比特分配, 得到核心层 各编码子带的比特分配数;

所述核心层解码和反量化单元设置为, 根据核心层各编码子带的幅值包 络量化指数计算得到核心层各编码子带的量化 幅值包络值, 使用核心层各编 码子带的比特分配数和量化幅值包络值对所述 比特流解复用器输出的核心层 频域系数编码比特进行解码、 反量化及反归一化处理, 得到核心层的频域系 数;

所述扩展层幅值包络解码单元设置为, 对比特流解复用器输出的扩展层 频域系数幅值包络编码比特进行解码, 得到扩展层频域系数各编码子带的幅 值包络量化指数;

所述核心层残差信号幅值包络生成单元设置为 , 根据核心层各编码子带 的幅值包络量化指数与对应编码子带的比特分 配数计算得到残差信号各编码 子带的幅值包络量化指数;

所述扩展层比特分配单元设置为 , 根据残差信号各编码子带的幅值包络 量化指数和扩展层频域系数各编码子带的幅值 包络量化指数进行扩展层的比 特分配, 得到扩展层编码信号各编码子带的比特分配数 ;

所述扩展层编码信号解码和反量化单元设置为 , 使用扩展层各编码子带 的幅值包络量化指数计算得到扩展层各编码子 带的量化幅值包络值 , 使用扩 展层各编码子带的编码比特数和量化幅值包络 值对所述比特流解复用器输出 的扩展层编码信号的编码比特进行解码、 反量化及反归一化处理, 得到扩展 层编码信号;

所述频域系数生成单元设置为, 根据频带顺序对所述扩展层编码信号解 码和反量化单元输出的扩展层的编码信号进行 重新排序, 然后与所述核心层 解码和反量化单元输出的核心层频域系数做和 计算, 得到频域系数输出值; 所述噪声填充单元设置为, 对编码过程中未分配编码比特的编码子带进 行噪声填充;

IMDCT单元设置为,对进行了噪声填充后的全体 域系数进行 IMDCT , 得到输出的音频信号。

此外, 所述核心层残差信号幅值包络生成单元还包括 量化指数修正值获 取单元和残差信号幅值包络量化指数计算单元 ;

所述量化指数修正值获取单元设置为, 根据核心层各编码子带比特分配 数推算残差信号各编码子带的量化指数修正值 , 并根据对应编码子带频域系 数的绝对值进行调整, 其中, 各编码子带的量化指数修正值大于等于 0, 且 当核心层对应编码子带的编码比特数增加时不 减小, 如果核心层的编码子带 的比特分配数为 0, 则量化指数修正值为 0, 如果编码子带的比特分配数为所 限定的最大比特分配数, 则残差信号在该编码子带的幅值包络值为零;

所述残差信号幅值包络量化指数计算单元设置 为, 将核心层各编码子带 的幅值包络量化指数与对应编码子带的量化指 数修正值进行差计算, 得到核 心层残差信号各编码子带的幅值包络量化指数 。

此外, 所述扩展层编码信号解码和反量化单元是设置 为, 对扩展层编码 信号的各编码子带解码的顺序是根据各编码子 带重要性的初始值决定的, 重 要性大的编码子带优先解码, 如果有两个编码子带具有相同的重要性, 则低 频编码子带优先解码, 解码过程中计算已解码的比特数, 当已解码的比特数 满足总比特数要求时停止解码。

分配方法, 并根据核心层幅值包络信息计算出扩展层幅值 包络信息, 在核心 层与扩展层比特分配中都充分考虑信号本身的 分布特性, 使得核心层与扩展 层之间紧密相连, 并且在扩展层码流中不包括残差信号幅值包络 信息, 提高 了可分层音频编解码的效率, 同时也提高了代码利用率。

附图概述

图 1是本发明第一实施例增强型可分层音频编码 法的流程图; 图 2是本发明实施例在矢量量化后进行比特分配 正的方法流程图; 图 3是本发明第一实施例增强型可分层音频编码 统的结构示意图; 图 3a是本发明第一实施例可分层编码码流的示意 ;

图 4是本发明第一实施例增强型可分层音频解码 法的流程图; 图 5是本发明第一实施例增强型可分层音频解码 统的结构示意图; 图 6是本发明第二实施例扩展型可分层音频编码 法的流程图; 图 6a是本发明第二实施例可分层编码码流的示意 ;

图 7是本发明第二实施例扩展型可分层音频编码 统的结构示意图; 图 8是本发明第二实施例扩展型可分层音频解码 法的流程图; 图 9是本发明第二实施例扩展型可分层音频解码 统的结构示意图; 图 10是本发明中釆用在频带范围分层和根据码率 层的关系示意图。

本发明的较佳实施方式

本发明的核心思想是, 对核心层的量化噪声进行补偿, 在核心层和扩展 层中釆用相同的子带划分方法和比特分配方法 , 并才艮据核心层幅值包络信息 计算出核心层的残差信号的幅值包络信息, 因此可以提高核心层的音质质量 而在扩展层码流中不传送残差信号幅值包络信 息。

下面将结合附图和实施例对本发明进行详细描 述。

第一实施例

图 1是本发明第一实施例增强型可分层音频编码 法的流程图。 本实施 例中以帧长为 20ms,釆样率为 32kHz的音频流为例具体说明本发明的可分层 音频编码方法。 在其它帧长和釆样率条件下, 本发明的方法同样适用。 如图

1所示, 该方法包括:

步骤 101:对帧长为 20ms、釆样率为 32kHz的音频流实施 MDCT( Modified Discrete Cosine Transform, 修正离散余弦变换)得到 N个频域釆样点上的频 域系数。

本步骤的具体实现方式可以是:

将当前帧的 N点时域釆样信号 与上一帧的 N点时域釆样信号 Xouin) 组 2N点时域釆样信号 , 2Ν点的时域釆样信号可由下式表示:

对 《)实施 MDCT, 得到如下频域系数: (:) = j(«)w(«)cos[ (« + +—)0+"4] k = 0,---,N-l (2) 其中, 表示正弦窗函数, 表达式为: w(«)-sin[— («+-)] η=0,···,2Ν-1 (3 )

2Ν 2

此外, 当帧长为 20ms, 釆样率为 32kHz时, N=640 (其他帧长及釆样率 可同样算出相应的 N) 。

步骤 102: 将 N点频域系数分成若干个子带, 所述子带可以是均匀划分, 也可以是非均匀划分, 在本实施例中釆用非均匀子带划分, 计算各个子带的 频域幅值包络(简称幅值包络) 。

本步骤可以釆用如下子步骤实现:

步骤 102a: 将所需编码的频带范围内的频域系数分成 L个子带(可以称 为编码子带) ;

本实施例中, 所需编码的频带范围是 0~ 13.6kHz, 可以按照人耳感知特 性进行非均勾子带划分, 表 1给出了一个具体的划分方式。

在表 1中将 0 ~ 13.6kHz频带范围内的频域系数划分成 28个编码子带, 也就是 L=28; 并将 13.6kHz以上的频域系数置为 0。 在本实施例中, 还划分出核心层的频域范围。 选择表 1中的 0~ 15号子 带作为核心层的子带, 共有 L core=l6 个子带。 核心层的频带范围是 0~ 6.4kHz。

起始频率点 结束频率点 子带宽度 子带序号

(Llndex) (Hlndex) (Bandwidth)

0 0 7 8

1 8 15 8

2 16 23 8

3 24 31 8

4 32 47 16

5 48 63 16

6 64 79 16

7 80 95 16

8 96 111 16

9 112 127 16

10 128 143 16

11 144 159 16

12 160 183 24

13 184 207 24

14 208 231 24

15 232 255 24

16 256 279 24

17 280 303 24

18 304 327 24

19 328 351 24

20 352 375 24

21 376 399 24

22 400 423 24

23 424 447 24

24 448 471 24

25 472 495 24

26 496 519 24

27 520 543 24 表 1 步骤 102b: 按照以下公式计算各编码子带的幅值包络:

Hlndex(j)

h(j)

Index(j) -Undex(j) + 1 k=I ^、 其中, LIndex(J和 分别表示第 j个编码子带的起始频率点和结束 频率点, 其具体数值如表 1所示。 步骤 103: 对各编码子带的幅值包络值进行量化和编码, 得到幅值包络 的量化指数和幅值包络的编码比特, 幅值包络的编码比特需要传送到比特流 复用器(MUX) 中。

釆用以下公式( 5 )对各编码子带幅值包络进行量化, 得到各编码子带幅 值包络的量化指数, 即量化器的输出值:

Th g ( ) = [2log 2 Th( )J (5)

其中, ^」表示向下取整, 1¾(0)为第一个编码子带的幅值包络量化指数, 将其范围限制在 [ - 5, 34]内,即当 Th q (0) < - 5时,令 = -5; 当 Th q (0) > 34时, 令 = 34。 根据量化指数重建的量化幅值包络为 2 τ ω/2 。 使用 6比特对第一个编码子带的幅值包络量化指数 行编码, 即消耗 6 比特。

各编码子带幅值包络量化指数间的差分运算值 釆用如下公式计算:

Δ7¾ ) = Th q (j +\)-Th q (j) . = 0,…, - 2 (6) 可以对幅值包络进行如下修正以保证 Δ ¾( ·)的范围在[ - 15, 16]之内: 如果 A¾ g C/)<- 15, 则令 Δ ¾ (_/·) = - 15, ¾ g (_/·) = ¾ g (_/· + 1) + 15, j = L-2,-,0; 如果 Δ ^ΟθΙδ , 则令 A7¾ g C/) = 16, Th q (j + \) = Th q (j) + \6J = 0,...,L-2;

对 A7¾ g C/),_/ = 0,...,J- 2进行霍夫曼 ( Huffinan )编码, 并计算此时所消耗的 比特数(称为霍夫曼编码比特, Huffinan coded bits ) 。 如果此时霍夫曼编码 比特大于等于固定分配的比特数(在本实施例 中大于 L- l)x 5 ) , 则不使用 霍夫曼编码方式对 A7¾ g (j'),j' = 0,...,J- 2进行编码, 并置霍夫曼编码标志位 Flag huff— = 0; 否则利用霍夫曼编码对 ATh q (j), j = , ..., L - 2进行编码, 并置 霍夫曼编码标志位 ½#— r//w = 1。 幅值包络量化指数的编码比特(即幅 值包络差分值的编码比特)和霍夫曼编码标志 位需要被传送到 MUX中。

步骤 104: 根据码率失真理论和编码子带幅值包络信息计 算核心层各编 码子带重要性的初始值,并根据各编码子带的 重要性进行核心层的比特分配。

本步骤可以釆用如下子步骤实现:

步骤 104a: 计算核心层单个频域系数的比特消耗平均值:

从 20ms帧长可提供的总的比特数 bits available中抽出用于核心层编码 的比特数 bits available core , 扣除核心层边信息消耗的比特数 bit sides core 和核心层编码子带幅值包络量化指数所消耗掉 的比特数 bits Th— core ,得到剩 余的可用于核心层频域系数编码的比特数 bits— left— core , 即:

bits left core = bits available core - bit sides core - bits Th core ( 7 ) 边信息包括霍夫曼编码标志 Flag huff— rms、 Flag huff PL VQ和迭代次数 count的比犄。 Flag— huff— rms用于标识是否对核心层和扩展层编码子带幅 值包 络量化指数使用了霍夫曼编码; Flag huff— PLVQ— core用于标识是否在对频域 系数进行矢量编码时使用了霍夫曼编码, 而迭代次数 count用于标识比特分 配修正时的迭代次数(详见后续步骤中的描述 ) 。

计算核心层单个频域系数的比特消耗平均值为 ―

― bits left core

R _ core = ( 8 )

HIndex(L _ core 1) + 1

其中, J _ c 。re为核心层编码子带的个数。

步骤 104b: 根据码率失真理论计算在最大量化信噪比增益 条件下的最佳 比特值:

通过拉格朗日方法优化基于独立高斯分布随机 变量的码率失真度, 可计 算得到该码率失真度界限下各编码子带的最大 量化信噪比增益条件下的最佳 比特值为:

rr _ core( j) = [R _ core + R min _ core( j)] , y = 0, · · · , L _ core 1 ( 9 ) R min _ core(j) =― [Th q (j) - mean _ Th q _ core = 0, ···,!,_ core _ 1 ( 10) 以及

1 L_core-\

mean Th core Th (i)[HIndex(i) - LIndex(i) + 1]

_ HIndex{L _ core— 1) + 1 ~^

( 11 ) "

步骤 104c: 计算各编码子带在进行比特分配时的重要性初 始值: 使用上述最佳比特值, 以及符合人耳感知特性的比例因子, 可以得到在 实际比特分配中用于控制比特分配的各编码子 带的重要性初始值:

rk{j) = ax rr _ core(j) = [R _ core + _ core(j)], j = 0, · · · , Z _ core— 1 ( 12 ) 其中 为比例因子, 该因子跟编码码率相关, 可通过统计分析得到, 通 常 0< <1 , 在本实施例中 取值为 0.4; rk ()表示在进行比特分配时第 j个编 码子带的重要性。

步骤 104d: 根据各编码子带的重要性进行核心层的比特分 配; 具体描述 下:

首先从各 rk (j)中找到最大值所在的编码子带, 假设该编码子带的编号为 j h , 然后增加该编码子带中每个频域系数的编码比 特数 rego«_ t ), 并降低 该编码子带的重要性; 同时计算该子带编码消耗比特总数 Wt_to _ M> «^ ); 最后计算所有编码子带所消耗比特数的总和 腿 (bit band used (/)), 7=0,..., L core- 1; 重复上述过程直至消耗比特数的总和满足可提 供比特限制 条件下的最大值。

本步骤中的比特分配方法可以由如下伪代码表 示:

令 region b it(J)=0 , j=0,l,■··,∑_ core - 1;

对于编码子带 0,1,..., — core - 1:

寻找 j k = arg max[rk(j)];

J=0,-,L- 如果 region— bitGk)<分类阔值 ^口果

令 region— bit jk) = region— bit jk) + 1;

计算 bit— band— used jk) = region— bit jk) * BandWidth jk);

令 rkG k ) = rkG k ) - 1;

否则如果 region— bit(j k )>=l

令 region— bit jk) = region— bit jk) + 0.5;

计算 bit— band— used jk) = region— bit jk) * BandWidth jk)*0.5;

令 rkG k ) = rkGk)_0.5;

否则 口果 region— bit(j k )>

令 region— bit jk) = region— bit jk) + 1;

on _ bit( j k ) < MaxBit

一 ;

J kJ [-100 else 计算 bit— band— used jk) = region— bit jk) x BandWidth jk);

计算 bit— used— all = sum(bit— band— used()) 7=0,1 , ... ,L_core - 1; 如果 bit— used— all < bits— left— core -24, 返回并在各编码子带中重新寻找 j k , 循环计算比特分配数(或称为编码比特数) ; 其中 24为编码子带宽度的 最大值。

否则, 结束循环, 计算比特分配数, 输出此时的比特分配数。

最后,根据子带的重要性, 将剩余的不到 24个比特按如下原则分配给满 足要求的编码子带, 优先在比特分配为 1的编码子带中给每个频域系数分配 0.5个比特, 同时降低该编码子带的重要性 0.5; 否则给比特分配为 0的子带 中每个频域系数分配 1个比特,同时降低该编码子带的重要性 1,直至 bit— left -bit used all<4, 比特分配结束。 上述分类阔值的取值范围为大于等于 2且小于等于 8, 本实施例中可以 为 5。

其中, MaxBit为编码子带中单个频域系数所能分配到的 最大的比特分配 数, 单位为 bit/频域系数。 本实施例中釆用 MaxBit=9。 这个值可以根据编解 码器的编码码率适当调整。 region— bitG)为第 j 个编码子带中单个频域系数所 分配的比特数, 也就是该子带中单个频域系数的编码比特数。

此外, 本步骤中也可以将 ¾( 、 或将 L xlog 2 [J¾( )]+ 」作为各编码子带 的比特分配重要性初始值进行核心层的比特分 配, j=0, ... ,L_core - 1; 〃 >0。

步骤 105 : 用核心层各编码子带量化指数重建的量化幅值 包络值对该编 码子带中的各频域系数进行归一化计算,然后 对归一化的频域系数进行分组, 组成若干个矢量;

使用编码子带 j的量化幅值包络 7 ^^ 2 对该编码子带中所有频域系数 进行归一化处理: n o rm a lize d ― X J

将编码子带中连续的 8个系数分组构成 1个 8维矢量。 根据表 1对编码 子带的划分,编码子带 ·中的系数正好可以分组构成 Lattice— D8G)个 8维矢量。 各个归一化后分组的 8维待量化矢量可表示为 , 其中 m表示该 8维矢量 在编码子带中的位置, 其范围在 0到 Lattice— D8G)-1之间。

步骤 106: 判断编码子带 j所分配比特数 region— bitG)的大小, 如果所分 配比特数 region— bitG)小于分类阔值, 则执行步骤 107和步骤 109 , 即对该编 码子带中待量化矢量釆用塔型格型矢量量化方 法进行量化和编码; 如果所分 配比特数 reg o«— bz ( )大于等于该阔值, 则执行步骤 108和步骤 110 , 即对该 编码子带中的待量化矢量釆用球型格型矢量量 化方法进行量化和编码; 本实 施例的阔值釆用 5比特。

步骤 107 : 对低比特编码子带釆用塔型格型矢量量化方法 进行量化, 此 时子带 j所分配到的比特数满足: l<=regwn bit( }<5 本发明釆用基于 ¾格点的 8维格型矢量量化, 其中 /¾格点定义如下:

其中 Z 8 表示 8维的整数空间。 将 8维矢量映射到 (即量化到) /¾格点的 基本方法描述如下:

设 X为任意实数, x)表示取和 X相邻的两个整数中相距较近的整数的取 整量化, 表示取相邻的两个整数中相距较远的整数的取 整量化。 对任意 矢量 =( ^,..., ^^,同样可定义/ (^0 = (/( ),/( ),...,/( 》。 在 )中选择 取整量化误差的绝对值最大的分量中的最小下 标, 记为 由此定义 ( ) = (/^),/( ), J( ¾ ),...,/(X S 》, 则 )或 g ( )中有一个且只有一个是/ ¾格 点的数值, 此时量化器输出/ ¾格点的量化值为:

将待量化矢量量化到 /¾格点的方法及求解 /¾格点索引的具体步骤如下: 步骤 107a : 待量化矢量的能量规整;

量化之前需要对待量化矢量进行能量规整。 根据待量化矢量所在编码子 带 j所分配的比特数 rego«— bz(), 从表 2中查询到该比特数所对应的码本序 号 (index)和能量缩放因子 (scale) ; 然后根据下面的公式对待量化矢量进 行能量规整:

Y scal ={YJ-^Y cale{index) 其中, 1 表示编码子带 中第 个归一化后的待量化 8维矢量, ¾ ∞fe 表 示对】 进行能量规整后的 8维矢量, n rm m 。

表 2塔式格型矢量量化比特数与码本序号、 能量缩放因子及最大塔面能 量半径的对应关系 1 0 0. 5 2

1. 5 1 0. 65 4

2 2 0. 85 6

2. 5 3 1. 2 10

3 4 1. 6 14

3. 5 5 2. 25 22

4 6 3. 05 30

4. 5 7 4. 64 44 步骤 107b : 对规整后的矢量进行格点量化;

将能量规整后的 8维矢量 ¾L fe 量化到 /¾格点 上:

1 j ~ J D S 1 j, scale )

其中, /¾ (·)表示将某个 8维矢量映射到 /¾格点的量化算子。 步骤 107c : 根据/ ¾格点¾"的塔面能量对;¾ ∞¾ 的能量进行截断; 计算 /¾格点 的能量并和编码码本中的最大塔面能量半径 flrgefOifex)进行比较。 如果不大于最大塔面能量半径, 则计算该格点在码 本中的索引; 否则将该编码子带规整后的待量化矢量 i¾ ∞fe 进行能量截断, 直到能量截断后的待量化矢量的量化格点的能 量不大于最大塔面能量半径; 这时对能量截断后的待量化矢量持续增加其自 身的一个小能量, 直至其量化 到 /¾格点的能量超过最大塔面能量半径;取最后 一个能量不超过最大塔面能 量半径的 /¾格点作为待量化矢量的量化值。 具体过程可以用下面伪代码描 述:

计算 的塔面能量,即求编码子带 j中第 m个矢量的各分量绝对值之和, Ybak = Y j m

Kbak = temp _ K

If temp— K> LargeK(index)

While temp_K> LargeK(index)

temp _ K = sum Ϋ"

Ybak = Y: r

Kbak = temp _ K

While temp_K<= LargeK(index)

Ybak = Y J m

Kbak = temp _ K j, scale j, scale j ¾ V j , scale ) temp _ K = sum Ϋ.

Y m 二 Ybak

temp _ K 二 Kbak 这时的 是最后一个能量不超过最大塔面能量半径的 A格点 temp _ K是该格点的能量。 步骤 107d : 生成 Z¾格点 在码本中的量化索引; 根据以下步骤, 通过计算得到/ ¾格点) 在码本中的索引。 具体步骤如

步骤 1: 根据塔面能量的大小, 分别对各个塔面上的格点进行标号。

对于维数为 L的整数格点网格 ZL , 定义能量半径为 f的塔面为:

S(L,K) = {Y = ( x ,y 2 ,...,y L )^Z | 记 N(L, )为 S(U)中格点的个数, 对于整数格 ^来说, N(U)有如下的 递推关系:

N(J,0) = 1 (L≥ 0), Ν(0,Κ) = 0 (Κ≥ϊ)

N(L, K) = N(L -l,K) + N(L -1,^-1) + N(L, K-\) (L≥\K≥\)

对于能量半径为 K 的塔面上的整数格点 =( ; 2 ,..., ^2 £ , 用

[0,1,....,NCL,^)-1]中的某一个数 6来标识, 并称 b为该格点的标号。 求解标号 b的步骤如下:

步骤 1.1: 令 b=0, z=l, k=K, l=L, 根据上述的递推公式, 计算 N(wJ), =L,n<=K)。 定义:

步骤 1.2: 如果;尸 0, 则 b=b+0;

l-sgn( )

果 W=l, U'Jb = b + N(/ N(/-1, :-1)

如果y,|>l, 则 ΙΛ-Ι-I

b = b + N(l-l,k) + 2^N(l-l,k-j)

7=1

l-sgn(^)

+ N(/— ΐϋ Ι)

2

步骤 1.3: k = k-\ yi \ 则停止搜索, b为 Y的 标号, 否则继续步骤 1.2)。

步骤 2: 对所有塔面上的格点进行统一标号。

根据各个塔面的格点数和每个格点在各自塔面 上的标号, 计算每个格点 在全体塔面中的标号: index b(J, m) - b(J, w) V(8, kk) 其中, kk为偶数。 此时的 zwifex— b(,w)即为/ ¾格点¾^在码本中的索引。 也就是编码子带 中第 w个 8维矢量的索引。

步骤 107e : 重复步骤 107a ~107d, 直到所有编码比特大于 0的编码子 带的各个 8维矢量都完成索引生成; 转向步骤 109。 步骤 108: 对高比特编码子带釆用球型格型矢量量化方法 进行量化, 此 时子带 j所分配到的比特数满足: 5<=region_bit(j) <=9;

此处同样釆用基于/ ¾格的 8维格型矢量量化。

步骤 108a:根据编码子带 ·中单个频域系数所分配到的比特数 regzow— bz() 对该编码子带归一化后的第 m个待量化矢量 1 进行如下能量规整:

™ =^( y m -a)

其中 , a = (2- 6 ,2- 6 ,2- 6 ,2- 6 ,2- 6 ,2- 6 ,2- 6 ,2- 6 ) ,

\

β =—— - ~~ ,

scale(region _ bit(j))

而 scale(region— bit(J))表示编码子带中单个频域系数的比特分 数为 region _bit(j)时的能量缩放因子, 根据表 3可查到它们的对应关系。

表 3 球型格型矢量量化的比特分配数与能量缩放因 子的对应关系 t匕 # 酉己 region—bit 能量缩放因子 scale

5 6

6 6.2

7 6.5

8 6.2

9 6.6

步骤 108b: 生成/ ¾格点的索引矢量。 将编码子带 j中进行能量缩放后的第 m个待量化矢量 映射到 /¾的格 点 上:

判断/ Α 0^/2 °" ίω )是否为零矢量, 即它的各个分量是否都为零, 如 果是则称为零矢量条件满足, 否则称为零矢量条件不满足。

如果零矢量条件满足,那么索引矢量可由下面 的索引矢量生成公式得到: k = (f j m G- 1 )mod2 reg,on - b,tU) 输出此时/ ¾格点 的索引矢量 k, 其中 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

G

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 如果零矢量条件不满足, 将矢量^ "的值除以 2, 直至零矢量条件 (f72 ίω )成立; 并备份^ 自身的小倍数值为 然后对缩减后的矢 量 加上备份的小倍数值 W, 再量化到/ ¾格点, 判断零矢量条件是否满足; 如果零矢量条件不满足, 则根据索引矢量计算公式得到最近满足零矢量 条件 的 /¾格点的索引矢量 k, 否则继续对矢量 增加备份的小倍数值 W, 然后 再量化到/ ¾格点, 直至零矢量不条件满足; 最后根据索引矢量计算公式得到 最近满足零矢量条件的/ ¾格点的索引矢量 k; 输出/ ¾格点 的索引矢量 k。 这个过程也可通过下面的伪代码描述:

temp _D = f Dg (7/ 12 region - bit(j) )

Ybak = Y j m

Dbak = temp _ D

While temp_D≠0

Y m =f Ds (Y m )

temp _D = f Dg (7/ 12 region - bit(j) )

}

w = Y l l\6

Ybak = Y J m

Dbak = temp _ D While temp _D = 0

Ybak = Y m

Dbak = temp _ D Y m =f Ds (Y m ) temp _D = f Dg (7/ 12 region - bit(j) )

Y m =Ybak

J

k = (^ G - i) mod ¾ 转向步骤 110; 步骤 109: 对低比特编码子带的矢量量化索引进行编码, 此时子带 j所分 配的比特数满足: \<=region bit(j)<5;

根据塔型格型矢量量化方法得到各个编码子带 中每个 8维矢量的矢量量 化索引 index b{jj), 其中 表示编码子带 j的第 个 8维矢量。 对量化索引 index b( ,k)进行霍夫曼编码的步骤如下:

步骤 109a: 在单个频域系数所分配到的比特数为大于 1小于 5但除去 2 的所有编码子带中, 对每个矢量量化索引的自然二进制码中每 4位分成一组 并对其进行霍夫曼编码。

步骤 109b: 在单个频域系数所分配到的比特数为 2的所有编码子带中, 对每个 8维矢量的塔型格型矢量量化索引使用 15个比特进行编码。 在 15个 比特中, 对 3组 4位比特和 1组 3位比特分别进行霍夫曼编码。

步骤 109c: 当编码子带的单个频域系数所分配到的比特数 为 1时, 如果 量化索引小于 127, 则对量化索引使用 7个比特进行编码, 把 7个比特分成 1 组 3比特和 1组 4比特,分别对两组进行霍夫曼编码;如果量 索引等于 127, 则它的自然二进制码值为" 1111 1110", 把前面 7个 1分成 1组 3比特和 1组 4比特, 分别对两组进行霍夫曼编码; 如果量化索引等于 128, 则它的自然二 进制码值为" 1111 1111", 把前面 7个 1分成 1组 3比特和 1组 4比特, 分别 对两组进行霍夫曼编码。

对量化索引进行霍夫曼编码的方法可用如下伪 代码描述: 在所有的 region bit( ) =1.5和 2<region bit(J<5的编码子带内

n在 [0, region bitij) x 8/4 - 1]的范围内, 步长为 1递增, 做如下循环:

将 index bij c)^^ 4*"位,

计算 "ifex— b(, :)低 4比特位 i ;?, ^LtJt tmp = md(index b(jk), 15) 计算 tmp在码本中的码字及其比特消耗数:

plvq_codebook(/,^) = plvq_code(tmp+ 1 );

plvq_count(/,^) = plvq_bit_count(tmp+ 1 );

其中 plvq_codebook(,:), 和 plvq_count(,:)分别为 _/子带第 个 8维矢量 的霍夫曼编码码本中的码字和比特消耗数; lvq_bit_count和 plvq_code根据 表 4查找。

更新釆用霍夫曼编码后的比特消耗总数:

bit used hufFall = bit used hufFall + plvq_bit_count(tmp+ 1 );

在 region bit( ) =2的编码子带内

n在 [0, region bitij) x 8/4 - 2]的范围内, 步长为 1递增, 做如下循环:

将 index bij c)^^ 4*"位,

计算 "ifex— b(, :)低 4比特位 i ;?, ^LtJt tmp = md(index b(jk), 15) 计算 tmp在码本中的码字及其比特消耗:

plvq_count(/,^) = plvq_bit_count (tmp+ 1 ); plvq_codebook(/,^) = plvq_code (tmp+1);

其中 plvq_count( ,A:), 和 plvq_codebook( , :)分别为 _/子带第 :个 8维矢量 的霍夫曼比特消耗数和码字; plvq_bit— count和 plvq_code根据表 4查找。

更新釆用霍夫曼编码后的比特消耗总数:

bit used hufFall = bit used hufFall + plvq_bit_count(tmp+ 1 );

下面需要处理一个 3比特情况:

在 index— b(j ,ΐή右移 [region— bit(f) x 8/4 - 2]*4位后,

计算 "ifex— b( , :)低 3比特位 7) 计算 tmp在码本中的码字及其比特消耗:

plvq_count(/,^) = plvq_bit_count _r2_3 (tmp+1);

plvq_codebook(/,^) = plvq_code _r2_3 (tmp+1);

其中 plvq_count( ,A:), 和 plvq_codebook( , :)分别为 _/子带第 :个 8维矢量 的霍夫曼比特消耗数和码字; plvq_bit— count— r2— 3和 plvq_code— r2— 3根据表 5 查找。

更新釆用霍夫曼编码后的比特消耗总数:

bit used hufFall = bit used hufFall + plvq_bit count(tmp+ 1 );

在 region—biti ) =1的编码子带内

如果 计算 "ifex— b(,:)低 4比特位 也就 tmp = d(index—b( ,k) , 15) 计算 tmp在码本中的码字及其比特消耗:

plvq_count(/,^) = plvq_bit_count— rl— 4(tmp+l);

plvq_codebook(/,^) = plvq_code— rl— 4(tmp+l);

其中 plvq_count(,A:), 和 plvq_codebook(,:)分别为 _/子带第 :个 8维矢量 的霍夫曼比特消耗数和码字; plvq_bit— count— rl— 4和 plvq_code— rl— 4根据表 6 查找。

更新釆用霍夫曼后的比特消耗总数:

bit used hufFall = bit used hufFall + plvq_bit_count(tmp+ 1 );

下面需要处理一个 3比特情况:

将 index b(j,k)右移 4位,

计算 "ifex—b( , )低 3比特位 i/w?, 也就 tmp = and(index—b(JJc), 7) 计算 tmp在码本中的码字及其比特消耗:

plvq_count(/,^) = plvq_bit_count— rl— 3(tmp+l);

plvq_codebook(/,^) = plvq_code _rl_3(tmp+l);

其中 plvq_count(,:) , 和 plvq_codebook(,:)分别为 _/子带第 :个 8维矢量 的霍夫曼比特消耗数和码字; 码本 plvq_bit— count— rl— 3和 plvq_code— rl— 3根 据表 7查找。

更新釆用霍夫曼后的比特消耗总数:

bit used hufFall = bit used hufFall + plvq_bit count(tmp+ 1 ); 如果

{ 它的二进制值为" 1111 1110"

对于前三个 "1"和后四个 "1"分别查找表 7和表 6的霍夫曼码表 : 计算方法同前面 index b(j,k)< 下的情况.

更新釆用霍夫曼后的比特消耗总数: 总共需要 8个比特.

如果 index _b(jk)=\28

{ 它的二进制值为" 1111 1111"

对于前三个 "1"和后四个 "1"分别查找表 7和表 6的霍夫曼码表, 计算 方法同前面 index—b{j,k〈Un下的情况.

更新釆用霍夫曼后的比特消耗总数: 总共需要 8个比特.

表 4塔式矢量量化霍夫曼码表

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_r 1—4 plvq_code_rl_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

1 1 4 10

12 4 9

13 4 5

14 4 1 1

15 4 2 表 7 塔式矢量量化霍夫曼码表

Tmp Plvq_bit_count_r 1—3 plvq_code_rl_3

0 2 1

1 3 0

2 3 2

3 4 7

4 4 15

5 3 6

6 3 4 步骤 109d: 判断霍夫曼编码是否节省比特。

将所有低比特编码子带的集合记为 C, 计算属于 C中所有编码子带的 8 维矢量的量化矢量索引经过霍夫曼编码后消耗 比特的总数 Wt_ M> «^_/m#_ a //。 将 bit—used—huff—all和给 C 中所有编码子带说分配比特数的总数 sum{bit _ band _ used ( j\ j e C) 进 行 比 较 , ^口 果 bit _ used _ huff _ all < 匪 (bit _ band _ used(j), · e C) , 则传输霍夫曼编码后的量化矢量索引, 同时设置 霍 曼编码标志 Mag— huff— PLVQ为 1;否则, 直接对量化矢量索引进行自然编 码, 并设置霍夫曼编码标志 Flag huff PLVQ为 0。

步骤 109e: 比特分配数的修正。

若霍夫曼编码标志 Flag huff PLVQ为 0,则不修正编码子带的比特分配。 若霍 曼编码标志 Flag— huff— PLVQ为 1, 则利用霍夫曼编码节省下来的比特 对编码子带的比特分配进行修正。

如图 2所示, 比特分配修正流程具体包括如下步骤:

步骤 109f: 计算霍夫曼编码节省的比特数, 令 count=Q: diff _ huff = sum(bit _ band _ used (j), e C) - bit _ used _ huff _ all

步骤 109g: 如果 _½#大于零, 则在各 r () 0=0,..., - 1 ) 中寻找最 大值 rk(j k ), 用公式表示为:

j k =arg ax[rk(j)]

y=o,--,i-i

步骤 109h:判断 region— bitGk)+l是否小于等于 9,如果是则执行步骤 109i, 否则将 jk对应的编码子带的重要性调整到最低(例如 r^j k )=- 100) , 表 示无需再对该编码子带的比特分配数进行修正 , 并跳转至步骤 109g。

步骤 109i:判断 diff— huff - (region— bitGk)+l) x BandWidth(jk)是否大于等于 0, 如果大于等于 0, 则执行步骤 109j, 即修正编码子带 j k 的比特分配数 region _bit(j k ) , 降低子带重要性 rkGk)的值, 令比特分配修正迭代次数 count =count+\, 并对编码子带 j k 重新进行矢量量化和霍夫曼编码, 最后更新 diff— huff的值; 否则比特分配修正流程结束。

步骤 109j: 在比特分配修正过程中, 对比特分配数为 0的编码子带分配 1个比特, 比特分配后重要性降低 1, 对比特分配数大于 0且小于 5的编码子 带分配 0.5个比特, 比特分配后重要性降低 0.5, 对比特分配数大于 5的编码 子带分配 1个比特, 比特分配后重要性降低 1。

步骤 109k: 判断比特分配修正迭代次数 count是否小于等于 Maxcount, 如果是, 则跳转至步骤 109f, 否则比特分配修正流程结束。

上述 Maxcount为比特分配修正迭代次数上限值,该值 编码比特流及其 釆样率决定, 本实施例中釆用 Maxcount=31。

转向步骤 111。 步骤 110: 对高比特编码子带的矢量量化索引进行编码, 此时子带 j所分 配的比特数满足: 5<=region bit(j)<=9 0

根据 108的方法, 对编码比特数为 5到 9的编码子带中的 8维矢量进行 量化后得到矢量索引 k={kl, k2, k3, k4, k5, k6, k7, k8} , 根据单个频域系数所 分配到的比特数对索引矢量 k的各个分量进行直接编码, 得到该矢量的编码 比特。

步骤 111: 对上述核心层中经过矢量量化的频域系数进行 反量化, 并与 原始的经过 MDCT后得到的频域系数进行差计算, 得到核心层的残差信号。

步骤 112: 对核心层的残差信号进行与频域系数相同的子 带划分, 根据 核心层的编码子带幅值包络量化指数和核心层 的比特分配数 (即各 region— bitG), j=0,...,L core - 1 )计算出核心层残差信号子带的幅值包络量化 指数。

本步骤可以釆用如下子步骤实现:

步骤 112a: 根据核心层各编码子带中单个频域系数所分配 的比特数 region bitij), j=0,...,L core - \ , 计算得到核心层残差信号幅值包络量化指数 的修正值 diffregion_b it(J)) , J=0, ... ,L_core - 1;

其中, region— bit(j)= 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 7, S,j=0,...,L core - 1 , 而幅值包络量化指数修正值可通过以下规则进 行设置: diff(region_bitG)) > 0; 且

当 region_bit(j)>0时, diff(region_bit(j))随着 region_bit(j)值的增大而不 为了得到更好的编解码效果, 可以对各比特分配数(region— bit ) 下计算 出的子带幅值包络量化指数和直接从残差信号 计算出的子带幅值包络量化指 数的差值进行统计, 得到概率最高的幅值包络量化指数修正值, 如表 8所示:

表 8

步骤 112b: 根据核心层中编码子带 j的幅值包络量化指数和表 8中的量 化指数修正值, 计算出核心层残差信号第 个子带的幅值包络量化指数: Tfi q (j) = Th q (j)― diff(region _ bit(j)) ,户 o, ... ,L—core― 1 其中, 是核心层中编码子带 J的幅值包络量化指数。

需要注意的是, 当核心层中某个编码子带的比特分配数为 0时, 则无需 对核心层残差信号的编码子带幅值包络进行^ ί 正, 这时核心层的残差信号子 带幅值包络值与核心层的编码子带幅值包络值 相同。 此外, 当核心层中某个编码子带比特分配数 region— bitG)=9时, 置核心层 残差信号第 j个编码子带的量化幅值包络值为零。

步骤 113 : 在扩展层中对各编码子带进行比特分配:

扩展层的编码信号由核心层的残差信号, 和核心层频率范围以上的 MDCT系数构成。 扩展层子带划分由表 1决定。 子带 0, ... ,L core - l中的编 码信号是核心层残差信号, L core,… - \ 中的编码信号是相应子带中的 MDCT系数。

根据计算出的核心层残差信号的子带幅值包络 量化指数、 扩展层中的 MDCT系数构成编码子带的幅值包络量化指数以 扩展层可用比特数, 釆用 与核心层相同的比特分配方案在整个扩展层频 带范围内计算扩展层各编码子 带重要性的初始值, 并对各个编码子带进行比特分配。

本实施例中,扩展层频带范围是 0 ~ 13.6kHz。音频流的总码率为 64kbps, 核心层的码率为 32kbps, 则扩展层的最大码率为 64kbps。 根据核心层码率和 扩展层最大码率计算出扩展层中总的可用的比 特数, 然后进行比特分配, 直 至比特完全消耗。

步骤 114: 根据扩展层各编码子带幅值包络量化指数和相 应的比特分配 数, 对扩展层编码信号进行归一化、 矢量量化和编码, 得到编码信号的编码 比特。 其中, 扩展层中编码信号的矢量构成、 矢量量化方法和编码方法分别 与核心层中频域系数的矢量构成、 矢量量化方法和编码方法相同。

步骤 115: 如图 3a所示, 釆用如下方式构造可分层编码码流: 首先将核 心层的边信息按如下顺序写入比特流复用器 MUX , Flag huff— rms、 Flag huff PLVQ core和 count; 然后将核心层的编码子带幅值包络编码比特 写入 MUX, 然后将核心层频域系数的编码比特写入 MUX; 然后将扩展层的 矢量编码霍夫曼编码标志位 Flag huff— PLVQ—ext和扩展层迭代次数 count ext 写入 MUX, 然后将扩展层中 MDCT系数构成的编码子带 —core, ... ,L - 1 ) 的幅值包络编码比特写入 MUX , 然后将扩展层编码信号的编码比特写入 MUX; 最后将按上述顺序写成的可分层码流传送到解 码端;

其中, 扩展层编码信号编码比特的写入顺序按照各编 码子带重要性的初 始值排序。 即重要性初始值大的编码子带的编码比特优先 写入码流, 对于具 有相同重要性的编码子带, 低频编码子带优先。

由于扩展层中的残差信号的幅值包络是由核心 层的幅值包络和比特分配 数计算出来的, 因此不用传送到解码端。 这样既可以增加核心层带宽的编码 精度又不必附加比特用以传送残差信号的幅值 包络值。

步骤 116: 根据码率的大小构造码率层。

根据所要求传送的码率, 把比特流复用器后部不必要的比特舍去后, 将 满足码率要求的比特数传送到解码端。 即按照编码子带重要性从小到大的顺 序舍去不必要的比特。

在本实施例中, 编码频带范围为 0 ~ 13.6kHz, 最大码率为 64kbps, 按码 率分层的方法如下:

将编码频带范围 0 ~ 6.4kHz内的 MDCT频域系数划分成核心层, 核心层 所对应的最大码率是 32kbps , 记为 L0 层; 扩展层的编码频带范围为 0 ~ 13.6kHz, 其最大码率为 64kbps, 记为 —5层;

在送到解码端之前, 根据舍去比特数的多少可以将码率划分为 —1层, 对应 36kbps, Lj_2层, 对应 40kbps, _3层, 对应 48kbps, _4层, 对应 56kbps及 Li— 5层, 对应 64kbps。

图 10表示了根据频带范围分层和根据码率分层的 系。

图 3是本发明第一实施例增强型可分层音频编码 统的结构示意图, 如 图 3所示, 该系统包含: MDCT单元 301、 幅值包络计算单元 302、 幅值包络 量化和编码单元 303、核心层比特分配单元 304、核心层频域系数矢量量化和 编码单元 305、 扩展层编码信号生成单元 306、 残差信号幅值包络生成单元 307、 扩展层比特分配单元 308、 扩展层编码信号矢量量化和编码单元 309、 比特流复用器(MUX ) 310; 其中:

MDCT单元设置为, 对输入的音频流进行 MDCT, 生成频域系数; 幅值包络计算单元设置为,将 MDCT单元输出的频域系数进行子带划分, 并计算各编码子带的频域幅值包络值。 根据幅值包络对应的子带位置, 它可 分成核心层的幅值包络和扩展成的幅值包络; 幅值包络量化和编码单元设置为, 对幅值包络计算单元输出的各编码子 带的幅值包络值进行量化和编码, 生成子带幅值包络的量化指数和幅值包络 量化指数的编码比特;

核心层比特分配单元设置为, 根据幅值包络量化和编码单元输出的子带 幅值包络的量化指数计算各编码子带重要性的 初始值, 并根据各编码子带的 重要性进行核心层的比特分配;

核心层频域系数矢量量化和编码单元设置为, 利用量化后的各编码子带 的幅值包络值对该编码子带中的频域系数进行 归一化处理, 然后对需要编码 的频域系数进行矢量量化和编码, 生成频域系数的矢量量化值和编码比特; 扩展层编码信号生成单元设置为, 对上述经过矢量量化的频域系数进行 反量化,并与 MDCT单元输出的核心层频带范围以内的频域系 进行差计算, 得到核心层残差信号。核心层残差信号和 MDCT单元输出的核心层范围以上 的频域系数构成扩展层编码信号;

残差信号幅值包络生成单元设置为, 对残差信号进行与频域系数相同的 子带划分, 根据核心层各编码子带的幅值包络量化指数和 比特分配数计算出 残差信号各编码子带的幅值包络量化指数;

扩展层比特分配单元设置为, 在扩展层对各编码子带进行比特分配, 生 成扩展层各编码子带的比特分配数;

编码信号矢量量化和编码单元设置为, 根据扩展层的编码信号子带幅值 包络量化指数和相应的比特分配数对编码信号 归一化、 矢量量化和编码得到 编码信号的编码比特;

比特流复用器设置为, 将边信息、 编码子带幅值包络编码比特、 核心层 频域系数的编码比特、 扩展层的编码信号的编码比特发送给解码端。

图 3中的各单元(模块) 的具体功能详见对图 1所示流程的描述。

图 4是本发明第一实施例增强型可分层音频解码 法的流程图。 如图 4 所示, 该方法包括:

步骤 401 : 从编码端传送过来的可分层码流中 (即从比特流解复用器 DeMUX中)提取一帧的编码比特; 提取出编码比特后, 首先对边信息进行解码, 然后根据 Flag— huff— rms的 值对该帧中核心层的各幅值包络编码比特进行 霍夫曼解码或直接解码, 得到 核心层各编码子带的幅值包络量化指数 ThqG), j=0, ... ,L—core - 1。

步骤 402: 根据核心层各编码子带的幅值包络量化指数计 算出核心层各 编码子带重要性初始值, 并利用子带重要性对核心层各编码子带进行比 特分 配, 得到核心层的比特分配数; 解码端的比特分配方法和编码端的比特分配 方法完全相同。 在比特分配过程中, 比特分配步长及比特分配后编码子带重 要性降低的步长是变化的。

在完成上述比特分配过程后, 根据编码端核心层的比特分配修正次数 co 直和各编码子带的重要性, 对编码子带再进行 co ί次比特分配, 然后 比特分配全过程结束。

在比特分配过程中, 对比特分配数为 0的编码子带分配比特的步长是 1 个比特, 比特分配后重要性降低的步长为 1 , 对比特分配数大于 0且小于某 个阔值的编码子带追加分配比特时的比特分配 步长为 0.5 个比特, 比特分配 后重要性降低的步长也为 0.5 ,对比特分配数大于等于该阔值的编码子带追 分配比特时的比特分配步长为 1 , 比特分配后重要性降低的步长也为 1 ;

步骤 403 : 利用核心层的比特分配数和各编码子带的量化 幅值包络值, 并根据 Flag—huff—PLVQ core对频域系数的编码比特进行解码、反量化 反归 一化处理, 得到核心层频域系数。

步骤 404: 在对频域系数的编码比特进行解码、 反量化时, 根据核心层 比特子带和高比特子带分别使用塔型格型矢量 量化反量化方法和球型格型矢 量量化反量化方法进行反量化, 转向步骤 405和步骤 406。

步骤 405 : 根据边信息, 对低比特编码子带进行霍夫曼解码或者直接进 行自然解码得到低比特编码子带的塔型格型矢 量量化的索引, 对所有塔型格 型矢量量化的索引进行反量化及反归一化, 得到该编码子带的频域系数; 转 向步骤 407。

405a) 如果 Flag— huff— PL VQ=0 , 直接解码得到低比特编码子带 ·的第 w 个矢量量化的索引 index— bG,m), 如果 Flag— huff— P ! ¾=1 , 那么根据编码子带 单个频域系数的比特分配数所对应的霍夫曼编 码码表, 得到低比特编码子带 j的第 m个矢量量化的索引 index— bG,m);

当编码子带的单个频域系数所分配到的比特数 为 1时, 如果量化索引的 自然二进制码值小于" 1111 111",则按照自然二进制码值计算量化索引; 如果 量化索引的自然二进制码值等于" 1111 111",则继续读入下一位比特,如果下 一位比特是 0, 则量化索引值为 127 , 如果下一位比特是 1 , 则量化索引值为 128。

405b) 对该量化索引的塔式格型矢量反量化的过程实 际上是矢量量化过 程 107的逆过程, 反量化过程如下:

405c) 确定矢量量化索引所在的能量塔面及在该能量 塔面上的标号: 在塔面能量从 2到 LargeK(region— bitG))中寻找 kk, 使得下面的不等式满 足:

N(8,kk) <= index— bG,m) < N(8,kk+2),

如果找到这样的 kk, 则 K=kk为量化索引 index— bG,m) 所对应 D 8 格点所 在塔面的能量, b= index— bG,m)-N(8,kk)为该 D 8 格点在所在塔面上的索引标号; 如果找不到这样的 kk,则量化索引 index— bG,m) 所对应 D 8 格点的塔面能 量 K=0及索引标号 b=0;

405d) 求解塔面能量为 K和索引标号为 b的 D 8 格点矢量 Y=(yl, y2 y3, y4, y5, y6, y7, y8,)的具体步骤如下:

步骤 1: 令 Y=(0,0,0,0,0,0,0,0), xb=0, i=l, k=K, 1=8;

步骤 2: 如果 b=xb那么 yi=0;跳转至步骤 6;

步骤 3: 如果 b<xb+N(l-l,k), 则 yi=0,跳转至步骤 5;

否则 , xb=xb+N(l-l ,k);令 j=l;

步骤 4: 如果 b<xb+2*N(l-l,k-j),则

^口果 xb<=b<xb+N(l-l,k-j), 则 yi=j;

如果 b>=xb+N(l-l,k-j), 则 yi=-j , xb=xb+N(l-l, k-j); 否则 xb=xb+2*N(l-l,k-j)J=j+l; 继续本步骤;

更新 k=k-|yi|, 1=1-1, i=i+l, 如果 k>0, 则跳转到步骤 2;

步骤 6: 如果 k>0, 则 y8=k-| yi| , Y=( yl, y2, ... , y8)为所求格点。

405e)对所求 D 8 格点进行能量反规整, 得到

Y 1 ={Υ + Ά)Ι scale{index) 其中, a = (2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 ) , scale{index)是缩放因子, 可从 表 2查找到。

405f)对 进行反归一化处理, 得到解码端恢复出的编码子带 j的第 m 个矢量的频域系数:

ThAj)l2

X m = 2 其中, 7¾(/)为第 j个编码子带的幅值包络量化指数。

步骤 406: 对高比特编码子带直接解码得到高比特编码子 带的矢量量化 索引, 对所有矢量量化索引进行反量化及反归一化, 得到该编码子带的频域 系数。

对高比特编码子带的编码比特直接进行自然解 码得到高比特编码子带 的第 m个索引矢量 k,对该索引矢量进行球型格型矢量量化的反量 过程实 际上是量化过程的逆过程, 具体步骤如下:

406a)计算 x=k*G, 并计算 _yte /?=x/(2 A (rego«— bz()); 其中, k为矢量 量化的索引矢量, r e g 0 «_ t /)表示编码子带 j中单个频域系数的比特分配数; 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

G =

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 406c )对所求 D 8 格点进行能量反规整, 得到

= ca/e(reg謂— )/(2 。" - ) + a ,

其中, a = (2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 , 2- 6 ) , scale(region _ bit(j))是缩放因 子, 可从表 3查找到。

406d)对 进行反归一化处理, 得到解码端恢复出的编码子带 j的第 m 个矢量的频域系数: j ― j

其中, 7¾(/)为第 j个编码子带的幅值包络量化指数。

步骤 407: 利用核心层各编码子带的幅值包络量化指数和 核心层的比特 分配数计算核心层残差信号的子带幅值包络量 化指数; 解码端的计算方法与 编码端的计算方法完全相同。

根据 Flag— huff— rms的值对核心层频域范围以上的各幅值包络编 码比特进 行霍夫曼解码或直接解码, 得到扩展层相应编码子带的幅值包络量化指数 Thq j) , j=,L— core, ... ,L _ 1。

步骤 408: 扩展层编码信号是由核心层残差信号和扩展层 频域系数构成, 根据扩展层各编码子带的幅值包络量化指数计 算各编码子带重要性的初始 值, 并使用各编码子带的重要性对扩展层各编码子 带进行比特分配, 得到扩 展层各编码子带的比特分配数; 解码端的编码子带重要性初始值的计算和比 特分配方法与编码端的编码子带重要性初始值 的计算方法和比特分配方法相 同。

步骤 409: 计算扩展层编码信号。

利用扩展层的比特分配数对编码信号的编码比 特进行解码和反量化, 并 利用扩展层各编码子带的量化幅值包络值对反 量化后的数据进行反归一化, 得到扩展层的编码信号。

扩展层的解码及反量化的方法和核心层解码及 反量化的方法相同。

本步骤中, 各编码子带解码的顺序是根据各个编码子带重 要性的初始值 决定的。 如果有两个编码子带具有相同的重要性, 则低频编码子带优先解码, 同时计算已解码的比特数, 当已解码的比特数满足总比特数要求时停止解 码。 例如, 从编码端送往解码端的码率为 64kbps, 但是由于网络原因, 解码 端只能得到码流前面 48kbps的信息, 或解码端只支持 48kbps的解码, 所以 当解码端解码到 48kbps时就停止解码。

步骤 410: 将扩展层解码得到的编码信号按频率大小重新 排列, 并将相 同频率下的核心层频域系数和扩展层编码信号 相加得到频域系数输出值。

步骤 411 : 对编码过程中未分配编码比特的子带或传输过 程中丟失了的 子带进行噪声填充。

步骤 412 : 对噪声填充后的频域系数进行 IMDCT ( Inverse Modified Discrete Cosine Transform, 修正离散余弦逆变换) , 得到最终的音频输出信 号。

图 5是本发明第一实施例增强型可分层音频解码 统的结构示意图, 如 图 5所示, 该系统包含: 比特流解复用器(DeMUX ) 501、 核心层幅值包络 解码单元 502、 核心层比特分配单元 503、 核心层解码和反量化单元 504、 核 心层残差信号幅值包络生成单元 505、扩展层幅值包络解码单元 506、扩展层 比特分配单元 507、扩展层编码信号解码和反量化单元 508、 频域系数生成单 元 509、 噪声填充单元 510、 IMDCT单元 511 ; 其中:

比特流解复用器设置为, 输出幅值包络编码比特、 频域系数编码比特和 扩展层编码信号编码比特;

核心层幅值包络解码单元设置为, 根据边信息中的 Flag— huff— rms值对比 特流解复用器输出的核心层幅值包络编码比特 进行霍夫曼解码或直接解码, 得到核心层各编码子带的幅值包络量化指数 ThqG) , J=0, ... ,L_core- 1;

核心层比特分配单元设置为, 根据核心层幅值包络解码单元输出的核心 层各编码子带的幅值包络量化指数计算各编码 子带重要性的初始值, 并使用 各编码子带的重要性对核心层各编码子带进行 比特分配, 得到核心层的比特 分配数;

核心层解码和反量化单元设置为, 利用核心层的比特分配数和量化幅值 包络值,并根据边信息中的 Flag—huff—PLVQ core值对频域系数的编码比特进 行解码、 反量化及反归一化处 ί里, 得到核心层频域系数; 核心层残差信号幅值包络生成单元设置为, 利用核心层各编码子带的幅 值包络量化指数和核心层的比特分配数计算核 心层相应编码子带残差信号的 幅值包络量化指数;

扩展层幅值包络解码单元设置为, 根据边信息中的 Flag— huff— rms值对比 特流解复用器输出的核心层范围以上的幅值包 络编码比特进行霍夫曼解码或 直接解码, 得到扩展层中相应编码子带的幅值包络量化指 数 Th q G), ]=

L—core, ... ,L -1 ;

扩展层比特分配单元设置为, 根据扩展层各编码子带编码信号的幅值包 络量化指数计算各编码子带重要性的初始值, 并使用各编码子带的重要性对 扩展层各编码子带进行比特分配, 得到扩展层的比特分配数;

扩展层编码信号解码和反量化单元设置为, 利用扩展层的比特分配数对 扩展层编码信号的编码比特进行解码, 并利用扩展层编码信号编码子带的量 化幅值包络值对解码得到的数据进行矢量反量 化和反归一化, 得到扩展层的 编码信号;

频域系数生成单元设置为, 将核心层解码和反量化单元输出的核心层频 域系数和扩展层编码信号解码和反量化单元输 出的扩展层编码信号相加, 得 到频域系数输出值;

噪声填充单元设置为, 对频域系数生成单元输出的频域系数输出值中 未 分配比特的子带进行噪声填充;

IMDCT单元设置为, 对噪声填充后的频域系数进行 IMDCT , 得到最终 的音频输出信号。

第二实施例

图 6是本发明第二实施例扩展型可分层音频编码 法的流程图。 本实施 例中以帧长为 20ms,釆样率为 48kHz的音频流为例具体说明本发明的可分层 音频编码方法。 在其它帧长和釆样率条件下, 本发明的方法同样适用。 如图 6所示, 该方法包括:

步骤 601:对帧长为 20ms、釆样率为 48kHz的音频流实施 MDCT( Modified Discrete Cosine Transform, 修正离散余弦变换)得到 N点频域系数, 在本实 施例中 N=960。

本步骤的具体实现方法可参照步骤 101。

步骤 602: 将 N点频域系数分成若干非均匀子带, 计算各编码子带的幅 值包络(简称幅值包络) 。

102a: 将所需编码的频带范围内的频域系数分成 L个子带 (可以称为编 码子带) ;

本实施例中, 所需编码的频带范围是 0 ~ 20kHz, 可以按照人耳感知特性 进行非均勾子带划分, 表 9给出了一个具体的划分方式。

在表 9中将 0 ~ 20kHz频带范围内的频域系数划分成 36个编码子带, 也 就是 L=36; 并将 20kHz以上的频域系数置为 0。

在本实施例中, 还划分出核心层的频域范围。 选择表 9中的 0 ~ 15号子 带作为核心层的编码子带,共有 core=16个子带,核心层的频带范围是 0 ~ 6.4kHz; 选择表 9中的 0~27号子带作为扩展层 1的编码子带,共有 Ll=28个 编码子带, 扩展层 1的频率范围是 0~13.6kHz; 选择表 9中的 0~35号子带作 为扩展层 2的编码子带, 共有 L=36个子带, 扩展层 2频率范围是 0~20kHz。

表 9 实施例 2中的编码子带

10 128 143 16

11 144 159 16

12 160 183 24

13 184 207 24

14 208 231 24

15 232 255 24

16 256 279 24

17 280 303 24

18 304 327 24

19 328 351 24

20 352 375 24

21 376 399 24

22 400 423 24

23 424 447 24

24 448 471 24

25 472 495 24

26 496 519 24

27 520 543 24

28 544 575 32

29 576 607 32

30 608 639 32

31 640 671 32

32 672 703 32

33 704 735 32

34 736 767 32

35 768 799 32

计算各编码子带幅值包络的具体方法可参照 步骤 102。

步骤 603: 对各编码子带的幅值包络值进行量化和编码, 得到各编码子 带的幅值包络量化指数和幅值包络的编码比特 , 幅值包络的编码比特需要传 送到 MUX中。 本步骤的具体实现方法可参照步骤 103。

步骤 604: 根据码率失真理论和编码子带幅值包络信息计 算各编码子带 重要性的初始值,并根据核心层各编码子带的 重要性进行核心层的比特分配。

本步骤的具体实现方法可参照步骤 104。

步骤 605: 用核心层各编码子带的量化幅值包络值 ( 2 Thq U)/2 )对该编码 子带中的各频域系数进行归一化计算, 然后对归一化的频域系数进行分组, 组成若干个矢量; 对所述矢量进行矢量量化和编码, 生成频域系数的矢量量 化值和编码比特; 频域系数的编码比特需要传送到 MUX中。

本步骤的具体实现方法可参照步骤 105至 110。

步骤 606: 对上述经过矢量量化的核心层频域系数进行反 量化, 并与原 始的经过 MDCT后得到的频域系数进行差计算, 得到核心层残差信号, 记为 残差信号 1 , 由残差信号 1和扩展层 1的频域系数构成扩展层 1的编码信号; 同样, 由扩展层 k - 1的编码信号与经过矢量量化的扩展层 k - 1的编码信号 的反量化值进行差计算得到扩展层 k - 1的残差信号, 记为残差信号 k, 由残 差信号 k和扩展层 k的频域系数构成扩展层 k的编码信号。

步骤 607:对残差信号 k进行与扩展层 k - 1的编码信号同样的子带划分, 并计算残差信号 k的子带幅值包络量化指数。

根据核心层的子带幅值包络量化指数和核心层 的比特分配数可计算出残 差信号 1的编码子带幅值包络量化指数。 同样, 高扩展层中的残差信号的编 码子带幅值包络量化指数可以利用低扩展层残 差信号编码子带包络量化指数 和低扩展层的比特分配数推算出来的; 也就是说, 扩展层 k ( k>l ) 中的残差 信号 k子带包络量化指数是由扩展层 k - 1的编码信号编码子带包络量化指数 和相应的修正值计算出来的。

本步骤的具体实现方法可参照步骤 112。

步骤 608: 在各扩展层中对各编码子带进行比特分配(即 对各扩展层编 码信号的各编码子带进行比特分配) 。

根据计算出的扩展层编码信号的幅值包络量化 指数, 釆用与核心层相同 的比特分配方案在各扩展层中计算各编码子带 重要性的初始值, 并对各编码 子带进行比特分配; 本实例中音频流的总码率为 96kbps , 核心层的码率为 32kbps, 扩展层 1的最大码率为 64kbps, 扩展层 2的最大码率为 96kbps。 分 别计算各扩展层可提供的编码比特数, 然后进行比特分配, 直至比特完全消 耗。 各扩展层的比特分配方法与核心层的比特分配 方法相同。

步骤 609: 根据计算出的扩展层编码信号编码子带的量化 幅值包络值和 相应的比特分配数, 对编码信号进行归一化、 矢量量化和编码, 得到编码信 号的编码比特。 其中, 各扩展层编码信号的矢量构成, 矢量量化方法和编码 方法都分别与核心层中频域系数的矢量构成, 矢量量化方法和编码方法相同。

步骤 610: 如图 6a所示, 釆用如下方法构造可分层编码码流: 首先将核 心层的边信息按如下顺序写入比特流复用器 MUX , Flag huff—rms, Flag huff PLVQ— core和 count; 然后将核心层的编码子带幅值包络编码比特 写入 MUX, 然后将核心层频域系数的编码比特写入 MUX; 然后按各扩展层 的顺序将扩展层中的 Flag huff PLVQ和 count写入 MUX后, 将扩展层频域 系数的编码子带幅值包络编码比特写入 MUX,然后将编码信号的编码比特写 入 MUX; 最后将按上述顺序写成的可分层码流传送到解 码端;

其中, 编码信号编码比特的写入顺序是按照扩展层从 低到高的顺序将各 个扩展层的编码比特写入码流; 即先写完第 k - 1个扩展层的边信息、 频域系 数编码子带幅值包络编码比特和编码信号编码 比特后再写第 k个扩展层的边 信息、 频域系数编码子带幅值包络编码比特和编码信 号编码比特。 而在各扩 展层中, 写入编码信号编码比特的顺序是根据各子带的 初始重要性排序的; 即初始重要性大的子带的编码信号编码比特优 先写入码流。

步骤 611 : 根据码率的大小构造码率层。

根据所要求传送的码率, 把比特流复用器后部不必要的比特舍去后, 将 满足码率要求的比特数传送到解码端。 即按照编码子带重要性从小到大的顺 序舍去不必要的比特。

在本实施例中, 编码频带范围为 0 ~ 20kHz, 最大码率为 96kbps, 按码率 分层的方法如下:

将编码频带范围 0 ~ 6.4kHz内的 MDCT频域系数划分成核心层, 核心层 所对应的最大码率是 32kbps, 记为 L0层;

扩展层 1的编码频带范围为 0 ~ 13.6kHz,其最大码率为 64kbps,记为 —5 层; 扩展层 2的编码频带范围为 0 ~ 20kHz, 其最大码率为 96kbps, 记为 L 2 — 2 层;

在送到解码端之前, 根据舍去比特数的多少可以将 —5层和 L 2 — 2层之 间进一步划分为 L 2 — 1层, 对应 80kbps及 L 2 — 2层, 对应 96kbps。

图 10表示了根据频带范围分层和根据码率分层的 系。

图 7是本发明第二实施例扩展型可分层音频编码 统的结构示意图, 如 图 7所示, 该系统包含: MDCT单元 701、 幅值包络计算单元 702、 幅值包络 量化和编码单元 703、核心层比特分配单元 704、 频域系数矢量量化和编码单 元 705、 扩展层编码信号生成单元、 残差信号幅值包络生成单元、 扩展层比 特分配单元、 编码信号矢量量化和编码单元、 多路复用器 706。

图 7中为了清晰地描述各扩展层之间的数据交互 系, 将扩展层编码信 号生成单元进一步划分为: 扩展层编码信号生成单元 1至扩展层编码信号生 成单元 K; 将残差信号幅值包络生成单元进一步划分为: 残差信号幅值包络 生成单元 1至残差信号幅值包络生成单元 K; 将扩展层比特分配单元进一步 划分为: 扩展层比特分配单元 1至扩展层比特分配单元 K; 将编码信号矢量 量化和编码单元进一步划分为: 编码信号矢量量化和编码单元 1至编码信号 矢量量化和编码单元 K。

MDCT单元设置为, 对输入的音频流进行 MDCT , 生成频域系数; 幅值包络计算单元设置为,将 MDCT单元输出的频域系数进行子带划分, 并计算各编码子带的频域包络值; 幅值包络量化和编码单元设置为, 对幅值包络计算单元输出的各编码子 带的幅值包络值进行量化和编码, 生成各编码子带的幅值包络量化指数和幅 值包络的编码比特;

核心层比特分配单元设置为, 根据幅值包络量化和编码单元输出的核心 层各编码子带的幅值包络量化指数进行核心层 的比特分配; 频域系数矢量量化和编码单元设置为, 利用核心层各编码子带的量化幅 值包络值对该子带中的频域系数进行归一化处 理, 然后对需要编码的频域系 数进行矢量量化和编码, 生成核心层频域系数的矢量量化值和编码比特 ; 扩展层编码信号生成单元 1设置为, 对频域系数矢量量化和编码单元输 出的经过矢量量化的频域系数进行反量化, 并与 MDCT单元输出的频域系数 进行差计算, 得到核心层残差信号 (记为残差信号 1 ) , 由残差信号 1和扩 展层 1的频域系数构成扩展层 1的编码信号 (记为编码信号 1 ) ;

扩展层编码信号生成单元 i+1设置为,对扩展层 i的编码信号矢量量化和 编码单元 i输出的经过矢量量化的编码信号 i进行反量化,并将其与扩展层编 码信号生成单元 i输出的未经过矢量量化的编码信号 i进行差计算,得到扩展 层 i的残差信号 (记为残差信号 i+1 ) , 由残差信号 i+1和扩展层 i+1的频域 系数构成扩展层 i+1的编码信号 (记为编码信号 i+1 ) ; 其中, i=l,...,K _ l , K为扩展层个数。

残差信号幅值包络生成单元 1设置为, 对核心层的残差信号进行与核心 层频域系数相同的子带划分, 根据核心层的编码子带幅值包络量化指数和核 心层的比特分配数计算出核心层的残差信号 (残差信号 1 ) 的编码子带幅值 包络量化指数;

残差信号幅值包络生成单元 i+1设置为,根据扩展层 i的编码子带幅值包 络量化指数和比特分配数计算出扩展层 i的残差信号 (残差信号 i+1 )的编码 子带幅值包络量化指数; 其中, i=l,...,K _ l , K为扩展层个数;

扩展层比特分配单元 i设置为,在扩展层 i中对各编码子带进行比特分配, 生成扩展层 i的各编码子带的比特分配数; 其中, i=l,...,K, K为扩展层个数; 编码信号矢量量化和编码单元 i设置为,根据扩展层 i的编码信号编码子 带量化幅值包络值和相应的比特分配数对编码 信号归一化、 矢量量化和编码 得到编码信号 i的编码比特; 其中, i=l,...,K, K为扩展层个数;

多路复用器设置为, 将边信息、 频域系数各编码子带幅值包络编码比特、 核心层频域系数的编码比特、 各扩展层的边信息和编码信号的编码比特发送 给解码端。 图 8是本发明第二实施例扩展型可分层音频解码 法的流程图。 如图 8 所示, 该方法包括:

步骤 801 : 从编码端传送过来的可分层码流中(即从多路 分离器 DeMUX 中)提取一帧的编码比特;

提取出编码比特后, 首先对边信息进行解码, 然后根据 Flag— huff— rms的 值对该帧中的各幅值包络编码比特进行霍夫曼 解码或直接解码, 得到核心层 各编码子带的幅值包络量化指数 ThqG) , j=0, ... — core - 1。

步骤 802: 根据核心层各编码子带的幅值包络量化指数计 算出核心层各 编码子带重要性初始值, 并利用子带重要性对核心层各编码子带进行比 特分 配, 得到核心层的比特分配数(即 Region_bitG), j=0, ... , L_core - \ ) ; 解码 端的比特分配方法和编码端的比特分配方法完 全相同。 在比特分配过程中, 比特分配步长及比特分配后编码子带重要性降 低的步长是变化的。

在完成上述比特分配过程后, 根据编码端核心层的比特分配修正次数 co 直和各编码子带的重要性, 对编码子带再进行 co ί次比特分配, 然后 比特分配全过程结束。

在比特分配过程中, 对比特分配数为 0的编码子带分配比特的步长是 1 个比特, 比特分配后重要性降低的步长为 1 , 对比特分配数大于 0且小于某 个阔值的编码子带追加分配比特时的比特分配 步长为 0.5 个比特, 比特分配 后重要性降低的步长也为 0.5 ,对比特分配数大于等于该阔值的编码子带追 分配比特时的比特分配步长为 1 , 比特分配后重要性降低的步长也为 1 ;

步骤 803 : 利用核心层的比特分配数和各编码子带的量化 幅值包络值 ( 2 ¾ 0)/2 ) , 并根据 Flag— huff— PL VQ对核心层频域系数的编码比特进行解 码、 反量化及反归一化处理, 得到核心层频域系数。

步骤 804: 利用核心层各编码子带的幅值包络量化指数和 核心层的比特 分配数计算核心层残差信号各编码子带的幅值 包络量化指数; 解码端的计算 方法与编码端的计算方法完全相同。 核心层的残差信号和扩展层 1的频域系 数构成扩展层 1的编码信号。 同样, 高扩展层中的残差信号编码子带幅值包络量化 指数是利用低扩展 层编码信号编码子带幅值包络量化指数和低扩 展层比特分配数推算出来的, 即扩展层 i-1的残差信号子带包络量化指数是由扩展层 i - 1的编码信号编码 子带幅值包络量化指数和相应的修正值计算出 来的。扩展层 i-1的残差信号和 扩展层 i的频域系数构成扩展层 i的编码信号。

步骤 805: 根据各扩展层各编码子带编码信号的幅值包络 量化指数计算 各编码子带的重要性的初始值, 并根据各编码子带的重要性对该扩展层的各 编码子带进行比特分配, 得到该扩展层的比特分配数; 解码端的编码子带重 要性的初始值的计算和比特分配方法与编码端 的各编码子带重要性的初始值 的计算方法和比特分配方法相同。

步骤 806: 计算扩展层编码信号。

利用扩展层的比特分配数对编码信号编码比特 进行解码和矢量反量化, 并利用扩展层编码信号各编码子带的量化幅值 包络值对反量化数据进行反归 一化, 得到扩展层的编码信号。

本步骤中, 各扩展层编码信号解码的顺序是从低扩展层到 高扩展层, 而 在同一扩展层中各编码子带编码信号解码的顺 序是根据各个编码子带重要性 的初始值决定的。 如果有两个编码子带具有相同的重要性, 则低频编码子带 优先解码, 同时计算已解码的比特数, 当已解码的比特数满足总比特数要求 时停止解码。

步骤 807: 将核心层频域系数和各扩展层编码信号相加得 到频域系数输 出值。

步骤 808: 对编码过程中未分配编码比特的子带进行噪声 填充。

步骤 809: 对噪声填充后的频域系数进行 IMDCT, 得到最终的音频输出 信号。

图 9是本发明第二实施例扩展型可分层音频解码 统的结构示意图, 如 图 9所示, 该系统包含: 比特流解复用器(DeMUX ) 901、 幅值包络解码单 元 902、 核心层比特分配单元 903、 核心层解码和反量化单元 904、 残差信号 幅值包络生成单元、 扩展层比特分配单元、 编码信号解码和反量化单元、 频 域系数生成单元 905、 噪声填充单元 906和 IMDCT单元 907。

图 9中为了清晰地描述各扩展层之间的数据交互 系, 将残差信号幅值 包络生成单元进一步划分为: 残差信号幅值包络生成单元 1至残差信号幅值 包络生成单元 K; 将扩展层比特分配单元进一步划分为: 扩展层比特分配单 元 1至扩展层比特分配单元 K;将编码信号解码和反量化单元进一步划分为 编码信号解码和反量化单元 1至编码信号解码和反量化单元 κ。

比特流解复用器设置为, 输出幅值包络编码比特、 频域系数编码比特和 各扩展层的编码信号编码比特;

幅值包络解码单元设置为, 根据边信息中的 Flag— huff— rms值对比特流解 复用器输出的幅值包络编码比特进行霍夫曼解 码或直接解码, 得到核心层各 编码子带的幅值包络量化指数 ThqG) , j=0, ... , L—core - 1;

核心层比特分配单元设置为, 根据幅值包络解码单元输出的核心层各编 码子带的幅值包络量化指数计算出核心层各编 码子带重要性初始值, 并利用 子带重要性对核心层各编码子带进行比特分配 ,得到核心层的比特分配数(即 Region— bit j) , }=0, ... , L_core - 1 ) ;

核心层解码和反量化单元设置为, 利用核心层的比特分配数和各编码子 带的量化幅值包络值 ( 2 nq UV1 ) , 并根据边信息中的 Flag— huff— PLVQ值对 频域系数的编码比特进行解码、 反量化及反归一化处理, 得到核心层频域系 数;

残差信号幅值包络生成单元 1设置为, 利用核心层各编码子带的幅值包 络量化指数和核心层的比特分配数计算核心层 的各编码子带残差信号的幅值 包络量化指数;

残差信号幅值包络生成单元 i+1设置为 ,利用扩展层 i中各编码子带的幅 值包络量化指数和扩展层 i的比特分配数计算扩展层 i的各编码子带残差信号 的幅值包络量化指数; 其中, i=l, ... ,K - l , K为扩展层个数;

扩展层比特分配单元 i设置为,根据扩展层 i的各编码子带编码信号的幅 值包络量化指数计算扩展层 i的各编码子带重要性的初始值, 并使用扩展层 i 的各编码子带重要性对扩展层 i 的各编码子带进行比特分配, 得到扩展层 i 的比特分配数; 其中, i=l,...,K, K为扩展层个数;

编码信号解码和反量化单元 i设置为,利用扩展层 i的比特分配数对编码 信号 i编码比特进行解码和矢量反量化,并利用扩 层 i的编码信号编码子带 的量化幅值包络值对反量化数据进行反归一化 , 得到扩展层 i 的编码信号; 其中, i=l,...,K, K为扩展层个数;

频域系数生成单元设置为, 将核心层解码和反量化单元输出的核心层频 域系数和编码信号解码和反量化单元输出的各 扩展层编码信号相加, 得到频 域系数输出值;

噪声填充单元设置为, 对频域系数生成单元输出的频域系数输出值中 未 分配编码比特的子带进行噪声填充;

IMDCT单元设置为, 对噪声填充后的频域系数进行 IMDCT, 得到最终 的音频输出信号。

本领域普通技术人员可以理解上述方法中的全 部或部分步骤可通过程序 来指令相关硬件完成, 所述程序可以存储于计算机可读存储介质中, 如只读 存储器、 磁盘或光盘等。 可选地, 上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现。 相应地, 上述实施例中的各模块 /单元可以釆用 硬件的形式实现, 也可以釆用软件功能模块的形式实现。 本发明不限制于任 何特定形式的硬件和软件的结合。

工业实用性

本发明提供的可分层音频编码、 解码方法及系统, 通过在核心层和扩展 层中釆用相同的子带划分和比特分配方法, 并根据核心层幅值包络信息计算 出扩展层幅值包络信息, 在核心层与扩展层比特分配中都充分考虑信号 本身 的分布特性, 使得核心层与扩展层之间紧密相连, 并且在扩展层码流中不包 括残差信号幅值包络信息, 提高了可分层音频编解码的效率, 同时也提高了 代码的利用率。