今回は、PCゲームの世界で標準となりつつある「超解像技術」、NVIDIAのDLSS、AMDのFSR、IntelのXeSSについて解説します。これらの技術がどのようにしてピクセルを埋め、画質を維持しつつフレームレートを向上させているのか、その技術的背景を紐解いていきましょう。
目次
ゲームにおける超解像技術の基本コンセプト
超解像(アップスケール)技術は、字義どおりに言えば「低解像度の画像を高精細な画像に再構成する技術」であり、ビデオの高精細化や、最近ではAIで写真を高精細化する方法として実用に供されています。
昨今のゲームにおける超解像技術(DLSS、FSR、XeSS)も、やっていることとしては低解像度の画像を高精細な画像に再構成です。ただし、3Dグラフィックのゲームはもともと設定で様々な解像度に対応できるため、高解像度化は「本来不可能な高画質化をしている」というわけではありません。問題は高精細にすると遅くなることであり、DLSS、FSR、XeSSは実用的には「低負荷の低解像度描画に超解像技術を組み合わせることで、画質の低下を抑えつつ、フレームレート(FPS)を向上させる技術」と言えるでしょう。

フレームレートが向上するとしましたが、各社の技術は、おおよそ以下のような性能目標で調整されています。
- 画質重視モード: 約1.2倍のfps向上
- 速度重視モード: 約2倍のfps向上
- フレーム生成機能(ありの場合): 約3倍以上のfps向上
処理の仕組み
基本的な仕組みは非常にシンプルです。例としてXeSSのマニュアル1と2の図解から引用すると、
- 低解像度でレンダリング: GPU負荷を下げるため、3Dシーンを本来の解像度よりも小さく描画します。
- アップスケール処理: 小さく描画された画像を、ディスプレイの解像度に合わせて拡大(アップスケール)します。
- UIの合成: メニューや文字などのユーザーインターフェース(UI)は、ボヤけないように拡大後に最後に上書きします。
このアップスケール処理にかかる負荷は、高解像度で直接レンダリングする負荷よりも小さいため、トータルでの処理時間が短縮され、結果としてフレームレートが向上します。
ただし、この処理を行うにはゲーム側のプログラム対応が必須です。UI描画をアップスケーラーから外して最後に書く処理や、アップスケールを補助する処理の埋め込みなど、専用の実装が必要となるため、どんなゲームでもスイッチ一つで有効化できるわけではありません。
古典的な手法:平滑化・シャープ化フィルタ
まず、技術の進化を順を追って見ていきましょう。3D CGでは、仮想空間内の物体に自由に近づくことでき、近づいたらそのぶん大きく表示され、物体表面の模様(テクスチャ)もそれに合わせて引き延ばす必要がありました。最も古典的なニアレストネイバー法はドット絵のようにそのまま引き延ばします。そのままでは粗が目立つので、色の変化を滑らかに線形補完する平滑化手法、バイリニア法が次の主流になりました(ミップマップ等の説明は省きます)。
ただ平滑化をすると線がぼやけてもっさりした印象になります。そのため、平滑化に加え、輪郭強調(シャープ化)を行う手法、バイキュービック法やランチョス法が登場します。ゲームの超解像技術においても、初期の「FSR 1.0」などはこのアプローチを採用していました。

