Title of Invention

ENTROPY CODING WITH COMPACT CODEBOOKS

Abstract The present invention is based on the finding that an efficient code for encoding information values can be derived, when two or more information values are grouped in a tuple in a tuple order and when an encoding rule is used, that assigns the same code word to tuples having identical information values in different orders and that does derive an order information, indicating the tuple order, and when the code word is output in association with the order information.
Full Text - 1 -
ENTROPY CODING WITH COMPACT CODEBOOKS
Field of the Invention
The present invention relates to the encoding/decoding of
information values and in particular to entropy coding us-
ing compact codebooks to generate an efficient code.
Background of the Invention and Prior Art
In recent times, the multi-channel audio reproduction tech-
nique is becoming more and more important. This may be due
to the fact that audio compression/encoding techniques such
as the well-known mp3 technique have made it possible to
distribute audio records via the Internet or other trans-
mission channels having a limited bandwidth. The mp3 coding
technique has become so famous because of the fact that it
allows distribution of all the records in a stereo format,
i.e., a digital representation of the audio record includ-
ing a first or left stereo channel and a second or right
stereo channel.
Nevertheless, there are basic shortcomings of conventional
two-channel sound systems. Therefore, the surround tech-
nique has been developed. A recommended multi-channel-
surround representation includes, in addition to the two
stereo channels L and R, an additional center channel C and
two surround channels Ls, Rs. This reference sound format
is also referred to as three/two-stereo, which means three
front channels and two surround channels. Generally, five
transmission channels are required. In a playback environ-
ment, at least five speakers at five decent places are
needed to get an optimum sweet spot in a certain distance
of the five well-placed loudspeakers.
Several techniques are known in the art for reducing the
amount of data required for transmission of a multi-channel
audio signal. Such techniques are called joint stereo tech-

- 2 -
niques. To this end, reference is made to Fig. 9, which
shows a joint stereo device 60. This device can be a device
implementing e.g. intensity stereo (IS) or binaural cue
coding (BCC). Such a device generally receives - as an in-
put - at least two channels (CH1, CH2, ... CHn) , and outputs
at least a single carrier channel and parametric data. The
parametric data are defined such that, in a decoder, an ap-
proximation of an original channel (CH1, CH2, ... CHn) can be
calculated.
Normally, the carrier channel will include subband samples,
spectral coefficients, time domain samples etc., which pro-
vide a comparatively fine representation of the underlying
signal, while the parametric data do not include such sam-
ples . of spectral coefficients but include control parame-
ters for controlling a certain reconstruction algorithm
such as weighting by multiplication, time shifting, fre-
quency shifting, phase shifting, etc. . The parametric
data, therefore, include only a comparatively coarse repre-
sentation of the signal or the associated channel. Stated
in numbers, the amount of data required by a carrier chan-
nel will be in the range of 60 - 70 kbit/s, while the
amount of data required by parametric side information for
one channel will typically be in the range of 1,5 - 2,5
kbit/s. An example for parametric data are the well-known
scale factors, intensity stereo information or binaural cue
parameters as will be described below.
The BCC Technique is for example described in the AES con-
vention paper 5574, "Binaural Cue Coding applied to Stereo
and Multi-Channel Audio Compression", C. Faller,
F. Baumgarte, May 2002, Munich, in the IEEE WASPAA Paper
"Efficient representation of spatial audio using perceptual
parametrization", October 2001, Mohonk, NY, in "Binaural
cue coding applied to audio compression with flexible ren-
dering", C. Faller and F. Baumgarte, AES 113th Convention,
Los Angeles, Preprint 5686, October 2002 and in "Binaural
cue coding - Part II: Schemes and applications", C. Faller

— 3 —
and F. Baumgarte, IEEE Trans, on Speech and Audio Proc.,
volume level. 11, no. 6, Nov. 2003.
In BCC encoding, a number of audio input channels are con-
verted to a spectral representation using a DFT (Discrete
Fourier Transform) based transform with overlapping win-
dows. The resulting uniform spectrum is divided into non-
overlapping partitions. Each partition approximately has a
bandwidth proportional to the equivalent rectangular band-
width (ERB). The BCC parameters are then estimated between
two channels for each partition. These BCC parameters are
normally given for each channel with respect to a reference
channel and are furthermore quantized. The transmitted pa-
rameters are finally calculated in accordance with pre-
scribed formulas (encoded) , which may also depend on the
specific partitions of the signal to be processed.
A number of BCC parameters do exist. The ICLD parameter,
for example, describes the difference (ratio) of the ener-
gies contained in 2 compared channels. The ICC parameter
(inter-channel coherence/correlation) describes the corre-
lation between the two channels, which can be understood as
the similarity of the waveforms of the two channels. The
ICTD parameter (inter-channel time difference) describes a
global time shift between the 2 channels whereas the IPD
parameter (inter-channel phase difference) describes the
same with respect to the phases of the signals.
One should be aware that, in a frame-wise processing of an
audio signal, the BCC analysis is also performed frame-
wise, i.e. time-varying, and also frequency-wise. This
means that, for each spectral band, the BCC parameters are
individually obtained. This further means that, in case a
audio filter bank decomposes the input signal into for ex-
ample 32 band pass signals, a BCC analysis block obtains a
set of BCC parameters for each of the 32 bands.

