Jpeg что это: Файл JPEG — что это за формат и основные программы

Jpeg | это… Что такое Jpeg?

JPEG (произносится «джейпег»[1], англ. Joint Photographic Experts Group — объединённая группа экспертов в области фотографии) — является широкоиспользуемым методом сжатия фотоизображений. Формат файла, который содержит сжатые данные обычно также называют именем JPEG; наиболее распространённые расширения для таких файлов .jpeg, .jfif, .jpg, .JPG, или .JPE. Однако из них .jpg самое популярное расширение на всех платформах.

Фотография заката в формате JPEG с уменьшением степени сжатия слева направо

Алгоритм JPEG является алгоритмом сжатия с потерей качества.

Содержание

  • 1 Область применения
    • 1.1 Сжатие
    • 1.2 Варианты хранения
  • 2 Синтаксис и структура
  • 3 Достоинства и недостатки
  • 4 См. также
  • 5 Примечания
  • 6 Ссылки

Область применения

Формат является форматом сжатия с потерями, поэтому некорректно считать что JPEG хранит данные как 8 бит на канал (24 бит на пиксель).

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

При сохранении JPEG-файла можно указать степень качества, а значит и степень сжатия, которую обычно задают в некоторых условных единицах, например, от 1 до 100 или от 1 до 10. Большее число соответствует лучшему качеству, но при этом увеличивается размер файла. Обыкновенно, разница в качестве между 90 и 100 на глаз уже практически не воспринимается. Следует помнить, что побитно восстановленое изображение всегда отличается от оригинала. Распространённым заблуждением является мнение о том, что качество JPEG тождественно доле сохраняемой информации.

Сжатие

При сжатии изображение переводится в цветовую систему Jpeg. Далее каналы изображения Cb и Cr, отвечающие за цвет, уменьшаются в 2 раза (по линейному масштабу). Уже на этом этапе необходимо хранить только четверть информации о цвете изображения.

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

Далее цветовые каналы изображения, включая черно-белый канал Y, разбиваются на блоки 8 на 8 пикселей. Каждый блок подвергается дискретно-косинусному преобразованию. Полученные коэффициенты подвергаются квантованию и упаковываются с помощью кодов Хаффмана (см. Алгоритм Хаффмана).

Матрица, используемая для квантования коэффициентов, хранится вместе с изображением. Обычно она строится так, что высокочастотные коэффициенты подвергаются более сильному квантованию, чем низкочастотные. Это приводит к огрублению мелких деталей на изображении. Чем выше степень сжатия, тем более сильному квантованию подвергаются все коэффициенты.

Варианты хранения

Progressive JPEG — такой способ записи сжатого изображения в файл, при котором старшие (низкочастотные) коэффициенты находятся в начале файла. Это позволяет получить уменьшенное изображение при загрузке лишь небольшой части файла и повышать детализацию изображения по мере загрузки оставшейся части. Поэтому Progressive JPEG получил широкое распространение в Internet. В целом алгоритм основан на дискретном косинусоидальном преобразовании (ДКП), которое является разновидностью дискретного преобразования Фурье, применяемом к матрице изображения для получения некоторой новой матрицы коэффициентов. Для получения исходного изображения применяется обратное преобразование. ДКП раскладывает изображение по амплитудам некоторых частот. Таким образом, при преобразовании мы получаем матрицу, в которой многие коэффициенты либо близки, либо равны нулю. Кроме того, благодаря несовершенству человеческого зрения, можно аппроксимировать коэффициенты более грубо без заметной потери качества изображения. Для этого используется квантование коэффициентов. В самом простом случае — это арифметический побитовый сдвиг вправо. При этом преобразовании теряется часть информации, но могут достигаться большие коэффициенты сжатия.

