U.S. patent application number 11/658667 was filed with the patent office on 2008-12-25 for encoding and decoding method, and encoding and decoding devices with a two-stage error protection process.
Invention is credited to Jurgen Pandel, Marcel Wagner.
Application Number | 20080320358 11/658667 |
Document ID | / |
Family ID | 35185121 |
Filed Date | 2008-12-25 |
United States Patent
Application |
20080320358 |
Kind Code |
A1 |
Pandel; Jurgen ; et
al. |
December 25, 2008 |
Encoding and Decoding Method, and Encoding and Decoding Devices
with a Two-Stage Error Protection Process
Abstract
An encoding method for a series of data packets transmitted in
the framework of a combined streaming and downloading application
by a two-stage error protection process and only one unidirectional
transmission channel. According to said method, a partial block of
successive data packets is protected against at least some of the
transmission errors occurring during streaming with the aid of a
first error protection process while all data packets are protected
against the transmission errors remaining after streaming is
completed with the aid of a second error protection process. In a
decoding method by which a series of data packets that are encoded
according to the encoding method are decoded. Also disclosed is an
encoding and decoding device for carrying out the method.
Inventors: |
Pandel; Jurgen;
(Feldkirchen-Westerham, DE) ; Wagner; Marcel;
(Munchen, DE) |
Correspondence
Address: |
STAAS & HALSEY LLP
SUITE 700, 1201 NEW YORK AVENUE, N.W.
WASHINGTON
DC
20005
US
|
Family ID: |
35185121 |
Appl. No.: |
11/658667 |
Filed: |
June 29, 2005 |
PCT Filed: |
June 29, 2005 |
PCT NO: |
PCT/EP05/53076 |
371 Date: |
January 26, 2007 |
Current U.S.
Class: |
714/752 ;
714/E11.032 |
Current CPC
Class: |
H04L 1/0065 20130101;
H04L 1/0041 20130101; H04L 1/0045 20130101 |
Class at
Publication: |
714/752 ;
714/E11.032 |
International
Class: |
H03M 13/05 20060101
H03M013/05; G06F 11/10 20060101 G06F011/10 |
Foreign Application Data
Date |
Code |
Application Number |
Jul 27, 2004 |
DE |
10 2004 036 383.8 |
Claims
1-16. (canceled)
17. An encoding method for transmitting a series of data packets
via at least one unidirectional transmission channel within the
framework of a combined streaming and downloaded application using
a 2-stage error protection process, comprising: dividing the series
of data packets into partial blocks, each being formed from a
plurality of successive data packets occurring during streaming
with the aid of a first error protection process (FS1), b) all data
packets (D1, . . . , DN) are protected against transmission errors
remaining after streaming is completed with the aid of a second
error protection process (FS2) and the following steps are
performed for transmission of a series of data packets: c) several
successive data packets (D1, . . . , DN) are combined in each case
to form a partial block (T1, . . . , TM)]; forming an error
protection block for each partial block with the aid of a first
error protection process that protects against at least one type of
transmission errors occurring during streaming, each error
protection block being formed in such a way that: each data packet
is encoded to form a corresponding error detection packet that
represents the data packet; and each error protection block
includes at least one additional packet serving as a redundant
block; sequentially transmitting the error protection blocks in a
time sequence corresponding to a playback order of the data packets
represented by the error detection packets; combining all error
detection packets to form a complete block; applying a second error
protection process to the complete block to form a complete error
protection block; and transmitting the complete error protection
block after all error protection blocks are transmitted.
18. The method as claimed in claim 17, wherein at least one of the
following error protection algorithms is used for the first and/or
second error protection process: EXOR parity code; Reed-Solomon
code; and Low density parity check code.
19. The method as claimed in claim 17, wherein the quantity of
error detection packets in the partial block is determined as a
function of a specifiable delay, taking account of a transmission
rate, a redundant block length and an error detection packet
length.
20. The method as claimed in claim 17, wherein a characteristic
value is created for each data packet by a statistical method, the
characteristic value represents an importance of the respective
data packet with respect to at least one other data packet, the
quantity of data packets for the partial block is selected in such
a way that a sum of characteristic values of successive data
packets within the respective partial block reaches at least one
specifiable threshold.
21. The method as claimed in claim 17, wherein the error protection
block is created in such a way that within an error protection
block the encoded data packets are provided with unequal error
protection.
22. The method as claimed in claim 21, wherein error detection data
packets containing important information have more error
protection, and error detection data packets containing less
important information have less error protection.
23. The method as claimed claim 17, wherein the error protection
block is created in such a way that a specifiable number of
erroneous error detection packets can be corrected within the error
protection block by the first error protection process.
24. The method as claimed in claim 17, wherein at least one
erroneous error detection packet within the error protection block
can be corrected by the first error protection process.
25. The method as claimed in claim 17, wherein at least two
successive erroneous error detection packets within the error
protection block can be corrected by the first error protection
process.
26. The method as claimed in claim 17, wherein the complete error
protection block is created in such a way that a greater number of
erroneous error detection data packets can be corrected with the
second error protection process than with the first error
protection process.
27. The method as claimed in claim 17, wherein the complete error
protection block is created in such a way that it has segments
formed by reordering error detection packets, each segment being
formed such that errors are separately corrected within the
segment.
28. The method as claimed in claim 17, wherein during the
transmission of the error protection blocks, the error detection
packets are transmitted via a first transmission channel and the
redundant blocks are transmitted via a second transmission
channel.
29. The method as claimed in claim 28, wherein the error detection
packets and the redundant blocks are transmitted in synchronization
in such a way that the redundant block of the respective error
protection block is present at a receiver not later than a time of
reception of a last error detection packet of the respective error
protection block.
30. The method as claimed in claim 18, wherein the quantity of
error detection packets in the partial block is determined as a
function of a specifiable delay, taking account of a transmission
rate, a redundant block length and an error detection packet
length.
31. The method as claimed in claim 18, wherein a characteristic
value is created for each data packet by a statistical method, the
characteristic value represents an importance of the respective
data packet with respect to at least one other data packet, the
quantity of data packets for the partial block is selected in such
a way that a sum of characteristic values of successive data
packets within the respective partial block reaches at least one
specifiable threshold.
32. The method as claimed in claim 31, wherein the error protection
block is created in such a way that within an error protection
block the encoded data packets are provided with unequal error
protection.
33. The method as claimed in claim 32, wherein error detection data
packets containing important information have more error
protection, and error detection data packets containing less
important information have less error protection.
34. A decoding method comprising decoding a sequence of error
detection packets encoded in accordance with the encoding method
according to claim 17.
35. An encoding device for a series of data packets transmitted via
at least one unidirectional transmission channel within the
framework of a combined streaming and downloaded application using
a 2-stage error protection process, comprising: a division unit to
divide a series of data packets into partial blocks, each being
formed from a plurality of successive data packets; a block forming
unit to form an error protection block for each partial block with
the aid of a first error protection process that protects against
at least one type of transmission error occurring during streaming,
each error protection block being formed in such a way that: each
data packet is encoded to form a corresponding error detection
packet that represents the data packet; and each error protection
block includes at least one additional packet serving as a
redundant block; a first transmission unit to sequentially transmit
the error protection blocks in a time sequence corresponding to a
playback order of the data packets represented by the error
detection packets; a combination unit to combine all error
detection packets to form a complete block; a correction unit to
apply a second error protection process to the complete block to
form a complete error protection block; and a second transmission
unit to transmit the complete error protection block after all
error protection blocks are transmitted.
36. A decoding device comprising a decoder to decode a sequence of
error detection packets encoded according to the encoding method
according to claim 17.
Description
[0001] The invention relates to an encoding method according to the
preamble of claim 1 and a decoding method according to the generic
part of claim 15. Furthermore, the invention relates to an encoding
device according to the generic part in claim 16 and a decoding
device according to the generic part in claim 17.
[0002] Internet-based applications have become increasingly popular
in recent years. One class of applications is streaming
applications. A user can hereby access multimedia content online
with the aid of a streaming protocol. Examples of multimedia
content are text, graphics, music, video or a mixture of same. A
video clip with music is an example of multimedia content. In this
context, online means that immediately after receipt of the first
packets at the user, said packets are played back, e.g. at a
loudspeaker. A complete downloading, for example of the video clip,
is not necessary. In addition to the possibility that a content
server provides the multimedia content for retrieval, the
multimedia content can be recorded and edited in real time and
forwarded directly to a user via a streaming application without
buffer storage on a so-called content server. Multimedia content of
this kind recorded and transmitted in real time is, for example, a
radio program (web radio). Saving the multimedia content, e.g. on a
content server, is not necessary in this case.
[0003] Furthermore, download applications such as the loading of
MP3 pieces of music or MPEG-2 feature films are very popular. In
this case, the multimedia content is encoded using a standard
compression method according to MP3 or MPEG-2 video for instance,
and provided on a content server for downloading. First, the user
loads the complete multimedia content onto his device, e.g. onto
his computer or mobile phone and after completion of the download
process this media content can be played back, e.g. on a
monitor.
[0004] Furthermore, hybrids of streaming and of the download
application are also discussed. For example, with a music
distribution service, a user can select a piece of music by using
his device, his mobile phone for example, and load it on to his
device by payment of a purchase price. In this way, the user is
able to listen to the piece of music during the download process
and then after it has been loaded on to his device he is able to
play back the complete piece of music as often as required. The
user hereby receives the impression that the piece of music is
streamed, whereas in fact the complete piece of music is
nevertheless present on his device after completion of the
streaming process. With this hybrid, a point-to-point connection
currently exists between the device of the user and the content
server.
[0005] In addition to this hybrid streaming and download
application, point-to-multipoint connections should also be
possible. A point-to-multipoint connection is also known as
"broadcast" or "multicast" In the following; this hybrid is
referred to as a broadcast application. With this application, the
same multimedia content is available to several users at the same
time. An example of this is a music video that is broadcast live to
the user and may be recorded.
[0006] In addition to an excellent picture and sound quality, the
user of a broadcast application of this kind also expects no
transmission errors to occur within the multimedia content. Despite
expensive error protection processes, residual errors in the
physical layer and radio link layer occur during the transmission
of data packets via mobile radio channels. A typical value for a
residual error is approximately 1%. Whereas data packets with
transmission errors transmitted using a point-to-point connection
can be repeated with the aid of an ARQ (Automatic Repeat Request)
process, this is generally not economically feasible with broadcast
and multicast applications, so that data packets with errors are
received. Therefore, with these broadcast applications, the
multimedia content is transmitted by means of a unidirectional
transmission channel and a return channel is not available. A
broadcast application of this kind is known for example from VHF
(radio technology). With the use of the IP protocol (Internet
Protocol), data packets containing errors also lead to the complete
data packets being lost which means that the multimedia content
cannot be played back correctly.
[0007] In addition to data transmission containing errors via
mobile radio channels, data packets losses can also occur due to a
radio cell change. In individual cases, an interruption in data
transmission of approximately 10 seconds can occur during a radio
cell change. Whilst the data packets for purely broadcast download
applications can be reconstructed with the aid of suitable measures
such as interleaving, even where there are long interruptions, this
method cannot be applied for streaming applications because of the
time delay. A number of processes are known for reconstructing data
packets that contain errors or have been lost, such as are given in
[1-5].
[0008] The object underlying the invention is to specify an
encoding and decoding method and an encoding device and decoding
device which provide efficient error protection for applications
with common streaming and download functionality with only a
unidirectional transmission channel in a simple and efficient
manner.
[0009] This object is achieved on the basis of the encoding method
according to the preamble of claim 1 by means of the characterizing
features of said claim, and on the basis of the decoding method
according to the generic part in claim 15 by means of the
characterizing features of said claim. Furthermore, this object is
achieved on the basis of the encoding device according to the
generic part in claim 16 by the characterizing features of said
claim, and on the basis of the decoding device according to the
generic description in claim 17 by the characterizing features of
said claim.
[0010] With an encoding method for transmitting a series of data
packets via at least one unidirectional transmission channel within
the framework of a combined streaming and downloading application
by means of a two-stage error protection process, a partial block
of successive data packets is protected against at least part of
the transmission errors that occur during streaming with the aid of
a first error protection process and with the aid of second error
protection process all data packets are protected against
transmission errors remaining after completion of the
streaming.
[0011] On the one hand, the method according to the invention
enables the playback of a series of data packets during streaming.
This guarantees, with the aid of a first error protection process,
that at least part of the transmission errors caused by the
transmission can be corrected and thus at least a part of the data
packets can be reconstructed without errors. Thus, despite errors
in transmission, the playback of at least part of the data packets
is guaranteed.
[0012] Furthermore, all data packets are available in reconstructed
form after completion of the streaming. This corresponds to the
download of the series of data packets. With the aid of the second
error protection process, those reconstructed data packets that
could not be reconstructed error free by the first error protection
process can be corrected. This means that a user can play back the
data packets during the streaming, e.g. as a piece of music, and
after completion of the streaming these data packets that sometimes
still contain faults can be reconstructed error free for output at
a later point in time, e.g. through a loudspeaker.
[0013] The method according to the invention is advantageous in
practice, as, on one hand, no return channel is required for
transmission and therefore the inventive method can be used for a
point-to-multipoint connection. On the other hand, the two-stage
error protection process, i.e. the first and second error
protection process, means that a first number of errors per partial
block can be corrected by the first error protection process and
that only those errors that could not be removed by the first error
protection process, such as longer burst of errors, have to be
improved using the second error protection.
[0014] In a preferred embodiment, in order to transmit the series
of data packets, several successive data packets are combined to
form a partial block, with an error protection block being created
for each partial block with the aid of the first error protection
process in such a way that each error protection block consists of
several error protection packets, that each error protection block
represents at least one error protection packet, an encoded data
packet and at least one other error protection packet represents a
redundant block, and that an encoded data packet is formed per data
packet, the error protection blocks are transmitted sequentially in
the time sequence in which the associated data packets are
temporally played back, the encoded data packets are combined to
form a complete block, a second complete error protection block is
created for the complete block with the aid of the second error
protection process and the complete error protection block is
transmitted after transmission of all the error protection blocks
belonging to the series.
[0015] By using this preferred embodiment, the method according to
the invention can be implemented in several steps in a simple
manner, e.g. with the aid of an encoding device.
[0016] At least one of the following error protection algorithms,
EXOR parity code, Reed Solomon code and /or low density parity
check codes is preferably used for the first and/or second error
protection process. With the aid of at least one of these error
protection algorithms, the first and/or second error protection
process can be implemented in an advantageous manner.
[0017] If a number of packets of data packets of the partial block
are determined as a function of a specifiable delay, taking account
of a transmission rate, a redundant block length and an encoded
data packet length, the number of packets can be adjusted to
achieve a minimum delay for the playback of data packets, such as a
piece of music for instance.
[0018] In an alternative variant, a characteristic value is created
for each data packet using a statistical method, with the
characteristic value representing the importance of the respective
data packet in respect of at least one other data packet, and a
number of packets of data packets being created for the partial
block in such a way that a sum of characteristic values of
successive data packets within the respective partial block reaches
at least one specifiable threshold. This enables a small number of
data packets with particularly important information and a larger
number of data packets with unimportant information to be combined
in a partial block. If, for example, a redundant block of the same
length is created for all partial blocks, partial blocks with a
lower number of packets of data packets are better protected
against errors than partial blocks with a larger number of packets
of data packets. For example, an important data packet receives
packet information that is required for all data packets for
decoding purposes.
[0019] The data protection block is preferably created in such a
way that the encoded data packets within the error protection block
are provided with unequal error protection. In this way, one or
more encoded data packets comprise more error protection than other
encoded data packets of the same error protection block. In the
event of encoded data packets being transmitted with errors,
encoded data packets with more error protection can be corrected
and other encoded data packets with less error protection can be
subjected to a non error-free reconstruction.
[0020] Additionally, encoded data packets containing important
information can be provided with more error protection and other
encoded data packets containing less important information can be
provided with less error protection. This means that at least the
encoded data packets containing the important information can be
reconstructed in an error-free manner.
[0021] In a particularly preferred embodiment, the error protection
block is created in such a way that a specifiable number of error
blocks of erroneous error protection packets within the respective
error protection block can be corrected by means of the respective
error protection block. In this way, a correction characteristic of
the error protection block can be individually matched, e.g. to an
error susceptibility of the transmission channel.
[0022] In an alternative embodiment, at least one erroneous error
protection packet within the error protection block can be
corrected by means of the respective error protection block. In
this way, a minimum correction property of the error correction
block can be guaranteed.
[0023] In a preferred alternative variant, at least two successive
erroneous error protection packets within the error protection
block can be corrected by means of the respective error correction
block. Many transmission systems, such as UMTS (Universal Mobile
Telecommunications System) use a fault correction and interleaving
process to avoid transmission errors. If, however, this error
protection fails, e.g. due to too many errors, two or more encoded
data packets in succession can be erroneous. Therefore, this
embodiment represents a particularly advantageous variant taking
account of common transmission systems, such as UMTS.
[0024] If the complete error protection block is created in such a
way that a larger number of erroneous encoded data packets within
the error protection block can be corrected than by means of the
first error protection process, it is guaranteed that a larger
number of erroneous encoded data packets, that could not be
corrected by the first error protection process, are reconstructed
in an error-free manner with the aid of the complete error
protection block after complete transmission of all encoded data
packets.
[0025] Advantageously, the complete error protection block is
created in such a way that, with the help of several segments of
the complete error protection block, different subsets of encoded
data packets can be corrected. In this way, error protection
algorithms that have a limitation with respect to the number of
data packets can also be used for the second error protection
process. For example, only 255 encoded data packets can be
protected by a Reed-Solomon code in the Galoisfeld "2.sup.8". By
dividing the encoded data packets into several subsets, e.g. into
four subsets each with 200 encoded data packets, the aforementioned
condition can be complied with by the Reed-Solomon code.
[0026] In a preferred variant, the encoded data packets when
transmitting the error protection blocks are transmitted via a
first transmission channel and the redundant blocks via a second
transmission channel. This enables the encoded data packets and the
complete error protection block of the first transmission channel
to be processed with a less complex download application, and the
encoded data packets, the redundant blocks and the complete error
protection block of both transmission channels to be processed with
a more complex application.
[0027] In a particularly preferred embodiment, the encoded data
packets and the redundant blocks are transmitted synchronized in
such a way that the redundant block of the respective error
protection block is present at the receiver not later than the
point in time at which the last encoded data packet of the
respective error protection block also arrives at the receiver.
This guarantees that where two transmission channels are used there
is a minimum delay, for the playback of the data packets during the
streaming.
[0028] Furthermore, the invention relates to a decoding method by
means of which a sequence of encoded data packets encoded according
to an encoding method can be decoded. In this way, data packets
encoded with the method according to the invention can be
reconstructed.
[0029] Furthermore, the invention relates to an encoding device
with means for performing an encoding process. This enables the
encoding method according to the invention to be implemented and
executed in the encoding device, especially a mobile radio device,
a portable device and/or a stationary computing device.
[0030] Furthermore the invention relates to a decoding device with
means for implementing a decoding method. In this way, the decoding
method according to the invention can be implemented and executed
in the decoding device, particularly a mobile radio device, a
portable device and/or a stationary computing device.
[0031] Further details and advantages are explained in more detail
with the aid of FIGS. 1 to 6, in which;
[0032] FIG. 1a-1e shows a first exemplary embodiment with several
data packets for implementing the individual process steps of the
encoding method according to the invention.
[0033] FIG. 2 shows a creation of a complete error protection block
with various segments of the complete error protection block
protecting different subsets of encoded data packets.
[0034] FIG. 3 shows a transmission of encoded data packets via a
first transmission channel and of redundant blocks via a second
transmission channel.
[0035] FIG. 4 shows a flow diagram showing an example of the
process steps at the receiver end for decoding the received encoded
data packets and reconstructing the data packets.
[0036] FIG. 5 shows an encoding device for performing an encoding
process, a transmission medium and a decoding device for performing
a decoding process.
[0037] FIG. 6 shows a flow diagram showing the process steps of the
encoding method according to the invention.
[0038] Elements with the same function and method of operation are
given the same reference characters in FIGS. 1 to 6.
[0039] The individual process steps of the method according to the
invention are explained in more detail in the following with the
aid of FIGS. 1a to 1e. FIG. 6 shows the process steps in the form
of a flow diagram. In a first exemplary embodiment, a music video
clip is being transmitted from a video server to a mobile terminal.
The music video clip according to FIG. 1a consists of N=800 data
packets D1, . . . , D800=DN, with it being initially assumed that
all data packets D1, . . . , D800 have the same data packet length
PL. A data packet D1, . . . , D800, for example, consists of a
number of bits or bytes, e.g. a data packet length PL of 320
bytes.
[0040] In a first process step V1, several successive data packets
D1, . . . , DN are combined to form a partial block T1, . . . , TM
in each instance. In FIG. 1a, every 40 data packets form a partial
block, for example data packets D41, . . . , D80 form partial block
T2. In this exemplary embodiment, 40 data packets are always
combined to form a partial block. A number of packets L1, . . . ,
LM, that give the number of data packets contained for each partial
block T1, . . . , TM, therefore amounts to 40, i.e. L1=L2=. . .
=L20=40. However, in general any number of data packets D1, . . . ,
DN can be combined to form a partial block T1, . . . , TM, with it
being possible for this number of packets L1, . . . , LM to vary
from partial block to partial block. After completion of this
process step, all data packets D1, . . . , DN are assigned to a
partial block T1, . . . , TM.
[0041] In a second processing step V2, an error protection block
F1, . . . , FM is formed for each partial block T1, . . . , TM with
the aid of a first error protection process FS1. A plurality of
systematic and non-systematic error protection algorithms (codes)
for use as an error protection process are known from the prior
art, [1-5] for example. In this case, the first error protection
process FS1 can correspond to an EXOR parity code, a Reed-Solomon
code (RS) or also a low density parity check code. After encoding
with the aid of the first error protection process FS1, an error
protection block F1, . . . , F20 contains, as shown in FIG. 1b, 40
encoded data packets C1, . . . , C800 and a redundant block R1, . .
. , R20. In this process, a data packet D1, . . . , DN is assigned
each encoded data packet C1, . . . , CN. In this exemplary
embodiment, the redundant blocks R1, . . . , R20 each contains 320
bytes. The encoded data packets C1, . . . , C800 and the redundant
blocks R1, . . . , R20 are also designated as error protection
packets. Therefore, for example, an erroneous error protection
packet can be corrected within the error protection block F1, . . .
, F20.
[0042] In practice, the use of a systematic error protection
algorithm is appropriate for the first error protection process
FS1, because in this way data packets D1, . . . , DN appear
unchanged in the encoded data packets C1, . . . , CN. On the other
hand, for non-systematic codes, an encoding of data packets D1, . .
. , DM is performed in such a way that a binary content of the
encoded data packet C1, . . . , CN does not correspond to the
binary content of the respective data packet D1, . . . , DN. When
systematic error protection algorithms are used, it is advantageous
that a receiver can, in a case where no error occurs in the
transmission of the encoded data packets C1, . . . , CN, obtain the
data packets D1, . . . , DN directly by copying from the encoded
data packets C1, . . . , CN without having to use the first error
protection process FS1 for decoding. This substantially reduces the
complexity involved in performing a decoding process using
systematic error protection algorithms at the receiver end.
[0043] The error protection blocks F1, . . . , FM are transmitted
in a third process step V3. In this case, the error protection
blocks F1, . . . , FM are transmitted in such a way that error
protection block F1, that represents data packets D1, D40, that are
to be played back first, is transmitted first, and error protection
block F20, that represents data packets D761, . . . , D800, that
are to be played back last, is transmitted last. This is shown in
FIG. 1c. Error protection block Fl is first transmitted, then F2
and finally F20. The transmission of error protection blocks F1, .
. . , FM in this sequence guarantees that a receiver first receives
all the error protection packets of error protection block F1, so
that after any necessary correction of erroneous received error
protection packets and the necessary decoding where non-systematic
codes are used, the 40 reconstructed data packets D1, . . . , D40
can be forwarded immediately for play back, for example to a
loudspeaker. If, for example, all the encoded data packets C1, . .
. , C800 were transmitted first and then all redundant blocks R1, .
. . , R20 were transmitted, the receiver would, if a fault
occurred, for example in the encoded data packet C40, have to first
receive all 800 encoded data packets C1, . . . , C800 and then
proceed with the error correction or decoding. Therefore,
transmitting encoded data packets C1, C40 of the first error
protection block F1 and of the redundant block R1 together means
that with a short delay of 41 packets, 40 encoded data packets and
a redundant block, the playback of the music video clip can be
started during the streaming, after a slight delay. The delay V
created by this method is explained in the following by means of an
example. A transmission medium UEM, through which the error
protection packets F1, . . . , FM are transmitted, has a
transmission bandwidth UR of 64 kbit/s. Each error protection
packet of the error protection block F1, . . . , FM contains 40
encoded data packets and a redundant block with an encoded data
packet length CL1, . . . , CLN, with for example CL1, . . . , CLN
being equal to 320 bytes and a redundant block length J1, . . . ,
JM with J1, . . . , JM being equal to 320 bytes. Therefore a
maximum delay V for the playback of the music video clip is
obtained as follows.
V = CL 1 * 40 + J 1 UR = 320 bytes ( 40 + 1 ) 64 kbits / sec =
13120 sec 8000 = 1.64 sec ##EQU00001##
[0044] Consequently the maximum delay V is 1.64 seconds. If the
user wanted to transmit all error protection packets of all error
protection blocks F1, . . . , FM before the music video clip
playback, then in the event of an erroneous transmission, he will
have to allow for a maximum delay of
V = CL 1 * 800 + J 1 * 20 UR = 320 bytes * ( 800 + 20 ) ) 8000
bytes / sec = 32.8 sec ##EQU00002##
until the complete music video clip was ready for playback.
[0045] With data transmission over mobile radio channels, short
error burst occur more frequently than long ones because long error
bursts, for example, occur only at very few handovers. Therefore,
it is advantageous to configure the error protection block F1, . .
. , FM by means of the first error protection process, FS1 in such
a way that a small number of erroneous transmitted error protection
packets are corrected within the respective error protection block
F1, . . . , FM, such as, for example, one or two error protection
packets per error protection block F1, . . . , FM. Furthermore,
with a large error protection in the error protection packet there
will be a greater overhead to be transmitted. In this example a
correction by means of the first error protection process FS1 would
not be possible where there were more than two erroneous
transmitted error protection packets and the user would have to
allow for an interruption in the music clip for a time period V,
for example of 1.64 sec. As is shown again later it should be
possible to rectify such errors by means of a second error
protection process FS2, so that on completion of the download an
error-free music video clip would be available. Furthermore it is
expedient if when choosing the first error protection process FS1
an error protection algorithm is chosen that can correct erroneous
error protection packets regardless of how they are arranged,
especially encoded data packets C1, . . . , CN, within the error
protection block F1, . . . , FM.
[0046] Furthermore it is useful for the error protection block F1,
. . . , FM to be created in such a way that a specified number of
error blocks FF of encoded data packets C1, . . . , CN and
redundant blocks R1, . . . , RM can be corrected within the error
protection block F1, . . . , FM. With known error correction
algorithms, such as [1-5], this can be achieved by a suitable
dimensioning of the redundant blocks R1, . . . , RM. Let us assume,
for example, that all encoded data packets C1, . . . , CN are of
equal length, e.g. 100 bytes each. In this way, one error
protection packet per error protection block F1, . . . , FN can be
corrected by a redundant block R1, . . . , RM 100 bytes long. If
2.times.100 bytes=200 bytes per redundant block R1, . . . , RM are
used, it is possible, for example, to correct two encoded data
packets C1, . . . , CN per error protection block F1, . . . , FM.
This procedure can be analogously extended to achieve a correction
characteristic of three or more encoded data packets C1, . . . , CN
for each error protection block. The respective redundant block R1,
. . . , RM can then also be corrected in addition to the encoded
data packets C1, . . . , CN.
[0047] In a fourth process step V4, the encoded data packets C1, .
. . , CN are combined in a complete block GB. An example of this is
shown in FIG. 1d.
[0048] In a fifth process step V5, a complete error protection
block GFB is created for the complete block GB with the aid of a
second error protection process FS2. Known error protection
algorithms such as in [1-5] can be used for this purpose. In
contrast to the first error protection process FS1, only systematic
error protection algorithms may, however, be used for the second
error protection process FS2, because the use of non-systematic
error protection algorithms would cause a binary change to the
content of the encoded data packets and thus a correction or
decoding by means of the first error protection process FS1 would
only be possible after decoding by the second error protection
process FS2. In the following, the encoded data packet C1, . . . ,
CN transmitted to the receiver are designated as transmitted
encoded data packets E1, . . . , EN, with it being possible for
these transmitted encoded data packets E1, . . . , EN to have
transmission errors due to a transmission that is susceptible to
errors.
[0049] In practice, it is furthermore useful if more erroneous
transmitted encoded data packets E1, . . . , EN can be corrected
with the aid of the complete error protection block GFB rather than
with the respective error protection block F1, . . . , FM. It is
assumed, for example, that due to a handover ten transmitted
encoded data packets E51, . . . , E60 were erroneously transmitted
within the partial block T2. Because the error protection block F2
can only correct two of the erroneous transmitted encoded data
packets E51, . . . , E60 by using its redundant block R2, a
(complete) error correction is not possible in this way. However,
with the aid of the complete error protection block GFB, that for
example can correct up to 20 erroneous transmitted encoded data
packets E1, . . . , EN, these ten erroneous transmitted encoded
data packets E51, . . . , E60 can be reconstructed error-free
within the partial block T2. A precondition for this is, however,
that only ten other transmitted encoded data packets E1, . . . ,
E50, E61, . . . , EN were received erroneously. Otherwise, there
would be more erroneous transmitted data packets E1, . . . , EN
present than could be corrected by means of the second error
protection process FS2.
[0050] In a sixth step V6, the complete error protection block GFB
is transmitted after error protection blocks F1, . . . , FM. This
means that on completion of the streaming all error protection
blocks F1, . . . , FM are available, in addition to the complete
error protection block GFB, for correction of the errors that could
not be corrected by error protection block F1, . . . , FM.
[0051] In a possible expansion of the method according to the
invention, the number of packets L1, . . . , LM of data packets D1,
. . . ,DN of the partial block T1, . . . , TM are determined as a
function of a specifiable delay V, taking account of a transmission
rate UR, an encoded data packet length C1, . . . , CLN and a
redundant block length J1, . . . , JM. The encoded data packet
length CL1, . . . , CLN includes the number of symbols, e.g. of
bytes, per encoded data packet, CL1, . . . , CN. The redundant
block length J1, . . . , JM describes the number of symbols, e.g.
bytes per redundant block, R1, . . . , RM. This is explained in
more detail in the following example. [0052] Encoded data packet
length CL1=CL2=. . . =CLN=500 bytes [0053] Redundant block lengths
J1=J2=. . . =JM=500 bytes [0054] delay V=3 seconds [0055]
Transmission rate UR 128 kbit/sec=16 kbyte/sec
[0056] By using these parameters, the number of packets L1, . . . ,
LM of data packets of the partial block T1, . . . , TM can be
calculated as follows.
L 1 = LM V UR - J 1 CL 1 = 3 sec 16 kbyte / sec - 500 byte 500 byte
= 95 packets ##EQU00003##
[0057] A maximum of 95 encoded data packets and, because one data
packet is assigned per encoded data packet, therefore 95 data
packets may be contained in the partial block T1, so that at the
given parameters a maximum delay V of 3 seconds is not exceeded. In
the above example, it was assumed that the encoded data packet
length CL1, . . . , CLN is identical in each encoded data packet
C1, . . . , CN. In general, the encoded data packets C1, . . . , CN
and data packets D1, . . . , DN can exhibit any length.
[0058] In an expansion of the method according to the invention,
the number of packets L1, . . . , LM of data packets is determined
on the basis of characteristic values W1, . . . , WN of successive
data packets D1, . . . , DN, with the characteristic value W1, . .
. , WN representing the importance of the respective data packet
D1, . . . , DN in respect of at least one other data packet D1, . .
. , DN. For example, every tenth data packet D1, D11, D21, . . . ,
D791 contains parameters that are important for all data packets
D1, . . . , DN. All other data packets D2, D3, D10, D12, . . . , DN
contain only multimedia information parameters, such as PCM (Pulse
Code Modulation) data that can be decoded independent of other PCM
data. With the aid of a statistical method, a characteristic value
W1, . . . , WN is first assigned to each data packet D1, . . . ,
DN. For example, the influence the error of a specific data packet
D1, . . . , DN has on the playback quality, such as for the audio
quality of a piece of music, is determined by measurement. In
another embodiment of a statistical method, the important data
packets D1, D11, D21, . . . , D791 are assigned a characteristic
value W1=W11=. . . =5 and the less important data packets D2, D3, .
. . , DN are assigned the important value W2=W3=. . . =WN=1. In a
further example, the data packets D1, . . . , DN represent an
encoded video signal. In this case, the data packets that include
movement vectors are particularly important for the decoding,
whereas on the other hand the remaining data packets that contain
the encoded residual error signal have a lesser importance in
respect of the picture quality. Therefore, for example, the
characteristic values of the important data packets have a higher
value and the less important data packets a lower value. By
presetting a specifiable threshold WS, a value is now specified
that should not exceed a sum of characteristic values W1, . . . ,
WN of successive data packets D1, . . . , DN within the respective
partial block T1, . . . , TN. The following parameter values are
examples. [0059] Specifiable threshold WS=35 [0060] Characteristic
value W1=W11=W21=. . . =5 [0061] Characteristic value W2=W3=W4=. .
. =WN=1
[0062] The number of data packets L1, . . . , LM of data packets
for the partial block T1, . . . , TM is determined by the summation
of characteristic values W1, . . . , WN of successive data packets
D1, . . . , DN. For the example we get the following.
L1=W1+W2+W3+W4+. . . +W23=35.ltoreq.WS.
[0063] Partial block T1 therefore includes data packets D1, . . . ,
D23, with the number of data packets L1 being 23. With this
expansion of the method according to the invention, the number of
packets, L1, . . . , LM of data packets for the partial block T1, .
. . , TM is determined as a function of the respective
characteristic values W1, . . . , WN and the specifiable threshold
WS. The procedure for other numbers of packets L2, . . . , LM of
data packets is the same as the procedures for the number of
packets L1.
[0064] FIG. 2 shows an alternative variant of the method according
to the invention where the complete error protection block GFB is
created. For this process, the complete error protection block GFB
is divided into segments S1, . . . , SL with each segment S1, . . .
, SL being able to correct a subset M1, . . . , ML of encoded data
packets C1, . . . , CN. In the exemplary embodiment shown in FIG.
2, the encoded data packets C1, . . . , C41, C81, . . . , C761
represent the subset M1. For this subset M1, a segment S1 is
created with the aid of a second error protection process FS2. The
subset M2 contains the encoded data packets C2, C42, C82, C762.
Segment S2 includes an error protection for the subset M2. Further
subsets M3, . . . , ML and segments S3, . . . , SL can be formed in
a similar manner. Generally, the subsets M1, . . . , ML can be
created from any combination of encoded data packets C1, . . . ,
CN, with it being possible to include one or more encoded data
packets C1, . . . , CN in more than one subset M1, . . . , ML. The
size of the segments S1, . . . , SL can also vary. Thus, for
example, segment S1=100 bytes and segment S2=320 bytes.
[0065] According to the exemplary embodiment shown in FIG. 1c, the
error protection blocks F1, . . . , FM, are first transmitted in
succession and then the complete error protection block GFB is
transmitted. In this process, the error protection blocks F1, . . .
, FM and the complete error protection block GFB are sent via a
first transmission channel UW1. In an alternative variant according
to FIG. 3, two transmission channels UW1, UW2 can also be used to
send the encoded data packets C1, . . . , CN, the redundant blocks
R1, . . . , RM and the complete error protection block GFB. In this
way, all the encoded data packets C1, . . . , CN and the complete
error protection block GFB can be sent via the first transmission
channel UW1 and the redundant blocks R1, . . . , RM via the second
transmission channel UW2. This is advantageous because it means
that the encoded data packets C1, . . . , CN can be transmitted by
the first transmission channel UW1 in such a way that these can be
supported, received and further processed by receiver devices that
hold only a download of multimedia content, i.e. of encoded data
packets C1, . . . , CN. Furthermore by adding the redundant blocks
R1, . . . , RM, that are sent by the second transmission channel
UW2, an application that realizes a hybrid of download and
streaming application, whereby a redundant block R1, . . . , RM can
be received for each error protection block F1, . . . , FM and if
errors occur these can be corrected by means of the respective
redundant block R1, . . . , RM. When two transmission channels UW1,
UW2 are used, it is useful in practice for both error protection
processes FS1, FS2 to use systematic error protection algorithms,
because otherwise the encoded data packets C1, . . . , CN can under
certain circumstances not be decoded without using the redundant
blocks R1, . . . , RM.
[0066] Furthermore, it is useful for the encoded data packets C1, .
. . , CN and the redundant blocks R1, . . . , RM to be transmitted
synchronized in such a way that the redundant block R1, . . . , RM
of the respective error protection block F1, . . . , FM is present
at the receiver not later than the point in time at which the last
encoded data packets C1, . . . , CN of the respective error
protection block F1, . . . , FM arrive at the receiver. This is
further explained using FIG. 3. Thus, for example, the redundant
block R1 arrives at the receiver device with the latest encoded
data packet C40 of the error protection block F1. This similarly
applies to the further partial blocks T2, . . . , TM, with for
example the redundant block R2 being present at the receiver with
the arrival of the encoded data packet C80, the last encoded data
packet of the error protection block F2. This relationship is shown
in FIG. 3 by a dotted line. Because of this synchronization, all
error protection packets of an error protection block F1, . . . ,
FM are present at the receiver when the last encoded data packet
C1, . . . , CN arrives and therefore a correction of erroneous
transmitted error protection packets, and also a playback of data
packets D1, . . . , DN reconstructed from the encoded data packet
C1, . . . , CN can be achieved with minimum delay.
[0067] Furthermore, the invention relates to a decoding method by
means of which data packets D1, . . . , DN can be reconstructed
with the aid of the error protection that was created according to
an encoding process. From an encoding device EV, the error
protection packets that include the encoded data packets C1, . . .
, CN and the redundant blocks R1, . . . , RM are transmitted to a
decoding device DV, whereby the error protection packets can arrive
with errors at the decoding device DV due to the erroneous
transmission via the transmission medium. These error protection
packets that arrive at the decoding device DV are designated as
transmitted erroneous protection packets. An exemplary embodiment
for the decoding process is explained in more detail in the
following with the aid of FIG. 4. [0068] In step S1, the
transmitted error protection packets of an error protection block
F1, . . . , FM are received. [0069] In step S2 the transmitted
error protection packets of the error protection block F1, . . . ,
FM are decoded with the aid of the first error protection process
FS1 and reconstructed data packets G1, . . . , GN are created from
this. These reconstructed data packets G1, . . . , GN represent the
data packets D1, . . . , DN at the receiver but because of
transmission errors the reconstructed data packets G1, . . . , GN
can differ from data packets D1, . . . , DN. In a variant, a
systematic error protection algorithm (code) is used for the first
error protection process FS1.
[0070] In this way, if none of the transmitted error protection
packets that represent encoded data packets C1, . . . , CN were
received with errors, the reconstructed data packets G1, . . . , GN
of the partial block T1, . . . , TN can be reconstructed by copying
the transmitted encoded data packets. [0071] In step S3, the
reconstructed data packets G1, . . . , GN of the partial block T1,
. . . , TM are checked to determine whether all can be
reconstructed in an error-free manner. If this is the case, the
process continues with step S4, if not then with step S5. [0072] In
step S4 the reconstructed data packets G1, . . . , GN of the
partial block T1, . . . , TM are forwarded to an output medium,
e.g. to a loudspeaker module, for playing back. [0073] In step S5
the received error protection block and the reconstructed data
packet G1, . . . , GN are stored. [0074] In step S6 a check is now
carried out to determine whether a further error protection block
F1, . . . , FM is ready for reception. If this is the case, the
process is started again with step S1, otherwise it continues with
step S7. [0075] In step S7 the complete error protection block GFB
is received that, under certain circumstances, contains errors due
to transmission via the error-prone transmission medium UEM. [0076]
In step S8 residual errors of the reconstructed data packets G1, .
. . , GN, which could not be corrected by means of the first error
protection process FS1, are corrected with the aid of the second
error protection process FS2. In the following, those transmitted
error protection packets that in each case represent encoded data
packets C1, . . . , CN are designated encoded data packets E1, . .
. , EN. Depending on the error protection algorithm employed in the
first error protection process FS1, the two following error
correction procedures are, for example, expedient. [0077] a) By
using a systematic error protection algorithm for the first error
protection process FS1, all transmitted encoded data packets E1, .
. . , EN that could be reconstructed in an error-free manner by the
first error protection process FS1 are replaced by the respective
reconstructed data packet G1, . . . , GN. Then, with the aid of the
second error protection process FS2, a reconstruction of all
transmitted encoded data packets E1, . . . , EN is performed and
the reconstructed data packets G1, . . . , GN thus created. [0078]
b) Where a non-systematic error protection algorithm is used for
the first error protection process FS1, the reconstructed data
packets G1, . . . , GN of those error protection blocks F1, . . . ,
FM, that could be fully reconstructed, are encoded as encoded
auxiliary packets by means of the first error protection process
FS1. The transmitted encoded data packets E1, . . . , EN of these
error protection blocks F1, . . . , FM are then replaced by these
encoded auxiliary packets. This reduces the number of errors in the
erroneously transmitted encoded data packets because it has been
possible to already improve some erroneous encoded data packets
with the aid of the first error protection process FS1. In a
subsequent process step, the transmitted, and already partially
corrected, encoded data packets are corrected by the second error
protection process FS2 with the aid of the received complete error
protection block GFB. The reconstructed data packets G1, . . . , GN
are then obtained for each error protection block F1, . . . , FM,
by the first error protection process FS1 using the partially
corrected and transmitted encoded data packets. [0079] In step S9 a
check is carried out to determine whether all the reconstructed
data packets G1, . . . , GN can be restored to an error-free state.
If this is the case, the process continues with step S10; otherwise
it continues with step S11. [0080] In step S10 the reconstructed
data packets G1, . . . , GN are saved, for example so that a user
or also the decoding device DV can output these to a loudspeaker
module at a later point in time. [0081] In step S11 the
reconstructed, but erroneous, data packet G1, . . . , GN are
rejected and the user can be informed that the reconstructed data
packets G1, . . . , GN, i.e. the music video clip cannot be stored
because of uncorrectable errors. As an alternative, the
reconstructed data packets G1, . . . , GN can be stored but the
user must then allow for short interruptions or an erroneous
playback when these are output, e.g. to the loudspeaker module.
Furthermore, the decoding device DV can achieve an improvement in
quality by using veiling methods, for example by interpolation of
audio data. In a further alternative, the receiver, e.g. the
decoding device DV, can transmit control information to the
transmitter, e.g. the encoding device EV, via a return channel, to
be established, that can reconstruct data packets that are not
error-free. The transmitter can then establish a protected
point-to-point connection to this receiver and re-send data packets
that are still absent and/or contain errors to said receiver. In a
further alternative, redundant packets can be sent via the
point-to-multipoint connection to all receivers. With the aid of
these redundant packets, that for example contain redundant
information for one or more data packets, the data packets that
contain errors and/or are missing can be reconstructed. This is
then advantageous if an error-free reconstruction of the data
packets is not possible with several receivers. By transmitting the
data packets via a transmission channel that is susceptible to
errors, data packets can also become lost. Lost data packets can be
replaced by any data packet during the decoding, with this replaced
data packet being marked as erroneous. In this way, a decoding can
take place that takes account of data packets that are merely
erroneous.
[0082] The invention also includes the encoding device EV with
means for implementing the encoding method. In this case, the
encoding device EV, is, for example, integrated into a data
computer such as a content server or a mobile radio network, by
means of which the process of encoding can be realized. In a
further application , the encoding device EV can also be fitted in
a mobile terminal, with the mobile terminal, for example, taking a
sequence of pictures by means of a camera and these pictures being
compressed by means of a video compression process and data packets
D1, . . . , DN being generated from same. These data packets D1, .
. . , DN can then be encoded according to the inventive method and
then transmitted via a network such as a GSM (Global System for
Mobile Communication) network.
[0083] Furthermore, the invention also includes the decoding device
DV with means for performing the decoding method. With the aid of
the decoding device DV, the inventive method can be realized and
used in a receiver device, for example in a mobile radio telephone
according to the UMTS (Universal Mobile Telecommunications
System)standard. The encoding device EV and the decoding device DV
are shown in FIG. 5. The encoding device EV contains a first
storage module SM1, for example for storing data packets D1, . . .
, DN,. Furthermore, the encoding device EV also contains an
encoding module EM by means of which individual steps for
performing the inventive method for encoding can be realized.
Furthermore, the encoding device EV includes a transmitting module
SM by means of which, for example, the error protection blocks F1,
. . . , FM and the complete error protection block GFB can be
transmitted via the transmission medium UEM to the decoding device
DV. The first memory module SM1, the transmitting module SM and the
encoder module EM are interconnected via a first connecting network
VX1 in order to exchange data and control information between one
another.
[0084] The transmission medium UEM enables the transmission of
error protection blocks F1, . . . , FM and of the complete error
protection block GFB. For example, the transmission medium UEM is
embodied in the form of a wireless network according to the GSM
and/or UMTS standard, or in the form of a wired network, such as an
ISDN (Integrated Digital Subscriber Network) or an IP (Internet
Protocol) based intranet and/or internet. When transmitting using
the transmission medium UEM, individual packets and/or blocks can
be erroneously transmitted.
[0085] The partially erroneous transmitted packets and blocks are
received by a receiving module EE of the decoding device DV. These
are stored in a second storage module SM2 for further processing.
The reconstructed data packets G1, . . . , GN, that represent data
packets D1, . . . , DN, are created in several steps with the aid
of the decoding module DM. These are stored, e.g. in the second
storage module SM2 for further processing, for example by a
loudspeaker unit. The second storage module SM2, the receiving
module EE and the decoder module DM are interconnected to each
other by means of a second connecting network VX2, for the exchange
of data and control information.
LITERATURE
[0086] J. Rosenberg, H. Schulzrinne, "An RTP Payload Format for
Generic Forward Error Connection", IETF RFC 2733, Dec. 1999,
http:///www.ietf.org [0087] 3GPP Doc. GP-031391: "Channel Coding
Schemes with Incremental Redundancy for MBMS", 3GPP TSG=GERAN
Meeting #15, Fort Lauderdale, Fla., June 2003 [0088] A.
Shokrollahi, "LDPC Codes; An Introduction", April 2003,
http://www.ipm.ac.ir/IPM.homepage/Amin2.pdf [0089] 3GPP Doc.
S4-040230, "Raptor Code Specification for MBMS file download", 3GPP
TSG-SA4 Meeting #31, Montreal, Canada, May 2004,
http://www.3gpp.org [0090] M. Bossert, "Kanalcodierung", B. G.
Teubner, 1992
* * * * *
References