Adding DNG 1.6 triple-illuminant calibration tags

This commit is contained in:
Miloš Komarčević 2021-03-02 08:59:19 +01:00
parent c6de72fc30
commit 2b38d221dc

View File

@ -1212,14 +1212,18 @@ namespace Exiv2 {
N_("The illuminant used for the first set of color calibration tags "
"(ColorMatrix1, CameraCalibration1, ReductionMatrix1). The legal "
"values for this tag are the same as the legal values for the "
"LightSource EXIF tag."),
"LightSource EXIF tag. If set to 255 (Other), then the IFD must "
"also include a IlluminantData1 tag to specify the x-y chromaticity "
"or spectral power distribution function for this illuminant."),
ifd0Id, dngTags, unsignedShort, 1, EXV_PRINT_TAG(exifLightSource)), // DNG tag
TagInfo(0xc65b, "CalibrationIlluminant2", N_("Calibration Illuminant 2"),
N_("The illuminant used for an optional second set of color calibration "
"tags (ColorMatrix2, CameraCalibration2, ReductionMatrix2). The legal "
"values for this tag are the same as the legal values for the "
"CalibrationIlluminant1 tag; however, if both are included, neither "
"is allowed to have a value of 0 (unknown)."),
"is allowed to have a value of 0 (unknown). If set to 255 (Other), then "
"the IFD must also include a IlluminantData2 tag to specify the x-y "
"chromaticity or spectral power distribution function for this illuminant."),
ifd0Id, dngTags, unsignedShort, 1, EXV_PRINT_TAG(exifLightSource)), // DNG tag
TagInfo(0xc65c, "BestQualityScale", N_("Best Quality Scale"),
N_("For some cameras, the best possible image quality is not achieved "
@ -1350,9 +1354,9 @@ namespace Exiv2 {
TagInfo(0xc6f9, "ProfileHueSatMapDims", N_("Profile Hue Sat Map Dims"),
N_("This tag specifies the number of input samples in each dimension of the "
"hue/saturation/value mapping tables. The data for these tables are stored "
"in ProfileHueSatMapData1 and ProfileHueSatMapData2 tags. The most common "
"case has ValueDivisions equal to 1, so only hue and saturation are used as "
"inputs to the mapping table."),
"in ProfileHueSatMapData1, ProfileHueSatMapData2 and ProfileHueSatMapData3 "
"tags. The most common case has ValueDivisions equal to 1, so only hue and "
"saturation are used as inputs to the mapping table."),
ifd0Id, dngTags, unsignedLong, 3, printValue), // DNG tag
TagInfo(0xc6fa, "ProfileHueSatMapData1", N_("Profile Hue Sat Map Data 1"),
N_("This tag contains the data for the first hue/saturation/value mapping "
@ -1628,6 +1632,71 @@ namespace Exiv2 {
TagInfo(0xcd30, "SemanticInstanceID", N_("Semantic Instance ID"),
N_("A string that identifies a specific instance in a semantic mask."),
ifd0Id, dngTags, asciiString, 0, printValue), // DNG 1.6 tag
TagInfo(0xcd31, "CalibrationIlluminant3", N_("Calibration Illuminant 3"),
N_("The illuminant used for an optional thrid set of color calibration "
"tags (ColorMatrix3, CameraCalibration3, ReductionMatrix3). The legal "
"values for this tag are the same as the legal values for the "
"LightSource EXIF tag; CalibrationIlluminant1 and CalibrationIlluminant2 "
"must also be present. If set to 255 (Other), then the IFD must also "
"include a IlluminantData3 tag to specify the x-y chromaticity or "
"spectral power distribution function for this illuminant."),
ifd0Id, dngTags, unsignedShort, 1, EXV_PRINT_TAG(exifLightSource)), // DNG 1.6 tag
TagInfo(0xcd32, "CameraCalibration3", N_("Camera Calibration 3"),
N_("CameraCalibration3 defines a calibration matrix that transforms "
"reference camera native space values to individual camera native "
"space values under the third calibration illuminant. The matrix is "
"stored in row scan order. This matrix is stored separately from the "
"matrix specified by the ColorMatrix3 tag to allow raw converters to "
"swap in replacement color matrices based on UniqueCameraModel tag, "
"while still taking advantage of any per-individual camera calibration "
"performed by the camera manufacturer."),
ifd0Id, dngTags, signedRational, -1, printValue), // DNG 1.6 tag
TagInfo(0xcd33, "ColorMatrix3", N_("Color Matrix 3"),
N_("ColorMatrix3 defines a transformation matrix that converts XYZ "
"values to reference camera native color space values, under the "
"third calibration illuminant. The matrix values are stored in row "
"scan order."),
ifd0Id, dngTags, signedRational, -1, printValue), // DNG 1.6 tag
TagInfo(0xcd34, "ForwardMatrix3", N_("Forward Matrix 3"),
N_("This tag defines a matrix that maps white balanced camera colors to XYZ "
"D50 colors."),
ifd0Id, dngTags, signedRational, -1, printValue), // DNG 1.6 tag
TagInfo(0xcd35, "IlluminantData1", N_("Illuminant Data 1"),
N_("When the CalibrationIlluminant1 tag is set to 255 (Other), "
"then the IlluminantData1 tag is required and specifies the data "
"for the first illuminant. Otherwise, this tag is ignored. The "
"illuminant data may be specified as either a x-y chromaticity "
"coordinate or as a spectral power distribution function."),
ifd0Id, dngTags, undefined, -1, printValue), // DNG 1.6 tag
TagInfo(0xcd36, "IlluminantData2", N_("Illuminant Data 2"),
N_("When the CalibrationIlluminant2 tag is set to 255 (Other), "
"then the IlluminantData2 tag is required and specifies the data "
"for the second illuminant. Otherwise, this tag is ignored. The "
"format of the data is the same as IlluminantData1."),
ifd0Id, dngTags, undefined, -1, printValue), // DNG 1.6 tag
TagInfo(0xcd37, "IlluminantData3", N_("Illuminant Data 3"),
N_("When the CalibrationIlluminant3 tag is set to 255 (Other), "
"then the IlluminantData3 tag is required and specifies the data "
"for the third illuminant. Otherwise, this tag is ignored. The "
"format of the data is the same as IlluminantData1."),
ifd0Id, dngTags, undefined, -1, printValue), // DNG 1.6 tag
TagInfo(0xcd39, "ProfileHueSatMapData3", N_("Profile Hue Sat Map Data 3"),
N_("This tag contains the data for the third hue/saturation/value mapping "
"table. Each entry of the table contains three 32-bit IEEE floating-point "
"values. The first entry is hue shift in degrees; the second entry is "
"saturation scale factor; and the third entry is a value scale factor. The "
"table entries are stored in the tag in nested loop order, with the value "
"divisions in the outer loop, the hue divisions in the middle loop, and the "
"saturation divisions in the inner loop. All zero input saturation entries "
"are required to have a value scale factor of 1.0."),
ifd0Id, dngTags, tiffFloat, 0, printValue), // DNG 1.6 tag
TagInfo(0xcd3a, "ReductionMatrix3", N_("Reduction Matrix 3"),
N_("ReductionMatrix3 defines a dimensionality reduction matrix for use as "
"the first stage in converting color camera native space values to XYZ "
"values, under the third calibration illuminant. This tag may only be "
"used if ColorPlanes is greater than 3. The matrix is stored in row "
"scan order."),
ifd0Id, dngTags, signedRational, -1, printValue), // DNG 1.6 tag
////////////////////////////////////////
// End of list marker