1 Using Checksum to Reduce Power Consumption of Display Systems for Low-Motion Content Kyungtae Han*, Zhen Fang, Paul Diefenbaugh, Richard Forand, Ravi R. Iyer, Donald Newell Intel Labs Oct. 5, 2009 2009 IEEE International Conference on Computer Design, Lake Tahoe, CA
20
Embed
11 Using Checksum to Reduce Power Consumption of Display Systems for Low-Motion Content Kyungtae Han*, Zhen Fang, Paul Diefenbaugh, Richard Forand, Ravi.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
11
Using Checksum to Reduce Power Consumption of Display Systems for
Low-Motion Content
Kyungtae Han*, Zhen Fang, Paul Diefenbaugh, Richard Forand,
Ravi R. Iyer, Donald Newell
Intel Labs
Oct. 5, 2009
2009 IEEE International Conference on Computer Design, Lake Tahoe, CA
• Typical applications on mobile device tend to have static image contents– Web browsing, text editing– Each frame hardly changes from the previous one
• Efficiently detecting and handling no-motion scenes are critical to extend the battery life – Propose image change detection algorithms
• Optimize power consumption of display subsystems– Local display refresh– Remote display content compression
44
Local Display Refresh with Local Buffer• Refresh screen at a fixed rate (e.g. 60 Hz)• When images are not changed, refresh through
local frame buffer in order to save power consumption in host*
System DRAM System FB
Gfx
LCD controller
Image hold
LCD panel
CPU
Memory controller
RGB data
address
Local FB
* [Brakmo 2004]
55
Remote Display
• Encode data and transmit– Eliminate temporal redundancy between video frames
• Two steps of encoding1. Find different pixel blocks between current and reference
frames2. Encode the difference
Frame buffer
X server/Win manager/3D driver
Application
Remote Display Interface: encoding
Wireless network
MPEG/H.264 decoding
Frame buffer
LCD controller
(Thin display client)
66
Image Change Detection
Current frame/block
===
===
+
Ref. frame/block
=
CRCCRC
Current frame/blockRef. frame/block
Conventional Detection Proposed Detection
0: No change/ Zero-motion
Others: Image changed/ motion
* Cyclic redundancy check (CRC) is a type of data integrity checksum function that takes a data stream and produces a value
77
Pixel Fetch from DRAM
Pixel-by-pixel Comp. Proposed method
Frame n / MB n
Frame n-1 / MB n-1
time
compare
Frame n+1 / MB n+1
compare
Each pixel fetched from DRAM twice
Frame n / MB n
Frame n-1 / MB n-1
compare
Frame n+1 / MB n+1
compare
Each pixel fetched from DRAM once
CRC1 CRC2 CRC3
(in DRAM)
time
(in DRAM)
88
Stream Image Change Detector
• Each pixel fetched from DRAM once
System DRAM
System FB
GfxCPU
Memory controller
CRC generator
DelayCRC
checker
vsyncpixel clock vsync
LCD controller
Image
Hold
LCD panel
Stream Image Change Detector
Local FB
99
Zero-Motion Detection Using Hardware CRC
Generate CRC for current MB
CRC of same MB in last frame
Zero-motion detected
Motion detected. Encode current MB as I-block
==?
N
Y
from X server / win manager / 3D driver
Current MB to frame buffer
MB: macro block (16x16 pixels)
1010
Additional Techniques
• Partial CRC– Ignore some of pixel components– E.g. Skip brightness
– only use U and V and skip Y (Brightness)
• CRC Throttling– Turn On/Off CRC logic based on
contents– Turn off CRC after zero motion
vector has been generated for T successive frames, (no more than S)
X server / window manager / 3D driver
SRAM
CRC Generation
Baseline encoding process
U, V for one blk
RGB-to-YUV
Y, U, V for one blk CRC
throttle
Q D Q D DQ Q D
CRC(3) CRC(2) CRC(1) CRC(0)
Pixel data in
throttle
clock
Example CRC-4 Implementation for
X4 + X2 +X +1
to frame buffer XOR XOR
XOR
CRC compare
1111
Failure Recovery
• Failure of CRC-based image change detection– Slight possibility that motion between two blocks of data is
missed by short CRCs– Result in repeated rendering of an obsolete image
• Overcome this failure– Periodically de-assert CRC-based image change detection