1

I am looking for a way to use my JPEG2000 over object storage (s3) efficiently. JPEG2000 structure is progressive by resolution, meaning that in order to get the maximum resolution of a tile, all previous resolutions have to be decoded. This leads to performing many GET request that cause slow performance for the user.

I know that JPEG2000 is extremely flexible, so I wonder if there is a way to store each resolution level by itself (similar to COG structure), so that with one GET request I will receive the entire resolution level of a tile.

  • https://gis.stackexchange.com/questions/281704/should-i-use-jp2-or-cloud-optimized-geotiffs-to-efficiently-access-small-windows suggests it might not be possible – bugmenot123 Apr 28 '23 at 07:55

1 Answers1

0

JPEG2000 structure is progressive by resolution

That is luckily not fixed. JPEG2000 supports various means of progression.

Quoting from the imageio (first exaplanation I could easily find) docs:

... the progression order; must be one of "LRCP", "RLCP", "RPCL", "PCRL", "CPRL". The letters stand for Component, Position, Resolution and Layer respectively and control the order of encoding, the idea being that e.g. an image encoded using LRCP mode can have its quality layers decoded as they arrive at the decoder, while one encoded using RLCP mode will have increasing resolutions decoded as they arrive, and so on.

bugmenot123
  • 11,011
  • 3
  • 34
  • 69
  • 1
    For my understanding the jpeg2000 is progressive by both layer, resolution and position. The progression order just tell according to which one to organize the tile first (by resolution or layer for example). Am I wrong ? Will using LRCP will let me get a specific resolution of a tile using one get request ? – Tobby Moalem Apr 28 '23 at 06:59
  • Ouch sorry, I did not read your question thoroughly enough I guess. I do not know that tbh. – bugmenot123 Apr 28 '23 at 07:49