Answered by:

JPEG XR in native C++

Question

First of all, I'm not quite sure if my question belongs to this forum, but I couldn't find any more appropriate place in MSDN.

I'm currently researching the subject of programming with JPEG XR format and I'd like to ask for some clarification regarding availability of SDK or reference implementation for native C++ programming. AFAIU, JPEG XR is a standarized successor of HD Photo but it's not quite the same as HD Photo, so there are differences in support of those two formats among libraries.

I've read the welcome message as well as searched through the archives, other Web sites, blogs but could not find final answer to a few issues.

Generally, my question comes to this: which development kit should I use in order to write native C++ programs to encode/decode images in JPEG XR format.

It seems that the kit I need is HD Photo Device Porting Kit 1.0 - as the description says, it: provides detailed information about the HD Photo compressed bit stream format and how to implement an encoder and decoder. It contains reference ANSI source code for the encoder and decoder components. It also says it's fully compatible with HD Photo support in Windows Image Component and .NET Framework 3.x

However, it is unclear to me if HD Photo support is 100% compatible with what is specified as JPEG XR. The HD Photo DPK 1.0 was released in 2006. The JPEG XR was released in 2009. The long gap suggests me that encoder/decoder for HD Photo may not support all features specified for JPEG XR. In fact, while searching the Web, I found some opinions confirming that HD Photo DPK is only partially backward compatible with JPEG XR. It also doesn't support 64-bit builds.

I would appreciate if somebody could clarify the situation of development kit for JPEG XR format and native programming in C++.

Answers

For JPEG XR encoder and decoder implementation, I’d suggest using the JPEG committee reference software, which has been approved by ITU-T very recently as ITU-T Recommendation T.835 (and is also near final approval in ISO/IEC). Before the official version of the software is publically available, you could use an earlier version that was submitted by JPEG for FCD ballot. The software is available at http://www.itscj.ipsj.or.jp/sc29/open/29view/29n10430c.htm. The discrepancies from the official version are not very significant. So, it can be a very good starting point for your investigation. Of course, you should switch to the official version when it is published on ITU-T web site in a few months. That software is in C rather than C++, but it is probably the best available.

All replies

For JPEG XR encoder and decoder implementation, I’d suggest using the JPEG committee reference software, which has been approved by ITU-T very recently as ITU-T Recommendation T.835 (and is also near final approval in ISO/IEC). Before the official version of the software is publically available, you could use an earlier version that was submitted by JPEG for FCD ballot. The software is available at http://www.itscj.ipsj.or.jp/sc29/open/29view/29n10430c.htm. The discrepancies from the official version are not very significant. So, it can be a very good starting point for your investigation. Of course, you should switch to the official version when it is published on ITU-T web site in a few months. That software is in C rather than C++, but it is probably the best available.