Search

簡易遅延計測


ic_launcher
Android app on Google Play

Android 2.3 or higher

どんなアプリ?

  • HDMI出力機能のある端末を使って液晶モニタの遅延を簡易的に計測できるツールアプリです。

使い方

  1. 端末と液晶モニタをHDMIケーブルで接続しアプリをスタート
  2. デジカメなどで端末の画面と液晶モニタの画面を一緒に撮影
  3. 画像上でフレームのズレを数えて遅延フレーム数を推定

必要な機器

  • HDMI出力可能な端末
  • HDMIケーブル
  • 測定したい液晶モニタなど
  • デジカメなどの撮影機器

画面構成と動作原理

白い四角いマーカー

  • 画面周囲に配置された12個の四角いマーカーが、1フレーム毎に時計回りに順次表示されます(60フレームで5周)。
  • 外部出力された液晶モニタの遅延がゼロだと仮定すると、端末の画面と同じ位置に四角いマーカーが表示されます。もし遅延があればその分遅れた位置に四角いマーカーが表示されるでしょう。端末と液晶モニタの画面が同時に写るように画像を撮影し、その位置の差を数えることで、液晶モニタの遅延の程度を推定します。
  • 四角いマーカー上に表示される数字は内部処理時間ですが、事実上マルチバッファリングのブロッキング時間を計っているだけで、それほど意味はありません。ただし、この数字が安定しない状態では、計測結果の誤差が大きくなる可能性があります。

フレームレート

  • 画面中央左には動作フレームレートを青で表示します。
  • 基本的には端末のリフレッシュレートで動作します。
  • 同期処理は単純にSurfaceViewのバッファブロッキングを利用して行っています。
  • 取得リフレッシュレート値が異常だったりリフレッシュレート値での描画更新が間に合っていない状況を検知すると、推定モードで動作します。推定モード時は”*”マークが付き、描画可能な最高速フレームレートで動作します。この場合、同じフレームを再度描画するフレーム被りが発生する可能性があります。

欠落フレーム数

  • 画面中央左には60フレームあたりの欠落フレーム数を赤で表示します。
  • 端末性能やGCの発生などにより描画が間に合わず欠落フレームが発生すると、四角いマーカーの表示位置がスキップしてしまい、計測時の画像判定に影響が出る可能性があります。

テキスト表示

  • 画面中央には入力テキストを黄色で表示可能です。
  • モニタのモード設定名などを入力して表示させておくと、後の映像確認時に混乱を防止できます。
  • テキストはオプションメニューの設定項目から入力できます。
  • オプションメニューは画面タップでも開きます。

ポイント

  • できるけだけ描画性能が高く表示が安定した端末をご使用ください。
  • できるだけシャッタースピードの速い撮影機器をご使用ください。
  • 原理的に1枚の映像から読み取れる遅延時間は、単純に1フレームの整数倍単位となります。そのため、多数のデータを統計処理することで遅延の推定精度を上げます。動画を撮影してコマ送りで調べる手法を推奨します。例) 撮影した動画を10コマ調べ、遅延1フレームが7コマ、遅延2フレームが2コマ、遅延3フレームが1コマなら、平均1.4フレーム遅延と推定。
  • 予め正確な遅延時間が判明しているモニタを使用し、本アプリを使用した計測環境での内部遅延等の諸条件を精度良く調査しておくことで、計測データから推定する遅延時間の精度を高めることが可能でしょう。

注意事項

このアプリは遅延を厳密に測定するものでは無く、あくまで簡易的に遅延の程度を見積もるための補助ツールです。
絶対的な遅延では無く、相対的な遅延を見積もるような用途が向いています。

  • 例1) 2つのモニタはどちらがより遅延するのか?
  • 例2) モニタの表示モードの設定で遅延は増減するのか?
  • 例3) このHDMI切替機を間に入れると遅延は発生するのか?

次の要因などにより、このアプリを使って推定した値は実際の遅延と異なる可能性があります。

  • 端末でのHDMI出力信号生成時の遅延
  • 端末でのHDMI出力信号生成時の欠落フレーム
  • 端末と液晶モニタのリフレッシュレートの差異によるズレ
  • 推定モード時のフレーム被り

このアプリを使用した結果については、一切何も保証するものではありません。

動作検証機種

  • 京セラ DIGNO G (Android 7.1)
  • 京セラ DIGNO ISW11K (Android 2.3.5)
  • Ainol NOVO7 Advanced2 (Android 4.0.3)
  • Amazon Fire (Fire OS 5/Android 5.1.1)