8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 107 108 109 110 111 112 113 ... 122

фигурация может послужить при написании высокоэффективного и сложного кодека. Таблица 7.3 суммирует полученные результаты. Мера PSNR компонент яркости (объективное качество) всех последовательностей практически совпадала, а разница в производительности видна по битовой скорости и по времени кодирования.

«Базовая» конфигурация кодирует последовательность за 40 секунд с битовой скоростью 46 кбит/с (исключая биты, относящиеся к первому 1-слою). Если использовать при компенсации движения только блоки размером 8 х 8 и больше, то время кодирования сократится (примерно на 6 секунд), но возрастет кодовая скорость (что и следовало ожидать). Применение нескольких ссылочных кадров (в нашем случае их пять) вместо одного увеличивает время кодирования (почти в 4 раза), но в результате возрастает битовая скорость. Добавление оптимизации по соотношению скорость/искажение (при которой несколько раз кодирует каждый блок разными способами, чтобы найти наилучшие параметры кодирования) уменьшает скорость; платой за это служит увеличение на 50% времени кодирования. В-снимки дают выигрыш по сжатию и повышают время кодирования (примерно на 50%); схема САВАС повышает компрессию, при этом время кодирования не возрастает.

«Расширенная» конфигурация кодирует последовательность в 4 раза медленнее «базовой», но уменьшает среднюю «базовую» битовую скорость примерно на 17%. Использование только одного ссылочного кадра существенно сокращает битовую скорость, причем для этого требуется незначительное повышение сложности кодирования.

Конец примера

Из этих результатов видно, что, по крайней мере, для данной последовательности наиболее желательная оптимизация (в смысле улучшения эффективности кодирования и вычислительной сложности) состоит в использовании В-снимков и энтропийного кодирования САВАС. Это приводит к заметному улучшению степени сжатия без существенного возрастания сложности кодирования. Следовательно, применение многократных ссылочных кадров дает лишь незначительное улучшение (причем только в сочетании с правильным подбором других мод, особенно при оптимизации по соотношению скорость/искажение), но значительно повышает вычислительную сложность процесса кодирования. Стоит однако заметить, что при тестировании видеоматериала других типов могут получиться иные результаты (см., например, [36]) и использованная модель ссылочного кодирования не была оптимизирована по вычислительной сложности.

7.4-5. Оптимизация по производительности

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


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

Нахождение настроек, близких к оптимальным, является сложной задачей. На самом деле, это может оказаться во много раз сложнее самого процесса видеокодирования. В реальных кодеках, применяемых на практике, выбор оптимальной стратегии зависит от доступной вычислительной мощности, а также от допустимой задержки кодирования. При автономном кодировании широко используется так называемое «двухпроходное» кодирование, при котором каждый кадр обрабатывается один раз для получения статистик, которые влияют на выбор окончательной стратегии кодирования на втором проходе (это часто делается одновременно с алгоритмом контроля скорости для достижения заданной битовой скорости или требуемого размера файла).

Было предложено много альтернативных стратегий оптимизации по соотношению скорость/искажение (например, на основе оптимизации по Лагранжу). Полезные ссылки можно найти в [6]. Такую задачу оптимизации нельзя решать изолированно от вычислительной производительности. На самом деле, оптимизацию видеокодека надо делать (минимум) по трем параметрам: по битовой скорости, по искажению и по вычислительной сложности. Все они влияют друг на друга. Например, оптимизация соотношения скорость/искажение достигается за счет повышения сложности кодирования, «быстрые* алгоритмы оценки движения часто имеют низкую вычислительную сложность за счет снижения эффективности


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

Офис. 25 шдр/с. МР4 SP. QP42

10О00

9000

8000

7000

I 8000 i

I 5000

4000 т

3000 2000 1000

V

V

0 20 40 60 80 100 120 140 180 180 200 Кадры

Рис. 7.35. Вариации битовой скорости (MPEG-4. простой профиль)

7.5. Контроль битовой скорости

Стандарты MPEG-4 Visual и Н.264 требуют, чтобы видеокадры обрабатывались по отдельным единицам — макроблокам. Если контролируемые параметры кодирования поддерживать постоянными (например, размер области поиска компенсации движения, шаг квантователя и т.п.), то число кодовых битов каждого макроблока будет меняться от макроблока к макроблоку в зависимости от содержания кадра, что приведет к варьированию битовой скорости выходного потока (измеренного в бит/кадр или в бит/с). Обычно кодер с фиксированными параметрами производит больше бит для исходных кадров, на которых запечатлено быстрое движение или



0 ... 107 108 109 110 111 112 113 ... 122