ただこれらは画像の見た目を整えるフィルタリング技術であり、潰れてしまった情報を復元するわけではありません。そのため、厳密には「超解像」とは呼べません。ゲーム内のアセットがフルHDが前提のゲームであれば、ネイティブ4Kでもどのみちバイリニア法でテクスチャを引き延ばすので粗が目立ちませんでしたが、4K前提の高解像度アセットを持つようになった今はこの方法は厳しくなっています。
現代の主流:時間蓄積カメラジター法
現在主流となっているDLSS 2.0以降やFSR 2.0以降、XeSSでは、共通して「ジター(Jitter)」という概念が登場します。この原理は以下の通りです。
通常、1画素(ピクセル)よりも細い線は、低解像度では潰れて見えなくなります。しかし、カメラ(視点)の位置をほんの僅か、1画素未満の単位でずらすと、その線が画素の境界をまたぐ瞬間に映り方が変化します。意図的にカメラを1画素未満の幅で振動させて複数のコマを撮影し、どの程度ずらすと線が描画されるピクセルが移り変わったか調べれば、1画素より細かい情報を推定できることになります(Baker & Kanade, 2002; Ben-Ezra et al., 2005; Huang & Tsai, 1984)。
ただし、その方法をやるために複数枚の画像をレンダリングするのは計算の手間が増えて本末転倒です。そのため、毎フレーム、カメラに異なる微細なブレ(ジター)を与え、現在のフレームと過去のフレームの情報を時系列的に合成することで行うようになりました。これにより、レンダリング回数を増やさずに、疑似的に高解像度な情報を復元します。
この方法では、単なる画像の引き伸ばしではなく、計算上の「真の解像度」に近い情報を復元できるようになります。実際のサンプルでも、輪郭強調フィルタでは再現できない「1画素未満の細い線」が復元可能であり、実用的な超解像技術と言えます。
ただし、この手法には副作用があります。過去のフレーム(時間の異なる絵)を合成するため、画面内の物体が激しく動くと情報の整合性が取れなくなり、ゴースト(残像)やモアレ(縞模様)が発生することがあります。動き検出で画像中で動いたオブジェクトを追跡するという方法で対策はなされているものの、FSR(3まで)やXeSS 1.0ではこの欠点は目立つものでしたし、現在でも相性の悪いタイトルではDLSSでも見られます。
機械学習の役割
DLSSは機械学習(Deep Learning)を売りにしており、実際に活用されています。ただ、その役割は世代により異なります。
初期(DLSS 1.0など): 高解像度でレンダリングしたの「正解画像」と低解像度レンダリングの画像をペアにして学習させ、低解像度レンダリングで失われた情報をAIに推測させて高解像度にしていました。この手法は本質的には静止画の拡大AIと同じです。しかし、これはゲームタイトルごとに個別の学習が必要という手間がありました。
現在(DLSS 2.0+, FSR 4+, XeSSなど): 現在の機械学習は、前述した時間蓄積カメラジター法の補正役を担っています。過去フレームとの合成時に発生するゴーストやチラつきを、動きベクトルなどの情報を元に高度に判断し、破綻しないようにピクセルを整えます。この方式により、汎用的な学習モデルが使えるようになり、ゲームごとの個別学習は不要になりました。
さらなる高速化:フレーム生成
DLSS 3.0+, FSR 3+, XeSS 2.0+では、さらなる高速化手法として「フレーム生成」が取り入れられています。これは、レンダリングされた「フレームA」と「フレームB」の間に、アルゴリズムが予測した中間フレームを挿入する技術です。
中間フレームといっても、単に2枚の画像を足して2で割るだけでは、クロスフェードと同じで物体が二重に見えるブレた映像になるだけです。そこで、以下の処理が行われます(Brox et al, 2004; Meyer et al, 2015; Niklaus et al, 2017)。
- フレーム間での物体の動き(モーションベクトル)を検出する
- ベクトルの中間地点(2等分点)を計算する
- 画像をメッシュ状に歪ませてコピーし、隙間を補完する(メッシュワープ、ないしモーフィング)
応用として、動きを2等分するだけでなく、3等分、4等分する「マルチフレーム生成」も可能です。この場合は生成する複数フレームで共通したモーションベクトルを使うので、使いまわすぶん計算負荷を抑えつつ見た目の滑らかさを大幅に向上させることができます。

課題:遅延の問題
フレーム生成には「遅延」という課題があります。現在主流のフレーム内挿 (interpolation)方式は、最新のフレームが完成した後に「一つ前のフレームとの間」を生成して差し込み、最新フレームをそのあとにずらします。つまり、モニターに映像が表示されるタイミングが必ず1〜2フレーム分遅れることになります。マウスやコントローラーの操作が画面に反映されるまでの時間が伸びるため、一瞬の反応速度を争う対戦ゲーム(FPSや格闘ゲーム)では敬遠される傾向にあります。(※これを緩和するために、NVIDIA Reflexのような低遅延化技術とセットで使われるのが一般的です)

未来予測(外挿)の難しさ
遅延をなくすために、過去の動きから「未来のフレーム」を予測する外挿(Extrapolation)という手法も研究されました。これなら表示順序を待つ必要がなく、遅延は増えません。しかし、複雑な動きをする物体の場合、内挿であれば雑な線形予測でも十分いい近似になるところ、外挿で未来位置を正確に予測するのは計算コストが非常に高く、高速化という本来の目的と矛盾してしまいます。そのため、現時点では実用化には至っておらず、内挿方式がスタンダードとなっています。
まとめ
現代の超解像技術は、平滑化・シャープ化フィルタから始まり、時間蓄積カメラジター法、さらにフレーム生成と進化してきました。
- 平滑化・シャープ化フィルタ: 簡易的だが画質に限界。
- 時間蓄積カメラジター法: 各フレームにジターを与えその情報を利用して高精細化するが、残像のリスクがある。
- フレーム生成: 中間コマを作り出し効果的にフレームレートを倍加させるが、遅延が発生する。
これらの特性を理解した上で、ゲームのジャンルや自分のPCスペックに合わせて設定を使い分けるのが良いでしょう。
引用文献
- Baker, S., & Kanade, T. (2002). Limits on Super-Resolution and How to Break Them. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(9), 1167-1183.
- Ben-Ezra, M., Zomet, A., & Nayar, S. K. (2005). Video super-resolution using controlled subpixel detector shifts. IEEE Transactions on Pattern Analysis and Machine Intelligence, 27(6), 977-987.
- Huang, T. S., & Tsai, R. (1984). Multi-Frame Image Restoration and Registration. In Advances in Computer Vision and Image Processing (Vol. 1, pp. 317-339).
- Brox, T., Bruhn, A., Papenberg, N., & Weickert, J. (2004). High accuracy optical flow estimation based on a theory for warping. In Proceedings of the 8th European Conference on Computer Vision (ECCV) (pp. 25-36).
- Meyer, S., Wulff, J., Djelouah, A., Stoll, I., & Elbaum, S. (2015). Phase-based frame interpolation for video. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 1410-1418).
- Niklaus, S., Mai, L., & Liu, F. (2017). Video frame interpolation via adaptive convolution. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 670-679).
この記事は筆者作成動画の再編集版です。
関連リンク
CPU情報 記事一覧
H428’s channel:渋谷H YouTubeチャンネル






コメント