Abstract:
The invention relates to a method and device for processing multiplexed flow data wherein data is organized in the form of packets provided with an identifier enabling description of the source to which said data contained therein belongs. The inventive method comprises a data filtering step. According to the invention a) a table of correspondence is established, associating each identifier with a processing context, b) the identifier for each incoming packet is recognized, the data thereof is filtered using the filtering parameters of the processing context thereof, the filtered data is stored when a new incoming packet is detected. The invention can be used for digital broadcasting such as digital television, digital radio or to broadcast computer data.

Description:
TECHNICAL FIELD  
         [0001]    The present invention relates to a method and a device for processing data of a multiplexed flow.  
         BACKGROUND  
         [0002]    In this domain the flow, which is received by a distant receiver, is multiplexed, that is the data is organized in packets comprising each an identifier that allows recognition of the data type contained and specially the channel represented by the packets.  
           [0003]    For each channel there are different data layers present in the packet.  
           [0004]    On reception of such multiplexed flow, a processing step is necessary to restore different data flows according to the data channels (e.g. audio, video, data).  
           [0005]    In this domain a demultiplexer device is known by the document FR-A-2.743.245 which comprises means for storing data of a multiplexed flow, programmable means for storing data filters, means for comparing the data of the multiplexed flow with the data filters and means for transferring the data of the multiplexed flow to storage means as a function of the realized comparison.  
           [0006]    This demultiplexer device is complex and comprises a plurality of filtering processors.  
           [0007]    It is essentially directed to filtering processes relative to each transport layer of each data packet.  
         SUMMARY OF THE INVENTION  
         [0008]    The present invention relates to a method and a device for processing the data of a multiplexed flow advantageously.  
           [0009]    Within this scope a single filtering processor is used for all filtering steps that are to be executed on the different packet types comprised in the flow, according to their identifier commonly named Channel identifier, Channel in the sense data flow and not in the sense television channel. The identifier is a number that describes to which source the packet data belong; in the case of digital television the source could be e.g. audio, video or information data. Consequently, the invention reduces considerably the structural massiveness of the filter circuit, which contained up to now as many filters as packet types.  
           [0010]    The present invention relates to a method for processing data of a multiplexed flow in which the data are organized in packets comprising an identifier that allows to describe to which source the data contained in the packet belong, the method comprising a data filtering step, characterized by the fact that  
           [0011]    a) a cross-reference table is established in which each identifier is associated with a processing context,  
           [0012]    b) for each entering packet:  
           [0013]    its identifier is recognized  
           [0014]    its data are filtered using the filtering parameters of its processing context  
           [0015]    the filtered data are stored when the arrival of a new packet is detected. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]    The accompanying drawings are given as illustrative and not limiting examples. They represent a preferred embodiment according to the invention. They will help to understand easily the invention.  
         [0017]    [0017]FIG. 1 is a bloc diagram representing the elements of the present invention.  
         [0018]    [0018]FIG. 2 is an example of the arborescent structure of the filters of one context.  
     
    
     DETAILED DESCRIPTION  
       [0019]    The invention applies especially to filtering data received within the scope of digital diffusion for example digital television transmission, in particular by satellite.  
         [0020]    Above all, the invention allows filtering data that is received in a multiplexed manner, e.g. in the standardized MPEG format.  
         [0021]    An advantage of the invention lies in the continuous processing of the multiplexed signal with a temporary storage and the possibility to mark the filtered data allowing their identification for a later utilization.  
         [0022]    It is another objective of the invention to combine advantageously a hardware with a software structure.  
         [0023]    On the hardware level, the processor executes several programs simultaneously; the identifier of each packet to which the entering data is associated automatically determines when to pass from one program to another.  
         [0024]    Therefore a multitasking processor hardware is used.  
         [0025]    On the software level, the filters are not any longer processed separately but advantageously all the filters, which are related to one packet identifier, are compiled in an arborescent manner thus allowing to deduce a filtering program that is executed in an optimized manner by the multitasking processor.  
         [0026]    Other objectives and advantages will appear in the following not limiting description, which shows a particular embodiment of the invention in detail.  
         [0027]    A method for processing data of a multiplexed flow may comprise the following steps:  
         [0028]    at each change of the processing context to be used the filtered data are stored with the foregoing context in a FIFO register of the first-in first-out type and a FIFO register pointer is associated to them;  
         [0029]    to the data filtered with a particular context marking data are added for marking with the identifier of the packet to which they belong and marking with the filter that was used for their filtering;  
         [0030]    the filtering parameters of each processing context comprise one or a plurality of filters each being provided with characteristics of data filtering, of mask and of length;  
         [0031]    the filtering is executed by organizing the filters arborescently, where the common elements are grouped together on a same branch.  
         [0032]    The invention also relates to a device for processing data of a multiplexed flow in which the data are organized in packets comprising an identifier corresponding to the type of data it contains, the device comprising means for data filtering, which can be used by the method, characterized by that it comprises:  
         [0033]    means for storing a cross-reference table that associates each identifier with a processing context,  
         [0034]    means for detecting the identifier of a packet entering the device  
         [0035]    a filtering processor that is associated with a memory which contains the filtering parameters included in each processing context  
         [0036]    means for storing the filtered data  
         [0037]    for filtering the data of a packet according to filtering parameters which are applied to the filtering processor after recognition of the packet identifier and association of the processing context which contains these filtering parameters to this identifier.  
         [0038]    In particular, according to preferred embodiments:  
         [0039]    the means for storing the filtered data consist of a FIFO register of the first-in first-out type, whose pointers are associated with the filtered data according to their context;  
         [0040]    it contains a marker to add marking data to the filtered data for marking with the identifier of the packet to which they belong and with the filter that was used for their filtering;  
         [0041]    the multiplexed flow is a flow of digital broadcasting;  
         [0042]    the multiplexed flow is a digital television flow.  
         [0043]    Usually, a multiplexed flow is composed of data packets, each containing an identifier, generally named Channel ID allowing to know the source of the data contained in the packet.  
         [0044]    In the scope of a preferred application in the digital television, each packet corresponds to a television channel.  
         [0045]    On reception, especially by an end user, it is necessary to demultiplex the flow for its utilization.  
         [0046]    This includes a filtering of the packets contained in the multiplexed flow.  
         [0047]    The device according to the invention allows the processing and specially the necessary filtering.  
         [0048]    With reference to FIG. 1, arrow  1  indicates the entering multiplexed flow.  
         [0049]    This flow is received by a controller  2 , which performs a step of recognition of the entering packet identifier. The controller  2  may be for example a component like an ASIC or a FPGA.  
         [0050]    Advantageously, the controller  2  comprises a stack  2   a  of the type first in first out for regulating the entering data stream according to the processing time needed in the following constituent bloc of the present invention.  
         [0051]    [0051] 2   b  in FIG. 1 represents the means of detection, which are in the controller  2  and allow identifying the entering packet identifier.  
         [0052]    All current means of recognition of the Channel ID may be used here.  
         [0053]    Further on in the description the identifier of a packet will be designated as Channel ID, and context will be used for the whole parameters for the processing to be done comprising the necessary filtering parameters relative to a special Channel ID (that is for the type of packet).  
         [0054]    Each Channel ID, i.e. each packet type corresponds to a TV program channel for a digital television application.  
         [0055]    As schematically shown in FIG. 1, the controller  2  comprises in addition a cross-reference table 2 c,  which is formed by a common memory that is associated to the detection means  2   b.    
         [0056]    When the Channel ID of a packet is recognized, the table  2   c  correlates the identity of the Channel ID to a context that is to be used for further processing.  
         [0057]    To signal the context change to the successive processing means following the device, a context change signal is addressed in direction of the blocs  3 , 4  and  5  as shown in FIG. 1.  
         [0058]    First the filtering processor bloc  3  receives the context change signal, which indicates the new context to be used.  
         [0059]    The processor  3  contains in its associated memory the filtering parameters included in each processing context.  
         [0060]    At the reception of signal S the processor can get back from its memory the filtering parameters corresponding to the context to be used.  
         [0061]    The memory dedicated to the processor (which will be usually a random access memory RAM) serves for the storage of the contexts as well as for the storage of the filtering programs.  
         [0062]    In fact, the processor  3  executes the program corresponding to the context because of an adapted instruction set.  
         [0063]    When context changes occur, the processor registers are saved in the memory dedicated to the processor.  
         [0064]    The processor uses a payload start signal for reinitializing its program counter, if the packet that corresponds to the modification of the context contains the payload beginning.  
         [0065]    It equally contains an internal counter that allows knowing the number of bytes remaining in the data to be filtered.  
         [0066]    Following the filtering processor, the device according to the invention comprises a FIFO register  4  (first in first out), which itself is indexed to the context because of the context change signal S received from the controller  2 .  
         [0067]    The FIFO register  4  comprises a fast memory RAM allowing storage of data organized in FIFO.  
         [0068]    When a context change occurs pointers of the FIFO register  4  are associated to the data contained in the memory.  
         [0069]    The FIFO register  4  will store the data during the period of correlation (period of match) of the filter before sending them to the next bloc or eliminating them.  
         [0070]    The next bloc in FIG. 1 is the marker  5 .  
         [0071]    It has got the function to identify precisely each data coming out of the filtering process.  
         [0072]    There again, the sort of marking depends on the associated context according to the information delivered by the controller  2  with the signal S.  
         [0073]    More precisely, marker  5  adds to the filtered data marking data, that correspond to the packet identifier (Channel ID) to which they belong as well as a mark of the filter used for their filtering.  
         [0074]    At the output of marker  5  the filtered data may be used by means of application of current type, especially a direct access memory.  
         [0075]    Next will be described a possible application of the invention by way of the example of the processing of one packet.  
         [0076]    When a packet in the entering flow  1  is received, it may perhaps pass a FIFO stack  2   a  that allows regulating the data rate.  
         [0077]    When entering, the packet is recognized by the detection means  2   b,  which extract information concerning the Channel ID of the packet.  
         [0078]    Dependent on the Channel ID, the controller  2  associates to the packet a context conform to a cross-reference table  2   c.    
         [0079]    The controller  2  outputs the data flow with a regulated rate as well as information about the context, given by a context change signal S.  
         [0080]    As soon as the memory associated to a filtering processor  3  receives this context change signal S, it actualizes the filtering program according to the instructions relative to the context to apply.  
         [0081]    Thus the processor uses new filtering parameters.  
         [0082]    The program that uses the filtering processor  3  for each context could be as follows.  
         [0083]    A limited set of instructions may be used allowing all the same the realization of all necessary filtering.  
         [0084]    The instructions could be the following:  
                                       STORE #Flt   Store a section on the filter Fit       DNE #Data, #Mask   Drop if Not Equal: Drop a section if the           comparison is wrong       SEQ #Data, #Mask   Skip if Equal: Skip the next instruction if           the comparison is right and store the data       SNE #Data, #Mask   Skip if Not Equal: Skip the next instruction           if the comparison is wrong       GOTO   Go to an address                  
 
         [0085]    A register contains the actual byte coming from the flow, which will serve for the comparison carried out by the filtering.  
         [0086]    For the instructions DNE, SEQ and SNE mentioned above, it is possible to specify, if the instruction must use the data already present in the register or wait for the arrival of the next data.  
         [0087]    In the case of an immediate processing (divergence of the filtering tree) the extension .imm will further on distinguish the instructions to be executed immediately DNE.imm, SEQ.imm and SNE.imm.  
         [0088]    After a storage instruction (STORE), the program stops and the section is send to the output.  
         [0089]    Once the section is filtered, execution restarts at the beginning of the program.  
         [0090]    If the comparison of an instruction DNE is wrong, the program stops and restarts at the beginning, at the end of the actual section.  
         [0091]    Advantageously, the filters that are to be created for each Channel ID are organized in a particular manner.  
         [0092]    In fact, these filters organized by Channel ID can present themselves in an arborescent manner according to their common data concerning their length, the data and the mask of correlation (of match) that they contain.  
         [0093]    It follows an example for five filters available for the processing of a packet with a determined CHANNEL ID:  
                                                               filter 1   data   0x81                               mask   0xFF       filter 2   data   0x84   0x33   0x54   0x63           mask   0xFF   0xFF   0xFF   0xFF       filter 3   data   0x88   0x12   0xA8   0xB3   0x00   0x98           mask   0xFF   0xFF   0xFF   0xFF   0x00   0xFF       filter 4   data   0x88   0x22   0x65   0x30           mask   OxFF   OxFF   OxFF   OxFO       filter 5   data   0x88   0x12   OxFF   OxFF   0x02           mask   0xFF   0xFF   0xFF   0xFF   0x03                  
 
         [0094]    When the program is executed, the arborescent structure as shown in FIG. 2 is obtained.  
         [0095]    It is to be noticed, that steps common to different filters are executed before a divergence of the tree when elements that are not common are to be used for the instructions.  
         [0096]    By way of example, the program code may be as follows:  
         [0097]    Start:  
         [0098]    SNE #81, #FF  
         [0099]    STORE #1  
         [0100]    SNE.imm #84, #FF  
         [0101]    GOTO Filter 2   — 1  
         [0102]    DNE.imm #88, #FF  
         [0103]    SNE #22, #FF  
         [0104]    GOTO Filter 4   — 1  
         [0105]    DNE.imm #12, #FF  
         [0106]    SNE #A8, #FF  
         [0107]    GOTO Filter 3   — 1  
         [0108]    DNE.imm #FF, #FF  
         [0109]    DNE #FF, #FF  
         [0110]    DNE #02, #03  
         [0111]    STORE #5  
         [0112]    Filter 2   — 1:  
         [0113]    DNE#33,#FF  
         [0114]    DNE #54, #FF  
         [0115]    DNE #63, #FF  
         [0116]    STORE #2  
         [0117]    Filter 4   — 1:  
         [0118]    DNE #65, #FF  
         [0119]    DNE #30, #F0  
         [0120]    STORE #4  
         [0121]    Filter 3   — 1:  
         [0122]    DNE#B3,#FF  
         [0123]    DNE #00, #00  
         [0124]    DNE #98, #FF  
         [0125]    STORE #3  
         [0126]    Thus, an optimized filtering step is obtained, which uses regarding hardware only one filtering processor but which can work with several filtering parameters according to the Channel ID associated to the packets.  
         [0127]    Additionally, the necessary succession of filtering instructions for each packet itself is optimized by the thus described arborescent structure.  
         [0128]    Follows next the marking step at marker  5  for identifying unambiguously the data source (the Channel ID associated to their packet) as well as the filter type used.  
         [0129]    Thus is known exactly, which filter was released for the associated data.  
       References  
       [0130]    [0130] 1 . Entering flow  
         [0131]    [0131] 2 . Controller  
         [0132]    [0132] 2   a.  FIFO stack  
         [0133]    [0133] 2   b.  Detection means  
         [0134]    [0134] 2   c.  Cross-reference table  
         [0135]    [0135] 3 . Filtering processor  
         [0136]    [0136] 4 . FIFO register  
         [0137]    [0137] 5 . Marker  
         [0138]    [0138] 6 . Application  
         [0139]    [0139] 7 . Filtered data  
         [0140]    S. Context change signal