Blur

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(formatting, links, phrasing *** see talk page ***)
Line 24: Line 24:
 
{{Par2|amountV|float|(amountH)}}
 
{{Par2|amountV|float|(amountH)}}
 
:You can use 2 arguments to set independent vertical and horizontal blurring or sharpening: for example,  
 
:You can use 2 arguments to set independent vertical and horizontal blurring or sharpening: for example,  
::<code>Blur(0,1) </code>
+
::<code>Blur(0,1)</code>
 
:will blur vertical only, perhaps to blend interlaced lines together.  
 
:will blur vertical only, perhaps to blend interlaced lines together.  
  
Line 37: Line 37:
  
 
Chaining calls to '''Sharpen''' is not a good idea, as the image quickly deteriorates.  
 
Chaining calls to '''Sharpen''' is not a good idea, as the image quickly deteriorates.  
 +
 +
 +
==== Developer notes ====
 +
'''Blur''' uses the kernel [(1−1/2^amount)/2, 1/2^amount, (1−1/2^amount)/2]. The largest allowable argument for Blur is log2(3) (which is about 1.58), which corresponds to a (1/3,1/3,1/3) kernel. A value of 1.0 gets you a (1/4,1/2,1/4) kernel for example.
 +
Likewise Blur(1.0).Blur(1.0) is a convolution of the kernel (1/4,1/2,1/4) with itself, that is a (1/4,1/2,1/4)*(1/4,1/2,1/4) = (1/16,4/16,6/16,4/16,1/16) kernel. It can be read of [https://en.wikipedia.org/wiki/Pascal's_triangle Pascal's triangle].
  
  

Revision as of 18:43, 16 March 2016

Blur(clip clip, float amount, bool MMX)
Blur(clip, float amountH, float amountV, bool MMX)

A 3×3 kernel blurring filter.


Sharpen(clip clip, float amount, bool MMX)
Sharpen(clip, float amountH, float amountV, bool MMX)

A 3×3 kernel sharpening filter; the inverse of Blur.


float  amount = (required)

The allowable range for Blur is from -1.0 to +1.58
The allowable range for Sharpen is from -1.58 to +1.0
Negative Blur actually sharpens the image; in fact Sharpen(n) is just an alias for Blur(-n).


float  amountH = (required)
float  amountV = (amountH)

You can use 2 arguments to set independent vertical and horizontal blurring or sharpening: for example,
Blur(0,1)
will blur vertical only, perhaps to blend interlaced lines together.


bool  MMX = true

This option should always be true.


Notes

If you need a larger radius Gaussian blur, try chaining several Blurs together:

Blur(1.0).Blur(1.0).Blur(1.0)

Chaining calls to Sharpen is not a good idea, as the image quickly deteriorates.


Developer notes

Blur uses the kernel [(1−1/2^amount)/2, 1/2^amount, (1−1/2^amount)/2]. The largest allowable argument for Blur is log2(3) (which is about 1.58), which corresponds to a (1/3,1/3,1/3) kernel. A value of 1.0 gets you a (1/4,1/2,1/4) kernel for example. Likewise Blur(1.0).Blur(1.0) is a convolution of the kernel (1/4,1/2,1/4) with itself, that is a (1/4,1/2,1/4)*(1/4,1/2,1/4) = (1/16,4/16,6/16,4/16,1/16) kernel. It can be read of Pascal's triangle.


Changes

v2.58 MMX routines fixed (have full 8 bit precision now); mmx=true by default
v2.57 added MMX option
Personal tools