Point Cloud Library (PCL)
1.11.1
pcl
compression
compression_profiles.h
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2011, Willow Garage, Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of Willow Garage, Inc. nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*
34
* Author: Julius Kammerl (julius@kammerl.de)
35
*/
36
37
#pragma once
38
39
namespace
pcl
40
{
41
namespace
io
42
{
43
44
enum
compression_Profiles_e
45
{
46
LOW_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
,
47
LOW_RES_ONLINE_COMPRESSION_WITH_COLOR
,
48
49
MED_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
,
50
MED_RES_ONLINE_COMPRESSION_WITH_COLOR
,
51
52
HIGH_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
,
53
HIGH_RES_ONLINE_COMPRESSION_WITH_COLOR
,
54
55
LOW_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
,
56
LOW_RES_OFFLINE_COMPRESSION_WITH_COLOR
,
57
58
MED_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
,
59
MED_RES_OFFLINE_COMPRESSION_WITH_COLOR
,
60
61
HIGH_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
,
62
HIGH_RES_OFFLINE_COMPRESSION_WITH_COLOR
,
63
64
COMPRESSION_PROFILE_COUNT
,
65
MANUAL_CONFIGURATION
66
};
67
68
// compression configuration profile
69
struct
configurationProfile_t
70
{
71
double
pointResolution
;
72
const
double
octreeResolution
;
73
bool
doVoxelGridDownSampling
;
74
unsigned
int
iFrameRate
;
75
const
unsigned
char
colorBitResolution
;
76
bool
doColorEncoding
;
77
};
78
79
// predefined configuration parameters
80
const
struct
configurationProfile_t
compressionProfiles_
[
COMPRESSION_PROFILE_COUNT
] = {
81
{
82
// PROFILE: LOW_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
83
0.01,
/* pointResolution = */
84
0.01,
/* octreeResolution = */
85
true
,
/* doVoxelGridDownDownSampling = */
86
50,
/* iFrameRate = */
87
4,
/* colorBitResolution = */
88
false
/* doColorEncoding = */
89
}, {
90
// PROFILE: LOW_RES_ONLINE_COMPRESSION_WITH_COLOR
91
0.01,
/* pointResolution = */
92
0.01,
/* octreeResolution = */
93
true
,
/* doVoxelGridDownDownSampling = */
94
50,
/* iFrameRate = */
95
4,
/* colorBitResolution = */
96
true
/* doColorEncoding = */
97
}, {
98
// PROFILE: MED_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
99
0.005,
/* pointResolution = */
100
0.01,
/* octreeResolution = */
101
false
,
/* doVoxelGridDownDownSampling = */
102
40,
/* iFrameRate = */
103
5,
/* colorBitResolution = */
104
false
/* doColorEncoding = */
105
}, {
106
// PROFILE: MED_RES_ONLINE_COMPRESSION_WITH_COLOR
107
0.005,
/* pointResolution = */
108
0.01,
/* octreeResolution = */
109
false
,
/* doVoxelGridDownDownSampling = */
110
40,
/* iFrameRate = */
111
5,
/* colorBitResolution = */
112
true
/* doColorEncoding = */
113
}, {
114
// PROFILE: HIGH_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
115
0.0001,
/* pointResolution = */
116
0.01,
/* octreeResolution = */
117
false
,
/* doVoxelGridDownDownSampling = */
118
30,
/* iFrameRate = */
119
7,
/* colorBitResolution = */
120
false
/* doColorEncoding = */
121
}, {
122
// PROFILE: HIGH_RES_ONLINE_COMPRESSION_WITH_COLOR
123
0.0001,
/* pointResolution = */
124
0.01,
/* octreeResolution = */
125
false
,
/* doVoxelGridDownDownSampling = */
126
30,
/* iFrameRate = */
127
7,
/* colorBitResolution = */
128
true
/* doColorEncoding = */
129
}, {
130
// PROFILE: LOW_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
131
0.01,
/* pointResolution = */
132
0.01,
/* octreeResolution = */
133
true
,
/* doVoxelGridDownDownSampling = */
134
100,
/* iFrameRate = */
135
4,
/* colorBitResolution = */
136
false
/* doColorEncoding = */
137
}, {
138
// PROFILE: LOW_RES_OFFLINE_COMPRESSION_WITH_COLOR
139
0.01,
/* pointResolution = */
140
0.01,
/* octreeResolution = */
141
true
,
/* doVoxelGridDownDownSampling = */
142
100,
/* iFrameRate = */
143
4,
/* colorBitResolution = */
144
true
/* doColorEncoding = */
145
}, {
146
// PROFILE: MED_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
147
0.005,
/* pointResolution = */
148
0.005,
/* octreeResolution = */
149
true
,
/* doVoxelGridDownDownSampling = */
150
100,
/* iFrameRate = */
151
5,
/* colorBitResolution = */
152
false
/* doColorEncoding = */
153
}, {
154
// PROFILE: MED_RES_OFFLINE_COMPRESSION_WITH_COLOR
155
0.005,
/* pointResolution = */
156
0.01,
/* octreeResolution = */
157
false
,
/* doVoxelGridDownDownSampling = */
158
100,
/* iFrameRate = */
159
5,
/* colorBitResolution = */
160
true
/* doColorEncoding = */
161
}, {
162
// PROFILE: HIGH_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
163
0.0001,
/* pointResolution = */
164
0.0001,
/* octreeResolution = */
165
true
,
/* doVoxelGridDownDownSampling = */
166
100,
/* iFrameRate = */
167
8,
/* colorBitResolution = */
168
false
/* doColorEncoding = */
169
}, {
170
// PROFILE: HIGH_RES_OFFLINE_COMPRESSION_WITH_COLOR
171
0.0001,
/* pointResolution = */
172
0.01,
/* octreeResolution = */
173
false
,
/* doVoxelGridDownDownSampling = */
174
100,
/* iFrameRate = */
175
8,
/* colorBitResolution = */
176
true
/* doColorEncoding = */
177
}};
178
179
}
180
}
pcl::io::LOW_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
Definition:
compression_profiles.h:46
pcl::io::HIGH_RES_ONLINE_COMPRESSION_WITH_COLOR
Definition:
compression_profiles.h:53
pcl::io::compression_Profiles_e
compression_Profiles_e
Definition:
compression_profiles.h:44
pcl::io::configurationProfile_t::colorBitResolution
const unsigned char colorBitResolution
Definition:
compression_profiles.h:75
pcl::io::configurationProfile_t::pointResolution
double pointResolution
Definition:
compression_profiles.h:71
pcl
Definition:
convolution.h:46
pcl::io::configurationProfile_t::doColorEncoding
bool doColorEncoding
Definition:
compression_profiles.h:76
pcl::io::HIGH_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
Definition:
compression_profiles.h:52
pcl::io::LOW_RES_ONLINE_COMPRESSION_WITH_COLOR
Definition:
compression_profiles.h:47
pcl::io::HIGH_RES_OFFLINE_COMPRESSION_WITH_COLOR
Definition:
compression_profiles.h:62
pcl::io::configurationProfile_t::iFrameRate
unsigned int iFrameRate
Definition:
compression_profiles.h:74
pcl::io::LOW_RES_OFFLINE_COMPRESSION_WITH_COLOR
Definition:
compression_profiles.h:56
pcl::io::MED_RES_OFFLINE_COMPRESSION_WITH_COLOR
Definition:
compression_profiles.h:59
pcl::io::LOW_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
Definition:
compression_profiles.h:55
pcl::io::COMPRESSION_PROFILE_COUNT
Definition:
compression_profiles.h:64
pcl::io::configurationProfile_t::doVoxelGridDownSampling
bool doVoxelGridDownSampling
Definition:
compression_profiles.h:73
pcl::io::HIGH_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
Definition:
compression_profiles.h:61
pcl::io::MED_RES_ONLINE_COMPRESSION_WITHOUT_COLOR
Definition:
compression_profiles.h:49
pcl::io::compressionProfiles_
const struct configurationProfile_t compressionProfiles_[COMPRESSION_PROFILE_COUNT]
Definition:
compression_profiles.h:80
pcl::io::MED_RES_OFFLINE_COMPRESSION_WITHOUT_COLOR
Definition:
compression_profiles.h:58
pcl::io::MED_RES_ONLINE_COMPRESSION_WITH_COLOR
Definition:
compression_profiles.h:50
pcl::io::MANUAL_CONFIGURATION
Definition:
compression_profiles.h:65
pcl::io::configurationProfile_t
Definition:
compression_profiles.h:69
pcl::io::configurationProfile_t::octreeResolution
const double octreeResolution
Definition:
compression_profiles.h:72