ITK  4.4.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter > Class Template Reference

#include <itkGPUDenseFiniteDifferenceImageFilter.h>

+ Inheritance diagram for itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >:
+ Collaboration diagram for itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >:

Detailed Description

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
class itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >

This is the GPU version of DenseFiniteDifferenceImageFilter class. Currently only single-threaded, single GPU version is implemented. See documentation for FiniteDifferenceImageFilter for an overview of the iterative finite difference algorithm:

$u_{\mathbf{i}}^{n+1}=u^n_{\mathbf{i}}+\Delta u^n_{\mathbf{i}}\Delta t$
This class defines an update buffer for $ \Delta $ and the methods GPUCalculateChange() and GPUApplyUpdate(), which are GPU version of CalculateChange() and ApplyUpdate().

Use m_UpdateBuffer defined in CPU superclass (DenseFiniteDifferenceImageFilter).

How to use this class
This filter can be used as a base class for GPU implementation of DenseFiniteDifferenceImageFilter.

Definition at line 55 of file itkGPUDenseFiniteDifferenceImageFilter.h.

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef TParentImageFilter CPUSuperclass
 
typedef
GPUSuperclass::FiniteDifferenceFunctionType 
FiniteDifferenceFunctionType
 
typedef
GPUFiniteDifferenceImageFilter
< TInputImage, TOutputImage,
TParentImageFilter > 
GPUSuperclass
 
typedef
GPUSuperclass::InputImageType 
InputImageType
 
typedef
GPUSuperclass::OutputImageType 
OutputImageType
 
typedef GPUSuperclass::PixelType PixelType
 
typedef SmartPointer< SelfPointer
 
typedef
GPUDenseFiniteDifferenceImageFilter 
Self
 
typedef GPUSuperclass::TimeStepType TimeStepType
 
typedef OutputImageType UpdateBufferType
 
- Public Types inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
typedef SmartPointer< const SelfConstPointer
 
typedef TParentImageFilter CPUSuperclass
 
enum  FilterStateType {
  UNINITIALIZED = 0,
  INITIALIZED = 1
}
 
typedef
GPUFiniteDifferenceFunction
< TOutputImage >
::DifferenceFunctionType 
FiniteDifferenceFunctionType
 
typedef GPUInPlaceImageFilter
< TInputImage, TOutputImage,
TParentImageFilter > 
GPUSuperclass
 
typedef TInputImage InputImageType
 
typedef TInputImage::PixelType InputPixelType
 
typedef NumericTraits
< InputPixelType >::ValueType 
InputPixelValueType
 
typedef
FiniteDifferenceFunctionType::NeighborhoodScalesType 
NeighborhoodScalesType
 
typedef TOutputImage OutputImageType
 
typedef TOutputImage::PixelType OutputPixelType
 
typedef NumericTraits
< OutputPixelType >::ValueType 
OutputPixelValueType
 
typedef OutputPixelType PixelType
 
typedef SmartPointer< SelfPointer
 
typedef
FiniteDifferenceFunctionType::RadiusType 
RadiusType
 
typedef
GPUFiniteDifferenceImageFilter 
Self
 
typedef
FiniteDifferenceFunctionType::TimeStepType 
TimeStepType
 
- Public Types inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
typedef SmartPointer< const SelfConstPointer
 
typedef TParentImageFilter CPUSuperclass
 
typedef GPUImageToImageFilter
< TInputImage, TOutputImage,
TParentImageFilter > 
GPUSuperclass
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef TInputImage InputImageType
 
typedef
GPUSuperclass::OutputImagePixelType 
OutputImagePixelType
 
typedef
GPUSuperclass::OutputImagePointer 
OutputImagePointer
 
typedef
GPUSuperclass::OutputImageRegionType 
OutputImageRegionType
 
typedef
GPUSuperclass::OutputImageType 
OutputImageType
 
typedef SmartPointer< SelfPointer
 
typedef GPUInPlaceImageFilter Self
 
- Public Types inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >
typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::DataObjectIdentifierType 
DataObjectIdentifierType
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef TInputImage InputImageType
 
typedef
Superclass::OutputImagePixelType 
OutputImagePixelType
 
