Home | History | Annotate | Download | only in source
      1 /*****************************************************************************/
      2 // Copyright 2006-2007 Adobe Systems Incorporated
      3 // All Rights Reserved.
      4 //
      5 // NOTICE:  Adobe permits you to use, modify, and distribute this file in
      6 // accordance with the terms of the Adobe license agreement accompanying it.
      7 /*****************************************************************************/
      8 
      9 /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_tag_values.h#1 $ */
     10 /* $DateTime: 2012/05/30 13:28:51 $ */
     11 /* $Change: 832332 $ */
     12 /* $Author: tknoll $ */
     13 
     14 /*****************************************************************************/
     15 
     16 #ifndef __dng_tag_values__
     17 #define __dng_tag_values__
     18 
     19 /*****************************************************************************/
     20 
     21 #include "dng_flags.h"
     22 
     23 /*****************************************************************************/
     24 
     25 // Values for NewSubFileType tag.
     26 
     27 enum
     28 	{
     29 
     30 	// The main image data.
     31 
     32 	sfMainImage					= 0,
     33 
     34 	// Preview image for the primary settings.
     35 
     36 	sfPreviewImage				= 1,
     37 
     38 	// Transparency mask
     39 
     40 	sfTransparencyMask			= 4,
     41 
     42 	// Preview Transparency mask
     43 
     44 	sfPreviewMask				= sfPreviewImage + sfTransparencyMask,
     45 
     46 	// Preview image for non-primary settings.
     47 
     48 	sfAltPreviewImage			= 0x10001
     49 
     50 	};
     51 
     52 /******************************************************************************/
     53 
     54 // Values for PhotometricInterpretation tag.
     55 
     56 enum
     57 	{
     58 
     59 	piWhiteIsZero 				= 0,
     60 	piBlackIsZero				= 1,
     61 	piRGB						= 2,
     62 	piRGBPalette				= 3,
     63 	piTransparencyMask			= 4,
     64 	piCMYK						= 5,
     65 	piYCbCr						= 6,
     66 	piCIELab					= 8,
     67 	piICCLab					= 9,
     68 
     69 	piCFA						= 32803,		// TIFF-EP spec
     70 
     71 	piLinearRaw					= 34892
     72 
     73 	};
     74 
     75 /******************************************************************************/
     76 
     77 // Values for PlanarConfiguration tag.
     78 
     79 enum
     80 	{
     81 
     82 	pcInterleaved				= 1,
     83 	pcPlanar					= 2,
     84 
     85 	// Ordering, using an RGB image as an example:
     86 	//
     87 	// RRRRRRRRRR
     88 	// GGGGGGGGGG
     89 	// BBBBBBBBBB
     90 	// RRRRRRRRRR
     91 	// GGGGGGGGGG
     92 	// BBBBBBBBBB
     93 	//
     94 	// The "Align16" variant additionally ensures that the offset of each
     95 	// plane's row is aligned to an integer multiple of 16 bytes from the
     96 	// beginning of the buffer.
     97 	pcRowInterleaved			= 100000,		// Internal use only
     98 	pcRowInterleavedAlign16		= 100001		// Internal use only
     99 
    100 	};
    101 
    102 /******************************************************************************/
    103 
    104 // Values for ExtraSamples tag.
    105 
    106 enum
    107 	{
    108 
    109 	esUnspecified				= 0,
    110 	esAssociatedAlpha			= 1,
    111 	esUnassociatedAlpha			= 2
    112 
    113 	};
    114 
    115 /******************************************************************************/
    116 
    117 // Values for SampleFormat tag.
    118 
    119 enum
    120 	{
    121 
    122 	sfUnsignedInteger			= 1,
    123 	sfSignedInteger				= 2,
    124 	sfFloatingPoint				= 3,
    125 	sfUndefined					= 4
    126 
    127 	};
    128 
    129 /******************************************************************************/
    130 
    131 // Values for Compression tag.
    132 
    133 enum
    134 	{
    135 
    136 	ccUncompressed				= 1,
    137 	ccLZW						= 5,
    138 	ccOldJPEG					= 6,
    139 	ccJPEG						= 7,
    140 	ccDeflate					= 8,
    141 	ccPackBits					= 32773,
    142 	ccOldDeflate				= 32946,
    143 
    144 	// Used in DNG files in places that allow lossless JPEG.
    145 
    146 	ccLossyJPEG					= 34892
    147 
    148 	};
    149 
    150 /******************************************************************************/
    151 
    152 // Values for Predictor tag.
    153 
    154 enum
    155 	{
    156 
    157 	cpNullPredictor				= 1,
    158 	cpHorizontalDifference		= 2,
    159 	cpFloatingPoint				= 3,
    160 
    161 	cpHorizontalDifferenceX2	= 34892,
    162 	cpHorizontalDifferenceX4	= 34893,
    163 	cpFloatingPointX2			= 34894,
    164 	cpFloatingPointX4			= 34895
    165 
    166 	};
    167 
    168 /******************************************************************************/
    169 
    170 // Values for ResolutionUnit tag.
    171 
    172 enum
    173 	{
    174 
    175 	ruNone						= 1,
    176 	ruInch						= 2,
    177 	ruCM						= 3,
    178 	ruMM						= 4,
    179 	ruMicroM					= 5
    180 
    181 	};
    182 
    183 /******************************************************************************/
    184 
    185 // Values for LightSource tag.
    186 
    187 enum
    188 	{
    189 
    190 	lsUnknown					=  0,
    191 
    192 	lsDaylight					=  1,
    193 	lsFluorescent				=  2,
    194 	lsTungsten					=  3,
    195 	lsFlash						=  4,
    196 	lsFineWeather				=  9,
    197 	lsCloudyWeather				= 10,
    198 	lsShade						= 11,
    199 	lsDaylightFluorescent		= 12,		// D  5700 - 7100K
    200 	lsDayWhiteFluorescent		= 13,		// N  4600 - 5500K
    201 	lsCoolWhiteFluorescent		= 14,		// W  3800 - 4500K
    202 	lsWhiteFluorescent			= 15,		// WW 3250 - 3800K
    203 	lsWarmWhiteFluorescent		= 16,		// L  2600 - 3250K
    204 	lsStandardLightA			= 17,
    205 	lsStandardLightB			= 18,
    206 	lsStandardLightC			= 19,
    207 	lsD55						= 20,
    208 	lsD65						= 21,
    209 	lsD75						= 22,
    210 	lsD50						= 23,
    211 	lsISOStudioTungsten			= 24,
    212 
    213 	lsOther						= 255
    214 
    215 	};
    216 
    217 /******************************************************************************/
    218 
    219 // Values for ExposureProgram tag.
    220 
    221 enum
    222 	{
    223 
    224 	epUnidentified				= 0,
    225 	epManual					= 1,
    226 	epProgramNormal				= 2,
    227 	epAperturePriority			= 3,
    228 	epShutterPriority			= 4,
    229 	epProgramCreative			= 5,
    230 	epProgramAction				= 6,
    231 	epPortraitMode				= 7,
    232 	epLandscapeMode				= 8
    233 
    234 	};
    235 
    236 /******************************************************************************/
    237 
    238 // Values for MeteringMode tag.
    239 
    240 enum
    241 	{
    242 
    243 	mmUnidentified				= 0,
    244 	mmAverage					= 1,
    245 	mmCenterWeightedAverage		= 2,
    246 	mmSpot						= 3,
    247 	mmMultiSpot					= 4,
    248 	mmPattern					= 5,
    249 	mmPartial					= 6,
    250 
    251 	mmOther						= 255
    252 
    253 	};
    254 
    255 /******************************************************************************/
    256 
    257 // CFA color codes from the TIFF/EP specification.
    258 
    259 enum ColorKeyCode
    260 	{
    261 
    262 	colorKeyRed					= 0,
    263 	colorKeyGreen				= 1,
    264 	colorKeyBlue				= 2,
    265 	colorKeyCyan				= 3,
    266 	colorKeyMagenta				= 4,
    267 	colorKeyYellow				= 5,
    268 	colorKeyWhite				= 6,
    269 
    270 	colorKeyMaxEnum				= 0xFF
    271 
    272 	};
    273 
    274 /*****************************************************************************/
    275 
    276 // Values for the SensitivityType tag.
    277 
    278 enum
    279 	{
    280 
    281 	stUnknown					= 0,
    282 
    283 	stStandardOutputSensitivity = 1,
    284 	stRecommendedExposureIndex	= 2,
    285 	stISOSpeed					= 3,
    286 	stSOSandREI					= 4,
    287 	stSOSandISOSpeed			= 5,
    288 	stREIandISOSpeed			= 6,
    289 	stSOSandREIandISOSpeed		= 7
    290 
    291 	};
    292 
    293 /*****************************************************************************/
    294 
    295 // Values for the ColorimetricReference tag.  It specifies the colorimetric
    296 // reference used for images with PhotometricInterpretation values of CFA
    297 // or LinearRaw.
    298 
    299 enum
    300 	{
    301 
    302 	// Scene referred (default):
    303 
    304 	crSceneReferred				= 0,
    305 
    306 	// Output referred using the parameters of the ICC profile PCS.
    307 
    308 	crICCProfilePCS				= 1
    309 
    310 	};
    311 
    312 /*****************************************************************************/
    313 
    314 // Values for the ProfileEmbedPolicy tag.
    315 
    316 enum
    317 	{
    318 
    319 	// Freely embedable and copyable into installations that encounter this
    320 	// profile, so long as the profile is only used to process DNG files.
    321 
    322 	pepAllowCopying				= 0,
    323 
    324 	// Can be embeded in a DNG for portable processing, but cannot be used
    325 	// to process other files that the profile is not embedded in.
    326 
    327 	pepEmbedIfUsed				= 1,
    328 
    329 	// Can only be used if installed on the machine processing the file.
    330 	// Note that this only applies to stand-alone profiles.  Profiles that
    331 	// are already embedded inside a DNG file allowed to remain embedded
    332 	// in that DNG, even if the DNG is resaved.
    333 
    334 	pepEmbedNever				= 2,
    335 
    336 	// No restricts on profile use or embedding.
    337 
    338 	pepNoRestrictions			= 3
    339 
    340 	};
    341 
    342 /*****************************************************************************/
    343 
    344 // Values for the ProfileHueSatMapEncoding and ProfileLookTableEncoding tags.
    345 
    346 enum
    347 	{
    348 
    349 	// 1. Convert linear ProPhoto RGB values to HSV.
    350 	// 2. Use the HSV coordinates to index into the color table.
    351 	// 3. Apply color table result to the original HSV values.
    352 	// 4. Convert modified HSV values back to linear ProPhoto RGB.
    353 
    354 	encoding_Linear				= 0,
    355 
    356 	// 1. Convert linear ProPhoto RGB values to HSV.
    357 	// 2. Encode V coordinate using sRGB encoding curve.
    358 	// 3. Use the encoded HSV coordinates to index into the color table.
    359 	// 4. Apply color table result to the encoded values from step 2.
    360 	// 5. Decode V coordinate using sRGB decoding curve (inverse of step 2).
    361 	// 6. Convert HSV values back to linear ProPhoto RGB (inverse of step 1).
    362 
    363 	encoding_sRGB				= 1
    364 
    365 	};
    366 
    367 /*****************************************************************************/
    368 
    369 // Values for the DefaultBlackRender tag.
    370 
    371 enum
    372 	{
    373 
    374 	// By default, the renderer applies (possibly auto-calculated) black subtraction
    375 	// prior to the look table.
    376 
    377 	defaultBlackRender_Auto		= 0,
    378 
    379 	// By default, the renderer does not apply any black subtraction prior to the
    380 	// look table.
    381 
    382 	defaultBlackRender_None		= 1
    383 
    384 	};
    385 
    386 /*****************************************************************************/
    387 
    388 // Values for the PreviewColorSpace tag.
    389 
    390 enum PreviewColorSpaceEnum
    391 	{
    392 
    393 	previewColorSpace_Unknown		= 0,
    394 	previewColorSpace_GrayGamma22	= 1,
    395 	previewColorSpace_sRGB			= 2,
    396 	previewColorSpace_AdobeRGB      = 3,
    397 	previewColorSpace_ProPhotoRGB	= 4,
    398 
    399 	previewColorSpace_LastValid		= previewColorSpace_ProPhotoRGB,
    400 
    401 	previewColorSpace_MaxEnum		= 0xFFFFFFFF
    402 
    403 	};
    404 
    405 /*****************************************************************************/
    406 
    407 // Values for CacheVersion tag.
    408 
    409 enum
    410 	{
    411 
    412 	// The low-16 bits are a rendering version number.
    413 
    414 	cacheVersionMask				= 0x0FFFF,
    415 
    416 	// Default cache version.
    417 
    418 	cacheVersionDefault				= 0x00100,
    419 
    420 	// Is this an integer preview of a floating point image?
    421 
    422 	cacheVersionDefloated			= 0x10000,
    423 
    424 	// Is this an flattening preview of an image with tranparency?
    425 
    426 	cacheVersionFlattened			= 0x20000,
    427 
    428 	// Was this preview build using a the default baseline multi-channel
    429 	// CFA merge (i.e. only using the first channel)?
    430 
    431 	cacheVersionFakeMerge			= 0x40000
    432 
    433 	};
    434 
    435 /*****************************************************************************/
    436 
    437 // TIFF-style byte order markers.
    438 
    439 enum
    440 	{
    441 
    442 	byteOrderII					= 0x4949,		// 'II'
    443 	byteOrderMM					= 0x4D4D		// 'MM'
    444 
    445 	};
    446 
    447 /*****************************************************************************/
    448 
    449 // "Magic" numbers.
    450 
    451 enum
    452 	{
    453 
    454 	// DNG related.
    455 
    456 	magicTIFF					= 42,			// TIFF (and DNG)
    457 	magicExtendedProfile		= 0x4352,		// 'CR'
    458 	magicRawCache				= 1022,			// Raw cache (fast load data)
    459 
    460 	// Other raw formats - included here so the DNG SDK can parse them.
    461 
    462 	magicPanasonic				= 85,
    463 	magicOlympusA				= 0x4F52,
    464 	magicOlympusB				= 0x5352
    465 
    466 	};
    467 
    468 /*****************************************************************************/
    469 
    470 // DNG Version numbers
    471 
    472 enum
    473 	{
    474 
    475 	dngVersion_None				= 0,
    476 
    477 	dngVersion_1_0_0_0			= 0x01000000,
    478 	dngVersion_1_1_0_0			= 0x01010000,
    479 	dngVersion_1_2_0_0			= 0x01020000,
    480 	dngVersion_1_3_0_0			= 0x01030000,
    481 	dngVersion_1_4_0_0			= 0x01040000,
    482 
    483 	dngVersion_Current			= dngVersion_1_4_0_0,
    484 
    485 	dngVersion_SaveDefault		= dngVersion_Current
    486 
    487 	};
    488 
    489 /*****************************************************************************/
    490 
    491 #endif
    492 
    493 /*****************************************************************************/
    494