Your SlideShare is downloading. ×
0
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Introduction to VP8
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction to VP8

663

Published on

沒什麼內容的 VP8 簡介

沒什麼內容的 VP8 簡介

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
663
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduction to VP8郭至軒 (KuoE0)kuoe0.tw@gmail.com
  • 2. Latest update: Jun 13, 2013Attribution-ShareAlike 3.0 Unported(CC BY-SA 3.0)http://creativecommons.org/licenses/by-sa/3.0/
  • 3. Situation
  • 4. web m
  • 5. web m
  • 6. Video CodecVP8
  • 7. AnOpenSourceCodec
  • 8. Developed byOn2 Technology
  • 9. Developed byOn2 TechnologyFebruary, 2010
  • 10. Acquired byGoogleFebruary, 2010
  • 11. Patent
  • 12. web m
  • 13. March, 2013web m
  • 14. Royalty-Free TermsMarch, 2013web m
  • 15. SuccessorVP9
  • 16. SuccessorVP9May 15, 2013
  • 17. Feature
  • 18. focus onInternetweb-basedapplication
  • 19. Low Bandwidth RequirementImage Quality:watchable (PSNR: ~30dB)visually lossless (PSNR: ~45dB)
  • 20. Heterogeneous Client Hardware
  • 21. Heterogeneous Client Hardware
  • 22. Heterogeneous Client HardwareEfficientImplementations
  • 23. Web Video FormatYUV 420 color sampling8 bit per channel depthUp to 16383 × 16383 pixels
  • 24. Processing Flow
  • 25. CodingPredictTransform + QuantizeEntropy CodeLoop Filter
  • 26. DecodingEntropy DecodePredictDequantize+Inverse TransformLoop Filter
  • 27. Reference Frame
  • 28. GoldenFrameLast FrameAlternateFrameReferenceFrame
  • 29. GoldenFrameLast FrameAlternateFrameAt most 3 reference frames in VP8.
  • 30. Last Frame
  • 31. Last Frame
  • 32. Last Frame
  • 33. Last Frame Current Frame
  • 34. Golden FrameChoose an arbitrary frame in the past.Define a number of flags to notify decoderwhen and how to update this buffer.
  • 35. Golden FrameChoose an arbitrary frame in the past.Define a number of flags to notify decoderwhen and how to update this buffer.
  • 36. set as the golden frame
  • 37. Golden FrameGolden Frame
  • 38. Golden FrameGolden Frame
  • 39. Golden FrameGolden Frame
  • 40. Golden FrameGolden Frame
  • 41. Golden FrameGolden Frame
  • 42. Golden FrameGolden Frame
  • 43. Golden FrameGolden Frame
  • 44. Golden FrameGolden Frame
  • 45. Golden FrameGolden Frame
  • 46. Reconstructmoving objectbackground
  • 47. Alternate FrameOtherFrameAlternateFrame
  • 48. Alternate FrameOtherFrameAlternateFramedecodeshow
  • 49. Alternate FrameOtherFrameAlternateFramedecodeshowdecode show
  • 50. Alternate FrameOtherFrameAlternateFramedecodeshowdecode showstore beneficial information
  • 51. Construct from multi-frame
  • 52. Construct from multi-frame
  • 53. Construct from multi-frame
  • 54. Construct from multi-frameAlternateFrame
  • 55. Typical FrameI B B P B B P B B I B B P
  • 56. VP8L GAG G G G G L G G GAG L
  • 57. Prediction
  • 58. Intra PredictionInter Predictionuse data within a single video frameuse data from previously encoded frames
  • 59. Intra PredictionLumaLumaChroma
  • 60. Intra PredictionLumaLumaChroma16 4 8
  • 61. H_PRED (horizontal prediction)V_PRED (vertical prediction)DC_PRED (DC prediction)TM_PRED (TrueMotion prediction)Four Prediction Modes:
  • 62. Horizontal PredictionFills each column of the block witha 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 yA B C D EF G H I JK L M N OP Q R S TU V W X Y
  • 63. Horizontal PredictionFills each column of the block witha 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 yA B C D EF G H I JK L M N OP Q R S TU V W X Yejoty
  • 64. Horizontal PredictionFills each column of the block witha 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 yA B C D EF G H I JK L M N OP Q R S TU V W X Yejotye e e e ej j j j jo o o o ot t t t ty y y y y
  • 65. Vertical PredictionFills each row of the block with acopy of the above row.a b c d ef g h i jk l m n op q r s tu v w x yA B C D EF G H I JK L M N OP Q R S TU V W X Y
  • 66. Vertical PredictionFills each row of the block with acopy of the above row.a b c d ef g h i jk l m n op q r s tu v w x yA B C D EF G H I JK L M N OP Q R S TU V W X YU V W X Y
  • 67. Vertical PredictionFills each row of the block with acopy of the above row.a b c d ef g h i jk l m n op q r s tu v w x yA B C D EF G H I JK L M N OP Q R S TU V W X YU V W X YU V W X YU V W X YU V W X YU V W X YU V W X Y
  • 68. DC PredictionFills the block with a single valueusing the average of the pixels inthe 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 yA B C D EF G H I JK L M N OP Q R S TU V W X Y
  • 69. DC PredictionFills the block with a single valueusing the average of the pixels inthe 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 yA B C D EF G H I JK L M N OP Q R S TU V W X YU V W X YejotyZ = (U + V + W + X +Y + e + j + o + t + y) ÷10
  • 70. DC PredictionFills the block with a single valueusing the average of the pixels inthe 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 yA B C D EF G H I JK L M N OP Q R S TU V W X YU V W X YejotyZ = (U + V + W + X +Y + e + j + o + t + y) ÷10Z Z Z Z ZZ Z Z Z ZZ Z Z Z ZZ Z Z Z ZZ Z Z Z Z
  • 71. * * * * L0* * * * L1* * * * L2* * * * L3* * * * L4* * * * ** * * * ** * * * ** * * * *A0 A1 A2 A3 A4TrueMotion PredictionHorizontal differencesbetween pixels inabove row and verticaldifferences betweenpixels in left column arepropagated (startingfrom C).* * * * ** * * * ** * * * ** * * * ** * * * C
  • 72. * * * * L0* * * * L1* * * * L2* * * * L3* * * * L4* * * * ** * * * ** * * * ** * * * *A0 A1 A2 A3 A4A0 A1 A2 A3 A4L0L1L2L3L4TrueMotion PredictionHorizontal differencesbetween pixels inabove row and verticaldifferences betweenpixels in left column arepropagated (startingfrom C).* * * * ** * * * ** * * * ** * * * ** * * * CCXij = Ai + Lj - C
  • 73. * * * * L0* * * * L1* * * * L2* * * * L3* * * * L4* * * * ** * * * ** * * * ** * * * *A0 A1 A2 A3 A4A0 A1 A2 A3 A4L0L1L2L3L4TrueMotion PredictionHorizontal differencesbetween pixels inabove row and verticaldifferences betweenpixels in left column arepropagated (startingfrom C).* * * * ** * * * ** * * * ** * * * ** * * * CCXij = Ai + Lj - CXij Xij Xij Xij XijXij Xij Xij Xij XijXij Xij Xij Xij XijXij Xij Xij Xij XijXij Xij Xij Xij Xij
  • 74. Inter PredictionAs mentioned above...
  • 75. Inter PredictionGoldenFrameLast FrameAlternateFrame
  • 76. Motion VectorReusing vectors from neighboringmacroblocks.Flexible partitioning of a macroblock into sub-blocks.
  • 77. Sub-pixel InterpolationQuarter pixel accurate motion vectors forluma pixels.High performance six-tap interpolationfilters.[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
  • 78. Hybrid Transform& Quantization
  • 79. Divide into MacroblocksOne 16×16 block of luma pixels (Y)Two 8×8 blocks of chroma pixels (U, V)Typical Method
  • 80. 16 8 8
  • 81. Divide into blocksVP8 MethodAll blocks of luma and chroma are 4×4blocks
  • 82. 4 4 4
  • 83. Discrete Cosine TransformFast implementationSlightly worse in energy compactionthan KLTContent-independency
  • 84. Coding2-D DCTDecoding4×4 variant of LLMimplementation
  • 85. Coding2-D DCTDecoding4×4 variant of LLMimplementationPractical fast 1-D DCT algorithms with 11 multiplications
  • 86. I1I2I3I4O1O2O3O4Inverse DCT Graph in VP8y0y1x0x1y0 = √2(x0×sin(π/8)-x1×cos(π/8))y1 = √2(x0×cos(π/8)+x1×sin(π/8))
  • 87. H.264/AVCuse multiplication-less integer transformslightly better thanEnergy compaction is
  • 88. It is efficient in processors withSIMD capability.
  • 89. Walsh-Hadamard TransformY = HXHTH =1 1 1 11 1 -1 -11 -1 1 -11 -1 -1 1[ ]HT is the transpose of H.Take advantage ofthe correlation toreduce redundancy.
  • 90. Adaptive Quantization128 quantization level.Different quantization level in single frame.1st order luma DC1st order luma AC2st order luma DC2st order luma AC2st order chroma DC2st order chroma AC
  • 91. Entropy Coding
  • 92. Supports distribution updates on a per-framebasisBoolean arithmetic coderStable probability distributions within oneframeKeyframes reset the probability values to thedefaults
  • 93. Adaptive Loop Filter
  • 94. Removing blocking artifacts introduced byquantization and transformation.
  • 95. Removing blocking artifacts introduced byquantization and transformation.
  • 96. Removing blocking artifacts introduced byquantization and transformation.Slight Filtering
  • 97. Removing blocking artifacts introduced byquantization and transformation.Slight FilteringStrong Filtering
  • 98. Removing blocking artifacts introduced byquantization and transformation.Slight FilteringStrong FilteringNo Filtering
  • 99. Parallel Processing
  • 100. Data PartitionCompressed Data
  • 101. Data PartitionCompressed Datamarcoblock code mode& motion vectortransform coefficients
  • 102. More Transform Coefficient Partitiontransform coefficientssupport up to 8 token partitions
  • 103. More Transform Coefficient Partitiontransform coefficientssupport up to 8 token partitions
  • 104. Compare to H.264
  • 105. 100120140160180200220240260280300Night 720p 2000kbps Sheriff 720p 2000kbps Tulip 720p 2000kbpsDeocding speed in Frame/secondVP8 H.264 High ProfileIntel Core i7 3.2GHz
  • 106. 202530354045Night 720p 2000kbps Sheriff 720p 2000kbps Tulip 720p 2000kbpsDeocding speed in Frame/secondVP8 H.264 High ProfileIntel Atom N270 1.66GHz
  • 107. Any Questions?
  • 108. Thanks for your listening :)

×