• No results found

Using GStreamer for hardware accelerated video decoding on Intel Atom Processor E6xx series

N/A
N/A
Protected

Academic year: 2021

Share "Using GStreamer for hardware accelerated video decoding on Intel Atom Processor E6xx series"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

324294

Using GStreamer for hardware

accelerated video decoding on

Intel® Atom™

Processor E6xx series

September 2010 White Paper

Abhishek Girotra Graphics SW TME Intel Corporation

(2)

Contents

Executive Summary ...3

Background ...4

Video Decode Engine ...5

Intel® Embedded Media and Graphics Drivers ...7

GStreamer Overview ...7

Configuring GStreamer for Hardware Acceleration ...8

Summary... 10

References ... 11

(3)

324294

Executive Summary

This paper introduces the video decode hardware acceleration capability of the Intel® Atom™ processor E6xx series [1] System-on-Chip. A new breed of graphics drivers named Intel® Embedded Media and Graphics Driver supports the platforms based on the Intel® Atom™ processor E6xx series SoC running Linux based Operating Systems such as MeeGo* [2] and Fedora*.

The GStreamer framework allows various multimedia applications to playback high definition videos on the Intel® Atom™ processor E6xx series SoC with low power requirements and CPU utilization.

This paper focuses on the software stack needed to enable the hardware accelerated video decode capability of the SoC. GStreamer [3] and other multimedia components compatible with MeeGo/Fedora including Intel®

EMGD [6], that are part of the video decode software stack are presented in detail. The GStreamer framework allows various multimedia applications to playback high definition videos on the Intel® Atom™ processor E6xx series SoC with low power requirements and CPU utilization.

The Intel® Embedded Design Center provides qualified developers with web- based access to technical resources. Access Intel Confidential design

materials, step-by step guidance, application reference solutions, training, Intel’s tool loaner program, and connect with an e-help desk and the embedded community. Design Fast. Design Smart. Get started today.

www.intel.com/embedded/edc.

(4)

Background

Intel recently unveiled the Intel® Atom™ processor E6xx series SoC for various market segments like IP Phones, Printers and In-Vehicle Infotainment systems for cars. The Intel® Atom™ processor E6xx series solution which focuses on delivering internet and mobile experience to consumers is a single chip solution combining an Intel® Atom™ processor, the memory controller hub, graphics engine and video engine. With benefits such as Intel

architecture, low carbon footprint and flexible solution which helps in reducing bill of materials and board real estate for embedded applications, the Intel® Atom™ processor E6xx series also enables consumers to playback High Definition video(s) on their embedded devices.

The demand for high definition videos on the embedded device has exploded in recent times with connectivity to Internet and availability of content with great graphic details. To meet this demand and the intense computing requirements of video processing algorithms, the Intel® Atom™ processor E6xx series video engine has dedicated hardware accelerator support to decode high definition video in real-time while doing so with a very low power requirement.

GStreamer is a multimedia framework that provides a unified approach to handling various types of videos from different sources. It also hides the OS, hardware and other platform components from the multimedia applications ranging from video playback, video chat to video streaming etc. Intel provides Media Infrastructure Accelerator (MI-X), a proprietary solution, to be used in the GStreamer multimedia framework as a plug-in. MI-X libraries hardware accelerates the GStreamer video decode and rendering process by processing and offloading the data to the Intel® Atom™ processor E6xx series video engine through the Intel EMGD driver. The communication between MI-X and Intel EMGD is based on industry standard VAAPI [5] specification.

(5)

Using GStreamer for Hardware accelerated video decoding on Intel® Atom™ Processor E6xx

5 Other multimedia framework like FFmpeg [4] that the Intel® Atom™

processor E6xx series SoC supports will not be discussed in this paper. A difference in performance exists when choosing one framework over the other. GStreamer framework is also supported for hardware accelerated Video Encoding on the Intel® Atom™ processor E6xx series SoC discussion of which is beyond the scope of this paper. This paper aims at introducing basic

GStreamer concepts and how the MI-X plug-in is used within GStreamer. This paper will serve as a basic guide to enable hardware accelerated video

playback along with information on software stack logistics.

Video Decode Engine

The Intel® Atom™ processor E6xx series SoC supports full hardware acceleration of H.264 [7], MPEG-2 [9], VC-1 [10], MPEG-4 [8] and WMV9 [11] video codec.

Table 1 summarizes the video codec profile/level/maximum resolution/

/maximum frame rate supported by the Intel® Atom™ processor E6xx series SoC for each codec standard accelerated in hardware.

Table 1: Supported Profile/Level on Intel® Atom™ processor E6xx series SoC

Format Profile Levels Max

Resolution

Max Frame

Rate

H.264 Baseline Profile L1,L1.2,L1.3,L2,L2.2,L3 1

H.264 Main Profile L1,L1.2,L1.3,L2,L2.2,L3,L3.1,L3.2,L4.1

H.264 High Profile L1,L1.2,L1.3,L2,L2.2,L3,L3.1,L3.2,L4.1 1080p 720p

30 fps 60 fps

