introduction to vp8
DESCRIPTION
沒什麼內容的 VP8 簡介TRANSCRIPT
![Page 1: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/1.jpg)
Introduction to VP8郭至軒 (KuoE0)
![Page 2: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/2.jpg)
Latest update: Jun 13, 2013
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/
![Page 3: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/3.jpg)
Situation
![Page 4: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/4.jpg)
web m
![Page 5: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/5.jpg)
web m
![Page 6: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/6.jpg)
Video Codec
VP8
![Page 7: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/7.jpg)
An Open Source Codec
![Page 8: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/8.jpg)
Developed by On2 Technology
![Page 9: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/9.jpg)
Developed by On2 Technology
February, 2010
![Page 10: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/10.jpg)
Acquired by Google
February, 2010
![Page 11: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/11.jpg)
Patent
![Page 12: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/12.jpg)
web m
![Page 13: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/13.jpg)
March, 2013
web m
![Page 14: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/14.jpg)
Royalty-Free TermsMarch, 2013
web m
![Page 15: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/15.jpg)
Successor
VP9
![Page 16: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/16.jpg)
Successor
VP9May 15, 2013
![Page 17: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/17.jpg)
Feature
![Page 18: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/18.jpg)
focus on
Internetweb-based
application
![Page 19: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/19.jpg)
Low Bandwidth Requirement
Image Quality:
watchable (PSNR: ~30dB)
visually lossless (PSNR: ~45dB)
![Page 20: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/20.jpg)
Heterogeneous Client Hardware
![Page 21: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/21.jpg)
Heterogeneous Client Hardware
![Page 22: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/22.jpg)
Heterogeneous Client Hardware
Efficient Implementations
![Page 23: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/23.jpg)
Web Video Format
YUV 420 color sampling
8 bit per channel depth
Up to 16383 × 16383 pixels
![Page 24: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/24.jpg)
Processing Flow
![Page 25: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/25.jpg)
CodingPredict
Transform + Quantize
Entropy Code
Loop Filter
![Page 26: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/26.jpg)
DecodingEntropy Decode
Predict
Dequantize+Inverse Transform
Loop Filter
![Page 27: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/27.jpg)
Reference Frame
![Page 28: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/28.jpg)
Golden FrameLast FrameAlternate Frame
Reference Frame
![Page 29: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/29.jpg)
Golden Frame Last FrameAlternate
Frame
At most 3 reference frames in VP8.
![Page 30: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/30.jpg)
Last Frame
![Page 31: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/31.jpg)
Last Frame
![Page 32: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/32.jpg)
Last Frame
![Page 33: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/33.jpg)
Last Frame Current Frame
![Page 34: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/34.jpg)
Golden Frame
Choose an arbitrary frame in the past.
Define a number of flags to notify decoderwhen and how to update this buffer.
![Page 35: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/35.jpg)
Golden Frame
Choose an arbitrary frame in the past.
Define a number of flags to notify decoderwhen and how to update this buffer.
![Page 36: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/36.jpg)
![Page 37: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/37.jpg)
![Page 38: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/38.jpg)
set as the golden frame
![Page 39: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/39.jpg)
Golden Frame
Golden Frame
![Page 40: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/40.jpg)
Golden Frame
Golden Frame
![Page 41: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/41.jpg)
Golden Frame
Golden Frame
![Page 42: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/42.jpg)
Golden Frame
Golden Frame
![Page 43: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/43.jpg)
Golden Frame
Golden Frame
![Page 44: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/44.jpg)
Golden Frame
Golden Frame
![Page 45: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/45.jpg)
Golden Frame
Golden Frame
![Page 46: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/46.jpg)
Golden Frame
Golden Frame
![Page 47: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/47.jpg)
Golden Frame
Golden Frame
![Page 48: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/48.jpg)
Reconstruct
moving objectbackground
![Page 49: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/49.jpg)
Alternate Frame
Other Frame
Alternate Frame
![Page 50: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/50.jpg)
Alternate Frame
Other Frame
Alternate Frame
decodeshow
![Page 51: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/51.jpg)
Alternate Frame
Other Frame
Alternate Frame
decodeshow
decode show
![Page 52: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/52.jpg)
Alternate Frame
Other Frame
Alternate Frame
decodeshow
decode show
store beneficial information
![Page 53: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/53.jpg)
Construct from multi-frame
![Page 54: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/54.jpg)
Construct from multi-frame
![Page 55: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/55.jpg)
Construct from multi-frame
![Page 56: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/56.jpg)
Construct from multi-frame
Alternate Frame
![Page 57: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/57.jpg)
Typical Frame
I B B P B B P B B I B B P
![Page 58: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/58.jpg)
VP8
L G
A
G G G G G L G G G
A
G L
![Page 59: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/59.jpg)
Prediction
![Page 60: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/60.jpg)
Intra Prediction
Inter Prediction
use data within a single video frame
use data from previously encoded frames
![Page 61: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/61.jpg)
Intra Prediction
Luma
LumaChroma
![Page 62: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/62.jpg)
Intra Prediction
Luma
LumaChroma
16 4 8
![Page 63: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/63.jpg)
H_PRED (horizontal prediction)
V_PRED (vertical prediction)
DC_PRED (DC prediction)
TM_PRED (TrueMotion prediction)
Four Prediction Modes:
![Page 64: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/64.jpg)
Horizontal Prediction
Fills each column of the block with a copy of the left column.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X Y
![Page 65: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/65.jpg)
Horizontal Prediction
Fills each column of the block with a copy of the left column.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X Y
ejoty
![Page 66: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/66.jpg)
Horizontal Prediction
Fills each column of the block with a copy of the left column.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X Y
ejoty
e e e e ej j j j jo o o o ot t t t ty y y y y
![Page 67: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/67.jpg)
Vertical Prediction
Fills each row of the block with a copy of the above row.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X Y
![Page 68: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/68.jpg)
Vertical Prediction
Fills each row of the block with a copy of the above row.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X YU V W X Y
![Page 69: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/69.jpg)
Vertical Prediction
Fills each row of the block with a copy of the above row.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X YU V W X Y
U V W X YU V W X YU V W X YU V W X YU V W X Y
![Page 70: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/70.jpg)
DC Prediction
Fills the block with a single value using the average of the pixels in the above row and the left column.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X Y
![Page 71: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/71.jpg)
DC Prediction
Fills the block with a single value using the average of the pixels in the above row and the left column.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X YU V W X Y
ejoty
Z = (U + V + W + X + Y + e + j + o + t + y) ÷ 10
![Page 72: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/72.jpg)
DC Prediction
Fills the block with a single value using the average of the pixels in the above row and the left column.
a b c d ef g h i jk l m n op q r s tu v w x y
A B C D EF G H I JK L M N OP Q R S TU V W X YU V W X Y
ejoty
Z = (U + V + W + X + Y + e + j + o + t + y) ÷ 10
Z Z Z Z ZZ Z Z Z ZZ Z Z Z ZZ Z Z Z ZZ Z Z Z Z
![Page 73: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/73.jpg)
* * * * L0
* * * * L1
* * * * L2
* * * * L3
* * * * L4
* * * * ** * * * ** * * * ** * * * *
A0 A1 A2 A3 A4
TrueMotion Prediction
Horizontal differences between pixels in above row and vertical differences between pixels in left column are propagated (starting from C).
* * * * ** * * * ** * * * ** * * * ** * * * C
![Page 74: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/74.jpg)
* * * * L0
* * * * L1
* * * * L2
* * * * L3
* * * * L4
* * * * ** * * * ** * * * ** * * * *
A0 A1 A2 A3 A4A0 A1 A2 A3 A4
L0
L1
L2
L3
L4
TrueMotion Prediction
Horizontal differences between pixels in above row and vertical differences between pixels in left column are propagated (starting from C).
* * * * ** * * * ** * * * ** * * * ** * * * CC
Xij = Ai + Lj - C
![Page 75: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/75.jpg)
* * * * L0
* * * * L1
* * * * L2
* * * * L3
* * * * L4
* * * * ** * * * ** * * * ** * * * *
A0 A1 A2 A3 A4A0 A1 A2 A3 A4
L0
L1
L2
L3
L4
TrueMotion Prediction
Horizontal differences between pixels in above row and vertical differences between pixels in left column are propagated (starting from C).
* * * * ** * * * ** * * * ** * * * ** * * * CC
Xij = Ai + Lj - C
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
![Page 76: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/76.jpg)
Inter Prediction
As mentioned above...
![Page 77: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/77.jpg)
Inter Prediction
Golden Frame Last FrameAlternate
Frame
![Page 78: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/78.jpg)
Motion VectorReusing vectors from neighboring macroblocks.
Flexible partitioning of a macroblock into sub-blocks.
![Page 79: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/79.jpg)
Sub-pixel Interpolation
Quarter pixel accurate motion vectors for luma pixels.
High performance six-tap interpolation filters.[3, -16, 77, 77, -16, 3]/128 for 1⁄2 pixel positions[2, -11, 108, 36, -8, 1]/128 for 1⁄4 pixel positions[1, -8, 36, 108, -11, 2]/128 for 3⁄4 pixel positions
![Page 80: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/80.jpg)
Hybrid Transform & Quantization
![Page 81: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/81.jpg)
Divide into Macroblocks
One 16×16 block of luma pixels (Y)Two 8×8 blocks of chroma pixels (U, V)
Typical Method
![Page 82: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/82.jpg)
![Page 83: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/83.jpg)
![Page 84: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/84.jpg)
![Page 85: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/85.jpg)
![Page 86: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/86.jpg)
![Page 87: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/87.jpg)
16 8 8
![Page 88: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/88.jpg)
Divide into blocks
VP8 MethodAll blocks of luma and chroma are 4×4 blocks
![Page 89: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/89.jpg)
![Page 90: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/90.jpg)
![Page 91: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/91.jpg)
4 4 4
![Page 92: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/92.jpg)
Discrete Cosine Transform
Fast implementation
Slightly worse in energy compaction than KLT
Content-independency
![Page 93: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/93.jpg)
Coding2-D DCT
Decoding4×4 variant of LLM implementation
![Page 94: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/94.jpg)
Coding2-D DCT
Decoding4×4 variant of LLM implementationPractical fast 1-D DCT algorithms with 11 multiplications
![Page 95: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/95.jpg)
I1
I2
I3
I4
O1
O2
O3
O4
Inverse DCT Graph in VP8
y0
y1
x0
x1
y0 = √2(x0×sin(π/8)-x1×cos(π/8))y1 = √2(x0×cos(π/8)+x1×sin(π/8))
![Page 96: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/96.jpg)
H.264/AVCuse multiplication-less integer transform
slightly better thanEnergy compaction is
![Page 97: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/97.jpg)
It is efficient in processors with
SIMD capability.
![Page 98: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/98.jpg)
Walsh-Hadamard Transform
Y = HXHT
H = 1 1 1 1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 [ ]
HT is the transpose of H.
Take advantage of the correlation to reduce redundancy.
![Page 99: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/99.jpg)
Adaptive Quantization
128 quantization level.
Different quantization level in single frame.1st order luma DC1st order luma AC2st order luma DC2st order luma AC
2st order chroma DC2st order chroma AC
![Page 100: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/100.jpg)
Entropy Coding
![Page 101: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/101.jpg)
Supports distribution updates on a per-frame basis
Boolean arithmetic coder
Stable probability distributions within one frame
Keyframes reset the probability values to the defaults
![Page 102: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/102.jpg)
Adaptive Loop Filter
![Page 103: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/103.jpg)
Removing blocking artifacts introduced by quantization and transformation.
![Page 104: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/104.jpg)
Removing blocking artifacts introduced by quantization and transformation.
![Page 105: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/105.jpg)
Removing blocking artifacts introduced by quantization and transformation.
Slight Filtering
![Page 106: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/106.jpg)
Removing blocking artifacts introduced by quantization and transformation.
Slight Filtering
Strong Filtering
![Page 107: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/107.jpg)
Removing blocking artifacts introduced by quantization and transformation.
Slight Filtering
Strong Filtering
No Filtering
![Page 108: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/108.jpg)
Parallel Processing
![Page 109: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/109.jpg)
Data Partition
Compressed Data
![Page 110: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/110.jpg)
Data Partition
Compressed Data
marcoblock code mode& motion vector
transform coefficients
![Page 111: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/111.jpg)
More Transform Coefficient Partition
transform coefficients
support up to 8 token partitions
![Page 112: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/112.jpg)
More Transform Coefficient Partition
transform coefficients
support up to 8 token partitions
![Page 113: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/113.jpg)
Compare to H.264
![Page 114: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/114.jpg)
100120140160180200220240260280300
Night 720p 2000kbps Sheriff 720p 2000kbps Tulip 720p 2000kbps
Deocding speed in Frame/second
VP8 H.264 High Profile
Intel Core i7 3.2GHz
![Page 115: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/115.jpg)
20
25
30
35
40
45
Night 720p 2000kbps Sheriff 720p 2000kbps Tulip 720p 2000kbps
Deocding speed in Frame/second
VP8 H.264 High Profile
Intel Atom N270 1.66GHz
![Page 116: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/116.jpg)
Any Questions?
![Page 117: Introduction to VP8](https://reader034.vdocuments.pub/reader034/viewer/2022052619/555602d8d8b42a8a5f8b55a3/html5/thumbnails/117.jpg)
Thanks for your listening :)