SangNom2

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (Description)
m (Syntax and Parameters)
Line 35: Line 35:
 
<br>
 
<br>
 
== [[Script variables|Syntax and Parameters]] ==
 
== [[Script variables|Syntax and Parameters]] ==
:{{Template:FuncDef|SangNom2 (''clip'', ''int'' "order", ''int'' "aa", ''int'' "aac", ''int'' "threads")}}
+
:<code>{{Template:FuncDef|SangNom2 (clip, int "order", int "aa", int "aac", int "threads")}}</code>
 
<br>
 
<br>
::{{Par2|order|int|1}}
+
::<code>{{Par2|order|int|1}}</code>
 
:::Order of deinterlacing:
 
:::Order of deinterlacing:
  
Line 44: Line 44:
 
::::*2 : Single frame rate, Keep bottom field.
 
::::*2 : Single frame rate, Keep bottom field.
 
<br>
 
<br>
::{{Par2|aa|int|48}}
+
::<code>{{Par2|aa|int|48}}</code>
 
:::Strength of luma anti-aliasing.  
 
:::Strength of luma anti-aliasing.  
 
<br>
 
<br>
::{{Par2|aac|int|0}}
+
::<code>{{Par2|aac|int|0}}</code>
 
:::Strength of chroma anti-aliasing. The original [[SangNom]] always assumes {{Template:FuncDef|aa}}=0 for chroma processing. This makes some  
 
:::Strength of chroma anti-aliasing. The original [[SangNom]] always assumes {{Template:FuncDef|aa}}=0 for chroma processing. This makes some  
:::use cases harder to implement, so additional parameter {{Template:FuncDef|aac}} was introduced. Default value is 0 to maintain backward compatibility.  
+
:::use cases harder to implement, so additional parameter {{Template:FuncDef|aac}} was introduced. Default value is 0 to maintain backward compatibility.
 
<br>
 
<br>
::{{Par2|threads|int| }}
+
::<code>{{Par2|threads|int| }}</code>
 
:::Control how many threads SangNom2 uses. This plugin uses min(number of logical processors, 4) threads to do its job.  
 
:::Control how many threads SangNom2 uses. This plugin uses min(number of logical processors, 4) threads to do its job.  
 
:::In my tests performance doesn't get any better when using more than 4 threads. Internally it uses a simple thread pool.
 
:::In my tests performance doesn't get any better when using more than 4 threads. Internally it uses a simple thread pool.
 
<br>
 
<br>
 +
 
== Examples ==  
 
== Examples ==  
 
SangNom with default settings:
 
SangNom with default settings:

Revision as of 14:25, 12 May 2014

Abstract
Author tp7
Version v0.35
Download SangNom2-x86.zip
Category Deinterlacing
License MIT
Discussion


Contents

Description

SangNom2 is a reimplementation of MarcFD's old SangNom filter. Originally it's a single field deinterlacer using edge-directed
interpolation but it's also used in various anti-aliasing scripts. The output is not completely but mostly identical to the original SangNom.


What's different

  • It's open source
  • Correct borders processing
  • Additional colorspace support
  • Multithreading support
  • Requires SSE2
*Single threaded performance is mostly identical to the old version despite this plugin using SSE2.


Y8

One of the most important differences is Y8 support in AviSynth 2.6. This enables much faster anti-aliasing
(especially when used with FTurn plugin) without any chroma processing. See maa for example.


Requirements

- AviSynth 2.6.0 Alpha5 or later
- Supported color formats: Y8, YV12, YV16, YV24, YV411
- SSE2 capable CPU


Syntax and Parameters

SangNom2 (clip, int "order", int "aa", int "aac", int "threads")


int  order = 1
Order of deinterlacing:
  • 0 : Double frame rate, top and bottom fields are kept but DoubleWeave must be called before SangNom2.
  • 1 : Single frame rate, keep top field.
  • 2 : Single frame rate, Keep bottom field.


int  aa = 48
Strength of luma anti-aliasing.


int  aac = 0
Strength of chroma anti-aliasing. The original SangNom always assumes aa=0 for chroma processing. This makes some
use cases harder to implement, so additional parameter aac was introduced. Default value is 0 to maintain backward compatibility.


int  threads =
Control how many threads SangNom2 uses. This plugin uses min(number of logical processors, 4) threads to do its job.
In my tests performance doesn't get any better when using more than 4 threads. Internally it uses a simple thread pool.


Examples

SangNom with default settings:

AviSource("blah.avi")
SangNom2(order=1, aa=48, aac=0)


SangNom with double frame rate output:

AviSource("blah.avi")
DoubleWeave()
SangNom2(order=0, aa=48, aac=0)



Changelog

Version      Date            Changes
v0.35 11/26/2013 - x64 build added. Confirmed to be a little slower than x86 on some resolutions with 4 threads and faster in other cases.
v0.3 07/26/2013 - This plugin now works only with AviSynth 2.6 Alpha4 or later. All previous versions are not supported. Download previous release if you need that. - This version adds aac parameter, which allows to configure chroma aa strength. - It now also works on YV24 correctly, instead of processing only half chroma resolution.
v0.2 07/14/2013 - Second release, containing some significant performance improvements. - This plugin is now threaded with min(number of logical processors, 4) threads used by default. To change number of threads, just use threads parameter.
v0.1 07/13/2013 - First public release. Should be more or less stable but doesn't include many improvements.


Archived Downloads

Version Download Source Code
v0.35 SangNom2-x86.zip

SangNom2-x64.zip

0.35.zip
v0.3 SangNom2.dll v0.3.zip
v0.2 SangNom2.dll v0.2.zip
v0.1 SangNom2.dll v0.1.zip


External Links





Back to External Filters

Personal tools