Title of Invention

TRANSCODING BETWEEN THE INDICES OF MULTIPULSE DICTIONARIES USED FOR CODING IN DIGITAL SIGNAL COMPRESSION

Abstract The invention relates to compressive transcoding between pulse coders using multipulse dictionaries in which each pulse occupies a position marked by an index. For each current pulse position supplied by a first coder, a neighborhood (Vge, Vde) is formed around that position. As a function of the pulse positions accepted by the second coder, pulse positions are selected in an ensemble constituted by a union of the neighborhoods. The second coder finally receives this selection (Sj), involving a number of pulse positions smaller than the total number of pulse positions in the dictionary of the second coder. (please use figure 1b, like in the PCT publication)
Full Text The present invention relates to coding and decoding
digital signals, in particular in applications that
transmit or store multimedia signals such as audio
signals (speech and/or sound).
In the field of compression coding, many coders
model a signal of L samples using a number of pulses very
much less than the total number of samples. This is the
case of certain audio-frequency coders, for example, such
as the "TDAC" audio coder described in particular in the
published document US-2001/027393, in which modified
normalized discrete cosine transform coefficients in each
band are quantized by vectorial quantifiers using
algebraic dictionaries of interleaved size, these
algebraic codes generally including a few components that
are non-zero, the other components being equal to zero.
This is also the case with most speech coders using
analysis by synthesis, in particular coders of the
Algebraic Code Excited Linear Prediction (ACELP), Multi-
Pulse Maximum Likelihood Quantization (MP-MLQ) and other
types. To model the innovation signal, these coders use
a directory composed of waveforms having very few
components that are non-zero, having positions and
amplitudes that additionally obey predetermined rules.
Coders of the above kind using analysis by synthesis
are briefly described below.
In coders using analysis by synthesis, a synthesis
model is used on coding to extract parameters modeling
the signals to be coded, which may be sampled at the
telephone frequency (Fe = 8 kilohertz (kHz)) or at a
higher frequency, for example at 16 kHz for broadened
band coding (passband from 50 hertz (Hz) to 7 kHz).
Depending on the application and on the required quality,
the compression rate varies from 1 to 16. These coders
operate at bit rates from 2 kilobits per second (kbps) to

16 kbps in the telephone band and from 6 kbps to 32 kbps
in the broadened band.
There follows a brief description of the CELP
digital codec, which codec uses analysis by synthesis and
is the one most widely used at present for
coding/decoding speech signals. A speech signal is
sampled and converted into a series of blocks of L'
samples called frames. As a general rule, each frame is
divided into smaller blocks of L samples called
subframes. Each block is synthesized by filtering a
waveform extracted from a directory (also called a
dictionary) multiplied by a gain via two filters varying
in time. The excitation dictionary is a finite set of
waveforms of L samples. The first filter is a long-term
prediction (LTP) filter. An LTP analysis evaluates the
parameters of this LTP filter, which exploits the
periodic nature of voiced sounds (typically representing
the frequency of the fundamental pitch (the vibration
frequency of the vocal chords)). The second filter is a
short-term prediction filter. Linear prediction coding
(LPC) analysis methods are used to obtain short-term
prediction parameters representing the transfer function
of the vocal tract and characteristic of the spectrum of
the signal (typically representing the modulation
resulting from the shape assumed by the lips, the
positions of the tongue and of the larynx, etc.).
The method used to determine the innovation sequence
is the method known as analysis by synthesis. In the
coder, a large number of innovation sequences from the
excitation dictionary are filtered by the LTP and LPC
filters and the waveform producing the synthetic signal
closest to the original signal according to a perceptual
weighting criterion, generally known as the CELP
criterion, is selected.
The use of multipulse dictionaries in these analysis
by synthesis coders is described briefly below, on the

understanding that CELP coders and CELP decoders are well
known to the person skilled in the art.
The multiple bit rate coder of the ITU-T G. 723.1
Standard is a good example of a coder using analysis by
synthesis that employs multipulse dictionaries. Here,
the pulse positions are all separate. The two bit rates
of the coder (6.3 kbps and 5.3 kbps) model the innovation
signal by means of waveforms extracted from the
dictionary that include only a small number of non-zero
pulses: six or five for the high bit rate, four for the
low bit rate. These pulses are of amplitude +1 or -1.
In its 6.3 kbps mode, the G. 723.1 coder uses two
dictionaries alternately:
• in the first dictionary, used for even subframes,
the waveforms comprise six pulses, and
• in the second dictionary, used for odd subframes,
they comprise five pulses.
In both dictionaries, a single restriction is
imposed on the positions of the pulses of any code-
vector, which must all have the same parity, i.e. they
must all be even or they must all be odd. In the
5.3 kbps mode dictionary, the positions of the four
pulses are more severely constrained. Apart from the
same parity constraint as the dictionaries of the high
bit rate mode, there is a limited choice of positions for
each pulse.
The 5.3 kbps mode multipulse dictionary belongs to
the well-known family of ACELP dictionaries. The
structure of an ACELP directory is based on the
interleaved single-pulse permutation (ISPP) technique,
which consists in dividing a set of L positions into K
interleaved tracks, the N pulses being located in certain
predefined tracks. In some applications, the dimension L
of the code words can be expanded to L+N. Accordingly,
in the case of the low bit rate mode directory of an ITU-
T G.723.1 coder, the dimension of the block of 60 samples
is expanded to 64 samples and the 32 even (or odd as the

case may be) positions are divided into four non-
overlapping interleaved tracks of length 8. There are
therefore two groups of four tracks, one for each parity.
Table 1 below sets out the four tracks for the even
positions for each pulse io to i3.

The ACELP innovation dictionaries are used in many
standardized coders employing analysis by synthesis
(ITU-T G.723.1, ITU-T G.729, IS-641, 3GPP NB-AMR,
3GPP WB-AMR). Tables 2 to 4 below set out a few examples
of these ACELP dictionaries for a block length of 40
samples. Note that the parity constraint is not used in
these dictionaries. Table 2 covers the ACELP dictionary
for 17 bits and four non-zero pulses of amplitude ±1,
used in the 8 kbps mode ITU-T G.729 coder, the IS-641
7.4 kbps mode coder and the 7.4 and 7.95 kbps mode 3GPP
NB-AMR coder.


Table 3 covers the ACELP dictionary for 35 bits used
in the 12.2 kbps mode 3GPP NB-AMR coder, in which each
code-vector contains 10 non-zero pulses of amplitude ±1.
The block of 40 samples is divided into five tracks of
length 8 each containing two pulses. Note that the two
pulses of the same track can overlap and result in a
single pulse of amplitude ±2.

Finally, Table 4 covers the ACELP dictionary for 11
bits and two non-zero pulses of amplitude ±1 used in the

low bit rate (6.4 kbps) extension of the ITU-T G.729
coder and in the 5.9 kbps mode 3GPP NB-AMR coder.

What is meant by "exploring" multipulse dictionaries
is explained below.
As with any quantizing operation, seeking the
optimum modeling of a vector to be coded consists in
selecting from the set (or a subset) of the code-vectors
of the dictionary that which "resembles" it most closely,
i.e. the one that minimizes the measured distance between
it and that input vector. A step referred to as
"exploring" the dictionaries is carried out for this
purpose.
In the case of multipulse dictionaries, this amounts
to seeking the combination of pulses that optimizes the
proximity of the signal to be modeled and the signal
resulting from the choice of pulses. Depending on the
size and/or the structure of the dictionary, this
exploration may be exhaustive or non-exhaustive (and
therefore more or less complex).
Since the dictionaries used in the TDAC coder
referred to above are unions of permutation codes of type
II, the algorithm for coding a vector of normalized
transform coefficients exploits this property to

determine its nearest neighbor from all the code-vectors,
calculating only a limited number of distance criteria
(using so-called "absolute leader" vectors).
In coders employing analysis by synthesis, the
exploration of the multipulse dictionaries is not
exhaustive except in the case of small dictionaries.
Only a small percentage of dictionaries of higher bit
rate is explored. For example, multipulse ACELP
dictionaries are generally explored in two stages. To
simplify this search, a first stage preselects the
amplitude (and therefore the sign, see above) of each
possible pulse position by simply quantizing a signal
depending on the input signal. Since the amplitudes of
the pulses are fixed, it is the positions of the pulses
that are then searched for using an analysis by synthesis
technique (conforming to the CELP criterion). Despite
using the ISPP structure, and despite the small number of
pulses, an exhaustive search of the combinations of
positions is effected only for the low bit rate
dictionaries (typically less than or equal to 12 bits).
This applies to the 11-bit ACELP dictionary used in the
6.4 kbps mode G.729 coder (see Table 4), for example, in
which the 512 combinations of positions of two pulses are
all tested to select the best one, which amounts to
calculating the corresponding 512 CELP criteria.
Various focusing methods have been proposed for
dictionaries of higher bit rate. The expression "focused
search" is then used.
Some of those prior art methods are used in the
standardized coders mentioned above. Their aim is to
reduce the number of combinations of positions to be
explored on the basis of the properties of the signal to
be modeled. One example is the "depth-first tree"
algorithm used by many standardized ACELP coders, in
which preference is given to certain positions, such as
the local maxima of the tracks of a target signal
depending on the input signal, the past synthetic signal,

