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