summaryrefslogtreecommitdiff
path: root/libavcodec/motion_est.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2006-10-28 20:00:05 +0000
committerMichael Niedermayer <michaelni@gmx.at>2006-10-28 20:00:05 +0000
commit95da34cd547dc01167350fd681d97e75ef782296 (patch)
tree89a63712f23eb22d4a0861902ea80885be9d45e3 /libavcodec/motion_est.c
parent0a4250bc92c305b01ce465afea094abc349be385 (diff)
CANDIDATE_MB_TYPE_INTER heuristic doesnt work at really low quality where the distortion becomes less relevant then the overhead of intra blocks
Originally committed as revision 6829 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/motion_est.c')
-rw-r--r--libavcodec/motion_est.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 83733a84a6..fb32ec5912 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -1299,7 +1299,8 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
if (vard*2 + 200*256 > varc)
mb_type|= CANDIDATE_MB_TYPE_INTRA;
- if (varc*2 + 200*256 > vard){
+ if (varc*2 + 200*256 > vard || s->qscale > 24){
+// if (varc*2 + 200*256 + 50*(s->lambda2>>FF_LAMBDA_SHIFT) > vard){
mb_type|= CANDIDATE_MB_TYPE_INTER;
c->sub_motion_search(s, &mx, &my, dmin, 0, 0, 0, 16);
if(s->flags&CODEC_FLAG_MV0)