TIFF
TIFF (англ. Tagged Image File Format) — формат хранения растровых графических изображений. TIFF стал популярным форматом для хранения изображений с большой глубиной цвета. Он используется при сканировании, отправке факсов, распознавании текста, в полиграфии, широко поддерживается графическими приложениями. TIFF был выбран в качестве основного графического формата операционной системы NeXTSTEP и из неё поддержка этого формата перешла в Mac OS X. Формат был разработан Aldus Corporation в сотрудничестве с Microsoft для использования с PostScript. Компания — владелец спецификаций — Aldus Corporation — впоследствии объединилась с Adobe Systems, владеющей в настоящее время авторским правом на эти спецификации[3].
Tagged Image File Format | |
---|---|
Расширение |
.tif [1][2] или .tiff |
MIME-тип | image/tiff[1][2] |
Разработчик | Microsoft и Aldus, сейчас Adobe Systems |
Опубликован | 1986 |
Тип формата | растровая графика |
Развит в | EXIF, DCF, TIFF/EP, TIFF/IT, TIFF-FX, GeoTIFF |
Сайт | adobe.io/open/sta… (англ.) |
Медиафайлы на Викискладе |
Изначально формат поддерживал сжатие без потерь, впоследствии формат был дополнен для поддержки сжатия с потерями в формате 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.
Примечания
- 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 Registration — IETF, 1998. — 8 p. — doi:10.17487/RFC2302
- 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 Registration — IETF, 2002. — 8 p. — doi:10.17487/RFC3302
- TIFF Revision 6.0 (недоступная ссылка). Adobe Systems (3 июня 1992). Дата обращения: 31 мая 2012. Архивировано 25 июня 2012 года.