Truevision TGA , часто называемый TARGA , — это формат файла растровой графики , созданный Truevision Inc. (теперь часть Avid Technology ). Это был собственный формат плат TARGA и VISTA, которые были первыми графическими картами для IBM-совместимых ПК , поддерживающими отображение высокой цветности или истинного цвета . Это семейство графических карт было предназначено для профессионального компьютерного синтеза изображений и видеоредактирования на ПК; по этой причине обычные разрешения файлов изображений TGA соответствуют разрешениям видеоформатов NTSC и PAL . [2]
TARGA — это аббревиатура от Truevision Advanced Raster Graphics Adapter ; TGA — это аббревиатура от Truevision Graphics Adapter .
Файлы TGA обычно имеют расширение ".tga" на системах PC DOS / Windows и macOS (старые системы Macintosh используют код типа "TPIC" ). Сам формат допускает любую глубину цвета до 255 бит, из которых до 15 бит могут быть выделены для альфа-канала ; [3] однако, на практике поддерживались только битовые глубины 8, 15, 16, 24 и 32, где 16- и 32-битные форматы использовали 1 и 8 бит соответственно для альфа-канала. Цветовые данные могут быть сопоставлены с цветом или в прямом цветовом или истинноцветном формате. Данные изображения могут храниться в необработанном виде или, по желанию, может использоваться сжатие RLE без потерь, похожее на PackBits . Этот тип сжатия плохо работает для типичных фотографических изображений, но приемлемо работает для более простых изображений, таких как значки, мультфильмы и линейные рисунки.
Формат файла TGA был первоначально определен и указан AT&T EPICenter с обратной связью от Island Graphics Inc в 1984 году. AT&T EPICenter был внутренним ответвлением AT&T, созданным для продвижения новых технологий, разработанных AT&T для цветных кадровых буферов . То, что позже стало Truevision, было результатом выкупа AT&T сотрудниками с использованием заемных средств в 1987 году.
Первые две карты EPICenter, VDA (видеоадаптер дисплея) и ICB (плата захвата изображения), использовали первые воплощения формата файла TGA. Расширения файлов ".vda" и ".icb" подразумевали информацию о содержащихся в них данных, специфичных для платы.
Позже Алан Власук (тогдашний глава EPICenter), Брэд Пиллоу (EPICenter) и Стивен Домпьер (президент Island) определили, что необходим более кодифицированный формат файла. Формат файла был создан и реализован Брэдом Пиллоу (EPICenter) и Брайаном Хантом (EPICenter) и был разработан в ответ на эту потребность в менее специфичном для платы формате файла. Было сделано очень простое расширение того, что уже использовалось, и содержало информацию о ширине, высоте, глубине пикселей, связанной цветовой карте и происхождении изображения. Поле метки (до 255 символов) также было включено в первоначальную спецификацию, но использовалось редко.
В то время появился еще один технически превосходный формат файла под названием TIFF , но его использование для полноцветных изображений было весьма ограничено, поскольку реализация и обмен файлами между приложениями, поддерживающими спецификацию TIFF, были довольно сложными и запутанными. Более простая природа формата файла TGA и его переносимость между платформами являются основной причиной его широкого распространения и его продолжающегося успеха в самых разных приложениях по всему миру по сей день.
Первоначально формат файла TGA использовался в программах ICB-PAINT и TARGA-PAINT (позже они стали известны как TIPS), а также в нескольких проектах по онлайн-просмотру недвижимости и видеоконференциям с покадровой записью.
Текущая версия (2.0) включает в себя несколько усовершенствований, таких как «почтовые марки» (более известные как миниатюры ), альфа-канал , значение гаммы и текстовые метаданные , и была разработана Шоном Штайнером из Truevision Inc. под руководством Кевина Фридли и Дэвида Споэльстры в 1989 году.
На момент своего запуска он представлял собой передовой уровень цифровой обработки изображений. Даже сегодня, хотя его максимальная глубина цвета не очень подходит для высококлассных систем допечатной подготовки и интенсивной обработки изображений, TGA по-прежнему широко используется в индустрии анимации и видео , поскольку его основными выходными данными являются стандартные телевизионные экраны, а не цветные печатные страницы. [4]
Несжатые 24-битные изображения TGA относительно просты по сравнению с несколькими другими известными 24-битными форматами хранения: 24-битный TGA содержит только 18-байтовый заголовок, за которым следуют данные изображения в виде упакованных данных RGB. Напротив, BMP требует заполнения строк до 4-байтовых границ, тогда как TIFF и PNG являются контейнерами метаданных , которые не размещают данные изображения или атрибуты в фиксированном месте внутри файла.
32-битные изображения TGA содержат альфа-канал или ключевой сигнал и часто используются в программах- генераторах символов, таких как Avid Deko.
Все значения имеют прямой порядок байтов ; номера полей и подполей соответствуют версии 2.0 спецификации.
Версия 2 добавила область расширения и нижний колонтитул. Область разработчика существует для хранения информации, специфичной для приложения.
Длина идентификатора изображения (поле 1)
0–255 Количество байтов, из которых состоит поле идентификатора изображения. Поле идентификатора изображения может содержать любую информацию, но обычно оно содержит дату и время создания изображения или серийный номер.
Начиная с версии 2.0 спецификации TGA дата и время создания изображения учитываются в области расширения.
Тип цветовой карты (поле 2)
имеет значение:
Тип изображения (поле 3)
перечисляется в нижних трех битах, с четвертым битом как флаг для RLE. Некоторые возможные значения:
Тип изображения 1 и 9: В зависимости от значения глубины пикселя представление данных изображения представляет собой 8-, 15- или 16-битный индекс в цветовой карте, которая определяет цвет пикселя. Тип изображения 2 и 10: Данные изображения являются прямым представлением цвета пикселя. Для глубины пикселя 15 и 16 бит каждый пиксель хранится с 5 битами на цвет. Если глубина пикселя составляет 16 бит, самый верхний бит зарезервирован для прозрачности. Для глубины пикселя 24 бита каждый пиксель хранится с 8 битами на цвет. 32-битная глубина пикселя определяет дополнительный 8-битный альфа-канал. Тип изображения 3 и 11: Данные изображения являются прямым представлением данных в оттенках серого. Глубина пикселя составляет 8 бит для изображений этого типа.
Спецификация цветовой карты (поле 4)
имеет три подполя:
В случае, если изображение фактически использует не всю цветовую карту, ненулевой индекс первой записи позволяет сохранить в файле только необходимую часть цветовой карты.
Спецификация изображения (поле 5)
имеет шесть подполей:
Бит 4 байта дескриптора изображения указывает на порядок пикселей справа налево, если установлен. Бит 5 указывает на порядок сверху вниз. В противном случае пиксели хранятся в порядке снизу вверх, слева направо. [3]
Версия 1.0 спецификации TGA была очень простой, и многим разработчикам требовалось хранить больше информации, поэтому они решили добавлять в свои файлы дополнительные разделы, относящиеся только к их приложению. [ необходима цитата ]
В версии 2.0 спецификации эти специфичные для приложения улучшения/дополнения поддерживаются областью разработчика. Только смещение и размер области разработчика имеют значение для спецификации, и разработчики могут свободно добавлять в область все, что захотят.
Если декодер TGA не может интерпретировать информацию в области разработчика, он, как правило, игнорирует ее, поскольку предполагается, что она была создана другим приложением. Разработчикам рекомендуется встраивать логику в свои приложения, чтобы определить, совместимы ли данные в области разработчика с приложением; одним из шагов к этому является проверка идентификатора программного обеспечения в нижнем колонтитуле файла.
Если файл TGA содержит нижний колонтитул, скорее всего, это файл TGA версии 2. Нижний колонтитул — это последние 26 байт файла, из которых последние 18 являются постоянными.
В более старой версии спецификации формата файла TGA, взятой из Приложения C к Техническому руководству Truevision, указано, что пакеты с кодировкой длины серии (RLE) могут пересекать строки развертки: «Для пакета длины серии за заголовком следует одно цветовое значение, которое, как предполагается, повторяется указанное в заголовке число раз. Пакет может пересекать строки развертки (начинаться на одной строке и заканчиваться на следующей)».
Однако на странице 24 спецификации TGA v2.0 указано прямо противоположное: «Пакеты длин серий никогда не должны кодировать пиксели из более чем одной строки сканирования . Даже если конец одной строки сканирования и начало следующей содержат пиксели с одинаковым значением, их следует кодировать как отдельные пакеты. Другими словами, пакеты длин серий не должны переходить с одной строки на другую».
Следовательно, считыватели TGA должны иметь возможность обрабатывать пакеты данных RLE, пересекающие строки сканирования, поскольку это было частью исходной спецификации. Однако при сохранении (создании) файлов TGA необходимо будет ограничить пакеты данных RLE границами строк сканирования, чтобы соответствовать новой спецификации TGA v2.0.