Коли ви надсилаєте фотографію в WeChat або завантажуєте зображення на веб-сайт, за кадром відбувається одне: файл стає меншим.

Але «зменшення» насправді відбувається двома абсолютно різними способами. Один називається «викидання речей», інший — «перепакування». У галузевих термінах це стиснення з втратами та стиснення без втрат — два основні шляхи стиснення зображення. Сьогодні ми розберемо обидва чітко, простою мовою без жаргону.

Однорядкове визначення: стиснення з втратами відкидає деталі, які ледве помічає око, зменшуючи файли на 80-90%, але процес є незворотнім, і оригінал не можна відновити; стиснення без втрат не пропускає жодного біта та розпаковує байт за байтом, ідентичний оригіналу, але зазвичай зменшує файли лише на 20–50%.

Що насправді робить стиснення зображення

Розберіть зображення, і це просто купа кольорових точок. Фотографія телефону легко містить десятки мільйонів точок, кожна з яких зберігає значення кольору. Файл великий, оскільки він точно зберігає кожен із цих десятків мільйонів кольорів.

Стиснення має на меті одне: виразити зображення меншою кількістю байтів. Як зробити його меншим, але виглядати так само? Два маршрути.

З втратами: викинь те, чого не бачиш

Lossy звучить страшно — «викидання даних». Але хороше стиснення з втратами не видаляє пікселі навмання; він використовує «модель людського зору», щоб обчислити, яку інформацію ви, ймовірно, не помітите, втратила, викидає її, а решту щільно пакує.

Думайте про це як про написання короткого опису роману: хороший короткий опис зберігає сюжет і виключає лише прикметники, яких ніхто не пам’ятає.

Ефект потужний. Фотографія розміром 5 МБ, стиснута до 500 КБ, є звичайною справою — 80-90% менше, і на екрані вона виглядає так само.

Єдина ціна: ви не можете повернутися. Відкинутих байтів справді немає, і коли ви зберігаєте, ви приймаєте цю версію — вулиця з одностороннім рухом.

Без втрат: жодної зміни, просто перекодовано

Lossless є більш ввічливим. Файл стає меншим, але не втрачає жодного біта, розпаковуючи назад байт за байтом, ідентичний оригіналу.

Він робить саме те, що робить ZIP: знаходить повторення та закономірності в даних і записує їх у більш економний спосіб.

Наприклад, якщо рядок пікселів містить 200 ідентичних синіх пікселів поспіль, кодування без втрат не зберігатиме «синій» 200 разів — воно просто записує "синій ×200" і продовжується. Ось чому він чудово стискає знімки екрана та інтерфейс користувача — зображення, наповнені суцільними кольорами.

Вартість так само очевидна: повна точність, але обмежена економія. На зображеннях без втрат файли зазвичай зменшуються лише на 20%–50%, іноді менше. Шумна, хаотична фотографія майже не має шаблонів для використання, тому без втрат майже не допомагає.

Усі рівні без втрат у форматі PNG і WebP, а також FLAC у аудіофайлах використовують цей шлях. Нічого не втрачено, і він менший — якщо ви можете терпіти, щоб він залишався досить великим.

Як JPEG сміє видалити ваші кольори? Лазівка в людському баченні

Дайте відповідь спочатку: JPEG — це формат стиснення з втратами даних. Вам, напевно, цікаво: як він сміє торкатися моїх даних кольору?

Тому що він використовує лазівку в людському баченні. В оці є два типи фоторецепторних клітин: палички відповідають за яскравість, колбочки – за колір. Паличок приблизно в двадцять разів більше, ніж колбочок, і роздільна здатність мозку для яскравості набагато вища, ніж для кольору. Простими словами: ви надзвичайно чутливі до світла й темряви, але досить нечутливі до кольору.

JPEG це знає. При стисненні розбиває зображення на канали яскравості та кольору, агресивно обрізає колір і зберігає яскравість. Це називається субдискретизацією кольоровості — дивіться пояснення у Вікіпедії — це те, як можна викинути більше половини кольору, поки ваше око не помітить різниці.

Потім він накопичує дискретне косинусне перетворення (DCT), розбиваючи зображення на частоти та ще сильніше обрізаючи високочастотні дрібні текстури та шуми — речі, які ваші очі також погано бачать, особливо в кольорових областях. Вся стратегія полягає в тому, щоб відкинути те, що ви не пропустите, а цього вдосталь.

Це 85% Sweet Spot

Для переважної більшості фотографій збереження JPEG з якістю 80-85 неможливо відрізнити від оригіналу. Недостатньо близько — розмістіть їх поруч на нормальній відстані на звичайному екрані, і більшість людей не зможуть визначити, що є що.

Я не перебільшую. Я сам пройшов кілька сліпих тестів, і висновки послідовні: у віці 85 років люди просто не бачать різниці, яку було видалено. Щоб помітити це, вам доведеться збільшити масштаб до 400% і примружитися на 20-піксельну область, і навіть тоді ви можете лише вгадати.

