mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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 Originally committed as revision 4771 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
b7c51ebc89
commit
aacb6acc8a
@ -1177,7 +1177,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
|
|||||||
pic->mc_mb_var[s->mb_stride * mb_y + mb_x] = vard;
|
pic->mc_mb_var[s->mb_stride * mb_y + mb_x] = vard;
|
||||||
c->mc_mb_var_sum_temp += vard;
|
c->mc_mb_var_sum_temp += vard;
|
||||||
if (vard <= 64 || vard < varc) { //FIXME
|
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{
|
}else{
|
||||||
c->scene_change_score+= s->qscale;
|
c->scene_change_score+= s->qscale;
|
||||||
}
|
}
|
||||||
@ -1268,7 +1268,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
|
|||||||
#endif
|
#endif
|
||||||
if(mb_type){
|
if(mb_type){
|
||||||
if (vard <= 64 || vard < varc)
|
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
|
else
|
||||||
c->scene_change_score+= s->qscale;
|
c->scene_change_score+= s->qscale;
|
||||||
|
|
||||||
@ -1289,7 +1289,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
|
|||||||
}
|
}
|
||||||
}else if(c->avctx->mb_decision > FF_MB_DECISION_SIMPLE){
|
}else if(c->avctx->mb_decision > FF_MB_DECISION_SIMPLE){
|
||||||
if (vard <= 64 || vard < varc)
|
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
|
else
|
||||||
c->scene_change_score+= s->qscale;
|
c->scene_change_score+= s->qscale;
|
||||||
|
|
||||||
@ -1395,7 +1395,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
|
|||||||
s->current_picture.mb_type[mb_y*s->mb_stride + mb_x]= 0;
|
s->current_picture.mb_type[mb_y*s->mb_stride + mb_x]= 0;
|
||||||
|
|
||||||
if (vard <= 64 || vard < varc) { //FIXME
|
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{
|
}else{
|
||||||
c->scene_change_score+= s->qscale;
|
c->scene_change_score+= s->qscale;
|
||||||
}
|
}
|
||||||
@ -1828,7 +1828,7 @@ void ff_estimate_b_frame_motion(MpegEncContext * s,
|
|||||||
c->mb_var_sum_temp += varc;*/
|
c->mb_var_sum_temp += varc;*/
|
||||||
c->mc_mb_var_sum_temp += vard;
|
c->mc_mb_var_sum_temp += vard;
|
||||||
/* if (vard <= 64 || vard < varc) {
|
/* 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{
|
}else{
|
||||||
c->scene_change_score+= s->qscale;
|
c->scene_change_score+= s->qscale;
|
||||||
}*/
|
}*/
|
||||||
|
Loading…
Reference in New Issue
Block a user