20 |
20 |
*/
|
21 |
21 |
/*
|
22 |
22 |
File: tags.cpp
|
23 |
|
Version: $Rev$
|
|
23 |
Version: $Rev: 2455 $
|
24 |
24 |
Author(s): Andreas Huggel (ahu) <ahuggel@gmx.net>
|
25 |
25 |
Gilles Caulier (gc) <caulier dot gilles at gmail dot com>
|
26 |
26 |
History: 15-Jan-04, ahu: created
|
... | ... | |
28 |
28 |
*/
|
29 |
29 |
// *****************************************************************************
|
30 |
30 |
#include "rcsid_int.hpp"
|
31 |
|
EXIV2_RCSID("@(#) $Id$")
|
|
31 |
EXIV2_RCSID("@(#) $Id: tags.cpp 2455 2011-02-13 14:39:15Z ahuggel $")
|
32 |
32 |
|
33 |
33 |
// *****************************************************************************
|
34 |
34 |
// included header files
|
... | ... | |
1207 |
1207 |
"tag pair, except they are for use by raw file editors rather than "
|
1208 |
1208 |
"camera manufacturers."),
|
1209 |
1209 |
ifd0Id, dngTags, signedRational, -1, printValue), // DNG tag
|
|
1210 |
TagInfo(0xc6bf, "ColorimetricReference", N_("Colorimetric Reference"),
|
|
1211 |
N_("The DNG color model documents a transform between camera colors and "
|
|
1212 |
"CIE XYZ values. This tag describes the colorimetric reference for the "
|
|
1213 |
"CIE XYZ values. 0 = The XYZ values are scene-referred. 1 = The XYZ values "
|
|
1214 |
"are output-referred, using the ICC profile perceptual dynamic range. This "
|
|
1215 |
"tag allows output-referred data to be stored in DNG files and still processed "
|
|
1216 |
"correctly by DNG readers."),
|
|
1217 |
ifd0Id, dngTags, unsignedShort, 0, printValue), // DNG tag
|
|
1218 |
TagInfo(0xc6f3, "CameraCalibrationSignature", N_("Camera Calibration Signature"),
|
|
1219 |
N_("A UTF-8 encoded string associated with the CameraCalibration1 and "
|
|
1220 |
"CameraCalibration2 tags. The CameraCalibration1 and CameraCalibration2 tags "
|
|
1221 |
"should only be used in the DNG color transform if the string stored in the "
|
|
1222 |
"CameraCalibrationSignature tag exactly matches the string stored in the "
|
|
1223 |
"ProfileCalibrationSignature tag for the selected camera profile."),
|
|
1224 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1225 |
TagInfo(0xc6f4, "ProfileCalibrationSignature", N_("Profile Calibration Signature"),
|
|
1226 |
N_("A UTF-8 encoded string associated with the camera profile tags. The "
|
|
1227 |
"CameraCalibration1 and CameraCalibration2 tags should only be used in the "
|
|
1228 |
"DNG color transfer if the string stored in the CameraCalibrationSignature "
|
|
1229 |
"tag exactly matches the string stored in the ProfileCalibrationSignature tag "
|
|
1230 |
"for the selected camera profile."),
|
|
1231 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1232 |
TagInfo(0xc6f6, "AsShotProfileName", N_("As Shot Profile Name"),
|
|
1233 |
N_("A UTF-8 encoded string containing the name of the \"as shot\" camera "
|
|
1234 |
"profile, if any."),
|
|
1235 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1236 |
TagInfo(0xc6f7, "NoiseReductionApplied", N_("Noise Reduction Applied"),
|
|
1237 |
N_("This tag indicates how much noise reduction has been applied to the raw "
|
|
1238 |
"data on a scale of 0.0 to 1.0. A 0.0 value indicates that no noise reduction "
|
|
1239 |
"has been applied. A 1.0 value indicates that the \"ideal\" amount of noise "
|
|
1240 |
"reduction has been applied, i.e. that the DNG reader should not apply "
|
|
1241 |
"additional noise reduction by default. A value of 0/0 indicates that this "
|
|
1242 |
"parameter is unknown."),
|
|
1243 |
ifd0Id, dngTags, unsignedRational, 1, printValue), // DNG tag
|
|
1244 |
TagInfo(0xc6f8, "ProfileName", N_("Profile Name"),
|
|
1245 |
N_("A UTF-8 encoded string containing the name of the camera profile. This "
|
|
1246 |
"tag is optional if there is only a single camera profile stored in the file "
|
|
1247 |
"but is required for all camera profiles if there is more than one camera "
|
|
1248 |
"profile stored in the file."),
|
|
1249 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1250 |
TagInfo(0xc6f9, "ProfileHueSatMapDims", N_("Profile Hue Sat Map Dims"),
|
|
1251 |
N_("This tag specifies the number of input samples in each dimension of the "
|
|
1252 |
"hue/saturation/value mapping tables. The data for these tables are stored "
|
|
1253 |
"in ProfileHueSatMapData1 and ProfileHueSatMapData2 tags. The most common "
|
|
1254 |
"case has ValueDivisions equal to 1, so only hue and saturation are used as "
|
|
1255 |
"inputs to the mapping table."),
|
|
1256 |
ifd0Id, dngTags, unsignedLong, 3, printValue), // DNG tag
|
|
1257 |
TagInfo(0xc6fa, "ProfileHueSatMapData1", N_("Profile Hue Sat Map Data 1"),
|
|
1258 |
N_("This tag contains the data for the first hue/saturation/value mapping "
|
|
1259 |
"table. Each entry of the table contains three 32-bit IEEE floating-point "
|
|
1260 |
"values. The first entry is hue shift in degrees; the second entry is "
|
|
1261 |
"saturation scale factor; and the third entry is a value scale factor. The "
|
|
1262 |
"table entries are stored in the tag in nested loop order, with the value "
|
|
1263 |
"divisions in the outer loop, the hue divisions in the middle loop, and the "
|
|
1264 |
"saturation divisions in the inner loop. All zero input saturation entries "
|
|
1265 |
"are required to have a value scale factor of 1.0."),
|
|
1266 |
ifd0Id, dngTags, tiffFloat, 0, printValue), // DNG tag
|
|
1267 |
TagInfo(0xc6fb, "ProfileHueSatMapData2", N_("Profile Hue Sat Map Data 2"),
|
|
1268 |
N_("This tag contains the data for the second hue/saturation/value mapping "
|
|
1269 |
"table. Each entry of the table contains three 32-bit IEEE floating-point "
|
|
1270 |
"values. The first entry is hue shift in degrees; the second entry is a "
|
|
1271 |
"saturation scale factor; and the third entry is a value scale factor. The "
|
|
1272 |
"table entries are stored in the tag in nested loop order, with the value "
|
|
1273 |
"divisions in the outer loop, the hue divisions in the middle loop, and the "
|
|
1274 |
"saturation divisions in the inner loop. All zero input saturation entries "
|
|
1275 |
"are required to have a value scale factor of 1.0."),
|
|
1276 |
ifd0Id, dngTags, tiffFloat, 0, printValue), // DNG tag
|
|
1277 |
TagInfo(0xc6fc, "ProfileToneCurve", N_("Profile Tone Curve"),
|
|
1278 |
N_("This tag contains a default tone curve that can be applied while "
|
|
1279 |
"processing the image as a starting point for user adjustments. The curve "
|
|
1280 |
"is specified as a list of 32-bit IEEE floating-point value pairs in linear "
|
|
1281 |
"gamma. Each sample has an input value in the range of 0.0 to 1.0, and an "
|
|
1282 |
"output value in the range of 0.0 to 1.0. The first sample is required to be "
|
|
1283 |
"(0.0, 0.0), and the last sample is required to be (1.0, 1.0). Interpolated "
|
|
1284 |
"the curve using a cubic spline."),
|
|
1285 |
ifd0Id, dngTags, tiffFloat, -1, printValue), // DNG tag
|
|
1286 |
TagInfo(0xc6fd, "ProfileEmbedPolicy", N_("Profile Embed Policy"),
|
|
1287 |
N_("This tag contains information about the usage rules for the associated "
|
|
1288 |
"camera profile."),
|
|
1289 |
ifd0Id, dngTags, unsignedLong, 1, printValue), // DNG tag
|
|
1290 |
TagInfo(0xc6fe, "ProfileCopyright", N_("Profile Copyright"),
|
|
1291 |
N_("A UTF-8 encoded string containing the copyright information for the "
|
|
1292 |
"camera profile. This string always should be preserved along with the other "
|
|
1293 |
"camera profile tags."),
|
|
1294 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1295 |
TagInfo(0xc714, "ForwardMatrix1", N_("Forward Matrix 1"),
|
|
1296 |
N_("This tag defines a matrix that maps white balanced camera colors to XYZ "
|
|
1297 |
"D50 colors."),
|
|
1298 |
ifd0Id, dngTags, signedRational, -1, printValue), // DNG tag
|
|
1299 |
TagInfo(0xc715, "ForwardMatrix2", N_("Forward Matrix 2"),
|
|
1300 |
N_("This tag defines a matrix that maps white balanced camera colors to XYZ "
|
|
1301 |
"D50 colors."),
|
|
1302 |
ifd0Id, dngTags, signedRational, -1, printValue), // DNG tag
|
|
1303 |
TagInfo(0xc716, "PreviewApplicationName", N_("Preview Application Name"),
|
|
1304 |
N_("A UTF-8 encoded string containing the name of the application that "
|
|
1305 |
"created the preview stored in the IFD."),
|
|
1306 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1307 |
TagInfo(0xc717, "PreviewApplicationVersion", N_("Preview Application Version"),
|
|
1308 |
N_("A UTF-8 encoded string containing the version number of the application "
|
|
1309 |
"that created the preview stored in the IFD."),
|
|
1310 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1311 |
TagInfo(0xc718, "PreviewSettingsName", N_("Preview Settings Name"),
|
|
1312 |
N_("A UTF-8 encoded string containing the name of the conversion settings "
|
|
1313 |
"(for example, snapshot name) used for the preview stored in the IFD."),
|
|
1314 |
ifd0Id, dngTags, unsignedByte, 0, printValue), // DNG tag
|
|
1315 |
TagInfo(0xc719, "PreviewSettingsDigest", N_("Preview Settings Digest"),
|
|
1316 |
N_("A unique ID of the conversion settings (for example, MD5 digest) used "
|
|
1317 |
"to render the preview stored in the IFD."),
|
|
1318 |
ifd0Id, dngTags, unsignedByte, 16, printValue), // DNG tag
|
|
1319 |
TagInfo(0xc71a, "PreviewColorSpace", N_("Preview Color Space"),
|
|
1320 |
N_("This tag specifies the color space in which the rendered preview in this "
|
|
1321 |
"IFD is stored. The default value for this tag is sRGB for color previews "
|
|
1322 |
"and Gray Gamma 2.2 for monochrome previews."),
|
|
1323 |
ifd0Id, dngTags, unsignedLong, 1, printValue), // DNG tag
|
|
1324 |
TagInfo(0xc71b, "PreviewDateTime", N_("Preview Date Time"),
|
|
1325 |
N_("This tag is an ASCII string containing the name of the date/time at which "
|
|
1326 |
"the preview stored in the IFD was rendered. The date/time is encoded using "
|
|
1327 |
"ISO 8601 format."),
|
|
1328 |
ifd0Id, dngTags, asciiString, 0, printValue), // DNG tag
|
|
1329 |
TagInfo(0xc71c, "RawImageDigest", N_("Raw Image Digest"),
|
|
1330 |
N_("This tag is an MD5 digest of the raw image data. All pixels in the image "
|
|
1331 |
"are processed in row-scan order. Each pixel is zero padded to 16 or 32 bits "
|
|
1332 |
"deep (16-bit for data less than or equal to 16 bits deep, 32-bit otherwise). "
|
|
1333 |
"The data for each pixel is processed in little-endian byte order."),
|
|
1334 |
ifd0Id, dngTags, undefined, 16, printValue), // DNG tag
|
|
1335 |
TagInfo(0xc71d, "OriginalRawFileDigest", N_("Original Raw File Digest"),
|
|
1336 |
N_("This tag is an MD5 digest of the data stored in the OriginalRawFileData "
|
|
1337 |
"tag."),
|
|
1338 |
ifd0Id, dngTags, undefined, 16, printValue), // DNG tag
|
|
1339 |
TagInfo(0xc71e, "SubTileBlockSize", N_("Sub Tile Block Size"),
|
|
1340 |
N_("Normally, the pixels within a tile are stored in simple row-scan order. "
|
|
1341 |
"This tag specifies that the pixels within a tile should be grouped first "
|
|
1342 |
"into rectangular blocks of the specified size. These blocks are stored in "
|
|
1343 |
"row-scan order. Within each block, the pixels are stored in row-scan order. "
|
|
1344 |
"The use of a non-default value for this tag requires setting the "
|
|
1345 |
"DNGBackwardVersion tag to at least 1.2.0.0."),
|
|
1346 |
ifd0Id, dngTags, unsignedLong, 2, printValue), // DNG tag
|
|
1347 |
TagInfo(0xc71f, "RowInterleaveFactor", N_("Row Interleave Factor"),
|
|
1348 |
N_("This tag specifies that rows of the image are stored in interleaved "
|
|
1349 |
"order. The value of the tag specifies the number of interleaved fields. "
|
|
1350 |
"The use of a non-default value for this tag requires setting the "
|
|
1351 |
"DNGBackwardVersion tag to at least 1.2.0.0."),
|
|
1352 |
ifd0Id, dngTags, unsignedLong, 1, printValue), // DNG tag
|
|
1353 |
TagInfo(0xc725, "ProfileLookTableDims", N_("Profile Look Table Dims"),
|
|
1354 |
N_("This tag specifies the number of input samples in each dimension of a "
|
|
1355 |
"default \"look\" table. The data for this table is stored in the "
|
|
1356 |
"ProfileLookTableData tag."),
|
|
1357 |
ifd0Id, dngTags, unsignedLong, 3, printValue), // DNG tag
|
|
1358 |
TagInfo(0xc726, "ProfileLookTableData", N_("Profile Look Table Data"),
|
|
1359 |
N_("This tag contains a default \"look\" table that can be applied while "
|
|
1360 |
"processing the image as a starting point for user adjustment. This table "
|
|
1361 |
"uses the same format as the tables stored in the ProfileHueSatMapData1 "
|
|
1362 |
"and ProfileHueSatMapData2 tags, and is applied in the same color space. "
|
|
1363 |
"However, it should be applied later in the processing pipe, after any "
|
|
1364 |
"exposure compensation and/or fill light stages, but before any tone curve "
|
|
1365 |
"stage. Each entry of the table contains three 32-bit IEEE floating-point "
|
|
1366 |
"values. The first entry is hue shift in degrees, the second entry is a "
|
|
1367 |
"saturation scale factor, and the third entry is a value scale factor. "
|
|
1368 |
"The table entries are stored in the tag in nested loop order, with the "
|
|
1369 |
"value divisions in the outer loop, the hue divisions in the middle loop, "
|
|
1370 |
"and the saturation divisions in the inner loop. All zero input saturation "
|
|
1371 |
"entries are required to have a value scale factor of 1.0."),
|
|
1372 |
ifd0Id, dngTags, tiffFloat, -1, printValue), // DNG tag
|
|
1373 |
TagInfo(0xc740, "OpcodeList1", N_("Opcode List 1"),
|
|
1374 |
N_("Specifies the list of opcodes that should be applied to the raw image, "
|
|
1375 |
"as read directly from the file."),
|
|
1376 |
ifd0Id, dngTags, undefined, -1, printValue), // DNG tag
|
|
1377 |
TagInfo(0xc741, "OpcodeList2", N_("Opcode List 2"),
|
|
1378 |
N_("Specifies the list of opcodes that should be applied to the raw image, "
|
|
1379 |
"just after it has been mapped to linear reference values."),
|
|
1380 |
ifd0Id, dngTags, undefined, -1, printValue), // DNG tag
|
|
1381 |
TagInfo(0xc74e, "OpcodeList3", N_("Opcode List 3"),
|
|
1382 |
N_("Specifies the list of opcodes that should be applied to the raw image, "
|
|
1383 |
"just after it has been demosaiced."),
|
|
1384 |
ifd0Id, dngTags, undefined, -1, printValue), // DNG tag
|
|
1385 |
TagInfo(0xc761, "NoiseProfile", N_("Noise Profile"),
|
|
1386 |
N_("NoiseProfile describes the amount of noise in a raw image. Specifically, "
|
|
1387 |
"this tag models the amount of signal-dependent photon (shot) noise and "
|
|
1388 |
"signal-independent sensor readout noise, two common sources of noise in "
|
|
1389 |
"raw images. The model assumes that the noise is white and spatially "
|
|
1390 |
"independent, ignoring fixed pattern effects and other sources of noise (e.g., "
|
|
1391 |
"pixel response non-uniformity, spatially-dependent thermal effects, etc.)."),
|
|
1392 |
ifd0Id, dngTags, tiffDouble, -1, printValue), // DNG tag
|
1210 |
1393 |
// End of list marker
|
1211 |
1394 |
TagInfo(0xffff, "(UnknownIfdTag)", N_("Unknown IFD tag"),
|
1212 |
1395 |
N_("Unknown IFD tag"),
|
... | ... | |
1619 |
1802 |
"each image. It is recorded as an ASCII string equivalent "
|
1620 |
1803 |
"to hexadecimal notation and 128-bit fixed length."),
|
1621 |
1804 |
exifId, otherTags, asciiString, 33, printValue),
|
|
1805 |
TagInfo(0xa430, "CameraOwnerName", N_("Camera Owner Name"),
|
|
1806 |
N_("This tag records the owner of a camera used in "
|
|
1807 |
"photography as an ASCII string."),
|
|
1808 |
exifId, otherTags, asciiString, 0, printValue),
|
|
1809 |
TagInfo(0xa431, "BodySerialNumber", N_("Body Serial Number"),
|
|
1810 |
N_("This tag records the serial number of the body of the camera "
|
|
1811 |
"that was used in photography as an ASCII string."),
|
|
1812 |
exifId, otherTags, asciiString, 0, printValue),
|
|
1813 |
TagInfo(0xa432, "LensSpecification", N_("Lens Specification"),
|
|
1814 |
N_("This tag notes minimum focal length, maximum focal length, "
|
|
1815 |
"minimum F number in the minimum focal length, and minimum F number "
|
|
1816 |
"in the maximum focal length, which are specification information "
|
|
1817 |
"for the lens that was used in photography. When the minimum F "
|
|
1818 |
"number is unknown, the notation is 0/0"),
|
|
1819 |
exifId, otherTags, unsignedRational, 4, printValue),
|
|
1820 |
TagInfo(0xa433, "LensMake", N_("Lens Make"),
|
|
1821 |
N_("This tag records the lens manufactor as an ASCII string."),
|
|
1822 |
exifId, otherTags, asciiString, 0, printValue),
|
|
1823 |
TagInfo(0xa434, "LensModel", N_("Lens Model"),
|
|
1824 |
N_("This tag records the lens's model name and model number as an "
|
|
1825 |
"ASCII string."),
|
|
1826 |
exifId, otherTags, asciiString, 0, printValue),
|
|
1827 |
TagInfo(0xa435, "LensSerialNumber", N_("Lens Serial Number"),
|
|
1828 |
N_("This tag records the serial number of the interchangeable lens "
|
|
1829 |
"that was used in photography as an ASCII string."),
|
|
1830 |
exifId, otherTags, asciiString, 0, printValue),
|
1622 |
1831 |
// End of list marker
|
1623 |
1832 |
TagInfo(0xffff, "(UnknownExifTag)", N_("Unknown Exif tag"),
|
1624 |
1833 |
N_("Unknown Exif tag"),
|