星食観測トップページへ


ビデオ録画とタイムインサータの表示時刻


宮下和久

2007/12/31

改訂 2008/1/1

2008/1/12


以下は、2007218日に、掩蔽同報メールJOINに、[JOIN:09564] フレーム蓄積と時刻測定 Re: Result of (22)Kalliope on Jan.03

として投稿したものについて、記述の誤りを訂正し、新たに図表を加えて大幅な改訂を加えたものです。ここでは、主としてタイムインサータTIVi について説明しています。KIWI OSD をお使いの方は、Geoff Hitchcox氏が分かりやすくまとめてwebに公開しています。こちらに和訳がありますので、このページと併せてご覧ください。


1.タイムインサータを用いて現象時刻を求める


(1) GPS利用のビデオインサータの記録精度

TIVi KIWI OSD など、GPSを利用したタイムインポーザの表示は、たいへん正確であることが確かめられていますGHS時計などGPS利用時計が正秒に出力するLEDの発光をビデオカメラで撮影すると、ビデオカメラのフィールド(コマ)の露出のタイミングを調べることができます。これを利用しTIVi(2005, 宮下)およびKIWI-OSD(2006, Walt Morgan, Geoff Hitchcox) それぞれについて、誤差は1ミリ秒またはそれ以であることが確かめられてきました。また、Gerhard Dangl(オーストリア)は、複数のLED1ミリ秒以下の短い時間差で発光させることのできる装置(VEXA)を用いて、蓄積露光の場合も含めて確認を行っています 


(2) ビデオの画面表示

ビデオは複数の静止画を連続的に表示することで動画を作り出していますここでは、ビデオ画像の特徴である、インターレースと呼ばれる表示手法について説明しましょう。これまでテレビやビデオで用いられてきたNTSCPALなどの方式は、画面のちらつきを軽減するために、インターレースと呼ばれる画面表示方法を採用しています。これは、走査線を1ラインおきに撮影した画像(走査線は1画面の半分の数)を連続的に表示するもので、NTSCでは、1/60) ごとに画面が切り替わります。この画像を再生時に一時停止(ポーズ)した場合は、走査線の数が半分になり美しい画像になりません。そこで2つのフィールドの画像を重ね合わせ、一つの静止画として表示するようになっています。この2つのフィールドを一組にして扱うことをフレームと呼びます


 図1. 飛び越し走査線と重ね合わせ


それぞれのフィールドは、その走査線の位置からそれぞれTopFieldBottomField のように呼ばれます。一方、偶数フィールド(Even Field),奇数フィールド(Odd Field)という呼び方もなされますが、この場合、一番上のラインを1とするか0とするかにより、奇数偶数に違いができてしまいます。LiMovieでは、コンピュータ上での画像の扱いの例に従って一番上のラインを0番目として扱っています。


(3) 個々のフィールドを見る方法

タイムインサータは、それぞれのフィールドが露光した時刻を記録しています。そのため、フレーム静止画として見るとそれぞれの数字が重なって見にくくなっています。フィールドを別々に表示させる機能を持ったソフトウエア(VirtualDubLiMovie)を利用すると、これらの数字をはっきりと見ることができます。LiMovieの場合、Field Show ボタンをクリックすることにより、トップフィールドは画面の上の方に、ボトムフィールドは下の方に表示されます。


(4) フィールドオーダー

2つのフィールドを一組にしてフレームとして表示される、といっても、下図のように2通りのフィールドの組み合わせを作ることができます。どちらの組み合わせにするかは、デジタルファイルを作成したソフトウエアまたはハードウエアが決定します。たとえば、ミニDVテープを用いるデジタルビデオカメラの場合、下図のField 1+Field 2 のタイプです。走査線が下の方にあるフィールドの方が早い時間に露出されたものですので、この組み合わせをボトムファースト(Bottom first)と呼びます。一方、走査線が上の方にあるフィールドが早い場合にはトップファースト(Top first)と呼びます。これらのフィールドの順序のことをフィールドオーダーと呼びます。

フィールドオーダーについては、こちらに分かりやすい解説があります。


 図2. 組み合わせにより、異なったフレームが構成される


(5) インサータによりフィールドに記録された時刻

ここからが、この文書の本題です。

