(1/12 8:40)結論の遅延についての記述を修正しました。
(1/15 19:20)エンコード解像度の誤植を修正しました。
Oculus QuestでPCVRをプレイ可能なツールは主に4種類あります。
(有線)
Oculus Link: Oculus公式機能、現在はベータ版。USB3.0ケーブルが必要。
(無線、Oculus非公式、5GHz Wifi推奨)
Virtual Desktop: 有料1990円。安定性が高く多機能(フルRGB, コントローラー予測機能, VPN接続)。音声遅延が0.3秒ある。
ALVR: 無料・オープンソース。開発中断後も有志が更新を続けている。
Radeon ReLive for VR: 無料・AMD公式。AMD GPUのみ利用可能。
今回はOculusLink, Virtual Desktop, ALVRのパフォーマンスを、NVIDIA・AMD両環境で、設定別に画質・遅延・消費電力の3項目を比較します。
テスト方法
画質
SteamVR版VRChatワールド「VR Vision Test Lab」で文字識別テスト
遅延
SteamVR版BeatSaberホーム画面のコントローラーの動きとガーディアン上の赤い円の動きをscrcpyで録画、Quest Homeでの挙動と比較し遅延を計算
遅延は以下の動画と同様にして、フレーム数を数えて出しているため若干の誤差が想定される。
消費電力
”BeatSaber” Expert を3回プレイ時のバッテリー消費量から給電分を差し引いて計算
設定・環境
CPU Ryzen Threadripper 1900X
M/B ASUS ROG ZENITH EXTREME
MEM DDR4-3600 64GB@2666MHz
GPU GeForce RTX2070, Radeon RX5500XT
OS Windows10 Build 18363.535
Quest OS 12.0.0.226.469.188362039
Oculus App 12.0.0.306.268
Virtual Desktop 1.8.0
ALVR 2.4.0 Experimental v8
802.11n(5GHz),
チャンネル幅 20MHz/40MHz
ルーター IO-DATA WN-AX2033GR
距離 3m以内
SteamVR
VRChat: 内部解像度 2859x3162
Beat Saber: 内部解像度 1278x1414
ストリーミングツール
コーデックはすべてHEVC
Oculus Linkのビットレートは110Mbps固定(変更不可)
エンコード解像度は、
Oculus Link:2016x2016(デフォルト) / 2912x2016 / 4075x2016
Virtual Desktop: 3648x2016(変更不可)
ALVR: 5040x2800
その他の設定は次の通り。
結果
画質
縦軸は文字視認テストのレベル。
Oculus Linkは同じ結果だった。
ワールド作者の@wing_apさん提供の他HMDの結果は次の通り。
どのツール、どの設定でもRift S以上の画質が出ている。中設定以上ではすべてのツールでVive Pro 150%SS並みの画質となっている。
遅延
縦軸の単位はms。
Oculus Linkは同じ結果だった。
Oculus Linkが非常に低遅延であることがわかる。特にNVIDIAの低設定の遅延は0msと文句のつけようがない。
Virtual Desktopは49msとリズムゲーム以外であれば遅延が気になることはない。
ALVRは常に遅延が0.1秒ほどあるため非常に気になる。
消費電力
縦軸の単位は%
いずれも6分10秒ほどの電力消費量。どのツールも概ね5%前後の消費量を示した。
給電能力はケーブルによって異なるため長時間利用する際は注意したい。
(以下は6分10秒の給電能力)
Oculus Link 公式ケーブル: +6%
Anker 3mケーブル: +2%
モバイルバッテリー(Anker PowerCore 13400 Nintendo Switch Edition): +6%
Oculus Quest同梱ACアダプタ: +7%
結論
Oulus Linkは低遅延・高画質。
Virtual Desktopは中遅延・高画質。
ALVRは高遅延・高画質。
ビットレートよりエンコード解像度が遅延と画質に大きく影響する。
消費電力に大きな差はない。
Oculus Link
ケーブルによる遅延・画質の差はない。
給電能力は公式ケーブルの方が高い。
GeForceとRadeon
GeForce(RTX2070)とRadeon(RX5500XT)の画質の差はないが、遅延は僅かにGeForceが優れる。
補足
PCVRストリーミングツールはグラフィックボード内のグラフィック処理ユニットとは独立したハードウェアエンコーダーを利用して配信している。
GeForceはNVENCというHWエンコーダーを搭載しており、新しい世代ほど高画質・高パフォーマンスとなる。
RadeonはNavi世代のRDNAアーキテクチャより、新たにRadeon Multimedia EngineというHWエンコーダー・デコーダーを搭載し、以前のGCNアーキテクチャのVideo Coding Engineより高い性能を謳っている。RadeonについてはNavi世代以外は未検証なので注意してほしい。Video Coding Engineは3.0(Radeon 400シリーズ以降)からHEVCに対応している。
NVENCとRadeon Multimedia Engineの公式スペックは以下の通り。
NVENCは1080pでのパフォーマンス。
(出典)
NVIDIA Video Codec SDK Application Note - Encoder(2019/08版)
https://www.amd.com/system/files/documents/rdna-whitepaper.pdf
https://www.newegg.com/insider/what-is-navi-amds-new-rdna-architecture-explained/
https://www.techpowerup.com/256481/amd-navi-radeon-display-engine-and-multimedia-engine-detailed