[op25-dev] RE: Repeater vs Decoder Code
ikj1234i at yahoo.com
ikj1234i at yahoo.com
Fri Nov 1 16:08:31 UTC 2013
very interesting question - if I were you I wouldn't necessarily be so quick to blame all faults and problems on your end. We haven't done specific benchmarks/comparisions/CPU-usage studies, at least that I'm aware of. We do know that the decoder logic used in DSD has some shortcuts and simplifications specifically to make it run using less CPU; whereas the focus in OP25 has been on correctness and adherence to the standard(s). In tracing performance problems such as this it would be good to know specifically where the problem area(s) are before necessarily making wholesale changes. It might turn out the problem is in a totally different area than first thought. The GNU Radio 3.7 release contains new performance tracking features which should enable pinpointing which block(s) are hogging the CPU.
As far as the repeater, there are many differences. Two receiver chains available in the repeater - a cqpsk demod is available in addition to Frank's c4fm demodulator; the repeater does FEC error correction; also, it allows user choce of two IMBE voice decoders (Pavel's as well as the original software IMBE decoder)... For these reasons it's very difficult to say (without actually trying) whether you'd see a benefit to switching, other than that there are more options to choose from when running performance comparison tests...
---In op25-dev at yahoogroups.com, <op25-dev at yahoogroups.com> wrote:
I have put together a C++ based decoder P25 CAI audio (https://github.com/robotastic/smartnet-recorder/blob/master/logging_receiver_p25.cc https://github.com/robotastic/smartnet-recorder/blob/master/logging_receiver_p25.cc) based off the usrp_rx.py file and using the C blocks in /blocks http://groups.yahoo.com/trac/wiki.png/browser/trunk/blocks?order=name/src http://groups.yahoo.com/trac/wiki.png/browser/trunk/blocks/src?order=name/lib http://groups.yahoo.com/trac/wiki.png/browser/trunk/blocks/src/lib?order=name. It using a lot of CPU though. Are the C code blocks for the Repeater any diferent? Should I try building off of those instead?
My basic app is recording a SmartNet system. It follows the trunking control channel and the creates loggers to capture the audio from a talkgroup and saves it to WAV file. Right now it is using DSD which has been shoehorned into a GR Block, but I would much rather use OP25. Unfortunately the DSD implementation allows for about 7 concurrent recordings, and I am only able to get about 2-3 using OP25 on a quad core machine. I am sure the fault is on my end, I just want to make sure I am using the best code to base my stuff off of, before I begin trying to track down my problems.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the op25-dev