1- 12/19/2024 version 1.5.0 2 This is a binary compatible release. 3 API changes: 4 - `cross_color_transform_bits` added to WebPAuxStats 5 * minor lossless encoder speed and compression improvements 6 * lossless encoding does not use floats anymore 7 * additional Arm optimizations for lossy & lossless + general code generation 8 improvements 9 * improvements to WASM performance (#643) 10 * improvements and corrections in webp-container-spec.txt and 11 webp-lossless-bitstream-spec.txt (#646, #355607636) 12 * further security related hardening and increased fuzzing coverage w/fuzztest 13 (oss-fuzz: #382816119, #70112, #70102, #69873, #69825, #69508, #69208) 14 * miscellaneous warning, bug & build fixes (#499, #562, #381372617, 15 #381109771, #42340561, #375011696, #372109644, chromium: #334120888) 16 Tool updates: 17 * gif2webp: add -sharp_yuv & -near_lossless 18 * img2webp: add -exact & -noexact 19 * exit codes normalized; running an example program with no 20 arguments will output its help and exit with an error (#42340557, 21 #381372617) 22 23- 4/12/2024: version 1.4.0 24 This is a binary compatible release. 25 * API changes: 26 - libwebpmux: WebPAnimEncoderSetChunk, WebPAnimEncoderGetChunk, 27 WebPAnimEncoderDeleteChunk 28 - libsharpyuv: SharpYuvOptionsInit, SharpYuvConvertWithOptions 29 - extras: SharpYuvEstimate420Risk 30 * further security related hardening in libwebp & examples 31 * some minor optimizations in the lossless encoder 32 * added WEBP_NODISCARD to report unused result warnings; enable with 33 -DWEBP_ENABLE_NODISCARD=1 34 * improvements and corrections in webp-container-spec.txt and 35 webp-lossless-bitstream-spec.txt (#611) 36 * miscellaneous warning, bug & build fixes (#615, #619, #632, #635) 37 38- 9/13/2023: version 1.3.2 39 This is a binary compatible release. 40 * security fix for lossless decoder (chromium: #1479274, CVE-2023-4863) 41 42- 6/23/2023: version 1.3.1 43 This is a binary compatible release. 44 * security fixes for lossless encoder (#603, chromium: #1420107, #1455619, 45 CVE-2023-1999) 46 * improve error reporting through WebPPicture error codes 47 * fix upsampling for RGB565 and RGBA4444 in NEON builds 48 * img2webp: add -sharp_yuv & -near_lossless 49 * Windows builds: 50 - fix compatibility with clang-cl (#607) 51 - improve Arm64 performance with cl.exe 52 - add Arm64EC support 53 * fix webp_js with emcc >= 3.1.27 (stack size change, #614) 54 * CMake fixes (#592, #610, #612) 55 * further updates to the container and lossless bitstream docs (#581, #611) 56 57- 12/16/2022: version 1.3.0 58 This is a binary compatible release. 59 * add libsharpyuv, which exposes -sharp_yuv/config.use_sharp_yuv 60 functionality to other libraries; libwebp now depends on this library 61 * major updates to the container and lossless bitstream docs (#448, #546, 62 #551) 63 * miscellaneous warning, bug & build fixes (#576, #583, #584) 64 65- 8/4/2022: version 1.2.4 66 This is a binary compatible release. 67 * restore CMake libwebpmux target name for compatibility with 1.2.2 (#575) 68 * fix lossless crunch mode encoding with WEBP_REDUCE_SIZE 69 (chromium: #1345547, #1345595, #1345772, #1345804) 70 71- 6/30/2022: version 1.2.3 72 This is a binary compatible release. 73 * security fix for lossless encoder (#565, chromium:1313709) 74 * improved progress granularity in WebPReportProgress() when using lossless 75 * improved precision in Sharp YUV (-sharp_yuv) conversion 76 * many corrections to webp-lossless-bitstream-spec.txt (#551) 77 * crash/leak fixes on error/OOM and other bug fixes (#558, #563, #569, #573) 78 79- 1/11/2022: version 1.2.2 80 This is a binary compatible release. 81 * webpmux: add "-set bgcolor A,R,G,B" 82 * add ARM64 NEON support for MSVC builds (#539) 83 * fix duplicate include error in Xcode when using multiple XCFrameworks in a 84 project (#542) 85 * doc updates and bug fixes (#538, #544, #548, #550) 86 87- 7/20/2021: version 1.2.1 88 This is a binary compatible release. 89 * minor lossless encoder improvements and x86 color conversion speed up 90 * add ARM64 simulator support to xcframeworkbuild.sh (#510) 91 * further security related hardening in libwebp & examples 92 (issues: #497, #508, #518) 93 (chromium: #1196480, #1196773, #1196775, #1196777, #1196778, #1196850) 94 (oss-fuzz: #28658, #28978) 95 * toolchain updates and bug fixes (#498, #501, #502, #504, #505, #506, #509, 96 #533) 97 * use more inclusive language within the source (#507) 98 99- 12/23/2020: version 1.2.0 100 * API changes: 101 - libwebp: 102 encode.h: add a qmin / qmax range for quality factor (cwebp adds -qrange) 103 * lossless encoder improvements 104 * SIMD support for Wasm builds 105 * add xcframeworkbuild.sh, supports Mac Catalyst builds 106 * import fuzzers from oss-fuzz & chromium (#409) 107 * webpmux: add an '-set loop <value>' option (#494) 108 * toolchain updates and bug fixes (#449, #463, #470, #475, #477, #478, #479, 109 #488, #491) 110 111- 12/18/2019: version 1.1.0 112 * API changes: 113 - libwebp: 114 WebPMalloc (issue #442) 115 - extras: 116 WebPUnmultiplyARGB 117 * alpha decode fix (issue #439) 118 * toolchain updates and bug fixes 119 (chromium: #1026858, #1027136, #1027409, #1028620, #1028716, #995200) 120 (oss-fuzz: #19430, #19447) 121 122- 7/4/2019: version 1.0.3 123 This is a binary compatible release. 124 * resize fixes for Nx1 sizes and the addition of non-opaque alpha values for 125 odd sizes (issues #418, #434) 126 * lossless encode/decode performance improvements 127 * lossy compression performance improvement at low quality levels with flat 128 content (issue #432) 129 * python swig files updated to support python 3 130 Tool updates: 131 vwebp will now preserve the aspect ratio of images that exceed monitor 132 resolution by scaling the image to fit (issue #433) 133 134- 1/14/2019: version 1.0.2 135 This is a binary compatible release. 136 * (Windows) unicode file support in the tools (linux and mac already had 137 support, issue #398) 138 * lossless encoder speedups 139 * lossy encoder speedup on ARM 140 * lossless multi-threaded security fix (chromium:917029) 141 142- 11/2/2018: version 1.0.1 143 This is a binary compatible release. 144 * lossless encoder speedups 145 * big-endian fix for alpha decoding (issue #393) 146 * gif2webp fix for loop count=65535 transcode (issue #382) 147 * further security related hardening in libwebp & libwebpmux 148 (issues #383, #385, #386, #387, #388, #391) 149 (oss-fuzz #9099, #9100, #9105, #9106, #9111, #9112, #9119, #9123, #9170, 150 #9178, #9179, #9183, #9186, #9191, #9364, #9417, #9496, #10349, 151 #10423, #10634, #10700, #10838, #10922, #11021, #11088, #11152) 152 * miscellaneous bug & build fixes (issues #381, #394, #396, #397, #400) 153 154- 4/2/2018: version 1.0.0 155 This is a binary compatible release. 156 * lossy encoder improvements to avoid chroma shifts in various circumstances 157 (issues #308, #340) 158 * big-endian fixes for decode, RGBA import and WebPPictureDistortion 159 Tool updates: 160 gifwebp, anim_diff - default duration behavior (<= 10ms) changed to match 161 web browsers, transcoding tools (issue #379) 162 img2webp, webpmux - allow options to be passed in via a file (issue #355) 163 164- 11/24/2017: version 0.6.1 165 This is a binary compatible release. 166 * lossless performance and compression improvements + a new 'cruncher' mode 167 (-m 6 -q 100) 168 * ARM performance improvements with clang (15-20% w/ndk r15c, issue #339) 169 * webp-js: emscripten/webassembly based javascript decoder 170 * miscellaneous bug & build fixes (issue #329, #332, #343, #353, #360, #361, 171 #363) 172 Tool updates / additions: 173 added webpinfo - prints file format information (issue #330) 174 gif2webp - loop behavior modified to match Chrome M63+ (crbug.com/649264); 175 '-loop_compatibility' can be used for the old behavior 176 177- 1/26/2017: version 0.6.0 178 * lossless performance and compression improvements 179 * miscellaneous performance improvements (SSE2, NEON, MSA) 180 * webpmux gained a -duration option allowing for frame timing modification 181 * new img2webp utility allowing a sequence of images to be converted to 182 animated webp 183 * API changes: 184 - libwebp: 185 WebPPictureSharpARGBToYUVA 186 WebPPlaneDistortion 187 - libwebpmux / gif2webp: 188 WebPAnimEncoderOptions: kmax <= 0 now disables keyframes, kmax == 1 189 forces all keyframes. See mux.h and the gif2webp 190 manpage for details. 191 192- 12/13/2016: version 0.5.2 193 This is a binary compatible release. 194 This release covers CVE-2016-8888 and CVE-2016-9085. 195 * further security related hardening in the tools; fixes to 196 gif2webp/AnimEncoder (issues #310, #314, #316, #322), cwebp/libwebp (issue 197 #312) 198 * full libwebp (encoder & decoder) iOS framework; libwebpdecoder 199 WebP.framework renamed to WebPDecoder.framework (issue #307) 200 * CMake support for Android Studio (2.2) 201 * miscellaneous build related fixes (issue #306, #313) 202 * miscellaneous documentation improvements (issue #225) 203 * minor lossy encoder fixes and improvements 204 205- 6/14/2016: version 0.5.1 206 This is a binary compatible release. 207 * miscellaneous bug fixes (issues #280, #289) 208 * reverted alpha plane encoding with color cache for compatibility with 209 libwebp 0.4.0->0.4.3 (issues #291, #298) 210 * lossless encoding performance improvements 211 * memory reduction in both lossless encoding and decoding 212 * force mux output to be in the extended format (VP8X) when undefined chunks 213 are present (issue #294) 214 * gradle, cmake build support 215 * workaround for compiler bug causing 64-bit decode failures on android 216 devices using clang-3.8 in the r11c NDK 217 * various WebPAnimEncoder improvements 218 219- 12/17/2015: version 0.5.0 220 * miscellaneous bug & build fixes (issues #234, #258, #274, #275, #278) 221 * encoder & decoder speed-ups on x86/ARM/MIPS for lossy & lossless 222 - note! YUV->RGB conversion was sped-up, but the results will be slightly 223 different from previous releases 224 * various lossless encoder improvements 225 * gif2webp improvements, -min_size option added 226 * tools fully support input from stdin and output to stdout (issue #168) 227 * New WebPAnimEncoder API for creating animations 228 * New WebPAnimDecoder API for decoding animations 229 * other API changes: 230 - libwebp: 231 WebPPictureSmartARGBToYUVA() (-pre 4 in cwebp) 232 WebPConfig::exact (-exact in cwebp; -alpha_cleanup is now the default) 233 WebPConfig::near_lossless (-near_lossless in cwebp) 234 WebPFree() (free'ing webp allocated memory in other languages) 235 WebPConfigLosslessPreset() 236 WebPMemoryWriterClear() 237 - libwebpdemux: removed experimental fragment related fields and functions 238 - libwebpmux: WebPMuxSetCanvasSize() 239 * new libwebpextras library with some uncommon import functions: 240 WebPImportGray/WebPImportRGB565/WebPImportRGB4444 241 242- 10/15/15: version 0.4.4 243 This is a binary compatible release. 244 * rescaling out-of-bounds read fix (issue #254) 245 * various build fixes and improvements (issues #253, #259, #262, #267, #268) 246 * container documentation update 247 * gif2webp transparency fix (issue #245) 248 249- 3/3/15: version 0.4.3 250 This is a binary compatible release. 251 * Android / gcc / iOS / MSVS build fixes and improvements 252 * lossless decode fix (issue #239 -- since 0.4.0) 253 * documentation / vwebp updates for animation 254 * multi-threading fix (issue #234) 255 256- 10/13/14: version 0.4.2 257 This is a binary compatible release. 258 * Android / gcc build fixes 259 * (Windows) fix reading from stdin and writing to stdout 260 * gif2webp: miscellaneous fixes 261 * fix 'alpha-leak' with lossy compression (issue #220) 262 * the lossless bitstream spec has been amended to reflect the current code 263 264- 7/24/14: version 0.4.1 265 This is a binary compatible release. 266 * AArch64 (arm64) & MIPS support/optimizations 267 * NEON assembly additions: 268 - ~25% faster lossy decode / encode (-m 4) 269 - ~10% faster lossless decode 270 - ~5-10% faster lossless encode (-m 3/4) 271 * dwebp/vwebp can read from stdin 272 * cwebp/gif2webp can write to stdout 273 * cwebp can read webp files; useful if storing sources as webp lossless 274 275- 12/19/13: version 0.4.0 276 * improved gif2webp tool 277 * numerous fixes, compression improvement and speed-up 278 * dither option added to decoder (dwebp -dither 50 ...) 279 * improved multi-threaded modes (-mt option) 280 * improved filtering strength determination 281 * New function: WebPMuxGetCanvasSize 282 * BMP and TIFF format output added to 'dwebp' 283 * Significant memory reduction for decoding lossy images with alpha. 284 * Intertwined decoding of RGB and alpha for a shorter 285 time-to-first-decoded-pixel. 286 * WebPIterator has a new member 'has_alpha' denoting whether the frame 287 contains transparency. 288 * Container spec amended with new 'blending method' for animation. 289 290- 6/13/13: version 0.3.1 291 This is a binary compatible release. 292 * Add incremental decoding support for images containing ALPH and ICCP chunks. 293 * Python bindings via swig for the simple encode/decode interfaces similar to 294 Java. 295 296- 3/20/13: version 0.3.0 297 This is a binary compatible release. 298 * WebPINewRGB/WebPINewYUVA accept being passed a NULL output buffer 299 and will perform auto-allocation. 300 * default filter option is now '-strong -f 60' 301 * encoding speed-up for lossy methods 3 to 6 302 * alpha encoding can be done in parallel to lossy using 'cwebp -mt ...' 303 * color profile, metadata (XMP/EXIF) and animation support finalized in the 304 container. 305 * various NEON assembly additions 306 Tool updates / additions: 307 * gif2webp added 308 * vwebp given color profile & animation support 309 * cwebp can preserve color profile / metadata with '-metadata' 310 311- 10/30/12: version 0.2.1 312 * Various security related fixes 313 * cwebp.exe: fix import errors on Windows XP 314 * enable DLL builds for mingw targets 315 316- 8/3/12: version 0.2.0 317 * Add support for ARGB -> YUVA conversion for lossless decoder 318 New functions: WebPINewYUVA, WebPIDecGetYUVA 319 * Add stats for lossless and alpha encoding 320 * Security related hardening: allocation and size checks 321 * Add PAM output support to dwebp 322 323- 7/19/12: version 0.1.99 324 * This is a pre-release of 0.2.0, not an rc to allow for further 325 incompatible changes based on user feedback. 326 * Alpha channel encode/decode support. 327 * Lossless encoder/decoder. 328 * Add TIFF input support to cwebp. 329 Incompatible changes: 330 * The encode ABI has been modified to support alpha encoding. 331 * Deprecated function WebPINew() has been removed. 332 * Decode function signatures have changed to consistently use size_t over 333 int/uint32_t. 334 * decode_vp8.h is no longer installed system-wide. 335 * cwebp will encode the alpha channel if present. 336 337- 9/19/11: version 0.1.3 338 * Advanced decoding APIs. 339 * On-the-fly cropping and rescaling of images. 340 * SSE2 instructions for decoding performance optimizations on x86 based 341 platforms. 342 * Support Multi-threaded decoding. 343 * 40% improvement in Decoding performance. 344 * Add support for RGB565, RGBA4444 & ARGB image colorspace. 345 * Better handling of large picture encoding. 346 347- 3/25/11: version 0.1.2 348 * Incremental decoding: picture can be decoded byte-by-byte if needs be. 349 * lot of bug-fixes, consolidation and stabilization 350 351- 2/23/11: initial release of version 0.1, with the new encoder 352- 9/30/10: initial release version with only the lightweight decoder 353