# HG changeset patch # User michael # Date 1135468049 0 # Node ID 83934bcab3cc662b3599d6e378e0e4c76ee1fb86 # Parent 7de97d3ac7eff76f812d6eefd55e6e53f5d5536a hmm did i mess the scaling of these up at some point? anyway, this change decreases bitrate and increase PSNR by ~1.00 on my test file, other files also benefit significantly diff -r 7de97d3ac7ef -r 83934bcab3cc motion_est.c --- a/motion_est.c Sat Dec 24 03:12:07 2005 +0000 +++ b/motion_est.c Sat Dec 24 23:47:29 2005 +0000 @@ -1177,7 +1177,7 @@ pic->mc_mb_var[s->mb_stride * mb_y + mb_x] = vard; c->mc_mb_var_sum_temp += vard; if (vard <= 64 || vard < varc) { //FIXME - c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc); + c->scene_change_score+= ff_sqrt(vard<<8) - ff_sqrt(varc<<8); }else{ c->scene_change_score+= s->qscale; } @@ -1268,7 +1268,7 @@ #endif if(mb_type){ if (vard <= 64 || vard < varc) - c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc); + c->scene_change_score+= ff_sqrt(vard<<8) - ff_sqrt(varc<<8); else c->scene_change_score+= s->qscale; @@ -1289,7 +1289,7 @@ } }else if(c->avctx->mb_decision > FF_MB_DECISION_SIMPLE){ if (vard <= 64 || vard < varc) - c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc); + c->scene_change_score+= ff_sqrt(vard<<8) - ff_sqrt(varc<<8); else c->scene_change_score+= s->qscale; @@ -1395,7 +1395,7 @@ s->current_picture.mb_type[mb_y*s->mb_stride + mb_x]= 0; if (vard <= 64 || vard < varc) { //FIXME - c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc); + c->scene_change_score+= ff_sqrt(vard<<8) - ff_sqrt(varc<<8); }else{ c->scene_change_score+= s->qscale; } @@ -1828,7 +1828,7 @@ c->mb_var_sum_temp += varc;*/ c->mc_mb_var_sum_temp += vard; /* if (vard <= 64 || vard < varc) { - c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc); + c->scene_change_score+= ff_sqrt(vard<<8) - ff_sqrt(varc<<8); }else{ c->scene_change_score+= s->qscale; }*/