jpeg_filter_arithmetric
在 JPEG 过滤模块中,`jpeg_filter_arithmetric` 指令用于启用或禁用算术编码。
NGINX JPEG filter module
·
httpserverlocation
语法jpeg_filter_arithmetric on | off;
默认值off
上下文http, server, location
参数flag
说明
jpeg_filter_arithmetric 指令控制在生成 JPEG 图像时是否应用算术编码。算术编码是一种高级压缩技术,与传统的霍夫曼编码相比,它可以更有效地表示像素值,从而有可能提高生成的 JPEG 的质量。将该指令设置为 on 时,NGINX 会在 JPEG 编码过程中使用这种方法,这可能导致更小的文件大小和更好的图像质量,尤其是在色彩分布复杂的图像中。相反,将其设置为 off 将恢复为标准的霍夫曼编码方法。
此指令可在多种上下文中使用,包括 http、server 和 location,根据应用需求提供灵活的配置。若要为服务器提供的所有 JPEG 图像全局启用算术编码,请在 http 块中包含该指令。为了更精细的控制,也可以在 server 或 location 级别设置,以针对特定图像或画廊部分。然而,需要注意的是,启用算术编码可能会导致 CPU 使用率增加,因为该编码过程比标准的霍夫曼编码在计算上更为耗费资源。
配置示例
http {
jpeg_filter on;
jpeg_filter_arithmetric on;
jpeg_filter_optimize on;
location /images/ {
jpeg_filter_max_pixel 1000000;
}
}⚠
启用 arithmetic coding 可能在 JPEG 处理过程中增加 CPU 使用率,在流量高峰时可能影响服务器性能。
⚠
确保 JPEG filter module 的底层实现支持 arithmetic coding,因为某些配置可能需要特定的依赖项。