- 4 -
A related technique, also known as parametric stereo, is
described in J. Breebaart, S. van de Par, A. Kohlrausch, E.
Schuijers, "High-Quality Parametric Spatial Audio Coding at
Low Bitrates", AES 116th Convention, Berlin, Preprint 6072,
May 2004, and E. Schuijers, J. Breebaart, H. Purnhagen, J.
Engdegard, "Low Complexity Parametric Stereo Coding", AES
116th Convention, Berlin, Preprint 6073, May 2004.
Summarizing, recent approaches for parametric coding of
multi-channel audio signals ("Spatial Audio Coding", "Bin-
aural Cue Coding" (BCC) etc.) represent a multi-channel au-
dio signal by means of a downmix signal (could be mono-
phonic or comprise several channels) and parametric side
information ("spatial cues") characterizing its perceived
spatial sound stage. It is desirable to keep the rate of
side information as low as possible in order to minimize
overhead information and leave as much of the available
transmission capacity for the coding of the downmix sig-
nals .
One way to keep the bit rate of the side information low is
to losslessly encode the side information of a spatial au-
dio scheme by applying, for example, entropy coding algo-
rithms to the side information.
Lossless coding has been extensively applied in general au-
dio coding in order to ensure an optimally compact repre-
sentation for quantized spectral coefficients and other
side information. Examples for appropriate encoding schemes
and methods are given within the ISO/IEC standards MPEG1
part 3, MPEG2 part 7 and MPEG4 part 3.
These standards and, for example also the IEEE paper
"Noiseless Coding of Quantized Spectral Coefficients in
MPEG-2 Advanced Audio Coding", S. R. Quackenbush, J. D.
Johnston, IEEE WASPAA, Mohonk, NY, October 1997 describe
state of the art techniques that include the following
measures to losslessly encode quantized parameters:

— 5 —
• Multi-dimensional Huffman Coding of quantized spectral
coefficients
• Using a common (multi-dimensional) Huffman Codebook for
sets of coefficients
• Coding the value either as a hole or coding sign infor-
mation and magnitude information separately (i.e. have
only Huffman codebook entries for a given absolute
value which reduces the necessary codebook size,
"signed" vs. "unsigned" codebooks)
• Using alternative codebooks of different largest abso-
lute values (LAVs), i.e. different maximum absolute
values within the parameters to be encoded
• Using alternative codebooks of different statistical
distribution for each LAV
• Transmitting the choice of Huffman codebook as side in-
formation to the decoder
• Using "sections" to define the range of application of
each selected Huffman codebook
• Differential encoding of scalefactors over frequency
and subsequent Huffman coding of the result
Another technique for the lossless encoding of coarsely
quantized values into a single PCM code is proposed within
the MPEG1 audio standard (called grouping within the stan-
dard and used for layer 2) . This is explained in more de-
tail within the standard ISO/IEC 11172-3:93.
The publication "Binaural cue coding - Part II: Schemes and
applications", C. Faller and F. Baumgarte, IEEE Trans. on
Speech and Audio Proc, volume level. 11, no. 6, Nov. 2003

- 6 -
gives some information on coding of BCC parameters. It is
proposed, that quantized ICLD parameters are differentially
encoded
• over frequency and the result is subsequently Huffman
encoded (with a one-dimensional Huffman code)
• over time and the result is subsequently Huffman en-
coded (with a one-dimensional Huffman code),
and that finally, the more efficient variant is selected as
the representation of an original audio signal.
As mentioned above, it has been proposed to optimize com-
pression performance by applying differential coding over
frequency and, alternatively, over time and select the more
efficient variant. The selected variant is then signaled to
a decoder via some side information.
The prior art techniques described above are useful to re-
duce the amount of data that, for example, has to be trans-
mitted during an audio- or videostream. Using the described
techniques of lossless encoding based on entropy-coding
schemes generally results in bit streams with a non-
constant bit rate.
In the AAC (Advanced Audio Codec) standard, a proposal is
made to reduce both, the size of the code words and the
size of the underlying codebook, by using "unsigned" code-
books, assuming that the probability distribution of the
information values to be encoded only depends on the magni-
tudes of the values to be encoded rather than their signs.
The sign bits are then transmitted separately and can be
considered as a postfix code, mapping back the coded magni-
tude information into the actual value (sign x magnitude).
Assuming for example a four-dimensional Huffman codebook,
this results in saving a factor of 2^4 = 16 (assuming that
all values carry signs) in the size of the codebook.

- 7 -
Quite some efforts have already been made to reduce code
size by entropy coding. Nonetheless, one still fights some
major disadvantages using techniques of prior art. For ex-
ample, when using multi-dimensional Huffman codebooks, one
can achieve a decrease in the bit rate needed to transmit
some encoded information. This is achieved at the cost of
an increase in the size of the Huffman codebook that has to
be used, since for each additional dimension, the Huffman
codebook size increases by a factor of two. This is espe-
cially disadvantageous in applications where the Huffman
codebook is transmitted together with the encoded informa-
tion, as it is for example the case with some computer com-
pression programs. Even if the Huffman codebook does not
have to be transmitted with the data, it has to be stored
in the encoder and in the decoder, needing expensive stor-
age space, which is available only in limited quantities,
especially in mobile applications for video or audio
streaming or playback.
Several publications relate to similar problems. For exam-
ple, the US Patent 5550541 relates to the generation of
compact source coding tables for encoder/decoder systems.
Multi-dimensional Huffman encoding tables are generated
which are smaller than conventional tables by ordering sym-
bols within messages prior to encoding and additionally
passing order information with the resulting code word.
Pattichis M. S. et al: ,,On the representation of wideband
images using permutations for lossless coding", PROCEEDINGS
OF THE 4TH IEEE SOUTHWEST SYMPOSIUM ON IMAGE ANALYSIS AND
INTERPRETATION, S. 237 - 241) suggests a novel method for
representing encoding wide band images using permutations.
Differentially encoded samples are run-length coded.
VASILACHE A. et al: ,,Indexing and entropy coding of lattice
code vectors", 2001, IEEE INTERNATIONAL CONFERENCE ON
ACOUSTICS, SPEECH, AND SIGNAL PROCESSING PROCEEDINGS, Vol.

