Game Development Reference
In-Depth Information
6.2.3 Exponential-Golomb Codes
For the final VLC coding, codewords are constructed based on E-G codes. In
C2DVLC, k th order E-G codes with k equal to 0, 1, 2, and 3 are used. The order for
each table is determined by the distribution of ( Level , Run ) pairs under the corre-
sponding context. It is well known that E-G codes have a regular construction, which
consists of a prefix and a suffix. Given a CodeNumber N and a specific order k ,the
prefix part consists of l zeros followed by one 1 and the suffix part is the binarization
representation of value N
2 k
2 l
(
1
)
. l is given by
log 2 (
) 2 k + 1
+
N
1
l
=
min
{
0
,
+
1
/
2
.
(6.5)
Due to the regular codeword structure, E-G codes can be real-time constructed in
coding process without involving high computational complexity. Thus, the entries
stored in 2D-VLC tables could be mapping relationships ( CodeNumbers )from
( Level , Run ) pairs to E-G codewords instead of real codes. This is a valuable fea-
ture that resolves the problem of high memory requirement resulted from multiple
2D-VLC tables.
6.3 Context-Based Binary Arithmetic Coding
In C2DVLC, the VLC tables are predefined by off-line training which cannot capture
the local statistical variations in one context and a symbol with its probability greater
than 0.5 cannot be efficiently coded due to the intrinsic limit of 1bit/symbol of VLC
codes. Arithmetic coding can naturally avoid these problems for higher coding effi-
ciency. In this section, CBAC for AVS1 and AVS2 is presented. In Sect. 6.3.1 ,we
introduce the basic coding structure of CBAC coding. In the subsequent subsections,
the individual key techniques in CBAC, including context formation and quantiza-
tion, symbol binarization, and binary arithmetic coder, are discussed in detail.
6.3.1 Overview of CBAC
In CBAC, coding a data symbol involves the following steps: (a) Binarization,
(b) Context model selection and (c) Binary arithmetic encoding, as shown in Fig. 6.3 .
For a given nonbinary valued syntax element, it is uniquely mapped to a binary
sequence, a so-called bin string. Each of the given binary decision, which referred to
as a bin in the sequel, enters the context modeling stage, where a context is selected
and the corresponding choice of contexts may depend on previously encoded syntax
elements or binarized bins. Then, after the assignment of a context, the bin value
along with its associated model is passed to the regular coding engine or bypass
 
Search WWH ::




Custom Search