MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
LTIMultiResFilter Class Reference

add resolutions to the image More...

#include <lti_multiresFilter.h>

Inheritance diagram for LTIMultiResFilter:
LTIOverrideDimensions< LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > > > LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > > LTIOverrideDimensionsData LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > LTIOverrideGeoCoordData LTIOverrideStripHeight< LTIImageFilter > LTIOverrideMagnificationData LTIImageFilter LTIOverrideStripHeightData LTIImageStage LTIImage LTIReferenceCountedObject

Public Member Functions

LT_STATUS initialize (LTIImageStage *srcImage)
 initializer More...
 
LT_STATUS initialize (LTIImageStage *srcImage, lt_int8 scaleFactor)
 initializer (for compatibly with the old LTIStaticZoomFilter) More...
 
LT_STATUS initialize (LTIImageStage *srcImage, double deltaMag, double minMag, double maxMag)
 
LT_STATUS getDimsAtMag (double mag, lt_uint32 &width, lt_uint32 &height) const
 get image width and height at given magnification More...
 
lt_int64 getEncodingCost (const LTIScene &scene) const
 get the cost to encode this scene More...
 
bool getReaderScene (const LTIScene &decodeScene, LTIScene &readerScene) const
 get the underlying scene to be used More...
 
virtual lt_uint32 getModifications (const LTIScene &scene) const
 get the modification bitfield for this image More...
 
bool getPipelineInfo (LTIPipelineInfo info) const
 
LT_STATUS setResampleMethod (LTIResampleMethod resampleMethod)
 Set resampling method. More...
 
void setMagSnapThreshold (double threshold)
 
void setDeltaMagXY (double deltaMagX, double deltaMagY)
 
- Public Member Functions inherited from LTIOverrideDimensions< LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > > >
lt_uint32 getWidth () const
 get image width More...
 
lt_uint32 getHeight () const
 get image height More...
 
- Public Member Functions inherited from LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > > >
const LTIGeoCoordgetGeoCoord () const
 get the geographic coordinates of the image More...
 
bool isGeoCoordImplicit () const
 is geo information "real" or not More...
 
LT_STATUS overrideGeoCoord (const LTIGeoCoord &geoCoord)
 override the geographic coordinates of the image More...
 
- Public Member Functions inherited from LTIOverrideMagnification< LTIOverrideStripHeight< LTIImageFilter > >
double getMinMagnification () const
 get the minimum magnification More...
 
double getMaxMagnification () const
 get the maximum magnification More...
 
- Public Member Functions inherited from LTIOverrideStripHeight< LTIImageFilter >
lt_uint32 getStripHeight () const
 get strip height More...
 
LT_STATUS setStripHeight (lt_uint32 stripHeight)
 set the strip height More...
 
- Public Member Functions inherited from LTIImageFilter
const LTIPixelgetPixelProps () const
 get the pixel properties of the image More...
 
const LTIPixelgetBackgroundPixel () const
 get the values of the background pixel More...
 
const LTIPixelgetNoDataPixel () const
 get the values of the "no data" (transparency) pixel More...
 
const LTIPixelLookupTablegetPixelLookupTable () const
 get the color lookup table, if any More...
 
const LTIPixelgetMinDynamicRange () const
 get the minimum dynamic range value of image More...
 
const LTIPixelgetMaxDynamicRange () const
 get the maximum dynamic range value of image More...
 
const LTIMetadataDatabasegetMetadata () const
 get the metadata associated with the image More...
 
bool isSelective () const
 check if image supports "random access" decoding More...
 
void setProgressDelegate (LTIProgressDelegate *delegate)
 set progress delegate More...
 
LTIProgressDelegategetProgressDelegate () const
 get progress delegate More...
 
void setInterruptDelegate (LTIInterruptDelegate *delegate)
 set interrupt delegate More...
 
LTIInterruptDelegategetInterruptDelegate () const
 get interrupt delegate More...
 
LT_STATUS overrideBackgroundPixel (const LTIPixel *backgroundPixel)
 override the background color of the image More...
 
LT_STATUS overrideNoDataPixel (const LTIPixel *nodataPixel)
 override the "no data" (transparency) color of the image More...
 
LT_STATUS overrideDynamicRange (const LTIPixel &drmin, const LTIPixel &drmax)
 override the dynamic range of the image More...
 
LT_STATUS overridePixelBPS (lt_uint8)
 override the bits-per-sample of the image's (sample's) datatype More...
 
LT_STATUS overridePixelLookupTable (const LTIPixelLookupTable *pixelLookupTable)
 override the CLUT of the image More...
 
LT_STATUS overrideMetadata (const LTIMetadataDatabase &metadata)
 override the metadata of the image More...
 
LTIMaskSource * getMask () const
 
LTIImageStagegetPreviousStage (void) const
 
- Public Member Functions inherited from LTIImageStage
LT_STATUS read (const LTIScene &scene, LTISceneBuffer &buffer)
 read (decode) a scene from the image More...
 
virtual LT_STATUS readBegin (const LTIPixel &pixelProps, const LTIScene &fullScene)
 start strip-based read More...
 
virtual LT_STATUS readStrip (LTISceneBuffer &buffer, const LTIScene &stripScene)
 read a strip from the image More...
 
virtual LT_STATUS readEnd ()
 finish strip-based read More...
 
lt_uint32 getNumStrips () const
 get number of strips in scene More...
 
LTIScene getStripScene (lt_uint32 stripNumber) const
 get a strip for current scene More...
 
- Public Member Functions inherited from LTIImage
lt_uint16 getNumBands () const
 get number of bands More...
 
LTIColorSpace getColorSpace () const
 get colorspace More...
 
LTIDataType getDataType () const
 get data type More...
 
bool isNaturalDynamicRange () const
 check if the range is "complete" or not More...
 
lt_int64 getNominalImageSizeWithoutAlpha () const
 get the nominal size of the image, not considering the alpha band More...
 
lt_int64 getNominalImageSizeWithAlpha () const
 get the nominal size of the image, including the alpha band More...
 
void getGeoPoint (LTIPosition position, double &x, double &y) const
 get position of a named point More...
 
LTIPixelcreateBackgroundPixel () const
 return new background pixel More...
 
- Public Member Functions inherited from LTIReferenceCountedObject
virtual void retain (void) const
 increment reference counter More...
 
virtual void release (void) const
 decrement the reference counter and delete the object when the counter is zero More...
 

Static Public Member Functions

static LTIMultiResFiltercreate (void)
 
static double magForIcon (const LTIImage &image, lt_uint32 iconSize)
 
static double magForIcon (lt_uint32 width, lt_uint32 height, lt_uint32 iconSize)
 
static LT_STATUS push (LTIImageStage *&pipeline, const LTIScene &dstScene)
 
static LT_STATUS push (LTIImageStage *&pipeline, double mag)
 

Protected Types

enum  Mode {
  MODE_INVALID, MODE_RESAMPLE, MODE_PASSTHROUGH, MODE_DOWNSAMPLE_FULLREAD,
  MODE_ALL_AT_ONCE
}
 
enum  { kMaxMagnification = 512 }
 

Protected Member Functions

 LTIMultiResFilter (void)
 
virtual ~LTIMultiResFilter (void)
 
LT_STATUS decodeBegin (const LTIPixel &pixelProps, const LTIScene &fullScene)
 start strip-based read More...
 
LT_STATUS decodeStrip (LTISceneBuffer &stripBuffer, const LTIScene &stripScene)
 read a strip from the image More...
 
LT_STATUS decodeEnd (void)
 finish strip-based read More...
 
bool getChildScene (const LTIScene &scene, Mode &mode, double &xScale, double &yScale, LTIScene &childScene) const
 
- Protected Member Functions inherited from LTIImageFilter
 LTIImageFilter (void)
 
virtual ~LTIImageFilter (void)
 
LT_STATUS init (LTIImageStage *previousStage)
 
void releasePreviousStageNow (void)
 
void changePreviousStage (LTIImageStage *newPref)
 
- Protected Member Functions inherited from LTIImageStage
 LTIImageStage (void)
 
virtual ~LTIImageStage (void)
 
LT_STATUS fillBackground (const LTIScene &scene, LTISceneBuffer &buffer)
 fill the background of the scene More...
 
LT_STATUS fillBackground (const LTIScene &scene, LTISceneBuffer &buffer, const LTIPixel &color)
 fill the scene to given pixel More...
 
bool isBandSelected (const LTIPixel &pixelProps) const
 
const LTIScenegetFullScene () const
 get full scene More...
 
- Protected Member Functions inherited from LTIImage
 LTIImage (void)
 
virtual ~LTIImage (void)
 
- Protected Member Functions inherited from LTIReferenceCountedObject
 LTIReferenceCountedObject (void)
 
virtual ~LTIReferenceCountedObject (void)
 
- Protected Member Functions inherited from LTIOverrideStripHeightData
 LTIOverrideStripHeightData ()
 
- Protected Member Functions inherited from LTIOverrideMagnificationData
 LTIOverrideMagnificationData ()
 
LT_STATUS setMagnification (double minMag, double maxMag)
 set the minimum and maximum magnifications of the image properties More...
 
- Protected Member Functions inherited from LTIOverrideGeoCoordData
 LTIOverrideGeoCoordData ()
 
 ~LTIOverrideGeoCoordData ()
 
LT_STATUS setGeoCoord (const LTIGeoCoord &geoCoord)
 set the geographic coordinates of the image More...
 
LT_STATUS setDefaultGeoCoord (const LTIImage &image)
 set the geographic coordinates of the image More...
 
- Protected Member Functions inherited from LTIOverrideDimensionsData
 LTIOverrideDimensionsData ()
 
LT_STATUS setDimensions (lt_uint32 width, lt_uint32 height)
 set width and height of the image More...
 

Additional Inherited Members

- Protected Attributes inherited from LTIOverrideStripHeightData
lt_uint32 m_stripHeight
 
- Protected Attributes inherited from LTIOverrideMagnificationData
double m_minMag
 
double m_maxMag
 
- Protected Attributes inherited from LTIOverrideGeoCoordData
LTIGeoCoordm_geoCoord
 
bool m_geoCoordImplicit
 
- Protected Attributes inherited from LTIOverrideDimensionsData
lt_uint32 m_width
 
lt_uint32 m_height
 

Detailed Description

Extends the magnification range of an image, to allow decodes at different resolutions than the image stage would normally allow.

Note that this class is not the same as at the LTIStaticZoomFilter class, which scales the magnification statically for the pipeline when initially constructed. This class allows for the zoom level to be extended for an individual decode operation.

Definition at line 39 of file lti_multiresFilter.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
kMaxMagnification 

Definition at line 142 of file lti_multiresFilter.h.

enum LTIMultiResFilter::Mode
protected
Enumerator
MODE_INVALID 
MODE_RESAMPLE 
MODE_PASSTHROUGH 
MODE_DOWNSAMPLE_FULLREAD 
MODE_ALL_AT_ONCE 

Definition at line 127 of file lti_multiresFilter.h.

Constructor & Destructor Documentation

LTIMultiResFilter::LTIMultiResFilter ( void  )
protected
virtual LTIMultiResFilter::~LTIMultiResFilter ( void  )
protectedvirtual

Member Function Documentation

static LTIMultiResFilter* LTIMultiResFilter::create ( void  )
static
LT_STATUS LTIMultiResFilter::decodeBegin ( const LTIPixel pixelProps,
const LTIScene fullScene 
)
protectedvirtual

This function is called by readBegin() to start the actual class-specific work for decoding a scene.

Derived classes must implement this function.

This function should never be called directly.

Parameters
pixelPropsthe band selection
fullScenethe full scene to be read
Returns
status code indicating success or failure

Reimplemented from LTIImageFilter.

LT_STATUS LTIMultiResFilter::decodeEnd ( void  )
protectedvirtual

This function is called by readEnd() to complete the actual class-specific work for decoding a scene.

Derived classes must implement this function.

This function should never be called directly.

Returns
status code indicating success or failure

Reimplemented from LTIImageFilter.

LT_STATUS LTIMultiResFilter::decodeStrip ( LTISceneBuffer stripBuffer,
const LTIScene stripScene 
)
protectedvirtual

This function is called by readStrip() to implement the actual class-specific work for decoding a strip of the scene.

Derived classes must implement this function.

This function should never be called directly.