- 7a -
1 of 6, pages 2.605 - 2.608 relates to entropy coding of
lattice code vectors. A combined approach combining Huffman
coding and fixed length coding is suggested. The code vec-
tors are grouped into classes and the index numbers of the
individual classes are encoded using entropy coding. As
furthermore proposed, the position of the code vector
within an individual class is encoded using fixed rate enu-
merative encoding.
QUACKENBUSH et al: ,,Noiseless Coding of Quantized Spectral
Components in MPEG-2 Advanced Audio Coding", IEEE ASSP
WORKSHOP ON APPLICATIONS OF SIGNAL PROCESSING TO AUDIO AND
ACOUSTICS) relates to the application of a flexible Huffman
coding algorithm used in encoding quantized spectral compo-
nents. N-tuples are encoded using different Huffman-code
books, some of them having only absolute values to save on
code book storage. In that case, a sign bit for each non-
zero coefficient is appended to the code word.
"Indexing Algorithms for Zn, An, Dn, and Dm++ Lattice Vec-
tor Quantizers", Patrick Raul and Christine Guillemont, re-
lates to vector indexing algorithms valid for a large class
of lattices used in audio-visual signal compression. The
vectors are ordered in classes, wherein each class is de-
fined as a possible "signed" permutation of the components
of so-called "leader-vectors". Using unsigned leader-
vectors requires the transmission of a sign bit for each
non-zero element of a class-member.
Summary of the invention
It is the object of the present invention to provide a con-
cept for generation and use of a more efficient code to
compress information values and to reduce the size of an
underlying codebook.

- 7b -
According to a first aspect of the present invention, this
object is achieved by an encoder for encoding information
values, comprising: a grouper for grouping two or more in-
formation values into a tuple in a tuple order; a code in-
formation generator for generating order information indi-
cating the tuple order and a code word for the tuple using
an encoding rule, where the encoding rule is such that the
same code word is assigned to tuples having identical in-
formation values in different orders; and an output inter-
face for outputting the code word and in association
therewith the order information.

- 8 -
According to a second aspect of the present invention, this
object is achieved by a decoder for decoding a code word
based on information values, comprising: an input interface
providing the code word and in association therewith an or-
der information indicating a tuple order, being an order of
two or more information values within a tuple of informa-
tion values; a code processor for deriving a tuple using a
decoding rule depending on an encoding rule used to create
the code word, where the decoding rule is such that differ-
ent tuples are derived from the same code word, the differ-
ent tuples having the same information values in different
tuple orders, as indicated by differing order information;
and a degrouper for degrouping the tuples into two or more
information values.
According to a third aspect of the present invention, this
object is achieved by a method for encoding information
values, the method comprising: grouping two or more infor-
mation values into a tuple in a tuple order; generating or-
der information indicating the tuple order; generating a
code word for the tuple using an encoding rule, where the
encoding rule is such that the same code word is assigned
to tuples having identical information values in different
orders; and outputting the code word and in association
therewith the order information.
According to a fourth aspect of the present invention, this
object is achieved by a computer program implementing the
above method, when running on a computer.
According to a fifth aspect of the present invention, this
object is achieved by a method for decoding code words
based on information values, the method comprising: provid-
ing the code word and in association therewith an order in-
formation indicating a tuple order, being an order of two
or more information values within a tuple of information
values; deriving a tuple using a decoding rule depending on
an encoding rule used to create the code word, where the

- 9 -
decoding rule is such that different tuples are derived
from the same code word, the different tuples having the
same information values in different tuple orders, as indi-
cated by differing order information; and degrouping the
tuples into two or more information values.
According to a sixth aspect of the present invention, this
object is achieved by a computer program implementing the
above method, when running on a computer.
According to a seventh aspect of the present invention,
this object is achieved by encoded data based on informa-
tion values, the encoded data comprising a code word for a
tuple of two or more information values arranged in the tu-
ple in a tuple order and an order information indicating
the tuple order.
The present invention is based on the finding that an effi-
cient code for encoding information values can be derived,
when two or more information values are grouped in a tuple
in a tuple order and when an encoding rule is used, that
assigns the same code word to tuples having identical in-
formation values in different orders and when an order in-
formation, indicating the tuple order, is derived and asso-
ciated to the code word.
For entropy coding using Huffman codes, the inventive con-
cept described above can be implemented more efficiently.
The size of a Huffman codebook depends as well on the num-
ber of possible values to be coded as on the number of
jointly coded values (dimension of the Huffman codebook).
In order to reduce the required storage space needed to
represent a Huffman codebook in a specific application, it
is advantageous to exploit symmetries in the probability
distribution of the data to be coded such that one Huffman
codeword represents a whole set of groups of jointly coded
values with equal probability. The actual group of jointly

- 10 -
coded values is specified by a particular postfix code
then.
Since the order of two or more values in a tuple is not de-
pendent on the content represented by the values, when the
values are to a certain degree uncorrelated, equal prob-
abilities for different orders of the same values can be
assumed (since the values are uncorrelated). Particularly
and preferably for a variable length code, i.e. a code hav-
ing code words with different lengths, these equal prob-
abilities will result in a smaller codebook and an effi-
cient code, when the tuples with different orders of the
same values are assigned to a single code word.
Therefore, in a preferred embodiment of the present inven-
tion, the information values that are to be encoded by a
two-dimensional Huffman encoder are differentially encoded
first, resulting in a differential representation having
certain symmetries as explained later in more detail. After
that, a number of symmetry operations are applied to the
differential representation, reducing the number of possi-
ble tuples to be encoded, thus also reducing the size of
the required codebook.
Differentially encoding a distribution of values, occurring
with a given probability distribution will result in a dis-
tribution of difference values that is centered around
zero, having a probability distribution that is symmetric,
i.e. values of the same absolute value but with different
signs will occur with the same probability.
The basic principle of entropy coding, as for example Huff-
man coding, is, that the used codebook represents a given
probability distribution of information values as good as
possible in view of assigning the shortest possible code
words to the information values occurring at most. Multi-
dimensional Huffman coding follows the same principle but
combines two or more information values into a tuple,

