Brevet FR2823926A1 — publié le 20021025

deux sauts consécutifs. La présente invention concerne un procédé ainsi qu'un dispositif pour le traitement des données d'un flux multiplexé. L' invention trouvera son application particulièrement pour le filtrage de donnéss recues dans le cadre de diffusion numérique par exemple de transmission télévisuelles numériques, par satellite notamment. En particulier, elle permet le filtrage de données reçues sous forme multiplexée, par exemple au format standardisé MPEG. Dans ce domaine en effet, le flux reau par un récepteur distant est multiplexé, à savoir que les données sont organisées par paquets pourvus chacun d'un identifiant permettant de reconnaître le type de données qu'ils contiennent et particulièrement le canal qu'ils représentent. Pour chaque canal, différentes couches de données sont présentes dans le paquet. Lors de la réception de tel flux multiplexé, il est nécessaire de procéder à une étape de traitement permettant de reconstituer des flux de données distincts selon les canaux de données (audio, vidéo, données par exemple). Dans ce domaine, on connaît du doeument FR-A-2.743.245 un dispositif de démultiplexage comprenant des moyens de mémorisation de donnéss d'un flux multiplexé, des moyens programmables de mémorisation de filtres de donnéss, des moyens de comparaison entre les données du flux multiplexé et les filtres de données ainsi que des moyens de transÉert des donnces du flux multiplexé vers des moyens de stockage en fonction des comparaisons réalisées. Ce dispositif de démultiplexage est complexe et présente une pluralité de processeur de filtrage. I1 s'adresse surtout à des filtrages relatifs à chaque couche de transport de chaque paquet de données. La présente invention concerne un procédé et un dispositif de traitement de données d'un flux multiplexé particulièrement avantageux. Dans ce cadre, on utilise un seul processeur de filtrage pour l'ensemble des étapes de filtrage à exécuter sur les différents types de paquets contenus dans le flux, selon leur identifiant communément appelé Channel identifier, Channel s étant au sens flux de données et non pas chaîne de télévision. L'identifiant est un numéro qui décrit à quelle source appartiennent les données du paquet, la source pouvant être par exemple dans le cas de la télévision numérique, audio, video ou données d'information.En conséquence, l' invention réduit considérablement la lourdeur structurelle du circuit de filtrage qui jusqu'alors comprenait autant de filtres que de types de paquets. Un autre avantage de l' invention est d' assurer un traitement continu du signal multiplexé avec un stockage intermédiaire et une possibilité de marquage de données filtrces permettant de les identifier pour une uti l i sat ion ultérieure. Un autre but de l' invention est de combiner un agencement structurel (hardware) et logiciel (software) de façon avantageuse. Au niveau hardware, le processeur exécute virtuellement plusieurs programmes simultanément, le passage d'un programme à un autre étant conditionné automatiquement par l'identifiant de chaque paquet auquel sont associées les données entrantes. 2s On a donc recours à un processeur multitâches hardware. Au niveau software, les filtres ne sont plus traités isolément mais, de façon avantageuse, tous les filtres liés à un identifiant de paquet sont compilés de façon arborescente ce qui permet de déduire un programme de filtrage exécuté de façon optimisée par le processeur multitâches. D'autres buts et avantages apparaîtront au cours de la description qui suit qui présente un mode particulier détaillé de réalisation de l' invention qui n'en est cependant pas limitatif. La présente invention concerne un procédé de traitement des données dun flux multiplexé dans lequel les données sont organisées par paquets pourvus d'un identifiant permettant de décrire à quelle source appartiennent les données qu'ils contiennent, ledit procédé comprenant une étape de filtrage des données, caractérisé par le fait c) qu'on établit une table de correspondance associant chaque identifiant à un contexte de traitement, d) que pour chaque paquet entrant: - on reconnaît son identifiant, - on filtre ses donnéss en utilisant les paramètres de filtrage de son contexte de traitement, - on stocke les données filtrées à la détection de l'entrée d'un nouveau paquet. Ce procédé peut comporter les étapes énoncées ci-après: - à chaque changement de contexte de traitement à utiliser, on stocke les donnses filtrses avec le contexte précédent dans un registre FIFO du type premier entré premier sorti et on leur associe un pointeur de registre FIFO; - on ajoute aux données filtrées avec un contexte déterminé des données de marquage de l'identifiant du paquet auquel elles appartiennent et du filtre utilisé pour leur filtrage; - les paramètres de filtrage de chaque contexte de traitement comportent un ou plusieurs filtres disposant chacun des caractéristiques de filtrage de données, de masque et de longueur; on exécute le filtrage en organisant les filtres en arborescence, les éléments communs des filtres étant regroupés sur une même branche. L'invention concerne également un dispositif de traitement des données d'un flux multiplexé dans lequel les données sont organisées par paquets pourvus d'un identifiant correspondant au type de données qu'ils contiennent, ladit dispositif comportant des moyens de filtrage des données, apte à être mis en _uvre par le procédé caractérisé par le fait qu'il comporte: - des moyens de stockage d'une table de correspondance associant chaque identifiant à un contexte de traitement, - des moyens de détection de l'identifiant d'un paquet entrant dans le dispositif, - un processeur de filtrage associé à une mémoire contenant les paramètres de filtrage inclus dans chaque contexte de traitement, - des moyens de stockage des donnces filtrces, pour le filtrage des données d'un paquet selon des paramètres de filtrage affectés au processeur de filtrage après reconnaissance de l'identifiant du paquet et association à l'identifiant du contexte de traitement contenant lesdits paramètres de filtrage. En particulier, selon des modes de réalisation préférés: - les moyens de stockage des données filtrces sont constitués d'un registre FIFO du type premier entré premier sorti dont les pointeurs sont associés aux données filtrées selon leur contexte; - il comporte un marqueur pour ajouter aux données filtrées des données de marquage de l'identifiant du paquet auquel elles appartiennent et du filtre utilisé pour leur filtrage; 2s - le flux multiplexé est un flux de diffusion numérique; - le flux multiplexé est un flux de télévision numérique. Les dessins ci-joints sont donnés à titre d'exemples indicatifs et non limitatifs. Ils représentent un mode de réalisation préféré selon l' invention. Ils permettront de comprendre aisément l'invention. La figure 1 est un bloc diagramme représentatif des éléments constitutifs de la présente invention. La figure 2 est un exemple de l'arborescence des filtres d'un contexte. s De façon courante, un flux multiplexé est composé de paquets de donnces chacun pourvu d'un identifiant généralement dénommé Channel ID permettant de connaître la source de données contenue dans le paquet. Dans le cadre d'une application préférée à la télévision numérique, à chaque paquet correspond un canal télévisuel. Lors de la réception, particulièrement au niveau d'un utilisateur terminal, il est nécessaire de procéder à un démultiplexage du flux pour son exploitation. Dans ce cadre, un filtrage des paquets contenus dans le flux multiplexé est opéré. Le dispositif selon l' invention permet le traitement et en particulier le filtrage nécessaire à cet effet. En référence à la figure l, le flux multiplexé entrant est repéré par la flèche l. Ce flux est requ au niveau d'un contrôleur repéré 2 effectuant une étape de reconnaissance de l'identifiant du paquet entrant. Le contrôleur 2 est par exemple un composant tel que ASIC ou FPGA. Avantageusement, le contrôleur 2 intègre une pile 2a de type first in first out (premier entré premier sorti) pour réquler le flot entrant des données en fonction du temps de traitement nécessaire dans le bloc constitutif de la présente invention situé en aval. On a repéré 2b en figure l les moyens de détection présents dans le contrôleur 2 permettant didentifier l'identifiant du paquet entrant. Tout moyen courant de reconnaissance du Channel ID seront utilisables à ce niveau. Pour la suite de la description, on appelle Channel ID l'identifiant d'un paquet et contexte l'ensemble des paramètres de traitement à effectuer dont les paramètres du filtrage nécessaires relatifs à un Channel ID déterminé (c'est-à-dire à un type de paquet). A chaque Channel ID, c'est-à-dire à chaque type de paquet, correspond un canal de programme télévisuel pour une application à la télévision numérique. Comme schématisé à la figure 1, le contrôleur 2 comprend en outre une table de correspondance 2c constituée par une mémoire d'un type courant associée aux moyens de détection 2b. Lorsque le Channel ID d'un paquet est reconnu, la table 2c assure une correspondance entre l'identité du Channel ID et un contexte à appliquer pour le traitement ultérieur. Afin de signaler aux moyens de traitement successifs et ultérieurs du dispositif le changement de contexte, un signal S de changement de contexte est adressé à cet effet comme schématisé en figure 1 en direction des blocs 3, 4 et 5 représentés. En premier lieu, le signal de changement de contexte indiquant le nouveau contexte à utiliser est reçu au bloc constitué par le processeur de filtrage 3. A ce niveau, le processeur 3 contient dans sa mémoire associée les paramètres de filtrage inclus dans chaque contexte de traitement. A la réception du signal S. le processeur est à même de récupérer de sa mémoire les paramètres de filtrage correspondant au contexte à appliquer. La mémoire dadiée au processeur (qui sera communément une mémoire à accès aléatoire RAM) sert à la fois au stockage des contextes et au stockage des programmes de filtrage. En effet, le processeur 3 exécute le programme correspondant au contexte grâce à un jeu d' instructions adapté. Lors des changements de contexte, les registres processeurs sont sauvegardés dans la mémoire dédice au processeur. Le processeur utilise un signal de début de charge utile pour réinitialiser son compteur programme si le paquet correspondant à la modification du contexte contient le début de la charge utile. Il contient également un compteur interne qui permet de connaître le nombre d' octets restant dans les données à filtrer. En aval du processeur de filtrage, le dispositif selon l'invention comprend un registre FIFO 4 (first in first out, premier entré premier sorti) lui- même également indexé sur le contexte grâce au signal de changement de contexte s reçu lors du contrôleur 2. Le registre FIFO 4 contient une mémoire vive à accès aléatoire (RAM) permettant le stockage des donnés organisces en FIFO. Par ailleurs, des pointeurs du registre FIFO 4 sont associés lors du changement de contexte aux données contenues dans la mémoire. Le registre FIFO 4 va stocker les données pendant la période de correspondance (période de match) du filtre avant de les envoyer vers le bloc suivant ou de les supprimer. Le bloc suivant est le marqueur repéré 5 en figure l. Il a pour fonction de réaliser l' identification précise de chaque donnée issue des opérations de filtrage. Là encore, la nature du marquage est relative au contexte associé selon l' information délivrée par le contrôleur 2 par le signal s. Plus précisément, le marqueur 5 ajoute aux données filtrées des données de marquage correspondant à l'identifiant du paquet (Channel ID) auxquelles elles appartiennent ainsi qu'un marquage du filtre utilisé pour leur filtrage. En sortie du marqueur 5, les données filtrées sont utilisables par un organe d' exploitation d'un type courant et notamment une mémoire à accès direct. On décrit ci-après un mode de mise en _uvre de l' invention, selon un exemple de traitement d'un paquet. Lors de la réception d'un paquet dans le flux entrant 1, celui-ci peut éventuellement passer par une pile FIFO 2a permettant de réquler le débit des données. Lors de son entrée, le paquet est reconnu par les moyens de détection 2b qui retirent une information quant au Channel ID du paquet. En fonction du Channel ID, le contrôleur 2 lui associe un contexte selon une table de correspondance 2c. Le contrôleur 2 retourne en sortie le flux de données avec un débit réqulé ainsi qu'une information quant au contexte, révélé par un signal s de changement de contexte. Dès réception de ce signal de changement de contexte s, la mémoire associée à un processeur de filtrage 3 met à j our le programme de filtrage selon les instructions relatives au contexte à appliquer. De nouveaux paramètres de filtrage sont donc utilisés par le processeur 3. Le programme mis en _uvre pour chaque contexte par le processeur de filtrage 3 peut se présenter comme suit. Un jeu d' instructions limité est utilisable et permet cependant de réaliser tous les filtrages nécessaires. I1 pourra s'agir des instructions suivantes: STORE #Flt Stocke une section sur le filtre Flt DNE #Data,#Mask Drop if Not Equal: Jette une section si la comparaison est fausse SEQ #Data, #Mask Skip if Equal: Saute l' instruction suivante si la comparaison est vraie et stocke la donnée SNE #Data, #Mask Skip if Not Equal: Saute l' instruction suivante si la comparaison est fausse GOTO Saute à une adresse Un registre contient l' octet courant venant du flux qui va servir à la comparaison opérée par le filtrage. Pour les instructions précitées DNE, SEQ et SNE, il est possible de spécifier si l' instruction doit utiliser la donnée déjà présente dans ce registre ou attendre l'arrivoe de la donnée suivante. En cas de traitement immédiat (divergence de l'arbre de filtrage) on note pour la suite par l' extension.imm les instructions à réaliser immédiatement DNE.imm, SEQ.imm et SNE.imm. Après une instruction de stockage (STORE), le programme s'arrête et la section est envoyée vers le port de sortie. Une fois la section filtrée, l'exécution reprend au début du programme. Si la comparaison d'une instruction DNE est fausse, le programme s'arrête et reprend au début, à la fin de la section courante. De façon avantageuse, les filtres à créer pour chacun des Channel ID sont organisés de facon particulière. En effet, ces filtres organisés par Channel ID peuvent se présenter de façon arborescente suivant leurs données communes en ce qui concerne leur longueur, les données et le masque de correspondance (de match) qu'ils comprennent. On donne ci-après un exemple pour cinq filtres présents pour le traitement d'un paquet avec un CHANNEL ID déterminé: Filtre 1 Données 0x81 Masque 0xFF Filtre 2 Données 0x84 0x33 0x54 0x63 Masque 0xFF 0xFF 0xFF 0xFF Filtre 3 Données 0x88 0x12 0xA8 0xB3 0x00 0x98 Masque 0xFF 0xFF 0xFF 0xFF 0x00 0xFF Filtre 4 Données 0x88 0x22 0x65 0x30 Masque 0xFF 0xFF 0xFF 0xF0 Filtre 5 Données 0x88 0x12 0xFF 0xFF 0x02 Masque 0xFF 0xFF 0xFF OXFF 0x03 Lors de l' exécution du programme, on obtient l' arborescence telle que présentée en figure 2. En particulier, on constate que des étapes communes aux différents filtres sont exécutés avant une divergence de l'arbre lorsque des éléments non communs sont à utiliser pour les instructions. Le codage informatique correspondant pour le programme peut s'articuler comme suit, à titre d'exemple: Start: SNE #81, #FF STORE #1 SNE.imm #84, #FF GOTO Filter2_1 DNE.imm #88, #FF SNE #22, #FF GOTO Filter4_1 DNE.imm #12, #FF SNE #A8, #FF GOTO Filter3_1 DNE.imm #FF, #FF DNE #FF, #FF DNE #02, #03 STORE #5 Filter2_1: DNE #33, #FF DNE #54, #FF DNE #63, #FF STORE #2 Filter4_1: DNE #65, #FF DNE #30, #F0 STORE #4 Filter3_1: DNE #B3, #FF DNE #00, #00 DNE #98, #FF STORE #3 On obtient donc une étape de filtrage optimisée utilisant au niveau hardware un seul processeur de filtrage mais capable de mettre en _uvre plusieurs paramètres de filtrage selon le Channel ID associé aux paquets. Par ailleurs, l'enchaînement des instructions de filtrage nécessaires pour chaque paquet est lui-même optimisé par l'arborescence ainsi décrite. S'ensuit l'étape de marquage au niveau du marqueur 5 permettant d' identifier sans ambiguïté 1'origine des données Is (le Channel ID associé à leur paquet) ainsi que le type de filtrage opéré. On sait alors exactement quel filtre s'est déclenché pour la donnée associée. REFERENCES 1. Flux entrant 2. ConL pa 1 eur 2a. Pile FIFO 2b. Moyens de dAtecLion 2c. Table de correspondance 3. Processeur de filLage 4. Registre FIFO JO 5. Margueur 6. Application 7. Conndes filLrdes S. Signal de changemenL de conLexLe REVENDICATIONS 1. Procédé de traitement des donnces d'un flux multiplexé dans lequel les donnces sont organisées par paquets pourvus d'un identifiant permettant de décrire à quelle source appartiennent les données qu'ils contiennent, ledit procédé comprenant une étape de filtrage des données, caractérisé par le fait a) quon établit une table de correspondance associant chaque identifiant à un contexte de traitement, b) que pour chaque paquet entrant: - on reconnaît son identifiant, - on filtre ses donnces en utilisant les paramètres de filtrage de son contexte de traitement, - on stocke les données filtrces à la détection de l'entrée d'un nouveau paquet. 2. Procédé selon la revendication 1, caractérisé par le fait quà chaque changement de contexte de traitement à utiliser, on stocke les données filtrces avec le contexte précédent dans un registre FIFO (4) du type premier entré premier sorti et on leur associe un pointeur de registre FIFO. 3. Procédé selon la revendication 1 ou 2, caractérisé par le fait 2s qu'on ajoute aux données filtrées avec un contexte déterminé des données de marquage de l'identifiant du paquet auquel elles appartiennent et du filtre utilisé pour leur filtrage. 4. Procédé selon l'une quelcouque des revendications 1 à 3, caractérisé par le fait que les paramètres de filtrage de chaque contexte de traitement comportent un ou plusieurs filtres disposant chacun des caractéristiques de filtrage de données, de masque et de longueur. 5. Procédé selon la revendication 4, caractérisé par le fait qu'on exécute le filtrage en organisant les filtres en arborescence, les éléments communs des filtres étant regroupés s sur une même branche. 6. Dispositif de traitement des données d'un flux multiplexé dans lequel les données sont organisses par paquets pourvus d'un identifiant permettant de décrire à quelle source appartiennent les données qu'ils contiennent, ladit dispositif comportant des moyens de filtrage des données, apte à être mis en _uvre par le procédé selon l'une quelconque des revendications l à 5, caractérisé par le fait qu'il comporte: - des moyens de stockage d'une table de correspondance (2c) associant chaque identifiant à un contexte de traitement, - des moyens de détection (2b) de l'identifiant d'un paquet entrant dans le dispositif, - un processeur de filtrage (3) associé à une mémoire contenant les paramètres de filtrage inclus dans chaque contexte de traitement, - des moyens de stockage des données filtrces, pour le filtrage des données d'un paquet selon des paramètres de filtrage affectés au processeur de filtrage (3) 2s après reconnaissance de l'identifiant du paquet et association à l'identifiant du contexte de traitement contenant lesdits paramètres de filtrage. 7. Dispositif selon la revendication 6, caractérisé par le fait que les moyens de stockage des données filtrées sont constituées d'un registre FIFO (4) du type premier entré premier sorti dont les pointeurs sont associés aux données filtrées selon leur contexte. 8. Dispositif selon la revendication 6 ou 7, caractérisé par le fait qu'il comporte un marqueur (5) pour ajouter aux données filtrées des données de marquage de l'identifiant du paquet auquel elles appartiennent et du filtre utilisé pour leur filtrage. 9. Dispositif selon l'une quelconque des revendications 6 à 8, caractérisé par le fait que le flux multiplexé est un flux de diffusion numérique. 10. Dispositif selon la revendication 9, caractérisé par le fait que le flux multiplexé est un flux de télévision