libjpeg turbo map编码器扩展

这个插件带来了使用libjpeg turbo库将JPEG图像编码为WMS输出的能力。引用其网站 libjpeg-turbo library 是libjpeg的一个派生,它使用SIMD指令(MMX、SSE2、NEON)来加速x86、x86-64和ARM系统上的基准JPEG压缩和解压缩。在这样的系统中,libjpeg-turbo的速度通常是libjpeg未修改版本的2-4倍,其他都是相同的。我想很清楚为什么我们要写这个插件!请注意,底层imageio ext turbojpeg使用turbojpeg,turbojpeg是在libjpeg turbo的基础上构建的一组更高级别的API(提供更友好的方法,如“Compress”)。

警告

加速速度可能因目标基础设施而异。

该模块安装后,只需替换geoserver的标准jpeg编码器,并允许我们使用libjpeg turbo库对getmap请求的jpeg响应进行编码。

备注

值得指出的是,该模块依赖于libjpeg-turbo本机库的成功安装(稍后将详细介绍)。

安装libjpeg turbo本机库

安装LBJPEG Turbo本地库是使相对GeoServer MAP编码器正确安装的先决条件;一旦GeoServer扩展已经安装,正如我们在下面的章节中所解释的,需要与Java桥连接到库的JAR是在类路径中,因此我们需要做的是安装本机库本身,开始以turbo速度编码jpeg。

要执行libjpeg turbo二进制文件(或本机库)的安装,必须执行以下步骤:

  1. 转到下载站点 here 并下载最新的可用稳定版本(撰写本文时为1.2.90)

  2. 选择在操作系统(例如,Linux而不是Windows)和体系结构(32位与64位)方面与目标平台匹配的软件包

  3. 使用目标平台约定执行安装。作为Windows的实例,您应该使用一个安装程序,该安装程序可以在用户选择的位置安装所有需要的库。在Ubuntu Linux系统上,您可以使用 deb 而不是文件。

  4. 一旦安装了本机库,就必须确保地理服务器可以加载它们。这应该在Linux上的步骤2之后自动发生,而在Windows上,您应该确保放置DLL的位置是GeoServer的Java进程的路径环境变量的一部分。

警告

在Windows上安装时,始终确保放置DLL的位置是GeoServer的Java进程的路径环境变量的一部分。这通常意味着您必须将此类位置添加到用于运行geoserver或系统范围变量的用户的path环境变量中。

警告

在Linux上安装时,请确保放置DLL的位置是GeoServer的Java进程LDLBracyPyPATH环境变量的一部分。对于各种Linux软件包,这通常是自动发生的,但在某些情况下,您可能会被迫手动执行此操作。

备注

还可以将本机库的安装位置添加到Java启动选项-Djava.Library.Path=<Abte_and_Valid_Path>

安装geoserver libjpeg turbo扩展

警告

在继续之前,请确保按照上面的部分安装了libjpeg-turbo二进制文件。

  1. 访问 website download 页面,找到您的版本,并下载: geoserver-2.24.x-libjpeg-turbo-plugin.zip

    警告

    确保与扩展模块的版本匹配(例如 2.24.x 上图)到Geoserver实例的版本!

  1. 将存档的内容解压缩到 WEB-INF/lib Geoserver安装的目录。

检查扩展是否已启用

安装扩展后,以下行应显示在geoserver日志中:

10-mar-2013 19.16.28 it.geosolutions.imageio.plugins.turbojpeg.TurboJpegUtilities load
INFO: TurboJPEG library loaded (turbojpeg)

或:

10 mar 19:17:12 WARN [turbojpeg.TurboJPEGMapResponse] - The turbo jpeg encoder is available for usage

您也可以在 Server Status 佩奇。从 Modules 选项卡:

  • 找到 GeoServer libjpeg-turbo Module 模块。启用状态表示分机是否可用

  • 按下 GeoServer libjpeg-turbo Module 链接以检查模块状态。这个 Module Info 对话框指示使用的JNI LibJPEGTurbo包装版本。

禁用扩展

当运行GeoServer时,可以通过使用JVM进程的JavaSwitter禁用TURB编码器:

-Ddisable.turbojpeg=true

在这种情况下,应该在日志中找到如下消息:

WARN [map.turbojpeg] - The turbo jpeg encoder has been explicitly disabled

备注

我们将很快在GUI中添加一个部分来检查扩展的状态,并允许用户在运行时启用/禁用它。

Previous: JP2K插件
Next: 监测