v2.0
  - Port from OpenCL to the VapourSynth Vulkan GPU API (API 4.3); all OpenCL code removed.
    Frames stay GPU resident through the filter, CPU clips are uploaded automatically.
  - Plugin renamed: namespace 'knlmvk', function 'KNLMeans' (was knlm.KNLMeansCL).
  - Removed parameters: device_type, device_id, ocl_x, ocl_y, ocl_r (the core owns the
    device), info, mode_9_to_15bits (one normalization path covers every integer depth).
  - Remove AviSynth support; the port is built on VapourSynth's GPU API.
  - Fix stale temporal data being read during the last 'd' frames of a clip; the search
    window now shrinks symmetrically at both clip ends.
  - Frames process concurrently (fmParallel with per-frame scratch) instead of
    serializing through one command queue.
  - Remove the 8192x8192 resolution limit and the OpenCL/Boost build dependencies; only
    the Vulkan headers are needed to compile.
  - Wheels are built by meson-python straight from the meson build, which also installs
    the plugin on its own.

v1.3
  - Improve device selection logic.
    Cover more invalid value return from macOS during auto device selection.

v1.2
   - Migrate VapourSynth plugin to API v4
   - Remove legacy Visual Studio and Travis CI files
   - Add Python wheel packaging support for VapourSynth
   - Implement GitHub Actions CI workflows for Windows, Linux, and macOS
   - Integrate vcpkg for cross-platform dependency management
   - Improve OpenCL device selection logic and fallback handling
   - Remove internal VapourSynth headers in favor of Python discovery
   - Remove on-screen version and copyright info overlays from frames
   - Automatically retrieve version from build system
   - Use event to ensure synchronized CL buffer fill
   - Fix auto device type fallbacks on platforms that use CL_INVALID_VALUE for unused types

v1.1.1e [20201112 (pinterf)]
   - Update internal VERSION with 'e' shown in 'info' pages
   - New: Add (debug) parameter: 'mode_9_to_15bits' (integer). Values 0, 1 (default), 2
          Affects how less-than-16-bit formats are handled internally.
          Result is the same, speed may vary
   - New: VapourSynth: support for all bit depth between 8 and 16
   - Fix: VapourSynth: check if format is 4:4:4 for parameter channels="YUV" (was: crash)
   - New: VapourSynth: If OpenCL driver does not support special 10-10-10 bit internal processing mode, 
                       silently fallbacks to the new high bit depth normal mode instead of 
                       "format not supported"

v1.1.1d [20201102 (pinterf)]
   - Fix: Avisynth: channels="UV" gives error on greyscale clips with bit depth > 8
   - Fix: Avisynth: YV24 text in a parameter checking error replaced to bit depth independent 4:4:4
   - Fix: Avisynth: channels="UV" was working only for 8 bit subsampled formats
   - Fix: Avisynth: channels="UV" to properly support 4:1:1 subsampling
   - New: Avisynth: add planar RGB support
   - New: Avisynth: add general support for 9-15 bit input formats (avs: 10, 12, 14)
   - New: Avisynth: 10 bit input processing is no longer restricted to channels="YUV"
   - New: Avisynth: If OpenCL driver does not support special 10-10-10 bit internal processing mode, 
                    silently fallbacks to the new high bit depth normal mode instead of 
                    "format not supported"

v1.1.1c [20201028 (pinterf)]
   - Avisynth: fixes invalid frame content / ghost frames / hangup in multithreaded environment

v1.1.1b [20200429 (pinterf)]
   - Windows build with VS2019
   - Move AviSynth+ MT report to interface independent cache hints
   - Add AviSynth+ frame property copy support (supports V8 interface for AviSynth+ 3.6.0)

v1.1.1
   - Added more check of rclip.
   - Fixed build programm error in some circumstances. 
   - Fixed Avisynth YUV444P10 video format.
   - Fixed Vapoursynth RGB30 video format.
   - Fixed clip processing with higher resolution than 4K.

