OpenJPH
Open-source implementation of JPEG2000 Part-15
ojph::local Namespace Reference

Classes

struct  bit_write_buf
 
struct  tag_tree
 
struct  bit_read_buf
 
class  codestream
 
class  tile
 
class  tile_comp
 
class  resolution
 
struct  precinct
 
class  subband
 
class  codeblock
 
struct  coded_cb_header
 
class  sqrt_energy_gains
 
class  bibo_gains
 
struct  siz_comp_info
 
struct  param_siz
 
struct  cod_SPcod
 
struct  cod_SGcod
 
struct  param_cod
 
struct  param_qcd
 
struct  param_qcc
 
struct  param_cap
 
struct  param_sot
 
struct  param_tlm
 
struct  dec_mel_st
 MEL state structure for reading and decoding the MEL bitstream. More...
 
struct  rev_struct
 A structure for reading and unstuffing a segment that grows backward, such as VLC and MRP. More...
 
struct  frwd_struct
 State structure for reading and unstuffing of forward-growing bitstreams; these are: MagSgn and SPP bitstreams. More...
 
struct  mel_struct
 
struct  vlc_struct
 
struct  ms_struct
 
struct  CT_CNST
 
struct  LIFTING_FACTORS
 

Typedefs

typedef cod_SPcod cod_SPcoc
 

Enumerations

enum  JP2K_MARKER : ui16 {
  SOC = 0xFF4F , CAP = 0xFF50 , SIZ = 0xFF51 , COD = 0xFF52 ,
  TLM = 0xFF55 , PRF = 0xFF56 , PLM = 0xFF57 , PLT = 0xFF58 ,
  CPF = 0xFF59 , QCD = 0xFF5C , QCC = 0xFF5D , COM = 0xFF64 ,
  SOT = 0xFF90 , SOP = 0xFF91 , EPH = 0xFF92 , SOD = 0xFF93 ,
  EOC = 0xFFD9 , COC = 0xFF53 , RGN = 0xFF5E , POC = 0xFF5F ,
  PPM = 0xFF60 , PPT = 0xFF61 , CRG = 0xFF63
}
 

Functions

static ui16 swap_byte (ui16 t)
 
static int find_marker (infile_base *f, const ui16 *char_list, int list_len)
 
static int skip_marker (infile_base *file, const char *marker, const char *msg, int msg_level, bool resilient)
 
static void rotate_buffers (line_buf *line1, line_buf *line2, line_buf *line3, line_buf *line4)
 
static void rotate_buffers (line_buf *line1, line_buf *line2, line_buf *line3, line_buf *line4, line_buf *line5, line_buf *line6)
 
static void bb_expand_buf (bit_write_buf *bbp, mem_elastic_allocator *elastic, coded_lists *&cur_coded_list)
 
static void bb_init (bit_write_buf *bbp, mem_elastic_allocator *elastic, coded_lists *&cur_coded_list)
 
static void bb_put_bit (bit_write_buf *bbp, ui32 bit, mem_elastic_allocator *elastic, coded_lists *&cur_coded_list, ui32 &ph_bytes)
 
static void bb_put_bits (bit_write_buf *bbp, ui32 data, int num_bits, mem_elastic_allocator *elastic, coded_lists *&cur_coded_list, ui32 &ph_bytes)
 
static void bb_terminate (bit_write_buf *bbp)
 
static ui32 log2ceil (ui32 x)
 
static void bb_init (bit_read_buf *bbp, ui32 bytes_left, infile_base *file)
 
static bool bb_read (bit_read_buf *bbp)
 
static bool bb_read_bit (bit_read_buf *bbp, ui32 &bit)
 
static bool bb_read_bits (bit_read_buf *bbp, int num_bits, ui32 &bits)
 
static bool bb_read_chunk (bit_read_buf *bbp, ui32 num_bytes, coded_lists *&cur_coded_list, mem_elastic_allocator *elastic)
 
static void bb_skip_eph (bit_read_buf *bbp)
 
static bool bb_terminate (bit_read_buf *bbp, bool uses_eph)
 
static bool bb_skip_sop (bit_read_buf *bbp)
 
static ui16 swap_byte (ui16 t)
 
static ui32 swap_byte (ui32 t)
 
static void mel_read (dec_mel_st *melp)
 Reads and unstuffs the MEL bitstream. More...
 
static void mel_decode (dec_mel_st *melp)
 Decodes unstuffed MEL segment bits stored in tmp to runs. More...
 
static void mel_init (dec_mel_st *melp, ui8 *bbuf, int lcup, int scup)
 Initiates a dec_mel_st structure for MEL decoding and reads some bytes in order to get the read address to a multiple of 4. More...
 
static int mel_get_run (dec_mel_st *melp)
 Retrieves one run from dec_mel_st; if there are no runs stored MEL segment is decoded. More...
 
void rev_read (rev_struct *vlcp)
 Read and unstuff data from a backwardly-growing segment. More...
 
void rev_init (rev_struct *vlcp, ui8 *data, int lcup, int scup)
 Initiates the rev_struct structure and reads a few bytes to move the read address to multiple of 4. More...
 
