Content deleted Content added
m Bot: Migrating 5 interwiki links, now provided by Wikidata on d:q2606 (Report Errors) |
No edit summary |
||
Line 1:
'''Unary coding''', sometimes called '''thermometer code''', is an [[entropy encoding]] that represents a [[natural number]], ''n'', with ''n'' ones followed by a zero (if ''natural number'' is understood as ''non-negative integer'') or with ''n'' − 1 ones followed by a zero (if ''natural number'' is understood as ''strictly positive integer''). For example 5 is represented as 111110 or 11110. Some representations use ''n'' or ''n'' − 1 zeros followed by a one. The ones and zeros are interchangeable without loss of generality. Unary coding is both a [[Prefix-free code]] and a [[Self-synchronizing code]].
<table border="1" cellpadding="2">
Line 31:
for <math>n=1,2,3,...</math>. Although it is the optimal symbol-by-symbol coding for such probability distributions, [[Golomb coding]] achieves better compression capability for the geometric distribution because it does not consider input symbols independently, but rather implicitly groups the inputs. For the same reason, [[arithmetic encoding]] performs better for general probability distributions, as in the last case above.
==Unary code in use today==
Examples of unary code uses include:
* In [[Golomb Rice code]], unary encoding is used to encode the quotient part of the Golomb code word.
* In [[UTF-8]], unary encoding is used in the leading byte of a multi-byte sequence to indicates the number of bytes in the sequence, so that the length of the sequence can be determined without examining the continuation bytes.
==See also==
|