for ReadXXXX() image-readers, use the value of pic->use_argb

This is to infer the needed conversion to YUV(A) or RGB(A).

This is useful to avoid some conversion steps between ARGB and YUVA.
For instance, if the input file is a JPEG, we decode to RGB and
convert to YUV right away, without the intermediate step to ARGB.

The only caveat is that cropping/scaling might give slightly different result,
because of YUV420 downsampling. Therefore, we omit this feature
at cwebp level, when -crop or -rescale is used.

Change-Id: I5a3abe5108982f2a4570e841e3d9baffc73f5bee
This commit is contained in:
Pascal Massimino
2015-10-27 22:54:11 +01:00
parent 469ba2cdfd
commit 7861578bd6
11 changed files with 17 additions and 12 deletions

View File

@ -967,7 +967,11 @@ int main(int argc, const char *argv[]) {
goto Error;
}
// Read the input
// Read the input. We need to decide if we prefer ARGB or YUVA
// samples, depending on the expected compression mode (this saves
// some conversion steps).
picture.use_argb = (config.lossless || config.preprocessing > 0 ||
crop || (resize_w | resize_h) > 0);
if (verbose) {
StopwatchReset(&stop_watch);
}