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 |