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.

Slides:



Advertisements
Similar presentations
Programming with OpenGL - Getting started - Hanyang University Han Jae-Hyek.
Advertisements

Exploration of advanced lighting and shading techniques
FireMonkey Deep Dive The Next Generation of Business Application Development.
WSCG 2007 Hardware Independent Clipmapping A. Seoane, J. Taibo, L. Hernández, R. López, A. Jaspe VideaLAB – University of A Coruña (Spain)
 The success of GL lead to OpenGL (1992), a platform-independent API that was  Easy to use  Close enough to the hardware to get excellent performance.
Working with Huge Digital Prototypes: Autodesk Inventor Large-Assembly Best Practices Dan Miles INCAT Autodesk Practice Manager =
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Introduction to Computer Graphics Ed Angel Professor of Computer Science, Electrical and.
Network coding on the GPU Péter Vingelmann Supervisor: Frank H.P. Fitzek.
Real-Time Stereo Matching on Programmable Graphics Hardware Liang Wei.
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
codecs (H.261 and H.263) performance new features and GUI interoperability with the core system future developments.
Realtime 3D Computer Graphics Computer Graphics Computer Graphics Software & Hardware Rendering Software & Hardware Rendering 3D APIs 3D APIs Pixel & Vertex.
1/23/2005 page1 11/11/2004 MPEG4 Codec for Access Grids National Center for High Performance Computing Speaker: Barz Hsu
VIC Development National Center of High-performance Computing Barz Hsu 15 January 2007.
CSC 461: Lecture 41 CSC461: Lecture 4 Introduction to OpenGL Objectives: Development of the OpenGL API OpenGL Architecture -- OpenGL as a state machine.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
1 Introduction to Computer Graphics SEN Introduction to OpenGL Graphics Applications.
Computer Graphics I, Fall 2008 Introduction to Computer Graphics.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
1 Computer Graphics Week2 –Creating a Picture. Steps for creating a picture Creating a model Perform necessary transformation Lighting and rendering the.
Shadow Mapping Chun-Fa Chang National Taiwan Normal University.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
Aug 25, 2005 page1 Aug 25, 2005 Integration of Advanced Video/Speech Codecs into AccessGrid National Center for High Performance Computing Speaker: Barz.
Multi-Threaded Video Rendering COMP400 Project – 2006 Yohan Launay.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
Ray Tracing using Programmable Graphics Hardware
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 GPU.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
CSC Graphics Programming Budditha Hettige Department of Statistics and Computer Science.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
What is DirectX? DirectX is built by Microsoft as a collection of API’s (Application Programming Interfaces) for the purpose of multimedia processing.
GPU Architecture and Its Application
Computer Graphics: An Introduction
Ying Zhu Georgia State University
Buffers Ed Angel Professor Emeritus of Computer Science
Programming with OpenGL Part 1: Background
Chapter 1 An overview on Computer Graphics
Binary Notation and Intro to Computer Graphics
Quality Evaluation and Comparison of SVC Encoders
Topics Introduction Hardware and Software How Computers Store Data
2D GPU Platform with Hardware-Accelerated Features
Chapter 10 Computer Graphics
Digital Photo editing with Photoshop
Computer Graphics Lecture 32
JPEG Image Coding Standard
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Operating Systems Overview
Sega Dreamcast Visual Memory Unit FPGA Implementation
What is an operating system?
Introduction to Computers
eScience Collaboration Tools: EVO & Access Grid
Introduction to Computer Graphics with WebGL
Assembly Language for Intel-Based Computers
Programming with OpenGL Part 1: Background
Topics Introduction Hardware and Software How Computers Store Data
Introduction to Computer Graphics
Introduction to Computer Graphics
Graphics Systems Lecture-2
Desktop Window Manager
Buffers Ed Angel Professor Emeritus of Computer Science
Programming with OpenGL Part 1: Background
RADEON™ 9700 Architecture and 3D Performance
Introduction to OpenGL
OpenGL-Rendering Pipeline
Presentation transcript:

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 for EVO system - called ViEVO the biggest differences are: new implementation of codecs (H.261, H.263) improved performance (code optimization, IPP utilization) brand new GUI – nicer, more intuitive, look of new set of tools for EVO system brand new display system based on OpenGL

