Previous Next


                                             1039
    SECTION F.3                                                                 Hint Tables



F.3 Hint Tables

    The core of the linearization information is stored in two or more hint tables, as
    indicated by the attributes of the primary hint stream (see Section F.2.5, “Hint
    Streams (Parts 5 and 10)”). The format of the standard hint tables is described in
    this section.

    There can be additional hint tables for application-specific data that is accessed
    by plug-in extensions. A generic format for such hint tables is defined; see Section
    F.3.4, “Generic Hint Tables.” Alternatively, the format of a hint table can be private
    to the application; see Appendix E for further information.

    Each hint table consists of a portion of the stream, beginning at the position in
    the stream indicated by the corresponding stream attribute. Additionally, there is
    a required page offset hint table, which must be the first table in the stream and
    must start at offset 0. (If there is an overflow hint stream, its contents are to be ap-
    pended seamlessly to the primary hint stream; hint table positions are relative to
    the beginning of this combined stream.) In general, this byte stream is treated as a
    bit stream, high-order bit first, which is then subdivided into fields of arbitrary
    width without regard to byte boundaries. However, each hint table begins at a
    byte boundary.

    The hint tables are designed to encode the required information as compactly as
    possible. Interpreting the hint tables requires reading them sequentially; they are
    not designed for random access. The client is expected to read and decode the
    tables once and retain the information for as long as the document remains open.

    A hint table encodes the positions of various objects in the file. The representa-
    tion is either explicit (an offset from the beginning of the file) or implicit (accu-
    mulated lengths of preceding objects). Regardless of the representation, the
    resulting positions must be interpreted as if the primary hint stream itself were
    not present. That is, a position greater than the hint stream offset must have the
    hint stream length added to it to determine the actual offset relative to the begin-
    ning of the file. (The hint stream offset and hint stream length are the values
    offset1 and length1 in the H array in the linearization parameter dictionary at the
    beginning of the file.)

    The reason for this rule is that the length of the primary hint stream depends on
    the information contained within the hint tables, which is not known until after

Previous Next