亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? global.h

?? 實現圖像的jpeg無損壓縮
?? H
字號:
/* SPMG/JPEG-LS IMPLEMENTATION V.2.1
   =====================================
   These programs are Copyright (c) University of British Columbia. All rights reserved.
   They may be freely redistributed in their entirety provided that this copyright
   notice is not removed.  THEY MAY NOT BE SOLD FOR PROFIT OR INCORPORATED IN
   COMMERCIAL PROGRAMS WITHOUT THE WRITTEN PERMISSION OF THE COPYRIGHT HOLDER.
   Each program is provided as is, without any express or implied warranty,
   without even the warranty of fitness for a particular purpose.

   =========================================================
   THIS SOFTWARE IS BASED ON HP's implementation of jpeg-ls:
   =========================================================

   LOCO-I/JPEG-LS IMPLEMENTATION V.0.90
   -------------------------------------------------------------------------------
   (c) COPYRIGHT HEWLETT-PACKARD COMPANY, 1995-1999.
        HEWLETT-PACKARD COMPANY ("HP") DOES NOT WARRANT THE ACCURACY OR
   COMPLETENESS OF THE INFORMATION GIVEN HERE.  ANY USE MADE OF, OR
   RELIANCE ON, SUCH INFORMATION IS ENTIRELY AT USER'S OWN RISK.
        BY DOWNLOADING THE LOCO-I/JPEG-LS COMPRESSORS/DECOMPRESSORS
   ("THE SOFTWARE") YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS
   OF THIS LICENSING AGREEMENT.
        YOU MAY DOWNLOAD AND USE THE SOFTWARE FOR NON-COMMERCIAL PURPOSES
   FREE OF CHARGE OR FURTHER OBLIGATION.  YOU MAY NOT, DIRECTLY OR
   INDIRECTLY, DISTRIBUTE THE SOFTWARE FOR A FEE, INCORPORATE THIS
   SOFTWARE INTO ANY PRODUCT OFFERED FOR SALE, OR USE THE SOFTWARE
   TO PROVIDE A SERVICE FOR WHICH A FEE IS CHARGED.
        YOU MAY MAKE COPIES OF THE SOFTWARE AND DISTRIBUTE SUCH COPIES TO
   OTHER PERSONS PROVIDED THAT SUCH COPIES ARE ACCOMPANIED BY
   HEWLETT-PACKARD'S COPYRIGHT NOTICE AND THIS AGREEMENT AND THAT
   SUCH OTHER PERSONS AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT.
        THE SOFTWARE IS NOT OF PRODUCT QUALITY AND MAY HAVE ERRORS OR DEFECTS.
   THE JPEG-LS STANDARD IS STILL UNDER DEVELOPMENT. THE SOFTWARE IS NOT A
   FINAL OR FULL IMPLEMENTATION OF THE STANDARD.  HP GIVES NO EXPRESS OR
   IMPLIED WARRANTY OF ANY KIND AND ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED.
        HP SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL,
   OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE.
   -------------------------------------------------------------------------------
*/

/* global.h --- prototypes for functions and global variables 
 *
 * Initial code by Alex Jakulin,  Aug. 1995
 *
 * Modified and optimized: Gadiel Seroussi, October 1995
 *
 * Modified and added Restart marker and input tables by:
 * David Cheng-Hsiu Chu, and Ismail R. Ismail march 1999
 */

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#ifndef GLOBAL_H
#define GLOBAL_H

#ifndef CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 10e6
#endif

/*#define NDEBUG*/
#define POW2
#define FIXAPLHA
#define FIXRESET

/* TRUE and FALSE values */
#define TRUE 1
#define FALSE 0

#define CHIP_C5402


/* Version number */
#define JPEGLSVERSION   "V.2.1"

/* Maximal number of components in the implementation*/
#define MAX_COMPONENTS	6
#define MAX_SCANS	MAX_COMPONENTS
	

/* For 1st component of plane interl. mode */
#define FIRST		1


