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

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

?? wpacket.c

?? 好東西呢
?? C
字號:
/*********************

	the activity measure for deciding whether to transform a level
	is critical.  The ideal measure is of course actually packing	
	it (that's a hassle cuz you've got to correctly assign parents
	and whatnot).

	In particular, we need to take the 'quantizer' into account.

************************/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <crblib/inc.h>

#include <wtlib/subbands.h>
#include <wtlib/image.h>
#include <wtlib/coder.h>
#include <wtlib/quantim.h>

subband_node *new_subband_node();
subband_node *new_subband_node_foliated();
subband_leaf *new_subband_leaf();

void transLeafToQuadMaybe(subband ** sb_ptr,int levels,int trans)
{
subband_leaf *sbl;
subband *sb;
int oldact;

	sbl = (subband_leaf *) *sb_ptr;
	if ( sbl->width < 4 ) return;

	activitySubbands((subband *)sbl);
	oldact = sbl->activity;

	transQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,trans);

	activitySubbands((subband *)sbl);
	/**
	*	the details of the "activity" measurement are critical for this decision
	*	mse & rmse seem quite poor
	*	the percentage of nonzeros seems to be best
	***/
#if 0
	if ( sbl->activity <= oldact ) {
		// on images where WP helps, this helps more, but on images
		//	where it hurts, this hurts even more
#else
	if ( sbl->activity <  oldact ) {
#endif
		// buono

		sb = makeSubbandQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,sbl->prev);
	
		free(sbl);

		*sb_ptr = sb;

		if ( levels ) {
			transLeafToQuadMaybe(&(sb->LL),levels-1,trans);
			transLeafToQuadMaybe(&(sb->LH),levels-1,trans);
			transLeafToQuadMaybe(&(sb->HL),levels-1,trans);
			transLeafToQuadMaybe(&(sb->HH),levels-1,trans);
		}
	} else {
		// undo it
		transQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,1,trans);
	}
}

subband * transLeafToQuad(subband_leaf *sbl,int levels,bool doWP,int trans)
{
subband *sb;

	transQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,trans);

	sb = makeSubbandQuad(sbl->band,sbl->width,sbl->height,sbl->width+sbl->rowpad,0,sbl->prev);
	
	free(sbl);

	if ( levels ) {
		sb->LL = transLeafToQuad((subband_leaf *)sb->LL,levels-1,doWP,trans);
		if ( doWP && levels > 1 ) {
			/** makes sure that wavelet packets have proper parents **/
			transLeafToQuadMaybe(&(sb->LH),levels-2,trans);
			transLeafToQuadMaybe(&(sb->HL),levels-2,trans);
			transLeafToQuadMaybe(&(sb->HH),levels-2,trans);
		}
	}

return sb;
}

void detransSubbands(subband *sb,int trans)
{
	if ( !sb || sb->leaf ) return;
	detransSubbands(sb->LL,trans);
	detransSubbands(sb->LH,trans);
	detransSubbands(sb->HL,trans);
	detransSubbands(sb->HH,trans);
	if ( sb->width ) {
		int w,h,fw;
		w = sb->width; fw = sb->width + sb->rowpad;
		h = sb->height;
		while( ! sb->leaf ) sb = sb->LL;
		
		transQuad(((subband_leaf *)sb)->band,w,h,fw,1,trans);
	}
}

subband * transPlaneSubbands(image *im,int plane,int levels,bool doWP,int trans)
{
subband_leaf * sbl;
	sbl = new_subband_leaf();
	sbl->band = im->data[plane][0];
	sbl->width = im->width;
	sbl->height= im->height;
	sbl->rowpad = 0;
	if ( levels )
		return transLeafToQuad(sbl,levels-1,doWP,trans);
	else
		return (subband *)sbl;
}


