MPEG音频编码实验
一、MPEG-1 Audio LayerII编码器原理框图
输入信号分为两条线处理:
1.通过子带分析滤波器组使信号具有高的时间分辨率,确保在短暂冲击信号情况下,编码的声音信号具有足够高的质量
2.又使信号通过FFT运算具有高的频率分辨率,因为掩蔽阈值是从功率谱密度推出来的。
(在低频子带中,为了保护音调和共振峰的结构,要求用较小的量化阶数,较多的量化级数,分配较多的位数来表示样本值。话音中的摩擦声和类噪声,通常在高频子带中,对其分配较少的位数)
二 、人耳的感知效应
主要体现在三个方面:
1.响度曲线
人耳对于不同频率的声音的灵敏度不同,人耳对3~4KHz的声音感觉最灵敏;两个声音响度级相同,但强度不一定相同,还与频率有关;声压级越高,等响度曲线趋于平坦;
2.掩蔽效应
一个强纯音会掩蔽在其附近同时发声的弱纯音,这种特性称为频域掩蔽,也称同时掩蔽;我们利用心理声学模型,计算出频域上的掩蔽阈值,然后对于在掩蔽阈值以下的声音信号能量采取不编码的态度,大大减少了所要传输的数据。
在MPEG的层2、3中划分3个块,实际上还用到了时域的掩蔽效应,即强音掩蔽前后出现的弱音。
3.临界频带
人类听觉系统大致等效于一个在0Hz到20KHz频率范围内由25个重叠的带通滤波器组成的滤波器组。不能区分同一频带内同时发生的不同声音; 人耳频带被称为临界频带(critical band);我们用多相滤波器组在MPEG中将音频分为了32个自带,各子带独立编码,量化,在接收端再将其合成组成原来的音频。
三、多相滤波器组
多相滤波器组(Polyphase Filter Bank):将PCM样本变换到32个子带的频域信号。
四、心理声学模型(Psychoacoustic Model):计算信号中不可听觉感知的部分
比特32个等分的子带信号并不能精确地反映人耳的听觉特性。引入FFT补偿频率分辨率不足的问题。
1.MPEG-I 标准定义了两个模型
◼ 心理声学模型1:计算复杂度低但对假设用户听不到的部分压缩太严重
◼ 心理声学模型2 :提供了适合Layer III编码的更多特征
◼ 实际实现的模型复杂度取决所需要的压缩因子
◼如大的压缩因子不重要,则可以完全不用心理声学模型。此时位分配算法不使用SMR( Signal Mask Ratio ),而是使用SNR
五、量化及编码
1.比例因子的取值和编码
①对各个子带每12个样点进行一次比例因子计算。先定出12个样点中绝对值的最大值。查比例因子表中比这个最大值大的最小值作为比例因子。用6比特表示。
②第2层的一帧对应36个子带样值,是第1层的三倍,原则上要传三个比例因子。为了降低比例因子的传输码率,采用了利用人耳时域掩蔽特性的编码策略。每帧中每个子带的三个比例因子被一起考虑,划分成特定的几种模式。根据这些模式,1个、2个或3个比例因子和比例因子选择信息(每子带2比特)一起被传送。如果一个比例因子和下一个只有很小的差别,就只传送大的一个,这种情况对于稳态信号经常出现。
2.动态比特分配
①在调整到固定的码率之前: 先确定可用于样值编码的有效比特数, 这个数值取决于比例因子、比例因子选择信息、比特分配信息以及辅助数据所需比特数
②分配过程:根据心理声学模型的计算结果,为每个子带信号分配比特数,进行动态分配的过程:使根据心理声学模型的SMR计算的MNR最小;对每个子带计算掩蔽-噪声比MNR,是信噪比SNR – 信掩比SMR,即:MNR = SNR – SMR,
使整个一帧和每个子带的总噪声-掩蔽比最小。这是一个循环过程,每一次循环使获益最大的子带的量化级别增加一级,当然所用比特数不能超过一帧所能提供的最大数目
五、装帧(Frame Creation):产生MPEG-I兼容的比特流
码流结构的设计 有利于使用低复杂性和少延时的解码器,编码后的声音信号包含多个短且恒定间隔的切入点
六、实验流程
七、实验要求与结果
◼ 输出音频的采样率和目标码率
◼ 选择某个数据帧,输出
该帧所分配的比特数
该帧的比例因子
该帧的比特分配结果
实验结果:
这里只输出了第100帧分配的比特数,实际上在我们的实验过程中,我们输出了所有帧的比特数,发现每帧分配的比特数差不多,有个别的不同,但相差不大。
八、实验结果分析
从比特分配数来看,32个子带中,越往后面的高频部分分配的比特数越少,这是因为MPEG音频的主要能量在低频部分,为了保持音频的结构,要给低频的部分分配更多的比特数;而高频的更类似于噪声,分配的位数会少,甚至不分配,符合我们之前的原理。