IIIFServer

IIIF, JPEG2000 No Comments

IIPImage has teamed up with Klokan Technologies to make the adoption of IIIF (the International Image Interoperability Framework) and JPEG2000 faster and easier for institutions seeking to implement the IIIF standard.

IIIFServer is a high performance IIIF 2.1 image server that has been optimized for fast efficient use with IIIF and JPEG2000. The server is based on IIPImage and includes licensing for the proprietary Kakadu codec, which provides the fastest JPEG2000 decoding speed currently available.

IIIFServer is available as fully tested, ready-to-install binary packages for both Windows and Linux and is available for both non-profit and commercial use.

Binary packages exist for 64 bit Windows as well as Debian, Ubuntu, Fedora and Redhat. In addition, IIIFServer can be installed through a Docker container. To download the packages, see the IIIFServer download page.

These binaries provide demo functionality by default and it is possible to purchase non-profit, single server commercial or multi-server commercial licensing. Pricing and online purchase is available directly from the IIIFServer website.

The OpenLayers v3 based IIIFViewer is also available, which is optimized for mobile use and uses WebGL hardware accelerated rendering, providing a fast powerful front-end to IIIFServer.

IIIFViewer

 

IIPImage on Solaris

New Release, Server, Solaris No Comments

The IIPImage server, iipsrv, runs on all UNIX-based operating systems and has been supported on Solaris for many years.

A binary distribution of iipsrv version 1.0 is now available for the latest version of Solaris, Solaris 11.3, for x86-based systems:
iipsrv-1.0-solaris11.tar.bz2

This distribution contains both 32bit (x86_32/iipsrv.fcgi) and 64bit (x86_64/iipsrv.fcgi) compiled IIPImage server binaries (iipsrv.fcgi) for Intel-based x86 Solaris and an Apache 2.2 configuration file.

Installation

The following instructions are for installation with the Apache web server. For use with other servers such as Lighttpd or NginX or for use in stand-alone mode, see the IIPImage server documentation.

Solaris 11.3 includes a distribution of version 2.2 of Apache by default. The Apache mod_fcgid FCGI module, however, needs to be installed. This can be easily done through the default Solaris package manager.

Once installed, you will need to modify the included mod_fcgid file (/etc/apache2/2.2/conf.d/fcgid.conf) as it is unable to run as-is due to a permissions issue. You will need to do this either as the root user or using the sudo command. Find the entries for FcgidProcessTableFile and FcgidIPCDir and modify them to point to different locations as follows:

FcgidProcessTableFile /var/run/apache2/fcgid_shm
FcgidIPCDir /tmp/fcgid.sock

Once you have done this, you will need to install iipsrv and configure Apache accordingly. First create a directory for FCGI executables:

% mkdir /var/apache2/2.2/fcgi-bin

Download the iipsrv Solaris distribution: iipsrv-1.0-solaris11.tar.bz2 and extract the contents. Inside you will find both 32bit (x86_32/iipsrv.fcgi) and 64bit (x86_64/iipsrv.fcgi) binaries, an example Apache configuration file and both a README for Solaris and one for iipsrv generally. Copy either the 32bit or 64bit iipsrv.fcgi binary included in this distribution to the FCGI directory you created above (64bit in the following example):

% cp x86_64/iipsrv.fcgi /var/apache2/2.2/fcgi-bin/

mod_fcgid uses a shared memory file by default. However, the subdirectory isn’t created by default, so you will need to create it:

% mkdir /var/run/apache2/2.2

An example configuration file (iipsrv.conf) is included with this distribution for use with mod_fcgid. Modify the configuration file if you wish (see the server documentation for details on available parameters) and copy this to the default location for Apache configuration files

% cp iipsrv.conf /etc/apache2/2.2/conf.d/

The configuration file sets the iipsrv log file location to /var/log/ which requires the web server to have write permission. If you have modified this to point to somewhere like /tmp/ you may skip this step:

% touch /var/log/iipsrv.log
% chown webservd /var/log/iipsrv.log

