| Index: source/libvpx/vp9/encoder/vp9_picklpf.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_picklpf.c (revision 292072)
|
| +++ source/libvpx/vp9/encoder/vp9_picklpf.c (working copy)
|
| @@ -77,7 +77,6 @@
|
| while (filter_step > 0) {
|
| const int filt_high = MIN(filt_mid + filter_step, max_filter_level);
|
| const int filt_low = MAX(filt_mid - filter_step, min_filter_level);
|
| - int filt_err;
|
|
|
| // Bias against raising loop filter in favor of lowering it.
|
| int bias = (best_err >> (15 - (filt_mid / 8))) * filter_step;
|
| @@ -92,17 +91,14 @@
|
| if (filt_direction <= 0 && filt_low != filt_mid) {
|
| // Get Low filter error score
|
| if (ss_err[filt_low] < 0) {
|
| - filt_err = try_filter_frame(sd, cpi, filt_low, partial_frame);
|
| - ss_err[filt_low] = filt_err;
|
| - } else {
|
| - filt_err = ss_err[filt_low];
|
| + ss_err[filt_low] = try_filter_frame(sd, cpi, filt_low, partial_frame);
|
| }
|
| // If value is close to the best so far then bias towards a lower loop
|
| // filter value.
|
| - if ((filt_err - bias) < best_err) {
|
| + if ((ss_err[filt_low] - bias) < best_err) {
|
| // Was it actually better than the previous best?
|
| - if (filt_err < best_err)
|
| - best_err = filt_err;
|
| + if (ss_err[filt_low] < best_err)
|
| + best_err = ss_err[filt_low];
|
|
|
| filt_best = filt_low;
|
| }
|
| @@ -111,14 +107,11 @@
|
| // Now look at filt_high
|
| if (filt_direction >= 0 && filt_high != filt_mid) {
|
| if (ss_err[filt_high] < 0) {
|
| - filt_err = try_filter_frame(sd, cpi, filt_high, partial_frame);
|
| - ss_err[filt_high] = filt_err;
|
| - } else {
|
| - filt_err = ss_err[filt_high];
|
| + ss_err[filt_high] = try_filter_frame(sd, cpi, filt_high, partial_frame);
|
| }
|
| // Was it better than the previous best?
|
| - if (filt_err < (best_err - bias)) {
|
| - best_err = filt_err;
|
| + if (ss_err[filt_high] < (best_err - bias)) {
|
| + best_err = ss_err[filt_high];
|
| filt_best = filt_high;
|
| }
|
| }
|
| @@ -149,7 +142,7 @@
|
| } else if (method >= LPF_PICK_FROM_Q) {
|
| const int min_filter_level = 0;
|
| const int max_filter_level = get_max_filter_level(cpi);
|
| - const int q = vp9_ac_quant(cm->base_qindex, 0);
|
| + const int q = vp9_ac_quant(cm->base_qindex, 0, cm->bit_depth);
|
| // These values were determined by linear fitting the result of the
|
| // searched level, filt_guess = q * 0.316206 + 3.87252
|
| int filt_guess = ROUND_POWER_OF_TWO(q * 20723 + 1015158, 18);
|
|
|