shithub: libvpx

Download patch

ref: 73031aaa7dbdab9d7a6f128180d27bd00ace8753
parent: ccc0577ab27a5eee2603fa5063110295c8dba7df
author: Deb Mukherjee <debargha@google.com>
date: Thu Apr 4 07:07:19 EDT 2013

Bugfix in encode_inter_mb_segment_8x8

Fixes an indexing bug. Looks like the bug has been there for a while.

Change-Id: I9fc04b0c30754bcb47366ad94a08112925600c4d

--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -573,6 +573,10 @@
     if (vp9_segfeature_active(xd, segment_id, SEG_LVL_SKIP))
       seg_eob = 0;
 
+  /* sanity check to ensure that we do not have spurious non-zero q values */
+  if (eob < seg_eob)
+    assert(qcoeff_ptr[scan[eob]] == 0);
+
   {
 #if CONFIG_CODE_NONZEROCOUNT
     int nzc = 0;
@@ -2562,7 +2566,7 @@
             BLOCKD *bd = &xd->block[ib + iblock[j]];
             BLOCK *be = &x->block[ib + iblock[j]];
             x->fwd_txm8x4(be->src_diff, be->coeff, 32);
-            x->quantize_b_4x4_pair(x, ib + iblock[j], ib + iblock[j]);
+            x->quantize_b_4x4_pair(x, ib + iblock[j], ib + iblock[j] + 1);
             thisdistortion = vp9_block_error_c(be->coeff, bd->dqcoeff, 32);
             otherdist += thisdistortion;
             xd->mode_info_context->mbmi.txfm_size = TX_4X4;