home   |  research   |  members   |  projects   |  publications   |  conferences of interest   |  downloads   |  contact & impressum   |  privacy information
 
 

Visual Quality Index Implementations -- v1.0

This is "The Multimedia Signal Processing and Security Lab", short WaveLab, website. We are a research group at the Artificial Intelligence and Human Interfaces (AIHI) Department of the University of Salzburg led by Andreas Uhl. Our research is focused on Visual Data Processing and associated security questions. Most of our work is currently concentrated on Biometrics, Media Forensics and Media Security, Medical Image and Video Analysis, and application oriented fundamental research in digital humanities, individualised aquaculture and sustainable wood industry.

Visual Quality Index Implementations (VQI)

Contact:

Readme

License

H. Hofbauer and A. Uhl University of Salzburg, AUSTRIA, 2018

Copyright (c) 2018, University of Salzburg All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

If this software is used to prepare for an article please include the following reference:

@misc{VQI,
    key = {VQI},
    organization = {{University of Salzburg}},
    author = {{University of Salzburg}},
    title        = {{VQI} -- {V}isual {Q}uality {I}index Implementations},
    howpublished = {\url{http://www.wavelab.at/sources/VQI}},
    note = {version 1.x},
    year={2018},
}

Implemented Algorithms

Image metrics

  • ess
  • lss
  • psnr
  • psnry
  • ssim
  • lfbvs
  • nice
  • leg
  • sun10a
  • yao09a
  • mse

Analysis tools

  • npcr
  • uaci

Requirements

The programs in this software package require the following libraries:

  • libreeimage
  • libfreeimageplus
  • libdl

Libfreeimage can be found at http://freeimage.sourceforge.net/.

Changelog

  • [v1.0] (2018-03-20)
    • Version number bumped to 1 and implementation of the following system: M.B, major release (M) sepearated by bugfix count (B) with a period.
    • Added number of changeging pixel rate (ncpr) and unified average changed intensity (uaci) mesures for image encryption analysis (key sensitivity).
    • Better error reporting with -Y option.
    • Library freeimage and freeimageplus split, both are required now.
  • [v0.3.3] (2013-07-08)
    • The NICE metric is asymetric by design:
      OPTION -P sym: Will caclulate a symetric score for the NICE metric based on hamming distance percentage over the image ( see below, change the eq. to NICE = d_H(B, B’)/w*h with w and h being the width and height of the image respectively).

      Implementation Details:
      The NICE uses gradient maps on different scales, adjusts for possible image shift by using a morphological dilation with a plus shaped structuring element. The actual score is computed by doing a thresholding on the image and calculating differences. For the implementation of the NICE we choose the version with only one scale, Sobel edge detector and morphological dilation since it is significantly faster than using steerable wavelet decomposition but shows similar performance, c.f. [Rouse09b]. For weighting the hamming distance and normalization as given in [Rouse09a] was used.

      [Rouse09a]: Rouse, Hemami: The Role of Edge Information to Estimate the Perceived Utility of Natural Images (Rouse publication list, pdf). This is the source of the non-symetric score (eq. 11 on page 3).

      [Rouse09b]: Rouse, Hemami: Natural Image Utility Assessment Using Image Contours (Rouse publication list, pdf link).

    • Bugfix in NICE: A bug with the morphologic dilation operator has been fixed.
      Thanks for Stefan Kiltz of the Otto-von-Guericke University of Magdeburg for finding (and reporting) this bug.

  • [v0.3.2] (2012-10-10)
    • MSE metric added
    • Bugfix: Newer versions of gcc expect a different library order than the old one. Reordered the libraries in the Makefile, it should work for both the old and new gcc now. (If it does not please drop me an email).
  • [v0.3.1] (2011-7-27)
    • Added metric sun10a from Jing Sun and Zhengquan Xu and Jin Liu and Ye Yao: ‘’An objective visual security assessment for cipher-images based on local entropy’’, 2010.
    • Added metric yao09a from Y. Yao and Z. Xu and J. Sun: ‘’Visual security assessment for cipher-images based on neighborhood similarity’’, 2009.
  • [v0.3] (2011-5-24)
    • Added local edge direction and gradient (LEG) from An Effective and Efficient Visual Quality Index Based on Local Edge Gradients by Hofbauer et al.
    • Added local feature based Visual Security (LFBVS) from Visual Security Evaluation for Video Encryption by Tong et al.
    • Added natual image contour evaluation (NICE) from Natural Image Utility Assessment using Image Contours by Rouse et al.
    • Interface: Options can now be passed to metrics with -o, the metric has to deal with the options as it sees fit. NOTE: This breaks compatibility with older metrics. This can be fixed by including a dummy options function: void metric_passopt(char *passopt){ }
  • [v0.2]

    • Added support for yuv 4:2:0 videos.

Sources

The code is available upon request.

Please fill out this form to request a download link for the software:

Name:
Affiliation:
Email address: