flaccidware / webm

Automatically exported from code.google.com/p/webm
0 stars 0 forks source link

skip flag is set, even if it was coded as zero, if a block had no coefficients #1014

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I think the code that does this (vp9_decodeframe.c:decode_block()) stems from 
vp8, where it was possible to disable coding of the skip flag. That feature was 
removed in vp9:

    // Prediction
    vp9_dec_build_inter_predictors_sb(pbi, xd, mi_row, mi_col, bsize);

    // Reconstruction
    if (!mbmi->skip) {
      int eobtotal = 0;
      struct inter_args arg = {cm, xd, r, counts, &eobtotal, y_dequant,
                               uv_dequant};
      vp9_foreach_transformed_block(xd, bsize, reconstruct_inter_block, &arg);
      if (!less8x8 && eobtotal == 0)
        mbmi->skip = 1;  // skip loopfilter
    }

However, the comment is wrong; we don't just skip loopfilter, we also affect 
bitstream decoding (since this is used for contextualization of coding of 
future blocks). I guess this code should just be removed in vp10, or possibly 
be replaced by a flag that is purely used in the loopfilter, not used in 20 
places in the bitstream spec.

Original issue reported on code.google.com by rsbul...@gmail.com on 4 Jun 2015 at 11:50

GoogleCodeExporter commented 9 years ago

Original comment by fgalli...@google.com on 18 Jun 2015 at 10:11

GoogleCodeExporter commented 9 years ago

Original comment by ya...@google.com on 10 Jul 2015 at 11:11

GoogleCodeExporter commented 9 years ago

Original comment by ya...@google.com on 14 Jul 2015 at 4:42

GoogleCodeExporter commented 9 years ago

Original comment by ya...@google.com on 12 Aug 2015 at 10:06