図3は、フィールドの露出と時刻の関係を表したものです。各フィールドの時刻を決定しているのは、垂直同期信号と呼ばれるパルス信号です。図の中でVsyncと書いてあるのが、その信号が発生した時刻を示します。パルス信号ですから幅がありますが、ビデオインサータはパルスの立ち上がりを検出し、時刻を記録するようになっています。図はNTSCの場合ですので、時刻の間隔は0.017(17ミリ秒)となっています。この図では、Frame1の中のField1が露光を開始した時刻をTime1(xx:xx:xx.000)とした場合で描いてあります。この例では、Frame1の露出中央時刻はTime2xx:xx:xx.017です。同様にFrame2の露出中央時刻はTime4xx:xx:xx.050となります。


 図3.フィールドの露出と時刻


(6) TIViの場合

タイムインサータが記録するのはVsyncの時刻です。しかし、どの時刻をどこに書き込むかは、インサータの設計により異なります。日本でよく用いられているTIViの場合には、図4のように、そのフィールドの露出終了時刻を表示するようになっています。したがって、図の例では、Frame1の露出中央時刻は、Field1にインサータが書き込んだ時刻xx:xx:xx.017となります。

なお、TIViの場合は、1秒以下の表示が2桁ですので、実際にはxx.xx.xx.02のように書き込まれます。図4は、xx.00 - xx.02 - xx.03 のように書くと数字の移り変わりが分かりにくいために、桁を増やして記述しています。



これより、ビデオカメラとインサータの動作は、次のようなものであることが分かります。

1.ビデオカメラは、Vsync信号* とともにフィールドの露出を始める。 (* ここでは、Vsync1 と呼ぶ。)

2.次のVsync* とともに、フィールドの露出を終了する。 (* ここではVsync2 と呼ぶ。)

3.それ(Vsync2) と同時に、露出したフィールドの画像を、ビデオ出力端子から出力する。

4.インサータは、この出力信号の最初にあるVsync信号(カメラのVsync2と同時) の時刻GPSより求める。

5.インサータは、それに続く一連のフィールド画像信号を受け取る。

6.受け取った画像に、求めた時刻を、スーパーインポーズで書き込む。 

