← All stories
● Covered by 1 source · 1 reportLow impact1 neutral

Rust `fec` Crate Offers SIMD-Accelerated Viterbi and Reed-Solomon Decoders

🔄 Updated 1d ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • Rust `fec` crate implements Viterbi and Reed-Solomon decoders.
  • Viterbi decoder supports SIMD acceleration on SSE/AVX2/AVX512 with nightly Rust.
  • Includes common rate-1/2 k=7 and CCSDS (255,223) codes.
  • Benchmarks show `fec` decodes faster than `libfec` for convolutional codes.

New Forward Error Correction Crate

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.

SIMD Acceleration for Viterbi Decoding

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.

Reed-Solomon Code Implementation

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`.

Performance Benchmarks

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.

Origin and Standards Compliance

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 →

The daily brief

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.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~7 min · 6 stories · Aug 15

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Reporting from

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.