MPEG-1データフォーマットの詳細

MPEG-1のデータは「パック」の集まりで構成されている。つまり、「パック」の連なりで表現されることになる。

パックのデータ構造

(数字はビット数)

パック開始符号 固定 SCR 固定 SCR 固定 SCR 固定 最大伝送速度 固定 システムヘッダ パケット
0x000001BA 0b0010 [32..30] 0b1 [29..15] 0b1 [14..0] 0b11 - 0b1 - -
32 4 3 1 15 1 15 2 22 1 あってもなくてもOK n個
名前 長さ(ビット) 説明
パック開始符号 32 パックヘッダを示すスタート符合。0x000001BA
SCR 33 System Clock Reference(システム時刻基準参照値)。現在時刻を90KHzをベースクロックとしている
最大伝送速度 22 MPEG-1のストリーム速度。転送速度を50Byte/秒 単位で表した値
システムヘッダ - 以下参照
パケット - 以下参照

システムヘッダのデータ構造

システムヘッダはデコード(再生)時に制御用として使用する

システムヘッダ開始符号 ヘッダ長 固定 レートバウンド 固定 オーディオバウンド フラグ 固定 ビデオバウンド 予約ビット ストリームID 固定 STDバッファバウンドスケール STDバッファサイズバウンド
0x000001BB - 0b1 - 0b1 - - 0b1 - 0xFF - 0b11 - -
32 16 1 22 1 6 4 1 5 8 8 2 1 13

※ストリームID〜STDバッファサイズバウンドはn個

名前 長さ(ビット) 説明
システムヘッダ開始符号 32 システムヘッダ 0x000001BB
ヘッダ長 16 このシステムヘッダの長さ
レートバウンド 22 最大速度の最大値。このストリームがデコード可能か判断する際に利用
オーディオバウンド 6 多重化されたオーディオの最大数(0〜32)
フラグ 4 各種フラグ
ビデオバウンド 5 多重化されたビデオの最大数(0〜16)
予約ビット 8 全てのビットが1となる
ストリームID 8 多重化されたパケットの先頭部のストリームID値。オーディオ、ビデオなどの識別に利用
STDバッファバウンドスケール 1 ストリームIDがオーディオの場合 0.ビデオの場合 1.それ以外のデータでは 0 or 1
STDバッファサイズバウンド 13 入力バッファ容量。STDバッファバウンドスケールが0の場合は128Byte単位。1の場合は1024Byte単位

パケットのデータ構造

パケット開始符号 ストリームID パケット長 パディング データヘッダ データ
0x000001 0xBC〜0xFF - 0xFF - -
24 8 16 8*必要なだけ 40 or 80 or 8(以下の3種類) 8*N
オーディオフレームやBピクチャの先頭を含む場合のデータヘッダ
固定 PTS 固定 PTS 固定 PTS 固定
0b0010 [32..30] 0b1 [29..15] 0b1 [14..0] 0b1
4 3 1 15 1 15 1
Iピクチャ、Pピクチャの先頭を含む場合のデータヘッダ
固定 PTS 固定 PTS 固定 PTS 固定 固定 DTS 固定 DTS 固定 DTS 固定
0b0010 [32..30] 0b1 [29..15] 0b1 [14..0] 0b1 0b0001 [32..30] 0b1 [29..15] 0b1 [14..0] 0b1
4 3 1 15 1 15 1 4 3 1 15 1 15 1
それ以外のデータの場合のデータヘッダ
固定
0b00001111
8
名前 長さ(ビット) 説明
パケット開始符号 24 パケット開始符号の先頭24ビット(0x000001)。ストリームIDとくっつけてパケットの先頭を示す
ストリームID 8 パケットデータを示す識別子。0xBC〜0xFF
パケット長 16 このフィールドより後ろからパケットの最後までのデータ長。つまり、パディングからのデータ長
PTS 33 Presentation Time Stamp(提示時刻)。90KHzのクロックでカウントした値
DTS 33 Decoding Time Stamp(複合時刻)。90KHzのクロックでカウントした値。PSTとデコード開始時刻が異なる時に使用