Abstractions from Multimedia Hardware. Libraries. Abstraction Levels



Similar documents
HYPER MEDIA MESSAGING

AAF. Improving the workflows. Abbreviations. Advanced Authoring Format. Brad Gilmer AAF Association

IP-Telephony Real-Time & Multimedia Protocols

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

Windows Embedded Compact 7 Multimedia Features 1

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

CSE 237A Final Project Final Report

Android builders summit The Android media framework

Mobile Operating Systems. Week I

SHORT DESCRIPTION OF THE PROJECT...3 INTRODUCTION...4 MOTIVATION...4 Session Initiation Protocol (SIP)...5 Java Media Framework (JMF)...

MA-WA1920: Enterprise iphone and ipad Programming

Information Technology Career Field Pathways and Course Structure

Multimedia Applications. Streaming Stored Multimedia. Classification of Applications

Multimedia Systems Hardware & Software THETOPPERSWAY.COM

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

JavaFX Session Agenda

Titolo del paragrafo. Titolo del documento - Sottotitolo documento The Benefits of Pushing Real-Time Market Data via a Web Infrastructure

Star System Deitel & Associates, Inc. All rights reserved.

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

Audio networking. François Déchelle Patrice Tisserand Simon Schampijer

Board Games They are adaptations of classic board games. Examples of board games include Chess, Checkers, Backgammon, Scrabble and Monopoly.

A Transport Protocol for Multimedia Wireless Sensor Networks

Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability

Stream Processing on GPUs Using Distributed Multimedia Middleware

Java game programming. Game engines. Fayolle Pierre-Alain

Issues in Android on Mobile Platform and Their Resolution

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

Transport and Network Layer

IBM Deep Computing Visualization Offering

Develop Computer Animation

Session 1: IT Infrastructure Security Vertica / Hadoop Integration and Analytic Capabilities for Federal Big Data Challenges

CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014

Programming in HTML5 with JavaScript and CSS3

Cisco Digital Media System: Cisco Digital Media Player 4305G

Developing Applications for ios

CHAPTER 15: Operating Systems: An Overview

Research and Design of Universal and Open Software Development Platform for Digital Home

Android Multi-Hop Video Streaming using. wireless networks.

Chapter 3 Operating-System Structures

File. Sharing. File. sharing

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

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Recording/Archiving in IBM Lotus Sametime based Collaborative Environment

Diagram 1: Islands of storage across a digital broadcast workflow

ITG Software Engineering

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Guiding Principles for Modeling and Designing Reusable Services

Streaming Stored Audio & Video

Manage Software Development in LabVIEW with Professional Tools

CS222: Systems Programming

Software: Systems and Application Software

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Encapsulating Voice in IP Packets

Strategies. Addressing and Routing

From Digital Television to Internet? A general technical overview of the- DVB- Multimedia Home Platform Specifications

Computer Networks Network architecture

Classes of multimedia Applications

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

Mobile Phones Operating Systems

Sample Project List. Software Reverse Engineering

Parallel Web Programming

IIS Media Services 3.0 Overview. Microsoft Corporation

PQoS Parameterized Quality of Service. White Paper

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Web Based 3D Visualization for COMSOL Multiphysics

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Middleware- Driven Mobile Applications

Lab Management, Device Provisioning and Test Automation Software

Digital Library for Multimedia Content Management

GPU Usage. Requirements

PERFORMANCE ANALYSIS OF VIDEO FORMATS ENCODING IN CLOUD ENVIRONMENT

Recording Supervisor Manual Presence Software

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

GenericServ, a Generic Server for Web Application Development

Chapter 13: Program Development and Programming Languages

Chapter 2 System Structures

Ways to Use USB in Embedded Systems

Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong

Lecture 1 Introduction to Android

An Implementation Of Multiprocessor Linux

Introducing IBM Tivoli Configuration Manager

Oracle BI EE Implementation on Netezza. Prepared by SureShot Strategies, Inc.

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

Using Linux Clusters as VoD Servers

The diagram below illustrates the steps from stored music to audio device; key elements of the audio chain are discussed later in this guide.

evm Virtualization Platform for Windows

Vmware Horizon View with Rich Media, Unified Communications and 3D Graphics

