From: Yunqing Wang Date: Thu, 7 Apr 2011 20:57:25 +0000 (-0400) Subject: Define RDCOST only once X-Git-Tag: 1.0_branch~547 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d1abe62d1c5455b32631688d61043f0fd2df44e7;p=profile%2Fivi%2Flibvpx.git Define RDCOST only once Clean up the code. Change-Id: I7db048efa4d972b528d553a7921bc45979621129 --- diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c index ab4071d..d9c678b 100644 --- a/vp8/encoder/encodeframe.c +++ b/vp8/encoder/encodeframe.c @@ -1188,7 +1188,7 @@ int vp8cx_encode_intra_macro_block(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t) (&x->e_mbd); distortion2 = VARIANCE_INVOKE(&cpi->rtcd.variance, get16x16prederror)(x->src.y_buffer, x->src.y_stride, x->e_mbd.predictor, 16, 0x7fffffff); rate2 = x->mbmode_cost[x->e_mbd.frame_type][mode]; - this_rd = RD_ESTIMATE(x->rdmult, x->rddiv, rate2, distortion2); + this_rd = RDCOST(x->rdmult, x->rddiv, rate2, distortion2); if (Error16x16 > this_rd) { diff --git a/vp8/encoder/encodemb.c b/vp8/encoder/encodemb.c index 463dbca..bb11ab0 100644 --- a/vp8/encoder/encodemb.c +++ b/vp8/encoder/encodemb.c @@ -19,6 +19,7 @@ #include "vp8/common/reconintra.h" #include "dct.h" #include "vpx_mem/vpx_mem.h" +#include "rdopt.h" #if CONFIG_RUNTIME_CPU_DETECT #define IF_RTCD(x) (x) @@ -230,7 +231,6 @@ void vp8_stuff_inter16x16(MACROBLOCK *x) } #if !(CONFIG_REALTIME_ONLY) -#define RDCOST(RM,DM,R,D) ( ((128+(R)*(RM)) >> 8) + (DM)*(D) ) #define RDTRUNC(RM,DM,R,D) ( (128+(R)*(RM)) & 0xFF ) typedef struct vp8_token_state vp8_token_state; diff --git a/vp8/encoder/pickinter.c b/vp8/encoder/pickinter.c index 0759e2d..1a32f36 100644 --- a/vp8/encoder/pickinter.c +++ b/vp8/encoder/pickinter.c @@ -194,7 +194,7 @@ static int pick_intra4x4block( rate = mode_costs[mode]; vp8_predict_intra4x4(b, mode, b->predictor); distortion = get_prediction_error(be, b, &rtcd->variance); - this_rd = RD_ESTIMATE(x->rdmult, x->rddiv, rate, distortion); + this_rd = RDCOST(x->rdmult, x->rddiv, rate, distortion); if (this_rd < best_rd) { @@ -252,7 +252,7 @@ int vp8_pick_intra4x4mby_modes(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *mb, int if (i == 16) { *best_dist = distortion; - error = RD_ESTIMATE(mb->rdmult, mb->rddiv, cost, distortion); + error = RDCOST(mb->rdmult, mb->rddiv, cost, distortion); } else { @@ -643,7 +643,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int re } else { - this_rd = RD_ESTIMATE(x->rdmult, x->rddiv, rate2, distortion2); + this_rd = RDCOST(x->rdmult, x->rddiv, rate2, distortion2); if (this_rd < best_intra_rd) { @@ -667,7 +667,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int re (&x->e_mbd); distortion2 = VARIANCE_INVOKE(&cpi->rtcd.variance, get16x16prederror)(x->src.y_buffer, x->src.y_stride, x->e_mbd.predictor, 16, 0x7fffffff); rate2 += x->mbmode_cost[x->e_mbd.frame_type][x->e_mbd.mode_info_context->mbmi.mode]; - this_rd = RD_ESTIMATE(x->rdmult, x->rddiv, rate2, distortion2); + this_rd = RDCOST(x->rdmult, x->rddiv, rate2, distortion2); if (this_rd < best_intra_rd) { @@ -813,7 +813,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int re distortion2 = get_inter_mbpred_error(x, &cpi->fn_ptr[BLOCK_16X16], (unsigned int *)(&sse)); - this_rd = RD_ESTIMATE(x->rdmult, x->rddiv, rate2, distortion2); + this_rd = RDCOST(x->rdmult, x->rddiv, rate2, distortion2); if (cpi->active_map_enabled && x->active_ptr[0] == 0) { diff --git a/vp8/encoder/pickinter.h b/vp8/encoder/pickinter.h index 8fea983..f96fc53 100644 --- a/vp8/encoder/pickinter.h +++ b/vp8/encoder/pickinter.h @@ -14,7 +14,6 @@ #include "vpx_ports/config.h" #include "vp8/common/onyxc_int.h" -#define RD_ESTIMATE(RM,DM,R,D) ( ((128+(R)*(RM)) >> 8) + (DM)*(D) ) extern int vp8_pick_intra4x4mby_modes(const VP8_ENCODER_RTCD *, MACROBLOCK *mb, int *Rate, int *Distortion); extern void vp8_pick_intra_mbuv_mode(MACROBLOCK *mb); extern void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, int *returnrate, int *returndistortion, int *returnintra); diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index 863b6d4..ef9cce9 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -31,7 +31,7 @@ #include "vp8/common/g_common.h" #include "variance.h" #include "mcomp.h" - +#include "rdopt.h" #include "vpx_mem/vpx_mem.h" #include "dct.h" #include "vp8/common/systemdependent.h" @@ -46,13 +46,8 @@ extern void vp8cx_mb_init_quantizer(VP8_COMP *cpi, MACROBLOCK *x); extern void vp8_update_zbin_extra(VP8_COMP *cpi, MACROBLOCK *x); - -#define RDCOST(RM,DM,R,D) ( ((128+(R)*(RM)) >> 8) + (DM)*(D) ) - #define MAXF(a,b) (((a) > (b)) ? (a) : (b)) - - static const int auto_speed_thresh[17] = { 1000, diff --git a/vp8/encoder/rdopt.h b/vp8/encoder/rdopt.h index 1d1be11..1d5f9a3 100644 --- a/vp8/encoder/rdopt.h +++ b/vp8/encoder/rdopt.h @@ -11,6 +11,9 @@ #ifndef __INC_RDOPT_H #define __INC_RDOPT_H + +#define RDCOST(RM,DM,R,D) ( ((128+(R)*(RM)) >> 8) + (DM)*(D) ) + extern void vp8_initialize_rd_consts(VP8_COMP *cpi, int Qvalue); extern int vp8_rd_pick_intra4x4mby_modes(VP8_COMP *cpi, MACROBLOCK *mb, int *rate, int *rate_to, int *distortion, int best_rd); extern int vp8_rd_pick_intra16x16mby_mode(VP8_COMP *cpi, MACROBLOCK *x, int *returnrate, int *rate_to, int *returndistortion);