Jump to content

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

(Перенаправлено с JFIF )

Формат обмена файлами 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 APP0 (сокращенно сегмент JFIF) (обязательный)
  • Расширение JFIF, сегмент маркера APP0 (сокращенно сегмент JFXX) (необязательно)

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

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

Файловая структура JFIF
Сегмент Код Описание
СЕБЯ FF D8Начало изображения
JFIF-APP0 FF E0 s1 s2 4A 46 49 46 00 ...см. ниже
JFXX-APP0 FF E0 s1 s2 4A 46 58 58 00 ...опционально, см. ниже
… дополнительные сегменты маркера
(например, SOF, DHT, COM)
SOS FF DAНачало сканирования
сжатые данные изображения
ВЗ FF D9Конец изображения

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

[ редактировать ]

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

Сегмент маркера JFIF APP0
Поле Размер (байты) Описание
Маркер APP0 2 FF E0
Длина 2 Длина сегмента без маркера APP0
Идентификатор 5 4A 46 49 46 00 = «JFIF» в ASCII , завершается нулевым байтом
Версия JFIF 2 Первый байт для основной версии, второй байт для дополнительной версии ( 01 02 для 1.02)
Единицы плотности 1 Единицы для следующих полей плотности пикселей
Xплотность 2 Горизонтальная плотность пикселей. Не должно быть нулем
Плотность 2 Плотность пикселей по вертикали. Не должно быть нулем
Xминиатюра 1 Количество пикселей по горизонтали следующей встроенной миниатюры RGB. Может быть ноль
Миниатюра 1 Количество пикселей по вертикали в следующем встроенном миниатюре RGB. Может быть ноль
Миниатюры данных 3 × н Несжатые 24-битные растровые миниатюры RGB (8 бит на цветовой канал) в порядке R0, G0, B0, ... Rn-1, Gn-1, Bn-1; с n = Xthumbnail × Ythumbnail

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

[ редактировать ]

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

Расширение JFIF, сегмент маркера APP0
Поле Размер (байты) Описание
Маркер APP0 2 FF E0
Длина 2 Длина сегмента без маркера APP0
Идентификатор 5 4A 46 58 58 00 = «JFXX» в ASCII , завершается нулевым байтом
Формат миниатюр 1 Указывает, какой формат данных используется для следующего встроенного эскиза:
  • 10 : формат JPEG
  • 11 : палитрованный формат 1 байт на пиксель
  • 13 : формат RGB 3 байта на пиксель
Миниатюры данных переменная Зависит от формата миниатюр, см. ниже.

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

Миниатюра сохраняется в кодировке JPEG.
Поле Размер (байты) Описание
СЕБЯ 2 FF D8
переменная Должен быть в формате JIF с использованием YCbCr или просто Y и не должен содержать сегментов JFIF или JFXX.
ВЗ 2 FF D9
Миниатюра хранится с использованием одного байта на пиксель.
Поле Размер (байты) Описание
Xминиатюра 1 Количество пикселей по горизонтали следующей встроенной миниатюры. Не должно быть нулем
Миниатюра 1 Количество пикселей по вертикали для следующей встроенной миниатюры. Не должно быть нулем
Палитра миниатюр 768 256 записей палитры, каждая из которых содержит 24-битное значение цвета RGB.
Миниатюры данных н Один байт на пиксель, содержащий индекс цвета в палитре.

с n = Xthumbnail × Ythumbnail

Миниатюра хранится с использованием трех байт на пиксель.
Поле Размер (байты) Описание
Xминиатюра 1 Количество пикселей по горизонтали следующей встроенной миниатюры. Не должно быть нулем
Миниатюра 1 Количество пикселей по вертикали для следующей встроенной миниатюры. Не должно быть нулем
Миниатюры данных 3 × н Несжатые 24-битные растровые миниатюры RGB (8 бит на цветовой канал) в порядке R0, G0, B0, ... Rn-1, Gn-1, Bn-1; с n = Xthumbnail × Ythumbnail

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

[ редактировать ]

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

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

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

[ редактировать ]
  • Миано, Джон М., «Форматы файлов сжатых изображений»; 1999, Эддисон-Уэсли ISBN   978-0-201-60443-6
  • Пеннебейкер, Уильям Б. и Джоан Л. Митчелл : стандарт сжатия данных неподвижных изображений JPEG ; 3-е издание, 1993 г., Спрингер. ISBN   978-0-442-01272-4

Стандарты

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5ee779328e5174b6e7688f62373fd6c3__1711863600
URL1:https://arc.ask3.ru/arc/aa/5e/c3/5ee779328e5174b6e7688f62373fd6c3.html
Заголовок, (Title) документа по адресу, URL1:
JPEG File Interchange Format - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)