少し時間がとれたのでMPEG2をおさらいする。
MPEG2はISO/IEC 13818-2で規格化されている。
映像データは下記のようにデータが並ぶ。
video_sequence(){
next_start_code(),
sequence_header(),
if( nextbits() == extention_start_code ){
sequence_extension(),
do{
extension_and_user_data(0),
do{
if( nextbits() == group_start_code ){
group_of_pictures_header(),
extension_and_user_data(1),
};
picture_header(),
picture_coding_extension(),
extensions_and_user_data(2),
picture_data(),
};
} while( ( nextbits() == picture_start_code) || ( nextbits() == group_start_code ) ),
if( nextbits() != sequence_end_code ){
sequence_header(),
sequence_extension(),
} while( nextbits() != sequence_end_code ),
} else {
// ISE/IEC 11182-2(MPEG1)
}
sequence_end_code;
}
これを解くと画像が抜き出せるという事だ。
ここからざっと機能分解していくところ。