diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-02-09 15:05:53 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-09 15:05:53 +0400 |
commit | bcb15e66f7c46e036be198ecc9ea5f66dc0a537c (patch) | |
tree | a8bc011dd05f8a723a6259d120288bc536be5498 /libavcodec/motion_est.c | |
parent | 55151aa1013b6bf83b82b5535a7d085202fe49b3 (diff) | |
parent | b5b7b75e91e291c810ebd01868a42b53f267a87c (diff) |
Merge commit 'b5b7b75e91e291c810ebd01868a42b53f267a87c'
* commit 'b5b7b75e91e291c810ebd01868a42b53f267a87c':
dsputil: Move get_penalty_factor() to the only place it is used.
Conflicts:
libavcodec/dsputil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/motion_est.c')
-rw-r--r-- | libavcodec/motion_est.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 5fafb1bb13..664c6f7708 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -987,6 +987,30 @@ static inline int check_input_motion(MpegEncContext * s, int mb_x, int mb_y, int return d; } +static inline int get_penalty_factor(int lambda, int lambda2, int type){ + switch(type&0xFF){ + default: + case FF_CMP_SAD: + return lambda>>FF_LAMBDA_SHIFT; + case FF_CMP_DCT: + return (3*lambda)>>(FF_LAMBDA_SHIFT+1); + case FF_CMP_W53: + return (4*lambda)>>(FF_LAMBDA_SHIFT); + case FF_CMP_W97: + return (2*lambda)>>(FF_LAMBDA_SHIFT); + case FF_CMP_SATD: + case FF_CMP_DCT264: + return (2*lambda)>>FF_LAMBDA_SHIFT; + case FF_CMP_RD: + case FF_CMP_PSNR: + case FF_CMP_SSE: + case FF_CMP_NSSE: + return lambda2>>FF_LAMBDA_SHIFT; + case FF_CMP_BIT: + return 1; + } +} + void ff_estimate_p_frame_motion(MpegEncContext * s, int mb_x, int mb_y) { |