Digital Media Dr. Jim Rowan ITEC 2110 Video Part 2

advertisement
Digital Media
Dr. Jim Rowan
ITEC 2110
Video Part 2
Coping with Video Size
Consider human vision limitations
1) Chrominance sub-sampling
Compression - two versions
2) Spatial
3) Temporal
differencing
vectoring
Coping with Video Size
Consider human vision limitations
1) Chrominance sub-sampling
Compression - two versions
3) spatial
4) Temporal
differencing
vectoring
Chrominance sub-sampling
• Humans can’t distinguish changes in color as
well as they can distinguish luminance
changes
– http://en.wikipedia.org/wiki/Chroma_subsampling
• In our cameras…
– Of every 4 frames
– store the luminance for each frame
– only store a proportion of the color info
– 4:2:0
Chrominance sub-sampling
Luminance, Cr, Cb
http://en.wikipedia.org/wiki/Chroma_subsampling#Sampling_systems_and_ratios
Coping with Video Size
• Aside from screen size and frame rate...
• Consider human vision limitations
1) Chrominance sub-sampling
• Compression - two versions
2) spatial
3) Temporal
differencing
vectoring
Coping with Video Size
• Spatial compression
• Individual images can be compressed using the
techniques discussed in the bitmapped section
• Doesn’t result in very much compression for
video
• Doesn’t take into consideration the other
frames that come before or after it
• Our video cameras do this, compressing each
frame to jpeg
Coping with Video Size
• Aside from screen size and frame rate...
• Consider human vision limitations
1) Chrominance sub-sampling
• Compression - two versions
2) spatial
3) Temporal
differencing
vectoring
Temporal Compression
differencing
• Use the Difference in two frames
– A naive approach can result in good compression
– Works well for a small amount of movement
• Security cameras spend most of their time “seeing” the
same thing all night long
– A Tarantino film? not so much…
• Most pixels change with nearly every frame
Captured
Frame 1
Captured
Frame 2
Saved
Frame 1
Saved
Frame 2
Image Differencing
• To subtract one image from the next
• Do it one pixel at a time
– red minus red
– green minus green
– blue minus blue
• Store the difference
• To play it back
– Play frame one 1
– Add frame 2 to frame 1
• Next, an example in black & white
Example 1, the difference of two identical images
Example 1, the
difference of two
identical images
The result ===>
Example 2, the difference of two similar images
Example 2, the
difference of two
similar images
The result ===>
Temporal Compression
vectoring
• When an OBJECT moves
– compute its trajectory
– fill in the resulting exposed background
Captured
Frame 1
Captured
Frame 2
Stored
Background
– BUT there’s a problem...
– why isn’t this an easy thing to do?
Stored
Object
Movement
Vector
More on differencing
• The differencing can happen in a
forward manner and a backward
manner
• It might be more economical (in data
size) to create a frame from a frame that
follows it...
MPEG-2
iFrame
pFrame
bFrame
GOP
http://en.wikipedia.org/wiki/Inter_frame
http://en.wikipedia.org/wiki/Iframes#Intra_coded_frames_.28or_sli
ces_or_I-frames_or_Key_frames.29
iFrame:
-a keyframe
-spatially compressed
(a fully specified image)
pFrame
-predicted frame
-contains only the difference
between the current frame and
the previous frame
(smaller in size than iFrame)
bFrame
-bi-predicted frame
-contains difference between
current and both the preceding
and following frames
-even smaller in size than iFrame
3 mpeg 2 video streams
http://www.spiritalchemy.com/blog/wp-content/uploads/2009/10/IPB_frame_example.jpg
Group(s) Of Pictures (GOPs)
All spatially (intra-frame)
compressed
The largest
Spatially compressed
and predictive
(difference)
Smaller…
but more
computation
Spatially compressed
forward and
backward predictive
(difference)
Play sequence: 1 2 3 4 5 6 7 8
9 10
Transmit sequence: 1 4 2 3 7 5 6 10 8 9
Smallest…
but more
computation
and it is
transported
out of order!
So…
How does this ===>
happen?
Macroblocks
• It’s COMPLICATED…
• Images are broken up and transmitted as
macroblocks
• They can be a variety of sizes
– Typically 8X8 or 16X16
• When missing (or there are video errors)
– May use a lower resolution block (that was
previously received)
– May just use a solid color block instead
Video Compression
What does this?
http://en.wikipedia.org/wiki/Video_codec
• Coder/Decoder - Codec
– encodes and decodes video
• Can be symmetric
• it takes as long to compress as decompress
• Can be asymmetric
• it takes longer to compress or decompress than it does to
decompress to compress
Video Compression
Can be very complex
Each image is just jpeg compressed
Each image is jpeg compressed; the p-frames
are the result of frames being subtracted from
the i-frames
Each image is jpeg compressed; the p-frames
are the result of frames being subtracted from
the i-frames; b-frames are the result of
frames being subtracted from i-frames and
future p-frames
A final worry...
• Codecs compress video to make it
smaller
• There are a variety of codecs to do this
• Which to choose?
– It is a tradeoff between compression
technique, its computational complexity
and its artifacts
So... How do codecs vary?
• compression and decompression complexity
– affects the artifacts that are created
– affects the time required to carry them out
– affects the volume of the data stream created
– affects the type and expense of the equipment used
– affects whether or not it can be implemented in
hardware of software
• WMV, DivX, Cinepak, Intel Indeo & Sorenson
Which is the original?
Notice the aritfacts?
http://www.100fps.com/codec_quality_comparison.htm
That’s It!
Download