Коротко
Начните с оценки качества 80: при обычном просмотре результат выглядит так же, как оригинал. PicoDiet находит самый маленький файл, который ещё дотягивает до этой оценки SSIMULACRA2, и перед скачиванием его можно сравнить с оригиналом.
Почему фиксированная настройка качества не работает
«Сохраните в JPEG с качеством 75» — обычный совет. Но значение качества — это настройка кодировщика, а не мера того, как выглядит результат. Мы сохранили пять изображений в JPEG с качеством 75 и оценили их, а потом дали PicoDiet подобрать для каждого настройку, при которой получается оценка 80:
| Изображение | Оценка при качестве JPEG 75 | Нужная настройка JPEG | Итоговая оценка |
|---|---|---|---|
| Фото гавани, 2048 × 1683 | 74,9 | 86 | 80,1 |
| Ночной город, iPhone, 1440 × 1920 | 71,1 | 92 | 80,5 |
| Каменистый пляж, 2048 × 1030 | 74,2 | 89 | 81,2 |
| 3D-рендер, 719 × 540 | 73,6 | 91 | 81,4 |
| Скриншот этого сайта, 2880 × 1800 | 82,0 | 98 | 91,4 |
«Качество 75» здесь — libjpeg в ImageMagick, а значения PicoDiet указаны по шкале качества jpegli. Одно и то же «75» дало оценки от 71 до 82, а нужная каждому изображению настройка — от 86 до 98. Скриншот по общей оценке прошёл при качестве 75, но вокруг текста появились заметные ореолы, и проверка худшего места в PicoDiet (о ней ниже) такой результат отбраковывает. К тому же в PNG он и так вышел в шесть раз меньше. Фиксированное число либо тратит лишние байты на одних изображениях, либо портит другие.
Что означает оценка
SSIMULACRA2 сравнивает сжатое изображение с оригиналом и оценивает, насколько они похожи на вид, по шкале до 100. Авторы откалибровали метрику по тому, как люди оценивали сжатые изображения. Чем выше, тем ближе к оригиналу; примерно так:
| Оценка | Что видит человек |
|---|---|
| 90+ | Визуально без потерь: разницы нет, даже если переключаться между ними в полном размере |
| 80–90 | Очень высокое качество: если положить рядом в полном размере, разницы не видно |
| 70 | Высокое качество: артефакты трудно заметить, если оригинала нет рядом |
| 50 | Среднее: обычное дело для сильно сжатых картинок в интернете |
| 30 и ниже | Низкое: явные квадраты, размытие и полосы |
Ползунок в PicoDiet идёт от 10 до 95. По умолчанию стоит 80: при обычном просмотре результат выглядит так же, а файл обычно весит лишь часть от оригинала.
Вторая проверка — для худшего места
Средняя оценка может скрыть один испорченный участок: смазанное лицо или строку размытого текста на фото, которое в остальном идеально. Поэтому PicoDiet проверяет изображение ещё и по участкам и отбраковывает результат, если какой-то участок заметно хуже остальных, даже когда общая оценка проходит. Вот почему некоторым изображениям нужна настройка выше, чем подсказала бы одна средняя оценка.
Как одно фото выглядит при 90, 80 и 70
11-мегапиксельное фото гавани, снятое зеркальной камерой и находящееся в общественном достоянии (4,97 МБ прямо с камеры; источник), PicoDiet сжал до трёх оценок:
| Оценка | Размер файла | Меньше на |
|---|---|---|
| 91 | 3,03 МБ | 39% |
| 81 | 666 КБ | 87% |
| 71 | 248 КБ | 95% |
Основная экономия приходится на отрезок между 90 и 80: камера потратила мегабайты на мелкий шум в небе, которого никто не видит. Ниже 80 файл уменьшается медленнее, а изменения начинают проступать.
Оригинал
Оценка 80
Оценка 70Видно, где изменилось: карта изменений
Сжатие с потерями меняет изображение неравномерно. PicoDiet оценивает результат по участкам и показывает, где он изменился сильнее всего. В окне сравнения маленькая карта в углу отмечает такие участки цветом от жёлтого к красному, пронумерованные метки указывают на самые сильные изменения, а сравнение открывается с увеличением на месте, которое изменилось больше всего. Тяните разделитель, чтобы видеть оригинал и результат рядом.
Так можно быстро проверить то, что важно именно вам: лицо, логотип, текст на скриншоте. Если отмеченное место вас смущает, поднимите качество только для этого изображения.
Как с этим справляются другие сервисы, если измерить их так же на 13 изображениях, находящихся в общественном достоянии, — в сравнении сервисов сжатия.
Без потерь или с потерями?
Сжатие без потерь не меняет ни одного пикселя, поэтому на фото экономит мало. Сжатие с потерями меняет данные изображения и экономит гораздо больше, а вопрос в том, видна ли разница: фото гавани выше потеряло 87% размера при оценке 81. «Без потери качества» на практике означает сжатие с потерями, которое не опускается ниже оценки, где человек начинает замечать разницу. PicoDiet сам выбирает сжатие без потерь там, где оно выигрывает, например для некоторых скриншотов и анимаций, и оставляет ваш оригинал, если не может уменьшить файл, сохранив выбранную оценку.
Как сжать фото без видимой потери качества
- Перетащите изображения в поле выше. PicoDiet сразу сжимает каждое до оценки 80.
- Для изображений, которые будут ещё редактировать или разглядывать вблизи, передвиньте ползунок на 90.
- Откройте изображение, посмотрите на отмеченные места и скачайте, когда результат вас устроит.
Что происходит с вашими изображениями
Они загружаются по HTTPS на ближайший из наших серверов, обрабатываются автоматически и удаляются в течение 3 минут после того, как вы закончите. Никому не передаются, не продаются и не используются для обучения ИИ. Регистрация не нужна. Политика конфиденциальности
Вопросы
Правда можно сжать изображение без потери качества?
Без потери каких-либо данных — только сжатием без потерь, а оно на фото экономит мало. Без видимой потери качества — да: при оценке SSIMULACRA2 от 80 и выше люди не видят разницы при обычном просмотре, а файлы часто становятся на 50–90% меньше.
Что такое SSIMULACRA2?
Открытая метрика качества изображений, которую создал Jon Sneyers (Cloudinary), чтобы предсказывать, как люди оценивают сжатые изображения. С её помощью настраивают и сравнивают кодировщики, например JPEG XL, AVIF и jpegli.
Какое качество выбрать?
80 — для сайтов, почты и чтобы поделиться; 90 — для изображений, которые вы будете ещё редактировать, печатать или увеличивать; 70 — для миниатюр и превью, где важнее всего размер.
Почему оценка результата отличается от настройки?
Выбранная оценка качества — это минимум, поэтому результат обычно получается чуть выше: 81 или 83 при цели 80.
Уменьшение размеров в пикселях — это потеря качества?
Уменьшение убирает пиксели намеренно. PicoDiet уменьшает изображение, только если вы выбрали «Авто», максимальный размер или размер файла, в который все пиксели не помещаются, и тогда сравнивает результат с оригиналом, уменьшенным до тех же размеров.
Мои изображения останутся приватными?
Да. Изображения загружаются по зашифрованному соединению на ближайший из наших серверов, сжимаются и удаляются в течение 3 минут после того, как вы закончите. Их никому не передают, не продают и не используют для обучения ИИ, а регистрироваться не нужно. Подробности — в политике конфиденциальности.