diff options
Diffstat (limited to 'vp9/common')
-rw-r--r-- | vp9/common/vp9_blockd.h | 2 | ||||
-rw-r--r-- | vp9/common/vp9_onyxc_int.h | 21 |
2 files changed, 17 insertions, 6 deletions
diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h index 53ae92172..64d379cab 100644 --- a/vp9/common/vp9_blockd.h +++ b/vp9/common/vp9_blockd.h @@ -161,6 +161,8 @@ typedef struct macroblockd { int up_available; int left_available; + const vp9_prob (*partition_probs)[PARTITION_TYPES - 1]; + /* Distance of MB away from frame edges */ int mb_to_left_edge; int mb_to_right_edge; diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h index e347105c8..1811d76df 100644 --- a/vp9/common/vp9_onyxc_int.h +++ b/vp9/common/vp9_onyxc_int.h @@ -336,6 +336,18 @@ static INLINE int mi_cols_aligned_to_sb(int n_mis) { return ALIGN_POWER_OF_TWO(n_mis, MI_BLOCK_SIZE_LOG2); } +static INLINE int frame_is_intra_only(const VP9_COMMON *const cm) { + return cm->frame_type == KEY_FRAME || cm->intra_only; +} + +static INLINE void set_partition_probs(const VP9_COMMON *const cm, + MACROBLOCKD *const xd) { + xd->partition_probs = + frame_is_intra_only(cm) ? + &vp9_kf_partition_probs[0] : + (const vp9_prob (*)[PARTITION_TYPES - 1])cm->fc->partition_prob; +} + static INLINE void init_macroblockd(VP9_COMMON *cm, MACROBLOCKD *xd) { int i; @@ -356,16 +368,13 @@ static INLINE void init_macroblockd(VP9_COMMON *cm, MACROBLOCKD *xd) { xd->above_seg_context = cm->above_seg_context; xd->mi_stride = cm->mi_stride; xd->error_info = &cm->error; -} -static INLINE int frame_is_intra_only(const VP9_COMMON *const cm) { - return cm->frame_type == KEY_FRAME || cm->intra_only; + set_partition_probs(cm, xd); } -static INLINE const vp9_prob* get_partition_probs(const VP9_COMMON *cm, +static INLINE const vp9_prob* get_partition_probs(const MACROBLOCKD *xd, int ctx) { - return frame_is_intra_only(cm) ? vp9_kf_partition_probs[ctx] - : cm->fc->partition_prob[ctx]; + return xd->partition_probs[ctx]; } static INLINE void set_skip_context(MACROBLOCKD *xd, int mi_row, int mi_col) { |