Павел Локтев,
Руководитель группы продаж
Видеоаналитика и медиакодеки
Современные тенденции в области обработки видео и аудио данных — максимальное использование возможностей оборудования профессиональными приложениями, обеспечивающих коммуникации, наблюдение, анализ изображений, микширование звука и т.д. Поэтому алгоритмы сжатия и обработки потоков сегодня имеют решающее значение.
АстроСофт имеет серьезный опыт в разработке ПО, которое учитывает различные ограничения аппаратных средств (производительность, объем памяти и т.д.). Наше ПО создано для работы с большим потоком аудио и видеоданных и позволяет использовать максимальные возможности имеющегося у вас оборудования.
Первый наш опыт в области обработки видео и аудио данных относится к началу 2000-х годов. За эти годы мы научились не только быстро решать поставленные задачи, но и решать их оптимальным способом, используя для этого подходящие инструменты.
Заказать презентацию
На сегодня самыми типичными являются задачи интеграции компонентов обработки данных в комплексные решения.
С появлением нового стандарта в кодировании видеоданных Н.265 и появлением, соответственно, задач его внедрения, мы готовы реализовать этот кодек на разных аппаратных платформах (IP-камеры, VMS, Smart-TV и т.д.)
В зависимости от задачи в области обработки видео и аудио данных мы применяем разные походы в ведении проектов:
- Реализация с нуля
- Перенос / оптимизации существующих решений
- Настройка среды
Это примеры некоторых наших проектов, иллюстрирующих различные подходы.
Moving detection (ARM+FPGA, 2012)
- От современной IP-камеры требуется возможность детекции движения (For state of the art IP-camera motion detection is a must). Это позволяет уменьшить полную стоимость системы видеонаблюдения за счет большей автономности камер, передачи видео только непосредственно до и после сигнала тревоги и тд
- В этом проекте требовалось создать распознавание движения современного уровня с использованием очень ограниченных ресурсов основного процессора и не создавая большой нагрузки на FPGA. Поэтому мы сфокусировались на моделировании алгоритмов, используя OpenCV, и нашли наилучшее их сочетание в условиях целевой платформы. В конце проекта лучшие алгоритмы были портированы на ARM и FPGA. В результате предварительная фильтрация выполнялась на FPGA, сокращая время последующего анализа на ARM.
- Получившаяся реализация использовала сильные стороны как FPGA так и ARM.
Video codecs for surveillance (x86, 2005)
- Системам цифрового видеонаблюдения требуются скоростные модули кодирования и декодирования видеосигнала для его передачи и хранения в записанном виде.
- В этом проекте особенно важно было качество сжатых изображений, что подчеркнуло важность разработки кодеков без потерь, либо ориентированных на качество. Скорость и степень компрессии тоже были важны. Т.к. совместимость со стандартами или сторонними инструментами не была важна, то были созданы новые кодеки, в полной мере использующие особенности имеющегося оборудования: удобство обработки данных в формате YUV422 набором команд SSE2. Большая часть данных обрабатывалась в режиме параллельных вычислений для всех компонент YUV422.
- На базе алгоритмов форматов JPEG, APT и Huffy были быстрые, SIMD-оптимизированные кодеки. Более того, поскольку это было написано без использования ассемблера, забота о планировании порядка следования инструкций была доверена компилятору. Использование С++ сохранило компактность кода.
CDMA codecs (ARM, 2003)
- В начале 2000-х стандарт CDMA активно внедрялся по всему миру, росло количество телефонов с его поддержкой. Для удешевления аппаратуры потребовалась программная реализация голосового кодера и декодера.
- Важной особенностью речевого кодирования от кодирования обычных медиа данных является обработка звука с минимальными задержками.
- В рамках этого проекта для процессора ARM926EJ-S были эффективно реализованы три кодека из семейства CDMA, учитывающих важность и производительности, и потребляемой памяти. В зависимости от типа кодека были использованы разные подходы к реализации: быстрая целочисленная арифметика (все), стандартные техники оптимизации (все), реализация узких мест на ассемблере (QCELP), поиск и использование идиом исходного кода, производящих быстрый бинарный код (EVRC), аппаратное ускорение с использованием DSP.
- В результате все кодеки уложились в требование не более 55 MCPS по производительности и не более 32 килобайт по памяти. Задержки кодирования составили всего 0,02 сек, для примера, в МРЗ задержка кодирование звуковых данных составляет 0,1 сек.