FLAC: ( Free Lossless Audio Codec)无损音频压缩编码。 其特点是无损压缩。不同于其他有损压缩编码如MP3 及AAC,它不会破坏任何原有的音频资讯,也就是说音频以FLAC编码压缩后不会丢失任何信息,将FLAC文件还原为WAV文件后,与压缩前的WAV文件内容相同。
结构:
4字节头:“flaC”,用于用于区分flac数据流
特点:
1)无损失压缩:被编码的音频(PCM)数据没有任何信息损失,解码输出的音频与编码器的输入的每一个字节都是一样的。每个数据帧都有一个当前帧的 16-bit CRC校验码,用于监测数据传输错误。对整段音频数据,在文件头中还保存有一个针对原始未压缩音频数据的MD5标记,用于在解码和测试时对数据进行校验。 电脑在播放WAV文件时,是把WAV文件中的PCM数据直接发送给声卡,而电脑在播放FLAC时,需要先把FLAC解码为PCM数据,然后再发送给声卡。就是多了一个解码的环节,就像是给RAR文档解压一样。其PCM数据是与压缩前的WAV没有区别的。
2)快速:FLAC更看重解码的速度。解码只需要整数运算,并且相对于大多数编码方式而言,对计算速度要求很低。在很普通的硬件上就可以轻松实现实时解码。
3)硬件支持:由于FLAC提供了免费的解码范例,而且解码的复杂程度低,直至2012年以来FLAC是唯一获得广泛且良好的硬件支持的无损压缩编码。
4)可以用于流媒体:FLAC的每个数据帧都包含了解码所需的全部信息。解码当前帧无需参照它前面或后面的数据帧。FLAC使用了同步代码和CRC(类似于MPEG等编码格式),这样解码器在数据流中跳跃定位时可以有最小的时间延迟。
5)容错能力: APE文件的容错性差,只要在传输过程中出现一点差错,就会让整首APE音乐作废。而FLAC文件因为每帧数据之间无关联。因此当FLAC文件在传播过程中受损,导致某帧数据损坏缺失的话,只会损失该帧的音频信息,不会影响到前后的数据。这是FLAC的优势,但也因此FLAC的压缩率略低。