遅延時間(レイテンシー)を測り数値化する測定システムを開発しました。ここではそこに至る経緯を述べます。測定システム自体については別ページをご覧ください。
事象がどのくらい遅れるのかを遅延といいます。英語だとレイテンシー(Latency)。ディレー(Delay)でも誤りとは言い切れませんが、レイテンシー(レーテンシー)が普通の言い方です。
遅延時間が秒単位ならストップウォッチで測定可能です。
しかし、ここで対象とするのは例えば数十ミリ秒といったの低遅延(低レイテンシー)の映像伝送です。
遅延を測ると言えば、イーサネットつまりTCP/IP通信ならpingを打って往復遅延を出すことができますね。でもイーサネットを使わずに伝送されるものも含め映像自体の遅延を知りたいのです。pingではビデオカメラの遅延、ビデオモニタの遅延は分かりません。
遅延の様子を簡単に確かめるには、ビデオカメラの前で手を振ってみて、モニタに映る自分の手の動きを見て速いか遅いかを判断する、慣れてくるとある程度は分かります。同じ装置でも60フレーム毎秒と30フレーム毎秒では明らかに違います。
しかしながら手を振るだけでは、数値化は難しいです。どうすれば数値化ができるでしょうか。
(1)厳格にやるなら、伝送時間を計測したい被測定システムに印加する入力信号に「印」をつけてシステムを通し、さっきの「印」が出力側を通過するまでの時間を測る方法があります。「印」というのはタイムスタンプです。市販されているSDI対応機器でそのような測定器があります。また、筆者(松浦)も、映像機器ではありませんが昔そのようなネットワーク遅延測定機器の開発に携わった経験があります。この場合、ビデオカメラ自体の遅延や、ビデオモニタの遅延は測れません。液晶モニタの応答速度のスペックが1ミリ秒とかいうものもありますが、その数値が映像システム全体の遅延ではありません。第一に知りたいのはビデオカメラやビデオモニタも含めたシステムの遅延であります。被写体の動きがビデオモニタ上の動きになるまでの時間、それが人間の体感する遅延時間です。伝送の遅延を分離し詳細な解析することはその次です。
(2)低遅延システムを評価するため、当初は、ビデオカメラでその映像を表示するモニタとストップウォッチを撮像し、ストップウォッチが多重に映るようにしてその表示の差を見ていました。下の模式図のような構成です。
モニタには現物のストップウ ォッチのほかに、被測定システムを通過したひとつ前の映像、2つ前の映像、……、というように多数の昔の画が映ります。この様子を別のスチルカメラでパチリとある瞬間記録すればよろしい。ビデオカメラにその機能があるかもしれません。ひとつ前の数字の比較だけでは誤差が大きそうですが、いくつか前のものとを比較するとそれなりに数字が出てきます。スマートフォンをストップウ ォッチにして簡便に測ることができます。
ただし、スマートフォンは、秒の数字の小数第二位まできちっと変化しているのか疑問です。ビデオカメラとストップウオッチの変化の同期の問題や残光があって、今一つ数字がきれいに並びません。ともかく何回もトライして平均したりして数字を出していました。
なお、ストップウォッチを使わずとも多重映しをすると、ちょっとの動きが順々に伝搬するので、見ていて面白いです。数値化はともかく、これも見慣れるとある程度はシステムの早い遅いがわかります。
(3)もう少し正確にやろうと、下の図のような系を作ってみました。
ゆっくり点滅するLEDをビデオカメラで撮像します。これを映像伝送系を介して送ってビデオモニタにて映像化し、ビデオモニタ上のLED像の点滅を観測します。観測にはフォトダイオード(PD:光強度を電気信号に変える素子)を用います。LEDの駆動信号と、観測した信号をオシロスコープ上で測定し遅延を評価します。例えばですが、次の図のような波形が得られます。
青色のトレースはLEDの点灯・消灯を示し、赤色のトレースはフォトダイオードで観測した光強度です。図示したように赤色は低いレベルが光強度大、高いレベルが光強度小です。横軸は50ミリ秒/div、表示全幅で500ミリ秒、点滅の繰り返しは400ミリ秒となります。
この波形から遅延時間をどう読むか、(A)明るさの変化が出始めた時、(B)変化が終わった時、(C)中間値すなわち((A)+(B))÷2、などいろいろな考え方ができるかと思います。ここでは、人間の目は少しでも映像が変われば検知できると考えて、(A)変化が始まった時としましょう。消灯⇒点灯時の遅延時間T1は約5ミリ秒、点灯⇒消灯の遅延時間T2は約20ミリ秒です。但し、ビデオカメラのフレームクロックと、LEDの点滅は非同期なので繰り返しごとにジッタが生じます。具体的には、点灯時の5ミリ秒は横軸を拡大すると3~13ミリ秒程度の範囲で変化しジッタがありますし、消灯時の20ミリ秒は17~28ミリ秒程度のジッタがあります。ここをどう考えるかは場面によるとは思います。
点灯時と消灯時の速さが違う場合、何をもって遅延時間というか?
上の例で点灯時が速く、消灯時は遅い変化でした。
そもそも、点灯とは「暗い画面が明るくなる」ことであり、消灯は「明るい画面が暗くなる」ことです。対象物の明るさが異なるつまり、(A)暗い背景のなかで白い手袋をして手を振る、(B)白い背景のなかで黒い手袋をして手を振る、この(A)(B)どちらも「暗い画面が明るくなる」変化が含まれるので、少しでも変われば検知できるという立場に立てば早い方を採用すればよいと考えることができます。
但しこれは一つの見方であり、諸説あるかと思います。。。
ここで用いた映像機器や設定条件は次のとおりです
ビデオカメラ:OMRON SENTECH社製 STC-HD853HDMI
映像伝送系: 光パスコミュニケーションズ製 セットトップボックス(STB)
DPN9001A光折り返しをHDMI接続で2台タンデム接続
ビデオモニタ: IO-DATA社製 LCD-MF242EBR-B
映像の電気接続はすべてHDMIケーブルにて行い、ビデオカメラの解像度設定は1920X1080P、60fpsです。
これらの条件を変えたり、別の機器に変えたりしして測定することも容易です。
また、映像伝送系をスキップして、ビデオカメラと、ビデオモニタをHDMIケーブルで直結すれば、それらだけの遅延を出すことも可能です。実際上記の系では、映像伝送系があろうがなかろうが同じで、 ビデオカメラとビデオモニタ の遅延しかありません。別項に書きましたが、仮に光ファイバを100 km入れても0.5ミリ秒増にしかなりませんし、弊社STBの遅延はさらに桁違いに小さいです。
測定系の応答を評価するため、被測定システム無しとして、LEDをフォトダイオード(PD)で直接観測した場合、遅延時間は20マイクロ秒以下でした。測定系は十分速いことが確認できました。
(4)ビデオカメラとビデオモニタの間の距離についてですが、測定器のケーブルの範囲(本体とLEDのケーブル長2.5m、本体とPDのケーブル長2.5m)であればそのまま、LED側は延長が容易であり200m(100mケーブルX2)までは延長可能です。
さらにビデオカメラとビデオモニタが離れた場合はどうするかですが、テレセッションなど双方向で伝送するシステムであれば、例えば次の図のようにすれば往復の遅延を測ることができます。右側の地点でビデオカメラの位置が固定されていてモニタを直接撮像できない場合には「鏡」を使う方法があります。100円ショップのガラスの鏡で十分です。同じ映像機器を使っているなら、往復遅延の半分が片道遅延と考えることができます。
もしくは、どちらか片方の映像伝送系を一旦近くで動作させて遅延時間を測定し、上図のような系で往復の測定値からそれを差し引くことで、他方の評価が可能です。
さらに、遠隔地間の低遅延伝送の測定を行いたい場合には、当社製GPSモジュールをビデオカメラ側とビデオモニタ側それぞれに配置して簡便に測定する方法を開発しました。製品の項をご参照ください。
数10km離れたある2地点間において、GPS測定での片道の映像伝送遅延時間が83ミリ秒であり、上の図のような往復測定173ミリ秒の約半分であることが確認できました。カメラが同一ではなくその特性を考慮すると妥当な結果と思われます。
(5)さて、最初はバラックで実験していましたが、持ち運びが容易にできるようにまとめてみました。ここで使っているオシロスコープはパソコンで制御しパソコンで表示するものです。さらにオシロスコープを開発技術者としていじるのではなく「ボタンを押せば遅延時間の数字が出るのが望ましい 」 というお話をいただき、Windowsパソコン用専用ソフトAccuLatencyを開発しました。Accurate(正確な)とLatency(遅延時間)をくっつけて命名しました。
「低遅延(低レイテンシー)」というのは流行語ですが、どのくらいの遅延なのかを正確に測ろう、数字で比較しようとすると難しい現状があります。映像遅延を簡便に数字にできるこの測定器をご利用いただければその課題が簡単に解決できます。詳細は製品紹介のページに記載しました。
また、操作方法を動画(改訂版)にしましたので、ご興味あればご参照ください。 ⇒ここをクリック!
遅延時間発生装置
製品を作っているうちに、一定の遅延時間を発生する標準系がほしくなりました。ビデオカメラとモニタに常に同じ装置を使い、設定や各種条件を合わせれば良いのですが、煩雑ですし故障などを考えると永続性に欠けます。そこで、測定とは逆の「遅延時間発生装置」を製作しました。ブロック図は下図のようなものです。
PDで受光した光強度をAD変換し相手が点灯したか否かを判定し、設定時間後にLEDを点灯させる、相手が消灯したときには設定時間後にLEDを消灯させる、という動作をします。水晶クロックを基準としていてミリ秒単位の任意の設定ができます。制御にはFPGA (Field Programmable Gate Array)を用いたロジック回路を使っており、遅延時間がずれる要素がないので確実です。試作機の外観を下に示します。
左側のPhoto Diodeに遅延測定ユニットのLED部を装着し、右側のLEDに遅延測定ユニットのPD部を装着することにより、遅延測定ユニットが正しく動作しているかが判定できます。そのほか関連製品の開発にも便利に利用しています。
もしこのような標準遅延発生機能のご要望があればご連絡ください。