DeBlock: Difference between revisions

From Avisynth wiki
Jump to navigationJump to search
Syntax and Parameters: add planes parameter
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{FilterCat4|External_filters|Plugins|Restoration_filters|Deblockers}}
{{FilterCat6|External_filters|Plugins|Plugins_x64|Restoration_filters|Deblockers|Deep_color_tools}}
{{Filter
{{Filter3
|{{Author/Manao}},{{Author/Fizick}}
|{{Author/Manao}},{{Author/Fizick}}, {{Author/tp7}}, [https://github.com/mysteryx93 MysteryX], [https://github.com/299792458m/ 299792458m]
|1.2|[http://avisynth.org.ru/mvtools/deblock12.zip deblock12.zip]
|@9802e03 (2020/08/30)
|[https://files.videohelp.com/u/223002/Avisynth-Deblock_299792458m_noAVX2req.7z Deblock_299792458m_noAVX2req.7z]
|Deblocker
|Deblocker
|5=<br>
|5=[http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
* [[YV12]]
|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]}}
* [[YUY2]]
 
* Width Mod 8
* Height Mod 8
|6=GPL
|7=[http://forum.doom9.org/showthread.php?t=110352 Doom9 Thread]}}
<br>
<br>
Official documentation: http://avisynth.org.ru/mvtools/deblock.html
==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>


*[http://github.com/tp7/Deblock DeBlock for AviSynth 2.6] - faster and supports all [[planar]] colorspaces. [http://github.com/tp7/Deblock/releases Download] | [http://forum.doom9.org/showthread.php?t=169832 Discussion]
<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 ''quant + aOffset'' is less than 16, the filter does nothing at all. The same goes for ''quant + bOffset''.
:*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 40: 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==
*[http://avisynth.org.ru/fizick.html Fizick's Avisynth Filters]
*[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 06: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

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.


Requirements


Deblock (clip, int "quant", int "aOffset", int "bOffset", string "planes", int "opt")


clip   =
Input clip, width and height must be mod 8.
int  quant = 25
The higher the quant, the stronger the deblocking. Range is from 0 to 60.
int  aOffset = 0
Quant modifier to the blocking detector threshold. Setting it higher means than more edges will deblocked.
int  bOffset = 0
Another quant modifier, for block detecting and for deblocking's strength. There again, the higher, the stronger.
string  planes = "yuv"
Specifies which planes to process between y, u and v.
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.


  • If quant + aOffset is less than 16, the filter does nothing at all. The same goes for quant + bOffset.


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()


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)


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.


  • 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