更新时间:2024-01-31 21:42
无损音频(Lossless audio),作为数字音乐文件格式的标准, WAV 格式容量过大,因而使用起来很不方便。因此,一般情况下我们把它压缩为MP3或 WMA 格式。
作为数字音乐文件格式的标准, WAV 格式容量过大,因而使用起来很不方便。因此,一般情况下我们把它压缩为MP3或 WMA 格式。压缩方法有无损压缩,有损压缩,以及混成压缩。MPEG, JPEG就属于混成压缩,如果把压缩的数据还原回去,数据其实是不一样的。当然,人耳是无法分辨的。因此,如果把 MP3, OGG格式从压缩的状态还原回去的话,就会产生损失。然而, APE和FLAC格式即使还原,也能毫无损失地保留原有音质。所以, APE和FLAC可以无损失高音质地压缩和还原。在完全保持音质的前提下,APE的压缩容量有了适当的减小。
而要将APE这种音频无损压缩形式运用到MP3播放器上来是很多人很早以前就有的一个想法,比起CD来,MP3显得更为方便、实用!而此前对 MP3取代CD、MD的说法也正是由于音质原因成为最大的阻碍。
APE源文件的获得
早几年大家有个录音机听听磁带上的音乐就觉得不错了,现在有大量的CD与DVD,声音效果比磁带不知道要好到那里去了。但是,CD上的音乐在 windows中是不能够直接认出的,不能够直接拷贝到硬盘中(其它的格式windows是可以认识的,比如数据文件,VCD,DVD等,惟独CD是不能够直接认出的)。所以,为了把CD上的歌曲拷贝到硬盘中,就需要专门的软件来实现,这被叫做抓轨,有很多软件可以实现这个功能,最常见的、大家认为最好的、就是EAC(EAC.exe)这个软件,经过抓轨出来的音乐是以wav的形式保留在硬盘中。
APE格式的压缩:
当把CD上的歌曲拷贝到硬盘(即抓轨)以后,这个最原始的文件(WAV)通常是很大的,比如一盘CD上的音乐,就是700M左右,如果把它分离成每首歌曲,那每首歌曲文件的大小在20——60M。这样大的文件既占用硬盘空间,也不适合在网上进行传递。所以,通常要把这个原始的大文件进行压缩。其压缩方式有多种,可以分为两大类,一类是没有损失的压缩,比如用猴子(monkey.exe)这个软件就可以实现,它可以把这个原始的音乐文件(WAV文件)压缩到原来大小的50——60%,文件格式是APE。
另外一类压缩方式叫做有损失的压缩,优点是可以把文件压缩得更小,比如比ape文件还要小1倍以上,常见的音乐有损压缩形式是MP3。但缺点是声音质量下降,一般,文件被压缩得越小,声音质量就越差。
网上传递:
目前越来越多的人选择APE格式,网络传播是功不可灭的,众多的音乐发烧友在网上交流APE格式音乐,在百度搜索“APE音乐下载”竟然有 150多万多条链接,而且数量在每日俱增。现在流行BT也出现了APE音乐的踪迹,各大BT下载都开辟了APE音乐下载交流的地方,所以用户根本不用担心 APE音频的资源问题。
APE文件的播放:
如果在电脑的硬盘上播放,你只要安装winamp或者foobar2000这样的软件以后,就可以直接进行播放。特别是foobar2000效果很好,下载这个很小的软件(选取installer这项下载,可以支持各种版本的windows,还支持各种声卡,包括ac97软声卡),安装到你的硬盘中,不需要做任何设置,就直接可以播放ape格式的音乐了。你只需要对你想听的那首歌曲用鼠标进行双击,就可以放出最高质量(最接近CD)的音乐。
FLAC概述
FLAC代表 Free Lossless Audio Codec - 免费的无损音频压缩。也就是说音频以FLAC方式压缩不会丢失任何信息。这种压缩与Zip的方式类似,但是FLAC将给你更大的压缩比率,因为FLAC是专门针对音频的特点设计的压缩方式,并且你可以使用播放器播放FLAC压缩的文件,就象通常播放你的MP3文件一样
FLAC系统支持
Linux, *BSD, Solaris, OS X, IRIX), BeOS, OS/2, 和Amiga。并且FLAC提供了在开发工具autotools, MSVC, Watcom C, 和Project Builder上的build系统。
FLAC项目内容
数据流的格式以库的形式提供的参考编码器和解码器FLAC, 一个以命令行方式工作的可以编解码FLAC文件的程序(译注:有些象Lame吧?) metaFLAC, 以命令行方式工作的FLAC文件的metadata编辑器不同音频播放器的输入插件
FLAC的特性
无损失压缩:被编码的音频(PCM)数据没有任何信息损失,解码输出的音频与编码器的输入的每一个字节都是一样的。每个数据帧都有一个当前帧的 16-bit CRC 校验码,用于监测数据传输错误。对整段音频数据,在文件头中还保存有一个针对原始未压缩音频数据的MD5标记,用于在解码和测试时对数据进行校验。
快速:FLAC更看重解码的速度。解码只需要整数运算,并且相对于大多数编码方式而言,对计算速度要求很低。在很普通的硬件上就可以轻松实现实时解码。
硬件支持:由于FLAC提供了免费的解码范例,而且解码的复杂程度低,所以FLAC是目前唯一获得硬件支持的无损压缩编码。
可以流化:FLAC的每个数据帧都包含了解码所需的全部信息。解码当前帧无需参照它前面或后面的数据帧。FLAC使用了同步代码和CRC(类似于MPEG等编码格式),这样解码器在数据流中跳跃定位时可以有最小的时间延迟。
可以定位:FLAC支持快速采样精确定位。这不仅对于播放有益,更使得FLAC文件便于编辑。
富于弹性的metadata:可以定义和实现新类型的metadata数据块,而不会影响旧的数据流和解码器的使用。目前已有的metadata类型包括 tag,cue表,和定位表。 已经注册的应用程序可以定义自己专用的metadata类型(译注:这一点与MIDI标准相似)。
非常适合于存档应用:FLAC是一个开放的编码格式,并且没有任何数据的损失,你可以将它转换为你需要的任何其他格式。除了每个数据帧的CRC和MD5标记对数据完整性的保障,FLAC(译注:FLAC项目提供的命令行方式编码工具)还提供了一个verify(校验)选项,当使用该选项进行编码的时候,编码的同时就会立即对已编码数据进行解码并与原始输入数据进行比较,一旦发现不同就会退出并且报警提示。(译者:怎么样,这样压缩出来的东西还有什么不放心的?)
便于对CD进行备份:FLAC有一个“cue表”metadata数据块用于保存CD的内容列表和所有音轨的索引点。你可以将一张CD保存到一个单一文件,并导入CD的cue表格,这样一个FLAC文件就可以完整地记录整张CD的全部信息。当你的原来的CD损坏的时候,你就可以用这个文件恢复出与原来一模一样的CD副本。
抗损伤:由于FLAC的帧结构,使得一旦发生数据流的损坏,损失会被限制在受损伤的数据帧之内。一般只是会丢失很短的一个片段。而很多其他无损音频压缩格式在遇到损伤的时候,一个损伤就会造成后面所有数据的丢失。
FLAC不具有的特性:
数据缩水。FLAC是专门并且仅仅为无损压缩而设计的,您可以选用许多其他优秀的有损压缩方式如Vorbis, MPC, 和MP3(LAME提供了一个优秀的开放源代码的实现)。
SDMI(例如cetera)兼容。FLAC不准备支持任何复制保护方法,实际上这些手段最终都是在浪费数据。(从另一个角度看,由于所有这些手段最终都被证明是无效的,所以也可以说FLAC把这些无用数据压缩到了零!)当然我们不能阻止某些人利用专用的metablock进行复制保护,但是他们的保护只会在他们自己解码产品上有效,其他解码器会跳过这些专门的metablock的。
播放方式
1.FLAC是一种无损音频压缩格式..用foobar2000和winamp都可以播放...因为他们都带有FLAC解压插件的.如果你的播放器不能播放的话.建议你去以下地址下载插件并安装(这是winamp的flac播放插件)
2.用JetAudio,界面简单实用,直接支持播放FLAC文件;还很值得一提的是。
WavPack是 David Bryant 开发的一个自由、开放源代码的无损音频压缩格式。
WavPack 允许用户压缩、恢复 8、16、24 位 以及 32 位浮点表示的 WAV 格式音频文件,另外它还支持多声道数据流以及非常高的采样率。与其它无损压缩机制一样,这种算法的压缩比例也跟着源数据的不同而有所不同,但是对于普通的流行音乐来说通常介于 30% 到 70% 之间,对于古典音乐以及其它音域较宽的音乐来说通常能得到更好一些的结果。
另外 WavPack 引入了一种独特的“混合”模式,它使用一个附加的文件从而也具有了有损压缩的优点。与其它方法只生成一个文件不同,这种模式生成两个文件,其中一个是相对较小、可以单独使用的高质量有损压缩文件,另外一个是与有损文件一起使用实现无损数据恢复的“修正”文件。对于一些用户来说,这就意味着他们不必再考虑使用有损还是无损压缩这样一个问题。
快速高效压缩与解压
开放源代码,按照类似于BSD许可证的方式发布
多平台
出错时的健壮性
支持流媒体
支持多声道以及高分辨率
混合/有损模式
硬件支持
支持标签(ID3v1、APEv2标签)
支持 RIFF 格式的大块数据
兼容回放增益
良好的软件支持
能够生成 Win32 平台下的自解压文件
支持 32 位浮点数据流
支持嵌入式节目单
包含用于完整性检查的 MD5 散列函数
可以按照对称或者不对称模式进行编码(降低编码速度可以提高解码速度)。
David Bryant 在 1998 年年中开始了 WavPack 的开发并发布了 1.0 版,这第一个版本只有无损压缩解压音频这项功能,但是当时它就已经跻身效率与速度比最好的编码器之列了。
在 1.0 版之后,很快 Bryant 就发布了 2.0 版,这个版本的特点是使用了有损编码,它直接对预测残余进行了量化以减少数据量,而没有使用心理声学 masking 模型。
1999 年,他发布了 3.0 版,新颖的功能成为这个版本的特点,例如通过减小压缩比实现的快速模式、压缩无头原始PCM音频文件以及使用 32 位循环冗余校验的错误检测功能。
WavPack 的开发仍在继续,在 后面的 3.x 版本中添加的一个主要特点就是混合模式,在这种模式下编码器生成一个有损文件以及一个纠正文件,这样它们就可以经过解压还原出原始的 PCM 数据流。
WavPack 4 最近才发布,这个版本包括许多重要的改进,如快速搜索、多声道支持、高分辨率音频支持等等,这些特性使它成为功能最全的时髦无损音频压缩器之一。最近的 4.x 稳定版本是 4.31,针对 Linux/OSX 的错误修正之后得到用于这些系统的 4.32 版,但是它没有与质量相关的更改。
Bryant 最近发布了未来 WavPack 4.4 的测试版以先睹为快,它包括的功能有针对单声道或者接近单声道的音频数据的改进处理、以及重新设计的压缩质量系统,这种改进可以以大幅增强的效率实现类似的压缩。
软件支持
由 Speek 开发的自定义 Windows 前端
NullSoft Winamp (插件 w/ ReplayGain & Media Library 支持)
foobar2000 - Advanced Audio Player (官方插件,w/ ReplayGain & Cuesheets 支持)
Windows Media Player (带有 CoreWavPack directshow 滤波器)
XMMS (带有 Kuniklo 的 插件) (源代码)
LAMIP (官方插件) - 用于 Linux 及相关系统的模块化音频播放器 - 主页
Adobe Audition (and CoolEdit) (filter w/ 32-bit floats & extra info save support)
dBpowerAMP - Music Converter / Audio Player / CD Writer (官方插件)
Apollo Audio Player (插件支持 w/ ReplayGain )
MusikCube - 自由音频播放器 (w/ WavPack 插件)
Ahead Nero Burning ROM (w/ 插件)
MrQuestionMan - Audio Identifier
Burrrn - 直接从不同的格式烧制音频 CD
Mp3tag - 通用标签编辑器
Exact Audio Copy - CD Ripper ( w/ wavpack.exe 是外部压缩程序)
VUPlayer - 自由的多种格式音频播放器与转换器
Xist (beta) - 支持 WavPack 的 OS X 播放器(源代码)
带有官方插件的 XMPlay, - 用于 Windows 的自由小播放器
Cog - 支持 WavPack 的用于 OS X 的新播放器
MPXPlay - 支持 WavPack 的基于 DOS(MS-DOS、FreeDOS、DR-DOS)的播放器
1by1 与 Coolplayer,带有 Winamp WavPack 插件
不同平台的 WavPack 编译版本
The GodFather - 标签与音乐管理器
Wavpack4Wavelab - 第一款商用/专业波形编辑的第三方文件输入输出插件Steinberg Wavelab 5/6
Easy CD-DA Extractor - 商业 CD 音轨抓取、编码及转换工具
OggdropXPd - 直接从包括 WavPack 在内的各种无损格式转换成有损开放源代码 Ogg Vorbis 格式
Quintessential Player 带有 插件
KSP Sound Player 中缺省支持
硬件支持
运行开放源代码 Rockbox 固件的播放器,如 iriver ihp100、ihp120、ihp140、H320、H340 以及 iPod Video/Color/Photo/Nano (Rockbox 主页)
Roku PhotoBridge HD (w/ 插件)
DVD+Audio
自从 2005 年起,WavePack 就开始用于 DVD+Audio 上的音频压缩取代 DVD-Audio 上昂贵的 Meridian Lossless Packing。
为了保证高速运算,WavPack 完全使用整数算术这样一种简单的预测,在“最快”模式下,预测值是前面两个采样的简单数学外推。例如,如果前面两个采样是 -10 与 20,那么预测值就是 50。在缺省模式下,使用一个简单的自适应因子衡量前面采样对于预测影响的权重。在我们的这个例子中预测值可能从 20 到 50 之间变化,也就是前面的采样从没有影响到影响最大这样一个范围变化。这个权重因子随着音频数据频谱特性的变化而不断更新,所以它是“自适应”的。
然后从待编码的实际采样中减去生成的预测值得到误差,在单声道模式下这个值直接送到编码器去,但是立体声信号通常在两个声道之间有一些能在后面使用的相关性,所以左右声道分别计算出各自的误差值。在“快速”运算模式下这两个新生成的值直接送到编码器而不管它是左声道还是右声道。在缺省模式下,这个误差值总是随着平均、左或者右三者之一发送到编码器。自适应算法根据声道不断变化的平衡性确定发送三者中最有效的一个。
David Bryant 为 WavPack 开发了一个独特的数据编码器,他认为这个编码器有两个方面要比 Rice编码优秀。由于对于这种类型的数据来说 Rice 编码代表了最优的位编码(有时也称作哈夫曼编码)。WavPack 编码要比它稍稍逊色一点,大约差距是 0.15 位/采样,也就是说 16 位数据大约差 1%。WavPack 编码器的第一个优点是在编码前数据无需缓存,它将每个采样直接转换成位码。这从计算的角度来讲效率更高,在一些延迟控制很关键的应用中表现更好。它的第二个优点是很容易适应有损编码,这是因为除了隐含的一个最高位之外所有重要的数据位都直接进行发送。按照这种方法,就可以只传送每个采样中带有符号的最高 3 位。实际上,可以只传送符号位以及用平均 3.65 位/采样 表示的使用隐含最高位的采样值。
这个编码机制用于实现 WavPack 的“有损”模式。在“快速”模式下,非自适应去相关的输出只是简单地四舍五入到最近的特定位数的编码值。在缺省模式下,使用自适应的去相关,它可以将噪声平均减小 1 dB,并且当前以及下一个采样在选择两个可用的编码值时都参与衡量,这又将噪声减小 1 dB。
由于开发者认为整数运算受不同芯片的影响较小,而芯片的不同可能带来无损压缩特性的变化,如 Pentium 浮点运算的缺陷就是一个明显的例子,所以他决定在 WavPack 算法的数据处理中不使用浮点运算。使用浮点运算的无损压缩工具如果运行在有缺陷的 Pentium 芯片上可能就会生成不同的结果。即使我们不考虑这些已经存在的缺陷,浮点运算也很复杂,在不同的“正确”实现之间也可能有微小差别,对于这类应用可能会带来麻烦。为了进一步加强 WavPack 压缩数据的完整性,编码器在生成的数据流后包括有一个 32 位的错误检测码。
WavPack 的源代码非常易于移植到其它平台,它已经可以在几种不同的 Unix 系统上编译,如 Linux、Mac OS X、Solaris、FreeBSD、OpenBSD、康柏 Tru64、HP-UX等等,另外它也可以在Microsoft Windows、DOS、Palm OS 以及 OpenVMS 上编译。它可以在许多平台上工作,如x86、ARM架构、PowerPC、AMD64、IA-64、SPARC、DEC Alpha、PA-RISC、MIPS以及Motorola 68k。
wma(无损),即Windows Media AudioLossless格式,是一种由微软公司开发的无损压缩音频格式,后缀名为.wma,码率大约为470kbps-960kbps。