and a filter composed of synthesis and perceptual
weighting filters. There are several variants of this,
depending on the size of the dictionary used. To explore
the ACELP dictionary for 35 bits and 10 pulses (see Table
3) , the first pulse is placed at the same position as the
global maximum of the target-signal. This is followed by
four iterations by circular permutation of the
consecutive tracks. On each iteration, the position of
the second pulse is fixed at the local maximum of one of
the other four tracks, and the positions of the remaining
other eight pulses are searched for sequentially in pairs
in interleaved loops. 256 (8x8x4 pairs) different
combinations are tested on each iteration, which means
that only 1024 combinations of positions of the 10 pulses
among the 225 of the dictionary can be explored. A
different variant is used in the IS641 coder, in which a
higher percentage of combinations of the dictionary for
17 bits and four pulses (see Table 2) is explored. 768
combinations of the 8192 (=213) combinations of pulse
positions are tested. In the 8 kbps G.729 coder, the
same ACELP dictionary is explored by a different focusing
method. The algorithm effects an iterative search by
interleaving four pulse search loops (one per pulse).
The search is focused by making entry into the interior
loop (search for the last pulse belonging to tracks 3 or
4) conditional on exceeding an adaptive threshold that
also depends on the properties of the target-signal
(local maximum values and mean values of the first three
tracks). Moreover, the maximum number of explorations of
combinations of four pulses is fixed at 1440 (which
represents 17.6% of the 8192 combinations).
In the 6.3 kbps mode G. 723.1 coder, not all the
2x25xC305 (or 2x26xC306) combinations of five (or six)
pulses are explored. For each chart, the algorithm
employs a known "multipulse" analysis to search
sequentially for the positions and the amplitudes of the

pulses. As with the ACELP dictionaries, there are
variants that restrict the number of combinations tested.
The above techniques suffer from the following
problems, however.
The exploration of a multipulse dictionary, even a
sub-optimum exploration thereof, constitutes in many
coders a costly operation in terms of calculation time.
For example, in the 6.3 kbps mode G.723.1 and 8 kbps mode
G.729 coders, the search represents close to half the
total complexity of the coder. For the NB-AMR coder, it
represents one third of the total complexity. For the
TDAC coder, it represents one quarter of the total
complexity.
It is clear in particular that this complexity
becomes critical if a plurality of coding operations have
to be carried out by the same processor unit, such as a
gateway managing many calls in parallel or a server
distributing many multimedia contents. The complexity
problem is accentuated by the multiplicity of compression
formats circulating on the networks.
To offer mobility and continuity, modern and
innovative multimedia communications services must be
able to operate under a wide variety of conditions. The
dynamism of the multimedia communications sector and the
heterogeneous nature of the networks, access points and
terminals have generated a plethora of compression
formats whose presence in communications systems
necessitates multiple coding either in cascade
(transcoding) or in parallel (multiformat coding or
multimode coding).
The meaning of the term "transcoding" is explained
below. Transcoding becomes necessary if, in a
transmission system, a compressed signal frame sent by a
coder can no longer proceed in the same format.
Transcoding converts the frame to another format
compatible with the remainder of the transmission system.
The most elementary solution (and therefore that in most

widespread use at present) is to place a decoder and a
coder back to back. The compressed frame arrives with a
first format and is decompressed. The decompressed
signal is then compressed with a second format accepted
by the remainder of the communications system. Such a
cascade of a decoder and a coder is referred to as
"tandem". That solution is very costly in terms of
complexity (essentially because of the recoding) and
degrades quality because the second coding is effected on
a decoded signal, which is a degraded version of the
original signal. Moreover, a frame may encounter several
tandems before reaching its destination. The calculation
cost and the loss of quality are not difficult to
imagine. Moreover, the delays linked to each tandem
operation are cumulative and can compromise the
interactivity of calls.
What is more, complexity also causes problems in a
multiformat compression system in which the same content
is compressed to more than one format. This is the case
of content servers that broadcast the same content in a
plurality of formats adapted to the access conditions,
networks and terminals of different customers. This
multicoding operation becomes extremely complex as the
number of formats required increases, which rapidly
saturates the resources of the system.
Another case of multiple coding in parallel is a
posteriori decision multimode compression. A plurality
of compression modes are applied to each segment of the
signal to be coded, and that which optimizes a given
criterion or achieves the best bit rate/distortion trade-
off is selected. Once again, the complexity of each of
the compression modes limits the number thereof and/or
leads to an a priori selection of a very small number of
modes.
Prior art approaches to solving the above problems
are described below.

New multimedia communications applications (such as
audio and video applications) often necessitate a
plurality of coding operations either in cascade
(transcoding) or in parallel (multicoding and a
posteriori decision multimode coding). The problem of
the complexity barrier resulting from all these coding
operations remains to be solved, despite the increase in
current processing powers. Most prior art multiple
coding operations do not take account of interactions
between formats and between the format of the coder E and
its content. Nevertheless, a few intelligent transcoding
techniques have been proposed that are not satisfied
merely by decoding and then recoding, but instead exploit
the similarities between coding formats so that
complexity can be reduced whilst limiting the resulting
degradation.
So-called "intelligent" transcoding methods are
described below.
All the coders in the same family of coders (CELP,
parametric, transform, etc.) extract the same physical
parameters from the signal. There is nevertheless great
variety in terms of modeling and/or quantizing those
parameters. Thus the same parameter may be coded in the
same way or very differently from one coder to another.
Moreover, the coding may be strictly identical, or
it may be identical in terms of modeling and calculation
of the parameter, but differ simply in how the coding is
translated into the form of bits. Finally, the coding
may be completely different in terms of modeling and
quantizing the parameter, or even in terms of its
analysis or sampling frequency.
If modeling and parameter calculation are strictly
identical, including translation to bit form, it suffices
to copy the corresponding bit field from the bit stream
generated by the first coder to that of the second. This
highly favorable situation arises on transcoding from the

G.729 standard to the IS-641 standard for adaptive
excitation (LTP delays), for example.
If, for the same parameter, the two coders differ
only in terms of the translation of the calculated
parameter into bit form, it suffices to decode the bit
field of the first format and then to return it to the
binary domain using the coding method of the second
format. This conversion may also be effected by means of
one-to-one correspondence tables. This is the situation
when transcoding fixed excitations from the
G.729 standard to the AMR standard (7.4 kbps and
7.95 kbps modes), for example.
In the above two situations, transcoding the
parameter remains at the bit level. Simple bit
manipulation renders the parameter compatible with the
second coding format. On the other hand, if a parameter
extracted from the signal is modeled or quantized
differently by two coding formats, passing from one to
the other is not such a simple matter. Several methods
have been proposed. They operate at the parameter level,
the excitation level, or the decoded signal level.
For transcoding in the parameter domain, remaining
at the parameter level is possible if the two coding
formats calculate a parameter in the same way but
quantize it differently. Quantizing differences may be
related to the accura y or the method selected (scalar,
vectorial, predictive, etc.). It then suffices to decode
the parameter and then to quantize it using the method of
the second coding format. That prior art method is used
at present for transcoding excitation gains in
particular. The decoded parameter must often be modified
before it is requantized. For example, if the coders
have different parameter analysis frequencies or
different frame/subframe lengths, it is standard practice
to interpolate/decimate the parameters. Interpolation
may be effected by the method described in the published
document US2003/033142, for example. Another

modification option is to round off the parameter to the
accuracy imposed on it by the second coding format. This
situation is encountered for the most part for the height
of the fundamental frequency ("pitch").
If it is not possible to transcode a parameter
within the parameter domain, decoding can go to a higher
level. This is the excitation domain, without going so
far as the signal domain. This technique has been
proposed for gains in the document "Improving transcoding
capability of speech coders in clean and frame erasured
channel environments", Hong-Goo Kang, Hong Kook Kim, Cox,
R.V., Speech Coding, 2000, Proceedings 2000, IEEE
Workshop on Speech Coding, Pages 78-80.
Finally, a last solution (the most complex and the
least "intelligent") consists in recalculating the
parameter explicitly, as the coder would, but based on a
synthesized signal. This operation amounts to a kind of
partial tandem, with only some parameters being entirely
recalculated. This method has been applied to diverse
parameters such as the fixed excitation, the gains in the
IEEE reference cited above, or the pitch.
For transcoding pulses, although several techniques
have been developed to calculate the parameters quickly
and at lower cost, few solutions available today use an
intelligent approach to calculating the pulses of one
format from the equivalent parameter in another format.
In coding using analysis by synthesis, intelligent
transcoding of pulse codes is applied only if the
modeling is identical (or close) . In contrast, if the
modeling is different, the partial tandem method is used.
Note that to limit the complexity of this operation,
focused approaches have been proposed that exploit the
properties of the decoded signal or a derived signal such
as a target-signal. In the document US-2001/027393 cited
above, in an embodiment utilizing an MDCT transform
coder, there is described a bit rate change procedure
that may be considered a special case of intelligent

transcoding. That procedure requantizes a vector from a
first dictionary using a vector from a second dictionary.
To this end it distinguishes between two situations
depending on whether the vector to be requantized belongs
to the second dictionary or not. If the quantized vector
belongs to the new dictionary, the modeling is identical;
if not, the partial decoding method is applied.
Setting itself apart from all the above prior art
techniques, the present invention proposes a method of
multipulse transcoding based on selecting a subset of
combinations of pulse positions of an ensemble of sets of
pulses from a combination of pulse positions of another
ensemble of sets of pulses, the two ensembles being
distinguished by the numbers of pulses that they include
and by rules governing their positions and/or their
amplitudes. This form of transcoding is very beneficial
for multiple coding in cascade (transcoding) or in
parallel (multicoding and multimode coding) in
particular.
To this end, the present invention firstly proposes
a method of transcoding between a first compression codec
and a second compression codec. The first and second
codecs are of pulse type and use multipulse dictionaries
in which each pulse has a position marked by an
associated index.
The transcoding method of the invention includes the
following steps:
a) where appropriate, adapting coding parameters
between said first and second codecs;
b) obtaining from the first codec a selected number
of pulse positions and respective position indices
associated therewith;
c) for each current pulse position of given index,
forming a group of pulse positions including at least the
current pulse position and the pulse positions with
associated indices immediately below and immediately
above the given index;

