FLAC
| 開發者 | Xiph.Org基金會, Josh Coalson |
|---|---|
| 初始版本 | 2001年7月20日 |
| 穩定版本 | 1.2.1/ 2007年9月17日 |
| 作業系統 | 跨平台 |
| 類型 | 編解碼器、音頻文件格式 |
| 許可協議 | GNU GPL libraries: BSD授權條款 |
| 網站 | FLAC.SourceForge.net |
| 扩展名 | .flac |
|---|---|
| 互联网媒体类型 | audio/x-flac |
| 格式 | 音频编码 |
| 專門屬 | 音频 |
FLAC (发音:/ˈflæk/;全称: Free Lossless Audio Codec),中文译為無損音頻壓縮編碼。FLAC是一套著名的自由音頻壓縮編碼,其特點是可以对音频文件無損壓縮。不同於其他有損壓縮編碼如MP3及WMA(9.0版本支援無損壓縮),它不會破壞任何原有的音頻資訊,所以可以還原音樂光碟音質。現在它已被很多軟體及硬體音頻產品所支持。
在2003年1月29日,Xiphophorus(現在稱為Xiph.Org基金會)宣佈FLAC併入旗下,连同Ogg Vorbis,Ogg Theora及Speex成為旗下的開源產品。
目录 |
計劃 [编辑]
FLAC計劃包括有:
- 音頻格式
- libFLAC,一個參考的編碼及解碼程式庫,及一個元數據介面
- libFLAC++,一個配合libFLAC的物件壓縮器
- flac,一個文字介面的壓縮指令,配合libFLAC以編碼或解碼.flac檔案
- metaflac,一個文字介面的.flac元數據編輯器
- input plugins,不同的音樂播放軟體的輸入插件(如Winamp,XMMS,foobar2000,musikCube)
自由指的是這個音頻格式可以在不需事先授權的情況下使用(xiph.org保留了製定FLAC規格及認證相容規挌的權利)。而不論是FLAC格式還是其編碼及解碼方法均沒有任何軟體專利保護,這表示整個FLAC是自由軟體:libFLAC及libFLAC++的源代碼是在BSD許可證下發佈,而flac,metaflac及其他插件的源代碼均是在GPL下發佈。
在其官方的目標中,FLAC計劃不鼓励开发者在其中加入任何反复制特性。
比較 [编辑]
FLAC與其他無損壓縮式如ZIP及gzip的主要分別在於FLAC可實時播放已壓縮的音頻資料。而且FLAC比ZIP這類無損壓縮格式有更高的壓縮比率。(FLAC在壓縮音樂光碟時有大約五成壓縮率,但ZIP在同一情況下則只有一至兩成壓縮率。)
雖然有損壓縮格式如MP3,ogg等有更高的壓縮率,但它們會破壞了音頻的原來數據,使其不可變回原來音質。而且FLAC可自由選擇壓縮率及壓縮時間,當然兩者是成正比的。
相比起其他無損壓縮格式如Monkey's Audio(拓展名为.APE)及Shorten,虽然压缩率稍有不及Monkey's Audio,FLAC技术更先进,占用资源更低,而且是开源的,所以,更多的平台及硬體產品支持FLAC。不過目前在中国大陆Monkey's Audio更为流行[來源請求]。
FLAC同時亦是保存音樂光碟於電腦中的最佳方法之一,因為其不會破壞音頻原始資料,所以FLAC是可以再轉回音樂光碟並保留原來的音質。而且可以有效对抗文件损坏。
在Hydrogenaudio維基有一個各類無損音頻壓縮的比較表,內裡包括了FLAC。[1]
技術 [编辑]
FLAC只支持定點取樣,並不支持浮點取樣,這是因為它要確保沒有任何約數錯誤以致影響音質。它能支持任何PCM位分辨率,由4至32 bits per sample皆有。它亦支持任何取樣頻率,由1 Hz至655,350 Hz不等,並可逐1 Hz微調。
FLAC支持很多不同的平台:大多數的Unix-like系統(包括Linux,*BSD,Solaris及Mac OS X),Windows,BeOS及OS/2。支持這麼多平台的原因是因為它是由autoconf/automake、MSVC、Watcom C及Project Builder編譯的。
FLAC的技术特点如下:
- 无损压缩:被编码的音频(PCM)数据没有任何信息损失,解码输出的音频与编码器的输入的每一个字节都是一样的。每个数据帧都有一个当前帧的16-bit CRC校验码,用于监测数据传输错误。对整段音频数据,在文件头中还保存有一个针对原始未压缩音频数据的MD5标记,用于在解码和测试时对数据进行校验。
- 快速:FLAC更看重解码的速度。解码只需要整数运算,并且相对于大多数编码方式而言,对计算速度要求很低。在很普通的硬件上就可以轻松实现实时解码。
- 硬件支持:由于FLAC提供了免费的解码范例,而且解码的复杂程度低,所以FLAC是目前少数获得硬件支持的无损压缩编码之一。(APE格式也有少数硬件支持)
- 可以流化: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的帧结构,當数据流损坏时,数据损失会被限制在受损的数据帧之内。一般只会丢失很短的一个片段。而很多其他无损音频压缩格式在遇到损坏时,一个损坏就会造成后面所有数据丢失。
参见 [编辑]
註解 [编辑]
外部連結 [编辑]
- etree.org維基
- FLAC計劃主頁
- 支持FLAC的音樂播放程式列表由推廣FLAC計劃組織所編寫。
- FLAC與其他無損音頻格式比較列表
- Speek的無損音頻及有損音頻格式比較列表:比較FLAC, Wave, Ogg Vorbis及MP3格式的壓縮率及時間。
- 無損壓縮格式的比較列表由Hans Heiden所製作
- 無損音頻壓縮日誌
|
|||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||