SoCudaConvolution Class Reference
[CUDA algorithms]

VSG extension Convolution functions for CUDA buffers More...

#include <Inventor/cuda/algorithms/SoConvolution.h>

Inheritance diagram for SoCudaConvolution:
SoConvolution

List of all members.

Public Member Functions

 SoCudaConvolution ()
virtual int doSeparateConvolution1D (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)
int doSeparateConvolution1D (SoCudaBufferObject *sourceBufferObject, SoCudaBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)
virtual int doSeparateConvolution2D (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)
int doSeparateConvolution2D (SoCudaBufferObject *sourceBufferObject, SoCudaBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)
virtual int doSeparateConvolutionRow (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)
int doSeparateConvolutionRow (SoCudaBufferObject *sourceBufferObject, SoCudaBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)
virtual int doSeparateConvolutionColumn (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)
int doSeparateConvolutionColumn (SoCudaBufferObject *sourceBufferObject, SoCudaBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height)

Detailed Description

VSG extension Convolution functions for CUDA buffers

This module provides functions to perform convolution on 2D buffers.

NOTE: The classes in this module do not exist in Open Inventor 10.0 and later.

Examples:


Constructor & Destructor Documentation

SoCudaConvolution::SoCudaConvolution (  ) 

Constructor.


Member Function Documentation

int SoCudaConvolution::doSeparateConvolution1D ( SoCudaBufferObject sourceBufferObject,
SoCudaBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
)

This function performs a 1D convolution on a two dimensional buffer using a 1D kernel.


CUDA buffer version

virtual int SoCudaConvolution::doSeparateConvolution1D ( SoBufferObject sourceBufferObject,
SoBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
) [virtual]

This function performs a 1D convolution on a two dimensional buffer using a 1D kernel.

  • The data in the input buffer must contain floats.
  • The function puts float values in the output buffer.

This convolution is equivalent to a row convolution.

Parameters:
sourceBufferObject The input float buffer.
targetBufferObject The output float buffer.
kernelData The kernel values.
kernelSize The kernel size.
width The width of the two dimensional buffer.
height The height of the two dimensional buffer.
Returns:
Returns 0 if there is no error, 1 if one of the buffers is too small.

Reimplemented from SoConvolution.

int SoCudaConvolution::doSeparateConvolution2D ( SoCudaBufferObject sourceBufferObject,
SoCudaBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
)

This function performs a 2D convolution on a two dimensional buffer using a 1D kernel.


CUDA buffer version

virtual int SoCudaConvolution::doSeparateConvolution2D ( SoBufferObject sourceBufferObject,
SoBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
) [virtual]

This function performs a 2D convolution on a two dimensional buffer using a 1D kernel.

  • The data in the input buffer must contain floats.
  • The function puts float values in the output buffer.

The 2D convolution performs a row convolution followed by a column convolution using the same kernel for the two passes.

To do a 2D convolution with two different 1D kernels use the row/column methods doSeparateConvolutionRow() and doSeparateConvolutionColumn().

Parameters:
sourceBufferObject The input float buffer.
targetBufferObject The output float buffer.
kernelData The kernel values.
kernelSize The kernel size.
width The width of the two dimensional buffer.
height The height of the two dimensional buffer.
Returns:
Returns 0 if there is no error, 1 if one of the buffers is two small.

Reimplemented from SoConvolution.

int SoCudaConvolution::doSeparateConvolutionColumn ( SoCudaBufferObject sourceBufferObject,
SoCudaBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
)

This function performs a column convolution on a two dimensional buffe using a 1D kernel.


CUDA buffer version

virtual int SoCudaConvolution::doSeparateConvolutionColumn ( SoBufferObject sourceBufferObject,
SoBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
) [virtual]

This function performs a column convolution on a two dimensional buffe using a 1D kernel.

  • The data in the input buffer must contain floats.
  • The function puts float values in the output buffer.
Parameters:
sourceBufferObject The input float buffer.
targetBufferObject The output float buffer.
kernelData The kernel values.
kernelSize The kernel size.
width The width of the two dimensional buffer.
height The height of the two dimensional buffer.
Returns:
Returns 0 if there is no error, 1 if one of the buffers is two small.

Reimplemented from SoConvolution.

int SoCudaConvolution::doSeparateConvolutionRow ( SoCudaBufferObject sourceBufferObject,
SoCudaBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
)

This function performs a row convolution on a two dimensional buffer using a 1D kernel.


CUDA buffer version

virtual int SoCudaConvolution::doSeparateConvolutionRow ( SoBufferObject sourceBufferObject,
SoBufferObject targetBufferObject,
float *  kernelData,
int  kernelSize,
int  width,
int  height 
) [virtual]

This function performs a row convolution on a two dimensional buffer using a 1D kernel.

  • The data in the input buffer must contain floats.
  • The function puts float values in the output buffer.
Parameters:
sourceBufferObject The input float buffer.
targetBufferObject The output float buffer.
kernelData The kernel values.
kernelSize The kernel size.
width The width of the two dimensional buffer.
height The height of the two dimensional buffer.
Returns:
Returns 0 if there is no error, 1 if one of the buffers is two small.

Reimplemented from SoConvolution.


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

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/