Alles over TGA bestanden
Het TGA-formaat (Truevision Graphics Adapter)
TGA (Truevision Graphics Adapter), vaak ook wel TARGA (Truevision Advanced Raster Graphics Adapter) genoemd, is een rastergrafiekformaat voor digitale beeldgegevens. Het formaat werd in 1984 ontwikkeld[1] door AT&T; EPICenter in samenwerking met Island Graphics Inc. en diende als native bestandsformaat voor de TARGA- en VISTA-grafische kaarten – de eerste grafische kaarten voor IBM-compatibele pc's met ondersteuning voor High-Color en True-Color.
Ontwikkeling en standaardisatie
AT&T; EPICenter was een interne spin-off van AT&T; voor de commercialisering van nieuwe framebuffer-technologieën. De ontwikkelaars Brad Pillow en Bryan Hunt creëerden het TGA-formaat als een hardware-onafhankelijk alternatief voor de kaartspecifieke formaten VDA en IC[1]B. Na een management-buy-out in 1987 ontstond uit EPICenter het bedrijf Truevision Inc.[1]
De huidige versie 2.0 werd in januari 1991 door Truevision uit[2]gebracht. Deze versie breidde het oorspronkelijke formaat uit met optionele structuren: Extension Area met metadata (auteur, datum, gammawaarde, enz.), Developer Area voor toepassingsspecifieke gegevens en een File Footer voor versieherken[2]ning.
Technische structuur
De basisstructuur van een TGA-bestand bestaat uit een header van 18 bytes, gevolgd door optionele beeldinformatie, het kleurenpalet (bij geïndexeerde afbeeldingen) en de eigenlijke beeldgegevens[2]. TGA-bestanden gebruiken de Little-Endian-[2]bytevolgorde.
De header definieert:
Afbeeldingstype (color-mapped, true-color, grayscale – telkens ongecomprimeerd of RLE-gecomprimeerd)
Afmetingen en positie van de afbeelding
Bits per pixel (8, 16, 24 of 32 bit)[2]
Aantal attribuut-/alfabits
Pixelindeling (bottom-up/top-down, left-right/right-left) en interleaving-modus (in de praktijk altijd non-interleaved)[2]
Ondersteunde afbeeldingstypen
TGA definieert drie basistypen[2]:
Pseudo-Color (Type 1): Elke pixelwaarde is een index in een kleurenpalet met programmeerbare RGB-waarden.
True-Color (Type 2): Elke pixelwaarde bevat direct de RGB-componenten. Bij 32 bit komen daar 8 bit voor het alfakanaal bij.
Grayscale (Type 3): Elke pixelwaarde vertegenwoordigt een grijswaarde zonder kleurenpalet.
Alle drie de typen bestaan bovendien als RLE-gecomprimeerde varianten (Type 9, 10, 11)[2].
RLE-compressie
De optionele Run-Length-Encoding-compressie werkt met twee pakkett[2]ypen:
Run-Length Packets: Een header-byte (bit 7 = 1) en een enkele pixelwaarde die wordt herhaald. De onderste 7 bits coderen het aantal minus 1 (1-128 pixels per pakket).
Raw-pakketten: een header-byte (bit 7 = 0) gevolgd door het overeenkomstige aantal verschillende pixelwaarden.
Belangrijk: in versie 2.0 mogen RLE-pakketten niet over regeleinden heen gaan[2]. Versie 1.0 stond dit nog toe, waardoor TGA-lezers beide varianten moeten ondersteunen. In de praktijk zie ik ook in versie 2.0 RLE-pakketten die over regeleinden heen lopen.
Extension Area (versie 2.0)
Het optionele uitbreidingsgebied omvat 495 bytes met gestandaardiseerde vel[2]den:
Naam auteur (40 tekens)
Opmerkingen auteur (4×80 tekens)
Datum/tijdstempel (6 SHORT-waarden voor maand, dag, jaar, uur, minuut, seconde)
Job Name/ID (40 tekens)
Job Time (geaccumuleerde tijd in uren, minuten, seconden)
Software ID en versie
Key Color (transparantiekleur/achtergrondkleur)
Pixel Aspect Ratio
Gamma Value
Verwijzing naar Color Correction Table, Postage Stamp Image en Scan Line Table
Versieherkenning
TGA 2.0-bestanden eindigen met een foot[2]er van 26 bytes. De bytes 8-23 bevatten de ASCII-handtekening "TRUEVISION-XFILE", gevolgd door een punt (byte 24) en een nul-terminator (byte 25). Als deze handtekening ontbreekt, gaat het om het originele formaat (versie 1.0).
Bestandsextensies
De aanbevolen standaardextensie is .tga voor DOS, UNIX en Windows[2]. Op klassieke Macintosh-systemen wordt de typecode TPIC gebruikt. In het verleden bestonden ook .vda, .icb en .vst voor specifieke grafische kaarttypes[2].
Technische bijzonderheden
In vergelijking met andere 24-bits formaten is de TGA-structuur eenvoudig (maar er zijn ook randgevallen): een ongecomprimeerde 24-bits TGA bestaat uit de 18-byte header, optioneel een Image ID (0-255 bytes, lengte gedefinieerd in byte 0 van de header)[2], optioneel Color Map Data en de gecomprimeerde RGB-beeldgegevens. BMP vereist regelopvulling op 4-byte-grenzen, terwijl TIFF en PNG als metadatacontainers geen vaste positie voor beeldgegevens hebben.
De beeldresoluties van TGA-bestanden komen traditioneel overeen met de NTSC- en PAL-videoformaten, aangezien de oorspronkelijke TARGA-kaarten waren[1] ontworpen voor professionele computersynthese en videobewerking. Andere resoluties zijn echter natuurlijk mogelijk.
Toepassingsgebieden
TGA wordt nog steeds gebruikt in de video- en animatie-industrie, omdat de doeluitvoer voornamelijk gericht is op beeldschermen en niet op afdrukken[1] met hoge resolutie. Bij de ontwikkeling van videogames dient TGA vaak als textuurformaat, omdat het alfakanalen ondersteunt en ongecomprimeerd of verliesvrij gecomprimeerd werkt.
Bronnen
[1] True Vision TGA – Wikipedia
[2] Truevision Inc. (1991). Truevision TGA File Format Specification Version 2.0
Converteren, openen en bewerken van TGA bestanden
Details over TGA bestanden
- MIME-type voor TGA
Geen reacties