From 94d4fee08f1e2bdd6b4b493635f7281491280220 Mon Sep 17 00:00:00 2001 From: Scott LaVarnway Date: Mon, 14 Feb 2011 16:34:33 -0500 Subject: [PATCH] Improved vp8_rd_pick_intra_mbuv_mode Eliminated unnecessary calculations. Very small change to performance. Change-Id: Ib7213d43c64e36955177c4d47950ff472266f822 --- vp8/encoder/encodeintra.c | 14 -------------- vp8/encoder/encodeintra.h | 1 - vp8/encoder/rdopt.c | 16 ++++++---------- 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c index 73a0db0..e016fa3 100644 --- a/vp8/encoder/encodeintra.c +++ b/vp8/encoder/encodeintra.c @@ -153,17 +153,3 @@ void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) vp8_recon_intra_mbuv(IF_RTCD(&rtcd->common->recon), &x->e_mbd); } -void vp8_encode_intra16x16mbuvrd(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) -{ - vp8_build_intra_predictors_mbuv(&x->e_mbd); - - ENCODEMB_INVOKE(&rtcd->encodemb, submbuv)(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->e_mbd.predictor, x->src.uv_stride); - - vp8_transform_mbuv(x); - - vp8_quantize_mbuv(x); - - vp8_inverse_transform_mbuv(IF_RTCD(&rtcd->common->idct), &x->e_mbd); - - vp8_recon_intra_mbuv(IF_RTCD(&rtcd->common->recon), &x->e_mbd); -} diff --git a/vp8/encoder/encodeintra.h b/vp8/encoder/encodeintra.h index c0247b0..b8b80f1 100644 --- a/vp8/encoder/encodeintra.h +++ b/vp8/encoder/encodeintra.h @@ -19,6 +19,5 @@ void vp8_encode_intra4x4mby(const VP8_ENCODER_RTCD *, MACROBLOCK *mb); void vp8_encode_intra4x4block(const VP8_ENCODER_RTCD *, MACROBLOCK *x, BLOCK *be, BLOCKD *b, int best_mode); void vp8_update_mode_context(int *abmode, int *lbmode, int i, int best_mode); void vp8_encode_intra4x4block_rd(const VP8_ENCODER_RTCD *, MACROBLOCK *x, BLOCK *be, BLOCKD *b, int best_mode); -void vp8_encode_intra16x16mbuvrd(const VP8_ENCODER_RTCD *, MACROBLOCK *x); #endif diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index 0d01d64..3449e45 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -813,15 +813,6 @@ static int rd_cost_mbuv(MACROBLOCK *mb) } -unsigned int vp8_get_mbuvrecon_error(const vp8_variance_rtcd_vtable_t *rtcd, const MACROBLOCK *x) // sum of squares -{ - unsigned int sse0, sse1; - int sum0, sum1; - VARIANCE_INVOKE(rtcd, get8x8var)(x->src.u_buffer, x->src.uv_stride, x->e_mbd.dst.u_buffer, x->e_mbd.dst.uv_stride, &sse0, &sum0); - VARIANCE_INVOKE(rtcd, get8x8var)(x->src.v_buffer, x->src.uv_stride, x->e_mbd.dst.v_buffer, x->e_mbd.dst.uv_stride, &sse1, &sum1); - return (sse0 + sse1); -} - static int vp8_rd_inter_uv(VP8_COMP *cpi, MACROBLOCK *x, int *rate, int *distortion, int fullpixel) { vp8_build_uvmvs(&x->e_mbd, fullpixel); @@ -849,7 +840,12 @@ int vp8_rd_pick_intra_mbuv_mode(VP8_COMP *cpi, MACROBLOCK *x, int *rate, int *ra int this_rd; x->e_mbd.mode_info_context->mbmi.uv_mode = mode; - vp8_encode_intra16x16mbuvrd(IF_RTCD(&cpi->rtcd), x); + vp8_build_intra_predictors_mbuv(&x->e_mbd); + ENCODEMB_INVOKE(IF_RTCD(&cpi->rtcd.encodemb), submbuv)(x->src_diff, + x->src.u_buffer, x->src.v_buffer, x->e_mbd.predictor, + x->src.uv_stride); + vp8_transform_mbuv(x); + vp8_quantize_mbuv(x); rate_to = rd_cost_mbuv(x); rate = rate_to + x->intra_uv_mode_cost[x->e_mbd.frame_type][x->e_mbd.mode_info_context->mbmi.uv_mode]; -- 2.7.4