macOS Big Sur 11 Beta 4でYouTubeが4K HDRで再生できる理由
https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11-beta-release-notes/
Support for 4K HDR playback of YouTube videos. (64824895)
先日リリースされた macOS Big Sur 11 Beta 4 では、Safariが更新され、YouTubeの4K HDR再生がサポートされました。
Apple TVでもYouTubeの4K HDR再生がサポートされる話は今年のWWDCで発表されましたが、macOSにも入ったようです。
ご存知ない方もいるかと思いますが、これまでmacOSやiOSなどでYouTubeの4K再生は不可能でした。
これはGoogleが4Kのビデオに対してVP9と呼ばれるコーデックを使っているためです。
しかし、AppleはVP9のビデオに対してハードウェアで再生する術がこれまではなく、iOSのYouTubeアプリではソフトウェアでデコードしていたみたいです。
Appleとしては、Googleらが推進するVP9ではなく、MPEGが推進するH.265/HEVCを使ってきました。そのため、これまでAVPlayerなどでVP9のビデオは再生できませんでした。Appleの立場としては4K HDRはH.265/HEVCを使って欲しいみたいです。
そんな中、macOS Big Surでは事態が一転します。
macOS 11.0 beta 4からVideoToolboxに VTRegisterSupplementalVideoDecoderIfAvailable が追加されました。
これはハードウェアのデコーダーにアクセスするためのAPIです。
ここにCMVideoCodecTypeである kCMVideoCodecType_VP9を渡すと、ハードウェアでVP9をデコードしてくれるようになります。
1 | // CMVideoCodecTypeのリストにないみたいなので決め打ち |
Intel CPUだとSkylake世代以降でVP9のハードウェアデコードがサポートされているようですが、それ以前のものや一部CPUではハードウェアデコードが非対応な場合もあります。その場合は VTRegisterSupplementalVideoDecoderIfAvailable を使っても再生できないようです。
冒頭でも話したSafariのYouTube 4K HDRのサポートは WebKit のソースコード を見て頂くと、何をしているのか分かると思います。
というわけで、YouTubeの4K HDRはハードウェアデコードをしていました!
AppleもAV1を推進していくAlliance for Open Media(AOMedia)に参加しており、今後AV1のサポートも入ってきそうですね。