ui32 rev_fetch (rev_struct *vlcp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
ui32 rev_advance (rev_struct *vlcp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
void rev_read_mrp (rev_struct *mrp)
 Reads and unstuffs from rev_struct. More...
 
void rev_init_mrp (rev_struct *mrp, ui8 *data, int lcup, int len2)
 Initialized rev_struct structure for MRP segment, and reads a number of bytes such that the next 32 bits read are from an address that is a multiple of 4. Note this is designed for an architecture that read size must be compatible with the alignment of the read address. More...
 
ui32 rev_fetch_mrp (rev_struct *mrp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
ui32 rev_advance_mrp (rev_struct *mrp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
static bool vlc_init_tables ()
 Initializes vlc_tbl0 and vlc_tbl1 tables, from table0.h and table1.h. More...
 
ui32 decode_init_uvlc (ui32 vlc, ui32 mode, ui32 *u)
 Decode initial UVLC to get the u value (or u_q) More...
 
ui32 decode_noninit_uvlc (ui32 vlc, ui32 mode, ui32 *u)
 Decode non-initial UVLC to get the u value (or u_q) More...
 
template<int X>
void frwd_read (frwd_struct *msp)
 Read and unstuffs 32 bits from forward-growing bitstream. More...
 
template<int X>
void frwd_init (frwd_struct *msp, const ui8 *data, int size)
 Initialize frwd_struct struct and reads some bytes. More...
 
void frwd_advance (frwd_struct *msp, ui32 num_bits)
 Consume num_bits bits from the bitstream of frwd_struct. More...
 
template<int X>
ui32 frwd_fetch (frwd_struct *msp)
 Fetches 32 bits from the frwd_struct bitstream. More...
 
bool ojph_decode_codeblock (ui8 *coded_data, ui32 *decoded_data, ui32 missing_msbs, ui32 num_passes, ui32 lengths1, ui32 lengths2, ui32 width, ui32 height, ui32 stride, bool stripe_causal)
 Decodes one codeblock, processing the cleanup, siginificance propagation, and magnitude refinement pass. More...
 
static bool vlc_init_tables ()
 
static bool uvlc_init_tables ()
 
static void mel_init (mel_struct *melp, ui32 buffer_size, ui8 *data)
 
static void mel_emit_bit (mel_struct *melp, int v)
 
static void mel_encode (mel_struct *melp, bool bit)
 
static void vlc_init (vlc_struct *vlcp, ui32 buffer_size, ui8 *data)
 
static void vlc_encode (vlc_struct *vlcp, int cwd, int cwd_len)
 
static void terminate_mel_vlc (mel_struct *melp, vlc_struct *vlcp)
 
static void ms_init (ms_struct *msp, ui32 buffer_size, ui8 *data)
 
static void ms_encode (ms_struct *msp, ui32 cwd, int cwd_len)
 
static void ms_terminate (ms_struct *msp)
 
void ojph_encode_codeblock (ui32 *buf, ui32 missing_msbs, ui32 num_passes, ui32 width, ui32 height, ui32 stride, ui32 *lengths, ojph::mem_elastic_allocator *elastic, ojph::coded_lists *&coded)
 
void init_colour_transform_functions ()
 
void gen_cnvrt_si32_to_si32_shftd (const si32 *sp, si32 *dp, int shift, ui32 width)
 
void gen_cnvrt_si32_to_float_shftd (const si32 *sp, float *dp, float mul, ui32 width)
 
void gen_cnvrt_si32_to_float (const si32 *sp, float *dp, float mul, ui32 width)
 
void gen_cnvrt_float_to_si32_shftd (const float *sp, si32 *dp, float mul, ui32 width)
 
void gen_cnvrt_float_to_si32 (const float *sp, si32 *dp, float mul, ui32 width)
 
void gen_rct_forward (const si32 *r, const si32 *g, const si32 *b, si32 *y, si32 *cb, si32 *cr, ui32 repeat)
 
void gen_rct_backward (const si32 *y, const si32 *cb, const si32 *cr, si32 *r, si32 *g, si32 *b, ui32 repeat)
 
void gen_ict_forward (const float *r, const float *g, const float *b, float *y, float *cb, float *cr, ui32 repeat)
 
void gen_ict_backward (const float *y, const float *cb, const float *cr, float *r, float *g, float *b, ui32 repeat)
 
void avx_cnvrt_si32_to_float_shftd (const si32 *sp, float *dp, float mul, ui32 width)
 
void avx_cnvrt_si32_to_float (const si32 *sp, float *dp, float mul, ui32 width)
 
void avx_cnvrt_float_to_si32_shftd (const float *sp, si32 *dp, float mul, ui32 width)
 
void avx_cnvrt_float_to_si32 (const float *sp, si32 *dp, float mul, ui32 width)
 
void avx_ict_forward (const float *r, const float *g, const float *b, float *y, float *cb, float *cr, ui32 repeat)
 
void avx_ict_backward (const float *y, const float *cb, const float *cr, float *r, float *g, float *b, ui32 repeat)
 
void avx2_cnvrt_si32_to_si32_shftd (const si32 *sp, si32 *dp, int shift, ui32 width)
 
void avx2_rct_forward (const si32 *r, const si32 *g, const si32 *b, si32 *y, si32 *cb, si32 *cr, ui32 repeat)
 
void avx2_rct_backward (const si32 *y, const si32 *cb, const si32 *cr, si32 *r, si32 *g, si32 *b, ui32 repeat)
 
void sse_cnvrt_si32_to_float_shftd (const si32 *sp, float *dp, float mul, ui32 width)
 
void sse_cnvrt_si32_to_float (const si32 *sp, float *dp, float mul, ui32 width)
 
void sse_cnvrt_float_to_si32_shftd (const float *sp, si32 *dp, float mul, ui32 width)
 
void sse_cnvrt_float_to_si32 (const float *sp, si32 *dp, float mul, ui32 width)
 
void sse_ict_forward (const float *r, const float *g, const float *b, float *y, float *cb, float *cr, ui32 repeat)
 
void sse_ict_backward (const float *y, const float *cb, const float *cr, float *r, float *g, float *b, ui32 repeat)
 
void sse2_cnvrt_float_to_si32_shftd (const float *sp, si32 *dp, float mul, ui32 width)
 
void sse2_cnvrt_float_to_si32 (const float *sp, si32 *dp, float mul, ui32 width)
 
void sse2_cnvrt_si32_to_si32_shftd (const si32 *sp, si32 *dp, int shift, ui32 width)
 
void sse2_rct_forward (const si32 *r, const si32 *g, const si32 *b, si32 *y, si32 *cb, si32 *cr, ui32 repeat)
 
void sse2_rct_backward (const si32 *y, const si32 *cb, const si32 *cr, si32 *r, si32 *g, si32 *b, ui32 repeat)
 
void init_wavelet_transform_functions ()
 
void gen_rev_vert_wvlt_fwd_predict (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void gen_rev_vert_wvlt_fwd_update (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void gen_rev_horz_wvlt_fwd_tx (line_buf *line_src, line_buf *line_ldst, line_buf *line_hdst, ui32 width, bool even)
 
void gen_rev_vert_wvlt_bwd_predict (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void gen_rev_vert_wvlt_bwd_update (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void gen_rev_horz_wvlt_bwd_tx (line_buf *line_dst, line_buf *line_lsrc, line_buf *line_hsrc, ui32 width, bool even)
 
void gen_irrev_vert_wvlt_step (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, int step_num, ui32 repeat)
 
void gen_irrev_vert_wvlt_K (const line_buf *line_src, line_buf *line_dst, bool L_analysis_or_H_synthesis, ui32 repeat)
 
void gen_irrev_horz_wvlt_fwd_tx (line_buf *line_src, line_buf *line_ldst, line_buf *line_hdst, ui32 width, bool even)
 
void gen_irrev_horz_wvlt_bwd_tx (line_buf *line_dst, line_buf *line_lsrc, line_buf *line_hsrc, ui32 width, bool even)
 
void avx_irrev_vert_wvlt_step (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, int step_num, ui32 repeat)
 
void avx_irrev_vert_wvlt_K (const line_buf *line_src, line_buf *line_dst, bool L_analysis_or_H_synthesis, ui32 repeat)
 
void avx_irrev_horz_wvlt_fwd_tx (line_buf *line_src, line_buf *line_ldst, line_buf *line_hdst, ui32 width, bool even)
 
void avx_irrev_horz_wvlt_bwd_tx (line_buf *line_dst, line_buf *line_lsrc, line_buf *line_hsrc, ui32 width, bool even)
 
void avx2_rev_vert_wvlt_fwd_predict (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void avx2_rev_vert_wvlt_fwd_update (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void avx2_rev_horz_wvlt_fwd_tx (line_buf *line_src, line_buf *line_ldst, line_buf *line_hdst, ui32 width, bool even)
 
void avx2_rev_vert_wvlt_bwd_predict (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void avx2_rev_vert_wvlt_bwd_update (const line_buf *line_src1, const line_buf *line_src2, line_buf *line_dst, ui32 repeat)
 
void avx2_rev_horz_wvlt_bwd_tx (line_buf *line_dst, line_buf *line_lsrc, line_buf *line_hsrc, ui32 width, bool even)
 
void sse_irrev_vert_wvlt_step (const line_buf *src1, const line_buf *src2, line_buf *dst, int step_num, ui32 repeat)
 
void sse_irrev_vert_wvlt_K (const line_buf *src, line_buf *dst, bool L_analysis_or_H_synthesis, ui32 repeat)
 
void sse_irrev_horz_wvlt_fwd_tx (line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even)
 
void sse_irrev_horz_wvlt_bwd_tx (line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even)
 
void sse2_rev_vert_wvlt_fwd_predict (const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
 
void sse2_rev_vert_wvlt_fwd_update (const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
 
void sse2_rev_horz_wvlt_fwd_tx (line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even)
 
void sse2_rev_vert_wvlt_bwd_predict (const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
 
void sse2_rev_vert_wvlt_bwd_update (const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
 
void sse2_rev_horz_wvlt_bwd_tx (line_buf *dst, line_buf *lsrc, line_buf *hsrc, ui32 width, bool even)
 

Variables

static ui16 vlc_tbl0 [1024] = { 0 }
 vlc_tbl0 contains decoding information for initial row of quads More...
 
static ui16 vlc_tbl1 [1024] = { 0 }
 vlc_tbl1 contains decoding information for non-initial row of quads More...
 
static bool vlc_tables_initialized = vlc_init_tables()
 Initializes VLC tables vlc_tbl0 and vlc_tbl1. More...
 
static ui16 vlc_tbl0 [2048] = { 0 }
 
static ui16 vlc_tbl1 [2048] = { 0 }
 
static int ulvc_cwd_pre [33]
 
static int ulvc_cwd_pre_len [33]
 
static int ulvc_cwd_suf [33]
 
static int ulvc_cwd_suf_len [33]
 
static bool vlc_tables_initialized = vlc_init_tables()
 
static bool uvlc_tables_initialized = uvlc_init_tables()
 
void(* cnvrt_si32_to_si32_shftd )(const si32 *sp, si32 *dp, int shift, ui32 width) = gen_cnvrt_si32_to_si32_shftd
 
void(* cnvrt_si32_to_float_shftd )(const si32 *sp, float *dp, float mul, ui32 width) = gen_cnvrt_si32_to_float_shftd
 
void(* cnvrt_si32_to_float )(const si32 *sp, float *dp, float mul, ui32 width) = gen_cnvrt_si32_to_float
 
void(* cnvrt_float_to_si32_shftd )(const float *sp, si32 *dp, float mul, ui32 width) = gen_cnvrt_float_to_si32_shftd
 
void(* cnvrt_float_to_si32 )(const float *sp, si32 *dp, float mul, ui32 width) = gen_cnvrt_float_to_si32
 
void(* rct_forward )(const si32 *r, const si32 *g, const si32 *b, si32 *y, si32 *cb, si32 *cr, ui32 repeat) = gen_rct_forward
 
void(* rct_backward )(const si32 *y, const si32 *cb, const si32 *cr, si32 *r, si32 *g, si32 *b, ui32 repeat) = gen_rct_backward
 
void(* ict_forward )(const float *r, const float *g, const float *b, float *y, float *cb, float *cr, ui32 repeat) = gen_ict_forward
 
void(* ict_backward )(const float *y, const float *cb, const float *cr, float *r, float *g, float *b, ui32 repeat) = gen_ict_backward
 
static bool colour_transform_functions_initialized = false
 
void(* rev_vert_wvlt_fwd_predict )(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) = gen_rev_vert_wvlt_fwd_predict
 
void(* rev_vert_wvlt_fwd_update )(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) = gen_rev_vert_wvlt_fwd_update
 
void(* rev_horz_wvlt_fwd_tx )(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even) = gen_rev_horz_wvlt_fwd_tx
 
void(* rev_vert_wvlt_bwd_predict )(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) = gen_rev_vert_wvlt_bwd_predict
 
void(* rev_vert_wvlt_bwd_update )(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) = gen_rev_vert_wvlt_bwd_update
 
void(* rev_horz_wvlt_bwd_tx )(line_buf *dst, line_buf *lsrc, line_buf *hsrc, ui32 width, bool even) = gen_rev_horz_wvlt_bwd_tx
 
void(* irrev_vert_wvlt_step )(const line_buf *src1, const line_buf *src2, line_buf *dst, int step_num, ui32 repeat) = gen_irrev_vert_wvlt_step
 
void(* irrev_vert_wvlt_K )(const line_buf *src, line_buf *dst, bool L_analysis_or_H_synthesis, ui32 repeat) = gen_irrev_vert_wvlt_K
 
void(* irrev_horz_wvlt_fwd_tx )(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even) = gen_irrev_horz_wvlt_fwd_tx
 
void(* irrev_horz_wvlt_bwd_tx )(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even) = gen_irrev_horz_wvlt_bwd_tx
 
static bool wavelet_transform_functions_initialized = false
 

Typedef Documentation

◆ cod_SPcoc

Definition at line 291 of file ojph_params_local.h.

Enumeration Type Documentation

◆ JP2K_MARKER

Enumerator
SOC 
CAP 
SIZ 
COD 
TLM 
PRF 
PLM 
PLT 
CPF 
QCD 
QCC 
COM 
SOT 
SOP 
EPH 
SOD 
EOC 
COC 
RGN 
POC 
PPM 
PPT 
CRG 

Definition at line 99 of file ojph_params_local.h.

Function Documentation

◆ avx2_cnvrt_si32_to_si32_shftd()

void ojph::local::avx2_cnvrt_si32_to_si32_shftd ( const si32 sp,
si32 dp,
int  shift,
ui32  width 
)

Definition at line 54 of file ojph_colour_avx2.cpp.

Referenced by init_colour_transform_functions().

◆ avx2_rct_backward()

void ojph::local::avx2_rct_backward ( const si32 y,
const si32 cb,
const si32 cr,
si32 r,
si32 g,
si32 b,
ui32  repeat 
)

Definition at line 89 of file ojph_colour_avx2.cpp.

Referenced by init_colour_transform_functions().

◆ avx2_rct_forward()

void ojph::local::avx2_rct_forward ( const si32 r,
const si32 g,
const si32 b,
si32 y,
si32 cb,
si32 cr,
ui32  repeat 
)

Definition at line 67 of file ojph_colour_avx2.cpp.

Referenced by init_colour_transform_functions().

◆ avx2_rev_horz_wvlt_bwd_tx()

void ojph::local::avx2_rev_horz_wvlt_bwd_tx ( line_buf line_dst,
line_buf line_lsrc,
line_buf line_hsrc,
ui32  width,
bool  even 
)

Definition at line 208 of file ojph_transform_avx2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ avx2_rev_horz_wvlt_fwd_tx()

void ojph::local::avx2_rev_horz_wvlt_fwd_tx ( line_buf line_src,
line_buf line_ldst,
line_buf line_hdst,
ui32  width,
bool  even 
)

Definition at line 96 of file ojph_transform_avx2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ avx2_rev_vert_wvlt_bwd_predict()

void ojph::local::avx2_rev_vert_wvlt_bwd_predict ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 168 of file ojph_transform_avx2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ avx2_rev_vert_wvlt_bwd_update()

void ojph::local::avx2_rev_vert_wvlt_bwd_update ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 187 of file ojph_transform_avx2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ avx2_rev_vert_wvlt_fwd_predict()

void ojph::local::avx2_rev_vert_wvlt_fwd_predict ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 56 of file ojph_transform_avx2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ avx2_rev_vert_wvlt_fwd_update()

void ojph::local::avx2_rev_vert_wvlt_fwd_update ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 75 of file ojph_transform_avx2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ avx_cnvrt_float_to_si32()

void ojph::local::avx_cnvrt_float_to_si32 ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 101 of file ojph_colour_avx.cpp.

Referenced by init_colour_transform_functions().

◆ avx_cnvrt_float_to_si32_shftd()

void ojph::local::avx_cnvrt_float_to_si32_shftd ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 85 of file ojph_colour_avx.cpp.

Referenced by init_colour_transform_functions().

◆ avx_cnvrt_si32_to_float()

void ojph::local::avx_cnvrt_si32_to_float ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
)

Definition at line 71 of file ojph_colour_avx.cpp.

Referenced by init_colour_transform_functions().

◆ avx_cnvrt_si32_to_float_shftd()

void ojph::local::avx_cnvrt_si32_to_float_shftd ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
)

Definition at line 55 of file ojph_colour_avx.cpp.

Referenced by init_colour_transform_functions().

◆ avx_ict_backward()

void ojph::local::avx_ict_backward ( const float *  y,
const float *  cb,
const float *  cr,
float *  r,
float *  g,
float *  b,
ui32  repeat 
)

◆ avx_ict_forward()

void ojph::local::avx_ict_forward ( const float *  r,
const float *  g,
const float *  b,
float *  y,
float *  cb,
float *  cr,
ui32  repeat 
)

◆ avx_irrev_horz_wvlt_bwd_tx()

void ojph::local::avx_irrev_horz_wvlt_bwd_tx ( line_buf line_dst,
line_buf line_lsrc,
line_buf line_hsrc,
ui32  width,
bool  even 
)

◆ avx_irrev_horz_wvlt_fwd_tx()

void ojph::local::avx_irrev_horz_wvlt_fwd_tx ( line_buf line_src,
line_buf line_ldst,
line_buf line_hdst,
ui32  width,
bool  even 
)

◆ avx_irrev_vert_wvlt_K()

void ojph::local::avx_irrev_vert_wvlt_K ( const line_buf line_src,
line_buf line_dst,
bool  L_analysis_or_H_synthesis,
ui32  repeat 
)

◆ avx_irrev_vert_wvlt_step()

void ojph::local::avx_irrev_vert_wvlt_step ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
int  step_num,
ui32  repeat 
)

◆ bb_expand_buf()

static void ojph::local::bb_expand_buf ( bit_write_buf bbp,
mem_elastic_allocator elastic,
coded_lists *&  cur_coded_list 
)
inlinestatic

◆ bb_init() [1/2]

◆ bb_init() [2/2]

static void ojph::local::bb_init ( bit_write_buf bbp,
mem_elastic_allocator elastic,
coded_lists *&  cur_coded_list 
)
inlinestatic

◆ bb_put_bit()

◆ bb_put_bits()

static void ojph::local::bb_put_bits ( bit_write_buf bbp,
ui32  data,
int  num_bits,
mem_elastic_allocator elastic,
coded_lists *&  cur_coded_list,
ui32 ph_bytes 
)
inlinestatic

Definition at line 2920 of file ojph_codestream.cpp.

References bb_put_bit().

Referenced by ojph::local::precinct::prepare_precinct().

◆ bb_read()

◆ bb_read_bit()

static bool ojph::local::bb_read_bit ( bit_read_buf bbp,
ui32 bit 
)
inlinestatic

◆ bb_read_bits()

static bool ojph::local::bb_read_bits ( bit_read_buf bbp,
int  num_bits,
ui32 bits 
)
inlinestatic

◆ bb_read_chunk()

◆ bb_skip_eph()

static void ojph::local::bb_skip_eph ( bit_read_buf bbp)
inlinestatic

◆ bb_skip_sop()

static bool ojph::local::bb_skip_sop ( bit_read_buf bbp)
inlinestatic

◆ bb_terminate() [1/2]

static bool ojph::local::bb_terminate ( bit_read_buf bbp,
bool  uses_eph 
)
inlinestatic

◆ bb_terminate() [2/2]

◆ decode_init_uvlc()

ui32 ojph::local::decode_init_uvlc ( ui32  vlc,
ui32  mode,
ui32 u 
)
inline

Decode initial UVLC to get the u value (or u_q)

Parameters
[in]vlcis the head of the VLC bitstream
[in]modeis 0, 1, 2, 3, or 4. Values in 0 to 3 are composed of u_off of 1st quad and 2nd quad of a quad pair. The value 4 occurs when both bits are 1, and the event decoded from MEL bitstream is also 1.
[out]uis the u value (or u_q) + 1. Note: we produce u + 1; this value is a partial calculation of u + kappa.

Definition at line 673 of file ojph_block_decoder.cpp.

Referenced by ojph_decode_codeblock().

◆ decode_noninit_uvlc()

ui32 ojph::local::decode_noninit_uvlc ( ui32  vlc,
ui32  mode,
ui32 u 
)
inline

Decode non-initial UVLC to get the u value (or u_q)

Parameters
[in]vlcis the head of the VLC bitstream
[in]modeis 0, 1, 2, or 3. The 1st bit is u_off of 1st quad and 2nd for 2nd quad of a quad pair
[out]uis the u value (or u_q) + 1. Note: we produce u + 1; this value is a partial calculation of u + kappa.

Definition at line 783 of file ojph_block_decoder.cpp.

Referenced by ojph_decode_codeblock().

◆ find_marker()

static int ojph::local::find_marker ( infile_base f,
const ui16 char_list,
int  list_len 
)
static

◆ frwd_advance()

void ojph::local::frwd_advance ( frwd_struct msp,
ui32  num_bits 
)
inline

Consume num_bits bits from the bitstream of frwd_struct.

Parameters
[in]mspis a pointer to frwd_struct
[in]num_bitsis the number of bit to consume

Definition at line 971 of file ojph_block_decoder.cpp.

References ojph::local::frwd_struct::bits, and ojph::local::frwd_struct::tmp.

Referenced by ojph_decode_codeblock().

◆ frwd_fetch()

template<int X>
ui32 ojph::local::frwd_fetch ( frwd_struct msp)

Fetches 32 bits from the frwd_struct bitstream.

Template Parameters
Xis the value fed in when the bitstream is exhausted. See frwd_read regarding the template
Parameters
[in]mspis a pointer to frwd_struct

Definition at line 986 of file ojph_block_decoder.cpp.

References ojph::local::frwd_struct::bits, and ojph::local::frwd_struct::tmp.

◆ frwd_init()

template<int X>
void ojph::local::frwd_init ( frwd_struct msp,
const ui8 data,
int  size 
)

Initialize frwd_struct struct and reads some bytes.

Template Parameters
Xis the value fed in when the bitstream is exhausted. See frwd_read regarding the template
Parameters
[in]mspis a pointer to frwd_struct
[in]datais a pointer to the start of data
[in]sizeis the number of byte in the bitstream

Definition at line 940 of file ojph_block_decoder.cpp.

References ojph::local::frwd_struct::bits, ojph::local::frwd_struct::data, ojph::local::frwd_struct::size, ojph::local::frwd_struct::tmp, and ojph::local::frwd_struct::unstuff.

◆ frwd_read()

template<int X>
void ojph::local::frwd_read ( frwd_struct msp)

Read and unstuffs 32 bits from forward-growing bitstream.

A template is used to accommodate a different requirement for MagSgn and SPP bitstreams; in particular, when MagSgn bitstream is consumed, 0xFF's are fed, while when SPP is exhausted 0's are fed in. X controls this value.

Unstuffing prevent sequences that are more than 0xFF7F from appearing in the conpressed sequence. So whenever a value of 0xFF is coded, the MSB of the next byte is set 0 and must be ignored during decoding.

Reading can go beyond the end of buffer by up to 3 bytes.

Template Parameters
Xis the value fed in when the bitstream is exhausted
Parameters
[in]mspis a pointer to frwd_struct structure

Definition at line 884 of file ojph_block_decoder.cpp.

References ojph::local::frwd_struct::bits, ojph::local::frwd_struct::data, ojph::local::frwd_struct::size, ojph::local::frwd_struct::tmp, and ojph::local::frwd_struct::unstuff.

◆ gen_cnvrt_float_to_si32()

void ojph::local::gen_cnvrt_float_to_si32 ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 206 of file ojph_colour.cpp.

References ojph::ojph_round().

Referenced by init_colour_transform_functions().

◆ gen_cnvrt_float_to_si32_shftd()

void ojph::local::gen_cnvrt_float_to_si32_shftd ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 198 of file ojph_colour.cpp.

References ojph::ojph_round().

Referenced by init_colour_transform_functions().

◆ gen_cnvrt_si32_to_float()

void ojph::local::gen_cnvrt_si32_to_float ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
)

Definition at line 190 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions().

◆ gen_cnvrt_si32_to_float_shftd()

void ojph::local::gen_cnvrt_si32_to_float_shftd ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
)

Definition at line 182 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions().

◆ gen_cnvrt_si32_to_si32_shftd()

void ojph::local::gen_cnvrt_si32_to_si32_shftd ( const si32 sp,
si32 dp,
int  shift,
ui32  width 
)

Definition at line 174 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions().

◆ gen_ict_backward()

void ojph::local::gen_ict_backward ( const float *  y,
const float *  cb,
const float *  cr,
float *  r,
float *  g,
float *  b,
ui32  repeat 
)

◆ gen_ict_forward()

void ojph::local::gen_ict_forward ( const float *  r,
const float *  g,
const float *  b,
float *  y,
float *  cb,
float *  cr,
ui32  repeat 
)

◆ gen_irrev_horz_wvlt_bwd_tx()

void ojph::local::gen_irrev_horz_wvlt_bwd_tx ( line_buf line_dst,
line_buf line_lsrc,
line_buf line_hsrc,
ui32  width,
bool  even 
)

◆ gen_irrev_horz_wvlt_fwd_tx()

void ojph::local::gen_irrev_horz_wvlt_fwd_tx ( line_buf line_src,
line_buf line_ldst,
line_buf line_hdst,
ui32  width,
bool  even 
)

◆ gen_irrev_vert_wvlt_K()

void ojph::local::gen_irrev_vert_wvlt_K ( const line_buf line_src,
line_buf line_dst,
bool  L_analysis_or_H_synthesis,
ui32  repeat 
)

◆ gen_irrev_vert_wvlt_step()

void ojph::local::gen_irrev_vert_wvlt_step ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
int  step_num,
ui32  repeat 
)

◆ gen_rct_backward()

void ojph::local::gen_rct_backward ( const si32 y,
const si32 cb,
const si32 cr,
si32 r,
si32 g,
si32 b,
ui32  repeat 
)

Definition at line 226 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions().

◆ gen_rct_forward()

void ojph::local::gen_rct_forward ( const si32 r,
const si32 g,
const si32 b,
si32 y,
si32 cb,
si32 cr,
ui32  repeat 
)

Definition at line 214 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions().

◆ gen_rev_horz_wvlt_bwd_tx()

void ojph::local::gen_rev_horz_wvlt_bwd_tx ( line_buf line_dst,
line_buf line_lsrc,
line_buf line_hsrc,
ui32  width,
bool  even 
)

Definition at line 273 of file ojph_transform.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ gen_rev_horz_wvlt_fwd_tx()

void ojph::local::gen_rev_horz_wvlt_fwd_tx ( line_buf line_src,
line_buf line_ldst,
line_buf line_hdst,
ui32  width,
bool  even 
)

Definition at line 211 of file ojph_transform.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ gen_rev_vert_wvlt_bwd_predict()

void ojph::local::gen_rev_vert_wvlt_bwd_predict ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 251 of file ojph_transform.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ gen_rev_vert_wvlt_bwd_update()

void ojph::local::gen_rev_vert_wvlt_bwd_update ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 262 of file ojph_transform.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ gen_rev_vert_wvlt_fwd_predict()

void ojph::local::gen_rev_vert_wvlt_fwd_predict ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 189 of file ojph_transform.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ gen_rev_vert_wvlt_fwd_update()

void ojph::local::gen_rev_vert_wvlt_fwd_update ( const line_buf line_src1,
const line_buf line_src2,
line_buf line_dst,
ui32  repeat 
)

Definition at line 200 of file ojph_transform.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ init_colour_transform_functions()

◆ init_wavelet_transform_functions()

◆ log2ceil()

static ui32 ojph::local::log2ceil ( ui32  x)
inlinestatic

◆ mel_decode()

static void ojph::local::mel_decode ( dec_mel_st melp)
inlinestatic

Decodes unstuffed MEL segment bits stored in tmp to runs.

Runs are stored in "runs" and the number of runs in "num_runs". Each run represents a number of zero events that may or may not terminate in a 1 event. Each run is stored in 7 bits. The LSB is 1 if the run terminates in a 1 event, 0 otherwise. The next 6 bits, for the case terminating with 1, contain the number of consecutive 0 zero events * 2; for the case terminating with 0, they store (number of consecutive 0 zero events - 1) * 2. A total of 6 bits (made up of 1 + 5) should have been enough.

Parameters
[in]melpis a pointer to dec_mel_st structure

Definition at line 190 of file ojph_block_decoder.cpp.

References ojph::local::dec_mel_st::bits, ojph::local::dec_mel_st::k, mel_read(), ojph::local::dec_mel_st::num_runs, ojph::local::dec_mel_st::runs, and ojph::local::dec_mel_st::tmp.

Referenced by mel_get_run().

◆ mel_emit_bit()

static void ojph::local::mel_emit_bit ( mel_struct melp,
int  v 
)
inlinestatic

◆ mel_encode()

static void ojph::local::mel_encode ( mel_struct melp,
bool  bit 
)
inlinestatic

◆ mel_get_run()

static int ojph::local::mel_get_run ( dec_mel_st melp)
inlinestatic

Retrieves one run from dec_mel_st; if there are no runs stored MEL segment is decoded.

Parameters
[in]melpis a pointer to dec_mel_st structure

Definition at line 280 of file ojph_block_decoder.cpp.

References mel_decode(), ojph::local::dec_mel_st::num_runs, and ojph::local::dec_mel_st::runs.

Referenced by ojph_decode_codeblock().

◆ mel_init() [1/2]

static void ojph::local::mel_init ( dec_mel_st melp,
ui8 bbuf,
int  lcup,
int  scup 
)
inlinestatic

Initiates a dec_mel_st structure for MEL decoding and reads some bytes in order to get the read address to a multiple of 4.

Parameters
[in]melpis a pointer to dec_mel_st structure
[in]bbufis a pointer to byte buffer
[in]lcupis the length of MagSgn+MEL+VLC segments
[in]scupis the length of MEL+VLC segments

Definition at line 241 of file ojph_block_decoder.cpp.

References ojph::local::dec_mel_st::bits, ojph::local::dec_mel_st::data, ojph::local::dec_mel_st::k, ojph::local::dec_mel_st::num_runs, ojph::local::dec_mel_st::runs, ojph::local::dec_mel_st::size, ojph::local::dec_mel_st::tmp, and ojph::local::dec_mel_st::unstuff.

Referenced by ojph_decode_codeblock(), and ojph_encode_codeblock().

◆ mel_init() [2/2]

◆ mel_read()

static void ojph::local::mel_read ( dec_mel_st melp)
inlinestatic

Reads and unstuffs the MEL bitstream.

This design needs more bytes in the codeblock buffer than the length of the cleanup pass by up to 2 bytes.

Unstuffing removes the MSB of the byte following a byte whose value is 0xFF; this prevents sequences larger than 0xFF7F in value from appearing the bitstream.

Parameters
[in]melpis a pointer to dec_mel_st structure

Definition at line 113 of file ojph_block_decoder.cpp.

References ojph::local::dec_mel_st::bits, ojph::local::dec_mel_st::data, ojph::local::dec_mel_st::size, ojph::local::dec_mel_st::tmp, and ojph::local::dec_mel_st::unstuff.

Referenced by mel_decode().

◆ ms_encode()

◆ ms_init()

static void ojph::local::ms_init ( ms_struct msp,
ui32  buffer_size,
ui8 data 
)
inlinestatic

◆ ms_terminate()

◆ ojph_decode_codeblock()

bool ojph::local::ojph_decode_codeblock ( ui8 coded_data,
ui32 decoded_data,
ui32  missing_msbs,
ui32  num_passes,
ui32  lengths1,
ui32  lengths2,
ui32  width,
ui32  height,
ui32  stride,
bool  stripe_causal 
)

Decodes one codeblock, processing the cleanup, siginificance propagation, and magnitude refinement pass.

Parameters
[in]coded_datais a pointer to bitstream
[in]decoded_datais a pointer to decoded codeblock data buf.
[in]missing_msbsis the number of missing MSBs
[in]num_passesis the number of passes: 1 if CUP only, 2 for CUP+SPP, and 3 for CUP+SPP+MRP
[in]lengths1is the length of cleanup pass
[in]lengths2is the length of refinement passes (either SPP only or SPP+MRP)
[in]widthis the decoded codeblock width
[in]heightis the decoded codeblock height
[in]strideis the decoded codeblock buffer stride
[in]stripe_causalis true for stripe causal mode

State storage One byte per quad; for 1024 columns, or 512 quads, we need 512 bytes. We are using 2 extra bytes one on the left and one on the right for convenience.

The MSB bit in each byte is (\sigma^nw | \sigma^n), and the 7 LSBs contain max(E^nw | E^n)

Definition at line 1014 of file ojph_block_decoder.cpp.

References ojph::count_leading_zeros(), decode_init_uvlc(), decode_noninit_uvlc(), frwd_advance(), mel_get_run(), mel_init(), OJPH_WARN, ojph::population_count(), rev_advance(), rev_advance_mrp(), rev_fetch(), rev_fetch_mrp(), rev_init(), rev_init_mrp(), vlc_tbl0, and vlc_tbl1.

Referenced by ojph::local::codeblock::decode().

◆ ojph_encode_codeblock()

◆ rev_advance()

ui32 ojph::local::rev_advance ( rev_struct vlcp,
ui32  num_bits 
)
inline

Consumes num_bits from a rev_struct structure.

Parameters
[in]vlcpis a pointer to rev_struct structure
[in]num_bitsis the number of bits to be removed

Definition at line 449 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, and ojph::local::rev_struct::tmp.

Referenced by ojph_decode_codeblock().

◆ rev_advance_mrp()

ui32 ojph::local::rev_advance_mrp ( rev_struct mrp,
ui32  num_bits 
)
inline

Consumes num_bits from a rev_struct structure.

Parameters
[in]mrpis a pointer to rev_struct structure
[in]num_bitsis the number of bits to be removed

Definition at line 581 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, and ojph::local::rev_struct::tmp.

Referenced by ojph_decode_codeblock().

◆ rev_fetch()

ui32 ojph::local::rev_fetch ( rev_struct vlcp)
inline

Retrieves 32 bits from the head of a rev_struct structure.

By the end of this call, vlcp->tmp must have no less than 33 bits

Parameters
[in]vlcpis a pointer to rev_struct structure

Definition at line 432 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, rev_read(), and ojph::local::rev_struct::tmp.

Referenced by ojph_decode_codeblock().

◆ rev_fetch_mrp()

ui32 ojph::local::rev_fetch_mrp ( rev_struct mrp)
inline

Retrieves 32 bits from the head of a rev_struct structure.

By the end of this call, mrp->tmp must have no less than 33 bits

Parameters
[in]mrpis a pointer to rev_struct structure

Definition at line 564 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, rev_read_mrp(), and ojph::local::rev_struct::tmp.

Referenced by ojph_decode_codeblock().

◆ rev_init()

void ojph::local::rev_init ( rev_struct vlcp,
ui8 data,
int  lcup,
int  scup 
)
inline

Initiates the rev_struct structure and reads a few bytes to move the read address to multiple of 4.

There is another similar rev_init_mrp subroutine. The difference is that this one, rev_init, discards the first 12 bits (they have the sum of the lengths of VLC and MEL segments), and first unstuff depends on first 4 bits.

Parameters
[in]vlcpis a pointer to rev_struct structure
[in]datais a pointer to byte at the start of the cleanup pass
[in]lcupis the length of MagSgn+MEL+VLC segments
[in]scupis the length of MEL+VLC segments

Definition at line 392 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, ojph::local::rev_struct::data, rev_read(), ojph::local::rev_struct::size, ojph::local::rev_struct::tmp, and ojph::local::rev_struct::unstuff.

Referenced by ojph_decode_codeblock().

◆ rev_init_mrp()

void ojph::local::rev_init_mrp ( rev_struct mrp,
ui8 data,
int  lcup,
int  len2 
)
inline

Initialized rev_struct structure for MRP segment, and reads a number of bytes such that the next 32 bits read are from an address that is a multiple of 4. Note this is designed for an architecture that read size must be compatible with the alignment of the read address.

There is another simiar subroutine rev_init. This subroutine does NOT skip the first 12 bits, and starts with unstuff set to true.

Parameters
[in]mrpis a pointer to rev_struct structure
[in]datais a pointer to byte at the start of the cleanup pass
[in]lcupis the length of MagSgn+MEL+VLC segments
[in]len2is the length of SPP+MRP segments

Definition at line 531 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, ojph::local::rev_struct::data, rev_read_mrp(), ojph::local::rev_struct::size, ojph::local::rev_struct::tmp, and ojph::local::rev_struct::unstuff.

Referenced by ojph_decode_codeblock().

◆ rev_read()

void ojph::local::rev_read ( rev_struct vlcp)
inline

Read and unstuff data from a backwardly-growing segment.

This reader can read up to 8 bytes from before the VLC segment. Care must be taken not read from unreadable memory, causing a segmentation fault.

Note that there is another subroutine rev_read_mrp that is slightly different. The other one fills zeros when the buffer is exhausted. This one basically does not care if the bytes are consumed, because any extra data should not be used in the actual decoding.

Unstuffing is needed to prevent sequences more than 0xFF8F from appearing in the bits stream; since we are reading backward, we keep watch when a value larger than 0x8F appears in the bitstream. If the byte following this is 0x7F, we unstuff this byte (ignore the MSB of that byte, which should be 0).

Parameters
[in]vlcpis a pointer to rev_struct structure

Definition at line 327 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, ojph::local::rev_struct::data, ojph::local::rev_struct::size, ojph::local::rev_struct::tmp, and ojph::local::rev_struct::unstuff.

Referenced by rev_fetch(), and rev_init().

◆ rev_read_mrp()

void ojph::local::rev_read_mrp ( rev_struct mrp)
inline

Reads and unstuffs from rev_struct.

This is different than rev_read in that this fills in zeros when the the available data is consumed. The other does not care about the values when all data is consumed.

See rev_read for more information about unstuffing

Parameters
[in]mrpis a pointer to rev_struct structure

Definition at line 468 of file ojph_block_decoder.cpp.

References ojph::local::rev_struct::bits, ojph::local::rev_struct::data, ojph::local::rev_struct::size, ojph::local::rev_struct::tmp, and ojph::local::rev_struct::unstuff.

Referenced by rev_fetch_mrp(), and rev_init_mrp().

◆ rotate_buffers() [1/2]

static void ojph::local::rotate_buffers ( line_buf line1,
line_buf line2,
line_buf line3,
line_buf line4 
)
static

◆ rotate_buffers() [2/2]

static void ojph::local::rotate_buffers ( line_buf line1,
line_buf line2,
line_buf line3,
line_buf line4,
line_buf line5,
line_buf line6 
)
static

◆ skip_marker()

static int ojph::local::skip_marker ( infile_base file,
const char *  marker,
const char *  msg,
int  msg_level,
bool  resilient 
)
static

◆ sse2_cnvrt_float_to_si32()

void ojph::local::sse2_cnvrt_float_to_si32 ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 72 of file ojph_colour_sse2.cpp.

Referenced by init_colour_transform_functions().

◆ sse2_cnvrt_float_to_si32_shftd()

void ojph::local::sse2_cnvrt_float_to_si32_shftd ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 54 of file ojph_colour_sse2.cpp.

Referenced by init_colour_transform_functions().

◆ sse2_cnvrt_si32_to_si32_shftd()

void ojph::local::sse2_cnvrt_si32_to_si32_shftd ( const si32 sp,
si32 dp,
int  shift,
ui32  width 
)

Definition at line 89 of file ojph_colour_sse2.cpp.

Referenced by init_colour_transform_functions().

◆ sse2_rct_backward()

void ojph::local::sse2_rct_backward ( const si32 y,
const si32 cb,
const si32 cr,
si32 r,
si32 g,
si32 b,
ui32  repeat 
)

Definition at line 124 of file ojph_colour_sse2.cpp.

Referenced by init_colour_transform_functions().

◆ sse2_rct_forward()

void ojph::local::sse2_rct_forward ( const si32 r,
const si32 g,
const si32 b,
si32 y,
si32 cb,
si32 cr,
ui32  repeat 
)

Definition at line 102 of file ojph_colour_sse2.cpp.

Referenced by init_colour_transform_functions().

◆ sse2_rev_horz_wvlt_bwd_tx()

void ojph::local::sse2_rev_horz_wvlt_bwd_tx ( line_buf dst,
line_buf lsrc,
line_buf hsrc,
ui32  width,
bool  even 
)

Definition at line 205 of file ojph_transform_sse2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ sse2_rev_horz_wvlt_fwd_tx()

void ojph::local::sse2_rev_horz_wvlt_fwd_tx ( line_buf src,
line_buf ldst,
line_buf hdst,
ui32  width,
bool  even 
)

Definition at line 96 of file ojph_transform_sse2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ sse2_rev_vert_wvlt_bwd_predict()

void ojph::local::sse2_rev_vert_wvlt_bwd_predict ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
)

Definition at line 165 of file ojph_transform_sse2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ sse2_rev_vert_wvlt_bwd_update()

void ojph::local::sse2_rev_vert_wvlt_bwd_update ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
)

Definition at line 184 of file ojph_transform_sse2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ sse2_rev_vert_wvlt_fwd_predict()

void ojph::local::sse2_rev_vert_wvlt_fwd_predict ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
)

Definition at line 56 of file ojph_transform_sse2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ sse2_rev_vert_wvlt_fwd_update()

void ojph::local::sse2_rev_vert_wvlt_fwd_update ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
)

Definition at line 75 of file ojph_transform_sse2.cpp.

References ojph::line_buf::i32.

Referenced by init_wavelet_transform_functions().

◆ sse_cnvrt_float_to_si32()

void ojph::local::sse_cnvrt_float_to_si32 ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 112 of file ojph_colour_sse.cpp.

Referenced by init_colour_transform_functions().

◆ sse_cnvrt_float_to_si32_shftd()

void ojph::local::sse_cnvrt_float_to_si32_shftd ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
)

Definition at line 85 of file ojph_colour_sse.cpp.

Referenced by init_colour_transform_functions().

◆ sse_cnvrt_si32_to_float()

void ojph::local::sse_cnvrt_si32_to_float ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
)

Definition at line 71 of file ojph_colour_sse.cpp.

Referenced by init_colour_transform_functions().

◆ sse_cnvrt_si32_to_float_shftd()

void ojph::local::sse_cnvrt_si32_to_float_shftd ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
)

Definition at line 55 of file ojph_colour_sse.cpp.

Referenced by init_colour_transform_functions().

◆ sse_ict_backward()

void ojph::local::sse_ict_backward ( const float *  y,
const float *  cb,
const float *  cr,
float *  r,
float *  g,
float *  b,
ui32  repeat 
)

◆ sse_ict_forward()

void ojph::local::sse_ict_forward ( const float *  r,
const float *  g,
const float *  b,
float *  y,
float *  cb,
float *  cr,
ui32  repeat 
)

◆ sse_irrev_horz_wvlt_bwd_tx()

void ojph::local::sse_irrev_horz_wvlt_bwd_tx ( line_buf src,
line_buf ldst,
line_buf hdst,
ui32  width,
bool  even 
)

◆ sse_irrev_horz_wvlt_fwd_tx()

void ojph::local::sse_irrev_horz_wvlt_fwd_tx ( line_buf src,
line_buf ldst,
line_buf hdst,
ui32  width,
bool  even 
)

◆ sse_irrev_vert_wvlt_K()

void ojph::local::sse_irrev_vert_wvlt_K ( const line_buf src,
line_buf dst,
bool  L_analysis_or_H_synthesis,
ui32  repeat 
)

◆ sse_irrev_vert_wvlt_step()

void ojph::local::sse_irrev_vert_wvlt_step ( const line_buf src1,
const line_buf src2,
line_buf dst,
int  step_num,
ui32  repeat 
)

◆ swap_byte() [1/3]

◆ swap_byte() [2/3]

static ui16 ojph::local::swap_byte ( ui16  t)
inlinestatic

Definition at line 374 of file ojph_params.cpp.

◆ swap_byte() [3/3]

static ui32 ojph::local::swap_byte ( ui32  t)
inlinestatic

Definition at line 381 of file ojph_params.cpp.

References swap_byte().

◆ terminate_mel_vlc()

◆ uvlc_init_tables()

static bool ojph::local::uvlc_init_tables ( )
static

Definition at line 194 of file ojph_block_encoder.cpp.

References ulvc_cwd_pre, ulvc_cwd_pre_len, ulvc_cwd_suf, and ulvc_cwd_suf_len.

◆ vlc_encode()

◆ vlc_init()

◆ vlc_init_tables()

static bool ojph::local::vlc_init_tables ( )
static

Definition at line 74 of file ojph_block_encoder.cpp.

References ojph::population_count(), vlc_tbl0, and vlc_tbl1.

Variable Documentation

◆ cnvrt_float_to_si32

void(* ojph::local::cnvrt_float_to_si32)(const float *sp, si32 *dp, float mul, ui32 width) ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
) = gen_cnvrt_float_to_si32

Definition at line 69 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::pull().

◆ cnvrt_float_to_si32_shftd

void(* ojph::local::cnvrt_float_to_si32_shftd)(const float *sp, si32 *dp, float mul, ui32 width) ( const float *  sp,
si32 dp,
float  mul,
ui32  width 
) = gen_cnvrt_float_to_si32_shftd

Definition at line 64 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::pull().

◆ cnvrt_si32_to_float

void(* ojph::local::cnvrt_si32_to_float)(const si32 *sp, float *dp, float mul, ui32 width) ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
) = gen_cnvrt_si32_to_float

