MosquitoNR
From Avisynth wiki
(Difference between revisions)
m (Abstract) |
(v0.2 update) |
||
| (8 intermediate revisions by one user not shown) | |||
| Line 1: | Line 1: | ||
| − | {{ | + | {{FilterCat5|External_filters|Plugins|Plugins_x64|Restoration_filters|Deringing & Mosquito Noise}} |
| − | {{ | + | {{Filter3 |
| − | |{{Author/b_inary}} | + | |1={{Author/b_inary}}, {{Author/pinterf}} |
| − | |v0. | + | |2=v0.2 |
| − | |[ | + | |3=[https://github.com/pinterf/MosquitoNR/releases/ MosquitoNR_v0.2.7z] |
| − | |Deringing & Mosquito Noise | + | |4=Deringing & Mosquito Noise |
| − | |[http://www.gnu.org/licenses/gpl-2.0.txt GPLv2] | + | |5=[http://www.gnu.org/licenses/gpl-2.0.txt GPLv2] |
| − | |}} | + | |6=[http://forum.doom9.org/showthread.php?t=167582 Doom9 Thread]}} |
== Description == | == Description == | ||
| − | + | MosquitoNR is a noise reduction filter designed for mosquito noise, which is often caused by lossy compression such as MPEG.<br> | |
| − | + | This filter works as follows: | |
| − | + | :1. Compute low frequency components of the image. | |
| − | + | :2. Apply direction-aware blur (smoothing). This blur effectively reduces compression artifacts, but also breaks detail. | |
| − | + | :3. Restore the low frequency components to the blurred image. | |
| − | + | MosquitoNR processes luma only, to correctly process chroma take a look at the [[MosquitoNR#Examples|example]] below.<br> | |
<br> | <br> | ||
== Requirements == | == Requirements == | ||
| − | : | + | * [x86] [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6.0] |
| − | + | * [x64] [[AviSynth+]] | |
| − | + | * [[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]], [[YV16]], [[YV24]], [[YV411]], [[Y8]] | ||
| − | + | * CPU with [[SSE2]] support | |
<br> | <br> | ||
| − | == Syntax and Parameters == | + | == [[Script variables|Syntax and Parameters]] == |
:{{Template:FuncDef|MosquitoNR (''clip'', ''int'' "strength", ''int'' "restore", ''int'' "radius", ''int'' "threads")}} | :{{Template:FuncDef|MosquitoNR (''clip'', ''int'' "strength", ''int'' "restore", ''int'' "radius", ''int'' "threads")}} | ||
<br> | <br> | ||
| − | ::{{ | + | ::{{Par2| |clip| }} |
| + | :::Input clip | ||
| + | <br> | ||
| + | ::{{Par2|strength|int|16}} | ||
:::Range: 0 - 32 | :::Range: 0 - 32 | ||
::::Sets the strength of the blur. | ::::Sets the strength of the blur. | ||
| − | + | ::::Setting this value higher brings stronger noise reduction effect, but side effect will also become stronger. | |
<br> | <br> | ||
| − | ::{{ | + | ::{{Par2|restore|int|128}} |
:::Range: 0 - 128 | :::Range: 0 - 128 | ||
::::Sets the rate of restoring. | ::::Sets the rate of restoring. | ||
| − | + | ::::If set to 0, no restoring is performed. | |
| − | + | ::::If set to 128, low frequency components of the blurred image is completely replaced with those of the original image, and runs slightly faster. | |
<br> | <br> | ||
| − | ::{{ | + | ::{{Par2|radius|int|2}} |
:::Range: 1 - 2 | :::Range: 1 - 2 | ||
::::Sets the radius of the blur. | ::::Sets the radius of the blur. | ||
| − | :::: | + | ::::1 is faster, but will have insufficient effect in some cases. |
<br> | <br> | ||
| − | ::{{ | + | ::{{Par2|threads|int|0}} |
:::Range: 0 - 32 | :::Range: 0 - 32 | ||
::::Controls how many threads are used. | ::::Controls how many threads are used. | ||
| − | + | ::::By default, threads is set equal to automatically detected number of processors. | |
| − | + | ::::Since this filter needs a lot of memory access, thread efficiency is not very good. Setting this value lower might improve overall processing speed. | |
<br> | <br> | ||
== Examples == | == Examples == | ||
| − | MosquitoNR with default settings | + | MosquitoNR with default settings: |
[[AviSource]]("Blah.avi") | [[AviSource]]("Blah.avi") | ||
MosquitoNR(strength=16, restore=128, radius=2, threads=0) | MosquitoNR(strength=16, restore=128, radius=2, threads=0) | ||
| Line 59: | Line 63: | ||
[[AviSource]]("Blah.avi") | [[AviSource]]("Blah.avi") | ||
MosquitoNR() | MosquitoNR() | ||
| − | u = | + | u = UtoY8().MosquitoNR() |
| − | v = | + | v = VtoY8().MosquitoNR() |
YtoUV(u, v, last) | YtoUV(u, v, last) | ||
<br> | <br> | ||
== Changelog == | == Changelog == | ||
| − | + | Version Date Changes<br> | |
| − | + | v0.20 2022/03/23 - Moved to GitHub: https://github.com/pinterf/MosquitoNR | |
| − | + | - No longer a cpp 2.5 plugin: update to AviSynth v2.6 interface | |
| − | + | - Preserve frame properties when AviSynth+ | |
| − | + | - All inline assembly code is converted to SIMD intrinsics: 64 bit build possible | |
| − | + | - YUY2 support kept but handled as YV16 internally | |
| − | + | - Requires SSSE3 instead of SSE2 | |
| + | - Add DLL version resource<br> | ||
| + | v0.10 2013/11/29 - x64 version | ||
| + | - Compiled with Intel C++ Compiler XE 14.<br> | ||
| + | v0.10 2013/03/14 - Fixed a crash with AviSynth MT | ||
| + | - Added support for YV16, YV24, Y411, Y8 | ||
| + | - Some speed optimizations | ||
| + | - Added English documentation<br> | ||
| + | v120210 2012/02/10 - Initial release | ||
<br> | <br> | ||
| − | == Acknowledgments == | + | == Archived Downloads == |
| − | This filter is a combination of flash3kyuu's AviUtl plugin "smoothing filter" and nilpo's AviUtl plugin "low frequency components protection filter".<br> | + | {| class="wikitable" border="1"; width="500px" |
| + | |- | ||
| + | !!width="100px"| Version | ||
| + | !!width="150px"| Download | ||
| + | !!width="150px"| Mirror | ||
| + | |- | ||
| + | !v0.10 | ||
| + | |x86: [https://web.archive.org/web/20131028144351/http://www.geocities.jp/w_bean17/files/mosquito_nr_avisynth.zip mosquito_nr_avisynth.zip] | ||
| + | ---------- | ||
| + | x64: [https://www.dropbox.com/s/0dgrruxne80izus/MosquitoNR_0.10_x64.zip?dl=1 MosquitoNR_0.10_x64.zip] | ||
| + | |x86: [https://web.archive.org/web/20200521023440if_/https://files.videohelp.com/u/223002/mosquito_nr_avisynth.zip mosquito_nr_avisynth.zip] | ||
| + | -------- | ||
| + | x64: [https://web.archive.org/web/20200521023320if_/https://files.videohelp.com/u/223002/MosquitoNR_0.10_x64.zip MosquitoNR_0.10_x64.zip] | ||
| + | |} | ||
| + | |||
| + | * v0.10 x64 version compiled with Intel C++ Compiler XE 14. | ||
| + | |||
| + | <br> | ||
| + | ==Extenal Links == | ||
| + | === Acknowledgments === | ||
| + | This filter is a combination of flash3kyuu's AviUtl plugin [[Smoothing|"smoothing filter"]] and nilpo's AviUtl plugin waveletAF - "low frequency components protection filter".<br> | ||
This combination was proposed by POP@4bit. I thank all of them very much. | This combination was proposed by POP@4bit. I thank all of them very much. | ||
| − | :*flash3kyuu's web page (Japanese): http://www.geocities.jp/flash3kyuu/ | + | :*flash3kyuu's web page (Japanese): [https://web.archive.org/web/20190327173248/http://www.geocities.jp/w_bean17/ http://www.geocities.jp/flash3kyuu/] |
:*nilpo's web page (Japanese): http://nilposoft.info/aviutl-plugin/ | :*nilpo's web page (Japanese): http://nilposoft.info/aviutl-plugin/ | ||
:*POP@4bit's web page (Japanese): http://pop.4-bit.jp/?p=3362 | :*POP@4bit's web page (Japanese): http://pop.4-bit.jp/?p=3362 | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<br> | <br> | ||
<br> | <br> | ||
----------------------------------------------- | ----------------------------------------------- | ||
'''Back to [[External_filters#Deringing_.26_Mosquito_Noise|External Filters]] ←''' | '''Back to [[External_filters#Deringing_.26_Mosquito_Noise|External Filters]] ←''' | ||
Latest revision as of 15:08, 23 March 2022
| Abstract | |
|---|---|
| Author | b_inary, pinterf |
| Version | v0.2 |
| Download | MosquitoNR_v0.2.7z |
| Category | Deringing & Mosquito Noise |
| License | GPLv2 |
| Discussion | Doom9 Thread |
Contents |
[edit] Description
MosquitoNR is a noise reduction filter designed for mosquito noise, which is often caused by lossy compression such as MPEG.
This filter works as follows:
- 1. Compute low frequency components of the image.
- 2. Apply direction-aware blur (smoothing). This blur effectively reduces compression artifacts, but also breaks detail.
- 3. Restore the low frequency components to the blurred image.
MosquitoNR processes luma only, to correctly process chroma take a look at the example below.
[edit] Requirements
- [x86] AviSynth+ or AviSynth 2.6.0
- [x64] AviSynth+
- Progressive input only
- Supported color formats: YUY2, YV12, YV16, YV24, YV411, Y8
- CPU with SSE2 support
[edit] Syntax and Parameters
- MosquitoNR (clip, int "strength", int "restore", int "radius", int "threads")
- clip =
- Input clip
- clip =
- int strength = 16
- Range: 0 - 32
- Sets the strength of the blur.
- Setting this value higher brings stronger noise reduction effect, but side effect will also become stronger.
- Range: 0 - 32
- int strength = 16
- int restore = 128
- Range: 0 - 128
- Sets the rate of restoring.
- If set to 0, no restoring is performed.
- If set to 128, low frequency components of the blurred image is completely replaced with those of the original image, and runs slightly faster.
- Range: 0 - 128
- int restore = 128
- int radius = 2
- Range: 1 - 2
- Sets the radius of the blur.
- 1 is faster, but will have insufficient effect in some cases.
- Range: 1 - 2
- int radius = 2
- int threads = 0
- Range: 0 - 32
- Controls how many threads are used.
- By default, threads is set equal to automatically detected number of processors.
- Since this filter needs a lot of memory access, thread efficiency is not very good. Setting this value lower might improve overall processing speed.
- Range: 0 - 32
- int threads = 0
[edit] Examples
MosquitoNR with default settings:
AviSource("Blah.avi") MosquitoNR(strength=16, restore=128, radius=2, threads=0)
MosquitoNR processes only luma.
If you want to process chroma too, you can write a script like the following, but there might be no noticeable change.
AviSource("Blah.avi") MosquitoNR() u = UtoY8().MosquitoNR() v = VtoY8().MosquitoNR() YtoUV(u, v, last)
[edit] Changelog
Version Date Changes
v0.20 2022/03/23 - Moved to GitHub: https://github.com/pinterf/MosquitoNR - No longer a cpp 2.5 plugin: update to AviSynth v2.6 interface - Preserve frame properties when AviSynth+ - All inline assembly code is converted to SIMD intrinsics: 64 bit build possible - YUY2 support kept but handled as YV16 internally - Requires SSSE3 instead of SSE2 - Add DLL version resource
v0.10 2013/11/29 - x64 version - Compiled with Intel C++ Compiler XE 14.
v0.10 2013/03/14 - Fixed a crash with AviSynth MT - Added support for YV16, YV24, Y411, Y8 - Some speed optimizations - Added English documentation
v120210 2012/02/10 - Initial release
[edit] Archived Downloads
| Version | Download | Mirror |
|---|---|---|
| v0.10 | x86: mosquito_nr_avisynth.zip
|
x86: mosquito_nr_avisynth.zip
|
- v0.10 x64 version compiled with Intel C++ Compiler XE 14.
[edit] Extenal Links
[edit] Acknowledgments
This filter is a combination of flash3kyuu's AviUtl plugin "smoothing filter" and nilpo's AviUtl plugin waveletAF - "low frequency components protection filter".
This combination was proposed by POP@4bit. I thank all of them very much.
- flash3kyuu's web page (Japanese): http://www.geocities.jp/flash3kyuu/
- nilpo's web page (Japanese): http://nilposoft.info/aviutl-plugin/
- POP@4bit's web page (Japanese): http://pop.4-bit.jp/?p=3362
Back to External Filters ←