OpenJPH
Open-source implementation of JPEG2000 Part-15
ojph_tile_comp.h
Go to the documentation of this file.
1
2//***************************************************************************/
3// This software is released under the 2-Clause BSD license, included
4// below.
5//
6// Copyright (c) 2019, Aous Naman
7// Copyright (c) 2019, Kakadu Software Pty Ltd, Australia
8// Copyright (c) 2019, The University of New South Wales, Australia
9//
10// Redistribution and use in source and binary forms, with or without
11// modification, are permitted provided that the following conditions are
12// met:
13//
14// 1. Redistributions of source code must retain the above copyright
15// notice, this list of conditions and the following disclaimer.
16//
17// 2. Redistributions in binary form must reproduce the above copyright
18// notice, this list of conditions and the following disclaimer in the
19// documentation and/or other materials provided with the distribution.
20//
21// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
22// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
24// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
27// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32//***************************************************************************/
33// This file is part of the OpenJPH software implementation.
34// File: ojph_tile_comp.h
35// Author: Aous Naman
36// Date: 28 August 2019
37//***************************************************************************/
38
39
40#ifndef OJPH_TILE_COMP_H
41#define OJPH_TILE_COMP_H
42
43#include "ojph_defs.h"
44#include "ojph_base.h"
45#include "ojph_file.h"
46
47namespace ojph {
48
50 //defined elsewhere
51 struct line_buf;
52 class codestream;
53
54 namespace local {
55
57 //defined here
58 class tile;
59 class resolution;
60
63 {
64 public:
65 static void pre_alloc(codestream *codestream, const rect& comp_rect,
66 const rect& recon_comp_rect);
69 const rect& recon_comp_rect);
70
73 tile* get_tile() { return parent_tile; }
75 void push_line();
77
79 void write_precincts(ui32 res_num, outfile_base *file);
80 bool get_top_left_precinct(ui32 res_num, point &top_left);
81 void write_one_precinct(ui32 res_num, outfile_base *file);
82 void parse_precincts(ui32 res_num, ui32& data_left, infile_base *file);
83 void parse_one_precinct(ui32 res_num, ui32& data_left,
84 infile_base *file);
85
86 ui32 get_num_bytes() const { return num_bytes; }
87 ui32 get_num_bytes(ui32 resolution_num) const;
88
89 private:
96 ui32 num_bytes; // number of bytes in this tile component
97 // used for tilepart length
98 };
99
100 }
101}
102
103#endif // !OJPH_TILE_COMP_H
static void pre_alloc(codestream *codestream, const rect &comp_rect, const rect &recon_comp_rect)
bool get_top_left_precinct(ui32 res_num, point &top_left)
void write_one_precinct(ui32 res_num, outfile_base *file)
void finalize_alloc(codestream *codestream, tile *parent, ui32 comp_num, const rect &comp_rect, const rect &recon_comp_rect)
void parse_one_precinct(ui32 res_num, ui32 &data_left, infile_base *file)
void write_precincts(ui32 res_num, outfile_base *file)
ui32 get_num_bytes() const
void parse_precincts(ui32 res_num, ui32 &data_left, infile_base *file)
uint32_t ui32
Definition: ojph_defs.h:54