MPEG-4 Simple Profile L0,L1,L2,L3

MPEG-4 DivX HD 3

MPEG-4 Advanced L0,L1,L2,L3,L5 2 720p 30 fps

(6)

Format Profile Levels Max Resolution

Max Frame

Rate Simple Profile

VC-1 Simple Profile LL,ML

VC-1 Main Profile LL,ML,HL

VC-1 Advanced

Profile L0,L1,L2,L3 1080p

720p

30 fps 60 fps

WMV9 Simple Profile LL,ML

WMV9 Main Profile LL,ML,HL 1080p

720p

30 fps 60 fps

MPEG-2 Simple Profile Main Level

MPEG-2 Main Profile Low, Main, High1440, High Level 1080p 720p

30 fps 60 fps

NOTES:

1. L3.1 may be supported where the toolset use is those common to both Baseline and Main Profile.

2. At L5 resolution, only Simple Profile Toolset is supported.

3. DivX is based on MPEG4 Advanced simple profile but ignores the levels defined by MPEG4. There are two variants of DivX. The “certified” version does not require GMC or quarter pixel motion compensation prediction. The

“non-certified” does support these features.

Note that the ability to play video at the stated resolution and frame rates is subject to the capabilities of the rest of the software stack and choice of multimedia framework. We recommend using VLD entry point for MPEG-2, H.264, VC-1, WMV9 and MPEG-4 codec standards which is supported by Intel® Atom™ processor E6xx series SoC.

(7)

Using GStreamer for Hardware accelerated video decoding on Intel® Atom™ Processor E6xx

7

Intel® Embedded Media and Graphics Drivers

Intel EMGD is enhanced over previous Intel Embedded Graphics Drivers, providing higher performance and improved usability. Among the numerous features like advanced display configuration settings, and 3D graphics acceleration, Intel EMGD also supports Hardware Video Decode Acceleration.

Primarily, the Intel EMGD acts as a liaison between the Intel® Atom™

processor E6xx series Video Decode/Display Engine and VAAPI. VAAPI defines the scheme to pass various types of data buffers from the application and codec(s) to a video acceleration driver, such as, Intel EMGD.

GStreamer Overview

The GStreamer framework is used to build multimedia applications like video phone, video conferencing, media player and streaming video etc. GStreamer is based on a plug-in model where 100s of plugins in its project database fit into the framework and provide audio/video codecs and other functionalities.

The plugins which can be classified as protocols, sources, formats, codecs, filters and sinks can be linked together to form a pipeline. The pipeline

defines the flow of the data as it passes through various categories of plugins.

An example of protocol could be a video file stored locally on the system or http: streaming. A sink is an object that accepts the data e.g. decoded video bit-stream from GStreamer pipeline going to the display acting as a sink, or compressed video as output from video encoding pipeline getting transmitted to the network as a sink. 3rd party plugins such as MI-X provided by Intel can also act as decoder filters for various video types (MPEG-4, VC-1 and H.264) or can act as a sink to display video decoded from the hardware.

(8)

Without going into the technical details of GStreamer, a video pipeline

example is shown in Figure 1 which lets the media player application connect a file source protocol, with a dvd demux format, video only output of which is sinked into an mpeg2 decoder. After the video data gets decoded it gets accepted by a sink element such as xvimagesink which is responsible for displaying the video onto the screen connected with the platform running a Linux system with X window system on it.

Figure 1: GStreamer pipeline for a basic video player

Configuring GStreamer for Hardware Acceleration

With capabilities of hardware video decode acceleration provided by the Intel® Atom™ processor E6xx series Video Decode Engine and Intel EMGD, GStreamer can use the full potential of the platform by following the simple process outlined below. First we will list the components needed to configure

(9)

Using GStreamer for Hardware accelerated video decoding on Intel® Atom™ Processor E6xx

9 GStreamer for hardware accelerated video decode and then in the next steps the paper will illustrate sample instructions to playback a video. Make sure to install all the OS specific GStreamer packages on your system before

proceeding.

Components Needed

Media Player:

A media player such as a GUI based Totem player or command-line based gst-launch tool available as part of GStreamer package can be used to create a player pipeline automatically or manually by providing options to the player.

Source:

A Movie file conformant with GStreamer supported container format and codec supported in Table 1 is required as a source to be played.

3rd Party GStreamer Plugins (MI-X):

MI-X plugins provided by Intel along with the Intel EMGD package constitutes a GStreamer decoder element and GStreamer sink element which will be responsible for communicating with Intel EMGD via the industry standard VAAPI specification. The MixVideoDecoder element will parse the compressed elementary video bit-stream and send decode specific data to Intel EMGD for handling.

MI-X licensing:

MI-X is provided by Intel as a proprietary solution for evaluation purposes. If customers wish to use it in a production solution, they should consult with their legal department on the need of a codec license for permissible use.

(10)

Creating a GStreamer Pipeline

As shown in Figure 1, in order to enable hardware acceleration, the example decode and sink blocks will be replaced by MixVideoDecoder and

MixVideoSink element respectively.

A Media File can be played by building the GStreamer pipeline using command line utility gst-launch

