Multi-Threaded Video Rendering COMP400 Project – 2006 Yohan Launay.

Slides:



Advertisements
Similar presentations
Honeywell Displays Testing Mike Santa Cruz Brad Simons Ryan Hernandez Matt Lombardo Jeremy Pager.
Advertisements

A Pipeline for Lockless Processing of Sound Data David Thall Insomniac Games.
Geometry Systems Inc. 3D Graphic Solutions Balancing art with engineering
Soul Envoy Final Year Project 22nd April 2006 By Zhu Jinhao.
An Innovative wireless PDA Game Leung Pui Yin, Carol Lo Man Kit, Marcus.
R-Mancala Srinivas Krishnan & Kiranjit Sidhu. Outline Design Details Refactoring Experience Demo.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Lesson 15 – INSTALL AND SET UP NETWARE 5.1. Understanding NetWare 5.1 Preparing for installation Installing NetWare 5.1 Configuring NetWare 5.1 client.
My view of challenges faced by Open64 Xiaoming Li University of Delaware.
3D Game Programming All in One By Kenneth C. Finney.
Yard Wars David Greer Alex Gross Ahsen Uppal. Goals Wireless, Portable Development Real Time Voice Conferencing Exciting, Expandable Game Engine.
Michael Birsak and Michael Hanzl Institute of Computer Graphics and Algorithms Vienna University of Technology.
PhD/Master course, Uppsala  Understanding the interaction between your program and computer  Structuring the code  Optimizing the code  Debugging.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
AraFell Project By: Joey Peters. System Selection A video game – Video games implement many OS principles Already working on the project Challenging Fun.
PlayStation 2 Architecture Irin Jose Farid Momin Quy Ngo Olivia Wong.
Module 2: Planning to Install SQL Server. Overview Hardware Installation Considerations SQL Server 2000 Editions Software Installation Considerations.
Introduction to Android Platform Overview
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
1 Design and Implementation of an Efficient MPEG-4 Interactive Terminal on Embedded Devices Yi-Chin Huang, Tu-Chun Yin, Kou-Shin Yang, Yan-Jun Chang, Meng-Jyi.
CSE 381 – Advanced Game Programming 3D Game Architecture.
Antigone Engine Kevin Kassing – Period
NV V5.7 Product Presentation. Brand New Professional GUI  Multiple User Interface for different look and feel  Audio indicator on camera (play audio.
CoreWall Prototype Presented by Arun EVL’s Tech Meeting 8/25/04.
Overview Embedded Linux Graphics Typical desktop Linux graphics stack SystemRAMDisk X Window System5MB16MB GNOME14MB95MB KDE11MB96MB Mozilla12MB95MB.
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
Chapter 26 GoF Design Patterns. The Adapter Design Pattern.
HERTS Paul Larpenteur Lee Murphy CSE 403 – Sp 2003 Hearts Experimental Remote Transportable System.
MACCE and Real-Time Schedulers Steve Roberts EEL 6897.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
Live Demo Augmented reality – lets see some pictures flying…Augmented reality – lets see some pictures flying… Facebook -Facebook -
A Space Game By William Sistar. The Problem What is provided:  Most network games are single player  Some do allow team work but not in a common environment.
GAYA Analyzer What Is It All About? GAYA Analyzer Medical Imaging - Gamma Medica Camera.
Networks and Client/Server Applications Handling Multiple Clients Concurrently.
GUI Design With The Appx Client Presented By: Gary Rogers.
NetMultiPlayer Video Camera Software MSDL Project – 2006 Yohan Launay.
GVis: Grid-enabled Interactive Visualization State Key Laboratory. of CAD&CG Zhejiang University, Hangzhou
Building a real-world, Internet- scale stock trading application Naveen Prabhu Quadwave Consulting Pvt. Ltd.
The George Washington University School of Engineering and Applied Science Department of Electrical Engineering and Computer Science Final Review Design.
Introduction to Operating Systems and Concurrency.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Flexible intelligent solid video management software.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
1 MSRBot Web Crawler Dennis Fetterly Microsoft Research Silicon Valley Lab © Microsoft Corporation.
Connecting LabVIEW to EPICS network
Threads. Readings r Silberschatz et al : Chapter 4.
Fail-safe Communication Layer for DisplayWall Yuqun Chen.
Pattern Libraries: Theory Adrian Slade Principal Pattern Engineer
NetChat Communications Systems Steven Fuqua Barnett Trzcinski Andy Street.
VAR/Fence: Using NV_vertex_array_range and NV_fence Cass Everitt.
Implementing Remote Procedure Call Landon Cox February 12, 2016.
SMP Basics KeyStone Training Multicore Applications Literature Number: SPRPxxx 1.
Contents 1.Overview 2.Multithreading Model 3.Thread Libraries 4.Threading Issues 5.Operating-system Example 2 OS Lab Sun Suk Kim.
Overview of today’s lecture Major components of an operating system Structure and internal architecture of an operating system Monolithic Vs Micro-kernels.
From VIC (VRVS) to ViEVO (EVO) 3 years of experiences with developing of video application VIC for VRVS allowed us to develop a new video application.
Operating System Overview
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
The BLISS Framework 4.
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
Chapter 5: Threads Overview Multithreading Models Threading Issues
CS490 Windows Internals Quiz 2 09/27/2013.
TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler
B.Ramamurthy Chapter 2 : Appendix
Fine-grained vs Coarse-grained multithreading
Windows System Programming Third Edition
03 | Creating, Texturing and Moving Objects
Problems with Locks Andrew Whitaker CSE451.
Presentation transcript:

Multi-Threaded Video Rendering COMP400 Project – 2006 Yohan Launay

Agenda Basic System Description + Demo Quick Multi-threaded Programming Guide Video Channel Description Graphical Engine Description Results

Basic System Description Client system connected to a video server MPEG4 Streaming Multivision System (1 screen – X cameras) Client: OpenGL graphical engine + GTK GUI Existing system audited, re-designed & optimized:  Optimization for multi-core systems  100% Thread safe design  MT Programming Guide  Performances Gain Live Demo !

MT Programming Guide (1) Modular System Mandatory 1 thread = 1 module (Core) Set of rules for safe MT programming (see report) 1 mutex per core handled by the core itself not externally Consequence: Extensive use of Controller & Façade Pattern

Graphical Engine Architecture Overview

MT Programming Guide (2) Mutex Class: Lock/Unlock (Existing)  Guarantee exclusive access to resources Synchronize Class (Optimization)  Lock/Unlock – ExclusiveLock/ExclusiveUnlock  Read/Write Access AutoMutex Class (Ease of coding)  Uses variable scope to lock/unlock Mutex

Video Channel Description Connect to the video stream Fetch picture Ask for display:  Use of flags and IDs – Avoid memory copy  Try to save space (pictures are big > 1MB)

Graphical Engine Description (1) OpenGL + GTK : need specific design Widget System  Widget (Abstract)  WidgetContainer  WidgetTexture Chain of command: horizontal & vertical hierarchy OpenGL: 1 Thread = 1 Rendering Context:  Use of message pump / Command pattern

Widgets Architecture

Graphical Engine Description (2) Texture Register:  Avoid textures duplication in Graphical Card  Manage texture loading and release  Manage texture update Extensive use of display lists Use of glTexSubImage: partial update On-demand display of channels

Video Rendering Process

Results

Optimized for dual-core systems Unlimited number of cameras on the screen, performances limited by the hardware. 400 FPS multivisions ! (hardware related) Future Plans:  OpenGL Game Mode (no more window + GTK)

Contact Information Yohan Launay Mail : McGill : MSDL: Past Work: Thank You For Your Attention!