| 
0
 | 
     1 # Makefile
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 # choose build platform
 | 
| 
 | 
     4 include ../make/make.config
 | 
| 
 | 
     5 
 | 
| 
 | 
     6 all: 	tools \
 | 
| 
 | 
     7 	bruyn \
 | 
| 
 | 
     8 	koch \
 | 
| 
 | 
     9 	corvi \
 | 
| 
 | 
    10 	xia \
 | 
| 
 | 
    11 	xie \
 | 
| 
 | 
    12 	cox \
 | 
| 
 | 
    13 	zhu \
 | 
| 
 | 
    14 	dugad \
 | 
| 
 | 
    15 	wang \
 | 
| 
 | 
    16 	frid2 \
 | 
| 
 | 
    17 	kim
 | 
| 
 | 
    18 
 | 
| 
 | 
    19 .SUFFIXES: .c .o .1 .ps
 | 
| 
 | 
    20 
 | 
| 
 | 
    21 .c$(O):
 | 
| 
 | 
    22 	$(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $<
 | 
| 
 | 
    23 
 | 
| 
 | 
    24 .1.ps:
 | 
| 
 | 
    25 	$(GROFF) $< > $@ 
 | 
| 
 | 
    26 
 | 
| 
 | 
    27 # library containing general stuff
 | 
| 
 | 
    28 
 | 
| 
 | 
    29 $(LIBPREFIX)wm$(LIB): dct$(O) coeff$(O) gray$(O) sort$(O) signature$(O) coord$(O) wm$(O)
 | 
| 
 | 
    30 	$(RM) $@
 | 
| 
 | 
    31 	ar -rc $@ dct$(O) coeff$(O) gray$(O) sort$(O) signature$(O) coord$(O) wm$(O)
 | 
| 
 | 
    32 
 | 
| 
 | 
    33 libraryclean:
 | 
| 
 | 
    34 	$(RM) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
    35 
 | 
| 
 | 
    36 # library containing wavelet transform stuff
 | 
| 
 | 
    37 
 | 
| 
 | 
    38 $(LIBPREFIX)wavelet$(LIB): wavelet$(O) dwt$(O) dwt_util$(O)
 | 
| 
 | 
    39 	$(RM) $@
 | 
| 
 | 
    40 	ar -rc $@ wavelet$(O) dwt$(O) dwt_util$(O)
 | 
| 
 | 
    41 
 | 
| 
 | 
    42 waveletclean:
 | 
| 
 | 
    43 	$(RM) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
    44 
 | 
| 
 | 
    45 # some general tools to compute difference image, PSNR, ...
 | 
| 
 | 
    46 
 | 
| 
 | 
    47 tools: cmp_pgm$(EXE)  cmp_dct8x8$(EXE)  cmp_dct$(EXE) cmp_dwt$(EXE)
 | 
| 
 | 
    48 
 | 
| 
 | 
    49 toolstest:
 | 
| 
 | 
    50 
 | 
| 
 | 
    51 toolsinstall: tools
 | 
| 
 | 
    52 	$(CP) cmp_pgm$(EXE)  cmp_dct8x8$(EXE)  cmp_dct$(EXE) cmp_dwt$(EXE) $(INSTALLDIR)
 | 
| 
 | 
    53 
 | 
| 
 | 
    54 toolsman: cmp_pgm.ps cmp_dct8x8.ps cmp_dct.ps
 | 
| 
 | 
    55 
 | 
| 
 | 
    56 toolsclean:
 | 
| 
 | 
    57 	$(RM) cmp_pgm$(EXE) cmp_dct$(EXE) cmp_dct8x8$(EXE)
 | 
| 
 | 
    58 
 | 
| 
 | 
    59 cmp_pgm$(EXE):  cmp_pgm$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
    60 	$(CC) $(LDFLAGS) -o $@ cmp_pgm$(O) $(WMLIB) $(PGMLIBS)
 | 
| 
 | 
    61 
 | 
| 
 | 
    62 cmp_dct$(EXE):  cmp_dct$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
    63 	$(CC) $(LDFLAGS) -o $@ cmp_dct$(O) $(WMLIB) $(PGMLIBS)
 | 
| 
 | 
    64 
 | 
| 
 | 
    65 cmp_dwt$(EXE):  cmp_dwt$(O) $(LIBPREFIX)wavelet$(LIB)  $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
    66 	$(CC) $(LDFLAGS) -o $@ cmp_dwt$(O) $(WAVELIB) $(WMLIB) $(PGMLIBS)
 | 
| 
 | 
    67 
 | 
| 
 | 
    68 cmp_dct8x8$(EXE): cmp_dct8x8$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
    69 	$(CC) $(LDFLAGS) -o $@ cmp_dct8x8$(O) $(WMLIB) $(PGMLIBS)
 | 
| 
 | 
    70 
 | 
| 
 | 
    71 
 | 
| 
 | 
    72 # Koch's algorithm (8x8 block DCT, blind, binary)
 | 
| 
 | 
    73 
 | 
| 
 | 
    74 koch: gen_koch_sig$(EXE) wm_koch_e$(EXE) wm_koch_d$(EXE) cmp_koch_sig$(EXE)
 | 
| 
 | 
    75 
 | 
| 
 | 
    76 kochtest: koch
 | 
| 
 | 
    77 	gen_koch_sig$(EXE) -n 150 < gen_koch_sig.c > ../sigs/koch.sig
 | 
| 
 | 
    78 	wm_koch_e$(EXE) -s ../sigs/koch.sig -o ../watermarked/koch_lena.pgm ../images/lena.pgm
 | 
| 
 | 
    79 	wm_koch_d$(EXE) -s ../sigs/koch.sig -o ../wms/koch.wm ../watermarked/koch_lena.pgm
 | 
| 
 | 
    80 	cmp_koch_sig$(EXE) -s ../sigs/koch.sig ../wms/koch.wm
 | 
| 
 | 
    81 
 | 
| 
 | 
    82 kochinstall: koch
 | 
| 
 | 
    83 	$(CP) gen_koch_sig$(EXE) wm_koch_e$(EXE) wm_koch_d$(EXE) cmp_koch_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
    84 
 | 
| 
 | 
    85 kochclean:
 | 
| 
 | 
    86 	$(RM) gen_koch_sig$(EXE) wm_koch_e$(EXE) wm_koch_d$(EXE) cmp_koch_sig$(EXE)
 | 
| 
 | 
    87 
 | 
| 
 | 
    88 kochman:
 | 
| 
 | 
    89 
 | 
| 
 | 
    90 wm_koch_e$(EXE): wm_koch_e$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
    91 	$(CC) $(LDFLAGS) -o $@ wm_koch_e$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
    92 
 | 
| 
 | 
    93 wm_koch_d$(EXE): wm_koch_d$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
    94 	$(CC) $(LDFLAGS) -o $@  wm_koch_d$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
    95 
 | 
| 
 | 
    96 gen_koch_sig$(EXE): gen_koch_sig$(O) wm$(O)
 | 
| 
 | 
    97 	$(CC) $(LDFLAGS) -o $@ gen_koch_sig$(O) wm$(O) $(LIBS)
 | 
| 
 | 
    98 
 | 
| 
 | 
    99 cmp_koch_sig$(EXE): cmp_koch_sig$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   100 	$(CC) $(LDFLAGS) -o $@ cmp_koch_sig$(O) $(WMLIB) $(LIBS)
 | 
| 
 | 
   101 
 | 
| 
 | 
   102 # Fridrich's 2. scheme (full-frame DCT, blind, binary)
 | 
| 
 | 
   103 
 | 
| 
 | 
   104 frid2: gen_frid2_sig$(EXE) wm_frid2_e$(EXE) wm_frid2_d$(EXE) cmp_frid2_sig$(EXE)
 | 
| 
 | 
   105 
 | 
| 
 | 
   106 frid2test: frid2
 | 
| 
 | 
   107 	gen_frid2_sig$(EXE) -n 250 < gen_frid2_sig.c > ../sigs/frid2.sig
 | 
| 
 | 
   108 	wm_frid2_e$(EXE) -s ../sigs/frid2.sig -o ../watermarked/frid2_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   109 	wm_frid2_d$(EXE) -s ../sigs/frid2.sig -o ../wms/frid2.wm ../watermarked/frid2_lena.pgm
 | 
| 
 | 
   110 	cmp_frid2_sig$(EXE) -s ../sigs/frid2.sig ../wms/frid2.wm
 | 
| 
 | 
   111 
 | 
| 
 | 
   112 frid2install: frid2
 | 
| 
 | 
   113 	$(CP) gen_frid2_sig$(EXE) wm_frid2_e$(EXE) wm_frid2_d$(EXE) cmp_frid2_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   114 
 | 
| 
 | 
   115 frid2clean:
 | 
| 
 | 
   116 	$(RM) gen_frid2_sig$(EXE) wm_frid2_e$(EXE) wm_frid2_d$(EXE) cmp_frid2_sig$(EXE)
 | 
| 
 | 
   117 
 | 
| 
 | 
   118 frid2man:
 | 
| 
 | 
   119 
 | 
| 
 | 
   120 wm_frid2_e$(EXE): wm_frid2_e$(O) $(LIBPREFIX)wm$(LIB) frid2_common$(O)
 | 
| 
 | 
   121 	$(CC) $(LDFLAGS) -o $@ wm_frid2_e$(O) frid2_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   122 
 | 
| 
 | 
   123 wm_frid2_d$(EXE): wm_frid2_d$(O) $(LIBPREFIX)wm$(LIB) frid2_common$(O)
 | 
| 
 | 
   124 	$(CC) $(LDFLAGS) -o $@  wm_frid2_d$(O) frid2_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   125 
 | 
| 
 | 
   126 gen_frid2_sig$(EXE): gen_frid2_sig$(O) wm$(O)
 | 
| 
 | 
   127 	$(CC) $(LDFLAGS) -o $@ gen_frid2_sig$(O) wm$(O) $(LIBS)
 | 
| 
 | 
   128 
 | 
| 
 | 
   129 cmp_frid2_sig$(EXE): cmp_frid2_sig$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   130 	$(CC) $(LDFLAGS) -o $@ cmp_frid2_sig$(O) $(WMLIB) $(LIBS)
 | 
| 
 | 
   131 
 | 
| 
 | 
   132 
 | 
| 
 | 
   133 # Bruyndonckx's algorithm (spatial domain, block classification, blind)
 | 
| 
 | 
   134 
 | 
| 
 | 
   135 bruyn: gen_bruyn_sig$(EXE) wm_bruyn_e$(EXE) wm_bruyn_d$(EXE) cmp_bruyn_sig$(EXE)
 | 
| 
 | 
   136 
 | 
| 
 | 
   137 bruyntest: bruyn
 | 
| 
 | 
   138 	gen_bruyn_sig$(EXE) -n 400 < gen_bruyn_sig.c > ../sigs/bruyn.sig
 | 
| 
 | 
   139 	wm_bruyn_e$(EXE) -s ../sigs/bruyn.sig -o ../watermarked/bruyn_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   140 	wm_bruyn_d$(EXE) -s ../sigs/bruyn.sig -o ../wms/bruyn.wm ../watermarked/bruyn_lena.pgm
 | 
| 
 | 
   141 	cmp_bruyn_sig$(EXE) -s ../sigs/bruyn.sig ../wms/bruyn.wm
 | 
| 
 | 
   142 
 | 
| 
 | 
   143 bruyninstall: bruyn
 | 
| 
 | 
   144 	$(CP) gen_bruyn_sig$(EXE) wm_bruyn_e$(EXE) wm_bruyn_d$(EXE) cmp_bruyn_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   145 
 | 
| 
 | 
   146 bruynclean:
 | 
| 
 | 
   147 	$(RM) gen_bruyn_sig$(EXE) wm_bruyn_e$(EXE) wm_bruyn_d$(EXE) cmp_bruyn_sig$(EXE)
 | 
| 
 | 
   148 
 | 
| 
 | 
   149 bruynman:
 | 
| 
 | 
   150 
 | 
| 
 | 
   151 wm_bruyn_e$(EXE): wm_bruyn_e$(O) bruyn_common$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   152 	$(CC) $(LDFLAGS) -o $@ wm_bruyn_e$(O) bruyn_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   153 
 | 
| 
 | 
   154 wm_bruyn_d$(EXE): wm_bruyn_d$(O)  bruyn_common$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   155 	$(CC) $(LDFLAGS) -o $@  wm_bruyn_d$(O) bruyn_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   156 
 | 
| 
 | 
   157 gen_bruyn_sig$(EXE): gen_bruyn_sig$(O) wm$(O)
 | 
| 
 | 
   158 	$(CC) $(LDFLAGS) -o $@ gen_bruyn_sig$(O) wm$(O) $(LIBS)
 | 
| 
 | 
   159 
 | 
| 
 | 
   160 cmp_bruyn_sig$(EXE): cmp_bruyn_sig$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   161 	$(CC) $(LDFLAGS) -o $@ cmp_bruyn_sig$(O) $(WMLIB) $(LIBS)
 | 
| 
 | 
   162 
 | 
| 
 | 
   163 
 | 
| 
 | 
   164 # Cox's algorithm (full-frame DCT, non-blind, spread-spectrum)
 | 
| 
 | 
   165 
 | 
| 
 | 
   166 cox: gen_cox_sig$(EXE) wm_cox_e$(EXE) wm_cox_d$(EXE) cmp_cox_sig$(EXE)
 | 
| 
 | 
   167 
 | 
| 
 | 
   168 coxtest: cox
 | 
| 
 | 
   169 	gen_cox_sig$(EXE) > ../sigs/cox.sig
 | 
| 
 | 
   170 	wm_cox_e$(EXE) -s ../sigs/cox.sig -o ../watermarked/cox_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   171 	wm_cox_d$(EXE) -s ../sigs/cox.sig -o ../wms/cox.wm -i ../images/lena.pgm ../watermarked/cox_lena.pgm 
 | 
| 
 | 
   172 	cmp_cox_sig$(EXE) -s ../sigs/cox.sig ../wms/cox.wm
 | 
| 
 | 
   173 
 | 
| 
 | 
   174 coxinstall: cox
 | 
| 
 | 
   175 	$(CP) gen_cox_sig$(EXE) wm_cox_e$(EXE) wm_cox_d$(EXE) cmp_cox_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   176 
 | 
| 
 | 
   177 coxman: gen_cox_sig.ps wm_cox_e.ps wm_cox_d.ps
 | 
| 
 | 
   178 
 | 
| 
 | 
   179 wm_cox_e$(EXE): wm_cox_e$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   180 	$(CC) $(LDFLAGS) -o $@ wm_cox_e$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   181 
 | 
| 
 | 
   182 wm_cox_d$(EXE): wm_cox_d$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   183 	$(CC) $(LDFLAGS) -o $@  wm_cox_d$(O) $(WMLIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   184 
 | 
| 
 | 
   185 gen_cox_sig$(EXE): gen_cox_sig$(O)
 | 
| 
 | 
   186 	$(CC) $(LDFLAGS) -o $@ gen_cox_sig$(O) $(LIBS)
 | 
| 
 | 
   187 
 | 
| 
 | 
   188 cmp_cox_sig$(EXE): cmp_cox_sig$(O)
 | 
| 
 | 
   189 	$(CC) $(LDFLAGS) -o $@ cmp_cox_sig$(O) $(LIBS)
 | 
| 
 | 
   190 
 | 
| 
 | 
   191 coxclean:
 | 
| 
 | 
   192 	$(RM) gen_cox_sig$(EXE) wm_cox_e$(EXE) wm_cox_d$(EXE) cmp_cox_sig$(EXE)
 | 
| 
 | 
   193 
 | 
| 
 | 
   194 
 | 
| 
 | 
   195 # Corvi's algorithm (DWT, non-blind, spread-spectrum, approximation image)
 | 
| 
 | 
   196 
 | 
| 
 | 
   197 corvi: gen_corvi_sig$(EXE) wm_corvi_e$(EXE) wm_corvi_d$(EXE) cmp_corvi_sig$(EXE)
 | 
| 
 | 
   198 
 | 
| 
 | 
   199 corvitest: corvi
 | 
| 
 | 
   200 	gen_corvi_sig$(EXE) > ../sigs/corvi.sig
 | 
| 
 | 
   201 	wm_corvi_e$(EXE) -s ../sigs/corvi.sig -o ../watermarked/corvi_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   202 	wm_corvi_d$(EXE) -s ../sigs/corvi.sig -o ../wms/corvi.wm -i ../images/lena.pgm ../watermarked/corvi_lena.pgm 
 | 
| 
 | 
   203 	cmp_corvi_sig$(EXE) -s ../sigs/corvi.sig ../wms/corvi.wm
 | 
| 
 | 
   204 
 | 
| 
 | 
   205 corviinstall: corvi
 | 
| 
 | 
   206 	$(CP) gen_corvi_sig$(EXE) wm_corvi_e$(EXE) wm_corvi_d$(EXE) cmp_corvi_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   207 
 | 
| 
 | 
   208 corviman: gen_corvi_sig.ps wm_corvi_e.ps wm_corvi_d.ps
 | 
| 
 | 
   209 
 | 
| 
 | 
   210 wm_corvi_e$(EXE): wm_corvi_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   211 	$(CC) $(LDFLAGS) -o $@ wm_corvi_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   212 
 | 
| 
 | 
   213 wm_corvi_d$(EXE): wm_corvi_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   214 	$(CC) $(LDFLAGS) -o $@  wm_corvi_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   215 
 | 
| 
 | 
   216 gen_corvi_sig$(EXE): gen_corvi_sig$(O)
 | 
| 
 | 
   217 	$(CC) $(LDFLAGS) -o $@ gen_corvi_sig$(O) $(LIBS)
 | 
| 
 | 
   218 
 | 
| 
 | 
   219 cmp_corvi_sig$(EXE): cmp_corvi_sig$(O)
 | 
| 
 | 
   220 	$(CC) $(LDFLAGS) -o $@ cmp_corvi_sig$(O) $(LIBS)
 | 
| 
 | 
   221 
 | 
| 
 | 
   222 corviclean:
 | 
| 
 | 
   223 	$(RM) gen_corvi_sig$(EXE) wm_corvi_e$(EXE) wm_corvi_d$(EXE) cmp_corvi_sig$(EXE)
 | 
| 
 | 
   224 
 | 
| 
 | 
   225 
 | 
| 
 | 
   226 # Xia's algorithm (DWT, non-blind, spread-spectrum, detail subbands)
 | 
| 
 | 
   227 
 | 
| 
 | 
   228 xia: gen_xia_sig$(EXE) wm_xia_e$(EXE) wm_xia_d$(EXE) cmp_xia_sig$(EXE)
 | 
| 
 | 
   229 
 | 
| 
 | 
   230 xiatest: xia
 | 
| 
 | 
   231 	gen_xia_sig$(EXE) > ../sigs/xia.sig
 | 
| 
 | 
   232 	wm_xia_e$(EXE) -s ../sigs/xia.sig -o ../watermarked/xia_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   233 	wm_xia_d$(EXE) -s ../sigs/xia.sig -o ../wms/xia.wm -i ../images/lena.pgm ../watermarked/xia_lena.pgm 
 | 
| 
 | 
   234 	cmp_xia_sig$(EXE) -s ../sigs/xia.sig ../wms/xia.wm
 | 
| 
 | 
   235 
 | 
| 
 | 
   236 xiainstall: xia
 | 
| 
 | 
   237 	$(CP) gen_xia_sig$(EXE) wm_xia_e$(EXE) wm_xia_d$(EXE) cmp_xia_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   238 
 | 
| 
 | 
   239 xiaman: gen_xia_sig.ps wm_xia_e.ps wm_xia_d.ps
 | 
| 
 | 
   240 
 | 
| 
 | 
   241 wm_xia_e$(EXE): wm_xia_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   242 	$(CC) $(LDFLAGS) -o $@ wm_xia_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   243 
 | 
| 
 | 
   244 wm_xia_d$(EXE): wm_xia_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   245 	$(CC) $(LDFLAGS) -o $@  wm_xia_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   246 
 | 
| 
 | 
   247 gen_xia_sig$(EXE): gen_xia_sig$(O)
 | 
| 
 | 
   248 	$(CC) $(LDFLAGS) -o $@ gen_xia_sig$(O) $(LIBS)
 | 
| 
 | 
   249 
 | 
| 
 | 
   250 cmp_xia_sig$(EXE): cmp_xia_sig$(O)
 | 
| 
 | 
   251 	$(CC) $(LDFLAGS) -o $@ cmp_xia_sig$(O) $(LIBS)
 | 
| 
 | 
   252 
 | 
| 
 | 
   253 xiaclean:
 | 
| 
 | 
   254 	$(RM) gen_xia_sig$(EXE) wm_xia_e$(EXE) wm_xia_d$(EXE) cmp_xia_sig$(EXE)
 | 
| 
 | 
   255 
 | 
| 
 | 
   256 # Wang's algorithm (DWT, non-blind, spread-spectrum, detail subbands)
 | 
| 
 | 
   257 
 | 
| 
 | 
   258 wang: gen_wang_sig$(EXE) wm_wang_e$(EXE) wm_wang_d$(EXE) cmp_wang_sig$(EXE)
 | 
| 
 | 
   259 
 | 
| 
 | 
   260 wangtest: wang
 | 
| 
 | 
   261 	gen_wang_sig$(EXE) -n 1000 > ../sigs/wang.sig
 | 
| 
 | 
   262 	wm_wang_e$(EXE) -s ../sigs/wang.sig -o ../watermarked/wang_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   263 	wm_wang_d$(EXE) -s ../sigs/wang.sig -o ../wms/wang.wm -i ../images/lena.pgm ../watermarked/wang_lena.pgm 
 | 
| 
 | 
   264 	cmp_wang_sig$(EXE) -s ../sigs/wang.sig ../wms/wang.wm
 | 
| 
 | 
   265 
 | 
| 
 | 
   266 wanginstall: wang
 | 
| 
 | 
   267 	$(CP) gen_wang_sig$(EXE) wm_wang_e$(EXE) wm_wang_d$(EXE) cmp_wang_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   268 
 | 
| 
 | 
   269 wangman: gen_wang_sig.ps wm_wang_e.ps wm_wang_d.ps
 | 
| 
 | 
   270 
 | 
| 
 | 
   271 wm_wang_e$(EXE): wm_wang_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) wang_common$(O)
 | 
| 
 | 
   272 	$(CC) $(LDFLAGS) -o $@ wm_wang_e$(O) wang_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   273 
 | 
| 
 | 
   274 wm_wang_d$(EXE): wm_wang_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) wang_common$(O)
 | 
