Brevet FR2873246A1 — publié le 20060120

L'invention concerne un procédé d'estimation de mouvement pour le codage vidéo d'une séquence d'image par analyse temporelle hiérarchique exploitant le filtrage temporel compensé en mouvement. Le domaine est celui de la compression/décompression vidéo basée sur des schémas à échelonnabilité spatiale et temporelle dits aussi scalables . II s'agit par exemple d'un codage en ondelettes t+2D comportant un filtrage temporel compensé en mouvement. Dans les standards de codage dits hybrides, tels que MPEG-1, MPEG-2, MPEG4, h264, comme dans la plupart des schémas de codage sous-bande 2D+t, la première étape de la chaîne de codage consiste à tirer parti de la redondance temporelle entre images successives, avant d'exploiter la redondance spatiale au sein d'une image. La figure 1 représente un schéma d'un codeur vidéo selon l'art antérieur. Le signal vidéo est transmis à un circuit d'analyse temporelle 10. Un circuit d'estimation de mouvement 11 est relié à ce premier circuit pour estimer le mouvement entre les images reçues par le codeur. Les informations de mouvement sont transmises au circuit 10 et à un circuit 15 de codage du champs de vecteurs mouvement. Une sortie du circuit 10 est transmise à un circuit d'analyse spatiale 12 qui extrait, de la texture, les coefficients de fréquence de l'image. Ces coefficients sont ensuite quantifiés puis codés par un codage entropique, circuit 13. Ces informations codées et celles de mouvement sont transmises à un circuit de mise en paquets ou paquetiseur 14 qui envoie les données vidéo sous forme de paquets vidéo pour constituer le flux de données vidéo. Le circuit d'analyse temporelle 10 réalise un filtrage temporel compensé en mouvement. Le circuit d'analyse spatiale 12 réalise une décomposition en ondelettes. Le codage entropique du circuit 13 peut être un codage de type VLC, acronyme de l'anglais Variable Length Coding, ou un codage de type arithmétique. Le circuit de paquetisation a pour fonction de découper l'information de texture et de mouvement provenant respectivement du circuit de codage entropique et du circuit de codage des champs de mouvement en sousensembles cohérents selon leur fréquence spatiale, temporelle, et leur importance, par exemple leur poids dans une approche de codage par plans de bits. Ainsi le flux binaire obtenu est échelonnable ou "scalable" indépendamment en résolution, en fréquence trame et en fidélité. La figure 2 représente de manière synthétique les opérations de filtrage temporel avec compensation en mouvement, aussi connu sous l'acronyme MCTF, de l'appellation anglaise Motion Compensated Temporal Filtering, réalisées par le circuit d'analyse temporelle 10. Dans cet exemple, une décomposition à 4 niveaux est effectuée pour des groupes d'images, aussi appelés GOP ou GOF selon l'acronyme des expressions anglaises Group Of Picture et Group Of Frames, comportant 16 images représentées en traits gras. Le filtrage haute fréquence et basse fréquence, reconduit pour chaque niveau de décomposition, produit respectivement, au premier niveau de décomposition temporelle, 8 images de fréquence temporelle haute (t-H) et 8 images de fréquence temporelle basse (t-L). Les images de fréquence temporelle basse sont ensuite décomposées à nouveau selon le même procédé. Le filtrage passe-haut de ces images fournit, au niveau de décomposition temporelle supérieur, 4 images de fréquence temporelle haute t-LH et le filtrage passe bas fournit 4 nouvelles images de fréquence temporelle basse t-LL. Et ainsi pour les autres niveaux. Cette décomposition permet donc une nouvelle répartition de l'énergie en générant une image utile de fréquence temporelle basse t-LLLL, qui représente une moyenne de l'ensemble du groupe d'images et dans laquelle est concentrée l'énergie, et quatre niveaux d'images de fréquence temporelle haute de faible énergie, soit 5 bandes de fréquence. Ce sont ces 16 images qui sont transmises au circuit d'analyse spatiale pour une décomposition spatiale en sous-bandes. Au lieu d'utiliser un filtrage complexe pour le codage en ondelettes, exploitant un filtre linéaire de longueur importante, le filtrage serait effectué ici sur un groupe de 16 images, un filtrage appelé lifting est mis en oeuvre. Ce procédé de filtrage consiste, de manière connue, à factoriser le filtre en exploitant des filtres de longueur limitée, par exemple un filtre de type 5/3 si l'on choisit de filtrer les échantillons à l'aide d'une fenêtre glissante impliquant 5 échantillons successifs. Comme on le verra par la suite, par exemple sur la figure 7a, un premier filtrage sur 5 images basse fréquence donne deux images haute fréquence du niveau temporel supérieur et un filtrage de ces 2 images avec l'image centrale du groupe de 5 images donne une image basse fréquence de ce niveau temporel supérieur. L'estimation de mouvement pour l'analyse temporelle compensée en mouvement peut intégrer un contrôle du coût du mouvement selon un compromis débit-distorsion. Les champs de mouvement estimés correspondent à la résolution de la source. L'étape de compensation en mouvement du codeur, qu'elle soit faite par filtrage ou prédiction est donc exécutée sur des images à pleine résolution tandis qu'au décodeur, l'étape de compensation de mouvement peut être exécutée sur des images de résolution moindre, avec des champs de mouvement remis à l'échelle. La scalabilité permet de générer un train binaire duquel on peut extraire des sous-trains binaires adaptés à des ensembles donnés tels que débit, résolution spatiale, fréquence temporelle... En particulier la scalabilité spatiale permet, à partir d'un seul encodage effectué à une résolution spatiale donnée, de pouvoir extraire du train binaire résultant des sous-trains binaires correspondant à des résolutions spatiales inférieures. Par exemple, si le train binaire scalable originel a été généré à partir d'une séquence vidéo de résolution 720*480 pixels, il est possible, après avoir extrait de ce train binaire les données adéquates, d'obtenir un sous-train binaire, par exemple de résolution 360*240 pixels, lui-même scalable. Le décodage de ce sous-train binaire générera une vidéo de taille 360*240 pixels. Dans l'art antérieur, l'encodeur utilise le mouvement le plus fin, c'est à dire celui obtenu à la résolution spatiale de l'image la plus élevée, pour effectuer le codage. Au décodage, ce mouvement peut s'avérer trop coûteux lorsqu'on opère à des résolutions spatiales ou débits réduits. Il est donc nécessaire de générer au codeur différentes versions du mouvement, correspondant à différentes résolutions spatiales et/ou débits et permettant au décodage de maintenir un compromis mouvement-texture adapté. Bien entendu, ces différentes versions doivent être codées, si possible en utilisant une représentation scalable. Le problème de l'estimation et du codage de champs de mouvement adaptés à différentes résolutions spatiales et débits a été récemment abordé dans plusieurs travaux. La solution la plus générique a été proposée par J.Xu, R.Xiong, B.Feng, G.Sullivan, M.-C.Lee, F.Wu, S.Li, dans le document intitulé "3D subband video coding using Barbell lifting", ISO/IEC JTC 1/SC 291WG 11 M10569/S05, Munich, March 2004. Pour obtenir un compromis débit-distorsion optimisé entre mouvement et texture, l'encodeur utilise le mouvement le plus fin pour effectuer l'analyse temporelle compensée en mouvement, alors que le décodeur peut recevoir et utiliser un mouvement plus grossier pour la synthèse. Le principe est illustré sur la figure 3, dans le cas de 3 niveaux de résolution spatiale. La figure 3 décrit le processus d'estimation de mouvement correspondant au circuit référencé 11, pour un niveau d'analyse ou décomposition temporelle donné. Le circuit d'analyse temporelle 10 qui génère les images basse fréquence pleine résolution des différents niveaux temporels, transmet ces images au circuit d'estimation de mouvement 11. Pour le niveau de décomposition temporelle considéré, les images, appelées Io;, le premier indice r=0 correspondant au niveau de résolution spatiale, la valeur 0 étant le niveau de résolution le plus élevé, et le deuxième indice i correspondant au rang de l'image dans la succession d'images basse fréquence, sont transmises à un module de génération de pyramide multirésolution du circuit d'estimation de mouvement, non représenté sur la figure, pour fournir des images de résolution moindre I1,i et I2,;. Ces images de fréquence basse, correspondant à chacun des niveaux de résolution spatiale relatifs à l'échelonnabilité, sont transmises respectivement à des modules d'estimation de mouvement 30, 31 et 32 faisant partie du circuit d'estimation de mouvement 11. Le module d'estimation de mouvement 30 calcule les champs de mouvement MF2,; à partir des images de plus faible résolution 12,; provenant du circuit de génération de pyramides multirésolution. Le module d'estimation de mouvement 31 calcule les champs de mouvement MF1,; à partir des images de moyenne résolution I1,; et éventuellement de vecteurs mouvement provenant du circuit 30. Ces vecteurs mouvement sont exploités pour l'initialisation des algorithmes de calcul, par exemple comme prédicteurs. Le module d'estimation de mouvement 32 calcule les champs de mouvement MF0,; à partir des images de plus haute résolution 10,; provenant du circuit de génération de pyramides multirésolution et éventuellement de vecteurs mouvement provenant du circuit 31. Le champ de vecteur MF0,; est transmis au circuit d'analyse temporelle 10 qui effectue donc l'analyse temporelle compensée en mouvement avec le mouvement le plus fin. Les champs de mouvement MF0,;, MF1,; et MF2,; sont transmis au circuit de codage de champ de mouvement 15. De manière générale, différentes estimations de mouvement sont effectuées, à partir des images source lr;, i=1...N, aux différentes résolutions r prises en compte. Les différents champs de mouvement aux différentes résolutions sont ensuite codés de façon scalable. Seule l'estimation la plus fine, à la plus haute résolution, est utilisée pour effectuer l'analyse temporelle compensée en mouvement. L'encodeur utilise le mouvement le plus fin pour effectuer l'analyse temporelle compensée en mouvement. Les coefficients ondelettes résultant sont donc optimaux pour ce champ de mouvement. De façon évidente, ils ne le sont pas pour d'autres résolutions spatiales et d'autres champs de mouvement. L'invention a pour but de pallier les inconvénients précités. Un des objets de l'invention est un procédé d'estimation du mouvement pour le codage d'une séquence d'images avec échelonnabilité spatiale et temporelle, comprenant une étape d'analyse temporelle compensée en mouvement à partir d'une estimation de mouvement pour fournir des images à différents niveaux de décomposition temporels et, pour une image d'un niveau de décomposition temporel donné, une étape d'analyse spatiale par transformée ondelettes de cette image pour fournir des coefficients ondelette correspondant à des sous-bandes haute fréquence et basse fréquence, l'estimation de mouvement étant effectuée, pour un niveau temporel donné, pour fournir des champs de mouvement échelonnables pour différents niveaux de résolution spatiale, caractérisé en ce qu'il met en oeuvre une étape d'optimisation pour l'estimation des champs de mouvement échelonnables, comportant une étape de comparaison de l'image source d'une résolution spatiale et d'un niveau temporel donné à une image reconstruite obtenue par synthèse temporelle compensée en mouvement des sous-bandes basse fréquence relatives au niveau temporel supérieur et correspondant à la résolution spatiale donnée (Wk,I). Selon une mise en oeuvre particulière, le procédé est caractérisé en ce qu'une image sous-bande basse fréquence spatiale est obtenue par synthèse spatiale à partir des coefficients ondelettes Wo,; calculés lors de l'étape d'analyse spatiale. Selon une mise en oeuvre particulière, le procédé est caractérisé en ce les coefficients ondelettes sont mémorisés lors d'étapes intermédiaires d'analyse spatiale et en ce que l'image sous-bande basse fréquence est obtenue directement à partir des coefficients ondelette mémorisés. Selon une mise en oeuvre particulière, le procédé est caractérisé en ce que, pour un niveau temporel donné, l'estimation de mouvement est effectuée pour différents niveaux de résolution de l'image source lo,; pour fournir un ensemble de champs de vecteurs mouvement et en ce que l'optimisation de mouvement consiste à sélectionner des vecteurs mouvement au moins parmi cet ensemble. Selon une mise en oeuvre particulière, le procédé est caractérisé 5 en ce que l'optimisation du mouvement est effectuée pour chacune des résolutions spatiales de l'échelonnabilité spatiale. Selon une mise en oeuvre particulière, le procédé est caractérisé en ce que l'étape de comparaison consiste en un calcul d'un critère débitdistorsion intégrant le coût de codage du champ de mouvement et la différence entre l'image source et l'image reconstruite. Selon une mise en oeuvre particulière, le procédé est caractérisé en ce que la synthèse temporelle compensée en mouvement est effectuée à partir de vecteurs mouvement sélectionnés parmi des vecteurs mouvement candidats affectés par bloc d'image et en ce que la sélection est fonction du niveau de corrélation entre le bloc reconstruit par synthèse temporelle à partir du vecteur candidat et le bloc correspondant de l'image source. L'étape d'optimisation du mouvement peut consister en un procédé itératif de calcul du champ de mouvement fonction du critère débit-distorsion. L'invention consiste aussi en un procédé de codage de séquence d'images avec échelonnabilité temporelle et spatiale, par analyse temporelle compensée en mouvement et analyse spatiale, caractérisé en ce qu'il met en oeuvre le procédé d'estimation de mouvement précédemment décrit. L'invention concerne également un dispositif de codage de séquence d'images avec échelonnabilité temporelle et spatiale, comportant un circuit d'analyse temporelle compensée en mouvement et un circuit d'analyse spatiale des images provenant du circuit d'analyse temporelle, caractérisé en ce qu'il comporte également un circuit de synthèse spatiale pour reconstruire des images à différents niveaux temporels et un circuit d'optimisation de mouvement réalisant une synthèse temporelle des images provenant du circuit de synthèse spatiale pour fournir des images reconstruites correspondant aux niveaux de résolution spatiale relatifs à l'échelonnabilité et pour effectuer, pour un niveau temporel, une comparaison entre une image source d'un niveau de résolution spatiale donné et une image reconstruite relative à ce niveau. L'idée de l'invention est d'optimiser le mouvement à toute résolution spatiale, en prenant en compte le mouvement utilisé à la résolution la plus haute. L'approche proposée consiste donc, à partir des coefficients ondelettes résultant de l'analyse temporelle puis spatiale, à rechercher pour chaque résolution spatiale et débit le mouvement le meilleur. Ce mouvement sera celui qui, au décodeur, fournira les images de la meilleure qualité possible. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante donnée à titre d'exemple non limitatif, et faite en regard des figures annexées qui représentent: - la figure 1, un schéma de compression échelonnable , - la figure 2, un filtrage temporel sur un GOP de 16 images, - la figure 3, un circuit d'estimation de mouvement selon l'art antérieur, l'invention, image, - la figure 4, un circuit d'estimation de mouvement selon - la figure 5, différents niveaux de décomposition spatiale d'une - la figure 6, une illustration d'un champ de mouvement, - la figure 7a, un exemple d'analyse temporelle compensée en mouvement dans le cas du filtre 5/3, - la figure 7b, un exemple de synthèse temporelle compensée en 20 mouvement dans le cas du filtre 5/3. - la figure 8a, la génération des images impaires, - la figure 8b, la génération de l'image paire, - la figure 9, un organigramme de l'algorithme d'optimisation des champs de mouvement. La figure 4 décrit le processus d'estimation de mouvement selon l'invention pour un niveau d'analyse temporelle donné. Selon un exemple d'organisation et en se référant à la figure 1, les modules 41 et 42 sont respectivement partie des circuits d'analyse temporelle 10 et d'analyse spatiale 12. Les autres circuits et modules décrits appartiennent au circuit d'estimation de mouvement 11. Ainsi, si l'on se réfère à la figure 1, une nouvelle liaison existe entre le circuit d'analyse spatiale 12 et le circuit d'estimation de mouvement 11, comme indiqué plus loin. Le module d'estimation de mouvement 40 reçoit du circuit 35 d'analyse temporelle 10 les images lo,i de fréquence basse correspondant à un niveau d'analyse temporelle donné et, pour ce niveau temporel, au niveau de résolution spatiale le plus élevé. Le premier indice r=0 correspond à la résolution spatiale et le deuxième indice i au rang de l'image. Ce module 40 calcule les champs de mouvement MF0,; à partir de ces images de plus haute résolution lo,i. Le champ de vecteur MF0,; est transmis au circuit d'analyse temporelle 10, plus précisément au module d'analyse temporelle 41. Ce module effectue une analyse temporelle compensée en mouvement avec le mouvement le plus fin. Les images générées par ce module, Fo,;, sont transmises au circuit d'analyse spatiale 12, plus précisément au module d'analyse spatiale 42. Ces images Fo,; sont les images haute fréquence et basse fréquence du niveau d'analyse temporelle supérieur, c'est à dire succédant à celui correspondant aux images basse fréquence d'entrée lo,; Le module de génération de la pyramide multirésolution du circuit d'estimation de mouvement 11, non représenté sur la figure, fournit les autres images 11,j et 12,; correspondant respectivement à la résolution moyenne et la résolution la plus faible des images de fréquence basse du niveau temporel donné. Ces images sont transmises respectivement à un premier module d'optimisation de mouvement 46 et à un deuxième module d'optimisation de mouvement 44 de ce circuit d'estimation de mouvement. Le module d'analyse spatiale 42 effectue une analyse spatiale des images Fo,; en donnant S niveaux de décomposition spatiale pour chacune des images Fo,;. La décomposition spatiale ondelettes fournit ainsi des images Wk,; de coefficients ondelettes spatio-temporels à différents niveaux de décomposition. Wk,j représente l'ensemble des coefficients ondelette nécessaires à la reconstruction de l'image de résolution spatiale r de niveau k. La figure 5 représente les différents niveaux de décomposition spatiale d'une image Fo,; pour S=4. L'image référencée 50 correspond au format ou niveau de résolution le plus élevé (k=0), 720 pixels par 576 lignes dans notre exemple. L'image référencée 51 représente 4 niveaux de décomposition correspondant aux 3 niveaux de résolution de la pyramide multirésolution. Le premier niveau de décomposition donne 4 sous-bandes qui sont représentés par les 4 rectangles identiques 52, le rectangle en haut à gauche correspondant à la sous-bande basse fréquence et à l'image de niveau de résolution k=1. La décomposition est réitérée sur cette image sous-bande ou 35 sous-image basse fréquence pour donner 4 nouveaux rectangles identiques 53 soit 7 sous-bandes au total, deuxième niveau de décomposition. La décomposition est réitérée sur la nouvelle image sous-bande ou sousimage basse fréquence correspondant au rectangle hachuré et au niveau de résolution k=2 pour donner 10 sous-bandes, troisième niveau de décomposition puis sur la nouvelle image basse fréquence correspondant au rectangle grisé 54 pour donner le quatrième niveau de décomposition constitué de 13 sous-bandes. Le niveau de résolution le plus faible 12,;, référencé 55 ou 53, a un format de 180 pixels sur 144 lignes et correspond aux coefficients ondelette de l'image sous-bande basse fréquence hachurée, W2,;. Le niveau de résolution intermédiaire I1,i, référencé 52, a un format de 360 pixels sur 288 lignes et correspond aux coefficients ondelette de l'image sous-bande basse fréquence représentée par un des rectangles 52, Wl,;. En sortie du module d'analyse spatiale est disponible l'ensemble des coefficients ondelette correspondant à ces décompositions, pour chacune des images i de fréquence temporelle basse et haute du niveau temporel considéré. Pour une image i, les coefficients correspondant aux deux derniers niveaux de décomposition spatiale, W21;, sont récupérés par le module de synthèse spatiale 43 qui reconstruit par synthèse spatiale l'image de plus faible résolution F2, ;. Cette image est transmise au module de synthèse spatiale 45 qui reçoit également, du module d'analyse spatiale, les coefficients sous-bande haute fréquence relatifs au deuxième niveau de décomposition parmi les 4 niveaux, et qui reconstruit par synthèse spatiale l'image de moyenne résolution FI,;. II est bien sûr envisageable de transmettre non pas l'image F2,; mais l'ensemble des coefficients correspondant aux trois derniers niveaux de décomposition, W1,;, au circuit de synthèse spatiale 45, pour effectuer cette synthèse spatiale. Ces images reconstruites F21; et Fl,; sont respectivement transmises à un premier module d'optimisation de mouvement 44 et un deuxième module d'optimisation de mouvement 46 qui reçoivent également en entrée, respectivement les images source 12et Il, ;. Chacun des modules d'optimisation de mouvement comprend un module de synthèse temporelle. Ce module récupère l'ensemble des images basse (L) et haute (H) fréquence d'un niveau temporel donné et obtenues par synthèse spatiale à la résolution spatiale considérée pour reconstruire, par synthèse temporelle, les images basse fréquence (I) du niveau temporel inférieur comme indiqué ci-dessous en référence à la figure 7b. Ce sont ces images reconstruites (Î) au niveau de décomposition spatiale correspondant aux résolutions des images sources 11,; ou 12,;, pour le niveau temporel considéré, qui sont comparées aux images source 11,; et 12,; du même niveau temporel. Les champs de mouvement estimés à la résolution la plus grande peuvent aussi être utilisés. Plusieurs champs de mouvement, plus ou moins fins peuvent être générés permettant ainsi d'adapter au décodage le coût du mouvement en fonction du débit. Ces différents champs peuvent être considérés comme des candidats possibles dans le processus d'optimisation. Ce processus est décrit plus en détail par la suite. Les champs de vecteurs optimisés sont ensuite transmis au circuit de codage de champ de mouvement 15. En raisonnant de manière plus générale, les différentes étapes, pour chaque résolution intermédiaire r, sont les suivantes: - pour chaque image, récupération des coefficients spatiaux haute fréquence de la résolution spatiale r, c'est à dire les coefficients hautes fréquences de Wr,i, - synthèse spatiale à partir de ces coefficients ondelettes et des images synthétisées à la résolution inférieure r+1, Fr+1,i permettant d'obtenir les images Fr,;, i=1... N, de la résolution r. - optimisation de mouvement avec les images source Ir,i, i=1...N, et les images Fr,i, i=1...N. Cette étape peut générer plusieurs champs de mouvement, plus ou moins fins. Plutôt de d'effectuer une analyse spatiale puis une synthèse spatiale pour reconstruire les images, il est possible de mémoriser, dans le circuit d'analyse spatiale, les coefficients ondelettes relatifs aux sous- bandes basse fréquence de chaque étape de décomposition, évitant ainsi la synthèse spatiale pour reconstruire ces images sous-bande basse. Le module d'optimisation de mouvement vise à calculer un ou plusieurs champs de mouvement à la résolution r considérée, en utilisant en entrée les images source Ir;, i=1...N, et les images Fr,;, i=l...N. Les champs de mouvement estimés à la résolution la plus grande peuvent aussi être utilisés. Le ou les champs de mouvement visent à réduire la distorsion entre les images source et les images reconstruites après synthèse temporelle compensée avec mouvement estimé. Avant de décrire le procédé d'optimisation du mouvement proprement dit, précisons les phases d'analyse et synthèse temporelles compensées en mouvement. - Analyse temporelle compensée en mouvement Pour simplifier les notations, on note Irk la kèt image de la vidéo à la résolution r considérée. MC'1_ 12 (F) correspond à la compensation de mouvement de l'image F, en utilisant le mouvement A%IF,i ,, estimé entre les images 1, et l2. La figure 6 représente de manière symbolique un tel champ de mouvement. Dans un souci de simplification, on se restreint à positionner les images haute fréquence résultant de l'analyse sur des indices pairs, et les images basse fréquence résultant de l'analyse sur des indices impairs. Les approches classiquement utilisées pour effectuer une analyse temporelle compensée en mouvement suivent les étapes suivantes, qui s'imbriquent: - estimation et codage des champs de mouvement. Le codage peut être échelonnable, permettant ainsi au décodage d'assurer un meilleur compromis débit-distorsion entre la texture et le mouvement. - génération des images haute fréquence temporelle H0,2m à partir des images lo,2m, et des images 10,2k+1, compensées en mouvement avec les champs de mouvement MF10 21+110 2 2k+1 désigne ici l'indice des images voisines de l'image 10,2m, qui servent à générer l'image Ho,2m. Seules les images voisines de 10,2m d'indice impair servent à générer les images haute fréquence. - génération des images basse fréquence temporelle Lo,2m+1 à partir des images lo,2m+,, et des images H0221, compensées en mouvement avec les champs de mouvement MF10 2/_,0.2 +I. 21 désigne ici l'indice des images haute fréquence voisines de l'image 10,2m+1, qui servent à générer l'image LO,2m+1. Seules les images voisines de 10,2m+1 d'indice pair servent à générer les images basse fréquence. Les équations suivantes décrivent la génération des images H0,2m et L0,2m+ ,: L0,2///+I =fÉ10.2m+1+f21.UC10.21-->10,2m+I (11021) La sommation est effectuée sur l'indice k qui correspond à la longueur du filtre utilisé. k=m-1 et 1=m+ldans le cas d'un filtre de Haar. En pratique dans les approches classiques, pour limiter le coût de codage du mouvement, tous les champs de mouvement ne sont pas estimés et 35 codés. En général, les champs MF10 21+1 _,111 2 utilisés pour générer les images f10,2m =a.10,2m - 2k+1.MC10._2i; i-->1o,2 r ('o21,+I H sont estimés et codés; les champs MF1) ,111) , 1 utilisés pour générer les images L ne sont pas estimés et codés, mais sont déduits des champs MM10 2i, ,1 10) . Cependant, l'approche inverse peut aussi être envisagée. Donnons un exemple dans le cas du filtrage de type 5/3, en s'appuyant sur la figure 7a. On génère d'abord les images H en utilisant les champs de mouvement estimés entre les images impaires et leurs deux voisines paires. Par exemple, sur la figure 7a, les champs MF10 2 111 1 X10 référencé 70 et MF1021 +I->10 2 référencé 71 sont utilisés pour calculer l'image H0,2m. Les images L sont ensuite calculées en utilisant les champs de mouvement déduits des champs précédents. Par exemple, pour générer l'image L0,2m+1, le champ MF10 21 +1->10,, , référencé 72 est déduit du champ MF10 2,11) 2,n,1 référencé 71, par inversion. Les lignes en pointillé indiquent les champs de mouvement déduits. Cela correspond aux équations suivantes, les compensations de mouvement faites avec des champs déduits étant intitulées IMC H0.2m = 10,21,1 2 MC10,2m-I ->10,2n, (10.2,,, 1) 72 ''\'1C 10.2m+I >1U.2n1 ( 10.2111+1 L0, 2m+1 = 10.2,,,+I + 1MC10,2m10,2m+I 4 4 (HO,21n) + IAiC 10.2nr.-2,10.2,n+I (H0,2n,+2) - Synthèse temporelle compensée en mouvement 20 La synthèse est effectuée à toute résolution r à partir des images décodées L,. ,k+I et 14,2/ . La procédure classique repose sur les étapes suivantes, qui s'imbriquent aussi: - décodage des champs de mouvement. Les champs de mouvement décodés ont été obtenus après décodage de l'information de mouvement, et éventuellement, si nécessaire, après conversion à la résolution. C'est par exemple le cas lorsque le mouvement n'est pas codé de façon échelonnable en résolution. - génération des images 11._2,,a+1 à partir des images L 217+I, des images 11,.,, et des champs de mouvement 11/1F1. 2/-1,.2,,,+1 - génération des images Î,, 2,,, à partir des images H, des images Î,.,1+ I déjà reconstruites et des champs de mouvement _1/IF1 21+I->1 2 Les équations suivantes résument ces traitements: Lr,2m+I )621.MC1,. 2/---> 1r.2,,,+I (r. 2 Ir,2rn [r,2rn +a21c+I ' Ir,2k+I1r,2m (I,.2k+l)] A nouveau, on notera que, dans les approches classiques, les champs de mouvement MFI / I 2,l ne sont pas directement disponibles mais déduits des champs MFIr 1 1 2 décodés. L'approche alternative peut aussi être envisagée. Prenons à nouveau comme exemple le cas du filtrage de type 5/3, en s'appuyant sur la figure 7b. Pour la synthèse à la résolution r: - on reconstruit les images Î,. 2,,,+l à partir de Lr;2r +1, de Hr2,,, compensée par le champ MFlr,2m lr,2m+I référencé 77, de H,,2,,,+2 compensée par le champ MFir,2n,+2_,ir,2m d référencé 78. - ensuite, on reconstruit les images à partir de Hr,2m+2, de Î., compensée par le champ MF, r 2m+1*1 2, ,2 référencé 75 et de Ir..2,22+ 3 compensée par le champ MFIr 2m+_,1r.2 ,2 référencé 76. Les lignes en pointillé indiquent les champs de mouvement déduits. Cela correspond aux équations suivantes, les compensations de mouvement faites avec des champs déduits étant intitulées IMC: I r,2nt+I Lr,2m+I IMC Ir,2m1r,2nr+I (H,-,2n, ) I1ü1C/r 2 r-2 1,.,2m+l (I1 r,2m+2) Ir.2)71+ 2 = Hr,2nt+2 + 11IC1r 2 r+I >1,,2m+2 (I,',2m+I) + !1IClr?m+3 r,2m+2 4, 2117+3) Décrivons maintenant le procédé d'optimisation de mouvement. A toute résolution r, le but de l'optimisation du mouvement est de modifier les champs de mouvement lFlr 1. >Ir. , et par conséquent 25;MFIr 1 1,. 2m+I, pour améliorer la synthèse, c'est-à-dire améliorer les images Î.1. On dispose des images source I,. I, déduites des images source à la résolution d'origine par filtrage passe-bas puis sous-échantillonnage par un facteur 2. On recherche en fait des champs de mouvement assurant le meilleur compromis débit-distorsion, en utilisant par exemple la fonction suivante pour le critère débit-distorsion: ('(MFI,...,MF,,)=D(I,../,Î,..1)+2c s.R(MFI,...,MF,,) où MF, ,..., MF,, sont tous les champs de mouvement nécessaires à la reconstruction de Î,. , D(A,B) une mesure de la distorsion entre les images A et B, R(MF],...,MF/,) une mesure du coût de codage des champs de mouvement, Acost un paramètre lagrangien prédéterminé. Le calcul de la distorsion D correspond par exemple à la somme des valeurs absolues des différences entre les valeurs de luminance des pixels des images I et Î. p correspond au numéro du dernier champ utile à la construction de l'image Îr,1. Par exemple, pour l'image Îr,2m+2, p=2 et MF2= AIF; . Pratiquement, l'approche suivante peut être mise en oeuvre: - génération des champs de mouvement initiaux à la résolution r; une solution peut être de déduire directement ces champs à partir des champs de mouvement à la résolution d'origine utilisés pour l'analyse; une autre solution est de faire une estimation de mouvement directement à la résolution r, - synthèse des images paires et impaires avec les champs de mouvement initiaux à la résolution r et les images des différentes fréquences temporelles L,. i et à la résolution r; cette synthèse fournit des images reconstruites Îr,i. - amélioration des champs de mouvement en cherchant à réduire simultanément les critères débit-distorsion des images paires et impaires concernées par ces champs de mouvement. Par exemple, on commence par déterminer des champs de mouvement optimaux permettant de générer des images paires reconstruites les plus proches possibles des images paires d'origine. Les champs sont optimisés par exemple à l'aide d'une approche de type mise en correspondance de blocs , dénommée block matching en anglais et détaillée plus loin. Ensuite, les images impaires sont reconstruites en utilisant les images paires reconstruites et les champs de mouvement inversés. Au final, le critère débit-distorsion total est évalué sur l'ensemble des images reconstruites et des champs de mouvement utilisés pour les reconstruire. Reprenons l'exemple du filtrage de type 5/3. On voit dans les équations de la synthèse du filtre 5/3 que la première phase de calcul des images impaires implique la compensation de mouvement à partir de champs de mouvement déduits IMC. Les champs réels servent ensuite à générer les images paires. Il y a donc une forte imbrication des deux processus, et modifier un champ de vecteurs a un impact à la fois sur la reconstruction des images paires et impaires auxquelles il est lié. I rÉ,2 1+l = Lr.2, +i - 4 IMC1,.,2r -r.2 r+l (HrÉ,2,r,) - 1 IMCIr,2, +21. , (HrÉ2 ,+2) 4 +i Ir,2 ,+2 = H,É,2 1+2 + MC1r,2 r+11r,2, +z (I,,2 r+l)+ 1:SIC 1..2 ,-- ->rr ? r+2 (1,,2,n+3) - La figure 9 décrit un algorithme, basé sur une approche itérative. Une première étape 90 initialise Cmin à la valeur Cm;,7 = ci et mémorise les champs de vecteurs MF1 2 ri,1 rF 2 et MF1, r+3 1 r,2, +2 initiaux. Ces champs sont soit déduits du champ le plus fin estimé à pleine résolution, soit issus d'une estimation directe à la résolution r. L'étape suivante 91 génère les images impaires Î,.2 ,+1 et 11..2177+3 à partir des champs déduit, puis l'étape 92 génère l'image paire Î,.2,,,}2 à partir des champs MF1r,2, +I *1r,2, +2 et MF comme indiqué respectivement sur les figures 8a et 8b. L'étape suivante 93 effectue un calcul du critère total pour les champs MF 1r,2nr+I -41r,2m+2 et MF1r.2m+ 3 >1r.2m+2 C= C(MF 1r.2nr+I >1r,2m+2' HF1r.2m+3 >1r,2m+2 D(Ir,2 r+l '4,2111+1) + D(Ir72m+3 Ir,2m+3) + D(Ir72m+2, Ir-2 r+2) + 2Cr,St.R(MF1 r,2m+1 -1r,2 r+2 MF1r,2nr+3 >1r.2nr+2) Si C 1r.2 r+z et Il7F1r 2 r+31 2 +2 de manière à minimiser le critère C. ( .' = D(IrÉ.2m+2Ir,2m+2)+ÂcoSt.R(MF1 2 X1.2 1IF1 2 X1.2) Le processus d 'optimisation peut consister en une approche de type block matching . Considérons par exemple l'optimisation des champs MFIr.2m+1_*1r,2 +2 et MFIr,2, +3-Ir.2ni+2 pour synthétiser l'image 1,.,2n,+2 à partir des images Î,.2,n+I et Î,.,2,,,+3 préalablement calculées. On commence d'abord 30 par optimiser le champ MFIr,2m+1_>Ir,2n,i_2. Dans une telle approche, le champ est structuré en blocs, avec un vecteur mouvement affecté à un bloc de l'image. Le traitement consiste à examiner les blocs de façon causale, du haut vers le bas de l'image, de gauche à droite. Pour un bloc donné et pour le vecteur mouvement associé,on calcule le bloc reconstruit selon la formule: r,2m+2 = H r.2m+2 + - MC Ir,2m+I >lr, 2m+2 (l r,2m+l) + MC 1,.2,,, ;lr.2nr..2 (1 r,2m+3 Ce bloc est comparé à l'image d'origine 1,. 2,n+2, pour obtenir une mesure de distorsion, par exemple par soustraction pixel à pixel des luminances de chaque bloc. On y ajoute une fonction du coût de codage du vecteur mouvement. Ensuite, pour un certain nombre de vecteurs mouvement candidats de valeur voisine de ce premier vecteur mouvement, on évalue la nouvelle distorsion et coût de codage. On retient parmi tous ces vecteurs celui qui assure la plus faible valeur de critère distorsion-coût de codage. On passe ensuite au bloc suivant jusqu'à l'examen de tous les blocs de l'image. Une fois le champ MFI optimisé, on optimise le champ MFi - de r.2m+I r,2m+2 r.2m+ 3 i?m+2 la même façon. L'étape 96 est rebouclée sur l'étape 91 pour effectuer un nouveau calcul du critère à partir des champs de mouvement ainsi optimisés. Si, à l'étape 94, C >_ Cmin, l'étape suivante est l'étape 97 qui mémorise les champs résultant de l'optimisation précédente. Cette étape détecte également une fin de GOF. Si tel est le cas, l'étape suivante est l'étape 98 qui est la fin du processus. Dans l'autre cas, l'étape suivante est l'étape 99 qui incrémente l'indice de l'image m = m+1 pour traiter l'image paire suivante en se rebouclant sur l'étape 90. Comme indiqué précédemment, la phase d'analyse temporelle est menée sur plusieurs étages successifs. On mène l'analyse sur les images source pour obtenir des images basse fréquence temporelle et haute fréquence temporelle. Une nouvelle analyse peut alors être menée sur les images basse fréquence temporelle ainsi obtenues, qui deviennent les images source de la nouvelle étape d'analyse temporelle. L'invention, qui a été décrite pour un niveau temporel, peut s'appliquer sur un ou plusieurs de ces étages de décomposition temporelle. Dans notre exemple, les vecteurs de mouvement candidats, pour l'optimisation du champ de mouvement sont calculés à partir des vecteurs mouvement associés aux blocs et provenant donc du champ de mouvement original ou du champ calculé à l'itération précédente. Il s'agit par exemple des vecteurs au voisinage du vecteur mouvement associé. Dans le cas où des champs de mouvement sont calculés pour différentes résolutions de l'image source, les vecteurs candidats peuvent être les vecteurs de ces différents champs, remis à l'échelle. Une combinaison de ces vecteurs candidats est aussi possible. REVENDICATIONS 1 Procédé d'estimation du mouvement pour le codage d'une séquence d'images avec échelonnabilité spatiale et temporelle, comprenant une étape d'analyse temporelle (10, 41) compensée en mouvement à partir d'une estimation de mouvement pour fournir des images à différents niveaux de décomposition temporels et, pour une image d'un niveau de décomposition temporel donné, une étape d'analyse spatiale (12, 42) par transformée ondelettes de cette image pour fournir des coefficients ondelette correspondant à des sous-bandes haute fréquence et basse fréquence, l'estimation de mouvement (11, 32, 40) étant effectuée, pour un niveau temporel donné, pour fournir des champs de mouvement échelonnables pour différents niveaux de résolution spatiale, caractérisé en ce qu'il met en oeuvre une étape d'optimisation (44, 46) pour l'estimation des champs de mouvement échelonnables, comportant une étape de comparaison (93) de l'image source d'une résolution spatiale et d'un niveau temporel donné à une image reconstruite obtenue par synthèse temporelle (91, 92) compensée en mouvement des sous-bandes basse fréquence relatives au niveau temporel supérieur et correspondant à la résolution spatiale donnée (Wk,;). 2 Procédé selon la revendication 1, caractérisé en ce qu'une image sousbande basse fréquence spatiale est obtenue par synthèse spatiale (43, 45) à partir des coefficients ondelettes Wo,1 calculés lors de l'étape d'analyse spatiale (42). 3 Procédé selon la revendication 1, caractérisé en ce les coefficients ondelettes sont mémorisés lors d'étapes intermédiaires d'analyse spatiale (42) et en ce que l'image sous-bande basse fréquence est obtenue directement à partir des coefficients ondelette mémorisés. 4 Procédé selon la revendication 1, caractérisé en ce que, pour un niveau temporel donné, l'estimation de mouvement est effectuée pour différents niveaux de résolution de l'image source lo,i pour fournir un ensemble de champs de vecteurs mouvement et en ce que l'optimisation de mouvement (44, 46) consiste à sélectionner des vecteurs mouvement au moins parmi cet ensemble. Procédé selon la revendication 1, caractérisé en ce que l'optimisation du mouvement (44, 46) est effectuée pour chacune des résolutions spatiales de l'échelonnabilité spatiale. 6 Procédé selon la revendication 1, caractérisé en ce que l'étape de comparaison consiste en un calcul d'un critère débit-distorsion (93) intégrant le coût de codage du champ de mouvement et la différence entre l'image source et l'image reconstruite. 7 Procédé selon la revendication 1, caractérisé en ce que la synthèse temporelle compensée en mouvement est effectuée à partir de vecteurs mouvement sélectionnés parmi des vecteurs mouvement candidats affectés par bloc d'image et en ce que la sélection est fonction du niveau de corrélation entre le bloc reconstruit par synthèse temporelle à partir du vecteur candidat et le bloc correspondant de l'image source. 8 Procédé selon la revendication 1, caractérisé en ce que l'étape d'optimisation du mouvement (44, 46) comporte un procédé itératif de calcul du champ de mouvement (91, 92, 93, 94, 95, 96) fonction d'un critère débit- distorsion (93,94) intégrant le coût de codage du champ de mouvement et la différence entre l'image source et l'image reconstruite. 9 Procédé de codage de séquence d'images avec échelonnabilité temporelle et spatiale, par analyse temporelle (10 41) compensée en mouvement et analyse spatiale (12, 42), caractérisé en ce qu'il comporte une étape d'estimation de mouvement selon le procédé de la revendication 1. Dispositif de codage de séquence d'images avec échelonnabilité temporelle et spatiale, comportant un circuit d'analyse temporelle (10, 41) compensée en mouvement et un circuit d'analyse spatiale (12, 42) des images provenant du circuit d'analyse temporelle, caractérisé en ce qu'il comporte également un circuit de synthèse spatiale (43, 45) pour reconstruire des images à différents niveaux temporels et un circuit d'optimisation de mouvement (44, 46) réalisant une synthèse temporelle des images provenant du circuit de synthèse spatiale (43,45) pour fournir des images reconstruites correspondant aux niveaux de résolution spatiale relatifs à l'échelonnabilité et pour effectuer, pour un niveau temporel, une comparaison entre une image source d'un niveau de résolution spatiale donné et une image reconstruite relative à ce niveau pour estimer le mouvement selon le procédé de la revendication 1.