Finally enable and restart Apache via the svcadm command:

% svcadm enable apache2
% svcadm restart apache2

Open your web browser at http://localhost/fcgi-bin/iipsrv.fcgi. You should see the iipsrv info page. If not, check the iipsrv log file and Apache log files. Follow the IIPImage troubleshooting guide if necessary.

 

IIPImage now an Official FreeBSD Package

FreeBSD, New Release, Server No Comments

IIPImage is is now an official FreeBSD package. As of version 1.0 of iipsrv, the IIPImage server is now included as part of the FreeBSD ports package collection. The iipsrv package, net/iipsrv, has binary builds available for both 32 and 64bit FreeBSD. For the latest build information, see the build and package status page.

Installation

Installation is very straight-forward. Simply use the default FreeBSD package manager, pkg, to install:

sudo pkg install iipsrv

The pkg utility will install into /usr/local/ by default with the iipsrv.fcgi binary in /usr/local/bin/iipsrv.fcgi and a start-up script in /usr/local/etc/rc.d/iipsrv, which will allow you to easily run iipsrv in stand-alone mode. Note that this binary does not include Memcached or JPEG2000 support. If you require these, you will need to compile iipsrv manually.

Running iipsrv as an Independent Process

iipsrv can be started as a stand-alone process independent of the web server. The supplied rc start-up script can be used to start iipsrv with the following default command line flags:

--bind 127.0.0.1:9111

This will start iipsrv in stand-alone (command line) mode listening on localhost (127.0.0.1) and port 9111 and will be configured to create a log file in /tmp/iipsrv.log.

You can optionally modify various settings by adding them to /etc/rc.conf. For example:

# /etc/rc.conf iipsrv start-up configuration

# Enable iipsrv at system startup
iipsrv_enable="YES"

# Specify IP address and port to bind to in stand-alone mode
iipsrv_flags="--bind 127.0.0.1:9000"

# Environment parameters file for iipsrv
iipsrv_config="/etc/iipsrv.conf"

The /etc/iipsrv.conf file should contain start-up environment variables for iipsrv as described in the server documentation. For example:

# /etc/iipsrv.conf
LOGFILE=/tmp/iipsrv.log
VERBOSITY=5
JPEG_QUALITY=90
MAX_CVT=1000

You can then start the IIPImage server process using the following command:

/usr/local/etc/rc.d/iipsrv start

If you have set iipsrv_enable to YES in /etc/rc.conf, iipsrv will starting automatically on system reboot.

Ports also makes it possible to easily run multiple simultaneous instances of iipsrv. This is useful, for example, if you want different iipsrv settings or you want to serve different file trees for different sites etc. To do this, you should specify each instance in /etc/rc.conf as in the following example:

iipsrv_instances="site1 site2" 
iipsrv_site1_flags="--bind 127.0.0.1:9111" 
iipsrv_site1_user="site1_chroot_user" 
iipsrv_site1_config="/usr/local/etc/iipsrv_site1.conf" 
iipsrv_site1_enable="YES" 
 
iipsrv_site2_flags="--bind 127.0.0.1:9112" 
iipsrv_site2_user="site2_chroot_user" 
iipsrv_site2_config="/usr/local/etc/iipsrv_site2.conf" 
iipsrv_site2_enable="YES"

Running iipsrv with a Web Server

The IIPImage server can also be started and managed directly by the Apache or Lighttpd web servers, rather than being run as an independent process.

Apache

For Apache, you will need to install an FCGI module and either mod_fcgid or mod_fastcgi can be used. To install with mod_fcgid:

sudo pkg install apache24 ap24-mod_fcgid

To enable the module, uncomment the following line in /usr/local/etc/apache24/http.conf

#LoadModule fastcgi_module libexec/apache24/mod_fcgid.so

Similarly to install with mod_fastcgi:

sudo pkg install apache24 ap24-mod_fastcgi

To enable the module, uncomment the following line in /usr/local/etc/apache24/http.conf

#LoadModule fastcgi_module libexec/apache24/mod_fastcgi.so

