hplx_def.h

来自「JPEG2000 EBCOT算法源码」· C头文件 代码 · 共 87 行

H
87
字号
/*****************************************************************************/
/* Copyright 1998, Hewlett-Packard Company                                   */
/* All rights reserved                                                       */
/* Author: Christos Chrysafis                                                */
/* Version: V2.1                                                             */
/* Last Revised: 10/2/98                                                     */
/*****************************************************************************/
#ifndef HPLX_DEF_H
#define HPLX_DEF_H

#include <stdio.h>
#include <time.h>
#include <line_block_ifc.h>
#include <hplx_hor.h>

#ifndef roundshift
#define roundshift(a,l) \
( (a) > 0 ) ? (( int) (  (float)0.5 + (a) *  ( 1 << (l)  )  )  ):\
            (( int) ( (float)-0.5 + (a) *  ( 1 << (l)  )  )  )
#endif 

#ifndef max
#define max(a,b)  ( (b) < (a) ) ? (a):(b)
#endif

#ifndef min
#define min(a,b)  ( (b) > (a) ) ? (a) : (b)
#endif



/************************************************************************/
/*
 *   transform object 
 *   can do either analysis or synthesis
 *   depending up on the way it is created.
 */
 /***********************************************************************/

/***********************************************************************/

typedef struct transform_obj *transform_ref;

typedef
  struct transform_obj {
    int component_idx;
    transform_ref next;
    float ** _data, *RawData,*SecBuf,*ExtraLine;
    float *LowA, *HighA,*LowS,*HighS;
    int  w,h,Cpeek,Cpoke,Middle;
    int UsedAsAnalysis; /* 0->synthesis*/
	int TrueExtra,fixed;
    short int  ** _data_I,*RawData_I; 
    int maxY,ImageRows;
    int EvenFilter,LoneLine;
    int ZLevel,CmpLevel,term;
    int *LowA_I[2], *HighA_I[2],*LowS_I[2],*HighS_I[2];
	int *BufFast;
    int lone_factors[2];
    short int  *SecBuf_I,*ExtraLine_I;
    int coeff_precision;
    int shiftFactor;
    quantizer_ref   quant;
    dequantizer_ref dequant;
    interpolator    *inv;
    decimator       *frd;
  } transform_obj;

typedef
  struct the_analysis_obj {
    analysis_obj base;
    int num_levels;
    int num_components;
    transform_ref components;
  } the_analysis_obj, *the_analysis_ref;

typedef
  struct the_synthesis_obj {
    synthesis_obj base;
    int num_levels;
    int num_components;
    transform_ref components;
  } the_synthesis_obj, *the_synthesis_ref;


#endif /* HPLX_DEF_H */

⌨️ 快捷键说明

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