Hva er en TIFF-fil?
TIFF eller TIF, Tagged Image File Format, representerer rasterbilder som er ment for bruk på en rekke enheter som samsvarer med denne filformatstandarden. Den er i stand til å beskrive bilevel-, gråtone-, palettfarge- og fullfargebildedata i flere fargerom. Den støtter tapsfrie så vel som tapsfrie komprimeringsordninger for å velge mellom plass og tid for applikasjoner som bruker formatet. Formatet er ikke maskinavhengig og er fritt for grenser som prosessor, operativsystem eller filsystemer.
Kort historie om TIFF-filformat
TIFF-filformatet ble opprinnelig opprettet av Aldus Corporation høsten 1986, etter en rekke møter med ulike skannerprodusenter og programvareutviklere. Det primære formålet med TIFF-filformatet var å gi et felles skannet bildefilformat for alle stasjonære skannerleverandører. Fra og med støtte for kun binært bildeformat, utviklet formatet seg til støtte for gråtoner og fargebilder med tiden. Den første versjonen av TIFF-filformatspesifikasjonene kan merkes som Reivision 3.0, ettersom det var to tidligere utkast. En større revisjon 5.0 ble publisert i 1988 som la til støtte for palettfargebilder og LZW-komprimering. Revisjon 6.0 av TIFF-filformater ble publisert i 1992 etter det. I 1994 kjøpte Adobe Systems Aldus og spesifikasjonene er nå tilgjengelige og vedlikeholdes av Adobe Systems.
Spesifikasjoner for TIFF-filformat
TIFF-filformatet er utvidbart og har gjennomgått flere revisjoner som gjør det mulig å inkludere en ubegrenset mengde privat informasjon eller informasjon for spesielle formål. En TIFF-fil begynner med en 8-byte-overskrift hvor bytene er tall fra 0 til N. Den største mulige TIFF-filen er 2**32 byte lang. Filen begynner med en 8-byte bildefiloverskrift som peker til en bildefil direkte (IFD). En IFD inneholder informasjon om bildet samt pekere til de faktiske bildedataene.
TIFF-filoverskrift
8-byte TIFF-filoverskriften inneholder følgende informasjon:
Byte 0-1: Byterekkefølgen som brukes i filen. Lovlige verdier er:“II”(4949.H)“MM” (4D4D.H).
I “II”-formatet er byte-rekkefølgen alltid fra den minst signifikante byten til den mest signifikante byten, for både 16-biters og 32-biters heltall. Dette kalles little-endian byte-rekkefølge. I “MM”-formatet er byte-rekkefølgen alltid fra mest signifikant til minst signifikant, for både 16-biters og 32-biters heltall. Dette kalles big-endian byte-rekkefølge.
Byte 2-3: Et vilkårlig, men nøye valgt tall (42) som ytterligere identifiserer filen som en TIFF-fil. Byte-rekkefølgen avhenger av verdien til byte 0-1.
Byte 4-7: Forskyvningen (i byte) til den første IFD. Katalogen kan være hvor som helst i filen etter overskriften, men må begynne på en ordgrense. Spesielt kan en bildefilkatalog følge bildedataene den beskriver. Lesere må følge pekerne hvor enn de måtte føre. Begrepet byte-offset brukes alltid i dette dokumentet for å referere til en plassering i forhold til begynnelsen av TIFF-filen. Den første byten i filen har en offset på 0.
Bildefilkatalog
En IFD inneholder informasjon om bildet samt pekere til de faktiske bildedataene. Den består av en 2-byte telling av antall katalogoppføringer (dvs. antall felt), etterfulgt av en sekvens med 12-byte feltoppføringer , etterfulgt av en 4-byte offset av neste IFD (eller 0 hvis ingen). Det må være minst 1 IFD i en TIFF-fil, og hver IFD må ha minst én oppføring.
IFD Entry
Hver 12-byte IFD-oppføring er i følgende format.
Bytes | Description |
---|---|
0-1 | The Tag that identifies the field |
2-3 | The field type |
4-7 | Count of the indicated type |
8-11 | The Value Offset, the file offset (in bytes) of the Value for the field.The Value is expected to begin on a word boundary; the correspond-ing Value Offset will thus be an even number. This file offset may point anywhere in the file, even after the image data |
Et TIFF-felt er en logisk enhet som består av TIFF-taggen og dens verdi. Dette logiske konseptet er implementert som en IFD-oppføring, pluss den faktiske verdien hvis den ikke passer inn i verdi/offset-delen, de siste 4 bytene av IFD-oppføringen. Begrepene TIFF-felt og IFD-oppføring er utskiftbare i de fleste sammenhenger.
Baseline TIFF
Baseline TIFF er kjernen i TIFF, det essensielle som alle vanlige TIFF-utviklere bør støtte i produktene sine. Overholdelse av TIFF-format er underlagt overholdelse av Baseline TIFF-kravene. Disse kravene er godt dokumentert i spesifikasjonsdokumentet 6.0.
Multiple Images Per File
Det kan være mer enn én IFD i en TIFF-fil. Hver IFD definerer en underfil. En potensiell bruk av underfiler er å beskrive relaterte bilder, for eksempel sidene i en faksimileoverføring. En Baseline TIFF-leser er ikke nødvendig for å lese noen IFD-er utover den første.
Bildetyper
Baseline TIFF-bilde har følgende typer:
Bilevel: Et bilevel-bilde inneholder to farger – svart og hvitt. TIFF lar en applikasjon skrive ut tonivådata i enten et hvit-er-null- eller svart-er-null-format. Feltet som registrerer denne informasjonen kalles Photometric Interpretation.
- RGB fullfarge
Fotometrisk tolkningsinformasjon for Bilevel-bilder er som følger:
Tag = 262 (106.H) Type = SHORT Values
Value | Decription |
---|---|
0 | For tonivå- og gråtonebilder: 0 er avbildet som hvitt. Maksimalverdien er avbildet som svart. Dette er normalverdien for komprimering #2 |
1 | BlackIsZero. For tonivå- og gråtonebilder: 0 er avbildet som svart. Maksimalverdien vises som hvit. Hvis denne verdien er spesifisert for komprimering #2, skal bildet vises og skrives ut omvendt. |
GrayScale: Gråtonebilder er en generalisering av tonivåbilder. Bilevel-bilder kan bare lagre svart-hvitt bildedata, men gråtonebilder kan også lagre gråtoner. For å beskrive slike bilder må du legge til eller endre følgende felt. De andre obligatoriske feltene er de samme som kreves for bilevel-bilder. For gråtonebilder, komprimering nr. 1 eller 32773 (PackBits). I Baseline TIFF kan gråtonebilder enten lagres som ukomprimerte data eller komprimeres med PackBits-algoritmen.
BitsPerSample informasjon for gråtonebilder er som følger:
Tag = 258 (102.H) Type = SHORT
Antall bits per komponent. Tillatte verdier for Baseline TIFF-gråskalabilder er 4 og 8, noe som tillater enten 16 eller 256 distinkte gråtoner.
Palette-Color: Palett-fargebilder ligner på gråtonebilder. De har fortsatt én komponent per piksel, men komponentverdien brukes som en indeks til en fullstendig RGB-oppslagstabell. For å beskrive slike bilder, må du legge til eller endre følgende felt. De andre obligatoriske feltene er de samme som for gråtonebilder. Fotometrisk tolkningsinformasjon for Palett-Color-bilde er som følger:
PhotometricInterpretation = 3 (Palette Color). ColorMapTag = 320 (140.H) Type = SHORT N = 3 * (2 BitsPerSample)
Dette feltet definerer et rød-grønn-blå fargekart (ofte kalt en oppslagstabell) for palettfargebilder. I et palettfargebilde brukes en pikselverdi for å indeksere inn i en RGB-oppslagstabell. For eksempel vil en palettfargepiksel med en verdi på 0 vises i henhold til den 0. røde, grønne, blå tripletten. I et TIFF-fargekart kommer alle de røde verdiene først, etterfulgt av de grønne verdiene, deretter de blå verdiene. I ColorMap er svart representert med 0,0,0 og hvit er representert med 65535, 65535, 65535.
RGB full-color: I et RGB-bilde består hver piksel av tre komponenter: rød, grønn og blå. Det er ingen ColorMap. For å beskrive et RGB-bilde må du legge til eller endre følgende felt og verdier. De andre obligatoriske feltene er de samme som kreves for palettfargebilder.
BitsPerSample = 8,8,8. Hver komponent er 8 bits dyp i et Baseline TIFF RGB-bilde.
PhotometricInterpretation = 2 (RGB) and there is no ColorMap.
Tag = 277 (115.H) Type = SHORT Antall komponenter per piksel. Dette tallet er 3 for RGB-bilder, med mindre ekstra prøver er til stede.