WARNING: Windows Live Essentials 2011

Started Oct 3, 2010 | Discussions thread
AxelR Senior Member • Posts: 1,169
Re: WARNING: Windows Live Essentials 2011

If you are using a 3rd party JPEG codec then files are “resaved” in Windows Live Photo Gallery when metadata is edited, and this is not a bug.

The underlying problem is that lossless transcoding , where a file is reconstructed to make room for new metadata, is not possible with the normal Windows Imaging Components codec interfaces: there is nothing that would allow anyone to retrieve the packed data, only pixels. Microsoft implemented this feature in their own JPEG codec using an undocumented interface called IMILCJpegDecoderFrame that WIC uses internally, but no 3rd-party JPEG codec (or 3rd-party codec for any other lossy formats) is able to provide this functionality.

Moreover, the application has no way of knowing that WIC fell back to unpacking/repacking or if the data was just moved as-is, as all this happens under the hood in a private conversation between WIC and the codec through the undocumented private interface, all inside a single call named IWICBitmapFrameEncode::WriteSource().

Finally, because it all happens under the hood inside WIC, the application has no control over the JPEG quality level used when performing this particular operation when lossless fails and lossy (silently) gets used instead.

Basically the behavior you observed is induced the presence of a 3rd party JPEG codec but it’s not actually a bug: WIC sees a 3rd party codec that does not implement their private interface and behaves differently because it knows it cannot possibly support what it takes to perform optimized transcoding.

I’ve asked the right persons explicitly about this issue and got no answer so far.

In my own JPEG codec I try to work around this problem by analyzing the call contexts and disabling the codec on a case-by-case basis, for example when called for rating from Explorer, rotating from Photo Viewer, or importing images using the system’s built-in Photo and Video import utility. Fortunately, for each operation a new codec instance gets created so it is possible to selectively influence which codec should be used depending on who's calling and from where.

When my codec declines to handle a file, the default arbitration falls back to the stock JPEG codec and the transcoding is performed losslessly as it should. The trick is to know when to enable the codec and when to disable it, within a given process, and this must be adjusted on a program-by-program basis (fortunately there are not many cases where disabling is required).

If you are using an alternate JPEG codec and want to re-enable lossless tagging in WLPG you can disable or uninstall it and report the issue to the publisher and see it they have an update.

If you are using the EXIF-based Auto-Rotating JPEG codec that is part of my own FastPictureViewer Codec Pack, make sure to download the most current version (2.4.0.7) which should handle WLPG 2011 better. Alternatively you can disable it by running setup again and unchecking this option, but you will lose auto-rotation everywhere in Windows and in WLPG. There are at least two other JPEG codec suppliers out there (Leadtools and Intel) and I’m not sure what they do about this, if anything.

As a side note, this issue has nothing to do with the other WLPG issue discussed in forums regarding geotagging.

Besides that and as remark, you make it sound horrible but it is no worse that opening the file in Photoshop, editing the file properties then clicking “Save”, in fact it’s exactly the same, save for the default quality used, and the resulting pixels are virtually indistinguishable from the originals (despite the fact that we know very well that repeated resaving will eventually degrade the image to a point where compression artifacts become visible). In any case it's nothing like a data corrupion issue causing catastrophic losses or anything like that.

Post (hide subjects) Posted by
(unknown member)
(unknown member)
(unknown member)
(unknown member)
(unknown member)
(unknown member)
(unknown member)
(unknown member)
(unknown member)
(unknown member)
Keyboard shortcuts:
FForum PPrevious NNext WNext unread UUpvote SSubscribe RReply QQuote BBookmark MMy threads
Color scheme? Blue / Yellow