Like I told Joe earlier today, I've figured out how to pack more data
into our JPEG images. The way this works is by adding duplicate
quantization tables into the image. In testing what I did was take one
of our modified quantization tables (via the .hidedata() function), and
copy it into the output image more than once. I also tested to see if
these extra tables could be used to hide more than one bit of
information per coefficient (basically, with the duplicated table, I
zeroed all of the bits of the coefficient, not just the least
significant bit). I hoped that since the extra tables were extraneous
we could pack a lot more hidden data into them; unfortunately doing
this broke the image. Nonetheless, we can still hide an arbitrary
amount of data by adding copies of existing quantization tables until
the number is sufficient to hold the hidden data. In testing I was able
to add an extra twenty (20) tables without affecting the output image at
all.
Of course, if anyone inspects the JPEG closely they will discover that
there are more quantization tables than normal, but a casual onlooker
will not be able to tell that anything is amiss other than that the file
size is larger than it should be.
Oh, and another thing, I got this to compile and run under Linux.
That's really not pertinent, I just thought it was neat.
Trey