-
Notifications
You must be signed in to change notification settings - Fork 6
Known Limitations
RAIS was built first and foremost to serve tiles for JP2s that always have multiple resolution factors ("zoom levels") and are tiled. It has been amazing for us within that context, but there are areas where it won't perform well:
Very large images (hundreds of megapixels) can take a while to decode. In some cases, 2-3 seconds per tile when load gets moderate. Unfortunately, this seems to be a limitation of JP2 decoders in general. Even when encoded perfectly, it just takes a little while to decode.
If serving up files of this size, caching may be a good idea.
YCC isn't supported directly (unless openjpeg does magic conversions for us, which we haven't tested). RGBa should work, but the alpha channel will be ignored. Embedded color profiles definitely don't work.
Huge images and/or high traffic can cause the JP2 processor to chew up large amounts of RAM. If you use RAIS to serve up raw TIFF files, RAM usage is likely to be a massive bottleneck. The good news is that when handling tiled, multi-resolution JP2s, RAM usage tends to be fairly predictable even under a sizeable load. And RAIS scales horizontally very well.
The IIIF support adheres to level 2 of the spec (as well as some extra features), but it isn't as customizable as we would prefer.
When you don't provide your own info.json response (as described above), the default response's quality choices are hard-coded to include color, gray, and bitonal, even for gray/bitonal images.
It should also be noted that GIF output is amazingly slow. Given that GIF output isn't even a IIIF level 2 feature, we aren't planning to put much time into troubleshooting the issue. GIFs are available if you explicitly enable them (via a capabilities file), but should probably be avoided.
These aren't well-tested since our system is exclusively JP2. Non-JP2 types that are supported (TIFF, JPG, PNG, and GIF) have to be read in fully and then cropped and resized within the application. This will not normally be as fast as image formats built for deep zooming (tiled JP2s for RAIS). Note, however, that for small images (5-10 megapixels), it's possible that the speediness of the image format outweighs the cost of reading it in.
As an example: TIFF files are usually fast to process, but can potentially take up a great deal of memory. Sometimes this is okay, but it's a bottleneck quickly when running a tiling server. In our limited testing, TIFFs outperform tiled JP2s only when load is extremely light.