3.0.6
colorspace: fix AVX-512 sRGB/709 with negative input (introduced in 2.8)
resize: fix AVX-512 downscaling with certain tap counts (introduced in 2.6)

3.0.5
colorspace: add ST.428-1 (gamma 2.6) transfer function
depth: fix AVX-512 integer to float border handling (introduced in 2.6)
depth: fix NEON dither border handling (introduced in 3.0)
graph: fix clipping in alpha premultiplication (introduced in 3.0)
x86: optimizations for AMD Zen4 processors

3.0.4
colorspace: fix ARIB STD-B67 constant-luminance EOTF (introduced in 2.6)
colorspace: filter negative values from sRGB-like transfer functions
common: compilation fixes on esoteric architectures
graph: fix active region with chroma subsampling

3.0.3
depth: fix out-of-bounds read in SSE2/AVX2 error diffusion (introduced in 2.5)
colorspace: revert SMPTE 240M behavior change (introduced in 3.0.2)

3.0.2
api: default to ZIMG_CPU_AUTO when graph params are null
colorspace: fix incorrect SMPTE 240M transfer function
colorspace: fix underflow in AVX-512 ST.2084 transfer functions
graph: fix conversion from fullrange grey to RGB
arm: fix data alignment
x86: optimizations for AMD Zen3 processors

3.0.1
graph: fix handling of default nominal_peak_luminance (introduced in 3.0)

3.0 (API 2.4)
api: support alpha channel as the fourth plane
colorspace: accept UNSPECIFIED transfer characteristics in more situations
colorspace: fix conversion from ICtCp to ARIB STD-B67
depth: fix out of bounds access in SSE2 ordered dither
graph: rewrite for alpha channel support
resize: fix incorrect rounding when calculating pixel coordinates
resize: AVX-512 VNNI code paths
arm: NEON/ASIMD code paths

2.9.3
resize: add spline64 filter

2.9.2
colorspace: fix crash on invalid conversion from unspec to real primaries
x86: additional optimizations for AMD Piledriver
x86: optimizations for AMD Zen2 processors

2.9.1:
resize: fix incorrect spline36 coefficients (introduced in 2.9)

2.9:
colorspace: improve accuracy of SSE2 LUT-based transfer functions
depth: AVX2 and AVX-512 code paths for limited range upsampling
graph: optimize tile width calculation
graph: reduce execution overhead
graph: skip processing pixels outside of active window
resize: change default bicubic from Mitchell-Netravali to Catmull-Rom
resize: make output bit-exact regardless of active window dimensions
x86: optimizations for AMD Piledriver and Zen1 processors

2.8:
api: rename colorspace enum values
colorspace: AVX-512 code paths for commonly used transfer functions
colorspace: optimize SSE2 LUT-based transfer functions
common: reduce execution overhead
depth: increase ordered dither pattern from 8x8 to 16x16
depth: use blue noise instead of white for random dither
depth: use different dither pattern on each color component
resize: optimize x86 SIMD horizontal downsampling with >8 taps
x86: cache detection on AMD processors
x86: optimizations for AMD Excavator processors

2.7.5:
depth: fix SSE2 byte->float when width+4 is mod16
resize: allow downsampling to very low resolutions

2.7.4:
x86: fix crash on Yorkfield (Core 2 Quad) processors (introduced in 2.7)

2.7.3
resize: fix performance drop in certain resampling ratios

2.7.2
graph: fix image corruption in certain conversions (introduced in 2.7)
resize: fix AVX-512 horizontal resize with certain widths (introduced in 2.6)

2.7.1
colorspace: fix incorrect ST.428 primaries (introduced in 2.7)
colorspace: preserve BTB/WTW when approximate_gamma is set
colorspace: optimize handling of IEC 61966-2-4 transfer characteristics

2.7
colorspace: add support for additional matrix/transfer/primaries
graph: reduce buffer copies when converting from grey to color
graph: reduce buffer copies when performing colorspace conversion
graph: process input planes separately when possible
graph: optimize calculation of tile width
x86: automatic cache size detection for Intel processors

2.6.3
resize: fix crash in AVX-512 resizer with GCC
resize: improve cache efficiency in AVX-512 horizontal resizers

2.6.2
depth: fix AVX-512 clamping of negative pixels
graph: fix WORD greyscale to YUV conversion

2.6.1
depth: fix SSE2 conversions with mod4 and mod8 widths (introduced in 2.6)
resize: fix heap corruption in AVX2 horizontal resizer (introduced in 2.6)

2.6 (API 2.3)
api: add ZIMG_CPU_AUTO_64B for AVX-512 compatibility
colorspace: add support for ITU-R BT.2100 ICtCp
colorspace: add support for constant luminance ITU-R BT.2100 HLG
colorspace: add support for SMPTE ST.431-2 (traditional DCI-P3)
colorspace: add support for chromaticity-derived NCL/CL matrices
colorspace: assume 1000 cd/m^2 peak luminance for HLG
colorspace: fix crash on bad colorspace definition
depth: optimized SSE2/AVX2 conversions with 8/16-bit input
resize: optimized AVX2 horizontal upsampler memory usage
resize: optimized x86 SIMD function calling
x86: AVX-512 code paths for key functions

2.5.1
depth: fix AVX2 conversion from half to byte/word (introduced in 2.1)

2.5
api: images larger than 16384x16384 rejected on 32-bit (2Gx2G on 64-bit)
depth: SSE2 and AVX2 error diffusion implementation
resize: AVX2 integer resize implementation
x86: fix crash with AVX CPU on non-AVX OS

2.4
colorspace: add support for IEC 61966-2-1 (sRGB)
colorspace: transfer function conversion conforms to ITU-R BT.2100

2.3 (API 2.2)
api: add 'allow_approximate_gamma' flag to zimg_graph_builder_params
colorspace: add support for SMPTE ST.2084 (Dolby PQ) and ARIB STD-B67 (HLG)
colorspace: add support for SMPTE ST.432-1 (P3-D65)
colorspace: SSE2 and AVX2 LUT-based transfer function implementation

2.2.1:
resize: fix crash on horizontal resize with negative shift amount
resize: fix illegal instruction on SSE2 horizontal resize with MSVC (introduced in 2.2)

2.2 (API 2.1):
api: add fields to zimg_image_format for image active region
colorspace: add separate error messages for ill-formed colorspace definition
resize: fix crash on negative or zero lanczos tap count
resize: improve performance on SSE2 horizontal resize

2.1:
graph: optimize resizing to 4:4:4/RGB target
graph: optimize resizing with different output pixel type
x86: AVX and AVX2 code paths
x86: fast half-precision support
vszimg: deprecated and removed

2.0.4:
graph: fix possible infinite loop when converting integer to float

2.0.3:
api: fix handling of unrecognized colorspaces

2.0.2:
graph: fix crash when resizing in only one direction

2.0.1:
colorspace: fix incorrect gamut processing
graph: fix possible buffer overflow on certain widths

2.0 (API 2.0):
api: new simplified API for all-in-one conversions
api: remove zimg_set_cpu
api: add zimg_get_version_info and zimg_get_api_version
colorspace: add YCgCo matrix
depth: clamp integer output to bit depth limit (e.g. 10-bit => 0-1023)
depth: fix incorrect strength of random dither
resize: clamp integer output to bit depth limit
resize: fix incorrect output for point filter
vszimg: new resize.X compatible syntax
vszimg: support for color to greyscale conversion

1.1.1:
fix border handling in SSE2 horizontal resize

1.1:
cache-efficient 2d resizer
rewrite horizontal resize kernels
fix incorrect strength of ordered dither
fix inaccurate error diffusion dither
fix integer underflow in SSE2 dither

1.0:
initial release
