Brevet FR2696026A1 — publié le 19940325

PROCÉDÉ DE MASQUAGE D'ERREURS DE TRANSMISSION D'IMAGE COMPRESSÉE EN MPEG La présente invention concerne le codage, la transmis- sion et le décodage d'images vidéo codées de façon numérique. Elle concerne plus particulièrement le masquage d'erreurs de transmission de séquences d'images de télévision dans lesquelles une chaîne d'images comprend de façon alternée une image codée de façon intrinsèque (image intra) et des images codées de façon relative par rapport à des images précédentes et/ou suivantes (images inter). Un exemple d'un tel mode de transmission d'images alternées correspond à un codage MPEG, décrit dans "MPEG: a Video Compression Standard for Multimedia Applications", Didier Le Gall, Communications of-the ACM, avril 1991, vol 34, N O 4. La figure 1 représente très schématiquement un système de prise et de transmission d'image Ce système comprend tout d'abord un dispositif de prise d'images 1 suivi d'un codeur 2 effectuant une compression et un codage d'image L'image codée et comprimée est transportée par un dispositif de transport 3 (qui peut être un système à câble, une liaison hertzienne, une liaison optique etc) associé à des circuits logiques vers un récepteur qui comprend un décodeur et décompresseur 4, complé- mentaire du codeur 2, qui fournit des séquences d'images des- tinées à être affichées sur un écran 5. La norme MPEG précédemment mentionnée est en particu- lier caractérisée par le fait qu'une séquence d'images à trans- mettre est divisée en groupes d'images Un groupe comprend une succession d' images dont la première est une image dite intra et5 dont les suivantes sont des images dites inter La figure 2 illustre une telle séquence avec un premier groupe comprenant une première image intra 10 suivie d'images inter 11, 12, 13 et un deuxième groupe comprenant une première image intra 20 suivie de plusieurs images inter 21, 22 10 La première image d'un groupe est codée en intra, c'est-à-dire selon une technique de compression d'image fixe basée sur la transformée cosinus discrète (DCT) Ainsi, l'image telle que l'image 10 ou l'image 20 est codée de façon intrinsèque par découpage de l'image en blocs, transformation cosinus15 de chaque bloc, quantification des coefficients de la transfor- mation, et codage entropique des coefficients quantifiés Un exemple d'un tel mode de codage et d'un dispositif pour le réaliser peut être trouvé dans l'article de Milt Leonard, Electronic Design, 23 mai 1991, PP 49-53. 20 Les images suivantes ( 11, 12, 13 21, 22) sont codées en inter, c'est-à-dire d'une façon relative par rapport à des images précédentes et/ou suivantes En effet, dans une image d'une scène prise normalement par une caméra de télévision, il y a peu de différence entre une image et des images immédiatement25 précédentes et suivantes à des mouvements de translation près. Par exemple, le fond (paysage) est peut être animé d'un mouve- ment de translation dû à un déplacement de caméra, et certains éléments de l'image peuvent eux-mêmes être animés d'un mouvement de translation par rapport au fond (par exemple personnage ou véhicule mobile). Les figures 3 A et 3 B donnent un exemple d'une telle situation La figure 3 A représente une portion de trame découpée en blocs Bij et la figure 3 B illustre de même une portion de trame de référence découpée en blocs B'ij Quand on compare les deux images, on s'aperçoit que le bloc B 13 de la figure 3 A ressemble par exemple au bloc B'12 et qu'il peut être déduit de ce bloc B '12 moyennant détermination d'un vecteur déplacement V 13 et de données caractérisant des différences mineures entre 5 les blocs B '12 et B 13 De même, le bloc B 26 correspond à une portion de l'image comprise dans les blocs B'23, B'24, B'33, B'34 et s'en déduit par un vecteur déplacement V 26 et des données de différence On notera de plus que, de façon générale, des blocs immédiatement voisins ont une forte probabilité d'être10 associés à des vecteurs déplacement sensiblement identiques Le codage d'une image en inter comprend les étapes suivantes: découpage en blocs, estimation de mouvement par rapport à des images, voisines pour fournir un ou plusieurs vecteurs déplacement par rapport à chacune de ces images, extraction dans une ou plusieurs des images voisines d'un bloc prédicteur, transformation cosinus de la différence entre chaque bloc et son prédicteur, quantification des coefficients de la transformation, codage entropique du déplacement du prédicteur par rapport au bloc et des coefficients quantifiés. Une description d'un procédé de codage inter et d'un dispositif pour le mettre en oeuvre peut être trouvée dans l'article de Milt Leonard, Electronic Design, 2 avril 1992, PP. -54. Le système de transport 3 reçoit une chaîne de bits produite par le codeur et la découpe en paquets d'information. Comme le représente la figure 4, ce système de transport joint à30 chaque paquet Pi, P 2, P 3 des codes d'identification et un code détecteur/correcteur d'erreur Après quoi, les paquets sont diffusés et, à la réception, les paquets sont récupérés, leur code détecteur/correcteur d'erreur est analysé et leur contenu est fourni au décodeur. A la réception d'un paquet, quand le système de trans- port détecte une ou plusieurs erreurs de transmission sur ce paquet, ou bien il peut corriger ces erreurs et cette opération est réalisée automatiquement sans intervention du décodeur, ou bien sa capacité de correction d'erreur est dépassée et il signale au décodeur qu'un paquet est perdu Il n'est alors plus possible de corriger l'erreur mais on peut s'efforcer d'en masquer les conséquences (on notera qu'un paquet de transmission correspond généralement à plusieurs blocs résultant du découpage en blocs susmentionné). Dans le cas d'une image codée en intra, l'une des solutions consiste à remplacer les blocs manquants par des blocs situés à la même position d'une image précédente Toutefois, ce masquage risque d'être malencontreux si l'on se situe dans une zone d'image en mouvement rapide par rapport à une image précé- dente. Dans le cas d'une image codée en inter, étant donné que l'on dispose des vecteurs déplacement des blocs voisins des blocs manquants, on pourra faire une estimation des vecteurs déplacement et des coefficients de différence des blocs man- quants, par exemple par une moyenne des vecteurs déplacements et des coefficients de différence des blocs voisins, et ainsi effectuer un remplacement des blocs manquants par les blocs d'une image précédente affectés des vecteurs déplacement et des coefficients de différence estimés. On arrive donc à un moins bon masquage des blocs manquants dans le cas d'une image intra que dans le cas d'une image inter Ceci est particulièrement gênant car les erreurs sur une image intra sont plus néfastes que les erreurs sur une30 image inter puisqu'elles se répercutent de proche en proche sur les images inter suivantes dont le codage est élaboré à partir de ces images intra. On a donc été amené dans 1 ' art antérieur à renforcer les systèmes de correction d'erreur pour les images intra, mais ce renforcement a des limites car il nécessite une augmentation du nombre de bits affectés à la détection/correction d'erreur 5 dans chaque paquet d'informations du système de transport et une complexification notable des systèmes matériels affectés au traitement des erreurs. Ainsi, un objet de la présente invention est de pré- voir un procédé de masquage d'erreur d'une image intra dans un système de transmission d'image comprenant des alternances d'images intra et d'images inter. Un autre objet de la présente invention est de prévoir un tel procédé de masquage d'erreur qui ne nécessite pas une augmentation notable des données à transmettre.15 Un autre objet de la présente invention est de prévoir un tel système de masquage d'erreur qui ne nécessite pas une complexification des matériels de codage et de décodage. Pour atteindre ces objets, la présente invention pré- voit un procédé de masquage d'erreurs dans un système de trans- mission d'une séquence d'images comprenant une première série d'images codées de façon autonome par blocs de pixels(codage intra), chaque image de la première série étant suivie de plusieurs images d'une deuxième série d'images codées par blocs de façon différentielle par rapport à au moins une image de25 référence de la première série d'images (codage inter), les codes de chaque bloc de la deuxième série d'image comprenant au moins l'indication d'un vecteur déplacement entre les pixels de ce bloc et des pixels d'éléments de l'image de référence Le procédé selon l'invention comprend les étapes consistant à30 adjoindre aux données correspondant à chaque bloc d'une image intra des données indicatives du vecteur déplacement de ce bloc par rapport à au moins une autre image, et, si une erreur de transmission est détectée, à traiter les blocs en erreur de l'image intra comme des blocs en erreur d'une image inter. Selon un mode de réalisation de la présente invention, les données indicatives du vecteur déplacement d'un bloc d'une image intra sont transmises de façon décalée dans le temps par rapport aux données de ce bloc codées en intra. 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 en relation avec les figures jointes parmi lesquelles: la figure 1, décrite précédemment, représente sous forme de blocs une chaîne de transmission d'images; la figure 2 illustre de façon schématique un codage d'images successives dans un processus de type MPEG; les figures 3 A et 3 B illustrent schématiquement un procédé de codage inter et d'obtention de vecteurs déplacement; la figure 4 illustre de façon schématique des paquets de données transmis par un système de transport; et la figure 5 représente schématiquement et sous forme de blocs un système de masquage d'erreurs permettant la mise en oeuvre de la présente invention. La présente invention, plutôt que de complexifier le système de détection et de correction d'erreurs associé à la transmission d'une image intra, propose d'adjoindre au codage intra de chaque bloc d'une image intra l'indication d'un vecteur déplacement obtenu comme dans le cas d'une image inter Ce vec- teur déplacement redondant est utilisé en cas de perte de paquet pour remplacer chaque bloc manquant par la portion d'image à partir de laquelle a été obtenu le vecteur déplacement On notera que la présente invention n'implique pas pour le codage d'une image la superposition complète d'un codage intra et d'un codage inter En effet, on ajoute aux informations de codage intra de chaque bloc la seule information de vecteur déplacement de ce bloc et non pas les informations de différence entre le bloc initial et le bloc final ou seulement une partie très réduite de ces informations. Dans le cadre d 'un système prévoyant 1 'envoi séquen- tiel d'images intra et d'images inter, on pourra utiliser le système de codage inter pour fournir ce vecteur déplacement sans compliquer la structure matérielle du système de codage. 5 On va également montrer à l'aide d'un exemple que l'adjonction à un bloc d'image codé en intra d'un vecteur dépla- cement entraîne une augmentation négligeable de la quantité d'information à transmettre. Considérons par exemple une image de télévision ayant une taille de 720 x 576 pixels divisée en blocs de 16 x 16 pixels (c'est-à-dire qu'une image comprend 1620 blocs) Pour coder un vecteur déplacement, il faut utiliser dans les systèmes usuels un nombre de bits inférieur à 16 En conséquence, pour une image complète, on aura besoin de 1620 fois 16 bits supplémentaires, soit environ 26 000 bits pour la fourniture des vecteurs dépla- cement redondants Si l'on se place dans le cas o il y a une image intra par groupe de 16 images, les autres images étant des images inter, dans un exemple concret, le nombre de bits à fournir pour le codage d'un groupe d'images est d'environ égal à20 3,6 mégabits Ainsi, le codage des vecteurs redondants repré- sente typiquement moins de 0,7 % du nombre total de bits transmis Cette valeur passe à environ 1,4 % s'il y a une image intra par groupe de 8 images successives. Une fois une image intra codée en associant aux données de chacun des blocs le codage d'un vecteur redondant, il y a plusieurs façons de transporter et d'utiliser les informa- tions ainsi transmises en cas d'erreur. Dans une première mise en oeuvre, on envoie séquen- tiellement les données de chaque bloc et les bits du vecteur redondant correspondant à la suite Dans ce cas, il y a de fortes chances qu'en cas de perte d'un paquet d'informations, on perde simultanément les informations relatives à un bloc et au vecteur déplacement redondant associé On pourra alors utiliser le système de masquage d'erreur classiquement utilisé dans le cas d'images inter, consistant à remplacer les vecteurs dépla- cement des blocs manquants par des vecteurs déplacement estimés à partir des vecteurs déplacement des blocs voisins En effet, généralement, un paquet de données envoyé par le système de transport correspond aux données de plusieurs blocs. Une autre mise en oeuvre préférée selon la présente invention consiste, lors du codage et de l'assemblage en paquets, à associer à chaque bloc le vecteur déplacement d'un10 bloc précédent ou suivant, décalé d'un nombre déterminé de blocs, ce nombre déterminé étant choisi pour être supérieur au nombre maximum de blocs inclus dans un paquet Ainsi, en cas de perte d'un paquet, on trouvera l'information sur le vecteur déplacement des blocs perdus dans l'un des paquets suivants ou15 précédents et l'on pourra attribuer à chaque bloc perdu son vecteur déplacement exact sans avoir recours à une estimation. La figure 5 représente sous forme de blocs le schéma d'un système applicable à la présente invention Ce système per- met le masquage d'erreurs inter de façon classique et également20 le masquage d'erreurs intra selon la présente invention. Tout décodeur classique comprend un système de mas- quage d'erreur qui inclut un module de décodage entropique 30 recevant sur une première entrée 31 les bits d'un paquet émis et sur une deuxième entrée 32 une information sur la perte éven-25 tuelle d'un paquet Ce décodeur fournit sur une première sortie 33 une information du fait que les données reçues correspondent à une image inter ou à une image intra, sur une deuxième sortie 34 des informations correspondant aux coefficients de transfor- mée cosinus discrète (DCT) et sur une troisième sortie 35 des informations correspondant aux vecteurs de déplacement. Normalement, en cas de réception d'une image inter, on utilise les sorties 34 et 35 et en cas d'image intra, on utilise seulement la sortie 34 La présente invention prévoit d'adjoin- dre à la sortie 35 une mémoire 36 de type premier-entré/premier- sorti (FIFO) dans laquelle sont stockées les données correspon- dant à des vecteurs successifs Quand un signal de perte de paquet arrive sur l'entrée 32 tandis que l'on est dans le cadre d'une image intra, le décodeur passe en mode inter et fournit un signal 39 qui actionne un commutateur 40 pour fournir la sortie du FIFO 36 plutôt que la sortie directe de vecteur 35 En consé- quence, pour les blocs manquants, on utilise pour l'image intra, plutôt que les coefficients de DCT disponibles, mais erronés, l'information de vecteur pour reconstituer l'image à partir d'un10 bloc précédent Le tampon 36 est utilisé pour, comme cela a été indiqué précédemment, retrouver des vecteurs déplacement d'un bloc intra transmis avec un paquet d'informations précédent (ou suivant). Ainsi, un avantage de la présente invention est qu'elle peut utiliser des systèmes de masquage d'erreur préexis- tants pour des images inter et les appliquer au cas d'une image intra En outre, les divers systèmes de codage de vecteurs redondants n'impliquent pas comme on l'a indiqué précédemment une complexification du système puisque de toute façon ces20 dispositifs d'estimation de vecteur déplacement existent et ne sont pas utilisés pendant le codage normal d'une image intra. REVENDICATIONS 1 Procédé de masquage d'erreurs dans un système de transmission d'une séquence d'images comprenant une première série d'images codées par blocs de pixels de façon autonome (codage intra), chaque image de la première série étant suivie de plusieurs images d'une deuxième série d'images codées par blocs de façon différentielle par rapport à au moins une image de référence de la première série d'images (codage inter), les codes de chaque bloc de la deuxième série d'image comprenant au moins l'indication d'un vecteur déplacement entre les pixels de10 ce bloc et des pixels d'éléments de l'image de référence, carac- térisé en ce qu'il comprend les étapes suivantes: adjoindre aux données correspondant à chaque bloc d'une image intra des données indicatives du vecteur déplacement de ce bloc par rapport à au moins un bloc d'une autre image, et15 si une erreur de transmission est détectée, traiter les blocs en erreur de l'image intra comme des blocs en erreur d'une image inter. 2 Procédé de masquage d'erreurs selon la revendica- tion 1, caractérisé en ce que les données indicatives du vecteur déplacement d'un bloc d'une image intra sont transmises de façon décalée dans le temps par rapport aux données de ce bloc codées en intra.