#define JPEG_INTERNALS
#include "../../jinclude.h"
#include "../../jpeglib.h"
#include "../../jsimd.h"
#include "../../jdct.h"
#include "../../jsimddct.h"
#include "../jsimd.h"
#define IS_ALIGNED(ptr, order) …
#define IS_ALIGNED_SSE(ptr) …
#define IS_ALIGNED_AVX(ptr) …
static THREAD_LOCAL unsigned int simd_support = …;
static THREAD_LOCAL unsigned int simd_huffman = …;
LOCAL(void)
init_simd(void)
{ … }
GLOBAL(int)
jsimd_can_rgb_ycc(void)
{ … }
GLOBAL(int)
jsimd_can_rgb_gray(void)
{ … }
GLOBAL(int)
jsimd_can_ycc_rgb(void)
{ … }
GLOBAL(int)
jsimd_can_ycc_rgb565(void)
{ … }
GLOBAL(void)
jsimd_rgb_ycc_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf,
JSAMPIMAGE output_buf, JDIMENSION output_row,
int num_rows)
{ … }
GLOBAL(void)
jsimd_rgb_gray_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf,
JSAMPIMAGE output_buf, JDIMENSION output_row,
int num_rows)
{ … }
GLOBAL(void)
jsimd_ycc_rgb_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
JDIMENSION input_row, JSAMPARRAY output_buf,
int num_rows)
{ … }
GLOBAL(void)
jsimd_ycc_rgb565_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
JDIMENSION input_row, JSAMPARRAY output_buf,
int num_rows)
{ … }
GLOBAL(int)
jsimd_can_h2v2_downsample(void)
{ … }
GLOBAL(int)
jsimd_can_h2v1_downsample(void)
{ … }
GLOBAL(void)
jsimd_h2v2_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
JSAMPARRAY input_data, JSAMPARRAY output_data)
{ … }
GLOBAL(void)
jsimd_h2v1_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
JSAMPARRAY input_data, JSAMPARRAY output_data)
{ … }
GLOBAL(int)
jsimd_can_h2v2_upsample(void)
{ … }
GLOBAL(int)
jsimd_can_h2v1_upsample(void)
{ … }
GLOBAL(void)
jsimd_h2v2_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr)
{ … }
GLOBAL(void)
jsimd_h2v1_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr)
{ … }
GLOBAL(int)
jsimd_can_h2v2_fancy_upsample(void)
{ … }
GLOBAL(int)
jsimd_can_h2v1_fancy_upsample(void)
{ … }
GLOBAL(void)
jsimd_h2v2_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr)
{ … }
GLOBAL(void)
jsimd_h2v1_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr)
{ … }
GLOBAL(int)
jsimd_can_h2v2_merged_upsample(void)
{ … }
GLOBAL(int)
jsimd_can_h2v1_merged_upsample(void)
{ … }
GLOBAL(void)
jsimd_h2v2_merged_upsample(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf)
{ … }
GLOBAL(void)
jsimd_h2v1_merged_upsample(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf)
{ … }
GLOBAL(int)
jsimd_can_convsamp(void)
{ … }
GLOBAL(int)
jsimd_can_convsamp_float(void)
{ … }
GLOBAL(void)
jsimd_convsamp(JSAMPARRAY sample_data, JDIMENSION start_col,
DCTELEM *workspace)
{ … }
GLOBAL(void)
jsimd_convsamp_float(JSAMPARRAY sample_data, JDIMENSION start_col,
FAST_FLOAT *workspace)
{ … }
GLOBAL(int)
jsimd_can_fdct_islow(void)
{ … }
GLOBAL(int)
jsimd_can_fdct_ifast(void)
{ … }
GLOBAL(int)
jsimd_can_fdct_float(void)
{ … }
GLOBAL(void)
jsimd_fdct_islow(DCTELEM *data)
{ … }
GLOBAL(void)
jsimd_fdct_ifast(DCTELEM *data)
{ … }
GLOBAL(void)
jsimd_fdct_float(FAST_FLOAT *data)
{ … }
GLOBAL(int)
jsimd_can_quantize(void)
{ … }
GLOBAL(int)
jsimd_can_quantize_float(void)
{ … }
GLOBAL(void)
jsimd_quantize(JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace)
{ … }
GLOBAL(void)
jsimd_quantize_float(JCOEFPTR coef_block, FAST_FLOAT *divisors,
FAST_FLOAT *workspace)
{ … }
GLOBAL(int)
jsimd_can_idct_2x2(void)
{ … }
GLOBAL(int)
jsimd_can_idct_4x4(void)
{ … }
GLOBAL(void)
jsimd_idct_2x2(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JCOEFPTR coef_block, JSAMPARRAY output_buf,
JDIMENSION output_col)
{ … }
GLOBAL(void)
jsimd_idct_4x4(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JCOEFPTR coef_block, JSAMPARRAY output_buf,
JDIMENSION output_col)
{ … }
GLOBAL(int)
jsimd_can_idct_islow(void)
{ … }
GLOBAL(int)
jsimd_can_idct_ifast(void)
{ … }
GLOBAL(int)
jsimd_can_idct_float(void)
{ … }
GLOBAL(void)
jsimd_idct_islow(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JCOEFPTR coef_block, JSAMPARRAY output_buf,
JDIMENSION output_col)
{ … }
GLOBAL(void)
jsimd_idct_ifast(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JCOEFPTR coef_block, JSAMPARRAY output_buf,
JDIMENSION output_col)
{ … }
GLOBAL(void)
jsimd_idct_float(j_decompress_ptr cinfo, jpeg_component_info *compptr,
JCOEFPTR coef_block, JSAMPARRAY output_buf,
JDIMENSION output_col)
{ … }
GLOBAL(int)
jsimd_can_huff_encode_one_block(void)
{ … }
GLOBAL(JOCTET *)
jsimd_huff_encode_one_block(void *state, JOCTET *buffer, JCOEFPTR block,
int last_dc_val, c_derived_tbl *dctbl,
c_derived_tbl *actbl)
{ … }
GLOBAL(int)
jsimd_can_encode_mcu_AC_first_prepare(void)
{ … }
GLOBAL(void)
jsimd_encode_mcu_AC_first_prepare(const JCOEF *block,
const int *jpeg_natural_order_start, int Sl,
int Al, UJCOEF *values, size_t *zerobits)
{ … }
GLOBAL(int)
jsimd_can_encode_mcu_AC_refine_prepare(void)
{ … }
GLOBAL(int)
jsimd_encode_mcu_AC_refine_prepare(const JCOEF *block,
const int *jpeg_natural_order_start, int Sl,
int Al, UJCOEF *absvalues, size_t *bits)
{ … }