Definition at line 59 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::push().

◆ cnvrt_si32_to_float_shftd

void(* ojph::local::cnvrt_si32_to_float_shftd)(const si32 *sp, float *dp, float mul, ui32 width) ( const si32 sp,
float *  dp,
float  mul,
ui32  width 
) = gen_cnvrt_si32_to_float_shftd

Definition at line 54 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::push().

◆ cnvrt_si32_to_si32_shftd

void(* ojph::local::cnvrt_si32_to_si32_shftd)(const si32 *sp, si32 *dp, int shift, ui32 width) ( const si32 sp,
si32 dp,
int  shift,
ui32  width 
) = gen_cnvrt_si32_to_si32_shftd

◆ colour_transform_functions_initialized

bool ojph::local::colour_transform_functions_initialized = false
static

Definition at line 98 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions().

◆ ict_backward

void(* ojph::local::ict_backward)(const float *y, const float *cb, const float *cr, float *r, float *g, float *b, ui32 repeat) ( const float *  y,
const float *  cb,
const float *  cr,
float *  r,
float *  g,
float *  b,
ui32  repeat 
) = gen_ict_backward

Definition at line 92 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::pull().

◆ ict_forward

void(* ojph::local::ict_forward)(const float *r, const float *g, const float *b, float *y, float *cb, float *cr, ui32 repeat) ( const float *  r,
const float *  g,
const float *  b,
float *  y,
float *  cb,
float *  cr,
ui32  repeat 
) = gen_ict_forward

