TIFF

TIFF () — формат хранения растровых графических изображений. TIFF стал популярным форматом для хранения изображений с большой глубиной цвета. Он используется при сканировании, отправке факсов, распознавании текста, в полиграфии, широко поддерживается графическими приложениями. TIFF был выбран в качестве основного графического формата операционной системы NeXTSTEP и из неё поддержка этого формата перешла в Mac OS X.
Формат был разработан Aldus Corporation в сотрудничестве с Microsoft для использования с PostScript. Компания — владелец спецификаций — 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
 ZIP

 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 в соответствии со спецификацией.

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

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

См. также 
 LibTIFF
 GeoTIFF

Примечания