ref: 3bc119320103e9afa4033370df8a141c68cbbe60
parent: 1e511a539cad871343bd3b583bf0a3d413098e09
author: Yunqing Wang <[email protected]>
date: Wed Jul 2 08:16:27 EDT 2014
Fix rd threshold overflow issue Moved the threshold adjustment before reference flag checking, which could set the threshold to INT_MAX for disabled reference frame, and cause overflow if the adjustment is done after that. Change-Id: I85e94f8726d5e3ae93f65965aa978721dddc9957
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -4289,6 +4289,10 @@
rd->thresh_mult[THR_NEWA] += 1000;
rd->thresh_mult[THR_NEWG] += 1000;
+ // Adjust threshold only in real time mode, which only use last reference
+ // frame.
+ rd->thresh_mult[THR_NEWMV] += sf->elevate_newmv_thresh;
+
rd->thresh_mult[THR_NEARMV] += 1000;
rd->thresh_mult[THR_NEARA] += 1000;
rd->thresh_mult[THR_COMP_NEARESTLA] += 1000;
@@ -4351,10 +4355,6 @@
rd->thresh_mult[THR_COMP_NEARGA ] = INT_MAX;
rd->thresh_mult[THR_COMP_NEWGA ] = INT_MAX;
}
-
- // Adjust threshold only in real time mode, which only use last reference
- // frame.
- rd->thresh_mult[THR_NEWMV] += sf->elevate_newmv_thresh;
}
void vp9_set_rd_speed_thresholds_sub8x8(VP9_COMP *cpi) {