Releases: pinterf/AviSynthPlus
Avisynth+ v3.7.6pre-r4551 test build
20260306 3.7.5.r4551 (pre 3.7.6)
- Reenable YUY2 in planar target conversions as source (disabled in r4549)
- ConvertToY also gets bits and quality parameters, latter is used when source is RGB.
20260305 3.7.5.r4549 (pre 3.7.6)
- Fix: memory leak in Subframe/MakePropertyWritable after static-frame sources (ColorBars, BlankClip)
- any->YUV conversions (See https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/convert.html`.
- accept bits and quality parameters, similar to ConvertToPlanarRGB
- the legacy 8-bit-named functions (
ConvertToYV12,ConvertToYV16,
ConvertToYV24) allowing high-depth sources. - "ConvertToYUY2": rewritten to route all conversions through YV16.
- "ConvertToYUY2":
ChromaOutPlacementparameter added (was missing, present in ConvertToYV16). - "ConvertBackToYUY2": kept for backward compatibility; now forwards to
ConvertToYUY2. The pre-2.5 left-pixel-only chroma hack is no longer
needed or applied; the YV16 lossless repack path avoids chroma resampling loss entirely for roundtrip workflows. - 8 bit packed RGB formats are converted to planar RGB before 444 conversion.
Utilizing the optimized planar RGB infrastructure. - Fix: "ConvertToYUY2" / "ConvertToYV12": progressive YV12<->YUY2 conversion (use generic YV16/YV12 path)
- Fix: "ConvertToYUY2":
_ChromaLocation,_Matrixand_ColorRange
frame properties were not read from YV12 source frames and not written to YUY2 output frames
in the old legacy direct conversion path. - Fix: "ConvertToYUY2": SSE2 interlaced upsampling used wrong weighting direction, differing from the C reference implementation.
- Update https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/convert.html`
- matrix syntax
- ConvertToYUY2
bitsandqualityparameters
- Update Sampling https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/advancedtopics/sampling.html with historical content notes
on legacyYUY2handling.
Avisynth+ v3.7.6pre-r4549 test build
Avisynth Plus change log
Source: https://github.com/AviSynth/AviSynthPlus
This file contains all change log, with detailed examples and explanations.
The "rst" version of the documentation just lists changes in brief.
For online documentation check https://avisynthplus.readthedocs.io/en/latest/
Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
20260305 3.7.5.r4549 (pre 3.7.6)
- Fix: memory leak in Subframe/MakePropertyWritable after static-frame sources (ColorBars, BlankClip)
- any->YUV conversions (See https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/convert.html`.
- accept bits ans quality parameters, similar to ConvertToPlanarRGB
- the legacy 8-bit-named functions (
ConvertToYV12,ConvertToYV16,ConvertToYV24) allowing high-depth sources. - "ConvertToYUY2": rewritten to route all conversions through YV16.
- "ConvertToYUY2":
ChromaOutPlacementparameter added (was missing, present in ConvertToYV16). - "ConvertBackToYUY2": kept for backward compatibility; now forwards to
ConvertToYUY2. The pre-2.5 left-pixel-only chroma hack is no longer
needed or applied; the YV16 lossless repack path avoids chroma resampling loss entirely for roundtrip workflows. - 8 bit packed RGB formats are converted to planar RGB before 444 conversion.
Utiliting the optimized and maintained planar RGB infrastructure - Fix: "ConvertToYUY2" / "ConvertToYV12": progressive YV12<->YUY2 conversion (use generic YV16/YV12 path)
- Fix: "ConvertToYUY2":
_ChromaLocation,_Matrixand_ColorRange
frame properties were not read from YV12 source frames and not written to YUY2 output frames
in the old legacy direct conversion path. - Fix: "ConvertToYUY2": SSE2 interlaced upsampling used wrong weighting direction, differing from the C reference implementation.
- Update https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/convert.html`
- matrix syntax
- ConvertToYUY2
bitsandqualityparameters
- Update Sampling https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/advancedtopics/sampling.html with historical content notes
on legacyYUY2handling.
Avisynth+ v3.7.6pre-r4529 test build
Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
20260220 3.7.5.r4529 (pre 3.7.6)
- Fix Colorbars inaccurate 10+ bit, by using ground truth linear RGB, similarly to ColorBarsHD.
Full refactoring.
update doc: https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/colorbars.html - Histogram "color" and "color2" (Vectorscope modes)
- full refactoring.
- Drawing is now matrix and color range aware. target positions (75%) +-I and +Q.
- add individual overlay options:
addedmatrix,graticule,targets,axes,iq,iq_lines,circle
parameters - Fix: copy alpha from clip, initialize alpha to zero in the histogram area.
- Accurate pixel positioning and scaling to the active histogram area,
limited/full range aware. - update doc: https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/histogram.html
20260216 3.7.5.r4523 (pre 3.7.6)
- Fix r4504 regression YUV->RGBP bit-depth changing full-scale SSE2/AVX2 bug (exchanged G,B storage)
- "Layer" YUV mul/add/subtract/lighten/darken: refactor chroma placement calculation, allowing SIMD optimization in the main frame processing
- "Layer" YUV/RGBP mul/add/subtract/lighten/darken: refactor function dispatchers, add AVX2 path (LLVM/clangcl recommended)
- Fix C-only vertical resampling code which added more rounding than needed (regression since pre-3.7.5 20250427)
- Invert: per-plane processing for planar formats, use C even in AVX2, proper chroma inversion
- New: AddAlphaPlane opacity parameter
- New: ResetMask opacity parameter
- rstdoc: document "opacity" in AddAlphaPlane and ResetMask
- rstdoc: detail Layer "use_chroma" and opacity
- Overlay "Blend": more speed, but keep accuracy, use float only where really needed
- Layer: use YV16 internally for YUY2 (lessen source code bloat)
v3.7.6pre-r4523
For online documentation check https://avisynthplus.readthedocs.io/en/latest/
Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
20260216 3.7.5.r4523 (pre 3.7.6)
- Fix r4504 regression YUV->RGBP bit-depth changing full-scale SSE2/AVX2 bug (exchanged G,B storage)
- "Layer" YUV mul/add/subtract/lighten/darken: refactor chroma placement calculation, allowing SIMD optimization in the main frame processing
- "Layer" YUV/RGBP mul/add/subtract/lighten/darken: refactor function dispatchers, add AVX2 path (LLVM/clangcl recommended)
- Fix C-only vertical resampling code which added more rounding than needed (regression since pre-3.7.5 20250427)
- Invert: per-plane processing for planar formats, use C even in AVX2, proper chroma inversion
- New: AddAlphaPlane opacity parameter
- New: ResetMask opacity parameter
- rstdoc: document "opacity" in AddAlphaPlane and ResetMask
- rstdoc: detail Layer "use_chroma" and opacity
- Overlay "Blend": more speed, but keep accuracy, use float only where really needed
- Layer: use YV16 internally for YUY2 (lessen source bloat)
20260213 3.7.5.r4507 (pre 3.7.6)
Fix Layer "add" 8 bit, regression in r4504
20260212 3.7.5.r4504 (pre 3.7.6)
- Fix: inaccurate ColorBarsHD 10+ bit values. Now they are derived from the 32-bit float
RGB definitions instead of upscaling a 8 bit precalculated YUV value.
Add Ramp section the lead-in-lead-out. - Fix: GreyScale + SSE2 + RGB32 + matrix="RGB" overflow.
Rare usage; "RGB" matrix (Identity) uses a 1.0 coefficient which exceeds the signed 16-bit
SIMD limit of 32767 at 15-bit precision. Added bounds checking to fallback to C-code for any
coefficients >= 1.0 or < −1.0. - Fix: YUV->RGB limited range matrix accuracy for 10-16 bits.
- Use a different rounding in matrix coefficient's integer approximation.
- "ConvertToPlanarRGB":
bitsparameter: on-the-fly bit-depth conversions to YUV->RGB conversion.- Full range target: 8-16 bits internal calculation is in 32-bit float.
- Limited range target: a quicker, bit accuracy optimized integer calculation path.
- Not Fixed: Speed degradation when in-constructor GetFrame(0) (e.g. frame-property getter)
is used. Disable internal Cache object creation. Does not work in complex scripts, preparation
is 5-10 min instead of <1 sec. Investigation continues (Issue AviSynth#476: AviSynth#476) - Avoid MTGuard and CacheGuard creation if filter returns one of its clip parameter unaltered.
- Add some avx2 stuff to Layer and Invert
- Optimization: Overlay "Blend": aarch64 NEON optimization
Avisynth+ v3.7.6pre-r4507 test build
(r4504 test replaced with r4507, Reason: "Layer" "add" 8 bit case regression)
Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
20260213 3.7.5.r4507 (pre 3.7.6)
Fix Layer "add" 8 bit, regression in r4504
20260212 3.7.5.r4504 (pre 3.7.6)
- Fix: inaccurate ColorBarsHD 10+ bit values. Now they are derived from the 32-bit float
RGB definitions instead of upscaling a 8 bit precalculated YUV value.
Add Ramp section the lead-in-lead-out. - Fix: GreyScale + SSE2 + RGB32 + matrix="RGB" overflow.
Rare usage; "RGB" matrix (Identity) uses a 1.0 coefficient which exceeds the signed 16-bit
SIMD limit of 32767 at 15-bit precision. Added bounds checking to fallback to C-code for any
coefficients >= 1.0 or < −1.0. - Fix: YUV->RGB limited range matrix accuracy for 10-16 bits.
- Use a different rounding in matrix coefficient's integer approximation.
- "ConvertToPlanarRGB":
bitsparameter: on-the-fly bit-depth conversions to YUV->RGB conversion.- Full range target: 8-16 bits internal calculation is in 32-bit float.
- Limited range target: a quicker, bit accuracy optimized integer calculation path.
- Not Fixed: Speed degradation when in-constructor GetFrame(0) (e.g. frame-property getter)
is used. Disable internal Cache object creation. Does not work in complex scripts, preparation
is 5-10 min instead of <1 sec. Investigation continues (Issue AviSynth#476: AviSynth#476) - Avoid MTGuard and CacheGuard creation if filter returns one of its clip parameter unaltered.
- Add some avx2 stuff to Layer and Invert
- Optimization: Overlay "Blend": aarch64 NEON optimization
20260203 3.7.5.r4483 (pre 3.7.6)
- rst documentation update: RGBAdjust https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/adjust.html
- rst documentation update: ColorYUV https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/coloryuv.html
- optimization: add AVX2 TurnLeft/TurnRight/Turn180 (R/L: 1,5-3x speed).
- optimization: ConvertBits AVX2 integer->float
- optimization: ConvertToPlanarRGB(A): YUV->RGB add AVX2 (2-3x speed)
- optimization: ConvertToPlanarRGB(A): YUV->RGB 16 bit: a quicker way (1,5x)
- Fix: C version of 32-bit ConvertToPlanarRGB YUV->RGB to not clamp output RGB values.
- ConvertToPlanarRGB(A): add bits parameter to alter target bit-depth.
- ConvertToPlanarRGB(A): from YUV->RGB full range output: optimized in-process when bits=32, other cases call ConvertBits internally.
- Fix: Packed RGB conversions altering the bit-depth (e.g. rgb32->ConvertToRGB64() worked always in full range.
- Add more AVX512 resampler code. (WIP)
- Add more AVX512_BASE code paths (Resamplers)
- Build: add _avx512b.cpp/hpp pattern in CMake to detect source to compile with base (F,CD,BW,DQ,VL) flags.
However AVX512_BASE itself is set only when AVX512_FAST found.
For pre-Ice Lake (older AVX512) systems you can enable it with SetMaxCPU("avx512base+") and get the optimized AVX512_BASE functions. - Build: add new architecture z/Architecture
Avisynth+ v3.7.6pre-r4483 test build
20260203 3.7.5.r4483 (pre 3.7.6)
- rst documentation update: RGBAdjust https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/adjust.html
- rst documentation update: ColorYUV https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/coloryuv.html
- optimization: add AVX2 TurnLeft/TurnRight/Turn180 (R/L: 1,5-3x speed).
- optimization: ConvertBits AVX2 integer->float
- optimization: ConvertToPlanarRGB(A): YUV->RGB add AVX2 (2-3x speed)
- optimization: ConvertToPlanarRGB(A): YUV->RGB 16 bit: a quicker way (1,5x)
- Fix: C version of 32-bit ConvertToPlanarRGB YUV->RGB to not clamp output RGB values.
- ConvertToPlanarRGB(A): add bits parameter to alter target bit-depth.
- ConvertToPlanarRGB(A): from YUV->RGB full range output: optimized in-process when bits=32, other cases call ConvertBits internally.
- Fix: Packed RGB conversions altering the bit-depth (e.g. rgb32->ConvertToRGB64() worked always in full range.
- Add more AVX512 resampler code. (WIP)
- Add more AVX512_BASE code paths (Resamplers)
- Build: add _avx512b.cpp/hpp pattern in CMake to detect source to compile with base (F,CD,BW,DQ,VL) flags.
However AVX512_BASE itself is set only when AVX512_FAST found.
For pre-Ice Lake (older AVX512) systems you can enable it with SetMaxCPU("avx512base+") and get the optimized AVX512_BASE functions. - Build: add new architecture z/Architecture
Avisynth+ v3.7.6pre-r4439 test build - incl. Win7 build
20260107 3.7.5.r4439 (pre 3.7.6)
-
add AVX512 code path (tuning by DTL2020)
-
32-bit float resamplers, verticals; horizontals up to kernel size 16.
-
8-16-bit horizontal resamplers,
- kernel size <= 4 and specific ratios; 300%+ !!
- kernel sizes up to 8 and 16 and specific ratios.
-
8-16-bit vertical resamplers
-
For online documentation, please check https://avisynthplus.readthedocs.io/en/latest/
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
Note for Windows 7 compatibility builds:
- Used v143 toolset: 14.44.35221. (v143 is selectable from Visual Studio 2026 as well)
- Requires up-to-date Visual C++ redistributable pack.
Pre-14.39 VC redisttributable versions will crash with Access Violation ("mutex-lock" issue)
When in doubt which version you have, check your c:\windows\system32\msvcp140.dll properties.
Download 14.44.35221 from: https://github.com/abbodi1406/vcredist/releases/tag/v0.92.0 - Redistributable 14.44.35211 does work on Windows 7 if KB2999226 is installed:
Get the update from:
https://support.microsoft.com/en-us/topic/update-for-universal-c-runtime-in-windows-c0514201-7fe6-95a3-b0a5-287930f3560c
Avisynth+ v3.7.6pre-r4430 test build - incl. Win7 compatibility-test versions
20260105 3.7.5.r4430 (pre 3.7.6)
- add AVX512 code path to 8-16-bit horizontal resamplers, having kernel size <= 4 and specific ratios (DTL) 300%+ !!
- More Aarch64 (ARM64) NEON:
- add I8MM and SVE2_1 feature flags
- add NEON optimization to TurnLeft/Right/180
Avisynth+ v3.7.6pre-r4403 test build
20251225 3.7.5.r4403 (pre 3.7.6)
- Fix: The
Animate()function now explicitly clamps interpolated values to ensure they remain
strictly between the start and end range. Due to the high precision of 64-bitdoubleintroduced
in v3.7.5, intermediate calculations could slightly exceed the boundary (e.g., 360.00000000000006
when interpolating from 0 to 360.0 in 564 steps), requiring this clamp to prevent out-of-range errors.
Avisynth+ v3.7.6pre-r4400 test build
20251223 3.7.5.r4400 (pre 3.7.6)
- AVX512 float resampler additions, optimize horizontal (kernelsize <= 8), add code for vertical (DTL2020)
- Fix an ApplyMessage regression not recognizing '\n' line ends of Authors.avs (since 20250831)
XP build still exist.
Non-XP version is built with clangcl (LLVM).
Windows 7 not supported.
Needs fresh VC14 redistributables. Get latest V14 redist is from here (permalink to the .exe):
https://aka.ms/vc14/vc_redist.x64.exe