/* Different colour modes */
#define PLANE_INT	0
#define LINE_INT	1
#define PIXEL_INT	2

#define DEFAULT_COLOR_MODE LINE_INT

extern char	*plane_int_string,
			*line_int_string,
			*pixel_int_string;


#define BIG_ENDIAN	1

typedef struct	jpeg_ls {

	int	columns,					/* The number of columns */
		rows,						/* Number of rows */
		alp,						/* alphabet size (Max+1) , 2 bytes*/
		comp,						/* number of components, 1 byte  */
		NEAR,						/* near-lossless error, 1 byte  */
		color_mode,					/* indicates the color mode , 1 byte */
		need_lse,					/* Indicates non-default parameters */
		need_table,					/* Indicates use of mapping table */
		need_restart,				/* Indicates use of restart markers */
		restart_interval,			/* The number of MCU's between restart markers */
		shift,						/* for sparse images, 1 byte */
		T1,T2,T3,					/* Thresholds, 2 bytes each */
		RES,						/* reset value for counters, 2 bytes */
		samplingx[MAX_COMPONENTS],	/* col. sampling rates 1 byte each*/
		samplingy[MAX_COMPONENTS],	/* row sampling rates */
		comp_ids[MAX_COMPONENTS],	/* component id's */
		acc_size,					/* 1 byte */
		adds[MAX_COMPONENTS];		/* size given by acc_size */
	unsigned int	TID,			/* Table ID, 1 byte */
		        MAXTAB,			/* Maximum table index value */
		        Wt,			/* Width of each table entry, 1 byte */
	                *TABLE[MAX_COMPONENTS];	/* The table(s) for each component */

} jpeg_ls_header;

extern int	components;
extern int	sampling[MAX_COMPONENTS];

#define NAME_LENGTH	40

/* Output file names */
#define OUTFILE "outfile"
#define COMPSUFFIX ".out"


/* Define max and min macros */
#ifndef max
#define max(a,b)  (((a)>=(b))?(a):(b))
#define min(a,b)  (((a)<=(b))?(a):(b))
#endif


/****** Constants */

/* margins for scan lines */
#define	LEFTMARGIN	2
#define RIGHTMARGIN	1


extern char *disclaimer;


/* alphabet size */
#define MAXA8 (256)
#define MAXA16 (65536)
#define LUTMAX8 (256)
#define LUTMAX16 (4501)


#ifdef FIXALPHA
#  ifndef alpha
#    define	alpha	256
#  endif
#  define 	highmask (-(alpha))
#  ifndef POW2
#	define POW2
#  endif
#  if (alpha!=2) && (alpha!=4) && (alpha!=8) && (alpha!=16) && (alpha!=32) &&\
     (alpha!=64) && ( alpha!=128) && (alpha!=256) && (alpha!=512) &&\
     (alpha!=1024) && ( alpha!=2048) && (alpha!=4096) && (alpha!=8192) &&\
     (alpha!=16384) && ( alpha!=32768) && (alpha!=65536)
#   	error "Fixed alpha must be a power of 2"
#  endif
#  define  	ceil_half_alpha (alpha/2)
#else
extern int      alpha;     /* alphabet size */
extern int      ceil_half_alpha; /* ceil(alpha/2) */
extern int      highmask;  /* for powers of 2, a mask for high bits */
#endif



extern int  bpp,    /* bits per sample */
			qbpp,   /* bits per sample for quantized prediction errors */
			limit,  /* limit for unary part of Golomb code */
			limit_reduce;  /* reduction on above for EOR states */


#define DEF_NEAR	0

/* for LOSSY mode */
extern  int	quant, 
			beta, 
			qbeta,
			ceil_half_qbeta,
			negNEAR,
			alpha1eps;

/* loss tolerance */
extern int NEAR;


/* Quantization threshold basic defaults */
/* These are the defaults for LOSSLESS, 8 bpp. Defaults for other
   cases are derived from these basic values */
#define	BASIC_T1	3
#define	BASIC_T2	7
#define	BASIC_T3	21
#define	BASIC_Ta	5