Процесс сжатия по схеме JPEG включает ряд этапов:

  • преобразование изображения в оптимальное цветовое пространство;
  • субдискретизация компонентов цветности усреднением групп пикселей;
  • применение дискретных косинусных преобразований для уменьшения избыточности данных изображения;
  • квантование каждого блока коэффициентов ДКП с применением весовых функций, оптимизированных с учетом визуального восприятия человеком;
  • кодирование результирующих коэффициентов (данных изображения) с применением алгоритма группового кодирования и алгоритма Хаффмана для удаления избыточности информации.

Синтаксис и структура

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

Основные маркеры JPEG[1]
АббревиатураБайтыДлинаИмяКомментарии
SOI0xFFD8нет Начало изображения
SOF00xFFC0переменный размерНачало фрагмента (Базовый DCT)Показывает что это JPEG изображение относится к базовому DCT и содержит длину, высоту, количество компонент, и соотношение компонент (например, 4:2:0).
SOF20xFFC2переменный размерНачало фрагмента (Прогрессивный DCT)Показывает что это JPEG изображение относится к прогрессивному DCT и содержит длину, высоту, количество компонент, и соотношение компонент (например, 4:2:0).
DHT0xFFC4переменный размерСодержит таблицы ХафманаЗадает одну или более таблиц Хафмана.
DQT0xFFDBпеременный размерСодержит таблицы квантизацииЗадает одну или более таблиц квантизации.
DRI0xFFDD2 байтаУказывает интервал повторенийЗадает интервал между маркерами RST n, в макроблоках.
SOS0xFFDAпеременный размерНачало сканированияНачинает сканирование изображение сверху вниз. В базовом DCT JPEG изображении, используется один проход сканирования. В прогрессивных DCT JPEG изображения используется несколько проходов сканирования. Данный маркер является разделяющим между информативной и закодированной частью изображения.
RSTn0xFFDnпеременный размерПерезапускВставляется в каждом r макроблоке, где r — интервал перезапуска DRI маркера. Не используется при отстутствии DRI маркера. n, младшие 4 бита маркера кода, циклы от 0 до 7.
APPn0xFFEnпеременный размерЗадается приложением Например, в Exif JPEG файле используется APP1 маркер для хранения метаданных, расположены в структуре, основанной наКомментарийСодержит текст комментария.
EOI0xFFD9нетКонец изображения

Достоинства и недостатки

К недостаткам формата следует отнести то, что при сильных степенях сжатия дает знать о себе блочная структура данных, изображение «дробится на квадратики» (каждый размером 8×8 пикселей). Этот эффект особенно заметен на областях с низкой пространственной частотой (плавные переходы изображения, например, чистое небо). В областях с высокой пространственной частотой (например, контрастные границы изображения), возникают характерные «артефакты» — иррегулярная структура пикселей искаженного цвета и/или яркости. Кроме того, из изображения пропадают мелкие цветные детали. Не стоит также забывать и о том, что данный формат не поддерживает прозрачность.

Однако, несмотря на недостатки, JPEG получил очень широкое распространение из-за высокой степени сжатия, относительно существующих во время его появления альтернатив.

См. также

  • JPEG2000
  • libjpeg

Примечания

  1. ISO/IEC 10918-1 : 1993(E) p. 36.

Ссылки

  • The JPEG committee homepage
  • Подробное описание алгоритма сжатия
  • Спецификация формата (текстовый файл)
  • Оптимизация JPEG. Часть 1, Часть 2, Часть 3.

JPEG. Алгоритм сжатия / Хабр

И снова здравствуйте! Я нашел эту статью, написанную еще мае 2019-ого года. Это — продолжение серии статей о WAVE и JPEG, Вот первая. Эта публикация включит в себе информацию об алгоритме кодирования изображений и о самом формате в целом.


Щепотку истории

Столовую ложку статьи из Википедии:


JPEG (Joint Photographic Experts Group) — один из популярных растровых графических форматов, применяемый для хранения фотоизображений и подобных им изображений.

