Convolution functions for OpenCL buffers More...
#include <Inventor/OpenCL/algorithms/SoConvolution.h>
Public Member Functions | |
SoOpenCLConvolution () | |
virtual int | doSeparateConvolution1D (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
int | doSeparateConvolution1D (SoOpenCLBufferObject *sourceBufferObject, SoOpenCLBufferObject *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 (SoOpenCLBufferObject *sourceBufferObject, SoOpenCLBufferObject *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 (SoOpenCLBufferObject *sourceBufferObject, SoOpenCLBufferObject *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 (SoOpenCLBufferObject *sourceBufferObject, SoOpenCLBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
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:
SoOpenCLConvolution::SoOpenCLConvolution | ( | ) |
Constructor.
int SoOpenCLConvolution::doSeparateConvolution1D | ( | SoOpenCLBufferObject * | sourceBufferObject, | |
SoOpenCLBufferObject * | targetBufferObject, | |||
float * | kernelData, | |||
int | kernelSize, | |||
int | width, | |||
int | height | |||
) |
This function performs a 1D convolution on a two dimensional buffer using a 1D kernel.
OPENCL buffer version
virtual int SoOpenCLConvolution::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 SoOpenCLConvolution::doSeparateConvolution2D | ( | SoOpenCLBufferObject * | sourceBufferObject, | |
SoOpenCLBufferObject * | targetBufferObject, | |||
float * | kernelData, | |||
int | kernelSize, | |||
int | width, | |||
int | height | |||
) |
This function performs a 2D convolution on a two dimensional buffer using a 1D kernel.
OPENCL buffer version
virtual int SoOpenCLConvolution::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 SoOpenCLConvolution::doSeparateConvolutionColumn | ( | SoOpenCLBufferObject * | sourceBufferObject, | |
SoOpenCLBufferObject * | targetBufferObject, | |||
float * | kernelData, | |||
int | kernelSize, | |||
int | width, | |||
int | height | |||
) |
This function performs a column convolution on a two dimensional buffe using a 1D kernel.
OPENCL buffer version
virtual int SoOpenCLConvolution::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 SoOpenCLConvolution::doSeparateConvolutionRow | ( | SoOpenCLBufferObject * | sourceBufferObject, | |
SoOpenCLBufferObject * | targetBufferObject, | |||
float * | kernelData, | |||
int | kernelSize, | |||
int | width, | |||
int | height | |||
) |
This function performs a row convolution on a two dimensional buffer using a 1D kernel.
OPENCL buffer version
virtual int SoOpenCLConvolution::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.