Version history ~~~~~~~~~~~~~~~ v.3.5.7 2011.07.15 Fixed a few bugs found while processing HDTV materials. v.3.5.6 2009.10.15 Updated the filter to enable processing of the HDTV 1080p material without problems. v.3.5.5 2008.03.11 Fixed a bug that caused spontaneous crashes in the configuration dialog window. The code is now compiled with Intel C++ Compiler for better performance. v.3.5.4 2003.06.18 Added support for interlaced video. Minimal kernel size (for smoothing) is reduced to 3 for a faster preview. Fixed bug produced "illegal instruction" error on Cyrix(VIA) CPUs. Fixed bug caused image shift when attempting to process odd width frames. Fixed bug caused occasional memory crashes reported by a few users. v.3.5.3 2003.05.11 Fixed bug with switching "Interrupted motion history" flag from script files. Fixed bug when the last spot in the motion history chain was not marked moving while "Interrupted motion history" was set. Fixed bug with the display of percentage of saturated pixels when preview is turned off. v.3.5.2 2003.03.25 No more time lag in preview window when changing frames. Added a checkbox in "Color" tab to bypass color correction for Preview. Added "percentage of saturated pixels" to help finding the optimal color correction settings. The effect of Brightness, Contrast, and Saturation sliders is doubled. Fixed compatibility issue with Hue/Saturation/Intensity filter. v.3.5.1 2003.03.19 Since this release, SpotRemover.vdf module contains all three versions of the code with different level of optimization: 1) MMX instructions; 2) MMX and CMOVxx instructions; 3) MMX, CMOVxx, and integer SSE instructions. Now pixels in a spot are replaced by default with the average of the previous and the next frames. In script files, it is possible to specify which frame to use (previous, next or the average of both). Fixed problems with dialog metrics at different system font sizes. Fixed the crash on the dialog startup at certain conditions. v.3.5.0 2003.03.14 New configuration options for "Basic" setup. New checkbox to allow interrupted history of spot's motion. New color control: "Saturation Balance". Preview window has no time lag during color adjustments. New "tabbed" interface. Tab switching shortcut keys: Ctrl-(Shift)Tab or Ctrl-PgUp/Dn. If shown, the Help window is synchronized during the tab switching. Input focus is automatically restored to the last used Tab and Control. Help pop-ups invoked by mouse hovering. All configuration parameters can be changed from script files. Script files may have comments (lines not beginning with a number). The format of the configuration strings of VirtualDub's VCF and JOBS files has changed. Old format is still supported. To use your old VCF and JOBS files you only need to replace the line VirtualDub.video.filters.Add("SpotRemover (3.4.2)"); with VirtualDub.video.filters.Add("SpotRemover (3.5)"); v.3.4.2 2003.01.26 Motion distances are now input as percents of the frame size. Added new mode for script file to change main parameters of the spot removal at specified frames. Fixed the case when restoring defaults resulted in the lost script file name. Minor optimizations in spot detection routine. v.3.4.1 2003.01.24 Maximal amount of spots per frame is now 96 (was 48). Smoothing module was rearranged. Now the Kernel width can be as low as 5 (was 9) for faster processing or debugging. Rounding in integer division is now more correct (from viewpoint of math). Its accuracy is about 0.4 of intensity step (which is 0...255). The drawback is that MMX_Only and the MMX+SSE versions do not produce identical results (MMX_Only uses special tricks to implement unsigned multiply, see below 2.0.1). Spots within the cell with motion (or just touching its edge) are now marked as moving. Motion table size increased to 24x18 (was 14x10). Optimized processing of the motion table. Optimized intensity difference comparison. Added new modes for script files to change motion threshold and color controls at specified frames. v.3.3.1 2003.01.17 Added highlighting of locked pixels: "Debug locking" option. See Help for details. Added MMX only version. Can be about 5% slower. Corrected behavior when a spot forced from a script file is overlapped by a detected real spot. optimized Script processing optimized Marking spots optimized Locking changed: now all parameters are saved as a string in VDub configuration (you need to edit your saved VCF files if any) fixed:(really rare situation) if kernel=13 then max ColorStrength is +2; if kernel=15 then max ColorStrength is +0 v.3.2.01 2003.01.03 Perimeter threshold is corrected for slim (horizontal or vertical) spots. Help system with context sensitive pop-ups. v.3.2 2002.12.18 Perimeter calculation is completely reworked and now can handle spots with irregular shapes. Now perimeter follows the spot's shape (previously, perimeter was treated always as rectangle) v.3.1 2002.12.06 Area and perimeter thresholds calculation reworked. Now they are calculated as ratios, i.e. higher threshold for a bigger spot. Previously, they were fixed thresholds. v.3.0.1 2002.11.15 Added more script file keys: m- forceMotion; c- forceClear(spot removal) v.3.0 2002.11.06 Added script file processing (copy from Previous/Next) v.2.7.1 2002.06.19 Bug fixed in calculation of indices for intensity table. Revealed for very small frame sizes. v.2.7 2002.06.12 Brightness/Contrast calculation is moved from CPP to ASM Brightness sliders are written/read from CFG file Changes in GUI v.2.6 2002.06.10 Added zone merging for adjacent zones to save the array size v.2.5.1 2002.06.08 Minor changes in calculation of perimeter clearance v.2.5 2002.06.05 Area fill criterion: Added zone deletion (to keep a spot) for a poorly filled zone. v.2.4.1 2002.06.04 Added highlighting of cells in motion table. v.2.4 2002.06.03 Added global motion detection based on comparison of intensities. The frame is divided in several cells. Zones are disabled in a cell with high motion. v.2.3.2 2002.05.30 Minimal/maximal assignment for zone's last intensity. Bugs fixed. v.2.3.1 2002.05.28 Zone extension is now 2. LastRow is doubled. BufIndex is a byte array. Stabilization is corrected v.2.3 2002.05.27 Added zone sorting by Y1 for correct zone closing as ZoneFrame3 and sorting by Y2 for later opening as ZoneFrame0 v.2.2.3 2002.05.22 FalseJump Lower Perimeter is coded without jumps. Added one more pixel in lower perimeter (during new zone creation). v.2.2.2 2002.05.21 Highlighting is done after stabilization. No leftovers. v.2.2.1 2002.05.20 PerimeterClearance moved to static location. v.2.2 2002.05.19 Zones can be highlighted (marked); Highlighted leftovers exist because of smoothing after highlighting; Bugs fixed. v.2.1 2002.05.10 Added Perimeter Clearance Check. v.2.0.2 2002.04.27 Speed optimizations v.2.0.1 2002.04.20 Smoothing: corrected "division": KERNEL_MAX=15, Weigth_max=17, Intensity_max=255 => 15*17*255 (16 bit unsigned multiply) v.2.0 2002.04.15 Completely rewritten on assembler v.1.3 correct working with cropped source (sum of modulos) v.1.2 Added color correction v.1.1 Added basic glitch removal v.1.0 Smoothing routine works!