xrit2pic runs fine on a very simple PC; it doesn't need much memory (32M should be fine).
However, especially for the wavelet decompression a fast PC is needed to translate this format in an acceptable time (2GHz: a few seconds).
Note: You may try to convince me to add certain options! Also, bug reporting is very welcome.
Some technical information.
Each picture is represented into several (e.g. 8, or 58) small files.
JPEG files will be concatenated without decompressing them first, so no informnation is lost. The Independent Jpeg Group (IJG) routines are used for this.
Both 8 and 12 bits JPEG are supported.
If PGM generation is choosen a 8 bits JPEG (LRIT) will be translated into single-byte PGM; a 12 bits JPEG (HRIT HRV channel) will be translated into double-byte PGM (Big Endian).
Wavelet Transform (10 or 8 bits) formats will be concatenated and translated into 16 or 8 bits PGM. Code of this part of the program originates from Eumetsat, and may only be used for the purpose of MSG XRIT translations.
Note that 2 types of 16-bits PGM exist: Big Endian (MSByte first) and Little Endian (LSByte first). I think it is not well defined how PGM should be saved. Windows programs seem to use Big Endian, Linux (xv, IJG routines) Little Endian.
For the moment xrit2pic only generates Big Endian, but it is easy to also generate Little Endian PGM. If you need the latter one let me know!
The used IJG code needed to be changed:
'Bogus Huffman table definition' error: In jdhuff.c one check has to be removed: (near line 208)
if (((INT32) code) >= (((INT32) 1) << si))
Code is changed to work with both 8 and 12 bits JPEG