Lines Matching full:row
28 * Postprocessor input data is counted in "row groups". A row group
35 * row group (times any additional scale factor that the upsampler is
38 * The coefficient controller will deliver data to us one iMCU row at a time;
39 * each iMCU row contains v_samp_factor * DCT_scaled_size sample rows, or
40 * exactly min_DCT_scaled_size row groups. (This amount of data corresponds
41 * to one row of MCUs when the image is fully interleaved.) Note that the
42 * number of sample rows varies across components, but the number of row
44 * row at the bottom of the image.
47 * access to the sample row(s) above and below its current input row group.
50 * obtain one iMCU row at a time from the coefficient controller and dole it
51 * out as row groups to the postprocessor.
54 * passed to postprocessing contains at least one row group's worth of samples
55 * above and below the row group(s) being processed. Note that the context
56 * rows "above" the first passed row group appear at negative row offsets in
59 * row; this avoids having special cases in the upsampling inner loops.
61 * The amount of context is fixed at one row group just because that's a
63 * upsamplers really only need one sample row of context. An upsampler
64 * supporting arbitrary output rescaling might wish for more than one row
70 * To provide the desired context, we have to retain the last two row groups
71 * of one iMCU row while reading in the next iMCU row. (The last row group
72 * can't be processed until we have another row group for its below-context,
77 * consisting of M+2 row groups (where M = min_DCT_scaled_size is the number
78 * of row groups per iMCU row). We create two sets of redundant pointers to
79 * the workspace. Labeling the physical row groups 0 to M+1, the synthesized
92 * row groups of the previous iMCU row remain un-overwritten in the workspace.
99 * the first or last sample row as necessary (this is cheaper than copying
103 * situation each iMCU row provides only one row group so the buffering logic
105 * first row group). For now, we simply do not support providing context
117 /* Pointer to allocated workspace (M or M+2 row groups). */
120 boolean buffer_full; /* Have we gotten an iMCU row from decoder? */
121 JDIMENSION rowgroup_ctr; /* counts row groups output to postprocessor */
130 JDIMENSION rowgroups_avail; /* row groups available to postprocessor */
137 #define CTX_PREPARE_FOR_IMCU 0 /* need to prepare for MCU row */
139 #define CTX_POSTPONED_ROW 2 /* feeding postponed row group */
179 cinfo->min_DCT_scaled_size; /* height of a row group of component */
180 /* Get space for pointer lists --- M+4 row groups in each list.
186 xbuf += rgroup; /* want one row group at negative offsets */
212 cinfo->min_DCT_scaled_size; /* height of a row group of component */
220 /* In the second list, put the last four row groups in swapped order */
252 cinfo->min_DCT_scaled_size; /* height of a row group of component */
267 /* Change the pointer lists to duplicate the last sample row at the bottom
268 * of the image. whichptr indicates which xbuffer holds the final iMCU row.
269 * Also sets rowgroups_avail to indicate number of nondummy row groups in row.
279 /* Count sample rows in one iMCU row and in one row group */
285 /* Count nondummy row groups. Should get same answer for each component,
291 /* Duplicate the last real sample row rgroup*2 times; this pads out the
316 main->whichptr = 0; /* Read first iMCU row into xbuffer[0] */
356 main->buffer_full = TRUE; /* OK, we have an iMCU row to work with */
359 /* There are always min_DCT_scaled_size row groups in an iMCU row. */
361 /* Note: at the bottom of the image, we may pass extra garbage row groups
363 * of image anyway (at row resolution), so no point in us doing it too.
396 main->buffer_full = TRUE; /* OK, we have an iMCU row to work with */
407 /* Call postprocessor using previously set pointers for postponed row */
418 /* Prepare to process first M-1 row groups of this iMCU row */
422 * the last sample row, and adjust rowgroups_avail to ignore padding rows.
438 /* Prepare to load new iMCU row using other xbuffer list */
441 /* Still need to process last row group of this iMCU row, */
492 * ngroups is the number of row groups we need.
506 cinfo->min_DCT_scaled_size; /* height of a row group of component */