File: tiff.h

package info (click to toggle)
insighttoolkit 3.20.1%2Bgit20120521-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 80,652 kB
  • sloc: cpp: 458,133; ansic: 196,223; fortran: 28,000; python: 3,839; tcl: 1,811; sh: 1,184; java: 583; makefile: 430; csh: 220; perl: 193; xml: 20
file content (568 lines) | stat: -rw-r--r-- 30,523 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
#include  "itk_tiff_mangle.h"
/* Id */

/*
 * Copyright (c) 1988-1997 Sam Leffler
 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
 *
 * Permission to use, copy, modify, distribute, and sell this software and 
 * its documentation for any purpose is hereby granted without fee, provided
 * that (i) the above copyright notices and this permission notice appear in
 * all copies of the software and related documentation, and (ii) the names of
 * Sam Leffler and Silicon Graphics may not be used in any advertising or
 * publicity relating to the software without the specific, prior written
 * permission of Sam Leffler and Silicon Graphics.
 * 
 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
 * 
 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
 * OF THIS SOFTWARE.
 */

#ifndef _TIFF_
#define  _TIFF_
/*
 * Tag Image File Format (TIFF)
 *
 * Based on Rev 6.0 from:
 *    Developer's Desk
 *    Aldus Corporation
 *    411 First Ave. South
 *    Suite 200
 *    Seattle, WA  98104
 *    206-622-5500
 *    
 *    (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf)
 *
 * For Big TIFF design notes see the following link
 *    http://gdal.maptools.org/twiki/bin/view/libtiff/BigTIFFDesign
 */
#define  TIFF_VERSION          42
#define TIFF_BIGTIFF_VERSION    43

#define  TIFF_BIGENDIAN    0x4d4d
#define  TIFF_LITTLEENDIAN  0x4949

/*
 * The so called TIFF types conflict with definitions from inttypes.h 
 * included from sys/types.h on AIX (at least using VisualAge compiler). 
 * We try to work around this by detecting this case.  Defining 
 * _TIFF_DATA_TYPEDEFS_ short circuits the later definitions in tiff.h, and
 * we will in the holes not provided for by inttypes.h. 
 *
 * See http://bugzilla.remotesensing.org/show_bug.cgi?id=39
 */
#if defined(_H_INTTYPES) && defined(_ALL_SOURCE) && defined(USING_VISUALAGE)

#define _TIFF_DATA_TYPEDEFS_
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned int uint32;

#endif

/*
 * Intrinsic data types required by the file format:
 *
 * 8-bit quantities  int8/uint8
 * 16-bit quantities  int16/uint16
 * 32-bit quantities  int32/uint32
 * strings    unsigned char*
 */
#ifndef _TIFF_DATA_TYPEDEFS_
#define _TIFF_DATA_TYPEDEFS_

typedef  signed char int8;  /* NB: non-ANSI compilers may not grok */
typedef  unsigned char uint8;
typedef  short int16;
typedef  unsigned short uint16;  /* sizeof (uint16) must == 2 */
#if defined(__amd64) || defined(__alpha) || (defined(_MIPS_SZLONG) && _MIPS_SZLONG == 64) || defined(__LP64__) || defined(__arch64__)
typedef  int int32;
typedef  unsigned int uint32;  /* sizeof (uint32) must == 4 */
#else
typedef  long int32;
typedef  unsigned long uint32;  /* sizeof (uint32) must == 4 */
#endif

#endif /* _TIFF_DATA_TYPEDEFS_ */

/* For TIFFReassignTagToIgnore */
enum TIFFIgnoreSense /* IGNORE tag table */
{
  TIS_STORE,
  TIS_EXTRACT,
  TIS_EMPTY
};

/*
 * TIFF header.
 */
typedef  struct {
  uint16  tiff_magic;  /* magic number (defines byte order) */
#define TIFF_MAGIC_SIZE    2
  uint16  tiff_version;  /* TIFF version number */
#define TIFF_VERSION_SIZE  2
  uint32  tiff_diroff;  /* byte offset to first directory */
#define TIFF_DIROFFSET_SIZE  4
} TIFFHeader;


/*
 * TIFF Image File Directories are comprised of a table of field
 * descriptors of the form shown below.  The table is sorted in
 * ascending order by tag.  The values associated with each entry are
 * disjoint and may appear anywhere in the file (so long as they are
 * placed on a word boundary).
 *
 * If the value is 4 bytes or less, then it is placed in the offset
 * field to save space.  If the value is less than 4 bytes, it is
 * left-justified in the offset field.
 */
typedef  struct {
  uint16    tdir_tag;  /* see below */
  uint16    tdir_type;  /* data type; see below */
  uint32    tdir_count;  /* number of items; length in spec */
  uint32    tdir_offset;  /* byte offset to field data */
} TIFFDirEntry;

/*
 * NB: In the comments below,
 *  - items marked with a + are obsoleted by revision 5.0,
 *  - items marked with a ! are introduced in revision 6.0.
 *  - items marked with a % are introduced post revision 6.0.
 *  - items marked with a $ are obsoleted by revision 6.0.
 *  - items marked with a & are introduced by Adobe DNG specification.
 */

/*
 * Tag data type information.
 *
 * Note: RATIONALs are the ratio of two 32-bit integer values.
 */
typedef  enum {
  TIFF_NOTYPE  = 0,  /* placeholder */
  TIFF_BYTE  = 1,  /* 8-bit unsigned integer */
  TIFF_ASCII  = 2,  /* 8-bit bytes w/ last byte null */
  TIFF_SHORT  = 3,  /* 16-bit unsigned integer */
  TIFF_LONG  = 4,  /* 32-bit unsigned integer */
  TIFF_RATIONAL  = 5,  /* 64-bit unsigned fraction */
  TIFF_SBYTE  = 6,  /* !8-bit signed integer */
  TIFF_UNDEFINED  = 7,  /* !8-bit untyped data */
  TIFF_SSHORT  = 8,  /* !16-bit signed integer */
  TIFF_SLONG  = 9,  /* !32-bit signed integer */
  TIFF_SRATIONAL  = 10,  /* !64-bit signed fraction */
  TIFF_FLOAT  = 11,  /* !32-bit IEEE floating point */
  TIFF_DOUBLE  = 12,  /* !64-bit IEEE floating point */
  TIFF_IFD  = 13  /* %32-bit unsigned integer (offset) */
} TIFFDataType;

/*
 * TIFF Tag Definitions.
 */
#define  TIFFTAG_SUBFILETYPE    254  /* subfile data descriptor */
#define      FILETYPE_REDUCEDIMAGE  0x1  /* reduced resolution version */
#define      FILETYPE_PAGE    0x2  /* one page of many */
#define      FILETYPE_MASK    0x4  /* transparency mask */
#define  TIFFTAG_OSUBFILETYPE    255  /* +kind of data in subfile */
#define      OFILETYPE_IMAGE    1  /* full resolution image data */
#define      OFILETYPE_REDUCEDIMAGE  2  /* reduced size image data */
#define      OFILETYPE_PAGE    3  /* one page of many */
#define  TIFFTAG_IMAGEWIDTH    256  /* image width in pixels */
#define  TIFFTAG_IMAGELENGTH    257  /* image height in pixels */
#define  TIFFTAG_BITSPERSAMPLE    258  /* bits per channel (sample) */
#define  TIFFTAG_COMPRESSION    259  /* data compression technique */
#define      COMPRESSION_NONE    1  /* dump mode */
#define      COMPRESSION_CCITTRLE  2  /* CCITT modified Huffman RLE */
#define      COMPRESSION_CCITTFAX3  3  /* CCITT Group 3 fax encoding */
#define     COMPRESSION_CCITT_T4        3       /* CCITT T.4 (TIFF 6 name) */
#define      COMPRESSION_CCITTFAX4  4  /* CCITT Group 4 fax encoding */
#define     COMPRESSION_CCITT_T6        4       /* CCITT T.6 (TIFF 6 name) */
#define      COMPRESSION_LZW    5       /* Lempel-Ziv  & Welch */
#define      COMPRESSION_OJPEG    6  /* !6.0 JPEG */
#define      COMPRESSION_JPEG    7  /* %JPEG DCT compression */
#define      COMPRESSION_NEXT    32766  /* NeXT 2-bit RLE */
#define      COMPRESSION_CCITTRLEW  32771  /* #1 w/ word alignment */
#define      COMPRESSION_PACKBITS  32773  /* Macintosh RLE */
#define      COMPRESSION_THUNDERSCAN  32809  /* ThunderScan RLE */
/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT <dkelly@apago.com) */
#define      COMPRESSION_IT8CTPAD  32895   /* IT8 CT w/padding */
#define      COMPRESSION_IT8LW    32896   /* IT8 Linework RLE */
#define      COMPRESSION_IT8MP    32897   /* IT8 Monochrome picture */
#define      COMPRESSION_IT8BL    32898   /* IT8 Binary line art */
/* compression codes 32908-32911 are reserved for Pixar */
#define     COMPRESSION_PIXARFILM  32908   /* Pixar companded 10bit LZW */
#define      COMPRESSION_PIXARLOG  32909   /* Pixar companded 11bit ZIP */
#define      COMPRESSION_DEFLATE    32946  /* Deflate compression */
#define     COMPRESSION_ADOBE_DEFLATE   8       /* Deflate compression,
               as recognized by Adobe */
