Make it inspiring
 

Timecode

 

タイムコードの起源は古く、1967年にアメリカのEECO incがビデオテープの編集のために映像のフレームを時間とフレーム数で符号化して保存する方法を開発したことに始まり、1969年にその仕組みをSMPTEが規格化したのち、1974年にIECで標準化されています。

映像は複数の静止画が連続して表示されることで動画として認識されます。タイムコードはこの個々の静止画(フレーム)に時間とフレーム番号を組み合わせてラベルのように付加する仕組みです。00:00:00/f(フレーム番号)の形式で表され、電源周波数が60Hzの国では30フレーム、50Hzの国では25フレームが利用されます。これはその昔、テレビ画面の仕組みが電子ビームを走査することで映像を映し出すことに由来し、当時、電子ビームの走査が電源周波数と同期していたため、映像フレームが電源周波数の整数倍でないと画面にチラつきが発生したという理由からです。

LTC vs VITC

 

タイムコードの起源は映像の編集のためにフレームに番号をつけて管理するというものです。そのためタイムコードは、映像編集の際に活用されます。その際に利用されるのが、VITCというタイムコードで、VITCは映像の表示されない垂直方向の一部分であるVertical Blanking Intervalに埋め込まれ、これを読み取る機能を持った編集機器や映像機器でこのデータを読み取り表示を行います。これに対して、映像機器などの同期の目的で存在するのがLTCタイムコードです。

複数の映像ソースなどを正確に同期して再生するためにLTCタイムコードは利用されました。LTCタイムコードは音声信号の磁気テープに記録されるビットストリーム形式のタイムコードで、スピーカーなどで再生すると音声信号として聞こえます。現在も映像の同期や照明シーンとオーディオの同期などで利用されるのがLTCタイムコードで、制御分野においてはこのLTCタイムコードが最も認知された同期手段であると言えます。そのため、以降はこのLTCタイムコードに絞って解説を行います。

29.97fps vs 30fps

 

NTSC方式の場合、初期の白黒TVの時代に、走査線525本、水平同期周波数15.750kHz、映像のフレームレートは30と決められ、その後、カラーテレビに入れ替わるタイミングで、同じ搬送帯域で白黒映像に加え、これまではなかった色情報を送信しようとした際、主に下記のような問題に直面しました。

  • 旧システムとの共存(白黒との互換性維持)
  • カラー信号の伝送波は水平同期周波数と整数倍の関係にする必要がある
  • 音声の搬送波との干渉を回避する必要がある

上記の問題を回避するため、カラー情報は、カラーサブキャリアという副搬送波で伝送し、このカラーサブキャリアと水平同期周波数との関係を整数倍にすることで映像と色情報を正しく送信できるようになる。しかし、水平同期周波数は、モノクロ放送の水平同期周波数(15.750kHz)に近いものが選択される必要があり、加えて音声搬送波の4.5MHzとも整数倍の関係になるような調整が必要でした。これらの課題をクリアした結果として、水平同期周波数は15.734kHzが選択されました。