d) selecting as a function of pulse positions
accepted by the second codec at least some of the pulse
positions in an ensemble constituted by a union of said
groups formed in step c); and
e) sending the selected pulse positions to the
second codec for coding/decoding from the positions sent.
The selection step d) therefore involves a number of
pulse positions that is less than the total number of
pulse positions in the dictionary of the second codec.
It is clear in particular that if, in the step e),
the second above-mentioned codec is a coder, the selected
pulse positions are transmitted to that coder for coding
by searching only the positions transmitted. If the
second above-mentioned codec is a decoder, the selected
pulse positions are transmitted for the positions to be
decoded.
The step b) preferably uses partial decoding of the
bit stream supplied by the first codec to identify a
first number of pulse positions that the first codec uses
in a first coding format. The number chosen in the step
b) therefore preferably corresponds to this first number
of pulse positions.
In an advantageous embodiment, the above steps are
executed by a software product including program
instructions to that effect. In this regard, the present
invention is also directed to a software product of the
above kind adapted to be stored in a memory of a
processor unit, in particular of a computer or a mobile
terminal, or on a removable memory medium adapted to
cooperate with a reader of the processor unit.
The present invention is also directed to a device
for transcoding between first and second compression
codecs, in which case it includes a memory adapted to
store instructions of a software product of the type
described above.
Other features and advantages of the invention
become apparent on reading the following detailed

description and examining the appended drawings, in
which:
Figure la is a diagram of a transcoding context in
the terms of the present invention in a "cascade"
configuration;
• Figure lb is a diagram of a transcoding context in
the terms of the present invention in a "parallel"
configuration;
• Figure 2 is a diagram of the various transcoding
processes to be effected;
• Figure 2a is a diagram of an adaptation process
for use when the sampling frequencies of the first coder
E and the second coder S are different;
• Figure 2b is a diagram of a variant of the
Figure 2a process;
• Figure 3 summarizes the steps of the transcoding
method of the invention;
• Figure 4 is a diagram of two subframes of the
coders E and S with different durations Le and Ls,
respectively, where Le > Ls, but with the same sampling
frequencies;
• Figure 4b represents a practical implementation of
Figure 4 showing the time correspondence between a
G.723.1 coder and a G.729 coder;
• Figure 5 is a diagram showing division of the
excitation of the first coder E at the rate of the second
coder S;
• Figure 6 shows a situation in which one of the
pseudosubframes STE'0 is empty; and
• Figure 7 is a diagram of an adaptation process for
use when the subframe durations of the first coder E and
the second coder S are different.
Note first that the present invention relates to
modeling and coding digital multimedia signals such as
audio (speech and/or sound) signals using multipulse
dictionaries. It may be implemented in the context of
multiple coding/decoding in cascade or in parallel or of

any other system modeling a signal by means of a
multipulse representation and which, based on the
knowledge of a first set of pulses belonging to a first
ensemble, has to determine at least one set of pulses of
a second ensemble. For conciseness, only the passage
from a first ensemble to another ensemble is described,
but the invention applies equally to passage to n
ensembles (n ≥ 2) . Moreover, only the situation of
"transcoding" between two coders is described below, but
transcoding between a coder and a decoder can of course
be deduced from this without major difficulty.
Consider the case therefore of modeling a signal by
sets of pulses corresponding to two coding systems.
Figures la and lb represent a transcoder D between a
first coder E using a first coding format C0D1 and a
second coder S using a second coding format C0D2. The
coder E delivers a coded bit stream SCE in the form of a
succession of coded frames to the transcoder D, which
includes a partial decoder module 10 for recovering the
number Ne of pulse positions used in the first coding
format and the positions pe of those pulses. As emerges
in detail below, the transcoder of the invention extracts
the right-hand neighbor ved and the left-hand neighbor veg
of each pulse position pe and selects pulse positions in
the union of those neighborhoods that will be recognized
by the second coder S. The module 11 of the transcoder
represented in Figures 1a and 1b therefore performs these
steps to deliver this selection of positions (denoted Sj
in Figures 1a and 1b) to the second coder S. It will be
clear in particular that from this selection Sj there is
constituted a subdirectory smaller than the dictionary
usually employed by the second coder S, which is one of
the advantages of the invention. Using this
subdirectory, the coding effected by the coder S is of
course faster, because it is more restricted, but without
this degrading coding quality.

In the example represented in Figure 1a, the
transcoder D further includes a module 12 for at least
partly decoding the coded stream SCE that the first coder
E delivers. The module 12 then supplies to the second
coder S an at least partly decoded version s'0 of the
original signal s0. The second coder S then delivers a
coded bit stream sCs based on that version s'0.
In this configuration, the transcoder D therefore
effects coding adaptation between the first coder E and
the second coder S, advantageously favoring faster
(because more restricted) coding by the second coder S.
Of course, as an alternative to this, the entity
referenced S in Figures 1a and 1b may be a decoder and,
in this variant, the transcoder D of the invention
effects transcoding proper between a coder E and a
decoder S, this decoding being fast because of the
information supplied by the transcoder D. Since the
process is reversible, it is clear that, much more
generally, the transcoder D in the sense of the present
invention operates between a first codec E and a second
codec S.
Note that the arrangement of the coder E, the
transcoder D and the coder S may conform to a "cascade"
configuration as represented in Figure 1a. In the
variant represented in Figure 1b, this arrangement may
conform to a "parallel" configuration. In this case, the
two coders E and S receive the original signal s0 and the
two coders E and S deliver the coded streams SCE and sCs,
respectively. Of course, here the second coder S no
longer has to receive the version s'0 from Figure 1a and
the module 12 of the transcoder D for at least partial
decoding is no longer necessary. Note further that, if
the coder E can provide an output compatible with the
input of the module 11 (number of pulses and pulse
positions), the module 10 may simply be omitted or
"bypassed".

Note further that the transcoder D may simply be
equipped with a memory for storing instructions for
implementing the foregoing steps and a processor for
processing those instructions.
The invention is therefore applied as follows. The
first coder E has effected its coding operation on a
given signal s0 (for example the original signal) . The
positions of the pulses selected by the first coder E are
therefore available. That coder determined these
positions pe using a technique of its own during the
coding process. The second coder S must also perform its
coding. In the case of transcoding, the second coder S
has only the bit stream generated by the first coder and
the invention is here applicable to "intelligent"
transcoding as defined above. In the case of multiple
coding in parallel, the second coder S also has the
signal that the first coder has and here the invention
applies to "intelligent multicoding". A system that
requires to code the same content in a plurality of
formats can exploit the information of a first format to
simplify coding the other formats. The invention can
also be applied to the particular situation of multiple
coding in parallel constituting a posteriori decision
multimode coding.
The present invention can be used to determine
quickly the positions ps (interchangeably denoted Si
below) of the pulses for another coding format from
positions pe (interchangeably denoted ei below) of the
pulses of a first format. It considerably reduces the
calculation complexity of this operation for the second
coder by limiting the number of possible positions. To
this end, it uses the positions selected by the first
coder to define a restricted set of positions from all
possible positions of the second coder, in which
restricted set the best set of positions for the pulses
is searched for. This results in a significant increase

in complexity whilst limiting degradation of the signal
relative to a standard exhaustive or focused search.
It is therefore clear that the present invention
limits the number of possible positions by defining a
restricted set of positions based on positions from the
first coding format. It differs from existing solutions
in that they use only the properties of the signal to be
modeled to limit the number of possible positions, by
giving preference to and/or eliminating positions.
For each pulse of a set of a first ensemble, two
neighbors (one on the right and one on the left) of
variable width and of greater or lesser constraint are
preferably defined and an ensemble of possible positions
extracted therefrom within which at least one combination
of pulses complying with the constraints of the second
ensemble will be preselected.
The transcoding method has the advantage of
optimizing the complexity/quality trade-off by adapting
the number of pulse positions and/or the respective sizes
(in terms of combinations of pulse positions) of the
right-hand and left-hand neighborhoods for each pulse,
either at the beginning of the processing or for each
subframe as a function of the authorized complexity
and/or the set of starting positions. The invention also
adjusts/limits the number of combinations of positions by
advantageously favoring the immediate neighborhoods.
As indicated above, the present invention is also
directed to a software product the algorithm whereof is
designed in particular to extract neighbor positions that
facilitate composing the combinations of pulses of the
second ensemble.
As indicated above, the heterogeneous nature of the
networks and the contents may call highly varied coding
formats into play. Coders may be distinguished by
numerous characteristics, of which two in particular, the
sampling frequency and the duration of a subframe,
substantially determine the mode of operation of the

