ref: ae63ce248afb20d2463449e617cfc5e626a5d63d
parent: ae9023a3c915a95e13e96721888b174d68c83553
author: Adrian Grange <agrange@google.com>
date: Thu Dec 15 05:00:46 EST 2011
Fixed bug to use mode_info_stride rather than mb_cols 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
--- a/vp8/decoder/decodemv.c
+++ b/vp8/decoder/decodemv.c
@@ -479,7 +479,7 @@
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,
--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -944,7 +944,6 @@
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 @@
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 @@
// Normal undpredicted coding
write_mb_segid(w, mi, &cpi->mb.e_mbd);
}
- index++;
}
//#if CONFIG_SEGFEATURES
@@ -1329,7 +1327,6 @@
/* const */
MODE_INFO *m = c->mi;
int i;
- int index = 0;
int mb_row = -1;
int prob_skip_false = 0;
@@ -1375,7 +1372,6 @@
if (cpi->mb.e_mbd.update_mb_segmentation_map)
{
- index++;
write_mb_segid(bc, &m->mbmi, &cpi->mb.e_mbd);
}
--
⑨