VP8 Data Format and Decoding Guide
RFC 6386
Independent Submission J. Bankoski
Request for Comments: 6386 J. Koleszar
Category: Informational L. Quillio
ISSN: 2070-1721 J. Salonen
P. Wilkins
Y. Xu
Google Inc.
November 2011
VP8 Data Format and Decoding Guide
Abstract
This document describes the VP8 compressed video data format,
together with a discussion of the decoding procedure for the format.
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for informational purposes.
This is a contribution to the RFC Series, independently of any other
RFC stream. The RFC Editor has chosen to publish this document at
its discretion and makes no statement about its value for
implementation or deployment. Documents approved for publication by
the RFC Editor are not a candidate for any level of Internet
Standard; see Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6386.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Bankoski, et al. Informational [Page 1]
RFC 6386 VP8 Data Format and Decoding Guide November 2011
Table of Contents
1. Introduction ....................................................4
2. Format Overview .................................................5
3. Compressed Frame Types ..........................................7
4. Overview of Compressed Data Format ..............................8
5. Overview of the Decoding Process ................................9
6. Description of Algorithms ......................................14
7. Boolean Entropy Decoder ........................................16
7.1. Underlying Theory of Coding ...............................17
7.2. Practical Algorithm Description ...........................18
7.3. Actual Implementation .....................................20
8. Compressed Data Components .....................................25
8.1. Tree Coding Implementation ................................27
8.2. Tree Coding Example .......................................28
9. Frame Header ...................................................30
9.1. Uncompressed Data Chunk ...................................30
9.2. Color Space and Pixel Type (Key Frames Only) ..............33
9.3. Segment-Based Adjustments .................................34
9.4. Loop Filter Type and Levels ...............................35
9.5. Token Partition and Partition Data Offsets ................36
9.6. Dequantization Indices ....................................37
9.7. Refresh Golden Frame and Altref Frame .....................38
9.8. Refresh Last Frame Buffer .................................39
9.9. DCT Coefficient Probability Update ........................39
9.10. Remaining Frame Header Data (Non-Key Frame) ..............40
9.11. Remaining Frame Header Data (Key Frame) ..................41
10. Segment-Based Feature Adjustments .............................41
11. Key Frame Macroblock Prediction Records .......................42
11.1. mb_skip_coeff ............................................42
11.2. Luma Modes ...............................................42
11.3. Subblock Mode Contexts ...................................45
11.4. Chroma Modes .............................................46
11.5. Subblock Mode Probability Table ..........................47
12. Intraframe Prediction .........................................50
12.1. mb_skip_coeff ............................................51
12.2. Chroma Prediction ........................................51
12.3. Luma Prediction ..........................................54
13. DCT Coefficient Decoding ......................................60
13.1. Macroblock without Non-Zero Coefficient Values ...........61
13.2. Coding of Individual Coefficient Values ..................61
13.3. Token Probabilities ......................................63
Show full document text