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



Similar documents
Video Encoding on Intel Atom Processor E38XX Series using Intel EMGD and GStreamer

Hardware- Accelerated Video Decode on the Intel Atom Processor with the Intel System Controller Hub US15W Chipset Platform

ARM* to Intel Atom Microarchitecture - A Migration Study

Internal LVDS Dynamic Backlight Brightness Control

Upgrading Intel AMT 5.0 drivers to Linux kernel v2.6.31

Intel Platform Controller Hub EG20T

Implementing Multiple Displays with IEGD Multi-GPU - Multi-Monitor Mode on Intel Atom Processor with Intel System Controller Hub US15W Chipset

Inside Linux* graphics

Intel Media SDK Features in Microsoft Windows 7* Multi- Monitor Configurations on 2 nd Generation Intel Core Processor-Based Platforms

DDR2 x16 Hardware Implementation Utilizing the Intel EP80579 Integrated Processor Product Line

Cyber Security Framework: Intel s Implementation Tools & Approach

Enabling new usage models for Intel Embedded Platforms

PHYSICAL CORES V. ENHANCED THREADING SOFTWARE: PERFORMANCE EVALUATION WHITEPAPER

Debugging Machine Check Exceptions on Embedded IA Platforms

Embedded Controller Usage in Low Power Embedded Designs

Considerations for Designing an Embedded Intel Architecture System with System Memory Down

CT Bus Clock Fallback for Linux Operating Systems

Intel Rapid Storage Technology (Intel RST) in Linux*

Developing secure software A practical approach

White Paper David Hibler Jr Platform Solutions Engineer Intel Corporation. Considerations for designing an Embedded IA System with DDR3 ECC SO-DIMMs

White Paper Amy Chong Yew Ee Online Sales Account Manager APAC Online Sales Center Intel Corporation. BOM Cost Reduction by Removing S3 State

Contents Overview and Product Contents

Processor Reorder Buffer (ROB) Timeout

Intel Media SDK Library Distribution and Dispatching Process

Whitepaper. NVIDIA Miracast Wireless Display Architecture

Intel IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor: Spread-Spectrum Clocking to Reduce EMI

Development for Mobile Devices Tools from Intel, Platform of Your Choice!

Power Benefits Using Intel Quick Sync Video H.264 Codec With Sorenson Squeeze

How To Install An Intel System Studio 2015 For Windows* For Free On A Computer Or Mac Or Ipa (For Free)

Using Windows* 7/Windows Embedded Standard 7* with Platforms Based on the Intel Atom Processor Z670/Z650 and Intel SM35 Express Chipset

Specification Update. January 2014

Intel(R) IT Director User's Guide

Xen in Embedded Systems. Ray Kinsella Senior Software Engineer Embedded and Communications Group Intel Corporation

The MeeGo Multimedia Stack. Dr. Stefan Kost Nokia - The MeeGo Multimedia Stack - CELF Embedded Linux Conference Europe

Accessing the Real Time Clock Registers and the NMI Enable Bit

Intel Dialogic System Software for PCI Products on Windows

Intel EP80579 Software for Security Applications on Intel QuickAssist Technology Cryptographic API Reference

Customizing Boot Media for Linux* Direct Boot

Enhanced Intel SpeedStep Technology for the Intel Pentium M Processor

An Architecture to Deliver a Healthcare Dial-tone

Intel Media Server Studio Professional Edition for Windows* Server

Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual

Intel 810 and 815 Chipset Family Dynamic Video Memory Technology

Software Solutions for Multi-Display Setups

Intel Embedded Virtualization Manager

Device Management API for Windows* and Linux* Operating Systems

GStreamer on Texas Instruments OMAP35x Processors

Intel Desktop Board D945GCZ

CyberLink. PowerDVD Copy. User s Guide

Intel NetStructure Host Media Processing Software Release 1.0 for the Windows * Operating System

Enhanced Diagnostics Improve Performance, Configurability, and Usability

Sample Project List. Software Reverse Engineering

