ODIN reconstruction framework (odinreco)

This page describes the usage and design guidelines of the module The reconstruction framework (odinreco)

The reconstruction process

Image reconstruction is achieved by the following processing strategy: Each single acquisition (ADC) is fed separately into the reconstruction pipeline. The pipeline consists of a chain of steps(functors) which are executed subsequently in order to process the input data with the reconstructed image as the final output. ADCs are processed simultaneously in different threads allowing acceleration of reconstruction on multi-processor systems. It is the responsibility of the steps to synchronize properly if they possess global (static) data.

Setting up a reconstruction pipeline

A reconstruction pipeline is described by a string. This string consists of single tokens representing a step which can be any of those described in Steps(functors) of the reconstruction framework (odinreco). These steps are chained together using the pipe operator (|). Only steps with a compatible input and output interface may be chained together. A step may accept additional arguments enclosed in parenthesis after the step label. In addition, a step may have command-line options to fine-tune its behaviour. Please refer to the manual at (Steps(functors) of the reconstruction framework (odinreco)) for the input/output interface, arguments and options of each step.

As an example, a simple 2D/3D reconstruction would look like this:

    kspace | fft | baseline | offset | slicecoll | image | store(result)
    
This would collect k-space data (kspace), perform an FFT if done (fft), do a baseline correction (baseline) and shift the image (offset). Finally, after collecting slices and repetitions (slicecoll | image), it would store the data in files starting with the prefix 'result'.

Blackboard

Some steps need data produced by another step in another branch of the pipeline (e.g. phasemap, fieldmap). To pass this data around, a blackboard system is used to post data and retrieve it later. The 'post' step (RecoPost) can used to post data and the function RecoController::inquire_data() can be used to retrieve this data in another step.

Reconstruction Options

Each step can have a number of options (i.e. parameters) to customize its behavior. For instance, the step for zero filling accepts the zero-padded sizes of the destination grid as its arguments. For a list of available options of each step, please refer to Steps(functors) of the reconstruction framework (odinreco). Options can be set in different ways. With ascending priority, these are:
Generated on Sat Jun 14 12:31:23 2008 by  doxygen 1.5.1