OpenJPH
Open-source implementation of JPEG2000 Part-15
Toggle main menu visibility
Loading...
Searching...
No Matches
ojph_tile.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_tile.h
34
// Author: Aous Naman
35
// Date: 28 August 2019
36
//***************************************************************************/
37
38
39
#ifndef OJPH_TILE_H
40
#define OJPH_TILE_H
41
42
#include "
ojph_defs.h
"
43
#include "
ojph_file.h
"
44
#include "
ojph_params_local.h
"
45
46
namespace
ojph
{
47
49
//defined elsewhere
50
class
line_buf
;
51
class
codestream
;
52
53
namespace
local
{
54
56
//defined here
57
class
tile_comp
;
58
60
class
tile
61
{
62
public
:
63
static
void
pre_alloc
(
codestream
*
codestream
,
const
rect
&
tile_rect
,
64
const
rect
& recon_tile_rect,
ui32
&num_tileparts);
65
void
finalize_alloc
(
codestream
*
codestream
,
const
rect
&
tile_rect
,
66
ui32
tile_idx,
ui32
& offset,
ui32
&num_tileparts);
67
68
bool
push
(
line_buf
*line,
ui32
comp_num);
69
void
prepare_for_flush
();
70
void
fill_tlm
(
param_tlm
* tlm);
71
void
flush
(
outfile_base
*file);
72
void
parse_tile_header
(
const
param_sot
&
sot
,
infile_base
*file,
73
const
ui64
& tile_start_location);
74
bool
pull
(
line_buf
*,
ui32
comp_num);
75
rect
get_tile_rect
() {
return
tile_rect
; }
76
77
private
:
78
//codestream *parent;
79
rect
tile_rect
;
80
ui32
num_comps
;
81
tile_comp
*
comps
;
82
ui32
num_lines
;
83
line_buf
*
lines
;
84
bool
employ_color_transform
,
resilient
;
85
bool
*
reversible
;
86
rect
*
comp_rects
, *
recon_comp_rects
;
87
ui32
*
line_offsets
;
88
ui32
skipped_res_for_read
;
89
90
ui32
*
num_bits
;
91
bool
*
is_signed
;
92
ui32
*
cur_line
;
93
const
nlt_rec
**
nlt_ptr
;
94
int
prog_order
;
95
96
private
:
97
param_sot
sot
;
98
int
next_tile_part
;
99
100
private
:
101
int
profile
;
102
ui32
tilepart_div
;
// tilepart division value
103
bool
need_tlm
;
// true if tlm markers are needed
104
105
ui32
num_bytes
;
// number of bytes in this tile
106
// used for tile length
107
};
108
109
}
110
}
111
112
#endif
// !OJPH_TILE_H
ojph::codestream
The object represent a codestream.
Definition
ojph_codestream.h:89
ojph::infile_base
Definition
ojph_file.h:267
ojph::line_buf
Definition
ojph_mem.h:161
ojph::local::codestream
Definition
ojph_codestream_local.h:65
ojph::local::tile_comp
Definition
ojph_tile_comp.h:63
ojph::local::tile
Definition
ojph_tile.h:61
ojph::local::tile::num_comps
ui32 num_comps
Definition
ojph_tile.h:80
ojph::local::tile::pull
bool pull(line_buf *, ui32 comp_num)
Definition
ojph_tile.cpp:457
ojph::local::tile::resilient
bool resilient
Definition
ojph_tile.h:84
ojph::local::tile::tilepart_div
ui32 tilepart_div
Definition
ojph_tile.h:102
ojph::local::tile::next_tile_part
int next_tile_part
Definition
ojph_tile.h:98
ojph::local::tile::lines
line_buf * lines
Definition
ojph_tile.h:83
ojph::local::tile::tile_rect
rect tile_rect
Definition
ojph_tile.h:79
ojph::local::tile::finalize_alloc
void finalize_alloc(codestream *codestream, const rect &tile_rect, ui32 tile_idx, ui32 &offset, ui32 &num_tileparts)
Definition
ojph_tile.cpp:191
ojph::local::tile::pre_alloc
static void pre_alloc(codestream *codestream, const rect &tile_rect, const rect &recon_tile_rect, ui32 &num_tileparts)
Definition
ojph_tile.cpp:57
ojph::local::tile::need_tlm
bool need_tlm
Definition
ojph_tile.h:103
ojph::local::tile::prepare_for_flush
void prepare_for_flush()
Definition
ojph_tile.cpp:579
ojph::local::tile::comps
tile_comp * comps
Definition
ojph_tile.h:81
ojph::local::tile::fill_tlm
void fill_tlm(param_tlm *tlm)
Definition
ojph_tile.cpp:588
ojph::local::tile::recon_comp_rects
rect * recon_comp_rects
Definition
ojph_tile.h:86
ojph::local::tile::reversible
bool * reversible
Definition
ojph_tile.h:85
ojph::local::tile::profile
int profile
Definition
ojph_tile.h:101
ojph::local::tile::num_bytes
ui32 num_bytes
Definition
ojph_tile.h:105
ojph::local::tile::is_signed
bool * is_signed
Definition
ojph_tile.h:91
ojph::local::tile::flush
void flush(outfile_base *file)
Definition
ojph_tile.cpp:642
ojph::local::tile::num_lines
ui32 num_lines
Definition
ojph_tile.h:82
ojph::local::tile::cur_line
ui32 * cur_line
Definition
ojph_tile.h:92
ojph::local::tile::prog_order
int prog_order
Definition
ojph_tile.h:94
ojph::local::tile::skipped_res_for_read
ui32 skipped_res_for_read
Definition
ojph_tile.h:88
ojph::local::tile::sot
param_sot sot
Definition
ojph_tile.h:97
ojph::local::tile::push
bool push(line_buf *line, ui32 comp_num)
Definition
ojph_tile.cpp:338
ojph::local::tile::nlt_ptr
const nlt_rec ** nlt_ptr
Definition
ojph_tile.h:93
ojph::local::tile::employ_color_transform
bool employ_color_transform
Definition
ojph_tile.h:84
ojph::local::tile::comp_rects
rect * comp_rects
Definition
ojph_tile.h:86
ojph::local::tile::parse_tile_header
void parse_tile_header(const param_sot &sot, infile_base *file, const ui64 &tile_start_location)
Definition
ojph_tile.cpp:835
ojph::local::tile::line_offsets
ui32 * line_offsets
Definition
ojph_tile.h:87
ojph::local::tile::num_bits
ui32 * num_bits
Definition
ojph_tile.h:90
ojph::local::tile::get_tile_rect
rect get_tile_rect()
Definition
ojph_tile.h:75
ojph::outfile_base
Definition
ojph_file.h:75
ojph::local
Definition
ojph_bitbuffer_read.h:53
ojph
Definition
ojph_img_io.h:52
ojph::ui64
uint64_t ui64
Definition
ojph_defs.h:56
ojph::ui32
uint32_t ui32
Definition
ojph_defs.h:54
ojph_defs.h
ojph_file.h
ojph_params_local.h
ojph::local::nlt_rec
Definition
ojph_params_local.h:840
ojph::local::param_sot
Definition
ojph_params_local.h:1061
ojph::local::param_tlm
Definition
ojph_params_local.h:1098
ojph::rect
Definition
ojph_base.h:65
src
core
codestream
ojph_tile.h
Generated by
1.18.0