summaryrefslogtreecommitdiff
path: root/vp9/decoder
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2014-03-10 10:50:16 -0700
committerDmitry Kovalev <dkovalev@google.com>2014-03-10 10:50:16 -0700
commitf8f8c6d44c436609a408cf9a8910ccf8b65ca319 (patch)
treee1d3facb40326260a80d7cf8ddcdf8c4b284c4fb /vp9/decoder
parent924dc81e7426852d6c447fa10515e59f4f3c19bf (diff)
downloadlibvpx-f8f8c6d44c436609a408cf9a8910ccf8b65ca319.tar
libvpx-f8f8c6d44c436609a408cf9a8910ccf8b65ca319.tar.gz
libvpx-f8f8c6d44c436609a408cf9a8910ccf8b65ca319.tar.bz2
libvpx-f8f8c6d44c436609a408cf9a8910ccf8b65ca319.zip
Adding reusable get_y_mode_prob() function.
Change-Id: Iebd182d7aeebc0f8964b6fd35057449bb25b00c1
Diffstat (limited to 'vp9/decoder')
-rw-r--r--vp9/decoder/vp9_decodemv.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/vp9/decoder/vp9_decodemv.c b/vp9/decoder/vp9_decodemv.c
index 9bc21d271..799a82af0 100644
--- a/vp9/decoder/vp9_decodemv.c
+++ b/vp9/decoder/vp9_decodemv.c
@@ -174,9 +174,7 @@ static void read_intra_frame_mode_info(VP9_COMMON *const cm,
mbmi->ref_frame[1] = NONE;
if (bsize >= BLOCK_8X8) {
- const MB_PREDICTION_MODE A = vp9_above_block_mode(mi, above_mi, 0);
- const MB_PREDICTION_MODE L = vp9_left_block_mode(mi, left_mi, 0);
- mbmi->mode = read_intra_mode(r, vp9_kf_y_mode_prob[A][L]);
+ mbmi->mode = read_intra_mode(r, get_y_mode_probs(mi, above_mi, left_mi, 0));
} else {
// Only 4x4, 4x8, 8x4 blocks
const int num_4x4_w = num_4x4_blocks_wide_lookup[bsize]; // 1 or 2
@@ -185,16 +183,14 @@ static void read_intra_frame_mode_info(VP9_COMMON *const cm,
for (idy = 0; idy < 2; idy += num_4x4_h) {
for (idx = 0; idx < 2; idx += num_4x4_w) {
- const int ib = idy * 2 + idx;
- const MB_PREDICTION_MODE A = vp9_above_block_mode(mi, above_mi, ib);
- const MB_PREDICTION_MODE L = vp9_left_block_mode(mi, left_mi, ib);
- const MB_PREDICTION_MODE b_mode = read_intra_mode(r,
- vp9_kf_y_mode_prob[A][L]);
- mi->bmi[ib].as_mode = b_mode;
+ const int block = idy * 2 + idx;
+ const MB_PREDICTION_MODE mode =
+ read_intra_mode(r, get_y_mode_probs(mi, above_mi, left_mi, block));
+ mi->bmi[block].as_mode = mode;
if (num_4x4_h == 2)
- mi->bmi[ib + 2].as_mode = b_mode;
+ mi->bmi[block + 2].as_mode = mode;
if (num_4x4_w == 2)
- mi->bmi[ib + 1].as_mode = b_mode;
+ mi->bmi[block + 1].as_mode = mode;
}
}