Display facilities of VIC (VRVS) each video displayed in separate window, what leads to following negative consequences: crowded taskbar in case of larger number of video streams management of display windows on a computer screen is uncomfortable – has been partially solved with automatic display modes strong linkage between physical video resolution and display size of video source video source can be displayed only in its original size, or in two re-sampled versions: ¼ of original resolution (every second sample is taken) and 4x of original resolution (samples are duplicated in each direction) - main reason is to save maximum CPU resources for video encoding and decoding computer screen is covered very soon by video windows in case of larger number of video streams limited possibilities to create visually attractive display functionality

CIF (352 x 288) CIF (352 x 288) XGA (1024 x 768) VGA (640 x 480)

Overview of videoconference clients in EVO VIC 17 participants displayed (“Speaker + all” mode)

ViEVO (EVO) and OpenGL solution each video displayed in separate window, what leads to following negative consequences: crowded taskbar in case of larger number of video streams management of display windows on a computer screen is uncomfortable – has been partially solved with automatic display modes strong linkage between physical video resolution and display size of video source video source can be displayed only in its original size, or in two resampled versions: ¼ of original resolution (every second sample is taken) and 4x of original resolution (samples are duplicated in each direction) - main reason is to save maximum CPU resources for video encoding and decoding computer screen is covered very soon in case of larger number of video streams limited possibilities to create visually attractive display functionality easy and straightforward solution is to display all video sources in one common display window managed by OpenGL only one display window on the taskbar user can place the window on arbitrary position on the screen with arbitrary window size – content will be managed automatically by OpenGL in accord with selected display mode video resolution and display size are not linked anymore texture is created from each decoded video frame and then it is mapped to rectangle of selected (arbitrary) size. Textures are stretched or shrinked by OpenGL as necessary and this is applied using the current texture filter (performed by graphic hardware, CPU is not used) space on the screen can be used effectively OpenGL allows us to create any display mode in 3D which is hardware accelerated – many possibilities to create visually very attractive content

Video with CIF resolution (new OpenGL solution) Video with VGA resolution (new OpenGL solution) Comparison No. 1

Video with CIF resolution enlarged to 4CIF (old VIC solution) Video with CIF resolution enlarged to 4CIF (new OpenGL solution) Comparison No. 2

OpenGL based display mode Speaker

OpenGL based display mode

From VIC (VRVS) to ViEVO (EVO) “Speaker” display mode Ongoing and future work Speaker Local user’s video

From VIC (VRVS) to ViEVO (EVO) “Debate” display mode Ongoing and future work Current speaker Recent speakers

From VIC (VRVS) to ViEVO (EVO) “Presentation” display mode Ongoing and future work Presentation Presenter

RGB and YUV color spaces R G B Y U V the human visual system is less sensitive to color than to luminance (brightness) in RGB color space all three colors are equally important and all stored at the same resolution more efficient way is to separate luminance from color information and represent luminance with higher resolution than color information – YUV (YCrCb) color model RGB representation YUV (4:2:0) representation – requires half as many bits as the RGB representation

RGB versus YUV textures video displaying application requires continuous updating of video textures (unlike, for example, games, where textures can be preloaded at the beginning of the level) copying of large amount of data from PC memory to the graphic hardware memory can have negative impact on application performance Can we speed up this process or make it more effective? solution are YUV textures (not natively supported by OpenGL) + utilization of programmable OpenGL pipeline (vertex and fragment shaders) benefits: only half amount of data is transferred from PC memory to graphic card memory compare to RGB textures saves the graphic card memory, 3x less memory usage compare to RBG textures more effective memory utilization YUV -> RGB conversion is performed by GPU – saves CPU!!

Fixed OpenGL rendering pipeline Programmable OpenGL rendering pipeline

RGB versus YUV textures U V 512 RGB texture R G B Y YUV texture glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 512, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, textureData); glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 512, 512, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, textureData);

Font engine for OpenGL FreeType library (Win32, Mac OS, Linux) - a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output - WGL 2D font bitmaps – just 2 levels (0,1) per pixel Freetype font pixmaps – 256 levels per pixel

Conclusions Thank you for your attention interactivity with OpenGL content – buttons, controls allows us to remove old Tcl/Tk based GUI next step - porting the solution to MAC and Linux platforms implement advanced 3D models of real meetings/conferences (audience in auditorium, participants sitting around a table, etc) all is valid also for MS Direct3D technology, OpenGL has been chosen for its multiplatform support