Lecture 4.1: Image Encoding Practice

Digital Media
Lecture 4.1: Image Encoding
Practice
Georgia Gwinnett College
School of Science and Technology
Dr. Jim Rowan
Refer to Supplemental text:


Ways to store an image as numbers: Bitmapped Graphics
Ways to store an image as numbers: Vector Graphics
Practice Examples

Each image encoded three ways:
– 24 bit RGB
– Run Length Encoding
– Table Encoding
237, 132, 30
-orange
255, 255, 255
-white
67, 139, 23
-green
120, 248, 254
-cyan
232, 68, 21
-red
0, 59, 250
-blue
Example 1
24 bit RGB
orange | white | green | cyan |cyan | cyan | red | orange | white |
red | white | blue
237, 132, 30 | 255, 255, 255 | 67, 139, 23 | 120, 248, 254 |
120, 248, 254 | 120, 248, 254 | 232, 68, 21 | 237, 132, 30 |
255, 255, 255 | 232, 68, 21 | 255, 255, 255 | 0, 59, 250
36 bytes total (excluding any header)
237, 132, 30
-orange
255, 255, 255
-white
67, 139, 23
-green
120, 248, 254
-cyan
232, 68, 21
-red
0, 59, 250
-blue
Example 1
24 bit RGB
Run length encoding
RLE
1 byte for the count
1 orange | 1 white | 1 green | 3 cyan | 1 red | 1 orange | 1 white |
1 red | 1 white | 1 blue
1
3
1
1
237, 132, 30 | 1 255, 255, 255 | 1 67, 139, 23 |
120, 248, 254 | 1 232, 68, 21 | 1 237, 132, 30 |
255, 255, 255 | 1 232, 68, 21 | 1 255, 255, 255 |
0, 59, 250
40 bytes total (excluding any header)
notice that in this case, the RLE is larger than the 24 bit RGB
237, 132, 30
-orange
255, 255, 255
-white
67, 139, 23
-green
120, 248, 254
-cyan
232, 68, 21
-red
0, 59, 250
-blue
237, 132, 30
orange
000
255, 255, 255
white
001
67, 139, 23
green
010
120, 248, 254
cyan
011
232, 68, 21
red
100
0, 59, 250
blue
101
000
011
100
100
010
011
001
101
001
011
000
001
Example 1
24 bit RGB
Table Encoding
color table: 18 bytes
bitmapped portion: 36 bits/8 = 5 (4.5) bytes
Total: 18 + 5 = 23 bytes
(excluding any header)
232, 68, 21
-red
255, 255, 255
-white
237, 132, 30
-orange
0, 59, 250
-blue
Example 2
24 bit RGB
red | orange | white | white | red | white | blue | blue |
red | white | white | white
232, 68, 21 | 237, 132, 30 | 255, 255, 255 | 255, 255, 255 |
232, 68, 21 | 255, 255, 255 | 0, 59, 250 | 0, 59, 250 |
232, 68, 21 | 255, 255, 255 | 255, 255, 255 | 255, 255, 255 |
36 bytes total (excluding any header)
232, 68, 21
-red
255, 255, 255
-white
237, 132, 30
-orange
0, 59, 250
-blue
Example 2
24 bit RGB
Run length encoding
RLE
1 byte for the count
1 red | 1 orange | 2 white | 1 red | 1 white | 2 blue | 1 red | 3 white
1 232, 68, 21 | 1 237, 132, 30 | 2 255, 255, 255 | 1 232, 68, 21 |
1 255, 255, 255 | 2 0, 59, 250 | 1 232, 68, 21 | 3 255, 255, 255 |
32 bytes total (excluding any header)
232, 68, 21
-red
255, 255, 255
-white
237, 132, 30
-orange
0, 59, 250
-blue
232, 68, 21
red
00
255, 255, 255
white
01
237, 132, 30
orange
10
0, 59, 250
blue
11
00
00
00
10
01
01
01
11
01
Example 2
24 bit RGB
Table Encoding
color table: 12 bytes
01
11
01
bitmapped portion: 24 bits/8 = 3 bytes
Total: 12 + 3 = 15 bytes
(excluding any header)
237, 132, 30
-orange
255, 255, 255
-white
120, 248, 254
-cyan
Example 3
24 bit RGB
orange | orange | white | orange | cyan | cyan | orange | cyan | orange
237, 132, 30 | 237, 132, 30 | 255, 255, 255 | 237, 132, 30 |
120, 248, 254 | 120, 248, 254 | 237, 132, 30 | 120, 248, 254 |
237, 132, 30
27 bytes total (excluding any header)
237, 132, 30
-orange
255, 255, 255
-white
120, 248, 254
-cyan
Example 3
24 bit RGB
Run length encoding
RLE
1 byte for the count
2 orange | 1 white | 1 orange | 2 cyan | 1 orange | 1 cyan | 1 orange
2 237, 132, 30 | 1 255, 255, 255 | 1 237, 132, 30 | 2 120, 248, 254 |
1 237, 132, 30 | 1 120, 248, 254 | 1 237, 132, 30
28 bytes total (excluding any header)
237, 132, 30
-orange
255, 255, 255
-white
120, 248, 254
-cyan
Example 3
24 bit RGB
Table Encoding
237, 132, 30
orange
00
255, 255, 255
white
01
120, 248, 254
cyan
10
00
00
00
01
10
00
bitmapped portion: 18 bits / 8 = 3 bytes
00
10
10
color table: 9 bytes
Total: 9 + 3 = 12 bytes
(excluding any header)
Another table encoding example
237, 132, 30
-orange
255, 255, 255
-white
67, 139, 23
-green
120, 248, 254
-cyan
232, 68, 21
-red
0, 59, 250
-blue
237, 132, 30
orange
000
255, 255, 255
white
001
67, 139, 23
green
010
120, 248, 254
cyan
011
232, 68, 21
red
100
0, 59, 250
blue
101
000
000
000
000
000
011
100
100
001
011
000
001
010
011
001
101
Example 4
24 bit RGB
Table Encoding
color table: 18 bytes
bitmapped portion: 48 bits/8 = 6 bytes
Total: 18 + 6 = 24 bytes
(excluding any header)
Additional practice images