13.0.3 2depth: fix out-of-bounds read in SSE2/AVX2 error diffusion (introduced in 2.5) 3colorspace: revert SMPTE 240M behavior change (introduced in 3.0.2) 4 53.0.2 6api: default to ZIMG_CPU_AUTO when graph params are null 7colorspace: fix incorrect SMPTE 240M transfer function 8colorspace: fix underflow in AVX-512 ST.2084 transfer functions 9graph: fix conversion from fullrange grey to RGB 10arm: fix data alignment 11x86: optimizations for AMD Zen3 processors 12 133.0.1 14graph: fix handling of default nominal_peak_luminance (introduced in 3.0) 15 163.0 (API 2.4) 17api: support alpha channel as the fourth plane 18colorspace: accept UNSPECIFIED transfer characteristics in more situations 19colorspace: fix conversion from ICtCp to ARIB STD-B67 20depth: fix out of bounds access in SSE2 ordered dither 21graph: rewrite for alpha channel support 22resize: fix incorrect rounding when calculating pixel coordinates 23resize: AVX-512 VNNI code paths 24arm: NEON/ASIMD code paths 25 262.9.3 27resize: add spline64 filter 28 292.9.2 30colorspace: fix crash on invalid conversion from unspec to real primaries 31x86: additional optimizations for AMD Piledriver 32x86: optimizations for AMD Zen2 processors 33 342.9.1: 35resize: fix incorrect spline36 coefficients (introduced in 2.9) 36 372.9: 38colorspace: improve accuracy of SSE2 LUT-based transfer functions 39depth: AVX2 and AVX-512 code paths for limited range upsampling 40graph: optimize tile width calculation 41graph: reduce execution overhead 42graph: skip processing pixels outside of active window 43resize: change default bicubic from Mitchell-Netravali to Catmull-Rom 44resize: make output bit-exact regardless of active window dimensions 45x86: optimizations for AMD Piledriver and Zen1 processors 46 472.8: 48api: rename colorspace enum values 49colorspace: AVX-512 code paths for commonly used transfer functions 50colorspace: optimize SSE2 LUT-based transfer functions 51common: reduce execution overhead 52depth: increase ordered dither pattern from 8x8 to 16x16 53depth: use blue noise instead of white for random dither 54depth: use different dither pattern on each color component 55resize: optimize x86 SIMD horizontal downsampling with >8 taps 56x86: cache detection on AMD processors 57x86: optimizations for AMD Excavator processors 58 592.7.5: 60depth: fix SSE2 byte->float when width+4 is mod16 61resize: allow downsampling to very low resolutions 62 632.7.4: 64x86: fix crash on Yorkfield (Core 2 Quad) processors (introduced in 2.7) 65 662.7.3 67resize: fix performance drop in certain resampling ratios 68 692.7.2 70graph: fix image corruption in certain conversions (introduced in 2.7) 71resize: fix AVX-512 horizontal resize with certain widths (introduced in 2.6) 72 732.7.1 74colorspace: fix incorrect ST.428 primaries (introduced in 2.7) 75colorspace: preserve BTB/WTW when approximate_gamma is set 76colorspace: optimize handling of IEC 61966-2-4 transfer characteristics 77 782.7 79colorspace: add support for additional matrix/transfer/primaries 80graph: reduce buffer copies when converting from grey to color 81graph: reduce buffer copies when performing colorspace conversion 82graph: process input planes separately when possible 83graph: optimize calculation of tile width 84x86: automatic cache size detection for Intel processors 85 862.6.3 87resize: fix crash in AVX-512 resizer with GCC 88resize: improve cache efficiency in AVX-512 horizontal resizers 89 902.6.2 91depth: fix AVX-512 clamping of negative pixels 92graph: fix WORD greyscale to YUV conversion 93 942.6.1 95depth: fix SSE2 conversions with mod4 and mod8 widths (introduced in 2.6) 96resize: fix heap corruption in AVX2 horizontal resizer (introduced in 2.6) 97 982.6 (API 2.3) 99api: add ZIMG_CPU_AUTO_64B for AVX-512 compatibility 100colorspace: add support for ITU-R BT.2100 ICtCp 101colorspace: add support for constant luminance ITU-R BT.2100 HLG 102colorspace: add support for SMPTE ST.431-2 (traditional DCI-P3) 103colorspace: add support for chromaticity-derived NCL/CL matrices 104colorspace: assume 1000 cd/m^2 peak luminance for HLG 105colorspace: fix crash on bad colorspace definition 106depth: optimized SSE2/AVX2 conversions with 8/16-bit input 107resize: optimized AVX2 horizontal upsampler memory usage 108resize: optimized x86 SIMD function calling 109x86: AVX-512 code paths for key functions 110 1112.5.1 112depth: fix AVX2 conversion from half to byte/word (introduced in 2.1) 113 1142.5 115api: images larger than 16384x16384 rejected on 32-bit (2Gx2G on 64-bit) 116depth: SSE2 and AVX2 error diffusion implementation 117resize: AVX2 integer resize implementation 118x86: fix crash with AVX CPU on non-AVX OS 119 1202.4 121colorspace: add support for IEC 61966-2-1 (sRGB) 122colorspace: transfer function conversion conforms to ITU-R BT.2100 123 1242.3 (API 2.2) 125api: add 'allow_approximate_gamma' flag to zimg_graph_builder_params 126colorspace: add support for SMPTE ST.2084 (Dolby PQ) and ARIB STD-B67 (HLG) 127colorspace: add support for SMPTE ST.432-1 (P3-D65) 128colorspace: SSE2 and AVX2 LUT-based transfer function implementation 129 1302.2.1: 131resize: fix crash on horizontal resize with negative shift amount 132resize: fix illegal instruction on SSE2 horizontal resize with MSVC (introduced in 2.2) 133 1342.2 (API 2.1): 135api: add fields to zimg_image_format for image active region 136colorspace: add separate error messages for ill-formed colorspace definition 137resize: fix crash on negative or zero lanczos tap count 138resize: improve performance on SSE2 horizontal resize 139 1402.1: 141graph: optimize resizing to 4:4:4/RGB target 142graph: optimize resizing with different output pixel type 143x86: AVX and AVX2 code paths 144x86: fast half-precision support 145vszimg: deprecated and removed 146 1472.0.4: 148graph: fix possible infinite loop when converting integer to float 149 1502.0.3: 151api: fix handling of unrecognized colorspaces 152 1532.0.2: 154graph: fix crash when resizing in only one direction 155 1562.0.1: 157colorspace: fix incorrect gamut processing 158graph: fix possible buffer overflow on certain widths 159 1602.0 (API 2.0): 161api: new simplified API for all-in-one conversions 162api: remove zimg_set_cpu 163api: add zimg_get_version_info and zimg_get_api_version 164colorspace: add YCgCo matrix 165depth: clamp integer output to bit depth limit (e.g. 10-bit => 0-1023) 166depth: fix incorrect strength of random dither 167resize: clamp integer output to bit depth limit 168resize: fix incorrect output for point filter 169vszimg: new resize.X compatible syntax 170vszimg: support for color to greyscale conversion 171 1721.1.1: 173fix border handling in SSE2 horizontal resize 174 1751.1: 176cache-efficient 2d resizer 177rewrite horizontal resize kernels 178fix incorrect strength of ordered dither 179fix inaccurate error diffusion dither 180fix integer underflow in SSE2 dither 181 1821.0: 183initial release 184