HMZ-T1の遅延測定(修正版2)
最近少し気になっていた有機ELヘッドマウントディスプレイHMZ-T1の遅延を測定してみました。
ゲーム系サイトのレビュー記事をいくつか読んで見たのですがいまいちわかりにくかったので。
一つ目は4gamerの記事
表示遅延は感覚的には2~3フレームとのこと、いやいや感覚って・・・。
二つ目はgame watchの記事
表示遅延が1フレーム以下とされている液晶との差から計算して、表示遅延は2フレーム程度。
一般的な液晶(2~4フレームの表示遅延)より速めとのこと。
こちらもモニターの表示遅延そのものは測定していません。
モニターへの映像の入力タイミングは専用の測定器等がないとわからない気がするので仕方ないのかなと思います。
しかしここでは諦めずに測定可能なキー入力から映像表示までの時間をもとに表示遅延を推定してみます。
ちなみに私は映像表示の仕組みに詳しいわけではないので間違いがあれば指摘して頂けると助かります。
それでは測定に使ったツールの写真から。やっつけで作った感が満載です。

ゲーム系サイトのレビュー記事をいくつか読んで見たのですがいまいちわかりにくかったので。
一つ目は4gamerの記事
表示遅延は感覚的には2~3フレームとのこと、いやいや感覚って・・・。
二つ目はgame watchの記事
表示遅延が1フレーム以下とされている液晶との差から計算して、表示遅延は2フレーム程度。
一般的な液晶(2~4フレームの表示遅延)より速めとのこと。
こちらもモニターの表示遅延そのものは測定していません。
モニターへの映像の入力タイミングは専用の測定器等がないとわからない気がするので仕方ないのかなと思います。
しかしここでは諦めずに測定可能なキー入力から映像表示までの時間をもとに表示遅延を推定してみます。
ちなみに私は映像表示の仕組みに詳しいわけではないので間違いがあれば指摘して頂けると助かります。
それでは測定に使ったツールの写真から。やっつけで作った感が満載です。

このツールを下図のように接続して使います。照度センサは左側の写真のように直接モニターに当てます。

測定の仕組みは次の通りです。
・マウスの左クリックをトリガーとしてUSBマイコンは3MHzのクロックのカウントを開始する。
・映像出力用のノートPCではペイントを使い左クリックで黒画像を白画像に塗りつぶす。
・照度センサが黒画像から白画像への変化を検知するとUSBマイコンはカウントを停止する。
・測定用のノートPCでUSBマイコンがカウントしたクロック数を読んで秒数に変換する。
測定される遅延はWebで調べた情報を参考にすると次のような感じになるようです。

3の表示遅延を求めるには測定したデータから1,2の値を引けばよいことになります。
ちなみにここでいう表示遅延は描画するフレームのデータ入力開始からそのフレームが表示されるまでの時間(モニターの応答速度を含む)です。
----------1回目の修正ここから----------
修正前の記事ではこの部分に間違いがあり、モニターの応答速度を含むといいながら測定値にほとんど含まれていませんでした。
照度センサの感度を高くしすぎていたために、下図の上段のようにモニターの明るさが変化しはじめてすぐのところまでを測定しており遅延が実際より小さくなっていました。
今回は照度センサの感度を調整し下図の下段のように照度センサの出力をモニターの明るさの変化に合わせて測定しています。