Definition at line 86 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::push().

◆ irrev_horz_wvlt_bwd_tx

void(* ojph::local::irrev_horz_wvlt_bwd_tx)(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even) ( line_buf src,
line_buf ldst,
line_buf hdst,
ui32  width,
bool  even 
) = gen_irrev_horz_wvlt_bwd_tx

◆ irrev_horz_wvlt_fwd_tx

void(* ojph::local::irrev_horz_wvlt_fwd_tx)(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even) ( line_buf src,
line_buf ldst,
line_buf hdst,
ui32  width,
bool  even 
) = gen_irrev_horz_wvlt_fwd_tx

◆ irrev_vert_wvlt_K

void(* ojph::local::irrev_vert_wvlt_K)(const line_buf *src, line_buf *dst, bool L_analysis_or_H_synthesis, ui32 repeat) ( const line_buf src,
line_buf dst,
bool  L_analysis_or_H_synthesis,
ui32  repeat 
) = gen_irrev_vert_wvlt_K

◆ irrev_vert_wvlt_step

void(* ojph::local::irrev_vert_wvlt_step)(const line_buf *src1, const line_buf *src2, line_buf *dst, int step_num, ui32 repeat) ( const line_buf src1,
const line_buf src2,
line_buf dst,
int  step_num,
ui32  repeat 
) = gen_irrev_vert_wvlt_step

