FR 2932036 A1 20091204 FR 0803064 A 20080603 PROCEDE ET SYSTEME PERMETTANT DE PROTEGER UN FLUX VIDEO COMPRESSE CONTRE LES ERREURS SURVENANT LORS D'UNE TRANSMISSION L'invention concerne un procédé et un système permettant de transmettre un flux vidéo en intégrant de la redondance pour résister aux erreurs de transmission, ceci sur un flux vidéo déjà compressé. L'invention s'applique par exemple en sortie d'un codeur vidéo. L'invention est utilisée pour transmettre des flux vidéo compressés dans tout io contexte de transmission susceptible de rencontrer des erreurs. Elle s'applique dans le domaine des télécommunications. Dans la suite du document, l'expression � contexte de transmission � est utilisée pour désigner des liens de transmission non fiables, c'est-à-dire un moyen de transmission sur lequel est réalisée une communication sensible 15 aux erreurs. De même, le terme � premier plan � désigne le ou les objets mobiles dans une séquence vidéo, par exemple, un piéton, un véhicule, une molécule en imagerie médicale. A contrario, la désignation � arrière plan � est utilisée en référence à l'environnement ainsi qu'aux objets fixes. Ceci comprend, par 20 exemple, le sol, les bâtiments, les arbres qui ne sont pas parfaitement immobiles ou encore les voitures stationnées. L'invention peut, entre autre, s'appliquer dans des applications mettant en oeuvre la norme définie en commun par l'ISO MPEG et le groupe vidéo 25 coding de l'ITU-T dite H.264 ou MPEG-4 AVC (advanced video coding) et SVC (scalable video coding) qui est une norme vidéo fournissant une compression plus efficace que les normes vidéo précédentes tout en présentant une complexité de mise en oeuvre raisonnable et orientée vers les applications réseau. 30 Dans la description, l'expression � flux vidéo compressé � et l'expression � séquence vidéo compressée � désignent une vidéo. Le concept de couche abstraite réseau, plus connue sous l'abréviation NAL (Network Abstraction Layer) utilisé dans la suite de la description existe dans la norme H.264. Il s'agit d'une unité de transport réseau qui peut contenir soit un slice pour les NALs VCL (Video Coding Layer), soit un paquet de données (jeux de paramètres û SPS (Sequence Parameters Set), PPS (Picture Parameter Set) -, données utilisateur, etc.) pour les NALs NON-VCL. L'expression � tranche � ou � portion � plus connue dans le domaine sous l'expression anglo-saxonne � slices � correspond à une sous-partie de l'image constituée de macroblocs qui appartiennent à un même ensemble io défini par l'utilisateur. Ces termes sont bien connus de l'Homme du métier dans le domaine de la compression, par exemple, dans les normes MPEG. Actuellement, certains réseaux de transmission utilisés dans le domaine des télécommunications n'offrent pas de communications fiables dans la mesure 15 où le signal transmis peut être entaché de nombreuses erreurs de transmissions. Lors de la transmission de séquences vidéo compressées, les erreurs peuvent s'avérer très pénalisantes. Le type d'erreurs rencontré lors de la transmission et lors de l'étape décodage du flux peut correspondre à des erreurs introduites par un canal de 20 transmission, comme la famille des canaux sans fils, des canaux classiques civils par exemple la transmission sur UMTS, WiFi, WiMAX, ou encore les canaux militaires. Ces erreurs peuvent être de type � perte de paquets � (perte d'une suite de bits ou d'octets), � erreurs de bits � (possible inversion d'un ou de plusieurs bits ou octets, aléatoirernent ou en rafales), 25 � effacements � (perte de taille ou position connue d'un ou de plusieurs ou d'une suite de bits ou d'octets) ou encore résulter d'un mélange de ces différents incidents. L'art antérieur décrit différentes méthodes permettant de lutter contre les erreurs de transmission. 30 Par exemple, avant le codage des images, il est connu d'ajouter de l'information aux données vidéo fournies par le codeur vidéo, ceci avant transmission. Cette technique ne tient toutefois pas compte de problèmes de compatibilité avec le décodeur du flux. Une technique utilise le mécanisme de retransmission de paquets ARQ, abréviation anglo-saxonne de � Automatic Repeat Request � qui consiste à répéter les paquets erronés. Cette transmission sur un second canal ou second flux, bien que s'avérant performante, présente l'inconvénient de l'avis général d'être sensible au délai dans un réseau de transmission. Elle n'est pas vraiment adaptée dans certains services qui requièrent des contraintes temps réel. lo Une autre technique consiste à utiliser un codeur correcteur d'erreur qui ajoute de la redondance dans les données à transmettre. La demande de brevet FR 2 854 755 décrit aussi un procédé de protection d'un flux d'images vidéo compressées contre les erreurs qui interviennent lors de la transmission de ce flux. Ce procédé consiste à ajouter des bits de 15 redondance sur l'ensemble des images et transmettre ces bits avec les images vidéo compressées. S'il s'avère efficace, ce procédé présente comme inconvénient d'augmenter le temps de transmission. En effet, la redondance est ajoutée sans faire de distinction sur les images transmises, c'est-à-dire que l'ajout de redondance est effectué sur un grand nombre 20 d'images. Un des objets de la présente invention est d'offrir un procédé de protection contre les erreurs de transmission qui interviennent lors de la transmission d'un flux vidéo. 25 L'invention concerne un procédé pour protéger un flux vidéo compressé pouvant être décomposé en au moins un premier ensemble composé d'objets d'un premier type et d'au moins un second ensemble composé d'objets d'un second type, contre les erreurs lors de la transmission de ce 30 flux sur un lien non fiable, caractérisé en ce qu'il comporte au moins les étapes suivantes : 20 25 a) analyser le flux dans le domaine compressé afin de d'identifier différentes zones dans lesquelles la redondance va être ajoutée, b) ajouter de la redondance aux objets desdites zones déterminées à l'étape a), c) transmettre l'ensemble des zones formant l'image. Pour un flux compressé avec un standard H.264 le procédé comporte au cours de l'étape d'ajout de redondance au moins les étapes suivantes : - analyser le flux vidéo dans le domaine compressé, - définir au moins un premier groupe d'objet contenant des zones io d'objets ou des objets à protéger dans ledit flux, - pour une image donnée ou un groupe d'images donné, déterminer une unité de transport réseau de type NAL non défini (décrite dans la norme sous l'appellation � undefined NAL �), qui véhiculera l'information de redondance, 15 - une image étant composée de plusieurs blocs, analyser les blocs de ladite image ou du groupe d'image en cours, i. si le bloc de l'image ou du groupe d'images appartient au premier groupe, alors déterminer les données de redondance et les ajouter, accompagnées des coordonnées du bloc de l'image, dans l'unité NAL déterminée à l'étape précédente, ii. sinon ne rien faire, - transmettre la partie du flux compressé comprenant l'ensemble de l'information d'origine sans robustesse particulière, ainsi que les nouvelles unités NAL transportant la redondance correspondant au premier groupe d'objet. Le premier type d'objets correspond, par exemple, à un premier plan comprenant des objets mobiles dans une image. Dans des applications de vidéo surveillance par exemple, ils se verront allouer de la redondance 30 puisqu'ils correspondent à la partie la plus importante du flux vidéo. Le procédé peut utiliser pour appliquer la redondance un code Reed Solomon. L'analyse dans le domaine compressé, utilisé par le procédé, détermine par exemple un masque identifiant les blocs de l'image appartenant aux différents objets de la scène. Généralement, un objet correspondra à l'arrière plan. L'ensemble des autres éléments du masque pourront être groupés sous le même label (dans le cas d'un masque binaire) qui regroupera alors tous les blocs de l'image appartenant aux objets mobiles ou premier plan. Le procédé peut aussi utiliser suite à l'analyse dans le domaine compressé une fonction déterminant les coordonnées de boîtes englobantes correspondants aux objets appartenant au premier plan dans une image ; les coordonnées desdites boîtes englobantes sont déterminées à partir du masque. L'invention concerne aussi un système permettant de protéger une séquence vidéo destinée à être transmise sur un lien de transmission peu fiable caractérisé en ce qu'il comporte au moins un codeur vidéo adapté à exécuter les étapes du procédé présentant au moins une des caractéristiques précitées comprenant un système de diffusion vidéo sur réseau et une unité de traitement associée. D'autres caractéristiques et avantages du dispositif selon l'invention apparaîtront mieux à la lecture de la description qui suit d'un exemple de réalisation donné à titre illustratif et nullement limitatif annexé des figures qui représentent : - Les figures 1 à 4, les résultats obtenus par une analyse dans le domaine compressé, - La figure 5, un exemple décrivant les étapes mises en oeuvre pour ajouter de la redondance à un flux compressé, et - La figure 6, un exemple de schéma pour un codeur vidéo selon l'invention. Afin de mieux faire comprendre le fonctionnement du procédé selon l'invention, la description comprend un rappel sur la manière d'effectuer une analyse dans le domaine compressé, tel qu'il est décrit, par exemple, dans la demande de brevet US 2006 188013 en référence aux figures 1, 2, 3 et 4 et aussi dans les deux références suivantes : Leny, Nicholson, Prêteux, "De l'estimation de mouvement pour l'analyse temps réel de vidéos dans le domaine compressé", GRETSI, 2007. Leny, Prêteux, Nicholson, "Statistical motion vector analysis for object io tracking in compressed video streams", SPIE Electronic Imaging, San Jose, 2008. En résumé les techniques utilisées entre autre dans les standards MPEG et exposées dans ces articles consistent à diviser la compression vidéo en deux étapes. La première étape vise à compresser une image fixe. L'image 15 est divisée en blocs de pixels (de 4x4 ou 8x8 selon les standards MPEG-1/2/4), qui subissent par la suite une transformée permettant un passage dans le domaine fréquentiel puis une quantification permet d'approximer ou de supprimer les hautes fréquences auxquelles l'ceil est moins sensible. Enfin ces données quantifiées sont codées entropiquement. La seconde 20 étape a pour objectif de réduire la redondance temporelle. A cet effet, elle permet de prédire une image à partir d'une ou plusieurs autres images précédemment décodées au sein de la même séquence (prédiction de mouvement). Pour cela, le processus recherche dans ces images références le bloc qui correspond le mieux à la prédiction souhaitée. Seul un vecteur 25 (Vecteur Estimation de Mouvement, également ccnnu sous l'appellation anglo-saxonne Motion Vector), correspondant au déplacement du bloc entre les deux images, ainsi qu'une erreur résiduelle permettant de raffiner le rendu visuel sont conservés. Ces vecteurs ne correspondent toutefois pas nécessairement à un 30 mouvement réel d'un objet dans la séquence vidéo mais peuvent s'apparenter à du bruit. Différentes étapes sont donc nécessaires pour utiliser ces informations afin d'identifier les objets mobiles. Les travaux décrits dans la publication précitée de Leny et al, � De l'estimation de mouvement pour l'analyse temps réel de vidéos dans le domaine compressé �, et dans la demande de brevet US précitée ont permis de délimiter cinq fonctions rendant l'analyse dans le domaine compressé possible, ces fonctions et les moyens de mise en oeuvre leur correspondant étant représentés à la figure 1 : 1) un décodeur basse résolution (LRD û Low-Res Decoder) permet de reconstruire l'intégralité d'une séquence à la résolution du bloc, supprimant à io cette échelle la prédiction de mouvement ; 2) un générateur de vecteurs estimation de mouvement (MEG û Motion Estimation Generator) détermine quant à lui des vecteurs pour l'ensemble des blocs que le codeur a codé en mode "Intra" (au sein d'images Intra ou prédites) ; 15 3) un module de segmentation basse résolution d'objets (LROS û Low-Res Object Segmentation) s'appuie pour sa part sur une estimation du fond dans le domaine compressé grâce aux séquences reconstruites par le LRD et donne donc une première estimation des objets mobiles ; 4) le filtrage d'objets basé sur le mouvement (OMF û Object Motion Filtering) 20 utilise les vecteurs en sortie du MEG pour déterminer les zones mobiles à partir de l'estimation de mouvement; 5) enfin un module de décision coopérative (CD û Cooperative Decision) permet d'établir le résultat final à partir de ces deux segmentations, prenant en compte les spécificités de chaque module selon le type d'image analysée 25 (Intra ou prédite). L'intérêt principal de l'analyse dans le domaine compressé porte sur les temps de calcul et les besoins en mémoire qui sont considérablement réduits par rapport aux outils d'analyse classiques. En s'appuyant sur le travail 30 effectué au moment de la compression vidéo, les temps d'analyse sont aujourd'hui de 10 à 20 fois le temps réel (250 à 500 images traitées par seconde) pour des images 720x576 4:2:0. Un des inconvénients de l'analyse dans le domaine compressé telle que décrite dans les documents précités est que le travail est effectué sur l'équivalent d'images basse résolution en manipulant des blocs composés de groupes de pixels. Il en résulte que l'image est analysée avec moins de précision qu'en mettant en oeuvre les algorithmes usuels utilisés dans le domaine non compressé. De plus, les objets trop petits par rapport au découpage en blocs peuvent passer inaperçus. lo Les résultats obtenus par l'analyse dans le domaine compressé sont illustrés par la figure 2 qui montrent l'identification de zones contenant des objets mobiles. La figure 3 schématise l'extraction de données spécifiques telles que les vecteurs estimation de mouvement et la figure 4 des cartes de confiance basse résolution obtenues correspondant aux contours de l'image. 15 La figure 5 schématise un exemple de réalisation du procédé selon l'invention dans lequel, de la redondance va être ajoutée à des zones choisies dans le flux compressé. Ce procédé est mis en oeuvre au sein d'un émetteur vidéo comprenant au moins un codeur vidéo et une unité de 20 traitement schématisés à la figure 6. Cet émetteur comporte aussi un codeur canal. Les zones de plus grande importance dans le flux seront choisies pour être protégées contre d'éventuelles erreurs de transmission. Le flux vidéo compressé 10 en sortie d'un codeur est transmis à une première étape d'analyse 12 ayant pour fonction d'extraire les données 25 représentatives. Ainsi, le procédé dispose par exemple, d'une séquence de masques comprenant des blocs (régions ayant reçues un label identique) liés aux objets mobiles. Les masques peuvent être des masques binaires. Cette analyse dans le domaine compressé a permis de définir pour chaque image ou pour un groupe d'images défini GoP, d'une part différentes zones 30 Zl i appartenant au premier plan P1 et d'autres zones Z2i appartenant au deuxième plan P2 d'une image vidéo. L'analyse peut être effectuée en mettant en oeuvre le procédé décrit dans la demande de brevet US précitée. Toutefois, tout procédé permettant d'obtenir une sortie de l'étape d'analyse se présentant sous forme de masques par image, ou tout autre format ou paramètres associés à la séquence vidéo compressée analysée pourra aussi être mis en oeuvre en sortie de l'étape d'analyse dans le domaine compressé. A l'issue de l'étape d'analyse, le procédé dispose par exemple de masques binaires 12 pour chaque image (résolution bloc ou macrobloc). Un exemple de convention utilisée peut être la suivante : � 1 � correspond à un bloc de l'image appartenant au premier plan et (�) � correspond à un bloc io de l'image appartenant à l'arrière plan. Dans un cadre d'application plus générale, il sera possible de définir non plus deux zones, mais plusieurs types d'objets qui donneront lieu à une application de la redondance en fonction de leur importance et de leur sensibilité. 15 Selon une variante de mise en oeuvre comme il est indiqué précédemment, il est aussi possible de traiter les boîtes englobantes des objets mobiles. Les coordonnées de boîtes englobantes correspondent aux objets mobiles et sont calculées à l'aide du masque. Ces boîtes peuvent être définies grâce à deux points extrêmes ou bien par un point central associé à la dimension de 20 la boîte. On peut dans ce cas avoir un jeu de coordonnées par image ou un pour l'ensemble de la séquence avec des informations de trajectoire (date et point d'entrée, courbe décrite, date et point de sortie;. Le procédé sélectionne ensuite les blocs ou les zones Z1 i (slices) de l'image comprenant ces objets mobiles (plan P1) sur lesquelles de la redondance va 25 être ajoutée. Une implémentation liée au standard H.264 insère la partie redondante du code uniquement pour les blocs du premier plan P1 dans des unités "NAL" ou couches d'abstraction réseau (plus connue sous la dénomination anglo-saxonne Network Abstraction Layer) indépendantes. Le calcul de 30 redondance 13a se fait en utilisant par exemple un code Reed-Solomon. Pour cet exemple de réalisation, le procédé considère les données utilisateur. Le procédé détermine alors, 13b, des NAI_s de type non défini ou undefined, de type 30 et 31, à l'intérieur desquelles il est possible de transmettre tout type d'information de redondance et les indices des macroblocs pour lesquels une redondance a été calculée. Contrairement aux autres type de NAL, les 30 et 31 ne sont pas réservés que ce soit pour le flux en lui-même ou les protocoles réseaux type RTP-RTSP. Un décodeur standard se contentera de mettre de côté cette information alors qu'un décodeur spécifique, développé pour prendre en compte ces NAL, pourra io choisir d'utiliser ces informations pour détecter et corriger les éventuelles erreurs de transmission. Concrètement, dans cet exemple de mise en oeuvre, l'ajout de redondance se fera via une boucle itérée sur les blocs du masque binaire. Si le bloc est à "0" (arrière-plan), on passe directement au suivant. S'il est à "1" (premier 15 plan), un code Reed-Solomon est utilisé pour déterminer les données de redondance, puis les coordonnées de ce bloc seront ajoutées dans une NAL spécifique suivies des données calculées. II est possible de transmettre une NAL par slice, par image ou par groupe d'images GoP (Group of Pictures) selon les contraintes de l'application. 20 L'étape de transmission 15 tiendra compte du flux compressé qui n'a pas été modifié et du flux comprenant les zones pour lesquelles de la redondance a été ajoutée. Un décodeur classique considérera donc un flux norrnal, sans particularité de robustesse aux erreurs, 16, alors qu'un décodeur adapté utilisera ces 25 nouvelles NAL, 17, contenant notamment l'information redondante pour vérifier l'intégrité du flux reçu et éventuellement le co-riger. La figure 6 est un schéma bloc d'un système selon l'invention comprenant un codeur vidéo 20 adapté pour mettre en oeuvre les étapes décrites avec la 30 figure 5. Sur la figure 6 est représentée uniquement la partie émetteur vidéo 20 pour la transmission d'un flux d'images compressées sur un lien non fiable. L'émetteur comprend un codeur vidéo 21 recevant le flux vidéo F et adapté à déterminer les différentes zones Z1 i appartenant au premier plan P1 et d'autres zones Z2i appartenant au deuxième plan P2 d'une image vidéo, au moins un codeur canal 22 adapté à ajouter de la redondance selon le procédé décrit à la figure 5, une unité de traitement 23 adaptée pour commander chaque codeur canal dans le cas où le dispositif possède plusieurs codeurs et pour déterminer la répartition de la redondance à io ajouter, et enfin un module de communication 24 permettant au système de transmettre à la fois le flux vidéo compressé et les NAL de redondance calculées dans un flux désigné Fc. Sans sortir du cadre de l'invention, d'autres techniques présentant des 15 caractéristiques similaires au codage Reed-Solomon peuvent être utilisées. Ainsi, pour ajouter de la redondance, il est possible de mettre en oeuvre un codage de type particulier tel que les turbo-codes, les codes convolutifs, etc. Le procédé et le système selon l'invention présentent notamment les 20 avantages suivants : le fait d'utiliser l'analyse dans e domaine compressé permet, sans nécessiter de décompresser les flux ou séquences vidéo, de déterminer les zones qu'un utilisateur souhaite protéger contre les erreurs de transmission, la perte éventuelle d'informations sur la partie non mobile ou pratiquement immobile n'ayant pas de conséquence réelle sur la lecture 25 et/ou l'interprétation de la séquence. De fait, le débit de transmission sera inférieur à celui habituellement obtenu lorsque l'on ajoute de la redondance à toutes les images. REVENDICATIONS1 - Procédé de protection d'un flux vidéo compressé, pouvant être au moins décomposé en un premier ensemble composé d'objets d'un premier type et d'un second ensemble composé d'objets d'un second type, contre les erreurs lors de la transmission de ce flux sur un lien non fiable, caractérisé en ce qu'il comporte au moins les étapes suivantes : a) analyser le flux dans le domaine compressé (11, 12) afin de définir différentes zones de l'image dans lesquelles de la redondance va être io ajoutée, b) ajouter de la redondance (13a, 13b, 14) aux objets desdites zones déterminées à l'étape précédente, a) c) transmettre l'ensemble des zones formant l'image. 15 2 ù Procédé de protection d'un flux vidéo selon la revendication 1 pour un flux compressé avec un standard H.264 caractérisé en ce qu'il comporte au cours de l'étape d'ajout de redondance au moins les étapes suivantes : - analyser le flux vidéo dans le domaine compressé (2), - définir (2, 3) au moins un premier groupe d'objet contenant des 20 zones d'objets ou des objets à protéger dans ledit flux, - pour une image donnée ou un groupe d'images donné, déterminer une unité de transport réseau de type NAL non défini ou � undefined NAL �, qui véhiculera l'information de redondance, 25 - une image étant composée de plusieurs blocs, analyser les blocs de ladite image ou du groupe d'image en cours, i. si le bloc de l'image ou du groupe d'images appartient au premier groupe, alors déterminer les données de redondance et les ajouter accompagnées des 30 coordonnées du bloc de l'image dans l'unité NAL déterminée à l'étape précédente, 5 io ii. sinon ne rien faire, - transmettre la partie du flux compressé comprenant l'ensemble de l'information d'origine sans robustesse particulière, ainsi que les nouvelles unités NAL transportant la redondance correspondant au premier groupe d'objet. 3 ù Procédé selon la revendication 2 caractérisé en ce que le premier type d'objet correspond à un premier plan comprenant des objets mobiles dans une image. 4 ù Procédé selon la revendication 2 caractérisé en ce qu'il utilise pour calculer la redondance un code Reed Solomon. ù Procédé selon la revendication 2 ou 3 caractérisé en ce qu'il utilise une 15 fonction adaptée à déterminer un masque pour l'identification des blocs d'une image ou de groupe d'images comprenant un ou plusieurs objets mobiles définis comme une ou plusieurs régions du masque et les autres blocs appartenant à l'arrière plan suite à une analyse dans le domaine compressé. 20 6 ù Procédé selon la revendication 5 caractérisé en ce qu'il utilise une fonction déterminant les coordonnées de boîtes englobantes, correspondant aux objets appartenant au premier plan dans une image, les coordonnées desdites boîtes englobantes étant déterminées à partir du masque obtenu 25 suite à l'analyse dans le domaine compressé 7 ù Système permettant de protéger une séquence vidéo destinée à être transmise sur un lien de transmission peu fiable caractérisé en ce qu'il comporte au moins un codeur vidéo adapté à exécuter les étapes du 30 procédé selon l'une des revendications 1 à 6 comprenant un émetteur vidéo (24) et une unité de traitement associée (22, 23).