INTEGRITY Документация

Сжатие Polish

В режимах Lossless и Lossy Cloudflare старается удалить как можно больше метаданных. Однако полное удаление метаданных не гарантируется, поскольку на итоговый набор метаданных в ответе могут влиять и другие факторы, например статус кеширования.

Параметры сжатия

Off

Polish отключён, и сжатие не применяется. Отключение Polish не возвращает ранее обработанные изображения к исходному виду, пока они не устареют или не будут удалены из кэша.

Lossless

Опция Lossless уменьшает размер файла, не изменяя пиксели изображения, поэтому изображение остаётся идентичным оригиналу. Она удаляет большую часть метаданных, например данные EXIF, и пересжимает данные изображения без потерь. Изображения JPEG могут преобразовываться в прогрессивный формат. В среднем сжатие без потерь уменьшает размер файла на 21 процент по сравнению с неоптимизированными изображениями.

Опция Lossless предотвращает преобразование JPEG в WebP, поскольку такое преобразование всегда происходит с потерями.

Lossy

Опция Lossy обеспечивает значительно более эффективное сжатие изображений, чем Lossless, ценой небольшой потери качества. При распаковке часть избыточной информации исходного изображения теряется. В среднем режим Lossy уменьшает размер файла на 48 процентов.

Этот параметр также удаляет метаданные из изображений. Параметр Lossy в основном влияет на изображения JPEG, но изображения PNG также могут сжиматься с потерями или преобразовываться в JPEG, если это улучшает сжатие.

WebP

Если эта функция включена, Polish, помимо прочих оптимизаций, создаёт версии изображений, конвертированные в формат WebP.

Сжатие WebP довольно эффективно для изображений PNG: оно уменьшает размер файлов примерно на 26 процентов. Размер файлов JPEG оно может уменьшить примерно на 17 процентов, но это зависит от нескольких факторов. WebP поддерживается всеми браузерами, кроме Internet Explorer и KaiOS. Подробнее об этом можно узнать в нашем запись в блоге ↗.

Версия WebP отдаётся только в том случае, когда Accept заголовок браузера включает WebP и изображение в формате WebP значительно меньше, чем изображение исходного формата, пересжатое с потерями или без потерь:

Accept: image/avif,image/webp,image/*,*/*;q=0.8

Polish конвертирует только стандартные форматы изображений до формат WebP. Если исходный сервер отдаёт изображения в WebP, Polish не будет их конвертировать и не будет оптимизировать.

Размер файла, качество изображения и WebP

Форматы с потерями, такие как JPEG и WebP, позволяют получать файлы любого размера, и теоретически любое изображение можно уменьшить. Однако уменьшение размера файла всегда происходит за счёт снижения качества изображения. Если размер файла падает ниже оптимального предела для данного формата, качество ухудшается непропорционально быстро. Повторное кодирование уже оптимизированных файлов снижает их качество сильнее, чем уменьшает размер файла.

Cloudflare не преобразует JPEG в WebP, если это увеличит размер файла или снизит качество изображения сильнее, чем позволит сэкономить объём файла.

Если вы выберете настройку Lossless для Polish, WebP будет использоваться очень редко. Это связано с тем, что в этом режиме WebP подходит только для изображений PNG и не улучшает сжатие для изображений JPEG.

В среднем WebP сжимает лучше, чем JPEG, но бывают исключения: иногда JPEG сжимает лучше, чем WebP. Cloudflare пытается распознать такие случаи и сохранить формат JPEG.

Если на исходном сервере вы отдаёте изображения JPEG низкого качества (параметр качества 60 или ниже), преобразование в WebP может оказаться невыгодным. Дело в том, что изображения JPEG низкого качества содержат блочные артефакты и шум от сжатия, а эти искажения увеличивают размер файла WebP. Чтобы избежать этой проблемы, рекомендуется отдавать на исходном сервере изображения JPEG высокого качества (параметр качества от 80 до 90).

Если на вашем сервере или в системе управления контентом (CMS) есть встроенный конвертер или оптимизатор изображений, он может конфликтовать с Polish. Применять оптимизацию с потерями к изображениям дважды не имеет смысла, поскольку потеря качества превысит выигрыш в размере файла.

Взаимодействие Polish с оптимизацией изображений

Polish не применяется к URL-адресам, использующим преобразования изображений. К изменённым по размеру изображениям уже применено сжатие с потерями там, где это возможно, поэтому оптимизации Polish им не нужны. Используйте format=auto чтобы разрешить использование форматов WebP и AVIF.