◆ rct_backward

void(* ojph::local::rct_backward)(const si32 *y, const si32 *cb, const si32 *cr, si32 *r, si32 *g, si32 *b, ui32 repeat) ( const si32 y,
const si32 cb,
const si32 cr,
si32 r,
si32 g,
si32 b,
ui32  repeat 
) = gen_rct_backward

Definition at line 80 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::pull().

◆ rct_forward

void(* ojph::local::rct_forward)(const si32 *r, const si32 *g, const si32 *b, si32 *y, si32 *cb, si32 *cr, ui32 repeat) ( const si32 r,
const si32 g,
const si32 b,
si32 y,
si32 cb,
si32 cr,
ui32  repeat 
) = gen_rct_forward

Definition at line 74 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions(), and ojph::local::tile::push().

◆ rev_horz_wvlt_bwd_tx

void(* ojph::local::rev_horz_wvlt_bwd_tx)(line_buf *dst, line_buf *lsrc, line_buf *hsrc, ui32 width, bool even) ( line_buf dst,
line_buf lsrc,
line_buf hsrc,
ui32  width,
bool  even 
) = gen_rev_horz_wvlt_bwd_tx

◆ rev_horz_wvlt_fwd_tx

void(* ojph::local::rev_horz_wvlt_fwd_tx)(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even) ( line_buf src,
line_buf ldst,
line_buf hdst,
ui32  width,
bool  even 
) = gen_rev_horz_wvlt_fwd_tx

