
Готовые решения предлагают нам нечто подобное, но не зря говорят – «хочешь, чтобы что-то было сделано хорошо – сделай это сам». На подавляющем большинстве видео серверов реализована система анализа межкадровой разницы. Как это работает? Из первого кадра вычитается кадр второй, и если процент расхождений достаточно мал – второй кадр не передается вовсе. Это удобно, если вы обозреваете комнату в десять квадратных метров, но если перед вами стометровые стеллажи склада, и где-то в дальнем углу злоумышленник в темном брючном костюме замыслил что-то не то – система может его и не воспринять. Счесть за помеху. И будет передавать на мониторы системы наблюдения тот же кадр снова и снова. Плюсом данного метода является его экономичность в плане канала передачи данных. Это существенно, если камера удалена от пункта наблюдения и изображение идет не через проводную сеть, а через Wi-Fi, WiMax, GPRS/HSDPA или RadioEthernet.
Однако, вернемся к нашим баранам. Для того чтобы реализовать компенсацию движения в видео, необходимо разбить изображение на блоки. Казалось бы, именно от этого и избавляет MJPEG-2000, и именно отсутствие блочного эффекта вменяют ему в основные плюсы. Эта проблема решается, если вместо предварительной обработки использовать пост-обработку кадра. Да, это замедлит процесс, но опытным путем выяснено, что даже мощности оказавшегося под рукой дремучего процессора от Analog Devices под громким названием ADSP-2183 хватает на 18 кадров в секунду на модном нынче разрешении 720p. Что же тогда говорить о процессорах современных, экономичных, холодных и быстрых? Аналогичная схема с каким-нибудь Qualcomm хоть и подорожает на пару десятков вечнозеленых единиц, но будет способна как на полноценные 720p, так и при некоторых доработках на 1080p. Итак, представляю вашему вниманию схему:

Рассмотрим подробнее элементную базу устройства. В качестве основного кодека взят ADV212, крайне удачная модель производства Analog Devices, способная работать как с проприетарным вейвлетом, так и с открытым форматом MJPEG-2000, для работы с которым, собственно, и была создана схема. Кодек показывает отличные результаты и сообщает о том, что готов сжать изображение до 400 раз. На собственном опыте уверяю, что даже 300 – уже не то, что надо. 250 – вот наша цифра. Остальные запчасти были приняты на вооружение исключительно потому, что других под рукой не было. Это наши звезды вечера: декодер-оцифровщик SAA7111 от Philips, занимающийся усилением НЧ-сигналов и контролем уровней яркости и цветности, и уже упоминавшийся ранее в статье старичок ADSP-2183, служащий одновременно и компенсатором движения, и анализатором однородности, и математическим сопроцессором.
Итого, что мы получили: за сумму в районе 120 долларов вместе с расходами на корпус и выводы, но без расходов на сборку, мы получаем рабочий одноканальный кодек, который дешевле своих конкурентов на добрую сотню американской валюты, в случае Китая, а то и на три, в случае модного бренда.

