diff options
author | Scott LaVarnway <slavarnway@google.com> | 2015-06-16 05:37:54 -0700 |
---|---|---|
committer | Scott LaVarnway <slavarnway@google.com> | 2015-06-16 05:37:54 -0700 |
commit | b2658ec3218950d1089b0147c2489ee286a0571c (patch) | |
tree | 69c2ff4b7a312f85409348dc3d809372fbe39eb9 /vp9/encoder | |
parent | e67d45d4ce92468ba193288b59093fef0a502662 (diff) | |
download | libvpx-b2658ec3218950d1089b0147c2489ee286a0571c.tar libvpx-b2658ec3218950d1089b0147c2489ee286a0571c.tar.gz libvpx-b2658ec3218950d1089b0147c2489ee286a0571c.tar.bz2 libvpx-b2658ec3218950d1089b0147c2489ee286a0571c.zip |
Eliminated frame_type check in get_partition_probs()
Moved the frame_type check to the tile level and stored
the prob ptr in MACROBLOCKD.
Change-Id: I10b5a4abd58213dc7610e3ade1a1583c01526842
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_bitstream.c | 5 | ||||
-rw-r--r-- | vp9/encoder/vp9_rd.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c index d20e06766..9b493d7d2 100644 --- a/vp9/encoder/vp9_bitstream.c +++ b/vp9/encoder/vp9_bitstream.c @@ -403,7 +403,7 @@ static void write_partition(const VP9_COMMON *const cm, int hbs, int mi_row, int mi_col, PARTITION_TYPE p, BLOCK_SIZE bsize, vp9_writer *w) { const int ctx = partition_plane_context(xd, mi_row, mi_col, bsize); - const vp9_prob *const probs = get_partition_probs(cm, ctx); + const vp9_prob *const probs = xd->partition_probs[ctx]; const int has_rows = (mi_row + hbs) < cm->mi_rows; const int has_cols = (mi_col + hbs) < cm->mi_cols; @@ -481,9 +481,12 @@ static void write_modes_sb(VP9_COMP *cpi, static void write_modes(VP9_COMP *cpi, const TileInfo *const tile, vp9_writer *w, TOKENEXTRA **tok, const TOKENEXTRA *const tok_end) { + const VP9_COMMON *const cm = &cpi->common; MACROBLOCKD *const xd = &cpi->td.mb.e_mbd; int mi_row, mi_col; + set_partition_probs(cm, xd); + for (mi_row = tile->mi_row_start; mi_row < tile->mi_row_end; mi_row += MI_BLOCK_SIZE) { vp9_zero(xd->left_seg_context); diff --git a/vp9/encoder/vp9_rd.c b/vp9/encoder/vp9_rd.c index bbcbfe929..90ee1e44a 100644 --- a/vp9/encoder/vp9_rd.c +++ b/vp9/encoder/vp9_rd.c @@ -265,6 +265,7 @@ static void set_block_thresholds(const VP9_COMMON *cm, RD_OPT *rd) { void vp9_initialize_rd_consts(VP9_COMP *cpi) { VP9_COMMON *const cm = &cpi->common; MACROBLOCK *const x = &cpi->td.mb; + MACROBLOCKD *const xd = &cpi->td.mb.e_mbd; RD_OPT *const rd = &cpi->rd; int i; @@ -280,6 +281,7 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi) { cm->frame_type != KEY_FRAME) ? 0 : 1; set_block_thresholds(cm, rd); + set_partition_probs(cm, xd); if (!cpi->sf.use_nonrd_pick_mode || cm->frame_type == KEY_FRAME) fill_token_costs(x->token_costs, cm->fc->coef_probs); @@ -287,7 +289,7 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi) { if (cpi->sf.partition_search_type != VAR_BASED_PARTITION || cm->frame_type == KEY_FRAME) { for (i = 0; i < PARTITION_CONTEXTS; ++i) - vp9_cost_tokens(cpi->partition_cost[i], get_partition_probs(cm, i), + vp9_cost_tokens(cpi->partition_cost[i], get_partition_probs(xd, i), vp9_partition_tree); } |