Brevet FR2929786A1 — publié le 20091009

La présente invention concerne un procédé et un dispositif de traitement d'un flux de données. Plus particulièrement, elle concerne le traitement d'un flux de données codées avant décodage. Lors de la transmission de données dans un réseau, des erreurs peuvent survenir. A titre d'exemple nullement limitatif, les données transmises sur un réseau de communication à commutation de paquets sont organisées en paquets de données binaires et les erreurs auxquelles ces communications sont généralement assujetties sont des erreurs sur les données constituant un paquet réseau, ainsi que des pertes de paquets réseau complets. Ces erreurs sur les données constituant un paquet sont des données manquantes ou erronées dans le paquet réseau, par exemple, une inversion de la valeur d'une ou plusieurs donnée(s) binaire(s) ou la perte d'une ou plusieurs donnée(s). Ces erreurs sont typiquement dues à la nature du canal de transmission. La perte de paquets réseau est typiquement due à des congestions du réseau, ainsi qu'au rejet de paquets réseau corrompus, c'est-à-dire comportant une ou plusieurs erreur(s) et/ou omission(s). Les erreurs de bits peuvent être indiquées par : - une couche réseau inférieure, ou - des codes correcteurs ayant été incapables de corriger une erreur mais ayant pu au moins cerner sa position. Ainsi, lorsqu'un flux de données codées contenant la charge utile d'au moins un paquet réseau arrive à un décodeur afin d'être décodé, et que ce flux de données comporte une erreur, le décodeur peut subir une désynchronisation lors de la lecture de cette erreur. 2 Certains décodeurs, lorsqu'ils détectent qu'une erreur est survenue, passent en mode de resynchronisation, c'est-à-dire qu'ils recherchent un marqueur de synchronisation indiquant le début d'une séquence de données ou le début d'un paquet de données codées, par exemple des données vidéo. Néanmoins, cette erreur étant détectée une certaine durée après être survenue, le décodeur continue de lire les données du flux de données. Ces données ne sont donc pas décodées correctement, étant donné que le décodeur est désynchronisé après la lecture de l'erreur. En outre, entre le moment où le décodeur lit l'erreur (moment où il se désynchronise) et le moment où le décodeur sait qu'une erreur s'est produite (moment où il se met en mode de resynchronisation), le décodeur, désynchronisé, peut interpréter le début d'un paquet de données codées de manière erronée. Ainsi, les données suivantes de ce paquet de données codées sont interprétées de manière erronée. Dans les deux cas, des données qui étaient valides (c'est-à-dire qui ne contenaient pas de données erronées) sont mal décodées. Ainsi, en plus de la présence d'erreurs dans le flux de données pour les raisons exposées ci-dessus, ces erreurs peuvent se propager dans le flux de données, provoquant ainsi des erreurs additionnelles. La norme ISO/IEC 14496-2, "Information technology - coding of audio-visual objects - part 2: Visuaf' décrit l'attribution d'une valeur prédéterminée à une donnée appartenant au flux de données afin d'indiquer, au sein du flux de données, la présence d'une erreur. Cette donnée indiquant la présence d'une erreur consiste en un bit 25 situé au début du flux de données correspondant à une image. Dans la norme MPEG-4, une image est nommée VOP (de l'anglais "Video Object Plane"). Plus particulièrement, le bit est situé dans un élément avant une image ou VOP de type I-VOP (de l'anglais "Intra coded VOP'). Ce type de VOP contient toutes les informations nécessaires pour être décodé par 30 le décodeur. 3 Les images ou VOP peuvent également être de type P-VOP (de l'anglais "Predictive coded VOP'). Ce type de VOP nécessite une image de référence pour son décodage. Les images ou VOP peuvent aussi être de type B-VOP (de l'anglais "Bidirectionally-predictive coded VOP'), nécessitant deux images de référence, dont au moins une de type P-VOP. Dans le cadre de l'utilisation de ce bit, une image de type B-VOP utilise comme références une image de type I-VOP (la précédente dans le flux de données) et une image de type P-VOP (la suivante, dans le flux de données). Lorsque le bit indiquant la présence d'une erreur a une valeur "1", le décodeur est averti du fait que le premier B-VOP ou la première séquence de B-VOPs consécutifs situés après le I-VOP qui se trouve au début du flux de données ne seront pas correctement décodés, dès lors que le P-VOP qui devrait suivre le ou les B-VOPs n'est pas présent dans le flux de données. Le décodeur prend ainsi la décision de ne pas afficher ces B-VOPs ou images. Ainsi, à l'aide d'un bit situé au début du flux de données, le décodeur est prévenu de l'existence d'une erreur. Néanmoins, la possibilité d'avertir le décodeur de la présence d'une erreur par l'intermédiaire de ce bit est limitée au type d'erreur décrit ci-dessus. Le bit ne peut pas être utilisé pour signaler d'autres types d'erreurs. Par ailleurs, il est situé à une position fixe dans le flux de données, ce qui ne permet pas de localiser les erreurs. La présente invention a pour but de remédier aux inconvénients précités, en proposant un procédé de traitement d'un flux de données et un dispositif associé à ce procédé, permettant notamment de connaître la position d'une erreur présente dans un flux de données, ainsi que de ne pas propager l'erreur dans le flux de données. Dans ce but, la présente invention propose un procédé de traitement 30 d'un flux de données codées avant décodage, comportant : - une étape de détection de données manquantes ou erronées dans le flux de données, et 4 - une étape d'insertion, dans une suite de données prête au décodage formée à partir du flux de données, d'au moins une information relative à la détection de données manquantes ou erronées. Selon l'invention, l'étape d'insertion consiste à insérer l'information à 5 la place des données manquantes ou immédiatement après les données erronées détectées. Ainsi, la présence d'une erreur dans le flux de données est signalée immédiatement par la présence de l'information, ce qui provoque la désynchronisation d'un décodeur lisant la suite de données prête au décodage. 10 Par conséquent, le décodeur ne lit pas les données qui suivent les données manquantes ou erronées et se met en mode de lecture des données de synchronisation, c'est-à-dire que le décodeur cherche à se resynchroniser. En outre, l'information signale l'endroit où des données manquent dans la suite de données prête au décodage. 15 Avantageusement, les données sont conformes à une norme prédéterminée et l'information est une séquence de données représentant un motif non conforme à la norme. Grâce à cette séquence de données, le décodeur, ne reconnaissant pas les données, se désynchronise et passe en mode de resynchronisation. 20 Un désencapsuleur est un dispositif qui forme une suite de données prête au décodage à partir d'un flux de données codées formé d'un ensemble de paquets réseau. Lorsqu'un désencapsuleur forme une suite de données prête au décodage, la présence des données manquantes ou erronées dans la suite de 25 données est signalée immédiatement au décodeur au moyen de la concaténation de l'information précitée à la suite de données qui est prête à être fournie au décodeur. Selon une caractéristique préférée, le flux de données est organisé en paquets réseau et le procédé comporte en outre : 30 - une étape de sélection d'un paquet réseau qui suit un paquet réseau entier manquant ou un paquet réseau contenant des données manquantes ou erronées ; et - une étape de lecture d'au moins une partie du paquet réseau suivant. Ainsi, lorsque le désencapsuleur est au courant du fait qu'un paquet réseau manque ou qu'un paquet réseau contient des données manquantes ou 5 erronées, il analyse les données qui suivent l'erreur. Selon une autre caractéristique préférée, le procédé comporte une étape de concaténation, à la suite de données prête au décodage, des données utiles contenues dans le paquet réseau suivant, lorsqu'à l'étape de lecture, la partie précitée du paquet réseau suivant comporte des données représentant le début d'un paquet de données codées. Ainsi, lorsque la charge utile (données utiles contenues dans un paquet) d'un paquet réseau commence par des données représentant le début d'un paquet de données codées, le désencapsuleur reconnaît un paquet réseau contenant des données valides. Par conséquent, lorsque le désencapsuleur identifie un paquet réseau contenant des données valides, il insère dans la suite de données prête au décodage les données utiles contenues dans ce paquet réseau. En variante, le procédé comporte une étape de rejet des données utiles contenues dans le paquet réseau suivant, lorsqu'à l'étape de lecture, la partie précitée du paquet réseau suivant ne comporte pas de données représentant le début d'un paquet de données codées. Ainsi, le désencapsuleur, n'identifiant pas de données représentant le début d'un paquet de données codées, rejette les données non valides. Ces données sont indécodables étant donné que le paquet réseau ne comporte pas de données représentant le début d'un paquet de données codées et que, par conséquent, il n'est pas complet. Le rejet de ces données indécodables permet d'éviter d'induire le décodeur en erreur, dans le cas où ces données concaténées émuleraient un code valide, par exemple un code représentant le début d'un paquet de données codées. En pratique, le flux de données peut être un train binaire représentant des données multimédia. 6 Ainsi, les données à décoder correspondent par exemple à un train binaire qui représente des données vidéo et/ou audio. Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif de traitement d'un flux de données codées 5 avant décodage, comportant : - des moyens de détection de données manquantes ou erronées dans le flux de données, et - des moyens d'insertion, dans une suite de données prête au décodage formée à partir du flux de données, d'au moins une information 10 relative à la détection de données manquantes ou erronées. Selon l'invention, les moyens d'insertion sont adaptés à insérer l'information à la place des données manquantes ou immédiatement après les données erronées détectées. Selon une caractéristique particulière du dispositif, les données sont 15 conformes à une norme prédéterminée et l'information est une séquence de données représentant un motif non conforme à la norme. Avantageusement, le flux de données est organisé en paquets réseau et le dispositif comporte en outre : - des moyens de sélection d'un paquet réseau qui suit un paquet 20 réseau entier manquant ou un paquet réseau contenant des données manquantes ou erronées ; et - des moyens de lecture d'au moins une partie du paquet réseau suivant. En pratique, le dispositif peut comporter des moyens de 25 concaténation, à la suite de données prête au décodage, des données utiles contenues dans le paquet réseau suivant, lorsque la partie précitée du paquet réseau suivant comporte des données représentant le début d'un paquet de données codées. En variante, le dispositif peut comporter des moyens de rejet des 30 données utiles contenues dans le paquet réseau suivant, lorsque la partie précitée du paquet réseau suivant ne comporte pas de données représentant le début d'un paquet de données codées. 7 Toujours dans le même but, la présente invention propose également un système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, comprenant au moins un dispositif terminal équipé d'un dispositif tel que succinctement décrit ci-dessus. Toujours dans le même but, la présente invention propose également un moyen de stockage d'informations pouvant être lues par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, remarquable en ce qu'il est adapté à mettre en oeuvre un procédé tel que succinctement décrit ci-dessus, lorsque les informations stockées sont lues par l'ordinateur ou le microprocesseur. Dans un mode particulier de réalisation, ce moyen de stockage est partiellement ou totalement amovible. Toujours dans le même but, la présente invention propose également un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, comportant des séquences d'instructions pour mettre en oeuvre un procédé tel que succinctement décrit ci-dessus, lorsque ce produit programme d'ordinateur est chargé dans et exécuté par l'appareil programmable. Les avantages du dispositif de traitement de données, ainsi que les caractéristiques particulières et avantages du système de télécommunications, du moyen de stockage d'informations et du produit programme d'ordinateur étant similaires à ceux du procédé de traitement de données, ils ne sont pas répétés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit d'un mode particulier de réalisation et de variantes, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 représente schématiquement le contexte de la présente invention ; 8 - la figure 2 représente schématiquement un mode particulier de réalisation d'un appareil susceptible de mettre en oeuvre la présente invention ; - la figure 3 est un organigramme représentant un mode particulier de réalisation d'un procédé de traitement de données conforme à l'invention ; - la figure 4 illustre une portion d'un flux de données codées susceptible d'être traité conformément à l'invention ; et - la figure 5 est un organigramme représentant un mode particulier de réalisation d'une étape du procédé de la figure 4. A titre d'exemple nullement limitatif, on décrit ici le traitement d'un 10 flux de données consistant en des données vidéo. Ces données sont codées par exemple en utilisant la norme MPEG-4, en particulier la partie 2 de MPEG-4. Bien entendu, d'autres normes peuvent être employées, comme par exemple H.263 ou MPEG-2. La norme correspondant au format de codage vidéo MPEG-4 partie 15 2 est ISO 14496-2. L'encapsulation du flux de données vidéo codées dans des paquets réseau selon cette norme est décrite dans la RFC (de l'anglais "Request for comments") 3016. Chaque image codée à transmettre à travers le réseau de 20 communication, est généralement divisée en paquets de données codées. Comme indiqué plus haut, cette image s'appelle VOP en langage MPEG-4. On décrit tout d'abord, en référence à la figure 1, le contexte dans lequel se situe l'invention. Le contexte général de l'invention est la transmission d'un flux de 25 données codées à travers un réseau de communication entre un émetteur et au moins un destinataire. Comme le montre la partie supérieure de la figure 1, des données 100 à transmettre à travers le réseau de communication sont codées par un codeur 101 afin de former un flux de données codées 102. 30 Dans le mode particulier de réalisation décrit ici, ce flux de données codées 102 est un train binaire codé. 9 A titre d'exemple non limitatif, ce train binaire codé 102 peut représenter des données multimédia, c'est-à-dire des données vidéo ou audio. En général, le train binaire est organisé en un ensemble de paquets de données codées. Chaque paquet de données codées comporte deux parties, un en-tête et un corps (en anglais "body'), comme expliqué ci-dessous en référence à la figure 4. Un encapsuleur 103 forme des paquets réseau 104 à partir du train binaire 102, par exemple en fonction des règles contenues dans une RFC. Le processus d'encapsulation est détaillé pour certains types de flux au sein des RFCs. Par exemple, comme cité ci-dessus, la RFC 3016 décrit le processus d'encapsulation pour la norme MPEG-4 partie 2. Dans chaque paquet réseau, on distingue notamment deux parties. Une première partie correspond à des données représentant le début d'un paquet ou un en-tête réseau, par exemple un en-tête RTP (de l'anglais "Real- time Transport Protocof'). Une seconde partie correspond aux données utiles (ou charge utile) du paquet réseau, comportant les données du flux de données codées. Ces données utiles contiennent au moins une partie d'un paquet de données codées. Si la taille du paquet de données codées ne dépasse pas la taille maximale acceptable pour la partie correspondant aux données utiles d'un paquet réseau, il est possible qu'un paquet réseau contienne, dans la partie correspondant aux données utiles, exactement un paquet de données codées. L'en-tête réseau comporte des informations concernant par exemple le numéro du paquet réseau indiquant l'indice du paquet réseau dans l'ordre d'émission, un marqueur indiquant qu'un paquet est le dernier composant d'une image, etc. Dans la présente description, "encapsuler" consiste à former des paquets réseau 104 à partir d'un flux de données codées 102. Inversement, "désencapsuler" consiste à former une suite de données prête au décodage 153 à partir des paquets réseau 151 (cf. désencapsuleur 152, mentionné plus loin). Les paquets de données codées 102 sont encapsulés dans des paquets réseau 104 qui sont émis par un serveur 105 sur un réseau de 10 communication. De cette manière, si un paquet réseau est perdu ou corrompu, les autres paquets réseau contenant des données utiles composant une même image ou VOP restent décodables, dès lors que chaque paquet de données codées est codé et encapsulé de manière indépendante par rapport aux autres paquets de données codées. Dans le mode particulier de réalisation décrit ici, le réseau de communication est un réseau de communication à commutation de paquets. Le protocole utilisé pour le transport des données dans ce type de réseau est par exemple le protocole RTP. Ce type de protocole, en soi bien connu de l'homme du métier, est souvent utilisé dans la diffusion de données multimédia. Comme le montre la partie inférieure de la figure 1, un client 150 récupère les paquets réseau 151 du réseau de communication et identifie les paquets réseau 104 appartenant à une même image ou VOP. Le client 150 lit alors les paquets réseau 151. Eventuellement, le client 150 ordonne les paquets réseau 151 lorsque l'ordre de réception n'a pas été le même que celui utilisé pour l'émission (par exemple dans le cas où les paquets réseau 151 ont suivi des routes différentes lors de leur transmission dans le réseau de communication). Les paquets de données codées sont désencapsulés par un module désencapsuleur 152 afin de former une suite de données 153, ici un train binaire, à partir de la charge utile des paquets réseau 151. Cette suite de données 153 devrait être identique au flux de données 102 encapsulé dans des paquets réseau 104 et puis émis par le serveur 105. Néanmoins, il est possible que ces deux flux ne soient pas identiques, en raison d'erreurs survenues pendant la transmission à travers le réseau de communication. Un décodeur 154 décode la suite de données codées 153 formée par le désencapsuleur 152, et produit ainsi des données décodées 155. La figure 2 illustre un dispositif mettant en oeuvre l'invention, dans un mode particulier de réalisation. Ce dispositif est par exemple un lecteur portable multimédia 210. 11 Le dispositif 210 comporte une interface de communication 212 reliée à un réseau 213 apte à recevoir des données numériques à traiter par le dispositif dans le cadre de la mise en oeuvre de l'invention. Il comporte aussi un lecteur 209 de stockage de masse 205. Ce stockage de masse 205 peut être une carte mémoire ou un périphérique USB, par exemple. Il peut ainsi contenir des données traitées selon l'invention ainsi que, dans une première variante, le ou les programmes mettant en oeuvre l'invention. Selon une seconde variante, le ou les programmes permettant au dispositif de mettre en oeuvre l'invention pourront être stockés en mémoire morte 202 (appelée ROM sur le dessin). En troisième variante, le ou les programmes pourront être reçus pour être stockés de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 213. Ce même dispositif possède un écran 204 permettant de visualiser les données traitées ou de servir d'interface avec l'utilisateur qui peut ainsi sélectionner d'autres données à traiter, à l'aide du clavier 214 ou de tout autre moyen (souris, molette ou stylet par exemple). L'unité centrale 200 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 202 ou dans les autres éléments de stockage. Par exemple, l'unité centrale réalise les étapes illustrées en figure 3 et décrites plus loin. Lors de la mise sous tension, les programmes de traitement stockés dans une mémoire non volatile, par exemple la ROM 202, sont transférés dans la mémoire vive RAM 203 qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement totalement ou partiellement amovible, mémorise un programme mettant en oeuvre le procédé de traitement de données selon l'invention. Le bus de communication 201 permet la communication entre les différents éléments inclus dans le dispositif 210 ou reliés à lui. La représentation du bus 201 n'est pas limitative et notamment l'unité centrale 200 est susceptible 12 de communiquer des instructions à tout élément du dispositif 210 directement ou par l'intermédiaire d'un autre élément du dispositif 210. Le dispositif 210 comporte en outre un codec 208, par exemple sous la forme d'une puce standard, utilisée par l'unité centrale 200 de manière classique à travers le bus 201. La figure 4 représente une portion de la suite de données codées prête au décodage 153 formée par le désencapsuleur 152. Cette portion de la suite de données codées 153 comporte la charge utile de plusieurs paquets réseau 151 correspondant à trois paquets de 10 données codées 401 appartenant à une image ou VOP. Ainsi, dans cet exemple nullement limitatif, les paquets de données codées sont des paquets de données vidéo. Chaque paquet de données vidéo 401 comporte un en-tête de paquet de données vidéo 402, appelé marqueur de synchronisation dans le cas 15 de la partie 2 de MPEG4, suivi des données 403 du flux de données qui, dans l'exemple non limitatif décrit ici, est un flux vidéo. Un en-tête de paquet de données vidéo représente un code signifiant le début du décodage du paquet des données vidéo indépendamment des autres paquets de données vidéo. 20 Il comprend des informations se référant aux données du paquet de données vidéo, par exemple le numéro d'indice du premier macrobloc codé appartenant à une image. On notera qu'un paquet de données vidéo peut être entièrement contenu dans un paquet réseau, ou réparti sur plusieurs paquets réseau. 25 La figure 3 est un organigramme illustrant un mode particulier de réalisation du procédé de traitement de données conforme à l'invention. Les erreurs considérées sont des données erronées contenues dans certains paquets réseau. On décrit plus loin le cas où les erreurs consistent en des paquets réseau manquants. 30 Lorsque le désencapsuleur 152 reçoit les paquets réseau 151 correspondant à une image, il initialise la suite de données codées 153 dans 13 laquelle la charge utile de ces paquets réseau va être insérée après désencapsulation, lors d'une étape d'initialisation 300. L'étape d'initialisation consiste par exemple en l'allocation d'une mémoire tampon de taille suffisante (par exemple supérieure à la somme des tailles des charges utiles des paquets réseau 151 correspondant à une image), où va être placé le train binaire. En fonction de l'architecture du dispositif mettant en oeuvre l'invention, la mémoire utilisée peut être par exemple une zone d'une mémoire vive RAM, une mémoire tampon sur le bus de communication, ou une mémoire tampon au sein du décodeur. Ici, la suite de données codées 153 prête à être fournie en entrée au décodeur 154 est un train binaire organisé en octets, c'est-à-dire que la plus petite unité d'information correspond à un octet. Lors d'une première étape de sélection 301, le désencapsuleur sélectionne un premier paquet réseau 151. La charge utile de ce premier paquet réseau est concaténée au train binaire codé 153 lors d'une étape de concaténation 302. On va décrire à l'aide de la figure 5, l'étape de concaténation 302 du procédé de la figure 3. Une fois que l'on a sélectionné un paquet réseau 151, on procède à la désencapsulation ou extraction de la charge utile du paquet réseau 151. La désencapsulation commence avec une étape de début de désencapsulation 500 lors de laquelle l'en-tête du paquet réseau 151 est lu. Certaines erreurs peuvent être indiquées lors de cette étape, par exemple, l'absence du paquet réseau précédant celui qu'on est en train de 25 désencapsuler. Une première sous-étape de vérification 501 est mise en oeuvre afin de vérifier s'il y a eu une erreur dans le réseau lors de la transmission du paquet réseau précédent. S'il n'y a pas eu d'erreurs lors de la transmission du paquet réseau 30 précédent, une deuxième sous-étape de vérification 502 est mise en oeuvre afin de vérifier si le paquet réseau que l'on est en train de désencapsuler contient une erreur. 14 Si le paquet réseau 151 contient une erreur, on effectue une première sous-étape d'extraction 503 afin d'extraire la partie de la charge utile du paquet réseau 151 depuis le début de cette charge utile jusqu'à la position de l'erreur. Ensuite, une sous-étape de signalisation 504 est mise en oeuvre afin d'indiquer cette erreur. Si à la deuxième sous-étape de vérification 502, on constate qu'il n'existe pas d'erreur dans le paquet réseau 151, on effectue une seconde sous-étape d'extraction 505 afin d'extraire toute la charge utile du paquet réseau 151. La charge utile extraite, soit lors de la première sous-étape d'extraction 503, soit lors de la seconde sous-étape d'extraction 505, est concaténée au train binaire lors d'une sous-étape de concaténation 509. On procède ensuite à une sous-étape de finalisation de la désencapsulation 510. Si à la première sous-étape de vérification 501, une erreur est détectée dans le paquet réseau 151 précédent, on effectue une troisième sous-étape de vérification 506 afin de vérifier que la charge utile du paquet réseau courant contient un marqueur de synchronisation. Si à cette troisième sous-étape de vérification 506 un marqueur de synchronisation n'est pas trouvé, on rejette le paquet réseau 151 sans extraire sa charge utile et on procède directement à l'étape de finalisation de la désencapsulation 510. Si au contraire, le paquet réseau 151 contient un marqueur de synchronisation, on met en oeuvre une troisième sous-étape d'extraction 507 de la charge utile depuis le marqueur de synchronisation jusqu'à la fin du paquet réseau 151. Ensuite, une seconde sous-étape de signalisation 508 est mise en oeuvre afin de signaler la fin de l'état d'erreur et pouvoir, comme décrit plus loin en liaison avec la suite de la figure 3, procéder à la sélection du paquet suivant s'il existe. 15 La charge utile extraite lors de la troisième sous-étape d'extraction 507 est concaténée au train binaire lors de la seconde étape de concaténation 509, puis la désencapsulation prend fin à la sous-étape de finalisation 510. Comme il sera décrit ci-dessous, la charge utile concaténée à l'étape 302 correspond aux données utiles d'un paquet réseau 151 ne comportant pas d'erreur, c'est-à-dire que lorsque la charge utile comporte une erreur, la charge utile concaténée correspond à la charge utile située avant l'erreur. Comme le montre la figure 3, une étape de vérification 303 est mise en oeuvre après l'étape de concaténation 302, afin de vérifier si une erreur s'est produite lors de la transmission de ce premier paquet réseau 151 à travers le réseau de communication. Comme décrit ci-dessus, cette erreur peut être la perte d'un paquet réseau précédent 151, ainsi qu'une erreur dans le paquet réseau 151, comme par exemple un ou plusieurs bits erronés ou la perte d'un ou plusieurs bits. Cette erreur est détectée, par exemple, via l'application d'une somme de contrôle (telle qu'un code CRC (de l'anglais "Cyclic Redundancy Check")). Le paquet réseau contenant des bits erronés, est marqué comme tel. La perte d'un paquet réseau 151 est détectable via l'en-tête réseau du paquet réseau 151. L'en-tête réseau peut par exemple comporter un numéro de séquence représentant l'indice du paquet réseau 151 lors de son émission. S'il manque un numéro dans la séquence, cela indique la perte d'un paquet réseau 151. Un paquet réseau 151 contenant une erreur peut être marqué comme erroné par des couches du réseau inférieures à la couche applicative 25 (couche de fonctionnement du désencapsuleur et du décodeur). Si, à l'étape de vérification 303, on détecte qu'une erreur est survenue lors de la transmission du paquet réseau 151 contenant la charge utile qui vient d'être concaténée, on effectue une étape d'insertion 304, dans le flux de données, d'une information relative à la détection d'une erreur. Cette 30 information relative à la détection d'une erreur correspond à des données de désynchronisation, c'est-à-dire à des données qui provoquent la désynchronisation du décodeur. 16 Cette information est ainsi insérée immédiatement après la charge utile extraite du paquet réseau 151 contenant l'erreur, cette charge utile extraite allant du début de la charge utile du paquet réseau 151 jusqu'à la position précédant l'erreur, afin d'indiquer au décodeur 154 la présence d'une erreur, et désynchroniser le décodeur. Si l'erreur survenue consiste en un paquet réseau 151 manquant, les données de désynchronisation sont insérées à la place de la charge utile du paquet réseau 151 manquant comme il sera décrit ci-dessous. Selon ce mode de réalisation, l'information relative à la détection d'une erreur, ou données de désynchronisation, est une séquence de données représentant un motif interdit ou non conforme à une norme, par exemple une séquence de données ayant une longueur non conforme à la norme utilisée (MPEG-4 dans l'exemple non limitatif décrit ici). A titre d'exemple nullement limitatif, cette séquence de données peut être une séquence de 32 données binaires ayant une valeur zéro. Cette séquence est une séquence non valide dans la norme MPEG-4 partie 2. Bien entendu, d'autres types de séquences de données peuvent être utilisés. La lecture d'une telle séquence par le décodeur 154, provoque une désynchronisation du décodeur 154. Le décodeur 154 passe ainsi immédiatement en mode de resynchronisation, c'est-à-dire que le décodeur cherche un code sur lequel il peut se synchroniser et commencer ainsi à lire et décoder des données. Un tel code est connu sous le nom de marqueur de synchronisation. Un marqueur de synchronisation comporte des données représentant le début d'un paquet de données vidéo ou d'une suite de paquets de données vidéo, et peut être un en-tête de paquet de données vidéo ou un marqueur de début. Comme décrit ci-dessus, un en-tête de paquet de données vidéo indique le début d'un paquet de données vidéo et un marqueur de début indique le début d'une image ou VOP. Une fois que l'erreur a été signalée par l'insertion des données de désynchronisation (étape 304 sur la figure 3), le désencapsuleur 152 met en 17 oeuvre une seconde étape de sélection 305, au cours de laquelle un paquet réseau suivant est sélectionné. Ce paquet réseau suivant peut contenir dans sa charge utile la suite d'un paquet de données vidéo ou alors un nouveau paquet de données vidéo (le marqueur de synchronisation qui est l'en-tête de ce paquet de données vidéo constitue donc les premiers octets de cette charge utile). Afin de vérifier cela, on effectue une étape de comparaison 306 consistant à comparer les données situées au début de la charge utile du paquet réseau suivant avec divers types de données susceptibles de représenter le début d'un paquet de données vidéo ou tout autre élément décodable de manière indépendante. Un marqueur de synchronisation comporte une longueur variable. Dans cet exemple nullement limitatif, le marqueur de synchronisation est constitué de 16 à 22 bits à 0 suivis d'un bit à 1. Lorsqu'à l'étape de comparaison 306, les données situées au début de la charge utile du paquet réseau suivant correspondent à des données représentant un marqueur de synchronisation, le paquet réseau est valide et on retourne alors à l'étape de concaténation 302, afin de concaténer au train binaire 153 les données utiles (ou charge utile) du paquet réseau suivant. Lorsque les données au début de la charge utile du paquet réseau suivant ne correspondent pas à un marqueur de synchronisation, une étape de rejet 310 est mise en oeuvre, afin de rejeter le paquet réseau suivant. Ce paquet réseau suivant peut contenir par exemple un fragment de données d'un paquet de données vidéo situé à la suite des données erronées. Après l'étape de rejet 310, on retourne à la seconde étape de sélection 305 d'un paquet réseau suivant. Ainsi, seuls les paquets réseau 151 dont la charge utile commence par un marqueur de synchronisation ou qui contient des fragments de paquet de données vidéo non précédés par une erreur vont être concaténés au train binaire 153. Les données non valides, c'est-à-dire les données utiles d'un paquet réseau 151 qui ne commencent pas par un marqueur de synchronisation ou se 18 situant après une erreur, ne sont pas validées et ne sont donc pas insérées dans le train binaire 153. Lors de la mise en oeuvre des première et seconde étapes de sélection 301 et 305 d'un paquet réseau suivant, on met en oeuvre une détection d'un paquet réseau manquant entre le paquet réseau courant et le paquet réseau suivant sélectionné. La détection d'un paquet réseau manquant est réalisée par exemple par comparaison du numéro de séquence du paquet réseau suivant avec le numéro de séquence du paquet réseau courant incrémenté d'une unité. Lorsqu'un paquet réseau manquant est détecté, on effectue une insertion des données de désynchronisation afin d'indiquer qu'un paquet réseau manque à la position des données de désynchronisation. Ainsi, le train binaire 153 produit par le désencapsuleur 152 comporte la charge utile des paquets réseau composant une image, hormis la charge utile correspondant aux paquets réseau perdus et aux données indécodables de paquets de données vidéo incomplets ou corrompus, et comporte en outre des informations relatives à la détection d'une erreur, insérées respectivement derrière les erreurs ou à la place des données manquantes. Lorsqu'à l'étape de vérification 303, on ne détecte pas d'erreur survenue lors de la transmission du paquet réseau dont on vient de concaténer la charge utile, on effectue une seconde étape de vérification 307. Cette seconde étape de vérification 307 consiste à vérifier si le paquet réseau était le dernier paquet réseau de la séquence reçue par le client 25 150. S'il ne s'agit pas du dernier paquet réseau 151, le désencapsuleur met en oeuvre une troisième étape de sélection 309, au cours de laquelle un paquet suivant est sélectionné. Après la mise en oeuvre de cette troisième étape de sélection 309, 30 on retourne à l'étape de concaténation 302, afin de concaténer au train binaire 153 les données utiles du paquet réseau suivant. 19 Lors de cette troisième étape de sélection 309, on effectue également une détection d'un paquet réseau manquant et une insertion des données de désynchronisation dans le cas où un paquet manquant est détecté. Si à l'étape 307, il s'agit du dernier paquet réseau 151, le train binaire 153 est fourni au décodeur 154. Ensuite, le décodeur 154 met en oeuvre une étape de décodage 308 du train binaire 153. Le décodeur est ainsi capable de décoder le flux des données correspondant à une image en limitant les erreurs à celles produites pendant la transmission des paquets sur le réseau de communication, autrement dit sans produire d'erreurs additionnelles et sans pour autant nécessiter une modification du décodeur. Bien entendu, le procédé conforme à l'invention peut être utilisé pour le traitement de flux de données de types autres que multimédia. Par ailleurs, le procédé s'applique également à des données codées 15 selon des normes différentes, comme par exemple MPEG-2 ou H.263, ces deux exemples n'étant aucunement limitatifs. REVENDICATIONS1. Procédé de traitement d'un flux de données codées avant décodage, comportant : - une étape de détection (303) de données manquantes ou erronées dans ledit flux de données, et - une étape d'insertion (304), dans une suite de données prête au décodage formée à partir dudit flux de données, d'au moins une information relative à la détection de données manquantes ou erronées, ledit procédé étant caractérisé en ce que ladite étape d'insertion (304) consiste à insérer ladite information à la place des données manquantes ou immédiatement après les données erronées détectées. 2. Procédé selon la revendication 1, dans lequel les données sont conformes à une norme prédéterminée, caractérisé en ce que ladite information est une séquence de données représentant un motif non conforme à ladite norme. 3. Procédé selon la revendication 1 ou 2, ledit flux de données étant organisé en paquets réseau, caractérisé en ce qu'il comporte en outre : - une étape de sélection (305) d'un paquet réseau qui suit un paquet réseau entier manquant ou un paquet réseau contenant des données manquantes ou erronées ; et - une étape de lecture (306) d'au moins une partie dudit paquet réseau suivant. 6. Procédé selon la revendication 3, caractérisé en ce qu'il comporte une étape de concaténation (302), à la suite de données prête au décodage, des données utiles contenues dans ledit paquet réseau suivant, lorsqu'à l'étape de lecture (306), ladite partie dudit paquet réseau suivant comporte des données représentant le début d'un paquet de données codées. 7. Procédé selon la revendication 3, caractérisé en ce qu'il comporte une étape de rejet (310) des données utiles contenues dans ledit paquet réseau suivant, lorsqu'à l'étape de lecture (306), ladite partie dudit paquet réseau21 suivant ne comporte pas de données représentant le début d'un paquet de données codées. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le flux de données est un train binaire représentant des 5 données multimédia. 7. Dispositif de traitement d'un flux de données codées avant décodage, comportant : - des moyens de détection de données manquantes ou erronées dans ledit flux de données, et 10 - des moyens d'insertion, dans une suite de données prête au décodage formée à partir dudit flux de données, d'au moins une information relative à la détection de données manquantes ou erronées, ledit dispositif étant caractérisé en ce que lesdits moyens d'insertion sont adaptés à insérer ladite information à la place des données manquantes 15 ou immédiatement après les données erronées détectées. 8. Dispositif selon la revendication 7, dans lequel les données sont conformes à une norme prédéterminée, caractérisé en ce que ladite information est une séquence de données représentant un motif non conforme à ladite norme. 20 9. Dispositif selon la revendication 7 ou 8, ledit flux de données étant organisé en paquets réseau, caractérisé en ce qu'il comporte en outre : - des moyens de sélection d'un paquet réseau qui suit un paquet réseau entier manquant ou un paquet réseau contenant des données manquantes ou erronées ; et 25 - des moyens de lecture d'au moins une partie dudit paquet réseau suivant. 10. Dispositif selon la revendication 9, caractérisé en ce qu'il comporte des moyens de concaténation, à la suite de données prête au décodage, des données utiles contenues dans ledit paquet réseau suivant, 30 lorsque ladite partie dudit paquet réseau suivant comporte des données représentant le début d'un paquet de données codées. 22 11. Dispositif selon la revendication 9, caractérisé en ce qu'il comporte des moyens de rejet des données utiles contenues dans ledit paquet réseau suivant, lorsque ladite partie dudit paquet réseau suivant ne comporte pas de données représentant le début d'un paquet de données codées. 12. Dispositif selon l'une quelconque des revendications 7 à 11, caractérisé en ce que le flux de données est un train binaire représentant des données multimédia. 13. Système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, caractérisé en ce qu'il comprend au moins un dispositif terminal équipé d'un dispositif selon l'une quelconque des revendications 7 à 12. 14. Moyen de stockage d'informations pouvant être lues par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il est adapté à mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 6, lorsque lesdites informations sont lues par ledit ordinateur ou ledit microprocesseur. 15. Moyen de stockage d'informations selon la revendication 14, caractérisé en ce qu'il est partiellement ou totalement amovible. 16. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 6, lorsque ledit produit programme d'ordinateur est chargé dans et exécuté par ledit appareil programmable.