📄 markers.h
字号:
/*****************************************************************************/
/* Copyright 1998, Hewlett-Packard Company */
/* All rights reserved */
/* File: "markers.h" */
/* Description: Contains macro definitions for all markers and marker */
/* elements, as well as all temporary CME marker tag vaues. */
/* No values should be used except those which are recorded */
/* in this file, so that those markers and CME tags which are */
/* currently in use may be traced down and modified as */
/* necessary. */
/* Author: David Taubman */
/* Affiliation: Hewlett-Packard and */
/* The University of New South Wales, Australia */
/* Version: VM9.0 */
/* Last Revised: 27 April, 2001 */
/*****************************************************************************/
/*****************************************************************************/
/* 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. */
/*****************************************************************************/
/*****************************************************************************/
/* Modified for general offset and scalar quantization. */
/* Copyright 2000 The MITRE Corporation. */
/* All Rights Reserved for modified parts. */
/*****************************************************************************/
#ifndef MARKERS_H
#define MARKERS_H
/* ========================================================================= */
/* --------------- Temporary CME Tag Values (RCME) in Use ------------------ */
/* ========================================================================= */
#define CME_COMMENT 0x0001
#define CME_PSE 0x1010
/* ========================================================================= */
/* -------------------- Marker Codes and Element ID's ---------------------- */
/* ========================================================================= */
/* Delimiting Markers */
#define MARKER_SOC 0xFF4F /* Start of codestream */
#define MARKER_SOT 0xFF90 /* Start of tile-part */
#define MARKER_SOD 0xFF93 /* Start of data packets */
#define MARKER_EOC 0xFFD9 /* End of image */
/* Fixed Information Marker Segments */
#define MARKER_SIZ 0xFF51 /* Canvas, component and tile dimensions. */
#define ELTID_SIZ_X 0x01
#define MARKER_SIZ_X "\x51\x01" "XSiz (width of reference grid)"
#define ELTID_SIZ_Y 0x02
#define MARKER_SIZ_Y "\x51\x02" "YSiz (height of reference grid)"
#define ELTID_SIZ_XO 0x03
#define MARKER_SIZ_XO "\x51\x03" "XOSiz (horizontal offset of image)"
#define ELTID_SIZ_YO 0x04
#define MARKER_SIZ_YO "\x51\x04" "YOSiz (vertical offset of image)"
#define ELTID_SIZ_XT 0x11
#define MARKER_SIZ_XT "\x51\x11" "XTSiz (width of one reference tile)"
#define ELTID_SIZ_YT 0x12
#define MARKER_SIZ_YT "\x51\x12" "YTSiz (height of one reference tile)"
#define ELTID_SIZ_XTO 0x13
#define MARKER_SIZ_XTO "\x51\x13" "XTOSiz (horizontal tiling offset)"
#define ELTID_SIZ_YTO 0x14
#define MARKER_SIZ_YTO "\x51\x14" "YTOSiz (vertical tiling offset)"
#define ELTID_SIZ_C 0x21
#define MARKER_SIZ_C "\x51\x21" "CSiz (number of image components)"
#define ELTID_SIZ_S 0x23
#define MARKER_SIZ_S "\x51\x23" "Component precision information"
#define ELTID_SIZ_XR 0x24
#define MARKER_SIZ_XR "\x51\x24" "Horizontal sub-sampling factors"
#define ELTID_SIZ_YR 0x25
#define MARKER_SIZ_YR "\x51\x25" "Vertical sub-sampling factors"
/* Functional Marker Segments */
#define MARKER_POC 0xFF5F /* Progression order change. */
#define ELTID_POC_CHANGES 0x01
#define MARKER_POC_CHANGES "\x5F\x01" "Progression order change"
#define MARKER_COD 0xFF52 /* Coding style default; most elements should be
constructed automatically from the COC elements
inside the stream object. */
#define ELTID_COD_LAYERS 0x01
#define MARKER_COD_LAYERS "\x52\x01" "Number of quality layers"
#define ELTID_COD_PROG 0x02
#define MARKER_COD_PROG "\x52\x02" "Progression style (default)"
#define ELTID_COD_SOP 0x11
#define MARKER_COD_SOP "\x52\x11" "Start-of-packet (SOP) markers used?"
#define ELTID_COD_EPH 0x12
#define MARKER_COD_EPH "\x52\x12" "End-of-packet-head (EPH) markers used?"
#define ELTID_COD_CXFORM 0x22
#define MARKER_COD_CXFORM "\x52\x22" "Multiple component transform used"
#define MARKER_COC 0xFF53 /* Coding style per component */
#define ELTID_COC_LEVELS 0x01
#define MARKER_COC_LEVELS "\x53\x01" "Number of decomposition levels"
#define ELTID_COC_DECOMP 0x02
#define MARKER_COC_DECOMP "\x53\x02" "Part-2 decomposition structure"
#define ELTID_COC_REV 0x03
#define MARKER_COC_REV "\x53\x03" "Wavelet decomposition reversible?"
#define ELTID_COC_KERNEL 0x04
#define MARKER_COC_KERNEL "\x53\x04" "Part-2 kernel options"
#define ELTID_COC_SUPP 0x05
#define MARKER_COC_SUPP "\x53\x05" "Part-2 user-defined kernel supports"
#define ELTID_COC_TAPS 0x06
#define MARKER_COC_TAPS "\x53\x06" "Part-2 user-defined kernel taps"
#define ELTID_COC_XCB 0x11
#define MARKER_COC_XCB "\x53\x11" "XCB (Code-block width <= 2^{XCB+2})"
#define ELTID_COC_YCB 0x12
#define MARKER_COC_YCB "\x53\x12" "YCB (Code-block height <= 2^{YCB+2})"
#define ELTID_COC_PPX 0x13
#define MARKER_COC_PPX "\x53\x13" "PPX (Packet partition width = 2^PPX)"
#define ELTID_COC_PPY 0x14
#define MARKER_COC_PPY "\x53\x14" "PPY (Packet partition height = 2^PPY)"
#define ELTID_COC_XCL 0x21
#define MARKER_COC_XCL "\x53\x21" "XCL (Cell width = 2^XCL)"
#define ELTID_COC_YCL 0x22
#define MARKER_COC_YCL "\x53\x22" "YCL (Cell height = 2^YCL)"
#define ELTID_COC_XAP 0x23
#define MARKER_COC_XAP "\x53\x23" "XAP (Horizontal partition anchor point)"
#define ELTID_COC_YAP 0x24
#define MARKER_COC_YAP "\x53\x24" "YAP (Vertical partition anchor point)"
#define ELTID_COC_CCB 0x25
#define MARKER_COC_CCB "\x53\x25" "Code-blocks respect cell boundaries?"
#define ELTID_COC_SSOX 0x26
#define MARKER_COC_SSOX "\x53\x26" "Num lowest levels using hor SSO-DWT"
#define ELTID_COC_SSOY 0x27
#define MARKER_COC_SSOY "\x53\x27" "Num lowest levels using vert SSO-DWT"
#define ELTID_COC_MOD 0x31
#define MARKER_COC_MOD "\x53\x31" "Entropy coder mode flags"
#define ELTID_COC_OVLP 0x34
#define MARKER_COC_OVLP "\x53\x34" "Tile boundary overlap flags"
#define ELTID_COC_SSOEXT 0x36
#define MARKER_COC_SSOEXT "\x53\x36" "Use SSO-DWT style boundary extension"
#define MARKER_QCD 0xFF5C
#define ELTID_QCD_WHICH 0x01
#define MARKER_QCD_WHICH "\x5C\x01" "Type of quantization (DZQ,MASK,TCQ,...)"
#define ELTID_QCD_PWLN 0x11
#define MARKER_QCD_PWLN "\x5C\x11" "Number of points in PWL MASK curve"
#define ELTID_QCD_PWLOFF 0x12
#define MARKER_QCD_PWLOFF "\x5C\x12" "Offset in masking"
#define ELTID_QCD_PWLRM 0x13
#define MARKER_QCD_PWLRM "\x5C\x13" "Range max in masking"
#define ELTID_QCD_PWLLEV 0x14
#define MARKER_QCD_PWLLEV "\x5C\x14" "Max level in masking"
#define ELTID_QCD_PWLOO 0x15
#define MARKER_QCD_PWLOO "\x5C\x15" "Orienoff in masking"
#define ELTID_QCD_PWLDAT 0x16
#define MARKER_QCD_PWLDAT "\x5C\x16" "(x,y) corner pairs for PWL MASK curve"
#define MARKER_QCC 0xFF5D /* Quantization; QCD default markers should be
created automatically in the stream object
after determining the differences between the
QCC markers for each component. */
#define ELTID_QCC_GUARD 0x01
#define MARKER_QCC_GUARD "\x5D\x01" "Number of guard bits"
#define ELTID_QCC_TYPE 0x02
#define MARKER_QCC_TYPE "\x5D\x02" "Type of Quantization"
#define ELTID_QCC_REV 0x11
#define MARKER_QCC_REV "\x5D\x11" "Reversible dynamic range params (mu)"
#define ELTID_QCC_STEP 0x12
#define MARKER_QCC_STEP "\x5D\x12" "Quant step/range params (mu,epsilon)"
#define ELTID_QCC_NZ 0x13
#define MARKER_QCC_NZ "\x5D\x13" "General Quant NZ scale factor"
#define ELTID_QCC_CSFW 0x21
#define MARKER_QCC_CSFW "\x5D\x21" "CSF weights for each subband"
#define MARKER_RGN 0xFF5E /* Region of interest marker; at most one may
appear per image component, within any scope
(global or tile header). */
#define ELTID_RGN_BOOSTS 0x11
#define MARKER_RGN_BOOSTS "\x5E\x11" "Region boost values (rect rgns first)"
#define ELTID_RGN_RECTS 0x12
#define MARKER_RGN_RECTS "\x5E\x12" "Rect region coords (4 at a time)"
#define ELTID_RGN_CIRCS 0x13
#define MARKER_RGN_CIRCS "\x5E\x13" "Circular region coords (3 at a time)"
/* Pointer marker segments. */
#define MARKER_TLM 0xFF55 /* Tile lengths main header. */
#define MARKER_PLM 0xFF57 /* Packet lengths main header. */
#define MARKER_PLT 0xFF58 /* Packet lengths tile-part header. */
#define MARKER_PPM 0xFF60 /* Packed packet headers main header. */
#define MARKER_PPT 0xFF61 /* Packed packet headers tile-part header. */
/* In-data markers. */
#define MARKER_SOP 0xFF91 /* Start of packet. */
#define MARKER_EPH 0xFF92 /* End of packet head. */
/* Informational marker segments. */
#define MARKER_CME 0xFF64 /* Comment and Extension marker. */
#define MARKER_CRG 0xFF63 /* Component Registration marker. */
/* MITRE General Offset Begin */
#define MARKER_DCO 0xFF70
#define ELTID_DCO_VALUE 0x70
#define MARKER_DCO_VALUE "\x70\x02" "DC Offset values"
/* Begin Aerospace MCT mods (TSW) */
#define MARKER_MCT 0xFF74
#define ELTID_MCT_IX 0x01
#define MARKER_MCT_IX "\x74\x01" "Transform Matrix Index"
#define ELTID_MCT_TYP 0x02
#define MARKER_MCT_TYP "\x74\x02" "Transform Matrix Type"
#define ELTID_MCT_DT 0x03
#define MARKER_MCT_DT "\x74\x03" "Matrix Entries Type"
#define ELTID_MCT_SP 0x11
#define MARKER_MCT_SP "\x74\x11" "Transform Matrix Values"
#define MARKER_CBD 0xFF78
#define ELTID_CBD_N 0x01
#define MARKER_CBD_N "\x78\x01" "Number of Component Bitdepths"
#define ELTID_CBD_BD 0x11
#define MARKER_CBD_BD "\x78\x11" "Component Bitdepth Values"
#define MARKER_MCC 0xFF75
#define ELTID_MCC_XMX 0x01
#define MARKER_MCC_XMX "\x75\x01" "Decorrel Xform Type"
#define ELTID_MCC_XWDO 0x02
#define MARKER_MCC_XWDO "\x75\x02" "Wavelet Decorrel Offset Matrix Index"
#define ELTID_MCC_NMCS 0x03
#define MARKER_MCC_NMCS "\x75\x03" "Decorrel Input Indices Size"
#define ELTID_MCC_NMCN 0x04
#define MARKER_MCC_NMCN "\x75\x04" "Decorrel Number of Inputs"
#define ELTID_MCC_MMCS 0x05
#define MARKER_MCC_MMCS "\x75\x05" "Decorrel Output Indices Size"
#define ELTID_MCC_MMCN 0x06
#define MARKER_MCC_MMCN "\x75\x06" "Decorrel Number of Outputs"
#define ELTID_MCC_TMCX 0x07
#define MARKER_MCC_TMCX "\x75\x07" "Decorrel Matrix or ATK Index"
#define ELTID_MCC_TMCO 0x08
#define MARKER_MCC_TMCO "\x75\x08" "Decorrel Offset or ADS Index"
#define ELTID_MCC_CMC 0x11
#define MARKER_MCC_CMC "\x75\x11" "Decorrel Input Component List"
#define ELTID_MCC_WMC 0x12
#define MARKER_MCC_WMC "\x75\x12" "Decorrel Output Component List"
#define ELTID_MCC_IX 0x21
#define MARKER_MCC_IX "\x75\x21" "MCC Marker Index"
#define MARKER_MIC 0xFF77
#define ELTID_MIC_NMCS 0x03
#define MARKER_MIC_NMCS "\x77\x03" "Depend Input Indices Size"
#define ELTID_MIC_NMCN 0x04
#define MARKER_MIC_NMCN "\x77\x04" "Depend Number of Inputs"
#define ELTID_MIC_MMCS 0x05
#define MARKER_MIC_MMCS "\x77\x05" "Depend Output Indices Size"
#define ELTID_MIC_MMCN 0x06
#define MARKER_MIC_MMCN "\x77\x06" "Depend Number of Outputs"
#define ELTID_MIC_TMCX 0x07
#define MARKER_MIC_TMCX "\x77\x07" "Depend Matrix Index"
#define ELTID_MIC_TMCO 0x08
#define MARKER_MIC_TMCO "\x77\x08" "Depend Offset Index"
#define ELTID_MIC_CMC 0x11
#define MARKER_MIC_CMC "\x77\x11" "Depend Input Component List"
#define ELTID_MIC_WMC 0x12
#define MARKER_MIC_WMC "\x77\x12" "Depend Output Component List"
#define ELTID_MIC_IX 0x21
#define MARKER_MIC_IX "\x77\x21" "MIC Marker Index"
/* End Aerospace MCT mods */
/* SAIC/Sharp/Fuji Xmask begin */
#define MARKER_VMS 0xFF71
#define ELTID_VMS_S 0x01
#define MARKER_VMS_S "\x71\x01" "Min res. level and respect block boundaries"
#define ELTID_VMS_W 0x02
#define MARKER_VMS_W "\x71\x02" "Window width"
#define ELTID_VMS_R 0x03
#define MARKER_VMS_R "\x71\x03" "Bits retained"
#define ELTID_VMS_A 0x04
#define MARKER_VMS_A "\x71\x04" "Alpha"
#define ELTID_VMS_B 0x05
#define MARKER_VMS_B "\x71\x05" "Beta"
/* SAIC/Sharp/Fuji Xmask end */
#endif /* MARKERS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -