Brevet FR2958489A1 — publié le 20111007

PROCEDE DE CODAGE ET PROCEDE DE RECONSTRUCTION D'UN BLOC D'UNE SEQUENCE D'IMAGES 1. Domaine de l'invention L'invention se rapporte au domaine général du codage d'images. L'invention concerne un procédé de codage d'un bloc d'une séquence d'images et un procédé correspondant de reconstruction d'un tel bloc. 2. Etat de l'art En référence à la figure 1, il est connu de coder un bloc courant Bc de pixels d'une image courante appartenant à une séquence de plusieurs images par prédiction spatiale ou temporelle. A cet effet, il est connu de déterminer pour le bloc courant Bc à coder un bloc de prédiction Bp à partir de pixels spatialement voisins du bloc courant précédemment reconstruits dans le cas de la prédiction spatiale ou à partir de pixels d'autres images que l'image courante précédemment reconstruites, dites images de référence. Lors d'une étape 12, un bloc de résidus Br est déterminé en extrayant du bloc courant Bc le bloc de prédiction Bp. Lors d'une étape 14, le bloc de résidus est codé dans un flux F. Cette étape de codage comprend généralement, la transformation du bloc de résidus en un bloc de coefficients, la quantification de ces coefficients et leur codage entropique dans un flux F. Pour déterminer le bloc de prédiction Bp, il est connu d'appliquer un procédé itératif de décomposition atomique, type « matching pursuit » à un vecteur de données comprenant au moins des données images reconstruites de blocs voisins dudit bloc courant. La décomposition atomique comprend la sélection, de manière itérative, d'atomes dans un dictionnaire d'atomes. Classiquement le dictionnaire comprend des atomes dits analytiques ou théoriques, i.e. correspondants à des fonctions de base d'une transformée, p.ex. DCT (acronyme anglais de « Discrete Cosine Transform ») ou DFT (acronyme anglais de « Discrete Fourier Transform »). Les atomes analytiques ou théoriques sont parfaitement décrits par leur formulation mathématique. Sur la figure 2, ces atomes analytiques forment les 8 premières colonnes du dictionnaire d'atomes. La pertinence du bloc de prédiction, i.e. sa fidélité au bloc courant, dépend fortement des atomes présents dans le dictionnaire. Afin d'améliorer la prédiction, il est possible d'augmenter la taille du dictionnaire en y ajoutant des échantillons de texture issus de textures naturelles, dits atomes texturés. Sur la figure 2, ces atomes texturés forment les 8 dernières colonnes du dictionnaire d'atomes. Ils sont par exemple extraits d'images naturelles ou de synthèse. Cette augmentation de la taille du dictionnaire induit une augmentation du coût calculatoire. En effet, lors de la décomposition atomique, davantage d'atomes doivent être testés. 3. Résumé de l'invention L'invention a pour but de pallier au moins un des inconvénients de l'art antérieur. A cet effet, l'invention concerne un procédé de codage d'un bloc courant d'une séquence d'images comprenant les étapes suivantes : - décomposer itérativement, en atomes d'un premier dictionnaire, un vecteur de données comprenant au moins des données images reconstruites associés à des pixels situés dans un voisinage causal du bloc courant, le premier dictionnaire comprenant des atomes analytiques et des atomes texturés; et - extraire du vecteur décomposé des données correspondant au bloc courant, les données extraites formant un bloc de prédiction ; - déterminer un bloc de résidus en extrayant du bloc courant le bloc de prédiction ; et - coder le bloc de résidus. A chaque itération l'étape de décomposition en atomes comprend les étapes suivantes : - sélectionner un premier atome dans le premier dictionnaire d'atomes; - appliquer une corrélation de phase entre un patch associé au premier atome et un vecteur de résidus courant, quand le premier atome est un atome texturé ; - extraire du patch au moins la partie la plus corrélée avec le vecteur de résidus, la partie extraite formant un second atome; - sélectionner parmi le premier atome et le second atome, l'atome le plus corrélé avec le vecteur de résidus courant ; et - mettre à jour le vecteur de résidus en fonction de l'atome sélectionné. Avantageusement, le procédé de codage selon l'invention permet de tester un grand nombre d'atomes grâce à l'utilisation de patchs. Ces patchs permettent, pour un premier atome texturé sélectionné, de tester de nombreux atomes rephasés par rapport à cet atome texturé grâce notamment à l'étape de corrélation de phase. Pour tester le même nombre d'atomes avec un des procédés de l'état de l'art, il faudrait augmenter la taille du premier dictionnaire en y insérant pour chaque atome texturé des atomes rephasés. Or, la décomposition en atomes à partir d'un tel dictionnaire élargi est beaucoup plus couteuse. A titre d'exemple, dans le cas d'une décomposition basée sur un algorithme de type matching pursuit, cette approche nécessite d'effectuer pour chaque atome du premier dictionnaire au moins un produit scalaire ce qui est beaucoup plus couteux que de faire des produits scalaires sur un premier dictionnaire de taille réduite et de tester plusieurs atomes rephasés par une simple corrélation de phase grâce à un second dictionnaire comme cela est fait dans le procédé de codage de l'invention. En outre, le fait de tester de nombreux atomes rephasés grâce au second dictionnaire permet de réduit le nombre d'itérations. Selon une caractéristique particulière de l'invention, les patchs du second dictionnaire sont de symétrie circulaire. Selon une autre caractéristique particulière de l'invention, les patchs du second dictionnaire ont une forme qui dépend de leur contenu. Selon une caractéristique particulière, le second dictionnaire comprend au moins deux patchs de taille différente. Selon une variante de réalisation, l'étape d'extraction comprend l'extraction des N parties les plus corrélées avec le vecteur de résidus, chaque partie extraite formant un atome rephasé et l'étape de sélection comprend la sélection, parmi le premier atome et les atomes rephasés, de l'atome le plus corrélé avec le vecteur de résidus courant. L'invention concerne également un procédé de reconstruction d'un bloc courant d'une séquence d'images se présentant sous la forme d'un flux comprenant les étapes suivantes : - décoder un bloc de résidus pour le bloc courant à partir du flux ; - décomposer itérativement, en atomes d'un premier dictionnaire, un vecteur de données comprenant au moins des données images reconstruites associés à des pixels situés dans un voisinage causal du bloc courant, le premier dictionnaire comprenant des atomes analytiques et des atomes texturés; - extraire du vecteur décomposé des données correspondant au bloc courant, les données extraites formant un bloc de prédiction ; et - reconstruire le bloc courant en fusionnant le bloc de résidus décodé et le bloc de prédiction. A chaque itération, l'étape de décomposition en atomes comprend les étapes suivantes : - sélectionner un premier atome dans le premier dictionnaire d'atomes; - appliquer une corrélation de phase entre un patch associé au premier atome et un vecteur de résidus courant, quand le premier atome est un atome texturé ; - extraire du patch au moins la partie la plus corrélée avec le vecteur de résidus, la partie extraite formant un second atome; - sélectionner parmi le premier atome et le second atome, l'atome le plus corrélé avec le vecteur de résidus courant ; et - mettre à jour le vecteur de résidus en fonction de l'atome sélectionné. Les mêmes avantages que ceux mentionnés en référence au procédé de codage s'appliquent au procédé de reconstruction. Selon une caractéristique particulière de l'invention, les patchs du second dictionnaire sont de symétrie circulaire. Selon une autre caractéristique particulière de l'invention, les patchs du second dictionnaire ont une forme qui dépend de leur contenu. Selon une caractéristique particulière, le second dictionnaire comprend au moins deux patchs de taille différente. Selon une variante de réalisation, l'étape d'extraction comprend l'extraction des N parties les plus corrélées avec le vecteur de résidus, chaque partie extraite formant un atome rephasé et l'étape de sélection comprend la sélection, parmi le premier atome et les atomes rephasés, de l'atome le plus corrélé avec le vecteur de résidus courant. 4. Listes des figures L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles : la figure 1 illustre un procédé de codage selon l'état de l'art; la figure 2 représente un dictionnaire d'atomes comprenant des atomes analytiques et des atomes texturés ; la figure 3 illustre un procédé de décomposition atomique selon l'état de l'art; la figure 4 représente un groupe de blocs d'une image; la figure 5 illustre un procédé de décomposition atomique raffiné selon l'invention; la figures 6 illustre un détail du procédé de décomposition atomique selon l'invention; la figure 7 illustre un procédé de codage selon l'invention; la figure 8 illustre des éléments particuliers du procédé de codage selon l'invention; la figure 9 illustre un procédé de reconstruction selon l'invention; la figure 10 illustre un dispositif de codage selon l'invention; la figure 11 illustre un dispositif de décodage selon l'invention; et la figure 12 représente différentes formes de zones causales. 5. Description détaillée de l'invention Une image comprend des pixels ou points image à chacun desquels est associée au moins une donnée image. Une donnée image est par exemple une donnée de luminance ou une donnée de chrominance. Le terme « résidus » désigne des données obtenues après extraction d'autres données. L'extraction est généralement une soustraction de pixels de prédiction à des pixels source. Toutefois, l'extraction est plus générale et comprend notamment une soustraction pondérée. Le terme « reconstruits » désigne des données (p.ex. pixels, blocs) obtenues après fusion de résidus avec des données de prédiction. La fusion est généralement une somme de pixels de prédiction à résidus. Toutefois, la fusion est plus générale et comprend notamment la somme pondérée. Un bloc reconstruit est un bloc de pixels reconstruits. En référence au décodage d'images, les termes « reconstruction » et « décodage » sont très souvent utilisés comme synonymes. Ainsi, un « bloc reconstruit » est également désigné sous la terminologie « bloc décodé ». Le procédé de codage selon l'invention est basé sur un procédé de décomposition atomique. Divers procédés existent permettant d'obtenir une décomposition atomique d'un signal Y. Parmi eux, un des plus connus est identifié sous la terminologie anglaise de « matching pursuit ». A noter que des variantes du « matching pursuit » peuvent être utilisées telle que I« Le procédé du « Matching Pursuit » (MP) permet d'obtenir une telle solution sous-optimale, i.e. non exacte, grâce à une procédure itérative. Le procédé génère à chaque itération k , une représentation Xk , vecteur de dimension m , ayant un nombre de coefficients non nuls qui s'accroit en général (sauf si le même atome est sélectionné lors de plusieurs itérations) à chaque nouvelle itération k . Le procédé MP est décrit en détail en référence à la figure 3. Les données connues sont le signal source Y, le dictionnaire A et le seuil p. Lors d'une étape 20 d'initialisation (itération k=0), les données Xo et Ro sont initialisées, où Ro est un vecteur initial de l'erreur résiduelle ou vecteur de résidus. A titre d'exemple, Xo = 0 et le vecteur initial de l'erreur résiduelle ou vecteur de résidus Ro est initialisé comme suit : Ro = Y ù AXo =Y. Lors d'une étape 22, correspondant à la k1ème itération, la fonction de base a, ayant la plus forte corrélation avec le vecteur de résidus courant Rk_1 est sélectionnée, où Rk_1 = Y ù AXk_1 . ~ a Rkù1 = arg max j a.ai scalaire. Lors d'une étape 24, le vecteur Xk et le vecteur de résidus Rk sont mis à jour. Le coefficient xi du vecteur Xk est calculé selon la formule suivante : jk = arg max J (Rk_1aJ) , où est l'opérateur de produit a~ Rkù1 Xi), T a jaJ k k Rk_1, a jk Le vecteur de résidus Rk est mis à jour selon la formule suivante : a~ Rk _1 Rk = Rkù1ù xjk ajk = Rkù1ù T a.aj Le coefficient x1k qui vient d'être calculé est ajouté à Xk_1 pour ainsi former la nouvelle représentation Xk . Lors d'une étape 26, on vérifie si le critère d'arrêt est satisfait. Si N(YùAXk) Sur la figure 4, des blocs de pixels de taille nxn sont représentés. L'entier « n » peut prendre différentes valeurs comme par exemple 4, 8 16, etc. Le bloc grisé (zone P) représente le bloc courant à prédire, la zone hachurée (zone C) représente la zone causale et la zone blanche (zone NC) représente la zone non causale. La zone causale comprend des pixels codés et reconstruits précédemment au codage du bloc courant. La définition de la zone causale dépend de l'ordre de codage des blocs dans l'image. Sur la figure 4, les blocs sont supposés être codés selon un ordre de codage classique connu sous la terminologie anglaise de « raster scan ». L'invention n'est toutefois aucunement limitée à cet ordre de codage. Le procédé de codage selon l'invention comprend la décomposition atomique d'un vecteur d'observation Y formé des pixels de la zone L parcourus en ligne, avec L= C u P u NC . Le vecteur Y est donc un vecteur de taille 9n2x1. Dans la pratique, la décomposition atomique est appliquée sur un vecteur Yc comprenant les données images associées aux pixels de la zone C, éventuellement à des données images associées aux pixels de la zone, p.ex. par une étape préalable de prédiction. En effet, les données image des autres pixels de la zone L ne sont pas connues et sont considérés comme nulles. La figure 5 illustre un procédé de décomposition atomique raffiné selon l'invention. Le procédé de décomposition atomique raffiné selon l'invention utilise deux dictionnaires. Le premier dictionnaire A comprend les atomes analytiques et/ou texturés classiquement utilisés par les procédés de type MP. A titre d'exemple, les atomes analytiques sont les fonctions de base bidimensionnelles de même taille que la zone L (3nx3n), et que l'on suppose avoir de bonnes propriétés pour la décomposition d'un signal en signaux élémentaires. A titre d'exemple, le noyau de transformées usuelles, comme la DCT (acronyme anglais de « Discrete Cosine Transform ») ou la DFT (acronyme anglais de « Discrete Fourier Transform ») est utilisé pour définir les atomes analytiques. Dans ces cas précis, une décomposition fréquentielle du signal est opérée. Les expressions des fonctions de base ou atomes analytiques associés à la DFT et à la DCT, respectivement, sont les suivantes : et gpq(m,n)=cos~pz(2+1 'cos l 2N+ / Le dictionnaire A est complété par des atomes texturés de même taille que les atomes analytiques. Le dictionnaire A doit comprendre au minimum9n2 atomes pour représenter la zone L. Afin de pouvoir contenir 9n2 atomes bidimensionnels dont la taille de chacun est3nx3n, dans une matrice 2D, les atomes sont vectorisés. Ainsi, le dictionnaire A est constitué d'au minimum 9n2 colonnes dont chacune représente un atome, analytique ou texturé, de taille 9n2 xl . A désigne à la fois le dictionnaire et la matrice correspondante. Le choix d'atomes DCT et DFT n'est pas une limitation. En effet, on peut enrichir le dictionnaire de n'importe quelles fonctions de base susceptibles de représenter tout type de motifs dans une image (atomes de Gabor, atomes anisotropiques...). Le nombre d'atomes ou encore, le nombre de colonnes dans la matrice A a pour borne minimum, la taille de la zone L vectorisée (i.e. 9n2) mais n'a pas de borne maximale théorique. Plus la quantité d'atomes est importante, plus on a de chance de recouvrer le signal. Le second dictionnaire est formé de patches plus grands que les atomes du premier dictionnaire. Ces patchs comme les atomes texturés proviennent d'images naturelles. Plus précisément, à chaque atome texturé du premier dictionnaire ou à chaque atome texturé d'une partie seulement du premier dictionnaire est associé un patch du second dictionnaire. Les patchs du second dictionnaire sont par exemple extraits d'images naturelles ou synthétiques. Les patchs peuvent être de forme rectangulaire. Selon une variante, la forme du patch dépend du contenu. A titre d'exemple, si le patch comprend essentiellement des structures verticales, il sera de préférence de taille rectangulaire plus large que haut. Dans le cas contraire, i.e. s'il comprend essentiellement des structures horizontales, il sera de préférence de taille rectangulaire plus haut que large. De même, les patchs peuvent être 21z mp+nq _~ ,M N, de symétrie circulaire. Avantageusement, les atomes texturés du premier dictionnaire sont obtenu en extrayant de chaque patch du second dictionnaire un atome texturé, p.ex. l'atome texturé est centré dans le patch. La taille des patchs du second dictionnaire peut également varier d'un patch à l'autre. Toutefois, le fait que l'atome texturé soit centré dans le patch n'a aucun caractère obligatoire. De même, l'invention n'est aucunement limitée par la manière dont sont générés les atomes texturés à partir des patchs, ni par la manière dont les patchs sont déterminés à partir d'images naturelles. Comme le procédé MP décrit précédemment en référence à la figure 3, le procédé de décomposition atomique selon l'invention est un procédé itératif. Lors d'une étape 32, un premier atome aik est sélectionné dans le premier dictionnaire d'atomes par exemple selon l'étape 22 du procédé MP. Quand l'atome aik est un atome texturé et qu'un patch du second dictionnaire lui est associé, alors le procédé continue à l'étape 34. Quand l'atome aik est un atome analytique ou un atome texturé auquel ne correspond aucun patch, alors le procédé continue à l'étape 38. aik est l'atome le plus fortement corrélé avec le vecteur de résidus courant Rk_1 , p.ex. celui pour lequel le produit scalaire (Rk_1,aj)k est le plus grand. Ce produit scalaire est noté c_max. Lors d'une étape 34, un second atome pi est déterminé à partir du second dictionnaire. Cette étape est illustrée en détails par la figure 6. Lors d'une étape 340, le vecteur de résidus Rk_1 utilisé pour déterminer ai, est corrélé, par corrélation de phase, avec le patch Pi du second dictionnaire qui correspond à aik . La corrélation de phase fournit ici un déplacement (dx,dy) entre le résidu Rk_1 et le contenu du patch P~ . Ce déplacement détermine la position d'un nouvel atome de même taille que les atomes du premier dictionnaire. Lors d'une étape 342, la partie du patch la plus corrélée en termes de corrélation phase avec le vecteur de résidus Rk_1 est extraite du patch. Cette partie extraite est appelée atome rephasé et notée pik . Selon une variante, la corrélation de phase fournit N déplacements (dx,dy) entre le résidu Rk_1 et le contenu du patch P~ . Ces N déplacements indiquent la position des N parties du patch les plus corrélées au sens corrélation de phase avec le vecteur de résidus Rk_1. Ces N parties sont alors extraites du patch, chaque partie extraite formant un atome rephasé. Quand les patchs sont de symétrie circulaire, le résidu pour la corrélation de phase peut se déplacer de façon circulaire sur l'ensemble de patch. Lors d'une étape 36, l'atome le plus corrélé avec Rk_1 est sélectionné parmi aik et pi , éventuellement parmi aik et les N atomes rephasés quand plusieurs atomes rephasés sont extraits à l'étape 342. A titre d'exemple, on compare la corrélation c_max, i.e. (Rk_1,aj)k et la corrélation, notée c_phase, associée au second atome, i.e. (Rk_1,Pik ) . Si c_phase > c_max, alors le second atome pik est sélectionné sinon le premier atome ai est sélectionné. Dans le cas de N atomes rephasés, l'atome sélectionné est l'atome le plus corrélé Rk_1, au sens du produit scalaire entre l'atome en question et Rk_1. Lors d'une étape 38, le vecteur Xk et le vecteur de résidus Rk sont mis à jour en fonction de l'atome sélectionné. Le coefficient xi du vecteur Xk est k calculé selon la formule suivante xi = k(Rkù1' pik quand pik est sélectionné et le coefficient xi du vecteur Xk est calculé selon la formule suivante x~ = k (Rk_1,aj k quand ai est sélectionné. Le résidu Rk est mis à jour comme suit : Rk = Rkù1 ù xi pi ou comme suit Rk = Rkù1 ù x~ ai suivant l'atome sélectionné. Lors d'une étape 40, on vérifie si le critère d'arrêt est satisfait. Si N(Y ù A' Xk) p alors le procédé est terminé sinon k est incrémenté de 1 lors d'une étape 42 et le procédé reprend à l'étape 32. A' comprend les atomes du premier dictionnaire et éventuellement des atomes sélectionnés à partir du second dictionnaire. Le vecteur final A'XK est une approximation du signal source Y où K l'indice de la dernière itération. Le procédé de décomposition atomique raffiné décrit en référence aux figures 5 et 6 est utilisé pour coder un bloc courant. Le procédé de codage selon l'invention est décrit en référence à la figure 7. Lors d'une étape 52, on applique une décomposition atomique comme décrit en référence à la figure 5 sur un vecteur Yp de taille 4n2x1 comprenant comme données les valeurs des pixels de la zone d'observation, i.e. des blocs voisins (zone C sur la figure 4). Selon une variante, on applique une décomposition atomique sur un vecteur Ycp de taille 5n2x1 comprenant comme données les données image des pixels de la zone d'observation, i.e. des blocs voisins (zone C sur la figure 3) et les pixels d'un bloc de prédiction initial Bp0 qui viennent remplacer les données du bloc courant à prédire (zone P sur la figure 4). Les données des autres blocs voisins du bloc courant non précédemment reconstruits (zone NC sur la figure 3) sont nulles. Le bloc de prédiction initial est par exemple déterminé par une prédiction temporelle classique selon une méthode classique d'appariement de blocs. L'invention n'est aucunement limitée par la définition de la zone d'observation. Dans la suite on considère le cas d'une décomposition atomique du vecteur Yp sachant que la même décomposition peut être appliquée au vecteur Ycp. C'est ce vecteur d'observation Yp qui est le support de prédiction utile au procédé M P. Afin de pouvoir représenter les données de Yp qui est de dimension 4n2 xl (et non celles de Y ), la matrice A est modifiée en retirant ses lignes correspondant à tous les pixels en dehors de la zone C. En effet, tous ces pixels sont inconnus et ont pour valeur zéro. On obtient alors une matrice, notéek , compactée dans le sens de la hauteur, de taille4n2x9n2. Les étapes 32 à 40 décrites en référence à la figure 5 sont donc appliquées de manière itérative afin de déterminer Xopt avec comme données d'observation le vecteur Yp. Le procédé s'arrête dès que le critère d'arrêt N(YC ùA~Xk) Selon une variante, l'ensemble des séquences Xk déterminées au cours des itérations sont stockées en mémoire. Selon cette variante, Xopt n'est plus égal à XK, K étant l'indice de la dernière itération mais Xopt = XkP avec kopt = min N(Yp ù A' p X k ) kE [1,K] où : - A'p est la partie matrice A' associée à la zone P à prédire ; et - Yp est le vecteur de taille n2xl associé à la zone P à prédire, i.e. comprenant les données image des pixels de la zone P. Ap et Yp sont représentés sur la figure 8. Cette variante permet de déterminer Xopt comme étant la meilleure représentation de la zone P qui ne correspond pas forcément à la meilleure représentation sur la zone C. Les données ApX sont réorganisées (opération inverse des opérations de vectorisation) sous forme de bloc. Les données réorganisées représentent le nouveau bloc de prédiction Bp du bloc courant. Selon cette variante, le coefficient kopt est également codé dans le flux F. En effet, les données du vecteur Yp sont inconnues du décodeur. La figure 9 illustre schématiquement un procédé de reconstruction d'un bloc courant selon l'invention. Lors d'une étape 60, on décode un bloc de résidus Br pour le bloc courant. A titre d'exemple, une partie d'un flux F est décodé en des coefficients. Les coefficients sont déquantifiés puis le cas échéant transformés par une transformée inverse de celle utilisée par le procédé de codage à l'étape 58. Un bloc de résidus est ainsi obtenu. Selon une variante, l'étape de transformation inverse est omise notamment si aucune étape de transformation n'a été appliquée côté codeur à l'étape 58. Lors d'une étape 62, on applique une décomposition atomique. Cette étape est identique à l'étape 52 du procédé de codage. Cette étape permet de déterminer une approximation @ =AXopt du vecteur Y. Lors d'une étape 64, on extrait de 1 le vecteur @p de taille n2 qui correspond à la zone P comme illustré sur la figure 8. Les données @p extraites sont réorganisées (opération inverse des opérations de vectorisation) sous forme de bloc. Les données réorganisées représentent le nouveau bloc de prédiction Bp du bloc courant. Lors d'une étape 66, le bloc courant Bc est reconstruit en fusionnant le bloc de prédiction Bp déterminé à l'étape 64 et le bloc de résidus décodé à l'étape 60, par exemple par addition pixel à pixel. La figure 10 illustre schématiquement un dispositif de codage 12. Le dispositif de codage 12 reçoit en entrée une ou des images. Le dispositif de codage 12 est apte à mettre en oeuvre le procédé de codage selon l'invention décrit en référence à la figure 7. Chaque image est divisée en blocs de pixels à chacun desquels est associée au moins une donnée image. Le dispositif de codage 12 met en oeuvre notamment un codage avec prédiction temporelle. Seuls les modules du dispositif de codage 12 se rapportant au codage par prédiction temporelle ou codage INTER sont représentés sur la figure 10. D'autres modules connus de l'homme du métier des codeurs vidéo ne sont pas représentés (p.ex. sélection du mode de codage, prédiction spatiale). Le dispositif de codage 12 comprend notamment un module de calcul 1200 apte à extraire, par exemple par soustraction pixel à pixel, d'un bloc courant Bc un bloc de prédiction Bp pour générer un bloc de résidus Br. Le module de calcul 1200 est apte à mettre en oeuvre l'étape 56 du procédé de codage selon l'invention. Il comprend en outre un module 1202 apte à transformer puis quantifier le bloc de résidus Br en des données quantifiées. La transformée T est par exemple une transformée en cosinus discret (ou « DCT » acronyme anglais de « Discrete Cosine Transform »). Le dispositif de codage 12 comprend en outre un module de codage entropique 1204 apte à coder les données quantifiées en un flux F. Il comprend en outre un module 1206 effectuant l'opération inverse du module 1202. Le module 1206 effectue une quantification inverse Q-1 suivie d'une transformation inverse T-1. Le module 1206 est relié à un module de calcul 1208 apte à fusionner, p.ex. par addition pixel à pixel, le bloc de données issu du module 1206 et le bloc de prédiction Bp pour générer un bloc reconstruit qui est stocké dans une mémoire 1210. Un module de prédiction 1216 détermine un bloc de prédiction. Le module de prédiction 1216 est apte à mettre en oeuvre les étapes 52 et 54 du procédé de codage selon l'invention. L'étape 58 du procédé de codage est mise en oeuvre dans les modules 1202 et 1204. La figure 11 illustre schématiquement un dispositif de décodage 13. Le dispositif de codage 13 reçoit en entrée un flux F représentatif d'une image. Le flux F est par exemple transmis par un dispositif de codage 12 au travers d'un canal. Le dispositif de décodage 13 est apte à mettre en oeuvre le procédé de décodage selon l'invention décrit en référence à la figure 9. Le dispositif de décodage 13 comprend un module de décodage entropique 1300 apte à générer des données décodées. Les données décodées sont alors transmises à un module 1302 apte à effectuer une quantification inverse suivie d'une transformation inverse. Le module 1302 est identique au module 1206 du dispositif de codage 12 ayant généré le flux F. Le module 1302 est relié à un module de calcul 1304 apte à fusionner, p.ex. par addition pixel à pixel, le bloc issu du module 1302 et un bloc de prédiction Bp pour générer un bloc courant Bc reconstruit qui est stocké dans une mémoire 1306. Le module de calcul 1304 est apte à mettre en oeuvre l'étape 66 du procédé de reconstruction. Le dispositif de décodage 13 comprend un module de prédiction 1308. Le module de prédiction 1308 détermine un bloc de prédiction Bp à partir de données déjà reconstruites stockées dans la mémoire 1306. Le module de prédiction 1308 est apte à mettre en oeuvre les étapes 62 et 64 du procédé de reconstruction selon l'invention. L'étape 60 du procédé de reconstruction est mise en oeuvre dans les modules 1300 et 1302. Bien entendu, l'invention n'est pas limitée aux exemples de réalisation mentionnés ci-dessus. En particulier, l'homme du métier peut apporter toute variante dans les modes de réalisation exposés et les combiner pour bénéficier de leurs différents avantages. En effet, d'autres procédés que le procédé MP peuvent être utilisés pour déterminer le vecteur Xopt. De même la forme de la zone causale peut varier comme illustré sur la figure 12. Sur cette figure, la zone causale prise en compte est hachurée. L'invention n'est aucunement limitée à ces formes de zones causales qui ne sont représentées qu'à titre de simple exemple illustratif. Sur cette figure les blocs sont de taille quelconque. La zone causale peut-être en position quelconque vis-à-vis du bloc de prédiction, en ce sens que le procédé selon l'invention est indépendant de l'ordre de balayage des blocs dans l'image. La forme et la taille des patchs peut varier. De même le second dictionnaire peut contenir moins de patchs qu'il n'y a d'atomes texturés dans le premier dictionnaire. Revendications1. Procédé de codage d'un bloc courant d'une séquence d'images comprenant les étapes suivantes : - décomposer (52) itérativement, en atomes d'un premier dictionnaire, un vecteur de données comprenant au moins des données images reconstruites associés à des pixels situés dans un voisinage causal dudit bloc courant, ledit premier dictionnaire comprenant des atomes analytiques et des atomes texturés; et - extraire (54) dudit vecteur décomposé des données correspondant audit bloc courant, lesdites données extraites formant un bloc de prédiction ; - déterminer (56) un bloc de résidus en extrayant dudit bloc courant ledit bloc de prédiction ; - coder (58) ledit bloc de résidus ; le procédé de codage étant caractérisé en ce qu'à chaque itération ladite étape de décomposition en atomes comprend les étapes suivantes : - sélectionner (32) un premier atome dans ledit premier dictionnaire d'atomes; - appliquer (34, 340) une corrélation de phase entre un patch associé audit premier atome et un vecteur de résidus courant, quand ledit premier atome est un atome texturé ; - extraire (34, 342) dudit patch au moins la partie la plus corrélée avec ledit vecteur de résidus, ladite partie extraite formant un second atome; - sélectionner (36) parmi ledit premier atome et ledit second atome, l'atome le plus corrélé avec ledit vecteur de résidus courant ; et - mettre à jour (38) ledit vecteur de résidus en fonction dudit atome sélectionné. 2. Procédé de codage selon la revendication 1, dans lequel les patchs du second dictionnaire sont de symétrie circulaire. 3. Procédé de codage selon la revendication 1 ou 2, dans lequel les patchs du second dictionnaire ont une forme qui dépend de leur contenu. 4. Procédé de codage selon l'une des revendications précédentes, dans lequel ledit second dictionnaire comprend au moins deux patchs de taille différente. 5. Procédé de codage selon l'une des revendications précédentes, dans lequel l'étape d'extraction (34, 342) comprend l'extraction des N parties les plus corrélées avec ledit vecteur de résidus, chaque partie extraite formant un atome rephasé et dans lequel l'étape de sélection comprend la sélection, parmi ledit premier atome et lesdits atomes rephasés, de l'atome le plus corrélé avec ledit vecteur de résidus courant. 6. Procédé de reconstruction d'un bloc courant d'une séquence d'images se présentant sous la forme d'un flux comprenant les étapes suivantes : - décoder (60) un bloc de résidus pour ledit bloc courant à partir dudit flux ; - décomposer (62) itérativement, en atomes d'un premier dictionnaire, un vecteur de données comprenant au moins des données images reconstruites associés à des pixels situés dans un voisinage causal dudit bloc courant, ledit premier dictionnaire comprenant des atomes analytiques et des atomes texturés; - extraire (64) dudit vecteur décomposé des données correspondant audit bloc courant, lesdites données extraites formant un bloc de prédiction ; - reconstruire (66) ledit bloc courant en fusionnant ledit bloc de résidus décodé et ledit bloc de prédiction ; le procédé de reconstruction étant caractérisé en ce qu'à chaque itération, ladite étape de décomposition en atomes comprend les étapes suivantes : - sélectionner (32) un premier atome dans ledit premier dictionnaire d'atomes; - appliquer (34, 340) une corrélation de phase entre un patch associé audit premier atome et un vecteur de résidus courant, quand ledit premier atome est un atome texturé ;- extraire (34, 342) dudit patch au moins la partie la plus corrélée avec ledit vecteur de résidus, ladite partie extraite formant un second atome; - sélectionner (36) parmi ledit premier atome et ledit second atome, l'atome le plus corrélé avec ledit vecteur de résidus courant ; et - mettre à jour (38) ledit vecteur de résidus en fonction dudit atome sélectionné. 7. Procédé de reconstruction selon la revendication 6, dans lequel les patchs du second dictionnaire sont de symétrie circulaire. 8. Procédé de reconstruction selon la revendication 6 ou 7, dans lequel les patchs du second dictionnaire ont une forme qui dépend de leur contenu. 9. Procédé de reconstruction selon l'une des revendications 6 à 8, dans lequel ledit second dictionnaire comprend au moins deux patchs de taille différente. 10. Procédé de reconstruction selon l'une des revendications 6 à 8, dans lequel l'étape d'extraction (34, 342) comprend l'extraction des N parties les plus corrélées avec ledit vecteur de résidus, chaque partie extraite formant un atome rephasé et dans lequel l'étape de sélection comprend la sélection, parmi ledit premier atome et lesdits atomes rephasés, de l'atome le plus corrélé avec ledit vecteur de résidus courant.