IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
FSRC resampler, Seems good and really fast.
punkrockdude
post Jul 23 2012, 11:31
Post #1





Group: Members
Posts: 244
Joined: 21-February 05
Member No.: 20022



Anyone tried FSRC http://libfsrc.sourceforge.net/? The tests shows good specs and I was surprised by its speed.

QUOTE
FSRC (Overlap-Save) - ~5.6s
FSRC (Polyphase) - ~16.1s
libsamplerate - ~103.9s

Any programmers who might be interested in making a Foobar2000 dsp of it if it's possible? I would like to try it out against SoX. Regards.
Go to the top of the page
+Quote Post
Garf
post Jul 23 2012, 11:44
Post #2


Server Admin


Group: Admin
Posts: 4884
Joined: 24-September 01
Member No.: 13



Note that it's a GPL library which (IIRC) makes distributing a foobar2000 component based on it problematic.
Go to the top of the page
+Quote Post
punkrockdude
post Jul 23 2012, 12:20
Post #3





Group: Members
Posts: 244
Joined: 21-February 05
Member No.: 20022



That's a shame. Does GPL say that it is only allowed in open source programs or something? Regards.
Go to the top of the page
+Quote Post
Garf
post Jul 23 2012, 12:44
Post #4


Server Admin


Group: Admin
Posts: 4884
Joined: 24-September 01
Member No.: 13



QUOTE (punkrockdude @ Jul 23 2012, 13:20) *
That's a shame. Does GPL say that it is only allowed in open source programs or something? Regards.


It says a lot but that's a reasonable simplified summary.
Go to the top of the page
+Quote Post
bandpass
post Jul 23 2012, 13:15
Post #5





Group: Members
Posts: 326
Joined: 3-August 08
From: UK
Member No.: 56644



QUOTE (punkrockdude @ Jul 23 2012, 11:31) *
Anyone tried FSRC http://libfsrc.sourceforge.net/? The tests shows good specs and I was surprised by its speed.

The numbers on the FSRC web-site look good because the author chose to compare it against libsamplerate, one of the slowest SRCs around (and in its slowest mode). Also, it may not be that significant overall, but he's way-off with his ripple estimation of libsamplerate; it's much smaller than suggested there.

As for its claimed alpha status: when it works, the output looks good, but it does crash out on certain ratios, even some fairly simple ones.

The website mentions a future comparison against SoX, but that was several years ago; maybe he made the comparison then gave up when he saw the results.

FSRC is GPL as it relies on FFTW's (GPL) ability to perform FFTs on arbitrary sized blocks (not just powers of 2, for which there are many non-GPL FFT libs available).
Go to the top of the page
+Quote Post
punkrockdude
post Jul 23 2012, 16:41
Post #6





Group: Members
Posts: 244
Joined: 21-February 05
Member No.: 20022



Thanks for the great explanations guys. This migh be a side track but SRC is one of
Pulseaudio's resamplers right? Do you guys know if it is possible to use SoX's resample in Pulseaudio?
Go to the top of the page
+Quote Post
bandpass
post Jul 23 2012, 17:12
Post #7





Group: Members
Posts: 326
Joined: 3-August 08
From: UK
Member No.: 56644



Yes, libsamplerate a.k.a. SRC is available for Pulse; easy integration as a lib is one of its big pluses. Though it probably ought to be, AFAIK SoX isn't available for pulse (neither its SRC nor the rest of libSoX has really been pushed much in the general purpose lib direction).
Go to the top of the page
+Quote Post
bandpass
post Jul 30 2012, 09:30
Post #8





Group: Members
Posts: 326
Joined: 3-August 08
From: UK
Member No.: 56644



It comes with a standalone tool, so I did a quick comparison with some other well-known SRCs (sndfile-resample = 0.1.7-3ubuntu1; others converters compiled from latest source).

Execution time and comparative execution time percentage shown for a couple of common SRC ratios, and a couple of conversion qualities:

High-ish quality:

CODE
44100 ->  96000 sox rate                   6.21s 100.0%
44100 ->  96000 ssrc                      20.58s 331.4%      
44100 ->  96000 fsrctool -q mq20          27.74s 446.7%
44100 ->  96000 sndfile-resample -c 1     40.17s 646.9%

96000 ->  44100 sox rate                   5.28s 100.0%  
96000 ->  44100 ssrc                      19.98s 378.4%      
96000 ->  44100 fsrctool -q mq20          28.88s 547.0%
96000 ->  44100 sndfile-resample -c 1     34.54s 654.2%




Best-ish quality:

CODE
44100 ->  96000 sox rate -vs               7.01s 100.0%
44100 ->  96000 ssrc_hp                   32.86s 468.8%
44100 ->  96000 fsrctool -q hq24          24.19s 345.1%
44100 ->  96000 sndfile-resample -c 0    369.50s 5271.0%

96000 ->  44100 sox rate -vs               5.91s 100.0%
96000 ->  44100 ssrc_hp                   32.31s 546.7%
96000 ->  44100 fsrctool -q hq24          22.58s 382.1%
96000 ->  44100 sndfile-resample -c 0    359.16s 6077.2%



This post has been edited by bandpass: Jul 30 2012, 09:39
Go to the top of the page
+Quote Post
punkrockdude
post Jul 30 2012, 11:20
Post #9





Group: Members
Posts: 244
Joined: 21-February 05
Member No.: 20022



Thank you bandpass for those informative demonstrations. I guess compared to the others, this resamplers is not quite as high quality.
Go to the top of the page
+Quote Post
Arnold B. Kruege...
post Jul 30 2012, 11:43
Post #10





Group: Members
Posts: 3701
Joined: 29-October 08
From: USA, 48236
Member No.: 61311



QUOTE (punkrockdude @ Jul 23 2012, 06:31) *
Anyone tried FSRC http://libfsrc.sourceforge.net/? The tests shows good specs and I was surprised by its speed.

QUOTE
FSRC (Overlap-Save) - ~5.6s
FSRC (Polyphase) - ~16.1s
libsamplerate - ~103.9s

Any programmers who might be interested in making a Foobar2000 dsp of it if it's possible? I would like to try it out against SoX. Regards.



How does it compare if you run the same tests that they run at:

Infinite Wave Test ReSamplers
Go to the top of the page
+Quote Post
bandpass
post Jul 30 2012, 12:54
Post #11





Group: Members
Posts: 326
Joined: 3-August 08
From: UK
Member No.: 56644



QUOTE (Arnold B. Krueger @ Jul 30 2012, 11:43) *
How does it compare if you run the same tests that they run at:

Infinite Wave Test ReSamplers

AFAIK, one of the two tests I ran above (96k -> 44100) is the same as is run at the Infinite Wave site (they test only one ratio, and in only one direction). I ran each test twice, once on an 8-second sweep (as they do, though I chose a linear sweep; they use a quadratic) to generate the spectrograms, and once on several minutes of audio, for the execution-time measurement.

Where possible, I used the same settings as Infinite Wave for each converter; but I don't know what settings were used there for libfsrc, apparently something with better stop-band rejection than "-q hq24", but I couldn't get anything higher than that (such as "-q push") to work.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 1st September 2014 - 09:23