]> granicus.if.org Git - libvpx/commitdiff
Fixed bug to use mode_info_stride rather than mb_cols
authorAdrian Grange <agrange@google.com>
Thu, 15 Dec 2011 18:00:46 +0000 (10:00 -0800)
committerAdrian Grange <agrange@google.com>
Thu, 15 Dec 2011 18:00:46 +0000 (10:00 -0800)
Both encoder & decoder were using mb_cols to
offset from one row of MODE_INFO structures to the next
when they should have been using mode_info_stride.

Fixing this in both encoder and decoder gives around
a 3KB size saving and 0.025dB PSNR improvement on the one
720P clip I tried.

(Also removed "index" which was being updated but not used)

Change-Id: I413bea802b142886bfcf8d8aa7f5a2f0c524fd4b

vp8/decoder/decodemv.c
vp8/encoder/bitstream.c

index d8b93a8ffca09ea262fbbcabfe003bed77580894..b3799c78de3a9492b6e1a69ca236f11249cf7992 100644 (file)
@@ -479,7 +479,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
                 pred_context += (mi-1)->mbmi.seg_id_predicted;
             if (mb_row != 0)
                 pred_context +=
-                    (mi-pbi->common.mb_cols)->mbmi.seg_id_predicted;
+                    (mi-pbi->common.mode_info_stride)->mbmi.seg_id_predicted;
 
             mbmi->seg_id_predicted =
                 vp8_read(bc,
index c49e2bd3eaeed802a20441bf9c554727446833f9..6f92ff0a7d00adc0aa7f8e057b60c3506c57a136 100644 (file)
@@ -944,7 +944,6 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
 
     int i;
     int pred_context;
-    int index = 0;
 
     const int *const rfct = cpi->count_mb_ref_frame_usage;
     const int rf_intra = rfct[INTRA_FRAME];
@@ -1093,7 +1092,7 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
                     if (mb_col != 0)
                         pred_context += (m-1)->mbmi.seg_id_predicted;
                     if (mb_row != 0)
-                        pred_context += (m-pc->mb_cols)->mbmi.seg_id_predicted;
+                        pred_context += (m-pc->mode_info_stride)->mbmi.seg_id_predicted;
 
                     // Code the prediction flag for this mb
                     vp8_write( w, m->mbmi.seg_id_predicted,
@@ -1108,7 +1107,6 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
                     // Normal undpredicted coding
                     write_mb_segid(w, mi, &cpi->mb.e_mbd);
                 }
-                index++;
             }
 
 //#if CONFIG_SEGFEATURES
@@ -1329,7 +1327,6 @@ static void write_kfmodes(VP8_COMP *cpi)
     /* const */
     MODE_INFO *m = c->mi;
     int i;
-    int index = 0;
     int mb_row = -1;
     int prob_skip_false = 0;
 
@@ -1375,7 +1372,6 @@ static void write_kfmodes(VP8_COMP *cpi)
 
             if (cpi->mb.e_mbd.update_mb_segmentation_map)
             {
-                index++;
                 write_mb_segid(bc, &m->mbmi, &cpi->mb.e_mbd);
             }