Source Code
This page intends to provide various softwares regarding quality assessment, digital watermarking, lossless compression, selective encryption, HVS models, as well as some subjective experiments.
Please note: There is no warranty or support for the applications below. They are supplied free of charge. We cannot be held responsible for damage caused to your computer. If you are unsure about any aspect of installing this software then please do not proceed.
Quick access:
Objective Quality Metrics
Mojette related code
JND masks for watermarking
Watermark detection
Subjective Experiments
Video Processing
Quality metrics
- Download the Komparator quality metric (provided by Pierre Evenou).
Many thanks to Vinod Pankajakshan for his source
code of both cpa1 and cpa2.
Mojette stuff
- Some code for the Mojette (provided by Pierre Evenou).
also available as a
sourceforge project
- Some more code for the Mojette Transform, for lossless compression and Selective Encryption purpose. (Many thanks to Andrew Kingston who wrote this code). This code is further to the preliminary study on the Mojette compression.
JND Masks for digital watermarking
- Some source code for the three following JND masks:
- Chou-Hsien Chou,
Yun-Chin Li, "A Perceptually Tunned Subband Image Coder Based on the
Measure of Just-Noticeable-Distortion Profile", IEEE Trans on Circuits
and Systems for Video Technology, Vol. 5, Dec. 1995.
- A. B.Watson, "DCTune: A Technique For Visual Optimization of DCT Quantization Matrices for Individual Images", Society for Information Display Digest of Technical Papers XXIV,1993.
- Xiaohui Zhang, Weisi Lin, Ping Xue, "Just-noticeable difference estimation with pixels in images", Journal of visual Communication &Image Representation., June 2007.
- A. B.Watson, "DCTune: A Technique For Visual Optimization of DCT Quantization Matrices for Individual Images", Society for Information Display Digest of Technical Papers XXIV,1993.
- Xiaohui Zhang, Weisi Lin, Ping Xue, "Just-noticeable difference estimation with pixels in images", Journal of visual Communication &Image Representation., June 2007.
- A piece of GNU Octave code to compute a JND mask on still images. This code is a simplified version of the JND mask presented in :
Please, note that the Masks provided by the GNU Octave code above differ from the masks as presented in the "SigPro" paper (please see the included Readme file).
- Towards a JND mask in the Wavelet domain. A subjective experiment, as detailed in the following papers
- "A perceptually
driven hybrid additive-multiplicative watermarking technique in the
wavelet domain", in Electronic
Imaging 2011.
- "A Subjective Study of Visibility Thresholds for wavelet domain watermarking", in ICIP 2010.
- "A Subjective Study of Visibility Thresholds for wavelet domain watermarking", in ICIP 2010.
Watermark Detection
- Some source code for the Grubbs' test (see the paper entitled "Application of Grubbs' test for outliers do the detection of watermarks", in ACM IH&MMsec 2014).
To use this code, you will need the libit, gsl and mpfit libraries.
Command line:
./Grubbs_test <Data.txt> <width> <height> <alpha_value>
i.e.:
./Grubbs_test xcorr.txt 127 127 0.000001
./Grubbs_test <Data.txt> <width> <height> <alpha_value>
i.e.:
./Grubbs_test xcorr.txt 127 127 0.000001
The distribution of the data is
obtained, and a Gaussian fit is performed, in order to ensure that the
data follows a Normal distribution.
This code is based on this Matlab implementation.
It is C code, but the archive also
includes a python script.
Important Note: Within the framework of the ACM paper mentioned above, the Grubbs' test is applied on correlation data (see J. P. Lewis, “Fast Normalized Cross-Correlation”, 1995, e.g. Matlab, OpenCV, Python
code) preferably in a transformed domain (DFT, DWT, DCT...), where the
data (either the watermark or the host signal) is noise-like. The correlation data needs to follow a Normal distribution.
Subjective experiments
- Download various subjective quality assessment databases here.
- Some works on JND computation in the wavelet domain. (the link includes
a subjective experiment, feel free to give it a try and send me the log
file).
- Download a DSIS subjective experiment right here. The original and distorted images are successively displayed in the center of the screen for about 5 seconds each, and then, the observer has to vote, using the F1 to F5 keys.
- Some source code for a "2AFC" experiment is there. 2AFC stands for "Two Alternative Forced Choice", basically, an original image is displayed on the upper part of the screen, and two images are displayed in the lower half. Among these two images, one is the original, and one is a distorted version. The observer is asked to select the image he believe is the distorted image. The selection is done with the right/left arrows (pointing towards the distorted image).
- An alternative "2AFC" experiment is on sourceforge, here. Matthieu Urvoy implemented this protocol during his post-doc position within the IRCCyN lab in 2014. This code uses the OpenCV library. Full details are provided on the sourceforge project page.
- Download a Pair comparison subjective experiment right here. This experiment basically displays two images side by side on a monitor, the reference image location is known (left hand side of the screen), and the distorted image is displayed on the right hand side. The observers are asked to evaluate the quality of the distorted image using the F1 to F5 keys on the keyboard (please read the README.txt file included in the zip archive for more details).
All three protocols described above (DSIS, PairComp & 2AFC) have been implemented as web applications.
They are available here:
http://websubjexp.polytech.univ-nantes.fr/DSIS/
http://websubjexp.polytech.univ-nantes.fr/PairComp/
http://websubjexp.polytech.univ-nantes.fr/2AFC/
This is just a first shot. These web-apps will probably be modified/improved soon.
They are available here:
http://websubjexp.polytech.univ-nantes.fr/DSIS/
http://websubjexp.polytech.univ-nantes.fr/PairComp/
http://websubjexp.polytech.univ-nantes.fr/2AFC/
This is just a first shot. These web-apps will probably be modified/improved soon.
Video Processing & Display
- Check out a H.264 watermarking DEMO.
- Download a YUV
player for Windows or Mac/Linux.
2 versions are available here:
- An SDL based player (cross-platform)
- An AquaTerm based player (Mac-only)
The arguments for this program are as follows:
1) the yuv video filename, 2) the frames height and 3) the frames width:
./SDL_YUVplayer foreman_qcif.yuv 144 176
Please read this file for more details.
Sourceforge project:
You can access the sourceforge project here.
Note that the sourceforge project may include new features.
Some YUV videos can be downloaded from
http://trace.eas.asu.edu/yuv/
ftp://ftp.tnt.uni-hannover.de/pub/svc/testsequences/
ftp://ftp.ldv.e-technik.tu-muenchen.de/pub/test_sequences/
http://media.xiph.org/video/derf/
Graphical User Interface:
I made a first attempt to create a GUI to the YUV player.
This interface allows to read 4:4:4, 4:2:2 & 4:2:0 planar YUV files.
You will need to have Python installed to run the Graphical User Interface.
If you want to compile this code, you'll need:
- SDL
- SDL_Image
- Python
- wxPython
Please, read the README.txt file.
Misc Stuff
- A 2D normalized cross correlation function in C: normxcorr2.
- 2D csf (Contrast Sensitivity Function) in C: 2Dcsf.
Edit the .m files,
and set the 'cmd' variable to the path of your "ij.jar" or "Plot" file.
Note: The the "getimage" function should be cross-platform, whereas the "getplot" function is Mac only.
Note: The the "getimage" function should be cross-platform, whereas the "getplot" function is Mac only.