Elias Delta Coding

Elias delta code is a universal code encoding the positive integers. To code a number:
  1. Write it in binary.
  2. Count the bits, remove the leading one, and write that number in binary preceding the previous bit string.
  3. Subtract 1 from the number of bits written in step 2 and prepend that many zeros.
An equivalent way to express the same process:
  1. Separate the integer into the highest power of 2 it contains (2N) and the remaining N binary digits of the integer.
  2. Encode N with Elias gamma coding.
  3. Append the remaining N binary digits to this representation of N.
The code begins:
   1 1   2 0100   3 0101   4 01100   5 01101   6 01110   7 01111   8 00100000   9 00100001  10 00100010  11 00100011  12 00100100  13 00100101  14 00100110  15 00100111  16 001010000  17 001010001 
To decode an Elias delta-coded integer:
  1. Read and count zeroes from the stream until you reach the first one. Call this count of zeroes L.
  2. Considering the one that was reached to be the first digit of an integer, with a value of 2L, read the remaining L digits of the integer. Call this integer M.
  3. Put a one in the first place of our final output, representing the value 2M. Read and append the following M digits.
See also: Elias gamma coding, Elias omega coding

 

<< PreviousWord BrowserNext >>
microsoft bob
melinda gates
hybrid transport
moped
scooter
conveyor transport
lipschitz continuity
moving sidewalk
conveyor belt
dark moon
blimp
american pie
drawing board
american pie (song)
baen books
cisco systems
marco van basten
trial of the twenty one
plantago
tercet
roadrunner
graves basedow disease
elias gamma coding
somerset
rock around the clock
duomo
sidney altman
hydrostatic equilibrium
fleet air arm
church of satan
map projection
the flintstones
bubblegum pop
e.164
james gosling
dave cutler
side scan sonar
underwater archaeology
list of people on stamps
meg ryan
terry jones
david jason
azotemia
stars and stripes