Quantcast
Channel: Hacker News
Viewing all articles
Browse latest Browse all 25817

The FLIF spec has been finalized

$
0
0

Meta-Adaptive Near-zero Integer Arithmetic Coding (MANIAC) is a variant of Context-adaptive binary arithmetic coding (CABAC) in which not just the probability model is adaptive (based on local context), but also the context model itself is adaptive. In this sense, it is meta-adaptive.

The symbol encoding itself corresponds to the Near-zero symbol coding method described above. The chance table (the chances for ZERO, SIGN, EXP(p,s) and MANT(p)) depends on the local context; these chances adapt each time a symbol is encoded or decoded.

The local context is described as a vector of integer numbers, which are called properties. To determine which chance table to use, a decision tree is used. This tree is called a MANIAC tree. The full structure of the tree is known in advance by the decoder (it is encoded in part 4 of the bitstream, see below). However, at decode time, the tree is initially only partially used (only the root node at the beginning), and it 'grows' to eventually become the full tree.

The inner nodes of a MANIAC tree contain a test of the form property[k] > value. If this test evaluates to true, then the left branch is taken, otherwise the right branch is taken. Eventually a leaf node is reached.

The leaf nodes of a MANIAC tree contain a counter and a chance table. This chance table is used in the Near-zero symbol coding. The counter gets decremented each time the leaf node is reached. When it reaches zero, the tree 'grows' and the leaf node becomes an inner node (a decision node). Its chance table gets duplicated and becomes the chance table of its two branch nodes.


Viewing all articles
Browse latest Browse all 25817

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>