37 for(i=0,o=step*(dim-1);i<dim;i++,o-=step){
38 int v = ((
int)rint(a[o])-minval+(del>>1))/del;
39 int m = (v<ze ? ((ze-
v)<<1)-1 : ((v-ze)<<1));
43 for(i=0,o=step*(dim-1);i<dim;i++,o-=step){
44 int v = (
int)rint(a[o])-minval;
45 int m = (v<ze ? ((ze-
v)<<1)-1 : ((v-ze)<<1));
54 int e[8]={0,0,0,0,0,0,0,0};
60 float val=(e[
j]-a[j*step]);
63 if(best==-1 ||
this<best){
87 if(feof(in))
return NULL;
106 if(sofar==0)
return(
NULL);
191 for(i=0;i<
start;i++){
197 for(i=1;i<c->
dim;i++)
202 float temp=a[c->
dim-1];
237 FILE *
in=fopen(filename,
"r");
242 fprintf(stderr,
"Couldn't open codebook %s\n",filename);
251 if(sscanf(line,
"%ld, %ld,",
253 fprintf(stderr,
"1: syntax in %s in line:\t %s",filename,line);
258 if(sscanf(line,
"%d, %ld, %ld, %d, %d,",
261 fprintf(stderr,
"1: syntax in %s in line:\t %s",filename,line);
281 for(i=0;i<quant_to_read;i++)
283 fprintf(stderr,
"out of data while reading codebook %s\n",filename);
293 fprintf(stderr,
"out of data while reading codebook %s\n",filename);
308 static long lasttime=0;
310 struct timeval thistime;
312 gettimeofday(&thistime,
NULL);
313 test=thistime.tv_sec*10+thistime.tv_usec/100000;
317 fprintf(stderr,
"%s%d ",s,n);
322 fprintf(stderr,
"| \r");
325 fprintf(stderr,
"/ \r");
328 fprintf(stderr,
"- \r");
331 fprintf(stderr,
"\\ \r");
341 long *histsave=alloca(vals*
sizeof(
long));
342 memcpy(histsave,hist,vals*
sizeof(
long));
344 for(i=0;i<vals;i++)membership[i]=i;
349 int first=-1,second=-1;
356 if(least==-1 || hist[j]<=least){
362 if((least==-1 || hist[j]<=least) && membership[j]!=first){
364 second=membership[
j];
366 if(first==-1 || second==-1){
367 fprintf(stderr,
"huffman fault; no free branch\n");
372 least=hist[
first]+hist[second];
374 if(membership[j]==first || membership[j]==second){
380 for(i=0;i<vals-1;i++)
381 if(membership[i]!=membership[i+1]){
382 fprintf(stderr,
"huffman fault; failed to build single tree\n");
392 bitsum+=(histsave[
i]-1)*lengths[i];
393 samples+=histsave[
i]-1;
397 fprintf(stderr,
"\rTotal samples in training set: %ld \n",samples);
398 fprintf(stderr,
"\rTotal bits used to represent training set: %ld\n",
414 long *newhist=alloca(vals*
sizeof(
long));
418 newhist[upper++]=hist[
i];
421 fprintf(stderr,
"\rEliminating %d unused entries; %d entries remain\n",
430 lengths[
i]=lengthlist[upper++];
446 fprintf(out,
"static const long _vq_quantlist_%s[] = {\n",name);
450 fprintf(out,
"};\n\n");
454 fprintf(out,
"static const long _vq_lengthlist_%s[] = {\n",name);
457 for(k=0;k<16 && j<c->
entries;k++,j++)
461 fprintf(out,
"};\n\n");
465 fprintf(out,
"static const static_codebook %s = {\n",name);
467 fprintf(out,
"\t%ld, %ld,\n",c->
dim,c->
entries);
468 fprintf(out,
"\t(long *)_vq_lengthlist_%s,\n",name);
469 fprintf(out,
"\t%d, %ld, %ld, %d, %d,\n",
472 fprintf(out,
"\t(long *)_vq_quantlist_%s,\n",name);
474 fprintf(out,
"\tNULL,\n");
476 fprintf(out,
"\t0\n};\n\n");
GLuint const GLfloat * val
void reset_next_value(void)
const static_codebook * c
return Display return Display Bool Bool int int e
char * find_seek_to(FILE *in, char *s)
GLboolean GLboolean GLboolean GLboolean a
void write_codebook(FILE *out, char *name, const static_codebook *c)
EGLImageKHR EGLint * name
GLsizei const GLchar const GLint * lengths
static float sequence_base
int get_vector(codebook *b, FILE *in, int start, int n, float *a)
void build_tree_from_lengths0(int vals, long *hist, long *lengths)
static char * value_line_buff
float * _book_unquantize(const static_codebook *b, int n, int *map)
int _best(codebook *book, float *a, int step)
int get_next_ivalue(FILE *in, long *ivalue)
void spinnit(char *s, int n)
char * setup_line(FILE *in)
void build_tree_from_lengths(int vals, long *hist, long *lengths)
int vorbis_book_init_encode(codebook *dest, const static_codebook *source)
EGLSurface EGLint void ** value
long _book_maptype1_quantvals(const static_codebook *b)
int get_line_value(FILE *in, float *value)
GLdouble GLdouble GLdouble b
int get_next_value(FILE *in, float *value)
codebook * codebook_load(char *filename)
char * get_line(FILE *in)