FLAC

From daw.wiki
Revision as of 06:40, 9 October 2026 by NekoDensen (talk | contribs) (Marked this version for translation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

FLAC(Free Lossless Audio Codec)は、可逆音声圧縮codecおよびそのnative bitstream/file formatである。通常のファイル拡張子は.flacである。

FLACは復号時に元のPCMサンプル列を完全に復元でき、音楽ライブラリ、アーカイブ、配布、バックアップなどで広く用いられる。

可逆圧縮

FLACは可逆圧縮である。

非可逆圧縮のように聴覚上不要な情報を捨てるのではなく、PCM中の予測可能性や統計的冗長性を利用してデータ量を減らす。

decode後のPCMは元データと一致する。

基本構造

Xiph.OrgによるFLAC streamの基本構造は、

  1. 4 byteのfLaC signature
  2. STREAMINFO metadata block
  3. 0個以上の追加metadata block
  4. 1個以上のaudio frame

である。[1]

STREAMINFO

STREAMINFOは必須metadata blockである。

サンプルレート、channel数、bits per sample、総sample数などの情報を含む。

またunencoded audio dataのMD5 signatureを保持でき、decode後データの完全性確認に利用できる。[2]

metadata block

FLACでは複数種類のmetadata blockが定義される。

Xiph.Orgのreference APIでは、

  • STREAMINFO
  • PADDING
  • APPLICATION
  • SEEKTABLE
  • VORBIS_COMMENT
  • CUESHEET
  • PICTURE

などが定義されている。[3]

Vorbis Comment

FLACのtaggingにはVORBIS_COMMENT blockが一般的に用いられる。

artist、album、title、track number等のmetadataをkey/value形式で保持できる。

PICTURE

PICTURE blockを使うことでalbum artwork等の画像を埋め込める。

SEEKTABLE

SEEKTABLEは長いFLAC streamで任意位置へseekする際の効率を高めるために利用できる。

圧縮方式

FLACでは入力信号をblockへ分割し、予測器を使ってsample値を予測する。

予測値との差であるresidualは、Rice coding等を用いて効率的に符号化される。

信号が予測しやすいほど高い圧縮効果を得やすい。

圧縮レベル

FLAC encoderには複数のcompression levelを持つ実装が多い。

compression levelを高くするとencoderがより多くの探索や計算を行い、ファイルが少し小さくなる場合がある。

重要なのは、圧縮レベルが変わっても復号後PCMの音質は変わらないことである。

FLACはすべてlosslessであり、compression levelは情報を捨てるquality parameterではない。

decode負荷

一般にFLACは比較的軽量にdecodeできるよう設計されている。

音楽再生では保存容量を減らしながら元PCMを保持できるため、lossless music libraryに適する。

サポート範囲

Xiph.Orgの現行format APIは最大8 channel、最大32 bits per sampleなどのformat componentを定義している。[4]

実際に利用できるparameterはdecoder、container、Subset等の制約にも依存する。

FLACとWAV

WAV/PCMとFLACは、正しく変換すれば同一PCMを相互に保持できる。

違いは、

  • FLACは圧縮される
  • FLACはdecode処理が必要
  • metadata構造が異なる
  • software/hardware compatibilityが異なる

点にある。

FLACからWAVへdecodeしても、lossless sourceであれば品質劣化は発生しない。

FLACとALAC

FLACとALACはいずれも可逆音声圧縮である。

ALACはApple製品・M4Aとの関係が強く、FLACは独立したnative file formatとして広く利用される。

FLACとMP3

MP3は非可逆圧縮であり、元PCMを完全復元できない。

FLACは一般にMP3よりファイルサイズが大きいが、元音声データを保持できる。

アーカイブ

FLACは、

  • checksum
  • metadata
  • lossless compression
  • 公開されたformat documentation

を持つため、archive用途でも利用される。

ただし組織やワークフローによってはBroadcast WAVなど非圧縮形式をmasterとして採用する。

関連項目

参考資料