X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=vq%2Flatticetune.c;h=67fc1e2dc79c3b21638832bf36fc418444df90c4;hb=2d7d933302d8fe78c451f42a2ae2e6f0c2de346e;hp=0c67835d3b6d9f131243db00c3c4b3747af63b5f;hpb=5e1fb9030d5cededd728d1e5798a3114c631b50e;p=platform%2Fupstream%2Flibvorbis.git diff --git a/vq/latticetune.c b/vq/latticetune.c index 0c67835..67fc1e2 100644 --- a/vq/latticetune.c +++ b/vq/latticetune.c @@ -1,19 +1,17 @@ /******************************************************************** * * * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * - * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2000 * - * by Monty and the XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the Xiph.Org Foundation https://xiph.org/ * * * ******************************************************************** function: utility main for setting entropy encoding parameters for lattice codebooks - last mod: $Id: latticetune.c,v 1.4 2000/11/06 00:07:26 xiphmont Exp $ ********************************************************************/ @@ -22,10 +20,12 @@ #include #include #include -#include "vorbis/codebook.h" -#include "../lib/sharedbook.h" #include "bookutil.h" +static int strrcmp_i(char *s,char *cmp){ + return(strncmp(s+strlen(s)-strlen(cmp),cmp,strlen(cmp))); +} + /* This util takes a training-collected file listing codewords used in LSP fitting, then generates new codeword lengths for maximally efficient integer-bits entropy encoding. @@ -62,7 +62,7 @@ int main(int argc,char *argv[]){ b=codebook_load(filename); c=(static_codebook *)(b->c); - + ptr=strrchr(filename,'.'); if(ptr){ *ptr='\0'; @@ -90,52 +90,36 @@ int main(int argc,char *argv[]){ exit(1); } - if(!strcmp(argv[0],"latticetune")){ + if(!strrcmp_i(argv[0],"latticetune")){ long lines=0; line=setup_line(in); - while(line){ + while(line){ long code; lines++; if(!(lines&0xfff))spinnit("codewords so far...",lines); - + if(sscanf(line,"%ld",&code)==1) - hits[code]++; + hits[code]++; line=setup_line(in); } } - if(!strcmp(argv[0],"restune")){ - long step; - long lines=0; - long cols=-1; - float *vec; + /* now we simply count already collated by-entry data */ + if(!strrcmp_i(argv[0],"res0tune") || !strrcmp_i(argv[0],"res1tune")){ + line=setup_line(in); while(line){ - int code; - if(!(lines&0xfff))spinnit("codewords so far...",lines); - if(cols==-1){ - char *temp=line; - while(*temp==' ')temp++; - for(cols=0;*temp;cols++){ - while(*temp>32)temp++; - while(*temp==' ')temp++; - } - vec=alloca(sizeof(float)*cols); - step=cols/dim; - } - - for(j=0;jlengthlist=lengths; - write_codebook(stdout,name,c); - + write_codebook(stdout,name,c); + + { + long bins=_book_maptype1_quantvals(c); + long i,k,base=c->lengthlist[0]; + for(i=0;ilengthlist[i]>base)base=c->lengthlist[i]; + + for(j=0;jlengthlist[j]){ + int indexdiv=1; + fprintf(stderr,"%4ld: ",j); + for(k=0;kdim;k++){ + int index= (j/indexdiv)%bins; + fprintf(stderr,"%+3.1f,", c->quantlist[index]*_float32_unpack(c->q_delta)+ + _float32_unpack(c->q_min)); + indexdiv*=bins; + } + fprintf(stderr,"\t|"); + for(k=0;klengthlist[j];k++)fprintf(stderr,"*"); + fprintf(stderr,"\n"); + } + } + } + fprintf(stderr,"\r " - "\nDone.\n"); + "\nDone.\n"); exit(0); }