clyde-ne45’s blog

clyde-ne45’s blog

PCゲームに関して

Pixel Clockとモニターのオーバークロック

以前の記事でPixel Clockという用語に少しばかり触れた。

clyde-ne45.hatenablog.com

いずれ記事にしたいと結ばれているので今回これについて書いてみる。今回まとめて解説するモニターのオーバークロックにも関わりが深く、雰囲気だけでも理解しておくと有益かと思う。

f:id:clyde-ne45:20200318062057j:plain

144Hzモニターで150Hzを目指そう

ラフに書いておくと、HDMIなどの接続方法ごとに異なるPixel Clock上限を超えない範囲でリフレッシュレートを上げていく、というのがモニターのオーバークロックとなる。またPixel Clockにはある意味無駄な部分があって、そこを削減して更に上を狙うことができる。

前半はPixel Clockの話題が続くことになる。

Pixel Clock (Dot Clock) とは

モニターの1ピクセルを表示するのに必要な時間の逆数。1秒間に表示できるピクセル総数ともいえる。解像度やリフレッシュレートに比例して大きくなる。単位をMHzで表す。Dot Clockとも呼ばれる。カタカナでピクセルクロック、ドットクロックとするものも多い。

PCとモニターを接続する端子によって上限が決まっている。たとえばHDMI 1.3/1.4では340MHz。

 

Pixel Clockの計算方法

をすべて掛けて求めることが出来る。たとえば解像度1920x1080、リフレッシュレート60HzのモニターのPixel Clockは

1920 \times 1080 \times 60 = 124,416,000

 124,416,000 = 124.416\mathrm{MHz}

として求められれば話は単純だが、これは誤り。大抵は148.50MHzである。なぜ124.416MHzではなく148.50MHzなのかという話へ進めていく。

 

見えないピクセルを数える

目視で数えてみても、自分のモニターのピクセル数は1920x1080で間違いないし、リフレッシュレートは60Hzに設定している。ほかに関わってくる値は何だろうか。

これには目視できないエリアが関係する。ブランキング期間 (非表示期間) と呼ばれるそれは、フロントポーチ、バックポーチ、同期パルス幅という3つのエリアに分かれている。

前回の記事で使ったCustom Resolution Utility (CRU) を用いてブランキング期間を確認してみたところと、ブランキング期間と表示エリアの位置関係のようなものを示した図が以下になる。

f:id:clyde-ne45:20200315225844p:plain
f:id:clyde-ne45:20200315201004j:plain
Custom Resolution Utilityで確認したパラメータとそれらの配置イメージ

右の図でいう青色部分、表示エリアがモニターとして働いている。それ以外は実際のモニターでは見えていない部分。しかしPixel Clockの計算には含める。

左のスクリーンショットで言えば、ActiveのHorizontal PixelsとVertical linesではなく、Totalの両数値を使う。Totalのピクセル数はActiveとBlankingの和で、BlankingはFront porch、Sync width、Back porchの和になっていることを確認する。

 

計算方法は正しくは

  • 水平のピクセル数 (水平の表示エリア + 水平フロントポーチ + 水平バックポーチ + 水平同期パルス幅)
  • 垂直のピクセル数 (ライン数) (垂直の表示エリア + 垂直フロントポーチ + 垂直バックポーチ + 垂直同期パルス幅)
  • リフレッシュレート

の掛け算であることが分かった。もう一度計算してみる。

 1920 + 88 + 148 + 44 = 2200

 1080 + 4 + 36 + 5 = 1125

 2200 \times 1125 \times 60 = 148,500,000

 148,500,000 = 148.50 \mathrm{MHz}

無事148.50MHzにたどり着いた。

 

ブランキング期間の決定

先ほど、解像度が1920x1080でリフレッシュレートが60HzであればPixel Clockは大抵148.50MHzであると書いた。ブランキング期間は何によって決まるのか。

これは規格化団体が決めているものがあるから、それに従ってメーカーが出荷前に設定するという話である。現在主流な規格にはVESA CVTCEA-861がある。しかし、もとはブラウン管ディスプレイの時代に必要だったもので、液晶ディスプレイが主流の今では形式的なものになりつつある。

このあたりの話はこの方のブログに詳しく取り上げられている。

PCディスプレイの信号タイミング基準について - Diary on wind

ただし144Hzのような高リフレッシュレートモニターは事情が異なる。自分の見聞きした範囲では、高リフレッシュレート動作時についての規定が存在しないのか、各メーカーが独自の設定を施していることが多いようだ。

また、やり方は後述するが、ブランキング期間を自分で設定することもできる。

Video TimingとEDID

ちなみに、ブランキング期間や表示解像度をまとめたものをVideo Timing、合計タイミング、パラメーター、Display Timingなどと呼ぶ。

Video TimingはEDID (Extended Display Identification Data) というデータ形式をとってモニターからPCへ渡されている。モニターの内部メモリに書き込まれた内容は編集できないが、渡されたEDIDの状態なら好みに編集してしまえる。これに注目したのがCRUであり、前回の記事での作業内容および以下の作業内容はCRUを利用したEDIDの編集といえる。

clyde-ne45.hatenablog.com

前回の記事。

モニターのオーバークロック (考え方)

ようやくモニターのオーバークロックに深く関係する内容になる。

いま、冒頭部分の

またPixel Clockにはある意味無駄な部分があって、そこを削減して更に上を狙うことができる。

について改めて考える。

ある意味無駄な部分とは何なのか理解できるよう解説してきたつもりだ。つまりこれはブランキング期間を指している。目には見えないところにいてPixel Clockを大きくしている存在なので、これを0にしてしまえれば無駄がない。しかし、Video Timingと呼ばれるだけあって諸々のタイミング調整に使う時間でもあり、小さすぎても不安定になる。

また、Pixel Clock上限を気にせずリフレッシュレートを増やすのはどうだろうか。144Hzモニターで240Hz動作が実現できれば夢はあるが、自分のモニターの場合は「範囲超過」と表示されて真っ暗になってしまう。少し上限を超えるくらいなら動作する場合もあるが、基本的にはリスキーらしい。

まとめると

  • Pixel Clock上限を超えない
  • 小さすぎて不安定にもならない
  • できるだけ小さい

を同時に満たすブランキング期間を設定するというのがモニターのオーバークロックにおける正解と考えられる。

 

モニターのオーバークロック (実際の手順)

今回はCustom Resolution Utility (CRU) 1.4.1を使う。以下のリンク先からダウンロードできる。リンク先ですべての操作方法について学べるので、今回の解説は必要部分のみにしたい。

www.monitortests.com

前回の記事と同じく、操作を間違えたりするとモニターが暗転したままになることがある。基本的には何も触らず20秒程度待てば自動で復帰する。それでもダメという場合、自分は電源3秒押しで強制シャットダウンしたり、今使っているものと違う端子で接続して復帰している。

間違った操作を保存してしまった場合はCRUに同梱されているreset-all.exeを起動してPCを再起動すると初期化できる。また、今の接続方法における自分のモニターのPixel Clock上限もCRUから確認できる。

f:id:clyde-ne45:20200318162405j:plain
f:id:clyde-ne45:20200318163910p:plain
f:id:clyde-ne45:20200318163915p:plain
reset-all.exeの場所とPixel Clockの確認方法

電源3秒押しはOSやPCパーツへのダメージが考えられる。またオーバークロックは負担をかける行為だ。今回の場合はモニターへの負担が大きい。最悪の場合はモニターやPCが壊れるリスクがある。これらを踏まえて、以下の手順に従う。手順では例として144Hzモニターを150Hzへとオーバークロックしている。

CRUのLCD Reducedプリセットを使う方法 (おすすめ)

LCD Reducedはブランキング期間を適切に低く設定したプリセットなので、自分で手打ちする必要がなくお手軽である。ここまで枕として書いてきたPixel Clockの知識についても、この方法では要求されない。

  1. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から60ヘルツに切り替えておく (念のため)
  2. CRUを起動してDetailed Resolutions欄のAddをクリックする
  3. TimingにLCD Reduced、Refresh rateに150を入力してOKをクリックする
  4. Detailed Resolutions欄内の操作2.で作った解像度設定を選択し、欄右下にある上向き矢印を押して一番上になるよう並べ替えてOKをクリックする
  5. PCを再起動する
  6. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から150ヘルツに切り替える
  7. 動作が正常であれば変更を維持するをクリックし、不安定であれば20秒程度放置してもとの設定に戻るのを待つ
