H.264 Luma Predictor -...

31
Integrated Systems Group Massachusetts Institute of Technology H.264 Luma Predictor Maxine Lee, Alex Moore May 17, 2006

Transcript of H.264 Luma Predictor -...

Page 1: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems GroupMassachusetts Institute of Technology

H.264 Luma Predictor

Maxine Lee, Alex MooreMay 17, 2006

Page 2: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 2

Why H.264?End-to-end protocol

Better compression

Designed for efficient encoding

ITU standard

It’s on your iPod

Page 3: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 3

Project Scope

Prediction module of H.264 EncoderIntraframe PredictionInterframe PredictionTransformsLuma only (no color information!)

Why?85%+ of encoder computation timeRich problem with lots of exploration

Page 4: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 4

Intraframe PredictionMotivation

Page 5: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 5

Intraframe PredictionBlock Diagram

Page 6: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 6

Interframe Prediction

Page 7: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 7

Intra-Frame PredictionUse spatial similarities to compress each frame

Use neighboring pixels to make a prediction on a blockTransmit the difference between actual and predictedTradeoff : prediction accuracy vs. # control bits

H.264 Answer : 4x4 and 16x16 prediction !

homogenous Hugegradient

Page 8: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 8

Intra – 4x4 Prediction

9 prediction modesPrediction proceeds left to right, top to bottomWhen not all boundary pixels available (i.e. we’re at border of picture), can’t predict with all the modes

Current Pixels

Previously predictedand reconstructed

blocks

Page 9: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 9

Intra - 16x16 Prediction

average

Mode 0 : Vertical Mode 1 : Horizontal

Mode 2 : DC Mode 3 : Plane

Page 10: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 10

Advantages/Disadvantages

Encoder’s job to compare options and pick the bestExhaustive search …Uses a cost function to compare different modes

9 modes = 4 bits for every 16 pixels (!)

4 modes = 2

Good for detailed areasLots of options

Good for smooth areas

Intra 4x4Intra 16x16

Page 11: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 11

Block Diagram (Baseline)

Inputvideo

DCT

IDCT

Quant

IQuant

Choose Prediction Mode

Picture Parsing

Get 4x4PredictionResidual

Get 16x16PredictionResidual

Config

Compute4x4 Cost

Compute16x16 Cost

QP

QP

Try all 9 modes

Try all 4 modesLoop through 16

4x4 blocks

Initialize predictionvariables

Get best mode –Send to output

Output(to entropy encoder)

16x16

4x4

Page 12: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 12

Intra – 16x16 Considerations

ProcessLoop through the available*** modesGenerate the predictionCompute cost of residual

Cost ~ SAD ( sum of absolute diff )

***What’s available?Depends on location in the frame!

Get 16x16PredictionResidual

Compute16x16 Cost

Try all 4 modes

All modespossible

Only DCpossible

Page 13: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 13

Intra – 4x4 Considerations

Process:Loop through all 16 blocksFor each block, loop through available modesGet ***cost = SAD + 4*P*λ(QP)Pick best mode – send to DCTSave reconstructed 4x4 block, so you can use it to predict the next 4x4 block

Cost :f ( QP ), since overhead bits hurt more with higher compressionP : most probable mode

Get 4x4PredictionResidual

Compute4x4 Cost

QP

Try all 9 modes

Loop through 164x4 blocks

Overhead!!!

A

B

Page 14: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 14

Extra Concerns with Intra 4x4

Which boundary pixels do you use?Boundary depends on where in the picture you are AND which 4x4 block you’re working on

Only leftboundary available,

and in anothermacroblock

Upper right pixelsnot available

(can extrapolate)

Page 15: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 15

Storing Boundary Pixels To predict current macroblock, need pixels from FOUR neighbors (A-D)

D can be stored in a register, since it is immediately usedPixels for previous row (A-C) have to be stored in a register file

Also save A in register to limit regfile reads to 2

BA C

D

Page 16: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 16

Synthesis NumbersNote: not P+R – not enough RAM / hard disk

(ask us tomorrow if you’re really curious about P+R numbers )

Total Area = 609,940 um^2

Clock Cycle = 7.27 ns (quant multiplications)

9%Misc.

15%Quant (with QP lookup tables )

10%DCT/IDCT

66%Predictor

Page 17: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 17

Only Three Regions of Change

Page 18: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 18

Interframe Prediction

Use previous frame(s) to predict macroblocksof current frameMost of the time, majority of frame isn’t movingIf change within macroblock is sufficiently small, just reproduce it exactly!

Page 19: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 19

Interframe Prediction

Page 20: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 20

Interframe Prediction

Page 21: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 21

Interprediction Algorithm

Use a motion vector to predict the current macroblock. Start at (0,0) – same block – and calculate error for each motion vectorFull-Search algorithm. Try all possible motion vectors within a windowFinal prediction will be block given by motion vector with minimum error

Page 22: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 22

Interprediction Algorithm

Page 23: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 23

Interprediction Algorithm

Page 24: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 24

Interprediction Algorithm

Page 25: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 25

Interprediction Algorithm

Page 26: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 26

Problem…

Assume a window size of 16 (conservative)1024 possible motion vectors to check per macroblock (vs. 9 for intra)307200 possible motion vectors per frame!

Page 27: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 27

Solution

A better algorithm! Assume motion estimation gets better as we get closer to ideal motion vector. Diamond-shaped algorithm reduces points checked by ~80% with mean error per pixel about 3 (vs about 2) for FS.Hexagonal algorithm reduces by another ~35% (3.2 mean error vs 3.0)

Page 28: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 28

Hexagonal Algorithm

Page 29: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 29

Circuit Implementation

ResidualAnd Cost

Frame Buffer

Predict Control Transforms

NetworkLayer

Page 30: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 30

Results…

Results? What Results?

H.264 predictor ~40x size of SMIPS processor

Frame buffer adds ~18000 area (+4%)But we’re cheating (64x48 video size)

Interprediction block adds ~35000 area (+7%)

Performance evaluation TBA

Page 31: H.264 Luma Predictor - MITcsg.csail.mit.edu/6.375/6_375_2006_www/projects/group3-presentation.pdfMicrosoft PowerPoint - group3-presentation.ppt Author: Christopher Created Date: 10/25/2006

Integrated Systems Group 31

References