Convolution functions for CUDA buffers
More...
#include <Inventor/cuda/algorithms/SoConvolution.h>
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) |
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:
| SoCudaConvolution::SoCudaConvolution | ( | ) |
Constructor.
| 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.
This convolution is equivalent to a row convolution.
| 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. |
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 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().
| 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. |
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.
| 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. |
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.
| 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. |
Reimplemented from SoConvolution.