- Elias omega coding
Elias omega coding is a universal code encoding the positive integers. Like
Elias gamma coding andElias delta coding , it works by prefixing the integer with a representation of itsorder of magnitude in a universal code. Unlike those other two codes, however, Elias omega recursively encodes 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:
Implied probability 1 0 1/2 2 10 0 1/8 3 11 0 " 4 10 100 0 1/64 5 10 101 0 " 6 10 110 0 " 7 10 111 0 " 8 11 1000 0 1/128 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 1/2048 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.
ee also
*
Elias delta coding
*Elias gamma coding
Wikimedia Foundation. 2010.