AWarpSharp2/aWarpSharp2
From Avisynth wiki
(Difference between revisions)
(minor touchup) |
(small documentation update) |
||
Line 1: | Line 1: | ||
{{FilterCat4|External_filters|Plugin_functions|Adjustment_filters|Sharpeners}} | {{FilterCat4|External_filters|Plugin_functions|Adjustment_filters|Sharpeners}} | ||
− | + | <tt>aWarpSharp2</tt> performs edge detection, blurring, and warping, all in one. | |
<br> | <br> | ||
<br> | <br> | ||
Line 10: | Line 10: | ||
<br> | <br> | ||
::{{Par2|thresh|int|128}} | ::{{Par2|thresh|int|128}} | ||
− | :::Saturation limit for edge detection. Reduce for less aggressive sharpening. | + | :::Saturation limit for edge detection; no pixel in the edge mask will have a value greater than {{Template:FuncDef3|thresh}}. Reduce for less aggressive sharpening. |
:::Range: 0 to 255 | :::Range: 0 to 255 | ||
<br> | <br> | ||
::{{Par2|blur|int|2}} | ::{{Par2|blur|int|2}} | ||
− | :::Number of blur passes over edge mask. Less passes increase sharpening effect, but can produce major artifacts with high {{Template: | + | :::Number of blur passes over edge mask. Less passes increase sharpening effect, but can produce major artifacts with high {{Template:FuncDef3|depth}} and {{Template:FuncDef3|thresh}} values.<br> |
− | :::You can use values higher than 100, but probably won't see any difference. Chroma is processed with (blur+1)/2 passes.<br> | + | :::You can use values higher than 100, but probably won't see any difference. Chroma is processed with <code>({{Template:FuncDef3|blur}}+1)/2</code> passes.<br> |
:::Range: 0 to 100 | :::Range: 0 to 100 | ||
− | :::<span style="color:red">'''Note:'''</span> Unless {{Template: | + | :::<span style="color:red">'''Note:'''</span> Unless {{Template:FuncDef3|blur}} is specifically set, it will default to 3 if {{Template:FuncDef3|type}}=1. |
<br> | <br> | ||
::{{Par2|type|int|0}} | ::{{Par2|type|int|0}} | ||
:::Type of blur: | :::Type of blur: | ||
− | :::* 0 : radius 6 blur. | + | :::* 0 : radius 6 blur (some kind of 13x13 average). |
− | :::* 1 : radius 2 blur, requires around 8x more passes than {{Template: | + | :::* 1 : radius 2 blur (some kind of 5x5 average), requires around 8x more passes than {{Template:FuncDef3|type}}=0 for the same effect (will be 2.5x slower), but will produce better quality. |
<br> | <br> | ||
::{{Par2|depth|int|16}} | ::{{Par2|depth|int|16}} | ||
− | :::Strength of the final warping. Negative values result in warping in opposite direction. | + | :::Strength of the final warping. Negative values result in warping in opposite direction, i.e. will blur the image instead of sharpening. |
:::Range: -128 to 127 | :::Range: -128 to 127 | ||
+ | :::<span style="color:red">'''Note:'''</span> Chroma channels are internally processed with <code>{{Template:FuncDef|depth}}/2</code>. | ||
<br> | <br> | ||
::{{Par2|chroma|int|4}} | ::{{Par2|chroma|int|4}} | ||
− | :::Processing mode for chroma | + | :::Processing mode for the chroma channels (U and V): |
− | :::* 0 : fill with | + | :::* 0 : fill with 0x80(128), output is grayscale. |
− | :::* 1 : don't care | + | :::* 1 : don't care - chroma will be trashed. |
− | :::* 2 : copy | + | :::* 2 : copy chroma channels from the input clip. |
− | :::* 3 : process | + | :::* 3 : process chroma; create an edge mask from each chroma channel and use those to warp each chroma channel individually. |
− | :::* 4 : | + | :::* 4 : process chroma; use the edge mask from the luma to warp the chroma channels. |
− | :::* 5 : same as 3, but don't process luma | + | :::* 5 : same as 3, but don't process luma. |
− | :::* 6 : same as 4, but don't process luma | + | :::* 6 : same as 4, but don't process luma. |
− | :::Luma plane (Y) is always processed, except for mode 5 and 6 which simply copy the luma | + | :::Luma plane (Y) is always processed, except for mode 5 and 6 which simply copy the luma channel from the input clip. |
<br> | <br> | ||
== Examples == | == Examples == | ||
aWarpSharp2 with default values: | aWarpSharp2 with default values: | ||
[[AviSource]]("Blah.avi") | [[AviSource]]("Blah.avi") | ||
− | aWarpSharp2(thresh=128, blur=2, type=0, depth=16, chroma=4) | + | aWarpSharp2(thresh=128, blur=2, type=0, depth=16, chroma=4)<br> |
+ | #The same as aWarp(aSobel().aBlur(blur=2, type=0), depth=16) but a bit faster. | ||
<br> | <br> | ||
Guide chroma channels with luma edge mask but only process chroma (luma channel will be copied from the input clip). | Guide chroma channels with luma edge mask but only process chroma (luma channel will be copied from the input clip). |
Latest revision as of 23:01, 9 November 2015
aWarpSharp2 performs edge detection, blurring, and warping, all in one.
[edit] Syntax and Parameters
- aWarpSharp2 (clip, int "thresh", int "blur", int "type", int "depth", int "chroma")
- clip =
- Input clip.
- clip =
- int thresh = 128
- Saturation limit for edge detection; no pixel in the edge mask will have a value greater than thresh. Reduce for less aggressive sharpening.
- Range: 0 to 255
- int thresh = 128
- int blur = 2
- Number of blur passes over edge mask. Less passes increase sharpening effect, but can produce major artifacts with high depth and thresh values.
- You can use values higher than 100, but probably won't see any difference. Chroma is processed with
(blur+1)/2
passes.
- Range: 0 to 100
- Number of blur passes over edge mask. Less passes increase sharpening effect, but can produce major artifacts with high depth and thresh values.
- int blur = 2
- Note: Unless blur is specifically set, it will default to 3 if type=1.
- int type = 0
- Type of blur:
- 0 : radius 6 blur (some kind of 13x13 average).
- 1 : radius 2 blur (some kind of 5x5 average), requires around 8x more passes than type=0 for the same effect (will be 2.5x slower), but will produce better quality.
- Type of blur:
- int type = 0
- int depth = 16
- Strength of the final warping. Negative values result in warping in opposite direction, i.e. will blur the image instead of sharpening.
- Range: -128 to 127
- Note: Chroma channels are internally processed with
depth/2
.
- int depth = 16
- int chroma = 4
- Processing mode for the chroma channels (U and V):
- 0 : fill with 0x80(128), output is grayscale.
- 1 : don't care - chroma will be trashed.
- 2 : copy chroma channels from the input clip.
- 3 : process chroma; create an edge mask from each chroma channel and use those to warp each chroma channel individually.
- 4 : process chroma; use the edge mask from the luma to warp the chroma channels.
- 5 : same as 3, but don't process luma.
- 6 : same as 4, but don't process luma.
- Luma plane (Y) is always processed, except for mode 5 and 6 which simply copy the luma channel from the input clip.
- Processing mode for the chroma channels (U and V):
- int chroma = 4
[edit] Examples
aWarpSharp2 with default values:
AviSource("Blah.avi") aWarpSharp2(thresh=128, blur=2, type=0, depth=16, chroma=4)
#The same as aWarp(aSobel().aBlur(blur=2, type=0), depth=16) but a bit faster.
Guide chroma channels with luma edge mask but only process chroma (luma channel will be copied from the input clip).
aWarpSharp2(thresh=128, blur=2, type=0, depth=16, chroma=6)
#Identical to MergeChroma(last, aWarpSharp2()) but faster and more memory efficient.
Process chroma channels with their own independent edge mask and copy luma channel from the input clip.
aWarpSharp2(thresh=128, blur=2, type=0, depth=16, chroma=5)
#Identical to MergeChroma(last, aWarpSharp2(chroma=3)) but faster and more memory efficient.
Only process the luma channel and copy chroma channels from the input clip.
aWarpSharp2(thresh=128, blur=2, type=0, depth=16, chroma=2)
#Identical to MergeLuma(last, aWarpSharp2()) but faster and more memory efficient.
Back to aWarpSharp2 ←