diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2015-10-13 14:08:24 -0400 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2015-10-16 19:30:38 -0400 |
commit | 1eb51a2010c95845d340ac7dafe311e4c1716d66 (patch) | |
tree | 0c3c576574fcf18ca946b5a1fec9df3b4646e323 /vp10/common/onyxc_int.h | |
parent | d8f3bb1837f7ef966b1a380359e84d15bb92e18b (diff) | |
download | libvpx-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.h | 15 |
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, |