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

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

?? encoder.c

?? 實現(xiàn)圖像的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一区二区三区免费野_久草精品视频
5566中文字幕一区二区电影 | 久久99九九99精品| 97精品久久久午夜一区二区三区| 精品理论电影在线观看| 亚洲第一激情av| 欧美三级中文字幕在线观看| 亚洲欧美日韩在线| 日本精品视频一区二区三区| 精品88久久久久88久久久| 另类小说视频一区二区| 日韩一区二区麻豆国产| 久久超碰97中文字幕| 欧美日本一区二区三区四区| 一区二区三区蜜桃| 在线区一区二视频| 亚洲日本va午夜在线电影| 风流少妇一区二区| 亚洲视频一区二区免费在线观看| 99久久精品情趣| 亚洲一区二区成人在线观看| 欧美色区777第一页| 日韩成人免费电影| 久久婷婷国产综合精品青草| 国产成人h网站| 亚洲三级视频在线观看| 欧美特级限制片免费在线观看| 婷婷一区二区三区| 久久久久久久久久看片| www.亚洲激情.com| 亚洲成av人片在线| 精品少妇一区二区三区日产乱码 | 亚洲福利视频三区| 欧美一区二区黄色| 成人综合婷婷国产精品久久蜜臀| 亚洲免费观看高清| 91精品国产一区二区人妖| 激情综合色播五月| 亚洲日本免费电影| 884aa四虎影成人精品一区| 国产精品一区二区久久精品爱涩| 综合激情成人伊人| 91精品久久久久久蜜臀| 国产激情一区二区三区| 亚洲一区二区三区四区在线| 精品国产青草久久久久福利| 99久久精品国产毛片| 日韩av电影一区| 日韩一区有码在线| 日韩三级电影网址| 一道本成人在线| 狠狠色丁香久久婷婷综| 亚洲一区二区精品3399| 国产欧美一区在线| 日韩一区二区精品| 色综合天天做天天爱| 国产麻豆一精品一av一免费| 亚洲综合免费观看高清完整版| 日韩写真欧美这视频| 99精品视频在线免费观看| 美女视频黄a大片欧美| 亚洲精品国产视频| 欧美国产精品v| 日韩欧美国产一区在线观看| 色天使色偷偷av一区二区| 国产一区二区三区香蕉| 香蕉久久一区二区不卡无毒影院| 日韩精品在线一区| 欧美日产在线观看| 色综合久久久久久久久久久| 国产成人精品www牛牛影视| 日韩高清欧美激情| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩成人一区二区| 一区二区在线观看不卡| 欧美国产综合一区二区| www激情久久| 精品久久一区二区三区| 欧美一区二区三区免费大片| 在线观看日韩精品| 色欧美88888久久久久久影院| 国产精品一级黄| 国产最新精品免费| 精品一区二区国语对白| 国产乱子伦视频一区二区三区 | 亚洲日本va在线观看| 制服.丝袜.亚洲.另类.中文| 国产乱码精品一区二区三| 亚洲第一久久影院| 午夜精品视频在线观看| 亚洲成精国产精品女| 亚洲一区二区不卡免费| 亚洲一区自拍偷拍| 亚洲福利一区二区三区| 亚洲v精品v日韩v欧美v专区| 亚洲成av人**亚洲成av**| 亚洲精品国产无套在线观| 亚洲你懂的在线视频| 亚洲精品免费在线| 一区二区三区精品在线| 亚洲成av人片在www色猫咪| 亚洲一区二区三区中文字幕 | 极品美女销魂一区二区三区免费| 亚洲影院理伦片| 亚洲成a天堂v人片| 亚洲成av人**亚洲成av**| 日本美女一区二区| 极品销魂美女一区二区三区| 肉肉av福利一精品导航| 一级女性全黄久久生活片免费| 亚洲影院免费观看| 青娱乐精品在线视频| 看国产成人h片视频| 国产高清视频一区| 蜜臀av性久久久久蜜臀aⅴ| 午夜精品一区二区三区三上悠亚| 蜜桃在线一区二区三区| 国产精品一色哟哟哟| aaa亚洲精品| 色欧美88888久久久久久影院| 日本丰满少妇一区二区三区| 欧美吞精做爰啪啪高潮| 91精品蜜臀在线一区尤物| 国产午夜精品一区二区三区视频| 国产精品丝袜一区| 国产精品蜜臀在线观看| 国产精品久久午夜| 亚洲免费观看高清完整版在线| 亚洲五月六月丁香激情| 韩国三级在线一区| 色婷婷久久久亚洲一区二区三区| 欧美日韩视频在线第一区| 日韩精品一区二区在线| 亚洲色图欧洲色图婷婷| 麻豆一区二区在线| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩三级.com| 欧美国产在线观看| 亚洲色欲色欲www| 久久国产精品99精品国产| 成人av网站免费| 欧美日韩1234| 亚洲视频一区二区在线观看| 亚洲精品综合在线| 国产一区二区三区av电影| 欧美日韩亚洲国产综合| 国产午夜精品理论片a级大结局| 亚洲国产精品精华液2区45| 午夜国产不卡在线观看视频| 美日韩黄色大片| 成人午夜在线免费| 欧美日韩1234| 亚洲伦理在线精品| 色悠悠久久综合| 国产精品久久久久久一区二区三区| 亚洲成人黄色影院| 99久久99久久久精品齐齐| 欧美精品一卡两卡| 国产精品福利一区二区| 国产一区二区电影| 欧美高清你懂得| 亚洲理论在线观看| 成人午夜碰碰视频| 久久久综合视频| 国产精品国产三级国产普通话蜜臀| 久久99九九99精品| 欧美一区二区网站| 午夜激情一区二区三区| 91成人看片片| 中文字幕字幕中文在线中不卡视频| 日日夜夜精品免费视频| 欧美亚洲图片小说| 亚洲综合男人的天堂| 色综合一区二区三区| 日韩毛片一二三区| 国产精品1区二区.| 色婷婷综合视频在线观看| 亚洲精品国产成人久久av盗摄 | 久国产精品韩国三级视频| 欧美日韩国产一区二区三区地区| 亚洲欧美一区二区不卡| 成人免费视频视频| 91麻豆精品91久久久久久清纯| 日韩伦理av电影| 一本到高清视频免费精品| 国产婷婷一区二区| 免费三级欧美电影| 日本韩国精品在线| 亚洲乱码一区二区三区在线观看| 丁香天五香天堂综合| 午夜精品久久久久久久99水蜜桃| 日本丶国产丶欧美色综合| 国产精品美女久久久久av爽李琼| 国产最新精品精品你懂的| 欧美男女性生活在线直播观看| 亚洲一区二区免费视频| 欧美日韩免费一区二区三区 | 欧美日韩大陆一区二区| 国产精品卡一卡二| 91香蕉视频在线| 一级特黄大欧美久久久|