Multi-Threaded Video Rendering - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

Multi-Threaded Video Rendering

Description:

... for multi-core systems. 100% Thread ... 1 thread = 1 module (Core) Set of rules for safe MT programming (see report) ... Optimized for dual-core systems ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 15
Provided by: yohanl
Category:

less

Transcript and Presenter's Notes

Title: Multi-Threaded Video Rendering


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

14
Contact InformationYohan Launay
  • Mail yohan.launay_at_gmail.com
  • McGill yohan.launay_at_mail.mcgill.ca
  • MSDL http//msdl.cs.mcgill.ca/people/yohan
  • Past Work http//hellaynnea.free.fr
  • Thank You For Your Attention!
Write a Comment
User Comments (0)
About PowerShow.com