Skip to content
Entropy-based No-reference Image Quality Assessment
Branch: master
Clone or download
Latest commit 3166761 Jun 1, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
ENIQA_release eliminate dead code Jun 1, 2019
pics pics Dec 14, 2018 Update Dec 26, 2018

ENIQA: Entropy-based No-reference Image Quality Assessment



This paper presents a high-performance general-purpose no-reference (NR) image quality assessment (IQA) method based on image entropy. The image features are extracted from two domains. In the spatial domain, the mutual information between the color channels and the two-dimensional entropy are calculated. In the frequency domain, the two-dimensional entropy and the mutual information of the filtered sub-band images are computed as the feature set of the input color image. Then, with all the extracted features, the support vector classifier (SVC) for distortion classification and support vector regression (SVR) are utilized for the quality prediction, to obtain the final quality assessment score. The proposed method, which we call Entropy-based No-reference Image Quality Assessment (ENIQA), can assess the quality of different categories of distorted images, and has a low complexity.


Xiaoqiao Chen, Qingyi Zhang, Manhui Lin, Guangyi Yang*, and Chu He, Member, IEEE


All experiments are carried out on Matlab R2016a on 64-bit Windows 7 and the detailed results are given in the paper. The codes are also testified on Ubuntu 16.04 with Matlab R2016b and work well.

Two IQA datasets, LIVE and TID2013, are used in out experiments.

This table shows the SROCC values of ENIQA and several classical NR and FR IQA methods on the LIVE dataset

Method JP2K JPEG WN GBlur FF All
PSNR 0.9053 0.8866 0.9844 0.8120 0.8981 0.8850
SSIM 0.9517 0.9671 0.9631 0.9306 0.9404 0.9255
VIF 0.9160 0.9482 0.9435 0.9600 0.9617 0.9287
BIQI 0.8401 0.8425 0.9362 0.8924 0.7383 0.8340
DIIVINE 0.9363 0.9051 0.9692 0.9478 0.8778 0.9261
BLIINDS-II 0.9389 0.9449 0.9596 0.9447 0.8653 0.9362
BRISQUE 0.9349 0.9480 0.9725 0.9616 0.8821 0.9411
NIQE 0.9171 0.9094 0.9697 0.9678 0.8715 0.9142
ILNIQE 0.9199 0.9335 0.9730 0.9526 0.8991 0.9219
SSEQ 0.9355 0.9509 0.9689 0.9554 0.8943 0.9349
ENIQA 0.9255 0.9515 0.9762 0.9481 0.8491 0.9378

For details of the experiments, please see the paper.


For evaluating, we provide two ways:

You can first load the RGB image and then calculate the score by

img = imread(img_path);
score = ENIQA(img);

or simply input the path of the image

score = ENIQA(img_path);

The range of the output score is expected to be [0,1] and a lower score represents higher quality.

For training a new model on LIVE, try crossValidationOnLIVE

For cross-database evaluation, try testOnTID2013

To do this, you have to prepare a model pretrained on another dataset.

Pretrained models

We have trained a model on the whole LIVE dataset and you can find it in ENIQA_release/model.


libSVM, explicitly the mex files, is required to perform the classification and regression. You can download it from here.

Change Log for Version 0.1.0

  • There were a couple of serious flaws in the former version and now we have fixed them in v0.1.0.

  • The script to test the model on CLIVE is available.

  • Code refactoring to accelerate feature extraction.

You can’t perform that action at this time.