1. MP3 编码器(Encoder)常见问题
- 什么是 MP3 编码器?
一个 MP3 编码器是一个使用 MP3 编解码算法(压缩/解压)创建 mp3
文件的软件。 大部分编码器只转化一
个 WAV 文件到 MP3 文件,尽管很多可以转化其他格式,如 WMA, Real
Audio, Ogg, 等等。
只有很小几个独立的编码器,此外的很多软件只是使用 4个主要的编码引擎,很大程度上因为
Fraunhofer
Gesellschaft 和为 ISO
源提供帮助的几家公司拥有专利权。尽管没有一家公司拥有派他权,MP3软件开发
商无论使用哪家专利的 MP3 编码器,都必须交付昂贵的许可费。主要的 MP3
编码引擎包括:LAME(非 ISO
源), BladeEnc, Fraunhofer 和 Real Networks 的
Xing 编码器。
- MP3 编码器如何工作?
MP3编码器中包含着 MPEG-Layer 3
下的核心技术。解码程序通过使用一系列的压缩音频的算法和规则。编
码器智能地发现那些对人耳太高或太低的音频数据,并把他们剔除掉。
它们也能发现那些同时发生的声音
并试着排除任何能由其它声音“屏蔽掉”或“使其听不到”的声音。
- 什么好的 MP3 编码器?
在速度上 Xing
是最快的编码器,但是质量是最差的。要获得较小的文件尺寸,Fraunhofer 的 FastEnc可
给出最好的质量。LAME是非常好的编码器,并且其一个版本都比上个版本快,BladeEnc 对大尺寸文件质量
是最好的,但很慢。
2. MP3 文件解剖
除熟练使用 MP3 编码器的基本选项之外,一般的用户不需要知道 MP3文件内部结构是如何编码的,正如面
对 JPEG 或 DOC 文件时的情形一样。基于一种病态的好奇,这里给出 MP3 文件的 X 光视图:
- 帧头(Frame Header)
以前讲过,MP3文件是由成千上万的“帧
frame”组成,每帧包含一部分(第二部分)有价值的音频数据,以
供解码器重构音频数据,其前的第一部分就是帧头(Frame
Header),它有与其后的数据相关的 32bits的元
数据组成,参见下图。MP3 头开始于一个11bits的“同步
sync”块,同步块可以让播放器搜索并锁定到第
一个可用的合法帧,在 MP3 广播中这很有用,它可从播放源中快速移动或跳过
ID3块到一个正常的播放位
置。但是,简单地发现同步块从理论上讲是不够的,因此头检查是必要的。
- 锁定数据流
MP3 的原始设计目标就是它可用于广播,结果就是 MP3
接受器可以在流中任何地方锁定信号变得很重要,
这就是为什么帧头放在任何一帧数据流的头部,这样当 MP3
接受器“调谐”进数据流时,可以立即锁定信
号并可立即播放。有趣的是,这个事实造成了可以切割
MPEG文件成小段,且每段都可独立播放。但是不幸
的是它在
3层(MP3)文件中是不可能的,因为其中帧往往依赖于其它帧,因此你不能随意在音频编辑器中编
辑你的 MP3 文件。
- 每秒帧数
正如电影工业有一个标准规定电影中每秒帧数以保证在任何投影机上都能正确显示一样,MP3
标准中也使用
了一个类似的标准,不管文件的比特率,MPEG-1 文件中一帧 26ms,大致每秒
38fps 帧。 如果比特率高一
点,帧尺寸就相应大一点,反之亦然。另外,一帧 MP3 中所含的采样数是常数,每帧
1,152 个采样。
任何给定帧的总尺寸可用下列公式计算:
FrameSize = 144 * BitRate /
(SampleRate + Padding).
在此,比特率BitRate是以每秒多少比特计算,采样率
SampleRate是原始输入数据的采样率,对齐Padding
是指该帧的额外数据,例如,如果你用128kbps 来编码,原始采样率44.1kHz,
没有设置对齐位,每帧总的
尺寸为 417.96 bytes:
144 * 128000 / (44100 + 0) = 417.96
bytes.
记住,以上描述的每帧包含头信息,容易想到头信息是否会产生冗余。但是头仅占32bits长,在38fps下,
意味着每秒总共才1,223bits 的数据,而文件是以 128kbps
编码,却包含着 128,000bits每秒的数据,实
在只是个零头 1/100。
3. 关于“有损压缩”
压缩格式,无论它们应用于音频、视频还是图象, 甚至随机的文件集合,都分为“无损”和“有损”,其区
别也很简单,无损时,解压文件和原始文件完全一样,而有损压缩则不然。 无损压缩格式的一个很好示例就
是到处使用的 .zip 档案压缩方法。当你把上个月的压缩档案 zip 文件解开时,一个比特的改变都是不可接
受的。但另外类型的文件如偶尔丢点信息对你无所谓, 你甚至都不会注意到,也可能你愿意对不重要的信息
牺牲点东西换取更高的压缩比,如图象、电影、音乐等。
一个好的有损压缩的示例是 JPEG 图象文件格式。MP3 对于音乐也是有损压缩。
4. Open issue
JPEG codec
G.723.1(5.3k/6.3k), G.729, G.729a, G.729b, G.729ab,
G.711A-Law, μ-Law, GSM610
Compression codec standards comparison:
G.723.1 Dual rate MP-MLQ/ACELP
coder, 5.3, 6.3 kbps
G.729 CS-ACELP
codec,
8 kbps
GSM
13 kbps
G.728
LD-CELP,
16kbps
G.726/727 ADPCM
codec,
64kbps to 40, 32, 24,16 kbps
G.711 telephone, A-Law,
μ-Law 64 kbps
MPEG L3
MP3,
56-128 kbps
MPEG4 Video depends on
content, frame rate
MP1 和 MP2 的压缩率分别为 4:1 和 6:1 - 8:1,而 MP3 的压缩率则高达 10:1 -
12:1。
5. Miscs
SEDA solution = Algorithm Design + Processor Knowledge
+ System Know-how
Know-how 实际知识、技术诀窍
rundown 纲要
morbidly curious 病态的好奇
discrepancy 差异、矛盾
mimics 模仿
ripping 极好的
文件出处:
http://kware.blogbus.com/logs/30741919.html