Index: source/libvpx/vp9/encoder/vp9_rd.c |
diff --git a/source/libvpx/vp9/encoder/vp9_rd.c b/source/libvpx/vp9/encoder/vp9_rd.c |
index 3f6de42e3c6a18ec5e33dec55806fa5e10625455..fdee1536fc7798ddceef265e731c9887fbd53005 100644 |
--- a/source/libvpx/vp9/encoder/vp9_rd.c |
+++ b/source/libvpx/vp9/encoder/vp9_rd.c |
@@ -15,7 +15,9 @@ |
#include "./vp9_rtcd.h" |
#include "vpx_mem/vpx_mem.h" |
+#include "vpx_ports/bitops.h" |
#include "vpx_ports/mem.h" |
+#include "vpx_ports/system_state.h" |
#include "vp9/common/vp9_common.h" |
#include "vp9/common/vp9_entropy.h" |
@@ -26,7 +28,6 @@ |
#include "vp9/common/vp9_reconinter.h" |
#include "vp9/common/vp9_reconintra.h" |
#include "vp9/common/vp9_seg_common.h" |
-#include "vp9/common/vp9_systemdependent.h" |
#include "vp9/encoder/vp9_cost.h" |
#include "vp9/encoder/vp9_encodemb.h" |
@@ -171,11 +172,13 @@ int vp9_compute_rd_mult(const VP9_COMP *cpi, int qindex) { |
if (cpi->oxcf.pass == 2 && (cpi->common.frame_type != KEY_FRAME)) { |
const GF_GROUP *const gf_group = &cpi->twopass.gf_group; |
const FRAME_UPDATE_TYPE frame_type = gf_group->update_type[gf_group->index]; |
- const int boost_index = MIN(15, (cpi->rc.gfu_boost / 100)); |
+ const int boost_index = VPXMIN(15, (cpi->rc.gfu_boost / 100)); |
rdmult = (rdmult * rd_frame_type_factor[frame_type]) >> 7; |
rdmult += ((rdmult * rd_boost_factor[boost_index]) >> 7); |
} |
+ if (rdmult < 1) |
+ rdmult = 1; |
return (int)rdmult; |
} |
@@ -201,7 +204,7 @@ static int compute_rd_thresh_factor(int qindex, vpx_bit_depth_t bit_depth) { |
q = vp9_dc_quant(qindex, 0, VPX_BITS_8) / 4.0; |
#endif // CONFIG_VP9_HIGHBITDEPTH |
// TODO(debargha): Adjust the function below. |
- return MAX((int)(pow(q, RD_THRESH_POW) * 5.12), 8); |
+ return VPXMAX((int)(pow(q, RD_THRESH_POW) * 5.12), 8); |
} |
void vp9_initialize_me_consts(VP9_COMP *cpi, MACROBLOCK *x, int qindex) { |
@@ -268,7 +271,7 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi) { |
RD_OPT *const rd = &cpi->rd; |
int i; |
- vp9_clear_system_state(); |
+ vpx_clear_system_state(); |
rd->RDDIV = RDDIV_BITS; // In bits (to multiply D by 128). |
rd->RDMULT = vp9_compute_rd_mult(cpi, cm->base_qindex + cm->y_dc_delta_q); |
@@ -401,7 +404,7 @@ void vp9_model_rd_from_var_lapndz(unsigned int var, unsigned int n_log2, |
static const uint32_t MAX_XSQ_Q10 = 245727; |
const uint64_t xsq_q10_64 = |
(((uint64_t)qstep * qstep << (n_log2 + 10)) + (var >> 1)) / var; |
- const int xsq_q10 = (int)MIN(xsq_q10_64, MAX_XSQ_Q10); |
+ const int xsq_q10 = (int)VPXMIN(xsq_q10_64, MAX_XSQ_Q10); |
model_rd_norm(xsq_q10, &r_q10, &d_q10); |
*rate = ((r_q10 << n_log2) + 2) >> 2; |
*dist = (var * (int64_t)d_q10 + 512) >> 10; |
@@ -482,7 +485,7 @@ void vp9_mv_pred(VP9_COMP *cpi, MACROBLOCK *x, |
continue; |
fp_row = (this_mv->row + 3 + (this_mv->row >= 0)) >> 3; |
fp_col = (this_mv->col + 3 + (this_mv->col >= 0)) >> 3; |
- max_mv = MAX(max_mv, MAX(abs(this_mv->row), abs(this_mv->col)) >> 3); |
+ max_mv = VPXMAX(max_mv, VPXMAX(abs(this_mv->row), abs(this_mv->col)) >> 3); |
if (fp_row ==0 && fp_col == 0 && zero_seen) |
continue; |
@@ -626,16 +629,15 @@ void vp9_update_rd_thresh_fact(int (*factor_buf)[MAX_MODES], int rd_thresh, |
const int top_mode = bsize < BLOCK_8X8 ? MAX_REFS : MAX_MODES; |
int mode; |
for (mode = 0; mode < top_mode; ++mode) { |
- const BLOCK_SIZE min_size = MAX(bsize - 1, BLOCK_4X4); |
- const BLOCK_SIZE max_size = MIN(bsize + 2, BLOCK_64X64); |
+ const BLOCK_SIZE min_size = VPXMAX(bsize - 1, BLOCK_4X4); |
+ const BLOCK_SIZE max_size = VPXMIN(bsize + 2, BLOCK_64X64); |
BLOCK_SIZE bs; |
for (bs = min_size; bs <= max_size; ++bs) { |
int *const fact = &factor_buf[bs][mode]; |
if (mode == best_mode_index) { |
*fact -= (*fact >> 4); |
} else { |
- *fact = MIN(*fact + RD_THRESH_INC, |
- rd_thresh * RD_THRESH_MAX_FACT); |
+ *fact = VPXMIN(*fact + RD_THRESH_INC, rd_thresh * RD_THRESH_MAX_FACT); |
} |
} |
} |