无损音频压缩编码
自由音频压缩编码
无损音频压缩编码(Free Lossless Audio Codec,简称FLAC)是一套自由音频压缩编码,其特点是无损压缩。不同于其他有损压缩编码如MP3AAC,它不会破坏任何原有的音频信息,所以可以还原音乐光盘音质。2012年以来它已被很多软件及硬件音频产品(如CD等)所支持。
解析区别
FLAC与MP3不同,MP3是有损音频压缩编码,但FLAC是无损压缩,也就是说音频以FLAC编码压缩后不会丢失任何信息,将FLAC文件还原为WAV文件后,与压缩前的WAV文件内容相同。这种压缩与ZIP的方式类似,但FLAC的压缩率大于ZIP和RAR,因为FLAC是专门针对PCM音频的特点设计的压缩方式。而且可以使用播放器直接播放FLAC压缩的文件,就像通常播放MP3文件一样(已经有许多汽车播放器和家用音响设备支持FLAC,在FLAC的网站上你可以找到这些设备厂家的链接)。
FLAC是免费的并且支持大多数的操作系统,包括Windows,基于Unix Like内核(LinuxBSDSolarisIRIXAIX等)而开发的系统,BeOSOS/2Amiga。并且FLAC提供了在开发工具autotools,MSVC,Watcom C,Project Builder上的build系统。
现各大网站都有FLAC音乐下载,发布者一般是购买CD后把.cda音轨直接抓取成.flac,以保证光盘的原无损质量。
无损格式配上好耳机的效果是非常棒的。
项目格式
FLAC 数据流的格式
以库的形式提供的参考编码器解码器
flac,一个以命令行方式工作的可以编解码FLAC文件的程序;
metaflac,以命令行方式工作的FLAC文件的metadata编辑器。
FLAC 不同音频播放器的输入插件
我们所说的“FLAC是自由(free)的”不仅仅意味着你可以不花钱而得到它。更重要的是FLAC的文件格式是对公众完全开放的,你可以以任何目的使用它(FLAC 项目只保留维护 FLAC 格式规格和确认兼容特性的权利),FLAC的文件格式和编码/解码的实现方式都不受任何已知专利的限制。还有,所有的源代码都在开放源代码的授权方式下可以得到。
发展历史
FLAC项目由Josh Coalson于2000年启动。进入beta阶段后并在2001年1月15日发布的0.5版的参考实现时,FLAC位流格式冻结。
2001年6月FLAC发布了1.0版。
banner压缩格式提供支持,如Vorbis、Theora、Speex等等。
2007年9月17日FLAC发布了1.2.1版。
2013年6月1日六年来首次发布更新,从v1.2升级到v1.3。主要变化包括:支持RF64和Wave64 格式,ReplayGain支持最高192kHz音频取样率,等等。
主要特性
无损失压缩:被编码的音频(PCM)数据没有任何信息损失,解码输出的音频与编码器的输入的每一个字节都是一样的。每个数据帧都有一个当前帧的 16-bit CRC校验码,用于监测数据传输错误。对整段音频数据,在文件头中还保存有一个针对原始未压缩音频数据的MD5标记,用于在解码和测试时对数据进行校验。 电脑在播放WAV文件时,是把WAV文件中的PCM数据直接发送给声卡,而电脑在播放FLAC时,需要先把FLAC解码为PCM数据,然后在发送给声卡。就是多了一个解码的环节,就像是给RAR文档解压一样。其PCM数据是与压缩前的WAV没有区别的。
快速:FLAC更看重解码的速度。解码只需要整数运算,并且相对于大多数编码方式而言,对计算速度要求很低。在很普通的硬件上就可以轻松实现实时解码。
硬件支持:由于FLAC提供了免费的解码范例,而且解码的复杂程度低,直至2012年以来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的全部信息,也就是说,可以把平时单独存放的CUE文件嵌入到FLAC文件里。当你的原来的CD损坏的时候,你就可以用这个文件恢复出与原来一模一样的CD副本。
抗损伤:由于FLAC的帧结构,使得一旦发生数据流的损坏,损失会被限制在受损伤的数据帧之内。一般只是会丢失很短的一个片段。而很多其他无损音频压缩格式在遇到损伤的时候,一个损伤就会造成后面所有数据的丢失。
软件支持
编码
Windows平台
ALLPlayer
解码
跨平台
Boxee
Windows平台
类Unix
Mac OS X
Palm OS
CD抓轨
跨平台
Windows平台
Audiograbber
类Unix
Mac OS X
硬件支持
原生支持
其他平台
打开方式
FLAC可以通过很多播放器直接播放,比如千千静听(已改名百度音乐),Foobar2000AIMP等,甚至部分视频播放器KMPlayer都能直接播放。当然,为了音质考虑,建议使用专业音乐播放器进行播放。
在特殊情况下,可以将FLAC文件视为一个光盘镜像,并加载到虚拟光驱上,这可以通过Nero将FLAC文件刻录到映像文件然后通过虚拟光驱(如Daemon Tools)加载来实现,也可以通过WinMount软件可以直接把Flac文件挂载到一个虚拟光驱。但是因为操作繁琐,所以除非在必要情况下,一般我们都是通过播放软件直接播放的。
存在缺点
FLAC仅仅是一个无损音频编码,不含有有损压缩的功能。因此当需要小体积有损编码的音频文件时,你将仍然需要MP3AACOgg Vorbis等编码。
FLAC不支持任何版权保护(防复制)方法,自行尝试对FLAC文件进行保护是徒劳无功的。
压缩方式
音频压缩领域,有两种压缩方式,分别是有损压缩和无损压缩。我们常见到的MP3、WMAOGG被称为有损压缩,有损压缩顾名思义就是在压缩过程中会让原始音频信息受损和失真。另一种音频压缩被称为无损压缩。无损压缩能够在100%保存原文件的音频数据的前提下,将音频文件的体积压缩得更小,而将压缩后的音频文件还原后,能够得到与源文件完全相同的PCM数据。无损压缩格式有APE、FLAC、WavPackTAK、TTA、WMA Lossless、Apple Lossless、La、OptimFROG、Shorten等,而在中国最流行的无损压缩格式是APE和FLAC。下面就针对这两种无损压缩格式进行一下对比。
APE即Monkey's Audio,是一种常见的无损音频压缩编码格式,扩展名为.ape。与有损音频压缩(如MP3Ogg Vorbis或者AAC等)不同的是,Monkey's Audio压缩时不会丢失数据。一个压缩为Monkey's Audio的音频文件听起来与原文件完全一样。Monkey's Audio文件的播放列表使用.apl(也支持cue)。同时它提供的开源开发包使得播放器开发者们可以较容易地让播放器产品支持APE格式。在现有不少无损压缩方案中,APE是一种有着优势并不突出的压缩率以及较慢的解码速度。由于推出时间较FLAC早,APE格式占据了大多数PC-HIFI友的心,在国内很快流行,应用非常广泛,成为了国内许多无损音乐爱好者的首选格式。
FLAC是Free Lossless Audio Codec的简称,是一种非常成熟的无损压缩格式,名气不在APE之下。该格式的源码完全开放,而且支持所有的操作系统平台。它的编码算法相当成熟,已经通过了严格的测试,当FLAC文件受损时依然能正常播放。另外,该格式是最先得到广泛硬件支持的无损格式。
前面已经说明,无损压缩是在保证不损失源文件所有码率的前提下,将音频文件压缩得更小,也就是说这两种音频格式都能保证源文件码率的无损。但两种压缩格式毕竟为两种压缩算法,下面比较一下这两种压缩格式的特点:
一、压缩率决定无损压缩文件所占存储空间
所有的无损压缩编码的压缩率都较为相近,但在这些无损压缩编码之中,APE具有较好的压缩率,FLAC的压缩率略有不如。以一首49784KB的“5 Star Grave - In Bed With The Dead.wav”为例,转换为flac后大小为37006KB,转换为ape后大小为36460KB,两者的压缩率分别为74.33%和73.24%。大多数情况下,一个WAV音频文件经压缩后得到的APE文件,一般会比压缩为FLAC文件稍微小一些。由于不同的WAV文件信息量不同,以上数据仅供参考。(注:flac.exe为1.3.0版,MAC.exe为4.11版)
二、编码速度考验用户的耐心,速度快者优
FLAC的压缩和解码速度均显著优于APE,APE只有在FAST的编码强度下,速度才能和FLAC一拼。但相应的,APE的压缩率一直低于FLAC,APE的FAST压缩下得到的文件体积已经可以和FLAC最低压缩率的文件体积媲美(经测试,一首49784KB的“5 Star Grave - In Bed With The Dead.wav”文件,经FAST压缩后得的APE文件和最低压缩率Level 8下得到的FLAC文件大小分别为36854KB、36960KB)。也就是说,如果以速度为基准比较的话,在相同压缩速度的设定下,两者的压缩率差不多。
三、平台的支持决定普及度
FLAC相比APE的解码复杂程度要较低(解码运算量小、只需要整数运算),解码速度快,对计算硬件要求很低,在很普通的硬件上就可以轻松实现实时解码播放。FLAC是唯一获得广泛硬件支持的无损压缩编码,在消费领域,已经有很多移动多媒体播放器、汽车、家用音响设备支持FLAC格式了。
APE格式,官方只提供Windows支持。虽然也有提供GNU/LinuxMacintosh平台的官方支持的讨论,但是没有结果。只有一位名为SuperMMX的开发者于2003年7月释出了一个非官方移植版本。它包括了供XMMS与Beep Media Player回放Monkey's Audio使用的插件。该移植本来只支持GNU/Linux,但从3.99 update 4 build 4版本开始支持Mac OS X和基于PowerPCSPARC平台的GNU/Linux。但是这个非官方移植计划没有得到官方的承认,受制于官方发行许可证的限制,其未来并不明朗。不过据称Monkey's Audio的Win32库可以借助Wine在GNU/Linux平台运行。硬件支持方面,由于采用了浮点运算编码解码速度慢,对硬件的要求较高,硬件支持度不如FLAC。
四、两者的开源特性
APE属于个人作品,未来不排除出现版权问题;技术水平和支持方面逊色于国际通用标准格式的FLAC。
FLAC是一个开放源代码并且完全免费的无损音频编码压缩格式,是国际通用标准,这种与CD质量相同的音乐格式在音质上一样是无可挑剔的,以FLAC方式压缩不会丢失PCM音频的任何信息。而且你永远不必担心惹上版权官司。受益于此,有很多音频处理软件默认都可以输入、输出FLAC格式文件,这给音频的后期处理带来了方便。
两者的开源或部分开源,对音频软硬件的设计们提供了很大的便利,不但几乎所有主流播放软件都支持二者,硬件方面也有很多播放器支持了FLAC和APE。只不过因为APE解码的运算量太大的问题,导致并不是每一个APE文件都可以被硬件播放器流畅播放,也更耗电。
APE文件的容错性差,只要在传输过程中出现一点差错,就会让整首APE音乐作废。而FLAC文件因为每帧数据之间无关联。因此当FLAC文件在传播过程中受损,导致某帧数据损坏缺失的话,只会损失该帧的音频信息,不会影响到前后的数据。这是FLAC的优势,但也因此FLAC的压缩率略低。
总结:
无论FLAC还是APE,因为所占空间都比有损音乐大很多,单从技术角度讲,FLAC要比APE更有优势,因为FLAC完全开源,许多播放器可以自由地将FLAC解码功能内建在自己的解码器中。同时,FLAC有广泛的硬件平台的支持,几乎所有采用便携式设计的高端解码芯片都能够支持FLAC格式的音乐,FLAC第三个优势在于:优秀的编码使得硬件在解码时只需采用简单的整数运算即可,这将大大降低所占用的硬件资源,解码速度极快,这也是硬件播放器对FLAC支持更好的原因。
参考资料
MP3播放器已死?新时代来了.驱动之家.2014-04-03
FLAC.XIPH.2022-10-22
最新修订时间:2024-05-30 14:51
目录
概述
解析区别
参考资料