**v1.0.29 (20240302)
- TDecimate: allow noblend=true when hybrid=1, noblend default value is false when hybrid=1 to keep backward compatibility.
- TDecimate to fill new frame properties: TDecimateCycleMetrics (float array), TDecimateCycleMetricsPrev, TDecimateCycleMetricsNext, TDecimateCycleFrameNums (int array), TDecimateCycleFrameNumsPrev, TDecimateCycleFrameNumsNext, TDecimateCycleBlendStatus Issue #48: #48
- Fix Issue #46: TDecimate(hybrid=3) blending with wrong frame #46
**v1.0.28 (20231210)
- Request #43: (#43) TDecimate debug parameters displayDecimation, displayOpt. Able to show << or >> instead of ** on debug display by the distance from the last decimated frame compared to displayOpt.
- Fix minor display glitch (regression since v1.0.19pack): display=true would duplicate the most bottom frame info text to the top position of the next column.
**v1.0.27 (20230511)
- Fix #40: TDecimate: frame properties were not inherited at specific modes (20230511)
- Implement #39: CFrameDiff, FrameDiff: add offset parameter (int, default 1), to compare frames more than 1 distance away. offset value must be >=1, already existing prevf parameter is used to set the direction.
**v1.0.27test (20220915) (bugfixes, frame property support backport from VapourSynth version -20220915)
- Fix: TDecimate mode 0,1 crash in 10+bits in blend (dubhater)
- Fixes in Mode 0,1 when clip2 is different format (dubhater)
- Fix: slow C code was used in calcMetricCycle.blurframe (dubhater)
- Fix: V14(?) regression TDecimate fullInfo was always false (dubhater), ("Don't know what it affected")
- MacOS build fixes (akarin)
- mingw build fixes
- Source code: refactorings, backported from VapourSynth port (dubhater, https://github.com/dubhater/vapoursynth-tivtc),
- Source code: backport other simplification changes.
- Frame properties (priority over burned-into-image hints). Similarly to bitmapped hints, they are used when parameter "hint" is true.
Frame properties set by TFM: TFMMatch, _Combed, TFMD2VFilm, TFMField, TFMMics, TFMPP
Frame properties read by TFM and TDecimate: TFMMatch, TFMD2VFilm, TFMField
Frame properties read by TFMPP: TFMField, _Combed
Frame properties read by TDecimate creation: TFMPP (but if Avisynth variable "TFMPPValue" exists then the variable has priority over it)
Frame properties never read: TFMMics
Traditionally, TFM is using a 32 bit "hint" encoded in the lsb bits of the first 32 pixels of a frame.
When Avisynth interface V8 is available, then frame properties are used instead of the image destructing bit hints.
- Bitmapped hint replacement frame property names are: TFMMatch, _Combed, TFMD2VFilm, TFMField. Mapping: Bits 0-2: (ISP, ISC, ISN, ISB, ISU, ISDB, ISDT) are filled upon match (TFMMatch) and combed (_Combed) and field (TFMField) ISP: match == 0 ISC: match == 1 && combed < 2 ISN: match == 2 ISB: match == 3 ISU: match == 4 ISDB: match == 1 && combed > 1 && field == 0 ISDT: match == 1 && combed > 1 && field == 1 Bit 3: set to 1 if field == 1 (TFMField 0 or 1) Bit 4: set to 1 if combed > 1 (_Combed) Bit 5: set to 1 if d2vfilm is true (TFMD2VFilm)
- Other frame properties: TFMMics: array[6] of integer TFMPP: integer Frame properties set by TDecimate: TDecimateCycleStart (not used) TDecimateCycleMaxBlockDiff uint64_t[] (not used) TDecimateOriginalFrame (not used) _DurationNum, _DurationDen (not used yet, for variable frame rate (?), backport from VapourSynth port is in progress)
v1.0.26 (20210222)
- Fix: TDecimate YV16 possible crash in metrics calculation
v1.0.25 (20201214)
- Fix: TFM, TDecimate and others: treat parameter 'chroma' as "false" for greyscale clips
v1.0.24 (20201214)
- Fix: TFM: do not give error on greyscale clip
v1.0.23 (20201020)
- RequestLinear: fix: initial large frame number difference out of order frame requests caused by heavy multithreading could result in "internal error - frame not in cache"
v1.0.22 (20200805)
- TDecimate, FrameDiff: further fix of SAD based metric calculation for block size 32 (v15 regression) (report and fix by 299792458m)
v1.0.21 (20200727)
- TDecimate, FrameDiff: fix x-block size usage in metric calculation (v15 regression) (report and fix by 299792458m)
v1.0.20 (20200622)
- TFM: fix crash when PP=1 and display=true (v19 regression)
v1.0.19 (20200611)
- TIVTC filter: overall greyscale and 10-16 bit support
- "display" works for all colorspaces (not only for YUY2 and YV12) (v1.0.18 - no release)
- Fix: TFM: possible crash on YV16 for chroma=true (checkComb)
- Fix: TDecimate: fix mode=5 crash at the initializing stage due to an unallocated metric buffer (old bug)
- Fix: TFM: y0 (and y1) banding exclusion parameters are properly handled (by knowing that a frame is processed between 2 and (y0-2) for internal algorithmic reasons)
v1.0.17 (20200512)
- Fix: TDecimate clip2 colorspace check
- Fix: Metric calculation (regression after v14)
v1.0.16 (20200510)
- Fix: TFMPP clip2 colorspace similarity check failed
v1.0.15 (20200508)
- Fix random crashes (due to old plugin assumed that Avisynth framebuffer alignment is at most 16 bytes)
- Other small fixes, which I do not know what affected
- Support planar YV411, YV16 and YV24 besides YV12 (YUY2 was not removed) (except on debug display modes)
- Huge refactor and code clean, made some parts common with TDeint, code un-duplicate-triplicate
- only C and SSE2, no MMX, no ISSE
- parameter opt=0 disables SSE2, 1-3 enables (was: 1:MMX 2:ISSE 3:SSE2)
- Add ClangCL, and XP configurations to the solutions. (note: MSVC can be quicker(!))
- Add AviSynth+ V8 interface support: passing frame properties
- Give error on greyscale or 10+ bit videos
- Todo: more refactor needed before moving to 10+ bit depth support
v1.0.14 (20190207)
- Fix: option slow=2 field<>0. Thanks to 299792458m. Regression since 1.0.6 caused by bad assembly code reverse engineering. Tritical's original 1.0.5 was O.K.
v1.0.13 (skipped) v1.0.12 (20190207) (incomplete, 1.0.14 replaces)
v1.0.11 (20180323)
- Revert to pre-1.0.9 usehint detection: conflicted with mode 5 (sometimes bad clip length was reported) (reason of the workaround (crash at mysterious circumstances) was eliminated: mmx state was not cleared in mvtools2)
- Fix: bad check for emptiness of orgOut parameter
v1.0.10 (20180119)
- integrate new orgOut parameter for TDecimate (by 8day) (see TDecimate - READ ME.txt)
v1.0.9 (20170608)
- Fix (workaround): Move frame hints detection from constructor into the first GetFrame (x64 build with 64 bit x264 crash under mysterious circumstances)
- Filters autoregister themselves as MT_SERIALIZED for Avisynth+, except MergeHints (MT_MULTI_INSTANCE) Note: for proper serialized behaviour under Avisynth+ MT, please use avs+ r2504 or later.
v1.0.8 (20170429)
- Fix: TFM PP=2 and PP=5 (Blend deint)
v1.0.7 (20170427)
- fix crash in FieldDiff (in new SIMD SSE2 rewrite)
v1.0.6 (20170421) - pinterf
- project migrated to VS 2015
- AVS 2.6 interface, no Avisynth 2.5.x support
- some fixes
- x64 port and readability: move all inline asm to simd intrinsics or C
- supports and requires SSE2
- MMX and ISSE is not supported, but kept in the source code for reference
- source code cleanups
v1.0.5 (2008) - tritical
- see old readmes