トピック
ゼロからわかる「FLAC」。秋にiOS 11が対応、さらに活用が広がる?
2017年9月5日 08:00
ハイレゾ再生におけるもっとも普及したフォーマットといえば「FLAC」。音質を損なわずにファイルサイズを減らすロスレスコーデックとして利用者は多い。Appleが今秋リリース予定のiOS 11でサポートすることも発表されている。改めて、FLACの基本や特徴、これまでの動向などについて整理したい。
FLACって何?
FLAC(Free Lossless Audio Codec/フラック)は、可逆圧縮に対応した音声フォーマット。パテントフリー(ライセンス料不要)で利用できる映像/音声コーデックの開発を進めている「Xiph.Org Foundation」の成果物であり、他のコーデック同様オープンソースソフトウェアとして公開されている。
FLACはオーディオフォーマットであり、動画の音声部分などコンテナファイルに内包する形でも利用できるが、多くの場合独立したファイル(拡張子は「.flac」または「.fla」)として存在し、特にオーディオファンの間で利用されている。実際、「ハイレゾ」を売りにするダウンロード型音楽配信サービスは、FLACが選択されることが多い。
それは、データ圧縮を実現しつつも完全オリジナルの状態に復元できる(ビットパーフェクト)特性を備えているからだ。サンプリングレートは1~655.3kHz、量子化ビット数は4~32bitと「ハイレゾ」品質のオーディオデータを扱え、最大8chのマルチチャンネルをサポートと応用も効く。データ圧縮によりファイルを小さく保ちつつも無圧縮音源(リニアPCM)としての特性を発揮でき、ハイレゾもマルチチャンネル再生にも対応できる、その器用さが評価されているともいえる。
もう一つ、WAVと比べた利点として重要なのは、音楽ライブラリ内での扱いやすさ。ジャケット画像やタグ情報(アーティスト名や曲名など)を付けて管理がしやすい。
一般的に、FLACはWAVやAIFFなどリニアPCMをエンコードすることにより生成する。無音部の長短など楽曲の内容/ジャンルにより多少の差はあるものの、オリジナルのリニアPCMと比較して、おおむね45~65%程度のサイズに圧縮できる。MP3やAACのような非可逆圧縮と比較すると容量削減効果は劣るが、データの欠損なく完全に元の状態へと復元できる(ロスレス)、この変換処理だけを考慮すれば情報量を損なわない(≒数値上は音質劣化がない)ことがポイントだ。
掛け値なしにロスレスかどうかは、ソースコードにより担保される。前述した通りFLACはオープンソースであり、プログラムの設計書すべてをつまびらかにしているのだから、疑問がある場合にはソースコードを確認すればいい。FLACの誕生から17年、復号化すると1bitも違わないオリジナルのリニアPCMを復元できることは繰り返し確認されているため、その信頼性は高い。念のため、WAV→FLACからFLAC→WAVへの変換/再変換テストを行なったが、正確に再現されることを確認した。
では、FLACが完全にオリジナルの(圧縮/符合化前の)リニアPCMとまったく同じ音質かというと、そうともいえない。「ほぼ同じ」ないしは「同等」と評して差し支えないほどの差異ではあるものの、(かなり微妙な)音質差を指摘する声も多く、ブラインドテストで違いを言い当てるリスナーも存在する。
FLACをWAVと比較すると、動的にリニアPCMへと変換しつつ再生するため時間軸方向での揺らぎ(ジッター)が増す可能性がある。反対に、FLACではフレームごとにエラー検出用の情報(CRC)が埋め込まれるため、WAVでは難しいストリーミングが可能というメリットもある。WAVをFLACにすればファイルサイズが小さくなる、という単純な話ではないのだ。
テスト曲 | 音質 | WAV(A) | FLAC(B) | 圧縮率(B/A) |
---|---|---|---|---|
花束を君に/宇多田ヒカル | 96kHz/24bit | 160,267,868 | 104,632,015 | 65.29% |
Get Lucky/Daft Punk | 88.2kHz/24bit | 195,752,756 | 134,175,598 | 68.54% |
Pueblo Nuevo/ Buena Vista Social Club | 88.2kHz/24bit | 226,950,356 | 123,630,144 | 54.47% |
ピアノ・ソナタ 第18番 ト長調 作品78 D.894 「幻想」 II.Andante/高橋アキ | 192kHz/24bit | 594,339,884 | 290,467,956 | 48.87% |
FLACを再生するには
FLACはオーディオファイルフォーマットであり、その符合化/復号化を行なうプログラム(コーデック)だ。オーディオプレーヤーソフトで再生する場合は、ライブラリ(libFLACやlibavcode)を利用するかFLACコマンドを呼び出すかという形をとることになるが、それはソフトの設計でありユーザーの目には入らない。他のフォーマット同様、画面に表示されるなどした楽曲に再生指示を与えるだけのことだ。
ただし、ハイレゾ品質(いくつか定義はあるが、サンプリング周波数は48kHz以上で量子化ビット数は24bit以上)のFLACを聴く場合は、元の情報量を余すところなく再生できなければ意味がない。FLACファイルをデコードし、リニアPCMと同等のデジタル音源として出力再生するだけでは不十分、48kHz/24bit以上の音源に対応するDACを用意することが前提だ。例えば、96kHz/24bitや192kHz/24bitといった音源を再生するには、データ量を減らすこと(ダウンサンプリング)がないようDACの性能にも配慮する必要がある。
Windows PCの場合、内蔵のDACが48kHz/24bit以上の情報に対応しているかどうかは「サウンド」コントロールパネルの「スピーカー」プロパティから確認できる。「Realtek High Definition Audio」など、「HD」や「High Definition」の文言があれば、Intelが提唱するHigh Definition Audio規格(最大192KHz/32bitのデータストリームに対応したオーディオデバイス)に準拠しており、数値上ではハイレゾ品質のFLACを再生できるということになる。
Macの場合、現行機種のすべてが96kHz/32bit対応のDACを搭載しているため、ステレオヘッドフォンを接続すればハイレゾ品質のFLACをMac単体で再生できる(機種によっては光デジタル出力も可能)。
しかし、Windows PCもMacも“スペックとしてのハイレゾ再生”を満たすに過ぎず、音質に関する保証はない。デジタル信号がアナログに変換されたあとは増幅処理を行なわねばならず、アンプやコンデンサなどアナログ回路の出来が音質を大きく左右するからだ。PCに音声出力用のケーブルやヘッドフォンを直接つながず(PCのアナログ回路を使わない)、USBやS/PDIFで外部機器にデジタル信号のまま出力し、音質重視で設計されたUSB DACなどのオーディオ機器で最終出力たる音楽(アナログ波形)を楽しむことがセオリーだ。
今後のiOS 11対応など、FLAC活用はさらに進む?
かつてFLACは、コンポーネント機やPCを中心に利用されてきた。コアなオーディオファンがターゲットであり、FLACのデコードに対応する性能を持つハードウェア(IC)がそれなりに高額なことが主な理由だが、ここ数年で流れに変化が現れた。スマートフォンやDAP(デジタルオーディオプレーヤー)によるFLACのサポートだ。
前述した通り、FLACはオープンソースソフトウェアでありパテントは不要、自由にソフトウェアへ組み込める。実際、「ONKYO HF PLayer」や「radius NePLAYER」などハイレゾ再生をうたうスマートフォンアプリの多くはFLACに対応しており、設定画面などを調べるとlibFLACやlibavcodecといったFLACデコード機能を備えたライブラリの存在を確認できる(ライセンスの表示は義務)。
しかし、それは汎用のプロセッサを利用した「ソフトウェアデコード」であり、システムへの負荷は高くバッテリ消費量も大きい。最近発表されたSoCの多くは、FLACなど多様なコーデックをICレベルでデコード処理する「ハードウェアデコード」の機能を備えており、FLAC再生は従来に比べ"軽い処理"に変わりつつある。例えば、Mediatekの「MT8173」、QUALCOMMの「Snapdragon 820」など、2015年以降続々とFLACをハードウェアデコードできるスマートフォン向けSoCが発表されている。これまでの“負荷が高くバッテリを食う”という、FLACなどハイレゾ再生に対する認識は過去のものとなりそうだ。
iPhone/iPadに関していえば、今秋公開予定の「iOS 11」にFLAC再生機能が盛り込まれることが明らかにされている。音声処理関連のフレームワーク「Core Audio」に、FLACのコーデックが追加されるという意味だ。ハードウェアデコードに対応したチップに対応するかどうかという未発表製品に関する情報はないが、ハードウェアに近いレイヤーで動作するAPI群が含まれるCore Audioで直接処理したほうが、システムへの負荷やレイテンシーの少なさという点で有利と考えられるため、Core AudioネイティブのFLAC対応再生アプリは今後増えることだろう。
なお、Android OSでは、2011年公開のHoneycomb(3.1)のときからFLACデコード機能を備えているが、オーディオAPIの制約によりサンプリングレートは最大48kHzとなっている。そのため、ハイレゾ再生をうたうアプリは独自にデコード処理を行なうものが多い。
このようにオーディオ分野で存在感を増しているFLACだが、用途はそれだけではない。例えば、音声認識システム「Google Cloud Speech API」ではFLACかLINEAR16の利用が推奨されている(なお、音声認識の分野ではより圧縮率が高いロスレスコーデック「MPEG-4 ALS」が注目されている)。オーディオ分野にしても、楽曲の聴取形態がストリーミングへとシフトする中、FLACファイルとしてダウンロード後に再生するという聴取スタイルに留まらない可能性は高い。iOSでの対応を含め、今後の動向に注目したい。