大西洋を越えたpingは、ピクセルを画面に送信するよりも高速ですか?


809

ジョン・カーマックが ツイートし

IPパケットを画面にピクセルを送信するよりも速くヨーロッパに送信できます。それはどうですか?

そして、これがジョン・カーマックでなければ、「インターウェブは馬鹿げている」と申し立てます。

しかし、これはジョン・カーマックです。

どうしてこれが本当ですか?

ツイートで何が正確に意味されているかについての議論を避けるために、これは私が答えてもらいたいものです:

最良の場合、単一のIPパケットを米国のサーバーからヨーロッパのどこかに送信し、ソフトウェアがパケットをトリガーしてから、上記のソフトウェアが受信するまでの時間はどれくらいかかりますかドライバーレベル?

最適な場合、ドライバーレベルを超えるソフトウェアがそのピクセルの値を変更するポイントから測定されたピクセルが画面に表示されるのにどれくらい時間がかかりますか?


大西洋横断接続がお金で買える最高級の光ファイバーケーブルであり、JohnがISPのすぐ隣に座っていると仮定しても、データは依然としてIPパケットにエンコードされ、メインメモリからネットワークカードに到達する必要があります、そこから壁のケーブルを介して別の建物に移動し、おそらくそこにあるいくつかのサーバーを飛び越えて(ただし、単一のリレーが必要だと仮定しましょう)、海を横切って光子化し、光センサーによって電気インパルスに変換され、最後に別のネットワークカードによって解釈されます。停止しましょう。

ピクセルに関しては、これはPCIエクスプレススロットを介して送信される単純なマシンワードであり、バッファに書き込まれ、画面にフラッシュされます。「シングルピクセル」はおそらく画面バッファー全体がディスプレイに送信されるという事実を考慮しても、これがどのように遅くなるかはわかりません。ビットが「1つずつ」転送されるのではなく、それらの間の待ち時間なしで転送される連続した電気インパルスはありますか(右?)。


50
彼がクレイジーであるか、これは異常な状況です。ファイバー内の光の速度により、片道約60ミリ秒未満で米国からヨーロッパへデータを取得することはできません。ビデオカードは、17ミリ秒ごとにピクセルのまったく新しい画面を出力します。ダブルバッファリングを使用しても、パケットをかなり上回ることができます。
デビッドシュワルツ

84
@DavidSchwartz:あなたはGPUを単独で考えています。はい、GPUは60ミリ秒未満で多くの作業を実行できます。しかし、ジョンはモニターを含むチェーン全体について不平を言っています。画像データがモニターに送信されてから、画面に表示されるまで、どのくらいのレイテンシーが含まれているか知っていますか?17msの数字は意味がなく、無関係です。はい、GPUは17ミリ秒ごとに新しい画像を準備し、はい、画面は17ミリ秒ごとに新しい画像を表示します。しかし、それは、画像が表示される前にどれくらいの時間
経過し

24
彼はゲームプログラマーだ、と彼は言ったよりも速く、私は画面にピクセルを送信することができますので、おそらく遅延をレンダリングする3Dグラフィックスを占めていますか...?ほとんどのビデオゲームでは、これはかなり低いはずです。品質ではなくパフォーマンスを最適化します。そしてもちろん、彼がただ誇張している可能性は非常に高いです(明らかに、幸せだと言いましたか?)。
ボブ

19
Best Buyにしばらく行って、すべてのテレビを視聴します。すべてのテレビは同じ社内チャンネルに合わせて調整されています。明らかに同一のセットであっても、相互に比べて顕著な(おそらく4分の1秒)ラグがあります。しかし、それを超えて、UI内に「描画」サイクル全体を実装する必要があります(画像のいくつかの「レイヤー」を再レンダリングする必要がある場合があります)。そしてもちろん、3Dレンダリングなどが必要な場合は、大幅な遅延が発生します。
ダニエルRヒックス

4
問題の投機の余地はたくさんあります。J.Carmackが実際に何について話しているかを知らない限り、完璧な答えがあるとは思いません。たぶん彼のつぶやきは、彼が遭遇したいくつかの状況に関する単なる愚かなコメントだったのかもしれません。
バーン

回答:


1322

パケットをリモートホストに送信する時間は、pingによって報告される時間の半分であり、往復時間を測定します。

私が測定していたディスプレイは、PCに接続されたSony HMZ-T1ヘッドマウントディスプレイでした。

ディスプレイレイテンシを測定するために、ゲームコントローラーをポーリングするスピンループ内にある小さなプログラムを使用して、ボタンを押すたびに異なる色をクリアし、バッファーを交換します。240 fpsカメラでゲームコントローラーと画面の両方を示すビデオを録画し、ボタンが押されてから画面に変化が表示されるまでのフレーム数をカウントします。

ゲームコントローラーは250 Hzで更新されますが、入力パスのレイテンシを直接測定する方法はありません(これをパラレルポートに配線して、入出力命令を使用できるようにしたいです)。対照実験として、170 Hzの垂直リトレースで古いCRTディスプレイで同じテストを行います。Aeroおよびマルチモニターでは余分なレイテンシーが発生する可能性がありますが、最適な状態では、通常、ボタンがダウンした後、画面上のある時点から色の変化が見られます(vsyncは無効)。USB HID処理には8ミリ秒程度の遅延があるようですが、将来的にはこれをより適切に特定したいと思います。

デスクトップLCDモニターが画面に変化を示すのに10+ 240 Hzフレームを要することは珍しくありません。Sony HMZは平均で約18フレーム、つまり合計70ミリ秒以上でした。

