summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rdopt.c
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2014-09-22 17:13:55 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-09-22 17:13:55 -0700
commit052bc8ea6aa23be45e91cef1fe8411b71ddc60ff (patch)
tree5b4d4a9b03bea087d76cb191cefc94db159f0fc7 /vp9/encoder/vp9_rdopt.c
parentb51f0ea22e42325265ac01723504f50cf0cda3a9 (diff)
parentf46326c7a24b37378004329f46c2f98518d4e5c2 (diff)
downloadlibvpx-052bc8ea6aa23be45e91cef1fe8411b71ddc60ff.tar
libvpx-052bc8ea6aa23be45e91cef1fe8411b71ddc60ff.tar.gz
libvpx-052bc8ea6aa23be45e91cef1fe8411b71ddc60ff.tar.bz2
libvpx-052bc8ea6aa23be45e91cef1fe8411b71ddc60ff.zip
Merge "Simplify rd_pick_intra_sby_mode()"
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r--vp9/encoder/vp9_rdopt.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index f05351aee..ee3afce05 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -827,6 +827,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,
@@ -841,7 +842,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++)
@@ -850,15 +856,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,