VerticalCleaner

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (Parameters)
m (archived links)
 
(13 intermediate revisions by one user not shown)
Line 1: Line 1:
{{FilterCat|External_filters|Denoisers|Spatial Denoisers}}
+
{{FilterCat4|External_filters|Plugins|Denoisers|Spatial_denoisers}}
{{Filter
+
{{Filter3
 
| {{Author/kassandro}}
 
| {{Author/kassandro}}
| V0.1
+
| v0.1
| [http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar VericalCleaner]
+
| [http://web.archive.org/web/20140420182854/http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar VerticalCleaner.rar]
 
| Spatial Denoisers
 
| Spatial Denoisers
|
+
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
* YUY2
+
|6=<strike>[http://videoprocessing.fr.yuku.com/reply/647/Can-use-quantile-like-vertical-median-filter#reply-647 VideoProcessing Forum]</strike>}}
* YV12
+
 
| GPL
+
== Description ==
|}}
+
A fast vertical median plugin which comes in 4 versions:
 +
:{| class="wikitable" border="1"; width="700px"
 +
|-
 +
!!width="200px"| Name
 +
!!width="500px"| Comments
 +
|-
 +
|VerticalCleanerS.dll
 +
|Statically linked [[SSE]] version.
 +
|-
 +
|VerticalCleaner.dll
 +
|Dynamically linked [[SSE]] version.
 +
|-
 +
|VerticalCleanerSSE2.dll
 +
|Dynamically linked [[SSE2]] version.
 +
|-
 +
|VerticalCleanerSSE3.dll
 +
|Dynamically linked [[SSE3]] version. [NOT RECOMMENDED]
 +
|-
 +
! colspan="2"| *VerticalCleanerSSE2.dll is highly recommended as it's considered to be the most compatible and stable.
 +
|}
 
<br>
 
<br>
== Introduction ==
+
<span style="color:red">'''Note: [[RgTools]] is recommended as a modern drop-in replacement for VerticalCleaner.'''</span>
: A fast vertical median plugin.<br>
+
<br>
 +
<br>
 +
 
 +
== Requirements ==
 +
* AviSynth 2.5.8 or later
 +
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only
 +
* Supported color formats: [[YUY2]], [[YV12]]
  
::There are 4 version of the plugin:
+
* MSVCR80.DLL
:::* VerticalCleaner.dll = dynamically linked SSE version
+
:::* VerticalCleanerS.dll = statically linked SSE version
+
:::* VerticalCleanerSSE2.dll = dynamically linked SSE2 version
+
:::* VerticalCleanerSSE3.dll = dynamically linked SSE3 version<br>
+
==== Requirements ====
+
:* [[YV12]]
+
:* [[YUY2]]
+
 
<br>
 
<br>
  
== Syntax and Parameters ==
+
== [[Script variables|Syntax and Parameters]] ==
:{{Template:FuncDef| VerticalCleaner(clip "input", int "mode", bool "planar")}}
+
:{{Template:FuncDef| VerticalCleaner (''clip'', ''int'' "mode", ''bool'' "planar")}}
 
<br>
 
<br>
::{{Par|mode|int|2}}
+
::{{Par2| |clip| }}
 +
:::Input clip.
 +
<br>
 +
::{{Par2|mode|int|2}}
 
:::Modes:
 
:::Modes:
::::* 0 : copy the frame
+
::::* 0 : copy input
 
::::* 1 : vertical median
 
::::* 1 : vertical median
 
::::* 2 : relaxed vertical median (preserves more detail)<br>
 
::::* 2 : relaxed vertical median (preserves more detail)<br>
  
:::::Description of mode 2:
 
::::::Let b1, b2, c, t1, t2 be a vertical sequence of pixels. The center pixel c is to be modified in terms of the 4 neighbours.
 
::::::For simplicity let us assume that b2 <= t1. Then in mode 1, c is clipped with respect to b2 and t1, i.e. c is replaced by max(b2, min(c, t1)).
 
::::::In mode 2 the clipping intervall is widened, i.e. mode 2 is more conservative than mode 1.
 
::::::If b2 > b1 and t1 > t2, then c is replaced by max(b2, min(c, max(t1,d1) )), where d1 = min(b2 + (b2 - b1), t1 + (t1 - t2)).
 
::::::In other words, only if the gradient towards the center is positive on both clipping ends, then the upper clipping bound may be larger.
 
::::::If b2 < b1 and t1 < t2, then c is replaced by max(min(b2, d2), min(c, t1)), where d2 = max(b2 - (b1 - b2), t1 - (t2 - t1)).
 
::::::In other words, only if the gradient towards the center is negative on both clipping ends, then the lower clipping bound may be smaller.
 
::::::In mode 1 the top and the bottom line are always left unchanged. In mode 2 the two first and the two last lines are always left unchanged.
 
 
<br>
 
<br>
::{{Par|planar|bool|false}}
+
::{{Par2|planar|bool|false}}
 
:::See SSETools Interleaved2Planar.  
 
:::See SSETools Interleaved2Planar.  
 +
<br>
 +
== Mode Description==
 +
Written by [https://web.archive.org/web/20170616143827/http://videoprocessing.fr.yuku.com/sreply/649/Can-use-quantile-like-vertical-median-filter Kassandro]<br>
 +
 +
Let b1, b2, c, t1, t2 be a vertical sequence of pixels. The center pixel c is to be modified in terms of the 4 neighbours. For simplicity let us assume that b2 <= t1. Then in mode 1, c is clipped with respect to b2 and t1, i.e. c is replaced by max(b2, min(c, t1)). In mode 2 the clipping intervall is widened, i.e. mode 2 is more conservative than mode 1. If b2 > b1 and t1 > t2, then c is replaced by max(b2, min(c, max(t1,d1) )), where d1 = min(b2 + (b2 - b1), t1 + (t1 - t2)). In other words, only if the gradient towards the center is positive on both clipping ends, then the upper clipping bound may be larger.
 +
If b2 < b1 and t1 < t2, then c is replaced by max(min(b2, d2), min(c, t1)), where d2 = max(b2 - (b1 - b2), t1 - (t2 - t1)). In other words, only if the gradient towards the center is negative on both clipping ends, then the lower clipping bound may be smaller.<br>
 +
In mode 1 the top and the bottom line are always left unchanged. In mode 2 the two first and the two last lines are always left unchanged.<br>
 
<br>
 
<br>
  
 
== Examples ==
 
== Examples ==
 +
VerticalCleaner with default values:
 
  [[AviSource]]("Blah.avi")
 
  [[AviSource]]("Blah.avi")
  VerticalCleaner()
+
  VerticalCleaner(mode=2, planar=false)
 
<br>
 
<br>
 
 
== Changelog ==
 
== Changelog ==
 
  2008-02-28 :
 
  2008-02-28 :
 
   - Initial release
 
   - Initial release
 +
<br>
 +
== Archived Downloads ==
 +
{| class="wikitable" border="1"; width="600px"
 +
|-
 +
!!width="100px"| Version
 +
!!width="150px"| Download
 +
!!width="150px"| Mirror
 +
|-
 +
!v0.1
 +
|<strike>[http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar VericalCleaner.rar]</strike>
 +
|[http://web.archive.org/web/20140420182854/http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar VerticalCleaner.rar]
 +
|}
 
<br>
 
<br>
  
== Links ==
+
==External Links ==
- [http://videoprocessing.fr.yuku.com/sreply/651/Can-use-quantile-like-vertical-median-filter VideoProcessing Forum] - Parameter description by Kassandro.<br>
+
*[https://web.archive.org/web/20170616094128/http://videoprocessing.fr.yuku.com/sreply/651/Can-use-quantile-like-vertical-median-filter VideoProcessing Forum] - Parameter description by Kassandro.<br>
- [http://videoprocessing.fr.yuku.com/sreply/649/Can-use-quantile-like-vertical-median-filter VideoProcessing Forum] - Mode 2 explanation by Kassandro.
+
*[https://web.archive.org/web/20170616143827/http://videoprocessing.fr.yuku.com/sreply/649/Can-use-quantile-like-vertical-median-filter VideoProcessing Forum] - Mode 2 explanation by Kassandro.
 +
<br>
 +
<br>
 +
-----------------------------------------------
 +
'''Back to [[External_filters#Spatial_Denoisers|External Filters]] &larr;'''

Latest revision as of 18:40, 17 February 2020

Abstract
Author Kassandro
Version v0.1
Download VerticalCleaner.rar
Category Spatial Denoisers
License GPLv2
Discussion VideoProcessing Forum

Contents

[edit] Description

A fast vertical median plugin which comes in 4 versions:

Name Comments
VerticalCleanerS.dll Statically linked SSE version.
VerticalCleaner.dll Dynamically linked SSE version.
VerticalCleanerSSE2.dll Dynamically linked SSE2 version.
VerticalCleanerSSE3.dll Dynamically linked SSE3 version. [NOT RECOMMENDED]
*VerticalCleanerSSE2.dll is highly recommended as it's considered to be the most compatible and stable.


Note: RgTools is recommended as a modern drop-in replacement for VerticalCleaner.

[edit] Requirements

  • MSVCR80.DLL


[edit] Syntax and Parameters

VerticalCleaner (clip, int "mode", bool "planar")


clip   =
Input clip.


int  mode = 2
Modes:
  • 0 : copy input
  • 1 : vertical median
  • 2 : relaxed vertical median (preserves more detail)


bool  planar = false
See SSETools Interleaved2Planar.


[edit] Mode Description

Written by Kassandro

Let b1, b2, c, t1, t2 be a vertical sequence of pixels. The center pixel c is to be modified in terms of the 4 neighbours. For simplicity let us assume that b2 <= t1. Then in mode 1, c is clipped with respect to b2 and t1, i.e. c is replaced by max(b2, min(c, t1)). In mode 2 the clipping intervall is widened, i.e. mode 2 is more conservative than mode 1. If b2 > b1 and t1 > t2, then c is replaced by max(b2, min(c, max(t1,d1) )), where d1 = min(b2 + (b2 - b1), t1 + (t1 - t2)). In other words, only if the gradient towards the center is positive on both clipping ends, then the upper clipping bound may be larger. If b2 < b1 and t1 < t2, then c is replaced by max(min(b2, d2), min(c, t1)), where d2 = max(b2 - (b1 - b2), t1 - (t2 - t1)). In other words, only if the gradient towards the center is negative on both clipping ends, then the lower clipping bound may be smaller.
In mode 1 the top and the bottom line are always left unchanged. In mode 2 the two first and the two last lines are always left unchanged.

[edit] Examples

VerticalCleaner with default values:

AviSource("Blah.avi")
VerticalCleaner(mode=2, planar=false)


[edit] Changelog

2008-02-28 :
 - Initial release


[edit] Archived Downloads

Version Download Mirror
v0.1 VericalCleaner.rar VerticalCleaner.rar


[edit] External Links




Back to External Filters

Personal tools