Можно ли сжать фото без потери качества?
Обновлено
Да. Визуально без потерь означает, что из файла убирается только то, чего не видит глаз: вес заметно падает, а картинка выглядит так же. Вот как это выглядит в цифрах на настоящем фото.
Короткий ответ
Большинство изображений можно облегчить вдвое и больше без разницы, заметной при обычном просмотре. Секрет в том, чтобы убирать информацию, которая не несёт видимого смысла: слабый шум матрицы, точность цвета выше той, что показывает экран, и избыточность в том, как файл хранится. Нельзя другое: сжать файл до любого размера и сохранить каждый пиксель без изменений. После определённой границы приходится жертвовать чем-то видимым.
Поэтому честный вопрос звучит не «меняет ли сжатие файл», оно меняет всегда, а «видно ли это изменение». Хороший компрессор проверяет это сам, а не заставляет угадывать ползунок качества.
Без потерь, с потерями и визуально без потерь
Сжатие без потерь (lossless) сохраняет каждый пиксель как был. Оно лишь хранит те же данные компактнее, поэтому для фотографий экономия обычно скромная.
Сжатие с потерями (lossy) отбрасывает часть данных ради намного меньшего размера. Если переборщить, появляются размытие, квадратики и полосы в плавных переходах цвета.
Визуально без потерь означает сжатие с потерями, у которого есть предел: данные убираются, только пока результат неотличим от оригинала для человека. Так работает Compresso. Он сжимает файл, сравнивает результат с оригиналом и оставляет более безопасный вариант, если разница может стать заметной.
Что мы намерили на настоящем фото
Мы взяли фото собаки на пляже размером 1980 × 1440, которое можно рассмотреть в лупе на нашей главной. Исходный JPEG весит 2 296 031 байт. После сжатия он весит 197 400 байт, то есть на 91% меньше. Размеры в пикселях не изменились.
Затем мы сравнили два файла попиксельно. Средняя разница составляет 2,85 уровня яркости из 255, около 1%. У 88,7% пикселей разница не больше 5 уровней, у 99% не больше 11. Лишь 61 пиксель из 2,85 миллиона отличается на 30 уровней и больше, а максимум в 41 уровень у одного-единственного: их слишком мало, и они слишком малы, чтобы их заметить.
Самая интересная цифра: в сжатом файле примерно в три раза меньше мелкого зернистого шума, чем в оригинале (высокочастотная энергия 0,52 против 1,63 на ровном участке воды). Это зерно даёт матрица камеры, и при обычном просмотре оно не видно. Именно на его удалении и получается основная часть экономии в 91%. Поэтому под сильной лупой сжатая копия может выглядеть даже чище оригинала.
Когда качество действительно теряется
Обычно качество портит не аккуратный компрессор, а другое. Уменьшение размера в пикселях выбрасывает пиксели навсегда. Повторное сохранение JPEG с низким качеством каждый раз добавляет новые артефакты. Мессенджеры и соцсети часто уменьшают и пережимают загрузки, чтобы сэкономить свой трафик.
Чтобы этого избежать, храните оригинал, сжимайте один раз именно из оригинала и не уменьшайте размеры без необходимости. Compresso никогда не меняет размеры: у результата всегда те же пиксели по ширине и высоте, что у загруженного файла.
Как проверить самому
Откройте оригинал и сжатый файл рядом в масштабе 100%, так, как их и будут смотреть. Если не можете сказать, где какой, сжатие для этого изображения визуально без потерь. Чтобы рассмотреть ближе, воспользуйтесь лупой на главной Compresso: левая половина увеличивает исходный файл, правая сжатый, в восемь раз и в одной и той же точке.