Commit Graph

4414 Commits

Author SHA1 Message Date
Johann Koenig
22bbb24ea8 Merge "IsFlat: return int" 2018-11-18 16:31:47 +00:00
James Zern
8b3fb2389b libwebp-1.0.1
- 11/2/2018: version 1.0.1
   This is a binary compatible release.
   * lossless encoder speedups
   * big-endian fix for alpha decoding (issue #393)
   * gif2webp fix for loop count=65535 transcode (issue #382)
   * further security related hardening in libwebp & libwebpmux
     (issues #383, #385, #386, #387, #388, #391)
     (oss-fuzz #9099, #9100, #9105, #9106, #9111, #9112, #9119, #9123, #9170,
               #9178, #9179, #9183, #9186, #9191, #9364, #9417, #9496, #10349,
               #10423, #10634, #10700, #10838, #10922, #11021, #11088, #11152)
   * miscellaneous bug & build fixes (issues #381, #394, #396, #397, #400)
 -----BEGIN PGP SIGNATURE-----
 
 iQIyBAABCgAdFiEEaw5rcJdt4wPt8vYB+cPWvbgjK10FAlvvvl4ACgkQ+cPWvbgj
 K10y5A/3WYow3QOJN1yzO+bZV2GZRvnGS8/j/vm2D5jTz4nGoQ93vvzz1uis02W0
 Jbu2faPc2LS6UVwjuK6YPUR9WrEXtf42u5T3kiZxzIqzd0ThE7WqmfeJ2sQLJsHj
 b8Dnv4dVM/Ifk/00yGa2Iz/Cj811A3lB2HUm02swQrQQI1bNA5jLQex43AjQlRtn
 cSAS6JtZnaQV3BW4pvaGzpJkgeBaNucEqPqKb6E3lTWjevP3Cu4lg5t0rchkDFl8
 VNq94EKvxwLS6nBw8DT+oDqIJvCUCU/Gwdfh01l1uKUUIU6ap0IZD05+GEcZOu8V
 iJe+3bXKdDMpxg9rDCsYk0uhfOpwP7YqMzPTbq7yAaU0fnYMJDP4CaKY4pIfPJs3
 2b6PYk3YugaEG8Jex0a+ZhguEWcvR+AMSDtmz0GSDMq4NyPj12NSo+UTSCDu4wNP
 NmeZS1CG9/Rlfa6La3yfupsaYLet4eCnOW+4nuDqhx6h2VWWeR/xfLppXlxQxOHN
 AXGd2qsz6k1LYGoDZMd75ckVeGpzV259EZInfDdCHSiGrtOqVo8pMtWz3ADJBSY6
 sqE3ch2T/W7vHfp0UKxzpYKRXUcXW5gH9E1djl1AOr68LZCBeXGqpUAhFJ8BKeS3
 y7kl+RL+BuiRRUt7eGzbmh7oEyVdjguvv0vu3VmRekMcKkTYcw==
 =h6K3
 -----END PGP SIGNATURE-----

Merge tag 'v1.0.1'

libwebp-1.0.1

- 11/2/2018: version 1.0.1
  This is a binary compatible release.
  * lossless encoder speedups
  * big-endian fix for alpha decoding (issue #393)
  * gif2webp fix for loop count=65535 transcode (issue #382)
  * further security related hardening in libwebp & libwebpmux
    (issues #383, #385, #386, #387, #388, #391)
    (oss-fuzz #9099, #9100, #9105, #9106, #9111, #9112, #9119, #9123, #9170,
              #9178, #9179, #9183, #9186, #9191, #9364, #9417, #9496, #10349,
              #10423, #10634, #10700, #10838, #10922, #11021, #11088, #11152)
  * miscellaneous bug & build fixes (issues #381, #394, #396, #397, #400)

* tag 'v1.0.1':
  update ChangeLog
  Fix pair update in stochastic entropy merging.
  README.mux: add a reference to the AnimDecoder API
  CMake: fix webp_js compilation
  update NEWS
  bump version to 1.0.1
  Speed-up: Make sure we only initialize histograms when needed.
  update AUTHORS
  img2webp: add help note about arguments from a file
  Speedups for empty histograms.
  Split HistogramAdd to only have the high level logic in C.
  Fix compilation on windows and clang-cl+ninja.

Change-Id: I4b58eee66b25da184ac4bf4c70e43e43682b3a23
2018-11-16 23:14:29 -08:00
Johann
f435de9575 IsFlat: return int
IsFlat is a boolean function. Don't use a specialized return type.

Change-Id: I070395082023ceb50251c44f5f4253b90394710c
2018-11-16 11:22:41 -05:00
James Zern
41521aed47 utils.h: only define WEBP_NEED_LOG_TABLE_8BIT when needed
Change-Id: I6ba7a4288034decc5235f07013bd7877545a8b61
2018-11-16 01:45:08 -08:00
Johann
9f4d4a3f49 neon: GetResidualCost
Direct copy of sse2. Slight improvement because neon has
abs().

flower.ppm had minimal improvement. Somewhat expected because
GetResidualCost_C is only ~3.6%

mug.ppm had a better improvement because GetResidualCost_C is
almost 9%.

C    2.150
NEON 2.130

BUG=b/118740850

Change-Id: Ibc0dd97a81596635f5599cf568205974b4fd2597
2018-11-14 11:46:58 -08:00
Johann
0fd7514b55 neon: SetResidualCoeffs
Much faster with aarch64. Still somewhat faster without vmaxv.

C: 3.700s
ArmV7: 3.675
aarch64: 3.600

BUG=b/118740850

Change-Id: I3be852da89633eca4bddce443c87f5e4a2f55868
2018-11-14 11:46:40 -08:00
Vincent Rabaud
f95a996c64 Simpler histogram clustering.
Instead of re-organizing the list of histograms, set
the unused ones to NULL.

Change-Id: I8d25e1bb8f78ae9486ff358cc647ba1821cd5fcf
2018-11-11 10:59:34 +01:00
James Zern
e85d3313d6 update ChangeLog
Change-Id: I39043d4986664312947a0668cb1b7bfbcf5a2477
2018-11-08 15:29:51 -08:00
Vincent Rabaud
fa8210e43c Fix pair update in stochastic entropy merging.
The old code simply did not make sense.
The effect is that the pair would be popped from the
queue no matter what; as the queue is small, it does
not matter that much on the results.
But it will matter for a later CL.

Change-Id: If50c9fa9d7f3ac3c48bb7336d81479287d4944c4
(cherry picked from commit 485ff86fbb)
2018-11-07 23:07:24 -08:00
Johann
fd198f7370 add codereview.settings
Allow uploading changes with 'git cl upload'

Change-Id: I5c96ff42a00656978980624a863f78fb10de033b
2018-11-07 19:12:35 -08:00
James Zern
825389acba README.mux: add a reference to the AnimDecoder API
this balances the AnimEncoder section

Change-Id: I205c8d0bd6104509e06737dcbf9a7651fd4bc6a3
2018-11-06 18:47:38 -08:00
skal
3be698c3d3 CMake: fix webp_js compilation
Stick to the strict necessary for running webp_js,
and avoid building sub-lib or examples with heavy dependencies.

Change-Id: Ife4170a7839fb3201b2cf158d98d17bebe10008f
(cherry picked from commit 4cd0582d50)
2018-11-06 17:20:43 -08:00
Vincent Rabaud
485ff86fbb Fix pair update in stochastic entropy merging.
The old code simply did not make sense.
The effect is that the pair would be popped from the
queue no matter what; as the queue is small, it does
not matter that much on the results.
But it will matter for a later CL.

Change-Id: If50c9fa9d7f3ac3c48bb7336d81479287d4944c4
2018-11-07 00:33:14 +01:00
skal
4cd0582d50 CMake: fix webp_js compilation
Stick to the strict necessary for running webp_js,
and avoid building sub-lib or examples with heavy dependencies.

Change-Id: Ife4170a7839fb3201b2cf158d98d17bebe10008f
2018-11-06 16:07:05 +01:00
James Zern
4cbb4caf49 update NEWS
Change-Id: I4a97342d47247724f12da9d8a7d8f22047c2a179
2018-11-03 11:27:07 -07:00
James Zern
f5a5918d13 bump version to 1.0.1
libwebp{,decoder} - 1.0.1
libwebp libtool - 7.3.0
libwebpdecoder libtool - 3.3.0

mux - 1.0.1
libtool - 3.3.0

demux - 1.0.1
libtool - 2.5.0

Change-Id: I4310caed27d1e53cc8c1b534571e3d653ad434c8
2018-11-02 20:36:14 -07:00
Vincent Rabaud
d61385db35 Speed-up: Make sure we only initialize histograms when needed.
Also, histograms in a HistogramSet can be initialized all
at once.

Change-Id: Ibbfa6034dce58dca8bb9113487e2ae507222ce7d
(cherry picked from commit 6752904b2f)
2018-11-02 17:40:00 -07:00
Vincent Rabaud
6752904b2f Speed-up: Make sure we only initialize histograms when needed.
Also, histograms in a HistogramSet can be initialized all
at once.

Change-Id: Ibbfa6034dce58dca8bb9113487e2ae507222ce7d
2018-10-31 11:54:09 +00:00
James Zern
0c57031629 update AUTHORS
Change-Id: Ie7731464088d985a7398401c8ef45bd26c536fe5
2018-10-27 12:40:29 -07:00
James Zern
301a2ddae5 img2webp: add help note about arguments from a file
this was added in:
94a8377b extract the command-line parsing helpers to example_util

and matches the help in webpmux

https://groups.google.com/a/webmproject.org/d/msg/webp-discuss/DJs-w_-Id6o/svFXs2CqBgAJ

BUG=webp:101

Change-Id: I2944d1fb1ed3030c356960be2a6c8de15a79311f
(cherry picked from commit b6284d8247)
2018-10-26 22:53:15 -07:00
Vincent Rabaud
f0abab9217 Speedups for empty histograms.
When histograms are empty, it is easy to add them.
They should also not be considered when merging histograms
(it is a waste of CPU).
This does not change the compression performance,
just the speed.

Change-Id: I42c721ca0f9c5ea067e73b792aa3db6d5e71d01f
(cherry picked from commit decf6f6b87)
2018-10-26 22:53:05 -07:00
Vincent Rabaud
f2dfd92557 Split HistogramAdd to only have the high level logic in C.
Change-Id: Ic9eaebf7128ca0215b49d2a13bde1f5b94a28061
(cherry picked from commit dea3e89983)
2018-10-26 22:52:50 -07:00
Vincent Rabaud
06b7bc7dec Fix compilation on windows and clang-cl+ninja.
Change-Id: I4e468519e1bcb99da5057f3b6646b077a1e0e7f1
(cherry picked from commit a376e7b96a)
2018-10-26 22:52:35 -07:00
James Zern
b6284d8247 img2webp: add help note about arguments from a file
this was added in:
94a8377b extract the command-line parsing helpers to example_util

and matches the help in webpmux

https://groups.google.com/a/webmproject.org/d/msg/webp-discuss/DJs-w_-Id6o/svFXs2CqBgAJ

BUG=webp:101

Change-Id: I2944d1fb1ed3030c356960be2a6c8de15a79311f
2018-10-26 06:16:56 +00:00
Vincent Rabaud
decf6f6b87 Speedups for empty histograms.
When histograms are empty, it is easy to add them.
They should also not be considered when merging histograms
(it is a waste of CPU).
This does not change the compression performance,
just the speed.

Change-Id: I42c721ca0f9c5ea067e73b792aa3db6d5e71d01f
2018-10-20 13:23:50 +02:00
Vincent Rabaud
dea3e89983 Split HistogramAdd to only have the high level logic in C.
Change-Id: Ic9eaebf7128ca0215b49d2a13bde1f5b94a28061
2018-10-19 14:03:28 +02:00
Vincent Rabaud
632798ae6f Merge "Fix compilation on windows and clang-cl+ninja." 2018-10-17 13:02:19 +00:00
Yannis Guyon
dc1a9518bc Merge "libwebp: Unicode command tools on Windows" 2018-10-17 11:55:49 +00:00
Yannis Guyon
9cf9841b5e libwebp: Unicode command tools on Windows
Define macros in examples/unicode.h to use Unicode argv
on Windows. Keep char everywhere on Unix since it handles
UTF-8 without any change.

Impact:
 - All fopen () and SHCreateStreamOnFile(),
 - All fprintf() printing file paths,
 - All strcmp() used with "-",
 - File path parsing,
 - Gif reading.

Concerned executables from examples/ and extras/:
  anim_diff, anim_dump, vwebp, vwebp_sdl,
  cwebp, dwebp, gif2webp, img2webp,
  webpmux, webpinfo, webp_quality, get_disto

When compiled on Windows with Unicode enabled, webpmux and
img2webp will not work when used with an argument file and
will print "Reading arguments from a file is a feature
unavailable with Unicode binaries."

BUG=webp:398

Change-Id: Ic55d222a3ce1a715f9c4cce57ecbe2705d5ce317
2018-10-17 13:19:40 +02:00
Pascal Massimino
981794958b remove some minor TODOs
if we didn't do these, they were probably non vital.

Change-Id: I952d2351f5c71934247d4d6631cfdfe070f76bf5
2018-10-17 10:48:19 +02:00
Vincent Rabaud
a376e7b96a Fix compilation on windows and clang-cl+ninja.
Change-Id: I4e468519e1bcb99da5057f3b6646b077a1e0e7f1
2018-10-16 16:20:47 +02:00
Vincent Rabaud
cbf82cc04d Remove AVX2 files.
There is only enc_avx2.c and we never managed to get
something fast enough.

Change-Id: I7465b5d8ccf47d9aa612173b8f80f96060cdb366
2018-10-16 14:12:03 +02:00
Pascal Massimino
5030e90278 Merge "TIFF decoder: remove unused KINV definition" 2018-10-15 18:16:24 +00:00
Vincent Rabaud
ac5433118a Remove a few more useless #defines
Change-Id: I211e9bcb1c37d0ebc108896f109b23ce915e22b4
2018-10-15 16:26:10 +02:00
Pascal Massimino
123d330699 TIFF decoder: remove unused KINV definition
+ some #undef

Change-Id: Ib8b8357ad3a6458ca421a59d9ad625656dd54afe
2018-10-14 08:24:43 +02:00
James Zern
ef1094b0fe Merge "- install pkg-config files during the CMake build" 2018-10-10 03:25:02 +00:00
Yannis Guyon
b911fbc980 libwebp: Remove duplicate GIFDisplayError in anim_util
GIFDisplayError() is already defined exactly the same way
in gifdec. Remove it from anim_util.c and add dependency.

Change-Id: Iec01b41c44d0b61b3a279b8cd754d9917d64f804
2018-10-09 17:29:54 +02:00
Konstantin Ivlev
eee00b6627 - install pkg-config files during the CMake build
Signed-off-by: Konstantin Ivlev <tomskside@gmail.com>
Change-Id: I88b1a22b19dd9ecdb2ae38082fa9580dbc66d98c
2018-10-08 16:02:12 -07:00
Vincent Rabaud
ac3ec8c91d Merge "Clean-up the common sources in dsp." 2018-10-08 15:19:40 +00:00
Vincent Rabaud
3e13da7b4f Clean-up the common sources in dsp.
Change-Id: I1b995e6517e8437127a433dccbb5b2db63e7c3a3
2018-10-08 15:00:01 +02:00
Yannis Guyon
5c395f1d71 libwebp: cmake-format all
https://github.com/cheshirekow/cmake_format
A complete row of # is replaced by only one,
so add a space after the first one to keep it.

Change-Id: I367749353a555c89c717f1939220699e43ecab2c
2018-10-05 14:23:06 +02:00
Yannis Guyon
e7a697297b libwebp: Add extras targets in CMakeLists.txt
To be compiled with Visual Studio on Windows through CMake.
Targets are get_disto, vwebp_sdl, webp_quality.

Change-Id: Idec1e19b61b6a661011effee42f7440264afd3ed
2018-10-04 18:58:43 +02:00
Yannis Guyon
e52485d6db libwebp: Rename macros in webpmux.c
For clarity and to avoid:
  webpmux -info
  ERROR: Too many arguments for '-info'.

Change-Id: Iae8e62ed8997f7a4ea183d1b3505373255c3c73a
2018-10-03 21:39:38 +02:00
Pascal Massimino
92dc0f0937 clean-up MakeInputImageCopy()
use pointer increments.

Change-Id: I269412d41a58ab9ffd7fc0f3d479fe73a3d07b9e
2018-10-02 14:46:35 +00:00
Pascal Massimino
39952de265 VP8IteratorImport: add missing 'const'
Change-Id: I0b259e2979de787b5e4606ae93f23df1b49e4c8f
2018-10-02 14:46:27 +00:00
Pascal Massimino
382af7a2dd clean-up WebPBlendAlpha
use pointers instead of ptr + y * stride
+ misc re-org

Change-Id: I29fca781aa44f3bed3f8c1e956c5387705c80ed1
2018-10-02 13:57:12 +00:00
Yannis Guyon
14d020f6e6 libwebp: Use ExUtilGet*() in anim_diff
Instead of strtod() or strtol().

Change-Id: I320373cd969c6969cf4b1491391a95668d1b0beb
2018-10-02 13:55:57 +02:00
Yannis Guyon
0d92ff25f2 libwebp: remove useless variable in gif2webp
"out" is never used.

Change-Id: I4441308ef2267b2a9443add240d2fccabfb817f6
2018-10-02 11:39:48 +02:00
Yannis Guyon
556cb1b45e Merge "CMake: Set WEBP_BUILD_GIF2WEBP to off" 2018-10-01 13:14:46 +00:00
Yannis Guyon
da26ee49a6 CMake: Set WEBP_BUILD_GIF2WEBP to off
Instead of unsetting WEBP_BUILD_GIF2WEBP,
disable it to keep it displayed in ccmake.
Disable WEBP_BUILD_GIF2WEBP before it's tested.
Do the same for WEBP_BUILD_ANIM_UTILS.

Change-Id: I91920814fbda4825ced9a801bb005f8d44bfe09c
2018-10-01 13:48:22 +02:00