Dirty Paper Trellis Watermarking Software
Click on the icon to dowload the archive (latest changes: 28/11/2005).
- Getting started under WINDOWS/DOS
There are two Microsoft Visual Studio solutions to be compiled
- .\Suc\Projects\Libs.sln - open the file and build the solution to obtain the libraries used for input/output
- .\dptWatermarking.sln - open the file and build the solution to obtain the two exec files
Note: Make sure to build the solutions in Release mode
Now if you go to the .\Exe directory you should see dptIterativeEmbedder and dptDetector
Type the command at a Ms-DOS prompt to see the syntax, basically <command> <image> <key>
- Getting started under UNIX/LINUX
Edit the Makefile and give the right value for PROJECT_HOME
Go to the root directory where the Makefile is and type 'make' at the command line
Many warnings should pop up but discard them
Now if you go to the ./Bin directory you should see dptIterativeEmbedder and dptDetector
Type the command to see the syntax, basically <command> <image> <key>
- Tuning the parameters to your needs
You can change some parameters in the file .\Include\dptDefines.h
There are mainly two of interest
- MAX_ITERATION: The higher, the surer you are to meet the
robustness constraint. Of course, this is counter-balanced by a higher
computational load. With the value 200, embedding usually takes less
than 2 minutes on my computer. Do not go below 100.
- ROBUSTNESS_THRESHOLD: this set the robustness constraint. The
higher, the more robust but of course the more visible. At the end of
the iterations, you will see the algorithm oscillate around a value
sigma on the log display. This is the value of the standard deviation
of the noise added to the DCT coefficients of the image during
embedding. Therefore, the embedded watermark should survive such noise
addition. You will also obtain the watson measure of the introduced
distortion. Usually, if it is below 20, it is invisible or at least
non-suspicious. However you can decrease the value of
ROBUSTNESS_THRESHOLD if you want to decrease the distortion.
There is no warranty for the programs, to the extent permitted by
applicable law. Except when otherwise stated in the writing, the
copyright holders and/or other parties provide the program as is
without warranty of any kind, either expressed or implied, including,
but not limited to, the implied warranties of merchantability and
fitness for a particular purpose. The entire risk as to the quality and
performance of the programs are with you. should the programs prove
defective, you assume the cost of all necessary servicing, repair or
correction.
In no event unless required by applicable law or agreed to in writing
will ant copyright holder, or any other party who may modify and/or
redistribute the programs, be liable to you for damages, including any
general, special, incidental or consequential damages arising out of
the use or inability to use the program (including but not limited to
loss of data or data being rendered inaccurate or losses sustained by
you or third parties or a failure of the program to operate with any
other programs), even if such holder or other party has been advised of
the possiblity of such damages.
- Things to do in the future
- Change the image I/O library for more convenience. For the moment, we only accept a specific kind of targa (.tga) images.
- Insert Lin's non iterative embedding technique for comparison (ICIP'05).
- The current implementation of Watson's distance is know to be buggy.
- Robustness constraint may be different for different payload (to
be checked) i.e. use same payload for valid comparison for the moment.
- Add signature bits to ensure a given false postive probability.