Butteraugli: Difference between revisions

From Avisynth wiki
Jump to navigationJump to search
m category
Asd (talk | contribs)
Butteraugli 2.0.1
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
{{Filter3
{{Filter3
| 1={{Author/Asd-g}}
| 1={{Author/Asd-g}}
| 2=v1.1.0
| 2=v2.0.1
| 3=[https://github.com/Asd-g/AviSynthPlus-Butteraugli/releases/ Butteraugli-1.1.0.7z]
| 3=[https://github.com/Asd-g/AviSynthPlus-Butteraugli/releases/ Butteraugli]
| 4=Debug filter
| 4=Debug filter
| 5=[https://github.com/Asd-g/AviSynthPlus-Butteraugli/blob/main/LICENSE GPLv3]
| 5=[https://github.com/Asd-g/AviSynthPlus-Butteraugli/blob/main/LICENSE GPLv3]
Line 15: Line 15:
This is [https://github.com/fdar0536/VapourSynth-butteraugli a port of the VapourSynth plugin butteraugli.]
This is [https://github.com/fdar0536/VapourSynth-butteraugli a port of the VapourSynth plugin butteraugli.]


[https://github.com/google/butteraugli Google's Butteraugli] is used.
[https://github.com/libjxl/libjxl libjxl's Butteraugli] is used.
<br>
<br>
<br>
<br>
Line 26: Line 26:


== [[Script variables|Syntax and Parameters]] ==
== [[Script variables|Syntax and Parameters]] ==
:{{Template:FuncDef|Butteraugli (clip clip1, clip clip2, float "hf_asymmetry", bool "heatmap", bool "linput")}}
:{{Template:FuncDef|Butteraugli (clip reference, clip distorted, bool "distmap", float "intensity_target", bool "linput")}}
<br>
<br>
::{{Par2| |clip| }}
::{{Par2| |reference| }}
::{{Par2| |clip| }}
::{{Par2| |distorted| }}
::: Clips that are use for estimating the psychovisual similarity. They must be in [[Planar|planar RGB]] format (8-32bit).
::: Clips that are use for estimating the psychovisual similarity. They must be in [[Planar|planar RGB]] format (8-32bit).
<br>
<br>
::{{Par2|hf_asymmetry|float|1.0}}
::{{Par2|distmap|bool|false}}
:::Multiplier for penalizing new HF artifacts more than blurring away features. 1.0=neutral.
:::Whether to return heatmap instead of distorted clip
:::Must be greater than 0.0.
:::Default: 1.0.
<br>
<br>
::{{Par2|heatmap|bool|true}}
::{{Par2|intensity_target|float|80.0}}
:::True: A heatmap is returned containing differences between two input clips.
:::Viewing conditions screen nits
:::False: Returns clip2.
<br>
<br>
::{{Par2|linput|bool|false}}
::{{Par2|linput|bool|false}}
:::True: The input clips must have linear transfer functions.
:::True: The input clips must have linear transfer functions.
:::False: The input clips are assumed in sRGB color space and internal conversion to linear transfer function is done.
:::False: The input clips are assumed in sRGB color space and internal conversion to linear transfer function is done.
:::Default: False.
<br>
<br>
:The psychovisual similarity of the clips will be stored as frame property '_FrameButteraugli' in the output clip. Larger values indicate to bigger difference.
:The psychovisual similarity of the clips will be stored as frame property '_FrameButteraugli' in the output clip. Larger values indicate to bigger difference.
Line 51: Line 47:
==Examples==
==Examples==
  # Return the difference between the clips with displayed all frame properties alongside with '_FrameButteraugli'
  # Return the difference between the clips with displayed all frame properties alongside with '_FrameButteraugli'
  Butteraugli(clip1, clip2, hf_asymmetry=1.0, heatmap=true, linput=false)
  Butteraugli(clip1, clip2, distmap=true, linput=false)
  propShow()
  propShow()




  # Return clip2 with displayed the value of the frame property '_FrameButteraugli'.
  # Return clip2 with displayed the value of the frame property '_FrameButteraugli'.
  Butteraugli(clip1, clip2, hf_asymmetry=1.0, heatmap=true, linput=false)
  Butteraugli(clip1, clip2, linput=false)
  ScriptClip("""Subtitle(String(propGetFloat("_FrameButteraugli")))""")
  ScriptClip("""Subtitle(String(propGetFloat("_FrameButteraugli")))""")


Line 63: Line 59:
== Changelog ==
== Changelog ==
  Version      Date            Changes<br>
  Version      Date            Changes<br>
v2.0.1      2022/12/04      - Changed to be slightly more sensitive to low freq (DC) errors.<br>
v2.0.0      2021/10/20      - Updated to butteraugli library from libjxl.<br>
  v1.1.0      2020/11/06      - Added support for 10..32-bit clips.
  v1.1.0      2020/11/06      - Added support for 10..32-bit clips.
                              - Added parameters 'hf_asymmetry' and 'linput'.<br>
                                                  - Added parameters 'hf_asymmetry' and 'linput'.<br>
  v1.0.2      2020/11/02      - Registered as [[MT_MULTI_INSTANCE]].
  v1.0.2      2020/11/02      - Registered as [[MT_MULTI_INSTANCE]].
                              - Used faster butteraugli lib.<br>
                                                  - Used faster butteraugli lib.<br>
  v1.0.0      2020/10/31      - Initial release
  v1.0.0      2020/10/31      - Initial release
<br>
<br>

Latest revision as of 09:14, 18 May 2023

Abstract
Author Asd-g
Version v2.0.1
Download Butteraugli
Category Debug filter
License GPLv3
Discussion

Description

Butteraugli estimating filter for the psychovisual similarity of two images.

A quality metric for lossy image and video compression.

This is a port of the VapourSynth plugin butteraugli.

libjxl's Butteraugli is used.

Requirements


Butteraugli (clip reference, clip distorted, bool "distmap", float "intensity_target", bool "linput")


reference   =
distorted   =
Clips that are use for estimating the psychovisual similarity. They must be in planar RGB format (8-32bit).


bool  distmap = false
Whether to return heatmap instead of distorted clip


float  intensity_target = 80.0
Viewing conditions screen nits


bool  linput = false
True: The input clips must have linear transfer functions.
False: The input clips are assumed in sRGB color space and internal conversion to linear transfer function is done.


The psychovisual similarity of the clips will be stored as frame property '_FrameButteraugli' in the output clip. Larger values indicate to bigger difference.


Examples

# Return the difference between the clips with displayed all frame properties alongside with '_FrameButteraugli'
Butteraugli(clip1, clip2, distmap=true, linput=false)
propShow()


# Return clip2 with displayed the value of the frame property '_FrameButteraugli'.
Butteraugli(clip1, clip2, linput=false)
ScriptClip("""Subtitle(String(propGetFloat("_FrameButteraugli")))""")


Changelog

Version      Date            Changes
v2.0.1 2022/12/04 - Changed to be slightly more sensitive to low freq (DC) errors.
v2.0.0 2021/10/20 - Updated to butteraugli library from libjxl.
v1.1.0 2020/11/06 - Added support for 10..32-bit clips. - Added parameters 'hf_asymmetry' and 'linput'.
v1.0.2 2020/11/02 - Registered as MT_MULTI_INSTANCE. - Used faster butteraugli lib.
v1.0.0 2020/10/31 - Initial release


  • GitHub - Source code repository.




Back to External Filters