v1.1.0
   - Added AviSynth MT support (MT_MULTI_INSTANCE).
   - Added AviSynth+'s high bit depth support.
   - Replaced 'lsb_inout' with 'stacked'.
   - Info now display 'Bits per sample'.

v1.0.2
   - Tuned 'h' strength for backward compatibility.
   - Fixed VapourSynth OSX version.

v1.0.1
   - Fixed wrong output with 'wmode' different to 0 some circumstances.
   - Fixed second clip 'rclip' in VapourSynth.

v1.0.0
   - Improved performance with CPU.
   - Improved performance with AMD GCN Architecture.
   - Reduced CPU overhead in some system.
   - Reduced memory usage in some system.
   - Advanced OpenCL parameters for fine tuning.
   - Replaced 'cmode' with 'channels' and added the options to only process the chroma.
   - Two new modified bisquare weighting functions.
   - Increased the maximum 's' value to 8.
   - Updated to VapourSynth R36.
   - Removed Cauchy weighting function.
   - Fixed second clip 'rclip' in some circumstances.

v0.7.7
   - Improved debugging information.
   - Improved the overall stability.
   - Minor changes.

v0.7.6
  - Fixed wrong version displaying.
  - VapourSynth: fixed wrong API usage.

v0.7.5
  - New 'wref' (default 1.0) parameter.
  - Improved automatic selection of OpenCL device.
  - Changed parameters order. 
  - VapourSynth: fixed missing 's' value check. 

v0.7.4
  - Workaround for GeForce 900 Series.
   
v0.7.3
  - Removed 'default' and 'all' from 'device_type'.
  - Improved OpenCL platform control.
  - VapourSynth: fixed frame properties.

v0.7.2
  - VapourSynth: fixed memory leak.
  
v0.7.1
  - Fixed 'clSetKernelArg' error in some configuration.
  
v0.7.0
  - Performance increase: temporal up to 35% faster.
  - New 'auto' device_type.
  - Changed default 'd' value from '0' to '1'.
  - Changed min 'a' value from '0' to '1'.
  - OpenCL 1.2 support now required.
  - AviSynth 2.6.0a1-a5 backward compatibility.
  - Fixed Mac OS X version.
  
v0.6.11
  - Performance increase: up to 50% faster.
  - Fixed bad processing borders.
  - AviSynth: OpenMP no more needed.
  - VapourSynth: fixed bad support of P9/P10 rclip.

v0.6.4
  - VapourSynth: OpenMP no more needed.

v0.6.3
  - Improved OpenCL device selection (device_id).
  - VapourSynth linux: fixed wrong locate.
  - Minor changes and bug fixes.

v0.6.2
  - Improved error log.
  - Fixed warning use of logical '||' with constant operand.

v0.6.1
  - Fixed 'h' strength in some situations.
  - Minor changes.

v0.6.0
  - Added color distance (cmode).
  - VapourSynth: added support for missing color format.
  - Changed weighted RGB distance.
  - No more SSE2 / SSE3 required. 
  - Minor changes and bug fixes.
  
v0.5.9
  - Fixed rare issues with OpenCL compiler, again. 

v0.5.8
  - Fixed rare issues with OpenCL compiler.
  - Fixed rare issues with clGetPlatformIDs.
  - AviSynth: clip does not need to be aligned.

v0.5.7
  - Added extra reference clip (rclip).
  - Weighted RGB distance.

v0.5.6
  - VapourSynth: fixed temporal support.
  - VapourSynth: fixed arg device_type ignored.
  - Fixed possible opencl device not available. 

v0.5.5
  - AviSynth: added RGB32 support.

v0.5.4
  - AviSynth: fixed temporal support with 16-bits clip.  

v0.5.3
  - VapourSynth: better accuracy with 32-bits.
  - VapourSynth: fixed arguments.

v0.5.2
  - Added AviSynth+ support.
  - VapourSynth: fixed memory leak.

v0.5.1
  - Added VapourSynth support.
