summaryrefslogtreecommitdiff
path: root/vp10/common/onyxc_int.h
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2015-10-13 14:08:24 -0400
committerRonald S. Bultje <rsbultje@gmail.com>2015-10-16 19:30:38 -0400
commit1eb51a2010c95845d340ac7dafe311e4c1716d66 (patch)
tree0c3c576574fcf18ca946b5a1fec9df3b4646e323 /vp10/common/onyxc_int.h
parentd8f3bb1837f7ef966b1a380359e84d15bb92e18b (diff)
downloadlibvpx-1eb51a2010c95845d340ac7dafe311e4c1716d66.tar.gz
vp10: allow forward updates for keyframe y intra mode probabilities.
See issue 1040 point 5. Change-Id: I51a70b9eade39efba392a1457bd70a3c515525cb
Diffstat (limited to 'vp10/common/onyxc_int.h')
-rw-r--r--vp10/common/onyxc_int.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/vp10/common/onyxc_int.h b/vp10/common/onyxc_int.h
index eac75a670..681413377 100644
--- a/vp10/common/onyxc_int.h
+++ b/vp10/common/onyxc_int.h
@@ -302,6 +302,11 @@ typedef struct VP10Common {
PARTITION_CONTEXT *above_seg_context;
ENTROPY_CONTEXT *above_context;
int above_context_alloc_cols;
+
+ // scratch memory for intraonly/keyframe forward updates from default tables
+ // - this is intentionally not placed in FRAME_CONTEXT since it's reset upon
+ // each keyframe and not used afterwards
+ vpx_prob kf_y_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1];
} VP10_COMMON;
// TODO(hkuang): Don't need to lock the whole pool after implementing atomic
@@ -443,6 +448,16 @@ static INLINE void set_mi_row_col(MACROBLOCKD *xd, const TileInfo *const tile,
}
}
+static INLINE const vpx_prob *get_y_mode_probs(const VP10_COMMON *cm,
+ const MODE_INFO *mi,
+ const MODE_INFO *above_mi,
+ const MODE_INFO *left_mi,
+ int block) {
+ const PREDICTION_MODE above = vp10_above_block_mode(mi, above_mi, block);
+ const PREDICTION_MODE left = vp10_left_block_mode(mi, left_mi, block);
+ return cm->kf_y_prob[above][left];
+}
+
static INLINE void update_partition_context(MACROBLOCKD *xd,
int mi_row, int mi_col,
BLOCK_SIZE subsize,