Output is <.1% difference in size, randomly.
Speed is 30-50% faster (-m 0 -sharp_yuv).
It also gives the exact same output on ARM and x86, because floats
are no longer used.
Change-Id: Id0f0aa748cc4fc0b82bac1fc5ca954775a0a1b7c
this quiets a -Wclobbered warning on const has_alpha under gcc-7 and
brings the variables closer to their first use.
Change-Id: I8a24f275b7ff34a94d47b576bcf276dbedac2121
do_copy is a loop invariant, but based on a variable parameter; it would
only be extracted if Import was inlined.
Change-Id: Id5b4a1a4a83a4f2083444da4934e4c994df65b44
Apply gamma correction to the decoded RGB values.
This handles corner cases where the PNG file doesn't have
a standard 1/2.2 gamma value.
BUG=webp:369
Change-Id: I9907b6e2c458002de7c26d0b9e416278cca33990
for q<=98, we always enable error diffusion.
+ reduce storage 2x by using int8_t
+ make the error diffusion more robust
BUG=webp:340,308
Change-Id: I0608df839ff7b64d6843005a0f81d2577143af9e
* regarding alpha_data_ used for testing.
alpha_data_!=NULL is as close a good test as we'll get.
* regarding filter-strength / sharpness forcing
no practical use (can be done during encode cycles,
for experimentation)
* regarding a 'less-complex' filtering:
no practical use so far. Next version!
Change-Id: If2dfff5818552a7d3e7c23ac08d64fe6d270229c
For large images overflowing the partition0, we re-do a number
of passes but were forgetting to reset the block_count[].
This was leading to incorrect summary.
+ some cosmetic fixes here and there
BUG=webp:355
Change-Id: Ie87158d7f177f8efdca429b146cfcd0e81652d2f
We can't predict if the quality is going to be below the threshold
eventually, so we might as well enable it always.
Change-Id: I30aedecc8c6d4daf159f6ef152697df0206d1e93
This fixes some color smearing due to heavy quantization.
This is only enabled for q <= 30 (cf ERROR_DIFFUSION_QUALITY)
Change-Id: I07e83a4d38461357a32c9e214f7eadc6db73baa9
with WEBP_NEON_OMIT_C_CODE the default _C functions won't be set and
with WEBP_REDUCE_CSP the NEON functions won't be either triggering an
assert for an empty table member.
BUG=chromium:792627
Change-Id: I8d2d430eaa37bb92885b61a3dd39f961924a8def
upsampling_sse41.c and yuv_sse41.c added in:
807b53c4 Implement the upsampling/yuv functions in SSE41
Change-Id: I186cb6f6c296ba26b8e9b42d88da7f58c55710a9
RGB to YUV conversion was not using SSE to finish up the row.
End data is now copied to a buffer big enough to fit in a
SSE register.
(UPSAMPLE_LAST_BLOCK was already using that trick).
Change-Id: Ie539bcbe570a643a774aa88263503c0d2c41890f
if a single text file name is supplied as argument
(e.g.: 'webpmux my_long_list_of_frames.txt'), the command
line arguments are actually parsed from this file.
Tokenizer will remove space, tabs, LF, CR, returns, etc.
+ changed ImgIoUtilReadFile() to return a null-terminated
data, for convenience.
+ misc clean-up in the code
BUG=webp:355
Change-Id: I76796305641d660933de5881763d723006712fa9
---
alpha processing is still required when requesting premultiplied output
since:
1b27bf8b WEBP_REDUCE_SIZE: disable all rescaler code
Change-Id: Id1b03256c4c04b8db31527e60cd31dd20ce6f3ad
- 11/24/2017: version 0.6.1
This is a binary compatible release.
* lossless performance and compression improvements + a new 'cruncher' mode
(-m 6 -q 100)
* ARM performance improvements with clang (15-20% w/ndk r15c, issue #339)
* webp-js: emscripten/webassembly based javascript decoder
* miscellaneous bug & build fixes (issue #329, #332, #343, #353, #360, #361,
#363)
Tool updates / additions:
added webpinfo - prints file format information (issue #330)
gif2webp - loop behavior modified to match Chrome M63+ (crbug.com/649264);
'-loop_compatibility' can be used for the old behavior
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJaHeXcAAoJEPnD1r24IytdGCMQAKr0uEtzi6MOWGX61y7APIst
ZqKwwIppqsY8jFCkcfYcQY4iRDhdIPm4QBxZN1PYCkB9yAEHtlGeoxjdFgckGW90
DAZI2z710KvE0rA5zvqa1zxKMct2lB06AG2cYViD+I6PNzkQ1lI21TnqAC3mJ5qP
t0EN32s8h6jAgbji3u+fANSNeT9iHDuqZaAJmoXVHdjQy4pB5geJrKKHN2FAQzL4
+FG8glM1CK0P5ZWsX1UljiaMdSnsiKcOb2BvVACgGx7OaBAhTOgi9GPGsRiF36Wr
ddiTsbRN/RH+G4njVMq/es3lFWJCbYKozcBTdfthfrRQbgc7ZhhttNV2Qqr5fNTo
qwF1VfuJs/i6c4+Uk7SXcOvwCHemPMXQyKJ7ZjZH8BZBxvvbI+fGO4xkc36F3qN8
cCm5yCFry9O6vIBG243c/y5jNJLEBnIuQgoKO6HPlUzm3qb26s7+o9Ptd4rIs7XD
ikoUmcJoIXUt/brcTpJYqmGgT2Gj5Oflg0XgWdt/9tw7bQ55QStQf/YfMQ0fLtfk
QnG0NtDs9GavT2Q6NnadiAmzw1o0ZJMRiAX+BHPK6di3awWArKQuRiIGZZrlmy7Q
wDsuEHuClKvPof5qsZYHXh10tupYSml0bw0ZNObltCfaiimvr+BeXR4WXND9taA4
xNfJdCIQmoqIObCArbyk
=deXw
-----END PGP SIGNATURE-----
Merge tag 'v0.6.1'
libwebp-0.6.1
- 11/24/2017: version 0.6.1
This is a binary compatible release.
* lossless performance and compression improvements + a new 'cruncher' mode
(-m 6 -q 100)
* ARM performance improvements with clang (15-20% w/ndk r15c, issue #339)
* webp-js: emscripten/webassembly based javascript decoder
* miscellaneous bug & build fixes (issue #329, #332, #343, #353, #360, #361,
#363)
Tool updates / additions:
added webpinfo - prints file format information (issue #330)
gif2webp - loop behavior modified to match Chrome M63+ (crbug.com/649264);
'-loop_compatibility' can be used for the old behavior
* tag 'v0.6.1':
update ChangeLog
WEBP_REDUCE_CSP: restrict colorspace support
update ChangeLog
vwebp: disable double buffering on windows & mac
webp_to_sdl.c: fix file mode
WEBP_REDUCE_SIZE: disable all rescaler code
webpinfo: add -version option
bump version to 0.6.1
update NEWS
README: add webpinfo section
Change-Id: Iab2153fae38da3c99daccdf57fec816e07b7909a
only supported ones are: RGBA/BGRA/rgbA/bgrA (decoder)
as well as: WebPPictureImportRGB/RGBX/RGBA (encoder).
(note: extras/get_disto is affected too)
Change-Id: If6c4f95054ca15759c4e289fb3b4c352b3521c2c
(cherry picked from commit 6de20df02c)