DeBlock
From Avisynth wiki
(Difference between revisions)
(reformatting, category) |
(→Syntax and Parameters: add planes parameter) |
||
(25 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{FilterCat6|External_filters|Plugins|Plugins_x64|Restoration_filters|Deblockers|Deep_color_tools}} |
− | {{ | + | {{Filter3 |
− | |{{Author/Manao}},{{Author/Fizick}} | + | |{{Author/Manao}},{{Author/Fizick}}, {{Author/tp7}}, [https://github.com/mysteryx93 MysteryX], [https://github.com/299792458m/ 299792458m] |
− | | | + | |@9802e03 (2020/08/30) |
+ | |[https://files.videohelp.com/u/223002/Avisynth-Deblock_299792458m_noAVX2req.7z Deblock_299792458m_noAVX2req.7z] | ||
|Deblocker | |Deblocker | ||
− | |5= | + | |5=[http://www.gnu.org/licenses/gpl-2.0.txt GPLv2] |
− | + | |6=[https://forum.doom9.org/showthread.php?t=110352 Doom9 Thread (original v1.2)]<br>[https://forum.doom9.org/showthread.php?t=175487 Doom9 Thread (update v1.3]}} | |
− | + | ||
− | + | ||
− | + | ||
− | |6 | + | |
− | + | ||
− | <br> | + | |
− | + | ||
==Description== | ==Description== | ||
It performs deblocking on the picture, using the deblocking filter of H264. It's useful to deblock the result of ''MVCompensate'' of [[MVTools]] plugin, etc.<br> | It performs deblocking on the picture, using the deblocking filter of H264. It's useful to deblock the result of ''MVCompensate'' of [[MVTools]] plugin, etc.<br> | ||
− | + | ||
<br> | <br> | ||
+ | == Requirements == | ||
+ | * [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6] | ||
+ | * [x64]: [[AviSynth+]] | ||
+ | * Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]] | ||
+ | **AviSynth+: all [[planar]] Y and YUV formats (8/10/12/14/16bit and float) are supported. | ||
<br> | <br> | ||
+ | |||
== [[Script variables|Syntax and Parameters]] == | == [[Script variables|Syntax and Parameters]] == | ||
− | :{{FuncDef|Deblock (clip, int "quant", int "aOffset", int "bOffset")}} | + | :{{FuncDef|Deblock (clip, int "quant", int "aOffset", int "bOffset", string "planes", int "opt")}} |
<br> | <br> | ||
+ | ::{{Par2| |clip| }} | ||
+ | :::Input clip, width and height must be mod 8. | ||
+ | |||
::{{Par2|quant|int|25}} | ::{{Par2|quant|int|25}} | ||
:::The higher the quant, the stronger the deblocking. Range is from 0 to 60. | :::The higher the quant, the stronger the deblocking. Range is from 0 to 60. | ||
+ | |||
::{{Par2|aOffset|int|0}} | ::{{Par2|aOffset|int|0}} | ||
:::Quant modifier to the blocking detector threshold. Setting it higher means than more edges will deblocked. | :::Quant modifier to the blocking detector threshold. Setting it higher means than more edges will deblocked. | ||
+ | |||
::{{Par2|bOffset|int|0}} | ::{{Par2|bOffset|int|0}} | ||
:::Another quant modifier, for block detecting and for deblocking's strength. There again, the higher, the stronger. | :::Another quant modifier, for block detecting and for deblocking's strength. There again, the higher, the stronger. | ||
+ | |||
+ | ::{{Par2|planes|string|"yuv"}} | ||
+ | :::Specifies which planes to process between y, u and v. | ||
+ | |||
+ | ::{{Par2|opt|int|0}} | ||
+ | :::Sets which cpu optimizations to use. | ||
+ | :::*0 : Auto-detect. | ||
+ | :::*1 : Use C++ code. | ||
+ | :::*2 : Use SSE4.2 code. | ||
+ | :::*3 : Use AVX2 code. | ||
+ | :::Only 8-16bit is optimized, not float. | ||
<br> | <br> | ||
− | + | :*If {{FuncDef3|quant}} + {{FuncDef3|aOffset}} is less than 16, the filter does nothing at all. The same goes for {{FuncDef3|quant}} + {{FuncDef3|bOffset}}. | |
<br> | <br> | ||
==Examples== | ==Examples== | ||
− | :To deblock the motion compensation (MVTools plugin): | + | Deblock with default settings: |
+ | MPEG2Source("Blocky.dv2") | ||
+ | Deblock(quant=25, aOffset=0, bOffset=0, planes="yuv") | ||
+ | |||
+ | |||
+ | To deblock the motion compensation ([[MVTools]] plugin): | ||
<pre> | <pre> | ||
vectors = source.MVAnalyse(isb = false, lambda = 1000) | vectors = source.MVAnalyse(isb = false, lambda = 1000) | ||
Line 38: | Line 60: | ||
compensation.Deblock()</pre> | compensation.Deblock()</pre> | ||
<br> | <br> | ||
+ | |||
+ | == Changelog == | ||
+ | Version Date Developer Changes<br> | ||
+ | @9802e03 2020/08/30 299792458m - Added SIMD optimization for 8-16bit | ||
+ | - Added "opt" parameter | ||
+ | v1.3 2018/05/29 MysteryX - Back-ported code from VapourSynth | ||
+ | - Added high-bit-depth support | ||
+ | - Added Planes parameter to specify which planes to process | ||
+ | - AviSynth+: self-registers as a [[MT_NICE_FILTER]] | ||
+ | v0.9 2013/12/03 tp7 - Faster and supports all planar colorspaces | ||
+ | - Compiled with Microsoft Visual Studio C++ 2012. | ||
+ | v1.2 2006/04/23 Fizick - Moved code into separate project | ||
+ | v1.1 2006/01/09 Manao/Fizick - Present in old MvTools (up to v1.1) | ||
+ | <br> | ||
+ | |||
+ | == Archived Downloads == | ||
+ | {| class="wikitable" border="1"; width="600px" | ||
+ | |- | ||
+ | !!width="100px"| Version | ||
+ | !!width="150px"| Download | ||
+ | !!width="150px"| Mirror | ||
+ | |- | ||
+ | !@9802e03 | ||
+ | |[https://files.videohelp.com/u/223002/Avisynth-Deblock_299792458m_noAVX2req.7z Avisynth-Deblock_299792458m_noAVX2req.7z] * | ||
+ | |[https://web.archive.org/web/20221023185605if_/https://files.videohelp.com/u/223002/Avisynth-Deblock_299792458m_noAVX2req.7z Avisynth-Deblock_299792458m_noAVX2req.7z] * | ||
+ | |- | ||
+ | !v0.0.9 | ||
+ | |[https://github.com/tp7/Deblock GitHub] | ||
+ | | | ||
+ | |- | ||
+ | !v0.1.2 | ||
+ | |[http://avisynth.org.ru/mvtools/deblock12.zip deblock12.zip] | ||
+ | |[https://web.archive.org/web/20220911030441if_/http://avisynth.org.ru/mvtools/deblock12.zip deblock12.zip] | ||
+ | |} | ||
+ | * *299792458m: performance optimized version; builds compiled with Intel C++ 19.2 without AVX2 requirement. | ||
+ | <br> | ||
+ | |||
==External Links== | ==External Links== | ||
− | *[ | + | *[https://github.com/299792458m/Avisynth-Deblock GitHub] Source code repository (latest version, v1.3 with SIMD optimizations) |
+ | *[https://github.com/mysteryx93/Avisynth-Deblock GitHub] Source code repository (older version, v1.3, 2018) | ||
+ | *[https://github.com/tp7/Deblock GitHub] Source code repository (older version, v0.9, 2013) | ||
<br> | <br> | ||
<br> | <br> |
Latest revision as of 05:08, 25 October 2022
Abstract | |
---|---|
Author | Manao,Fizick, tp7, MysteryX, 299792458m |
Version | @9802e03 (2020/08/30) |
Download | Deblock_299792458m_noAVX2req.7z |
Category | Deblocker |
License | GPLv2 |
Discussion | Doom9 Thread (original v1.2) Doom9 Thread (update v1.3 |
Contents |
[edit] Description
It performs deblocking on the picture, using the deblocking filter of H264. It's useful to deblock the result of MVCompensate of MVTools plugin, etc.
[edit] Requirements
- [x86]: AviSynth+ or AviSynth 2.6
- [x64]: AviSynth+
- Supported color formats: Y8, YV12, YV16, YV24, YV411
- AviSynth+: all planar Y and YUV formats (8/10/12/14/16bit and float) are supported.
[edit] Syntax and Parameters
- Deblock (clip, int "quant", int "aOffset", int "bOffset", string "planes", int "opt")
- clip =
- Input clip, width and height must be mod 8.
- clip =
- int quant = 25
- The higher the quant, the stronger the deblocking. Range is from 0 to 60.
- int quant = 25
- int aOffset = 0
- Quant modifier to the blocking detector threshold. Setting it higher means than more edges will deblocked.
- int aOffset = 0
- int bOffset = 0
- Another quant modifier, for block detecting and for deblocking's strength. There again, the higher, the stronger.
- int bOffset = 0
- string planes = "yuv"
- Specifies which planes to process between y, u and v.
- string planes = "yuv"
- int opt = 0
- Sets which cpu optimizations to use.
- 0 : Auto-detect.
- 1 : Use C++ code.
- 2 : Use SSE4.2 code.
- 3 : Use AVX2 code.
- Only 8-16bit is optimized, not float.
- Sets which cpu optimizations to use.
- int opt = 0
- If quant + aOffset is less than 16, the filter does nothing at all. The same goes for quant + bOffset.
[edit] Examples
Deblock with default settings:
MPEG2Source("Blocky.dv2") Deblock(quant=25, aOffset=0, bOffset=0, planes="yuv")
To deblock the motion compensation (MVTools plugin):
vectors = source.MVAnalyse(isb = false, lambda = 1000) compensation = source.MVCompensate(vectors, mode = 0) compensation.Deblock()
[edit] Changelog
Version Date Developer Changes
@9802e03 2020/08/30 299792458m - Added SIMD optimization for 8-16bit - Added "opt" parameter v1.3 2018/05/29 MysteryX - Back-ported code from VapourSynth - Added high-bit-depth support - Added Planes parameter to specify which planes to process - AviSynth+: self-registers as a MT_NICE_FILTER v0.9 2013/12/03 tp7 - Faster and supports all planar colorspaces - Compiled with Microsoft Visual Studio C++ 2012. v1.2 2006/04/23 Fizick - Moved code into separate project v1.1 2006/01/09 Manao/Fizick - Present in old MvTools (up to v1.1)
[edit] Archived Downloads
Version | Download | Mirror |
---|---|---|
@9802e03 | Avisynth-Deblock_299792458m_noAVX2req.7z * | Avisynth-Deblock_299792458m_noAVX2req.7z * |
v0.0.9 | GitHub | |
v0.1.2 | deblock12.zip | deblock12.zip |
- *299792458m: performance optimized version; builds compiled with Intel C++ 19.2 without AVX2 requirement.
[edit] External Links
- GitHub Source code repository (latest version, v1.3 with SIMD optimizations)
- GitHub Source code repository (older version, v1.3, 2018)
- GitHub Source code repository (older version, v0.9, 2013)
Back to External Filters ←