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

        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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章