TIFF


TIFF (англ. Tagged Image File Format) — формат хранения растровых графических изображений. 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 (англ. image file directory).

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

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

  • Бинарном (двуцветном, иногда неправильно называемом чёрно-белым)
  • Полутоновом
  • С индексированной палитрой
  • 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.