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

📄 compressed.cpp

📁 该源码是JPEG2000的c++源代码,希望对研究JPEG2000标准以及编解码的朋友们有用.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  if ((state->first_apparent_component == 0) &&      (state->num_apparent_components >= 3))    return state->use_ycc;  else    return false;}/*****************************************************************************//*                        kdu_tile::get_num_components                       *//*****************************************************************************/int  kdu_tile::get_num_components(){  return state->num_apparent_components;}/*****************************************************************************//*                         kdu_tile::access_component                        *//*****************************************************************************/kdu_tile_comp  kdu_tile::access_component(int comp_idx){  assert((comp_idx >= 0) && (comp_idx < state->num_apparent_components));  comp_idx += state->first_apparent_component;  return kdu_tile_comp(state->comps+comp_idx);}/* ========================================================================= *//*                                 kd_tile_comp                              *//* ========================================================================= *//*****************************************************************************//*                       kd_tile_comp::~kd_tile_comp                         *//*****************************************************************************/kd_tile_comp::~kd_tile_comp(){  codestream->var_structure_delete(sizeof(*this));  if (resolutions != NULL)    delete[] resolutions;}/* ========================================================================= *//*                                kdu_tile_comp                              *//* ========================================================================= *//*****************************************************************************//*                         kdu_tile_comp::get_reversible                     *//*****************************************************************************/bool  kdu_tile_comp::get_reversible(){  return state->reversible;}/*****************************************************************************//*                        kdu_tile_comp::get_subsampling                     *//*****************************************************************************/void  kdu_tile_comp::get_subsampling(kdu_coords &sub_sampling){  sub_sampling = state->sub_sampling;  int shift = state->dwt_levels - state->apparent_dwt_levels;  sub_sampling.x <<= shift;  sub_sampling.y <<= shift;  if (state->codestream->transpose)    sub_sampling.transpose();}/*****************************************************************************//*                          kdu_tile_comp::get_bit_depth                     *//*****************************************************************************/int  kdu_tile_comp::get_bit_depth(bool internal){  int bit_depth = state->codestream->precision[state->cnum];  if (internal)    bit_depth += state->recommended_extra_bits;  return bit_depth;}/*****************************************************************************//*                           kdu_tile_comp::get_signed                       *//*****************************************************************************/bool  kdu_tile_comp::get_signed(){  return state->codestream->is_signed[state->cnum];}/*****************************************************************************//*                      kdu_tile_comp::get_num_resolutions                   *//*****************************************************************************/int  kdu_tile_comp::get_num_resolutions(){  return state->apparent_dwt_levels+1;}/*****************************************************************************//*                      kdu_tile_comp::access_resolution                     *//*****************************************************************************/kdu_resolution  kdu_tile_comp::access_resolution(int res_level){  assert((res_level >= 0) && (res_level <= state->apparent_dwt_levels));  return kdu_resolution(state->resolutions+res_level);}/*****************************************************************************//*                 kdu_tile_comp::access_resolution (no args)                *//*****************************************************************************/kdu_resolution  kdu_tile_comp::access_resolution(){  return kdu_resolution(state->resolutions+state->apparent_dwt_levels);}/* ========================================================================= *//*                                kd_resolution                              *//* ========================================================================= *//*****************************************************************************//*                      kd_resolution::~kd_resolution                        *//*****************************************************************************/kd_resolution::~kd_resolution(){  codestream->var_structure_delete(sizeof(*this));  if (precinct_refs != NULL)    {      for (int n=0; n < precinct_indices.size.x*precinct_indices.size.y; n++)        if ((precinct_refs[n] != NULL) &&            (precinct_refs[n] != KD_EXPIRED_PRECINCT))          delete precinct_refs[n];      delete[] precinct_refs;      codestream->var_structure_delete(sizeof(kd_precinct *) *                                       precinct_indices.area());    }  if (bands != NULL)    {      delete[] bands;      codestream->var_structure_delete(sizeof(kd_subband)*(max_band+1));    }}/* ========================================================================= *//*                             kdu_resolution                                *//* ========================================================================= *//*****************************************************************************//*                       kdu_resolution::access_next                         *//*****************************************************************************/kdu_resolution  kdu_resolution::access_next(){  assert(state != NULL);  return kdu_resolution((state->res_level==0)?NULL:(state-1));}/*****************************************************************************//*                         kdu_resolution::which                             *//*****************************************************************************/int  kdu_resolution::which(){  assert(state != NULL);  return state->res_level;}/*****************************************************************************//*                       kdu_resolution::get_dwt_level                       *//*****************************************************************************/int  kdu_resolution::get_dwt_level(){  return state->dwt_level;}/*****************************************************************************//*                         kdu_resolution::get_dims                          *//*****************************************************************************/void  kdu_resolution::get_dims(kdu_dims &result){  assert(state != NULL);  result = state->region;  state->codestream->to_apparent(result);}/*****************************************************************************//*                      kdu_resolution::access_subband                       *//*****************************************************************************/kdu_subband  kdu_resolution::access_subband(int band_idx){  assert((band_idx >= state->min_band) && (band_idx <= state->max_band));  if (state->codestream->transpose)    {      if (band_idx == HL_BAND)        band_idx = LH_BAND;      else if (band_idx == LH_BAND)        band_idx = HL_BAND;    }  return kdu_subband(state->bands+band_idx);}/*****************************************************************************//*                      kdu_resolution::get_reversible                       *//*****************************************************************************/bool  kdu_resolution::get_reversible(){  return state->tile_comp->reversible;}/*****************************************************************************//*                      kdu_resolution::get_kernel_id                        *//*****************************************************************************/int  kdu_resolution::get_kernel_id(){  return state->tile_comp->kernel_id;}/*****************************************************************************//*                      kdu_resolution::propagate_roi                        *//*****************************************************************************/bool  kdu_resolution::propagate_roi(){  return state->propagate_roi;}/* ========================================================================= *//*                               kdu_subband                                 *//* ========================================================================= *//*****************************************************************************//*                            kdu_subband::which                             *//*****************************************************************************/int  kdu_subband::which(){  int band_idx = state->which_band;  if (state->codestream->transpose)    {      if (band_idx == HL_BAND)        band_idx = LH_BAND;      else if (band_idx == LH_BAND)        band_idx = HL_BAND;    }  return band_idx;}/*****************************************************************************//*                          kdu_subband::get_K_max                           *//*****************************************************************************/int  kdu_subband::get_K_max(){  return state->K_max;}/*****************************************************************************//*                       kdu_subband::get_K_max_prime                        *//*****************************************************************************/int  kdu_subband::get_K_max_prime(){  return state->K_max_prime;}/*****************************************************************************//*                        kdu_subband::get_reversible                        *//*****************************************************************************/bool  kdu_subband::get_reversible(){  return state->resolution->tile_comp->reversible;}/*****************************************************************************//*                           kdu_subband::get_delta                          *//*****************************************************************************/float  kdu_subband::get_delta(){  return (state->resolution->tile_comp->reversible)?0.0F:state->delta;}/*****************************************************************************//*                          kdu_subband::get_msb_wmse                        *//*****************************************************************************/float  kdu_subband::get_msb_wmse(){  double result = state->delta;  result *= (1<<(state->K_max_prime-1));  result *= result;  result *= state->G_b;  result *= state->W_b;  result *= state->W_b; // Squares the W_b weight.  return (float) result;}/*****************************************************************************//*                         kdu_subband::get_roi_weight                       *//*****************************************************************************/bool  kdu_subband::get_roi_weight(float &energy_weight){

⌨️ 快捷键说明

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