Game Development Reference
In-Depth Information
After the value of R LPS is obtained, the renewed lower bound is updated. Then the
renormalization process is carried out to guarantee that the most significant bit of the
updated range value is always '1'. Until now, one coding cycle is finished. After one
bin is encoded by arithmetic coder, the estimated probability of the chosen context
should also be updated. Actually, in CBAC, the probability of each context model
is initialized to be 0.5 for both MPS and LPS at the start of coding. With the coding
of some bins, the adaptive probability estimation of MPS on logarithm domain is
performed. The probability estimation is fulfilled using only additions/subtractions
and shifts as in the following formulas:
LG _ P MPS
LG _ P MPS +
LG _ f
if
(
LPS happens
),
(6.13)
LG _ P MPS
LG _ P MPS (
LG _ P MPS >>
c
w)
if
(
MPS happens
)
2 c w ). Here, c
where f is equal to (1
is the size of sliding widow to control
the speed of probability adaptation. The smaller c
w
w
is, the faster the probability
adaptation will be.
In summary, the arithmetic coder in CBAC replaces the traditional multiplications
for range update and probability estimation update with additions by combining orig-
inal domain and logarithmic domain. In order to keep the cost of alternation between
the two domains low, the approximation is employed. Moreover, the renormaliza-
tion takes place only when one LPS happens so that much time can be saved for
renormalization process.
6.3.3 CBAC in AVS1
Figure 6.5 depicts the coding block diagram of ( Level , Run ) pairs in one DCT block.
As C2DVLC does, CBAC codes each
(
L i ,
R i )(
=
,
,...,
)
pair one by
one along the reverse scan order until all pairs are coded. A so-called EOB symbol
i
0
1
N
1
Fig. 6.5 Block diagram of CBAC encoder
 
Search WWH ::




Custom Search