分享

FLAC格式[无损音频压缩编码]

 fjgsd 2023-04-06 发布于广东
FLAC格式
FLAC格式
无损音频压缩编码
FLAC即是Free Lossless Audio Codec的缩写,中文可解为无损音频压缩编码。FLAC是一套著名的自由音频压缩编码,其特点是无损压缩。不同于其他有损压缩编码如MP3及WMA(9.0版本支持无损压缩),它不会破坏任何原有的音频信息,所以可以还原音乐光盘音质。现在它已被很多软件及硬件音频产品所支持。在2003年1月29日,Xiphophorus(现在称为 Xiph.Org基金会)宣布FLAC并入旗下,连同Ogg Vorbis,Ogg Theora及Speex成为旗下的开源产品。
基本信息
中文名
FLAC格式
外文名
Free Lossless Audio Codec
类型
无损压缩
外语缩写
FLAC
项目启动时间
2000年
最新稳定版
FLAC 1.3.3 (2019/8/4)
发布时间
2001年1月15日
概念解释
免费的无损音频压缩。简而言之,FLAC与MP3相仿,但是是无损压缩的,也就是说音频以FLAC方式压缩不会丢失任何信息。这种压缩与Zip的方式类似,但是FLAC有更大的压缩比率,因为FLAC是专门针对音频的特点设计的压缩方式,并且可以使用播放器播放FLAC压缩的文件,就像通常播放MP3文件一样(现在已经有许多汽车播放器和家用音响设备支持FLAC,在FLAC的网站上可以找到这些设备厂家的连接)。
FLAC是免费的并且支持大多数的操作系统,包括Windows, ' unix' (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是免费的”不仅仅意味着可以不花钱而得到它。更重要的是FLAC的文件格式是对公众完全开放的,可以以任何目的使用它(FLAC项目只保留维护FLAC格式规格和确认兼容特性的权利),FLAC的文件格式和编码/解码的实现方式都不受任何已知专利的限制。还有,所有的源代码都在开放源代码的授权方式下可以得到。FLAC是世界上第一个完全开放和免费的无损音频压缩格式。
FLAC格式
目标
FLAC计划包括有:
音频格式libFLAC,一个参考的编码及解码程序库,及一个元数据接口libFLAC++,一个配合libFLAC的对象压缩器flac,一个文字接口的压缩指令,配合libFLAC以编码或解码.flac文件metaflac,一个文字接口的.flac元数据编辑器input plugins,不同的音乐播放软件的输入插件(如Winamp,XMMS,foobar2000,musikCube)自由指的是这个音频格式可以在不需事先授权的情况下使用(xiph.org保留了制定FLA规格及认证兼容规格的权利)。而不论是FLAC格式还是其编码及解码方法均没有任何软件专利保护,这表示整个FLAC是自由软件:libFLAC及 libFLAC++的源代码是在BSD许可证下发布,而flac,metaflac及其他插件的源代码均是在GPL下发布。
在其官方的目标中,FLAC计划鼓励开发者不要加入任何防复制特性于其中。[1]
特性
优点
无损失压缩:被编码的音频(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是专门并且仅仅为无损压缩而设计的,可以选用许多其他优秀的有损压缩方式如Vorbis,MPC, 和MP3(LAME提供了一个优秀的开放源代码的实现)。
SDMI(例如cetera)兼容。FLAC不准备支持任何复制保护方法,实际上这些手段最终都是在浪费数据。(从另一个角度看,由于所有这些手段最终都被证明是无效的,所以也可以说FLAC把这些无用数据压缩到了零!)当然不能阻止某些人利用专用的metablock进行复制保护,但是他们的保护只会在他们自己解码产品上有效,其他解码器会跳过这些专门的metablock的。
技术
FLAC只支持定点取样,并不支持浮点取样,这是因为它要确保没有任何约束错误以致影响音质。它能支持任何PCM位分辨率,由4至32bits per sample皆有。它不支持任何采样率,由 1 Hz 至 655,350 Hz不等,并可逐1Hz微调。
FLAC支持很多不同的平台:大多数的Unix-like系统(包括Linux,*BSD,Solaris及 Mac OS X),Windows, BeOS及OS/2。支持这么多平台的原因是因为它是由autoconf/automake、MSVC、Watcom C及Project Builder编译的。
比较
在音频压缩领域,有两种压缩方式,分别是有损压缩和无损压缩。[2]常见到的MP3、WMA、OGG被称为有损压缩,有损压缩顾名思义就是在压缩过程中会让原始音频信息受损和失真。另一种音频压缩被称为无损压缩。无损压缩能够在100%保存原文件的音频数据的前提下,将音频文件的体积压缩得更小,而将压缩后的音频文件还原后,能够得到与源文件完全相同的PCM数据。无损压缩格式有APE、FLAC、WavPack、TAK、TTA、WMA Lossless、Apple Lossless、La、OptimFROG、Shorten等,而在中国最流行的无损压缩格式是APE和FLAC。下面就针对这两种无损压缩格式进行一下对比。
APE即Monkey's Audio,是一种常见的无损音频压缩编码格式,扩展名为.ape。与有损音频压缩(如MP3、Ogg 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/Linux和Macintosh平台的官方支持的讨论,但是没有结果。只有一位名为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支持更好的原因。
发展历史
FLAC项目由Josh Coalson于2000年启动。[3]进入beta阶段后并在2001年1月15日发布的0.5版的参考实现时,FLAC位流格式冻结。
2001年6月FLAC发布了1.0版。
2003年1月29日, 'Xiph. Org'基金会和FLAC项目宣布FLAC成为'Xiph. Org'旗下的独立公司 banner. 除此之外,'Xiph. Org'还对许多免费压缩格式提供支持,如Vorbis、Theora、Speex等等。
2007年9月17日FLAC发布了1.2.1版。
2013年6月1日六年来首次发布更新,从v1.2升级到v1.3。主要变化包括:支持RF64和Wave64 格式,ReplayGain支持最高192kHz音频取样率,等等。
软件支持
FLAC编码
跨平台
Audacity
1.2.5版之后
KMPlayer
通过官方解码器[4]
Flake(libFlake)
一个第三方开发的实验性的版本对多线程/核提供支持。
Windows平台
ALLPlayer
通过外部解码器
12.0.3xx版以后
通过可选的外部分离器插件
10.2版以后
Producer版,7版以后
9版以后
展开表格
Mac OS X
Toast Titanium
版本7开始支持
xACT
不要与微软的XACT库混淆
FLAC解码
跨平台
Boxee
FFmpeg
aTunes
PS3 Media Server
Adobe Audition
Audacity 1.3.5 Beta
MPlayer
展开表格
Windows平台
Ableton Live
Windows Media Player 12.0.9800
类Unix
GnomeBaker
GNOME
Quod Libet
GNOME
Rhythmbox
GNOME
Totem Movie Player
GNOME
Serpentine
GNOME
Amarok
KDE
展开表格
Mac OS X
Fluke
Quicktime
Ableton Live
Cog
Plex Media Center
xACT
展开表格
Palm OS
TCPMP
0.72rc1版,开源,通过插件
FLACCD抓轨
跨平台
Songbird
aTunes
Windows平台
Audiograbber
AudiTranscoder
BonkEnc
CDex
DBpoweramp
Exact AudiCopy
Easy CD-DA Extractor
展开表格
类Unix
ABCDE
Asunder
Banshee
Cdda2wav
Cdparanoia
Mencoder
展开表格
Mac OS X
Max
Mac OS 10.4版或更高版本
硬件支持
原生支持
苹果 (Apple ) iPhone 7, 7 Plus, 8, 8 Plus, X, XS, XS Max, XR
更新至iOS 11后可以实现原生播放,仅支持lightning输出。
不支持蓝牙耳机,不支持iPhone 6s, 6s Plus及以下机型。
TRAXMOD
支持44.1 kHz/16位 立体声回放
Onkyo TX-NR906
支持播放外部USB设备上的16位/24位
Pioneer SC-05, SC-07, SC-25, SC-27 以及 SC-09TX
支持外部USB设置 (网络支持特性待验证)
Denon AVP-A1HDCI, AVR-4810, AVR-4310, AVR-3310等
Yamaha RX-V2065 功放
展开表格
其他平台
Nintendo Wii
通过Wii自制程序,MPlayerWii或MPlayer CE
Apple TV,BMC Media Center 或 Boxee
1-5.5代iPod, iPod Mini,1代iPod nano
通过第三方Rockbox固件
绝大多数兼容Rockbox的数码音乐播放器(DAP)
包括iriver和Gigabeat (东芝公司)的产品,以及上面提到的iPod
Sound Devices 7-Series专业音频录音机
通过更新'badger' 固件 (v.2.24版)
Sony PlayStation Portable(PSP)
使用自制LightMP3程序
展开表格
打开方式
FLAC可以通过很多播放器直接播放,比如千千静听[6],Foobar2000,AIMP等,甚至部分视频播放器如KMPlayer都能直接播放。当然,为了音质考虑,建议使用专业音乐播放器进行播放。
在特殊情况下,可以将FLAC文件视为一个光盘镜像,并加载到虚拟光驱上,这可以通过Nero将FLAC文件刻录到映像文件然后通过虚拟光驱(如Daemon Tools)加载来实现,也可以通过WinMount软件可以直接把Flac文件挂载到一个虚拟光驱。但是因为操作繁琐,所以除非在必要情况下,一般都是通过播放软件直接播放的。
参考资料
[1]
flac目标[引用日期2019-07-10]
[2]
比较 APE与FLAC两种无损音频格式 · 今日头条[引用日期2022-10-31]
[3]
FLAC音频格式 · 草莓音频[引用日期2022-10-31]
[4]
KMPlayer 2022.3.25.17 全能视频播放器官方版 · 数码之家[引用日期2022-10-31]
[5]
FLAC简介 · CSDN[引用日期2022-10-31]
展开

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多