Recent from talks
All channels
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Welcome to the community hub built to collect knowledge and have discussions related to Even–Rodeh coding.
Nothing was collected or created yet.
Even–Rodeh coding
View on Wikipediafrom Wikipedia
Even–Rodeh code is a universal code encoding the non-negative integers developed by Shimon Even and Michael Rodeh.[1]
Encoding
[edit]To code a non-negative integer N in Even–Rodeh coding:
- If N is not less than 4 then set the coded value to a single
0bit. Otherwise the coded value is empty. - If N is less than 8 then prepend the coded value with 3 bits containing the value of N and stop.
- Prepend the coded value with the binary representation of N.
- Store the number of bits prepended in step 3 as the new value of N.
- Go back to step 2.
To decode an Even–Rodeh-coded integer:
- Read 3 bits and store the value into N.
- If the first bit read was
0then stop. The decoded number is N. - If the first bit read was
1then continue to step 2.
- If the first bit read was
- Examine the next bit.
- If the bit is
0then read 1 bit and stop. The decoded number is N. - If the bit is
1then read N bits, store the value as the new value of N, and go back to step 2.
- If the bit is
Examples
[edit]| Number | Encoding | Implied probability |
|---|---|---|
| 0 | 000 |
1/8 |
| 1 | 001 |
1/8 |
| 2 | 010 |
1/8 |
| 3 | 011 |
1/8 |
| 4 | 100 0 |
1/16 |
| 5 | 101 0 |
1/16 |
| 6 | 110 0 |
1/16 |
| 7 | 111 0 |
1/16 |
| 8 | 100 1000 0 |
1/256 |
| 9 | 100 1001 0 |
1/256 |
| ︙ | ||
| 15 | 100 1111 0 |
1/256 |
| 16 | 101 10000 0 |
1/512 |
| ︙ | ||
| 2761 | 100 1100 101011001001 0 |
1/1,048,576 |
| ︙ | ||
See also
[edit]References
[edit]- ^ Even, Shimon; Rodeh, Michael (April 1978). "Economical encoding of commas between strings". Communications of the ACM. 21 (4): 315–317. doi:10.1145/359460.359480.
