Multimedia Framework Products. Nick Lethaby Manager, Software Partners Network

Similar documents
GStreamer on Texas Instruments OMAP35x Processors

TI expressdsp Digital Media Software Frequently Asked Questions: General Questions

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

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

SBC8100 Single Board Computer

B.E. (Electronics and Communication Engineering) from Govt. College of Engineering, Tirunelveli, Tamilnadu.

Going Linux on Massive Multicore

Lecture 25 Symbian OS

Android on i.mx Applications Processors

A Case Study in DSP Systems Integration: The TI Third-Party Vocoder Demonstration Kit

HDMI on OMAP4 PANDA. Design, Challenges and Lessons Learned Mythri P K

Mobile Operating Systems Lesson 05 Windows CE Part 1

Windows Embedded Compact 7 Multimedia Features 1

OMX, Android, GStreamer How do I decide what to use? 15 July 2011

Easy H.264 video streaming with Freescale's i.mx27 and Linux

Have both hardware and software. Want to hide the details from the programmer (user).

Digital Signal Processing Software and Development Tools Selection Guide

ReactOS is (not) Windows. Windows internals and why ReactOS couldn t just use a Linux kernel

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

TI Linux and Open Source Initiative Backgrounder

FarSync TE1R. A Universal PCI adapter for E1 and T1 (G.703 / G.704) connections for Linux and Windows

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Data Management for Portable Media Players

SEMS: The SIP Express Media Server. FRAFOS GmbH

Development Kit (MCSDK) Training

Getting Started with RemoteFX in Windows Embedded Compact 7

KeyStone Multicore. Ecosystem

FarSync TE1e. A PCI Express adapter for E1 and T1 (G.703 / G.704) connections with BNC and RJ48C connectors for Linux and Windows.

CSE 237A Final Project Final Report

Lean and Easy Ways to Adopt MOST Technology

Architectures and Platforms

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

How mobile operators can monetize 3G investments through an effective applications platform

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

System Considerations

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

FabulaTech Products Advanced Communications Solutions

Region Free DVD Playback with VLC. By Mikio Moriyasu

Analysis of Open Source Drivers for IEEE WLANs

Chapter 11 I/O Management and Disk Scheduling

The new 32-bit MSP432 MCU platform from Texas

Issues in Android on Mobile Platform and Their Resolution

Stream Processing on GPUs Using Distributed Multimedia Middleware

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

MEP-7000 FREQUENTLY ASKED QUESTIONS (FAQS)

Locus digital DVB-T STB

Using the TASKING Software Platform for AURIX

FarSync T2Ue. A 2 port PCI Express synchronous communications adapter

Android Virtualization from Sierraware. Simply Secure

Chapter 2 System Structures

4. H.323 Components. VOIP, Version 1.6e T.O.P. BusinessInteractive GmbH Page 1 of 19

Software design (Cont.)

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Mobile Devices: Server and Management Lesson 05 Service Discovery

Weighted Total Mark. Weighted Exam Mark

Mobile Operating Systems. Week I

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

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

Overview of CS 282 & Android

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

DVoIP: DYNAMIC VOICE-OVER-IP TRANSFORMATIONS FOR QUALITY OF SERVICE IN BANDWIDTH CONSTRAINED ENVIRONMENTS

Operating Systems: Basic Concepts and History

high-quality surround sound at stereo bit-rates

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Chapter 1 Computer System Overview

An Embedded Based Web Server Using ARM 9 with SMS Alert System

By Andrew Wilson, Editor

State of the GStreamer Project. Jan Schmidt. Centricular Ltd

CMB 207 1I Citrix XenApp and XenDesktop Fast Track

Useful USB Gadgets on Linux

Example of Standard API

Nios II-Based Intellectual Property Camera Design

Chapter 5 Cloud Resource Virtualization

Computer Organization & Architecture Lecture #19

MP3 Player CSEE 4840 SPRING 2010 PROJECT DESIGN.

Video Conferencing Unit. by Murat Tasan

4Kp60 H.265/HEVC Glass-to-Glass Real-Time Encoder Reference Design

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

Professional Tizen Application Development

Embedded Linux RADAR device

Fragmented MPEG-4 Technology Overview

OPTIMIZE DMA CONFIGURATION IN ENCRYPTION USE CASE. Guillène Ribière, CEO, System Architect

Whitepaper. NVIDIA Miracast Wireless Display Architecture

M-Shield mobile security technology

DRM Driver Development For Embedded Systems

Solomon Systech Image Processor for Car Entertainment Application

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

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

Computer Audio Design 1543 DAC Windows Recommended Playback Software Installation

Windows Embedded 7 E versus Windows Embedded 7 P

The best of both worlds

Building an audio player using the Texas Instruments OMAP-L137

Rich Media & HD Video Streaming Integration with Brightcove

VOD Encoder Fast HIDef Video Encoding

Hauppauge Capture. Copyright 2013 Hauppauge Computer Works

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