Parameters
stripBufferthe buffer to read the pixels into
stripScenethe scene for this strip being decoded
Returns
status code indicating success or failure

Reimplemented from LTIImageFilter.

bool LTIMultiResFilter::getChildScene ( const LTIScene scene,
Mode mode,
double &  xScale,
double &  yScale,
LTIScene childScene 
) const
protected
LT_STATUS LTIMultiResFilter::getDimsAtMag ( double  mag,
lt_uint32 width,
lt_uint32 height 
) const
virtual

This function returns the width and height of the image, in pixels, relative to the given magnification.

Parameters
magmagnification to determine width at
widththe image width at the magnification
heightthe image height at the magnification
Returns
status code indicating success or failure

Reimplemented from LTIImageFilter.

lt_int64 LTIMultiResFilter::getEncodingCost ( const LTIScene scene) const
virtual

Returns the "cost" to encode this scene, for use by those image writers which have usage metering enabled. The typical cost is equal to the nominal image size (width * height * numBands * bytesPerSample), but this is overridden for special situations, e.g. the mosaic filter.

Parameters
scenethe scene to be charged for
Returns
the cost to encode the given scene

Reimplemented from LTIImageFilter.

virtual lt_uint32 LTIMultiResFilter::getModifications ( const LTIScene scene) const
virtual

This function returns a bitfield describing what kinds of modifications have been made to the image during and since its initial encoding.

Parameters
scenethe area pertaining to this request
Returns
a bitfield itemizing the encoding modifications

Reimplemented from LTIImageFilter.

bool LTIMultiResFilter::getPipelineInfo ( LTIPipelineInfo  info) const
virtual

Reimplemented from LTIImageFilter.

bool LTIMultiResFilter::getReaderScene ( const LTIScene decodeScene,
LTIScene readerScene 
) const
virtual

Get the scene that will be sent to the underlying LTIImageReader. This is useful in some complex pipelines.

Parameters
decodeScenethe scene that would be given to read()
readerScenethe scene that is the actual scene passed the underlying image reader
Returns
true if readerScene is not empty

Reimplemented from LTIImageFilter.

LT_STATUS LTIMultiResFilter::initialize ( LTIImageStage srcImage)

Creates an image stage which can be decoded at arbitrary magnifications.

Normally image stages will only support a limited set of magnification values for the LTIScene passed to LTIImageStage::read() – often, only 1.0. This class will perform any needed resampling on the fly so that arbitrary (power-of-two) magnifications are supported.

Parameters
srcImagethe base image
LT_STATUS LTIMultiResFilter::initialize ( LTIImageStage srcImage,
lt_int8  scaleFactor 
)

Magnifies the image by the scale factor given. The image width, height, geographic resolution, etc, are all updated accordingly.

A positive scale factor performs a "res-up" operation, while a negative scale factor will reduce the image. That is, a scale factor of 2 will double the image size, e.g. from a magnification of 1.0 to 2.0, while a scale factor of -2 will halve the image size, e.g. from a magnification of 1.0 to 0.5.

Parameters
srcImagethe base image
scaleFactorthe integer scale factor
LT_STATUS LTIMultiResFilter::initialize ( LTIImageStage srcImage,
double  deltaMag,
double  minMag,
double  maxMag 
)
static double LTIMultiResFilter::magForIcon ( const LTIImage image,
lt_uint32  iconSize 
)
static
static double LTIMultiResFilter::magForIcon ( lt_uint32  width,
lt_uint32  height,
lt_uint32  iconSize 
)
static
static LT_STATUS LTIMultiResFilter::push ( LTIImageStage *&  pipeline,
const LTIScene dstScene 
)
static
static LT_STATUS LTIMultiResFilter::push ( LTIImageStage *&  pipeline,
double  mag 
)
static
void LTIMultiResFilter::setDeltaMagXY ( double  deltaMagX,
double  deltaMagY 
)
void LTIMultiResFilter::setMagSnapThreshold ( double  threshold)
LT_STATUS LTIMultiResFilter::setResampleMethod ( LTIResampleMethod  resampleMethod)
Parameters
resampleMethodresampling method See LTIResampleMethod

The documentation for this class was generated from the following file:

LizardTech