diff options
author | agrange <agrange@google.com> | 2010-06-21 13:44:42 +0100 |
---|---|---|
committer | agrange <agrange@google.com> | 2010-06-21 16:50:59 +0100 |
commit | a08df4552a73529e12fdad10bc1b04e5f82fbcb6 (patch) | |
tree | 661eb3f5100d4446b870fe9bfc083f169ff03775 /vp8/encoder | |
parent | daa5d0eb3d837aefdf30c96c11a1af93566d318d (diff) | |
download | libvpx-a08df4552a73529e12fdad10bc1b04e5f82fbcb6.tar libvpx-a08df4552a73529e12fdad10bc1b04e5f82fbcb6.tar.gz libvpx-a08df4552a73529e12fdad10bc1b04e5f82fbcb6.tar.bz2 libvpx-a08df4552a73529e12fdad10bc1b04e5f82fbcb6.zip |
Fix breakout thresh computation for golden & AltRef frames
1. Unavailability of each reference frame type should be tested
independently,
2. Also, only the VP8_GOLD_FLAG needs to be tested before setting
golden frame specific thresholds, and only VP8_ALT_FLAG needs
testing before setting thresholds relevant to the AltRef frame.
(Raised by gbvalor, in response to Issue 47)
Change-Id: I6a06fc2a6592841d85422bc1661e33349bb6c3b8
Diffstat (limited to 'vp8/encoder')
-rw-r--r-- | vp8/encoder/onyx_if.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 14adb4ecc..f3456a733 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -545,7 +545,8 @@ void vp8_set_speed_features(VP8_COMP *cpi) sf->thresh_mult[THR_NEWG ] = INT_MAX; sf->thresh_mult[THR_SPLITG ] = INT_MAX; } - else if (!(cpi->ref_frame_flags & VP8_ALT_FLAG)) + + if (!(cpi->ref_frame_flags & VP8_ALT_FLAG)) { sf->thresh_mult[THR_NEARESTA ] = INT_MAX; sf->thresh_mult[THR_ZEROA ] = INT_MAX; @@ -597,7 +598,8 @@ void vp8_set_speed_features(VP8_COMP *cpi) sf->thresh_mult[THR_NEARMV ] = INT_MAX; sf->thresh_mult[THR_SPLITMV ] = INT_MAX; } - else if (!(cpi->ref_frame_flags & VP8_GOLD_FLAG)) + + if (!(cpi->ref_frame_flags & VP8_GOLD_FLAG)) { sf->thresh_mult[THR_NEARESTG ] = INT_MAX; sf->thresh_mult[THR_ZEROG ] = INT_MAX; @@ -605,7 +607,8 @@ void vp8_set_speed_features(VP8_COMP *cpi) sf->thresh_mult[THR_NEWG ] = INT_MAX; sf->thresh_mult[THR_SPLITG ] = INT_MAX; } - else if (!(cpi->ref_frame_flags & VP8_ALT_FLAG)) + + if (!(cpi->ref_frame_flags & VP8_ALT_FLAG)) { sf->thresh_mult[THR_NEARESTA ] = INT_MAX; sf->thresh_mult[THR_ZEROA ] = INT_MAX; @@ -763,7 +766,7 @@ void vp8_set_speed_features(VP8_COMP *cpi) cpi->mode_check_freq[THR_NEWA] = 4; } - if (cpi->ref_frame_flags & VP8_LAST_FLAG & VP8_GOLD_FLAG) + if (cpi->ref_frame_flags & VP8_GOLD_FLAG) { sf->thresh_mult[THR_NEARESTG ] = 2000; sf->thresh_mult[THR_ZEROG ] = 2000; @@ -771,7 +774,7 @@ void vp8_set_speed_features(VP8_COMP *cpi) sf->thresh_mult[THR_NEWG ] = 4000; } - if (cpi->ref_frame_flags & VP8_LAST_FLAG & VP8_ALT_FLAG) + if (cpi->ref_frame_flags & VP8_ALT_FLAG) { sf->thresh_mult[THR_NEARESTA ] = 2000; sf->thresh_mult[THR_ZEROA ] = 2000; |