📄 std_forward_info_local.h
字号:
from the information available in previous resolution levels.
`max_hp_descent' identifies the subband structure for this resolution
level. Its interpretation is discussed at length in the "ifc.h"
header file, under the introductory section entitled "Interpretation of
Level and Band Indices".
`hor_kernel' and `vert_kernel' hold all information concerning
the horizontal and vertical Wavelet transform kernels, respectively.
`frame' holds details of the frame size and transform behaviour at
frame boundaries for the relevant resolution level. See the
definition of the `fame_info' structure in "ifc.h" for more information.
Note that `frame.dims.left_col' and `frame.dims.top_row' hold the
coordinates of the framing reference point as they appear in the
relevant resolution level.
`min_band' and `max_band' hold the minimum and maximum legitimate
indices into the `bands' array. These indices are determined directly
from the `max_hp_descent' value. It should be noted that `min_band'
is always non-negative and will usually be greater than 0, which means
that the initial entries in the array pointed to by `bands' should
never be accessed.
SAIC General Decomp. Begin
`decomp_sequence' signals the general decomposition used for the
current wavelet level.
SAIC General Decomp. End */
/*****************************************************************************/
/* std_component_info */
/*****************************************************************************/
typedef
struct std_component_info {
int component_idx;
int hor_subsampling, vert_subsampling;
int bitdepth;
int is_signed;
int num_levels;
int decomp_sequence[17];
std_level_info_ptr levels;
int reversible;
int sample_upshift;
int num_guard_bits;
int implicit_quantization;
int using_frames_vertically;
int using_frames_horizontally;
frame_info frame;
int ovlp_top, ovlp_bottom, ovlp_left, ovlp_right;
/* SAIC General Decomp Begin */
int *general_decomp_sequence;
/* SAIC General Decomp Begin */
/* MITRE General Offset/SQ Begin */
float comp_scale_nz;
double adjust_dc;
int implicit_nz;
int any_nz;
/* MITRE General Offset/SQ End */
} std_component_info, *std_component_info_ptr;
/* Maintains a pointer to the array of `std_level_info' structures, which
hold most of the useful information. Note that the array contains
`num_levels'+1 entries. The first entry holds only the DC subband, i.e.
the lowest resolution at which the image is available. The last entry
refers to the additional subbands and reconstruction steps required to
reconstruct the full resolution image from the previous resolution level,
if any. The `reversible' field holds one of INFO__REVERSIBLE or
INFO__IRREVERSIBLE.
`decomp_sequence' holds a sequence of integers in the range 1 to
3, terminated with a 0, which identify the `max_hp_descent' value for
each resolution level, starting at the highest resolution level.
Once the terminating 0 is encountered, the last specified
`max_hp_descent' value is used for all remaining levels.
`component_idx' identifies the zero-based index of the component.
This is also the instance index of the COC and QCC markers used to
record specific fields in the codestream.
`hor_subsampling' and `vert_subsampling' indicate the
sub-sampling factors to be applied to high resolution grid quantities
in the top level object in order to derive those for the component.
`bitdepth' identifies the number of precision bits in the
original image component. Similarly, `is_signed' indicates whether
the original image component was signed or unsigned; all quantities
which are passed to the compression engine are nominally signed, so
that originally unsigned quantities must be level shifted.
`sample_upshift' holds 0 if `reversible' is INFO__REVERSIBLE;
otherwise, it holds the amount by which raw image samples are shifted
up (usually a positive quantity) before they are sent to the
`component_mix' object.
`num_guard_bits' identifies the number of guard bits used for
establishing dynamic range utilization.
`using_frames_vertically' and `using_frames_horizontally' indicate
whether or not frames are being used and hence need to be signalled in
the codestream in each of the two directions.
`frame' holds the top-level specification for frames in this
resolution level; note that the `hor_ssodwt' and `vert_ssodwt' fields
here identify the number of lowest resolution levels in which the
SSO-DWT is being used, whereas for interface functions and in
`std_level_info' structures, the interpretation of those fields is a
flag indicating whether or not the SSO-DWT is being used for
the 2D DWT stages belonging to the relevant resolution level.
`ovlp_top', `ovlp_bottom', `ovlp_left' and `ovlp_right' are
flags identifying whether or not the tile includes an extra overlap
sample on each of its boundaries. The tile dimensions explicitly
recorded in this object do not include the overlap if any; this is
added dynamically in calls to `info__get_var_tile_info',
`info__get_level_info' and `info__get_band_info'.
SAIC General Decomp. Begin
`general_decomp_sequence' signals the general decomposition used for
all current wavelet levels.
SAIC General Decomp. End */
/*****************************************************************************/
/* STATIC std_tile_info */
/*****************************************************************************/
typedef
struct std_tile_info {
int idx, x_idx, y_idx;
canvas_dims dims;
/* Begin Aerospace MCT mods (TSW) */
int multicomp_transform;
/* End Aerospace MCT mods */
std_component_info_ptr components;
} std_tile_info, *std_tile_info_ptr;
/* This structure manages information specific to one tile.
The `idx', `x_idx' and `y_idx' fields hold the zero-based index
of the tile (tile number), the horizontal index of the tile and the
vertical index of the tile, respectively.
The `dims' field holds the dimensions and location of the tile
on the hi-res reference grid. The dimensions and location of the tile
in any given image component, resolution level or subband may be derived
from these dimensions.
The `components' field often points to exactly the same array
as the `default_components' field in the `std_forward_info_obj' structure.
If any tile-specific parameters are provided, however, then a completely
new array with completely new subordinate structures is allocated and
initialized for this tile. Even though some parameters cannot change
from tile to tile, the entire components structure must be reproduced
in any tile containing parameter variations.
Begin Aerospace MCT mods (TSW)
The multicomp_trasform field is a flag used to indicate the
presence of a third-dimensional linear multicomponent transform for
this tile.
End Aerospace MCT mods */
/*****************************************************************************/
/* std_forward_info_obj */
/*****************************************************************************/
typedef
struct std_forward_info_obj {
forward_info_obj base;
canvas_dims grid_dims;
canvas_dims tile_dims;
int tiles_wide, tiles_high, total_tiles;
std_tile_info_ptr tiles;
int current_tile_idx;
int num_components;
std_component_info_ptr default_components;
/* OTLPF_CONVENTION begin; JX Wei ADFA, WJ Zeng Sharp */
int otlpf_convention;
/* OTLPF_CONVENTION end; JX Wei ADFA, WJ Zeng Sharp */
/* SAIC/Fuji LRA begin */
lra_stats_ref lra_stats;
/* SAIC/Fuji LRA end */
float base_step;
int prev_header_size;
int prev_remaining_bytes;
} std_forward_info_obj, *std_forward_info_ref;
/* This structure defines the augmented state of the `forward_info'
object created by `create_std_forward_info'.
`grid_dims' identifies the dimensions and location of the image in
the high resolution grid from which each of the component's dimensions
and locations are derived via sub-sampling factors. The `left_col'
and `top_row' fields in this structure identify the coordinates of the
upper left hand corner relative to the origin of the canvas. These
will frequently be zero. The `rows' and `cols' fields in the structure
identify the dimensions of the image. The dimensions of the canvas
itself may be obtained by adding `top_row' and `left_col' to these
dimensions, respectively. Note that `top_row' and `left_col' may also
be interpreted as the dimensions of the "missing image" as described in
the special topic entitled "Blocks, Tiles and Frames" in "ifc.h".
`tile_dims' identifies the nominal tile dimensions and the
partitioning reference point. The nominal tile dimensions are stored
in the `rows' and `cols' fields, while the partitioning reference
point is stored in the `top_row' and `left_col' fields. For a
detailed explanation of the interpretation of these quantities, consult
the special topic entitled "Blocks, Tiles and Frames" in "ifc.h". Note
that all quantities here are expressed with respect to the canvas
coordinate system and on the high resolution grid. The component
sub-sampling factors must be used to derive the tile structure, locations
and dimensions of each individual component.
`tiles_high' and `tiles_wide' identify the number of tiles down
and across the image.
`tiles' points to an array containing `tiles_high'*`tiles_wide'
elements holding information specific to each tile.
`current_tile_idx' holds the zero-based index of the currently
active tile in the `tiles' array.
`default_components' points to an array with `num_components' entries
which holds all default compression parameters. A pointer to this
same array usually is found in each tile; however, individual tiles
may override the default coding parameters, in which case their
`components' arrays will be separately allocated and initialized. */
#endif /* STD_FORWARD_INFO_LOCAL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -