CS101 Lecture 15: Image Compression Aaron Stevens 23 February 2011 Some material form Wikimedia Commons Special thanks to John Magee and his dog 1 What You’ll Learn Today – Review: how big are image files? – How can we make image files smaller? – What are the main image file formats, and how are they different from each other? – What are the main techniques for compressing images? 2 1
Image File Size: HUGE! Raster/Bitmap Graphics Storage of data on a pixel-by-pixel basis – Bitmap (BMP), GIF, JPEG, and PNG, for example How much data is required to represent a picture? – Typical size might be 1024 by 768 pixels (~ 800,000) – At 3 bytes per pixel, about 2,400,000 bytes for one picture. – A 10Mpixel picture would be 30,000,000 bytes per picture. 3 Consider download times… Example: – A 10Mpixel picture would be 30,000,000 bytes – This is 240,000,000 bits. – Typical home cable modem downloads at 5 Mbits per second (5,000,000 bits per second). How long to download this picture? – 240,000,000 / 5,000,000 = 48 seconds • What factors make the image so big? 4 2
Describe this picture… Vector Graphics describes an image by coordinates, lines, geometric shapes and colors. 5 This image was a homework assignment by a CS108 student, Spring 2008. Vector Graphics Example Instructions written in Python by CS108 student (Spring 2010). File size: 29743 bytes. 6 3
Vector Graphics Advantages: – Small file sizes (instructions take much less space than sampling pixels) – Easy to resize mathematically without loss of detail Disadvantages: – Image shapes are not lifelike – Color contrast and texturing are rigid, not lifelike – Requires software to interpret the drawing instructions 7 Raster vs. Vector Graphics When would you use each? Drawings, Diagrams, Photography, Games, etc. video, etc. 8 4
Storing an image in fewer bytes What are our choices? What are reasonable tradeoffs? –Raster Graphics vs. Vector Graphics? –Decrease sampling rate (fewer pixels) –Decrease quantization (fewer colors) –Compression 9 Lower Image Resolution? Original bitmap image dimensions: – 1524 * 2034 = 3,099,816 pixels – 3,099,816 pixels * 3 bytes = 9,299,448 bytes How about 300 * 400 pixels? – 300 * 400 pixels = 120,000 pixels – 120,000 pixels * 3 bytes = 360,000 bytes A compression ratio of 0.038. What’s the catch? 10 5
Fewer Colors: GIF Images Graphics Interchange Format (GIF) Each image is made up of any 256 (or 16) RGB colors, but only those colors. How does this affect quantization? – 256 colors: 8 bits per pixel – 16 colors: 4 bits per pixel 300 * 400 pixels 16 Colors 120,000 bytes 11 How About Fewer Colors? 16 Color GIF 256 Color GIF Original BMP 120,000 bytes 200,000 bytes 360,000 bytes 12 6
Data Compression (saving space) Data compression Reduction in the amount of space needed to store a piece of data. Data compression techniques can be: lossless , which means the data can be retrieved without any loss of the original information lossy , which means some information may be lost in the process of compaction 13 Lossless Compression Strategies Recall: – Keyword encoding – Run-length encoding – Huffman encoding How can we apply these to images? 14 7
PNG Image Format Portable Network Graphics (PNG) 24-bit bitmapped color. Uses lossless compression. 2-stage compression process: 1. Filter image by adjacent pixels, record the differences 2. Use the DEFLATE algorithm (Huffman encoding scheme) 15 JPEG Images The Joint Photographic Experts Group created the standard codec in 1992, approved by ISO 10918-1 in 1994. – Default format on most digital cameras – Compression reduces file size up to 90% with little loss is visible quality – Great for life-like images the web 16 8
Recall: The RGB Colorspace = RGB has a lot of redundant information. JPEG Uses the YCbCr Colorspace = Y is the luminance component Cb and Cr are the chroma components (blue, red) 9
JPEG and the YCbCr Colorspace JPEG separates luma (brightness) from chroma (color differences). – Our eyes are more sensitive to changes in luma than to changes in chroma. JPEG thus stores a high resolution Y, and lower-resolution CbCr. – Smoothing colors among adjacent pixels. 19 JPEG Color Smoothing This image is progressively more smoothed from left to right (highest to lowest quality). 20 10
JPEG Compression – Convert color space from RGB to YCbCr – Smooth adjacent colors in Cb/Cr – Apply Huffman compression after smoothing Which part of this is lossy compression? 21 Same Picture, Many Formats Original image was 2048 * 1536 pixels All others are 300 * 400 pixels 22 11
Image Manipulation Software There are many different image manipulation software packages, e.g.: – Paint – Built in to windows – Photoshop – Commercial software – Irfanview – Free software – Paintshop Pro – Shareware/Commercial – GIMP – Free software 23 24 12
What You Learned Today – Factors in image file size – Compression strategies • Reduce colors • Reduce resolution • Lossless compression • Lossy compression – GIF, PNG, and JPEG Format Images 25 Student To Dos –HW05 due Wednesday 2/23 –Readings: • Wong ch 1 pp 13-19, ch 2, pp 26-44 (this week) • Wong ch 3, pp 66-86 (today) –Friday: guest speaker about computer vision 26 13
Recommend
More recommend