Can I rotate lossily compressed photos that I view in Windows Photo Viewer without worrying about losing even more information to compression?
1 Answers
If the dimensions of the image are multiples of 8 (or 16 if chroma subsampling is used) then the rotations are lossless. Otherwise it is not possible to rotate the image without recomputing the blocks i.e. recompressing the image, which is lossy.
The reason for this is that jpeg images are broken up into a series of 8x8 or 16x16 blocks which are compressed individually. Incomplete blocks are only allowed on the right edge and bottom edge. Thus is your image is not an exact multiple of 8/16 it will contain incomplete blocks, which will end up on the wrong edge after rotation.
I verified the above assertion using the version of Windows Photo Viewer that ships with Windows 7. I used two images of colour noise. One image was 256x256 i.e. both sizes multiples of 8. The other image was the same but cropped to 253x253 i.e. neither size was a multiple of 8. Here are the images:
I then performed four anti-clockwise rotations, closing photo viewer after each rotation to ensure the image was saved in it's rotated state.
There's no need to perform a subtraction to see the difference with the 253 pixel image, it's noticeably darker and muddier!
A diff on the other image looks like this:
i.e. the images are identical, the rotations were lossless.
-
1I know that in the past when I've done rotations it has warned me that the rotation would be lossy, which implies that in cases where the warning wasn't displayed the transformation was lossless, but I didn't check. Nor do I remember what version of WPV I was using, not precluding the possibility that MS changed the codebase, so no I can't be sure. – Matt Grum May 24 '11 at 13:55
-
1@Tim an image of pure noise is by definition the worst case for jpeg (or any compression algorithm), which is why I chose it! Results on real images would look better. – Matt Grum May 26 '11 at 15:12
-
1@MattGrum, very cool demo. I hope all digital camera makers have their image sizes in integer multiples of 8! – Trevor Boyd Smith May 27 '11 at 16:36
-
1@MattGrum I used to work on the WPV team. AFAIK, (and I'm pretty sure) your answer is correct. Also, +1 for a very thorough method of proving your hypothesis : ) – Tristan Aug 06 '13 at 16:53
-
@TrevorBoydSmith every camera I've seen has image dimensions that are a multiple of 8 or 16. Rotation isn't necessarily the reason, it may just allow some optimization of the JPEG pipeline. – Mark Ransom Oct 10 '19 at 22:47





Program Files\Windows Photo Viewerfor my Acer Aspire with Windows 7. – May 24 '11 at 15:02.picasa.inifiles. Delete the file and restart picasa, you will notice that images that were rotated using picasa are no longer rotated.(ii) the windows 10 photo viewer app seems to alter the meta data -- the file size remains identical. – Salman A Apr 18 '16 at 15:09