Loading...
Searching...
No Matches
ojph_tile.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.h
// Author: Aous Naman
// Date: 28 August 2019
//***************************************************************************/
#ifndef OJPH_TILE_H
#define OJPH_TILE_H
#include "ojph_defs.h"
#include "ojph_file.h"
#include "ojph_params_local.h"
namespace ojph {
//defined elsewhere
class line_buf;
class codestream;
namespace local {
//defined here
class tile_comp;
class tile
{
public:
static void pre_alloc(codestream *codestream, const rect& tile_rect,
const rect& recon_tile_rect, ui32 &num_tileparts);
void finalize_alloc(codestream *codestream, const rect& tile_rect,
ui32 tile_idx, ui32& offset, ui32 &num_tileparts);
bool push(line_buf *line, ui32 comp_num);
void prepare_for_flush();
void fill_tlm(param_tlm* tlm);
void flush(outfile_base *file);
void parse_tile_header(const param_sot& sot, infile_base *file,
const ui64& tile_start_location);
bool pull(line_buf *, ui32 comp_num);
rect get_tile_rect() { return tile_rect; }
private:
//codestream *parent;
rect tile_rect;
ui32 num_comps;
tile_comp *comps;
ui32 num_lines;
line_buf* lines;
bool employ_color_transform, resilient;
bool *reversible;
rect *comp_rects, *recon_comp_rects;
ui32 *line_offsets;
ui32 skipped_res_for_read;
ui32 *num_bits;
bool *is_signed;
ui32 *cur_line;
ui8 *nlt_type3;
int prog_order;
private:
param_sot sot;
int next_tile_part;
private:
int profile;
ui32 tilepart_div; // tilepart division value
bool need_tlm; // true if tlm markers are needed
ui32 num_bytes; // number of bytes in this tile
// used for tile length
};
}
}
#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:69
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::nlt_type3
ui8 * nlt_type3
Definition ojph_tile.h:93
ojph::local::tile::pull
bool pull(line_buf *, ui32 comp_num)
Definition ojph_tile.cpp:405
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:171
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:56
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:501
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:510
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:564
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:312
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:757
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:52
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::ui8
uint8_t ui8
Definition ojph_defs.h:50
ojph_defs.h
ojph_file.h
ojph_params_local.h
ojph::local::param_sot
Definition ojph_params_local.h:925
ojph::local::param_tlm
Definition ojph_params_local.h:962
ojph::rect
Definition ojph_base.h:65