- 11 -
wherein the whole tuple is then associated with a single
codeword.
Therefore, combining differential encoding with two-
dimensional Huffman encoding yields two types of symme-
tries, that can be made use of.
The first symmetry derives from the observation that the
probability of occurrence of the tuple (a, b) is approxi-
mately the same as for the tuple (-a, -b). This corresponds
to a point symmetry relative to the origin of a coordinate
system, where the first value of a tuple defines the X-axis
and the second value of a tuple defines the Y-axis.
The second symmetry is based on the assumption, that chang-
ing the order in which the two values in a tuple occur does
not change the tuple's probability of occurrence, i.e. that
(a, b) and (b, a) are equally probable. This corresponds to
an axis symmetry relative to the bisectors of the coordi-
nate systems first and third quadrant, when the coordinate
system is defined as explained above.
The two symmetries can be exploited such, that the size of
a Huffman codebook is reduced by a factor of approximately
4, meaning that symmetrical tuples are assigned the same
codeword. The symmetry information, i.e. the order of the
original tuple and the sign of the original tuple, are in-
dicated by an order information and a sign information and
transmitted together with the codeword to allow for decod-
ing and a reconstruction of the original tuple including
the sign and the order information.
Recalling the above representation of the tuples within a
two-dimensional coordinate system, both symmetries together
can be understood as a 2-dimensional probability distribu-
tion with level curves (curves of equal probabilities) re-
sembling ovals with the principle axis rotated by 45 de-
grees relative to the Cartesian coordinate system.

- 12 -
Making use of the two symmetries, only approximately one
forth (1 quadrant) of the possible entries within the coor-
dinate system has to be covered by Huffman codes. A two-bit
postfix code determines a unique mapping between every pair
of values in one of four quadrants and its corresponding
pairs of values in the remaining three quadrants. Note that
for pairs of values situated on either quadrant borderline,
the postfix code consists of one bit only or can even be
omitted in case of the pair of values situated on both bor-
der lines, i.e. in the center of the distribution.
The inventive concept will also reduce the size of the
Huffman codebook for data that is not showing the symme-
tries described above. If such data is encoded, on the one
hand the size of the Huffman codebook will be small, but on
the other hand the encoded representation might not be ide-
ally compressed, since values occurring with different
probabilities are represented by the same codeword, leading
to a waste of bit rate since the Huffman codebook cannot be
tuned to fit the data in an optimal way.
Therefore, it is preferred that the data is differentially
encoded before applying symmetry treatments, since the dif-
ferential encoding automatically yields advantageous symme-
tries. Thus, the inventive concept can be used to assure a
compact representation and a small Huffman codebook for
every underlying set of information values, since the dis-
advantage of doubling the number of possible information
values by differentialy encoding the information values can
be balanced by using the symmetries.
Brief description of the drawings
Preferred embodiments of the present invention are subse-
quently described by referring to the enclosed drawings,
wherein:

- 13 -
Fig. 1 shows a block diagram of an inventive encoder;
Fig. 2 shows a preferred embodiment of an inventive en-
coder;
Fig. 3 shows a further preferred embodiment of an inven-
tive encoder;
Fig 4a shows a first symmetry operation on data to be en-
coded;
Fig. 4b shows a second symmetry operation on data to be en-
coded;
Fig. 5 shows the derivation of a symmetric representation
of data;
Fig. 6 shows a block diagram of an inventive decoder;
Fig. 7 shows a preferred embodiment of an inventive de-
coder;
Fig. 8 shows a further preferred embodiment of an inven-
tive decoder; and
Fig. 9 shows a prior art multi-channel encoder.
Detailed description of preferred embodiments
Fig. 1 shows an inventive encoder 100, the encoder 100 com-
prising a grouper 102 and a code information generator 104,
that includes an output interface.
The information values 106 are grouped in tuples of infor-
mation values 108a to 108c by the grouper. In the example
shown in Fig. 1, the inventive concept is described by
building tuples consisting of two information values each,
i.e. by using a two-dimensional Huffman code.

- 14 -
The tuples 108a to 108c are transferred to the code infor-
mation generator 104, wherein the code information genera-
tor implements an encoding rule that assigns the same code-
word to tuples having identical information values in dif-
ferent orders. Therefore, the tuples 108a and 108c are en-
coded into the same code words 110a and 110b, whereas the
tuple 108b is encoded into a different codeword 112. Ac-
cording to the inventive concept, differing order informa-
tion 114a and 114b is generated to preserve the information
of the order in which the information values are grouped
inside the tuples 108a and 108c. A combination of the order
information and the codeword can therefore be used to re-
construct the original tuples 108a and 108c, hence the or-
der information is delivered in association with the code-
word by the output interface. Generally, one may agree on
different ordering schemes resulting in differing order in-
formation bits. In the example shown in Fig. 1, the tuples
are not reordered when the values within the tuples occur
in ascending order, as it is the case for the tuples 108a
and 108b. If one further agrees on assigning a order infor-
mation of 0 to tuples that have not been reordered, one re-
sults in the order information values as they have been as-
signed to the codewords in Fig. 1.
Fig. 2 shows a preferred embodiment of the present inven-
tion, in which the code information generator 104 comprises
an order encoder 120 and an entropy encoder 122 and wherein
the encoder 100 further comprises an output interface 124.
The order encoder 120 generates the order information 114a
to 114c of the tuples (indicating the tuple order) and
transfers the order information to the output inter-
face 124. At the same time, the order encoder 120 reorders
the information values within the tuples 108a to 108c to
derive the tuples 126a to 126c changing the tuple order to
a predefined tuple order, the predefined tuple order defin-

