void BkgParamH5::IncrementalWriteRegions ( int flow, int iBlk ) { // write to any live region parameters // every parameter checks itself to see if writing is useful or safe IncrementalWriteParam ( empty_trace.source,empty_trace.h5_set,flow ); IncrementalWriteParam ( empty_dc.source, empty_dc.h5_set, flow ); IncrementalWriteParam ( region_debug_bead_amplitude_krate.source, region_debug_bead_amplitude_krate.h5_set, flow ); IncrementalWriteParam ( region_debug_bead_predicted.source, region_debug_bead_predicted.h5_set, flow ); IncrementalWriteParam ( region_debug_bead_corrected.source, region_debug_bead_corrected.h5_set, flow ); IncrementalWriteParam ( region_debug_bead_xtalk.source, region_debug_bead_xtalk.h5_set, flow ); WriteOneBlock ( regional_params.source, regional_params.h5_set,iBlk ); WriteOneBlock ( nuc_shape_params.source, nuc_shape_params.h5_set,iBlk ); WriteOneBlock ( enzymatics_params.source, enzymatics_params.h5_set,iBlk ); WriteOneBlock ( buffering_params.source, buffering_params.h5_set,iBlk ); WriteOneBlock ( derived_params.source, derived_params.h5_set,iBlk ); emphasis_val.SafeWrite ( iBlk ); // do every compute block if ( iBlk==0 ) // do only once at first compute block { region_debug_bead_location.SafeWrite(); region_debug_bead.SafeWrite(); dark_matter_trace.SafeWrite(); darkness_val.SafeWrite(); region_init_val.SafeWrite(); region_offset_val.SafeWrite(); time_compression.SafeWrite(); } }
/* * 4:1:1 */ void Write4Blocks (int *store1, int *store2, int *store3, int *store4, int *p_out_vpos, int *p_out_hpos, unsigned char *p_out_buf, dvars *d) { int voffs, hoffs; /* * OX * XX */ voffs = *p_out_vpos * DCTSIZE; hoffs = *p_out_hpos * DCTSIZE; WriteOneBlock (store1, p_out_buf, d->p_jinfo_image_width, d->p_jinfo_image_height, voffs, hoffs); /* * XO * XX */ hoffs += DCTSIZE; WriteOneBlock (store2, p_out_buf, d->p_jinfo_image_width, d->p_jinfo_image_height, voffs, hoffs); /* * XX * OX */ voffs += DCTSIZE; hoffs -= DCTSIZE; WriteOneBlock (store3, p_out_buf, d->p_jinfo_image_width, d->p_jinfo_image_height, voffs, hoffs); /* * XX * XO */ hoffs += DCTSIZE; WriteOneBlock (store4, p_out_buf, d->p_jinfo_image_width, d->p_jinfo_image_height, voffs, hoffs); /* * Add positions */ *p_out_hpos = *p_out_hpos + 2; *p_out_vpos = *p_out_vpos + 2; if (*p_out_hpos < d->p_jinfo_MCUWidth) { *p_out_vpos = *p_out_vpos - 2; } else { *p_out_hpos = 0; /* If at end of image (width) */ } }
/* * WriteBlock() writes an array of data in the integer array pointed to * by store out to the driver specified by the IOB. The integer array is * stored in row-major form, that is, the first row of (8) elements, the * second row of (8) elements.... * ONLY for MCU 1:1:1 */ void WriteBlock(int *store, int *p_out_vpos, int *p_out_hpos, unsigned char *p_out_buf) { int voffs,hoffs; /* * Get vertical offsets */ voffs = *p_out_vpos * DCTSIZE; hoffs = *p_out_hpos * DCTSIZE; /* * Write block */ WriteOneBlock(store, p_out_buf, p_jinfo_image_width, p_jinfo_image_height, voffs, hoffs); /* * Add positions */ *p_out_hpos++; *p_out_vpos++; if (*p_out_hpos < p_jinfo_MCUWidth){ *p_out_vpos--; }else{ *p_out_hpos = 0; /* If at end of image (width) */ } }
void BkgParamH5::IncrementalWriteBeads ( int flow, int iBlk ) { // every parameter checks itself to see if writing is useful or safe // every time we write, we write these IncrementalWriteParam ( bead_dc.source,bead_dc.h5_set,flow ); IncrementalWriteParam ( Amplitude.source,Amplitude.h5_set,flow ); IncrementalWriteParam ( krate_multiplier.source,krate_multiplier.h5_set,flow ); IncrementalWriteParam ( residual_error.source,residual_error.h5_set,flow ); // do compute blocks WriteOneBlock ( average_error_flow_block.source, average_error_flow_block.h5_set,iBlk ); WriteOneBlock ( bead_clonal_compute_block.source, bead_clonal_compute_block.h5_set,iBlk ); WriteOneBlock ( bead_corrupt_compute_block.source, bead_corrupt_compute_block.h5_set,iBlk ); if ( iBlk==0 ) // only do the first compute block { bead_base_parameter.SafeWrite(); } }