| 
 | 
   275 	$(CC) $(LDFLAGS) -o $@  wm_wang_d$(O) wang_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   276 
 | 
| 
 | 
   277 gen_wang_sig$(EXE): gen_wang_sig$(O)
 | 
| 
 | 
   278 	$(CC) $(LDFLAGS) -o $@ gen_wang_sig$(O) $(LIBS)
 | 
| 
 | 
   279 
 | 
| 
 | 
   280 cmp_wang_sig$(EXE): cmp_wang_sig$(O)
 | 
| 
 | 
   281 	$(CC) $(LDFLAGS) -o $@ cmp_wang_sig$(O) $(LIBS)
 | 
| 
 | 
   282 
 | 
| 
 | 
   283 wangclean:
 | 
| 
 | 
   284 	$(RM) gen_wang_sig$(EXE) wm_wang_e$(EXE) wm_wang_d$(EXE) cmp_wang_sig$(EXE)
 | 
| 
 | 
   285 
 | 
| 
 | 
   286 # Kim's algorithm (DWT, non-blind, spread-spectrum, approx. & detail subbands)
 | 
| 
 | 
   287 
 | 
| 
 | 
   288 kim: gen_kim_sig$(EXE) wm_kim_e$(EXE) wm_kim_d$(EXE) cmp_kim_sig$(EXE)
 | 