- 15 -
ing an encoding order of information values for groups of
tuples having identical information values.
The reordering can for example be done, also for tuples
having more than two information values, by multiple subse-
quent steps of exchanging the position of two information
values within the tuple. After each step, it is checked,
whether there exists an entry in the codebook of the order
encoder for the given tuple order. If this is the case, the
reordering can be stopped and the code word can be gener-
ated. If not, the above procedure is repeated until the
codeword is found. The order information can then, for ex-
ample, be derived from the number of exchanges necessary to
derive the codeword. Similarly, the correct tuple order
could be rearranged using the order information on a de-
coder side.
The entropy coder encodes the tuples 126a to 126c to derive
the code words 110a, 110b, and 112 and transfers these code
words to the output interface 124.
The output interface finally outputs the code words 110a,
110b, and 112 and in association therewith the order infor-
mation 114a to 114c.
Fig. 3 shows another preferred embodiment of the present
invention, wherein the code information generator further
comprises a sign encoder 130 for deriving a sign informa-
tion indicating a sign combination of the information val-
ues within the tuple.
The inventive encoder shown in Fig. 3 makes also use of the
second symmetry, assigning the same code words to tuples
having information values of same absolute value and in the
same order regarding their absolute values. Therefore, the
sign encoder 130 derives a sign information 132a to 132c
for each of the tuples 134a to 134c, indicating the sign of
the values within the tuples. The sign encoder 130 simulta-

- 16 -
neously changes the signs of the information values within
the tuples to derive a predefined sign combination, defin-
ing an encoding sign combination for each order of absolute
values within the tuple, i.e. for tuples differing only in
the signs of the information values.
The sign information 132a to 132c is additionally trans-
ferred to the output interface 124 that also receives order
information from the order encoder 120 and the code words
from the entropy encoder 122. The output interface 124 then
supplies the code words and in association therewith the
order, information and the sign information.
Fig. 4a shows, how the sign information can be derived by
the sign encoder 130 and how the symmetry regarding the
signs can be used to reduce the size of a required Huffman
codebook.
Shown are the possible values of a tuple (a, b) , graphi-
cally represented by a matrix, wherein the values for a are
shown on the X-axis and the values for b are shown on the
Y-axis. The values for a and b are symmetrized around zero
(for example by a previous differential encoding) and are
ranging from -4 to 4 each.
The matrix is showing all the 81 possible combinations of
the parameter values a and b. Indicated is also a first
axis 150, indicating the entries of the matrix, where the
sum of a and b (a + b) equals zero. The figure further
shows a second axis 152, where the difference of a and b
(a - b) equals zero. As can be seen, the two axes 150 and
152 divide the matrix into four quadrants labeled with num-
bers 1 to 4 .
The first symmetry, assuming that a combination (a, b) and
a combination (-a, -b) are equally probable, is equal to a
point symmetry to the origin, which is explicitly shown for

- 17 -
two arbitrary entries 154a (-2,-1) and 154b (2,1) of the
matrix.
An inventive encoder can reduce the size of a required
Huffman codebook by a factor of approximately 2 by perform-
ing a symmetry operation, mirroring the entries of the
third quadrant to the first quadrant and the entries of the
fourth quadrant to the second quadrant. Such, the codebook
entries of the third and forth quadrant can be saved, when
the sign encoder 130 additionally indicates by the sign in-
formation from which quadrant the tuple was coming.
Fig. 4b shows, how the second symmetry can be made use of
by the order coder 120 to reduce the size of the Huffman
codebook by another factor of approximately 2. The second
symmetry, meaning that tuples (a, b) and (b, a) are equally
probable, is equal to a mirroring of the remaining ma-
trix entries at the axis 152. This is for example shown for
the two matrix entries 156a and 156b, showing the mirroring
of the tuple (0, 2) to the tuple (2,0). Therefore, by as-
signing the same code words to corresponding entries of the
second and of the first quadrant, one can save another fac-
tor of 2 in the codebook size. The order coder 120 derives
the order information to preserve the information, whether
the original tuple was from the first or from the second
quadrant.
As illustrated by Figs. 4a and 4b, an inventive encoder in-
corporating a sign encoder and an order encoder allows that
only one out of four quadrants has to be covered by Huffman
codes. A two-bit postfix code determines a unique mapping
between every pair of values in one of the four quadrants
and its corresponding pair of values in the remaining three
quadrants. Note that for pairs of values situated on either
quadrant borderline, the postfix code consists of one bit
only or can even be omitted in case of the pair of values
situated on both borderlines, i.e. at the center of the ma-
trix .

- 18 -
Following the symmetry operations shown in Figs. 4a and 4b,
it can be fortunate to reorder (map) the pairs of values in
the remaining quadrant into a quadratic matrix for practi-
cal reasons, since running an algorithm on a quadratic rep-
resentation is much more convenient.
A mapping strategy incorporated by one embodiment of the
present invention is shown in Fig. 5. The original matrix
with the first quadrant to be mapped to a quadratic ma-
trix 160 is shown to the left. The quadratic matrix 160
also has parameter values for parameter a on the X-axis and
parameter values for parameter b on the Y-axis. The reor-
dering following the mapping algorithm is indicated in the
drawing, where each of the matrix elements is marked with a
unique number. It is to be noted, that tuples whose infor-
mation values sum to an even number (a+b is even, which is
true for all lightly shaded matrix elements of the first
quadrant) are reordered to the lower left side of the quad-
ratic matrix 160, whereas tuples having odd sums of infor-
mation values (unshaded elements) are reordered to the up-
per right side of the matrix 160, being unshaded in Figure
5.
After the above mapping process, the tuples to be Huffman
encoded are given in a quadratic representation and thus
are easy to handle.
Fig. 6 shows a block diagram of an inventive decoder for
decoding code words that are based on information values.
The decoder 200 comprises an input interface 202, a code
processor 204, and a degrouper 206. The input interface 202
provides code words 210a, 210b and 212 and associated
therewith order information 214a, 214b and 216, both are
transferred to the code processor 204.

