PICTools Programmer's Reference
TILE

TILE: OP_J2KE, OP_J2KP

 
Copy Code
typedef struct {
   DWORD                 TileNumber;
   DWORD                 TileCompTransform;
   TILECOMP              DftTileComp;
   DWORD                 NumOtherTileComps;
   TILECOMP PICHUGE*     OtherTileComps;
   DWORD                 NumLayers;
   DWORD                 ProgressionOrder;
   DWORD                 Flags;
   double*               LayerRates
   DWORD                 SliceDecompositionLevels;
   DWORD                 Reserved[5];
} TILE;

Fields:

Name Description

TileNumber

The index of the tile to which this set of compression parameters pertains. Tiles are numbered from 0 ..N-1, in left-to-right, top-to-bottom scanning order. N is the number of tiles implicitly determined from the tile and image dimensions. TileNumber is ignored for the DftTile element of u.J2K.

TileCompTransform

This tile's color transform. When a color transform is used, the version of the color transform (reversible/irreversible) matches the tile's wavelet transform.

TCT_Default

Do color transform if the image has exactly three components with the same dimensions.

TCT_None

No color transform.

TCT_YCbCr

Use the YCbCr transform.

DftTileComp

Default compression settings for all components.  When implemented, exceptions to the default settings may be specified in the OtherTileComps array. See TILECOMP.

NumOtherTileComps

Not implemented. The number of other Tile Components.

OtherTileComps

Not implemented.  An array of special compression settings for particular tile-components. For a particular tile-component, these will override the settings in DftTileComp.

NumLayers

The number of bit slice layers the bit stream is divided into each successive layer adds to the image quality.  If NumLayers is 0, then 6 layers are used.  For LRCP or RLCP progression orders, more layers can result in a smoother progressive display when the image is expanded. Note that for some images and some combinations of parameters, the output image will contain fewer layers than requested.

ProgressionOrder

Controls the ordering of data in the JPEG 2000 bit-stream. This can be thought of as describing the nesting of loops, ordered from outermost (varying most slowly) to innermost (varying most quickly). The variables to be looped over in each case are: the data bit slice layer (each successive layer adding to the image quality), the wavelet resolution level (each successive resolution level adding to the image detail - similar but not identical with quality), the component of the image, and the position on the image (in row-scan order).

The ordering of data by tile implicitly varies more rapidly than resolution.

PO_LRCP is recommended in most cases and for progressive transmission.

 

PO_LRCP

Layer-Resolution level-Component-Position progression.

PO_RLCP

Resolution level-Layer-Component-Position progression.

PO_RPCL

Resolution level-Position-Component-Layer progression; this is the best choice for OP_TIDP2.

PO_PCRL

Position-Component-Resolution level-Layer progression.

PO_CPRL

Component-Position-Resolution level-Layer progression.

Flags

Controls certain other tile-specific JPEG options for inserting PLT markers for random access and dividing tiles into tile parts for random access or for better progressive display.

TF_InsertPLTMarker

Insert PLT markers, packet lengths within a tile part, to facilitate better random access for OP_TIDP2.

TF_TilePartResolution

Start a new tile part at every resolution boundary.  This, without the other TF_TilePart* options, is the best choice for OP_TIDP2.

TF_TilePartComponent

Start a new tile part at every component boundary.

TF_TilePartLayer

Start a new tile part at every layer boundary.  For PO_RPCL, PO_PCRL, PO_CPRL progression orders, this will frequently cause a compress error for too many tile parts.  However, not for OP_TIDP2 but for progressive viewing by OP_J2KE, this is a good choice if the image has tiles.

TF_LayerRatesTargetPSNR

LayerRates contains a PSNR value instead of a byte count for each layer.

LayerRates

Set this field at REQ_EXEC to an array of values specifying the cumulative target size in bytes for each quality layer, according to NumLayers, of the output image. If TF_LayerRatesTargetPSNR is set in Flags, then set this field to an array of target PSNR values instead. The array must contain a nonzero value for each layer (in order from coarsest to finest) for which a target size is being specified and must contain a terminating 0 as the last entry. The number of nonzero values may be less than the number of layers in the output image, in which case the remaining layers are assigned sizes by the opcode. If there are more values in the LayerRates array than layers, the extraneous values are ignored. Set to NULL to not specify individual layer rates.

SliceDecompositionLevels

(J2K volumetric only) If PF2_3D_Slices is set, this field optionally provides the number of decomposition levels used by the one‑dimensional wavelet transform taken across the slices. This field is independent of TileComp.DecompositionLevels which is used to specify the number of two‑dimensional wavelet decomposition levels within each slice. 0 is the default (5 levels).

 

 


©2022. Accusoft Corporation. All Rights Reserved.

Send Feedback