# HG changeset patch # User alexc # Date 1253505059 0 # Node ID 47048ee7db4e96b259bab53194dae34c2fdacd1c # Parent bc939146f2e18581cbc963d7da03c0d61febd26f aacenc: Multiple distortion by lambda after it's summed and not each individual term before. diff -r bc939146f2e1 -r 47048ee7db4e aaccoder.c --- a/aaccoder.c Mon Sep 21 03:42:54 2009 +0000 +++ b/aaccoder.c Mon Sep 21 03:50:59 2009 +0000 @@ -121,10 +121,10 @@ if (!cb) { for (i = 0; i < size; i++) - cost += in[i]*in[i]*lambda; + cost += in[i]*in[i]; if (bits) *bits = 0; - return cost; + return cost * lambda; } #ifndef USE_REALLY_FULL_SEARCH offs[0] = 1; @@ -141,10 +141,10 @@ int (*quants)[2] = &s->qcoefs[i]; mincost = 0.0f; for (j = 0; j < dim; j++) - mincost += in[i+j]*in[i+j]*lambda; + mincost += in[i+j]*in[i+j]; minidx = IS_CODEBOOK_UNSIGNED(cb) ? 0 : 40; minbits = ff_aac_spectral_bits[cb-1][minidx]; - mincost += minbits; + mincost = mincost * lambda + minbits; for (j = 0; j < (1<qcoefs[i]; mincost = 0.0f; for (j = 0; j < dim; j++) - mincost += in[i+j]*in[i+j]*lambda; + mincost += in[i+j]*in[i+j]; minidx = IS_CODEBOOK_UNSIGNED(cb) ? 0 : 40; minbits = ff_aac_spectral_bits[cb-1][minidx]; - mincost += minbits; + mincost = mincost * lambda + minbits; for (j = 0; j < (1<