На высоком уровне описания битового потока применяются следующие правила:
- если после первого sequence_header() не следует sequence_extension(), то битовый поток должен удовлетворять стандарту ISO/IEC 11172-2 и не описан в текущем стандарте;
- если после первого sequence_header() следует sequence_extension(), то и после всех последующих sequence_header() должны следовать sequence_extension();
- sequence_extension() может встречаться только непосредственно после sequence_header();
- между двумя sequence_header() или между sequence_header() и sequence_end() должен быть хотя бы один кадр;
- если в последовательности встретился sequence_extension(), то после каждого picture_header() должен следовать picture_coding_extension(), причем этот заголовок может следовать только непосредственно после picture_header();
- в конце битового потока должен находиться sequence_end_code;
- первый кадр после group_of_pictures_header() должен быть I-типа.
Таким образом, стандарт предусматривает обязательность наличия полей для записи дополнительных параметров кодирования как всей последовательности, так и каждого кадра. Как будет показано далее, многие из этих полей могут быть использованы для записи дополнительной информации.
Помимо sequence_extension() и picture_coding_extension() допускается еще ряд дополнений, различный для различных точек битового потока. Эти дополнения показаны в табл.П.2.29 Приложения 2.
Каждое дополнение может появиться лишь однажды в допустимом для этого месте битового потока. Если код дополнения будет равным зарезервированному значению, то декодер пропустит все данные до следующего стартового кода. Отсюда следует, что в эти данные можно внедрять информацию, так как она все равно не читается декодером.
Видеопоток всегда заканчивается sequence_end_code = 000001B7.
Начало потока sequence_header_code = 000001B3.
Далее идут значения размера кадра по горизонтали и вертикали. Эти значения представлены словами (horizontal)vertical_size_value, в которых значимыми являются 12 младших бит. Еще два бита значения размера (старшие) берутся из (horizontal)vertical_size_extension.
Далее идут биты, указывающие соотношение размеров сторон - aspect_ratio_information, значения которых представлено в табл.П.2.30.
После этого следуют четыре бита frame_rate_code, служащие для определения frame_rate_value, показанные в табл.П.2.31. Частота кадров может быть определена из значений frame_rate_value, frame_rate_extension_n и frame_rate_extension_d следующим образом:
frame_rate = frame_rate_value * (frame_rate_extension_n + 1) / (frame_rate_extension_d + 1).
Далее идет 30-битовое целое число bit_rate, указывающее битовую скорость. Младшие 18 бит этого числа есть bit_rate_value, а старшие 12 бит есть bit_rate_extension. Единицей измерения битовой скорости в данном случае является 400бит/сек.
После этого идет маркерный бит, равный 1. Он нужен для того, чтобы ошибочно не определить стартовый код.
Далее стоит размер буфера, необходимого для передачи с переменной скоростью. Это 18-битное целое число vbv_buffer_size, младшие 10 бит которого относятся к vbv_buffer_size_value, а старшие 8 бит – к vbv_buffer_size_extension. Размер буфера определяется как
B = 16 * 1024 * vbv_buffer_size.
Часть значения vbv_buffer_size может быть использовано для записи дополнительной информации.
Флаг constrained_parameters_flag оставлен для совместимости с ISO/IEC 11172-2 и равен 0.
После этого идут параметры матрицы квантования load_intra_quantiser_matrix, intra_quantiser_matrix, load_non_intra_quantiser_ matrix, non_intra_quantiser_matrix, описываемые позднее. На этом заголовок последовательности заканчивается.
Строка бит 000001B5 показывает, что в битовом потоке имеются дополнения по сравнению со стандартом ISO/IEC 11172-2.
Строка бит 000001B2 означает начало пользовательских данных, окончание которых будет определяться наличием стартового кода.
Пользовательские данные – произвольное число произвольных байтов. Единственным ограничением является запрет на серию из 23 нулей (так как это – стартовый код).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.