mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-03 06:27:44 +08:00
Original Commit: r90 | ods15 | 2006-09-29 22:14:40 +0300 (Fri, 29 Sep 2006) | 3 lines
much better magic for floor, the first psychoacoustic in this encoder! now creates valid, 175kbps audio, which sounds good! :) Originally committed as revision 6494 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@ -780,13 +780,11 @@ static void floor_fit(venc_context_t * venc, floor_t * fc, float * coeffs, int *
|
|||||||
int end = fc->list[fc->list[FFMIN(i+1, fc->values - 1)].sort].x;
|
int end = fc->list[fc->list[FFMIN(i+1, fc->values - 1)].sort].x;
|
||||||
int j;
|
int j;
|
||||||
float average = 0;
|
float average = 0;
|
||||||
begin = (position + begin) / 2;
|
|
||||||
end = (position + end ) / 2;
|
|
||||||
|
|
||||||
assert(end <= samples);
|
assert(end <= samples);
|
||||||
for (j = begin; j < end; j++) average += fabs(coeffs[j]);
|
for (j = begin; j < end; j++) average += fabs(coeffs[j]);
|
||||||
average /= end - begin;
|
average /= end - begin;
|
||||||
average /= 32; // MAGIC!
|
average /= pow(4, 1 - position/400.); // MAGIC!
|
||||||
for (j = 0; j < range - 1; j++) if (floor1_inverse_db_table[j * fc->multiplier] > average) break;
|
for (j = 0; j < range - 1; j++) if (floor1_inverse_db_table[j * fc->multiplier] > average) break;
|
||||||
posts[fc->list[i].sort] = j;
|
posts[fc->list[i].sort] = j;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user