✦AI

少なく送って、多く見る:デバイス上の超解像が、リモートデスクトップの帯域を半分にできる仕組み

ゲームの世界は、少なくレンダリングして、多く見る方法を見つけました。私たちは、同じ手法をリモートデスクトップに持ち込みます。デバイス上の小さなモデルが、半分のサイズのストリームから、4Kの映像を再構築するのです。

誰も語らない、帯域の問題

リモートデスクトップには、不都合な秘密があります。帯域を、大量に食うのです。

60 fpsでデスクトップをストリーミングすると、現代のコーデックでも、1080pで約3〜8 Mbps、4Kで8〜15 Mbpsかかります。光回線なら問題ありません。強い自宅のWi-Fiでも問題ありません。けれど、ホテルのWi-Fiに入ったり、スマートフォンのテザリングをしたり、混雑した都市のカフェで仕事をしようとすると、すべてが崩れます。

現在の解決策は、情けないほど単純です。帯域が落ちたら、品質を下げる。解像度を下げる。フレームレートを下げる。状況が良くなるまで、ぼやけた文字とカクカクした映像を受け入れる。すべてのリモートデスクトップアプリがそうしています。20年間、それが唯一の選択肢でした。

もっと良い方法があったとしたら?

状況が悪くなったときに品質を落とす、鮮明な1080pのストリームを送るかわりに、常に小さな1080pのストリームを送って、向こう側で4Kのように見せることができたら、どうでしょう。

それが、AI超解像です。そして、これはSFではありません。ゲームでは、何年も前から行われています。

超解像ストリーミングのパイプライン

ゲームからリモートデスクトップへの置き換えは、驚くほどすっきりしています。ゲームでは、低い解像度でレンダリングして、アップスケールします。ストリーミングでは、低い解像度でエンコードして、アップスケールします。左から右へ、端から端までの、4つの段階です。

超解像のパイプライン — 4つの段階
段階出力指標
01 · キャプチャネイティブ解像度のフレーム3840×2160 → 1920×1080、圧縮前
02 · エンコード1080pのH.265ストリームコーデック:HEVC · CBR 3 Mbps
03 · 送信WANで約3 Mbps帯域:3 Mbps · 遅延 ~20 ms
04 · アップスケール & 描画4K Metal / Vulkanの出力モデル:280 KB · 追加遅延 <3 ms

体感される鮮明さは同じで、帯域はおよそ4分の1です。しかもホストは、より小さな画像をエンコードするので、仕事量も減ります。CPU使用率は下がり、発熱は減り、ノートPCのバッテリーも長持ちします。

帯域の台帳 — 体感4Kを、3通りで
方式必要な帯域
現在 · ネイティブ4Kのストリーム~12 Mbps
現在 · 1080pのストリーム~5 Mbps
超解像あり · アップスケールした4K~3 Mbps

ゲーム業界は、すでにこれを解決した

2018年、NVIDIAは、DLSS(Deep Learning Super Sampling)を発表しました。その考え方は、信じられないほど魅力的なものでした。ゲームを低い解像度でレンダリングし、ニューラルネットワークで、ネイティブ解像度のように見えるまでアップスケールする。GPUの仕事は減って、見た目の品質は同じです。

ゲーマーは懐疑的でした。AIが生成した画像が、ネイティブにレンダリングされたピクセルと同じくらい美しく見えるなんて、あり得るのか。けれど、結果が物語っていました。2026年には、DLSS 4.5がトランスフォーマーモデルを使い、多くのプレイヤーがネイティブのレンダリングよりも、むしろ好む画像を生み出しています。エッジはより鮮明で、時間的な安定性は高く、アーティファクトは少なくなりました。

AMDはFSRで続きました。AppleはMetalFXを導入しました。IntelはXeSSを出しました。業界全体が、同じ洞察にたどり着いたのです。

最も賢いピクセルとは、レンダリングしなくて済むピクセルである。

ゲーム業界は、「これはおもちゃだ」から「これは必須だ」になるまで、約5年かかりました。リモートデスクトップは、まだ始まってすらいません。

デバイス上のAI、設計からプライベート

ここからが本当に面白いところで、AIがどう動くと思われるかとは、違う点でもあります。

