]> Creatis software - gdcm.git/blobdiff - src/gdcmopenjpeg/libopenjpeg/pi.h
ENH: Huge update to openjpeg 1.0 (actually more CVS)...
[gdcm.git] / src / gdcmopenjpeg / libopenjpeg / pi.h
index 0d1ab427ed1f839e5af5648edc92ccdf2ae66dda..814926c389c87801c00e144e3fb75a9eebe48979 100644 (file)
-/*
- * Copyright (c) 2001-2002, David Janssens
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __PI_H
-#define __PI_H
-
-#include "j2k.h"
-#include "tcd.h"
-
-typedef struct {
-  int pdx, pdy;
-  int pw, ph;
-} pi_resolution_t;
-
-typedef struct {
-  int dx, dy;
-  int numresolutions;
-  pi_resolution_t *resolutions;
-} pi_comp_t;
-
-typedef struct {
-  short int *include;      /* precise if the packet has been already used (usefull for progression order change) */
-  int step_l, step_r, step_c, step_p;   /* different steps (layer, resolution, component, precinct) to localize the packet in the include vector */
-  int compno, resno, precno, layno;   /* component, resolution, precinct and layer that indentify the packet */
-  int first;         /* 0 if the first packet */
-  j2k_poc_t poc;
-  int numcomps;
-  pi_comp_t *comps;
-  int tx0, ty0, tx1, ty1;
-  int x, y, dx, dy;
-} pi_iterator_t;      /* packet iterator */
-
-/*
- * Create a packet iterator
- * img: raw image for which the packets will be listed
- * cp: coding paremeters
- * tileno: number that identifies the tile for which to list the packets
- * return value: returns a packet iterator that points to the first packet of the tile
- */
-pi_iterator_t *pi_create(j2k_image_t * img, j2k_cp_t * cp, int tileno);
-
-/* 
- * Modify the packet iterator to point to the next packet
- * pi: packet iterator to modify
- * return value: returns 0 if pi pointed to the last packet or else returns 1 
- */
-int pi_next(pi_iterator_t * pi);
-
-#endif
+/*\r
+ * Copyright (c) 2001-2003, David Janssens\r
+ * Copyright (c) 2002-2003, Yannick Verschueren\r
+ * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe\r
+ * Copyright (c) 2005, HervĂ© Drolon, FreeImage Team\r
+ * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\r
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#ifndef __PI_H\r
+#define __PI_H\r
+/**\r
+@file pi.h\r
+@brief Implementation of a packet iterator (PI)\r
+\r
+The functions in PI.C have for goal to realize a packet iterator that permits to get the next\r
+packet following the progression order and change of it. The functions in PI.C are used\r
+by some function in T2.C.\r
+*/\r
+\r
+/** @defgroup PI PI - Implementation of a packet iterator */\r
+/*@{*/\r
+\r
+/**\r
+FIXME: documentation\r
+*/\r
+typedef struct opj_pi_resolution {\r
+  int pdx, pdy;\r
+  int pw, ph;\r
+} opj_pi_resolution_t;\r
+\r
+/**\r
+FIXME: documentation\r
+*/\r
+typedef struct opj_pi_comp {\r
+  int dx, dy;\r
+  /** number of resolution levels */\r
+  int numresolutions;\r
+  opj_pi_resolution_t *resolutions;\r
+} opj_pi_comp_t;\r
+\r
+/** \r
+Packet iterator \r
+*/\r
+typedef struct opj_pi_iterator {\r
+  /** precise if the packet has been already used (usefull for progression order change) */\r
+  short int *include;\r
+  /** layer step used to localize the packet in the include vector */\r
+  int step_l;\r
+  /** resolution step used to localize the packet in the include vector */\r
+  int step_r;  \r
+  /** component step used to localize the packet in the include vector */\r
+  int step_c;  \r
+  /** precinct step used to localize the packet in the include vector */\r
+  int step_p;  \r
+  /** component that identify the packet */\r
+  int compno;\r
+  /** resolution that identify the packet */\r
+  int resno;\r
+  /** precinct that identify the packet */\r
+  int precno;\r
+  /** layer that identify the packet */\r
+  int layno;   \r
+  /** 0 if the first packet */\r
+  int first;\r
+  /** progression order change information */\r
+  opj_poc_t poc;\r
+  /** */\r
+  int numcomps;\r
+  /** */\r
+  opj_pi_comp_t *comps;\r
+  int tx0, ty0, tx1, ty1;\r
+  int x, y, dx, dy;\r
+} opj_pi_iterator_t;\r
+\r
+/** @name Exported functions */\r
+/*@{*/\r
+/* ----------------------------------------------------------------------- */\r
+/**\r
+Create a packet iterator\r
+@param image Raw image for which the packets will be listed\r
+@param cp Coding parameters\r
+@param tileno Number that identifies the tile for which to list the packets\r
+@return Returns a packet iterator that points to the first packet of the tile\r
+@see pi_destroy\r
+*/\r
+opj_pi_iterator_t *pi_create(opj_image_t * image, opj_cp_t * cp, int tileno);\r
+\r
+/**\r
+Destroy a packet iterator\r
+@param pi Previously created packet iterator\r
+@param cp Coding parameters\r
+@param tileno Number that identifies the tile for which the packets were listed\r
+@see pi_create\r
+*/\r
+void pi_destroy(opj_pi_iterator_t *pi, opj_cp_t *cp, int tileno);\r
+\r
+/**\r
+Modify the packet iterator to point to the next packet\r
+@param pi Packet iterator to modify\r
+@return Returns false if pi pointed to the last packet or else returns true \r
+*/\r
+bool pi_next(opj_pi_iterator_t * pi);\r
+/* ----------------------------------------------------------------------- */\r
+/*@}*/\r
+\r
+/*@}*/\r
+\r
+#endif /* __PI_H */\r