FLAC格式

簡介,目標,特性,優點 ,缺點,技術,比較,

簡介

免費的無損音頻壓縮。簡而言之,FLAC與MP3相仿,但是是無損壓縮的,也就是說音頻以FLAC方式壓縮不會丟失任何信息。這種壓縮與Zip的方式類似,但是FLAC將給你更大的壓縮比率,因為FLAC是專門針對音頻的特點設計的壓縮方式,並且你可以使用播放器播放FLAC壓縮的檔案,就象通常播放你的MP3檔案一樣(現在已經有許多汽車播放器和家用音響設備支持FLAC,在FLAC的網站上你可以找到這些設備廠家的連線)。
flac官方logoflac官方logo
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計畫包括有:
音頻格式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計畫鼓勵開發者不要加入任何防複製特性於其中。

特性

優點 

無損失壓縮:被編碼的音頻(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 至 32 bits per sample皆有。它亦支持任何採樣率,由 1 Hz 至 655,350 Hz不等,並可逐1 Hz微調。
FLAC支持很多不同的平台:大多數的 Unix-like 系統(包括 Linux, *BSDSolarisMac OS X), WindowsBeOSOS/2。支持這么多平台的原因是因為它是由autoconf/automake、 MSVC、 Watcom C及Project Builder編譯的。

比較

FLAC與其他無損壓縮式如ZIPgzip的主要分別在於FLAC可實時播放已壓縮的音頻數據。而且FLAC比ZIP這類無損壓縮格式有更高的壓縮比率。(FLAC在壓縮音樂光碟時有大約五成壓縮率,但ZIP在同一情況下則只有一至兩成壓縮率。)
雖然有損壓縮格式如mp3ogg等有更高的壓縮率,但它們會破壞了音頻的原來數據,使其不可變回原來音質。而且FLAC可自由選擇壓縮率及壓縮時間,當然兩者是成正比的。
相比起其他無損壓縮格式如Monkey's Audio(拓展名為.APE)及 Shorten,FLAC技術更先進,占用資源更低,雖然壓縮率稍有不及Monkey's Audio,所以,更多的平台及硬體產品支持FLAC,可惜到了 Flac 1.2.1b 仍然不支持中文名稱檔案和路徑的編碼和解碼,目前在中國大陸Monkey's Audio更為流行。
FLAC 同時亦是保存音樂光碟於計算機中的最佳方法之一,因為其不會破壞音頻原始數據,所以FLAC 是可以再轉回音樂光碟並保留原來的音質。而且可以有效對抗檔案損壞。
在 Hydrogenaudio 維基有一個各類無損音頻壓縮的比較表,內里包括了FLAC 。

相關詞條

熱門詞條

聯絡我們