Task #7309 (closed)
Find a home for BigEndian and other needed core metadata
Reported by: | crueden-x | Owned by: | ajpatterson |
---|---|---|---|
Priority: | major | Milestone: | 5.0.0-beta1 |
Component: | Specification | Version: | n.a. |
Keywords: | schema, xsd-2013-1 | Cc: | mlinkert, jamoore, jburel |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | n.a. |
Sprint: | n.a. |
Description
Bio-Formats needs certain core metadata in order to work with byte arrays. In particular, you have to know if a given byte buffer is big or little endian in order to decode it. You also need to know if it is interleaved, and how many components there are (e.g., for 8-bit RGB planes, the data is actually 24 total bits per pixel, patterned RGBRGBRGB...).
The OME schema unfortunately never had a place for this information. There was a BigEndian? field of BinData?, but we have now deprecated that (see #6858). So we need to create locations in the OME schema to store BigEndian? (boolean), and InterleavedChannelCount? (integer, default 1). My vote is Pixels (where BigEndian? used to live IIRC).
Change History (8)
comment:1 Changed 12 years ago by ajpatterson
- Keywords schema added
- Milestone changed from OMERO-4.4 to OMERO-4.5
comment:2 Changed 11 years ago by ajpatterson
- Component changed from Model to Specification
comment:3 Changed 11 years ago by crueden-x
comment:4 Changed 11 years ago by ajpatterson
From email: Melissa gave a +1 to the following values:
/** Number of valid bits per pixel. */ public int bitsPerPixel; /** Indicates whether or not each pixel's bytes are in little endian order. */ public boolean littleEndian; /** True if channels are stored RGBRGBRGB...; false if channels are stored RRR...GGG...BBB... */ public boolean interleaved;
comment:5 Changed 11 years ago by ajpatterson
- Keywords xsd-2013-1 added
comment:6 Changed 11 years ago by ajpatterson
- Resolution set to fixed
- Status changed from new to closed
After discussion with Melissa, Curtis, Roger & Andrew: Adding Interleaved and BigEndian? to Pixels.
comment:7 Changed 11 years ago by Andrew J Patterson <workonly@…>
(In [10ffb0a4d413d6baa3733b01d53f6f428f205393/ome.git] on branch develop) Adding Interleaved to Pixels, see #7309
comment:8 Changed 11 years ago by Andrew J Patterson <workonly@…>
(In [d9e13eb2cb217fca4409fa4fad0c6ade1fcf09e3/ome.git] on branch develop) Adding BigEndian? to Pixels, see #7309
The motivation for this ticket was due to the fact that Bio-Formats uses an OME Metadata object (which is derived from OME-XML via xsd-fu code generation) when exporting. If you want to export e.g. 16-bit data, you have to know whether the byte[] planes being fed to IFormatWriter.saveBytes are big-endian or little-endian in nature.
However, with the SCIFIO refactoring, that coupling between OME-XML and the core architecture will be relaxed. The SCIFIO export layer is not yet written, but I expect that going forward, it will be based on the core ImageMetadata/DatasetMetadata? (formerly "CoreMetadata?") rather than the OME-XML-specific metadata objects.
So in short, I think this ticket will be made obsolete by the SCIFIO work, and it is not worth worrying about anymore.