At the time I was researching JPEG repair some years ago, I purchased a license for JPEG Recovery Pro from ‘hketech.com‘ mainly because of it’s JPEG Recovery Editor. I got version 6.1. Recently I noticed an update to version 6.2 was available, however it appears they removed the editor now while I was hoping for an updated editor.
JPEG Recovery Pro Editor
The JPEG Recovery Editor allows you to ‘patch’ the JPEG bitstream. Thus it enables you to remove corrupt data and inserting ’empty’ data to align the JPEG picture. Very similar to what JPEG-Repair does.
As stated I have a licensed copy. The software required some getting used to. Removing corrupt data is very easy and intuitive, select start and end of the corrupt area and the editor will remove the area. The feature however suggests greater precision than it actually delivers.
You need to understand that when the JPEG Recovery Editor removes data, it does something completely different than an ordinary photo editor does: It edits a file (as does JPEG-Repair) rather than a picture as a normal photo editor would. As this file contains the (compressed and encoded) image data it needs to translate the selected points in the image to corresponding data inside the file. If this translation isn’t precise enough, which could be the result of the file being corrupt, it can not pinpoint the exact data corresponding with the part of the picture that was selected.
To illustrate this point, look at the below image. Both the hex editor and the photo viewer have the same file opened, and any changes I make to the hex code is reflected in the picture shown by the photo viewer. In this case I know the exact byte address of the corrupted byte, the JPEG Recovery Pro Editor though has to calculate this exact byte address from the x, y coordinates in the picture.
Decoding JPEG image data
As mentioned, a JPEG file is not a 1 : 1 representation of the picture. It’s not like a value for each individual pixel is stored, in which case it would be easier to connect a specific pixel with specific data inside the file. Instead, it stored per MCU, typically a block of 8 x 8 pixels. The data is stored as ‘a function’ which ignores the ‘the extremes’ or goes for averages rather than the individual pixels being stored, and this data is then compressed. The data that’s being ignored explains how JPEG is a lossy image format. If you want to read more on this, check Impulse Adventure.
Using the Editor.
Anyway, point I am trying to make is that quite a lot of ‘converting’ is needed to relate any point in the picture to raw file data. And it is this that makes the JPEG Recovery Editor such a useful tool. It is however not flawless and I find it rather difficult to insert data as you can not select simply 2 points, you need to select one point and insert a number of pixels. You can also insert lines of pixels but the number of lines is rather hard to estimate.
So first of all, although removing (corrupt) data between two points in itself is intuitive, result wasn’t always consistent; often it does not remove all data between selected points and you end up doing it bit by bit. And some times you are greeted by an error message and the only way out was to undo (which is very useful!) and remove alternative, smaller or larger areas.
As removing data from a JPEG results in image shift by definition, you need to add data after removing the corrupt portion and this is where I find the editor rather counter intuitive.
Rather than addressing issues with the editor, it seems ‘hktech’ opted to simply remove it, leaving JPEG-Repair as the only commercially available editor (that I know of) to make this type of complex repairs: