|
Copyright (c) 1998, C. Heeren, T. Magliery, and L. Pitt.
This lesson and supporting materials may be copied for nonprofit educational
use only.
Motivation:
Recall from Lesson 1: Binary Numbers
that all information in a computer is stored as sequences of 0s and 1s.
We talked about the way this works
for numbers, but how does it work for pictures?!
Materials:
-
Several pictures from a newspaper.
-
"I am made of pixels" demonstration overhead.
-
Gray images of heart and helmet,
with different grid sizes (one copy per student), and crayons.
-
Overhead demonstration gray image grid.
-
Simple run length coding image
(Block Art Demo)
on overhead(s), and Block Art worksheets
easy for younger kids, or
harder for older kids.
One copy per student.
-
White grids for large image,
approximately 1000 black squares (1.375in x 1.375in), and plenty of glue sticks.
(Or, borrow our re-usable set of grids and squares instead).
-
Run length codes for
Lincoln
and
Edison large image sections.
Lesson Plan:
-
Explain the motivation for the lesson. The question is, "how do we convert
any black and white picture into a sequence of 0s and 1s?"
-
Distribute news photos. Tell kids to look closely and notice that the pictures
are really small dots. Another fun thing to do at this point in the lesson
is to have a fax arrive for the students to look at. Also, ask kids if
they ever sit so close to the TV that they can see that the picture is
a bunch of dots.
-
Explain that the first task is to figure out how to break the pictures
into small pieces. This process is called "digitizing".
For us the small pieces will be squares. On a computer
these small pieces are called pixels, short for picture elements.
-
If you have a computer, use a drawing or painting program to create an
image (or use an existing image or letter), and then enlarge the image
a lot. We like to enlarge the phrase
"I am made of pixels." The pixels
become apparent as jagged pieces of the object. If you don't have
a computer, use our handout
to demonstrate the point.
-
Distribute one gray image grid handout to each student (not all students
will receive the same image or grid). There are two different images and
four or five different grid sizes. It's most important that you have a
variety of grid sizes and images to examine, so make sure all the different
types of images are handed out.
-
On a gray image overhead
(heart or helmet)
demonstrate the coloring scheme: color a grid square completely
if over half of it is filled by the image, otherwise leave it blank.
(It is not important to judge "half-covered" exactly -
don't let them fret over this. Of course, this could lead
into a lesson on area estimation...)
-
Let students fill in their grid using this scheme.
-
Have students get together with other students who have drawn their same
picture on the same and different sized grids to compare results. Large
grids may not have any squares colored, and will certainly not look like
the original image. As grid size decreases, image will become clearer.
Kids should discover this.
-
Choose one of the images to demonstrate this to the class. Spend a few
minutes in general discussion of the images. Students may need to gather
around closely in order to see the images clearly.
-
As the kids notice that the picture gets better and better when grid sizes
get smaller, ask them why we don't just make the grid as tiny as possible,
thereby making the image very clear. Someone may suggest that it's because
we have to store many many squares. If no one suggests this, prompt
them by saying something like,
"What if each square costs $1 to store?"
Have them compute the number of squares they have to store for a given
grid size. Notice that if you double the number of squares on each side,
the total number of squares is multiplied by 4. Example: 10 by 10 grid
gives 100 squares, and 20 by 20 grid gives 400 squares.
-
Another point of discussion: Notice that parts of some images have
lots of detail, and other parts are just large blocks of color. In
practice the number of squares is reduced by using small squares where
lots of detail occurs,
and large squares where there isn't much detail.
-
Conclusion of this section: We call the number of squares used in
an image the image's "resolution." High resolution results
in clear detailed images, and low resolution may result in cloudy or jagged
images, but transmission of the images will be fast. Inexpensive ink-jet
printers often use a resolution of between 300 and 600 "dpi" (dots per inch).
For example, a square inch of solid black produced by a 600 dpi printer
would contain 600 wide by 600 tall (= 360,000) tiny ink dots!
Web documents use 72 dpi.
-
Next ask the kids how we can store pictures like these using 0s and 1s.
Someone will respond "black squares are 1, white squares are 0," or some
such.
-
Place one of the gray images drawn with a small grid on the overhead, and
talk about how that image would be transmitted over a modem. Start at the
upper left corner of the image and read left to right: "0, 0, 0, 0, 0,
..." Ask if the kids can think of a better way of doing this. They should
recommend something like "Yo! Here come 100 0s!" If they don't, then
just tell them.
-
Show the students how this idea generalizes. Select a line from the gray
image grid overhead to encode. Begin by writing down the number of consecutive
white squares. Then write down the number of consecutive black squares,
and so on until the whole line has been coded. Notice that lines beginning
with a black square have a zero at the beginning of the code to indicate
that there are no white squares at the beginning of the line. This process
is called "run length coding".
-
Someone will probably point out that this technique uses other numbers
besides 0 and 1. Ask the students how to solve this. They should
say that the decimal numbers can be converted to binary! (If
no one brings this up, be sure to tell them.)
-
Next, using the Block Art Demo overhead, demonstrate encoding an entire
(simple) object. Discuss the fact that fewer numbers need to be transmitted
this way. Also demonstrate decoding a simple picture from the same overhead.
You may want to have one of the students come to the overhead to help.
This can also be done on the chalkboard, but it can be a bit of a mess.
-
This is the fun part. Tell the students that they will all cooperate
to make a huge picture. Hand out the white grid sheets, plenty of
little squares, the run length coding cards, and several glue sticks.
Most people will probably have two cards to complete, but some of the cards
are super simple (there are even 6 blank ones) so this is ok. Have
the students orient their grids vertically and fill in the squares indicated
by the run length code. Then, on a giant 7x7 grid on the floor, have
the students lay out their cards where they belong. The students
can do all the shuffling and arranging as they complete their cards.
Each coding instruction card is numbered to indicate its position in the
large grid. Number (3,2) means row 3, column 2. What is the
image?
-
Hand out age appropriate Block Art worksheet, and let the kids discover
the images.
Conclusion:
Suppose you have an image with a block of 1000 white pixels. You could
either send this white block using 1000 bits of 0, or you could send the
number 1000 followed by a special separating symbol, and then a 0 in a
total of 12 characters. This is a remarkable difference! Saving space using
techniques like this is called data compression, and it's crucial to the
viability of working with images on computers. As an example, transmission
of images over the internet would be impossible without significant compression.
Think about the amount of data necessary to view a movie on the internet!
Evaluation:
For the first part of this lesson, try to observe the level of participation
of each student. All students should be able to complete the gray
image grid sheets, so their value as an assessment tool is limited.
An appropriate assessment tool for the second part of the lesson would
ask the students to compare the efficiency (in terms of number of bits
required) of run length coding (as shown in the Block Art examples) versus
explicit bit by bit transmission. You can do this as a supplement
to the Block Art worksheet by having the students do the analysis on the
back of the sheet. There is no "right" answer to this challenge.
Instead, look for the quality of their argument. This task is probably
not appropriate for younger students. For them it is enough to assess
their understanding of image encoding using the simple Block Art worksheet.
Extensions:
If you have time you may want to examine what happens if you use one of
the small grid images as the original image. When a larger grid is filled
in from this image, it is exactly the same as the large grid made from
the smooth picture. Similarly, try using one of the large grid images as
the original image, and fill in a smaller grid. The new image is exactly
the same as the original large grid image. The lesson here is that once
information is lost it cannot be recaptured, i.e. once the image becomes
unrefined, it cannot be re-refined.
Again, if you have time, it's fun to have the kids draw their own images
on grid paper and create the corresponding run length code. They can pass
the coded image to friends to decode.
In practice there is usually a limit to the maximum length of a run
of pixels because the length is being represented as a binary number. Ask
the students how they would represent a run of twelve black pixels if they
could only use numbers up to seven. Answer: 7 black, 0 white, and 5 more
black, is one option.
Older kids should try to come up with compression routines of their
own, and compare them to run length coding. Do their codes work particularly
well on specific kinds of patterns? What kind of pattern is particularly
bad for run length coding?
Have the students research other existing techniques of data compression.
A particularly interesting one is quad-tree representation, which is based
on looking for blocks of pixels all the same color (rather than lines of
pixels).
Ask the students to calculate the amount of data contained in a half
hour of television programming if their television has 1000 bits per line,
400 lines per inch, and the program is shown in 30 frames per second. Discuss
the way in which compression techniques might work for video. The crux
of the explanation is that the images don't change much from frame to frame,
so if you can think of a way of communicating only the changes between
frames, you'll probably save a lot of data.
Students may ask how this works for colored pictures. Ask them for ideas
about how colors and other attributes can be represented. If you have a
computer you can see how colors are specified by setting colors on the
color wheel using hue, saturation, etc. or, alternatively, using RGB values
(Red, Green, Blue).
If you have access to computers, get a jpeg-compressed black/white image,
and see how much space it takes in Kilobytes. (A Kilobyte is 1024 bytes,
or 1024 x 8 bits). When uncompressed, see how many bits it takes (by multiplying
height x width in pixels), and compare.
Standards:
-
NCTM K-4: 1, 2, 3, 4, 7, 8, 9.
-
NCTM 5-8: 1, 2, 3, 4, 7, 8.
-
NCTM 9-12: 1, 2, 3, 4, 6, 12.
Skills:
- Problem solving / reasoning / communication / connections
- Counting
- Encoding and decoding practice
- Spatial sense
- Art
Copyright (c) 1998, C. Heeren, T. Magliery, and L. Pitt.
This lesson and supporting materials may be copied for nonprofit educational
use only.
|