JPEG-лаборатория

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

Что такое сжатие с потерями

JPEG разбивает изображение на блоки 8×8 пикселей, переводит их в частотную область и округляет получившиеся коэффициенты. Чем сильнее округление - тем меньше данных, но и заметнее артефакты: блочность, ореолы вокруг контрастных линий, «размазанные» мелкие детали.

Q = 100 - почти без потерь, файл почти не сжимается. Q = 75 - стандарт JPEG, разница незаметна. Q = 10 - видны квадраты 8×8. Q = 1 - катастрофа, но контуры всё ещё узнаваемы.

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

12 px
Оригинал -
JPEG Q=75 -
Качество JPEG 75
Прореживание цвета (chroma subsampling)
Цвет сохраняется для каждого пикселя. Файл больше, качество максимальное.
Переключает правый холст в режим карты различий. Там, где оригинал и JPEG совпадают, - чёрный. Там, где отличаются, - яркие пиксели (разница усилена в 5 раз, чтобы её было видно глазом). Хорошо показывает ореолы вокруг контрастных границ, границы блоков 8×8 и зоны, где JPEG «съел» мелкие детали.
Размер PNG - сжатие без потерь
Размер JPEG - сжатие с потерями
Коэффициент - PNG / JPEG
PSNR - дБ (качество)
📉 Качество → Размер сколько весит файл при разном Q
📈 Качество → PSNR чем выше, тем ближе к оригиналу
📊 Распределение яркости синие столбики - оригинал, оранжевые - JPEG
🎨 Ошибки по каналам MSE и доля потерь
📦 Накладные расходы JPEG таблицы Хаффмана и заголовок
🎚 Слайдер-сравнение тяните вертикальную полосу мышью
Оригинал
JPEG
↔