invention. The options are described below in
corresponding relationship to embodiments of the
invention suited to these situations.
Figure 2 summarizes these situations. There are
initially obtained:
• the numbers Ne, Ns of pulse positions,
• the respective sampling frequencies Fe, Fs, and
• the subframe durations Le, Ls
used by the coders E and S, respectively (step 21). Thus
it is already clear that steps of adaptation and of
recovering the numbers Ne, Ns of pulse positions may
advantageously be interchanged or simply conducted
simultaneously.
The sampling frequencies are compared in a test 22.
If the frequencies are equal, the subframe durations are
compared in a test 23. If not, the sampling frequencies
are adapted in a step 32 by a method described below.
Following the test 23, if the subframe durations are
equal, the numbers Ne and Ns of pulse positions used by
the first and second coding formats, respectively, are
compared in a test 24. If not, the subframe durations
are adapted in a step 33 using a method that is also
described below. It is clear that the steps 22, 23, 32
and 33 together define the above step a) of adapting the
coding parameters. Note that the steps 22 and 32
(sampling frequency adaptation), on the one hand, and the
steps 23 and 33 (subframe duration adaptation) , on the
other hand, may be interchanged.
There is first described below a situation in which
the sampling frequencies are equal and the subframe
durations are equal.
This is the most favorable situation, but it is
nevertheless necessary to distinguish the situation in
which the first format uses more pulses than the second
(Ne ≥ Ns) and the contrary situation (Ne to the result of the test 24.

* Ne ≥ Ns in Figure 2
The principle is as follows. The directories of the
two coders E and S use Ne and Ns pulses in each subframe,
respectively.
The coder E calculates the positions of its Ne pulses
over the subframe se. These positions are interchangeably
denoted ei and pe below. The restricted ensemble Ps of
privileged positions for the pulses of the directory of
the coder S is then made up of Ne positions ei and their
neighborhoods:

where vid and vig ≥ 0 are the sizes of the right-hand and
left-hand neighborhoods of the pulse i. The values of vid
and vig, which are chosen in the step 27 in Figure 2, are
larger or smaller according to the complexity and quality
required. These sizes may be fixed arbitrarily at the
beginning of processing or chosen for each subframe se.
In step 29 in Figure 2, the ensemble Ps then contains
each position ei as well as its right-hand neighbors vid
and its left-hand neighbors vig.
It is then necessary to define for each of the Ns
pulses from the directory of the coder S the positions
which that pulse is authorized to assume among those
proposed by Ps.
To this end, rules governing the construction of the
directory of S are introduced. It is assumed that the Ns
pulses of S belong to predefined subsets of positions, a
given number of pulses sharing the same sub-set of
authorized positions. For example, the 10 pulses of the
12.2 kbps mode 3GPP NB-AMR coder are distributed two by
two into five different subsets, as shown in Table 3
above. N's denotes the number of subsets of different
positions (N's ≤ Ns in this example since N's = 5) and Tj
(for j = 1 to N's) denotes the subsets of positions
defining the directory of S.

Starting from the ensemble Ps, the N's subsets Sj
resulting from the intersection of Ps with one of the
ensembles Tj are constituted in step 30 in Figure 2 from
the equation:
Sj = Pa ∩ Tj
The neighborhoods vid and vig must be of sufficient size
for no intersection to be empty. It is therefore
necessary to allow adjustment of the neighborhood sizes,
if necessary, as a function of the starting set of
pulses. This is the purpose of the test 34 in Figure 2,
with an increase in the size of the neighborhoods (step
35) and a return to the definition of the union Ps of the
groups formed in the step c) (step 29 in Figure 2) if one
of the intersections is empty. On the other hand, if
none of the intersections Sj is empty, it is the
subdirectory consisting of those intersections Sj that is
sent to the coder S (end step 31).
The invention advantageously exploits the structure
of the directories. For example, if the directory of the
coder S is of the ACELP type, it is the intersections of
the positions of the tracks with Ps that are calculated.
If the directory of the coder E is also of the ACELP
type, the neighborhood extraction procedure also exploits
the track structure and the steps of extracting the
neighborhoods and composing restricted subsets of
positions are judiciously combined. In particular, it is
beneficial for the neighborhood extraction algorithm to
take account of the composition of the combinations of
pulses in accordance with the constraints of the second
ensemble. As will emerge later, neighborhood extraction
algorithms are produced to facilitate the composition of
combinations of pulses of the second ensemble. One of
the embodiments described later (from ACELP with two
pulses to ACELP with four pulses) is an example of this
kind of algorithm.

The number of possible combinations of positions is
therefore small and the size of the subset of the
directory of the coder S is generally very much less than
that of the original directory, which greatly reduces the
complexity of the penultimate transcoding step. The
number of combinations of pulse positions defines the
size of the aforementioned subset. It is the number of
pulse positions the invention reduces, which leads to a
reduction in the number of combinations of pulse
positions and thus makes it possible to obtain a
subdirectory of restricted size.
Step 4 6 in Figure 3 then consists in launching the
search for the best set of positions for the Ns pulses in
that subdirectory of restricted size. The selection
criterion is similar to that of the coding process. To
reduce complexity further, exploration of this
subdirectory can be accelerated using the prior art
focusing techniques described above.
Figure 3 summarizes the steps of the invention for a
situation in which the coder E uses at least as many
pulses as the coder S. However, as already pointed out
with reference to Figure 2, if the number Ns of positions
to the second format (the format of S) is greater than
the number Ne of positions to the first format (the format
of E) , the processing differs only in a few advantageous
variants that are described later.
In outline, the Figure 3 steps are summarized as
follows. After a step a) of adapting the coding
parameters (present only if necessary and therefore
represented in dashed outline in the block 41 in
Figure 3):
• recovering the positions ei of the pulses of the
coder E, and preferably a number Ne of positions (step 42
corresponding to the above-mentioned step b)),
• extracting the neighborhoods and forming groups of
neighborhoods in accordance with the equation:


(step 43 corresponding to the above-mentioned step c)),
• composing restricted subsets {Sj = Ps ∩ Tj} of
positions forming the selection of the above-mentioned
step d) and corresponding to the step 44 represented in
Figure 3, and
• forwarding that selection to the coder S (step 45
corresponding to the above-mentioned step e) ) . After
this step 45, the coder S then chooses a set of positions
in the restricted directory obtained in the step 44.
The next step is therefore a step 46 of searching
the subdirectory received by the coder S for a set
(opt(Sj)) of optimum positions including the second number
Ns of positions, as indicated above. To accelerate the
exploration of the subdirectory, this step 46 of
searching for the optimum set of positions is preferably
implemented by means of a focused search. Processing
continues naturally with the coding that is effected
thereafter by the second coder S.
There are described next the forms of processing
provided for the situation in which the number Ne of
pulses used by the first coding format is lower than the
number N3 of pulses used by the second coding format.
* Ne If the format of S uses more pulses than the format
of E, the process is similar to that explained above.
However, pulses of the format of S may not have positions
in the restricted directory. In this case, in a first
embodiment, all possible positions are authorized for
those pulses. In a second and preferred embodiment the
sizes of the neighborhoods V'd and V'g are simply
increased in step 28 in Figure 2.

* Ne A special case must be emphasized here. If Ne is
close to Ns, typically if Ne way to determine the positions may be envisaged, even
though the above form of processing remains entirely
applicable. A further reduction in complexity may be
obtained by directly fixing the positions of the pulses
of S on the basis of those of E. The Ne first pulses of S
are placed at the positions of those of E. The remaining
Ng - Ne pulses are placed as close as possible the first Ne
pulses (in their immediate neighborhood). Step 25 in
Figure 2 then tests if the numbers Ne and Ns are close
(with Ne > Ns) and, if so, the choice of the pulse
positions in step 26 is as described above.
Of course, in both cases, Ne if one of the intersections Sj is empty despite the above
precautions, the size of the neighborhoods V+g, V+d, is
simply increased in step 35, as described in the
situation where Ne ≥ Ns.
Finally, in all cases, if none of the intersections
Sj is empty, the subdirectory formed by the intersections
Sj is forwarded to the second coder S (step 31).
There are described next the forms of processing
used in the adaptation step a) if the coding parameters
of the first and second formats are not the same, in
particular their sampling frequencies and subframe
durations.
The following situations are then distinguished.
* Equal subframe durations but different sampling
frequencies
This situation corresponds to "n" for the test 22
and "y" for the test 23 in Figure 2. The adaptation step
a) then applies to step 32 in Figure 2.
The previous processing cannot be applied directly
here because the two formats do not have the same time
subdivision. Because the sampling frequencies are

different, the two frames do not have the same number of
samples over the same duration.
Rather that determining the positions of the pulses
of the format of the coder S without taking account of
those of the format of the coder E, as a tandem would do,
two different forms of processing constituting two
different embodiments are proposed here. They limit
complexity by establishing a correspondence between the
positions of the two formats, after which the processing
reverts to the processing described above (as if the
sampling frequencies were equal).
The processing of the first embodiment uses direct
quantization of the time scale of the first format by
that of the second format. This quantizing operation,
which may be tabulated or computed from a formula, finds
for each position of a subframe of the first format its
equivalent in a subframe of the second format, and vice-
versa .
For example, the correspondence between the
positions pe and ps in the subframes of the two formats
may be defined by the following equation:

in which Fe and Fs are the sampling frequencies of E and
S, respectively,
Le and Ls are their subframe lengths, and
denotes the integer part.
Depending on the characteristics of the processor
unit, this correspondence could use the above formula or
advantageously be tabulated for the Le values. An
intermediate solution may also be selected by tabulating
only the first Je values d being the highest
common factor of Le and Ls) , the remaining positions then
being easily deduced.
Note that it is also possible to make a plurality of
positions of the subframe of S correspond to a position

of a subframe of E. For example, retaining the positions
immediately below and immediately above
The general processing described above is applied
starting from the ensemble of positions ps corresponding
to the positions pe, (extraction of neighborhoods,
composition of combinations of pulses, selection of the
optimum combination).
This situation of equal subframe durations but
different sampling frequencies is found in Tables 5a to
5d below, referring to an embodiment in which the coder E
is of the 3GPP NB-AMR type and the coder S is of the WB-
AMR type. The NB-AMR coder has a subframe of 40 samples
for a sampling frequency of 8 kHz. The WB-AMR coder uses
64 samples per subframe at 12.8 kHz. In both cases, the
subframe has a duration of 5 ms. Table 5a gives the
correspondence of the positions in a NB-AMR subframe to a
WB-AMR subframe and Table 5b gives the converse
correspondence. Tables 5c and 5d are the restricted
correspondence tables.



Briefly, the following steps apply (see Figure 2a):
a1) direct timescale quantization from the first
frequency to the second frequency (step 51 in Figure 2a),
a2) as a function of that quantization, determination of
each pulse position in a subframe with the second coding
format characterized by the second sampling frequency
from a pulse position in a subframe with the first coding
format characterized by the first sampling frequency
(step 52 in Figure 2a).
In general terms, the quantization step a1) is
effected by calculation and/or tabulation from a function
which makes correspond to a pulse position pe in a
subframe with the first format a pulse position ps in a
subframe with the second format; that function actually
takes the form of a linear combination involving a
multiplier coefficient corresponding to the ratio of the
second sampling frequency to the first sampling
frequency.
Moreover, to go in the opposite direction from a
pulse position in a subframe with the second format ps to
a pulse position in a subframe with the first format pe,
there is of course applied an inverse function of this
linear combination applied to a pulse position in a
subframe with the second format ps.

