Menu
Home
Features
Downloads
F.A.Q
License
Example
Performance
Contact
Customers

What is Schifra?

Schifra is a very robust, highly optimized and extremely configurable Reed-Solomon error correcting code library for both software and IP core based applications with implementations in C++ and VHDL. Schifra supports standard, shortened and punctured Reed-Solomon codes. It also has support for stacked product codes and interleaving.

Schifra provides a concise, predictable and deterministic interface which lends itself to easy and seamless integration into the development of complex data communication projects requiring Reed-Solomon error correcting code capabilities.


Which C++ compilers and VHDL tool chains are supported?


Where is the documentation for Schifra?

The Schifra Reed-Solomon error correcting code library documentation will only be made available to customers who have purchased a Schifra Commercial License. That said, the publicly available Schifra resources provide a great deal of information on how one could potentially use and integrate Schifra into a project. One must also remember that the Schifra APIs are very self explanatory, straight forward and easy to use. That being said, a lite version of documentation can be obtained from: HERE


Where can I obtain a Schifra Commercial License?

Issues regarding the Schifra Commercial License and costs and requirements related to obtaining a license should be forwarded to the license enquiry e-mail address found on the contact page.


Is there commercial support for Schifra?

The Schifra Commerical License provides 3 months user and library support which is intended to help users smoothly integrate the library and become familiar with its use. The license also provides 12 months prioritised general support.

Customization and product specific software development and consulting services relating to Schifra and its integration within a commercial product can also be purchased through the Schifra Commercial License.


Why are there soo many parameters?

Fundamentally a Reed-Solomon code is a mathematical construct that describes a block code. As such its definition necessitates operations over finite fields with specific properties, which in turn require data and FEC lengths whose sum result in the allowable codeword length. A complete and well designed Reed-Solomon library would afford the developer the ability to configure any of the pertinent RS code parameters as they see fit. The following is a listing of the various components that go into setting up a Reed-Solomon code:

  1. Symbol size - number of bits per symbol, eg: 8-bits
  2. Finite field
    • Binary extension field mode - eg: GF(28)
    • Field size - number of elements in the field
    • Primitive polynomial - an irreducible polynomial used to normalize ordering of elements in the finite field
  3. Codeword
    • Array of symbols
    • Codeword length is the size of the finite field
    • Data length is the number of data symbols in the codeword
    • FEC length is number of FEC symbols in the codeword
    • Codeword of length N and K message symbols: DS1DS2DS3...DSk FS1FS2FS3...FSn-k
  4. Systematic Encoding/Decoding Process
    • Generator polynomial
    • Encoder that RS encodes codewords using the generator polynomial
    • Decoder that corrects RS encoded codewords that may have been corrupted
    • Decoding-Result is a context that is used to determine the outcome of decoding process

What happens during the RS decoding process?

The decoding process just like the encoding process is based upon the systematic RS code definition using a binary extension field. The decoding process itself is comprised of five sequential computations:

  1. Syndrome Calculation
  2. Modified Berlekamp–Massey Algorithm
  3. Chien Search (error locations)
  4. Forney Algorithm (error magnitudes)
  5. Corrections of errors and erasures at the locations and magnitude as per [3] and [4]

What does Schifra mean?

Schifra (also spelt shifra) is a Hebrew word meaning 'Beautiful' Schifra Pronunciation