LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
Options for tile compression of image pixels. More...
#include <fitsCompression.h>
Public Types | |
enum | CompressionAlgorithm { NONE , GZIP , GZIP_SHUFFLE , RICE , PLIO } |
Compression algorithms. More... | |
using | Tiles = ndarray::Array<long, 1, 1> |
Public Member Functions | |
ImageCompressionOptions (CompressionAlgorithm algorithm_, Tiles tiles_, float quantizeLevel_=0.0) | |
Custom compression. | |
ImageCompressionOptions (CompressionAlgorithm algorithm_, std::vector< long > tiles_, float quantizeLevel_=0.0) | |
ImageCompressionOptions (CompressionAlgorithm algorithm_, int rows=1, float quantizeLevel_=0.0) | |
Compression by rows or entire image. | |
template<typename T > | |
ImageCompressionOptions (image::Image< T > const &image) | |
Default compression for a particular style of image. | |
template<typename T > | |
ImageCompressionOptions (image::Mask< T > const &mask) | |
ImageCompressionOptions (image::Image< std::int64_t > const &image) | |
ImageCompressionOptions (image::Mask< std::int64_t > const &mask) | |
ImageCompressionOptions (image::Image< std::uint64_t > const &image) | |
ImageCompressionOptions (image::Mask< std::uint64_t > const &mask) | |
Public Attributes | |
CompressionAlgorithm | algorithm |
Compresion algorithm to use. | |
Tiles | tiles |
Tile size; a dimension with 0 means infinite (e.g., to specify one row: 0,1) | |
float | quantizeLevel |
quantization level: 0.0 = none requires use of GZIP or GZIP_SHUFFLE | |
Options for tile compression of image pixels.
Tile compression is a feature provided by cfitsio, where contiguous parts of the image ("tiles", e.g., rows, multiple rows, blocks or the entire image) are compressed separately. The aim of this struct is to hold the parameters used to configure the compression.
Floating-point images can be losslessly compressed (quantizeLevel=0.0) using (only) the GZIP or GZIP_SHUFFLE compression algorithms, but the compression factor so achieved is modest (e.g., ~ 10% compression). Better compression factors can be achieved if floating-point images are first quantised into integer images. This can be done by cfitsio (through the quantizeLevel parameter) or through use of the ImageScalingOptions.
The Compression is specified by:
Due to bugs, cfitsio may require setting the quantizeLevel to a value other than zero when compressing integer data, but in this case it should have no effect.
Definition at line 180 of file fitsCompression.h.
using lsst::afw::fits::ImageCompressionOptions::Tiles = ndarray::Array<long, 1, 1> |
Definition at line 194 of file fitsCompression.h.
Compression algorithms.
cfitsio's compression algorithms are #defines; these have a namespace.
We deliberately don't support HCOMPRESS: it doesn't appear to be useful to us (e.g., lossy) and it requires extra configuration.
Enumerator | |
---|---|
NONE | No compression. |
GZIP | Standard GZIP compression. |
GZIP_SHUFFLE | GZIP compression with shuffle (most-significant byte first) |
RICE | RICE compression. |
PLIO | PLIO compression. |
Definition at line 187 of file fitsCompression.h.
|
inlineexplicit |
Custom compression.
Definition at line 201 of file fitsCompression.h.
|
inlineexplicit |
Definition at line 205 of file fitsCompression.h.
|
explicit |
Compression by rows or entire image.
[in] | algorithm_ | Compression algorithm to use |
[in] | rows | Number of rows per tile (0 = entire image) |
[in] | quantizeLevel_ | cfitsio quantization level |
Definition at line 90 of file fitsCompression.cc.
|
inlineexplicit |
Default compression for a particular style of image.
Currently defaults to NONE; change to GZIP_SHUFFLE once use of compression by default has been approved (RFC-378).
Definition at line 224 of file fitsCompression.h.
|
inlineexplicit |
Definition at line 227 of file fitsCompression.h.
|
inlineexplicit |
Definition at line 231 of file fitsCompression.h.
|
inlineexplicit |
Definition at line 233 of file fitsCompression.h.
|
inlineexplicit |
Definition at line 234 of file fitsCompression.h.
|
inlineexplicit |
Definition at line 236 of file fitsCompression.h.
CompressionAlgorithm lsst::afw::fits::ImageCompressionOptions::algorithm |
Compresion algorithm to use.
Definition at line 196 of file fitsCompression.h.
float lsst::afw::fits::ImageCompressionOptions::quantizeLevel |
quantization level: 0.0 = none requires use of GZIP or GZIP_SHUFFLE
Definition at line 198 of file fitsCompression.h.
Tiles lsst::afw::fits::ImageCompressionOptions::tiles |
Tile size; a dimension with 0 means infinite (e.g., to specify one row: 0,1)
Definition at line 197 of file fitsCompression.h.