A Survey of Gaussian Convolution Algorithms
Macros | Functions
gaussian_conv_vyv.c File Reference

Vliet-Young-Verbeek approximate Gaussian convolution. More...

Detailed Description

Vliet-Young-Verbeek approximate Gaussian convolution.

Author
Pascal Getreuer getre.nosp@m.uer@.nosp@m.cmla..nosp@m.ens-.nosp@m.cacha.nosp@m.n.fr

Copyright (c) 2012-2013, Pascal Getreuer All rights reserved.

This program is free software: you can redistribute it and/or modify it under, at your option, the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version, or the terms of the simplified BSD license.

You should have received a copy of these licenses along this program. If not, see http://www.gnu.org/licenses/ and http://www.opensource.org/licenses/bsd-license.html.

Definition in file gaussian_conv_vyv.c.

#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include "filter_util.h"
#include "complex_arith.h"
#include "invert_matrix.h"
#include "gaussian_short_conv.h"
#include "gaussian_conv_vyv.h"

Go to the source code of this file.

Macros

#define YVY_NUM_NEWTON_ITERATIONS   6
 Number of newton iterations used to determine q.
 

Functions

static double variance (const complex *poles0, int K, double q)
 Compute the variance of the impulse response. More...
 
static double dq_variance (const complex *poles0, int K, double q)
 Derivative of variance with respect to q. More...
 
static double compute_q (const complex *poles0, int K, double sigma, double q0)
 Compute q for a desired sigma using Newton's method. More...
 
static void expand_pole_product (double *c, const complex *poles, int K)
 Expand pole product. More...
 
void vyv_precomp (vyv_coeffs *c, double sigma, int K, num tol)
 Precomputations for Vliet-Young-Verbeek Gaussian approximation. More...
 
void vyv_gaussian_conv (vyv_coeffs c, num *dest, const num *src, long N, long stride)
 Gaussian convolution Vliet-Young-Verbeek approximation. More...
 
void vyv_gaussian_conv_image (vyv_coeffs c, num *dest, const num *src, int width, int height, int num_channels)
 2D Gaussian convolution Vliet-Young-Verbeek approximation More...