Video Quality Metrics

When the <qc_video_metrics> parameter is added to your QC check, the source asset <original_source> is used as a reference file to quantitatively compare VQ using your choice of 4 industry-standard perceptual quality tools VMAF, PSNR, SSIM, and MS_SSIM. Comparing the report metrics of outputs with different codecs or encoding parameters can be an invaluable tool to help improve the playback experience. Custom threshold parameters can be configured to return alerts when the quality scores are higher or lower than the predefined targets.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SourceFile]</source><!-- required -->
    <format>
        <output>qc_check</output><!-- required -->
        <source_options>
            <qc> 
                <qc_video_metrics>
                    <original_source>[OriginalSurceFile]</original_source> <!-- required -->
                    <original_transformations>
                        <type>scale</type>
                        <width>[Width]</width>
                        <height>[Height]</height>
                        <algo>[ScaleAlgo]</algo>
                    </original_transformations>
                    <original_transformations>
                        <type>pad</type>
                        <width>[Width]</width>
                        <height>[Height]</height>
                        <x>[PadX]</x>
                        <y>[PadY]</y>
                    </original_transformations>
                    <original_transformations>
                        <!-- original_transformations params -->
                    </original_transformations>
                    <metrics>
                        <metric>vmaf</metric> <!-- required -->
                        <model>[hdtv|4ktv]</model>
                        <thresholds>
                            <severity>[warning|fatal]</severity>
                            <min>
                                <lower>[LowerValue]</lower>
                                <upper>[UpperValue]</upper>
                            </min>
                            <max>
                                <lower>[LowerValue]</lower>
                                <upper>[UpperValue]</upper>
                            </max>
                            <percentile>
                                <perc>[PercentileValue]</perc>
                                <lower>[LowerValue]</lower>
                                <upper>[UpperValue]</upper>
                            </percentile>
                            <median>
                                <lower>[LowerValue]</lower>
                                <upper>[UpperValue]</upper>
                            </median>
                            <mean>
                                <lower>[LowerValue]</lower>
                                <upper>[UpperValue]</upper>
                            </mean>
                            <harm_mean>
                                <lower>[LowerValue]</lower>
                                <upper>[UpperValue]</upper>
                            </harm_mean>
                        </thresholds>
                        <thresholds>
                            <!-- thresholds params -->
                        </thresholds>
                    </metrics>
                    <metrics>
                        <metric>ms_ssim</metric> <!-- required -->
                        <thresholds>
                            <!-- thresholds params -->
                        </thresholds>
                    </metrics>
                    <metrics>
                        <metric>ssim</metric> <!-- required -->
                        <thresholds>
                            <!-- thresholds params -->
                        </thresholds>
                    </metrics>
                    <metrics>
                        <metric>psnr</metric> <!-- required -->
                        <thresholds>
                            <!-- thresholds params -->
                        </thresholds>
                    </metrics>
                    <metrics>
                        <metric>bitrate</metric> <!-- required -->
                        <thresholds>
                            <!-- thresholds params -->
                        </thresholds>
                    </metrics>
                </qc_video_metrics>
            </qc>
        </source_options>
        <!-- format params -->
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "AddMedia", // required
        "source": "[SourceFile|SourcePlaylist]", // required
        "format": {
            "output": "qc_check", // required
            "source_options": {
                "qc": {
                    "qc_video_metrics": {
                        "original_source": "[OriginalSurceFile]", // required
                        "original_transformations": [
                            {
                                "type": "scale",
                                "width": "[Width]",
                                "height": "[Height]",
                                "algo": "[ScaleAlgo]"
                            },
                            {
                                "type": "pad",
                                "width": "[Width]",
                                "height": "[Height]",
                                "x": "[PadX]",
                                "y": "[PadY]"
                            },
                            {
                                // original_transformations params
                            }
                        ],
                        "metrics": [
                            {
                                "metric": "vmaf", // required
                                "model": "[hdtv|4ktv]",
                                "thresholds": [
                                    {
                                        "severity": "[warning|fatal]",
                                        "min": {
                                            "lower": "[LowerValue]",
                                            "upper": "[UpperValue]"
                                        },
                                        "max": {
                                            "lower": "[LowerValue]",
                                            "upper": "[UpperValue]"
                                        },
                                        "percentile": {
                                            "perc": "[PercentileValue]",
                                            "lower": "[LowerValue]",
                                            "upper": "[UpperValue]"
                                        },
                                        "median": {
                                            "lower": "[LowerValue]",
                                            "upper": "[UpperValue]"
                                        },
                                        "mean": {
                                            "lower": "[LowerValue]",
                                            "upper": "[UpperValue]"
                                        },
                                        "harm_mean": {
                                            "lower": "[LowerValue]",
                                            "upper": "[UpperValue]"
                                        }
                                    },
                                    {
                                        // thresholds params
                                    }
                                ]
                            },
                            {
                                "metric": "ms_ssim", // required
                                "thresholds": [
                                    {
                                        // thresholds params
                                    }
                                ]
                            },
                            {
                                "metric": "ssim", // required
                                "thresholds": [
                                    {
                                        // thresholds params
                                    }
                                ]
                            },
                            {
                                "metric": "psnr", // required
                                "thresholds": [
                                    {
                                        // thresholds params
                                    }
                                ]
                            },
                            {
                                "metric": "bitrate", // required
                                "thresholds": [
                                    {
                                        // thresholds params
                                    }
                                ]
                            }
                        ]
                    }
                }
            }
            // format params
        }
    }
}

Parameter

Description

Allowed Values

Default Value

original_source

Original Source File for VMAF metric

Valid URL

none

original_transformations

Source file transformations for VMAF metric

metrics

Metrics array

Original transformations params

type

Transformation type

scale, pad

none

width

Width

Positive integer number

none

height

Height

Positive integer number

none

algo

Scale algorithm

fast_bilinear, bilinear, bicubic, experimental, neighbor, area, bicublin, gauss, sinc, lanczos, spline

none

x

Horizontal padding

Positive integer number

none

y

Vertical padding

Positive integer number

none

Metrics params

metric

Metric name

vmaf, psnr, ssim, ms_ssim, bitrate

none

model

VMAF model

hdtv, 4ktv

none

thresholds

Metric threshold functions array

Thresholds params

severity

Test severity

warning, fatal

warning

min

Minimum function

max

Maximum function

percentile

Percentile function

median

Median function

mean

Mean function

harm_mean

Harmonic mean function

Threshold function params

lower

Lower value

Positive integer number

none

upper

Upper value

Positive integer number

none

perc

Percentile value

Positive integer number

none

🚧

Note

The qc_video_metrics test is available only for mpeg-4, mpeg-ts, and mxf source file formats.