【数据压缩】Exp06.MPEG音频编码

来源:互联网 发布:2017年淘宝测黑号 编辑:程序博客网 时间:2024/06/15 11:41

一.实验原理:

1.人耳的感知特性:

掩蔽效应:

分为频域掩蔽和时域掩蔽,频域掩蔽是指一个强纯音会掩蔽在其附近同时发生的弱纯音,除了同时产生的声音之间存在掩蔽效应,不同时发生的声音之间也存在掩蔽效应。时域掩蔽分为超前掩蔽和滞后掩蔽。在绝对安静的情况下,人耳的听觉系统中也存在着一个听觉阈值电平,低于该阈值的声音不能被听到。根据掩蔽效应可以去除音频中的许多冗余部分,达到压缩目的。

临界频带(criticalband):

临界频带是心理声学模型分析的基本单位,临界频带的单位是Bark,一个临界频带即1Bark。当噪声掩蔽纯音时,起作用的是以纯音频率为中心频率的一定频带宽度内的噪声频率。如这频带内的噪声功率等于在噪声中刚能听到的该纯音的功率,则这频带就称为听觉临界频带。

2.MPEG音频编码:

MPEG音频编码的原理框图如下:


  • 编码的过程主要围绕着时域分析与频域分析两条线的矛盾进行:

(1) 时域分析:将音频采样数据经过32个带通滤波器,变成32个不同频率成分的子带样本,时域内对样本数值的分析可以抓住信号的瞬时变化,时间分辩率较高,在一些短暂冲击信号的情况下有较高的质量,但由于只将信号分成32个子带,信号的频域分辨率太低(del F=fs/(2*32))。

(2)频域分析:将音频采样信号经过1024点的FFT变换到频域,经过心理声学模型的计算,得到不同频域信号的掩噪比,根据掩噪比对不同频域成分的样本数据分配不同的比特数,从而降低码率。将信号转换到频域进行分析,降低了对信号时域内变化的敏感性,但提高了频域分辨率(del F=fs/(2*1024))。

  • 编码过程中各个模块的功能:

(1)多相滤波器组:将音频采样信号经过32个等宽的滤波器组,变成32个子带信号,每个子带信号有12个样本值(layer1,若是layer2则每个子带有12*3=36个样本值),因此每一帧的音频信号对应的时间长度为:12*32/fs秒。

(2)心理声学模型:根据FFT变换后的音频数据和每个子带的比例因子计算不同频域处信号的掩蔽阈值,不同频域处的噪声须小于该频率值处的掩蔽阈值。即心理声学模型的作用是根据人耳的特性去计算信号中不可被感知的部分,根据计算出的SMR值对不同子带分配不同的比特数。

(3)比特分配器:根据心理声学模型的计算结果,为每个子带分配比特数。若某个频域的信号低于掩蔽阈值则不用对其进行编码,对于人耳较敏感的低频成分则多分配一些比特。

(4) 装帧:将编码后的音频数据与编码相关的信息(如每个子带的比例因子、比特分配信息等)进行封装,加入帧头、校验信息等,产生MPEG1兼容的比特流。

二.实验关键代码:

实验要求:

1.      输出音频的采样率和目标码率

2.      选择某个数据帧,输出:该帧所分配的比特数、该帧的比例因子、该帧的比特分配结果。




三.实验结果分析: