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

📄 hpbit_markers.h

📁 JPEG2000实现的源码
💻 H
字号:
/*****************************************************************************/
/* Copyright 1998, Hewlett-Packard Company                                   */
/* All rights reserved                                                       */
/* File: "hpbit_markers.h"                                                   */
/* Description: Internal structure of markers "hpbit_stream_out.c"           */
/* Author: David Taubman                                                     */
/* Affiliation: Hewlett-Packard and                                          */
/*              The University of New South Wales, Australia                 */
/* Version: VM9.0                                                            */
/* Last Revised: 27 April, 2001                                              */
/*****************************************************************************/

/*****************************************************************************/
/* Modified by Gene Wu to add real markers for COD/COC, and QCD/QCC.         */
/* All changes copyrighted 2000 by Ricoh Silicon Valley  with all rights     */
/* reserved for the modified parts.                                          */
/*****************************************************************************/

/*****************************************************************************/
/* Modified by David Taubman to implement changes in Tokyo between CD and    */
/* FCD for Part-1 of the standard.  Copyrighted by HP with all rights        */
/* reserved for the modified parts.                                          */
/*****************************************************************************/

#ifndef HPBIT_MARKERS_H
#define HPBIT_MARKERS_H

/* ========================================================================= */
/* ------------------ Internal organization of CME marker ------------------ */
/* ========================================================================= */

/*****************************************************************************/
/*                                  cme_marker                               */
/*****************************************************************************/

typedef
  struct cme_marker {
    std_ushort CME;
    std_ushort Lcme;
    std_ushort Rcme;
  } cme_marker, *cme_marker_ptr;
  /* The fields of this marker are immediately followed by the Ccme data. */

/*****************************************************************************/
/*                                  crg_marker                               */
/*****************************************************************************/

typedef
  struct crg_marker {
    std_ushort CRG;
    std_ushort Lcrg;
  } crg_marker, *crg_marker_ptr;
  /* The fields of this marker are immediately followed by the Xcrg, Ycrg. */

/* ========================================================================= */
/* ------------------ Internal organization of SOT marker ------------------ */
/* ========================================================================= */

/*****************************************************************************/
/*                                 sot_marker                                */
/*****************************************************************************/

typedef
  struct sot_marker {
    std_ushort SOT;
    std_ushort Lsot;
    std_ushort Isot;
    std_uint Psot;
    std_byte TPsot;
    std_byte NTPsot; /* Number of tile-parts.  May be zero in any tile-part
                        other than the first; otherwise, must be the same
                        for all tile-parts in the tile. */
  } sot_marker, *sot_marker_ptr;

/* ========================================================================= */
/* ------------------ Internal organization of ERS marker ------------------ */
/* ========================================================================= */

/* ========================================================================= */
/* ------------------ Internal organization of POC marker ------------------ */
/* ========================================================================= */

/*****************************************************************************/
/*                                 poc_marker                                */
/*****************************************************************************/

typedef
  struct poc_marker {
    std_ushort POC;
    std_ushort Lpoc;
  } poc_marker, *poc_marker_ptr;
  /* Non-variable part of POC marker. */

/*****************************************************************************/
/*                               poc_var_short                               */
/*****************************************************************************/

typedef
  struct poc_var_short {
    std_byte RSpoc;
    std_byte CSpoc;
    std_ushort LYEpoc;
    std_byte REpoc;
    std_byte CEpoc;
    std_byte Ppoc;
  } poc_var_short, *poc_var_short_ptr;
  /* Variable part of POC marker when number of components <= 255. */

/*****************************************************************************/
/*                               poc_var_long                                */
/*****************************************************************************/

typedef
  struct poc_var_long {
    std_byte RSpoc;
    std_ushort CSpoc;
    std_ushort LYEpoc;
    std_byte REpoc;
    std_ushort CEpoc;
    std_byte Ppoc;
  } poc_var_long, *poc_var_long_ptr;
  /* Variable part of POC marker when number of components >= 256. */


/* ========================================================================= */
/* ------------------ Internal organization of RGN marker ------------------ */
/* ========================================================================= */

/*****************************************************************************/
/*                              rgn_marker_short                             */
/*****************************************************************************/

typedef
  struct rgn_marker_short {
    std_ushort RGN;
    std_ushort Lrgn;
    std_byte Crgn;
    std_byte Srgn;
    std_byte SPrgn;
  } rgn_marker_short, *rgn_marker_short_ptr;
  /* Short form when number of components <= 255. */

/*****************************************************************************/
/*                               rgn_marker_long                             */
/*****************************************************************************/

typedef
  struct rgn_marker_long {
    std_ushort RGN;
    std_ushort Lrgn;
    std_ushort Crgn;
    std_byte Srgn;
    std_byte SPrgn;
  } rgn_marker_long, *rgn_marker_long_ptr;
  /* Long form when number of components >= 256. */


/* ========================================================================= */
/* ------------------ Internal organization of SIZ marker ------------------ */
/* ========================================================================= */

/*****************************************************************************/
/*                                 siz_marker                                */
/*****************************************************************************/

typedef
  struct siz_marker {
    std_ushort SIZ;
    std_ushort Lsiz;
    std_ushort Rsiz;
    std_uint Xsiz;
    std_uint Ysiz;
    std_uint XOsiz;
    std_uint YOsiz;
    std_uint XTsiz;
    std_uint YTsiz;
    std_uint XTOsiz;
    std_uint YTOsiz;
    std_ushort Csiz;
  } siz_marker, *sizfo_marker_ptr;
  /* The Ssiz, XRsiz and YRsiz quantities appear at the end of the
     marker. */

/*****************************************************************************/
/*                                 cod_marker                                */
/*****************************************************************************/

typedef
  struct cod_marker {
    std_ushort COD;
    std_ushort Lcod;
    std_byte prog;
    std_ushort layers;
    std_byte Scod;
    std_byte level;
    std_byte xcb;
    std_byte ycb;
    std_byte mod;
    std_byte rev;
    std_byte cxform;

    std_byte decomp;
    std_byte kernel;
    std_byte supp;
    std_byte taps;
    std_byte xcl;
    std_byte ycl;
    std_byte xap;
    std_byte yap;
    std_byte ccb;
    std_byte ssox;
    std_byte ssoy;

  } cod_marker, *codfo_marker_ptr;

/*****************************************************************************/
/*                                 coc_marker                                */
/*****************************************************************************/

typedef
  struct coc_marker {
    std_ushort COC;
    std_ushort Lcoc;
    std_ushort Ccoc;
    std_byte Scoc;
    std_byte level;
    std_byte decomp;
    std_byte rev;
    std_byte kernel;
    std_byte supp;
    std_byte taps;
    std_byte xcb;
    std_byte ycb;

    std_byte xcl;
    std_byte ycl;
    std_byte xap;
    std_byte yap;
    std_byte ccb;
    std_byte ssox;
    std_byte ssoy;
    std_byte mod;

  } coc_marker, *cocfo_marker_ptr;

/*****************************************************************************/
/*                                 qcd_marker                                */
/*****************************************************************************/

typedef
  struct qcd_marker {
    std_ushort QCD;
    std_ushort Lqcd;
    std_byte Sqcd;

  } qcd_marker, *qcdfo_marker_ptr;

/*****************************************************************************/
/*                                 qcc_marker                                */
/*****************************************************************************/

typedef
  struct qcc_marker {
    std_ushort QCC;
    std_ushort Lqcc;
    std_ushort Cqcc;
    std_byte Sqcc;

    std_byte *data;

  } qcc_marker, *qccfo_marker_ptr;

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

typedef
  struct mct_marker {
    std_ushort MCT;
    std_uint Lmct;
    std_byte Smct;
  } mct_marker, *mctfo_marker_ptr;
/* The SPmct values immediately follow the Smct field */

/* End Aerospace MCT mods */

/* SAIC/Sharp/Fuji Xmask begin */
/*****************************************************************************/
/*                                 vms_marker                                */
/*****************************************************************************/

typedef
  struct vms_marker {
    std_ushort VMS;
    std_ushort Lvms;
    std_byte Svms;
    std_byte Wvms;
    std_byte Rvms;
    std_byte Avms;
    std_byte Bvms;
  } vms_marker, *vmsfo_marker_ptr;
/* SAIC/Sharp/Fuji Xmask end */
#endif /* HPBIT_MARKERS_H */

⌨️ 快捷键说明

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