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

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

?? lossless_d.c

?? 實現圖像的jpeg無損壓縮
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* 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.   -------------------------------------------------------------------------------*//* lossless_d.c --- the main pipeline which processes a scanline by doing *                prediction, context computation, context quantization, *                and statistics gathering. (for lossless mode) * * 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 "global.h"#include "bitio.h"#include <stdio.h>#include <math.h>static int eor_limit;/* Do Golomb-Rice statistics and DECODING for LOSSLESS images */__inline int lossless_regular_mode_d(int Q, int SIGN, int Px){	int At, Bt, Nt, Errval, absErrval;	int current, k;	/* This function is called only for regular contexts. 	   End_of_run context is treated separately */	Nt = N[Q];	At = A[Q];	{		/* Estimate k */	    register nst = Nt;	    for(k=0; nst < At; nst *=2, k++);	}	/* Get the number of leading zeros */	absErrval = 0;	do {		int temp;		temp = zeroLUT[reg >> 24];		absErrval += temp;		if (temp != 8) {			FILLBUFFER(temp + 1);			break;		}		FILLBUFFER(8);	} while (1);	if ( absErrval < limit ) {		/* now add the binary part of the Rice code */		if (k) {			register unsigned long temp;			absErrval <<= k;			GETBITS(temp,k);			absErrval += temp;		}	}	else {	    /* the original unary would have been too long:	       (mapped value)-1 was sent verbatim */		GETBITS(absErrval, qbpp);		absErrval ++;	}	/* Do the Rice mapping */	if ( absErrval & 1 ) {        /* negative */		absErrval = (absErrval + 1) / 2;		Errval = -absErrval;	} else {		absErrval /= 2;		Errval = absErrval;	}	Bt = B[Q];	if ( k==0 && (2*Bt <= -Nt) )	{		/* special case: see encoder side */		Errval = -(Errval+1);		absErrval = (Errval<0)? (-Errval):Errval;	}	/* center, clip if necessary, and mask final error */	if ( SIGN == -1 ) {	    Px -= C[Q];	    clip(Px, alpha);	    #if defined(POW2)	    /* this is valid if alpha is a power of 2 */	    current = (Px - Errval)&(alpha-1);#else	    current = Px - Errval;#endif	}	else {	    Px += C[Q];	    clip(Px,alpha);	    #if defined(POW2)	    /* valid if alpha is a power of 2 */	    current = (Px + Errval)&(alpha-1);#else	    current = Px + Errval;#endif	}#if !defined(POW2)	/* reduce mod alpha, for arbitrary alpha */	if (current < 0)		current += alpha;	else if (current >= alpha)		current -= alpha;#endif	/* update bias stats */	B[Q] = (Bt += Errval);	/* update Golomb-Rice stats */	A[Q] += absErrval;	/* check reset (joint for Rice-Golomb and bias cancelation) */	if(Nt == reset) {		N[Q] = (Nt >>= 1);		A[Q] >>= 1;		B[Q] = (Bt >>= 1);	}	/* Do bias estimation for NEXT pixel */	N[Q] = (++Nt);	if  ( Bt <= -Nt ) {	    if (C[Q] > MIN_C)			--C[Q];	    Bt = (B[Q] += Nt);	    if ( Bt <= -Nt ) 			B[Q] = -Nt+1;	} else if ( Bt > 0 ) {	    if (C[Q] < MAX_C)			++C[Q];	    Bt = (B[Q] -= Nt);	    if ( Bt > 0 )			B[Q] = 0;	}	return current;}/* Do end of run DECODING for LOSSLESS images */__inline pixel lossless_end_of_run_d(pixel Ra, pixel Rb, int RItype){	int Ix,		Errval,		absErrval,		MErrval,		k,		Q,		oldmap, 		Nt,		At;		Q = EOR_0 + RItype;		Nt = N[Q], 		At = A[Q];		if ( RItype )			At += Nt/2;		/* Estimate k */		for(k=0; Nt < At; Nt *=2, k++);		/* read and decode the Golomb code */		/* Get the number of leading zeros */		MErrval = 0;		do {			int temp;			temp = zeroLUT[reg >> 24];			MErrval += temp;			if (temp != 8) {				FILLBUFFER(temp + 1);				break;			}			FILLBUFFER(8);		} while (1);		eor_limit = limit - limit_reduce;		if ( MErrval < eor_limit ) {			/* now add the binary part of the Golomb code */			if (k) {				register unsigned long temp;				MErrval <<= k;				GETBITS(temp,k);				MErrval += temp;			}		}		else {			/* the original unary would have been too long:				(mapped value)-1 was sent verbatim */			GETBITS(MErrval, qbpp);			MErrval ++;		}		oldmap = ( k==0 && (RItype||MErrval) && (2*B[Q]<Nt));		/* 			Note: the Boolean variable 'oldmap' is not 			identical to the variable 'map' in the			JPEG-LS draft. We have			oldmap = (qdiff<0) ? (1-map) : map;		*/		MErrval += ( RItype + oldmap );		if ( MErrval & 1 ) { /* negative */			Errval = oldmap - (MErrval+1)/2;			absErrval = -Errval-RItype;			B[Q]++;		}		else { /* nonnegative */			Errval = MErrval/2;			absErrval = Errval-RItype;		}		if ( Rb < Ra )#    ifdef POW2			Ix = ( Rb - Errval ) & (alpha-1);#    else			Ix = Rb - Errval;#    endif		else   /* includes case a==b */#    ifdef POW2			Ix = ( Rb + Errval ) & (alpha-1);#    else			Ix = Rb + Errval;#    endif#if !defined(POW2)		/* reduce mod alpha, for arbitrary alpha */		if (Ix < 0)			Ix += alpha;		else if (Ix >= alpha)			Ix -= alpha;#endif		/* update stats */		A[Q] += absErrval;		if (N[Q] == reset) {			N[Q] >>= 1;			A[Q] >>= 1;			B[Q] >>= 1;		}		N[Q]++;  /* for next pixel */		return Ix;			}/* For line and plane interleaved mode in LOSSLESS mode */int lossless_undoscanline(	pixel *psl,			/* previous scanline */							pixel *sl,			/* current scanline */							int no, int color)	/* number of values in it *//*** watch it! actual pixels in the scan line are numbered 1 to no .     pixels with indices < 1 or > no are dummy "border" pixels  */{	int i, psfix;	pixel Ra, Rb, Rc, Rd;	int SIGN;	int cont;	psfix = 0;	/**********************************************/	/* Do for all pixels in the row in 8-bit mode */	/**********************************************/	if (bpp16==FALSE)	{		Rc = psl[0];		Rb = psl[1];		Ra = sl[0];		i = 1;		do {			pixel Px;			Rd = psl[i + 1];			/* Quantize the gradient */			cont =  vLUT[0][Rd - Rb + LUTMAX8] +					vLUT[1][Rb - Rc + LUTMAX8] +					vLUT[2][Rc - Ra + LUTMAX8];			if ( cont == 0 )			{		    /*********** RUN STATE **********/				register int n, m;				/* get length of the run */				/* arg is # of pixels left */				m = n = process_run_dec(no-i+1, color); 				if ( m > 0 )  {  /* run of nonzero length, otherwise									we go directly to the end-of-run 									state */					do {						sl[i++] = Ra;					} while(--n > 0);					if (i > no)						/* end of line */						return 0;					/* update context pixels */				    Rb = psl[i];				    Rd = psl[i + 1];				}				/* Do end of run encoding for LOSSLESS images */				Ra = lossless_end_of_run_d(Ra, Rb, (Ra==Rb));				}       /* Run state block */ 			else 			{			/************ REGULAR CONTEXT **********/				predict(Rb, Ra, Rc);				/* map symmetric contexts */				cont = classmap[cont];				if (cont < 0) 				{					SIGN = -1;					cont = -cont;				}				else					SIGN = +1;				/* decode a Rice code of a given context */				Ra = lossless_regular_mode_d(cont, SIGN, Px);			}			sl[i] = Ra;			Rc = Rb;			Rb = Rd;			++i;		} while (i <= no);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人永久免费视频| 大尺度一区二区| 亚洲免费av高清| 国产精品三级电影| 中文字幕日本不卡| 亚洲欧美日韩电影| 一区二区三区**美女毛片| 一区二区三区资源| 亚洲成a人v欧美综合天堂| 免费看日韩a级影片| 久久精品国产精品亚洲精品| 亚洲成av人**亚洲成av**| 天堂一区二区在线免费观看| 热久久久久久久| 国产综合久久久久影院| 国产精品亚洲一区二区三区妖精| 成人美女视频在线观看| 一本大道久久a久久综合| 欧美日韩成人在线| 欧美成人艳星乳罩| 国产精品天干天干在观线| 亚洲一区二区三区视频在线播放| 日韩中文欧美在线| 国产成人激情av| 色天天综合色天天久久| 51精品久久久久久久蜜臀| 国产视频一区在线观看| 一区二区三区日韩| 精品一二三四在线| 99精品欧美一区| 欧美日本在线播放| 亚洲国产精品99久久久久久久久 | 久久国产人妖系列| 国产成a人亚洲| 欧日韩精品视频| 久久久久久久综合日本| 亚洲国产精品久久人人爱 | 中文字幕欧美日韩一区| 一区二区三区精品| 国产成人免费视频一区| 欧美日韩一区中文字幕| 国产日韩欧美a| 亚洲一二三级电影| 成人免费av在线| 91精品国产一区二区| 亚洲女同女同女同女同女同69| 五月激情综合色| www.日韩av| 国产网站一区二区三区| 日本视频中文字幕一区二区三区| 国产精品一卡二卡| 日韩视频中午一区| 亚洲一区二区三区四区在线免费观看 | 中文字幕二三区不卡| 日本亚洲一区二区| 欧美亚洲禁片免费| 中文字幕在线播放不卡一区| 久久精品国产99国产精品| 91福利社在线观看| 日韩理论片在线| 成av人片一区二区| 国产亚洲视频系列| 国内精品写真在线观看 | 久久精品国产色蜜蜜麻豆| 欧美亚洲自拍偷拍| 亚洲另类春色国产| 91猫先生在线| 亚洲人成网站影音先锋播放| 成人午夜短视频| 国产精品激情偷乱一区二区∴| 国产精品中文有码| 久久伊人蜜桃av一区二区| 另类中文字幕网| 日韩免费视频线观看| 久久成人综合网| 日韩一区二区电影在线| 美日韩黄色大片| 欧美成人猛片aaaaaaa| 日本v片在线高清不卡在线观看| 欧美性生活久久| 日韩av中文字幕一区二区三区| 欧美日韩国产综合一区二区三区 | 国产九色sp调教91| 国产三区在线成人av| 成人av网址在线观看| 亚洲欧美一区二区在线观看| 99久久综合狠狠综合久久| 亚洲欧美另类综合偷拍| 欧美亚洲国产一区二区三区va| 亚洲一二三四久久| 欧美肥妇free| 精品一区二区在线免费观看| 国产清纯白嫩初高生在线观看91 | 亚洲精品中文在线| 欧美精品乱人伦久久久久久| 美国三级日本三级久久99| 国产夜色精品一区二区av| 99久久久免费精品国产一区二区| 一区二区三区四区蜜桃| 日韩午夜在线观看| 成人动漫在线一区| 亚洲va韩国va欧美va| 2021久久国产精品不只是精品| 99视频一区二区三区| 午夜精品免费在线| 国产偷v国产偷v亚洲高清| 欧洲一区在线观看| 韩国一区二区三区| 亚洲视频 欧洲视频| 欧美一区二区三区系列电影| 国产成人精品一区二区三区四区 | 欧美一区日韩一区| 白白色 亚洲乱淫| 亚洲va在线va天堂| 国产精品卡一卡二| 欧美一级xxx| 97精品久久久久中文字幕| 青青草97国产精品免费观看| 日本一区二区成人在线| 欧美区一区二区三区| eeuss影院一区二区三区| 免费高清成人在线| 亚洲精品免费电影| 国产亚洲一区二区三区四区 | 久久99久久99| 一区二区三区精品久久久| 亚洲国产精品黑人久久久| 日韩亚洲欧美综合| 欧美在线免费播放| 99久久国产综合色|国产精品| 美国毛片一区二区三区| 一区二区激情视频| 中文字幕在线一区免费| 精品国产91乱码一区二区三区 | 91成人国产精品| 91在线视频播放地址| 国产麻豆精品一区二区| 蜜臀精品一区二区三区在线观看| 一区二区三区在线观看欧美 | 色噜噜狠狠色综合欧洲selulu| 韩国av一区二区三区在线观看| 午夜影院在线观看欧美| 亚洲一区二区在线免费观看视频| 国产精品你懂的在线| 国产欧美精品一区aⅴ影院 | 91国偷自产一区二区三区观看| 国产成人一级电影| 国产91色综合久久免费分享| 精品综合免费视频观看| 麻豆久久久久久| 美女网站色91| 六月丁香婷婷久久| 国产在线不卡一区| 国产精品1区二区.| 国产成人丝袜美腿| av高清久久久| 色偷偷一区二区三区| 一本色道久久加勒比精品| 日本韩国欧美国产| 欧美日韩一级二级三级| 91麻豆精品久久久久蜜臀| 欧美精品色综合| 日韩丝袜美女视频| 久久久午夜精品| 国产精品不卡一区| 一区二区三区四区激情| 日欧美一区二区| 国内精品国产成人国产三级粉色| 精品在线亚洲视频| 丁香天五香天堂综合| 91污在线观看| 欧美日韩电影在线播放| 精品国产一区二区三区不卡 | av不卡免费在线观看| 在线免费观看不卡av| 欧美一区二区三区的| 26uuu另类欧美| 亚洲精品视频自拍| 日本美女一区二区| 成人免费高清在线观看| 欧美日韩国产精选| 久久伊99综合婷婷久久伊| 亚洲视频香蕉人妖| 久久69国产一区二区蜜臀| 99久久婷婷国产综合精品电影| 欧美三级中文字幕在线观看| 久久综合色婷婷| 亚洲激情网站免费观看| 久久不见久久见免费视频1| aaa亚洲精品一二三区| 日韩视频一区在线观看| 中文字幕在线不卡一区二区三区| 日韩av高清在线观看| k8久久久一区二区三区| 欧美xxxxx牲另类人与| 亚洲影视资源网| 成人亚洲精品久久久久软件| 在线电影一区二区三区| 一区免费观看视频| 国产精品一区二区免费不卡|