| 
 | 
   289 
 | 
| 
 | 
   290 kimtest: kim
 | 
| 
 | 
   291 	gen_kim_sig$(EXE) -n 1000 > ../sigs/kim.sig
 | 
| 
 | 
   292 	wm_kim_e$(EXE) -s ../sigs/kim.sig -o ../watermarked/kim_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   293 	wm_kim_d$(EXE) -s ../sigs/kim.sig -o ../wms/kim.wm -i ../images/lena.pgm ../watermarked/kim_lena.pgm 
 | 
| 
 | 
   294 	cmp_kim_sig$(EXE) -s ../sigs/kim.sig ../wms/kim.wm
 | 
| 
 | 
   295 
 | 
| 
 | 
   296 kiminstall: kim
 | 
| 
 | 
   297 	$(CP) gen_kim_sig$(EXE) wm_kim_e$(EXE) wm_kim_d$(EXE) cmp_kim_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   298 
 | 
| 
 | 
   299 kimman: gen_kim_sig.ps wm_kim_e.ps wm_kim_d.ps
 | 
| 
 | 
   300 
 | 
| 
 | 
   301 wm_kim_e$(EXE): wm_kim_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) kim_common$(O)
 | 
| 
 | 
   302 	$(CC) $(LDFLAGS) -o $@ wm_kim_e$(O) kim_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   303 
 | 
| 
 | 
   304 wm_kim_d$(EXE): wm_kim_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) kim_common$(O)
 | 
| 
 | 
   305 	$(CC) $(LDFLAGS) -o $@  wm_kim_d$(O) kim_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   306 
 | 
| 
 | 
   307 gen_kim_sig$(EXE): gen_kim_sig$(O)
 | 
| 
 | 
   308 	$(CC) $(LDFLAGS) -o $@ gen_kim_sig$(O) $(LIBS)
 | 
| 
 | 
   309 
 | 
| 
 | 
   310 cmp_kim_sig$(EXE): cmp_kim_sig$(O)
 | 
| 
 | 
   311 	$(CC) $(LDFLAGS) -o $@ cmp_kim_sig$(O) $(LIBS)
 | 
| 
 | 
   312 
 | 
| 
 | 
   313 kimclean:
 | 
| 
 | 
   314 	$(RM) gen_kim_sig$(EXE) wm_kim_e$(EXE) wm_kim_d$(EXE) cmp_kim_sig$(EXE)
 | 
| 
 | 
   315 
 | 
| 
 | 
   316 # Zhu's algorithm (DWT, non-blind, spread-spectrum, detail subbands)
 | 
| 
 | 
   317 
 | 
| 
 | 
   318 zhu: gen_zhu_sig$(EXE) wm_zhu_e$(EXE) wm_zhu_d$(EXE) cmp_zhu_sig$(EXE)
 | 
