ピクチャに含まれるスライスのサイズを数えて足してピクチャのサイズを算出した。映像ソースは1440×1080のHDV。
[code]
GOP_START_CODE 0:0:00:00 1 0
PICTURE_START_CODE 0 I
SLICE_START_CODE 1 [3255]
SLICE_START_CODE 2 [3203]
SLICE_START_CODE 3 [3181]
SLICE_START_CODE 4 [3220]
SLICE_START_CODE 5 [3170]
SLICE_START_CODE 6 [3074]
SLICE_START_CODE 7 [3435]
SLICE_START_CODE 8 [2836]
SLICE_START_CODE 9 [3062]
SLICE_START_CODE 10 [3140]
:
:
[/code]
Iピクチャ 20〜22kByte 1スライスあたり 3k〜4kByte
Pピクチャ 15〜16kByte 1スライスあたり 2.2k〜2.3kByte
Bピクチャ 6〜7kByte 1スライスあたり 0.9k〜1.1kByte
RTPもしくはDCCPの1つあたりに188バイト(TS)×7パケット=1316バイトで、これが損失することで1スライス0.9k〜4kByte巻き込んで損失することになる。
当初はスライスヘッダを数えて損失の評価ができるかどうか考えていたが、1スライス内に1RTP分のペイロードの損失が見られるので、スライスの数に異常がなくてもマクロブロック・ブロックが消えてしまっているという状況がありえることが分かった。
スライスごとのサイズは算出できているので、サイズ比較をすれば上手くいくかもしれない。
補足:
VLCにESを食わせて吐かせたTSからさらにESを取り出すとスライスのサイズが変わっている。食わせたESがPESでAudioを含み、吐かせたESからはVideoしか抽出していないからかもしれない。