• Home
  • Raw
  • Download

Lines Matching +full:ci +full:- +full:pass

5  * Copyright (C) 1994-1996, Thomas G. Lane.
6 * Modified 2002-2010 by Guido Vollbeding.
7 * libjpeg-turbo Modifications:
14 * This file contains the inverse-DCT management logic.
17 * is executed per IDCT step, only during output pass setup.
36 * decode files that reuse Q-table slots.)
37 * When we are ready to make an output pass, the saved Q-table is converted
39 * The multiplier table contents are IDCT-method-dependent. To support
42 * In buffered-image mode, the first output pass may occur before any data
43 * has been seen for some components, and thus before their Q-tables have
55 * is currently set up for, or -1 if it's not yet set up.
57 * per-component comp_info structures.
78 /* The current scaled-IDCT routines require ISLOW-style multiplier tables,
91 * Prepare for an output pass.
99 my_idct_ptr idct = (my_idct_ptr)cinfo->idct; in start_pass()
100 int ci, i; in start_pass() local
106 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; in start_pass()
107 ci++, compptr++) { in start_pass()
109 switch (compptr->_DCT_scaled_size) { in start_pass()
113 method = JDCT_ISLOW; /* jidctred uses islow-style table */ in start_pass()
120 method = JDCT_ISLOW; /* jidctred uses islow-style table */ in start_pass()
124 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
131 method = JDCT_ISLOW; /* jidctred uses islow-style table */ in start_pass()
135 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
144 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
148 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
152 switch (cinfo->dct_method) { in start_pass()
188 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
192 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
196 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
205 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
209 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
213 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
217 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
221 method = JDCT_ISLOW; /* jidctint uses islow-style table */ in start_pass()
225 ERREXIT1(cinfo, JERR_BAD_DCTSIZE, compptr->_DCT_scaled_size); in start_pass()
228 idct->pub.inverse_DCT[ci] = method_ptr; in start_pass()
233 * multiplier table all-zero; we'll be reading zeroes from the in start_pass()
236 if (!compptr->component_needed || idct->cur_method[ci] == method) in start_pass()
238 qtbl = compptr->quant_table; in start_pass()
241 idct->cur_method[ci] = method; in start_pass()
249 ISLOW_MULT_TYPE *ismtbl = (ISLOW_MULT_TYPE *)compptr->dct_table; in start_pass()
251 ismtbl[i] = (ISLOW_MULT_TYPE)qtbl->quantval[i]; in start_pass()
266 IFAST_MULT_TYPE *ifmtbl = (IFAST_MULT_TYPE *)compptr->dct_table; in start_pass()
283 DESCALE(MULTIPLY16V16((JLONG)qtbl->quantval[i], in start_pass()
285 CONST_BITS - IFAST_SCALE_BITS); in start_pass()
298 FLOAT_MULT_TYPE *fmtbl = (FLOAT_MULT_TYPE *)compptr->dct_table; in start_pass()
309 ((double)qtbl->quantval[i] * in start_pass()
333 int ci; in jinit_inverse_dct() local
337 (*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE, in jinit_inverse_dct()
339 cinfo->idct = (struct jpeg_inverse_dct *)idct; in jinit_inverse_dct()
340 idct->pub.start_pass = start_pass; in jinit_inverse_dct()
342 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; in jinit_inverse_dct()
343 ci++, compptr++) { in jinit_inverse_dct()
344 /* Allocate and pre-zero a multiplier table for each component */ in jinit_inverse_dct()
345 compptr->dct_table = in jinit_inverse_dct()
346 (*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE, in jinit_inverse_dct()
348 MEMZERO(compptr->dct_table, sizeof(multiplier_table)); in jinit_inverse_dct()
350 idct->cur_method[ci] = -1; in jinit_inverse_dct()