Open Access with IIPImage at Ghent University Library

The Book Tower, Ghent University Library

Guest Post by Nicolas Franck, Ghent University Library

Ghent University Library (Belgium) – better known as the “Book Tower” – started digitizing its collections back in 2004. It has a wide variety of material, ranging from books, manuscripts, papyri, posters, coins to drawings and old maps. From the beginning, the main purpose was to provide its audience – mainly researchers and students – open access to its digital content online.

A website was created with a search interface, and a commercial viewer (EREZ viewer) to view the digital images online at http://adore.ugent.be

But in 2010 we decided to create a new website with more possibilities, and to use an open source software to view our images online. We needed software that was fast, reliable, open source and that used the new possibilities of HTML5.

That is where IIPImage came in. The IIPMooviewer client was slightly adapted to our needs with, for example, the addition of a zoom level indicator.

Some of the resources consists of more than one image, such as scans belonging to a book. So we created a carousel, that wraps IIPMooviewer within an iframe. See this example showing Liber Floridus a rare 12th century medieval encyclopaedia of Flanders: http://adore.ugent.be/OpenURL/app?id=archive.ugent.be:018970A2-B1E8-11DF-A2E0-A70579F64438&type=carousel&scrollto=60:

Liber Floridus – book page carousel wrapping iipmooviewer

The raw images are first converted to 8 bit sRGB using PerlMagick before conversion to JPEG2000 format with Kakadu using the following parameters:

kdu_compress -i input.tif -o output.jp2 -quiet -rate 24 Clayers=8 Clevels=8
    Cprecincts="{256,256},{256,256},{128,128}" Corder=RPCL ORGgen_plt=yes
    ORGtparts=R Cblk="{64,64}" Cuse_sop=yes -no_palette -num_threads 4
Trajan’s Column

This results in a maximum of 8 resolution levels and 8 quality layers with a precinct size of 256×256 pixels. They are stored with lossy compression to reduce the file size, but with a high encoding rate of 24 bits per pixel.

The largest image is this 1774 etching of Trajan’s column by the Italian artist Giovanni Battista Piranesi (1720-1778). The scan is 832 megapixels in size (15261×54519 pixels). The compressed JPEG2000 file itself is about 400MB in size, while the uncompressed image was 2GB in size.

Interactive viewer: http://adore.ugent.be/OpenURL/resolve?rft_id=archive.ugent.be:EBFE8CFC-AC6F-11E1-81A7-AD7FAAF23FF7:1&svc_id=zoomer&url_ver=Z39.88-2004

JPEG2000 file download: http://adore.ugent.be/OpenURL/resolve?rft_id=archive.ugent.be:EBFE8CFC-AC6F-11E1-81A7-AD7FAAF23FF7:1&svc_id=original&url_ver=Z39.88-2004

We use Red Hat Enterprise Linux Server release 6.2 with Nginx as the web server. The iipsrv process is started via an init-script using spawn-fcgi:

export VERBOSITY="1"
export MAX_IMAGE_CACHE_SIZE="100"
export FILENAME_PATTERN="_pyr_"
export JPEG_QUALITY="100"
export MAX_CVT="300"
spawn-fcgi -f /path/to/iipsrv.fcgi -U iipsrv -u iipsrv
                          -s /var/run/iipsrv.socket -n

As you can see, a Unix socket is created and Nginx uses its fastcgi-module to proxy all requests to /iip to this socket. Although the IIPImage server has it own methods of caching its results, we decided to let Nginx cache the results itself, to lower the number of requests to the backend server.The IIPImage-server can be reached through this proxy at http://adore.ugent.be/iip.

by Nicolas Franck, Ghent University Library