MP3编码算法分析_第1页
MP3编码算法分析_第2页
MP3编码算法分析_第3页
MP3编码算法分析_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文章编号:1008 - 1402(2005)01 - 0064 - 04 MP3编码算法分析 马昌萍, 宋 丹, 马幼鸣 (北京理工大学 电子工程系,北京100081) 摘 要: MPEG- I标准中规定了三层压缩方案,分别称为层1、 层2和层3.层1方案实施起来最简 单,但是压缩后的音质不如其它两层好;层3方案,即MP3编码,在低比特率时能得到最好的音质,由MP3 编码的音乐文件适合在互联网上广泛传播,因此深受欢迎,但是它算法复杂,实施起来难度最大.本文通过 介绍MPEG- I标准中层3的数字音频编码方案,详细地分析了MP3算法中所采用的子带编码、 心理声学 模型和哈夫曼编码等关键技术,给出了实现上述关键技术的具体步骤,并且进一步提出了可以对编码方案 进行细化的可行性建议,用以提高编码效率. 关键词: MP3 ;MPEG- I;数字音频 中图分类号: TN919. 81 文献标识码: A 0 引 言 近年来,MP3播放器倍受人们的青睐,它音质出色、 外形小巧、 携带方便、 存储量大,可以存储十几首到 几十首歌曲.人们很容易就可以从互联网上下载到适合播放的几乎任何曲目,也可以将存储在光盘中的 MP3或者CD歌曲拷贝到播放器中播放.带着它就可以随时随地欣赏美妙的音乐了. MP3播放器之所以既 具有出色的音质又有大的存储容量,是MP3这种数字音频编码带给我们的好处. MP3是一种数字音频的编解码方式,它是活动图像专家组MPEG(Moving Pictures Experts Group)在1992 年制定的具有1. 5Mbit/ s数据传输率的数字存储媒体运动图像及其伴音MPEG- I的标准草案中音频编码 的一部分.MPEG- I音频压缩标准1(ISO11172)提供了一种高保真度,高压缩比的压缩算法.在这个标准 中,描述了具有不同复杂度和性能的子带音频编码方案,以适应各种高音质数字音频的应用.根据编码计 算复杂度及编码效率的不同,分为层1、 层2、 层3三种标准,分别简称为MP1 ,MP2 ,MP3.层次越高编码后 的音乐质量越好,压缩率越高,而编码算法也越复杂,对计算机的计算能力要求也就越高. MP3能用尽可能低的比特率实现CD音质的音乐而不会出现数据的损失.如果对一段声音数据不压 缩的话,那么每存储一秒钟的16比特、44. 1kHz抽样的CD格式的声音记录,每声道要高达760kb/ s的比特 率.而通过MP3音频编码算法的压缩,我们可以把存储空间压缩到原来的十二分之一,而不会降低声音的 质量.MP3编码之所以能够实现主要得益于对人的听觉特性的研究和编码技术的发展. MP3与MP1 ,MP2 基本原理相同,都是基于人的心理声学模型,利用听觉掩蔽效应达到压缩数字音频信号的目的,而且MP3 采用了许多的关键技术,包括子带编码技术,FFT,MDCT,非均匀量化编码,哈夫曼编码技术等. MP1 ,MP2 的编码和解码已经进入实用化阶段,但是,由于MP3的算法复杂度高,计算量大,而且复杂度的增加主要 体现在编码上(对解码器而言,只是提高了对存储容量的要求和少量的计算复杂度) ,MP3的编码一直是许 多人研究的课题.本文将对MP3的编码过程做深入的探讨,主要涉及MP3编码各个模块的实现. 1 MP3编码过程概述 MP3的编码框图如图1所示,从整体来看,MP3编码算法流程刻大致分为时频映射(包括子带滤波器 收稿日期:2004 - 11 - 12 作者简介:马昌萍(1977 - ) ,女,黑龙江人,北京理工大学,硕士研究生. 第23卷 第1期 佳 木 斯 大 学 学 报(自 然 科 学 版) Vol. 23 No. 1 2005 年0 1月 Journal of Jiamusi University (Natural Science Edition) Jan. 2005 组和MDCT) ,心理声学模型,量化编码(包括比特和比例因子分配和哈夫曼编码)等三大功能模块,计算都 十分复杂,实现MP3编码的关键也在于这三个功能模块. 在MP3编码中,输入的数字音频信号即PCM采样信号进入子带滤波器组后,被分成32个子带信号, MDCT(改进离散余弦变换)把子带的输出在频域里进一步地细分成 18个频线,这样共产生576个频线.然 后利用ISO11172标准中建议的心理声学模型计算出子带信号的信掩比,根据这些信掩比决定分配给576 个频线的比特数,分别对他们进行比特分配和可变步长量化.量化后的样值再经过无失真的哈夫曼编码, 以提高编码效率,并与比特分配和量化产生的边信息一起组成一帧数据. MP3编码的一帧数据包括两个 组,每组有576个频线和与他们相关的边信息,边信息被存储在每一帧的帧头中.对这样一帧一帧组成的 比特流,MP3解码器可以独立的进行解码,而不需要额外的信息了. 图1 MP3编码框图 图2 混合滤波器组 图3 子带滤波器组流程 2 混合滤波器组 这部分包括子带滤波器组和MDCT两部分.子带滤波器组编码完成样本信号从时域到频域的映射,并 将规定格式的数字音频信号(若采样频率是44. 1kHz ,样本量化为16位,则编码比特率为1644100bit/ s , 若是立体声,则码速率加倍为1. 41Mbps ,即CD格式音乐的比特率)分解成32个子带输出.子带分析滤波 器组的32个子带是等带宽的,而由心理声学模型得出的临界带宽则不是等带宽的,所以分析滤波器的带 宽与人耳听觉上的临界频带划分并不匹配.为了使得进行编码的各比例因子带与临界频带相匹配,需要对 56第1期马昌萍等:MP3编码算法分析 每个子带信号做MDCT变换,从而提供更精细的频率分辨率;将子带滤波器组的输出送到MDCT滤波器组 后,每组将细分为18条频线,共产生576条频线,这对处理稳态信号能获得最大的编码增益,而且通过 MDCT进一步细分后,就可以做相应处理以减小多相滤波器组带来的频率混叠2. 子带滤波器由32个FIR型BPF组成,每个BPF的长度为512点.因此实际上是用一个32512的变换 矩阵C将输入序列 Xi中的连续512个数据点所构成的输入矢量X ,变换成一个具有32个分量的输出矢 量S.其中S的32个数据点SK按子带频率从低到高的顺序排列.子带分析滤波器组算法步骤如下: 将PCM采样音频信号以32个为一组输入一个长度为512的X向量缓冲区,构造一个具有512个元素 的矢量空间 X( 如图2所示3 ) ; 然后用矢量C对X加窗,得到矢量Z ,其中Ci在标准中给出;512维矢量Z 被分成8个64维矢量Yi,然后将8个矢量相加得到矢量Y;最后对Y进行变换从而得到32个子带信号,计 算公式如图3所示,其中Mik=cos ( 2i +1) ( k -16)/644. 通过心理声学模型可以得到每节数据的编码块类型,子带滤波器组对不同块类型的输出有不同的计 算矩阵(已在MPEG- I标准中给出 ) , 即不同的窗口类型:长窗、 开始窗、 结束窗和短窗.对子带滤波器组的 输出加窗后,再进行MDCT变换,这样可以有效的控制前回声1. 3 心理声学模型 基于掩蔽效应的心理声学模型是MPEG- I音频标准得以实现数据压缩的理论基础.MPEG- I标准中 提供了两种心理声学模型,第一种模型计算简单,在高比特率编码时提供适当精度;第二种模型较为复杂, 推荐在较低比特率编码的情况下使用.两种模型都可用于MP3的编码,但MPEG- I建议在MP3编码中使 用心理声学模型二.心理声学模型的目的就是求出各个子带的掩蔽域值,并以此控制量化过程.心理声学 模型实现过程一般是先用FFT求出信号的频谱特性,根据频谱特性找出各频率点上的音调成分和非音调 成分(或称噪音成分 ) ; 根据掩蔽域曲线确定各个音调成分和非音调成分在其它频率点的掩蔽域值;最后求 出各频率点的总体掩蔽域,并折算到编码子带中.对于子带滤波器组输出的谱值量化后产生的噪声,如果 能够被控制在掩蔽域值以下,则最终的压缩数据被解码后的结果与原始信号可以不加区分5.一个给定信 号的掩蔽能力取决于它的频率和响度,所以心理声学模型的最终输出是信掩比SMR(signal - to - mask ra2 dio) ,即信号强度与掩蔽域值的比率. 4 量化编码 在MPEG- I标准中用一个三层迭代的循环模型,见图4 ,对经过MDCT后输出的样本进行比特分配和 量化. 图4 三层迭代模型 最高一级称为帧循环,它首先复位所有的迭代变量,计算能够 提供给每节数据的最大比特数,然后调用外层迭代模型;外层迭代模 型首先调用内层迭代循环,内层迭代循环对输入矢量进行量化,通过 递增量化步长使量化输出能够在一定的比特位数限制之内被编码. 然后确定哈夫曼编码表的选择,并对量化频谱进行哈夫曼编码.哈夫 曼编码对量化的最大值有限制,MPEG- I规定最大值不超过8191. 所以要判断所有的量化值是否超过限定,如果超过最大限制,内层迭 代循环递增量化步长,重新量化.然后确定哈夫曼编码的位数,使其所占的比特数小于由帧循环计算出的 每节编码所能提供的最大比特数,否则也要增加量化步长重新量化.如果经过量化产生的噪声过大,有可 能导致样本失真,无法被正确解码,所以外层迭代循环根据内层输出来检测每个比例因子频段的量化噪 声,如果超过了允许的最低掩蔽域值,则以比例因子为迭代变量,不断递增其值,重新调用内层迭代循环, 使量化满足要求.满足要求后,存储每个比例因子频段最终的比例因子数值,跳出外层迭代循环.在帧循环 中计算存储每节数据所用的比特位数. 66佳 木 斯 大 学 学 报 (自 然 科 学 版)2005年 在内层迭代中采用了哈夫曼编码是为了消除信号中的冗余,提高编码的效率.在MP3编码标准中,提 供了32个哈夫曼码表用于对量化后的信号进行哈夫曼编码,使得编码的码率大大降低.哈夫曼表的选择 是根据量化值的最大值以及信号的统计特性来决定的.经量化编码的信号同边信息一起组成一帧数据,并 以帧流的形式存储或传输. 5 结论与展望 以上有重点的介绍了MP3的编码过程,可以看出MP3编码引入了混合滤波器组、 心理声学模型、 非均 匀量化和哈夫曼编码等技术,提高了编码效率和质量,同时降低了编码率.MP3的编码过程比较复杂,仅仅 根据MPEG- I标准中所给的公式进行计算的话,显然效率还不够高.在对MP3编码有了深入的理解之后 我们看到,在经过子带滤波器和MDCT变换后,对信号的量化和哈夫曼编码中,只考虑了同一节信号的相 关性6,而不同节以及更多信号之间有可能存在的冗余还没有被挖掘出来.因此,在理解基本的编码过程 之外,我们还有望继续细化编码的过程,找出更有效的编码方法. 参考文献: 1 ISO/ IEC 11172 - 3 Coding of Moving Pictures and Associated Audio for Digital Storage Media at up to About 1.5Mbit/ s Part 3:Audio(1993) S. 2 林胜,纪涌,全子一.MPEG- III声音编码算法J 电声技术.1998 ,5 ,2 - 5. 3 Seymour Shlien. Guide to MPEG- I Audio StandardJ . Broadcasting . 1994 ,4(4) ,206 - 218. 4 梁彬,吴振扬.数字音频压缩中的变换编码算法J .电声技术.1999 ,7 ,3 - 6. 5 王建昕,董在望,印日 方强.MPEG音频算法的研究与实时实现J .清华大学学报(自然科学版) .1997 ,37(10) ,45 - 48. 6 Farshid G olchin ,Kuldip K. Paliwal ,Lossless Codingof MPEG- ILayer III Encoded Audio StreamsJ . Speech , and Signal Processing .2000 , 2(7) , 11885 - 11888. ANALYSIS OF MP3 CODING ARITHMETIC MA Chang-ping , SONG Dan , MA You-ming ( Electronic Engineering Department , Beijing Institute of Technology, Beijing 100081, China) ABSTRACT: The ISO MPEG- 1 standard describes the implementation of three compression schemes called layer 1 , layer 2 and layer 3. The layer 1 scheme is the simplest to implementation but its efficiency is not as good as the other two layers. The layer3 scheme , commonly known as MP3 , provides the best performance at low bit rates and has beco

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论