これはマルチモニター設定であったため、ドライバーの障害はいくつかのフレームにあります。

一部のレイテンシはテクノロジーに固有のものです。LCDパネルは、テクノロジーによって異なりますが、実際に変更するのに4〜20ミリ秒かかります。シングルチップLCoSディスプレイは、1つのビデオフレームをバッファリングして、パックドピクセルからシーケンシャルカラープレーンに変換する必要があります。レーザーラスタディスプレイは、ラスタリターンから前後のスキャンパターンに変換するために、ある程度のバッファリングが必要です。フレームシーケンシャルまたは上下の分割ステレオ3Dディスプレイは、半分の時間でミッドフレームを更新できません。

eMagin Z800で実証されているように、OLEDディスプレイは最高の1つである必要があります。

ソニーのパフォーマンスが悪いのは、ソフトウェアエンジニアリングが不十分だからです。モーション補間などの一部のテレビ機能では、少なくとも1つのフレームをバッファリングする必要があり、さらに多くの利点があります。フローティングメニュー、フォーマット変換、コンテンツ保護などのその他の機能はストリーミング方式で実装できますが、簡単な方法は各サブシステム間でバッファリングすることです。 。

これは非常に残念なことですが、すべて修正可能です。将来の遅延については、ディスプレイメーカーにもっと頼りたいです。


216
過度のトピック外コメントに対してこの回答をロックする必要はありません。ジョンがこの答えを提供してくれたことに感激していますが、感謝、不信、または興奮を表す25件のコメントは必要ありません。ありがとうございました。
ヒンクル

28
USBトリガーは、おそらく低速USBデバイス(125usecのバスフレーム)として実行されており、最小8msの遅延が発生しています(ハードウェアの問題)。代わりにPS2キーボードをお試しください。
ボリス

4
@Marcus Lindblomを探して、読むということですか?この場合、彼がどのようにして彼の番号に到達したかは、その番号と同じくらい重要だと思います-ツイートに関する懐疑論は、別の番号を引用することによって対処されません。また、コンテキストが役立ちます-彼は、その最適でないソフトウェアを備えたこの特定のモニターに最も直接的に悩まされました。
ジェレミー

13
LCDメーカーが5ミリ秒の応答時間を要求すると言うと、生のパネルが変化するのにかかる時間かもしれませんが、モニターは実際に信号を駆動する前に信号をかなりバッファリングして処理する時間を追加しますLCD。それは、製造業者が虚偽/誤解を招く仕様を公開しているという意味ではありませんか?
-psusi


68

一部のモニターでは、かなりの入力ラグが発生する場合があります

安っぽいモニターとビデオカードのコンボに比べて、素晴らしいインターネット接続を可能にします

ソース:

コンソールゲーム:ラグファクター•ページ2

したがって、30FPSでは8フレーム/ 133ミリ秒のベースラインパフォーマンスが得られますが、ゲームが24FPSに落ちた2番目のクリップでは、トリガーを引いてからニコがショットガンの発射アニメーションを開始するまでに12フレーム/ 200ミリ秒の明確な遅延があります。それは200ミリ秒と画面からの追加の遅延です。痛い。

ディスプレイはさらに5〜10ミリ秒追加できます。

そのため、コンソールには最大210msの遅延が発生する可能性があります

また、Davidのコメントによると、パケットを送信するのに最適なケースは約70msです


1
-1 John Carmackがくだらないモニターやビデオカードを使用しているとは思わない。信頼できる情報源であなたの主張を参照してください。
バーン

14
申し訳ありませんが、私はまだこれが本当に質問に答えているのを見ていません。引用文は「トリガーを引く」ことを示しており、これは単にピクセルを画面に送信するよりも、入力処理、シーンレンダリングなどのはるかに多くの作業を意味します。また、人間の反応速度は、現代のハードウェアのパフォーマンスと比較して比較的粗末です。男がトリガーを引いたと考えてから実際に引くまでの時間がボトルネックになる可能性があります。
コンラッドルドルフ

2
リンクされた記事は、この分析の作成者がボタンが押されたときに正確に表示できる特別なデバイスを購入したことを示しているため、単に数字を入力しているとは思わない。
メリコス

11
@KonradRudolph:知覚はかなり奇妙なものです。脊髄から直接インパルスを読み取る実験的コントローラーに関する記事を少し前に読みました。クリックするのは自分の神経コマンドであったにもかかわらず、クリックする前にコンピューターが動作していると人々は感じるでしょう。
ザンリンクス

11
@Zan Lynx:これは既知の効果です。「ベンジャミンリベットの0.5秒遅延」のGoogle。人間の意識にはかなりの処理時間が必要です。今起こっていると思うことはすべて、実際には過去に起こったことです。すべての感覚が、0.5秒前のイベントの「統合されたマルチメディアエクスペリエンス」を提供しています。さらに、イベントは脳によって「タイムスタンプ」されているように見えます。被験者が感覚を同時に報告するために、直接的な脳刺激は触覚刺激に比べて遅延する必要があります!
カズ

35

モニターで入力ラグを示すのは非常に簡単で、液晶をcrtの隣に貼り付けて、画面を埋める時計またはアニメーションを表示して記録するだけです。1つは2秒以上遅れることがあります。それは、ゲーマーなどがより多くに気づいたので、LCDメーカーが厳しくしたものです。

例えば。Youtubeビデオ:入力遅延テストVizio VL420M

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.