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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? global.c

?? 實(shí)現(xiàn)圖像的jpeg無損壓縮
?? C
字號:
/* 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.c --- support and portability routines: error handling, safe memory
 *                              management, etc.
 *
 * 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 <time.h>
#include <stdio.h>

#include "global.h"



char *disclaimer = "\
This program is Copyright (c) University of British Columbia.\n\
All rights reserved. It may be freely redistributed in its\n\
entirety provided that this copyright notice is not removed.\n\
It may not be sold for profit or incorporated in commercial programs\n\
without the written permission of the copyright holder.\n\
";



/* I/O files */
FILE *in, *out;
FILE *c_in[MAX_COMPONENTS];
FILE *c_out[MAX_COMPONENTS];
FILE *msgfile;// = stdout;

/* Context quantization thresholds  - initially unset */
int     T3 = -1,
        T2 = -1,
        T1 = -1,
		Ta = -1;


int verbose = 1;   /* verbosity level */
int nopause = 0;   /* whether to pause the legal notice or not */
int nolegal = 0;   /* whether to print the legal notice or not */


/* parameters for LOSSY images */
int	quant,          /* quantization = 2*NEAR+1 */
	beta,		/* size of extended alphabet */
	qbeta,          /* size of quantized alphabet */
	ceil_half_qbeta, /* ceil(qbeta/2) */
	negNEAR,            /* -NEAR */
	alpha1eps;       /* alpha-1+NEAR */

int	NEAR = DEF_NEAR; 	/* loss tolerance per symbol, fixed at 0 for lossless */
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 color mode strings */
char *plane_int_string = "plane by plane",
	 *line_int_string = "line intlv",
	 *pixel_int_string = "sample intlv";


/* function to print out error messages */
void error(char *msg) {
	fprintf(stderr, msg);
	exit(-1);
}


/* function to safely call malloc */
void *safealloc(size_t size) {
	void *temp;

	temp = malloc(size);
    if (temp == NULL)
		error("\nsafealloc: Out of memory. Aborting...\n");
	return temp;
}


/* function to safely call calloc **/
void *safecalloc(size_t numels, size_t size) {
	void *temp;

	temp = calloc(numels, size);
    if (temp == NULL)
		error("\nsafecalloc: Out of memory. Aborting...\n");
	return temp;
}


/*
 * TIMING ROUTINES
 */


double get_utime()
{
	clock_t c;

	return (double)clock()/CLOCKS_PER_SEC;
}


/* Set thresholds to default unless specified by header: */
set_thresholds(int alfa, int NEAR, int *T1p, int *T2p, int *T3p)
{
	int lambda,
	    ilambda = 256/alfa,
	    quant = 2*NEAR+1,
	    T1 = *T1p, 
	    T2 = *T2p, 
	    T3 = *T3p;
	
	if (alfa<4096)
	   lambda = (alfa+127)/256;
        else
	   lambda = (4096+127)/256;



	if ( T1 <= 0 )  {
		/* compute lossless default */
		if ( lambda ) 
			T1 = lambda*(BASIC_T1 - 2) + 2;
		else {  /* alphabet < 8 bits */
			T1 = BASIC_T1/ilambda;
			if ( T1 < 2 ) T1 = 2;
		}
		/* adjust for lossy */
		T1 += 3*NEAR;

		/* check that the default threshold is in bounds */
		if ( T1 < NEAR+1 || T1 > (alfa-1) ) 
		     T1 = NEAR+1;         /* eliminates the threshold */
	}
	if ( T2 <= 0 )  {
		/* compute lossless default */
		if ( lambda ) 
			T2 = lambda*(BASIC_T2 - 3) + 3;
		else {
			T2 = BASIC_T2/ilambda;
			if ( T2 < 3 ) T2 = 3;
		}
		/* adjust for lossy */
		T2 += 5*NEAR;

		/* check that the default threshold is in bounds */
		if ( T2 < T1 || T2 > (alfa-1) ) 
		     T2 = T1;         /* eliminates the threshold */
	}
	if ( T3 <= 0 )  {
		/* compute lossless default */
		if ( lambda ) 
			T3 = lambda*(BASIC_T3 - 4) + 4;
		else {
			T3 = BASIC_T3/ilambda;
			if ( T3 < 4 ) T3 = 4;
		}
		/* adjust for lossy */
		T3 += 7*NEAR;

		/* check that the default threshold is in bounds */
		if ( T3 < T2 || T3 > (alfa-1) ) 
		     T3 = T2;         /* eliminates the threshold */
	}

	*T1p = T1;
	*T2p = T2;
	*T3p = T3;
	return 0;
}




