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

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

?? jas_cm.c

?? JPEG2000是以小波變換為基礎
?? C
?? 第 1 頁 / 共 3 頁
字號:
			goto error;		if (altoutpxformseq) {			if (jas_cmpxformseq_append(xform->pxformseq, outpxformseq) ||			  jas_cmpxformseq_append(xform->pxformseq, altoutpxformseq))				goto error;		} else {			if (jas_cmpxformseq_append(xform->pxformseq, outpxformseq))				goto error;		}		if (jas_cmpxformseq_appendcnvt(xform->pxformseq,		  outprof->refclrspc, inprof->refclrspc) ||		  jas_cmpxformseq_append(xform->pxformseq, prfpxformseq))			goto error;		xform->numinchans = jas_clrspc_numchans(inprof->clrspc);		xform->numoutchans = jas_clrspc_numchans(prfprof->clrspc);		break;	case JAS_CMXFORM_OP_GAMUT:		inpxformseq = fwdpxformseq(inprof, intent);		outpxformseq = gampxformseq(outprof);		if (!inpxformseq || !outpxformseq)			goto error;		if (jas_cmpxformseq_append(xform->pxformseq, inpxformseq) ||		  jas_cmpxformseq_appendcnvt(xform->pxformseq,		  inprof->refclrspc, outprof->refclrspc) ||		  jas_cmpxformseq_append(xform->pxformseq, outpxformseq))			goto error;		xform->numinchans = jas_clrspc_numchans(inprof->clrspc);		xform->numoutchans = 1;		break;	}	return xform;error:	return 0;}#define	APPLYBUFSIZ	2048int jas_cmxform_apply(jas_cmxform_t *xform, jas_cmpixmap_t *in, jas_cmpixmap_t *out){	jas_cmcmptfmt_t *fmt;	jas_cmreal_t buf[2][APPLYBUFSIZ];	jas_cmpxformseq_t *pxformseq;	int i;	int j;	int width;	int height;	int total;	int n;	jas_cmreal_t *inbuf;	jas_cmreal_t *outbuf;	jas_cmpxform_t *pxform;	long *dataptr;	int maxchans;	int bufmax;	int m;	int bias;	jas_cmreal_t scale;	long v;	jas_cmreal_t *bufptr;	if (xform->numinchans > in->numcmpts || xform->numoutchans > out->numcmpts)		goto error;	fmt = &in->cmptfmts[0];	width = fmt->width;	height = fmt->height;	for (i = 1; i < xform->numinchans; ++i) {		fmt = &in->cmptfmts[i];		if (fmt->width != width || fmt->height != height) {			goto error;		}	}	for (i = 0; i < xform->numoutchans; ++i) {		fmt = &out->cmptfmts[i];		if (fmt->width != width || fmt->height != height) {			goto error;		}	}	maxchans = 0;	pxformseq = xform->pxformseq;	for (i = 0; i < pxformseq->numpxforms; ++i) {		pxform = pxformseq->pxforms[i];		if (pxform->numinchans > maxchans) {			maxchans = pxform->numinchans;		}		if (pxform->numoutchans > maxchans) {			maxchans = pxform->numoutchans;		}	}	bufmax = APPLYBUFSIZ / maxchans;	assert(bufmax > 0);	total = width * height;	n = 0;	while (n < total) {		inbuf = &buf[0][0];		m = JAS_MIN(total - n, bufmax);		for (i = 0; i < xform->numinchans; ++i) {			fmt = &in->cmptfmts[i];			scale = (double)((1 << fmt->prec) - 1);			bias = fmt->sgnd ? (1 << (fmt->prec - 1)) : 0;			dataptr = &fmt->buf[n];			bufptr = &inbuf[i];			for (j = 0; j < m; ++j) {				if (jas_cmgetint(&dataptr, fmt->sgnd, fmt->prec, &v))					goto error;				*bufptr = (v - bias) / scale;				bufptr += xform->numinchans;			}		}		inbuf = &buf[0][0];		outbuf = inbuf;		for (i = 0; i < pxformseq->numpxforms; ++i) {			pxform = pxformseq->pxforms[i];			if (pxform->numoutchans > pxform->numinchans) {				outbuf = (inbuf == &buf[0][0]) ? &buf[1][0] : &buf[0][0];			} else {				outbuf = inbuf;			}			if ((*pxform->ops->apply)(pxform, inbuf, outbuf, m))				goto error;			inbuf = outbuf;		}		for (i = 0; i < xform->numoutchans; ++i) {			fmt = &out->cmptfmts[i];			scale = (double)((1 << fmt->prec) - 1);			bias = fmt->sgnd ? (1 << (fmt->prec - 1)) : 0;			bufptr = &outbuf[i];			dataptr = &fmt->buf[n];			for (j = 0; j < m; ++j) {				v = (*bufptr) * scale + bias;				bufptr += xform->numoutchans;				if (jas_cmputint(&dataptr, fmt->sgnd, fmt->prec, v))					goto error;			}		}			n += m;	}		return 0;error:	return -1;}void jas_cmxform_destroy(jas_cmxform_t *xform){	if (xform->pxformseq)		jas_cmpxformseq_destroy(xform->pxformseq);	jas_free(xform);}/******************************************************************************\* Primitive transform sequence class.\******************************************************************************/static jas_cmpxformseq_t *jas_cmpxformseq_create(){	jas_cmpxformseq_t *pxformseq;	pxformseq = 0;	if (!(pxformseq = jas_malloc(sizeof(jas_cmpxformseq_t))))		goto error;	pxformseq->pxforms = 0;	pxformseq->numpxforms = 0;	pxformseq->maxpxforms = 0;	if (jas_cmpxformseq_resize(pxformseq, 16))		goto error;	return pxformseq;error:	if (pxformseq)		jas_cmpxformseq_destroy(pxformseq);	return 0;}static jas_cmpxformseq_t *jas_cmpxformseq_copy(jas_cmpxformseq_t *pxformseq){	jas_cmpxformseq_t *newpxformseq;	if (!(newpxformseq = jas_cmpxformseq_create()))		goto error;	if (jas_cmpxformseq_append(newpxformseq, pxformseq))		goto error;	return newpxformseq;error:	return 0;}static void jas_cmpxformseq_destroy(jas_cmpxformseq_t *pxformseq){	while (pxformseq->numpxforms > 0)		jas_cmpxformseq_delete(pxformseq, pxformseq->numpxforms - 1);	if (pxformseq->pxforms)		jas_free(pxformseq->pxforms);	jas_free(pxformseq);}static int jas_cmpxformseq_delete(jas_cmpxformseq_t *pxformseq, int i){	assert(i >= 0 && i < pxformseq->numpxforms);	if (i != pxformseq->numpxforms - 1)		abort();	jas_cmpxform_destroy(pxformseq->pxforms[i]);	pxformseq->pxforms[i] = 0;	--pxformseq->numpxforms;	return 0;}static int jas_cmpxformseq_appendcnvt(jas_cmpxformseq_t *pxformseq,  int dstclrspc, int srcclrspc){	if (dstclrspc == srcclrspc)		return 0;	abort();	/* Avoid compiler warnings about unused parameters. */	pxformseq = 0;	return -1;}static int jas_cmpxformseq_insertpxform(jas_cmpxformseq_t *pxformseq,  int i, jas_cmpxform_t *pxform){	jas_cmpxform_t *tmppxform;	int n;	if (i < 0)		i = pxformseq->numpxforms;	assert(i >= 0 && i <= pxformseq->numpxforms);	if (pxformseq->numpxforms >= pxformseq->maxpxforms) {		if (jas_cmpxformseq_resize(pxformseq, pxformseq->numpxforms +		  16))			goto error;	}	assert(pxformseq->numpxforms < pxformseq->maxpxforms);	if (!(tmppxform = jas_cmpxform_copy(pxform)))		goto error;	n = pxformseq->numpxforms - i;	if (n > 0) {		memmove(&pxformseq->pxforms[i + 1], &pxformseq->pxforms[i],		  n * sizeof(jas_cmpxform_t *));	}	pxformseq->pxforms[i] = tmppxform;	++pxformseq->numpxforms;	return 0;error:	return -1;}static int jas_cmpxformseq_append(jas_cmpxformseq_t *pxformseq,  jas_cmpxformseq_t *othpxformseq){	int n;	int i;	jas_cmpxform_t *pxform;	jas_cmpxform_t *othpxform;	n = pxformseq->numpxforms + othpxformseq->numpxforms;	if (n > pxformseq->maxpxforms) {		if (jas_cmpxformseq_resize(pxformseq, n))			goto error;	}	for (i = 0; i < othpxformseq->numpxforms; ++i) {		othpxform = othpxformseq->pxforms[i];		if (!(pxform = jas_cmpxform_copy(othpxform)))			goto error;		pxformseq->pxforms[pxformseq->numpxforms] = pxform;		++pxformseq->numpxforms;	}	return 0;error:	return -1;}static int jas_cmpxformseq_resize(jas_cmpxformseq_t *pxformseq, int n){	jas_cmpxform_t **p;	assert(n >= pxformseq->numpxforms);	p = (!pxformseq->pxforms) ? jas_malloc(n * sizeof(jas_cmpxform_t *)) :	  jas_realloc(pxformseq->pxforms, n * sizeof(jas_cmpxform_t *));	if (!p) {		return -1;	}	pxformseq->pxforms = p;	pxformseq->maxpxforms = n;	return 0;}/******************************************************************************\* Primitive transform class.\******************************************************************************/static jas_cmpxform_t *jas_cmpxform_create0(){	jas_cmpxform_t *pxform;	if (!(pxform = jas_malloc(sizeof(jas_cmpxform_t))))		return 0;	memset(pxform, 0, sizeof(jas_cmpxform_t));	pxform->refcnt = 0;	pxform->ops = 0;	return pxform;}static void jas_cmpxform_destroy(jas_cmpxform_t *pxform){	if (--pxform->refcnt <= 0) {		(*pxform->ops->destroy)(pxform);		jas_free(pxform);	}}static jas_cmpxform_t *jas_cmpxform_copy(jas_cmpxform_t *pxform){	++pxform->refcnt;	return pxform;}/******************************************************************************\* Shaper matrix class.\******************************************************************************/static jas_cmpxform_t *jas_cmpxform_createshapmat(){	int i;	int j;	jas_cmpxform_t *pxform;	jas_cmshapmat_t *shapmat;	if (!(pxform = jas_cmpxform_create0()))		return 0;	pxform->ops = &shapmat_ops;	shapmat = &pxform->data.shapmat;	shapmat->mono = 0;	shapmat->order = 0;	shapmat->useluts = 0;	shapmat->usemat = 0;	for (i = 0; i < 3; ++i)		jas_cmshapmatlut_init(&shapmat->luts[i]);	for (i = 0; i < 3; ++i) {		for (j = 0; j < 4; ++j)			shapmat->mat[i][j] = 0.0;	}	++pxform->refcnt;	return pxform;}static void jas_cmshapmat_destroy(jas_cmpxform_t *pxform){	jas_cmshapmat_t *shapmat = &pxform->data.shapmat;	int i;	for (i = 0; i < 3; ++i)		jas_cmshapmatlut_cleanup(&shapmat->luts[i]);}static int jas_cmshapmat_apply(jas_cmpxform_t *pxform, jas_cmreal_t *in,  jas_cmreal_t *out, int cnt){	jas_cmshapmat_t *shapmat = &pxform->data.shapmat;	jas_cmreal_t *src;	jas_cmreal_t *dst;	jas_cmreal_t a0;	jas_cmreal_t a1;	jas_cmreal_t a2;	jas_cmreal_t b0;	jas_cmreal_t b1;	jas_cmreal_t b2;	src = in;	dst = out;	if (!shapmat->mono) {		while (--cnt >= 0) {			a0 = *src++;			a1 = *src++;			a2 = *src++;			if (!shapmat->order && shapmat->useluts) {				a0 = jas_cmshapmatlut_lookup(&shapmat->luts[0], a0);				a1 = jas_cmshapmatlut_lookup(&shapmat->luts[1], a1);				a2 = jas_cmshapmatlut_lookup(&shapmat->luts[2], a2);			}			if (shapmat->usemat) {				b0 = shapmat->mat[0][0] * a0				  + shapmat->mat[0][1] * a1				  + shapmat->mat[0][2] * a2				  + shapmat->mat[0][3];				b1 = shapmat->mat[1][0] * a0				  + shapmat->mat[1][1] * a1				  + shapmat->mat[1][2] * a2				  + shapmat->mat[1][3];				b2 = shapmat->mat[2][0] * a0				  + shapmat->mat[2][1] * a1				  + shapmat->mat[2][2] * a2				  + shapmat->mat[2][3];				a0 = b0;				a1 = b1;				a2 = b2;			}			if (shapmat->order && shapmat->useluts) {				a0 = jas_cmshapmatlut_lookup(&shapmat->luts[0], a0);				a1 = jas_cmshapmatlut_lookup(&shapmat->luts[1], a1);				a2 = jas_cmshapmatlut_lookup(&shapmat->luts[2], a2);			}			*dst++ = a0;			*dst++ = a1;			*dst++ = a2;		}	} else {		if (!shapmat->order) {			while (--cnt >= 0) {				a0 = *src++;				if (shapmat->useluts)					a0 = jas_cmshapmatlut_lookup(&shapmat->luts[0], a0);				a2 = a0 * shapmat->mat[2][0];				a1 = a0 * shapmat->mat[1][0];				a0 = a0 * shapmat->mat[0][0];				*dst++ = a0;				*dst++ = a1;				*dst++ = a2;			}		} else {assert(0);			while (--cnt >= 0) {				a0 = *src++;				src++;				src++;				a0 = a0 * shapmat->mat[0][0];				if (shapmat->useluts)					a0 = jas_cmshapmatlut_lookup(&shapmat->luts[0], a0);				*dst++ = a0;			}		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道久久综合亚洲91| 成人18精品视频| 丁香婷婷综合色啪| 色又黄又爽网站www久久| 欧美无砖砖区免费| 精品国免费一区二区三区| 国产精品第五页| 日韩激情av在线| av日韩在线网站| 91精品蜜臀在线一区尤物| 精品少妇一区二区三区免费观看| 中文字幕日韩欧美一区二区三区| 亚洲成人精品一区| 国产精品一二三四五| 56国语精品自产拍在线观看| 国产精品欧美综合在线| 国产呦萝稀缺另类资源| 欧美综合在线视频| 在线影视一区二区三区| 色婷婷亚洲精品| 亚洲精品大片www| 欧美区一区二区三区| 美女视频网站久久| 中文字幕欧美日韩一区| 91一区二区三区在线播放| 欧美一区二区三区视频在线观看 | 粉嫩绯色av一区二区在线观看 | 91影视在线播放| 中文字幕欧美三区| 岛国精品在线观看| 欧美韩国日本一区| www.一区二区| 亚洲乱码国产乱码精品精小说| 东方欧美亚洲色图在线| 国产精品久久久久影院色老大 | 99精品久久99久久久久| 亚洲男同1069视频| 在线观看一区不卡| 久久久久久久久久久久久夜| 麻豆国产欧美日韩综合精品二区| 日韩欧美在线123| 国产一级精品在线| 国产精品国产精品国产专区不蜜 | 欧美老人xxxx18| 日韩一区精品字幕| 久久精品人人爽人人爽| 狠狠色丁香九九婷婷综合五月| 欧美一级欧美三级在线观看| 激情文学综合网| 亚洲精品亚洲人成人网| 7777精品伊人久久久大香线蕉完整版 | 粉嫩高潮美女一区二区三区| 亚洲精品一二三| 久久综合狠狠综合| 欧美精品成人一区二区三区四区| 成人黄色电影在线 | av亚洲精华国产精华精| 国产一区啦啦啦在线观看| 日本亚洲最大的色成网站www| 欧美一区二区成人| 91亚洲精华国产精华精华液| 久久成人麻豆午夜电影| 一区二区三区在线视频观看58 | 久久电影网站中文字幕| 一区二区三区精品| 国产精品视频第一区| 在线不卡免费av| 欧美最猛性xxxxx直播| 91小宝寻花一区二区三区| 粉嫩av一区二区三区| 国产在线精品免费| 精品一区二区三区在线视频| 亚洲一区二区三区在线| 欧美高清在线一区二区| 精品国产凹凸成av人网站| 欧美一卡2卡3卡4卡| 777xxx欧美| 日韩精品影音先锋| 精品国产制服丝袜高跟| 久久综合久久综合久久| 精品国产乱码久久久久久浪潮| 欧美区在线观看| 日韩一区二区麻豆国产| www国产精品av| 国产精品久久久久影院| 亚洲欧美日韩国产一区二区三区| 亚洲精品午夜久久久| 亚洲国产日韩一区二区| 日韩精品一二三区| 久久99久久精品欧美| 国产99久久精品| 欧美亚洲一区二区在线| 欧美久久久久免费| 欧美极品aⅴ影院| 亚洲美女电影在线| 麻豆成人久久精品二区三区小说| 久久国产尿小便嘘嘘| 91免费国产在线| 日韩一区二区三区三四区视频在线观看| 久久综合国产精品| 亚洲电影第三页| 国产一区二区三区免费看| 99精品欧美一区二区蜜桃免费 | 国产成a人亚洲精品| 欧美日韩在线电影| 欧美极品xxx| 国产一二精品视频| 日韩一区二区中文字幕| 亚洲精品欧美激情| 成人激情图片网| 欧美经典三级视频一区二区三区| 视频一区在线播放| 成人美女视频在线看| 欧美一区二区三区在线电影| 国产精品进线69影院| 日韩av一区二| 在线不卡的av| 青青草原综合久久大伊人精品| av电影在线观看一区| 国产欧美日韩综合| 国产成人在线网站| 久久久www成人免费毛片麻豆| 国产毛片精品国产一区二区三区| 久久久噜噜噜久久人人看| 精品一区二区久久| 久久精品一区二区三区不卡牛牛| 懂色中文一区二区在线播放| 国产精品美女久久久久高潮| 粉嫩aⅴ一区二区三区四区| 国产日产欧美一区二区视频| 国产乱人伦偷精品视频免下载 | 日韩成人av影视| 日韩一区二区三区在线观看| 久久电影网站中文字幕| 欧美韩日一区二区三区| 91蜜桃免费观看视频| 婷婷成人综合网| 久久精品亚洲国产奇米99 | 欧美一区二区三区人| 精品在线观看视频| 国产精品欧美精品| 欧美在线看片a免费观看| 奇米一区二区三区| 中文字幕 久热精品 视频在线 | 亚洲成人一区在线| 日韩写真欧美这视频| 成人18精品视频| 奇米色一区二区三区四区| 中文字幕av一区二区三区免费看 | 蜜臀av一级做a爰片久久| 中文av一区二区| 欧美一区二区网站| 91免费看片在线观看| 国产美女精品一区二区三区| 五月天亚洲婷婷| 一区二区三区高清在线| 久久久激情视频| 欧美mv日韩mv亚洲| 欧美日韩免费电影| 成人黄色777网| 免费观看30秒视频久久| 舔着乳尖日韩一区| 一区二区三区在线观看网站| 久久久久久久久久看片| ww亚洲ww在线观看国产| 欧美一级一区二区| 在线综合视频播放| 欧美久久久久久久久久| 欧美高清视频在线高清观看mv色露露十八| 91首页免费视频| 99久久夜色精品国产网站| 国产一区二区三区在线观看免费 | 国产suv精品一区二区三区| 激情欧美一区二区三区在线观看| 亚洲国产你懂的| 亚洲人成网站影音先锋播放| 亚洲色图一区二区三区| 亚洲精品乱码久久久久久久久 | 国产区在线观看成人精品| 久久久久青草大香线综合精品| 亚洲三级电影全部在线观看高清| 久久久精品免费观看| 亚洲同性同志一二三专区| 国产精品国产三级国产普通话三级 | 日韩中文欧美在线| 韩国精品主播一区二区在线观看| 国产大片一区二区| 一本一道久久a久久精品| 欧美片网站yy| 久久精品一区二区三区av| 亚洲免费视频成人| 韩国女主播成人在线| 在线免费观看视频一区| 欧美一区二区三区视频免费播放 | 欧美日韩mp4| 亚洲欧美日韩国产中文在线| 精品一区二区三区免费| 在线看一区二区| 国产精品每日更新在线播放网址| 一区二区在线看|