超解像のモデルは、完全にお使いのデバイス上で動きます。クラウドでも、どこかのサーバーでもありません。手の中のスマートフォンやノートPCの上です。

最近のデバイスは、デバイス上のAIには、あきれるほど強力です。MシリーズのチップのAppleのNeural Engineは、毎秒15.8兆回の演算をこなします。最近のSnapdragonチップのQualcomm Hexagon NPUも、同じ水準です。これらの専用AIプロセッサーは、ほとんどの時間、遊んでいます。私たちは、それを働かせます。

推論は、デコードと表示の間の、描画のパイプラインの中で動きます。モデルは1080pのフレームを受け取り、4Kのフレームを出力します。遅延の予算は3ミリ秒未満で、それを守れないプロトタイプは出荷しません。

そして、すべてがローカルで動くので、

これは、Remioのプライバシー優先の考え方に沿っています。私たちは、データを求めません。画面の内容を見ることさえ望みません。デバイス上のAIなら、あなたが何をしているのかを文字どおり何も知らないまま、最先端の機能を届けられます。

これが、ネイティブアプリでしか動かない理由

ここが、すべてをつなぐ部分で、ネイティブにすることについて、記事を丸ごと1本書いた理由でもあります。

目に見える遅延を増やさずに、描画のパイプラインの中でニューラルネットワークを動かすには、次のものが必要です。

  1. Neural EngineやNPUへのアクセス。ネイティブのAPIが必要で、AppleではCoreML、AndroidではNNAPIです。Neural Engine向けのWeb APIはありません。Electronのアプリは、そこに届きません。
  2. GPUパイプラインとの統合。アップスケールしたフレームは、余計なコピーなしで、直接ディスプレイに渡さなければなりません。MetalとVulkanなら、それができます。WebGLでは、この水準の制御はできません。
  3. 3 ms未満のタイミング。リアルタイムのストリーミングのパイプラインでは、余計な1ミリ秒が響きます。JavaScriptのガベージコレクターだけでも、予測できない停止が起こりえます。ネイティブコードなら、決まったタイミングが得られます。

Electronのアプリなら、Chromiumのメディアパイプラインで映像をデコードし、フレームをJavaScriptに取り出し、なんとかしてNeural Engineを呼び出し(ネイティブのバインディングなしでは不可能です)、アップスケールしたフレームを受け取って、Chromiumのコンポジターを通して表示する必要があります。それぞれのステップが、遅延と複雑さを加えます。合計のオーバーヘッドは、おそらく15〜25 msで、リアルタイムの利用には遅すぎます。

ストリーミングのパイプラインでの超解像は、AIの問題にとどまりません。システムエンジニアリングの問題です。そして、システムエンジニアリングは、ネイティブコードを求めます。

Remioをつくり始めて2年、Electronベースのリモートデスクトップが、AIアップスケーリングを出荷していないのは、そのためです。望んでいないからではありません。アーキテクチャが、それを許さないのです。

技術的な課題と、その解決の方法

簡単だとは言いません。本物の課題があります。

モデルの遅延。モデルは、60 fpsで、1フレームあたり3 ms未満で動く必要があります。肥大化したアーキテクチャの余地は、まったくありません。私たちは、最適化された畳み込みモデルを使っています。トランスフォーマーは、フレームごとの推論には遅すぎるので使いません。そして、Neural Engineの実行ユニットに合わせて、特別に調整しています。

コンテンツの多様性。リモートデスクトップのコンテンツは、ゲームのコンテンツとは大きく異なります。文字、スプレッドシート、コードエディター、動画の再生、デザインツール。モデルは、そのすべてに対応する必要があります。自然画像だけでなく、デスクトップのUIの要素を特に含むデータセットで、学習させています。

時間的な安定性。フレームごとのアップスケーリングは、ちらつきの原因になりえます。ゲームでは、前のフレームの情報を再利用する、時間的な蓄積で解決しました。私たちも、似た手法を探っており、ビデオコーデックのモーションベクトルを、アップスケーリングのモデルに入力しています。

電力効率。スマートフォンで、ニューラルネットワークを毎秒60回動かすのは、高くつくように聞こえます。けれど、Neural Engineは、まさにこのために設計されており、行列演算ではGPUより電力効率が高いのです。初期の研究室でのプロトタイプでは、バッテリーの消費は、1桁のごくわずかな割合にとどまることが示されています。