#define CREGIONS (9)    /* quantization regions for d-a, a-c, c-b */

/* run-length treshold */
#ifndef MAXRUN
#	define MAXRUN (64)
#endif

#define EOLINE	 1
#define NOEOLINE 0

/* number of different contexts */
#define CONTEXTS1 (CREGIONS*CREGIONS*CREGIONS)

#define CONTEXTS   ((CONTEXTS1+1)/2) /* all regions, with symmetric merging */


/* Mandatory for JPEG-LS: */
#define CLAMP
#define CLAMPB
#define CLAMPC


#define MAX_C 127
#define MIN_C -128


#define MAXCODE (N_R_L_ERROR)


/* Number of end-of-run contexts */
#define EOR_CONTEXTS 2


/* Total number of contexts */
#define TOT_CONTEXTS (CONTEXTS +  EOR_CONTEXTS)


/* index of first end-of-run context */
#define EOR_0	(CONTEXTS)


/* index of run state */
#define RUNSTATE 0



/*** offsets */

/* The longest code the bit IO can facilitate */
#define MAXCODELEN 24

/* The stat initialization values */
#define INITNSTAT 1
#define MIN_INITABSTAT 2    /* min init value for abstat[] */
#define INITABSLACK 6       /* init value for abstat is roughly 
				       2^(bpp-INITABSLACK) but not less than above */
#define INITBIASTAT 0

/* Limit for unary code */
#define LIMIT 23

/* reset values */
#define DEFAULT_RESET 64
#define MINRESET 3

#ifdef FIXRESET
#   ifndef RESET
#		define RESET     DEFAULT_RESET
#   endif
#else
extern int	RESET;
#endif

#define	reset	RESET          /* reset threshold */

#define RESRUN    256


/****** Type prototypes */

/* Portability types */
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned long dword;

typedef unsigned short pixel;



/****** Global variables prototypes */

extern FILE *in, *out, *msgfile;
extern FILE	*c_in[MAX_COMPONENTS];
extern FILE	*c_out[MAX_COMPONENTS];
extern int  inhandle;
extern int  T1, T2, T3, Ta;
extern int	verbose,
			nopause,
			nolegal;

extern int bpp16;
extern int lossy;


/* for look-up tables */
extern int alpha;
extern int vLUT[3][2 * LUTMAX16];
extern int lutmax;
extern int classmap[CONTEXTS1];
extern int *qdiv0, *qdiv,        /* quantization table (division via look-up) */
	   *qmul0, *qmul;        /* dequantization table */

/* statistics tables */
extern int	N[TOT_CONTEXTS], 
		A[TOT_CONTEXTS], 
		B[TOT_CONTEXTS],
		C[TOT_CONTEXTS];


/****** Function prototypes */

/* global.c */
void error(char *msg);
void *safealloc(size_t size);
void *safecalloc(size_t numels, size_t size);

/* scanline.c */
void prepareLUTs();
void init_stats(int);
void doscanline(pixel *psl, pixel *sl, int no, int color);
int undoscanline(pixel *psl, pixel *sl, int no, int color);
void doscanline_pixel(pixel *psl, pixel *sl, int no);
int undoscanline_pixel(pixel *psl, pixel *sl, int no);

/* bitio.c */
void bitiinit();
void bitflush();
void createzeroLUT();
void buffinit(FILE *);

/*  melcode.c */
void init_process_run(int);
void close_process_run();
int  process_run_dec(int,int);

/* initialize.c */
void prepareLUTs();
void prepare_qtables(int, int);
void init_stats(int);

#ifdef BIG_ENDIAN
#    define ENDIAN8(x)   (x)
#    define ENDIAN16(x)   (x)
#else
#    define ENDIAN8(x) (x&0x000000ff)
#    define ENDIAN16(x) ( ((x>>8)|(x<<8)) & 0x0000ffff)
#endif

/* ENDIAN function to fix endian of PCs (for 8 bit pixels) 
#define ENDIAN8(x) (x&0x000000ff)*/


