OpenJPEG  1.5.1
tgt.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
3  * Copyright (c) 2002-2007, Professor Benoit Macq
4  * Copyright (c) 2001-2003, David Janssens
5  * Copyright (c) 2002-2003, Yannick Verschueren
6  * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
7  * Copyright (c) 2005, Herve Drolon, FreeImage Team
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in the
17  * documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef __TGT_H
33 #define __TGT_H
34 
44 
48 typedef struct opj_tgt_node {
50  int value;
51  int low;
52  int known;
54 
58 typedef struct opj_tgt_tree {
59  int numleafsh;
60  int numleafsv;
61  int numnodes;
64 
67 /* ----------------------------------------------------------------------- */
74 opj_tgt_tree_t *tgt_create(int numleafsh, int numleafsv);
79 void tgt_destroy(opj_tgt_tree_t *tree);
84 void tgt_reset(opj_tgt_tree_t *tree);
91 void tgt_setvalue(opj_tgt_tree_t *tree, int leafno, int value);
99 void tgt_encode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold);
108 int tgt_decode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold);
109 /* ----------------------------------------------------------------------- */
113 
114 #endif /* __TGT_H */
opj_free
#define opj_free(m)
Deallocates or frees a memory block.
Definition: opj_malloc.h:152
tgt_encode
void tgt_encode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold)
Encode the value of a leaf of the tag-tree up to a given threshold.
Definition: tgt.c:138
opj_tgt_node_t
struct opj_tgt_node opj_tgt_node_t
Tag node.
opj_malloc
#define opj_malloc(size)
Allocate an uninitialized memory block.
Definition: opj_malloc.h:51
tgt_destroy
void tgt_destroy(opj_tgt_tree_t *tree)
Destroy a tag-tree, liberating memory.
Definition: tgt.c:111
tgt_reset
void tgt_reset(opj_tgt_tree_t *tree)
Reset a tag-tree (set all leaves to 0)
Definition: tgt.c:116
opj_tgt_node
Tag node.
Definition: tgt.h:48
tgt_destroy
void tgt_destroy(opj_tgt_tree_t *tree)
Destroy a tag-tree, liberating memory.
Definition: tgt.c:111
opj_calloc
#define opj_calloc(num, size)
Allocate a memory block with elements initialized to 0.
Definition: opj_malloc.h:63
tgt_reset
void tgt_reset(opj_tgt_tree_t *tree)
Reset a tag-tree (set all leaves to 0)
Definition: tgt.c:116
tgt_create
opj_tgt_tree_t * tgt_create(int numleafsh, int numleafsv)
Create a tag-tree.
Definition: tgt.c:40
opj_includes.h
opj_bio
Individual bit input-output stream (BIO)
Definition: bio.h:47
bio_write
void bio_write(opj_bio_t *bio, int v, int n)
Write bits.
Definition: bio.c:148
tgt_create
opj_tgt_tree_t * tgt_create(int numleafsh, int numleafsv)
Create a tag-tree.
Definition: tgt.c:40
tgt_setvalue
void tgt_setvalue(opj_tgt_tree_t *tree, int leafno, int value)
Set the value of a leaf of a tag-tree.
Definition: tgt.c:129
tgt_setvalue
void tgt_setvalue(opj_tgt_tree_t *tree, int leafno, int value)
Set the value of a leaf of a tag-tree.
Definition: tgt.c:129
opj_tgt_tree::nodes
opj_tgt_node_t * nodes
Definition: tgt.h:62
opj_tgt_node::known
int known
Definition: tgt.h:52
opj_tgt_node::low
int low
Definition: tgt.h:51
opj_tgt_tree::numleafsv
int numleafsv
Definition: tgt.h:60
bio_read
int bio_read(opj_bio_t *bio, int n)
Read bits.
Definition: bio.c:155
opj_tgt_node::parent
struct opj_tgt_node * parent
Definition: tgt.h:49
tgt_decode
int tgt_decode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold)
Decode the value of a leaf of the tag-tree up to a given threshold.
Definition: tgt.c:178
opj_tgt_tree
Tag tree.
Definition: tgt.h:58
tgt_decode
int tgt_decode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold)
Decode the value of a leaf of the tag-tree up to a given threshold.
Definition: tgt.c:178
opj_tgt_tree_t
struct opj_tgt_tree opj_tgt_tree_t
Tag tree.
tgt_encode
void tgt_encode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold)
Encode the value of a leaf of the tag-tree up to a given threshold.
Definition: tgt.c:138
opj_tgt_tree::numleafsh
int numleafsh
Definition: tgt.h:59
opj_tgt_tree::numnodes
int numnodes
Definition: tgt.h:61
opj_tgt_node::value
int value
Definition: tgt.h:50