⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1314.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
        rather than publishing.  Therefore, we are more concerned        with compression ratios and compatibility with CCITT fax        than Aldus is.]   TIFF itself allows for gray-scale and color images.  Image files   should be restricted to TIFF-B for now because most of the currently   available hardware is bi-level (1 bit per pixel).  In the future,   when gray-scale or color scanners, printers, and fax becomes   available, the file format suggested here can already accommodate it.   (For example, though JPEG is not currently a TIFF defined compression   type, work is currently underway for including it as such.)Katz & Cohen                                                    [Page 6]RFC 1314                 Image Exchange Format                April 1992        [NOTE: In this document, we will use the term "reader"        or "TIFF reader" to refer to the process or device        which reads and parses a TIFF file.]3.A. TIFF File Format   Figure 1 below (reproduced here from Figure 1 of reference [3])   depicts the structure of a TIFF file.   TIFF files start with a file header which specifies the byte order   used in the file (i.e., Big or Little Endian), the TIFF version   number, and points to the first "Image File Directory" (IFD).  If the   first two bytes are hex 4D4D, the byte order is from most to least   significant for both 16 and 32 bit integers (Big Endian).  If the   first two bytes are hex 4949, the byte order is from least to most   significant (Little Endian).  In both formats, character strings are   stored into sequential bytes and are null terminated.   The next two bytes (called the TIFF Version) must be 42 (hex 002A).   This does not refer to the current TIFF revision number.  The   following 4 bytes contain the offset (in bytes from the beginning of   the file) to the first IFD.   An IFD contains a 2 byte count of the number of entries in the IFD, a   sequence of 12 byte directory entries, and a 4 byte pointer to the   next IFD.  One of these fields (StripOffsets) points to (parts of) an   image in the file.  There may be more than one image in the file   (e.g., a "multi-page" TIFF file) and therefore more then one IFD.   IFD field entries may appear in any order.   Each directory entry is 12 bytes and consists of a tag, its type, a   length, and an offset to its value.  If the value can fit into 4   bytes (i.e., if the type is BYTE, SHORT, or LONG), the actual value   rather than an offset is given.  If the value is less than 4 bytes   (i.e., if the type is BYTE or SHORT), it is left-justified within the   4 byte value offset.  More details about directory entries and the   possible tags will be given in Section 3.C.   All pointers (called offsets in the TIFF reference [3]) are the   number of bytes from the beginning of the file and are 4 bytes long.   The first byte of the file has an offset of 0.  In the case of only   one image per file, there should therefore be only one IFD.  The last   IFD's pointer to the next IFD is set to hex 00000000 (32 bits).   The entries in an IFD must be sorted in ascending order by Tag.Katz & Cohen                                                    [Page 7]RFC 1314                 Image Exchange Format                April 1992              Header        +--------+--------+                     Directory Entry      0 |        |        | Byte Order        +--------+--------+        +--------+--------|               X   |        |        | Tag      2 |        |        | Version(42)       +--------+--------|        +--------+--------|               X+2 |        |        | Type      4 |        |        | Offset of         +--------+--------|        +-     - A -     -+  0th IFD      X+4 |        |        |      6 |        |        |                   +-               -+ Length        +--------+--------+                   |        |        |                 |                            +--------+--------+                 |                        X+8 |        |        | Value                 |                            +-     - Y -     -+   or                 V                            |        |        | Value                                              +--------+--------+ Offset                IFD        +--------+--------+                            |  A     |      - B -      | Entry Count                |        +--------+--------|                            |        |        |        |                            V  A+2                       Entry 0        |        |        |                   +--------+--------+        +--------+--------+                   |        |        |        |        |        |                 Y                     Value  A+14                      Entry 1           |        |        |        |        |        |                   +--------+--------|        +--------+--------+        |        |        |  A+26                      Entry 2        |        |        |        +--------+--------+        |        |        |    .                               .        |        |        |    .        +--------+--------+        |        |        |                             Entry B-1        |        |        |        +--------+--------+        |        |        |  Offset ofA+2+B*12       - C -      +  Next IFD        |        |        |        +--------+--------+                 |                 V            (next IFD)                 Figure 1: The Structure of a TIFF FileKatz & Cohen                                                    [Page 8]RFC 1314                 Image Exchange Format                April 19923.B. Image Format and Encoding Issues   Images in TIFF files are organized as horizontal strips for fast   access to individual rows.  One can specify how many rows there are   in each strip and all of the strips are the same size (except   possibly the last one).  Each strip must begin on a byte boundary but   successive rows are not so required.  For two-dimensional G3   compression (MR), each strip must begin with an "absolute" one-   dimensional line.  For MMR (G4) compression, each strip must be   encoded as if it were a separate image.   For a variety of reasons, each page must be a single strip (e.g., not   broken up into multiple strips).   One problem with multiple strips per page is that images which come   from G4 fax machines as well as most scanned images will be generated   as a single strip per page.  These would have to be decoded and re-   encoded as multiple strips (remember that for MMR compression, each   strip must be start with a one-dimensionally encoded line).   Another problem with multiple strips per page arises in MR   compression.  Here, there MAY be at most k-1 two-dimensionally   encoded lines following a one-dimensionally encoded line, but this is   not required.  It is possible to have one-dimensional lines more   frequently than every k lines.  However, since each strip (except   possibly the last one) is required to be the same size, it may be   necessary to re-encode the image to insure that each strip starts   with a one-dimensional line.  This is not a problem if each page is a   single strip.        [NOTE: The TIFF document [3] suggests using strips which        are about 8K bytes long.  However, TIFF-F [4] recommends        that each page be a single strip regardless of its size.        The format specified in this document follows the TIFF-F        recommendation.]   Also, as TIFF-F recommends, all G3 encoded images (MH and MR) should   be "byte-aligned."  This means that extra zero bits (fill bits) are   added before each EOL (end-of-line) so that every line starts on a   byte boundary.   In addition, as in the TIFF-F specification, the RTC (Return to   Control signal which consists of 6 continuous EOL's) of G3 shall not   be included at the end of G3 encoded documents.  RTC is to be   considered part of the G3 transmission protocol and not part of the   encoding.  Most, if not all, G3 fax modems attach RTC to outgoing   images and remove it from incoming ones.Katz & Cohen                                                    [Page 9]RFC 1314                 Image Exchange Format                April 1992   For MMR (G4) encoded files, readers should be able to read images   with only one EOFB (End Of Facsimile Block) at the end of the page   and should not assume that Facsimile Blocks are of any particular   size.  (It has been reported that some MMR readers assume that all   Facsimile Blocks are the maximum size.)   Systems may optionally choose to store the entire image uncompressed   if the compression increases the size of the image file.  Also,   uncompressed mode (specified in Group3Options or Group4Options, see   below) allows portions of the image to be uncompressed.   The multi-page capability of TIFF is supported and should be used for   multi-page documents.  TIFF files which have multiple pages have an   IFD for each page of the document each of which describes and points   to a single page image.  (Note: though the current TIFF specification   does not specifically prohibit having a single IFD point to an image   which is actually multiple pages, with one strip for each page, most   if not all TIFF readers would probably not be able to read such a   file.  Therefore, this should not be done.)     [A NOTE ON TIFF AND MULTI-PAGE DOCUMENTS:        Since most publications (e.g., reports, books, and        magazine articles) are composed of more than a single        page, multi-page TIFF files should be used where        appropriate.  However, many current TIFF implementations        now only handle single-page files.        It is hoped that in the future, more TIFF implementations        will handle multi-page files correctly.  In the meantime,        it would be useful to develop a utility program which        could join several single-page TIFF files into a single        multi-page file and also separate a multi-page TIFF file        into several single page files.        For example, the utility could take a single TIFF file        with N pages, called doc.tif, and create the files        doc.000, doc.001, doc.002, ..., doc.N.  doc.000 would be        an ASCII listing of the files created.  This naming        scheme is compatible with that used by the image systems        we have seen which only handle single page files.        In going the other way, the N+1 single page files could        be combined into a single multi-page TIFF file.  In this        case, if the file doc.000 exists but contains information        contrary to what is found in looking for the files        doc.001, doc.002, ..., the program would notify the user.]Katz & Cohen                                                   [Page 10]RFC 1314                 Image Exchange Format                April 19923.C. TIFF Fields   TIFF is tag or field based.  The various fields and their format are   listed in [3].  There are Basic Fields (common to all TIFF files),   Informational Fields (which provide useful information to a user),   Facsimile Fields (used here), and Private Fields.   Each directory entry contains:       The Tag for the field (2 bytes)       The field Type (2 bytes)       The field Length (4 bytes)           (This is in terms of the data type, not in bytes.  For            example, a single 16-bit word or SHORT has a Length            of 1, not 2)       The Value Offset (4 bytes)           (Pointer to the actual value, which must begin on a            word boundary.  Therefore, this offset will always            be an even number.  If the Value fits into 4 bytes, the            Value Offset contains the Value instead.  If the Value            takes less than 4 bytes, it is left justified)   The allowed types and their codes are:        1 = BYTE        8-bit unsigned integer (1 byte)        2 = ASCII       8-bit ASCII terminated with a null (variable                        length)        3 = SHORT       16-bit unsigned integer (2 bytes)        4 = LONG        32-bit unsigned integer (4 bytes)        5 = RATIONAL    Two LONGs (64 bits) representing the                        numerator and denominator of a fraction.                        In this document, RATIONAL's will be written                        as numerator/denominator. (8 bytes)   For ASCII, the Length specifies the number of characters and includes   the null.  It does not, however, include padding if such is   necessary.   (Note that ASCII strings of length 3 or less may be stored in the   Value Offset field instead of being pointed to.)Katz & Cohen                                                   [Page 11]RFC 1314                 Image Exchange Format                April 1992   The following fields should be used in a TIFF image file.  Only the   Basic Fields are mandatory; the others are optional (except that for   MH and MR encoded files, the Group3Options Facsimile Field is   mandatory).  The optional fields have default values which are given   in the TIFF specification.  (Note that the TIFF reference [3]   recommends not relying on the default values.)   Some fields contain one or more flag bits all stored as one value.   In these cases, the bit labeled 0 is the least significant bit (i.e.,   Little Endian order).  Where there is more than one suggested value   for a tag, the possible values are separated by |.   Note that some fields (such as ImageLength or ImageWidth) can be of   more than one type.   It would be useful to develop a TIFF viewer and editor which would   allow one to read, add, and edit the fields in a TIFF file.  Such an   editor would display fields in sorted order and force the inclusion   of all mandatory fields.  Also, resolution and position should always   be displayed or specified together with their units.   3.C.1.  Basic Fields (Mandatory)      Basic Fields are those which are fundamental to the pixel

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -