MISR Toolkit
1.5.1
win64
HDF_4.2.14
include
hcomp.h
Go to the documentation of this file.
1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
* Copyright by The HDF Group. *
3
* Copyright by the Board of Trustees of the University of Illinois. *
4
* All rights reserved. *
5
* *
6
* This file is part of HDF. The full HDF copyright notice, including *
7
* terms governing use, modification, and redistribution, is contained in *
8
* the COPYING file, which can be found at the root of the source code *
9
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF/releases/. *
10
* If you do not have access to either file, you may request a copy from *
11
* help@hdfgroup.org. *
12
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13
14
/* $Id$ */
15
16
/*-----------------------------------------------------------------------------
17
* File: hcomp.h
18
* Purpose: header file for compression information & structures
19
* Dependencies: should be included after hdf.h
20
* Invokes:
21
* Contents:
22
* Structure definitions: comp_info
23
* Constant definitions: lots...
24
*---------------------------------------------------------------------------*/
25
26
/* avoid re-inclusion */
27
#ifndef __HCOMP_H
28
#define __HCOMP_H
29
30
/* For determining which type of modeling is being done */
31
typedef
enum
32
{
33
COMP_MODEL_STDIO
= 0
/* for Standard C I/O model */
34
}
35
comp_model_t
;
36
37
/* For determining which type of encoding is being done */
38
typedef
enum
39
{
40
COMP_CODE_NONE
= 0,
/* don't encode at all, just store */
41
COMP_CODE_RLE
,
/* for simple RLE encoding */
42
COMP_CODE_NBIT
,
/* for N-bit encoding */
43
COMP_CODE_SKPHUFF
,
/* for Skipping huffman encoding */
44
COMP_CODE_DEFLATE
,
/* for gzip 'deflate' encoding */
45
COMP_CODE_SZIP
,
/* for szip encoding */
46
COMP_CODE_INVALID
,
/* invalid last code, for range checking */
47
COMP_CODE_JPEG
,
/* _Ugly_ hack to allow JPEG images to be created with GRsetcompress */
48
COMP_CODE_IMCOMP
= 12
/* another _Ugly_ hack to allow IMCOMP images to
49
be inquired, 12 to be the same as COMP_IMCOMP writing
50
will not be allowed, however. -BMR, Jul 2012 */
51
}
52
comp_coder_t
;
53
54
/* Compression types available */
55
#define COMP_NONE 0
56
#define COMP_JPEG 2
57
#define COMP_RLE 11
58
#define COMP_IMCOMP 12
59
60
/* Compression encoder/decoder configuration */
61
#define COMP_DECODER_ENABLED 1
62
#define COMP_ENCODER_ENABLED 2
63
64
#ifndef COMPRESS_MASTER
65
extern
uint16
compress_map
[];
66
#else
67
uint16
compress_map
[
COMP_MAX_COMP
+ 1] =
68
{
/* Mapping from compression types to tags */
69
0,
/* No corresponding tag for un-compressed data */
70
0,
/* (1) */
71
DFTAG_JPEG5
,
/* COMP_JPEG -> DFTAG_JPEG5 (for JPEG compression) */
72
0,
/* (3) */
73
0,
/* (4) */
74
0,
/* (5) */
75
0,
/* (6) */
76
0,
/* (7) */
77
0,
/* (8) */
78
0,
/* (9) */
79
0,
/* (10) */
80
DFTAG_RLE
,
/* COMP_RLE -> DFTAG_RLE (for Run-length compression) */
81
DFTAG_IMC
/* COMP_IMCOMP -> DFTAG_IMC (for IMCOMP compression) */
82
};
83
#endif
84
85
typedef
union
tag_model_info
86
{
/* Union to contain modeling information */
87
struct
88
{
89
int32
nt
;
/* number type */
90
intn
ndim
;
/* number of dimensions */
91
int32 *
dims
;
/* array of dimensions */
92
}
93
dim
;
94
}
95
model_info
;
96
97
typedef
union
tag_comp_info
98
{
/* Union to contain compression information */
99
struct
100
{
/* Struct to contain information about how to compress */
101
/* or decompress a JPEG encoded 24-bit image */
102
intn
quality
;
/* Quality factor for JPEG compression, should be from */
103
/* 0 (terrible) to 100 (very good) */
104
intn
force_baseline
;
/* If force_baseline is set to TRUE then */
105
/* quantization tables are limited to */
106
/* 0..255 for JPEG baseline compability */
107
/* This is only an issue for quality */
108
/* settings below 24 */
109
}
110
jpeg;
111
struct
112
{
/* struct to contain information about how to compress */
113
/* or decompress a N-bit encoded dataset */
114
int32
nt
;
/* number type of the data to encode */
115
intn sign_ext;
/* whether to sign extend or not */
116
intn fill_one;
/* whether to fill with 1's or 0's */
117
intn start_bit;
/* offset of the start bit in the data */
118
intn bit_len;
/* number of bits to store */
119
}
120
nbit;
121
struct
122
{
/* struct to contain info about how to compress */
123
/* or decompress a "skipping" huffman encoded dataset */
124
intn skp_size;
/* size of the individual elements when skipping */
125
}
126
skphuff;
127
struct
128
{
/* struct to contain info about how to compress */
129
/* or decompress a gzip encoded dataset */
130
intn level;
/* how hard to work when compressing the data */
131
}
132
deflate;
133
struct
134
{
135
int32 options_mask;
/* IN */
136
int32 pixels_per_block;
/* IN */
137
int32 pixels_per_scanline;
/* OUT: computed */
138
int32 bits_per_pixel;
/* OUT: size of NT */
139
int32 pixels;
/* OUT: size of dataset or chunk */
140
}
141
szip;
/* for szip encoding */
142
143
}
144
comp_info
;
145
146
#endif
/* __HCOMP_H */
147
comp_model_t
comp_model_t
Definition:
hcomp.h:31
force_baseline
char int boolean force_baseline
Definition:
cdjpeg.h:133
COMP_CODE_INVALID
Definition:
hcomp.h:46
COMP_CODE_NBIT
Definition:
hcomp.h:42
COMP_CODE_DEFLATE
Definition:
hcomp.h:44
model_info
union tag_model_info model_info
COMP_CODE_SZIP
Definition:
hcomp.h:45
COMP_CODE_IMCOMP
Definition:
hcomp.h:48
COMP_CODE_RLE
Definition:
hcomp.h:41
comp_info
union tag_comp_info comp_info
tag_model_info::dims
int32 * dims
Definition:
hcomp.h:88
compress_map
uint16 compress_map[]
tag_model_info
Definition:
hcomp.h:82
COMP_CODE_JPEG
Definition:
hcomp.h:47
tag_model_info::dim
struct tag_model_info::@6 dim
tag_model_info::nt
int32 nt
Definition:
hcomp.h:86
tag_model_info::ndim
intn ndim
Definition:
hcomp.h:87
COMP_MAX_COMP
#define COMP_MAX_COMP
Definition:
hlimits.h:148
COMP_CODE_NONE
Definition:
hcomp.h:40
comp_coder_t
comp_coder_t
Definition:
hcomp.h:38
DFTAG_RLE
#define DFTAG_RLE
Definition:
htags.h:114
quality
int quality
Definition:
jpeglib.h:919
COMP_MODEL_STDIO
Definition:
hcomp.h:33
COMP_CODE_SKPHUFF
Definition:
hcomp.h:43
DFTAG_JPEG5
#define DFTAG_JPEG5
Definition:
htags.h:119
DFTAG_IMC
#define DFTAG_IMC
Definition:
htags.h:115
tag_comp_info
Definition:
hcomp.h:94
MISR Toolkit - Copyright © 2005 - 2020 Jet Propulsion Laboratory
Generated on Fri Jun 19 2020 22:49:52