Rename pick_sb_modes to rd_pick_sb_modes

Keep naming consistency for RD and non-RD mode decision functions,
respectively.

Change-Id: I904282b675fc511a46c13cb1f8287aa5d1c8ac94
This commit is contained in:
Jingning Han 2014-01-16 15:59:40 -08:00 коммит произвёл Gerrit Code Review
Родитель 318e177f4a
Коммит 98b01c038f
1 изменённых файлов: 49 добавлений и 46 удалений

Просмотреть файл

@ -630,11 +630,11 @@ static void set_offsets(VP9_COMP *cpi, const TileInfo *const tile,
} }
} }
static void pick_sb_modes(VP9_COMP *cpi, const TileInfo *const tile, static void rd_pick_sb_modes(VP9_COMP *cpi, const TileInfo *const tile,
int mi_row, int mi_col, int mi_row, int mi_col,
int *totalrate, int64_t *totaldist, int *totalrate, int64_t *totaldist,
BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx, BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx,
int64_t best_rd) { int64_t best_rd) {
VP9_COMMON *const cm = &cpi->common; VP9_COMMON *const cm = &cpi->common;
MACROBLOCK *const x = &cpi->mb; MACROBLOCK *const x = &cpi->mb;
MACROBLOCKD *const xd = &x->e_mbd; MACROBLOCKD *const xd = &x->e_mbd;
@ -1079,35 +1079,35 @@ static void pick_partition_type(VP9_COMP *cpi,
switch (partition) { switch (partition) {
case PARTITION_NONE: case PARTITION_NONE:
pick_sb_modes(cpi, tile, mi_row, mi_col, rate, dist, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, rate, dist,
bsize, get_block_context(x, bsize), INT64_MAX); bsize, get_block_context(x, bsize), INT64_MAX);
break; break;
case PARTITION_HORZ: case PARTITION_HORZ:
*get_sb_index(x, subsize) = 0; *get_sb_index(x, subsize) = 0;
pick_sb_modes(cpi, tile, mi_row, mi_col, &sub_rate[0], &sub_dist[0], rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &sub_rate[0], &sub_dist[0],
subsize, get_block_context(x, subsize), INT64_MAX); subsize, get_block_context(x, subsize), INT64_MAX);
if (bsize >= BLOCK_8X8 && mi_row + num_8x8_subsize < cm->mi_rows) { if (bsize >= BLOCK_8X8 && mi_row + num_8x8_subsize < cm->mi_rows) {
update_state(cpi, get_block_context(x, subsize), subsize, 0); update_state(cpi, get_block_context(x, subsize), subsize, 0);
encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize); encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize);
*get_sb_index(x, subsize) = 1; *get_sb_index(x, subsize) = 1;
pick_sb_modes(cpi, tile, mi_row + num_8x8_subsize, mi_col, rd_pick_sb_modes(cpi, tile, mi_row + num_8x8_subsize, mi_col,
&sub_rate[1], &sub_dist[1], subsize, &sub_rate[1], &sub_dist[1], subsize,
get_block_context(x, subsize), INT64_MAX); get_block_context(x, subsize), INT64_MAX);
} }
*rate = sub_rate[0] + sub_rate[1]; *rate = sub_rate[0] + sub_rate[1];
*dist = sub_dist[0] + sub_dist[1]; *dist = sub_dist[0] + sub_dist[1];
break; break;
case PARTITION_VERT: case PARTITION_VERT:
*get_sb_index(x, subsize) = 0; *get_sb_index(x, subsize) = 0;
pick_sb_modes(cpi, tile, mi_row, mi_col, &sub_rate[0], &sub_dist[0], rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &sub_rate[0], &sub_dist[0],
subsize, get_block_context(x, subsize), INT64_MAX); subsize, get_block_context(x, subsize), INT64_MAX);
if (bsize >= BLOCK_8X8 && mi_col + num_8x8_subsize < cm->mi_cols) { if (bsize >= BLOCK_8X8 && mi_col + num_8x8_subsize < cm->mi_cols) {
update_state(cpi, get_block_context(x, subsize), subsize, 0); update_state(cpi, get_block_context(x, subsize), subsize, 0);
encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize); encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize);
*get_sb_index(x, subsize) = 1; *get_sb_index(x, subsize) = 1;
pick_sb_modes(cpi, tile, mi_row, mi_col + num_8x8_subsize, rd_pick_sb_modes(cpi, tile, mi_row, mi_col + num_8x8_subsize,
&sub_rate[1], &sub_dist[1], subsize, &sub_rate[1], &sub_dist[1], subsize,
get_block_context(x, subsize), INT64_MAX); get_block_context(x, subsize), INT64_MAX);
} }
*rate = sub_rate[0] + sub_rate[1]; *rate = sub_rate[0] + sub_rate[1];
*dist = sub_dist[1] + sub_dist[1]; *dist = sub_dist[1] + sub_dist[1];
@ -1244,8 +1244,8 @@ static void rd_use_partition(VP9_COMP *cpi,
mi_row + (ms >> 1) < cm->mi_rows && mi_row + (ms >> 1) < cm->mi_rows &&
mi_col + (ms >> 1) < cm->mi_cols) { mi_col + (ms >> 1) < cm->mi_cols) {
*(get_sb_partitioning(x, bsize)) = bsize; *(get_sb_partitioning(x, bsize)) = bsize;
pick_sb_modes(cpi, tile, mi_row, mi_col, &none_rate, &none_dist, bsize, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &none_rate, &none_dist, bsize,
get_block_context(x, bsize), INT64_MAX); get_block_context(x, bsize), INT64_MAX);
pl = partition_plane_context(cpi->above_seg_context, pl = partition_plane_context(cpi->above_seg_context,
cpi->left_seg_context, cpi->left_seg_context,
@ -1260,13 +1260,15 @@ static void rd_use_partition(VP9_COMP *cpi,
switch (partition) { switch (partition) {
case PARTITION_NONE: case PARTITION_NONE:
pick_sb_modes(cpi, tile, mi_row, mi_col, &last_part_rate, &last_part_dist, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &last_part_rate,
bsize, get_block_context(x, bsize), INT64_MAX); &last_part_dist, bsize,
get_block_context(x, bsize), INT64_MAX);
break; break;
case PARTITION_HORZ: case PARTITION_HORZ:
*get_sb_index(x, subsize) = 0; *get_sb_index(x, subsize) = 0;
pick_sb_modes(cpi, tile, mi_row, mi_col, &last_part_rate, &last_part_dist, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &last_part_rate,
subsize, get_block_context(x, subsize), INT64_MAX); &last_part_dist, subsize,
get_block_context(x, subsize), INT64_MAX);
if (last_part_rate != INT_MAX && if (last_part_rate != INT_MAX &&
bsize >= BLOCK_8X8 && mi_row + (mh >> 1) < cm->mi_rows) { bsize >= BLOCK_8X8 && mi_row + (mh >> 1) < cm->mi_rows) {
int rt = 0; int rt = 0;
@ -1274,8 +1276,8 @@ static void rd_use_partition(VP9_COMP *cpi,
update_state(cpi, get_block_context(x, subsize), subsize, 0); update_state(cpi, get_block_context(x, subsize), subsize, 0);
encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize); encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize);
*get_sb_index(x, subsize) = 1; *get_sb_index(x, subsize) = 1;
pick_sb_modes(cpi, tile, mi_row + (ms >> 1), mi_col, &rt, &dt, subsize, rd_pick_sb_modes(cpi, tile, mi_row + (ms >> 1), mi_col, &rt, &dt,
get_block_context(x, subsize), INT64_MAX); subsize, get_block_context(x, subsize), INT64_MAX);
if (rt == INT_MAX || dt == INT_MAX) { if (rt == INT_MAX || dt == INT_MAX) {
last_part_rate = INT_MAX; last_part_rate = INT_MAX;
last_part_dist = INT_MAX; last_part_dist = INT_MAX;
@ -1288,8 +1290,9 @@ static void rd_use_partition(VP9_COMP *cpi,
break; break;
case PARTITION_VERT: case PARTITION_VERT:
*get_sb_index(x, subsize) = 0; *get_sb_index(x, subsize) = 0;
pick_sb_modes(cpi, tile, mi_row, mi_col, &last_part_rate, &last_part_dist, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &last_part_rate,
subsize, get_block_context(x, subsize), INT64_MAX); &last_part_dist, subsize,
get_block_context(x, subsize), INT64_MAX);
if (last_part_rate != INT_MAX && if (last_part_rate != INT_MAX &&
bsize >= BLOCK_8X8 && mi_col + (ms >> 1) < cm->mi_cols) { bsize >= BLOCK_8X8 && mi_col + (ms >> 1) < cm->mi_cols) {
int rt = 0; int rt = 0;
@ -1297,8 +1300,8 @@ static void rd_use_partition(VP9_COMP *cpi,
update_state(cpi, get_block_context(x, subsize), subsize, 0); update_state(cpi, get_block_context(x, subsize), subsize, 0);
encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize); encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize);
*get_sb_index(x, subsize) = 1; *get_sb_index(x, subsize) = 1;
pick_sb_modes(cpi, tile, mi_row, mi_col + (ms >> 1), &rt, &dt, subsize, rd_pick_sb_modes(cpi, tile, mi_row, mi_col + (ms >> 1), &rt, &dt,
get_block_context(x, subsize), INT64_MAX); subsize, get_block_context(x, subsize), INT64_MAX);
if (rt == INT_MAX || dt == INT_MAX) { if (rt == INT_MAX || dt == INT_MAX) {
last_part_rate = INT_MAX; last_part_rate = INT_MAX;
last_part_dist = INT_MAX; last_part_dist = INT_MAX;
@ -1372,9 +1375,9 @@ static void rd_use_partition(VP9_COMP *cpi,
save_context(cpi, mi_row, mi_col, a, l, sa, sl, bsize); save_context(cpi, mi_row, mi_col, a, l, sa, sl, bsize);
pick_sb_modes(cpi, tile, mi_row + y_idx, mi_col + x_idx, &rt, &dt, rd_pick_sb_modes(cpi, tile, mi_row + y_idx, mi_col + x_idx, &rt, &dt,
split_subsize, get_block_context(x, split_subsize), split_subsize, get_block_context(x, split_subsize),
INT64_MAX); INT64_MAX);
restore_context(cpi, mi_row, mi_col, a, l, sa, sl, bsize); restore_context(cpi, mi_row, mi_col, a, l, sa, sl, bsize);
@ -1738,8 +1741,8 @@ static void rd_pick_partition(VP9_COMP *cpi, const TileInfo *const tile,
// PARTITION_NONE // PARTITION_NONE
if (partition_none_allowed) { if (partition_none_allowed) {
pick_sb_modes(cpi, tile, mi_row, mi_col, &this_rate, &this_dist, bsize, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &this_rate, &this_dist, bsize,
get_block_context(x, bsize), best_rd); get_block_context(x, bsize), best_rd);
if (this_rate != INT_MAX) { if (this_rate != INT_MAX) {
if (bsize >= BLOCK_8X8) { if (bsize >= BLOCK_8X8) {
pl = partition_plane_context(cpi->above_seg_context, pl = partition_plane_context(cpi->above_seg_context,
@ -1849,8 +1852,8 @@ static void rd_pick_partition(VP9_COMP *cpi, const TileInfo *const tile,
partition_none_allowed) partition_none_allowed)
get_block_context(x, subsize)->pred_filter_type = get_block_context(x, subsize)->pred_filter_type =
get_block_context(x, bsize)->mic.mbmi.interp_filter; get_block_context(x, bsize)->mic.mbmi.interp_filter;
pick_sb_modes(cpi, tile, mi_row, mi_col, &sum_rate, &sum_dist, subsize, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &sum_rate, &sum_dist, subsize,
get_block_context(x, subsize), best_rd); get_block_context(x, subsize), best_rd);
sum_rd = RDCOST(x->rdmult, x->rddiv, sum_rate, sum_dist); sum_rd = RDCOST(x->rdmult, x->rddiv, sum_rate, sum_dist);
if (sum_rd < best_rd && mi_row + ms < cm->mi_rows) { if (sum_rd < best_rd && mi_row + ms < cm->mi_rows) {
@ -1864,9 +1867,9 @@ static void rd_pick_partition(VP9_COMP *cpi, const TileInfo *const tile,
partition_none_allowed) partition_none_allowed)
get_block_context(x, subsize)->pred_filter_type = get_block_context(x, subsize)->pred_filter_type =
get_block_context(x, bsize)->mic.mbmi.interp_filter; get_block_context(x, bsize)->mic.mbmi.interp_filter;
pick_sb_modes(cpi, tile, mi_row + ms, mi_col, &this_rate, rd_pick_sb_modes(cpi, tile, mi_row + ms, mi_col, &this_rate,
&this_dist, subsize, get_block_context(x, subsize), &this_dist, subsize, get_block_context(x, subsize),
best_rd - sum_rd); best_rd - sum_rd);
if (this_rate == INT_MAX) { if (this_rate == INT_MAX) {
sum_rd = INT64_MAX; sum_rd = INT64_MAX;
} else { } else {
@ -1902,8 +1905,8 @@ static void rd_pick_partition(VP9_COMP *cpi, const TileInfo *const tile,
partition_none_allowed) partition_none_allowed)
get_block_context(x, subsize)->pred_filter_type = get_block_context(x, subsize)->pred_filter_type =
get_block_context(x, bsize)->mic.mbmi.interp_filter; get_block_context(x, bsize)->mic.mbmi.interp_filter;
pick_sb_modes(cpi, tile, mi_row, mi_col, &sum_rate, &sum_dist, subsize, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &sum_rate, &sum_dist, subsize,
get_block_context(x, subsize), best_rd); get_block_context(x, subsize), best_rd);
sum_rd = RDCOST(x->rdmult, x->rddiv, sum_rate, sum_dist); sum_rd = RDCOST(x->rdmult, x->rddiv, sum_rate, sum_dist);
if (sum_rd < best_rd && mi_col + ms < cm->mi_cols) { if (sum_rd < best_rd && mi_col + ms < cm->mi_cols) {
update_state(cpi, get_block_context(x, subsize), subsize, 0); update_state(cpi, get_block_context(x, subsize), subsize, 0);
@ -1916,9 +1919,9 @@ static void rd_pick_partition(VP9_COMP *cpi, const TileInfo *const tile,
partition_none_allowed) partition_none_allowed)
get_block_context(x, subsize)->pred_filter_type = get_block_context(x, subsize)->pred_filter_type =
get_block_context(x, bsize)->mic.mbmi.interp_filter; get_block_context(x, bsize)->mic.mbmi.interp_filter;
pick_sb_modes(cpi, tile, mi_row, mi_col + ms, &this_rate, rd_pick_sb_modes(cpi, tile, mi_row, mi_col + ms, &this_rate,
&this_dist, subsize, get_block_context(x, subsize), &this_dist, subsize, get_block_context(x, subsize),
best_rd - sum_rd); best_rd - sum_rd);
if (this_rate == INT_MAX) { if (this_rate == INT_MAX) {
sum_rd = INT64_MAX; sum_rd = INT64_MAX;
} else { } else {
@ -1989,8 +1992,8 @@ static void rd_pick_reference_frame(VP9_COMP *cpi, const TileInfo *const tile,
if ((mi_row + (ms >> 1) < cm->mi_rows) && if ((mi_row + (ms >> 1) < cm->mi_rows) &&
(mi_col + (ms >> 1) < cm->mi_cols)) { (mi_col + (ms >> 1) < cm->mi_cols)) {
cpi->set_ref_frame_mask = 1; cpi->set_ref_frame_mask = 1;
pick_sb_modes(cpi, tile, mi_row, mi_col, &r, &d, BLOCK_64X64, rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &r, &d, BLOCK_64X64,
get_block_context(x, BLOCK_64X64), INT64_MAX); get_block_context(x, BLOCK_64X64), INT64_MAX);
pl = partition_plane_context(cpi->above_seg_context, cpi->left_seg_context, pl = partition_plane_context(cpi->above_seg_context, cpi->left_seg_context,
mi_row, mi_col, BLOCK_64X64); mi_row, mi_col, BLOCK_64X64);
r += x->partition_cost[pl][PARTITION_NONE]; r += x->partition_cost[pl][PARTITION_NONE];