Update to encoder_breakout_test, for non-rd mode.

Only use non-zero threshold(s) for breakout if
the motion level of the current tested mode is low.

Change-Id: I22aae961cc42371b49d3f648560181cc54708502
This commit is contained in:
Marco 2015-11-03 11:47:23 -08:00
Родитель 255bcf8697
Коммит 9a7785b9d6
1 изменённых файлов: 8 добавлений и 2 удалений

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

@ -779,14 +779,20 @@ static void encode_breakout_test(VP9_COMP *cpi, MACROBLOCK *x,
struct buf_2d yv12_mb[][MAX_MB_PLANE],
int *rate, int64_t *dist) {
MACROBLOCKD *xd = &x->e_mbd;
MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi;
const BLOCK_SIZE uv_size = get_plane_block_size(bsize, &xd->plane[1]);
unsigned int var = var_y, sse = sse_y;
// Skipping threshold for ac.
unsigned int thresh_ac;
// Skipping threshold for dc.
unsigned int thresh_dc;
if (x->encode_breakout > 0) {
int motion_low = 1;
if (mbmi->mv[0].as_mv.row > 64 ||
mbmi->mv[0].as_mv.row < -64 ||
mbmi->mv[0].as_mv.col > 64 ||
mbmi->mv[0].as_mv.col < -64)
motion_low = 0;
if (x->encode_breakout > 0 && motion_low == 1) {
// Set a maximum for threshold to avoid big PSNR loss in low bit rate
// case. Use extreme low threshold for static frames to limit
// skipping.