📄 hpbit_markers.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 + -