| 
 | 
   319 
 | 
| 
 | 
   320 zhutest: zhu
 | 
| 
 | 
   321 	gen_zhu_sig$(EXE) > ../sigs/zhu.sig
 | 
| 
 | 
   322 	wm_zhu_e$(EXE) -s ../sigs/zhu.sig -o ../watermarked/zhu_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   323 	wm_zhu_d$(EXE) -s ../sigs/zhu.sig -o ../wms/zhu.wm -i ../images/lena.pgm ../watermarked/zhu_lena.pgm 
 | 
| 
 | 
   324 	cmp_zhu_sig$(EXE) -s ../sigs/zhu.sig ../wms/zhu.wm
 | 
| 
 | 
   325 
 | 
| 
 | 
   326 zhuinstall: zhu
 | 
| 
 | 
   327 	$(CP) gen_zhu_sig$(EXE) wm_zhu_e$(EXE) wm_zhu_d$(EXE) cmp_zhu_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   328 
 | 
| 
 | 
   329 zhuman: gen_zhu_sig.ps wm_zhu_e.ps wm_zhu_d.ps
 | 
| 
 | 
   330 
 | 
| 
 | 
   331 wm_zhu_e$(EXE): wm_zhu_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   332 	$(CC) $(LDFLAGS) -o $@ wm_zhu_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   333 
 | 
