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

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

?? encoder.c

?? 實現圖像的jpeg無損壓縮
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* 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 copyrightnotice is not removed. THEY MAY NOT BE SOLD FOR PROFIT OR INCORPORATED INCOMMERCIAL 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 ORCOMPLETENESS OF THE INFORMATION GIVEN HERE.  ANY USE MADE OF, ORRELIANCE 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 CONDITIONSOF THIS LICENSING AGREEMENT.YOU MAY DOWNLOAD AND USE THE SOFTWARE FOR NON-COMMERCIAL PURPOSESFREE OF CHARGE OR FURTHER OBLIGATION.  YOU MAY NOT, DIRECTLY ORINDIRECTLY, DISTRIBUTE THE SOFTWARE FOR A FEE, INCORPORATE THISSOFTWARE INTO ANY PRODUCT OFFERED FOR SALE, OR USE THE SOFTWARETO PROVIDE A SERVICE FOR WHICH A FEE IS CHARGED.YOU MAY MAKE COPIES OF THE SOFTWARE AND DISTRIBUTE SUCH COPIES TOOTHER PERSONS PROVIDED THAT SUCH COPIES ARE ACCOMPANIED BYHEWLETT-PACKARD'S COPYRIGHT NOTICE AND THIS AGREEMENT AND THATSUCH 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 AFINAL OR FULL IMPLEMENTATION OF THE STANDARD.  HP GIVES NO EXPRESS ORIMPLIED WARRANTY OF ANY KIND AND ANY IMPLIED WARRANTIES OFMERCHANTABILITY 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.-------------------------------------------------------------------------------*//* encoder.c --- the main module, argument parsing, file I/O** * Initial code by Alex Jakulin,  Aug. 1995** Modified and optimized: Gadiel Seroussi, October 1995** Color Enhancement: Guillermo Sapiro, August 1996** Modified and added Restart marker and input tables by:* David Cheng-Hsiu Chu, and Ismail R. Ismail march 1999*/#include "global.h"#include "math.h"#include "string.h"#include "jpegmark.h"static char *banner="\n\					=============================================\n\					SPMG/JPEG-LS COMPRESSOR " JPEGLSVERSION "\n\					=============================================\n\					These programs are Copyright (c) University of British Columbia.\n\					All rights reserved. They may be freely redistributed in their\n\					entirety provided that this copyright  notice is not removed.\n\					They may not be sold for profit or incorporated in commercial\n\					programs without the written permission of the copyright holder.\n\					Each program is provided as is, without any express or implied\n\					warranty, without even the warranty of fitness for a particular\n\					purpose.\n\					\n\					=========================================================\n\					THIS SOFTWARE IS BASED ON HP's implementation of jpeg-ls:\n\					=========================================================\n\					(c) COPYRIGHT HEWLETT-PACKARD COMPANY, 1995-1999.\n";pixel *pscanline, *cscanline, *scanl0, *scanl1;pixel *c_pscanline[MAX_COMPONENTS], *c_cscanline[MAX_COMPONENTS], *c_scanl0[MAX_COMPONENTS],    *c_scanl1[MAX_COMPONENTS];jpeg_ls_header *head_frame,*head_scan[MAX_SCANS];int columns, rows, components, samplingx[MAX_COMPONENTS], samplingy[MAX_COMPONENTS];int c_columns[MAX_COMPONENTS];int c_rows[MAX_COMPONENTS];int whose_max_size_rows, whose_max_size_columns;int	color_mode;	int	need_lse;			 	/* if we need an LSE marker (non-default params) */int need_table;					/* if we need an LSE marker (mapping table) */int need_restart;				/* if we need to add restart markers */int restart_interval;    			/* indicates the restart interval */int	multi;					/* if the files are separate */int	application_header;			/* application bytes written in the header */int	all_header;				/* all bytes of the header, including application							bytes and JPEG-LS bytes */int	shift=0;				/* Shift value for sparse images */int	palete=0;				/* for paletized images */int lossy;					/* Indicates if in lossy mode or not */int lutmax;					/* lutmax is either 256 or 4501 */int bpp16;               			/* Indicates if 16 bits per pixel mode or not */char *mappingtablefilename=NULL; 		/* Mapping table filename *//* reset */#ifndef FIXRESETint	RESET;#endif/* alphabet size */#ifndef FIXALPHAint     alpha,     	 /* alphabet size */ceil_half_alpha; /* ceil(alpha/2) */#endif#ifdef POW2int	highmask;#endif/* Read one row of pixel values */__inline void read_one_line(pixel* line, int cols, FILE* infile){	unsigned char* line8;	int i;	if (bpp16==FALSE)	{		line8 = (unsigned char *)safealloc(cols);		if (fread(line8, 1, cols, infile) != cols)			fprintf(stderr,"Input file is truncated");		for(i=0; i<cols; i++)			line[i] = line8[i];		free(line8);	}	else	{		if (fread(line, 2, cols, infile) != cols)			fprintf(stderr,"Input file is truncated");	}}/* Initialize the buffers for each line */void initbuffers(int multi, int comp) {	int	i;	if (multi) 		/* The files are received independent */		for (i=0;i<comp;i++) {			c_scanl0[i] = (pixel *)safecalloc((c_columns[i]+LEFTMARGIN+RIGHTMARGIN), sizeof(pixel) );			c_scanl1[i] = (pixel *)safecalloc((c_columns[i]+LEFTMARGIN+RIGHTMARGIN), sizeof(pixel) );			c_pscanline[i] = c_scanl0[i] + (LEFTMARGIN-1);			c_cscanline[i] = c_scanl1[i] + (LEFTMARGIN-1);		}	else { 			/* Only 1 file received */		scanl0 = (pixel *)safecalloc(components*(columns+LEFTMARGIN+RIGHTMARGIN), sizeof(pixel) );		scanl1 = (pixel *)safecalloc(components*(columns+LEFTMARGIN+RIGHTMARGIN), sizeof(pixel) );		/* Adjust scan line pointers taking into account the margins,		and also the fact that indexing for scan lines starts from 1		*/		pscanline = scanl0 + components*(LEFTMARGIN-1);		cscanline = scanl1 + components*(LEFTMARGIN-1);	}	bitoinit();}/* Swap the pointers to the current and previous scanlines */void swaplines(){	pixel *temp;	temp = pscanline;	pscanline = cscanline;	cscanline = temp;}/* Swap the pointers to the current and previous scanlines */void c_swaplines(int i){	pixel *temp;	temp = c_pscanline[i];	c_pscanline[i] = c_cscanline[i];	c_cscanline[i] = temp;}/* close the line buffers */int closebuffers(int multi) {	int pos,i;	bitoflush();	if (multi==0)		fclose(in);	else		for (i=0;i<components;i++)			fclose(c_in[i]);	pos = ftell(out);	fclose(out);	free(scanl0);	free(scanl1);	return pos;}/* Initialization Function - Reads in parameters from image and command line */void initialize(int argc, char *argv[]) {	char *infilename=NULL,		*c_infilename[MAX_COMPONENTS],		*outfilename = OUTFILE COMPSUFFIX,		*color_mode_string;	int  i, n_c, common_rows, common_alpha,		min_size_rows, min_size_columns,		temp_reset,		alpha0,		gotinf = 0,		gotoutf = 0;	n_c=0;	multi=0;	color_mode=DEFAULT_COLOR_MODE;	need_lse=0;	need_table=0;	need_restart=0;	restart_interval=0;	components=0;	T1=T2=T3=0;#ifndef FIXRESET	RESET=DEFAULT_RESET;#endif	/* Initialize NEAR to zero and loss-less mode */	NEAR = DEF_NEAR;	lossy = FALSE;	/* Go through the arguments in command line */	for ( i=1; i<argc; i++ )		if ( argv[i][0] == '-' )  {			switch ( argv[i][1] ) {				/* Enable use of Restart Markers */			case 't':				need_restart = 1;				if ( sscanf(argv[i]+2,"%d",&restart_interval) != 1 ) {					bad_flag(argv[i]);				}				break;				/* Enable use of Mapping Tables */			case 'm':				need_table = 2;				mappingtablefilename = argv[i]+2;				break;				/* Reset value */			case 'r': 				if ( sscanf(argv[i]+2,"%d",&temp_reset) != 1 ) {					bad_flag(argv[i]);				}				if ( temp_reset != DEFAULT_RESET ) {					need_lse = 1;#ifdef FIXRESET					fprintf(stderr,"ERROR: This version compiled with fixed RESET = %d, got %d\n",DEFAULT_RESET,temp_reset);					exit(10);#else					RESET = temp_reset;#endif				}				break;				/* Colour mode */			case 'c':				if ( sscanf(argv[i]+2,"%d",&color_mode) != 1 ) {					bad_flag(argv[i]);				}				break;				/* Sparse(?) mode */			case 'p':				if ( sscanf(argv[i]+2,"%d",&shift) != 1 ) {					bad_flag(argv[i]);				}				if (shift!=0) {					fprintf(stderr,"Sorry, sparse mode not implemented (shift=%d).\n",shift);					exit(10);				}				break;				/* Infile names */			case 'i':				infilename = c_infilename[components++] = argv[i]+2;				gotinf = 1;				break;				/* Outfile names */			case 'o':				outfilename = argv[i]+2;				gotoutf = 1;				break;				/* Verbose level */			case 'v':				if ( sscanf(argv[i],"-v%d",&verbose) != 1 ) {					verbose=2;				}				break;				/* Error level - if 0 then means loss-less mode */			case 'e':			case 'n':				if ( sscanf(argv[i]+2,"%d",&NEAR) != 1 ) {					bad_flag(argv[i]);				}				if ( NEAR == 0 )					lossy = FALSE;				else					lossy = TRUE;				break;				/* Threshold Levels */			case 's':			case 'S':			case 'T':				need_lse = 1;				switch(argv[i][2]) {			case 'a':				if ( sscanf(argv[i]+3,"%d",&T1) != 1 ) {					bad_flag(argv[i]);				}				break;			case 'b':				if ( sscanf(argv[i]+3,"%d",&T2) != 1 ) {					bad_flag(argv[i]);				}				break;			case 'c':				if ( sscanf(argv[i]+3,"%d",&T3) != 1 ) {					bad_flag(argv[i]);				}				break;			default:				bad_flag(argv[i]);				break;				}				break;			default:				usage();				exit(0);			}		}		else {			infilename = c_infilename[components++] = argv[i];			gotinf = 1;		}		if ( verbose < 1 )			verbose = 1;  /* at least the banner will show */		/* check that color mode is valid and pick color mode string */		switch ( color_mode ) {		case PLANE_INT:			color_mode_string = plane_int_string;			multi=1;			break;		case LINE_INT:			color_mode_string = line_int_string;			if (components>1) multi=1;			break;		case PIXEL_INT:			color_mode_string = pixel_int_string;			if (components>1){				fprintf(stderr,"ERROR: specified more than 1 input file in pixel interleaved mode\n");				exit(10);			}			break;		default:			fprintf(stderr,"ERROR: Invalid color mode %d\n",color_mode);			usage();			exit(10);		}		/* Assign file pointers to in files */		if ( (infilename == NULL) && (multi==0 || components<1) ) {			usage();			exit(0);		}		else {			if ( strcmp(infilename,"-") == 0 )				in = stdin;			else {				if (multi==0) {					if ( (in=fopen(infilename,"rb")) == NULL ) {						perror(infilename);						exit(10);					}				}				else {					for (i=0;i<components;i++)						if ( (c_in[i]=fopen(c_infilename[i],"rb")) == NULL ) {							perror(c_infilename[i]);							exit(10);						}				}			}		}		/* Assigns pointers to out files */		if ( outfilename == NULL ) {			usage();			exit(0);		}		else {			if ( strcmp(outfilename,"-") == 0 ) {				out = stdout;				msgfile = stderr;			}			else if ( (out=fopen(outfilename,"wb")) == NULL ) {				perror(outfilename);				exit(10);			}		}		/* Print messages */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费樱桃| 日韩不卡一区二区三区| 五月天激情小说综合| 精品亚洲欧美一区| 91丨porny丨蝌蚪视频| 欧美一级生活片| 国产精品高潮久久久久无| 久久精品国产一区二区| 91国模大尺度私拍在线视频| 国产色一区二区| 免费看黄色91| 在线不卡一区二区| 伊人婷婷欧美激情| 成人99免费视频| 久久精品免费在线观看| 麻豆国产精品视频| 欧美精品一二三四| 亚洲国产欧美日韩另类综合| www.欧美.com| 中文字幕国产精品一区二区| 国产精品资源站在线| 日韩欧美国产电影| 午夜精品成人在线| 欧美日韩免费视频| 亚洲第一主播视频| 欧美日韩一区视频| 午夜欧美视频在线观看| 欧美日韩国产一区二区三区地区| 亚洲精品网站在线观看| 色综合久久综合| 国产精品第13页| av色综合久久天堂av综合| 国产调教视频一区| 不卡视频一二三| 国产精品美女久久久久久久| 夫妻av一区二区| 亚洲欧美怡红院| aa级大片欧美| 亚洲一区二区在线视频| 欧美无砖砖区免费| 日韩综合在线视频| 精品免费一区二区三区| 国产另类ts人妖一区二区| 国产日产亚洲精品系列| 顶级嫩模精品视频在线看| 国产精品高清亚洲| 在线影院国内精品| 免费欧美日韩国产三级电影| 久久久精品免费网站| fc2成人免费人成在线观看播放| 国产精品不卡在线观看| 色999日韩国产欧美一区二区| 一区二区欧美在线观看| 制服丝袜中文字幕亚洲| 国产精品自拍三区| 亚洲精品国产高清久久伦理二区| 欧美日韩一级片在线观看| 无吗不卡中文字幕| 国产欧美一区在线| 日本二三区不卡| 捆绑变态av一区二区三区| 欧美国产97人人爽人人喊| 欧美在线色视频| 麻豆国产一区二区| 中文字幕中文字幕一区二区 | 欧美日韩久久不卡| 免费在线视频一区| 欧美韩国日本不卡| 7777女厕盗摄久久久| 国产成人综合视频| 亚洲一区二区在线观看视频| 欧美一区二区三区免费观看视频| 丰满岳乱妇一区二区三区| 亚洲一区在线观看网站| 国产片一区二区三区| 欧美午夜电影在线播放| 高清在线观看日韩| 天天影视色香欲综合网老头| 国产性做久久久久久| 555www色欧美视频| 色综合天天综合色综合av| 日韩**一区毛片| 亚洲老妇xxxxxx| 国产调教视频一区| 日韩一区二区精品葵司在线| 色噜噜狠狠色综合中国| 精品一区二区三区av| 亚洲综合色噜噜狠狠| 亚洲国产精品成人综合色在线婷婷 | 精品国产91乱码一区二区三区 | 成人午夜av在线| 免费看日韩a级影片| 一级做a爱片久久| 国产精品女同一区二区三区| 欧美一二三区在线观看| 色哟哟日韩精品| 波多野结衣亚洲| 国产精品伊人色| 另类小说一区二区三区| 亚洲国产精品一区二区尤物区| 国产精品丝袜91| 久久久久久久久久看片| 91精品国产品国语在线不卡| 91黄色在线观看| 99久精品国产| av电影在线观看完整版一区二区| 国产精品一区二区久久不卡| 精品影视av免费| 日日夜夜免费精品视频| 亚洲在线中文字幕| 亚洲午夜免费福利视频| 亚洲一区二区高清| 午夜成人免费电影| 日韩黄色免费电影| 亚洲gay无套男同| 婷婷久久综合九色综合伊人色| 亚洲欧美日韩小说| 亚洲一区二区在线免费看| 亚洲午夜久久久久久久久电影网 | 精品一区二区三区影院在线午夜| 日韩经典一区二区| 美女视频黄 久久| 乱一区二区av| 国产精品99久久久久| 国产99久久久国产精品 | 国产一区视频导航| 国内精品视频一区二区三区八戒| 狠狠色综合色综合网络| 国产成人超碰人人澡人人澡| 成人动漫一区二区三区| 99视频精品免费视频| 色综合天天综合| 欧美精品777| 久久久久久久久免费| 亚洲视频每日更新| 亚洲一区二区欧美激情| 蜜臀av一区二区三区| 国产成人精品免费| 欧美亚洲综合色| 欧美一二区视频| 国产精品女主播av| 性欧美疯狂xxxxbbbb| 国产原创一区二区三区| 97se亚洲国产综合自在线观| 欧美影院午夜播放| 日韩精品资源二区在线| 国产精品天干天干在观线| 亚洲欧美激情在线| 轻轻草成人在线| 成人毛片在线观看| 51久久夜色精品国产麻豆| 久久久久九九视频| 亚洲一区免费在线观看| 国模一区二区三区白浆| 91免费视频观看| 欧美刺激午夜性久久久久久久| 中文久久乱码一区二区| 天堂蜜桃一区二区三区| 国产自产v一区二区三区c| 一本久久精品一区二区| 精品欧美久久久| 亚洲一区二区三区四区中文字幕| 精品一区二区三区久久| 欧洲一区二区三区免费视频| 久久久久亚洲蜜桃| 日韩高清不卡在线| 色综合婷婷久久| 国产免费久久精品| 日韩高清不卡一区| 色先锋久久av资源部| 中文字幕精品三区| 久久爱另类一区二区小说| 欧美午夜视频网站| 亚洲天堂av老司机| 国产做a爰片久久毛片| 欧美人与性动xxxx| 亚洲精品国产精品乱码不99| 国产aⅴ精品一区二区三区色成熟| 日韩一区二区三区观看| ...av二区三区久久精品| 国产一区二区三区高清播放| 欧美日韩视频在线第一区| 亚洲精品免费播放| www.av亚洲| 国产精品污www在线观看| 免费xxxx性欧美18vr| 欧美人与禽zozo性伦| 亚洲一区二区欧美日韩 | 日韩一卡二卡三卡国产欧美| 亚洲一卡二卡三卡四卡无卡久久 | 国产精品羞羞答答xxdd| 精品国产伦一区二区三区观看体验| 亚洲成av人综合在线观看| 在线一区二区视频| 亚洲尤物视频在线| 精品视频999| 亚洲高清不卡在线观看| 8v天堂国产在线一区二区| 日韩电影免费在线| 日韩欧美国产一区二区三区 |