summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_decodemv.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/decoder/vp9_decodemv.c')
-rw-r--r--vp9/decoder/vp9_decodemv.c22
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);
}