Direct Show Multimedia Framework by iWave on Freescale i.MX6 Platform
With the advancement in the processor technologies with built-in support for high compression data formats such as H264 and MPEG-4, provides the embedded devices with rich multimedia features such as video/audio playback and streaming. Multimedia frameworks such as Microsoft Direct show provides the capabilities to build multimedia applications which can effectively make use of Hardware VPU (video Processing Unit) provided in the processor platform and hence boost the overall system performance. iWave Systems technologies has developed the Direct show multimedia framework along with the development of Transform filters specifically for Freescale’s i.MX6 processor for Windows Embedded Compact 7 platform.
Direct Show Multimedia Framework:
DirectShow is a middleware architecture that provides a pipeline for media playback and capture. The DirectShow enables playback of multimedia content from local storage, from streamed sources over a network, or from a camera. The architecture is designed to support media sources such as camera, network and storage devices, various media formats such as AVI, MP4, MP3 and hardware media rendering devices such as display and speakers.
DirectShow uses filters to manage and manipulate multimedia data. These filters perform actions, such as
- Reading data from storage, network or from media source devices such as camera (Performed by Source filters)
- Parsing (performed by Source/Parsing filters)
- Encoding/Decoding (Performed by transform filters)
- Formatting (Performed by transform filters)
Rendering (Performed by Renderer filters)
Direct show based media player applications are built by connecting source, transform and renderer filters with the help of filter graph manager (FGM). The output of one filter can be directed to the input of one or more other filters. By constructing filter graphs using the Filter Graph Manager (FGM), one can use DirectShow as a flexible intermediary to translate various types of input into various types of output.
Microsoft DirectShow allows for high-quality playback of multimedia streams by supporting codecs for a variety of formats which includes the following:
- Advanced Streaming Format (ASF)
- Motion Picture Experts Group (MPEG)
- Audio-Video Interleaved (AVI)
- MPEG Audio Layer-3 (MP3)
- Waveform Audio (WAV)
windows Media Audio and Video (WMA and WMV)
Transform filter implementation details:
For a given platform, one typically needs to implement the audio and video decoder filters to take advantage of decoding hardware available on the platform and also need to implement the renderer filters if the platform has specific requirements (for example, requires writing to predetermined video memory for faster processing). Alternately, one can use the software renderers that are supplied by the OS.
Direct show Transform filter developed by iWave performs the encoding and decoding operations through i.MX6 processor’s VPU.
Video Processing Unit (VPU)of i.MX6 is a high performance multi-standard video codec which can decode H.264, VC-1, MPEG-4 SP/ASP, H.263, MPEG-1/2 MP, Divx (Xvid), MJPEG BP (max. 8192x8192) up to full-HD 1920x1088 @30fps.
It can also perform H.264, MPEG-4 SP, H.263, MJPEG BP (max.8192x8192) encoding up to full-HD 1920x1088@30fps. VPU can support encode or decode multiple video clips with multiple standards simultaneously.
The Filter graph shown above performs the decoding operation. Similar Filter graph can be assumed where the encoding operation is performed with Video and Audio encoding filters.
The Transform filter developed will be integrated with the source filter, parser filter for various media formats and video renderer filter in order to form the complete multimedia package for i.MX6 processor. Multimedia package enables any direct show supported media applications to render the video using the Hardware codecs and thus boost the overall system performance.
Ashfaque Ahamed is Member-Technical (Software)
iWave Systems Technologies Pvt. Ltd.