Brevet FR2955730A1 — publié le 20110729

PROCEDES DE CODAGE ET DE DECODAGE 1. Domaine de l'invention L'invention se rapporte au domaine général du codage d'images. L'invention concerne plus particulièrement un procédé de codage et un procédé de décodage d'un bloc d'une image. 2. Etat de l'art Il est connu pour coder une image d'une séquence d'images de diviser cette image en blocs de pixels et de coder chacun des blocs par prédiction spatiale (mode INTRA) ou temporelle (mode INTER). Le codage du bloc courant comprend généralement la transformation en un bloc de coefficients, p.ex. par une DCT (acronyme anglais de « Discrete Cosine Transform »), de la différence entre les pixels du bloc courant et les pixels du bloc de prédiction. Le codage comprend en outre la quantification des coefficients, puis le codage entropique des coefficients quantifiés. Il est connu pour coder un bloc courant en mode INTRA, i.e. par prédiction spatiale, de prédire le bloc courant à partir de données image de blocs spatialement voisins précédemment codés. A titre d'exemple, il est connu dans la norme de codage vidéo H.264 de prédire un bloc courant à partir de pixels situés au dessus du bloc courant ou sur la gauche du bloc courant. Plus précisément, les pixels du bloc courant sont prédits par une combinaison linéaire des pixels voisins du bloc courant selon une direction de prédiction privilégiée (p.ex. horizontale, verticale, etc). Les pixels de prédiction, i.e. résultant d'une combinaison linéaire des pixels voisins du bloc courant, forment un bloc de prédiction. Cette méthode de prédiction est particulièrement efficace lorsque le bloc courant à prédire comprend des contours. En effet, si le bord d'un objet correspond à une des directions de prédiction définie par la norme H.264 le contour est de fait propagé de façon mono-directionnelle dans le bloc courant à prédire. En revanche, dès qu'il existe des structures à deux dimensions cette méthode de prédiction perd de son efficacité. 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 de pixels, dit bloc courant, par prédiction spatiale. Le procédé de codage selon l'invention comprend les étapes suivantes : - déterminer, pour chaque pixel du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil courante, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel du bloc courant et par transformation inverse appliquée sur les coefficients seuillés; - extraire du bloc courant un bloc de prédiction formé des pixels de prédiction pour générer un bloc de résidus ; et - coder le bloc de résidus. Avantageusement, la valeur de seuil courante est déterminée ou codée à partir de pixels reconstruits voisins du bloc courant. En déterminant ou en codant la valeur de seuil courante à partir de pixels reconstruits voisins du bloc courant, l'efficacité du codage est améliorée. Selon un mode particulier de réalisation, l'étape de détermination, pour chaque pixel du bloc courant, d'un pixel de prédiction est réitérée avec chaque valeur de seuil d'une pluralité de valeurs de seuil. Le procédé comprend en outre la sélection comme valeur de seuil courante, parmi la pluralité de valeurs de seuil, de la valeur de seuil pour laquelle une erreur de prédiction calculée entre le bloc courant et le bloc de prédiction est la plus petite. Selon un aspect particulier de l'invention, la valeur de seuil courante est codée par différence avec une valeur de seuil de prédiction, laquelle valeur de prédiction dépend de pixels reconstruits voisins du bloc courant. Selon une caractéristique particulière, la valeur de seuil de prédiction est égale à la moyenne des valeurs de seuil utilisées dans des blocs voisins du bloc courant. Selon une première variante, la valeur de seuil de prédiction est égale à la valeur médiane des valeurs de seuil utilisées dans des blocs voisins du bloc courant. Selon une seconde variante, la valeur de seuil de prédiction est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit dans un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel reconstruit et par transformation inverse appliquée sur les coefficients seuillés; - réitérer, avec chaque valeur de seuil d'une pluralité de valeurs de seuil, l'étape de détermination d'un pixel de prédiction pour chaque pixel du voisinage ; - sélectionner comme valeur de seuil de prédiction, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite. Selon un autre mode particulier de réalisation, la valeur de seuil courante est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit dans un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel reconstruit et par transformation inverse appliquée sur les coefficients seuillés; - réitérer, avec chaque valeur de seuil d'une pluralité de valeurs de seuil, l'étape de détermination d'un pixel de prédiction pour chaque pixel du voisinage ; - sélectionner comme valeur de seuil courante, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite. Avantageusement, l'erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants prend en compte, pour chacun des pixels reconstruits du voisinage du bloc courant leur distance par rapport au bord du bloc courant. Selon un autre aspect de l'invention, la valeur de seuil courante étant sélectionnée pour un bloc courant de taille 8x8, une valeur de seuil courante est calculée pour chacun des blocs de taille 4x4 du bloc courant par multiplication de la valeur de seuil courante sélectionnée par un coefficient a strictement inférieur à 1. Avantageusement, la taille de la fenêtre dépend de la position dans le bloc courant du pixel à prédire. L'invention concerne également un procédé de décodage d'un bloc courant de pixels par prédiction spatiale comprenant les étapes suivantes : - décoder un bloc de résidus ; - déterminer, pour chaque pixel du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil courante, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel du bloc courant et par transformation inverse appliquée sur les coefficients seuillés; et - reconstruire ledit bloc courant en fusionnant le bloc de résidus décodé et le bloc de prédiction formé des pixels de prédiction. Avantageusement, la valeur de seuil courante est déterminée à partir de pixels reconstruits voisins du bloc courant. Selon un mode particulier de réalisation, la valeur de seuil courante est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit dans un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel reconstruit et par transformation inverse appliquée sur les coefficients seuillés; - réitérer avec chaque valeur de seuil d'une pluralité de valeurs de seuil, l'étape de détermination d'un pixel de prédiction pour chaque pixel du voisinage ; - sélectionner comme valeur de seuil courante, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite. Selon un autre mode particulier de réalisation, le procédé de décodage selon l'invention comprend en outre les étapes suivantes : - décoder une différence de valeurs de seuil ; - déterminer une valeur de seuil de prédiction à partir de pixels reconstruits voisins du bloc courant; et - calculer la somme de la différence et de la valeur de seuil de prédiction, la somme étant la valeur de seuil courante. Avantageusement, la valeur de seuil de prédiction est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit d'un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel reconstruit et par transformation inverse appliquée sur les coefficients seuillés; - réitérer avec chaque valeur de seuil d'une pluralité de valeurs de seuil, l'étape de détermination d'un pixel de prédiction pour chaque pixel duvoisinage ; et - sélectionner comme valeur de seuil de prédiction, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite. 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'invention; - la figure 2 représente une partie d'image comprenant un bloc à prédire et une fenêtre utilisée pour la prédiction de ce bloc ; - les figures 3 et 4 illustrent en détail une étape du procédé de codage selon l'invention; - les figures 5 et 6 représentent une partie d'image comprenant un bloc à prédire et différentes fenêtres utilisées pour la prédiction de ce bloc ; - la figure 7 représente une partie d'image comprenant un bloc à prédire, une zone causale Zc voisine de ce bloc et une fenêtre utilisée pour la prédiction des pixels de cette zone causale ; - la figure 8 illustre un procédé de décodage selon l'invention; - la figure 9 illustre un dispositif de codage selon l'invention ; et - la figure 10 illustre un dispositif de décodage selon l'invention. 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é ». L'invention concerne un procédé de codage d'un bloc de pixels, dit bloc courant, par prédiction spatiale. Elle s'applique au codage d'une image ou de séquences d'images. Le procédé de codage selon l'invention est basé sur un procédé d'extrapolation d'un signal décrit dans le document de Guleryuz, O.G. intitulé "Nonlinear approximation based image recovery using adaptive sparse reconstructions and iterated denoising", Image Processing, IEEE Transactions on Volume 15, Issue 3, March 2006 Page(s):539 - 571. A l'origine ce procédé d'extrapolation a été utilisé dans le but de masquer des erreurs. Le procédé de codage d'un bloc courant d'une image selon l'invention est décrit en référence à la figure 1. Lors d'une étape 10, on détermine, pour chaque pixel d'un bloc courant, un pixel de prédiction. Les pixels de prédiction forment un bloc de prédiction du bloc courant. Les pixels de prédiction sont obtenus par un seuillage, avec une valeur de seuil courante, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel du bloc courant à prédire. La fenêtre correspond au support de la transformée. La transformée utilisée est par exemple une DCT. Toutefois, l'invention ne se limite pas à cette dernière. D'autres transformées telle la Transformée de Fourier Discrète peuvent être appliquées. Selon l'invention, la valeur de seuil courante est déterminée ou codée à partir de pixels reconstruits voisins du bloc courant. En déterminant ou codant la valeur de seuil courante à partir de pixels reconstruits voisins du bloc courant, l'efficacité du codage est améliorée. Lors d'une étape 12, on extrait du bloc courant le bloc de prédiction formé des pixels de prédiction pour générer un bloc de résidus. Lors d'une étape 14, le bloc de résidus est codé dans un flux S. A titre d'exemple, le bloc de résidus est transformé, p.ex. par une DCT ou une transformée en ondelettes en un bloc de coefficients qui sont quantifiés puis codés par codage entropique. Selon une variante, le bloc de résidus est uniquement quantifié puis codé par codage entropique. L'étape 10 de détermination des pixels de prédiction est décrite plus précisément en références aux figures 2 et 3. Sur la figure 2, le pixel po ,o de prédiction correspondant au pixel en haut à gauche du bloc courant B à prédire. Les pixels identifiés sur la figure 2 par des croix sont des pixels connus, i.e. reconstruits. Le pixel po ,o est prédit afin de lui donner une valeur représentative de son environnement. La fenêtre F, dans sa position initiale Fo,o, recouvre au moins le pixel po,o à prédire. C'est sur cette fenêtre qu'est appliquée une transformation à l'étape 10. Lors d'une étape 100, une valeur initiale est affectée au pixel pu. . A titre de simple exemple, la valeur moyenne issue de pixels voisins est affectée au pixel po ,o . Cette valeur est notée pavo,o : pavo,o= (a+b+c)/3. Selon une variante, la valeur médiane des pixels a, b et c est affectée au pixel po ,o . Selon encore une autre variante, l'une des valeurs a, b ou c est affectée au pixel po ,o . Selon d'autres variantes, d'autres pixels situés dans le voisinage causal du pixel po,o sont pris en compte pour déterminer une valeur initiale pour le pixel pu. . Le voisinage causal d'un pixel courant comprend l'ensemble des pixels de l'image courante déjà reconstruits lors du codage (respectivement du décodage) du pixel courant. Lors d'une étape 110, une transformation est appliquée sur les pixels de fenêtre F. Ces pixels sont alors transformés en des coefficients. Lors d'une étape 120, les coefficients sont seuillés dans le domaine transformé à l'aide d'une valeur de seuil thopt. Ce seuillage a pour effet d'éliminer le bruit pour ne garder que les coefficients significatifs. Lors d'une étape 130, une transformée inverse de celle appliquée à l'étape 120 est appliquée pour revenir dans le domaine pixel de façon à récupérer une nouvelle valeur du pixel de prédiction notée p°ôo, les indices supérieurs de p°°iode valeurs nulles correspondent à un décalage nul de la fenêtre F en ligne et en colonne par rapport à la position initiale de la fenêtre. En référence aux figures 4 et 5, le même procédé que celui décrit en référence à la figure 3 est appliqué avec une fenêtre F décalée pour déterminer des pixels de prédiction pour les autres pixels du bloc courant B. Les pixels po,o à pn_l,m_1 sont donc prédits de manière itérative. Par rapport à la position Fo,o de la fenêtre F sur la figure 3, la fenêtre est décalée de 1 pixel vers la droite pour la détermination du pixel de prédiction po,l correspondant au pixel du bloc courant situé juste à la droite du pixel po,o . Sur la figure 5, a, b et c sont les pixels reconstruits voisins du pixel po 1 situés respectivement à gauche, au dessus et à la diagonale du pixel à prédire po 1 où a est plus précisément, dans le cas présent, égal à la valeur du pixel p°0 0 interpolé précédemment. Selon une variante la fenêtre en position Fo,o est décalée de 2 pixels vers la droite, i.e. dans la position F0,2. Dans ce cas, à la deuxième itération, on prédit le pixel po ,l et le pixel p02. Plus généralement, la fenêtre F peut être décalée de m pixels en m pixels. Afin de ne pas trop dégrader la prédiction, il est avantageux que la valeur de m reste petite. Lors de l'étape 100, la valeur moyenne issue des pixels voisins est affectée à p01. A titre d'exemple, la valeur (p0'0,0+b+c)/3. Cette valeur est notée pa 0,1. Les variantes décrites à l'étape 100 en référence au pixel po,o peuvent également s'appliquer. Lors d'une étape 110, une transformation est appliquée sur les pixels de fenêtre Fol. Ces pixels sont alors transformés en des coefficients. Lors d'une étape 120, les coefficients sont seuillés dans le domaine transformé avec la valeur de seuil thopt. Ce seuillage a pour effet d'éliminer le bruit pour ne garder que les coefficients significatifs. Lors d'une étape 130, une transformée inverse de celle appliquée à l'étape 110 est appliquée pour revenir dans le domaine pixel de façon à récupérer une nouvelle valeur du pixel de prédiction notée p0'01, où les indices supérieurs de p0'01 correspondent à un décalage de la fenêtre F de 0 en ligne et de 1 en colonne. Comme illustré sur la figure 5, le pixel po ,o est compris dans la fenêtre en position Fol. Donc lors du calcul du pixel de prédiction p01 une nouvelle valeur est également calculée pour le pixel po,o . En effet, lors de la transformation inverse, une valeur p~.0,0est affectée au pixel po o . Cette valeur p~ .0,0 peut être différente de celle p' 0,0 calculée à l'itération précédente (avec la fenêtre en Fo,o), lorsque la fenêtre F n'était pas décalée. Afin de tenir compte des deux valeurs calculées pour le pixel p00, i.e. celle pP;0,0obtenue à l'itération précédente pour un décalage nul de la fenetre F et celle p0.0,0 obtenue à l'itération courante pour un décalage de 0 en ligne et de 1 en colonne, une nouvelle valeur est affectée au pixel de prédiction pu. . Cette nouvelle valeur notée pInt.0,0 est par exemple égale à la moyenne des deux valeurs 0,0 ptr.0,0 0,1 ptr.0,0 ' et 0,1 «P 0,0 0,1 i.e. pInt.0,0 tr.0,0 ptr.0,0~ '2 Le procédé est réitéré jusqu'à ce que tous les pixels du bloc B soient prédits. A cet effet, lors d'une étape 140 on vérifie si le pixel courant est le dernier du bloc à prédire. Si c'est le cas alors l'étape de détermination du bloc de prédiction est terminée. Dans le cas contraire, la fenêtre F est décalée d'une colonne vers la droite s'il reste encore des pixels à prédire dans la ligne courante ou bien d'une ligne vers le bas de telle sorte à replacer la fenêtre en début de ligne. Toutefois, la manière de décaler la fenêtre F à chaque itération n'est pas fixée. Elle dépend de l'ordre de balayage défini pour le bloc à prédire. En référence aux figures précédentes, le balayage des pixels est réalisé pixel par pixel de gauche à droite puis ligne par ligne. Ce balayage n'est pas exclusif, un balayage de type zigzag est possible ainsi que d'autres, tels par exemple un balayage de la première ligne puis de la première colonne, puis de la seconde ligne puis de la seconde colonne et ainsi de suite. Les étapes 100 à 140 sont de nouveau appliquées avec la nouvelle position de la fenêtre. Une valeur pt sk,sl .s r.sk,sl est déterminee pour le nouveau pixel psk,s, à prédire. Une nouvelle valeur de prédiction est également calculée pour les pixels du bloc courant compris dans la fenêtre F pour lesquels une ou des valeur(s) de prédiction a(ont) déjà été calculée(s) lors des itérations précédentes. Pour ces pixels une nouvelle valeur de prédiction est déterminée comme décrit ci-dessus en référence au pixel po ,o de la manière suivante : sk sl pl tk,l ù (= tr.k /((sk ù k +1)(sl ù l +1)) p=k q=l Avec: - pstr.k,sk,l l est le pixel prédit en ligne k et colonne I du bloc à prédire lors de l'itération correspondant à la position Fsk,s, de la fenêtre F ; - sk et sl : les décalages respectivement en ligne et colonne de la fenêtre F , _ psk,sl est la valeur du pixel de prédiction en position (k, I) prédit Int.k,l récursivement par décalages successifs de la fenêtre F jusqu'à la position Fsk,si. Selon une variante, la somme pondérée est remplacé par la fonction médian pinsk'sl t.k,l = Median(pp,k l) ou une fonction de type pic d'histogramme. p=k..sk ' q=l..sl Selon un premier mode de réalisation, la valeur de seuil thopt est déterminée à partir d'une zone causale Zc, i.e. comprenant des pixels reconstruits dans un voisinage du bloc courant B, non nécessairement adjacent à ce bloc. Ce mode de réalisation est décrit en référence à la figure 7. Sur cette figure 7, les croix désignent des pixels reconstruits. Les croix sur fond gris désignent des pixels qui appartiennent à la zone causale Zc. Cette zone Zc est utilisée pour déterminer une valeur de seuil pour le bloc courant à prédire. A cette effet, le procédé décrit en référence aux figures 4 et 5, est appliqué sur les pixels de cette zone Zc afin de déterminer pour chacun d'entre eux un pixel de prédiction et ce pour plusieurs valeurs de seuil th;. Ainsi pour chacune des valeurs de seuil th;, une énergie est calculée sur la zone Zc. A titre de simple exemple illustratif, cette énergie va être calculée selon la formule suivante : 2 SSEi = E pE ZC où - p représente la position d'un pixel contenu dans le bloc, - Y est la valeur d'une donnée image (p.ex. luminance et/ou chrominance) du pixel dans le bloc courant à prédire, - pin, est la valeur de la prédiction déterminée pour une valeur de seuil th;. Une valeur de seuil thzc est déterminée pour la zone Zc comme étant celle générant l'énergie de prédiction SSE; minimale. Selon une variante l'énergie est calculée comme suit : SADi = E pE Bloc _ NxMY(p)ù pint.(p) 12 Selon une autre variante, l'énergie est calculée comme suit : Ei = Max Y(p)ùpint.(pl pE Bloc _ NxM Selon encore une autre variante, une fonction de pondération est introduite qui permet de relativiser l'erreur de prédiction des pixels de Zc en fonction de l'éloignement des pixels de Zc par rapport à la frontière du bloc à prédire. Les valeurs de cette fonction de pondération vont donc varier, par exemple, en fonction de la distance des pixels relativement au centre du bloc à prédire telles que : w8 8 a j) = c x pal iis)2+(i h15)2 1, j) = c Xp 2xV(i_55)2+(j_55)2 où: ^ c coefficient de normalisation, ^ p=0.8, ^ i et j correspondent aux coordonnées des coefficients de pondération dans le référentiel de la fenêtre de pondération, où le centre du bloc à prédire est en (5.5, 5.5) et (11.5, 11.5) respectivement pour des blocs de dimensions en 4x4 et 8x8, ^ l'origine (0, 0) étant en haut à gauche. La valeur de seuil thopt pour le bloc courant à prédire est égale à thzc. La zone Zc peut avoir différentes formes en fonction notamment de la disponibilité des pixels voisins. De même l'épaisseur de la zone peut aller au-delà de 1 pixel. Selon un second mode de réalisation, la valeur de seuil thopt est déterminée pour le bloc courant B en réitérant le procédé décrit en référence aux figures 4 et 5 avec différentes valeurs de seuils th; et en déterminant la valeur de seuil pour laquelle une erreur de prédiction calculée entre le bloc prédiction et le bloc courant est la plus petite. Ainsi pour chaque valeur de seuil th;, une énergie est calculée. A titre de simple exemple, cette énergie va être calculée selon la formule suivante : 2 SSEI = E(Y(p)ùprnr.(p» pe Bloc _ NxM où - p représente la position d'un pixel contenu dans le bloc, - Y est la valeur d'une donnée image (p.ex. luminance et/ou chrominance) du pixel dans le bloc courant à prédire, - plat est la valeur de la prédiction déterminée pour une valeur de seuil th;. La valeur de seuil thopt est celle générant l'énergie de prédiction SSE; minimale. Selon une variante l'énergie est calculée comme suit : Y(p)ù pint.(p) La valeur de seuil courante thopt déterminée selon ce second mode de réalisation est soit codée directement dans le flux S ou bien elle est 15 avantageusement codée dans le flux S par différence avec une valeur de seuil de prédiction thpred afin de diminuer son coût de codage. A titre d'exemple, la valeur de seuil de prédiction thpred est égale à la moyenne des valeurs de seuil thopt déterminées pour des blocs voisins du bloc courant et qui ont déjà été codés. Le bloc de gauche, le bloc supérieur et 20 le bloc supérieur gauche sont pris en compte. Selon une variante, le bloc supérieur droit est également pris en compte. Selon une autre variante, la valeur de seuil de prédiction thpred est égale à la médiane des valeurs de seuil thopt déterminées pour des blocs voisins du bloc courant et qui ont déjà été codés. 25 Selon encore une autre variante, la valeur de seuil de prédiction thpred est égale à thzc. A noter que si thopt est déterminée selon le premier mode de réalisation alors thopt=thzc auquel cas, la valeur de seuil n'est pas codée car elle peut être déterminée côté décodeur à partir des pixels de Zc de la même manière qu'elle l'a été côté codeur. SADi = E pE Bloc _ NxM Selon une autre variante, l'énergie est calculée comme suit : Ei = Max (p)ùpint.( 19E 1310c _ NxM 30 Selon un mode particulier de réalisation un bloc courant de taille 8x8 peut être prédit en déterminant une valeur de seuil courante pour le bloc 8x8 et en appliquant le procédé décrit en référence aux figures 4 et 5 avec une valeur de seuil courant notée th8x8 ou alors en divisant ce bloc 8x8 en quatre blocs 4x4 est en appliquant le procédé décrit en référence aux figures 4 et 5 indépendamment sur chaque bloc 4x4 avec la même valeur seuil courant pour chaque bloc notée th4x4, laquelle est déduite de th8x8 selon l'équation suivante : th4x4= a*th8x8, avec a strictement inférieur à 1. L'invention concerne également un procédé de décodage décrit en référence à la figure 8. Lors d'une étape 20, un bloc de résidus est décodé pour le bloc courant. A titre d'exemple, une partie d'un flux S 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 côté codeur. Un bloc de résidus est ainsi obtenu. Lors d'une étape 22, on détermine, pour chaque pixel d'un bloc courant, un pixel de prédiction. Les pixels de prédiction forment un bloc de prédiction du bloc courant. Les pixels de prédiction sont obtenus par un seuillage, avec une valeur de seuil courante, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins le pixel du bloc courant à prédire. La fenêtre correspond au support de la transformée. La transformée utilisée est par exemple une DCT. Toutefois, l'invention ne se limite pas à cette dernière. D'autres transformées telle la Transformée de Fourier Discrète peuvent être appliquées. Lors d'une étape 24, le bloc courant est reconstruit en fusionnant le bloc de prédiction avec le bloc de résidus décodé. L'étape 22 de détermination des pixels de prédiction est identique à l'étape 10 du procédé de codage. Toutefois côté décodeur la valeur de seuil thopt est soit décodée du flux S dans le cas où elle a été codée dans ce même flux côté codeur, soit elle est déterminée directement à partir de pixels reconstruits dans un voisinage du bloc courant. Selon un premier mode de réalisation, thopt est décodée du flux soit directement soit par ajout de la valeur décodée à une valeur de prédiction thpred dans le cas d'un codage différentiel de cette valeur. A titre d'exemple, la valeur de seuil de prédiction thpred est égale à la moyenne des valeurs de seuil thopt déterminées pour des blocs voisins du bloc courant et qui ont déjà été codés. A titre d'exemple, le bloc de gauche, le bloc supérieur et le bloc supérieur gauche sont pris en compte. Selon une variante, le bloc supérieur droit est également pris en compte. Selon une autre variante, la valeur de seuil de prédiction thpred est égale à la médiane des valeurs de seuil thopt déterminées pour des blocs voisins du bloc courant et qui ont déjà été codés. Selon encore une autre variante, la valeur de seuil de prédiction thpred est égale à thzc, où thzc est déterminée comme décrit côté codeur en référence à la figure 7. Selon un second mode de réalisation, la valeur de seuil thopt est déterminée directement à partir des pixels reconstruits dans la zone Zc de la même manière que décrit côté codeur en référence à la figure 7. Dans ce cas thopt est égale à thzc. Selon un mode particulier de réalisation applicable aux procédés de codage et de décodage, la taille de la fenêtre F dépend de la position dans le bloc courant du pixel à prédire comme illustré sur la figure 6. Sur cette figure la fenêtre en position Fo,o est de plus petite taille que la fenêtre en position Fn_1,m_ 1. Ceci a pour avantage d'améliorer la pertinence du bloc de prédiction. A titre de simple exemple illustratif, lorsque le bloc courant est de taille 4x4, la taille de la fenêtre est 4x4 pour les pixels situés sur les bords en haut et à gauche du bloc courant, i.e. premières lignes et premières colonnes et la fenêtre est de taille 8x8 pour les autres pixels du bloc courant. A ce titre, les dimensions de la (des) fenêtre(s) utilisée(s) ne se limitent pas à des puissances de 2. En effet, l'invention ne se limite pas à l'utilisation de transformations dites « rapides » lesquelles s'appliquent sur un nombre d'échantillons multiple de 2N. En outre, la transformation utilisée n'est pas nécessairement séparable. L'invention concerne également un dispositif de codage 12 décrit en référence à la figure 9 et un dispositif de décodage 13 décrit en référence à la figure 10. Sur les figures 9 et 10, les modules représentés sont des unités fonctionnelles, qui peuvent ou non correspondre à des unités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant, ou constituer des fonctionnalités d'un même logiciel. A contrario, certains modules peuvent éventuellement être composés d'entités physiques séparées En référence à la figure 9, 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 1. 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 spatiale. Seuls les modules du dispositif de codage 12 se rapportant au codage par prédiction spatiale ou codage INTRA sont représentés sur la figure 9. D'autres modules non représentés et connus de l'homme du métier des codeurs vidéo mettent en oeuvre le codage avec prédiction temporelle (p.ex. estimation de mouvement, compensation de mouvement). Le dispositif de codage 12 comprend notamment un module de calcul 1200 apte à extraire, par exemple par soustraction pixel à pixel, d'un bloc courant B un bloc de prédiction Pr pour générer un bloc de résidus Bres. Le module de calcul 1200 est apte à mettre en oeuvre l'étape 12 du procédé de codage selon l'invention. Il comprend en outre un module 1202 apte à transformer puis quantifier le bloc de résidus Bres 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 S de données codées. 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 Pr pour générer un bloc reconstruit qui est stocké dans une mémoire 1210. Un module de prédiction 1216 détermine le bloc de prédiction Pr. Le module de prédiction 1216 est apte à mettre en oeuvre l'étape 10 du procédé de codage selon l'invention. L'étape 14 du procédé de codage est mise en oeuvre dans les modules 1202 et 1204. En référence à la figure 10, le module de décodage 13 reçoit en entrée un flux SF 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 8. 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 S. 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 Pr 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 24 du procédé de décodage. Le dispositif de décodage 13 comprend en outre un module de prédiction 1308. Le module de prédiction 1308 détermine le bloc de prédiction Pr. Le module de prédiction 1308 est apte à mettre en oeuvre l'étape 22 du procédé de décodage selon l'invention. L'étape 20 du procédé de décodage 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. Ainsi, l'invention n'est pas limitée au type de transformée utilisée (p.ex. DCT, ondelettes, Transformée de Fourier Discrète, etc). De même, l'ordre de balayage des pixels peut varier (p.ex. raster scan, zigzag, etc). Par ailleurs l'invention n'est aucunement limitée par la manière de calculer une énergie (p.ex. SSE, SAD, Max, etc). L'invention s'applique au codage d'images fixes ou de séquences d'images. Revendications1. Procédé de codage d'un bloc de pixels, dit bloc courant, par prédiction spatiale comprenant les étapes suivantes : - déterminer (10), pour chaque pixel dudit bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil courante, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins ledit pixel dudit bloc courant et par transformation inverse appliquée sur lesdits coefficients seuillés; - extraire (12) dudit bloc courant un bloc de prédiction formé desdits pixels de prédiction pour générer un bloc de résidus ; - coder (14) ledit bloc de résidus ; ledit procédé étant caractérisé en ce que ladite valeur de seuil courante est déterminée ou codée à partir de pixels reconstruits voisins du bloc courant. 2. Procédé selon la revendication 1, dans lequel l'étape de détermination, pour chaque pixel dudit bloc courant, d'un pixel de prédiction est réitérée avec chaque valeur de seuil d'une pluralité de valeurs de seuil, le procédé comprenant en outre la sélection comme valeur de seuil courante, parmi la pluralité de valeurs de seuil, de la valeur de seuil pour laquelle une erreur de prédiction calculée entre le bloc courant et le bloc de prédiction est la plus petite. 3. Procédé selon la revendication 2, dans lequel ladite valeur de seuil courante est codée par différence avec une valeur de seuil de prédiction, laquelle valeur de prédiction dépend de pixels reconstruits voisins du bloc courant. 4. Procédé selon la revendication 3, dans lequel ladite valeur de seuil de prédiction est égale à la moyenne des valeurs de seuil utilisées dans des blocs voisins dudit bloc courant. 5. Procédé selon la revendication 3, dans lequel ladite valeur de seuil de prédiction est égale à la valeur médiane des valeurs de seuil utilisées dans des blocs voisins dudit bloc courant. 6. Procédé selon la revendication 3, dans lequel ladite valeur de seuil de prédiction est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit dans un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins ledit pixel reconstruit et par transformation inverse appliquée sur lesdits coefficients seuillés; - réitérer, avec chaque valeur de seuil d'une pluralité de valeurs de seuil, ladite étape de détermination d'un pixel de prédiction pour chaque pixel dudit voisinage ; - sélectionner comme valeur de seuil de prédiction, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite. 7. Procédé selon la revendication 1, dans lequel ladite valeur de seuil courante est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit dans un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins ledit pixel reconstruit et par transformation inverse appliquée sur lesdits coefficients seuillés; - réitérer, avec chaque valeur de seuil d'une pluralité de valeurs de seuil, ladite étape de détermination d'un pixel de prédiction pour chaque pixel dudit voisinage ; - sélectionner comme valeur de seuil courante, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite. 8. Procédé selon la revendication 6 ou 7, dans lequel l'erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants prend en compte, pour chacun des pixels reconstruits du voisinage du bloc courant leur distance par rapport au bord du bloc courant. 9. Procédé selon l'une des revendications 2 à 8 dans lequel, ladite valeur de seuil courante étant sélectionnée pour un bloc courant de taille 8x8, une valeur de seuil courante est calculée pour chacun des blocs de taille 4x4 du bloc courant par multiplication de ladite valeur de seuil courante sélectionnée par un coefficient a strictement inférieur à 1. 10. Procédé selon l'une des revendications 1 à 5, dans lequel la taille de ladite fenêtre dépend de la position dans le bloc courant du pixel à prédire. 15 11. Procédé de décodage d'un bloc courant de pixels par prédiction spatiale comprenant les étapes suivantes : - décoder (20) un bloc de résidus ; - déterminer (22), pour chaque pixel dudit bloc courant, un pixel de 20 prédiction par seuillage, avec une valeur de seuil courante, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins ledit pixel dudit bloc courant et par transformation inverse appliquée sur lesdits coefficients seuillés; - reconstruire (24) ledit bloc courant en fusionnant ledit bloc de résidus 25 décodé et le bloc de prédiction formé desdits pixels de prédiction; ledit procédé étant caractérisé en ce que ladite valeur de seuil courante est déterminée à partir de pixels reconstruits voisins du bloc courant. 12. Procédé selon la revendication 11, dans lequel ladite valeur de seuil 30 courante est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit dans un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrantau moins ledit pixel reconstruit et par transformation inverse appliquée sur lesdits coefficients seuillés; - réitérer avec chaque valeur de seuil d'une pluralité de valeurs de seuil, ladite étape de détermination d'un pixel de prédiction pour chaque pixel dudit voisinage ; - sélectionner comme valeur de seuil courante, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite. 13. Procédé selon la revendication 11, comprenant en outre les étapes suivantes : - décoder une différence de valeurs de seuil ; - déterminer une valeur de seuil de prédiction à partir de pixels reconstruits voisins du bloc courant; et - calculer la somme de ladite différence et de ladite valeur de seuil de prédiction, ladite somme étant ladite valeur de seuil courante. 14. Procédé selon la revendication 13, dans lequel ladite valeur de seuil de prédiction est déterminée selon les étapes suivantes : - déterminer, pour chaque pixel reconstruit d'un voisinage du bloc courant, un pixel de prédiction par seuillage, avec une valeur de seuil, de coefficients issus d'une transformation appliquée sur une fenêtre recouvrant au moins ledit pixel reconstruit et par transformation inverse appliquée sur lesdits coefficients seuillés; - réitérer avec chaque valeur de seuil d'une pluralité de valeurs de seuil, ladite étape de détermination d'un pixel de prédiction pour chaque pixel dudit voisinage ; et - sélectionner comme valeur de seuil de prédiction, parmi la pluralité de valeurs de seuil, la valeur de seuil pour laquelle une erreur de prédiction calculée entre les pixels reconstruits du voisinage du bloc courant et les pixels de prédiction correspondants est la plus petite.