X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fbin%2Fjp2%2Fconvert.h;h=ab1d61a8d467421c04c8e79259acc285f9c9e506;hb=17a0a8a195a9aad76a6bdb174edc8aa5fb8b7831;hp=72ed981d4b969b3f66b10cbd4cdb96cb44fc6a14;hpb=d518970039a19a2a9b6d2bdd592cc88a43897bbb;p=openjpeg.git diff --git a/src/bin/jp2/convert.h b/src/bin/jp2/convert.h index 72ed981d..ab1d61a8 100644 --- a/src/bin/jp2/convert.h +++ b/src/bin/jp2/convert.h @@ -1,9 +1,15 @@ /* - * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium - * Copyright (c) 2002-2007, Professor Benoit Macq + * The copyright in this software is being made available under the 2-clauses + * BSD License, included below. This software may be subject to other third + * party and contributor rights, including patent rights, and no such rights + * are granted under this license. + * + * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium + * Copyright (c) 2002-2014, Professor Benoit Macq * Copyright (c) 2001-2003, David Janssens * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe + * Copyright (c) 2003-2007, Francois-Olivier Devaux + * Copyright (c) 2003-2014, Antonin Descampe * Copyright (c) 2005, Herve Drolon, FreeImage Team * All rights reserved. * @@ -31,6 +37,16 @@ #ifndef __J2K_CONVERT_H #define __J2K_CONVERT_H +/**@name RAW component encoding parameters */ +/*@{*/ +typedef struct raw_comp_cparameters { + /** subsampling in X direction */ + int dx; + /** subsampling in Y direction */ + int dy; + /*@}*/ +} raw_comp_cparameters_t; + /**@name RAW image encoding parameters */ /*@{*/ typedef struct raw_cparameters { @@ -38,15 +54,34 @@ typedef struct raw_cparameters { int rawWidth; /** height of the raw image */ int rawHeight; - /** components of the raw image */ + /** number of components of the raw image */ int rawComp; - /** bit depth of the raw image */ - int rawBitDepth; - /** signed/unsigned raw image */ - opj_bool rawSigned; + /** bit depth of the raw image */ + int rawBitDepth; + /** signed/unsigned raw image */ + OPJ_BOOL rawSigned; + /** raw components parameters */ + raw_comp_cparameters_t *rawComps; /*@}*/ } raw_cparameters_t; +/* Component precision clipping */ +void clip_component(opj_image_comp_t* component, OPJ_UINT32 precision); +/* Component precision scaling */ +void scale_component(opj_image_comp_t* component, OPJ_UINT32 precision); + +/* planar / interleaved conversions */ +typedef void (* convert_32s_CXPX)(const OPJ_INT32* pSrc, OPJ_INT32* const* pDst, OPJ_SIZE_T length); +extern const convert_32s_CXPX convert_32s_CXPX_LUT[5]; +typedef void (* convert_32s_PXCX)(OPJ_INT32 const* const* pSrc, OPJ_INT32* pDst, OPJ_SIZE_T length, OPJ_INT32 adjust); +extern const convert_32s_PXCX convert_32s_PXCX_LUT[5]; +/* bit depth conversions */ +typedef void (* convert_XXx32s_C1R)(const OPJ_BYTE* pSrc, OPJ_INT32* pDst, OPJ_SIZE_T length); +extern const convert_XXx32s_C1R convert_XXu32s_C1R_LUT[9]; /* up to 8bpp */ +typedef void (* convert_32sXXx_C1R)(const OPJ_INT32* pSrc, OPJ_BYTE* pDst, OPJ_SIZE_T length); +extern const convert_32sXXx_C1R convert_32sXXu_C1R_LUT[9]; /* up to 8bpp */ + + /* TGA conversion */ opj_image_t* tgatoimage(const char *filename, opj_cparameters_t *parameters); int imagetotga(opj_image_t * image, const char *outfile); @@ -68,7 +103,7 @@ opj_image_t* pgxtoimage(const char *filename, opj_cparameters_t *parameters); int imagetopgx(opj_image_t *image, const char *outfile); opj_image_t* pnmtoimage(const char *filename, opj_cparameters_t *parameters); -int imagetopnm(opj_image_t *image, const char *outfile); +int imagetopnm(opj_image_t *image, const char *outfile, int force_split); /* RAW conversion */ int imagetoraw(opj_image_t * image, const char *outfile);