Brevet FR3033116A1 — publié le 20160826

PROCEDE DE SELECTION D'UNE SOLUTION DE PLACEMENT DES PIXELS D'UNE IMAGE EN FONCTION DU RENDU VISUEL La présente invention concerne les algorithmes de traitement d'images numériques, et plus particulièrement, les algorithmes de compression d'images. Généralement, une image à afficher sur un écran, par exemple un écran de téléviseur, est représentée par des données numériques organisées en une structure matricielle représentant une grille de pixels, chaque pixel étant défini par une composante luminance ou plusieurs composantes couleur, par exemple des composantes de luminance Y et de chrominance, Cr et Cb. Chaque composante est définie par un niveau ou une amplitude pour le pixel considéré. Une telle structure de pixels, couramment appelée "bitmap", correspond donc pixel par pixel, à l'image (on parle alors d'image ou de trame "raster") qui doit être affichée sur un écran. Généralement, la structure de pixels est stockée dans le même format que celui utilisé pour le stockage dans la mémoire vidéo de l'écran. La trame raster ainsi stockée dans la mémoire vidéo est lue pixel par pixel sur une ligne et ligne par ligne. On parle alors de "raster scan". Actuellement, les trames utilisées pour la télévision numérique haute définition, dite "HDTV", présentent une taille dite "2k1k", c'est-à-dire de 1920 pixels par ligne sur 1080 lignes. La fréquence d'affichage des trames est généralement de 60 trames par seconde. Pour transmettre un tel signal d'image, fourni par un décodeur TV, sur une liaison filaire reliant le décodeur au téléviseur, il est nécessaire d'effectuer une compression du signal d'image délivré par le décodeur. En effet, transmettre un tel signal d'image sans compression requiert des vitesses de transfert extrêmement élevées qui sont généralement coûteuses et créent des interférences électromagnétiques. C'est la raison pour laquelle on effectue une compression du signal d'image fourni par le décodeur. Actuellement, une compression classique d'un tel signal peut être effectuée en appliquant un filtre passe-bas bidimensionnel sur les composantes de chrominance du signal d'image. Cependant, même si la qualité de l'image finalement affichée sur l'écran 3033116 2 reste acceptable, des informations haute fréquence du signal d'image peuvent être perdues. Par ailleurs, lorsqu'on souhaite appliquer une telle compression sur une trame d'image ayant cette fois-ci une taille dite "4k2k", c'est-à-dire 3840 pixels par ligne sur 2160 lignes, la partie vidéo de l'image 5 reste acceptable, avec les inconvénients mentionnés ci-avant, mais par contre les graphiques et les textes colorés sont dégradés (couleurs floues et diminution des contrastes). Appliquer une telle compression sur une taille de trame encore plus élevée, par exemple "8k4k", devient encore plus problématique. 10 La Demanderesse a donc proposé un procédé de compression d'image (cf. WO 2014/118148), appelé "compression fonctionnelle paramétrique" ou PFC, offrant l'avantage de limiter les dégradations visibles susceptibles d'apparaitre dans les images décompressées. Ce procédé de compression comprend : 15 pour chaque composante couleur des pixels de l'image, la subdivision de l'image de pixels en blocs de plusieurs pixels voisins, pour chaque bloc, la formation d'un groupe ordonné de valeurs de pixel en fonction de la valeur de leur composante couleur, et l'approximation de la composante couleur des pixels de chaque bloc 20 ordonné par une fonction d'approximation monotone à une variable liée aux rangs des pixels ordonnés dans le groupe ordonné, le signal d'image compressé comportant, pour chaque composante couleur et pour chaque bloc de pixels de l'image, des informations de position correspondant aux valeurs de pixels ordonnées dans le bloc et des caractéristiques de la 25 fonction d'approximation associée à ce bloc. Pour réduire le nombre de bits nécessaires pour coder la position des pixels dans chaque bloc, il peut être prévu de diviser chaque bloc en groupes de pixels selon une répartition particulière dans le bloc, par exemple en forme de damier, les positions des pixels associées aux valeurs ordonnées 30 sont alors déterminées dans chaque groupe. Par exemple, si l'on considère des blocs de 4 x 4 pixels divisés en deux groupes de 8 pixels, le codage des positions des pixels associées aux valeurs ordonnées dans chaque groupe nécessite au moins 16 bits. Un bloc complet nécessite alors 32 bits auxquels s'ajoutent un ou plusieurs bits de codage de la forme de répartition des pixels dans chaque groupe, si 3 0 3 3 1 1 6 3 plusieurs formes de répartition peuvent être utilisées pour compresser une même image. Par ailleurs, les normes de codage ou de compression d'image tels que JPEG, MPEG, H264 et HEVC nécessitent à l'encodage la mise en 5 oeuvre de boucles de prédiction pour optimiser l'efficacité de la compression. Ces boucles de prédiction appliquent des critères de minimisation d'erreur tels que SAD (Sum of Absolute Difference) ou MSE (Mean Square Error). Il s'avère que ces critères peuvent conduire à plusieurs solutions mathématiquement équivalentes. Cependant, il peut être constaté que ces 10 solutions mathématiquement équivalentes ne sont généralement pas équivalentes sur le plan visuel, et ne permettent pas d'éviter l'apparition dans les images décodées de pixels isolés ou d'artefacts visuels, tels que des effets de bloc (blockiness), de pixellisation ou des effets d'écho. Il peut être souhaitable de proposer un procédé de placement de 15 pixels dans le cadre du procédé de compression PFC ou d'un procédé de correction des pixels dans un signal d'image, qui tienne compte du système visuel humain. A cet effet, il peut être souhaitable de proposer un critère de sélection d'une solution de placement ou de correction des pixels d'un groupe de pixels dans une image parmi plusieurs solutions 20 mathématiquement équivalentes, qui tienne compte du système visuel humain. Il peut être également souhaitable de proposer un critère de simplification des calculs utilisés dans les traitements d'image, tout en préservant la qualité visuelle de l'image traitée. Il peut être également souhaitable de réduire le nombre de bits utilisés 25 pour coder la position des pixels d'une image dans un signal d'image compressée, généré par un système nécessitant la transmission de ces positions, tel qu'un système de compression PFC, pour augmenter le taux de compression de l'image. Des modes de réalisation concernent un procédé de traitement 30 d'image, mis en oeuvre dans un calculateur, le procédé comprenant des étapes consistant à : appliquer un traitement par groupe de pixels à une image d'origine pour obtenir un signal d'image finale, pour chaque groupe de pixels, calculer un cumul d'écarts de valeurs ou de positions des pixels du groupe de pixels, pour chaque groupe de pixels, attribuer dans le signal 35 d'image finale une position de pixel du groupe de pixels à chaque valeur de 3033116 4 pixel du groupe de pixels, de manière à minimiser le cumul d'écarts calculé pour le groupe de pixels, et/ou pour chaque groupe de pixels, déterminer une intensité de filtrage en fonction du cumul d'écarts calculé pour le groupe de pixels, et appliquer au groupe de pixels un filtrage ayant l'intensité de 5 filtrage. Selon un mode de réalisation, le calcul du cumul d'écarts pour l'un des groupes de pixels de l'image comprend des étapes consistant à : définir un intervalle pour chaque position de pixel du groupe de pixels de l'image finale, à partir de valeurs de pixels voisins dans l'image finale de la position 10 de pixel, et pour chaque valeur de pixel du groupe de pixels, et pour chaque intervalle défini pour une position du groupe de pixels, calculer un écart entre la valeur de pixel et l'intervalle. Selon un mode de réalisation, chaque intervalle est défini pour une position de pixel du groupe de pixel de l'image finale en fonction d'un 15 intervalle défini à une position correspondante dans l'image d'origine en fonction des valeurs dans l'image d'origine des pixels voisins de la position de pixel. Selon un mode de réalisation, chaque intervalle est défini pour une position de pixel dans l'image finale, soit entre la plus petite valeur et la plus 20 grande valeur, parmi les valeurs dans l'image finale des pixels voisins de la position de pixel, si la valeur dans l'image d'origine du pixel à la position de pixel, est comprise entre la plus petite valeur et la plus grande valeur, parmi les valeurs dans l'image d'origine des pixels voisins de la position de pixel, soit entre une valeur minimum et la plus petite valeur parmi les valeurs dans 25 l'image finale des pixels voisins de la position de pixel, si la valeur dans l'image d'origine du pixel à la position de pixel est inférieure à la plus petite valeur parmi les valeurs dans l'image d'origine des pixels voisins de la position de pixel, soit entre la plus grande valeur parmi les valeurs dans l'image finale des pixels voisins de la position de pixel et une valeur 30 maximum, si la valeur dans l'image d'origine du pixel à la position de pixel est supérieure à la plus grande valeur parmi les valeurs dans l'image d'origine des pixels voisins de la position de pixel. Selon un mode de réalisation, chaque intervalle est défini pour une position de pixel dans l'image finale, entre une borne inférieure choisie égale 35 à la valeur d'un premier pixel voisin parmi les valeurs des pixels voisins, et 3033116 5 une borne supérieure choisie égale à la valeur d'un second pixel voisin, la position du premier pixel voisin étant la position de la plus grande valeur parmi les valeurs des pixels voisins dans l'image d'origine, inférieures à la valeur du pixel dans l'image d'origine, la position du second pixel voisin étant 5 la position de la plus petite valeur parmi les valeurs des pixels voisins dans l'image d'origine supérieures à la valeur du pixel dans l'image d'origine. Selon un mode de réalisation, l'image comprend plusieurs couches, les pixels voisins utilisés pour déterminer l'intervalle d'une position de pixel appartenant à une couche adjacente de la couche où se trouve la position de 10 pixel. Selon un mode de réalisation, l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel du groupe de pixels, comprend des étapes consistant à : pour chaque valeur de pixel du groupe de pixels et chaque position de pixel du groupe de pixel, calculer une probabilité que la 15 valeur de pixel se trouve à la position de pixel, en fonction de l'écart entre la valeur de pixel et l'intervalle défini pour la position de pixel, et attribuer dans le signal d'image finale les valeurs de pixel aux positions de pixels du groupe de pixels en fonction des probabilités calculées, de manière maximiser un cumul des probabilités associées aux attributions de valeurs de pixels aux 20 positions de pixels effectuées. Selon un mode de réalisation, l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel du groupe de pixels, comprend des étapes consistant à : sélectionner la position de pixel et la valeur de pixel correspondant à la probabilité la plus élevée parmi les probabilités calculées, 25 et attribuer la valeur de pixel sélectionnée à la position de pixel sélectionnée dans le signal d'image finale, et exécuter l'étape de sélection pour chaque position de pixel ou valeur de pixel restant à attribuer. Selon un mode de réalisation, l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel du groupe de pixels comprend 30 des étapes consistant à : pour chaque pixel du groupe de pixels, calculer un cumul de toutes les probabilités calculées pour le pixel, pour chaque position du groupe de positions, calculer un cumul de toutes les probabilités calculées pour la position, sélectionner la position de pixel ou la valeur de pixel correspondant au cumul de probabilité le plus faible, et attribuer la valeur de 35 pixel correspondant à la probabilité la plus élevée calculée pour la position 3033116 6 de pixel sélectionnée, à la position de pixel sélectionnée, ou attribuer la position de pixel correspondant à la probabilité la plus élevée calculée pour la valeur de pixel sélectionnée, à la valeur de pixel sélectionnée, et exécuter l'étape de sélection pour chaque position de pixel ou valeur de pixel restant à 5 attribuer. Selon un mode de réalisation, l'image est découpée en blocs de pixels, et chaque bloc est divisé en deux groupes de pixels, de sorte que chaque paire de deux pixels adjacents du bloc comprenne un pixel de chaque groupe, seules les positions des pixels d'un seul des deux groupes 10 figurant dans le signal d'image finale, et les valeurs de pixel étant attribuées aux positions du groupe de pixels dont les positions de pixel ne se trouvent pas dans le signal d'image. Selon un mode de réalisation, le procédé comprend une étape de sélection d'un premier des deux groupes de pixels pour lequel les positions 15 de pixel figurent dans le signal d'image finale, de manière à minimiser un nombre d'erreurs générées, l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel étant effectuée sur un second des deux groupes de pixels. Selon un mode de réalisation, le calcul du cumul d'écarts pour l'un 20 des groupes de pixels de l'image comprend des étapes de calcul d'un d'écart entre un rang de chaque pixel du groupe de pixels dans l'image finale et un rang d'un pixel correspondant dans l'image d'origine, pour chaque solution de placement d'un ensemble de plusieurs solutions de placement des pixels du groupe de pixels dans l'image finale. 25 Selon un mode de réalisation, l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel du groupe de pixels comprend des étapes de : calcul pour des hypothèses d'attribution des positions du groupe de pixels aux pixels du groupe de pixels, d'un cumul des écarts calculés selon l'hypothèse, et sélection de l'hypothèse correspondant au 30 cumul le plus faible. Des modes de réalisation concernent également un dispositif de traitement d'image, configuré pour exécuter le procédé tel que précédemment défini. 3033116 7 Des exemples de réalisation de l'invention seront décrits dans ce qui suit, à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente schématiquement un système de compression / décompression d'image, 5 la figure 2 représente schématiquement une image dont les pixels sont répartis dans des blocs, la figure 3 représente schématiquement un bloc de pixels d'une image, la figure 4 représente sur un graphe des valeurs de pixel d'un groupe, 10 ordonnées par amplitude croissante et la courbe d'une fonction d'approximation des valeurs de ces pixels. La figure 1 représente un système de compression / décompression d'image. Ce système comprend un dispositif de compression CMP d'un signal d'image IMG comportant une séquence de pixels. Chaque pixel du 15 signal d'image IMG peut comprendre une ou plusieurs composantes. S'il s'agit d'une image noir et blanc, chaque pixel est défini par une unique composante d'intensité. S'il s'agit d'une image en couleurs, chaque pixel est défini par trois composantes d'amplitude, telles que rouge R, vert G et bleu B pour un signal d'image RGB, ou luminance Y et chrominance Cb et Cr pour 20 un signal d'image YCbCr. Le dispositif de compression CMP est configuré pour fournir pour chaque composante un signal d'image compressé CIS. Le signal CIS peut être fourni à un dispositif de décompression DCM, par exemple pour pouvoir être ensuite affiché sur un écran DSP. Le dispositif DCM est configuré pour reconstituer chaque composante des pixels d'une 25 image IMG' à partir du signal d'image compressé CIS. Le dispositif de compression CMP traite généralement séparément chaque composante du signal d'image IMG, soit en parallèle, soit séquentiellement. La figure 2 représente les composantes Cp des pixels de l'image IMG. Les pixels de l'image IMG sont répartis dans des blocs B(i,j) de 30 données d'image comprenant des pixels de plusieurs lignes consécutives et de plusieurs colonnes consécutives de l'image IMG. Ainsi, dans l'exemple de la figure 2, les blocs B(i,j) comprennent 4 x 4 pixels. Chaque valeur de composante de chaque pixel peut par exemple être codée sur un nombre de bits compris entre 8 et 16 bits. 3033116 8 Dans le cas du procédé de compression PFC, chaque bloc B(i,j) pour chaque composante est divisé en deux groupes de valeurs de pixel. La figure 3 représente un bloc B(j,j) comprenant un premier groupe rassemblant des valeurs de pixel V1 à V8 et un second groupe rassemblant des valeurs de 5 pixel P1 à P8. Dans l'exemple de la figure 3, les deux groupes présentent la configuration d'un damier. Bien entendu, d'autres configurations peuvent être envisagées. Par exemple chaque groupe peut rassembler deux lignes complètes ou deux colonnes complètes, entrelacées avec les lignes ou les colonnes appartenant à l'autre groupe. 10 Pour chaque composante de pixel, les valeurs de pixel dans chaque groupe sont ordonnées en fonction de leur amplitude ou valeur, par exemple par amplitude croissante. Par souci de clarté, le terme "valeur" (de pixel) utilisé dans ce qui suit, désigne l'amplitude d'une composante d'un pixel. Le rang d'origine de chaque pixel dans chaque groupe est mémorisé pour 15 permettre de déterminer la position du pixel dans l'image compressée à partir de paramètres d'une fonction d'interpolation. Ainsi, la position de chaque pixel Vj, Pj dans l'image peut être déterminée par la correspondance entre son rang dans le groupe ordonné auquel il appartient, et son rang d'origine dans son groupe avant que celui-ci ne soit ordonné par valeurs croissantes, 20 et par la configuration de répartition des pixels en deux groupes dans le bloc B(i,j). Les valeurs des pixels ainsi ordonnés sont ensuite approximées par une fonction monotone donnant une valeur approximative de la valeur de chaque pixel en fonction du rang ordonné du pixel. La figure 4 représente sur un graphe les valeurs P1' à P8' d'un groupe 25 pour une composante, en fonction de leur rang PXR dans le groupe ordonné, les valeurs P1' à P8' résultant d'un ordonnancement par valeur croissante, par exemple des valeurs P1 à P8 de la figure 3. La figure 4 représente également deux segments SG1, SG2 définissant une fonction d'interpolation de la valeur des pixels. Le segment SG1 fournit une valeur approchée P1a- 30 P4a pour chacune des valeurs P1' à P4' et le segment SG2 fournit une valeur approchée P5a-P8a pour chacune des valeurs P5' à P8'. La pente de chacun des segments SG1, SG2 est calculée de manière à minimiser les écarts entre chaque valeur d'amplitude P1' à P8' dans l'image d'origine et la valeur approchée correspondante P1a à P8a. Le critère de minimisation de 35 ces écarts peut mettre en oeuvre une fonction de calcul d'écarts de type SAD 3033116 9 (Sum of Absolute Differences) ou MSE (Mean Square Error). Les valeurs des pixels V1-V8 sont également ordonnées par valeurs croissantes pour obtenir un groupe V1' à V8' de valeurs ordonnées. Les valeurs V1' à V8' sont ensuite approximées par deux segments. Ces valeurs approximées sont 5 notées V1a à V8a. Dans l'exemple du bloc B(i,j) de la figure 3, les pentes des segments SG1 et SG2 ainsi obtenues pour chacun des groupes ordonnés P1' à P8' et V1' à V8' issus de l'ordonnancement des groupes P1 à P8 et V1 à V8, sont quantifiées par exemple sur 8 bits. Les valeurs des pixels de chaque groupe 10 sont donc définies dans le signal d'image compressé CIS par des données définissant la pente de chaque segment SG1, SG2, ainsi qu'un point de chacun de ces segments, par exemple le point final ou initial du segment. Les rangs d'origine respectifs des pixels P1a à P8a et V1a à V8a dans chacun des deux groupes ordonnés sont transmis dans le signal d'image 15 compressée CIS. Il s'avère que le critère de minimisation des écarts pour déterminer les pentes des segments SG1 et SG2 peut conduire à plusieurs solutions mathématiquement équivalentes, mais visuellement différentes. Il peut également se produire que deux pixels de même valeur ou ayant des valeurs 20 proches pour une composante dans l'image d'origine soient affectés à deux valeurs différentes par le traitement de décompression exploitant la fonction d'interpolation. Ainsi dans l'exemple de la figure 4, les pixels P6' et P7' présentent des valeurs identiques ou proches dans l'image d'origine et des valeurs compressées P6a, P7a différentes sur le segment SG2. A la 25 décompression, l'attribution des valeurs compressées P6a, P7a aux pixels P6' et P7' peut conduire à des artefacts visibles dans l'image finale décompressée. Selon un mode de réalisation, les positions de deux pixels de l'image d'origine peuvent être interverties dans l'image compressée, lorsque ces 30 deux pixels ont des valeurs d'amplitude identiques ou proches dans l'image d'origine. Pour déterminer si une interversion de position doit être appliquée à deux pixels de l'image compressée, on définit pour chacune des deux positions de pixel un intervalle dans lequel la valeur compressée du pixel doit se trouver. Cet intervalle peut être défini en fonction de la valeur de ce pixel 35 (par exemple P4) dans l'image d'origine, et en fonction des valeurs des 3033116 10 pixels dans l'image finale, voisins de la position de pixel considérée, de la manière suivante : si la valeur du pixel considéré, par exemple P4, dans l'image d'origine est située entre les valeurs minimum et maximum des pixels voisins V2, V3, 5 V4, V6 dans l'image d'origine, l'intervalle à prendre en compte est défini par les valeurs minimum et maximum des pixels voisins V2, V3, V4, V6, si la valeur du pixel (P4) dans l'image d'origine est supérieur à la valeur maximum des pixels voisins (V2, V3, V4, V6) dans l'image d'origine, l'intervalle à prendre en compte est défini par la valeur maximum des pixels 10 voisins et la valeur maximum possible, c'est-à-dire la valeur du pixel maximale des voisins V2,V3,V4,V6 dans l'exemple de la figure 4, et 255 (si les valeurs de pixel sont représentées par des entiers non signés codés sur 8 bits), et si la valeur du pixel (P4) dans l'image d'origine est inférieure à la 15 valeur minimum des pixels voisins (V2, V3, V4, V6) dans l'image d'origine, l'intervalle à prendre en compte est défini par la valeur minimum possible et la valeur minimum des pixels voisins (V2, V3, V4, V6), c'est-à-dire 0 (si les valeurs de pixel sont représentées par des entiers non signés codés sur 8 bits) et la valeur minimale des pixels voisins V2,V3,V4,V6 dans l'exemple de 20 la figure 4. A cet intervalle défini dans l'image d'origine, on fait correspondre un intervalle dans l'image décompressée défini de la manière suivante, par exemple pour P4 : si l'intervalle dans l'image d'origine est défini par les valeurs minimum 25 et maximum des pixels voisins V2, V3, V4, V6, alors l'intervalle correspondant dans l'image décompressée est défini par les valeurs minimum et maximum des valeurs après décompression associées aux positions des pixels voisins, V2, V3, V4, V6, si l'intervalle dans l'image d'origine est défini par la valeur maximum 30 des pixels voisins et la valeur maximum possible, alors l'intervalle correspondant dans l'image décompressée est défini par la valeur maximum des valeurs de pixel après décompression associées aux positions des pixels voisins V2, V3, V4, V6 et la valeur maximum possible, et si l'intervalle dans l'image d'origine est défini par la valeur minimum 35 possible et la valeur minimum des pixels voisins, alors l'intervalle 3033116 11 correspondant dans l'image décompressée est défini par la valeur minimum possible et la valeur minimum des valeurs après décompression associées aux positions des pixels voisins V2, V3, V4, V6. Les pixels voisins d'une position de pixel peuvent comprendre tout ou 5 partie des 8 pixels entourant la position de pixel (par exemple pour la position de pixel P4, les pixels P1, V2, P2, V3, V4, P5, V6, P6). Il est à noter également que les valeurs minimum et maximum de l'intervalle dans l'image d'origine à prendre en compte pour une position de pixel peuvent être définies non pas à partir des valeurs minimum et maximum des pixels voisins 10 de la position de pixel considérée, mais en sélectionnant parmi les valeurs des pixels voisins, la valeur inférieure et la valeur supérieure les plus proches de la valeur du pixel à la position considérée dans l'image d'origine. L'intervalle correspondant dans l'image décompressée est alors défini par les valeurs dans l'image décompressée des deux pixels voisins dont la position 15 correspond dans l'image d'origine aux deux positions voisines déterminant les bornes de l'intervalle dans l'image d'origine. Dans le cas où deux valeurs identiques ou proches dans l'image d'origine correspondent à des valeurs décompressées différentes, l'encodeur réalisant la compression effectue une prédiction de la fidélité obtenue à la 20 décompression en appliquant la méthode suivante. On calcule un écart entre chacune des deux valeurs de pixel décompressées avec l'intervalle défini dans l'image décompressée pour chacun des deux pixels aux positions qui seraient attribuées à chacun, dans le cas où le positionnement des deux pixels dans l'image décompressée se fait selon les rangs attribués par 25 l'ordonnancement par défaut des valeurs d'origine. On entend ici par "ordonnancement par défaut", l'ordonnancement réalisé entre deux valeurs d'origine égales ou proches, et qui désigne arbitrairement laquelle de ces deux valeurs est considérée la plus petite et laquelle de ces deux valeurs est considérée la plus grande. Cet écart est nul si la valeur de pixel 30 décompressée appartient à l'intervalle considéré, et égal à l'écart entre la valeur du pixel et la valeur minimum ou maximum de l'intervalle, selon que la valeur du pixel est inférieure ou supérieure à l'intervalle considéré. De la même façon, on définit un écart entre chacune des deux valeurs de pixel décompressées avec l'intervalle défini dans l'image décompressée 35 pour chacun des deux pixels aux positions précédentes interverties. On 3033116 12 calcule ensuite une première somme des écarts calculés pour les deux pixels lorsque les deux pixels sont aux positions qui résulteraient du réarrangement par défaut, et une seconde somme des écarts calculés pour les deux valeurs de pixel lorsque les positions des deux pixels sont interverties. Les positions 5 des deux pixels sont interverties dans le signal d'image compressée CIS lorsque la seconde somme est inférieure à la première somme. Cette interversion éventuelle est effectuée par l'encodeur en transmettant dans le signal compressé les informations de rang interverties. Cette interversion est donc transparente pour le décodeur. 10 Ce procédé est appliqué pour chacune des composantes de l'image. Ce procédé peut être également appliqué à trois pixels ayant des valeurs identiques ou proches dans l'image d'origine. Dans ce cas, six solutions sont possibles (= 3!) pour le placement des trois pixels. La solution choisie est celle pour laquelle la somme des écarts est la plus petite. 15 Selon un autre mode de réalisation, le taux de compression d'image est augmenté en transmettant dans le signal d'image compressé, seulement certaines des positions des valeurs de pixel ordonnées dans chaque bloc. Les positions absentes du signal d'image sont déterminées par un calcul de probabilité en fonction des valeurs des pixels voisins dans l'image 20 décompressée. Intuitivement, il y a une forte probabilité que la valeur d'un pixel à placer soit située dans un intervalle [IMn(1), IMx(1)] défini par les valeurs minimum IMn(l) et maximum IMx(1) des valeurs des pixels voisins d'une position Pl de pixel à attribuer, ou soit située proche de cet intervalle. En revanche, les pixels ayant une valeur éloignée de cet intervalle 25 apparaissent isolés et risquent être perçus comme du bruit. Ceci revient à définir l'intervalle dans l'image décompressée sans avoir la référence d'un intervalle défini à partir de l'image d'origine, car non disponible. En effet, il peut être considéré que l'intervalle d'origine tel que précédemment défini correspond dans une large majorité de cas à l'intervalle défini par les valeurs 30 minimale et maximale des voisins dans l'image d'origine. Dans l'exemple de configuration des groupes de la figure 3, seules les positions des valeurs ordonnées V1' à V8' correspondant aux valeurs de pixel V1 à V8, sont codées dans le signal d'image compressée, tandis que les positions respectives des valeurs ordonnées P1' à P8' sont déterminées 35 en fonction de valeurs des pixels V1 à V8. A cet effet, on considère qu'il y a 3033116 13 une forte probabilité qu'une valeur pixel soit à une certaine position de pixel, par exemple la position P4, si sa valeur se trouve dans un intervalle [IMn(4), IMx(4)] défini par les valeurs minimum et maximum des pixels voisins V2, V3, V4, V6 de la position P4. Pour les positions de pixel voisines 5 des bords du bloc B(i,j), cet intervalle peut être défini si possible en utilisant les valeurs des pixels voisins situés dans les blocs adjacents du bloc B(i,j). Ainsi, les valeurs des pixels voisins de la position P3 considérées pour définir cet intervalle peuvent être celles des pixels V1, V3 et V5 du bloc B(i,j) et celle du pixel V4 du bloc B(i-1,j). Si les valeurs des pixels des blocs adjacents ne 10 sont pas disponibles, cet intervalle peut être défini en tenant compte seulement des valeurs des pixels voisins du bloc B(i,j), donc seulement des valeurs des pixels V1, V3 et V5 pour le pixel P3. Dans le cas où l'image est composée de plusieurs couches superposées, les pixels voisins à prendre en compte pour déterminer 15 l'intervalle associé à une position de pixel peuvent également comprendre le pixel en regard de la position de pixel considérée dans chaque couche d'image adjacente, ou tout ou partie de l'ensemble comprenant le pixel en regard et les huit pixels entourant ce pixel dans la couche adjacente. Pour déterminer la position des huit valeurs de pixel d'un bloc B(i,j) 20 non associées à une position dans le signal d'image compressée CIS, on considère une matrice de 8 x 8 valeurs In(k,l), les indices k et l pouvant prendre toutes les valeurs entre 1 et 8, telle que : In(k,l) = 1 si la valeur de pixel Ck se trouve dans l'intervalle [IMn(l), IMx(l)] défini par les valeurs des pixels voisins de la position Pl dans 25 l'image, et In(k,l) = 0 sinon. Le nombre de valeurs de pixel candidates pour la position Pl dans le bloc B(i,j) peut donc être calculé de la manière suivante : NCL(l) = E18,.1 In(k,l) (1) 30 On considère également une matrice Ppos de 8 x 8 coefficients Ppos(k,l) égaux chacun à une estimation de la probabilité qu'à la position Pl se trouve le pixel de valeur Ck. Les coefficients Ppos(k,l) de la matrice Ppos peuvent être déterminés de la manière suivante : Ppos(k,l) = FL(NCL(1)) / NCL(1) (2) 3033116 14 lorsque la valeur Ck se trouve dans l'intervalle [IMn(1), IMx(1)] défini par les valeurs des pixels voisins de la position PI, FL(1) étant une fonction croissante entre 0 et 1 sur l'intervalle [0, 8] avec FL(0) = 0, FL(8) = 1. A titre d'exemple, la fonction FL présente les valeurs définies par le Tableau I 5 suivant : Tableau I 1 0 1 2 3 4 5 6 7 8 FL(1) 0 86/240 132/240 165/240 192/240 210/240 222/240 238/240 1 Il peut être observé dans l'équation (2) que les coefficients Ppos(k,l) diminuent lorsque le nombre NCL(1) de valeurs de pixel candidates Ck pour la position PI augmente. Cela signifie que plus le nombre de valeurs de pixel 10 candidates appartenant à l'intervalle [IMn(1), IMx(1)] d'une position PI à attribuer est élevé, plus la probabilité que l'une ces valeurs de pixel Ck soit à cette position PI est faible. Des statistiques réalisées à partir d'images représentant des contenus naturels ont permis d'établir qu'il n'y a pas de raison particulière de favoriser 15 une valeur parmi celles appartenant à l'intervalle [IMn(1), IMx(1)], que ce soit l'une des valeurs de l'intervalle correspondant à la valeur de l'un des voisins ou une valeur proche du milieu de l'intervalle par exemple. Cependant, sur des images particulières, comme des images de texte, il peut être pertinent de favoriser à une position PI des valeurs de pixel candidates proches de 20 l'une des valeurs des pixels voisins de cette position. Dans le cas où NCL(1) = 8, le coefficient Ppos(k,l) est défini par l'équation (2) pour tout indice k. En revanche, dans les cas où NCL(1) IMx(1), (3) Dist(k,l) = IMn(1) - Ck si Ck TP(cl), le couple valeur-position choisi est (Cmk, Pcl), mk étant tel que : 35 Prb(mk,cl) = (Prb(k,cl)) (20) 3033116 18 La sélection du couple valeur-position (Cck, Pml) ou (Cmk, Pcl) permet de placer la valeur Cck à la position Pml, respectivement, la valeur Cmk à la position Pcl. On procède ensuite de même avec les valeurs restantes des sommes TC(k) et TP(l), pour placer les autres valeurs de pixel Ck aux 5 positions Pl non encore attribuées, jusqu'à ce que toutes les valeurs de pixel Ck soient placées et donc que toutes les positions de pixel Pl soient attribuées. L'exemple de calcul décrit précédemment permet de déterminer la position des valeurs de pixel ordonnées P1' à P8' (figure 4) du second 10 groupe, à partir de la position et de la valeur décompressée de chacun des pixels V1 à V8 du premier groupe. Il peut être également envisagé de transmettre les positions respectives des valeurs de pixel ordonnées P1' à P8' du second groupe, et de déterminer d'une manière analogue les positions respectives des valeurs de pixel ordonnées V1' à V8' du premier 15 groupe. Selon un mode de réalisation, chacun des intervalles définis par les valeurs minimum et maximum des valeurs décompressées P1a-P8a et V1aV8a des pixels des deux groupes P1-P8, V1-V8 de pixels sont testés. Si l'intervalle d'un des deux groupes est contenu dans l'intervalle de l'autre 20 groupe, on choisit de transmettre les positions des pixels du groupe ayant l'intervalle le plus large. Dans le cas contraire, on choisit par défaut de transmettre les positions des pixels d'un des deux groupes, par exemple le premier groupe. Bien entendu, la méthode basée sur le calcul de la matrice de 25 probabilités Prb qui vient d'être décrite, est également applicable au cas où certaines des positions dans l'image d'origine des valeurs de pixel Ck sont connues. Dans ce cas, seule la définition des intervalles associés aux positions de pixel à attribuer, est adaptée pour tenir compte des valeurs des pixels à des positions connues dans l'image décompressée, conformément à 30 l'une ou l'autre des définitions présentées précédemment. Plus généralement, on considère un groupe de n valeurs de pixel X1 à Xn voisins dans une image d'origine, et un groupe correspondant de n pixels dans une image finale obtenue en appliquant un traitement à l'image d'origine, la position i de chacun des pixels Xi étant associée à un rang Rin(i) 35 dans le groupe ordonné de l'image d'origine. Le traitement fournit une image 3033116 19 finale dans laquelle le groupe de pixels Xi est transformé en un groupe de pixels Yi dans lequel les pixels Yi peuvent occuper des positions conformes à plusieurs solutions de placement mathématiquement équivalentes. Ainsi, chaque pixel Yi du groupe dans l'image finale correspondant au groupe Xi 5 dans l'image d'origine peut être associé à un rang Rout(i,j) dans le groupe ordonné dans l'image finale pour la solution de placement j. Selon un mode de réalisation, on cherche à minimiser les écarts entre les rangs Rout(i) des pixels Yi dans le groupe ordonné de valeurs de pixel dans l'image finale par rapport aux rangs Rin(i) des pixels Xi du groupe correspondant dans l'image 10 d'origine. Ainsi, on définit une fonction de coût Fj associée à une solution de placement des pixels Yi, telle que : Fj = A(Rin(k))-1Rout(k,j) - Rin(k)I, (21) dans laquelle lx1 représente la valeur absolue du nombre x, Rout(k,j) est le rang du pixel Yk selon la solution j, et A(Rin(k)) est un paramètre pouvant 15 être égal à 1 par défaut ou utilisé pour donner un poids plus élevé à la préservation de la position de certaines valeurs de pixel dans le groupe de pixels Xi considéré, par exemple les valeurs extrêmes du groupe. La solution sélectionnée pour le placement des pixels Yi dans l'image finale est celle qui correspond à une valeur minimum de la fonction de coût Fj. Il est à noter que 20 la solution telle que Rout(k,j) = Rin(k) pour toutes les valeurs de k possibles, n'est pas toujours possible. En effet, cette solution correspond au cas où le rang de chaque pixel dans le groupe ordonné de l'image finale correspond au rang d'origine du pixel dans le groupe dans l'image d'origine. Ainsi, la fonction de coût Fj constitue une fonction d'évaluation d'un critère de qualité 25 visuelle d'une image, alternative à celle consistant à calculer des distances entre des valeurs de pixels et des intervalles définis à partir des valeurs des pixels voisins d'une position de pixel donnée. Par ailleurs, des erreurs de traitement d'image provenant de simplifications de calculs peuvent être atténuées par des changements de 30 position de certains pixels dans certains groupes de pixels de l'image traitée. Selon un mode de réalisation, on applique des simplifications à un traitement d'image, notamment pour réduire la durée du traitement, et on cherche à minimiser la fonction de coût Fj par un choix approprié des positions attribuées aux pixels dans l'image traitée. 3033116 20 Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation et diverses applications. En particulier, l'invention ne s'applique pas uniquement à la compression d'image ou aux traitements de positionnement de valeurs de pixel, mais à 5 tout traitement d'image dans lequel les pixels de l'image peuvent être placés à différentes positions. En effet, le critère de qualité visuelle basé sur la préservation du rang de la valeur d'un pixel dans un groupe de valeurs de pixels voisins entre une image d'origine et une image transformée peut s'étendre à d'autres traitements que le repositionnement. Ainsi, on considère 10 un groupe de n valeurs de pixel X1 à Xn voisins dans une image d'originela position i de chacun des pixels Xi étant associé à un rang Rin(i) dans le groupe ordonné de l'image d'origine. Un traitement j fournit une image finale dans laquelle le groupe de pixels Xi est transformé en un groupe de pixels Yi,j. Les différents traitements j sont mathématiquement équivalents (du point 15 de vue d'un critère accumulatif d'erreur de type SAD ou MSE), mais correspondent à différentes distributions d'erreur entre les différents pixels traités. Ainsi, chaque valeur de pixel Yi,j du groupe peut être associé à un rang Rout(i,j) dans le groupe ordonné dans l'image finale pour la solution j. Selon un mode de réalisation, on cherche à minimiser les écarts entre les 20 rangs Rout(i,j) des pixels Yi,j dans le groupe ordonné de valeurs de pixel dans l'image finale, et les rangs Rin(i) des pixels Xi du groupe correspondant dans l'image d'origine. La solution sélectionnée j est celle qui correspond à une valeur minimum de la fonction de coût Fj (équation (21)). De façon similaire, la fonction de coût Fj peut être également définie par une 25 accumulation d'écarts entre chaque valeur de pixel traitée et un intervalle défini à partir des valeurs traitées des pixels voisins, en correspondance avec un intervalle défini dans l'image de référence selon le processus décrit précédemment. Ce critère s'applique plus généralement lorsque des traitements 30 d'image mettent en oeuvre une décomposition de l'image en plusieurs groupes de pixels, chaque groupe de pixels subissant un traitement indépendant, avant une recomposition finale dans l'image finale. En effet, dès lors que des pixels voisins de l'image d'origine peuvent être répartis dans des groupes différents, les risques que les rangs des pixels dans leur 35 environnement spatial d'origine soient modifiés à la recomposition peuvent 3033116 21 être importants, du fait de l'indépendance des traitements. Il peut alors apparaître des artefacts isolés qui peuvent être atténués par un traitement final de filtrage, par exemple de type passe-bas ou médian. Selon, un mode de réalisation, le critère de qualité visuelle, tel que 5 défini précédemment, soit sur la base des rangs Rin et Rout, soit sur la base de la somme des écarts aux intervalles voulus, est utilisé pour contrôler l'intensité de ce filtrage, ce type de filtrage ayant la propriété de rapprocher une valeur hors de l'intervalle vers l'intervalle. REVENDICATIONS1. Procédé de traitement d'image, mis en oeuvre dans un calculateur, le procédé comprenant des étapes consistant à : appliquer un traitement par groupe de pixels à une image d'origine pour obtenir un signal d'image finale, pour chaque groupe de pixels, calculer un cumul d'écarts de valeurs ou de positions des pixels du groupe de pixels, pour chaque groupe de pixels, attribuer dans le signal d'image finale une position de pixel du groupe de pixels à chaque valeur de pixel du groupe de pixels, de manière à minimiser le cumul d'écarts calculé pour le groupe de pixels, et/ou pour chaque groupe de pixels, déterminer une intensité de filtrage en fonction du cumul d'écarts calculé pour le groupe de pixels, et appliquer au groupe de pixels un filtrage ayant l'intensité de filtrage. 2. Procédé selon la revendication 1, dans lequel le calcul du cumul d'écarts pour l'un des groupes de pixels de l'image comprend des étapes consistant à : définir un intervalle pour chaque position de pixel du groupe de pixels de l'image finale, à partir de valeurs de pixels voisins dans l'image finale de la position de pixel, et pour chaque valeur de pixel du groupe de pixels, et pour chaque intervalle défini pour une position du groupe de pixels, calculer un écart entre la valeur de pixel et l'intervalle. 3. Procédé selon la revendication 2, dans lequel chaque intervalle est défini pour une position de pixel du groupe de pixel de l'image finale en fonction d'un intervalle défini à une position correspondante dans l'image d'origine en fonction des valeurs dans l'image d'origine des pixels voisins de la position de pixel. 4. Procédé selon la revendication 3, dans lequel chaque intervalle est défini pour une position de pixel dans l'image finale, 3033116 23 soit entre la plus petite valeur et la plus grande valeur, parmi les valeurs dans l'image finale des pixels voisins de la position de pixel, si la valeur dans l'image d'origine du pixel à la position de pixel, est comprise entre la plus petite valeur et la plus grande valeur, parmi les valeurs dans 5 l'image d'origine des pixels voisins de la position de pixel, soit entre une valeur minimum et la plus petite valeur parmi les valeurs dans l'image finale des pixels voisins de la position de pixel, si la valeur dans l'image d'origine du pixel à la position de pixel est inférieure à la plus petite valeur parmi les valeurs dans l'image d'origine des pixels voisins 10 de la position de pixel, soit entre la plus grande valeur parmi les valeurs dans l'image finale des pixels voisins de la position de pixel et une valeur maximum, si la valeur dans l'image d'origine du pixel à la position de pixel est supérieure à la plus grande valeur parmi les valeurs dans l'image d'origine des pixels voisins de 15 la position de pixel. 5. Procédé selon la revendication 2 ou 3, dans lequel chaque intervalle est défini pour une position de pixel dans l'image finale, entre une borne inférieure choisie égale à la valeur d'un premier pixel voisin parmi les 20 valeurs des pixels voisins, et une borne supérieure choisie égale à la valeur d'un second pixel voisin, la position du premier pixel voisin étant la position de la plus grande valeur parmi les valeurs des pixels voisins dans l'image d'origine, inférieures à la valeur du pixel dans l'image d'origine, la position du second pixel voisin étant la position de la plus petite valeur parmi les valeurs 25 des pixels voisins dans l'image d'origine supérieures à la valeur du pixel dans l'image d'origine. 6. Procédé selon l'une des revendications 2 à 5, dans lequel l'image comprend plusieurs couches, les pixels voisins utilisés pour déterminer 30 l'intervalle d'une position de pixel appartenant à une couche adjacente de la couche où se trouve la position de pixel. 7. Procédé selon l'une des revendications 2 à 5, dans lequel l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel du groupe de pixels, comprend des étapes consistant à : 3033116 24 pour chaque valeur de pixel du groupe de pixels et chaque position de pixel du groupe de pixel, calculer une probabilité que la valeur de pixel se trouve à la position de pixel, en fonction de l'écart entre la valeur de pixel et l'intervalle défini pour la position de pixel, et 5 attribuer dans le signal d'image finale les valeurs de pixel aux positions de pixels du groupe de pixels en fonction des probabilités calculées, de manière maximiser un cumul des probabilités associées aux attributions de valeurs de pixels aux positions de pixels effectuées. 10 8. Procédé selon la revendication 7, dans lequel l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel du groupe de pixels, comprend des étapes consistant à : sélectionner la position de pixel et la valeur de pixel correspondant à la probabilité la plus élevée parmi les probabilités calculées, et attribuer la 15 valeur de pixel sélectionnée à la position de pixel sélectionnée dans le signal d'image finale, et exécuter l'étape de sélection pour chaque position de pixel ou valeur de pixel restant à attribuer. 20 9. Procédé selon la revendication 7, dans lequel l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel du groupe de pixels comprend des étapes consistant à : pour chaque pixel du groupe de pixels, calculer un cumul de toutes les probabilités calculées pour le pixel, 25 pour chaque position du groupe de positions, calculer un cumul de toutes les probabilités calculées pour la position, sélectionner la position de pixel ou la valeur de pixel correspondant au cumul de probabilité le plus faible, et attribuer la valeur de pixel correspondant à la probabilité la plus élevée calculée pour la position de 30 pixel sélectionnée, à la position de pixel sélectionnée, ou attribuer la position de pixel correspondant à la probabilité la plus élevée calculée pour la valeur de pixel sélectionnée, à la valeur de pixel sélectionnée, et exécuter l'étape de sélection pour chaque position de pixel ou valeur de pixel restant à attribuer. 35 3 0 3 3 1 1 6 25 10. Procédé selon l'une des revendications 1 à 9, dans lequel l'image est découpée en blocs de pixels, et chaque bloc est divisé en deux groupes de pixels, de sorte que chaque paire de deux pixels adjacents du bloc comprenne un pixel de chaque groupe, seules les positions des pixels d'un 5 seul des deux groupes figurant dans le signal d'image finale, et les valeurs de pixel étant attribuées aux positions du groupe de pixels dont les positions de pixel ne se trouvent pas dans le signal d'image. 11. Procédé selon la revendication 10, comprenant une étape de 10 sélection d'un premier des deux groupes de pixels pour lequel les positions de pixel figurent dans le signal d'image finale, de manière à minimiser un nombre d'erreurs générées, l'attribution dans le signal d'image finale d'une position à chaque valeur de pixel étant effectuée sur un second des deux groupes de pixels. 15 12. Procédé selon la revendication 1, dans lequel le calcul du cumul d'écarts pour l'un des groupes de pixels de l'image comprend des étapes de calcul d'un d'écart entre un rang de chaque pixel du groupe de pixels dans l'image finale et un rang d'un pixel correspondant dans l'image d'origine, 20 pour chaque solution de placement d'un ensemble de plusieurs solutions de placement des pixels du groupe de pixels dans l'image finale. 13. Procédé selon l'une des revendications 1 à 12, dans lequel l'attribution dans le signal d'image finale d'une position à chaque valeur de 25 pixel du groupe de pixels comprend des étapes de : calcul pour des hypothèses d'attribution des positions du groupe de pixels aux pixels du groupe de pixels, d'un cumul des écarts calculés selon l'hypothèse, et sélection de l'hypothèse correspondant au cumul le plus faible. 30 14. Dispositif de traitement d'image, configuré pour exécuter le procédé selon l'une des revendications 1 à 13.