Улучшение отношения сигнал/шум при микшировании видео изображения, сжатого по стандарту MPEG2, страница 11

Дополнения отображения изображения на дисплее

Эти дополнения не влияют на процесс декодирования и могут игнорироваться декодером. Они позволяют осуществить смещение окна просмотра видео, чей размер задается в sequence_display_extension() от кадра к кадру. Это может найти применение, например, при сканировании. Смещения задаются при помощи двух 16-битных чисел frame_centre_horizontal(vertical)_offset. Единицей измерения смещения служит 1/16 отсчета.

Дополнения масштабирования

A.  Масштабирование по времени

reference_select_code – 2 бита, показывающие опорный кадр или поле для предсказания, в зависимости от типа кадра.

forward_temporal_reference – 10-битное целое, показывающее смещение по времени кадра низшего уровня, используемого для предсказания вперед. Если это смещение имеет величину более 10 бит, то в этом поле кодируются младшие биты.

backward_temporal_reference – то же самое для обратного предсказания.

B.  Масштабирование по пространству

lower_layer_temporal_reference – 10-битное число, показывающее временное смещение кадра низшего уровня, используемого для предсказания.

lower_layer_horizontal_offset – 15-битное число, представленное в дополнительном коде. Отображает смещение верхнего левого угла кадра низшего уровня относительно кадра высшего уровня. Единицей измерения является пиксел кадра высшего уровня. То же самое, но для вертикального смещения - lower_layer_vertical_offset.

spatial_temporal_weight_code_table_index – 2-битное число, указывающее на используемую таблицу взвешивающих кодов.

Флаг lower_layer_progressive_frame равен 0, если низший кадр имеет чересстрочную развертку и 1, если прогрессивную. Флаг lower_layer_deinterlaced_field_select – обратные значения.

Расширения копирайта

extension_start_code_identifier – 4-битное целое, идентифицирующее расширение.

Флаг copyright_flag устанавливается в 1, если видео защищено авторским правом. Далее идет 8-битный copyright_identifier, проставляемый в соответствии с ISO/IEC JTC1/SC29. Затем идет флаг original_or_copy, потом 7 бит, применение которых зарезервировано.

После этого идут числа copyright_number_1, 2, 3. Первое из них 20-битное, остальные 22-битные. Вместе они формируют copyright_number по формуле copyright_number = (copyright_number_1 << 44) + (copyright_number_2 << 22) + copyright_number_3. Расширения копирайта могут применяться для переноса информации.

Структура данных слоя

slice_start_code – строка из 32 бит. Первые 23 бита равны 0, далее идет 1. Последние 8 бит – параметр slice_vertical_position, значение которого может меняться от 01 до AF.

В изображениях большого размера (более 2800 пикселов по вертикали) параметр slice_vertical_position дополняется параметром slice_vertical_position_extension.

Следующий 7-битный параметр priority_breakpoint указывает на точку в потоке, в которой происходит разделение потока на разделы (0 и 1). В разделе 1 это значение равно 0.

quantiser_scale_code – 5-битное целое, принимает значения от 1 до 31.

intra_slice_flag устанавливается в 1 для отражения присутствия параметров intra_slice и reserved_bits  в потоке.

intra_slice устанавливается в 0, если хотя бы один макроблок в слое не интра макроблок. Этот флаг не используется при декодировании.

reserved_bits – 7-битное целое, равное нулю. Остальные значения зарезервированы.

extra_bit_slice – флаг, указывающий на наличие дополнительной информации. Если он равен 1, то далее идет параметр extra_information_slice. Пока это не используется, и флаг должен быть равен 0.

Структура данных макроблока

Вначале может идти macroblock_escape – фиксированная строка 0000 000 1000 – в случае, если разность между previous_macroblock_address и macroblock_address больше 33. Это означает, что значение счетчика macroblock_address_increment равно 33. Например, если два macroblock_escape предшествуют параметру macroblock_address_increment, то к этому параметру прибавляется 66.

macroblock_address_increment – целое число переменной длины, показывающее разность между previous_macroblock_address и macroblock_address. Максимальное значение равно 33.