public void downsample(byte[][][] input_buf, int in_row_index, byte[][][] output_buf, int out_row_group_index)
{
for (int ci = 0; ci < m_cinfo.m_num_components; ci++)
{
int outIndex = out_row_group_index * rowgroup_height[ci];
switch (m_downSamplers[ci])
{
case downSampleMethod.fullsize_smooth_downsampler:
fullsize_smooth_downsample(ci, input_buf[ci], in_row_index, output_buf[ci], outIndex);
break;
case downSampleMethod.fullsize_downsampler:
fullsize_downsample(ci, input_buf[ci], in_row_index, output_buf[ci], outIndex);
break;
case downSampleMethod.h2v1_downsampler:
h2v1_downsample(ci, input_buf[ci], in_row_index, output_buf[ci], outIndex);
break;
case downSampleMethod.h2v2_smooth_downsampler:
h2v2_smooth_downsample(ci, input_buf[ci], in_row_index, output_buf[ci], outIndex);
break;
case downSampleMethod.h2v2_downsampler:
h2v2_downsample(ci, input_buf[ci], in_row_index, output_buf[ci], outIndex);
break;
case downSampleMethod.int_downsampler:
int_downsample(ci, input_buf[ci], in_row_index, output_buf[ci], outIndex);
break;
}
}
}