OpenJPH
Open-source implementation of JPEG2000 Part-15
Toggle main menu visibility
Loading...
Searching...
No Matches
ojph_codestream_local.h
Go to the documentation of this file.
1
//***************************************************************************/
2
// This software is released under the 2-Clause BSD license, included
3
// below.
4
//
5
// Copyright (c) 2019, Aous Naman
6
// Copyright (c) 2019, Kakadu Software Pty Ltd, Australia
7
// Copyright (c) 2019, The University of New South Wales, Australia
8
//
9
// Redistribution and use in source and binary forms, with or without
10
// modification, are permitted provided that the following conditions are
11
// met:
12
//
13
// 1. Redistributions of source code must retain the above copyright
14
// notice, this list of conditions and the following disclaimer.
15
//
16
// 2. Redistributions in binary form must reproduce the above copyright
17
// notice, this list of conditions and the following disclaimer in the
18
// documentation and/or other materials provided with the distribution.
19
//
20
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
26
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
//***************************************************************************/
32
// This file is part of the OpenJPH software implementation.
33
// File: ojph_codestream_local.h
34
// Author: Aous Naman
35
// Date: 28 August 2019
36
//***************************************************************************/
37
38
39
#ifndef OJPH_CODESTREAM_LOCAL_H
40
#define OJPH_CODESTREAM_LOCAL_H
41
42
#include "
ojph_defs.h
"
43
#include "
ojph_arch.h
"
44
#include "
ojph_params_local.h
"
45
46
namespace
ojph
{
47
49
//defined elsewhere
50
class
line_buf
;
51
class
mem_fixed_allocator
;
52
class
mem_elastic_allocator
;
53
class
codestream
;
54
55
namespace
local
{
56
58
60
//defined elsewhere
61
class
tile
;
62
64
class
codestream
65
{
66
friend ::ojph::codestream;
67
68
public
:
69
codestream
();
70
~codestream
();
71
72
void
restart
();
73
74
void
pre_alloc
();
75
void
finalize_alloc
();
76
77
ojph::param_siz
access_siz
()
// returns externally wrapped siz
78
{
return
ojph::param_siz
(&
siz
); }
79
const
param_siz
*
get_siz
()
// returns internal siz
80
{
return
&
siz
; }
81
ojph::param_cod
access_cod
()
// returns externally wrapped cod
82
{
return
ojph::param_cod
(&
cod
); }
83
const
param_cod
*
get_cod
()
// returns internal cod
84
{
return
&
cod
; }
85
const
param_cod
*
get_coc
(
ui32
comp_num)
// returns internal cod
86
{
return
cod
.
get_coc
(comp_num); }
87
const
param_qcd
*
access_qcd
()
88
{
return
&
qcd
; }
89
const
param_dfs
*
access_dfs
()
90
{
if
(
dfs
.
exists
())
return
&
dfs
;
else
return
NULL; }
91
const
param_nlt
*
get_nlt
()
92
{
return
&
nlt
; }
93
mem_fixed_allocator
*
get_allocator
() {
return
allocator
; }
94
mem_elastic_allocator
*
get_elastic_alloc
() {
return
elastic_alloc
; }
95
outfile_base
*
get_file
() {
return
outfile
; }
96
97
line_buf
*
exchange
(
line_buf
* line,
ui32
& next_component);
98
void
write_headers
(
outfile_base
*file,
const
comment_exchange
* comments,
99
ui32
num_comments);
100
void
enable_resilience
();
101
bool
is_resilient
() {
return
resilient
; }
102
void
read_headers
(
infile_base
*file);
103
void
restrict_input_resolution
(
ui32
skipped_res_for_data,
104
ui32
skipped_res_for_recon
);
105
void
read
();
106
void
set_planar
(
int
planar
);
107
void
set_profile
(
const
char
*s);
108
void
set_tilepart_divisions
(
ui32
value);
109
void
request_tlm_marker
(
bool
needed);
110
line_buf
*
pull
(
ui32
&comp_num);
111
void
flush
();
112
void
close
();
113
114
bool
is_planar
()
const
{
return
planar
!= 0; }
115
si32
get_profile
()
const
{
return
profile
; };
116
ui32
get_tilepart_div
()
const
{
return
tilepart_div
; };
117
bool
is_tlm_needed
()
const
{
return
need_tlm
; };
118
119
void
check_imf_validity
();
120
void
check_broadcast_validity
();
121
122
ui8
*
get_precinct_scratch
() {
return
precinct_scratch
; }
123
ui32
get_skipped_res_for_recon
()
124
{
return
skipped_res_for_recon
; }
125
ui32
get_skipped_res_for_read
()
126
{
return
skipped_res_for_read
; }
127
128
private
:
129
ui32
precinct_scratch_needed_bytes
;
130
ui8
*
precinct_scratch
;
131
132
private
:
133
ui32
cur_line
;
134
ui32
cur_comp
;
135
ui32
cur_tile_row
;
136
bool
resilient
;
137
ui32
skipped_res_for_read
,
skipped_res_for_recon
;
138
139
private
:
140
size
num_tiles
;
141
tile
*
tiles
;
142
line_buf
*
lines
;
143
ui32
num_comps
;
144
size
*
comp_size
;
//stores full resolution no. of lines and width
145
size
*
recon_comp_size
;
//stores number of lines and width of each comp
146
bool
employ_color_transform
;
147
int
planar
;
148
int
profile
;
149
ui32
tilepart_div
;
// tilepart division value
150
bool
need_tlm
;
// true if tlm markers are needed
151
152
private
:
153
param_siz
siz
;
// image and tile size
154
param_cod
cod
;
// coding style default
155
param_cap
cap
;
// extended capabilities
156
param_qcd
qcd
;
// quantization default
157
param_tlm
tlm
;
// tile-part lengths
158
param_nlt
nlt
;
// non-linearity point transformation
159
160
private
:
// these are from Part 2 of the standard
161
param_dfs
dfs
;
// downsmapling factor styles
162
param_atk
atk
;
// wavelet structure and coefficients
163
164
private
:
165
mem_fixed_allocator
*
allocator
;
166
mem_elastic_allocator
*
elastic_alloc
;
167
outfile_base
*
outfile
;
168
infile_base
*
infile
;
169
};
170
171
}
172
}
173
174
#endif
// !OJPH_CODESTREAM_LOCAL_H
ojph::codestream
The object represent a codestream.
Definition
ojph_codestream.h:89
ojph::comment_exchange
Definition
ojph_params.h:397
ojph::infile_base
Definition
ojph_file.h:267
ojph::line_buf
Definition
ojph_mem.h:161
ojph::local::codestream::cap
param_cap cap
Definition
ojph_codestream_local.h:155
ojph::local::codestream::is_resilient
bool is_resilient()
Definition
ojph_codestream_local.h:101
ojph::local::codestream::qcd
param_qcd qcd
Definition
ojph_codestream_local.h:156
ojph::local::codestream::outfile
outfile_base * outfile
Definition
ojph_codestream_local.h:167
ojph::local::codestream::read
void read()
Definition
ojph_codestream_local.cpp:923
ojph::local::codestream::nlt
param_nlt nlt
Definition
ojph_codestream_local.h:158
ojph::local::codestream::atk
param_atk atk
Definition
ojph_codestream_local.h:162
ojph::local::codestream::infile
infile_base * infile
Definition
ojph_codestream_local.h:168
ojph::local::codestream::is_planar
bool is_planar() const
Definition
ojph_codestream_local.h:114
ojph::local::codestream::get_profile
si32 get_profile() const
Definition
ojph_codestream_local.h:115
ojph::local::codestream::tiles
tile * tiles
Definition
ojph_codestream_local.h:141
ojph::local::codestream::skipped_res_for_recon
ui32 skipped_res_for_recon
Definition
ojph_codestream_local.h:137
ojph::local::codestream::pre_alloc
void pre_alloc()
Definition
ojph_codestream_local.cpp:113
ojph::local::codestream::get_tilepart_div
ui32 get_tilepart_div() const
Definition
ojph_codestream_local.h:116
ojph::local::codestream::resilient
bool resilient
Definition
ojph_codestream_local.h:136
ojph::local::codestream::access_siz
ojph::param_siz access_siz()
Definition
ojph_codestream_local.h:77
ojph::local::codestream::tilepart_div
ui32 tilepart_div
Definition
ojph_codestream_local.h:149
ojph::local::codestream::tlm
param_tlm tlm
Definition
ojph_codestream_local.h:157
ojph::local::codestream::profile
int profile
Definition
ojph_codestream_local.h:148
ojph::local::codestream::get_coc
const param_cod * get_coc(ui32 comp_num)
Definition
ojph_codestream_local.h:85
ojph::local::codestream::get_elastic_alloc
mem_elastic_allocator * get_elastic_alloc()
Definition
ojph_codestream_local.h:94
ojph::local::codestream::planar
int planar
Definition
ojph_codestream_local.h:147
ojph::local::codestream::close
void close()
Definition
ojph_codestream_local.cpp:1178
ojph::local::codestream::get_skipped_res_for_read
ui32 get_skipped_res_for_read()
Definition
ojph_codestream_local.h:125
ojph::local::codestream::request_tlm_marker
void request_tlm_marker(bool needed)
Definition
ojph_codestream_local.cpp:1153
ojph::local::codestream::exchange
line_buf * exchange(line_buf *line, ui32 &next_component)
Definition
ojph_codestream_local.cpp:1187
ojph::local::codestream::set_planar
void set_planar(int planar)
Definition
ojph_codestream_local.cpp:1129
ojph::local::codestream::access_qcd
const param_qcd * access_qcd()
Definition
ojph_codestream_local.h:87
ojph::local::codestream::get_siz
const param_siz * get_siz()
Definition
ojph_codestream_local.h:79
ojph::local::codestream::precinct_scratch
ui8 * precinct_scratch
Definition
ojph_codestream_local.h:130
ojph::local::codestream::lines
line_buf * lines
Definition
ojph_codestream_local.h:142
ojph::local::codestream::check_imf_validity
void check_imf_validity()
Definition
ojph_codestream_local.cpp:293
ojph::local::codestream::get_allocator
mem_fixed_allocator * get_allocator()
Definition
ojph_codestream_local.h:93
ojph::local::codestream::get_nlt
const param_nlt * get_nlt()
Definition
ojph_codestream_local.h:91
ojph::local::codestream::restart
void restart()
Definition
ojph_codestream_local.cpp:78
ojph::local::codestream::need_tlm
bool need_tlm
Definition
ojph_codestream_local.h:150
ojph::local::codestream::get_precinct_scratch
ui8 * get_precinct_scratch()
Definition
ojph_codestream_local.h:122
ojph::local::codestream::get_file
outfile_base * get_file()
Definition
ojph_codestream_local.h:95
ojph::local::codestream::elastic_alloc
mem_elastic_allocator * elastic_alloc
Definition
ojph_codestream_local.h:166
ojph::local::codestream::access_cod
ojph::param_cod access_cod()
Definition
ojph_codestream_local.h:81
ojph::local::codestream::cur_comp
ui32 cur_comp
Definition
ojph_codestream_local.h:134
ojph::local::codestream::siz
param_siz siz
Definition
ojph_codestream_local.h:153
ojph::local::codestream::cur_tile_row
ui32 cur_tile_row
Definition
ojph_codestream_local.h:135
ojph::local::codestream::get_cod
const param_cod * get_cod()
Definition
ojph_codestream_local.h:83
ojph::local::codestream::is_tlm_needed
bool is_tlm_needed() const
Definition
ojph_codestream_local.h:117
ojph::local::codestream::access_dfs
const param_dfs * access_dfs()
Definition
ojph_codestream_local.h:89
ojph::local::codestream::allocator
mem_fixed_allocator * allocator
Definition
ojph_codestream_local.h:165
ojph::local::codestream::flush
void flush()
Definition
ojph_codestream_local.cpp:1159
ojph::local::codestream::write_headers
void write_headers(outfile_base *file, const comment_exchange *comments, ui32 num_comments)
Definition
ojph_codestream_local.cpp:556
ojph::local::codestream::recon_comp_size
size * recon_comp_size
Definition
ojph_codestream_local.h:145
ojph::local::codestream::precinct_scratch_needed_bytes
ui32 precinct_scratch_needed_bytes
Definition
ojph_codestream_local.h:129
ojph::local::codestream::cod
param_cod cod
Definition
ojph_codestream_local.h:154
ojph::local::codestream::check_broadcast_validity
void check_broadcast_validity()
Definition
ojph_codestream_local.cpp:456
ojph::local::codestream::read_headers
void read_headers(infile_base *file)
Definition
ojph_codestream_local.cpp:769
ojph::local::codestream::codestream
codestream()
Definition
ojph_codestream_local.cpp:56
ojph::local::codestream::num_comps
ui32 num_comps
Definition
ojph_codestream_local.h:143
ojph::local::codestream::set_profile
void set_profile(const char *s)
Definition
ojph_codestream_local.cpp:1135
ojph::local::codestream::employ_color_transform
bool employ_color_transform
Definition
ojph_codestream_local.h:146
ojph::local::codestream::set_tilepart_divisions
void set_tilepart_divisions(ui32 value)
Definition
ojph_codestream_local.cpp:1147
ojph::local::codestream::finalize_alloc
void finalize_alloc()
Definition
ojph_codestream_local.cpp:221
ojph::local::codestream::dfs
param_dfs dfs
Definition
ojph_codestream_local.h:161
ojph::local::codestream::num_tiles
size num_tiles
Definition
ojph_codestream_local.h:140
ojph::local::codestream::cur_line
ui32 cur_line
Definition
ojph_codestream_local.h:133
ojph::local::codestream::get_skipped_res_for_recon
ui32 get_skipped_res_for_recon()
Definition
ojph_codestream_local.h:123
ojph::local::codestream::pull
line_buf * pull(ui32 &comp_num)
Definition
ojph_codestream_local.cpp:1238
ojph::local::codestream::skipped_res_for_read
ui32 skipped_res_for_read
Definition
ojph_codestream_local.h:137
ojph::local::codestream::comp_size
size * comp_size
Definition
ojph_codestream_local.h:144
ojph::local::tile
Definition
ojph_tile.h:61
ojph::mem_elastic_allocator
Definition
ojph_mem.h:218
ojph::mem_fixed_allocator
Definition
ojph_mem.h:59
ojph::outfile_base
Definition
ojph_file.h:75
ojph::param_cod
Definition
ojph_params.h:120
ojph::param_siz
Definition
ojph_params.h:69
ojph::local
Definition
ojph_bitbuffer_read.h:53
ojph
Definition
ojph_img_io.h:52
ojph::si32
int32_t si32
Definition
ojph_defs.h:55
ojph::ui32
uint32_t ui32
Definition
ojph_defs.h:54
ojph::ui8
uint8_t ui8
Definition
ojph_defs.h:50
ojph_arch.h
ojph_defs.h
ojph_params_local.h
enable_resilience
EMSCRIPTEN_KEEPALIVE void enable_resilience(j2k_struct *j2c)
Definition
ojph_wrapper.cpp:229
restrict_input_resolution
EMSCRIPTEN_KEEPALIVE void restrict_input_resolution(j2k_struct *j2c, int skipped_res_for_read, int skipped_res_for_recon)
Definition
ojph_wrapper.cpp:219
ojph::local::param_atk
Definition
ojph_params_local.h:1224
ojph::local::param_cap
Definition
ojph_params_local.h:1016
ojph::local::param_cod
Definition
ojph_params_local.h:385
ojph::local::param_cod::get_coc
const param_cod * get_coc(ui32 comp_idx) const
Definition
ojph_params.cpp:1318
ojph::local::param_dfs
Definition
ojph_params_local.h:1132
ojph::local::param_dfs::exists
bool exists() const
Definition
ojph_params_local.h:1156
ojph::local::param_nlt
Definition
ojph_params_local.h:910
ojph::local::param_qcd
Definition
ojph_params_local.h:687
ojph::local::param_siz
Definition
ojph_params_local.h:166
ojph::local::param_tlm
Definition
ojph_params_local.h:1098
ojph::size
Definition
ojph_base.h:48
src
core
codestream
ojph_codestream_local.h
Generated by
1.18.0