A new Rust crate, `fec`, has been released, providing forward error correction (FEC) capabilities. It includes implementations of convolutional codes with a Viterbi decoder and Reed-Solomon codes over GF(2⁸). These codes are relevant for applications in software-defined radio (SDR) and space/satellite communications.
The Viterbi decoder within the `fec` crate supports acceleration using SIMD instructions (SSE/AVX2/AVX512) when compiled with nightly Rust. This feature is designed to improve decoding performance for convolutional codes. The crate supports various rates from 1/2 to 1/8 and orders from k=4 to k=16, including common standards like rate-1/2 k=7 and rate-1/3 k=9.
For Reed-Solomon codes, `fec` includes the standard CCSDS (255,223) code, supporting both conventional and on-the-wire dual-basis representations. The Reed-Solomon implementation handles error and erasure decoding. While the Viterbi decoder utilizes SIMD, the Reed-Solomon part does not currently use SIMD in either `fec` or the comparison library `libfec`.
Benchmarking on a Zen4 laptop (Ryzen 7840HS) indicates that `fec` decodes convolutional codes faster than `libfec`, a C library for forward error correction. The measurements were conducted by swapping only the codec library within `libfec`'s own test programs. Throughput for convolutional codes is measured in decoded payload bits per second.
The `fec` crate draws inspiration from `libcorrect`, a C library developed by the same author. It also acknowledges Phil Karn's `libfec` C library as an original implementation source, though `fec` does not borrow source code or have a direct relationship with it. Standard parameters, such as primitive polynomials and the CCSDS dual-basis transform, are derived from the published CCSDS 131.0-B standard.
✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →
One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.
One email a day. Unsubscribe in one click, any time.
Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.
▶ Play today's briefNew every morning, and the back catalogue is archived by date.
A new Rust crate named `fec` provides implementations of convolutional codes with Viterbi decoding and Reed-Solomon codes, with SIMD acceleration for Viterbi on nightly Rust. This crate offers forward error correction capabilities for software-defined radio and spacecraft applications, demonstrating faster decoding than `libfec` in benchmarks.