| 
 | 
   334 wm_zhu_d$(EXE): wm_zhu_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   335 	$(CC) $(LDFLAGS) -o $@  wm_zhu_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   336 
 | 
| 
 | 
   337 gen_zhu_sig$(EXE): gen_zhu_sig$(O)
 | 
| 
 | 
   338 	$(CC) $(LDFLAGS) -o $@ gen_zhu_sig$(O) $(LIBS)
 | 
| 
 | 
   339 
 | 
| 
 | 
   340 cmp_zhu_sig$(EXE): cmp_zhu_sig$(O)
 | 
| 
 | 
   341 	$(CC) $(LDFLAGS) -o $@ cmp_zhu_sig$(O) $(LIBS)
 | 
| 
 | 
   342 
 | 
| 
 | 
   343 zhuclean:
 | 
| 
 | 
   344 	$(RM) gen_zhu_sig$(EXE) wm_zhu_e$(EXE) wm_zhu_d$(EXE) cmp_zhu_sig$(EXE)
 | 
| 
 | 
   345 
 | 
| 
 | 
   346 # Xie's algorithm (DWT, blind, binary, quantization, approximation image)
 | 
| 
 | 
   347 
 | 
| 
 | 
   348 xie: gen_xie_sig$(EXE) wm_xie_e$(EXE) wm_xie_d$(EXE) cmp_xie_sig$(EXE)
 | 
