README for EUSIPCO09-efficient-wm
MATLAB code implementing and testing five different detectors for
additive, spread-spectrum watermarking evaluated in the paper
Roland Kwitt, Peter Meerwald, Andreas Uhl,
"Efficient Detection of Additive Watermarking in the DWT-Domain",
Proceedings of the 17th European Signal Processing Conference, EUSIPCO '09,
pp. 2072-2076, Glasgow, UK, August 2009.
See http://wavelab.at/sources.
How to run the source code:
% assume to work in directory src/
% set the image names to test; they must be present in directory ../img
std_image_names = {'barbara', 'boat','bridge','elaine','lena','peppers'};
% compute probability of miss depending on distribution shape parameter for the
% images given in std_image_names; [0 0 0; 0 1 0] denotes the embedding subband,
% 'bior4.4' the wavelet filter used for image decomposition, 20 is the embedding
% DWR, 1000 the number of random watermarks to test (Monte Carlo simulation), 1e-6
% is the probability of false-alarm.
[results,quality,time] = test_cauchy_ggd_param_extensive(std_image_names, [0 0 0; 0
1 0], 'bior4.4', 20, 1000, 1e-6);
% produce 'Hoecker' (German word for 'hump') plots, see Fig. 2 and 3 in the paper;
% results are obtained by test_cauchy_ggd_param_extensive(), 1 denotes i-th image
% in the image set (std_image_names), 'ggd' produces plots for the GGD shape
% parameter (alternatively, use 'cauchy' to produce a plot for the Cauchy shape
% parameter, 'Barbara' specifies title the plot and the output file name); the
% resulting plot in .eps format in written to directory ../out
[pm,mle] = paper_hoecker_plot(results, 1, 'ggd', {'lrt','rao'}, 1e-6,
results{3,1,1}.range, 'Barbara');
[pm,mle] = paper_hoecker_plot(results, 1, 'cauchy', {'lrt','rao'}, 1e-6,
results{1,1,1}.range, 'Barbara');
Interesting functions:
* ggd_fast() computes a fast estimate of a vector's GGD shape parameter
* cauchy_fast() computes a fast estimate of a vector's Cauchy shape parameter
* detect_rao_cauchy() computes the detection statistic using the Rao-Cauchy detector
* detect_rao_ggd() computes the detection statistic using the Rao-GGD detector
* detect_lrt_cauchy() computes the detection statistic using the LRT-Cauchy detector
* detect_lrt_ggd() computes the detection statistic using the LRT-GGD detector
* detstat_corr_musigma() computes expected mean and variance of linear
correlation (LC) detection statistic under H0
* detstat_cauchy_musigma() computes expected mean and variance of
LRT-Cauchy detection statistic under H0
* detstat_ggd_musigma() computes expected mean and variance of
LRT-GGD detection statistic under H0
Dependencies:
The following programs and libraries need to be installed and in the
execution path (shell or MATLAB):
* Minh N. Do's MATLAB implementation of the moment matching and
maximum likelihood estimators for the generalized Gaussian
density, http://www.ifp.uiuc.edu/~minhdo/software/
* Pedar Axensten's Cauchy distribution MATLAB code,
http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=11749
* Nikola Sprljan's MATLAB Quality Assessment toolbox (v1.10),
http://sprljan.com/nikola/matlab/qassessment.html
Disclaimer:
This material is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
to anyone for the consequences of using it or for whether it serves
any particular purpose or works at all.
The material is prepared strictly for research use only, commercial use
is prohibited. Do not distribute the material without written permission.
If you publish any work based on this code, please cite the original
paper.
Contact:
Please address any technical questions to
Roland Kwitt (rkwitt@cosy.sbg.ac.at), or
Peter Meerwald (pmeerw@cosy.sbg.ac.at)
or write to
Andreas Uhl
Department of Computer Sciences
Universität Salzburg
Jakob-Haringer-Str. 2
A-5020 Salzburg
AUSTRIA
Telephone: ++43 (0)662 8044 6303
Fax: ++43 (0)662 8044 172
Email: uhl@cosy.sbg.ac.at