Objective
This project will implement a new codec, the HEVC, using gstreamer on the OMAP 3 using the Davinci Multimedia Application interface. The current state of the art for HEVC is that it is very CPU intensive and early tests have shown that encoding 1 sec of video takes about 1 hour on a Xeon processor. It is believed that many of the processes in the HEVC, such as the 12-tap DCT, can be more optimal performed using a DSP. Although it would be premature to aim to achieve real-time video encoding at this time, the objective will be to attempt to exploit the instruction set of the TMS320C64x+ DSP core in the OMAP 3 to accelerate the video encoding process. The project will also aim to identify the additional hardware acceleration needed for realtime HEVC encoding over and above the current features offered by DSPs.
The demonstration will involve developing a video server that can capture live video from an image sensor, encode in HEVC, and transmit them out to a client via LAN.
Codec Development
The latest development is documented here:
The latest development source code can be checked out from SVN at the following url: https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware. The latest test model that is tagged is HM-3.2 avialable at https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-3.2.
Implementing Technologies
The
off-the-shelf BeagleBoard packs in power and capabilities with ARM Cortex-A8, OMAP, DSP and Graphics engines built into a very small form factor - smaller than a stick of gum.
- Processor: OMAP 3530 with Cortex -A8 and TMS320C64x+ DSP
Speed: 600MHz
Memory: 128MB low-power DDR RAM
256MB NAND Flash
On-board: microSD slot
Dimensions: 3"

The TI DMAI GStreamer (gst-dmai) plug-in uses the Davinci Multimedia Application Interface to simplify application use of the TI Davinci and OMAP hardware accelerators and DSP. GStreamer is run as an application on the ARM processor and through the use of DMAI is able to interact with the DSP or acceleration modules to acquire, render or transform audio and video streams. DMAI also takes care of using various hardware modules on the SoC to performs tasks such as frame copies using hardware acceleration.

GStreamer organizes its processing elements into pipelines to allow different types of processing to be done.

The gst-dmai is an element that can be placed in the GStreamer pipeline.
A generic video server can be created to support the compression of live images from a image sensor, together with the associated telemetry, using the following GStreamer pipeline:
v4l2src -> DMAI -> oggmux -> udpsink
The DMAI encodes live video gathered from the Video4Linux source. The video is packaged into an ogg container and sent out via UDP.
References