Все о файлах TGA
Формат TGA (Truevision Graphics Adapter)
TGA (Truevision Graphics Adapter), часто также называемый TARGA (Truevision Advanced Raster Graphics Adapter), представляет собой растровый графический формат для цифровых изображений. Формат был разработан[1] в 1984 году компанией AT&T; EPICenter в сотрудничестве с Island Graphics Inc. и использовался в качестве собственного формата файлов для видеокарт TARGA и VISTA — первых видеокарт для IBM-совместимых ПК с поддержкой High-Color и True-Color.
Разработка и стандартизация
AT&T; EPICenter была внутренней дочерней компанией AT&T;, занимавшейся продвижением новых технологий фреймбуфера. Разработчики Брэд Пиллоу и Брайан Хант создали формат TGA как независимую от аппаратного обеспечения альтернативу форматам VDA и IC[1]B, специфичным для конкретных плат. После выкупа руководством в 1987 году из EPICenter возникла компания Truevision Inc.[1]
Текущая версия 2.0 была вы[2]пущена Truevision в январе 1991 года. Эта версия расширила исходный формат за счёт дополнительных структур: Extension Area с метаданными (автор, дата, значение гаммы и т. д.), Developer Area для данных, специфичных для приложения, и File Footer для распозна[2]вания версии.
Техническая структура
Основная структура файла TGA состоит из 18-байтового заголовка, за которым следуют дополнительная информация об изображении, цветовая палитра (для индексированных изображений) и собственно данные[2] изображения. Файлы TGA используют порядок[2] байтов Little-Endian.
Заголовок определяет:
Тип изображения (color-mapped, true-color, grayscale — в каждом случае несжатый или сжатый с помощью RLE)
Размеры и положение изображения
Количество бит на пиксель (8, 16, 24 или 32 бита)[2]
Количество битов атрибутов/альфа-каналов
Порядок пикселей (снизу вверх/сверху вниз, слева направо/справа налево) и режим чередования (на практике всегда без чередования)[2]
Поддерживаемые типы изображений
TGA определяет три основных типа[2]:
Псевдоцвет (тип 1): каждое значение пикселя является индексом в палитре цветов с программируемыми значениями RGB.
True-Color (тип 2): каждое значение пикселя напрямую содержит компоненты RGB. При 32 битах добавляется 8 бит для канала альфа.
Grayscale (Тип 3): Каждое значение пикселя представляет собой оттенок серого без цветовой палитры.
Все три типа существуют также в виде вариантов с RLE-сжатием (Тип 9, 10, 11)[2].
Сжатие RLE
Дополнительное сжатие Run-Length-Encoding работает с двумя типа[2]ми пакетов:
Run-Length Packets: один байт заголовка (бит 7 = 1) и одно значение пикселя, которое повторяется. Нижние 7 битов кодируют количество минус 1 (1–128 пикселей на пакет).
Raw Packets: один байт заголовка (бит 7 = 0), за которым следует соответствующее количество различных значений пикселей.
Важно: в версии 2.0 пакеты RLE не должны вы[2]ходить за пределы строк. Версия 1.0 еще позволяла это, поэтому TGA-ридеры должны поддерживать оба варианта. На практике я вижу RLE-пакеты, выходящие за пределы строк, даже в версии 2.0.
Область расширений (версия 2.0)
Дополнительная область Extension Area занимает 495 байт и содержит стандартизированные поля[2]:
Имя автора (40 символов)
Комментарии автора (4×80 символов)
Метка даты/времени (6 значений типа SHORT для месяца, дня, года, часа, минуты, секунды)
Название/ID задания (40 символов)
Время выполнения задания (накопленное время в часах, минутах, секундах)
Идентификатор и версия программного обеспечения
Ключевой цвет (цвет прозрачности/цвет фона)
Соотношение сторон пикселей
Значение гаммы
Указатель на таблицу цветокоррекции, изображение почтовой марки и таблицу сканирующих линий
Распознавание версии
Файлы TGA 2.0 заканчиваются 26-байтовым ко[2]дом. Байты 8–23 содержат ASCII-подпись «TRUEVISION-XFILE», за которой следует точка (байт 24) и нулевой терминатор (байт 25). Если эта подпись отсутствует, речь идет об исходном формате (версия 1.0).
Расширения файлов
Рекомендуемое стандартное расширение — .tga для DOS, UNIX и Windows[2]. На классических системах Macintosh используется код типа TPIC. Исторически существовали также расширения .vda, .icb и .vst для определенных ти[2]пов графических карт.
Технические особенности
По сравнению с другими 24-битными форматами структура TGA проста (но есть и крайние случаи): несжатый 24-битный TGA состоит из 18-байтового заголовка, опционального идентификатора изображения (0–255 байт, длина определяется в байте 0 заголовка)[2], опциональных данных цветовой карты и упакованных данных изображения в формате RGB. BMP требует заполнения строк до границ в 4 байта, в то время как TIFF и PNG, являясь контейнерами метаданных, не имеют фиксированного местоположения для данных изображения.
Разрешения изображений в файлах TGA традиционно соответствуют видеоформатам NTSC и PAL, поскольку первоначальные карты TARGA были[1] разработаны для профессионального компьютерного синтеза изображений и редактирования видео. Однако, конечно, возможны и другие разрешения.
Области применения
TGA по-прежнему используется в индустрии видео и анимации, поскольку конечный результат ориентирован в первую очередь на экраны, а не на печать[1] с высоким разрешением. В разработке видеоигр TGA часто используется в качестве формата текстур, поскольку он поддерживает альфа-каналы и работает в несжатом виде или с сжатием без потерь.
Источники
[1] True Vision TGA — Википедия
[2] Truevision Inc. (1991). Truevision TGA File Format Specification Version 2.0
Комментариев нет