要約
- RFC 9639 は FLAC ビットストリームから入力時の整数 PCM サンプルを正確に復元する仕様を定める。
- ストリーム可能なサブセットへの適合は互換性を高めるが、特定のデコーダーで動作することや安全に処理できることの証明ではない。
- 保存証跡には、由来、エンコード入力、ストリームとコンテナ、検査結果、復号 PCM、チャンネル、メタデータ、実装、資源上限、再生結果が必要になる。
ファイルは streamable subset に収まっていた。それでも、運用中のプレーヤーの一つは受け付けなかった。
矛盾ではない。サブセットは現実的な相互運用性を高めるための共通範囲であり、世界中のデコーダーに発行される認定証ではない。RFC 9639 は FLAC のビット構造、メタデータ、フレーム、予測、残差、検査を精密に定義する。実際の受理と出力は、なお動いているコードに属する。
「無損失」は入力との関係である
FLAC が保存する中心対象は整数 PCM である。デコード後のサンプル値がエンコード前と一致することは強い事実だが、その入力が正しいテイク、未加工の収録、正しいチャンネル順だったとは限らない。誤った入力も完全に保存できる。
従って証跡には比較対象が必要だ。サンプルレート、ビット深度、チャンネル数と順序、総サンプル数、入力側の外部指紋、エンコーダーの版と設定、デコーダーの版、比較手順を記録する。「lossless OK」だけでは、何に対する一致なのかが消える。
CRC、MD5、署名を混ぜない
FLAC の各フレームにはヘッダーの CRC-8 と末尾の CRC-16 がある。STREAMINFO には非符号化音声に対する 128 ビット MD5 を格納できる。さらにファイル全体には外部ダイジェストを付けられる。
フレーム CRC は完全な並びを保証しない。音声 MD5 はコンテナの索引や画像を認証しない。外部ファイル指紋はタグの内容が真実だとは言わない。しかも STREAMINFO ではフレームサイズ、総サンプル数、MD5 に未知を示すゼロ値が許される。未知は成功として数えてはならない。
RFC 6151 によれば、衝突耐性が必要な認証目的で MD5 に依存すべきではない。一方、誤り検出だけの組み込みチェックは別の脅威モデルである。FLAC の MD5 は署名ではなく、提出者や保管履歴を認証しない。
音の意味はサンプル値の外にもある
Vorbis comment は題名、演奏者、日付、画像やチャンネルマスクを運べるが、その主張を検証しない。WAVEFORMATEXTENSIBLE のマスクもサンプルを自動で並べ替えない。書き手と読み手が同じ対応を実装して初めて意味が保たれる。しかも非標準配置をその comment に頼るファイルは streamable subset から外れる。
同じサンプル列が別のスピーカーへ送られれば、コーデック上の一致を保ったまま聴取結果が変わる。多チャンネル資料では、制作記録やテスト信号によりインデックスと出力を結び、実際のルーティングまで観測する必要がある。
コンテナが別の時刻を主張するとき
FLAC はネイティブ形式だけでなく Ogg に格納でき、Matroska や MP4 の周辺構造とも組み合わされる。コンテナ側が時間、長さ、サンプルレートやチャンネル情報を重複して持つと、値が食い違う場合がある。
証跡は片方を黙って上書きせず、両方の読み、使用したパーサー、優先規則、具体的な実装の挙動を残すべきだ。正しい音声 MD5 はコンテナのタイムラインを裁定せず、正しい索引は PCM 一致の代わりにならない。
適合と安全な運用は別の試験
RFC 9639 は、49 バイトのフレームが 2 MiB を超える PCM に展開し得ること、メタデータが膨大なフィールドや文字を持ち得ることを警告する。正しくデコードできることと、信頼できない入力を無制限に処理してよいことは違う。
実装試験では、製品名と版、機能組合せ、出力 PCM の指紋、失敗経路、処理時間、ピークメモリ、展開率、上限を記録する。適合ファイルの拒否はローカルな対応範囲を示す場合があり、受理は無制限な安全性を意味しない。
完全な証跡は保管から始まる。受領した正確なオブジェクト、提供者、日時、経路、外部指紋を確保し、エンコード前 PCM と変換履歴、エンコーダーを記録する。ストリームとコンテナを別々に同定し、STREAMINFO の未知値を露出させ、フレーム CRC、音声 MD5、PCM 比較を別項目として報告する。
その上でチャンネル、時間、深度、タグの出典を調停し、資源制限下で複数実装を実行する。再生成功まで主張するなら、その段階の観測を加える。保管は同一性を、チェックは限定された変化を、デコーダーは復元を、タグは記述を、コンテナは時系列を、再生系は結果を担当する。
出典
- Lu Heng — 最小初期仕様
- Lu Heng — 実行コードの優先
- Lu Heng — 現実の層
- RFC 9639 履歴
- RFC 9639 情報ページ
- RFC 9639 — Free Lossless Audio Codec
- RFC 9639 正式テキスト
- RFC 9639 正式 XML
- RFC 9639 正誤表
- IANA FLAC レジストリ
- IANA メディアタイプ
- RFC 1321 — MD5
- RFC 6151 — MD5 の安全性
- RFC 3533 — Ogg
- RFC 9559 — Matroska
- RFC 4732 — サービス妨害
- RFC 2046 — メディアタイプ
- RFC 8126 — IANA 登録手続
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

