Brevet FR2743248A1 — publié le 19970704

DISPOSITIF DE DEiLTIPZEXAGE D ' INETIS CODEES SEIN INE NB MPEG La présente invention concerne un dispositif de démul- tiplexage d'informations d'images animées, codées selon une norme MPEG avec des données vidéo et audio. Les normes MPEG définissent des conditions de codage et de décodage d'images animées sous la forme d'un flux de données numériques vidéo et d'un flux de données numériques audio. Ces normes définissent, aussi bien les conditions de codage des images animées, qu'elles soient ou non associées à un signal sonore, pour leur mise en mémoire et/ou leur transmission, par exemple par voie hertzienne, que les conditions de décodage de ces images pour leur restitution sur un écran. Les images numérisées sont codées afin de diminuer la quantité d'informations qui les représente. Ce codage fait généralement appel à des techniques de compression et d'estimation de mouvement. Les normes MPEG sont, par exemple, utilisées pour stocker des séquences d'images sur des disques à lecture par laser (disques compacts) qu'ils soient ou non interactifs, ou sur des bandes magnétiques.Elles sont également utilisées pour la transmission d'images, par exemple, sur des lignes téléphoniques ou par voie hertzienne. Les conditions de codage et de décodage, définies par les normes MPEG, sont accessibles auprès des organismes de norma lisation et on se bornera à indiquer les critères nécessaires à la compréhension de l'invention. Le décodage d'informations codées selon une des normes MPEG fait appel à une séparation, par nature, des informations contenues dans le flux de données. En particulier, les données vidéo sont séparées des données audio éventuelles et ces données vidéo et audio sont décodées, séparément, dans des décodeurs vidéo et audio appropriés. Le flux de données comprend également des données système. Ces données système contiennent, notamment, des informations relatives aux conditions de codage du flux de données qui sont utilisées pour configurer les décodeurs vidéo et audio afin qu'ils décodent correctement les données vidéo et audio. La présente invention s'applique plus particulièrement à la séparation, par nature, des différentes informations contenues dans le flux de données. Cette séparation est appelée couche système. Les données vidéo, audio et système sont dissociées préalablement au décodage proprement dit des données vidéo et audio. La figure 1 représente un exemple de flux de données codées selon l'une des normes MPEG. Comme le montre cette figure, un flux de données codées selon une des normes MPEG comporte des données images et des données système 1 regroupées en paquets. Les données images comprennent des paquets de données vidéo (VIDEO) 2 et, le cas échéant, des paquets de données audio (AUDIO1, AUDI02) 3 et 4. Plusieurs paquets de données vidéo et/ou audio peuvent être intercalés entre deux paquets de données système 1. Dans l'exemple représenté, deux types de paquets de données audio, respectivement 3 et 4, sont présents. I1 s'agit, par exemple, de trames audio correspondant à deux langues différentes. On notera que le flux de données peut également comporter différents types de paquets de données vidéo. Lorsque le flux de données comporte plusieurs types de données vidéo et/ou audio, chaque paquet d'un type donné est destiné à un décodeur vidéo, respectivement audio. En d'autres termes, les données vidéo ou audio d'un paquet sont toutes d'un même type pour être décodées par un décodeur donné. Chaque paquet, qu'il contienne des données système, des données images (vidéo ou audio), débute par un code de démarrage PSC 5. Comme le montre la figure 2, Le code PSC est toujours un code comprenant quatre octets. Trois premiers octets 6, 7 et 8 servent à identifier qu il s'agit d'un code de démarrage de paquet tandis qu'un quatrième octet 9 permet d'identifier, notamment, la nature et le type de paquet dont il s'agit. A la figure 2, les octets ont été représentés par leur valeur hexadécimale. Ainsi, les trois premiers octets 6, 7 et 8 contiennent, respectivement, les valeurs "00", "00" et "01" tandis que le quatrième octet 9 contient une valeur "XX" identifiant, non seulement la nature du paquet (système, vidéo, audio, données utilisateur), mais également la destination des données contenues dans le paquet. Un même paquet de données images peut contenir plusieurs séquences vidéo, respectivement audio. Un paquet de données vidéo 2 peut contenir, par exemple, les données relatives à plusieurs groupes d'images, à plusieurs images ou à plusieurs sous-images, ou macroblocs. Un paquet audio 3 ou 4 peut contenir des données relatives à plusieurs trames audio. On notera donc que l'organisation, par paquets, du flux de données est indépendante des images. En d'autres termes, un paquet images peut contenir des données relatives à plusieurs images. De même, des données relatives à une même image peuvent être contenues dans plusieurs paquets successifs. La figure 3 illustre un exemple de contenu d'un paquet de données vidéo. Le paquet débute par un code PSC 5. Il contient plusieurs séquences IMAGE1 10, IMAGE2 11, de données vidéo, chaque séquence débutant par un code de démarrage SC 12. Dans 1' exemple représenté, une séquence IMAGE0 13 se termine dans le paquet représenté. Ainsi, le code SC relatif à cette séquence IMAGEZ est contenu dans le paquet vidéo de même type, qui précède, dans le flux de données, celui qui est représenté. Le flux de données contient également des repères de synchronisation temporelle permettant d'effectuer, à la fois, la synchronisation du son par rapport à l'image et la synchronisation de la fréquence de décodage par rapport à la fréquence à laquelle les images ont été codées. En effet, la durée des données représentatives d'une image est variable d'une image à l'autre. Des repères TS 14 (figure 1) de synchronisation temporelle des données peuvent être contenus dans les différents paquets images 2, 3 ou 4. Ces repères servent, notamment, à synchroniser le décodeur vidéo ou audio auquel est destiné un paquet images. Deux genres principaux de repères temporels 14 sont associés aux paquets images. Il peut s'agir de repères PTS indiquant la position temporelle, ou date de l'affichage de l'image résultant du décodage de la première image contenue dans le paquet. Pour un paquet vidéo 2, il s'agit, par exemple, de la date à laquelle il faut afficher l'image dont le code se situe après le premier code de démarrage d'image SC 12 contenu dans le paquet. Pour un paquet audio 3 ou 4, il s'agit de la date à laquelle il faudra restituer (jouer), une fois décodée, la première trame audio contenue dans le paquet. Il peut s'agir, également d'un repère DTS indiquant la position temporelle, ou date, de décodage de la première image contenue dans le paquet (le décodage étant antérieur et s'effectuant dans un ordre différent de l'affichage). Des repères SCR 15 de synchronisation temporelle des données système peuvent être contenus dans des paquets système 1. Ces repères SCR de référence d'horloge système servent, notamment, à synchroniser la fréquence de décodage des images par rapport à la fréquence à laquelle elles ont été codées. Chaque paquet système 1 ou images 2, 3 ou 4 ne contient pas nécessairement un repère temporel. Les normes MPEG fixent l'intervalle de temps maximum (par exemple 0,7 s) qui sépare, dans le flux de données, deux repères temporels TS 14 ou SCR 15 successifs d'un même type de paquet. Le rôle principal de la couche système d'un décodeur MPEG est de séparer les paquets de données en respectant la synchronisation du son par rapport à l'image et la synchronisation de la fréquence de référence ou de défilement des images sur la fréquence à laquelle elles ont été codées. Classiquement, la séparation, ou tri, des paquets de données contenus dans un flux de données codées selon une des normes MPEG est effectuée de manière logicielle à partir d'un microprocesseur que contient l'organe de restitution des images. Un tel organe est, par exemple, constitué d'un micro-ordinateur qui comporte, comme périphérique, un lecteur de disque compact. Un inconvénient du traitement classique de la couche système est qu'il nécessite le recours à un microprocesseur très rapide pour respecter un traitement en temps réel du flux de données. Un autre inconvénient, présent notamment lorsque l'organe de restitution est un micro-ordinateur susceptible d'effectuer d'autres tâches, est que le traitement de la couche système monopolise le microprocesseur. Ce dernier n'est alors plus disponible pour exécuter d'autres programmes sauf à ne pas respecter la vitesse de défilement des images. En effet, pour respecter la vitesse de défilement, les interruptions générées par la couche système doivent être prioritaires. La présente invention vise à proposer un dispositif de démultiplexage, par nature, d'informations contenues dans un flux de données images reçu par un décodeur MPEG, en ayant recours, le moins possible, au microprocesseur. L'invention vise également à permettre la séparation de plusieurs ensembles de données audio et/ou vidéo destinés à différents décodeurs audio et/ou vidéo. L'invention vise également à rendre le dispositif de démultiplexage paramétrable par un utilisateur. L'invention vise également à rendre disponible toutes les informations nécessaires à la synchronisation des images sans qu'il soit nécessaire de recourir au microprocesseur. L'invention vise en outre à vérifier l'intégrité des séquences de données images, préalablement à leur décodage et sans recours au microprocesseur. Pour atteindre ces objets, la présente invention prévoit un dispositif d'informations codées, sous la forme d'un flux de données par paquets système et images, selon une norme MPEG, comportant des moyens pour organiser de manière autonome, en fonction de la nature des données contenues dans lesdits paquets, un stockage de ces données dans différents registres accessibles en lecture, pour certains, par une mémoire vive et, pour d'autres, par un microprocesseur. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage est associé à un premier registre tampon destiné à contenir des paquets de données vidéo de même type, à un deuxième registre tampon destiné à contenir des paquets de données audio de même type et à un troisième registre tampon destiné à contenir au moins des paquets images d'un type différent, lesdits premier et deuxième registres tampons étant accessibles, en lecture, par ladite mémoire vive et ledit troisième registre tampon étant accessible, en lecture, par ledit microprocesseur. Selon un mode de réalisation de la présente invention, lesdits moyens comportent une machine d'état réalisée en logique câblée qui reçoit ledit flux de données et qui recherche des codes de démarrage desdits paquets de données pour aiguiller ces paquets vers lesdits registres tampons. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage comporte un registre de comptage de la longueur desdits paquets de données pour commuter ladite machine d'état entre un mode de fonctionnement où elle recherche l'apparition d'un code de démarrage de paquet et un mode de fonc tionnement où elle transfère les données vers un desdits registres tampons. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage comporte des moyens pour que, en mode de transfert des données, le stockage des données dans un desdits trois premiers registres tampons inclut le stockage du code de démarrage du paquet concerné. Selon un mode de réalisation de la présente invention, lesdits moyens sont constitués d'un premier registre à décalage des données délivrées par ladite machine d'état et d'un second registre à décalage de signaux de commande en écriture dans lesdits trois premiers registres tampons, ledit second registre à décalage étant associé à un multiplexeur inhibant, pendant trois premiers octets de chaque code de démarrage d'un paquet, le décalage effectué par ce registre. Selon un mode de réalisation de la présente invention, ledit troisième registre tampon est destiné à contenir tous les paquets du flux de données qui ne sont pas orientés, par la machine d'état, vers l'un des deux premiers registres tampons. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage comporte un quatrième et un cinquième registres tampons destinés à contenir des repères temporels susceptibles d'être présents dans des paquets de données images stockés dans lesdits premier et deuxième registres tampons, lesdits quatrième et cinquième registres tampons étant coite mandés, en écriture, par ladite machine d'état et étant accessible, en lecture, par ledit microprocesseur. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage comporte un registre de stockage de repères temporels contenus dans des paquets de données système du flux de données, ledit registre étant accessible par ledit microprocesseur. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage comporte un registre, programma ble par ledit microprocesseur, de configuration de la machine d'état. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage comporte un registre d'interruptions générées par ladite machine d'état, ledit registre d'interruptions étant accessible par ledit microprocesseur. Selon un mode de réalisation de la présente invention, le dispositif de démultiplexage comporte, en outre, une entrée d'erreur, propre à recevoir un signal d'erreur généré par un organe lui transmettant ledit flux de données, ledit signal d'erreur étant interprété par ladite machine d'état pour, le cas échéant, interrompre d'elle-même le transfert des données vers un desdits trois premiers registres tampons et rechercher un nouveau code de démarrage de paquet. Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles les figures 1 à 3 qui ont été décrites précédemment illustrent la forme d'un flux de données codées selon une des normes MPEG ; la figure 4 représente, sous forme de schéma-blocs, un mode de réalisation de l'architecture d'un décodeur MPEG pourvu d'un dispositif de démultiplexage d'informations contenues dans un flux de données codées selon une norme MPEG selon la présente invention ; la figure 5 représente, sous forme de schéma-blocs, un mode de réalisation d'un dispositif de démultiplexage tel que représenté à la figure 4 ; ; la figure 6 représente un mode de réalisation d'un registre à décalage de codes de démarrage de paquets d'un flux de données reçu par un dispositif de démultiplexage tel que représenté à la figure 5 ; la figure 7 représente un mode de réalisation d'un registre à décalage des données reçues que comporte le dispositif de démultiplexage représenté aux figures 4 et 5 ; la figure 8 illustre, par des chronogrammes, le fonctionnement normal d'un dispositif de démultiplexage selon l'invention, tel que représenté aux figures 5 à 7 ; et la figure 9 illustre, par des chronogrammes, le fonctionnement d'un dispositif de démultiplexage tel que représenté aux figures 5 à 7, en cas d'erreur dans le flux de données. Pour des raisons de clarté, les mêmes éléments ont été désignés par les mêmes références aux différentes figures. De même, seuls les éléments et connexions nécessaires à la compréhension de l'invention ont été représentés aux figures. La figure 4 représente, schématiquement, un mode de réalisation d'une architecture de décodeur MPEG pourvu d'un dispositif de démultiplexage (SYSTEX~PARSER) 20 selon l'invention. Le dispositif 20 reçoit, par exemple sur huit bits, un flux de données 21 codées selon une des normes MPEG. Le flux de données 21 comporte, comme il a été exposé en relation avec les figures 1 à 3, des paquets de données système, vidéo et audio. Le rôle du dispositif 20 est, selon l'invention, de séparer, ou démultiplexer, le flux de données 21 en fonction de la nature des données contenues dans les différents paquets. Le dispositif 20 est associé à quatre registres tampons 22, 23, 24 et 25 dans lesquels sont stockées, temporairement, les données contenues dans le flux 21 en fonction de leur nature. Le dispositif 20 communique, par l'intermédiaire d'un bus 26, avec un microprocesseur (P) 27, par exemple d'un microordinateur. Cette communication a pour rôle de transmettre au microprocesseur 27 les données contenues dans les paquets système 1 (figure 1) et de paramétrer le dispositif 20. Ces données système contiennent notamment des informations permettant au microprocesseur 27 de configurer des décodeurs vidéo (vTDEO~DEC) et audio (AUDIO~DEC), respectivement 28 et 29. Un premier registre (VIDEOFI FO) 22 contient les paquets de données vidéo 2 (figure 1). Un contrôleur mémoire (non représenté) vide ce registre 22 au fur et à mesure de son remplissage et range les données vidéo, par l'intermédiaire d'un bus 30, dans une première zone d'une mémoire vive 31, par exemple dynamique (DRAM), affectée aux données vidéo compressées. Le registre 22 ne contient que les données vidéo destinées au déco- deur vidéo 28. Un deuxième registre (AUDIO~FIFO) 23 contient les paquets de données audio 3. Comme pour le registre 22, le registre 23 est vidé par le contrôleur mémoire pour ranger les données audio dans une deuxième zone de la mémoire 31 affectée aux données audio compressées. Les décodeurs 28 et 29 sont des décodeurs classiques dont le fonctionnement ne sera pas détaillé. Le décodeur vidéo 28 est chargé de restituer les images, après décodage, à un codeur vidéo (non représenté) qui fournit un signal vidéo composite pour affichage sur un écran de visualisation, par exemple, un moniteur vidéo (non représenté). Le décodeur audio 29 est chargé de restituer les trames audio, après décodage, à un convertisseur numérique-analogique (non représenté) qui fournit un signal analogique audio pour restitution du signal sonore associé aux images. On notera que, dans le cas où le flux de données 21 comprend plusieurs types de paquets audio (par exemple 3 et 4, figure 1), le décodeur 29 est associé à un seul de ces types de paquets. En d'autres termes, le registre 23 ne reçoit qu'un type de données audio, par exemple les données AUDIO1 (figure 1), destinées à être décodées par le décodeur 29. Un troisième registre (HISTORY~FIFO) 24 est, selon l'invention, chargé de stocker toutes les autres données présentes dans le flux de données 21 et qui ne sont pas des données vidéo ou audio compressées destinées aux décodeurs 28 ou 29. Les données contenues dans le registre 24 sont disponibles, par l'intermédiaire du bus 26, et permettent à l'utilisateur d'exploiter ces données, par exemple, pour décoder un deuxième mes sage audio AUDIO2 (figure 1), au moyen d'un décodeur audio supplémentaire (non représenté). Un avantage de la présente invention est qu'elle permet de récupérer, dans le flux de données codées 21, un flux d'informations audio, voire vidéo, supplémentaire sans qu'il soit nécessaire de traiter, de nouveau, la couche système. Ce flux supplémentaire est, par exemple, un deuxième message audio AUDIO2 dans une langue différente de celle du message audio AUDIO1 contenu dans le registre 23. L'utilisateur peut alors décoder, au moyen d'un second décodeur audio, ce deuxième message audio, sans qu'il soit nécessaire de prévoir un dispositif supplémentaire de séparation des informations par nature. Un quatrième registre (TS~VIDEO~FIFO) 25 reçoit, selon l'invention, des repères temporels TS contenus dans les paquets vidéo 2 destinés au décodeur 28. Ce registre 25 permet, selon l'invention, de conserver les repères TS pour assurer une synchronisation du son par rapport à l'image entre deux apparitions d'un même repère temporel et pour compenser une dérive éventuelle entre un encodeur et le décodeur. En effet et comme cela a été exposé en relation avec les figures 1 à 3, le flux de données 21 peut comporter plusieurs images entre deux repères temporels TS. Plusieurs images peuvent donc être stockées en mémoire 31 et on doit pouvoir synchroniser ces images entre deux apparitions de repères temporels. La taille du registre 25 est fonction du nombre maximal d'images susceptibles d'être présentes dans la mémoire 31. En effet, plusieurs repères temporels TS sont sucez tibles d'arriver dans le flux de données 21 avant que le premier d'entre eux soit utilisé pour le décodage de l'image à laquelle il est associé. Un cinquième registre (TS~AUDIO~FIFO) 72 reçoit, selon l'invention, des repères temporels TS contenus dans les paquets audio 4 destinés au décodeur 29. Le rôle et le fonctionnement de ce registre est le même que celui exposé ci-dessus pour le registre 25. Les troisième 24, quatrième 25 et cinquième 72 registres sont accessibles, par le microprocesseur 27, au moyen du bus 26. Dans le mode de réalisation représenté à la figure 4, toutes les données (système, vidéo et audio) sont sur huit bits. Les liaisons de données entre les différents constituants associés au dispositif 20 s'effectuent donc sur huit bits. Le dispositif 20 comporte, selon l'invention, une machine d'état en logique câblée (figure 5) chargée d'aiguiller les données qui arrivent par le flux 21 vers l'un des registres 22, 23, 24, 25 ou 72 en fonction de leur nature. Le dispositif 20 délivre donc, à chacun des registres 22, 23, 24, 25 et 72, un signal de commande, respectivement 32, 33, 34, 35 et 73, d'écriture dans le registre. Par contre, et comme cela a été indiqué plus haut, la lecture des registres est effectuée, pour les registres 22 et 23, sous commande du contrôleur mémoire et, pour les registres 24, 25 et 72, sous commande du microprocesseur 27. Un avantage de la présente invention est que le démultiplexage, par nature, des informations contenues dans le flux de données 21 est effectué sans recours au microprocesseur 27. Bien entendu, le microprocesseur 27 intervient cependant, toujours, pour configurer les décodeurs vidéo 28 et audio 29 en fonction des données système contenues dans les paquets 1 et pour synchroniser les décodeurs 28 et 29 en fonction des repères temporels. Mais, même ces données système et de synchronisation sont stockées dans les registres 24, 25 et 72, ce qui autorise une grande souplesse de fonctionnement en fonction des souhaits de l'utilisateur. Un autre avantage de la présente invention est qu'en prévoyant de stocker, dans le registre 24, toutes les informations qui ne sont pas affectées aux registres 22 et 23, on simpli fie considérablement le traitement de données supplémentaires éventuelles contenues dans le flux de données 21. Le registre 24 peut, selon l'invention, être utilisé, par exemple, en tant que flux de données secondaire à l'attention d'un autre décodeur MPEG. La figure 5 représente, schématiquement, un mode de réalisation d'un dispositif de démultiplexage 20 tel que représenté à la figure 4. Le dispositif 20, selon l'invention, comporte une machine d'état (STATEMACHINE) 40 qui reçoit le flux de données 21 codées selon une des normes MPEG. Selon l'invention, la machine d'état 40, réalisée en logique câblée, est chargée de séparer les paquets de données, par nature, en exploitant ellemême les indicateurs, ou codes de démarrage PSC (figures 1 et 2), de séparation des paquets. Les différents paquets sont aiguillés, par cette machine d'état 40, vers les différents registres tampons 22, 23, 24, 25, et 72, en fonction de la nature des données qu'ils contiennent. La tâche essentielle de la machine d'état 40 est de rechercher, dans le flux de données 21, les codes de démarrage PSC des paquets. A l'apparition d'un code de démarrage de paquet PSC, la machine d'état 40 identifie la nature de ce paquet. Pour ce faire, elle est associée à un registre de configuration (CONFIG) 41, programmable par le microprocesseur 27 (figure 4). Ce registre 41 permet de configurer la machine d'état 40 pour déterminer quels sont les types de paquets qui doivent être stockés dans les registres 22 et 23. En effet, le flux de données 21 peut comporter plusieurs types de paquets vidéo et/ou audio. Or, un seul de ces types de paquets doit être aiguillé vers le décodeur vidéo 28, respectivement audio 29 (figure 4), associé au dispositif 20. Ainsi, en fonction du contenu du quatrième octet 9 (figure 2) du code PSC et du contenu du registre 41, la machine d'état 40 sait si le paquet, par exemple audio, doit être stocké dans le registre 23, comme contenant une trame audio devant être décodée par le décodeur 29, ou dans le registre 24, comme contenant une autre trame audio. Par exemple, les valeurs "E0" à "EF" du quatrième octet 9 désignent un paquet d'informations vidéo. Les valeurs "CO" à "CF" désignent, par exemple, un paquet audio AUDIO1 devant être décodé par le décodeur 29. Les valeurs "DO" à "DF" désignent, par exemple, un paquet audio AUDIO2. Une caractéristique de la présente invention est que le dispositif de démultiplexage 20 n'examine pas en permanence le flux de données 21 pour rechercher un code de démarrage de paquet PSC. En effet, une séquence identique à celle d'un code de démarrage PSC est susceptible d'être présente au sein même d'un paquet de données audio. Dans un tel cas, cette séquence ne doit pas être considérée, par la machine d'état 40, comme un code de démarrage PSC mais comme des données à stocker, en tant que telles, dans un des registres. Pour ce faire, on tire profit, selon l'invention, du fait que tout code de démarrage PSC est immédiatement suivi de deux octets indicateurs de la longueur du paquet. Ces deux octets sont stockés, selon l'invention, dans un registre de comptage (COUNT) 42. Ainsi, à la mise en route du dispositif 20, ou à la suite d'une réinitialisation de ce dernier, la machine d'état 40 est placée dans un mode de fonctionnement où elle recherche l'apparition d'un code de démarrage de paquet PSC. Dès qu'un tel code PSC apparaît dans le flux de données 21, la machine d'état 40 commande, au moyen d'un signal LQAD, l'écriture des deux octets qui suivent ce code PSC dans le registre 42. La machine d'état est alors placée dans un mode de fonctionnement où elle transfère les données dans un des registres tampons 22, 23 ou 24. En mode de transfert, la valeur contenue dans le registre 42 est décrémentée, à chaque nouvelle donnée entrante, au moyen d'un signal DECREMENT. Lorsque la valeur contenue dans le registre 42 atteint zéro, le registre 42 envoie un signal END indicateur de la fin du paquet courant. Le signal END est utilisé, au sein de la machine d'état 40, pour la placer dans le mode de recherche de code de démarrage de paquet PSC. En d'autres termes, la machine d'état 40 recherche, selon l'invention, un code PSC, uniquement lorsque le signal END est dans un état actif indiquant qu'un paquet de données vient de se terminer. Un avantage de la présente invention est que le dispositif de démultiplexage 20 s'assure, de lui-même, de ne pas considérer comme un code de démarrage PSC, une séquence de données contenue à l'intérieur d'un paquet. Un autre avantage de l'invention est qu'elle permet d'identifier aisément une erreur de fonctionnement en utilisant l'information fournie par le signal END. On peut ainsi prévoir, par exemple, que si l'apparition d'un état actif sur le signal END n'est pas suivie d'une séquence "00 00 01" (en hexadécimal) indicatrice d'un code de démarrage de paquet PSC, la machine d'état 40, génère une interruption. Pour ce faire, la machine d'état 40 est associée à un registre 43 de gestion d'interrup- tions susceptible d'être lu par le microprocesseur 27, par l'intermédiaire du bus 26. Dans la mesure où les trois premiers octets 6, 7 et 8 (figure 2) d'un code de démarrage PSC sont toujours identiques, ce n'est qu'au quatrième cycle d'horloge bit du flux de données 21 que le dispositif 20 peut être en mesure d'identifier dans quel registre 22, 23 ou 24 doit être stocké le paquet qui suit ce code PSC. Afin de redistribuer, vers les différents registres, l'intégralité des données, la sortie de données DXTA~IN de la machine d'état 40 est envoyée vers un premier registre à décalage 44. Ce registre 44 a pour rôle de décaler, de trois cycles de l'horloge bit, les données I1ATA~IN présentes en sortie de la machine d'état 40. La sortie du registre 44 est envoyée sur les entrées de données des registres 22, 23 et 24. Ainsi, toutes les données susceptibles d'être stockées dans un de ces registres sont décalées de trois cycles de l'horloge bit par rapport à leur apparition dans le flux de données 21. La machine d'état 40 génère, de manière synchrone avec l'horloge bit, trois signaux V~IN, A~IN et H~IN de sélection du registre, respectivement 22, 23 et 24 dans lequel doivent être stockés les paquets. Comme pour les données DATA~IN, ces signaux sont décalés de trois cycles, au sein d'un second registre à décalage 45 associé à un multiplexeur 46. Les signaux V~IN, A IN et HEIN sont susceptibles d'être dans un état actif, par exemple "1", uniquement après les trois premiers octets d'un code PSC. En d'autres termes, les signaux VIN, A~IN et H IN sont forcés à l'état 'w0" pendant une séquence "00 00 01" qui suit un passage à l'état "1" du signal END.Le rôle du multiplexeur 46 est d'autoriser un passage en direct (sans décalage) des signaux V IN, AIN et HEIN pendant les trois premiers octets d'un code de démarrage PSC. Cela permet de stocker la séquence "00 00 01" dans le registre 22, 23 ou 24 auquel elle doit être associée avec le quatrième octet 9 indicateur de la nature du paquet. Le multiplexeur 46 est commandé par un signal DURATION, délivré par la machine d'état 40, et qui est actif pendant trois cycles de l'horloge bit à partir du quatrième octet 9 d'un code de démarrage PSC. Trois sorties du multiplexeur 46 constituent les signaux 32, 33 et 34 de commande d'écriture dans les registres, respectivement, 22, 23 et 24. Bien entendu, deux des signaux V IN, A IN, H IN, donc des signaux 32, 33 et 34, ne peuvent pas être, simultanément, dans un état actif. Le fonctionnement des registres 44 et 45 et du multiplexeur 46 sera mieux compris en relation avec les figures 6 à 8. Le signal 35, respectivement 73, de commande en écriture dans le registre 25, respectivement 72, est délivré par la machine d'état 40, à l'apparition d'un repère temporel TS dans un paquet vidéo, respectivement audio, stocké dans le registre 22, respectivement 23. En d'autres termes, les signaux 35 et 73 sont, respectivement, dans un état actif lorsque la machine d'état détecte un repère TS dans un paquet vidéo ou audio et que le signal 32 ou 33 est à l'état actif. De préférence, le dispositif 20 comporte en outre un registre (SCR) 47 de stockage des repères de référence temporelle SCR contenus dans les paquets système. L'écriture dans ce registre 47 est commandé par la machine d'état 40 au moyen d'un signal de commande 74 et la lecture s'effectue, par le microprocesseur 27, au moyen du bus 26. Le fonctionnement de la machine d'état 40 peut être vu comme un "jeton" allant d'état en état en fonction de la syntaxe du flot de données 21. Lorsque le "jeton" se trouve dans un état "TS Vidéo", respectivement "TS Audio", cela signifie que l'octet du flux 21 entrant dans la machine 40 est un repère temporel. Le signal 35, respectivement 73, est activé et ordonne au registre 25, respectivement 72, d'enregistrer la donnée. De la même manière, lorsque le "jeton" se trouve dans un état "SCR" suite à une séquence de données particulière, le signal 74 est activé et ordonne au registre 47 d'enregistrer la donnée présente dans le flux 21. La figure 6 représente un mode de réalisation du premier registre à décalage 44. Ce registre est constitué de trois bascules D 50, 51 et 52, associées en série et dont les entrées d'horloges reçoivent l'horloge bit HB. Le signal de données DATA~IN, en sortie de la machine d'état 40 (figure 5), est envoyé sur l'entrée D d'une première bascule 50. La sortie Q de la bascule 50 est reliée à l'entrée D d'une deuxième bascule 51. La sortie Q de la bascule 51 est reliée à l'entrée D d'une troisième bascule 52. La sortie Q de la bascule 52 constitue le signal DATA OUT envoyé sur les entrées de données des registres 22, 23 et 24 (figure 5). La figure 7 représente un mode de réalisation du second registre à décalage 45 associé au multiplexeur 46. Le registre 45 est en fait constitué de trois séries de bascules D associées, chacune, à un des signaux VIN, A~IN et H~IN. De même, le multiplexeur 46 est en fait constitué de trois multiplexeurs 60, 61 et 62 associés, chacun, à un des signaux V IN, A IN et H IN et à une série de bascules D. Toutes les bas cules D reçoivent, sur leur entrée d'horloge, le signal d'horloge bit HB. Une première série de bascules a pour rôle de décaler le signal VIN au moyen de trois bascules D 63, 64 et 65, montées en série de la même manière que pour le registre 44 (figure 6). L'entrée D d'une première bascule 63 reçoit le signal VIN. La sortie Q de la bascule 63 est reliée à l'entrée D d'une deuxième bascule 64 dont la sortie Q est reliée à l'entrée D d'une troisième bascule 65. La sortie Q de la bascule 65 est envoyée sur une première entrée d'un premier multiplexeur 60 dont une seconde entrée reçoit le signal VIN. La sortie du multiplexeur 60 constitue le signal 32 de commande d'écriture dans le registre 22 (figures 4 et 5). La sélection entre les entrées du multiplexeur 60 est commandée par le signal DURATION, la première entrée étant sélectionnée lorsque le signal DURATION est à l'état bas. Un schéma similaire est reproduit pour les deux autres séries de bascules D. Une deuxième série a pour rôle de décaler le signal A~IN au moyen de trois bascules 66, 67 et 68 et est associée à un deuxième multiplexeur 61 dont la sortie constitue le signal 33 de commande d'écriture dans le registre 23. Une troisième série a pour rôle de décaler le signal HEIN au moyen de trois bascules 69, 70 et 71 et est associée à un troisième multiplexeur 62 dont la sortie constitue le signal 34 de commande d'écriture dans le registre 24. La figure 8 illustre, sous forme de chronogrammes, le fonctionnement du dispositif de démultiplexage selon l'invention tel que représenté aux figures 5 à 7. Cette figure représente la forme prise par les signaux I1ATA IN, LORD, END, V IN, A IN, H IN, DURATION, DATA OUT, 32, 33 et 34 durant un exemple de flux de données 21. Le signal DECREMENT délivré au registre de comptage 42 (figure 5) n'a pas été représenté dans la mesure où il correspond sensiblement au signal d'horloge bit HB qui est lui représenté. Dans l'exemple représenté, on a considéré que les décodeurs 28 et 29 (figure 4) sont destinés à décoder des paquets VIDEO et AUDIO1, respectivement identifiés par les valeurs "E0" et "C0".Le paquet AUDIO2, identifié par la valeur "DO" et représenté à la figure 8, doit donc être stocké dans le registre 24. Pour des raisons de clarté, l'exemple représenté de flux de données 21 ne contient pas de repères temporels TS ou SCR. On notera simplement qu'à l'apparition d'un repère TS dans un paquet vidéo ou audio, ce repère est stocké dans les registres 22, respectivement 23 ou 24, ainsi que dans le registre 25 ou 72. Toujours pour des raisons de clarté, les chronogrammes de la figure 8 ne sont pas à l'échelle. En particulier, la durée des séquences VIDEO, AUDIO1 et AUDIO2 est en pratique, nettement plus importante (par exemple, environ 200 cycles d'horloge HB). Le signal I1ATA~IN correspond au flux de données 21 avec un léger retard dû à la traversée de la logique câblée constitutive de la machine d'état 40. On notera que ce retard n'est pas gênant et est, au contraire utilisé, selon l'invention, pour qu'à chaque front montant de l'horloge HB qui commande l'écriture dans les différents registres, la donnée soit stable en entrée des registres. On veillera cependant à ce que le retard apporté par la machine d'état 40 soit inférieur à une période du signal HB. Comme le montre la figure 8, le signal LOAD passe à l'état haut au front montant du signal HB qui suit la reconnaissance d'un code de démarrage de paquet PSC. Il reste à l'état haut pendant deux cycles du signal HB pour permettre le chargement des deux octets L1 et L2 qui contiennent la longueur du paquet dans le registre de comptage 42. Le signal END passe à l'état haut lorsque le registre 42 atteint la valeur zéro. Le signal END reste à l'état haut tant que le registre 42 n'est pas chargé par une nouvelle valeur, soit tant que le signal LQAD ne repasse pas à l'état haut. Les signaux V IN, A IN et HEIN sont forcés à l'état bas pendant les trois premiers octets "00", "00" et "01" du flux de données 21 qui suivent un passage à l'état haut du signal END. Les signaux V IN, A IN et HEIN sont positionnés à l'état haut en fonction de la valeur contenue dans le quatrième octet 9 du code de démarrage PSC. Une fois à l'état haut, le signal V IN, A IN ou HEIN repasse à l'état bas à la fin du paquet. Le passage à l'état "0" des signaux V IN, A IN et H IN est, par exemple, déclenché par le passage à l'état haut du signal END. L'apparition d'un code de démarrage de paquet PSC identifié dans le flux de données 21, provoque le passage à l'état haut du signal DURATION. En d'autres termes, le signal DURATION est positionné à l'état haut à l'apparition du quatrième octet 9 d'un code de démarrage PSC. Il reste dans cet état pendant trois cycles du signal HB. Les données DATA OUT, en sortie du registre 44, sont décalées de trois cycles d'horloge HB par rapport au données DATA IN. Ainsi, le signal DURATION est à l'état haut pendant les trois premiers octets 6, 7 et 8 d'un code de démarrage PSC du signal DATA OUT. Par la sélection opérée au niveau des multiplexeurs 60, 61 et 62 (figure 7), le décalage opéré par les séries de bascules est, en quelque sorte, inhibé pendant que le signal DURATION est à l'état haut. Ainsi, les signaux 32, 33 et 34 reproduisent, sans décalage, les signaux, respectivement V IN, A IN et H IN, pendant que le signal DURATION est à l'état haut.Une fois que le signal DURATION est revenu à l'état bas, les signaux 32, 33 et 34 reproduisent, avec un décalage de trois cycles du signal HB, les signaux, respectivement V IN, A IN et HIN. Celui des signaux 32, 33 ou 34 qui doit être à l'état haut pour commander le registre, respectivement 22, 23 ou 24 auquel il est associé, est donc à 1' état haut pendant la durée du signal V IN, A IN ou H IN qui lui est associé majorée de trois cycles du signal HB. Ainsi, chaque paquet est stocké avec son code de démarrage PSC. A la fin (non représentée) du flux de données 21, les normes MPEG prévoient un code spécifique ayant la même séquence qu'un code de démarrage de paquet. Il s'agit du code "00", "00", "01", "B9". A l'apparition d'un tel code alors que la machine d'état 40 est en recherche de code de démarrage, elle peut, selon l'invention, générer une interruption à l'attention du microprocesseur, par l'intermédiaire du registre 43 (figure 5). Lorsqu'un paquet système (non représenté) apparaît dans le flux de données 21, celui-ci peut, le cas échéant, être également stocké dans le registre 24. Ainsi, le dispositif de démulti- plexage 20 selon l'invention permet de réutiliser le contenu du registre HISTORY 24 en tant que flux de données d'un autre dispositif de démultiplexage similaire en vue de décoder d'autres types de paquets. En effet, le contenu du registre 24 contient alors, en respectant la séquence et le rythme du flux de données 21, toutes les informations nécessaires au décodage de ces paquets.Dans le cas où un seul type de paquet supplémentaire est présent dans le flux de données 21 (par exemple les paquets AUDIO2 représentant des trames audio dans une autre langue que celle des trames contenues dans les paquets AUDIO1), il n'est cependant pas nécessaire d'avoir recours à un dispositif de multiplexage supplémentaire. En effet, en stockant dans ce cas dans le registre 24, uniquement les paquets AUDIO2, le contenu de ce registre peut être transmis à un décodeur audio supplémentaire sans qu'il soit nécessaire d'avoir recours à un autre dispositif de démultiplexage. Le fonctionnement en stockage des paquets système dans le registre 24 est, selon l'invention, configuré au moyen du registre 41 de configuration de la machine d'état 40. Un avantage de la présente invention est que le dispositif de multiplexage 20, tout en minimisant les recours au microprocesseur pour le traitement de la couche système, est paramétrable en fonction des applications. Un autre avantage de la présente invention est que le dispositif de démultiplexage 20 met à disposition de l'utilisateur tous les éléments essentiels de la couche système du flux de données 21. Le dispositif de démultiplexage 20 peut ainsi, selon l'invention, être utilisé dans un grand nombre d'applications en configurant sa machine d'état 40 de manière appropriée et en utilisant les différentes données, en particulier les repères temporels SCR et TS, que le dispositif 20 met à disposition. Un autre avantage de la présente invention est que le dispositif de démultiplexage 20 est capable d'effectuer une détection d'erreurs indépendamment du microprocesseur. Outre la détection de faux code de démarrage à laquelle on a déjà fait référence, le dispositif 20 peut, par exemple, optimiser, une détection d'erreurs effectuée, en amont, par l'organe qui lui délivre le flux de données 21. Pour ce faire, le dispositif de démultiplexage 20 reçoit, selon l'invention, un signal d'erreur 75 généré par l'organe qui lui délivre le flux de données 21. La machine d'état 40 est alors prévue pour tenir compte de l'état de ce signal. La figure 9 illustre le fonctionnement du dispositif selon l'invention en cas d'erreur signalée par le signal 75. Cette figure représente, sous forme de chronogrammes, les signaux 75, DATA~IN et VIN durant un exemple de flux de données 21 comportant des erreurs. On suppose, par exemple, que le flux de données 21 est délivré par un lecteur de disques laser. Dans un tel cas, le flux de données que reçoit le dispositif 20 provient d'un décodeur de CDRdM qui détecte et corrige, lui-même, certaines erreurs. Lorsque le décodeur de CDRCM ne peut pas effectuer la correction mais qu'il est en mesure de savoir que la donnée qu'il va transmettre est erronée, il active le signal d'erreur 75 durant le cycle de l'horloge bit HB correspondant à la donnée fausse. On peut alors prévoir que la machine d'état 40 utilise ce signal d'erreur pour, soit, repasser immédiatement en recherche de code de démarrage de paquet, soit, poursuivre le traitement du paquet en informant le microprocesseur au moyen du registre d'interruptions 43. Si le signal d'erreur se produit sur une donnée dite critique (première donnée L1 à la figure 9), par exemple un octet d'un code de démarrage, d'une longueur de paquet ou d'un repère temporel, la machine d'état 40 passe immédiatement en recherche de code démarrage, c'est-à-dire que le signal VIN repasse à l'état bas et la donnée (par exemple vidéo) qui suit n'est pas prise en compte. Si la donnée erronée est une donnée vidéo proprement dite (donnée Vidéos à la figure 9), on peut prévoir que la machine d'état 40 poursuive le stockage du paquet en cours pour éviter de perdre toutes les informations de ce paquet, tout en avertissant l'utilisateur en générant une interruption et en effectuant l'opération suivante : L'octet faux ainsi que les trois suivant du flux 21 sont remplacés, dans le signal DATA~IN, par la séquence "00 00 01 B4" qui constitue un code réservé pour indiquer au décodeur vidéo 28, par l'intermédiaire du registre 22, la présence d'une erreur dans le flux de données. Si la donnée erronée est une donnée audio proprement dite (cas non représenté à la figure 9), aucun traitement n'est effectué, les normes MPEG ne prévoyant pas de code spécifique pour une erreur dans un flux de données audio. La réalisation pratique de la machine d'état 40 est à la portée de l'homme de l'art en fonction des indications fonctionnelles données ci-dessus. Un avantage de la présente invention est que le dispositif est, dès la mise sous tension, prédisposé pour accepter n'importe quel flux de données MPEG non-démultiplexé et pour répartir les paquets vidéo et audio dans les décodeurs respectifs 28 et 29 lorsque les paquets sont respectivement repérés par les codes E0 et C0, ce qui constitue le cas le plus fréquent. L'utilisateur ne devra effectuer une configuration particulière que dans des cas particuliers de flux de données. De plus, cette configuration est particulièrement simple et peut s'effectuer au moyen du registre 41. La machine d'état selon l'invention supprime le recours classique à une programmation fastidieuse d'un microprocesseur et économise du temps de calcul du microprocesseur. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, les différents composants décrits pourront être remplacés par d'autres éléments remplissant la même fonction. De plus, le dispositif de démultiplexage selon l'invention s'applique que le flux de données soit codé selon la norme MPEG1 ou MPEG2. En effet, le registre 41 (figure 5) permet de configurer la machine d'état 40, en fonction de la norme MPEG1 ou MPEG2 selon laquelle sont codées les données. En outre, la taille des différents registres est fonction des caractéristiques, en particulier de la vitesse de traitement, du décodeur MPEG auquel est associé le dispositif de démultiplexage selon l'invention. De même, l'invention s'applique quel que soit le nombre de bits sur lequel sont codées les données en adaptant les registres et la machine d'état en conséquence. REVENDICAIIONS 1. Dispositif (20) de démultiplexage d'informations codées, sous la forme d'un flux de données (21) par paquets système (1) et images (2, 3, 4), selon une norme MPEG, caractérisé en ce qu'il comporte des moyens pour organiser de manière autonome, en fonction de la nature des données contenues dans lesdits paquets (1, 2, 3, 4), un stockage de ces données dans différents registres (22, 23, 24, 25, 72, 47) accessibles en lecture, pour certains, par une mémoire vive (31) et, pour d'autres, par un microprocesseur (27). 2. Dispositif de démultiplexage selon la revendication 1, caractérisé en ce qu'il est associé à un premier registre tampon (22) destiné à contenir des paquets de données vidéo (2) de même type, à un deuxième registre tampon (23) destiné à contenir des paquets (3) de données audio de même type et à un troisième registre tampon (24) destiné à contenir au moins des paquets images (4) d'un type différent, lesdits premier (22) et deuxième (23) registres tampons étant accessibles, en lecture, par ladite mémoire vive (31) et ledit troisième registre tampon (24) étant accessible, en lecture, par ledit microprocesseur (27). 3. Dispositif de démultiplexage selon la revendication 2, caractérisé en ce que lesdits moyens comportent une machine d'état (40) réalisée en logique câblée qui reçoit ledit flux de données (21) et qui recherche des codes de démarrage (PSC) desdits paquets de données pour aiguiller ces paquets (1, 2, 3, 4) vers lesdits registres tampons (22, 23, 24). 4. Dispositif de démultiplexage selon la revendication 3, caractérisé en ce qu'il comporte un registre (42) de comptage de la longueur desdits paquets de données (1, 2, 3, 4 > pour commuter ladite machine d'état (40) entre un mode de fonctionnement où elle recherche l'apparition d'un code de démarrage (PSC) de paquet (1, 2, 3, 4) et un mode de fonctionnement où elle transfère les données vers un desdits registres tampons (22, 23, 24). 5. Dispositif de démultiplexage selon la revendication 4, caractérisé en ce qu'il comporte des moyens (44, 45, 46) pour que, en mode de transfert des données, le stockage des données dans un desdits trois premiers registres tampons (22, 23, 24) inclut le stockage du code de démarrage (PSC) du paquet (1, 2, 3, 4) concerné. 6. Dispositif de démultiplexage selon la revendication 5, caractérisé en ce que lesdits moyens sont constitués d'un premier registre à décalage (44) des données (DATA~IN) délivrées par ladite machine d'état (40) et d'un second registre à décalage (45) de signaux (32, 33, 34) de commande en écriture dans lesdits trois premiers registres tampons (22, 23, 24), ledit second registre à décalage (45) étant associé à un multiplexeur (46) inhibant, pendant trois premiers octets (6, 7, 8) de chaque code de démarrage (PSC) d'un paquet (1, 2, 3, 4), le décalage effectué par ce registre (45). 7. Dispositif de démultiplexage selon l'une quelconque des revendications 3 à 6, caractérisé en ce que ledit troisième registre tampon (24) est destiné à contenir tous les paquets (1, 4) du flux de données (21) qui ne sont pas orientés, par la machine d'état (40), vers l'un des deux premiers registres tampons (22, 23). 8. Dispositif de démultiplexage selon l'une quelconque des revendications 3 à 7, caractérisé en ce qu'il comporte un quatrième (25) et un cinquième (72) registres tampons destinés à contenir des repères temporels (TS) susceptibles d'être présents dans des paquets de données images (2, 3) stockés dans lesdits premier (22) et deuxième (23) registres tampons, lesdits quatrième (25) et cinquième (72) registres tampons étant commandés, en écriture, par ladite machine d'état (40) et étant accessible, en lecture, par ledit microprocesseur (27). 9. Dispositif de démultiplexage selon l'une quelconque des revendications 3 à 8, caractérisé en ce qu'il comporte un registre (47) de stockage de repères temporels (SCR) contenus dans des paquets de données système (1) du flux de données (21), ledit registre (47) étant accessible par ledit microprocesseur (27). 10. Dispositif de démultiplexage selon l'une quelconque des revendications 3 à 9, caractérisé en ce qu'il comporte un registre (41), programmable par ledit microprocesseur (27), de configuration de la machine d'état (40). 11. Dispositif de démultiplexage selon l'une quelconque des revendications 3 à 10, caractérisé en ce qutil comporte un registre (43) d'interruptions générées par ladite machine d'état (40), ledit registre d'interruptions (43) étant accessible par ledit microprocesseur (27). 12. Dispositif de démultiplexage selon la revendication 11, caractérisé en ce qu'il comporte, en outre, une entrée d'erreur, propre à recevoir un signal d'erreur (75) généré par un organe lui transmettant ledit flux de données (21), ledit signal d'erreur (75) étant interprété par ladite machine d'état (40) pour, le cas échéant, interrompre d'elle-même le transfert des données vers un desdits trois premiers registres tampons (22, 23, 24) et rechercher un nouveau code de démarrage (PSC) de paquet (1, 2, 3, 4).