ファイル形式

FLAC - Free Lossless Audio Codec(フリー・ロスレス・オーディオ・コーデック)

FLACは1サンプルも変更せずに音声を圧縮するため、デコードすると元の音声を完全に再現できます。CDアーカイブや高音質の音楽ダウンロードで使われています。

.flac

FLAC は Free Lossless Audio Codec の略で、その名の通り、1 サンプルも変えずに音声ファイルを小さくします。Josh Coalson によってプロジェクトが始まり、現在は Vorbis や Opus を手がける非営利団体 Xiph.Org Foundation が管理しています。フォーマットとそのリファレンスソフトウェアはどちらもオープンかつロイヤリティフリーであり、これが FLAC が CD コレクションのアーカイブ方法としての標準や、アーティスト運営の音楽ストアで一般的なダウンロード形式になった理由のひとつです。

FLAC が情報を失わずに圧縮するしくみ

ロスレス圧縮という言葉は MP3 と並べると矛盾して聞こえますが、仕組み自体は音声向けに調整された ZIP ファイルと同じ発想です。FLAC は音声をブロックに分割し、それぞれのブロックについて波形がどこへ向かうかを単純な数式で予測します。そして、その予測値と残った小さな誤差だけを、効率的な符号化方式で詰めて保存します。復号時には再びその予測を実行して誤差を加え戻し、元のサンプルをビット単位で完全に再現します。どれだけ容量を節約できるかは音楽次第ですが、同じ録音を WAV で保存した場合と比べると、FLAC ファイルは通常かなり小さくなります。

FLAC は最大 8 チャンネル、CD 品質を超えるビット深度や非常に高いサンプリングレートまで扱えます。MP3 と同様にフレームベースなので、ファイル全体を先読みしなくてもストリーミングやシークが可能です。ヘッダーには非圧縮音声の MD5 フィンガープリントも保存されており、長年経ってもファイルが当時リッピングした内容と完全に同じ音に復号できることをソフトウェア側で検証できます。同じコーデックは Ogg コンテナの中に入れることもできますが、一般に目にするのは素の FLAC ファイルです。

FLAC ファイルに含まれるメタデータ

FLAC ファイルは定義済みの役割を持つ複数のメタデータブロックから始まります。STREAMINFO は技術情報用で必ず含まれます。サンプルレート、チャンネル数、量子化ビット数、サンプル総数、そしてあの MD5 フィンガープリントです。SEEKTABLE はプレーヤーのシークを助け、CUESHEET は 1 枚の CD 全体のトラック構成を表現できます。PICTURE には種類や説明付きで埋め込みアートワークが格納され、PADDING は後からタグを編集してもファイル全体を書き直さずに済むように用意された単なる空き領域です。

説明用のタグは、Ogg と同じタグ方式である VORBIS_COMMENT ブロックに格納されています。これはプレーンテキストの名前と値のペアからなるリストで、固定の項目に縛られません。TITLE、ARTIST、ALBUM、ALBUMARTIST、DATE、TRACKNUMBER、DISCNUMBER、GENRE、COMPOSER、PERFORMER、COPYRIGHT、ISRC、COMMENT などがよく使われます。また、任意の項目は複数回登場でき、これによって 1 曲に 2 人のアーティストをクレジットするといったことができます。

どのアプリケーションでも自由に項目名を作れるため、このブロックには音楽だけでなく使用されたソフトウェアの情報もよく含まれます。ENCODER にはファイルを作成したエンコーダー名とそのバージョンが入ります。リッピング用アプリは独自の項目も追加します。ディスクをオンライン音楽データベースと結び付ける識別子、評価、再生回数、ReplayGain の測定値、場合によっては CD を読み取ったドライブ名などです。自由入力の項目には、タグ編集アプリに入力されたメモ、本名、メールアドレスなどが記録されることもあります。FLAC には位置情報やデバイス名の標準フィールドはないため、音楽ファイルから居場所が分かることはほとんどありませんが、人やアプリケーションが書き込んだ内容はすべて、読み取り可能なテキストとしてそのまま残ります。

FLAC を使うべきタイミング

FLAC は音声を保存しておくのに適した形式です。CD コレクション、マスター音源、将来別の形式に変換するかもしれないものなどに向いています。WAV と比べるとファイルサイズとタグ付けの柔軟性で優れており、それでも元の音源とはビット単位で同一です。MP3 や AAC と比べるとサイズはかなり大きくなるため、容量の少ないスマートフォンやアクセスの多い Web サイトにはあまり向きません。Apple 製デバイスは、同じ発想に基づく別のロスレス形式である ALAC を優先しており、両者はすべてのサンプルを保持するので、相互に変換しても音質面での損失は一切ありません。