嵌入式终端中mp3功能的研究与实现(编辑修改稿)内容摘要:

码设计的国际标准,主要用于在 CD- ROM(包括 Video-CD、 CD- I 等)存储彩色的同步运动视频图像。 在音频压缩标准化方面取得巨大成功的是 MPEG1 音频( ISO/IEC111723)。 在 MPEG1中,对音频压缩规定了三种模式,即层 Ⅰ 、层 Ⅱ (即 MUSICAM,又称 MP2),层 Ⅲ (又称MP3)。 MP3 的全名是 MPEG Audio Layer3,简单的说就是一种声音文件的压缩格式。 1987 年德国的研究机构 IIS(Institute Integrierte Schaltungen)开始着手一项声音编码及数字音 频 广播的计划,名称叫做 EUREKA EUl47,即 MP3 的前身。 之后,这项计划由 IIS 与 Erlangen 大学共同合作,开发出一套非常强大的算法,经由 150 国际标准组织认证之后, 符合 ISOMPEG Audio Layer3 标准, 就成为现在的 MP3。 ISO/MPEG 音频压缩标准里包括了三个使用高性能音频数据压缩方法的感知编码方案 (perceptual coding schemes)。 按照压缩质量 (每 Bit 的声音效果 )和编码方案的复杂程度分别是 Layer Layer Layer 3。 所有这三层的编码采用的基本结构是相同的。 它们在采用传统的频谱分析和编码技术的基础上还应用了子带分析和心理声学模型理论。 也就是通过研究人耳和大脑听觉神经对音频失真的敏感度,在编码时先分析声音文件的波形,利用滤波器找此资料来自 台商讯息网 , 大量管理资料下载 5 出噪音电平 ( Noise Level ),然后滤去人耳不敏感的信号, 通过矩阵量化的方式将余下的数据每一位打散排列,最后编码形成 MPEG 的文件。 而 音质听起来与 CD 相差不大。 MP3 的好处在于大幅降低数字声音文件的容量,而不会破坏原来的音质。 以 CD 音质的Wave 文件来说,如抽样分辨率为 l6bit,抽样频率 ,声音模式为立体声,那么存储 l秒钟 CD 音质的 Wave 文件,必须要用 l6 bit * 44100 Hz * 2 Stereo = 1411200 bit,也就是相当于 的存储容量,存储介质的负担相当大。 不过通过 MP3 格式压缩后,文件便可压缩为原来的 1/10 到 l/12,每 l 秒钟的 MP3 只需大约 112128kbit 就可以了。 具体的 MPEG 的压缩等级 与压缩比 率参见下表 [2]: 表 MPEG 编码等级 压缩比率 数字流码率 Layer 1 1:4 384 kbit/s Layer 2 1:6 – 1:8 192256 kbit/s Layer 3 1:10 – 1:12 128154 kbit/s MP3 格式的文件有一个有意思的特征,就是可以边读边放 ,这也符合流媒体的最基本特征。 也就是说播放器可以不用预读文件的全部内容就可以播放,读到哪里播放到哪里,即使是文件有部分损坏。 虽然 mp3 可以有文件头,但对于 mp3 格式的文件却不是很重要,正因为这种特性,决定了 MP3 文件的每一段每一帧都可以单独的平均数据速率,而无需特别的解码方案。 于是出现了一种叫 VBR( Variable bitrate,动态数据速率)的技术,可以让 MP3文件的每一段甚至每一帧都可以有单独的 bitrate,这样做的好处就是在保证音质的前提下最大程度的限制了文件的大小。 这种技术的优越性是显而易见的 ,但要运用确实是一件难事,因为这要求编码器知道如何为每一段分配 bitrate,这对没有波形分析的编码器而言,这种技术如同虚设。 正是如此, VBR 技术并没有一出现就显得光彩夺目。 听觉模型的导入:专家们通过长期的声学研究,发现人耳存在遮蔽效应。 声音信号实际是一种能量波,在空气或其他媒介中传播,人耳对声音能量的多少即响度或声压最直接的反应就是听到这个声音的大小,我们称它为响度,表示响度这种能量的单位为分贝( dB)。 即使是同样响度的声音,人们也会因为它们频率不同而感觉到声音大小不同。 人耳最容易听到的就是 4000Hz 的频率,不管频率是否增高或降低,即使是响度在相同的情况下,大家都会觉得声音在变小。 但响度降到一定程度时,人耳就听不到了,每一个频率都有着不同的值。 此资料来自 台商讯息网 , 大量管理资料下载 6 图 听觉中响度与频率之间的关系 [2] 可以看到这条曲线基本成一个 V 字型,当频率超过 15000Hz 时,人耳的会感觉到声音很小,很多听觉不是很好的人,根本就听不到 20200Hz 的频率,不管响度有多大。 当人耳同时听到两个不同频率、不同响度的声音时,响度较小的那个也会被忽略,例如:在白天我们很难听到电脑中散热风扇的声音,晚上却成了噪声源,根据这种原理,编码器可以过滤掉很多听不到的声音,以简化信息复杂度,增加压缩比,而不明显的降低音质。 这种遮蔽被称为同时遮蔽效应。 但声音 A 被声音 B 遮蔽,如果 A 处于 B 为中心的遮蔽范围内,遮蔽会更明显 ,这个范围叫临界带宽。 每一种频率的临界带宽都不一样,频率越高的临界带宽越宽。 对音频的压缩理论,是从研究人耳的听感系统开始的,首先第一个特点是人耳对各频率的 灵敏度是不同的,在 2K~4K 频段,很低的电平就能被人耳听到,其他频段时,相对要高一点的电平才能听到,这就是说在听觉阈值以下的电平可以去掉,相当于压缩了数据。 第二个特点就是频率之间的掩蔽效应,其实就是指人耳接收信号时,不同频率之间的相互干扰。 当电平高的频率点和电平相对来说较低的不同频率点同时出现时,电平低的频率点的声音将听不到。 因为人耳的灵敏度不一样,所以不同频率点的掩蔽程度是不一样的。 低于掩蔽阈值的信号将不编码,高于掩蔽阈值的信号将重新分配量化比特值,实施压缩,这是 MPEG 能得到较高的压缩比,又能保证音质的 重要原因。 第三个特点是指短暂掩蔽效应,指在一个强信号之前或之后的弱信号,也会被遮蔽掉。 这样利用人耳的感觉特性,对数据流本身进行压缩,做到既能降低码流,又能通过科学的压缩方法提高码流的效率,而又不影响音质本身。 完全了解了人耳的特性后,就会知道人耳实际上可看成一个多频段的听感分析器,在接收端的最后,它对瞬间的频谱功率进行了重新分配,这就为音频的数据压缩提供了依据。 MPEG1 的压缩技术方案是子带压缩,子带分割的实现是通过时频映射,采用多相正交分解滤波器组将数字化的宽带音频信号分成 32 个子带;同时 ,信号通过 FFT 运算,对信号进行频谱分析;子带信号与频谱同步计算,得出对各子带的掩蔽特性,由于掩蔽特性的存在,减少了对量化比特率的要求,不同子带分配不同的量化比特数,但对于各子带而言,是线性量化。 另上 CRC 校验码,得到标准的 MPEG 码流。 在解码端,只要解帧,子带样值解码,最后进行频 —— 时映射还原,最后输出标准 PCM 码流。 其原理方框图如图 所示 [2]: 图 MPEG 声音编码原理 下面详细介绍层Ⅰ、层Ⅱ、层Ⅲ的具体方案。 层Ⅰ: 时频映射:数字的多相正交滤波器组把信号分成 32 个子带信号, 因为层Ⅰ是均匀的划分,所以每个子带频宽为 24K/32=625HZ。 这种划分与关键频宽段的概念不一样,在低端只有一个子带 625HZ,这样对低频的量化比较简单,容易引起低频端的量化误差。 心理声学模型:使用 512 个点的 FFT 变换得到信号的短时频谱功率信息,输出的电平和时此资料来自 台商讯息网 , 大量管理资料下载 7 频映射的子带样值同步计算,得到每个子带的掩蔽阈值。 最后将该子带的最大信号 /掩蔽阈值率输入给量化器。 量化 /编码:首先检测每个子带的样值,找到最大相对值,并且将它 6 比特量化,对该子带来讲叫比例因子。 通过最小化噪音 /掩蔽值,由比例因子决定动态 量化比特数,将该子带值样值线性量化。 量化比特数用一个 4 位码来描述, 4 位码可以用来描述 24=16bit,最大16bit 的量化。 比例因子用 6 位码来描述,最大 26=64 的子带样值的系数。 这样每个子带用的量化比特数和每个子带的最大样值都在 MPEG 的码流里,在接收端再按照这些信息还原原信号的幅值。 帧形成:每一帧的开始都有一个同步的信息,还有 CRC 的循环冗余纠错码。 帧是 MPEG1处理的最小单元,一帧信号处理 384 个 PCM 的样值,因为要检测每个样值的大小后,才能开始处理,所以延时时间 384/48K=8ms。 一 帧相当于 8ms 的声音样本。 一个子带所得码流的结构如表 所示 [1]: 表 同步头 CRC 比特分配信息 比例因子 样值数据 12 bit 同步 16 bit 4 bit 线性描述 6bit 线性描述 一个子带样值对应32 个 PCM输入样值 20bit 系统信息 层Ⅱ 时频映射:和层Ⅰ类似,不同之处在于每个子带不是均匀频带宽,因为人耳低频时的灵敏度在 700HZ 以后急剧降低。 与之相关的一个概念叫关键带宽,因为在同样的掩蔽值时,低频有窄的带宽,而高频端则有较宽的带宽。 这样,在按关键带 宽分割时,低频取的带宽窄,即意味着对低频有较高频率分辨率,在高频端时则相对有较低一点的分辨率。 这样的分配,更符合人耳的灵敏度特性,可以改善对低频端压缩编码的失真。 但这样做,需要较复杂一些的滤波器组。 心理声学模型:和层Ⅰ类似,但是使用的 FFT 精度高一些,是 1024 点的 FFT 运算方式,提高了频率的分辨率,得到原信号的更准确瞬间频谱特性。 量化 /编码:和层Ⅰ类似。 但是层Ⅱ的帧长度码流是层Ⅰ的三倍,所以层Ⅱ允许每个子带有三个连续的比例因子,但编码时用一、二个或者三个,由它们之间的差别来定。 子带内有三个比例因子,这 就意味着带内再进行动态比特分配,更增加了 MPEG1 的压缩率。 帧形成:和层Ⅰ不一样的是,描述比特分配的比特位数是不一样的。 在低端子带用 4 位码来描述,相对低端子带量化比特数最大为 24=16bit,在中间子带用 3 位码描述,相对中间子带比特最大为 23=8bit,高端子带用 2 位码来描述,相对最大比特为 22=4bit,这种分频率不同而比特率不一样的做法,也是关键带宽的应用。 层Ⅱ的帧码流是 1152 个 PCM 的样值,这样层Ⅱ处理的延时时间 =1152/48K=24ms。 这样对层Ⅱ的精确度为 24ms,而对于层Ⅰ来言,精确度为 8ms,如果用于编辑的话,层Ⅰ更精确。 层Ⅱ标准码流信号如表 所示 [1]: 表 同步头 CRC 比特分配 比例因子 子带样值码 12bit 同步码 20bit 系统信息码 16bit 低频端 4 位码描述 6 比特线性量化 三个子带样值 对应 96 个 PCM 输入样值 中间频端 3 位码描述 高频端 2 位码描述 层Ⅲ 此资料来自 台商讯息网 , 大量管理资料下载 8 层Ⅲ比层Ⅱ更为复杂,它使用了多相正交滤波器组之外,还使用了 DCT 变换滤波器组,提高频率的分辨率,还应用了预测心理声学模式,使用更为复杂的量化和编码,允许不同的帧码流。 这样对Ⅲ层而言,需要更快的数字信号处理器才能达到实时编码的要求。 另外还使用了一些新的方案: 1) 用冗余字节以作为缓冲用,因为有些音乐小节是无法将其按限定的码率来编码的,否则会损失其音质。 为了保证其质量就需要用较高的码率。 在 MP3 的码流中就增加了一些冗余的字节,以便在需要的时候可以在短时间内提到较高的码率。 2) Ⅲ中,还采用了 Huffman 编码进行无损压缩,这就更进一步降低了数码率,提高了压缩比,据估计,采用 Huffman 编码以后,可以节省 20%的码率。 例如,:经过分析, 32 个子带的 16 个子带的 最高样值电平如表 所示 [1]: 表 子带 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 电平( db) 0 8 12 10 6 2 10 60 35 20 15 2 3 5 3 1 如表中第 8 个子带有一个强度为 60db 的 1KHZ 信号,通过心理声学模式计算出它的掩蔽阈值,在整个第八子带都有掩蔽效应,其门限为 35db,这样本子带的信噪比为 S/N=6035=25db,因而 5bit 分辨率就足够了。 同样,这种掩蔽也存在于邻近的子带中,在第 8~13,和第 5~7子带都 有掩蔽效应,只是信号频率离得越近,掩蔽效应就越。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。