SoOpenCLConvolution Class Reference
[OpenCL algorithms]

VSG extension Convolution functions for OpenCL buffers More...

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

Inheritance diagram for SoOpenCLConvolution:
SoConvolution

List of all members.

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)

Detailed Description

VSG extension Convolution functions for OpenCL 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

SoOpenCLConvolution::SoOpenCLConvolution (  ) 

Constructor.


Member Function Documentation

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.

  • 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 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 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 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.

  • 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 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.

  • 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 by FEI reference manual, generated on 19 Aug 2019
Copyright © FEI S.A.S. All rights reserved.
http://www.openinventor.com/