A few more conversions from 32-bit to 64-bit RD calculations.

Change-Id: Ida01bb8f4b35fde24b0f096329d326833f1fdc7e
This commit is contained in:
Ronald S. Bultje 2012-08-02 11:01:48 -07:00
Родитель a4ad3809e2
Коммит d15b07d8c6
3 изменённых файлов: 11 добавлений и 11 удалений

Просмотреть файл

@ -70,7 +70,7 @@ typedef struct {
int_mv second_best_ref_mv; int_mv second_best_ref_mv;
int rate; int rate;
int distortion; int distortion;
int intra_error; int64_t intra_error;
int best_mode_index; int best_mode_index;
int rddiv; int rddiv;
int rdmult; int rdmult;

Просмотреть файл

@ -1389,7 +1389,7 @@ static int rd_cost_mbuv(MACROBLOCK *mb) {
} }
static int rd_inter16x16_uv(VP8_COMP *cpi, MACROBLOCK *x, int *rate, static int64_t rd_inter16x16_uv(VP8_COMP *cpi, MACROBLOCK *x, int *rate,
int *distortion, int fullpixel) { int *distortion, int fullpixel) {
ENCODEMB_INVOKE(IF_RTCD(&cpi->rtcd.encodemb), submbuv)(x->src_diff, 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); x->src.u_buffer, x->src.v_buffer, x->e_mbd.predictor, x->src.uv_stride);
@ -2688,7 +2688,7 @@ static void store_coding_context(MACROBLOCK *x, int mb_index,
} }
void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndistortion, int *returnintra, int *returnrate, int *returndistortion, int64_t *returnintra,
int64_t *best_single_rd_diff, int64_t *best_comp_rd_diff, int64_t *best_single_rd_diff, int64_t *best_comp_rd_diff,
int64_t *best_hybrid_rd_diff) { int64_t *best_hybrid_rd_diff) {
VP8_COMMON *cm = &cpi->common; VP8_COMMON *cm = &cpi->common;
@ -2718,7 +2718,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
int64_t best_single_rd = INT64_MAX; int64_t best_single_rd = INT64_MAX;
int64_t best_hybrid_rd = INT64_MAX; int64_t best_hybrid_rd = INT64_MAX;
#if CONFIG_PRED_FILTER #if CONFIG_PRED_FILTER
int64_t best_overall_rd = INT_MAX; int64_t best_overall_rd = INT64_MAX;
#endif #endif
int rate2, distortion2; int rate2, distortion2;
int uv_intra_rate, uv_intra_distortion, uv_intra_rate_tokenonly; int uv_intra_rate, uv_intra_distortion, uv_intra_rate_tokenonly;
@ -2727,7 +2727,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
int uv_intra_skippable_8x8 = 0; int uv_intra_skippable_8x8 = 0;
int rate_y, UNINITIALIZED_IS_SAFE(rate_uv); int rate_y, UNINITIALIZED_IS_SAFE(rate_uv);
int distortion_uv; int distortion_uv;
int best_yrd = INT_MAX; int64_t best_yrd = INT64_MAX;
#if CONFIG_PRED_FILTER #if CONFIG_PRED_FILTER
int best_filter_state; int best_filter_state;
#endif #endif
@ -2818,7 +2818,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
v_buffer[ALTREF_FRAME] = alt_yv12->v_buffer + recon_uvoffset; v_buffer[ALTREF_FRAME] = alt_yv12->v_buffer + recon_uvoffset;
} }
*returnintra = INT_MAX; *returnintra = INT64_MAX;
x->skip = 0; x->skip = 0;
@ -3831,15 +3831,15 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
x->partition_info->bmi[15].second_mv.as_int; x->partition_info->bmi[15].second_mv.as_int;
} }
if (best_single_rd == INT_MAX) if (best_single_rd == INT64_MAX)
*best_single_rd_diff = INT_MIN; *best_single_rd_diff = INT_MIN;
else else
*best_single_rd_diff = best_rd - best_single_rd; *best_single_rd_diff = best_rd - best_single_rd;
if (best_comp_rd == INT_MAX) if (best_comp_rd == INT64_MAX)
*best_comp_rd_diff = INT_MIN; *best_comp_rd_diff = INT_MIN;
else else
*best_comp_rd_diff = best_rd - best_comp_rd; *best_comp_rd_diff = best_rd - best_comp_rd;
if (best_hybrid_rd == INT_MAX) if (best_hybrid_rd == INT64_MAX)
*best_hybrid_rd_diff = INT_MIN; *best_hybrid_rd_diff = INT_MIN;
else else
*best_hybrid_rd_diff = best_rd - best_hybrid_rd; *best_hybrid_rd_diff = best_rd - best_hybrid_rd;
@ -3968,7 +3968,7 @@ int vp8cx_pick_mode_inter_macroblock
MACROBLOCKD *const xd = &x->e_mbd; MACROBLOCKD *const xd = &x->e_mbd;
int rate; int rate;
int distortion; int distortion;
int intra_error = 0; int64_t intra_error = 0;
unsigned char *segment_id = &xd->mode_info_context->mbmi.segment_id; unsigned char *segment_id = &xd->mode_info_context->mbmi.segment_id;
if (xd->segmentation_enabled) if (xd->segmentation_enabled)

Просмотреть файл

@ -17,7 +17,7 @@
extern void vp8_initialize_rd_consts(VP8_COMP *cpi, int Qvalue); extern void vp8_initialize_rd_consts(VP8_COMP *cpi, int Qvalue);
extern void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, extern void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndistortion, int *returnintra, int *returnrate, int *returndistortion, int64_t *returnintra,
int64_t *best_single_rd_diff, int64_t *best_comp_rd_diff, int64_t *best_hybrid_rd_diff); int64_t *best_single_rd_diff, int64_t *best_comp_rd_diff, int64_t *best_hybrid_rd_diff);
extern int vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x); extern int vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x);