discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Realtime streaming issues using gr-dvt on E312


From: kailash kumar
Subject: Re: [Discuss-gnuradio] Realtime streaming issues using gr-dvt on E312
Date: Sun, 25 Feb 2018 20:10:28 +0530

Hi Ron,

Thanks. I tried with E312 using network mode.
Tuning code-rate, guard interval, mux-rate (as per sampling rate calculation suggested by you), I was able to get almost real-time A/V streaming on an 8-core X86 host.

ARM architecture performance was not commendable (as confirmed by you as well).
One last question; with an mpeg having only audio, X86 host based DVT had few issues. At times audio would get stuck and would take a while to recover.
Video plus audio was much better however. Any particular area you can recommend that I should be looking at?

Thanks
Kailash

On Thu, Feb 22, 2018 at 2:05 PM, Ron Economos <address@hidden> wrote:

Kailash,

    I did some benchmarks on my ARM platform (BeagleBoard X-15) today. It's a bit more powerful than the E312 (A15 at 1.5 GHz versus A9 at 866 MHz).

DVB-T transmitter performance is pretty good, looks like a 3 MHz waveform (3.43 Msps) is entirely possible.

DVB-T receiver performance is not so good. It can sustain about 300k sps after OFDM symbol acquisition. One thing to know about is that the OFDM symbol acquisition takes a lot more CPU when it's hunting for synchronization. If you have an overflow due to poor performance or you lose symbol synchronization for any other reason (usually frequency offset), it can take a fairly long time to regain symbol synchronization. So you lose large chunks of A/V bit-stream.

Note that the primary performance bottleneck is the Viterbi decoder. It may be possible to add NEON SIMD instructions to boost the performance, but that's a lot of work.

I'm afraid the E312 (or anything ARM based) is just not the correct platform for the DVB-T receiver.

Ron

On 02/20/2018 02:57 AM, kailash kumar wrote:
Hi Ron,

Thanks for your input.

Here is the combination tried by me:
Mpeg Input Stream with Audio at 64K and video at 200K max(Total 264K for 144p resolution)
Sample rate: 310K

Using calculation mentioned tried below combination with QPSK:
CR: 2/3, GI: 1/16, CP: 512  (Bit Rate: 264679.9)
CR: 3/4, GI: 1/32, CP: 256  (Bit Rate: 306788.1)
CR: 5/6, GI: 1/8, CP: 1024  (Bit Rate: 312469.4)

With this, there is heavy packet loss at receiver end (almost 50%) and A/V mismatch issues persists.

I tried using multiplier block to mitigate packet loss to some extent.

Anything else that I might be missing? Any other way to get live streaming working with GnuRadio?
Any way to achieve high RF throughput for higher quality video streaming?

Thanks
Kailash



On Tue, Feb 20, 2018 at 12:41 PM, Ron Economos <address@hidden> wrote:

Kailash,

    The DVB-T receiver is very compute intensive. Even on a 4 core X86 processor, it may be difficult to run the example flow graph with the default parameters. To make matters worse, the SSE2 optimizations in the Viterbi decoder are not available on ARM.

    For smooth playback, you have to match the Transport Stream bit-rate to the sample rate. Here's a program to calculate the TS rate from the sample rate.

http://www.w6rz.net/dvbtrate.c

For the 310k sample rate you're using, the bit-rates would be:

QPSK             1/4      1/8     1/16     1/32
coderate = 1/2 168733.5 187481.6 198509.9 204525.4
coderate = 2/3 224977.9 249975.5 264679.9 272700.5
coderate = 3/4 253100.2 281222.4 297764.9 306788.1
coderate = 5/6 281222.4 312469.4 330849.9 340875.7
coderate = 7/8 295283.5 328092.8 347392.4 357919.5
QAM-16
coderate = 1/2 337466.9 374963.2 397019.9 409050.8
coderate = 2/3 449955.9 499951.0 529359.9 545401.1
coderate = 3/4 506200.4 562444.9 595529.8 613576.2
coderate = 5/6 562444.9 624938.7 661699.8 681751.3
coderate = 7/8 590567.1 656185.7 694784.8 715838.9
QAM-64
coderate = 1/2 506200.4 562444.9 595529.8 613576.2
coderate = 2/3 674933.8 749926.5 794039.8 818101.6
coderate = 3/4 759300.6 843667.3 893294.8 920364.3
coderate = 5/6 843667.3 937408.1 992549.7 1022627.0
coderate = 7/8 885850.6 984278.5 1042177.2 1073758.4

The combined video and audio bit-rates have to be less than the TS rate.

Also, when you change the guard interval, you have to change the CP length on the OFDM Cyclic Prefixer. 1/32 = 256, 1/16 = 512, 1/8 = 1024 and 1/4 = 2048.

Ron


On 02/19/2018 10:00 PM, kailash kumar wrote:

Hi,

I am using DVT module for realtime streaming of mpeg ts file.
MPEG -> DVT -> USRP <----> USRP -> DVT -> UDP Sink -> VLC

I am having following issues wrt performance:

  1. Audio is not not synced with respect to video frame causing stutter or video getting stuck on VLC.
  2. At times video gets stuck and unable to recover on VLC.

Here is what I have tried so far:

  1. Stripping down video to 240x144 at 10 fps or less to cut down on bandwidth requirements
  2. Varying audio bit-rates from 32 to 384 Kbps.
  3. Trying out different combination of sample rates and tx/rx frequency.
  4. Varying code rate and guard interval
  5. Trying out different combination of modulation techniques (QAM/QPSK).

I am attaching tx and rx grc files for reference.
Please let me know if something is missing from the flowgraph to achieve decent real-time streaming from one E312 USRP to another.

Thanks

Kailash






_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



reply via email to

[Prev in Thread] Current Thread [Next in Thread]