/* ===================================================================== LBG Vector Quantizer Design Program. by Nam Phamdo April 23, 2000. Copyright 2000, Nam Phamdo ===================================================================== */ #include #include main(argc,argv) { char in_name[50]; char res_name[50]; char out_name[50]; float header[64]; float **data; float **codebk; float rvq, dist; int *bin; int no_tr_vec, dim; int bpv; /* bpv = bits per vector of VQ*/ int cb_size; int i, j, k, l, m, ll, ii, kk, nn; int fd_in, fd_out; int fsize, ssize, n_read, n_write; float **yy; float totd1, totd2, dist1, dist2; float del, drel; int flag1, index; int mtemp; /* = number of current vectors */ FILE *res_file, *fopen(); fsize=4; ssize=2; printf (" Enter input data file: "); scanf ("%49s", in_name); printf (" Enter number of training vectors: "); scanf ("%d", &no_tr_vec); printf (" Enter dimension: "); scanf ("%d", &dim); printf (" Enter rate of LBG in bits/sample: "); scanf ("%f", &rvq); printf (" Enter filename of codebook: "); scanf ("%49s", out_name); printf (" Enter filename of results: "); scanf ("%49s", res_name); res_file = fopen(res_name,"w"); fprintf(res_file," \n"); fprintf(res_file," \n"); fprintf(res_file," Input data file : %s\n",in_name); fprintf(res_file," Number of training vectors : %d\n",no_tr_vec); fprintf(res_file," Dimension : %d\n",dim); fprintf(res_file," Rate of VQ (bit/sample) : %f\n",rvq); fprintf(res_file," Filename of VQ codebook : %s\n",out_name); fprintf(res_file," Filename of results : %s\n",res_name); fprintf(res_file," \n"); fprintf(res_file," \n"); bpv=rvq*dim+0.0001; cb_size = 1; for(i=1;i<=bpv;++i) cb_size=cb_size*2; /* *********************ALLOCATING MEMORY****************** */ if((data = (float **) malloc(no_tr_vec * sizeof(float*)))==NULL){ fprintf(stderr,"no more memory\n"); exit(1); } for(i=0;i 0) { for(k=0;k 0.001) { flag1 = 0; totd2=totd1; } } /* end while flag1 */ } /* end while mtemp