News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

DVR prototype runs uClinux

Sep 22, 2008 — by Eric Brown — from the LinuxDevices Archive — 11 views

Minsk, Belarus-based Promwad Innovation Company says it used uClinux to create a digital video recorder (DVR) prototype. Based on an Analog Devices Inc. (ADI) Blackfin BF533 DSP (digital signal processor), the “JPEG2000 DVR” prototype encodes images in the Motion JPEG2000 format.

(Click for larger view of Promwad's JPEG2000 DVR)

Promwad's JPEG2000 DVR is designed to encode a PAL or NTSC video signal in the MJPEG2000 format, and store it to a USB flash drive, while simultaneously transmitting audio/video data to an external display. The DVR is based on ADI's BF533. Like other Blackfin DSPs, it uses the Micro Signal Architecture (MSA), which is said to support a RISC-like register and instruction model. The BF533 is equipped with two 16-bit MACs, two 40-bit ALUs, four 8-bit video ALUs, and a 40-bit shifter.

DVR prototype conceptual diagram

The Promwad team says it used ADI's EZ-KIT Lite desktop development board, along with ADI's ADSP-BF533 uClinux BSP. In addition, the DVR prototype includes Promwad's “WiFi-USB-ZigBee BF Extender Board” and ADI's ADV202 BF-Expander JPEG2000 video codec.

ADV202 video codec interactions

Promwad and its client selected Motion JPEG2000 due to the following touted advantages:

  • High level and quality of compression, noise immunity
  • Wavelet technology allows changing image resolution with minimal efforts
  • Absence of frame-to-frame connection, enabling selecting separate frames from video steam without processing

Promwad developed a driver for the ADV202, enabling the application to capture a compressed JPEG2000 stream, as well as adjust brightness, saturation, and contrast parameters. The team also developed a program module that saves frames received from the ADV202 codec to a video stream, with some data written to metadata fields of the JPEG2000 frame. The received data is saved in an AVI container file stored on a USB flash drive.

One of the core development tasks was creating the control protocol for the DVR, which is said to have the following capabilities:

  • Setting the quality of the recorded video stream (D1, QCIF, or CIF)
  • Setting recording parameters, including resolution, brightness, contrast, color, video standard, and compression level
  • Managing the file archive
  • Searching and selecting recorded video fragments by specified parameters from the archive
  • Broadcasting by low-speed channel both in real-time mode and from the video archive with the specified resolution, frame rate, and fragment length
  • Power control (sleep and resume)

Problems encountered along the way included a USB driver supplied with the BF533 BSP that did not fully support wakeup/resume after suspend, says the company. In retrospect, Promwad recommends using the AD212 codec instead of the ADV202, which suffers from excessive heat emissions and numerous (albeit well-documented) implementation errors, such as image artifacts, it said.

The DVR project took four months and 163 man-days, according to the company. The final firmware for the DVR prototype takes up 1.5MB, or just under 2MB with the U-Boot loader, says Promwad. Tools used include C, Bash, GCC, GNU make, Cunit, and Ffmpeg. Promwad appears to have enjoyed working with uClinux, which “allows creating different build profiles, easily integrating new components, and configuring the building of third-party components in detail,” says the company.


More information on the DVR prototype should be available here.

Previous Promwad design wins include two logic controller designs and a home automation panel.

This article was originally published on and has been donated to the open source community by QuinStreet Inc. Please visit for up-to-date news and articles about Linux and open source.

Comments are closed.