typedef
Superclass::OutputImageRegionType 
OutputImageRegionType
 
typedef SmartPointer< SelfPointer
 
typedef GPUImageToImageFilter Self
 
typedef TParentImageFilter Superclass
 

Public Member Functions

virtual const char * GetNameOfClass () const
 
 itkGetOpenCLSourceFromKernelMacro (GPUDenseFiniteDifferenceImageFilterKernel)
 
 typedef (Concept::MultiplyOperator< PixelType, double >) OutputTimesDoubleCheck
 
 typedef (Concept::AdditiveOperators< PixelType >) OutputAdditiveOperatorsCheck
 
 typedef (Concept::Convertible< typename TInputImage::PixelType, PixelType >) InputConvertibleToOutputCheck
 
- Public Member Functions inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
virtual void SetDifferenceFunction (FiniteDifferenceFunctionType *_arg)
 
void SetStateToInitialized ()
 
void SetStateToUninitialized ()
 
virtual const
FiniteDifferenceFunctionType::Pointer
GetDifferenceFunction () const
 
virtual void SetUseImageSpacing (bool _arg)
 
virtual void UseImageSpacingOn ()
 
virtual void UseImageSpacingOff ()
 
virtual const bool & GetUseImageSpacing ()
 
virtual void SetMaximumRMSError (double _arg)
 
virtual const double & GetMaximumRMSError ()
 
virtual void SetRMSChange (double _arg)
 
virtual const double & GetRMSChange ()
 
virtual void SetState (FilterStateType _arg)
 
virtual const FilterStateTypeGetState ()
 
virtual void SetManualReinitialization (bool _arg)
 
virtual const bool & GetManualReinitialization ()
 
virtual void ManualReinitializationOn ()
 
virtual void ManualReinitializationOff ()
 
virtual const TimeProbeGetInitTime ()
 
virtual const TimeProbeGetComputeUpdateTime ()
 
virtual const TimeProbeGetApplyUpdateTime ()
 
virtual const TimeProbeGetSmoothFieldTime ()
 

Static Public Attributes

static const unsigned int ImageDimension = GPUSuperclass::ImageDimension
 
- Static Public Attributes inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
static const unsigned int ImageDimension = OutputImageType::ImageDimension
 
- Static Public Attributes inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
static const unsigned int InputImageDimension = TInputImage::ImageDimension
 
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
 
- Static Public Attributes inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >
static const unsigned int InputImageDimension = TInputImage::ImageDimension
 
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
 

Protected Member Functions

virtual void AllocateUpdateBuffer ()
 
virtual void ApplyUpdate (const TimeStepType &dt)
 
virtual void CopyInputToOutput ()
 
virtual UpdateBufferTypeGetUpdateBuffer ()
 
virtual void GPUApplyUpdate (const TimeStepType &dt)
 
virtual TimeStepType GPUCalculateChange ()
 
 GPUDenseFiniteDifferenceImageFilter ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
 ~GPUDenseFiniteDifferenceImageFilter ()
 
- Protected Member Functions inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
virtual void GenerateInputRequestedRegion ()
 
virtual void GPUApplyUpdate (const TimeStepType &dt)=0
 
 GPUFiniteDifferenceImageFilter ()
 
virtual void GPUGenerateData ()
 
virtual bool Halt ()
 
virtual void Initialize ()
 
virtual void InitializeIteration ()
 
virtual void PostProcessOutput ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual TimeStepType ResolveTimeStep (const std::vector< TimeStepType > &timeStepList, const std::vector< bool > &valid) const
 
virtual void SetElapsedIterations (IdentifierType _arg)
 
virtual bool ThreadedHalt (void *)
 
 ~GPUFiniteDifferenceImageFilter ()
 
- Protected Member Functions inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
virtual void AllocateOutputs ()
 
 GPUInPlaceImageFilter ()
 
virtual void ReleaseInputs ()
 
 ~GPUInPlaceImageFilter ()
 
- Protected Member Functions inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >
 GPUImageToImageFilter ()
 
 ~GPUImageToImageFilter ()
 

Protected Attributes

int m_ApplyUpdateGPUKernelHandle
 
