About MPEG1/MPEG2

■種別
大きく分けて三つ。
1. MPEG1
2. MPEG2-PS
3. MPEG2-TS

■メディアタイプ
MPEG1のオーディオにはLayer1-3のタイプがある。
MPEG2システム(PS/TS)ではビデオとしてMPEG1、MPEG2、AVC、VC-1、オーディオとしてはMPEGオーディオのLayer1-3を含め、AC-3、LPCM、DTS、AACを扱うことができる。

■ビデオもしくはオーディオに関連するヘッダ開始コードの具体例
0x000001BD: AC-3、LPCM、Subtitles
0x000001C0 - 0x000001DF: MPEG Audio Layer1、Layer2, AAC
0x000001E0 - 0x000001EF: MPEG1、MPEG2、AVC
0x000001FD (MPEG2-TS) : VC-1、AC-3、DTS
>>それ以外の開始コードを見る

■個別のヘッダ
MPEG2-PSにおける0x000001BDの各種メディアは別途識別ヘッダコードがある。
0x20 - 0x2F? : Subtitles(PSではVobsubの*.subに相当すると思われる)
0x80 - 0x87 : AC-3(ヘッダサイズ4bytes)
0x88 - 0x8F : DTS(MPEG2-PSでは見たことなし)
0x90 - 0x97 : SDDS(出合ったことなし)
0xA0 - 0xA7 : LPCM(ヘッダサイズ7bytes)

■AC-3の個別ヘッダ(4bytes)
sub stream id : 1byte (10000***,  ***=id)
number of frame headers : 1byte
first access unit pointer : 2bytes

■LPCMの個別ヘッダ(7bytes)
sub stream id : 1byte (10100***,  ***=id)
number of frame headers : 1byte
first access unit pointer : 2bytes
audio emphasis flag: 1bit (0 = off, 1 = on)
audio mute flag : 1bit (0 = off, 1 = on)
reserved : 1bit
audio frame number : 5bits
Bits per sample : 2bits (0 = 16, 1 = 20, 2 = 24, 3 = reserved)
Sampling frequency : 2bits (0 = 48, 1 = 96, other = reserved, in kHz)
reserved : 1bit
number of channels : 3bits (0 = 1ch, 1 = 2ch, etc = (x + 1))
dynamic range X : 3bits (linear gain = 2^(4-(X+(Y/30))))
dynamic range Y : 5bits (in dB gain = 24.082 - 6.0206 X - 0.2007 Y)

■その他メディアの判別方法
MPEG Audio : 先頭11bitとバージョン、レイヤー情報で判別する(->詳細を見る)。
AAC : ADTSヘッダを探す(->詳細を見る)。MPEG Audio Frameヘッダと混同しないように区別する。
DTS : フレームは0x7FFE8001(16bitBE)または0xFE7F0180(16bitLE)または0x1FFFE800(14bitBE)または0xFF1F00E8(14bitLE)ではじまる。
AC-3 : フレームは0x0B77ではじまる。
VC-1 : 0x0000010Dもしくは0x0000010Fが目安。