/* We first check compatibility with JPEG-LS, then with this implementation */

void check_compatibility(jpeg_ls_header *head_frame, jpeg_ls_header *head_scan, int n_s) 
{

    int	number_of_scans,i;	
    int maxreset;

/* Check implemented color modes */
    if ((head_scan->color_mode>PIXEL_INT)) {
	fprintf(stderr,"Color mode %d not supported\n",head_scan->color_mode);
	exit(10);
    }

    if (head_scan->color_mode==PLANE_INT) 
	number_of_scans=head_frame->comp;
    else 
	number_of_scans=1;
    

/* Test standard compatibility */

    if (head_frame->columns<=0 || head_frame->rows <=0) {
	fprintf(stderr,"Image size must be positive for this implementation.\n");
	exit(10);
    }

    if (head_frame->alp<4) {
	fprintf(stderr,"Alphabet size must be >= 4, got %d\n",head_frame->alp);
	exit(10);
    }


    if (head_scan->T1>head_scan->T2 || head_scan->T2>head_scan->T3 ||
	head_scan->T1<head_scan->NEAR+1 || head_scan->T3>=head_scan->alp ) {
	fprintf(stderr,"Bad thresholds: must be %d <= Ta <= Tb <= Tc <= %d\n",
			head_scan->NEAR+1,head_scan->alp-1);
	exit(10);
    }

    if (head_frame->comp>255) {
	fprintf(stderr,"Too many components (must be less than 255)\n");
	exit(10);
    }

    if (head_scan->NEAR>=head_scan->alp) {
	fprintf(stderr,"Error for near-lossless must be smaller than alphabet (%d), got %d",head_scan->alp,head_scan->NEAR);
	exit(10);
    }

    /*
    if (head_scan->RES < MINRESET || head_scan->RES >= head_scan->alp ) {
	fprintf(stderr,"Reset parameter must be between %d and %d\n",
					MINRESET, head_scan->alp-1);
	exit(10);
    }
    */

    maxreset = (head_scan->alp >= 256)? (head_scan->alp-1):255;

    if (head_scan->RES < MINRESET || head_scan->RES > maxreset ) {
	fprintf(stderr,"Reset parameter must be between %d and %d\n",
					MINRESET, head_scan->alp-1);
	exit(10);
    }

    for (i=0;i<head_frame->comp;i++)
	if (head_frame->comp_ids[i] != (i+1)) {
	   fprintf(stderr,"Components id in frame not compatible with this implementation.\n");
	   exit(10);
        }

    if (number_of_scans == 1) {
	if (head_frame->comp != head_scan->comp) {
	   fprintf(stderr,"In this implementation, when single scan, all components must be in the scan.\n");
	   exit(10);
        }
        for (i=0;i<head_frame->comp;i++)
	  if (head_scan->comp_ids[i] != (i+1)) {
	     fprintf(stderr,"Components id in single scan not compatible with this implementation.\n");
	     exit(10);
          }

    }
    else {
	if (head_scan->comp != 1) {
	   fprintf(stderr,"Only 1 component per scan for plane interleaved mode\n");
	   exit(10);
        }
        if (head_scan->comp_ids[0] != (n_s+1)) {
	   fprintf(stderr,"Components id in multiple scan not compatible with this implementation.\n");
	   exit(10);
        }

    }
}