NVIDIA GeForce GTX 580 GPU Datasheet

Intel Desktop Board DG31GL

White Paper Amit Aneja Platform Architect Intel Corporation. Xen* Hypervisor Case Study - Designing Embedded Virtualized Intel Architecture Platforms

Creating Full Screen Applications Across Multiple Displays in Extended Mode

Intel WiDi Remote 1.0 Release Notes

Intel Desktop Board DG965RY

Software PBX Performance on Intel Multi- Core Platforms - a Study of Asterisk* White Paper

Intel Desktop Board D945GNT

21152 PCI-to-PCI Bridge

Intel Desktop Board DQ965GF

Intel NetStructure Host Media Processing Release 2.0 for Windows

Intel 845G/GL Chipset Dynamic Video Memory Technology

Device Management API for Windows* and Linux* Operating Systems

Displaying Stereoscopic 3D (S3D) with Intel HD Graphics Processors for Software Developers August 2011

Applying Multi-core and Virtualization to Industrial and Safety-Related Applications

Multimedia Systems Hardware & Software THETOPPERSWAY.COM

Solomon Systech Image Processor for Car Entertainment Application

a basic guide to video conversion using SUPER

CSE 237A Final Project Final Report

Intel Server Board S3420GPRX Intel Server System SR1630GPRX Intel Server System SR1630HGPRX

VA (Video Acceleration) API. Jonathan Bian 2009 Linux Plumbers Conference

Quest vworkspace Virtual Desktop Extensions for Linux

Intel and Qihoo 360 Internet Portal Datacenter - Big Data Storage Optimization Case Study

Using Mobile Processors for Cost Effective Live Video Streaming to the Internet

CPU Monitoring With DTS/PECI

Introduction to PCI Express Positioning Information

Measuring Cache and Memory Latency and CPU to Memory Bandwidth

Intel Storage System SSR212CC Enclosure Management Software Installation Guide For Red Hat* Enterprise Linux

Revision History. Revision Revision History Date

Intel EP80579 Software for IP Telephony Applications on Intel QuickAssist Technology

NVIDIA VIDEO ENCODER 5.0

Serial ATA II Native Command Queuing Overview

How To Use The Galaxy Moonlight Digital Signage System On A Network With A Smart Phone Or Tablet Or Ipad Or Ipod Or Ipo Or Ipode Or Ipro Or Ipor Or Ipore Or Ipos Or Ipon Or Ipom

COMPUTING. SharpStreamer Platform. 1U Video Transcode Acceleration Appliance

Dialogic PowerMedia Extended Media Server

Intel Cloud Builder Guide: Cloud Design and Deployment on Intel Platforms

Intel Application Software Development Tool Suite 2.2 for Intel Atom processor. In-Depth

Intel architecture. Platform Basics. White Paper Todd Langley Systems Engineer/ Architect Intel Corporation. September 2010

IIS Media Services 3.0 Overview. Microsoft Corporation

Intel Data Direct I/O Technology (Intel DDIO): A Primer >

Intel Desktop public roadmap

Intel Desktop Board DG43RK

Intel Server S3200SHL

Fast CRC Computation for Generic Polynomials Using PCLMULQDQ Instruction

Transcription:

White Paper Abhishek Girotra Graphics SW TME Intel Corporation Using GStreamer for hardware accelerated video decoding on Intel Atom Processor E6xx series September 2010 324294

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 2

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 webbased 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. 324294

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. 4

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 5

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. 6

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. 3 rd 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. 7

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 8

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. 3 rd 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. 9

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. 10

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 11

Author Abhishek Girotra is a Graphics Software TME with Embedded and Communications Group (ECG) at Intel Corporation. Acronyms API CPU EMGD IP MI-X OS SoC VAAPI VLD Central Processing Unit Embedded Media and Graphic Drivers Internet Protocol Media Infrastructure Accelerator Operating System System-on-Chip Video Acceleration Application Programming Interface Variable Length Decoding 12

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. 13