FLAC

Free Lossless Audio Codec
Free Lossless Audio Codec(FLAC)的徽標
開發者Xiph.Org基金會、Josh Coalson
首次发布2001年7月20日
当前版本
  • 1.4.3 (2023年6月23日;穩定版本)[1]
編輯維基數據鏈接
源代码库
  • gitlab.xiph.org/xiph/flac
編輯維基數據鏈接
操作系统跨平台
类型編解碼器音頻文件格式
许可协议命令界面工具:GNU GPL
运行库(libraries): BSD授權條款
网站xiph.org/flac
Free Lossless Audio Codec
扩展名
.flac
互联网媒体类型
audio/x-flac
格式类型音频编码
作为容器音频
免费格式?

FLAC/ˈflæk/),全称为自由無損音頻壓縮編碼(英語:Free Lossless Audio Codec),是一款的自由音頻壓縮編碼,其特點是可以对音频文件無損壓縮。不同於其他有損壓縮編碼(如MP3 、AAC等),壓縮後不會有任何音質損失,現在已被很多軟體及硬體音頻產品所支持。

历史

FLAC项目由Josh Coalson在2000年发起并开发[2]。FLAC位元流格式在进入FLAC 0.5版本內部測試時被冻结,2001年1月15日FLAC 0.5版本发布,做為第一個FLAC的參考實做,2001年7月20日,FLAC 1.0正式釋出[2]

2003年1月29日,Xiph.Org基金會宣佈FLAC併入旗下,连同Ogg VorbisOgg TheoraSpeex成為旗下的開源项目[2][3][4]

2013年5月26日,FLAC 1.3.0发布,并将开发转移至Xiph.org Git仓库[5]

2014年11月25日,FLAC 1.3.1发布。

2017年1月1日,FLAC 1.3.2发布。

2019年8月4日,FLAC 1.3.3发布,但 Windows 版本并未被编译为EXE格式,且在主页上的latest news处也未显示,仅在changelog中出现。

2022年2月20日,FLAC 1.3.4发布。

2022年9月9日,FLAC 1.4发布。

项目组成

FLAC项目包含:

  • 音頻格式
  • libFLAC,一個參考的編碼及解碼程式庫,及一個元數據介面
  • libFLAC++,一個配合libFLAC的物件壓縮器
  • flac,一個文字介面的壓縮指令,配合libFLAC以編碼或解碼.flac檔案
  • metaflac,一個命令行介面的.flac元數據編輯器
  • input plugins,不同的音樂播放軟體的輸入插件(如WinampXMMSfoobar2000,musikCube)

自由指的是這個音頻格式可以在不需事先授權的情況下使用(xiph.org保留了製定FLAC規格及認證相容規挌的權利)。而不論是FLAC格式還是其編碼及解碼方法均沒有任何軟體專利保護,這表示整個FLAC是自由軟體:libFLAC及libFLAC++的源代碼是在BSD許可證下發佈,而flac,metaflac及其他插件的源代碼均是在GPL下發佈。

在其官方的目標中,FLAC計劃不鼓励开发者在其中加入任何反复制特性。

技術

FLAC只支持定點取樣,並不支持浮點取樣,這是因為它要確保沒有任何約數錯誤以致影響音質。它能支持任何PCM位分辨率,由4至32 bits per sample皆有。它亦支持任何取樣頻率,由1 Hz至655,350 Hz不等,並可逐1 Hz微調。

FLAC支持很多不同的平台:大多數的Unix-like系統(包括LinuxBSDSolarisMac OS X),WindowsBeOSOS/2。支持這麼多平台的原因是因為它是由autoconfautomakeMSVCWatcom C及Project Builder編譯的。

FLAC的技术特点如下:

  • 无损压缩:被编码的音频(PCM)数据没有任何信息损失,解码输出的音频与编码器的输入的每一个字节都是一样的。每个数据帧都有一个当前帧的16-bit CRC校验码,用于监测数据传输错误。对整段音频数据,在文件头中还保存有一个针对原始未压缩音频数据的MD5标记,用于在解码和测试时对数据进行校验。
  • 灵活的压缩策略:与libflac使用是“质量”的参数,该参数变化从0(最快)至8(最小)。虽然在压缩过程(压缩文件总是完美的“无损”表示的原始数据)。涉及速度和容量之间的折衷,解码过程中始终是相当快的,而不是非常依赖于压缩
  • 快速: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的帧结构,當数据流损坏时,数据损失会被限制在受损的数据帧之内。一般只会丢失很短的一个片段。而很多其他无损音频压缩格式在遇到损坏时,一个损坏就会造成后面所有数据丢失。

比較

FLAC與其他無損壓縮式,如ZIP及gzip的主要分別在於FLAC可即時播放已壓縮的音頻資料,而且FLAC比ZIP這類無損壓縮格式有更高的壓縮比率。(FLAC在壓縮音樂時有大約五成壓縮率,但ZIP在同一情況下則只有一至兩成壓縮率。)

