From 90cb20ed01ad20e4fa9c8b75e5484f8f61e9d847 Mon Sep 17 00:00:00 2001 From: Monty Date: Fri, 26 Mar 2010 05:30:11 +0000 Subject: [PATCH] Revert floor1 line fitting to exact 1.2.3 behavior; the apparently better weighting of 1.3.0pre was slightly dropping PEAQ and slightly increasing bitrate. svn path=/trunk/vorbis/; revision=17075 --- lib/floor1.c | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/lib/floor1.c b/lib/floor1.c index 9935888..5c290fc 100644 --- a/lib/floor1.c +++ b/lib/floor1.c @@ -470,27 +470,28 @@ static int accumulate_fit(const float *flr,const float *mdct, static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1, vorbis_info_floor1 *info){ - double weight; - double xa=0,ya=0,x2a=0,y2a=0,xya=0,an=0; double xb=0,yb=0,x2b=0,y2b=0,xyb=0,bn=0; int i; int x0=a[0].x0; int x1=a[fits-1].x1; for(i=0;itwofitweight/(a[i].an+1))+1.; + + xb+=a[i].xb + a[i].xa * weight; + yb+=a[i].yb + a[i].ya * weight; + x2b+=a[i].x2b + a[i].x2a * weight; + y2b+=a[i].y2b + a[i].y2a * weight; + xyb+=a[i].xyb + a[i].xya * weight; + bn+=a[i].bn + a[i].an * weight; } if(*y0>=0){ @@ -511,14 +512,6 @@ static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1, bn++; } - weight = (bn+an)*info->twofitweight/(an+1)+1.; - xb += xa * weight; - yb += ya * weight; - x2b += x2a * weight; - y2b += y2a * weight; - xyb += xya * weight; - bn += an * weight; - { double denom=(bn*x2b-xb*xb); -- 2.7.4