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
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user