雖然有損壓縮格式如MP3,Opus等有更高的壓縮率,但它們會破壞了音頻的原來數據,使其不可變回原來音質,而且FLAC可自由選擇壓縮率及壓縮時間,較高的壓縮率會帶來較高的解壓縮時間。相比起其他無損壓縮格式如Monkey's Audio(拓展名为.APE)及Shorten,虽然压缩率稍有不及Monkey's Audio,FLAC技术更先进,占用资源更低,而且是开放的,所以,更多的平台及硬體產品支持FLAC。

在Hydrogenaudio維基有一個各類無損音頻壓縮的比較表,里面包括了FLAC格式。[6]

参见

  • 自由软件主题

註解

  1. ^ 1.0 1.1 FLAC 1.4.3 Released With More Optimizations, Drops PowerPC-Specific Code. 2023年6月23日 [2024年2月19日]. 
  2. ^ 2.0 2.1 2.2 News. FLAC. [31 August 2009]. (原始内容存档于2013-03-29). 
  3. ^ FLAC Joins Xiph.org. Xiph.org Foundation. 29 January 2003 [31 August 2009]. (原始内容存档于2017-01-07). 
  4. ^ Plant, Emmett. FLAC Joins Xiph!. Xiph.org Foundation. [31 August 2009]. (原始内容存档于2008-05-29). 
  5. ^ FLAC – changelog. Xiph.org Foundation. [15 October 2013]. (原始内容存档于2016-11-24). 
  6. ^ Lossless comparison. [2005-11-13]. (原始内容存档于2012-03-03). 

