Sign In to Follow Application
View All Documents & Correspondence

Encoding And Decoding Of Pulse Positions Of Tracks Of An Audio Signal

Abstract: An apparatus for decoding an encoded audio signal, wherein one or more tracks are associated with the encoded audio signal, each one of the tracks having a plurality of track positions and a plurality of pulses is provided. The apparatus comprises a pulse information decoder (110) and a signal decoder (120). The pulse information decoder (110) is adapted to decode a plurality of pulse positions, wherein each one of the pulse positions indicates one of the track positions of one of the tracks to indicate a position of one of the pulses of the track, and wherein the pulse information decoder is configured to decode the plurality of pulse positions by using a track positions number indicating a total number of the track positions of at least one of the tracks, a total pulses number indicating a total number of the pulses of at least one of the tracks, and one state number. The signal decoder (120) is adapted to decode the encoded audio signal by generating a synthesized audio signal using the plurality of pulse positions and a plurality of predictive filter coefficients being associated with the encoded audio signal.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
12 August 2013
Publication Number
49/2013
Publication Type
INA
Invention Field
ELECTRONICS
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2020-07-02
Renewal Date

Applicants

FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
Hansastrasse 27c, 80686 München, GERMANY

Inventors

1. BÄCKSTRÖM, Tom
Bauerngasse 8-12, 90443 Nürnberg, GERMANY
2. FUCHS, Guillaume
Fürther Straße 17, 91058 Erlangen, GERMANY

Specification

