公開日 2017/06/16 11:51
AirPlay 2の最新情報も
【解説】「iOS 11」でついにFLACをネイティブサポート! その意味するところとは?
海上 忍
アメリカ・サンフランシスコで開催されたWWDC 2017で、「iOS 11」および開発フレームワークの概要が明らかにされた。現在の実装と比較して変わった点を挙げつつ、Appleが目指すミュージック・エコシステムにどのような影響を及ぼすのか、AV目線で開発者向け資料を読み解き、その概要をお伝えする。
■iOS 11でのFLACサポートが意味するところ
前回のレポートで触れずにいたが、iOS 11ではFLACがサポートされる。周囲の反応を見ると、ついにiOS/macOSでFLACがネイティブサポート、と歓迎ムードだ。確かに、それ自体はiPhone/ポータブルオーディオ、ひいてはオーディオファンにとってプラス材料といえるが……せっかくの機会なので、Core AudioなどiOSにおけるオーディオ再生の基本構造を踏まえ、解説してみたい。
まず、現時点でFLACの再生それ自体は、iOSデバイス上で支障なく行われている。FLACの再生に対応するオーディオ系アプリは「ONKYO HF Player」や「NePlayer」「VLC」など多数存在し、必ずアプリの情報画面にライセンスの表記がある。FLACはオープンソースソフトウェアであり、ライセンス(修正版BSDライセンス)に則っていれば改変および商業利用を含む再配布も自由に行えるからだ。デジタルオーディオにおける一種の公共財と言っていいだろう。
ただし、FLACはiOSにネイティブサポートされていないコーデックであり、アプリ側で(ライブラリなどの形で)独自に収録するしかない。iOSでは、複数のアプリが参照する(独自開発の)共有ライブラリは存在が許されないため、FLAC再生に対応するアプリを複数インストールしていれば、アプリごとにFLACデコーダを内包していることになり、そのぶんストレージを余分に消費してしまう。iOSがFLACをネイティブサポートすることは、ムダの排除という点ではメリットといえる。
iOS 11におけるFLACサポートとは、iOSにおいてオーディオ周りの機能が集積されたフレームワーク群「Core Audio」により再生できることを意味する。Core Audioの機能として、FLACのファイルフォーマットを認識し、コーデックとして利用可能になるのだ。これにサポートされないオーディオフォーマットは、デコード後にCore Audioへ入力するかたちとなる。
Core Audioには、ハードウェアに近いレイヤーで動作する低レベルAPIが含まれ、レイテンシーの低さなど他のサウンドエンジンに比べ優れた点が多い。聴感上の違いはともかく、理屈のうえではコーデックを備えるCore Audioネイティブの機能で再生したほうが有利であり、その意味でiOS 11のFLAC再生は従来の実装形態よりも音質面で期待できると考えられる。
iTunesとの兼ね合いもある。現在のCore Audioは基本的にiOSとmacOSで共通であり、FLACサポートはmacOSの次バージョン(High Sierra)でも行われるため、Mac版iTunesでも対応する可能性は高い。iTunesで楽曲管理するユーザにとってはプラス材料といえるだろう。
ここまで読むと「やはりFLACネイティブサポートは一大トピックではないか」と早合点してしまいそうになるが、肝心なことをひとつ忘れている。「48kHz/24bitの壁」だ。
iOS 10の現在、Lightning経由でのオーディオ出力はCore Audioにより最大48kHz/24bitとされている。iOS 11の開発者向け文書およびサンプルコードを調べてみたが、この部分の仕様に変更はないらしく、Core Audioネイティブでハイレゾ品質のFLACをデコードしたところで、最終段では48kHz/24bitにダウンサンプリングされることになる。iPhone 7/7 Plus以降のiPhoneは、ワイヤレスを除けばLightning以外にオーディオ出力経路が存在しないため、USB Audioの信号として送出しないかぎりせっかくのFLACサポートも効力が薄れてしまう。
なお、iOSデバイスをMacのオーディオ入力ソースとして使う「Inter-Device Audio Mode」は、iOS 11でMIDIデータの送受信に対応した「Inter-Device Audio Mode+MIDI」へと進化するが、こちらもWWDCのセッションではオーディオフォーマットに言及されていなかったため、やはり48kHz/24bit/2chという仕様に変更がないことは確実な模様だ。Core AudioでFLACがネイティブサポートされたからといって、その情報量を存分に生かせるとは限らないことに留意したい。
■iOS 11でのFLACサポートが意味するところ
前回のレポートで触れずにいたが、iOS 11ではFLACがサポートされる。周囲の反応を見ると、ついにiOS/macOSでFLACがネイティブサポート、と歓迎ムードだ。確かに、それ自体はiPhone/ポータブルオーディオ、ひいてはオーディオファンにとってプラス材料といえるが……せっかくの機会なので、Core AudioなどiOSにおけるオーディオ再生の基本構造を踏まえ、解説してみたい。
まず、現時点でFLACの再生それ自体は、iOSデバイス上で支障なく行われている。FLACの再生に対応するオーディオ系アプリは「ONKYO HF Player」や「NePlayer」「VLC」など多数存在し、必ずアプリの情報画面にライセンスの表記がある。FLACはオープンソースソフトウェアであり、ライセンス(修正版BSDライセンス)に則っていれば改変および商業利用を含む再配布も自由に行えるからだ。デジタルオーディオにおける一種の公共財と言っていいだろう。
ただし、FLACはiOSにネイティブサポートされていないコーデックであり、アプリ側で(ライブラリなどの形で)独自に収録するしかない。iOSでは、複数のアプリが参照する(独自開発の)共有ライブラリは存在が許されないため、FLAC再生に対応するアプリを複数インストールしていれば、アプリごとにFLACデコーダを内包していることになり、そのぶんストレージを余分に消費してしまう。iOSがFLACをネイティブサポートすることは、ムダの排除という点ではメリットといえる。
iOS 11におけるFLACサポートとは、iOSにおいてオーディオ周りの機能が集積されたフレームワーク群「Core Audio」により再生できることを意味する。Core Audioの機能として、FLACのファイルフォーマットを認識し、コーデックとして利用可能になるのだ。これにサポートされないオーディオフォーマットは、デコード後にCore Audioへ入力するかたちとなる。
Core Audioには、ハードウェアに近いレイヤーで動作する低レベルAPIが含まれ、レイテンシーの低さなど他のサウンドエンジンに比べ優れた点が多い。聴感上の違いはともかく、理屈のうえではコーデックを備えるCore Audioネイティブの機能で再生したほうが有利であり、その意味でiOS 11のFLAC再生は従来の実装形態よりも音質面で期待できると考えられる。
iTunesとの兼ね合いもある。現在のCore Audioは基本的にiOSとmacOSで共通であり、FLACサポートはmacOSの次バージョン(High Sierra)でも行われるため、Mac版iTunesでも対応する可能性は高い。iTunesで楽曲管理するユーザにとってはプラス材料といえるだろう。
ここまで読むと「やはりFLACネイティブサポートは一大トピックではないか」と早合点してしまいそうになるが、肝心なことをひとつ忘れている。「48kHz/24bitの壁」だ。
iOS 10の現在、Lightning経由でのオーディオ出力はCore Audioにより最大48kHz/24bitとされている。iOS 11の開発者向け文書およびサンプルコードを調べてみたが、この部分の仕様に変更はないらしく、Core Audioネイティブでハイレゾ品質のFLACをデコードしたところで、最終段では48kHz/24bitにダウンサンプリングされることになる。iPhone 7/7 Plus以降のiPhoneは、ワイヤレスを除けばLightning以外にオーディオ出力経路が存在しないため、USB Audioの信号として送出しないかぎりせっかくのFLACサポートも効力が薄れてしまう。
なお、iOSデバイスをMacのオーディオ入力ソースとして使う「Inter-Device Audio Mode」は、iOS 11でMIDIデータの送受信に対応した「Inter-Device Audio Mode+MIDI」へと進化するが、こちらもWWDCのセッションではオーディオフォーマットに言及されていなかったため、やはり48kHz/24bit/2chという仕様に変更がないことは確実な模様だ。Core AudioでFLACがネイティブサポートされたからといって、その情報量を存分に生かせるとは限らないことに留意したい。