- ゲームストリーミングでは、極めて低い遅延が必須条件となる
- PyroWave は モーション予測とエントロピー符号化を排除し、極限の速度を実現している
- **離散ウェーブレット変換(DWT)**ベースの方式で、従来の DCT コーデックと差別化されている
- 32×32 ブロック単位の並列処理と高速なレート制御の実装により、GPU でのエンコード/デコードが非常に高速
- 品質評価では H.264/HEVC/AV1 などとの比較でも、特定の状況で十分な結果を示している
ゲームストリーミングにおける超低遅延要件と既存方式の限界
- 近年、ゲームプレイのストリーミング需要が増加する中、ネットワーク経由である機器から別の機器へリアルタイム伝送する重要性が高まっている
- DMA、レンダリング、エンコード、送信、デコード、画面出力まで、各段階で積み重なる遅延が体験全体に大きく影響する
- 従来の解決策は、H.264、HEVC、AV1 などの GPU アクセラレーション対応ビデオコーデックを使うことだった
- しかしストリーミングでは、B フレームなどの高圧縮技術を使えず、レイテンシおよびビットレートの制約が厳しくなる
設計思想:モーション予測とエントロピー符号化の排除
モーション予測の排除 – Intra-Only 方式
- 既存のビデオコーデックにおけるモーション予測を排除し、すべてのフレームを個別に扱う
- その結果ビットレートは上昇するが、エラー耐性、単純さ、品質の一貫性などで利点がある
- デジタルシネマなどでも Intra-only 方式の利用実績がある
- このためインターネット配信には不向きだが、LAN などの高帯域環境では良い結果が期待できる
エントロピー符号化の排除
- エントロピー符号化は GPU の並列処理と相性が悪いため、全面的に除外した
- ASIC 専用や特殊機器向けにしか存在しなかった領域を、ソフトウェア方式で実現した
- FFmpeg にはない超低遅延コーデックという分野を切り開いた
ウェーブレット変換(DWT)を活用した新しいアプローチ
- 既存コーデックの DCT の代わりに、**離散ウェーブレット変換(DWT)**を採用
- ウェーブレット変換は、グラフィックスプログラマになじみ深い mip-map 構造に似ている
- 画像を複数の帯域に分離し、各帯域ごとに量子化を適用する
- 高周波帯域はより強く量子化し、視覚特性を最大限に活用する
- この過程はレート制御(rate control)とも連動している
ウェーブレットベースコーデック特有のアーティファクトと限界
- JPEG のブロッキングアーティファクトの代わりに、ウェーブレットでは主にぼやけやリンギングが発生する
- 最近のゲームで見られる TAA によるぼやけ効果とも重なるため、実際には大きな問題ではない可能性がある
高速ビットストリームパッキングと並列化
- 32×32 の係数ブロックを独立して処理し、パケット損失時の影響を局所的なぼやけのみに抑える
- 8×8、4×2 の下位ブロック構成を通じて、GPU ワークグループ単位の並列処理に最適化
- ビットプレーン符号化を用いながらも、複雑なエントロピー符号化なしで生のビットデータを保存する
- SSBO 8 ビット保存など GPU フレンドリーな方式により、メモリ効率と処理速度を最大化する
正確で高速なレート制御
- 従来のエントロピー符号化方式と異なり、各ブロックごとに省略ビット数を反復的に測定・保存して適切に比率を調整する
- 全体として最適なレート・ディストーション区間を算出し、CBR を厳密に順守する
- ウェーブレット系コーデックの強みであるビットプレーンごとの早期打ち切りを、ソフトウェアでも実現している
実際の性能と効率
- 1080p 4:2:0 を基準に、RX 9070 XT GPU で 0.13ms でエンコード/デコードを完了
- DWT、量子化など各処理工程で FP16 最適化を活用し、品質と速度のトレードオフを体感できる
- 4K 映像でも、PCI-e 転送速度よりGPU で圧縮してから転送する方が速いという実験結果が確認された
- 専用ハードウェアコーデックより最大 10 倍以上高速な処理を実現した
品質評価と他コーデックとの比較
- 比較対象:FFmpeg の GPU エンコーダ(H.264/HEVC/AV1)で、Intra-only、CBR、最小遅延モード
- PyroWave は 200Mbps、60fps 条件で、目視では圧縮アーティファクトをほとんど見分けられない
- さまざまなゲームシーンに対して、VMAF、SSIM、PSNR などの客観的品質指標でも十分な結果を確保している
- 特定の指標(VMAF など)は PyroWave をやや好意的に評価する一方、PSNR などでは内部精度の影響が表れる
- 画像にぼやけや低品質なアーティファクトはあるものの、現代的なゲームビジュアルと用途を踏まえれば、実用上大きな問題はない
結論
- PyroWave は、超低遅延かつ高速処理が求められるローカルゲームストリーミング分野で革新的な代替案を提示している
- 最新の GPU アーキテクチャと組み合わせることで、並列処理と CBR 制御に特化している
- 個人的なプロジェクトではあるが、DIY 超高速ストリーミングソリューションとして満足度は高い
1件のコメント
Hacker Newsのコメント
BBCが開発した、イントラ専用のウェーブレットベース超低遅延コーデック VC-2 について語っている。このコーデックはロイヤリティフリーで利用でき、現時点では ffmpeg と BBC公式リポジトリに CPU ベース実装しか存在しない。自身の修士論文として CUDA アクセラレーション版を作る予定だという。昨年の GSoC で進められた Vulkan 実装はまだ満足のいくものではない。ぜひこのコーデックを見てほしいと勧めている
この記事は、信号特性に対して許容できる歪みとトレードオフをうまく対応づけて説明した優れた例だ。コーデックを設計する立場でなく選定する立場であっても、このプロセスをたどればよい結果を得られる。超低遅延が重要な分野に興味があるなら、VSF が複数の代替コーデックの特徴を整理したレポート(リンク)が参考になる
私は動画エンコードについてほとんど知らないが、エンコーダがゲームエンジンと少しでも協調できれば、ビデオゲーム配信で見落とされている実用的なアプローチがたくさんあると思う。たとえば多くのレンダリングエンジンには独自用途のモーション予測バッファがすでにあり、これをエンコードにもただで使える。しかし、発明を阻む特許がありそうで、実際には難しいのではないかと残念がっている
LLM(大規模言語モデル)でゲーム内状況を毎フレーム数文に要約してネットワーク送信し、受信側の LLM がそのテキストからフレームを再構成するアプローチを提案している。リアルタイムは難しく損失も大きいが、圧縮率は非常に高く、最新トレンドにも合っていると述べている
このコーデック方式は、自分が研究プロジェクトで使おうとしていたものとほぼ一致する。参考までに、商用プロジェクトでは特許プールの問題から、有償標準の JPEG-XS(リンク1, リンク2) も超低遅延をうたっており、より安全な選択肢かもしれないと案内している
VLC の創業者が超低遅延ストリーミングプロトコルを開発中だとして、インタビュー(リンク)とデモ動画(リンク)を共有している
この CODEC が HTJ2K(High-Throughput JPEG 2000)と同系統のアルゴリズムに基づいていると認識しており、もし筆者が見ていれば、HTJ2K との違いを説明してもらえると面白そうだと述べている
ローカルネットワーク配信に絞るなら、最新コーデックの多くの機能は不要だと説明している。帯域を 100Mbps 程度確保できるなら、処理速度を速くして遅延も小さくできる。例として Microsoft DXT コーデックは最新コーデック機能をほとんど持たないが(エントロピー符号化、動き補償、デブロッキングなし)、4~8 倍圧縮でハードウェアデコードが可能なため、全体遅延の短縮に有利だと述べている。ただし、最適化してもディスプレイ自体で 30~100ms の追加遅延が発生する点を指摘している
開発結果は本当に驚くべきもので、いつか Moonlight や類似プロジェクトに適用される日を期待していると述べている
このコーデックはまだなじみが薄く専門的な分野なので、競合コーデックとの比較資料を見つけにくいという意見を引用しつつ、H.264/AVC(ゼロ遅延 ffmpeg オプション)や JPEG XS とのベンチマークが気になると述べている。ffmpeg コマンド例と詳細なエンコードパラメータまで共有している