?

Log in

No account? Create an account

Previous Entry | Next Entry

Geek call for help!

hazelchaz (better known as Chaz Boston-Baden) has a fabulous collection of convention and socal fan-gathering pictures.

Or rather, he had a fabulous collection.

A while back, his web provider's disks went belly-up, and munched it.

Now don't start on backups. We've all made mistakes like that. Hell, some of us have made mistakes like that in our professional lives. It happens.

He paid money for data recovery, and got a lot back, but not all of it is intact. Here are a pair of examples:
 

They're both offset errors. When the file was recovered, a block of null data got crammed into the middle. In the first case, it's easily repairable by just slicing the chunks out and reassembling them. In the second, the break happened in the middle of an image block, and it wonked up the colors.

I've exhausted my binary file skillz identifying the offset error, determining that the junk actually is a pile of zeros and showing that by cleaning up the bad data, the color information in the really wonky images is still there. I haven't been able to manually remove the appropriate number of zeros to patch the file back together. All the jpeg fix utilities I've found either just repair corrupted headers or are tailored to "restore" image quality lost when an image is over-compressed. I haven't found anything that can analyze the data stream and identify junk data.

If you know any serious JPEG code wonks, please pass this along. If there's a way to programmatically identify the bad data and stitch it back together, help would be much appreciated.

Comments

( 5 comments — Leave a comment )
johno
Dec. 9th, 2005 04:17 pm (UTC)
Several of the ones he gave me have this issue too.

iamradar
Dec. 9th, 2005 04:34 pm (UTC)
I just poked a friend of mine familiar with this stuff and he suggests trying the freeware 'ifranview'. It has some plugins that may be useful.
johno
Dec. 9th, 2005 05:36 pm (UTC)
While poking around, I found someone saying for this sort of damage use a hex editor to remove the blanks.

I found I also had to remove a small block of non-zeros, but they were noticeable as not being semi-random.





bovil
Dec. 9th, 2005 05:54 pm (UTC)
You've got it. I just tried the same thing.

I bookmarked the last block before the zeros started.

I deleted the block of zeros, saved and reloaded. Offset was mostly gone.

I deleted the first block after the bookmark (the first block after the zeros, it was an FF). Colors went back into sync.

I looked at the blocks preceeding the bookmark, and there was a distinct repeating (and incrementing) 4-block pattern to them, so I sliced out everything that matched the pattern.

Bingo.
bovil
Dec. 9th, 2005 05:55 pm (UTC)
( 5 comments — Leave a comment )