Multi-Threaded Video Rendering COMP400 Project – 2006 Yohan Launay.
-
Upload
pierce-parks -
Category
Documents
-
view
221 -
download
0
Transcript of Multi-Threaded Video Rendering COMP400 Project – 2006 Yohan Launay.
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 !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
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 InformationYohan Launay
Mail : [email protected] McGill : [email protected] MSDL: http://msdl.cs.mcgill.ca/people/yohan Past Work: http://hellaynnea.free.fr
Thank You For Your Attention!