Brevet FR2867327A1 — publié le 20050909

PROCEDE ET DISPOSITIF DE CODAGE D'UNE IMAGE La présente invention se rapporte à un procédé et à un dispositif de codage d'une image. L'invention appartient au domaine de la compression des images numériques et, plus généralement, au domaine du codage et de la compression de signaux numériques, qu'il s'agisse de signaux vidéo, audio, de données, etc. On connaît, par les documents US-A-6 111 991 et US-A-6 278 735, une technique d'optimisation lagrangienne pour déterminer la meilleure méthode de codage sur des blocs de données d'images, qui consiste à minimiser une. quantité R+À.D, où R représente le débit associé au codage, D représente la distorsion associée au codage et À est un coefficient prédéterminé. Les blocs de données d'images contiennent à la fois des échantillons provenant des composantes de luminance et de chrominance. Dans toute la suite, lorsqu'on mentionne une première composante couleur, il s'agit de la luminance et lorsqu'on mentionne deux autres composantes couleur, il s'agit des composantes de chrominance. Cependant, le même coefficient À est utilisé pour ces deux types de données. Cela ne permet pas d'atteindre un compromis débit-distorsion optimal. La présente invention a pour but de remédier à cet inconvénient, en proposant une solution qui consiste à utiliser un coefficient À différent pour chaque composante couleur. Dans ce but, la présente invention propose un procédé de codage 25 d'un signal numérique d'image comportant une pluralité de composantes couleur, ce procédé comportant des étapes consistant, pour chaque composante couleur: - pour une pluralité de méthodes de codage prédéterminées, à déterminer le débit R associé au codage d'une partie du signal numérique d'image avec chaque méthode de codage et déterminer la distorsion D associée au codage de cette partie du signal numérique d'image avec chaque méthode de codage; - à comparer le coût de codage R+À.D de ces méthodes de codage sur cette partie du signal numérique d'image, où À est un coefficient prédéterminé ; - à sélectionner, pour cette partie du signal numérique d'image, la méthode de codage pour laquelle le coût de codage est le plus faible; ce procédé étant remarquable en ce qu'il comporte en outre une étape consistant: - pour chaque nouvelle composante couleur du signal numérique d'image, à déterminer une nouvelle valeur du coefficient À, en fonction de la valeur du coefficient À associé à l'une des composantes couleur précédentes. La présente invention permet ainsi d'obtenir un meilleur compromis débitdistorsion. Selon une caractéristique particulière, la partie précitée du signal numérique d'image est un bloc de données. Le fait de pouvoir choisir localement, c'est-à-dire au niveau de chaque bloc, la meilleure technique de codage, permet d'améliorer le compromis débit-distorsion global. Selon une caractéristique particulière, le signal numérique d'image comporte trois composantes couleur, dont une composante de luminance et 20 deux composantes de chrominance. Cela permet d'avoir un signal plus compact, tout en maintenant une compatibilité aisée avec un mode d'affichage en noir et blanc, pour lequel il suffira d'extraire une composante. Selon une caractéristique particulière, pour la deuxième composante couleur, la valeur du coefficient À utilisée est calculée à partir d'une valeur initiale Ào qui s'applique à la première composante couleur, à partir de la formule À = À0x4 et pour la troisième composante couleur, la valeur du coefficient À utilisée est calculée à partir de la valeur initiale Ào à partir de la formule À = Àox4. Selon une caractéristique particulière, la première composante couleur est la luminance, la deuxième composante couleur est la première chrominance et la troisième composante couleur est la deuxième chrominance. La valeur Àox4 est celle qui permet d'obtenir un compromis débitdistorsion optimal lorsque luminance et chrominances sont séparées. Selon une caractéristique particulière, la valeur initiale Ào est choisie par l'utilisateur. Cela permet à l'utilisateur de choisir lui-même le meilleur compromis débit-distorsion possible. Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif de codage d'un signal numérique d'image comportant une pluralité de composantes couleur, ce dispositif comportant: - un module pour déterminer, pour chaque composante couleur, pour une pluralité de méthodes de codage prédéterminées, le débit R associé au codage d'une partie du signal numérique d'image avec chaque méthode de codage et pour déterminer la distorsion D associée au codage de cette partie du signal numérique d'image avec chaque méthode de codage; - un module pour comparer le coût de codage R+À.D de ces 15 méthodes de codage sur cette partie du signal numérique d'image, où À est un coefficient prédéterminé ; - un module pour sélectionner, pour cette partie du signal numérique d'image, la méthode de codage pour laquelle le coût de codage est le plus faible; ce dispositif étant remarquable en ce qu'il comporte en outre: - un module pour déterminer, pour chaque nouvelle composante couleur du signal numérique d'image, une nouvelle valeur du coefficient À, en fonction de la valeur du coefficient À associé à l'une des composantes couleur précédentes. La présente invention vise aussi un appareil de communication comportant un dispositif de codage tel que ci-dessus. La présente invention vise aussi un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre d'un procédé de codage tel que ci-dessus. La présente invention vise aussi un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre d'un procédé de codage tel que ci-dessus. La présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, comportant des séquences d'instructions pour mettre en oeuvre un procédé de codage tel que ci-dessus, lorsque ce programme est chargé et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du dispositif de codage, de l'appareil de communication, des moyens de stockage et du produit 10 programme d'ordinateur étant similaires à ceux du procédé de codage, ils ne sont pas répétés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit d'un mode particulier de réalisation, donné à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la figure 1 illustre le contexte général de la présente invention; - les figures 2a et 2b sont des organigrammes illustrant les principales étapes d'un procédé de codage conforme à la présente invention, dans un mode particulier de réalisation; et - la figure 3 représente schématiquement un dispositif adapté à mettre en oeuvre la présente invention, dans un mode particulier de réalisation. L'invention s'applique à des images en couleur, c'est-à-dire à des images comportant plusieurs plans correspondant à des fréquences lumineuses différentes, comme par exemple des images à trois plans: rouge, vert, bleu. On décrit ici le codage d'une image numérique comportant trois composantes couleurs Y, Cb, Cr. Pour uns image de taille 700x500 pixels par exemple, l'image numérique est composée de trois tableaux bidimensionnels de 700 colonnes par 500 lignes, chaque tableau correspondant à une composante Y, Cb ou Cr et contenant des valeurs d'amplitude. On supposera que la composante Y correspond à la composante de luminance (c'est-à-dire la composante en niveaux de gris de l'image) et que les composantes Cb et Cr sont deux composantes de chrominance (c'est-à-dire de couleur) de l'image. Il est classique d'utiliser ce type de représentation des couleurs, décrite notamment dans l'ouvrage de W. B. PENNEBAKER et J. L. MITCHELL intitulé "JPEG: Stil/ Image Data Compression Standard", Van Nostrand Reinhold, 1993. En général, les capteurs qui font l'acquisition des images utilisent plutôt une représentation sous forme des plans Rouge-Vert-Bleu, donc une transformation est nécessaire pour passer de la représentation Rouge-VertBleu à la représentation Y-Cb-Cr. D'autres espaces de représentation sont possibles comme l'espace YUV, dont on trouvera une description à l'adresse Internet http:/lwww.neuro.sfc.keio.ac.jp/aly/polygon/infolcolor-space-faq.html. D'autre part, on suppose que chaque composante couleur est partitionnée en blocs de taille 8x8 pixels. La technique de codage utilisera cette subdivision en blocs. La figure 1 présente une mise en situation de l'invention. Une image numérique 1 est codée par un codeur 2 qui comporte un dispositif de codage conforme à l'invention. Ce codeur produit un fichier comprimé qui peut être transmis ou stocké (phase 3 sur le dessin). Le fichier comprimé est lu par un décodeur 4, qui produit une image décomprimée (c'est-à-dire décodée) 5. Comme le montre la figure 2a, une première étape El du procédé de codage conforme à la présente invention consiste à initialiser un compteur de composantes couleur Num_Composante à la valeur 1. Puis un test E2 consiste à vérifier si le compteur Num_Composante a dépassé le nombre total de composantes couleur dans l'image, ici 3. Si le nombre total est dépassé (test E2 négatif), le processus est terminé. Sinon, l'étape suivante est une étape E3. Conformément à la présente invention, l'étape E3 consiste à affecter une valeur à un paramètre À qui servira ultérieurement à fixer le compromis entre la compression de l'image et la distorsion engendrée dans l'image reconstruite (par rapport à l'image originale). Pour cela, une valeur initiale Ào est entrée par l'utilisateur, par exemple par saisie à l'aide d'un clavier. Cette valeur initiale est utilisée pour la première composante couleur traitée, c'est-à-dire la composante 1. Pour la deuxième composante, la valeur de À utilisée est calculée à partir de la valeur initiale: À = Aox4. De même, pour la troisième composante, on utilise une valeur À = Aox4. La demanderesse a constaté que ces valeurs permettaient d'obtenir un rapport débit-distorsion optimal. Il est à noter que pour d'autres types de composantes couleur, d'autres modes de calcul pour le coefficient À peuvent être nécessaires pour aboutir à un rapport débit-distorsion optimal. L'étape suivante E4 consiste à affecter à un compteur de blocs Num Bloc la valeur 1. Puis un test E5 consiste à vérifier si la valeur du compteur de blocs Num_Bloc a dépassé un nombre prédéterminé Max Blocs, qui correspond au nombre de blocs de données existant dans la composante couleur actuellement traitée. Si cette valeur est dépassée (test E5 négatif), l'étape suivante est une étape E6. Sinon, l'étape suivante est une étape E7. L'étape E6 consiste à incrémenter la valeur du compteur Num Composante d'une unité. L'étape suivante est le test E2 décrit ci-dessus. L'étape E7 est la phase de traitement des blocs. Elle est décrite en détail ci-après en liaison avec la figure 2b. L'étape suivante E8 consiste à incrémenter la valeur du compteur Num_Bloc d'une unité. L'étape suivante est le test E5 décrit ci-dessus. La figure 2b illustre plus en détail la phase de traitement des blocs de l'étape E7 illustrée sur la figure 2a. Au cours de ce processus, on teste, pour chaque bloc de données de l'image, différentes méthodes de codage, pour finalement appliquer celle qui donne le meilleur résultat au sens d'un critère de compromis débit-distorsion, détaillé plus loin. On suppose dans l'exemple décrit ici qu'on teste quatre méthodes de codage sur chaque bloc. On utilise par exemple: - Méthode 1: une quantification vectorielle sur quatre blocs de taille 4x4 pixels (pour plus de détails sur cette méthode, on se reportera utilement à 30 l'ouvrage de A. GERSHO et R. M. GRAY intitulé "Vector Quantization and Signal Processing", Boston, MA, Kluwer, 1992) ; - Méthode 2: une quantification vectorielle sur un bloc de taille 8x8 (pour plus de détails sur cette méthode, on se reportera utilement au même ouvrage de A. GERSHO et R. M. GRAY) ; Méthode 3: une transformée en cosinus discrète (DCT, en anglais "Discrete Cosine Transform") suivie d'une quantification scalaire uniforme (pour plus de détails sur cette méthode, on se reportera utilement à l'ouvrage précité de W. B. PENNEBAKER et J. L. MITCHELL) ; - Méthode 4: une transformée en cosinus discrète suivie d'une prédiction linéaire (pour plus de détails sur cette méthode, on se reportera utilement au même ouvrage de W. B. PENNEBAKER et J. L. MITCHELL). Une première étape E10 de la phase de traitement des blocs consiste à initialiser un compteur de méthodes de codage i à la valeur 1 et une variable Valeur_Optimale à la valeur "infini", c'est-à-dire, en pratique, à la valeur maximale qu'il est possible de stocker dans cette variable. Puis un test E11 consiste à vérifier si le compteur de méthodes de codage i a dépassé la valeur du nombre total de méthodes de codage Max_Méthodes, qui, dans l'exemple décrit ici, est 4. Si tel est le cas (test El 1 négatif), l'étape suivante est une étape E17. Sinon, l'étape suivante est une étape E12. L'étape E12 consiste à calculer, pour la méthode de codage numéro i, le débit R associé au codage du bloc courant, c'est-à-dire le nombre de bits qui seraient utilisés si on codait le bloc courant par cette méthode. Puis une étape E13 consiste à calculer, pour la méthode de codage numéro i, la distorsion D associée au codage du bloc courant, c'est-à-dire l'erreur qui serait engendrée dans l'image décodée si on codait le bloc courant par cette méthode. Cette erreur peut être mesurée sous forme d'une erreur quadratique, c'est-à-dire la somme des carrés des différences entre les valeurs des pixels originaux et les valeurs des pixels décodés. Ensuite, un test E14 consiste à vérifier si le compromis débit- distorsion calculé par la formule R + À.D est inférieur ou égal à la valeur de la variable Valeur_Optimale. Si tel est le vas (test E14 positif), l'étape suivante est une étape E16. Sinon, l'étape suivante est une étape E15. L'étape E15 consiste à incrémenter le compteur de méthodes de codage i d'une unité. L'étape suivante est le test E11. L'étape E16 consiste à affecter à la variable Méthode_Optimale la valeur de i et à affecter à la variable Valeur Optimale la valeur R + À.D calculée lors du test précédent E14. L'étape suivante est l'étape E15. L'étape E17 consiste à coder le bloc courant avec la méthode optimale identifiée précédemment, c'est-à-dire la méthode numéro Méthode_Optimale. Le flux de bits engendré est envoyé dans le fichier comprimé représentant l'image à coder. Il est à noter qu'en général, le flux de bits correspondant à ce bloc contient des données qui indiquent la méthode qui a été utilisée pour coder le bloc, afin de permettre au décodeur d'utiliser la méthode de décodage correspondante. Un dispositif 10 mettant en oeuvre le procédé de codage de l'invention est illustré sur la figure 3. Ce dispositif peut être par exemple un micro-ordinateur 10 connecté à différents périphériques, par exemple, une caméra numérique 107 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant des informations à traiter selon l'invention. Le dispositif 10 comporte une interface de communication 112 reliée à un réseau 113 apte à transmettre des informations numériques. Le dispositif 10 comporte également un moyen de stockage 108 tel que par exemple un disque dur. II comporte aussi un lecteur de disquettes 109. La disquette 110, comme le disque dur 108, peuvent contenir des données d'implantation logicielle de l'invention ainsi que le code de l'invention qui, une fois lu par le dispositif 10, sera stocké sur le disque dur 108. En variante, le programme permettant au dispositif de mettre en oeuvre l'invention pourra être stocké en mémoire morte 102 (appelée ROM sur le dessin). Il en est de même pour les méthodes de codage. En seconde variante, le programme pourra être reçu pour être stocké de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 113. Le dispositif 10 est relié à un microphone 111 par l'intermédiaire d'une carte d'entrées/sorties 106. Les données à traiter selon l'invention seront dans ce cas du signal audio. Ce même dispositif possède un écran 104 permettant de visualiser les informations à traiter ou de servir d'interface avec l'utilisateur qui pourra paramétrer certains modes de traitement, à l'aide du clavier 114 ou de tout autre moyen (souris par exemple). L'unité centrale 100 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 102 ou dans les autres éléments de stockage. Lors de la mise sous tension, les programmes et méthodes de traitement stockés dans une des mémoires (non volatile), par exemple la ROM 102, sont transférés dans la mémoire vive RAM 103, qui contient alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en oeuvre de l'invention. En variante, les méthodes de traitement peuvent être stockées dans différents endroits. En effet, il est possible d'améliorer l'invention en ajoutant de nouvelles méthodes transmises par le réseau de communication 113 ou par l'intermédiaire de disquettes 110. Bien entendu, les disquettes peuvent être remplacées par tout support d'information tel que CD-ROM ou carte mémoire. Le bus de communication 101 permet la communication entre les différents sous-éléments du micro-ordinateur 10 ou liés à lui. La représentation du bus 101 n'est pas limitative et notamment, l'unité centrale 100 est susceptible de communiquer des instructions à tout sous-élément du microordinateur 10 directement ou par l'intermédiaire d'un autre sous-élément du micro-ordinateur 10. Le dispositif décrit ici est susceptible de contenir tout ou partie du traitement décrit dans l'invention. REVENDICATIONS, 1. Procédé de codage d'un signal numérique d'image comportant une pluralité de composantes couleur, ledit procédé comportant des étapes consistant, pour chaque composante couleur: - pour une pluralité de méthodes de codage prédéterminées, à déterminer (E12) le débit R associé au codage d'une partie du signal numérique d'image avec chaque méthode de codage et déterminer (E13) la distorsion D associée au codage de ladite partie dudit signal numérique d'image avec chaque méthode de codage; - à comparer le coût de codage R+À.D desdites méthodes de codage sur ladite partie dudit signal numérique d'image, où À est un coefficient prédéterminé ; - à sélectionner (E16), pour ladite partie dudit signal numérique 15 d'image, la méthode de codage pour laquelle le coût de codage est le plus faible; ledit procédé étant caractérisé en ce qu'il comporte en outre une étape consistant: - pour chaque nouvelle composante couleur du signal numérique d'image, à déterminer (E3) une nouvelle valeur du coefficient À, en fonction de la valeur du coefficient À associé à l'une des composantes couleur précédentes. 2. Procédé selon la revendication 1, caractérisé en ce que ladite partie du signal numérique d'image est un bloc de données. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que le 25 signal numérique d'image comporte trois composantes couleur, dont une composante de luminance et deux composantes de chrominance. 4. Procédé selon la revendication 1, 2 ou 3, caractérisé en ce que, pour la deuxième composante couleur, la valeur du coefficient À utilisée est calculée à partir d'une valeur initiale Ào qui s'applique à la première composante couleur, à partir de la formule À = Àox4 et pour la troisième composante couleur, la valeur du coefficient À utilisée est calculée à partir de la valeur initiale Ào à partir de la formule À = Àox4. 5. Procédé selon la revendication précédente, caractérisé en ce que ladite première composante couleur est la luminance, la deuxième composante couleur est la première chrominance et la troisième composante couleur est la deuxième chrominance. 6. Procédé selon la revendication 4 ou 5, caractérisé en ce que la valeur initiale Ào est choisie par l'utilisateur. 7. Dispositif de codage d'un signal numérique d'image comportant une pluralité de composantes couleur, ledit dispositif comportant: - des moyens pour déterminer, pour chaque composante couleur, pour une pluralité de méthodes de codage prédéterminées, le débit R associé au codage d'une partie du signal numérique d'image avec chaque méthode de codage et pour déterminer la distorsion D associée au codage de ladite partie dudit signal numérique d'image avec chaque méthode de codage; - des moyens pour comparer le coût de codage R+À.D desdites méthodes de codage sur ladite partie dudit signal numérique d'image, où À est un coefficient prédéterminé ; - des moyens pour sélectionner, pour ladite partie dudit signal numérique d'image, la méthode de codage pour laquelle le coût de codage est le plus faible; ledit dispositif étant caractérisé en ce qu'il comporte en outre: - des moyens pour déterminer, pour chaque nouvelle composante couleur du signal numérique d'image, une nouvelle valeur du coefficient À, en fonction de la valeur du coefficient À associé à l'une des composantes couleur précédentes. 8. Dispositif selon la revendication 7, caractérisé en ce que ladite partie du signal numérique d'image est un bloc de données. 9. Dispositif selon la revendication 7 ou 8, caractérisé en ce que le signal numérique d'image comporte trois composantes couleur, dont une composante de luminance et deux composantes de chrominance. 10. Dispositif selon la revendication 7, 8 ou 9, caractérisé en ce que, pour la deuxième composante couleur, la valeur du coefficient À utilisée est calculée à partir d'une valeur initiale Ào qui s'applique à la première composante couleur, à partir de la formule À = Àox4 et pour la troisième composante couleur, la valeur du coefficient À utilisée est calculée à partir de la valeur initiale À0 à partir de la formule À = À0x4. 11. Dispositif selon la revendication précédente, caractérisé en ce que ladite première composante couleur est la luminance, la deuxième composante couleur est la première chrominance et la troisième composante couleur est la deuxième chrominance. 12. Dispositif selon la revendication 10 ou 11, caractérisé en ce que la valeur initiale À0 est choisie par l'utilisateur. 13. Appareil de communication, caractérisé en ce qu'il comporte un dispositif de codage selon l'une quelconque des revendications 7 à 12. 14. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre d'un procédé de codage selon l'une quelconque des revendications 1 à 6. 15. Moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre d'un procédé de codage selon l'une quelconque des revendications 1 à 6. 16. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de codage selon l'une quelconque des revendications 1 à 6, lorsque ce programme est chargé et exécuté par l'appareil programmable. FR 04 02290 30.04.2004