/* compression code 32947 is reserved for Oceana Matrix <dev@oceana.com> */
#define     COMPRESSION_DCS             32947   /* Kodak DCS encoding */
#define      COMPRESSION_JBIG    34661  /* ISO JBIG */
#define     COMPRESSION_SGILOG    34676  /* SGI Log Luminance RLE */
#define     COMPRESSION_SGILOG24  34677  /* SGI Log 24-bit packed */
#define     COMPRESSION_JP2000          34712   /* Leadtools JPEG2000 */
#define  TIFFTAG_PHOTOMETRIC    262  /* photometric interpretation */
#define      PHOTOMETRIC_MINISWHITE  0  /* min value is white */
#define      PHOTOMETRIC_MINISBLACK  1  /* min value is black */
#define      PHOTOMETRIC_RGB    2  /* RGB color model */
#define      PHOTOMETRIC_PALETTE    3  /* color map indexed */
#define      PHOTOMETRIC_MASK    4  /* $holdout mask */
#define      PHOTOMETRIC_SEPARATED  5  /* !color separations */
#define      PHOTOMETRIC_YCBCR    6  /* !CCIR 601 */
#define      PHOTOMETRIC_CIELAB    8  /* !1976 CIE L*a*b* */
#define      PHOTOMETRIC_ICCLAB    9  /* ICC L*a*b* [Adobe TIFF Technote 4] */
#define      PHOTOMETRIC_ITULAB    10  /* ITU L*a*b* */
#define     PHOTOMETRIC_LOGL    32844  /* CIE Log2(L) */
#define     PHOTOMETRIC_LOGLUV    32845  /* CIE Log2(L) (u',v') */
#define  TIFFTAG_THRESHHOLDING    263  /* +thresholding used on data */
#define      THRESHHOLD_BILEVEL    1  /* b&w art scan */
#define      THRESHHOLD_HALFTONE    2  /* or dithered scan */
#define      THRESHHOLD_ERRORDIFFUSE  3  /* usually floyd-steinberg */
#define  TIFFTAG_CELLWIDTH    264  /* +dithering matrix width */
#define  TIFFTAG_CELLLENGTH    265  /* +dithering matrix height */
#define  TIFFTAG_FILLORDER    266  /* data order within a byte */
#define      FILLORDER_MSB2LSB    1  /* most significant -> least */
#define      FILLORDER_LSB2MSB    2  /* least significant -> most */
#define  TIFFTAG_DOCUMENTNAME    269  /* name of doc. image is from */
#define  TIFFTAG_IMAGEDESCRIPTION  270  /* info about image */
#define  TIFFTAG_MAKE      271  /* scanner manufacturer name */
#define  TIFFTAG_MODEL      272  /* scanner model name/number */
#define  TIFFTAG_STRIPOFFSETS    273  /* offsets to data strips */
#define  TIFFTAG_ORIENTATION    274  /* +image orientation */
#define      ORIENTATION_TOPLEFT    1  /* row 0 top, col 0 lhs */
#define      ORIENTATION_TOPRIGHT  2  /* row 0 top, col 0 rhs */
#define      ORIENTATION_BOTRIGHT  3  /* row 0 bottom, col 0 rhs */
#define      ORIENTATION_BOTLEFT    4  /* row 0 bottom, col 0 lhs */
#define      ORIENTATION_LEFTTOP    5  /* row 0 lhs, col 0 top */
#define      ORIENTATION_RIGHTTOP  6  /* row 0 rhs, col 0 top */
#define      ORIENTATION_RIGHTBOT  7  /* row 0 rhs, col 0 bottom */
#define      ORIENTATION_LEFTBOT    8  /* row 0 lhs, col 0 bottom */
#define  TIFFTAG_SAMPLESPERPIXEL    277  /* samples per pixel */
#define  TIFFTAG_ROWSPERSTRIP    278  /* rows per strip of data */
#define  TIFFTAG_STRIPBYTECOUNTS    279  /* bytes counts for strips */
#define  TIFFTAG_MINSAMPLEVALUE    280  /* +minimum sample value */
#define  TIFFTAG_MAXSAMPLEVALUE    281  /* +maximum sample value */
#define  TIFFTAG_XRESOLUTION    282  /* pixels/resolution in x */
#define  TIFFTAG_YRESOLUTION    283  /* pixels/resolution in y */
#define  TIFFTAG_PLANARCONFIG    284  /* storage organization */
#define      PLANARCONFIG_CONTIG    1  /* single image plane */
#define      PLANARCONFIG_SEPARATE  2  /* separate planes of data */
#define  TIFFTAG_PAGENAME    285  /* page name image is from */
#define  TIFFTAG_XPOSITION    286  /* x page offset of image lhs */
#define  TIFFTAG_YPOSITION    287  /* y page offset of image lhs */
#define  TIFFTAG_FREEOFFSETS    288  /* +byte offset to free block */
#define  TIFFTAG_FREEBYTECOUNTS    289  /* +sizes of free blocks */
#define  TIFFTAG_GRAYRESPONSEUNIT  290  /* $gray scale curve accuracy */
#define      GRAYRESPONSEUNIT_10S  1  /* tenths of a unit */
#define      GRAYRESPONSEUNIT_100S  2  /* hundredths of a unit */
#define      GRAYRESPONSEUNIT_1000S  3  /* thousandths of a unit */
#define      GRAYRESPONSEUNIT_10000S  4  /* ten-thousandths of a unit */
#define      GRAYRESPONSEUNIT_100000S  5  /* hundred-thousandths */
#define  TIFFTAG_GRAYRESPONSECURVE  291  /* $gray scale response curve */
#define  TIFFTAG_GROUP3OPTIONS    292  /* 32 flag bits */
#define  TIFFTAG_T4OPTIONS    292  /* TIFF 6.0 proper name alias */
#define      GROUP3OPT_2DENCODING  0x1  /* 2-dimensional coding */
#define      GROUP3OPT_UNCOMPRESSED  0x2  /* data not compressed */
#define      GROUP3OPT_FILLBITS    0x4  /* fill to byte boundary */
#define  TIFFTAG_GROUP4OPTIONS    293  /* 32 flag bits */
#define TIFFTAG_T6OPTIONS               293     /* TIFF 6.0 proper name */
#define      GROUP4OPT_UNCOMPRESSED  0x2  /* data not compressed */
#define  TIFFTAG_RESOLUTIONUNIT    296  /* units of resolutions */
#define      RESUNIT_NONE    1  /* no meaningful units */
#define      RESUNIT_INCH    2  /* english */
#define      RESUNIT_CENTIMETER    3  /* metric */
#define  TIFFTAG_PAGENUMBER    297  /* page numbers of multi-page */
#define  TIFFTAG_COLORRESPONSEUNIT  300  /* $color curve accuracy */
#define      COLORRESPONSEUNIT_10S  1  /* tenths of a unit */
#define      COLORRESPONSEUNIT_100S  2  /* hundredths of a unit */
#define      COLORRESPONSEUNIT_1000S  3  /* thousandths of a unit */
#define      COLORRESPONSEUNIT_10000S  4  /* ten-thousandths of a unit */
#define      COLORRESPONSEUNIT_100000S  5  /* hundred-thousandths */
#define  TIFFTAG_TRANSFERFUNCTION  301  /* !colorimetry info */
#define  TIFFTAG_SOFTWARE    305  /* name & release */
#define  TIFFTAG_DATETIME    306  /* creation date and time */
#define  TIFFTAG_ARTIST      315  /* creator of image */
#define  TIFFTAG_HOSTCOMPUTER    316  /* machine where created */
#define  TIFFTAG_PREDICTOR    317  /* prediction scheme w/ LZW */
#define  TIFFTAG_WHITEPOINT    318  /* image white point */
#define  TIFFTAG_PRIMARYCHROMATICITIES  319  /* !primary chromaticities */
#define  TIFFTAG_COLORMAP    320  /* RGB map for pallette image */
#define  TIFFTAG_HALFTONEHINTS    321  /* !highlight+shadow info */
#define  TIFFTAG_TILEWIDTH    322  /* !tile width in pixels */
#define  TIFFTAG_TILELENGTH    323  /* !tile height in pixels */
#define TIFFTAG_TILEOFFSETS    324  /* !offsets to data tiles */
#define TIFFTAG_TILEBYTECOUNTS    325  /* !byte counts for tiles */
#define  TIFFTAG_BADFAXLINES    326  /* lines w/ wrong pixel count */
#define  TIFFTAG_CLEANFAXDATA    327  /* regenerated line info */
#define      CLEANFAXDATA_CLEAN    0  /* no errors detected */
#define      CLEANFAXDATA_REGENERATED  1  /* receiver regenerated lines */
#define      CLEANFAXDATA_UNCLEAN  2  /* uncorrected errors exist */
#define  TIFFTAG_CONSECUTIVEBADFAXLINES  328  /* max consecutive bad lines */
#define  TIFFTAG_SUBIFD      330  /* subimage descriptors */
#define  TIFFTAG_INKSET      332  /* !inks in separated image */
#define      INKSET_CMYK      1  /* !cyan-magenta-yellow-black color */
#define      INKSET_MULTIINK    2  /* !multi-ink or hi-fi color */
#define  TIFFTAG_INKNAMES    333  /* !ascii names of inks */
#define  TIFFTAG_NUMBEROFINKS    334  /* !number of inks */
#define  TIFFTAG_DOTRANGE    336  /* !0% and 100% dot codes */
#define  TIFFTAG_TARGETPRINTER    337  /* !separation target */
#define  TIFFTAG_EXTRASAMPLES    338  /* !info about extra samples */
#define      EXTRASAMPLE_UNSPECIFIED  0  /* !unspecified data */
#define      EXTRASAMPLE_ASSOCALPHA  1  /* !associated alpha data */
#define      EXTRASAMPLE_UNASSALPHA  2  /* !unassociated alpha data */
#define  TIFFTAG_SAMPLEFORMAT    339  /* !data sample format */
#define      SAMPLEFORMAT_UINT    1  /* !unsigned integer data */
#define      SAMPLEFORMAT_INT    2  /* !signed integer data */
#define      SAMPLEFORMAT_IEEEFP    3  /* !IEEE floating point data */
#define      SAMPLEFORMAT_VOID    4  /* !untyped data */
#define      SAMPLEFORMAT_COMPLEXINT  5  /* !complex signed int */
#define      SAMPLEFORMAT_COMPLEXIEEEFP  6  /* !complex ieee floating */
#define  TIFFTAG_SMINSAMPLEVALUE    340  /* !variable MinSampleValue */
#define  TIFFTAG_SMAXSAMPLEVALUE    341  /* !variable MaxSampleValue */
#define  TIFFTAG_CLIPPATH    343  /* %ClipPath
               [Adobe TIFF technote 2] */
