Loading...
Searching...
No Matches
ojph_params_local.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_params_local.h
// Author: Aous Naman
// Date: 28 August 2019
//***************************************************************************/
#ifndef OJPH_PARAMS_LOCAL_H
#define OJPH_PARAMS_LOCAL_H
#include <cstring>
#include <cassert>
#include "ojph_defs.h"
#include "ojph_base.h"
#include "ojph_arch.h"
#include "ojph_message.h"
namespace ojph {
class outfile_base;
class infile_base;
enum PROGRESSION_ORDER : si32
{
OJPH_PO_LRCP = 0,
OJPH_PO_RLCP = 1,
OJPH_PO_RPCL = 2,
OJPH_PO_PCRL = 3,
OJPH_PO_CPRL = 4
};
const char OJPH_PO_STRING_LRCP[] = "LRCP";
const char OJPH_PO_STRING_RLCP[] = "RLCP";
const char OJPH_PO_STRING_RPCL[] = "RPCL";
const char OJPH_PO_STRING_PCRL[] = "PCRL";
const char OJPH_PO_STRING_CPRL[] = "CPRL";
enum OJPH_PROFILE_NUM : si32
{
OJPH_PN_UNDEFINED = 0,
OJPH_PN_PROFILE0 = 1,
OJPH_PN_PROFILE1 = 2,
OJPH_PN_CINEMA2K = 3,
OJPH_PN_CINEMA4K = 4,
OJPH_PN_CINEMAS2K = 5,
OJPH_PN_CINEMAS4K = 6,
OJPH_PN_BROADCAST = 7,
OJPH_PN_IMF = 8
};
const char OJPH_PN_STRING_PROFILE0[] = "PROFILE0";
const char OJPH_PN_STRING_PROFILE1[] = "PROFILE1";
const char OJPH_PN_STRING_CINEMA2K[] = "CINEMA2K";
const char OJPH_PN_STRING_CINEMA4K[] = "CINEMA4K";
const char OJPH_PN_STRING_CINEMAS2K[] = "CINEMAS2K";
const char OJPH_PN_STRING_CINEMAS4K[] = "CINEMAS4K";
const char OJPH_PN_STRING_BROADCAST[] = "BROADCAST";
const char OJPH_PN_STRING_IMF[] = "IMF";
enum OJPH_TILEPART_DIVISIONS: ui32 {
OJPH_TILEPART_NO_DIVISIONS = 0x0, // no divisions to tile parts
OJPH_TILEPART_RESOLUTIONS = 0x1,
OJPH_TILEPART_COMPONENTS = 0x2,
OJPH_TILEPART_LAYERS = 0x4, // these are meaningless with HTJ2K
OJPH_TILEPART_MASK = 0x3, // mask used for testing
};
namespace local {
//defined here
struct param_siz;
struct param_cod;
struct param_qcd;
struct param_cap;
struct param_sot;
struct param_tlm;
struct param_dfs;
struct param_atk;
enum JP2K_MARKER : ui16
{
SOC = 0xFF4F, //start of codestream (required)
CAP = 0xFF50, //extended capability
SIZ = 0xFF51, //image and tile size (required)
COD = 0xFF52, //coding style default (required)
COC = 0xFF53, //coding style component
TLM = 0xFF55, //tile-part lengths
PRF = 0xFF56, //profile
PLM = 0xFF57, //packet length, main header
PLT = 0xFF58, //packet length, tile-part header
CPF = 0xFF59, //corresponding profile values
QCD = 0xFF5C, //qunatization default (required)
QCC = 0xFF5D, //quantization component
RGN = 0xFF5E, //region of interest
POC = 0xFF5F, //progression order change
PPM = 0xFF60, //packed packet headers, main header
PPT = 0xFF61, //packed packet headers, tile-part header
CRG = 0xFF63, //component registration
COM = 0xFF64, //comment
DFS = 0xFF72, //downsampling factor styles
ADS = 0xFF73, //arbitrary decomposition styles
NLT = 0xFF76, //non-linearity point transformation
ATK = 0xFF79, //arbitrary transformation kernels
SOT = 0xFF90, //start of tile-part
SOP = 0xFF91, //start of packet
EPH = 0xFF92, //end of packet
SOD = 0xFF93, //start of data
EOC = 0xFFD9, //end of codestream (required)
};
//
//
//
//
//
struct siz_comp_info
{
ui8 SSiz;
ui8 XRsiz;
ui8 YRsiz;
};
struct param_siz
{
friend ::ojph::param_siz;
public:
enum : ui16 {
RSIZ_NLT_FLAG = 0x200,
RSIZ_HT_FLAG = 0x4000,
RSIZ_EXT_FLAG = 0x8000,
};
public:
param_siz() { init(); }
~param_siz() { destroy(); }
void init()
{
Lsiz = Csiz = 0;
Xsiz = Ysiz = XOsiz = YOsiz = XTsiz = YTsiz = XTOsiz = YTOsiz = 0;
skipped_resolutions = 0;
memset(store, 0, sizeof(store));
ws_kern_support_needed = dfs_support_needed = false;
cod = NULL;
dfs = NULL;
Rsiz = RSIZ_HT_FLAG;
cptr = store;
old_Csiz = sizeof(store) / sizeof(siz_comp_info);
}
void destroy()
{ if (cptr != store) { delete[] cptr; cptr = NULL; } }
void set_num_components(ui32 num_comps)
{
Csiz = (ui16)num_comps;
if (Csiz > old_Csiz)
{
if (cptr != store)
delete[] cptr;
cptr = new siz_comp_info[num_comps];
old_Csiz = Csiz;
}
memset(cptr, 0, sizeof(local::siz_comp_info) * num_comps);
}
void set_comp_info(ui32 comp_num, const point& downsampling,
ui32 bit_depth, bool is_signed)
{
assert(comp_num < Csiz);
assert(downsampling.x != 0 && downsampling.y != 0);
cptr[comp_num].SSiz = (ui8)(bit_depth - 1 + (is_signed ? 0x80 : 0));
cptr[comp_num].XRsiz = (ui8)downsampling.x;
cptr[comp_num].YRsiz = (ui8)downsampling.y;
}
void set_image_extent(point dims) { Xsiz = dims.x; Ysiz = dims.y; }
point get_image_extent() const { return point(Xsiz, Ysiz); }
void set_tile_size(size s) { XTsiz = s.w; YTsiz = s.h; }
size get_tile_size() const { return size(XTsiz, YTsiz); }
void set_image_offset(point offset)
{ XOsiz = offset.x; YOsiz = offset.y; }
point get_image_offset() const
{ return point(XOsiz, YOsiz); }
void set_tile_offset(point offset)
{ XTOsiz = offset.x; YTOsiz = offset.y; }
point get_tile_offset() const
{ return point(XTOsiz, YTOsiz); }
void set_cod(const param_cod& cod) { this->cod = &cod; }
void check_validity()
{
if (Xsiz == 0 || Ysiz == 0 || XTsiz == 0 || YTsiz == 0)
OJPH_ERROR(0x00040001,
"Image extent and/or tile size cannot be zero");
if (XTOsiz > XOsiz || YTOsiz > YOsiz)
OJPH_ERROR(0x00040002,
"Tile offset has to be smaller than the image offset");
if (XTsiz + XTOsiz <= XOsiz || YTsiz + YTOsiz <= YOsiz)
OJPH_ERROR(0x00040003,
"The top left tile must intersect with the image");
if (Xsiz <= XOsiz || Ysiz <= YOsiz)
OJPH_ERROR(0x00040004,
"The image extent must be larger than the image offset");
}
ui16 get_num_components() const { return Csiz; }
ui32 get_bit_depth(ui32 comp_num) const
{
assert(comp_num < Csiz);
return (cptr[comp_num].SSiz & 0x7F) + 1u;
}
bool is_signed(ui32 comp_num) const
{
assert(comp_num < Csiz);
return (cptr[comp_num].SSiz & 0x80) != 0;
}
point get_downsampling(ui32 comp_num) const
{
assert(comp_num < Csiz);
return point(cptr[comp_num].XRsiz, cptr[comp_num].YRsiz);
}
bool write(outfile_base *file);
void read(infile_base *file);
void link(const param_cod* cod)
{ this->cod = cod; }
void link(const param_dfs* dfs)
{ this->dfs = dfs; }
void set_skipped_resolutions(ui32 skipped_resolutions)
{ this->skipped_resolutions = skipped_resolutions; }
ui32 get_width(ui32 comp_num) const
{
assert(comp_num < get_num_components());
ui32 ds = (ui32)cptr[comp_num].XRsiz;
ui32 t = ojph_div_ceil(Xsiz, ds) - ojph_div_ceil(XOsiz, ds);
return t;
}
ui32 get_height(ui32 comp_num) const
{
assert(comp_num < get_num_components());
ui32 ds = (ui32)cptr[comp_num].YRsiz;
ui32 t = ojph_div_ceil(Ysiz, ds) - ojph_div_ceil(YOsiz, ds);
return t;
}
point get_recon_downsampling(ui32 comp_num) const;
point get_recon_size(ui32 comp_num) const;
ui32 get_recon_width(ui32 comp_num) const
{ return get_recon_size(comp_num).x; }
ui32 get_recon_height(ui32 comp_num) const
{ return get_recon_size(comp_num).y; }
bool is_ws_kern_support_needed() { return ws_kern_support_needed; }
bool is_dfs_support_needed() { return dfs_support_needed; }
void set_Rsiz_flag(ui16 flag)
{ Rsiz |= flag; }
void reset_Rsiz_flag(ui16 flag)
{ Rsiz = (ui16)(Rsiz & ~flag); }
private:
ui16 Lsiz;
ui16 Rsiz;
ui32 Xsiz;
ui32 Ysiz;
ui32 XOsiz;
ui32 YOsiz;
ui32 XTsiz;
ui32 YTsiz;
ui32 XTOsiz;
ui32 YTOsiz;
ui16 Csiz;
siz_comp_info* cptr;
private:
ui32 skipped_resolutions;
int old_Csiz;
siz_comp_info store[4];
bool ws_kern_support_needed;
bool dfs_support_needed;
const param_cod* cod;
const param_dfs* dfs;
param_siz(const param_siz&) = delete; //prevent copy constructor
param_siz& operator=(const param_siz&) = delete; //prevent copy
};
//
//
//
//
//
struct cod_SPcod
{
cod_SPcod() {
num_decomp = 5;
block_width = 4; // 64
block_height = 4; // 64
block_style = 0x40; // HT mode
wavelet_trans = 0; // reversible 5 / 3
memset(precinct_size, 0, sizeof(precinct_size));
}
ui8 num_decomp;
ui8 block_width;
ui8 block_height;
ui8 block_style;
ui8 wavelet_trans;
ui8 precinct_size[33]; //num_decomp is in [0,32]
size get_log_block_dims() const
{ return size(block_width + 2, block_height + 2); }
size get_block_dims() const
{ size t = get_log_block_dims(); return size(1 << t.w, 1 << t.h); }
size get_log_precinct_size(ui32 res_num) const
{
assert(res_num <= num_decomp);
size ps(precinct_size[res_num] & 0xF, precinct_size[res_num] >> 4);
return ps;
}
};
struct cod_SGcod
{
cod_SGcod() : prog_order(OJPH_PO_RPCL), num_layers(1), mc_trans(0) {}
ui8 prog_order;
ui16 num_layers;
ui8 mc_trans;
};
struct param_cod
{
// serves for both COD and COC markers
friend ::ojph::param_cod;
enum default_comp_num : ui16 {
OJPH_COD_UNKNOWN = 65534,
OJPH_COD_DEFAULT = 65535
};
enum BLOCK_CODING_STYLES {
VERT_CAUSAL_MODE = 0x8,
HT_MODE = 0x40
};
enum cod_type : ui8 {
UNDEFINED = 0,
COD_MAIN = 1,
COC_MAIN = 2,
COD_TILE = 3, // not implemented
COC_TILE = 4 // not implemented
};
enum dwt_type : ui8 {
DWT_IRV97 = 0,
DWT_REV53 = 1,
};
public: // COD_MAIN and COC_MAIN common functions
param_cod(param_cod* top_cod = NULL, ui16 comp_idx = OJPH_COD_DEFAULT)
{ avail = NULL; init(top_cod, comp_idx); }
~param_cod() { destroy(); }
void restart()
{
param_cod** p = &avail; // move next to the end of avail
while (*p != NULL)
p = &((*p)->next);
*p = next;
this->init(top_cod, OJPH_COD_DEFAULT);
}
void set_reversible(bool reversible)
{
assert(type == UNDEFINED || type == COD_MAIN || type == COC_MAIN);
SPcod.wavelet_trans = reversible ? DWT_REV53 : DWT_IRV97;
}
void employ_color_transform(ui8 val)
{
assert(val == 0 || val == 1);
assert(type == UNDEFINED || type == COD_MAIN);
SGCod.mc_trans = val;
}
void check_validity(const param_siz& siz)
{
assert(type == COD_MAIN);
//check that colour transform and match number of components and
// downsampling
int num_comps = siz.get_num_components();
if (SGCod.mc_trans == 1 && num_comps < 3)
OJPH_ERROR(0x00040011,
"color transform can only be employed when the image has 3 or "
"more color components");
if (SGCod.mc_trans == 1)
{
bool test_signedness = false;
bool test_bit_depth = false;
bool test_downsampling = false;
point p = siz.get_downsampling(0);
ui32 bit_depth = siz.get_bit_depth(0);
bool is_signed = siz.is_signed(0);
for (ui32 i = 1; i < 3; ++i)
{
point p1 = siz.get_downsampling(i);
test_downsampling = test_downsampling
|| (p.x != p1.x || p.y != p1.y);
test_bit_depth = test_bit_depth
|| (bit_depth != siz.get_bit_depth(i));
test_signedness = test_signedness
|| (is_signed != siz.is_signed(i));
}
if (test_downsampling)
OJPH_ERROR(0x00040012,
"when color transform is used, the first 3 colour components "
"must have the same downsampling factor.");
if (test_bit_depth)
OJPH_ERROR(0x00040014,
"when color transform is used, the first 3 colour components "
"must have the same bit depth.");
if (test_signedness)
OJPH_ERROR(0x00040015,
"when color transform is used, the first 3 colour components "
"must have the same signedness (signed or unsigned).");
}
//check the progression order matches downsampling
if (SGCod.prog_order == OJPH_PO_RPCL ||
SGCod.prog_order == OJPH_PO_PCRL)
{
ui32 num_comps = siz.get_num_components();
for (ui32 i = 0; i < num_comps; ++i)
{
point r = siz.get_downsampling(i);
if (r.x & (r.x - 1) || r.y & (r.y - 1))
OJPH_ERROR(0x00040013, "For RPCL and PCRL progression orders,"
"component downsampling factors have to be powers of 2");
}
}
}
ui8 get_num_decompositions() const
{
if (type == COD_MAIN)
return SPcod.num_decomp;
else if (type == COC_MAIN)
{
if (is_dfs_defined())
return top_cod->get_num_decompositions();
else
return SPcod.num_decomp;
}
else {
assert(0);
return 0; // just in case
}
}
size get_block_dims() const
{ return SPcod.get_block_dims(); }
size get_log_block_dims() const
{ return SPcod.get_log_block_dims(); }
ui8 get_wavelet_kern() const
{ return SPcod.wavelet_trans; }
bool is_reversible() const;
bool is_employing_color_transform() const
{
if (type == COD_MAIN || type == COD_TILE)
return (SGCod.mc_trans == 1);
else
return top_cod->is_employing_color_transform();
}
size get_precinct_size(ui32 res_num) const
{
size t = get_log_precinct_size(res_num);
return size(1 << t.w, 1 << t.h);
}
size get_log_precinct_size(ui32 res_num) const
{
if (Scod & 1)
return SPcod.get_log_precinct_size(res_num);
else
return size(15, 15);
}
bool packets_may_use_sop() const
{
if (type == COD_MAIN || type == COD_TILE)
return (Scod & 2) == 2;
return false;
}
bool packets_use_eph() const
{
if (type == COD_MAIN || type == COD_TILE)
return (Scod & 4) == 4;
return false;
}
bool get_block_vertical_causality() const
{ return (SPcod.block_style & local::param_cod::VERT_CAUSAL_MODE) != 0; }
bool write(outfile_base *file);
bool write_coc(outfile_base *file, ui32 num_comps);
void read(infile_base *file);
void read_coc(infile_base* file, ui32 num_comps, param_cod* top_cod);
void update_atk(param_atk* atk);
const param_cod* get_coc(ui32 comp_idx) const;
param_cod* get_coc(ui32 comp_idx);
param_cod* add_coc_object(ui32 comp_idx);
const param_atk* access_atk() const { return atk; }
public: // COC_MAIN only functions
bool is_dfs_defined() const
{ return (SPcod.num_decomp & 0x80) != 0; }
ui16 get_dfs_index() const // cannot be more than 15
{ return SPcod.num_decomp & 0xF; }
ui32 get_comp_idx() const
{
assert((type == COC_MAIN && comp_idx != OJPH_COD_DEFAULT) ||
(type == COD_MAIN && comp_idx == OJPH_COD_DEFAULT));
return comp_idx;
}
private:
void init(param_cod* top_cod, ui16 comp_idx)
{
type = top_cod ? COC_MAIN : COD_MAIN;
Lcod = 0;
Scod = 0;
next = NULL;
atk = NULL;
this->top_cod = top_cod;
this->comp_idx = comp_idx;
}
void destroy() {
if (avail)
delete avail;
if (next) {
delete next;
next = NULL;
}
}
private:
bool internal_write_coc(outfile_base *file, ui32 num_comps);
private: // Common variables
cod_type type; // The type of this cod structure
ui16 Lcod; // serves as Lcod and Scod
ui8 Scod; // serves as Scod and Scoc
cod_SGcod SGCod; // Used in COD and copied to COC
cod_SPcod SPcod; // serves as SPcod and SPcoc
param_cod* next; // to chain coc parameters to cod
const param_atk* atk; // used to read transform information
private: // COC only variables
param_cod* top_cod; // parent COD structure
ui16 comp_idx; // component index of this COC structure
private: // on restart, already allocated param_cod objs are stored here
param_cod* avail;
};
//
//
//
//
//
struct param_qcd
{
// serves for both QCD and QCC markers
friend ::ojph::param_qcd;
enum default_comp_num : ui16 {
OJPH_QCD_UNKNOWN = 65534,
OJPH_QCD_DEFAULT = 65535
};
enum qcd_type : ui8 {
UNDEFINED = 0,
QCD_MAIN = 1,
QCC_MAIN = 2,
QCD_TILE = 3, // not implemented
QCC_TILE = 4 // not implemented
};
public:
param_qcd(param_qcd* top_qcd = NULL, ui16 comp_idx = OJPH_QCD_DEFAULT)
{ avail = NULL; init(top_qcd, comp_idx); }
~param_qcd() { destroy(); }
void restart()
{
param_qcd** p = &avail; // move next to the end of avail
while (*p != NULL)
p = &((*p)->next);
*p = next;
this->init(top_qcd, OJPH_QCD_DEFAULT);
}
void check_validity(const param_siz& siz, const param_cod& cod);
void set_delta(float delta) { base_delta = delta; }
void set_delta(ui32 comp_idx, float delta);
ui32 get_num_guard_bits() const;
ui32 get_MAGB() const;
ui32 get_Kmax(const param_dfs* dfs, ui32 num_decompositions,
ui32 resolution, ui32 subband) const;
ui32 propose_precision(const param_cod* cod) const;
float get_irrev_delta(const param_dfs* dfs,
ui32 num_decompositions, ui32 comp_num,
ui32 resolution, ui32 subband) const;
bool write(outfile_base *file);
bool write_qcc(outfile_base *file, ui32 num_comps);
void read(infile_base *file);
void read_qcc(infile_base *file, ui32 num_comps);
param_qcd* get_qcc(ui32 comp_idx);
const param_qcd* get_qcc(ui32 comp_idx) const;
param_qcd* add_qcc_object(ui32 comp_idx);
ui16 get_comp_idx() const { return comp_idx; }
private:
void init(param_qcd* top_qcd, ui16 comp_idx)
{
type = top_qcd ? QCC_MAIN : QCD_MAIN;
Lqcd = 0;
Sqcd = 0;
memset(&SPqcd, 0, sizeof(SPqcd));
num_subbands = 0;
base_delta = -1.0f;
enabled = true;
next = NULL;
this->top_qcd = top_qcd;
this->comp_idx = comp_idx;
}
void destroy() {
if (avail)
delete avail;
if (next)
{
delete next;
next = NULL;
}
}
private:
void set_rev_quant(ui32 num_decomps, ui32 bit_depth,
bool is_employing_color_transform);
void set_irrev_quant(ui32 num_decomps);
ui32 get_largest_Kmax() const;
bool internal_write_qcc(outfile_base *file, ui32 num_comps);
void trim_non_existing_components(ui32 num_comps);
ui8 decode_SPqcd(ui8 v) const
{ return (ui8)(v >> 3); }
ui8 encode_SPqcd(ui8 v) const
{ return (ui8)(v << 3); }
private: // QCD variables
qcd_type type;
ui16 Lqcd;
ui8 Sqcd;
union
{
ui8 u8[97];
ui16 u16[97];
} SPqcd;
ui32 num_subbands; // number of subbands
float base_delta; // base quantization step size -- all other
// step sizes are derived from it.
bool enabled; // enabled if two, and ignored if false
param_qcd *next; // pointer to create chains of qcc marker segments
param_qcd *top_qcd; // pointer to the top QCD (this is the default)
private: // QCC only variables
ui16 comp_idx;
private: // on restart, already allocated param_qcd objs are stored here
param_qcd* avail;
};
//
//
//
//
//
// data structures used by param_nlt
struct param_nlt
{
using special_comp_num = ojph::param_nlt::special_comp_num;
using nonlinearity = ojph::param_nlt::nonlinearity;
public:
param_nlt() { avail = NULL; init(); }
~param_nlt() { destroy(); }
void restart()
{
param_nlt** p = &avail; // move next to the end of avail
while (*p != NULL)
p = &((*p)->next);
*p = next;
this->init();
}
void check_validity(param_siz& siz);
void set_nonlinear_transform(ui32 comp_num, ui8 nl_type);
bool get_nonlinear_transform(ui32 comp_num, ui8& bit_depth,
bool& is_signed, ui8& nl_type) const;
bool write(outfile_base* file) const;
void read(infile_base* file);
private:
void init()
{
Lnlt = 6;
Cnlt = special_comp_num::ALL_COMPS; // default
BDnlt = 0;
Tnlt = nonlinearity::OJPH_NLT_UNDEFINED;
enabled = false; next = NULL;
}
void destroy()
{
if (avail)
delete avail;
if (next) {
delete next;
next = NULL;
}
}
private:
const param_nlt* get_nlt_object(ui32 comp_num) const;
param_nlt* get_nlt_object(ui32 comp_num);
param_nlt* add_object(ui32 comp_num);
bool is_any_enabled() const;
void trim_non_existing_components(ui32 num_comps);
private:
ui16 Lnlt; // length of the marker segment excluding marker
ui16 Cnlt; // Component involved in the transformation
ui8 BDnlt; // Decoded image component bit depth parameter
ui8 Tnlt; // Type of non-linearity
bool enabled; // true if this object is used
param_nlt* next; // for chaining NLT markers
// The top level param_nlt object is not allocated, but as part of
// codestream, and is used to manage allocated next objects.
// next holds a list of param_nlt objects, which are managed by the top
// param_nlt object.
private: // on restart, already allocated param_nlt objs are stored here
param_nlt* avail;
};
//
//
//
//
//
struct param_cap
{
public:
param_cap()
{
memset(this, 0, sizeof(param_cap));
Lcap = 8;
Pcap = 0x00020000; //for jph, Pcap^15 must be set, the 15th MSB
}
void check_validity(const param_cod& cod, const param_qcd& qcd)
{
if (cod.get_wavelet_kern() == param_cod::DWT_REV53)
Ccap[0] &= 0xFFDF;
else
Ccap[0] |= 0x0020;
Ccap[0] &= 0xFFE0;
ui32 Bp = 0;
ui32 B = qcd.get_MAGB();
if (B <= 8)
Bp = 0;
else if (B < 28)
Bp = B - 8;
else
Bp = 13 + (B >> 2);
Ccap[0] = (ui16)(Ccap[0] | (ui16)Bp);
}
bool write(outfile_base *file);
void read(infile_base *file);
private:
ui16 Lcap;
ui32 Pcap;
ui16 Ccap[32]; //a maximum of 32
};
//
//
//
//
//
struct param_sot
{
public:
void init(ui32 payload_length = 0, ui16 tile_idx = 0,
ui8 tile_part_index = 0, ui8 num_tile_parts = 0)
{
Lsot = 10;
Psot = payload_length + 12; //total = payload + SOT marker
Isot = tile_idx;
TPsot = tile_part_index;
TNsot = num_tile_parts;
}
bool write(outfile_base *file, ui32 payload_len);
bool write(outfile_base *file, ui32 payload_len, ui8 TPsot, ui8 TNsot);
bool read(infile_base *file, bool resilient);
ui16 get_tile_index() const { return Isot; }
ui32 get_payload_length() const { return Psot > 0 ? Psot - 12 : 0; }
ui8 get_tile_part_index() const { return TPsot; }
ui8 get_num_tile_parts() const { return TNsot; }
private:
ui16 Lsot;
ui16 Isot;
ui32 Psot;
ui8 TPsot;
ui8 TNsot;
};
//
//
//
//
//
struct param_tlm
{
struct Ttlm_Ptlm_pair
{
ui16 Ttlm;
ui32 Ptlm;
};
public:
param_tlm() { pairs = NULL; num_pairs = 0; next_pair_index = 0; };
void init(ui32 num_pairs, Ttlm_Ptlm_pair* store);
void set_next_pair(ui16 Ttlm, ui32 Ptlm);
bool write(outfile_base *file);
private:
ui16 Ltlm;
ui8 Ztlm;
ui8 Stlm;
Ttlm_Ptlm_pair* pairs;
ui32 num_pairs;
ui32 next_pair_index;
};
//
//
//
//
//
struct param_dfs
{
public:
enum dfs_dwt_type : ui8 {
NO_DWT = 0, // no wavelet transform
BIDIR_DWT = 1, // bidirectional DWT (this the conventional DWT)
HORZ_DWT = 2, // horizontal only DWT transform
VERT_DWT = 3, // vertical only DWT transform
};
public: // member functions
param_dfs() { avail = NULL; init(); }
~param_dfs() { destroy(); }
void restart()
{
param_dfs** p = &avail; // move next to the end of avail
while (*p != NULL)
p = &((*p)->next);
*p = next;
this->init();
}
bool read(infile_base *file);
bool exists() const { return Ldfs != 0; }
// get_dfs return a dfs structure Sdfs == index, or NULL if not found
const param_dfs* get_dfs(int index) const;
// decomp_level is the decomposition level, starting from 1 for highest
// resolution to num_decomps for the coarsest resolution
dfs_dwt_type get_dwt_type(ui32 decomp_level) const;
ui32 get_subband_idx(ui32 num_decompositions, ui32 resolution,
ui32 subband) const;
point get_res_downsamp(ui32 skipped_resolutions) const;
private:
void init()
{ Ldfs = Sdfs = Ids = 0; memset(Ddfs, 0, sizeof(Ddfs)); next = NULL; }
void destroy()
{
if (avail)
delete avail;
if (next) {
delete next;
next = NULL;
}
}
private: // member variables
ui16 Ldfs; // length of the segment marker
ui16 Sdfs; // index of this DFS marker segment
ui8 Ids; // number of elements in Ddfs, 2 bits per sub-level
ui8 Ddfs[8]; // a string defining number of decomposition sub-levels
// 8 bytes should be enough for 32 levels
param_dfs* next; // used for linking other dfs segments
private: // on restart, already allocated param_dfs objs are stored here
param_dfs* avail;
};
//
//
//
//
//
// data structures used by param_atk
union lifting_step {
struct irv_data {
// si8 Oatk; // only for arbitrary filter
// ui8 LCatk; // number of lifting coefficients in a step
float Aatk; // lifting coefficient
};
struct rev_data {
// si8 Oatk; // only for arbitrary filter, offset of filter
ui8 Eatk; // only for reversible, epsilon, the power of 2
si16 Batk; // only for reversible, beta, the additive residue
// ui8 LCatk; // number of lifting coefficients in a step
si16 Aatk; // lifting coefficient
};
irv_data irv;
rev_data rev;
};
struct param_atk
{
// Limitations:
// Arbitrary filters (ARB) are not supported
// Only one coefficient per step -- first order filter
// Only even-indexed subsequence in first reconstruction step,
// m_init = 0 is supported
public: // member functions
param_atk()
{
d = d_store;
max_steps = sizeof(d_store) / sizeof(lifting_step);
init(NULL);
}
~param_atk()
{
if (avail) {
delete avail;
avail = NULL;
}
if (next) {
delete next;
next = NULL;
}
if (d != NULL && d != d_store) {
delete[] d;
d = d_store;
max_steps = sizeof(d_store) / sizeof(lifting_step);
}
}
void restart()
{
assert(top_atk == NULL);
Latk = Satk = 0;
Katk = 0.0f;
Natk = 0;
if (d == NULL || d == d_store) {
d = d_store;
max_steps = sizeof(d_store) / sizeof(lifting_step);
}
memset(d, 0, max_steps * sizeof(lifting_step));
param_atk** p = &avail; // move next to the end of avail
while (*p != NULL)
p = &((*p)->next);
*p = next;
next = NULL;
}
bool read(infile_base *file);
ui8 get_index() const { return (ui8)(Satk & 0xFF); }
int get_coeff_type() const { return (Satk >> 8) & 0x7; }
bool is_whole_sample() const { return (Satk & 0x800) != 0; }
bool is_reversible() const { return (Satk & 0x1000) != 0; }
bool is_m_init0() const { return (Satk & 0x2000) == 0; }
bool is_using_ws_extension() const { return (Satk & 0x4000) != 0; }
param_atk* get_atk(int index);
const lifting_step* get_step(ui32 s) const
{ assert(s < Natk); return d + s; }
ui32 get_num_steps() const { return Natk; }
float get_K() const { return Katk; }
private:
void init(param_atk* top_atk)
{
Latk = Satk = 0;
Katk = 0.0f;
Natk = 0;
if (d == NULL || d == d_store) {
d = d_store;
max_steps = sizeof(d_store) / sizeof(lifting_step);
}
memset(d, 0, max_steps * sizeof(lifting_step));
next = NULL;
this->top_atk = top_atk;
avail = NULL;
}
private:
bool read_coefficient(infile_base *file, float &K, si32& bytes);
bool read_coefficient(infile_base *file, si16 &K, si32& bytes);
void init_irv97();
void init_rev53();
param_atk* add_object();
private: // member variables
ui16 Latk; // structure length
ui16 Satk; // carries a variety of information
float Katk; // only for irreversible scaling factor K
ui8 Natk; // number of lifting steps
lifting_step* d; // pointer to data, initialized to d_store
ui32 max_steps; // maximum number of steps without memory allocation
lifting_step d_store[6]; // lifting step coefficient
param_atk* next; // used for chaining if more than one atk segment
// exist in the codestream
param_atk* top_atk;// This is the top level atk, from which all atk
// objects are derived
private: // on restart, already allocated param_atk objs are stored here
param_atk* avail;
};
} // !local namespace
} // !ojph namespace
#endif // !OJPH_PARAMS_LOCAL_H
ojph::infile_base
Definition ojph_file.h:267
ojph::local::resolution
Definition ojph_resolution.h:62
ojph::local::subband
Definition ojph_subband.h:63
ojph::outfile_base
Definition ojph_file.h:75
ojph::param_nlt::nonlinearity
nonlinearity
Definition ojph_params.h:248
ojph::param_nlt::special_comp_num
special_comp_num
Definition ojph_params.h:247
ojph::local::JP2K_MARKER
JP2K_MARKER
Definition ojph_params_local.h:120
ojph::local::SOD
@ SOD
Definition ojph_params_local.h:146
ojph::local::SIZ
@ SIZ
Definition ojph_params_local.h:123
ojph::local::ATK
@ ATK
Definition ojph_params_local.h:142
ojph::local::PRF
@ PRF
Definition ojph_params_local.h:127
ojph::local::NLT
@ NLT
Definition ojph_params_local.h:141
ojph::local::TLM
@ TLM
Definition ojph_params_local.h:126
ojph::local::PPM
@ PPM
Definition ojph_params_local.h:135
ojph::local::SOP
@ SOP
Definition ojph_params_local.h:144
ojph::local::QCC
@ QCC
Definition ojph_params_local.h:132
ojph::local::CRG
@ CRG
Definition ojph_params_local.h:137
ojph::local::ADS
@ ADS
Definition ojph_params_local.h:140
ojph::local::DFS
@ DFS
Definition ojph_params_local.h:139
ojph::local::RGN
@ RGN
Definition ojph_params_local.h:133
ojph::local::SOC
@ SOC
Definition ojph_params_local.h:121
ojph::local::QCD
@ QCD
Definition ojph_params_local.h:131
ojph::local::EPH
@ EPH
Definition ojph_params_local.h:145
ojph::local::PPT
@ PPT
Definition ojph_params_local.h:136
ojph::local::COC
@ COC
Definition ojph_params_local.h:125
ojph::local::POC
@ POC
Definition ojph_params_local.h:134
ojph::local::PLT
@ PLT
Definition ojph_params_local.h:129
ojph::local::COD
@ COD
Definition ojph_params_local.h:124
ojph::local::CAP
@ CAP
Definition ojph_params_local.h:122
ojph::local::CPF
@ CPF
Definition ojph_params_local.h:130
ojph::local::PLM
@ PLM
Definition ojph_params_local.h:128
ojph::local::SOT
@ SOT
Definition ojph_params_local.h:143
ojph::local::COM
@ COM
Definition ojph_params_local.h:138
ojph::local::EOC
@ EOC
Definition ojph_params_local.h:147
ojph
Definition ojph_img_io.h:52
ojph::OJPH_PN_STRING_BROADCAST
const char OJPH_PN_STRING_BROADCAST[]
Definition ojph_params_local.h:94
ojph::OJPH_PN_STRING_CINEMAS4K
const char OJPH_PN_STRING_CINEMAS4K[]
Definition ojph_params_local.h:93
ojph::OJPH_PO_STRING_PCRL
const char OJPH_PO_STRING_PCRL[]
Definition ojph_params_local.h:70
ojph::PROGRESSION_ORDER
PROGRESSION_ORDER
Definition ojph_params_local.h:58
ojph::OJPH_PO_LRCP
@ OJPH_PO_LRCP
Definition ojph_params_local.h:59
ojph::OJPH_PO_RLCP
@ OJPH_PO_RLCP
Definition ojph_params_local.h:60
ojph::OJPH_PO_CPRL
@ OJPH_PO_CPRL
Definition ojph_params_local.h:63
ojph::OJPH_PO_PCRL
@ OJPH_PO_PCRL
Definition ojph_params_local.h:62
ojph::OJPH_PO_RPCL
@ OJPH_PO_RPCL
Definition ojph_params_local.h:61
ojph::OJPH_PN_STRING_IMF
const char OJPH_PN_STRING_IMF[]
Definition ojph_params_local.h:95
ojph::OJPH_PN_STRING_CINEMA4K
const char OJPH_PN_STRING_CINEMA4K[]
Definition ojph_params_local.h:91
ojph::ui16
uint16_t ui16
Definition ojph_defs.h:52
ojph::OJPH_PO_STRING_RLCP
const char OJPH_PO_STRING_RLCP[]
Definition ojph_params_local.h:68
ojph::OJPH_PN_STRING_CINEMA2K
const char OJPH_PN_STRING_CINEMA2K[]
Definition ojph_params_local.h:90
ojph::OJPH_PO_STRING_RPCL
const char OJPH_PO_STRING_RPCL[]
Definition ojph_params_local.h:69
ojph::OJPH_TILEPART_DIVISIONS
OJPH_TILEPART_DIVISIONS
Definition ojph_params_local.h:98
ojph::OJPH_TILEPART_RESOLUTIONS
@ OJPH_TILEPART_RESOLUTIONS
Definition ojph_params_local.h:100
ojph::OJPH_TILEPART_NO_DIVISIONS
@ OJPH_TILEPART_NO_DIVISIONS
Definition ojph_params_local.h:99
ojph::OJPH_TILEPART_LAYERS
@ OJPH_TILEPART_LAYERS
Definition ojph_params_local.h:102
ojph::OJPH_TILEPART_COMPONENTS
@ OJPH_TILEPART_COMPONENTS
Definition ojph_params_local.h:101
ojph::OJPH_TILEPART_MASK
@ OJPH_TILEPART_MASK
Definition ojph_params_local.h:103
ojph::OJPH_PO_STRING_CPRL
const char OJPH_PO_STRING_CPRL[]
Definition ojph_params_local.h:71
ojph::OJPH_PROFILE_NUM
OJPH_PROFILE_NUM
Definition ojph_params_local.h:75
ojph::OJPH_PN_PROFILE1
@ OJPH_PN_PROFILE1
Definition ojph_params_local.h:78
ojph::OJPH_PN_BROADCAST
@ OJPH_PN_BROADCAST
Definition ojph_params_local.h:83
ojph::OJPH_PN_CINEMA4K
@ OJPH_PN_CINEMA4K
Definition ojph_params_local.h:80
ojph::OJPH_PN_CINEMA2K
@ OJPH_PN_CINEMA2K
Definition ojph_params_local.h:79
ojph::OJPH_PN_CINEMAS4K
@ OJPH_PN_CINEMAS4K
Definition ojph_params_local.h:82
ojph::OJPH_PN_UNDEFINED
@ OJPH_PN_UNDEFINED
Definition ojph_params_local.h:76
ojph::OJPH_PN_IMF
@ OJPH_PN_IMF
Definition ojph_params_local.h:84
ojph::OJPH_PN_CINEMAS2K
@ OJPH_PN_CINEMAS2K
Definition ojph_params_local.h:81
ojph::OJPH_PN_PROFILE0
@ OJPH_PN_PROFILE0
Definition ojph_params_local.h:77
ojph::si32
int32_t si32
Definition ojph_defs.h:55
ojph::OJPH_PN_STRING_PROFILE0
const char OJPH_PN_STRING_PROFILE0[]
Definition ojph_params_local.h:88
ojph::si16
int16_t si16
Definition ojph_defs.h:53
ojph::OJPH_PN_STRING_CINEMAS2K
const char OJPH_PN_STRING_CINEMAS2K[]
Definition ojph_params_local.h:92
ojph::ui32
uint32_t ui32
Definition ojph_defs.h:54
ojph::ui8
uint8_t ui8
Definition ojph_defs.h:50
ojph::OJPH_PO_STRING_LRCP
const char OJPH_PO_STRING_LRCP[]
Definition ojph_params_local.h:67
ojph::OJPH_PN_STRING_PROFILE1
const char OJPH_PN_STRING_PROFILE1[]
Definition ojph_params_local.h:89
ojph_arch.h
ojph_base.h
ojph_defs.h
ojph_div_ceil
#define ojph_div_ceil(a, b)
Definition ojph_defs.h:70
ojph_message.h
OJPH_ERROR
#define OJPH_ERROR(t,...)
Definition ojph_message.h:288
ojph::local::cod_SGcod
Definition ojph_params_local.h:376
ojph::local::cod_SGcod::num_layers
ui16 num_layers
Definition ojph_params_local.h:379
ojph::local::cod_SGcod::mc_trans
ui8 mc_trans
Definition ojph_params_local.h:380
ojph::local::cod_SGcod::cod_SGcod
cod_SGcod()
Definition ojph_params_local.h:377
ojph::local::cod_SGcod::prog_order
ui8 prog_order
Definition ojph_params_local.h:378
ojph::local::cod_SPcod
Definition ojph_params_local.h:345
ojph::local::cod_SPcod::block_width
ui8 block_width
Definition ojph_params_local.h:356
ojph::local::cod_SPcod::cod_SPcod
cod_SPcod()
Definition ojph_params_local.h:346
ojph::local::cod_SPcod::get_log_precinct_size
size get_log_precinct_size(ui32 res_num) const
Definition ojph_params_local.h:366
ojph::local::cod_SPcod::get_block_dims
size get_block_dims() const
Definition ojph_params_local.h:364
ojph::local::cod_SPcod::block_style
ui8 block_style
Definition ojph_params_local.h:358
ojph::local::cod_SPcod::precinct_size
ui8 precinct_size[33]
Definition ojph_params_local.h:360
ojph::local::cod_SPcod::get_log_block_dims
size get_log_block_dims() const
Definition ojph_params_local.h:362
ojph::local::cod_SPcod::num_decomp
ui8 num_decomp
Definition ojph_params_local.h:355
ojph::local::cod_SPcod::wavelet_trans
ui8 wavelet_trans
Definition ojph_params_local.h:359
ojph::local::cod_SPcod::block_height
ui8 block_height
Definition ojph_params_local.h:357
ojph::local::lifting_step::irv_data
Definition ojph_params_local.h:1066
ojph::local::lifting_step::irv_data::Aatk
float Aatk
Definition ojph_params_local.h:1069
ojph::local::lifting_step::rev_data
Definition ojph_params_local.h:1072
ojph::local::lifting_step::rev_data::Aatk
si16 Aatk
Definition ojph_params_local.h:1077
ojph::local::lifting_step::rev_data::Eatk
ui8 Eatk
Definition ojph_params_local.h:1074
ojph::local::lifting_step::rev_data::Batk
si16 Batk
Definition ojph_params_local.h:1075
ojph::local::param_atk
Definition ojph_params_local.h:1085
ojph::local::param_atk::Natk
ui8 Natk
Definition ojph_params_local.h:1179
ojph::local::param_atk::read_coefficient
bool read_coefficient(infile_base *file, float &K, si32 &bytes)
Definition ojph_params.cpp:2434
ojph::local::param_atk::get_K
float get_K() const
Definition ojph_params_local.h:1149
ojph::local::param_atk::Katk
float Katk
Definition ojph_params_local.h:1178
ojph::local::param_atk::d
lifting_step * d
Definition ojph_params_local.h:1180
ojph::local::param_atk::is_m_init0
bool is_m_init0() const
Definition ojph_params_local.h:1143
ojph::local::param_atk::Satk
ui16 Satk
Definition ojph_params_local.h:1177
ojph::local::param_atk::d_store
lifting_step d_store[6]
Definition ojph_params_local.h:1182
ojph::local::param_atk::top_atk
param_atk * top_atk
Definition ojph_params_local.h:1185
ojph::local::param_atk::init
void init(param_atk *top_atk)
Definition ojph_params_local.h:1153
ojph::local::param_atk::param_atk
param_atk()
Definition ojph_params_local.h:1092
ojph::local::param_atk::get_num_steps
ui32 get_num_steps() const
Definition ojph_params_local.h:1148
ojph::local::param_atk::is_reversible
bool is_reversible() const
Definition ojph_params_local.h:1142
ojph::local::param_atk::read
bool read(infile_base *file)
Definition ojph_params.cpp:2521
ojph::local::param_atk::add_object
param_atk * add_object()
Definition ojph_params.cpp:2650
ojph::local::param_atk::get_coeff_type
int get_coeff_type() const
Definition ojph_params_local.h:1140
ojph::local::param_atk::get_index
ui8 get_index() const
Definition ojph_params_local.h:1139
ojph::local::param_atk::Latk
ui16 Latk
Definition ojph_params_local.h:1176
ojph::local::param_atk::avail
param_atk * avail
Definition ojph_params_local.h:1189
ojph::local::param_atk::next
param_atk * next
Definition ojph_params_local.h:1183
ojph::local::param_atk::get_atk
param_atk * get_atk(int index)
Definition ojph_params.cpp:2401
ojph::local::param_atk::is_whole_sample
bool is_whole_sample() const
Definition ojph_params_local.h:1141
ojph::local::param_atk::get_step
const lifting_step * get_step(ui32 s) const
Definition ojph_params_local.h:1146
ojph::local::param_atk::max_steps
ui32 max_steps
Definition ojph_params_local.h:1181
ojph::local::param_atk::init_rev53
void init_rev53()
Definition ojph_params.cpp:2635
ojph::local::param_atk::restart
void restart()
Definition ojph_params_local.h:1116
ojph::local::param_atk::init_irv97
void init_irv97()
Definition ojph_params.cpp:2621
ojph::local::param_atk::~param_atk
~param_atk()
Definition ojph_params_local.h:1098
ojph::local::param_atk::is_using_ws_extension
bool is_using_ws_extension() const
Definition ojph_params_local.h:1144
ojph::local::param_cap::param_cap
param_cap()
Definition ojph_params_local.h:882
ojph::local::param_cap::check_validity
void check_validity(const param_cod &cod, const param_qcd &qcd)
Definition ojph_params_local.h:889
ojph::local::param_cap::read
void read(infile_base *file)
Definition ojph_params.cpp:809
ojph::local::param_cap::Pcap
ui32 Pcap
Definition ojph_params_local.h:912
ojph::local::param_cap::write
bool write(outfile_base *file)
Definition ojph_params.cpp:786
ojph::local::param_cap::Ccap
ui16 Ccap[32]
Definition ojph_params_local.h:913
ojph::local::param_cap::Lcap
ui16 Lcap
Definition ojph_params_local.h:911
ojph::local::param_cod
Definition ojph_params_local.h:385
ojph::local::param_cod::check_validity
void check_validity(const param_siz &siz)
Definition ojph_params_local.h:443
ojph::local::param_cod::comp_idx
ui16 comp_idx
Definition ojph_params_local.h:663
ojph::local::param_cod::cod_type
cod_type
Definition ojph_params_local.h:399
ojph::local::param_cod::COD_MAIN
@ COD_MAIN
Definition ojph_params_local.h:401
ojph::local::param_cod::COD_TILE
@ COD_TILE
Definition ojph_params_local.h:403
ojph::local::param_cod::COC_TILE
@ COC_TILE
Definition ojph_params_local.h:404
ojph::local::param_cod::COC_MAIN
@ COC_MAIN
Definition ojph_params_local.h:402
ojph::local::param_cod::UNDEFINED
@ UNDEFINED
Definition ojph_params_local.h:400
ojph::local::param_cod::write
bool write(outfile_base *file)
Definition ojph_params.cpp:852
ojph::local::param_cod::get_block_dims
size get_block_dims() const
Definition ojph_params_local.h:522
ojph::local::param_cod::get_coc
const param_cod * get_coc(ui32 comp_idx) const
Definition ojph_params.cpp:1109
ojph::local::param_cod::internal_write_coc
bool internal_write_coc(outfile_base *file, ui32 num_comps)
Definition ojph_params.cpp:909
ojph::local::param_cod::get_log_block_dims
size get_log_block_dims() const
Definition ojph_params_local.h:526
ojph::local::param_cod::get_dfs_index
ui16 get_dfs_index() const
Definition ojph_params_local.h:614
ojph::local::param_cod::write_coc
bool write_coc(outfile_base *file, ui32 num_comps)
Definition ojph_params.cpp:894
ojph::local::param_cod::set_reversible
void set_reversible(bool reversible)
Definition ojph_params_local.h:428
ojph::local::param_cod::SGCod
cod_SGcod SGCod
Definition ojph_params_local.h:656
ojph::local::param_cod::atk
const param_atk * atk
Definition ojph_params_local.h:659
ojph::local::param_cod::is_employing_color_transform
bool is_employing_color_transform() const
Definition ojph_params_local.h:537
ojph::local::param_cod::employ_color_transform
void employ_color_transform(ui8 val)
Definition ojph_params_local.h:435
ojph::local::param_cod::get_comp_idx
ui32 get_comp_idx() const
Definition ojph_params_local.h:618
ojph::local::param_cod::get_block_vertical_causality
bool get_block_vertical_causality() const
Definition ojph_params_local.h:578
ojph::local::param_cod::avail
param_cod * avail
Definition ojph_params_local.h:666
ojph::local::param_cod::SPcod
cod_SPcod SPcod
Definition ojph_params_local.h:657
ojph::local::param_cod::default_comp_num
default_comp_num
Definition ojph_params_local.h:388
ojph::local::param_cod::OJPH_COD_DEFAULT
@ OJPH_COD_DEFAULT
Definition ojph_params_local.h:390
ojph::local::param_cod::OJPH_COD_UNKNOWN
@ OJPH_COD_UNKNOWN
Definition ojph_params_local.h:389
ojph::local::param_cod::top_cod
param_cod * top_cod
Definition ojph_params_local.h:662
ojph::local::param_cod::access_atk
const param_atk * access_atk() const
Definition ojph_params_local.h:606
ojph::local::param_cod::dwt_type
dwt_type
Definition ojph_params_local.h:407
ojph::local::param_cod::DWT_REV53
@ DWT_REV53
Definition ojph_params_local.h:409
ojph::local::param_cod::DWT_IRV97
@ DWT_IRV97
Definition ojph_params_local.h:408
ojph::local::param_cod::read
void read(infile_base *file)
Definition ojph_params.cpp:955
ojph::local::param_cod::get_log_precinct_size
size get_log_precinct_size(ui32 res_num) const
Definition ojph_params_local.h:553
ojph::local::param_cod::init
void init(param_cod *top_cod, ui16 comp_idx)
Definition ojph_params_local.h:627
ojph::local::param_cod::read_coc
void read_coc(infile_base *file, ui32 num_comps, param_cod *top_cod)
Definition ojph_params.cpp:1015
ojph::local::param_cod::Lcod
ui16 Lcod
Definition ojph_params_local.h:654
ojph::local::param_cod::type
cod_type type
Definition ojph_params_local.h:653
ojph::local::param_cod::restart
void restart()
Definition ojph_params_local.h:418
ojph::local::param_cod::update_atk
void update_atk(param_atk *atk)
Definition ojph_params.cpp:1088
ojph::local::param_cod::Scod
ui8 Scod
Definition ojph_params_local.h:655
ojph::local::param_cod::is_dfs_defined
bool is_dfs_defined() const
Definition ojph_params_local.h:610
ojph::local::param_cod::packets_use_eph
bool packets_use_eph() const
Definition ojph_params_local.h:570
ojph::local::param_cod::get_num_decompositions
ui8 get_num_decompositions() const
Definition ojph_params_local.h:504
ojph::local::param_cod::packets_may_use_sop
bool packets_may_use_sop() const
Definition ojph_params_local.h:562
ojph::local::param_cod::is_reversible
bool is_reversible() const
Definition ojph_params.cpp:841
ojph::local::param_cod::~param_cod
~param_cod()
Definition ojph_params_local.h:415
ojph::local::param_cod::get_precinct_size
size get_precinct_size(ui32 res_num) const
Definition ojph_params_local.h:546
ojph::local::param_cod::param_cod
param_cod(param_cod *top_cod=NULL, ui16 comp_idx=OJPH_COD_DEFAULT)
Definition ojph_params_local.h:413
ojph::local::param_cod::get_wavelet_kern
ui8 get_wavelet_kern() const
Definition ojph_params_local.h:530
ojph::local::param_cod::destroy
void destroy()
Definition ojph_params_local.h:639
ojph::local::param_cod::add_coc_object
param_cod * add_coc_object(ui32 comp_idx)
Definition ojph_params.cpp:1132
ojph::local::param_cod::next
param_cod * next
Definition ojph_params_local.h:658
ojph::local::param_cod::BLOCK_CODING_STYLES
BLOCK_CODING_STYLES
Definition ojph_params_local.h:394
ojph::local::param_cod::VERT_CAUSAL_MODE
@ VERT_CAUSAL_MODE
Definition ojph_params_local.h:395
ojph::local::param_cod::HT_MODE
@ HT_MODE
Definition ojph_params_local.h:396
ojph::local::param_dfs
Definition ojph_params_local.h:993
ojph::local::param_dfs::read
bool read(infile_base *file)
Definition ojph_params.cpp:2346
ojph::local::param_dfs::get_dwt_type
dfs_dwt_type get_dwt_type(ui32 decomp_level) const
Definition ojph_params.cpp:2289
ojph::local::param_dfs::get_res_downsamp
point get_res_downsamp(ui32 skipped_resolutions) const
Definition ojph_params.cpp:2325
ojph::local::param_dfs::dfs_dwt_type
dfs_dwt_type
Definition ojph_params_local.h:995
ojph::local::param_dfs::HORZ_DWT
@ HORZ_DWT
Definition ojph_params_local.h:998
ojph::local::param_dfs::BIDIR_DWT
@ BIDIR_DWT
Definition ojph_params_local.h:997
ojph::local::param_dfs::VERT_DWT
@ VERT_DWT
Definition ojph_params_local.h:999
ojph::local::param_dfs::NO_DWT
@ NO_DWT
Definition ojph_params_local.h:996
ojph::local::param_dfs::param_dfs
param_dfs()
Definition ojph_params_local.h:1003
ojph::local::param_dfs::next
param_dfs * next
Definition ojph_params_local.h:1050
ojph::local::param_dfs::Ddfs
ui8 Ddfs[8]
Definition ojph_params_local.h:1048
ojph::local::param_dfs::destroy
void destroy()
Definition ojph_params_local.h:1034
ojph::local::param_dfs::Sdfs
ui16 Sdfs
Definition ojph_params_local.h:1046
ojph::local::param_dfs::Ldfs
ui16 Ldfs
Definition ojph_params_local.h:1045
ojph::local::param_dfs::avail
param_dfs * avail
Definition ojph_params_local.h:1053
ojph::local::param_dfs::get_subband_idx
ui32 get_subband_idx(ui32 num_decompositions, ui32 resolution, ui32 subband) const
Definition ojph_params.cpp:2300
ojph::local::param_dfs::init
void init()
Definition ojph_params_local.h:1030
ojph::local::param_dfs::restart
void restart()
Definition ojph_params_local.h:1007
ojph::local::param_dfs::Ids
ui8 Ids
Definition ojph_params_local.h:1047
ojph::local::param_dfs::~param_dfs
~param_dfs()
Definition ojph_params_local.h:1004
ojph::local::param_dfs::get_dfs
const param_dfs * get_dfs(int index) const
Definition ojph_params.cpp:2280
ojph::local::param_dfs::exists
bool exists() const
Definition ojph_params_local.h:1017
ojph::local::param_nlt
Definition ojph_params_local.h:802
ojph::local::param_nlt::param_nlt
param_nlt()
Definition ojph_params_local.h:806
ojph::local::param_nlt::BDnlt
ui8 BDnlt
Definition ojph_params_local.h:858
ojph::local::param_nlt::destroy
void destroy()
Definition ojph_params_local.h:838
ojph::local::param_nlt::special_comp_num
ojph::param_nlt::special_comp_num special_comp_num
Definition ojph_params_local.h:803
ojph::local::param_nlt::write
bool write(outfile_base *file) const
Definition ojph_params.cpp:1972
ojph::local::param_nlt::add_object
param_nlt * add_object(ui32 comp_num)
Definition ojph_params.cpp:2040
ojph::local::param_nlt::avail
param_nlt * avail
Definition ojph_params_local.h:869
ojph::local::param_nlt::Tnlt
ui8 Tnlt
Definition ojph_params_local.h:859
ojph::local::param_nlt::trim_non_existing_components
void trim_non_existing_components(ui32 num_comps)
Definition ojph_params.cpp:2073
ojph::local::param_nlt::Lnlt
ui16 Lnlt
Definition ojph_params_local.h:856
ojph::local::param_nlt::read
void read(infile_base *file)
Definition ojph_params.cpp:2000
ojph::local::param_nlt::nonlinearity
ojph::param_nlt::nonlinearity nonlinearity
Definition ojph_params_local.h:804
ojph::local::param_nlt::next
param_nlt * next
Definition ojph_params_local.h:861
ojph::local::param_nlt::init
void init()
Definition ojph_params_local.h:828
ojph::local::param_nlt::~param_nlt
~param_nlt()
Definition ojph_params_local.h:807
ojph::local::param_nlt::get_nonlinear_transform
bool get_nonlinear_transform(ui32 comp_num, ui8 &bit_depth, bool &is_signed, ui8 &nl_type) const
Definition ojph_params.cpp:1954
ojph::local::param_nlt::Cnlt
ui16 Cnlt
Definition ojph_params_local.h:857
ojph::local::param_nlt::get_nlt_object
const param_nlt * get_nlt_object(ui32 comp_num) const
Definition ojph_params.cpp:2031
ojph::local::param_nlt::restart
void restart()
Definition ojph_params_local.h:810
ojph::local::param_nlt::check_validity
void check_validity(param_siz &siz)
Definition ojph_params.cpp:1849
ojph::local::param_nlt::enabled
bool enabled
Definition ojph_params_local.h:860
ojph::local::param_nlt::is_any_enabled
bool is_any_enabled() const
Definition ojph_params.cpp:2063
ojph::local::param_nlt::set_nonlinear_transform
void set_nonlinear_transform(ui32 comp_num, ui8 nl_type)
Definition ojph_params.cpp:1938
ojph::local::param_qcd
Definition ojph_params_local.h:677
ojph::local::param_qcd::encode_SPqcd
ui8 encode_SPqcd(ui8 v) const
Definition ojph_params_local.h:767
ojph::local::param_qcd::u16
ui16 u16[97]
Definition ojph_params_local.h:777
ojph::local::param_qcd::write_qcc
bool write_qcc(outfile_base *file, ui32 num_comps)
Definition ojph_params.cpp:1612
ojph::local::param_qcd::get_irrev_delta
float get_irrev_delta(const param_dfs *dfs, ui32 num_decompositions, ui32 comp_num, ui32 resolution, ui32 subband) const
Definition ojph_params.cpp:1441
ojph::local::param_qcd::~param_qcd
~param_qcd()
Definition ojph_params_local.h:697
ojph::local::param_qcd::u8
ui8 u8[97]
Definition ojph_params_local.h:776
ojph::local::param_qcd::set_rev_quant
void set_rev_quant(ui32 num_decomps, ui32 bit_depth, bool is_employing_color_transform)
Definition ojph_params.cpp:1317
ojph::local::param_qcd::restart
void restart()
Definition ojph_params_local.h:700
ojph::local::param_qcd::set_irrev_quant
void set_irrev_quant(ui32 num_decomps)
Definition ojph_params.cpp:1364
ojph::local::param_qcd::get_largest_Kmax
ui32 get_largest_Kmax() const
Definition ojph_params.cpp:1542
ojph::local::param_qcd::get_comp_idx
ui16 get_comp_idx() const
Definition ojph_params_local.h:728
ojph::local::param_qcd::get_num_guard_bits
ui32 get_num_guard_bits() const
Definition ojph_params.cpp:1500
ojph::local::param_qcd::enabled
bool enabled
Definition ojph_params_local.h:782
ojph::local::param_qcd::set_delta
void set_delta(float delta)
Definition ojph_params_local.h:710
ojph::local::param_qcd::read_qcc
void read_qcc(infile_base *file, ui32 num_comps)
Definition ojph_params.cpp:1739
ojph::local::param_qcd::check_validity
void check_validity(const param_siz &siz, const param_cod &cod)
Definition ojph_params.cpp:1158
ojph::local::param_qcd::write
bool write(outfile_base *file)
Definition ojph_params.cpp:1569
ojph::local::param_qcd::propose_precision
ui32 propose_precision(const param_cod *cod) const
Definition ojph_params.cpp:1475
ojph::local::param_qcd::read
void read(infile_base *file)
Definition ojph_params.cpp:1692
ojph::local::param_qcd::SPqcd
union ojph::local::param_qcd::@261015033213165241351014153115010306073144177342 SPqcd
ojph::local::param_qcd::init
void init(param_qcd *top_qcd, ui16 comp_idx)
Definition ojph_params_local.h:732
ojph::local::param_qcd::base_delta
float base_delta
Definition ojph_params_local.h:780
ojph::local::param_qcd::add_qcc_object
param_qcd * add_qcc_object(ui32 comp_idx)
Definition ojph_params.cpp:1823
ojph::local::param_qcd::destroy
void destroy()
Definition ojph_params_local.h:747
ojph::local::param_qcd::type
qcd_type type
Definition ojph_params_local.h:771
ojph::local::param_qcd::top_qcd
param_qcd * top_qcd
Definition ojph_params_local.h:784
ojph::local::param_qcd::num_subbands
ui32 num_subbands
Definition ojph_params_local.h:779
ojph::local::param_qcd::qcd_type
qcd_type
Definition ojph_params_local.h:686
ojph::local::param_qcd::QCD_TILE
@ QCD_TILE
Definition ojph_params_local.h:690
ojph::local::param_qcd::QCD_MAIN
@ QCD_MAIN
Definition ojph_params_local.h:688
ojph::local::param_qcd::QCC_MAIN
@ QCC_MAIN
Definition ojph_params_local.h:689
ojph::local::param_qcd::UNDEFINED
@ UNDEFINED
Definition ojph_params_local.h:687
ojph::local::param_qcd::QCC_TILE
@ QCC_TILE
Definition ojph_params_local.h:691
ojph::local::param_qcd::get_MAGB
ui32 get_MAGB() const
Definition ojph_params.cpp:1406
ojph::local::param_qcd::avail
param_qcd * avail
Definition ojph_params_local.h:790
ojph::local::param_qcd::get_Kmax
ui32 get_Kmax(const param_dfs *dfs, ui32 num_decompositions, ui32 resolution, ui32 subband) const
Definition ojph_params.cpp:1506
ojph::local::param_qcd::Lqcd
ui16 Lqcd
Definition ojph_params_local.h:772
ojph::local::param_qcd::comp_idx
ui16 comp_idx
Definition ojph_params_local.h:787
ojph::local::param_qcd::decode_SPqcd
ui8 decode_SPqcd(ui8 v) const
Definition ojph_params_local.h:765
ojph::local::param_qcd::get_qcc
param_qcd * get_qcc(ui32 comp_idx)
Definition ojph_params.cpp:1800
ojph::local::param_qcd::param_qcd
param_qcd(param_qcd *top_qcd=NULL, ui16 comp_idx=OJPH_QCD_DEFAULT)
Definition ojph_params_local.h:695
ojph::local::param_qcd::next
param_qcd * next
Definition ojph_params_local.h:783
ojph::local::param_qcd::default_comp_num
default_comp_num
Definition ojph_params_local.h:680
ojph::local::param_qcd::OJPH_QCD_DEFAULT
@ OJPH_QCD_DEFAULT
Definition ojph_params_local.h:682
ojph::local::param_qcd::OJPH_QCD_UNKNOWN
@ OJPH_QCD_UNKNOWN
Definition ojph_params_local.h:681
ojph::local::param_qcd::trim_non_existing_components
void trim_non_existing_components(ui32 num_comps)
Definition ojph_params.cpp:1679
ojph::local::param_qcd::internal_write_qcc
bool internal_write_qcc(outfile_base *file, ui32 num_comps)
Definition ojph_params.cpp:1627
ojph::local::param_qcd::Sqcd
ui8 Sqcd
Definition ojph_params_local.h:773
ojph::local::param_siz
Definition ojph_params_local.h:166
ojph::local::param_siz::skipped_resolutions
ui32 skipped_resolutions
Definition ojph_params_local.h:326
ojph::local::param_siz::cptr
siz_comp_info * cptr
Definition ojph_params_local.h:323
ojph::local::param_siz::YOsiz
ui32 YOsiz
Definition ojph_params_local.h:317
ojph::local::param_siz::YTsiz
ui32 YTsiz
Definition ojph_params_local.h:319
ojph::local::param_siz::store
siz_comp_info store[4]
Definition ojph_params_local.h:328
ojph::local::param_siz::set_skipped_resolutions
void set_skipped_resolutions(ui32 skipped_resolutions)
Definition ojph_params_local.h:277
ojph::local::param_siz::old_Csiz
int old_Csiz
Definition ojph_params_local.h:327
ojph::local::param_siz::get_bit_depth
ui32 get_bit_depth(ui32 comp_num) const
Definition ojph_params_local.h:252
ojph::local::param_siz::ws_kern_support_needed
bool ws_kern_support_needed
Definition ojph_params_local.h:329
ojph::local::param_siz::param_siz
param_siz()
Definition ojph_params_local.h:177
ojph::local::param_siz::get_recon_height
ui32 get_recon_height(ui32 comp_num) const
Definition ojph_params_local.h:300
ojph::local::param_siz::is_signed
bool is_signed(ui32 comp_num) const
Definition ojph_params_local.h:257
ojph::local::param_siz::set_image_offset
void set_image_offset(point offset)
Definition ojph_params_local.h:224
ojph::local::param_siz::XTOsiz
ui32 XTOsiz
Definition ojph_params_local.h:320
ojph::local::param_siz::write
bool write(outfile_base *file)
Definition ojph_params.cpp:635
ojph::local::param_siz::param_siz
param_siz(const param_siz &)=delete
ojph::local::param_siz::get_num_components
ui16 get_num_components() const
Definition ojph_params_local.h:251
ojph::local::param_siz::set_tile_size
void set_tile_size(size s)
Definition ojph_params_local.h:222
ojph::local::param_siz::cod
const param_cod * cod
Definition ojph_params_local.h:331
ojph::local::param_siz::get_recon_downsampling
point get_recon_downsampling(ui32 comp_num) const
Definition ojph_params.cpp:749
ojph::local::param_siz::set_Rsiz_flag
void set_Rsiz_flag(ui16 flag)
Definition ojph_params_local.h:306
ojph::local::param_siz::check_validity
void check_validity()
Definition ojph_params_local.h:235
ojph::local::param_siz::init
void init()
Definition ojph_params_local.h:180
ojph::local::param_siz::XOsiz
ui32 XOsiz
Definition ojph_params_local.h:316
ojph::local::param_siz::Csiz
ui16 Csiz
Definition ojph_params_local.h:322
ojph::local::param_siz::get_recon_size
point get_recon_size(ui32 comp_num) const
Definition ojph_params.cpp:765
ojph::local::param_siz::Xsiz
ui32 Xsiz
Definition ojph_params_local.h:314
ojph::local::param_siz::dfs
const param_dfs * dfs
Definition ojph_params_local.h:332
ojph::local::param_siz::is_dfs_support_needed
bool is_dfs_support_needed()
Definition ojph_params_local.h:304
ojph::local::param_siz::set_cod
void set_cod(const param_cod &cod)
Definition ojph_params_local.h:233
ojph::local::param_siz::get_height
ui32 get_height(ui32 comp_num) const
Definition ojph_params_local.h:288
ojph::local::param_siz::get_image_offset
point get_image_offset() const
Definition ojph_params_local.h:226
ojph::local::param_siz::set_comp_info
void set_comp_info(ui32 comp_num, const point &downsampling, ui32 bit_depth, bool is_signed)
Definition ojph_params_local.h:210
ojph::local::param_siz::is_ws_kern_support_needed
bool is_ws_kern_support_needed()
Definition ojph_params_local.h:303
ojph::local::param_siz::dfs_support_needed
bool dfs_support_needed
Definition ojph_params_local.h:330
ojph::local::param_siz::YTOsiz
ui32 YTOsiz
Definition ojph_params_local.h:321
ojph::local::param_siz::link
void link(const param_cod *cod)
Definition ojph_params_local.h:271
ojph::local::param_siz::destroy
void destroy()
Definition ojph_params_local.h:194
ojph::local::param_siz::Rsiz
ui16 Rsiz
Definition ojph_params_local.h:313
ojph::local::param_siz::RSIZ_HT_FLAG
@ RSIZ_HT_FLAG
Definition ojph_params_local.h:172
ojph::local::param_siz::RSIZ_NLT_FLAG
@ RSIZ_NLT_FLAG
Definition ojph_params_local.h:171
ojph::local::param_siz::RSIZ_EXT_FLAG
@ RSIZ_EXT_FLAG
Definition ojph_params_local.h:173
ojph::local::param_siz::Lsiz
ui16 Lsiz
Definition ojph_params_local.h:312
ojph::local::param_siz::get_tile_size
size get_tile_size() const
Definition ojph_params_local.h:223
ojph::local::param_siz::XTsiz
ui32 XTsiz
Definition ojph_params_local.h:318
ojph::local::param_siz::get_downsampling
point get_downsampling(ui32 comp_num) const
Definition ojph_params_local.h:262
ojph::local::param_siz::reset_Rsiz_flag
void reset_Rsiz_flag(ui16 flag)
Definition ojph_params_local.h:308
ojph::local::param_siz::get_tile_offset
point get_tile_offset() const
Definition ojph_params_local.h:230
ojph::local::param_siz::set_tile_offset
void set_tile_offset(point offset)
Definition ojph_params_local.h:228
ojph::local::param_siz::read
void read(infile_base *file)
Definition ojph_params.cpp:680
ojph::local::param_siz::operator=
param_siz & operator=(const param_siz &)=delete
ojph::local::param_siz::link
void link(const param_dfs *dfs)
Definition ojph_params_local.h:274
ojph::local::param_siz::Ysiz
ui32 Ysiz
Definition ojph_params_local.h:315
ojph::local::param_siz::set_num_components
void set_num_components(ui32 num_comps)
Definition ojph_params_local.h:197
ojph::local::param_siz::set_image_extent
void set_image_extent(point dims)
Definition ojph_params_local.h:220
ojph::local::param_siz::get_width
ui32 get_width(ui32 comp_num) const
Definition ojph_params_local.h:280
ojph::local::param_siz::get_image_extent
point get_image_extent() const
Definition ojph_params_local.h:221
ojph::local::param_siz::get_recon_width
ui32 get_recon_width(ui32 comp_num) const
Definition ojph_params_local.h:298
ojph::local::param_siz::~param_siz
~param_siz()
Definition ojph_params_local.h:178
ojph::local::param_sot
Definition ojph_params_local.h:925
ojph::local::param_sot::TPsot
ui8 TPsot
Definition ojph_params_local.h:950
ojph::local::param_sot::get_num_tile_parts
ui8 get_num_tile_parts() const
Definition ojph_params_local.h:944
ojph::local::param_sot::init
void init(ui32 payload_length=0, ui16 tile_idx=0, ui8 tile_part_index=0, ui8 num_tile_parts=0)
Definition ojph_params_local.h:927
ojph::local::param_sot::get_tile_index
ui16 get_tile_index() const
Definition ojph_params_local.h:941
ojph::local::param_sot::read
bool read(infile_base *file, bool resilient)
Definition ojph_params.cpp:2141
ojph::local::param_sot::TNsot
ui8 TNsot
Definition ojph_params_local.h:951
ojph::local::param_sot::Lsot
ui16 Lsot
Definition ojph_params_local.h:947
ojph::local::param_sot::get_tile_part_index
ui8 get_tile_part_index() const
Definition ojph_params_local.h:943
ojph::local::param_sot::get_payload_length
ui32 get_payload_length() const
Definition ojph_params_local.h:942
ojph::local::param_sot::write
bool write(outfile_base *file, ui32 payload_len)
Definition ojph_params.cpp:2096
ojph::local::param_sot::Isot
ui16 Isot
Definition ojph_params_local.h:948
ojph::local::param_sot::Psot
ui32 Psot
Definition ojph_params_local.h:949
ojph::local::param_tlm::Ttlm_Ptlm_pair
Definition ojph_params_local.h:964
ojph::local::param_tlm::Ttlm_Ptlm_pair::Ptlm
ui32 Ptlm
Definition ojph_params_local.h:966
ojph::local::param_tlm::Ttlm_Ptlm_pair::Ttlm
ui16 Ttlm
Definition ojph_params_local.h:965
ojph::local::param_tlm::next_pair_index
ui32 next_pair_index
Definition ojph_params_local.h:982
ojph::local::param_tlm::Ltlm
ui16 Ltlm
Definition ojph_params_local.h:977
ojph::local::param_tlm::set_next_pair
void set_next_pair(ui16 Ttlm, ui32 Ptlm)
Definition ojph_params.cpp:2239
ojph::local::param_tlm::write
bool write(outfile_base *file)
Definition ojph_params.cpp:2248
ojph::local::param_tlm::param_tlm
param_tlm()
Definition ojph_params_local.h:970
ojph::local::param_tlm::Ztlm
ui8 Ztlm
Definition ojph_params_local.h:978
ojph::local::param_tlm::pairs
Ttlm_Ptlm_pair * pairs
Definition ojph_params_local.h:980
ojph::local::param_tlm::Stlm
ui8 Stlm
Definition ojph_params_local.h:979
ojph::local::param_tlm::num_pairs
ui32 num_pairs
Definition ojph_params_local.h:981
ojph::local::param_tlm::init
void init(ui32 num_pairs, Ttlm_Ptlm_pair *store)
Definition ojph_params.cpp:2223
ojph::local::siz_comp_info
Definition ojph_params_local.h:158
ojph::local::siz_comp_info::XRsiz
ui8 XRsiz
Definition ojph_params_local.h:160
ojph::local::siz_comp_info::SSiz
ui8 SSiz
Definition ojph_params_local.h:159
ojph::local::siz_comp_info::YRsiz
ui8 YRsiz
Definition ojph_params_local.h:161
ojph::point
Definition ojph_base.h:58
ojph::point::y
ui32 y
Definition ojph_base.h:60
ojph::point::x
ui32 x
Definition ojph_base.h:60
ojph::size
Definition ojph_base.h:48
ojph::size::w
ui32 w
Definition ojph_base.h:50
ojph::size::h
ui32 h
Definition ojph_base.h:51
ojph::local::lifting_step
Definition ojph_params_local.h:1065
ojph::local::lifting_step::irv
irv_data irv
Definition ojph_params_local.h:1080
ojph::local::lifting_step::rev
rev_data rev
Definition ojph_params_local.h:1081