VP8 Data Format and Decoding Guide
draft-bankoski-vp8-bitstream-06

The information below is for an old version of the document that is already published as an RFC
Document Type RFC Internet-Draft (gen)
Authors Paul Wilkins  , Yaowu Xu  , Lou Quillio  , James Bankoski  , Janne Salonen  , John Koleszar 
Last updated 2020-01-21 (latest revision 2011-08-11)
Stream Independent Submission
Formats pdf htmlized (tools) htmlized bibtex
Stream ISE state (None)
Consensus Boilerplate Unknown
Document shepherd No shepherd assigned
IESG IESG state RFC 6386 (Informational)
Telechat date
Responsible AD Robert Sparks
IESG note ISE submission.
Send notices to rfc-ise@rfc-editor.org
Network Working Group                                        J. Bankoski
Internet-Draft                                               J. Koleszar
Intended status: Informational                                L. Quillio
Expires: February 12, 2012                                    J. Salonen
                                                              P. Wilkins
                                                                   Y. Xu
                                                             Google Inc.
                                                         August 11, 2011

                   VP8 Data Format and Decoding Guide
                    draft-bankoski-vp8-bitstream-06

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 Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on February 12, 2012.

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.        Expires February 12, 2012               [Page 1]
Internet-Draft     VP8 Data Format and Decoding Guide        August 2011

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Format Overview . . . . . . . . . . . . . . . . . . . . . . .   7
   3.  Compressed Frame Types  . . . . . . . . . . . . . . . . . . .   9
   4.  Overview of Compressed Data Format  . . . . . . . . . . . . .  10
   5.  Overview of the Decoding Process  . . . . . . . . . . . . . .  12
   6.  Description of Algorithms . . . . . . . . . . . . . . . . . .  17
   7.  Boolean Entropy Decoder . . . . . . . . . . . . . . . . . . .  20
     7.1.   Underlying Theory of Coding  . . . . . . . . . . . . . .  21
     7.2.   Practical Algorithm Description  . . . . . . . . . . . .  22
     7.3.   Actual Implementation  . . . . . . . . . . . . . . . . .  24
   8.  Compressed Data Components  . . . . . . . . . . . . . . . . .  29
     8.1.   Tree Coding Implementation . . . . . . . . . . . . . . .  31
     8.2.   Tree Coding Example  . . . . . . . . . . . . . . . . . .  32
   9.  Frame Header  . . . . . . . . . . . . . . . . . . . . . . . .  35
     9.1.   Uncompressed Data Chunk  . . . . . . . . . . . . . . . .  35
     9.2.   Color Space and Pixel Type (Key Frames-only) . . . . . .  38
     9.3.   Segment-based Adjustments  . . . . . . . . . . . . . . .  38
     9.4.   Loop Filter Type and Levels  . . . . . . . . . . . . . .  39
     9.5.   Token Partition and Partition Data Offsets . . . . . . .  40
     9.6.   Dequantization Indices . . . . . . . . . . . . . . . . .  41
     9.7.   Refresh Golden Frame and AltRef Frame  . . . . . . . . .  42
     9.8.   Refresh Last Frame Buffer  . . . . . . . . . . . . . . .  43
     9.9.   DCT Coefficient Probability Update . . . . . . . . . . .  43
     9.10.  Remaining Frame Header Data (non-Key Frame)  . . . . . .  44
     9.11.  Remaining Frame Header Data (Key Frame)  . . . . . . . .  45
   10. Segment-based Feature Adjustments . . . . . . . . . . . . . .  46
   11. Key Frame Macroblock Prediction Records . . . . . . . . . . .  47
     11.1.  mb_skip_coeff  . . . . . . . . . . . . . . . . . . . . .  47
     11.2.  Luma Modes . . . . . . . . . . . . . . . . . . . . . . .  47
     11.3.  Subblock Mode Contexts . . . . . . . . . . . . . . . . .  50
     11.4.  Chroma Modes . . . . . . . . . . . . . . . . . . . . . .  51
     11.5.  Subblock Mode Probability Table  . . . . . . . . . . . .  52
   12. Intraframe Prediction . . . . . . . . . . . . . . . . . . . .  56
     12.1.  mb_skip_coeff  . . . . . . . . . . . . . . . . . . . . .  56
     12.2.  Chroma Prediction  . . . . . . . . . . . . . . . . . . .  57
     12.3.  Luma Prediction  . . . . . . . . . . . . . . . . . . . .  59
   13. DCT Coefficient Decoding  . . . . . . . . . . . . . . . . . .  66
     13.1.  MB Without non-Zero Coefficient Values . . . . . . . . .  66
     13.2.  Coding of Individual Coefficient Values  . . . . . . . .  67
Show full document text