Encoding and Decoding of Pulse Positions of Tracks of an Audio Signal
Specification
The present invention relates to the field of audio processing and audio coding, in
particular to encoding and decoding of pulse positions of tracks in an audio signal.
Audio processing and/or coding has advanced in many ways. In audio coding, linear
predictive coders play an important role. When encoding an audio signal, e.g. an audio
signal comprising speech, linear predictive encoders usually encode a representation of the
spectral envelope of the audio signal. To this end, linear predictive encoders may
determine predictive filter coefficients to represent the spectral envelope of sound in
encoded form. The filter coefficients may then be used by a linear predictive decoder to
decode the encoded audio signal by generating a synthesized audio signal using the
predictive filter coefficients.
Important examples for linear predictive coders are ACELP coders (ACELP = Algebraic
Code-Exited Linear Prediction coders). ACELP coders are widely used, for example, in
USAC (USAC = Unified Speech and Audio Coding) and may have further application
fields, for example in LD-USAC (Low Delay Unified Speech and Audio Coding).
ACELP encoders usually encode an audio signal by determining predictive filter
coefficients. To achieve better encoding, ACELP encoders determine a residual signal, also
referred to as target signal, based on the audio signal to be encoded, and based on the
already determined predictive filter coefficients. The residual signal may, for example, be a
difference signal representing a difference between the audio signal to be encoded and the
signal portions that are encoded by the predictive filter coefficients, and, possibly, by
adaptive filter coefficients resulting from a pitch analysis. The ACELP encoder then aims
to encode the residual signal. For this, the encoder encodes algebraic codebook parameters,
which are used to encode the residual signal.
To encode the residual signal, algebraic codebooks are used. Usually, algebraic codebooks
comprise a plurality of tracks, for example, four tracks each comprising 16 track positions.
In such a configuration, a total of 4 · 6 = 64 sample positions can be represented by a
respective algebraic codebook, for example, corresponding to the number of samples of a
subframe of the audio signal to be encoded.
The tracks of the codebook may be interleaved such that track 0 of the codebook may
represent samples 0, 4, 8, 60 of the subframe, such that track 1 of the codebook may
represent samples 1, 5, 9, 6 1 of the subframe, such that track 2 of the codebook may
represent samples 2, 6, 10, 62 of the subframe, and such that track 3 of the codebook
may represent samples 3, 7, 11, 63 of the subframe. Each track may have a fixed
number of pulses. Or, the number of pulses per track may vary, e.g. depending on other
conditions. A pulse may, for example, be positive or negative, e.g. may be represented by
+ 1 (positive pulse) or 0 (negative pulse).
For encoding the residual signal, when encoding, a codebook configuration may be chosen,
that best represents the remaining signal portions of the residual signal. For this, the
available pulses may be positioned at suitable track positions that reflect best the signal
portions to be encoded. Moreover, it may be specified, whether a corresponding pulse is
positive or negative.
On a decoder side, an ACELP decoder would at first decode the algebraic codebook
parameters. The ACELP decoder may also decode the adaptive codebook parameters. To
determine the algebraic codebook parameters, the ACELP decoder may determine the
plurality of pulse positions for each track of an algebraic codebook. Moreover, the ACELP
decoder may also decode, whether a pulse at a track position is a positive or a negative
pulse. Furthermore, the ACELP decoder may also decode the adaptive codebook
parameters. Based on this information, the ACELP decoder usually generates an excitation
signal. The ACELP decoder then applies the predictive filter coefficients on the excitation
signal to generate a synthesized audio signal to obtain the decoded audio signal.
In ACELP, pulses on a track are generally encoded as follows. If the track is of length 16
and if the number of pulses on this track is one, then we can encode the pulse position by
its position (4 bits) and sign ( 1 bit), totaling 5 bits. If the track is of length 16 and the
number of pulses is two, then the first pulse is encoded by its position (4 bits) and sign ( 1
bit). For the second pulse we need to encode the position only (4 bits), since we can choose
that the sign of the second pulse is positive if it is to the left of the first pulse, negative if it
is to the right of the first pulse and the same sign as the first pulse if it is at the same
position as the first pulse. In total, we therefore need 9 bits to encode 2 pulses. In
comparison to encoding the pulse positions separately, by 5 bits each, we thus save 1 bit
for every pair of pulses.
Encoding a larger number of pulses than 2, we can encode pulses pair-wise and if the
number of pulses is odd, encode the last pulse separately. Then, for example, for a track of
5 pulses, we would need 9+9+5 = 23 bits. If we have 4 tracks, then 4 x 23 = 92 bits would
be required for encoding a subframe of length 64 with 4 tracks and 5 pulses per track.
However, it would be very appreciated, if the number of bits could furthermore be reduced.
It would be very appreciated, if an apparatus for encoding and a respective apparatus for
decoding with improved encoding or decoding concepts would be provided, which have
means to encode or decode pulse information in an improved way using fewer bits for
pulse information representation, as this would, for example, reduce the transmission rate
for transmitting a respectively encoded audio signal, and as furthermore, this would, for
example, reduce the storage needed to store a respectively encoded audio signal.
It is therefore an object of the present invention to provide improved concepts for encoding
and decoding of pulses of tracks of an audio signal. The objects of the present invention
are achieved by an apparatus for decoding according to claim 1, an apparatus for encoding
according to claim 9, a method for decoding according to claim 13 method for encoding
according to claim 14, and a computer program according to claim 15.
According to embodiments, it is assumed that one state number is available for an
apparatus for decoding. It is furthermore assumed that a track positions number, indicating
the total number of track positions of at least one of the tracks associated with the encoded
audio signal, and a total pulses number, indicating the number of pulses of at least one of
the tracks, is available for a decoding apparatus of the present invention. Preferably, the
track positions number and the total pulses number is available for each track associated
with an encoded audio signal.
For example, having 4 tracks with 5 pulses, each can attain roughly 6.6 x 10 2 1 states,
which can, according to embodiments, be encoded by 73 bits, which is approximately 21%
more efficient than the encoding of the above-described state-of-the-art encoder using 92
bits.
At first, a concept is provided how to encode a plurality of pulse positions of a track of an
audio signal in an efficient way. In the following, the concept is extended to allow to
encode not only the position of the pulses of a track, but also whether the pulse is positive
or negative. Furthermore, the concept is then extended to allow to encode pulse
information for a plurality of tracks in an efficient manner. The concepts are
correspondingly applicable on a decoder side.
In addition, the embodiments are, moreover, based on the finding, that, if the encoding
strategy uses a pre-determined number of bits, such that any configuration with the same
number of pulses on each track requires the same number of bits. If the number of bits
available is fixed, it is then possible directly to choose how many pulses can be encoded
with the given amount of bits thus enabling encoding with a pre-determined quality.
Moreover, with this approach, it is not necessary to try different amounts of pulses until the
desired bit-rate is achieved, but we can directly choose the right amount of pulses, thereby
reducing complexity.
Based on the above assumptions, the plurality of pulse positions of a track of an audio
signal frame may be encoded and/or decoded.
While the present invention can be employed for encoding or decoding any kind of audio
signals, for example, speech signals or music signals, the present invention is particularly
useful for encoding or decoding speech signals.
In another embodiment, the pulse information decoder is furthermore adapted to decode a
plurality of pulse signs using the track positions number, the total pulses number and the
state number, wherein each one of the pulse signs indicates a sign of one of the plurality of
pulses. The signal decoder may be adapted to decode the encoded audio signal by
generating a synthesized audio signal furthermore using the plurality of pulse signs.
According to a further embodiment, wherein the one or more tracks may comprise at least
a last track and one or more other tracks, the pulse information decoder may be adapted to
generate a first substate number and a second substate number from the state number. The
pulse information decoder may be configured to decode a first group of the pulse positions
based on the first substate number, and the pulse information decoder may furthermore be
configured to decode a second group of the pulse positions based on the second substate
number. The second group of the pulse positions may only consist of pulse positions
indicating track positions of the last track. The first group of the pulse positions only
consists of pulse positions indicating track positions of the one or more other tracks.
According to another embodiment, the pulse information decoder may be configured to
separate the state number into the first substate number and the second substate number by
dividing the state number by f(p , N) to obtain an integer part and a remainder as a division
result, wherein the integer part is the first substate number and wherein the remainder is the
second substate number, wherein pk indicates for each one of the one or more tracks the
number of pulses, and wherein N indicates for each one of the one or more tracks the
number of track positions. Here, f(pk, N) is a function that returns the number of states that
can be achieved in a track of length N with p pulses.
In another embodiment, the pulse information decoder may be adapted to conduct a test
comparing the state number or an updated state number with a threshold value.
The pulse information decoder may be adapted to conduct the test by comparing, whether
the state number or an updated state number is greater than, greater than or equal to,
smaller than, or smaller than or equal to the threshold value, and wherein the analyzing
unit is furthermore adapted to update the state number or an updated state number
depending on the result of the test.
In an embodiment, the pulse information decoder may be configured to compare the state
number or the updated state number with the threshold value for each track position of one
of the plurality of tracks.
According to an embodiment, the pulse information decoder may be configured to divide
one of the tracks into a first track partition, comprising at least one track position of the
plurality of track positions, and into a second track partition, comprising the remaining
other track positions of the plurality of track positions. The pulse information decoder may
be configured to generate a first substate number and a second substate number based on
the state number. Moreover, the pulse information decoder may be configured to decode a
first group of pulse positions associated with the first track partition based on the first
substate number. Furthermore, the pulse information decoder may be configured to decode
a second group of pulse positions associated with the second track partition based on the
second substate number.
According to an embodiment, an apparatus for encoding an audio signal is provided. The
apparatus comprises a signal processor adapted to determine a plurality of predictive filter
coefficients being associated with the audio signal, for generating a residual signal based
on the audio signal and the plurality of predictive filter coefficients. Moreover, the
apparatus comprises a pulse information encoder adapted to encode a plurality of pulse
positions relating to one or more tracks to encode the audio signal, the one or more tracks
being associated with the residual signal. Each one of the tracks has a plurality of track
positions and a plurality of pulses. Each one of the pulse positions indicates one of the
track positions of one of the tracks to indicate a position of one of the pulses of the track.
The pulse information encoder is configured to encode the plurality of pulse positions by
generating a state number, such that the pulse positions can be decoded only based on the
state number, a track positions number indicating a total number of the track positions of at
least one of the tracks, and a total pulses number indicating a total number of the pulses of
at least one of the tracks.
According to another embodiment, the pulse information encoder may be adapted to
encode a plurality of pulse signs, wherein each one of the pulse signs indicates a sign of
one of the plurality of pulses. The pulse information encoder may furthermore be
configured to encode the plurality of pulse signs by generating the state number, such that
the pulse signs can be decoded only based on the state number, the track positions number
indicating a total number of the track positions of at least one of the tracks, and the total
pulses number.
In an embodiment, the pulse information encoder is adapted to add an integer value to an
intermediate number for each pulse at a track position for each track position of one of the
tracks, to obtain the state number.
According to another embodiment, the pulse information encoder may be configured to
divide one of the tracks into a first track partition, comprising at least one track position of
the plurality of track positions, and into a second track partition, comprising the remaining
other track positions of the plurality of track positions. Moreover, the pulse information
encoder may be configured to encode a first substate number associated with the first
partition. Furthermore, the pulse information encoder may be configured to encode a
second substate number associated with the second partition. Moreover, the pulse
information encoder may be configured to combine the first substate number and the
second substate number to obtain the state number.
In the following, embodiments of the present invention are described in more detail with
respect to the figures, wherein:
Fig. 1 illustrates an apparatus for decoding an encoded audio signal according to
an embodiment,
Fig. 2 illustrates an apparatus for encoding an audio signal according to an
embodiment,
Fig. 3 illustrates all possible configurations, for a track having two unsigned pulses
and three track positions,
Fig. 4 illustrates all possible configurations, for a track having one signed pulse
and two track positions,
Fig. 5 illustrates all possible configurations, for a track having two signed pulses
and two track positions,
Fig. 6 is a flow chart illustrating an embodiment, depicting the processing steps
conducted by a pulse information decoder according to an embodiment, and
Fig. 7 is a flow chart illustrating an embodiment, the flow chart depicting the
processing steps conducted by a pulse information encoder according to an
embodiment.
Fig. 1 illustrates an apparatus for decoding an encoded audio signal, wherein one or more
tracks are associated with the encoded audio signal, each one of the tracks having a
plurality of track positions and a plurality of pulses.
The apparatus comprises a pulse information decoder 110 and a signal decoder 120. The
pulse information decoder 110 is adapted to decode a plurality of pulse positions. Each one
of the pulse positions indicates one of the track positions of one of the tracks to indicate a
position of one of the pulses of the track.
The pulse information decoder 110 is configured to decode the plurality of pulse positions
by using a track positions number indicating a total number of the track positions of at least
one of the tracks, a total pulses number indicating a total number of the pulses of at least
one of the tracks, and one state number.
The signal decoder 120 is adapted to decode the encoded audio signal by generating a
synthesized audio signal using the plurality of pulse positions and a plurality of predictive
filter coefficients being associated with the encoded audio signal.
The state number is a number that may have been encoded by an encoder according the
embodiments that will be described below. The state number, e.g. comprises information
about a plurality of pulse positions in a compact representation, e.g. a representation that
requires few bits, and that can be decoded, when the information about the track positions
number and the total pulses number is available at the decoder.
In an embodiment, the track positions number and/or the total pulses number of one or of
each track of the audio signal may be available at the decoder, because the track positions
number and/or the total pulses number is a static value that doesn't change and is known
by the receiver. For example, the track positions number may always be 16 for each track
and the total pulses number may always be 4.
In another embodiment, the track positions number and/or the total pulses number of one
or of each track of the audio signal may be explicitly transmitted to the apparatus for
decoding, e.g. by the apparatus for encoding.
In a further embodiment, the decoder may determine the track positions number and/or the
total pulses number of one or of each track of the audio signal by analyzing other
parameters that do not explicitly state the track positions number and/or the total pulses
number, but from which the track positions number and/or the total pulses number can be
derived.
In other embodiments, the decoder may analyze other data available to derive the track
positions number and/or the total pulses number of one or of each track of the audio signal.
In further embodiment, the pulse information decoder may be adapted to also decode,
whether a pulse is a positive pulse or a negative pulse.
In another embodiment, the pulse information decoder may furthermore be adapted to
decode pulse information which comprises information about pulses for a plurality of
tracks. Pulse information may, for example, be information about the position of the pulses
in a track and/or information whether a pulse is a positive pulse or a negative pulse.
Fig. 2 illustrates an apparatus for encoding an audio signal, comprising a signal processor
210 and a pulse information encoder 220.
The signal processor 210 is adapted to determine a plurality of predictive filter coefficients
being associated with the audio signal, for generating a residual signal based on the audio
signal and the plurality of predictive filter coefficients.
The pulse information encoder 220 is adapted to encode a plurality of pulse positions
relating to one or more tracks to encode the audio signal. The one or more tracks are
associated with the residual signal generated by the signal processor 210. Each one of the
tracks has a plurality of track positions and a plurality of pulses. Moreover, each one of the
pulse positions indicates one of the track positions of one of the tracks to indicate a
position of one of the pulses of the track.
The pulse information encoder 220 is configured to encode the plurality of pulse positions
by generating a state number, such that the pulse positions can be decoded only based on
the state number, a track positions number indicating a total number of the track positions
of at least one of the tracks, and a total pulses number indicating a total number of the
pulses of at least one of the tracks.
In the following, the basic concepts of embodiments of the present invention relating to the
encoding of the pulse positions and possibly pulse sign (positive pulse or negative pulse)
by generating a state number are presented.
The encoding principles of embodiments of the present invention are based on the finding
that if a state enumeration of all possible configurations of k pulses in a track with n track
positions is considered, it is sufficient to encode the actual state of the pulses of a track.
Encoding such a state by as little bits as possible provides the desirable compact encoding.
By this, a concept of state enumeration is presented, wherein each constellation of pulse
positions, and possibly also pulse signs, represents one state and each state is uniquely
enumerated.
Fig. 3 illustrates this for a simple case, where all possible configurations are depicted,
when a track having two pulses and three track positions is considered. Two pulses may be
located at the same track position. In the example of Fig. 3, the sign of the pulses (e.g.
whether the pulse is positive or negative) is not considered, e.g. in such an example, all
pulses may, for example, be considered to be positive.
In Fig. 3, all possible states for two undirected pulses located in a track with three track
positions (in Fig. 3: track positions 1, 2 and 3) are illustrated. There are only six different
possible states (in Fig. 3 enumerated from 0 to 5) that describe, how the pulses may be
distributed in the track. By this, it is sufficient to use a state number in the range 0 to 5 to
describe the actual configuration present. For example, if the state number in the example
of Fig. 3 has the value (4), and if the decoder is aware of the encoding scheme, the decoder
can conclude that state number = 4 means, that the track has one pulse at track position 0
and another pulse at track position 2. By this, in the example of Fig. 3, three bits are
sufficient to encode the state number to identify one of the six different states of the
example of Fig. 3.
Fig. 4 illustrates a case depicting all possible states for one directed pulse located in a track
with two track positions (in Fig. 4 : track positions 1 and 2). In Fig. 4, the sign of the pulses
(e.g. whether the pulse is positive or negative) is considered. There are four different
possible states (in Fig. 4 enumerated from 0 to 3) that describe, how the pulse may be
distributed in track and also its sign (positive or negative). It is sufficient to use a state
number in the range 0 to 3 to describe the actual configuration present. For example, if the
state number in the example of Fig. 4 has the value (2), and if the decoder is aware of the
encoding scheme, the decoder can conclude that state number = 2 means, that the track has
one pulse at track position , and that the pulse is a positive pulse.
Fig. 5 illustrates a still further case, where all possible configurations are depicted, when a
track having two pulses and two track positions is considered. Pulses may be located at the
same track position. In the example shown in Fig. 5, the sign of the pulses (e.g. whether the
pulse is positive or negative) is considered. It is assumed that pulses at the same track
position have the same sign (e.g. the tracks at the same track position are either al positive
or are all negative).
In Fig. 5, all possible states for two signed pulses (e.g. pulses that are either positive or
negative) located in a track with two track positions (in Fig. 5: track positions 1 and 2) are
illustrated. There are only eight different possible states (in Fig. 5 enumerated from 0 to 7)
that describe, how the pulses may be distributed in the track. By this, it is sufficient to use
a state number in the range 0 to 7 to describe the actual configuration. For example, if the
state number in the example of Fig. 5 has the value (3), and if the decoder is aware of the
encoding scheme, the decoder can conclude that state number = 3 means, that the track has
one pulse at track position 0 which is positive and another pulse at track position 1 which
is negative. By this, in the example of Fig. 5, three bits are sufficient to encode the state
number to identify one of the eight different states of the example of Fig. 5.
In ACELP, the residual signal may be encoded by a fixed number of signed pulses. As
described above, the pulses may, for example, be distributed in four interlacing tracks,
such that track 0 contains positions mod(n,4)=-0, track=l contains positions
mod(n,4)-=l, and so on. Each track may have a predefined number of signed unit pulses,
which may overlap, but when they overlap, the pulses have the same sign.
By encoding pulses, a mapping from the pulse positions and their signs, into a
representation that uses the smallest possible amount of bits should be achieved. In
addition, the pulse coding should have a bit consumption that is fixed, that is, any pulse
constellation has the same number of bits.
Each track is first independently encoded and then the states of each track are combined to
one number, which represents the state of the whole subframe. This approach gives the
mathematically optimal bit-consumption, given that all states have equal probability, and
the bit consumption is fixed.
The concept of state enumeration may also be explained using a compact representation of
the different state constellations:
Let the residual signal, which we want to code, be xn . Assuming that four interleaved
tracks, e.g. of an algebraic codebook, are considered, then the first track has
samples 4 · · · w - the second track has samples x x ,x9 ...x N_ , etc. Suppose,
the first track is quantized with one signed unit pulse and that T=8, whereby the length of
the track is 2 (T = length (samples) of the residual signal to be encoded). If T=8, and if 4
tracks are used to encode the residual signal, each one of the 4 tracks has 2 track positions.
For example, the first track may be considered, that has two track positions xO and x4. The
pulse of the first track can then appear in any of the following constellations:
There are four different states for this configuration.
Similarly, if there would be two pulses in the first track, the first track having two track
positions xO and x4, the pulses could then be assigned in the following constellations:
Thereby this configuration has 8 states.
If the length of the residual signal is extended to T=12, then each of the 4 tracks has 3 track
positions. The first track gets one more sample and has now track positions O, x4 and x8,
such that we have:
The above table means that there are 8 different states for xO and x4, if x8 = 0 (x8 has no
pulse); 4 different states for xO and x4, if x8 = 1 (x8 has a positive pulse); 4 different states
for xO and x4, if x8 = - 1 (x8 has a negative pulse); 1 state for xO and x4, if x8 = 2 (x8 has
two positive pulses); and 1 state for xO and x4, if x8 = -2 (x8 has two negative pulses).
Here, the number of states for the first row has been obtained from the two previous tables.
By addition of the number of states in the first row, we see that this configuration has 18
states.
In the T= 2 example, 5 bits are sufficient to encode all the 18 different possible states. The
encoder then, for example, selects the state number from the range [0, 17] to specify
one of the 18 configurations. If the decoder is aware of the encoding scheme, e.g. if it is
aware, which state number represents which configuration, it can decode the pulse
positions and pulse signs for a track.
Below, suitable encoding methods and corresponding decoding methods according to
embodiments will be provided. According to embodiments, an apparatus for encoding is
provided which is configured to execute one of the encoding methods presented below.
Moreover, according to further embodiments, an apparatus for decoding is provided which
is configured to execute one of the decoding methods presented below.
In embodiments, to generate the state number or to decode the state number, the number of
possible configurations for N track positions having p pulses may be calculated.
Pulses may be signed, and a recursive formula may be employed, which calculates the
number of states f(p, N) for a track having N track positions and p signed pulses (the pulses
may be positive or negative, but pulses at the same track position have the same sign),
wherein the recursive formula f(p, N) is defined by:
Formula 1:
f(p, N ) = f(k, N - l)f(p -
The initial conditions are
2 for p ³ 1
/ ( , ) = 1 for p =0 and / ( 0) = 0
since a single position with one or more pulses requires one bit (two states) for the sign.
The recursion formula is for summation of all different constellations.
Namely, given p pulses, the current position can have qN = 0 to p pulses, whereby the
remaining N-1 positions have p-q N pulses. The number of states at the current position
and the remaining N-1 positions are multiplied to obtain the number of states with these
combinations of pulses and combinations are summed to obtain the total number of states.
In embodiments, the recursive function may be calculated by an iterative algorithm,
wherein the recursion is replaced by iteration.
As the evaluation of f(p,N) is numerically relatively complex for real time applications,
according to some embodiments, a table look-up may be employed to calculate f(p, N) .
According to some embodiments, the table may have been computed off-line.
In the following, further concepts are provided for encoding and decoding the state
number:
Let f(p,N) denote the number of possible configurations for a track having N track
positions and p signed pulses.
The pulse information encoder can now analyze the track: If the first position in the track
does not have a pulse, then the remaining N-1 positions have p signed pulses, and to
describe this constellation, we need only f(p, N-1) states.
Otherwise, if the first position has one or more pulses, the pulse information encoder
define that the overall state is greater than f(p, N-1).
Then, at the pulse information decoder, the pulse information decoder, can, for example,
start with the last position and compare the state with a threshold value, e.g. with
f(p, N - ) . If it is greater, then the pulse information decoder can determine that the last
position has at least one pulse. The pulse information decoder can then update the state to
obtain an updated state number by subtracting f(p, N - \ ) from the state and reduce the
number of remaining pulses by one.
Otherwise, if there is no pulse at the last position, the pulse information decoder can reduce
the number of remaining positions by one. Repeating this procedure until there are no
pulses left, would provide the unsigned positions of pulses.
To also take the signs of the pulses into account, the pulse information encoder may
encode the pulses in the lowest bit of the state. In an alternative embodiment, the pulse
information encoder may encode the sign in the highest remaining bit of the state. It is
preferred, however, to encode the pulse sign in the lowest bit, as this is easier to handle
with respect to integer computations.
If, in the pulse information decoder, the first pulse of a given position is found, the sign of
the pulse is determined by the last bit. Then, the remaining state is shifted one step right to
obtain an updated state number.
In an embodiment, a pulse information decoder is configured to apply the following
decoding algorithm. In this decoding algorithm, in a step-by-step approach, for each track
position, e.g. one after the other, the state number or the updated state number is compared
with a threshold value, e.g. with f(p,k - 1) .
According to an embodiment, a pulse information decoder algorithm is provided:
For each position in track, k=N to 1
While state s >= f(p,k -l)
Put a pulse at k
Set s := s - f(p,k -1)
If this is the first pulse at k
If lowest bit of s is set, set sign to minus
Otherwise, set sign to plus
Shift state right one step s := s/2
Reduce the number of remaining pulses p := p -
Regarding the pulse information, according to an embodiment, a pulse information encoder
is configured to apply the following encoding algorithm. The pulse information encoder
does the same steps as the pulse information decoder, but in reverse order.
According to an embodiment, a pulse information encoder algorithm is provided:
Set number of found pulses to zero, p:=0 and state to zero, s:=0
For each position in track, k=l to N
For each pulse at this position
If the current pulse is the last one on this position
Shift state left one step s := s * 2
If sign is minus, set the lowest bit to one, s := s + 1
Otherwise set the lowest bit to zero (i.e. do nothing)
Update the state s := s +f(p, k-1)
Increase the number of found pulses p:=p+l
Encoding the state number by using this algorithm, the pulse information encoder adds an
integer value to an intermediate number (e.g. an intermediate state number), e.g. the state
number before the algorithm is completed, for each pulse at a track position for each track
position of one of the tracks, to obtain (the value of) the state number.
The approach for encoding and decoding of pulse information, e.g. pulse positions and
pulse signs, may be referred to as "step-by-step encoding" and "step-by-step decoding", as
the track positions are considered by the encoding and decoding methods one after the
other, step-by-step.
Fig. 6 is a flow chart illustrating an embodiment, depicting the processing steps conducted
by a pulse information decoder according to an embodiment.
In step 610 the current track position k is set to N. Here, N represents the number of track
positions of a track, wherein the track positions are enumerated from 1 to N.
In step 620, it is tested, whether k is greater than or equal to 1, i.e. whether track positions
remain that have not been considered. If k is not greater than or equal to 1, all track
positions have been considered and the process ends.
Otherwise it is tested in step 630, whether the state is greater than or equal to f(p, k-1). If
this is the case, at least one pulse is present at position k. If this is not the case, no (further)
pulse is present at track position k and the process continues at 640, where k is reduced by
1, such that the next track position will be considered.
If, however, the state is greater than or equal to f(p, k-1), the process continues with step
642, a pulse is put at track position k, and then, in step 644, the state is updated by
reducing the state by f(p, k-1). Then, in step 650, it is tested, whether the current pulse is
the first discovered pulse at track position k. If this is not the case, the number of
remaining pulses is reduced by 1 in step 680, and the process continues in step 630.
If, however this is the first discovered pulse at track position k, the process continues with
step 660, where it is tested, whether the lowest bit of s is set. If this is the case, the sign of
the pulses at this track position is set to minus (step 662), otherwise, the sign of the pulses
at this track position is set to plus (step 664). In both cases, the state is then shifted one step
right in step 670 (s := s/2). Then, also, the number of remaining pulses is reduced by one
(step 680) and the process continues at step 630.
Fig. 7 is a flow chart illustrating an embodiment, the flow chart depicting the processing
steps conducted by a pulse information encoder according to an embodiment.
In step 710, the number of found pulses p is set to 0, the state s is set to 0 and the
considered track position k is set to 1.
In step 720, it is tested, whether k is smaller than or equal to N, i.e. whether track positions
remain that have not been considered (here, N means: number of track positions of a
track). If k is not smaller than or equal to N, all track positions have been considered and
the process ends.
Otherwise it is tested in step 730, whether at least one pulse is present at position k. If this
is not the case, the process continues at 740, where k is increased by 1, such that the next
track position will be considered.
However, if at least one pulse is present at track position k, it is tested in step 750, whether
the currently considered pulse is the last pulse at track position k. If this is not the case,
then, in step 770, the state s is updated by adding f(p, k-1) to the state s, the number of
found pulses p is increased by 1, and the process continues with step 780.
If the currently considered pulse is the last pulse at track position k, then after step 750, the
process continues with step 755 and the state is shifted one step left (s := s * 2). Then, it is
tested in step 760, whether the sign of the pulse is minus. If this is the case, the lowest bit
of s is set to 1 (step 762); otherwise, the lowest bit of s is set to 0 (or nothing is done) (step
764). Then, in both cases, step 770 is conducted, where the state s is updated by adding f(p,
k-1) to the state s, the number of found pulses p is increased by 1, and the process
continues with step 780.
In step 780, it is tested, whether there is another pulse at position k . If this is the case, the
process continues with step 750; otherwise, the process continues with step 740.
In the following, a concept is provided for generating a joint state number encoding the
state of a plurality of tracks.
Unfortunately, in many cases the range of possible states of a single track is not a multiple
of 2 and the binary representation of each state is thus inefficient. For example, if the
number of possible states is 5, then we need 3 bits to represent it with a binary number.
However, if we have four tracks, each with 5 states, then we have 5x5x5x5=625 states for
the whole sub-frame which can b e represented by 10 bits (instead of 4x3=12 bits). This
corresponds to 2.5 bits per track instead of 3 and we thus obtain a 0.5 bit saving per track
or equivalently, 2 bits per sub frame (20% of total bit consumption). It is therefore
important to combine the states of each track to one joint state, since b y this, the
inefficiency of the binary representation can b e reduced. Note that the same approach
could be used to any numbers that are transmitted. For example, since each sub-frame may
have a state representing the positions of the pulses, and each frame may, for example,
have four sub-frames, these states could be combined to one joint state number.
Given that a sub-frame has, for example, 4 tracks, the bit consumption can be reduced to
improve efficiency b y jointly encoding the states of each track. For example, given that
each track has p pulses and each track is of length N, e.g. has N track positions, then the
state of each track is in the range 0 to f(p k ,N)~ \ . The states of each track s can then be
combined to a joint state s of the subframe with the formula (assuming we have 4 tracks
per sub-frame)
Formula 2 :
s = ¾ ( o N ) + S >N)+s ]f(p 2 ,N ) +s3 .
The states of each track can then be determined in the decoder by dividing the joint state
by f(p k ,N) , whereby the remainder is the state of the last track and the integer part is the
joint state of the remaining tracks. If the number of tracks is other than 4, we can readily
add or reduce the number of terms in the above equation appropriately.
Note, that when the number of pulses per track is large, then the number of possible states
becomes large. For example, with 6 pulses per track with four tracks and a track length
N=16, then the state is an 83-bit number, which exceeds the maximum length of binary
numbers on regular CPUs. It follows that some extra steps have to be made to evaluate the
above formula using standard methods with very long integers.
Observe also that this approach is equal to arithmetic coding of the track states, when the
state probabilities are assumed to be equal.
Above, a step-by-step approach has been presented for encoding and decoding pulses
information of a track, e.g. the positions, and possibly signs, of pulses of a track. Other
embodiments provide another approach, which will be referred to as "split-and-conquer"
approach.
A pulse information encoder being configured to apply the split-and-conquer approach,
divides a track into two track partitions i and x2, which could be considered as two
vectors, wherein x = x2]. The basic idea is to encode both vectors x and X2 separately,
and then to combine the two with the formula
Formula 3:
{x) = (x ) + f(p ,N )s(x )+ P f{k,N )f(p -k,N-N )
k=0
In the above equation, it should be noted that s(x ) and s(x 2) are the states of vectors
and when the number of pulses are already known, that is, when the vectors have,
respectively, p and ¾ =p-pi pulses. To take into account all the states that have 0 to pi-pulses in vector xi, we have to add the summation term in the above equation.
The above algorithm/formula can be applied to encode the pulses of interlaced tracks by
applying the following two pre-processing steps. Firstly, let the vectors xtra ck k consists of
all samples on track k and merge these vectors by defining x = [xtra ck l, ck 2, t ack 3,
Xtrack - Observe that this is merely a re-ordering of samples such that all samples from
track 1 are placed in the first group and so on.
Secondly, note that the number of pulses per track is usually a fixed number. It follows that
if track 1 always has p pulses, then the number of states on track 1 is f(k,N )=Ofor all
values k ¹ p . This is just another way of saying that there are no states for track 1 which
do not have p;pulses. Formally, we can then define the number-of-states formula as:
Formula 4:
For a complete track xtrac k k with ¾pulses, the number of states is (N=Nirac
k)
f(p,N) (f(p,N) for p =p
o for p ¹ pk
Otherwise, for N>1
f(p, N) f(k,N,)f(p -k,N-N )
k=
And for N=l :
2 for p >1
[ 1 for p =0
By the re-ordering of samples and using the above definition for the number of states
(Formula 4), we can calculate the joint state of all tracks by Formula 3. Note that since the
number of states contains mostly zeros, the summation in Formula 3 is zero, when merging
the state of tracks. Therefore merging two tracks is identical to Formula 2. Similarly, we
can readily show that the merging all four tracks (or five) also gives identical results with
both approaches.
According to an embodiment, re-ordering can be used as a pre-processing step to the
encoder. In another embodiment, the re-ordering can be integrated into the encoder.
Similarly, according to an embodiment, re-ordering can be used as a post-processing step
to the decoder. In another embodiment, the re-ordering can be integrated into the decoder.
If the number of pulses on a track is not fixed, we can readily modify the number of states
formula appropriately, and still use the same encoding algorithm.
Observe that the approach presented in the section "Combining track data" and the above
method give equal results if the order of merging tracks is appropriately chosen. Likewise,
also the step-by-step and divide-and-conquer approaches give equal results. We can
therefore independently choose which approach to use in the decoder and encoder,
according to which is more practical to implement or which approach best fits the
computational constraints of the platform.
According to an embodiment, a pulse information encoder algorithm is provided, that can
be described in pseudo-code by
function state = encode(x)
1. if length of x is 1
a . if x has no pulses
i. state = 0
ii. return
b. else x has at least one pulse)
i. if the pulse(s) in x is positive
• state = 0
• return
ii. else (pulse(s) in x is negative)
• state = 1
• return
iii. end
c. end
2. else (that is, when length of x is > 1)
a . split x into two vectors xl and x2 of length Nl and N2 respectively
b. determine state of vector xl by s i = encode(xl)
c. determine state of vector x2 by s2 = encode(x2)
d. let p be the number of pulses in x and p i the number of pulses in xl
e . set n0 = 0
f. for k from 0 to pl-1
i. set n O := n O + f(k,Nl)*f(p-k,N2)
g. end
h. calculate state as s := s i + f(pl,Nl)*s2 + n O
i. return
3. end
Employing such an encoding algorithm, according to an embodiment, the pulse
information encoder is configured to divide one of the tracks into a first track partition and
into a second track partition. The pulse information encoder is configured to encode a first
substate number associated with the first partition. Furthermore, the pulse information
encoder is configured to encode a second substate number associated with the second
partition. Moreover, the pulse information encoder is configured to combine the first
substate number and the second substate number to obtain the state number.
Similarly, according to an embodiment, a the pulse information decoder algorithm is
provided that can be described in pseudo-code by:
function x = decode(s, p, N
1. if number of pulses p is 0
a . return vector x full of zeros
2. else
a . if len is 1
i . if s == 0
1. Vector x has p positive pulses at its first position
ii. else
1. Vector x has p negative pulses at its first position
iii. end
b. else
i. Choose partition lengths Nl and N2
ii. Set n O := 0 and p i := 0
iii. While n O + f(pl,Nl)*f(p-pl) < s
1. set pi := pl+1
2. set n O := n O + f(pl,Nl)*f(p-pl)
iv. end
v. set s := s - n O and p2 := p - p i
vi. set si := s / f(pl,Nl) and the remainder into s2
vii. decode first partition xl = decode(sl, pi, Nl)
viii. decode second partition x2 = decode(s2, p2, N2)
ix. merge partitions xl and x2 in to x
c. end
3. end
In an embodiment realizing the split-and-conquer approach, a pulse information decoder is
configured to generate a first substate number and a second substate number based on the
state number. The pulse information decoder is configured to decode a first group of pulse
positions of a first partition of one of the tracks based on the first substate number.
Moreover, the pulse information decoder is configured to decode a second group of pulse
positions of a second partition of the one of the tracks based on the second substate
number.
Although some aspects have been described in the context of an apparatus, it is clear that
these aspects also represent a description of the corresponding method, where a block or
device corresponds to a method step or a feature of a method step. Analogously, aspects
described in the context of a method step also represent a description of a corresponding
block or item or feature of a corresponding apparatus.
Depending on certain implementation requirements, embodiments of the invention can be
implemented in hardware or in software. The implementation can be performed using a
digital storage medium, for example a floppy disk, a DVD, a CD, a ROM, a PROM, an
EPROM, an EEPROM or a FLASH memory, having electronically readable control
signals stored thereon, which cooperate (or are capable of cooperating) with a
programmable computer system such that the respective method is performed.
Some embodiments according to the invention comprise a data carrier having
electronically readable control signals, which are capable of cooperating with a
programmable computer system, such that one of the methods described herein is
performed.
Generally, embodiments of the present invention can be implemented as a computer
program product with a program code, the program code being operative for performing
one of the methods when the computer program product runs on a computer. The program
code may for example be stored on a machine readable carrier.
Other embodiments comprise the computer program for performing one of the methods
described herein, stored on a machine readable carrier or a non-transitory storage medium.
In other words, an embodiment of the inventive method is, therefore, a computer program
having a program code for performing one of the methods described herein, when the
computer program runs on a computer.
A further embodiment of the inventive methods is, therefore, a data carrier (or a digital
storage medium, or a computer-readable medium) comprising, recorded thereon, the
computer program for performing one of the methods described herein.
A further embodiment of the inventive method is, therefore, a data stream or a sequence of
signals representing the computer program for performing one of the methods described
herein. The data stream or the sequence of signals may for example be configured to be
transferred via a data communication connection, for example via the Internet or over a
radio channel.
A further embodiment comprises a processing means, for example a computer, or a
programmable logic device, configured to or adapted to perform one of the methods
described herein.
A further embodiment comprises a computer having installed thereon the computer
program for performing one of the methods described herein.
In some embodiments, a programmable logic device (for example a field programmable
gate array) may be used to perform some or all of the functionalities of the methods
described herein. In some embodiments, a field programmable gate array may cooperate
with a microprocessor in order to perform one of the methods described herein. Generally,
the methods are preferably performed by any hardware apparatus.
The above described embodiments are merely illustrative for the principles of the present
invention. It is understood that modifications and variations of the arrangements and the
details described herein will be apparent to others skilled in the art. It is the intent,
therefore, to be limited only by the scope of the impending patent claims and not by the
specific details presented by way of description and explanation of the embodiments
herein.
Claims
An apparatus for decoding an encoded audio signal, wherein one or more tracks are
associated with the encoded audio signal, each one of the tracks having a plurality
of track positions and a plurality of pulses, wherein the apparatus comprises:
a pulse information decoder ( 1 10) for decoding a plurality of pulse positions,
wherein each one of the pulse positions indicates one of the track positions of one
of the tracks to indicate a position of one of the pulses of the track, and wherein the
pulse information decoder ( 1 10) is configured to decode the plurality of pulse
positions by using a track positions number indicating a total number of the track
positions of at least one of the tracks, a total pulses number indicating a total
number of the pulses of at least one of the tracks, and one state number; and
a signal decoder (120) for decoding the encoded audio signal by generating a
synthesized audio signal using the plurality of pulse positions and a plurality of
predictive filter coefficients being associated with the encoded audio signal.
An apparatus according to claim ,
wherein the pulse information decoder ( 110) is furthermore adapted to decode a
plurality of pulse signs using the track positions number, the total pulses number
and the state number, wherein each one of the pulse signs indicates a sign of one of
the plurality of pulses, and
wherein the signal decoder (120) is adapted to decode the encoded audio signal by
generating a synthesized audio signal furthermore using the plurality of pulse signs.
An apparatus according to claim 1 or 2, wherein the one or more tracks comprise at
least a last track and one or more other tracks, and
wherein the pulse information decoder ( 110) is adapted to generate a first substate
number and a second substate number from the state number,
wherein the pulse information decoder ( 110) is configured to decode a first group
of the pulse positions based on the first substate number, and
wherein the pulse information decoder ( 1 10) is configured to decode a second
group of the pulse positions based on the second substate number,
wherein the second group of the pulse positions only consists of pulse positions
indicating track positions of the last track, and
wherein the first group of the pulse positions only consists of pulse positions
indicating track positions of the one or more other tracks.
An apparatus according to claim 3, wherein the pulse information decoder is
configured to generate the first substate number and the second substate number by
dividing the state number by f(p , N) to obtain an integer part and a remainder as a
division result, wherein the integer part is the first substate number and wherein the
remainder is the second substate number, wherein p indicates for each one of the
one or more tracks the number of pulses, and wherein N indicates for each one of
the one or more tracks the number of track positions.
An apparatus according to one of the preceding claims, wherein the pulse
information decoder ( 110) is adapted to conduct a test comparing the state number
or an updated state number with a threshold value.
An apparatus according to claim 5, wherein the pulse information decoder ( 10) is
adapted to conduct the test by comparing, whether the state number or an updated
state number is greater than, greater than or equal to, smaller than, or smaller than
or equal to the threshold value, and wherein the pulse information decoder ( 1 10) is
furthermore adapted to update the state number or an updated state number
depending on the result of the test.
An apparatus according to claim 6, wherein the pulse information decoder ( 10) is
configured to compare the state number or the updated state number with the
threshold value for each track position of one of the plurality of tracks.
An apparatus according to one of claims 1 to 3,
wherein the pulse information decoder ( 110) is configured to divide one of the
tracks into a first track partition, comprising at least two track positions of the
plurality of track positions, and into a second track partition, comprising at least
two other track positions of the plurality of track positions,
wherein the pulse information decoder (110) is configured to generate a first
substate number and a second substate number based on the state number,
wherein the pulse information decoder ( 1 10) is configured to decode a first group
of pulse positions associated with the first track partition based on the first substate
number, and
wherein the pulse information decoder ( 110) is configured to decode a second
group of pulse positions associated with the second track partition based on the
second substate number.
9. An apparatus for encoding an audio signal, comprising:
a signal processor (210) for determining a plurality of predictive filter coefficients
being associated with the audio signal, for generating a residual signal based on the
audio signal and the plurality of predictive filter coefficients; and
a pulse information encoder (220) for encoding a plurality of pulse positions
relating to one or more tracks, to encode the audio signal, the one or more tracks
being associated with the residual signal, each one of the tracks having a plurality
of track positions and a plurality of pulses, wherein each one of the pulse positions
indicates one of the track positions of one of the tracks to indicate a position of one
of the pulses of the track, wherein the pulse information encoder (220) is
configured to encode the plurality of pulse positions by generating a state number,
such that the pulse positions can be decoded only based on the state number, a track
positions number indicating a total number of the track positions of at least one of
the tracks, and a total pulses number indicating a total number of the pulses of at
least one of the tracks.
10. An apparatus for encoding according to claim 9, wherein the pulse information
encoder (220) is adapted to encode a plurality of pulse signs, wherein each one of
the pulse signs indicates a sign of one of the plurality of pulses, wherein the pulse
information encoder (220) is configured to encode the plurality of pulse signs by
generating the state number, such that the pulse signs can be decoded only based on
the state number, the track positions number indicating a total number of the track
positions of at least one of the tracks, and the total pulses number.
An apparatus according to claim 9 or 10, wherein the pulse information encoder
(220) is configured to add an integer value to an intermediate number for each pulse
at a track position for each track position of one of the tracks, to obtain the state
number.
An apparatus according to claim 9 or 10,
wherein the pulse information encoder (220) is configured to divide one of the
tracks into a first track partition, comprising at least two track positions of the
plurality of track positions, and into a second track partition, comprising at least
two other track positions of the plurality of track positions,
wherein the pulse information encoder (220) is configured to encode a first substate
number associated with the first partition,
wherein the pulse information encoder (220) is configured to encode a second
substate number associated with the second partition, and
wherein the pulse information encoder (220) is configured to combine the first
substate number and the second substate number to obtain the state number.
Method for decoding an encoded audio signal, wherein one or more tracks are
associated with the encoded audio signal, each one of the tracks having a plurality
of track positions and a plurality of pulses, wherein the method comprises:
decoding a plurality of pulse positions, wherein each one of the pulse positions
indicates one of the track positions of one of the tracks to indicate a position of one
of the pulses of the track, and wherein the plurality of pulse positions are decoded
by using a track positions number indicating a total number of the track positions of
at least one of the tracks, a total pulses number indicating a total number of the
pulses of at least one of the tracks, and one state number; and
decoding the encoded audio signal by generating a synthesized audio signal using
the plurality of pulse positions and a plurality of predictive filter coefficients being
associated with the encoded audio signal.
14. Method for encoding an audio signal, comprising:
determining a plurality of predictive filter coefficients being associated with the
audio signal, for generating a residual signal based on the audio signal and the
plurality of predictive filter coefficients; and
encoding a plurality of pulse positions relating to one or more tracks, to encode the
audio signal, the one or more tracks being associated with the residual signal, each
one of the tracks having a plurality of track positions and a plurality of pulses,
wherein each one of the pulse positions indicates one of the track positions of one
of the tracks to indicate a position of one of the pulses of the track, wherein the
plurality of pulse positions are encoded by generating a state number, such that the
pulse positions can be decoded only based on the state number, a track positions
number indicating a total number of the track positions of at least one of the tracks,
and a total pulses number indicating a total number of the pulses of at least one of
the tracks.
15. A computer program implementing the method of claim 13 or 14 when being
executed on a computer or signal processor.

Documents

Orders

Section Controller Decision Date

Application Documents

# Name Date
1 2511-KOLNP-2013-(12-08-2013)FORM-5.pdf 2013-08-12
1 2511-KOLNP-2013-RELEVANT DOCUMENTS [08-09-2023(online)].pdf 2023-09-08
2 2511-KOLNP-2013-(12-08-2013)FORM-3.pdf 2013-08-12
2 2511-KOLNP-2013-RELEVANT DOCUMENTS [09-09-2022(online)].pdf 2022-09-09
3 2511-KOLNP-2013-IntimationOfGrant02-07-2020.pdf 2020-07-02
3 2511-KOLNP-2013-(12-08-2013)FORM-2.pdf 2013-08-12
4 2511-KOLNP-2013-PatentCertificate02-07-2020.pdf 2020-07-02
4 2511-KOLNP-2013-(12-08-2013)FORM-1.pdf 2013-08-12
5 2511-KOLNP-2013-Annexure [23-06-2020(online)].pdf 2020-06-23
5 2511-KOLNP-2013-(12-08-2013)CORRESPONDENCE.pdf 2013-08-12
6 2511-KOLNP-2013-FORM 13 [23-06-2020(online)].pdf 2020-06-23
6 2511-KOLNP-2013-(12-08-2013)AMENDED CLAIMS.pdf 2013-08-12
7 2511-KOLNP-2013-PETITION UNDER RULE 137 [23-06-2020(online)].pdf 2020-06-23
7 2511-KOLNP-2013-(12-08-2013)-PCT SEARCH REPORT & OTHERS.pdf 2013-08-12
8 2511-KOLNP-2013-Written submissions and relevant documents [22-06-2020(online)].pdf 2020-06-22
8 2511-KOLNP-2013-(12-08-2013)-OTHERS.pdf 2013-08-12
9 2511-KOLNP-2013-Information under section 8(2) [04-03-2020(online)].pdf 2020-03-04
9 2511-KOLNP-2013.pdf 2013-08-26
10 2511-KOLNP-2013-FORM-18.pdf 2013-09-30
10 2511-KOLNP-2013-Proof of Right [04-03-2020(online)]-1.pdf 2020-03-04
11 2511-KOLNP-2013-(29-10-2013)-CORRESPONDENCE.pdf 2013-10-29
11 2511-KOLNP-2013-Proof of Right [04-03-2020(online)].pdf 2020-03-04
12 2511-KOLNP-2013-(29-10-2013)-ANNEXURE TO FORM 3.pdf 2013-10-29
12 2511-KOLNP-2013-Response to office action [04-03-2020(online)].pdf 2020-03-04
13 2511-KOLNP-2013-(06-11-2013)-PA.pdf 2013-11-06
13 2511-KOLNP-2013-Written submissions and relevant documents [04-03-2020(online)].pdf 2020-03-04
14 2511-KOLNP-2013-(06-11-2013)-CORRESPONDENCE.pdf 2013-11-06
14 2511-KOLNP-2013-PETITION UNDER RULE 137 [31-01-2020(online)].pdf 2020-01-31
15 2511-KOLNP-2013-(06-11-2013)-ASSIGNMENT.pdf 2013-11-06
15 2511-KOLNP-2013-Correspondence to notify the Controller (Mandatory) [02-01-2020(online)].pdf 2020-01-02
16 2511-KOLNP-2013-(13-12-2013)-FORM-3.pdf 2013-12-13
16 2511-KOLNP-2013-ExtendedHearingNoticeLetter-(DateOfHearing-20-01-2020).pdf 2019-12-26
17 2511-KOLNP-2013-2. Marked Copy under Rule 14(2) (MANDATORY) [18-12-2019(online)].pdf 2019-12-18
17 2511-KOLNP-2013-(13-12-2013)-CORRESPONDENCE.pdf 2013-12-13
18 2511-KOLNP-2013-Retyped Pages under Rule 14(1) (MANDATORY) [18-12-2019(online)].pdf 2019-12-18
18 Other Patent Document [12-07-2016(online)].pdf 2016-07-12
19 2511-KOLNP-2013-PETITION UNDER RULE 137 [17-12-2019(online)].pdf 2019-12-17
19 Other Patent Document [24-08-2016(online)].pdf 2016-08-24
20 2511-KOLNP-2013-REQUEST FOR ADJOURNMENT OF HEARING UNDER RULE 129A [17-12-2019(online)].pdf 2019-12-17
20 Other Patent Document [21-03-2017(online)].pdf 2017-03-21
21 2511-KOLNP-2013-Correspondence to notify the Controller (Mandatory) [27-11-2019(online)].pdf 2019-11-27
21 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [14-09-2017(online)].pdf_16.pdf 2017-09-14
22 2511-KOLNP-2013-HearingNoticeLetter-(DateOfHearing-18-12-2019).pdf 2019-11-21
22 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [14-09-2017(online)].pdf 2017-09-14
23 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [20-03-2019(online)].pdf 2019-03-20
23 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [24-10-2017(online)].pdf 2017-10-24
24 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [14-03-2018(online)].pdf 2018-03-14
24 2511-KOLNP-2013-ABSTRACT [05-02-2019(online)].pdf 2019-02-05
25 2511-KOLNP-2013-CLAIMS [05-02-2019(online)].pdf 2019-02-05
25 2511-KOLNP-2013-FER.pdf 2018-05-07
26 2511-KOLNP-2013-CORRESPONDENCE [05-02-2019(online)].pdf 2019-02-05
26 2511-KOLNP-2013-FORM 4(ii) [31-10-2018(online)].pdf 2018-10-31
27 2511-KOLNP-2013-DRAWING [05-02-2019(online)].pdf 2019-02-05
27 2511-KOLNP-2013-PETITION UNDER RULE 137 [05-02-2019(online)].pdf 2019-02-05
28 2511-KOLNP-2013-FER_SER_REPLY [05-02-2019(online)].pdf 2019-02-05
28 2511-KOLNP-2013-OTHERS [05-02-2019(online)].pdf 2019-02-05
29 2511-KOLNP-2013-FER_SER_REPLY [05-02-2019(online)].pdf 2019-02-05
29 2511-KOLNP-2013-OTHERS [05-02-2019(online)].pdf 2019-02-05
30 2511-KOLNP-2013-DRAWING [05-02-2019(online)].pdf 2019-02-05
30 2511-KOLNP-2013-PETITION UNDER RULE 137 [05-02-2019(online)].pdf 2019-02-05
31 2511-KOLNP-2013-CORRESPONDENCE [05-02-2019(online)].pdf 2019-02-05
31 2511-KOLNP-2013-FORM 4(ii) [31-10-2018(online)].pdf 2018-10-31
32 2511-KOLNP-2013-CLAIMS [05-02-2019(online)].pdf 2019-02-05
32 2511-KOLNP-2013-FER.pdf 2018-05-07
33 2511-KOLNP-2013-ABSTRACT [05-02-2019(online)].pdf 2019-02-05
33 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [14-03-2018(online)].pdf 2018-03-14
34 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [20-03-2019(online)].pdf 2019-03-20
34 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [24-10-2017(online)].pdf 2017-10-24
35 2511-KOLNP-2013-HearingNoticeLetter-(DateOfHearing-18-12-2019).pdf 2019-11-21
35 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [14-09-2017(online)].pdf 2017-09-14
36 2511-KOLNP-2013-Information under section 8(2) (MANDATORY) [14-09-2017(online)].pdf_16.pdf 2017-09-14
36 2511-KOLNP-2013-Correspondence to notify the Controller (Mandatory) [27-11-2019(online)].pdf 2019-11-27
37 2511-KOLNP-2013-REQUEST FOR ADJOURNMENT OF HEARING UNDER RULE 129A [17-12-2019(online)].pdf 2019-12-17
37 Other Patent Document [21-03-2017(online)].pdf 2017-03-21
38 2511-KOLNP-2013-PETITION UNDER RULE 137 [17-12-2019(online)].pdf 2019-12-17
38 Other Patent Document [24-08-2016(online)].pdf 2016-08-24
39 2511-KOLNP-2013-Retyped Pages under Rule 14(1) (MANDATORY) [18-12-2019(online)].pdf 2019-12-18
39 Other Patent Document [12-07-2016(online)].pdf 2016-07-12
40 2511-KOLNP-2013-(13-12-2013)-CORRESPONDENCE.pdf 2013-12-13
40 2511-KOLNP-2013-2. Marked Copy under Rule 14(2) (MANDATORY) [18-12-2019(online)].pdf 2019-12-18
41 2511-KOLNP-2013-(13-12-2013)-FORM-3.pdf 2013-12-13
41 2511-KOLNP-2013-ExtendedHearingNoticeLetter-(DateOfHearing-20-01-2020).pdf 2019-12-26
42 2511-KOLNP-2013-(06-11-2013)-ASSIGNMENT.pdf 2013-11-06
42 2511-KOLNP-2013-Correspondence to notify the Controller (Mandatory) [02-01-2020(online)].pdf 2020-01-02
43 2511-KOLNP-2013-(06-11-2013)-CORRESPONDENCE.pdf 2013-11-06
43 2511-KOLNP-2013-PETITION UNDER RULE 137 [31-01-2020(online)].pdf 2020-01-31
44 2511-KOLNP-2013-(06-11-2013)-PA.pdf 2013-11-06
44 2511-KOLNP-2013-Written submissions and relevant documents [04-03-2020(online)].pdf 2020-03-04
45 2511-KOLNP-2013-(29-10-2013)-ANNEXURE TO FORM 3.pdf 2013-10-29
45 2511-KOLNP-2013-Response to office action [04-03-2020(online)].pdf 2020-03-04
46 2511-KOLNP-2013-Proof of Right [04-03-2020(online)].pdf 2020-03-04
46 2511-KOLNP-2013-(29-10-2013)-CORRESPONDENCE.pdf 2013-10-29
47 2511-KOLNP-2013-FORM-18.pdf 2013-09-30
47 2511-KOLNP-2013-Proof of Right [04-03-2020(online)]-1.pdf 2020-03-04
48 2511-KOLNP-2013-Information under section 8(2) [04-03-2020(online)].pdf 2020-03-04
48 2511-KOLNP-2013.pdf 2013-08-26
49 2511-KOLNP-2013-(12-08-2013)-OTHERS.pdf 2013-08-12
49 2511-KOLNP-2013-Written submissions and relevant documents [22-06-2020(online)].pdf 2020-06-22
50 2511-KOLNP-2013-(12-08-2013)-PCT SEARCH REPORT & OTHERS.pdf 2013-08-12
50 2511-KOLNP-2013-PETITION UNDER RULE 137 [23-06-2020(online)].pdf 2020-06-23
51 2511-KOLNP-2013-FORM 13 [23-06-2020(online)].pdf 2020-06-23
51 2511-KOLNP-2013-(12-08-2013)AMENDED CLAIMS.pdf 2013-08-12
52 2511-KOLNP-2013-Annexure [23-06-2020(online)].pdf 2020-06-23
52 2511-KOLNP-2013-(12-08-2013)CORRESPONDENCE.pdf 2013-08-12
53 2511-KOLNP-2013-PatentCertificate02-07-2020.pdf 2020-07-02
53 2511-KOLNP-2013-(12-08-2013)FORM-1.pdf 2013-08-12
54 2511-KOLNP-2013-IntimationOfGrant02-07-2020.pdf 2020-07-02
54 2511-KOLNP-2013-(12-08-2013)FORM-2.pdf 2013-08-12
55 2511-KOLNP-2013-(12-08-2013)FORM-3.pdf 2013-08-12
55 2511-KOLNP-2013-RELEVANT DOCUMENTS [09-09-2022(online)].pdf 2022-09-09
56 2511-KOLNP-2013-(12-08-2013)FORM-5.pdf 2013-08-12
56 2511-KOLNP-2013-RELEVANT DOCUMENTS [08-09-2023(online)].pdf 2023-09-08

Search Strategy

1 SearchStrategy_07-03-2018.pdf

ERegister / Renewals

3rd: 08 Aug 2020

From 10/02/2014 - To 10/02/2015

4th: 08 Aug 2020

From 10/02/2015 - To 10/02/2016

5th: 08 Aug 2020

From 10/02/2016 - To 10/02/2017

6th: 08 Aug 2020

From 10/02/2017 - To 10/02/2018

7th: 08 Aug 2020

From 10/02/2018 - To 10/02/2019

8th: 08 Aug 2020

From 10/02/2019 - To 10/02/2020

9th: 08 Aug 2020

From 10/02/2020 - To 10/02/2021

10th: 29 Jan 2021

From 10/02/2021 - To 10/02/2022

11th: 29 Jan 2022

From 10/02/2022 - To 10/02/2023

12th: 25 Jan 2023

From 10/02/2023 - To 10/02/2024

13th: 27 Jan 2024

From 10/02/2024 - To 10/02/2025

14th: 29 Jan 2025

From 10/02/2025 - To 10/02/2026