MP3 编码算法分析


文章编号 :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 位 ,则编码比特率为 16 × 44100bit/ s , 若是立体声 ,则码速率加倍为 1. 41Mbps ,即 CD 格式音乐的比特率) 分解成 32 个子带输出. 子带分析滤波 器组的 32 个子带是等带宽的 ,而由心理声学模型得出的临界带宽则不是等带宽的 ,所以分析滤波器的带 宽与人耳听觉上的临界频带划分并不匹配. 为了使得进行编码的各比例因子带与临界频带相匹配 ,需要对 56第 1 期 马昌萍等 :MP3 编码算法分析 每个子带信号做 MDCT变换 ,从而提供更精细的频率分辨率 ;将子带滤波器组的输出送到 MDCT 滤波器组 后 ,每组将细分为 18 条频线 ,共产生 576 条频线 ,这对处理稳态信号能获得最大的编码增益 ,而且通过 MDCT进一步细分后 ,就可以做相应处理以减小多相滤波器组带来的频率混叠[2 ] . 子带滤波器由 32 个 FIR 型BPF 组成 ,每个 BPF 的长度为 512 点. 因此实际上是用一个 32 × 512 的变换 矩阵 C 将输入序列{ Xi} 中的连续 512 个数据点所构成的输入矢量 X ,变换成一个具有 32 个分量的输出矢 量 S . 其中 S 的 32 个数据点 S K 按子带频率从低到高的顺序排列. 子带分析滤波器组算法步骤如下 : 将 PCM 采样音频信号以 32 个为一组输入一个长度为 512 的 X 向量缓冲区 ,构造一个具有 512 个元素 的矢量空间 X (如图 2 所示[3 ]) ;然后用矢量 C 对 X 加窗 ,得到矢量 Z ,其中 Ci 在标准中给出;512 维矢量 Z 被分成 8 个 64 维矢量 Yi ,然后将 8 个矢量相加得到矢量 Y;最后对 Y 进行变换从而得到 32 个子带信号 ,计 算公式如图 3 所示 ,其中 Mik = cos[ (2 i + 1)( k - 16)π/ 64 ][4 ] . 通过心理声学模型可以得到每节数据的编码块类型 ,子带滤波器组对不同块类型的输出有不同的计 算矩阵(已在 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 Standard[J ]. Broadcasting . 1994 ,4(4) ,206 - 218. [4]  梁彬 ,吴振扬. 数字音频压缩中的变换编码算法[J]. 电声技术. 1999 ,7 ,3 - 6. [5]  王建昕 , 董在望 , 印日方强. MPEG音频算法的研究与实时实现[J]. 清华大学学报(自然科学版) . 1997 ,37(10) ,45 - 48. [6]  Farshid Golchin ,Kuldip K. Paliwal ,Lossless Coding of MPEG- I Layer III Encoded Audio Streams[J ] . 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 become widely popular for the transmission of encoded audio file (MP3’s) through the Internet. However , it is al2 so the most difficult one to implement. This paper is designed to introduce the coding scheme for the MPEG- I layer3 standard. In this paper we analyze the key techniques adopted by MP3 coding arithmetic such as subband coding , psy2 choacoustic models and Huffman coding particularly and find out the approach to implement them. Furthermore , a fea2 sible advice of improving the encoding scheme is proposed to make the code more efficient. KEY WORDS :  MP3 ; MPEG- I ; digital audio 76第 1 期 马昌萍等 :MP3 编码算法分析
还剩3页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

amu340

贡献于2014-12-16

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf