CUDA-supported Real-Time DXT Compression of HD Video: Design and Implementation
CUDA-supported Real-Time DXT Compression of HD Video: Design and Implementation
CUDA-supported Real-Time DXT Compression of HD Video: Design and Implementation
3
SAGE Visualcasting for Multi-party
Collected Collaboration
HD Media Compression
5
HDMI-based HD Media Transport System
DXT DXT
Decompressor Decompressor
Network
DXT DXT
HDMI V Compressor Compressor V HDMI
A Audio Audio A
Transport Transport
Audio Out Audio Out
Pre- 1394 1394 Pre-
Amplifier S/W based S/W based Amplifier
Echo Controller Echo Controller
6
DXT: DirectX Texture Compression
xx xx xx xx
32bit (16x2bit)
xx xx xx xx
xx xx xx xx
Block2 Compression
9
GPU acceleration approach
• OpenGL/Cg
– high-level shading language developed by NVIDIA
– suitable for GPU programming and it does not replace a
general programming language
– Cg compiler outputs DirectX or OpenGL shader
programs
• CUDA: Compute Unified Device Architecture
– parallel computing architecture developed by NVIDIA
– gives developers access to the virtual instruction set and
memory of the parallel computational elements in CUDA
GPUs
10
CUDA Programming Model
• Parallel portions of an application are executed on device
(GPU) as kernels
– One kernel is executed at a time
– Many threads execute each kernel
– Kernels are lunched in grids
11
DXT Compression using CUDA
• Each pixel block is processed by CUDA Thread Block
– Many pixel block compression simultaneously
– Enables CUDA performance scalability
• CUDA Thread processing
– Unpack color space each pixel
– Compute DXT color index each pixel
• Apply FastDXT algorithm
– Min/Max Color selection
– Emit color indices
12
Reference
1) OpenGL DXT texture compression,
http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt.
2) Libsquish, http://code.google.com/p/libsquish.
3) J.M.P. van Waveren “Real-Time DXT compression” May 20th 2006 ©
2006, Id Software, Inc., http://www.intel.com/cd/ids/developer/asmo-
na/eng/324337.htm.
4) L. Renambot, B. Jeong and J. Leigh, “Real-time compression for high-
resolution content,” Proceedings Access Grid Retreat 2007.
5) W. R. Mark, R. S. Glanville, K. Akeley and M. J. Kilgard, “Cg: A system for
programming graphics hardware in a C-like language,” ACM SIGGRAPH
2003
6) Nvidia-texture-tools, http://code.google.com/p/nvidia-texture-tools.
7) NVIDIA CUDA, http://developer.nvidia.com/object/cuda.html.
8) SAGE, http://www.sagecommons.org.
9) WIKIPEDIA, http://en.wikipedia.org/wiki/S3_Texture_Compression
13
Gwangju Institute of
Science & Technology
Thank you!
Send Inquiry to jongwon@nm.gist.ac.kr
http://nm.gist.ac.kr