Выполненные проекты
Специализация
Контрактная разработка электроники / Проекты / 4-х канальное устройство записи видео- и аудио-сигнала

4-х канальное устройство записи видео- и аудио-сигнала

4-х канальное устройство записи видео- и аудио-сигналаЗаказчик

Российская компания-разработчик и производитель малогабаритных систем цифровой регистрации аудио и видеоинформации.

Задача

Заказчиком поставлена задача разработать устройство видео регистрации, предназначенное для оцифровки, хранения и выдачи по запросу аудио и видеосигналов, полученных от 4 источников аналоговых аудио- и видеосигналов.

Общая структура устройства
Рисунок 1. Общая структура устройства

Необходимо предусмотреть долгосрочную автономную работу с удалённым управлением и снятием данных по низкоскоростному радио каналу.

Решение

Разработка проведена на базе опытно-конструкторской работы (ОКР), направленной на исследование характеристик ADV202 по сжатию видео изображения, разработку программного обеспечения и прототипа устройства регистрации видео изображения в формате JPEG2000. Данная работа проведена на базе отладочного набора ADV202 BF-Expander.

По итогам ОКР принято решение:
  • использовать видео кодек ADV212 (улучшенная версия ADV202) для сжатия оцифрованного видео изображения в формат JPEG2000;
  • использовать процессор BF548 с раздельной шиной памяти и шиной расширения и встроенным контроллером IDE.

Концепция

В качестве алгоритма сжатия видеоинформации выбран формат JPEG2000, который обладает следующими преимуществами:
  • высокая степень и качество компрессии, помехоустойчивость;
  • примененная в алгоритме вейвлетная технология позволяет осуществлять изменение разрешения изображения с минимумом вычислений;
  • отсутствие межкадровой связи, которое позволяет выделять из видеопотока отдельные кадры без какой-либо обработки.
Алгоритм Ogg Vorbis выбран для сжатия аудиоинформации и обладает следующими преимуществами:
  • улучшенная психоакустическая модель, позволяющая производить компрессию аудио сигнала с большей эффективностью без значительного ухудшения качества звука;
  • существенно меньший объём записи, чем аналогичные форматы аудио кодирования;
  • отсутствие патентных ограничений.
В результате проведенных работ разработано устройство видео регистрации на процессоре Analog Devices BF548 (архитектура Blackfin) под управлением ОС Linux (uClinux-dist). Созданный прибор позволяет производить запись видео в формате JPEG2000 + OGG Vorbis на встроенный накопитель CompactFlash.

Разработан и реализован протокол управления видеорегистратором, который обладает следующими возможностями:
  • задание качества записываемого видео потока (D1, QCIF, CIF);
  • установка параметров записи (разрешение, яркость, контраст, цветность, видеостандарт, степень компрессии);
  • управление файловым архивом (просмотр содержимого, загрузка и выгрузка файлов, удаление файлов, очистка архива);
  • поиск и выборка фрагментов записи по заданным параметрам из видеоархива;
  • вещание по низкоскоростному каналу, как в режиме realtime, так и из видео архива, с установкой желаемого разрешения, частоты кадров и длительности фрагмента;
  • диагностика и управление видеомодулями;
  • управление питанием (sleep и resume).

Съёмный модуль - Система состоит из материнской платы и 4х съёмных модулей, каждый из которых предназначен для своего канала и вставляется в слот PCIEАппаратное обеспечение

Система состоит из материнской платы и 4х съёмных модулей. Каждый модуль предназначен для своего канала и вставляется в слот PCIE. На модуле установлены:
  • аппаратный видео кодек ADV212;
  • канал аудио данных;
  • микрофонный усилитель;
  • ограничитель уровня сигнала по звуку;
  • система защиты по входным сигналам звука и видео;
  • декодер видео сигнала.
Основой материнской платы является процессор Blackfin ADSP-BF548 от компании Analog Devices. В своём составе материнская плата также содержит DDR MT46V32M16P, SPI Flash AT45DB642D, NAND Flash K9F2G08U0A.

Материнская плата - основана на процессоре Blackfin ADSP-BF548. В своём составе материнская плата также содержит DDR MT46V32M16P, SPI Flash AT45DB642D, NAND Flash K9F2G08U0A.

На плате установлены один преобразователь физического уровня для интерфейса RS-232 ADM3202ARUZ, и три преобразователя физического уровня для интерфейса RS-485 ADM3490ARZ.