- Protected Attributes inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
TimeProbe m_ApplyUpdateTime
 
TimeProbe m_ComputeUpdateTime
 
TimeProbe m_InitTime
 
bool m_ManualReinitialization
 
double m_MaximumRMSError
 
double m_RMSChange
 
TimeProbe m_SmoothFieldTime
 

Private Member Functions

 GPUDenseFiniteDifferenceImageFilter (const Self &)
 
void operator= (const Self &)
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >
static Pointer New ()
 

Member Typedef Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef SmartPointer< const Self > itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::ConstPointer

Definition at line 64 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef TParentImageFilter itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::CPUSuperclass

Definition at line 62 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::FiniteDifferenceFunctionType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::FiniteDifferenceFunctionType

Definition at line 72 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter > itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUSuperclass

Definition at line 61 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::InputImageType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::InputImageType

Convenient typedefs

Definition at line 67 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::OutputImageType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::OutputImageType

Definition at line 71 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::PixelType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::PixelType

The pixel type of the output image will be used in computations. Inherited from the superclass.

Definition at line 80 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef SmartPointer< Self > itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::Pointer

Definition at line 63 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUDenseFiniteDifferenceImageFilter itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::Self

Standard class typedefs

Definition at line 60 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::TimeStepType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::TimeStepType

The value type of a time step. Inherited from the superclass.

Definition at line 83 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef OutputImageType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::UpdateBufferType

The container type for the update buffer.

Definition at line 86 of file itkGPUDenseFiniteDifferenceImageFilter.h.

Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUDenseFiniteDifferenceImageFilter ( )
protected
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::~GPUDenseFiniteDifferenceImageFilter ( )
inlineprotected

Definition at line 105 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUDenseFiniteDifferenceImageFilter ( const Self )
private

Member Function Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::AllocateUpdateBuffer ( )
protectedvirtual

This method allocates storage in m_UpdateBuffer. It is called from Superclass::GenerateData().

Implements itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::ApplyUpdate ( const TimeStepType dt)
protectedvirtual

This method applies changes from the m_UpdateBuffer to the output using the GPU. "dt" is the time step to use for the update of each pixel.

Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::CopyInputToOutput ( )
protectedvirtual

A simple method to copy the data from the input to the output. ( Supports "read-only" image adaptors in the case where the input image type converts to a different output image type. )

Implements itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

Reimplemented in itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual const char* itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GetNameOfClass ( ) const
virtual
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual UpdateBufferType* itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GetUpdateBuffer ( )
inlineprotectedvirtual

Method to allow subclasses to get direct access to the update buffer

Definition at line 126 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUApplyUpdate ( const TimeStepType dt)
protectedvirtual
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual TimeStepType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUCalculateChange ( )
protectedvirtual

This method populates an update buffer with changes for each pixel in the output using the GPU. Returns value is a time step to be used for the update.

Implements itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::itkGetOpenCLSourceFromKernelMacro ( GPUDenseFiniteDifferenceImageFilterKernel  )

End concept checking Get OpenCL Kernel source as a string, creates a GetOpenCLSource method

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::operator= ( const Self )
private
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::typedef ( Concept::MultiplyOperator< PixelType, double >  )

Begin concept checking This class requires OutputTimesDoubleCheck in the form of ( Concept::MultiplyOperator< PixelType, double > )

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::typedef ( Concept::AdditiveOperators< PixelType )

This class requires OutputAdditiveOperatorsCheck in the form of ( Concept::AdditiveOperators< PixelType > )

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::typedef ( Concept::Convertible< typename TInputImage::PixelType, PixelType )

This class requires InputConvertibleToOutputCheck in the form of ( Concept::Convertible< typename TInputImage::PixelType, PixelType > )

Member Data Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
const unsigned int itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::ImageDimension = GPUSuperclass::ImageDimension
static

Dimensionality of input and output data is assumed to be the same. It is inherited from the superclass.

Definition at line 76 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
int itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::m_ApplyUpdateGPUKernelHandle
protected

Definition at line 135 of file itkGPUDenseFiniteDifferenceImageFilter.h.


The documentation for this class was generated from the following file: