void Analiza_DWT (double * ent1, double * iesire, long latime, long inaltime, long nr_niv)
{
	long i, j;
	double * ll, *lh, * hl, * hh;
	double * lis, * dec_2, *lis_dec_2, * dec_2_2;
	long dim1x=latime/2, dim1y=inaltime, dim2x=latime/2,dim2y= inaltime/2; 
	lis =(double *) calloc (latime*inaltime, sizeof(double));
	dec_2 =(double *) calloc (latime*inaltime, sizeof(double));
	dec_2_2=(double *) calloc (latime*inaltime, sizeof(double));
	lis_dec_2 =(double *) calloc (latime*inaltime, sizeof(double));
	ll =(double *) calloc (dim2x*dim2y, sizeof(double));
	lh =(double *) calloc (dim2x*dim2y, sizeof(double));
	hl =(double *) calloc (dim2x*dim2y, sizeof(double));
	hh =(double *) calloc (dim2x*dim2y, sizeof(double));

	///////////////////////LL/////////////////////////////////////////////////
	//Filtrare  pe linii filtru H0
	for (i=0; i<latime-1;i++)
		for (j=0; j<inaltime;j++)
			lis[i+j*latime]=(ent1[i+j*latime]+ent1[(i+1)+j*latime])*0.707106781;
	
	//Decimare coloane
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime;j++)
			dec_2[i+j*latime]=lis[2*i+j*latime];
	
	//Filtrare coloane cu filtru H0
	for (i=0; i<latime/2;i++)
		for (j=0; j<inaltime-1;j++)
			lis_dec_2[i+j*latime]=(dec_2[i+j*latime]+dec_2[i+(j+1)*latime])*0.707106781;
	
	//Decimare linii
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime/2;j++)
			dec_2_2[i+j*latime]=lis_dec_2[i+2*j*latime];

	// Construire imagine iesire
	for (i=0; i<latime;i++)
		for (j=0; j<inaltime;j++)
			iesire[i+j*latime]=dec_2_2[i+j*latime];

	// Golire imagini temporare
		for (i=0; i<latime;i++)
		for (j=0; j<inaltime;j++)
		{
			lis[i+j*latime]=0;
			lis_dec_2[i+j*latime]=0;
			dec_2[i+j*latime]=0;
			dec_2_2[i+j*latime]=0;
		}
	///////////////////////LH/////////////////////////////////////////////////
	//Filtrare  pe linii filtru H0
	for (i=0; i<latime-1;i++)
		for (j=0; j<inaltime;j++)
			lis[i+j*latime]=(ent1[i+j*latime]+ent1[(i+1)+j*latime])*0.707106781;
	
	//Decimare coloane
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime;j++)
			dec_2[i+j*latime]=lis[2*i+j*latime];
	
	//Filtrare coloane cu filtru H1
	for (i=0; i<latime/2;i++)
		for (j=0; j<inaltime-1;j++)
			lis_dec_2[i+j*latime]=(dec_2[i+j*latime]-dec_2[i+(j+1)*latime])*0.707106781;
	
	//Decimare linii
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime/2;j++)
			dec_2_2[i+j*latime]=lis_dec_2[i+2*j*latime];

	// Construire imagine iesire
	for (i=latime/2; i<latime;i++)
		for (j=0; j<inaltime;j++)
			iesire[i+j*latime]=dec_2_2[i-latime/2+j*latime];

	// Golire imagini temporare
		for (i=0; i<latime;i++)
		for (j=0; j<inaltime;j++)
		{
			lis[i+j*latime]=0;
			lis_dec_2[i+j*latime]=0;
			dec_2[i+j*latime]=0;
			dec_2_2[i+j*latime]=0;
		}
	///////////////////////HL/////////////////////////////////////////////////
	//Filtrare  pe linii filtru H1
	for (i=0; i<latime-1;i++)
		for (j=0; j<inaltime;j++)
			lis[i+j*latime]=(ent1[i+j*latime]-ent1[(i+1)+j*latime])*0.707106781;
	
	//Decimare coloane
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime;j++)
			dec_2[i+j*latime]=lis[2*i+j*latime];
	
	//Filtrare coloane cu filtru H0
	for (i=0; i<latime/2;i++)
		for (j=0; j<inaltime-1;j++)
			lis_dec_2[i+j*latime]=(dec_2[i+j*latime]+dec_2[i+(j+1)*latime])*0.707106781;
	
	//Decimare linii
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime/2;j++)
			dec_2_2[i+j*latime]=lis_dec_2[i+2*j*latime];

	// Construire imagine iesire
	for (i=0; i<latime;i++)
		for (j=inaltime/2; j<inaltime;j++)
			iesire[i+j*latime]=dec_2_2[i+(j-inaltime/2)*latime];

	// Golire imagini temporare
		for (i=0; i<latime;i++)
		for (j=0; j<inaltime;j++)
		{
			lis[i+j*latime]=0;
			lis_dec_2[i+j*latime]=0;
			dec_2[i+j*latime]=0;
			dec_2_2[i+j*latime]=0;
		}

	///////////////////////HH/////////////////////////////////////////////////
	//Filtrare  pe linii filtru H1
	for (i=0; i<latime-1;i++)
		for (j=0; j<inaltime;j++)
			lis[i+j*latime]=(ent1[i+j*latime]-ent1[(i+1)+j*latime])*0.707106781;
	
	//Decimare coloane
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime;j++)
			dec_2[i+j*latime]=lis[2*i+j*latime];
	
	//Filtrare coloane cu filtru H0
	for (i=0; i<latime/2;i++)
		for (j=0; j<inaltime-1;j++)
			lis_dec_2[i+j*latime]=(dec_2[i+j*latime]-dec_2[i+(j+1)*latime])*0.707106781;
	
	//Decimare linii
	for (i=0;i<latime/2;i++)
		for (j=0; j<inaltime/2;j++)
			dec_2_2[i+j*latime]=lis_dec_2[i+2*j*latime];

	// Construire imagine iesire
	for (i=latime/2; i<latime;i++)
		for (j=inaltime/2; j<inaltime;j++)
			iesire[i+j*latime]=dec_2_2[i-latime/2+(j-inaltime/2)*latime];

}