220 likes | 332 Views
Data – How (Much of) It Is Stored. 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. What is an image?.
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