diff --git a/src/enc/alpha.c b/src/enc/alpha.c index 5ba04149..b6168cdf 100644 --- a/src/enc/alpha.c +++ b/src/enc/alpha.c @@ -81,8 +81,10 @@ static int EncodeLossless(const uint8_t* const data, int width, int height, WebPConfigInit(&config); config.lossless = 1; config.method = effort_level; // impact is very small - // Set a moderate default quality setting for alpha. - config.quality = 10.f * effort_level; + // Set a low default quality for encoding alpha. Ensure that Alpha quality at + // lower methods (3 and below) is less than the threshold for triggering + // costly 'BackwardReferencesTraceBackwards'. + config.quality = 8.f * effort_level; assert(config.quality >= 0 && config.quality <= 100.f); ok = VP8LBitWriterInit(&tmp_bw, (width * height) >> 3); diff --git a/src/enc/backward_references.c b/src/enc/backward_references.c index db4f430d..e40182e0 100644 --- a/src/enc/backward_references.c +++ b/src/enc/backward_references.c @@ -780,8 +780,8 @@ int VP8LGetBackwardReferences(int width, int height, // Choose appropriate backward reference. if (lz77_is_useful) { - // TraceBackwards is costly. Don't execute it at lower quality (q <= 10). - const int try_lz77_trace_backwards = (quality > 10); + // TraceBackwards is costly. Don't execute it at lower quality. + const int try_lz77_trace_backwards = (quality >= 25); *best = refs_lz77; // default guess: lz77 is better VP8LClearBackwardRefs(&refs_rle); if (try_lz77_trace_backwards) {