diff options
author | Ronald S. Bultje <rbultje@google.com> | 2013-01-09 17:21:28 -0800 |
---|---|---|
committer | Ronald S. Bultje <rbultje@google.com> | 2013-01-09 17:21:40 -0800 |
commit | 6884a83f06dd6c19ffc16758ecf1a5b0f70ec1a8 (patch) | |
tree | 3c284100e6d610551c8d94bb1a8174663593f455 /vp9/encoder/vp9_rdopt.c | |
parent | 7d6b5425d704c91c6d048c1a96542c9cd027f015 (diff) | |
download | libvpx-6884a83f06dd6c19ffc16758ecf1a5b0f70ec1a8.tar libvpx-6884a83f06dd6c19ffc16758ecf1a5b0f70ec1a8.tar.gz libvpx-6884a83f06dd6c19ffc16758ecf1a5b0f70ec1a8.tar.bz2 libvpx-6884a83f06dd6c19ffc16758ecf1a5b0f70ec1a8.zip |
Merge superblocks64 experiment.
Change-Id: If6c88752dffdb566f8d4322f135145270716fb8e
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 48 |
1 files changed, 6 insertions, 42 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 7c8f41d84..a8ece2c58 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -982,7 +982,6 @@ static void super_block_yrd(VP9_COMP *cpi, xd->left_context = orig_left; } -#if CONFIG_SUPERBLOCKS64 static void super_block_64_yrd(VP9_COMP *cpi, MACROBLOCK *x, int *rate, int *distortion, int *skip, @@ -1080,7 +1079,6 @@ static void super_block_64_yrd(VP9_COMP *cpi, xd->above_context = orig_above; xd->left_context = orig_left; } -#endif // CONFIG_SUPERBLOCKS64 static void copy_predictor_8x8(uint8_t *dst, const uint8_t *predictor) { const unsigned int *p = (const unsigned int *)predictor; @@ -1374,7 +1372,6 @@ static int64_t rd_pick_intra_sby_mode(VP9_COMP *cpi, return best_rd; } -#if CONFIG_SUPERBLOCKS64 static int64_t rd_pick_intra_sb64y_mode(VP9_COMP *cpi, MACROBLOCK *x, int *rate, @@ -1414,7 +1411,6 @@ static int64_t rd_pick_intra_sb64y_mode(VP9_COMP *cpi, return best_rd; } -#endif // CONFIG_SUPERBLOCKS64 static int64_t rd_pick_intra16x16mby_mode(VP9_COMP *cpi, MACROBLOCK *x, @@ -1893,7 +1889,6 @@ static int64_t rd_inter32x32_uv(VP9_COMP *cpi, MACROBLOCK *x, int *rate, return RDCOST(x->rdmult, x->rddiv, *rate, *distortion); } -#if CONFIG_SUPERBLOCKS64 static void super_block_64_uvrd(MACROBLOCK *x, int *rate, int *distortion, int *skip); static int64_t rd_inter64x64_uv(VP9_COMP *cpi, MACROBLOCK *x, int *rate, @@ -1901,7 +1896,6 @@ static int64_t rd_inter64x64_uv(VP9_COMP *cpi, MACROBLOCK *x, int *rate, super_block_64_uvrd(x, rate, distortion, skip); return RDCOST(x->rdmult, x->rddiv, *rate, *distortion); } -#endif // CONFIG_SUPERBLOCKS64 static int64_t rd_inter4x4_uv(VP9_COMP *cpi, MACROBLOCK *x, int *rate, int *distortion, int *skip, int fullpixel) { @@ -2102,7 +2096,6 @@ static void super_block_uvrd(MACROBLOCK *x, } } -#if CONFIG_SUPERBLOCKS64 static void super_block_64_uvrd(MACROBLOCK *x, int *rate, int *distortion, @@ -2184,7 +2177,6 @@ static void super_block_64_uvrd(MACROBLOCK *x, xd->left_context = tl_orig; xd->above_context = ta_orig; } -#endif // CONFIG_SUPERBLOCKS64 static int64_t rd_pick_intra_sbuv_mode(VP9_COMP *cpi, MACROBLOCK *x, @@ -2223,7 +2215,6 @@ static int64_t rd_pick_intra_sbuv_mode(VP9_COMP *cpi, return best_rd; } -#if CONFIG_SUPERBLOCKS64 static int64_t rd_pick_intra_sb64uv_mode(VP9_COMP *cpi, MACROBLOCK *x, int *rate, @@ -2260,7 +2251,6 @@ static int64_t rd_pick_intra_sb64uv_mode(VP9_COMP *cpi, return best_rd; } -#endif // CONFIG_SUPERBLOCKS64 int vp9_cost_mv_ref(VP9_COMP *cpi, MB_PREDICTION_MODE m, @@ -3548,7 +3538,6 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, } #endif -#if CONFIG_SUPERBLOCKS64 if (block_size == BLOCK_64X64) { vp9_build_inter64x64_predictors_sb(xd, xd->dst.y_buffer, @@ -3556,9 +3545,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, xd->dst.v_buffer, xd->dst.y_stride, xd->dst.uv_stride); - } else -#endif // CONFIG_SUPERBLOCKS64 - if (block_size == BLOCK_32X32) { + } else if (block_size == BLOCK_32X32) { vp9_build_inter32x32_predictors_sb(xd, xd->dst.y_buffer, xd->dst.u_buffer, @@ -3587,13 +3574,10 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, if (threshold < x->encode_breakout) threshold = x->encode_breakout; -#if CONFIG_SUPERBLOCKS64 if (block_size == BLOCK_64X64) { var = vp9_variance64x64(*(b->base_src), b->src_stride, xd->dst.y_buffer, xd->dst.y_stride, &sse); - } else -#endif // CONFIG_SUPERBLOCKS64 - if (block_size == BLOCK_32X32) { + } else if (block_size == BLOCK_32X32) { var = vp9_variance32x32(*(b->base_src), b->src_stride, xd->dst.y_buffer, xd->dst.y_stride, &sse); } else { @@ -3611,7 +3595,6 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, // Check u and v to make sure skip is ok int sse2; -#if CONFIG_SUPERBLOCKS64 if (block_size == BLOCK_64X64) { unsigned int sse2u, sse2v; var = vp9_variance32x32(x->src.u_buffer, x->src.uv_stride, @@ -3619,9 +3602,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, var = vp9_variance32x32(x->src.v_buffer, x->src.uv_stride, xd->dst.v_buffer, xd->dst.uv_stride, &sse2v); sse2 = sse2u + sse2v; - } else -#endif // CONFIG_SUPERBLOCKS64 - if (block_size == BLOCK_32X32) { + } else if (block_size == BLOCK_32X32) { unsigned int sse2u, sse2v; var = vp9_variance16x16(x->src.u_buffer, x->src.uv_stride, xd->dst.u_buffer, xd->dst.uv_stride, &sse2u); @@ -3661,7 +3642,6 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, } if (!x->skip) { -#if CONFIG_SUPERBLOCKS64 if (block_size == BLOCK_64X64) { int skippable_y, skippable_uv; @@ -3677,9 +3657,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, *rate2 += *rate_uv; *distortion += *distortion_uv; *skippable = skippable_y && skippable_uv; - } else -#endif // CONFIG_SUPERBLOCKS64 - if (block_size == BLOCK_32X32) { + } else if (block_size == BLOCK_32X32) { int skippable_y, skippable_uv; // Y cost and distortion @@ -4540,7 +4518,6 @@ void vp9_rd_pick_intra_mode_sb32(VP9_COMP *cpi, MACROBLOCK *x, } } -#if CONFIG_SUPERBLOCKS64 void vp9_rd_pick_intra_mode_sb64(VP9_COMP *cpi, MACROBLOCK *x, int *returnrate, int *returndist) { @@ -4569,7 +4546,6 @@ void vp9_rd_pick_intra_mode_sb64(VP9_COMP *cpi, MACROBLOCK *x, *returndist = dist_y + (dist_uv >> 2); } } -#endif // CONFIG_SUPERBLOCKS64 void vp9_rd_pick_intra_mode(VP9_COMP *cpi, MACROBLOCK *x, int *returnrate, int *returndist) { @@ -4800,7 +4776,6 @@ static int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, frame_mv[ZEROMV][ref_frame].as_int = 0; } -#if CONFIG_SUPERBLOCKS64 if (block_size == BLOCK_64X64) { mbmi->mode = DC_PRED; if (cm->txfm_mode == ONLY_4X4 || cm->txfm_mode == TX_MODE_SELECT) { @@ -4824,9 +4799,7 @@ static int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, mode_uv_16x16 = mbmi->uv_mode; } #endif // CONFIG_TX32X32 - } else -#endif // CONFIG_SUPERBLOCKS64 - { + } else { assert(block_size == BLOCK_32X32); mbmi->mode = DC_PRED; if (cm->txfm_mode == ONLY_4X4 || cm->txfm_mode == TX_MODE_SELECT) { @@ -4977,14 +4950,11 @@ static int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, } if (ref_frame == INTRA_FRAME) { -#if CONFIG_SUPERBLOCKS64 if (block_size == BLOCK_64X64) { vp9_build_intra_predictors_sb64y_s(xd); super_block_64_yrd(cpi, x, &rate_y, &distortion_y, &skippable, txfm_cache); - } else -#endif // CONFIG_SUPERBLOCKS64 - { + } else { assert(block_size == BLOCK_32X32); vp9_build_intra_predictors_sby_s(xd); super_block_yrd(cpi, x, &rate_y, &distortion_y, @@ -5296,13 +5266,9 @@ static int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, end: { -#if CONFIG_SUPERBLOCKS64 PICK_MODE_CONTEXT *p = (block_size == BLOCK_32X32) ? &x->sb32_context[xd->sb_index] : &x->sb64_context; -#else - PICK_MODE_CONTEXT *p = &x->sb32_context[xd->sb_index]; -#endif store_coding_context(x, p, best_mode_index, NULL, &mbmi->ref_mvs[mbmi->ref_frame][0], &mbmi->ref_mvs[mbmi->second_ref_frame < 0 ? 0 : @@ -5321,7 +5287,6 @@ int64_t vp9_rd_pick_inter_mode_sb32(VP9_COMP *cpi, MACROBLOCK *x, returnrate, returndistortion, BLOCK_32X32); } -#if CONFIG_SUPERBLOCKS64 int64_t vp9_rd_pick_inter_mode_sb64(VP9_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, int *returnrate, @@ -5329,7 +5294,6 @@ int64_t vp9_rd_pick_inter_mode_sb64(VP9_COMP *cpi, MACROBLOCK *x, return vp9_rd_pick_inter_mode_sb(cpi, x, recon_yoffset, recon_uvoffset, returnrate, returndistortion, BLOCK_64X64); } -#endif // CONFIG_SUPERBLOCKS64 void vp9_pick_mode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, int recon_yoffset, |