[xiph-cvs] cvs commit: vorbis/vq 44c0.vqs 44c4.vqs huffbuild.c

Monty xiphmont at xiph.org
Tue Jun 25 17:37:55 PDT 2002



xiphmont    02/06/25 17:37:53

  Modified:    .        Tag: branch_monty_20020507 configure.in
               examples Tag: branch_monty_20020507 encoder_example.c
               lib      Tag: branch_monty_20020507 backends.h barkmel.c
                        bitrate.c floor1.c info.c mapping0.c psy.c psy.h
                        res0.c vorbisenc.c
               lib/books/floor Tag: branch_monty_20020507
                        line_128x7_1sub1.vqh line_128x7_1sub2.vqh
                        line_128x7_1sub3.vqh line_128x7_class1.vqh
               lib/modes Tag: branch_monty_20020507 floor_44.h psych_44.h
                        residue_44.h
               vq       Tag: branch_monty_20020507 44c0.vqs 44c4.vqs
                        huffbuild.c
  Log:
  Continuing incremental.
  
  Monty

Revision  Changes    Path
No                   revision

<p>No                   revision

<p>1.54.2.2  +4 -4      vorbis/configure.in

Index: configure.in
===================================================================
RCS file: /usr/local/cvsroot/vorbis/configure.in,v
retrieving revision 1.54.2.1
retrieving revision 1.54.2.2
diff -u -r1.54.2.1 -r1.54.2.2
--- configure.in	2002/06/20 03:55:25	1.54.2.1
+++ configure.in	2002/06/26 00:37:34	1.54.2.2
@@ -5,19 +5,19 @@
 dnl ------------------------------------------------
 
 AC_INIT(lib/mdct.c)
-AM_INIT_AUTOMAKE(libvorbis,1.0rc3)
+AM_INIT_AUTOMAKE(libvorbis,1.0rc4)
 
 dnl Library versioning
 
 V_LIB_CURRENT=1
 V_LIB_REVISION=0
-V_LIB_AGE=1
+V_LIB_AGE=2
 VF_LIB_CURRENT=3
 VF_LIB_REVISION=0
-VF_LIB_AGE=0
+VF_LIB_AGE=1
 VE_LIB_CURRENT=1
 VE_LIB_REVISION=0
-VE_LIB_AGE=1
+VE_LIB_AGE=2
 AC_SUBST(V_LIB_CURRENT)
 AC_SUBST(V_LIB_REVISION)
 AC_SUBST(V_LIB_AGE)

<p><p>No                   revision

<p>No                   revision

<p>1.40.2.5  +3 -3      vorbis/examples/encoder_example.c

Index: encoder_example.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/examples/encoder_example.c,v
retrieving revision 1.40.2.4
retrieving revision 1.40.2.5
diff -u -r1.40.2.4 -r1.40.2.5
--- encoder_example.c	2002/06/20 03:55:26	1.40.2.4
+++ encoder_example.c	2002/06/26 00:37:35	1.40.2.5
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: simple example encoder
- last mod: $Id: encoder_example.c,v 1.40.2.4 2002/06/20 03:55:26 xiphmont Exp $
+ last mod: $Id: encoder_example.c,v 1.40.2.5 2002/06/26 00:37:35 xiphmont Exp $
 
  ********************************************************************/
 
@@ -97,8 +97,8 @@
   /* (quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR) */
   vorbis_info_init(&vi);
 
-  //vorbis_encode_init(&vi,2,44100,-1,128000,-1);
-  vorbis_encode_init_vbr(&vi,2,44100,.4);
+  vorbis_encode_init(&vi,2,44100,-1,64000,-1);
+  //vorbis_encode_init_vbr(&vi,2,44100,.0);
 
   /* add a comment */
   vorbis_comment_init(&vc);

<p><p>No                   revision

<p>No                   revision

<p>1.12.6.5  +2 -6      vorbis/lib/backends.h

Index: backends.h
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/backends.h,v
retrieving revision 1.12.6.4
retrieving revision 1.12.6.5
diff -u -r1.12.6.4 -r1.12.6.5
--- backends.h	2002/05/31 00:16:10	1.12.6.4
+++ backends.h	2002/06/26 00:37:37	1.12.6.5
@@ -12,7 +12,7 @@
 
  function: libvorbis backend and mapping structures; needed for 
            static mode headers
- last mod: $Id: backends.h,v 1.12.6.4 2002/05/31 00:16:10 xiphmont Exp $
+ last mod: $Id: backends.h,v 1.12.6.5 2002/06/26 00:37:37 xiphmont Exp $
 
  ********************************************************************/
 
@@ -77,12 +77,8 @@
   float maxunder;  
   float maxerr;    
 
-  int   twofitminsize;
-  int   twofitminused;
-  int   twofitweight;  
+  float twofitweight;  
   float twofitatten;
-  int   unusedminsize;
-  int   unusedmin_n;
 
   int   n;
 

<p><p>1.9.6.1   +14 -3     vorbis/lib/barkmel.c

Index: barkmel.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/barkmel.c,v
retrieving revision 1.9
retrieving revision 1.9.6.1
diff -u -r1.9 -r1.9.6.1
--- barkmel.c	2001/12/20 01:00:26	1.9
+++ barkmel.c	2002/06/26 00:37:37	1.9.6.1
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: bark scale utility
- last mod: $Id: barkmel.c,v 1.9 2001/12/20 01:00:26 segher Exp $
+ last mod: $Id: barkmel.c,v 1.9.6.1 2002/06/26 00:37:37 xiphmont Exp $
 
  ********************************************************************/
 
@@ -55,10 +55,21 @@
     float i;
     int j;
     for(i=0.,j=0;i<28;i+=1,j++){
-      fprintf(stderr,"(%d) bark=%f %gHz (%d of 128)\n",
-	      j,i,fromBARK(i),(int)(fromBARK(i)/22050.*128.));
+      fprintf(stderr,"(%d) bark=%f %gHz (%d of 1024)\n",
+	      j,i,fromBARK(i),(int)rint(fromBARK(i)/22050.*1024.));
     }
   }
+  {
+    int foo[]={0,6,12,20,28, 36,44,52,62, 72,82,94,108,  122,138,156,176,  
+	       198,224,252,286, 324,370,422,486, 564,658,774,920, 
+	       1106,1344,1650,2048};
+    for(i=0;i<33;i++){
+      float Hz=foo[i]/2048.*22050.;
+      fprintf(stderr,"%d: %fHz, %f Bark\n",foo[i],Hz,toBARK(Hz));
+    }
+  } 
+
+
   return(0);
 }
 

<p><p>1.11.4.3  +3 -3      vorbis/lib/bitrate.c

Index: bitrate.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/bitrate.c,v
retrieving revision 1.11.4.2
retrieving revision 1.11.4.3
diff -u -r1.11.4.2 -r1.11.4.3
--- bitrate.c	2002/05/31 00:16:10	1.11.4.2
+++ bitrate.c	2002/06/26 00:37:37	1.11.4.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: bitrate tracking and management
- last mod: $Id: bitrate.c,v 1.11.4.2 2002/05/31 00:16:10 xiphmont Exp $
+ last mod: $Id: bitrate.c,v 1.11.4.3 2002/06/26 00:37:37 xiphmont Exp $
 
  ********************************************************************/
 
@@ -107,8 +107,8 @@
       
       bm->queue_size=maxpackets;
       bm->queue_bins=bins;
-      bm->queue_binned=_ogg_malloc(maxpackets*bins*sizeof(*bm->queue_binned));
-      bm->queue_actual=_ogg_malloc(maxpackets*sizeof(*bm->queue_actual));
+      bm->queue_binned=_ogg_calloc(maxpackets,bins*sizeof(*bm->queue_binned));
+      bm->queue_actual=_ogg_calloc(maxpackets,sizeof(*bm->queue_actual));
       
       if((bi->queue_avgmin>0 || bi->queue_avgmax>0) &&
          bi->queue_avg_time>0){

<p><p>1.20.4.4  +36 -85    vorbis/lib/floor1.c

Index: floor1.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/floor1.c,v
retrieving revision 1.20.4.3
retrieving revision 1.20.4.4
diff -u -r1.20.4.3 -r1.20.4.4
--- floor1.c	2002/05/18 01:39:27	1.20.4.3
+++ floor1.c	2002/06/26 00:37:37	1.20.4.4
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: floor backend 1 implementation
- last mod: $Id: floor1.c,v 1.20.4.3 2002/05/18 01:39:27 xiphmont Exp $
+ last mod: $Id: floor1.c,v 1.20.4.4 2002/06/26 00:37:37 xiphmont Exp $
 
  ********************************************************************/
 
@@ -59,7 +59,6 @@
   long xya; 
   long n;
   long an;
-  long un;
   long edgey0;
   long edgey1;
 } lsfit_acc;
