diff options
Diffstat (limited to 'vp9/decoder/vp9_decodemv.c')
-rw-r--r-- | vp9/decoder/vp9_decodemv.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/vp9/decoder/vp9_decodemv.c b/vp9/decoder/vp9_decodemv.c index d91a319c0..7e2f69105 100644 --- a/vp9/decoder/vp9_decodemv.c +++ b/vp9/decoder/vp9_decodemv.c @@ -404,14 +404,20 @@ static void mb_mode_mv_init(VP9D_COMP *pbi, vp9_reader *r) { cm->prob_comppred[i] = vp9_read_prob(r); // VP9_INTRA_MODES - if (vp9_read_bit(r)) - for (i = 0; i < VP9_INTRA_MODES - 1; ++i) - cm->fc.y_mode_prob[i] = vp9_read_prob(r); - - for (j = 0; j < NUM_PARTITION_CONTEXTS; ++j) - if (vp9_read_bit(r)) - for (i = 0; i < PARTITION_TYPES - 1; ++i) - cm->fc.partition_prob[j][i] = vp9_read_prob(r); + for (i = 0; i < VP9_INTRA_MODES - 1; ++i) { + if (vp9_read(r, VP9_DEF_UPDATE_PROB)) { + cm->fc.y_mode_prob[i] = + vp9_read_prob_diff_update(r, cm->fc.y_mode_prob[i]); + } + } + for (j = 0; j < NUM_PARTITION_CONTEXTS; ++j) { + for (i = 0; i < PARTITION_TYPES - 1; ++i) { + if (vp9_read(r, VP9_DEF_UPDATE_PROB)) { + cm->fc.partition_prob[j][i] = + vp9_read_prob_diff_update(r, cm->fc.partition_prob[j][i]); + } + } + } read_nmvprobs(r, nmvc, xd->allow_high_precision_mv); } |