数据压缩试验六:MPEG 音频编码

这篇博客深入探讨了MPEG-1 Audio Layer II的编码原理,包括多相滤波器组、MPEG-I 心理声学模型及其计算过程。介绍了音频信号如何通过多相滤波器转换到32个子带,以及听觉掩蔽特性在码率分配中的应用,最后简述了Layer I编码的码率分配和装帧过程。

MPEG 音频编码实验

MPEG-1 Audio LayerII 编码原理

基本流程框图

在这里插入图片描述

多相滤波器组

作用:将 PCM 码流输入样本变换到 32 个子带的频域信号

工作框图如下:
在这里插入图片描述

  1. 首先对窗口中的 512 个样本 X[i]X[i]X[i] 进行计算:Z[i]=C[i]・X[i]Z[i]=C[i]・X[i]Z[i]=C[i]X[i],其中 C[i]C[i]C[i] 为标准中规定的分析窗口的 512 个系数,i = 1 … 512
  2. 将样本分为 64 个分组,并计算 64 个 YkY_kYk 的值:Y[k]=∑j=07Z[k+64j]Y[k] = \sum\limits_{j=0}^{7}Z[k+64j]Y[k]=j=07Z[k+64j]
  3. 计算 32 个子带样本:S[i]=∑k=063∑j=07Y[k]・M[i][k]S[i] = \sum\limits_{k=0}^{63}\sum\limits_{j=0}^{7}Y[k]・M[i][k]S[i]=k=063j=07Y[k]M[i][k]

其中分析矩阵 M[i][k]=cos((2i+1)(k−16)π64)M[i][k] = cos(\frac{(2i+1)(k-16)\pi}{64})M[i][k]=cos(64(2i+1)(k16)π)
共需要进行 512+32×64=2560512+ 32\times64=2560512+32×64=2560 次乘法
每个子带的带宽为 π32T\frac{\pi}{32T}32Tπ,中心为 π64T\frac{\pi}{64T}64Tπ 的奇数倍

· 上面提到的多项滤波器组的计算公式 S[i]S[i]S[i] 可以由卷积公式代替:St[i]=∑n=0511X[n−t]hi[n]S_t[i] = \sum\limits_{n=0}^{511}X[n-t]h_i[n]St[i]=n=0511X[nt]hi[n]
· 其中 hi[n]=h[n]×cos((2i+1)(n−16)π64)h_i[n]=h[n]\times cos(\frac{(2i+1)(n-16)\pi}{64})hi[n]=h[n]×cos(64(2i+1)(n16)π)
· 当 n64\frac{n}{64}64n 的整数部分为奇数时,令 h[n]=−C[n]h[n] = -C[n]h[n]=C[n] ,反之则有 h[n]=C[n]h[n] = C[n]h[n]=C[n]
· 每个子带有自己的带通滤波器脉冲响应,虽然直观但效率不高(16384 次乘法和 16352 次加法)

缺点:

  1. 等带宽的滤波器组与人类听觉系统的临界频带不对应,即在低频区域单个子带会覆盖多个临界频带,而在高频区域则会有多个自带对应一个临界频带
    在这里插入图片描述
  2. 滤波器组与其逆过程不是无失真的,尽管滤波器组引入的误差很小且听不到
  3. 子带间频率有混叠:滤波后的相邻子带有频率混叠现象,一个子带中的信号可以影响相邻子带的输出
    在这里插入图片描述

MPEG-I 心理声学模型

基本内容

➢ 听觉系统中存在一个听觉阈值电平,低于这个电平的声音信号就听不到

听觉阈值的大小随声音频率的改变而改变。
一个人是否听到声音取决于声音的频率,以及声音的幅度是否高于这种频率下的听觉阈

➢ 听觉掩蔽特性,即听觉阈值电平是自适应的,会随听到的不同频率声音而发生变化

➢ 通过子带分析滤波器组使信号具有高的时间分辨率, 确保在短暂冲击信号情况下,编码的声音信号具有足够高的质量。又可以通过FFT运算使信号具有高的频率分辨率, 因为掩蔽阈值是从功率谱密度推出来的。

➢ 在低频子带中,为了保护音调和共振峰的结构,就要求用较小的量化阶、较多的量化级数,即分配较多的位数来表示样本值。而话音中的摩擦音和类似噪声的声音,通常出现在高频子带中,对它分配较少的位数

因而心理声学模型的作用即计算信号中听觉不可感知的部分

MPEG-I 标准定义了定义了两个模型

  1. 心理声学模型 1
    · 计算复杂度低
    · 对假设用户听不到的部分压缩太严重
  2. 心理声学模型 2
    · 提供了适合 Layer III 编码的更多特征

但实际实现的模型复杂度取决于所需要的压缩因子:如大的压缩因子不重要,则可以完全不用心理声学模型,此时按位分配算法不使用 SMR(即 Signal Mask Ratio),而是使用 SNR

计算过程
  1. 将样本变换到频域:32 个等分的自带信号并不能精确地反映人耳的听觉特性,于是引入了 FFT 补偿频率分辨率不足的问题

    • 采用 Hann 加权和 DFT
      hann 加权减少频域中的边界效应
      此变换不同于多相滤波器组,因为模型需要更精细的频率分辨率,而且计算掩蔽阈值也需要每个频率的幅值
    • 模型 I:采用 512 (Layer I) 或 1024 (Layers II and III) 样本窗口
      Layer I:每帧384个样本点,512个样本点足够覆盖
      Layer II 和Layer III:每帧1152个样本点,每帧两次计算,模型 I 选择两个信号掩蔽比(SMR)中较小的一个
  2. 确定声压级别

    • 子带 n 中的声压级 Lsb=MAX[X(k),20×log10(scfmax(n)×32768)−10]dBL_{sb} = MAX[X(k),20\times log_{10}(scf_{max}(n)\times 32768)-10]dBLsb=MAX[X(k),20×log10(scfmax(n)×32768)10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值