1
0
mirror of http://mpg123.de/trunk/.git synced 2025-07-04 22:22:28 +03:00
Files
mpg123/scripts/syn123-channelscaling.sh
thor 15a3788e92 libsyn123: add SYN123_NO_CASES switch for mono and stereo
Using scripts/syn123-channelscaling.sh, I see about 15% benefit
for mono/stereo operation when treating it as special cases in
the resampler. Fun fact: Even the higher channel counts profit
a tiny bit (1% to 2%, not sure how significant) from the
separation.

Giving the compiler information about what can be likely values
for those inner loop rounds still makes sense.



git-svn-id: svn://scm.orgis.org/mpg123/trunk@4494 35dc7657-300d-0410-a2e5-dc2837fedb53
2019-07-22 09:21:32 +00:00

33 lines
939 B
Bash

#!/bin/sh
# This gives a view at the scaling of resampling runtime with channel count.
# The tested resampling mode involves 2X upsampling, lowpass, and interpolation.
set -e
export LANG=C
export LC_NUMERIC=C
chan_min=1
chan_max=10
chan_fit=3
out123=src/out123
generate="--wave-freq 300 --inputrate 44100 --timelimit 4410000 -q"
wd=$(mktemp -d channelscaling.XXXX)
echo "workdir: $wd"
for n in $(seq $chan_min $chan_max)
do
printf "generate with %d channels\n" "$n" >&2
/usr/bin/time -f "$n\t%e" $out123 $generate -c $n --rate 44100 -t 2>&1
done > $wd/generate.txd
for n in $(seq $chan_min $chan_max)
do
printf "resample with %d channels\n" "$n" >&2
/usr/bin/time -f "$n\t%e" $out123 $generate -c $n --rate 44101 -t 2>&1
done > $wd/resample.txd
txdcalc '[3]=[2]-[1,2]' $wd/generate.txd < $wd/resample.txd > $wd/resampling-overhead.txd
gpfit --plot -g=1 -r='[3:]' $wd/resampling-overhead.txd
echo "Check results in $wd/."