/* for writing disclaimer to command line in DOS */

char *ttyfilename = "CON";

#define PAUSE	20

fprint_disclaimer(FILE *fp, int nopause)
{
    char *p0, *p1;
    FILE *ttyf;
    int  i, c;

#ifndef CHIP_C5402
    nopause = nopause | !isatty(fileno(fp));
#endif    

    if ( !nopause && (ttyf=fopen(ttyfilename,"r"))==NULL ) {
	nopause = 1;
    }

    for ( i=1, p0=disclaimer; ; i++ ) {
	if ( !(*p0)  ) break;
	if ( !nopause && i%PAUSE==0 ) {
	    fflush(fp);
	    fprintf(stderr, "--- (press RETURN to continue) ---"); 
	    fflush(stderr);
	    c = getc(ttyf);
	}
	for ( p1=p0; (*p1 != '\n') && (*p1 != 0); p1++ );
	*p1 = 0;
	fprintf(fp,"%s\n",p0);
	p0 = p1+1;
    }
    fprintf(fp,"\n"); fflush(fp);
    if ( !nopause) fclose(ttyf);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
√…a在线天堂一区| 欧美成人猛片aaaaaaa| 国产精品久久久久久久久动漫| 韩国精品主播一区二区在线观看 | 欧美专区亚洲专区| 亚洲天堂网中文字| 91猫先生在线| 亚洲成人动漫av| 日韩欧美中文字幕精品| 青青草一区二区三区| 欧美精品一区二区久久久| 狠狠色丁香久久婷婷综| 国产精品欧美综合在线| 色婷婷综合久久久| 午夜电影网亚洲视频| 欧美一级在线免费| 国产黄色精品视频| 亚洲视频免费在线| 这里只有精品免费| 国产精品一二二区| 一区二区三区在线高清| 91麻豆精品国产91久久久更新时间| 久久99国产乱子伦精品免费| 亚洲国产电影在线观看| 91国产精品成人| 日本中文字幕一区| 国产精品国产三级国产| 3atv在线一区二区三区| 国产一区二区在线视频| 亚洲综合色区另类av| 精品久久99ma| 97se狠狠狠综合亚洲狠狠| 视频一区在线视频| 蜜臀久久久99精品久久久久久| 久久久久久久久岛国免费| 在线观看欧美黄色| 国产精品1区2区3区| 亚洲大片在线观看| 国产精品婷婷午夜在线观看| 这里只有精品免费| 91蜜桃传媒精品久久久一区二区| 日本大胆欧美人术艺术动态| 亚洲天堂成人网| 久久久综合视频| 精品视频资源站| 成人免费观看男女羞羞视频| 亚洲成人在线网站| 国产精品久久久久久久久免费樱桃| 欧美一区二区精品| 欧美午夜精品免费| 成人午夜在线播放| 蜜桃视频免费观看一区| 一区二区不卡在线播放 | 国产日韩亚洲欧美综合| 欧美欧美欧美欧美首页| 91麻豆国产在线观看| 国产又粗又猛又爽又黄91精品| 日韩精品一级二级| 一区二区三区不卡在线观看| 中文字幕在线不卡| 国产亚洲人成网站| 欧美mv日韩mv国产网站app| 欧美日韩精品综合在线| 色av一区二区| 不卡一区二区中文字幕| 懂色av噜噜一区二区三区av| 极品销魂美女一区二区三区| 人人精品人人爱| 日日夜夜精品视频免费| 亚洲国产综合人成综合网站| 亚洲精品国产精品乱码不99| 亚洲欧洲www| 国产精品久久综合| 国产精品私人自拍| 欧美国产国产综合| 中文字幕免费不卡| 中文字幕在线不卡| 亚洲欧洲韩国日本视频| 亚洲色欲色欲www| 亚洲乱码中文字幕| 亚洲激情第一区| 亚洲一二三专区| 日韩av不卡一区二区| 日本在线观看不卡视频| 美国十次综合导航| 国产主播一区二区三区| 国产激情一区二区三区| 不卡高清视频专区| 一本久久综合亚洲鲁鲁五月天 | 国产亚洲短视频| 国产精品久久久久天堂| 亚洲免费高清视频在线| 亚洲男人的天堂在线观看| 亚洲综合视频在线| 丝袜a∨在线一区二区三区不卡| 91蝌蚪porny| 欧美午夜一区二区三区免费大片| 欧美日韩一区二区欧美激情| 日韩一卡二卡三卡四卡| 久久毛片高清国产| 亚洲欧美另类在线| 日韩激情一二三区| 狠狠色丁香久久婷婷综| www.性欧美| 欧美精三区欧美精三区| 久久综合九色综合欧美98| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美伊人久久久久久久久影院 | 日本道在线观看一区二区| 欧洲精品在线观看| 日韩一级欧美一级| 中文在线一区二区| 亚洲成人av一区| 国产精品亚洲一区二区三区妖精| av高清不卡在线| 欧美日本一区二区三区| 久久久久9999亚洲精品| 亚洲精品中文在线观看| 久久99久久久久久久久久久| 成人av网站免费观看| 色综合av在线| 精品嫩草影院久久| 亚洲一卡二卡三卡四卡无卡久久| 免费成人在线播放| 色婷婷综合久久久久中文一区二区| 制服丝袜中文字幕亚洲| 国产精品不卡视频| 久久99国产乱子伦精品免费| 91蝌蚪porny九色| 久久久精品蜜桃| 青青草国产成人av片免费| 久久久久久久久久久黄色| 丝袜美腿成人在线| 色婷婷综合久久久久中文一区二区 | 成人禁用看黄a在线| 欧美一区二区大片| 亚洲免费色视频| 福利电影一区二区三区| 日韩一区二区三区观看| 一区二区三区在线视频观看58| 久久99精品国产麻豆婷婷洗澡| 色8久久人人97超碰香蕉987| 国产亚洲一区二区在线观看| 免费的国产精品| 欧美高清视频www夜色资源网| 亚洲欧美日韩中文字幕一区二区三区 | 精品伦理精品一区| 日韩影院免费视频| 欧美日韩一区二区三区免费看| 亚洲欧洲国产日韩| 福利视频网站一区二区三区| 精品国产一区二区在线观看| 日日骚欧美日韩| 欧美性生交片4| 自拍偷拍亚洲欧美日韩| 不卡一卡二卡三乱码免费网站| 久久精品亚洲国产奇米99| 免费成人性网站| 亚洲高清免费视频| 日本韩国欧美一区| 亚洲丝袜自拍清纯另类| 成人理论电影网| 中日韩av电影| 成人影视亚洲图片在线| 亚洲国产精品传媒在线观看| 国产一区二区三区在线观看免费 | 99久久久精品| 国产精品日韩成人| 成a人片国产精品| 国产精品初高中害羞小美女文| 成人午夜伦理影院| 亚洲国产精品精华液ab| 粉嫩av一区二区三区粉嫩| 国产日韩欧美高清在线| 成人午夜av在线| 国产精品伦理在线| 色婷婷香蕉在线一区二区| 亚洲欧美视频在线观看视频| 色琪琪一区二区三区亚洲区| 一区二区三区视频在线观看| 91福利精品第一导航| 香蕉成人伊视频在线观看| 91精品国产乱| 久久99热这里只有精品| 久久久99久久精品欧美| 成人午夜精品在线| 亚洲欧美另类久久久精品2019| 欧美性猛交xxxxxx富婆| 琪琪久久久久日韩精品| 久久精品亚洲麻豆av一区二区| 成人精品在线视频观看| 亚洲一区二区三区视频在线 | 日本道色综合久久| 视频一区免费在线观看| 精品久久久久久久一区二区蜜臀| 高清av一区二区| 午夜欧美2019年伦理| 亚洲精品在线网站| av一区二区三区在线| 偷偷要91色婷婷|