A good day.

More optimizations for #Librecast lcrq (#RaptorQ ) including getting AVX512 to do something useful. This has been a lot of fun and I still think I can squeeze a bit more performance out of the encoder.

Alonso came to visit, and fell asleep on my lap while I was coding. 🐶 ⌨️

Had a short walk to do some scrumping, waddling back with pockets full of chestnuts, beech nuts and acorns and scattering them along our hedge area. We're trying to get some trees established around the field 🌳

@freifunkMUC war zumindest bei Audio sehr begeistert von #RaptorQ, einem #ForwardErrorCorrection (#FEC) Mechanismus, für den es auch einen #RFC gibt (falls es bei euch überhaupt mit packetloss auf der Strecke zusammenhängen sollte): https://www.rfc-editor.org/rfc/rfc6330
Wird aber leider bisher nur von @gstreamer über ein #rust plugin unterstützt, @videolan kann das leider noch nicht.

Hm, das wäre doch auch nochmal ein lustiger Testcase für die neuen #Multicast features mit #Gluon + @batadv :-).

RFC 6330: RaptorQ Forward Error Correction Scheme for Object Delivery

We've got a new tool! lcagent version 0.1.0, the #Librecast #multicast agent.

In server mode, lcagent can be configured to listen on Librecast Channels (multicast groups) and execute programs in response to packet data received on those Channels.

Packets must be accompanied by an authorized token and signed by the matching key or they will be silently dropped.

Data is encoded with #RaptorQ using Librecast’s liblcrq library to provide forward error correction in the event of packet loss.

@librecast I was asked what supporting F = 0 means from the CHANGELOG.

You've heard me say that when a tree 🌲 falls in a #multicast forest and no one is listening, no data is sent?

Now imagine there was no tree! 😉

In #RaptorQ, F is the size of the object we are encoding. F = 0 means we are encoding no data. This is completely valid under RFC6330. F must be non-negative, but it can be zero.

@joemj sehr schöner, gut zusammefassender Beitrag. Würde höchstens noch den "neuen" Ansatz "#AirtimeFairness" hinzupacken: Dass jede Station gleichviel Sendezeit statt gleichviel "Bandbreite"/Durchsatz bekommt, wie es unter #Linux seit einer Weile mehrere #WLAN Treiber machen. Das sollte den letzten Punkt am Ende bzgl. Nachteile von #multicast-to-unicast stark abschwächen.
Auch in #ForwardErrorCorrection durch zB #RaptorQ für #RTP streams sehe ich große Chancen und es geht schon mit @gstreamer
@dentangle @librecast after playing with @gstreamer and #RaptorQ I was also wondering, if there were some #NetworkCoding algorithms that could do something like this: For some fixed data X, have n different multicasted streams, with each next one having a twice as high bitrate. The app/library joins the next #multicast stream with double as much bitrate until the path is saturated.
Is it something along that line you're looking for?

It's a new release of lcrq!

lcrq now makes use of a CPU dispatcher to detect the available SIMD instruction sets at runtime, ensuring that the code runs as fast as possible on the target machine.

Thanks to @nlnet and #NGIAssure for funding this work.

https://codeberg.org/librecast/lcrq/releases/tag/v0.2.0

#simd #RaptorQ #lcrq

lcrq

C implementation of RFC6330 RaptorQ Codes

Codeberg.org
@awlnx @ffrl @ffhl und was auch noch auf meiner Wunschliste stünde, um es "painless" zu bekommen: wenn @videolan #RaptorQ (#RFC6330) könnte. Bisher kann nur @gstreamer das für multimedia aller Art über #RTP.

lcrq (Librecast's RFC 6330 RaptorQ library) was one of the more fun projects I've worked on. I do love a bit of matrix maths.

#RFC6330 #RaptorQ #Librecast

😃

Perhaps I should put together an explainer talk on #RaptorQ #FEC and the #Librecast LCRQ library.

I wonder if anyone would be interested in that?

And are there any Covid-safe conferences in Europe to submit it to?