Brevet FR2955407A1 — publié le 20110722

DOMAINE TECHNIQUE GENERAL La présente invention concerne un procédé de compression d'un document comportant du texte, le document étant scanné sur un dispositif comportant un scanner pour former une image du document et apte à coopérer avec un processeur. L'invention concerne également un processeur de mise en oeuvre d'un tel procédé, ainsi qu'un produit programme d'ordinateur qui, une fois chargé sur un processeur précité, permet la mise en oeuvre d'un tel procédé. En outre, l'invention concerne un procédé de décompression d'une erreur générée par un procédé de compression précité. L'invention concerne enfin un système de mise en oeuvre d'un tel procédé de décompression, ainsi qu'un produit programme d'ordinateur qui, une fois chargé sur un système précité, permet la mise en oeuvre d'un tel procédé. ETAT DE L'ART Comme le montrent les figures 1, l'art antérieur envisage deux solutions pour compresser des images scannées qui représentent du texte. Comme le montre la figure 1A, la première solution connue consiste à traiter le document comme une image, sans tenir compte du fait qu'elle contient du texte. La première solution présente ainsi l'avantage selon lequel une vue du document, au moment de l'affichage ou de l'impression, est parfaitement fidèle à l'original. Elle présente l'inconvénient selon lequel les fichiers générés sont d'un volume important sur une mémoire. Comme le montre la figure 1 B, la deuxième solution connue consiste à appliquer une reconnaissance de caractères et une reconnaissance de police, en utilisant l'un parmi les plusieurs logiciels connus et disponibles dans le commerce, comme par exemple le logiciel de la marque OmniPage, et à stocker le document comme un fichier texte. Le document est reconstitué sous forme de vue au moment de l'affichage ou de l'impression. La deuxième solution présente ainsi l'avantage selon lequel les fichiers générés ont un fort taux de compression et sont d'un volume faible sur une mémoire. Elle présente l'inconvénient selon lequel la vue n'est pas parfaitement fidèle à l'original. En particulier, et comme le montre la figure 1 B, si le logiciel de reconnaissance de caractères se trompe (lecture de « ine » au lieu de « me » dans l'exemple de la figure 1 B), l'erreur est directement répercutée à l'affichage ou lors de l'impression. Afin de permettre la recherche de texte dans le document, la première solution est parfois complétée par une reconnaissance de caractères. On stocke alors deux versions du document : une vue sous forme d'image pure, destinée à l'affichage et à l'impression, et une représentation sous forme d'un fichier texte, invisible pour un utilisateur, mais utilisée pour la recherche. Dans ce cas, le fichier est bien évidemment encore plus volumineux. PRESENTATION DE L'INVENTION L'invention propose de pallier au moins un de ces inconvénients. A cet effet, on propose selon l'invention un procédé de compression d'un document comportant du texte, le document étant scanné sur un dispositif comportant un scanner pour former une image du document et apte à coopérer avec un processeur, ledit procédé étant caractérisé en ce que le processeur effectue une reconnaissance de texte et une reconnaissance de police sur l'image ; génère une reconstitution de l'image, à partir du texte reconnu et de la police reconnue ; calcule un écart entre l'image et la reconstitution ; génère une erreur de la reconstitution, à partir de l'écart calculé ; et compresse l'erreur. L'invention est avantageusement complétée par les caractéristiques 25 suivantes, prises seules ou en une quelconque de leur combinaison techniquement possible : - le processeur calcule l'écart entre l'image et la reconstitution par différence, pixel par pixel, entre l'image et la reconstitution ; - le processeur calcule l'écart entre l'image et la reconstitution par 30 transparence, en comparant la différence entre l'image et la reconstitution, pour au moins un pixel, à un seuil, et en marquant ledit au moins un pixel comme opaque ou au moins partiellement transparent en fonction du résultat de la comparaison au seuil ; - le processeur marque ledit au moins un pixel comme opaque dans l'erreur si la différence est supérieure au seuil, et copie alors dans l'erreur la couleur correspondante de l'image ; ou marque ledit au moins un pixel comme opaque ou au moins partiellement transparent dans l'erreur si la différence est inférieure au seuil, et copie alors dans l'erreur respectivement la couleur correspondante de l'image ou une couleur favorisant l'étape de compression et de stockage ; et - le processeur place un drapeau dans l'erreur ou dans un fichier pour indiquer un mode de génération de l'erreur à un système de 10 décompression. L'invention concerne également un processeur de mise en oeuvre d'un tel procédé, ainsi qu'un produit programme d'ordinateur qui, une fois chargé sur un processeur précité, permet la mise en oeuvre d'un tel procédé. En outre, on propose selon l'invention un procédé de décompression d'une 15 erreur générée à partir d'une image d'un document comportant du texte par un procédé précité, ledit procédé de décompression étant mis en oeuvre sur un système comportant un microprocesseur, et caractérisé en ce que le microprocesseur : génère une reproduction de l'image, à partir d'un texte et d'une police reconnus dans le document ; accède à l'erreur et la 20 décompresse ; et génère une vue du document en combinant l'erreur ainsi décompressée et la reproduction ainsi générée. L'invention concerne enfin un système de mise en oeuvre d'un tel procédé de décompression, ainsi qu'un produit programme d'ordinateur qui, une fois chargé sur un système précité, permet la mise en oeuvre d'un tel 25 procédé. L'invention présente de nombreux avantages. L'invention permet notamment d'obtenir un taux de compression meilleur que la première solution connue, tout en permettant une reproduction fidèle, même en cas d'erreur lors de la reconnaissance de 30 caractères, contrairement à la deuxième solution connue. PRESENTATION DES FIGURES D'autres caractéristiques, buts et avantages de l'invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés sur lesquels : - les figures 1, déjà commentées, représentent schématiquement des vues générées par des solutions connues selon l'art antérieur ; - les figures 2 représentent schématiquement les étapes principales d'un procédé de compression selon l'invention, mis en oeuvre notamment sur un processeur selon l'invention ; - la figure 3 représente schématiquement une erreur générée lors de la mise en oeuvre de l'invention ; - la figure 4 représente schématiquement les principales étapes de génération d'une erreur selon la figure 3 ; - les figures 5 représentent schématiquement les étapes principales d'un 15 procédé de décompression selon l'invention, mis en oeuvre notamment sur un système selon l'invention ; et - la figure 6 représente schématiquement les principales étapes de génération d'une vue selon l'invention. Sur l'ensemble des figures, les éléments similaires portent des 20 références numériques identiques. DESCRIPTION DETAILLEE Comme le montrent les figures 2B et 5B, l'invention concerne à la fois la compression d'un document 1 comportant du texte 100, et la décompression d'un tel document compressé. 25 Avant sa compression, le document 1 est scanné sur un dispositif 2 comportant un scanner 3 pour former une image 10 du document 1. L'image 10 peut être stockée sur une mémoire du dispositif 2 ou distante du dispositif 2, en attente de son traitement, ou traitée immédiatement. Le dispositif 2 est notamment mais non limitativement un scanner, une 30 imprimante, un photocopieur, un télécopieur, ou toute machine multifonction pouvant incorporer un scanner 3 pour le scan d'un document comportant du texte 100. Comme l'indique la figure 2B, le dispositif 2 est apte à coopérer avec un processeur 20, comportant tous les moyens classiques de stockage (mémoire) et de traitement pour la mise oeuvre d'un procédé selon l'invention. Le processeur 20 peut ainsi être incorporé au dispositif 2 (traits pleins), ou être distant (traits pointillés), par exemple incorporé à un ordinateur ou à tout autre ensemble comportant une mémoire et des moyens de traitement. Dans les deux cas, le processeur 20 peut ainsi accéder notamment à l'image 10 du document 1. On décrit dans un premier temps l'invention en ce qui concerne la compression. Les figures 2, en combinaison avec la figure 4, représentent schématiquement les étapes principales d'un procédé de compression selon l'invention (figure 2A), mis en oeuvre notamment sur un processeur 20 selon l'invention (figure 2B). Selon le procédé de compression selon l'invention, le processeur 20 effectue, lors d'une première étape El, une reconnaissance de texte 112 et une reconnaissance de police 113 sur l'image 10. Sur l'exemple de la figure 4, l'image 10 comporte le texte « me » avec 20 deux légères imperfections : une au-dessus de la première barre du « m » et une autre au niveau du premier jambage du « m ». La reconnaissance de caractères et la reconnaissance de police sont connues en elles-mêmes de l'homme du métier et ne sont pas décrites plus en détail dans la suite de la présente description. Elles peuvent être 25 effectuées par la mise en oeuvre par le processeur 20 de l'un parmi les plusieurs logiciels disponibles dans le commerce, comme par exemple le logiciel de la marque OmniPage. Lors d'une deuxième étape E2 optionnelle, le processeur 20 stocke le texte 112 et la police 113 reconnus , par exemple sur une mémoire 21. 30 Comme l'indique la figure 2B, la mémoire 21 peut être incorporée au dispositif 2, ou au processeur 20, ou à un ensemble distant du dispositif 2 et du processeur 20, par exemple sur un serveur distant ou un autre ensemble comportant une mémoire de stockage. L'étape E2 de stockage est optionnelle, mais dans tous les cas, le processeur 20 doit avoir accès au texte 112 et à la police 113 reconnus, pour une étape E3 décrite par la suite. Dans l'exemple de la figure 4, le texte 112 reconnu est « ine » et la 5 police 113 reconnue est du type Times New Roman. Lors d'une troisième étape E3, le processeur 20 génère une reconstitution 12 de l'image 10, à partir du texte 112 reconnu et de la police 113 reconnue. La reconstitution 12 se présente alors sous la forme « ine ». 10 Lors d'une étape E4, le processeur 20 calcule un écart A entre l'image 10 et la reconstitution 12. Le calcul de l'écart A est décrit plus en détail dans la suite de la présente description. Lors d'une étape E5, le processeur 20 génère une erreur 13 de la reconstitution 12, à partir de l'écart A calculé. 15 L'erreur 13 est représentée en fin de chaîne sur la figure 4, et plus précisément sur la figure 3, et correspond aux parties foncées sur ces figures. Lors d'une étape E6, le processeur 20 compresse l'erreur 13. Lors de l'étape E6, le processeur 20 peut 20 - soit stocker l'erreur 13 sur la mémoire 21, soit transférer l'erreur 13 compressée vers un système de décompression, par exemple par l'intermédiaire d'un réseau de télécommunications. Très avantageusement, l'erreur 13 est associée au texte 112 et à la 25 police 113 reconnus, en vue d'une décompression ultérieure décrite par la suite. L'erreur 13 contient peu d'informations et se compresse donc mieux que l'image 10, avec un volume moins important sur la mémoire 21. Avantageusement, la reconstitution 12 est effacée pour encore gagner 30 en espace mémoire. Le texte 112 et la police 113 reconnus peuvent également être compressés. La compression notamment de l'erreur 13 effectuée par le processeur 20 est connue en soi par l'homme du métier, et peut par exemple, mais non limitativement, être du type jpeg (« Joint Photographic Experts Group » selon la terminologie anglo-saxonne généralement utilisée), png (« Portable Network Graphics » selon la terminologie anglo-saxonne généralement utilisée), jbig (Joint Bi-level Image experts Group), etc. Très avantageusement, lors de l'étape E6 par exemple, le processeur 20 crée également un fichier 110 comportant le texte 112 reconnu, la police 113, reconnue, et l'erreur 13 compressée. Le fichier 110 est stocké de préférence sur la mémoire 21, ou peut être envoyé vers un système de décompression par l'intermédiaire d'un réseau de télécommunications. On décrit ici deux exemples possibles de modes de génération de l'erreur 13, à partir de l'écart A. Selon un premier mode, le processeur 20 calcule, lors de l'étape E4, l'écart A entre l'image 10 et la reconstitution 12 par différence, pixel par pixel, entre l'image 10 et la reconstitution 12. L'écart A pixel par pixel permet alors la génération de l'erreur 13 pour les pixels pour lesquels la différence est non nulle. Selon un deuxième mode, le processeur 20 calcule, lors de l'étape E4, l'écart A entre l'image 10 et la reconstitution 12 par transparence. Selon le deuxième mode, l'erreur 13 contient, pour chaque pixel ou chaque groupe de pixels, une information de transparence (opacité, transparence partielle ou transparence) et une information de couleur. Dans le deuxième mode, le processeur 20 compare la différence entre l'image 10 et la reconstitution 12, pour au moins un pixel, à un seuil S. En d'autres termes, le processeur peut comparer la différence pixel par pixel, ou pour un groupe de pixels de l'image 10 et de la reconstitution 12. La valeur du seuil S est fixée par conception et dépend du niveau de précision souhaitée. Le processeur 20 marque alors ledit au moins un pixel comme opaque ou au moins partiellement transparent en fonction du résultat de la 30 comparaison au seuil S. Si la différence est supérieure au seuil S, le processeur 20 marque ledit au moins un pixel comme opaque dans l'erreur 13, et copie avantageusement alors dans l'erreur 13 la couleur correspondante de l'image 10. Si la différence est inférieure au seuil S, le processeur 20 peut marquer ledit au moins un pixel comme opaque dans l'erreur 13 et peut copier alors respectivement la couleur correspondante de l'image 10 si cette dernière favorise l'étape E6 de compression et de stockage. Si la couleur correspondante de l'image 10 ne favorise pas l'étape E6 de compression et de stockage, le processeur 20 peut marquer ledit au moins un pixel comme au moins partiellement transparent dans l'erreur 13 et choisir une opacité et une couleur qui optimisent la compression, tout en permettant de reconstituer l'image originale. Le processeur 20 peut également marquer le pixel ou le groupe de pixels comme transparent, et dans ce cas peut choisir n'importe quelle couleur favorisant l'étape E6 de compression et de stockage en fonction des pixels voisins. Une telle gestion de la transparence en fonction du seuil S est connue en soi par l'homme du métier et n'est pas décrite plus en détail dans la présente description. Le processeur 20 place avantageusement un drapeau 111 (ou « flag » selon la terminologie généralement utilisée par l'homme du métier) dans l'erreur 13 ou le fichier 110 pour indiquer le mode de génération de l'erreur 13 (premier mode ou deuxième mode précités) à un système de décompression, décrit dans la suite. On décrit dans un deuxième temps l'invention en ce qui concerne la 25 décompression. On rappelle que l'erreur 13 compressée est stockée sur une mémoire 21, ou compressée et envoyée à un système 2000 décrit ci-dessous. L'erreur 13 est par exemple contenue dans un fichier 110. Les figures 5, en combinaison avec la figure 6, représentent 30 schématiquement les étapes principales d'un procédé de décompression selon l'invention (figure 5A), mis en oeuvre notamment sur un système 2000 selon l'invention (figure 5B). Le système 2000 comporte notamment un microprocesseur 200 présentant tous les moyens classiques de stockage (mémoire) et de traitement pour la mise oeuvre d'un procédé selon l'invention Le système 2000 peut comporter également un écran d'affichage 201 5 et/ou une imprimante 202. Le système 2000 est notamment mais non limitativement un micro-ordinateur, un scanner, une imprimante, un photocopieur, un télécopieur, ou toute machine multifonction pour l'affichage sur l'écran 201 et/ou l'impression sur l'imprimante 202 d'une vue 1000 du document 1. 10 On comprend que le système 2000 et le dispositif 2 peuvent ne former qu'une seule entité, ou être distincts et séparés physiquement l'un de l'autre, reliés ou non entre eux par un réseau de télécommunication (par exemple des réseaux locaux du type LAN (« local area network » selon la terminologie anglo-saxonne) ou globaux du type Internet. 15 Comme l'indique la figure 5B, le système 2000 est apte à accéder notamment à l'erreur 13 compressée et, au moins au texte 112 reconnu et à la police 113 reconnue. Comme mentionné plus haut, l'accès peut se faire par une coopération avec une mémoire 21, ou grâce à un réseau de télécommunications lié au processeur 20. 20 Selon le procédé de décompression selon l'invention, le microprocesseur 200 génère, lors d'une étape E10, une reproduction 120 de l'image 10, à partir du texte 112 et de la police 113 reconnus dans le document 1. Sur l'exemple de la figure 6, la reproduction 120 présente sous la 25 forme « ine ». Lors d'une étape E11, le microprocesseur 200 accède à l'erreur 13 et la décompresse. La décompression de l'erreur 13, effectuée par le microprocesseur 200, est connue en soi par l'homme du métier, et dépend de la 30 compression, par exemple, mais non limitativement, du type jpeg, png, jbig, etc. On comprend que pour les étapes E10 ou E11, le microprocesseur 200 peut également accéder, le cas échéant, au fichier 110 regroupant notamment le texte 112 reconnu, la police 113 reconnue, et l'erreur 13. Le microprocesseur 200 génère, lors d'une étape E12, une vue 1000 du document 10 en combinant l'erreur 13 ainsi décompressée et la reproduction 120 ainsi générée, comme le montre la figure 6. Avantageusement, le microprocesseur 200 du système 2000 utilise le drapeau 111 du fichier 110 ou de l'erreur 13 indiquant le mode de génération de l'erreur 13, pour effectuer la combinaison. Les étapes de combinaison sont décrites plus en détail dans la suite de la présente description. Le microprocesseur 200 génère une vue 1000 fidèle du document 1 pour son affichage sur l'écran d'affichage 201 ou sur l'imprimante 202, comme le montre la figure 6, même en cas d'erreur lors de la reconnaissance de caractères (« ine » dans la reproduction 120). On décrit ici deux exemples possibles de modes de génération de la vue 1000, en fonction du mode de génération de l'erreur 13, indiqué au microprocesseur 200 grâce au drapeau 111. Selon un premier mode de génération, l'erreur 13 a été générée par 20 différence, et le microprocesseur 200 génère la vue en additionnant l'erreur décompressée à la reproduction 120. Selon un deuxième mode de génération, l'erreur 13 a été générée par transparence. Si un pixel de l'erreur 13 est marqué comme transparent, le microprocesseur 200 copie la couleur du pixel correspondant de la 25 reproduction 120 dans la vue 1000. Si un pixel de l'erreur 13 est marqué comme opaque, le microprocesseur 200 copie la couleur dudit pixel de l'erreur 13 dans la vue 1000. Si un pixel est marqué comme partiellement transparent, le microprocesseur 200 calcule une moyenne entre la couleur de la reproduction 120 et la couleur de l'erreur 13, pondérée par l'opacité 30 dudit pixel de l'erreur 13. Une telle gestion de la transparence est connue en soi par l'homme du métier et n'est pas décrite plus en détail dans la présente description. L'invention concerne également un produit programme d'ordinateur qui, une fois chargé sur un processeur précité, permet la mise en oeuvre d'un procédé de compression précité, ainsi qu'un produit programme d'ordinateur qui, une fois chargé sur un système précité, permet la mise en oeuvre d'un procédé de décompression précité. REVENDICATIONS1. Procédé de compression d'un document (1) comportant du texte (100), le document (1) étant scanné sur un dispositif (2) comportant un scanner (3) pour former une image (10) du document (1) et apte à coopérer avec un processeur (20), ledit procédé étant caractérisé en ce que le processeur (20) - effectue (El) une reconnaissance de texte et une reconnaissance de police sur l'image (10) ; - génère (E3) une reconstitution (12) de l'image (10), à partir du texte (112) reconnu et de la police (113) reconnue ; - calcule (E4) un écart (A) entre l'image (10) et la reconstitution (12) ; - génère (E5) une erreur (13) de la reconstitution (12), à partir de l'écart (A) calculé ; et - compresse (E6) l'erreur (13). 2. Procédé selon la revendication 1, dans lequel le processeur (20) calcule (E4) l'écart (A) entre l'image (10) et la reconstitution (12) par différence, pixel par pixel, entre l'image (10) et la reconstitution (12). 3. Procédé selon la revendication 1, dans lequel le processeur (20) calcule (E4) l'écart (A) entre l'image (10) et la reconstitution (12) par transparence, en comparant la différence entre l'image (10) et la reconstitution (12), pour au moins un pixel, à un seuil (S), et en marquant ledit au moins un pixel comme opaque ou au moins partiellement transparent en fonction du résultat de la comparaison au seuil. 4. Procédé selon la revendication 3, dans lequel le processeur (20) - marque ledit au moins un pixel comme opaque dans l'erreur (13) si la différence est supérieure au seuil (S), et copie alors dans l'erreur (13) la couleur correspondante de l'image (10) ; ou - marque ledit au moins un pixel comme opaque ou au moins partiellement transparent dans l'erreur (13) si la différence est inférieure au seuil (S), et copie alors dans l'erreur (13) respectivement la couleur correspondante de l'image (10) ou une couleur favorisant l'étape (E6) de compression et de stockage. 5. Procédé selon l'une des revendications 1 à 4, dans lequel le processeur (20) place un drapeau (111) dans l'erreur (13) ou dans un fichier (110) pour indiquer un mode de génération de l'erreur (13) à un système (2000) de décompression. 6. Processeur (20) apte à coopérer avec un dispositif (2) comportant un scanner (3) pour former une image (10) d'un document (1) comportant du texte (100), ledit processeur (20) étant caractérisé en ce qu'il est adapté pour la mise en oeuvre d'un procédé selon l'une des revendications 1 à 5. 7. Produit programme d'ordinateur qui, une fois chargé sur un processeur (20) selon la revendication 6, permet la mise en oeuvre d'un procédé selon l'une des revendications 1 à 5. 8. Procédé de décompression d'une erreur (13) générée à partir d'une 20 image (10) d'un document (1) comportant du texte (100) par un procédé selon l'une des revendications 1 à 5, ledit procédé de décompression étant - mis en oeuvre sur un système (2000) comportant un microprocesseur (200), et 25 - caractérisé en ce que le microprocesseur (200) : - génère (E10) une reproduction (120) de l'image (10), à partir d'un texte (112) et d'une police (113) reconnus dans le document (1) ; - accède (E11) à l'erreur (13) et la décompresse (E11) ; et - génère (E12) une vue (1000) du document (10) en combinant 30 l'erreur (13) ainsi décompressée et la reproduction (120) ainsi générée. 9. Système (2000) comportant un microprocesseur (200), caractérisé en ce que le microprocesseur (200) est adapté pour la mise en oeuvre d'un procédé selon la revendication 8. 10. Produit programme d'ordinateur qui, une fois chargé sur un système (2000) selon la revendication 9, permet la mise en oeuvre d'un procédé selon la revendication 8.