率直な課題:ゲームより難しい理由

DLSSとゲームの超解像を、着想の源として話してきましたが、実際にそうです。しかし、誠実であるために、リモートデスクトップのアップスケーリングが、根本的により難しい問題である理由を説明する必要があります。

ゲームのDLSSには、不公平な利点があります。ゲームエンジンは、私たちの世界には存在しない、豊富なデータをAIに提供します。

つまり、ゲームの超解像は、豊富な補助データを使ったガイド付きの再構築です。リモートデスクトップのアップスケーリングは、劣化のある圧縮された映像からの、ブラインドな超解像で、はるかに難しい出発点です。

それは、このアプローチが間違っているという意味ではありません。低いビットレートでの見た目の品質が少し改善されるだけでも、本物の帯域の節約になります。ただ、率直にお伝えしたいのですが、ブラインドなアップスケーリングの品質の上限は、エンジンと完全に統合したDLSSが達成するものより低いのです。私たちは、実際に役立つものをつくっており、別の技術と同等だと主張しているわけではありません。

あなたにとって、何を意味するか

AI超解像がRemioで提供されても、それを意識する必要はありません。切り替えも、設定も、「AIモード」もありません。アプリが、自動的に、次のことを行います。

高速な接続では、アップスケールが必要ないかもしれません。遅い接続では、「使い物にならない」と、「目の前のコンピューターを使っているようだ」の違いを生むでしょう。

それが目標です。意識しなければならないAIではなく、すべてをただ良くするAI。静かに、プライベートに、すでにお持ちのデバイスの上で。

いま私たちは、これを探っています。日付の約束はなく、AIがリモートデスクトップをどこまで連れていけるかについての、ほかのアイデアとあわせてです。置き換えるストリームよりも文字が鮮明に保たれる場合にだけ、提供します。

少なく送って、多く見る。それが未来です。

✦質問

よくある質問

超解像で、どのくらいの帯域を節約できますか?
それが、私たちが追いかけている目標です。4Kのストリームには、現在、約12 Mbpsが必要です。1080pでエンコードしてデバイス上でアップスケールすれば、その何分の一かで、同程度の見た目の品質を実現できるかもしれません。研究室での数値が裏づけられるまで、何も提供しません。
デバイス上の超解像は、目に見える遅延を加えますか?
私たちが設計の目標にしている予算は、最新のAppleシリコンと最近のSnapdragonのNPUで、1フレームあたり数ミリ秒です。これは、60 fpsのストリームのフレーム間の時間の、ごく一部です。プロトタイプがそのラインを守れなければ、出荷しません。
なぜ、ネイティブアプリでしか動かないのですか?
リアルタイムのアップスケーリングには、Neural EngineやNPUへの直接のアクセスと、MetalやVulkanを通じたゼロコピーのGPU統合が必要です。ブラウザーやElectronのスタックは、必要なタイミングの予算で、それらのAPIに届きません。
画面の内容は、クラウドのサーバーに送られますか?
いいえ。設計は、完全にデバイス上です。アプリに同梱された小さなモデルで、すべての推論がローカルです。フレーム、埋め込み、モデルのトレースが、お使いのマシンの外に出ることはありません。
バッテリーを消耗しますか?
Neural Engineは、行列演算では、GPUよりはるかに電力効率が高いのです。初期の研究室でのプロトタイプでは、60 fpsで、1桁のわずかな消耗にとどまることが示されています。しかも、より小さなストリームによるデコードと無線のコストの低下で、相殺されることも多いです。提供は、それが維持されることを条件にしています。
NVIDIAのDLSSと同じものですか?
DLSSに着想を得ていますが、技術的にはより難しいものです。DLSSは、エンジンからモーションベクトルと深度を読み取ります。私たちは、圧縮された映像だけから作業することになります。つまり、ブラインドな超解像です。節約できる可能性は本物ですが、品質の上限は低くなります。
Remioアプリのアイコン

その土台を、ご自身で試してみてください

Remioは無料で、すべてのプラットフォームでネイティブで、エンドツーエンドで暗号化されています。AI超解像を載せることになる、同じ低遅延のパイプラインが、いまこの瞬間にも動いています。

無料で使えるデバイス上のAI設計からプライベート