Clearly the transcoding process is completely
reversible and is as equally adapted to one transcoding
direction (E->S) as to the other (S->E).
A second embodiment of sampling frequency adaptation
uses a conventional change of sampling frequency
principle. Starting from the subframe containing the
pulses found by the first format, oversampling is applied
at the frequency equal to the lowest common multiple of
the two sampling frequencies Fe and Fs. Then, after low-
pass filtering, undersampling is applied to revert to the
sampling frequency of the second format, i.e. Fs. There
is obtained a subframe at the frequency Fs containing the
filtered pulses from E. Once again, the result of the
oversampling/LP filtering/undersampling operations can be
tabulated for each possible position of a subframe of E.
This processing can also be effected by "on line"
calculation. As in the first embodiment of sampling
frequency adaptation, one or more positions of S may be
associated with a position of E, as explained below, and
the general processing in the sense of the above-
described invention applied.
As indicated in the variant represented in
Figure 2b, the following steps apply:
a'1) oversampling a subframe with the first coding format
characterized by the first sampling frequency at a
frequency Fpcm equal to the lowest common multiple of the
first and second sampling frequencies (step 53 in
Figure 2b), and
a'2) applying low-pass filtering to the oversampled
subframe (step 54 in Figure 2b), followed by
undersampling to achieve a sampling frequency
corresponding to the second sampling frequency (step 55
in Figure 2b).
The process continues by obtaining, preferably by a
thresholding method, a number of positions, possibly a
variable number of positions, adapted from the pulses of
E (step 56), as in the above first embodiment.

* Equal sampling frequencies but different subframe
durations
The processing carried out in the situation where
the sampling frequencies are equal but the subframe
durations are different is described next. This
situation corresponds to "n" for the test 23 but "o" for
the test 22 of Figure 2. The adaptation step a) then
applies to the step 33 in Figure 2.
As in the above situation, the neighborhood
extraction step as such cannot be applied directly. It
is first necessary to make the two subframes compatible.
Here the subframes differ in size. Faced with this
incompatibility, rather than calculate the positions of
the pulses like the tandem does, a preferred embodiment
offers a solution of low complexity that determines a
restricted directory of combinations of positions for the
pulses of the second format from the positions of the
pulses of the first format. However, the subframe of S
and that of E not being the same size, it is not possible
to establish a direct temporal correspondence between a
subframe of S and a subframe of E. As shown in Figure 4
(in which the subframes of E and S are designated STE and
STS, respectively), the boundaries of the subframes of the
two formats are not aligned and over time the subframes
shift relative to each other.
In a preferred embodiment, it is proposed to divide
the excitation of E into pseudosubframes the size of
those of S and at the timing rate of S. The
pseudosubframes are denoted STE' in Figure 5. In
practice, this amounts to establishing a temporal
correspondence between the positions in the two formats
taking account of the subframe size difference to align
the positions relative to an origin common to E and S.
The determination of that common origin is described in
detail later.

A position p°e (respectively p°s) of the first format
(respectively the second format) relative to that origin
coincides with the position pe (respectively ps) of the
subframe ie (respectively js) of E (respectively S)
relative to that subframe. Thus:

To a position pe of the subframe ie of the format of
E there corresponds the position ps of the subframe js of
the format of S, ps and js being respectively the
remainder and the quotient of the Euclidian division by Ls
of the position p°e of pe relative to an origin 0 common
to E and S:

with 0 ≤ pe denoting the integer part, ≡ denoting the modulus, the
index of a subframe of E (respectively S) being given
relative to the common origin O.
Accordingly, the positions pe in a subframe js are
used to determine a restricted ensemble of positions for
pulses of S in the subframe js by means of the general
process described above. However, if Le > Ls, a subframe
of S may not contain any pulse. In the Figure 6 example,
the pulses of the subframe STEO are represented by
vertical lines. The format of E may very well
concentrate the pulses of STEO at the end of the
subframe, in which case the pseudosubframe STE'0 does not
contain any pulse. All the pulses placed by E are found
in STE'1 upon division. In this case, a conventional
focused search is preferably applied to the
pseudosubframe STE'0.
Preferred embodiments for the determination of a
time origin 0 common to the two formats are described
next. That common reference constitutes the position
(number 0) from which the positions of the pulses are

numbered in the subsequent subframes. This position 0
can be defined in various ways, depending on the system
utilizing the transcoding method of the present
invention. For example, for a transcoder module included
in a transmission system equipment, it will be natural to
take for the origin the first position of the first frame
received after the equipment is started up.
However, the disadvantage of that choice is that the
positions take increasingly large values and it may
become necessary to limit them. For this it suffices to
update the position of the common origin whenever
possible. Accordingly, if the respective lengths Le and
Ls of the subframes of E and S are constant over time, the
position of the common origin is reset each time that the
boundaries of the subframes of E and S are aligned. This
occurs periodically, the period (expressed in samples)
being equal to the lowest common multiple of Le and Ls.
The situation may also be envisaged in which Le
and/or Ls are not constant in time. It is no longer
possible to find a multiple common to the two subframe
lengths, at present denoted Le(n) and Ls(n), where n
represents the subframe number. In this case, it is
necessary to sum the values Le(n) and Ls(n) on the fly and
to compare the two sums obtained in each subframe:

Each time that Te(k) = Ts(k'), the common origin is
updated (and taken at the position k x Le or k' x Ls) .
The two sums Te and Ts are preferably reset.
Briefly, and more generally, calling the first
(respectively second) subframe duration the subframe
duration of the first (respectively second) coding
format, the adaptation steps executed when the subframe

durations are different are summarized in Figure 7, and
are preferably as follows:
a20) defining an origin 0 common to subframes with the
first and second formats (step 70),
a21) dividing the successive subframes with the first
coding format characterized by a first subframe duration
into pseudosubframes of duration L'e corresponding to the
second subframe duration (step 71),
a22) updating of the common origin 0 (step 79), and
a23) determining the correspondence between the pulse
positions in the pseudosubframes p'e and in the subframes
with the second format (step 80).
To determine the common origin 0, the following
cases are preferably discriminated in the test 72 in
Figure 7:
• the first and second durations are fixed in time
("o" exit from test 72); and
• the first and second durations vary in time ("n"
exit from test 72).
In the former case, the time position of the common
origin is updated periodically (step 74), each time that
the boundaries of the respective subframes of first
duration St(Le) and second duration St(Ls) are aligned in
time (test 73 applied to those boundaries).
In the second case, it is preferable if:
a221) the respective summations of subframes with the
first format Te(k) and subframes with the second format
Ts(k') are effected successively (step 76),
a.222) equality of said two sums is detected, defining a
time for updating said common origin (test 77), and
a223) the aforesaid two sums are reset (step 78) , after
said equality is detected, for future detection of a next
common origin.
Now, in the situation in which the subframe
durations and sampling frequencies are different, it
suffices to combine judiciously the algorithms of the

correspondences between the positions of E and S
described for the above two situations.
* EMBODIMENTS
Three embodiments of transcoding in accordance with
the invention are described next. These embodiments
describe the application of the processing provided in
the situations described above in standard speech coders
using analysis by synthesis. The first two embodiments
illustrate the favorable situation in which the sampling
frequencies and the subframe durations are identical.
The final embodiment illustrates the situation in which
the subframe durations are different.
* Embodiment no. 1
The first embodiment applies to intelligent
transcoding between the 6.3 kbps mode G.723.1 MP-MLQ
model and the 5.3 kbps mode G.723.1 ACELP model with four
pulses.
Intelligent transcoding from the high bit rate to
the low bit rate of G. 723.1 employs an MP-MLQ model with
six and five pulses with an ACELP model with four pulses.
The embodiment described here determines the positions of
the four ACELP pulses from the positions of the MP-MLQ
pulses.
The operation of the G.723.1 coder is summarized
below.
The ITU-T G.723.1 multiple bit rate coder and its
multipulse directories have been described above.
Suffice to say that a G.723.1 frame contains 240 samples
at 8 kHz and is divided into four subframes each of 60
samples. The same restriction is imposed on the
positions of the pulses of any code-vector of each of the
three multipulse dictionaries. These positions must all
have the same parity (they must all be even or all be
odd). The subframe of 60(+4) positions is therefore
divided into two grids each of 32 positions. The even

grid includes the positions numbered [0, 2, 4, ..., 58,
(60,62)]. The odd grid includes the positions [1, 3,
5, ..., 59, (61,63)]. For each bit rate, exploration of
the directory, although not exhaustive, remains complex,
as indicated above.
The selection of a subset of the 5.3 kbps mode
G.723.1 ACELP directory from an element of a 6.3 kbps
mode G.723.1 MP-MLQ directory is described next.
The aim is to model the innovation signal of a
subframe by means of an element from the 5.3 kbps mode
G.723.1 ACELP directory knowing the element of the
6.3 kbps mode MP-MLQ G.723.1 directory determined during
a first coding operation. The Ne positions (Ne = 5 or 6)
of the pulses selected by the 6.3 kbps mode G.723.1 coder
are therefore available.
For example, it may be assumed that the positions
extracted from the bit stream of the 6.3 kbps mode
G.723.1 coder for a subframe whose excitation is modeled
by Ne = 5 pulses are as follows:

Remember that no adaptation of sampling frequency or
subframe duration is required here. After this step of
recovering the positions ei, a subsequent step then
consists in extracting the right-hand and left-hand
neighborhoods of those five pulses directly. The right-
hand and left-hand neighborhoods are here taken to be
equal to two. The ensemble Ps of positions selected is:

The third step consists in composing the restricted
ensemble of possible positions for each pulse (here one
track) of the ACELP directory of the 5.3 kbps mode
G. 723.1 coder by taking Ns = 4 intersections of Ps with
the four ensembles of positions of the even tracks
(respectively odd tracks) authorized by said directory
(as represented in Table 1).


