From 7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Sun, 14 Mar 2004 22:34:33 +0000 Subject: gst-indent Original commit message from CVS: gst-indent --- ext/tarkin/wavelet_xform.c | 582 +++++++++++++++++++++++---------------------- 1 file changed, 304 insertions(+), 278 deletions(-) (limited to 'ext/tarkin/wavelet_xform.c') diff --git a/ext/tarkin/wavelet_xform.c b/ext/tarkin/wavelet_xform.c index f052f003..fda5f59d 100644 --- a/ext/tarkin/wavelet_xform.c +++ b/ext/tarkin/wavelet_xform.c @@ -8,388 +8,414 @@ -static -void fwd_analyze_1 (const TYPE *x, TYPE *d, int stride, int n) +static void +fwd_analyze_1 (const TYPE * x, TYPE * d, int stride, int n) { - int i, k=n/2; + int i, k = n / 2; - for (i=0; i 1) - d[k-1] = x[(2*k-1)*stride] - (x[(2*k-2)*stride] + x[2*k*stride]) / 2; - } else { - for (i=1; i 2) - d[k-2] = x[(2*k-3)*stride] - (x[(2*k-4)*stride] - + x[(2*k-2)*stride]) / 2; - if (k > 1) - d[k-1] = x[(n-1)*stride] - x[(n-2)*stride]; - } + int i, k = n / 2; + + d[0] = x[stride] - (x[0] + x[2 * stride]) / 2; + + if (n & 1) { + for (i = 1; i < k - 1; i++) + d[i] = x[(2 * i + 1) * stride] + - ((uint32_t) 9 * (x[2 * i * stride] + x[(2 * i + 2) * stride]) + - (x[(2 * i - 2) * stride] + x[(2 * i + 4) * stride])) / 16; + if (k > 1) + d[k - 1] = + x[(2 * k - 1) * stride] - (x[(2 * k - 2) * stride] + + x[2 * k * stride]) / 2; + } else { + for (i = 1; i < k - 2; i++) + d[i] = x[(2 * i + 1) * stride] + - ((uint32_t) 9 * (x[2 * i * stride] + x[(2 * i + 2) * stride]) + - (x[(2 * i - 2) * stride] + x[(2 * i + 4) * stride])) / 16; + if (k > 2) + d[k - 2] = x[(2 * k - 3) * stride] - (x[(2 * k - 4) * stride] + + x[(2 * k - 2) * stride]) / 2; + if (k > 1) + d[k - 1] = x[(n - 1) * stride] - x[(n - 2) * stride]; + } } -static -void fwd_synthesize_4 (const TYPE *x, TYPE *s, const TYPE *d, int stride, int n) +static void +fwd_synthesize_4 (const TYPE * x, TYPE * s, const TYPE * d, int stride, int n) { - int i, k=n/2; - - s[0] = x[0] + d[1] / 2; - if (k > 1) - s[stride] = x[2*stride] + (d[0] + d[1]) / 4; - for (i=2; i 2) - s[(k-1)*stride] = x[(2*k-2)*stride] + (d[k-2] + d[k-1]) / 4; - if (n & 1) - s[k*stride] = x[2*k*stride] + d[k-1] / 2; + int i, k = n / 2; + + s[0] = x[0] + d[1] / 2; + if (k > 1) + s[stride] = x[2 * stride] + (d[0] + d[1]) / 4; + for (i = 2; i < k - 1; i++) + s[i * stride] = x[2 * i * stride] + + ((uint32_t) 9 * (d[i - 1] + d[i]) - (d[i - 2] + d[i + 1])) / 32; + if (k > 2) + s[(k - 1) * stride] = x[(2 * k - 2) * stride] + (d[k - 2] + d[k - 1]) / 4; + if (n & 1) + s[k * stride] = x[2 * k * stride] + d[k - 1] / 2; } -static -void inv_analyze_4 (TYPE *x, const TYPE *d, int stride, int n) +static void +inv_analyze_4 (TYPE * x, const TYPE * d, int stride, int n) { - int i, k=n/2; - - x[stride] = d[0] + (x[0] + x[2*stride]) / 2; - - if (n & 1) { - for (i=1; i 1) - x[(2*k-1)*stride] = d[k-1] + (x[(2*k-2)*stride] + x[2*k*stride]) / 2; - } else { - for (i=1; i 2) - x[(2*k-3)*stride] = d[k-2] + (x[(2*k-4)*stride] - + x[(2*k-2)*stride]) / 2; - if (k > 1) - x[(n-1)*stride] = d[k-1] + x[(n-2)*stride]; - } + int i, k = n / 2; + + x[stride] = d[0] + (x[0] + x[2 * stride]) / 2; + + if (n & 1) { + for (i = 1; i < k - 1; i++) + x[(2 * i + 1) * stride] = d[i] + + ((uint32_t) 9 * (x[2 * i * stride] + x[(2 * i + 2) * stride]) + - (x[(2 * i - 2) * stride] + x[(2 * i + 4) * stride])) / 16; + if (k > 1) + x[(2 * k - 1) * stride] = + d[k - 1] + (x[(2 * k - 2) * stride] + x[2 * k * stride]) / 2; + } else { + for (i = 1; i < k - 2; i++) + x[(2 * i + 1) * stride] = d[i] + + (9 * (x[2 * i * stride] + x[(2 * i + 2) * stride]) + - (x[(2 * i - 2) * stride] + x[(2 * i + 4) * stride])) / 16; + if (k > 2) + x[(2 * k - 3) * stride] = d[k - 2] + (x[(2 * k - 4) * stride] + + x[(2 * k - 2) * stride]) / 2; + if (k > 1) + x[(n - 1) * stride] = d[k - 1] + x[(n - 2) * stride]; + } } -static -void inv_synthesize_4 (TYPE *x, const TYPE *s, const TYPE *d, int stride, int n) +static void +inv_synthesize_4 (TYPE * x, const TYPE * s, const TYPE * d, int stride, int n) { - int i, k=n/2; - - x[0] = s[0] - d[1] / 2; - if (k > 1) - x[2*stride] = s[1] - (d[0] + d[1]) / 4; - for (i=2; i 2) - x[(2*k-2)*stride] = s[k-1] - (d[k-2] + d[k-1]) / 4; - if (n & 1) - x[2*k*stride] = s[k] - d[k-1] / 2; + int i, k = n / 2; + + x[0] = s[0] - d[1] / 2; + if (k > 1) + x[2 * stride] = s[1] - (d[0] + d[1]) / 4; + for (i = 2; i < k - 1; i++) + x[2 * i * stride] = s[i] - ((uint32_t) 9 * (d[i - 1] + d[i]) + - (d[i - 2] + d[i + 1])) / 32; + if (k > 2) + x[(2 * k - 2) * stride] = s[k - 1] - (d[k - 2] + d[k - 1]) / 4; + if (n & 1) + x[2 * k * stride] = s[k] - d[k - 1] / 2; } -static inline -void copyback_d (TYPE *x, const TYPE *d, int stride, int n) +static inline void +copyback_d (TYPE * x, const TYPE * d, int stride, int n) { - int i, j, k=n/2; + int i, j, k = n / 2; - for (i=n-k, j=0; iscales-1; level>0; level--) { - uint32_t w = buf->w[level]; - uint32_t h = buf->h[level]; - uint32_t f = buf->f[level]; - - if (w > 1) { - int row, frame; - for (frame=0; framedata + (frame * buf->height + row) * buf->width; - fwd_xform (buf->scratchbuf, data, 1, w, a_moments, s_moments); - } - } + int level; + + for (level = buf->scales - 1; level > 0; level--) { + uint32_t w = buf->w[level]; + uint32_t h = buf->h[level]; + uint32_t f = buf->f[level]; + + if (w > 1) { + int row, frame; + + for (frame = 0; frame < f; frame++) { + for (row = 0; row < h; row++) { + TYPE *data = buf->data + (frame * buf->height + row) * buf->width; + + fwd_xform (buf->scratchbuf, data, 1, w, a_moments, s_moments); + } } + } + + if (h > 1) { + int col, frame; + + for (frame = 0; frame < f; frame++) { + for (col = 0; col < w; col++) { + TYPE *data = buf->data + frame * buf->width * buf->height + col; - if (h > 1) { - int col, frame; - for (frame=0; framedata + frame * buf->width * buf->height + col; - fwd_xform (buf->scratchbuf, data, buf->width, h, - a_moments, s_moments); - } - } + fwd_xform (buf->scratchbuf, data, buf->width, h, + a_moments, s_moments); + } } + } + + if (f > 1) { + int i, j; + + for (j = 0; j < h; j++) { + for (i = 0; i < w; i++) { + TYPE *data = buf->data + j * buf->width + i; - if (f > 1) { - int i, j; - for (j=0; jdata + j*buf->width + i; - fwd_xform (buf->scratchbuf, data, buf->width * buf->height, f, - a_moments, s_moments); - } - } + fwd_xform (buf->scratchbuf, data, buf->width * buf->height, f, + a_moments, s_moments); + } } - } + } + } } -void wavelet_3d_buf_inv_xform (Wavelet3DBuf* buf, int a_moments, int s_moments) +void +wavelet_3d_buf_inv_xform (Wavelet3DBuf * buf, int a_moments, int s_moments) { - int level; - - for (level=1; levelscales; level++) { - uint32_t w = buf->w[level]; - uint32_t h = buf->h[level]; - uint32_t f = buf->f[level]; - - if (f > 1) { - int i, j; - for (j=0; jdata + j*buf->width + i; - inv_xform (buf->scratchbuf, data, buf->width * buf->height, f, - a_moments, s_moments); - } - } + int level; + + for (level = 1; level < buf->scales; level++) { + uint32_t w = buf->w[level]; + uint32_t h = buf->h[level]; + uint32_t f = buf->f[level]; + + if (f > 1) { + int i, j; + + for (j = 0; j < h; j++) { + for (i = 0; i < w; i++) { + TYPE *data = buf->data + j * buf->width + i; + + inv_xform (buf->scratchbuf, data, buf->width * buf->height, f, + a_moments, s_moments); + } } + } + + if (h > 1) { + int col, frame; - if (h > 1) { - int col, frame; - for (frame=0; framedata + frame * buf->width * buf->height + col; - inv_xform (buf->scratchbuf, data, buf->width, h, - a_moments, s_moments); - } - } + for (frame = 0; frame < f; frame++) { + for (col = 0; col < w; col++) { + TYPE *data = buf->data + frame * buf->width * buf->height + col; + + inv_xform (buf->scratchbuf, data, buf->width, h, + a_moments, s_moments); + } } + } + + if (w > 1) { + int row, frame; - if (w > 1) { - int row, frame; - for (frame=0; framedata + (frame * buf->height + row) * buf->width; - inv_xform (buf->scratchbuf, data, 1, w, a_moments, s_moments); - } - } + for (frame = 0; frame < f; frame++) { + for (row = 0; row < h; row++) { + TYPE *data = buf->data + (frame * buf->height + row) * buf->width; + + inv_xform (buf->scratchbuf, data, 1, w, a_moments, s_moments); + } } - } + } + } } - -- cgit v1.2.1