| 
 | 
   349 
 | 
| 
 | 
   350 xietest: xie
 | 
| 
 | 
   351 	gen_xie_sig$(EXE) -n 800 gen_xie_sig.c > ../sigs/xie.sig
 | 
| 
 | 
   352 	wm_xie_e$(EXE) -s ../sigs/xie.sig -o ../watermarked/xie_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   353 	wm_xie_d$(EXE) -s ../sigs/xie.sig -o ../wms/xie.wm ../watermarked/xie_lena.pgm 
 | 
| 
 | 
   354 	cmp_xie_sig$(EXE) -s ../sigs/xie.sig ../wms/xie.wm
 | 
| 
 | 
   355 
 | 
| 
 | 
   356 xieinstall: xie
 | 
| 
 | 
   357 	$(CP) gen_xie_sig$(EXE) wm_xie_e$(EXE) wm_xie_d$(EXE) cmp_xie_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   358 
 | 
| 
 | 
   359 xieman: gen_xie_sig.ps wm_xie_e.ps wm_xie_d.ps
 | 
| 
 | 
   360 
 | 
| 
 | 
   361 wm_xie_e$(EXE): wm_xie_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   362 	$(CC) $(LDFLAGS) -o $@ wm_xie_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   363 
 | 
| 
 | 
   364 wm_xie_d$(EXE): wm_xie_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   365 	$(CC) $(LDFLAGS) -o $@  wm_xie_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   366 
 | 
| 
 | 
   367 gen_xie_sig$(EXE): gen_xie_sig$(O) wm$(O)
 | 
| 
 | 
   368 	$(CC) $(LDFLAGS) -o $@ gen_xie_sig$(O) wm$(O) $(LIBS)
 | 
| 
 | 
   369 
 | 
| 
 | 
   370 cmp_xie_sig$(EXE): cmp_xie_sig$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   371 	$(CC) $(LDFLAGS) -o $@ cmp_xie_sig$(O) $(WMLIB) $(LIBS)
 | 
| 
 | 
   372 
 | 
