Procédé d'estimation du mouvement pour le codage d'une séquence d'images avec échelonnabilité spatiale et temporelle
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 ». Il 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, MPEG-4, 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
sous-ensembles 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 œuvre. 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 29/WG 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 lo,i, 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 l-y et I2J. 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 MF2J à partir des images de plus faible résolution \2,\ provenant du circuit de génération de pyramides multirésolution.
Le module d'estimation de mouvement 31 calcule les champs de mouvement MF-y à partir des images de moyenne résolution l-y 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 MF0J à partir des images de plus haute résolution lo,i provenant du circuit de génération de pyramides multirésolution et éventuellement de vecteurs mouvement provenant du circuit 31.
Le champ de vecteur MF0J 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 MF0J, MF-y et MF2J 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 lrj, 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
(Wici).
Selon une mise en œuvre 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 W0,i calculés lors de l'étape d'analyse spatiale.
Selon une mise en œuvre 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 œuvre 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 I0J 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 œuvre particulière, le procédé est caractérisé en ce que l'optimisation du mouvement est effectuée pour chacune des résolutions spatiales de l'échelonnabilité spatiale.
Selon une mise en œuvre particulière, le procédé est caractérisé en ce que l'étape de comparaison consiste en un calcul d'un critère débit- distorsion 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 œuvre 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 œuvre 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,
- la figure 4, un circuit d'estimation de mouvement selon l'invention,
- la figure 5, différents niveaux de décomposition spatiale d'une image,
- 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 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 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 MF0J à partir de ces images de plus haute résolution I0J. Le champ de vecteur MF0J 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, F0,i, sont transmises au circuit d'analyse spatiale 12, plus précisément au module d'analyse spatiale 42. Ces images F0,i so nt 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 I0J
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 lu et I2,i 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 F0,i en donnant S niveaux de décomposition spatiale pour chacune des images F0J. La décomposition spatiale ondelettes fournit ainsi des images Wk,i de coefficients ondelettes spatio-temporels à différents niveaux de décomposition. Wk,i 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 F0J 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 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 sous-image 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 I2,i, 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, W2ji. Le niveau de résolution intermédiaire l-y, 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, W-y.
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, W2,i, 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, i. 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 F1, ,. II est bien sûr envisageable de transmettre non pas l'image F2ji mais l'ensemble des coefficients correspondant aux trois derniers niveaux de décomposition, W-y, au circuit de synthèse spatiale 45, pour effectuer cette synthèse spatiale.
Ces images reconstruites F2ji et F -y 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 I2J et \<\, \.
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 lu ou I2,i, pour le niveau temporel considéré, qui sont comparées aux images source hj et \2,\ 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+i,i permettant d'obtenir les images Fr,i, i=1...N, de la résolution r.
- optimisation de mouvement avec les images source lr,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 lr;,, i=1...N, et les images Fr;,, i=1...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 lr,k la k?me image de la vidéo à la résolution r considérée. MCIι→l2 (F) correspond à la compensation de mouvement de l'image F, en utilisant le mouvement MFIχ→l2 estimé entre les images U et I2 . 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 lo,2k+i, compensées en mouvement avec les champs de mouvement MFIQ U+1 →I0 2m - 2k+1 désigne ici l'indice des images voisines de l'image lo,2m, qui servent à générer l'image H0,2m- Seules les images voisines de lo,2m d'indice impair servent à générer les images haute fréquence.
- génération des images basse fréquence temporelle L0,2m+i à partir des images lo,2m+i, et des images H0,2i, compensées en mouvement avec les champs de mouvement MFi0 2l→i02m+1 - 2I désigne ici l'indice des images haute fréquence voisines de l'image lo,2m+i, qui servent à générer l'image L0,2m+i- Seules les images voisines de lo,2m+i 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 Lo,2m+1'- I H0,2m )
La sommation est effectuée sur l'indice k qui correspond à la longueur du filtre utilisé. k=m-1 et l=m+1dans 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 codés. En général, les champs MFi0 2k+ι→i0 2m u*'''s®s Pour générer les images
H sont estimés et codés ; les champs MFi0 2l→i02m+1 utilisés pour générer les images L ne sont pas estimés et codés, mais sont déduits des champs MFh ik+\→h im ' 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 MFi0 2m_1→i0 2m référencé 70 et
MFh 2m+i → /o 2m 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+i, le champ MF 1r0,2 „m+ ,l → v1 /-„0,2 „m référencé 72 est déduit du champ ^ MF 1 Tn0,2 „m → .1 Tn0,2 „m+ ,l 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 :
#0,2«
(
70,2m-l )
~
(
70,2m+l )
L0,2m+l
(
77O^m ) +
(
770,2m+2 )
- Synthèse temporelle compensée en mouvement La synthèse est effectuée à toute résolution r à partir des images décodées Lr lk+X et Hr lι . 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 /r 2m+1 à partir des images Lr lm+X , des images Hr 2l et des champs de mouvement MF1 →I . - génération des images îr>2m à partir des images Hr lm , des images îr 2jt+1 déjà reconstruites et des champs de mouvement MF1 →I .
Les équations suivantes résument ces traitements :
/\ I I Λ — ^ /\ I
Ir,2m+l = -^ [Lr,2m+l ~L*ι $2l -MCIraι→Iram+ι (Hr,2l )\
Λ 1 I Λ \ — i Λ I
1^m = - α [Hr,2m + La2k+l -MCIr>2k+ι→Ir>2m (Ir,2k+l )\
A nouveau, on notera que, dans les approches classiques, les champs de mouvement MFir l→ir 2m+1 ne sont Pas directement disponibles mais déduits des champs MFir k→ir 2m 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 /r>2m+1 à partir de L^m+i, de Hr,2m compensée par le champ MFir 2m→ir 2m+ι référencé 77, de Hr,2m+2 compensée par le champ MFIr 2m+2→ir 2m+ι référencé 78.
- ensuite, on reconstruit les images /r 2m+2 à partir de Hr,2m+2, de l,im+i compensée par le champ MFIγ 2m+1→/r 2m+2 référencé 75 et de /r;2m+3 compensée par le champ MFir 2m+3 →ir 2m+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 :
1 1
1^m+I = Lr,2m+\ - ^ IMCIr>2m→Ir>2m+ι (Hr,2m ) ~ ^ IMC Ir>2m+2→Ir>2m+ι (H r,2m+2 )
Λ J^ Λ 1 Λ
^,2^+2 = #r,2«+2 + - MCIr>2m+1 →Ir,2m+2 (7r,2«+l ) + ~ MCIr>2m+3 →Ir,2m+2 (7r,2«+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 MFir k→ir 2m > et Par conséquent MF1 →I , pour améliorer la synthèse, c'est-à-dire améliorer les images
On dispose des images source Ir l , 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 :
C(MFι,...,MFp) = D(IrJ,îrj) + λcost.R(MFι,...,MFp) où MF1 ,...,AfFp sont tous les champs de mouvement nécessaires à la reconstruction de ïr l , D(A1B) une mesure de la distorsion entre les images
A et B, R(MF1,...,MFp) une mesure du coût de codage des champs de mouvement, λ∞st 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,ι. Par exemple, pour l'image îr,2m+2, P=2 et AfF2= MFIr 2m+3 →ir 2m+2 -
Pratiquement, l'approche suivante peut être mise en œuvre :
- 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 ret les images des différentes fréquences temporelles L1. k et H1. L à la résolution r; cette synthèse fournit des images reconstruites îr,ι.
- 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é.
1 1
7r;2m+l = Lr,2m+\ ~ ~^IMC Ir,2m→Ir,2m+\ (Hr,2m ) ~ ~^IMCIr,2m+2→Ir,2m+l (Hr,2m+2 )
La figure 9 décrit un algorithme, basé sur une approche itérative. Une première étape 90 initialise Cmin à la valeur Cmin = ∞ et mémorise les champ 1^s de vecteurs MF 1 1r,2 „m+ ,l → .1 τr,2 „m+2 „ et MF 1 1r,2 „m+ ,3 → .1 τr,2 „m+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 /r 2m+1 et /r 2m+3 à partir des champs déduit, puis l'étape 92 génère l'image paire /r>2m+2 à partir des champs MF 1Tr,2 „m+ ,l → .1Tr,2 „m+2 „ et MF '1r.im+i → .'Jr.im+i , ' comme indiq ^ué resp 1^ectivement sur les figures 8a et 8b. L'étape suivante 93 effectue un calcul du critère total pour les champs MFIr lm+χ →Ir lm+l et MFIr 2m+^Ir 2m+2 :
C = C(MFIr 2m+ι→Ir 2m+2 ,MFIr 2m+3 →Ir 2m+2 ) =
D(Ir,2m+l > Ir,2m+\ ) + ^(^r,2m+3 > ^r,2m+3 ) + ^(^r,2m+2 > h,2m+2 ) + λcost -R(MFIr 2m+ι →/r>2M+2 ,MFIr 2m+3 →Ir 2m+2 ) Si C < Cmin , test effectué à l'étape 94, alors l'étape suivante est l'étape 95 qui rafraîchi la valeur Cmin à la valeur C et mémorise les champs MFIr 2m+ι →ir 2m+2 et MFIr 2m+3 →ir 2m+2 - Ensuite, l'étape 96 effectue une optimisation des champs MF 1Tr,2 „m+ ,l → v1 Λr,2 „m+2 „ et MF 1 Tr,2 ,m+ ,3 → .1rr,2 ,m+2 , de manière à minimiser le critère C.
Le processus d Optimisation peut consister en une approche de type « block matching ».
Considérons par exemple l'optimisation des champs i→W
et
P°
ur synthétiser l'image î
r>2m+2 à partir des images î
r 2m+1 et î
r 2m+3 préalablement calculées. On commence d'abord par optimiser le champ MF
If 2m+1→i
r 2m+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 : 1 i
Ir,2m+2 =
H r,2m+2 + ^
MC i
r 2m+1 →I
r>2m+2 (
1^m
+I ) + - MC ^
+3 →i
r 2m+2 (I
r,2m+3 )
Ce bloc est comparé à l'image d'origine Ir 2m+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 MFIr 2m+l→Ir 2m+2 optimisé, on optimise le champ MFIr 2m+3→Ir 2m+2 de 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 > C min, 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.