All Projects → mersinvald → Reed Solomon

mersinvald / Reed Solomon

Licence: mit
Reed Solomon BCH encoder and decoder

Programming Languages

cpp
1120 projects

Projects that are alternatives of or similar to Reed Solomon

Keras Transformer
Transformer implemented in Keras
Stars: ✭ 273 (+378.95%)
Mutual labels:  decoder, encoder
Ffmpegcommand
FFmpegCommand适用于Android的FFmpeg命令库,实现了对音视频相关的处理,能够快速的处理音视频,大概功能包括:音视频剪切,音视频转码,音视频解码原始数据,音视频编码,视频转图片或gif,视频添加水印,多画面拼接,音频混音,视频亮度和对比度,音频淡入和淡出效果等
Stars: ✭ 394 (+591.23%)
Mutual labels:  decoder, encoder
Ultrajson
Ultra fast JSON decoder and encoder written in C with Python bindings
Stars: ✭ 3,504 (+6047.37%)
Mutual labels:  decoder, encoder
IkigaJSON
A high performance JSON library in Swift
Stars: ✭ 316 (+454.39%)
Mutual labels:  encoder, decoder
Paseto
Platform-Agnostic Security Tokens implementation in GO (Golang)
Stars: ✭ 461 (+708.77%)
Mutual labels:  decoder, encoder
Flask Session Cookie Manager
🍪 Flask Session Cookie Decoder/Encoder
Stars: ✭ 257 (+350.88%)
Mutual labels:  decoder, encoder
Flif
Free Lossless Image Format
Stars: ✭ 3,668 (+6335.09%)
Mutual labels:  decoder, encoder
android-opus-codec
Implementation of Opus encoder and decoder in C++ for android with JNI
Stars: ✭ 44 (-22.81%)
Mutual labels:  encoder, decoder
Xmlcoder
Easy XML parsing using Codable protocols in Swift
Stars: ✭ 460 (+707.02%)
Mutual labels:  decoder, encoder
Utf8.js
A robust JavaScript implementation of a UTF-8 encoder/decoder, as defined by the Encoding Standard.
Stars: ✭ 449 (+687.72%)
Mutual labels:  decoder, encoder
AnimatedGif
📼 A high performance .NET library for reading and creating animated GIFs
Stars: ✭ 106 (+85.96%)
Mutual labels:  encoder, decoder
Encore
Synonym of angkor
Stars: ✭ 19 (-66.67%)
Mutual labels:  decoder, encoder
schifra
C++ Reed Solomon Error Correcting Library https://www.schifra.com
Stars: ✭ 28 (-50.88%)
Mutual labels:  encoder, decoder
He
A robust HTML entity encoder/decoder written in JavaScript.
Stars: ✭ 2,973 (+5115.79%)
Mutual labels:  decoder, encoder
morse-pro
Library for manipulating Morse code text and sound. Understands prosigns and Farnsworth speed. Can create WAV files and analyse input from the microphone or audio files.
Stars: ✭ 85 (+49.12%)
Mutual labels:  encoder, decoder
Tiny Utf8
Unicode (UTF-8) capable std::string
Stars: ✭ 322 (+464.91%)
Mutual labels:  decoder, encoder
ArduinoSpritzCipher
Spritz encryption system portable C library, CSPRNG, cryptographic hash and MAC functions, symmetric-key data encryption, and general-purpose functions. It's also an Arduino library.
Stars: ✭ 67 (+17.54%)
Mutual labels:  embedded, encryption
aiff
Battle tested aiff decoder/encoder
Stars: ✭ 20 (-64.91%)
Mutual labels:  encoder, decoder
Json Rust
JSON implementation in Rust
Stars: ✭ 395 (+592.98%)
Mutual labels:  decoder, encoder
Jave2
The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project
Stars: ✭ 570 (+900%)
Mutual labels:  decoder, encoder

Reed-Solomon

Reed Solomon BCH encoder and decoder library

Overview

This RS implementation was designed for embedded purposes, so all the memory allocations performed on the stack.
If somebody want to reimplement memory management with heap usege, pull requests are welcome

Getting the source

If you want only Reed-Solomon code, just clone repository.
If you want to get tests and examples also, do

git clone --recursive [email protected]:mersinvald/Reed-Solomon.git

Build

There is no need in building RS library, cause all the implementation is in headers.
To build tests and examples simply run make in the folder with cloned repo and executables will emerge in the ./build folder

Usage

All the Reed-Solomon code is in folder include, you just need to include header rs.hpp

Template class ReedSolomon accepts two template arguments: message length and ecc length.
Simple example:

    char message[] = "Some very important message ought to be delivered";
    const int msglen = sizeof(message);
    const int ecclen = 8;
    
    char repaired[msglen];
    char encoded[msglen + ecclen];


    RS::ReedSolomon<msglen, ecclen> rs;

    rs.Encode(message, encoded);

    // Corrupting first 8 bytes of message (any 4 bytes can be repaired, no more)
    for(uint i = 0; i < ecclen / 2; i++) {
        encoded[i] = 'E';
    }

    rs.Decode(encoded, repaired);

    std::cout << "Original:  " << message  << std::endl;
    std::cout << "Corrupted: " << encoded  << std::endl;
    std::cout << "Repaired:  " << repaired << std::endl;

    std::cout << ((memcmp(message, repaired, msglen) == 0) ? "SUCCESS" : "FAILURE") << std::endl;

Regards

Huge thanks to authors of wikiversity page about Reed-Solomon BCH

Related projects

Arduino Reed-Solomon Forward Error Correction library

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].