OpenJPEG  2.5.0
dwt.h
Go to the documentation of this file.
1 /*
2  * The copyright in this software is being made available under the 2-clauses
3  * BSD License, included below. This software may be subject to other third
4  * party and contributor rights, including patent rights, and no such rights
5  * are granted under this license.
6  *
7  * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
8  * Copyright (c) 2002-2014, Professor Benoit Macq
9  * Copyright (c) 2001-2003, David Janssens
10  * Copyright (c) 2002-2003, Yannick Verschueren
11  * Copyright (c) 2003-2007, Francois-Olivier Devaux
12  * Copyright (c) 2003-2014, Antonin Descampe
13  * Copyright (c) 2005, Herve Drolon, FreeImage Team
14  * All rights reserved.
15  *
16  * Redistribution and use in source and binary forms, with or without
17  * modification, are permitted provided that the following conditions
18  * are met:
19  * 1. Redistributions of source code must retain the above copyright
20  * notice, this list of conditions and the following disclaimer.
21  * 2. Redistributions in binary form must reproduce the above copyright
22  * notice, this list of conditions and the following disclaimer in the
23  * documentation and/or other materials provided with the distribution.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
26  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35  * POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 #ifndef OPJ_DWT_H
39 #define OPJ_DWT_H
40 
51 
52 
55 /* ----------------------------------------------------------------------- */
63  opj_tcd_tilecomp_t * tilec);
64 
73  opj_tcd_tilecomp_t* tilec,
74  OPJ_UINT32 numres);
75 
90  opj_tcd_tilecomp_t * tilec);
100  OPJ_UINT32 numres);
101 
115 /* ----------------------------------------------------------------------- */
119 
120 #endif /* OPJ_DWT_H */
opj_tcd_precinct::cw
OPJ_UINT32 cw
Definition: tcd.h:150
opj_dwt_encode_v_job_t::tiledp
OPJ_INT32 *OPJ_RESTRICT tiledp
Definition: dwt.c:1214
opj_tls_t
Definition: thread.c:504
opj_dwt_encode_v_job_t::rh
OPJ_UINT32 rh
Definition: dwt.c:1212
opj_dwt97_decode_h_job_t::h
opj_v8dwt_t h
Definition: dwt.c:3211
OPJ_FLOAT32
float OPJ_FLOAT32
Definition: openjpeg.h:121
opj_tcd_cblk_dec::decoded_data
OPJ_INT32 * decoded_data
Definition: tcd.h:143
opj_dwt_decode_v_job_t::v
opj_dwt_t v
Definition: dwt.c:2035
opj_dwt_decode_h_job_t::h
opj_dwt_t h
Definition: dwt.c:2011
opj_dwt_decode_v_job_t::tiledp
OPJ_INT32 *OPJ_RESTRICT tiledp
Definition: dwt.c:2038
opj_dwt_encode_procedure
static OPJ_BOOL opj_dwt_encode_procedure(opj_thread_pool_t *tp, opj_tcd_tilecomp_t *tilec, opj_encode_and_deinterleave_v_fnptr_type p_encode_and_deinterleave_v, opj_encode_and_deinterleave_h_one_row_fnptr_type p_encode_and_deinterleave_h_one_row)
Definition: dwt.c:1720
opj_dwt_segment_grow
static void opj_dwt_segment_grow(OPJ_UINT32 filter_width, OPJ_UINT32 max_size, OPJ_UINT32 *start, OPJ_UINT32 *end)
Definition: dwt.c:2552
opj_dwt_getnorm_real
OPJ_FLOAT64 opj_dwt_getnorm_real(OPJ_UINT32 level, OPJ_UINT32 orient)
Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT.
Definition: dwt.c:1953
v8dwt_local::win_l_x0
OPJ_UINT32 win_l_x0
Definition: dwt.c:101
opj_tcd_tilecomp::win_x0
OPJ_UINT32 win_x0
Definition: tcd.h:220
opj_dwt97_decode_v_job_t::nb_columns
OPJ_UINT32 nb_columns
Definition: dwt.c:3264
opj_dwt_encode_and_deinterleave_v_real
static void opj_dwt_encode_and_deinterleave_v_real(void *arrayIn, void *tmpIn, OPJ_UINT32 height, OPJ_BOOL even, OPJ_UINT32 stride_width, OPJ_UINT32 cols)
Definition: dwt.c:1650
opj_dwt_encode_1_real
static void opj_dwt_encode_1_real(void *a, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas)
Forward 9-7 wavelet transform in 1-D.
Definition: dwt.c:1041
v8dwt_local::sn
OPJ_INT32 sn
Definition: dwt.c:99
opj_dwt_encode_step1_combined
static void opj_dwt_encode_step1_combined(OPJ_FLOAT32 *fw, OPJ_UINT32 iters_c1, OPJ_UINT32 iters_c2, const OPJ_FLOAT32 c1, const OPJ_FLOAT32 c2)
Definition: dwt.c:971
opj_dwt_calc_explicit_stepsizes
void opj_dwt_calc_explicit_stepsizes(opj_tccp_t *tccp, OPJ_UINT32 prec)
Explicit calculation of the Quantization Stepsizes.
Definition: dwt.c:1966
opj_int_abs
static INLINE OPJ_INT32 opj_int_abs(OPJ_INT32 a)
Definition: opj_intmath.h:152
opj_int_floorlog2
static INLINE OPJ_INT32 opj_int_floorlog2(OPJ_INT32 a)
Get logarithm of an integer and round downwards.
Definition: opj_intmath.h:225
opj_tcd_band::x0
OPJ_INT32 x0
Definition: tcd.h:164
opj_dwt_encode_v_job_t
Definition: dwt.c:1210
opj_dwt_max_resolution
static OPJ_UINT32 opj_dwt_max_resolution(opj_tcd_resolution_t *OPJ_RESTRICT r, OPJ_UINT32 i)
Definition: dwt.c:1993
opj_tccp::numresolutions
OPJ_UINT32 numresolutions
number of resolutions
Definition: j2k.h:183
opj_dwt_encode_h_job_t
Definition: dwt.c:1183
OPJ_D__off
#define OPJ_D__off(i, off)
Definition: dwt.c:2364
PARALLEL_COLS_53
#define PARALLEL_COLS_53
Number of columns that we can process in parallel in the vertical pass.
Definition: dwt.c:78
opj_tcd_tilecomp::win_y0
OPJ_UINT32 win_y0
Definition: tcd.h:221
opj_dwt_delta
static const OPJ_FLOAT32 opj_dwt_delta
Definition: dwt.c:111
opj_int_min
static INLINE OPJ_INT32 opj_int_min(OPJ_INT32 a, OPJ_INT32 b)
Get the minimum of two integers.
Definition: opj_intmath.h:56
opj_tcd_resolution::x0
OPJ_INT32 x0
Definition: tcd.h:178
opj_dwt97_decode_v_job_t::aj
OPJ_FLOAT32 *OPJ_RESTRICT aj
Definition: dwt.c:3263
opj_tcd_resolution::y1
OPJ_INT32 y1
Definition: tcd.h:178
opj_tcd_resolution::x1
OPJ_INT32 x1
Definition: tcd.h:178
opj_dwt_decode_h_job_t::min_j
OPJ_UINT32 min_j
Definition: dwt.c:2015
opj_dwt_decode_h_job_t::rw
OPJ_UINT32 rw
Definition: dwt.c:2012
opj_dwt_encode_step2
static void opj_dwt_encode_step2(OPJ_FLOAT32 *fl, OPJ_FLOAT32 *fw, OPJ_UINT32 end, OPJ_UINT32 m, OPJ_FLOAT32 c)
Definition: dwt.c:1012
v8dwt_local::wavelet
opj_v8_t * wavelet
Definition: dwt.c:97
opj_dwt_encode_and_deinterleave_h_one_row_real
static void opj_dwt_encode_and_deinterleave_h_one_row_real(void *rowIn, void *tmpIn, OPJ_UINT32 width, OPJ_BOOL even)
Process one line for the horizontal pass of the 9x7 forward transform.
Definition: dwt.c:1164
opj_dwt_encode_v_job_t::v
opj_dwt_t v
Definition: dwt.c:1211
opj_tcd_cblk_dec::x1
OPJ_INT32 x1
Definition: tcd.h:124
opj_v8dwt_decode_step1
static void opj_v8dwt_decode_step1(opj_v8_t *w, OPJ_UINT32 start, OPJ_UINT32 end, const OPJ_FLOAT32 c)
Definition: dwt.c:3075
opj_dwt_decode_partial_97
static OPJ_BOOL opj_dwt_decode_partial_97(opj_tcd_tilecomp_t *OPJ_RESTRICT tilec, OPJ_UINT32 numres)
Definition: dwt.c:3524
SIZE_MAX
#define SIZE_MAX
Definition: opj_malloc.c:40
opj_tcd_resolution::bands
opj_tcd_band_t bands[3]
Definition: tcd.h:184
opj_dwt_interleave_partial_v
static void opj_dwt_interleave_partial_v(OPJ_INT32 *dest, OPJ_INT32 cas, opj_sparse_array_int32_t *sa, OPJ_UINT32 sa_col, OPJ_UINT32 nb_cols, OPJ_UINT32 sn, OPJ_UINT32 win_l_y0, OPJ_UINT32 win_l_y1, OPJ_UINT32 win_h_y0, OPJ_UINT32 win_h_y1)
Definition: dwt.c:2256
opj_encode_and_deinterleave_v_fnptr_type
void(* opj_encode_and_deinterleave_v_fnptr_type)(void *array, void *tmp, OPJ_UINT32 height, OPJ_BOOL even, OPJ_UINT32 stride_width, OPJ_UINT32 cols)
Definition: dwt.c:152
opj_dwt_decode_h_job_t
Definition: dwt.c:2010
opj_dwt_encode_h_job_t::h
opj_dwt_t h
Definition: dwt.c:1184
opj_idwt53_h_cas1
static void opj_idwt53_h_cas1(OPJ_INT32 *tmp, const OPJ_INT32 sn, const OPJ_INT32 len, OPJ_INT32 *tiledp)
Definition: dwt.c:404
OPJ_S_
#define OPJ_S_(i)
Definition: dwt.c:186
opj_dwt97_decode_v_job_t
Definition: dwt.c:3259
opj_dwt_decode_partial_tile
static OPJ_BOOL opj_dwt_decode_partial_tile(opj_tcd_tilecomp_t *tilec, OPJ_UINT32 numres)
Definition: dwt.c:2619
opj_dwt_decode_real
OPJ_BOOL opj_dwt_decode_real(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *OPJ_RESTRICT tilec, OPJ_UINT32 numres)
Inverse 9-7 wavelet transform in 2-D.
Definition: dwt.c:3758
opj_dwt97_decode_v_job_t::w
OPJ_UINT32 w
Definition: dwt.c:3262
opj_idwt53_v
static void opj_idwt53_v(const opj_dwt_t *dwt, OPJ_INT32 *tiledp_col, OPJ_SIZE_T stride, OPJ_INT32 nb_cols)
Definition: dwt.c:876
opj_dwt_decode_v_job_t
Definition: dwt.c:2034
opj_K
static const OPJ_FLOAT32 opj_K
Definition: dwt.c:113
opj_thread_pool_submit_job
OPJ_BOOL opj_thread_pool_submit_job(opj_thread_pool_t *tp, opj_job_fn job_fn, void *user_data)
Submit a new job to be run by one of the thread in the thread pool.
Definition: thread.c:827
opj_dwt_encode_v_job_t::p_encode_and_deinterleave_v
opj_encode_and_deinterleave_v_fnptr_type p_encode_and_deinterleave_v
Definition: dwt.c:1217
opj_dwt_decode_h_job_t::tiledp
OPJ_INT32 *OPJ_RESTRICT tiledp
Definition: dwt.c:2014
opj_dwt_decode_v_job_t::w
OPJ_UINT32 w
Definition: dwt.c:2037
opj_dwt_encode_v_job_t::min_j
OPJ_UINT32 min_j
Definition: dwt.c:1215
dwt_local
Definition: dwt.c:83
opj_dwt_decode
OPJ_BOOL opj_dwt_decode(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *tilec, OPJ_UINT32 numres)
Inverse 5-3 wavelet transform in 2-D.
Definition: dwt.c:1913
opj_tcd_tilecomp::x1
OPJ_INT32 x1
Definition: tcd.h:196
INLINE
#define INLINE
Definition: openjpeg.h:65
opj_tcd_resolution::ph
OPJ_UINT32 ph
Definition: tcd.h:180
opj_dwt97_decode_h_job_t
Definition: dwt.c:3210
v8dwt_local
Definition: dwt.c:96
v8dwt_local::win_h_x0
OPJ_UINT32 win_h_x0
Definition: dwt.c:103
opj_tcd_cblk_dec::y1
OPJ_INT32 y1
Definition: tcd.h:124
opj_dwt_encode_v_job_t::max_j
OPJ_UINT32 max_j
Definition: dwt.c:1216
v8dwt_local::win_h_x1
OPJ_UINT32 win_h_x1
Definition: dwt.c:104
opj_invK
static const OPJ_FLOAT32 opj_invK
Definition: dwt.c:114
opj_dwt_decode_v_job_t::rh
OPJ_UINT32 rh
Definition: dwt.c:2036
opj_tcd_tilecomp::resolutions
opj_tcd_resolution_t * resolutions
Definition: tcd.h:204
opj_dwt_deinterleave_v_cols
static INLINE void opj_dwt_deinterleave_v_cols(const OPJ_INT32 *OPJ_RESTRICT src, OPJ_INT32 *OPJ_RESTRICT dst, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_UINT32 stride_width, OPJ_INT32 cas, OPJ_UINT32 cols)
Definition: dwt.c:1282
opj_dwt_encode
OPJ_BOOL opj_dwt_encode(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *tilec)
Forward 5-3 wavelet transform in 2-D.
Definition: dwt.c:1902
opj_dwt_getnorm
OPJ_FLOAT64 opj_dwt_getnorm(OPJ_UINT32 level, OPJ_UINT32 orient)
Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT.
Definition: dwt.c:1926
OPJ_FLOAT64
double OPJ_FLOAT64
Definition: openjpeg.h:122
opj_tccp::stepsizes
opj_stepsize_t stepsizes[OPJ_J2K_MAXBANDS]
stepsizes used for quantization
Definition: j2k.h:195
opj_idwt3_v_cas0
static void opj_idwt3_v_cas0(OPJ_INT32 *tmp, const OPJ_INT32 sn, const OPJ_INT32 len, OPJ_INT32 *tiledp_col, const OPJ_SIZE_T stride)
Vertical inverse 5x3 wavelet transform for one column, when top-most pixel is on even coordinate.
Definition: dwt.c:775
OPJ_D_off
#define OPJ_D_off(i, off)
Definition: dwt.c:2362
opj_tcd_tilecomp::x0
OPJ_INT32 x0
Definition: tcd.h:196
opj_tcd_resolution::pw
OPJ_UINT32 pw
Definition: tcd.h:180
opj_tcd_cblk_dec::x0
OPJ_INT32 x0
Definition: tcd.h:124
opj_dwt_encode_h_job_t::p_function
opj_encode_and_deinterleave_h_one_row_fnptr_type p_function
Definition: dwt.c:1190
opj_v8dwt_t
struct v8dwt_local opj_v8dwt_t
opj_dwt97_decode_h_func
static void opj_dwt97_decode_h_func(void *user_data, opj_tls_t *tls)
Definition: dwt.c:3218
v8dwt_local::cas
OPJ_INT32 cas
Definition: dwt.c:100
opj_dwt_encode_real
OPJ_BOOL opj_dwt_encode_real(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *tilec)
Forward 9-7 wavelet transform in 2-D.
Definition: dwt.c:1942
opj_stepsize
Quantization stepsize.
Definition: j2k.h:169
opj_dwt_encode_h_job_t::w
OPJ_UINT32 w
Definition: dwt.c:1186
opj_dwt_decode_h_job_t::w
OPJ_UINT32 w
Definition: dwt.c:2013
opj_tcd::whole_tile_decoding
OPJ_BOOL whole_tile_decoding
Only valid for decoding.
Definition: tcd.h:287
opj_dwt_encode_stepsize
static void opj_dwt_encode_stepsize(OPJ_INT32 stepsize, OPJ_INT32 numbps, opj_stepsize_t *bandno_stepsize)
Explicit calculation of the Quantization Stepsizes.
Definition: dwt.c:1092
opj_thread_pool_get_thread_count
int opj_thread_pool_get_thread_count(opj_thread_pool_t *tp)
Return the number of threads associated with the thread pool.
Definition: thread.c:914
opj_dwt_getnorm_real
OPJ_FLOAT64 opj_dwt_getnorm_real(OPJ_UINT32 level, OPJ_UINT32 orient)
Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT.
Definition: dwt.c:1953
opj_stepsize::mant
OPJ_INT32 mant
mantissa
Definition: j2k.h:173
opj_stepsize::expn
OPJ_INT32 expn
exponent
Definition: j2k.h:171
opj_dwt_decode_tile_97
static OPJ_BOOL opj_dwt_decode_tile_97(opj_thread_pool_t *tp, opj_tcd_tilecomp_t *OPJ_RESTRICT tilec, OPJ_UINT32 numres)
Definition: dwt.c:3301
opj_dwt_beta
static const OPJ_FLOAT32 opj_dwt_beta
Definition: dwt.c:109
opj_tcd_tilecomp::minimum_num_resolutions
OPJ_UINT32 minimum_num_resolutions
Definition: tcd.h:202
OPJ_UNUSED
#define OPJ_UNUSED(x)
Definition: jp2.c:47
opj_uint_adds
static INLINE OPJ_UINT32 opj_uint_adds(OPJ_UINT32 a, OPJ_UINT32 b)
Get the saturated sum of two unsigned integers.
Definition: opj_intmath.h:92
opj_dwt_encode_h_job_t::max_j
OPJ_UINT32 max_j
Definition: dwt.c:1189
OPJ_BOOL
int OPJ_BOOL
Definition: openjpeg.h:116
opj_aligned_32_malloc
void * opj_aligned_32_malloc(size_t size)
Allocate memory aligned to a 32 byte boundary.
Definition: opj_malloc.c:216
OPJ_SIZE_T
size_t OPJ_SIZE_T
Definition: openjpeg.h:139
opj_tcd_precinct
Precinct structure.
Definition: tcd.h:147
opj_encode_and_deinterleave_h_one_row_fnptr_type
void(* opj_encode_and_deinterleave_h_one_row_fnptr_type)(void *row, void *tmp, OPJ_UINT32 width, OPJ_BOOL even)
Definition: dwt.c:161
opj_includes.h
opj_dwt_encode_and_deinterleave_v
static void opj_dwt_encode_and_deinterleave_v(void *arrayIn, void *tmpIn, OPJ_UINT32 height, OPJ_BOOL even, OPJ_UINT32 stride_width, OPJ_UINT32 cols)
Definition: dwt.c:1340
opj_dwt_gamma
static const OPJ_FLOAT32 opj_dwt_gamma
Definition: dwt.c:110
opj_dwt_decode_h_job_t::max_j
OPJ_UINT32 max_j
Definition: dwt.c:2016
opj_dwt97_decode_v_func
static void opj_dwt97_decode_v_func(void *user_data, opj_tls_t *tls)
Definition: dwt.c:3267
opj_tcd_resolution
Tile-component resolution structure.
Definition: tcd.h:176
opj_dwt_getnorm
OPJ_FLOAT64 opj_dwt_getnorm(OPJ_UINT32 level, OPJ_UINT32 orient)
Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT.
Definition: dwt.c:1926
v8dwt_local::dn
OPJ_INT32 dn
Definition: dwt.c:98
opj_tcd_tilecomp
Tile-component structure.
Definition: tcd.h:194
NB_ELTS_V8
#define NB_ELTS_V8
Definition: dwt.c:90
opj_dwt_deinterleave_h
static void opj_dwt_deinterleave_h(const OPJ_INT32 *OPJ_RESTRICT a, OPJ_INT32 *OPJ_RESTRICT b, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas)
Forward lazy transform (horizontal)
Definition: dwt.c:225
opj_tcd_band
Sub-band structure.
Definition: tcd.h:162
opj_tcd_tilecomp::data_win
OPJ_INT32 * data_win
data of the component limited to window of interest.
Definition: tcd.h:218
opj_dwt_interleave_partial_h
static void opj_dwt_interleave_partial_h(OPJ_INT32 *dest, OPJ_INT32 cas, opj_sparse_array_int32_t *sa, OPJ_UINT32 sa_line, OPJ_UINT32 sn, OPJ_UINT32 win_l_x0, OPJ_UINT32 win_l_x1, OPJ_UINT32 win_h_x0, OPJ_UINT32 win_h_x1)
Definition: dwt.c:2229
opj_tcd_resolution::numbands
OPJ_UINT32 numbands
Definition: tcd.h:182
opj_dwt_encode_real
OPJ_BOOL opj_dwt_encode_real(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *tilec)
Forward 9-7 wavelet transform in 2-D.
Definition: dwt.c:1942
OPJ_INT32
int32_t OPJ_INT32
Definition: openjpeg.h:131
opj_v8dwt_decode_step2
static void opj_v8dwt_decode_step2(opj_v8_t *l, opj_v8_t *w, OPJ_UINT32 start, OPJ_UINT32 end, OPJ_UINT32 m, OPJ_FLOAT32 c)
Definition: dwt.c:3095
VREG_INT_COUNT
#define VREG_INT_COUNT
Number of int32 values in a SSE2 register.
Definition: dwt.c:74
opj_v8dwt_decode
static void opj_v8dwt_decode(opj_v8dwt_t *OPJ_RESTRICT dwt)
Definition: dwt.c:3141
dwt_local::cas
OPJ_INT32 cas
Definition: dwt.c:87
opj_tcd_resolution::win_x0
OPJ_UINT32 win_x0
Definition: tcd.h:187
opj_v8_t
Definition: dwt.c:92
opj_dwt_encode_h_job_t::tiledp
OPJ_INT32 *OPJ_RESTRICT tiledp
Definition: dwt.c:1187
opj_tcd_resolution::y0
OPJ_INT32 y0
Definition: tcd.h:178
opj_v8dwt_interleave_v
static INLINE void opj_v8dwt_interleave_v(opj_v8dwt_t *OPJ_RESTRICT dwt, OPJ_FLOAT32 *OPJ_RESTRICT a, OPJ_UINT32 width, OPJ_UINT32 nb_elts_read)
Definition: dwt.c:2975
opj_dwt_norms_real
static const OPJ_FLOAT64 opj_dwt_norms_real[4][10]
Definition: dwt.c:209
OPJ_RESTRICT
#define OPJ_RESTRICT
Definition: opj_includes.h:121
opj_tcd_tilecomp::win_y1
OPJ_UINT32 win_y1
Definition: tcd.h:223
opj_v8dwt_interleave_h
static void opj_v8dwt_interleave_h(opj_v8dwt_t *OPJ_RESTRICT dwt, OPJ_FLOAT32 *OPJ_RESTRICT a, OPJ_UINT32 width, OPJ_UINT32 remaining_height)
Definition: dwt.c:2865
v8dwt_local::win_l_x1
OPJ_UINT32 win_l_x1
Definition: dwt.c:102
OPJ_Sc
#define OPJ_Sc(i)
opj_tcd_band::precincts
opj_tcd_precinct_t * precincts
Definition: tcd.h:168
opj_idwt3_v_cas1
static void opj_idwt3_v_cas1(OPJ_INT32 *tmp, const OPJ_INT32 sn, const OPJ_INT32 len, OPJ_INT32 *tiledp_col, const OPJ_SIZE_T stride)
Vertical inverse 5x3 wavelet transform for one column, when top-most pixel is on odd coordinate.
Definition: dwt.c:827
opj_dwt_fetch_cols_vertical_pass
static void opj_dwt_fetch_cols_vertical_pass(const void *arrayIn, void *tmpOut, OPJ_UINT32 height, OPJ_UINT32 stride_width, OPJ_UINT32 cols)
Fetch up to cols <= NB_ELTS_V8 for each line, and put them in tmpOut.
Definition: dwt.c:1250
opj_uint_min
static INLINE OPJ_UINT32 opj_uint_min(OPJ_UINT32 a, OPJ_UINT32 b)
Get the minimum of two integers.
Definition: opj_intmath.h:65
OPJ_TRUE
#define OPJ_TRUE
Definition: openjpeg.h:117
opj_uint_max
static INLINE OPJ_UINT32 opj_uint_max(OPJ_UINT32 a, OPJ_UINT32 b)
Get the maximum of two integers.
Definition: opj_intmath.h:83
opj_malloc
void * opj_malloc(size_t size)
Allocate an uninitialized memory block.
Definition: opj_malloc.c:191
opj_v8_t::f
OPJ_FLOAT32 f[NB_ELTS_V8]
Definition: dwt.c:93
opj_tcd_tilecomp::numresolutions
OPJ_UINT32 numresolutions
Definition: tcd.h:200
opj_free
void opj_free(void *ptr)
Deallocates or frees a memory block.
Definition: opj_malloc.c:246
opj_dwt_decode_v_job_t::min_j
OPJ_UINT32 min_j
Definition: dwt.c:2039
opj_dwt_encode_h_job_t::rw
OPJ_UINT32 rw
Definition: dwt.c:1185
OPJ_SS__off
#define OPJ_SS__off(i, off)
Definition: dwt.c:2365
opj_tcd_precinct::cblks
union opj_tcd_precinct::@3 cblks
opj_v8dwt_encode_step1
static void opj_v8dwt_encode_step1(OPJ_FLOAT32 *fw, OPJ_UINT32 end, const OPJ_FLOAT32 cst)
Definition: dwt.c:1570
opj_sparse_array_int32
Definition: sparse_array.c:35
opj_tccp::qntsty
OPJ_UINT32 qntsty
quantisation style
Definition: j2k.h:193
OPJ_D
#define OPJ_D(i)
Definition: dwt.c:185
opj_sparse_array_int32_free
void opj_sparse_array_int32_free(opj_sparse_array_int32_t *sa)
Frees a sparse array.
Definition: sparse_array.c:81
opj_tccp::qmfbid
OPJ_UINT32 qmfbid
discrete wavelet transform identifier
Definition: j2k.h:191
opj_thread_pool_wait_completion
void opj_thread_pool_wait_completion(opj_thread_pool_t *tp, int max_remaining_jobs)
Wait that no more than max_remaining_jobs jobs are remaining in the queue of the thread pool.
Definition: thread.c:894
opj_sparse_array_int32_write
OPJ_BOOL opj_sparse_array_int32_write(opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, const OPJ_INT32 *src, OPJ_UINT32 src_col_stride, OPJ_UINT32 src_line_stride, OPJ_BOOL forgiving)
Write the content of a rectangular region into the sparse array from a user buffer.
Definition: sparse_array.c:330
opj_uint_subs
static INLINE OPJ_UINT32 opj_uint_subs(OPJ_UINT32 a, OPJ_UINT32 b)
Get the saturated difference of two unsigned integers.
Definition: opj_intmath.h:102
opj_dwt_decode_partial_1
static void opj_dwt_decode_partial_1(OPJ_INT32 *a, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas, OPJ_INT32 win_l_x0, OPJ_INT32 win_l_x1, OPJ_INT32 win_h_x0, OPJ_INT32 win_h_x1)
Definition: dwt.c:2283
opj_sparse_array_int32_read
OPJ_BOOL opj_sparse_array_int32_read(const opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, OPJ_INT32 *dest, OPJ_UINT32 dest_col_stride, OPJ_UINT32 dest_line_stride, OPJ_BOOL forgiving)
Read the content of a rectangular region of the sparse array into a user buffer.
Definition: sparse_array.c:311
opj_dwt_encode_h_job_t::min_j
OPJ_UINT32 min_j
Definition: dwt.c:1188
opj_v8dwt_interleave_partial_v
static void opj_v8dwt_interleave_partial_v(opj_v8dwt_t *OPJ_RESTRICT dwt, opj_sparse_array_int32_t *sa, OPJ_UINT32 sa_col, OPJ_UINT32 nb_elts_read)
Definition: dwt.c:2997
OPJ_DD__off
#define OPJ_DD__off(i, off)
Definition: dwt.c:2366
opj_tcd_band::y0
OPJ_INT32 y0
Definition: tcd.h:164
opj_dwt97_decode_h_job_t::nb_rows
OPJ_UINT32 nb_rows
Definition: dwt.c:3215
OPJ_Dc
#define OPJ_Dc(i)
OPJ_DD_
#define OPJ_DD_(i)
Definition: dwt.c:190
opj_tcd_cblk_dec
Code-block for decoding.
Definition: tcd.h:120
opj_dwt_init_sparse_array
static opj_sparse_array_int32_t * opj_dwt_init_sparse_array(opj_tcd_tilecomp_t *tilec, OPJ_UINT32 numres)
Definition: dwt.c:2563
opj_dwt97_decode_h_job_t::rw
OPJ_UINT32 rw
Definition: dwt.c:3212
opj_tccp
Tile-component coding parameters.
Definition: j2k.h:179
opj_tcd_tilecomp::data
OPJ_INT32 * data
Definition: tcd.h:209
opj_dwt_encode_v_func
static void opj_dwt_encode_v_func(void *user_data, opj_tls_t *tls)
Definition: dwt.c:1220
dwt_local::mem
OPJ_INT32 * mem
Definition: dwt.c:84
opj_dwt_encode
OPJ_BOOL opj_dwt_encode(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *tilec)
Forward 5-3 wavelet transform in 2-D.
Definition: dwt.c:1902
opj_dwt_calc_explicit_stepsizes
void opj_dwt_calc_explicit_stepsizes(opj_tccp_t *tccp, OPJ_UINT32 prec)
Explicit calculation of the Quantization Stepsizes.
Definition: dwt.c:1966
opj_dwt_alpha
static const OPJ_FLOAT32 opj_dwt_alpha
Definition: dwt.c:108
opj_dwt_t
struct dwt_local opj_dwt_t
opj_aligned_free
void opj_aligned_free(void *ptr)
Definition: opj_malloc.c:225
opj_dwt_decode
OPJ_BOOL opj_dwt_decode(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *tilec, OPJ_UINT32 numres)
Inverse 5-3 wavelet transform in 2-D.
Definition: dwt.c:1913
opj_dwt97_decode_h_job_t::w
OPJ_UINT32 w
Definition: dwt.c:3213
opj_tcd::thread_pool
opj_thread_pool_t * thread_pool
Thread pool.
Definition: tcd.h:280
opj_uint_ceildivpow2
static INLINE OPJ_UINT32 opj_uint_ceildivpow2(OPJ_UINT32 a, OPJ_UINT32 b)
Divide an integer by a power of 2 and round upwards.
Definition: opj_intmath.h:198
opj_idwt53_h_cas0
static void opj_idwt53_h_cas0(OPJ_INT32 *tmp, const OPJ_INT32 sn, const OPJ_INT32 len, OPJ_INT32 *tiledp)
Definition: dwt.c:335
opj_tcd_cblk_dec::y0
OPJ_INT32 y0
Definition: tcd.h:124
opj_dwt_decode_partial_1_parallel
static void opj_dwt_decode_partial_1_parallel(OPJ_INT32 *a, OPJ_UINT32 nb_cols, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas, OPJ_INT32 win_l_x0, OPJ_INT32 win_l_x1, OPJ_INT32 win_h_x0, OPJ_INT32 win_h_x1)
Definition: dwt.c:2368
opj_aligned_malloc
void * opj_aligned_malloc(size_t size)
Allocate memory aligned to a 16 byte boundary.
Definition: opj_malloc.c:207
opj_dwt_decode_v_job_t::max_j
OPJ_UINT32 max_j
Definition: dwt.c:2040
opj_dwt_decode_tile
static OPJ_BOOL opj_dwt_decode_tile(opj_thread_pool_t *tp, opj_tcd_tilecomp_t *tilec, OPJ_UINT32 i)
Inverse wavelet transform in 2-D.
Definition: dwt.c:2067
OPJ_UINT32
uint32_t OPJ_UINT32
Definition: openjpeg.h:132
opj_tcd_band::bandno
OPJ_UINT32 bandno
Definition: tcd.h:166
opj_int_add_no_overflow
static INLINE OPJ_INT32 opj_int_add_no_overflow(OPJ_INT32 a, OPJ_INT32 b)
Addition two signed integers with a wrap-around behaviour.
Definition: opj_intmath.h:286
OPJ_S_off
#define OPJ_S_off(i, off)
Definition: dwt.c:2361
opj_tcd_tilecomp::win_x1
OPJ_UINT32 win_x1
Definition: tcd.h:222
opj_dwt_encode_v_job_t::w
OPJ_UINT32 w
Definition: dwt.c:1213
dwt_local::sn
OPJ_INT32 sn
Definition: dwt.c:86
OPJ_S
#define OPJ_S(i)
Definition: dwt.c:184
opj_v8dwt_interleave_partial_h
static void opj_v8dwt_interleave_partial_h(opj_v8dwt_t *dwt, opj_sparse_array_int32_t *sa, OPJ_UINT32 sa_line, OPJ_UINT32 remaining_height)
Definition: dwt.c:2949
OPJ_FALSE
#define OPJ_FALSE
Definition: openjpeg.h:118
opj_dwt_get_band_coordinates
static void opj_dwt_get_band_coordinates(opj_tcd_tilecomp_t *tilec, OPJ_UINT32 resno, OPJ_UINT32 bandno, OPJ_UINT32 tcx0, OPJ_UINT32 tcy0, OPJ_UINT32 tcx1, OPJ_UINT32 tcy1, OPJ_UINT32 *tbx0, OPJ_UINT32 *tby0, OPJ_UINT32 *tbx1, OPJ_UINT32 *tby1)
Definition: dwt.c:2510
opj_dwt_decode_v_func
static void opj_dwt_decode_v_func(void *user_data, opj_tls_t *tls)
Definition: dwt.c:2043
opj_dwt_decode_real
OPJ_BOOL opj_dwt_decode_real(opj_tcd_t *p_tcd, opj_tcd_tilecomp_t *OPJ_RESTRICT tilec, OPJ_UINT32 numres)
Inverse 9-7 wavelet transform in 2-D.
Definition: dwt.c:3758
OPJ_S__off
#define OPJ_S__off(i, off)
Definition: dwt.c:2363
opj_tcd_resolution::win_y1
OPJ_UINT32 win_y1
Definition: tcd.h:190
opj_dwt97_decode_h_job_t::aj
OPJ_FLOAT32 *OPJ_RESTRICT aj
Definition: dwt.c:3214
opj_dwt_encode_and_deinterleave_h_one_row
static void opj_dwt_encode_and_deinterleave_h_one_row(void *rowIn, void *tmpIn, OPJ_UINT32 width, OPJ_BOOL even)
Process one line for the horizontal pass of the 5x3 forward transform.
Definition: dwt.c:1110
opj_sparse_array_int32_create
opj_sparse_array_int32_t * opj_sparse_array_int32_create(OPJ_UINT32 width, OPJ_UINT32 height, OPJ_UINT32 block_width, OPJ_UINT32 block_height)
Creates a new sparse array.
Definition: sparse_array.c:45
opj_tcd_precinct::dec
opj_tcd_cblk_dec_t * dec
Definition: tcd.h:153
opj_dwt_norms
static const OPJ_FLOAT64 opj_dwt_norms[4][10]
Definition: dwt.c:197
OPJ_SS_
#define OPJ_SS_(i)
Definition: dwt.c:189
dwt_local::dn
OPJ_INT32 dn
Definition: dwt.c:85
J2K_CCP_QNTSTY_NOQNT
#define J2K_CCP_QNTSTY_NOQNT
Definition: j2k.h:66
opj_dwt97_decode_v_job_t::v
opj_v8dwt_t v
Definition: dwt.c:3260
opj_dwt97_decode_v_job_t::rh
OPJ_UINT32 rh
Definition: dwt.c:3261
opj_tcd_precinct::ch
OPJ_UINT32 ch
Definition: tcd.h:150
opj_thread_pool_t
Definition: thread.c:605
opj_tcd
Tile coder/decoder.
Definition: tcd.h:256
opj_dwt_encode_h_func
static void opj_dwt_encode_h_func(void *user_data, opj_tls_t *tls)
Definition: dwt.c:1193
OPJ_D_
#define OPJ_D_(i)
Definition: dwt.c:187
opj_dwt_decode_h_func
static void opj_dwt_decode_h_func(void *user_data, opj_tls_t *tls)
Definition: dwt.c:2019
opj_tcd_resolution::win_y0
OPJ_UINT32 win_y0
Definition: tcd.h:188
opj_int_sub_no_overflow
static INLINE OPJ_INT32 opj_int_sub_no_overflow(OPJ_INT32 a, OPJ_INT32 b)
Subtract two signed integers with a wrap-around behaviour.
Definition: opj_intmath.h:305
opj_tcd_resolution::win_x1
OPJ_UINT32 win_x1
Definition: tcd.h:189
opj_idwt53_h
static void opj_idwt53_h(const opj_dwt_t *dwt, OPJ_INT32 *tiledp)
Definition: dwt.c:480
opj_v8dwt_encode_step2
static void opj_v8dwt_encode_step2(OPJ_FLOAT32 *fl, OPJ_FLOAT32 *fw, OPJ_UINT32 end, OPJ_UINT32 m, OPJ_FLOAT32 cst)
Definition: dwt.c:1593