I wrote...
Hmm. Should be easy to do. Also, easy to find out how much it will help. I'll just zap the hashes in a normal image and see how much better it compresses.
A. wrote...
I don't think you'll see a lot of improvement unless you go a step further. What I tried was re-ordering the objects so that they're arranged by class and by size (and for some others even by intrinsic ordering such as strings). This is important because LZ compressors won't look beyound certain distances (and also the smaller the distance, the better the compression). Here's one thing you could try to see a bit of this effect: Create an image segment that contains all Strings in the image in lexicographical order. Write this IS; try to compress it. Now dump the hash bits and try again.
Good idea.
In this same vein, you can see where I was going with pointer locality. It would be a very quick loop to make every pointer reference be self-relative, which might well give us a bunch of small numbers, meaning lots of zeroes, and hence better compression.
Actually I was trying to give this project away. Therefore (and for a couple of other reasons ;-), I promise not to do anything on it for a week.
;-) - Dan