f:id:clyde-ne45:20200318050600p:plain
f:id:clyde-ne45:20200318050607p:plain
f:id:clyde-ne45:20200318050615p:plain
Custom Resolution Utilityを手順通り操作したところ

150Hz動作が正常でさらに高いリフレッシュレートを設定する場合や、不安定でさらに低いリフレッシュレートを設定する場合、手順1.に戻り60Hzに切り替えて再開する。また手順2.でAddのかわりに前回作った解像度設定を選択しEditをクリックする。

CRUからManualで設定する方法 (上級者向け)

Manualはブランキング期間を自由に設定できる。CRUのLCD Reducedでは冗長だという場合、さらなるブランキング期間の最小化を図る方法はManualでの手打ち入力のみ。以下の手順はLCD Reducedを使う場合のものとほぼ同じになる。

  1. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から60ヘルツに切り替えておく (念のため)
  2. CRUを起動してDetailed Resolutions欄のAddをクリックする
  3. TimingにManualを選択し、Front porch、Sync width、Back porchに任意の値を入力、Refresh rateに150を入力してOKをクリックする
  4. Detailed Resolutions欄内の操作2.で作った解像度設定を選択し、欄右下にある上向き矢印を押して一番上になるよう並べ替えてOKをクリックする
  5. PCを再起動する
  6. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から150ヘルツに切り替える
  7. 動作が正常であれば変更を維持するをクリックし、不安定であれば20秒程度放置してもとの設定に戻るのを待つ

150Hz動作が正常でさらに高いリフレッシュレートを設定する場合や、不安定でさらに低いリフレッシュレートを設定する場合、手順1.に戻り60Hzに切り替えて再開する。また手順2.でAddのかわりに前回作った解像度設定を選択しEditをクリックする。

操作中のスクリーンショットLCD Reduced利用時とほぼ同様のため省略する。

 ちなみに、本来は144Hzモニターならまず145Hz、60Hzモニターならまず61Hzといった感じで、できるだけ細かく刻んで上げていくのがオーバークロックの基本である。

 

確認方法

以下のサイトにアクセスすると、一番上を流れていくUFOが現在のリフレッシュレートで動いているはず。

www.testufo.com

 

おわりに

「モニターのオーバークロック」のために、EDID、Pixel Clock、VESA CVTなどを含めて解説した。内容がとっ散らかった感はある。また誤解のないようできるだけ用語を省略しないようにしたが、これが災いしてより読みづらくなっているとも感じる。

参考までに自分のPC環境を書いておくと

  • GPUMSI Radeon RX580 ARMOR MK2 / Adrenalin 2020 20.1.4
  • 【モニター】LG 24GM77-B (144Hz) / DisplayPort 1.2? 接続

記事内容に関わりのある部分はこんなところ。この環境で、1920x1080@150Hz Timing : LCD Reducedでの動作までは確認した。145Hzの時点で動作したりしなかったりと不安定だったので、あまり踏み込めていない。

Radeon SoftwareやNVIDIA Control PanelからもCRUと似たような設定ができるので試してみて欲しいところ。

実際のところモニターのオーバークロックにおいてPixel Clock周りがシビアになるのはHDMI 1.3/1.4接続で144Hzから上を目指す場合だけのような気がする。ほかの接続方法は上限に十分余裕を持たせている傾向にあったり、WikipediaによればデュアルリンクDVIに至ってはそもそも上限を持たない。DisplayPortやデュアルリンクDVIでの接続の場合はほぼ端子、ケーブル、モニターのオーバークロック耐性次第。

ブランキング期間などよりPixel Clockに影響するエリアがある。表示エリアの解像度だ。理論上、ここを小さくしてしまえば、画質を犠牲に更なるリフレッシュレートを追求できる。ただし、半端な解像度をモニターが受け付けない場合があるという問題や、Pixel Clock的には余裕がある状態でもモニターの高リフレッシュレート耐性不足により不安定になるという問題がある。このあたりはメーカーやモニターによって異なる。