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

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

?? lossy_d.c

?? 實現(xiàn)圖像的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.   -------------------------------------------------------------------------------*//* lossy_d.c --- the main pipeline which processes a scanline by doing *                prediction, context computation, context quantization, *                and statistics gathering. (for LOSSY images) * * 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 LOSSY images*/__inline int lossy_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 <= -qmul[Nt]) ) */	if ( k==0 && NEAR==0 && (2*Bt <= -Nt) ) 	{	/* special case: see encoder side */		Errval = -(Errval+1);		absErrval = (Errval<0)?(-Errval):Errval;	}	Errval = qmul[Errval];  /* dequantize prediction error */	/* center, clip if necessary, and mask final error */	if ( SIGN == -1 ) {	    Px -= C[Q];	    clip(Px, alpha);	    current = Px - Errval;	}	else {	    Px += C[Q];	    clip(Px,alpha);	    current = Px + Errval;	}	/* first, we reduce mod beta in the range -NEAR <= x <= alpha-1+NEAR,	   then we clip to [0,alpha] */	if (current < negNEAR)		current += beta;	else if (current > alpha1eps)		current -= beta;	clip(current,alpha);	/* 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 LOSSY images */__inline pixel lossy_end_of_run_d(pixel Ra, pixel Rb, int RItype){	int xpr,		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;	}	Errval = qmul[Errval];   /* de-quantize prediction error */	if ( RItype ) {	    Ix = Ra + Errval;	}	else  {	    if ( Rb < Ra )			Ix = Rb - Errval;	    else			Ix = Rb + Errval;	}	if ( Ix < negNEAR )		Ix += beta;	else if ( Ix > alpha1eps )		Ix -= beta;	clip(Ix,alpha);	/* 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 DECODING line and plane interleaved mode for LOSSY images*/int lossy_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;	int run_int_type;	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];				}				/* here we handle the "end-of-run" state */				run_int_type = ( (Rb-Ra) <= NEAR && (Rb-Ra) >= negNEAR);				Ra = lossy_end_of_run_d(Ra, Rb, run_int_type);			}			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 = lossy_regular_mode_d(cont, SIGN, Px);			}			sl[i] = Ra;			Rc = Rb;			Rb = Rd;			++i;		} while (i <= no);	} else	/***********************************************/	/* Do for all pixels in the row in 16-bit mode */	/***********************************************/	{		Rc = ENDIAN16(psl[0]);		Rb = ENDIAN16(psl[1]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av一区二区三区| 欧美一级一区二区| 美女一区二区视频| 国产精品久久看| 日韩欧美在线影院| 91免费观看在线| 美女视频第一区二区三区免费观看网站| 国产精品免费av| 久久久久久久一区| 欧美一级高清大全免费观看| 99精品视频在线播放观看| 九九久久精品视频| 天天影视涩香欲综合网| 亚洲日本丝袜连裤袜办公室| 久久久蜜桃精品| 日韩精品综合一本久道在线视频| 欧美午夜精品免费| 91在线播放网址| 成人av在线影院| 国产成人啪午夜精品网站男同| 美女视频一区二区| 蜜桃久久久久久久| 日本欧美一区二区在线观看| 亚洲大型综合色站| 一个色妞综合视频在线观看| 国产精品福利影院| 国产精品你懂的| 国产精品网站一区| 国产精品久久久久一区二区三区 | 欧美一区二区三区思思人| 91免费看视频| 91丨porny丨中文| 91在线精品一区二区| 丁香天五香天堂综合| 高清日韩电视剧大全免费| 国精产品一区一区三区mba视频| 日日夜夜免费精品视频| 亚洲国产wwwccc36天堂| 天天综合网天天综合色| 日韩av中文字幕一区二区| 日本少妇一区二区| 寂寞少妇一区二区三区| 韩国女主播成人在线| 精品一二三四在线| 国产精品夜夜嗨| 丰满岳乱妇一区二区三区| 成人91在线观看| 日本乱人伦aⅴ精品| 欧美人牲a欧美精品| 91精选在线观看| 欧美成人女星排名| 国产欧美中文在线| 国产精品久久久久永久免费观看| 亚洲日本在线a| 舔着乳尖日韩一区| 麻豆91在线观看| 国产成人精品免费一区二区| 99久久久精品| 欧美三级中文字幕在线观看| 337p亚洲精品色噜噜噜| 久久亚洲捆绑美女| 国产精品成人网| 亚洲妇熟xx妇色黄| 美腿丝袜亚洲色图| 国产91丝袜在线播放九色| 91麻豆swag| 91精品国产综合久久久久久漫画 | 国产91精品在线观看| 成人av午夜影院| 欧美日本免费一区二区三区| 日韩一区二区三区电影| 国产欧美日韩久久| 亚洲国产精品嫩草影院| 精品一区二区三区免费观看 | 91福利精品第一导航| 欧美一区日韩一区| 国产精品午夜久久| 天堂久久一区二区三区| 国产精品系列在线播放| 欧美性大战xxxxx久久久| 日韩一级黄色大片| 国产精品国产精品国产专区不蜜| 亚洲自拍与偷拍| 国产精品一区二区在线看| 欧美最猛黑人xxxxx猛交| 日韩你懂的电影在线观看| 国产精品国产自产拍在线| 日韩在线卡一卡二| 99久久国产综合精品色伊| 日韩一区二区三区电影在线观看 | 欧美三级日韩三级国产三级| 26uuu国产电影一区二区| 一区二区三区在线免费| 国产原创一区二区三区| 欧美性高清videossexo| 中文字幕第一区第二区| 人人爽香蕉精品| 色综合天天狠狠| 国产日韩欧美不卡| 日本欧美一区二区| 欧美色综合天天久久综合精品| 精品国产乱码久久久久久蜜臀 | av中文字幕不卡| 欧美不卡一区二区三区四区| 亚洲综合另类小说| 不卡av在线免费观看| 久久久久久久久97黄色工厂| 天天综合天天综合色| 色激情天天射综合网| 国产精品国产三级国产普通话99| 国产一区视频在线看| 欧美一级欧美一级在线播放| 一区二区三区免费网站| av在线一区二区三区| 欧美经典一区二区| 国产在线视频精品一区| 精品欧美黑人一区二区三区| 五月婷婷激情综合| 日本电影欧美片| 亚洲欧美日韩在线播放| 成人爱爱电影网址| 国产精品视频线看| 成人免费视频一区| 国产精品美女久久久久av爽李琼| 激情五月播播久久久精品| 欧美不卡视频一区| 狠狠色丁香婷婷综合| 久久久综合九色合综国产精品| 久久精品国产精品青草| 日韩一区二区在线观看视频| 日本欧美久久久久免费播放网| 91麻豆精品国产无毒不卡在线观看| 亚洲狠狠丁香婷婷综合久久久| 91麻豆6部合集magnet| 一区二区视频免费在线观看| 色伊人久久综合中文字幕| 亚洲欧美色综合| 欧美亚洲图片小说| 午夜av电影一区| 91精品婷婷国产综合久久| 人禽交欧美网站| 精品久久久久久久久久久院品网 | 成人黄色国产精品网站大全在线免费观看| 久久色.com| 国产91精品精华液一区二区三区| 国产午夜亚洲精品羞羞网站| 丁香亚洲综合激情啪啪综合| 国产精品福利影院| 欧美午夜电影在线播放| 婷婷久久综合九色国产成人| 日韩欧美中文字幕精品| 国产美女娇喘av呻吟久久| 欧美激情一区二区三区蜜桃视频| 成人精品在线视频观看| 亚洲精品成a人| 欧美精品久久99| 久草这里只有精品视频| 国产精品每日更新| 在线视频一区二区三| 强制捆绑调教一区二区| 亚洲精品一区二区三区福利| 成人黄色免费短视频| 亚洲成人av电影在线| 精品国产免费一区二区三区香蕉| 国产成人免费在线观看不卡| 亚洲欧美日韩在线| 欧美一区二区三区四区视频| 国产不卡视频在线观看| 亚洲电影中文字幕在线观看| 日韩午夜在线播放| 99v久久综合狠狠综合久久| 亚洲精品国久久99热| 欧美成人三级在线| 色综合久久综合网97色综合| 日本视频一区二区| 中文字幕一区二区三区在线不卡 | 一区二区三区欧美日韩| 91麻豆精品国产| 国产不卡一区视频| 婷婷开心久久网| 中文字幕中文字幕一区二区| 欧美另类变人与禽xxxxx| 国产精品一区二区三区网站| 一区二区三区在线视频免费 | 国产精品资源网站| 亚洲一区中文日韩| 欧美极品美女视频| 日韩无一区二区| 色先锋久久av资源部| 精品一区二区三区免费播放| 一区二区在线电影| 久久久久久久网| 欧美一区二区三区在线电影| www.久久精品| 狠狠色综合日日| 首页国产丝袜综合| 亚洲欧美国产三级| 中文字幕电影一区| 欧美精品一区二区三区蜜桃视频| 欧美三片在线视频观看|