Science Fair Project Encyclopedia
Elias omega coding
Elias omega coding is a universal code encoding the positive integers. Like Elias gamma coding and Elias delta coding, it works by prefixing the integer with a representation of its order of magnitude in a universal code. Unlike those other two codes, however, Elias omega uses itself recursively to encode that prefix; thus, they are sometimes known as recursive Elias codes.
To code a number:
- Put a 'group' of "0" at the end of the representation.
- If the number to be encoded is 1, stop; if not, add the binary representation of the number as a 'group' to the beginning of the representation.
- Repeat the previous step, with the number of digits just written, minus 1, as the new number to be encoded.
The code begins:
1 0 2 10 0 3 11 0 4 10 100 0 5 10 101 0 6 10 110 0 7 10 111 0 8 11 1000 0 9 11 1001 0 10 11 1010 0 11 11 1011 0 12 11 1100 0 13 11 1101 0 14 11 1110 0 15 11 1111 0 16 10 100 10000 0 17 10 100 10001 0
To decode an Elias omega-coded integer:
- Start with a variable N, set to a value of 1.
- Read the first 'group', which will either be a single "0", or a "1" followed by N more digits. If it is a "0", it means the value of the integer is 1; if it starts with a "1", then N becomes the value of the group interpreted as a binary number.
- Read each successive group; it will either be a single "0", or a "1" followed by N more digits. If it is a "0", it means the value of the integer is N; if it starts with a "1", then N becomes the value of the group interpreted as a binary number.
Omega coding is used in applications where the largest encoded value is not known ahead of time, or to compress data in which small values are much more frequent than large values.
See also Elias delta coding, Elias gamma coding
Last updated: 07-13-2005 22:56:55
12-19-2008 14:25:18
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details