The combination of these selected positions
constitutes the new restricted directory in which the
search will be effected. For this step, the procedure
for selecting the set of optimum positions is based on
the CELP criterion, as in the 5.3 kbps mode G.723.1
coder. The exploration may be exhaustive but is
preferably focused.
The number of combinations of positions in the
restricted directory is equal to 180 (= 4*3*3*4+2*1*3*3)
instead of 8192 (= 2*8*8*8*8) combinations of positions
of the ACELP directory of the 5.3 kbps mode G.723.1
coder.
The number of combinations may be further restricted
by considering only the parity chosen for the 6.3 kbps
mode (in the present example that is the even parity) .
In this case, the number of combinations in the
restricted directory is equal to 144.
Depending on the size of the neighborhoods
concerned, for one of the four pulses the ensemble Ps may
not contain any position for a track of the ACELP model
(situation in which one of the ensembles Si is empty) .
Accordingly, for neighborhoods of size 2, when the
positions of the Ne pulses are all on the same track, Ps
contains only positions of that track and adjacent
tracks. In this case, depending on the required
quality/complexity trade-off, it is possible either to
replace the ensemble Si with Ti (which amounts to not
restricting the ensemble of positions of that track) or
to increase the right-hand (or left-hand) neighborhood of

the pulses. For example, if all the pulses of the
6.3 kbps mode coder are on track 2, with right-hand and
left-hand neighborhoods equal to two, then track 0 will
have no positions regardless of the parity. It then
suffices to increase by 2 the size of the left-hand
and/or right-hand neighborhood to assign positions to
that track 0.
To illustrate this embodiment, consider the
following example:

* Embodiment no. 2
The following second embodiment illustrates the
application of the invention to intelligent transcoding
between ACELP models of the same length. In particular,
this second embodiment is applied to intelligent
transcoding between the ACELP model with four pulses of
8 kbps mode G.729 and the ACELP with two pulses of
6.4 kbps mode G.729.
Intelligent transcoding between the 6.4 kbps and
8 kbps modes of the G.729 coder utilizes one ACELP
directory with two pulses and a second one with four
pulses. The embodiment described here determines the
positions of four pulses (8 kbps) from the positions of
two pulses (6.4 kbps) and vice-versa.

The operation of the ITU-T G.729 encoder is
described briefly. This coder can operate at three bit
rates: 6.4, 8 and 11.8 kbps. The first two bit rates are
considered here. A G.729 frame contains 80 samples at
8 kHz and is divided into two subframes each of 40
samples. For each subframe, G.729 models the innovation
signal by means of pulses conforming to the ACELP model.
It uses four pulses for the 8 kbps mode and two pulses
for the 6.4 kbps mode. Tables 2 and 4 above give the
positions that the pulses can adopt for those two bit
rates. At 6.4 kbps, an exhaustive search of all (512)
combinations of positions is effected. At 8 kbps, a
focused search is preferably used.
The general processing in accordance with the
invention is used again here. However, the ACELP
structure common to the two directories is advantageously
exploited here. Establishing the correspondence between
the sets of positions therefore exploits a division of
the subframe of 40 samples into five tracks each of eight
positions, as set out in Table 6 below.

In the two directories, the positions of the pulses
share these tracks, as shown in Table 7 below.
All the pulses are characterized by the their track
and their rank in that track. The 8 kbps mode places a

pulse on each of the first three tracks and the last
pulse on one of the last two tracks. The 6.4 kbps mode
places its first pulse on track P1 or P3 and its second
pulse on track P0, P1, P2 or P4.

This embodiment exploits interleaving of the tracks
(ISSP structure) to facilitate extracting the
neighborhoods and composing the restricted subensembles
of positions. Accordingly, to move from one track to
another, it suffices to shift one unit to the right or to
the left. For example, at the 5th position of track 2
(absolute position 22), a shift of one unit to the right
(+1) goes to the 5th position on track 3 (absolute
position 23) and a shift of one unit to the left (-1)
goes to the 5th position of track 1 (absolute position
21).



The selection of a subensemble of the ACELP
directory with four pulses of the 8 kbps mode G.729 coder
from an element of an ACELP directory with two pulses of
the 6.4 kbps mode G.729 coder is described next.
A 6.4 kbps mode G.729 subframe is considered. Two
pulses are placed by the coder, but it is necessary to
determine the positions of the other pulses that the
8 kbps mode G.729 must place. To restrict complexity
radically, only one position per pulse is selected and
only one combination of positions is retained. This has
the advantage that the selection step is therefore
immediate. Two of the four pulses of the 8 kbps mode
G.729 are selected at the same positions as those of the
6.4 kbps mode, after which the remaining two pulses are
placed in the immediate neighborhood of the first two.
As indicated above, the track structure is exploited. In
the first step of recovering the two positions by
decoding the binary index (on nine bits) of the two
positions, the corresponding two tracks are also
determined. From those two tracks (which may be
identical), the last three steps of extracting the
neighborhoods, composing the restricted subensembles and
selecting a combination of pulses are then judiciously
associated. Different cases are then distinguished
according to the tracks Pi (i = 0 to 4) containing the two
6.4 kbps mode pulses.
The positions of the 6.4 kbps mode pulses are
denoted ek and those of the 8 kbps mode pulses are denoted
Sk. Table 8 below gives the selected positions in each
case. The columns labeled "Pj+d=Pi" specify the


The aim is therefore preferably to balance the
distribution of the four positions relative to the two
starting positions, although a different choice may be
made. Four situations (indicated by an exponent in
parentheses in Table 8) may nevertheless give rise to
edge effect problems:


Situation (4): if e1 = 39, we cannot take s0 = e1 + 1, so
we choose S0 = e0 - 3.
To reduce complexity further, the sign of each pulse sk
may be taken as equal to that of the pulse ej from which
it is deduced.
The selection of a subensemble of the 6.4 kbps mode
G.729 ACELP directory with two pulses from an element of
an 8 kbps mode G.729 ACELP directory with four pulses is
described next.
For an 8 kbps mode G.729 subframe, the first step is
to recover the positions of the four pulses generated by
the 8 kbps mode. Decoding the binary index (on 13 bits)
of these four positions yields their rank in their
respective track for the first three positions (tracks 0
to 2) and the track (3 or 4) of the fourth pulse together
with its rank in that track. Each position ei (0 ≤ i is characterized by the pair (pi,mi) in which pi is the
index of its track and mi is its rank in that track. We
have:

As already mentioned, neighborhood extraction and
restricted subensemble composition are combined and
advantageously exploit the ISSP structure common to the
two directories. The five intersections T'j of the
ensemble Ps of the neighborhoods of the four positions
with the five tracks Pj are constructed by exploiting the
adjacent position property induced by interleaving the
tracks:

Accordingly, a right-hand (respectively left-hand)
neighborhood of +1 (respectively -1) of the pulse (p,m)
belongs to T'p+1 if p 0) ,
if not (p = 4) to T'0 on condition that m (respectively to T'4 (I = 0) on condition that m > 0) .
The restriction on the right-hand neighbor for a position
of the fourth pulse belonging to the fourth track

