Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Multi-Threaded Video Rendering COMP400 Project – 2006 Yohan Launay."— Presentation transcript:

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

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

3 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 !

4 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

5 Graphical Engine Architecture Overview

6 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

7 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)

8 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

9 Widgets Architecture

10 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

11 Video Rendering Process

12 Results

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

14 Contact Information Yohan Launay Mail : yohan.launay@gmail.comyohan.launay@gmail.com McGill : yohan.launay@mail.mcgill.cayohan.launay@mail.mcgill.ca MSDL: http://msdl.cs.mcgill.ca/people/yohanhttp://msdl.cs.mcgill.ca/people/yohan Past Work: http://hellaynnea.free.frhttp://hellaynnea.free.fr Thank You For Your Attention!


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

Similar presentations


Ads by Google