Avisynth+ r2728-MT
Avisynth+ r2728 (20180702)
https://forum.doom9.org/showthread.php?t=168856
- Fix: Expr: expression string order for planar RGB is properly r-g-b like in original VapourSynth version, instead of counter-intuitive g-b-r.
- Fix: Expr: check subsampling when a different output pixel format is given
- Fix: ColorYUV: round to avoid green cast on consecutive TV<>PC
- Fix: RGBAdjust memory leak when used in ScriptClip
- Fix: RGB64 Turnleft/Turnright (which are also used in RGB64 Resizers)
- Fix: Rare crash in FrameRegistry
- Fix: couldn't see variables in avsi before plugin autoloads (colors_rgb.avsi issue)
- Fix: LoadVirtualdubPlugin: Fix crash on exit when more than one instances of a filter was used in a script
- New: Expr: implement 'clip' three operand operator like in masktools2
- New: Expr: Parameter "clamp_float" (like in masktools2 2.2.15)
- New: Expr: parameter "scale_inputs" (like in masktools2 2.2.15)
- New: function bool VarExist(String variable_name)
- New function: BuildPixelType:
Creates a video format (pixel_type) string by giving a colorspace family, bit depth, optional chroma subsampling and/or a template clip, from which the undefined format elements are inherited. - Enhanced: Limiter to work with 32 bit float clips
- Enhanced: Limiter new parameter bool 'autoscale' default false, parameters now are of float type to handle 32 bit float values.
- Enhanced: RGBAdjust new parameter: conditional (like in ColorYUV)
The global variables "rgbadjust_xxx" with xxx = r, g, b, a, rb, gb, bb, ab, rg, gg, bg, ag are read each frame, and applied. - Enhanced: RGBAdjust: support 32 bit float ('analyze' not supported, 'dither' silently ignored)
- Enhanced: AviSource to support much more formats with 10+ bit depth.
- Changed (finally): 32bit float YUV colorspaces: zero centered chroma channels.
U and V channels are now -0.5..+0.5 (if converted to full scale before) instead of 0..1 - New function: bool IsFloatUvZeroBased() for plugin or script writers who want to be compatible with pre r2672 Avisynth+ float YUV format:
- Enhanced: Allow ConvertToRGB24-32-48-64 functions for any source bit depths
- Enhanced: ConvertBits: allow fulls-fulld combinations when either clip is 32bits
E.g. after a 8->32 bit fulls=false fulld=true:
Y: 16..235 -> 0..1
U/V: 16..240 -> -0.5..+0.5
Note: now ConvertBits does not assume full range for YUV 32 bit float.
Default values of fulls and fulld are now true only for RGB colorspaces. - New: LoadVirtualdubPlugin update: Update from interface V6 to V20, and Filtermod version 6 (partial)
- Source: move to c++17, 'if constexpr' requires. Use Visual Studio 2017 (or GCC 7?). CMakeLists.txt changed.
- Source: C api: AVSC_EXPORT to dllexport in capi.h for avisynth_c_plugin_init
- Source: C api: avs_is_same_colorspace VideoInfo parameters to const
- Project struct: changelog to git.
- Include current avisynth header files and def/exp file in installer, when SDK is chosen
Avisynth+ r2664 (20180328)
Fix
YUY2 Sharpen overflow artifacts - e.g. Sharpen(0.6)
Levels: 32 bit float shift in luma
Merge sse2 for 10-14bits (regression)
AVX2 resizer possible access violation in extreme resizes (e.g. 600->20)
32bit float PlanarRGB<->YUV conversion matrix
VfW: fix b64a output for OPT_Enable_b64a=true
Enhanced
VfW output P010 and P016 conversion to SSE2 (VfW output is used by VirtualDub for example)
ColorYUV: recalculate 8-16 bit LUT in GetFrame only when changed frame-by-frame (e.g. in autowhite)
ConvertBits 32->8 sse2/avx2 and 32->10..16 sse41/avx2 (8-15x speed)
Avisynth+ r2636 (20180302)
Fix
Blur/Sharpen crashed when YUY2.width<8, RGB32.width<4, RGB64.width<2
ColorYUV: don't apply TV range gamma for opt="coring" when explicit "PC->TV" is given
ColorbarsHD: 32bit float properly zero(0.5)-centered chroma
Avisynth+ r2632 (20180301)
Fix
- Fix: IsInterleaved returned false for RGB48 and RGB64 (raffriff42)
- Fix: SubTitle for Planar RGB/RGBA: wrong text colors (raffriff42)
- Fix: Packed->Planar RGB conversion failed on SSE2-only computers (SSSE3 instruction used)
- Fix: Resizers for 32 bit float rare random garbage on right pixels (simd code NaN issue)
Enhanced
- Blur, Sharpen
AVX2 for 8-16 bit planar colorspaces (>1.35x speed on i7-7770)
SSE2 for 32 bit float formats (>1.5x speed on i7-7770) - Completely rewritten 16bit and float resizers, much faster (and not only with AVX2)
- 8 bit resizers: AVX2 support
- Speed up converting from RGB24/RGB48 to Planar RGB(A) - SSSE3, approx. doubled fps
- Enhanced: VfW: exporting Y416 (YUV444P16) to SSE2.
New/Modded
- ConvertFPS supports 10-32 bits, planar RGB(A), YUV(A)
- New script function: int BitSetCount(int[, int, int, ...])
- Modded script function: Hex(int , int "width"=0), new "width" parameter
- Modded script function: HexValue(String, "pos"=1) new pos parameter
- Modded script function: ReplaceStr(String, String, String[, Boolean "sig"=false]) New parameter: sig for case - insensitive search (Default false: exact search)
- New script functions: TrimLeft, TrimRight, TrimAll for removing beginning/trailing whitespaces from a string.
- New in ColorYUV: New parameter: bool f2c="false". When f2c=true, the function accepts the Tweak-like parameters for gain, gamma and contrast
- New/Fixed in ColorYUV: Parameter "levels" accepts "TV". (can be "TV->PC", "PC->TV", "PC->TV.Y")
- New: now gamma calculation is TV-range aware when either levels is "TV->PC" or coring = true or levels is "TV"
New in ColorYUV: 32 bit float support. - ColorYUV: can specify bits=32 when showyuv=true -> test clip in YUV420PS format
- Modded: remove obsolate "scale" parameter from ConvertBits.
- Internal: 8-16 bit YUV chroma to 32 bit float: keep middle chroma level (e.g. 128 in 8 bits) at 0.5. Calculate chroma as (x-128)/255.0 + 0.5 and not x/255.0
(Note: 32 bit float chroma center will be 0.0 in the future) - New: Histogram parameter "keepsource"=true (raffriff42) for "classic", "levels" and "color", "color2"
- New: Histogram type "color" to accept 8-32bit input and "bits"=8,9,..12 display range
- New: Histogram parameter "markers"=true. Markers = false disables extra markers/coloring for "classic" and "levels"