stringtranslate.com

Формат обмена файлами JPEG

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

JFIF несовместим с новым форматом файлов изображений Exchangeable (Exif).

Цель

JFIF определяет ряд деталей, которые не указаны стандартом JPEG Part 1 ( ISO / IEC 10918-1, Рекомендация ITU-T T.81.) [1]

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

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, Синтаксис и структура ). Маркеры определены в части 1 стандарта JPEG . [1] Каждый маркер состоит из двух байтов: FFза байтом следует байт, который не равен 00или FFи определяет тип маркера. Некоторые маркеры автономны, но большинство из них указывают начало сегмента маркера, содержащего байты данных, в соответствии со следующим шаблоном:

FF xx s1 s2 [data bytes]

Байты s1 и s2 вместе представляют собой 16-битное целое число с обратным порядком байтов, определяющее длину следующих «байтов данных» плюс 2 байта, используемые для представления длины. Другими словами, s1 и s2 определяют количество следующих байтов данных как .

Согласно части 1 стандарта JPEG, приложения могут использовать сегменты маркеров APP и определять значение данных, специфичное для приложения. В стандарте JFIF определены следующие сегменты маркера APP:

Они описаны ниже.

Стандарт JFIF требует, чтобы сегмент маркера JFIF APP0 следовал сразу за маркером SOI. Если используется сегмент маркера расширения JFIF APP0, он должен следовать сразу за сегментом маркера JFIF APP0. [2] Таким образом, файл JFIF будет иметь следующую структуру:

Сегмент маркера JFIF APP0

В обязательном сегменте маркера JFIF APP0 указываются параметры изображения. При желании можно встроить несжатую миниатюру.

Расширение JFIF, сегмент маркера APP0

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

Данные миниатюры зависят от формата миниатюры следующим образом:

Совместимость

Новый формат файлов изображений Exchangeable (Exif) аналогичен JFIF, но эти два стандарта несовместимы. Это связано с тем, что оба стандарта указывают, что их конкретный сегмент приложения (APP0 для JFIF, APP1 для Exif) должен следовать сразу за маркером SOI. На практике многие программы и цифровые камеры создают файлы, содержащие оба сегмента приложения. Это не повлияет на декодирование изображений для большинства декодеров, но плохо спроектированные анализаторы JFIF или Exif могут не распознать файл должным образом.

JFIF совместим с расширениями Adobe Photoshop JPEG «Блок информационных ресурсов» и метаданными модели обмена информацией IPTC , поскольку JFIF не исключает другие сегменты приложений, а расширения Photoshop не обязательно должны быть первыми в файле. Однако Photoshop обычно сохраняет буферы CMYK как четырехкомпонентные файлы «Adobe JPEG», которые не соответствуют JFIF. Поскольку эти файлы не находятся в цветовом пространстве YCbCr, они обычно не декодируются веб-браузерами и другим интернет-программным обеспечением.

История

Разработкой документа JFIF руководил Эрик Гамильтон из C-Cube Microsystems , а соглашение по первой версии было заключено в конце 1991 года на встрече, состоявшейся в C-Cube с участием около 40 представителей различных компьютерных, телекоммуникационных и графических компаний. Вскоре после этого была опубликована незначительная редакция — JFIF 1.01. [3] На протяжении почти 20 лет последней доступной версией была v1.02, опубликованная 1 сентября 1992 года. [2]

В 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 и т. д.), интерес к документу потерялся, а у спецификации не было официального издателя. до тех пор, пока он не был подхвачен Ecma International и Объединенной группой экспертов по фотографии ITU-T/ISO/IEC примерно в 2009 году, чтобы избежать его потери в истории и предоставить возможность официально цитировать его в стандартных публикациях и улучшить его редакционное качество. Он был опубликован ECMA в 2009 году под номером Технического отчета 98, чтобы избежать потери исторических данных, [3] и был официально стандартизирован ITU-T в 2011 году как Рекомендация T.871 [4] и ISO/IEC в 2013 году. как ISO/IEC 10918-5, [5] Новые публикации включали редакционные улучшения, но не имели существенных технических изменений.

Смотрите также

Рекомендации

  1. ^ ab «Рекомендация ITU-T T.81: Информационные технологии. Цифровое сжатие и кодирование неподвижных изображений с непрерывным тоном. Требования и рекомендации» (PDF) . МСЭ-Т (ранее CCITT) . 18 февраля 1992 года . Проверено 15 июня 2015 г.
  2. ^ аб Гамильтон, Эрик (12 сентября 1992 г.). «Формат обмена файлами JPEG, версия 1.02» (pdf, 0,02 МБ) . Проверено 15 июня 2015 г.
  3. ^ ab «Формат обмена файлами JPEG (JFIF)» . ecma-international.org . 2009 . Проверено 15 июня 2015 г.
  4. ^ «Рекомендация ITU-T T.871: Информационные технологии – Цифровое сжатие и кодирование неподвижных изображений с непрерывным тоном: Формат обмена файлами JPEG (JFIF)» (PDF) . МСЭ-Т. 14 мая 2011 года . Проверено 15 июня 2015 г.
  5. ^ «ISO/IEC 10918-5:2013: Информационные технологии. Цифровое сжатие и кодирование неподвижных изображений с непрерывным тоном: Формат обмена файлами JPEG (JFIF)» . ИСО/Международная электротехническая комиссия. 1 мая 2013 года . Проверено 15 июня 2015 г.

дальнейшее чтение

Книги

Стандарты