RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

RFC 6386, "VP8 Data Format and Decoding Guide", November 2011

Source of RFC: INDEPENDENT

Errata ID: 7904
Status: Reported
Type: Technical
Publication Format(s) : TEXT

Reported By: Felix Pahl
Date Reported: 2024-04-21

Section 19.2 says:

 token_prob_update()                               | Type  |
   | ------------------------------------------------- | ----- |
   | for (i = 0; i < 4; i++) {                         |       |
   |   for (j = 0; j < 8; j++) {                       |       |
   |     for (k = 0; k < 3; k++) {                     |       |
   |       for (l = 0; l < 11; l++) {                  |       |
   |         coeff_prob_update_flag                    | L(1)  |
   |         if (coeff_prob_update_flag)               |       |
   |           coeff_prob                              | L(8)  |
   |       }                                           |       |
   |     }                                             |       |
   |   }                                               |       |
   | }                                                 |       |

It should say:

 token_prob_update()                               | Type  |
   | ------------------------------------------------- | ----- |
   | for (i = 0; i < 4; i++) {                         |       |
   |   for (j = 0; j < 8; j++) {                       |       |
   |     for (k = 0; k < 3; k++) {                     |       |
   |       for (l = 0; l < 11; l++) {                  |       |
   |         coeff_prob_update_flag                    | B(p)  |
   |         if (coeff_prob_update_flag)               |       |
   |           coeff_prob                              | L(8)  |
   |       }                                           |       |
   |     }                                             |       |
   |   }                                               |       |
   | }                                                 |       |

Notes:

The type of the flag coeff_prob_update_flag is given as L(1), which, according to the table in Section 8 on p. 25, means that this is a single literal bit that should be read with a 50/50 probability coded as 128.

But other parts of the RFC say that these flags are actually read with predetermined probabilities other than 128: Section 13.4 (“Token Probability Updates”) on p. 68 specifies these probabilities in the array coeff_update_probs, and the function decode_entropy_header in the reference implementation (file dixie.c, p. 138/139) uses them (in the array k_coeff_entropy_update_probs) to decode these flags. The current version of libwebp follows the reference implementation and uses these predetermined probabilities.

According to the table on p. 25, the type of such a flag should be specified as B(p), not as L(1).

Report New Errata



Advanced Search