- 19 -
The code processor derives tuples of information val-
ues 218a, 218b, and 218c using a decoding rule, where the
decoding rule is such, that different tuples are derived
from the same code word, the different tuples having the
same information values in different tuple orders, as indi-
cated by a differing order information.
Therefore, the differing tuples 218a, and 218c are derived
from the same code words 210a and 210b, since having asso-
ciated different order information 214a and 214b. The tu-
ples of information values 218a to 218c are then degrouped
by the degrouper 206 to yield the information values 220.
Fig. 7 shows a preferred inventive decoder, wherein the
code processor 204 includes an entropy decoder 222 and an
order decoder 224.
The entropy decoder 222 assigns, using a Huffman codebook,
the code words 210a, 210b, and 212 to tuple 226a to 226c,
respectively. The tuples 226a to 226c are transferred to
the order decoder 224 that also receives the associating
order information. The order decoder 224 derives the infor-
mation values modifying the tuples 226a to 226c, as indi-
cated by the order information. The derived final tu-
ples 228a to 228c are then transferred to the degrou-
per 206, that degroups the tuples 228a to 228c to derive
the information values 220.
Fig. 8 shows another preferred embodiment of an inventive
decoder 200, where the code processor 204 further includes
a sign decoder 230.
The input interface provides three identical code
words 232a to 232c, sign information bits 234a to 234c and
order information bits 236a to 236c.

- 20 -
The entropy decoder 222 decodes the three identical code
words 232a to 232c into three identical tuples 238a to
238c, which are then transferred to the sign decoder 230.
The sign decoder 230 additionally receives the sign infor-
mation 234a to 234c and modifies the tuples 238a to 238c,
as indicated by the sign information 234a to 234c, to de-
rive the tuples 240a to 240c, that are now having informa-
tion values with correct signs.
The tuples 240a to 240c are transferred to the order de-
coder 224, that additionally receives the order informa-
tion 236a to 236c, and that alters the order of information
values within the tuples 204a to 240c to receive the cor-
rectly ordered tuples 242a to 242c. The tuples 242a to 242c
are then transferred to the degrouper 206, that derives the
information values 220 by degrouping the tuples 242a to
242c.
Although the preferred embodiments of inventive encoders
shown in the figures 2 and 3 propose, that the order en-
coder 120 and the sign encoder 130 retrieve the order or
sign information and do simultaneously alter the tuples, it
is alternatively possible that the sign encoder and the or-
der encoder retrieve the order and sign information without
altering the tuples. A Huffman Codebook has to be designed
such then, that tuples with different sign and order
informations are assigned the same code words.
Although the preferred embodiments shown in the figures de-
tail the concept of the present invention by using two-
dimensional Huffman codebooks, the inventive idea of using
grouped values and making use of their symmetries can also
be combined with other lossless encoding methods, espe-
cially with Huffman codebooks of higher dimensions, i.e.
building tuples having more information values than two.

- 21 -
Figs. 4a and 4b show a way to derive the symmetry informa-
tion used to allow for a smaller Huffman codebook. In a
first step the third and forth quadrant of a given matrix
is mapped to the first and second quadrant. It is alterna-
tively also possible to map other combinations of two
neighboring quadrants to the remaining two quadrants, as
long as the symmetry information is preserved such that the
mapping can be reversed. The same is also true for the sec-
ond symmetry operation shown in Fig. 4b.
Fig. 5 shows a way of mapping one quadrant of a matrix into
a quadratic matrix allowing to describe a codebook of re-
duced size. This mapping is an example for multiple possi-
ble mapping schemes, wherein the mappings only have to be
such that they are unique and can be reversed.
Depending on certain implementation requirements of the in-
ventive methods, the inventive methods can be implemented
in hardware or in software. The implementation can be per-
formed using a digital storage medium, in particular a
disk, DVD or a CD having electronically readable control
signals stored thereon, which cooperate with a programmable
computer system such that the inventive methods are per-
formed. Generally, the present invention is, therefore, a
computer program product with a program code stored on a
machine readable carrier, the program code being operative
for performing the inventive methods when the computer pro-
gram product runs on a computer. In other words, the inven-
tive methods are, therefore, a computer program having a
program code for performing at least one of the inventive
methods when the computer program runs on a computer.
While the foregoing has been particularly shown and de-
scribed with reference to particular embodiments thereof,
it will be understood by those skilled in the art that
various other changes in the form and details may be made
without departing from the spirit and scope thereof. It is
to be understood that various changes may be made in adapt-

- 22 -
ing to different embodiments without departing from the
broader concepts disclosed herein and comprehended by the
claims that follow.

Claims
1. Encoder for encoding information values, comprising:
a differential encoder for differential encoding of in-
put values to obtain a differentially encoded represen-
tation of the input values as information values;
a grouper for grouping two or more information values
into a tuple in a tuple order;
a code' information generator for generating order in-
formation indicating the tuple order and a code word
for the tuple using an encoding rule, where the encod-
ing rule is such that the same code word is assigned to
different tuples having the same information values in
different orders and wherein the encoding rule is fur-
thermore such that the same code word is assigned to
different tuples having information values of same ab-
solute value in the same order differing by the sign of
each information value in the tuple; and
a sign encoder to derive a sign information indicating
a sign combination of the information values within the
tuple; and
an output interface for outputting the code word and in
association therewith the order information and the
sign information.
2. Encoder in accordance with claim 1, in which the code
information generator includes an order encoder for de-
riving the order information and an entropy encoder for
deriving the code word using a codebook that assigns
tuples having identical information values in different
orders to the same code word.

