X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libopenjpeg%2Fdwt.h;h=c2ed90fff7ecec52c7f7184f32e878b7dd0da6d5;hb=6561d70664fff4c714a4656f590121bdf056e51b;hp=4cda5eda88240e56cc037f81a031987a4b609ce1;hpb=f61cda9b7d83e0202cbaa15bac45d358e9b3652e;p=openjpeg.git diff --git a/libopenjpeg/dwt.h b/libopenjpeg/dwt.h index 4cda5eda..c2ed90ff 100644 --- a/libopenjpeg/dwt.h +++ b/libopenjpeg/dwt.h @@ -1,9 +1,10 @@ /* + * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium + * Copyright (c) 2002-2007, Professor Benoit Macq * Copyright (c) 2001-2003, David Janssens * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe - * Copyright (c) 2005, HervĀŽ Drolon, FreeImage Team - * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium + * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe + * Copyright (c) 2005, Herve Drolon, FreeImage Team * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,47 +43,6 @@ DWT.C are used by some function in TCD.C. /** @defgroup DWT DWT - Implementation of a discrete wavelet transform */ /*@{*/ -/** @name Local static functions */ -/*@{*/ -/* ----------------------------------------------------------------------- */ -/** -Forward lazy transform (horizontal) -*/ -static void dwt_deinterleave_h(int *a, int *b, int dn, int sn, int cas); -/** -Forward lazy transform (vertical) -*/ -static void dwt_deinterleave_v(int *a, int *b, int dn, int sn, int x, int cas); -/** -Inverse lazy transform (horizontal) -*/ -static void dwt_interleave_h(int *a, int *b, int dn, int sn, int cas); -/** -Inverse lazy transform (vertical) -*/ -static void dwt_interleave_v(int *a, int *b, int dn, int sn, int x, int cas); -/** -Forward 5-3 wavelet tranform in 1-D -*/ -static void dwt_encode_1(int *a, int dn, int sn, int cas); -/** -Inverse 5-3 wavelet tranform in 1-D -*/ -static void dwt_decode_1(int *a, int dn, int sn, int cas); -/** -Forward 9-7 wavelet transform in 1-D -*/ -static void dwt_encode_1_real(int *a, int dn, int sn, int cas); -/** -Inverse 9-7 wavelet transform in 1-D -*/ -static void dwt_decode_1_real(int *a, int dn, int sn, int cas); -/** -FIXME : comment ??? -*/ -static void dwt_encode_stepsize(int stepsize, int numbps, opj_stepsize_t *bandno_stepsize); -/* ----------------------------------------------------------------------- */ -/*@}*/ /** @name Exported functions */ /*@{*/ @@ -97,15 +57,23 @@ void dwt_encode(opj_tcd_tilecomp_t * tilec); Inverse 5-3 wavelet tranform in 2-D. Apply a reversible inverse DWT transform to a component of an image. @param tilec Tile component information (current tile) -@param stop FIXME Number of decoded resolution levels ? +@param numres Number of resolution levels to decode */ -void dwt_decode(opj_tcd_tilecomp_t * tilec, int stop); +#ifdef OPJ_V1 +void dwt_decode(opj_tcd_tilecomp_t* tilec, int numres); +#endif +opj_bool dwt_decode(opj_tcd_tilecomp_t* tilec, OPJ_UINT32 numres); + +opj_bool dwt_decode_v2(opj_tcd_tilecomp_v2_t* tilec, OPJ_UINT32 numres); + /** Get the gain of a subband for the reversible 5-3 DWT. @param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH) @return Returns 0 if orient = 0, returns 1 if orient = 1 or 2, returns 2 otherwise */ int dwt_getgain(int orient); + +OPJ_UINT32 dwt_getgain_v2(OPJ_UINT32 orient) ; /** Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT. @param level Level of the wavelet function @@ -120,18 +88,24 @@ Apply an irreversible DWT transform to a component of an image. */ void dwt_encode_real(opj_tcd_tilecomp_t * tilec); /** +KEEP TRUNK VERSION + return type of v2 because rev557 Inverse 9-7 wavelet transform in 2-D. Apply an irreversible inverse DWT transform to a component of an image. @param tilec Tile component information (current tile) -@param stop FIXME Number of decoded resolution levels ? +@param numres Number of resolution levels to decode */ -void dwt_decode_real(opj_tcd_tilecomp_t * tilec, int stop); +// V1 void dwt_decode_real(opj_tcd_tilecomp_t* tilec, int numres); +opj_bool dwt_decode_real(opj_tcd_tilecomp_t* tilec, int numres); + +opj_bool dwt_decode_real_v2(opj_tcd_tilecomp_v2_t* restrict tilec, OPJ_UINT32 numres); + /** Get the gain of a subband for the irreversible 9-7 DWT. @param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH) @return Returns the gain of the 9-7 wavelet transform */ int dwt_getgain_real(int orient); +OPJ_UINT32 dwt_getgain_real_v2(OPJ_UINT32 orient); /** Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT @param level Level of the wavelet function @@ -140,9 +114,9 @@ Get the norm of a wavelet function of a subband at a specified level for the irr */ double dwt_getnorm_real(int level, int orient); /** -FIXME : comment ??? -@param tccp -@param prec +Explicit calculation of the Quantization Stepsizes +@param tccp Tile-component coding parameters +@param prec Precint analyzed */ void dwt_calc_explicit_stepsizes(opj_tccp_t * tccp, int prec); /* ----------------------------------------------------------------------- */