WO1996013940A1 - Digital data packet multiplexer, in particular for digital television - Google Patents

Digital data packet multiplexer, in particular for digital television Download PDF

Info

Publication number
WO1996013940A1
WO1996013940A1 PCT/FR1995/001396 FR9501396W WO9613940A1 WO 1996013940 A1 WO1996013940 A1 WO 1996013940A1 FR 9501396 W FR9501396 W FR 9501396W WO 9613940 A1 WO9613940 A1 WO 9613940A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
memory
memories
packets
bytes
Prior art date
Application number
PCT/FR1995/001396
Other languages
French (fr)
Inventor
Jean-Michel Masson
Frédéric GRENIER
Original Assignee
Matra Communication
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matra Communication filed Critical Matra Communication
Priority to AU38470/95A priority Critical patent/AU688616B2/en
Priority to EP95936592A priority patent/EP0788717A1/en
Publication of WO1996013940A1 publication Critical patent/WO1996013940A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/24Time-division multiplex systems in which the allocation is indicated by an address the different channels being transmitted sequentially
    • H04J3/247ATM or packet multiplexing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams

Definitions

  • the present invention relates to a device for producing a time multiplex of digital information packets, comprising several packetization modules each receiving a digital input stream, several packet memories each receiving packets from a respective packetization module, and multiplexing means selecting the packet memories from which the multiplex packets are to be extracted and successively transferring said packets to an output of the device.
  • the invention relates more particularly to the field of digital television. It applies in particular within the framework of the MPEG2 system standard defined in the draft international standard ISO / IEC 13818-1 of the International Organization for Standardization dated June 10, 1994 (Information Technology - Generic Coding of Moving Pictures and Associated Audio / Recommendation H.222.0). Reference may be made to this ISO / IEC 13818-1 document for any information on the structure of the packages referred to in the present request.
  • the MPEG2 system standard defines two types of multiplex digital streams: transport streams (TS), and program streams (PS).
  • a "program” is defined as a set of elementary flows correlated in time, that is to say each carrying information to be restored with respect to a common time base.
  • a program stream PS transmits a single program in the form of packets of relatively large length and possibly variable. PS flows are intended for transmission channels which introduce few errors. They are typically used for storing information on disk. Transport flows are consist of packets belonging to one or more programs, and are used for transmission in environments which may introduce errors.
  • Transport packets (TP) have a fixed length of 188 bytes and each include a TP header of at least 4 bytes.
  • PES elementary packet flows
  • the raw elementary streams (ES) directly coming from the video or audio coding are first put in the form of PES packets of variable length.
  • the PES flows are then re-cut to constitute the TS or PS packets to be multiplexed.
  • Some coders leave elementary streams at the ES level, and others at the PES level.
  • the elementary streams can also be composed of data other than audio or video, for example data detailing information specific to a program (PSI), data relating to conditional access to a program (ECM or EMM) ...
  • the role of an MPEG2 multiplexer is to receive these different elementary streams, to carry out TS or PS packets, then time multiplexing of these packets.
  • a device can also be what is called a remultiplexer.
  • a remultiplexer is a device for producing a multiplex as defined in the introduction, in which at least one of the input streams has already been multiplexed upstream, in PS or TS format.
  • a remultiplexer can be used for example to extract from a transport stream packets relating to a program and produce as output another transport stream or program comprising only this program, to extract from one or more transport streams the packets relating to one or more programs in order to construct another transport flow, or else to convert a program flow into a transport flow in order to transmit it in a lossy environment.
  • the MPEG2 system standard specifies precisely the constraints that a multiplexer must take into account when multiplexing of packets transporting the various elementary signal flows. Indeed, in order to optimize the size of the input buffers necessary in a decoder (and therefore in order to reduce the price of these decoders), it is necessary to have over time a distribution as homogeneous as possible of the packets of each elementary flow. In the case of a large number of elementary streams to be managed and of significant bit rates for these streams, the work of the multiplexer may require great computing power, and on the other hand the chosen multiplexing method may lead to multiplex streams of different quality output (in terms of packet distribution).
  • An object of the present invention is to provide a device as defined in the introduction, which is flexible and efficient in order to be able to reach high flow rates.
  • a device thus comprises parameter memories respectively associated with the packet memories.
  • Each packet supplied to a packet memory by a packetization module is associated with a set of parameters, including election parameters, written by said packetization module in the corresponding parameter store.
  • the multiplexing means comprise processing means connected to the parameter memories by a parameter bus to select the packet memories by analyzing the election parameters respectively associated with the first packets waiting in each of the packet memories, and means for transfer connected to the packet memories by a packet bus and controlled by the processing means for successively extracting the packets from the multiplex from the selected packet memories, the processing means selecting the packet memory from where a packet from the multiplex is at extracting while the transfer means transfer a previous packet of the multiplex from a previously selected packet memory.
  • the communication between the specific package modules and the multiplexing module takes place via a memory plane type interface.
  • the packet memories relating to the various package modules are seen as particular areas of the addressable space of the multiplexing module, as are the associated parameter memories.
  • the data passing through this memory plane are organized identically whatever the type of corresponding input stream, which allows the multiplexing module to have systematic and therefore more efficient work.
  • the exchanges via this interface are organized around two buses, which allows the multiplexing module to perform its tasks in parallel and not sequentially.
  • FIG. 1 is a block diagram of a first embodiment of the invention
  • FIG. 2 is a block diagram of a package module usable in the device of Figure 1;
  • Figures 3 to 5 are diagrams illustrating the operation of package modules according to Figure 2;
  • Figure 6 is a diagram of a multiplexing module usable in the device of Figure 1;
  • FIGS. 7 and 8 are graphs illustrating an example of priority calculation in a multiplexing module
  • FIG. 9 is a diagram of an election circuit usable in the multiplexing module of Figure 6.
  • FIG. 10 is an overall block diagram of a second embodiment of the invention.
  • the device represented in FIG. 1 is described below in its application to the production of an OS output multiplex having the format of a TS transport stream within the meaning of the MPEG2 standard. It will be understood that the device would also be applicable for producing another type of multiplex, in particular a PS program stream within the meaning of the MPEG2 standard.
  • the device comprises n package modules C1, ..., Cn each receiving an input stream IS1, ..., ISn.
  • the n input flows carry a total of m elementary flows.
  • n m.
  • the stream IS2 is already multiplexed (for example transport stream TS), and the device is designed to take into account two elementary streams included in this multiplexed stream.
  • the package modules C1, ..., Cn deliver transport packets TP from each of the elementary streams they receive. These transport packets are stored in two access buffer memories PM1, ..., PMm. Each PMi packet memory receives packets from a packetization module.
  • the C2 package modules processing already multiplexed flows can supply several packet memories PM2, PM3. In the latter case, the packet memories PM2, PM3 can conveniently be constituted by two different addressing zones of the same memory plane.
  • Each packet memory PMi is associated with a parameter memory ZMi also with two ports. Each time a packetization module writes an information packet in a packet memory PMi, it also writes a set of parameters associated with this packet in the corresponding parameter memory ZMi. For reading, the packet memories PM1, ..., PMm are connected to a common packet bus 10, and the parameter memories ZM1, ..., ZMm are connected to a common parameter bus 12. These two buses are connected to a multiplexing module 14 whose role is to select the memories PMi from which the packets of the output multiplex OS are to be extracted and to successively transfer the packets in question to the output of the device.
  • the package modules Cj analyze the elementary flows they receive in real time and provide the transport packets to the PMi buffer memories.
  • Real-time analysis of an elementary stream and double packetization may require great computing power, in particular for video streams which can reach bit rates of 15 Mbit / s in standard resolution, or more than 100 Mbit / s in high resolution.
  • the C1 package module illustrated in FIG. 2 makes it possible to meet these severe requirements.
  • This module C1 includes an input buffer 20 receiving the input stream IS1. At the output of the buffer 20, the bytes of the input stream pass through a detection circuit 22 before being transmitted to a storage unit 23 of the first in first out (FIFO) type. The output of the unit 23 is connected to the data input of the packet memory PMI.
  • FIFO first in first out
  • the detection circuit 22 is produced in the form of a network of doors programmable by the user (FPGA). It consists of a shift register 24 with four stages of a byte, through which the bytes of the input stream pass before reaching the storage unit 23, and a detection logic 25 receiving the four bytes present in the stages of register 24. Logic 25 is programmed according to the states to be detected in the input stream. The logic 25 detects these states of the input stream and informs a microprocessor 26. The processor 26 can access the parameter memory ZMI by its address and data buses 28, 29. The buses 28, 29 are also connected to the PMI packet memory via a three-state gate 31.
  • the storage unit 23 is managed to contain 184 bytes of the input stream at any time, and so that each byte leaving this unit causes the entry of another byte.
  • the unit 23 could therefore be produced simply in the form of a shift register with 184 stages of a byte. If one does not have shift registers of this size, one can cascade several of them, or even use a random access memory whose read and write addresses are generated so as to keep between them a constant difference corresponding to a capacity of 184 bytes.
  • the processor 26 supplies a transfer sequencer 32 with control parameters for carrying out the bytes of the input stream from the storage unit 23 to the packet memory PMI.
  • control parameters include a starting address for writing the data of a packet in the memory PM1, and the number of bytes to be transferred from this address.
  • Sequencer 32 includes an address counter which initializes to the value of the starting address supplied by the processor, and which increments with each byte transferred until the specified number of bytes has been transferred . This counter provides the write addresses of the bytes in the PMI memory.
  • the sequencer 32 also supplies the reading address of the byte to be transferred so as to comply with the first in - first out protocol in this memory.
  • the sequencer delivers a signal SC which rates the transfers from and to the unit 23, the shifts in the register 24 of the detection unit, and the byte readings in the input buffer 20.
  • the input stream IS1 is an elementary stream (ES or PES) to be packaged.
  • the detection logic 25 is programmed to detect synchronization words in the input stream.
  • the processor 26 determines the length and the content of the header to be placed at the start of the next transport packet to be written into the memory PM1.
  • This header is determined in accordance with the specifications of the MPEG2 standard, the processor 26 executing a header training program as described in the document ISO / IEC 13818-1.
  • FIG. 3 illustrates the construction of transport packets TP by the package module in the case of a raw elementary stream ES originating from an audio coder.
  • the audio ES stream consists of frames of constant length, each starting with a 35A frame header.
  • the header 35A contains a 12-bit synchronization word equal to FFF in hexadecimal.
  • the detection logic 25 of a package module processing an audio ES stream is therefore programmed to detect this synchronization word FFF.
  • a PES stream constructed from such an ES stream may include a PES header 36 immediately before each ES header 35A.
  • the present package module when it processes an audio ES stream, does not explicitly pass through the PES stage, but on the contrary directly constructs TP transport packets.
  • the processor 26 calculates the length L of the header 37b of the next packet so as to complete a transport packet of 188 bytes with the bytes of the elementary stream going up to the synchronization word detected.
  • the processor 26 introduces flow management parameters or stuffing bytes in the adaptation field of the header, as specified by the MPEG2 system standard. .
  • the PES 36 header is calculated in accordance with the MPEG2 system standard, and the length of the TP 37c header will be adapted using the adaptation field as for the previous packet.
  • FIG. 4 is a diagram similar to that of FIG. 3 in the case of an ES stream of the video type.
  • a video type ES stream comprises three types of headers: 35S sequence headers containing a 4-byte synchronization word equal to 000001B3 in hexadec, 35G image group headers containing a 4-byte synchronization word with the value 000001B8 in hexadecimal, and 35P image headers containing a 4-byte synchronization word with the value 00000100 in hexadecimal.
  • the structure of the video ES stream is such that a 35S sequence header is always immediately followed by a 35G image group header or by a 35P image header, and that a header 35G image group is always followed by a 35P image header.
  • the length of the video data relating to an image, according to each 35P image header, is variable.
  • a PES stream constructed from such a video ES stream may contain a PES header 36 before each 35S sequence header, before each 35G group header which is not immediately preceded by a sequence header 35S, and before each 35P image header which is not immediately preceded by a 35G group header.
  • the present packetization module when processing a video ES stream, does not explicitly produce the corresponding PES stream, but directly TP transport packets.
  • the insertion of the PES and TP headers is essentially carried out in the same way as in the audio case described with reference to FIG. 3, the detection logic 25 being programmed to detect the synchronization words of the headers 35S, 35G and 35P.
  • processor 26 does not insert a PES header 36 before all 35P image headers, but only before those which are not immediately preceded by an image group header
  • processor 26 does not insert a PES header before all 35G image group headers, but only before those which are not immediately preceded by a 35S sequence header. These different conditions can easily be identified on the basis of the synchronization words detected by the logic 25.
  • FIG. 5 is a diagram similar to those of FIGS. 3 and 4 in the case of an audio or video PES type input stream.
  • the PES header 36 present in each packet of the PES stream contains a synchronization word of 4 bytes, the first three of which are worth 000001 in hexadecimal and the fourth is a byte identifying the stream.
  • This identification byte being known in advance for a given PES stream to be processed by the package module, logic 25 can be programmed to detect the 4 byte synchronization words of the PES stream.
  • the division into TP transport packets is then carried out by the processor 26 in the same manner as in the case of FIGS. 3 and 4, on the basis of the PES headers 36.
  • the advantage of constituting the transport packets containing a PES 36 header by putting only in these packets a TP 37a-c header and said PES header 36 is to allow scrambling of all the transport packets containing ES elementary stream data, the PES header should not be scrambled.
  • the processor 26 writes, via the gate 31, the headers 37a-c and / or 36 at the appropriate positions in the packet memory PMI so as to respect the structure of the packets TP shown in FIG. 3, 4 or 5. This writing can take place before the transfer of the 188 - L bytes of the input stream belonging to the packet in question. It can also be performed later provided that the packet in question is still present in the PMI memory, in particular in the case where the header TP of a packet must contain parameters dependent on packets arriving subsequently at the packetization modules (by example of image splitting parameters in the case of a video ES stream).
  • the detection logic 25 is programmed to detect the synchronization byte indicating the start of a transport packet. This synchronization byte is 47 in hexadecimal.
  • the processor 26 identifies the time of entry of the packet when the synchronization byte is detected.
  • the processor 26 can read the 13 bits of identification of the packet (PID field) and determine if it contains optional time fields of the type PCR or LTW. The presence of the PCR or LTW fields is indicated by bits of determined position in the TP header (see document ISO / IEC 13818-1). The position of the PCR field is fixed, but that of the LTW field can vary so that the position of this field is also indicated, if necessary, to the processor 26 by the circuit 22.
  • the processor 26 can perform a filtering operation in order to transfer to the packet memory only the packets of the elementary streams to be kept in the multiplex Release. To eliminate a packet, the processor 26 controls the transfer sequencer 32 so that it writes the packet in the packet memory to a trash address where it will never be read.
  • the package module is associated with several packet memories PM2, PM3, these memories are grouped in the same address space, and the write addresses generated by the transfer sequencer 32 are determined on the basis of the PID identification parameter supplied to the processor 26 by the detection circuit 22 so as to obtain the first in - first out operation in each of the packet memories PM2, PM3. It is thus possible to direct the elementary streams to be stored in an input multiplex stream to different packet memories.
  • the package module shown in Figure 2 has great flexibility. It is easily adaptable to a wide variety of input streams, by simple programming of the detection logic 25 and of the processor 26. This module is therefore particularly suitable for a modular architecture of the device. In the case of a flow input type ES, it allows simultaneous carrying out of the two packetization phases (PES and TP) by means of a single processor, the PES header being considered as an extension of the TP header . It is also suitable for TS or PS type input flows in remultiplexing applications.
  • the development of a packet is carried out in parallel with the transfer of data from the previous packet to the PMi memory, which makes it possible to process significant input bit rates.
  • the transfer is entrusted to a separate sequencer, which frees the single processor from the package module for other processing to be performed.
  • Another task executed by the processor 26 is the calculation of the parameters associated with the packets and their writing in the parameter memory ZMi. These parameters include election parameters allowing the multiplexing module 14 to select the packet memories for transferring the packets to the output of the device. Thus, part of the tasks usually carried out by the multiplexing module are transported into the packaging modules. The additional load for the processor 26 is however low enough not to have a significant impact on the choice of this processor which is in any case necessary for packetization.
  • One solution for giving the multiplexing module 14 visibility over this broadcast information is to ask the packetization modules to associate with each packet written in the buffer PMi three election parameters each corresponding to a time expressed by compared to a time base common to the package and multiplexing modules. These three parameters are the minimum time Tmin, the maximum time Tmax and the ideal time Tideal of transmission of the packet with which they are associated.
  • Each processor 26 managing an elementary stream therefore defines a time window for the transmission of each packet created, and is free to adapt the width of this window to the nature of the stream it manages.
  • the multiplexing module 14 in its task and to allow it to generate a quality stream, it defines an ideal position of the packet in its window.
  • the management of the Tmin, Tmax and Tideal parameters is specific for each type of input stream.
  • the minimum transmission time Tmin is calculated by adding a latency time Tl to the entry time Te of the packet data in the input buffer 20 of the packetization module, and the difference Tmax - Tmin between the maximum time and the minimum time of emission is calculated as a function of the type of elementary flow and of the flow of this flow. If the source of the elementary flow has a regular flow, the input time Te is simply deduced by the processor 26 from the time of passage of the data by the detection circuit 22. If the source of the elementary flow has a flow in bursts, the entry time can be retrieved from bit rate information received from the encoder located upstream or read from the stream.
  • the latency time T1 is a programmable time intended to delay the emission of certain streams compared to others.
  • the window width Tmax - Tmin is taken smaller for temporal streams, in particular video streams, than for streams without very precise retransmission constraint, such as EMM conditional access data streams.
  • the difference Tmax - Tmin is also a decreasing function of the elementary flow rate.
  • the minimum time Tmin of retransmission of a packet is calculated as a function of the time of entry Te of the packet into the module and of a latency time Tl as in the previous case, and furthermore depending on the strategy adopted by the previous multiplexer. This strategy is indicated in the LTW fields of the TP headers of the stream or in descriptor fields, these fields being able to be read by the processor 26 via the detection circuit 22.
  • the minimum calculated time Tmin is for example delayed , compared to Te + Tl of the time corresponding to the window shift (LTW_offset) read in the stream.
  • the maximum re-transmission time Tmax is calculated according to the type of stream. For most of the elementary flows of a transport flow, the difference Tmax -Tmin is taken equal to 4 ms. However, for certain particular cases, this difference can be increased to alleviate the constraints of the multiplexing module.
  • the ideal time for sending a packet is obtained according to the multiplexing strategy adopted for the elementary stream containing this packet.
  • This ideal time can be defined by an offset from the minimum time Tmin, this offset being fixed or even proportional to the width Tmax - Tmin of the transmission window.
  • An "early” strategy corresponds to a Tideal time relatively close to the minimum time Tmin. Such a strategy favors the coder or the multiplexer situated upstream, which can have a reduced output buffer memory.
  • a “late” strategy corresponds to a Tideal time relatively distant from the minimum time Tmin. Such a strategy favors the decoder or the remultiplexer situated downstream in the sense that its input buffer memory can be reduced in size. There is a range of “early” and “late” strategies.
  • the election parameters stored in the ZMi parameter memories are the ideal transmission time Tidéal coded on 20 bits, the difference Tidéal - Tmin coded on 15 bits, and the difference Tmax - Tidéal coded on 15 bits, expressed in relation to a reference clock at 90 kHz. These parameters are stored at an address linked to the address of the associated packet in the PMi memory.
  • the parameters associated with a packet and stored in the ZMi parameter memories also include modification parameters allowing the multiplexing module 14 to update the header of the packet as a function of its transmission time when necessary.
  • modification parameters include for example:
  • a bit is enough to indicate whether such a field is present in the packet.
  • the modification parameters also indicate the position of this field in the packet;
  • the multiplexing module 14 comprises on the one hand a microprocessor 40 and an election circuit 42 which process the data contained in the parameter memories ZMi, and on the other hand a transfer sequencer 44 which controls the transfer of packets from the packet memories PMi to the output buffer 46 of the device. It will be understood that the multiplexing module 14 could include still other elements, for example for scrambling the transferred packets before writing them into the output buffer.
  • the multiplexing module 14 further comprises an additional packet memory PM0 and an associated parameter memory ZM0.
  • the PM0 memory contains information packets specific to the programs carried by the output multiplex (PSI), which specify, among other things, the PID identification parameters of the flows of each program (see chapter 2.4.4 of the document ISO / IEC 13818- 1). These PSI packets are written in the memory PM0 by a source (not shown) also belonging to the multiplexing module 14. This source also writes in the memory ZM0 election parameters associated with these packets: Tmin, Tmax, Tideal. The time constraints of the PSI packets not being very severe, the time window for transmission of these packets can be taken relatively wide.
  • FIG. 6 shows the data bus 10D and the address bus 10A included in the packet bus 10. These two buses 10A, 10D are connected respectively to the address and data inputs of each of the packet memories PMi.
  • the addresses on the bus 10A are generated by the transfer sequencer 44 under the control of the processor 40.
  • the data bus 10D is also connected to the input of the output buffer 46 where the writing of the data is controlled by the sequencer 44 .
  • Figure 6 also shows the 12D data bus and the address bus 12A controlled by the processor 40 and included in the parameter bus 12. These two buses 12A, 12D are respectively connected to the address and data inputs of each of the parameter memories ZMi.
  • the packet 10 and parameter 12 buses are linked together by a three-state gate 48 allowing the processor 40 to take control of the packet bus 10.
  • the processor 40 has a start address on the address bus 12A. This starting address is transmitted to the bus 10A via gate 48, and the sequencer address counter 44 initializes to the value of this starting address, then increments until the 188 bytes of the packet are transferred.
  • the address buses 10A, 12A are wide enough for the PMi packet and ZMi parameter memories to be seen as a single address space by the processor 40.
  • 24-bit address buses are suitable for a multiplexer or remultiplexer large capacity (m ⁇ 128 for example).
  • the data buses 10D, 12D can be 16-bit buses, transferring two bytes at a time.
  • the sequencer 44 is separated from the processor 40 in order to allow the processor 40 and the circuit 42 to carry out the processing relating to the transmission of a packet in the multiplex while the preceding packet of the multiplex is being transferred under control. of the sequencer. This allows the multiplexing module 14 to adapt to the high transmission rate required by the MPEG2 standard.
  • the treatments carried out before the transfer of a package include:
  • the processor 40 receives from the equipment located downstream of the device a signal CK of the timing of the output multiplex.
  • the processor 40 calculates the transmission time Ts of the next packet from this signal CK.
  • the choice of the packet memory from which the next packet will be extracted is made on the basis of this transmission time Ts and the election parameters Tmin, Tmax, Tideal present in the first positions of the parameter memories ZMi, c that is to say election parameters associated with the first packets waiting in each of the packet memories PMi.
  • valid_TP_flag [] is a array of length nb_sources consisting of boolean variables such as valid_TP_flag [current_channel] is true if a PMi packet memory is actually connected to the current_channel position and if this packet memory contains at least one packet awaiting transfer
  • the Tmin tables [] , Tmax [] and Tidéal [] contain the parameters for electing the first pending packets in each packet memory
  • current_priority is a priority coefficient calculated for the first pending packet in PM memory (current_channel)
  • elected_TP_priority is the priority coefficient maximized by the election algorithm, corresponding to the elected packet
  • a priority coefficient of -1 is assigned to a padding packet stored, for example, in PM0 memory to an address to which a memory number equal to -1 is assigned.
  • This padding packet is selected by default if no packet memory contains a packet which has reached its minimum transmission time Tmin. No packet can normally be transmitted after its maximum time Tmax, since the device is dimensioned so that the sum of the flow rates of the input flows is less than the flow rate of the output flow.
  • Figures 7 and 8 show the variations of the priority coefficient of a packet having a given transmission window [Tmin, Tmax] as a function of the transmission time Ts in the case of an "early” strategy figure 7 ) and in the case of a “late” strategy ( Figure 8 ,.
  • the election algorithm favors the flows for which a "early” strategy has been defined ".
  • the election algorithm presented in appendix 1 can be implemented by processor 40 while the previous packet of the multiplex is being transferred.
  • the processor 40 must perform readings in the parameter memories ZMi and then execute the algorithm. These tasks take a significant time to the processor. This is why, in high-speed applications, it is preferable to use a separate election circuit 42 as illustrated in FIG. 6.
  • a wired circuit 42 allows the election to be carried out more quickly than a processor, and relieves the burden. processor 40 of the corresponding calculations.
  • the multiplexing module 14 includes a two-access memory 50 connected to the parameter bus 12 to supply the parameters useful to the election circuit 42.
  • the election parameters Tideal, Tmax - Tideal and Tideal - Tmin associated with the first packet on standby in each packet memory PMi are read by the processor 40 in the corresponding parameter memory ZMi and are written in the memory 50 at an address ADD equal to the number of the packet memory.
  • FIG. 9 is a diagram of a wired election circuit.
  • This circuit 42 includes a register 52 in which the value of the next transmission time Ts is written by the processor 40.
  • a sequencer 54 supervises the operations performed by the circuit 42 in response to an election command EC received from the processor 40 The sequencer 54 begins by initializing the value of -1 (default packet packet) the contents of two registers 56, 58 intended to contain one the ADDS address corresponding to the selected packet memory and the other the coefficient of corresponding PRIO priority. The sequencer 54 then generates read orders in the working memory 50.
  • -1 default packet packet
  • the sequencer 54 then generates read orders in the working memory 50.
  • the election circuit 42 comprises a subtractor 60 receiving on its positive input the emission time Ts from the register 52 and on its negative input the ideal time Tideal from the memory 50.
  • the sign bit of the output of the subtractor 60 controls a multiplexer 62 of which one input (positive sign) receives the parameter Tmax - Tideal from memory 50 and the other input (negative sign) receives parameter Tideal - Tmin from memory 50.
  • a divider 64 calculates the quotient between the output of the subtractor 60 and the output of the multiplexer 62.
  • the priority coefficient of the current packet thus provided by the divider 64 is addressed to an input of a comparator 66 whose other input receives the content of the register 58.
  • An AND gate 68 receives on the one hand the bit BM relating to the current packet, and on the other hand the comparison bit produced by the comparator 66. This comparison bit is worth 1 if the calculated priority coefficient of the current packet is greater than that recorded in register 58 and 0 in the opposite case.
  • a shift register 70 delays the bit BM addressed to the AND gate 68 by a number of cycles equal to that necessary for the calculations performed by the elements 60 to 66.
  • the address ADD generated by the sequencer 54 is sent to register 56 after passing through a shift register 72 which delays it by the same number of cycles.
  • the priority coefficient produced by the divider 64 is sent to the register 58.
  • the cycle clock CCK is supplied by the sequencer 54 to the registers 56 to 58 for updating, but this updating is only carried out. on condition that the output of the AND gate 68 is at
  • the circuit 42 described above makes it possible to execute the election algorithm of appendix 1 in a very short time. Once the election circuit has scanned all the possible addresses, the address ADDS corresponding to the memory PMi where the next packet will be to be read is available in the register 56. The processor 40 can then read this register 56 by the via the parameter bus 12.
  • the modification parameters of the selected packet are read in the associated parameter memory ZMi;
  • the processor 40 analyzes these modification parameters and, if necessary performs the corresponding modifications of the packet in the memory PMi.
  • the processor 40 takes control of the packet bus 10 via the gate 48.
  • the modification addresses are deduced from the number of the selected memory and from the modification parameters.
  • the time data at modify (PCR or LTW) are modified according to the transmission time Ts previously calculated. If PID identification fields have to be modified, the processor 40 uses the map data of the output multiplex (PSI). While the processor 40 takes control of the packet bus 10, the sequencer 44 interrupts the transfer of the packet in progress;
  • the processor 40 determines, as a function of the ADDS number of the selected packet memory, the starting address to be supplied to the transfer sequencer 44 for the transfer of the next packet of the OS multiplex; the processor determines this starting address so as to respect the order of entry of the packets in each packet memory;
  • the election parameters of the packet which came in second position in the selected memory PMi are read from the associated parameter memory ZMi and written into the working memory 50 at the corresponding address; in the absence of such a second packet, the corresponding bit BM is set to 0 in the working memory 50;
  • the processor 40 calculates the transmission time Ts of the following packet and supplies it to the election circuit 42 as well as the following election order EC.
  • processor 40 can also perform other functions which are not detailed here since they are not directly concerned with the present invention.
  • the proposed organization of the multiplexing module is well suited to the constraints imposed by the MPEG2 system standard.
  • the packetization modules provide the multiplexing module with information giving it the possibility of achieving an optimal distribution of the packets over time, giving it not only the ideal time of broadcast of each packet, but also the minimum time and the maximum time allowing to respect the input buffers of a decoder located downstream.
  • the multiplexing module does not have to know the multiplexing characteristics of the sources it manages (bit rate, critical multiplexing factor). It is therefore possible to define a generic multiplexing card which covers the multiplexing aspects proper but also remultiplexing, this allowing very great flexibility.
  • the multiplexing processor is relieved to manage cumbersome configurations in terms of number and bit rate of elementary streams, without the need for prohibitive computing power.
  • the multiplexing process is very systematic and can in part be implemented in very fast wired logic such as the election circuit 42.
  • the number m of elementary streams that can be managed is limited only by the width of the address buses of the multiplexing module. This allows great flexibility, since one can easily add or remove package modules to the multiplexing module.
  • the device configures itself at power-up and knows how many package modules are present, and at which addresses on the packet bus and on the parameter bus it will write their data.
  • each packet from each source pending in the packet memory space has an associated zone in the parameter memory space.
  • FIG. 10 A variant embodiment of the device in FIG. 1 is shown in FIG. 10.
  • the interface between the packaging modules C1, ..., Cn and the multiplexing module 14 includes packet memories PM1, ..., PMm, memories ZMI, ..., ZMm for receiving the parameters for electing the packets and memories YM1, ..., YMm for receiving the parameters package modification.
  • Each package module therefore writes the modification parameters in a memory YMi also associated with the packet memory PMi, but distinct (at least as far as addressing is concerned) from the memory ZMi of the election parameters.
  • the bus 12 which allows the multiplexing module 14 to see all of the memories ZMi as a single address space is used in this variant only for reading the election parameters.
  • a similar bus 16 is provided between the multiplexing module 14 and the memories YMi to read the modification parameters.
  • the YMi memories are therefore also seen as a single address space by the multiplexing module.
  • This architecture allows the processor of the multiplexing module to carry out the modification of one or more elected packets while the election circuit selects a packet memory for a next packet of the OS output multiplex, it being observed that several packets can be elected in advance, the transmission times Ts of the packets can be anticipated. For example, while packet N leaves the output buffer, packet N + 1 can be written to the output buffer, packet N + 2 can be modified in its packet memory and packet N + 3 can be elected . By thus increasing the parallelization of operations, it is possible to adapt to even higher output flow rates.

