Hi

Some more analysis for the two modes:

Setup for freedv-rx in 700(b)-mode:

routineRXfreedv

input: 2.7kHz filtered samples @ 96kHz are coming in blocks of 1024 
Samples (cohpsk-data)

using libsamplerate downsampling from 48kHz to 7.5 kHz gives 80 
[email protected]
stored in input roundbuffer.
if ( more than 600 samples are avaliable)
{
      call to freedv_rx to typically get 640 Samples audio and
         upsampling and filtering with a sinc-FIR (41 coefficients) to 
96kHz to get 3840 Samples.
         stored in a output roundbuffer.
}
output: 1024 Samples@96kHz audiodata
(when output roundbuffer does not have enough samples, return an zero 
filled buffer).

elapsed time when not enough samples for freedv_floatrx: about 150 usec.
when freedv_floatrx is called, the elapsed time is about 4000 usec. 
(which occurs average every eights buffer).

total time in routineRXfreedv:
Anzahl verarbeitete Buffer: k=4072 (number of calls to the routine)
mode700B totalexecutiontime=2765887,demodcalls=542, 
longexecutiontime=2236199

so, about 0.5 sec are used only for downsampling etc.,



analysis with 1600-mode with the same input (about 43 seconds of audiodata):

routine has the same structure, but downsampling for fdmdv to 8kHz uses 
4 times 1024Samples@96kHz to get 320 Samples@8kHz fdmdv. (two calls to 
freedv_floatrx for fdmdv).
The downsampling is simple, because we have just to use every 12th 
sample (2.7kHz filtering done before the routineRXfreedv).

elapsed time without call to freedv_floatrx:    about 12 usec.
elapsed time including call: less than 1800 usec (which occurs average 
about every fourth buffer).

Anzahl verarbeitete Buffer: k=4072
mode1600 totalexecutiontime=1864957,demodcalls=1087, 
longexecutiontime=1831541

so, most cycles go into the freedv_floatrx.

My conclusion: the libsamplerate (Secret Rabbit Code 
http://www.mega-nerd.com/SRC/) uses quite some cycles. But the main 
cycles are used by freedv_floatrx.

Alfred, hb9epu

P.S. I am using a Shuttle DS47 passive cooled tiny computer (20x4x16cm3) 
with a twocore intel cpu.



------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to