Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/include/ |
Upload File : |
/* * Header file for the T.85 "light" version of the portable * JBIG image compression library * * Copyright 1995-2014 -- Markus Kuhn -- http://www.cl.cam.ac.uk/~mgk25/ */ #ifndef JBG85_H #define JBG85_H #include <stddef.h> #include "jbig_ar.h" /* * JBIG-KIT version number */ #define JBG85_VERSION "2.1" #define JBG85_VERSION_MAJOR 2 #define JBG85_VERSION_MINOR 1 /* * JBIG-KIT licence agreement reference code: * If you use JBIG-KIT under a commercial licence, please replace * below the letters GPL with the reference code that you received * with your licence agreement. (This code is typically a letter "A" * followed by four decimal digits, e.g. "A1234".) */ #define JBG85_LICENCE "GPL" /* * Maximum number of ATMOVEs per stripe that decoder can handle */ #define JBG85_ATMOVES_MAX 1 #ifndef JBG_LRLTWO /* * Option and order flags */ #define JBG_LRLTWO 0x40 #define JBG_VLENGTH 0x20 #define JBG_TPBON 0x08 /* * Possible error code return values */ #define JBG_EOK (0 << 4) #define JBG_EOK_INTR (1 << 4) #define JBG_EAGAIN (2 << 4) #define JBG_ENOMEM (3 << 4) #define JBG_EABORT (4 << 4) #define JBG_EMARKER (5 << 4) #define JBG_EINVAL (6 << 4) #define JBG_EIMPL (7 << 4) #endif /* * Status of a JBIG encoder */ struct jbg85_enc_state { unsigned long x0, y0; /* size of the input image */ unsigned long l0; /* number of lines per stripe */ int options; /* encoding parameters */ int newlen; /* 0 = jbg85_enc_newlen() has not yet been called 1 = jbg85_enc_newlen() has updated y0, NEWLEN pending 2 = NEWLEN has already been output */ unsigned mx; /* maximum ATMOVE window size */ unsigned long y; /* next line number to be encoded */ unsigned long i; /* next per-stripe line number to be encoded */ int tx; /* x-offset of adaptive template pixel */ unsigned long c_all, c[128]; /* adaptive template algorithm variables */ int new_tx; /* -1 = no ATMOVE pending, otherwise new TX value */ int ltp_old; /* true if line y-1 was "typical" */ struct jbg_arenc_state s; /* arithmetic encoder status */ void (*data_out)(unsigned char *start, size_t len, void *file); /* data write callback */ void *file; /* parameter passed to data_out() */ unsigned char *comment; /* content of comment marker segment to be added at next opportunity (will be reset to NULL as soon as comment has been written) */ unsigned long comment_len; /* length of data pointed to by comment */ }; /* * Status of a JBIG decoder */ struct jbg85_dec_state { /* data from BIH */ unsigned long x0, y0; /* size of the full image */ unsigned long l0; /* number of lines per stripe */ int options; /* encoding parameters */ int mx; /* maximum ATMOVE window size */ /* image data */ int p[3]; /* curr. line starts at linebuf+bpl*p[0], prev. line starts * at linebuf+bpl*p[1], its predecessor at linebuf+bpl*p[2] */ unsigned char *linebuf; /* buffer region provided by caller */ size_t linebuf_len; size_t bpl; /* bytes per line */ /* status information */ int tx; /* x-offset of AT pixel */ struct jbg_ardec_state s; /* arithmetic decoder status */ unsigned long bie_len; /* number of bytes read so far */ unsigned char buffer[20]; /* used to store BIH or marker segments fragm. */ int buf_len; /* number of bytes in buffer */ unsigned long comment_skip; /* remaining bytes of a COMMENT segment */ unsigned long x; /* x position of next pixel */ unsigned long stripe; /* current stripe */ unsigned long y; /* line in image (first line is 0) */ unsigned long i; /* line in current stripe (first line of stripe is 0) */ int at_moves; /* number of AT moves in the current stripe */ unsigned long at_line[JBG85_ATMOVES_MAX]; /* lines at which an * * AT move will happen */ int at_tx[JBG85_ATMOVES_MAX]; /* ATMOVE x-offsets in current stripe */ unsigned long line_h1, line_h2, line_h3; /* variables of decode_pscd */ int pseudo; /* flag for TPBON/TPDON: next pixel is pseudo pixel */ int lntp; /* flag for TP: line is not typical */ int (*line_out)(const struct jbg85_dec_state *s, unsigned char *start, size_t len, unsigned long y, void *file); /* data write callback */ void *file; /* parameter passed to data_out() */ int intr; /* flag that line_out requested interrupt */ int end_of_bie; /* flag that the end of the BIE has been signalled */ }; /* function prototypes */ void jbg85_enc_init(struct jbg85_enc_state *s, unsigned long x0, unsigned long y0, void (*data_out)(unsigned char *start, size_t len, void *file), void *file); void jbg85_enc_options(struct jbg85_enc_state *s, int options, unsigned long l0, int mx); void jbg85_enc_lineout(struct jbg85_enc_state *s, unsigned char *line, unsigned char *prevline, unsigned char *prevprevline); void jbg85_enc_newlen(struct jbg85_enc_state *s, unsigned long y0); void jbg85_enc_abort(struct jbg85_enc_state *s); void jbg85_dec_init(struct jbg85_dec_state *s, unsigned char *buf, size_t buflen, int (*line_out)(const struct jbg85_dec_state *s, unsigned char *start, size_t len, unsigned long y, void *file), void *file); int jbg85_dec_in(struct jbg85_dec_state *s, unsigned char *data, size_t len, size_t *cnt); int jbg85_dec_end(struct jbg85_dec_state *s); const char *jbg85_strerror(int errnum); /* some macros for examining decoder state */ #define jbg85_dec_finished(s) ((s)->bie_len == 20 && (s)->y >= (s)->y0) /* enquire about image size */ #define jbg85_dec_getwidth(s) ((s)->x0) #define jbg85_dec_getheight(s) ((s)->y0) /* enquire about validity of image-size results */ #define jbg85_dec_validwidth(s) ((s)->bie_len == 20) #define jbg85_dec_finalheight(s) ((s)->bie_len == 20 && \ ((((s)->options & JBG_VLENGHT) == 0) || \ ((s)->y >= (s)->y0))) #endif /* JBG85_H */