(外部リンク:https://www.sony.jp/products/Professional/ProMedia/faq/glo010403.html

また同時にこの水平同期周波数の選択はなるべく30に近いフレームレートを生み出すために選択されています。フレームレートの算出は (水平同期周波数 / 走査線数)により計算されます。

15.734 kHz  / 525本 =29.97fps

この結果、NTSC方式は本来の30フレームではなく、29.97フレーム数となり、今でも多くの映像制作現場でTV放送との互換のために29.97fpsの映像が制作されています。このような30と29.97のように、複数のフレームレートが存在するということは、NTSCだけで発生し、PALやSECAMでは起きておらず、25フレームにこのような異なるフレームレートは存在しません。

タイムコードのドロップフレームとノンドロップフレーム

 

NTSC映像の場合、歴史的にさまざまな事情から本来の30フレームではなく、29.97のフレームレートが生み出されました。故にそこで使用される映像は29.97フレームで製作されますが、これは単に映像のコマを1秒間に30枚ではなく29.97で再生するということであり、映像だけで見た時には特に大きな問題にはなりません。しかし、この映像と何かを同期する目的でタイムコードを使用した際に、時間のズレの問題が発生します。これは29.97というフレーム数の映像において発生する問題です。

映像が1秒間に29.97フレームで再生されてもタイムコードは30フレームでカウントしています。そのため、1秒間で0.03フレーム分遅れてくることになり、これを一分間とすると1.8フレーム、1時間では108フレーム遅れてきます。時間にすると108/29.97で約3.6秒、実時間より遅れた表示になります。これは、29.97フレームの映像にリンクしたタイムコードの表示の問題です。

このタイムコードの表示のずれを実際の時間に近づけるため、タイムコードの番地をドロップする(破棄する)方法が考えられ、ドロップタイムコードが生まれます。ドロップタイムコードの場合、0、10、20、30、40、50分を除く、毎分最初の2フレームをドロップすることで補正を行います。例:00:00:59:29フレームの次は、00と01をドロップして、00:01:02フレームという表示にする。

こうすることで、ドロップタイムコードの表示は29.97フレームの映像を再生していても、実時間にかなり近い時間表示になります。しかしドロップフレームを使うことで、機器の同期再生をする際には、存在しない番地が発生します。このドロップを使うのは映像にリンクした場合のみであり、そもそも映像との同期(29.97フレーム)を必要としない音楽と照明同期などのケースでは、普通の30フレームノンドロップのタイムコードが使用されます。

しかし現場によって、例えば映像コンテンツが30フレームでなく29.97フレームレートで、これを軸にした同期演出が必要で、ショーの再生時間を実時間とリンクさせる必要がある場合など、ドロップフレームのタイムコードを使う場合もありますが、機器の同期制御で利用するだけの場合、30フレームのノンドロップを使うのが通常です。

タイムコード表示の例 制御装置の違い

照明のタイムラインを制御する上でドロップフレームを意識することはほとんどありません。それは映像とのシンクよりも音楽とのシンクがほとんどで、ドロップフレームでタイムコードを出力したり入力する必要がありません。右の例はPharosライティングコントローラーのタイムコード選択ですが、ドロップフレームの選択はありません。

一方、映像サーバーなどの場合、扱うコンテンツが映像であり、NTSC方式では30フレームと、うたっていても29.97のケースが多く、また映像制作の現場で作られる映像が今も29.97フレームであることが多いため、どうしてもタイムコードはドロップフレームを意識せざるを得ません。

右の画面はModuloPlayerのタイムコード選択です。選択肢の中に29.97ドロップフレームがあります

タイムコードのケーブル接続

LTCタイムコードは音声データとして扱えるため、3Pinのバランスケーブル(オーディオ用のケーブル)やBNCコネクターのついたケーブルのほか、民生用のピンプラグのケーブルなど多様なタイプのケーブルが利用できます。LTCタイムコードの出力をスピーカーに繋ぐと、特徴的な音声が聞こえます。受信する装置には、ゲインなどの設定があり、送り手側のレベルが低い時は、認識されないこともあり、LTCタイムコードの受信に関する問題は、ほとんどがゲイン(出力レベル)に関連したものです。タイムコードを出力する装置は、タイムコードジェネレーターという製品や、PCソフトウェアベースのタイムコードジェネレーター、TC出力機能を持ったメディアサーバーのLTC出力などのほか、タイムコードジェネレーターを記録したオーディオメディアなどがあります。

 

タイムコード使用方法

LTCタイムコードはオーディオデータとして扱えるため、タイムコードジェネレーターから出力したデータを映像のオーディオトラックにレコードしたり、オーディオプレイヤーの1つをタイムコード出力用としてタイムコードを記録し、これをオーディオプレイヤーと同時に再生することで、照明コントローラーを音楽に同期させることなどができます。

映像サーバーなどはタイムコードの出力ができる製品があります。その場合、タイムコードジェレーターの代わりにメディアサーバー自体がタイムコードを出力するため、メディアサーバーのタイムコード出力を直接、照明コントローラーに繋ぐことで、映像と照明の同期が実現します。

 

左の画面はPharosのLPCでタイムコードを受信した状態です。Pharos製品の場合、時系列で変化する照明シーンはタイムラインで表現するため、タイムラインの時間軸を内部クロックではなく、外部から入るTimecodeに指定することで、タイムコードとタイムライン内のプログラムを同期します。

左画面はModuloPlayer(MediaServer )のTCスレーブ設定ですが、ModuloPlayerはタイムラインではなくCueスタックタイプの製品のため、個々のCueのトリガーにタイムコードを指定することで、キューの実行をタイムコードの入力で行います。このようなCue単位でタイムコードの番地を指定してCueを実行するタイプの製品は照明コントローラーに多く見られます。

このModuloPlayerの場合は、設定したCueにアサインされた映像コンテンツの再生をタイムコードの番地を変えることで、いくつかの映像を任意のタイミングで切り替えることができるとともに、再生された映像とタイムコードを同期しています。

 

タイムコードリーダー&ジェネレーター製品

 

タイムコードを生成する装置をジェネレーターと呼び、またそれを読み出す装置をリーダーと言います。放送局向けから手軽に使える簡易なものまで様々な製品があります。

PCのバスに装着できるタイムコードジェネレーター&リーダーでは、Adrienne Electronicsが制御関連の製品で数多く利用されているほか、手軽に利用できるリーダーなどでは、Rosendahlなどが有名です。