Введение

Формат файла изображения с несколькими версиями
Формат обмена файлами JPEG (JFIF) — это стандарт формата файла изображения, опубликованный как Рекомендация ITU T T.871 и ISO/IEC 10918-5. Он определяет дополнительные спецификации для формата-контейнера, содержащего данные изображения, закодированные алгоритмом JPEG. Базовые спецификации для формата-контейнера JPEG определены в Приложении B стандарта JPEG, известном как JPEG Interchange Format (JIF). JFIF разработан на основе JIF для устранения некоторых его ограничений, включая излишнюю сложность, регистрацию выборок компонентов, разрешение, соотношение сторон и цветовое пространство. Поскольку JFIF не является исходным стандартом JPG, можно было бы ожидать другой тип MIME. Однако он по-прежнему зарегистрирован как "image/jpeg" (указывая на его основной формат данных, а не на добавленную информацию). JFIF несовместим с более новым форматом обмена изображениями Exchangeable image file format (Exif).

Цель

JFIF определяет ряд деталей, которые не специфицированы стандартом JPEG Часть 1 (ISO/IEC 10918-1, Рекомендация ITU-T T.81).

Регистрация образца компонента

JPEG позволяет различным компонентам (таким как Y, Cb и Cr) иметь разные разрешения, но не определяет, как должны быть выровнены эти отличающиеся массивы выборок (которые формируют растровые изображения). Информация, формирующая пиксели, представляется с расчетом на указание прямоугольников по их центрам, а не в виде прямых пиксельных данных или методом "первый угол и заливка", что встречается редко.

Разрешение и соотношение сторон

Стандарт JPEG не предусматривает методов кодирования разрешения или соотношения сторон изображения. JFIF предоставляет информацию о разрешении или соотношении сторон посредством расширения сегмента приложения к JPEG. Он использует сегмент приложения №0, заголовок которого состоит из нулевой строки "JFIF" в кодировке ASCII, за которой следует байт со значением 0, и определяет, что этот сегмент должен быть первым в файле, что упрощает идентификацию файла JFIF. Изображения Exif, записанные цифровыми камерами, как правило, не содержат этот сегмент, но в остальном обычно соответствуют стандарту JFIF.

Цветовое пространство

Стандарт JPEG, используемый для кодирования сжатия в файлах JFIF, не определяет, какое цветовое кодирование следует использовать для изображений. JFIF определяет используемую цветовую модель: либо Y для оттенков серого, либо YCbCr, производный от цветовых первичных RGB, как определено в CCIR 601 (ныне известный как Rec. ITU R BT.601), за исключением иного масштабирования "полного диапазона" компонентов Y, Cb и Cr. В отличие от "студийного диапазона", определенного в CCIR 601, в котором черный представлен Y=16, а белый – Y=235, и значения за пределами этого диапазона доступны для обеспечения "заголовка" и "подошвы" при обработке сигнала, JFIF использует все 256 уровней 8-битного представления, так что Y=0 соответствует черному, а Y=255 – пиковому белому. Цветовые первичные RGB, определенные в JFIF через CCIR 601, также несколько отличаются от того, что стало общепринятой практикой в более новых приложениях (например, они незначительно отличаются от цветовых первичных, определенных в sRGB). Более того, CCIR 601 (до 2007 года) не предоставлял точного определения цветовых первичных RGB, а полагался на практику телевизионной индустрии. Цветовая интерпретация изображения JFIF может быть улучшена путем встраивания профиля ICC, метаданных цветового пространства или тега sRGB и использования приложения, которое интерпретирует эту информацию.

Формат файла

Файл JFIF состоит из последовательности маркеров или сегментов маркеров (подробности см. в JPEG, Синтаксис и структура). Маркеры определены в первой части стандарта JPEG. В 1996 году RFC 2046 определил, что формат изображения, используемый для передачи JPEG-изображений по сети Интернет, должен быть JFIF. MIME-тип "image/jpeg" должен быть закодирован как JFIF. Однако на практике практически любое программное обеспечение для работы с Интернетом может декодировать любое базовое JIF-изображение, использующее компоненты Y или YCbCr, независимо от соответствия стандарту JFIF. Со временем компания C Cube была реструктурирована (и в конечном итоге преобразована в Harmonic, LSI Logic, Magnum Semiconductor, Avago Technologies, Broadcom, GigOptix, GigPeak и т. д.) и утратила интерес к документу. Спецификация не имела официального издателя до тех пор, пока примерно в 2009 году её не взяли под контроль Ecma International и Совместная группа экспертов по фотосъёмке ITU-T/ISO/IEC, чтобы предотвратить её потерю и обеспечить возможность официальной ссылки на неё в стандартных публикациях, а также улучшить её редакционное качество. Она была опубликована ECMA в 2009 году в виде технического отчета № 98, чтобы сохранить исторические данные, и официально стандартизирована ITU-T в 2011 году как Рекомендация T.871 и ISO/IEC в 2013 году как ISO/IEC 10918-5. Более поздние публикации включали редакционные улучшения, но не содержали существенных технических изменений.

Стандарты

Hamilton, Eric: JPEG File Interchange Format, Version 1.02 (PDF, 0.02 МБ) 1 сентября 1992
Рекомендация ITU T T.871: Информационные технологии – Цифровое сжатие и кодирование изображений с непрерывной тональностью: JPEG File Interchange Format (JFIF) (PDF и Microsoft Word, 0.2 МБ) Утверждена 14 мая 2011 года; опубликована 11 сентября 2012
Рекомендация ITU T T.81: Информационные технологии – Цифровое сжатие и кодирование изображений с непрерывной тональностью – Требования и рекомендации (PDF и Microsoft Word, 1.5 МБ) Утверждена 18 сентября 1992 года; опубликована 14 апреля 2004 года