Brevet FR2769161A1 — publié le 19990402

PROCEDE DE CONTROLE DU TAUX DE COMPRESSION D'IMAGES NUMERIQUES La présente invention concerne un procédé de contrôle du taux de compression d'images numériques. La quantité d'images numériques augmente chaque jour au fur et à mesure que l'on trouve de nouvelles applications. Cependant, pour représenter une seule image numérique, une quantité énorme de données est nécessaire. De façon générale, cette quantité de données est si grande, que le stockage ou la transmission de ces images dans sa représentation originale, sont trop coûteux et donc pas pratiques aussi bien au point de vue du traitement numérique de signaux qu'au point de vue économique. A ce jour, différents algorithmes de compression d'images ont été développés. Un effort conjoint entre L'ITOU (International Telecommunication Union) et de l'ISO (International Organization for Standardization) a donné comme résultat la création d'un standard de compression d'image fixes connu sous le nom de JPEG (Joint Photographic Expert Group). Cet algorithme est défini dans "ITU-T Recommendation T.81, Digital Compression and Coding of Continuous-tone Still Images", September 1992 et amplement illustré dans "W.B. Pennebaker and J.L. Mitchell, "JPEG Stili Image Compression Standard", Van Nostrand Reinhold, New York, NY, USA, 1993. En utilisant cet algorithme, le taux de compression, c'est-à-dire le nombre de bits de l'image non compressée divisé par le nombre de bits de l'image compressée est variable en fonction de la complexité de l'image. Ainsi, par exemple, pour une qualité de restitution sensiblement identique, le taux de compression d'une image d'un ciel peu nuageux est égal au double ou au triple, voire plus, du taux de compression d'une image d'une foule dans un stade. Dans un grand nombre d'applications, il est souhaitable ou nécessaire que l'utilisateur etlou le système puisse contrôler le taux de compression des images acquises. Dans un appareil de prises de vues numériques tel qu'un appareil photo, il est important de pouvoir prévoir la taille des images compressées, afin de garder sous contrôle l'allocation de la mémoire de l'appareil. Contrôler le taux de compression est également important dans les réseaux qui transmettent des images fixes ou des séquences d'images. Dans ces réseaux, le temps spécifié pour transmettre une image compressée est fixe ou tout au moins limité et ne doit pas dépasser une certaine valeur, ce qui exclu l'utilisation de schémas de codage qui n'ont pas de contrôle du taux de compression. La présente invention se propose de réaliser un procédé de compression d'images dans lequel il est possible de choisir le taux de compression avec une excellente précision. Ce but est atteint par un procédé tel que défini en préambule et caractérisé en ce que l'on comprime une image numérisée au moyen d'un procédé conventionnel comportant au moins un paramètre permettant de modifier le taux de compression, c'est-à-dire le rapport de la taille de l'image non comprimée à la taille de l'image comprimée, en ce que l'on détermine le taux de compression dudit procédé conventionnel, en ce que l'on teste si le taux de compression est compris dans une plage de tolérance d'une valeur de taux de compression de consigne, en ce que l'on modifie ledit paramètre dudit procédé conventionnel si le taux de compression réel n'est pas compris dans la plage de tolérance, et en ce que l'on recommence la compression de l'image après avoir modifié ledit paramètre dudit procédé conventionnel jusqu'à ce que le taux de compression soit compris dans la plage de tolérance. Selon une forme de réalisation préférée, ledit procédé de compression conventionnel est le procédé de Joint Photographic Expert Group, connu sous l'abréviation JPEG, et ledit paramètre est un facteur d'échelle destinée à modifier des valeurs d'une matrice de normalisation telle que définie dans ce procédé JPEG. Dans le procédé selon la présente invention, on définit avantageusement un facteur d'échelle initial, on applique une première fois ledit procédé JPEG en utilisant ce facteur d'échelle initial et on applique ledit procédé JPEG en modifiant le facteur d'échelle si le taux de compression réel n'est pas compris dans la plage de tolérance du taux de compression de consigne. Selon un mode de réalisation avantageux du procédé, on augmente le facteur d'échelle lorsque le taux de compression réel est inférieur au taux de compression de consigne, et on diminue le facteur d'échelle lorsque le taux de compression réel est supérieur au taux de compression de consigne. Dans le procédé selon la présente invention, on modifie avantageusement le facteur d'échelle en fonction d'un modèle au moins partiellement linéaire représentant le taux de compression en fonction du facteur d'échelle. Selon une forme de réalisation préférée, on détermine le taux de compression réel en utilisant ledit facteur d'échelle initial, on approxime une courbe représentant le taux de compression en fonction du facteur d'échelle par une droite ayant une pente prédéfinie m0 et passant par un point ayant pour abscisse le facteur d'échelle initial et pour ordonnée le taux de compression réel obtenu en appliquant le procédé JPEG avec le facteur d'échelle initial, on détermine un facteur d'échelle à partir de la droite d'approximation et du taux de compression de consigne, on applique le procédé JPEG en utilisant ce nouveau facteur d'échelle, on détermine si le taux de compression réel est compris dans la plage de tolérance du taux de compression de consigne, on arrête le procédé si le taux de compression réel est compris dans cette plage, et on détermine un nouveau facteur d'échelle à partir d'une droite approximant la courbe du taux de compression réel en fonction du facteur d'échelle. Selon une autre forme de réalisation préférée, on approxime la courbe représentant le taux de compression réel en fonction du facteur d'échelle par des segments de droites ayant des pentes différentes et formant une courbe continue. La présente invention sera mieux comprise en référence à deux modes de réalisation non limitatifs de l'invention et aux dessins annexés dans lesquels: - la figure 1 est un schéma-bloc illustrant une première forme de réalisation du procédé selon la présente invention - les figures 2a à 2d représentent schématiquement le taux de compression à différentes étapes du procédé de la figure 1; - la figure 3 est un schéma-bloc d'une deuxième forme de réalisation du procédé selon la présente invention; et - les figures 4a à 4d représentent le taux de compression à différentes étapes du procédé de la figure 3. Le procédé selon la présente invention est basé sur l'algorithme JPEG et est parfaitement compatible avec celui-ci. Ainsi, les étapes principales de cet algorithme sont définies ci-dessous. L'image à compresser est séparée en blocs de 8 x 8 pixels. De manière séquentielle, chaque bloc est ensuite traité séparément, de façon identique. Les étapes du procédé sont décrites ci-dessous pour un bloc de 8 x 8 pixels. Chaque bloc est associé à une matrice de huit lignes et de huit colonnes, appelée par la suite "matrice d'un bloc" Cette matrice est multipliée par le noyau d'une transformée linéaire connue sous l'abréviation 2D-DCT (2 dimensions - Discrete Cosine Transform), telle que définie dans l'algorithme JPEG. Cette transformée en cosinus discrète (TCD) convertit les 8x8 pixels du domaine spatial en 8x8 coefficients dans le domaine dit fréquentiel. Le but de cette transformation est de décorreler les données originales et de redistribuer l'énergie du signal entre un faible nombre de coefficients, dans la partie de basses fréquences du spectre de la transformée. Cette transformation donne une matrice résultante contenant des valeurs relativement grandes, dans une zone située vers la partie supérieure gauche de la matrice, et des valeurs relativement petites ailleurs. La dimension de la zone contenant les grandes valeurs dépend de la complexité de l'image. Basée sur une analyse psychovisuelle, une matrice de normalisation est définie. Cette matrice est utilisée pour quantifier les coefficients TCD qui sont significatifs du point de vue visuel avec un faible pas de quantification, tandis que pour le reste des coefficients, on utilise des pas de quantification plus grands. La quantification des coefficients TCD est le principal mécanisme de compression, mais aussi de perte d'information. Le système augmente le niveau de compression en faisant un codage d'entropie de la sortie du quantificateur. La matrice de normalisation peut être mise à l'échelle par la voie d'un facteur, qui peut prendre n'importe quel valeur réelle plus grande que zéro. En modifiant la valeur de ce facteur on peut modifier le taux de compression donné par la méthode JPEG. Plus la valeur du facteur d'échelle est grande, plus le taux de compression obtenu devient grand et vice versa. La présente invention définit une façon efficace de trouver ce facteur d'échelle en faisant un nombre minimum d'itérations, avec une méthode qui ne dégrade en aucune manière la qualité de l'image compressée. Le procédé proposé est basé sur une étude selon laquelle il a été mis en évidence le fait que le rapport entre le facteur d'échelle et le taux de compression obtenu avec la compression JPEG est de nature quasi-linéaire. Une première forme de réalisation du procédé est décrite ci-dessous en référence aux figures 1 et 2. Comme mentionné ci-dessus, il est possible de définir une relation entre le facteur d'échelle et le taux de compression de l'image. Cette relation peut être représentée graphiquement en plaçant le facteur d'échelle Sf sur l'axe des abscisses et le taux de compression CR sur l'axe des ordonnées. Cette première forme de réalisation du procédé est basée sur un modèle strictement linéaire du taux de compression en fonction du facteur d'échelle. Dans une première étape 10 du procédé, on fixe le taux de compression final à atteindre. Ce taux est appelé taux de compression de consigne et abrégé CRT. II est représenté par une droite portant la référence 110 sur les figures 2a à 2d. Ce taux peut être fixé soit définitivement dans le système de contrôle du taux de compression, soit par l'utilisateur en fonction de la qualité de l'image voulue, du nombre d'images à enregistrer dans une mémoire donnée ou de la capacité d'un canal de transmission notamment. Dans cette même étape 10 du procédé, on définit un facteur d'échelle initial Sf1. Généralement, ce facteur d'échelle initial est défini une fois pour toutes. Selon le mode de réalisation décrit du procédé, le facteur d'échelle initial est fixé à 1 . L'algorithme JPEG est utilisé dans une deuxième étape 11, pour compresser une image d'entrée, le taux de compression réel CR1 étant calculé dans cette même étape. Dans l'étape 12 du procédé, on détermine l'erreur relative entre le taux de compression réel CR1 obtenu et le taux de compression de consigne CRT. Si cette erreur relative est inférieure à une valeur de seuil prédéfinie, par exemple à + 5%, le procédé est arrêté et l'image est stockée ou transmise. Ceci correspond à l'étape 30 de la figure 1. La différence entre le taux de compression de consigne et le taux de compression réel est noté ACR dans la figure 2d. Dans le cas contraire, L'étape 13 du procédé consiste à définir une droite représentant le taux de compression en fonction du facteur d'échelle, cette droite modélisant la courbe réelle du taux de compression en fonction du facteur d'échelle. Cette droite passe par un point P1 ayant comme abscisse Sf1 = 1 et comme ordonnée CR1. La pente de cette droite est définie dans le système de contrôle du taux de compression. Cette pente est déterminée comme la pente moyenne d'un ensemble d'images test. Cette droite peut s'écrire de la façon suivante: cr = mo . sf + bo où cr est le taux de compression, sf le facteur d'échelle et bo, L'ordonnée à l'origine. Cette droite porte la référence 111 sur les figures 2b, 2c et 2d. La valeur de bo est donnée par: bo = CR1 - mO . SF1 On détermine ensuite, dans l'étape 14 du procédé, la valeur du facteur d'échelle correspondant au taux de compression à atteindre, au moyen de la droite définie ci-dessus. Au taux de compression de consigne1 on a CRT = mO . Sf2 + bo = > Sf2 = CRT - bo mO Ceci permet de calculer un nouveau facteur d'échelle en fonction des taux de compression de consigne et du taux de compression réel obtenu en première approximation. A cette étape du procédé, on utilise de nouveau l'algorithme JPEG avec le facteur d'échelle Sf2. Ceci correspond à l'étape 15 de la figure 1. Dans cette même étape, le taux de compression réel CR2 est déterminé. Ceci correspond à la figure 2c. Un point P2 ayant les coordonnées (Sf2 et CR2) est illustré dans la figure 2c. Dans l'étape 16, la valeur CR2 obtenue est comparée avec la valeur du taux de compression CRT. Si leur différence est inférieure à 5%, le procédé est arrêté. Dans le cas contraire, on utilise une droite modélisée passant par le point P1 ayant pour abscisse Sf1 = 1 et pour ordonnée CR1 et par le point P2 ayant pour abscisse Sf2 et pour ordonnée CR2. Ceci est effectué dans l'étape 17 du procédé. Cette droite porte la référence 112 sur la figure 2d. Elle a une pente m1 donnée par: m1 = CR- CR, SF2 - SF1. Comme précédemment, on a cr = m1 . sf + b1 Au point de consigne du taux de compression CRT, on a CRT = mi . SF, + CR1 SF3 = CRT-CR2 m1 La détermination de cette valeur SF3 est effectuée dans l'étape 18 du procédé. On utilise encore une fois l'algorithme JPEG pour obtenir le taux de compression réel CR3. Ceci correspond à l'étape 19 de la figure 1. Ce taux de compression réel CR3 est comparé, dans l'étape 20, au taux de compression de consigne CRT et le procédé est arrêté si ces deux taux ont une différence inférieure à une valeur prédéfinie. Dans le cas contraire, le procédé est effectué en utilisant comme droite d'approximation la droite passant par les deux derniers points ayant les couples de coordonnées (SF, CR) calculés. Le procédé se poursuit jusqu'à ce que la valeur du taux de compression réel soit dans les limites acceptables pour le taux de compression de consigne. Généralement, cette condition est réalisée après une à trois itérations lorsque la différence relative entre le taux de compression réel et le taux de compression de consigne doit être inférieure ou égale à 5%. La figure 2d illustre en outre la courbe réelle du taux de compression en fonction du facteur d'échelle. Cette courbe porte la référence 113. Les figures 3 et 4 illustrent une deuxième forme de réalisation du procédé selon la présente invention dans laquelle le nombre d'itérations peut être réduit. Ce but est atteint en commençant le procédé tel que décrit ci-dessus en utilisant un facteur d'échelle initial plus grand que 1, par exemple 2, et en utilisant une meilleure approximation de la courbe représentant le taux de compression en fonction du facteur d'échelle. Dans le mode de réalisation illustré par les figures 1 et 2, le taux de compression en fonction du facteur d'échelle est approximé par une droite. Dans le mode de réalisation illustré par les figures 3 et 4, le taux de compression est approximé par des segments de droite formant une courbe continue, la pente de chaque segment variant dans différentes zones du facteur d'échelle, en fonction du taux de compression réel obtenu après une itération en utilisant SF1 comme facteur d'échelle. Dans une étape 40 du procédé, on introduit le taux de compression de consigne CRT. Dans une étape 41 du procédé, on détermine le taux de compression réel CR1 en appliquant le procédé JPEG avec un facteur d'échelle SF1 donné, par exemple égal à 2. Dans une étape 42 du procédé, on compare la valeur de CR1 à la valeur de consigne CRT. Si l'erreur relative de ces deux valeurs est inférieure à une valeur de seuil prédéfinie, par exemple 5%, le procédé est arrêté et l'image est stockée ou transmise. Ceci correspond à l'étape 50 du procédé. Dans le cas contraire, le procédé se poursuit par une étape 43 décrite ci-dessous. L'approximation de la courbe du taux de compression en fonction du facteur d'échelle permet de définir des zones de pente différente. Chaque zone est formée d'un segment ayant une pente donnée. La valeur de la pente pour chaque zone est choisie en fonction de la valeur de CR1, d'après le tableau ci-dessous. Selon un exemple de réalisation concret, on peut par exemple définir six zones formant six segments de droites. Zone Facteur d'échelle Pente No. 1 sf mî=O.4939CR1-0.7964 2 1.O m2 = 0.3947 CR1 - 0.3122 3 1.5 sf 2.0 m3 = 0.2894 CR1 + 0.6224 4 2.0 sf 5.0 m4 = 0.1565 CRi + 1.6517 5 5.0 m5=OCR, +3.0175 6 sf > 10 m6 = -0.1098 CR1 + 3.8832 En fonction de la valeur réelle de CR1 on choisit la droite la mieux adaptée, c'est-à-dire celle qui approxime le mieux la courbe réelle du taux de compression en fonction du facteur d'échelle. Ceci est réalisé dans l'étape 43 du procédé illustré par la figure 3. Dans une étape 44 du procédé, on estime le facteur d'échelle SF2 qui pourrait correspondre au taux de compression de consigne CRT, en utilisant le modèle de segment donné par la pente m appropriée et par le point (CR1, SF1). On applique de nouveau le procédé JPEG en utilisant SF2, ce qui donne comme résultat un taux de compression CR2. Si l'erreur relative entre ce taux calculé CR2 et le taux de compression de consigne CRT est inférieure à une valeur de seuil prédéfinie, par exemple + 5%, le procédé est arrêté. Dans le cas contraire, une itération supplémentaire du procédé est effectuée. Le nombre d'itérations dépend de la précision souhaitée. Le procédé est arrêté dès que le taux de compression de consigne est atteint, dans une limite dépendant de cette précision voulue. Un mode de réalisation particulier est décrit en référence aux figures 4a à 4d. Dans ce mode de réalisation, on supposera que le facteur d'échelle recherché est compris entre 5 et 10. Les étapes du procédé sont décrites ci-dessous. On donne le taux de compression de consigne, abrégé CRT tel qu'illustré par la figure 4a. Cette figure comporte également une courbe 200 représentant le taux de compression en fonction du facteur d'échelle. On compresse l'image d'entrée en utilisant un facteur d'échelle égale à 2. Le taux de compression résultant est appelé CR1. Si la valeur absolue de l'erreur relative entre CRT et CR1 est plus petite qu'une valeur de seuil prédéterminée, par exemple 5%, le procédé est arrêté. Dans le cas contraire, il se poursuit par l'étape suivante. On détermine la pente de la droite approximant le taux de compression en fonction du facteur d'échelle au moyen du tableau ci-dessus. Dans l'exemple ci-dessus1 le facteur d'échelle correspond à la zone No. 5 dans laquelle 5 4 du tableau. En ayant la valeur de m4 et le point (SF1 = 2, CR1) L'ordonnée à l'origine b4 est implicitement définie, de même qu'un modèle linéaire cr = m4 sf+b4, portant la référence 201. On utilise ensuite ce modèle linéaire pour trouver le facteur d'échelle qui correspond à un taux de compression cr = CRT. Ce facteur d'échelle est appelé SF2 (voir Fig. 4a). Dans le cas illustré, SF2 > 5. On utilise ensuite le modèle linéaire 201 cr = m4.sf + b4 pour trouver le taux de compression CR qui correspond à un facteur d'échelle sf = 5. Cette opération détermine le point (5, CR) (voir Fig. 4b). On insère la valeur de CR1 dans la zone no. 5 du tableau ci-dessus pour trouver la pente m5 du modèle linéaire pour la région 5 On utilise alors ce modèle pour trouver le facteur d'échelle qui correspond à un taux de compression cr = CRT. Ce taux de compression est appelé SF2. La valeur précédente de SF2 devient SF2. On compresse ensuite l'image d'entrée en utilisant la matrice de normalisation mise à l'échelle par la valeur de SF2. Appelons CR2 le taux de compression résultant (voir Fig. 4c). Si la valeur absolue de l'erreur relative entre CRT et CR1 est plus petite qu'une valeur de seuil prédéterminée, par exemple 5%, le procédé est arrêté. Sinon, il est poursuivit par l'étape suivante. Pour approximer plus précisément la valeur de CRT, un ajustement de l'ordonnée à l'origine b5 est nécessaire. La pente m5 et le point (SF2, CR2) définissent implicitement un modèle plus précis cr = m5.sf + b5' de la caractéristique du taux de compression en fonction du facteur d'échelle de l'image d'entrée. Avec ce nouveau modèle, on détermine le facteur d'échelle qui correspond à un taux de compression cr = CRT. Ce facteur d'échelle est appelé SF3. Enfin, en utilisant SF3 comme facteur d'échelle de la matrice de normalisation, on compresse l'image d'entrée. Appelons CR3 le taux de compression résultant. Si l'erreur relative entre CR3 et CRT est inférieure à une valeur de seuil prédéterminée, le procédé est arrêté. Dans le cas contraire, le procédé se poursuit de façon similaire à ce qui a été décrit précédemment. Bien que le principe de base utilisé dans cette variante soit équivalent au principe du procédé exposé précédemment, la valeur de consigne CRT du taux de compression est atteinte plus rapidement que dans le mode de réalisation précédent. Le procédé selon la présente invention permet de choisir le taux de compression et de choisir ainsi l'espace mémoire nécessaire pour stocker une image, ou le temps de transmission requis. Ce choix du taux de compression peut être effectué par l'utilisateur ou être prédéfini lors de la conception du système de codage pour plusieurs valeurs de taux de compression, de telle façon qu'il ne puisse pas être modifié. La présente invention n'est pas limitée aux modes de réalisation décrits, mais s'étend à toute variante évidente pour l'homme du métier. En particulier, le facteur d'échelle initial peut être modifié de façon qu'il permette d'arriver au résultat souhaité le plus rapidement possible. De même, la modélisation de la courbe du taux de compression en fonction du facteur d'échelle peut être affinée. Enfin, la tolérance sur la valeur du taux de compression peut être choisie en fonction de la précision nécessaire. REVENDICATIONS 1. Procédé de contrôle du taux de compression d'images numériques, caractérisé en ce que l'on comprime une image numérisée au moyen d'un procédé conventionnel comportant au moins un paramètre permettant de modifier le taux de compression, c'est-à-dire le rapport de la taille de l'image non comprimée à la taille de l'image comprimée, en ce que l'on détermine le taux de compression dudit procédé conventionnel, en ce que l'on teste si le taux de compression est compris dans une plage de tolérance d'une valeur de taux de compression de consigne, en ce que l'on modifie ledit paramètre dudit procédé conventionnel si le taux de compression réel n'est pas compris dans la plage de tolérance, et en ce que l'on recommence la compression de l'image après avoir modifié ledit paramètre dudit procédé conventionnel jusqu'à ce que le taux de compression soit compris dans la plage de tolérance. 2. Procédé selon la revendication 1, caractérisé en ce que ledit procédé de compression conventionnel est le procédé de Joint Photographic Expert Group, connu sous l'abréviation JPEG, et en ce que ledit paramètre est un facteur d'échelle, destiné à modifier des valeurs d'une matrice de normalisation telle que définie dans ce procédé JPEG. 3. Procédé selon la revendication 2, caractérisé en ce que l'on définit un facteur d'échelle initial, en ce que l'on applique une première fois ledit procédé JPEG en utilisant ce facteur d'échelle initial, et en ce que l'on applique ledit procédé JPEG en modifiant le facteur d'échelle si le taux de compression réel n'est pas compris dans la plage de tolérance du taux de compression de consigne. 4. Procédé selon la revendication 2, caractérisé en ce que l'on augmente le facteur d'échelle lorsque le taux de compression réel est inférieur au taux de compression de consigne, et en ce que l'on diminue le facteur d'échelle lorsque le taux de compression réel est supérieur au taux de compression de consigne. 5. Procédé selon la revendication 4, caractérisé en ce que l'on modifie le facteur d'échelle en fonction d'un modèle au moins partiellement linéaire représentant le taux de compression en fonction du facteur d'échelle. 6. Procédé selon la revendication 3, caractérisé en ce que l'on détermine le taux de compression réel en utilisant ledit facteur d'échelle initial, en ce que l'on approxime une courbe représentant le taux de compression en fonction du facteur d'échelle par une droite ayant une pente prédéfinie mO et passant par un point ayant pour abscisse le facteur d'échelle initial et pour ordonnée le taux de compression réel obtenu en appliquant le procédé JPEG avec le facteur d'échelle initial, en ce que l'on détermine un facteur d'échelle à partir de la droite d'approximation et du taux de compression de consigne, en ce que l'on applique le procédé JPEG en utilisant ce nouveau facteur d'échelle, en ce que l'on détermine si le taux de compression réel est compris dans la plage de tolérance du taux de compression de consigne, en ce que l'on arrête le procédé si le taux de compression réel est compris dans cette plage, et en ce que l'on détermine un nouveau facteur d'échelle à partir d'une droite approximant la courbe du taux de compression réel en fonction du facteur d'échelle. 7. Procédé selon la revendication 6, caractérisé en ce que l'on approxime la courbe représentant le taux de compression réel en fonction du facteur d'échelle par des segments de droites ayant des pentes différentes et formant une courbe continue.