- 24-
3. Encoder in accordance with claim 2, in which the order
encoder is operative to reorder the information values
within the tuple to change the tuple order to a prede-
fined tuple order for the tuple, the predefined tuple
order defining an encoding order of information values
for groups of tuples having identical information val-
ues and in which the order encoder is operative to de-
tect and encode a deviation of the tuple order and the
encoding order; and
in which the entropy encoder is having a reduced code-
book assigning a code word to tuples having information
values ordered in the encoding order.
4. Encoder in accordance with claim 3, in which the order
encoder is operative to reorder the information values
within the tuple by exchanging a first information
value with a second information value.
5. Encoder in accordance with claim 4, in which
the sign encoder is operative to change the signs of
the information values within the tuple to change a
sign combination to a predefined sign combination, the
predefined sign combination defining an encoding sign
combination for an order of information values within
the tuple differing only in the individual signs of the
information values; and
the code information generator is having an entropy en-
coder, the entropy encoder having a reduced codebook,
assigning the same code word to each tuple having the
same order of absolute values of information values.
6. Encoder in accordance with claim 5, in which the sign
encoder is operative to change the sign of a first and
of a second information value within a tuple.

7. Encoder in accordance with claim 1, in which the dif-
ferentially encoded representation is a representation
of the input values differentially encoded in time or
in frequency.
8. Encoder in accordance with claim 1, in which the infor-
mation values comprise information values describing a
frame of a video signal or an audio signal.
9. Encoder in accordance with claim 1, in which the infor-
mation values comprise BCC parameters describing a spa-
tial correlation between a first and a second audio
channel and in which the BCC Parameters are chosen from
the following list of BCC parameters:
inter-channel coherence (ICC),
inter-channel level difference (ICLD),
inter-channel time difference (ICTD),
inter-channel phase difference (IPD).
10. Encoder in accordance with claim 1, in which the encod-
ing rule is such, that an encoding of information val-
ues results in a sequence of code words having differ-
ent lengths.
11. Decoder for decoding a code word based on information
values, comprising:
an input interface for providing the code word and in
association therewith an order information indicating a
tuple order, being an order of two or more information
values within a tuple of information values and in fur-
ther association a sign information, indicating a sign
combination for the information values within a tuple;
a code processor for deriving a tuple using a decoding
rule depending on an encoding rule used to create the

code word, where the decoding rule is such, that dif-
ferent tuples having the same information values in
different orders are derived from the same code word
associated by different order information and different
tuples having information values of same absolute value
in the same order differing by the sign of each infor-
mation value in the tuple are derived from the same
code word associated by different sign information, and
a differential decoder for differential decoding of the
information values to obtain a differentially decoded
representation of the information values.
12. Decoder in accordance with claim 11, in which the code
processor includes
an entropy decoder for deriving a preliminary tuple us-
ing a codebook assigning each code-word to a prelimi-
nary tuple; and
an order decoder for deriving the tuple by reordering
the information values within the preliminary tuple as
indicated by the order information.
13. Decoder in accordance with claim 12, in which the order
decoder is operative to reorder the information values
of the preliminary tuple by exchanging a first informa-
tion value with a second information value.
14. Decoder in accordance with claim 13, in which
the code processor is further comprising a sign decoder
to derive the tuple from the preliminary tuple by
changing the signs of the information values within the
preliminary tuple as indicated by the sign information.

- 27-
15. Decoder in accordance with claim 14, in which the sign
decoder is operative to change the signs of each infor-
mation value within the preliminary tuple.
16. Decoder in accordance with claim 14, in which the sign
decoder is operative to change the sign of a first and
of a second information value within the preliminary
tuple.
17. Decoder in accordance with claim 11, in which the dif-
ferentially decoded representation of the information
values is differentially decoded in time or in fre-
quency.
18. Decoder in accordance with claim 11, in which the in-
formation values comprise information values describing
a frame of a video signal or an audio signal.
19. Decoder in accordance with claim 11, in which the in-
formation values comprise BCC parameters describing a
spatial correlation between a first and a second audio
channel and in which the BCC Parameters are chosen from
the following list of BCC parameters:
inter-channel coherence (ICC),
inter-channel level difference (ICLD),
inter-channel time difference (ICTD),
inter-channel phase difference (IPD).
20. A method for encoding information values, the method
comprising:
differentially encoding of input values to obtain a
differentially encoded representation of the input val-
ues as the information values;
grouping two or more information values into a tuple in
a tuple order;

- 28-
generating order information indicating the tuple or-
der;
generating sign information indicating a sign of the
information values within the tuple;
generating a code word for the tuple using an encoding
rule, where the encoding rule is such that the same
code word is assigned to different tuples having the
same information values in different orders and wherein
the encoding rule is furthermore such that the same
code word is assigned to different tuples having infor-
mation values of same absolute value in the same order
differing by the sign of each information value in the
tuple; and
outputting the code word and in association therewith
the order information and the sign information.
21. A method for decoding code words based on information
values, the method comprising:
providing the code word and in association therewith an
order information indicating a tuple order, being an
order of two or more information values within a tuple
of information values and in further association a sign
information, indicating a sign combination for the in-
formation values within a tuple;
deriving a tuple using a decoding rule depending on an
encoding rule used to create the code word, where the
decoding rule is such, that different tuples having the
same information values in different orders are derived
from the same code word associated by different order
information and different tuples having information
values of same absolute value in the same order differ-
ing by the sign of each information value in the tuple

