OpenJPH
Open-source implementation of JPEG2000 Part-15
Toggle main menu visibility
Loading...
Searching...
No Matches
ojph_subband.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_subband.h
34
// Author: Aous Naman
35
// Date: 28 August 2019
36
//***************************************************************************/
37
38
39
#ifndef OJPH_SUBBAND_H
40
#define OJPH_SUBBAND_H
41
42
#include "
ojph_defs.h
"
43
44
namespace
ojph
{
45
47
//defined elsewhere
48
class
line_buf
;
49
class
mem_elastic_allocator
;
50
class
codestream
;
51
52
namespace
local
{
53
55
//defined here
56
class
resolution
;
57
struct
precinct
;
58
class
codeblock
;
59
struct
coded_cb_header
;
60
62
class
subband
63
{
64
friend
struct
precinct
;
65
public
:
66
subband
() {
67
res_num
=
band_num
= 0;
68
reversible
=
false
;
69
empty
=
true
;
// <---- true
70
lines
= NULL;
71
parent
= NULL;
72
blocks
= NULL;
73
xcb_prime
=
ycb_prime
= 0;
74
cur_cb_row
= 0;
75
cur_line
= 0;
76
cur_cb_height
= 0;
77
delta
=
delta_inv
= 0.0f;
78
K_max
= 0;
79
coded_cbs
= NULL;
80
elastic
= NULL;
81
}
82
83
static
void
pre_alloc
(
codestream
*
codestream
,
const
rect
&
band_rect
,
84
ui32
comp_num,
ui32
res_num
,
ui32
transform_flags);
85
void
finalize_alloc
(
codestream
*
codestream
,
const
rect
&
band_rect
,
86
resolution
* res,
ui32
res_num
,
ui32
subband_num);
87
88
void
exchange_buf
(
line_buf
* l);
89
line_buf
*
get_line
() {
return
lines
; }
90
void
push_line
();
91
92
void
get_cb_indices
(
const
size
& num_precincts,
precinct
*precincts);
93
float
get_delta
() {
return
delta
; }
94
bool
exists
() {
return
!
empty
; }
95
96
line_buf
*
pull_line
();
97
resolution
*
get_parent
() {
return
parent
; }
98
const
resolution
*
get_parent
()
const
{
return
parent
; }
99
100
private
:
101
bool
empty
;
// true if the subband has no pixels or
102
// the subband is NOT USED
103
ui32
res_num
,
band_num
;
104
bool
reversible
;
105
rect
band_rect
;
106
line_buf
*
lines
;
107
resolution
*
parent
;
108
codeblock
*
blocks
;
109
size
num_blocks
;
110
size
log_PP
;
111
ui32
xcb_prime
,
ycb_prime
;
112
ui32
cur_cb_row
;
113
int
cur_line
;
114
int
cur_cb_height
;
115
float
delta
,
delta_inv
;
116
ui32
K_max
;
117
coded_cb_header
*
coded_cbs
;
118
mem_elastic_allocator
*
elastic
;
119
};
120
121
}
122
}
123
124
#endif
// !OJPH_SUBBAND_H
ojph::codestream
The object represent a codestream.
Definition
ojph_codestream.h:89
ojph::line_buf
Definition
ojph_mem.h:161
ojph::local::codeblock
Definition
ojph_codeblock.h:66
ojph::local::codestream
Definition
ojph_codestream_local.h:65
ojph::local::resolution
Definition
ojph_resolution.h:62
ojph::local::subband::log_PP
size log_PP
Definition
ojph_subband.h:110
ojph::local::subband::num_blocks
size num_blocks
Definition
ojph_subband.h:109
ojph::local::subband::push_line
void push_line()
Definition
ojph_subband.cpp:292
ojph::local::subband::pre_alloc
static void pre_alloc(codestream *codestream, const rect &band_rect, ui32 comp_num, ui32 res_num, ui32 transform_flags)
Definition
ojph_subband.cpp:57
ojph::local::subband::K_max
ui32 K_max
Definition
ojph_subband.h:116
ojph::local::subband::exchange_buf
void exchange_buf(line_buf *l)
Definition
ojph_subband.cpp:279
ojph::local::subband::get_delta
float get_delta()
Definition
ojph_subband.h:93
ojph::local::subband::coded_cbs
coded_cb_header * coded_cbs
Definition
ojph_subband.h:117
ojph::local::subband::lines
line_buf * lines
Definition
ojph_subband.h:106
ojph::local::subband::band_num
ui32 band_num
Definition
ojph_subband.h:103
ojph::local::subband::empty
bool empty
Definition
ojph_subband.h:101
ojph::local::subband::get_line
line_buf * get_line()
Definition
ojph_subband.h:89
ojph::local::subband::ycb_prime
ui32 ycb_prime
Definition
ojph_subband.h:111
ojph::local::subband::band_rect
rect band_rect
Definition
ojph_subband.h:105
ojph::local::subband::get_parent
const resolution * get_parent() const
Definition
ojph_subband.h:98
ojph::local::subband::get_cb_indices
void get_cb_indices(const size &num_precincts, precinct *precincts)
Definition
ojph_subband.cpp:224
ojph::local::subband::elastic
mem_elastic_allocator * elastic
Definition
ojph_subband.h:118
ojph::local::subband::precinct
friend struct precinct
Definition
ojph_subband.h:64
ojph::local::subband::blocks
codeblock * blocks
Definition
ojph_subband.h:108
ojph::local::subband::res_num
ui32 res_num
Definition
ojph_subband.h:103
ojph::local::subband::delta_inv
float delta_inv
Definition
ojph_subband.h:115
ojph::local::subband::cur_line
int cur_line
Definition
ojph_subband.h:113
ojph::local::subband::parent
resolution * parent
Definition
ojph_subband.h:107
ojph::local::subband::delta
float delta
Definition
ojph_subband.h:115
ojph::local::subband::xcb_prime
ui32 xcb_prime
Definition
ojph_subband.h:111
ojph::local::subband::subband
subband()
Definition
ojph_subband.h:66
ojph::local::subband::reversible
bool reversible
Definition
ojph_subband.h:104
ojph::local::subband::finalize_alloc
void finalize_alloc(codestream *codestream, const rect &band_rect, resolution *res, ui32 res_num, ui32 subband_num)
Definition
ojph_subband.cpp:117
ojph::local::subband::get_parent
resolution * get_parent()
Definition
ojph_subband.h:97
ojph::local::subband::exists
bool exists()
Definition
ojph_subband.h:94
ojph::local::subband::pull_line
line_buf * pull_line()
Definition
ojph_subband.cpp:336
ojph::local::subband::cur_cb_row
ui32 cur_cb_row
Definition
ojph_subband.h:112
ojph::local::subband::cur_cb_height
int cur_cb_height
Definition
ojph_subband.h:114
ojph::mem_elastic_allocator
Definition
ojph_mem.h:218
ojph::local
Definition
ojph_bitbuffer_read.h:53
ojph
Definition
ojph_img_io.h:52
ojph::ui32
uint32_t ui32
Definition
ojph_defs.h:54
ojph_defs.h
ojph::local::coded_cb_header
Definition
ojph_codeblock.h:116
ojph::local::precinct
Definition
ojph_precinct.h:59
ojph::rect
Definition
ojph_base.h:65
ojph::size
Definition
ojph_base.h:48
src
core
codestream
ojph_subband.h
Generated by
1.18.0