JPEG, PNG, GIF – що це! Ідеальний формат шукають роками, тому що мало хто розуміє, як вони працюють. Подивимося алгоритми стиснення зображень, щоб знати – який формат вибрати.

JPEG

Формат перевірений часом. Як же він працює і для чого хороший?

JPEG стискає зображення квадратами 8 * 8 пікселів, а потім робить щось божевільне і математичне. Перетворює пікселі в кожному блоці з RGB в YCbCr. З технічної точки зору, JPEG перетворює інформацію з просторової області в частотну.

Підходить: для стиснення зображень з великою кількістю кольорів і плавними переходами між ними.

Не підходить: для об’єктів з чіткими кордонами на зображенні.

Screenshot_4   Screenshot_5

GIF

Формат GIF стискає зображення за допомогою алгоритму LZW. Він простіший, ніж магічна математика в JPEG. Алгоритм LZW сканує зображення і генерує короткі коди для повторюваних частин, а потім скорочує їх. Ще у GIF є пара фіч: прозорість і підтримка анімації, але … Цей формат підтримує тільки 256 кольорів.

Підходить: для стиснення зображень з повторюваними даними. Зображення з різкими переходами зберігаються без втрат.

Не підходить: для зображень з великою кількістю кольорів. Стиснення призводить до пастеризації.

Сильні сторони GIF і JPEG доповнюють один одного – вони були чудовою командою в еру «молодого інтернету». Але проблеми з патентом на LZW спонукали до створення нових форматів.

 

PNG

PNG як GIF, але краще:

  • Немає обмеження на 256 кольорів.
  • Є підтримка альфа-каналу (для створення часткової прозорості).
  • Підходить практично у всіх ситуаціях.

 

Як працює PNG?

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

Вирізає повторення за допомогою алгоритму LZ77. Так-так, для GIF – LZW, а для PNG – LZ77. Так уникають проблем з патентом.

Використовує алгоритм кодування Хаффмана. Генерує короткі коди для поширених значень.

PNG краще, ніж GIF (майже завжди). Гірше, ніж JPEG – для фотографій. Сміливо використовуємо PNG для зображень з чіткими фігурами, повторюваними даними і візерунками.

На момент написання статті JPEG, GIF і PNG – єдині формати з універсальної підтримкою. Тільки їх розробники можуть реально використовувати. Однак нові формати вже тут і гідні уваги.