Interested Article - TIFF
- 2020-07-07
- 1
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 позволяет использовать следующие алгоритмы сжатия:
При этом 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. (англ.) : MIME Sub-type Registration — IETF , 1998. — 8 p. —
- ↑ Parsons G., Rafferty J. (англ.) : MIME Sub-type Registration — IETF , 2002. — 8 p. —
- ↑ . Adobe Systems (3 июня 1992). Дата обращения: 31 мая 2012. Архивировано из 25 июня 2012 года.
- 2020-07-07
- 1