Appleが、macOSから削除したaptXコーデックについて

主題
Appleが、macOSから削除したaptXコーデックについて、周波数特性の点から議論したい。

結論
ffmpeg内蔵コーデックの元でと言う条件付きのものの、SBC、AAC、aptXの3者のコーデックで顕著な周波数特性の差は見られない。

背景
Appleは、macOS 12 Montereyから、BluetoothオーディオコーデックのひとつであるaptXのサポートを止めた。これについて筆者が確認した所、Appleは、公式には非公開と言う立場をとっている。

だが、筆者が使用するAudio-Technica社製イヤホンATH-CKS50TWでの接続結果や、こちらの記事にある通り、macOS MontereyにおいてaptX接続が出来ない(AACになる)のは明らかである。当初、この記事は、それを糾弾するために書くつもりだった。
しかし、筆者のレベルでの音質評価の結果、すべてffmpeg内蔵コーデックの元でと言う条件付きのものの、SBC、AAC、aptXの3者のコーデックで顕著な周波数特性の差は見られない結果となった。
Bluetoothオーディオコーデックには、もう一つ遅延と言う特性があり、諸手を上げてAppleを支持することは出来ないが、糾弾すべきことが起こったとも言えない。
よって、本記事自体、存在の意味が問われるのだが、あえて自分の思考の記録として残しておくことにする。

実施事項

  1. macOSにおける、Bluetoothオーディオコーデックのビットレートの把握
    すべてBluetooth Explorerを用いて実施した。Bluetooth Explorerは、macOS 12 Montereyでは、動かない。よって、これはmacOS 11 Big Sur上で行った。

    • SBCビットレート(327kbps)

      SBCビットレート

    • AACビットレート(256kbps)

      AACビットレート

    • aptXビットレート(384kbps)

      aptXビットレート

  2. ffmpegコマンド
    オーディオCDから元になる曲1曲を読み込み、ffmpeg内蔵コーデックでエンコード、それをWavにデコードした。
    ffmpegのバージョンは、N-107417-g940169b8aaである。

    • エンコードに用いたコマンド

      SBCエンコード

                              ffmpeg -i ND_Raw.wav -c:a sbc -b:a 327k test.sbc
                          

      AACエンコード

                              ffmpeg -i ND_Raw.wav -c:a aac -b:a 256k test.aac
                          

      aptXエンコード

                              ffmpeg -i ND_Raw.wav -c:a aptx -b:a 384k -ar 48000 test.sbc
                          
    • デコードに用いたコマンド

      SBCデコード

                              ffmpeg -i test.sbc sbc_Decode.wav
                          

      AACデコード

                              ffmpeg -i test.aac aac_Decode.wav
                          

      aptXデコード

                              ffmpeg -i test.aptx aptx_Decode.wav
                          
  3. WaveSpectraによる各コーデックの周波数特性
    ffmpegによって生成されたデコードされたデータを、WaveSpectraで再生、そのスクリーンショットを撮影したものが、以下の図である。

    • 比較用合成データ(55秒付近)
      元データ、sbc、aac、aptxの各グラフを重ねて、アニメーションGIF化した物である。

      比較用合成データ

    • Wav元データ(55秒付近)
      オーディオCDから読み込んだ元データである。

      Wave元データ

    • sbcデコードデータ(55秒付近)
      元データをffmpegにてsbcにエンコード、それをffmpegにてデコードしたデータである。

      sbcデコードデータ

    • aacデコードデータ(55秒付近)
      元データをffmpegにてaacにエンコード、それをffmpegにてデコードしたデータである。

      fdk_aacデコードデータ

    • aptxデコードデータ(55秒付近)
      元データをffmpegにてaptxにエンコード、それをffmpegにてデコードしたデータである。

      aptxデコードデータ

    • 比較用合成データ(終了時ピーク)
      元データ、sbc、aac、aptxの各グラフを重ねて、アニメーションGIF化した物である。

      比較用合成データ(終了時ピーク)

    • Wav元データ(終了時ピーク)
      元データの終了時ピークデータである。

      元データの終了時ピークデータ

    • sbcデコードデータ(終了時ピーク)
      元データをffmpegにてsbcにエンコード、それをffmpegにてデコードしたデータの終了時ピークデータである。

      sbcデータの終了時ピークデータ

    • aacデコードデータ(終了時ピーク)
      元データをffmpegにてaacにエンコード、それをffmpegにてデコードしたデータの終了時ピークデータである。

      aacデータの終了時ピークデータ

    • aptxデコードデータ(終了時ピーク)
      元データをffmpegにてaptxにエンコード、それをffmpegにてデコードしたデータの終了時ピークデータである。

      aptxデータの終了時ピークデータ

以上。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL