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

📄 component_mix_local.h

📁 JPEG2000实现的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
    int *int_taps[INFO__MAX_LIFTING_STEPS]; /* Only for int-lifting. */
    int int_downshifts[INFO__MAX_LIFTING_STEPS]; /* Only for int-lifting. */
    int neg_extend, pos_extend;
    ifc_int *branch_buf_int[2];
  } lifting_info, *lifting_info_ref;

typedef
  struct component_tile_kernel {
    int third_d_xform_flag;
    char *third_d_identifier;
    std_kernel_info third_d_kernel;
    int third_d_kernel_user_defined;
  } component_tile_kernel, *component_tile_kernel_ptr;
/* UofA End */

/*****************************************************************************/
/*                        mixing_row_buffer                                  */
/*****************************************************************************/

typedef
  struct mixing_row_buffer {
    struct mixing_row_buffer *next;
    ifc_int buf[1];
  } mixing_row_buffer, *mixing_row_buffer_ptr;
  /* Classic linked list of row buffers, where the size of the actual
     structure is determined by the length of each row. */

/*****************************************************************************/
/*                      mixing_component_info                                */
/*****************************************************************************/

typedef
  struct mixing_component_info {
    int tile_cols;
    int num_buffered_rows;
    mixing_row_buffer_ptr head, tail;
  } mixing_component_info, *mixing_component_info_ptr;
  /* This structure essentially manages buffering for a single component,
     within a single tile, where the size of the relevant buffer is discovered
     dynamically as the need arises, in response to synchronization issues
     induced by colour transform requirements.
         `tile_cols' holds the width of the current tile.  It may vary
     radically from tile to tile.  Whenever the tile width increases, the
     row buffers must be destroyed so that they can be reallocated with
     the new dimension. */

/* Begin Aerospace MCT mods (TSW) */
/*****************************************************************************/
/*                      matrix_data                                          */
/*****************************************************************************/

typedef
  struct matrix_data {
    int width, height;
    float **matrix_values;
  } matrix_data, *matrix_data_ref;
/* This structure holds a transform matrix for the multi-component linear
   transform */

/*****************************************************************************/
/*                      vector_data                                          */
/*****************************************************************************/

typedef
  struct vector_data {
    int length;
    float *vector_values;
  } vector_data, *vector_data_ref;
/* This structure holds an offset vector  for the multi-component linear
   transform */

/*****************************************************************************/
/*                      component_xfms                                       */
/*****************************************************************************/

typedef
  struct component_xfms {
    int n_decorrel_xfm;
    matrix_data_ref decorrel_xfms;
    int n_decorrel_off;
    vector_data_ref decorrel_offs;
    int n_depend_xfm;
    matrix_data_ref depend_xfms;
    int n_depend_off;
    vector_data_ref depend_offs;
  } component_xfms, *component_xfms_ref;
/* This structure holds all of the transform matrices used in the multi-
   component linear transforms. */

/*****************************************************************************/
/*                      segment                                              */
/*****************************************************************************/

typedef
  struct segment {
    int n_input_components;
    int *input_components;
    int n_output_components;
    int * output_components;
    int xfm_matrix, off_vector;
  } segment, *segment_ref;
/* This structure holds all of the information associated with a component
segment for the MCT. In particular, it holds the input and output component
number in the order in which they will appear. It also holds the index
of the transform and offset matrices that will be applied. This structure
is used both for decorrelation and dependency transforms. */

/*****************************************************************************/
/*                      collection                                           */
/*****************************************************************************/

typedef
  struct collection {
    int n_comp_segments;
    segment_ref comp_segment;
    int n_intermed_segments;
    segment_ref intermed_segment;
    int n_codestream_components;
  } collection, *collection_ref;
/* This structure holds all of the segment information for a collection of
   segments. */

/* End Aerospace MCT mods (TSW) */

/*****************************************************************************/
/*                      the_component_mix_obj                                */
/*****************************************************************************/

typedef
  struct the_component_mix_obj {
    component_mix_obj base;
    analysis_ref analysis;
    forward_info_ref info;
    stream_out_ref stream;
    int num_components;
    mixing_component_info_ptr components;
    int main_xform;
    int num_tiles;
    int *tile_xforms;
    int current_xform;
    int current_tile_idx;

    /* UofA Begin */
    component_tile_kernel_ptr tile_kernels;
    int kernel_type;
    conv_info conv;
    lifting_info lift;
    /* UofA End */

    /* LANL begin */
#ifdef LANL_CMPNT_WVLT
    FltBankIrr fltbankirr;
    float *floatX, *floatY;
    FltBankRev fltbankrev;
    int *intX, *intY;
#endif
    /* LANL end */

    /* Kodak/SAIC Linear Transform Begin */
    int next_xform_marker;
    char **T_for_fnames;
    char **T_rev_fnames;
    float **T_for;
    /* Kodak/SAIC Linear Transform End */

    /* Begin Aerospace MCT mods (TSW) */
    char **T_fnames;
    component_xfms_ref transforms;
    collection_ref default_collection;
    collection_ref tile_collection;
    /* End Aerospace MCT mods (TSW) */
    
  } the_component_mix_obj, *the_component_mix_ref;
  /* Manages state for the externally visible `component_mix' object.
     `tile_xforms' holds an array of integers, each of which is one of
     the valid colour transform identifiers.  The `main_xform' field holds
     the default colour transform identifier. */

#endif /* COMPONENT_MIX_LOCAL_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -