Česky
Kamil Dudka

Digital Watermarking (C++, Qt3, gnulib)

File detail

Name:DownloadREADME [Download]
Location: kry2 > kry2-1.0pre1 > hamming-0.3
Size:2.4 KB
Last modification:2009-07-12 01:46

File content

DESCRIPTION
-----------
This archive contains an ANSI C library of functions implementing [7, 4]
Hamming encode and decode operations.  These implementations attempt to strike
a reasonable comprise between readability, adaptability speed, and memory usage.

There are two implementations for Hamming encoding, one that uses matrix
multiplication and one that uses a lookup table.  The lookup table version is
smaller and faster, but I used the matrix version to come up with the table for
the table version.

There are three implementations for Hamming decoding, one that uses matrix
multiplication, one that uses a lookup table and one that uses a packed lookup
table.  The packed table version is smaller, but slower than the table version,
and both versions are smaller and faster than the matrix version, but I used 
the matrix version to come up with the tables for the table versions.

More information on Hamming encoding and decoding may be found at:
http://michael.dipperstein.com/hamming

FILES
-----
COPYING         - Rules for copying and distributing GPL software
COPYING.LESSER  - Rules for copying and distributing LGPL software
hamming.c       - Hamming encode and decode functions
hamming.h       - Prototypes for encode and decode functions
LICENSE         - GNU Lesser General Public License (LGPL)
Makefile        - makefile for this project (assumes gcc compiler and GNU make)
README          - this file
testall.c       - Source for verifying routines and generating encode and
                  decode lookup tables.

BUILDING
--------
To build these files with GNU make and gcc:
1. Windows users should define the environment variable OS to be Windows or
   Windows_NT.  This is often already done.
2. Enter the command "make" from the command line.

USAGE
-----
Usage: testall <options>

options:
    D : Generate decode tables
    E : Generate encode table

Default usages with no options tests all functions.

HISTORY
-------
12/29/04  - Initial release
10/24/05  - Corrected errors in decode matrices pointed out by Ivan Piasini
            <furettoo@gmail.com>
          - Added test that verifies all single bit errors are correctly
            decoded.
08/29/07  - Licensed explicitly under LGPL version 3.

TODO
----
- Add code to build code (C) and parity check (H) matrices from a definition
  of parity bits.
- Generalize for schemes other than (7, 4).

AUTHOR
------
Michael Dipperstein (mdipper@cs.ucsb.edu)