Mercurial > hg > sv-dependency-builds
diff src/libsamplerate-0.1.9/doc/quality.html @ 126:4a7071416412
Current libsamplerate source
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Tue, 18 Oct 2016 13:24:45 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/libsamplerate-0.1.9/doc/quality.html Tue Oct 18 13:24:45 2016 +0100 @@ -0,0 +1,179 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + +<HEAD> + <TITLE> + Secret Rabbit Code (aka libsamplerate) + </TITLE> + <META NAME="Author" CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)"> + <META NAME="Version" CONTENT="libsamplerate-0.1.8"> + <META NAME="Description" CONTENT="The Secret Rabbit Code Home Page"> + <META NAME="Keywords" CONTENT="libsamplerate sound resample audio dsp Linux"> + <LINK REL=StyleSheet HREF="SRC.css" TYPE="text/css" MEDIA="all"> +</HEAD> + +<BODY TEXT="#FFFFFF" BGCOLOR="#000000" LINK="#FB1465" VLINK="#FB1465" ALINK="#FB1465"> +<!-- pepper --> +<CENTER> + <IMG SRC="SRC.png" HEIGHT=100 WIDTH=760 ALT="SRC.png"> +</CENTER> +<!-- pepper --> +<BR> +<!-- pepper --> +<TABLE ALIGN="center" WIDTH="98%"> +<TR> +<TD VALIGN="top"> +<BR> +<DIV CLASS="nav"> + <BR> + <A HREF="index.html">Home</A><BR> + <A HREF="license.html">License</A><BR> + <A HREF="history.html">History</A><BR> + <A HREF="download.html">Download</A><BR> + <A HREF="quality.html">Quality</A><BR> + <A HREF="api.html">API</A><BR> + <A HREF="bugs.html">Bug Reporting</A><BR> + <A HREF="win32.html">On Win32</A><BR> + <A HREF="faq.html">FAQ</A><BR> + <A HREF="lists.html">Mailing Lists</A><BR> + <A HREF="ChangeLog">ChangeLog</A><BR> +<BR> +<DIV CLASS="block"> +Author :<BR>Erik de Castro Lopo +<!-- pepper --> +<BR><BR> +<!-- pepper --> + +</DIV> + <IMG SRC= + "/cgi-bin/Count.cgi?ft=6|frgb=55;55;55|tr=0|md=6|dd=B|st=1|sh=1|df=src_qual.dat" + HEIGHT=30 WIDTH=100 ALT="counter.gif"> +</DIV> + +</TD> +<!-- pepper --> +<!-- ######################################################################## --> +<!-- pepper --> +<TD VALIGN="top"> +<DIV CLASS="block"> + +<H1><B>SRC Quality</B></H1> +<CENTER><P> + <B>This document not yet complete.</B><BR> +</P></CENTER> +<P> + When measuring the performance of a Sample Rate Converter, there are three + factors to consider: +</P> +<UL> + <LI><B>Signal-to-Noise Ratio</B> - a measure of how much noise the sample + rate conversion process adds to the signal. + This is measured in decibels (dB) and the higher this value the + better. + For most sample rate converters, the SNR will vary depending on + the input signal and the ratio between input and output sample + rates. + The only valid comparison of SNR is between the worst case for + for each converter. + <LI><B>Bandwidth</B> - most sample rate converters attenuate high + frequencies as part of their operation. + Bandwidth can be measured by finding the frequency where the + attenuation is 3dB and expressing that as a percentage of the full + bandwidth at that sampling rate. + <LI><B>Speed</B> - the faster the better <B>:-)</B>. +</UL> + +<P> + There are a number of sample rate converters available for downloading + but I will limit the comparison ot Secret Rabbit Code to the following: +</P> +<UL> + <LI><A HREF="http://www.mega-nerd.com/SRC/download.html">sndfile-resample</A> + which is a program (which uses libsamplerate) from the <B>examples/</B> + directory of the Secret Rabbit Code source code distribution. + <LI><A HREF="http://www-ccrma.stanford.edu/~jos/resample/Available_Software.html"> + Resample</A> + by Julius O Smiths which seems to have been the first high quality converter + available as source code. + <LI><A HREF="http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/ResampAudio.html">ResampAudio</A> + which is part of + <A HREF="http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/AFsp.html"> + Audio File Programs and Routines</A> + by Peter Kabal. + <LI><A HREF="http://home.sprynet.com/~cbagwell/sox.html">SoX</A> which is maintained + by Chris Bagwell. + SoX is also able to perform some low quality sample rate conversions but these + will not be investigated. + <LI><A HREF="http://shibatch.sourceforge.net/">Shibatch</A> which seems to be a + frequency domain sample rate converter. + Unfortunately, this converter does not handle arbitrary conversion ratios and + hence could not be properly compared to the other converters. + <LI><A HREF="http://sr-convert.sourceforge.net/">sr-convert</A> is another + converter which does not handle arbitrary conversion ratios. +</UL> + +<P> +It should be noted that the first three converters above are based on the algorithm +by <A HREF="http://www-ccrma.stanford.edu/~jos/resample/"> Julius O. Smith</A> +which emulates the conversion of the digital signal to an analogue one and then +sampling the analogue signal at the new sample rate. +</P> + +<!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> + +<H3><B>Methodology</B></H3> +<P> + Measuring the SNR of a converter is relatively straight forward. + Generate an input signal consisting of a windowed sine wave, sample rate + convert it and measure the signal-to-noise ratio of the output signal. + A typical length for the original file is 30000 samples. +</P> +<P> + The bandwidth of a sample rate converter is a little more difficult to measure. + Currently this is done by generating two short files containing a windowed + sine wave. + The frequencies of the sine waves are 0.35 and 0.495 of the sample rate. + These file are then upsampled by a factor of 2 using the converter under test. + If the attenutaion of the lower frquency is less than 3dB and higher frequency is + more than 3dB, it is then possible to iteratively increase the lower frequency + and decrease the upper frequency keeping the -3dB point bracketed. + When the distance between the upper and lower frequency is sufficiently small, + it is possible to obtain a very accurate estimate of the -3dB frequency. +</P> +<P> + The speed of a sample rate converter is easy to measure; simply perform a + conversion on a large file or a number of smaller files and time the conversion + process. +</P> + +<P> + The above measurement techniques are built into a test program which is delivered + with the Secret Rabbit Code source code distibution. + This program is able to test the first four of the above converters. +</P> +<!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> + +<H3><B>SoX</B></H3> +<P> + SoX provides three methods of resampling; a linear interpolator, a polyphase + resampler and the Julius O. Smith simulated analogue filter method. +</P> + +<H3><B>Shibatch</B></H3> +<P> + Shibach +</P> + +<P> + <B>More Coming Soon.</B> +</P> + +<!-- <A HREF="mailto:aldel@mega-nerd.com">For the spam bots</A> --> + +</DIV> +</TD></TR> +</TABLE> + +</BODY> +</HTML> +