◆ rev_vert_wvlt_bwd_predict

void(* ojph::local::rev_vert_wvlt_bwd_predict)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
) = gen_rev_vert_wvlt_bwd_predict

◆ rev_vert_wvlt_bwd_update

void(* ojph::local::rev_vert_wvlt_bwd_update)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
) = gen_rev_vert_wvlt_bwd_update

◆ rev_vert_wvlt_fwd_predict

void(* ojph::local::rev_vert_wvlt_fwd_predict)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
) = gen_rev_vert_wvlt_fwd_predict

◆ rev_vert_wvlt_fwd_update

void(* ojph::local::rev_vert_wvlt_fwd_update)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat) ( const line_buf src1,
const line_buf src2,
line_buf dst,
ui32  repeat 
) = gen_rev_vert_wvlt_fwd_update

◆ ulvc_cwd_pre

int ojph::local::ulvc_cwd_pre[33]
static

Definition at line 68 of file ojph_block_encoder.cpp.

Referenced by ojph_encode_codeblock(), and uvlc_init_tables().

◆ ulvc_cwd_pre_len

int ojph::local::ulvc_cwd_pre_len[33]
static

Definition at line 69 of file ojph_block_encoder.cpp.

Referenced by ojph_encode_codeblock(), and uvlc_init_tables().

