Batch Processing And Digital Watermarks? 7
A not-so-Anonymous Coward asks: "I hope to start a dot.org (dot.com is so '90s, yuck) when I finish University (UK), and it will involve stuff to do with graphics. The question is: What's going on with Digital Watermarks, and how could I start using them in free software? Are they patented? Do they involve scary math? My ideal answer would be a C library or Perl module that can work with the standard graphics libs/mods that could do long batches of them, or even a script-fu for The Gimp."
How about Java? (Score:1)
tia,
ilmdba
Scary Math - Yes (Score:1)
As far as the whole batch processing thing goes, I really don't know. Presumably, given a program that watermarks a JPEG, it would be fairly easy to automate it with a Perl or shell script to do a whole directory tree.
Re:Scary Math - Yes (Score:1)
Re:Scary Math - Yes (Score:1)
GD Can do it. (Score:2)
-Davidu
Check CACM (Score:2)
I never read the articles on the subject very carefully, but I don't think they presented more than ideas there (CACM is rarely technical nowadays), but maybe it is possible to get some pointers to modern research. The articles discuss many types of watermarking, including what you probably want: cryptograhpically secure which is robust against operations such as compression, filtering, and reduction.
The field of digital watermarking seems quite undeveloped, so I wouldn't hold my breath for free software for it.
Lars
__
Some thoughts (Score:2)
I've no idea about patents. Hopefully someone else will be able to answer that one.
Do they involve scary maths? I don't think so, unless you consider error-checking/correction algorithms to be scary.
My guess is that these algorithms work by using the least significant bit of the RGB values of the image to embed some kind of digital signature (what that signature contains is up to you). This will add a small amount of 'noise' to the image, but my guess is that this will be imperceptible, since the human eye/brain is very forgiving of noise (that is why floyd-steinberg error diffusion dithering works so well).
For a watermark, you could almost certainly get away with just using the LSB of one byte of the RGB value. I'd recommend using Blue, since it's the darkest of the three primary colours.
So far, that would be very trivial to implement. Your biggest problem would be preserving the watermark when lossy compression algorithms, such as JPEG, are used. This may (I'm guessing here) be solvable by repeating the watermark thoughout the image and using an error-correction algorithm to reconstruct the watermark. This should be possible, but you may need to experiment and possibly devise your own error-correction algorithm.
I've no idea if anyone has implemented an open-source digital watermark. I thought that it would make an interesting project, but got no further than thinking about it.
If you're interested in writing one and want to discuss it further with me, my email address is wyrd(a)dial.pipex.com (remember to replace (a) with @)
HH
Yellow tigers crouched in jungles in her dark eyes.