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

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

?? dwt.c

?? 小波變換算法
?? C
字號:
/*********************

  I. 9 multiplies for each pel, for each level
		this could be reduced by going explicility two-dimensional
		(since you can merge multiplies) but that's a real hassle
	9 * (10 cycles) * (256 * 256 dimensions) * log2(4 levels) = 10 mill = 0.06 sec , is half the time

 II. unnecessary mem-copies :
		A. transposing
		B. copy in from ints to doubles
		C. copy to temp-work space x_alloc for each line

III. speeds : time to do 256x256x1 , levels=4
		dwt: 0.15 sec
		dct: 0.10 sec
		spt: 0.05 sec
		haar:0.025 sec

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

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

#define WT_ROUND_IN		0
#define WT_ROUND_OUT	0.5

#define F_EXTPAD 4
#define D_EXTPAD 2

static double *x_alloc = NULL;	//** temp work

void forwardDWT(double *x_in, int N)
{
int i, n, half;
double *x,*r,*d;

	x = x_alloc + F_EXTPAD;
	memcpy(x,x_in,sizeof(double)*N);
	for(i=1;i<=F_EXTPAD;i++) {
		x[-i] = x[i];
		x[(N-1) + i] = x[(N-1) - i];
	}

	half = N>>1;  

	r = x_in; d = x_in + half;
	for (n=half;n--;) {

		*r++ = 0.0378285 * (x[ 4] + x[-4]) - 0.0238495 * (x[ 3] + x[-3]) - 0.110624 * (x[ 2] + x[-2]) + 
					0.377403 * (x[ 1] + x[-1]) + 0.852699 * x[0];

		x++;

		*d++ =  - 0.064539 * (x[ 3] + x[-3]) + 0.040689 * (x[ 2] + x[-2]) + 
				0.418092 * (x[ 1] + x[-1]) - 0.788486 * x[ 0] ;

		x++;
    }
}

void inverseDWT(double *x, int N)
{
int i, n, half;
double *r, *d;

	half = N/2;

	r = x_alloc + D_EXTPAD;  
	d = x_alloc + D_EXTPAD + half+D_EXTPAD+D_EXTPAD;  
	memcpy(r,x,half*sizeof(double));
	memcpy(d,x+half,half*sizeof(double));

	for(i=1;i<=D_EXTPAD;i++) {
		r[-i] = r[i];
		r[(half-1)+i] = r[half - i];
		d[-i] = d[i-1];
		d[(half-1)+i] = d[(half-1) - i];
	}
 
	for (n = half; n--;) {

		*x++ = 0.788486 * r[0] - 0.0406894 * ( r[1] + r[-1] )
		     - 0.023849 * (d[1] + d[-2]) + 0.377403 * (d[0] + d[-1]);

		*x++ = 0.418092 * (r[1] + r[0]) - 0.0645389 * (r[2] + r[-1])
		     - 0.037829 * (d[2] + d[-2]) + 0.110624 * (d[1] + d[-1]) - 0.852699 * d[0];

		d++; r++;
	}
}

void waveletTransform2D(int **raw,double **wave, int width, int height, int levels,bool inverse)
{
int x, y, w, yw, h, l;
int *raw_ptr;
double *buffer,*wave_ptr;

    /* Check the dimensions for compatability. */

    if (width%(1 << levels) || height%(1 << levels)) {
		errputs("width and height must be divisible by 2^levels");
		exit(10);
	}

	if ( (x_alloc = malloc(sizeof(double)*(width+height+F_EXTPAD+F_EXTPAD))) == NULL )  {
		errputs("malloc failed"); exit(10);
	}
  
    /* Allocate a work array (for transposing columns) */
    
   	if ( (buffer = newarray(double,height)) == NULL ) {
		errputs("malloc failed"); exit(10);
	}

    /* Compute the wavelet transform. */
  
	if ( !inverse ) { /* forward transform. */

		/** raw -> wave **/

		wave_ptr = wave[0]; raw_ptr = raw[0];
		for(x=width*height;x--;) *wave_ptr++ = (double)(*raw_ptr++) + WT_ROUND_IN;
		
		for (l = 0; l < levels; l++) {
			w = width >> l;
			h = height >> l;
      
			/* Rows. */
	
			for (y = 0; y < h; y++)
				forwardDWT(wave[y], w);
    
			/* Columns. */
	
			wave_ptr = wave[0];
			for (x = 0; x < w; x++) {
				for (y = 0,yw=0; y < h; y++,yw+=width) buffer[y] = wave_ptr[yw];
				forwardDWT(buffer, h);
				for (y = 0,yw=0; y < h; y++,yw+=width) wave_ptr[yw] = buffer[y];
				wave_ptr ++;
			}
		}

    } else {

		for (l = levels-1; l >= 0; l--) {
			w = width >> l;
			h = height >> l;

			/* Columns. */
	
			wave_ptr = wave[0];
			for (x = 0; x < w; x++) {
				for (y = 0,yw=0; y < h; y++,yw+=width) buffer[y] = wave_ptr[yw];
				inverseDWT(buffer, h);
				for (y = 0,yw=0; y < h; y++,yw+=width) wave_ptr[yw] = buffer[y];
				wave_ptr ++;
			}

			/* Rows. */
	
			for (y = 0; y < h; y++)
				inverseDWT(wave[y], w);
    	}

		wave_ptr = wave[0];
		raw_ptr = raw[0];
		for(x=width*height;x--;)
			*raw_ptr++ = (int) ( (*wave_ptr++)  + WT_ROUND_OUT );
	}

	free(x_alloc); x_alloc = NULL;
	free(buffer);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一级二级| 日韩精彩视频在线观看| 亚洲嫩草精品久久| 麻豆国产一区二区| 欧美午夜精品一区二区蜜桃| 国产欧美一区二区精品仙草咪| 日韩成人一级大片| 在线观看av不卡| 国产精品视频一二三区| 久久99久久精品欧美| 欧美精品欧美精品系列| 亚洲精品视频在线| 成人国产精品免费网站| 国产日韩欧美精品综合| 国产一区二区视频在线| 欧美成人乱码一区二区三区| 美女尤物国产一区| 7777精品伊人久久久大香线蕉完整版 | 91视视频在线观看入口直接观看www | 欧美丝袜丝nylons| 日韩美女啊v在线免费观看| 国产一区二区三区久久久| 欧美一二三四在线| 欧美aⅴ一区二区三区视频| 在线播放一区二区三区| 亚洲午夜精品网| 在线精品视频一区二区| 一区二区三区在线视频免费| 91精品福利视频| 亚洲久本草在线中文字幕| 91亚洲男人天堂| 一区二区三区四区激情| 日本高清免费不卡视频| 亚洲一区二区三区四区五区黄| 日本二三区不卡| 香蕉成人伊视频在线观看| 777久久久精品| 卡一卡二国产精品| 久久久久久久久久久久久夜| 欧美日产在线观看| 日日夜夜精品免费视频| 日韩精品中文字幕一区二区三区| 激情成人综合网| 亚洲国产成人私人影院tom| 99热这里都是精品| 亚洲亚洲精品在线观看| 日韩精品一区二区三区视频| 国产伦精一区二区三区| 国产精品久久久久9999吃药| 色噜噜狠狠色综合欧洲selulu| 亚洲大片在线观看| 精品久久一区二区| 高清不卡在线观看av| 亚洲欧美日韩精品久久久久| 欧美日韩二区三区| 精品一区二区久久久| 国产精品乱码一区二三区小蝌蚪| 色偷偷一区二区三区| 日本aⅴ亚洲精品中文乱码| 国产女同性恋一区二区| 91亚洲资源网| 久久激五月天综合精品| 亚洲人123区| 欧美成人乱码一区二区三区| youjizz国产精品| 五月天丁香久久| 久久久99久久| 欧美日韩美女一区二区| 国产精品一区二区男女羞羞无遮挡| 最近日韩中文字幕| 精品国产免费一区二区三区四区| 99久久精品情趣| 激情亚洲综合在线| 亚洲国产成人av好男人在线观看| 国产日韩精品久久久| 欧美三级电影网站| 成人av午夜影院| 免费xxxx性欧美18vr| 亚洲欧美视频在线观看| 精品成人在线观看| 欧美日韩一区精品| jizzjizzjizz欧美| 国产剧情av麻豆香蕉精品| 午夜精品久久久久久久久| 中文字幕视频一区| 久久人人超碰精品| 欧美一级艳片视频免费观看| 91丝袜呻吟高潮美腿白嫩在线观看| 国内成人免费视频| 天堂一区二区在线免费观看| 一区二区三区在线影院| 中文字幕一区二区三中文字幕| 欧美大片在线观看一区二区| 欧美性生活久久| 欧洲亚洲精品在线| 色综合色综合色综合| 高清在线观看日韩| 国产乱码字幕精品高清av | 日韩电影在线免费观看| 亚洲午夜久久久| 亚洲欧美激情插 | 精品理论电影在线| 日韩一区二区免费视频| 欧美日韩黄视频| 色欧美片视频在线观看 | 欧美另类变人与禽xxxxx| 一本一本大道香蕉久在线精品| 懂色av噜噜一区二区三区av | 日韩高清中文字幕一区| 亚洲国产一二三| 亚洲高清免费视频| 亚洲v日本v欧美v久久精品| 亚洲综合丝袜美腿| 亚欧色一区w666天堂| 亚洲一区二区三区精品在线| 亚洲资源在线观看| 亚洲一区二区黄色| 日韩主播视频在线| 亚洲成av人在线观看| 丝袜美腿高跟呻吟高潮一区| 日韩在线一二三区| 麻豆精品蜜桃视频网站| 激情av综合网| 成人福利视频在线| 91麻豆精品视频| 欧美日韩精品一区二区三区四区| 欧美日韩精品免费| 欧美一区二区成人6969| 精品国产免费一区二区三区香蕉| 精品少妇一区二区三区在线播放| 国产亚洲女人久久久久毛片| 亚洲欧洲在线观看av| 亚洲综合一区二区精品导航| 日本强好片久久久久久aaa| 国产专区欧美精品| 99久久婷婷国产综合精品电影| 欧美在线观看视频一区二区| 日韩精品一区二区三区在线播放| 国产午夜亚洲精品不卡| 一区二区三区美女视频| 日韩1区2区日韩1区2区| 成人午夜电影网站| 欧美伊人精品成人久久综合97| 日韩欧美国产午夜精品| 亚洲国产经典视频| 亚洲成av人影院| 国产91高潮流白浆在线麻豆| 在线一区二区三区四区| 亚洲精品在线观| 一区二区免费看| 国产一区不卡在线| 欧美在线观看一区| 国产日产欧产精品推荐色| 亚洲韩国精品一区| 国产91丝袜在线播放九色| 欧美无砖砖区免费| 日本一区二区高清| 日韩一区精品视频| 91丨九色丨黑人外教| 欧美一区二区三区不卡| 亚洲人亚洲人成电影网站色| 麻豆精品在线观看| 91国产丝袜在线播放| 久久久久国产精品人| 午夜精品福利在线| 99国产精品久| 久久先锋影音av| 日本免费新一区视频 | 粉嫩高潮美女一区二区三区| 欧美肥妇毛茸茸| √…a在线天堂一区| 精品亚洲porn| 欧美精品黑人性xxxx| 一区二区三区四区激情| www.爱久久.com| 国产日韩三级在线| 国内成人免费视频| 91精品国产麻豆国产自产在线 | 日韩毛片精品高清免费| 国产精品18久久久久久久久| 日韩免费成人网| 美女视频黄频大全不卡视频在线播放| 在线看不卡av| 一区二区视频免费在线观看| 成人精品小蝌蚪| 欧美激情在线观看视频免费| 国产一区二区三区美女| 精品福利二区三区| 狠狠色丁香久久婷婷综| 精品国产在天天线2019| 久久精品国产第一区二区三区| 欧美一区二区三区视频| 亚洲成av人片在www色猫咪| 日本精品一区二区三区高清 | 一区在线观看免费| av网站免费线看精品| 中文字幕在线观看一区二区| 成人精品鲁一区一区二区| 中文字幕在线不卡国产视频| av电影在线观看一区|