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

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

Запись дополнительной информации возможна за счет варьирования кодовыми словами энтропийного кодера.

Предусмотрено четыре способа кодирования В-кадров. За счет выбора способа можно передавать определенное количество информации.

Возможен и другой порядок следования кадров.

Как показывает практика, искажение векторов движения приводят к видимым артефактам на восстановленной видеопоследовательности. Поэтому, вряд ли целесообразна их модификация для записи дополнительной информации.

Таким образом, стандарт предусматривает обязательность наличия полей для записи дополнительных параметров кодирования как всей последовательности, так и каждого кадра.

Если код дополнения будет равным зарезервированному значению, то декодер пропустит все данные до следующего стартового кода. Отсюда следует, что в эти данные можно внедрять информацию, так как она все равно не читается декодером.

Часть значения vbv_buffer_size может быть использовано для записи дополнительной информации.

Пользовательские данные – произвольное число произвольных байтов.

8-битный параметр transfer_characteristics, описывающий характеристику передачи оптоэлектронного источника изображения. В заголовке группы кадров имеется параметр broken_link. Если он равен 1, то декодер считает следующие за I-кадром В-кадры утерянными и не декодирует их. В них можно записать информацию.

Флаг top_field_first в КК кадрах может быть равным как нулю (первым декодируется нижний кадр), так и 1. Можно передавать 1 бит информации на кадр.

Предсказание может быть как на уровне поля, так и на уровне кадра.

Существуют флаги, не влияющие на процесс декодирования. Существуют также флаги специфичные только для PAL-систем – v_axis и field_sequence. Флаг sub_carrier и параметр sub_carrier_phase связаны с фазой поднесущего колебания, в параметре burst_amplitude содержится информация об амплитуде импульса (только для NTSC и PAL систем).

Значения матриц квантования могут быть модулированы дополнительной информацией.

Расширения копирайта могут применяться для переноса информации (64 бита).

Квантованные коэффициенты.

2. Практическая часть

2.1 Решение задачи

Для улучшения микширования MPEG2 видео потоков в режиме реального времени было сделано следующее:

  1. В декодер добавлен модуль сбора статистики для каждого макроблока (Тип макроблока, его вектор предсказания движения, квант параметр и другие характеристики). Собранная статистика необходима кодеру для быстрого перекодирования неизменных участков кадра.
  2. В редактор видео был добавлен модуль, определяющий, какие макроблоки были изменены, эта информация так же необходима кодеру, для определения того, как надо кодировать неизменный макроблок.

Рис. 2.1.1

Большое внимание при разработке данной системы уделялось быстродействию каждого модуля в отдельности (декодера и кодера). Оптимизация производилась под процессоры архитектуры i386, поддерживающие SIMD инструкции MMX, SSE, SSE2. Данная оптимизация увеличила скорость декодера в среднем в 2 раза, скорость кодера в 1.7 раза.

2.2 Накладываемые изображения

Для тестирования системы микширования использовались видеопотоки с размером кадра 320x240 в формате YUV (без сжатия). Для получения полной картины использовались различные изображения с разными по сложности текстурами:

1.  Sputnik.yuv

 

На данном видеофрагменте представлен спутник, которые совершает вращающиеся движение по окружности. Данный видеофрагмент является трудным для кодирования, так как имеет сложную текстуру и сложное для кодера движение – круговое.

2.  Animation.yuv

 

Этот видеофрагмент является простым, так как обладает несложной текстурой (однотонный фон) и простым движением.

2.3 Исходные видеопотоки

1.  ccir39_normal

На этом видеофрагменте присутствует быстрое движение по всему кадру, что позволяет сказать, что данный видеопоток является сложным для енкодера.