Разработан этот стандарт был Объединенной группой экспертов по фотографии еще в 1991 году для эффективного сжатия изображений.


Какой путь проходят изображения от сырого вида до JPEG

Некоторые считают, что JPEG-картинки — сжатые методом Хаффмана сырые данные, но это не так. Перед контрольным сжатием данные проходят длинный путь.

Сначала цветовую модель меняют с RGB на YCbCr. Для этого даже есть специальный алгоритм — здесь. Y не трогают, так как он отвечает за яркость, и его изменение будет заметно.

Первое, что делают с изображением — это «прореживание» (subsampling). Понять это просто: берется 2х2 массив пикселей, далее берутся Cb и Cr — средние значения каждого из компонентов YCbCr этих 4 пикселей. И так, мы выиграли 6 байт, вместо 4 Y, 4 Cb, 4 Cr мы получили 4 Y и одинаковые для каждого из них Cb и Cr (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 — 6 = 6). В масштабах даже 2×2 сжатие с потерей с коэффициентом сжатия 2:1 звучит солидно. Это применяется ко всему изображению. И так — сбросили половину размера. А такой прием мы можем использовать благодаря нашему цветовому восприятию. Человек с легкостью заметит разницу в яркости, но не в цвете, если он усредненный в маленьком блоке пискелей. Также прореживание может выполняться в линию, 4 пикселя по горизонтали и вертикали.

Первый вариант используется чаще. Если важно качество изображения, то прореживание не выполняется вообще.
Наглядная иллюстрация прореживания (Хабр не дал вставить гифку) — https://i.ibb.co/Rg5Th9H/150953010617579181.gif


Основная часть подготовки

ДКП

Теперь самая сложная и необходимая часть. Вся картинка разбивается на блоки 8×8 (используют заполнение в случае, если разрешение не кратно стороне блока).

Теперь к каждому блоку применяют ДКП (Дискретно-косинусное преобразование). В этой части из картинки вынимают все лишнее. Используя ДКП надо понять, описывает ли данный блок (8×8) какую-нибудь монотонную часть изображения: неба, стены; или он содержит сложную структуру (волосы, символы и т.д.). Логично, что 64 похожих по цвету пикселей можно описать всего 1-им, т.к. размер блока уже известен. Вот вам и сжатие: 64 к 1.

ДКП превращает блок в спектр, и там, где показания резко сменяются, коэффициент становится положительным, и чем резче переход, тем выше будет выход. Там, где коэффициент выше, на картинке изображенны четкие переходы в цвете и яркости, где он ниже — слабые (плавные) смены величин компонентов YCbCr в блоке.


Квантование

Тут уже применяются настройки сжатия. Каждый из коэффициентов в каждой из матриц 8×8 делится на определенное число. Если качество изображения после всех его модификаций вы более уменьшать не будете, то делитель должен быть единицей. Если вам важнее память, занимаемая этой фотографией, то делитель будет больше 1, и частное округляется. Так выходит, что после округления нередко получается много нулей.

Квантование делают для создания возможности еще большего сжатия. Вот как это выглядит на примере квантования графика y = sin(x):


Сжатие

Сначала проходим по матрице зиг-загом:

Получаем одномерный массив с числами. Мы видим, что в нем много нулей, их можно убрать. Для этого вместо последовательности из множества нулей мы вписываем 1 нуль и после него число, обозначающее их количество в последовательности. Таким образом можно сбросить до 1/3 размера всего массива. А дальше просто сжимает этот массив методом Хаффмана и вписываем уже в сам файл.


Где используется

Везде. Как и PNG, JPEG используется в фотокамерах, OS’ях (в качестве логотипов компании, иконок приложений, thumbnail’ов) и во всех возможных сферах, где нужно эффективно хранить изображения.


Вывод

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


Источники

Статья про YCbCr на Википедии
Статья о JPEG на Википедии
Немного про ДКП с поста Пикабу
Статья о ДКП на Википедии

