| < draft-bankoski-vp8-bitstream-02.txt | draft-bankoski-vp8-bitstream-03.txt > | |||
|---|---|---|---|---|
| Network Working Group J. Bankoski | Network Working Group J. Bankoski | |||
| Internet-Draft P. Wilkins | Internet-Draft J. Koleszar | |||
| Intended status: Informational Y. Xu | Intended status: Informational L. Quillio | |||
| Expires: November 19, 2011 Google, Inc. | Expires: December 17, 2011 J. Salonen | |||
| May 18, 2011 | P. Wilkins | |||
| Y. Xu | ||||
| Google Inc. | ||||
| June 15, 2011 | ||||
| VP8 Data Format and Decoding Guide | VP8 Data Format and Decoding Guide | |||
| draft-bankoski-vp8-bitstream-02 | draft-bankoski-vp8-bitstream-03 | |||
| Abstract | Abstract | |||
| This document describes the VP8 compressed video data format, | This document describes the VP8 compressed video data format, | |||
| together with a discussion of the decoding procedure for the format. | together with a discussion of the decoding procedure for the format. | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| skipping to change at page 1, line 32 ¶ | skipping to change at page 1, line 35 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on November 19, 2011. | This Internet-Draft will expire on December 17, 2011. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2011 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. | to this document. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. Format Overview . . . . . . . . . . . . . . . . . . . . . . . 6 | 2. Format Overview . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3. Compressed Frame Types . . . . . . . . . . . . . . . . . . . 8 | 3. Compressed Frame Types . . . . . . . . . . . . . . . . . . . 9 | |||
| 4. Overview of Compressed Data Format . . . . . . . . . . . . . 9 | 4. Overview of Compressed Data Format . . . . . . . . . . . . . 10 | |||
| 5. Overview of the Decoding Process . . . . . . . . . . . . . . 11 | 5. Overview of the Decoding Process . . . . . . . . . . . . . . 12 | |||
| 6. Description of Algorithms . . . . . . . . . . . . . . . . . . 16 | 6. Description of Algorithms . . . . . . . . . . . . . . . . . . 17 | |||
| 7. Boolean Entropy Decoder . . . . . . . . . . . . . . . . . . . 19 | 7. Boolean Entropy Decoder . . . . . . . . . . . . . . . . . . . 20 | |||
| 7.1. Underlying Theory of Coding . . . . . . . . . . . . . . 20 | 7.1. Underlying Theory of Coding . . . . . . . . . . . . . . 21 | |||
| 7.2. Practical Algorithm Description . . . . . . . . . . . . 21 | 7.2. Practical Algorithm Description . . . . . . . . . . . . 22 | |||
| 7.3. Actual Implementation . . . . . . . . . . . . . . . . . 23 | 7.3. Actual Implementation . . . . . . . . . . . . . . . . . 24 | |||
| 8. Compressed Data Components . . . . . . . . . . . . . . . . . 28 | 8. Compressed Data Components . . . . . . . . . . . . . . . . . 29 | |||
| 8.1. Tree Coding Implementation . . . . . . . . . . . . . . . 30 | 8.1. Tree Coding Implementation . . . . . . . . . . . . . . . 31 | |||
| 8.2. Tree Coding Example . . . . . . . . . . . . . . . . . . 31 | 8.2. Tree Coding Example . . . . . . . . . . . . . . . . . . 32 | |||
| 9. Frame Header . . . . . . . . . . . . . . . . . . . . . . . . 34 | 9. Frame Header . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 9.1. Uncompressed Data Chunk . . . . . . . . . . . . . . . . 34 | 9.1. Uncompressed Data Chunk . . . . . . . . . . . . . . . . 35 | |||
| 9.2. Color Space and Pixel Type (Key Frames-only) . . . . . . 37 | 9.2. Color Space and Pixel Type (Key Frames-only) . . . . . . 38 | |||
| 9.3. Segment-based Adjustments . . . . . . . . . . . . . . . 37 | 9.3. Segment-based Adjustments . . . . . . . . . . . . . . . 38 | |||
| 9.4. Loop Filter Type and Levels . . . . . . . . . . . . . . 38 | 9.4. Loop Filter Type and Levels . . . . . . . . . . . . . . 39 | |||
| 9.5. Token Partition and Partition Data Offsets . . . . . . . 39 | 9.5. Token Partition and Partition Data Offsets . . . . . . . 40 | |||
| 9.6. Dequantization Indices . . . . . . . . . . . . . . . . . 40 | 9.6. Dequantization Indices . . . . . . . . . . . . . . . . . 41 | |||
| 9.7. Refresh Golden Frame and AltRef Frame . . . . . . . . . 41 | 9.7. Refresh Golden Frame and AltRef Frame . . . . . . . . . 42 | |||
| 9.8. Refresh Last Frame Buffer . . . . . . . . . . . . . . . 42 | 9.8. Refresh Last Frame Buffer . . . . . . . . . . . . . . . 43 | |||
| 9.9. DCT Coefficient Probability Update . . . . . . . . . . . 42 | 9.9. DCT Coefficient Probability Update . . . . . . . . . . . 43 | |||
| 9.10. Remaining Frame Header Data (non-Key Frame) . . . . . . 43 | 9.10. Remaining Frame Header Data (non-Key Frame) . . . . . . 44 | |||
| 9.11. Remaining Frame Header Data (Key Frame) . . . . . . . . 44 | 9.11. Remaining Frame Header Data (Key Frame) . . . . . . . . 45 | |||
| 10. Segment-based Feature Adjustments . . . . . . . . . . . . . . 45 | 10. Segment-based Feature Adjustments . . . . . . . . . . . . . . 46 | |||
| 11. Key Frame Macroblock Prediction Records . . . . . . . . . . . 46 | 11. Key Frame Macroblock Prediction Records . . . . . . . . . . . 47 | |||
| 11.1. mb_skip_coeff . . . . . . . . . . . . . . . . . . . . . 46 | 11.1. mb_skip_coeff . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 11.2. Luma Modes . . . . . . . . . . . . . . . . . . . . . . . 46 | 11.2. Luma Modes . . . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 11.3. Subblock Mode Contexts . . . . . . . . . . . . . . . . . 49 | 11.3. Subblock Mode Contexts . . . . . . . . . . . . . . . . . 50 | |||
| 11.4. Chroma Modes . . . . . . . . . . . . . . . . . . . . . . 50 | 11.4. Chroma Modes . . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 11.5. Subblock Mode Probability Table . . . . . . . . . . . . 51 | 11.5. Subblock Mode Probability Table . . . . . . . . . . . . 52 | |||
| 12. Intraframe Prediction . . . . . . . . . . . . . . . . . . . . 55 | 12. Intraframe Prediction . . . . . . . . . . . . . . . . . . . . 56 | |||
| 12.1. mb_skip_coeff . . . . . . . . . . . . . . . . . . . . . 55 | 12.1. mb_skip_coeff . . . . . . . . . . . . . . . . . . . . . 56 | |||
| 12.2. Chroma Prediction . . . . . . . . . . . . . . . . . . . 56 | 12.2. Chroma Prediction . . . . . . . . . . . . . . . . . . . 57 | |||
| 12.3. Luma Prediction . . . . . . . . . . . . . . . . . . . . 58 | 12.3. Luma Prediction . . . . . . . . . . . . . . . . . . . . 59 | |||
| 13. DCT Coefficient Decoding . . . . . . . . . . . . . . . . . . 65 | 13. DCT Coefficient Decoding . . . . . . . . . . . . . . . . . . 66 | |||
| 13.1. MB Without non-Zero Coefficient Values . . . . . . . . . 65 | 13.1. MB Without non-Zero Coefficient Values . . . . . . . . . 66 | |||
| 13.2. Coding of Individual Coefficient Values . . . . . . . . 66 | 13.2. Coding of Individual Coefficient Values . . . . . . . . 67 | |||
| 13.3. Token Probabilities . . . . . . . . . . . . . . . . . . 68 | 13.3. Token Probabilities . . . . . . . . . . . . . . . . . . 69 | |||
| 13.4. Token Probability Updates . . . . . . . . . . . . . . . 72 | 13.4. Token Probability Updates . . . . . . . . . . . . . . . 73 | |||
| 13.5. Default Token Probability Table . . . . . . . . . . . . 77 | 13.5. Default Token Probability Table . . . . . . . . . . . . 78 | |||
| 14. DCT and WHT Inversion and Macroblock Reconstruction . . . . . 82 | 14. DCT and WHT Inversion and Macroblock Reconstruction . . . . . 83 | |||
| 14.1. Dequantization . . . . . . . . . . . . . . . . . . . . . 82 | 14.1. Dequantization . . . . . . . . . . . . . . . . . . . . . 83 | |||
| 14.2. Inverse Transforms . . . . . . . . . . . . . . . . . . . 83 | 14.2. Inverse Transforms . . . . . . . . . . . . . . . . . . . 84 | |||
| 14.3. Implementation of the WHT Inversion . . . . . . . . . . 84 | 14.3. Implementation of the WHT Inversion . . . . . . . . . . 85 | |||
| 14.4. Implementation of the DCT Inversion . . . . . . . . . . 86 | 14.4. Implementation of the DCT Inversion . . . . . . . . . . 87 | |||
| 14.5. Summation of Predictor and Residue . . . . . . . . . . . 89 | 14.5. Summation of Predictor and Residue . . . . . . . . . . . 90 | |||
| 15. Loop Filter . . . . . . . . . . . . . . . . . . . . . . . . . 90 | 15. Loop Filter . . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| 15.1. Filter Geometry and Overall Procedure . . . . . . . . . 91 | 15.1. Filter Geometry and Overall Procedure . . . . . . . . . 92 | |||
| 15.2. Simple Filter . . . . . . . . . . . . . . . . . . . . . 93 | 15.2. Simple Filter . . . . . . . . . . . . . . . . . . . . . 94 | |||
| 15.3. Normal Filter . . . . . . . . . . . . . . . . . . . . . 97 | 15.3. Normal Filter . . . . . . . . . . . . . . . . . . . . . 98 | |||
| 15.4. Calculation of Control Parameters . . . . . . . . . . . 102 | 15.4. Calculation of Control Parameters . . . . . . . . . . . 103 | |||
| 16. Interframe Macroblock Prediction Records . . . . . . . . . . 104 | 16. Interframe Macroblock Prediction Records . . . . . . . . . . 105 | |||
| 16.1. Intra-Predicted Macroblocks . . . . . . . . . . . . . . 104 | 16.1. Intra-Predicted Macroblocks . . . . . . . . . . . . . . 105 | |||
| 16.2. Inter-Predicted Macroblocks . . . . . . . . . . . . . . 105 | 16.2. Inter-Predicted Macroblocks . . . . . . . . . . . . . . 106 | |||
| 16.3. Mode and Motion Vector Contexts . . . . . . . . . . . . 106 | 16.3. Mode and Motion Vector Contexts . . . . . . . . . . . . 107 | |||
| 16.4. Split Prediction . . . . . . . . . . . . . . . . . . . . 112 | 16.4. Split Prediction . . . . . . . . . . . . . . . . . . . . 113 | |||
| 17. Motion Vector Decoding . . . . . . . . . . . . . . . . . . . 116 | 17. Motion Vector Decoding . . . . . . . . . . . . . . . . . . . 117 | |||
| 17.1. Coding of Each Component . . . . . . . . . . . . . . . . 116 | 17.1. Coding of Each Component . . . . . . . . . . . . . . . . 117 | |||
| 17.2. Probability Updates . . . . . . . . . . . . . . . . . . 118 | 17.2. Probability Updates . . . . . . . . . . . . . . . . . . 119 | |||
| 18. Interframe Prediction . . . . . . . . . . . . . . . . . . . . 121 | 18. Interframe Prediction . . . . . . . . . . . . . . . . . . . . 122 | |||
| 18.1. Bounds on and Adjustment of Motion Vectors . . . . . . . 121 | 18.1. Bounds on and Adjustment of Motion Vectors . . . . . . . 122 | |||
| 18.2. Prediction Subblocks . . . . . . . . . . . . . . . . . . 122 | 18.2. Prediction Subblocks . . . . . . . . . . . . . . . . . . 123 | |||
| 18.3. Sub-pixel Interpolation . . . . . . . . . . . . . . . . 123 | 18.3. Sub-pixel Interpolation . . . . . . . . . . . . . . . . 124 | |||
| 18.4. Filter Properties . . . . . . . . . . . . . . . . . . . 126 | 18.4. Filter Properties . . . . . . . . . . . . . . . . . . . 127 | |||
| 19. Annex A: Bitstream Syntax . . . . . . . . . . . . . . . . . . 129 | 19. Annex A: Bitstream Syntax . . . . . . . . . . . . . . . . . . 130 | |||
| 19.1. Uncompressed Data Chunk . . . . . . . . . . . . . . . . 129 | 19.1. Uncompressed Data Chunk . . . . . . . . . . . . . . . . 130 | |||
| 19.2. Frame Header . . . . . . . . . . . . . . . . . . . . . . 131 | 19.2. Frame Header . . . . . . . . . . . . . . . . . . . . . . 132 | |||
| 19.3. Macroblock Data . . . . . . . . . . . . . . . . . . . . 143 | 19.3. Macroblock Data . . . . . . . . . . . . . . . . . . . . 144 | |||
| 20. Attachment One: Reference Decoder Source Code . . . . . . . . 147 | 20. Attachment One: Reference Decoder Source Code . . . . . . . . 148 | |||
| 20.1. bit_ops.h . . . . . . . . . . . . . . . . . . . . . . . 147 | 20.1. bit_ops.h . . . . . . . . . . . . . . . . . . . . . . . 148 | |||
| 20.2. bool_decoder.h . . . . . . . . . . . . . . . . . . . . . 147 | 20.2. bool_decoder.h . . . . . . . . . . . . . . . . . . . . . 148 | |||
| 20.3. dequant_data.h . . . . . . . . . . . . . . . . . . . . . 151 | 20.3. dequant_data.h . . . . . . . . . . . . . . . . . . . . . 152 | |||
| 20.4. dixie.c . . . . . . . . . . . . . . . . . . . . . . . . 151 | 20.4. dixie.c . . . . . . . . . . . . . . . . . . . . . . . . 152 | |||
| 20.5. dixie.h . . . . . . . . . . . . . . . . . . . . . . . . 163 | 20.5. dixie.h . . . . . . . . . . . . . . . . . . . . . . . . 164 | |||
| 20.6. dixie_loopfilter.c . . . . . . . . . . . . . . . . . . . 170 | 20.6. dixie_loopfilter.c . . . . . . . . . . . . . . . . . . . 171 | |||
| 20.7. dixie_loopfilter.h . . . . . . . . . . . . . . . . . . . 182 | 20.7. dixie_loopfilter.h . . . . . . . . . . . . . . . . . . . 183 | |||
| 20.8. idct_add.c . . . . . . . . . . . . . . . . . . . . . . . 182 | 20.8. idct_add.c . . . . . . . . . . . . . . . . . . . . . . . 183 | |||
| 20.9. idct_add.h . . . . . . . . . . . . . . . . . . . . . . . 186 | 20.9. idct_add.h . . . . . . . . . . . . . . . . . . . . . . . 187 | |||
| 20.10. mem.h . . . . . . . . . . . . . . . . . . . . . . . . . 186 | 20.10. mem.h . . . . . . . . . . . . . . . . . . . . . . . . . 187 | |||
| 20.11. modemv.c . . . . . . . . . . . . . . . . . . . . . . . . 188 | 20.11. modemv.c . . . . . . . . . . . . . . . . . . . . . . . . 189 | |||
| 20.12. modemv.h . . . . . . . . . . . . . . . . . . . . . . . . 203 | 20.12. modemv.h . . . . . . . . . . . . . . . . . . . . . . . . 204 | |||
| 20.13. modemv_data.h . . . . . . . . . . . . . . . . . . . . . 203 | 20.13. modemv_data.h . . . . . . . . . . . . . . . . . . . . . 204 | |||
| 20.14. predict.c . . . . . . . . . . . . . . . . . . . . . . . 208 | 20.14. predict.c . . . . . . . . . . . . . . . . . . . . . . . 209 | |||
| 20.15. predict.h . . . . . . . . . . . . . . . . . . . . . . . 238 | 20.15. predict.h . . . . . . . . . . . . . . . . . . . . . . . 239 | |||
| 20.16. tokens.c . . . . . . . . . . . . . . . . . . . . . . . . 238 | 20.16. tokens.c . . . . . . . . . . . . . . . . . . . . . . . . 239 | |||
| 20.17. tokens.h . . . . . . . . . . . . . . . . . . . . . . . . 248 | 20.17. tokens.h . . . . . . . . . . . . . . . . . . . . . . . . 249 | |||
| 20.18. vp8_prob_data.h . . . . . . . . . . . . . . . . . . . . 257 | 20.18. vp8_prob_data.h . . . . . . . . . . . . . . . . . . . . 258 | |||
| 20.19. vpx_codec_internal.h . . . . . . . . . . . . . . . . . . 266 | 20.19. vpx_codec_internal.h . . . . . . . . . . . . . . . . . . 267 | |||
| 20.20. vpx_decoder.h . . . . . . . . . . . . . . . . . . . . . 276 | 20.20. vpx_decoder.h . . . . . . . . . . . . . . . . . . . . . 277 | |||
| 20.21. vpx_integer.h . . . . . . . . . . . . . . . . . . . . . 283 | 20.21. vpx_integer.h . . . . . . . . . . . . . . . . . . . . . 284 | |||
| 21. References . . . . . . . . . . . . . . . . . . . . . . . . . 286 | 20.22. AUTHORS . . . . . . . . . . . . . . . . . . . . . . . . 286 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 287 | 20.23. LICENSE . . . . . . . . . . . . . . . . . . . . . . . . 287 | |||
| 20.24. PATENTS . . . . . . . . . . . . . . . . . . . . . . . . 288 | ||||
| 21. References . . . . . . . . . . . . . . . . . . . . . . . . . 290 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 291 | ||||
| 1. Introduction | 1. Introduction | |||
| This document describes the VP8 compressed video data format, | This document describes the VP8 compressed video data format, | |||
| together with a discussion of the decoding procedure for the format. | together with a discussion of the decoding procedure for the format. | |||
| It is intended to be used in conjunction with and as a guide to the | It is intended to be used in conjunction with and as a guide to the | |||
| reference decoder source code provided in Attachment One. If there | reference decoder source code provided in Attachment One. If there | |||
| are any conflicts between this narrative and the reference source | are any conflicts between this narrative and the reference source | |||
| code, the reference source code should be considered correct. The | code, the reference source code should be considered correct. The | |||
| bitstream is defined by the reference source code and not this | bitstream is defined by the reference source code and not this | |||
| skipping to change at page 286, line 5 ¶ | skipping to change at page 286, line 6 ¶ | |||
| #define __STDC_FORMAT_MACROS | #define __STDC_FORMAT_MACROS | |||
| #endif | #endif | |||
| #include <stdint.h> | #include <stdint.h> | |||
| #include <inttypes.h> | #include <inttypes.h> | |||
| #endif | #endif | |||
| #endif | #endif | |||
| ---- End code block ---------------------------------------- | ---- End code block ---------------------------------------- | |||
| 20.22. AUTHORS | ||||
| Aaron Watry <awatry@gmail.com> | ||||
| Adrian Grange <agrange@google.com> | ||||
| Alex Converse <alex.converse@gmail.com> | ||||
| Andoni Morales Alastruey <ylatuya@gmail.com> | ||||
| Andres Mejia <mcitadel@gmail.com> | ||||
| Attila Nagy <attilanagy@google.com> | ||||
| Fabio Pedretti <fabio.ped@libero.it> | ||||
| Frank Galligan <fgalligan@google.com> | ||||
| Fredrik Soederquist <fs@opera.com> | ||||
| Fritz Koenig <frkoenig@google.com> | ||||
| Gaute Strokkenes <gaute.strokkenes@broadcom.com> | ||||
| Giuseppe Scrivano <gscrivano@gnu.org> | ||||
| Guillermo Ballester Valor <gbvalor@gmail.com> | ||||
| Henrik Lundin <hlundin@google.com> | ||||
| James Berry <jamesberry@google.com> | ||||
| James Zern <jzern@google.com> | ||||
| Jan Kratochvil <jan.kratochvil@redhat.com> | ||||
| Jeff Muizelaar <jmuizelaar@mozilla.com> | ||||
| Jim Bankoski <jimbankoski@google.com> | ||||
| Johann Koenig <johannkoenig@google.com> | ||||
| John Koleszar <jkoleszar@google.com> | ||||
| Justin Clift <justin@salasaga.org> | ||||
| Justin Lebar <justin.lebar@gmail.com> | ||||
| Luca Barbato <lu_zero@gentoo.org> | ||||
| Makoto Kato <makoto.kt@gmail.com> | ||||
| Martin Ettl <ettl.martin78@googlemail.com> | ||||
| Michael Kohler <michaelkohler@live.com> | ||||
| Mikhal Shemer <mikhal@google.com> | ||||
| Pascal Massimino <pascal.massimino@gmail.com> | ||||
| Patrik Westin <patrik.westin@gmail.com> | ||||
| Paul Wilkins <paulwilkins@google.com> | ||||
| Pavol Rusnak <stick@gk2.sk> | ||||
| Philip Jaegenstedt <philipj@opera.com> | ||||
| Scott LaVarnway <slavarnway@google.com> | ||||
| Tero Rintaluoma <teror@google.com> | ||||
| Timothy B. Terriberry <tterribe@xiph.org> | ||||
| Tom Finegan <tomfinegan@google.com> | ||||
| Yaowu Xu <yaowu@google.com> | ||||
| Yunqing Wang <yunqingwang@google.com> | ||||
| Google Inc. | ||||
| The Mozilla Foundation | ||||
| The Xiph.Org Foundation | ||||
| 20.23. LICENSE | ||||
| Copyright (c) 2010, Google Inc. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions | ||||
| are met: | ||||
| o Redistributions of source code must retain the above copyright | ||||
| notice, this list of conditions and the following disclaimer. | ||||
| o Redistributions in binary form must reproduce the above copyright | ||||
| notice, this list of conditions and the following disclaimer in | ||||
| the documentation and/or other materials provided with the | ||||
| distribution. | ||||
| o Neither the name of Google nor the names of its contributors may | ||||
| be used to endorse or promote products derived from this software | ||||
| without specific prior written permission. | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||
| HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||||
| INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||||
| BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS | ||||
| OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | ||||
| AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
| LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY | ||||
| WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGE. | ||||
| 20.24. PATENTS | ||||
| Additional IP Rights Grant (Patents) | ||||
| "This implementation" means the copyrightable works distributed by | ||||
| Google as part of the WebM Project. | ||||
| Google hereby grants to you a perpetual, worldwide, non-exclusive, | ||||
| no-charge, royalty-free, irrevocable (except as stated in this | ||||
| section) patent license to make, have made, use, offer to sell, sell, | ||||
| import, transfer, and otherwise run, modify and propagate the | ||||
| contents of this implementation of VP8, where such license applies | ||||
| only to those patent claims, both currently owned by Google and | ||||
| acquired in the future, licensable by Google that are necessarily | ||||
| infringed by this implementation of VP8. This grant does not include | ||||
| claims that would be infringed only as a consequence of further | ||||
| modification of this implementation. If you or your agent or | ||||
| exclusive licensee institute or order or agree to the institution of | ||||
| patent litigation against any entity (including a cross-claim or | ||||
| counterclaim in a lawsuit) alleging that this implementation of VP8 | ||||
| or any code incorporated within this implementation of VP8 | ||||
| constitutes direct or contributory patent infringement, or inducement | ||||
| of patent infringement, then any patent rights granted to you under | ||||
| this License for this implementation of VP8 shall terminate as of the | ||||
| date such litigation is filed. | ||||
| 21. References | 21. References | |||
| [ITU-R_BT.601] | [ITU-R_BT.601] | |||
| International Telecommunication Union, "ITU BT.601: Studio | International Telecommunication Union, "ITU BT.601: Studio | |||
| encoding parameters of digital television for standard 4:3 | encoding parameters of digital television for standard 4:3 | |||
| and wide screen 16:9 aspect ratios", January 2007. | and wide screen 16:9 aspect ratios", January 2007. | |||
| [Bell] Bell, T., Cleary, J., and I. Witten, "Text Compression", | [Bell] Bell, T., Cleary, J., and I. Witten, "Text Compression", | |||
| 1990. | 1990. | |||
| skipping to change at page 287, line 8 ¶ | skipping to change at page 291, line 8 ¶ | |||
| Fast 1-D DCT Algorithms with 11 Multiplications", | Fast 1-D DCT Algorithms with 11 Multiplications", | |||
| May 1989. | May 1989. | |||
| [Shannon] Shannon, C., "A Mathematical Theory of Communication", | [Shannon] Shannon, C., "A Mathematical Theory of Communication", | |||
| Bell System Technical Journal Vol. 27, pp. 379-423, 623- | Bell System Technical Journal Vol. 27, pp. 379-423, 623- | |||
| 656, July, October 1948. | 656, July, October 1948. | |||
| Authors' Addresses | Authors' Addresses | |||
| James Bankoski | James Bankoski | |||
| Google, Inc. | Google Inc. | |||
| Email: jimbankoski@google.com | Email: jimbankoski@google.com | |||
| John Koleszar | ||||
| Google Inc. | ||||
| Email: jkoleszar@google.com | ||||
| Lou Quillio | ||||
| Google Inc. | ||||
| Email: louquillio@google.com | ||||
| Janne Salonen | ||||
| Google Inc. | ||||
| Email: jsalonen@google.com | ||||
| Paul Wilkins | Paul Wilkins | |||
| Google, Inc. | Google Inc. | |||
| Email: paulwilkins@google.com | Email: paulwilkins@google.com | |||
| Yaowu Xu | Yaowu Xu | |||
| Google, Inc. | Google Inc. | |||
| Email: yaowu@google.com | Email: yaowu@google.com | |||
| End of changes. 9 change blocks. | ||||
| 103 lines changed or deleted | 268 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||