Mobile application architectures

System Software Integration: An Expansive View. Overview

Genesis LC2. Genesis LC1. Genesis Flex. Genesis Cloud. Feature/Function. Linguatronics Genesis Functional Specification List 1

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

Lecture 33. Streaming Media. Streaming Media. Real-Time. Streaming Stored Multimedia. Streaming Stored Multimedia

Emerging Markets for H.264 Video Encoding

Transcription:

Abstractions from Multimedia Hardware Chapter 2: Basics Chapter 3: Multimedia Systems Communication Aspects and Services Chapter 4: Multimedia Systems Storage Aspects Chapter 5: Multimedia Usage and Applications Documents and Hypermedia Multimedia User Interfaces Abstractions for Programming Multimedia Applications 5.3: Abstractions for Programming Abstraction Levels System Software and Frameworks Higher Programming Languages State of the art of programming Application code is highly dependent on hardware Change of multimedia devices still often requires re-implementation Example: sequence of (very) specific instructions: static unsigned long read_timer(void) { /* example taken from Linux kernel code - i386 architecture */ unsigned long t, flags; int i; save_flags(flags); cli(); t = jiffies * 11932; outb_p(0, 0x43); i = inb_p(0x40); i = inb(0x40) << 8; restore_flags(flags); return (t - i); } Strong hardware dependency may cause problems with: Portability Reusability Coding efficiency Page 1 Page 2 Abstraction Levels Common operating system extensions try to solve this problem Different programming possibilities for accessing and representing multimedia data: Multimedia application Processing of continuous media based on functions embedded in libraries differ in their degree of abstraction Example from IBM s early Audio Visual Connection (AVC): Object-oriented programming languages Frameworks System software Higher programming languages Device drivers for continuous media acb.channel = AAPI_CHNA acb.mode = AAPI_PLAY aud_init(&acb) /* acb is the audio control block */ audrc = fab_open(audiofullfilename,aafb_open,aafb_exno, 0,&fab,0,0,0,0); fork(start in PARALLEL) aud_strt(&acb) displayposition(relativestarttime, Duration) Device Page 3 Page 4

- OpenGL 2D and 3D graphics API developed by Silicon Graphics Basic idea: write applications once, deploy across many platforms : PCs Workstations Super Computers Benefits: Stable Reliable and Portable Evolving Scalable (Features like Zoom, Rectangle handling ) Well documented and easy to use Integrated with: Windows 95/NT/2000/XP UNIX X Window System System Software Device access becomes part of the operating system: Data as time capsules (file extensions) Each Logical Data Unit (LDU) carries in its time capsule its data type, actual value and valid life span Useful concept for video, where each frame has a valid life span of 40ms (rate of read access during a normal presentation) Presentation rate is changed for VCR (Video Cassette Recorder) functions like fast forward, slow forward or fast rewind by Changing the presentation life span of a LDU Skipping of LDUs or repetition of LDUs Data as streams A stream denotes the continuous flow of audio and video data between a source and a sink Prior to the flow the stream is established equivalent to the setup of a connection in a networked environment Page 5 Page 6 System Software - MCI System Software - DirectX Windows Media Control Interface (MCI): MMSYSTEM library for extensibility and device independence Low-level APIs and libraries for high-performance applications Especially games - formerly known as the "Game SDK" Direct access to hardware services E.g. audio & video cards, hardware accelerators DirectX = direct access Strong relationship/interaction with ActiveX/DCOM Page 7 Page 8