Але різниця в розмірах між якістю 100 і 85 величезна, часто на 60%–75% менше. Це не округлення — це різниця між миттєвим завантаженням сторінки та розчаровуючим відскоком, і це найважча перемога в оптимізації зображень.

Опустіться нижче 70, і ви почнете це бачити: блокові краї, каламутні відтінки шкіри, розмитий текст. Але цей щедрий діапазон 80-90 є найкращою ціною — велика економія за нульових видимих витрат.

Коли не хвилюватися

Переважна більшість зображень в Інтернеті мають бути втраченими. Веб-фотографії, завантаження в соціальні мережі та мініатюри стикаються з однаковою реальністю: ніхто не рахує пікселі на вашому зображенні заголовка під час прокручування. JPEG/WebP із якістю 80-85 виглядає добре та швидко завантажується.

Instagram і Facebook у будь-якому випадку повторно стискають усе, що ви завантажуєте, тому завантаження оригінального TIFF нічого не приносить. Мініатюри невеликі і йдуть десятками на сторінку, тому доцільним є сильне стиснення. Надішліть фотографію своїй тітці — вона перегляне її на своєму телефоні, і їй не потрібен 24-мегапіксельний оригінал.

У цих сценаріях збережений розмір є реальним, тоді як втрата якості є переважно теоретичною. На 90% менше з нульовими відчутними втратами — не компроміс, просто здоровий глузд.

Коли ви повинні бути без втрат

За замовчуванням є втрата, але в цих випадках навіть невелика втрата є неправильною:

  • Медична візуалізація. Лікар, який читає скан на наявність пухлин, не повинен змушувати вас вирішувати, «яка деталь, ймовірно, непомітна». Стиснення діагностичних зображень із втратами жорстко регулюється такими органами, як FDA та ACR.
  • Архівні майстри. Мастер-копії фотографій, творів мистецтва та архівів мають бути без втрат. Ви не бачите різниці сьогодні, але ви не знаєте, які інструменти знадобляться завтра. Лосі — вулиця з одностороннім рухом.
  • Безразово редагована робота. Щоразу, коли ви відкриваєте JPEG, редагуєте та зберігаєте, він повторно стискається та додає ще один шар артефактів. Це називається втрата покоління, тому професіонали знімають RAW і редагують у TIFF/PSD. Стискайте результат, а не робочий файл.
  • Зображення з текстом і жорсткими краями. Скріншоти, логотипи та макети інтерфейсу користувача складаються з жорстких ліній і суцільних кольорових блоків — із втратами даних не впорається. JPEG народився для фотографій; PNG набагато сильніший для них. Не стискайте електронну таблицю за допомогою фотоформату.

Короткий огляд: із втратами та без втрат

Розмірзбитковийбезвтратний
РеверсивнийНі (в один бік)Так (байт за байтом)
Ступінь підвищення тискуВисокий, часто на 60%–90% меншеОбмежено, ~20%–50%
ЯкістьВ основному незрима втрата (якість 80-85)100% вірність
Загальні форматиJPEG, WebP із втратою даних, AVIF, MP30, безвтратно 1, 4, 2, 3
Найкраще дляВеб-фотографії, соціальні мережі, ескізиМедичні, майстри, повторне редагування, скріншоти/логотипи

Часто задані питання

Яка різниця між стисненням із втратами та без втрат?

Стиснення з втратами відкидає деталі, які людське око ледь може помітити, різко зменшуючи розмір, і цей процес є незворотнім; стиснення без втрат не втрачає даних і розпаковує байт за байтом, ідентичний оригіналу, але його коефіцієнт стиснення обмежений, зазвичай лише на 20–50% менший.

JPEG із втратами чи без втрат?

JPEG — це формат стиснення з втратами. Він відкидає кольори та високочастотні деталі, до яких людське око не сприймає, завдяки субдискретизації кольоровості та дискретному косинусному перетворенню (DCT), різко зменшуючи фотографії. JPEG також має режим без втрат, але в Інтернеті та переважній більшості сценаріїв використовується рівень із втратами.

Мені встановити якість стиснення зображення на 80 чи 100?

Переважна більшість фотографій, збережених із якістю 80-85, не відрізняються від оригіналу на звичайній відстані перегляду та на екрані, але файл на 60–75% менший, ніж за якості 100. Видимі артефакти, як-от блокованість і каламутні відтінки шкіри, з’являються лише на рівні нижче 70, тому 80-85 є найкращою точкою якості.

Коли потрібно використовувати стиснення без втрат?

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

Останнє слово

За замовчуванням в Інтернеті використовується параметр Lossy: 80-85 дозволяє значно заощадити на фотографіях із майже нульовими видимими втратами. Без втрат доступні архівні шаблони, медичні зображення та робочі процеси редагування, які неодноразово зберігаються. Найбезпечніша гра — це одне речення: зберігайте майстер без втрат і експортуйте з втратами для доставки.

Готові застосувати це на практиці? Скористайтеся нашим безкоштовним компресором зображень, щоб зменшити фотографії без втрат або без втрат, або перейдіть до змінити розмір, обрізати та перетворити JPG на WebP, щоб застосувати те, що ви щойно дізналися.