This is a generic abstract class to store a code-block of wavelet data, quantized or not. This class does not have the notion of components. Therefore, it should be used for data from a single component. Subclasses should implement the different types of storage (
int,
float, etc.).
The data is always stored in one array, of the type matching the data type (i.e. for 'int' it's an 'int[]'). The data should be stored in the array in standard scan-line order. That is the samples go from the top-left corner of the code-block to the lower-right corner by line and then column.
The member variable 'offset' gives the index in the array of the first data element (i.e. the top-left coefficient). The member variable 'scanw' gives the width of the scan that is used to store the data, that can be different from the width of the block. Element '(x,y)' of the code-block (i.e. '(0,0)' is the top-left coefficient), will appear at position 'offset+y*scanw+x' in the array of data.
The classes CBlkWTDataInt and CBlkWTDataFloat provide implementations for int and float types respectively.
The types of data are the same as those defined by the 'DataBlk' class.
@see CBlkWTDataSrc
@see jj2000.j2k.quantization.quantizer.CBlkQuantDataSrcEnc
@see DataBlk
@see CBlkWTDataInt
@see CBlkWTDataFloat