← Images / images / polish
WebP может быть пропущен
Polish не конвертирует изображения в формат WebP, если такое преобразование увеличило бы размер файла или существенно ухудшило качество изображения. Polish также оптимизирует изображения JPEG, и формат WebP не всегда лучше хорошо оптимизированного JPEG.
Чтобы улучшить использование WebP в Polish, включите Опция Lossy. При создании новых изображений JPEG сохраняйте их с чуть более высоким качеством, чем обычно требуется. Мы рекомендуем задавать качество JPEG в пределах от 85 до 95, но не выше. Это даёт Polish достаточный запас для конвертации с потерями в WebP и для оптимизации JPEG.
В без потерь режиме преобразовать JPEG в WebP невозможно
На самом деле под названием WebP скрываются два совершенно разных формата изображений: WebP-lossless (аналог PNG) и WebP-VP8 (аналог JPEG).
Если Опция Lossless включено, Polish не будет выполнять оптимизации, изменяющие пиксели изображения. Это позволяет Polish конвертировать изображения только между форматами без потерь, такими как PNG, GIF и WebP-lossless. При этом изображения JPEG конвертироваться не будут, поскольку формат WebP-VP8 не поддерживает конвертацию из JPEG без потери качества, а формат WebP-lossless сжимает изображения не так сильно, как JPEG.
В режиме без потерь Polish всё же может применять оптимизации без потерь к изображениям JPEG. Это уникальная особенность формата JPEG, у которой нет аналога в WebP.
Изображения JPEG низкого качества плохо конвертируются в WebP
Если файлы JPEG уже сильно сжаты (например, сохранены с низким значением качества вроде q=50, или многократно пересохранённых), конвертация в WebP может оказаться невыгодной и даже увеличить размер файла. Дело в том, что форматы с потерями добавляют изображению искажения (например, JPEG делает изображение блочным и добавляет шум по краям резких переходов), а формат WebP не способен отличить детали, которые нужно сохранить, от нежелательных искажений, оставшихся после предыдущего сжатия. Из-за этого WebP вынужден расходовать байты на сохранение лишнего шума и блочности, что увеличивает размер файла и снижает общую эффективность сжатия.
Polish никогда не увеличивает размер файлов. Если мы видим, что преобразование в WebP увеличивает размер файла, мы пропускаем его и сохраняем исходный формат файла меньшего размера.
Для некоторых изображений преобразование в WebP может слишком сильно ухудшить качество
Формат WebP в своём более эффективном режиме VP8 всегда теряет часть качества при сжатии изображений. Это означает, что преобразование из JPEG всегда делает изображения WebP немного хуже по виду. Polish следит за тем, чтобы выигрыш в размере файла от преобразования превышал потерю качества.
У формата Lossy WebP есть существенное ограничение: он может сохранять только один оттенок цвета на 4 пикселя, поскольку цветовая информация всегда хранится с половинным разрешением изображения. На фотографиях высокого разрешения эта деградация почти незаметна. Однако на изображениях с насыщенными цветами и резкими краями это ограничение может приводить к заметной пикселизации или смазыванию краёв в формате WebP.
Кроме того, формат WebP применяет к изображениям сглаживание. Эта функция скрывает блочные искажения, характерные для JPEG-изображений низкого качества, но при этом на высококачественных изображениях она может приводить к потере мелких текстур и деталей, из-за чего изображение выглядит излишне гладким.
Polish старается не ухудшать изображения ради незначительной выгоды. Polish сохраняет формат JPEG, если его размер примерно такой же, как у WebP, но качество выше.
Иногда старые форматы лучше, чем WebP
Формат WebP имеет преимущество перед JPEG при сохранении изображений с мягким или размытым содержимым, а также при низких настройках качества. У WebP меньше преимуществ при хранении высококачественных изображений с мелкими текстурами или шумом. Polish применяет оптимизации и к изображениям JPEG, и иногда хорошо оптимизированный JPEG оказывается просто лучше, чем WebP, обеспечивая одновременно более высокое качество и меньший размер файла. Мы стараемся выявлять такие случаи и сохранять формат JPEG, если он даёт лучший результат. Иногда анимации с небольшим количеством движения эффективнее представлять в виде GIF, а не анимированного WebP.
Формат WebP не поддерживает прогрессивный рендеринг. При использовании Приоритизация HTTP/2 включено, прогрессивные изображения JPEG могут казаться загружающимися быстрее, даже если их файлы больше по размеру.
Остерегайтесь сжатия, которое не даёт выигрыша, а лишь повторяет уже сделанное
При работе с форматами с потерями, такими как JPEG или WebP, всегда можно взять готовое изображение, сохранить его с чуть более низким качеством и получить изображение, которое выглядит почти такое же, но имеет меньший размер файла. Это парадокс кучи ↗: можно убрать одну песчинку из кучи песка, и куча песка всё равно останется кучей. Не существует момента, когда кучу невозможно сделать меньше, кроме случая, когда песка не осталось вовсе. Точно так же всегда можно получить изображение чуть более низкого качества, и так до тех пор, пока накопленные потери не сделают изображение неузнаваемым.
Не применяйте к изображениям несколько инструментов оптимизации с потерями, ни до, ни после Polish. Несколько операций с потерями снижают качество непропорционально сильнее, чем экономят размер файла.
По этой причине Polish не создаёт файлы минимально возможного размера. Вместо этого Polish стремится максимизировать соотношение качества к размеру файла, создавая как можно более компактные файлы при сохранении хорошего качества. Уровень качества, на котором мы останавливаемся, тщательно подобран так, чтобы минимизировать визуальные искажения и при этом сохранить высокую степень сжатия.