⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j2k.h

📁 This document is intended to serve as an introduction to Wavelet processing through a set of Matlab
💻 H
字号:
/* * 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. * * 24/04/2003: memory leak fixes by Steve Williams */#define VERSION "0.0.8"/*    #ifdef WIN32    #ifdef LIBJ2K_EXPORTS    #define LIBJ2K_API __declspec(dllexport)    #else    #define LIBJ2K_API __declspec(dllimport)    #endif    #else*/#define LIBJ2K_API/* #endif */#ifndef __J2K_H#define __J2K_H#define J2K_MAXRLVLS 33#define J2K_MAXBANDS (3*J2K_MAXRLVLS+1)#define J2K_CP_CSTY_PRT 0x01#define J2K_CP_CSTY_SOP 0x02#define J2K_CP_CSTY_EPH 0x04#define J2K_CCP_CSTY_PRT 0x01#define J2K_CCP_CBLKSTY_LAZY 0x01#define J2K_CCP_CBLKSTY_RESET 0x02#define J2K_CCP_CBLKSTY_TERMALL 0x04#define J2K_CCP_CBLKSTY_VSC 0x08#define J2K_CCP_CBLKSTY_PTERM 0x10#define J2K_CCP_CBLKSTY_SEGSYM 0x20#define J2K_CCP_QNTSTY_NOQNT 0#define J2K_CCP_QNTSTY_SIQNT 1#define J2K_CCP_QNTSTY_SEQNT 2typedef struct {    int dx, dy; /*  XRsiz, YRsiz */    int prec; /*  precision */    int sgnd; /*  signed */    int *data; /*  image-component data */} j2k_comp_t;typedef struct {    int x0, y0; /*  XOsiz, YOsiz */    int x1, y1; /*  Xsiz, Ysiz  */    int numcomps; /*  number of components */    j2k_comp_t *comps; /*  image-components */} j2k_image_t;typedef struct {    int expn; /*  exponent */    int mant; /*  mantissa */} j2k_stepsize_t;typedef struct {    int csty; /*  coding style */    int numresolutions; /*  number of resolutions */    int cblkw; /*  width of code-blocks */    int cblkh; /*  height of code-blocks */    int cblksty; /*  code-block coding style */    int qmfbid; /*  discrete wavelet transform identifier */    int qntsty; /*  quantisation style */    j2k_stepsize_t stepsizes[J2K_MAXBANDS]; /*  stepsizes used for quantisation */    int numgbits; /*  number of guard bits */    int roishift; /*  Region Of Interest shift */    int prcw[J2K_MAXRLVLS]; /*  Precinct width */    int prch[J2K_MAXRLVLS]; /*  Precinct height */} j2k_tccp_t;typedef struct {    int resno0, compno0;     int layno1, resno1, compno1;    int prg;} j2k_poc_t;typedef struct {    int csty; /*  coding style   */    int prg; /*  progression order */    int numlayers; /*  number of layers */    int mct; /*  multi-component transform identifier */    int rates[32]; /*  rates of layers */    int numpocs; /*  number of progression order changes  */    j2k_poc_t pocs[32]; /*  progression order changes */    j2k_tccp_t *tccps; /*  tile-component coding parameters */} j2k_tcp_t;typedef struct {    int tx0, ty0; /*  XTOsiz, YTOsiz */    int tdx, tdy; /*  XTsiz, YTsiz */    int tw, th;    j2k_tcp_t *tcps; /*  tile coding parameters */} j2k_cp_t;/*  * Encode an image into a JPEG-2000 codestream * i: image to encode * cp: coding parameters * dest: destination buffer * len: length of destination buffer */LIBJ2K_API int j2k_encode(j2k_image_t *i, j2k_cp_t *cp, unsigned char *dest, int len);/* * Decode an image from a JPEG-2000 codestream * src: source buffer * len: length of source buffer * i: decode image * cp: coding parameters that were used to encode the image */LIBJ2K_API int j2k_decode(unsigned char *src, int len, j2k_image_t **i, j2k_cp_t **cp);LIBJ2K_API int j2k_info(unsigned char *src, int len, j2k_image_t **img, j2k_cp_t **cp);/*  After processing a stream decoded with j2k_decode, call j2k_release to clean up. */LIBJ2K_API void j2k_release(j2k_image_t *img, j2k_cp_t *cp);LIBJ2K_API void j2k_release_encode(j2k_image_t *img, j2k_cp_t *cp);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -