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

Classes

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

Typedefs

typedef void(* mem_clear_fun) (void *addr, size_t count)
 
typedef ui32(* find_max_val_fun32) (ui32 *addr)
 
typedef ui64(* find_max_val_fun64) (ui64 *addr)
 
typedef void(* tx_to_cb_fun32) (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
typedef void(* tx_to_cb_fun64) (const void *sp, ui64 *dp, ui32 K_max, float delta_inv, ui32 count, ui64 *max_val)
 
typedef void(* tx_from_cb_fun32) (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
typedef void(* tx_from_cb_fun64) (const ui64 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
typedef bool(* cb_decoder_fun32) (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)
 
typedef bool(* cb_decoder_fun64) (ui8 *coded_data, ui64 *decoded_data, ui32 missing_msbs, ui32 num_passes, ui32 lengths1, ui32 lengths2, ui32 width, ui32 height, ui32 stride, bool stripe_causal)
 
typedef void(* cb_encoder_fun32) (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)
 
typedef void(* cb_encoder_fun64) (ui64 *buf, ui32 missing_msbs, ui32 num_passes, ui32 width, ui32 height, ui32 stride, ui32 *lengths, ojph::mem_elastic_allocator *elastic, ojph::coded_lists *&coded)
 
using fn_proc_cq = __m256i(*)(ui32, __m256i *, __m256i &, const __m256i)
 
using fn_proc_mel_encode = void(*)(mel_struct *, __m256i &, __m256i &, __m256i, ui32, const __m256i)
 
using fn_proc_vlc_encode = void(*)(vlc_struct_avx2 *, ui32 *, ui32 *, ui32)
 

Enumerations

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

Functions

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 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_zeros (bit_write_buf *bbp, int num_zeros, 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)
 
void gen_mem_clear (void *addr, size_t count)
 
void sse_mem_clear (void *addr, size_t count)
 
void avx_mem_clear (void *addr, size_t count)
 
void wasm_mem_clear (void *addr, size_t count)
 
ui32 gen_find_max_val32 (ui32 *address)
 
ui32 sse2_find_max_val32 (ui32 *address)
 
ui32 avx2_find_max_val32 (ui32 *address)
 
ui32 wasm_find_max_val32 (ui32 *address)
 
ui64 gen_find_max_val64 (ui64 *address)
 
ui64 sse2_find_max_val64 (ui64 *address)
 
ui64 avx2_find_max_val64 (ui64 *address)
 
ui64 wasm_find_max_val64 (ui64 *address)
 
void gen_rev_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void sse2_rev_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void avx2_rev_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void gen_irv_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void sse2_irv_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void avx2_irv_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void wasm_rev_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void wasm_irv_tx_to_cb32 (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)
 
void gen_rev_tx_to_cb64 (const void *sp, ui64 *dp, ui32 K_max, float delta_inv, ui32 count, ui64 *max_val)
 
void sse2_rev_tx_to_cb64 (const void *sp, ui64 *dp, ui32 K_max, float delta_inv, ui32 count, ui64 *max_val)
 
void avx2_rev_tx_to_cb64 (const void *sp, ui64 *dp, ui32 K_max, float delta_inv, ui32 count, ui64 *max_val)
 
void wasm_rev_tx_to_cb64 (const void *sp, ui64 *dp, ui32 K_max, float delta_inv, ui32 count, ui64 *max_val)
 
void gen_rev_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void sse2_rev_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void avx2_rev_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void gen_irv_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void sse2_irv_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void avx2_irv_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void wasm_rev_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void wasm_irv_tx_from_cb32 (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void gen_rev_tx_from_cb64 (const ui64 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void sse2_rev_tx_from_cb64 (const ui64 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void avx2_rev_tx_from_cb64 (const ui64 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
void wasm_rev_tx_from_cb64 (const ui64 *sp, void *dp, ui32 K_max, float delta, ui32 count)
 
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 ui16 swap_byte (ui16 t)
 
static ui16 swap_byte (ui16 t)
 
static ui32 swap_byte (ui32 t)
 
static ui64 swap_byte (ui64 t)
 
static ui32 log2ceil (ui32 x)
 
static bool vlc_init_tables ()
 Initializes vlc_tbl0 and vlc_tbl1 tables, from table0.h and table1.h. More...
 
static bool uvlc_init_tables ()
 Initializes uvlc_tbl0 and uvlc_tbl1 tables. More...
 
bool ojph_decode_codeblock32 (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...
 
bool ojph_decode_codeblock64 (ui8 *coded_data, ui64 *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...
 
bool ojph_decode_codeblock_ssse3 (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...
 
bool ojph_decode_codeblock_avx2 (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...
 
bool ojph_decode_codeblock_wasm (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 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...
 
static void rev_read (rev_struct *vlcp)
 Read and unstuff data from a backwardly-growing segment. More...
 
static 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...
 
static ui32 rev_fetch (rev_struct *vlcp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
static ui32 rev_advance (rev_struct *vlcp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
static void rev_read_mrp (rev_struct *mrp)
 Reads and unstuffs from rev_struct. More...
 
static 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...
 
static ui32 rev_fetch_mrp (rev_struct *mrp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
static ui32 rev_advance_mrp (rev_struct *mrp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
template<int X>
static void frwd_read (frwd_struct32 *msp)
 Read and unstuffs 32 bits from forward-growing bitstream. More...
 
template<int X>
static void frwd_init (frwd_struct32 *msp, const ui8 *data, int size)
 Initialize frwd_struct32 struct and reads some bytes. More...
 
static void frwd_advance (frwd_struct32 *msp, ui32 num_bits)
 Consume num_bits bits from the bitstream of frwd_struct32. More...
 
template<int X>
static ui32 frwd_fetch (frwd_struct32 *msp)
 Fetches 32 bits from the frwd_struct32 bitstream. More...
 
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...
 
static void rev_read8 (rev_struct *vlcp)
 Read and unstuff data from a backwardly-growing segment. More...
 
static void rev_init8 (rev_struct *vlcp, ui8 *data, int lcup, int scup)
 Initiates the rev_struct structure and reads the first byte. More...
 
static ui64 rev_fetch64 (rev_struct *vlcp)
 Fills the temporary variable (vlcp->tmp) by up to 64 bits. More...
 
static ui64 rev_advance64 (rev_struct *vlcp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
static void rev_read_mrp (rev_struct *mrp)
 Reads and unstuffs from rev_struct. More...
 
static 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...
 
static ui32 rev_fetch_mrp (rev_struct *mrp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
static ui32 rev_advance_mrp (rev_struct *mrp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
template<int X>
static void frwd_read (frwd_struct64 *msp)
 Read and unstuffs 32 bits from forward-growing bitstream. More...
 
template<ui8 X>
static void frwd_read8 (frwd_struct64 *msp)
 Read and unstuffs 8 bits from forward-growing bitstream. More...
 
template<int X>
static void frwd_init (frwd_struct64 *msp, const ui8 *data, int size)
 Initialize frwd_struct64 struct and reads some bytes. More...
 
template<ui8 X>
static void frwd_init8 (frwd_struct64 *msp, const ui8 *data, int size)
 Initialize frwd_struct64 struct and reads some bytes. More...
 
static void frwd_advance (frwd_struct64 *msp, ui32 num_bits)
 Consume num_bits bits from the bitstream of frwd_struct64. More...
 
template<int X>
static ui32 frwd_fetch (frwd_struct64 *msp)
 Fetches 32 bits from the frwd_struct64 bitstream. More...
 
template<ui8 X>
static ui64 frwd_fetch64 (frwd_struct64 *msp)
 Fetches up to 64 bits from the frwd_struct64 bitstream. More...
 
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...
 
static void rev_read (rev_struct *vlcp)
 Read and unstuff data from a backwardly-growing segment. More...
 
static 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...
 
static ui32 rev_fetch (rev_struct *vlcp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
static ui32 rev_advance (rev_struct *vlcp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
static void rev_read_mrp (rev_struct *mrp)
 Reads and unstuffs from rev_struct. More...
 
static 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...
 
static ui32 rev_fetch_mrp (rev_struct *mrp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
template<int X>
static void frwd_read (frwd_struct_avx2 *msp)
 Read and unstuffs 16 bytes from forward-growing bitstream. More...
 
template<int X>
static void frwd_init (frwd_struct_avx2 *msp, const ui8 *data, int size)
 Initialize frwd_struct_avx2 struct and reads some bytes. More...
 
static void frwd_advance (frwd_struct_avx2 *msp, ui32 num_bits)
 Consume num_bits bits from the bitstream of frwd_struct_avx2. More...
 
template<int X>
static __m128i frwd_fetch (frwd_struct_avx2 *msp)
 Fetches 32 bits from the frwd_struct_avx2 bitstream. More...
 
static __m256i decode_two_quad32_avx2 (__m256i inf_u_q, __m256i U_q, frwd_struct_avx2 *magsgn, ui32 p, __m128i &vn)
 decodes twos consecutive quads (one octet), using 32 bit data More...
 
static __m256i decode_four_quad16 (const __m128i inf_u_q, __m128i U_q, frwd_struct_avx2 *magsgn, ui32 p, __m128i &vn)
 decodes twos consecutive quads (one octet), using 16 bit data More...
 
__m256i avx2_lzcnt_epi32 (__m256i v)
 
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...
 
static void rev_read (rev_struct *vlcp)
 Read and unstuff data from a backwardly-growing segment. More...
 
static 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...
 
static ui32 rev_fetch (rev_struct *vlcp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
static ui32 rev_advance (rev_struct *vlcp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
static void rev_read_mrp (rev_struct *mrp)
 Reads and unstuffs from rev_struct. More...
 
static 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...
 
static ui32 rev_fetch_mrp (rev_struct *mrp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
template<int X>
static void frwd_read (frwd_struct_ssse3 *msp)
 Read and unstuffs 16 bytes from forward-growing bitstream. More...
 
template<int X>
static void frwd_init (frwd_struct_ssse3 *msp, const ui8 *data, int size)
 Initialize frwd_struct_ssse3 struct and reads some bytes. More...
 
static void frwd_advance (frwd_struct_ssse3 *msp, ui32 num_bits)
 Consume num_bits bits from the bitstream of frwd_struct_ssse3. More...
 
template<int X>
static __m128i frwd_fetch (frwd_struct_ssse3 *msp)
 Fetches 32 bits from the frwd_struct_ssse3 bitstream. More...
 
template<int N>
static __m128i decode_one_quad32 (const __m128i inf_u_q, __m128i U_q, frwd_struct_ssse3 *magsgn, ui32 p, __m128i &vn)
 decodes one quad, using 32 bit data More...
 
static __m128i decode_two_quad16 (const __m128i inf_u_q, __m128i U_q, frwd_struct_ssse3 *magsgn, ui32 p, __m128i &vn)
 decodes twos consecutive quads (one octet), using 16 bit data More...
 
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...
 
static void rev_read (rev_struct *vlcp)
 Read and unstuff data from a backwardly-growing segment. More...
 
static 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...
 
static ui32 rev_fetch (rev_struct *vlcp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
static ui32 rev_advance (rev_struct *vlcp, ui32 num_bits)
 Consumes num_bits from a rev_struct structure. More...
 
static void rev_read_mrp (rev_struct *mrp)
 Reads and unstuffs from rev_struct. More...
 
static 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...
 
static ui32 rev_fetch_mrp (rev_struct *mrp)
 Retrieves 32 bits from the head of a rev_struct structure. More...
 
template<int X>
static void frwd_read (frwd_struct *msp)
 Read and unstuffs 16 bytes from forward-growing bitstream. More...
 
template<int X>
static void frwd_init (frwd_struct *msp, const ui8 *data, int size)
 Initialize frwd_struct struct and reads some bytes. More...
 
static void frwd_advance (frwd_struct *msp, ui32 num_bits)
 Consume num_bits bits from the bitstream of frwd_struct. More...
 
template<int X>
static v128_t frwd_fetch (frwd_struct *msp)
 Fetches 32 bits from the frwd_struct bitstream. More...
 
template<int N>
static v128_t decode_one_quad32 (const v128_t inf_u_q, v128_t U_q, frwd_struct *magsgn, ui32 p, v128_t &vn)
 decodes one quad, using 32 bit data More...
 
static v128_t decode_two_quad16 (const v128_t inf_u_q, v128_t U_q, frwd_struct *magsgn, ui32 p, v128_t &vn)
 decodes twos consecutive quads (one octet), using 16 bit data More...
 
static bool vlc_init_tables ()
 
static bool uvlc_init_tables ()
 
bool initialize_block_encoder_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_encode64 (ms_struct *msp, ui64 cwd, int cwd_len)
 
static void ms_terminate (ms_struct *msp)
 
void ojph_encode_codeblock32 (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 ojph_encode_codeblock64 (ui64 *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 ojph_encode_codeblock_avx2 (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 ojph_encode_codeblock_avx512 (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)
 
bool initialize_block_encoder_tables_avx2 ()
 
bool initialize_block_encoder_tables_avx512 ()
 
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_avx2 *vlcp, ui32 buffer_size, ui8 *data)
 
static void vlc_encode (vlc_struct_avx2 *vlcp, ui32 cwd, int cwd_len)
 
static void terminate_mel_vlc (mel_struct *melp, vlc_struct_avx2 *vlcp)
 
static void ms_init (ms_struct *msp, ui32 buffer_size, ui8 *data)
 
static void ms_encode (ms_struct *msp, ui64 cwd, int cwd_len)
 
static void ms_terminate (ms_struct *msp)
 
__m256i avx2_cmpneq_epi32 (__m256i v, __m256i v2)
 
static void proc_pixel (__m256i *src_vec, ui32 p, __m256i *eq_vec, __m256i *s_vec, __m256i &rho_vec, __m256i &e_qmax_vec)
 
static void rotate_matrix (__m256i *matrix)
 
static void proc_ms_encode (ms_struct *msp, __m256i &tuple_vec, __m256i &uq_vec, __m256i &rho_vec, __m256i *s_vec)
 
static __m256i cal_eps_vec (__m256i *eq_vec, __m256i &u_q_vec, __m256i &e_qmax_vec)
 
static void update_lep (ui32 x, __m256i &prev_e_val_vec, __m256i *eq_vec, __m256i *e_val_vec, const __m256i left_shift)
 
static void update_lcxp (ui32 x, __m256i &prev_cx_val_vec, __m256i &rho_vec, __m256i *cx_val_vec, const __m256i left_shift)
 
static __m256i cal_tuple (__m256i &cq_vec, __m256i &rho_vec, __m256i &eps_vec, ui32 *vlc_tbl)
 
static __m256i proc_cq1 (ui32 x, __m256i *cx_val_vec, __m256i &rho_vec, const __m256i right_shift)
 
static __m256i proc_cq2 (ui32 x, __m256i *cx_val_vec, __m256i &rho_vec, const __m256i right_shift)
 
static void proc_mel_encode1 (mel_struct *melp, __m256i &cq_vec, __m256i &rho_vec, __m256i u_q_vec, ui32 ignore, const __m256i right_shift)
 
static void proc_mel_encode2 (mel_struct *melp, __m256i &cq_vec, __m256i &rho_vec, __m256i u_q_vec, ui32 ignore, const __m256i right_shift)
 
static void proc_vlc_encode1 (vlc_struct_avx2 *vlcp, ui32 *tuple, ui32 *u_q, ui32 ignore)
 
static void proc_vlc_encode2 (vlc_struct_avx2 *vlcp, ui32 *tuple, ui32 *u_q, ui32 ignore)
 
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_avx512 *vlcp, ui32 buffer_size, ui8 *data)
 
static void vlc_encode (vlc_struct_avx512 *vlcp, ui32 cwd, int cwd_len)
 
static void terminate_mel_vlc (mel_struct *melp, vlc_struct_avx512 *vlcp)
 
static void ms_init (ms_struct *msp, ui32 buffer_size, ui8 *data)
 
static void ms_encode (ms_struct *msp, ui64 cwd, int cwd_len)
 
static void ms_terminate (ms_struct *msp)
 
static void proc_pixel (__m512i *src_vec, ui32 p, __m512i *eq_vec, __m512i *s_vec, __m512i &rho_vec, __m512i &e_qmax_vec)
 
static void rotate_matrix (__m512i *matrix)
 
static void proc_ms_encode (ms_struct *msp, __m512i &tuple_vec, __m512i &uq_vec, __m512i &rho_vec, __m512i *s_vec)
 
static __m512i cal_eps_vec (__m512i *eq_vec, __m512i &u_q_vec, __m512i &e_qmax_vec)
 
static void update_lep (ui32 x, __m512i &prev_e_val_vec, __m512i *eq_vec, __m512i *e_val_vec, const __m512i left_shift)
 
static void update_lcxp (ui32 x, __m512i &prev_cx_val_vec, __m512i &rho_vec, __m512i *cx_val_vec, const __m512i left_shift)
 
static __m512i cal_tuple (__m512i &cq_vec, __m512i &rho_vec, __m512i &eps_vec, ui32 *vlc_tbl)
 
static __m512i proc_cq1 (ui32 x, __m512i *cx_val_vec, __m512i &rho_vec, const __m512i right_shift)
 
static __m512i proc_cq2 (ui32 x, __m512i *cx_val_vec, __m512i &rho_vec, const __m512i right_shift)
 
static void proc_mel_encode1 (mel_struct *melp, __m512i &cq_vec, __m512i &rho_vec, __m512i u_q_vec, ui32 ignore, const __m512i right_shift)
 
static void proc_mel_encode2 (mel_struct *melp, __m512i &cq_vec, __m512i &rho_vec, __m512i u_q_vec, ui32 ignore, const __m512i right_shift)
 
static void proc_vlc_encode1 (vlc_struct_avx512 *vlcp, ui32 *tuple, ui32 *u_q, ui32 ignore)
 
static void proc_vlc_encode2 (vlc_struct_avx512 *vlcp, ui32 *tuple, ui32 *u_q, ui32 ignore)
 
void init_colour_transform_functions ()
 
void gen_rev_convert (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width)
 
void gen_rev_convert_nlt_type3 (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 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 line_buf *r, const line_buf *g, const line_buf *b, line_buf *y, line_buf *cb, line_buf *cr, ui32 repeat)
 
void gen_rct_backward (const line_buf *y, const line_buf *cb, const line_buf *cr, line_buf *r, line_buf *g, line_buf *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)
 
static __m256i avx2_mm256_srai_epi64 (__m256i a, int amt, __m256i m)
 
void avx2_rev_convert (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width)
 
void avx2_rev_convert_nlt_type3 (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width)
 
void avx2_rct_forward (const line_buf *r, const line_buf *g, const line_buf *b, line_buf *y, line_buf *cb, line_buf *cr, ui32 repeat)
 
void avx2_rct_backward (const line_buf *y, const line_buf *cb, const line_buf *cr, line_buf *r, line_buf *g, line_buf *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_rev_convert (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width)
 
void sse2_rev_convert_nlt_type3 (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width)
 
void sse2_rct_forward (const line_buf *r, const line_buf *g, const line_buf *b, line_buf *y, line_buf *cb, line_buf *cr, ui32 repeat)
 
void sse2_rct_backward (const line_buf *y, const line_buf *cb, const line_buf *cr, line_buf *r, line_buf *g, line_buf *b, ui32 repeat)
 
void wasm_cnvrt_si32_to_float_shftd (const si32 *sp, float *dp, float mul, ui32 width)
 
void wasm_cnvrt_si32_to_float (const si32 *sp, float *dp, float mul, ui32 width)
 
void wasm_cnvrt_float_to_si32_shftd (const float *sp, si32 *dp, float mul, ui32 width)
 
void wasm_cnvrt_float_to_si32 (const float *sp, si32 *dp, float mul, ui32 width)
 
void wasm_rev_convert (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width)
 
void wasm_rev_convert_nlt_type3 (const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width)
 
void wasm_rct_forward (const line_buf *r, const line_buf *g, const line_buf *b, line_buf *y, line_buf *cb, line_buf *cr, ui32 repeat)
 
void wasm_rct_backward (const line_buf *y, const line_buf *cb, const line_buf *cr, line_buf *r, line_buf *g, line_buf *b, ui32 repeat)
 
void wasm_ict_forward (const float *r, const float *g, const float *b, float *y, float *cb, float *cr, ui32 repeat)
 
void wasm_ict_backward (const float *y, const float *cb, const float *cr, float *r, float *g, float *b, ui32 repeat)
 
static __m128i sse2_mm_srai_epi64 (__m128i a, int amt, __m128i m)
 
static __m128i sse2_cvtlo_epi32_epi64 (__m128i a, __m128i zero)
 
static __m128i sse2_cvthi_epi32_epi64 (__m128i a, __m128i zero)
 
void init_wavelet_transform_functions ()
 
static void gen_rev_vert_step32 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
static void gen_rev_vert_step64 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void gen_rev_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
static void gen_rev_horz_ana32 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
static void gen_rev_horz_ana64 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void gen_rev_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
static void gen_rev_horz_syn32 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
static void gen_rev_horz_syn64 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void gen_rev_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void gen_irv_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void gen_irv_vert_times_K (float K, const line_buf *aug, ui32 repeat)
 
void gen_irv_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void gen_irv_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
static void avx_multiply_const (float *p, float f, int width)
 
static void avx_deinterleave32 (float *dpl, float *dph, float *sp, int width)
 
static void avx_interleave32 (float *dp, float *spl, float *sph, int width)
 
void avx_irv_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void avx_irv_vert_times_K (float K, const line_buf *aug, ui32 repeat)
 
void avx_irv_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void avx_irv_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
static __m256i avx2_mm256_srai_epi64 (__m256i a, int amt, __m256i m)
 
static void avx2_deinterleave32 (float *dpl, float *dph, float *sp, int width)
 
static void avx2_interleave32 (float *dp, float *spl, float *sph, int width)
 
static void avx2_deinterleave64 (double *dpl, double *dph, double *sp, int width)
 
static void avx2_interleave64 (double *dp, double *spl, double *sph, int width)
 
static void avx2_rev_vert_step32 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
static void avx2_rev_vert_step64 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void avx2_rev_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
static void avx2_rev_horz_ana32 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
static void avx2_rev_horz_ana64 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void avx2_rev_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
static void avx2_rev_horz_syn32 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
static void avx2_rev_horz_syn64 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void avx2_rev_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
static void avx512_deinterleave32 (float *dpl, float *dph, float *sp, int width)
 
static void avx512_interleave32 (float *dp, float *spl, float *sph, int width)
 
static void avx512_deinterleave64 (double *dpl, double *dph, double *sp, int width)
 
static void avx512_interleave64 (double *dp, double *spl, double *sph, int width)
 
static void avx512_multiply_const (float *p, float f, int width)
 
void avx512_irv_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void avx512_irv_vert_times_K (float K, const line_buf *aug, ui32 repeat)
 
void avx512_irv_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void avx512_irv_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void avx512_rev_vert_step32 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void avx512_rev_vert_step64 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void avx512_rev_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void avx512_rev_horz_ana32 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void avx512_rev_horz_ana64 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void avx512_rev_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void avx512_rev_horz_syn32 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void avx512_rev_horz_syn64 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void avx512_rev_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void sse_irv_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void sse_irv_vert_times_K (float K, const line_buf *aug, ui32 repeat)
 
void sse_irv_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void sse_irv_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void sse2_rev_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void sse2_rev_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void sse2_rev_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void wasm_irv_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void wasm_irv_vert_times_K (float K, const line_buf *aug, ui32 repeat)
 
void wasm_irv_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void wasm_irv_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void wasm_rev_vert_step (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void wasm_rev_horz_ana (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void wasm_rev_horz_syn (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
static void sse_deinterleave32 (float *dpl, float *dph, float *sp, int width)
 
static void sse_interleave32 (float *dp, float *spl, float *sph, int width)
 
static void sse_multiply_const (float *p, float f, int width)
 
static __m128i sse2_mm_srai_epi64 (__m128i a, int amt, __m128i m)
 
static void sse2_deinterleave32 (float *dpl, float *dph, float *sp, int width)
 
static void sse2_interleave32 (float *dp, float *spl, float *sph, int width)
 
static void sse2_deinterleave64 (double *dpl, double *dph, double *sp, int width)
 
static void sse2_interleave64 (double *dp, double *spl, double *sph, int width)
 
static void sse2_rev_vert_step32 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
static void sse2_rev_vert_step64 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
static void sse2_rev_horz_ana32 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
static void sse2_rev_horz_ana64 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void sse2_rev_horz_syn32 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void sse2_rev_horz_syn64 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
static void wasm_deinterleave32 (float *dpl, float *dph, float *sp, int width)
 
static void wasm_interleave32 (float *dp, float *spl, float *sph, int width)
 
static void wasm_deinterleave64 (double *dpl, double *dph, double *sp, int width)
 
static void wasm_interleave64 (double *dp, double *spl, double *sph, int width)
 
static void wasm_multiply_const (float *p, float f, int width)
 
void wasm_rev_vert_step32 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
void wasm_rev_vert_step64 (const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
 
static void wasm_rev_horz_ana32 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
static void wasm_rev_horz_ana64 (const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
 
void wasm_rev_horz_syn32 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 
void wasm_rev_horz_syn64 (const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
 

Variables

ui16 vlc_tbl0 [1024] = { 0 }
 vlc_tbl0 contains decoding information for initial row of quads More...
 
ui16 vlc_tbl1 [1024] = { 0 }
 vlc_tbl1 contains decoding information for non-initial row of quads More...
 
ui16 uvlc_tbl0 [256+64] = { 0 }
 uvlc_tbl0 contains decoding information for initial row of quads More...
 
ui16 uvlc_tbl1 [256] = { 0 }
 uvlc_tbl1 contains decoding information for non-initial row of quads More...
 
ui8 uvlc_bias [256+64] = { 0 }
 uvlc_bias contains decoding info. for initial row of quads More...
 
static bool vlc_tables_initialized = vlc_init_tables()
 Initializes VLC tables vlc_tbl0 and vlc_tbl1. More...
 
static bool uvlc_tables_initialized = uvlc_init_tables()
 Initializes UVLC tables uvlc_tbl0 and uvlc_tbl1. More...
 
const int num_uvlc_entries = 75
 
static uvlc_tbl_struct uvlc_tbl [num_uvlc_entries]
 
static bool tables_initialized = false
 
static ui32 ulvc_cwd_pre [33]
 
static int ulvc_cwd_pre_len [33]
 
static ui32 ulvc_cwd_suf [33]
 
static int ulvc_cwd_suf_len [33]
 
static bool tables_initialized = false
 
static ui32 ulvc_cwd_pre [33]
 
static int ulvc_cwd_pre_len [33]
 
static ui32 ulvc_cwd_suf [33]
 
static int ulvc_cwd_suf_len [33]
 
static bool tables_initialized = false
 
void(* rev_convert )(const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width) = NULL
 
void(* rev_convert_nlt_type3 )(const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width) = NULL
 
void(* cnvrt_si32_to_float_shftd )(const si32 *sp, float *dp, float mul, ui32 width) = NULL
 
void(* cnvrt_si32_to_float )(const si32 *sp, float *dp, float mul, ui32 width) = NULL
 
void(* cnvrt_float_to_si32_shftd )(const float *sp, si32 *dp, float mul, ui32 width) = NULL
 
void(* cnvrt_float_to_si32 )(const float *sp, si32 *dp, float mul, ui32 width) = NULL
 
void(* rct_forward )(const line_buf *r, const line_buf *g, const line_buf *b, line_buf *y, line_buf *cb, line_buf *cr, ui32 repeat) = NULL
 
void(* rct_backward )(const line_buf *r, const line_buf *g, const line_buf *b, line_buf *y, line_buf *cb, line_buf *cr, ui32 repeat) = NULL
 
void(* ict_forward )(const float *r, const float *g, const float *b, float *y, float *cb, float *cr, ui32 repeat) = NULL
 
void(* ict_backward )(const float *y, const float *cb, const float *cr, float *r, float *g, float *b, ui32 repeat) = NULL
 
static bool colour_transform_functions_initialized = false
 
void(* rev_vert_step )(const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis) = NULL
 
void(* rev_horz_ana )(const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even) = NULL
 
void(* rev_horz_syn )(const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even) = NULL
 
void(* irv_vert_step )(const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis) = NULL
 
void(* irv_vert_times_K )(float K, const line_buf *aug, ui32 repeat) = NULL
 
void(* irv_horz_ana )(const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even) = NULL
 
void(* irv_horz_syn )(const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even) = NULL
 
static bool wavelet_transform_functions_initialized = false
 

Typedef Documentation

◆ cb_decoder_fun32

typedef bool(* ojph::local::cb_decoder_fun32) (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)

Definition at line 73 of file ojph_codeblock_fun.h.

◆ cb_decoder_fun64

typedef bool(* ojph::local::cb_decoder_fun64) (ui8 *coded_data, ui64 *decoded_data, ui32 missing_msbs, ui32 num_passes, ui32 lengths1, ui32 lengths2, ui32 width, ui32 height, ui32 stride, bool stripe_causal)

Definition at line 77 of file ojph_codeblock_fun.h.

◆ cb_encoder_fun32

typedef void(* ojph::local::cb_encoder_fun32) (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)

Definition at line 82 of file ojph_codeblock_fun.h.

◆ cb_encoder_fun64

typedef void(* ojph::local::cb_encoder_fun64) (ui64 *buf, ui32 missing_msbs, ui32 num_passes, ui32 width, ui32 height, ui32 stride, ui32 *lengths, ojph::mem_elastic_allocator *elastic, ojph::coded_lists *&coded)

Definition at line 87 of file ojph_codeblock_fun.h.

◆ find_max_val_fun32

typedef ui32(* ojph::local::find_max_val_fun32) (ui32 *addr)

Definition at line 54 of file ojph_codeblock_fun.h.

◆ find_max_val_fun64

typedef ui64(* ojph::local::find_max_val_fun64) (ui64 *addr)

Definition at line 56 of file ojph_codeblock_fun.h.

◆ fn_proc_cq

typedef __m512i(* ojph::local::fn_proc_cq)(ui32, __m512i *, __m512i &, const __m512i)

Definition at line 820 of file ojph_block_encoder_avx2.cpp.

◆ fn_proc_mel_encode

typedef void(* ojph::local::fn_proc_mel_encode)(mel_struct *, __m512i &, __m512i &, __m512i, ui32, const __m512i)

Definition at line 890 of file ojph_block_encoder_avx2.cpp.

◆ fn_proc_vlc_encode

Definition at line 997 of file ojph_block_encoder_avx2.cpp.

◆ mem_clear_fun

typedef void(* ojph::local::mem_clear_fun) (void *addr, size_t count)

Definition at line 51 of file ojph_codeblock_fun.h.

◆ tx_from_cb_fun32

typedef void(* ojph::local::tx_from_cb_fun32) (const ui32 *sp, void *dp, ui32 K_max, float delta, ui32 count)

Definition at line 66 of file ojph_codeblock_fun.h.

◆ tx_from_cb_fun64

typedef void(* ojph::local::tx_from_cb_fun64) (const ui64 *sp, void *dp, ui32 K_max, float delta, ui32 count)

Definition at line 69 of file ojph_codeblock_fun.h.

◆ tx_to_cb_fun32

typedef void(* ojph::local::tx_to_cb_fun32) (const void *sp, ui32 *dp, ui32 K_max, float delta_inv, ui32 count, ui32 *max_val)

Definition at line 59 of file ojph_codeblock_fun.h.

◆ tx_to_cb_fun64

typedef void(* ojph::local::tx_to_cb_fun64) (const void *sp, ui64 *dp, ui32 K_max, float delta_inv, ui32 count, ui64 *max_val)

Definition at line 62 of file ojph_codeblock_fun.h.

Enumeration Type Documentation

◆ JP2K_MARKER

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

Definition at line 119 of file ojph_params_local.h.

Function Documentation

◆ avx2_cmpneq_epi32()

__m256i ojph::local::avx2_cmpneq_epi32 ( __m256i  v,
__m256i  v2 
)
inline

◆ avx2_deinterleave32()

static void ojph::local::avx2_deinterleave32 ( float *  dpl,
float *  dph,
float *  sp,
int  width 
)
inlinestatic

Definition at line 70 of file ojph_transform_avx2.cpp.

Referenced by avx2_rev_horz_ana32().

◆ avx2_deinterleave64()

static void ojph::local::avx2_deinterleave64 ( double *  dpl,
double *  dph,
double *  sp,
int  width 
)
inlinestatic

Definition at line 104 of file ojph_transform_avx2.cpp.

Referenced by avx2_rev_horz_ana64().

◆ avx2_find_max_val32()

ui32 ojph::local::avx2_find_max_val32 ( ui32 address)

Definition at line 46 of file ojph_codestream_avx2.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_find_max_val64()

ui64 ojph::local::avx2_find_max_val64 ( ui64 address)

Definition at line 60 of file ojph_codestream_avx2.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_interleave32()

static void ojph::local::avx2_interleave32 ( float *  dp,
float *  spl,
float *  sph,
int  width 
)
inlinestatic

Definition at line 87 of file ojph_transform_avx2.cpp.

Referenced by avx2_rev_horz_syn32().

◆ avx2_interleave64()

static void ojph::local::avx2_interleave64 ( double *  dp,
double *  spl,
double *  sph,
int  width 
)
inlinestatic

Definition at line 121 of file ojph_transform_avx2.cpp.

Referenced by avx2_rev_horz_syn64().

◆ avx2_irv_tx_from_cb32()

void ojph::local::avx2_irv_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 140 of file ojph_codestream_avx2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_irv_tx_to_cb32()

void ojph::local::avx2_irv_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 96 of file ojph_codestream_avx2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_lzcnt_epi32()

__m256i ojph::local::avx2_lzcnt_epi32 ( __m256i  v)
inline

Definition at line 1037 of file ojph_block_decoder_avx2.cpp.

Referenced by ojph_decode_codeblock_avx2(), and proc_pixel().

◆ avx2_mm256_srai_epi64() [1/2]

static __m256i ojph::local::avx2_mm256_srai_epi64 ( __m256i  a,
int  amt,
__m256i  m 
)
inlinestatic

◆ avx2_mm256_srai_epi64() [2/2]

static __m256i ojph::local::avx2_mm256_srai_epi64 ( __m256i  a,
int  amt,
__m256i  m 
)
inlinestatic

Definition at line 58 of file ojph_transform_avx2.cpp.

◆ avx2_rct_backward()

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

◆ avx2_rct_forward()

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

◆ avx2_rev_convert()

void ojph::local::avx2_rev_convert ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ avx2_rev_convert_nlt_type3()

void ojph::local::avx2_rev_convert_nlt_type3 ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ avx2_rev_horz_ana()

void ojph::local::avx2_rev_horz_ana ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)

◆ avx2_rev_horz_ana32()

◆ avx2_rev_horz_ana64()

◆ avx2_rev_horz_syn()

void ojph::local::avx2_rev_horz_syn ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)

◆ avx2_rev_horz_syn32()

◆ avx2_rev_horz_syn64()

◆ avx2_rev_tx_from_cb32()

void ojph::local::avx2_rev_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 122 of file ojph_codestream_avx2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_rev_tx_from_cb64()

void ojph::local::avx2_rev_tx_from_cb64 ( const ui64 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 189 of file ojph_codestream_avx2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_rev_tx_to_cb32()

void ojph::local::avx2_rev_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 72 of file ojph_codestream_avx2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_rev_tx_to_cb64()

void ojph::local::avx2_rev_tx_to_cb64 ( const void *  sp,
ui64 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui64 max_val 
)

Definition at line 160 of file ojph_codestream_avx2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ avx2_rev_vert_step()

void ojph::local::avx2_rev_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ avx2_rev_vert_step32()

static void ojph::local::avx2_rev_vert_step32 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)
static

◆ avx2_rev_vert_step64()

static void ojph::local::avx2_rev_vert_step64 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)
static

◆ avx512_deinterleave32()

static void ojph::local::avx512_deinterleave32 ( float *  dpl,
float *  dph,
float *  sp,
int  width 
)
static

Definition at line 58 of file ojph_transform_avx512.cpp.

Referenced by avx512_irv_horz_ana(), and avx512_rev_horz_ana32().

◆ avx512_deinterleave64()

static void ojph::local::avx512_deinterleave64 ( double *  dpl,
double *  dph,
double *  sp,
int  width 
)
static

Definition at line 129 of file ojph_transform_avx512.cpp.

Referenced by avx512_rev_horz_ana64().

◆ avx512_interleave32()

static void ojph::local::avx512_interleave32 ( float *  dp,
float *  spl,
float *  sph,
int  width 
)
static

Definition at line 94 of file ojph_transform_avx512.cpp.

Referenced by avx512_irv_horz_syn(), and avx512_rev_horz_syn32().

◆ avx512_interleave64()

static void ojph::local::avx512_interleave64 ( double *  dp,
double *  spl,
double *  sph,
int  width 
)
static

Definition at line 163 of file ojph_transform_avx512.cpp.

Referenced by avx512_rev_horz_syn64().

◆ avx512_irv_horz_ana()

◆ avx512_irv_horz_syn()

◆ avx512_irv_vert_step()

void ojph::local::avx512_irv_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ avx512_irv_vert_times_K()

void ojph::local::avx512_irv_vert_times_K ( float  K,
const line_buf aug,
ui32  repeat 
)

◆ avx512_multiply_const()

static void ojph::local::avx512_multiply_const ( float *  p,
float  f,
int  width 
)
inlinestatic

◆ avx512_rev_horz_ana()

void ojph::local::avx512_rev_horz_ana ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)

◆ avx512_rev_horz_ana32()

◆ avx512_rev_horz_ana64()

◆ avx512_rev_horz_syn()

void ojph::local::avx512_rev_horz_syn ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)

◆ avx512_rev_horz_syn32()

◆ avx512_rev_horz_syn64()

◆ avx512_rev_vert_step()

void ojph::local::avx512_rev_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ avx512_rev_vert_step32()

void ojph::local::avx512_rev_vert_step32 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ avx512_rev_vert_step64()

void ojph::local::avx512_rev_vert_step64 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ 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 97 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 81 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 67 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 51 of file ojph_colour_avx.cpp.

Referenced by init_colour_transform_functions().

◆ avx_deinterleave32()

static void ojph::local::avx_deinterleave32 ( float *  dpl,
float *  dph,
float *  sp,
int  width 
)
inlinestatic

Definition at line 66 of file ojph_transform_avx.cpp.

Referenced by avx_irv_horz_ana().

◆ 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_interleave32()

static void ojph::local::avx_interleave32 ( float *  dp,
float *  spl,
float *  sph,
int  width 
)
inlinestatic

Definition at line 83 of file ojph_transform_avx.cpp.

Referenced by avx_irv_horz_syn().

◆ avx_irv_horz_ana()

◆ avx_irv_horz_syn()

◆ avx_irv_vert_step()

void ojph::local::avx_irv_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ avx_irv_vert_times_K()

void ojph::local::avx_irv_vert_times_K ( float  K,
const line_buf aug,
ui32  repeat 
)

Definition at line 123 of file ojph_transform_avx.cpp.

References avx_multiply_const(), and ojph::line_buf::f32.

Referenced by init_wavelet_transform_functions().

◆ avx_mem_clear()

void ojph::local::avx_mem_clear ( void *  addr,
size_t  count 
)

Definition at line 45 of file ojph_codestream_avx.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ avx_multiply_const()

static void ojph::local::avx_multiply_const ( float *  p,
float  f,
int  width 
)
inlinestatic

Definition at line 54 of file ojph_transform_avx.cpp.

Referenced by avx_irv_horz_ana(), avx_irv_horz_syn(), and avx_irv_vert_times_K().

◆ 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 124 of file ojph_bitbuffer_write.h.

References bb_put_bit().

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

◆ bb_put_zeros()

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

Definition at line 114 of file ojph_bitbuffer_write.h.

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()

◆ bb_terminate() [1/2]

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

◆ bb_terminate() [2/2]

◆ cal_eps_vec() [1/2]

static __m256i ojph::local::cal_eps_vec ( __m256i *  eq_vec,
__m256i &  u_q_vec,
__m256i &  e_qmax_vec 
)
static

Definition at line 705 of file ojph_block_encoder_avx2.cpp.

References ZERO.

Referenced by ojph_encode_codeblock_avx2(), and ojph_encode_codeblock_avx512().

◆ cal_eps_vec() [2/2]

static __m512i ojph::local::cal_eps_vec ( __m512i *  eq_vec,
__m512i &  u_q_vec,
__m512i &  e_qmax_vec 
)
static

Definition at line 713 of file ojph_block_encoder_avx512.cpp.

References ONE, and ZERO.

◆ cal_tuple() [1/2]

static __m256i ojph::local::cal_tuple ( __m256i &  cq_vec,
__m256i &  rho_vec,
__m256i &  eps_vec,
ui32 vlc_tbl 
)
static

◆ cal_tuple() [2/2]

static __m512i ojph::local::cal_tuple ( __m512i &  cq_vec,
__m512i &  rho_vec,
__m512i &  eps_vec,
ui32 vlc_tbl 
)
static

Definition at line 783 of file ojph_block_encoder_avx512.cpp.

◆ decode_four_quad16()

static __m256i ojph::local::decode_four_quad16 ( const __m128i  inf_u_q,
__m128i  U_q,
frwd_struct_avx2 magsgn,
ui32  p,
__m128i &  vn 
)
inlinestatic

decodes twos consecutive quads (one octet), using 16 bit data

Parameters
inf_u_qdecoded VLC code, with interleaved u values
U_qU values
magsgnstructure for forward data buffer
pbitplane at which we are decoding
vnused for handling E values (stores v_n values)
Returns
__m128i decoded quad

Definition at line 899 of file ojph_block_decoder_avx2.cpp.

References frwd_advance().

Referenced by ojph_decode_codeblock_avx2().

◆ decode_one_quad32() [1/2]

template<int N>
static __m128i ojph::local::decode_one_quad32 ( const __m128i  inf_u_q,
__m128i  U_q,
frwd_struct_ssse3 magsgn,
ui32  p,
__m128i &  vn 
)
inlinestatic

decodes one quad, using 32 bit data

Template Parameters
N0 for the first quad and 1 for the second quad in an octet
Parameters
inf_u_qdecoded VLC code, with interleaved u values
U_qU values
magsgnstructure for forward data buffer
pbitplane at which we are decoding
vnused for handling E values (stores v_n values)
Returns
__m128i decoded quad

Definition at line 786 of file ojph_block_decoder_ssse3.cpp.

References frwd_advance().

◆ decode_one_quad32() [2/2]

template<int N>
static v128_t ojph::local::decode_one_quad32 ( const v128_t  inf_u_q,
v128_t  U_q,
frwd_struct magsgn,
ui32  p,
v128_t &  vn 
)
inlinestatic

decodes one quad, using 32 bit data

Template Parameters
N0 for the first quad and 1 for the second quad in an octet
Parameters
inf_u_qdecoded VLC code, with interleaved u values
U_qU values
magsgnstructure for forward data buffer
pbitplane at which we are decoding
vnused for handling E values (stores v_n values)
Returns
v128_t decoded quad

Definition at line 799 of file ojph_block_decoder_wasm.cpp.

References frwd_advance(), OJPH_REPEAT4, and OJPH_REPEAT8.

◆ decode_two_quad16() [1/2]

static __m128i ojph::local::decode_two_quad16 ( const __m128i  inf_u_q,
__m128i  U_q,
frwd_struct_ssse3 magsgn,
ui32  p,
__m128i &  vn 
)
inlinestatic

decodes twos consecutive quads (one octet), using 16 bit data

Parameters
inf_u_qdecoded VLC code, with interleaved u values
U_qU values
magsgnstructure for forward data buffer
pbitplane at which we are decoding
vnused for handling E values (stores v_n values)
Returns
__m128i decoded quad

Definition at line 896 of file ojph_block_decoder_ssse3.cpp.

References frwd_advance().

Referenced by ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ decode_two_quad16() [2/2]

static v128_t ojph::local::decode_two_quad16 ( const v128_t  inf_u_q,
v128_t  U_q,
frwd_struct magsgn,
ui32  p,
v128_t &  vn 
)
inlinestatic

decodes twos consecutive quads (one octet), using 16 bit data

Parameters
inf_u_qdecoded VLC code, with interleaved u values
U_qU values
magsgnstructure for forward data buffer
pbitplane at which we are decoding
vnused for handling E values (stores v_n values)
Returns
v128_t decoded quad

Definition at line 915 of file ojph_block_decoder_wasm.cpp.

References frwd_advance(), and OJPH_REPEAT8.

◆ decode_two_quad32_avx2()

static __m256i ojph::local::decode_two_quad32_avx2 ( __m256i  inf_u_q,
__m256i  U_q,
frwd_struct_avx2 magsgn,
ui32  p,
__m128i &  vn 
)
inlinestatic

decodes twos consecutive quads (one octet), using 32 bit data

Parameters
inf_u_qdecoded VLC code, with interleaved u values
U_qU values
magsgnstructure for forward data buffer
pbitplane at which we are decoding
vnused for handling E values (stores v_n values)
Returns
__m256i decoded two quads

Definition at line 785 of file ojph_block_decoder_avx2.cpp.

References frwd_advance().

Referenced by ojph_decode_codeblock_avx2().

◆ find_marker()

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

◆ frwd_advance() [1/5]

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

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 730 of file ojph_block_decoder_wasm.cpp.

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

◆ frwd_advance() [2/5]

static void ojph::local::frwd_advance ( frwd_struct32 msp,
ui32  num_bits 
)
inlinestatic

◆ frwd_advance() [3/5]

static void ojph::local::frwd_advance ( frwd_struct64 msp,
ui32  num_bits 
)
inlinestatic

Consume num_bits bits from the bitstream of frwd_struct64.

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

Definition at line 706 of file ojph_block_decoder64.cpp.

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

◆ frwd_advance() [4/5]

static void ojph::local::frwd_advance ( frwd_struct_avx2 msp,
ui32  num_bits 
)
inlinestatic

Consume num_bits bits from the bitstream of frwd_struct_avx2.

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

Definition at line 723 of file ojph_block_decoder_avx2.cpp.

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

◆ frwd_advance() [5/5]

static void ojph::local::frwd_advance ( frwd_struct_ssse3 msp,
ui32  num_bits 
)
inlinestatic

Consume num_bits bits from the bitstream of frwd_struct_ssse3.

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

Definition at line 720 of file ojph_block_decoder_ssse3.cpp.

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

◆ frwd_fetch() [1/5]

template<int X>
static v128_t ojph::local::frwd_fetch ( frwd_struct msp)
inlinestatic

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 773 of file ojph_block_decoder_wasm.cpp.

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

◆ frwd_fetch() [2/5]

template<int X>
static ui32 ojph::local::frwd_fetch ( frwd_struct32 msp)
inlinestatic

Fetches 32 bits from the frwd_struct32 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_struct32

Definition at line 714 of file ojph_block_decoder32.cpp.

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

◆ frwd_fetch() [3/5]

template<int X>
static ui32 ojph::local::frwd_fetch ( frwd_struct64 msp)
inlinestatic

Fetches 32 bits from the frwd_struct64 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_struct64

Definition at line 722 of file ojph_block_decoder64.cpp.

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

◆ frwd_fetch() [4/5]

template<int X>
static __m128i ojph::local::frwd_fetch ( frwd_struct_avx2 msp)
inlinestatic

Fetches 32 bits from the frwd_struct_avx2 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_avx2

Definition at line 763 of file ojph_block_decoder_avx2.cpp.

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

◆ frwd_fetch() [5/5]

template<int X>
static __m128i ojph::local::frwd_fetch ( frwd_struct_ssse3 msp)
inlinestatic

Fetches 32 bits from the frwd_struct_ssse3 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_ssse3

Definition at line 760 of file ojph_block_decoder_ssse3.cpp.

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

◆ frwd_fetch64()

template<ui8 X>
static ui64 ojph::local::frwd_fetch64 ( frwd_struct64 msp)
inlinestatic

Fetches up to 64 bits from the frwd_struct64 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_struct64

Definition at line 742 of file ojph_block_decoder64.cpp.

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

◆ frwd_init() [1/5]

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

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 709 of file ojph_block_decoder_wasm.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_init() [2/5]

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

Initialize frwd_struct32 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_struct32
[in]datais a pointer to the start of data
[in]sizeis the number of byte in the bitstream

Definition at line 666 of file ojph_block_decoder32.cpp.

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

◆ frwd_init() [3/5]

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

Initialize frwd_struct64 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_struct64
[in]datais a pointer to the start of data
[in]sizeis the number of byte in the bitstream

Definition at line 653 of file ojph_block_decoder64.cpp.

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

◆ frwd_init() [4/5]

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

Initialize frwd_struct_avx2 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_avx2
[in]datais a pointer to the start of data
[in]sizeis the number of byte in the bitstream

Definition at line 702 of file ojph_block_decoder_avx2.cpp.

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

◆ frwd_init() [5/5]

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

Initialize frwd_struct_ssse3 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_ssse3
[in]datais a pointer to the start of data
[in]sizeis the number of byte in the bitstream

Definition at line 699 of file ojph_block_decoder_ssse3.cpp.

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

◆ frwd_init8()

template<ui8 X>
static void ojph::local::frwd_init8 ( frwd_struct64 msp,
const ui8 data,
int  size 
)
inlinestatic

Initialize frwd_struct64 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_struct64
[in]datais a pointer to the start of data
[in]sizeis the number of byte in the bitstream

Definition at line 689 of file ojph_block_decoder64.cpp.

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

◆ frwd_read() [1/5]

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

Read and unstuffs 16 bytes 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 16 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 618 of file ojph_block_decoder_wasm.cpp.

References ojph::local::frwd_struct::bits, ojph::count_leading_zeros(), ojph::local::frwd_struct::data, OJPH_REPEAT16, ojph::local::frwd_struct::size, ojph::local::frwd_struct::tmp, and ojph::local::frwd_struct::unstuff.

◆ frwd_read() [2/5]

template<int X>
static void ojph::local::frwd_read ( frwd_struct32 msp)
inlinestatic

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_struct32 structure

Definition at line 609 of file ojph_block_decoder32.cpp.

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

◆ frwd_read() [3/5]

template<int X>
static void ojph::local::frwd_read ( frwd_struct64 msp)
inlinestatic

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_struct64 structure

Definition at line 561 of file ojph_block_decoder64.cpp.

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

◆ frwd_read() [4/5]

template<int X>
static void ojph::local::frwd_read ( frwd_struct_avx2 msp)
inlinestatic

Read and unstuffs 16 bytes 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 compressed 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 16 bytes.

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

Definition at line 613 of file ojph_block_decoder_avx2.cpp.

References ojph::local::frwd_struct_avx2::bits, ojph::count_leading_zeros(), ojph::local::frwd_struct_avx2::data, ojph::local::frwd_struct_avx2::size, ojph::local::frwd_struct_avx2::tmp, and ojph::local::frwd_struct_avx2::unstuff.

◆ frwd_read() [5/5]

template<int X>
static void ojph::local::frwd_read ( frwd_struct_ssse3 msp)
inlinestatic

Read and unstuffs 16 bytes 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 compressed 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 16 bytes.

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

Definition at line 610 of file ojph_block_decoder_ssse3.cpp.

References ojph::local::frwd_struct_ssse3::bits, ojph::count_leading_zeros(), ojph::local::frwd_struct_ssse3::data, ojph::local::frwd_struct_ssse3::size, ojph::local::frwd_struct_ssse3::tmp, and ojph::local::frwd_struct_ssse3::unstuff.

◆ frwd_read8()

template<ui8 X>
static void ojph::local::frwd_read8 ( frwd_struct64 msp)
inlinestatic

Read and unstuffs 8 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.

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

Definition at line 625 of file ojph_block_decoder64.cpp.

References ojph::local::frwd_struct64::bits, ojph::local::frwd_struct64::data, ojph::local::frwd_struct64::size, ojph::local::frwd_struct64::tmp, and ojph::local::frwd_struct64::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 315 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 307 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 299 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 291 of file ojph_colour.cpp.

Referenced by init_colour_transform_functions().

◆ gen_find_max_val32()

ui32 ojph::local::gen_find_max_val32 ( ui32 address)

Definition at line 53 of file ojph_codestream_gen.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_find_max_val64()

ui64 ojph::local::gen_find_max_val64 ( ui64 address)

Definition at line 56 of file ojph_codestream_gen.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ 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_irv_horz_ana()

void ojph::local::gen_irv_horz_ana ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)

◆ gen_irv_horz_syn()

void ojph::local::gen_irv_horz_syn ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)

◆ gen_irv_tx_from_cb32()

void ojph::local::gen_irv_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 156 of file ojph_codestream_gen.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_irv_tx_to_cb32()

void ojph::local::gen_irv_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 103 of file ojph_codestream_gen.cpp.

References ojph::ojph_trunc(), and ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_irv_vert_step()

void ojph::local::gen_irv_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ gen_irv_vert_times_K()

void ojph::local::gen_irv_vert_times_K ( float  K,
const line_buf aug,
ui32  repeat 
)

Definition at line 696 of file ojph_transform.cpp.

References ojph::line_buf::f32.

Referenced by init_wavelet_transform_functions().

◆ gen_mem_clear()

void ojph::local::gen_mem_clear ( void *  addr,
size_t  count 
)

Definition at line 45 of file ojph_codestream_gen.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_rct_backward()

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

◆ gen_rct_forward()

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

◆ gen_rev_convert()

void ojph::local::gen_rev_convert ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ gen_rev_convert_nlt_type3()

void ojph::local::gen_rev_convert_nlt_type3 ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ gen_rev_horz_ana()

void ojph::local::gen_rev_horz_ana ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)

◆ gen_rev_horz_ana32()

static void ojph::local::gen_rev_horz_ana32 ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)
static

◆ gen_rev_horz_ana64()

static void ojph::local::gen_rev_horz_ana64 ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)
static

◆ gen_rev_horz_syn()

void ojph::local::gen_rev_horz_syn ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)

◆ gen_rev_horz_syn32()

static void ojph::local::gen_rev_horz_syn32 ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)
static

◆ gen_rev_horz_syn64()

static void ojph::local::gen_rev_horz_syn64 ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)
static

◆ gen_rev_tx_from_cb32()

void ojph::local::gen_rev_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 124 of file ojph_codestream_gen.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_rev_tx_from_cb64()

void ojph::local::gen_rev_tx_from_cb64 ( const ui64 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 140 of file ojph_codestream_gen.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_rev_tx_to_cb32()

void ojph::local::gen_rev_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 59 of file ojph_codestream_gen.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_rev_tx_to_cb64()

void ojph::local::gen_rev_tx_to_cb64 ( const void *  sp,
ui64 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui64 max_val 
)

Definition at line 81 of file ojph_codestream_gen.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ gen_rev_vert_step()

void ojph::local::gen_rev_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ gen_rev_vert_step32()

static void ojph::local::gen_rev_vert_step32 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)
static

◆ gen_rev_vert_step64()

static void ojph::local::gen_rev_vert_step64 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)
static

◆ init_colour_transform_functions()

void ojph::local::init_colour_transform_functions ( )

Definition at line 105 of file ojph_colour.cpp.

References avx2_rct_backward(), avx2_rct_forward(), avx2_rev_convert(), avx2_rev_convert_nlt_type3(), avx_cnvrt_float_to_si32(), avx_cnvrt_float_to_si32_shftd(), avx_cnvrt_si32_to_float(), avx_cnvrt_si32_to_float_shftd(), avx_ict_backward(), avx_ict_forward(), cnvrt_float_to_si32, cnvrt_float_to_si32_shftd, cnvrt_si32_to_float, cnvrt_si32_to_float_shftd, colour_transform_functions_initialized, gen_cnvrt_float_to_si32(), gen_cnvrt_float_to_si32_shftd(), gen_cnvrt_si32_to_float(), gen_cnvrt_si32_to_float_shftd(), gen_ict_backward(), gen_ict_forward(), gen_rct_backward(), gen_rct_forward(), gen_rev_convert(), gen_rev_convert_nlt_type3(), ojph::get_cpu_ext_level(), ict_backward, ict_forward, rct_backward, rct_forward, rev_convert, rev_convert_nlt_type3, sse2_cnvrt_float_to_si32(), sse2_cnvrt_float_to_si32_shftd(), sse2_rct_backward(), sse2_rct_forward(), sse2_rev_convert(), sse2_rev_convert_nlt_type3(), sse_cnvrt_float_to_si32(), sse_cnvrt_float_to_si32_shftd(), sse_cnvrt_si32_to_float(), sse_cnvrt_si32_to_float_shftd(), sse_ict_backward(), sse_ict_forward(), wasm_cnvrt_float_to_si32(), wasm_cnvrt_float_to_si32_shftd(), wasm_cnvrt_si32_to_float(), wasm_cnvrt_si32_to_float_shftd(), wasm_ict_backward(), wasm_ict_forward(), wasm_rct_backward(), wasm_rct_forward(), wasm_rev_convert(), wasm_rev_convert_nlt_type3(), ojph::X86_CPU_EXT_LEVEL_AVX, ojph::X86_CPU_EXT_LEVEL_AVX2, ojph::X86_CPU_EXT_LEVEL_SSE, and ojph::X86_CPU_EXT_LEVEL_SSE2.

Referenced by ojph::local::codestream::codestream().

◆ init_wavelet_transform_functions()

◆ initialize_block_encoder_tables()

bool ojph::local::initialize_block_encoder_tables ( )

◆ initialize_block_encoder_tables_avx2()

bool ojph::local::initialize_block_encoder_tables_avx2 ( )

◆ initialize_block_encoder_tables_avx512()

bool ojph::local::initialize_block_encoder_tables_avx512 ( )

◆ log2ceil()

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

◆ mel_decode() [1/5]

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 170 of file ojph_block_decoder32.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_decode() [2/5]

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 170 of file ojph_block_decoder64.cpp.

References mel_read().

◆ mel_decode() [3/5]

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 171 of file ojph_block_decoder_avx2.cpp.

References mel_read().

◆ mel_decode() [4/5]

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 172 of file ojph_block_decoder_ssse3.cpp.

References mel_read().

◆ mel_decode() [5/5]

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 180 of file ojph_block_decoder_wasm.cpp.

References mel_read().

◆ mel_emit_bit() [1/3]

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

◆ mel_emit_bit() [2/3]

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

Definition at line 267 of file ojph_block_encoder_avx2.cpp.

◆ mel_emit_bit() [3/3]

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

Definition at line 267 of file ojph_block_encoder_avx512.cpp.

◆ mel_encode() [1/3]

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

◆ mel_encode() [2/3]

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

Definition at line 280 of file ojph_block_encoder_avx2.cpp.

References mel_emit_bit(), ojph_max, and ojph_min.

◆ mel_encode() [3/3]

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

Definition at line 280 of file ojph_block_encoder_avx512.cpp.

References mel_emit_bit(), ojph_max, and ojph_min.

◆ mel_get_run() [1/5]

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 260 of file ojph_block_decoder32.cpp.

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

Referenced by ojph_decode_codeblock32(), ojph_decode_codeblock64(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ mel_get_run() [2/5]

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 260 of file ojph_block_decoder64.cpp.

References mel_decode().

◆ mel_get_run() [3/5]

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 261 of file ojph_block_decoder_avx2.cpp.

References mel_decode().

◆ mel_get_run() [4/5]

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 262 of file ojph_block_decoder_ssse3.cpp.

References mel_decode().

◆ mel_get_run() [5/5]

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 270 of file ojph_block_decoder_wasm.cpp.

References mel_decode().

◆ mel_init() [1/8]

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 221 of file ojph_block_decoder32.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_codeblock32(), ojph_decode_codeblock64(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), ojph_decode_codeblock_wasm(), ojph_encode_codeblock32(), ojph_encode_codeblock64(), ojph_encode_codeblock_avx2(), and ojph_encode_codeblock_avx512().

◆ mel_init() [2/8]

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 221 of file ojph_block_decoder64.cpp.

◆ mel_init() [3/8]

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 222 of file ojph_block_decoder_avx2.cpp.

◆ mel_init() [4/8]

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 223 of file ojph_block_decoder_ssse3.cpp.

◆ mel_init() [5/8]

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 231 of file ojph_block_decoder_wasm.cpp.

◆ mel_init() [6/8]

◆ mel_init() [7/8]

static void ojph::local::mel_init ( mel_struct melp,
ui32  buffer_size,
ui8 data 
)
inlinestatic

Definition at line 253 of file ojph_block_encoder_avx2.cpp.

◆ mel_init() [8/8]

static void ojph::local::mel_init ( mel_struct melp,
ui32  buffer_size,
ui8 data 
)
inlinestatic

Definition at line 253 of file ojph_block_encoder_avx512.cpp.

◆ mel_read() [1/5]

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 93 of file ojph_block_decoder32.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().

◆ mel_read() [2/5]

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 93 of file ojph_block_decoder64.cpp.

◆ mel_read() [3/5]

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 94 of file ojph_block_decoder_avx2.cpp.

◆ mel_read() [4/5]

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 95 of file ojph_block_decoder_ssse3.cpp.

◆ mel_read() [5/5]

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 103 of file ojph_block_decoder_wasm.cpp.

◆ ms_encode() [1/3]

◆ ms_encode() [2/3]

static void ojph::local::ms_encode ( ms_struct msp,
ui64  cwd,
int  cwd_len 
)
inlinestatic

Definition at line 441 of file ojph_block_encoder_avx2.cpp.

References OJPH_ERROR, and ojph_min.

◆ ms_encode() [3/3]

static void ojph::local::ms_encode ( ms_struct msp,
ui64  cwd,
int  cwd_len 
)
inlinestatic

Definition at line 441 of file ojph_block_encoder_avx512.cpp.

References OJPH_ERROR, and ojph_min.

◆ ms_encode64()

◆ ms_init() [1/3]

◆ ms_init() [2/3]

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

Definition at line 429 of file ojph_block_encoder_avx2.cpp.

◆ ms_init() [3/3]

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

Definition at line 429 of file ojph_block_encoder_avx512.cpp.

◆ ms_terminate() [1/3]

◆ ms_terminate() [2/3]

static void ojph::local::ms_terminate ( ms_struct msp)
inlinestatic

Definition at line 464 of file ojph_block_encoder_avx2.cpp.

References OJPH_ERROR.

◆ ms_terminate() [3/3]

static void ojph::local::ms_terminate ( ms_struct msp)
inlinestatic

Definition at line 464 of file ojph_block_encoder_avx512.cpp.

References OJPH_ERROR.

◆ ojph_decode_codeblock32()

bool ojph::local::ojph_decode_codeblock32 ( 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

Definition at line 742 of file ojph_block_decoder32.cpp.

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

Referenced by ojph::local::codeblock_fun::init().

◆ ojph_decode_codeblock64()

bool ojph::local::ojph_decode_codeblock64 ( ui8 coded_data,
ui64 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

Definition at line 766 of file ojph_block_decoder64.cpp.

References ojph::count_leading_zeros(), frwd_advance(), mel_get_run(), mel_init(), ojph_max, OJPH_WARN, ojph::population_count(), rev_advance64(), rev_advance_mrp(), rev_fetch64(), rev_fetch_mrp(), rev_init8(), rev_init_mrp(), uvlc_bias, uvlc_tbl0, uvlc_tbl1, vlc_tbl0, and vlc_tbl1.

Referenced by ojph::local::codeblock_fun::init().

◆ ojph_decode_codeblock_avx2()

bool ojph::local::ojph_decode_codeblock_avx2 ( 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

Definition at line 1066 of file ojph_block_decoder_avx2.cpp.

References avx2_lzcnt_epi32(), decode_four_quad16(), decode_two_quad32_avx2(), frwd_advance(), mel_get_run(), mel_init(), ojph_max, ojph_unused, OJPH_WARN, rev_advance(), rev_advance_mrp(), rev_fetch(), rev_fetch_mrp(), rev_init(), rev_init_mrp(), uvlc_tbl0, uvlc_tbl1, vlc_tbl0, and vlc_tbl1.

Referenced by ojph::local::codeblock_fun::init().

◆ ojph_decode_codeblock_ssse3()

bool ojph::local::ojph_decode_codeblock_ssse3 ( 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

Definition at line 1022 of file ojph_block_decoder_ssse3.cpp.

References decode_two_quad16(), frwd_advance(), mel_get_run(), mel_init(), ojph_max, OJPH_WARN, rev_advance(), rev_advance_mrp(), rev_fetch(), rev_fetch_mrp(), rev_init(), rev_init_mrp(), uvlc_tbl0, uvlc_tbl1, vlc_tbl0, and vlc_tbl1.

Referenced by ojph::local::codeblock_fun::init().

◆ ojph_decode_codeblock_wasm()

bool ojph::local::ojph_decode_codeblock_wasm ( 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

Definition at line 1051 of file ojph_block_decoder_wasm.cpp.

References decode_two_quad16(), frwd_advance(), mel_get_run(), mel_init(), ojph_max, OJPH_REPEAT16, OJPH_REPEAT2, OJPH_REPEAT4, OJPH_REPEAT8, OJPH_WARN, rev_advance(), rev_advance_mrp(), rev_fetch(), rev_fetch_mrp(), rev_init(), rev_init_mrp(), uvlc_tbl0, uvlc_tbl1, vlc_tbl0, and vlc_tbl1.

Referenced by ojph::local::codeblock_fun::init().

◆ ojph_encode_codeblock32()

◆ ojph_encode_codeblock64()

◆ ojph_encode_codeblock_avx2()

◆ ojph_encode_codeblock_avx512()

◆ proc_cq1() [1/2]

static __m256i ojph::local::proc_cq1 ( ui32  x,
__m256i *  cx_val_vec,
__m256i &  rho_vec,
const __m256i  right_shift 
)
static

Definition at line 784 of file ojph_block_encoder_avx2.cpp.

References ojph_unused, and ONE.

Referenced by ojph_encode_codeblock_avx2(), and ojph_encode_codeblock_avx512().

◆ proc_cq1() [2/2]

static __m512i ojph::local::proc_cq1 ( ui32  x,
__m512i *  cx_val_vec,
__m512i &  rho_vec,
const __m512i  right_shift 
)
static

Definition at line 794 of file ojph_block_encoder_avx512.cpp.

References ojph_unused.

◆ proc_cq2() [1/2]

static __m256i ojph::local::proc_cq2 ( ui32  x,
__m256i *  cx_val_vec,
__m256i &  rho_vec,
const __m256i  right_shift 
)
static

◆ proc_cq2() [2/2]

static __m512i ojph::local::proc_cq2 ( ui32  x,
__m512i *  cx_val_vec,
__m512i &  rho_vec,
const __m512i  right_shift 
)
static

Definition at line 807 of file ojph_block_encoder_avx512.cpp.

◆ proc_mel_encode1() [1/2]

static void ojph::local::proc_mel_encode1 ( mel_struct melp,
__m256i &  cq_vec,
__m256i &  rho_vec,
__m256i  u_q_vec,
ui32  ignore,
const __m256i  right_shift 
)
static

◆ proc_mel_encode1() [2/2]

static void ojph::local::proc_mel_encode1 ( mel_struct melp,
__m512i &  cq_vec,
__m512i &  rho_vec,
__m512i  u_q_vec,
ui32  ignore,
const __m512i  right_shift 
)
static

Definition at line 832 of file ojph_block_encoder_avx512.cpp.

References mel_encode(), and ZERO.

◆ proc_mel_encode2() [1/2]

static void ojph::local::proc_mel_encode2 ( mel_struct melp,
__m256i &  cq_vec,
__m256i &  rho_vec,
__m256i  u_q_vec,
ui32  ignore,
const __m256i  right_shift 
)
static

◆ proc_mel_encode2() [2/2]

static void ojph::local::proc_mel_encode2 ( mel_struct melp,
__m512i &  cq_vec,
__m512i &  rho_vec,
__m512i  u_q_vec,
ui32  ignore,
const __m512i  right_shift 
)
static

Definition at line 874 of file ojph_block_encoder_avx512.cpp.

References mel_encode(), ojph_unused, and ZERO.

◆ proc_ms_encode() [1/2]

static void ojph::local::proc_ms_encode ( ms_struct msp,
__m256i &  tuple_vec,
__m256i &  uq_vec,
__m256i &  rho_vec,
__m256i *  s_vec 
)
static

◆ proc_ms_encode() [2/2]

static void ojph::local::proc_ms_encode ( ms_struct msp,
__m512i &  tuple_vec,
__m512i &  uq_vec,
__m512i &  rho_vec,
__m512i *  s_vec 
)
static

Definition at line 632 of file ojph_block_encoder_avx512.cpp.

References ms_encode(), ONE, rotate_matrix(), and ZERO.

◆ proc_pixel() [1/2]

static void ojph::local::proc_pixel ( __m256i *  src_vec,
ui32  p,
__m256i *  eq_vec,
__m256i *  s_vec,
__m256i &  rho_vec,
__m256i &  e_qmax_vec 
)
static

◆ proc_pixel() [2/2]

static void ojph::local::proc_pixel ( __m512i *  src_vec,
ui32  p,
__m512i *  eq_vec,
__m512i *  s_vec,
__m512i &  rho_vec,
__m512i &  e_qmax_vec 
)
static

Definition at line 500 of file ojph_block_encoder_avx512.cpp.

References ONE, and ZERO.

◆ proc_vlc_encode1() [1/2]

static void ojph::local::proc_vlc_encode1 ( vlc_struct_avx2 vlcp,
ui32 tuple,
ui32 u_q,
ui32  ignore 
)
static

◆ proc_vlc_encode1() [2/2]

static void ojph::local::proc_vlc_encode1 ( vlc_struct_avx512 vlcp,
ui32 tuple,
ui32 u_q,
ui32  ignore 
)
static

◆ proc_vlc_encode2() [1/2]

static void ojph::local::proc_vlc_encode2 ( vlc_struct_avx2 vlcp,
ui32 tuple,
ui32 u_q,
ui32  ignore 
)
static

◆ proc_vlc_encode2() [2/2]

static void ojph::local::proc_vlc_encode2 ( vlc_struct_avx512 vlcp,
ui32 tuple,
ui32 u_q,
ui32  ignore 
)
static

◆ rev_advance() [1/4]

static ui32 ojph::local::rev_advance ( rev_struct vlcp,
ui32  num_bits 
)
inlinestatic

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 433 of file ojph_block_decoder32.cpp.

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

Referenced by ojph_decode_codeblock32(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ rev_advance() [2/4]

static ui32 ojph::local::rev_advance ( rev_struct vlcp,
ui32  num_bits 
)
inlinestatic

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 438 of file ojph_block_decoder_avx2.cpp.

◆ rev_advance() [3/4]

static ui32 ojph::local::rev_advance ( rev_struct vlcp,
ui32  num_bits 
)
inlinestatic

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 435 of file ojph_block_decoder_ssse3.cpp.

◆ rev_advance() [4/4]

static ui32 ojph::local::rev_advance ( rev_struct vlcp,
ui32  num_bits 
)
inlinestatic

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 443 of file ojph_block_decoder_wasm.cpp.

◆ rev_advance64()

static ui64 ojph::local::rev_advance64 ( rev_struct vlcp,
ui32  num_bits 
)
inlinestatic

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 385 of file ojph_block_decoder64.cpp.

Referenced by ojph_decode_codeblock64().

◆ rev_advance_mrp() [1/2]

static ui32 ojph::local::rev_advance_mrp ( rev_struct mrp,
ui32  num_bits 
)
inlinestatic

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 569 of file ojph_block_decoder32.cpp.

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

Referenced by ojph_decode_codeblock32(), ojph_decode_codeblock64(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ rev_advance_mrp() [2/2]

static ui32 ojph::local::rev_advance_mrp ( rev_struct mrp,
ui32  num_bits 
)
inlinestatic

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 521 of file ojph_block_decoder64.cpp.

◆ rev_fetch() [1/4]

static ui32 ojph::local::rev_fetch ( rev_struct vlcp)
inlinestatic

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 415 of file ojph_block_decoder32.cpp.

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

Referenced by ojph_decode_codeblock32(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ rev_fetch() [2/4]

static ui32 ojph::local::rev_fetch ( rev_struct vlcp)
inlinestatic

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 420 of file ojph_block_decoder_avx2.cpp.

References rev_read().

◆ rev_fetch() [3/4]

static ui32 ojph::local::rev_fetch ( rev_struct vlcp)
inlinestatic

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 417 of file ojph_block_decoder_ssse3.cpp.

References rev_read().

◆ rev_fetch() [4/4]

static ui32 ojph::local::rev_fetch ( rev_struct vlcp)
inlinestatic

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 425 of file ojph_block_decoder_wasm.cpp.

References rev_read().

◆ rev_fetch64()

static ui64 ojph::local::rev_fetch64 ( rev_struct vlcp)
inlinestatic

Fills the temporary variable (vlcp->tmp) by up to 64 bits.

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

Parameters
[in]vlcpis a pointer to rev_struct structure

Definition at line 371 of file ojph_block_decoder64.cpp.

References rev_read8().

Referenced by ojph_decode_codeblock64().

◆ rev_fetch_mrp() [1/5]

static ui32 ojph::local::rev_fetch_mrp ( rev_struct mrp)
inlinestatic

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 551 of file ojph_block_decoder32.cpp.

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

Referenced by ojph_decode_codeblock32(), ojph_decode_codeblock64(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ rev_fetch_mrp() [2/5]

static ui32 ojph::local::rev_fetch_mrp ( rev_struct mrp)
inlinestatic

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 503 of file ojph_block_decoder64.cpp.

References rev_read_mrp().

◆ rev_fetch_mrp() [3/5]

static ui32 ojph::local::rev_fetch_mrp ( rev_struct mrp)
inlinestatic

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 556 of file ojph_block_decoder_avx2.cpp.

References rev_read_mrp().

◆ rev_fetch_mrp() [4/5]

static ui32 ojph::local::rev_fetch_mrp ( rev_struct mrp)
inlinestatic

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 553 of file ojph_block_decoder_ssse3.cpp.

References rev_read_mrp().

◆ rev_fetch_mrp() [5/5]

static ui32 ojph::local::rev_fetch_mrp ( rev_struct mrp)
inlinestatic

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 561 of file ojph_block_decoder_wasm.cpp.

References rev_read_mrp().

◆ rev_init() [1/4]

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

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 374 of file ojph_block_decoder32.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_codeblock32(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ rev_init() [2/4]

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

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 379 of file ojph_block_decoder_avx2.cpp.

References rev_read().

◆ rev_init() [3/4]

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

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 376 of file ojph_block_decoder_ssse3.cpp.

References rev_read().

◆ rev_init() [4/4]

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

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 384 of file ojph_block_decoder_wasm.cpp.

References rev_read().

◆ rev_init8()

static void ojph::local::rev_init8 ( rev_struct vlcp,
ui8 data,
int  lcup,
int  scup 
)
inlinestatic

Initiates the rev_struct structure and reads the first byte.

This subroutine initializes the VLC decoder. It discards the first 12 bits (they have the sum of the lengths of VLC and MEL segments), and depending on unstuffing, stores 3 or 4 bits in the unstuffed decoded buffer.

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 343 of file ojph_block_decoder64.cpp.

Referenced by ojph_decode_codeblock64().

◆ rev_init_mrp() [1/5]

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

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 similar 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 517 of file ojph_block_decoder32.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_codeblock32(), ojph_decode_codeblock64(), ojph_decode_codeblock_avx2(), ojph_decode_codeblock_ssse3(), and ojph_decode_codeblock_wasm().

◆ rev_init_mrp() [2/5]

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

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 similar 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 469 of file ojph_block_decoder64.cpp.

References rev_read_mrp().

◆ rev_init_mrp() [3/5]

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

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 similar 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 522 of file ojph_block_decoder_avx2.cpp.

References rev_read_mrp().

◆ rev_init_mrp() [4/5]

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

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 similar 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 519 of file ojph_block_decoder_ssse3.cpp.

References rev_read_mrp().

◆ rev_init_mrp() [5/5]

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

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 similar 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 527 of file ojph_block_decoder_wasm.cpp.

References rev_read_mrp().

◆ rev_read() [1/4]

static void ojph::local::rev_read ( rev_struct vlcp)
inlinestatic

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 308 of file ojph_block_decoder32.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() [2/4]

static void ojph::local::rev_read ( rev_struct vlcp)
inlinestatic

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 309 of file ojph_block_decoder_avx2.cpp.

◆ rev_read() [3/4]

static void ojph::local::rev_read ( rev_struct vlcp)
inlinestatic

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 310 of file ojph_block_decoder_ssse3.cpp.

◆ rev_read() [4/4]

static void ojph::local::rev_read ( rev_struct vlcp)
inlinestatic

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 318 of file ojph_block_decoder_wasm.cpp.

◆ rev_read8()

static void ojph::local::rev_read8 ( rev_struct vlcp)
inlinestatic

Read and unstuff data from a backwardly-growing segment.

This reader reads 8 bits from the VLC segment. It fills zeros when the buffer is exhausted; we basically do not care about these zeros because we should not need them – any extra data should not be used in the actual decoding. If these bytes are needed, then there is a problem in the bitstream, but we do not flag this error.

Unstuffing is needed to prevent sequences larger 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 305 of file ojph_block_decoder64.cpp.

Referenced by rev_fetch64().

◆ rev_read_mrp() [1/5]

static void ojph::local::rev_read_mrp ( rev_struct mrp)
inlinestatic

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 453 of file ojph_block_decoder32.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().

◆ rev_read_mrp() [2/5]

static void ojph::local::rev_read_mrp ( rev_struct mrp)
inlinestatic

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 405 of file ojph_block_decoder64.cpp.

◆ rev_read_mrp() [3/5]

static void ojph::local::rev_read_mrp ( rev_struct mrp)
inlinestatic

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 458 of file ojph_block_decoder_avx2.cpp.

◆ rev_read_mrp() [4/5]

static void ojph::local::rev_read_mrp ( rev_struct mrp)
inlinestatic

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 455 of file ojph_block_decoder_ssse3.cpp.

◆ rev_read_mrp() [5/5]

static void ojph::local::rev_read_mrp ( rev_struct mrp)
inlinestatic

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 463 of file ojph_block_decoder_wasm.cpp.

◆ rotate_matrix() [1/2]

static void ojph::local::rotate_matrix ( __m256i *  matrix)
static

Definition at line 603 of file ojph_block_encoder_avx2.cpp.

Referenced by proc_ms_encode().

◆ rotate_matrix() [2/2]

static void ojph::local::rotate_matrix ( __m512i *  matrix)
static

Definition at line 608 of file ojph_block_encoder_avx512.cpp.

◆ 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 271 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 253 of file ojph_colour_sse2.cpp.

Referenced by init_colour_transform_functions().

◆ sse2_cvthi_epi32_epi64()

static __m128i ojph::local::sse2_cvthi_epi32_epi64 ( __m128i  a,
__m128i  zero 
)
inlinestatic

Definition at line 73 of file ojph_colour_sse2.cpp.

Referenced by sse2_rct_forward(), and sse2_rev_convert().

◆ sse2_cvtlo_epi32_epi64()

static __m128i ojph::local::sse2_cvtlo_epi32_epi64 ( __m128i  a,
__m128i  zero 
)
inlinestatic

Definition at line 64 of file ojph_colour_sse2.cpp.

Referenced by sse2_rct_forward(), and sse2_rev_convert().

◆ sse2_deinterleave32()

static void ojph::local::sse2_deinterleave32 ( float *  dpl,
float *  dph,
float *  sp,
int  width 
)
inlinestatic

Definition at line 69 of file ojph_transform_sse2.cpp.

Referenced by sse2_rev_horz_ana32().

◆ sse2_deinterleave64()

static void ojph::local::sse2_deinterleave64 ( double *  dpl,
double *  dph,
double *  sp,
int  width 
)
inlinestatic

Definition at line 99 of file ojph_transform_sse2.cpp.

Referenced by sse2_rev_horz_ana64().

◆ sse2_find_max_val32()

ui32 ojph::local::sse2_find_max_val32 ( ui32 address)

Definition at line 46 of file ojph_codestream_sse2.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_find_max_val64()

ui64 ojph::local::sse2_find_max_val64 ( ui64 address)

Definition at line 63 of file ojph_codestream_sse2.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_interleave32()

static void ojph::local::sse2_interleave32 ( float *  dp,
float *  spl,
float *  sph,
int  width 
)
inlinestatic

Definition at line 84 of file ojph_transform_sse2.cpp.

Referenced by sse2_rev_horz_syn32().

◆ sse2_interleave64()

static void ojph::local::sse2_interleave64 ( double *  dp,
double *  spl,
double *  sph,
int  width 
)
inlinestatic

Definition at line 114 of file ojph_transform_sse2.cpp.

Referenced by sse2_rev_horz_syn64().

◆ sse2_irv_tx_from_cb32()

void ojph::local::sse2_irv_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 160 of file ojph_codestream_sse2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_irv_tx_to_cb32()

void ojph::local::sse2_irv_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 107 of file ojph_codestream_sse2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_mm_srai_epi64() [1/2]

static __m128i ojph::local::sse2_mm_srai_epi64 ( __m128i  a,
int  amt,
__m128i  m 
)
inlinestatic

◆ sse2_mm_srai_epi64() [2/2]

static __m128i ojph::local::sse2_mm_srai_epi64 ( __m128i  a,
int  amt,
__m128i  m 
)
inlinestatic

Definition at line 57 of file ojph_transform_sse2.cpp.

◆ sse2_rct_backward()

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

◆ sse2_rct_forward()

◆ sse2_rev_convert()

void ojph::local::sse2_rev_convert ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ sse2_rev_convert_nlt_type3()

void ojph::local::sse2_rev_convert_nlt_type3 ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ sse2_rev_horz_ana()

void ojph::local::sse2_rev_horz_ana ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)

◆ sse2_rev_horz_ana32()

◆ sse2_rev_horz_ana64()

◆ sse2_rev_horz_syn()

void ojph::local::sse2_rev_horz_syn ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)

◆ sse2_rev_horz_syn32()

◆ sse2_rev_horz_syn64()

◆ sse2_rev_tx_from_cb32()

void ojph::local::sse2_rev_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 137 of file ojph_codestream_sse2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_rev_tx_from_cb64()

void ojph::local::sse2_rev_tx_from_cb64 ( const ui64 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 210 of file ojph_codestream_sse2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_rev_tx_to_cb32()

void ojph::local::sse2_rev_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 78 of file ojph_codestream_sse2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_rev_tx_to_cb64()

void ojph::local::sse2_rev_tx_to_cb64 ( const void *  sp,
ui64 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui64 max_val 
)

Definition at line 180 of file ojph_codestream_sse2.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ sse2_rev_vert_step()

void ojph::local::sse2_rev_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ sse2_rev_vert_step32()

static void ojph::local::sse2_rev_vert_step32 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)
static

◆ sse2_rev_vert_step64()

static void ojph::local::sse2_rev_vert_step64 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)
static

◆ 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 108 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 81 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 67 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 51 of file ojph_colour_sse.cpp.

Referenced by init_colour_transform_functions().

◆ sse_deinterleave32()

static void ojph::local::sse_deinterleave32 ( float *  dpl,
float *  dph,
float *  sp,
int  width 
)
inlinestatic

Definition at line 55 of file ojph_transform_sse.cpp.

Referenced by sse_irv_horz_ana().

◆ 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_interleave32()

static void ojph::local::sse_interleave32 ( float *  dp,
float *  spl,
float *  sph,
int  width 
)
inlinestatic

Definition at line 70 of file ojph_transform_sse.cpp.

Referenced by sse_irv_horz_syn().

◆ sse_irv_horz_ana()

◆ sse_irv_horz_syn()

◆ sse_irv_vert_step()

void ojph::local::sse_irv_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ sse_irv_vert_times_K()

void ojph::local::sse_irv_vert_times_K ( float  K,
const line_buf aug,
ui32  repeat 
)

Definition at line 119 of file ojph_transform_sse.cpp.

References ojph::line_buf::f32, and sse_multiply_const().

Referenced by init_wavelet_transform_functions().

◆ sse_mem_clear()

void ojph::local::sse_mem_clear ( void *  addr,
size_t  count 
)

Definition at line 45 of file ojph_codestream_sse.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ sse_multiply_const()

static void ojph::local::sse_multiply_const ( float *  p,
float  f,
int  width 
)
inlinestatic

Definition at line 84 of file ojph_transform_sse.cpp.

Referenced by sse_irv_horz_ana(), sse_irv_horz_syn(), and sse_irv_vert_times_K().

◆ swap_byte() [1/4]

◆ swap_byte() [2/4]

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

Definition at line 431 of file ojph_params.cpp.

◆ swap_byte() [3/4]

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

Definition at line 438 of file ojph_params.cpp.

References swap_byte().

◆ swap_byte() [4/4]

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

Definition at line 448 of file ojph_params.cpp.

References swap_byte().

◆ terminate_mel_vlc() [1/3]

◆ terminate_mel_vlc() [2/3]

◆ terminate_mel_vlc() [3/3]

◆ update_lcxp() [1/2]

static void ojph::local::update_lcxp ( ui32  x,
__m256i &  prev_cx_val_vec,
__m256i &  rho_vec,
__m256i *  cx_val_vec,
const __m256i  left_shift 
)
static

Definition at line 753 of file ojph_block_encoder_avx2.cpp.

References ZERO.

Referenced by ojph_encode_codeblock_avx2(), and ojph_encode_codeblock_avx512().

◆ update_lcxp() [2/2]

static void ojph::local::update_lcxp ( ui32  x,
__m512i &  prev_cx_val_vec,
__m512i &  rho_vec,
__m512i *  cx_val_vec,
const __m512i  left_shift 
)
static

Definition at line 762 of file ojph_block_encoder_avx512.cpp.

References ZERO.

◆ update_lep() [1/2]

static void ojph::local::update_lep ( ui32  x,
__m256i &  prev_e_val_vec,
__m256i *  eq_vec,
__m256i *  e_val_vec,
const __m256i  left_shift 
)
static

Definition at line 738 of file ojph_block_encoder_avx2.cpp.

References ZERO.

Referenced by ojph_encode_codeblock_avx2(), and ojph_encode_codeblock_avx512().

◆ update_lep() [2/2]

static void ojph::local::update_lep ( ui32  x,
__m512i &  prev_e_val_vec,
__m512i *  eq_vec,
__m512i *  e_val_vec,
const __m512i  left_shift 
)
static

Definition at line 746 of file ojph_block_encoder_avx512.cpp.

References ZERO.

◆ uvlc_init_tables() [1/3]

◆ uvlc_init_tables() [2/3]

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

◆ uvlc_init_tables() [3/3]

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

◆ vlc_encode() [1/3]

◆ vlc_encode() [2/3]

◆ vlc_encode() [3/3]

◆ vlc_init() [1/3]

◆ vlc_init() [2/3]

◆ vlc_init() [3/3]

◆ vlc_init_tables() [1/3]

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

Definition at line 75 of file ojph_block_encoder.cpp.

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

◆ vlc_init_tables() [2/3]

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

Definition at line 77 of file ojph_block_encoder_avx2.cpp.

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

◆ vlc_init_tables() [3/3]

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

Definition at line 77 of file ojph_block_encoder_avx512.cpp.

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

◆ wasm_cnvrt_float_to_si32()

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

Definition at line 248 of file ojph_colour_wasm.cpp.

Referenced by init_colour_transform_functions().

◆ wasm_cnvrt_float_to_si32_shftd()

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

Definition at line 231 of file ojph_colour_wasm.cpp.

Referenced by init_colour_transform_functions().

◆ wasm_cnvrt_si32_to_float()

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

Definition at line 217 of file ojph_colour_wasm.cpp.

Referenced by init_colour_transform_functions().

◆ wasm_cnvrt_si32_to_float_shftd()

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

Definition at line 201 of file ojph_colour_wasm.cpp.

Referenced by init_colour_transform_functions().

◆ wasm_deinterleave32()

static void ojph::local::wasm_deinterleave32 ( float *  dpl,
float *  dph,
float *  sp,
int  width 
)
inlinestatic

Definition at line 55 of file ojph_transform_wasm.cpp.

Referenced by wasm_irv_horz_ana(), and wasm_rev_horz_ana32().

◆ wasm_deinterleave64()

static void ojph::local::wasm_deinterleave64 ( double *  dpl,
double *  dph,
double *  sp,
int  width 
)
inlinestatic

Definition at line 89 of file ojph_transform_wasm.cpp.

Referenced by wasm_rev_horz_ana64().

◆ wasm_find_max_val32()

ui32 ojph::local::wasm_find_max_val32 ( ui32 address)

Definition at line 57 of file ojph_codestream_wasm.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_find_max_val64()

ui64 ojph::local::wasm_find_max_val64 ( ui64 address)

Definition at line 69 of file ojph_codestream_wasm.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_ict_backward()

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

◆ wasm_ict_forward()

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

◆ wasm_interleave32()

static void ojph::local::wasm_interleave32 ( float *  dp,
float *  spl,
float *  sph,
int  width 
)
inlinestatic

Definition at line 72 of file ojph_transform_wasm.cpp.

Referenced by wasm_irv_horz_syn(), and wasm_rev_horz_syn32().

◆ wasm_interleave64()

static void ojph::local::wasm_interleave64 ( double *  dp,
double *  spl,
double *  sph,
int  width 
)
inlinestatic

Definition at line 104 of file ojph_transform_wasm.cpp.

Referenced by wasm_rev_horz_syn64().

◆ wasm_irv_horz_ana()

◆ wasm_irv_horz_syn()

◆ wasm_irv_tx_from_cb32()

void ojph::local::wasm_irv_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 161 of file ojph_codestream_wasm.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_irv_tx_to_cb32()

void ojph::local::wasm_irv_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 108 of file ojph_codestream_wasm.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_irv_vert_step()

void ojph::local::wasm_irv_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ wasm_irv_vert_times_K()

void ojph::local::wasm_irv_vert_times_K ( float  K,
const line_buf aug,
ui32  repeat 
)

◆ wasm_mem_clear()

void ojph::local::wasm_mem_clear ( void *  addr,
size_t  count 
)

Definition at line 48 of file ojph_codestream_wasm.cpp.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_multiply_const()

static void ojph::local::wasm_multiply_const ( float *  p,
float  f,
int  width 
)
inlinestatic

◆ wasm_rct_backward()

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

◆ wasm_rct_forward()

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

◆ wasm_rev_convert()

void ojph::local::wasm_rev_convert ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ wasm_rev_convert_nlt_type3()

void ojph::local::wasm_rev_convert_nlt_type3 ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
)

◆ wasm_rev_horz_ana()

void ojph::local::wasm_rev_horz_ana ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
)

◆ wasm_rev_horz_ana32()

◆ wasm_rev_horz_ana64()

◆ wasm_rev_horz_syn()

void ojph::local::wasm_rev_horz_syn ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
)

◆ wasm_rev_horz_syn32()

◆ wasm_rev_horz_syn64()

◆ wasm_rev_tx_from_cb32()

void ojph::local::wasm_rev_tx_from_cb32 ( const ui32 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 138 of file ojph_codestream_wasm.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_rev_tx_from_cb64()

void ojph::local::wasm_rev_tx_from_cb64 ( const ui64 sp,
void *  dp,
ui32  K_max,
float  delta,
ui32  count 
)

Definition at line 210 of file ojph_codestream_wasm.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_rev_tx_to_cb32()

void ojph::local::wasm_rev_tx_to_cb32 ( const void *  sp,
ui32 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui32 max_val 
)

Definition at line 79 of file ojph_codestream_wasm.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_rev_tx_to_cb64()

void ojph::local::wasm_rev_tx_to_cb64 ( const void *  sp,
ui64 dp,
ui32  K_max,
float  delta_inv,
ui32  count,
ui64 max_val 
)

Definition at line 181 of file ojph_codestream_wasm.cpp.

References ojph_unused.

Referenced by ojph::local::codeblock_fun::init().

◆ wasm_rev_vert_step()

void ojph::local::wasm_rev_vert_step ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ wasm_rev_vert_step32()

void ojph::local::wasm_rev_vert_step32 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

◆ wasm_rev_vert_step64()

void ojph::local::wasm_rev_vert_step64 ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
)

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 
) = NULL

Definition at line 78 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 
) = NULL

Definition at line 74 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 
) = NULL

Definition at line 70 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 
) = NULL

Definition at line 66 of file ojph_colour.cpp.

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

◆ colour_transform_functions_initialized

bool ojph::local::colour_transform_functions_initialized = false
static

Definition at line 102 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 
) = NULL

Definition at line 97 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 
) = NULL

Definition at line 92 of file ojph_colour.cpp.

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

◆ irv_horz_ana

void(* ojph::local::irv_horz_ana)(const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even) ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
) = NULL

◆ irv_horz_syn

void(* ojph::local::irv_horz_syn)(const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even) ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
) = NULL

◆ irv_vert_step

void(* ojph::local::irv_vert_step)(const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis) ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
) = NULL

◆ irv_vert_times_K

void(* ojph::local::irv_vert_times_K)(float K, const line_buf *aug, ui32 repeat) ( float  K,
const line_buf aug,
ui32  repeat 
) = NULL

◆ num_uvlc_entries

const int ojph::local::num_uvlc_entries = 75

Definition at line 68 of file ojph_block_encoder.cpp.

Referenced by uvlc_init_tables().

◆ rct_backward

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

Definition at line 87 of file ojph_colour.cpp.

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

◆ rct_forward

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

Definition at line 82 of file ojph_colour.cpp.

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

◆ rev_convert

void(* ojph::local::rev_convert)(const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width) ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
) = NULL

◆ rev_convert_nlt_type3

void(* ojph::local::rev_convert_nlt_type3)(const line_buf *src_line, const ui32 src_line_offset, line_buf *dst_line, const ui32 dst_line_offset, si64 shift, ui32 width) ( const line_buf src_line,
const ui32  src_line_offset,
line_buf dst_line,
const ui32  dst_line_offset,
si64  shift,
ui32  width 
) = NULL

◆ rev_horz_ana

void(* ojph::local::rev_horz_ana)(const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even) ( const param_atk atk,
const line_buf ldst,
const line_buf hdst,
const line_buf src,
ui32  width,
bool  even 
) = NULL

◆ rev_horz_syn

void(* ojph::local::rev_horz_syn)(const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even) ( const param_atk atk,
const line_buf dst,
const line_buf lsrc,
const line_buf hsrc,
ui32  width,
bool  even 
) = NULL

◆ rev_vert_step

void(* ojph::local::rev_vert_step)(const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis) ( const lifting_step s,
const line_buf sig,
const line_buf other,
const line_buf aug,
ui32  repeat,
bool  synthesis 
) = NULL

◆ tables_initialized [1/3]

bool ojph::local::tables_initialized = false
static

◆ tables_initialized [2/3]

bool ojph::local::tables_initialized = false
static

Definition at line 221 of file ojph_block_encoder_avx2.cpp.

◆ tables_initialized [3/3]

bool ojph::local::tables_initialized = false
static

Definition at line 221 of file ojph_block_encoder_avx512.cpp.

◆ ulvc_cwd_pre [1/2]

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

◆ ulvc_cwd_pre [2/2]

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

Definition at line 71 of file ojph_block_encoder_avx512.cpp.

◆ ulvc_cwd_pre_len [1/2]

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

◆ ulvc_cwd_pre_len [2/2]

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

Definition at line 72 of file ojph_block_encoder_avx512.cpp.

◆ ulvc_cwd_suf [1/2]

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

◆ ulvc_cwd_suf [2/2]

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

Definition at line 73 of file ojph_block_encoder_avx512.cpp.

◆ ulvc_cwd_suf_len [1/2]

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

◆ ulvc_cwd_suf_len [2/2]

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

Definition at line 74 of file ojph_block_encoder_avx512.cpp.

◆ uvlc_tbl

uvlc_tbl_struct ojph::local::uvlc_tbl[num_uvlc_entries]
static

◆ wavelet_transform_functions_initialized

bool ojph::local::wavelet_transform_functions_initialized = false
static

Definition at line 97 of file ojph_transform.cpp.

Referenced by init_wavelet_transform_functions().