The Compact YCoCg Frame Buffer

Pavlos Mavridis     Georgios Papaioannou
Department of Informatics, Athens University of Economics & Business

Journal of Computer Graphics Techniques (JCGT), Volume 1, Number 1, September 2012
compact_fb
Figure 1. Our method can rasterize a color image using only two frame buffer channels, by interleaving the chrominance components in a checkerboard pattern, as shown in the image. The final frame buffer is reconstructed using an edge-directed demosaicing filter. The compression error, visualized by the heatmap in the inset, is negligible and the filtering is temporally stable.

Abstract

In this article we present a lossy frame buffer compression format, suitable for existing commodity GPUs and APIs. Our compression scheme allows a full color image to be directly rasterized using only two color channels at each pixel, instead of three, thus reducing both the consumed storage space and bandwidth during the rendering process. Exploiting the fact that the human visual system is more sensitive to fine spatial variations of luminance than of chrominance, the rasterizer generates fragments in the YCoCg color space and directly stores the chrominance channels at a lower resolution using a mosaic pattern. When reading from the buffer, a simple and efficient edge-directed reconstruction filter provides a very precise estimation of the original uncompressed values. We demonstrate that the quality loss from our method is negligible, while the bandwidth reduction results in a sizable increase in the fill-rate of the GPU rasterizer.

Update: Our upcoming article on GPU Pro 4 will include tests with HDR rendering, small tweaks and some additional discussion on how to implement the method efficiently.

Supplemental Images

Choose an image from the top and hover your mouse over the labels at the bottom to inspect the compressed frame buffer and the reconstruction error. Images cropped at 100% zoom (1:1 pixel mapping).

Compressed
Difference x2
Difference x16

Compressed
Difference x2
Difference x16

Compressed
Difference x2
Difference x16

Compressed
Difference x2
Difference x16

WebGL Demo

Below you can find a live demonstration of our technique in WebGL. IMPORTANT: IE does not support WebGL. Tested with Mozilla Firefox 10 and Google Chrome.

webgl_demo

Video

The video demonstrates the temporal stability of our algorithm in real game scenes. As compression can hide the reconstruction artifacts, the bitrate of this video is much higher than the typical HD video and a fast PC is required for smooth playback.

For your convenience, we also provide a YouTube version. Best viewed using the 720p option at full screen.

The Citadel assets used in the video are copyright of Epic Games, Inc. This work is not endorsed by Epic Games.

Bibtex

@article{Mavridis2012YCoCg,
   author  = {Pavlos Mavridis and Georgios Papaioannou},
   title   = {The Compact {YCoCg} Frame Buffer},  
   year    = {2012},
   month   = {Sept},
   day     = {30},
   journal = {Journal of Computer Graphics Techniques (JCGT)},
   volume  = {1},
   number  = {1},
   pages   = {19--35},
   url     = {http://jcgt.org/published/0001/01/02/}
}          

Acknowledgements

We would like to thank Stephen Hill (Ubisoft Montreal) for his insightful comments on the technique. Charles Poynton had some very helpful comments on color spaces and chroma subsampling. Battlefield 3 images courtesy of EA Digital Illusions Creative Entertainment (DICE). Crysis 2 images courtesy of Crytek GmbH. The teaser image and the demo video was created using the Unreal Development Kit and the publicly available Citadel dataset, which are copyright of Epic Games, Inc. This work is not endorsed by Epic Games.