diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c index ab4071d35a2c9d63a28b1205565c39154b01d401..d9c678b84d5afc47bf4d287f5a8263a45094600d 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 463dbcaa92c72bd7c499a2643347c5f4bcfd8899..bb11ab072de73d3b3ca705e8a25278189bb80505 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 0759e2d5bb9308d154b37bd04521662c2aae9c15..1a32f36c9478fb3d36616f0ecac04cc0586c52cf 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 8fea983973fbf0d39033517b3f3f98284deac5c2..f96fc5376a14081b127312db32851fb6f8d7dffc 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 863b6d419882c1dd4e1c1862ffa11839a751ad7a..ef9cce93fbe12bcac112db87dac0563f9a248e72 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 1d1be11a4744a8aeca93248ee7d8ba930ed56405..1d5f9a3a807a0ba52a8b443efb6d453232a4ca69 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);