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