◆ ulvc_cwd_suf

int ojph::local::ulvc_cwd_suf[33]
static

Definition at line 70 of file ojph_block_encoder.cpp.

Referenced by ojph_encode_codeblock(), and uvlc_init_tables().

◆ ulvc_cwd_suf_len

int ojph::local::ulvc_cwd_suf_len[33]
static

Definition at line 71 of file ojph_block_encoder.cpp.

Referenced by ojph_encode_codeblock(), and uvlc_init_tables().

◆ uvlc_tables_initialized

bool ojph::local::uvlc_tables_initialized = uvlc_init_tables()
static

Definition at line 219 of file ojph_block_encoder.cpp.

◆ vlc_tables_initialized

bool ojph::local::vlc_tables_initialized = vlc_init_tables()
static

Definition at line 218 of file ojph_block_encoder.cpp.

◆ vlc_tbl0

ui16 ojph::local::vlc_tbl0[2048] = { 0 }
static

Definition at line 64 of file ojph_block_encoder.cpp.

◆ vlc_tbl1

ui16 ojph::local::vlc_tbl1[2048] = { 0 }
static

Definition at line 65 of file ojph_block_encoder.cpp.

◆ wavelet_transform_functions_initialized

bool ojph::local::wavelet_transform_functions_initialized = false
static

Definition at line 115 of file ojph_transform.cpp.

Referenced by init_wavelet_transform_functions().