User Story #6220 (accepted)
Opened 13 years ago
Last modified 8 years ago
JPEG 2000 follow-on
Reported by: | cxallan | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Pyramids |
Component: | General | Keywords: | n.a. |
Cc: | cblackburn, jamoore, jburel, mlinkert | Story Points: | n.a. |
Sprint: | n.a. | Importance: | n.a. |
Total Remaining Time: | 9.5d | Estimated Remaining Time: | n.a. |
Description (last modified by cxallan)
As part of the initial big image work (#1950) we made the decision to use JPEG 2000 based image pyramids stored in a tiled TIFF. The same logic is also used to handle all images currently supported as "FS Lite" (#5640); we are generating pyramids for all these file formats.
We may use these pyramids more extensively in the pursuit of de-duplication (#2128) and the extension of the "FS Lite" capabilities to more file formats or even the use for cached versions of pixel data as part of the original file binary repository modifications (#909).
As such it is critical that we address a few things:
- JPEG 2000 compression performance (currently ~100ms per 256x256 tile on relatively modern hardware)
- JPEG 2000 decompression performance
- Multi-threaded compression (initial Bio-Formats work has been done in #5001)
In order to address (1) and (2) it will be important to investigate a number of native compression techniques. Some possibilities are outlined in #5927. Some further options:
- JAI ImageIO itself and its native code extensions
- JAI ImageIO plugins such as those implemented in GeoTools (http://docs.geotools.org/latest/userguide/library/coverage/jp2k.html)
- Kakadu (http://www.kakadusoftware.com/)
Bio-Formats currently produces JPEG 2000 compressed code streams using JAI ImageIO. The Bio-Formats service wrapper interface is very AWT centric, using BufferedImage and various other components. In order to be more flexible with JPEG 2000 compression, if we do not use JAI ImageIO plugins, it will likely be required to make this interface more generic. Current interface and implementation of the JAI ImageIO interfaces:
- source:bioformats.git/components/bio-formats/src/loci/formats/services/JAIIIOService.java
- source:bioformats.git/components/bio-formats/src/loci/formats/services/JAIIIOServiceImpl.java
The current implementation is based on the wiki:BioFormats-Service infrastructure. If we go down the road of providing a more "pluggable" JPEG 2000 compression infrastructure we will likely need to extend at least the documentation of the current service infrastructure.
Change History (5)
comment:1 Changed 13 years ago by cxallan
- Description modified (diff)
comment:2 Changed 13 years ago by cxallan
- Cc cblackburn jmoore jburel mlinkert-x added
comment:3 Changed 13 years ago by cxallan
- Milestone changed from OMERO-Beta4.3.2 to Unscheduled
comment:4 Changed 13 years ago by agilo
- Status changed from new to accepted
Updated status, related task in progress
comment:5 Changed 8 years ago by sbesson
- Milestone changed from Unscheduled to Pyramids
It's unlikely we'll have time to pick this up as part of milestone:OMERO-Beta4.3.2. Moving into unscheduled.