----------1回目の修正ここまで----------
記事の修正内容の説明はここまでで、表示遅延の求め方に戻ります。
1のキー入力から描画データ生成開始まで待ち時間はキー入力のタイミングによって0~1フレームの間で変化するらしいです。測定回数を増やして最小の値を取れば多分0付近になるはずです。
2の描画データの生成処理は描画処理の負荷により変化しPCのフレームバッファ方式では最低1フレームかかるとのことです。負荷を小さくするためにペイントの画像を40x20ピクセルにします。これくらいならきっと1フレームで処理が終わるんじゃないかと思います。
まとめると、ペイントの画像サイズを出来るだけ小さくし、測定回数を増やして最小の値を取り、そこから1フレーム分の値を引くと表示遅延が求められそうです。
とここで一つ問題が、普通のモニターは照度センサを直接画像に当てられるのでペイントの画像サイズを小さくできるのですが、HMZ-T1は当てられないので画面いっぱいを画像を使用する必要があります。
しかし画面いっぱいの画像を塗りつぶす処理は負荷が大きいようで測定値がかなり大きくなってしまいました。
----------2回目の修正ここから----------
そこで普通のモニターでも画面いっぱいの画像で測定を行い小さい画像との差分を求め、HMZ-T1の画面いっぱいの画像の測定値から引いてHMZ-T1の小さい画像での値に換算することとします。
修正前の換算値は測定回数が少なかったため誤差が大きくなっていました。そのため測定回数を増やしてやりなおしました。なお測定は高画質化機能等は全てオフにして行っています。
まず換算するための差分の検証から。LT-42WX70(液晶)とPVM-2541(有機EL)で小さい画像と画面いっぱいの画像でそれぞれ500回測定を行い最小値の差分を確認しました。
720pの差分は49ミリ秒弱、1080pの差分は110ミリ秒程度となっておりHMZ-T1の測定値から引けば換算できそうです。換算にはどちらを使ってもほとんど違いはありませんが、HMZ-T1は有機ELなのでPVM-2541の差分を使うこととしました。
以下が表示遅延の推定結果になります。各モニターとも500回程度測定した最小値から1フレーム(16.7ミリ秒)引いた値になります。
自分で言うのもなんですが表示遅延については非常に胡散臭い推定結果になっています。
720pと1080p入力でネイティブ解像度とそうでない場合の測定値がほぼ同一なことから、 全てのモニターでネイティブ解像度の場合でも何かしらの変換処理を行っていそうです。
どのモニターも表示遅延が小さいと謳ったものではないことを加味すると、 表示遅延の推定結果が小さすぎる気がします。
測定値については散々やり直して間違いなくなったはずなので、描画データの生成処理に最低1フレームかかるというのが間違いなのかもしれません。
描画データの生成処理が0になることはないので表示遅延はそれぞれ上の表の値から+1フレームの間の値になります。
まとめるとこんな感じでしょうか。
HMZ-T1の表示遅延はgame watchの記事にあった一般的な液晶の表示遅延(2~4フレーム)とほぼ同等、LT-42WX70(液晶)の表示遅延は若干小さめです。
PVM-2541(有機EL)はノートPC本体液晶より遅延が小さく無双状態です。
----------2回目の修正ここまで----------
一応確認のためにHDMI出力をHDMIスプリッタで2分配し、game watchの記事にあったLCDDelayCheckerを使って目視での比較もしてみました。
測定結果通りHMZ-T1がうちにあるモニターの中では一番遅れる感じでした。ただ私がシビアな入力のゲームをあまりやっていないからかもしれませんが、ゲームプレイ中に遅延が気になったことはありません。

測定の仕組みは次の通りです。
・マウスの左クリックをトリガーとしてUSBマイコンは3MHzのクロックのカウントを開始する。
・映像出力用のノートPCではペイントを使い左クリックで黒画像を白画像に塗りつぶす。
・照度センサが黒画像から白画像への変化を検知するとUSBマイコンはカウントを停止する。
・測定用のノートPCでUSBマイコンがカウントしたクロック数を読んで秒数に変換する。
測定される遅延はWebで調べた情報を参考にすると次のような感じになるようです。

3の表示遅延を求めるには測定したデータから1,2の値を引けばよいことになります。
ちなみにここでいう表示遅延は描画するフレームのデータ入力開始からそのフレームが表示されるまでの時間(モニターの応答速度を含む)です。
----------1回目の修正ここから----------
修正前の記事ではこの部分に間違いがあり、モニターの応答速度を含むといいながら測定値にほとんど含まれていませんでした。
照度センサの感度を高くしすぎていたために、下図の上段のようにモニターの明るさが変化しはじめてすぐのところまでを測定しており遅延が実際より小さくなっていました。
今回は照度センサの感度を調整し下図の下段のように照度センサの出力をモニターの明るさの変化に合わせて測定しています。

