Hi all,

I was very pleased to hear that the merits of FLAC as a preservation format were again being considered by ARSC List; however most of the discussion only considered a few of its advantages over PCM/WAV such as that the openness of the format and resulting storage requirements, but the thread hasn't yet covered FLAC's preservation and fixity features over PCM/WAV. 

Tom Fine noted that, "Having used FLAC files for years, both creating them and purchasing them, I cannot hear any difference from WAV." To clarify on this point, FLAC is a lossless codec only. If a PCM/WAV file and FLAC audio file are encoded from the same source data at the same technical characteristics then the raw audio information that both decode to will be exactly the same. In fact the FLAC file format will store an MD5 checksum (often called a FLAC fingerprint) of the encoded raw audio to verify this. Both PCM/WAV and a lossless FLAC audio of the same audio will both decode to identical raw audio streams; a difference between two bit-for-bit identical sets of raw audio data coming from the decoders can not be heard. Additionally the ear is not an accurate way to verify the losslessness of a data encoding. One could use checksums instead of the decoded values, such as `ffmpeg -i pcm.wav -f md5 - 2>/dev/null` and `ffmpeg -i flac.flac -f md5 - 2>/dev/null` will produce matching values on the decoded data.

Some have noted that WAV is considered more stable as a preservation format, but I would really appreciate some debate on this topic. FLAC has numerous preservation-specific advantages over PCM/WAV that I don't believe are fairly considered within this thread. The FLAC file format embeds an md5 checksum of the audio that was encoded in the header. This feature allows any FLAC file to be validated completely by itself. To perform the same fixity features with PCM/WAV separate checksums are required. An external checksum method for PCM/WAV is comparatively at a disadvantage because the relationship between a PCM/WAV and separate checksum is more vulnerable than an embedded one. Additionally the embedded FLAC checksum is created and embedded by the muxer at the time of the encoding whereas a checksum of a PCM/WAV would have to occur at a later point from the point the file was created.

Furthermore if either a FLAC or PCM/WAV file does happen to become corrupted (bit rot, truncation, sector error, etc) the FLAC md5 header checksum and a potential external PCM/WAV checksum only say that something is wrong somewhere in the file. For an archivist to determine a method to repair or respond to a corruption in PCM/WAV or a FLAC file is a very different approach. To know that a PCM/WAV file has a checksum mismatch insinuates that somewhere within the file one or many of potentially millions of samples are incorrect. With FLAC audio frames are validated against embedded CRCs so the location of bit damage is identifiable down to a millisecond range. I included some info on FLAC vs. PCM/WAV restoration abilities in an article here:

FLAC can also contain all metadata chunks allowed in WAV files, see the --keep-foreign-metadata option. With this feature FLAC can contain aXML, iXML, bext, cart, list, etc in addition to its own comprehensive metadata features.

For me, digital space is only the secondary issue for using FLAC over PCM/WAV. Still this is a sizable issue. FLAC is really the green choice compared to PCM/WAV. If you tally the amount of hard drives, bandwidth, electricity, and services there is a difference. Consider the movements in other media formats to integrate lossless compression into modern file formats; the overall cumulative impact has been huge. Even office documents such as .doc, .xls, .ppt, are rarely used in fairly on much smaller, lossless formats such as .docx, .xlsx, .pptx, .key, .odt. Although hard drives are cheap to buy, the cumulative environmental impact is not. 

Despite the file size issue, the real reason to use FLAC is preservation management and fixity. Although hard drives are cheaper, with FLAC the archivist has far more tools and potential available to solve preservation challenges with the use of checksums of what was encoded and crc's protecting much smaller groups of data. The FLAC checksums also play a large role in audio identification, integrity, and verification; for instance see etree's work with a FLAC Fingerprint registry: To say that the rationale for the use of FLAC weakens as e-waste gets cheaper to produce is missing a consideration of the preservation specific features of FLAC.

While FLAC could be recommended as an access format it has substantial advantages over PCM/WAV as a preservation format. A properly made FLAC would be able to create a byte-for-byte of a source WAV file while providing numerous preservation and fixity features that PCM/WAV is far too simple to include. I'd like to clarify that I am also very supportive of the need for archives to respect the archival original and that data arriving within the archive should in most cases be preserved as-is in addition to managing potential alternative files to serve the goals of preservation and access. However PCM/WAV to FLAC is a special case in a normalization path. PCM/WAV to FLAC is one of the very few transcodings where the original file bit-for-bit can be reconstructed from the derivative (with the keep foreign metadata option). PCM/WAV to FLAC is similar to zipping a file, using AXF, lossless data compression in LTO tape, or gzip; the original data may be reconstructed as needed and benefits from the identification, fixity, and preservation features of FLAC in the meanwhile. Yes, it is time to rethink FLAC.

Go National Archive of Australia!

Dave Rice