Словарь

JFIF: что это за версия и что она означает?

JFIF означает JPEG File Interchange Format, формат файлов, которые обычно называют изображениями JPEG. Версия JFIF показывает, какой версии этого формата следует файл.

jfif-version

JFIF расшифровывается как JPEG File Interchange Format, а JPEG как Joint Photographic Experts Group. JFIF это формат файла, который хранит данные изображения JPEG, чтобы их могли открывать разные программы и компьютеры.

Версия JFIF это поле метаданных внутри файла JPEG. Оно показывает, какой версии спецификации JFIF следует файл, например 1.01 или 1.02. Это поле есть в файлах JPG, потому что JFIF это формат только для изображений JPEG.

Что JFIF добавляет к изображению JPEG

Стандарт JPEG определяет, как сжимаются данные изображения. Файл JFIF это обычный файл JPEG с одним дополнительным блоком данных, называемым сегментом APP0. Этот блок идет сразу после маркера начала изображения.

Данные в сегменте APP0 начинаются с текста JFIF. Сегмент хранит сведения, которых нет в сжатых данных изображения:

  • Версия JFIF
  • Горизонтальная и вертикальная плотность пикселей с единицей разрешения в дюймах, сантиметрах или без единицы
  • Соотношение сторон пикселя, которое программа вычисляет по двум значениям плотности
  • Необязательный маленький предварительный просмотр изображения, называемый эскизом

JFIF также задает цветовую модель. Изображение JFIF имеет 1 канал только с яркостью или 3 канала в цветовом пространстве YCbCr.

Какие файлы его содержат

Тип MIME image/jpeg был определен для изображений JPEG в формате JFIF. Расширения файлов .jpg, .jpeg, .jpe, .jif и .jfif относятся к этому формату. Поэтому файл, имя которого оканчивается на .jfif, содержит тот же тип изображения, что и файл .jpg.

Цифровые камеры обычно сохраняют фотографии JPEG в формате Exif. Exif хранит свои метаданные в основном в сегменте APP1, и этот сегмент также должен идти сразу после начала изображения. Поскольку оба сегмента должны быть первыми, файл не может одновременно соответствовать JFIF и Exif.

Некоторые программы по-прежнему записывают сегмент JFIF перед сегментом Exif. В таком файле вы видите и версию JFIF, и версию Exif.

Как выглядят значения

Версия JFIF хранится в 2 байтах. Первый байт содержит старший номер версии, второй байт младший номер. Версия 1.02 хранится как байты 01 и 02.

ExifTool показывает это поле как JFIFVersion. Он выводит старший номер, точку и двухзначный младший номер. Реестры форматов перечисляют 3 версии JFIF:

  • 1.00: ранняя версия спецификации
  • 1.01: версия перед 1.02
  • 1.02: версия от 1 сентября 1992 года

Откуда берется значение

Программа, которая сохраняет файл JPEG, записывает сегмент APP0 и номер версии в нем. ITU опубликовал JFIF как Рекомендацию T.871 в 2011 году, а ISO и IEC публикуют тот же текст как ISO/IEC 10918-5. Этот стандарт основан на версии 1.02, и файлы, которые ему соответствуют, должны хранить значение 1.02.

Программы на основе библиотеки libjpeg по умолчанию записывают 1.01. В документации указано устанавливать 1.02, когда программа добавляет расширенный сегмент из версии 1.02. Поэтому файл, сохраненный сегодня, может показывать 1.01 или 1.02.

Почему это важно для вашего файла

Версия показывает программе, может ли она прочитать данные JFIF. В спецификации указано, что файл обычно можно декодировать, если его старший номер версии совпадает со старшим номером версии, которую поддерживает программа.

Версия также показывает, какие эскизы может содержать файл. Расширенный сегмент под названием JFXX разрешен только в версии 1.02 и новее. Сегмент JFXX может содержать эскиз, сжатый JPEG, или несжатый эскиз.

Файл JPEG без версии JFIF не содержит сегмента JFIF. Это нормально для фотографий, которые камера сохранила в формате Exif.

Мета-ключи