(respectively left-hand neighbor for a position of the
first track) ensure that adjacent position is not outside
the sub-frame.
Accordingly, using the modulo 5 notation (≡5), a
right-hand (respectively left-hand) neighbor of +1
(respectively -1) of the pulse (p,m) belongs to T'(P+1)≡5
(respectively to T'(P+1)≡5 . Note that it is necessary to
take account of edge effects. Generalizing to a
neighborhood size d, a right-hand neighbor of +d
(respectively a left-hand neighbor of -d) of the pulse
(p,m) belongs to T'(P+1)≡5 (respectively T'(P+1)≡5. The rank
of the neighbor of ±d is equal to m if p + d ≤ 4 (or
p - d ≥ 0) , otherwise the rank m is incremented for a
right-hand neighbor and decremented for a left-hand
neighbor. Taking account of edge effects therefore
amounts to ensuring that m4 and m > 0 if
p - d Starting from this distribution of the neighbors in
the five tracks, it is a simple matter to determine the
subensembles S0 and Si of the positions of the two pulses:
S0 = T*iUT'3 and S1 = T ' 0UT ' XUT ' 2UT ' 4
The fourth and final step consists in searching for
the optimum pair in the two subensembles obtained. The
search algorithm (like the standardized algorithm
exploiting the track structure) and the track by track
storage of pulses once again simplify the search
algorithm. In practice, it is therefore of no utility to
construct the restricted subensembles S0 and S1
explicitly, as the ensembles T'j can be used alone.
In the following example, the four 8 kbps mode G.729
pulses have been placed at the following positions:
e0 = 5; e1 = 21; e2 = 22; e3 = 34.
Those four positions are characterized by the four pairs
(Pi,mi) = (0,1), (1, 4), (2,4) (4,6) .
Taking a fixed neighborhood equal to 1, the five
intersections T'j are constructed as follows:


In the final step, an algorithm similar to that of
the G.729 6.4 kbps mode effects the search for the best
pair of pulses. That algorithm is much less complex here
as the number of combinations of positions to be explored
is very small. In the example, there number of
combinations to be tested is only 4 (Cardinal (T'1) +
Cardinal (T'3)) multiplied by 8 (Cardinal (T'0) +
Cardinal (T'1) + Cardinal (T'2) + Cardinal (T'4)), i.e. 32
combinations instead of 512.
For a neighborhood of size 1, less than 8% of the
combinations of positions are to be explored on average,
without exceeding 10% (50 combinations). For a
neighborhood of size 2, less than 17% of combinations of
positions are to be explored on average and at most 25%
of the combinations are to be explored. For a
neighborhood of size 2, the complexity of the processing
proposed by the invention (lumping together the cost of
searching the restricted directory and the cost of
extracting the neighborhoods associated with the

composition of the intersections) represents less than
30% of an exhaustive search for an equivalent quality.
* Embodiment no. 3
The final embodiment illustrates passing between the
8 kbps mode G.729 ACELP model and the 6.3 kbps mode
G.723.1 MP-MLQ model.
Intelligent transcoding of the pulses between
G.723.1 (6.3 kbps mode) and G.72 9 (8 kbps mode) entails
two major difficulties. Firstly, the size of the frames
is different (40 samples for G.729 as against 60 samples
for G.723.1). The second difficulty is linked to the
different structures of the dictionaries (ACELP type for
G.729 and MP-MLQ type for G.723.1). The embodiment
described here shows how the invention eliminates these
two problems in order to transcode the pulses at reduced
cost whilst preserving transcoding quality.
First of all a temporal correspondence is set up
between the positions in the two formats, taking account
of the size difference of the subframes to align the
positions relative to an origin common to E and S. The
G.729 and G.723.1 subframe lengths having a lowest common
multiple of 120, the temporal correspondence is set up by
blocks of 120 samples, i.e. two G.723.1 subframes for
every three G.729 subframes, as shown in the Figure 4b
example. Alternatively, it might be preferable to work
on complete blocks of frames. In this case, blocks of
240 samples are chosen, i.e. a G.723.1 frame (four
subframes) for every three G.729 frames (six subframes).
There is described next the selection of a
subensemble of the 6.3 kbps mode G.723.1 MP-MLQ directory
from elements of the 8 kbps mode G.729 ACELP directory
with four pulses. The first step consists in recovering
the positions of the pulses by blocks of three G.729
subframes (with index ie, 0 ≤ ie ≤ 2) . The position of
that block in the subframe ie is denoted pe(ie) .

Before neighborhood extraction, the 12 positions
Pe(ie) are converted into 12 positions ps(js) divided into
two G.723.1 subframes (of index js, 0 ≤ js ≤ 1). The
above general equation may be used (involving the modulus
of the subframe length) to perform the adaptation of the
subframe durations. However, it is preferred here merely
to distinguish three situations according to the value of
the index ie:

Thus no division and no operation modulo n are effected.
The four positions recovered in the subframe STEO of
the block are directly assigned to the subframe STSO with
the same position, those of the subframe STE2 of the
block are directly assigned to the subframe STS1 with a
position increment of +20, the positions of the subframe
STE1 below 20 are assigned to the subframe STSO with an
increment of +40, and the others are assigned to the
subframe STS1 with an increment of -20.
The neighborhoods of those 12 positions are then
extracted. Note that the right-hand (respectively left-
hand) neighborhoods of the positions of the subframe STSO
(respectively STS1) to be extracted from their subframe
can be authorized, these neighbor positions being then in
the subframe STS1 (respectively STSO).
The temporal correspondence and neighborhood
extraction steps can be interchanged. In this case, the
right-hand (respectively left-hand) neighborhoods of the
positions of the subframe STEO (respectively STE2) to be
extracted from their subframe can be authorized, those
neighbor positions then being in the subframe STE1.
Similarly, the right-hand (respectively left-hand)
neighborhoods of the positions in STE1 can lead to
neighbor positions in STE2 (respectively STEO).

Once the ensemble of restricted positions for each
subframe STS has been constituted, the final step
consists in exploring the restricted directory
constituted in this way for each subframe STS to select
the Np (= 6 or 5) pulses with the same parity. This
procedure can be derived from the standardized algorithm
or take its inspiration from other focusing procedures.
To illustrate this embodiment, consider three G.729
subframes that can be used to construct the
subdirectories of two G.723.1 subframes. Assume that
G.729 yields the following positions:

Thus we have the sets of positions {1, 5, 32, 39,
44, 55} for the subframe STSO and {2, 11, 20, 21, 44, 57}
for the subframe STS1.
At this stage it is necessary to extract the
neighborhoods. Taking a neighborhood fixed at 1, for
example, we obtain:

MP-MLQ imposes no constraint on the pulses, apart
from their parity. Over a subframe, they must all have
the same parity. It is therefore necessary here to split
Ps0 and Ps1 into two subensembles, as follows:
• Ps0: {0,2,4,6,32,40,44,54,56} and {1,5,31,33,39,43,45,55}
• Psl:{2,10,12,20,22,44,56} and {1,3,11,21,23,43,45,57}

Finally, this subdirectory is transmitted to the
selection algorithm that determines the Np best positions
in the sense of the CELP criterion for the G.723.1
subframes FTSO et STS1. This considerably reduces the
number of combinations to be tested. For example, there
remain in the subframe STSO nine even positions and eight
odd positions, rather than 30 and 30.
Certain precautions are nevertheless required in
situations in which the positions selected by G.729 are
such that the extraction of the neighborhoods yields a
number N of possible positions lower than the G.723.1
number of positions (N particular if the G.729 positions are all in sequence
(for example: {0,1,2,3}). There are then two options:
• either to increase the size of the neighborhood
for the subframes concerned until a sufficient size is
obtained for Ps (size ≥ Np) /
• or to select the first N pulses and authorize for
the remaining Np - N pulses a search among the 30 - N
remaining positions of the grid, as described above.
The opposite processing operation, consisting in
selecting a subensemble of the 8 kbps mode G.729 ACELP
directory with four pulses from elements of a 6.3 kbps
mode G.723.1 MP-MLQ directory, is described next.
Overall, the process is similar. Two G.723.1
subframes correspond to three G.72 9 frames. Once again,
the G.723.1 positions are extracted and translated into
the G.729 time frame. These positions could
advantageously be translated in the form "track - rank in
the track" in order to benefit as before from the ACELP
structure to extract the neighborhoods and search for the
optimum positions.
The same arrangements as before are adopted to
prevent situations in which neighborhood extraction would
yield an insufficient number of positions (here fewer
than four positions).

Thus the present invention determines at lower cost
the positions of a set of pulses from a first set of
pulses, the two sets of pulses belonging to two
multipulse directories. Those two directories may be
distinguished by their size, the length and the number of
pulses of their code words, and the rules governing the
positions and/or amplitudes of the pulses. Preference is
given to the neighborhoods of the positions of the pulses
of the selected set(s) in the first directory to
determine those of a set in the second directory. The
invention further exploits the structure of the starting
and/or destination directories to reduce complexity
further. From the first embodiment described above
entailing changing from an MP-MLQ model to a ACELP model,
it will be clear that the invention is easy to apply to
two multipulse models having different structural
constraints. From the second embodiment, entailing
passing between two models having different numbers of
pulses based on the same ACELP structure, it will be
clear that the invention advantageously exploits the
structure of the directories to reduce transcoding
complexity. From the third embodiment, entailing passing
between an MP-MLQ model and an ACELP model, it will be
clear that the invention may even be applied to coders
with different subframe lengths or sampling frequencies.
The invention adjusts the quality/complexity trade-off
and in particular greatly reduces the calculation
complexity for a minimum deterioration compared to a
conventional search of a multipulse model.

WE CLAIM:
1. A method for a transcoder for transcoding between a
first compression codec and a second compression codec,
said first and second codecs being of pulse type and
using multipulse dictionaries in which each pulse has a
position marked by an associated index,
wherein the method includes the following steps performed
by the transcoder:
a) adapting coding parameters between said first and
second codecs;
b) a decoder of the transcoder obtaining from the first
codec a selected number of pulse positions and respective
position indices associated therewith;
c) for each current pulse position of given index, a
module of the transcoder forming a group of pulse
positions including at least the current pulse position
and the pulse positions with associated indices
immediately below and immediately above the given index;
d) selecting as a function of pulse positions accepted by
the second codec at least some of the pulse positions in
an ensemble constituted by a union of said groups formed
in step c); and
e) sending the selected pulse positions to the second
codec for coding/decoding from the positions sent;
said selection step d) then involving a number of pulse
positions less than the total number of pulse positions
in the dictionary of the se cond codec.
2. A method as claimed in claim 1, wherein the first
codec (E) uses a first number of pulses in a first ceding
format and wherein said selected number (Ne) in step b)
corresponds to said first number of pulse positions.
3. A method as claimed in claim 2, wherein:
the first codec (E) uses a first number (Ne) of
pulse positions in a first coding format; and

the second codec (E) uses a second number (Ns) of pulse
positions in a second coding format;
and wherein it includes a step of discriminating between
the following situations:
the first number (Ne) is greater than or equal to the
second number (Ns) ; and
the first number (Ne) is less than the second number
(Ns) .
4. A method as claimed in claim 3, wherein the first
number (Ne) is greater than or equal to the second number
(Ns) (Ne ≥ Ns) and wherein each group formed in step c)
includes right-hand neighbor pulse positions (vid) and
left-hand neighbor pulse positions (vig) of said current
pulse position of given index and the respective numbers
of left-hand and right-hand neighbor pulse positions are
selected as a function of a complexity/transcoding
quality trade-off.
5. A method as claimed in claim 4, wherein there is
constructed in step d) a subdirectory of combinations of
pulse positions resulting from intersections (Sj) of:
an ensemble (Ps) constituted by a union of said
groups formed in step c); and
pulse positions (Tj) accepted by the second codec,
so that said subdirectory has a size less than the number
of pulse position (Tj) combinations accepted by the second
codec.
6. A method as claimed in claim 5, wherein after step e)
said subdirectory is searched for an optimum set of
positions including said second number (Ns) of positions
at the level of the second coder (S).

