ruven / iipsrv

iipsrv is an advanced high-performance feature-rich image server for web-based streamed viewing and zooming of ultra high-resolution images.
https://iipimage.sourceforge.io
GNU General Public License v3.0
292 stars 115 forks source link

Off-scale tiles (independent from client) #228

Closed scossu closed 2 years ago

scossu commented 2 years ago

We have one image in our IIIF collection that is presenting some out-of-scale tiles: https://www.getty.edu/art/collection/object/109Q66

At the two smallest zoom levels, the bottom left tiles are at the wrong scale. This seems to be independent from the viewer: it shows the same issue consistently in Mirador, Leaflet and UV.

A straight request to the image isolates the issue:

https://media.getty.edu/iiif/image/3d076337-73ef-472a-8e8d-7c3088f54b04/0,4096,2048,2047/full/0/default.jpg (full res tile, OK)

https://media.getty.edu/iiif/image/3d076337-73ef-472a-8e8d-7c3088f54b04/0,4096,2048,2047/512,/0/default.jpg (resized to 512 pixels wide, OK)

https://media.getty.edu/iiif/image/3d076337-73ef-472a-8e8d-7c3088f54b04/0,4096,2048,2047/256,/0/default.jpg (resized to 256 pixels, not OK - it seems like the same scale as the 512 pixel one)

I have checked any CDN / Varnish cache and made sure that iipsrv is not using memcached (MEMCACHED_SERVERS is unset). I also checked the original image (PTIFF) by extracting the individual pyramid layers and inspecting them for issues, which I haven't found.

Any hint on what may be causing this?

scossu commented 2 years ago

Also note that if I change the last (incorrect looking) request to https://media.getty.edu/iiif/image/3d076337-73ef-472a-8e8d-7c3088f54b04/0,4096,2048,2048/256,/0/default.jpg , i.e. using a perfectly square region instead of 2048x2047, the image scale is correct.

These are values I am getting from the viewer, so I am not able to change them. Could this be the same rounding issue mentioned in #124 ?

scossu commented 2 years ago

@ruven There is another report of a similar case, see https://media.getty.edu/iiif/image/32101e20-4f80-4f57-a614-4dedb68bdcaa/0,4096,4096,4096/256,/0/default.jpg vs. https://media.getty.edu/iiif/image/32101e20-4f80-4f57-a614-4dedb68bdcaa/0,4096,4096,4093/256,/0/default.jpg

Let me know if there is any information or data that I can provide to help with the issue. Thanks.

ruven commented 2 years ago

OK, I've just pushed a commit which hopefully resolves this issue: https://github.com/ruven/iipsrv/commit/a6fcf4df5f832d5305411e361ff94a59136c8a3d

It wasn't a rounding error, but just a problem in the code that determines whether a request for a real tile has been made. Please test and let me know if this re-occurs for any other images.

scossu commented 2 years ago

This works in my development server. Thanks!