Top Banner
1 Video Compression Video Compression Fundamentals Fundamentals
15

Video Compression Fundamentals

Dec 30, 2015

Download

Documents

Erin Parsons

Video Compression Fundamentals. Video Compression Standards. JPEG: ISO and ITU-T for compression of still image Moving JPEG (MJPEG) H.261: ITU-T SG XV for audiovisual service at p x 64Kbps MPEG-1, 2, 4, 7: ISO IEC/JTC1/SC29/WG11 for compression of combined video and audio. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Video Compression Fundamentals

1

Video CompressionVideo CompressionFundamentalsFundamentals

Page 2: Video Compression Fundamentals

Video Compression StandardsVideo Compression Standards JPEG: ISO and ITU-T

for compression of still image Moving JPEG (MJPEG) H.261: ITU-T SG XV

for audiovisual service at p x 64Kbps

MPEG-1, 2, 4, 7: ISO IEC/JTC1/SC29/WG11 for compression of combined

video and audio

H.263: ITU-T SG XV for videophone at a bit-rate

below 64Kbps JBIG: ISO

for compression of bilevel images

Non-standardized techniques DVI: de facto standard from Intel

for storage compression and real-time decompression

QuickTime: Macintosh

2

Page 3: Video Compression Fundamentals

3

Compressing Digital VideoCompressing Digital Video

Exploit spatial redundancy within frames (like JPEG: transforming, quantizing, variable length coding)

Exploit temporal redundancy between frames Only the sun has changed position between these 2 frames

Previous Frame Current Frame

Page 4: Video Compression Fundamentals

4

Simplest Temporal Coding - DPCMSimplest Temporal Coding - DPCM

Frame 0 (still image) Difference frame 1 = Frame

1 – Frame 0 Difference frame 2 = Frame

2 – Frame 1 If no movement in the scene,

all difference frames are 0. Can be greatly compressed!

If movement, can see it in the difference images

0 1 2 3

Page 5: Video Compression Fundamentals

5

Difference FramesDifference Frames

Differences between two frames can be caused by Camera motion: the outlines of background or

stationary objects can be seen in the Diff Image Object motion: the outlines of moving objects can be

seen in the Diff Image Illumination changes (sun rising, headlights, etc.) Scene Cuts: Lots of stuff in the Diff Image Noise

Page 6: Video Compression Fundamentals

6

Coding Mode I (Inter-Coding)Coding Mode I (Inter-Coding)

CurrentFrame

PreviousFrame

Motion Vector

MacroBlock

Inter coding refers to coding with motion vectors

Page 7: Video Compression Fundamentals

7

Motion Estimation and CompensationMotion Estimation and Compensation Macroblock: motion

compensation unit Motion Estimation

extracts the motion information from a video sequence

Motion information one motion vector for

forward-predicted macroblock

two motion vectors for bidirectionally predicted macroblocks

Motion Compensation reconstructs an image

using blocks from the previous image along with motion information, I.e., motion vectors

Page 8: Video Compression Fundamentals

8

Coding Mode II (Intra-Coding)Coding Mode II (Intra-Coding)

CurrentFrame

PreviousFrame

MacroBlock

INTRA coding refers to coding without motion vectors The MB is coded all by itself, in a manner similar to

JPEG

Page 9: Video Compression Fundamentals

9

I-Picture CodingI-Picture Coding

Two possible coding modes for macroblocks in I-frames Intra- code the 4 blocks with the current quantization

parameters Intra with modified quantization: scale the

quantization matrix before coding this MB

All macroblocks in intra pictures are coded Quantized DC coefficients are losslessly DPCM

coded, then Huffman as in JPEG

Page 10: Video Compression Fundamentals

10

I-Picture CodingI-Picture Coding

8

8

88

Use of macroblocks modifies block-scan order:

Quantized coefficients are zig-zag scanned and run-length/Huffman coded as in JPEG

Very similar to JPEG except (1) scaling Q matrix separately for each MB, and (2) order of blocks

Page 11: Video Compression Fundamentals

P-Picture Coding: many coding P-Picture Coding: many coding modesmodes

Motion compensated coding: Motion Vector only

Motion compensated coding: MV plus difference macroblock

Motion compensation: MV & difference MB with modified quant. scaling

11

DCTMotion Vector

MV = (0,0), just send difference block

MV=(0,0), just send diff block, with modified quantization scaling

Intra: the MB is coded with DCTs (no difference is computed)

Intra with modified quantization scaling

Page 12: Video Compression Fundamentals

12

How to choose a coding mode?How to choose a coding mode?

MPEG does not specify how to choose mode Full search = try everything…the different

possibilities will lead to different rate/distortion outcomes for that macroblock

• Intra

• MV, no difference

• MV, plus difference

rate

distortion •

••

Page 13: Video Compression Fundamentals

13

How to choose a coding mode?How to choose a coding mode?

Tree search: use a decision tree For example:

First find the best-match block in the search window. If it’s a very good match, then use motion compensation. Otherwise, don’t.

If you decided to use motion compensation, then need to decide whether or not to send the difference block as well. Make decision based on how good a match it is.

If you decided to send the difference block, then have to decide whether or not to scale the quantization parameter… check the current rate usage…

Page 14: Video Compression Fundamentals

Motion estimation for different framesMotion estimation for different frames

X Z

Y

Available from earlier frame (X)

Available from later frame (Z)

Page 15: Video Compression Fundamentals

15

B-Picture CodingB-Picture Coding

B pictures have even more possible modes: Forward prediction MV, no difference block Forward prediction MV, plus difference block Backward prediction MV, no difference block Backward prediction MV, plus difference block Interpolative prediction MV, no difference block Interpolative prediction MV, plus difference block Intra coding Some of above with modified Quant parameter