[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