4-channel video and audio recorder
- Project Overview
By order of the Russian producer of small scale audio/video registration systems we developed a video registration device for digitalization, storage and distribution of audio and video streams on request from 4 analogue sources.
Key characteristics of the 4-channel video recorder
- CompactFlash built-in drive video recording
- Video/Audio coding — JPEG2000 + OGG Vorbis
- Advance architecture of the managing software makes maximal best use of capabilities of the hardware platform (necessary program modules, drivers, user interface are developed).
Implemented network control protocol of the video recorder allows using the following functions:
- Diagnostics and control of video modules, power management
- Change in record parameters - standards, resolution, chromaticity, etc.
- Control of file archive, set parameter search
- Setting the video record quality (D1, QCIF, CIF)
- Low-bit-rate channel broadcast - in real-time mode or from archive
- Compact firmware upgrade - only 1,5 MB, together with a U-Boot loader - 2 MB
- Using a FOSS standard component (freeandopensoftware) — uClinux-dist, ffmpeg and Linux kernel - significantly reduced the term and development cost
- Long term batch operation of the device and low bit-rate radio channel remote control
4-channel video recorder specifications
Hardware Processor Analog Devices BF548 (Blackfin architecture) Debugging kit ADV202 BF-Expander Software OS uClinux-dist - special distributive Linux for built-in systems Video codec ADV212 Video compression algorithm JPEG2000 (with wavelet technology) - high degree and quality of compression, noise tolerance, video resolution changeability and interframe link nonavailability (frames can be selected from a video stream without any processing) Audio compression algorithm OggVorbis - effective compression without considerable deterioration of audio quality, small recording volume and patent restraint nonavailability
In the process of developing the 4th channel video and audio recorder Promwad experts accomplished the following tasks:
— Hardware platform development
— Software development
— Production of device prototypes
- How It's Made
Russian developer and manufacturer of smallscale audio/video digital registration systems
The customer set the objective to develop a video registration device designed for digitizing, storing and retrieving on request audio and video signals received from 4 sources of analog audio/video signals.
It is necessary to implement a long-term autonomous work with remote control and data reading via low-speed radio channel.
The development was carried out on the basis of research and development works (R&D works) aimed at investigating characteristics of ADV202 for video image compression, developing software and JPEG2000 video registration device prototype. These activities were carried out on the basis of ADV202 BF-Expander debugging kit.
Using the results of R&D works, Promwad made a decision:
- To use ADV212 video codec (improved version of ADV202) for digitizing video into Motion JPEG2000 format;
- To use BF548 processor with separate memory and extension buses and built-in IDE controller.
Promwad chose Motion JPEG2000 format as video compression algorithm. It has the following advantages:
- High level and quality of compression;
- Wavelet technology, applied in the algorithm, allows changing image resolution with minimum of calculations;
- Absence of interframe connection allows selecting separate frames from video stream without any processing.
Ogg Vorbis algorithm was chosen for audio compression as it has the following advantages:
- Improved psychoacoustic model allows compressing audio with greater efficiency without any considerable loss of sound quality;
- Significantly smaller size of recording than similar audio coding formats;
- Absence of patent restraints.
As a result of accomplished works, our engineers developed a video registration device on the basis of BF548 (Blackfin architecture) from Analog Devices, Inc. under Linux Operating system (uClinux-dist) control. The developed device allows recording video in Motion JPEG2000 + Ogg Vorbis format to built-in Compact Flash storage.
Promwad engineers developed and implemented control protocol for video recorder, capable of:
- Setting video stream quality (D1, QCIF, CIF);
- Setting recording parameters (resolution, brightness, contrast, chromacity, video standard, compression level);
- Controlling file archive (viewing contents, downloading and uploading files, cleaning the archive);
- Searching and selecting recording fragments by specified parameters from video archive;
- Broadcasting via low-speed channel, both in real time and from video archive, with possibility to specify required resolution, frame rate and fragment length;
- Performing diagnostics and controlling video modules;
- Managing power (sleep and resume functions).
The system consists of motherboard and four detached modules. Each module is designed for its channel and inserted into a PCIE slot. Each module has the following installed:
- ADV212 hardware video codec;
- Audio channel;
- Microphone amplifier;
- Signal level limiter by sound;
- Protection system for input sound and video signals;
- Video signal decoder.
The basis of motherboard is ADSP-BF548 Blackfin processor from Analog Devices, Inc. The motherboard also contains MT46V32M16P DDR, AT45DB642D SPI Flash and K9F2G08U0A NAND Flash.
The board has one physical layer converter for RS-232 ADM3202ARUZ and three physical converters for ADM3490ARZ installed. The system uses XC3S400A-4FGG320I FPGA from Xilinx, Inc. This FPGA has control signal and data switch board. This switch board is designed for connecting with external codecs. Besides that, the FPGA has the algorithm of intermediate storage of data received from codecs in internal MT45W8MW16BGX-708 memory.
As the basis of controlling software we used uClinux-dist – Linux distributive provided in source code for its further building and designed for embedded systems. uClinux-dist allows creating different build profiles, quickly integrating new components and configuring build of third-party components in detail.
During the work our engineers used Free/Open Source BSP, officially recommended by Analog Devices, Inc. (http://blackfin.uclinux.org).
During device development, we made the following changes:
- With the purpose to minimize load time we reduced U-Boot loader;
- To support USB-Ethernet D-Link DUB-E100 adapter we ported usbnet stack from the main branch of Linux kernel and adapted it for Blackfin architecture.
To control JPEG2000 hardware compression our engineers developed a driver for ADV212 chip, which represents v4l2 interface (Video for Linux Two). By using it user application can capture compressed JPEG2000 stream on request and configure parameters of brightness, saturation and contrast via ADV7183B ADC video driver. Firmware for ADV202 was loaded via standard firmware loader class, provided by Linux kernel.
The engineers developed another driver that allows user application to capture compressed Ogg Vorbis stream on request.
They also developed a program module that stores frames received from ADV212 and audio codec into video stream. During that special information is written to JPEG2000 frame special fields. The received data are stored in the recorder’s video archive in a standard AVI container. The format of recorded files allows viewing them using standard Windows XP utilities (if necessary, decoders are available).
Recorder’s video archive represents Compact Flash storage with FAT32 file system, containing a list of AVI files. When the storage is full, then a file with the earliest recorded time is deleted and a new file is written instead of it.
To display special information when viewing a video file, our engineers developed a special DirectShow video filter.
Video in Motion JPEG2000 format doesn’t have interframe dependencies, which allowed us to implement effectively a functionality for retrieving frames from the archive with a random step.
The controlling layer is implemented as a two-stream server-application via FSM (finite state machine) technology with control stream and an additional stream for data transmission via low-speed channel.
From technical solutions it is worth to mention a network support over USB in debugging variants of firmware and emulation of additional RS-232 port via SPORT. These solutions allow significant simplifying debugging process.
To debug the controlling layer, our engineers developed emulators for ADV212 and audio codec drivers – such solution allowed them to develop hardware and software part of video recorder independently and in parallel.
- Compact firmware – full system occupies only 1.5 Mb and together with UBoot loader fits into 2Mb.
- Support of advanced Motion JPEG2000 format with wavelet technology. It allows changing image resolution with minimal processor load and snapping “stop-frame” for any video fragment. This format is characterized by high level and quality of compression and noise immunity.
- Advanced architecture of controlling software, applied in the device, most efficiently utilizes platform performance.
- Wide application of standard FOSS components (free and open software), such as uClinux-dist, ffmpeg and Linux kernel, allowed significantly decreasing development time.