R m e o m t o e t US U B S - B S - D M 3 p FM R d a i d o i Pl P a l y a e y r e Mo M d o u d l u e l Wi W t i h t LE L D D s i p s l p a l y a -A

Creating and Using Databases for Android Applications

Transcription:

Multimedia Framework Products Nick Lethaby Manager, Software Partners Network 1

Agenda What are TI Multimedia Framework Products? XDAIS & XDM overview Framework Components overview Codec Engine overview Block diagrams for select TI devices Linux Utilities overview Local Power Manager overview WinCE summary 2

What are Multimedia Framework Products? Multimedia Framework Products (MFP) provide a low-level framework that provides remote or local instantiation of XDAIS-compliant algorithms and XDM-compliant codecs It can execute any XDAIS-compliant algorithm and is not limited to multimedia applications MFP (in combination with 1-2 other products) are often referred to as the TI Multimedia Stack MFP do not provide a full multimedia framework with services such as stream parsing or AV synchronization Such a framework (e.g. Gstreamer) calls the MFP to execute a particular codec or algorithm MFP consist of several different software products that will be explained in a largely bottom-up order A basic understanding of XDAIS/XDM is essential These products may be used standalone to increase developer flexibility 3

Overview of MFP Products Component Codec Engine (CE) Linux Utilities Local Power Manager (LPM) Framework Components (FC) XDAIS Description The framework that builds on the low-level components to provide transparent remote and local execution of XDAIS- and XDM-compliant codecs. In addition, CE also performs some basic power management of a remote DSP core. CE bundles its dependent components (see below) in a directory called cetools. These modules provide services that require Linux kernel components to perform memory allocation, DMA transfers, or interrupt handling. This module provides a Linux interface for power management of a DSP core from an ARM on ARM-DSP devices. These modules provide off-the-shelf components for building a framework that correctly interacts with XDAIS-compliant aglorithms. This SDK contains the documentation, header files, examples, and validation tools required to develop a XDAIS or XDM-compliant algorithm or codec. 4

The XDAIS Standard TI s XDAIS (express Dsp Algorithm Integration Standard) standard simplifies integration of multiple algorithms Algorithms are not allowed to hardcode access to hardware resources In lieu, they provide interfaces that may be called to determine which resources are needed The application framework calls these interfaces and grants resources The IDMA3 interface is queried by the framework to discover what DMA resources are required by the algorithm IALG Algorithm/Codec IDMA3 IRES The IALG interface is queried by the framework to discover what memory resources are required by the algorithm The IRES interface is queried by the framework to discover any accelerator resources required by the algorithm 5

The XDM Standard TI s XDM (express Dsp Multimedia) standard standardizes APIs for common classes of multimedia codecs Enables different XDM-compliant implementations to be easily swapped in or out Enables the same application code to support multiple different codec standards (for example a digital music player that needs to play MP3 and WMA-encoded songs) Included in XDAIS 5.x and above These APIs are also referred to as the VISA (Video/Imaging/Speech/Audio) APIs Multimedia Class Video Imaging Speech (Voice) Audio Video Analytics Video Transcoding Arbitrary algorithm XDM (VISA) Interfaces IVIDDECx (decode), IVIDENCx (encode) IIMGDECx (decode), IIMGENCx (encode) ISPHDECx (decode), ISPHENCx (encode) IAUDDECx (decode), IAUDENCx (encode) IVIDEANALYTICSx IVIDTRANSCODEx IGENERICx 6

Framework Components Framework Components (FC) provide pre-tested components to facilitate development of frameworks using XDAIS-compliant algorithms Each XDAIS-interface that can be exported by an algorithm (IALG, IDMA3, IRES) has an equivalent FC module The primary role of the FC modules is to query the algorithm about its resources and then grant them Application Framework Dskt2 lib DSKT2_createAlg()... Dman3 lib DMAN3_init() DMAN3_grantDmaChannels()... Algorithm IALG interface algalloc()... IDMA3 interface dmagetchannels() dmainit()... 7

Framework Components Component DSKT2 DMAN3 RMAN IRESMAN ACPY3 SCPY Description DSKT2 allocates memory resources algorithms. DSKT2 queries an algorithm s IALG interface. It ensures algorithms only acquire free or scratch memory resources. DSKT2 support different memory types, such as scratch and persistent, and enables scratch memory to be efficiently reused by multiple algorithms. DMAN3 is the manages DMA resources for the C64x+ EDMA3 hardware. DMAN3 queries an algorithm s IDMA3 interface. It ensures that algorithms only acquire free DMA resources. Note that DMAN3 primarily deals with allocation of QDMA channels. For sharing EMDA3 channels directly, use RMAN/IRESMAN. DMAN3 is compatible with the EDMA3 driver delivered in the Platform Support Packages for DSPs. RMAN is an abstraction layer that is required because many devices have multiple resource types that need to be managed. RMAN redirects specific resource management to IRESMAN components. IRESMAN manages a specific resource such as EDMA3 or the VICP accelerator. Each resource will have its own IRESMAN implementation and a device will often have multiple IRESMAN components (for example IRESMAN_VICP and IRESMAN_EDMA3). IRESMAN for EDMA3 is compatible with the EDMA3 driver delivered in the Platform Support Packages for DSPs. ACPY3 does not support any specific XDAIS-interface. It is a convenience function that provides fast memory-to-memory copies (as often required by video codecs) using DMA. It requires the DMA channels to be allocated via DMAN3. SCPY is a convenience function that provides Linux applications with fast memory-to-memory copies using DMA. It requires the SDMA Linux Utility. 8