404: Страница не найдена

Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы извиняемся за любые неудобства.

Что я могу сделать сейчас?

Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:

Поиск
  • Пожалуйста, свяжитесь с нами, чтобы сообщить, что эта страница отсутствует, или используйте поле выше, чтобы продолжить поиск
  • Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, WhatIs.com.
  • Посетите нашу домашнюю страницу и просмотрите наши технические темы

Просмотр по категории

Сеть

  • поставщик сетевых услуг (NSP)

    Поставщик сетевых услуг (NSP) — это компания, которая владеет, управляет и продает доступ к магистральной инфраструктуре Интернета и …

  • неэкранированная витая пара (UTP)

    Неэкранированная витая пара (UTP) — это повсеместно распространенный тип медных кабелей, используемых в телефонной проводке и локальных сетях (LAN).

  • Многопротокольная коммутация по меткам (MPLS)

    Многопротокольная коммутация по меткам (MPLS) — это механизм коммутации, используемый в глобальных сетях (WAN).

Безопасность

  • Требования PCI DSS 12

    Требования PCI DSS 12 представляют собой набор мер безопасности, которые предприятия должны внедрить для защиты данных кредитных карт и соблюдения …

  • данные держателя карты (CD)

    Данные держателя карты (CD) — это любая личная информация (PII), связанная с лицом, у которого есть кредитная или дебетовая карта.

  • Уровни продавца PCI DSS Стандарт безопасности данных индустрии платежных карт (PCI DSS)

    ранжирует продавцов по количеству транзакций за …

ИТ-директор

  • системное мышление

    Системное мышление — это целостный подход к анализу, который фокусируется на том, как взаимодействуют составные части системы и как…

  • краудсорсинг

    Краудсорсинг — это практика обращения к группе людей для получения необходимых знаний, товаров или услуг.

  • синтетические данные

    Синтетические данные — это информация, созданная искусственно, а не в результате событий реального мира.

HRSoftware

  • вовлечения сотрудников

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

  • кадровый резерв

    Кадровый резерв — это база данных кандидатов на работу, которые могут удовлетворить немедленные и долгосрочные потребности организации.

  • разнообразие, равенство и инклюзивность (DEI)

    Разнообразие, равенство и инклюзивность — термин, используемый для описания политики и программ, которые способствуют представительству и …

Обслуживание клиентов

  • требующий оценки

    Оценка потребностей — это систематический процесс, в ходе которого изучается, какие критерии должны быть соблюдены для достижения желаемого результата.

  • точка взаимодействия с клиентом

    Точка соприкосновения с покупателем — это любой прямой или косвенный контакт покупателя с брендом.

  • устав обслуживания клиентов

    Устав обслуживания клиентов — это документ, в котором описывается, как организация обещает работать со своими клиентами наряду с …

JPEG — формат файла изображения

Что такое файл JPEG?

JPEG — это тип формата изображения, который сохраняется с использованием метода сжатия с потерями. Выходное изображение в результате сжатия представляет собой компромисс между размером хранилища и качеством изображения. Пользователи могут настроить уровень сжатия для достижения желаемого уровня качества и в то же время уменьшить размер хранилища. Качество изображения незначительно ухудшается, если к изображению применяется сжатие 10:1. Чем выше значение сжатия, тем выше ухудшение качества изображения.

Спецификации формата файла

Формат файла изображения JPEG был стандартизирован Объединенной группой экспертов по фотографии, отсюда и название JPEG. Формат был выбран для хранения и передачи фотографических изображений в Интернете. Почти все операционные системы теперь имеют средства просмотра, поддерживающие визуализацию изображений JPEG, которые также часто хранятся с расширением JPG. Даже веб-браузеры поддерживают визуализацию изображений JPEG. Прежде чем перейти к спецификациям формата файла JPEG, необходимо упомянуть общий процесс, связанный с созданием JPEG.

Шаги сжатия JPEG

