Аппаратная Компрессия
АППАРАТНАЯ КОМПРЕССИЯ И.Олейник Системы безопасности № 1(61), 2005 Системы, использующие аппаратные методы, вытесняя программные аналоги, прочно завоевали себе место среди PC-based (базирующихся на компьютерах) систем. Но мы не пытаемся предсказать «смерть» программным платам, мало того, можно быть уверенными, что мирное сосуществование различных способов сжатия сигнала продолжится.
Несмотря на увеличение мощности и пропускной способности шин персональных компьютеров, быстродействия вычислительных машин нам по-прежнему не хватает. Потребности пользователей растут, и это утверждение не в последнюю очередь касается сферы охранного видеонаблюдения.
Увеличение числа каналов дает реальную возможность для экономии места и средств, а также повышает удобство управления. Ведь ни у кого не вызывает удивления система, имеющая 32 или 48 каналов мультиплексированной записи в одном компьютере, но всегда хочется большего.
Например, записи такого количества каналов в реальном времени. Следует оговориться: вопрос, что лучше — программная или аппаратная — компрессия, не всегда однозначен.
Так, для многих пользователей данная проблема сводится к тому, какой компрессор (кодек) лучше.
Но сравнивать аппаратный и программный компрессоры формата MPEG4 или MPEG2 невероятно сложно. Если реализация произведена в соответствии со стандартом этих кодеков, то основные отличия будут лишь в степени отклонения от этих самых стандартов.
Это говорит лишь о том, что правильно реализованные компрессоры видео или аудио как в случае аппаратного сжатия, так и в случае сжатия за счет центрального процессора абсолютно равнозначны и одинаково эффективны. Кроме того, аппаратная компрессия в большинстве случаев означает, что сжатием просто занимается отдельный универсальный или специализированный процессор, выделенный на один или несколько каналов.
Работу этого процессора обеспечивает программа, загружаемая с flash-памяти или даже с жесткого диска ПК. И вся прелесть именно в выделении узкого круга задач для передачи на отдельный процессор, что дает возможность оставить центральному процессору лишь функции управления, арбитража и обслуживания пользователя. Как устроено большинство аппаратных плат? В наиболее распространенных на сегодняшний день простых видеограберах (платах для оцифровки видео) аналогово-цифровой преобразователь (АЦП, его еще называют декодером, так как он выполняет функции декодирования видеосигналов различных стандартов) чаще всего совмещен с PCI-контроллером для передачи несжатого видео напрямую в память компьютера через DMA-канал (канал прямого доступа к памяти).
В этом случае PCI-декодер имеет небольшой буфер, никогда не вмещающий целый кадр, что зачастую создает трудности в передаче большого количества потоков через шину и часто приводит к своеобразным помехам на изображении (полосы). В аппаратных платах такая схема используется чрезвычайно редко.
В большинстве же случаев видеодекодер представляет собой отдельную микросхему, так как он передает оцифрованное видео не напрямую центральному процессору, а специализированной микросхеме сжатия.
Уже эти специальные компрессоры (или более многофункциональные микросхемы) выполняют несколько задач помимо компрессии, в том числе и функции PCI-контроллеров. Они масштабируют видео для вывода его напрямую на экран, — а значит, сколько бы вы ни показывали каналов на экран, суммарный поток через шину никогда не превысит разрешения экрана.
Сжатое же видео в желаемом размере и формате поступает через такие же DMA-каналы напрямую на запись и/или в память для передачи в сеть. Таким же образом передается и остальная информация — потоки детекторов, аудио, настройки.
В результате центральный процессор компьютера остается свободным для выполнения задач по работе с архивами, обработке данных детекторов движения и интерфейса, для других необходимых работ. Итак, если мы решили сжимать сигнал аппаратным методом, определим, каким образом сейчас «модно» осуществлять сжатие.
На рынке сложилось три характерных направления разработки аппаратных плат, базирующихся соответственно на применении:
- цифровых сигнальных процессоров (DSP); готовых микросхем-компрессоров; собственных компрессоров, реализованных на программируемой логике или универсальных микропроцессорах.
Цифровые сигнальные процессоры (DSP) Чем хороши DSP? Прежде всего своей универсальностью и многофункциональностью.
Для этих процессоров легко программировать и модифицировать программы.
Большинство новейших DSP имеют среду разработки с поддержкой одного из самых распространенных языков C++, отладочные средства имеют возможность эмуляции исполняемого кода на ПК, что также упрощает разработку.
Помимо простого сжатия видео и аудио, детектирования движения, DSP обладают возможностью масштабирования изображения для прямого вывода на экран, зачастую имеют много дополнительных интерфейсов (видео, сеть, PCI). Однако DSP-процессоры требуют большого внешнего объема памяти и почти все имеют огромное тепловыделение.
Рынок DSP-решений для CCTV поделен главным образом между двумя компаниями-гигантами -Philips с процессором Nexperia (ранее Trimedia) и Texas Instruments со своими процессорами серии TMS320. Кроме того, на рынке присутствуют компании поменьше, также специализирующиеся на DSP. Хорошую популярность, в частности, снискала компания Equator с одноименным процессором. Сложно сравнивать эти процессоры сточки зрения их применимости к области CCTV, но следует отметить некоторые моменты. Огромное количество аппаратных плат, реализованных на базе процессоров Nexperia, обусловлено прежде всего легкостью разработки (средства разработки поставляет несколько компаний), существованием готовых программных модулей-видеокомпрессоров MPEG4 и Н.264, аудиокодеков G.723 и 729, бесплатного OggVorbis. Nexperia, в отличие от TMS320, имеет встроенный блок для вычислений с «плавающей точкой», что также позволяет расширить область применения этих процессоров. Кроме того, процессоры Nexperia имеют встроенные возможности для масштабирования изображения, конвертирования изображения из одного формата в другой для вывода на экран через шину PCI, поддержку декодирования потоков, сжатых с применением Huffman-алгоритмов, собственно сам РCI-интерфейс. Сейчас цена на данные процессоры значительно упала, особенно на младшие модели (от 15 дол. поданным российского представительства Philips). Однако стоит заметить, что младшие модели (PNX130x) не так мощны, как хотелось бы, чтобы сжимать видео в реальном времени с разрешением полного кадра (720×756), и к покупке плат с полным кадром на этих процессорах стоит отнестись внимательно, получив от изготовителя вразумительные объяснения, как он добился высокой производительности устройства. Новый процессор серии PNX150x (0,1,2) с большей частотой, улучшенными возможностями и меньшим тепловыделением только появился на рынке, и пока практически никто не предлагает решений, основанных на использовании этого процессора, — речь идет только об образцах или самом начале серийного выпуска. РNХ150х имеет также встроенный деинтерлейс (устранение эффекта гребенки при совмещении двух полукадров), сетевой интерфейс МП (встроенный программный уровень TCP/IP позволяет легко получить доступ в сеть простым добавлением микросхемы физического уровня Ethernet) и даже IDE-интерфейс, что делает его практически «системой на чипе», как эта модно теперь называть. Рисунок 1 — Структурная схема платы с аппаратным сжатием Рисунок 2 — Структурная схема плат с программным сжатием Старшие модели процессоров TMS320 достаточно мощны, чтобы сжимать полнокадровое видео или даже 4 канала с разрешением четверть кадра (CIF или 352×288).
Однако решения на базеТI более дороги, поддерживают только целочисленные вычисления (возможно подключение сопроцессора для вычислений с плавающей точкой), а высокую цену пока оправдывает только возможность сжимать 4 канала низкого или 2 канала видео среднего разрешения (например, 704×288), тогда эта плата получается приемлемой по цене.
Решение, основанное на использовании процессоров Equator, сравнимо как по возможностям, так и по цене с мощными процессорами от TI, но отличается самым низким тепловыделением. Equator даже называет свои процессоры BSP — Broadband Signal Processor, всецело демонстрируя направленность на работу в мультимедийных приложениях.
Однако последние процессоры Tri-media не менее эффективны, так что выбор не очевиден.
Цена DSP при построении собственной платы аппаратной компрессии определяется не только стоимостью самого процессора и его периферии, но и стоимостью средств разработки, лицензий на программное обеспечение (не каждый будет сам разрабатывать код видеокомпрессора MPEG4 или Н.264 для DSP). Например, полный комплект средств разработки для процессоров Nexperia с годовой лицензией на кодеки MPEG2/MPEG4 обойдется в 20-25 тыс. дол. Разводка и изготовление плат на базе DSP очень сложны, редко эти платы бывают менее 4 слоев, и в России очень мало производств, способных выполнять качественный монтаж этих процессоров. Больная тема: детектирование движения в аппаратных платах В большинстве своем аппаратные платы не обладают какими-либо мощными детекторами движения. Это основной и практически единственный минус этих решений, так как мощность, например, DSP-процессоров еще недостаточно высока, чтобы помимо сжатия производить детектирование с высокой точностью и функциональностью, да и программировать такие процессоры сложнее, чем ПК. Специализированные микросхемы компрессии вообще для детекции не приспособлены, так как имеют только базовые возможности.
Однако все эти решения сравнимы по возможностям и функциональности с большинством простых систем PC-based (и уж конечно превосходят системы Non-PC). Анализ движения в большинстве аппаратных плат основан на обработке вспомогательной информации, поступающей от MPEG-энкодеров, компрессия которых, как известно, основана на предсказании движения от одного кадра к другому.
Отсюда берется и минимальный размер зоны: 16×16 пикселей.
Однако не стоит путать этот параметр с минимальным размером объекта, так как для принятия решения о смещении (так же как о тревоге) достаточно лишь некого изменения этого блока на некоторый процент.
Как показывает наша практика, для срабатывания достаточно изменения на 10-50% (в зависимости от чувствительности и контрастности объекта относительно фона) или, переводя единицы измерения на размер объекта, начиная с размера 2×2 пикселя. Аппаратные платы предназначены для сжатия видео с частотой 25 кадр/с, а значит, простого учета изменений от кадра к кадру может быть недостаточно: медленные объекты не успеют сместиться за 40 мс. Отсюда возникает необходимость создания дополнительного детектора медленного движения, который сравнивает кадры через определенный интервал, обычно от 12 до 25 кадров.
Такая функция есть даже не у всех программных систем (и не у всех аппаратных).
Специализированные микросхемы компрессии Вторая категория специализированных кодеков даже более обширна, чем предыдущая: каждый производитель мультимедиа-чипов стремится предложить на рынок свой собственный вариант кодеков MPEG2, MPEG4, Wavelet или JPEG2000.
Самые первые варианты микросхем MJPEG уже не пользуются популярностью. Они все еще встречаются в дешевых non-PC DVR, среди которых особенно популярны микросхемы Zoran.
В PC-платах такие микросхемы найти уже невозможно.
Да оно и понятно: аппаратные системы, строящиеся на персональных или индустриальных компьютерах, являются фактически форпостом передовых технологий, и никто не будет платить высокую цену за устаревшие возможности. Из микросхем, применяемых в аппаратных платах, наиболее известны WIS, VWEB, Intime и некоторые другие.
Самыми древними представителями данного семейства являются Analog Devices с его Wavelet-компрессорами серии ADV6xx (например, ADV611), а также с более новым кодеком JPEG2K, ну и самый старинный представитель этого семейства — вышеупомянутый Zoran, чьи JPEG-компрессоры в принципе применялись и в платах для ПК, но в основном в ТВ-тюнерах.
Каждая микросхема имеет свои особенности и часто не похожа на другую, но в общем-то цель у их производителей одна — уменьшить или вообще исключить использование внешней памяти (например, DSP-процессору для сжатия полнокадрового видео в MPEG-формат требуется до 64 Мб памяти), исключить использование внешнего сопроцессора, хотя он необходим для ADVGxx.
ADV611, например, не применяется как межкадровый кодек, но может использоваться для компрессии нескольких каналов параллельно. На каждый компрессор кодек ADV611 позволяет сжимать 1 реалтайм-канал (25 кадр/с) в разрешении 720×576 (двумя полукадрами), 2 реалтайм-канала с разрешением 720×288 или до нескольких мультиплексированных каналов с максимальным разрешением.
ADV611 не имеет аудиоканала, и аудиокомпрессию необходимо реализовывать отдельно. Детектор в этом кодеке также не реализован, хотя программа верхнего уровня (та, что работает под операционной системой) может использовать промежуточную информацию, поступающую от компрессора для детектирования движения.
Несмотря на все недостатки, Analog Devices — практически единственная компания, верная формату Wavelet, позволяющему получить высокое качество для отдельно сжатого кадра.
Однако расхваленный маленький размер кадра в килобайтах зачастую является фикцией, и любой межкадровый кодек с легкостью превзойдет качество, обеспечиваемое данным форматом.
Впрочем, у технологии Wavelet есть еще одно преимущество: возможность распаковывать кадр не полностью, а по уровням, например до 1/8 размера или только до 1/16 (зависит от количества уровней при сжатии). При одновременном просмотре 16 каналов вы можете распаковывать кадры только до 1/16 размера, сильно снижая таким образом нагрузку на ЦП компьютера.
Некоторые современные кодеки MPEG2/4 предлагают возможность многоканального сжатия видео (точнее, 4-каналь-ного), как и вышеупомянутый ADV, но, к сожалению, речь здесь идет о разрешении менее полного кадра или сжатии видео с меньшей частотой кадров. Например, Intime 6400 может сжимать 4 канала видео с максимальным разрешением, но с частотой кадров 7,5 на каждый канал в NTSC или 6,25 в PAL. Похожими возможностями обладает и одна из микросхем корейского производителя PentaMicro.
Реализованный в этих схемах подход очень удобен и выгоден при построении систем: запись с такой частотой кадров все еще востребована в сфере охранного видеонаблюдения. В сфере создания специализированных микросхем реализуются самые свежие идеи разработчиков.
Так, микросхемы VWEB имеют возможность одновременной компрессии и декомпрессии видео- и аудиопотоков.
Собственно эти микросхемы появились уже более года назад и сейчас следует ожидать выхода на рынок продуктов на их основе. Недавно и компания Intime предложила свой кодек 6500, работающий в дуплексном режиме с форматами MPEG2 и MPEG4.
Вы только представьте себе плату аппаратной компрессии, которая не загружает процессор не только при записи, но и при воспроизведении архивного видео, да еще и не прерывает при этом процесса записи! Практически все специализированные компрессоры имеют дополнительные возможности обработки видео.
Прежде всего это функция деинтерлейса, фильтры устранения шумов, аппаратные скейлеры (масштабирование видео для вывода на экран в режиме «оверлей»), несложный детектор движения, водяные знаки для защиты видео от редактирования и, конечно, синхронное аудиокодирование (4 канала для Intime 6400 и 2 канала для WVEB 2010). Собственные компрессоры Зачем компании все еще изобретают велосипед? Зачем придумывают новые или адаптируют существующие кодеки под себя? Прежде всего дело, конечно, в цене.
Хотя разработка проекта обходится довольно дорого, успешная реализация окупает затраты с лихвой.
Другие преимущества — отсутствие необходимости платить лицензионные отчисления, возможность использовать недорогие микросхемы программируемой логики или процессоры, легкая масштабируемость размеров изображения в сторону увеличения.
Надо отметить справедливости ради, что в этой области отличились и российские компании. Применение программируемой логики (FPGA) позволяет легко наращивать разрешение или скорость компрессии простым выбором более быстрой микросхемы или микросхемы с большим числом логических ячеек.
Есть у данного подхода и свои минусы: собственные кодеки не поддерживаются стандартными средствами воспроизведения (типа Windows Media Player).
Впрочем, этот недостаток характерен и для большинства DSP-решений, где используются модификации MPEG, оптимизированные подданные процессоры. Итак, аппаратная компрессия — это хорошая и удобная технология с прекрасным будущим.
Но не стоит забывать, что аппаратная плата должна иметь не только компрессию видео с высоким разрешением, но и возможность вывода несжатого видео на экран, высококачественное аудио и хороший детектор движения. Об авторе: Олейник Игорь Валерьевич, директор компании DSSL