]> Creatis software - gdcm.git/blobdiff - src/gdcmopenjpeg/libopenjpeg/dwt.h
ENH: Huge update to openjpeg 1.0 (actually more CVS)...
[gdcm.git] / src / gdcmopenjpeg / libopenjpeg / dwt.h
index a9c30ca7d594ba0c8576de4202cdbf45f82b721b..96ada27eaacaa389572ecc5bbf46c1add5cadb59 100644 (file)
-/*
- * Copyright (c) 2001-2002, David Janssens
- * Copyright (c) 2002-2003, Yannick Verschueren
- * Copyright (c) 2002-2003,  Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
- * 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.
- */
-
-#include "tcd.h"
-
-#ifndef __DWT_H
-#define __DWT_H
-
-/*
- * Apply a reversible DWT transform to a component of an image  
- * tilec : tile component information (present tile)
- */
-/* void dwt_encode(int* a, int w, int h, int l); */
-void dwt_encode(tcd_tilecomp_t * tilec);
-/*
- * Apply a reversible inverse DWT transform to a component of an image  
- * tilec : tile component information (present tile)
- */
-void dwt_decode(tcd_tilecomp_t * tilec, int stop);
-
-/*
- * Get the gain of a subband for the reversible DWT
- * orient: number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
- */
-int dwt_getgain(int orient);
-
-/*
- * Get the norm of a wavelet function of a subband at a specified level for the reversible DWT
- * level: level of the wavelet function
- * orient: band of the wavelet function
- */
-double dwt_getnorm(int level, int orient);
-
-/*
- * Apply an irreversible DWT transform to a component of an image  
- */
-void dwt_encode_real(tcd_tilecomp_t * tilec);
-
-/*
- * Apply an irreversible inverse DWT transform to a component of an image  
- */
-void dwt_decode_real(tcd_tilecomp_t * tilec, int stop);
-/*
- * Get the gain of a subband for the irreversible DWT
- * orient: number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
- */
-int dwt_getgain_real(int orient);
-
-/*
- * Get the norm of a wavelet function of a subband at a specified level for the irreversible DWT
- * level: level of the wavelet function
- * orient: band of the wavelet function
- */
-double dwt_getnorm_real(int level, int orient);
-
-#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 __DWT_H\r
+#define __DWT_H\r
+/**\r
+@file dwt.h\r
+@brief Implementation of a discrete wavelet transform (DWT)\r
+\r
+The functions in DWT.C have for goal to realize forward and inverse discret wavelet\r
+transform with filter 5-3 (reversible) and filter 9-7 (irreversible). The functions in\r
+DWT.C are used by some function in TCD.C.\r
+*/\r
+\r
+/** @defgroup DWT DWT - Implementation of a discrete wavelet transform */\r
+/*@{*/\r
+\r
+\r
+/** @name Exported functions */\r
+/*@{*/\r
+/* ----------------------------------------------------------------------- */\r
+/**\r
+Forward 5-3 wavelet tranform in 2-D. \r
+Apply a reversible DWT transform to a component of an image.\r
+@param tilec Tile component information (current tile)\r
+*/\r
+void dwt_encode(opj_tcd_tilecomp_t * tilec);\r
+/**\r
+Inverse 5-3 wavelet tranform in 2-D.\r
+Apply a reversible inverse DWT transform to a component of an image.\r
+@param tilec Tile component information (current tile)\r
+@param stop FIXME Number of decoded resolution levels ?\r
+*/\r
+void dwt_decode(opj_tcd_tilecomp_t * tilec, int stop);\r
+/**\r
+Get the gain of a subband for the reversible 5-3 DWT.\r
+@param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)\r
+@return Returns 0 if orient = 0, returns 1 if orient = 1 or 2, returns 2 otherwise\r
+*/\r
+int dwt_getgain(int orient);\r
+/**\r
+Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT.\r
+@param level Level of the wavelet function\r
+@param orient Band of the wavelet function\r
+@return Returns the norm of the wavelet function\r
+*/\r
+double dwt_getnorm(int level, int orient);\r
+/**\r
+Forward 9-7 wavelet transform in 2-D. \r
+Apply an irreversible DWT transform to a component of an image.\r
+@param tilec Tile component information (current tile)\r
+*/\r
+void dwt_encode_real(opj_tcd_tilecomp_t * tilec);\r
+/**\r
+Inverse 9-7 wavelet transform in 2-D. \r
+Apply an irreversible inverse DWT transform to a component of an image.\r
+@param tilec Tile component information (current tile)\r
+@param stop FIXME Number of decoded resolution levels ?\r
+*/\r
+void dwt_decode_real(opj_tcd_tilecomp_t * tilec, int stop);\r
+/**\r
+Get the gain of a subband for the irreversible 9-7 DWT.\r
+@param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)\r
+@return Returns the gain of the 9-7 wavelet transform\r
+*/\r
+int dwt_getgain_real(int orient);\r
+/**\r
+Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT\r
+@param level Level of the wavelet function\r
+@param orient Band of the wavelet function\r
+@return Returns the norm of the 9-7 wavelet\r
+*/\r
+double dwt_getnorm_real(int level, int orient);\r
+/**\r
+FIXME : comment ???\r
+@param tccp\r
+@param prec\r
+*/\r
+void dwt_calc_explicit_stepsizes(opj_tccp_t * tccp, int prec);\r
+/* ----------------------------------------------------------------------- */\r
+/*@}*/\r
+\r
+/*@}*/\r
+\r
+#endif /* __DWT_H */\r