[xiph-cvs] cvs commit: vorbis/lib/modes psych_44.h residue_44.h

Monty xiphmont at xiph.org
Fri May 17 18:39:34 PDT 2002



xiphmont    02/05/17 18:39:33

  Modified:    lib      Tag: branch_monty_20020507 analysis.c backends.h
                        block.c codec_internal.h floor0.c floor1.c
                        mapping0.c psy.c registry.c res0.c synthesis.c
                        vorbisenc.c
               lib/modes Tag: branch_monty_20020507 psych_44.h residue_44.h
  Log:
  Continuing Grand Simplification work in progress.  This commit mostly
  works; testing ongoing.
  
  Monty

Revision  Changes    Path
No                   revision

<p>No                   revision

<p>1.51.2.3  +2 -7      vorbis/lib/analysis.c

Index: analysis.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/analysis.c,v
retrieving revision 1.51.2.2
retrieving revision 1.51.2.3
diff -u -r1.51.2.2 -r1.51.2.3
--- analysis.c	2002/05/14 07:06:40	1.51.2.2
+++ analysis.c	2002/05/18 01:39:27	1.51.2.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: single-block PCM analysis mode dispatch
- last mod: $Id: analysis.c,v 1.51.2.2 2002/05/14 07:06:40 xiphmont Exp $
+ last mod: $Id: analysis.c,v 1.51.2.3 2002/05/18 01:39:27 xiphmont Exp $
 
  ********************************************************************/
 
@@ -30,12 +30,7 @@
 
 /* decides between modes, dispatches to the appropriate mapping. */
 int vorbis_analysis(vorbis_block *vb, ogg_packet *op){
-  vorbis_dsp_state     *vd=vb->vd;
-  backend_lookup_state *b=vd->backend_state;
-  vorbis_info          *vi=vd->vi;
-  codec_setup_info     *ci=vi->codec_setup;
-  int                   type,ret;
-  int                   mode=0;
+  int                   ret;
 
   vb->glue_bits=0;
   vb->time_bits=0;

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

Index: backends.h
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/backends.h,v
retrieving revision 1.12.6.2
retrieving revision 1.12.6.3
diff -u -r1.12.6.2 -r1.12.6.3
--- backends.h	2002/05/14 07:06:40	1.12.6.2
+++ backends.h	2002/05/18 01:39:27	1.12.6.3
@@ -12,7 +12,7 @@
 
  function: libvorbis backend and mapping structures; needed for 
            static mode headers
- last mod: $Id: backends.h,v 1.12.6.2 2002/05/14 07:06:40 xiphmont Exp $
+ last mod: $Id: backends.h,v 1.12.6.3 2002/05/18 01:39:27 xiphmont Exp $
 
  ********************************************************************/
 
@@ -118,7 +118,7 @@
 
   /* encode-only heuristic settings */
   float  ampmax[64];       /* book amp threshholds*/
-  int    blimit[64];       /* subgroup position limits *
+  int    blimit[64];       /* subgroup position limits */
 
 } vorbis_info_residue0;
 

<p><p>1.64.2.3  +11 -10    vorbis/lib/block.c

Index: block.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/block.c,v
retrieving revision 1.64.2.2
retrieving revision 1.64.2.3
diff -u -r1.64.2.2 -r1.64.2.3
--- block.c	2002/05/14 07:06:40	1.64.2.2
+++ block.c	2002/05/18 01:39:27	1.64.2.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: PCM data vector blocking, windowing and dis/reassembly
- last mod: $Id: block.c,v 1.64.2.2 2002/05/14 07:06:40 xiphmont Exp $
+ last mod: $Id: block.c,v 1.64.2.3 2002/05/18 01:39:27 xiphmont Exp $
 
  Handle windowing, overlap-add, etc of the PCM vectors.  This is made
  more amusing by Vorbis' current two allowed block sizes.
