Framebuffer Compression Using Dynamic Color Palettes (DCP) Ayub A. Gubran Tor M. Aamodt.

Slides:



Advertisements
Similar presentations
Accelerating Real-Time Shading with Reverse Reprojection Caching Diego Nehab 1 Pedro V. Sander 2 Jason Lawrence 3 Natalya Tatarchuk 4 John R. Isidoro 4.
Advertisements

-Based Workload Estimation for Mobile 3D Graphics
T.Sharon-A.Frank 1 Multimedia Compression Basics.
Cache Coherence for GPU Architectures Inderpreet Singh 1, Arrvindh Shriraman 2, Wilson Fung 1, Mike O’Connor 3, Tor Aamodt 1 Image source:
Graphics Hardware CMSC 435/634. Transform Shade Clip Project Rasterize Texture Z-buffer Interpolate Vertex Fragment Triangle A Graphics Pipeline.
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
CSIE30300 Computer Architecture Unit 10: Virtual Memory Hsin-Chou Chi [Adapted from material by and
Virtual Memory Hardware Support
Fast GPU Histogram Analysis for Scene Post- Processing Andy Luedke Halo Development Team Microsoft Game Studios.
1 Reproduction interdite. © ip-label 2012 Arnaud Becart ip-label.
App Development on Android
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Tools for Investigating Graphics System Performance
S.1 Review: The Memory Hierarchy Increasing distance from the processor in access time L1$ L2$ Main Memory Secondary Memory Processor (Relative) size of.
DDDDRRaw: A Prototype Toolkit for Distributed Real-Time Rendering on Commodity Clusters Thu D. Nguyen and Christopher Peery Department of Computer Science.
XWN740 X-Windows Configuring and Using X-Windows & Hardware (Chapter 1: Pages 11-19)‏
Memory Management 2010.
Operating Systems Concepts Professor Rick Han Department of Computer Science University of Colorado at Boulder.
Many-Core Programming with GRAMPS Jeremy Sugerman Kayvon Fatahalian Solomon Boulos Kurt Akeley Pat Hanrahan.
Z-Buffer Optimizations Patrick Cozzi Analytical Graphics, Inc.
Z-Buffer Optimizations Patrick Cozzi Analytical Graphics, Inc.
Real-Time Stereo Matching on Programmable Graphics Hardware Liang Wei.
Skewed Compressed Cache
Adaptive Video Coding to Reduce Energy on General Purpose Processors Daniel Grobe Sachs, Sarita Adve, Douglas L. Jones University of Illinois at Urbana-Champaign.
Design Considerations and Best Practices for Mobile Applications David E. Figley, Jr Programmer, C2 Technologies, Inc.
LastLeaf Sample PPT SMARTEST WAY TO CRAFT PRESENTATIONS.
CS378 - Mobile Computing What's Next?. Fragments Added in Android 3.0, a release aimed at tablets A fragment is a portion of the UI in an Activity multiple.
Chapter Three Software and Operating Systems What is software? How software is developed (Analysis, Design, Programming, and Testing) What are software.
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
JPEG C OMPRESSION A LGORITHM I N CUDA Group Members: Pranit Patel Manisha Tatikonda Jeff Wong Jarek Marczewski Date: April 14, 2009.
Digital Video and Multimedia If images can portray a powerful message then video (as a series of related images) is a serious consideration for any multimedia.
1 The Performance Potential for Single Application Heterogeneous Systems Henry Wong* and Tor M. Aamodt § *University of Toronto § University of British.
Software GCSE COMPUTING.
Songtao He1,2, Yunxin Liu1, Hucheng Zhou1
Integrating Fine-Grained Application Adaptation with Global Adaptation for Saving Energy Vibhore Vardhan, Daniel G. Sachs, Wanghong Yuan, Albert F. Harris,
Raster-scan system In addition to the central processing unit a special purpose processor called the video controller or display controller is used to.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Software Essentials ICT 1 & 2. What is software?  software is the set of instructions stored inside a computer  These instructions tell the computer.
CSE431 L22 TLBs.1Irwin, PSU, 2005 CSE 431 Computer Architecture Fall 2005 Lecture 22. Virtual Memory Hardware Support Mary Jane Irwin (
Gregory Fotiades.  Global illumination techniques are highly desirable for realistic interaction due to their high level of accuracy and photorealism.
VIS Group, University of Stuttgart Tutorial T4: Programmable Graphics Hardware for Interactive Visualization Texture Compression (Martin Kraus) Texture.
OpenGL ES Performance (and Quality) on the GoForce5500 Handheld GPU Lars M. Bishop, NVIDIA Developer Technologies.
Mahesh Sukumar Subramanian Srinivasan. Introduction Embedded system products keep arriving in the market. There is a continuous growing demand for more.
Adaptive Multi-path Prediction for Error Resilient H.264 Coding Xiaosong Zhou, C.-C. Jay Kuo University of Southern California Multimedia Signal Processing.
Timecard: Controlling User-Perceived Delays in Server-Based Mobile Applications Lenin Ravindranath, Jitu Padhye, Ratul Mahajan, Hari Balakrishnan.
Pattern Based Procedural Textures Sylvain Lefebvre Fabrice Neyret iMAGIS - GRAVIR / IMAG - INRIA
1 Computer Graphics Week2 –Creating a Picture. Steps for creating a picture Creating a model Perform necessary transformation Lighting and rendering the.
EEL5708/Bölöni Lec 4.1 Fall 2004 September 10, 2004 Lotzi Bölöni EEL 5708 High Performance Computer Architecture Review: Memory Hierarchy.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Elements of Website Design. Homepage ● first page of the website ● website title ● general introduction ● authors or creators information ● date updated.
Adaptive GPU Cache Bypassing Yingying Tian *, Sooraj Puthoor†, Joseph L. Greathouse†, Bradford M. Beckmann†, Daniel A. Jiménez * Texas A&M University *,
11 Using Checksum to Reduce Power Consumption of Display Systems for Low-Motion Content Kyungtae Han*, Zhen Fang, Paul Diefenbaugh, Richard Forand, Ravi.
Mobile web vs apps compared. Pro's of mobile web Accessible through any browser Doesn't require app download Load page by page Good for SEO Will have.
Cloud Computing Computation as Utility. Computer utilities Leonard Kleinrock, ARPANET, 1969: ”We will probably see the spread of computer utilities, which.
Software Essentials ICT 1 & 2. What is software?  software is the set of instructions stored inside a computer  These instructions tell the computer.
CS.305 Computer Architecture Memory: Virtual Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005, and from slides kindly made available.
Power Guru: Implementing Smart Power Management on the Android Platform Written by Raef Mchaymech.
Saving Bitrate vs. Users: Where is the Break-Even Point in Mobile Video Quality? ACM MM’11 Presenter: Piggy Date:
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Dynamic Framerate and Resolution Scaling on Mobile Devices Kent W. Nixon, Xiang Chen, Yiran Chen University of Pittsburgh January 29, 2016.
How to use a Pixel Shader CMT3317. Pixel shaders There is NO requirement to use a pixel shader for the coursework though you can if you want to You should.
5/2/2018 1:53 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS.
Android Mobile Application Development
"Digital Media Primer" Yue-Ling Wong, Copyright (c)2013 by Pearson Education, Inc. All rights reserved.
Short Circuiting Memory Traffic in Handheld Platforms
Google Workloads for Consumer Devices: Mitigating Data Movement Bottlenecks Amirali Boroumand, Saugata Ghose, Youngsok Kim, Rachata Ausavarungnirun, Eric.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy 11/12/2018.
Graphics Hardware: Specialty Memories, Simple Framebuffers
Desktop Window Manager
Presentation transcript:

Framebuffer Compression Using Dynamic Color Palettes (DCP) Ayub A. Gubran Tor M. Aamodt

Motivation: framebuffer life cycle Application 1Application 2Application 3 OS Graphics Libraries / Graphic API calls CPU (Software Rendering) / GPU (Hardware Rendering) Render Framebuffer 1 Render Framebuffer 2 Render Framebuffer 3 System Compositor (e.g., Android’s SurfaceFlinger) Display framebuffer Display Controller Device screen refresh rate (i.e., 60 FPS) Refresh rates vary by application and user activity Recompose after every framebuffer update GPU or CPU Composition OS Level App Level HW Level Legends Framebuffer Compression Using Dynamic Color Palettes2

Motivation: The cost of accessing the framebuffer Every frame is consumed/processed multiple times in multiple stages. Energy cost: off-chip memory. Framebuffer Compression Using Dynamic Color Palettes3

Motivation: Mobile Applications Usage Framebuffer Compression Using Dynamic Color Palettes4 1- Flurry Analytics: It’s an App World. The Web Just Lives in It.It’s an App World. The Web Just Lives in It

Framebuffer Compression for UI Apps Most of the time is spent on UI apps with simple content (solid backgrounds, text, icons…). Simple content can be compressed well using color palettes (dictionaries). But how we can accurately predict the right color palette for each frame before we start rendering it. Framebuffer Compression Using Dynamic Color Palettes5

Observation: Inter-frame Temporal Coherence Pixels color change (new content) Per pixel change (moving content) New web search Scrolling Loading BBC news Loading Amazon Framebuffer Compression Using Dynamic Color Palettes6 Web browsing (Chrome) Time (frames) % of screen size Mostly the same content

Dynamic Color Palettes (DCP) Framebuffer Compression Using Dynamic Color Palettes7

Compression Steps Frame 0 Frame 1 Frame 2 FVC Time Construct FVC from current frame’s pixel values Construct the CCD dictionary using the FVC values To memory CCD FVC To memory FVCCCD To memory Framebuffer access compressed using the CCD Framebuffer Compression Using Dynamic Color Palettes8 FVC: Frequent Values Collector CCD: Common Colors Dictionary

Compression Pipeline Framebuffer Compression Using Dynamic Color Palettes9 9 GPU Pixel tiles 1 CCD (Compress current tile) 2b Write a compressed tile Write a non- compressed tile Can compress all pixels in the current tile? Yes No 3 FVC (constructs a CCD for the next frame) 2a Send Tile Buffer compressed & non-compressed tiles of block Write to memory 4 Associative search. Evict & replace on miss. Size Lookup table

DCP Variations Improving compression rates:  DCP: A fixed size color palette.  Variable DCP: Varying the color palette size every frame using the feedback from the previous frame.  Adaptive DCP: Encoding tiles based on the frequencies of their colors. Reducing the cost of DCP: Lower sampling rates: Only sending every nth pixel to the FVC to construct the palette. Using the same palette for multiple frames. Framebuffer Compression Using Dynamic Color Palettes10

Results Framebuffer Compression Using Dynamic Color Palettes 11 UI and 2D applications 3D games RED: Locally compressing similar colors in a tile 2 RAS: A more general prediction based compression 3 ADCP 4.13:1 VDCP 3.5:1 DCP 2.86:1 RAS 2.5:1 RED 2.62:1 RAS Cost: using 64 FVC and CCD FVC: 456 bytes CCD: 264 bytes

Limitations and Potential 3D games: Complex color patterns. Color palettes perform poorly. Multiple render targets: Need to construct a palette for every target but this is uncommon in UI apps. Compressing non-color render targets in 3D games: We see potential in compressing some non-color targets. Framebuffer Compression Using Dynamic Color Palettes12

Thank you Questions? Framebuffer Compression Using Dynamic Color Palettes13

References 1- Flurry Analytics: It’s an App World. The Web Just Lives in It.It’s an App World. The Web Just Lives in It 2- NVIDIA, NVIDIA Tegra X1 Whitepaper. URL: international.download.nvidia.com/pdf/tegra/Tegra-X1-whitepaper- v1.0.pdf 3- RASMUSSON, J., HASSELGREN, J., AND AKENINE-MOLLER, T Exact and error-bounded approximate color buffer compression and decompression. In SIGGRAPH/EUROGRAPHICS Conference On Graphics Hardware: Proceedings of the 22nd ACM SIGGRAPH/EUROGRAPHICS symposium on Graphics hardware, vol. 4, 41–48. Framebuffer Compression Using Dynamic Color Palettes14

Backup slides Framebuffer Compression Using Dynamic Color Palettes15

Workloads AB: Angry Birds. PH: Android Phone. CH: Chrome. FB: Facebook. HO: Android Home Screen. KD: Amazon Kindle. MS: Android Messaging. ST: Android Settings. TW: Twitter. TR: Temple Run 2. GS: Gun Ship 2. NS: Need for Speed. FN: Fruit Ninja. Framebuffer Compression Using Dynamic Color Palettes16

Lower pixel sampling at the FVC

Using the same palette for multiple frames

ADCP Example Framebuffer Compression Using Dynamic Color Palettes19 CCD C0C1C2C3C4C5C6C7C0C1C2C3C4C5C6C {00,01} {0,1} { φ } {000,101} {110,010} {110,111} {C 0,C y } {C x,C 2 } {C 0, C 2 } {C 0, C 1 } {C 0, C 0 } {C 0, C 5 } {C 6, C 2 } {C 6, C 7 } {C 0, C y } {C x, C 2 } Tile colorsEncodingCSB

FVC Fidelity vs size