You will then need to configure Apache to manage iipsrv. See the Apache section of the iipsrv server documentation for more details.

Lighttpd

The Lighttpd web server includes FCGI support by default, so simply install:

sudo pkg install lighttpd

Then enable fastcgi in the modules configuration file (/usr/local/etc/lighttpd/modules.conf). You should then add the iipsrv directives to the Lighttpd FastCGI configuration file (/usr/local/etc/lighttpd/conf.d/fastcgi.conf). See the iipsrv server documentation for Lighttpd for more details.

Other Web Servers

For web servers such as NginX or Apache Java Tomcat, which cannot start FCGI processes themselves, you should start iipsrv in stand-alone mode as explained above and configure your server to point to the IP address and port configured for iipsrv. See the server documentation for NginX or for Tomcat for more details.

 

iipsrv 1.0

IIIF, JPEG2000, Mac OS X, New Release, Optimization, Protocol, Server No Comments

Version 1.0 of iipsrv, the IIPImage server, is now officially released! This is a major new version containing a whole host of new features, major performance enhancements, optimizations, numerous bug-fixes and stability enhancements. Major new features include support for the IIIF protocol, 32 bit floating point data support and several new image processing commands.

New features include:

Read the rest…

Web-Based Visualization of Very Large Scientific Astronomy Imagery

Client, Server No Comments

IIPImage has been adopted by a number of users in the astronomy community due to it’s ability to handle both very large images and scientific-grade quantitative data. See, for example, this post from the Wide Field Astronomy Unit about putting online a massive image of our galaxy containing 1 billion stars. Although the image in that example is very large (the TIFF is over 150GB in size), the original scientific data has been reduced to 8 bits per channel for visualization purposes.

However, much astronomy data (and indeed scientific data in general), is in quantitative linear floating point format, requiring 32 bits per channel. Having access to such quantitative image data at this level of precision and dynamic range is important for carrying out scientific data analysis. And there are major benefits from having remote access to very large floating point data in a number of tasks in astronomy, astrophysics and planetary science.

VisiOmatic client with 1TB floating point image, vector layers and image profile visualization.

IIPImage and VisiOmatic: 1TB floating point image, vector layers and image profile visualization

New Server Features

IIPImage already handled 8 and 16 bit per channel data and full 32 bit support for both integer and floating point has now been added in association with the Institute of Astrophysics and the Geosciences Laboratory of the University of Paris Sud. Much of the core image processing within iipsrv is now carried out using 32 bits of dynamic range, enabling real-time access to and the real-time processing of extremely large scientific data sets.

The speed and scalability of the IIPImage server is one of its most important features. The use and processing of floating point data is far more memory and computationally expensive than for standard 8 bit data and could have had an impact on server performance. iipsrv has, therefore, been heavily optimized to minimize this, which has also significantly improved speeds for all types of image. Improvements have also been made to iipsrv’s handling of extremely large images and it is now able to comfortably and efficiently handle terabyte size images of any bit depth.

In addition, a number of other important new features have been added to the IIPImage server, that although aimed at astronomy applications, are useful in a wide range of disciplines:

  • Gamma correction (GAM parameter)
  • Minimum and maximum cuts (MINMAX parameter)
  • Full resolution data profiles (PFL parameter)
  • Dynamic color-mapping (CMP parameter)

These features are available in the latest server code on GitHub and will form part of the forthcoming 1.0 server release. For more details on the syntax for the new parameters, see the IIP protocol documentation.

In terms of file formats for floating point data, TIFF is not only able to store 8 bits per channel images, but also 16 bit and both 32 bit integer and 32 bit floating point data, meaning that all the standard TIFF imaging software pipeline can continue to be used with IIPImage. See the image documentation for more details on image formats and the software STIFF for generating TIFF files suitable for IIPImage from FITS data.

Read the rest…

« Previous Entries

Flattr this




Donations appreciated Bookmark and Share
Get IIPImage at SourceForge.net. Fast, secure and Free Open Source software downloads