2015年03月20日

AMD Freesyncがついにリリース。今更聞けないその仕組みをおさらい。



 ゲームのテアリングやスタッターを除去するというFreeSyncがついに4月よりリリースされる。それに合わせて各サイトもレビューを解禁したようだ




 しかしレビューでは、FreesyncのベンチなのにV-SYNCを同時にONにしていたり、V-SYNCをオンオフにした比較を行ったりしている。


 V-SYNCの代わりのための技術をなんでそんな風に使うのか?と思うかもしれない。

 その説明も兼ねて、FreeSync(G-SYNC)とは一体どういうものなのかをおさらいしてみたい。




FreeSyncってどういう技術?


 あえて誤解を招く発言をさせてもらうが、、

 FreeSyncは同期技術ではない。



 FreeSyncを端的に同期技術と言ってしまうとその仕組みや特徴を見誤ってしまう。



 とりあえず、ディスプレイの可変リフレッシュレートを実現する技術である。ということを踏まえてもらいたい。こちらの方がその特性も理解しやすいのだ。

 そしてGPU主導の同期というのは、ゲームに合わせてディスプレイのリフレッシュレートを変化させることで実現している。これがFreesyncのコンセプトだ。







可変リフレッシュレートの仕組み


 その仕組みとは、モニターのVBI(Vertical blanking intervalまたはvBlank)のタイミングを可変させることで実現している。


 とりあえずここでは、VBIは”ディスプレイの次の描画が行われるタイミング”だと思ってもらえばいい。

 リフレッシュレートが60Hzのモニターであれば、VBI同士の間隔は16.7ms(ミリ秒)。30Hzであれば、33.3msという具合だ。そしてこのVBIのタイミングが固定されているのが従来のディスプレイだ。

(VBIは正確には、フレームの最後の走査線の終わりと、次のフレームの最初の走査線が始まる間にある時間のこと。)


AMD FreeSync stutter.jpg
この用に従来のモニターは、GPUに合わせてVBIやリフレッシュレートが変化するということはない。



 PC側はこのVBIの間で画像処理を行って映像信号を出力し、それを受け取ったディスプレイはVBIのタイミングに従って描画を行っている、


 そしてこのVBIを可変にし、PC側の信号と同時に描画ができるようになったのが可変リフレッシュレートディスプレイである。

 Freesync(G-SYNC)対応ディスプレイがそれにあたるというわけだ。

2000572596.jpeg




G-Sync-02.jpg
GPUに合わせてVBIがディレイしている図。(G-SYNC)



 FreeSyncとV-SYNCが併用できるのも、(V-SYNC)ゲーム側がディスプレイに合わせる一方で、(FreeSync)ディスプレイ側がゲームに合わせてリフレッシュレートを変えている。というだけである。

 なので、FreeSync(G-SYNC)やVRRモニター自体は、従来とは別物の技術というよりも、既存のGPUレンダリングをチューニングしたものに過ぎない。







可変リフレッシュレートでないといけない理由。


 ゲーム側のフレームレートとリフレッシュレートが一致しないと様々な問題が起こるが、そのためになぜディスプレイの可変リフレッシュレートが必要になったのか?

 そもそも様々な要因でフレームレートが大きく変化するゲームのレンダリングを、ディスプレイ側に完全に同期させるのは困難なのである。




AMD FreeSync tearing.jpg
テアリング:
ゲーム側のフレームレートがディスプレイのリフレッシュレートを上回った時に起こる現象。異なるフレームが同一画面上に混在するという現象が起こる。ゲーム画面が崩れたり、横に寸断されたような感じになるのはこれ。




 テアリングを防ぐのには、理論上V-SYNCさえあれば問題がないはずである。

 しかし一方で、V-SYNCはマウスの遅延やスタッターを引き起こす。

Stutter.jpg
スタッター、ヒッチ:
ゲーム側のフレームレートがディスプレイのリフレッシュレートを下回った時に起こる現象。レンダリングの信号がVBIに追いつかないために、ディスプレイが同じフレームを再度描写しようとする。ゲーム画面がストップしたり、場面が飛んだりするのがこれだ。



 高いフレームレートを持つディスプレイを用意して、テアリングを解消するという方法もあるが、完全に取り除くのは不可能だ。


tearing2.jpg
 リフレッシュレートを高くしても、細かいフレームレートの変化には対応できない。



 FreeSyncやG-SYNCではこの発想を転換し、モニターのリフレッシュをGPU側の用意に合わせることで同期の問題の解消を試みたのである。

 ゲームのフレーム更新が16msで行われるのであれば、ディスプレイは即座に応答する。それが25ms必要だったり、10msだけなのであれば、ディスプレイがGPUのフレーム更新を待つようにさせる。

 結果として同期が安定し、アニメーションが滑らかになる、スタッターやテアリングが取り除かれる、というのはこのような仕組みからなのだ。








続き:G-syncとFreesyncの比較とか(PCperspective)






内容は、PCperの要約です。




posted by 日々さか@海外 at 22:11| Comment(2) | TrackBack(0) | AMD | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ここらへん分かってたようで分かっていなかったので、
読んでて楽しいです。
Posted by Tyz at 2015年03月22日 01:52
ありがとうございます。

4gamerさんの記事読んでてFreesync(G-SYNC)って誤解されやすい部分があるなと感じたので。

ひたすら可変リフレッシュレートを強調した記事があるとわかりやすいかな〜と。


Freesyncでテアリングが起こる原因やV-SYNCが使用できたりする理由とかもわかってもらえたらなと思います。


Posted by ひびさか at 2015年03月22日 10:35
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/415971762

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。