⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 std_forward_info_local.h

📁 JPEG2000实现的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
     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 + -