@@ -77,10 +76,10 @@
 static void floor1_free_look(vorbis_look_floor *i){
   vorbis_look_floor1 *look=(vorbis_look_floor1 *)i;
   if(look){
-    /*fprintf(stderr,"floor 1 bit usage %f:%f (%f total)\n",
+    fprintf(stderr,"floor 1 bit usage %f:%f (%f total)\n",
             (float)look->phrasebits/look->frames,
             (float)look->postbits/look->frames,
-	    (float)(look->postbits+look->phrasebits)/look->frames);*/
+	    (float)(look->postbits+look->phrasebits)/look->frames);
 
     memset(look,0,sizeof(*look));
     _ogg_free(look);
@@ -456,12 +455,8 @@
 
   /* weight toward the actually used frequencies if we meet the threshhold */
   {
-    int weight;
-    if(nb<info->twofitminsize || na<info->twofitminused){
-      weight=0;
-    }else{
-      weight=nb*info->twofitweight/na;
-    }
+    int weight=info->twofitweight/na;
+
     a->xa=xa*weight+xb;
     a->ya=ya*weight+yb;
     a->x2a=x2a*weight+x2b;
@@ -469,8 +464,6 @@
     a->xya=xya*weight+xyb;
     a->an=na*weight+nb;
     a->n=nb;
-    a->un=na;
-    if(nb>=info->unusedminsize)a->un++;
   }
 
   a->edgey1=-200;
@@ -488,18 +481,16 @@
   long x1=a[fits-1].x1;
 
   for(i=0;i<fits;i++){
-    if(a[i].un){
-      x+=a[i].xa;
-      y+=a[i].ya;
-      x2+=a[i].x2a;
-      y2+=a[i].y2a;
-      xy+=a[i].xya;
-      n+=a[i].n;
-      an+=a[i].an;
-    }
+    x+=a[i].xa;
+    y+=a[i].ya;
+    x2+=a[i].x2a;
+    y2+=a[i].y2a;
+    xy+=a[i].xya;
+    n+=a[i].n;
+    an+=a[i].an;
   }
 
-  if(*y0>=0){  /* hint used to break degenerate cases */
+  if(*y0>=0){
     x+=   x0;
     y+=  *y0;
     x2+=  x0 *  x0;
@@ -509,7 +500,7 @@
     an++;
   }
 
-  if(*y1>=0){  /* hint used to break degenerate cases */
+  if(*y1>=0){
     x+=   x1;
     y+=  *y1;
     x2+=  x1 *  x1;
@@ -518,8 +509,6 @@
     n++;
     an++;
   }
-
-  if(n<2)return(n-2);
   
   {
     /* need 64 bit multiplies, which C doesn't give portably as int */
@@ -570,12 +559,12 @@
 
   ady-=abs(base*adx);
   
+  mse=(y-val);
+  mse*=mse;
+  n++;
   if(mdct[x]+info->twofitatten>=mask[x]){
     if(y+info->maxover<val)return(1);
     if(y-info->maxunder>val)return(1);
-    mse=(y-val);
-    mse*=mse;
-    n++;
   }
 
   while(++x<x1){
@@ -587,22 +576,20 @@
       y+=base;
     }
 
+    val=vorbis_dBquant(mask+x);
+    mse+=((y-val)*(y-val));
+    n++;
     if(mdct[x]+info->twofitatten>=mask[x]){
-      val=vorbis_dBquant(mask+x);
       if(val){
         if(y+info->maxover<val)return(1);
         if(y-info->maxunder>val)return(1);
-	mse+=((y-val)*(y-val));
-	n++;
       }
     }
   }
   
-  if(n){
-    if(info->maxover*info->maxover/n>info->maxerr)return(0);
-    if(info->maxunder*info->maxunder/n>info->maxerr)return(0);
-    if(mse/n>info->maxerr)return(1);
-  }
+  if(info->maxover*info->maxover/n>info->maxerr)return(0);
+  if(info->maxunder*info->maxunder/n>info->maxerr)return(0);
+  if(mse/n>info->maxerr)return(1);
   return(0);
 }
 
@@ -615,34 +602,29 @@
   return (A[pos]+B[pos])>>1;
 }
 
+static int seq=0;
+
 int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look,
                           const float *logmdct,   /* in */
                           const float *logmask){
   long i,j;
   vorbis_info_floor1 *info=look->vi;
-  long n=info->n;
+  long n=look->n;
   long posts=look->posts;
   long nonzero=0;
   lsfit_acc fits[VIF_POSIT+1];
   int fit_valueA[VIF_POSIT+2]; /* index by range list position */
   int fit_valueB[VIF_POSIT+2]; /* index by range list position */
-  int fit_flag[VIF_POSIT+2];
 
   int loneighbor[VIF_POSIT+2]; /* sorted index of range list position (+2) */
   int hineighbor[VIF_POSIT+2]; 
   int *output=NULL;
   int memo[VIF_POSIT+2];
   
-  memset(fit_flag,0,sizeof(fit_flag));
   for(i=0;i<posts;i++)loneighbor[i]=0; /* 0 for the implicit 0 post */
   for(i=0;i<posts;i++)hineighbor[i]=1; /* 1 for the implicit post at n */
   for(i=0;i<posts;i++)memo[i]=-1;      /* no neighbor yet */
-  
-  /* Scan back from high edge to first 'used' frequency */
-  for(;n>info->unusedmin_n;n--)
-    if(logmdct[n-1]>-floor1_rangedB && 
-       logmdct[n-1]+info->twofitatten>logmask[n-1])break;
-  
+
   /* quantize the relevant floor points and collect them into line fit
      structures (one per minimal division) at the same time */
   if(posts==0){
@@ -666,8 +648,6 @@
       fit_line(fits,posts-1,&y0,&y1);
     }
 
-    fit_flag[0]=1;
-    fit_flag[1]=1;
     fit_valueA[0]=y0;
     fit_valueB[0]=y0;
     fit_valueB[1]=y1;
@@ -690,21 +670,7 @@
           int hsortpos=look->reverse_index[hn];
           memo[ln]=hn;
 
-	  /* if this is an empty segment, its endpoints don't matter.
-	     Mark as such */
-	  for(j=lsortpos;j<hsortpos;j++)
-	    if(fits[j].un)break;
-	  if(j==hsortpos){
-	    /* empty segment; important to note that this does not
-               break 0/n post case */
-	    fit_valueB[ln]=-200;
-	    if(fit_valueA[ln]<0)
-	      fit_flag[ln]=0;
-	    fit_valueA[hn]=-200;
-	    if(fit_valueB[hn]<0)
-	      fit_flag[hn]=0;
- 
-	  }else{
+	  {
             /* A note: we want to bound/minimize *local*, not global, error */
             int lx=info->postlist[ln];
             int hx=info->postlist[hn];	  
@@ -759,11 +725,6 @@
               fit_valueA[hn]=hy1;
               if(hn==1 && hy1>=0)fit_valueB[hn]=hy1;
 
-	      if(ly0<0 && fit_valueA[ln]<0)
-		fit_flag[ln]=0;
-	      if(hy1<0 && fit_valueB[hn]<0)
-		fit_flag[hn]=0;
-
               if(ly1>=0 || hy0>=0){
                 /* store new neighbor values */
                 for(j=sortpos-1;j>=0;j--)
@@ -777,9 +738,10 @@
                   else
                     break;
                 
-		/* store flag (set) */
-		fit_flag[i]=1;
               }
+	    }else{
+	      fit_valueA[i]=-200;
+	      fit_valueB[i]=-200;
             }
           }
         }
@@ -803,14 +765,10 @@
       int y1=output[hn];
       
       int predicted=render_point(x0,x1,y0,y1,info->postlist[i]);
+      int vx=post_Y(fit_valueA,fit_valueB,i);
         
-      if(fit_flag[i]){
-	int vx=post_Y(fit_valueA,fit_valueB,i);
-	if(predicted!=vx){
-	  output[i]=vx;
-	}else{
-	  output[i]= predicted|0x8000;
-	}
+      if(vx>=0 && predicted!=vx){ 
+	output[i]=vx;
       }else{
         output[i]= predicted|0x8000;
       }
@@ -828,14 +786,8 @@
   long i;
   long posts=look->posts;
   int *output=NULL;
-  int dummy[VIF_POSIT+2];
   
-  if(A || B){
-    if(!A || !B){
-      memset(dummy,0,sizeof(dummy));
-      if(!A)A=dummy;
-      if(!B)B=dummy;
-    }
+  if(A && B){
     output=_vorbis_block_alloc(vb,sizeof(*output)*posts);
     
     for(i=0;i<posts;i++){
@@ -853,7 +805,7 @@
 
   long i,j;
   vorbis_info_floor1 *info=look->vi;
-  long n=info->n;
+  long n=look->n;
   long posts=look->posts;
   codec_setup_info *ci=vb->vd->vi->codec_setup;
   int out[VIF_POSIT+2];
@@ -1038,7 +990,6 @@
         }
       }
       for(j=hx;j<vb->pcmend/2;j++)ilogmask[j]=ly; /* be certain */    
-      for(j=n;j<vb->pcmend/2;j++)ilogmask[j]=0;
       seq++;
       return(1);
     }

<p><p>1.53.4.2  +2 -2      vorbis/lib/info.c

Index: info.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/info.c,v
retrieving revision 1.53.4.1
retrieving revision 1.53.4.2
diff -u -r1.53.4.1 -r1.53.4.2
--- info.c	2002/05/07 23:47:13	1.53.4.1
+++ info.c	2002/06/26 00:37:37	1.53.4.2
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: maintain the info structure, info <-> header packets
- last mod: $Id: info.c,v 1.53.4.1 2002/05/07 23:47:13 xiphmont Exp $
+ last mod: $Id: info.c,v 1.53.4.2 2002/06/26 00:37:37 xiphmont Exp $
 
  ********************************************************************/
 
@@ -415,7 +415,7 @@
 }
 
 static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){
-  char temp[]="Xiphophorus libVorbis I 20011231";
+  char temp[]="Xiphophorus libVorbis I 20020623";
   int bytes = strlen(temp);
 
   /* preamble */  

<p><p>1.49.2.7  +8 -6      vorbis/lib/mapping0.c

Index: mapping0.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/mapping0.c,v
retrieving revision 1.49.2.6
retrieving revision 1.49.2.7
diff -u -r1.49.2.6 -r1.49.2.7
--- mapping0.c	2002/06/20 03:55:27	1.49.2.6
+++ mapping0.c	2002/06/26 00:37:38	1.49.2.7
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: channel mapping 0 implementation
- last mod: $Id: mapping0.c,v 1.49.2.6 2002/06/20 03:55:27 xiphmont Exp $
+ last mod: $Id: mapping0.c,v 1.49.2.7 2002/06/26 00:37:38 xiphmont Exp $
 
  ********************************************************************/
 
@@ -365,6 +365,7 @@
          later rate tweaking (fits represent hi/lo) */
       if(vorbis_bitrate_managed(vb) && floor_posts[i][PACKETBLOBS/2]){
         /* higher rate by way of lower noise curve */
+
         _vp_offset_and_mix(psy_look,
                            noise,
                            tone,
@@ -566,24 +567,25 @@
           };
 
           char buf[80];
-	  sprintf(buf,"maskI%d",k);
+	  sprintf(buf,"maskI%c%d",i?'L':'R',k);
           float work[n/2];
           for(j=0;j<n/2;j++)
             work[j]=FLOOR1_fromdB_LOOKUP[ilogmask[j]];
-	  _analysis_output_always(buf,seq+i,work,n/2,1,1,0);
+	  _analysis_output_always(buf,seq,work,n/2,1,1,0);
         }
 #endif
         _vp_remove_floor(psy_look,
                          mdct,
                          ilogmask,
-			 res);
+			 res,
+			 ci->psy_g_param.sliding_lowpass[vb->W][k]);
         _vp_noise_normalize(psy_look,res,res+n/2,sortindex[i]);
         
 #if 0
         {
           char buf[80];
-	  sprintf(buf,"resI%d",k);
-	  _analysis_output_always(buf,seq+i,res,n/2,1,1,0);
+	  sprintf(buf,"resI%d",k,i);
+	  _analysis_output_always(buf,seq,res,n/2,1,1,0);
         }
 #endif
       }

<p><p>1.67.2.9  +8 -9      vorbis/lib/psy.c

Index: psy.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/psy.c,v
retrieving revision 1.67.2.8
retrieving revision 1.67.2.9
diff -u -r1.67.2.8 -r1.67.2.9
--- psy.c	2002/06/24 00:06:01	1.67.2.8
+++ psy.c	2002/06/26 00:37:39	1.67.2.9
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: psychoacoustics not including preecho
- last mod: $Id: psy.c,v 1.67.2.8 2002/06/24 00:06:01 xiphmont Exp $
+ last mod: $Id: psy.c,v 1.67.2.9 2002/06/26 00:37:39 xiphmont Exp $
 
  ********************************************************************/
 
@@ -704,13 +704,18 @@
 void _vp_remove_floor(vorbis_look_psy *p,
                       float *mdct,
                       int *codedflr,
-		      float *residue){ 
+		      float *residue,
+		      int sliding_lowpass){ 
 
   int i,n=p->n;
+ 
+  if(sliding_lowpass>n)sliding_lowpass=n;
   
-  for(i=0;i<n;i++)
+  for(i=0;i<sliding_lowpass;i++)
     residue[i]=
       mdct[i]*FLOOR1_fromdB_INV_LOOKUP[codedflr[i]];
+  for(;i<n;i++)
+    residue[i]=0.;
 }
 
 void _vp_noisemask(vorbis_look_psy *p,
@@ -1041,10 +1046,4 @@
     }
   }
 }
-
-
-
-
-
-
 

<p><p>1.28.2.7  +4 -2      vorbis/lib/psy.h

Index: psy.h
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/psy.h,v
retrieving revision 1.28.2.6
retrieving revision 1.28.2.7
diff -u -r1.28.2.6 -r1.28.2.7
--- psy.h	2002/06/24 00:06:02	1.28.2.6
+++ psy.h	2002/06/26 00:37:39	1.28.2.7
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: random psychoacoustics (not including preecho)
- last mod: $Id: psy.h,v 1.28.2.6 2002/06/24 00:06:02 xiphmont Exp $
+ last mod: $Id: psy.h,v 1.28.2.7 2002/06/26 00:37:39 xiphmont Exp $
 
  ********************************************************************/
 
@@ -80,6 +80,7 @@
   int   coupling_pointlimit[2][PACKETBLOBS];  
   int   coupling_prepointamp[PACKETBLOBS];  
   int   coupling_postpointamp[PACKETBLOBS];  
+  int   sliding_lowpass[2][PACKETBLOBS];  
 
 } vorbis_info_psy_global;
 
@@ -121,7 +122,8 @@
 extern void _vp_remove_floor(vorbis_look_psy *p,
                              float *mdct,
                              int *icodedflr,
-			     float *residue);
+			     float *residue,
+			     int sliding_lowpass);
 
 extern void _vp_noisemask(vorbis_look_psy *p,
                           float *logmdct, 

<p><p>1.45.4.6  +2 -2      vorbis/lib/res0.c

Index: res0.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/res0.c,v
retrieving revision 1.45.4.5
retrieving revision 1.45.4.6
diff -u -r1.45.4.5 -r1.45.4.6
--- res0.c	2002/06/24 00:06:02	1.45.4.5
+++ res0.c	2002/06/26 00:37:39	1.45.4.6
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: residue backend 0, 1 and 2 implementation
- last mod: $Id: res0.c,v 1.45.4.5 2002/06/24 00:06:02 xiphmont Exp $
+ last mod: $Id: res0.c,v 1.45.4.6 2002/06/26 00:37:39 xiphmont Exp $
 
  ********************************************************************/
 
@@ -88,7 +88,7 @@
             codebook *statebook=look->partbooks[j][k];
             
             /* long and short into the same bucket by current convention */
-	    sprintf(buffer,"res%d_part_pass%d.vqd",j,k);
+	    sprintf(buffer,"res_part%d_pass%d.vqd",j,k);
             of=fopen(buffer,"a");
 
             for(l=0;l<statebook->entries;l++)

<p><p>1.39.2.8  +18 -7     vorbis/lib/vorbisenc.c

Index: vorbisenc.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/vorbisenc.c,v
retrieving revision 1.39.2.7
retrieving revision 1.39.2.8
diff -u -r1.39.2.7 -r1.39.2.8
--- vorbisenc.c	2002/06/24 00:06:02	1.39.2.7
+++ vorbisenc.c	2002/06/26 00:37:40	1.39.2.8
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: simple programmatic interface for encoder mode setup
- last mod: $Id: vorbisenc.c,v 1.39.2.7 2002/06/24 00:06:02 xiphmont Exp $
+ last mod: $Id: vorbisenc.c,v 1.39.2.8 2002/06/26 00:37:40 xiphmont Exp $
 
  ********************************************************************/
 
@@ -75,6 +75,7 @@
   int   pre[PACKETBLOBS];
   int   post[PACKETBLOBS];
   float kHz[PACKETBLOBS];
+  float lowpasskHz[PACKETBLOBS];
 } adj_stereo;
 
 typedef struct {
@@ -108,8 +109,9 @@
 
   noiseguard  *psy_noiseguards;
   noise3      *psy_noise_bias_impulse;
+  noise3      *psy_noise_bias_padding;
+  noise3      *psy_noise_bias_trans;
   noise3      *psy_noise_bias_long;
-  noise3      *psy_noise_bias_other;
   int         *psy_noise_dBsuppress;
 
   compandblock  *psy_noise_compand;
@@ -242,8 +244,8 @@
   codec_setup_info *ci=vi->codec_setup;
   vorbis_info_psy_global *g=&ci->psy_g_param;
 
-  memcpy(g->coupling_prepointamp,p[is].pre,sizeof(*p[is].pre));
-  memcpy(g->coupling_postpointamp,p[is].post,sizeof(*p[is].post));
+  memcpy(g->coupling_prepointamp,p[is].pre,sizeof(*p[is].pre)*PACKETBLOBS);
+  memcpy(g->coupling_postpointamp,p[is].post,sizeof(*p[is].post)*PACKETBLOBS);
 
   if(hi->managed){
     /* interpolate the kHz threshholds */
@@ -252,15 +254,24 @@
       g->coupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0];
       g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1];
       g->coupling_pkHz[i]=kHz;
+
+      kHz=p[is].lowpasskHz[i]*(1.-ds)+p[is+1].lowpasskHz[i]*ds;
+      g->sliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0];
+      g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1];
     }
   }else{
     float kHz=p[is].kHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].kHz[PACKETBLOBS/2]*ds;
     for(i=0;i<PACKETBLOBS;i++){
-
       g->coupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0];
       g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1];
       g->coupling_pkHz[i]=kHz;
     }
+
+    kHz=p[is].lowpasskHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].lowpasskHz[PACKETBLOBS/2]*ds;
+    for(i=0;i<PACKETBLOBS;i++){
+      g->sliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0];
+      g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1];
+    }
   }
 
   return(0);
