Jpeg - це

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

Алгоритм JPEG є алгоритмом стиснення із втратою якості.

Зміст

Галузь застосування

Формат є форматом стиснення із втратами, тому некоректно вважати, що JPEG зберігає дані як 8 біт на канал (24 біт на піксель). З іншого боку, оскільки дані, що піддаються компрессії формату JPEG і декомпресовані дані зазвичай представляються у форматі 8 біт на канал, іноді використовується ця термінологія. Підтримується стиснення чорно-білих напівтонових зображень.

При збереженні JPEG-файлу можна вказати ступінь якості, а значить і ступінь стиснення, який зазвичай задають у деяких умовних одиницях, наприклад, від 1 до 100 або від 1 до 10. Більше число відповідає найкращій якості, але при цьому збільшується розмір файлу. Зазвичай, різниця між 90 і 100 на око вже практично не сприймається. Слід пам'ятати, що відновлене зображення завжди відрізняється від оригіналу. Поширеною помилкою є думка про те, що якість JPEG тотожна частці інформації, що зберігається.

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

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

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

Матриця, яка використовується для квантування коефіцієнтів, зберігається разом із зображенням. Зазвичай вона будується так, що високочастотні коефіцієнти піддаються сильнішому квантування, ніж низькочастотні. Це призводить до огрублення дрібних деталей на зображенні. Чим вище ступінь стиснення, тим сильніше квантування піддаються всі коефіцієнти.

Варіанти зберігання

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

Процес стиснення за схемою JPEG включає низку етапів:

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

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

Зображення JPEG містить послідовністьмаркерів, кожен із яких починається з байта 0xFF, що свідчить про початок маркера. Деякі маркери складаються лише з цього байта; інші ж, крім нього містять інформація про довжину корисної інформації (довжина включає два байти довжини, виключаючи довжину маркера).