private bool encode_mcu_gather(JBLOCK[][] MCU_data)
{
/* Take care of restart intervals if needed */
if (m_cinfo.m_restart_interval != 0)
{
if (m_restarts_to_go == 0)
{
/* Re-initialize DC predictions to 0 */
for (int ci = 0; ci < m_cinfo.m_comps_in_scan; ci++)
m_saved.last_dc_val[ci] = 0;
/* Update restart state */
m_restarts_to_go = m_cinfo.m_restart_interval;
}
m_restarts_to_go--;
}
for (int blkn = 0; blkn < m_cinfo.m_blocks_in_MCU; blkn++)
{
int ci = m_cinfo.m_MCU_membership[blkn];
jpeg_component_info compptr = m_cinfo.Component_info[m_cinfo.m_cur_comp_info[ci]];
htest_one_block(MCU_data[blkn][0].data, m_saved.last_dc_val[ci],
m_dc_count_ptrs[compptr.Dc_tbl_no],
m_ac_count_ptrs[compptr.Ac_tbl_no]);
m_saved.last_dc_val[ci] = MCU_data[blkn][0][0];
}
return true;
}