HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hylafax-users] Receiving a color fax



Hello Lee

Another looong mail, although I hope it helps and don't tire too much.

Lee Howard wrote:

Blas Rodriguez Somoza wrote:

Excuse me if the mail are too long, but I expend hours trying to analyze the problem I and wish to explain the process, perhaps others can get some valuable information. ;-)

I actually enjoy these kinds of discussions very much. I only wish that I knew more about JPEG.


Fine

After this result which don't answer the question I've found that the color space for a fax is not CIELab nor ICCLab but ITULab and so it is coded the tif.


Initially I assumed that color JPEG faxes were ITULab because of the "ITU" involvment there. However, I assumed incorrectly. ITU-T.30 Table 2 Note 35 (in the 2003 revision) clearly indicates that color JPEG faxes use CIELab color space. This was further reinforced by my discussions with those on the IJG mailing lists, in particular with the author of the CIELAB libjpeg patch, John Barber. His libjpeg patches are here:

The question is that the CIELab color space is not the same that CIELAB encoding. CIEL*a*b have at least three encodings CIELab, ICC(Lab) and ITU(Lab).

The CIELAB encoding, which is the first to be used, was defined to be able to encode with 8/16 bits the l*a*b values which are unbounded. (uses L unsigned, a*b signed)
ICCLab modify CIELAB encoding to match the encoding used by the ICC profile specification. (uses L*a*b unsigned)
ITULab modify CIELAB encoding and adds a gamut range which allows to better represent the colors for different image sources.
-- The ITULAB gamut range can be in tiff with the optional tiff tag "Decode" (http://www.awaresystems.be/imaging/tiff/tifftags/decode.php)


I can give you two pages about that refers to the color space and it three encodings: CIELab, ICC(Lab) and ITU(Lab)

http://davengrace.com/cgi-bin/cspace.pl
http://www.inventoland.net/imaging/cii/ei02.pdf (page 34)

** About the ITU standards

The T.30 Annex E Standard (version 04_99, page 147) mention CIELAB color space but refers to T.4 Annex about encoding.

In T.4 Annex (version 07_03, page 41) ITU defines a encoding for L*a*b values which the one called usually ITULab encoding. You can verify that with the formulas in the previous link.

The full definition of the color space/encoding are in T.42.

** About CIE L*a*b codings in tiff

- The TIFF 6.0 Specification only mentions one encoding (CIELAB encoding)
- The TIFF 6.0 Specification suplement 1 add ICCLab.
- The TIFF 6.0 Specification suplement 2 is dedicated only to make details about CIELab and ICCLab.
- And finally ITULab appears only in TIFF-FX (RFC 2301 File Format for Internet Fax)


In the RFC2301 (chapter 6.2.1) there is very clear reference to the encoding used in faxes :

PhotometricInterpretation(262) = 10. SHORT Base color fax mode requires pixel values to be stored using the CIE L*a*b* encoding defined in ITU-T Rec. T.42. This encoding is indicated by the PhotometricInterpretation value 10, referred to as ITULAB

And we will need to use more of them in order to get color fax *sending* going (if we intend to get the tagline encoded in a lossless manner).

All this said, on a purely theoretical and technical level the sending fax machine could encode the image in whatever format it chooses. It could use CIELab or ITULab or whatever format it wanted. As we've seen many, many times before fax machines do not always adhere to the standard (which appears to be CIELAB). The purest, and most correct method to determine which type of colorspace is used by the fax image would be to look inside the JPEG image data itself, looking for the JPEG markers which will indicate which type of colorspace is used. And, as a fax receiver, we would need to be able to identify this and use the information to set the appropriate TIFF tag.

Yes, it can be in 1-bit RGB, 1-bit CMY, 1-bit CMYK, indexed (palette) and CIELAB/ITULab


I'll give a try to get the correct value from the jpeg and put it in the tiff.

About standards, at least for tiff-fx it seems some fax manufacturers make efforts to assure compliance and interoperability,

http://www.ietf.org/IESG/Implementations/rfc2301-implementation-report.txt


The question about the DataFormat remains unanswered.

The JPEG and JBIG DataFormat listing comes from the FaxDCS TIFF tag. Do a 'tiffinfo' on my file and compare it against the 'tiffinfo' output on your file. There was an enhancement to the faxinfo utility that parsed the FaxDCS tag to interpret the JPEG and JBIG formats from it.


The only difference that seems significative between your log and mine which I can see is that I don't get any CallID and a line in yours I don't get

RECV/CQ: Found Define Number of Lines (DNL) Marker, lines: 2112

This requires that you have Copy Quality checking and correction logging turned on in your SessionLogging.

If, after enabling the logging, you still do not see DNL markers logged it must mean that the fax machine does not use DNL markers ... which would mean that it does not transmit JPEG pages of variable length - that the page length is predetermined before the fax begins.

Thanks, I'll try to find the issue.

Lee.


Blas

____________________ HylaFAX(tm) Users Mailing List _______________________
 To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null
 *To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*




Project hosted by iFAX Solutions