В системе используется ПЛИС XC3S400A-4FGG320I от Xilinx. На данной ПЛИС реализован коммутатор сигналов управления и данных. Данный коммутатор предназначен для связи с внешними кодеками. Помимо этого, на ПЛИС реализован алгоритм промежуточного хранения во внешней памяти MT45W8MW16BGX-708 данных, поступающих от кодеков.

Программное обеспечение

В качестве основы управляющего ПО используется uClinux-dist – дистрибутив Linux, поставляемый в исходных кодах для последующей сборки и ориентированный на встраиваемые системы. uClinux-dist позволяет создавать различные профили сборки, быстро интегрировать новые компоненты и детально настроить сборку 3rd-party компонент.

При работе использован Free/Open Source BSP, официально рекомендуемый компанией Analog Devices (http://blackfin.uclinux.org).

В процессе разработки устройства внесены следующие модификации:
  • с целью минимизации времени загрузки урезан загрузчик U-Boot;
  • для поддержки USB-Ethernet адаптера D-Link DUB-E100 из основной ветки ядра Linux портирован usbnet стек и адаптирован для архитектуры Blackfin.
Для управления аппаратной компрессией JPEG2000 разработан драйвер чипа ADV212, предоставляющий интерфейс v4l2 (Video for Linux Two), c помощью которого пользовательское приложение по запросу может производить захват (capture) сжатого JPEG2000 потока и регулировать параметры яркости, насыщения и контраста через видео драйвер АЦП ADV7183B. Загрузка прошивки для ADV212 производилась через стандартный класс firmware loader, предоставляемый ядром Linux.

Разработан драйвер, позволяющий пользовательскому приложению по запросу осуществлять захват сжатого Ogg Vorbis потока.

Разработан программный модуль, сохраняющий кадры, принятые от ADV212 и аудиокодека, в видеопоток. При этом в служебные поля кадра JPEG2000 помещается специальная информация. Полученные данные сохраняются в видео архиве регистратора в виде файлов в MKV (Matroska) контейнере. Формат сохраняемых файлов позволяет просматривать их стандартными средствами Windows XP (при наличии необходимых декодеров).

Видео архив регистратора представляет собой Compact Flash накопитель с файловой системой FAT32, содержащий набор MKV файлов. В случае заполнения накопителя, файл с наиболее ранним временем записи удаляется и на его место записывается новый.

Для отображения служебной информации при просмотре видеофайла был разработан специальный видеофильтр DirectShow.

Видео в формате JPEG2000 не имеет межкадровых зависимостей, что позволило эффективно реализовать функцию извлечения из архива кадров с произвольным шагом.


Структурная схема видеорегистратора
Рисунок 2. Структурная схема видеорегистратора

Управляющий слой реализован как двухпоточное приложение-сервер по технологии FSM (finite state machine, или конечный автомат) с управляющим потоком и дополнительным потоком передачи данных по низкоскоростному каналу.

Из технических решений особо следует отметить поддержку сети поверх USB в отладочных вариантах прошивок и эмуляцию дополнительного RS-232 порта через SPORT. Данные решения позволяют существенно упростить отладку.

Для отладки управляющего слоя созданы эмуляторы драйверов ADV212 и аудиокодека – такое решение дало возможность вести разработку аппаратной и программной части видеорегистратора независимо и параллельно.

Преимущества

  • Компактная прошивка – полная система занимает всего 1.5 Mb и вместе с загрузчиком U-Boot умещается на 2Mb.
  • Поддержка передового формата JPEG2000 с вейвлетной технологией. Это позволяет менять разрешение изображения с незначительной нагрузкой на процессор и выдавать "стоп-кадр" для любого из фрагментов видеозаписи. Данный формат характеризуется высокой степенью и качеством компрессии и помехоустойчивостью.
  • Примененная передовая архитектура управляющего ПО максимально эффективно утилизирует производительность платформы.
  • Широкое использование стандартных FOSS компонент (free and open software), таких как uClinux-dist, ffmpeg и ядро Linux, позволило значительно сократить время разработки.
Технологии Embedded Linux, JPEG2000, OGG Vorbis Blackfin, FSM (конечные автоматы), v4l2
Языки программирования C, bash
Средства разработки GCC, GNU make, cunit, uClinux-dist, ffmpeg
Средства управления проектом DotProject, Mantis, SVN
Трудозатраты 160 человеко-дней
Срок выполнения проекта 4 месяца

Скачать PDF - 228Kb