1 /* 2 * Copyright 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef IMG_UTILS_TIFF_TAG_DEFINITION_H 18 #define IMG_UTILS_TIFF_TAG_DEFINITION_H 19 20 #include <img_utils/TiffEntry.h> 21 #include <img_utils/Output.h> 22 #include <img_utils/TiffHelpers.h> 23 #include <stdint.h> 24 25 namespace android { 26 namespace img_utils { 27 28 /** 29 * Tag definitions contain information about standard TIFF compatible tags. 30 */ 31 typedef struct TagDefinition { 32 // The tag name. 33 const char* tagName; 34 // The specified tag ID. 35 const uint16_t tagId; 36 // The default type for this tag. This must be a valid TIFF type. 37 const TagType defaultType; 38 // The default Image File Directory (IFD) for this tag. 39 const uint32_t defaultIfd; 40 // The valid count for this tag, or 0 if the count is not fixed. 41 const uint32_t fixedCount; 42 // The endianness of the tag value, or UNDEFINED_ENDIAN if there is no fixed endian 43 const Endianness fixedEndian; 44 } TagDefinition_t; 45 46 /** 47 * Convenience defines for tag ids. 48 */ 49 enum { 50 TAG_RAWTOPREVIEWGAIN = 0xC7A8u, 51 TAG_NEWRAWIMAGEDIGEST = 0xC7A7u, 52 TAG_ORIGINALDEFAULTCROPSIZE = 0xC793u, 53 TAG_ORIGINALBESTQUALITYFINALSIZE = 0xC792u, 54 TAG_ORIGINALDEFAULTFINALSIZE = 0xC791u, 55 TAG_PROFILEHUESATMAPENCODING = 0xC7A3u, 56 TAG_PROFILELOOKTABLEENCODING = 0xC7A4u, 57 TAG_BASELINEEXPOSUREOFFSET = 0xC7A5u, 58 TAG_DEFAULTBLACKRENDER = 0xC7A6u, 59 TAG_DEFAULTUSERCROP = 0xC7B5u, 60 TAG_NOISEPROFILE = 0xC761u, 61 TAG_OPCODELIST3 = 0xC74Eu, 62 TAG_OPCODELIST2 = 0xC741u, 63 TAG_OPCODELIST1 = 0xC740u, 64 TAG_PROFILELOOKTABLEDATA = 0xC726u, 65 TAG_PROFILELOOKTABLEDIMS = 0xC725u, 66 TAG_ROWINTERLEAVEFACTOR = 0xC71Fu, 67 TAG_SUBTILEBLOCKSIZE = 0xC71Eu, 68 TAG_ORIGINALRAWFILEDIGEST = 0xC71Du, 69 TAG_RAWIMAGEDIGEST = 0xC71Cu, 70 TAG_PREVIEWDATETIME = 0xC71Bu, 71 TAG_PREVIEWCOLORSPACE = 0xC71Au, 72 TAG_PREVIEWSETTINGSDIGEST = 0xC719u, 73 TAG_PREVIEWSETTINGSNAME = 0xC718u, 74 TAG_PREVIEWAPPLICATIONVERSION = 0xC717u, 75 TAG_PREVIEWAPPLICATIONNAME = 0xC716u, 76 TAG_FORWARDMATRIX2 = 0xC715u, 77 TAG_FORWARDMATRIX1 = 0xC714u, 78 TAG_PROFILECOPYRIGHT = 0xC6FEu, 79 TAG_PROFILEEMBEDPOLICY = 0xC6FDu, 80 TAG_PROFILETONECURVE = 0xC6FCu, 81 TAG_PROFILEHUESATMAPDATA2 = 0xC6FBu, 82 TAG_PROFILEHUESATMAPDATA1 = 0xC6FAu, 83 TAG_PROFILEHUESATMAPDIMS = 0xC6F9u, 84 TAG_PROFILENAME = 0xC6F8u, 85 TAG_NOISEREDUCTIONAPPLIED = 0xC6F7u, 86 TAG_ASSHOTPROFILENAME = 0xC6F6u, 87 TAG_EXTRACAMERAPROFILES = 0xC6F5u, 88 TAG_PROFILECALIBRATIONSIGNATURE = 0xC6F4u, 89 TAG_CAMERACALIBRATIONSIGNATURE = 0xC6F3u, 90 TAG_COLORIMETRICREFERENCE = 0xC6BFu, 91 TAG_CURRENTPREPROFILEMATRIX = 0xC692u, 92 TAG_CURRENTICCPROFILE = 0xC691u, 93 TAG_ASSHOTPREPROFILEMATRIX = 0xC690u, 94 TAG_ASSHOTICCPROFILE = 0xC68Fu, 95 TAG_MASKEDAREAS = 0xC68Eu, 96 TAG_ACTIVEAREA = 0xC68Du, 97 TAG_ORIGINALRAWFILEDATA = 0xC68Cu, 98 TAG_ORIGINALRAWFILENAME = 0xC68Bu, 99 TAG_RAWDATAUNIQUEID = 0xC65Du, 100 TAG_MAKERNOTESAFETY = 0xC635u, 101 TAG_DNGPRIVATEDATA = 0xC634u, 102 TAG_SHADOWSCALE = 0xC633u, 103 TAG_ANTIALIASSTRENGTH = 0xC632u, 104 TAG_CHROMABLURRADIUS = 0xC631u, 105 TAG_LENSINFO = 0xC630u, 106 TAG_CAMERASERIALNUMBER = 0xC62Fu, 107 TAG_LINEARRESPONSELIMIT = 0xC62Eu, 108 TAG_BAYERGREENSPLIT = 0xC62Du, 109 TAG_BASELINESHARPNESS = 0xC62Cu, 110 TAG_BASELINENOISE = 0xC62Bu, 111 TAG_BASELINEEXPOSURE = 0xC62Au, 112 TAG_ASSHOTWHITEXY = 0xC629u, 113 TAG_ASSHOTNEUTRAL = 0xC628u, 114 TAG_ANALOGBALANCE = 0xC627u, 115 TAG_REDUCTIONMATRIX2 = 0xC626u, 116 TAG_REDUCTIONMATRIX1 = 0xC625u, 117 TAG_CAMERACALIBRATION2 = 0xC624u, 118 TAG_CAMERACALIBRATION1 = 0xC623u, 119 TAG_COLORMATRIX2 = 0xC622u, 120 TAG_COLORMATRIX1 = 0xC621u, 121 TAG_CALIBRATIONILLUMINANT2 = 0xC65Bu, 122 TAG_CALIBRATIONILLUMINANT1 = 0xC65Au, 123 TAG_DEFAULTCROPSIZE = 0xC620u, 124 TAG_DEFAULTCROPORIGIN = 0xC61Fu, 125 TAG_BESTQUALITYSCALE = 0xC65Cu, 126 TAG_DEFAULTSCALE = 0xC61Eu, 127 TAG_WHITELEVEL = 0xC61Du, 128 TAG_BLACKLEVELDELTAV = 0xC61Cu, 129 TAG_BLACKLEVELDELTAH = 0xC61Bu, 130 TAG_BLACKLEVEL = 0xC61Au, 131 TAG_BLACKLEVELREPEATDIM = 0xC619u, 132 TAG_LINEARIZATIONTABLE = 0xC618u, 133 TAG_CFALAYOUT = 0xC617u, 134 TAG_CFAPLANECOLOR = 0xC616u, 135 TAG_LOCALIZEDCAMERAMODEL = 0xC615u, 136 TAG_UNIQUECAMERAMODEL = 0xC614u, 137 TAG_DNGBACKWARDVERSION = 0xC613u, 138 TAG_DNGVERSION = 0xC612u, 139 TAG_SUBFILETYPE = 0x00FFu, 140 TAG_YRESOLUTION = 0x011Bu, 141 TAG_XRESOLUTION = 0x011Au, 142 TAG_THRESHHOLDING = 0x0107u, 143 TAG_STRIPOFFSETS = 0x0111u, 144 TAG_STRIPBYTECOUNTS = 0x0117u, 145 TAG_SOFTWARE = 0x0131u, 146 TAG_SAMPLESPERPIXEL = 0x0115u, 147 TAG_ROWSPERSTRIP = 0x0116u, 148 TAG_RESOLUTIONUNIT = 0x0128u, 149 TAG_PLANARCONFIGURATION = 0x011Cu, 150 TAG_PHOTOMETRICINTERPRETATION = 0x0106u, 151 TAG_ORIENTATION = 0x0112u, 152 TAG_NEWSUBFILETYPE = 0x00FEu, 153 TAG_MODEL = 0x0110u, 154 TAG_MINSAMPLEVALUE = 0x0118u, 155 TAG_MAXSAMPLEVALUE = 0x0119u, 156 TAG_MAKE = 0x010Fu, 157 TAG_IMAGEWIDTH = 0x0100u, 158 TAG_IMAGELENGTH = 0x0101u, 159 TAG_IMAGEDESCRIPTION = 0x010Eu, 160 TAG_HOSTCOMPUTER = 0x013Cu, 161 TAG_GRAYRESPONSEUNIT = 0x0122u, 162 TAG_GRAYRESPONSECURVE = 0x0123u, 163 TAG_FREEOFFSETS = 0x0120u, 164 TAG_FREEBYTECOUNTS = 0x0121u, 165 TAG_FILLORDER = 0x010Au, 166 TAG_EXTRASAMPLES = 0x0152u, 167 TAG_DATETIME = 0x0132u, 168 TAG_COPYRIGHT = 0x8298u, 169 TAG_COMPRESSION = 0x0103u, 170 TAG_COLORMAP = 0x0140u, 171 TAG_CELLWIDTH = 0x0108u, 172 TAG_CELLLENGTH = 0x0109u, 173 TAG_BITSPERSAMPLE = 0x0102u, 174 TAG_ARTIST = 0x013Bu, 175 TAG_EXIFVERSION = 0x9000u, 176 TAG_CFAREPEATPATTERNDIM = 0x828Du, 177 TAG_DATETIMEORIGINAL = 0x9003u, 178 TAG_CFAPATTERN = 0x828Eu, 179 TAG_SUBIFDS = 0x014Au, 180 TAG_TIFFEPSTANDARDID = 0x9216u, 181 TAG_EXPOSURETIME = 0x829Au, 182 TAG_ISOSPEEDRATINGS = 0x8827u, 183 TAG_FOCALLENGTH = 0x920Au, 184 TAG_FNUMBER = 0x829Du, 185 TAG_GPSINFO = 0x8825u, 186 TAG_GPSVERSIONID = 0x0u, 187 TAG_GPSLATITUDEREF = 0x1u, 188 TAG_GPSLATITUDE = 0x2u, 189 TAG_GPSLONGITUDEREF = 0x3u, 190 TAG_GPSLONGITUDE = 0x4u, 191 TAG_GPSTIMESTAMP = 0x7u, 192 TAG_GPSDATESTAMP = 0x001Du, 193 }; 194 195 /** 196 * Convenience values for tags with enumerated values 197 */ 198 199 enum { 200 TAG_ORIENTATION_NORMAL = 1, 201 TAG_ORIENTATION_ROTATE_180 = 3, 202 TAG_ORIENTATION_ROTATE_90 = 6, 203 TAG_ORIENTATION_ROTATE_270 = 8, 204 TAG_ORIENTATION_UNKNOWN = 9 205 }; 206 207 /** 208 * TIFF_EP_TAG_DEFINITIONS contains tags defined in the TIFF EP spec 209 */ 210 const TagDefinition_t TIFF_EP_TAG_DEFINITIONS[] = { 211 { // PhotometricInterpretation 212 "PhotometricInterpretation", 213 0x0106u, 214 SHORT, 215 IFD_0, 216 1, 217 UNDEFINED_ENDIAN 218 }, 219 { // SubIfds 220 "SubIfds", 221 0x014Au, 222 LONG, 223 IFD_0, 224 0, 225 UNDEFINED_ENDIAN 226 }, 227 { // CFAPattern 228 "CFAPattern", 229 0x828Eu, 230 BYTE, 231 IFD_0, 232 0, 233 UNDEFINED_ENDIAN 234 }, 235 { // CFARepeatPatternDim 236 "CFARepeatPatternDim", 237 0x828Du, 238 SHORT, 239 IFD_0, 240 2, 241 UNDEFINED_ENDIAN 242 }, 243 { // DateTimeOriginal 244 "DateTimeOriginal", 245 0x9003u, 246 ASCII, 247 IFD_0, 248 20, 249 UNDEFINED_ENDIAN 250 }, 251 { // Tiff/EPStandardID 252 "Tiff", 253 0x9216u, 254 BYTE, 255 IFD_0, 256 4, 257 UNDEFINED_ENDIAN 258 }, 259 { // ExposureTime 260 "ExposureTime", 261 0x829Au, 262 RATIONAL, 263 IFD_0, 264 0, 265 UNDEFINED_ENDIAN 266 }, 267 { // ISOSpeedRatings 268 "ISOSpeedRatings", 269 0x8827u, 270 SHORT, 271 IFD_0, 272 0, 273 UNDEFINED_ENDIAN 274 }, 275 { // FocalLength 276 "FocalLength", 277 0x920Au, 278 RATIONAL, 279 IFD_0, 280 0, 281 UNDEFINED_ENDIAN 282 }, 283 { // FNumber 284 "FNumber", 285 0x829Du, 286 RATIONAL, 287 IFD_0, 288 0, 289 UNDEFINED_ENDIAN 290 }, 291 { // GPSInfo 292 "GPSInfo", 293 0x8825u, 294 LONG, 295 IFD_0, 296 1, 297 UNDEFINED_ENDIAN 298 }, 299 { // GPSVersionID 300 "GPSVersionID", 301 0x0u, 302 BYTE, 303 IFD_0, 304 4, 305 UNDEFINED_ENDIAN 306 }, 307 { // GPSLatitudeRef 308 "GPSLatitudeRef", 309 0x1u, 310 ASCII, 311 IFD_0, 312 2, 313 UNDEFINED_ENDIAN 314 }, 315 { // GPSLatitude 316 "GPSLatitude", 317 0x2u, 318 RATIONAL, 319 IFD_0, 320 3, 321 UNDEFINED_ENDIAN 322 }, 323 { // GPSLongitudeRef 324 "GPSLongitudeRef", 325 0x3u, 326 ASCII, 327 IFD_0, 328 2, 329 UNDEFINED_ENDIAN 330 }, 331 { // GPSLongitude 332 "GPSLongitude", 333 0x4u, 334 RATIONAL, 335 IFD_0, 336 3, 337 UNDEFINED_ENDIAN 338 }, 339 { // GPSTimeStamp 340 "GPSTimeStamp", 341 0x7u, 342 RATIONAL, 343 IFD_0, 344 3, 345 UNDEFINED_ENDIAN 346 }, 347 /*TODO: Remaining TIFF EP tags*/ 348 }; 349 350 /** 351 * EXIF_2_3_TAG_DEFINITIONS contains tags defined in the Jeita EXIF 2.3 spec 352 */ 353 const TagDefinition_t EXIF_2_3_TAG_DEFINITIONS[] = { 354 { // ExifVersion 355 "ExifVersion", 356 0x9000u, 357 UNDEFINED, 358 IFD_0, 359 4, 360 UNDEFINED_ENDIAN 361 }, 362 { // GPSDateStamp 363 "GPSDateStamp", 364 0x001Du, 365 ASCII, 366 IFD_0, 367 11, 368 UNDEFINED_ENDIAN 369 }, 370 /*TODO: Remaining EXIF 2.3 tags*/ 371 }; 372 373 /** 374 * TIFF_6_TAG_DEFINITIONS contains tags defined in the TIFF 6.0 spec 375 */ 376 const TagDefinition_t TIFF_6_TAG_DEFINITIONS[] = { 377 { // SubFileType 378 "SubFileType", 379 0x00FFu, 380 SHORT, 381 IFD_0, 382 1, 383 UNDEFINED_ENDIAN 384 }, 385 { // Artist 386 "Artist", 387 0x013Bu, 388 ASCII, 389 IFD_0, 390 0, 391 UNDEFINED_ENDIAN 392 }, 393 { // BitsPerSample 394 "BitsPerSample", 395 0x0102u, 396 SHORT, 397 IFD_0, 398 0, 399 UNDEFINED_ENDIAN 400 }, 401 { // CellLength 402 "CellLength", 403 0x0109u, 404 SHORT, 405 IFD_0, 406 1, 407 UNDEFINED_ENDIAN 408 }, 409 { // CellWidth 410 "CellWidth", 411 0x0108u, 412 SHORT, 413 IFD_0, 414 1, 415 UNDEFINED_ENDIAN 416 }, 417 { // ColorMap 418 "ColorMap", 419 0x0140u, 420 SHORT, 421 IFD_0, 422 0, 423 UNDEFINED_ENDIAN 424 }, 425 { // Compression 426 "Compression", 427 0x0103u, 428 SHORT, 429 IFD_0, 430 1, 431 UNDEFINED_ENDIAN 432 }, 433 { // Copyright 434 "Copyright", 435 0x8298u, 436 ASCII, 437 IFD_0, 438 0, 439 UNDEFINED_ENDIAN 440 }, 441 { // DateTime 442 "DateTime", 443 0x0132u, 444 ASCII, 445 IFD_0, 446 20, 447 UNDEFINED_ENDIAN 448 }, 449 { // ExtraSamples 450 "ExtraSamples", 451 0x0152u, 452 SHORT, 453 IFD_0, 454 0, 455 UNDEFINED_ENDIAN 456 }, 457 { // FillOrder 458 "FillOrder", 459 0x010Au, 460 SHORT, 461 IFD_0, 462 1, 463 UNDEFINED_ENDIAN 464 }, 465 { // FreeByteCounts 466 "FreeByteCounts", 467 0x0121u, 468 LONG, 469 IFD_0, 470 1, 471 UNDEFINED_ENDIAN 472 }, 473 { // FreeOffsets 474 "FreeOffsets", 475 0x0120u, 476 LONG, 477 IFD_0, 478 1, 479 UNDEFINED_ENDIAN 480 }, 481 { // GrayResponseCurve 482 "GrayResponseCurve", 483 0x0123u, 484 SHORT, 485 IFD_0, 486 0, 487 UNDEFINED_ENDIAN 488 }, 489 { // GrayResponseUnit 490 "GrayResponseUnit", 491 0x0122u, 492 SHORT, 493 IFD_0, 494 1, 495 UNDEFINED_ENDIAN 496 }, 497 { // HostComputer 498 "HostComputer", 499 0x013Cu, 500 ASCII, 501 IFD_0, 502 0, 503 UNDEFINED_ENDIAN 504 }, 505 { // ImageDescription 506 "ImageDescription", 507 0x010Eu, 508 ASCII, 509 IFD_0, 510 0, 511 UNDEFINED_ENDIAN 512 }, 513 { // ImageLength 514 "ImageLength", 515 0x0101u, 516 LONG, 517 IFD_0, 518 1, 519 UNDEFINED_ENDIAN 520 }, 521 { // ImageWidth 522 "ImageWidth", 523 0x0100u, 524 LONG, 525 IFD_0, 526 1, 527 UNDEFINED_ENDIAN 528 }, 529 { // Make 530 "Make", 531 0x010Fu, 532 ASCII, 533 IFD_0, 534 0, 535 UNDEFINED_ENDIAN 536 }, 537 { // MaxSampleValue 538 "MaxSampleValue", 539 0x0119u, 540 SHORT, 541 IFD_0, 542 0, 543 UNDEFINED_ENDIAN 544 }, 545 { // MinSampleValue 546 "MinSampleValue", 547 0x0118u, 548 SHORT, 549 IFD_0, 550 0, 551 UNDEFINED_ENDIAN 552 }, 553 { // Model 554 "Model", 555 0x0110u, 556 ASCII, 557 IFD_0, 558 0, 559 UNDEFINED_ENDIAN 560 }, 561 { // NewSubfileType 562 "NewSubfileType", 563 0x00FEu, 564 LONG, 565 IFD_0, 566 1, 567 UNDEFINED_ENDIAN 568 }, 569 { // Orientation 570 "Orientation", 571 0x0112u, 572 SHORT, 573 IFD_0, 574 1, 575 UNDEFINED_ENDIAN 576 }, 577 { // PhotoMetricInterpretation 578 "PhotoMetricInterpretation", 579 0x0106u, 580 SHORT, 581 IFD_0, 582 1, 583 UNDEFINED_ENDIAN 584 }, 585 { // PlanarConfiguration 586 "PlanarConfiguration", 587 0x011Cu, 588 SHORT, 589 IFD_0, 590 1, 591 UNDEFINED_ENDIAN 592 }, 593 { // ResolutionUnit 594 "ResolutionUnit", 595 0x0128u, 596 SHORT, 597 IFD_0, 598 1, 599 UNDEFINED_ENDIAN 600 }, 601 { // RowsPerStrip 602 "RowsPerStrip", 603 0x0116u, 604 LONG, 605 IFD_0, 606 1, 607 UNDEFINED_ENDIAN 608 }, 609 { // SamplesPerPixel 610 "SamplesPerPixel", 611 0x0115u, 612 SHORT, 613 IFD_0, 614 1, 615 UNDEFINED_ENDIAN 616 }, 617 { // Software 618 "Software", 619 0x0131u, 620 ASCII, 621 IFD_0, 622 0, 623 UNDEFINED_ENDIAN 624 }, 625 { // StripByteCounts 626 "StripByteCounts", 627 0x0117u, 628 LONG, 629 IFD_0, 630 0, 631 UNDEFINED_ENDIAN 632 }, 633 { // StripOffsets 634 "StripOffsets", 635 0x0111u, 636 LONG, 637 IFD_0, 638 0, 639 UNDEFINED_ENDIAN 640 }, 641 { // SubfileType 642 "SubfileType", 643 0x00FFu, 644 SHORT, 645 IFD_0, 646 1, 647 UNDEFINED_ENDIAN 648 }, 649 { // Threshholding 650 "Threshholding", 651 0x0107u, 652 SHORT, 653 IFD_0, 654 1, 655 UNDEFINED_ENDIAN 656 }, 657 { // XResolution 658 "XResolution", 659 0x011Au, 660 RATIONAL, 661 IFD_0, 662 1, 663 UNDEFINED_ENDIAN 664 }, 665 { // YResolution 666 "YResolution", 667 0x011Bu, 668 RATIONAL, 669 IFD_0, 670 1, 671 UNDEFINED_ENDIAN 672 }, 673 }; 674 675 /** 676 * DNG_TAG_DEFINITIONS contains tags defined in the DNG 1.4 spec 677 */ 678 const TagDefinition_t DNG_TAG_DEFINITIONS[] = { 679 { // DNGVersion 680 "DNGVersion", 681 0xC612u, 682 BYTE, 683 IFD_0, 684 4, 685 UNDEFINED_ENDIAN 686 }, 687 { // DNGBackwardVersion 688 "DNGBackwardVersion", 689 0xC613u, 690 BYTE, 691 IFD_0, 692 4, 693 UNDEFINED_ENDIAN 694 }, 695 { // UniqueCameraModel 696 "UniqueCameraModel", 697 0xC614u, 698 ASCII, 699 IFD_0, 700 0, 701 UNDEFINED_ENDIAN 702 }, 703 { // LocalizedCameraModel 704 "LocalizedCameraModel", 705 0xC615u, 706 ASCII, 707 IFD_0, 708 0, 709 UNDEFINED_ENDIAN 710 }, 711 { // CFAPlaneColor 712 "CFAPlaneColor", 713 0xC616u, 714 BYTE, 715 RAW_IFD, 716 0, 717 UNDEFINED_ENDIAN 718 }, 719 { // CFALayout 720 "CFALayout", 721 0xC617u, 722 SHORT, 723 RAW_IFD, 724 1, 725 UNDEFINED_ENDIAN 726 }, 727 { // LinearizationTable 728 "LinearizationTable", 729 0xC618u, 730 SHORT, 731 RAW_IFD, 732 0, 733 UNDEFINED_ENDIAN 734 }, 735 { // BlackLevelRepeatDim 736 "BlackLevelRepeatDim", 737 0xC619u, 738 SHORT, 739 RAW_IFD, 740 2, 741 UNDEFINED_ENDIAN 742 }, 743 { // BlackLevel 744 "BlackLevel", 745 0xC61Au, 746 RATIONAL, 747 RAW_IFD, 748 0, 749 UNDEFINED_ENDIAN 750 }, 751 { // BlackLevelDeltaH 752 "BlackLevelDeltaH", 753 0xC61Bu, 754 SRATIONAL, 755 RAW_IFD, 756 0, 757 UNDEFINED_ENDIAN 758 }, 759 { // BlackLevelDeltaV 760 "BlackLevelDeltaV", 761 0xC61Cu, 762 SRATIONAL, 763 RAW_IFD, 764 0, 765 UNDEFINED_ENDIAN 766 }, 767 { // WhiteLevel 768 "WhiteLevel", 769 0xC61Du, 770 LONG, 771 RAW_IFD, 772 0, 773 UNDEFINED_ENDIAN 774 }, 775 { // DefaultScale 776 "DefaultScale", 777 0xC61Eu, 778 RATIONAL, 779 RAW_IFD, 780 2, 781 UNDEFINED_ENDIAN 782 }, 783 { // BestQualityScale 784 "BestQualityScale", 785 0xC65Cu, 786 RATIONAL, 787 RAW_IFD, 788 1, 789 UNDEFINED_ENDIAN 790 }, 791 { // DefaultCropOrigin 792 "DefaultCropOrigin", 793 0xC61Fu, 794 LONG, 795 RAW_IFD, 796 2, 797 UNDEFINED_ENDIAN 798 }, 799 { // DefaultCropSize 800 "DefaultCropSize", 801 0xC620u, 802 LONG, 803 RAW_IFD, 804 2, 805 UNDEFINED_ENDIAN 806 }, 807 { // CalibrationIlluminant1 808 "CalibrationIlluminant1", 809 0xC65Au, 810 SHORT, 811 PROFILE_IFD, 812 1, 813 UNDEFINED_ENDIAN 814 }, 815 { // CalibrationIlluminant2 816 "CalibrationIlluminant2", 817 0xC65Bu, 818 SHORT, 819 PROFILE_IFD, 820 1, 821 UNDEFINED_ENDIAN 822 }, 823 { // ColorMatrix1 824 "ColorMatrix1", 825 0xC621u, 826 SRATIONAL, 827 PROFILE_IFD, 828 0, 829 UNDEFINED_ENDIAN 830 }, 831 { // ColorMatrix2 832 "ColorMatrix2", 833 0xC622u, 834 SRATIONAL, 835 PROFILE_IFD, 836 0, 837 UNDEFINED_ENDIAN 838 }, 839 { // CameraCalibration1 840 "CameraCalibration1", 841 0xC623u, 842 SRATIONAL, 843 IFD_0, 844 0, 845 UNDEFINED_ENDIAN 846 }, 847 { // CameraCalibration2 848 "CameraCalibration2", 849 0xC624u, 850 SRATIONAL, 851 IFD_0, 852 0, 853 UNDEFINED_ENDIAN 854 }, 855 { // ReductionMatrix1 856 "ReductionMatrix1", 857 0xC625u, 858 SRATIONAL, 859 PROFILE_IFD, 860 0, 861 UNDEFINED_ENDIAN 862 }, 863 { // ReductionMatrix2 864 "ReductionMatrix2", 865 0xC626u, 866 SRATIONAL, 867 PROFILE_IFD, 868 0, 869 UNDEFINED_ENDIAN 870 }, 871 { // AnalogBalance 872 "AnalogBalance", 873 0xC627u, 874 RATIONAL, 875 IFD_0, 876 0, 877 UNDEFINED_ENDIAN 878 }, 879 { // AsShotNeutral 880 "AsShotNeutral", 881 0xC628u, 882 RATIONAL, 883 IFD_0, 884 0, 885 UNDEFINED_ENDIAN 886 }, 887 { // AsShotWhiteXY 888 "AsShotWhiteXY", 889 0xC629u, 890 RATIONAL, 891 IFD_0, 892 2, 893 UNDEFINED_ENDIAN 894 }, 895 { // BaselineExposure 896 "BaselineExposure", 897 0xC62Au, 898 SRATIONAL, 899 IFD_0, 900 1, 901 UNDEFINED_ENDIAN 902 }, 903 { // BaselineNoise 904 "BaselineNoise", 905 0xC62Bu, 906 RATIONAL, 907 IFD_0, 908 1, 909 UNDEFINED_ENDIAN 910 }, 911 { // BaselineSharpness 912 "BaselineSharpness", 913 0xC62Cu, 914 RATIONAL, 915 IFD_0, 916 1, 917 UNDEFINED_ENDIAN 918 }, 919 { // BayerGreenSplit 920 "BayerGreenSplit", 921 0xC62Du, 922 LONG, 923 RAW_IFD, 924 1, 925 UNDEFINED_ENDIAN 926 }, 927 { // LinearResponseLimit 928 "LinearResponseLimit", 929 0xC62Eu, 930 RATIONAL, 931 IFD_0, 932 1, 933 UNDEFINED_ENDIAN 934 }, 935 { // CameraSerialNumber 936 "CameraSerialNumber", 937 0xC62Fu, 938 ASCII, 939 IFD_0, 940 0, 941 UNDEFINED_ENDIAN 942 }, 943 { // LensInfo 944 "LensInfo", 945 0xC630u, 946 RATIONAL, 947 IFD_0, 948 4, 949 UNDEFINED_ENDIAN 950 }, 951 { // ChromaBlurRadius 952 "ChromaBlurRadius", 953 0xC631u, 954 RATIONAL, 955 RAW_IFD, 956 1, 957 UNDEFINED_ENDIAN 958 }, 959 { // AntiAliasStrength 960 "AntiAliasStrength", 961 0xC632u, 962 RATIONAL, 963 RAW_IFD, 964 1, 965 UNDEFINED_ENDIAN 966 }, 967 { // ShadowScale 968 "ShadowScale", 969 0xC633u, 970 RATIONAL, 971 IFD_0, 972 1, 973 UNDEFINED_ENDIAN 974 }, 975 { // DNGPrivateData 976 "DNGPrivateData", 977 0xC634u, 978 BYTE, 979 IFD_0, 980 0, 981 UNDEFINED_ENDIAN 982 }, 983 { // MakerNoteSafety 984 "MakerNoteSafety", 985 0xC635u, 986 SHORT, 987 IFD_0, 988 1, 989 UNDEFINED_ENDIAN 990 }, 991 { // RawDataUniqueID 992 "RawDataUniqueID", 993 0xC65Du, 994 BYTE, 995 IFD_0, 996 16, 997 UNDEFINED_ENDIAN 998 }, 999 { // OriginalRawFileName 1000 "OriginalRawFileName", 1001 0xC68Bu, 1002 ASCII, 1003 IFD_0, 1004 0, 1005 UNDEFINED_ENDIAN 1006 }, 1007 { // OriginalRawFileData 1008 "OriginalRawFileData", 1009 0xC68Cu, 1010 UNDEFINED, 1011 IFD_0, 1012 0, 1013 BIG 1014 }, 1015 { // ActiveArea 1016 "ActiveArea", 1017 0xC68Du, 1018 LONG, 1019 RAW_IFD, 1020 4, 1021 UNDEFINED_ENDIAN 1022 }, 1023 { // MaskedAreas 1024 "MaskedAreas", 1025 0xC68Eu, 1026 LONG, 1027 RAW_IFD, 1028 0, 1029 UNDEFINED_ENDIAN 1030 }, 1031 { // AsShotICCProfile 1032 "AsShotICCProfile", 1033 0xC68Fu, 1034 UNDEFINED, 1035 IFD_0, 1036 0, 1037 UNDEFINED_ENDIAN 1038 }, 1039 { // AsShotPreProfileMatrix 1040 "AsShotPreProfileMatrix", 1041 0xC690u, 1042 SRATIONAL, 1043 IFD_0, 1044 0, 1045 UNDEFINED_ENDIAN 1046 }, 1047 { // CurrentICCProfile 1048 "CurrentICCProfile", 1049 0xC691u, 1050 UNDEFINED, 1051 IFD_0, 1052 0, 1053 UNDEFINED_ENDIAN 1054 }, 1055 { // CurrentICCProfile 1056 "CurrentICCProfile", 1057 0xC691u, 1058 UNDEFINED, 1059 IFD_0, 1060 0, 1061 UNDEFINED_ENDIAN 1062 }, 1063 { // CurrentPreProfileMatrix 1064 "CurrentPreProfileMatrix", 1065 0xC692u, 1066 SRATIONAL, 1067 IFD_0, 1068 0, 1069 UNDEFINED_ENDIAN 1070 }, 1071 { // ColorimetricReference 1072 "ColorimetricReference", 1073 0xC6BFu, 1074 SHORT, 1075 IFD_0, 1076 1, 1077 UNDEFINED_ENDIAN 1078 }, 1079 { // CameraCalibrationSignature 1080 "CameraCalibrationSignature", 1081 0xC6F3u, 1082 ASCII, 1083 IFD_0, 1084 0, 1085 UNDEFINED_ENDIAN 1086 }, 1087 { // ProfileCalibrationSignature 1088 "ProfileCalibrationSignature", 1089 0xC6F4u, 1090 ASCII, 1091 PROFILE_IFD, 1092 0, 1093 UNDEFINED_ENDIAN 1094 }, 1095 { // ExtraCameraProfiles 1096 "ExtraCameraProfiles", 1097 0xC6F5u, 1098 LONG, 1099 IFD_0, 1100 0, 1101 UNDEFINED_ENDIAN 1102 }, 1103 { // AsShotProfileName 1104 "AsShotProfileName", 1105 0xC6F6u, 1106 ASCII, 1107 IFD_0, 1108 0, 1109 UNDEFINED_ENDIAN 1110 }, 1111 { // NoiseReductionApplied 1112 "NoiseReductionApplied", 1113 0xC6F7u, 1114 RATIONAL, 1115 RAW_IFD, 1116 1, 1117 UNDEFINED_ENDIAN 1118 }, 1119 { // ProfileName 1120 "ProfileName", 1121 0xC6F8u, 1122 ASCII, 1123 PROFILE_IFD, 1124 0, 1125 UNDEFINED_ENDIAN 1126 }, 1127 { // ProfileHueSatMapDims 1128 "ProfileHueSatMapDims", 1129 0xC6F9u, 1130 LONG, 1131 PROFILE_IFD, 1132 3, 1133 UNDEFINED_ENDIAN 1134 }, 1135 { // ProfileHueSatMapData1 1136 "ProfileHueSatMapData1", 1137 0xC6FAu, 1138 FLOAT, 1139 PROFILE_IFD, 1140 0, 1141 UNDEFINED_ENDIAN 1142 }, 1143 { // ProfileHueSatMapData2 1144 "ProfileHueSatMapData2", 1145 0xC6FBu, 1146 FLOAT, 1147 PROFILE_IFD, 1148 0, 1149 UNDEFINED_ENDIAN 1150 }, 1151 { // ProfileToneCurve 1152 "ProfileToneCurve", 1153 0xC6FCu, 1154 FLOAT, 1155 PROFILE_IFD, 1156 0, 1157 UNDEFINED_ENDIAN 1158 }, 1159 { // ProfileEmbedPolicy 1160 "ProfileEmbedPolicy", 1161 0xC6FDu, 1162 LONG, 1163 PROFILE_IFD, 1164 1, 1165 UNDEFINED_ENDIAN 1166 }, 1167 { // ProfileCopyright 1168 "ProfileCopyright", 1169 0xC6FEu, 1170 ASCII, 1171 PROFILE_IFD, 1172 0, 1173 UNDEFINED_ENDIAN 1174 }, 1175 { // ForwardMatrix1 1176 "ForwardMatrix1", 1177 0xC714u, 1178 SRATIONAL, 1179 PROFILE_IFD, 1180 0, 1181 UNDEFINED_ENDIAN 1182 }, 1183 { // ForwardMatrix2 1184 "ForwardMatrix2", 1185 0xC715u, 1186 SRATIONAL, 1187 PROFILE_IFD, 1188 0, 1189 UNDEFINED_ENDIAN 1190 }, 1191 { // PreviewApplicationName 1192 "PreviewApplicationName", 1193 0xC716u, 1194 ASCII, 1195 PREVIEW_IFD, 1196 0, 1197 UNDEFINED_ENDIAN 1198 }, 1199 { // PreviewApplicationVersion 1200 "PreviewApplicationVersion", 1201 0xC717u, 1202 ASCII, 1203 PREVIEW_IFD, 1204 0, 1205 UNDEFINED_ENDIAN 1206 }, 1207 { // PreviewSettingsName 1208 "PreviewSettingsName", 1209 0xC718u, 1210 ASCII, 1211 PREVIEW_IFD, 1212 0, 1213 UNDEFINED_ENDIAN 1214 }, 1215 { // PreviewSettingsDigest 1216 "PreviewSettingsDigest", 1217 0xC719u, 1218 BYTE, 1219 PREVIEW_IFD, 1220 16, 1221 UNDEFINED_ENDIAN 1222 }, 1223 { // PreviewColorSpace 1224 "PreviewColorSpace", 1225 0xC71Au, 1226 LONG, 1227 PREVIEW_IFD, 1228 1, 1229 UNDEFINED_ENDIAN 1230 }, 1231 { // PreviewDateTime 1232 "PreviewDateTime", 1233 0xC71Bu, 1234 ASCII, 1235 PREVIEW_IFD, 1236 0, 1237 UNDEFINED_ENDIAN 1238 }, 1239 { // RawImageDigest 1240 "RawImageDigest", 1241 0xC71Cu, 1242 BYTE, 1243 IFD_0, 1244 16, 1245 UNDEFINED_ENDIAN 1246 }, 1247 { // OriginalRawFileDigest 1248 "OriginalRawFileDigest", 1249 0xC71Du, 1250 BYTE, 1251 IFD_0, 1252 16, 1253 UNDEFINED_ENDIAN 1254 }, 1255 { // SubTileBlockSize 1256 "SubTileBlockSize", 1257 0xC71Eu, 1258 LONG, 1259 RAW_IFD, 1260 2, 1261 UNDEFINED_ENDIAN 1262 }, 1263 { // RowInterleaveFactor 1264 "RowInterleaveFactor", 1265 0xC71Fu, 1266 LONG, 1267 RAW_IFD, 1268 1, 1269 UNDEFINED_ENDIAN 1270 }, 1271 { // ProfileLookTableDims 1272 "ProfileLookTableDims", 1273 0xC725u, 1274 LONG, 1275 PROFILE_IFD, 1276 3, 1277 UNDEFINED_ENDIAN 1278 }, 1279 { // ProfileLookTableData 1280 "ProfileLookTableData", 1281 0xC726u, 1282 FLOAT, 1283 PROFILE_IFD, 1284 0, 1285 UNDEFINED_ENDIAN 1286 }, 1287 { // OpcodeList1 1288 "OpcodeList1", 1289 0xC740u, 1290 UNDEFINED, 1291 RAW_IFD, 1292 0, 1293 BIG 1294 }, 1295 { // OpcodeList2 1296 "OpcodeList2", 1297 0xC741u, 1298 UNDEFINED, 1299 RAW_IFD, 1300 0, 1301 BIG 1302 }, 1303 { // OpcodeList3 1304 "OpcodeList3", 1305 0xC74Eu, 1306 UNDEFINED, 1307 RAW_IFD, 1308 0, 1309 BIG 1310 }, 1311 { // NoiseProfile 1312 "NoiseProfile", 1313 0xC761u, 1314 DOUBLE, 1315 RAW_IFD, 1316 0, 1317 UNDEFINED_ENDIAN 1318 }, 1319 { // DefaultUserCrop 1320 "DefaultUserCrop", 1321 0xC7B5u, 1322 RATIONAL, 1323 RAW_IFD, 1324 4, 1325 UNDEFINED_ENDIAN 1326 }, 1327 { // DefaultBlackRender 1328 "DefaultBlackRender", 1329 0xC7A6u, 1330 LONG, 1331 PROFILE_IFD, 1332 1, 1333 UNDEFINED_ENDIAN 1334 }, 1335 { // BaselineExposureOffset 1336 "BaselineExposureOffset", 1337 0xC7A5u, 1338 RATIONAL, 1339 PROFILE_IFD, 1340 1, 1341 UNDEFINED_ENDIAN 1342 }, 1343 { // ProfileLookTableEncoding 1344 "ProfileLookTableEncoding", 1345 0xC7A4u, 1346 LONG, 1347 PROFILE_IFD, 1348 1, 1349 UNDEFINED_ENDIAN 1350 }, 1351 { // ProfileHueSatMapEncoding 1352 "ProfileHueSatMapEncoding", 1353 0xC7A3u, 1354 LONG, 1355 PROFILE_IFD, 1356 1, 1357 UNDEFINED_ENDIAN 1358 }, 1359 { // OriginalDefaultFinalSize 1360 "OriginalDefaultFinalSize", 1361 0xC791u, 1362 LONG, 1363 IFD_0, 1364 2, 1365 UNDEFINED_ENDIAN 1366 }, 1367 { // OriginalBestQualityFinalSize 1368 "OriginalBestQualityFinalSize", 1369 0xC792u, 1370 LONG, 1371 IFD_0, 1372 2, 1373 UNDEFINED_ENDIAN 1374 }, 1375 { // OriginalDefaultCropSize 1376 "OriginalDefaultCropSize", 1377 0xC793u, 1378 LONG, 1379 IFD_0, 1380 2, 1381 UNDEFINED_ENDIAN 1382 }, 1383 { // NewRawImageDigest 1384 "NewRawImageDigest", 1385 0xC7A7u, 1386 BYTE, 1387 IFD_0, 1388 16, 1389 UNDEFINED_ENDIAN 1390 }, 1391 { // RawToPreviewGain 1392 "RawToPreviewGain", 1393 0xC7A8u, 1394 DOUBLE, 1395 PREVIEW_IFD, 1396 1, 1397 UNDEFINED_ENDIAN 1398 }, 1399 }; 1400 1401 } /*namespace img_utils*/ 1402 } /*namespace android*/ 1403 1404 #endif /*IMG_UTILS_TIFF_TAG_DEFINITION_H*/ 1405