Преобразование:  Цветные изображения преобразуются из RGB в изображение яркости/цветности (глаз чувствителен к яркости, а не к цветности, так что часть цветности может потерять много данных и, следовательно, может быть сильно сжата.

Понижающая выборка: Понижающая выборка выполняется для цветного компонента, а не для яркостной составляющей. Понижающая выборка выполняется с соотношением 2:1 по горизонтали и 1:1 по вертикали (2h 1 V). Таким образом, изображение уменьшается в размере, поскольку Компонент «у» не тронут, заметной потери качества изображения нет.

Организация в группы:  Пиксели каждого цветового компонента организованы в группы 8×2 пикселей, называемые «единицами данных», если количество строк или столбцов не кратно 8, нижняя строка и крайний правый столбец дублируются.

Дискретное косинусное преобразование:  Дискретное косинусное преобразование (ДКП) затем применяется к каждой единице данных для создания карты 8×8 преобразованных компонентов. ДКП приводит к некоторой потере информации из-за ограниченной точности компьютерной арифметики. Это означает, что даже без карты будет некоторая потеря качества изображения, но обычно она невелика.

Квантование:  Каждый из 64 преобразованных компонентов в единице данных делится на отдельное число, называемое его «Коэффициентом квантования (КК)», а затем округляется до целого числа. Здесь информация теряется безвозвратно, большой контроль качества приводит к большим потерям. В целом, большинство реализаций JPEG позволяют использовать таблицы контроля качества, рекомендованные стандартом JPEG.

Кодирование:  64 квантованных преобразованных коэффициента (которые теперь являются целыми числами) каждого блока данных кодируются с использованием комбинации RLE и кодирования Хаффмана.

Добавление заголовка:  Последний шаг добавляет заголовок и все используемые параметры JPEG и выводит результат.

Декодер JPEG использует шаги в обратном порядке для создания исходного изображения из сжатого.

Структура файла

Изображение JPEG представлено в виде последовательности сегментов, где каждый сегмент начинается с маркера. Каждый маркер начинается с байта 0xFF, за которым следует флаг маркера, представляющий тип маркера. Полезная нагрузка, за которой следует маркер, зависит от типа маркера. Общие типы маркеров JPEG перечислены ниже:

6 переменная Application specific
Short Name Bytes Payload Name Comments
SOI 0xFF, 0xD8 none Start of Image
S0F0 0xFF, 0xC0 переменный размер Начало кадра
S0F2 0xFF, 0xC2 переменный размер Начало кадра 90170176 DHT 0xFF, 0xC4 variable size Define Huffman Tables
DQT 0xFF, 0xDB variable size Define Quantization Table(s)
DRI 0xFF, 0xDD 4 bytes Define Restart Interval
SOS 0xFF, 0xDA variable size Start Of Scan
RSTn 0xFF, 0xD//n//(//n//#0. .7) нет Перезапуск
APPn 0xFF, 7xE 7 90717 6 размер переменная//n//
COM 0xFF, 0xFE variable size Comment
EOI 0xFF, 0xD9 none End Of Image

Within the entropy-coded данные, после любого байта 0xFF кодировщик вставляет байт 0x00 перед следующим байтом, чтобы не было маркера там, где он не предназначен, что предотвращает ошибки кадрирования. Декодеры должны пропустить этот байт 0x00. Этот метод, называемый заполнением байтов (см. раздел F.1.2.3 спецификации JPEG), применяется только к данным с энтропийным кодированием, а не к данным полезной нагрузки маркера. Обратите внимание, однако, что данные с энтропийным кодированием имеют несколько собственных маркеров; в частности, маркеры сброса (от 0xD0 до 0xD7), которые используются для изоляции независимых фрагментов данных с энтропийным кодированием, чтобы обеспечить параллельное декодирование, и кодировщики могут свободно вставлять эти маркеры сброса через равные промежутки времени (хотя не все кодеры делают это).

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *