29 октября 2013
Что такое хороший кодек?
С развитием рынка видеонаблюдения и появлением мегапиксельных видеокамер все большее значение приобретает компрессия видеосигнала при его хранении и передаче по сети. Кодирование и последующее декодирование сигнала уменьшает нагрузку на каналы передачи данных и позволяет обойтись меньшим объемом архива.
Компрессия сигнала производится при помощи кодеков, самыми известными из которых являются H.264, MPEG-4 и MJPEG. В чем их особенности? Можно ли однозначно сказать, что один из них лучше другого? Чтобы ответить на эти вопросы, нужно определиться…

Итак, каким требованиям должен удовлетворять кодек для охранного видеонаблюдения?
- Высокая степень (и скорость!) компрессии
Кодек должен обеспечивать высокую компрессию видеосигнала с большой производительностью и минимальными задержками. Это необходимо для снижения нагрузки на сеть и уменьшения объема архива, а также для синхронизации данных и повышения безопасности объекта (из-за большого времени задержки охрана может не успеть среагировать на нештатную ситуацию).
- Высокое качество картинки
Любой кодек портит изображение (так называемые потери компрессии). В хорошем кодеке потери качества картинки должны быть сведены к минимуму – ведь в видеонаблюдении важной может оказаться любая деталь в кадре. Не следует забывать о возможности предоставления данных в различные инстанции (включая судебные) и о технологиях идентификации объектов, для которых высокое качество картинки просто необходимо.
- Низкая нагрузка на оборудование
Чем сильнее степень компрессии – тем более производительным должен быть процессор кодирующего / декодирующего устройства, а это ведет к повышению стоимости оборудования.
- Простой доступ к видеоданным
Для охранного видеонаблюдения важно иметь возможность быстрого доступа к конкретному кадру, причем как при просмотре в реальном времени, так и из архива.
- Бюджетность
Кодек не должен существенно увеличивать общую стоимость системы видеонаблюдения – а это относится и к пропускной способности каналов связи (их прокладка или аренда), и к объему архива для хранения данных, и собственно к оборудованию (кодеры и декодеры).

Даже на первый взгляд видно, что эти требования во многом противоречат друг другу. Высокая степень и скорость компрессии требует больших мощностей процессора – а это приводит к существенному увеличению стоимости оборудования для обработки сигнала. Да и качество изображения при этом страдает. Но если сигнал сжат слабо – стоимость системы возрастет за счет большого объема архива и повышенных требований к каналам связи, хотя качество картинки, скорее всего, будет лучше.
Поэтому идеального кодека в настоящее время, увы, просто не существует. Можно только подобрать кодек, более-менее оптимальный для конкретной системы видеонаблюдения с учетом поставленных перед ней задач.
Кодеки принято делить на потоковые или Inter (H.264 и MPEG-4) и покадровые или Intra (MJPEG). Основное различие между этими типами кодеков заключается в том, что покадровые сжимают каждый отдельный кадр, который является опорным, а потоковые оперируют с группой кадров, сохраняя не сам кадр, а изменения в нем по отношению к предыдущим или последующим кадрам.
MJPEG (Motion JPEG)
Этот покадровый кодек отличается простотой и быстротой сжатия данных, легкостью доступа к конкретному кадру и самой низкой степенью компрессии. Его особенности:
- низкие требования к оборудованию обработки данных;
- высокое качество картинки;
- малое время обработки (задержки) сигнала;
- простота получения кадров из архива;
- большой объем архива (вследствие большого «веса» данных);
- высокие требования к пропускной способности сети.
Покадровый метод компрессии MJPEG рекомендуется использовать в бюджетных сетях с низкими вычислительными мощностями и камерами не самого высокого разрешения, а также там, где качество картинки является приоритетным.
MPEG-4
Этот потоковый (или внешнекадровый) кодек является общепринятым мировым стандартом при оцифровке и сжатии видео и звука, он активно применяется в телевещании и киноиндустрии, при записи фильмов на диски и т.п. При компрессии сигнала применяются сложные алгоритмы, причем обрабатывается группа кадров с сохранением только изменений в кадре.
Сложные алгоритмы сжатия требуют больших вычислительных ресурсов и большего времени на обработку сигнала. Небольшая задержка и потеря качества картинки на экране телевизора допустима… а на мониторе наблюдения оператора? Что, если именно эта задержка приведет к беде, а «потеряется» самая нужная часть кадра? Особенности кодека MPEG-4:
- более высокая степень компрессии (по сравнению с MJPEG);
- требуется меньше дискового пространства для хранения архива;
- ниже требования к пропускной способности сети;
- требуются более мощные процессоры (т.е. более дорогие кодеры и декодеры);
- более сложное восстановление отдельного кадра;
- увеличивается задержка при передаче сигнала.

H.264 (MPEG-4 part 10)
Хотя формально H.264 является не более чем разновидностью MPEG-4, его принято считать отдельным кодеком… возможно, из-за его быстро возрастающей популярности у производителей оборудования для охранного видеонаблюдения.
Как и MPEG-4, кодек H.264 обрабатывает группы кадров, при этом применяются еще более сложные алгоритмы для достижения еще большей степени компрессии данных. При сжатии в памяти одновременно сохраняются несколько обрабатываемых кадров (с прямым доступом к каждому кадру), поэтому H.264 отличается самой большой задержкой… но и самой высокой степенью сжатия.
Кодек H.264 – хороший выбор для систем видеонаблюдения с большим числом мегапиксельных видеокамер и хорошими вычислительными мощностями, при этом снижаются требования к каналам передачи данных и размеру архива. В России этот кодек получил большое распространение не в последнюю очередь из-за низкой пропускной способности сетей.
Принято считать, что H.264 сжимает изображение примерно на 50% лучше, чем MPEG-4, и на 80% - чем MJPEG. К примеру, средний «вес» кадра от двухмегапиксельной камеры, сжатого при помощи MJPEG, около 280 кб; при помощи MPEG-4 – более 30 кб; а кодек H.264 сожмет 2-х мегапиксельную картинку до размера примерно 20 кб.
Motion Wavelets
Этот кодек появился сравнительно недавно, он основан на теории вейвлет-функций («маленьких всплесков») и разработан специально для охранного телевидения. Каждый кадр видео можно описать всплесками и спадами цвета и яркости в определенной точке и в определенный момент времени. Вейвлет-кодирование – это, образно говоря, разложение картинки на вейвлеты, а декодирование – собирание изображения из них.

На диаграмме мы видим сравнение двух кодеков - Motion Wavelets и DivX-5 Pro, в основе которого – модифицированный алгоритм компрессии MPEG-4, т.е. по сути мы сравниваем именно эти два кодека по отношению сигнал / шум. Сравнение проводилось путем сжатия одного и того же динамического видеофрагмента до 3-х файлов одного размера каждым кодеком (сильное, среднее и слабое сжатие). Далее файлы декодировались и оценивались с помощью программы PSNR Checker.
Вывод таков – при одинаковой степени сжатия Motion Wavelets меньше искажает сигнал. А если сжать обеими кодеками видео до одной степени искажения (одинаковое качество видео), то степень компрессии кодеком Motion Wavelets по сравнению с MPEG-4 выше примерно в 1,7 раза. Возможно, вскоре этот кодек будет поддерживать большинство сетевого оборудования.

Широко известные открытые мировые стандарты передачи данных, то есть по сути совместимости сетевого оборудования ONVIF и RTSP обеспечивают поддержку кодеков H.264, MPEG-4 и MJPEG. Поэтому если в спецификации к устройству указано, что оно соответствует ONVIF или RTSP (или не менее популярному стандарту PSIA), можно с большой вероятностью утверждать, что это устройство будет совместимо с другим устройством, поддерживающим этот же стандарт.

Некоторые производители разрабатывают свои кодеки, и они могут быть в чем-то лучше, чем общеизвестные H.264, MPEG-4 и MJPEG. К сожалению, тут есть большое НО, и называется оно «несовместимость с оборудованием других производителей». Встроив в оборудование малоизвестный стандарт кодировки сигнала, производитель тем самым резко сужает сферу применения такого оборудования.
Именно поэтому большинство производителей оборудования для охранного видеонаблюдения «встраивают» в него широко распространенные кодеки H.264, MPEG-4 и MJPEG. Иногда поддерживается только один из этих стандартов, чаще - два или три.
С одной стороны, это хорошо, т.к. оборудование с поддержкой мировых стандартов кодирования более универсально. С другой… МВД России наложило запрет на использование потоковых кодеков в системах видеонаблюдения, устанавливаемых в государственных учреждениях. Да и в судах при предоставлении доказательств нужен так называемый стоп-кадр, который можно получить только с помощью покадрового MJPEG.
Как к этому относиться? Первая ли это «ласточка» от МВД? Cui prodest? Замешаны ли тут чьи-то интересы… как это часто бывает в нашей стране? И будет ли запрет на потоковые кодеки со временем распространен не только на госструктуры? Или весы качнутся в обратную сторону и запрет на H.264 и MPEG-4 будет отменен?
Ответа на эти вопросы нет. Время покажет… А пока – производители профессиональных камер для видеонаблюдения с гордостью пишут на упаковке «поддерживаются кодеки H.264, MPEG-4 и MJPEG». Они – пишут, мы – покупаем и устанавливаем… И все мы ждем появления идеального кодека, способного быстро и покадрово сжать сигнал до минимального размера, не требуя при этом больших вычислительных ресурсов и не портя картинку.