@@ -711,11 +722,11 @@
                                      setup->psy_noiseguards);
   ret|=vorbis_encode_noisebias_setup(vi,hi->block[1].noise_bias_setting,1,
                                      setup->psy_noise_dBsuppress,
-				     setup->psy_noise_bias_other,
+				     setup->psy_noise_bias_padding,
                                      setup->psy_noiseguards);
   ret|=vorbis_encode_noisebias_setup(vi,hi->block[2].noise_bias_setting,2,
                                      setup->psy_noise_dBsuppress,
-				     setup->psy_noise_bias_other,
+				     setup->psy_noise_bias_trans,
                                      setup->psy_noiseguards);
   ret|=vorbis_encode_noisebias_setup(vi,hi->block[3].noise_bias_setting,3,
                                      setup->psy_noise_dBsuppress,

<p><p>No                   revision

<p>No                   revision

<p>1.4.8.1   +3 -3      vorbis/lib/books/floor/line_128x7_1sub1.vqh

Index: line_128x7_1sub1.vqh
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/books/floor/line_128x7_1sub1.vqh,v
retrieving revision 1.4
retrieving revision 1.4.8.1
diff -u -r1.4 -r1.4.8.1
--- line_128x7_1sub1.vqh	2001/12/17 00:17:24	1.4
+++ line_128x7_1sub1.vqh	2002/06/26 00:37:45	1.4.8.1
@@ -5,8 +5,8 @@
  * 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-2001             *
- * by the XIPHOPHORUS Company http://www.xiph.org/                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
  *                                                                  *
  ********************************************************************
 
@@ -19,7 +19,7 @@
 #include "codebook.h"
 
 static long _huff_lengthlist_line_128x7_1sub1[] = {
-	 0, 3, 3, 3, 3, 3, 3, 3, 3,
+	 0, 2, 3, 3, 3, 3, 4, 3, 4,
 };
 
 static static_codebook _huff_book_line_128x7_1sub1 = {

<p><p>1.5.6.1   +4 -4      vorbis/lib/books/floor/line_128x7_1sub2.vqh

Index: line_128x7_1sub2.vqh
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/books/floor/line_128x7_1sub2.vqh,v
retrieving revision 1.5
retrieving revision 1.5.6.1
diff -u -r1.5 -r1.5.6.1
--- line_128x7_1sub2.vqh	2001/12/19 01:10:12	1.5
+++ line_128x7_1sub2.vqh	2002/06/26 00:37:45	1.5.6.1
@@ -5,8 +5,8 @@
  * 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-2001             *
- * by the XIPHOPHORUS Company http://www.xiph.org/                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
  *                                                                  *
  ********************************************************************
 
@@ -19,8 +19,8 @@
 #include "codebook.h"
 
 static long _huff_lengthlist_line_128x7_1sub2[] = {
-	 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 3, 4, 3, 5,
-	 4, 7, 5, 7, 5, 9, 7, 9, 8,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 5, 3, 5, 3,
+	 6, 3, 6, 3, 7, 3, 7, 4, 6,
 };
 
 static static_codebook _huff_book_line_128x7_1sub2 = {

<p><p>1.5.6.1   +5 -5      vorbis/lib/books/floor/line_128x7_1sub3.vqh

Index: line_128x7_1sub3.vqh
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/books/floor/line_128x7_1sub3.vqh,v
retrieving revision 1.5
retrieving revision 1.5.6.1
diff -u -r1.5 -r1.5.6.1
--- line_128x7_1sub3.vqh	2001/12/19 01:10:12	1.5
+++ line_128x7_1sub3.vqh	2002/06/26 00:37:45	1.5.6.1
@@ -5,8 +5,8 @@
  * 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-2001             *
- * by the XIPHOPHORUS Company http://www.xiph.org/                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
  *                                                                  *
  ********************************************************************
 
@@ -20,9 +20,9 @@
 
 static long _huff_lengthlist_line_128x7_1sub3[] = {
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 5, 4, 6, 4, 6,
-	 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
-	 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 3, 3, 3, 4,
+	 4, 4, 5, 5, 6, 6, 7, 7, 8,10,10,13, 9,13, 9,13,
+	 9,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
 };
 
 static static_codebook _huff_book_line_128x7_1sub3 = {

<p><p>1.5.6.1   +19 -7     vorbis/lib/books/floor/line_128x7_class1.vqh

Index: line_128x7_class1.vqh
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/books/floor/line_128x7_class1.vqh,v
retrieving revision 1.5
retrieving revision 1.5.6.1
diff -u -r1.5 -r1.5.6.1
--- line_128x7_class1.vqh	2001/12/19 01:10:12	1.5
+++ line_128x7_class1.vqh	2002/06/26 00:37:45	1.5.6.1
@@ -5,8 +5,8 @@
  * 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-2001             *
- * by the XIPHOPHORUS Company http://www.xiph.org/                  *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
  *                                                                  *
  ********************************************************************
 
@@ -19,14 +19,26 @@
 #include "codebook.h"
 
 static long _huff_lengthlist_line_128x7_class1[] = {
-	 2, 3, 4,14,11, 8, 9,15,12, 9,10,15,15,15,15,15,
-	 5, 2, 4,14,11, 8,10,15,13,11,12,15,15,15,15,15,
-	 5, 3, 5,13,11, 7, 8,15,14,11,12,15,15,15,15,15,
-	14,11,12,14,14,13,13,14,14,14,14,14,14,14,14,14,
+	 7,15,15,15,11,15,15,15,11,15,13,15,14,14,10,14,
+	 6,14,14,14,11,14,14,14,10,14,10,14,14,14,10,14,
+	 9,14,14,14,11,14,14,14,12,14,14,14,14,14,11,14,
+	14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,
+	 4,14,14,14, 9,14,14,14, 8,14, 9,14,14,14, 7,14,
+	 3,14,14,14, 8,14,14,14, 8,14, 9,14,14,14, 7,14,
+	 6,14,14,14, 8,14,14,14, 9,14,11,14,14,14, 9,14,
+	13,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,
+	 3,14,14,14, 8,14,14,14, 8,14,10,14,14,14, 8,14,
+	 2,14,14,14, 5,14,14,14, 6,14, 9,14,14,14, 6,14,
+	 4,14,14,14, 6,14,14,14, 7,14, 8,14,14,14, 6,14,
+	11,14,14,14,10,14,14,14,13,14,12,14,14,14,10,14,
+	 7,14,14,14,10,14,14,14,10,14,12,14,14,14, 9,14,
+	 4,14,14,14, 7,14,14,14, 8,14, 9,14,14,14, 6,14,
+	 6,14,14,14, 7,14,14,14, 8,14,10,14,14,14, 6,14,
+	12,14,14,14, 9,14,14,14,11,14,13,14,14,14,10,14,
 };
 
 static static_codebook _huff_book_line_128x7_class1 = {
-	1, 64,
+	1, 256,
         _huff_lengthlist_line_128x7_class1,
         0, 0, 0, 0, 0,
         NULL,

<p><p>No                   revision

<p>No                   revision

<p>1.2.8.3   +185 -138  vorbis/lib/modes/floor_44.h

Index: floor_44.h
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/modes/floor_44.h,v
retrieving revision 1.2.8.2
retrieving revision 1.2.8.3
diff -u -r1.2.8.2 -r1.2.8.3
--- floor_44.h	2002/06/24 00:06:04	1.2.8.2
+++ floor_44.h	2002/06/26 00:37:47	1.2.8.3
@@ -11,181 +11,228 @@
  ********************************************************************
 
  function: key floor settings for 44.1/48kHz
- last mod: $Id: floor_44.h,v 1.2.8.2 2002/06/24 00:06:04 xiphmont Exp $
+ last mod: $Id: floor_44.h,v 1.2.8.3 2002/06/26 00:37:47 xiphmont Exp $
 
  ********************************************************************/
 
 #include "vorbis/codec.h"
 #include "backends.h"
 
-#include "books/floor/line_128x7_class1.vqh"
-#include "books/floor/line_128x7_class2.vqh"
+#include "books/floor/line_128x4_class0.vqh"
+#include "books/floor/line_128x4_0sub0.vqh"
+#include "books/floor/line_128x4_0sub1.vqh"
+#include "books/floor/line_128x4_0sub2.vqh"
+#include "books/floor/line_128x4_0sub3.vqh"
 
-#include "books/floor/line_128x7_0sub0.vqh"
+#include "books/floor/line_128x7_class0.vqh"
+#include "books/floor/line_128x7_class1.vqh"
+#include "books/floor/line_128x7_0sub1.vqh"
+#include "books/floor/line_128x7_0sub2.vqh"
+#include "books/floor/line_128x7_0sub3.vqh"
 #include "books/floor/line_128x7_1sub1.vqh"
 #include "books/floor/line_128x7_1sub2.vqh"
 #include "books/floor/line_128x7_1sub3.vqh"
-#include "books/floor/line_128x7_2sub1.vqh"
-#include "books/floor/line_128x7_2sub2.vqh"
-#include "books/floor/line_128x7_2sub3.vqh"
-
-#include "books/floor/line_128x9_class1.vqh"
-#include "books/floor/line_128x9_class2.vqh"
-
-#include "books/floor/line_128x9_0sub0.vqh"
-#include "books/floor/line_128x9_1sub1.vqh"
-#include "books/floor/line_128x9_1sub2.vqh"
-#include "books/floor/line_128x9_1sub3.vqh"
-#include "books/floor/line_128x9_2sub1.vqh"
-#include "books/floor/line_128x9_2sub2.vqh"
-#include "books/floor/line_128x9_2sub3.vqh"
-
-#include "books/floor/line_128x19_class1.vqh"
-#include "books/floor/line_128x19_class2.vqh"
-
-#include "books/floor/line_128x19_0sub0.vqh"
-#include "books/floor/line_128x19_1sub1.vqh"
-#include "books/floor/line_128x19_1sub2.vqh"
-#include "books/floor/line_128x19_1sub3.vqh"
-#include "books/floor/line_128x19_2sub1.vqh"
-#include "books/floor/line_128x19_2sub2.vqh"
-#include "books/floor/line_128x19_2sub3.vqh"
-
-#include "books/floor/line_1024x31_class0.vqh"
-#include "books/floor/line_1024x31_class1.vqh"
-#include "books/floor/line_1024x31_class2.vqh"
-#include "books/floor/line_1024x31_class3.vqh"
-
-#include "books/floor/line_1024x31_0sub0.vqh"
-#include "books/floor/line_1024x31_0sub1.vqh"
-#include "books/floor/line_1024x31_1sub0.vqh"
-#include "books/floor/line_1024x31_1sub1.vqh"
-#include "books/floor/line_1024x31_2sub1.vqh"
-#include "books/floor/line_1024x31_2sub2.vqh"
-#include "books/floor/line_1024x31_2sub3.vqh"
-#include "books/floor/line_1024x31_3sub1.vqh"
-#include "books/floor/line_1024x31_3sub2.vqh"
-#include "books/floor/line_1024x31_3sub3.vqh"
 
+#include "books/floor/line_128x11_class1.vqh"
+#include "books/floor/line_128x11_class2.vqh"
+#include "books/floor/line_128x11_class3.vqh"
+#include "books/floor/line_128x11_0sub0.vqh"
+#include "books/floor/line_128x11_1sub0.vqh"
+#include "books/floor/line_128x11_1sub1.vqh"
+#include "books/floor/line_128x11_2sub1.vqh"
+#include "books/floor/line_128x11_2sub2.vqh"
+#include "books/floor/line_128x11_2sub3.vqh"
+#include "books/floor/line_128x11_3sub1.vqh"
+#include "books/floor/line_128x11_3sub2.vqh"
+#include "books/floor/line_128x11_3sub3.vqh"
+
+#include "books/floor/line_128x17_class1.vqh"
+#include "books/floor/line_128x17_class2.vqh"
+#include "books/floor/line_128x17_class3.vqh"
+#include "books/floor/line_128x17_0sub0.vqh"
+#include "books/floor/line_128x17_1sub0.vqh"
+#include "books/floor/line_128x17_1sub1.vqh"
+#include "books/floor/line_128x17_2sub1.vqh"
+#include "books/floor/line_128x17_2sub2.vqh"
+#include "books/floor/line_128x17_2sub3.vqh"
+#include "books/floor/line_128x17_3sub1.vqh"
+#include "books/floor/line_128x17_3sub2.vqh"
+#include "books/floor/line_128x17_3sub3.vqh"
+
+#include "books/floor/line_1024x27_class1.vqh"
+#include "books/floor/line_1024x27_class2.vqh"
+#include "books/floor/line_1024x27_class3.vqh"
+#include "books/floor/line_1024x27_class4.vqh"
+#include "books/floor/line_1024x27_0sub0.vqh"
+#include "books/floor/line_1024x27_1sub0.vqh"
+#include "books/floor/line_1024x27_1sub1.vqh"
+#include "books/floor/line_1024x27_2sub0.vqh"
+#include "books/floor/line_1024x27_2sub1.vqh"
+#include "books/floor/line_1024x27_3sub1.vqh"
+#include "books/floor/line_1024x27_3sub2.vqh"
+#include "books/floor/line_1024x27_3sub3.vqh"
+#include "books/floor/line_1024x27_4sub1.vqh"
+#include "books/floor/line_1024x27_4sub2.vqh"
+#include "books/floor/line_1024x27_4sub3.vqh"
+
+static static_codebook *_floor_44_128x4_books[]={
+  &_huff_book_line_128x4_class0,
+  &_huff_book_line_128x4_0sub0,
+  &_huff_book_line_128x4_0sub1,
+  &_huff_book_line_128x4_0sub2,
+  &_huff_book_line_128x4_0sub3,
+};
 static static_codebook *_floor_44_128x7_books[]={
+  &_huff_book_line_128x7_class0,
   &_huff_book_line_128x7_class1,
-  &_huff_book_line_128x7_class2,
   
-  &_huff_book_line_128x7_0sub0,
+  &_huff_book_line_128x7_0sub1,
+  &_huff_book_line_128x7_0sub2,
+  &_huff_book_line_128x7_0sub3,
   &_huff_book_line_128x7_1sub1,
   &_huff_book_line_128x7_1sub2,
-  &_huff_book_line_128x7_1sub3,
-  &_huff_book_line_128x7_2sub1,
-  &_huff_book_line_128x7_2sub2,
-  &_huff_book_line_128x7_2sub3, 
-};
-static static_codebook *_floor_44_128x9_books[]={
-  &_huff_book_line_128x9_class1,
-  &_huff_book_line_128x9_class2,
+  &_huff_book_line_128x7_1sub3, 
+};
+static static_codebook *_floor_44_128x11_books[]={
+  &_huff_book_line_128x11_class1,
+  &_huff_book_line_128x11_class2,
+  &_huff_book_line_128x11_class3,
   
-  &_huff_book_line_128x9_0sub0,
-  &_huff_book_line_128x9_1sub1,
-  &_huff_book_line_128x9_1sub2,
-  &_huff_book_line_128x9_1sub3,
-  &_huff_book_line_128x9_2sub1,
-  &_huff_book_line_128x9_2sub2,
-  &_huff_book_line_128x9_2sub3, 
-};
-static static_codebook *_floor_44_128x19_books[]={
-  &_huff_book_line_128x19_class1,
-  &_huff_book_line_128x19_class2,
+  &_huff_book_line_128x11_0sub0,
+  &_huff_book_line_128x11_1sub0,
+  &_huff_book_line_128x11_1sub1,
+  &_huff_book_line_128x11_2sub1,
+  &_huff_book_line_128x11_2sub2,
+  &_huff_book_line_128x11_2sub3, 
+  &_huff_book_line_128x11_3sub1,
+  &_huff_book_line_128x11_3sub2,
+  &_huff_book_line_128x11_3sub3, 
+};
+static static_codebook *_floor_44_128x17_books[]={
+  &_huff_book_line_128x17_class1,
+  &_huff_book_line_128x17_class2,
+  &_huff_book_line_128x17_class3,
+  
+  &_huff_book_line_128x17_0sub0,
+  &_huff_book_line_128x17_1sub0,
+  &_huff_book_line_128x17_1sub1,
+  &_huff_book_line_128x17_2sub1,
+  &_huff_book_line_128x17_2sub2,
+  &_huff_book_line_128x17_2sub3, 
+  &_huff_book_line_128x17_3sub1,
+  &_huff_book_line_128x17_3sub2,
+  &_huff_book_line_128x17_3sub3, 
+};
+static static_codebook *_floor_44_1024x27_books[]={
+  &_huff_book_line_1024x27_class1,
+  &_huff_book_line_1024x27_class2,
+  &_huff_book_line_1024x27_class3,
+  &_huff_book_line_1024x27_class4,
   
-  &_huff_book_line_128x19_0sub0,
-  &_huff_book_line_128x19_1sub1,
-  &_huff_book_line_128x19_1sub2,
-  &_huff_book_line_128x19_1sub3,
-  &_huff_book_line_128x19_2sub1,
-  &_huff_book_line_128x19_2sub2,
-  &_huff_book_line_128x19_2sub3, 
-};
-
-static static_codebook *_floor_44_1024x31_books[]={
-    &_huff_book_line_1024x31_class0,
-    &_huff_book_line_1024x31_class1,
-    &_huff_book_line_1024x31_class2,
-    &_huff_book_line_1024x31_class3,
-    
-    &_huff_book_line_1024x31_0sub0,
-    &_huff_book_line_1024x31_0sub1,
-    &_huff_book_line_1024x31_1sub0, 
-    &_huff_book_line_1024x31_1sub1,
-    &_huff_book_line_1024x31_2sub1,  
-    &_huff_book_line_1024x31_2sub2,
-    &_huff_book_line_1024x31_2sub3, 
-    &_huff_book_line_1024x31_3sub1,
-    &_huff_book_line_1024x31_3sub2,
-    &_huff_book_line_1024x31_3sub3,
+  &_huff_book_line_1024x27_0sub0,
+  &_huff_book_line_1024x27_1sub0,
+  &_huff_book_line_1024x27_1sub1,
+  &_huff_book_line_1024x27_2sub0,
+  &_huff_book_line_1024x27_2sub1,
+  &_huff_book_line_1024x27_3sub1,
+  &_huff_book_line_1024x27_3sub2,
+  &_huff_book_line_1024x27_3sub3,
+  &_huff_book_line_1024x27_4sub1,
+  &_huff_book_line_1024x27_4sub2,
+  &_huff_book_line_1024x27_4sub3,
 };
 
-static static_codebook **_floor_44_books[5]={
+static static_codebook **_floor_44_books[9]={
+  _floor_44_128x4_books,
+  _floor_44_128x4_books,
   _floor_44_128x7_books,
-  _floor_44_128x9_books,
-  _floor_44_128x19_books,
-  _floor_44_1024x31_books,
-  _floor_44_1024x31_books
+  _floor_44_128x7_books,
+  _floor_44_128x11_books,
+  _floor_44_128x17_books,
+  _floor_44_128x17_books,
+  _floor_44_1024x27_books,
+  _floor_44_1024x27_books
 };
 
-static vorbis_info_floor1 _floor_44[5]={
+static vorbis_info_floor1 _floor_44[9]={
+  /* 128 x 4 */
   {
-    3,{0,1,2},{1,3,3},{0,2,2},{-1,0,1},
-    {{2},{-1,3,4,5},{-1,6,7,8}},
-    4,{0,128, 7, 2,1,4, 23,13,45},
-    
-    60,30,500,
-    999,999,0,18.,
-    8,70,
-    -1 /* lowpass! */
+    1,{0},{4},{2},{0},
+    {{1,2,3,4}},
+    4,{0,128, 33,8,16,58},
+
+    60,30,500,   0.,18.,  -1
   },
+  /* 256 x 4 */
+  {
+    1,{0},{4},{2},{0},
+    {{1,2,3,4}},
+    4,{0,256, 66,16,32,116},
 
+    60,30,500,   0.,18.,  -1
+  },
+  /* 128 x 7 */
   {
-    3,{0,1,2},{1,4,4},{0,2,2},{-1,0,1},
-    {{2},{-1,3,4,5},{-1,6,7,8}},
-    4,{0,128, 13, 4,2,7,1,  44,30,62,20},
+    2,{0,1},{3,4},{2,2},{0,1},
+    {{-1,2,3,4},{-1,5,6,7}},
+    4,{0,128, 8,2,28, 1,4,14,58},
     
-    60,30,500,
-    999,999,0,18.,
-    8,70,
-    -1 /* lowpass! */
+    60,30,500,   0.,18.,  -1
   },
-
-
+  /* 256 x 7 */
   {
-    6,{0,1,1,1,2,2},{4,3,3},{0,2,2},{-1,0,1},
-    {{2},{-1,3,4,5},{-1,6,7,8}},
-    2,{0,128, 6,17,30,58, 2,1,4, 11,8,14, 23,20,26, 41,35,48, 84,69,103},
+    2,{0,1},{3,4},{2,2},{0,1},
+    {{-1,2,3,4},{-1,5,6,7}},
+    4,{0,256, 16,4,56, 2,8,28,116},
     
-    60,30,500,
-    999,999,1,18.,
-    8,70,
-    -1 /* lowpass */
+    60,30,500,   0.,18.,  -1
   },
 
+  /* 128 x 11 */
   {
-    10,{0,1,2,2,2,2,2, 3,3,3},{3,4,3,3},{1,1,2,2},{0,1,2,3},
-    {{4,5},{6,7},{-1,8,9,10},{-1,11,12,13}},
-    2,{0,1024, 88,31,243, 14,54,143,460, 6,3,10, 22,18,26, 41,36,47, 
-       69,61,78, 112,99,126, 185,162,211, 329,282,387, 672,553,825},
-  
-    60,30,400,
-    20,8,1,18.,
-    20,600,
-    -1 /* lowpass */
+    4,{0,1,2,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
+    {{3},{4,5},{-1,6,7,8},{-1,9,10,11}},
+    
+    2,{0,128,  6,23,  2,12,46,  1,4,8,  16,33,70},
+    
+     60,30,500,   0,18.,  -1
   },
+    
+  /* 128 x 17 */
   {
-    10,{0,1,2,2,2,2,2, 3,3,3},{3,4,3,3},{1,1,2,2},{0,1,2,3},
-    {{4,5},{6,7},{-1,8,9,10},{-1,11,12,13}},
-    2,{0,2048, 176,62,486, 28,108,286,920, 12,6,20, 44,36,52, 82,72,94, 
-       138,122,156, 224,198,252, 370,324,422, 658,564,774, 1344,1106,1650},
+    6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
+    {{2},{3,4},{-1,5,6,7},{-1,8,9,10}},
+    2,{0,128,  10,39,  2,6,14,  19,28,70,  1,4,8,  12,16,23,  33,46,93},
+    
+    60,30,500,    0,18.,  -1 
+  },
   
-    60,30,400,
-    20,8,1,18.,
-    20,600,
-    -1 /* lowpass */
+  /* 1024 x 17 */
+  {
+    6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
+    {{2},{3,4},{-1,5,6,7},{-1,8,9,10}},
+    2,{0,1024,  79,312,  14,46,111,  158,220,556,  
+       6,33,65,  93,130,186,  260,372,750},
+    
+    60,30,500,    0,18.,  -1 /* lowpass! */
+  },
+  /* 1024 x 27 */
+  {
+    8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3},
+    {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}},
+    2,{0,1024,   93,23,372, 6,46,186,750,  14,33,65, 130,260,556,
+       3,10,18,28,  39,55,79,111,  158,220,312,  464,650,850},
+    
+    60,30,500,    3,18.,  -1 /* lowpass */
+  },
+  /* 2048 x 27 */
+  {
+    8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3},
+    {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}},
+    2,{0,2048,   186,46,744, 12,92,372,1500,  28,66,130, 260,520,1112,
+       6,20,36,56,  78,110,158,222,  316,440,624,  928,1300,1700},
+    
+    60,30,500,    3,18.,  -1 /* lowpass */
   }
 };
 

<p><p>1.15.2.8  +140 -64   vorbis/lib/modes/psych_44.h

Index: psych_44.h
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/modes/psych_44.h,v
retrieving revision 1.15.2.7
retrieving revision 1.15.2.8
diff -u -r1.15.2.7 -r1.15.2.8
--- psych_44.h	2002/06/24 00:06:04	1.15.2.7
+++ psych_44.h	2002/06/26 00:37:47	1.15.2.8
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: key psychoacoustic settings for 44.1/48kHz
- last mod: $Id: psych_44.h,v 1.15.2.7 2002/06/24 00:06:04 xiphmont Exp $
+ last mod: $Id: psych_44.h,v 1.15.2.8 2002/06/26 00:37:47 xiphmont Exp $
 
  ********************************************************************/
 
@@ -24,31 +24,31 @@
    {20.f,14.f,12.f,12.f,12.f,12.f,12.f}, 
    {-60.f,-30.f,-40.f,-40.f,-40.f,-40.f,-40.f}, 2,-75.f,
    -6.f,
-   {99.},{{99.},{99.}},{99.}
+   {99.},{{99.},{99.}},{0},{0}
   },
   {8,   /* lines per eighth octave */
    {14.f,10.f,10.f,10.f,10.f,10.f,10.f}, 
    {-40.f,-30.f,-25.f,-25.f,-25.f,-25.f,-25.f}, 2,-80.f,
    -6.f,
-   {99.},{{99.},{99.}},{99.}
+   {99.},{{99.},{99.}},{0},{0}
   },
   {8,   /* lines per eighth octave */
    {12.f,10.f,10.f,10.f,10.f,10.f,10.f}, 
    {-20.f,-20.f,-15.f,-15.f,-15.f,-15.f,-15.f}, 0,-80.f,
    -6.f,
-   {99.},{{99.},{99.}},{99.}
+   {99.},{{99.},{99.}},{0},{0}
   },
   {8,   /* lines per eighth octave */
    {10.f,8.f,8.f,8.f,8.f,8.f,8.f}, 
    {-20.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f}, 0,-80.f,
    -6.f,
-   {99.},{{99.},{99.}},{99.}
+   {99.},{{99.},{99.}},{0},{0}
   },
   {8,   /* lines per eighth octave */
    {10.f,6.f,6.f,6.f,6.f,6.f,6.f}, 
    {-15.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f}, 0,-85.f,
    -6.f,
-   {99.},{{99.},{99.}},{99.}
+   {99.},{{99.},{99.}},{0},{0}
   },
 };
 
@@ -136,12 +136,68 @@
   {{  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 10 */
 };
 
-static noise3 _psy_noisebias_long[11]={
-  /*63     125     250     500      1k       2k      4k      8k     16k*/
+static noise3 _psy_noisebias_trans[11]={
+  /*  63     125     250     500      1k       2k      4k      8k     16k*/
   /* 0 */
-  {{{-10,-10,-10,-10,-10,-10, -8, -8,  0,  2,  4,  4,  5,  8,  8,  10, 10},
+  {{{-15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  4,  4,  5,  5,  5,  8, 10},
+
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2,  0,  0,  0,  2,  4, 10},
+    //{-20,-20,-20,-20,-20,-18,-14,-10, -6, -2,  2,  2,  3,  3,  4,  4, 10},
+
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -4, -4, -4, -2}}},
+  /* 1 */
+  {{{-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -2, -2,  1,  1,  2,  2,  4},
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -2, -2,  1,  1,  2,  2,  4},
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -2, -2,  1,  1,  2,  2,  4}}},
+  /* 2 */
+  {{{-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1,  0,  1,  2},
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1,  0,  1,  2},
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1,  0,  1,  2}}},
+  /* 3 */
+  {{{-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1,  0,  1,  2},
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1,  0,  1,  2},
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1,  0,  1,  2}}},
+  /* 4 */
+  {{
     {-20,-20,-18,-18,-18,-16,-14, -8, -6, -2,  0,  2,  3,  3,  4,  4, 10},
-    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -3, -4, -4, -2, -1,  0,  0,  2}}},
+    {-20,-20,-18,-18,-18,-16,-14, -8, -6, -2,  0,  2,  3,  3,  4,  4, 10},
+    //{-20,-20,-20,-20,-20,-20,-20,-10, -6, -3, -4, -4, -2, -1,  0,  0,  2},
+    {-30,-30,-30,-30,-30,-30,-30,-30,-26,-20,-20,-20,-20,-20,-16,-14,-10}}},
+  /* 5 */
+  {{{-20,-20,-20,-20,-20,-20,-20,-18,-10, -4, -6, -6, -3, -2, -2, -2,  0},
+    {-20,-20,-20,-20,-20,-20,-20,-18,-10, -4, -6, -6, -3, -2, -2, -2,  0},
+    {-20,-20,-20,-20,-20,-20,-20,-18,-10, -4, -6, -6, -3, -2, -2, -2,  0}}},
+  /* 6 */
+  {{{-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -8, -8, -7, -7, -6, -6, -4},
+    {-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -8, -8, -7, -7, -6, -6, -4},
+    {-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -8, -8, -7, -7, -6, -6, -4}}},
+  /* 7 */
+  {{{-24,-24,-24,-24,-24,-24,-24,-18,-14,-14,-16,-16,-14,-12,-10,-10, -8},
+    {-24,-24,-24,-24,-24,-24,-24,-18,-14,-14,-16,-16,-14,-12,-10,-10, -8},
+    {-24,-24,-24,-24,-24,-24,-24,-18,-14,-14,-16,-16,-14,-12,-10,-10, -8}}},
+  /* 8 */
+  {{{-24,-24,-24,-24,-24,-24,-24,-20,-20,-20,-20,-20,-16,-16,-14,-14,-10},
+    {-24,-24,-24,-24,-24,-24,-24,-20,-20,-20,-20,-20,-16,-16,-14,-14,-10},
+    {-24,-24,-24,-24,-24,-24,-24,-20,-20,-20,-20,-20,-16,-16,-14,-14,-10}}},
+  /* 9 */
+  {{{-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-24,-24,-24,-24},
+    {-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-24,-24,-24,-24},
+    {-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-24,-24,-24,-24}}},
+  /* 10 */
+  {{{-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-46},
+    {-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-46},
+    {-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-46}}},
+};
+
+static noise3 _psy_noisebias_long[11]={
+    /*63     125     250     500      1k       2k      4k      8k     16k*/
+  /* 0 */
+  {{{-10,-10,-10,-10,-10,-10, -8, -8,  0,  2,  4,  4,  5,  5,  5,  8, 10},
+
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2,  0,  0,  0,  0,  2,  4,  10},
+    //{-20,-20,-18,-18,-18,-16,-14, -8, -6, -2,  0,  2,  3,  3,  4,  4, 10},
+
+    {-20,-20,-20,-20,-20,-20,-20,-10, -6, -6, -6, -6, -6, -4, -4, -4, -2}}},
   /* 1 */
   {{{-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -2, -2,  1,  1,  2,  2,  4},
     {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -2, -2,  1,  1,  2,  2,  4},
@@ -189,8 +245,11 @@
 static noise3 _psy_noisebias_impulse[11]={
   /*  63     125     250     500      1k      2k      4k      8k     16k*/
   /* 0 */
-  {{{-15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  4,  4,  5,  6,  8,  8, 10},
-    {-20,-20,-20,-20,-20,-18,-14,-10,-10, -2,  2,  2,  2,  2,  2,  3,  6},
+  {{{-20,-20,-20,-20,-20,-18,-14,-10, -4,  2,  4,  4,  5,  5,  5,  5, 10},
+
+    {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -2,  2,  2,  4,  4,  5,  8},
+    //{-20,-20,-20,-20,-20,-18,-14,-10,-10, -2,  2,  2,  2,  2,  2,  3,  6},
+
     {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}},
   /* 1 */
   {{{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -2, -2, -2, -2,  2},
@@ -236,12 +295,17 @@
     {-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50}}},
 };
 
-static noise3 _psy_noisebias_other[11]={
-  /*63     125     250     500      1k       2k      4k      8k     16k*/
+static noise3 _psy_noisebias_padding[11]={
+  /*  63     125     250     500      1k       2k      4k      8k     16k*/
   /* 0 */
-  {{{-15,-15,-15,-15,-15,-12,-10, -8,  0,  2,  4,  4,  5,  6,  8,  8, 10},
-    {-20,-20,-20,-20,-20,-18,-14,-10, -6, -2,  2,  2,  3,  3,  4,  4, 10},
-    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -2, -1,  0,  0,  2}}},
+  {{{-20,-20,-20,-20,-20,-18,-14,-10, -4,  2,  4,  4,  5,  5,  5,  8, 10},
+
+
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2,  2,  3,  6,  6,  8, 10},
+    //{-20,-20,-20,-20,-20,-18,-14,-10, -6, -2,  2,  2,  3,  3,  4,  4, 10},
+
+
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -4, -4, -2,  0,  2}}},
   /* 1 */
   {{{-26,-26,-26,-26,-26,-22,-20,-14,-10, -2, -2, -2,  1,  1,  2,  2,  4},
     {-26,-26,-26,-26,-26,-22,-20,-14,-10, -2, -2, -2,  1,  1,  2,  2,  4},
@@ -294,7 +358,7 @@
 };
 
 static int _psy_tone_suppress[11]={
-  -10,-20,-20,-20,-24,-30,-40,-40,-45,-45,-45,
+  -20,-20,-20,-20,-24,-30,-40,-40,-45,-45,-45,
 };
 
 static int _psy_tone_0dB[11]={
@@ -302,7 +366,7 @@
 };
 
 static int _psy_noise_suppress[11]={
-   0,-24,-24,-24,-24,-30,-40,-40,-45,-45,-45,
+ -24,-24,-24,-24,-24,-30,-40,-40,-45,-45,-45,
 };
 
 static vorbis_info_psy _psy_info_template={
@@ -325,7 +389,7 @@
 };
 
 static int _psy_ath_abs[11]={
-  -110,-110,-120,-140,-120,-140,-140,-140,-140,-140,-150,
+  -110,-110,-120,-130,-140,-140,-140,-140,-140,-140,-150,
 };
 
 /* stereo setup.  These don't map directly to quality level, there's
@@ -338,55 +402,67 @@
 
 /* stereo mode by base quality level */
 static adj_stereo _psy_stereo_modes_44[11]={
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         0  */
-  {{ 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0},
-   { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},
-   {3,3.5, 4, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9,10}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         1  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         2  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         3  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         4  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         5  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         6  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         7  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         8  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  /* 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14         9  */
-  {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-   { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}},
-  {{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
-   {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
-   { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}}
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         0  */
+  {{  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  0,  0,  0,  0,  0},
+   {  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  3,  2,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  5,  6,  6,  8, 10, 10, 10},
+   {  8, 10, 12, 14, 15, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         1  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         2  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         3  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         4  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         5  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         6  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         7  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         8  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         9  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
+  /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14        10  */
+  {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1},
+   {  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4},
+   { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
 };
 
 /* tone master attenuation by base quality mode and bitrate tweak */
 
 static att3 _psy_tone_masteratt_44[11]={
-  {{ 30,  20,  10}, -6, 1.25}, /* 4 */
+  {{ 40,  20,  10}, -6, 1.25}, /* 4 */
   {{0},0,0}, /* 1 */
   {{0},0,0}, /* 2 */
   {{0},0,0}, /* 3 */

<p><p>1.11.6.8  +18 -37    vorbis/lib/modes/residue_44.h

Index: residue_44.h
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/modes/residue_44.h,v
retrieving revision 1.11.6.7
retrieving revision 1.11.6.8
diff -u -r1.11.6.7 -r1.11.6.8
--- residue_44.h	2002/06/24 00:06:05	1.11.6.7
+++ residue_44.h	2002/06/26 00:37:48	1.11.6.8
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: toplevel residue templates for 32/44.1/48kHz
- last mod: $Id: residue_44.h,v 1.11.6.7 2002/06/24 00:06:05 xiphmont Exp $
+ last mod: $Id: residue_44.h,v 1.11.6.8 2002/06/26 00:37:48 xiphmont Exp $
 
  ********************************************************************/
 
@@ -45,24 +45,6 @@
   {  .5,   .5, 999.,   .5,  999.,  .5,  4.5,   .5,  8.5,  16.5, 32.5},
 };
 
-#include "books/coupled/_44c0_s_short.vqh"
-#include "books/coupled/_44c0_s_long.vqh"
-
-#include "books/coupled/_44c0_s_p1_0.vqh"
-#include "books/coupled/_44c0_s_p2_0.vqh"
-#include "books/coupled/_44c0_s_p3_0.vqh"
-#include "books/coupled/_44c0_s_p4_0.vqh"
-#include "books/coupled/_44c0_s_p5_0.vqh"
-#include "books/coupled/_44c0_s_p6_0.vqh"
-#include "books/coupled/_44c0_s_p7_0.vqh"
-#include "books/coupled/_44c0_s_p8_0.vqh"
-#include "books/coupled/_44c0_s_p9_0.vqh"
-#include "books/coupled/_44c0_s_p9_1.vqh"
-#include "books/coupled/_44c0_s_p10_0.vqh"
-#include "books/coupled/_44c0_s_p10_1.vqh"
-#include "books/coupled/_44c0_s_p11_0.vqh"
-#include "books/coupled/_44c0_s_p11_1.vqh"
-
 #include "books/coupled/_44c4_s_short.vqh"
 #include "books/coupled/_44c4_s_long.vqh"
 
@@ -84,6 +66,9 @@
 #include "books/coupled/_44c4_sm_long.vqh"
 
 
+#include "books/coupled/res_44c0.vqh"
+
+
 /* mapping conventions:
    only one submap (this would change for efficient 5.1 support for example)*/
 /* Four psychoacoustic profiles are used, one for each blocktype */
@@ -101,19 +86,6 @@
    }
 };
 
-static static_bookblock _resbook_44s_0={
-  {
-    {0},
-    {0,0,&_44c0_s_p1_0},{0,0,&_44c0_s_p2_0},
-    {0,&_44c0_s_p3_0},  {0,&_44c0_s_p4_0},
-    {0,&_44c0_s_p5_0},  {0,&_44c0_s_p6_0},
-    {0,&_44c0_s_p7_0},  {0,&_44c0_s_p8_0},
-    {&_44c0_s_p9_0,&_44c0_s_p9_1},
-    {&_44c0_s_p10_0,&_44c0_s_p10_1},
-    {&_44c0_s_p11_0,&_44c0_s_p11_1}
-   }
-};
-
 static vorbis_residue_template _res_44s_4[]={
   {2,0,  &_residue_44_mid,
    &_huff_book__44c4_s_short,&_huff_book__44c4_sm_short,&_resbook_44s_4},
@@ -122,16 +94,25 @@
    &_huff_book__44c4_s_long,&_huff_book__44c4_sm_long,&_resbook_44s_4}
 };
 
+static static_bookblock _resbook_44s_0={
+  {
+    {0},{0,0,&_44c0_s_p1_0},{0,0,&_44c0_s_p2_0},{0,0,&_44c0_s_p3_0},
+    {0,0,&_44c0_s_p4_0},{0,0,&_44c0_s_p5_0},{0,0,&_44c0_s_p6_0},
+    {&_44c0_s_p7_0,&_44c0_s_p7_1},{&_44c0_s_p8_0,&_44c0_s_p8_1},
+    {&_44c0_s_p9_0,&_44c0_s_p9_1,&_44c0_s_p9_2}
+   }
+};
+
 static vorbis_residue_template _res_44s_0[]={
-  {2,0,  &_residue_44_lo,
-   &_huff_book__44c0_s_short,&_huff_book__44c0_s_short,&_resbook_44s_0},
+  {2,0,  &_residue_44_mid,
+   &_huff_book__44c0_s_short,&_huff_book__44c0_s_short,&_resbook_44s_4},
 
-  {2,0,  &_residue_44_lo,
-   &_huff_book__44c0_s_long,&_huff_book__44c0_s_long,&_resbook_44s_0}
+  {2,0,  &_residue_44_mid,
+   &_huff_book__44c0_s_long,&_huff_book__44c0_s_long,&_resbook_44s_4}
 };
 
 static vorbis_mapping_template _mapres_template_44_stereo[]={
-  { _map_nominal, _res_44s_4 }, /* 0 */
+  { _map_nominal, _res_44s_0 }, /* 0 */
   { _map_nominal, _res_44s_4 }, /* 1 */
   { _map_nominal, _res_44s_4 }, /* 2 */
   { _map_nominal, _res_44s_4 }, /* 3 */

<p><p>No                   revision

<p>No                   revision

<p>1.2.6.2   +27 -43    vorbis/vq/44c0.vqs

Index: 44c0.vqs
===================================================================
RCS file: /usr/local/cvsroot/vorbis/vq/44c0.vqs,v
retrieving revision 1.2.6.1
retrieving revision 1.2.6.2
diff -u -r1.2.6.1 -r1.2.6.2
--- 44c0.vqs	2002/06/24 00:06:06	1.2.6.1
+++ 44c0.vqs	2002/06/26 00:37:53	1.2.6.2
@@ -1,20 +1,8 @@
 cp 44c0_s/resaux_0.vqd _44c0_s_short.vqd
 cp 44c0_s/resaux_1.vqd _44c0_s_long.vqd
 
-cat 44c0_s/res0_part1_pass2.vqd 44c0_s/res1_part1_pass2.vqd > 44c0_s/res_1_2.vqd  
-cat 44c0_s/res0_part2_pass2.vqd 44c0_s/res1_part2_pass2.vqd > 44c0_s/res_2_2.vqd  
-cat 44c0_s/res0_part3_pass1.vqd 44c0_s/res1_part3_pass1.vqd > 44c0_s/res_3_1.vqd  
-cat 44c0_s/res0_part4_pass1.vqd 44c0_s/res1_part4_pass1.vqd > 44c0_s/res_4_1.vqd  
-cat 44c0_s/res0_part5_pass1.vqd 44c0_s/res1_part5_pass1.vqd > 44c0_s/res_5_1.vqd  
-cat 44c0_s/res0_part6_pass1.vqd 44c0_s/res1_part6_pass1.vqd > 44c0_s/res_6_1.vqd  
-cat 44c0_s/res0_part7_pass1.vqd 44c0_s/res1_part7_pass1.vqd > 44c0_s/res_7_1.vqd  
-cat 44c0_s/res0_part8_pass1.vqd 44c0_s/res1_part8_pass1.vqd > 44c0_s/res_8_1.vqd  
-cat 44c0_s/res0_part9_pass0.vqd 44c0_s/res1_part9_pass0.vqd > 44c0_s/res_9_0.vqd  
-cat 44c0_s/res0_part9_pass1.vqd 44c0_s/res1_part9_pass1.vqd > 44c0_s/res_9_1.vqd  
-cat 44c0_s/res0_part10_pass0.vqd 44c0_s/res1_part10_pass0.vqd > 44c0_s/res_10_0.vqd 
-cat 44c0_s/res0_part10_pass1.vqd 44c0_s/res1_part10_pass1.vqd > 44c0_s/res_10_1.vqd 
-cat 44c0_s/res0_part11_pass0.vqd 44c0_s/res1_part11_pass0.vqd > 44c0_s/res_11_0.vqd 
-cat 44c0_s/res0_part11_pass1.vqd 44c0_s/res1_part11_pass1.vqd > 44c0_s/res_11_1.vqd 
+#cp 44c0_sm/resaux_0.vqd _44c0_sm_short.vqd
+#cp 44c0_sm/resaux_1.vqd _44c0_sm_long.vqd
 
 GO
 
@@ -23,38 +11,34 @@
 
 >_44c0_s noninterleaved
 haux _44c0_s_long.vqd 0,64,2
-
-  {  .5,  1.5,  1.5,  2.5,  2.5,  4.5,  4.5,  8.5,  8.5,  16.5, 32.5},
-  {  .5,   .5, 999.,   .5,  999.,  .5,  4.5,   .5,  8.5,  16.5, 32.5},
         
-#     0   1   1   2   2   4   4   8   8  16  32   +      
-#         0  99   0  99   0   4   0   8  16  32   +
-
-#     0   1   2   3   4   5   6   7   8   9  10  11
-# 1                                       .   .   .
-# 2               .   .   .   .   .   .   .   .   .
-# 4       .   .   
- 
-:_p1_0 44c0_s/res_1_2.vqd, 8, nonseq cull, 0 +- 1
-:_p2_0 44c0_s/res_2_2.vqd, 4, nonseq cull, 0 +- 1 2
-
-:_p3_0 44c0_s/res_3_1.vqd, 4, nonseq cull, 0 +- 1 2
-:_p4_0 44c0_s/res_4_1.vqd, 2, nonseq cull, 0 +- 1 2 3 4
+#iter 0
 
-:_p5_0 44c0_s/res_5_1.vqd, 2, nonseq cull, 0 +- 1 2 3 4
-:_p6_0 44c0_s/res_6_1.vqd, 2, nonseq cull, 0 +- 1 2 3 4
+#     0   1   1   2   2   4   8  16  32   +      
+#         0  99   0  99   4   8  16  32   +
 
-:_p7_0 44c0_s/res_7_1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8
-:_p8_0 44c0_s/res_8_1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8
-
-:_p9_0 44c4_s/res_9_0.vqd, 4, nonseq cull, 0 +- 11
-:_p9_1 44c4_s/res_9_1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 
-
-:_p10_0 44c0_s/res_10_0.vqd, 2, nonseq, 0 +- 5 10 15 20 25 30
-:_p10_1 44c0_s/res_10_1.vqd, 2, nonseq, 0 +- 1 2 
-
-:_p11_0 44c0_s/res_11_0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 168
-:_p11_1 44c0_s/res_11_1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10
+#     0   1   2   3   4   5   6   7   8   9
+# 1                               .   .   .
+# 2                               .   .   .
+# 4       .   .   .   .   .   .           .
+ 
+:_p1_0 44c0_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1
+:_p2_0 44c0_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2
+:_p3_0 44c0_s/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2
+:_p4_0 44c0_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4
+:_p5_0 44c0_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4
+:_p6_0 44c0_s/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8
+
+
+:_p7_0 44c0_s/res_part7_pass0.vqd, 4, nonseq cull, 0 +- 11
+:_p7_1 44c0_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 
+
+:_p8_0 44c0_s/res_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30
+:_p8_1 44c0_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 
+
+:_p9_0 44c0_s/res_part9_pass0.vqd, 4, nonseq, 0 +- 169
+:_p9_1 44c0_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 13 26 39 52 65 78 
+:_p9_2 44c0_s/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6
 
 
 

<p><p>1.2.6.3   +1 -1      vorbis/vq/44c4.vqs

Index: 44c4.vqs
===================================================================
RCS file: /usr/local/cvsroot/vorbis/vq/44c4.vqs,v
retrieving revision 1.2.6.2
retrieving revision 1.2.6.3
diff -u -r1.2.6.2 -r1.2.6.3
--- 44c4.vqs	2002/06/24 00:06:06	1.2.6.2
+++ 44c4.vqs	2002/06/26 00:37:53	1.2.6.3
@@ -29,7 +29,7 @@
 #iter 0
 
 #     0   1   1   2   2   4   8  16  32   +      
-#         0  99   0  99   4   4  16  32   +
+#         0  99   0  99   4   8  16  32   +
 
 #     0   1   2   3   4   5   6   7   8   9
 # 1                               .   .   .

<p><p>1.12.6.1  +5 -5      vorbis/vq/huffbuild.c

Index: huffbuild.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/vq/huffbuild.c,v
retrieving revision 1.12
retrieving revision 1.12.6.1
diff -u -r1.12 -r1.12.6.1
--- huffbuild.c	2001/12/20 01:00:39	1.12
+++ huffbuild.c	2002/06/26 00:37:53	1.12.6.1
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: hufftree builder
- last mod: $Id: huffbuild.c,v 1.12 2001/12/20 01:00:39 segher Exp $
+ last mod: $Id: huffbuild.c,v 1.12.6.1 2002/06/26 00:37:53 xiphmont Exp $
 
  ********************************************************************/
 
@@ -127,8 +127,8 @@
 
   {
     long vals=pow(maxval,subn);
-    long *hist=_ogg_malloc(vals*sizeof(long));
-    long *lengths=_ogg_malloc(vals*sizeof(long));
+    long *hist=_ogg_calloc(vals,sizeof(long));
+    long *lengths=_ogg_calloc(vals,sizeof(long));
     
     for(j=loval;j<vals;j++)hist[j]=guard;
     
@@ -168,8 +168,8 @@
   " * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *\n"
   " * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *\n"
   " *                                                                  *\n"
-  " * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001             *\n"
-  " * by the XIPHOPHORUS Company http://www.xiph.org/                  *\n"
+  " * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *\n"
+  " * by the Xiph.Org Foundation http://www.xiph.org/                  *\n"
   " *                                                                  *\n"
   " ********************************************************************\n"
   "\n"

<p><p><p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the commits mailing list