Mercurial > hg > wm
comparison manual.lyx @ 3:acb6967ee76d
update to 0.5
| author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
|---|---|
| date | Tue, 14 Aug 2007 21:11:21 +0200 |
| parents | be303a3f5ea8 |
| children |
comparison
equal
deleted
inserted
replaced
| 2:b92f06d9a967 | 3:acb6967ee76d |
|---|---|
| 1 #LyX 1.1 created this file. For more info see http://www.lyx.org/ | 1 #LyX 1.5.0rc2 created this file. For more info see http://www.lyx.org/ |
| 2 \lyxformat 218 | 2 \lyxformat 276 |
| 3 \begin_document | |
| 4 \begin_header | |
| 3 \textclass paper | 5 \textclass paper |
| 4 \language english | 6 \language english |
| 5 \inputencoding auto | 7 \inputencoding auto |
| 6 \fontscheme default | 8 \font_roman default |
| 9 \font_sans default | |
| 10 \font_typewriter default | |
| 11 \font_default_family default | |
| 12 \font_sc false | |
| 13 \font_osf false | |
| 14 \font_sf_scale 100 | |
| 15 \font_tt_scale 100 | |
| 7 \graphics default | 16 \graphics default |
| 8 \paperfontsize default | 17 \paperfontsize default |
| 9 \spacing single | 18 \spacing single |
| 10 \papersize Default | 19 \papersize default |
| 11 \paperpackage a4 | 20 \use_geometry false |
| 12 \use_geometry 0 | 21 \use_amsmath 1 |
| 13 \use_amsmath 0 | 22 \use_esint 0 |
| 23 \cite_engine basic | |
| 24 \use_bibtopic false | |
| 14 \paperorientation portrait | 25 \paperorientation portrait |
| 15 \secnumdepth 3 | 26 \secnumdepth 3 |
| 16 \tocdepth 3 | 27 \tocdepth 3 |
| 17 \paragraph_separation skip | 28 \paragraph_separation skip |
| 18 \defskip smallskip | 29 \defskip smallskip |
| 19 \quotes_language english | 30 \quotes_language english |
| 20 \quotes_times 2 | |
| 21 \papercolumns 1 | 31 \papercolumns 1 |
| 22 \papersides 1 | 32 \papersides 1 |
| 23 \paperpagestyle default | 33 \paperpagestyle default |
| 24 | 34 \tracking_changes false |
| 25 \layout Title | 35 \output_changes false |
| 26 | 36 \author "Anonymous" |
| 37 \end_header | |
| 38 | |
| 39 \begin_body | |
| 40 | |
| 41 \begin_layout Title | |
| 27 Watermarking Source Code | 42 Watermarking Source Code |
| 28 \layout SubTitle | 43 \end_layout |
| 29 | 44 |
| 30 version 0.4 | 45 \begin_layout SubTitle |
| 31 \layout Author | 46 version 0.5 |
| 32 | 47 \end_layout |
| 48 | |
| 49 \begin_layout Author | |
| 33 Peter Meerwald | 50 Peter Meerwald |
| 34 \layout Address | 51 \end_layout |
| 35 | 52 |
| 53 \begin_layout Address | |
| 36 Dept. | 54 Dept. |
| 37 of Scientific Computing, University of Salzburg | 55 of Computer Sciences, University of Salzburg |
| 38 \newline | 56 \newline |
| 39 Jakob-Haringer-Str. | 57 Jakob-Haringer-Str. |
| 40 2, A-5020 Salzburg, Austria | 58 2, A-5020 Salzburg, Austria |
| 41 \newline | 59 \newline |
| 42 | 60 |
| 43 \begin_inset LatexCommand \url{mailto:pmeerw@cosy.sbg.ac.at} | 61 \begin_inset LatexCommand url |
| 44 | 62 target "mailto:pmeerw@cosy.sbg.ac.at" |
| 45 \end_inset | 63 |
| 46 | 64 \end_inset |
| 47 | 65 |
| 48 \newline | 66 |
| 49 | 67 \newline |
| 50 \begin_inset LatexCommand \url{http://www.cosy.sbg.ac.at/~pmeerw/Watermarking} | 68 |
| 51 | 69 \begin_inset LatexCommand url |
| 52 \end_inset | 70 target "http://www.cosy.sbg.ac.at/~pmeerw/Watermarking" |
| 53 | 71 |
| 54 | 72 \end_inset |
| 55 \layout Abstract | 73 |
| 56 | 74 |
| 75 \end_layout | |
| 76 | |
| 77 \begin_layout Abstract | |
| 57 This package provides source code for some watermarking algorithms in hopefully | 78 This package provides source code for some watermarking algorithms in hopefully |
| 58 portable C code. | 79 portable C code. |
| 59 The programs can be used to study watermarking techniques, perform comparative | 80 The programs can be used to study watermarking techniques, perform comparative |
| 60 robustness tests and develop new attacks against embedded watermarks. | 81 robustness tests and develop new attacks against embedded watermarks. |
| 61 \layout Abstract | 82 \end_layout |
| 62 | 83 |
| 84 \begin_layout Abstract | |
| 63 However, the provided programs are by no means suitable for real-world applicati | 85 However, the provided programs are by no means suitable for real-world applicati |
| 64 on (i.e. | 86 on (i.e. |
| 65 copyright protection) and the code solely serves some educational purpose. | 87 copyright protection) and the code solely serves some educational purpose. |
| 66 \layout Standard | 88 \end_layout |
| 67 | 89 |
| 68 | 90 \begin_layout Standard |
| 69 \begin_inset LatexCommand \tableofcontents{} | 91 \begin_inset LatexCommand tableofcontents |
| 70 | 92 |
| 71 \end_inset | 93 \end_inset |
| 72 | 94 |
| 73 | 95 |
| 74 \layout Section | 96 \end_layout |
| 75 | 97 |
| 98 \begin_layout Section | |
| 76 Introduction | 99 Introduction |
| 77 \layout Standard | 100 \end_layout |
| 78 | 101 |
| 102 \begin_layout Standard | |
| 79 Academic research in the watermarking field has grown dramatically since | 103 Academic research in the watermarking field has grown dramatically since |
| 80 approximately 1995. | 104 approximately 1995. |
| 81 But surprisingly, source code for the proposed watermarking schemes has | 105 But surprisingly, source code for the proposed watermarking schemes has |
| 82 not been made available. | 106 not been made available. |
| 83 The reason is most likely the security of many watermarking systems lies | 107 The reason is most likely the security of many watermarking systems lies |
| 84 at least to some extent in the embedding and detection algorithm itself, | 108 at least to some extent in the embedding and detection algorithm itself, |
| 85 and not in the keys used -- violating the Kerckhoff principle | 109 and not in the keys used -- violating the Kerckhoff principle |
| 86 \begin_inset LatexCommand \cite{Kerckhoff1883a} | 110 \begin_inset LatexCommand cite |
| 87 | 111 key "Kerckhoff1883a" |
| 88 \end_inset | 112 |
| 113 \end_inset | |
| 89 | 114 |
| 90 . | 115 . |
| 91 \layout Standard | 116 \end_layout |
| 92 | 117 |
| 118 \begin_layout Standard | |
| 93 With the availability of public robustness test for watermarking algorithms, | 119 With the availability of public robustness test for watermarking algorithms, |
| 94 StirMark | 120 StirMark |
| 95 \begin_inset LatexCommand \cite{Petitcolas99c, Petitcolas98b, Petitcolas98a} | 121 \begin_inset LatexCommand cite |
| 96 | 122 key "Petitcolas99c, Petitcolas98b, Petitcolas98a" |
| 97 \end_inset | 123 |
| 124 \end_inset | |
| 98 | 125 |
| 99 , Unzign | 126 , Unzign |
| 100 \begin_float footnote | 127 \begin_inset Foot |
| 101 \layout Standard | 128 status collapsed |
| 102 | 129 |
| 103 | 130 \begin_layout Standard |
| 104 \begin_inset LatexCommand \url{http://www.altern.org/watermark} | 131 \begin_inset LatexCommand url |
| 105 | 132 target "http://www.altern.org/watermark" |
| 106 \end_inset | 133 |
| 107 | 134 \end_inset |
| 108 | 135 |
| 109 \end_float | 136 |
| 137 \end_layout | |
| 138 | |
| 139 \end_inset | |
| 140 | |
| 110 and very recently Checkmark | 141 and very recently Checkmark |
| 111 \begin_inset LatexCommand \cite{Pereira01b} | 142 \begin_inset LatexCommand cite |
| 112 | 143 key "Pereira01b" |
| 113 \end_inset | 144 |
| 145 \end_inset | |
| 114 | 146 |
| 115 , the situation begins to improve. | 147 , the situation begins to improve. |
| 116 Now it is possible to measure the performance of watermarking systems. | 148 Now it is possible to measure the performance of watermarking systems. |
| 117 | 149 |
| 118 \layout Standard | 150 \end_layout |
| 119 | 151 |
| 152 \begin_layout Standard | |
| 120 In order the compare and evaluate new embedding and detection techniques, | 153 In order the compare and evaluate new embedding and detection techniques, |
| 121 it is also necessary to have some reference implementations of the older, | 154 it is also necessary to have some reference implementations of the older, |
| 122 now often called classical schemes. | 155 now often called classical schemes. |
| 123 In this work, we provide some implementations of watermarking schemes, | 156 In this work, we provide some implementations of watermarking schemes, |
| 124 some of which can be considered 'classical'. | 157 some of which can be considered 'classical'. |
| 125 \layout Standard | 158 \end_layout |
| 126 | 159 |
| 160 \begin_layout Standard | |
| 127 It was the goal to capture the main ideas of the proposed algorithms, as | 161 It was the goal to capture the main ideas of the proposed algorithms, as |
| 128 layed out in the respective papers. | 162 layed out in the respective papers. |
| 129 This is clearly not an easy task as some papers do not disclose all details | 163 This is clearly not an easy task as some papers do not disclose all details |
| 130 or state which particular parameters were used to obtain the results outlined | 164 or state which particular parameters were used to obtain the results outlined |
| 131 in the communications. | 165 in the communications. |
| 132 \layout Standard | 166 \end_layout |
| 133 | 167 |
| 168 \begin_layout Standard | |
| 134 I am very interested in hearing your comments, complaints and suggestions | 169 I am very interested in hearing your comments, complaints and suggestions |
| 135 regarding this software. | 170 regarding this software. |
| 136 Moreover, if you have source code for a watermarking scheme not yet covered | 171 Moreover, if you have source code for a watermarking scheme not yet covered |
| 137 or some useful utility I would be happy to include your code in this distributi | 172 or some useful utility I would be happy to include your code in this distributi |
| 138 on. | 173 on. |
| 139 Please see the contact information at the top of this document. | 174 Please see the contact information at the top of this document. |
| 140 \layout Standard | 175 \end_layout |
| 141 | 176 |
| 177 \begin_layout Standard | |
| 142 If you use the accompanying code, please cite my thesis: | 178 If you use the accompanying code, please cite my thesis: |
| 143 \layout Quotation | 179 \end_layout |
| 144 | 180 |
| 181 \begin_layout Quotation | |
| 145 Peter Meerwald, Digital Image Watermarking in the Wavelet Transform Domain, | 182 Peter Meerwald, Digital Image Watermarking in the Wavelet Transform Domain, |
| 146 Master's Thesis, Department of Scientific Computing, University of Salzburg, | 183 Master's Thesis, Department of Scientific Computing, University of Salzburg, |
| 147 Austria, January 2001. | 184 Austria, January 2001. |
| 148 \layout Section | 185 \end_layout |
| 149 | 186 |
| 187 \begin_layout Section | |
| 150 Software | 188 Software |
| 151 \layout Standard | 189 \end_layout |
| 152 | 190 |
| 191 \begin_layout Standard | |
| 153 Most of the software provided herein was written by myself, as part of my | 192 Most of the software provided herein was written by myself, as part of my |
| 154 Master thesis. | 193 Master thesis. |
| 155 Some contributions were made by Vassilis Fotopoulos | 194 Some contributions were made by Vassilis Fotopoulos |
| 156 \begin_float footnote | 195 \begin_inset Foot |
| 157 \layout Standard | 196 status collapsed |
| 158 | 197 |
| 159 | 198 \begin_layout Standard |
| 160 \begin_inset LatexCommand \url{mailto:vfotop1@physics.upatras.gr} | 199 \begin_inset LatexCommand url |
| 161 | 200 target "mailto:vfotop1@physics.upatras.gr" |
| 162 \end_inset | 201 |
| 163 | 202 \end_inset |
| 164 | 203 |
| 165 \end_float | 204 |
| 205 \end_layout | |
| 206 | |
| 207 \end_inset | |
| 208 | |
| 166 . | 209 . |
| 167 The software in the archive is organized in the following sub-directories: | 210 The software in the archive is organized in the following sub-directories: |
| 168 \layout Description | 211 \end_layout |
| 169 | 212 |
| 213 \begin_layout Description | |
| 170 Fotopoulos/ contains contributions by Vassilis Fotopoulos | 214 Fotopoulos/ contains contributions by Vassilis Fotopoulos |
| 171 \layout Description | 215 \end_layout |
| 172 | 216 |
| 217 \begin_layout Description | |
| 173 Meerwald/ contains my work | 218 Meerwald/ contains my work |
| 174 \layout Description | 219 \end_layout |
| 175 | 220 |
| 221 \begin_layout Description | |
| 176 images/ contains the Lena image in PGM format; the default parameters of | 222 images/ contains the Lena image in PGM format; the default parameters of |
| 177 most algorithms are tuned to work best with that image | 223 most algorithms are tuned to work best with that image |
| 178 \layout Description | 224 \end_layout |
| 179 | 225 |
| 226 \begin_layout Description | |
| 180 linux_bin/ the place where the Linux executables are stored in the binary | 227 linux_bin/ the place where the Linux executables are stored in the binary |
| 181 distribution | 228 distribution |
| 182 \layout Description | 229 \end_layout |
| 183 | 230 |
| 231 \begin_layout Description | |
| 184 win32_bin/ the place where Windows 32-bit executables are distributed; tested | 232 win32_bin/ the place where Windows 32-bit executables are distributed; tested |
| 185 with Windows NT 4.0 only | 233 with Windows NT 4.0 only |
| 186 \layout Description | 234 \end_layout |
| 187 | 235 |
| 236 \begin_layout Description | |
| 188 make/ contains the | 237 make/ contains the |
| 189 \family typewriter | 238 \family typewriter |
| 190 \size small | 239 \size small |
| 191 Makefile | 240 Makefile |
| 192 \family default | 241 \family default |
| 193 \size default | 242 \size default |
| 194 options to build the code on supported platforms | 243 options to build the code on supported platforms |
| 195 \layout Standard | 244 \end_layout |
| 196 | 245 |
| 246 \begin_layout Standard | |
| 197 For the purpose of this software package, a watermarking system comprises | 247 For the purpose of this software package, a watermarking system comprises |
| 198 four parts, namely: signature generation, watermark embedding, watermark | 248 four parts, namely: signature generation, watermark embedding, watermark |
| 199 extraction and signature comparison or detection -- with the exception | 249 extraction and signature comparison or detection -- with the exception |
| 200 of Vassilis's code; there are only cast and test programs (corresponds | 250 of Vassilis's code; there are only cast and test programs (corresponds |
| 201 to watermark embedding and detection). | 251 to watermark embedding and detection). |
| 202 Signature is used more less as a synonym for mark and can be thought of | 252 Signature is used more less as a synonym for mark and can be thought of |
| 203 as the payload (at least for some schemes :-). | 253 as the payload (at least for some schemes :-). |
| 204 \layout Standard | 254 \end_layout |
| 205 | 255 |
| 256 \begin_layout Standard | |
| 206 All programs only accept the image in NetPBM format and will also produce | 257 All programs only accept the image in NetPBM format and will also produce |
| 207 only NetPBM-format files (see section | 258 only NetPBM-format files (see section |
| 208 \begin_inset LatexCommand \ref{sec:prereq} | 259 \begin_inset LatexCommand ref |
| 209 | 260 reference "sec:prereq" |
| 210 \end_inset | 261 |
| 262 \end_inset | |
| 211 | 263 |
| 212 ). | 264 ). |
| 213 Unfortunately, most programs have only been tested with 8-bit gray-scale | 265 Unfortunately, most programs have only been tested with 8-bit gray-scale |
| 214 images of size | 266 images of size |
| 215 \begin_inset Formula \( 512\times 512. \) | 267 \begin_inset Formula $512\times512.$ |
| 216 \end_inset | 268 \end_inset |
| 217 | 269 |
| 218 | 270 |
| 219 \layout Standard | 271 \end_layout |
| 220 | 272 |
| 273 \begin_layout Standard | |
| 221 In order to simplify batch testing, the programs allow to read either from | 274 In order to simplify batch testing, the programs allow to read either from |
| 222 a file, e.g. | 275 a file, e.g. |
| 223 \layout Standard | 276 \end_layout |
| 224 | 277 |
| 225 | 278 \begin_layout Standard |
| 226 \family typewriter | 279 |
| 227 \size small | 280 \family typewriter |
| 281 \size small | |
| 282 wm_cox_e -s cox.sig | |
| 283 \family default | |
| 284 | |
| 285 \family typewriter | |
| 286 \series bold | |
| 287 image.pgm | |
| 288 \end_layout | |
| 289 | |
| 290 \begin_layout Standard | |
| 291 or from standard input, i.e. | |
| 292 \end_layout | |
| 293 | |
| 294 \begin_layout Standard | |
| 228 wm_cox_e -s cox.sig | 295 wm_cox_e -s cox.sig |
| 229 \series bold | 296 \series bold |
| 297 < image.pgm | |
| 298 \end_layout | |
| 299 | |
| 300 \begin_layout Standard | |
| 301 The output is usually written to standard output, i.e. | |
| 302 | |
| 303 \end_layout | |
| 304 | |
| 305 \begin_layout Standard | |
| 306 | |
| 307 \family typewriter | |
| 308 \size small | |
| 309 wm_cox_e -s cox.sig image.pgm | |
| 310 \family default | |
| 311 | |
| 312 \family typewriter | |
| 313 \series bold | |
| 314 > wm_image.pgm | |
| 315 \end_layout | |
| 316 | |
| 317 \begin_layout Standard | |
| 318 unless redirected to a file, e.g. | |
| 319 \end_layout | |
| 320 | |
| 321 \begin_layout Standard | |
| 322 | |
| 323 \family typewriter | |
| 324 \size small | |
| 325 wm_cox_e -s cox.sig | |
| 326 \family default | |
| 327 | |
| 328 \family typewriter | |
| 329 \series bold | |
| 330 -o wm_image.pgm | |
| 331 \family default | |
| 332 \series default | |
| 333 | |
| 334 \family typewriter | |
| 230 image.pgm | 335 image.pgm |
| 231 \layout Standard | 336 \end_layout |
| 232 | 337 |
| 233 or from standard input, i.e. | 338 \begin_layout Subsection |
| 234 \layout Standard | |
| 235 | |
| 236 wm_cox_e -s cox.sig | |
| 237 \series bold | |
| 238 < image.pgm | |
| 239 \layout Standard | |
| 240 | |
| 241 The output is usually written to standard output, i.e. | |
| 242 | |
| 243 \layout Standard | |
| 244 | |
| 245 | |
| 246 \family typewriter | |
| 247 \size small | |
| 248 wm_cox_e -s cox.sig image.pgm | |
| 249 \series bold | |
| 250 > wm_image.pgm | |
| 251 \layout Standard | |
| 252 | |
| 253 unless redirected to a file, e.g. | |
| 254 \layout Standard | |
| 255 | |
| 256 | |
| 257 \family typewriter | |
| 258 \size small | |
| 259 wm_cox_e -s cox.sig | |
| 260 \series bold | |
| 261 -o wm_image.pgm | |
| 262 \series default | |
| 263 image.pgm | |
| 264 \layout Subsection | |
| 265 | |
| 266 Featured algorithms | 339 Featured algorithms |
| 267 \layout Standard | 340 \end_layout |
| 268 | 341 |
| 342 \begin_layout Standard | |
| 269 Currently it includes the following watermarking algorithms | 343 Currently it includes the following watermarking algorithms |
| 270 \layout Itemize | 344 \end_layout |
| 271 | 345 |
| 346 \begin_layout Itemize | |
| 272 Bruyndonckx [bruyn], refer to | 347 Bruyndonckx [bruyn], refer to |
| 273 \layout Quotation | 348 \end_layout |
| 274 | 349 |
| 350 \begin_layout Quotation | |
| 275 O. | 351 O. |
| 276 Bruyndonckx, Jean-Jacques Quisquater, and Benoit M. | 352 Bruyndonckx, Jean-Jacques Quisquater, and Benoit M. |
| 277 Macq. | 353 Macq. |
| 278 Spatial method for copyright labeling of digital images. | 354 Spatial method for copyright labeling of digital images. |
| 279 In IEEE Workshop on Nonlinear Signal and Image Processing '95, Thessaloniki, | 355 In IEEE Workshop on Nonlinear Signal and Image Processing '95, Thessaloniki, |
| 280 Greece, pages 456 - 459, 1995. | 356 Greece, pages 456 - 459, 1995. |
| 281 \layout Itemize | 357 \end_layout |
| 282 | 358 |
| 359 \begin_layout Itemize | |
| 283 Corvi, refer to | 360 Corvi, refer to |
| 284 \layout Quotation | 361 \end_layout |
| 285 | 362 |
| 363 \begin_layout Quotation | |
| 286 Marco Corvi and Gianluca Nicchiotti. | 364 Marco Corvi and Gianluca Nicchiotti. |
| 287 Wavelet-based image watermarking for copyright protection. | 365 Wavelet-based image watermarking for copyright protection. |
| 288 In Scandinavian Conference on Image Analysis SCIA '97, Lappeenranta, Finland, | 366 In Scandinavian Conference on Image Analysis SCIA '97, Lappeenranta, Finland, |
| 289 June 1997. | 367 June 1997. |
| 290 \layout Itemize | 368 \end_layout |
| 291 | 369 |
| 370 \begin_layout Itemize | |
| 292 Cox, refer to | 371 Cox, refer to |
| 293 \layout Quotation | 372 \end_layout |
| 294 | 373 |
| 374 \begin_layout Quotation | |
| 295 Ingemar J. | 375 Ingemar J. |
| 296 Cox, Joe Kilian, Tom Leighton, and Talal G. | 376 Cox, Joe Kilian, Tom Leighton, and Talal G. |
| 297 Shamoon. | 377 Shamoon. |
| 298 Secure spread spectrum watermarking for multimedia. | 378 Secure spread spectrum watermarking for multimedia. |
| 299 In Proceedings of the IEEE ICIP '97, volume 6, pages 1673 - 1687, Santa | 379 In Proceedings of the IEEE ICIP '97, volume 6, pages 1673 - 1687, Santa |
| 300 Barbara, California, USA, 1997. | 380 Barbara, California, USA, 1997. |
| 301 \layout Itemize | 381 \end_layout |
| 302 | 382 |
| 383 \begin_layout Itemize | |
| 303 Dugad, refer to | 384 Dugad, refer to |
| 304 \layout Quotation | 385 \end_layout |
| 305 | 386 |
| 387 \begin_layout Quotation | |
| 306 Rakesh Dugad, Krishna Ratakonda, and Narendra Ahuja. | 388 Rakesh Dugad, Krishna Ratakonda, and Narendra Ahuja. |
| 307 A new wavelet-based scheme for watermarking images. | 389 A new wavelet-based scheme for watermarking images. |
| 308 In Proceedings of the IEEE International Conference on Image Processing, | 390 In Proceedings of the IEEE International Conference on Image Processing, |
| 309 ICIP '98, Chicago, IL, USA, October 1998. | 391 ICIP '98, Chicago, IL, USA, October 1998. |
| 310 | 392 |
| 311 \layout Itemize | 393 \end_layout |
| 312 | 394 |
| 395 \begin_layout Itemize | |
| 313 Fridrich (2. | 396 Fridrich (2. |
| 314 scheme), refer to | 397 scheme), refer to |
| 315 \layout Quotation | 398 \end_layout |
| 316 | 399 |
| 400 \begin_layout Quotation | |
| 317 Jiri Fridrich. | 401 Jiri Fridrich. |
| 318 Combining low-frequency and spread spectrum watermarking. | 402 Combining low-frequency and spread spectrum watermarking. |
| 319 In Proceedings of the SPIE Symposium on Optical Science, Engineering and | 403 In Proceedings of the SPIE Symposium on Optical Science, Engineering and |
| 320 Instrumentation, San Diego, USA, July 1998. | 404 Instrumentation, San Diego, USA, July 1998. |
| 321 | 405 |
| 322 \layout Itemize | 406 \end_layout |
| 323 | 407 |
| 408 \begin_layout Itemize | |
| 324 Kim, refer to | 409 Kim, refer to |
| 325 \layout Quotation | 410 \end_layout |
| 326 | 411 |
| 412 \begin_layout Quotation | |
| 327 Jong Ryul Kim and Young Shik Moon. | 413 Jong Ryul Kim and Young Shik Moon. |
| 328 A robust wavelet-based digital watermark using level-adaptive thresholding. | 414 A robust wavelet-based digital watermark using level-adaptive thresholding. |
| 329 In Proceedings of the 6th IEEE International Conference on Image Processing | 415 In Proceedings of the 6th IEEE International Conference on Image Processing |
| 330 ICIP '99, page 202, Kobe, Japan, October 1999. | 416 ICIP '99, page 202, Kobe, Japan, October 1999. |
| 331 \layout Itemize | 417 \end_layout |
| 332 | 418 |
| 419 \begin_layout Itemize | |
| 333 Koch, refer to | 420 Koch, refer to |
| 334 \layout Quotation | 421 \end_layout |
| 335 | 422 |
| 423 \begin_layout Quotation | |
| 336 Eckhard Koch and Jian Zhao. | 424 Eckhard Koch and Jian Zhao. |
| 337 Towards robust and hidden image copyright labeling. | 425 Towards robust and hidden image copyright labeling. |
| 338 In Proceedings of the IEEE International Workshop on Nonlinear Signal and | 426 In Proceedings of the IEEE International Workshop on Nonlinear Signal and |
| 339 Image Processing, pages 452 - 455, Halkidiki, Marmaras, Greece, June 1995. | 427 Image Processing, pages 452 - 455, Halkidiki, Marmaras, Greece, June 1995. |
| 340 \layout Itemize | 428 \end_layout |
| 341 | 429 |
| 430 \begin_layout Itemize | |
| 431 Kundur, refer to | |
| 432 \end_layout | |
| 433 | |
| 434 \begin_layout Quotation | |
| 435 Deepa Kundur and Dimitrios Hatzinakos. | |
| 436 Digital watermarking using multiresolution wavelet decomposition. | |
| 437 In Proceedings of IEEE ICASSP '98, volume 5, pages 2969-2972, Seattle, | |
| 438 WA, USA, May 1998. | |
| 439 | |
| 440 \end_layout | |
| 441 | |
| 442 \begin_deeper | |
| 443 \begin_layout Standard | |
| 444 and | |
| 445 \end_layout | |
| 446 | |
| 447 \end_deeper | |
| 448 \begin_layout Quotation | |
| 449 Deepa Kundur and D. | |
| 450 Hatzinakos. | |
| 451 Diversity and attack characterization for improved robust watermarking. | |
| 452 IEEE Transactions on Signal Processing, 29(10):2383-2396, October 2001. | |
| 453 \end_layout | |
| 454 | |
| 455 \begin_layout Itemize | |
| 342 Wang, refer to | 456 Wang, refer to |
| 343 \layout Quotation | 457 \end_layout |
| 344 | 458 |
| 459 \begin_layout Quotation | |
| 345 Houng-Jyh Wang, Po-Chyi Su, and C.-C. | 460 Houng-Jyh Wang, Po-Chyi Su, and C.-C. |
| 346 Jay Kuo. | 461 Jay Kuo. |
| 347 Wavelet-based digital image watermarking. | 462 Wavelet-based digital image watermarking. |
| 348 Optics Express, volume 3, pp. | 463 Optics Express, volume 3, pp. |
| 349 497, December 1998. | 464 497, December 1998. |
| 350 | 465 |
| 351 \layout Itemize | 466 \end_layout |
| 352 | 467 |
| 468 \begin_layout Itemize | |
| 353 Xia, refer to | 469 Xia, refer to |
| 354 \layout Quotation | 470 \end_layout |
| 355 | 471 |
| 472 \begin_layout Quotation | |
| 356 Xiang-Gen Xia, Charles G. | 473 Xiang-Gen Xia, Charles G. |
| 357 Boncelet, and Gonzalo R. | 474 Boncelet, and Gonzalo R. |
| 358 Arce. | 475 Arce. |
| 359 Wavelet transform based watermark for digital images. | 476 Wavelet transform based watermark for digital images. |
| 360 Optics Express, volume 3, pp. | 477 Optics Express, volume 3, pp. |
| 361 497, December 1998. | 478 497, December 1998. |
| 362 \layout Itemize | 479 \end_layout |
| 363 | 480 |
| 481 \begin_layout Itemize | |
| 364 Xie, refer to | 482 Xie, refer to |
| 365 \layout Quotation | 483 \end_layout |
| 366 | 484 |
| 485 \begin_layout Quotation | |
| 367 Liehua Xie and Gonzalo R. | 486 Liehua Xie and Gonzalo R. |
| 368 Arce. | 487 Arce. |
| 369 Joint wavelet compression and authentication watermarking. | 488 Joint wavelet compression and authentication watermarking. |
| 370 In Proceedings of the IEEE International Conference on Image Processing, | 489 In Proceedings of the IEEE International Conference on Image Processing, |
| 371 ICIP '98, Chicago, IL, USA, 1998. | 490 ICIP '98, Chicago, IL, USA, 1998. |
| 372 \layout Itemize | 491 \end_layout |
| 373 | 492 |
| 493 \begin_layout Itemize | |
| 374 Zhu, refer to | 494 Zhu, refer to |
| 375 \layout Quotation | 495 \end_layout |
| 376 | 496 |
| 497 \begin_layout Quotation | |
| 377 Wenwu Zhu, Zixiang Xiong, and Ya-Qin Zhang. | 498 Wenwu Zhu, Zixiang Xiong, and Ya-Qin Zhang. |
| 378 Multiresolution watermarking for images and video: a unified approach. | 499 Multiresolution watermarking for images and video: a unified approach. |
| 379 In Proceedings of the IEEE International Conference on Image Processing, | 500 In Proceedings of the IEEE International Conference on Image Processing, |
| 380 ICIP '98, Chicago, IL, USA, October 1998. | 501 ICIP '98, Chicago, IL, USA, October 1998. |
| 381 | 502 |
| 382 \layout Itemize | 503 \end_layout |
| 383 | 504 |
| 505 \begin_layout Itemize | |
| 384 Piva/Fotopoulos [cast|test-pv,hart,sub], contribution by Vassilis Fotopoulos, | 506 Piva/Fotopoulos [cast|test-pv,hart,sub], contribution by Vassilis Fotopoulos, |
| 385 refer to | 507 refer to |
| 386 \layout Quotation | 508 \end_layout |
| 387 | 509 |
| 510 \begin_layout Quotation | |
| 388 M.Barni, F. | 511 M.Barni, F. |
| 389 Bartolini, V. | 512 Bartolini, V. |
| 390 Cappellini, A. | 513 Cappellini, A. |
| 391 Piva. | 514 Piva. |
| 392 A DCT-Domain System for Robust Image Watermarking, Signal Processing, vol. | 515 A DCT-Domain System for Robust Image Watermarking, Signal Processing, vol. |
| 393 66, pp 357 - 372, 1998. | 516 66, pp 357 - 372, 1998. |
| 394 \begin_deeper | 517 \end_layout |
| 395 \layout Standard | 518 |
| 396 \added_space_top smallskip \added_space_bottom smallskip | 519 \begin_deeper |
| 520 \begin_layout Standard | |
| 521 \begin_inset VSpace smallskip | |
| 522 \end_inset | |
| 523 | |
| 397 and | 524 and |
| 398 \end_deeper | 525 \begin_inset VSpace smallskip |
| 399 \layout Quotation | 526 \end_inset |
| 400 | 527 |
| 528 | |
| 529 \end_layout | |
| 530 | |
| 531 \end_deeper | |
| 532 \begin_layout Quotation | |
| 401 V. | 533 V. |
| 402 Fotopoulos, A. | 534 Fotopoulos, A. |
| 403 N. | 535 N. |
| 404 Skodras, A Subband DCT approach to image watermarking, X European Signal | 536 Skodras, A Subband DCT approach to image watermarking, X European Signal |
| 405 Processing Conference, September 4 - 8, 2000, Tampere, Finland. | 537 Processing Conference, September 4 - 8, 2000, Tampere, Finland. |
| 406 \layout Standard | 538 \end_layout |
| 407 | 539 |
| 540 \begin_layout Standard | |
| 408 More algorithms will be added over time, I have implemented about 13 watermarkin | 541 More algorithms will be added over time, I have implemented about 13 watermarkin |
| 409 g algorithms in the spatial-, DCT-, and wavelet domain so far. | 542 g algorithms in the spatial-, DCT-, and wavelet domain so far. |
| 410 \layout Subsection | 543 \end_layout |
| 411 | 544 |
| 412 | 545 \begin_layout Subsection |
| 413 \begin_inset LatexCommand \label{sec:utility_programs} | 546 \begin_inset LatexCommand label |
| 414 | 547 name "sec:utility_programs" |
| 415 \end_inset | 548 |
| 549 \end_inset | |
| 416 | 550 |
| 417 Utility programs | 551 Utility programs |
| 418 \layout Standard | 552 \end_layout |
| 419 | 553 |
| 554 \begin_layout Standard | |
| 420 A good way to check the effect of a watermarking algorithm is computing | 555 A good way to check the effect of a watermarking algorithm is computing |
| 421 the difference image, i.e. | 556 the difference image, i.e. |
| 422 subtracting the original image from the watermarked image. | 557 subtracting the original image from the watermarked image. |
| 423 Alternatively, one can also have a look at the modified coefficients in | 558 Alternatively, one can also have a look at the modified coefficients in |
| 424 the transform domain. | 559 the transform domain. |
| 425 The following programs facilitate these tasks: | 560 The following programs facilitate these tasks: |
| 426 \layout Description | 561 \end_layout |
| 427 | 562 |
| 563 \begin_layout Description | |
| 428 cmp_pgm compute difference image, PSNR, ... | 564 cmp_pgm compute difference image, PSNR, ... |
| 429 \layout Description | 565 \end_layout |
| 430 | 566 |
| 567 \begin_layout Description | |
| 431 cmp_dct compute full-frame DCT domain difference image | 568 cmp_dct compute full-frame DCT domain difference image |
| 432 \layout Description | 569 \end_layout |
| 433 | 570 |
| 571 \begin_layout Description | |
| 434 cmp_dct8x8 compute 8x8 block-based DCT difference image | 572 cmp_dct8x8 compute 8x8 block-based DCT difference image |
| 435 \layout Description | 573 \end_layout |
| 436 | 574 |
| 575 \begin_layout Description | |
| 437 cmp_dwt compute DWT domain difference image | 576 cmp_dwt compute DWT domain difference image |
| 438 \layout Standard | 577 \end_layout |
| 439 | 578 |
| 579 \begin_layout Standard | |
| 440 For example, to produce the difference image of two PGM files and compute | 580 For example, to produce the difference image of two PGM files and compute |
| 441 the PSNR along with some other measures, the following command can be used: | 581 the PSNR along with some other measures, the following command can be used: |
| 442 \layout Standard | 582 \end_layout |
| 443 | 583 |
| 444 | 584 \begin_layout Standard |
| 445 \family typewriter | 585 |
| 446 \size small | 586 \family typewriter |
| 587 \size small | |
| 447 cmp_pgm -p -i original.pgm -o diff.pgm watermarked.pgm | 588 cmp_pgm -p -i original.pgm -o diff.pgm watermarked.pgm |
| 448 \layout Section | 589 \end_layout |
| 449 | 590 |
| 591 \begin_layout Section | |
| 450 Usage | 592 Usage |
| 451 \layout Standard | 593 \end_layout |
| 452 | 594 |
| 595 \begin_layout Standard | |
| 453 Note, almost all programs will output usage information if called with the | 596 Note, almost all programs will output usage information if called with the |
| 454 | 597 |
| 455 \family typewriter | 598 \family typewriter |
| 456 \size small | 599 \size small |
| 457 -h | 600 -h |
| 458 \family default | 601 \family default |
| 459 \size default | 602 \size default |
| 460 argument. | 603 argument. |
| 461 \layout Subsection | 604 \end_layout |
| 462 | 605 |
| 606 \begin_layout Subsection | |
| 463 Generating a mark | 607 Generating a mark |
| 464 \layout Standard | 608 \end_layout |
| 465 | 609 |
| 610 \begin_layout Standard | |
| 466 First, you have to generate an appropriate signature file for the corresponding | 611 First, you have to generate an appropriate signature file for the corresponding |
| 467 embedding/detection algorithm; e.g. | 612 embedding/detection algorithm; e.g. |
| 468 if you are going to use Cox' scheme, then you would run | 613 if you are going to use Cox' scheme, then you would run |
| 469 \layout Standard | 614 \end_layout |
| 470 | 615 |
| 471 | 616 \begin_layout Standard |
| 472 \family typewriter | 617 |
| 473 \size small | 618 \family typewriter |
| 619 \size small | |
| 474 gen_cox_sig | 620 gen_cox_sig |
| 475 \layout Standard | 621 \end_layout |
| 476 | 622 |
| 623 \begin_layout Standard | |
| 477 The programs outputs some parameters and a sequence of Gaussian distributed | 624 The programs outputs some parameters and a sequence of Gaussian distributed |
| 478 random numbers (which is the watermark sequence). | 625 random numbers (which is the watermark sequence). |
| 479 You want to save that into a signature file, so you run | 626 You want to save that into a signature file, so you run |
| 480 \layout Standard | 627 \end_layout |
| 481 | 628 |
| 482 | 629 \begin_layout Standard |
| 483 \family typewriter | 630 |
| 484 \size small | 631 \family typewriter |
| 632 \size small | |
| 485 gen_cox_sig > cox.sig or | 633 gen_cox_sig > cox.sig or |
| 486 \layout Standard | 634 \end_layout |
| 487 | 635 |
| 488 | 636 \begin_layout Standard |
| 489 \family typewriter | 637 |
| 490 \size small | 638 \family typewriter |
| 639 \size small | |
| 491 gen_cox_sig -o cox.sig | 640 gen_cox_sig -o cox.sig |
| 492 \layout Standard | 641 \end_layout |
| 493 | 642 |
| 643 \begin_layout Standard | |
| 494 You can influence e.g. | 644 You can influence e.g. |
| 495 the embedding strength that will be used in the embedding step by running | 645 the embedding strength that will be used in the embedding step by running |
| 496 \layout Standard | 646 \end_layout |
| 497 | 647 |
| 498 | 648 \begin_layout Standard |
| 499 \family typewriter | 649 |
| 500 \size small | 650 \family typewriter |
| 651 \size small | |
| 501 gen_cox_sig -a 0.5 > too_strong_cox.sig | 652 gen_cox_sig -a 0.5 > too_strong_cox.sig |
| 502 \layout Standard | 653 \end_layout |
| 503 | 654 |
| 655 \begin_layout Standard | |
| 504 Usually, the programs for generating a signature will supply reasonable | 656 Usually, the programs for generating a signature will supply reasonable |
| 505 default values for marking a 8-bit gray-scale image of size | 657 default values for marking a 8-bit gray-scale image of size |
| 506 \begin_inset Formula \( 512\times 512. \) | 658 \begin_inset Formula $512\times512.$ |
| 507 \end_inset | 659 \end_inset |
| 508 | 660 |
| 509 | 661 |
| 510 \layout Subsection | 662 \end_layout |
| 511 | 663 |
| 664 \begin_layout Subsection | |
| 512 Watermark embedding | 665 Watermark embedding |
| 513 \layout Standard | 666 \end_layout |
| 514 | 667 |
| 668 \begin_layout Standard | |
| 515 Watermark embedding is performed with the following command (for our example, | 669 Watermark embedding is performed with the following command (for our example, |
| 516 we are using Cox' scheme): | 670 we are using Cox' scheme): |
| 517 \layout Standard | 671 \end_layout |
| 518 | 672 |
| 519 | 673 \begin_layout Standard |
| 520 \family typewriter | 674 |
| 521 \size small | 675 \family typewriter |
| 676 \size small | |
| 522 wm_cox_e -s cox.sig -o cox_lena.pgm lena.pgm | 677 wm_cox_e -s cox.sig -o cox_lena.pgm lena.pgm |
| 523 \layout Standard | 678 \end_layout |
| 524 | 679 |
| 680 \begin_layout Standard | |
| 525 The signature file is parsed to obtain the particular watermark sequence | 681 The signature file is parsed to obtain the particular watermark sequence |
| 526 and the embedding strength. | 682 and the embedding strength. |
| 527 The watermarked image is written to the file | 683 The watermarked image is written to the file |
| 528 \family typewriter | 684 \family typewriter |
| 529 \size small | 685 \size small |
| 530 cox_lena.pgm | 686 cox_lena.pgm |
| 531 \family default | 687 \family default |
| 532 \size default | 688 \size default |
| 533 . | 689 . |
| 534 Now it the time to check the perceptual quality of the produced image and | 690 Now it the time to check the perceptual quality of the produced image and |
| 535 also have a look at the difference image (see section | 691 also have a look at the difference image (see section |
| 536 \begin_inset LatexCommand \ref{sec:utility_programs} | 692 \begin_inset LatexCommand ref |
| 537 | 693 reference "sec:utility_programs" |
| 538 \end_inset | 694 |
| 695 \end_inset | |
| 539 | 696 |
| 540 ). | 697 ). |
| 541 \layout Subsection | 698 \end_layout |
| 542 | 699 |
| 700 \begin_layout Subsection | |
| 543 Watermark extraction | 701 Watermark extraction |
| 544 \layout Standard | 702 \end_layout |
| 545 | 703 |
| 704 \begin_layout Standard | |
| 546 To extract the embedded signature, we execute the command | 705 To extract the embedded signature, we execute the command |
| 547 \layout Standard | 706 \end_layout |
| 548 | 707 |
| 549 | 708 \begin_layout Standard |
| 550 \family typewriter | 709 |
| 551 \size small | 710 \family typewriter |
| 711 \size small | |
| 552 wm_cox_d -s cox.sig -i lena.pgm -o cox.wm cox_lena.pgm | 712 wm_cox_d -s cox.sig -i lena.pgm -o cox.wm cox_lena.pgm |
| 553 \layout Standard | 713 \end_layout |
| 554 | 714 |
| 715 \begin_layout Standard | |
| 555 Since Cox' algorithm is not blind, the original image is needed as a reference | 716 Since Cox' algorithm is not blind, the original image is needed as a reference |
| 556 to extract the embedded mark. | 717 to extract the embedded mark. |
| 557 The embedded mark will be stored in | 718 The embedded mark will be stored in |
| 558 \family typewriter | 719 \family typewriter |
| 559 \size small | 720 \size small |
| 560 cox.wm | 721 cox.wm |
| 561 \family default | 722 \family default |
| 562 \size default | 723 \size default |
| 563 . | 724 . |
| 564 The original signature, | 725 The original signature, |
| 565 \family typewriter | 726 \family typewriter |
| 566 \size small | 727 \size small |
| 567 cox.sig | 728 cox.sig |
| 568 \family default | 729 \family default |
| 569 \size default | 730 \size default |
| 570 , is used to get the auxiliary embedding parameter correct (e.g. | 731 , is used to get the auxiliary embedding parameter correct (e.g. |
| 571 embedding strength). | 732 embedding strength). |
| 572 | 733 |
| 573 \layout Subsection | 734 \end_layout |
| 574 | 735 |
| 736 \begin_layout Subsection | |
| 575 Comparing the mark | 737 Comparing the mark |
| 576 \layout Standard | 738 \end_layout |
| 577 | 739 |
| 740 \begin_layout Standard | |
| 578 The final step is comparing the original signature against the extracted | 741 The final step is comparing the original signature against the extracted |
| 579 signature. | 742 signature. |
| 580 The result here is usually a correlation factor. | 743 The result here is usually a correlation factor. |
| 581 Values around 0 indicate that the mark has not been found, values around | 744 Values around 0 indicate that the mark has not been found, values around |
| 582 1 | 745 1. |
| 583 \layout Standard | 746 \end_layout |
| 584 | 747 |
| 748 \begin_layout Standard | |
| 585 In most programs a analytical detection threshold for some detection probability | 749 In most programs a analytical detection threshold for some detection probability |
| 586 is not used. | 750 is not used. |
| 587 Hence, one has to observe the output of the detector for many different | 751 Hence, one has to observe the output of the detector for many different |
| 588 keys (around 1000 I'd suggest) to establish a reasonable threshold for | 752 keys (around 1000 I'd suggest) to establish a reasonable threshold for |
| 589 detection. | 753 detection. |
| 590 A good value to go with initially might be 0.2 which means we claim the | 754 A good value to go with initially might be 0.2 which means we claim the |
| 591 watermark detected if the correlation factor is > 0.2. | 755 watermark detected if the correlation factor is > 0.2. |
| 592 \layout Standard | 756 \end_layout |
| 593 | 757 |
| 758 \begin_layout Standard | |
| 594 The appropriate command for comparing the mark is | 759 The appropriate command for comparing the mark is |
| 595 \layout Standard | 760 \end_layout |
| 596 | 761 |
| 597 | 762 \begin_layout Standard |
| 598 \family typewriter | 763 |
| 599 \size small | 764 \family typewriter |
| 765 \size small | |
| 600 cmp_cox_sig -s cox.sig cox.wm | 766 cmp_cox_sig -s cox.sig cox.wm |
| 601 \layout Subsection | 767 \end_layout |
| 602 | 768 |
| 769 \begin_layout Subsection | |
| 603 Batch testing - benchmarking | 770 Batch testing - benchmarking |
| 604 \layout Standard | 771 \end_layout |
| 605 | 772 |
| 773 \begin_layout Standard | |
| 606 If you want to run many test you can pipe the images to be do be watermarked | 774 If you want to run many test you can pipe the images to be do be watermarked |
| 607 (and tested) through the embedder and detector. | 775 (and tested) through the embedder and detector. |
| 608 The programs then act like a filter. | 776 The programs then act like a filter. |
| 609 Try something like the following in a Unix shell script: | 777 Try something like the following in a Unix shell script: |
| 610 \layout Standard | 778 \end_layout |
| 611 | 779 |
| 612 | 780 \begin_layout Standard |
| 613 \family typewriter | 781 |
| 614 \size small | 782 \family typewriter |
| 783 \size small | |
| 615 gen_cox_sig > cox.sig | 784 gen_cox_sig > cox.sig |
| 616 \layout Standard | 785 \end_layout |
| 617 | 786 |
| 618 | 787 \begin_layout Standard |
| 619 \family typewriter | 788 |
| 620 \size small | 789 \family typewriter |
| 790 \size small | |
| 621 for i in *.pgm | 791 for i in *.pgm |
| 622 \layout Standard | 792 \end_layout |
| 623 | 793 |
| 624 | 794 \begin_layout Standard |
| 625 \family typewriter | 795 |
| 626 \size small | 796 \family typewriter |
| 797 \size small | |
| 627 do | 798 do |
| 628 \layout Standard | 799 \end_layout |
| 629 | 800 |
| 630 | 801 \begin_layout Standard |
| 631 \family typewriter | 802 |
| 632 \size small | 803 \family typewriter |
| 633 \SpecialChar ~ | 804 \size small |
| 634 \SpecialChar ~ | 805 \InsetSpace ~ |
| 806 \InsetSpace ~ | |
| 635 wm_cox_e -s cox.sig $i | | 807 wm_cox_e -s cox.sig $i | |
| 636 \backslash | 808 \backslash |
| 637 | 809 |
| 638 \layout Standard | 810 \end_layout |
| 639 | 811 |
| 640 | 812 \begin_layout Standard |
| 641 \family typewriter | 813 |
| 642 \size small | 814 \family typewriter |
| 643 \SpecialChar ~ | 815 \size small |
| 644 \SpecialChar ~ | 816 \InsetSpace ~ |
| 817 \InsetSpace ~ | |
| 645 wm_cox_d -s cox.sig -i $i | | 818 wm_cox_d -s cox.sig -i $i | |
| 646 \backslash | 819 \backslash |
| 647 | 820 |
| 648 \layout Standard | 821 \end_layout |
| 649 | 822 |
| 650 | 823 \begin_layout Standard |
| 651 \family typewriter | 824 |
| 652 \size small | 825 \family typewriter |
| 653 \SpecialChar ~ | 826 \size small |
| 654 \SpecialChar ~ | 827 \InsetSpace ~ |
| 828 \InsetSpace ~ | |
| 655 cmp_cox_sig -s cox.sig | 829 cmp_cox_sig -s cox.sig |
| 656 \layout Standard | 830 \end_layout |
| 657 | 831 |
| 658 | 832 \begin_layout Standard |
| 659 \family typewriter | 833 |
| 660 \size small | 834 \family typewriter |
| 835 \size small | |
| 661 done | 836 done |
| 662 \layout Section | 837 \end_layout |
| 663 | 838 |
| 664 | 839 \begin_layout Section |
| 665 \begin_inset LatexCommand \label{sec:recompile} | 840 \begin_inset LatexCommand label |
| 666 | 841 name "sec:recompile" |
| 667 \end_inset | 842 |
| 843 \end_inset | |
| 668 | 844 |
| 669 Recompiling | 845 Recompiling |
| 670 \layout Standard | 846 \end_layout |
| 671 | 847 |
| 848 \begin_layout Standard | |
| 672 Note, that most watermark embedding/extraction programs use the built-in | 849 Note, that most watermark embedding/extraction programs use the built-in |
| 673 random number generator of the C library, i.e. | 850 random number generator of the C library, i.e. |
| 674 | 851 |
| 675 \family typewriter | 852 \family typewriter |
| 676 \size small | 853 \size small |
| 677 srandom() | 854 srandom() |
| 678 \family default | 855 \family default |
| 679 \size default | 856 \size default |
| 680 and | 857 and |
| 681 \family typewriter | 858 \family typewriter |
| 682 \size small | 859 \size small |
| 683 random(). | 860 random(). |
| 684 | 861 |
| 685 \family default | 862 \family default |
| 686 \size default | 863 |
| 864 \size default | |
| 687 Therefore, if you recompile, chances are that you won't be able to use your | 865 Therefore, if you recompile, chances are that you won't be able to use your |
| 688 images watermarked with the previous version. | 866 images watermarked with the previous version. |
| 689 \layout Standard | 867 \end_layout |
| 690 | 868 |
| 869 \begin_layout Standard | |
| 691 The Makefile options for compiling on the different platforms can be found | 870 The Makefile options for compiling on the different platforms can be found |
| 692 in the | 871 in the |
| 693 \family typewriter | 872 \family typewriter |
| 694 \size small | 873 \size small |
| 695 make/ | 874 make/ |
| 696 \family default | 875 \family default |
| 697 \size default | 876 \size default |
| 698 sub-directory of the archive. | 877 sub-directory of the archive. |
| 699 \layout Subsection | 878 \end_layout |
| 700 | 879 |
| 701 | 880 \begin_layout Subsection |
| 702 \begin_inset LatexCommand \label{sec:prereq} | 881 \begin_inset LatexCommand label |
| 703 | 882 name "sec:prereq" |
| 704 \end_inset | 883 |
| 884 \end_inset | |
| 705 | 885 |
| 706 Prerequisites | 886 Prerequisites |
| 707 \layout Subsubsection | 887 \end_layout |
| 708 | 888 |
| 889 \begin_layout Subsubsection | |
| 709 NetPBM | 890 NetPBM |
| 710 \layout Standard | 891 \end_layout |
| 711 | 892 |
| 893 \begin_layout Standard | |
| 712 NetPBM is responsible for image file I/O and provides a definition of a | 894 NetPBM is responsible for image file I/O and provides a definition of a |
| 713 simple image file format along with many image file format filters that | 895 simple image file format along with many image file format filters that |
| 714 allow to convert images to and from NetPBM format. | 896 allow to convert images to and from NetPBM format. |
| 715 | 897 |
| 716 \layout Standard | 898 \end_layout |
| 717 | 899 |
| 900 \begin_layout Standard | |
| 718 You need to get and install the NetPBM library at | 901 You need to get and install the NetPBM library at |
| 719 \begin_inset LatexCommand \url{http://wuarchive.wustl.edu/graphics/graphics/packages/NetPBM/} | 902 \begin_inset LatexCommand url |
| 720 | 903 target "http://wuarchive.wustl.edu/graphics/graphics/packages/NetPBM/" |
| 721 \end_inset | 904 |
| 905 \end_inset | |
| 722 | 906 |
| 723 or | 907 or |
| 724 \begin_inset LatexCommand \url{http://netpbm.sourceforge.net} | 908 \begin_inset LatexCommand url |
| 725 | 909 target "http://netpbm.sourceforge.net" |
| 726 \end_inset | 910 |
| 911 \end_inset | |
| 727 | 912 |
| 728 . | 913 . |
| 729 The library provides | 914 The library provides |
| 730 \family typewriter | 915 \family typewriter |
| 731 \size small | 916 \size small |
| 732 pgm.h | 917 pgm.h |
| 733 \family default | 918 \family default |
| 734 \size default | 919 \size default |
| 735 and the appropriate implementation. | 920 and the appropriate implementation. |
| 736 \layout Subsection | 921 \end_layout |
| 737 | 922 |
| 923 \begin_layout Subsubsection | |
| 924 getopt | |
| 925 \end_layout | |
| 926 | |
| 927 \begin_layout Standard | |
| 928 When compiling on Windows, the getopt() function call required. | |
| 929 An implementation of getopt() can be found in the NetPBM package. | |
| 930 | |
| 931 \end_layout | |
| 932 | |
| 933 \begin_layout Subsection | |
| 738 Unix/Linux platform | 934 Unix/Linux platform |
| 739 \layout Standard | 935 \end_layout |
| 740 | 936 |
| 937 \begin_layout Standard | |
| 741 All programs were developed using Linux and GNU C. | 938 All programs were developed using Linux and GNU C. |
| 742 The programs should compile and work with all recent versions of Linux | 939 The programs should compile and work with all recent versions of Linux |
| 743 and GNU C. | 940 and GNU C. |
| 744 | 941 |
| 745 \layout Subsection | 942 \end_layout |
| 746 | 943 |
| 747 | 944 \begin_layout Subsection |
| 748 \begin_inset LatexCommand \label{sec:win32_compile} | 945 \begin_inset LatexCommand label |
| 749 | 946 name "sec:win32_compile" |
| 750 \end_inset | 947 |
| 948 \end_inset | |
| 751 | 949 |
| 752 Win32 platform | 950 Win32 platform |
| 753 \layout Standard | 951 \end_layout |
| 754 | 952 |
| 953 \begin_layout Standard | |
| 755 The programs were ported to the Windows platform using the Cygwin | 954 The programs were ported to the Windows platform using the Cygwin |
| 756 \begin_float footnote | 955 \begin_inset Foot |
| 757 \layout Standard | 956 status collapsed |
| 758 | 957 |
| 759 | 958 \begin_layout Standard |
| 760 \begin_inset LatexCommand \url{http://www.cygwin.com} | 959 \begin_inset LatexCommand url |
| 761 | 960 target "http://www.cygwin.com" |
| 762 \end_inset | 961 |
| 763 | 962 \end_inset |
| 764 | 963 |
| 765 \end_float | 964 |
| 965 \end_layout | |
| 966 | |
| 967 \end_inset | |
| 968 | |
| 766 and Mingw | 969 and Mingw |
| 767 \begin_float footnote | 970 \begin_inset Foot |
| 768 \layout Standard | 971 status collapsed |
| 769 | 972 |
| 770 | 973 \begin_layout Standard |
| 771 \begin_inset LatexCommand \url{http://www.mingw.org} | 974 \begin_inset LatexCommand url |
| 772 | 975 target "http://www.mingw.org" |
| 773 \end_inset | 976 |
| 774 | 977 \end_inset |
| 775 | 978 |
| 776 \end_float | 979 |
| 980 \end_layout | |
| 981 | |
| 982 \end_inset | |
| 983 | |
| 777 environment. | 984 environment. |
| 778 Most notable, the file mode for standard input and standard output has | 985 Most notable, the file mode for standard input and standard output has |
| 779 to be set to binary mode. | 986 to be set to binary mode. |
| 780 This is accomplished with the | 987 This is accomplished with the |
| 781 \family typewriter | 988 \family typewriter |
| 782 \size small | 989 \size small |
| 783 setmode() | 990 setmode() |
| 784 \family default | 991 \family default |
| 785 \size default | 992 \size default |
| 786 or | 993 or |
| 787 \family typewriter | 994 \family typewriter |
| 788 \size small | 995 \size small |
| 789 _fsetmode() | 996 _fsetmode() |
| 790 \family default | 997 \family default |
| 791 \size default | 998 \size default |
| 792 commands. | 999 commands. |
| 793 \layout Section | 1000 \end_layout |
| 794 | 1001 |
| 1002 \begin_layout Section | |
| 795 FAQ | 1003 FAQ |
| 796 \layout Standard | 1004 \end_layout |
| 797 | 1005 |
| 1006 \begin_layout Standard | |
| 798 Q: How can I report problems? | 1007 Q: How can I report problems? |
| 799 \layout Standard | 1008 \end_layout |
| 800 | 1009 |
| 1010 \begin_layout Standard | |
| 801 A: See the contact information at the beginning of this document. | 1011 A: See the contact information at the beginning of this document. |
| 802 \layout Standard | 1012 \end_layout |
| 803 | 1013 |
| 1014 \begin_layout Standard | |
| 804 Q: The compiler complains about | 1015 Q: The compiler complains about |
| 805 \family typewriter | 1016 \family typewriter |
| 806 \size small | 1017 \size small |
| 807 pgm.h | 1018 pgm.h |
| 808 \family default | 1019 \family default |
| 809 \size default | 1020 \size default |
| 810 ? | 1021 ? |
| 811 \layout Standard | 1022 \end_layout |
| 812 | 1023 |
| 1024 \begin_layout Standard | |
| 813 A: You need to get and install the NetPBM library, see section | 1025 A: You need to get and install the NetPBM library, see section |
| 814 \begin_inset LatexCommand \ref{sec:prereq} | 1026 \begin_inset LatexCommand ref |
| 815 | 1027 reference "sec:prereq" |
| 816 \end_inset | 1028 |
| 1029 \end_inset | |
| 817 | 1030 |
| 818 . | 1031 . |
| 819 \layout Standard | 1032 \end_layout |
| 820 | 1033 |
| 1034 \begin_layout Standard | |
| 821 Q: What is the best algorithm? | 1035 Q: What is the best algorithm? |
| 822 \layout Standard | 1036 \end_layout |
| 823 | 1037 |
| 1038 \begin_layout Standard | |
| 824 A: Depends on your application. | 1039 A: Depends on your application. |
| 825 \layout Standard | 1040 \end_layout |
| 826 | 1041 |
| 1042 \begin_layout Standard | |
| 827 Q: What is the most robust algorithm? | 1043 Q: What is the most robust algorithm? |
| 828 \layout Standard | 1044 \end_layout |
| 829 | 1045 |
| 1046 \begin_layout Standard | |
| 830 A: Depends on the attack. | 1047 A: Depends on the attack. |
| 831 See some results on | 1048 See some results on |
| 832 \begin_inset LatexCommand \url{http://www.cosy.sbg.ac.at/~pmeerw/Watermarking} | 1049 \begin_inset LatexCommand url |
| 833 | 1050 target "http://www.cosy.sbg.ac.at/~pmeerw/Watermarking" |
| 834 \end_inset | 1051 |
| 1052 \end_inset | |
| 835 | 1053 |
| 836 . | 1054 . |
| 837 \layout Standard | 1055 \end_layout |
| 838 | 1056 |
| 1057 \begin_layout Standard | |
| 839 Q: I need code for a full-frame DCT? | 1058 Q: I need code for a full-frame DCT? |
| 840 \layout Standard | 1059 \end_layout |
| 841 | 1060 |
| 1061 \begin_layout Standard | |
| 842 A: See the files Meerwald/dct.* in the archive. | 1062 A: See the files Meerwald/dct.* in the archive. |
| 843 \layout Standard | 1063 \end_layout |
| 844 | 1064 |
| 1065 \begin_layout Standard | |
| 845 Q: I need code for a 8x8 block DCT? | 1066 Q: I need code for a 8x8 block DCT? |
| 846 \layout Standard | 1067 \end_layout |
| 847 | 1068 |
| 1069 \begin_layout Standard | |
| 848 A: See the files | 1070 A: See the files |
| 849 \family typewriter | 1071 \family typewriter |
| 850 \size small | 1072 \size small |
| 851 Meerwald/dct.* | 1073 Meerwald/dct.* |
| 852 \family default | 1074 \family default |
| 853 \size default | 1075 \size default |
| 854 in the archive. | 1076 in the archive. |
| 855 \layout Standard | 1077 \end_layout |
| 856 | 1078 |
| 1079 \begin_layout Standard | |
| 857 Q: I need code for the wavelet transform (DWT)? | 1080 Q: I need code for the wavelet transform (DWT)? |
| 858 \layout Standard | 1081 \end_layout |
| 859 | 1082 |
| 1083 \begin_layout Standard | |
| 860 A: See the files | 1084 A: See the files |
| 861 \family typewriter | 1085 \family typewriter |
| 862 \size small | 1086 \size small |
| 863 Meerwald/wavelet.* | 1087 Meerwald/wavelet.* |
| 864 \family default | 1088 \family default |
| 865 \size default | 1089 \size default |
| 866 in the archive. | 1090 in the archive. |
| 867 \layout Standard | 1091 \end_layout |
| 868 | 1092 |
| 1093 \begin_layout Standard | |
| 869 Q: I get the message 'unable to open filter.dat' - what to do? | 1094 Q: I get the message 'unable to open filter.dat' - what to do? |
| 870 \layout Standard | 1095 \end_layout |
| 871 | 1096 |
| 1097 \begin_layout Standard | |
| 872 A: Make sure the file filter.dat is in the current directory or accessible | 1098 A: Make sure the file filter.dat is in the current directory or accessible |
| 873 via path/filename specified in the signature file. | 1099 via path/filename specified in the signature file. |
| 874 Use the signature generation command to specify an absolute path if necessary. | 1100 Use the signature generation command to specify an absolute path if necessary. |
| 875 \layout Standard | 1101 \end_layout |
| 876 | 1102 |
| 1103 \begin_layout Standard | |
| 877 Q: I can't compile the code using some Microsoft product? | 1104 Q: I can't compile the code using some Microsoft product? |
| 878 \layout Standard | 1105 \end_layout |
| 879 | 1106 |
| 1107 \begin_layout Standard | |
| 880 A: Make your life easier, install GNU software! See section | 1108 A: Make your life easier, install GNU software! See section |
| 881 \begin_inset LatexCommand \ref{sec:recompile} | 1109 \begin_inset LatexCommand ref |
| 882 | 1110 reference "sec:recompile" |
| 883 \end_inset | 1111 |
| 1112 \end_inset | |
| 884 | 1113 |
| 885 . | 1114 . |
| 886 \layout Section | 1115 \end_layout |
| 887 | 1116 |
| 1117 \begin_layout Section | |
| 888 Revision history | 1118 Revision history |
| 889 \layout Standard | 1119 \end_layout |
| 890 | 1120 |
| 1121 \begin_layout Standard | |
| 1122 version 0.5 (December, 2005) | |
| 1123 \end_layout | |
| 1124 | |
| 1125 \begin_layout Itemize | |
| 1126 added algorithm kund3, kund2 and xie2 | |
| 1127 \end_layout | |
| 1128 | |
| 1129 \begin_layout Standard | |
| 891 version 0.4 (June 21, 2001) | 1130 version 0.4 (June 21, 2001) |
| 892 \layout Itemize | 1131 \end_layout |
| 893 | 1132 |
| 1133 \begin_layout Itemize | |
| 894 bug fixes | 1134 bug fixes |
| 895 \begin_deeper | 1135 \end_layout |
| 896 \layout Itemize | 1136 |
| 897 | 1137 \begin_deeper |
| 1138 \begin_layout Itemize | |
| 898 wm_xia_{e|d}.c variable level uninitialized | 1139 wm_xia_{e|d}.c variable level uninitialized |
| 899 \layout Itemize | 1140 \end_layout |
| 900 | 1141 |
| 1142 \begin_layout Itemize | |
| 901 wm_zhu_{e|d}.c variable level uninitialized | 1143 wm_zhu_{e|d}.c variable level uninitialized |
| 902 \layout Itemize | 1144 \end_layout |
| 903 | 1145 |
| 1146 \begin_layout Itemize | |
| 904 issue with random() vs. | 1147 issue with random() vs. |
| 905 rand() and RAND_MAX in frid2_common.c | 1148 rand() and RAND_MAX in frid2_common.c |
| 906 \end_deeper | 1149 \end_layout |
| 907 \layout Itemize | 1150 |
| 908 | 1151 \end_deeper |
| 1152 \begin_layout Itemize | |
| 909 added option to bruyn algorithm to disable block skipping | 1153 added option to bruyn algorithm to disable block skipping |
| 910 \layout Itemize | 1154 \end_layout |
| 911 | 1155 |
| 1156 \begin_layout Itemize | |
| 912 added algorithm kim | 1157 added algorithm kim |
| 913 \layout Standard | 1158 \end_layout |
| 914 | 1159 |
| 1160 \begin_layout Standard | |
| 915 version 0.3 (June 18, 2001) | 1161 version 0.3 (June 18, 2001) |
| 916 \layout Itemize | 1162 \end_layout |
| 917 | 1163 |
| 1164 \begin_layout Itemize | |
| 918 created a nice (?) manual/documentation | 1165 created a nice (?) manual/documentation |
| 919 \layout Itemize | 1166 \end_layout |
| 920 | 1167 |
| 1168 \begin_layout Itemize | |
| 921 added algorithms by Dugad, Wang, Zhu, Fridrich | 1169 added algorithms by Dugad, Wang, Zhu, Fridrich |
| 922 \layout Itemize | 1170 \end_layout |
| 923 | 1171 |
| 1172 \begin_layout Itemize | |
| 924 added Makefiles for Win32 platform (mingw32) | 1173 added Makefiles for Win32 platform (mingw32) |
| 925 \layout Standard | 1174 \end_layout |
| 926 | 1175 |
| 1176 \begin_layout Standard | |
| 927 version 0.2 (February 22, 2001) | 1177 version 0.2 (February 22, 2001) |
| 928 \layout Itemize | 1178 \end_layout |
| 929 | 1179 |
| 1180 \begin_layout Itemize | |
| 930 added contribution by Vassilis Fotopoulos (Piva's algorithm, | 1181 added contribution by Vassilis Fotopoulos (Piva's algorithm, |
| 931 \layout Itemize | 1182 \end_layout |
| 932 | 1183 |
| 1184 \begin_layout Itemize | |
| 933 DCT, Hartley and subband domain) - see Fotopoulos/ subdirectory | 1185 DCT, Hartley and subband domain) - see Fotopoulos/ subdirectory |
| 934 \layout Itemize | 1186 \end_layout |
| 935 | 1187 |
| 1188 \begin_layout Itemize | |
| 936 stuff moved to Meerwald/ subdirectory | 1189 stuff moved to Meerwald/ subdirectory |
| 937 \layout Itemize | 1190 \end_layout |
| 938 | 1191 |
| 1192 \begin_layout Itemize | |
| 939 added Bruyndonckx, Corvi, Koch, Xia, Xie algorithms | 1193 added Bruyndonckx, Corvi, Koch, Xia, Xie algorithms |
| 940 \layout Standard | 1194 \end_layout |
| 941 | 1195 |
| 1196 \begin_layout Standard | |
| 942 version 0.1 (February 18, 2001) | 1197 version 0.1 (February 18, 2001) |
| 943 \layout Itemize | 1198 \end_layout |
| 944 | 1199 |
| 1200 \begin_layout Itemize | |
| 945 initial release | 1201 initial release |
| 946 \layout Section | 1202 \end_layout |
| 947 | 1203 |
| 1204 \begin_layout Section | |
| 948 Legal statement | 1205 Legal statement |
| 949 \layout Standard | 1206 \end_layout |
| 950 | 1207 |
| 1208 \begin_layout Standard | |
| 951 My license is called "I-don't-care" license: (1) You can do with the accompanyin | 1209 My license is called "I-don't-care" license: (1) You can do with the accompanyin |
| 952 g software whatever you want, but don't blame me if it doesn't work or it | 1210 g software whatever you want, but don't blame me if it doesn't work or it |
| 953 causes damage. | 1211 causes damage. |
| 954 (2) If you think my work is useful, tell me and tell others, but you are | 1212 (2) If you think my work is useful, tell me and tell others, but you are |
| 955 not obliged to do so. | 1213 not obliged to do so. |
| 956 I suggest not to remove information contained in this other documentation | 1214 I suggest not to remove information contained in this other documentation |
| 957 file. | 1215 file. |
| 958 \layout Standard | 1216 \end_layout |
| 959 | 1217 |
| 960 | 1218 \begin_layout Standard |
| 961 \begin_inset LatexCommand \BibTeX[plain]{watermarking} | 1219 \begin_inset LatexCommand bibtex |
| 962 | 1220 options "plain" |
| 963 \end_inset | 1221 bibfiles "watermarking" |
| 964 | 1222 |
| 965 | 1223 \end_inset |
| 966 \the_end | 1224 |
| 1225 | |
| 1226 \end_layout | |
| 1227 | |
| 1228 \end_body | |
| 1229 \end_document |
