[an error occurred while processing this directive] [an error occurred while processing this directive]
ENGLISH VERSION

MSU Brightness Independent PSNR
(BI-PSNR)

MSU Graphics & Media Lab (Video Group)

Take a look at this article on the new site! Follow the link
https://videoprocessing.ai/vqmt/plugins-bi-psnr.html

About Metrics Python Online help Changelog Screenshots Plugins & SDK

Project, Ideas: Dr. Dmitriy Vatolin
Implementation: Alexey Noskov
Updating and additions: Sergey Grishin
[an error occurred while processing this directive]

Common idea

[an error occurred while processing this directive]

BI-PSNR metric is intended for measuring distortions in video taking into account brightness shifts.

[an error occurred while processing this directive]

Change Log

[an error occurred while processing this directive]

[!] - Known bug
[+] - New Feature
[*] - Other

Version 1.1
[*] Visualization bug fixed for non-stadard resolution video

Version 1.0
[+] First plugin release

[an error occurred while processing this directive]

Usage

[an error occurred while processing this directive]

BI-PSNR metric should be used when one of the sequences has any brightness transformation, which does not change within frame. Example of such transformation is uniform increasing of brightness of contrast for single frame of for all sequence. Such transformations prevent usage of standard metrics because of strong brightness difference between comparing frames. BI-PSNR algorithm calculates brightness transformation, which makes frames similar as possible and calculates standard PSNR and MSE metrics taking into account founded transformation.

[an error occurred while processing this directive]

Visualization

[an error occurred while processing this directive]

There are two part of visualization:

Example of visualization
Example of visualization
Visualization of the same frame using standard PSNR
Visualization of the same frame using standard PSNR
[an error occurred while processing this directive]

Plots

[an error occurred while processing this directive]

Plots of per-frame PSNR values after the found transformation are drawing after all calculations. Plots are entirely the same as standard per-frame PSNR

Plot's example
Plot's example
Standard PSNR plot for the same sequence
Standard PSNR plot for the same sequence
[an error occurred while processing this directive]

Algorithm

[an error occurred while processing this directive]

Table C[i,j] is filling for each frame: C[i,j] = { number of points in the same position, which have brightness i at the first sequence frame and j at the second sequence frame }

Next, for each i (brightness value from the first frame) we find corresponding brightness from the second sequence. Following formula is used to estimate distanse from arbitrary values of i and j:

One can note that this formula is sum of quadratic differences between all pixels of the first sequence with value i and all corresponding pixels from second sequence on the assumption that brightness was shifted to i-j.

When transformation was found, we can find MSE for the frame taking into account this transformation:

[an error occurred while processing this directive]

Download

[an error occurred while processing this directive] [an error occurred while processing this directive]

MSU Video Quality Measurement Tools

[an error occurred while processing this directive]

e-mail: 

[an error occurred while processing this directive]

Other resources

[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]