System Software - DirectX Frameworks Components: DirectDraw - 2 dimensional graphics capabilities Direct3D - extensively functional 3D graphics programming API DirectSound - (3D) sound, mixing and playback of multiple streams DirectPlay - for network multiplayer game development DirectInput - input from various peripherals, e.g. joysticks, data gloves Implementation Strategy: Hardware Abstraction Layer (HAL) Hardware Emulation Layer (HEL) Media Layer (for aggregated high level functionality) Animations Media streaming Synchronization Additional level of abstraction: Combination of different media New data types E.g. mixed.video := orig.video + subtitle Granularity problematic (pixel, frame, image group, sequence, video, ) Reuse of modules: Synchronization Scaling (De)compression File formats Application frame given: generic problem solution Creation of specialized application components: media containers, media processors Page 9 Page 10 Frameworks: JMF Framework controls execution E.g. myapplicationcomponent.init(); myapplication.start(); Example: Java Media Framework (JMF) JMF supports platform-neutral synchronized playback of multimedia data Local or via network: Pull protocols - e.g. HTTP Push protocols - e.g. RTP Easy integration into platforms native environment and core packages; supported media formats: MPEG, QuickTime, AVI WAV, AU, MIDI Extensible: New Data Sources (e.g. for FTP or Video on Demand (VOD) protocols) New Players Page 11 Media as data types: Definition of appropriate data types (e.g. for video and audio) Smallest unit can be a LDU Example of merging a text and a motion picture: subtitle TEXT_STRING mixed.video, ldu.video VIDEO_LDU; WHILE COBEGIN PROCESS_1 input(av_filehandle,ldu.video) IF new_video_scene input(subtitle_filehandle,subtitle) mixed.video := ldu.video + subtitle PROCESS_2 output(video_window,mixed.video) END_WHILE In the above example, implicit type conversion must occur Real-time processing of LDUs depend on their granularity and can be problematic in a high-level language Page 12

Media as files: instead of considering continuous media as data types they can be considered as files: file_h1 = open(microphone_1,) file_h2 = open(microphone_2,) file_h3 = open(speaker, ) read(file_h1) read(file_h2) mix(file_h3, file_h1, file_h2) activate(file_h1, file_h2, file_h3) deactivate(file_h1, file_h2, file_h3) rc1 = close(file_h1) rc2 = close(file_h2) rc3 = close(file_h3) Media as processes: it is possible to map continuous media to processes and integrate them into a high-level language: PROCESS cont_process_a; on_message_do set_volume set_loudness [main] pid = create(cont_process_a) send(pid, set_volume, 3) send(pid, set_loudness) This process implements a set of actions ( set-volume, set-loudness ) Page 13 Page 14 Programming Language Requirements The high-level language should support parallel processing, because the processing of continuous data is controlled by the language through pure asynchronous instructions an integral part of a program through the identification of media Different processes must be able to communicate through an inter-process communication mechanism, which must be able to: Understand a priori and/or implicitly specified time requirements (QoS parameters or extracted from the data type) Transmit the continuous data according to the requirements Initiate the processing of the received continuous process on time Basic ideas of object-oriented programming is data encapsulation in connection with class and object definitions Abstract Type Definition (definition of data types through abstract interfaces) Class (implementation of a abstract data type) Object (instance of a class) Other important properties of object-oriented systems are: Inheritance Polymorphism Page 15 Page 16

Object-oriented Approaches Devices as classes: devices are assigned to objects which represent their behavior and interface class media_device { char *name; void on(), off(); Processing units as classes: Three main objects: Source objects Destination objects Combined source-destination objects allows the creation of data flow paths through connection of objects class media_in_device: public media_device { private: DATA data; refdata get_data(); class media_out_device: public media_device { void put_data(refdata dat); Multimedia object Basic Multimedia Classes (BMCs) / Basic Multimedia Objects (BMOs) Compound Multimedia Classes (CMCs) / Compound Multimedia Objects (CMO), which are compound of BMCs / BMOs and other CMCs/CMOs BMOs and CMOs can be distributed over different computer nodes Page 17 Page 18 Object-oriented Approaches Example of CMC (simplified notation): Lexicon: compound_class; DATA: Explain external; Animation external; ACCESS_POINTS: VIDEO_SOURCE Animation.VIDEO_SOURCE; AUDIO_SOURCE Animation.AUDIO_SOURCE; TEXT_SOURCE Explain.TEXT_SOURCE; METHODS: start: display(explain); play: play(animation); pause: pause(animation); stop: stop(animation); Media as classes: Media Class Hierarchies define hierarchical relations for different media Different class hierarchies are better suited for different applications Example: Medium Acoustic_Medium Music Opus Score Audio_Block Sample_Value Speech Opitcal_Medium Video Video_Scene Video Video_Scene Image Image_Segment Line Column Animation Text Page 19 Page 20