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 
44 namespace ojph {
45  struct line_buf;
46  namespace local {
47 
50 
52  // Reversible functions
54 
56  extern void (*rev_vert_wvlt_fwd_predict)
57  (const line_buf* src1, const line_buf* src2, line_buf *dst,
58  ui32 repeat);
59 
61  extern void (*rev_vert_wvlt_fwd_update)
62  (const line_buf* src1, const line_buf* src2, line_buf *dst,
63  ui32 repeat);
64 
66  extern void (*rev_horz_wvlt_fwd_tx)
67  (line_buf* src, line_buf *ldst, line_buf *hdst, ui32 width, bool even);
68 
70  extern void (*rev_vert_wvlt_bwd_predict)
71  (const line_buf* src1, const line_buf* src2, line_buf *dst,
72  ui32 repeat);
73 
75  extern void (*rev_vert_wvlt_bwd_update)
76  (const line_buf* src1, const line_buf* src2, line_buf *dst,
77  ui32 repeat);
78 
80  extern void (*rev_horz_wvlt_bwd_tx)
81  (line_buf* dst, line_buf *lsrc, line_buf *hsrc, ui32 width, bool even);
82 
84  // Irreversible functions
86 
88  extern void (*irrev_vert_wvlt_step)
89  (const line_buf* src1, const line_buf* src2, line_buf *dst,
90  int step_num, ui32 repeat);
91 
93  extern void (*irrev_vert_wvlt_K)
94  (const line_buf *src, line_buf *dst, bool L_analysis_or_H_synthesis,
95  ui32 repeat);
96 
98  extern void (*irrev_horz_wvlt_fwd_tx)
99  (line_buf* src, line_buf *ldst, line_buf *hdst, ui32 width, bool even);
100 
102  extern void (*irrev_horz_wvlt_bwd_tx)
103  (line_buf* src, line_buf *ldst, line_buf *hdst, ui32 width, bool even);
104 
105  }
106 }
107 
108 #endif // !OJPH_TRANSFORM_H
void(* irrev_horz_wvlt_fwd_tx)(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even)
void(* rev_horz_wvlt_bwd_tx)(line_buf *dst, line_buf *lsrc, line_buf *hsrc, ui32 width, bool even)
void init_wavelet_transform_functions()
void(* rev_vert_wvlt_fwd_update)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
void(* rev_horz_wvlt_fwd_tx)(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even)
void(* irrev_vert_wvlt_step)(const line_buf *src1, const line_buf *src2, line_buf *dst, int step_num, ui32 repeat)
void(* rev_vert_wvlt_bwd_update)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
void(* rev_vert_wvlt_bwd_predict)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
void(* rev_vert_wvlt_fwd_predict)(const line_buf *src1, const line_buf *src2, line_buf *dst, ui32 repeat)
void(* irrev_horz_wvlt_bwd_tx)(line_buf *src, line_buf *ldst, line_buf *hdst, ui32 width, bool even)
void(* irrev_vert_wvlt_K)(const line_buf *src, line_buf *dst, bool L_analysis_or_H_synthesis, ui32 repeat)
uint32_t ui32
Definition: ojph_defs.h:54