7. A method as claimed in claim 6, wherein the step of
searching for the optimum set of positions is effected by
means of a focused search to accelerate the exploration
of said subdirectory.
8. A method as claimed in any one of the preceding
claims, wherein said first codec is adapted to deliver a
succession of coded frames and wherein the respective
numbers of pulse positions in the groups formed in step
c) are selected successively from one frame to the other.
9. A method as claimed in claim 3, wherein the first
number (Ne) is less than the second number (Ns) (Ne wherein a test is effected to determine if the pulse
positions provided in the second number (Ns) of pulse
positions are included in the pulse positions of the
groups formed in step c) and,
in the event of a negative result of said test, the
number of pulse positions in the groups formed in step c)
is increased.
10. A method as claimed in claim 3, wherein it
discriminates the situation in which the second number Ns
is between the first number Ne and twice the first number
Ne (Ne c1) the Ne pulse positions are selected from the outset;
and
c2) there is selected a complementary number of pulse
positions Ns - Ne defined in the immediate neighborhood of
the pulse positions selected in step c1) .
11. A method as claimed in any one of the preceding
claims, wherein said first codec operates with a given
first sampling frequency and from a given first subframe
duration and wherein said coding parameters for which
said adaptation is carried out in step a) include a
subframe duration and a sampling frequency and said
second codec operates with a second sampling frequency

and a second subframe duration and wherein the following
four situations are distinguished in step a):
the first and second durations are equal and the
first and second frequencies are equal;
the first and second durations are equal and the first
and second frequencies are different;
the first and second durations are different and
the first and second frequencies are equal; and
the first and second durations are different and
the first and second frequencies are different.
12. A method as claimed in claim 11, wherein the first
and second durations are equal and the first and second
sampling frequencies are different and wherein it
includes steps of:
a1) direct time scale quantization from the first
frequency to the second frequency; and
a2) determination as a function of said quantization of
each pulse position in a subframe with the second coding
format characterized by the second sampling frequency
from a pulse position in a subframe with the first coding
format characterized by the first sampling frequency.
13. A method as claimed in claim 12, wherein the
quantization step a1) is effected by calculation and/or
tabulation on the basis of a function which at a pulse
position in a subframe with the first format (pe)
establishes the correspondence of a pulse position in a
subframe with the second format (ps) , said function
substantially taking the form of a linear combination
involving a multiplier coefficient corresponding to the
ratio of the second sampling frequency to the first
sampling frequency.

14. A method as claimed in claim 13, wherein to pass
conversely a pulse position in a subframe with the second
format (ps) to a pulse position in a subframe with the
first format (pe) there is applied an inverse function to

said linear combination applied to a pulse position in a
subframe with the second format (ps) .
15. A method as claimed in claim 11, wherein the first
and second durations are equal and the first and second
sampling frequencies are different and wherein it
includes the steps of:
a'1) oversampling a subframe with the first coding format
characterized by the first sampling frequency at a
frequency equal to the lowest common multiple of the
first and second sampling frequencies; and
a'2) applying to the oversampled subframe low-pass
filtering followed by undersampling to obtain a sampling
frequency corresponding to the second sampling frequency.
16. A method as claimed in claim 15, wherein the method
continues by obtaining a number of positions by means of
a thresholding method, where appropriate a variable
number of positions.
17. A method as claimed in claim 12, wherein it includes
a step of establishing the correspondence for each
position (pe) of a pulse of a subframe with the first
coding format characterized by the first sampling
frequency of a group of pulse positions (ps) in a
subframe with the second coding format characterized by
the second sampling frequency, each group including a
number of positions that is a function of the ratio
(Fs/Fe) between the second sampling frequency and the
first sampling frequency.
18. A method as claimed in claim 11, wherein the first
and second subframe durations are different and wherein
it includes the steps of:
a20) defining an origin (O) common to the subframes of

the first and second formats;

a21) dividing successive subframes of the first coding
format characterized by a first subframe duration to form
pseudosubframes of duration corresponding to the subframe
duration of the second format;
a22) updating said common origin; and
a23) determining the correspondence between the pulse
positions in the pseudosubframes and in the subframes
with the second format.
19. A method as claimed in claim 18, wherein it also
discriminates the follow situations:
the first and second durations are fixed in time;
and
the first and second durations vary in time.
20. A method as claimed in claim 19, wherein the first
and second durations are fixed in time and wherein the
position in time of said common origin is periodically
updated whenever boundaries of respective subframes of
first and second duration are aligned in time.
21. A method as claimed in claim 19, wherein the first
and second durations vary in time and wherein:
a221) respective summations of the durations of subframes
with the first format and the durations of subframes with
the second format are effected successively;
a222) equality of the two summations is detected,
defining a time of updating said common origin; and
a223) said two summations are reset, after said equality
is detected, for future detection of a next common
origin.
22. (Cancelled)
23. A transcoder for transcoding between a first
compression codec and a second compression codec, said
first and second codecs being of the pulse type and using
multipulse dictionaries in which each pulse has a
position marked by an associated index,

said transcoder comprising means for carrying out the
following steps to be preformed by the transcoder:
a) adapting coding parameters between said first and
second codecs;
b) a decoder of the transcoder obtaining from the
first codec a selected number of pulse positions and
respective position indices associated therewith;
c) for each current pulse position of given index, a
module of the transcoder forming a group of pulse
positions including at least the current pulse position
and the pulse positions with associated indices
immediately below and immediately above the given index;
d) selecting as a function of pulse positions
accepted by the second codec at least some of the pulse
positions in an ensemble constituted by a union of said
groups formed in step c); and
e) sending the selected pulse positions to the
second codec for coding/decoding from the positions sent;
said selection step d) then involving a number of pulse
positions less than the total number of pulse positions
in the dictionary of the second codec.


ABSTRACT

TRANSCODING BETWEEN INDICES OF MULTIPULSE DICTIONARIES
USED IN COMPRESSIVE CODING OF DIGITAL SIGNALS
The invention relates to compressive transcoding between
pulse coders using multipulse dictionaries in which each
pulse occupies a position marked by an index. For each
current pulse position supplied by a first coder, a
neighborhood (Vge, Vde) is formed around that position. As
a function of the pulse positions accepted by the second
coder, pulse positions are selected in an ensemble
constituted by a union of the neighborhoods. The second
coder finally receives this selection (Sj), involving a
number of pulse positions smaller than the total number
of pulse positions in the dictionary of the second coder.
(please use figure 1b, like in the PCT publication)

Documents:

01437-kolnp-2006 abstract.pdf

01437-kolnp-2006 assignment.pdf

01437-kolnp-2006 claims.pdf

01437-kolnp-2006 correspondence others-1.1.pdf

01437-kolnp-2006 correspondence others.pdf

01437-kolnp-2006 description(complete).pdf

01437-kolnp-2006 drawings.pdf

01437-kolnp-2006 form-1-1.1.pdf

01437-kolnp-2006 form-1.pdf

01437-kolnp-2006 form-13.pdf

01437-kolnp-2006 form-2.pdf

01437-kolnp-2006 form-26.pdf

01437-kolnp-2006 form-3.pdf

01437-kolnp-2006 form-5-1.1.pdf

01437-kolnp-2006 form-5.pdf

01437-kolnp-2006 international publication.pdf

01437-kolnp-2006 international search authority report.pdf

01437-kolnp-2006 pct form.pdf

01437-kolnp-2006 priority document.pdf

1437-KOLNP-2006-(28-05-2012)-AMANDED CLAIMS.pdf

1437-KOLNP-2006-(28-05-2012)-CORRESPONDENCE.pdf

1437-KOLNP-2006-ABSTRACT-1.1.pdf

1437-KOLNP-2006-CLAIMS-1.1.pdf

1437-KOLNP-2006-CORRESPONDENCE-1.1.pdf

1437-KOLNP-2006-CORRESPONDENCE.pdf

1437-KOLNP-2006-DESCRIPTION (COMPLETE)-1.1.pdf

1437-KOLNP-2006-DRAWINGS-1.1.pdf

1437-KOLNP-2006-EXAMINATION REPORT.pdf

1437-KOLNP-2006-FORM 1-1.1.pdf

1437-KOLNP-2006-FORM 1.pdf

1437-KOLNP-2006-FORM 13.1.pdf

1437-KOLNP-2006-FORM 13.pdf

1437-KOLNP-2006-FORM 18.1.pdf

1437-KOLNP-2006-FORM 18.pdf

1437-KOLNP-2006-FORM 2-1.1.pdf

1437-KOLNP-2006-FORM 26.pdf

1437-KOLNP-2006-FORM 3-1.1.pdf

1437-KOLNP-2006-FORM 5-1.1.pdf

1437-KOLNP-2006-FORM 5.pdf

1437-KOLNP-2006-GRANTED-ABSTRACT.pdf

1437-KOLNP-2006-GRANTED-CLAIMS.pdf

1437-KOLNP-2006-GRANTED-DESCRIPTION (COMPLETE).pdf

1437-KOLNP-2006-GRANTED-DRAWINGS.pdf

1437-KOLNP-2006-GRANTED-FORM 1.pdf

1437-KOLNP-2006-GRANTED-FORM 2.pdf

1437-KOLNP-2006-GRANTED-SPECIFICATION.pdf

1437-KOLNP-2006-OTHERS.pdf

1437-KOLNP-2006-OTHERS1.1.pdf

1437-KOLNP-2006-PETITION UNDER RULE 137.pdf

1437-KOLNP-2006-PETITION UNDER RULE 138.pdf

1437-KOLNP-2006-PRIORITY DOCUMENT.pdf

1437-KOLNP-2006-REPLY TO EXAMINATION REPORT.pdf

abstract-01437-kolnp-2006.jpg


Patent Number 253905
Indian Patent Application Number 1437/KOLNP/2006
PG Journal Number 36/2012
Publication Date 07-Sep-2012
Grant Date 31-Aug-2012
Date of Filing 29-May-2006
Name of Patentee FRANCE TELECOM
Applicant Address 6, PLACE D'ALLERY, 75015 PARIS
Inventors:
# Inventor's Name Inventor's Address
1 LAMBLIN CLAUDE 13 RUE ERNEST RENAN, 22700 PERROS GUIREC
2 GHENANIA MOHAMED 26 rue Pierre Dac 72100 LE MANS / France
PCT International Classification Number G10L19/12;G10L19/14
PCT International Application Number PCT/FR2004/003008
PCT International Filing date 2004-11-24
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 0314489 2003-12-10 France