jpeg_filter_optimize

Директива `jpeg_filter_optimize` включает или отключает оптимизацию Huffman tables в JPEG-изображениях, обрабатываемых NGINX JPEG filter module.

Синтаксисjpeg_filter_optimize on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива jpeg_filter_optimize, являющаяся частью NGINX JPEG filter module, повышает эффективность процесса кодирования JPEG за счёт оптимизации Huffman tables. Huffman coding, являющееся алгоритмом сжатия данных без потерь, использует коды переменной длины для кодирования различных символов, что способствует уменьшению общего размера файлов изображений. Установив эту директиву в 'on', модуль будет обеспечивать оптимизацию этих таблиц в процессе кодирования JPEG. Это особенно полезно для часто запрашиваемых изображений и может привести к снижению потребления пропускной способности без потери качества изображения.

Когда директива включена, базовая библиотека (libmodjpeg) использует свои возможности оптимизации для динамической настройки Huffman tables в зависимости от конкретных характеристик обрабатываемого изображения. Это означает, что изображения можно обслуживать более эффективно, что упрощает работу для высоконагруженных сайтов, размещающих JPEG-изображения, таких как галереи или платформы электронной коммерции. Напротив, если директива установлена в 'off', процесс оптимизации пропускается, что может привести к чуть большим размерам изображений и потенциально увеличить время загрузки для пользователей.

Директива принимает флаговый аргумент ('on' или 'off'), что упрощает включение или отключение этой функции. Она может быть размещена в различных контекстах, таких как http, server или location, обеспечивая гибкость в зависимости от требований к развертыванию. Пользователям также следует учитывать, что процесс оптимизации может внести незначительную вычислительную нагрузку, но, как правило, она компенсируется экономией пропускной способности, особенно для сайтов с большим трафиком изображений.

Пример конфига

location /images/ {
    jpeg_filter on;
    jpeg_filter_optimize on;
    jpeg_filter_buffer 2M;
}

Включение jpeg_filter_optimize может незначительно увеличить использование CPU из-за процесса оптимизации, что может повлиять на производительность на серверах с ограниченными ресурсами.

Убедитесь, что jpeg_filter также включён; в противном случае jpeg_filter_optimize не будет иметь эффекта.

Проверьте изображения после включения оптимизации; в редких случаях это может привести к непредвиденным результатам в отдельных JPEGs.

← Ко всем директивам