Abstract

A device including a plurality of packetising modules (C1, C2, ..., Cn) supplying packet memories (PM1, PM2, ..., PMm) from digital input streams (IS1, IS2, ..., ISn), and multiplexing means (14). Each packet in a packet memory is combined with selection parameters written into a related parameter memory (ZM1, ZM2, ..., ZMm) by its packetising module. The multiplexing means include processing means connected to the parameter memories via a parameter bus (12) for selecting the packet memories from which the multiplex packets are to be retrieved by analysing the respective selection parameters combined with the first packets on stand-by in each of the packet memories, and transfer means connected to the packet memories via a packet bus (10) and controlled by the processing means to retrieve a series of multiplex packets from the selected packet memories.

Description

MULTIPLEXEUR DE PAQUETS D'INFORMATIONS NUMERIQUES, NOTAMMENT POUR LA TELEVISION NUMERIQUE  MULTIPLEXER OF DIGITAL INFORMATION PACKETS, ESPECIALLY FOR DIGITAL TELEVISION
La présente invention concerne un dispositif pour produire un multiplex temporel de paquets d'informations numériques, comprenant plusieurs modules de paquétisation recevant chacun un flux numérique d'entrée, plusieurs mémoires de paquets recevant chacune des paquets issus d'un module de paquétisation respectif, et des moyens de multiplexage sélectionnant les mémoires de paquets d'où les paquets du multiplex sont à extraire et transférant successivement lesdits paquets vers une sortie du dispositif. The present invention relates to a device for producing a time multiplex of digital information packets, comprising several packetization modules each receiving a digital input stream, several packet memories each receiving packets from a respective packetization module, and multiplexing means selecting the packet memories from which the multiplex packets are to be extracted and successively transferring said packets to an output of the device.
L'invention concerne plus particulièrement le domaine de la télévision numérique. Elle s'applique notamment dans le cadre de la norme système MPEG2 définie dans le projet de norme internationale ISO/IEC 13818-1 de l'Organisation Internationale de Normalisation en date du 10 juin 1994 (Information Technology - Generic Coding of Moving Pictures and Associated Audio/ Recommandation H.222.0). On pourra se reporter à ce document ISO/IEC 13818-1 pour toute information sur la structure des paquets dont il est question dans la présente demande.  The invention relates more particularly to the field of digital television. It applies in particular within the framework of the MPEG2 system standard defined in the draft international standard ISO / IEC 13818-1 of the International Organization for Standardization dated June 10, 1994 (Information Technology - Generic Coding of Moving Pictures and Associated Audio / Recommendation H.222.0). Reference may be made to this ISO / IEC 13818-1 document for any information on the structure of the packages referred to in the present request.
La norme système MPEG2 définit deux types de flux numériques multiplexes : les flux de transport (TS), et les flux de programme (PS). Un "programme" est défini comme un ensemble de flux élémentaires corrélés temporellement, c'est-à-dire portant chacun des informations à restituer par rapport à une base de temps commune. Un flux de programme PS transmet un seul programme sous forme de paquets de longueur relativement importante et éventuellement variable. Les flux PS sont prévus pour les canaux de transmission introduisant peu d'erreurs. Ils sont typiquement utilisés pour le stockage d'informations sur disque. Les flux de transport se composent de paquets appartenant à un ou plusieurs programmes, et sont utilisés pour la transmission dans des environnements pouvant introduire des erreurs. Les paquets de transport (TP) ont une longueur fixe de 188 octets et comprennent chacun un en-tête TP d'au moins 4 octets. The MPEG2 system standard defines two types of multiplex digital streams: transport streams (TS), and program streams (PS). A "program" is defined as a set of elementary flows correlated in time, that is to say each carrying information to be restored with respect to a common time base. A program stream PS transmits a single program in the form of packets of relatively large length and possibly variable. PS flows are intended for transmission channels which introduce few errors. They are typically used for storing information on disk. Transport flows are consist of packets belonging to one or more programs, and are used for transmission in environments which may introduce errors. Transport packets (TP) have a fixed length of 188 bytes and each include a TP header of at least 4 bytes.
Ces flux multiplexes sont construits à partir de flux élémentaires paquétisés (PES). Les flux élémentaires bruts (ES) directement issus du codage vidéo ou audio sont d'abord mis sous forme de paquets PES de longueur variable. Les flux PES sont ensuite redécoupés pour constituer les paquets TS ou PS à multiplexer. Actuellement, certains codeurs sortent des flux élémentaires au niveau ES, et d'autres au niveau PES. Les flux élémentaires peuvent également être composés de données autres qu' audio ou vidéo, par exemple des données détaillant des informations spécifiques à un programme (PSI), des données relatives à l'accès conditionnel à un programme (ECM ou EMM) ...  These multiplex flows are constructed from elementary packet flows (PES). The raw elementary streams (ES) directly coming from the video or audio coding are first put in the form of PES packets of variable length. The PES flows are then re-cut to constitute the TS or PS packets to be multiplexed. Currently, some coders leave elementary streams at the ES level, and others at the PES level. The elementary streams can also be composed of data other than audio or video, for example data detailing information specific to a program (PSI), data relating to conditional access to a program (ECM or EMM) ...
Le rôle d'un multiplexeur MPEG2 est de recevoir ces différents flux élémentaires, d'effectuer la mise en paquets TS ou PS, puis le multiplexage temporel de ces paquets.  The role of an MPEG2 multiplexer is to receive these different elementary streams, to carry out TS or PS packets, then time multiplexing of these packets.
Un dispositif selon l'invention peut également être ce qu'on appelle un remultiplexeur. Un remultiplexeur est un dispositif pour produire un multiplex tel que défini en introduction, dans lequel l'un au moins des flux d'entrée a déjà été multiplexe en amont, au format PS ou TS. Un remultiplexeur peut être utilisé par exemple pour extraire d'un flux de transport des paquets relatifs à un programme et produire en sortie un autre flux de transport ou de programme ne comportant que ce programme, pour extraire d'un ou plusieurs flux de transport les paquets relatifs à un ou plusieurs programmes afin de construire un autre flux de transport, ou encore pour convertir un flux de programme en un flux de transport en vue de le transmettre dans un environnement à pertes.  A device according to the invention can also be what is called a remultiplexer. A remultiplexer is a device for producing a multiplex as defined in the introduction, in which at least one of the input streams has already been multiplexed upstream, in PS or TS format. A remultiplexer can be used for example to extract from a transport stream packets relating to a program and produce as output another transport stream or program comprising only this program, to extract from one or more transport streams the packets relating to one or more programs in order to construct another transport flow, or else to convert a program flow into a transport flow in order to transmit it in a lossy environment.
La norme système MPEG2 spécifie de façon précise les contraintes qu'un multiplexeur doit prendre en compte lors du multiplexage des paquets transportant les différents flux élémentaires du signal. En effet, afin d'optimiser la taille des tampons d'entrée nécessaires dans un décodeur (et donc afin de réduire le prix de ces décodeurs), il est nécessaire d'avoir dans le temps une répartition aussi homogène que possible des paquets de chaque flux élémentaire. Dans le cas d'un grand nombre de flux élémentaires à gérer et de débits importants pour ces flux, le travail du multiplexeur peut nécessiter une grande puissance de calcul, et d'autre part la méthode de multiplexage choisie pourra conduire à des flux multiplexes de sortie de qualité différente (en termes de répartition des paquets). The MPEG2 system standard specifies precisely the constraints that a multiplexer must take into account when multiplexing of packets transporting the various elementary signal flows. Indeed, in order to optimize the size of the input buffers necessary in a decoder (and therefore in order to reduce the price of these decoders), it is necessary to have over time a distribution as homogeneous as possible of the packets of each elementary flow. In the case of a large number of elementary streams to be managed and of significant bit rates for these streams, the work of the multiplexer may require great computing power, and on the other hand the chosen multiplexing method may lead to multiplex streams of different quality output (in terms of packet distribution).
Un but de la présente invention est de proposer un dispositif tel que défini en introduction, qui soit flexible et efficace pour pouvoir atteindre des débits élevés.  An object of the present invention is to provide a device as defined in the introduction, which is flexible and efficient in order to be able to reach high flow rates.
Un dispositif selon l'invention comprend ainsi des mémoires de paramètres respectivement associées aux mémoires de paquets. Chaque paquet fourni à une mémoire de paquets par un module de paquétisation est associé à un jeu de paramètres, incluant des paramètres d'élection, écrit par ledit module de paquétisation dans la mémoire de paramètres correspondante. Les moyens de multiplexage comprennent des moyens de traitement reliés aux mémoires de paramètres par un bus de paramètres pour sélectionner les mémoires de paquets en analysant les paramètres d'élection respectivement associés aux premiers paquets en attente dans chacune des mémoires de paquets, et des moyens de transfert reliés aux mémoires de paquets par un bus de paquets et commandés par les moyens de traitement pour extraire successivement les paquets du multiplex depuis les mémoires de paquets sélectionnées, les moyens de traitement sélectionnant la mémoire de paquets d'où un paquet du multiplex est à extraire pendant que les moyens de transfert transfèrent un paquet précédent du multiplex depuis une mémoire de paquets précédemment sélectionnée. La communication entre les modules de paquétisation spécifiques et le module de multiplexage s'effectue par une interface de type plan mémoire. Les mémoires de paquets relatives aux différents modules de paquétisation sont vues comme des zones particulières de l'espace adressable du module de multiplexage, de même que les mémoires de paramètres associées. Les données transitant par ce plan mémoire sont organisées de façon identique quel que soit le type de flux d'entrée correspondant, ce qui permet au module de multiplexage d'avoir un travail systématique et donc plus efficace. Les échanges via cette interface sont organisés autour de deux bus, ce qui permet au module de multiplexage d'effectuer ses tâches en parallèle et non de façon séquentielle. A device according to the invention thus comprises parameter memories respectively associated with the packet memories. Each packet supplied to a packet memory by a packetization module is associated with a set of parameters, including election parameters, written by said packetization module in the corresponding parameter store. The multiplexing means comprise processing means connected to the parameter memories by a parameter bus to select the packet memories by analyzing the election parameters respectively associated with the first packets waiting in each of the packet memories, and means for transfer connected to the packet memories by a packet bus and controlled by the processing means for successively extracting the packets from the multiplex from the selected packet memories, the processing means selecting the packet memory from where a packet from the multiplex is at extracting while the transfer means transfer a previous packet of the multiplex from a previously selected packet memory. The communication between the specific package modules and the multiplexing module takes place via a memory plane type interface. The packet memories relating to the various package modules are seen as particular areas of the addressable space of the multiplexing module, as are the associated parameter memories. The data passing through this memory plane are organized identically whatever the type of corresponding input stream, which allows the multiplexing module to have systematic and therefore more efficient work. The exchanges via this interface are organized around two buses, which allows the multiplexing module to perform its tasks in parallel and not sequentially.
D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'un exemple de réalisation préféré mais non limitatif, en référence aux dessins annexés, dans lesquels :  Other particularities and advantages of the present invention will appear in the description below of a preferred but nonlimiting embodiment, with reference to the appended drawings, in which:
- la figure 1 est un schéma synoptique d'ensemble d'un premier mode de réalisation de l'invention ;  - Figure 1 is a block diagram of a first embodiment of the invention;
- la figure 2 est un schéma synoptique d'un module de paquétisation utilisable dans le dispositif de la figure 1 ;  - Figure 2 is a block diagram of a package module usable in the device of Figure 1;
- les figures 3 à 5 sont des diagrammes illustrant le fonctionnement de modules de paquétisation selon la figure 2 ;  - Figures 3 to 5 are diagrams illustrating the operation of package modules according to Figure 2;
la figure 6 est un schéma d'un module de multiplexage utilisable dans le dispositif de la figure 1 ;  Figure 6 is a diagram of a multiplexing module usable in the device of Figure 1;
- les figures 7 et 8 sont des graphiques illustrant un exemple de calcul de priorités dans un module de multiplexage ;  - Figures 7 and 8 are graphs illustrating an example of priority calculation in a multiplexing module;
- la figure 9 est un schéma d'un circuit d'élection utilisable dans le module de multiplexage de la figure 6 ; et  - Figure 9 is a diagram of an election circuit usable in the multiplexing module of Figure 6; and
- la figure 10 est un schéma synoptique d'ensemble d'un second mode de réalisation de l'invention. Le dispositif représenté sur la figure 1 est décrit ci-après dans son application à la production d'un multiplex de sortie OS ayant le format d'un flux de transport TS au sens de la norme MPEG2. On comprendra que le dispositif serait également applicable pour produire un autre type de multiplex, en particulier un flux de programme PS au sens de la norme MPEG2. - Figure 10 is an overall block diagram of a second embodiment of the invention. The device represented in FIG. 1 is described below in its application to the production of an OS output multiplex having the format of a TS transport stream within the meaning of the MPEG2 standard. It will be understood that the device would also be applicable for producing another type of multiplex, in particular a PS program stream within the meaning of the MPEG2 standard.
Le dispositif comporte n modules de paquétisation C1 , ... , Cn recevant chacun un flux d ' entrée IS1 , ... , ISn . Les n flux d'entrée portent un total de m flux élémentaires. Dans le cas d'un multiplexeur dont les flux d'entrée sont tous constitués par des flux élémentaires respectivement issus de codeurs ou de sources de données, on a n = m. Dans l'exemple représenté sur la figure 1, le flux IS2 est déjà multiplexe (par exemple flux de transport TS), et le dispositif est prévu pour prendre en compte deux flux élémentaires inclus dans ce flux multiplexe.  The device comprises n package modules C1, ..., Cn each receiving an input stream IS1, ..., ISn. The n input flows carry a total of m elementary flows. In the case of a multiplexer whose input streams are all constituted by elementary streams respectively coming from coders or from data sources, we have n = m. In the example shown in FIG. 1, the stream IS2 is already multiplexed (for example transport stream TS), and the device is designed to take into account two elementary streams included in this multiplexed stream.
Les modules de paquétisation C1, ... ,Cn délivrent des paquets de transport TP à partir de chacun des flux élémentaires qu'ils reçoivent. Ces paquets de transport sont stockés dans des mémoires tampon à deux accès PM1,..., PMm. Chaque mémoire de paquets PMi reçoit des paquets d'un module de paquétisation. Les modules de paquétisation C2 traitant des flux déjà multiplexes peuvent alimenter plusieurs mémoires de paquets PM2, PM3. Dans ce dernier cas, les mémoires de paquets PM2, PM3 peuvent commodément être constituées par deux zones d'adressage différentes d'un même plan mémoire.  The package modules C1, ..., Cn deliver transport packets TP from each of the elementary streams they receive. These transport packets are stored in two access buffer memories PM1, ..., PMm. Each PMi packet memory receives packets from a packetization module. The C2 package modules processing already multiplexed flows can supply several packet memories PM2, PM3. In the latter case, the packet memories PM2, PM3 can conveniently be constituted by two different addressing zones of the same memory plane.
Chaque mémoire de paquets PMi est associée à une mémoire de paramètres ZMi également à deux accès. Chaque fois qu'un module de paquétisation écrit un paquet d'informations dans une mémoire de paquets PMi, il écrit en outre un jeu de paramètres associé à ce paquet dans la mémoire de paramètres correspondante ZMi. Pour la lecture, les mémoires de paquets PM1, ... , PMm sont reliées à un bus de paquets commun 10, et les mémoires de paramètres ZM1,..., ZMm sont reliées à un bus de paramètres commun 12. Ces deux bus sont reliés à un module de multiplexage 14 ayant pour rôle de sélectionner les mémoires PMi d'où les paquets du multiplex de sortie OS sont à extraire et de transférer successivement les paquets en question vers la sortie du dispositif. Each packet memory PMi is associated with a parameter memory ZMi also with two ports. Each time a packetization module writes an information packet in a packet memory PMi, it also writes a set of parameters associated with this packet in the corresponding parameter memory ZMi. For reading, the packet memories PM1, ..., PMm are connected to a common packet bus 10, and the parameter memories ZM1, ..., ZMm are connected to a common parameter bus 12. These two buses are connected to a multiplexing module 14 whose role is to select the memories PMi from which the packets of the output multiplex OS are to be extracted and to successively transfer the packets in question to the output of the device.
Les modules de paquétisation Cj analysent en temps réel les flux élémentaires qu'ils reçoivent et fournissent les paquets de transport aux mémoires tampon PMi. L'analyse en temps réel d'un flux élémentaire et la double mise en paquets (couches PES et TP) peuvent nécessiter une grande puissance de calcul, notamment pour des flux vidéo qui peuvent atteindre des débits de 15 Mbit/s en résolution standard, ou plus de 100 Mbit/s en haute résolution. Le module de paquétisation C1 illustré sur la figure 2 permet de répondre à ces exigences sévères.  The package modules Cj analyze the elementary flows they receive in real time and provide the transport packets to the PMi buffer memories. Real-time analysis of an elementary stream and double packetization (PES and TP layers) may require great computing power, in particular for video streams which can reach bit rates of 15 Mbit / s in standard resolution, or more than 100 Mbit / s in high resolution. The C1 package module illustrated in FIG. 2 makes it possible to meet these severe requirements.
Ce module C1 comprend un tampon d'entrée 20 recevant le flux d'entrée IS1. En sortie du tampon 20, les octets du flux d'entrée passent par un circuit de détection 22 avant d'être transmis à une unité de stockage 23 de type premier entré-premier sorti (FIFO). La sortie de l'unité 23 est reliée à l'entrée de données de la mémoire de paquets PMI.  This module C1 includes an input buffer 20 receiving the input stream IS1. At the output of the buffer 20, the bytes of the input stream pass through a detection circuit 22 before being transmitted to a storage unit 23 of the first in first out (FIFO) type. The output of the unit 23 is connected to the data input of the packet memory PMI.
Le circuit de détection 22 est réalisé sous la forme d'un réseau de portes programmable par l'utilisateur (FPGA). II se compose d'un registre à décalage 24 à quatre étages d'un octet, par lequel passent les octets du flux d'entrée avant de parvenir à l'unité de stockage 23, et d'une logique de détection 25 recevant les quatre octets présents dans les étages du registre 24. La logique 25 est programmée en fonction des états à détecter dans le flux d'entrée. La logique 25 détecte ces états du flux d'entrée et en informe un microprocesseur 26. Le processeur 26 peut accéder à la mémoire de paramètres ZMI par ses bus d'adresse et de données 28, 29. Les bus 28, 29 sont également reliés à la mémoire de paquets PMI par l'intermédiaire d'une porte à trois états 31. L'unité de stockage 23 est gérée pour contenir à tout instant 184 octets du flux d'entrée, et pour que chaque octet sortant de cette unité provoque l'entrée d'un autre octet. L'unité 23 pourrait donc être réalisée simplement sous la forme d'un registre à décalage à 184 étages d'un octet. Si on ne dispose pas de registres à décalage de cette taille, on peut en cascader plusieurs, ou encore utiliser une mémoire à accès aléatoire dont les adresses de lecture et d'écriture sont générées de manière à garder entre elles un écart constant correspondant à une capacité de 184 octets. The detection circuit 22 is produced in the form of a network of doors programmable by the user (FPGA). It consists of a shift register 24 with four stages of a byte, through which the bytes of the input stream pass before reaching the storage unit 23, and a detection logic 25 receiving the four bytes present in the stages of register 24. Logic 25 is programmed according to the states to be detected in the input stream. The logic 25 detects these states of the input stream and informs a microprocessor 26. The processor 26 can access the parameter memory ZMI by its address and data buses 28, 29. The buses 28, 29 are also connected to the PMI packet memory via a three-state gate 31. The storage unit 23 is managed to contain 184 bytes of the input stream at any time, and so that each byte leaving this unit causes the entry of another byte. The unit 23 could therefore be produced simply in the form of a shift register with 184 stages of a byte. If one does not have shift registers of this size, one can cascade several of them, or even use a random access memory whose read and write addresses are generated so as to keep between them a constant difference corresponding to a capacity of 184 bytes.
En fonction des états détectés par la logique 25, le processeur 26 fournit à un séquenceur de transferts 32 des paramètres de commande pour effectuer les transferts des octets du flux d'entrée de l'unité de stockage 23 vers la mémoire de paquets PMI. Ces paramètres de commande comprennent une adresse de départ pour l'écriture des données d'un paquet dans la mémoire PM1, et le nombre d'octets à transférer à partir de cette adresse. Le séquenceur 32 comprend un compteur d'adresse qui s'initialise à la valeur de l'adresse de départ fournie par le processeur, et qui s'incrémente à chaque octet transféré jusqu'à ce que le nombre d'octets spécifié ait été transféré. Ce compteur fournit les adresses d'écriture des octets dans la mémoire PMI. Si l'unité de stockage 23 est sous la forme d'une mémoire à accès aléatoire, le séquenceur 32 fournit également l'adresse de lecture de l'octet à transférer de façon à respecter le protocole premier entré - premier sorti dans cette mémoire. Le séquenceur délivre un signal SC qui cadence les transferts de et vers l'unité 23, les décalages dans le registre 24 du of uit de détection, et les lectures d'octets dans le tampon d'entrée 20.  As a function of the states detected by the logic 25, the processor 26 supplies a transfer sequencer 32 with control parameters for carrying out the bytes of the input stream from the storage unit 23 to the packet memory PMI. These control parameters include a starting address for writing the data of a packet in the memory PM1, and the number of bytes to be transferred from this address. Sequencer 32 includes an address counter which initializes to the value of the starting address supplied by the processor, and which increments with each byte transferred until the specified number of bytes has been transferred . This counter provides the write addresses of the bytes in the PMI memory. If the storage unit 23 is in the form of a random access memory, the sequencer 32 also supplies the reading address of the byte to be transferred so as to comply with the first in - first out protocol in this memory. The sequencer delivers a signal SC which rates the transfers from and to the unit 23, the shifts in the register 24 of the detection unit, and the byte readings in the input buffer 20.
Dans l'exemple représenté sur la figure 2, le flux d'entrée IS1 est un flux élémentaire (ES ou PES) à mettre en paquets. La logique de détection 25 est programmée pour détecter des mots de synchronisation dans le flux d'entrée. En fonction des états détectés par la logique 25, le processeur 26 détermine la longueur et le contenu de l'entête à placer au début du prochain paquet de transport à inscrire dans la mémoire PM1. Cet en-tête est déterminé conformément aux spécifications de la norme MPEG2, le processeur 26 exécutant un programme de formation d' en-tête tel que décrit dans le document ISO/IEC 13818-1. La longueur L de l'en-tête peut varier entre k = 4 octets et K = 188 octets. Ainsi, la capacité de K - k = 184 octets de l'unité de stockage 23 garantit que la totalité des octets du flux d'entrée pouvant être introduits dans un paquet de transport ont été analysés par le circuit de détection 22 avant que ce paquet commence à être transféré de l'unité de stockage 23 vers la mémoire de paquet PMI. In the example shown in FIG. 2, the input stream IS1 is an elementary stream (ES or PES) to be packaged. The detection logic 25 is programmed to detect synchronization words in the input stream. As a function of the states detected by the logic 25, the processor 26 determines the length and the content of the header to be placed at the start of the next transport packet to be written into the memory PM1. This header is determined in accordance with the specifications of the MPEG2 standard, the processor 26 executing a header training program as described in the document ISO / IEC 13818-1. The length L of the header can vary between k = 4 bytes and K = 188 bytes. Thus, the capacity of K - k = 184 bytes of the storage unit 23 guarantees that all of the bytes of the input stream that can be introduced into a transport packet have been analyzed by the detection circuit 22 before this packet begins to be transferred from the storage unit 23 to the packet memory PMI.
La figure 3 illustre la construction de paquets de transport TP par le module de paquétisation dans le cas d'un flux élémentaire brut ES issu d'un codeur audio. Conformément à la norme MPEG2, le flux ES audio se compose de trames de longueur constante commençant chacune par un en-tête de trame 35A. L'en-tête 35A contient un mot de synchronisation de 12 bits valant FFF en hexadécimal. La logique de détection 25 d'un module de paquétisation traitant un flux ES audio est donc programmée pour détecter ce mot de synchronisation FFF. Un flux PES construit à partir d'un tel flux ES peut comprendre un en-tête PES 36 immédiatement avant chaque en-tête ES 35A. Toutefois, le présent module de paquétisation, lorsqu'il traite un flux ES audio, ne passe pas explicitement par le stade PES, mais au contraire construit directement des paquets de transport TP. Dans le cas montré sur la figure 3, tant que la logique 25 ne détecte pas le mot de synchronisation FFF dans le flux d'entrée, le processeur 26 calcule un en-tête 37a de L = 4 octets, et commande le transfert de 188 - L = 184 octets de l'unité de stockage 23 vers la mémoire PMI pour constituer un paquet de transport TP. Lorsque la logique 25 détecte un mot de synchronisation pendant le transfert d'un paquet vers la mémoire PMI, le processeur 26 calcule la longueur L de l'en-tête 37b du paquet suivant de façon à compléter un paquet de transport de 188 octets avec les octets du flux élémentaire allant jusqu'au mot de synchronisation détecté. Pour produire un en-tête de longueur L plus grande que 4 octets, le processeur 26 introduit des paramètres de gestion du flux ou des octets de bourrage dans le champ d'adaptation de l' en-tête, comme spécifié par la norme système MPEG2. Le paquet qui suivra le paquet de transport ainsi constitué ne comportera aucun octet du flux d'entrée, mais uniquement un en-tête TP 37c et un en-tête PES 36. On peut donc considérer que le processeur 26 a déterminé un en-tête composite 37c-36 de L = 188 octets et a commandé le transfert de K - L = 0 octets depuis l'unité 23 au titre de ce paquet. L'en-tête PES 36 est calculé conformément à la norme système MPEG2, et la longueur de l' en-tête TP 37c sera adaptée au moyen du champ d'adaptation comme pour le paquet précédent. FIG. 3 illustrates the construction of transport packets TP by the package module in the case of a raw elementary stream ES originating from an audio coder. In accordance with the MPEG2 standard, the audio ES stream consists of frames of constant length, each starting with a 35A frame header. The header 35A contains a 12-bit synchronization word equal to FFF in hexadecimal. The detection logic 25 of a package module processing an audio ES stream is therefore programmed to detect this synchronization word FFF. A PES stream constructed from such an ES stream may include a PES header 36 immediately before each ES header 35A. However, the present package module, when it processes an audio ES stream, does not explicitly pass through the PES stage, but on the contrary directly constructs TP transport packets. In the case shown in FIG. 3, as long as the logic 25 does not detect the synchronization word FFF in the input stream, the processor 26 calculates a header 37a of L = 4 bytes, and controls the transfer of 188 - L = 184 bytes from the storage unit 23 to the memory PMI to constitute a transport packet TP. When logic 25 detects a synchronization word during the transfer of a packet to the PMI memory, the processor 26 calculates the length L of the header 37b of the next packet so as to complete a transport packet of 188 bytes with the bytes of the elementary stream going up to the synchronization word detected. To produce a header of length L greater than 4 bytes, the processor 26 introduces flow management parameters or stuffing bytes in the adaptation field of the header, as specified by the MPEG2 system standard. . The packet which will follow the transport packet thus formed will not contain any byte of the input stream, but only a TP 37c header and a PES header 36. It can therefore be considered that the processor 26 has determined a header composite 37c-36 of L = 188 bytes and ordered the transfer of K - L = 0 bytes from unit 23 under this packet. The PES 36 header is calculated in accordance with the MPEG2 system standard, and the length of the TP 37c header will be adapted using the adaptation field as for the previous packet.
La figure 4 est un diagramme analogue à celui de la figure 3 dans le cas d'un flux ES de type vidéo. Selon la norme MPEG2 , un flux ES de type vidéo comprend trois types d' en-têtes : des en-têtes de séquence 35S contenant un mot de synchronisation de 4 octets valant 000001B3 en hexadécimal, des en-têtes de groupe d'images 35G contenant un mot de synchronisation de 4 octets valant 000001B8 en hexadécimal, et des en-têtes d'image 35P contenant un mot de synchronisation de 4 octets valant 00000100 en hexadécimal. La structure du flux ES vidéo est telle qu'un en-tête de séquence 35S est toujours suivi immédiatement par un en-tête de groupe d'images 35G ou par un en-tête d'image 35P, et qu'un en-tête de groupe d'images 35G est toujours suivi par un en-tête d'image 35P. La longueur des données vidéo relatives à une image, suivant chaque en-tête d'image 35P, est variable. Un flux PES construit à partir d'un tel flux ES vidéo peut contenir un en-tête PES 36 avant chaque entête de séquence 35S, avant chaque en-tête de groupe 35G qui n'est pas immédiatement précédé par un en-tête de séquence 35S, et avant chaque en-tête d'image 35P qui n'est pas immédiatement précédé par un en-tête de groupe 35G. Toutefois, le présent module de paquétisation, lorsqu'il traite un flux ES vidéo, ne produit pas explicitement le flux PES correspondant, mais directement des paquets de transport TP. L'insertion des en-têtes PES et TP est pour l'essentiel effectuée de la même manière que dans le cas audio décrit en référence à la figure 3, la logique de détection 25 étant programmée pour détecter les mots de synchronisation des en-têtes 35S, 35G et 35P. Toutefois, le processeur 26 n'insère pas un en-tête PES 36 avant tous les en-têtes d'image 35P, mais uniquement avant ceux qui ne sont pas précédés immédiatement par un en-tête de groupe d'imagesFIG. 4 is a diagram similar to that of FIG. 3 in the case of an ES stream of the video type. According to the MPEG2 standard, a video type ES stream comprises three types of headers: 35S sequence headers containing a 4-byte synchronization word equal to 000001B3 in hexadec, 35G image group headers containing a 4-byte synchronization word with the value 000001B8 in hexadecimal, and 35P image headers containing a 4-byte synchronization word with the value 00000100 in hexadecimal. The structure of the video ES stream is such that a 35S sequence header is always immediately followed by a 35G image group header or by a 35P image header, and that a header 35G image group is always followed by a 35P image header. The length of the video data relating to an image, according to each 35P image header, is variable. A PES stream constructed from such a video ES stream may contain a PES header 36 before each 35S sequence header, before each 35G group header which is not immediately preceded by a sequence header 35S, and before each 35P image header which is not immediately preceded by a 35G group header. However, the present packetization module, when processing a video ES stream, does not explicitly produce the corresponding PES stream, but directly TP transport packets. The insertion of the PES and TP headers is essentially carried out in the same way as in the audio case described with reference to FIG. 3, the detection logic 25 being programmed to detect the synchronization words of the headers 35S, 35G and 35P. However, processor 26 does not insert a PES header 36 before all 35P image headers, but only before those which are not immediately preceded by an image group header
35G ou par un en-tête de séquence 35S. De même, le processeur 26 n'insère pas un en-tête PES avant tous les entêtes de groupe d'images 35G, mais uniquement avant ceux qui ne sont pas immédiatement précédés par un en-tête de séquence 35S. Ces différentes conditions peuvent aisément être identifiées sur la base des mots de synchronisation détectés par la logique 25. 35G or by a 35S sequence header. Likewise, processor 26 does not insert a PES header before all 35G image group headers, but only before those which are not immediately preceded by a 35S sequence header. These different conditions can easily be identified on the basis of the synchronization words detected by the logic 25.
La figure 5 est un diagramme analogue à ceux des figures 3 et 4 dans le cas d'un flux d'entrée de type PES audio ou vidéo. L'en-tête PES 36 présent dans chaque paquet du flux PES contient un mot de synchronisation de 4 octets dont les trois premiers valent 000001 en hexadécimal et le quatrième est un octet d'identification du flux. Cet octet d'identification étant connu d'avance pour un flux PES donné à traiter par le module de paquétisation, on peut programmer la logique 25 pour détecter les mots de synchronisation de 4 octets du flux PES. Le découpage en paquets de transport TP est alors effectué par le processeur 26 de la même manière que dans le cas des figures 3 et 4, sur la base des en-têtes PES 36. Le processeur 26 ne tient pas compte des en-têtes ES 35 qui sont traités comme des données du flux élémentaire. Comme dans les cas des figures 3 et 4, on peut programmer le processeur 26 pour qu'un paquet TP contenant un en-tête PES 36 ne contienne pas de données du flux élémentaire. Le processeur 26 a alors besoin de connaître la longueur L' de l' en-tête PES pour constituer un paquet ne contenant qu'un en-tête TP 37c de longueur L = K - L' octets suivi par l' en-tête PES 36. Cette longueur L' peut être lue dans l' en-tête PES lui-même au moyen du circuit de détection 22 : si le septième octet à partir du début de l' en-tête PES ne commence pas par les deux bits '10', l'en-tête PES a une longueur de L' = 6 octets ; sinon la longueur L' est lue dans le neuvième octet à partir du début de l' en-tête PES (voir document ISO/IEC 13818-1). FIG. 5 is a diagram similar to those of FIGS. 3 and 4 in the case of an audio or video PES type input stream. The PES header 36 present in each packet of the PES stream contains a synchronization word of 4 bytes, the first three of which are worth 000001 in hexadecimal and the fourth is a byte identifying the stream. This identification byte being known in advance for a given PES stream to be processed by the package module, logic 25 can be programmed to detect the 4 byte synchronization words of the PES stream. The division into TP transport packets is then carried out by the processor 26 in the same manner as in the case of FIGS. 3 and 4, on the basis of the PES headers 36. The processor 26 does not take account of the ES headers 35 which are treated as elementary stream data. As in the cases of FIGS. 3 and 4, the processor 26 can be programmed so that a TP packet containing a PES 36 header does not contain data from the elementary stream. The processor 26 then needs to know the length L 'of the PES header to constitute a packet containing only one TP header 37c of length L = K - L bytes followed by the PES header 36. This length L ′ can be read in the PES header itself by means of the detection circuit 22: if the seventh byte from the start of the PES header does not start with the two bits' 10 ', the PES header has a length of L' = 6 bytes; otherwise the length L 'is read in the ninth byte from the start of the PES header (see document ISO / IEC 13818-1).
L'avantage de constituer les paquets de transport contenant un en-tête PES 36 en mettant seulement dans ces paquets un en-tête TP 37a-c et ledit en-tête PES 36 est de permettre un embrouillage de tous les paquets de transport contenant des données du flux élémentaire ES, l' en-tête PES ne devant pas être embrouillé.  The advantage of constituting the transport packets containing a PES 36 header by putting only in these packets a TP 37a-c header and said PES header 36 is to allow scrambling of all the transport packets containing ES elementary stream data, the PES header should not be scrambled.
Le processeur 26 écrit, par l'intermédiaire de la porte 31, les en-têtes 37a-c et/ou 36 aux positions appropriées dans la mémoire de paquets PMI de façon à respecter la structure des paquets TP représentée sur la figure 3, 4 ou 5. Cette écriture peut avoir lieu avant le transfert des 188 - L octets du flux d'entrée appartenant au paquet en question. Elle peut également être effectuée plus tard pour autant que le paquet en question soit encore présent dans la mémoire PMI, notamment dans le cas où l'entête TP d'un paquet doit contenir des paramètres dépendant de paquets parvenant ultérieurement aux modules de paquétisation (par exemple des paramètres de découpage d'images dans le cas d'un flux ES vidéo).  The processor 26 writes, via the gate 31, the headers 37a-c and / or 36 at the appropriate positions in the packet memory PMI so as to respect the structure of the packets TP shown in FIG. 3, 4 or 5. This writing can take place before the transfer of the 188 - L bytes of the input stream belonging to the packet in question. It can also be performed later provided that the packet in question is still present in the PMI memory, in particular in the case where the header TP of a packet must contain parameters dependent on packets arriving subsequently at the packetization modules (by example of image splitting parameters in the case of a video ES stream).
Lorsque le flux d'entrée est un flux de transport multiplexe, la logique de détection 25 est programmée pour détecter l'octet de synchronisation indiquant le début d'un paquet de transport. Cet octet de synchronisation vaut 47 en hexadécimal. Le processeur 26 repère l'heure d'entrée du paquet lorsque l'octet de synchronisation est détecté. En analysant les octets suivants de l'en-tête TP par l'intermédiaire du circuit de détection 22, le processeur 26 peut lire les 13 bits d'identification du paquet (champ PID) et déterminer s'il contient des champs temporels optionnels de type PCR ou LTW. La présence des champs PCR ou LTW est indiquée par des bits de position déterminée dans l'en-tête TP (voir document ISO/IEC 13818-1). La position du champ PCR est fixe, mais celle du champ LTW peut varier de sorte que la position de ce champ est également indiquée, le cas échéant, au processeur 26 par le circuit 22. When the input stream is a multiplex transport stream, the detection logic 25 is programmed to detect the synchronization byte indicating the start of a transport packet. This synchronization byte is 47 in hexadecimal. The processor 26 identifies the time of entry of the packet when the synchronization byte is detected. In analyzing the following bytes of the header TP via the detection circuit 22, the processor 26 can read the 13 bits of identification of the packet (PID field) and determine if it contains optional time fields of the type PCR or LTW. The presence of the PCR or LTW fields is indicated by bits of determined position in the TP header (see document ISO / IEC 13818-1). The position of the PCR field is fixed, but that of the LTW field can vary so that the position of this field is also indicated, if necessary, to the processor 26 by the circuit 22.
Connaissant le paramètre d'identification PID du paquet, qui caractérise le flux élémentaire dont il est issu, le processeur 26 peut effectuer une opération de f i ltrage pour ne t ransférer dans la mémoire de paquets que les paquets des flux élémentaires à conserver dans le multiplex de sortie. Pour éliminer un paquet, le processeur 26 commande le séquenceur de transferts 32 pour que celui-ci écrive le paquet dans la mémoire de paquets à une adresse poubelle où il ne sera jamais lu.  Knowing the PID identification parameter of the packet, which characterizes the elementary stream from which it comes, the processor 26 can perform a filtering operation in order to transfer to the packet memory only the packets of the elementary streams to be kept in the multiplex Release. To eliminate a packet, the processor 26 controls the transfer sequencer 32 so that it writes the packet in the packet memory to a trash address where it will never be read.
Dans le cas où le module de paquétisation est associé à plusieurs mémoires de paquets PM2 , PM3 , ces mémoires sont regroupées dans un même espace d'adressage, et les adresses d'écriture générées par le séquenceur de transferts 32 sont déterminées sur la base du paramètre d'identification PID fourni au processeur 26 par le circuit de détection 22 de manière à obtenir le fonctionnement en premier entré - premier sorti dans chacune des mémoires de paquets PM2, PM3. On peut ainsi orienter vers différentes mémoires de paquets les flux élémentaires à conserver dans un flux multiplexe d'entrée.  In the case where the package module is associated with several packet memories PM2, PM3, these memories are grouped in the same address space, and the write addresses generated by the transfer sequencer 32 are determined on the basis of the PID identification parameter supplied to the processor 26 by the detection circuit 22 so as to obtain the first in - first out operation in each of the packet memories PM2, PM3. It is thus possible to direct the elementary streams to be stored in an input multiplex stream to different packet memories.
Le module de paquétisation représenté sur la figure 2 a une grande flexibilité. Il est aisément adaptable à une grande variété de flux d'entrée, par une simple programmation de la logique de détection 25 et du processeur 26. Ce module convient donc particulièrement pour une architecture modulaire du dispositif. Dans le cas d'un flux d'entrée de type ES, il permet de réaliser simultanément les deux phases de mise en paquets (PES et TP) au moyen d'un seul processeur, l'en-tête PES étant considéré comme une extension de l'en-tête TP. ll convient également pour des flux d'entrée de type TS ou PS, dans des applications de remultiplexage. The package module shown in Figure 2 has great flexibility. It is easily adaptable to a wide variety of input streams, by simple programming of the detection logic 25 and of the processor 26. This module is therefore particularly suitable for a modular architecture of the device. In the case of a flow input type ES, it allows simultaneous carrying out of the two packetization phases (PES and TP) by means of a single processor, the PES header being considered as an extension of the TP header . It is also suitable for TS or PS type input flows in remultiplexing applications.
L'élaboration d'un paquet est réalisée en parallèle avec le transfert des données du paquet précédent vers la mémoire PMi, ce qui permet de traiter des débits d'entrée importants. Le transfert est confié à un séquenceur distinct, ce qui permet de libérer le processeur unique du module de paquétisation pour les autres traitements à effectuer.  The development of a packet is carried out in parallel with the transfer of data from the previous packet to the PMi memory, which makes it possible to process significant input bit rates. The transfer is entrusted to a separate sequencer, which frees the single processor from the package module for other processing to be performed.
Une autre tâche exécutée par le processeur 26 est le calcul des paramètres associés aux paquets et leur écriture dans la mémoire de paramètres ZMi. Ces paramètres comprennent des paramètres d'élection permettant au module de multiplexage 14 de sélectionner les mémoires de paquets pour le transfert des paquets vers la sortie du dispositif. Ainsi, on transporte dans les modules de paquétisation une partie des tâches qui incombent habituellement au module de multiplexage. Le surcroît de charge pour le processeur 26 est cependant suffisamment faible pour ne pas avoir d'incidence significative sur le choix de ce processeur qui est de toute façon nécessaire pour la mise en paquets.  Another task executed by the processor 26 is the calculation of the parameters associated with the packets and their writing in the parameter memory ZMi. These parameters include election parameters allowing the multiplexing module 14 to select the packet memories for transferring the packets to the output of the device. Thus, part of the tasks usually carried out by the multiplexing module are transported into the packaging modules. The additional load for the processor 26 is however low enough not to have a significant impact on the choice of this processor which is in any case necessary for packetization.
Pour s'approcher d'une répartition temporelle optimale en sortie, il est nécessaire de connaître :  To approach an optimal time distribution at exit, it is necessary to know:
- les paquets pouvant sortir immédiatement et le retard maximum qu'on peut leur attribuer.  - packets that can be released immediately and the maximum delay that can be attributed to them.
- les paquets qui pourront sortir bientôt et le temps duquel on peut anticiper leur émission.  - the packets which can be released soon and the time from which we can anticipate their transmission.
Une solution pour donner au module de multiplexage 14 une visibilité sur ces informations de diffusion est de demander aux modules de paquétisation d'associer à chaque paquet écrit dans la mémoire tampon PMi trois paramètres d'élection correspondant chacun à un temps exprimé par rapport à une base de temps commune aux modules de paquétisation et de multiplexage. Ces trois paramètres sont l'heure minimale Tmin, l'heure maximale Tmax et l'heure idéale Tidéal d'émission du paquet auquel ils sont associés. One solution for giving the multiplexing module 14 visibility over this broadcast information is to ask the packetization modules to associate with each packet written in the buffer PMi three election parameters each corresponding to a time expressed by compared to a time base common to the package and multiplexing modules. These three parameters are the minimum time Tmin, the maximum time Tmax and the ideal time Tideal of transmission of the packet with which they are associated.
Chaque processeur 26 gérant un flux élémentaire définit donc une fenêtre temporelle pour l'émission de chaque paquet créé, et est libre d'adapter la largeur de cette fenêtre à la nature du flux qu'il gère. De plus, pour aider le module de multiplexage 14 dans sa tâche et pour lui permettre de générer un flux de qualité, il définit une position idéale du paquet dans sa fenêtre. La gestion des paramètres Tmin, Tmax et Tidéal est spécifique pour chaque type de flux d'entrée.  Each processor 26 managing an elementary stream therefore defines a time window for the transmission of each packet created, and is free to adapt the width of this window to the nature of the stream it manages. In addition, to help the multiplexing module 14 in its task and to allow it to generate a quality stream, it defines an ideal position of the packet in its window. The management of the Tmin, Tmax and Tideal parameters is specific for each type of input stream.
Dans le cas où le flux d'entrée est un flux élémentaire (ES, PES ou données), l'heure minimale d'émission Tmin est calculée en ajoutant un temps de latence Tl à l'heure d'entrée Te des données du paquet dans le tampon d'entrée 20 du module de paquétisation, et la différence Tmax - Tmin entre l'heure maximale et l'heure minimale d'émission est calculée en fonction du type de flux élémentaire et du débit de ce flux. Si la source du flux élémentaire a un débit régulier, le temps d'entrée Te est simplement déduit par le processeur 26 à partir de l'heure de passage des données par le circuit de détection 22. Si la source du flux élémentaire a un débit en rafales, le temps d'entrée peut être retrouvé à partir d'une information de débit reçue du codeur situé en amont ou lue dans le flux. Le temps de latence Tl est un temps programmable destiné à retarder l'émission de certains flux par rapport à d'autres. La largeur de fenêtre Tmax - Tmin est prise plus petite pour des flux temporels, notamment des flux vidéo, que pour des flux sans contrainte de réémission très précise, tels que les flux de données d'accès conditionnel EMM. La différence Tmax - Tmin est en outre une fonction décroissante du débit du flux élémentaire.  In the case where the input stream is an elementary stream (ES, PES or data), the minimum transmission time Tmin is calculated by adding a latency time Tl to the entry time Te of the packet data in the input buffer 20 of the packetization module, and the difference Tmax - Tmin between the maximum time and the minimum time of emission is calculated as a function of the type of elementary flow and of the flow of this flow. If the source of the elementary flow has a regular flow, the input time Te is simply deduced by the processor 26 from the time of passage of the data by the detection circuit 22. If the source of the elementary flow has a flow in bursts, the entry time can be retrieved from bit rate information received from the encoder located upstream or read from the stream. The latency time T1 is a programmable time intended to delay the emission of certain streams compared to others. The window width Tmax - Tmin is taken smaller for temporal streams, in particular video streams, than for streams without very precise retransmission constraint, such as EMM conditional access data streams. The difference Tmax - Tmin is also a decreasing function of the elementary flow rate.
Dans la cas d'un flux d'entrée multiplexe de type flux de transport, l'heure minimale Tmin de réémission d'un paquet est calculée en fonction de l'heure d'entrée Te du paquet dans le module et d'un temps de latence Tl comme dans le cas précédent, et en outre en fonction de la stratégie qu'avait adoptée le précédent multiplexeur. Cette stratégie est indiquée dans les champs LTW des en-têtes TP du flux ou dans des champs descripteurs, ces champs pouvant être lus par le processeur 26 par l'intermédiaire du circuit de détection 22. L'heure minimale calculée Tmin est par exemple retardée, par rapport à Te + Tl du temps correspondant au décalage de fenêtre (LTW_offset) lu dans le flux. Dans le cas d'un flux d'entrée multiplexe, l'heure maximale de réémission Tmax est calculée en fonction du type de flux. Pour la plupart des flux élémentaires d'un flux de transport, la différence Tmax -Tmin est prise égale à 4 ms . Cependant, pour certains cas particuliers, cette différence peut être augmentée pour alléger les contraintes du module de multiplexage. In the case of a multiplex input stream of the type transport stream, the minimum time Tmin of retransmission of a packet is calculated as a function of the time of entry Te of the packet into the module and of a latency time Tl as in the previous case, and furthermore depending on the strategy adopted by the previous multiplexer. This strategy is indicated in the LTW fields of the TP headers of the stream or in descriptor fields, these fields being able to be read by the processor 26 via the detection circuit 22. The minimum calculated time Tmin is for example delayed , compared to Te + Tl of the time corresponding to the window shift (LTW_offset) read in the stream. In the case of a multiplex input stream, the maximum re-transmission time Tmax is calculated according to the type of stream. For most of the elementary flows of a transport flow, the difference Tmax -Tmin is taken equal to 4 ms. However, for certain particular cases, this difference can be increased to alleviate the constraints of the multiplexing module.
L'heure idéale d'émission d'un paquet est obtenue en fonction de la stratégie de multiplexage adoptée pour le flux élémentaire contenant ce paquet. Cette heure Tidéal peut se définir par un décalage par rapport à l'heure minimale Tmin, ce décalage étant fixe ou encore proportionnel à la largeur Tmax - Tmin de la fenêtre d'émission. Une stratégie "tôt" correspond à une heure Tidéal relativement proche de l'heure minimale Tmin. Une telle stratégie favorise le codeur ou le multiplexeur situé en amont, qui peut avoir une mémoire tampon de sortie de taille réduite. Une stratégie "tard" correspond à une heure Tidéal relativement éloignée de l'heure minimale Tmin. Une telle stratégie favorise le décodeur ou le remultiplexeur situé en aval en ce sens que sa mémoire tampon d'entrée peut être de taille réduite. Il existe tout une gamme entre les stratégies "tôt" et "tard".  The ideal time for sending a packet is obtained according to the multiplexing strategy adopted for the elementary stream containing this packet. This ideal time can be defined by an offset from the minimum time Tmin, this offset being fixed or even proportional to the width Tmax - Tmin of the transmission window. An "early" strategy corresponds to a Tideal time relatively close to the minimum time Tmin. Such a strategy favors the coder or the multiplexer situated upstream, which can have a reduced output buffer memory. A "late" strategy corresponds to a Tideal time relatively distant from the minimum time Tmin. Such a strategy favors the decoder or the remultiplexer situated downstream in the sense that its input buffer memory can be reduced in size. There is a range of "early" and "late" strategies.
Dans une réalisation typique, les paramètres d'élection stockés dans les mémoires de paramètres ZMi sont l'heure idéale d'émission Tidéal codée sur 20 bits, la différence Tidéal - Tmin codée sur 15 bits, et la différence Tmax - Tidéal codée sur 15 bits, exprimées par rapport à une horloge de référence à 90 kHz. Ces paramètres sont stockés à une adresse liée à l'adresse du paquet associé dans la mémoire PMi . In a typical embodiment, the election parameters stored in the ZMi parameter memories are the ideal transmission time Tidéal coded on 20 bits, the difference Tidéal - Tmin coded on 15 bits, and the difference Tmax - Tidéal coded on 15 bits, expressed in relation to a reference clock at 90 kHz. These parameters are stored at an address linked to the address of the associated packet in the PMi memory.
Les paramètres associés à un paquet et stockés dans les mémoires de paramètres ZMi comprennent en outre des paramètres de modification permettant au module de multiplexage 14 de mettre à jour l' en-tête du paquet en fonction de son heure d'émission lorsque cela est nécessaire. Ces paramètres de modification comprennent par exemple :  The parameters associated with a packet and stored in the ZMi parameter memories also include modification parameters allowing the multiplexing module 14 to update the header of the packet as a function of its transmission time when necessary. . These modification parameters include for example:
- des bits indiquant la présence ou l'absence, détectée par la logique 25, d'un champ de type PCR ou d'un champ de type LTW, qui ne peuvent être mis à jour que lorsque l'heure de sortie exacte du paquet est connue, nécessitant des références temporelles très précises. Dans le cas d'un champ de type PCR dont la position est fixe par rapport au début du paquet, il suffit d'un bit pour indiquer si un tel champ est présent dans le paquet. Dans le cas d'un champ de type LTW, dont la position peut varier, les paramètres de modification indiquent en outre la position de ce champ dans le paquet ;  bits indicating the presence or absence, detected by the logic 25, of a PCR type field or of an LTW type field, which can only be updated when the exact time of exit of the packet is known, requiring very precise time references. In the case of a PCR type field whose position is fixed relative to the start of the packet, a bit is enough to indicate whether such a field is present in the packet. In the case of an LTW type field, the position of which can vary, the modification parameters also indicate the position of this field in the packet;
- taille de la partie donnée (payload) du paquet. - size of the given part (payload) of the package.
Cette information est utile dans le cas où le module de multiplexage 14 réalise en outre un embrouillage du paquet ; This information is useful in the case where the multiplexing module 14 also performs scrambling of the packet;
- paramètre d'identification PID du paquet. Cette information, utile dans les applications de remultiplexage, permet au module de multiplexage 14 de savoir s'il doit changer ce paramètre (cas où le même paramètre d'identification PID est attribué à plusieurs flux élémentaires contenus dans les flux d'entrée).  - PID identification parameter of the packet. This information, useful in remultiplexing applications, allows the multiplexing module 14 to know if it must change this parameter (case where the same PID identification parameter is assigned to several elementary streams contained in the input streams).
Une architecture du module de multiplexage 14 est représentée sur le schéma de la figure 6. Ce module comprend d'une part un microprocesseur 40 et un circuit d'élection 42 qui traitent les données contenues dans les mémoires de paramètres ZMi, et d'autre part un séquenceur de transferts 44 qui commande les transferts de paquets des mémoires de paquets PMi vers le tampon de sortie 46 du dispositif. On comprendra que le module de multiplexage 14 pourrait comprendre encore d'autres éléments, par exemple pour embrouiller les paquets transférés avant de les inscrire dans le tampon de sortie. An architecture of the multiplexing module 14 is shown in the diagram in FIG. 6. This module comprises on the one hand a microprocessor 40 and an election circuit 42 which process the data contained in the parameter memories ZMi, and on the other hand a transfer sequencer 44 which controls the transfer of packets from the packet memories PMi to the output buffer 46 of the device. It will be understood that the multiplexing module 14 could include still other elements, for example for scrambling the transferred packets before writing them into the output buffer.
Le module de multiplexage 14 comprend en outre une mémoire de paquets supplémentaire PM0 et une mémoire de paramètres associée ZM0. La mémoire PM0 contient des paquets d'informations spécifiques aux programmes portés par le multiplex de sortie (PSI), qui spécifient entre autres les paramètres d'identification PID des flux de chaque programme (voir chapitre 2.4.4 du document ISO/IEC 13818-1). Ces paquets PSI sont écrits dans la mémoire PM0 par une source non représentée appartenant également au module de multiplexage 14. Cette source écrit en outre dans la mémoire ZM0 des paramètres d'élection associés à ces paquets : Tmin, Tmax, Tidéal. Les contraintes temporelles des paquets PSI n'étant pas très sévères, la fenêtre temporelle d'émission de ces paquets peut être prise relativement large.  The multiplexing module 14 further comprises an additional packet memory PM0 and an associated parameter memory ZM0. The PM0 memory contains information packets specific to the programs carried by the output multiplex (PSI), which specify, among other things, the PID identification parameters of the flows of each program (see chapter 2.4.4 of the document ISO / IEC 13818- 1). These PSI packets are written in the memory PM0 by a source (not shown) also belonging to the multiplexing module 14. This source also writes in the memory ZM0 election parameters associated with these packets: Tmin, Tmax, Tideal. The time constraints of the PSI packets not being very severe, the time window for transmission of these packets can be taken relatively wide.
Du point de vue du module de multiplexage 14, les mémoires de paquets PM0, PM1, ..., PMm sont considérées comme un espace d'adressage unique. De même, les mémoires de paramètres ZM0, ZM1, ... , ZMm sont considérées pour la lecture comme un espace d'adressage unique. La figure 6 montre le bus de données 10D et le bus d'adresse 10A compris dans le bus de paquets 10. Ces deux bus 10A, 10D sont reliés respectivement aux entrées d'adresse et de données de chacune des mémoires de paquets PMi. Les adresses sur le bus 10A sont générées par le séquenceur de transferts 44 sous le contrôle du processeur 40. Le bus de données 10D est également relié à l'entrée du tampon de sortie 46 où l'écriture des données est commandée par le séquenceur 44.  From the point of view of the multiplexing module 14, the packet memories PM0, PM1, ..., PMm are considered as a single address space. Similarly, the parameter memories ZM0, ZM1, ..., ZMm are considered for reading as a single address space. FIG. 6 shows the data bus 10D and the address bus 10A included in the packet bus 10. These two buses 10A, 10D are connected respectively to the address and data inputs of each of the packet memories PMi. The addresses on the bus 10A are generated by the transfer sequencer 44 under the control of the processor 40. The data bus 10D is also connected to the input of the output buffer 46 where the writing of the data is controlled by the sequencer 44 .
La figure 6 montre également le bus de données 12D et le bus d'adresse 12A contrôlés par le processeur 40 et compris dans le bus de paramètres 12. Ces deux bus 12A, 12D sont reliés respectivement aux entrées d'adresse et de données de chacune des mémoires de paramètres ZMi. Les bus de paquets 10 et de paramètres 12 sont reliés entre eux par une porte à trois états 48 permettant au processeur 40 de prendre la main sur le bus de paquets 10. Pour ordonner au séquenceur 44 le transfert d'un paquet de transport de 188 octets vers le tampon de sortie, le processeur 40 présente une adresse de départ sur le bus d'adresse 12A. Cette adresse de départ est transmise au bus 10A par la porte 48, et le compteur d'adresse du séquenceur 44 s'initialise à la valeur de cette adresse de départ, puis s'incrémente jusqu'à ce que les 188 octets du paquet soient transférés. Figure 6 also shows the 12D data bus and the address bus 12A controlled by the processor 40 and included in the parameter bus 12. These two buses 12A, 12D are respectively connected to the address and data inputs of each of the parameter memories ZMi. The packet 10 and parameter 12 buses are linked together by a three-state gate 48 allowing the processor 40 to take control of the packet bus 10. To order the sequencer 44 to transfer a transport packet from 188 bytes to the output buffer, the processor 40 has a start address on the address bus 12A. This starting address is transmitted to the bus 10A via gate 48, and the sequencer address counter 44 initializes to the value of this starting address, then increments until the 188 bytes of the packet are transferred.
Les bus d'adresses 10A, 12A sont suffisamment larges pour que les mémoires de paquets PMi et de paramètres ZMi soient vues comme un espace d'adressage unique par le processeur 40. Des bus d'adresse de 24 bits conviennent pour un multiplexeur ou remultiplexeur de grande capacité (m≤128 par exemple). Pour gagner en vitesse de sortie, les bus de données 10D, 12D peuvent être des bus de 16 bits, transférant deux octets à la fois.  The address buses 10A, 12A are wide enough for the PMi packet and ZMi parameter memories to be seen as a single address space by the processor 40. 24-bit address buses are suitable for a multiplexer or remultiplexer large capacity (m≤128 for example). To gain output speed, the data buses 10D, 12D can be 16-bit buses, transferring two bytes at a time.
Le séquenceur 44 est séparé du processeur 40 afin de permettre au processeur 40 et au circuit 42 d'effectuer les traitements relatifs à l'émission d'un paquet dans le multiplex pendant que le paquet précédent du multiplex est en cours de transfert sous la commande du séquenceur. Ceci permet au module de multiplexage 14 de s'adapter au grand débit d'émission requis par la norme MPEG2.  The sequencer 44 is separated from the processor 40 in order to allow the processor 40 and the circuit 42 to carry out the processing relating to the transmission of a packet in the multiplex while the preceding packet of the multiplex is being transferred under control. of the sequencer. This allows the multiplexing module 14 to adapt to the high transmission rate required by the MPEG2 standard.
Les traitements effectués avant le transfert d'un paquet comprennent :  The treatments carried out before the transfer of a package include:
- la sélection de la mémoire de paquets PMi dans laquelle sera lu ce paquet et la détermination de l'adresse de départ à fournir au séquenceur 44 pour assurer le transfert de ce paquet ;  the selection of the packet memory PMi in which this packet will be read and the determination of the starting address to be supplied to the sequencer 44 to ensure the transfer of this packet;
- l'analyse des paramètres de modification relatifs au paquet élu et la modification éventuelle des champs correspondants. - analysis of the relative modification parameters to the chosen package and the possible modification of the corresponding fields.
Le processeur 40 reçoit de l'équipement situé en aval du dispositif un signal CK de cadenceuent du multiplex de sortie. Le processeur 40 calcule l'heure Ts d'émission du prochain paquet à partir de ce signal CK.  The processor 40 receives from the equipment located downstream of the device a signal CK of the timing of the output multiplex. The processor 40 calculates the transmission time Ts of the next packet from this signal CK.
Le choix de la mémoire de paquets d'où sera extrait le prochain paquet est effectué sur la base de cette heure d'émission Ts et des paramètres d'élection Tmin, Tmax, Tidéal présents dans les premières positions des mémoires de paramètres ZMi, c'est-à-dire des paramètres d'élection associés aux premiers paquets en attente dans chacune des mémoires de paquets PMi.  The choice of the packet memory from which the next packet will be extracted is made on the basis of this transmission time Ts and the election parameters Tmin, Tmax, Tideal present in the first positions of the parameter memories ZMi, c that is to say election parameters associated with the first packets waiting in each of the packet memories PMi.
L ' annexe 1 présentée à la f in de la présente description donne un exemple d'algorithme d'élection en langage C utilisable pour sélectionner les mémoires de paquets d'où extraire les paquets du multiplex. Dans les notations de l'annexe 1, nb_sources correspond au nombre de mémoires de paquets raccordables au bus de paquets 10 (nb_ sources = m + 1 quand la totalité de la capacité du module de multiplexage 14 est utilisée), valid_TP_flag [ ] est un tableau de longueur nb_sources constitué de variables booléennes telles que valid_TP_flag[current_channel] est vraie si une mémoire de paquets PMi est effectivement raccordée à la position current_channel et si cette mémoire de paquets contient au moins un paquet en attente de transfert, les tableaux Tmin[], Tmax[] et Tidéal [ ] contiennent les paramètres d'élection des premiers paquets en attente dans chaque mémoire de paquets, current_priority est un coefficient de priorité calculé pour le premier paquet en attente dans la mémoire PM(current_channel), et elected_TP_priority est le coefficient de priorité maximisé par l'algorithme d'élection, correspondant au paquet élu contenu dans la mémoire PM(elected_TP_channel).  Annex 1 presented at the end of this description gives an example of a C language election algorithm which can be used to select the packet memories from which to extract the packets from the multiplex. In the notations of appendix 1, nb_sources corresponds to the number of packet memories connectable to the packet bus 10 (nb_ sources = m + 1 when the entire capacity of the multiplexing module 14 is used), valid_TP_flag [] is a array of length nb_sources consisting of boolean variables such as valid_TP_flag [current_channel] is true if a PMi packet memory is actually connected to the current_channel position and if this packet memory contains at least one packet awaiting transfer, the Tmin tables [] , Tmax [] and Tidéal [] contain the parameters for electing the first pending packets in each packet memory, current_priority is a priority coefficient calculated for the first pending packet in PM memory (current_channel), and elected_TP_priority is the priority coefficient maximized by the election algorithm, corresponding to the elected packet contained in the PM memory (elected_TP_channel).
Un coefficient de priorité de -1 est attribué à un paquet de bourrage stocké, par exemple, dans la mémoire PM0 à une adresse à laquelle on attribue un numéro de mémoire égal à -1. Ce paquet de bourrage est sélectionné par défaut si aucune mémoire de paquets ne contient un paquet ayant atteint son heure minimale d'émission Tmin. Aucun paquet ne peut normalement être émis après son heure maximale Tmax, étant donné que le dispositif est dimensionné pour que la somme des débits des flux d'entrée soit inférieure au débit du flux de sortie. A priority coefficient of -1 is assigned to a padding packet stored, for example, in PM0 memory to an address to which a memory number equal to -1 is assigned. This padding packet is selected by default if no packet memory contains a packet which has reached its minimum transmission time Tmin. No packet can normally be transmitted after its maximum time Tmax, since the device is dimensioned so that the sum of the flow rates of the input flows is less than the flow rate of the output flow.
Les figures 7 et 8 montrent les variations du coefficient de priorité d'un paquet ayant une fenêtre d'émission donnée [Tmin, Tmax] en fonction de l'heure d'émission Ts dans le cas d'une stratégie "tôt" figure 7) et dans le cas d'une stratégie "tard" (figure 8,. On voit que pour un temps d'émission donné et des fenêtres identiques, l'algorithme d' élection privilégie les flux pour lesquels on a défini une stratégie "tôt".  Figures 7 and 8 show the variations of the priority coefficient of a packet having a given transmission window [Tmin, Tmax] as a function of the transmission time Ts in the case of an "early" strategy figure 7 ) and in the case of a "late" strategy (Figure 8 ,. We see that for a given transmission time and identical windows, the election algorithm favors the flows for which a "early" strategy has been defined ".
L'algorithme d'élection présenté à l'annexe 1 peut être mis en oeuvre par le processeur 40 pendant que le paquet précédent du multiplex est en cours de transfert. Dans ce cas, le processeur 40 doit effectuer des lectures dans les mémoires de paramètres ZMi puis exécuter l'algorithme. Ces tâches prennent un temps non négligeable au processeur. C'est pourquoi, dans les applications à haut débit, on préfère utiliser un circuit d'élection distinct 42 comme illustré sur la figure 6. Un circuit câblé 42 permet d'effectuer l'élection plus rapidement qu'un processeur, et soulage le processeur 40 des calculs correspondants.  The election algorithm presented in appendix 1 can be implemented by processor 40 while the previous packet of the multiplex is being transferred. In this case, the processor 40 must perform readings in the parameter memories ZMi and then execute the algorithm. These tasks take a significant time to the processor. This is why, in high-speed applications, it is preferable to use a separate election circuit 42 as illustrated in FIG. 6. A wired circuit 42 allows the election to be carried out more quickly than a processor, and relieves the burden. processor 40 of the corresponding calculations.
Le module de multiplexage 14 comprend une mémoire à deux accès 50 reliée au bus de paramètres 12 pour fournir les paramètres utiles au circuit d'élection 42. Les paramètres d'élection Tidéal, Tmax - Tidéal et Tidéal - Tmin associés au premier paquet en attente dans chaque mémoire de paquets PMi sont lus par le processeur 40 dans la mémoire de paramètres correspondante ZMi et sont écrits dans la mémoire 50 à une adresse ADD égale au numéro de la mémoire de paquet. Le processeur 40 écrit également dans la mémoire 50 des bits BM correspondant aux variables booléennes valid_TP_flag précédemment définies : BM = 0 si aucune mémoire de paquets n'est raccordée à la position correspondant à l'adresse ADD ou si la mémoire de paquets raccordée à la position correspondant à l'adresse ADD ne contient aucun paquet en attente à l'instant considéré. The multiplexing module 14 includes a two-access memory 50 connected to the parameter bus 12 to supply the parameters useful to the election circuit 42. The election parameters Tideal, Tmax - Tideal and Tideal - Tmin associated with the first packet on standby in each packet memory PMi are read by the processor 40 in the corresponding parameter memory ZMi and are written in the memory 50 at an address ADD equal to the number of the packet memory. Processor 40 also writes to memory 50 BM bits corresponding to the previously defined valid_TP_flag Boolean variables: BM = 0 if no packet memory is connected to the position corresponding to the ADD address or if the packet memory connected to the position corresponding to the ADD address does not contain no packet pending at the time considered.
La figure 9 est un schéma d'un circuit câblé d'élection. Ce circuit 42 comprend un registre 52 dans lequel la valeur de la prochaine heure d'émission Ts est écrite par le processeur 40. Un séquenceur 54 supervise les opérations effectuées par le circuit 42 en réponse à un ordre d'élection EC reçu du processeur 40. Le séquenceur 54 commence par initialiser à la valeur -1 (paquet de bourrage par défaut) les contenus de deux registres 56, 58 destinés à contenir l'un l'adresse ADDS correspondant à la mémoire de paquets sélectionnée et l'autre le coefficient de priorité correspondant PRIO. Le séquenceur 54 génère ensuite des ordres de lecture dans la mémoire de travail 50. A chaque cycle de lecture , le séquenceur 54 incrémente d'une unité un compteur d'adresse délivrant l'adresse de lecture, de façon à lire séquentiellement les paramètres BM, Tidéal, Tmax - Tidéal et Tidéal - Tmin relatifs aux différentes adresses possibles. Le circuit d'élection 42 comprend un soustracteur 60 recevant sur son entrée positive l'heure d'émission Ts issue du registre 52 et sur son entrée négative l'heure idéale Tidéal issue de la mémoire 50. Le bit de signe de la sortie du soustracteur 60 commande un multiplexeur 62 dont une entrée (signe positif) reçoit le paramètre Tmax - Tidéal depuis la mémoire 50 et l'autre entrée (signe négatif) reçoit le paramètre Tidéal - Tmin depuis la mémoire 50. Un diviseur 64 calcule le quotient entre la sortie du soustracteur 60 et la sortie du multiplexeur 62. Le coefficient de priorité du paquet courant ainsi fourni par le diviseur 64 est adressé à une entrée d'un comparateur 66 dont l'autre entrée reçoit le contenu du registre 58. Une porte ET 68 reçoit d'une part le bit BM relatif au paquet courant, et d'autre part le bit de comparaison produit par le comparateur 66. Ce bit de comparaison vaut 1 si le coefficient de priorité calculé du paquet courant est plus grand que celui inscrit dans le registre 58 et 0 dans le cas contraire. A des fins de synchronisme, un registre à décalage 70 retarde le bit BM adressé à la porte ET 68 d'un nombre de cycles égal à celui nécessaire aux calculs effectués par les éléments 60 à 66. L'adresse ADD générée par le séquenceur 54 est adressée au registre 56 après avoir traversé un registre à décalage 72 qui la retarde du même nombre de cycles. Le coefficient de priorité produit par le diviseur 64 est adressé au registre 58. L'horloge cycle CCK est fournie par le séquenceur 54 aux registres 56 à 58 en vue de leur mise à jour, mais cette mise à jour n'est effectuée qu'à la condition que la sortie de la porte ET 68 soit à 1. Figure 9 is a diagram of a wired election circuit. This circuit 42 includes a register 52 in which the value of the next transmission time Ts is written by the processor 40. A sequencer 54 supervises the operations performed by the circuit 42 in response to an election command EC received from the processor 40 The sequencer 54 begins by initializing the value of -1 (default packet packet) the contents of two registers 56, 58 intended to contain one the ADDS address corresponding to the selected packet memory and the other the coefficient of corresponding PRIO priority. The sequencer 54 then generates read orders in the working memory 50. At each read cycle, the sequencer 54 increments by an unit an address counter delivering the read address, so as to read the BM parameters sequentially , Tidéal, Tmax - Tidéal and Tidéal - Tmin relating to the different possible addresses. The election circuit 42 comprises a subtractor 60 receiving on its positive input the emission time Ts from the register 52 and on its negative input the ideal time Tideal from the memory 50. The sign bit of the output of the subtractor 60 controls a multiplexer 62 of which one input (positive sign) receives the parameter Tmax - Tideal from memory 50 and the other input (negative sign) receives parameter Tideal - Tmin from memory 50. A divider 64 calculates the quotient between the output of the subtractor 60 and the output of the multiplexer 62. The priority coefficient of the current packet thus provided by the divider 64 is addressed to an input of a comparator 66 whose other input receives the content of the register 58. An AND gate 68 receives on the one hand the bit BM relating to the current packet, and on the other hand the comparison bit produced by the comparator 66. This comparison bit is worth 1 if the calculated priority coefficient of the current packet is greater than that recorded in register 58 and 0 in the opposite case. For synchronism purposes, a shift register 70 delays the bit BM addressed to the AND gate 68 by a number of cycles equal to that necessary for the calculations performed by the elements 60 to 66. The address ADD generated by the sequencer 54 is sent to register 56 after passing through a shift register 72 which delays it by the same number of cycles. The priority coefficient produced by the divider 64 is sent to the register 58. The cycle clock CCK is supplied by the sequencer 54 to the registers 56 to 58 for updating, but this updating is only carried out. on condition that the output of the AND gate 68 is at 1.
Le circuit 42 décrit ci-dessus permet d'exécuter l'algorithme d'élection de l'annexe 1 en un temps très bref. Une fois que le circuit d'élection a balayé toutes les adresses possibles, l'adresse ADDS correspondant à la mémoire PMi où le prochain paquet sera à lire est disponible dans le registre 56. Le processeur 40 peut alors lire ce registre 56 par l'intermédiaire du bus de paramètres 12.  The circuit 42 described above makes it possible to execute the election algorithm of appendix 1 in a very short time. Once the election circuit has scanned all the possible addresses, the address ADDS corresponding to the memory PMi where the next packet will be to be read is available in the register 56. The processor 40 can then read this register 56 by the via the parameter bus 12.
Une fois que le processeur 40 connaît ainsi la mémoire de paquets sélectionnée PMi, il procède aux opérations suivantes :  Once the processor 40 thus knows the selected packet memory PMi, it proceeds to the following operations:
les paramètres de modification du paquet sélectionné sont lus dans la mémoire de paramètres associée ZMi ;  the modification parameters of the selected packet are read in the associated parameter memory ZMi;
- le processeur 40 analyse ces paramètres de modification et, si nécessaire effectue les modifications correspondantes du paquet dans la mémoire PMi. Pour modifier un paquet, le processeur 40 prend la main sur le bus de paquets 10 via la porte 48. Les adresses de modification sont déduites du numéro de la mémoire sélectionnée et des paramètres de modification. Les données temporelles à modifier (PCR ou LTW) le sont en fonction de l'heure d'émission Ts précédemment calculée. S'il faut modifier des champs d'identification PID, le processeur 40 utilise les données de cartographie du multiplex de sortie (PSI). Pendant que le processeur 40 prend la main sur le bus de paquets 10, le séquenceur 44 interrompt le transfert du paquet en cours ; the processor 40 analyzes these modification parameters and, if necessary performs the corresponding modifications of the packet in the memory PMi. To modify a packet, the processor 40 takes control of the packet bus 10 via the gate 48. The modification addresses are deduced from the number of the selected memory and from the modification parameters. The time data at modify (PCR or LTW) are modified according to the transmission time Ts previously calculated. If PID identification fields have to be modified, the processor 40 uses the map data of the output multiplex (PSI). While the processor 40 takes control of the packet bus 10, the sequencer 44 interrupts the transfer of the packet in progress;
- le processeur 40 détermine, en fonction du numéro ADDS de la mémoire de paquets sélectionnée, l'adresse de départ à fournir au séquenceur de transferts 44 pour le transfert du prochain paquet du multiplex OS ; le processeur détermine cette adresse de départ de manière à respecter l'ordre d'entrée des paquets dans chaque mémoire de paquets ;  the processor 40 determines, as a function of the ADDS number of the selected packet memory, the starting address to be supplied to the transfer sequencer 44 for the transfer of the next packet of the OS multiplex; the processor determines this starting address so as to respect the order of entry of the packets in each packet memory;
- les paramètres d'élection du paquet qui venait en seconde position dans la mémoire sélectionnée PMi sont lus dans la mémoire de paramètres associée ZMi et inscrits dans la mémoire de travail 50 à l'adresse correspondante ; à défaut d'un tel second paquet, le bit BM correspondant est mis à 0 dans la mémoire de travail 50 ;  the election parameters of the packet which came in second position in the selected memory PMi are read from the associated parameter memory ZMi and written into the working memory 50 at the corresponding address; in the absence of such a second packet, the corresponding bit BM is set to 0 in the working memory 50;
- le processeur 40 calcule l'heure d'émission Ts du paquet suivant et la fournit au circuit d'élection 42 de même que l'ordre d'élection suivant EC.  - The processor 40 calculates the transmission time Ts of the following packet and supplies it to the election circuit 42 as well as the following election order EC.
Bien entendu, le processeur 40 peut encore assurer d'autres fonctions non détaillées ici car non directement concernées par la présente invention.  Of course, the processor 40 can also perform other functions which are not detailed here since they are not directly concerned with the present invention.
L'organisation proposée du module de multiplexage est bien adaptée aux contraintes imposées par la norme système MPEG2.  The proposed organization of the multiplexing module is well suited to the constraints imposed by the MPEG2 system standard.
Les modules de paquétisation fournissent au module de multiplexage les informations lui donnant la possibilité de parvenir à une répartition optimale des paquets dans le temps, en lui donnant non seulement l'heure idéale de diffusion de chaque paquet, mais aussi l'heure minimale et l'heure maximale permettant de respecter les tampons d'entrée d'un décodeur situé en aval. Le module de multiplexage n'a pas à connaître les caractéristiques de multiplexage des sources qu'il gère (débit, facteur critique de multiplexage). On peut donc définir une carte de multiplexage générique qui couvre les aspects multiplexage proprement dits mais aussi remultiplexage, ceci autorisant une flexibilité très importante. The packetization modules provide the multiplexing module with information giving it the possibility of achieving an optimal distribution of the packets over time, giving it not only the ideal time of broadcast of each packet, but also the minimum time and the maximum time allowing to respect the input buffers of a decoder located downstream. The multiplexing module does not have to know the multiplexing characteristics of the sources it manages (bit rate, critical multiplexing factor). It is therefore possible to define a generic multiplexing card which covers the multiplexing aspects proper but also remultiplexing, this allowing very great flexibility.
Le processeur de multiplexage est soulagé pour parvenir à gérer des configurations lourdes en termes de nombre et de débit des flux élémentaires, sans avoir besoin d'une puissance de calcul rédhibitoire. Le processus de multiplexage est très systématique et peut en partie être implanté dans une logique câblée très rapide telle que le circuit d'élection 42.  The multiplexing processor is relieved to manage cumbersome configurations in terms of number and bit rate of elementary streams, without the need for prohibitive computing power. The multiplexing process is very systematic and can in part be implemented in very fast wired logic such as the election circuit 42.
Le nombre m des flux élémentaires que l'on peut gérer n'est limité que par la largeur des bus d'adresses du module de multiplexage. Ceci autorise une grande flexibilité, car on peut facilement ajouter ou retirer des modules de paquétisation au module de multiplexage. Le dispositif se configure à la mise sous tension et sait combien de modules de paquétisation sont présents, et à quelles adresses sur le bus de paquets et sur le bus de paramètres il écriront leurs données.  The number m of elementary streams that can be managed is limited only by the width of the address buses of the multiplexing module. This allows great flexibility, since one can easily add or remove package modules to the multiplexing module. The device configures itself at power-up and knows how many package modules are present, and at which addresses on the packet bus and on the parameter bus it will write their data.
Les paramètres nécessaires à l'élection et à la modification des paquets sont identiques quel que soit le type de flux que gère le module de paquétisation. Le module de multiplexage ignore donc la nature des flux qu'il multiplexe. Il sait simplement combien de sources de paquets de transport lui sont connectées, et son travail est systématique (et donc plus rapide). Dans l'organisation proposée, chaque paquet de chaque source en attente dans l'espace mémoire des paquets dispose d'une zone associée dans l'espace mémoire des paramètres.  The parameters necessary for the election and modification of the packets are identical regardless of the type of flow that the package module manages. The multiplexing module therefore ignores the nature of the streams it multiplexes. He simply knows how many sources of transport packages are connected to him, and his work is systematic (and therefore faster). In the proposed organization, each packet from each source pending in the packet memory space has an associated zone in the parameter memory space.
Une variante de réalisation du dispositif de la figure 1 est montrée sur la figure 10. Dans cette variante, l'interface entre les modules de paquétisation Cl,...,Cn et le module de multiplexage 14 comprend des mémoires de paquets PM1, ... , PMm, des mémoires ZMI, ... ,ZMm pour recevoir les paramètres d'élection des paquets et des mémoires YM1, ... , YMm pour recevoir les paramètres de modification des paquets. Chaque module de paquétisation écrit donc les paramètres de modification dans une mémoire YMi également associée à la mémoire de paquets PMi, mais distincte (au moins en ce qui concerne l'adressage) de la mémoire ZMi des paramètres d'élection. Le bus 12 qui permet au module de multiplexage 14 de voir l'ensemble des mémoires ZMi comme un espace d'adressage unique ne sert dans cette variante qu'à la lecture des paramètres d'élection. Un bus semblable 16 est prévu entre le module de multiplexage 14 et les mémoires YMi pour lire les paramètres de modification. Les mémoires YMi sont donc également vues comme un espace d'adressage unique par le module de multiplexage. Cette architecture permet au processeur du module de multiplexage d'effectuer la modification d'un ou plusieurs paquets élus pendant que le circuit d'élection sélectionne une mémoire de paquets pour un paquet suivant du multiplex de sortie OS, étant observé que plusieurs paquets peuvent être élus d'avance, les heures d'émission Ts des paquets pouvant être anticipées. Par exemple, pendant que le paquet N sort du tampon de sortie, le paquet N+1 peut être écrit dans le tampon de sortie, le paquet N+2 peut être modifié dans sa mémoire de paquets et le paquet N+3 peut être élu. En augmentant ainsi la parallélisation des opérations, on peut s'adapter à des débits de sortie encore plus élevés. A variant embodiment of the device in FIG. 1 is shown in FIG. 10. In this variant, the interface between the packaging modules C1, ..., Cn and the multiplexing module 14 includes packet memories PM1, ..., PMm, memories ZMI, ..., ZMm for receiving the parameters for electing the packets and memories YM1, ..., YMm for receiving the parameters package modification. Each package module therefore writes the modification parameters in a memory YMi also associated with the packet memory PMi, but distinct (at least as far as addressing is concerned) from the memory ZMi of the election parameters. The bus 12 which allows the multiplexing module 14 to see all of the memories ZMi as a single address space is used in this variant only for reading the election parameters. A similar bus 16 is provided between the multiplexing module 14 and the memories YMi to read the modification parameters. The YMi memories are therefore also seen as a single address space by the multiplexing module. This architecture allows the processor of the multiplexing module to carry out the modification of one or more elected packets while the election circuit selects a packet memory for a next packet of the OS output multiplex, it being observed that several packets can be elected in advance, the transmission times Ts of the packets can be anticipated. For example, while packet N leaves the output buffer, packet N + 1 can be written to the output buffer, packet N + 2 can be modified in its packet memory and packet N + 3 can be elected . By thus increasing the parallelization of operations, it is possible to adapt to even higher output flow rates.
Figure imgf000028_0001
Figure imgf000028_0001

Claims

REVENDICATIONS
1. Dispositif pour produire un multiplex temporel de paquets d'informations numériques, comprenant plusieurs modules de paquétisation (C1,C2, ... ,Cn) recevant chacun un flux numérique d'entrée (IS1, IS2, ... , ISn) , plusieurs mémoires de paquets (PM1, PM2, ... , PMm) recevant chacune des paquets issus d'un module de paquétisation respectif, et des moyens de multiplexage (14) sélectionnant les mémoires de paquets d'où les paquets du multiplex sont à extraire et transférant successivement lesdits paquets vers une sortie du dispositif, caractérisé en ce qu'il comprend en outre au moins un ensemble de mémoires de paramètres1. Device for producing a time multiplex of digital information packets, comprising several package modules (C1, C2, ..., Cn) each receiving a digital input stream (IS1, IS2, ..., ISn) , several packet memories (PM1, PM2, ..., PMm) receiving each of the packets coming from a respective package module, and multiplexing means (14) selecting the packet memories from which the packets of the multiplex are extracting and successively transferring said packets to an output of the device, characterized in that it also comprises at least one set of parameter memories
(ZM1, ZM2 , ... , ZMm) respectivement associées aux mémoires de paquets, en ce que chaque paquet fourni à une mémoire de paquets par un module de paquétisation est associé à un jeu de paramètres incluant des paramètres d'élection écrits par ledit module de paquétisation dans la mémoire de paramètres correspondante, et en ce que les moyens de multiplexage comprennent des moyens de traitement (40,42) reliés à l'ensemble des mémoires de paramètres par un bus de paramètres (12) pour sélectionner les mémoires de paquets en analysant les paramètres d'élection respectivement associés aux premiers paquets en attente dans chacune des mémoires de paquets, et des moyens de transfert (44) reliés aux mémoires de paquets par un bus de paquets (10) et commandés par les moyens de traitement pour extraire successivement les paquets du multiplex depuis les mémoires de paquets sélectionnées, les moyens de traitement sélectionnant la mémoire de paquets d'où un paquet du multiplex est à extraire pendant que les moyens de transfert transfèrent un paquet précédent du multiplex depuis une mémoire de paquets précédemment sélectionnée. (ZM1, ZM2, ..., ZMm) respectively associated with the packet memories, in that each packet supplied to a packet memory by a package module is associated with a set of parameters including election parameters written by said package module in the corresponding parameter memory, and in that the multiplexing means comprise processing means (40,42) connected to all of the parameter memories by a parameter bus (12) for selecting the memory of packets by analyzing the election parameters respectively associated with the first packets waiting in each of the packet memories, and transfer means (44) connected to the packet memories by a packet bus (10) and controlled by the processing means to successively extract the packets from the multiplex from the selected packet memories, the processing means selecting the packet memory from which a packet of the m ultiplex is to be extracted while the transfer means transfer a previous packet of the multiplex from a previously selected packet memory.
2. Dispositif selon la revendication 1, caractérisé en ce que le jeu de paramètres associé à un paquet comprend des paramètres de modification déterminés par le module de paquétisation fournissant ledit paquet à une mémoire de paquets, indiquant si les moyens de multiplexage ont à modifier au moins une portion déterminée dudit paquet. 2. Device according to claim 1, characterized in that the set of parameters associated with a packet includes modification parameters determined by the module of package providing said packet to a packet memory, indicating whether the multiplexing means have to modify at least a determined portion of said packet.
3. Dispositif selon la revendication 2, caractérisé en ce que les paramètres de modification associés à un paquet comprennent au moins un indicateur de modification et un paramètre donnant la position d'une portion déterminée du paquet à modifier selon la valeur dudit indicateur.  3. Device according to claim 2, characterized in that the modification parameters associated with a packet include at least one modification indicator and a parameter giving the position of a determined portion of the packet to be modified according to the value of said indicator.
4. Dispositif selon la revendication 2 ou 3, caractérisé en ce que les paramètres de modification d'un paquet sont écrits par le module de paquétisation dans la même mémoire de paramètres (ZMi) que les paramètres d'élection, et en ce qu'après avoir sélectionné une mémoire de paquets pour l'extraction d'un paquet du multiplex, les moyens de traitement (40) lisent les paramètres de modification associés audit paquet dans la mémoire de paramètres (ZMi) associée à la mémoire de paquets sélectionnée, des moyens (48) étant prévus pour faire communiquer le bus de paramètres (12) et le bus de paquets (10) et pour permettre ainsi aux moyens de traitement (40) de modifier au moins une portion déterminée du paquet dans la mémoire de paquets sélectionnée lorsque les paramètres de modification lus dans la mémoire de paramètres associée indiquent une modification à effectuer.  4. Device according to claim 2 or 3, characterized in that the parameters for modifying a packet are written by the package module in the same parameter memory (ZMi) as the election parameters, and in that after selecting a packet memory for extracting a packet from the multiplex, the processing means (40) read the modification parameters associated with said packet in the parameter memory (ZMi) associated with the selected packet memory, means (48) being provided for communicating the parameter bus (12) and the packet bus (10) and thus allowing the processing means (40) to modify at least a determined portion of the packet in the selected packet memory when the modification parameters read in the associated parameter memory indicate a modification to be carried out.
5. Dispositif selon la revendication 2 ou 3, caractérisé en ce qu'il comprend un premier ensemble de mémoires de paramètres (ZMi) pour stocker les paramètres d'élection associés aux paquets présents dans les mémoires de paquets (PMi), reliées aux moyens de multiplexage (14) par un premier bus de paramètres (12), et un second ensemble de mémoires de paramètres (YMi) pour stocker les paramètres de modification associés aux paquets présents dans les mémoires de paquets (PMi), reliées aux moyens de multiplexage (14) par un second bus de paramètres (16), les moyens de traitement commandant les moyens de transfert pour qu'un paquet soit transféré vers la sortie du dispositif pendant qu'ils analysent les paramètres de modification d'un paquet suivant et qu'ils sélectionnent une mémoire de paquets d'où extraire un paquet suivant encore. 5. Device according to claim 2 or 3, characterized in that it comprises a first set of parameter memories (ZMi) for storing the election parameters associated with the packets present in the packet memories (PMi), connected to the means multiplexing (14) by a first parameter bus (12), and a second set of parameter memories (YMi) for storing the modification parameters associated with the packets present in the packet memories (PMi), connected to the multiplexing means (14) by a second parameter bus (16), the processing means controlling the transfer means so that a packet is transferred to the output of the device while they analyze the modification parameters of a next packet and they select a packet memory from which to extract a next packet again.
6. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que les paramètres d'élection associés à un paquet représentent au moins une heure minimale (Tmin) et une heure maximale (Tmax) d'émission dudit paquet par les moyens de multiplexage, et en ce que les moyens de traitement sélectionnent la mémoire de paquets d'où est à extraire chaque paquet du multiplex sur la base de l'heure (Ts) d'émission dudit paquet et des paramètres d'élection associés aux premiers paquets en attente dans chacune des mémoires de paquets.  6. Device according to any one of the preceding claims, characterized in that the election parameters associated with a packet represent at least a minimum hour (Tmin) and a maximum hour (Tmax) of transmission of said packet by the means of multiplexing, and in that the processing means select the packet memory from which each packet from the multiplex is to be extracted on the basis of the time (Ts) of transmission of said packet and the election parameters associated with the first packets waiting in each of the packet memories.
7. Dispositif selon la revendication 6, caractérisé en ce que les moyens de multiplexage (14) sont agencés pour émettre un paquet de bourrage lorsque l'heure d'émission de ce paquet est inférieure aux heures minimales (Tmin) d'émission de tous les premiers paquets en attente dans les mémoires de paquets.  7. Device according to claim 6, characterized in that the multiplexing means (14) are arranged to send a stuffing packet when the time of transmission of this packet is less than the minimum hours (Tmin) of transmission of all the first packets pending in the packet memories.
8. Dispositif selon la revendication 6 ou 7, caractérisé en ce que les paramètres d'élection associés à un paquet représentant en outre une heure idéale (Tidéal) d'émission dudit paquet par les moyens de multiplexage.  8. Device according to claim 6 or 7, characterized in that the election parameters associated with a packet further representing an ideal time (Tideal) of transmission of said packet by the multiplexing means.
9. Dispositif selon la revendication 8, caractérisé en ce que la sélection d'une mémoire de paquets pour l'émission d'un paquet à une heure Ts comprend le calcul d'un coefficient de priorité pour. chaque mémoire de paquets ayant au moins un paquet en attente, ce coefficient de priorité étant pris égal à (Ts-Tidéal) / (Tmax-Tidéal) si Ts≥Tidéal et à (Ts-Tidéal) / (Tidéal-Tmin) si Ts<Tidéal, Tmin, Tmax et Tidéal désignant respectivement les heures minimale, maximale et idéale d'émission du premier paquet en attente, la mémoire de paquets sélectionnée étant celle pour laquelle le coefficient de priorité est maximal.  9. Device according to claim 8, characterized in that the selection of a packet memory for the transmission of a packet at an hour Ts comprises the calculation of a priority coefficient for. each packet memory having at least one pending packet, this priority coefficient being taken equal to (Ts-Tideal) / (Tmax-Tideal) if Ts≥Tideal and to (Ts-Tideal) / (Tideal-Tmin) if Ts <Tideal, Tmin, Tmax and Tideal designating respectively the minimum, maximum and ideal hours of transmission of the first pending packet, the selected packet memory being the one for which the priority coefficient is maximum.
10. Dispositif selon l'une quelconque des revendication précédentes, caractérisé en ce que les moyens de traitement comprennent un processeur (40) commandant les transferts de paquets des mémoires de paquets sélectionnées vers la sortie du dispositif, et un circuit câblé d'élection (42) sélectionnant les mémoires de paquets sur la base des paramètres d'élection associés aux premiers paquets en attente dans chacune des mémoires de paquets. 10. Device according to any one of the preceding claims, characterized in that the means processing devices include a processor (40) controlling packet transfers from the selected packet memories to the device output, and a wired election circuit (42) selecting the packet memories based on the election parameters associated with the first packets pending in each of the packet memories.
11. Dispositif selon la revendication 10, caractérisé en ce que les moyens de multiplexage comprennent une mémoire (50) à deux accès dans laquelle le processeur (40) écrit les paramètres d'élection des premiers paquets en attente dans les mémoires de paquets, et dans laquelle le circuit d'élection (42) lit lesdits paramètres pour sélectionner les mémoires de paquets.  11. Device according to claim 10, characterized in that the multiplexing means comprise a memory (50) with two ports in which the processor (40) writes the parameters for electing the first packets pending in the packet memories, and wherein the election circuit (42) reads said parameters to select the packet memories.
12. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'au moins un module de paquétisation comprend :  12. Device according to any one of the preceding claims, characterized in that at least one package module comprises:
un tampon d'entrée (20) recevant le flux d'entrée ;  an input buffer (20) receiving the input stream;
- un circuit de détection (22) relié à la sortie du tampon d'entrée pour détecter des mots de synchronisation du flux d'entrée ;  - a detection circuit (22) connected to the output of the input buffer for detecting synchronization words of the input stream;
- une unité de stockage (23) recevant successivement les octets du flux d'entrée qui ont été présentés au circuit de détection (22) ;  - a storage unit (23) successively receiving the bytes of the input stream which have been presented to the detection circuit (22);
- des moyens de transfert (32) pour transférer des octets de l'unité de stockage (23) vers une mémoire de paquets (PMi) ; et  - transfer means (32) for transferring bytes from the storage unit (23) to a packet memory (PMi); and
- un processeur (26) pour déterminer les en-têtes des paquets construits à partir du flux d'entrée sur la base des mots de synchronisation détectés par le circuit de détection (22), écrire ces en-têtes dans la mémoire de paquets (PMi) et commander les moyens de transfert (32), et en ce que l'unité de stockage (23) est organisée en premier entré - premier sorti de façon à contenir à chaque instant K-k octets du flux d'entrée, K désignant le nombre d'octets d'un paquet du multiplex de sortie et k désignant le nombre d'octet minimal des en-têtes de paquet, et à ce que le transfert d'un octet de l'unité de stockage (23) vers la mémoire de paquets (PMi) soit accompagné par le transfert d'un autre octet du circuit de détection (22) vers l'unité de stockage (23), de sorte que tous les octets du flux d'entrée pouvant être introduits dans un paquet sont présentés au circuit de détection (22) avant que commence l'écriture de ce paquet dans la mémoire de paquets. - a processor (26) for determining the headers of the packets constructed from the input stream on the basis of the synchronization words detected by the detection circuit (22), writing these headers in the packet memory ( PMi) and control the transfer means (32), and in that the storage unit (23) is organized as first input - first output so as to contain at all times Kk bytes of the input stream, K denoting the number of bytes in a packet of the output multiplex and k designating the minimum number of bytes in packet headers, and that the transfer of one byte from the storage unit (23) to the packet memory (PMi) is accompanied by the transfer of another byte from the detection circuit (22) to the storage unit (23), so that all the bytes of the input stream which can be introduced into a packet are presented to the detection circuit (22) before writing begins of this packet in packet memory.
13. Dispositif selon la revendication 12, caractérisé en ce que le processeur (26) d'un module de paquétisation calcule le nombre d'octets L de l' en-tête d'un paquet selon les détections de mots de synchronisation effectuées par le circuit de détection (22) pendant que les octets d'un paquet précédent issus du flux d'entrée sont transférés de l'unité de stockage (23) vers la mémoire de paquets (PMi), et commande les moyens de transfert (32) pour transférer ensuite les K-L octets du flux d'entrée à inclure dans ledit paquet.  13. Device according to claim 12, characterized in that the processor (26) of a package module calculates the number of bytes L of the header of a packet according to the detections of synchronization words carried out by the detection circuit (22) while the bytes of a previous packet coming from the input stream are transferred from the storage unit (23) to the packet memory (PMi), and controls the transfer means (32) to then transfer the KL bytes of the input stream to be included in said packet.
14. Dispositif selon la revendication 12 ou 13, caractérisé en ce que, pour traiter un flux élémentaire brut 14. Device according to claim 12 or 13, characterized in that, for treating a raw elementary flow
(ES) issu d'un codeur audio ou vidéo, le processeur (26) d'un module de paquétisation est agencé pour déterminer des en-têtes d'une première couche de paquétisation (PES) et des en-têtes d'une seconde couche de paquétisation (TP) sur la base de mots de synchronisation du flux élémentaire détectés par le circuit de détection (22), les paquets écrits dans la mémoire de paquets (PMi) contenant chacun un en-tête de la seconde couche, et les paquets contenant un en-tête de la première couche commençant chacun par un en-tête composite écrit par le processeur (26) dans la mémoire de paquets (PMi) et constitué par un en-tête de la seconde couche suivi par ledit en-tête de la première couche. (ES) from an audio or video encoder, the processor (26) of a package module is arranged to determine headers of a first package layer (PES) and headers of a second packetization layer (TP) on the basis of elementary stream synchronization words detected by the detection circuit (22), the packets written in the packet memory (PMi) each containing a header of the second layer, and the packets containing a header of the first layer each starting with a composite header written by the processor (26) in the packet memory (PMi) and consisting of a header of the second layer followed by said header of the first layer.
15. Dispositif selon la revendication 14, caractérisé en ce que le processeur (26) est agencé pour déterminer lesdits en-têtes composites de façon qu'ils occupent chacun la totalité d'un paquet de K octets. 15. Device according to claim 14, characterized in that the processor (26) is arranged to determine said composite headers so that they each occupy the whole of a packet of K bytes.
16. Dispositif selon la revendication 12 ou 13, caractérisé en ce que pour traiter un flux élémentaire paquetisé selon une première couche de paquétisation (PES), le processeur (26) d'un module de paquétisation est agencé pour déterminer un en-tête d'une seconde couche de paquétisation (TP) inséré au début de chaque paquet écrit dans la mémoire de paquets (PMi) sur la base de mots de synchronisation inclus dans les en-têtes de la première couche et détectés par le circuit de détection (22), le circuit de détection (22) fournissant en outre au processeur (26) une indication du nombre d'octets L' de chaque en-tête de la première couche de façon que le processeur (26) détermine un en-tête de la seconde couche de K-L' octets pour le paquet contenant cet en-tête de la première couche. 16. Device according to claim 12 or 13, characterized in that to process an elementary stream packaged according to a first packetization layer (PES), the processor (26) of a packetization module is arranged to determine a header d '' a second packetization layer (TP) inserted at the start of each packet written in the packet memory (PMi) on the basis of synchronization words included in the headers of the first layer and detected by the detection circuit (22 ), the detection circuit (22) further providing the processor (26) with an indication of the number of bytes L ′ of each header of the first layer so that the processor (26) determines a header of the second layer of KL 'bytes for the packet containing this header of the first layer.
17. Dispositif selon l'une quelconque des revendications 12 à 16, caractérisé en ce que le circuit de détection (22) comprend un réseau de portes programmable.  17. Device according to any one of claims 12 to 16, characterized in that the detection circuit (22) comprises a network of programmable doors.
18. Dispositif selon la revendication 17, caractérisé en ce que le circuit de détection (22) comprend un registre à décalage (24) ayant une longueur de k octets placé entre la sortie du tampon d'entrée (20) et l'entrée de l'unité de stockage (23), et une logique programmable de détection (25) recevant les k octets présents dans le registre à décalage (24) et indiquant au processeur (26) les détections de mots de synchronisation.  18. Device according to claim 17, characterized in that the detection circuit (22) comprises a shift register (24) having a length of k bytes placed between the output of the input buffer (20) and the input of the storage unit (23), and a programmable detection logic (25) receiving the k bytes present in the shift register (24) and indicating to the processor (26) the detections of synchronization words.
PCT/FR1995/001396 1994-10-26 1995-10-23 Digital data packet multiplexer, in particular for digital television WO1996013940A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU38470/95A AU688616B2 (en) 1994-10-26 1995-10-23 Digital data packet multiplexer, in particular for digital television
EP95936592A EP0788717A1 (en) 1994-10-26 1995-10-23 Digital data packet multiplexer, in particular for digital television

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9412815A FR2726413B1 (en) 1994-10-26 1994-10-26 MULTIPLEXER OF DIGITAL INFORMATION PACKETS, ESPECIALLY FOR DIGITAL TELEVISION
FR94/12815 1994-10-26

Publications (1)

Publication Number Publication Date
WO1996013940A1 true WO1996013940A1 (en) 1996-05-09

Family

ID=9468237

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1995/001396 WO1996013940A1 (en) 1994-10-26 1995-10-23 Digital data packet multiplexer, in particular for digital television

Country Status (6)

Country Link
EP (1) EP0788717A1 (en)
CN (1) CN1166906A (en)
AU (1) AU688616B2 (en)
CA (1) CA2203786A1 (en)
FR (1) FR2726413B1 (en)
WO (1) WO1996013940A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2313755A (en) * 1996-05-29 1997-12-03 Gen Instrument Corp Processing packetised data streams

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244927B2 (en) * 2009-10-27 2012-08-14 Fairchild Semiconductor Corporation Method of detecting accessories on an audio jack

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
B. HASKELL ET A. REIBMAN: "Multiplexing of variable rate encoded streams", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, vol. 4, no. 4, USA, pages 417 - 424, XP000464655 *
G. TONGE: "The service multiplex", SMPTE JOURNAL, pages 395 - 397, XP000457574 *
U. RIEMANN: "Der MPEG-2-Standard , Multiplex-Spezifikation für die flexible Übertragung digitaler Datenströme (Teil 5_2)", FERNSEH- UND KINO-TECHNIK, vol. 48, no. 10, GERMANY, pages 545 - 550,553 *
Y. KAJIYAMA ET N. TOKURA: "A multiplexing method of multimedia signal in ATM networks", ELECTRONICS AND COMMUNICATIONS IN JAPAN, PART I : COMMUNICATIONS, vol. 75, no. 7, pages 22 - 32, XP000330974 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2313755A (en) * 1996-05-29 1997-12-03 Gen Instrument Corp Processing packetised data streams
US5894320A (en) * 1996-05-29 1999-04-13 General Instrument Corporation Multi-channel television system with viewer-selectable video and audio
GB2313755B (en) * 1996-05-29 2000-11-08 Gen Instrument Corp Processing packetized data streams

Also Published As

Publication number Publication date
FR2726413B1 (en) 1996-12-27
FR2726413A1 (en) 1996-05-03
AU688616B2 (en) 1998-03-12
AU3847095A (en) 1996-05-23
CA2203786A1 (en) 1996-05-09
CN1166906A (en) 1997-12-03
EP0788717A1 (en) 1997-08-13

Similar Documents

Publication Publication Date Title
EP0113639B1 (en) Switching system for fixed-length synchronous packets
FR2678121A1 (en) DEVICE FOR INSERTING DIGITAL PACKETS IN A TRANSMISSION CHANNEL.
FR2724277A1 (en) TRAFFIC FORMING DEVICE AND PACKET COMMUNICATION APPARATUS.
EP0609137A1 (en) Device for cross-mapping between synchronous and asynchronous transmission formats
EP0377203A1 (en) Reception and processing system for HDLC frames transmitted on PCM-TDM multipaths, especially for a data switcher
EP0878758B1 (en) Device for sorting data elements in a binary tree and ATM spacer including such a device
EP0603056B1 (en) Method of simulating the transmission on an asynchronous transfer mode transmission network and simulator for transmission on such a network
EP0788717A1 (en) Digital data packet multiplexer, in particular for digital television
WO1996013941A1 (en) Digital data packet multiplexer, in particular for digital television
EP3357244A1 (en) Method for encoding streams of video data based on groups of pictures (gop)
FR2726415A1 (en) MULTIPLEXER OF DIGITAL INFORMATION PACKAGES, ESPECIALLY FOR DIGITAL TELEVISION
FR2796790A1 (en) Data packet transmission system uses address filtering at receivers to identify packets to be received and processed
EP1212879A1 (en) Method and system for transmitting a chain of messages for database
EP0504082B1 (en) Arrangement for triggering multiple timers
FR3089374A1 (en) Data management for storing data frames in the memory of a data transmission system
CA2067890A1 (en) Method and device for selecting informations used by a local unit connected to a digital communications system
FR2676320A1 (en) METHOD AND DEVICE FOR DETECTING AND CONTROLLING THE TEMPLATE OF DIGITAL MESSAGES TRANSMITTED TO A RECEPTION DEVICE.
EP1245099B1 (en) Packet reception device
EP0878939A1 (en) ATM cell spacer
FR2785755A1 (en) Data recovery method for received television signals involves using buffer memory for holding transport packets at reception rate, for reading and processing at rate independent of writing
EP0403361A1 (en) Method and system of switching cells for asynchronous time division switching
EP0025753A1 (en) Interface for passing to a packet-mode transmission connection from a digital transmission connection of another mode
FR2794327A1 (en) Digital information/digital broadcast transmission/receive system having incoming digital word stream digital transfer/transmitter section passed and logic filtering selecting digital words selection dependent.
EP0716546A1 (en) User addressing method in a television system with reserved access
FR2640841A1 (en) Device for transmitting words of a statistical code

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 95196439.9

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2203786

Country of ref document: CA

Ref document number: 2203786

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1995936592

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 1997 817597

Country of ref document: US

Date of ref document: 19970812

Kind code of ref document: A

WWP Wipo information: published in national office

Ref document number: 1995936592

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1995936592

Country of ref document: EP