OpenJPH
Open-source implementation of JPEG2000 Part-15
|
#include <cassert>
#include <cstring>
#include <cstdint>
#include <climits>
#include <immintrin.h>
#include "ojph_mem.h"
#include "ojph_arch.h"
#include "ojph_block_encoder.h"
#include "ojph_message.h"
#include "table0.h"
#include "table1.h"
Go to the source code of this file.
Classes | |
struct | ojph::local::mel_struct |
struct | ojph::local::vlc_struct_avx2 |
struct | ojph::local::ms_struct |
Namespaces | |
namespace | ojph |
namespace | ojph::local |
Macros | |
#define | likely(x) |
#define | unlikely(x) |
#define | ZERO _mm256_setzero_si256() |
#define | ONE _mm256_set1_epi32(1) |
Typedefs | |
using | ojph::local::fn_proc_cq = __m256i (*)(ui32, __m256i *, __m256i &, const __m256i) |
using | ojph::local::fn_proc_mel_encode |
using | ojph::local::fn_proc_vlc_encode = void (*)(vlc_struct_avx2 *, ui32 *, ui32 *, ui32) |
Functions | |
static bool | ojph::local::vlc_init_tables () |
static bool | ojph::local::uvlc_init_tables () |
bool | ojph::local::initialize_block_encoder_tables_avx2 () |
static void | ojph::local::mel_init (mel_struct *melp, ui32 buffer_size, ui8 *data) |
static void | ojph::local::mel_emit_bit (mel_struct *melp, int v) |
static void | ojph::local::mel_encode (mel_struct *melp, bool bit) |
static void | ojph::local::vlc_init (vlc_struct_avx2 *vlcp, ui32 buffer_size, ui8 *data) |
static void | ojph::local::vlc_encode (vlc_struct_avx2 *vlcp, ui32 cwd, int cwd_len) |
static void | ojph::local::terminate_mel_vlc (mel_struct *melp, vlc_struct_avx2 *vlcp) |
static void | ojph::local::ms_init (ms_struct *msp, ui32 buffer_size, ui8 *data) |
static void | ojph::local::ms_encode (ms_struct *msp, ui64 cwd, int cwd_len) |
static void | ojph::local::ms_terminate (ms_struct *msp) |
__m256i | ojph::local::avx2_lzcnt_epi32 (__m256i v) |
__m256i | ojph::local::avx2_cmpneq_epi32 (__m256i v, __m256i v2) |
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 void | ojph::local::rotate_matrix (__m256i *matrix) |
static void | ojph::local::proc_ms_encode (ms_struct *msp, __m256i &tuple_vec, __m256i &uq_vec, __m256i &rho_vec, __m256i *s_vec) |
static __m256i | ojph::local::cal_eps_vec (__m256i *eq_vec, __m256i &u_q_vec, __m256i &e_qmax_vec) |
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 void | ojph::local::update_lcxp (ui32 x, __m256i &prev_cx_val_vec, __m256i &rho_vec, __m256i *cx_val_vec, const __m256i left_shift) |
static __m256i | ojph::local::cal_tuple (__m256i &cq_vec, __m256i &rho_vec, __m256i &eps_vec, ui32 *vlc_tbl) |
static __m256i | ojph::local::proc_cq1 (ui32 x, __m256i *cx_val_vec, __m256i &rho_vec, const __m256i right_shift) |
static __m256i | ojph::local::proc_cq2 (ui32 x, __m256i *cx_val_vec, __m256i &rho_vec, const __m256i right_shift) |
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 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 void | ojph::local::proc_vlc_encode1 (vlc_struct_avx2 *vlcp, ui32 *tuple, ui32 *u_q, ui32 ignore) |
static void | ojph::local::proc_vlc_encode2 (vlc_struct_avx2 *vlcp, ui32 *tuple, ui32 *u_q, ui32 ignore) |
void | ojph::local::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) |
Variables | |
static ui32 | ojph::local::ulvc_cwd_pre [33] |
static int | ojph::local::ulvc_cwd_pre_len [33] |
static ui32 | ojph::local::ulvc_cwd_suf [33] |
static int | ojph::local::ulvc_cwd_suf_len [33] |
static bool | ojph::local::tables_initialized = false |
#define likely | ( | x | ) |
Definition at line 52 of file ojph_block_encoder_avx2.cpp.
Referenced by ojph::local::vlc_encode(), and ojph::local::vlc_encode().
#define ONE _mm256_set1_epi32(1) |
Definition at line 483 of file ojph_block_encoder_avx2.cpp.
Referenced by ojph::local::cal_eps_vec(), ojph::local::ojph_encode_codeblock_avx2(), ojph::local::ojph_encode_codeblock_avx512(), ojph::local::proc_cq1(), ojph::local::proc_ms_encode(), ojph::local::proc_ms_encode(), ojph::local::proc_pixel(), and ojph::local::proc_pixel().
#define unlikely | ( | x | ) |
Definition at line 53 of file ojph_block_encoder_avx2.cpp.
Referenced by ojph::local::vlc_encode(), and ojph::local::vlc_encode().
#define ZERO _mm256_setzero_si256() |
Definition at line 482 of file ojph_block_encoder_avx2.cpp.
Referenced by ojph::local::cal_eps_vec(), ojph::local::cal_eps_vec(), ojph::local::ojph_encode_codeblock_avx2(), ojph::local::ojph_encode_codeblock_avx512(), ojph::local::proc_mel_encode1(), ojph::local::proc_mel_encode1(), ojph::local::proc_mel_encode2(), ojph::local::proc_mel_encode2(), ojph::local::proc_ms_encode(), ojph::local::proc_ms_encode(), ojph::local::proc_pixel(), ojph::local::proc_pixel(), ojph::local::update_lcxp(), ojph::local::update_lcxp(), ojph::local::update_lep(), and ojph::local::update_lep().