DoctorMX ホームページ

DoctorMX レコーダ ファイル フォーマット
2008/11/18

概要
レコーダファイルは、8ビットバイト列からなります。
Big Endian(上位バイトが先)です。
レコーダファイルの内容は、大きく2つに分かれます。


DMX データ列
DMX データ列は、一連の「DMX データ」からなります。


DMX データ
DMX データは、大きく2つに分かれます。


DMX データヘッダ
(2進数表記)
00000000
00000000
00000001
スタートコード(3バイト)
DMX データの始まりを表します。
レコーダファイル中の任意の位置から、スタートコードを検出できます。
tttddddd
dddddddd
種類(3ビット)/データ数(13ビット)(2バイト)
  • 種類
    DMX データの種類を表します。
    • 000
      完全データ
      「DMX 状態」が、独立した完全なデータを表します。
      (動画の「キーフレーム」に相当)
    • 001
      相対データ
      「DMX 状態」が、直前の DMX 状態との差分を表します。
      (「差分」=「直前の状態」ー「この状態」)
      (つまり、値に変化がないチャンネルの差分は「0」です)
  • データ数
    「DMX 状態」が表す DMX チャンネル数です。
    (DMX スタートコードを含む(例:512 チャンネルの場合は 513))
1ttttttt
1ttttttt
1ttttttt
1ttttttt
時刻(28ビット)(4バイト)
先頭(記録開始)からの相対時刻です。
1/1000 秒([mS])単位です。
範囲は 0 〜 23:59:59.999 です。
DMX 状態 DMX スタートコードおよびチャンネルの状態を表します。 ただし、圧縮して記録されます。 3通りの表現の組み合わせです。 (2進数表記)
00000000 2バイトの「0x00」を表します。
これが2個連続することはありません。
0ccccccc 直後に「ccccccc」バイト(1〜127バイト)の生データ(無圧縮)が続きます。
1ccccccc 直前の「展開後の」1バイトを、(「ccccccc」+1)回(1〜128回)繰り返します。
拡張ヘッダ 拡張ヘッダは、「4バイトの識別子」と「付加情報列」からなります。 付加情報 展開後(無圧縮)の付加情報は、以下のものからなります。 各付加情報の詳細