This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations.(May 2017) (Learn how and when to remove this message)
Part of a series on
Numeral systems
Place-value notation
Hindu–Arabic numerals
Western Arabic
Eastern Arabic
Bengali
Devanagari
Gujarati
Gurmukhi
Odia
Sinhala
Tamil
Malayalam
Telugu
Kannada
Dzongkha
Tibetan
Balinese
Burmese
Javanese
Khmer
Lao
Mongolian
Sundanese
Thai
East Asian systems
Contemporary
Chinese
Suzhou
Hokkien
Japanese
Korean
Vietnamese
Historic
Counting rods
Tangut
Other systems
History
Ancient
Babylonian
Post-classical
Cistercian
Mayan
Muisca
Pentadic
Quipu
Rumi
Contemporary
Cherokee
Kaktovik (Iñupiaq)
By radix/base
Common radices/bases
2
3
4
5
6
8
10
12
16
20
60
(table)
Non-standard radices/bases
Bijective(1)
Signed-digit(balanced ternary)
Mixed(factorial)
Negative
Complex(2i)
Non-integer(φ)
Asymmetric
Sign-value notation
Non-alphabetic
Aegean
Attic
Aztec
Brahmi
Chuvash
Egyptian
Etruscan
Kharosthi
Prehistoric counting
Proto-cuneiform
Roman
Tally marks
Alphabetic
Abjad
Armenian
Alphasyllabic
Akṣarapallī
Āryabhaṭa
Kaṭapayādi
Coptic
Cyrillic
Geʽez
Georgian
Glagolitic
Greek
Hebrew
List of numeral systems
v
t
e
Asymmetric numeral systems (ANS)[1][2] is a family of entropy encoding methods introduced by Jarosław (Jarek) Duda[3] from Jagiellonian University, used in data compression since 2014[4] due to improved performance compared to previous methods.[5] ANS combines the compression ratio of arithmetic coding (which uses a nearly accurate probability distribution), with a processing cost similar to that of Huffman coding. In the tabled ANS (tANS) variant, this is achieved by constructing a finite-state machine to operate on a large alphabet without using multiplication.
Among others, ANS is used in the Facebook Zstandard compressor[6][7] (also used e.g. in Linux kernel,[8] Google Chrome browser,[9] Android[10] operating system, was published as RFC 8478 for MIME[11] and HTTP[12]), Apple LZFSE compressor,[13] Google Draco 3D compressor[14] (used e.g. in Pixar Universal Scene Description format[15]) and PIK image compressor,[16] CRAM DNA compressor[17] from SAMtools utilities,[18]
NVIDIA nvCOMP high speed compression library,[19]
Dropbox DivANS compressor,[20] Microsoft DirectStorage BCPack texture compressor,[21] and JPEG XL[22] image compressor.
The basic idea is to encode information into a single natural number . In the standard binary number system, we can add a bit of information to by appending at the end of , which gives us . For an entropy coder, this is optimal if . ANS generalizes this process for arbitrary sets of symbols with an accompanying probability distribution . In ANS, if the information from is appended to to result in , then . Equivalently, , where is the number of bits of information stored in the number , and is the number of bits contained in the symbol .
For the encoding rule, the set of natural numbers is split into disjoint subsets corresponding to different symbols – like into even and odd numbers, but with densities corresponding to the probability distribution of the symbols to encode. Then to add information from symbol into the information already stored in the current number , we go to number being the position of the -th appearance from the -th subset.
There are alternative ways to apply it in practice – direct mathematical formulas for encoding and decoding steps (uABS and rANS variants), or one can put the entire behavior into a table (tANS variant). Renormalization is used to prevent going to infinity – transferring accumulated bits to or from the bitstream.
^J. Duda, K. Tahboub, N. J. Gadil, E. J. Delp, The use of asymmetric numeral systems as an accurate replacement for Huffman coding, Picture Coding Symposium, 2015.
^J. Duda, Asymmetric numeral systems: entropy coding combining speed of Huffman coding with compression rate of arithmetic coding, arXiv:1311.2540, 2013.
^"Dr Jarosław Duda (Jarek Duda)". Institute of Theoretical Physics. Jagiellonian University in Krakow. Retrieved 2021-08-02.
^Duda, Jarek (October 6, 2019). "List of compressors using ANS, implementations and other materials". Retrieved October 6, 2019.
^"Google Accused of Trying to Patent Public Domain Technology". Bleeping Computer. September 11, 2017.
^Smaller and faster data compression with Zstandard, Facebook, August 2016.
^5 ways Facebook improved compression at scale with Zstandard, Facebook, December 2018.
^Zstd Compression For Btrfs & Squashfs Set For Linux 4.14, Already Used Within Facebook, Phoronix, September 2017.
^New in Chrome 123 (Content-Encoding), Google, March 2024.
^"Zstd in Android P release". Archived from the original on 2020-08-26. Retrieved 2019-05-29.
^Zstandard Compression and The application/zstd Media Type (email standard).
^Hypertext Transfer Protocol (HTTP) Parameters, IANA.
^Apple Open-Sources its New Compression Algorithm LZFSE, InfoQ, July 2016.
^Google Draco 3D compression library.
^Google and Pixar add Draco Compression to Universal Scene Description (USD) Format .
^Google PIK: new lossy image format for the internet.
^CRAM format specification (version 3.0).
^Chen W, Elliott LT (2021). "Compression for population genetic data through finite-state entropy". J Bioinform Comput Biol. 19 (5): 2150026. doi:10.1142/S0219720021500268. PMID 34590992.
^High Speed Data Compression Using NVIDIA GPUs.
^Building better compression together with DivANS.
Asymmetricnumeralsystems (ANS) is a family of entropy encoding methods introduced by Jarosław (Jarek) Duda from Jagiellonian University, used in data...
in different numeralsystems. For example, "11" represents the number eleven in the decimal numeralsystem (today, the most common system globally), the...
defined by two numbers. A recent family of entropy coders called asymmetricnumeralsystems allows for faster implementations thanks to directly operating...
you may see question marks, boxes, or other symbols. Roman numerals are a numeralsystem that originated in ancient Rome and remained the usual way of...
numeral systems, numbers are written using the characters of an alphabet, syllabary, or another writing system. Unlike acrophonic numeralsystems, where...
numerals is the numeralsystem of the Gujarati script of South Asia, which is a derivative of Devanagari numerals. It is the official numeralsystem of...
The unary numeralsystem is the simplest numeralsystem to represent natural numbers: to represent a number N, a symbol representing 1 is repeated N times...
compression methods - it is replaced with arithmetic coding or asymmetricnumeralsystems if a better compression ratio is required. In 1951, David A. Huffman...
of writing Jeton – Coin-like counting token List of numeralsystem topics List of numeralsystems Relationship between mathematics and physics – Study...
'end' of the numeral represented the units). This system first appeared around 2000 BC; its structure reflects the decimal lexical numerals of Semitic languages...
Alexandra's Royal Army Nursing Corps Tabled variant asymmetricnumeralsystems (tANS), in asymmetricnumeralsystems Tan (disambiguation) This disambiguation page...
As with the octal and hexadecimal numeralsystems, quaternary has a special relation to the binary numeralsystem. Each radix four, eight, and sixteen...
other countries that use the Persian numerals on the Iranian plateau and in Asia. The early Hindu–Arabic numeralsystem used a variety of shapes. It is unknown...
Malayalam numerals are the numeralsystem of the Malayalam script used by Malayalam in Kerala. It is one of several Indian numeralsystems. This system is archaic...
boxes, or other symbols. Greek numerals, also known as Ionic, Ionian, Milesian, or Alexandrian numerals, are a system of writing numbers using the letters...
A binary number is a number expressed in the base-2 numeralsystem or binary numeralsystem, a method of mathematical expression which uses only two symbols:...
121 + 10 × 120 = 838 in base 10. Commonly used numeralsystems include: The octal and hexadecimal systems are often used in computing because of their ease...
notation using the numerals, as well as the use of a decimal base, in particular when contrasted with other systems such as Roman numerals. However, the symbols...
numeral systems: the system of Arabic numerals used worldwide, and two indigenous systems. The more familiar indigenous system is based on Chinese characters...
Hindu–Arabic numeralsystem. However, the Brahmi numeralsystem was conceptually distinct from these later systems, as it was a non-positional decimal system, and...
numerals is an ancient numeralsystem from the Old Turkic script the Chuvash people used. (Modern Chuvash use Hindu-Arabic numerals.) Those numerals originate...