实验原理
音频信号压缩基本思想:去掉音频信号中的冗余,其中冗余主要来自:声音信号中本身存在的冗余;不被人耳感知的部分
一 MPEG音频编码原理
- MPEG-1 Audio Layer2 编码器原理
子带分析滤波器组:使信号具有高的时间分辨率,确保在短暂冲击信号情况下,编码的声音信号具有 足够高的质量
FFT:使信号具有高的频率分辨率。因为掩蔽阈值是从功率谱密度推出来的
动态比特分配:在低频子带中,为了保护音调和共振峰的结构,就要求用较小的量化阶、较多的量化级数,即分配较多的位数来表示样本值。而话音中的摩擦音和类似噪声的声音,通常出现在高频子带中,对它分配较少的位数
二 人类听觉系统的感知特性
生理(Physiological)感知极限(传感极限)
心理(Psychological)感知极限(信号处理极限)
(1) 听觉阈值
听觉系统中存在一个听觉阈值电平,低于这个电平的声音信号就听不到。听觉阈值的大小随声音频率的改变而改变;一个人是否听到声音取决于声音的频率,以及声音的幅度是否高于这种频率下的听觉阈值。
(2) 频域掩蔽
听觉掩蔽特性。即听觉阈值电平是自适应的,会随听到的不同频率声音而发生变化。如果有多个频率成分的复杂信号存在,那么频谱的总掩蔽阈值与频率的关系取决于各掩蔽音的强度、频率和它们之间的距离。
(3)临界频带
临界频带是指当某个纯音被以它为中心频率、且具有一定带宽的连续噪声所掩蔽时,如果该纯音刚好被听到时的功率等于这一频带内的噪声功率,这个带宽为临界频带宽度。
(4) 人耳听觉系统
人类听觉系统大致等效于一个信号通过一组并联的不同中心频率的带通滤波器
(5) 掩蔽效果的加和
当两个信号重叠并落在一个临界频带中时,二者的掩蔽分量可以线性相加。对于复杂音频信号可将其频谱分割成一系列离散段,每段就是一个 掩蔽信号。各掩蔽音互不重叠,即以一个临界带为单位。各掩蔽音的声压级则通过将对应的临界频带上的短时功率谱密度线性相加得到。
三 MPEG音频压缩编码器原理
- 多相滤波器组(Polyphase Filter Bank) :将PCM样本变换到32个子带的频域信号
多相滤波器组总公式
- 心理声学模型:计算信号中不可听觉感知的部分。
MPEG-1标准定义了两个模型。
心理声学模型 1:计算复杂度低,但对假设用户听不到的部分压缩太严重
心理声学模型 2:提供了适合Layer3编码的更多特征
实际实现的模型复杂度取决于所需要的压缩因子。
- 量化和编码
(1) 比例因子的取值和编码
对各个子带每12个样点进行一次比例因子计算。先定出12个样点中绝对值的最大值。查比例因子表中比这个最大值大的 最小值作为比例因子。用6比特表示。
第2层的一帧对应36个子带样值,是第1层的三倍,原则上要传三个比例因子。为了降低比例因子的传输码率,采用了利用人耳时域掩蔽特性的编码策略。
每帧中每个子带的三个比例因子被一起考虑,划分成特定的几种模式。根据这些模式,1个、2个或3个比例因 子和比例因子选择信息(每子带2比特)一起被传送。如果一个比例因子和下一个只有很小的差别,就只传送大的一个,这种情况对于稳态信号经常出现。
(2) 比特分配及编码
使整帧和每个子带的总噪声—掩蔽比最小。
循环,直到没有比特可用:
对每个子带计算掩蔽-噪声比MNR,MNR = SNR –SMR (dB)
对最低MNR的子带分配比特,使获益最大的子带的量化级别增加一级
重新计算分配了更多比特子带的MNR
(3) 数据帧包装
编码器调试
1 理解程序设计的整体框架
由注释可知程序整体设计框架
main()函数部分,考虑到篇幅未截全
2. 理解感知音频编码的设计思想
(1) 两条线
上:音频编码的主线部分
下:应用心理声学模型,帮助计算线性量化器的量化比特数
(2)时-频分析的矛盾
增加时域的分辨力,就会降低频域的分辨力,需要采取适中的方案
- 理解心理声学模型的实现过程
(1) 临界频带的概念
(2) 掩蔽值计算的思路
比例因子的计算
掩蔽值计算
4.输出音频的采样率和目标码率
运行代码发生错误 D8016 “/ZI”和“/Gy-”命令行选项不兼容,进行以下设置
采样率是44.1khz,目标码率是192kbps
6 某个数据帧输出
(1) 该帧所分配的比特数
(2) 该帧的比例因子
(3) 该帧的比特分配结果
(4) 输出result文件结果