subband * transImageSubbands(image *im,int levels,bool doWP,int trans)
{
	if ( im->planes <= 1 ) return transPlaneSubbands(im,0,levels,doWP,trans);
	else {
		subband_node * sb;
		sb = new_subband_node();
		if ( im->planes >= 1 ) sb->LL = transPlaneSubbands(im,0,levels,doWP,trans);
		if ( im->planes >= 2 ) sb->LH = transPlaneSubbands(im,1,levels,doWP,trans);
		if ( im->planes >= 3 ) sb->HL = transPlaneSubbands(im,2,levels,doWP,trans);
		if ( im->planes >= 4 ) sb->HH = transPlaneSubbands(im,3,levels,doWP,trans);
		if ( im->planes >= 5 ) errexit("too many planes for my cheezy ass");
		return sb;
	}
}

wavelet * makeSubband(image *im,int levels,double q,
	int stoplen,const coder *coder_template,
	bool doWP,int transformN)
{
wavelet * w;

	if ( (w = newWavelet(im,levels)) == NULL )
		return NULL;

	w->stoplen = stoplen;
	w->coder_template = coder_template;
	w->transform = transformN;

	w->qi = findQuantizers(0,0,q, NULL,levels,0,NULL);

	w->subband_root = transImageSubbands(im,levels,doWP,transformN);

	transposeSubbandLHs(w->subband_root);

	if ( q != 1.0 ) quantizeImage(im,levels,w->qi);

	activitySubbands(w->subband_root);

return w;
}


