Sousu's ARENA

[ DIYに戻る ]
マウスのセンサー感度が応答時間に影響する話
2022.04.1
新規作成
Abstract(概要)

マウスの移動センサーのdpi設定が応答時間に影響することを検証してみました。。

測定風景
Introduction(まえがき・序論)

みなさん、ゲーミングマウスのdpi設定はいくつにしていますか?

プロゲーマーも多用している1600dpi?旧来のマウス設定に沿って、400dpi?真ん中とって800dpiなんて設定もあるかな?

いろいろ流派があるみたいですが、結論から言うと、1600[dpi]以上にしましょうというのが、今回のお話です。



Materials and Methods(材料および方法)
fig.1:
測定JIG

測定機材自体は、ほぼClick Latencyの測定方法と同じで、スイッチを押す代わりに、センサー下に敷いたプラスチック片を動かすという仕組みです。 くわしくは、下記参考リンクに書きましたので、参照してください。

参考リンク:ゲーミングデバイスの応答速度が知りたい

Materials(測定方法)
測定プログラムはこちらです
HID Latency Checker(GitHub)

上記GitHubに置いているのはClick Latencyを測定するソフトですが、クリック検知の代わりに、マウスの移動を検知するように書き換えて測定しました。 プログラムの詳細も、同様に下記参考リンクに書きましたので、参照してください。

参考リンク:ゲーミングデバイスの応答速度が知りたい

Results(結果)

測定結果一覧です

測定は、有線マウス代表としてViper8k、無線のゲーミングマウスとして、Razer Vpier UltimateおよびLogicool GPRO X Super Lightnデータをとってみました。

結果は御覧の通り、移動センサーの応答時間は、dpi設定が高いほど早くなるようです。後述しますが、応答時間ばらつきも、dpi設定が高いほうが低くなります。

fig.2:
Viper 8KのLatency
fig.3:
Viper UltimateのLatency
fig.4:
GPRO X Super LightのLatency
Discussion(考察)
1.応答時間測定に影響する要素
応答時間の測定において、注意したのは下記のとおりです。

上記いずれも、過去の測定方法と基本的な制御や考え方は同じです。詳しくは下記参照ください。

参考リンク:ゲーミングデバイスの応答速度が知りたい

上記のような注意点を押さえておけば、いいはず、そう考えていた時期が、私にもありました・・・。

2.なぜdpi設定によって応答時間が異なるか??

この測定しているうちに、どうやら低dpiほど応答時間がばらついているようだとわかってきました。 そこで、高速マウスの代表Vpier 8kを使用し、測定間隔を0.1[ms]ずつ変化させて応答時間がどう変化するか確認してみました。(fig.5~fig.7)

データの横軸は、次の測定までのDelayであり、0.1[ms]ずつ長くして40[ms]から140[ms]まで変えています。このDelayの変更は、測定間隔を少しずつ長くして、測定のタイミングを少しずつずらす効果があります。

fig.5:
Viper 8KのLatency(100dpi)
fig.6:
Viper 8KのLatency(200dpi)
fig.7:
Viper 8KのLatency(1600dpi)

さて、データを見てみると、100[dpi]設定では約2[ms]差で波打つような波形になっているのがわかります。この波うちは、200[dpi]になると半減し、1600[dpi]ではほとんど確認できなくなっていることがわかります。

測定に使用したVpier 8kHzは、USBのポーリングレートを125[us]に設定することができるため、1[ms]未満の応答時間変動もとらえることができます。ですから、実際このようにばらついているのは確かなのでしょう。

では、なぜこんな波打ち(応答時間ばらつき)が出てくるのか?

波形データの違いから、低[dpi]ではセンサーのデータ取得可能周期が長くなっている可能性が考えられます。たとえば、100[dpi]では2[ms]幅で波打っていますから、データ取得周期が2[ms]になっているということです。 USBのポーリングレート設定と同じく、内部ポーリングレートが2[ms]なら2[ms]内はタイミングによって応答時間が変わり、取得波形のように波打つのも納得です。

ここからは想像ですが、低[dpi]ではマウスをゆっくり動かしたときに量子化誤差が大きくなることに関連しているかもしれません。たとえば、高速にポーリングすると、値が切り捨てられてしまいますので、思ったよりカーソルが動かない、なんてことになります。

昔のマウスはLatencyが8[ms](ポーリングレート125[Hz])と低速でしたから、 8msの間に移動データが蓄積されて、それほど問題にならなかったのでしょうが、 最近のマウスは1[ms](1000[Hz])が標準的であり、上記問題が発生しやすい環境にあると考えられます。

このため、dpi設定によっては、ある程度移動データをバッファリングしてPCに渡す必要があるのでしょう。 そして、そのあたりの制御により、dpiが低いほど応答時間が遅くなる、という現象につながったのかもしれません。

参考に、dpi別にViper 8KHzの測定タイミング別Latencyを一覧してみました。高dpiほどばらつきが減り、応答時間が全体的に早くなっているのがわかると思います(fig.8)。 このデータからも、ばらつきが少なくなる1600[dpi]以上を使えという話は、的を得ていると言えそうです。

fig.8:
Viper 8KのLatency(1600dpi)
Conclusion(結論・まとめ)

今回のテーマは、マウスのdpi設定で応答時間が変わるという噂は本当か?でした。

実は、最初はオカルト検証ぐらいの気持ちでした。噂は耳にしたことがありましたが、測定ミスなどによる都市伝説の可能性のほうが高いと考えていたため、正確に測定すれば違いは出ないはずでした。

しかし、その違いははっきりデータに現れ、センサーの応答速度ばらつきまで見えてきました。

dpi設定よる差は数[ms]であり、正直Latencyとして体感できるかどうかは微妙なところですが、確実に差はありそうです。 また、低dpiでは量子化誤差としてデータが消える(遅くなる)こともある、という可能性も、興味深いものでした。

今まで、マウスの検討はセンサー速度や、クリック応答時間など色々見てきましたが、奥が深いです。 また面白いマウスが出たら、何か測定してみたいものです。


[ DIYに戻る ]
inserted by FC2 system