Previous Next


                                              78
      CHAPTER 3                                                                        Syntax



      CCITT encoding is bit-oriented, not byte-oriented. Therefore, in principle,
      encoded or decoded data might not end at a byte boundary. This problem is dealt
      with in the following ways:

      • Unencoded data is treated as complete scan lines, with unused bits inserted at
        the end of each scan line to fill out the last byte. This approach is compatible
        with the PDF convention for sampled image data.
      • Encoded data is ordinarily treated as a continuous, unbroken bit stream. The
        EncodedByteAlign parameter (described in Table 3.9) can be used to cause
        each encoded scan line to be filled to a byte boundary. Although this is not pre-
        scribed by the CCITT standard and fax machines never do this, some software
        packages find it convenient to encode data this way.
      • When a filter reaches EOD, it always skips to the next byte boundary following
        the encoded data.

      If the CCITTFaxDecode filter encounters improperly encoded source data, an
      error occurs. The filter does not perform any error correction or
      resynchronization, except as noted for the DamagedRowsBeforeError parameter
      in Table 3.9.

      Table 3.9 lists the optional parameters that can be used to control the decoding.
      Except where noted otherwise, all values supplied to the decoding filter by any of
      these parameters must match those used when the data was encoded.

                 TABLE 3.9 Optional parameters for the CCITTFaxDecode filter
KEY                    TYPE         VALUE

K                      integer      A code identifying the encoding scheme used:
                                       < 0 Pure two-dimensional encoding (Group 4)
                                         0 Pure one-dimensional encoding (Group 3, 1-D)
                                       > 0 Mixed one- and two-dimensional encoding (Group 3, 2-D),
                                           in which a line encoded one-dimensionally can be followed
                                           by at most K − 1 lines encoded two-dimensionally
                                    The filter distinguishes among negative, zero, and positive values of
                                    K to determine how to interpret the encoded data; however, it does
                                    not distinguish between different positive K values. Default value: 0.

Previous Next