| 
 | 
   373 xieclean:
 | 
| 
 | 
   374 	$(RM) gen_xie_sig$(EXE) wm_xie_e$(EXE) wm_xie_d$(EXE) cmp_xie_sig$(EXE)
 | 
| 
 | 
   375 
 | 
| 
 | 
   376 # Dugad's algorithm (DWT, blind)
 | 
| 
 | 
   377 
 | 
| 
 | 
   378 dugad: gen_dugad_sig$(EXE) wm_dugad_e$(EXE) wm_dugad_d$(EXE) cmp_dugad_sig$(EXE)
 | 
| 
 | 
   379 
 | 
| 
 | 
   380 dugadtest: dugad
 | 
| 
 | 
   381 	gen_dugad_sig$(EXE) -o ../sigs/dugad.sig
 | 
| 
 | 
   382 	wm_dugad_e$(EXE) -s ../sigs/dugad.sig -o ../watermarked/dugad_lena.pgm ../images/lena.pgm
 | 
| 
 | 
   383 	wm_dugad_d$(EXE) -s ../sigs/dugad.sig -o ../wms/dugad.wm ../watermarked/dugad_lena.pgm 
 | 
| 
 | 
   384 	cmp_dugad_sig$(EXE) -s ../sigs/dugad.sig ../wms/dugad.wm
 | 
| 
 | 
   385 
 | 
| 
 | 
   386 dugadinstall: dugad
 | 
| 
 | 
   387 	$(CP) gen_dugad_sig$(EXE) wm_dugad_e$(EXE) wm_dugad_d$(EXE) cmp_dugad_sig$(EXE) $(INSTALLDIR)
 | 
| 
 | 
   388 
 | 
| 
 | 
   389 dugadman: gen_dugad_sig.ps wm_dugad_e.ps wm_dugad_d.ps
 | 
| 
 | 
   390 
 | 
| 
 | 
   391 wm_dugad_e$(EXE): wm_dugad_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   392 	$(CC) $(LDFLAGS) -o $@ wm_dugad_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   393 
 | 
| 
 | 
   394 wm_dugad_d$(EXE): wm_dugad_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB)
 | 
| 
 | 
   395 	$(CC) $(LDFLAGS) -o $@  wm_dugad_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS)
 | 
| 
 | 
   396 
 | 
| 
 | 
   397 gen_dugad_sig$(EXE): gen_dugad_sig$(O)
 | 
| 
 | 
   398 	$(CC) $(LDFLAGS) -o $@ gen_dugad_sig$(O) $(LIBS)
 | 
| 
 | 
   399 
 | 
| 
 | 
   400 cmp_dugad_sig$(EXE): cmp_dugad_sig$(O) $(LIBPREFIX)wm$(LIB)
 | 
| 
 | 
   401 	$(CC) $(LDFLAGS) -o $@ cmp_dugad_sig$(O) $(WMLIB) $(LIBS)
 | 
| 
 | 
   402 
 | 
| 
 | 
   403 dugadclean:
 | 
| 
 | 
   404 	$(RM) gen_dugad_sig$(EXE) wm_dugad_e$(EXE) wm_dugad_d$(EXE) cmp_dugad_sig$(EXE)
 | 
| 
 | 
   405 
 | 
| 
 | 
   406 
 | 
| 
 | 
   407 
 | 
| 
 | 
   408 clean:	coxclean bruynclean kochclean corviclean xiaclean zhuclean xieclean \
 | 
| 
 | 
   409 	dugadclean kimclean wangclean frid2clean toolsclean libraryclean waveletclean
 | 
| 
 | 
   410 	$(RM) *$(O) *.ps ../sigs/* ../wms/* ../watermarked/* 
 | 
| 
 | 
   411 	
 | 
| 
 | 
   412 
 | 
| 
 | 
   413 man:	coxman bruynman kochman corviman xiaman xieman toolsman
 | 
| 
 | 
   414 
 | 
| 
 | 
   415 test:	coxtest bruyntest kochtest corvitest xiatest xietest dugadtest zhutest \
 | 
| 
 | 
   416 	wangtest frid2test kimtest toolstest
 | 
| 
 | 
   417 
 | 
| 
 | 
   418 install: coxinstall bruyninstall kochinstall corviinstall xiainstall xieinstall \
 | 
| 
 | 
   419 	dugadinstall zhuinstall wanginstall frid2install kiminstall toolsinstall
 | 
| 
 | 
   420 
 | 
| 
 | 
   421 depend:
 | 
| 
 | 
   422 	$(MAKEDEP) *.h *.c
 | 
| 
 | 
   423 
 |