diff options
author | hkuang <hkuang@google.com> | 2014-12-08 10:24:17 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2014-12-08 10:24:17 -0800 |
commit | f925e5ce0fa2981317f76f0960706ae99694ed10 (patch) | |
tree | 2710d37e69573241801eb5c00a9d77e44dcce87b /vp9/encoder | |
parent | 127f65531bc93bfc1267153f557a40d080245466 (diff) | |
parent | 382f86f945e9bb1e215613eb5cd524f826a15238 (diff) | |
download | libvpx-f925e5ce0fa2981317f76f0960706ae99694ed10.tar libvpx-f925e5ce0fa2981317f76f0960706ae99694ed10.tar.gz libvpx-f925e5ce0fa2981317f76f0960706ae99694ed10.tar.bz2 libvpx-f925e5ce0fa2981317f76f0960706ae99694ed10.zip |
Merge "Improve the performance by caching the left_mi and right_mi in macroblockd."
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_bitstream.c | 5 | ||||
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c index 4d88fb5a5..20368f096 100644 --- a/vp9/encoder/vp9_bitstream.c +++ b/vp9/encoder/vp9_bitstream.c @@ -346,9 +346,8 @@ static void write_mb_modes_kf(const VP9_COMMON *cm, const MACROBLOCKD *xd, MODE_INFO *mi_8x8, vp9_writer *w) { const struct segmentation *const seg = &cm->seg; const MODE_INFO *const mi = mi_8x8; - const MODE_INFO *const above_mi = mi_8x8[-xd->mi_stride].src_mi; - const MODE_INFO *const left_mi = - xd->left_available ? mi_8x8[-1].src_mi : NULL; + const MODE_INFO *const above_mi = xd->above_mi; + const MODE_INFO *const left_mi = xd->left_mi; const MB_MODE_INFO *const mbmi = &mi->mbmi; const BLOCK_SIZE bsize = mbmi->sb_type; diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index c1bdff77a..600a3eb1a 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -982,8 +982,8 @@ static int64_t rd_pick_intra_sub_8x8_y_mode(VP9_COMP *cpi, MACROBLOCK *mb, int i, j; const MACROBLOCKD *const xd = &mb->e_mbd; MODE_INFO *const mic = xd->mi[0].src_mi; - 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 MODE_INFO *above_mi = xd->above_mi; + const MODE_INFO *left_mi = xd->left_mi; const BLOCK_SIZE bsize = xd->mi[0].src_mi->mbmi.sb_type; const int num_4x4_blocks_wide = num_4x4_blocks_wide_lookup[bsize]; const int num_4x4_blocks_high = num_4x4_blocks_high_lookup[bsize]; @@ -1058,8 +1058,8 @@ static int64_t rd_pick_intra_sby_mode(VP9_COMP *cpi, MACROBLOCK *x, TX_SIZE best_tx = TX_4X4; int i; 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 MODE_INFO *above_mi = xd->above_mi; + const MODE_INFO *left_mi = xd->left_mi; 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]; |