summaryrefslogtreecommitdiff
path: root/vp9/common
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2014-02-27 16:05:50 -0800
committerDmitry Kovalev <dkovalev@google.com>2014-02-27 16:05:50 -0800
commit1ae91f77840c760b2bc5ab25a4b84b3a9e9f8127 (patch)
tree23723605448fab0cdc5c64c5fac51ae1d1f62168 /vp9/common
parentacefe86ef81329ecacd6c5a11ffb43c51e82c910 (diff)
downloadlibvpx-1ae91f77840c760b2bc5ab25a4b84b3a9e9f8127.tar
libvpx-1ae91f77840c760b2bc5ab25a4b84b3a9e9f8127.tar.gz
libvpx-1ae91f77840c760b2bc5ab25a4b84b3a9e9f8127.tar.bz2
libvpx-1ae91f77840c760b2bc5ab25a4b84b3a9e9f8127.zip
Adding get_y_mode() function.
Change-Id: Iaac57b24f79cd205a8c62bc1177412d22f5787a8
Diffstat (limited to 'vp9/common')
-rw-r--r--vp9/common/vp9_blockd.c6
-rw-r--r--vp9/common/vp9_blockd.h11
-rw-r--r--vp9/common/vp9_entropy.h6
3 files changed, 11 insertions, 12 deletions
diff --git a/vp9/common/vp9_blockd.c b/vp9/common/vp9_blockd.c
index d918bedc6..e1d1318ac 100644
--- a/vp9/common/vp9_blockd.c
+++ b/vp9/common/vp9_blockd.c
@@ -16,8 +16,7 @@ MB_PREDICTION_MODE vp9_left_block_mode(const MODE_INFO *cur_mi,
if (!left_mi || is_inter_block(&left_mi->mbmi))
return DC_PRED;
- return left_mi->mbmi.sb_type < BLOCK_8X8 ? left_mi->bmi[b + 1].as_mode
- : left_mi->mbmi.mode;
+ return get_y_mode(left_mi, b + 1);
} else {
assert(b == 1 || b == 3);
return cur_mi->bmi[b - 1].as_mode;
@@ -30,8 +29,7 @@ MB_PREDICTION_MODE vp9_above_block_mode(const MODE_INFO *cur_mi,
if (!above_mi || is_inter_block(&above_mi->mbmi))
return DC_PRED;
- return above_mi->mbmi.sb_type < BLOCK_8X8 ? above_mi->bmi[b + 2].as_mode
- : above_mi->mbmi.mode;
+ return get_y_mode(above_mi, b + 2);
} else {
assert(b == 2 || b == 3);
return cur_mi->bmi[b - 2].as_mode;
diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h
index 6086323f6..921cd32fb 100644
--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -144,6 +144,11 @@ typedef struct {
b_mode_info bmi[4];
} MODE_INFO;
+static INLINE MB_PREDICTION_MODE get_y_mode(const MODE_INFO *mi, int block) {
+ return mi->mbmi.sb_type < BLOCK_8X8 ? mi->bmi[block].as_mode
+ : mi->mbmi.mode;
+}
+
static INLINE int is_inter_block(const MB_MODE_INFO *mbmi) {
return mbmi->ref_frame[0] > INTRA_FRAME;
}
@@ -255,13 +260,11 @@ extern const TX_TYPE mode2txfm_map[MB_MODE_COUNT];
static INLINE TX_TYPE get_tx_type_4x4(PLANE_TYPE plane_type,
const MACROBLOCKD *xd, int ib) {
const MODE_INFO *const mi = xd->mi_8x8[0];
- const MB_MODE_INFO *const mbmi = &mi->mbmi;
- if (plane_type != PLANE_TYPE_Y || xd->lossless || is_inter_block(mbmi))
+ if (plane_type != PLANE_TYPE_Y || xd->lossless || is_inter_block(&mi->mbmi))
return DCT_DCT;
- return mode2txfm_map[mbmi->sb_type < BLOCK_8X8 ? mi->bmi[ib].as_mode
- : mbmi->mode];
+ return mode2txfm_map[get_y_mode(mi, ib)];
}
static INLINE TX_TYPE get_tx_type_8x8(PLANE_TYPE plane_type,
diff --git a/vp9/common/vp9_entropy.h b/vp9/common/vp9_entropy.h
index aab8b5388..bd5086aa1 100644
--- a/vp9/common/vp9_entropy.h
+++ b/vp9/common/vp9_entropy.h
@@ -177,13 +177,11 @@ static INLINE int get_entropy_context(TX_SIZE tx_size, const ENTROPY_CONTEXT *a,
static const INLINE scan_order *get_scan(const MACROBLOCKD *xd, TX_SIZE tx_size,
PLANE_TYPE type, int block_idx) {
const MODE_INFO *const mi = xd->mi_8x8[0];
- const MB_MODE_INFO *const mbmi = &mi->mbmi;
- if (is_inter_block(mbmi) || type != PLANE_TYPE_Y || xd->lossless) {
+ if (is_inter_block(&mi->mbmi) || type != PLANE_TYPE_Y || xd->lossless) {
return &vp9_default_scan_orders[tx_size];
} else {
- const MB_PREDICTION_MODE mode =
- mbmi->sb_type < BLOCK_8X8 ? mi->bmi[block_idx].as_mode : mbmi->mode;
+ const MB_PREDICTION_MODE mode = get_y_mode(mi, block_idx);
return &vp9_scan_orders[tx_size][mode2txfm_map[mode]];
}
}