An example of playing hardware accelerated VC-1 video clip using gst-launch:

gst-launch filesrc location=./sample.wmv ! asfdemux ! queue ! MixVideoDecoder ! MixVideoSink

An example of playing hardware accelerated H.264/MPEG-4 part 2 video clip using gst-launch:

gst-launch filesrc location=./sample.mp4 ! qtdemux ! queue ! MixVideoDecoder ! MixVideoSink

An example of playing hardware accelerated DivX video file using gst-launch:

gst-launch filesrc location=./sample.avi ! avidemux! queue ! MixVideoDecoder ! MixVideoSink

Playback controls are not available when using gst-launch.

Summary

This paper introduced the concept of hardware accelerated video decoding on the Intel® Atom™ processor E6xx series SoC platform using GStreamer Framework on MeeGo/Fedora OS. The role of Intel EMGD and MI-X libraries is critical to enable the outlined solution. Details on all the components needed and steps to configure GStreamer to enable hardware accelerated video decode were outlined with help of sample instructions. For detailed instructions users should refer to Intel EMGD User’s Guide.

(11)

Using GStreamer for Hardware accelerated video decoding on Intel® Atom™ Processor E6xx

11

References

1. “Intel Plans New Intel Atom Processor-based System-on-Chip”,

<http://www.intel.com/pressroom/archive/releases/2010/20100413comp.ht m>

2. MeeGo,

<http://meego.com>

3. GStreamer: open source multimedia framework,

<http://gstreamer.freedesktop.org/>

4. FFmpeg,

<http://www.ffmpeg.org/>

5. Video Acceleration API,

<http://freedesktop.org/wiki/Software/vaapi>

6. Intel Embedded Media and Graphics Driver,

<http://edc.intel.com/Software/Downloads/EMGD>

7. ITU-T Rec. H.264 / ISO/IEC 11496-10, “Advanced Video Coding”, Final Committee Draft, Document JVTE022, September 2002

8. ISO/IEC 14496-2, “Information Technology – Coding of audio-visual objects – Part2: Visual”, 3rd Edition, 2004

9. ISO/IEC 13818-2, “Information Technology – Generic coding of moving pictures and associated audio information: video”, 1995

10. SMPTE 421M, “VC-1 Compressed Video Bitstream Format and Decoding Process”, Final Draft SMPTE Standard, 2006

11. Srinivasan et. al, “Windows Media Video 9: overview and applications”, pp. 851-875, Signal Processing: Image Communication, vol. 19, October 2004

(12)

Author

Abhishek Girotra is a Graphics Software TME with Embedded and Communications Group (ECG) at Intel Corporation.

Acronyms

API

CPU Central Processing Unit

EMGD Embedded Media and Graphic Drivers IP Internet Protocol

MI-X Media Infrastructure Accelerator OS Operating System

SoC System-on-Chip

VAAPI Video Acceleration Application Programming Interface VLD Variable Length Decoding

(13)

Using GStreamer for Hardware accelerated video decoding on Intel® Atom™ Processor E6xx

13 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL

PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY

WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any time, without notice.

This paper is for informational purposes only. THIS DOCUMENT IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY,

NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Intel disclaims all liability, including liability for infringement of any proprietary rights, relating to use of information in this specification.

No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted herein.

BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Inside, Core Inside, i960, Intel, the Intel logo, Intel AppUp, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, the Intel Inside logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel Sponsors of Tomorrow., the Intel Sponsors of Tomorrow. logo, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, InTru, the InTru logo, InTru soundmark, Itanium, Itanium Inside, MCS, MMX, Moblin, Pentium, Pentium Inside, skoool, the skoool logo, Sound Mark, The Journey Inside, vPro Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries.

*Other names and brands may be claimed as the property of others.

Copyright © 2010 Intel Corporation. All rights reserved.

References

Related documents

This design guide covers package thermal performance of Intel ® Atom E3800 Processor Family SoC SKUs with respect to intelligent system use conditions.. Background information

AES-NI is available on Intel® Core™ i5-600 Desktop Processor Series, Intel ® Core™ i7-600 Mobile Processor Series, and Intel ® Core™ i5-500 Mobile Processor Series. For

Learning how to communicate effectively in practice will present mental health nurses with different learning oppor- tunities and challenges; but in order for lifelong learning to

Patient Access Specialist I (OP Scheduler or Insurance Verifier) Patient Access Specialist II (VIP OP Scheduler / Insurance Verifier) Patient Access Specialist III

ITDI Data FAQs May 29, 2015 4 Step 3: Patients who received the majority (&gt; 50%) of their primary care visits in the past three years from your group of providers and for

KEY WORDS: Toastmasters International, communication skills, leadership skills, fear of public speaking, members’ retention, impromptu speech, self-improvement and development,

A very fast Intel Android image can be used on a computer with an Intel processor (with Vt), for an.. hardware

From: ESPEC Enterprise Service Specification ESPRO-4 Develop Service ESPRO-2 Conduct Review to Assess Infrastructure Impacts ESPRO-14 Monitor Service Performance ESPRO-6