Loading...
Searching...
No Matches
ojph_tile_comp.h
Go to the documentation of this file.
//***************************************************************************/
// This software is released under the 2-Clause BSD license, included
// below.
//
// Copyright (c) 2019, Aous Naman
// Copyright (c) 2019, Kakadu Software Pty Ltd, Australia
// Copyright (c) 2019, The University of New South Wales, Australia
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//***************************************************************************/
// This file is part of the OpenJPH software implementation.
// File: ojph_tile_comp.h
// Author: Aous Naman
// Date: 28 August 2019
//***************************************************************************/
#ifndef OJPH_TILE_COMP_H
#define OJPH_TILE_COMP_H
#include "ojph_defs.h"
#include "ojph_base.h"
#include "ojph_file.h"
namespace ojph {
//defined elsewhere
class line_buf;
class codestream;
namespace local {
//defined here
class tile;
class resolution;
class tile_comp
{
public:
static void pre_alloc(codestream *codestream, ui32 comp_num,
const rect& comp_rect,
const rect& recon_comp_rect);
void finalize_alloc(codestream *codestream, tile *parent,
ui32 comp_num, const rect& comp_rect,
const rect& recon_comp_rect);
ui32 get_num_resolutions() { return num_decomps + 1; }
ui32 get_num_decompositions() { return num_decomps; }
tile* get_tile() { return parent_tile; }
line_buf* get_line();
void push_line();
line_buf* pull_line();
ui32 prepare_precincts();
void write_precincts(ui32 res_num, outfile_base *file);
bool get_top_left_precinct(ui32 res_num, point &top_left);
void write_one_precinct(ui32 res_num, outfile_base *file);
void parse_precincts(ui32 res_num, ui32& data_left, infile_base *file);
void parse_one_precinct(ui32 res_num, ui32& data_left,
infile_base *file);
ui32 get_num_bytes() const { return num_bytes; }
ui32 get_num_bytes(ui32 resolution_num) const;
private:
tile *parent_tile;
resolution *res;
rect comp_rect;
ojph::point comp_downsamp;
ui32 num_decomps;
ui32 comp_num;
ui32 num_bytes; // number of bytes in this tile component
// used for tilepart length
};
}
}
#endif // !OJPH_TILE_COMP_H
ojph::codestream
The object represent a codestream.
Definition ojph_codestream.h:89
ojph::infile_base
Definition ojph_file.h:247
ojph::line_buf
Definition ojph_mem.h:160
ojph::local::codestream
Definition ojph_codestream_local.h:69
ojph::local::resolution
Definition ojph_resolution.h:62
ojph::local::tile_comp
Definition ojph_tile_comp.h:63
ojph::local::tile_comp::get_tile
tile * get_tile()
Definition ojph_tile_comp.h:74
ojph::local::tile_comp::get_line
line_buf * get_line()
Definition ojph_tile_comp.cpp:92
ojph::local::tile_comp::num_decomps
ui32 num_decomps
Definition ojph_tile_comp.h:95
ojph::local::tile_comp::parent_tile
tile * parent_tile
Definition ojph_tile_comp.h:91
ojph::local::tile_comp::get_num_resolutions
ui32 get_num_resolutions()
Definition ojph_tile_comp.h:72
ojph::local::tile_comp::get_num_decompositions
ui32 get_num_decompositions()
Definition ojph_tile_comp.h:73
ojph::local::tile_comp::get_top_left_precinct
bool get_top_left_precinct(ui32 res_num, point &top_left)
Definition ojph_tile_comp.cpp:132
ojph::local::tile_comp::num_bytes
ui32 num_bytes
Definition ojph_tile_comp.h:97
ojph::local::tile_comp::write_one_precinct
void write_one_precinct(ui32 res_num, outfile_base *file)
Definition ojph_tile_comp.cpp:148
ojph::local::tile_comp::pull_line
line_buf * pull_line()
Definition ojph_tile_comp.cpp:104
ojph::local::tile_comp::pre_alloc
static void pre_alloc(codestream *codestream, ui32 comp_num, const rect &comp_rect, const rect &recon_comp_rect)
Definition ojph_tile_comp.cpp:54
ojph::local::tile_comp::comp_rect
rect comp_rect
Definition ojph_tile_comp.h:93
ojph::local::tile_comp::comp_num
ui32 comp_num
Definition ojph_tile_comp.h:96
ojph::local::tile_comp::res
resolution * res
Definition ojph_tile_comp.h:92
ojph::local::tile_comp::finalize_alloc
void finalize_alloc(codestream *codestream, tile *parent, ui32 comp_num, const rect &comp_rect, const rect &recon_comp_rect)
Definition ojph_tile_comp.cpp:70
ojph::local::tile_comp::parse_one_precinct
void parse_one_precinct(ui32 res_num, ui32 &data_left, infile_base *file)
Definition ojph_tile_comp.cpp:179
ojph::local::tile_comp::push_line
void push_line()
Definition ojph_tile_comp.cpp:98
ojph::local::tile_comp::comp_downsamp
ojph::point comp_downsamp
Definition ojph_tile_comp.h:94
ojph::local::tile_comp::prepare_precincts
ui32 prepare_precincts()
Definition ojph_tile_comp.cpp:110
ojph::local::tile_comp::write_precincts
void write_precincts(ui32 res_num, outfile_base *file)
Definition ojph_tile_comp.cpp:117
ojph::local::tile_comp::get_num_bytes
ui32 get_num_bytes() const
Definition ojph_tile_comp.h:87
ojph::local::tile_comp::parse_precincts
void parse_precincts(ui32 res_num, ui32 &data_left, infile_base *file)
Definition ojph_tile_comp.cpp:162
ojph::local::tile
Definition ojph_tile.h:61
ojph::outfile_base
Definition ojph_file.h:75
ojph::local
Definition ojph_bitbuffer_read.h:52
ojph
Definition ojph_img_io.h:52
ojph::ui32
uint32_t ui32
Definition ojph_defs.h:54
ojph_base.h
ojph_defs.h
ojph_file.h
ojph::point
Definition ojph_base.h:58
ojph::rect
Definition ojph_base.h:65