したがって、

 インサータTIViが書き込む時刻は、書き込まれたフィールド画像の露出終了時刻である。

 (なお、インサータKIWI-OSDは、更に一つ前のフィールドの時刻も記憶していることから、フィールドの開始時刻も表示する。



(7) 星食観測における現象時刻の求め方

星食観測で星が消えたり(潜入)現れたり(出現)したフレームを現象時刻として扱います。もちろん、星はVsyncに合わせて消えたり現れたりするわけではありませんので、記録されたフィールドのどこかでそれが起きていることになります。また、現象が瞬間ではない場合もありますが、詳しい議論は後ほど行うとして、ここでは、瞬間的な現象について考えてみます。

多くの恒星は視直径がゼロ(点光源)として扱うことができます。その場合は、

現象中央時刻での回折光の強度は、掩蔽される前の光の25%です。したがって、星像が最初に消えるかあるいはたいへん淡くなったフィールド(フレーム)が現象時刻を表すフィールド(フレーム)です。また、出現の場合には、明るい星像が現れる直前のフレームが現象時刻を表すフィールド(フレーム)です。

このように、現象時刻を表すフィールド(フレーム)が特定できるも場合には、フィールドやフレームの露出中央時刻をその現象の起きた時刻として記録してよいことになります。現象が充分瞬間的であれば、時刻測定の誤差は +/-フレームの半分の時間(または+/-フィールドの半分の時間)とすればよいことになります。求め方は、フレーム単位の測光の場合と、フィールド単位の測光の場合で多少異なります。


(7-1) フレーム単位の時刻測定の場合

Frame 1では星像が認められるのに、Frame 2では見えない場合(あるいはごく淡い星像である場合)は、現象はFrame2で起こっているとして扱うことができます。現象時刻は、Frame2の中央時刻ですから、図4のTime4にあたり、xx:xx:xx.050 です。誤差は+/-0.017秒とすればよいでしょう。フレームの露出中央時刻は、2つの表示のうち早い方と覚えておくと、簡単に解析できます。


(7-2) フィールド単位の時刻測定の場合

対象の星が明るいなど条件がよく現象が充分明瞭であれば、フレーム単位の観測で精度を更に高めることができます。ここでは、Frame1field2では星像が認められるのに、Frame2Field1では星が見えなくなっていたとします。この場合には、Frame2Field1が現象時刻を表すフィールドです。ただ、フィールドの露出中央時刻はどこにも表示されていませんので、フィールドの開始時刻と終了時刻からその中央を計算する必要があります。図4から、開始時刻はTime3(xx:xx:xx.033 この値は、一つ前のフレームで読み取ります)、終了時刻はTime4(xx:xx:xx.050) 、これより、(Time3+Time4)/2 = xx:xx:xx.042 と計算できます。TTViの場合には表示が2桁で、間隔が0.01秒である場合には計算しにくいのですが、単純に四捨五入して丸めておけばよいと思います。ただ、回折による光量変化においては、星が点光源のときには隠れる前の光量の25%となりますので、厳密に言えば、潜入の時には四捨五入の切り上げ出現の時には四入五捨の切り下げ、とすべきでしょう。


(8) 実例をもとに

それでは以上を実例で確かめてみましょう。 まず、多くの星食観測で用いられてきた、WAT100NTIViを使った例を示します。


(8-1) パソコンへのキャプチャの薦め

まず始めに、ビデオ画面の表示方法についてです。ビデオカメラのモニターで見たり、テレビをモニターとして利用することができます。ビデオカメラに(またはDVDレコーダ)よっては、コマ送りのときにフィールドごとに画面に表示できるものがあり、たいへん便利に使うことができます。しかし多くの機種はフレームごとの表示しかありません。ビデオカメラのモニターは画素数が少ない関係で一方のフィールドしか表示できません。そのため、半分の情報しか表示できないことになります。また、テレビはフィールドごとに表示できません。パソコンを用いてキャプチャすることで、より高い精度で観測ができます。 できたAVIファイルは、Virtual Dub や LiMovie といったソフトウエアで画面を上下に分離して見る(スプリット)ことができるので便利です。


(8-2) 現象時刻を求める

図5は、あるフレームの時刻表示の部分です。秒の小数点以下の数字が重なって見えています。ここで、LiMovieField Showボタンをクリックすると、図6のように上下に分かれて表示され、小数点以下の数字も分離され見やすくなっています。

この例の場合、miniDVテープからのキャプチャですので、ボトムファーストであり、「下に表示される時刻の方が早い」フィールドオーダーとなっています。したがって、露出中央時刻は、 01:49:08.02 です。 これが現象時刻ならば 01:49:08.02 +/- 0.02 として観測報告することができます。

次に、フィールド単位の観測の場合です。ここでもし、この一つ前のフレームの2つのフィールドに星像が認められるのに、このフレームの最初のフィールド、つまり、下に表示されたフィールド(ボトムフィールド)には星像が認められない場合には、ボトムフィールドが現象時刻になります。図にはありませんが、一つ前のフィールドの終了時刻(この図のボトムフィールドの開始時刻)は 01:49:08.00 です。したがって、フィールドの中央時刻は、間をとって 01:49:08.01 と求められます。 誤差もつけると、 01:49:08.01 +/- 0.01 となります。

では、もし、このフレームのボトムフィールドに星像が認められ、トップフィールドには認められない場合はどうでしょう。このときは、間をとりたくても0.01秒の桁が1しか違いません。そこで、この場合は潜入現象ですから、「遅い方の時刻」を選んで 01:49:08.03 とします。一方、出現の場合には、「早い方の時刻」を選んで 01:49:08.02 とします。


図5 フレームの時刻表示


図6 フィールドに分けて表示(スペースの関係で、表示部だけを切り出してつなげてある。実際にはこれより更に上下に離れて表示される)


(9) 蓄積型カメラへのインサータの書き込み時刻

WAT120NTGV-M)などの蓄積型カメラについては、時刻記録について注意が必要です。蓄積をしていない場合でも、末尾に示す図9のように、「インサータの表示がUTCに対して33ミリ秒進んでいる」という結果となりました。これは、ビデオカメラが一旦データを保持しておき、しばらく後で出力するためです。蓄積なしの場合でも、1フレーム遅れて出力されています。ここにTIViのように露光終了時刻を書き込むインサータがあったとします。このインサータは受け取ったフィールド画像について、受け取る直前のVsyncUTCをそこに書き込むわけです。普通なら受け取った画像はひとつ前に露光されたフィールドですから、書き込んだ時刻は、現在露光中のフィールドの開始時刻、つまり一つ前のフィールドの終了時刻、ということになります。ところが、蓄積型カメラは、1フレーム分の時間だけフィールドデータを保持(または処理)しています。渡されたデータは、1フレーム分前に露光されたものです。このことをひとつの例で説明しましょう。110.033秒のVsyncのときにインサータがデータを受け取ったとします。インサータはそのフィールドに110.033秒と書き込みます。しかしそれは実際には1フレーム前、110.000秒に露光が終了したもので、0.033秒間カメラが保持していたものでした。これが「時刻進み」の原因です。これを図に表すと、次のようになります。