XDAIS, XDM & FC Summary Application Framework DSKT2 DMAN3 RMAN IDMA IALG IRES IVIDDEC Video Decoder VICP HDVICP LINUX 9

Codec Engine Overview Codec Engine is a low-level framework designed to provide transparent execution of multimedia codecs and algorithms on TI devices It enables an application to create and execute a multimedia codec using the VISA APIs either locally or remotely ARM-only, ARM+accelerator, ARM+DSP, and DSP-only devices are all supported It automatically handles allocation of memory, accelerator, and DMA resources for the algorithm as well as any remote thread creation Multimedia codecs must be XDAIS/XDM compliant and also conform to additional packaging standards to work in Codec Engine Arbitrary algorithms that comply with XDAIS and the packaging standards are also supported through a generic interface For ARM-DSP devices, it also provides power-on/off and hibernate/resume capabilities for the DSP core 10

Codec Engine Dependencies In addition to requiring XDAIS/XDM-compliant codecs and FC, Codec Engine may require all or some of the following: Linux Utilities: These provide user-space access to hardware resources managed by the Linux kernel These are required by ARM-only, ARM+accelerator, or ARM+DSP devices Local Power Manager: Enable power management of the DSP core from Linux LPM is relevant for ARM+DSP devices only DSP/BIOS Link: Enables ARM to bootload DSP core and provides communication services between the ARM and the DSP DSP/BIOS Link is relevant for ARM+DSP devices only DSP/BIOS: Provides basic RTOS services on the DSP core DSP/BIOS is relevant for ARM+DSP and DSP-only devices only 11

DM365 MFP Customer Application ALG VISA APIs Codec Engine IALG Video Decoder IRES RMAN Key Framework Components Linux Utilities Codec Engine IRESMAN VICP IRESMAN HDVICP IRESMAN EDMA3 CMEM VICP LINUX LINUX EDMA 12

OMAP3530/DM6446/DM6467 MFP Customer Linux Application ARM DSP Key Framework Components Linux Utilities Remote Message Server Codec Engine/VISA Codec Engine Other TI system software VISA APIs Codec Engine DSKT2 DMAN3 RMAN IALG Video Decoder IDMA IRES VICP HDVICP CMEM DSP/BIOS Link Local Power Manger Power Manager DSP/BIOS Link LINUX DSP/BIOS 13

Linux Utilities Component CMEM SDMA EDMA VICP Description CMEM is a contiguous memory manager for Linux and ensures that large contiguous blocks of memory can be allocated (e.g. for video buffers). Contiguous memory is required because the DSP or accelerator processing the buffer lacks an MMU to handle a fragmented buffer. SDMA (System DMA) is a peripheral accessible from the ARM core on OMAP3x devices. The SDMA utility library provides the ability for user-mode applications to request SDMA channels and operate on a channel using direct, memory-mapped access to the channel's DMA registers. This library is used by the SCPY function (see FC slide) in ARM-resident multimedia codecs. Since TI does not directly provide ARM-side codecs, TI s DVSDK MFP stack configurations do not use SDMA. The DM365 and DM355 use EDMA3 to provide DMA services to applications on the ARM core. The EDMA utility library provides the ability for user-mode applications to request EDMA3 channels and operate on a channel using direct, memory-mapped access to the channel's DMA registers. IRESMAN_EDMA3 uses this component when allocating EDMA3 resources. The VICP utility library provides user mode access to the accelerators from ARM Linux codecs on the DM365 and DM355. This utility also handles the accelerator interrupts in the Linux kernel. The VICP utility library handles all the different accelerators on the DM3xx devices. 14

Local Power Manager Overview In ARM-DSP devices, the ARM is often the focal point for power management: It usually best knows when the DSP will no longer be required. For example, if it has passed down the last AV buffers of a video clip. It may have sole access to key power management hardware and therefore the DSP needs to request the ARM to assist any power downs The Local Power Manager (LPM) provides user-space APIs to Linux applications (such as Codec Engine) that wish to manage the DSP core s power The DSP is treated as a peripheral by Linux and therefore cannot be directly accessed by an application LPM typically supports turning the power on/off or hibernate/resume of the DSP core 15

WinCE Support The MFP is also available on WinCE 6.0 WinCE versions of the products are BSD licensed and do not contain GPL code WinCE versions include support for platform builder 16