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

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

?? encoder.c

?? 實現圖像的jpeg無損壓縮
?? C
?? 第 1 頁 / 共 3 頁
字號:
		if ( verbose )			fprintf(msgfile,"%s\n",banner);#define LESS_CONTEXTS 1		if ( verbose>1 )			fprintf(msgfile,"Number of contexts (non-run): %d regular + %d EOR = %d\n",CONTEXTS-LESS_CONTEXTS,EOR_CONTEXTS,TOT_CONTEXTS-LESS_CONTEXTS);		/* Read image headers*/		if (multi==0) {			if ( read_header_6(in, &columns, &rows, &alpha0, &components) != 0 )				error("Could not read image header. Must be PPM or PGM file.\n");			/* Single component => PLANE_INT */			if ( (color_mode==LINE_INT || color_mode==PIXEL_INT) && components==1) {					/*				fprintf(msgfile,"Single component received: Color mode changed to PLANE INTERLEAVED\n");				*/				color_mode=PLANE_INT;				color_mode_string = plane_int_string;				multi=1;				c_columns[0]=columns;				c_rows[0] = rows;				c_in[0]=in;			}		}		else {			for (i=0;i<components;i++) {				if (read_header_5(c_in[i], &(c_columns[i]), &(c_rows[i]), &alpha0) != 0 )					error("ERROR: Could not read image header. Must be PGM file.\n");				if (i==0) {					common_rows=c_rows[0];					common_alpha=alpha0;				}				else if ((alpha0!=common_alpha)) {					fprintf(stderr,"\nERROR: All components must have same maximal value\n");					exit(10);				}			}		}#ifdef FIXALPHA		alpha0++;		if ( alpha0 != alpha ) {			fprintf(stderr, "Sorry, this version has been optimized for alphabet size = %d, got %d\n",alpha,alpha0);			exit(10);		}#else		alpha = alpha0+1;  /* number read from file header is alpha-1 */		ceil_half_alpha = (alpha+1)/2;#endif#ifdef POW2		highmask = -alpha;		/* check that alpha is a power of 2 */		for ( alpha0=alpha, i=-1; alpha0; alpha0>>=1, i++);		if ( alpha != (1<<i) ) {			fprintf(stderr, "Sorry, this version has been optimized for alphabet size = power of 2, got %d\n",alpha);			exit(10);		}#endif			/* Check for 16 or 8 bit mode */		if (alpha <= MAXA16 && alpha > MAXA8)		{			bpp16 = TRUE;			lutmax = LUTMAX16;		}		else if (alpha <= MAXA8 && alpha >= 1)		{			bpp16 = FALSE;			lutmax = LUTMAX8;		}		else { 			fprintf(stderr,"Got alpha = %d\n",alpha);			error("Bad value for alpha. Sorry...\n");		}		/* print out parameters */		if ( verbose ) {			if (!multi)				fprintf(msgfile,"Input  file: %s\nOutput file: %s\n",infilename,outfilename);			else {				fprintf(msgfile,"Input  files: ");				for (i=0;i<components;i++)					fprintf(msgfile," %s ",c_infilename[i]);				fprintf(msgfile,"\nOutput file: %s\n",outfilename);			}			if (!multi)				fprintf(msgfile,"Image: cols=%d rows=%d alpha=%d comp=%d mode=%d (%s)",				columns, rows, alpha, components, 				color_mode, color_mode_string);			else {				fprintf(msgfile,"Image: cols=");				for (i=0;i<components;i++)					fprintf(msgfile," %d",c_columns[i]);				fprintf(msgfile," rows=");				for (i=0;i<components;i++)					fprintf(msgfile," %d",c_rows[i]);				fprintf(msgfile," alpha=%d comp=%d mode=%d (%s)",					alpha, components, color_mode,					color_mode_string);			}			fprintf(msgfile,"\n");		}		/* compute auxiliary parameters for near-lossless (globals) */		if (lossy==TRUE) {			quant = 2*NEAR+1;			qbeta = (alpha + 2*NEAR + quant-1 )/quant;			beta = quant*qbeta;			ceil_half_qbeta = (qbeta+1)/2;			negNEAR = -NEAR;			if ( verbose )				fprintf(msgfile,"Near-lossless mode: NEAR = %d  beta = %d  qbeta = %d\n",NEAR,beta,qbeta);		}		/* compute bits per sample for input symbols */		for ( bpp=1; (1L<<bpp)<alpha; bpp++ );		/* check if alpha is a power of 2: */		if ( alpha != (1<<bpp) )			need_lse = 1; /* if not, MAXVAL will be non-default, and 						  we'll need to specify it in an LSE marker */		/* compute bits per sample for unencoded prediction errors */		if (lossy==TRUE)			for ( qbpp=1; (1L<<qbpp)<qbeta; qbpp++ );		else			qbpp = bpp;		if ( bpp < 2 ) bpp = 2;		/* limit for unary part of Golomb code */		if ( bpp < 8 )			limit = 2*(bpp + 8) - qbpp -1;		else			limit = 4*bpp - qbpp - 1;   		/* check for smallest subsampled file and compute the sampling */		if ((components>1) && (multi)) {			min_size_columns=c_columns[components-1];			min_size_rows=c_rows[components-1];			for (i=0;i<components-1;i++) {				if (c_columns[i]<min_size_columns) 					min_size_columns=c_columns[i];				if (c_rows[i]<min_size_rows) 					min_size_rows=c_rows[i];			}			for (i=0;i<components;i++) {				samplingx[i]=c_columns[i]/min_size_columns;				samplingy[i]=c_rows[i]/min_size_rows;				if ((samplingx[i]>4) || ((c_columns[i]%min_size_columns)!=0)) {					fprintf(stderr,"\nImage sizes not compatible\n");					exit(10);				}				if ((samplingy[i]>4) || ((c_rows[i]%min_size_rows)!=0)) {					fprintf(stderr,"\nImage sizes not compatible\n");					exit(10);				}			}			min_size_columns=c_columns[0];			whose_max_size_columns=0;			min_size_rows=c_rows[0];			whose_max_size_rows=0;			for (i=1;i<components;i++) { 				if (c_columns[i]>min_size_columns) {					whose_max_size_columns=i;					min_size_columns=c_columns[i];				}				if (c_rows[i]>min_size_rows) {					whose_max_size_rows=i;					min_size_rows=c_rows[i];				}			}		}		else {			for (i=0;i<components;i++) samplingx[i] = samplingy[i] = 1;		}		/* Allocate memory pools. */		initbuffers(multi, components);  }int main (int argc, char *argv[]) {	int n,n_c,n_r,my_i, number_of_scans, n_s, i;	double t0, t1, get_utime();	long tot_in = 0,		tot_out = 0,		pos0, pos1;	int temp_columns;	int MCUs_counted;	pixel *local_scanl0,*local_scanl1,*local_pscanline,*local_cscanline;	application_header = all_header = 0;	msgfile = stdout;	/* Parse the parameters, initialize */	initialize(argc, argv); 	/* Start timer (must be AFTER initialize()) */	t0 = get_utime();   	/* Compute the number of scans */	/* Multiple scans only for PLANE_INT in this implementation */	if (color_mode==PLANE_INT)		number_of_scans=components;	else		number_of_scans = 1;	/* Write the frame header - allocate memory for jpegls header */	head_frame = (jpeg_ls_header *) safecalloc(1,sizeof(jpeg_ls_header));	for (n_s=0;n_s<number_of_scans;n_s++)		head_scan[n_s] = (jpeg_ls_header *) safecalloc(1,sizeof(jpeg_ls_header));	/* Assigns columns/rows to head_frame */	if (!multi) {		head_frame->columns=columns;		head_frame->rows=rows;	}	else {		head_frame->columns=c_columns[whose_max_size_columns];		head_frame->rows=c_rows[whose_max_size_rows];	}	head_frame->alp=alpha;	head_frame->comp=components;	/* Assign component id and samplingx/samplingy */	for (i=0;i<components;i++) {		head_frame->comp_ids[i]=i+1;		head_frame->samplingx[i]=samplingx[i];		head_frame->samplingy[i]=samplingy[i];	}	head_frame->NEAR=NEAR; /* Not needed, scan information */	head_frame->need_lse=need_lse; /* Not needed, for commpletness  */	head_frame->color_mode=color_mode; /* Not needed, scan information */	head_frame->shift=shift; /* Not needed, scan information */	for (n_s=0;n_s<number_of_scans;n_s++) {		head_scan[n_s]->alp = alpha;		head_scan[n_s]->NEAR = NEAR;		head_scan[n_s]->T1 = T1;		head_scan[n_s]->T2 = T2;		head_scan[n_s]->T3 = T3;		head_scan[n_s]->RES = RESET;		head_scan[n_s]->shift = shift;		head_scan[n_s]->color_mode = color_mode;	}	if (color_mode==PLANE_INT) { /* One plane per scan */		for (n_s=0;n_s<number_of_scans;n_s++) {			head_scan[n_s]->comp=1;			head_scan[n_s]->comp_ids[0]=n_s+1;		}	}	else {		for (n_s=0;n_s<number_of_scans;n_s++) {			head_scan[n_s]->comp=head_frame->comp;			for (n_c=0;n_c<head_frame->comp;n_c++)				head_scan[n_s]->comp_ids[n_c]=n_c+1;		}	}	/* Write SOI */	all_header = write_marker(out, SOI);	/* Write the frame */	all_header += write_jpegls_frame(out, head_frame);	/* End of frame header writing */	if ((components>1) && (multi==0)) {		/* Received PPM file, allocate auxiliary buffers */		local_scanl0 = (pixel *)safecalloc(columns+LEFTMARGIN+RIGHTMARGIN,sizeof(pixel) );		local_scanl1 = (pixel *)safecalloc(columns+LEFTMARGIN+RIGHTMARGIN,sizeof(pixel) );		local_pscanline = local_scanl0 + LEFTMARGIN-1;		local_cscanline = local_scanl1 + LEFTMARGIN-1;	}	/* Go through each scan and process line by line */	for (n_s=0;n_s<number_of_scans;n_s++) {		/* process scans one by one */		if (n_s==0) {			/* The thresholds for the scan. Must re-do per scan is change. */			set_thresholds(alpha, NEAR, &T1, &T2, &T3);			for (i=0;i<number_of_scans;i++) {				head_scan[n_s]->T1=T1;				head_scan[n_s]->T2=T2;				head_scan[n_s]->T3=T3;			}			/* After the thresholds are set, write LSE marker if we have */			/* non-default parameters or if we need a mapping table */			if ( need_lse != 0 )				all_header += write_jpegls_extmarker(out, head_scan[n_s], LSE_PARAMS, mappingtablefilename);			if ( need_table != 0 )				all_header += write_jpegls_extmarker(out, head_scan[n_s], LSE_MAPTABLE, mappingtablefilename);			/* If using restart markers, write the DRI header */			if ( need_restart != 0 )			{					head_scan[n_s]->restart_interval = restart_interval;				all_header += write_jpegls_restartmarker(out, head_scan[n_s]);			}			/* Print out parameters */			if (verbose)				fprintf(msgfile,"Parameters: T1=%d T2=%d T3=%d RESET=%d limit=%d\n",T1, T2, T3,RESET,limit);			/* Prepare LUTs for context quantization */			/* Must re-do when Thresholds change */			prepareLUTs();			if (lossy==TRUE)				/* prepare div/mul tables for near-lossless quantization */				prepare_qtables(alpha, NEAR);			/* Check for errors */			check_compatibility(head_frame, head_scan[0],0);		}		/* Restart Marker is reset after every scan */		MCUs_counted = 0;		/* Write the scan header */		all_header += write_jpegls_scan(out, head_scan[n_s]);		pos0 = ftell(out);  /* position in output file, after header */		/* Initializations for each scan */		/* Start from 1st image row */		n=0;		/* initialize stats arrays */		if (lossy==TRUE)			init_stats(qbeta);		else			init_stats(alpha);		/* initialize run processing */		init_process_run(MAXRUN);		if (color_mode==LINE_INT) {	/* line interleaved */			if (!multi) { 			/* Single file received */				/***********************************************************************/				/*           Line interleaved mode with single file received           */				/***********************************************************************/				if (lossy==FALSE)					/* LOSSLESS mode */					while (++n <= rows) {						read_one_line(cscanline + components, components*columns, in);						tot_in += components*columns;						/* 'extend' the edges */						for (n_c=0;n_c<components;n_c++)							cscanline[-components+n_c] = cscanline[n_c]=pscanline[components+n_c];						for (n_c=0;n_c<components;n_c++) {							if (components > 1) {								for (my_i=0;my_i<columns+LEFTMARGIN+RIGHTMARGIN;my_i++){									local_cscanline[-1+my_i]=cscanline[-components+my_i*components+n_c];									local_pscanline[-1+my_i]=pscanline[-components+my_i*components+n_c];								}							}							else {								local_cscanline=cscanline;								local_pscanline=pscanline;							}							/* process the lines */							lossless_doscanline(local_pscanline, local_cscanline, columns,n_c);						}						/* 'extend' the edges */						for (n_c=0;n_c<components;n_c++)							cscanline[components*(columns+1)+n_c]=cscanline[components*columns+n_c];						/* make the current scanline the previous one */						swaplines();						/* Insert restart markers if enabled */						if (need_restart)						{							/* Insert restart markers only after a restart interval */							if ((MCUs_counted % restart_interval) == 0)							{								bitoflush();								write_marker(out, (RSTm + ((MCUs_counted / restart_interval)%8)));							}							MCUs_counted++;						}					}				else					/* LOSSY mode */					while (++n <= rows) {						read_one_line(cscanline + components, components*columns, in);						tot_in += components*columns;						/* 'extend' the edges */						for (n_c=0;n_c<components;n_c++)							cscanline[-components+n_c] = cscanline[n_c]=pscanline[components+n_c];						for (n_c=0;n_c<components;n_c++) {							if (components > 1) {								for (my_i=0;my_i<columns+LEFTMARGIN+RIGHTMARGIN;my_i++){									local_cscanline[-1+my_i]=cscanline[-components+my_i*components+n_c];									local_pscanline[-1+my_i]=pscanline[-components+my_i*components+n_c];								}							}							else {								local_cscanline=cscanline;								local_pscanline=pscanline;							}							/* process the lines */							lossy_doscanline(local_pscanline, local_cscanline, columns,n_c);							if (components>1)								for (my_i=0;my_i<columns+LEFTMARGIN+RIGHTMARGIN;my_i++)									cscanline[-components+my_i*components+n_c]=local_cscanline[-1+my_i];						}						/* 'extend' the edges */						for (n_c=0;n_c<components;n_c++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美剧在线免费观看网站| 久久婷婷一区二区三区| 91黄色小视频| 91亚洲精华国产精华精华液| 成人精品亚洲人成在线| 播五月开心婷婷综合| 粉嫩高潮美女一区二区三区| www.欧美精品一二区| 成人国产精品视频| 99久久99久久久精品齐齐| 99re这里只有精品首页| 99re6这里只有精品视频在线观看| 99国产精品久| 欧美怡红院视频| 91精品中文字幕一区二区三区 | 久久久美女毛片| 国产亚洲精品aa| 国产精品久久久久久久久免费樱桃 | 亚洲一区二区三区四区在线免费观看| 亚洲欧美激情在线| 亚洲一区二区中文在线| 日韩成人一区二区三区在线观看| 蜜臀99久久精品久久久久久软件| 美女视频黄 久久| 国产黄色精品视频| 色婷婷综合中文久久一本| 欧美无砖专区一中文字| 日韩欧美中文一区| 中文文精品字幕一区二区| 亚洲免费观看视频| 免费成人你懂的| 成人福利视频网站| 欧美日韩五月天| 精品人在线二区三区| 中文字幕av在线一区二区三区| 一区二区三区在线免费视频 | 欧美精品亚洲二区| 久久亚洲春色中文字幕久久久| 欧美国产精品专区| 婷婷夜色潮精品综合在线| 国产一区二区三区黄视频 | 在线视频你懂得一区二区三区| 884aa四虎影成人精品一区| 久久久蜜臀国产一区二区| 亚洲女人****多毛耸耸8| 青青草国产成人av片免费| 成人性生交大片| 777色狠狠一区二区三区| 国产人成亚洲第一网站在线播放 | 久久99久久久久| 本田岬高潮一区二区三区| 欧美精品久久久久久久多人混战| 国产三级精品三级在线专区| 一区二区在线免费观看| 国产一区二区电影| 在线电影国产精品| 亚洲私人影院在线观看| 激情小说欧美图片| 欧美婷婷六月丁香综合色| 久久久亚洲欧洲日产国码αv| 亚洲一区二区三区四区在线免费观看 | 亚洲精品国产a| 国产精品99久久久久久似苏梦涵| 91久久线看在观草草青青 | 国产乱子轮精品视频| 欧美日韩国产123区| 国产精品国产三级国产aⅴ无密码| 日韩av中文在线观看| 91黄色免费网站| 国产精品三级电影| 精品亚洲成a人在线观看| 欧美图区在线视频| 1000部国产精品成人观看| 久久9热精品视频| 678五月天丁香亚洲综合网| 亚洲免费资源在线播放| 高清不卡一二三区| 欧美tk—视频vk| 日本视频一区二区| 欧美日韩卡一卡二| 亚洲综合在线第一页| 95精品视频在线| 国产精品妹子av| 国产高清不卡二三区| 亚洲精品一区二区三区99| 视频在线在亚洲| 欧美视频在线一区| 亚洲激情综合网| av电影天堂一区二区在线 | 成人综合婷婷国产精品久久免费| 欧美大尺度电影在线| 日韩精品电影在线| 欧美高清dvd| 亚洲成在人线在线播放| 欧美三级蜜桃2在线观看| 一区二区三区波多野结衣在线观看| 99久久精品免费| 亚洲视频一区在线| 91美女在线视频| 亚洲免费视频成人| 91黄视频在线| 亚洲专区一二三| 欧美日韩国产首页| 午夜电影一区二区| 欧美一级日韩一级| 日本午夜精品一区二区三区电影| 91精品在线麻豆| 蜜臀av一区二区在线免费观看| 日韩视频免费直播| 国内精品写真在线观看| 国产人成亚洲第一网站在线播放| 东方aⅴ免费观看久久av| 国产精品美女久久福利网站| 成人av网站免费观看| 亚洲欧美日韩国产成人精品影院 | 精品国产乱码久久久久久图片| 精品一二三四区| 欧美韩日一区二区三区四区| 99热这里都是精品| 亚洲国产精品久久久久婷婷884 | 日韩欧美美女一区二区三区| 国内成人精品2018免费看| 欧美国产一区二区| 在线亚洲一区观看| 日韩av二区在线播放| 久久久精品综合| www.日本不卡| 午夜婷婷国产麻豆精品| 精品女同一区二区| 不卡区在线中文字幕| 五月天丁香久久| 久久久精品日韩欧美| 日本电影欧美片| 捆绑紧缚一区二区三区视频| 国产精品情趣视频| 欧美日韩国产不卡| 国产成人av影院| 亚洲一区国产视频| 久久欧美中文字幕| 日本韩国欧美在线| 国内精品伊人久久久久av影院| 中文字幕在线播放不卡一区| 欧美日韩一级大片网址| 国产精品一区二区黑丝| 亚洲综合精品自拍| 久久久噜噜噜久久中文字幕色伊伊| 91日韩一区二区三区| 九九国产精品视频| 一区二区三区精品久久久| 精品国产亚洲一区二区三区在线观看| 波多野洁衣一区| 久久精品理论片| 亚洲制服丝袜av| 国产日产欧美精品一区二区三区| 欧美视频一区在线| 成人免费高清视频在线观看| 日韩精品视频网| 亚洲美女屁股眼交3| 精品国内二区三区| 91国产成人在线| 懂色av中文字幕一区二区三区 | 91丨porny丨中文| 久久国产福利国产秒拍| 亚洲一区二区三区中文字幕| 欧美极品另类videosde| 5858s免费视频成人| 91色|porny| 成人一级视频在线观看| 久久aⅴ国产欧美74aaa| 午夜天堂影视香蕉久久| 亚洲日本一区二区三区| 久久精品免费在线观看| 欧美一区二区三区啪啪| 欧美在线免费观看亚洲| 波多野结衣在线aⅴ中文字幕不卡| 麻豆精品视频在线观看| 水蜜桃久久夜色精品一区的特点 | 国产一区视频网站| 日韩激情一区二区| 亚洲久草在线视频| 最新国产精品久久精品| 国产午夜亚洲精品理论片色戒| 欧美一区二区三区视频在线| 欧美日韩亚洲综合在线| 色哟哟亚洲精品| 97se亚洲国产综合在线| 成人激情动漫在线观看| 国产精品一区二区无线| 韩国精品久久久| 精品无码三级在线观看视频| 老色鬼精品视频在线观看播放| 日韩av电影天堂| 日韩高清中文字幕一区| 亚洲成av人片一区二区| 性久久久久久久久| 亚洲成人免费看| 日精品一区二区三区| 日韩激情在线观看| 美国欧美日韩国产在线播放| 蜜臀av性久久久久蜜臀aⅴ四虎|