# iqa

IQA will perform full reference image quality assessment, with the first added pad being the reference.

It will perform comparisons on video streams with the same geometry.

The image output will be the heat map of differences, between the two pads with the highest measured difference.

For each reference frame, IQA will post a message containing a structure named IQA.

The only metric supported for now is "dssim", which will be available if https://github.com/pornel/dssim was installed on the system at the time that plugin was compiled.

For each metric activated, this structure will contain another structure, named after the metric.

The message will also contain a "time" field.

For example, if do-dssim is set to true, and there are two compared streams, the emitted structure will look like this:

IQA, dssim=(structure)"dssim,\ sink_1=(double)0.053621271267184856,
sink_2=(double)0.0082939683976297474;", time=(guint64)0;

## Example launch line

     gst-launch-1.0 -m uridecodebin uri=file:///test/file/1 ! iqa name=iqa do-dssim=true \
     ! videoconvert ! autovideosink uridecodebin uri=file:///test/file/2 ! iqa.

This pipeline will output messages to the console for each set of compared frames.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstAggregator
                        ╰──GstVideoAggregator
                            ╰──iqa

## Implemented interfaces

    GstChildProxy

## Factory details

Authors: – Mathieu Duponchelle <mathieu.duponchelle@collabora.co.uk></mathieu.duponchelle@collabora.co.uk>

Classification: – `Filter/Analyzer/Video`

Rank – primary

Plugin – iqa

Package – GStreamer Bad Plug-ins

## Pad Templates

### `sink_%u`

    video/x-raw:
             format: { AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – request

Direction – sink

Object type – GstVideoAggregatorConvertPad

### `src`

    video/x-raw:
             format: { RGBA }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – always

Direction – src

Object type – GstAggregatorPad

## Properties

### do-dssim

    “do-dssim” gboolean

Run structural similarity checks

Flags : Read / Write

Default value : false

### dssim-error-threshold

    “dssim-error-threshold” gdouble

dssim value over which the element will post an error message on the bus. A value < 0.0 means 'disabled'.

Flags : Read / Write

Default value : 0

### mode

    “mode” GstIqaMode *

Controls the frame comparison mode.

Flags : Read / Write

Default value : (none)

Since : 1.18

## Named constants

### GstIqaMode

#### Members

`strict` (0x00000002) – Strict comparison of frames.

Since : 1.18

The results of the search are