U.S. patent application number 10/105300 was filed with the patent office on 2002-12-19 for multiplexing process and multiplexer optimizing management of digital transmission channel bandwidth.
This patent application is currently assigned to THALES. Invention is credited to Gourmelen, Eric, Lhermitte, Richard.
Application Number | 20020191641 10/105300 |
Document ID | / |
Family ID | 8861589 |
Filed Date | 2002-12-19 |
United States Patent
Application |
20020191641 |
Kind Code |
A1 |
Lhermitte, Richard ; et
al. |
December 19, 2002 |
Multiplexing process and multiplexer optimizing management of
digital transmission channel bandwidth
Abstract
The disclosure relates to a process for multiplexing M services
(M is an integer >1) enabling transmission of data packets of
predetermined size T.sub.p at a predetermined maximum output bit
rate D.sub.Smax, characterized in that it includes storage of the
incoming data of each of the M service in M associated buffers,
extraction of data from the buffers, and constitution of output
data packets formed from some or all of the data present in a
buffer when its filling is equal to or exceeds the data packet size
T.sub.p.
Inventors: |
Lhermitte, Richard; (Rennes,
FR) ; Gourmelen, Eric; (Bruz, FR) |
Correspondence
Address: |
OBLON SPIVAK MCCLELLAND MAIER & NEUSTADT PC
FOURTH FLOOR
1755 JEFFERSON DAVIS HIGHWAY
ARLINGTON
VA
22202
US
|
Assignee: |
THALES
173, Boulevard HAUSSMAN
PARIS
FR
75008
|
Family ID: |
8861589 |
Appl. No.: |
10/105300 |
Filed: |
March 26, 2002 |
Current U.S.
Class: |
370/468 ;
370/537 |
Current CPC
Class: |
H04J 3/247 20130101;
H04J 3/1682 20130101 |
Class at
Publication: |
370/468 ;
370/537 |
International
Class: |
H04J 003/16; H04J
003/22 |
Foreign Application Data
Date |
Code |
Application Number |
Mar 27, 2001 |
FR |
01 04115 |
Claims
What is claimed is:
1. Process for multiplexing M services (M is an integer >1)
enabling transmission of data packets of predetermined size T.sub.p
at a predetermined maximum output bit rate D.sub.Smax,
characterized in that it includes storage of the incoming data of
each of the M service in M associated buffers, extraction of data
from the buffers, and constitution of output data packets formed
from some or all of the data present in a buffer when its filling
is equal to or exceeds the data packet size T.sub.p.
2. Multiplexing process according to the claim 1, characterized in
that if a buffer contains less data than the data packet size
T.sub.p, a padding packet is presented at the output.
3. Multiplexing process according to claim 1, wherein if several of
said buffers contain data equal to or exceeding the data packet
size T.sub.p, the first buffer from which at least some data will
be extracted is determined by the respective priorities of either
the buffers or the services they are serving or the types of data
stored.
4. Multiplexing process according to one of the preceding claims,
characterized in that, first, the filling of said buffers respects
the following
relation:.A-inverted.i.epsilon.[1,M]B.sub.E[i](t.sub.N+1)=B.sub-
.E[i](t.sub.N)+D.sub.E[i](t.sub.N+1).multidot.t.sub.pwhere
B.sub.E[i](t) represents the filling of said buffer of input i at
time t, D.sub.E[i](t) represents the data bit rate for the input i
at time t, and time t.sub.N+1=t.sub.N+t.sub.p (with
t.sub.p=t.sub.p/D.sub.Smax), the M buffers being are empty at time
t=0), and in that, secondly, the output data transmission respects
the following relation: if i/B.sub.E[i](t.sub.N+1).gtoreq.T.sub.p,
then a packet from input i is presented at the output, and
B.sub.E[i](t.sub.N+1)=B.sub.E[i](t.sub.N+1)-- T.sub.p.
5. Multiplexing process according to one of the preceding claims,
characterized in that if the service on input i has a minimum bit
rate D.sub.E min[i](t) and a maximum bit rate D.sub.E max[i](t),
and if B.sub.E min[i](t) and B.sub.E max[i](t) represent
respectively the minimal and maximal filling of said buffer of
input i at time t and at time t.sub.N+1=t.sub.N+t.sub.p (with
t.sub.p=T.sub.p/D.sub.Smax), the filling being zero at time t=0,
then the filling of said buffers respects the following
relations:.A-inverted.i.epsilon.[1,M]B.sub.Emin[i](t.sub.N+-
1)=B.sub.Emin[i](t.sub.N)+D.sub.Emin[i](t.sub.N+1).multidot.t.sub.pandB.su-
b.Emax[i](t.sub.N+1)=B.sub.Emax[i](t.sub.N)+D.sub.Emax[i](t.sub.N+1).multi-
dot.t.sub.pand the output data transmission respects the following
relations: if i/B.sub.Emin[i](t.sub.N+1).gtoreq.T.sub.p, then a
packet from input i is presented at output, and B.sub.E
min[i](t.sub.N+1)=B.sub.- E min[i](t.sub.N+1)-T.sub.p and B.sub.E
max[i](t.sub.N+1)=B.sub.Elin[i](t.- sub.N+1), otherwise, if
i/B.sub.Emax[i](t.sub.N+1).gtoreq.T.sub.p, then a packet from input
i is presented at the output, and B.sub.E min[i](t.sub.N+1)=B.sub.E
min[i](t.sub.N+1)-T.sub.p and B.sub.E
max[i](t.sub.N+1)=B.sub.Elax[i](t.sub.N+1)-T.sub.p, otherwise a
padding packet is presented at the output.
6. Multiplexing process according to one of the preceding claims,
characterized in that some or all of said services are presented at
the output with constant and/or variable bit rates, with or without
minimal and/or maximal set-point bit rates.
7. Multiplexer with M inputs (M is an integer >1) and one output
enabling transmission of data packets of predetermined size T.sub.p
at a predetermined maximal output bit rate D.sub.Smax,
characterized in that it includes M buffers for storage of received
data for each of M incoming services, each buffer receiving data
via one of said M multiplexer inputs and being connected to said
multiplexer output via an election device, thus enabling extraction
of data from a buffer and constitution at said multiplexer output
of a data packet formed from some or all of the data present in
this buffer when its filling is greater than the data packet size
T.sub.p.
8. Multiplexer according to the claim 7, characterized in that said
buffers and/or said election device are virtual.
9. Multiplexer according to the claim 7, characterized in that it
implements the multiplexing process according to claims 2 to 6.
10. Digital transmission chain for various types of services using
synchronous and/or asynchronous data on networks of different
types, including: M inputs that acquire the data, then transform
them into packets of fixed size adapted to the broadcasting
protocol, M buffers in which the M inputs store said data packets,
One multiplexer, according to claim 7 or 8, with M inputs connected
to said M buffers, and J outputs J buffers connected to said J
outputs of said multiplexer enabling synchronous and asynchronous
data to be managed, J outputs that acquire the data from said J
buffers, adapt them to the format of the transmission channel, then
broadcast them
11. Transmission system for various types of services using
synchronous and/or asynchronous data on networks of different
types, wherein the transmission chain includes a multiplexer
according to claim 7 or 8.
Description
BACKGROUND OF THE INVENTION
[0001] The invention concerns a multiplexing process and
multiplexer enabling optimized bandwidth management of a digital
transmission channel, applicable notably to service broadcasting
systems.
DESCRIPTION OF THE PRIOR ART
[0002] Digital television programs, digital radio and multimedia
services often share the same transmission channels provided by
various network types: cable, satellite, radio, Internet, etc.
[0003] There are known techniques for multiplexing audiovisual
services (S.sub.1, S.sub.2, S.sub.3) at constant bit rates (as
shown in FIG. 1) and at variable bit rates (as shown in FIG. 2).
Bandwidth is always limited and costly, regardless of the network
used to broadcast a service. Multiplexing at variable bit rates
enables some improvement of bandwidth management. However, whatever
the type of multiplexing used, the multiplexing algorithms all make
use of padding packets P.sub..O slashed. as these enable a margin
of bandwidth to be conserved to handle possible losses.
[0004] One idea for dealing with bandwidth loss resulting from the
obligatory use of padding packets P.sub..O slashed. in known
multiplexing algorithms is to replace the padding packets P.sub..O
slashed. after the multiplexing by data D, as shown in FIGS. 1 and
2. The data D replace the padding packets P.sub..O slashed. either
partially (arrow 1) leaving a part B.sub..O slashed. of the
bandwidth definitively unused, or totally (arrow 2). The problem is
that the broadcaster does not control this data stream since it
depends on the services being multiplexed. Therefore, depending on
the type of data transmitted in place of the padding packets, if
the bit rate is too low, the user will find the service slow,
whereas if the bit rate is too high, the receiving decoder will be
unable to handle the incoming data flow.
SUMMARY OF THE INVENTION
[0005] The present invention proposes a new approach to optimized
management of digital transmission channel bandwidth. It has the
advantage of being easier to implement than existing
multiplexers.
[0006] The invention is a process for multiplexing M services (M is
an integer >1) enabling transmission of data packets of
predetermined size T.sub.p at a predetermined maximum output bit
rate D.sub.Smax, characterized in that it includes storage of the
incoming data of each of the M service in M associated buffers,
extraction of data from the buffers, and constitution of output
data packets formed from some or all of the data present in a
buffer when its filling is equal to or exceeds the data packet size
T.sub.p.
[0007] The invention also proposes a multiplexer with M inputs (M
is an integer >1) and one output enabling transmission of data
packets of predetermined size T.sub.p at a predetermined maximal
output bit rate D.sub.Smax, characterized in that it includes M
buffers for storage of received data for each of M incoming
services, each buffer receiving data via one of said M multiplexer
inputs and being connected to said multiplexer output via an
election device, thus enabling extraction of data from a buffer and
constitution at said multiplexer output of a data packet formed
from some or all of the data present in this buffer when its
filling is greater than the data packet size T.sub.p.
[0008] Another object of the invention is a transmission system for
various types of services using synchronous and/or asynchronous
data on networks of different types, wherein the transmission chain
includes:
[0009] M inputs that acquire the data, then transform them into
packets of fixed size adapted to the broadcasting protocol,
[0010] M buffers in which the M inputs store said data packets,
[0011] One multiplexer with M inputs connected to said M buffers,
and J outputs
[0012] J buffers connected to said J outputs of said multiplexer
enabling synchronous and asynchronous data to be managed,
[0013] J outputs that acquire the data from said J buffers, adapt
them to the format of the transmission channel, then broadcast
them.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Other characteristics and advantages of the invention will
become evident on reading the description below of a preferred
embodiment, which is non-limitative and taken only as an example,
with reference to the attached drawings of which:
[0015] FIG. 1 illustrates prior-art bandwidth management at
constant bit rate;
[0016] FIG. 2 illustrates prior-art bandwidth management at
variable bit rate;
[0017] FIG. 3 shows part of the transmission chain including the
multiplexer according to the invention;
[0018] FIG. 4 shows an embodiment of the multiplexer according to
the invention;
[0019] FIG. 5 illustrates bandwidth management using the
multiplexing according to the invention.
DESCRIPTION OF A PREFERRED EMBODIMENT
[0020] FIG. 3 shows a multiplexer 3 managing input data packets of
different types. These data can be video, audio or audiovisual data
broadcast either immediately or later, or files or even data from a
Internet-type network. These data packets are of fixed size. In the
example shown in FIG. 3, one input 1a receives data for immediate
broadcasting, one input 1b receives files, and one input 1c
receives data from a network.
[0021] The multiplexer 3 generates a concatenation of these packets
according to the real or desired transmission bit rate. Data is
transferred from the inputs 1 to the multiplexer 3 via buffers 2;
data is transferred from the multiplexer 3 to the outputs 5 via
buffers 4. The buffers 4 are of two types: flip/flop for
synchronous data, FIFO for asynchronous data. In the example shown
in FIG. 3, the output S.sub.i provides for immediate broadcasting
of multiplexed data, while the output S.sub.ii transmits the data
to a network (e.g. Internet, ATM, . . . ).
[0022] The inputs 1 serve to acquire data, transform them into
packets of fixed size adapted to the transmission protocol, and
store them in a buffer 2 which feeds the multiplexer 3. The outputs
5 serve to acquire data from a buffer 4 fed by the multiplexer,
adapt them to the transmission channel format, then broadcast
them.
[0023] When the multiplexer 3 has several outputs (S.sub.i,
S.sub.ii), as shown in FIG. 3, all the packets of the multiplexing
core are fed to all the outputs, in this case the two outputs of
the multiplexer 3. At each output the packets can then be filtered
according to needs to transmit only certain packets. For example,
the filtering can be carried out such that one output transmits
only synchronous data, while the other transmits only asynchronous
data.
[0024] FIG. 4 shows an embodiment of the multiplexer 3 according to
the invention. The multiplexer 3 includes buffers 31 and an
election device 32 which controls the filling of the buffers 31
with data from the inputs and the transmission of these data at the
output.
[0025] The buffers 2 are real buffers. They are filled continuously
(in the case of immediate broadcasting) or block by block in the
case of files.
[0026] The buffers 31 can be virtual, in other words without real
existence, in which case they are tables of values. They have a
predetermined filling level for a given input (fixed by the user,
for example). If the filling value were the real level of buffer 2,
the efficiency would be greatly degraded, particularly for
asynchronous data. The filling levels would change from full to
empty and, at multiplexer output, the data rate would display
pronounced saw-tooth variations. In the case of transmission of a
file, if the packets are read directly in a real buffer 2, instead
of taking them block by block from a buffer 31, the global
performance of the system would fall.
[0027] Use of the buffers 31 has the advantage of decorrelating the
input data processing from the actual multiplexing. This is
particularly easy if the buffers 31 are virtual.
[0028] The multiplexer 3 has M inputs on which M services are
received. The data rate on each input is
{D.sub.E[i](t)}.sub.1.ltoreq.i.ltoreq.M and the maximum bit rate
acceptable by the transmission channels of all the multiplexer
outputs is D.sub.Smax. The packet time t.sub.p is then equal to
T.sub.p/D.sub.Smax where T.sub.p is the packet size. B.sub.E[i](t)
represents the filling state of the buffer 31 of input i. The
general filling principle of the buffers 31 is then: 1 - at time t
= 0 : i [ 1 , M ] B E [ i ] ( 0 ) = 0 , - at time t N + 1 = t N + t
p : i [ 1 , M ] B E [ i ] ( t N + 1 ) = B E [ i ] ( t N ) + D E [ i
] ( t N + 1 ) t p .
[0029] The general principle of election of a buffer 31 to the
output of multiplexer 3 implemented by the election device 32 is
the following:
[0030] if i/B.sub.E[i](t.sub.N+1).gtoreq.T.sub.p then the packet of
buffer 31 on input i is presented at the output, and
B.sub.E[i](t.sub.N+1)=B.sub- .E[i](t.sub.N+1)-T.sub.p,
[0031] otherwise a padding packet is presented at the output.
[0032] The multiplexing process according to the invention includes
the filling of the multiplexer's internal input buffers 31 and the
election of the buffer that has a filling equal to or exceeding the
packet size, to send at least part of the data stored in this
buffer to the output of the multiplexer 3. Padding packets are
presented at the output only if no buffer is sufficiently filled.
This process is easier to implement than those proposed in
prior-art solutions.
[0033] We can extend this principle, to include not just one
filling state per buffer 31 but two: B.sub.E min[i](t) and B.sub.E
max[i](t) corresponding respectively to minimum and maximum
set-point bit rates D.sub.E min[i](t) and D.sub.E max[i](t). We
then have: 2 - at time t = 0 : i [ 1 , M ] B E min [ i ] ( 0 ) = 0
, B E max [ i ] ( 0 ) = 0 , - at time t N + 1 = t N + t p : i [ 1 ,
M ] B E min [ i ] ( t N + 1 ) = B E min [ i ] ( t N ) + D E min [ i
] ( t N + 1 ) t p and B E max [ i ] ( t N + 1 ) = B E max [ i ] ( t
N ) + D E max [ i ] ( t N + 1 ) t p
[0034] The election device 32 can choose to transmit data taken
from the input buffer 31 if its minimum filling state or its
maximum filling state is equal to or exceeds the packet size, by
applying the following process:
[0035] 1) If i/B.sub.E min[i](t.sub.N+1).gtoreq.T.sub.p, then the
packet coming from buffer 31 of input i is presented at the output,
and B.sub.E min[i](t.sub.N+1)=B.sub.E min[i](t.sub.N+1)-T.sub.p and
B.sub.E max[i](t.sub.N+1)=B.sub.Elin[i](t.sub.N+1),
[0036] 2) Otherwise, if i/B.sub.E max[i](t.sub.N+1).gtoreq.T.sub.p,
then the packet coming from buffer 31 of input i is presented at
the output, and B.sub.E min[i](t.sub.N+1)=B.sub.E
min[i](t.sub.N+1)-T.sub.p and B.sub.E
max[i](t.sub.N+1)=B.sub.Elax[i](t.sub.N+1)-T.sub.p,
[0037] 3) Otherwise a padding packet is presented at the
output.
[0038] The bit rate set-points can be seen as a guaranteed bit rate
for the minimum set-point, and the best possible bit rate for the
maximum set-point.
[0039] If the minimum and maximum set-points of a service i are set
to the same value, then the service i is broadcast at a fixed,
guaranteed bit rate. If the minimum set-point of the service i is
set to zero and the maximum set-point of this same service i is set
to the maximum output bit rate, the broadcasting of the service i
is then said to be "opportunistic"; in other words, the service is
transmitted at a varying bit rate that depends on the free
bandwidth.
[0040] In view of the simplicity of the implemented process, the
buffers 31 and the election device 32 can be virtual.
[0041] In the process using the general filling/election principle
and the process providing for bit rate set-points, if the buffers
31 of two inputs i and j are elected, the election conflict can be
resolved by defining an order of priority of the buffers 31 which
may depend on the type of service served by the buffers and/or the
data rate type (opportunistic, variable guaranteed, constant)
and/or the data type (audio, video . . . ) and/or the broadcaster,
and so on.
[0042] FIG. 5 illustrates channel management by the multiplexer 3.
In this example, six different services are sharing a given
bandwidth (the ordinate is the bandwidth, the time is the
abscissa). The service 1 is at constant bit rate, in other words
the minimum bit rate set-point is equal to the maximum set-point
for this service in the process implemented by the multiplexer 3.
Services 2 to 4 have minimum set-points that are non-zero and
different from their maximum set-points which are different from
the maximum output bit rate D.sub.Smax; this provides for variable
bandwidth usage but guaranteed ability to transmit. The service SAV
is direct audio/video data broadcasting at a variable,
uncontrollable bit rate. Service 5 has at purely variable bit rate
due to the fact that its minimum bit rate set-point has been set to
zero and its maximum set-point has been set equal to the maximum
output bit rate D.sub.Smax; this service therefore uses any
unoccupied part of the bandwidth.
[0043] The minimum and maximum set-point are set individually for
each service: they are predefined by the service producers or
broadcasters, or set according to the nature of the data used by
these services: immediate or deferred transmission, data type
(audio, video, files, multimedia data). To ensure acceptable
quality, some services can be transmitted only at constant bit
rate. For other services, a minimum set-point is required, since
slowness of the service would cause inconvenience for users. For
some services, the transmission bit rate must be limited to avoid
the risk of saturating the receiving decoder. For certain services,
such as the file downloading as a background task, the transmission
bit rate is not critical, so this type of service can make use of
spare bandwidth in order to optimize bandwidth management.
[0044] The multiplexing process according to the invention is
therefore able to manage efficiently simultaneous synchronous and
asynchronous data streams, heterogeneous inputs and outputs, and
data rate constraints while guaranteeing optimal exploitation of
available bandwidth on the transmission channel.
[0045] The following features distinguish the multiplexing process
according to the invention from classic multiplexers:
[0046] Use of buffers 31 enables data storage to be dissociated
from the reception of data for multiplexing;
[0047] Simplicity of the election algorithm: scanning of a table of
values;
[0048] Multi-format I/O: several inputs and outputs can be managed,
and the data of each input and output can be of different type;
[0049] Optimized management of "opportunistic" transmission
mode.
* * * * *