int QccIMGImageComponentFilterSeparable(const
QccIMGImageComponent *input_image, QccIMGImageComponent *output_image,
const QccFilter *horizontal_filter, const QccFilter *vertical_filter,
int boundary_extension);
int QccIMGImageFilterSeparable(const QccIMGImage
*input_image, QccIMGImage *output_image, const QccFilter *horizontal_filter,
const QccFilter *vertical_filter, int boundary_extension);
int QccIMGImageComponentFilter2D(const
QccIMGImageComponent *input_image, QccIMGImageComponent *output_image,
const QccIMGImageComponent *filter);
int QccIMGImageFilter2D(const QccIMGImage
*input_image, QccIMGImage *output_image, const QccIMGImageComponent *filter);
QccIMGImageFilterSeparable() filters input_image, producing filtered output_image. In effect, QccIMGImageFilterSeparable() simply calls QccIMGImageComponentFilterSeparable() for each of the Y, U, and V components of the images.
QccIMGImageComponentFilter2D() implements non-separable filtering of input_image using the 2D filter kernel given by filter. filter must have an odd number of rows and an odd number of columns; the center of the filter kernel is assumed to be at (floor(filter->num_rows / 2), floor(filter->num_cols / 2)). output_image is then the result of a 2D convolution of filter and input_image. output_image must be allocated to the same size as input_image prior to calling QccIMGImageComponentFilter2D().
QccIMGImageFilter2D() filters input_image, producing filtered output_image. In effect, QccIMGImageFilter2D() simply calls QccIMGImageComponentFilter2D() for each of the Y, U, and V components of the images.