220 likes | 350 Vues
This lecture delves into the intricacies of image storage in computing. It addresses what an image is and explores various file formats, including GIF, JPEG, and PNG. The session covers methods of reducing file size through compression algorithms, distinguishing between lossless and lossy techniques. Additionally, it touches on the conversion processes between vector and raster graphics and discusses practical applications of compression in image quality. The lecture aims to provide a comprehensive overview of how images are stored, displayed, and managed on computers.
E N D
Data – How (Much of) It Is Stored CS 128/ES 228 - Lecture 7a
Outline • What Is an Image Really? • Methods of Storing Images • How to Make a Big File Small • Compression Algorithms • Conversion Algorithms • In theory • In practice CS 128/ES 228 - Lecture 7a
What is an image? • An image is anything we store on the computer that we think of as a “picture”. It should look “the same” on any display. • Image file formats • GIF, JPEG, TIFF, BMP • NOT shapefiles CS 128/ES 228 - Lecture 7a
File Formats • There are many image file formats • 35 on the first page I hit looking for a list! • Each has advantages and disadvantages CS 128/ES 228 - Lecture 7a
GIF • Developed by Compuserve in 1987 • Particularly good for line drawings (anything with sharp edges) • VERY common on web CS 128/ES 228 - Lecture 7a
JPEG (or JPG) • Product of the Joint Photographers Experimental Group • Good for photos, images with subtle changes • Also popular on the web CS 128/ES 228 - Lecture 7a
GIF vs. JPEG CS 128/ES 228 - Lecture 7a
JPEG 2000 (aka JP2) • “The JP2 and JPX file formats allow for handling of color-space information, metadata, and for interactivity in networked applications as developed in the JPEG Part 9 JPIP protocol.” • Some imagery is now distributed as JP2 files – datum and projection included at no extra charge! CS 128/ES 228 - Lecture 7a
Portable Network Graphics (PNG) • PNG also stands for “PNG’s Not GIF” • Loss-less compression using non-patented algorithm • Supports transparency, but not really animation • ISO standard since 2003 CS 128/ES 228 - Lecture 7a
BMP • Bitmap format – Primarily for Windows (but not exclusively) • NO Compression means LARGE files • Standard Screen Snapshot is BMP CS 128/ES 228 - Lecture 7a
EPS, PICT, TIFF • Encapsulated PostScript (mostly for printing, some display) • PICTure format (Macs only) • Tag Interchange File Format (multi-platform, but less used these days) CS 128/ES 228 - Lecture 7a
Shapefiles and active software • A running program may read from or write to these formats, but generally uses its own memory management while running. • Shapefiles contain shape information and are not in any of these formats – and not truly image files • They are vector layers, after all CS 128/ES 228 - Lecture 7a
Compression Algorithms • Compression algorithms “shrink” files • May do so by mathematical “tricks” or by discarding information CS 128/ES 228 - Lecture 7a
Two KEY Facts about Compression • NO LOSS-LESS compression algorithm can work all the time! • NO LOSSY compression algorithm can regenerate its original data. CS 128/ES 228 - Lecture 7a
3 7 0 3 1 1 2 3 4 1 6 An LOSS-LESS ExampleRun-length compression • Count and record the length of the data set and then each group of 0’s or 1’s 1110100 1110000 1000000 CS 128/ES 228 - Lecture 7a
124 029 935 725 304 A LOSSY ExampleTruncation 1242144903 0293570214 9352109521 7259027565 3048282535 1240000000 0290000000 9350000000 7250000000 3040000000 CS 128/ES 228 - Lecture 7a
How much does compression affect image quality? Original (32 MB) Compressed(493 kB) CS 128/ES 228 - Lecture 7a
Converting Vector to Raster • Must compute the equation of the line • Then choose which pixels to highlight • Many algorithms, but differences are technical CS 128/ES 228 - Lecture 7a
X = x0 Y = y0 (x1,y1) Illuminate pixel (x, int(Y)) Y = y0 + 1 Illuminate pixel (x, int(Y)) X = X + 1 /m Y = Y + 1 Illuminate pixel (x, int(Y)) … (x0,y0) Until Y == y1 Typical algorithm CS 128/ES 228 - Lecture 7a
Anti-aliasing Basic idea – Remove the “jaggies” by using color variations CS 128/ES 228 - Lecture 7a
Conversion in practice CS 128/ES 228 - Lecture 7a
Converting Raster to Vector • Basic idea • Find areas with sharp changes – these are your boundaries. • Adjust as topology indicates • Much harder in practice than the other way around • Alternative is hand-digitization CS 128/ES 228 - Lecture 7a