FFMPEG之图片系列 --- tif 格式

来源:互联网 发布:金山软件管家下载 编辑:程序博客网 时间:2024/05/20 18:17

        TIFF: Tag-Based Image File Format, 基于标签的图像文件格式。是一种灵活的位图格式,主要用来存储包括照片和艺术图在内的图像。它最初由Aldus公司与微软公司一起为PostScript打印开发。TIFF与JPEGPNG一起成为流行的高位彩色图像格式。TIFF格式在业界得到了广泛的支持,如Adobe公司的Photoshop、The GIMP Team的GIMPUlead PhotoImpactPaint Shop Pro等图像处理应用、QuarkXPressAdobe InDesign这样的桌面印刷和页面排版应用,扫描、传真、文字处理、光学字符识别和其它一些应用等都支持这种格式。从Aldus获得了PageMaker印刷应用程序的Adobe公司现在控制着TIFF规范。

       下图展示了TIFF文件中可存储的数据类型及标签中需要存储的图像属性参数:

格式特点:

1.  TIFF可以描述多种类型的图像,二值图,灰度图像,索引图像,RGB图像,YCbCr图像等;

2.  TIFF拥有一系列的压缩方案可供选择,无压缩,1维修改霍夫曼编码;PictBits,LZW,JPEG等;

3.  TIFF不依赖于具体的硬件;

4.  TIFF是一种可移植的文件格式;

可扩展性:

       在TIFF 6.0中定义了许多扩展,他们允许TIFF提供以下通用功能:

 1.  前面提到的集中压缩方法;

 2.  多种色彩表示方法;

 3.   图像质量增强;

 4.   特殊图像效果;

 5.  文档的存储和检索帮助。

格式复杂:

        TIFF文件的复杂性给开发者带来了一些问题。一方面,要写一种能够识别所有不同标记的软件非常困难。另一方面,一个TIFF文件可以包含多个图像,每个图像都有自己的IFD和一系列标记,并且采用了多种压缩算法。这样也增加程序涉及的复杂度。


下面就TIFF文件结构做大致描述:

TIFF文件以.tif为扩展名。其数据格式是一种3级体系结构,从高到低依次为:文件头,一个或多个称为IFD的包含参数属性的标签的目录和数据。

图像文件头信息(Image File Header):8字节头信息

Bytes 0-1: 字节序标识: 4949.H表示小端字节序;4D4D.H表示大端字节序。

Bytes 2-3:标识任意值,一般取42.H,注意字节序。

Bytes 4-7:指向文件中第一个IFD的偏移量。

                                       


        图像文件目录IFD(Image File Directory):

        Bytes 0-1: 前两个字节代表了此文件文件目录中有多少个目录项(Directory Entry).

        Bytes 2~12*N+1: 每一个目录项12字节;其每一项定义如下:

                    Bytes 0-1:目录项标签,用来表示此目录项的参数属性;

                    Bytes 2-3:表示目录项的数据类型;

                    Bytes 4-7: 数据域的数据长度,长度以第二项表示的数据类型为单位;

                    Bytes 8-11:若数据可以存储在此域,则为这个目录项的对应值,否则为值在文件中偏移量。

       Bytes 12*N+2~12*N+5:下一个IFD在此文件中的字节偏移, 当当前的IFD为文件最后一个IFD时,此域为0。


关于Directory Entry中的tag详细信息,可以参考:https://www.loc.gov/preservation/digital/formats/content/tiff_tags.shtml#intro



阅读全文
0 0