HDMIサラウンド音声フォーマットを手動で設定した場合の挙動の調査

平成最後の買い物ということで(Mac miniと)HDMIから光デジタルで音声信号を取り出すスプリッタを買ってきた。というか秋葉原にカレーショップC&Cが有るのにビックリした。アレ京王沿線じゃなくても良いのか。。

mac miniXcode用に一番安い奴(Core i3、128GiB)。Metal非対応機はもうサポート無いので。。特記事項なし。

買ってきたHDMI音声スプリッタはアエリア SD-HDSPRL 。

...このアダプタ自体はEDIDの書き換えによってSink機器のケーパビリティに依らずサラウンド音声をSource機器に出力させることができるが、 何故かDolby Digital Plusも見せてしまう ため多くの環境で手動設定が必要になっている。今回は、実は大抵の機器に備わっているサラウンド音声の再エンコード機能を活用してみることにする。

f:id:mjt:20190430051055p:plain

EDID上のオーディオの見え方は、例えばWindowsを使えば確認できる。ここで確認できるように、スイッチを"5.1CH"側に切り替えると、通常のPCモニタでもサラウンド音声が受信できるかのようなfakeを行ってくれる。この状況で、サラウンド音声を光デジタルから取り出すには手動で設定が必要なので、それぞれ設定して挙動を見てみた。

AppleTV

AppleTVはサポートページ https://support.apple.com/appletv/audio で言及されているように、"設定" → "ビデオとオーディオ" → "オーディオフォーマット" から設定できる。

f:id:mjt:20190430044254j:plain

この設定を行っても、通常のシステムUIは2chで出力され、手元ではPrimeVideoも2ch出力だった。再エンコードを良しとしていないんだろうか。。iTunes store側の映画トレイラーはDolby Digitalになったので、実装に依るのかもしれない。

FireTV

FireTVでは、"設定" → "ディスプレイとサウンド" → "オーディオ" → "サラウンド音響" → "常にDolby Digital" でDolby Digital出力を強制できる。

f:id:mjt:20190430045153j:plain

横にチェックマークが付いた状態になっていれば正常に設定されている。このスクリーンショットでは、この選択状態だとOffかのように読めるが、実際には、選択前には

選択すると "常にDolby Digital" がオンになります。

のように表記されている。これは誤訳ではなく英語UIでも同様の文言が表示されているため、単に仕様上の見落しだろう。

FireTVではAppleTVと異なり常時エンコードされる。更に、他の機器と異なり、システムUIではDolby Digital 2chエンコードされる。

f:id:mjt:20190430045534j:plain

手元のDP-1000だとDolby DigitalとDolby Pro Logic IIの両方が点灯する珍しい状況になる。

XboxOne

"設定" → "画面とサウンド" → "オーディオ出力" → (スピーカーオーディオ) "HDMIオーディオ" を "ビットストリーム出力" に設定し、更に "ビットストリーム形式" を"ドルビーデジタル" か "DTS" のどちらかに設定する。

f:id:mjt:20190430050233j:plain

XboxOneではシステムUIを含め基本的に全ての出力が8ch出力なため、常時Dolby Digital / DTSエンコードされることになる。ちなみに、PS4もほぼ同じ仕様となる(Atmosが無い)。

エンコード機能の挙動

というわけで、各社のサラウンド再エンコード機能の挙動を纏めると:

プラットフォーム AppleTV FireTV XboxOne/PS4
システムUI PCM AC-3 2ch AC-3/DTS 5.1ch
LPCMコンテンツ ? ? AC-3/DTS 5.1ch
Dolby Digital コンテンツ AC-3 5.1ch AC-3 5.1ch AC-3/DTS? 5.1ch

※ XboxOne/PS4はbitstream pass throughに対応しているため、DTS選択時にAC-3コンテンツを再生しようとした場合は再エンコードしないはずだが、手元ではそのような挙動にならなかった。 まだ設定が悪いかも しれない。

AppleTVは保守的に、必要の無い限り再エンコードを避けている。逆に、Amazon FireTVやゲーム機は 常に エンコードを掛けている。これは切り替え時に無音や雑音が入るのを嫌っていると考えられる。FireTVが2chDolby Digitalを採用した理由は謎で、ProLogicのようなマトリックスサラウンドを生かしたいのであれば、AppleTVのように2chコンテンツをLPCMにした方が合理的に思える。

ゲーム的に気になるのはサラウンドなLPCMコンテンツがどうなるのか。。Qiitaに書いたように https://qiita.com/okuoku/items/eb70c14def3c4122d7af リアルタイムDolby Digitalエンコードをしても良いかもしれないけど、面倒なので避けたい。多少ストアを見て廻った限りでは、LPCMサラウンドなアプリは皆無で、そもそも実装可能なのかもよくわかっていない。