TIFF () — формат хранения растровых графических изображений. TIFF стал популярным форматом для хранения изображений с большой глубиной цвета. Он используется при сканировании, отправке факсов, распознавании текста, в полиграфии, широко поддерживается графическими приложениями. TIFF был выбран в качестве основного графического формата операционной системы NeXTSTEP и из неё поддержка этого формата перешла в Mac OS X. Формат был разработан Стивеном Карлсеном, инженером Aldus Corporation. Компания — владелец спецификаций — Aldus Corporation — впоследствии объединилась с Adobe Systems, владеющей в настоящее время авторским правом на эти спецификации.

Изначально формат поддерживал сжатие без потерь, впоследствии формат был дополнен для поддержки сжатия с потерями в формате JPEG.

Файлы формата TIFF, как правило, имеют расширение .tiff или .tif.

Сигнатура и заголовок файла Заголовок файла содержит сигнатуру и ссылку (смещение) на первый содержательный блок данных в файле.

Сигнатура файла (магическое число) TIFF состоит из двух частей: Байты 0—1 — для определения порядка байтов в файле (представлены в коде шестнадцатеричной системы счисления и в текстовом виде на основе кодировки ASCII): 49 49 («„II“») — при прямом (little-endian) порядке байтов, от названия марки процессоров Intel, использующих такой порядок (см., например, Intel x86) 4D 4D («MM») — при обратном (big-endian) порядке байтов, от названия марки процессоров Motorola, использовавших именно такой порядок (см., например, Motorola 680x0) Байты 2—3 — идентификатор формата TIFF (42 — философское число (ответ на главный вопрос жизни, вселенной и всего такого), никакой смысловой нагрузки не несёт, в последней редакции спецификации [TIFF vision 6.0 — June 3, 1992] формата — всегда имеет указанное значение): 2A 00 — при прямом порядке байтов 00 2A — при обратном порядке байтов

Таким образом, существуют два возможных варианта сигнатуры (в зависимости от порядка байтов в файле): 49 49 2A 00 — при прямом порядке байтов 4D 4D 00 2A — при обратном порядке байтов

Далее, байты 4—7, указано смещение в байтах от начала файла (выровнено по границе WORD (машинное слово)) на первый каталог IFD ().

Поддерживаемые форматы хранения данных Структура формата гибкая и позволяет сохранять изображения в режиме цветов с палитрой, а также в различных цветовых пространствах:

Бинарном (двуцветном, иногда неправильно называемом чёрно-белым) Полутоновом С индексированной палитрой RGB CMYK YCbCr CIE Lab

Поддерживаются режимы 8, 16, 32 и 64 бит на канал при целочисленном, а также 32 и 64 бит на канал при представлении значения пикселя числами с плавающей запятой.

Сжатие Имеется возможность сохранять изображение в файле формата TIFF со сжатием и без сжатия. Степени сжатия зависят от особенностей самого сохраняемого изображения, а также от используемого алгоритма. Формат TIFF позволяет использовать следующие алгоритмы сжатия: PackBits (RLE) Lempel-Ziv-Welch (LZW) LZ77 Deflate

JBIG JPEG CCITT Group 3, CCITT Group 4

При этом JPEG является просто инкапсуляцией формата JPEG в формат TIFF. Формат TIFF позволяет также хранить изображения, сжатые по стандарту JPEG, без потерь данных (Lossless JPEG), но сжатие JPEG-LS в спецификации «TIFF Revision 6.0» не поддерживается.

Алгоритмы CCITT Group 3 и 4 предназначены для кодирования бинарных растровых изображений. Первоначально они были разработаны для сетей факсимильной связи (поэтому иногда их называют Fax 3, Fax 4). В настоящий момент они также используются в полиграфии, системах цифровой картографии и географических информационных системах. Алгоритм Group 3 напоминает RLE, так как кодирует линейные последовательности пикселов, а Group 4 — двумерные поля пикселов.

Метки TIFF является теговым форматом и в нём имеются следующие виды меток:

Основные метки Эти метки составляют ядро формата и в обязательном порядке должны поддерживаться всеми продуктами, реализующими формат TIFF в соответствии со спецификацией.

Код Hex Имя Описание254 0x00FE NewSubfileType Тип данных, хранящихся в этом файле. Эта метка является заменой метке SubfileType, и является очень полезной, когда в одном TIFF файле хранится несколько изображений.2550x00FF SubfileType Тип данных, хранящихся в этом файле (старый).2560x0100 ImageWidth Количество столбцов в изображении.2570x0101 ImageLength Количество строк в изображении.2580x0102 BitsPerSample Количество бит в компоненте. Эта метка предполагает различное число битов в каждом компоненте (хотя в большинстве случаев оно одинаковое). Например, для RGB может быть 8 для всех компонентов — красного, зелёного и голубого, или 8,8,8 для каждого из компонентов.2590x0103 Compression Используемый вид сжатия.2620x0106 PhotometricInterpretation Используемая цветовая модель.2630x0107 Threshholding Вид преобразования серого в чёрное и белое для черно-белых изображений.2640x0108 CellWidth Количество колонок в матрице преобразования из серого в чёрное и белое.2650x0109 CellHeight Количество строк в матрице преобразования из серого в чёрное и белое.2660x010A FillOrder Логический порядок битов в байте.2700x010E ImageDescription Описание изображения.2710x010F Make Производитель изображения.2720x0110 Model Модель или серийный номер.2730x0111 StripOffsets Смещение для каждой полосы изображения в байтах.2740x0112 Orientation Ориентация изображения.2770x0115 SamplesPerPixel Количество компонентов на пиксель.2780x0116 RowsPerStrip Количество строк на полосу.2790x0117 StripByteCounts Количество байт на полосу после компрессии.2800x0118 MinSampleValue Минимальное значение, используемое компонентом.2810x0119 MaxSampleValue Максимальное значение, используемое компонентом.2820x011A XResolution Количество пикселей в ResolutionUnit строки.2830x011B YResolution Количество пикселей в ResolutionUnit столбца.2840x011C PlanarConfiguration Метод хранения компонентов каждого пикселя.2880x0120 FreeOffsets Смещение в байтах к строке неиспользуемых байтов.2890x0121 FreeByteCounts Количество байтов в строке неиспользуемых байтов.2900x0122 GrayResponseUnit Разрешение данных, хранящихся в GrayResponseCurve.2910x0123 GrayResponseCurve Величина плотности серого.2960x0128 ResolutionUnit Разрешение данных, хранящихся в XResolution, YResolution.3050x0131 Software Имя и версия программного продукта.3060x0132 DateTime Дата и время создания изображения.3150x013B HostComputer Компьютер и операционная система, использованные при создании изображения.3160x013C Artist Имя создателя изображения.3200x0140 ColorMap Цветовая таблица для изображений, использующих палитру цветов.3380x0152 ExtraSamples Описание дополнительных компонентов.33432 0x8298 Copyright Имя владельца прав на хранимое изображение.

Расширенные метки Эти метки составляют ядро формата, но, в отличие от основных меток, их поддержка не обязательна.

Специальные метки Специальные метки изначально были определены фирмой Adobe. Они предназначены для хранения в TIFF специальных типов данных производителей программного обеспечения и должны быть зарегистрированы фирмой Adobe.

См. также LibTIFF GeoTIFF

Примечания