Rsbep - FEC for dvbackup

(last changed 2003-08-04)

dvbackup from Peter Schlaile allows you to store data on dv-tape with your favorite
camcorder with about 3 MBytes/sec, with Long-Play up to 15 GByte per 60 min tape!:

Although the camcorder already does 2 stages of FEC (forward error correction)
it still gives occasional bit-errors, especially in Long-Play mode or with damaged tapes.

Rsbep (=Reed-Solomon and Burst Error Protection) however wraps the data in additional
FEC-blocks (Reed Solomon code from Phil Carn) and thus gives you additional security to your data.

It uses RS(255,223) which is also used on CD, DVD for FEC (about 14% of parity overhead)
On x86 you can use the asm32-version, at any other system use the alternate "Makefile_plain_C", be warned:
Together with dvbackup and dvconnect rsbep uses up to 90% CPU on a P2-450 with the ASM32 version,
the C-version uses several times more CPU-cycles and can probably not used for realtime encoding/decoding with
dvconnect, because it requires 3.6 MB/sec supply/consume rates!
The burst error protection is specially designed to allow recovering of badly damaged streams (without erasures),
by distributing the bytes of the RS-blocks over 255*255*3 bytes (one every 765 bytes).
That way, burst errors with maximum 16*765=12240 (one dv-track) consecutive bytes damaged can 100% recovered!
So far the theory ;-)
In practice it makes LP usable for me and small damages to the tape (touching, poking 0.3mm gaps etc.) can be repaired,
however, a 0.5mm puncture with a needle is to much for it - your experiences?

usage:

  • you can use it with any unreliable media, simply pipe the stream through it
  • to encode the data:
    $>data-source | rsbep | data-destination
  • to decode the data:
    $>data-source | rsbep -d | data-destination

    limitations:

  • it contains only basic resynchronisation on broken streams, which uses to much CPU to do it in realtime
  • it makes no use of erasures in RS-code, which would improve the recover rate by factor 2.

    warning:

    The program is supplied as is, no warranties, it might do anything to your data or system -
    use at your own risk or let it be!
    I may and can not give any help to rescue your data, so be sure you understand what it does before use!

    download:

    rsbep0.0.5.tgz (compiles with as instead of deprecated gasp)
    It contains also the 3 shell scripts tar2dv.sh, dv2tar.sh and dv2ver.sh for doing a tar to tape, restore and verify.
    Additional there is dvr, which can be used to start DVin record on P*n*s*n*c (DVin enabled) camcorders
    (they where not so grateful to give me the documentation, i had to "guess" how it works).
    Changes:
  • fixed segfault-bug during encoding and incomplete-decoding-bug (thanks to Swen Thuemmler)
  • dvr has now a command line parameter for the serial port your camcorder is connected to

    older versions:

    rsbep0.0.4.tgz rsbep0.0.3.tgz

    Back to home