Tune Lossless compression for lower qualities.

This is required for WebP lossy+Alpha images, where Alpha channel is taking
60-70% of the compression (CPU) cycles.

Also evaluated on 1000 PNG corpus and overall compression speed
is 15-40% better for lossy (PNG+Alpha) compression.
The pure lossless compression numbers are almost same (or little
better) with this change.

Change-Id: I9e5ae7372ed6227a9a5b64cd9cff84c747195a57
This commit is contained in:
Vikas Arora
2013-03-05 22:05:00 +00:00
committed by James Zern
parent 19eb012c55
commit 0478b5d214
3 changed files with 6 additions and 11 deletions

View File

@ -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.