TIFF

Tagged Image File Format
Изображение логотипа
Расширение .tif[1][2] или .tiff
MIME-тип image/tiff[1][2]
Разработчик Aldus, сейчас Adobe Systems
Опубликован 1986
Тип формата растровая графика
Развит в EXIF, DCF, TIFF/EP, TIFF/IT, TIFF-FX, GeoTIFF
Сайт adobe.io/open/sta… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

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

Файлы формата 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 (англ. image file directory).

Поддерживаемые форматы хранения данных

[править | править код]

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

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

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

Имеется возможность сохранять изображение в файле формата TIFF со сжатием и без сжатия. Степени сжатия зависят от особенностей самого сохраняемого изображения, а также от используемого алгоритма. Формат TIFF позволяет использовать следующие алгоритмы сжатия:

При этом 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 файле хранится несколько изображений.
255 0x00FF SubfileType Тип данных, хранящихся в этом файле (старый).
256 0x0100 ImageWidth Количество столбцов в изображении.
257 0x0101 ImageLength Количество строк в изображении.
258 0x0102 BitsPerSample Количество бит в компоненте. Эта метка предполагает различное число битов в каждом компоненте (хотя в большинстве случаев оно одинаковое). Например, для RGB может быть 8 для всех компонентов — красного, зелёного и голубого, или 8,8,8 для каждого из компонентов.
259 0x0103 Compression Используемый вид сжатия.
262 0x0106 PhotometricInterpretation Используемая цветовая модель.
263 0x0107 Threshholding Вид преобразования серого в чёрное и белое для черно-белых изображений.
264 0x0108 CellWidth Количество колонок в матрице преобразования из серого в чёрное и белое.
265 0x0109 CellHeight Количество строк в матрице преобразования из серого в чёрное и белое.
266 0x010A FillOrder Логический порядок битов в байте.
270 0x010E ImageDescription Описание изображения.
271 0x010F Make Производитель изображения.
272 0x0110 Model Модель или серийный номер.
273 0x0111 StripOffsets Смещение для каждой полосы изображения в байтах.
274 0x0112 Orientation Ориентация изображения.
277 0x0115 SamplesPerPixel Количество компонентов на пиксель.
278 0x0116 RowsPerStrip Количество строк на полосу.
279 0x0117 StripByteCounts Количество байт на полосу после компрессии.
280 0x0118 MinSampleValue Минимальное значение, используемое компонентом.
281 0x0119 MaxSampleValue Максимальное значение, используемое компонентом.
282 0x011A XResolution Количество пикселей в ResolutionUnit строки.
283 0x011B YResolution Количество пикселей в ResolutionUnit столбца.
284 0x011C PlanarConfiguration Метод хранения компонентов каждого пикселя.
288 0x0120 FreeOffsets Смещение в байтах к строке неиспользуемых байтов.
289 0x0121 FreeByteCounts Количество байтов в строке неиспользуемых байтов.
290 0x0122 GrayResponseUnit Разрешение данных, хранящихся в GrayResponseCurve.
291 0x0123 GrayResponseCurve Величина плотности серого.
296 0x0128 ResolutionUnit Разрешение данных, хранящихся в XResolution, YResolution.
305 0x0131 Software Имя и версия программного продукта.
306 0x0132 DateTime Дата и время создания изображения.
315 0x013B HostComputer Компьютер и операционная система, использованные при создании изображения.
316 0x013C Artist Имя создателя изображения.
320 0x0140 ColorMap Цветовая таблица для изображений, использующих палитру цветов.
338 0x0152 ExtraSamples Описание дополнительных компонентов.
33432 0x8298 Copyright Имя владельца прав на хранимое изображение.

Расширенные метки

[править | править код]

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

Специальные метки

[править | править код]

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

Примечания

[править | править код]
  1. 1 2 Parsons G., Rafferty J., Zilles S. Tag Image File Format (TIFF) - image/tiff, Tag Image File Format (TIFF) - image/tiff MIME Sub-type Registration (англ.): MIME Sub-type RegistrationIETF, 1998. — 8 p. — doi:10.17487/RFC2302
  2. 1 2 Parsons G., Rafferty J. Tag Image File Format (TIFF) - image/tiff, Tag Image File Format (TIFF) - image/tiff MIME Sub-type Registration (англ.): MIME Sub-type RegistrationIETF, 2002. — 8 p. — doi:10.17487/RFC3302
  3. 1 2 TIFF Revision 6.0. Adobe Systems (3 июня 1992). Дата обращения: 31 мая 2012. Архивировано из оригинала 25 июня 2012 года.