OpenJPH
Open-source implementation of JPEG2000 Part-15
ojph_transform.h
Go to the documentation of this file.
1//***************************************************************************/
2// This software is released under the 2-Clause BSD license, included
3// below.
4//
5// Copyright (c) 2019, Aous Naman
6// Copyright (c) 2019, Kakadu Software Pty Ltd, Australia
7// Copyright (c) 2019, The University of New South Wales, Australia
8//
9// Redistribution and use in source and binary forms, with or without
10// modification, are permitted provided that the following conditions are
11// met:
12//
13// 1. Redistributions of source code must retain the above copyright
14// notice, this list of conditions and the following disclaimer.
15//
16// 2. Redistributions in binary form must reproduce the above copyright
17// notice, this list of conditions and the following disclaimer in the
18// documentation and/or other materials provided with the distribution.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
26// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31//***************************************************************************/
32// This file is part of the OpenJPH software implementation.
33// File: ojph_transform.h
34// Author: Aous Naman
35// Date: 28 August 2019
36//***************************************************************************/
37
38
39#ifndef OJPH_TRANSFORM_H
40#define OJPH_TRANSFORM_H
41
42#include "ojph_defs.h"
43
44namespace ojph {
45
46 // defined elsewhere
47 class line_buf;
48
49 namespace local {
50 union lifting_step;
51 struct param_atk;
52
55
57 // Reversible functions
59
61 extern void (*rev_vert_step)
62 (const lifting_step* s, const line_buf* sig, const line_buf* other,
63 const line_buf* aug, ui32 repeat, bool synthesis);
64
66 extern void (*rev_horz_ana)
67 (const param_atk* atk, const line_buf* ldst, const line_buf* hdst,
68 const line_buf* src, ui32 width, bool even);
69
71 extern void (*rev_horz_syn)
72 (const param_atk* atk, const line_buf* dst, const line_buf* lsrc,
73 const line_buf* hsrc, ui32 width, bool even);
74
76 // Irreversible functions
78
80 extern void (*irv_vert_step)
81 (const lifting_step* s, const line_buf* sig, const line_buf* other,
82 const line_buf* aug, ui32 repeat, bool synthesis);
83
85 extern void (*irv_vert_times_K)
86 (float K, const line_buf* aug, ui32 repeat);
87
89 extern void (*irv_horz_ana)
90 (const param_atk* atk, const line_buf* ldst, const line_buf* hdst,
91 const line_buf* src, ui32 width, bool even);
92
94 extern void (*irv_horz_syn)
95 (const param_atk* atk, const line_buf* dst, const line_buf* lsrc,
96 const line_buf* hsrc, ui32 width, bool even);
97
98 }
99}
100
101#endif // !OJPH_TRANSFORM_H
void(* rev_horz_ana)(const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
void(* irv_vert_times_K)(float K, const line_buf *aug, ui32 repeat)
void(* irv_vert_step)(const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
void init_wavelet_transform_functions()
void(* rev_horz_syn)(const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
void(* irv_horz_ana)(const param_atk *atk, const line_buf *ldst, const line_buf *hdst, const line_buf *src, ui32 width, bool even)
void(* rev_vert_step)(const lifting_step *s, const line_buf *sig, const line_buf *other, const line_buf *aug, ui32 repeat, bool synthesis)
void(* irv_horz_syn)(const param_atk *atk, const line_buf *dst, const line_buf *lsrc, const line_buf *hsrc, ui32 width, bool even)
uint32_t ui32
Definition: ojph_defs.h:54