diff --git a/src/enc/alpha.c b/src/enc/alpha.c index f1e32f44..b565cc5f 100644 --- a/src/enc/alpha.c +++ b/src/enc/alpha.c @@ -80,7 +80,7 @@ static int EncodeLossless(const uint8_t* const data, int width, int height, config.lossless = 1; config.method = effort_level; // impact is very small // Set a moderate default quality setting for alpha. - config.quality = 6.f * effort_level; + config.quality = 5.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 65458fdd..cf027875 100644 --- a/src/enc/backward_references.c +++ b/src/enc/backward_references.c @@ -555,10 +555,10 @@ static int BackwardReferencesHashChainDistanceOnly( } // 2) Add to the hash_chain (but cannot add the last pixel) { - const int last = (len < pix_count - 1 - i) ? len - : pix_count - 1 - i; - for (k = 0; k < last; ++k) { - HashChainInsert(hash_chain, &argb[i + k], i + k); + const int last = (len + i < pix_count - 1) ? len + i + : pix_count - 1; + for (k = i; k < last; ++k) { + HashChainInsert(hash_chain, &argb[k], k); } } // 3) jump. diff --git a/src/enc/histogram.c b/src/enc/histogram.c index c5b84bf7..bc3d3e51 100644 --- a/src/enc/histogram.c +++ b/src/enc/histogram.c @@ -390,17 +390,12 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, // Heuristic params for HistogramCombine(). const int num_tries_no_success = 8 + (quality >> 1); const int iter_mult = (quality < 27) ? 1 : 1 + ((quality - 27) >> 4); - int num_pairs = (quality >> 1); + const int num_pairs = (quality < 25) ? 10 : (5 * quality) >> 3; VP8LHistogramSet* const image_out = VP8LAllocateHistogramSet(histo_image_raw_size, cache_bits); if (image_out == NULL) return 0; - if (num_pairs > (histo_image_raw_size >> 2)) { - num_pairs = histo_image_raw_size >> 2; - } - num_pairs += 10; - // Build histogram image. HistogramBuildImage(xsize, histo_bits, refs, image_out); // Collapse similar histograms.