-29-
are derived from the same code word associated by dif-
ferent sign information;
degrouping the tuples into two or more information val-
ues; and
differential decoding of the information values to ob-
tain a differentially decoded representation of the in-
formation values.
22. Computer program having a program code for performing,
when running on a computer, a method for encoding in-
formation values, the method comprising:
differentially encoding of input values to obtain a
differentially encoded representation of the input val-
ues as the information values;
grouping two or more information values into a tuple in
a tuple order;
generating order information indicating the tuple or-
der;
generating sign information indicating a sign of the
information values within the tuple;
generating a code word for the tuple using an encoding
rule, where the encoding rule is such that the same
code word is assigned to different tuples having the
same information values in different orders and wherein
the encoding rule is furthermore such that the same
code word is assigned to different tuples having infor-
mation values of same absolute value in the same order
differing by the sign of each information value in the
tuple; and

-30-

outputting the code word and in association therewith
the order information and the sign information.
23. Computer program having a program code for performing,
when running on a computer, a method for decoding code
words based on information values, the method compris-
ing:
providing the code word and in association therewith an
order information indicating a tuple order, being an
order of two or more information values within a tuple
of information values and in further association a sign
information, indicating a sign combination for the in-
formation values within a tuple;
deriving a tuple using a decoding rule depending on an
encoding rule used to create the code word, where the
decoding rule is such, that different tuples having the
same information values in different orders are derived
from the same code word associated by different order
information and different tuples having information
values of same absolute value in the same order differ-
ing by the sign of each information value in the tuple
are derived from the same code word associated by dif-
ferent sign information;
degrouping the tuples into two or more information val-
ues; and
differential decoding of the information values to ob-
tain a differentially decoded representation of the in-
formation values.
24. Encoded data based on information values, the encoded
data comprising a code word for a tuple of two or more
information values arranged in the tuple in a tuple or-
der; an order information indicating the tuple order

- 31 -
and sign information, indicating a sign combination for
the information values within a tuple.
25. Encoded data in accordance with claim 24, which is
stored on a computer readable media.

The present invention is based on the finding that an efficient code for encoding information values can be derived,
when two or more information values are grouped in a tuple
in a tuple order and when an encoding rule is used, that
assigns the same code word to tuples having identical information values in different orders and that does derive
an order information, indicating the tuple order, and when
the code word is output in association with the order information.

Documents:

03456-kolnp-2007-abstract.pdf

03456-kolnp-2007-claims.pdf

03456-kolnp-2007-correspondence others-1.1.pdf

03456-kolnp-2007-correspondence others.pdf

03456-kolnp-2007-description complete.pdf

03456-kolnp-2007-drawings.pdf

03456-kolnp-2007-form 1.pdf

03456-kolnp-2007-form 2.pdf

03456-kolnp-2007-form 3.pdf

03456-kolnp-2007-form 5.pdf

03456-kolnp-2007-international exm report.pdf

03456-kolnp-2007-international publication.pdf

03456-kolnp-2007-international search report.pdf

03456-kolnp-2007-others.pdf

03456-kolnp-2007-pct priority document notification.pdf

03456-kolnp-2007-pct request form.pdf

03456-kolnp-2007-priority document.pdf

3456-KOLNP-2007-(21-09-2012)-CORRESPONDENCE.pdf

3456-KOLNP-2007-(21-09-2012)-OTHERS.pdf

3456-KOLNP-2007-(21-09-2012)-PETITION UNDER RULE 137.pdf

3456-KOLNP-2007-(26-11-2013)-ABSTRACT.pdf

3456-KOLNP-2007-(26-11-2013)-ANNEXURE TO FORM 3.pdf

3456-KOLNP-2007-(26-11-2013)-CLAIMS.pdf

3456-KOLNP-2007-(26-11-2013)-CORRESPONDENCE-1.pdf

3456-KOLNP-2007-(26-11-2013)-CORRESPONDENCE.pdf

3456-KOLNP-2007-(26-11-2013)-FORM-3.pdf

3456-KOLNP-2007-(26-11-2013)-FORM-5.pdf

3456-KOLNP-2007-(26-11-2013)-OTHERS.pdf

3456-KOLNP-2007--(26-11-2013)-PETITION UNDER RULE 137.pdf

3456-KOLNP-2007-CORRESPONDENCE OTHERS 1.2.pdf

3456-KOLNP-2007-CORRESPONDENCE OTHERS-1.3.pdf

3456-KOLNP-2007-FORM 18.pdf

3456-KOLNP-2007-GRANTED-SPECIFICATION-COMPLETE.pdf

3456-KOLNP-2007-PA.pdf

abstract-03456-kolnp-2007.jpg


Patent Number 263033
Indian Patent Application Number 3456/KOLNP/2007
PG Journal Number 41/2014
Publication Date 10-Oct-2014
Grant Date 29-Sep-2014
Date of Filing 14-Sep-2007
Name of Patentee FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
Applicant Address HANSASTRASSE 27C 80686 MUNCHEN
Inventors:
# Inventor's Name Inventor's Address
1 RALPH SPERSCHNEIDER DEBERT 75 91320 EBERMANNSTADT
2 KARSTEN LINZMEIER ELISE-SPAETH-STRASSE 4 91058 ERLANGEN
3 JOHANNES HILPERT HERRNHUETTESTRASSE 46 90411 NUERNBERG
4 JUERGEN HERRE HALLERSTRASSE 24 91054 BUCKENHOF
PCT International Classification Number H03M 7/42
PCT International Application Number PCT/EP2006/001294
PCT International Filing date 2006-02-13
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 60/670,993 2005-04-13 U.S.A.
2 11/251,485 2005-10-14 U.S.A.