TIFF文件格式详细说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 什么是TIFF?
TIFF是Tagged Image File Format的缩写。在现在的标准中,只有TIFF存在,其他的提法已经舍弃不用了。做为一种标记语言,TIFF与其他文件格式最大的不同在于除了图像数据,它还可以记录很多图像的其他信息。它记录图像数据的方式也比较灵活,理论上来说,任何其他的图像格式都能为TIFF所用,嵌入到TIFF里面。比如JPEG,Lossless JPEG,JPEG2000和任意数据宽度的原始无压缩数据都可以方便的嵌入到TIFF中去。由于它的可扩展性,TIFF在数字影像、遥感、医学等领域中得到了广泛的应用。TIFF文件的后缀是.tif 或者.tiff
2 TIFF文件结构
TIFF文件中的三个关键词是:图像文件头Image File Header(IFH),图像文件目录Image File Directory(IFD)和目录项Directory Entry(DE)。每一幅图像是以8字节的IFH开始的,这个IFH指向了第一个IFD。IFD包含了图像的各种信息,同时也包含了一个指向实际图像数据的指针。
IFH的构成:
Byte 0-1: 字节顺序标志位,值为II或者MM。II表示小字节在前,又称为little-endian。MM表示大字节在前,又成为big-endian。
Byte 2-3: TIFF的标志位,一般都是42
Byte 4-7: 第一个IFD的偏移量。可以在任意位置,但必须是在一个字的边界,也就是说必须是2的整数倍。
IFD的构成(0代表此IFD的起始位置):
Byte 0-1: 表示此IFD包含了多少个DE,假设数目为n
Byte 2-(n*12+1): n个DE
Byte (n*12+2)-(n*12+5): 下一个IFD的偏移量,如果没有则置为0
DE的构成:
Byte 0-1: 此TAG的唯一标识
Byte 2-3: 数据类型。
Byte 4-7: 数量。通过类型和数量可以确定存储此TAG的数据需要占据的字节数
Byte 8-11: 如果占用的字节数少于4,则数据直接存于此。如果超过4个,则这里存放的是指向实际数据的指针
可以用以下的图来表示(/windcsn/archive/2009/03/12/1158.html)
在TIFF6.0中,定义了12种数据类型,分别是:
1 = BYTE 8-bit unsigned integer.
2 = ASCII 8-bit byte that contains a 7-bit ASCII code; the last byte
must be NUL (binary zero).
3 = SHORT 16-bit (2-byte) unsigned integer.
4 = LONG 32-bit (4-byte) unsigned integer.
5 = RATIONAL Two LONGs: the first represents the numerator
6 = SBYTE An 8-bit signed (twos-complement) integer.
7 = UNDEFINED An 8-bit byte that may contain anything, depending on
the definition of the field.
8 = SSHORT A 16-bit (2-byte) signed (twos-complement) integer.
9 = SLONG A 32-bit (4-byte) signed (twos-complement) integer.
10 = SRATIONAL Two SLONG’s: the first represents the numerator of a
fraction, the second the denominator.
11 = FLOAT Single precision (4-byte) IEEE format.
12 = DOUBLE Double precision (8-byte) IEEE format.
-个TIFF文件可能包含多个IFD,每一个IFD都是一个子文件。Baseline解码器只要求解第一个IFD所对应的图像数据。扩展的TIFF图像经常包含多个IFD,每一个IFD都包含了不同的信息。
3 TIFF,TIFF/EP以及DNG的关系
TIFF/EP的全称是"Tag Image File Format / Electronic Photography "。它是一个名为“Electronic still-picture imaging – Removable memory – Part 2: TIFF/EP image data format”ISO标准,标准号为ISO 12234-2
DNG(Digital Negative)是Adobe开发的一种开放的raw image file format。里面使用的tag 基本上都定义在TIFF或者TIFF/EP中,在DNG Sepcification中只是定义或者建议了数据的组织方式,颜色空间的转换等等。
就我个人的理解,这三者之间的关系应该是这样的:
(1) TIFF和DNG同为Specification,分别定义了后缀名为.tif/.tiff和.dng的文件格式
(2) 同时在TIFF Specification也定义个baseline及部分扩展的tag。TIFF/EP则定义并规范了在电子影像中所使用的TAG。
(3) DNG同时与TIFF和TIFF/EP兼容,并包含了EXIF和XMP信息。DNG实际上就是扩张的TIFF,把DNG的扩展名改成TIF就可以直接预览图片
(4) 虽然版权都归Adobe所有,但都可以无偿使用
在DNG出现以前,各个数码相机制造商都有自己的格式,比如Canon(cr2/crw), Nikon(nef), Olympus(orf), Pentex(pef)等等。之所以出现这么多格式,一方面的原因是在这之前没有统一的raw格式,但更重要的是,各个厂商希望用这个只对自己公开的数据格式来保护自己的私密信息。Adobe推出DNG希望能一统raw的天下。但很遗憾,只有极少的数码制造商响应,比如sony,hasselblad,目前的结果也仅仅是多了一种raw的格式。虽然如何,DNG仍然是成功的。由于有很成熟的DNG编解码及转换公司,很多小厂商乐