OpenJPH
Open-source implementation of JPEG2000 Part-15
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
struct
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
static
void
pre_alloc
(
codestream
*
codestream
,
const
rect
&
band_rect
,
67
ui32
res_num
);
68
void
finalize_alloc
(
codestream
*
codestream
,
const
rect
&
band_rect
,
69
resolution
* res,
ui32
res_num
,
ui32
subband_num);
70
71
void
exchange_buf
(
line_buf
* l);
72
line_buf
*
get_line
() {
return
lines
; }
73
void
push_line
();
74
75
void
get_cb_indices
(
const
size
& num_precincts,
precinct
*precincts);
76
float
get_delta
() {
return
delta
; }
77
78
line_buf
*
pull_line
();
79
80
private
:
81
ui32
res_num
,
band_num
;
82
bool
reversible
;
83
bool
empty
;
84
rect
band_rect
;
85
line_buf
*
lines
;
86
resolution
*
parent
;
87
codeblock
*
blocks
;
88
size
num_blocks
;
89
size
log_PP
;
90
ui32
xcb_prime
,
ycb_prime
;
91
ui32
cur_cb_row
;
92
int
cur_line
;
93
int
cur_cb_height
;
94
float
delta
,
delta_inv
;
95
ui32
K_max
;
96
coded_cb_header
*
coded_cbs
;
97
mem_elastic_allocator
*
elastic
;
98
};
99
100
}
101
}
102
103
#endif
// !OJPH_SUBBAND_H
ojph::local::codeblock
Definition:
ojph_codeblock.h:66
ojph::local::codestream
Definition:
ojph_codestream_local.h:69
ojph::local::resolution
Definition:
ojph_resolution.h:62
ojph::local::subband
Definition:
ojph_subband.h:63
ojph::local::subband::log_PP
size log_PP
Definition:
ojph_subband.h:89
ojph::local::subband::num_blocks
size num_blocks
Definition:
ojph_subband.h:88
ojph::local::subband::push_line
void push_line()
Definition:
ojph_subband.cpp:250
ojph::local::subband::K_max
ui32 K_max
Definition:
ojph_subband.h:95
ojph::local::subband::exchange_buf
void exchange_buf(line_buf *l)
Definition:
ojph_subband.cpp:238
ojph::local::subband::get_delta
float get_delta()
Definition:
ojph_subband.h:76
ojph::local::subband::coded_cbs
coded_cb_header * coded_cbs
Definition:
ojph_subband.h:96
ojph::local::subband::lines
line_buf * lines
Definition:
ojph_subband.h:85
ojph::local::subband::band_num
ui32 band_num
Definition:
ojph_subband.h:81
ojph::local::subband::empty
bool empty
Definition:
ojph_subband.h:83
ojph::local::subband::get_line
line_buf * get_line()
Definition:
ojph_subband.h:72
ojph::local::subband::ycb_prime
ui32 ycb_prime
Definition:
ojph_subband.h:90
ojph::local::subband::band_rect
rect band_rect
Definition:
ojph_subband.h:84
ojph::local::subband::get_cb_indices
void get_cb_indices(const size &num_precincts, precinct *precincts)
Definition:
ojph_subband.cpp:185
ojph::local::subband::elastic
mem_elastic_allocator * elastic
Definition:
ojph_subband.h:97
ojph::local::subband::blocks
codeblock * blocks
Definition:
ojph_subband.h:87
ojph::local::subband::res_num
ui32 res_num
Definition:
ojph_subband.h:81
ojph::local::subband::pre_alloc
static void pre_alloc(codestream *codestream, const rect &band_rect, ui32 res_num)
Definition:
ojph_subband.cpp:57
ojph::local::subband::delta_inv
float delta_inv
Definition:
ojph_subband.h:94
ojph::local::subband::cur_line
int cur_line
Definition:
ojph_subband.h:92
ojph::local::subband::parent
resolution * parent
Definition:
ojph_subband.h:86
ojph::local::subband::delta
float delta
Definition:
ojph_subband.h:94
ojph::local::subband::xcb_prime
ui32 xcb_prime
Definition:
ojph_subband.h:90
ojph::local::subband::reversible
bool reversible
Definition:
ojph_subband.h:82
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:101
ojph::local::subband::pull_line
line_buf * pull_line()
Definition:
ojph_subband.cpp:294
ojph::local::subband::cur_cb_row
ui32 cur_cb_row
Definition:
ojph_subband.h:91
ojph::local::subband::cur_cb_height
int cur_cb_height
Definition:
ojph_subband.h:93
ojph::mem_elastic_allocator
Definition:
ojph_mem.h:178
ojph
Definition:
ojph_img_io.h:52
ojph::ui32
uint32_t ui32
Definition:
ojph_defs.h:54
ojph_defs.h
ojph::line_buf
Definition:
ojph_mem.h:136
ojph::local::coded_cb_header
Definition:
ojph_codeblock.h:103
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.9.4