
Audio watermarking algorithm
----------------------------
Michael Arnold
Fraunhofer Institute for Computer Graphics (IGD), Germany.
arnold@igd.fhg.de

This is an implementation of an audio watermarking algorithm in 
MATLAB. It has been tested on MATLAB 6.0 running on Windows 2000. 
All you have to do is to copy the "*.m" files into a directory 
and call the 

[result, message] = Read('key_1')

routine from MATLAB in order to read the watermark from the file 
"marked_1.wav". You can use the following command to figure out the
ASCII representation of the bitMatrix returned by the reading 
process.

bits_for_character_A = dec2bin(double('A'), 8)

To evaluate the quality do a listening test with 
original.wav 
and the watermarked tracks 
marked_*.wav.

You can investigate the calculation of the minimum masking threshold if 
you call the function Test_MPEG in the sub-directory 
PsychoAcoustic_MPEG_1_Layer_I_Matlab 

In particular you can set or reset the DRAW variable to decide whether 
graphs should be displayed. 

This implementation is based on the paper
M. Arnold, "Audio watermarking: Features, applications and algorithms,"
in IEEE International Conference on Multimedia and Expo (ICME) 2000,
New York, NY USA, July 2000, Institute of Electrical and Electronics
Engineers, vol. 2, pp. 1013 - 1016, IEEE; 2000

One module is derived from the implementation of MPEG psychoacoustic 
model 1, layer I in MATLAB. This module was implemented by 
Fabien A. P. Petitcolas 
University of Cambridge, England. 
w+fapp2@cl.cam.ac.uk, www.cl.cam.ac.uk/~fapp2/

See the Copyright_Psychoacoustic.txt file about the copyright of 
this module.

---

Acknowledgements:

- Fabien A. P. Petitcolas University of Cambridge, England, for the 
  implementation of the MPEG psychoacoustic model 1, layer I, in 
  MATLAB. 
- Teddy Furon (furont@thmulti.com), Laboratoire TSI - Telecom Paris
  UIIS Lab - Thomson multimedia R&D France for speed improvements of
  the implementation of MPEG psychoacoustic model 1, layer I, in 
  MATLAB. 

---

Copyright (c) 2001, Michael Arnold, Fraunhofer Institute for 
Computer Graphics, Germany.

Redistribution and use in source and binary forms, with or without
modification, are permitted for noncommercial research and
academic use only, 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. Each individual file must retain its own copyright
  notice.

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

- Modification of the program or portion of it is allowed
  provided that the modified files carry prominent notices stating
  where and when they have been changed. If you do modify this
  program you should send to the contributors a general description
  of the changes and send them a copy of your changes at their
  request. By sending any changes to this program to the
  contributors, you are granting a license on such changes under the
  same terms and conditions as provided in this license agreement.
  However, the contributors are under no obligation to accept your
  changes.

- If you use this software for your research, please cite:

  Michael Arnold, Audio Watermarking algorithm for MATLAB,
  arnold@igd.fhg.de, http://www.igd.fhg.de/igd-a8/
  
THIS SOFTWARE IS NOT INTENDED FOR ANY COMMERCIAL APPLICATION AND
IS PROVIDED AS IS, WITH ALL FAULTS AND ANY EXPRESS OR IMPLIED
REPRESENTATIONS OR WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT OF
INTELLECTUAL PROPERTY ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
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.