diff options
author | Yaowu Xu <yaowu@google.com> | 2014-09-22 14:58:51 -0700 |
---|---|---|
committer | Yaowu Xu <yaowu@google.com> | 2014-09-22 14:58:51 -0700 |
commit | f46326c7a24b37378004329f46c2f98518d4e5c2 (patch) | |
tree | d6ad98e357e50144c79d6885dbc06c00e3784dc1 /vp9/encoder | |
parent | 31596ee877473b952afe07675606a392d4cfd229 (diff) | |
download | libvpx-f46326c7a24b37378004329f46c2f98518d4e5c2.tar libvpx-f46326c7a24b37378004329f46c2f98518d4e5c2.tar.gz libvpx-f46326c7a24b37378004329f46c2f98518d4e5c2.tar.bz2 libvpx-f46326c7a24b37378004329f46c2f98518d4e5c2.zip |
Simplify rd_pick_intra_sby_mode()
Change-Id: Ifb0915c94c2db48827ddbd446314cb6e3155b99c
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 37832b7a2..5346f7b83 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -825,6 +825,7 @@ static int64_t rd_pick_intra_sub_8x8_y_mode(VP9_COMP *cpi, MACROBLOCK *mb, return RDCOST(mb->rdmult, mb->rddiv, cost, total_distortion); } +// This function is used only for intra_only frames static int64_t rd_pick_intra_sby_mode(VP9_COMP *cpi, MACROBLOCK *x, int *rate, int *rate_tokenonly, int64_t *distortion, int *skippable, @@ -839,7 +840,12 @@ static int64_t rd_pick_intra_sby_mode(VP9_COMP *cpi, MACROBLOCK *x, int64_t this_distortion, this_rd; TX_SIZE best_tx = TX_4X4; int i; - int *bmode_costs = cpi->mbmode_cost; + int *bmode_costs; + const MODE_INFO *above_mi = xd->mi[-xd->mi_stride].src_mi; + const MODE_INFO *left_mi = xd->left_available ? xd->mi[-1].src_mi : NULL; + const PREDICTION_MODE A = vp9_above_block_mode(mic, above_mi, 0); + const PREDICTION_MODE L = vp9_left_block_mode(mic, left_mi, 0); + bmode_costs = cpi->y_mode_costs[A][L]; if (cpi->sf.tx_size_search_method == USE_FULL_RD) for (i = 0; i < TX_MODES; i++) @@ -848,15 +854,6 @@ static int64_t rd_pick_intra_sby_mode(VP9_COMP *cpi, MACROBLOCK *x, /* Y Search for intra prediction mode */ for (mode = DC_PRED; mode <= TM_PRED; mode++) { int64_t local_tx_cache[TX_MODES]; - MODE_INFO *above_mi = xd->mi[-xd->mi_stride].src_mi; - MODE_INFO *left_mi = xd->left_available ? xd->mi[-1].src_mi : NULL; - - if (cpi->common.frame_type == KEY_FRAME) { - const PREDICTION_MODE A = vp9_above_block_mode(mic, above_mi, 0); - const PREDICTION_MODE L = vp9_left_block_mode(mic, left_mi, 0); - - bmode_costs = cpi->y_mode_costs[A][L]; - } mic->mbmi.mode = mode; super_block_yrd(cpi, x, &this_rate_tokenonly, &this_distortion, |