@@ -33,7 +33,8 @@
 
 static int ilog2(unsigned int v){
   int ret=0;
-  while(v>1){
+  if(v)--v;
+  while(v){
     ret++;
     v>>=1;
   }
@@ -192,7 +193,7 @@
 
     /* analysis always needs an fft */
     drft_init(&b->fft_look[0],ci->blocksizes[0]);
-    drft_init(&b->fft_look[1],ci->blocksizes[0]);
+    drft_init(&b->fft_look[1],ci->blocksizes[1]);
 
     /* finish the codebooks */
     if(!ci->fullbooks){
@@ -246,16 +247,16 @@
   v->pcm_current=v->centerW;
 
   /* initialize all the backend lookups */
-  b->floor=_ogg_calloc(ci->floors,sizeof(*b->floor));
+  b->flr=_ogg_calloc(ci->floors,sizeof(*b->flr));
   b->residue=_ogg_calloc(ci->residues,sizeof(*b->residue));
 
   for(i=0;i<ci->floors;i++)
-    b->floor[i]=_floor_P[ci->floor_type[i]]->
-      look(vd,ci->floor_param[i]);
+    b->flr[i]=_floor_P[ci->floor_type[i]]->
+      look(v,ci->floor_param[i]);
 
   for(i=0;i<ci->residues;i++)
     b->residue[i]=_residue_P[ci->residue_type[i]]->
-      look(vd,ci->residue_param[i]);    
+      look(v,ci->residue_param[i]);    
 
   return(0);
 }
@@ -306,11 +307,11 @@
         _ogg_free(b->transform[1]);
       }
 
-      if(b->floor){
+      if(b->flr){
         for(i=0;i<ci->floors;i++)
           _floor_P[ci->floor_type[i]]->
-	    free_look(b->floor[i]);
-	_ogg_free(b->floor);
+	    free_look(b->flr[i]);
+	_ogg_free(b->flr);
       }
       if(b->residue){
         for(i=0;i<ci->residues;i++)

<p><p>1.14.4.3  +5 -4      vorbis/lib/codec_internal.h

Index: codec_internal.h
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/codec_internal.h,v
retrieving revision 1.14.4.2
retrieving revision 1.14.4.3
diff -u -r1.14.4.2 -r1.14.4.3
--- codec_internal.h	2002/05/14 07:06:40	1.14.4.2
+++ codec_internal.h	2002/05/18 01:39:27	1.14.4.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: libvorbis codec headers
- last mod: $Id: codec_internal.h,v 1.14.4.2 2002/05/14 07:06:40 xiphmont Exp $
+ last mod: $Id: codec_internal.h,v 1.14.4.3 2002/05/18 01:39:27 xiphmont Exp $
 
  ********************************************************************/
 
@@ -28,6 +28,8 @@
 
 #define PACKETBLOBS 15
 
+static double stereo_threshholds[]={0.0, 2.5, 4.5, 8.5, 16.5};
+
 typedef struct vorbis_block_internal{
   float  **pcmdelay;  /* this is a pointer into local storage */ 
   float  ampmax;
@@ -63,7 +65,7 @@
   drft_lookup             fft_look[2];
 
   int                     modebits;
-  vorbis_look_floor     **floor;
+  vorbis_look_floor     **flr;
   vorbis_look_residue   **residue;
   vorbis_look_psy        *psy;
   vorbis_look_psy_global *psy_g_look;
@@ -104,7 +106,7 @@
   int impulse_block_p;
   int stereo_couple_p;
 
-  int    stereo_point_dB;
+  int    stereo_point_dB_q;
   double stereo_point_kHz[2];
   double lowpass_kHz[2];
 
@@ -153,7 +155,6 @@
   static_codebook        *book_param[256];
   codebook               *fullbooks;
 
-  int                    block_to_psy_map[4];
   vorbis_info_psy        *psy_param[4]; /* encode only */
   vorbis_info_psy_global psy_g_param;
 

<p><p>1.51.4.3  +4 -7      vorbis/lib/floor0.c

Index: floor0.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/floor0.c,v
retrieving revision 1.51.4.2
retrieving revision 1.51.4.3
diff -u -r1.51.4.2 -r1.51.4.3
--- floor0.c	2002/05/14 07:06:40	1.51.4.2
+++ floor0.c	2002/05/18 01:39:27	1.51.4.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: floor backend 0 implementation
- last mod: $Id: floor0.c,v 1.51.4.2 2002/05/14 07:06:40 xiphmont Exp $
+ last mod: $Id: floor0.c,v 1.51.4.3 2002/05/18 01:39:27 xiphmont Exp $
 
  ********************************************************************/
 
@@ -112,12 +112,13 @@
    linear block and mapping sizes */
 
 static void floor0_map_lazy_init(vorbis_block      *vb,
-				 vorbis_info_floor *info,
+				 vorbis_info_floor *infoX,
                                  vorbis_look_floor0 *look){
-  if(!look->linearmap[W]){
+  if(!look->linearmap[vb->W]){
     vorbis_dsp_state   *vd=vb->vd;
     vorbis_info        *vi=vd->vi;
     codec_setup_info   *ci=vi->codec_setup;
+    vorbis_info_floor0 *info=(vorbis_info_floor0 *)infoX;
     int W=vb->W;
     int n=ci->blocksizes[W]/2,j;
 
@@ -147,13 +148,9 @@
 static vorbis_look_floor *floor0_look(vorbis_dsp_state *vd,
                                       vorbis_info_floor *i){
   int j;
-  float scale;
-  vorbis_info        *vi=vd->vi;
-  codec_setup_info   *ci=vi->codec_setup;
   vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
   vorbis_look_floor0 *look=_ogg_calloc(1,sizeof(*look));
   look->m=info->order;
-  look->n=ci->blocksizes[mi->blockflag]/2;
   look->ln=info->barkmap;
   look->vi=info;
 

<p><p>1.20.4.3  +2 -3      vorbis/lib/floor1.c

Index: floor1.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/floor1.c,v
retrieving revision 1.20.4.2
retrieving revision 1.20.4.3
diff -u -r1.20.4.2 -r1.20.4.3
--- floor1.c	2002/05/14 07:06:41	1.20.4.2
+++ floor1.c	2002/05/18 01:39:27	1.20.4.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: floor backend 1 implementation
- last mod: $Id: floor1.c,v 1.20.4.2 2002/05/14 07:06:41 xiphmont Exp $
+ last mod: $Id: floor1.c,v 1.20.4.3 2002/05/18 01:39:27 xiphmont Exp $
 
  ********************************************************************/
 
@@ -618,7 +618,6 @@
 int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look,
                           const float *logmdct,   /* in */
                           const float *logmask){
-  static int seq=0;
   long i,j;
   vorbis_info_floor1 *info=look->vi;
   long n=info->n;
@@ -1143,7 +1142,7 @@
   vorbis_info_floor1 *info=look->vi;
 
   codec_setup_info   *ci=vb->vd->vi->codec_setup;
-  int                  n=ci->blocksizes[vb->mode]/2;
+  int                  n=ci->blocksizes[vb->W]/2;
   int j;
 
   if(memo){

<p><p>1.49.2.3  +57 -44    vorbis/lib/mapping0.c

Index: mapping0.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/mapping0.c,v
retrieving revision 1.49.2.2
retrieving revision 1.49.2.3
diff -u -r1.49.2.2 -r1.49.2.3
--- mapping0.c	2002/05/14 07:06:41	1.49.2.2
+++ mapping0.c	2002/05/18 01:39:28	1.49.2.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: channel mapping 0 implementation
- last mod: $Id: mapping0.c,v 1.49.2.2 2002/05/14 07:06:41 xiphmont Exp $
+ last mod: $Id: mapping0.c,v 1.49.2.3 2002/05/18 01:39:28 xiphmont Exp $
 
  ********************************************************************/
 
@@ -47,9 +47,10 @@
   }
 }
 
-static int ilog2(unsigned int v){
+static int ilog(unsigned int v){
   int ret=0;
-  while(v>1){
+  if(v)--v;
+  while(v){
     ret++;
     v>>=1;
   }
@@ -79,8 +80,8 @@
     oggpack_write(opb,info->coupling_steps-1,8);
     
     for(i=0;i<info->coupling_steps;i++){
-      oggpack_write(opb,info->coupling_mag[i],ilog2(vi->channels));
-      oggpack_write(opb,info->coupling_ang[i],ilog2(vi->channels));
+      oggpack_write(opb,info->coupling_mag[i],ilog(vi->channels));
+      oggpack_write(opb,info->coupling_ang[i],ilog(vi->channels));
     }
   }else
     oggpack_write(opb,0,1);
@@ -115,8 +116,8 @@
     info->coupling_steps=oggpack_read(opb,8)+1;
 
     for(i=0;i<info->coupling_steps;i++){
-      int testM=info->coupling_mag[i]=oggpack_read(opb,ilog2(vi->channels));
-      int testA=info->coupling_ang[i]=oggpack_read(opb,ilog2(vi->channels));
+      int testM=info->coupling_mag[i]=oggpack_read(opb,ilog(vi->channels));
+      int testA=info->coupling_ang[i]=oggpack_read(opb,ilog(vi->channels));
 
       if(testM<0 || 
          testA<0 || 
@@ -190,9 +191,8 @@
   float global_ampmax=vbi->ampmax;
   float *local_ampmax=alloca(sizeof(*local_ampmax)*vi->channels);
   int blocktype=vbi->blocktype;
-  vorbis_psy_look *psy_look=
-    b->psy+ci->block_to_psy_map[blocktype+(vb->W?2:0)];
-  long setup_bits=0;
+  vorbis_look_psy *psy_look=
+    b->psy+blocktype+(vb->W?2:0);
 
   for(i=0;i<vi->channels;i++){
     float scale=4.f/n;
@@ -256,6 +256,12 @@
     float   *tone         = _vorbis_block_alloc(vb,n/2*sizeof(*tone));
     
     for(i=0;i<vi->channels;i++){
+      /* the encoder setup assumes that all the modes used by any
+	 specific bitrate tweaking use the same floor */
+      
+      int modenumber=ci->modeselect[vb->W][PACKETBLOBS/2];
+      vorbis_info_mapping0 *info=ci->map_param[modenumber];
+
       int submap=info->chmuxlist[i];
       
       /* the following makes things clearer to *me* anyway */
@@ -265,11 +271,6 @@
       float *logmdct =logfft+n/2;
       float *logmask =logfft;
 
-      /* the encoder setup assumes that all the modes used by any
-	 specific bitrate tweaking use the same floor */
-      
-      int modenumber=ci->modeselect[vb->W][PACKETBLOBS/2];
-      vorbis_info_mapping0 *info=ci->map_param[modenumber];
       vb->mode=modenumber;
 
       floor_posts[i]=_vorbis_block_alloc(vb,PACKETBLOBS*sizeof(**floor_posts));
@@ -278,13 +279,14 @@
       for(j=0;j<n/2;j++)
         logmdct[j]=todB(mdct+j);
 
-      //#if 0
-      if(vi->channels==2)
+#if 0
+      if(vi->channels==2){
         if(i==0)
           _analysis_output_always("mdctL",seq,logmdct,n/2,1,0,0);
         else
           _analysis_output_always("mdctR",seq,logmdct,n/2,1,0,0);
-      //#endif 
+      }
+#endif 
 
       /* first step; noise masking.  Not only does 'noise masking'
          give us curves from which we can decide how much resolution
@@ -292,17 +294,18 @@
          us a tonality estimate (the larger the value in the
          'noise_depth' vector, the more tonal that area is) */
 
-      _vp_noisemask(psy_look.
+      _vp_noisemask(psy_look,
                     logmdct,
                     noise); /* noise does not have by-frequency offset
                                bias applied yet */
-      //#if 0
-      if(vi->channels==2)
+#if 0
+      if(vi->channels==2){
         if(i==0)
           _analysis_output_always("noiseL",seq,noise,n/2,1,0,0);
         else
           _analysis_output_always("noiseR",seq,noise,n/2,1,0,0);
-      //#endif
+      }
+#endif
 
       /* second step: 'all the other crap'; all the stuff that isn't
          computed/fit for bitrate management goes in the second psy
@@ -315,11 +318,12 @@
                    local_ampmax[i]);
 
 #if 0
-      if(vi->channels==2)
+      if(vi->channels==2){
         if(i==0)
           _analysis_output_always("toneL",seq,tone,n/2,1,0,0);
         else
           _analysis_output_always("toneR",seq,tone,n/2,1,0,0);
+      }
 #endif
 
       /* third step; we offset the noise vectors, overlay tone
@@ -334,11 +338,12 @@
                          logmask);
 
 #if 0
-      if(vi->channels==2)
+      if(vi->channels==2){
         if(i==0)
           _analysis_output_always("mask1L",seq,logmask,n/2,1,0,0);
         else
           _analysis_output_always("mask1R",seq,logmask,n/2,1,0,0);
+      }
 #endif
 
       /* this algorithm is hardwired to floor 1 for now; abort out if
@@ -347,7 +352,7 @@
       if(ci->floor_type[info->floorsubmap[submap]]!=1)return(-1);
 
       floor_posts[i][PACKETBLOBS/2]=
-	floor1_fit(vb,b->floor[info->floorsubmap[submap]],
+	floor1_fit(vb,b->flr[info->floorsubmap[submap]],
                    logmdct,
                    logmask);
       
@@ -362,15 +367,16 @@
                            logmask);
 
 #if 0
-	if(vi->channels==2)
+	if(vi->channels==2){
           if(i==0)
             _analysis_output_always("mask2L",seq,logmask,n/2,1,0,0);
           else
             _analysis_output_always("mask2R",seq,logmask,n/2,1,0,0);
+	}
 #endif
         
         floor_posts[i][PACKETBLOBS-1]=
-	  floor1_fit(vb,b->floor[info->floorsubmap[submap]],
+	  floor1_fit(vb,b->flr[info->floorsubmap[submap]],
                      logmdct,
                      logmask);
       
@@ -390,7 +396,7 @@
 #endif
 
         floor_posts[i][0]=
-	  floor1_fit(vb,b->floor[info->floorsubmap[submap]],
+	  floor1_fit(vb,b->flr[info->floorsubmap[submap]],
                      logmdct,
                      logmask);
         
@@ -398,13 +404,13 @@
            intermediate rates */
         for(k=1;k<PACKETBLOBS/2;k++)
           floor_posts[i][k]=
-	    floor1_interpolate_fit(vb,b->floor[info->floorsubmap[submap]],
+	    floor1_interpolate_fit(vb,b->flr[info->floorsubmap[submap]],
                                    floor_posts[i][0],
                                    floor_posts[i][PACKETBLOBS/2],
                                    k*65536/(PACKETBLOBS/2));
         for(k=PACKETBLOBS/2+1;k<PACKETBLOBS-1;k++)
           floor_posts[i][k]=
-	    floor1_interpolate_fit(vb,b->floor[info->floorsubmap[submap]],
+	    floor1_interpolate_fit(vb,b->flr[info->floorsubmap[submap]],
                                    floor_posts[i][PACKETBLOBS/2],
                                    floor_posts[i][PACKETBLOBS-1],
                                    (k-PACKETBLOBS/2)*65536/(PACKETBLOBS/2));
@@ -413,9 +419,6 @@
   }
   vbi->ampmax=global_ampmax;
 
-  /* now save the bit cursor in the write buffer */
-  setup_bits=oggpack_bits(&vb->opb);
-
   /*
     the next phases are performed once for vbr-only and PACKETBLOB
     times for bitrate managed modes.
@@ -434,13 +437,19 @@
     float **res_bundle=alloca(sizeof(*res_bundle)*vi->channels);
     float **couple_bundle=alloca(sizeof(*couple_bundle)*vi->channels);
     int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels);
+    float **mag_memo;
 
-    float **mag_memo=
-      _vp_quantize_couple_memo(vb,
-			       psy_look,
-			       info,
-			       gmdct);    
-    
+    {
+      /* similarly to floor, we assume the encoder setup is using the
+         same coupling tree for all packetblobs in a block array */
+      int modenumber=ci->modeselect[vb->W][PACKETBLOBS/2];
+      vorbis_info_mapping0 *info=ci->map_param[modenumber];
+      mag_memo=_vp_quantize_couple_memo(vb,
+					psy_look,
+					info,
+					gmdct);    
+    }
+
     for(k=(vorbis_bitrate_managed(vb)?0:PACKETBLOBS/2);
         k<=(vorbis_bitrate_managed(vb)?PACKETBLOBS-1:PACKETBLOBS/2);
         k++){
@@ -469,20 +478,24 @@
           _vorbis_block_alloc(vb,n/2*sizeof(**gmdct));
       
         if(info->floorsubmap[submap] != 
-	   ci->map_param[ci->modeselect[vb->W][PACKETBLOBS/2]]->
+	   ((vorbis_info_mapping0 *)
+	    (ci->map_param[ci->modeselect[vb->W][PACKETBLOBS/2]]))->
            floorsubmap[submap])return(-1); /* breaks encoder
                                               assumptions; all the
                                               packetblobs must use the
                                               same floor */
 
-	nonzero[i]=floor1_encode(vb,b->floor[info->floorsubmap[submap]],
+	nonzero[i]=floor1_encode(vb,b->flr[info->floorsubmap[submap]],
                                  floor_posts[i][k],
                                  ilogmask);
 #if 0
         {
           char buf[80];
           sprintf(buf,"maskI%d",k);
-	  _analysis_output_always(buf,seq+i,mask,n/2,1,1,0);
+	  float work[n/2];
+	  for(j=0;j<n/2;j++)
+	    work[j]=ilogmask[j];
+	  _analysis_output_always(buf,seq+i,work,n/2,1,0,0);
         }
 #endif
         _vp_remove_floor(psy_look,
@@ -567,7 +580,7 @@
   for(i=0;i<vi->channels;i++){
     int submap=info->chmuxlist[i];
     floormemo[i]=_floor_P[ci->floor_type[info->floorsubmap[submap]]]->
-      inverse1(vb,b->floor[info->floorsubmap[submap]]);
+      inverse1(vb,b->flr[info->floorsubmap[submap]]);
     if(floormemo[i])
       nonzero[i]=1;
     else
@@ -635,7 +648,7 @@
     float *pcm=vb->pcm[i];
     int submap=info->chmuxlist[i];
     _floor_P[ci->floor_type[info->floorsubmap[submap]]]->
-      inverse2(vb,b->floor[info->floorsubmap[submap]],
+      inverse2(vb,b->flr[info->floorsubmap[submap]],
                floormemo[i],pcm);
     
     //_analysis_output_always("out",seq++,pcm,n/2,1,1,0);

<p><p>1.67.2.4  +24 -23    vorbis/lib/psy.c

Index: psy.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/psy.c,v
retrieving revision 1.67.2.3
retrieving revision 1.67.2.4
diff -u -r1.67.2.3 -r1.67.2.4
--- psy.c	2002/05/14 07:06:41	1.67.2.3
+++ psy.c	2002/05/18 01:39:28	1.67.2.4
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: psychoacoustics not including preecho
- last mod: $Id: psy.c,v 1.67.2.3 2002/05/14 07:06:41 xiphmont Exp $
+ last mod: $Id: psy.c,v 1.67.2.4 2002/05/18 01:39:28 xiphmont Exp $
 
  ********************************************************************/
 
@@ -31,9 +31,6 @@
 
 #define NEGINF -9999.f
 
-/* Why Bark scale for encoding but not masking computation? Because
-   masking has a strong harmonic dependency */
-
 vorbis_look_psy_global *_vp_global_look(vorbis_info *vi){
   codec_setup_info *ci=vi->codec_setup;
   vorbis_info_psy_global *gi=&ci->psy_g_param;
@@ -272,11 +269,6 @@
     memcpy(p->tonecurves[16][i]+2,tone_16000[i<4?0:i/2-2],sizeof(***p->tonecurves)*EHMER_MAX);
 
   for(i=0;i<P_BANDS;i+=2)
-    for(j=0;j<P_LEVELS;j+=2)
-      for(k=2;k<EHMER_MAX+2;k++)
-	p->tonecurves[i][j][k]+=vi->tone_masteratt;
-
-  for(i=0;i<P_BANDS;i+=2)
     odd_decade_level_interpolate(p->tonecurves[i]);
 
   /* interpolate curves between */
@@ -325,6 +317,9 @@
   for(i=0;i<P_LEVELS;i++)
     _analysis_output("precurve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
 
+  analysis_noisy=0;
+
+
   /* set up the final curves */
   for(i=0;i<P_BANDS;i++)
     setup_curve(p->tonecurves[i],i,vi->toneatt.block[i]);
@@ -364,6 +359,7 @@
     _analysis_output("curve_11.5kHz",i,p->tonecurves[15][i]+2,EHMER_MAX,0,0);
   for(i=0;i<P_LEVELS;i++)
     _analysis_output("curve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
+  analysis_noisy=0;
 
   if(vi->curvelimitp){
     /* value limit the tonal masking curves; the peakatt not only
@@ -379,6 +375,7 @@
       }
   }
 
+  analysis_noisy=0;
   for(i=0;i<P_LEVELS;i++)
     _analysis_output("licurve_63Hz",i,p->tonecurves[0][i]+2,EHMER_MAX,0,0);
   for(i=0;i<P_LEVELS;i++)
@@ -413,6 +410,7 @@
     _analysis_output("licurve_11.5kHz",i,p->tonecurves[15][i]+2,EHMER_MAX,0,0);
   for(i=0;i<P_LEVELS;i++)
     _analysis_output("licurve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
+  analysis_noisy=0;
 
   if(vi->peakattp) /* we limit maximum depth only optionally */
     for(i=0;i<P_BANDS;i++)
@@ -420,6 +418,7 @@
         if(p->tonecurves[i][j][EHMER_OFFSET+2]< vi->peakatt.block[i][j])
           p->tonecurves[i][j][EHMER_OFFSET+2]=  vi->peakatt.block[i][j];
 
+  analysis_noisy=0;
   for(i=0;i<P_LEVELS;i++)
     _analysis_output("pcurve_63Hz",i,p->tonecurves[0][i]+2,EHMER_MAX,0,0);
   for(i=0;i<P_LEVELS;i++)
@@ -454,6 +453,7 @@
     _analysis_output("pcurve_11.5kHz",i,p->tonecurves[15][i]+2,EHMER_MAX,0,0);
   for(i=0;i<P_LEVELS;i++)
     _analysis_output("pcurve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
+  analysis_noisy=0;
 
   /* but guarding is mandatory */
   for(i=0;i<P_BANDS;i++)
@@ -518,13 +518,14 @@
         p->vi->noiseoff[j][inthalfoc+1]*del;
     
   }
-
-  analysis_noisy=0;
-  //_analysis_output_always("noiseoff0",n,p->noiseoffset[0],n,1,0,0);
-  //_analysis_output_always("noiseoff1",n,p->noiseoffset[1],n,1,0,0);
-  //_analysis_output_always("noiseoff2",n,p->noiseoffset[2],n,1,0,0);
-  analysis_noisy=1;
-
+#if 0
+  {
+    static int ls=0;
+    _analysis_output_always("noiseoff0",ls,p->noiseoffset[0],n,1,0,0);
+    _analysis_output_always("noiseoff1",ls,p->noiseoffset[1],n,1,0,0);
+    _analysis_output_always("noiseoff2",ls++,p->noiseoffset[2],n,1,0,0);
+  }
+#endif
 }
 
 void _vp_psy_clear(vorbis_look_psy *p){
@@ -975,11 +976,12 @@
                         int offset_select,
                         float *logmask){
   int i,n=p->n;
+  float toneatt=p->vi->tone_masteratt[offset_select];
 
   for(i=0;i<n;i++){
     logmask[i]= noise[i]+p->noiseoffset[offset_select][i];
     if(logmask[i]>p->vi->noisemaxsupp)logmask[i]=p->vi->noisemaxsupp;
-    logmask[i]=max(logmask[i],tone[i]);
+    logmask[i]=max(logmask[i],tone[i]+toneatt);
   }
 }
 
@@ -1052,12 +1054,12 @@
                                  float **mdct){
   
   int i,j,n=p->n;
-  vorbis_info_psy *info=p->vi;
   float **ret=_vorbis_block_alloc(vb,vi->coupling_steps*sizeof(*ret));
   
   for(i=0;i<vi->coupling_steps;i++){
-    float point=info->couple_pass.amppost_point;
-    int limit=info->couple_pass.limit;
+    float point=stereo_threshholds[vi->coupling_pointamp];
+    int limit=vi->coupling_pointlimit;
+
     ret[i]=0;
     if(point>0){
       float *mdctM=mdct[vi->coupling_mag[i]];
@@ -1078,7 +1080,6 @@
                          int   *nonzero){
 
   int i,j,n=p->n;
-  vorbis_info_psy *info=p->vi;
 
   /* perform any requested channel coupling */
   /* point stereo can only be used in a first stage (in this encoder)
@@ -1104,8 +1105,8 @@
       int *floorA=ifloor[vi->coupling_ang[i]];
       float *outM=res[vi->coupling_mag[i]]+n;
       float *outA=res[vi->coupling_ang[i]]+n;
-      int limit=info->couple_pass.limit;
-      float point=info->couple_pass.amppost_point;
+      int limit=vi->coupling_pointlimit;
+      float point=stereo_threshholds[vi->coupling_pointamp];
  
       nonzero[vi->coupling_mag[i]]=1; 
       nonzero[vi->coupling_ang[i]]=1; 

<p><p>1.13.6.3  +1 -4      vorbis/lib/registry.c

Index: registry.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/registry.c,v
retrieving revision 1.13.6.2
retrieving revision 1.13.6.3
diff -u -r1.13.6.2 -r1.13.6.3
--- registry.c	2002/05/14 07:06:42	1.13.6.2
+++ registry.c	2002/05/18 01:39:28	1.13.6.3
@@ -11,17 +11,14 @@
  ********************************************************************
 
  function: registry for time, floor, res backends and channel mappings
- last mod: $Id: registry.c,v 1.13.6.2 2002/05/14 07:06:42 xiphmont Exp $
+ last mod: $Id: registry.c,v 1.13.6.3 2002/05/18 01:39:28 xiphmont Exp $
 
  ********************************************************************/
 
 #include "vorbis/codec.h"
 #include "codec_internal.h"
 #include "registry.h"
-#include "registry-api.h"
 #include "misc.h"
-
-
 /* seems like major overkill now; the backend numbers will grow into
    the infrastructure soon enough */
 

<p><p>1.45.4.3  +1 -3      vorbis/lib/res0.c

Index: res0.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/res0.c,v
retrieving revision 1.45.4.2
retrieving revision 1.45.4.3
diff -u -r1.45.4.2 -r1.45.4.3
--- res0.c	2002/05/14 07:06:42	1.45.4.2
+++ res0.c	2002/05/18 01:39:28	1.45.4.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: residue backend 0, 1 and 2 implementation
- last mod: $Id: res0.c,v 1.45.4.2 2002/05/14 07:06:42 xiphmont Exp $
+ last mod: $Id: res0.c,v 1.45.4.3 2002/05/18 01:39:28 xiphmont Exp $
 
  ********************************************************************/
 
@@ -498,8 +498,6 @@
 
   vorbis_dsp_state      *vd=vb->vd;
   vorbis_info           *vi=vd->vi;
-  codec_setup_info      *ci=vi->codec_setup;
-
 
   /* move all this setup out later */
   int samples_per_partition=info->grouping;

<p><p>1.26.4.1  +3 -2      vorbis/lib/synthesis.c

Index: synthesis.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/synthesis.c,v
retrieving revision 1.26
retrieving revision 1.26.4.1
diff -u -r1.26 -r1.26.4.1
--- synthesis.c	2002/02/28 04:12:48	1.26
+++ synthesis.c	2002/05/18 01:39:29	1.26.4.1
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: single-block PCM synthesis
- last mod: $Id: synthesis.c,v 1.26 2002/02/28 04:12:48 xiphmont Exp $
+ last mod: $Id: synthesis.c,v 1.26.4.1 2002/05/18 01:39:29 xiphmont Exp $
 
  ********************************************************************/
 
@@ -70,7 +70,8 @@
   /* unpack_header enforces range checking */
   type=ci->map_type[ci->mode_param[mode]->mapping];
 
-  return(_mapping_P[type]->inverse(vb,b->mode[mode]));
+  return(_mapping_P[type]->inverse(vb,ci->map_param[ci->mode_param[mode]->
+						   mapping]));
 }
 
 /* used to track pcm position without actually performing decode.

<p><p>1.39.2.3  +79 -86    vorbis/lib/vorbisenc.c

Index: vorbisenc.c
===================================================================
RCS file: /usr/local/cvsroot/vorbis/lib/vorbisenc.c,v
retrieving revision 1.39.2.2
retrieving revision 1.39.2.3
diff -u -r1.39.2.2 -r1.39.2.3
--- vorbisenc.c	2002/05/14 07:06:42	1.39.2.2
+++ vorbisenc.c	2002/05/18 01:39:29	1.39.2.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: simple programmatic interface for encoder mode setup
- last mod: $Id: vorbisenc.c,v 1.39.2.2 2002/05/14 07:06:42 xiphmont Exp $
+ last mod: $Id: vorbisenc.c,v 1.39.2.3 2002/05/18 01:39:29 xiphmont Exp $
 
  ********************************************************************/
 
@@ -24,7 +24,6 @@
 #include "vorbis/vorbisenc.h"
 
 #include "codec_internal.h"
-#include "registry-api.h"
 
 #include "os.h"
 #include "misc.h"
@@ -45,8 +44,6 @@
   int     couple_pointamp[2][PACKETBLOBS];
 } mode_easy_setup;
 
-static double stereo_threshholds[]={0.0, 2.5, 4.5, 8.5, 16.5};
-
 typedef struct vp_adjblock{
   int block[P_BANDS][P_LEVELS];
 } vp_adjblock;
@@ -65,8 +62,8 @@
    only one submap (this would change for efficient 5.1 support for example)*/
 /* Four psychoacoustic profiles are used, one for each blocktype */
 static vorbis_info_mapping0 _mapping_template[2]={
-  {1, {0,0}, {0}, {-1}, {0,1}, 0,{0},{0},0,0},
-  {1, {0,0}, {1}, {-1}, {2,3}, 0,{0},{0},0,0}
+  {1, {0,0}, {0}, {-1}, 0,{0},{0},0,0},
+  {1, {0,0}, {1}, {-1}, 0,{0},{0},0,0}
 };
 
 static int vorbis_encode_toplevel_setup(vorbis_info *vi,int small,
@@ -183,12 +180,13 @@
   }
 
   memcpy(p,&_psy_info_template,sizeof(*p));
+  p->blockflag=block>>1;
 
   return 0;
 }
 
 static int vorbis_encode_tonemask_setup(vorbis_info *vi,double q,int block,
-				       double **att,
+				       double att[11][3],
                                        double *max,
                                        int *peaklimit_bands,
                                        vp_adjblock *in){
@@ -392,20 +390,23 @@
   vorbis_info_residue0 *r=ci->residue_param[number]=
     _ogg_malloc(sizeof(*r));
   vorbis_info_mapping0 *map=ci->map_param[number]=
-    _ogg_calloc(1,sizeof(*_mapping_set));
+    _ogg_calloc(1,sizeof(*map));
+  vorbis_info_mode *mode=ci->mode_param[number]=
+    _ogg_calloc(1,sizeof(*mode));
   
-  ci->mode_param[number]=_ogg_calloc(1,sizeof(*_mode_set));
-
-  memcpy(ci->mode_param[number],&_mode_set[block],sizeof(*_mode_set));
+  memcpy(ci->mode_param[number],&_mode_template[block],
+	 sizeof(*_mode_template));
   if(number>=ci->modes)ci->modes=number+1;
   ci->mode_param[number]->mapping=number;
+  ci->mode_param[number]->blockflag=block;
 
   ci->map_type[number]=0;
-  memcpy(ci->map_param[number],&_mapping_set[block],sizeof(*_mapping_set));
-  if(number>=ci->mappings)ci->mappings=number+1;
-  ci->map_param[number]->residuesubmap[0]=number;
+  memcpy(ci->map_param[number],&_mapping_template[block],
+	 sizeof(*_mapping_template));
+  if(number>=ci->maps)ci->maps=number+1;
+  ((vorbis_info_mapping0 *)(ci->map_param[number]))->residuesubmap[0]=number;
 
-  memcpy(r,in[iq].res[number],sizeof(*r));
+  memcpy(r,in[iq].res[block],sizeof(*r));
   if(ci->residues<=number)ci->residues=number+1;
 
   if(block){
@@ -470,6 +471,33 @@
     }
   }
 
+  /* lowpass setup */
+  {
+    double freq=ci->hi.lowpass_kHz[block]*1000.;
+    vorbis_info_floor1 *f=ci->floor_param[block];
+    double nyq=vi->rate/2.;
+    long blocksize=ci->blocksizes[block]>>1;
+    
+    if(freq>vi->rate/2)freq=vi->rate/2;
+    /* lowpass needs to be set in the floor and the residue. */
+    
+    /* in the floor, the granularity can be very fine; it doesn't alter
+       the encoding structure, only the samples used to fit the floor
+       approximation */
+    f->n=freq/nyq*blocksize; 
+
+    /* in the residue, we're constrained, physically, by partition
+       boundaries.  We still lowpass 'wherever', but we have to round up
+       here to next boundary, or the vorbis spec will round it *down* to
+       previous boundary in encode/decode */
+    if(ci->residue_type[block]==2)
+      r->end=(int)((freq/nyq*blocksize*2)/r->grouping+.9)* /* round up only if we're well past */
+	r->grouping;
+    else
+      r->end=(int)((freq/nyq*blocksize)/r->grouping+.9)* /* round up only if we're well past */
+	r->grouping;
+  }
+  
   return(0);
 }
 
@@ -479,13 +507,10 @@
                                        int *point_dB,
                                        double point_kHz){
 
-  int i,iq=q*10;
-  int n,k;
-  int partition_position=0;
-  int res_position=0;
+  int i;
   int alternate_modes=1;
-  codec_setup_info *ci=vi->codec_setup;
-  
+   codec_setup_info *ci=vi->codec_setup;
+ 
   /* more complex than in rc3 due to coupling; we may be using
      multiple modes, each with a different residue setup, as a helper
      to bitrate managemnt, letting us change the stereo model
@@ -500,59 +525,27 @@
 
     vorbis_encode_residue_one(vi,q,block,block*alternate_modes,
                               coupled_p,in,point_dB[0],point_kHz);
-    count++;
-    for(i=1;i<PACKETBLOBS;i++)
+
+    ci->modeselect[block][0]=block*alternate_modes+count;
+    for(i=1;i<PACKETBLOBS;i++){
       if(point_dB[i-1]!=point_dB[i])
-	vorbis_encode_residue_one(vi,q,block,block*alternate_modes+count++,
+	vorbis_encode_residue_one(vi,q,block,block*alternate_modes+ ++count,
                                   coupled_p,in,point_dB[i],point_kHz);
+      ci->modeselect[block][i]=block*alternate_modes+count;
+    }
+
+
   }else{
     vorbis_encode_residue_one(vi,q,block,block*alternate_modes,
-			      coupled_p,in,point_dB[PACKETBLOBS/2],
+			      coupled_p,in,0,
                               point_kHz);
+    for(i=0;i<PACKETBLOBS;i++)
+      ci->modeselect[block][i]=block*alternate_modes;
   }
 
   return(0);
 }      
 
-static int vorbis_encode_lowpass_setup(vorbis_info *vi,double q,int block){
-  int iq=q*10;
-  double dq;
-  double freq;
-  codec_setup_info *ci=vi->codec_setup;
-  vorbis_info_floor1 *f=ci->floor_param[block];
-  vorbis_info_residue0 *r=ci->residue_param[block];
-  int blocksize=ci->blocksizes[block]>>1;
-  double nyq=vi->rate/2.;
-
-  if(iq==10){
-    iq=9;
-    dq=1.;
-  }else{
-    dq=q*10.-iq;
-  }
-  
-  freq=ci->hi.lowpass_kHz[block]*1000.;
-  if(freq>vi->rate/2)freq=vi->rate/2;
-  /* lowpass needs to be set in the floor and the residue. */
-
-  /* in the floor, the granularity can be very fine; it doesn't alter
-     the encoding structure, only the samples used to fit the floor
-     approximation */
-  f->n=freq/nyq*blocksize;
-
-  /* in the residue, we're constrained, physically, by partition
-     boundaries.  We still lowpass 'wherever', but we have to round up
-     here to next boundary, or the vorbis spec will round it *down* to
-     previous boundary in encode/decode */
-  if(ci->residue_type[block]==2)
-    r->end=(int)((freq/nyq*blocksize*2)/r->grouping+.9)* /* round up only if we're well past */
-      r->grouping;
-  else
-    r->end=(int)((freq/nyq*blocksize)/r->grouping+.9)* /* round up only if we're well past */
-      r->grouping;
-  return(0);
-}
-
 /* encoders will need to use vorbis_info_init beforehand and call
    vorbis_info clear when all done */
 
@@ -583,16 +576,20 @@
   ret|=vorbis_encode_psyset_setup(vi,3);
   
   ret|=vorbis_encode_tonemask_setup(vi,hi->blocktype[0].tone_mask_quality,0,
-				    _psy_tone_masteratt,_psy_tone_0dB,_psy_ehmer_bandlimit,
+				    _psy_tone_masteratt_44,_psy_tone_0dB,
+				    _psy_ehmer_bandlimit,
                                     _vp_tonemask_adj_otherblock);
   ret|=vorbis_encode_tonemask_setup(vi,hi->blocktype[1].tone_mask_quality,1,
-				    _psy_tone_masteratt,_psy_tone_0dB,_psy_ehmer_bandlimit,
+				    _psy_tone_masteratt_44,_psy_tone_0dB,
+				    _psy_ehmer_bandlimit,
                                     _vp_tonemask_adj_otherblock);
   ret|=vorbis_encode_tonemask_setup(vi,hi->blocktype[2].tone_mask_quality,2,
-				    _psy_tone_masteratt,_psy_tone_0dB,_psy_ehmer_bandlimit,
+				    _psy_tone_masteratt_44,_psy_tone_0dB,
+				    _psy_ehmer_bandlimit,
                                     _vp_tonemask_adj_otherblock);
   ret|=vorbis_encode_tonemask_setup(vi,hi->blocktype[3].tone_mask_quality,3,
-				    _psy_tone_masteratt,_psy_tone_0dB,_psy_ehmer_bandlimit,
+				    _psy_tone_masteratt_44,_psy_tone_0dB,
+				    _psy_ehmer_bandlimit,
                                     _vp_tonemask_adj_longblock);
   
   ret|=vorbis_encode_compand_setup(vi,hi->blocktype[0].noise_compand_quality,
@@ -658,38 +655,36 @@
     /* setup specific to stereo coupling */
     
     ret|=vorbis_encode_residue_setup(vi,hi->base_quality_short,0,
-				    1, /* coupled */
-				    _residue_template_44_stereo,
-				    hi->stereo_point_dB,
-				    hi->stereo_point_kHz[0]);
+				     1, /* coupled */
+				     _residue_template_44_stereo,
+				     _psy_stereo_modes_44[hi->stereo_point_dB_q],
+				     hi->stereo_point_kHz[0]);
       
     ret|=vorbis_encode_residue_setup(vi,hi->base_quality_long,1,
-				    1, /* coupled */
-				    _residue_template_44_stereo,
-				    hi->stereo_point_dB,
-				    hi->stereo_point_kHz[1]);
+				     1, /* coupled */
+				     _residue_template_44_stereo,
+				     _psy_stereo_modes_44[hi->stereo_point_dB_q],
+				     hi->stereo_point_kHz[1]);
 
   }else{
     /* setup specific to non-stereo (mono or uncoupled polyphonic)
        coupling */
     ret|=vorbis_encode_residue_setup(vi,hi->base_quality_short,0,
-				    0, /* uncoupled */
-				    _residue_template_44_uncoupled,
-				    0,
-				    hi->stereo_point_kHz[0]); /* just
+				     0, /* uncoupled */
+				     _residue_template_44_uncoupled,
+				     NULL,
+				     hi->stereo_point_kHz[0]); /* just
                                     used as an encoding partitioning
                                     point */
       
     ret|=vorbis_encode_residue_setup(vi,hi->base_quality_long,1,
                                     0, /* uncoupled */
                                     _residue_template_44_uncoupled,
-				    0,
+				    NULL,
                                     hi->stereo_point_kHz[1]); /* just
                                     used as an encoding partitioning
                                     point */
   }
-  ret|=vorbis_encode_lowpass_setup(vi,hi->lowpass_kHz[0],0);
-  ret|=vorbis_encode_lowpass_setup(vi,hi->lowpass_kHz[1],1);
     
   if(ret)
     vorbis_info_clear(vi);
@@ -809,7 +804,7 @@
 
   /* set stereo dB and Hz */
   /*iq=0;dq=0;*/
-  hi->stereo_point_dB=_psy_stereo_point_dB_44[iq];
+  hi->stereo_point_dB_q=iq;
   hi->stereo_point_kHz[0]=_psy_stereo_point_kHz_44[0][iq]*(1.-dq)+
     _psy_stereo_point_kHz_44[0][iq+1]*dq;
   hi->stereo_point_kHz[1]=_psy_stereo_point_kHz_44[1][iq]*(1.-dq)+
@@ -885,8 +880,6 @@
     return ret; 
   }
 
-  /* adjust to make management's life easier.  Use the ctl() interface
-     once it's implemented */
   {
     codec_setup_info *ci=vi->codec_setup;
     highlevel_encode_setup *hi=&ci->hi;

<p><p>No                   revision

<p>No                   revision

<p>1.15.2.3  +15 -9     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.2
retrieving revision 1.15.2.3
diff -u -r1.15.2.2 -r1.15.2.3
--- psych_44.h	2002/05/14 07:06:46	1.15.2.2
+++ psych_44.h	2002/05/18 01:39:32	1.15.2.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: key psychoacoustic settings for 44.1/48kHz
- last mod: $Id: psych_44.h,v 1.15.2.2 2002/05/14 07:06:46 xiphmont Exp $
+ last mod: $Id: psych_44.h,v 1.15.2.3 2002/05/18 01:39:32 xiphmont Exp $
 
  ********************************************************************/
 
@@ -24,26 +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, 0,
+   {99.,99.,99.}
   },
   {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, 0,
+   {99.,99.,99.}
   },
   {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, 0,
+   {99.,99.,99.}
   },
   {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, 0,
+   {99.,99.,99.}
   },
   {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, 0,
+   {99.,99.,99.}
   },
 };
 
@@ -690,13 +695,14 @@
 };
 
 static vorbis_info_psy _psy_info_template={
-    {-1},-110.,-140.,
-    /* tonemask att,guard,suppr,curves  peakattp,curvelimitp,peaksettings*/
-    0.f,            -40.f,-40.f, {{{0.}}},         1,          0,        {{{0.}}},
-    
-    /*noisemaskp,supp, low/high window, low/hi guard, minimum */
-    1,          -0.f,         .5f, .5f,         0,0,0,
-    {{-1},{-1},{-1}},{-1},105.f,{-1,-1,-1,-1}
+  -1,
+  {-1},-110.,-140.,
+  /* tonemask att,guard,suppr,curves  peakattp,curvelimitp,peaksettings*/
+  {0.f,0.f,0.f},  -40.f,-40.f, {{{0.}}},         1,          0,        {{{0.}}},
+  
+  /*noisemaskp,supp, low/high window, low/hi guard, minimum */
+  1,          -0.f,         .5f, .5f,         0,0,0,
+  {{-1},{-1},{-1}},{-1},105.f
 };
 
 /* ath ****************/
@@ -759,7 +765,7 @@
   /*0  1  2  3  4  5  6  7  8  9 10 11 12 13 14*/
   {0}, /* 9 */
 
-}
+};
 
 static double _psy_stereo_point_kHz_44[2][11]={
   {4., 6., 6.,  6., 10., 6., 6., 4., 4., 4., 4.},

<p><p>1.11.6.3  +1 -6      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.2
retrieving revision 1.11.6.3
diff -u -r1.11.6.2 -r1.11.6.3
--- residue_44.h	2002/05/14 07:06:46	1.11.6.2
+++ residue_44.h	2002/05/18 01:39:32	1.11.6.3
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: toplevel residue templates for 32/44.1/48kHz
- last mod: $Id: residue_44.h,v 1.11.6.2 2002/05/14 07:06:46 xiphmont Exp $
+ last mod: $Id: residue_44.h,v 1.11.6.3 2002/05/18 01:39:32 xiphmont Exp $
 
  ********************************************************************/
 
@@ -50,7 +50,6 @@
   {-1},
   {  .5,  1.5,  2.5,  4.5, 26.5,  1.5,  4.5},
   {  99,   -1,   -1,   -1,   -1,   99,   99}
-  -1,-1
 };
 /* 26 doesn't cascade well; use 28 instead */
 static vorbis_info_residue0 _residue_44_low_un={
@@ -59,7 +58,6 @@
   {-1},
   {  .5,  1.5,  2.5,  4.5, 28.5,  1.5,  4.5},
   {  99,   -1,   -1,   -1,   -1,   99,   99}
-  -1,-1
 };
 
 /*     0   1   2   4   1   2   4  16  42   +      
@@ -78,7 +76,6 @@
   {-1},
   {  .5,  1.5,  1.5,  2.5,  2.5,  4.5,  4.5, 16.5, 42.5},
   {  99,   -1,   99,   -1,   99,   -1,   99,   99,   99}
-  -1,-1
 };
 
 
@@ -98,7 +95,6 @@
   {-1},
   {  .5,  8.5, 42.5,  1.5,  2.5,  4.5,  8.5, 16.5, 56.5},
   {  99,   -1,   -1,   99,   99,   99,   99,   99,   99}
-  -1,-1
 };
 /* 56 doesn't cascade well; use 59 */
 static vorbis_info_residue0 _residue_44_high_un={
@@ -108,7 +104,6 @@
   {-1},
   {  .5,  8.5, 42.5,  1.5,  2.5,  4.5,  8.5, 16.5, 59.5},
   {  99,   -1,   -1,   99,   99,   99,   99,   99,   99}
-  -1,-1
 };
 
 #include "books/coupled/_44c0_short.vqh"

<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