Заголовок начинается с стартового кода 000001B8. Далее идет 25-битная структура time_code, включающая в себя временные метки drop_frame_flag, time_code_hours, time_code_minutes, marker_bit, time_code_seconds и time_code_pictures. Эта структура не влияет на процесс декодирования.
1-битный параметр closed_gop указывает на способ кодирования серии В-кадров, следующих за первым I-кадром. closed_gop=1 означает, что В-кадры кодировались внутрикадрово либо с использованием только предсказания назад.
Следующий параметр broken_link=0. Если он равен 1, это означает, что серия В-кадров, следующая за первым I-кадром, может быть декодирована неверно, так как опорный кадр утерян. Тогда декодер может не отображать эти кадры и в них может быть записана информация.
Стартовый код – 32 бита – 00000100 в шестнадцатиричном формате.
Temporal_reference – 10-битная временная отметка. Ее значение зависит от значения рассматривающегося ранее параметра low_delay.
Если low_delay=0, то временная отметка изменяется внутри GOB от 0 и далее по модулю 1024. Если кадр кодировался как два поля, временная отметка у них будет одинаковой.
Если low_delay=1, то может возникнуть ситуация, когда к буферу переменной скорости кодер обращается несколько раз до того, как удалить «большой кадр». Если в потоке был «большой кадр», то временная отметка следующего за ним кадра будет равной временной отметке этого кадра плюс N+1 по модулю 1024, где N- число обращений кодера к буферу. Если «большим кадром» оказалось первое поле кадра, то временная отметка у полей одного кадра будет разная.
3-битный параметр picture_coding_type определяет тип кодирования изображения. В отличии от ISO/IEC 11172-2 в MPEG-2 нет такого типа как D-кадры, то есть внутрикодируемые кадры, у которых оставлены только DC-коэффициенты ДКП.
16-битное поле vbv_delay определяет задержку для декодера между приемом последнего байта стартового кода кадра и началом декодирования этого кадра. Используется при кодировании с переменной скоростью. Обычно равно FFFF.
Следующие биты остались для совместимости с MPEG-1, принимают постоянные значения и не участвуют в процессе декодирования: 01110111.
Флаг extra_bit_picture показывает наличие дополнительной информации. Если он равен нулю, то информации нет, в противном случае – есть. Однако, этот флаг введен на перспективу и пока он должен быть равен 0.
Соответственно, и extra_information_picture пока не применяется.
f_code[s][t] – 4-битное целое, принимающее значения 1…9 или 15. Оно используется при декодировании векторов компенсации движения.
В I-кадрах concealment_motion_vectors равно нулю и f_code[s][t] не используется и должно быть равным 15.
Также в I-кадрах и Р-кадрах не используется и должно быть равным 15 f_code[1][t], относящееся к предсказанию назад.
Intra_dc_precision – показывает точность кодирования DC-коэффициентов. Принимает 4 значения, соответствующие 8..11 битам.
Этот параметр используется при инверсном квантовании.
Picture_structure – 2 бита, показывающие тип изображения:
00 – зарезервировано;
01 – верхнее поле;
10 – нижнее поле;
11 – кадр.
Первым кодированным полем кадра может быть, как нижнее, так и верхнее. Если кадр кодируется как два поля, то для полей могут быть независимо установлены следующие параметры:
• f_code[0][0], f_code[0][1]
• f_code[1][0], f_code[1][1]
• intra_dc_precision, concealment_motion_vectors, q_scale_type
• intra_vlc_format, alternate_scan.
Флаг top_field_first. Значение этого параметра зависит от значений picture_structure, progressive_sequence и repeat_first_field. Если progressive_sequence = 0, то флаг показывает, какое поле кадра декодируется первым: в ПК-кадрах он должен быть равен 0, а в КК-кадрах он может быть как равным 1 (первым декодируется верхний кадр), так и нулю. Если же progressive_sequence = 1, то этот флаг вместе с repeat_first_field показывает число уровней реконструкции (1,2,3).
Если флаг frame_pred_frame_dct=1, то используется только межкадровое предсказание. Если 0 – то на уровне полей.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.