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:

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.


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 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:


This will start iipsrv in stand-alone (command line) mode listening on localhost ( 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

# Specify IP address and port to bind to in stand-alone mode

# Environment parameters file for iipsrv

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

# /etc/iipsrv.conf

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" 

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.


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.


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…

Current Trends and Future Directions for Digital Imaging in Libraries and Archives

JPEG2000, Server No Comments

Current Trends and Future Directions for Digital Imaging in Libraries and Archives was a one-day workshop on JPEG2000 organized by the Wellcome Library and the Digital Preservation Coalition (DPC). The event took place on the 10th November 2014 at the Wellcome Trust in London and brought together a range of specialist practitioners with experience of JP2K for digital libraries and digital archives.

IIPImage presentation at the Wellcome Trust

The workshop examined current and emerging practice with JPEG2000 and sought to enable a debate about future directions for the format.  There were a number of case studies and presentations of tools and JP2K workflows with consideration given to how these developments can inform and extend preservation practice for image archives, digital photography and digitization.

The programme included talks from the Wellcome Library itself, Oxford University’s Bodleian library, the National Library of the Netherlands and the British Library. And the results of a JPEG2000 use survey in the cultural heritage sector.

In addition, there were presentations on tools including the JPEG2000 validation tool jpylyzer, the Goobi library workflow system and a presentation on the status of OpenJPEG, the principal open source JPEG2000 implementation today. And, of course, there was a presentation on IIPImage.

The IIPImage server has had support for JPEG2000 since version 0.9.9 of the server and it is already used for JPEG2000 by a number of major libraries including the Wellcome Library, Oxford University’s Bodleian Library, the French National Library (the BNF) and several university research libraries. The IIPImage talk was entitled IIPImage and a Performance Analysis of JPEG2000 Encoding Parameters, which looked at IIPImage itself, case studies of IIPImage use and some live demos showing some advanced uses of IIPImage. The presentation also looked at how to optimize JPEG2000 encoding parameters, showing the results of a preliminary study on how code block, precinct and tile size affect the resulting JPEG2000 file size, the encoding time and crucially, the time to decode a region, which is a key criteria for image servers such as IIPImage. A more detailed look at these results will be the subject of a future post.

The programme of the event and the various presentations are available from the Digital Preservation Coalition page for the event and the IIPImage presentation is available below:

« Previous Entries

Flattr this

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