Truevision TGA , a menudo denominado TARGA , es un formato de archivo de gráficos rasterizados creado por Truevision Inc. (ahora parte de Avid Technology ). Era el formato nativo de las placas TARGA y VISTA, que fueron las primeras tarjetas gráficas para PC compatibles con IBM en admitir la visualización de color de alta definición o color verdadero . Esta familia de tarjetas gráficas estaba destinada a la síntesis de imágenes por computadora profesional y la edición de video con PC; por esta razón, las resoluciones habituales de los archivos de imagen TGA coinciden con las de los formatos de video NTSC y PAL . [2]
TARGA es un acrónimo de Truevision Advanced Raster Graphics Adapter ; TGA es una sigla para Truevision Graphics Adapter .
Los archivos TGA suelen tener la extensión ".tga" en sistemas PC DOS / Windows y macOS ( los sistemas Macintosh más antiguos utilizan el código de tipo "TPIC" ). El formato en sí permite cualquier profundidad de bits de píxel de hasta 255, de los cuales hasta 15 bits pueden dedicarse a un canal alfa ; [3] sin embargo, las únicas profundidades de bits admitidas en la práctica eran 8, 15, 16, 24 y 32, donde los formatos de 16 y 32 bits usaban 1 y 8 bits respectivamente para el canal alfa. Los datos de color pueden ser mapeados en color , o en formato de color directo o color verdadero . Los datos de imagen pueden almacenarse sin procesar o, opcionalmente, se puede emplear una compresión RLE sin pérdida similar a PackBits . Este tipo de compresión funciona mal para imágenes fotográficas típicas, pero funciona aceptablemente bien para imágenes más simples, como íconos, dibujos animados y dibujos lineales.
El formato de archivo TGA fue definido y especificado originalmente por AT&T EPICenter con la retroalimentación de Island Graphics Inc en 1984. AT&T EPICenter fue una empresa derivada interna de AT&T creada para comercializar nuevas tecnologías que AT&T había desarrollado para los buffers de cuadros en color . Lo que luego se convirtió en Truevision fue el resultado de una compra apalancada de las acciones de los empleados de AT&T en 1987.
Las dos primeras tarjetas de EPICenter, la VDA (adaptador de pantalla de vídeo) y la ICB (placa de captura de imágenes), utilizaban las primeras versiones del formato de archivo TGA. Las extensiones de archivo ".vda" y ".icb" implicaban información sobre los datos específicos de la placa que contenían.
Más tarde, Alan Wlasuk (en aquel entonces director de EPICenter), Brad Pillow (EPICenter) y Steven Dompier (presidente de Island) determinaron que era necesario un formato de archivo más codificado. El formato de archivo fue creado e implementado por Brad Pillow (EPICenter) y Bryan Hunt (EPICenter) y se desarrolló en respuesta a esta necesidad de un formato de archivo menos específico para la placa. Se realizó una extensión muy simple a lo que ya se usaba y contenía información sobre el ancho, la altura, la profundidad de píxeles, un mapa de colores asociado y el origen de la imagen. También se incluyó un campo de etiqueta (hasta 255 caracteres) en la especificación inicial, pero rara vez se usó.
En esa época, también apareció otro formato de archivo técnicamente superior llamado TIFF , pero su uso para imágenes en color verdadero era muy limitado, ya que la implementación y el intercambio de archivos entre aplicaciones compatibles con la especificación TIFF era bastante difícil y complicado. La naturaleza más simple del formato de archivo TGA y su portabilidad entre plataformas es la razón principal de su adopción generalizada y su éxito continuo en una amplia variedad de aplicaciones en todo el mundo hasta el día de hoy.
Inicialmente, el formato de archivo TGA se utilizó en los programas ICB-PAINT y TARGA-PAINT (lo que más tarde se conocería como TIPS) y para varios proyectos de navegación inmobiliaria en línea y teleconferencias de vídeo con imágenes fijas.
La versión actual (2.0) incluye varias mejoras como "sellos postales" (mejor conocidos como miniaturas ), un canal alfa , valor gamma y metadatos textuales , y fue creada por Shawn Steiner de Truevision Inc. con la dirección de Kevin Friedly y David Spoelstra en 1989.
En el momento de su lanzamiento, representaba lo último en tecnología de procesamiento de imágenes digitales. Incluso hoy, aunque su máxima profundidad de color no es adecuada para sistemas de procesamiento intensivo de imágenes de preimpresión de alta gama, el TGA todavía se utiliza ampliamente en toda la industria de la animación y el video porque sus principales resultados previstos son pantallas de televisión estándar, no páginas impresas en color. [4]
Las imágenes TGA de 24 bits sin comprimir son relativamente simples en comparación con otros formatos de almacenamiento de 24 bits importantes: un TGA de 24 bits contiene solo un encabezado de 18 bytes seguido de los datos de la imagen como datos RGB empaquetados. Por el contrario, BMP requiere filas de relleno hasta límites de 4 bytes, mientras que TIFF y PNG son contenedores de metadatos que no colocan los datos o atributos de la imagen en una ubicación fija dentro del archivo.
Las imágenes TGA de 32 bits contienen un canal alfa, o señal clave, y a menudo se utilizan en programas generadores de caracteres como Avid Deko.
Todos los valores son little-endian ; los números de campo y subcampo corresponden a la versión 2.0 de la especificación.
La versión 2 agregó el área de extensión y el pie de página. El área del desarrollador existe para almacenar información específica de la aplicación.
Longitud de identificación de la imagen (campo 1)
0–255 La cantidad de bytes que componen el campo de ID de imagen. El campo de ID de imagen puede contener cualquier información, pero es común que contenga la fecha y la hora en que se creó la imagen o un número de serie.
A partir de la versión 2.0 de la especificación TGA, la fecha y la hora en que se creó la imagen se incluyen en el área de extensión.
Tipo de mapa de color (campo 2)
tiene el valor:
Tipo de imagen (campo 3)
se enumera en los tres bits inferiores, y el cuarto bit es un indicador de RLE. Algunos valores posibles son:
Tipo de imagen 1 y 9: según el valor de profundidad de píxel, la representación de los datos de la imagen es un índice de 8, 15 o 16 bits en un mapa de colores que define el color del píxel. Tipo de imagen 2 y 10: los datos de la imagen son una representación directa del color del píxel. Para una profundidad de píxel de 15 y 16 bits, cada píxel se almacena con 5 bits por color. Si la profundidad de píxel es de 16 bits, el bit superior se reserva para la transparencia. Para una profundidad de píxel de 24 bits, cada píxel se almacena con 8 bits por color. Una profundidad de píxel de 32 bits define un canal alfa adicional de 8 bits. Tipo de imagen 3 y 11: los datos de la imagen son una representación directa de los datos en escala de grises. La profundidad de píxel es de 8 bits para las imágenes de este tipo.
Especificación del mapa de colores (campo 4)
tiene tres subcampos:
En caso de que la imagen no utilice todo el mapa de colores, un índice de primera entrada distinto de cero permite almacenar solo una parte requerida del mapa de colores en el archivo.
Especificación de la imagen (campo 5)
tiene seis subcampos:
El bit 4 del byte descriptor de imagen indica el orden de píxeles de derecha a izquierda, si está configurado. El bit 5 indica un orden de arriba a abajo. De lo contrario, los píxeles se almacenan en orden de abajo a arriba y de izquierda a derecha. [3]
La versión 1.0 de la especificación TGA era muy básica y muchos desarrolladores necesitaban almacenar más información, por lo que optaron por agregar secciones adicionales a sus archivos, específicas solo para su aplicación. [ cita requerida ]
En la versión 2.0 de la especificación, estas mejoras y extras específicos de la aplicación son compatibles con el área del desarrollador. Solo el desplazamiento y el tamaño del área del desarrollador son relevantes para la especificación, y los desarrolladores tienen la libertad de agregar lo que quieran en el área.
Si un decodificador TGA no puede interpretar la información en el área del desarrollador, generalmente la ignorará, ya que se supone que fue creada por una aplicación diferente. Se recomienda que los desarrolladores incorporen lógica en sus aplicaciones para determinar si los datos en el área del desarrollador son compatibles con la aplicación; un paso para lograrlo es verificar el ID del software en el pie de página del archivo.
Si un archivo TGA contiene un pie de página, es probable que sea un archivo TGA versión 2. El pie de página son los últimos 26 bytes del archivo, de los cuales los últimos 18 son constantes.
La versión anterior de la especificación del formato de archivo TGA tomada del Apéndice C de la Guía técnica de Truevision establece que los paquetes codificados por longitud de ejecución (RLE) pueden cruzar líneas de escaneo: "Para el paquete de longitud de ejecución, el encabezado es seguido por un único valor de color, que se supone que se repite la cantidad de veces especificada en el encabezado. El paquete puede cruzar líneas de escaneo (comenzar en una línea y terminar en la siguiente)".
Sin embargo, la página 24 de la especificación TGA v2.0 establece exactamente lo contrario: "Los paquetes de longitud de recorrido nunca deben codificar píxeles de más de una línea de escaneo . Incluso si el final de una línea de escaneo y el comienzo de la siguiente contienen píxeles del mismo valor, los dos deben codificarse como paquetes separados. En otras palabras, los paquetes de longitud de recorrido no deben pasar de una línea a otra".
En consecuencia, los lectores TGA deben poder manejar paquetes de datos RLE que crucen líneas de escaneo, ya que esto formaba parte de la especificación original. Sin embargo, al guardar (crear) archivos TGA, será necesario limitar los paquetes de datos RLE a los límites de las líneas de escaneo para cumplir con la nueva especificación TGA v2.0.