< 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/