void unSubband(wavelet * w)
{

	if ( w->qi && w->qi->nquants > 0 ) dequantizeImage(w->im,w->levels,w->qi);

	transposeSubbandLHs(w->subband_root);

	detransSubbands(w->subband_root,w->transform);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人在线直播| 青娱乐精品在线视频| 波多野结衣中文字幕一区| 亚洲精品在线电影| 精品一区精品二区高清| 免费人成网站在线观看欧美高清| 久久精品亚洲乱码伦伦中文| 一区二区在线观看av| 在线观看日产精品| 亚洲一区二区高清| 日韩一区二区在线观看| 激情综合色综合久久| 中文字幕国产一区| 精品1区2区3区| 国产乱色国产精品免费视频| 亚洲欧美日韩在线| 日韩免费福利电影在线观看| 99re在线精品| 久久精工是国产品牌吗| 亚洲一区二区综合| 久久久亚洲国产美女国产盗摄 | 色综合久久六月婷婷中文字幕| 美女看a上一区| 一区二区三区成人| 亚洲国产成人私人影院tom| 欧美少妇一区二区| 国产69精品久久99不卡| 奇米影视一区二区三区| 亚洲人成在线观看一区二区| 久久精品人人做| 欧美一区二区三区成人| 欧美精品国产精品| 91国模大尺度私拍在线视频| 国产成人午夜99999| 最新成人av在线| 国产日韩成人精品| 欧美视频自拍偷拍| 国产精品 日产精品 欧美精品| 日韩av一区二区三区四区| 亚洲精品高清在线| 亚洲色图在线看| 亚洲一区二区三区视频在线 | 色综合久久久久久久久| 成人白浆超碰人人人人| 色拍拍在线精品视频8848| 91国产福利在线| 91精品国产乱码| 国产精品三级视频| 午夜电影网一区| 国产一区二区三区在线观看免费| 国产成人丝袜美腿| 91精品办公室少妇高潮对白| 欧美日韩另类国产亚洲欧美一级| 91精品欧美福利在线观看| 国产欧美一区二区精品忘忧草| 国产精品美女视频| 蜜臀av性久久久久蜜臀aⅴ| 成人一级片网址| 欧美日产在线观看| 国产精品久久久久久久久免费桃花| 亚洲综合清纯丝袜自拍| 久久99精品久久久久久久久久久久 | 国产精品视频观看| 亚洲黄色av一区| 成人v精品蜜桃久久一区| 欧美日韩在线播放一区| 日韩毛片一二三区| 国产一区二区三区视频在线播放| 国产精品 欧美精品| 欧美无乱码久久久免费午夜一区 | 欧美亚洲精品一区| 亚洲麻豆国产自偷在线| 国产福利不卡视频| 精品久久久久久最新网址| 蜜桃视频免费观看一区| 在线播放欧美女士性生活| 亚洲欧美日韩电影| 色婷婷综合在线| 国产精品久久99| 99精品偷自拍| 中文av字幕一区| 裸体一区二区三区| 色国产综合视频| 亚洲女爱视频在线| 欧美亚洲综合一区| 精品日韩在线观看| 蜜桃传媒麻豆第一区在线观看| 色www精品视频在线观看| 欧美成人乱码一区二区三区| 久久麻豆一区二区| 婷婷中文字幕一区三区| 色视频成人在线观看免| 亚洲尤物视频在线| 在线精品视频小说1| 有码一区二区三区| 日韩一区二区在线看| 黄一区二区三区| 欧美激情在线观看视频免费| 91亚洲资源网| 亚洲激情av在线| 日韩欧美一区二区免费| 一区二区三区四区精品在线视频| 欧美在线看片a免费观看| 三级久久三级久久久| 亚洲精品在线三区| 91美女精品福利| 亚洲国产综合在线| 亚洲精品在线观看视频| 91在线观看成人| 久久99热国产| 亚洲少妇30p| 欧美成人r级一区二区三区| 成人福利电影精品一区二区在线观看| 亚洲高清视频中文字幕| 欧美激情综合在线| 在线观看免费一区| 国产.精品.日韩.另类.中文.在线.播放| 欧美xxx久久| 99精品欧美一区二区三区小说| 午夜电影网一区| 国产日产欧产精品推荐色| 在线成人免费观看| av成人免费在线观看| 一区二区成人在线| 1区2区3区国产精品| 国产精品水嫩水嫩| 久久精品在这里| 2023国产精品| 日本vs亚洲vs韩国一区三区二区 | 青青草97国产精品免费观看| 精品免费99久久| 久久影院视频免费| 国产色产综合产在线视频| 久久久国产精品不卡| 中文字幕免费在线观看视频一区| 26uuu亚洲综合色欧美| 国产精品看片你懂得| 亚洲日韩欧美一区二区在线| 亚洲视频一区二区在线观看| 亚洲精品久久7777| 石原莉奈在线亚洲三区| 国产在线播精品第三| 91黄视频在线| 国产偷国产偷亚洲高清人白洁| 欧美美女激情18p| 国产亚洲成aⅴ人片在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 久久久久久久久岛国免费| 国产精品久久久久久久久晋中| 亚洲激情欧美激情| 国产露脸91国语对白| 在线观看日韩高清av| 国产欧美日韩不卡免费| 性做久久久久久| 成人精品视频一区| 日本大香伊一区二区三区| 欧美一激情一区二区三区| 欧美精品第一页| 国产精品成人免费精品自在线观看 | 欧美日韩国产综合视频在线观看 | 亚洲精品伦理在线| 亚洲电影第三页| 成人高清视频在线观看| 欧美激情一区三区| 精品一区二区三区免费观看| 成人在线视频一区| 久久精品在线观看| 亚洲不卡一区二区三区| 色综合久久久久综合体桃花网| 这里只有精品电影| 日韩国产一二三区| 欧美精品免费视频| 五月天国产精品| 日韩一区二区三区视频在线观看| 午夜日韩在线电影| 欧美日韩国产一区二区三区地区| 一区二区三区在线观看国产| 色综合欧美在线视频区| 亚洲电影中文字幕在线观看| 欧美剧情片在线观看| 蜜乳av一区二区三区| 久久综合九色综合欧美98| 成人免费视频一区| 亚洲精品午夜久久久| 色婷婷精品大视频在线蜜桃视频 | 久久精品国内一区二区三区| 成人教育av在线| 亚洲另类春色校园小说| 欧美日韩1区2区| 国产传媒欧美日韩成人| 中文字幕在线观看不卡视频| 欧美日韩视频在线第一区| 日韩成人免费看| 一区二区中文视频| 日韩视频在线你懂得| 一本色道**综合亚洲精品蜜桃冫| 久久er99热精品一区二区| 亚洲免费三区一区二区| 欧美大片国产精品| 日本韩国欧美在线|