Opened 3 years ago

#4304 new enhancement

Add Spatial Information (SI) / Temporal Informatilon (SI) filter according to ITU-T P.910

Reported by: slhck Owned by:
Priority: wish Component: avfilter
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


ITU-T P.910 ("Subjective video quality assessment methods for multimedia applications") specifies two metrics that can be used to classify content:

Spatial information

According to P.910:

The spatial perceptual information (SI) is based on the Sobel filter. Each video frame (luminance plane) at time n (Fn) is first filtered with the Sobel filter [Sobel(Fn)]. The standard deviation over the pixels (stdspace) in each Sobel-filtered frame is then computed. This operation is repeated for each frame in the video sequence and results in a time series of spatial information of the scene. The maximum value in the time series (maxtime) is chosen to represent the spatial information content of the scene.

Temporal information

According to P.910:

The temporal perceptual information (TI) is based upon the motion difference feature, Mn(i, j), which is the difference between the pixel values (of the luminance plane) at the same location in space but at successive times or frames. Mn(i, j) as a function of time (n) is defined as:

here Fn(i, j) is the pixel at the ith row and jth column of nth frame in time.
The measure of temporal information (TI) is computed as the maximum over time (maxtime) of the standard deviation over space (stdspace) of Mn(i, j) over all i and j.

More motion in adjacent frames will result in higher values of TI.

What should be implemented

There should be a siti filter which outputs:

  • The SI value for each frame
  • Summary SI statistics (mean, min, max, median) for the sequence
  • The TI value for the sequence

It requires no output video and would just print to the console.

(This feature request serves as a reference for me and others; I might implement it some day, maybe when filter kernels are implemented.)

Change History (0)

Note: See TracTickets for help on using tickets.