[COG] Tiff and JPEG2000 - COW

Norman Barker norman.barker at gmail.com
Fri May 18 10:20:33 PDT 2018


I am interested in the discussions comparing COG with JPEG2000.

To start with I (with the Mapbox Satellite team, in particular, Vincent
Sarago) wrote https://github.com/mapbox/COGDumper to refresh our memory of
the TIFF spec. This highlighted an issue with JPEG compressed tiles and
masks inside a COG. In that to be effective over the wire the masks needs
to be adjacent to the tile data.

I noted in
https://medium.com/radiant-earth-insights/cloud-optimized-geotiff-birds-of-a-feather-at-foss4g-na-def26572ae1b
the interest in comparing COG to JPEG2000.

When I first saw COG I thought — why not Compressed Optimized Wavelets (COW)
? However you are not really comparing apples with apples here.

ISO JPEG2000 part 9 is JPIP, an internet protocol for stateful transfer of
JPEG2000 data over potentially choppy network connections (very low
bandwidth, contention, bursts, dropout etc). This standard also include
stateless requests but is centred around a server model.

JPEG2000 Wavelets are progressive in resolution, spatial (X/Y) and quality
layers. Due the nature of the stream they are also fault tolerant to
missing bytes in transmission. This isn't the case with TIFF, TIFF is
progressive in X/Y and if you are missing bytes then the tile isn't going
to render. It is to be seen at what (low, or high number of users)
bandwidths COG is effective.

COG is about tiled data; JPEG2000 has a concept of a tile, but to be
effective over limited networks uses precincts (a specified group of code
blocks). As precinct edges overlap with adjacent edges you will get a fuzzy
edge until the adjacent precinct is retrieved, which is fine as it is still
less data than retrieving a complete tile.

I have more to come on this as I am currently creating a library with the
Satellite team at Mapbox to explore COW/COG in more detail. In a similar
way to COG it should be possible to create a JPEG2000 profile that
specifies the codestream layout in a way that the JPEG2000 data can be
retrieved efficiently with HTTP requests and does not require a server.

While this work is still experimental, we see a number of clear benefits to
COW over HTTP:

* Progressive in spatial position, resolution and quality
* Region of Interest encoding
* Bandwidth savings
* Finer control over region access

The biggest stumbling block with JPEG2000 has always been understanding the
core spec which is very complex. I hope to expand on this over the next few
months with some examples.

Norman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/cog/attachments/20180518/9e501d2e/attachment.html>


More information about the COG mailing list