----------1回目の修正ここまで----------
記事の修正内容の説明はここまでで、表示遅延の求め方に戻ります。
1のキー入力から描画データ生成開始まで待ち時間はキー入力のタイミングによって0~1フレームの間で変化するらしいです。測定回数を増やして最小の値を取れば多分0付近になるはずです。
2の描画データの生成処理は描画処理の負荷により変化しPCのフレームバッファ方式では最低1フレームかかるとのことです。負荷を小さくするためにペイントの画像を40x20ピクセルにします。これくらいならきっと1フレームで処理が終わるんじゃないかと思います。
まとめると、ペイントの画像サイズを出来るだけ小さくし、測定回数を増やして最小の値を取り、そこから1フレーム分の値を引くと表示遅延が求められそうです。
とここで一つ問題が、普通のモニターは照度センサを直接画像に当てられるのでペイントの画像サイズを小さくできるのですが、HMZ-T1は当てられないので画面いっぱいを画像を使用する必要があります。
しかし画面いっぱいの画像を塗りつぶす処理は負荷が大きいようで測定値がかなり大きくなってしまいました。
----------2回目の修正ここから----------
そこで普通のモニターでも画面いっぱいの画像で測定を行い小さい画像との差分を求め、HMZ-T1の画面いっぱいの画像の測定値から引いてHMZ-T1の小さい画像での値に換算することとします。
修正前の換算値は測定回数が少なかったため誤差が大きくなっていました。そのため測定回数を増やしてやりなおしました。なお測定は高画質化機能等は全てオフにして行っています。
まず換算するための差分の検証から。LT-42WX70(液晶)とPVM-2541(有機EL)で小さい画像と画面いっぱいの画像でそれぞれ500回測定を行い最小値の差分を確認しました。
| モニター | 画面解像度 | 測定値 画像サイズ40x20 | 測定値 画像サイズ1280x720 | 差分 |
|---|---|---|---|---|
| LT-42WX70(液晶) | 720p | 44.3ミリ秒 | 93.2ミリ秒 | 48.9ミリ秒 |
| PVM-2541(有機EL) | 720p | 19.7ミリ秒 | 67.9ミリ秒 | 48.2ミリ秒 |
| モニター | 画面解像度 | 測定値 画像サイズ40x20 | 測定値 画像サイズ1920x1080 | 差分 |
| LT-42WX70(液晶) | 1080p | 43.5ミリ秒 | 154.3ミリ秒 | 110.8ミリ秒 |
| PVM-2541(有機EL) | 1080p | 20.0ミリ秒 | 128.1ミリ秒 | 108.1ミリ秒 |
720pの差分は49ミリ秒弱、1080pの差分は110ミリ秒程度となっておりHMZ-T1の測定値から引けば換算できそうです。換算にはどちらを使ってもほとんど違いはありませんが、HMZ-T1は有機ELなのでPVM-2541の差分を使うこととしました。
以下が表示遅延の推定結果になります。各モニターとも500回程度測定した最小値から1フレーム(16.7ミリ秒)引いた値になります。
| モニター | 画面解像度 | 画像サイズ | 測定値 | 表示遅延 (推定値) | 表示遅延 (フレーム換算) |
|---|---|---|---|---|---|
| HMZ-T1 | 720p | 40x20 | 58.9ミリ秒 (換算値) | 42.2ミリ秒 | 2.53フレーム |
| LT-42WX70(液晶) | 720p | 40x20 | 44.3ミリ秒 | 27.6ミリ秒 | 1.65フレーム |
| PVM-2541(有機EL) | 720p | 40x20 | 19.7ミリ秒 | 3.0ミリ秒 | 0.18フレーム |
| XPS M1330 ノートPC本体液晶(参考) | 1280x800 | 50x50 | 34.5ミリ秒 | 17.8ミリ秒 | 1.07フレーム |
| モニター | 画面解像度 | 画像サイズ | 測定値 | 表示遅延 (推定値) | 表示遅延 (フレーム換算) |
| HMZ-T1 | 1080p | 40x20 | 59.2ミリ秒 (換算値) | 42.5ミリ秒 | 2.54フレーム |
| LT-42WX70(液晶) | 1080p | 40x20 | 43.5ミリ秒 | 26.8ミリ秒 | 1.60フレーム |
| PVM-2541(有機EL) | 1080p | 40x20 | 20.0ミリ秒 | 3.3ミリ秒 | 0.20フレーム |
自分で言うのもなんですが表示遅延については非常に胡散臭い推定結果になっています。
720pと1080p入力でネイティブ解像度とそうでない場合の測定値がほぼ同一なことから、 全てのモニターでネイティブ解像度の場合でも何かしらの変換処理を行っていそうです。
どのモニターも表示遅延が小さいと謳ったものではないことを加味すると、 表示遅延の推定結果が小さすぎる気がします。
測定値については散々やり直して間違いなくなったはずなので、描画データの生成処理に最低1フレームかかるというのが間違いなのかもしれません。
描画データの生成処理が0になることはないので表示遅延はそれぞれ上の表の値から+1フレームの間の値になります。
まとめるとこんな感じでしょうか。
| モニター | 画面解像度 | 表示遅延 (フレーム換算) |
|---|---|---|
| HMZ-T1 | 720p | 2.53~3.53フレーム |
| LT-42WX70(液晶) | 720p | 1.65~2.65フレーム |
| PVM-2541(有機EL) | 720p | 0.18~1.18フレーム |
| XPS M1330 ノートPC本体液晶(参考) | 1280x800 | 1.07~2.07フレーム |
| モニター | 画面解像度 | 表示遅延 (フレーム換算) |
| HMZ-T1 | 1080p | 2.54~3.54フレーム |
| LT-42WX70(液晶) | 1080p | 1.60~2.60フレーム |
| PVM-2541(有機EL) | 1080p | 0.20~1.20フレーム |
HMZ-T1の表示遅延はgame watchの記事にあった一般的な液晶の表示遅延(2~4フレーム)とほぼ同等、LT-42WX70(液晶)の表示遅延は若干小さめです。
PVM-2541(有機EL)はノートPC本体液晶より遅延が小さく無双状態です。
----------2回目の修正ここまで----------
一応確認のためにHDMI出力をHDMIスプリッタで2分配し、game watchの記事にあったLCDDelayCheckerを使って目視での比較もしてみました。
測定結果通りHMZ-T1がうちにあるモニターの中では一番遅れる感じでした。ただ私がシビアな入力のゲームをあまりやっていないからかもしれませんが、ゲームプレイ中に遅延が気になったことはありません。