外部連結

  • etree.org維基(页面存档备份,存于互联网档案馆
  • FLAC项目主頁 (旧)(页面存档备份,存于互联网档案馆
  • FLAC项目主頁(页面存档备份,存于互联网档案馆
  • 支持FLAC的音樂播放程式列表(页面存档备份,存于互联网档案馆)由推廣FLAC計劃組織所編寫。
  • FLAC與其他無損音頻格式比較列表
  • Speek的無損音頻及有損音頻格式比較列表(页面存档备份,存于互联网档案馆):比較FLAC, Wave, Ogg Vorbis及MP3格式的壓縮率及時間。
  • 無損壓縮格式的比較列表由Hans Heiden所製作
  • 無損音頻壓縮日誌(页面存档备份,存于互联网档案馆
视频壓縮
ISO/IEC
ITU-T
SMPTE
  • VC-1
  • VC-2英语Dirac (video compression format)
  • VC-3英语DNxHD codec
  • VC-5英语CineForm
開放媒體聯盟
On2 Technologies
(现属谷歌公司
苹果公司
  • Apple Video英语Apple Video
  • Apple ProRes
  • QuickTime
    • 动画英语QuickTime Animation
    • 图形英语QuickTime Graphics
中国标准化协会
其他
  • Bink视频英语Bink Video
  • Cinepak英语Cinepak
  • Daala
  • Dirac英语Dirac (video compression format)
  • DV
  • DVI英语Digital Video Interactive
  • FFV1英语FFV1
  • Huffyuv英语Huffyuv
  • Indeo英语Indeo
  • Lagarith
  • Microsoft Video 1英语Microsoft Video 1
  • MSU无损英语MSU Lossless Video Codec
  • OMS Video英语OMS Video
  • Pixlet英语Pixlet
  • RealVideo
  • RTVideo英语RTVideo
  • SheerVideo英语SheerVideo
  • Smacker英语Smacker video
  • Sorenson Video, Spark英语Sorenson codec
  • Theora
  • Thor英语Thor (video codec)
  • WMV
  • XEB英语ratDVD
  • YULS英语YULS
音频壓縮
ISO/IEC
  • MPEG-1 Layer III (MP3)
  • MPEG-1 Layer II
    • Multichannel英语MPEG Multichannel
  • MPEG-1 Layer I英语MPEG-1 Audio Layer I
  • AAC
    • HE-AAC
    • AAC-LD英语AAC-LD
  • MPEG Surround英语MPEG Surround
  • MPEG-4 ALS
  • MPEG-4 SLS英语MPEG-4 SLS
  • MPEG-4 DST
  • MPEG-4 HVXC英语Harmonic Vector Excitation Coding
  • MPEG-4 CELP
  • MPEG-D USAC英语Unified Speech and Audio Coding
  • MPEG-H 3D Audio英语MPEG-H 3D Audio
ITU-T
  • G.711A-law英语A-law algorithm, µ-law英语µ-law algorithm
  • G.718英语G.718
  • G.719
  • G.722
  • G.722.1英语G.722.1
  • G.722.2英语Adaptive Multi-Rate Wideband
  • G.723
  • G.723.1英语G.723.1
  • G.726
  • G.728英语G.728
  • G.729
  • G.729.1英语G.729.1
IETF
3GPP
  • AMR
  • AMR-WB英语Adaptive Multi-Rate Wideband
  • AMR-WB+英语Extended Adaptive Multi-Rate – Wideband
  • EVRC英语Enhanced Variable Rate Codec
  • EVRC-B英语Enhanced Variable Rate Codec B
  • EVS英语Enhanced Voice Services
  • GSM-HR英语Half Rate
  • GSM-FR英语Full Rate
  • GSM-EFR英语Enhanced full rate
ATSC,DVB
中国标准化协会
其他
  • ACELP英语Algebraic code-excited linear prediction
  • ALAC
  • Asao英语Asao (codec)
  • ATRAC
  • CELT
  • Codec2英语Codec2
  • FLAC
  • iSAC
  • Monkey's Audio
  • TTA
    • True Audio
  • TAK
  • MT9英语MT9
  • Musepack
  • OptimFROG
  • OSQ英语Original Sound Quality
  • QCELP英语Qualcomm code-excited linear prediction
  • RCELP英语Relaxed code-excited linear prediction
  • RealAudio
  • RTAudio英语RTAudio
  • SD2英语Avid Audio#Sound Designer file formats
  • SHN英语Shorten (file format)
  • SILK
  • Siren英语Siren (codec)
  • SMV英语Selectable Mode Vocoder
  • Speex
  • SVOPC英语SVOPC
  • TwinVQ英语TwinVQ
  • VMR-WB英语Variable-Rate Multimode Wideband
  • Vorbis
  • VSELP英语Vector sum excited linear prediction
  • WavPack
  • WMA
  • MQA
  • aptX
  • LDAC
  • MLP英语Meridian Lossless Packing
  • LHDC
  • SBC
图像压缩
IEC,ISO,ITU-T,W3C,IETF
其他
封裝格式
ISO/IEC
  • MPEG-ES英语Elementary stream
    • MPEG-PES英语Packetized elementary stream
  • MPEG-PS英语MPEG program stream
  • MPEG-TS
  • ISO基本媒体文件格式英语ISO base media file format
  • MPEG-4 Part 14(MP4)
  • Motion JPEG 2000英语Motion JPEG 2000
  • MPEG-21 Part 9英语Digital Item#File Format
  • MPEG媒体传输英语MPEG media transport
ITU-T
  • H.222.0
  • T.802英语Motion JPEG 2000
IETF
其他
合作
另见压缩方法、数据压缩软件
压缩软件
比较
自由软件
免費軟體
  • Filzip英语Filzip
  • IZArc
  • LHA
  • StuffIt Expander英语StuffIt Expander(仅解压)
  • TUGZip英语TUGZip
  • ZipGenius英语ZipGenius
  • 2345好压
  • 360压缩
  • Bandizip
商业软件
  • ARC
  • ALZip
  • Archive Utility英语Archive Utility
  • ARJ
  • BetterZip英语BetterZip
  • BulkZip英语BulkZip
  • JAR英语JAR (software)
  • MacBinary英语MacBinary
  • PKZIP/SecureZIP英语PKZIP
  • PowerArchiver英语PowerArchiver
  • StuffIt英语StuffIt
  • WinAce
  • WinRAR
  • WinZip
非归档压缩
常规
  • bzip2
  • compress英语compress
  • gzip
  • lzip英语lzip
  • lzop英语lzop
  • pack英语pack (compression)
  • rzip英语rzip
  • Snappy
  • XZ Utils英语XZ Utils
面向代码
音频压缩
比较
有损
  • Fraunhofer FDK AAC英语Fraunhofer FDK AAC
  • Nero AAC Codec英语Nero AAC Codec
  • Freeware Advanced Audio Coder (FAAC)英语FAAC
  • Helix DNA Producer英语Helix (multimedia project)
  • l3enc英语l3enc
  • LAME
  • TooLAME英语TooLAME
  • Libavcodec
  • libcelt英语CELT
  • libopus
  • libspeex
  • Musepack
  • libvorbis
  • Windows Media Encoder英语Windows Media Encoder
无损
视频压缩
比较英语Comparison of video codecs
有损
MPEG-4 ASP英语MPEG-4 Part 2
H.264 /
MPEG-4 AVC
HEVC
其他
  • CineForm英语CineForm
  • Cinepak英语Cinepak
  • Daala
  • DNxHD英语DNxHD codec
  • Helix DNA Producer英语Helix (multimedia project)
  • Indeo英语Indeo
  • Libavcodec
  • Schrödinger (Dirac)英语Dirac (video compression format)
  • SBC英语Smart Bitrate Control
  • Sorenson英语Sorenson codec
  • On2 Technologies
  • libtheora
  • libvpx英语libvpx
  • Windows Media Encoder英语Windows Media Encoder
  • AOMedia Video 1
无损
  • FFV1英语FFV1
  • Huffyuv英语Huffyuv
  • Lagarith
  • MSU Lossless英语MSU Lossless Video Codec
  • YULS英语YULS
  • 另見:压缩方法、压缩格式