Every concatenation of two dictionary blocks of
level l − 1 results in a new block, that corresponds
to a pattern that did not exist in the dictionary and is
used to update it, becoming available to encode future
blocks of the image, independently of their size. This
updating procedure efficiently adapts the dictionary,
by using only information that can be inferred by the
decoder, since it is based exclusively in the encoded
segmentation flags and dictionary indexes.
MMP uses a separable scale transformation T
M
N
to
adjust the vectors’ sizes before attempting to match
them, allowing for the matching of vectors of different
dimensions. For example, in order to approximate an
original block X
l
using one block S
k
of a different
scale of the dictionary, MMP first determines S
l
=
T
l
k
[S]. Detailed information about the use of scale
transformations in MMP is presented in (de Carvalho
et al., 2002).
2.2 The Mmp-intra Algorithm
MMP-Intra combines the original MMP algorithm
with predictive coding. For each original block, X
l
,
MMP-Intra determines a prediction block, P
l
m
, us-
ing previously encoded image pixels and then it de-
termines a residue block, given by R
l
m
= X
l
− P
l
m
.
This residue block is then encoded using MMP.
MMP-Intra uses essentially the same prediction
modes defined by H.264/AVC for Intra coded blocks
(Joint Video Team (JVT), 2005)(Rodrigues et al.,
2005). Intra prediction is also used hierarchically
for blocks of dimensions 16×16 down to 4×4 (cor-
responding to levels 8 to 4 of the segmentation tree).
By the use of the Lagrangian RD cost function, the
encoder jointly optimises the block prediction and the
MMP residue encoding, determining the best trade-
off between the prediction accuracy and the additional
overhead introduced by the prediction data.
MMP-Intra encodes some additional information
for the block prediction, namely the used prediction
mode, m, and the block size used for the prediction
step. This information is used by the decoder to deter-
mine the same prediction block, P
l
m
, that was used in
the encoder. This block is added to the decoded resid-
ual block,
ˆ
R
l
m
, in order to reconstruct the decoded
image block, given by
ˆ
X
l
= P
l
m
+
ˆ
R
l
m
. Details about
MMP-Intra can be found in (Rodrigues et al., 2005).
3 EFFICIENT DICTIONARY
DESIGN FOR MMP-INTRA
MMP-Intra, as MMP, uses an initial dictionary con-
sisting of a few blocks with constant value. This
highly sparse initial dictionary is very inefficient, but
the updating procedure quickly adapts its blocks to
the original images’ patterns, by introducing new
blocks, S
l
new
, created by the concatenation of two
vectors of level l − 1 of the dictionary.
Experimental studies have shown that the final
number of blocks for each level of the dictionary is,
by far, much larger than the total number of blocks
that are actually used. This difference grows with the
target bit-rate, but can be observed for different im-
age types and target compression ratios. The exag-
gerate growth of the dictionary has the disadvantage
of increasing the dictionary’s indexes’ entropy, com-
promising the method’s performance.
In (Rodrigues et al., 2006), a new algorithm was
proposed to limit the dictionary growth, that intro-
duces a “minimum distance condition” between any
two vectors of each level of the dictionary. This pro-
cess avoids that new vectors, very close to those al-
ready available in the dictionary space, are used to
update the dictionary, by using a new test condition
in the dictionary update procedure. With this new al-
gorithm, a new block of level l, S
l
new
, is only used to
update the dictionary if its minimum distortion, in re-
lation to the blocks already available in the dictionary,
is not inferior to a given threshold d.
The optimum value for d is a function of the target
bit-rate and therefore of the parameter λ, and must
be carefully chosen. If this value is too small, the
aim of controlling the dictionary growth will not be
achieved, and if it is too large, the dictionary will lose
its efficiency in approximating the images’ patterns.
A simple expression for d(λ) (see eq. 1) was de-
termined by the use of a test image set, and allows
the encoder to automatically achieve a close to opti-
mum RD relation, for any given target bit-rate. Fur-
ther details on how this equation was determined can
be found in (Rodrigues et al., 2006).
d(λ) =
5 if λ ≤ 15;
10 if 15 < λ ≤ 50;
20 otherw ise.
(1)
In (Rodrigues et al., 2006), the authors also show
that the dictionary’s indexes can be more efficiently
encoded by using a context adaptive arithmetic en-
coder. The dictionary indexes are divided into groups,
according to a context criterion, that, for MMP-Intra,
is the original scale of the block. Instead of using just
one symbol to encode a dictionary index, each index
is transmitted using one context symbol followed by
an index, that chooses among the elements of the cor-
responding segment. This carefully chosen segmen-
tation criterion further explores the statistical depen-
dencies of the MMP symbols, generating gains in the
arithmetic coding module.
SIGMAP 2006 - INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING AND MULTIMEDIA
APPLICATIONS
120