source: Sophya/trunk/Poubelle/archediab.old/prog_compression_unsigned/test_compress.c

Last change on this file was 649, checked in by ansari, 26 years ago

archediab 28 vol

File size: 2.5 KB
Line 
1#include <manip.h>
2#include "compress.h"
3
4
5#define lg 72
6
7void exec_fen(int fen,int item,double valeur,...);
8
9long *entree,*comp,*rec;
10
11
12main()
13{
14nouveauD(1,0,"compress",exec_fen);
15return(1);
16}
17
18
19//-------------------- fonction exec de la fenetre : copie -------------------------------
20
21
22void exec_fen(int fen,int item,double valeur,...)
23{
24int i;
25long t;
26double x,y;
27double bruit=0;
28
29switch(item)
30 {
31 case ouverture :
32
33
34random(0.2);
35entree=malloc(lg*4);
36comp=malloc(lg*4);
37rec=malloc(lg*4);
38
39for(i=0;i<lg;i++)
40 {
41 bruit=bruit*0.8 + 0.2*random(0);
42 entree[i]=200000.*cos(i*0.005) + 100000.*bruit;
43// entree[i]=200000.*cos(i*0.005) + 100000.*bruit + (i%2)*80000;
44 if(i>40) entree[i]+=500000.*exp(- 0.05*(i-40));
45// if(i>40) entree[i]+=200000.*exp(- 0.05*(i-40));
46 entree[i]/=16; // entre 0 et 50 000 soit 16 bits
47// entree[i]*=2; // de 0 a 15 e6 soit 21 bits
48 }
49
50
51for(i=0;i<lg;i++) trace(1,i,entree[i]);
52graph->couleur_trace=bleu;
53style(1);
54retrace(1);
55
56alerte(1,"");
57
58printf("comprime 4.1 avec lg=%d : ",lg);
59t=TickCount();
60for(i=0;i<1000;i++) compress_4_1((unsigned long*)entree,(unsigned long*)comp,lg,1);
61 decompress_4_1(comp,rec,lg);
62y=0;for(i=0;i<lg;i++) {x=entree[i]-rec[i];y+=x*x;} y=sqrt(y/(double)lg);
63printf("fin de comprime 4_1 : t=%d ecart total = %g \n\n",TickCount()-t,y);
64
65
66/*
67printf("comprime : ");
68t=TickCount();
69for(i=0;i<1000;i++) compress_4_2((unsigned long*)entree,(unsigned long*)comp,lg,1);
70 decompress_4_2(comp,rec,lg);
71y=0;for(i=0;i<lg;i++) {x=entree[i]-rec[i];y+=x*x;} y=sqrt(y/(double)lg);
72printf("fin de comprime 4_2 : t=%d ecart total = %g \n\n",TickCount()-t,y);
73
74*/
75/*
76printf("comprime : ");
77t=TickCount();
78for(i=0;i<1000;i++) compress_7_1((unsigned long*)entree,(unsigned long*)comp,lg,1);
79 decompress_7_1(comp,rec,lg);
80y=0;for(i=0;i<lg;i++) {x=entree[i]-rec[i];y+=x*x;} y=sqrt(y/(double)lg);
81printf("fin de comprime 7_1 : t=%d ecart total = %g \n\n",TickCount()-t,y);
82
83
84
85printf("comprime : ");
86t=TickCount();
87for(i=0;i<1;i++) compress_7_2((unsigned long*)entree,(unsigned long*)comp,lg,1);
88 decompress_7_2(comp,rec,lg);
89y=0;for(i=0;i<lg;i++) {x=entree[i]-rec[i];y+=x*x;} y=sqrt(y/(double)lg);
90printf("fin de comprime 7_2 : t=%d ecart total = %g \n\n",TickCount()-t,y);
91*/
92
93for(i=0;i<lg;i++) trace(1,i,rec[i]);
94graph->couleur_trace=vert;
95style(1);
96for(i=0;i<lg;i++) trace(1,i,entree[i]-rec[i]);
97
98
99 break;
100 case fermeture :
101 break;
102 default : break;
103 }
104}
105
106
Note: See TracBrowser for help on using the repository browser.