/* ENDIAN function to fix endian of PCs (for 16 bit pixels) 
#define ENDIAN16(x) ( ((x>>8)|(x<<8)) & 0x0000ffff )*/




/* clipping macro */
#ifdef POW2
#	define clip(x,alpha) \
	    if ( x & highmask ) {\
	      if(x < 0) \
			x = 0;\
	      else \
			x = alpha - 1;\
	    }
#else
#	define clip(x,alpha) \
	  if(x < 0)  \
	    x = 0; \
	  else if (x >= alpha) \
	    x = alpha - 1;
#endif  /* POW2 */ 



/* macro to predict Px */
#define predict(Rb, Ra, Rc)	\
{	\
	register pixel minx;	\
	register pixel maxx;	\
	\
	if (Rb > Ra) {	\
		minx = Ra;	\
		maxx = Rb;	\
	} else {	\
		maxx = Ra;	\
		minx = Rb;	\
	}	\
	if (Rc >= maxx)	\
		Px = minx;	\
	else if (Rc <= minx)	\
		Px = maxx;	\
	else	\
		Px = Ra + Rb - Rc;	\
}


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品福利| 不卡欧美aaaaa| 91免费看`日韩一区二区| 国产午夜精品福利| 欧美zozo另类异族| 国产综合色产在线精品| 精品99999| 懂色av中文字幕一区二区三区| 国产精品久久久久久久久动漫| 色94色欧美sute亚洲13| 亚洲成人动漫一区| 欧美精品一区二区三区视频| 欧美一区二区三区免费观看视频| 久久91精品久久久久久秒播| 中文字幕一区二区三区不卡 | 色激情天天射综合网| 成熟亚洲日本毛茸茸凸凹| 一区二区三区中文字幕| 777亚洲妇女| 高清国产午夜精品久久久久久| 久久国产生活片100| 亚洲图片欧美激情| 亚洲精品一区在线观看| 精品国产亚洲一区二区三区在线观看 | 欧美精品久久一区二区三区| 精品影视av免费| 国产美女精品人人做人人爽| 亚洲一区二区三区国产| 中文字幕av不卡| 色妞www精品视频| 蜜臂av日日欢夜夜爽一区| 亚洲欧洲99久久| 亚洲男人天堂一区| 欧美国产日韩a欧美在线观看| 国产精品不卡一区二区三区| 亚洲综合另类小说| 美女在线视频一区| 不卡一区二区三区四区| 欧美乱妇一区二区三区不卡视频| 欧美成人精品二区三区99精品| 中文字幕欧美区| 国产精品天美传媒| 久久婷婷成人综合色| 91精品麻豆日日躁夜夜躁| 日韩久久久精品| 91精品国产乱码久久蜜臀| 久久精品人人做人人综合| 1024成人网色www| 亚洲成a人在线观看| 国产一区二区三区免费看| 国产91在线观看| 99国产精品久久| 日韩国产一二三区| 亚洲国产色一区| 国产欧美精品一区| 欧美一级欧美三级在线观看| 欧美人伦禁忌dvd放荡欲情| 色伊人久久综合中文字幕| 日韩美女视频一区二区在线观看| 日韩理论电影院| 国内不卡的二区三区中文字幕| 国产精品一区专区| 天堂影院一区二区| 国产精品二三区| 日本成人超碰在线观看| 国内成人自拍视频| 99re66热这里只有精品3直播 | 欧美日韩一区精品| 91视频你懂的| 欧美美女喷水视频| 国产精品国产三级国产aⅴ无密码| 亚洲一区二区三区四区在线| 国产精品一区在线观看你懂的| 欧美偷拍一区二区| 欧美一区二区在线观看| 3d动漫精品啪啪1区2区免费| 国产精品久久久久aaaa樱花| 蜜臀av性久久久久蜜臀aⅴ| 在线观看www91| 久久久国产午夜精品| 亚洲激情av在线| 精品在线免费视频| 7777精品伊人久久久大香线蕉完整版| 综合网在线视频| 成人激情黄色小说| 国产精品视频在线看| 日韩中文字幕一区二区三区| 一本一道波多野结衣一区二区| 久久影院视频免费| 国产在线视频一区二区| 亚洲精品一线二线三线无人区| 久久99久国产精品黄毛片色诱| 日韩午夜在线观看视频| 综合分类小说区另类春色亚洲小说欧美| 精品一区二区三区久久| 色欧美片视频在线观看在线视频| ...xxx性欧美| 99久久精品情趣| 777午夜精品视频在线播放| 亚洲综合激情网| 欧美视频一区二区三区四区| 亚洲人快播电影网| 94色蜜桃网一区二区三区| 亚洲欧美日韩在线播放| 成人激情免费电影网址| 中文字幕亚洲综合久久菠萝蜜| 成人午夜精品在线| 欧美日韩国产大片| 加勒比av一区二区| 国产午夜精品一区二区三区嫩草 | 欧美日韩午夜在线视频| 亚洲国产成人91porn| 日韩一区二区在线观看视频播放| 亚洲理论在线观看| 欧美一级欧美三级| 国产不卡在线播放| 亚洲国产三级在线| 久久精品亚洲精品国产欧美kt∨| 成人的网站免费观看| 视频在线观看一区| 国产日韩av一区二区| 欧美午夜精品久久久久久孕妇| 麻豆精品视频在线| 亚洲天堂精品视频| 欧美一区三区四区| 91亚洲精品乱码久久久久久蜜桃| 午夜久久久久久久久久一区二区| 国产99久久久久| 一区二区三区四区不卡视频| 欧美成人女星排行榜| 99精品1区2区| 国产精品1024久久| 26uuu精品一区二区| 在线观看av一区二区| 国产999精品久久久久久绿帽| 丝袜国产日韩另类美女| 中文字幕在线不卡国产视频| 日韩一级片网址| 在线观看av一区| 9久草视频在线视频精品| 亚洲天堂成人在线观看| wwww国产精品欧美| 欧美老肥妇做.爰bbww| 97se亚洲国产综合在线| 成人综合婷婷国产精品久久 | 欧美一区二区网站| 日本丶国产丶欧美色综合| 国产盗摄女厕一区二区三区| 日本色综合中文字幕| 亚洲一区二区三区在线看| 国产精品国产三级国产普通话三级 | 日韩欧美视频在线| 欧美在线啊v一区| 成年人午夜久久久| 国产福利一区二区| 麻豆国产精品官网| 免费在线看成人av| 久久久国际精品| 2021国产精品久久精品| 欧美麻豆精品久久久久久| 91国内精品野花午夜精品| 色嗨嗨av一区二区三区| 色综合激情久久| 91日韩一区二区三区| av福利精品导航| 成人a免费在线看| 白白色 亚洲乱淫| gogogo免费视频观看亚洲一| 国产一区二区三区免费在线观看| 爽好久久久欧美精品| 日韩综合小视频| 精品一二线国产| 国产乱码字幕精品高清av| 岛国一区二区在线观看| 成人免费毛片app| 99久久久无码国产精品| 91久久精品一区二区二区| 欧美又粗又大又爽| 欧美一区日本一区韩国一区| 精品免费一区二区三区| 久久久亚洲欧洲日产国码αv| 日本一区二区三区久久久久久久久不| 日本一二三不卡| 一区二区激情视频| 日韩av中文字幕一区二区| 麻豆视频一区二区| 不卡在线观看av| 欧美天堂一区二区三区| 91精品国产色综合久久ai换脸| 日韩精品在线网站| 国产拍揄自揄精品视频麻豆| 亚洲欧美在线观看| 日韩国产一区二| 国产a视频精品免费观看| 91视频精品在这里| 欧美一级日韩不卡播放免费| 国产欧美精品区一区二区三区| 亚洲视频1区2区| 美女爽到高潮91| 成人性视频免费网站|