TIFF文件资料格式详细说明书文档格式.docx
《TIFF文件资料格式详细说明书文档格式.docx》由会员分享,可在线阅读,更多相关《TIFF文件资料格式详细说明书文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
![TIFF文件资料格式详细说明书文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/12/a68efe04-84df-404f-9bcd-f466ed0f2aad/a68efe04-84df-404f-9bcd-f466ed0f2aad1.gif)
n个DEByte(n*12+2)-(n*12+5):
下一个IFD的偏移量,如果没有如此置为0DE的构成:
此TAG的唯一标识Byte2-3:
数据类型。
Byte4-7:
数量。
通过类型和数量可以确定存储此TAG的数据需要占据的字节数Byte8-11:
如果占用的字节数少于4,如此数据直接存于此。
如果超过4个,如此这里存放的是指向实际数据的指针
可以用以下的图来表示(.cppblog./windcsn/archive/2009/03/12/1158.html)
在TIFF6.0中,定义了12种数据类型,分别是:
1=BYTE8-bitunsignedinteger.2=ASCII8-bitbytethatcontainsa7-bitASCIIcode;
thelastbytemustbeNUL(binaryzero).3=SHORT16-bit(2-byte)unsignedinteger.4=LONG32-bit(4-byte)unsignedinteger.5=RATIONALTwoLONGs:
thefirstrepresentsthenumerator6=SBYTEAn8-bitsigned(twos-plement)integer.7=UNDEFINEDAn8-bitbytethatmaycontainanything,dependingonthedefinitionofthefield.8=SSHORTA16-bit(2-byte)signed(twos-plement)integer.9=SLONGA32-bit(4-byte)signed(twos-plement)integer.10=SRATIONALTwoSLONG’s:
thefirstrepresentsthenumeratorofafraction,thesecondthedenominator.11=FLOATSingleprecision(4-byte)IEEEformat.12=DOUBLEDoubleprecision(8-byte)IEEEformat.
-个TIFF文件可能包含多个IFD,每一个IFD都是一个子文件。
Baseline解码器只要求解第一个IFD所对应的图像数据。
扩展的TIFF图像经常包含多个IFD,每一个IFD都包含了不同的信息。
3TIFF,TIFF/EP以与DNG的关系
TIFF/EP的全称是"
TagImageFileFormat/ElectronicPhotography
"
。
它是一个名为“Electronicstill-pictureimaging–Removablememory–Part2:
TIFF/EPimagedataformat〞ISO标准,标准号为ISO
12234-2
DNG(DigitalNegative)是Adobe开发的一种开放的rawimagefileformat。
里面使用的tag根本上都定义在TIFF或者TIFF/EP中,在DNGSepcification中只是定义或者建议了数据的组织方式,颜色空间的转换等等。
就我个人的理解,这三者之间的关系应该是这样的:
(2)同时在TIFFSpecification也定义个baseline与局部扩展的tag。
TIFF/EP如此定义并规X了在电子影像中所使用的TAG。
(3)DNG同时与TIFF和TIFF/EP兼容,并包含了EXIF和XMP信息。
DNG实际上就是扩X的TIFF,把DNG的扩展名改成TIF就可以直接预览图片
(4)虽然都归Adobe所有,但都可以无偿使用
在DNG出现以前,各个数码相机制造商都有自己的格式,比如Canon(cr2/crw),Nikon(nef),Olympus(orf),Pentex(pef)等等。
之所以出现这么多格式,一方面的原因是在这之前没有统一的raw格式,但更重要的是,各个厂商希望用这个只对自己公开的数据格式来保护自己的私密信息。
Adobe推出DNG希望能一统raw的天下。
但很遗憾,只有极少的数码制造商响应,比如sony,hasselblad,目前的结果也仅仅是多了一种raw的格式。
虽然如何,DNG仍然是成功的。
由于有很成熟的DNG编解码与转换公司,很多小厂商乐于使用DNG作为自己的文件格式。
随着时间的推进,迫于消费者的意愿,大的数码厂商被迫支持DNG。
最后DNG统一这个数码raw格式仍然是大势所趋。
4TIFF的特点
(1)应用广泛。
①TIFF可以描述多种类型的图像;
②TIFF拥有一系列的压缩方案可供选择;
③TIFF不依赖于具体的硬件;
④TIFF是一种可移植的文件格式。
(2)TIFF具有可扩展性。
在TIFF6.0中定义了许多扩展,它们允许TIFF提供以下通用功能:
①几种主要的压缩方法;
②多种色彩表示方法;
③图像质量增强;
④特殊图像效果;
⑤文档的存储和检索帮助。
(3)格式复杂。
TIFF文件的复杂性给它的应用带来了一些问题。
一方面,要写一种能够识别所有不同标记的软件非常困难。
另一方面,一个TIFF文件可以包含多个图像,每个图像都有自己的IFD和一系列标记,并且采用了多种压缩算法。
这样也增加了程序设计的复杂度。
5TIFF的局限与将来的开展
TIFF的最大局限在于用4byte来表示偏移量,这样导致文件最大只能有4G。
在20年前指定TIFF标准的时候可能觉得4G足够用了。
但是现在这确实成了制约TIFF反展的一个瓶颈。
目前BigTIFF已经提出用8个字节来表示偏移量。
这样数据量应该足够大了。
也许在不久的将来,这会成为新的tiff的baseline
6根本TIFFTAGS
本页主要摘自.awaresystems.be/imaging/tiff/tifftags/baseline.html。
每一个TAG均有原始,可以点击查看详细的描述。
这些根本Tag是所有TIFF编解码器必须支持的Tag
码
名称
简短描述
十进制码
十六进制
254
00FE
NewSubfileType
新的子文件类型标识LONG长度为1
用比特来标识图像的类型
Bit0如果是1代表缩略图
Bit1如果是1代表多页图像中的某一页
Bit2如果是1代表它是透明度掩码图像
其余的位数暂时没有定义。
与SubfileType的是,此Tag用比特位来区分文件类型而不是用值来区分
255
00FF
SubfileType
子文件类型标识SHORT长度为1
1全分辨率图像
2缩小分辨率的图像
3多页图像的某一页
过时的Tag,已不再使用。
256
0100
ImageWidth
图像宽度SHORT或者LONG长度为1
257
0101
ImageLength
图像高度SHORT或者LONG长度为1
258
0102
BitsPerSample
每个分量的Bit数SHORT长度为SamplesPerPixel
259
0103
pression
压缩类型SHORT长度为1
随着TIFF的不断扩X,目前支持多达几十种的压缩方式。
就我个人看来,最需要关注的有以下两个值:
pression=1:
没有压缩
pression=7:
JPEG压缩。
如果是RGB图像并且SamplesPerPixel=3,如此是标准的有损JPEG压缩。
如果是CFA图像,如此是LosslessJPEG
262
0106
PhotometricInterpretation
颜色空间SHORT长度为1
0=WhiteIsZero.应用于灰度或者二值图像,0对应最亮灰度.1=BlackIsZero.应用于灰度或者二值图像.0对应最暗灰度。
2=RGB.正常RGB图像,存储顺序为R,G,B.3=Palettecolor.索引图像,ColorMap必须定义,SamplesPerPixel必须1.
32803=CFA(ColorFilterArray)
263
0107
Threshholding
定义了转换成二值图像的阈值,忽略之
264
0108
CellWidth
Thewidthoftheditheringorhalftoningmatrixusedtocreateaditheredorhalftonedbilevelfile.
265
0109
CellLength
Thelengthoftheditheringorhalftoningmatrixusedtocreateaditheredorhalftonedbilevelfile.
266
010A
FillOrder
在同一字节中的逻辑顺序。
一般不做定义,要定义的话建议用1
270
010E
ImageDescription
字符串,对图像的描述
271
010F
Make
字符串,生产厂商的描述
272
0110
Model
字符串
273
0111
StripOffsets
每个Strip的偏移量SHORT或者LONG
N=StripsPerImageforPlanarConfigurationequalto1;
N=SamplesPerPixel*StripsPerImageforPlanarConfigurationequalto2
274
0112
Orientation
Theorientationoftheimagewithrespecttotherowsandcolumns.
277
0115
SamplesPerPixel
每个象素的通道数SHORT长度为1
278
0116
RowsPerStrip
每个Strip有多少行SHORT或者LONG长度为1。
Default是无限大
StripsPerImage=floor((ImageLength+RowsPerStrip-1)/RowsPerStrip).
279
0117
StripByteCounts
每个Strip的长度SHORT或者LONG
N=StripsPerImageforPlanarConfigurationequ