図7. 蓄積型のインサータの記録とUTCの関係 (蓄積なしの場合)


なお、図7は、蓄積なしの場合です。まだ充分ではありませんが、これまで調べた結果をまとめると、次のようになります。

WAT120N(TGV-M)の場合、

蓄積なし : インサータがUTCに対して、33ミリ秒(0.033秒)進んでいる。

1フレーム蓄積 : インサータがUTCに対して、33ミリ秒(0.033秒)進んでいる。

2フレーム蓄積 : インサータがUTCに対して、66ミリ秒(0.066秒)進んでいる。 

という結果となっています。なおこれは、LEDのタイミングがフィールドに対して1秒につき1ミリ秒進んでいくことを利用して測定したものです。したがって、インサータの「進み」は、蓄積フレームの開始点に対して、ということです。蓄積と現象時刻についての詳細は、後ほど付け加えたいと思います。



ビデオとタイムインサータの時刻精度


GHS時計のLEDパルスを用いて、TIViの時刻の検証をしてみました。使用機器は、WAT100N051123日のXZ14323の接食のビデオにはGHS時計のパルスがTIViの表示と同時記録されています。図7の左端、月の輝面の下に写っているのがLEDの光です。このLED光は、タイムインサータが登場する以前に、GHS時計の時刻記録を行うために作成された暗視や照明装置を使用しています。

NTSC方式を用いた精密な時刻の検証の方法については、KIWI OSDについてGeoff Hitchcox氏のページ(邦訳版)をご覧ください。また、このLEDを用いた方法は、国立天文台報 第9巻, 1262006(PDF) にも記載してあります。LEDだけでなく、音声信号でも同様のことができますので、こちらの説明をご覧ください。

は、LiMovieを用いて30フレームごとのコマ送りをしたものです。フレーム(フィールド)は、標準時UTCに対して1秒間に1ミリ秒ずつ遅れていきます。TIViの表示は小数点以下二桁なので分かりにくいですが、秒表示が1秒ずつ進んでいることは読み取れます。このうちのトップフィールドに注目して見てください。

まず、上から2番目の画面で、TIViの表示が00秒に切り替わります。この時点では、まだLEDは点灯していません。続いて3番目の画面では、LEDの淡い像が見えます。これは、LED点灯直後にトップフィールドの露出が終了したことを示しています。4番目の画面では、LED光が明るくなり、フィールドの露出終了のタイミングが3番目の画面より遅くなったことを示しています。

これらから、この観測の場合、TIViの時刻表示は「UTCに対して1ミリ秒進んでいる」ということができます。遅延なら理解しやすいのですが、なぜ「進んで」いるのかはこのビデオからはわかりません。ただここで注意しなければならないのは、この観測ではTIViGPSに常に同期されていたわけではない、ということです。この観測では、TIViGHS時計の1PPS音声信号で同期をとりました。このような時刻信号を用いるとき、TIViでは、ある時点で同期をとった後はノイズ等による誤動作を避けるために、TIViの持つ高精度の時計を用いて時刻を保持することが推奨されています。したがって、この時刻表示の「進み」は、TIViの時計の進みと考えてよさそうです。この画面は接食の出現の頃のもので、同期から少なくとも30分以上経っています。それだけの時間差の中での1ミリ秒ですから、TIViの保時精度がきわめて高いということがこの結果からわかります。



図8 WAT100Nにおける、インサータTIViの表示とLED時刻信号



図9 WAT120N(蓄積型)におけるKIWI OSDの表示とLED時刻信号