2007.09.23 16:42 "[Tiff] G3 fax: EOL needed at the beginning of each strip?", by ComSquare Martin Osieka

2007.09.24 08:52 "Re: [Tiff] G3 fax: EOL needed at the beginning of each strip?", by ComSquare Martin Osieka

I'm curious - where in the spec does it indicate strips have to start with

You may interpret this from TIFF 6.0 section 11 "CCITT Bilevel Encoding"

Strips and Tiles.

When CCITT bi-level encoding is employed, interaction with

stripping (Section 3) and tiling (Section 15) is as follows:

a. Decompose the image into segments-individual pixel arrays representing

        the desired strip or tile configuration. The CCITT encoding
procedures are
        applied most flexibly if the segments each have a multiple of 4
lines.
    b. Individually encode each segment according to the specified CCITT
bilevel
        encoding, as if each segment is a separate raster-graphic image.

Means strips should be encoded independent from each other.
I do not have access to the CCITT spec in the moment, but I guess they are
telling an image must start with EOL.

Still section 10 tells no EOLs needed...
So I would expect T.4 TIFFs containing no EOLs at all are legal.

Martin

----- Original Message -----
From: "Andy Cave" <andy.cave@hamillroad.com>
To: "Joris" <joris.at.lebbeke@skynet.be>; "ComSquare Martin Osieka"
<martin.osieka@comsquare.ch>; <tiff@lists.maptools.org>
Sent: Monday, September 24, 2007 10:01 AM
Subject: Re: [Tiff] G3 fax: EOL needed at the beginning of each strip?

I'm curious - where in the spec does it indicate strips have to start with EOL? I don't remember it saying so, and checking quickly, I can't find a reference to that.

From: "Joris" <joris.at.lebbeke@skynet.be> To: "ComSquare Martin Osieka" <martin.osieka@comsquare.ch>; <tiff@lists.maptools.org>

Sent: Monday, September 24, 2007 6:56 AM Subject: Re: [Tiff] G3 fax: EOL needed at the beginning of each strip?

The spec clearly indicates strips have to start with EOL. Unfortunately, I've a reasonable amount (i.e. not just a fluke) of testimages where garbage data preceeds the G3 block. LibTiff succeeds on these images by skipping to the first EOL. If we were to change LibTiff to start decoding right away, more unexpected stuff will happen on these images with preceeding garbage data that might just be more frequent.

In AsTiff, what I do if the strip or tile doesn't start with an EOL, is actually test and see if a line of desired length can successfully be decoded from the preceeding data, and if that data then is followed by an EOL. If so, I regard that the first line. If not, the code starts at the first EOL instead. This works on both the testimages with random preceeding data, and the testimages that just lack the first EOL. But the LibTiff fax decoder being as it is, a heap of macro's with embedded macro's that nobody at this stage can easilly decipher, it may be hard to make it behave equally intelligent.