#define  TIFFTAG_XCLIPPATHUNITS    344  /* %XClipPathUnits
               [Adobe TIFF technote 2] */
#define  TIFFTAG_YCLIPPATHUNITS    345  /* %YClipPathUnits
               [Adobe TIFF technote 2] */
#define  TIFFTAG_INDEXED      346  /* %Indexed
               [Adobe TIFF Technote 3] */
#define  TIFFTAG_JPEGTABLES    347  /* %JPEG table stream */
#define  TIFFTAG_OPIPROXY    351  /* %OPI Proxy [Adobe TIFF technote] */
/*
 * Tags 512-521 are obsoleted by Technical Note #2 which specifies a
 * revised JPEG-in-TIFF scheme.
 */
#define  TIFFTAG_JPEGPROC    512  /* !JPEG processing algorithm */
#define      JPEGPROC_BASELINE    1  /* !baseline sequential */
#define      JPEGPROC_LOSSLESS    14  /* !Huffman coded lossless */
#define  TIFFTAG_JPEGIFOFFSET    513  /* !pointer to SOI marker */
#define  TIFFTAG_JPEGIFBYTECOUNT    514  /* !JFIF stream length */
#define  TIFFTAG_JPEGRESTARTINTERVAL  515  /* !restart interval length */
#define  TIFFTAG_JPEGLOSSLESSPREDICTORS  517  /* !lossless proc predictor */
#define  TIFFTAG_JPEGPOINTTRANSFORM  518  /* !lossless point transform */
#define  TIFFTAG_JPEGQTABLES    519  /* !Q matrice offsets */
#define  TIFFTAG_JPEGDCTABLES    520  /* !DCT table offsets */
#define  TIFFTAG_JPEGACTABLES    521  /* !AC coefficient offsets */
#define  TIFFTAG_YCBCRCOEFFICIENTS  529  /* !RGB -> YCbCr transform */
#define  TIFFTAG_YCBCRSUBSAMPLING  530  /* !YCbCr subsampling factors */
#define  TIFFTAG_YCBCRPOSITIONING  531  /* !subsample positioning */
#define      YCBCRPOSITION_CENTERED  1  /* !as in PostScript Level 2 */
#define      YCBCRPOSITION_COSITED  2  /* !as in CCIR 601-1 */
#define  TIFFTAG_REFERENCEBLACKWHITE  532  /* !colorimetry info */
#define  TIFFTAG_XMLPACKET    700  /* %XML packet
               [Adobe XMP Specification,
               January 2004 */
#define TIFFTAG_OPIIMAGEID    32781  /* %OPI ImageID
               [Adobe TIFF technote] */
/* tags 32952-32956 are private tags registered to Island Graphics */
#define TIFFTAG_REFPTS      32953  /* image reference points */
#define TIFFTAG_REGIONTACKPOINT    32954  /* region-xform tack point */
#define TIFFTAG_REGIONWARPCORNERS  32955  /* warp quadrilateral */
#define TIFFTAG_REGIONAFFINE    32956  /* affine transformation mat */
/* tags 32995-32999 are private tags registered to SGI */
#define  TIFFTAG_MATTEING    32995  /* $use ExtraSamples */
#define  TIFFTAG_DATATYPE    32996  /* $use SampleFormat */
#define  TIFFTAG_IMAGEDEPTH    32997  /* z depth of image */
#define  TIFFTAG_TILEDEPTH    32998  /* z depth/data tile */
/* tags 33300-33309 are private tags registered to Pixar */
/*
 * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH
 * are set when an image has been cropped out of a larger image.  
 * They reflect the size of the original uncropped image.
 * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used
 * to determine the position of the smaller image in the larger one.
 */
#define TIFFTAG_PIXAR_IMAGEFULLWIDTH    33300   /* full image size in x */
#define TIFFTAG_PIXAR_IMAGEFULLLENGTH   33301   /* full image size in y */
 /* Tags 33302-33306 are used to identify special image modes and data
  * used by Pixar's texture formats.
  */
#define TIFFTAG_PIXAR_TEXTUREFORMAT  33302  /* texture map format */
#define TIFFTAG_PIXAR_WRAPMODES    33303  /* s & t wrap modes */
#define TIFFTAG_PIXAR_FOVCOT    33304  /* cotan(fov) for env. maps */
#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305
#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306
/* tag 33405 is a private tag registered to Eastman Kodak */
#define TIFFTAG_WRITERSERIALNUMBER      33405   /* device serial number */
/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */
#define  TIFFTAG_COPYRIGHT    33432  /* copyright string */
/* IPTC TAG from RichTIFF specifications */
#define TIFFTAG_RICHTIFFIPTC    33723
/* 34016-34029 are reserved for ANSI IT8 TIFF/IT <dkelly@apago.com) */
#define TIFFTAG_IT8SITE      34016  /* site name */
#define TIFFTAG_IT8COLORSEQUENCE  34017  /* color seq. [RGB,CMYK,etc] */
#define TIFFTAG_IT8HEADER    34018  /* DDES Header */
#define TIFFTAG_IT8RASTERPADDING  34019  /* raster scanline padding */
#define TIFFTAG_IT8BITSPERRUNLENGTH  34020  /* # of bits in short run */
#define TIFFTAG_IT8BITSPEREXTENDEDRUNLENGTH 34021/* # of bits in long run */
#define TIFFTAG_IT8COLORTABLE    34022  /* LW colortable */
#define TIFFTAG_IT8IMAGECOLORINDICATOR  34023  /* BP/BL image color switch */
#define TIFFTAG_IT8BKGCOLORINDICATOR  34024  /* BP/BL bg color switch */
#define TIFFTAG_IT8IMAGECOLORVALUE  34025  /* BP/BL image color value */
#define TIFFTAG_IT8BKGCOLORVALUE  34026  /* BP/BL bg color value */
#define TIFFTAG_IT8PIXELINTENSITYRANGE  34027  /* MP pixel intensity value */
#define TIFFTAG_IT8TRANSPARENCYINDICATOR 34028  /* HC transparency switch */
#define TIFFTAG_IT8COLORCHARACTERIZATION 34029  /* color character. table */
#define TIFFTAG_IT8HCUSAGE    34030  /* HC usage indicator */
#define TIFFTAG_IT8TRAPINDICATOR  34031  /* Trapping indicator
               (untrapped=0, trapped=1) */
#define TIFFTAG_IT8CMYKEQUIVALENT  34032  /* CMYK color equivalents */
/* tags 34232-34236 are private tags registered to Texas Instruments */
#define TIFFTAG_FRAMECOUNT              34232   /* Sequence Frame Count */
/* tag 34750 is a private tag registered to Adobe? */
#define TIFFTAG_ICCPROFILE    34675  /* ICC profile data */
/* tag 34377 is private tag registered to Adobe for PhotoShop */
#define TIFFTAG_PHOTOSHOP    34377 
/* tag 34750 is a private tag registered to Pixel Magic */
#define  TIFFTAG_JBIGOPTIONS    34750  /* JBIG options */
/* tags 34908-34914 are private tags registered to SGI */
#define  TIFFTAG_FAXRECVPARAMS    34908  /* encoded Class 2 ses. parms */
#define  TIFFTAG_FAXSUBADDRESS    34909  /* received SubAddr string */
#define  TIFFTAG_FAXRECVTIME    34910  /* receive time (secs) */
#define  TIFFTAG_FAXDCS      34911  /* encoded fax ses. params, Table 2/T.30 */
/* tags 37439-37443 are registered to SGI <gregl@sgi.com> */
#define TIFFTAG_STONITS      37439  /* Sample value to Nits */
/* tag 34929 is a private tag registered to FedEx */
#define  TIFFTAG_FEDEX_EDR    34929  /* unknown use */
/* tag 65535 is an undefined tag used by Eastman Kodak */
#define TIFFTAG_DCSHUESHIFTVALUES       65535   /* hue shift correction data */
/* Adobe Digital Negative format tags */
#define TIFFTAG_DNGVERSION    50706  /* &DNG version number */
#define TIFFTAG_DNGBACKWARDVERSION  50707  /* &DNG compatibility version */
#define TIFFTAG_UNIQUECAMERAMODEL  50708  /* &name for the camera model */
#define TIFFTAG_LOCALIZEDCAMERAMODEL  50709  /* &localized camera model
               name */
#define TIFFTAG_CFAPLANECOLOR    50710  /* &CFAPattern->LinearRaw space
               mapping */
#define TIFFTAG_CFALAYOUT    50711  /* &spatial layout of the CFA */
#define TIFFTAG_LINEARIZATIONTABLE  50712  /* &lookup table description */
#define TIFFTAG_BLACKLEVELREPEATDIM  50713  /* &repeat pattern size for
               the BlackLevel tag */
#define TIFFTAG_BLACKLEVEL    50714  /* &zero light encoding level */
#define TIFFTAG_BLACKLEVELDELTAH  50715  /* &zero light encoding level
               differences (columns) */
#define TIFFTAG_BLACKLEVELDELTAV  50716  /* &zero light encoding level
               differences (rows) */
#define TIFFTAG_WHITELEVEL    50717  /* &fully saturated encoding
               level */
#define TIFFTAG_DEFAULTSCALE    50718  /* &default scale factors */
#define TIFFTAG_DEFAULTCROPORIGIN  50719  /* &origin of the final image
               area */
#define TIFFTAG_DEFAULTCROPSIZE    50720  /* &size of the final image 
               area */
#define TIFFTAG_COLORMATRIX1    50721  /* &XYZ->reference color space
               transformation matrix 1 */
#define TIFFTAG_COLORMATRIX2    50722  /* &XYZ->reference color space
               transformation matrix 2 */
#define TIFFTAG_CAMERACALIBRATION1  50723  /* &calibration matrix 1 */
#define TIFFTAG_CAMERACALIBRATION2  50724  /* &calibration matrix 2 */
#define TIFFTAG_REDUCTIONMATRIX1  50725  /* &dimensionality reduction
               matrix 1 */
#define TIFFTAG_REDUCTIONMATRIX2  50726  /* &dimensionality reduction
               matrix 2 */
#define TIFFTAG_ANALOGBALANCE    50727  /* &gain applied the stored raw
               values*/
#define TIFFTAG_ASSHOTNEUTRAL    50728  /* &selected white balance in
               linear reference space */
#define TIFFTAG_ASSHOTWHITEXY    50729  /* &selected white balance in
               x-y chromaticity
               coordinates */
#define TIFFTAG_BASELINEEXPOSURE  50730  /* &how much to move the zero
               point */
#define TIFFTAG_BASELINENOISE    50731  /* &relative noise level */
#define TIFFTAG_BASELINESHARPNESS  50732  /* &relative amount of
               sharpening */
#define TIFFTAG_BAYERGREENSPLIT    50733  /* &how closely the values of
               the green pixels in the
               blue/green rows track the
               values of the green pixels
               in the red/green rows */
#define TIFFTAG_LINEARRESPONSELIMIT  50734  /* &non-linear encoding range */
#define TIFFTAG_CAMERASERIALNUMBER  50735  /* &camera's serial number */
#define TIFFTAG_CHROMABLURRADIUS  50737  /* &chroma blur radius */
#define TIFFTAG_ANTIALIASSTRENGTH  50738  /* &relative strength of the
               camera's anti-alias filter */
#define TIFFTAG_DNGPRIVATEDATA    50740  /* &manufacturer's private data */
#define TIFFTAG_MAKERNOTESAFETY    50741  /* &whether the EXIF MakerNote
               tag is safe to preserve
               along with the rest of the
               EXIF data */
#define  TIFFTAG_CALIBRATIONILLUMINANT1  50778  /* &illuminant 1 */
#define TIFFTAG_CALIBRATIONILLUMINANT2  50779  /* &illuminant 2 */
#define TIFFTAG_BESTQUALITYSCALE  50780  /* &best quality multiplier */

/*
 * The following are ``pseudo tags'' that can be used to control
 * codec-specific functionality.  These tags are not written to file.
 * Note that these values start at 0xffff+1 so that they'll never
 * collide with Aldus-assigned tags.
 *
 * If you want your private pseudo tags ``registered'' (i.e. added to
 * this file), please post a bug report via the tracking system at
 * http://www.remotesensing.org/libtiff/bugs.html with the appropriate
 * C definitions to add.
 */
#define  TIFFTAG_FAXMODE      65536  /* Group 3/4 format control */
#define      FAXMODE_CLASSIC  0x0000    /* default, include RTC */
#define      FAXMODE_NORTC  0x0001    /* no RTC at end of data */
#define      FAXMODE_NOEOL  0x0002    /* no EOL code at end of row */
#define      FAXMODE_BYTEALIGN  0x0004    /* byte align row */
#define      FAXMODE_WORDALIGN  0x0008    /* word align row */
#define      FAXMODE_CLASSF  FAXMODE_NORTC  /* TIFF Class F */
#define  TIFFTAG_JPEGQUALITY    65537  /* Compression quality level */
/* Note: quality level is on the IJG 0-100 scale.  Default value is 75 */
#define  TIFFTAG_JPEGCOLORMODE    65538  /* Auto RGB<=>YCbCr convert? */
#define      JPEGCOLORMODE_RAW  0x0000    /* no conversion (default) */
#define      JPEGCOLORMODE_RGB  0x0001    /* do auto conversion */
#define  TIFFTAG_JPEGTABLESMODE    65539  /* What to put in JPEGTables */
#define      JPEGTABLESMODE_QUANT 0x0001    /* include quantization tbls */
#define      JPEGTABLESMODE_HUFF  0x0002    /* include Huffman tbls */
/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */
#define  TIFFTAG_FAXFILLFUNC    65540  /* G3/G4 fill function */
#define  TIFFTAG_PIXARLOGDATAFMT    65549  /* PixarLogCodec I/O data sz */
#define      PIXARLOGDATAFMT_8BIT  0  /* regular u_char samples */
#define      PIXARLOGDATAFMT_8BITABGR  1  /* ABGR-order u_chars */
#define      PIXARLOGDATAFMT_11BITLOG  2  /* 11-bit log-encoded (raw) */
#define      PIXARLOGDATAFMT_12BITPICIO  3  /* as per PICIO (1.0==2048) */
#define      PIXARLOGDATAFMT_16BIT  4  /* signed short samples */
#define      PIXARLOGDATAFMT_FLOAT  5  /* IEEE float samples */
/* 65550-65556 are allocated to Oceana Matrix <dev@oceana.com> */
#define TIFFTAG_DCSIMAGERTYPE           65550   /* imager model & filter */
#define     DCSIMAGERMODEL_M3           0       /* M3 chip (1280 x 1024) */
#define     DCSIMAGERMODEL_M5           1       /* M5 chip (1536 x 1024) */
#define     DCSIMAGERMODEL_M6           2       /* M6 chip (3072 x 2048) */
#define     DCSIMAGERFILTER_IR          0       /* infrared filter */
#define     DCSIMAGERFILTER_MONO        1       /* monochrome filter */
#define     DCSIMAGERFILTER_CFA         2       /* color filter array */
#define     DCSIMAGERFILTER_OTHER       3       /* other filter */
#define TIFFTAG_DCSINTERPMODE           65551   /* interpolation mode */
#define     DCSINTERPMODE_NORMAL        0x0     /* whole image, default */
#define     DCSINTERPMODE_PREVIEW       0x1     /* preview of image (384x256) */
#define TIFFTAG_DCSBALANCEARRAY         65552   /* color balance values */
#define TIFFTAG_DCSCORRECTMATRIX        65553   /* color correction values */
#define TIFFTAG_DCSGAMMA                65554   /* gamma value */
#define TIFFTAG_DCSTOESHOULDERPTS       65555   /* toe & shoulder points */
#define TIFFTAG_DCSCALIBRATIONFD        65556   /* calibration file desc */
/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */
#define  TIFFTAG_ZIPQUALITY    65557  /* compression quality level */
#define  TIFFTAG_PIXARLOGQUALITY    65558  /* PixarLog uses same scale */
/* 65559 is allocated to Oceana Matrix <dev@oceana.com> */
#define TIFFTAG_DCSCLIPRECTANGLE  65559  /* area of image to acquire */
#define TIFFTAG_SGILOGDATAFMT    65560  /* SGILog user data format */
#define     SGILOGDATAFMT_FLOAT    0  /* IEEE float samples */
#define     SGILOGDATAFMT_16BIT    1  /* 16-bit samples */
#define     SGILOGDATAFMT_RAW    2  /* uninterpreted data */
#define     SGILOGDATAFMT_8BIT    3  /* 8-bit RGB monitor values */
#define TIFFTAG_SGILOGENCODE    65561 /* SGILog data encoding control*/
#define     SGILOGENCODE_NODITHER  0     /* do not dither encoded values*/
#define     SGILOGENCODE_RANDITHER  1     /* randomly dither encd values */
#endif /* _TIFF_ */

/* vim: set ts=8 sts=8 sw=8 noet: */