103 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
128 out_rows_avail -= *out_row_ctr;
132 (*cinfo->cconvert->color_convert) (cinfo, upsample->
color_buf,
143 (*in_row_group_ctr)++;
164 *output_data_ptr = input_data;
189 int h_expand, v_expand;
194 output_data = *output_data_ptr;
195 output_end = output_data + cinfo->max_v_samp_factor;
196 for (; output_data < output_end; output_data += v_expand) {
198 inptr = *input_data++;
199 outptr = *output_data;
200 outend = outptr + cinfo->output_width;
201 while (outptr < outend) {
203 for (
h = h_expand;
h > 0;
h--) {
210 v_expand - 1, cinfo->output_width);
231 for (outrow = 0; outrow < cinfo->max_v_samp_factor; outrow++) {
232 inptr = input_data[outrow];
233 outptr = output_data[outrow];
234 outend = outptr + cinfo->output_width;
235 while (outptr < outend) {
258 output_data = *output_data_ptr;
259 output_end = output_data + cinfo->max_v_samp_factor;
260 for (; output_data < output_end; output_data += 2) {
261 inptr = *input_data++;
262 outptr = *output_data;
263 outend = outptr + cinfo->output_width;
264 while (outptr < outend) {
270 1, cinfo->output_width);
285 int h_in_group, v_in_group, h_out_group, v_out_group;
289 cinfo->upsample = &upsample->
pub;
292 upsample->
pub.need_context_rows =
FALSE;
294 if (cinfo->CCIR601_sampling)
295 ERREXIT(cinfo, JERR_CCIR601_NOTIMPL);
300 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
309 cinfo->min_DCT_h_scaled_size;
311 cinfo->min_DCT_v_scaled_size;
312 h_out_group = cinfo->max_h_samp_factor;
313 v_out_group = cinfo->max_v_samp_factor;
315 if (h_in_group == h_out_group && v_in_group == v_out_group) {
320 if (h_in_group * 2 == h_out_group && v_in_group == v_out_group) {
323 }
else if (h_in_group * 2 == h_out_group &&
324 v_in_group * 2 == v_out_group) {
327 }
else if ((h_out_group % h_in_group) == 0 &&
328 (v_out_group % v_in_group) == 0) {
334 ERREXIT(cinfo, JERR_FRACT_SAMPLE_NOTIMPL);
335 upsample->
color_buf[ci] = (*cinfo->mem->alloc_sarray)
338 (
long) cinfo->max_h_samp_factor),
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
for(i=0;i< ARRAY_SIZE(offsets);i++)
GLfloat GLfloat GLfloat GLfloat h
jpeg_component_info * compptr
jpeg_component_info JCOEFPTR JSAMPARRAY output_buf
my_upsampler * my_upsample_ptr
h2v1_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY input_data, JSAMPIMAGE output_data_ptr)
h2v2_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY input_data, JSAMPIMAGE output_data_ptr)
int_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY input_data, JSAMPIMAGE output_data_ptr)
start_pass_upsample(j_decompress_ptr cinfo)
fullsize_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY input_data, JSAMPIMAGE output_data_ptr)
jinit_upsampler(j_decompress_ptr cinfo)
sep_upsample(j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, JDIMENSION in_row_groups_avail, JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)
#define JMETHOD(type, methodname, arglist)
struct jpeg_common_struct * j_common_ptr
jcopy_sample_rows(JSAMPARRAY input_array, JSAMPARRAY output_array, int num_rows, JDIMENSION num_cols)
jround_up(long a, long b)
int rowgroup_height[MAX_COMPONENTS]
struct jpeg_upsampler pub
upsample1_ptr methods[MAX_COMPONENTS]
UINT8 v_expand[MAX_COMPONENTS]
UINT8 h_expand[MAX_COMPONENTS]
JSAMPARRAY color_buf[MAX_COMPONENTS]