MPEG-2 TS

Last-modified: 2016-11-17 (木) 17:08:48

通称「MPEG-2 TS」、「TS」は、「ISO/IEC 13818-1」または「ITU-T H.222.0」として規格化されている多重化方式です。
多重化方式とは、平たく言えば、ビデオやオーディオをまとめる方法のことです。

解析

TSストリーム

TSストリームは、「TSパケット」と呼ばれる 188バイトずつのデータで構成されます。

【TS Stream】【TS Packet】【TS Packet】+・・・【TS Packet】

つまり、何の欠損もなければ、TS のファイルサイズは188の倍数バイトになるわけです。
ただし、TSパケットに情報を付加して、192バイトや、204バイトのパケットにする別規定もあります。

TSパケット

TSパケット(transport_packet)の構造は次の通りです。

名称ビット数概要
TSパケットヘッダー32ヘッダー
アダプテーションフィールド可変長ストリームを紐解くのに使用する追加情報。ないこともある。
ペイロード可変長ビデオやオーディオのデータそのもの。
 

TSパケットヘッダー

TSパケットヘッダーは4バイト(32ビット)で、内容は下記の通りです。

名称ビット数概要
sync_byte8必ず 0x47 となる。0x47 でない場合、伝送エラー等が発生している。
transport_error_indicator1
payload_unit_start_indicator1
transport_priority1
PID13Packet ID。パケット識別子。パケットの種類(ビデオなのかオーディオなのか)などを区別する。
transport_scrambling_control2
adaptation_field_control2このTSパケットに含まれるデータの種別。00は予約で、01でペイロードのみを含み、10でアダプテーションフィールドのみを含み、11でアダプテーションフィールドとペイロードが含まれることを示す。
continuity_counter4巡回カウンター。ストリームの先頭のパケットから0,1,2,3,・・・,15,0,1,2,・・・となる。伝送中に欠損が発生した場合、巡回カウンターが連続にならないので、パケットロスを検知できる。ただし、常に0となる場合もある。adaptation_field_controlの値によっては増えない。
 

※H.222.0-2006 2.4.3.2 "Transport Stream packet layer" を参考のこと

アダプテーションフィールド

アダプテーションフィールドの内容は結構複雑で、様々なフラグで情報を持っていたり持っていなかったりします。中でも重要な情報は、PCR(Program Clock Reference)で、27MHzの値で記録されています。

TSペイロード

TSペイロードには、ビデオやオーディオの実データが入っています。
しかし、1つのTSパケットは188バイトで、TSパケットヘッダーを取り除いた部分は最大でも184バイトしかありません。
ということで、ほとんどのデータは収まらないので、PIDが同じTSパケットのペイロードをつなぎ、
そのつないだものが実データということになります。
ただし、この実データは「PES」と呼ばれる構成をしています。

PES

PES は Packetized Elementary Stream の略で、TS に格納されたビデオやオーディオなどの要素ストリームを指します。PES は概念的なもので、実際のデータ構造は「PESパケット」と呼びます。
PESパケットは次のようなデータ構造を持ちます。

【PES Packet】【PES Header】【PES Payload】+・・・+【PES Header】【PES Payload】

PESヘッダー

規格書の「Table 2-21 – PES packet」を参照のこと。

PESペイロード

PID

Packet IDは、TSパケットの種類を区別するための13bitの情報です。
値域は [0x0000, 0x1FFF] です。
いくつか予約されているものと、自由に設定できるものがあります。

定義済みPID

PID名前概要
0x0000PAT, Program Association Table後述のPMT、NITを定義する
0x0001限定アクセステーブル
0x0002トランスポートストリームディスクリプションテーブル
0x0003IPMP制御情報テーブル
0x0004

0x000F
予約
0x0010

0x1FFE
network_PID,
Program_map_PID,
elementary_PID,
その他
0x1FFFヌルパケット

別規定

FEC

  • Forward Error Correction

Timestamped TS

ARIB

参考