VMAF: Difference between revisions
From Avisynth wiki
Jump to navigationJump to search
VMAF v1.0.0 |
Update to the latest version |
||
| Line 2: | Line 2: | ||
{{Filter3 | {{Filter3 | ||
| 1={{Author/Asd-g}} | | 1={{Author/Asd-g}} | ||
| 2= | | 2=v2.1.0 | ||
| 3=[https://github.com/Asd-g/AviSynth-VMAF/releases/ VMAF | | 3=[https://github.com/Asd-g/AviSynth-VMAF/releases/ VMAF] | ||
| 4=Debug filter | | 4=Debug filter | ||
| 5=[https://github.com/Asd-g/AviSynth-VMAF/blob/main/LICENSE MIT] | | 5=[https://github.com/Asd-g/AviSynth-VMAF/blob/main/LICENSE MIT] | ||
| Line 13: | Line 13: | ||
This is [https://github.com/HomeOfVapourSynthEvolution/VapourSynth-VMAF a port of the VapourSynth plugin VMAF.] | This is [https://github.com/HomeOfVapourSynthEvolution/VapourSynth-VMAF a port of the VapourSynth plugin VMAF.] | ||
[https://github.com/Netflix/vmaf | [https://github.com/Netflix/vmaf vmaf] is used. | ||
<br> | <br> | ||
<br> | <br> | ||
| Line 21: | Line 21: | ||
* Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]] | * Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]] | ||
**AviSynth+: all [[planar]] Y and YUV formats (8/10/12/14/16bit) are supported. | **AviSynth+: all [[planar]] Y and YUV formats (8/10/12/14/16bit) are supported. | ||
<br> | <br> | ||
<br> | <br> | ||
== [[Script variables|Syntax and Parameters]] == | == [[Script variables|Syntax and Parameters]] == | ||
:{{Template:FuncDef|VMAF (clip reference, clip distorted | :{{Template:FuncDef|VMAF (clip reference, clip distorted, string log_path, int "log_format", int[] "model", int[] "feature", string "cambi_opt")}} | ||
<br> | <br> | ||
::{{Par2| | | ::{{Par2| |reference| }} | ||
::{{Par2| | | ::{{Par2| |distorted| }} | ||
::: Clips to calculate VMAF score. Must be in YUV 8..16-bit planar format. | ::: Clips to calculate VMAF score. Must be in YUV 8..16-bit planar format. | ||
::: | ::: Must be in YUV 8..16-bit planar format with minimum three planes. | ||
<br> | <br> | ||
::{{Par2|log_path|string|}} | ::{{Par2|log_path|string|}} | ||
:::Sets the path of the log file. | :::Sets the path of the log file. | ||
<br> | <br> | ||
::{{Par2| | ::{{Par2|log_format|int|0}} | ||
:::Sets the format of the log file. | :::Sets the format of the log file. | ||
:::*0: xml. | :::*0 : xml. | ||
:::*1: json. | :::*1 : json. | ||
:::*2: csv | :::*2 : csv. | ||
<br> | <br> | ||
::{{Par2| | ::{{Par2|model|int[]|}} | ||
::: | :::Sets which model to use. Refer to [https://github.com/Netflix/vmaf/blob/master/resource/doc/models.md this], [https://netflixtechblog.com/toward-a-better-quality-metric-for-the-video-community-7ed94e752a30 this] and [https://github.com/Netflix/vmaf/blob/master/resource/doc/conf_interval.md this] page for more details. | ||
::: | :::*0 : vmaf_v0.6.1 | ||
:::*1 : vmaf_v0.6.1neg (NEG mode) | |||
:::*2 : vmaf_b_v0.6.3 (Confidence Interval) | |||
:::*3 : vmaf_4k_v0.6.1 | |||
<br> | <br> | ||
::{{Par2| | ::{{Par2|feature|int[]|}} | ||
::: | :::*0 : PSNR | ||
::: | :::*1 : PSNR-HVS | ||
:::*2 : SSIM | |||
:::*3 : MS-SSIM | |||
:::*4 : CIEDE2000 | |||
:::*5 : CAMBI | |||
<br> | <br> | ||
::{{Par2| | ::{{Par2|cambi_opt|string|}} | ||
::: | :::* enc_width, enc_height | ||
::: | :::: Encoding/processing resolution to compute the banding score, useful in cases where scaling was applied to the input prior to the computation of metrics. | ||
:::* | :::: enc_width must be between 320 and 7680. | ||
::: | :::: enc_height must be between 200 and 4320. | ||
:::Default: 1. | :::: Default: Same as input image. | ||
:::* window_size | |||
:: | :::: Window size to compute CAMBI. | ||
::: | :::: Must be between 15 and 127. | ||
::: | :::: Default: 63 (corresponds to ~1 degree at 4K resolution and 1.5H). | ||
::: | :::* topk | ||
::: | :::: Ratio of pixels for the spatial pooling computation. | ||
:::: Must be between 0.0001 and 1.0. | |||
:::: Default: 0.6. | |||
:::* tvi_threshold | |||
:::: Visibilty threshold for luminance ΔL < tvi_threshold*L_mean for BT.1886. | |||
:::: Must be between 0.0001 and 1.0. | |||
:::: Default: 0.019. | |||
::: Format: <code>option_name=value</code>. | |||
::: If more than one option is specified, the options must be separated by space. | |||
::: Usage example: <code>cambi_opt="windows_size=120 enc_width=1280 enc_height=720"</code>. | |||
<br> | <br> | ||
==Examples== | ==Examples== | ||
Comparing a high quality clip vs an encoded clip: | Comparing a high quality clip vs an encoded clip: | ||
VMAF(HQ_original, HQ_encoded, model=0, | VMAF(HQ_original, HQ_encoded, model=0) | ||
<br> | |||
Comparing a high quality clip vs an encoded clip with MS-SSIM metrics only: | |||
VMAF(HQ_original, HQ_encoded, feature=3) | |||
<br> | <br> | ||
== Changelog == | == Changelog == | ||
Version Date Changes<br> | Version Date Changes<br> | ||
v2.1.0 2021/11/14 - Added parameter cambi_opt | |||
- Removed model default value<br> | |||
v2.0.2 2021/10/20 - Fixed feature parameter | |||
- Updated vmaf lib to 2.3.0 | |||
- Added feature CAMBI<br> | |||
v2.0.1 2021/10/02 - Fixed crashing when unsupported color formats are used | |||
- Updated libvmaf to 2.2.1<br> | |||
v2.0.0 2021/07/10 - Updated to libvmaf 2.x<br> | |||
v1.0.0 2020/11/14 - Initial release | v1.0.0 2020/11/14 - Initial release | ||
- AviSynth+: self-registers as [[MT_SERIALIZED]] | |||
<br> | <br> | ||
Revision as of 00:11, 13 January 2022
Description
VMAF is a perceptual video quality assessment algorithm developed by Netflix. Refer to the FAQ page for frequently asked questions of VMAF.
This is a port of the VapourSynth plugin VMAF.
vmaf is used.
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) are supported.
- VMAF (clip reference, clip distorted, string log_path, int "log_format", int[] "model", int[] "feature", string "cambi_opt")
- reference =
- distorted =
- Clips to calculate VMAF score. Must be in YUV 8..16-bit planar format.
- Must be in YUV 8..16-bit planar format with minimum three planes.
- reference =
- string log_path =
- Sets the path of the log file.
- string log_path =
- int log_format = 0
- Sets the format of the log file.
- 0 : xml.
- 1 : json.
- 2 : csv.
- Sets the format of the log file.
- int log_format = 0
- int[] feature =
- 0 : PSNR
- 1 : PSNR-HVS
- 2 : SSIM
- 3 : MS-SSIM
- 4 : CIEDE2000
- 5 : CAMBI
- int[] feature =
- string cambi_opt =
- enc_width, enc_height
- Encoding/processing resolution to compute the banding score, useful in cases where scaling was applied to the input prior to the computation of metrics.
- enc_width must be between 320 and 7680.
- enc_height must be between 200 and 4320.
- Default: Same as input image.
- window_size
- Window size to compute CAMBI.
- Must be between 15 and 127.
- Default: 63 (corresponds to ~1 degree at 4K resolution and 1.5H).
- topk
- Ratio of pixels for the spatial pooling computation.
- Must be between 0.0001 and 1.0.
- Default: 0.6.
- tvi_threshold
- Visibilty threshold for luminance ΔL < tvi_threshold*L_mean for BT.1886.
- Must be between 0.0001 and 1.0.
- Default: 0.019.
- Format:
option_name=value. - If more than one option is specified, the options must be separated by space.
- Usage example:
cambi_opt="windows_size=120 enc_width=1280 enc_height=720".
- string cambi_opt =
Examples
Comparing a high quality clip vs an encoded clip:
VMAF(HQ_original, HQ_encoded, model=0)
Comparing a high quality clip vs an encoded clip with MS-SSIM metrics only:
VMAF(HQ_original, HQ_encoded, feature=3)
Changelog
Version Date Changes
v2.1.0 2021/11/14 - Added parameter cambi_opt - Removed model default value
v2.0.2 2021/10/20 - Fixed feature parameter - Updated vmaf lib to 2.3.0 - Added feature CAMBI
v2.0.1 2021/10/02 - Fixed crashing when unsupported color formats are used - Updated libvmaf to 2.2.1
v2.0.0 2021/07/10 - Updated to libvmaf 2.x
v1.0.0 2020/11/14 - Initial release - AviSynth+: self-registers as MT_SERIALIZED
External Links
- GitHub - Source code repository.
Back to External Filters ←