FR2782820A1 - Procede et dispositif de traitement d'image - Google Patents

Procede et dispositif de traitement d'image Download PDF

Info

Publication number
FR2782820A1
FR2782820A1 FR9905533A FR9905533A FR2782820A1 FR 2782820 A1 FR2782820 A1 FR 2782820A1 FR 9905533 A FR9905533 A FR 9905533A FR 9905533 A FR9905533 A FR 9905533A FR 2782820 A1 FR2782820 A1 FR 2782820A1
Authority
FR
France
Prior art keywords
memory
page
data
imaging
memory management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR9905533A
Other languages
English (en)
Inventor
Russell Campbell
Timothy P Blair
Richard M Dow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of FR2782820A1 publication Critical patent/FR2782820A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0065Page or partial page composition

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

L'invention concerne un procédé de traitement d'image. Il comprend les étapes consistant à : (a) agencer dans une mémoire (40) : (i) des données d'une page en cours de composition (110, 115) en vue d'une imagerie, et (ii) des données d'au moins une page composée (125, 130, 135, 140, 145) en attente d'imagerie; (b) détecter des marquages indicatifs d'un état de la mémoire; et (c) en réponse à une détection des marquages, exécuter une tâche de gestion de mémoire sur des données contenues dans la mémoire sans attendre que soit finie une imagerie (155) de l'une quelconque des pages composées (125, 130, 135, 140, 145). L'invention inclut aussi un appareil correspondant.

Description

1i La présente demande inclut des éléments concernant la demande également
en attente portant le numéro de série du Bureau des Brevets des Etats Unis, ou U.S.P.T.O., Bordereau de mandataire N 10 981 041, intitulé "Conservation of Printer Memory on the Composition page in response to page pipe feedback", c'est-à-dire Conservation de mémoire d'imprimante sur la page de composition en réponse à une remontée d'information d'un pipe-line de pages, et la demande également en attente portant le numéro de série du Bureau des Brevets des Etats Unis, Bordereau de mandataire N 10 981 830, intitulée "Complexity extensions for band management in a printer page pipe", c'est-à-dire Extensions de complexité pour une gestion de bande dans un pipe-line de pages d'une imprimante, déposées l'une et l'autre à la même date que la présente demande et incorporées ici par référence. L'invention concerne en général des dispositifs de formation d'images et, plus particulièrement, une
gestion de mémoire d'imprimante par page.
Maximiser la vitesse d'impression est un but important pour toute imprimante. Satisfaire à ce but peut être difficile pour des imprimantes laser par page pour des raisons de conflit de ressources, de limitation de ressources, de fragmentation de ressources et d'absence de connaissance préalable du
contenu du travail et de la page.
Dans des imprimantes qui emploient des moteurs laser comme "mécanismes d'impression", les données doivent être fournies à une vitesse qui est suffisamment élevée pour s'adapter à l'allure de l'impression (qui peut être mesurée par la vitesse du mouvement du papier au tambour d'imagerie). Dans de telles imprimantes, un formatage est exécuté, soit sur l'ordinateur hôte, au quel cas de grands volumes de
2 2782820
données d'images converties en images point à point ou, en d'autres termes, converties pour balayage récurrent sont envoyés à l'imprimante à haute vitesse, soit sur un formateur inclus dans l'imprimante elle-même. Puisqu'un moteur classique d'imprimante laser fonctionne à vitesse constante, si des données d'images converties pour balayage récurrent, ou en abrégé pour balayage, ne sont pas disponibles lorsqu'un segment précédent de données d'images a été imprimé, il se produit un "dépassement de capacité d'impression" ou "punt" selon le mot anglo-saxon, littéralement un coup de volée selon le
terme sportif, et la page ne peut être imprimée.
Essentiellement, afin d'éviter un coup de volée, le processeur d'image qui convertit des données d'images pour balayage "court", terme utilisé ici au sens d'une poursuite en chasse, la Tâche Vidéo de Sortie qui forme les images des données sur le tambour d'imagerie. Ceci est classiquement appelé "courir le
laser".
Plusieurs procédés ont été utilisés dans l'art
pour éviter des dépassements de capacité d'impression.
En premier lieu, il est toujours possible de mémoriser dans l'imprimante une représentation binaire complète de données d'une page entière converties pour balayage, de façon que le mécanisme d'impression possède toujours des données converties pour balayage qui attendent une impression. Cependant, cette solution exige de grandes quantités de mémoire vive ou RAM pour chaque page. Un deuxième procédé qui permet d'assurer la disponibilité de données d'impression pour une imprimante laser consiste à établir une liste d'affichage à partir des ordres qui décrivent une
page. Au cours d'un formatage, une description de page
reçue d'un hôte est convertie en une série d'ordres simples, appelés des ordres d'affichage, qui décrivent
3 2782820
ce qui doit être imprimé. Les ordres d'affichage sont divisés et sont triés en fonction de leur position verticale sur la page. La page est ensuite divisée logiquement en sections appelées des bandes, ou bandes de page. La somme des ordres d'affichage pour chaque
bande est appelée la liste d'affichage de cette bande.
Les bandes sont ensuite restituées individuellement, c'est-à-dire que les objets décrits dans la liste d'affichage pour chaque bande sont restitués, pour former une représentation binaire de données converties pour balayage et sont transmises pour impression au moteur d'impression. Cette procédure permet d'utiliser des quantités de mémoire vive
moindres pour l'image à imprimer.
Lorsque les ordres d'affichage sont restitués à une cadence suffisamment rapide, la même mémoire qui est utilisée pour une première bande peut être réutilisée pour une bande ultérieure située plus bas dans la page. Il est par exemple connu d'employer, dans certaines imprimantes de l'art antérieur, trois tampons de balayage récurrent pour mémoriser des bandes. Pendant un traitement de page, le premier tampon est réutilisé pour une quatrième bande de la page, le deuxième tampon est réutilisé pour une cinquième bande, et ainsi de suite. Cependant, dans le cas d'une performance classique d'une page par minute, qui est en général un maximum, il reste peu de temps entre la fin de l'impression d'une bande et l'instant o il faut que la bande suivante soit convertie pour
balayage à partir du même tampon d'impression.
Dans certaines circonstances, des bandes "complexes" incluent de nombreux ordres d'affichage et exigent un temps plus long que le temps normal pour la conversion pour balayage. De plus, pour convertir une bande pour balayage, qu'elle soit "complexe" ou non, il faut davantage d'espace de mémoire que ce qui est
4 2782820
couramment disponible, en fonction de plusieurs facteurs associés à l'imprimante qui comprennent la dimension de la mémoire, la fragmentation de la mémoire, la tâche à imprimer, et d'autres activités du5 système d'imprimante. Dans le cas d'une bande complexe, le temps de conversion pour balayage peut augmenter dans une mesure telle que la bande suivante ne peut pas être amenée à temps, ce qui provoque un dépassement de capacité d'impression. Une conversion préalable pour balayage est donc fréquemment exécutée sur une bande complexe pour assurer que la course d'imagerie vidéo avec le laser ne provoquera pas de
dépassement de capacité d'impression.
Courir le laser exige de déterminer comment obtenir le meilleur compromis entre la mémoire d'imprimante et les exigences de traitement en temps réel. Dans une imprimante qui fonctionne de façon appropriée, un dépassement de capacité d'impression est évité parce que la tâche du Processeur d'Images parvient exactement à gagner chaque course avec la tâche de sortie vidéo à accès direct à la mémoire, ou à DMA suivant les initiales du terme anglo-saxon, Direct Memory Access. Il est indésirable d'éviter des dépassements de capacité d'impression en convertissant pour balayage au préalable de façon unilatérale chaque bande vidéo parce que ceci consomme, même en cas de compression, une trop grande quantité de précieuse mémoire d'imprimante pour les tampons vidéo à accès direct en mémoire. Dans ces conditions, un processus a été développé pour permettre de minimiser le nombre des tampons vidéo convertis préalablement pour balayage et est décrit dans le brevet des Etats Unis
NO 5 129 049 de Cuzzo et al., dont la description est
incorporée ici en totalité par référence. Ceci a été étendu pour des mesures de coût de processeur d'image à compression et empirique dans le brevet des Etats
2782820
Unis N 5 479 587 de Campbell et al., incorporé lui
aussi ici en totalité par référence.
Dans le brevet de Campbell et al., dans le cas o la mémoire disponible est faible, pour traiter des ordres d'impression, c'est-à-dire dans le cas d'un manque de mémoire, chaque bande d'une page peut être réévaluée et traitée en plusieurs étapes pour tenter de réduire les exigences d'allocation de mémoire et de libérer davantage de mémoire. Par exemple, chaque bande peut être convertie pour balayage et être comprimée en utilisant l'une de plusieurs techniques de compression. Lorsqu'une bande a été convertie pour balayage et a été comprimée, l'exigence d'allocation de mémoire est déterminée pour cette bande. Si l'exigence d'allocation de mémoire est inférieure à l'exigence d'allocation de mémoire de la liste d'affichage pour cette même bande, par rapport à un seuil de comparaison, la version convertie pour balayage et comprimée est utilisée et mémorisée en substitution à la liste d'affichage. La bande convertie pour balayage et comprimée est mémorisée par dissection en fragments, ou segments, et est ensuite reliée et répartie dans des "trous" de la mémoire. Les "trous" sont typiquement des zones libres isolées plus petites de mémoire, entourées par de plus grandes zones indisponibles, c'est-à-dire utilisées par ailleurs. En revanche, si l'exigence d'allocation de mémoire de la bande convertie pour balayage et comprimée n'est pas inférieure à l'exigence d'allocation de mémoire pour sa liste d'affichage, par rapport au seuil de comparaison, la bande peut être retraitée en utilisant une technique de compression différente. Ces étapes consistant à convertir une bande pour balayage, la comprimer, comparer la dimension de la version comprimée à la liste d'affichage, et déterminer si l'exigence d'allocation
6 2782820
de mémoire de la version comprimée est inférieure à celle de la liste d'affichage, peuvent être répétées de nombreuses fois en utilisant des techniques différentes de compression et/ou des seuils différents jusqu'à ce que l'exigence d'allocation de la bande
soit inférieure à celle de sa liste d'affichage.
Dès lors que toutes les bandes ont été converties pour balayage, comprimées, évaluées et réparties, lorsque l'exigence de seuil a été satisfaite, le traitement des ordres d'impression reprend au point o l'événement de faible mémoire disponible a été détecté précédemment, c'est-à-dire le point qui a lancé le processus de réévaluation pour cette page. La bande qui tentait précédemment une allocation de mémoire mais qui détectait l'événement de faible mémoire, disponible, devrait maintenant disposer d'une meilleure chance de pouvoir satisfaire à son
allocation de mémoire.
A la différence du brevet de Campbell et al., le brevet des Etats Unis N 5 483 622 de Zimmerman et al., décrit A Page Printer Having Automatic Font Compression, c'est-à-dire Une imprimante par page à compression automatique de police, et est lui aussi incorporé ici en totalité par référence. Dans le brevet de Zimmerman et al., lorsque la mémoire disponible pour traiter des ordres d'impression est faible, le procédé exécute, pour remédier à l'erreur de mémoire faible, des variantes d'étapes qui comprennent: (i) comprimer des images graphiques de balayage récurrent, et (ii) si aucune image graphique de balayage récurrent n'est présente ou si une compression des images graphiques de balayage récurrent n'enlève pas l'erreur de mémoire faible, comprimer des caractères de police. De plus, une police de grande dimension dont la dimension dépasse un seuil peut être comprimée automatiquement,
7 2782820
indépendamment de la présence éventuelle d'un signal
de mémoire faible ou de mémoire épuisée.
Bien que les techniques de traitement de mémoire citées ci-dessus permettent souvent de satisfaire à une demande d'allocation de mémoire, une fragmentation de la mémoire peut ne pas être réduite. Par exemple, une fragmentation peut ne pas être réduite au cours de la composition de la page actuelle parce que chaque bande de la page est traitée indépendamment de toutes les autres bandes. En effet, si une première bande est convertie pour balayage, répartie et mémorisée, et qu'ensuite une certaine quantité de mémoire qui entoure un segment réparti de cette première bande cesse ultérieurement d'être alloué, la première bande provoque en fait une fragmentation de la mémoire puisqu'elle reste là, même lorsque les zones qui l'entourent ont cessé d'être allouées. Ce scénario peut par exemple se produire si un segment de la première bande a été mémorisé dans un trou qui a été créé par une liste d'affichage d'une deuxième bande, et que la liste d'affichage de la deuxième bande a été ensuite enlevée de l'environnement de la première bande afin de restituer la bande convertie par balayage et comprimée de la deuxième bande. De façon désavantageuse, le traitement global de page est handicapé et une erreur de manque de mémoire peut en résulter, si la mémoire devient trop fragmentée, c'est-à-dire s'il existe dans tout l'espace d'adresses de la mémoire un trop de "trous" grand nombre tel que d'autres demandes d'allocation de mémoire qui exigent des allocations contiguës de mémoire ne peuvent pas être satisfaites. La demande de brevet des Etats Unis Numéro de série 08/918 835 décrit en outre la dissection de bandes en trous dans la mémoire et décrit en outre un procédé de réduction de la
8 2782820
fragmentation, et est incorporé ici en totalité par référence. Il faudrait finalement noter qu'aucun de ces
systèmes de traitement d'images n'enseigne un pipe-
line de pages" en connexion avec les méthodes de gestion de mémoire employées. Un pipe-line de pages est la somme de toutes les pages composées présentes dans une mémoire, qui attendent d'être traités par le moteur d'impression, c'est-à-dire qu'elles attendent d'être soumises à une imagerie vidéo. Typiquement, ces systèmes antérieurs n'incorporent que des quantités à peine suffisantes de mémoire pour fonctionner et ils ne peuvent par conséquent pas prendre en charge un vrai pipe-line de pages. Spécifiquement, de telles imprimantes emploient suffisamment de mémoire pour composer une page actuelle à une vitesse à peine suffisante pour courir le laser et, généralement, pour exécuter simultanément une imagerie vidéo d'une page déjà composée. Mais elles ne disposent pas d'une mémoire, et de ressources de gestion de mémoire, suffisantes pour contenir et gérer des pages qui sont déjà composées et attendent simplement une imagerie vidéo. En d'autres termes, aucun pipe-line de pages n'est enseigné par ces systèmes. Par conséquent, chaque fois qu'il se produit pour la page actuelle en cours de composition un conflit de ressource de mémoire, par exemple un manque d'allocation de mémoire, les système antérieurs attendent simplement, classiquement, que l'imagerie de la page unique déjà composée, dont l'imagerie vidéo est en cours, soit
achevée son et libère ses ressources de mémoire.
Des systèmes d'impression plus récents, plus
grands et plus rapides, emploient cependant des pipe-
lines pour maintenir les imprimantes en fonctionnement à pleine vitesse. De tels pipe-lines de pages peuvent varier quant à leurs dimensions pour contenir une ou
9 2782820
plusieurs pages qui sont déjà composées et attendent une imagerie vidéo. Dans ces systèmes de pipe-lines de pages, la probabilité de fragmentation de la mémoire et de conflit de ressources de mémoire est augmentée 5 par rapport à des système sans pipe-line de pages. Par conséquent, si le traitement des ordres d'impression, c'est-à-dire la composition de la page actuelle, ne peut pas être satisfait, il est connu que le processus d'impression s'arrête dans certains cas pour une "pause" indésirable, lorsque de multiples pages sont présentes dans le pipe-line. Lorsqu'une pause se
produit, il a été reconnu que l'imprimante, c'est-à-
dire la tâche de composition, attend typiquement l'allocation en mémoire d'une bande qui est nécessaire pour éviter le dépassement de capacité d'impression, ou coup de volée. Il existe de nombreuses raisons pour lesquelles l'allocation peut ne pas se produire, y compris une fragmentation de mémoire, un conflit de ressources, et une faible disponibilité de mémoire libre. Cependant, après l'impression d'une ou plusieurs des pages qui sont dans le pipe-line de pages, c'est-à-dire lorsque l'imagerie vidéo a été exécutée ou, en d'autres termes, que les pages ont été "vidées" du pipe-line, une quantité suffisante de mémoire devient en général disponible, de sorte que l'allocation de bande peut généralement être
satisfaite, ce qui permet de mettre fin à la "pause".
Il est notable que, pendant une "pause" donnée quelconque, une largeur de bande potentielle de traitement est perdue, classiquement, parce que des tâches additionnelles de composition de page sont suspendues jusqu'à ce que des ressources suffisantes
deviennent disponibles.
L'effet de "pause", c'est-à-dire cette suspension de tâches additionnelles de composition de pages, qui se produit pendant un travail d'impression à pages
2782820
multiples, est non seulement indésirable mais de plus
frustrant pour un utilisateur qui s'attend à un certain débit en pages par minute, conforme à la description donnée par les spécifications de 5 l'imprimante par page.
C'est donc un but de la présente invention que d'améliorer la cohérence de débit de pages dans une imprimante au moyen de techniques améliorées de
gestion de mémoire.
Selon les principes de la présente invention, dans un mode de réalisation préféré, un dispositif et un procédé d'imagerie exercent des tâches de gestion de mémoire sur des données contenues dans la mémoire lors de la détection d'un état de la mémoire pendant la composition d'une page en cours. De façon avantageuse, les tâches de gestion de mémoire sont exécutées sans attendre que l'imagerie d'une page déjà composée soit finie. Par conséquent, le débit en pages d'un travail d'impression à pages multiples est
amélioré.
L'état détecté de la mémoire inclut un manque d'allocation de mémoire et un seuil d'état de mémoire libre. Les tâches de gestion de mémoire incluent une compression des données dans la mémoire, une nouvelle localisation ou, en d'autres termes, un déplacement des données, et/ou tant une compression qu'un déplacement des données. La compression et le déplacement incluent, facultativement, l'utilisation
d'une technique qui évite de fragmenter la mémoire.
De façon plus spécifique, l'invention fournit, selon un premier aspect, un procédé de traitement d'image caractérisé en ce qu'il comprend les étapes consistant à: (a) agencer dans une mémoire: (i) des données d'une page en cours de composition en vue d'une imagerie, et il 2782820 (ii) des données d'au moins une page composée en attente d'imagerie; (b) détecter des marquages indicatifs d'un état de la mémoire; et (c) en réponse à une détection des marquages, exécuter une tâche de gestion de mémoire sur des données contenues dans la mémoire sans attendre que soit finie une imagerie de l'une quelconque des pages composées. La mémoire peut être associée à un dispositif d'imagerie qui inclut une imprimante, un photocopieur
ou un télécopieur.
L'état de la mémoire peut inclure un manque d'allocation de mémoire, et/ou l'état de la mémoire peut inclure un seuil d'état
de mémoire libre.
Les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée peuvent inclure une parcelle de balayage récurrent, une police, une configuration modèle, une bande vidéo,
une bande monstre ou une bande vectorielle, et/ou.
les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée peuvent inclure les données de la page en cours de composition pour imagerie, et/ou les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée peuvent inclure les données de la page composée unique
au moins en attente d'imagerie.
La tâche de gestion de mémoire peut inclure une compression des données, ou, en variante, la tâche de gestion de mémoire peut inclure un déplacement des données, ou selon une autre variante encore la tâche de gestion de mémoire peut inclure une
compression et un déplacement des données.
12 2782820
Dans le cas de cette dernière variante, le procédé peut inclure en outre les étapes consistant à: comprimer et déplacer les données en utilisant
une technique qui évite une fragmentation de mémoire.
Selon un deuxième aspect, l'invention réalise un appareil de traitement d'image caractérisé en ce qu'il comprend: a) un moteur d'imagerie connecté fonctionnellement à une mémoire, la mémoire incluant: (i) des données d'une page en cours de composition en vue d'une imagerie, et (ii) des données d'au moins une page composée en attente d'imagerie; (b) un moyen de détection de marquages indicatifs d'un état de la mémoire (40) tandis que la page est en cours de composition pour imagerie; et (c) un moyen d'exécution d'une tâche de gestion de mémoire sur des données contenues dans la mémoire en réponse à une détection des marquages sans attendre que soit finie une imagerie d'une quelconque page
composée.
Le moteur d'imagerie peut être associé à une
imprimante, un photocopieur ou un télécopieur.
L'état de la mémoire peut inclure un manque d'allocation de mémoire et/ou l'état de la mémoire peut inclure un seuil d'état
de mémoire libre.
Les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée peuvent inclure les données de la page en cours de
composition pour imagerie et/ou.
les données de la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée peuvent inclure les données de la page composée unique au moins en
attente d'imagerie.
La tâche de gestion de mémoire peut inclure une compression des données et/ou
13 2782820
la tâche de gestion de mémoire peut inclure un déplacement des données.
Les buts, particularités et avantages de la présente invention exposés ci-dessus, ainsi que
d'autres, ressortiront davantage de la description qui
suit d'un mode de réalisation préféré, en se référant aux dessins, dans lesquels: la FIG. 1 est un schéma fonctionnel d'une imprimante laser qui incorpore le système de la présente invention et un procédé de gestion de mémoire dans un travail d'impression à pages multiples; la FIG. 2 est un schéma logique qui représente
des états de traitement d'image concernant un pipe-
line de pages, applicable à la présente invention; la FIG. 3 est un schéma logique qui représente de façon générale le procédé de traitement d'images de la
présente invention dans un système d'imagerie à pipe-
line de pages; la FIG. 4 est un schéma logique qui représente une tâche de gestion de mémoire par compression exécutée selon les principes de la présente invention tandis que la tâche de composition est bloquée et attend une libération de mémoire; la FIG. 5 est un schéma logique qui représente une tâche de gestion de mémoire par compression et déplacement de données, qui est appelée tandis que la tâche de composition est bloquée; les FIG. 6A à 6E sont des schémas fonctionnels qui représentent dans une mémoire, à des instants différents, des parcelles pour balayage qui sont comprimées et déplacées en utilisant une technique qui évite les fragmentations; les FIG. 7 et 8 sont des schémas logiques de liaison qui représentent un procédé préféré de compression anticipée de parcelles pour balayage;
14 2782820
la FIG. 9 est un schéma fonctionnel qui représente un mécanisme préféré destiné à éviter des collisions entre une compression en vol et/ou un déplacement en vol, et une imagerie vidéo; les FIG. 10A et 0lB sont des schémas logiques qui représentent une variante de mode de réalisation destinée à éviter des collisions entre une tâche d'imagerie vidéo et des opérations de gestion de mémoire exécutées sur des bandes en vol; la FIG. 11 est un schéma logique qui représente un procédé préféré de compression de parcelles pour balayage à l'avance, en d'autres termes, par anticipation, par régulation à rétroaction ou, en d'autres termes, à remontée d'information; la FIG. 12 est un schéma fonctionnel qui représente un mode de réalisation préféré de bande en vol dans laquelle des éléments de données de complexité sont liés à la bande pour permettre une gestion de mémoire en vol; la FIG. 13 représente une variante simplifiée de mode de réalisation d'une bande en vol dans laquelle seul un élément unique de données de complexité est lié à la bande pour permettre une gestion de mémoire en vol; et la FIG. 14 est un schéma logique qui représente un procédé d'utilisation d'éléments de données de complexité qui sont liés à des bandes pour une gestion des bandes en vol. La FIG. 1 est un schéma fonctionnel de haut niveau d'une imprimante 10 par page qui incorpore l'appareil et le procédé de la présente invention destinés à améliorer la gestion de mémoire et à réduire ainsi des pauses d'imprimante pendant un travail d'impression à pages multiples. L'imprimante 10 par page est commandée par un microprocesseur 15 qui communique avec d'autres éléments du système par
2782820
l'intermédiaire d'un bus 20. Un dispositif de commande de moteur d'impression et un moteur d'impression associé 30 sont connectés au bus 20 et offrent la capacité de sortie d'impression de l'imprimante par 5 page. Le moteur d'impression 30 est de préférence une imprimante laser qui emploie un système d'imagerie à tambour électro-photographique, d'une manière bien connue dans l'art. Cependant, comme il ressort clairement à l'homme de l'art, la présente invention est applicable de façon semblable à d'autres types d'imprimantes et à d'autres dispositifs d'imagerie pour améliorer la cohérence de débit de pages, y compris des photocopieurs et télécopieurs numériques
et similaires.
Un port d'entrée/sortie, ou E/S, 35 réalise des communications entre l'imprimante 10 par page et l'ordinateur hôte 37 et reçoit, de l'hôte, des
descriptions de pages à traiter à l'intérieur de
l'imprimante 10 par page. Une mémoire vive, ou RAM, dynamique 40 constitue une mémoire principale de l'imprimante par page. Dans le cadre de la présente
description, la mémoire vive 40 est représentative
d'une mémoire polyvalente et/ou d'une antémémoire associée au processeur 15, bien connues l'une et l'autre dans l'art. Une première partie de la mémoire vive 40 inclut, dans le présent exemple, trois tampons , 50 et 55, désignés ci-après par 45 à 55, alloués préalablement ou en d'autres termes réservés, qui sont employés pendant le traitement de bandes. Ces tampons peuvent être des tampons vidéo selon un mode de réalisation préféré, ou d'autres tampons alloués préalablement. Pendant le processus d'impression, chaque tampon vidéo préalablement alloué reçoit des données sélectionnées d'une image convertie pour balayage d'une bande, pour les mémoriser et les transmettre au dispositif de commande 25 du moteur
16 2782820
d'impression et au moteur d'impression 30. C'est seulement lorsque l'un des tampons 45, 50 ou 55 est devenu disponible, c'est-à-dire lorsque les données converties pour balayage de la bande ont été 5 transférées sur le tambour et que l'imagerie a été effectuée, qu'une bande suivante de données converties pour balayage peut être insérée. Pendant un travail d'impression à pages multiples, ou en d'autres termes en pipe-line, ces tampons vidéo sont constamment en cours d'utilisation et ils ne sont utilisés que pour mémoriser temporairement les données d'images converties pour balayage, avant leur envoi au moteur d'impression. Bien que le pipe-line de données d'impression puisse être "vidé", hors des tamponsvidéo, pour les libérer pour d'autres besoins de traitement d'impression, il n'est généralement pas souhaitable de les vider de cette manière en raison de la "pause" inévitable qui se produit dans le processus d'impression, et qui peut apparaître au cours d'un travail d'impression à pages multiples, ou entre des travaux d'impression. Dans ce contexte, un "vidage" implique généralement d'attendre qu'une mémoire suffisante 40 soit libérée pour satisfaire à une demande particulière d'allocation par la page actuellement en cours de composition, ce qui peut impliquer d'attendre que soit finie l'imagerie d'une page composée actuellement en cours d'imagerie vidéo et/ou d'attendre que soit terminée l'imagerie vidéo d'une ou plusieurs pages qui sont composées et en attente dans le pipe-line de pages, de façon que leurs
ressources allouées de mémoire soit libérées.
Selon un mode de réalisation préféré, une deuxième partie de la mémoire vive 40 inclut un autre tampon de trame 60 préalablement alloué, ou en d'autres termes réservé. Le tampon 60 est un tampon d'opérations critiques et est utilisé pour mémoriser
17 2782820
des données d'opérations critiques dans le but exprès de réduire des pauses d'impression par le moteur d'impression, qui pourraient apparaître dans le cas contraire en raison de la fragmentation d'une zone 40 5 de mémoire générale et du conflit général de mémoire qui s'y produit pendant un traitement d'ordres d'impression. De préférence, le tampon 60 d'opérations critiques est utilisé pour mémoriser les données qui exigent une allocation contiguë de mémoire. Par exemple, des données mémorisées dans un tampon 60 d'opérations critiques peuvent inclure, sélectivement, des données préalablement converties pour balayage, des données comprimées, des données qui sont à la fois converties préalablement pour balayage et comprimées, des représentations binaires de caractères restituées, des objets de balayage mis à l'échelle, des objets de balayage tournés, des données de trajet vectoriel, ou d'autres données utilisées pour remédier à la fragmentation de la mémoire ou toute autre gestion de la mémoire 40. De plus, les données ne sont mémorisées que temporairement dans le tampon 60 par rapport à des données de bandes mémorisées et traitées dans la mémoire générale 40. En effet, ce tampon est temporaire parce que le tampon est libéré pour une utilisation ultérieure après l'achèvement de l'opération critique, c'est-à-dire la conversion préalable pour balayage, la compression etc., mais au moins à la fermeture d'une page qui a été
imprimée.
De façon avantageuse, le tampon 60 constitue une zone réservée contiguë de mémoire pour certaines opérations critiques pendant un traitement de page, sans qu'il soit généralement nécessaire d'attendre que de la mémoire soit libérée dans la mémoire générale 40 et sans qu'il soit nécessaire de vider les tampons
18 2782820
vidéo 45 à 55, c'est-à-dire sans atteindre que ceux-ci soit vidés. Le tampon d'opérations critiques est décrit de façon plus détaillée dans la demande de brevet des Etats Unis N numéro de série 08/958 437 incorporée ici par référence en totalité. Une mémoire morte, ou ROM, 65 contient des microprogrammes qui commandent le fonctionnement du
microprocesseur 15 et de l'imprimante 10 par page.
Bien que les sous-programmes des microprogrammes soient décrits en référence à une mémorisation dans la mémoire morte 65, il faut comprendre que leur fonctionnalité peut de même à volonté être mise en application dans un circuit intégré spécifique 67, ou ASIC selon les initiales des termes anglo-saxons
Application Specific Integrated Circuit. Les sous-
programmes, ou procédures de code, mémorisés dans la mémoire morte 65 peuvent inclure les éléments suivants: un convertisseur de page, un convertisseur pour balayage, un code de compression, un programmateur de page d'impression et un gestionnaire de moteur d'impression. Les microprogrammes du
convertisseur de page convertissent une description de
page reçue de l'hôte en une liste d'ordres d'affichage, dans laquelle chaque ordre d'affichage définit un objet à imprimer sur la page. Les microprogrammes de conversion pour balayage convertissent chaque ordre d'affichage en une représentation binaire appropriée, ou bande convertie pour balayage, et ils répartissent la représentation binaire dans la mémoire 40. Les microprogrammes de compression compriment, selon les besoins, les bandes converties pour balayage ou d'autres données. Chacun des ces sous- programmes peut être classique dans l'art. De façon importante, la mémoire morte 65 inclut en outre un gestionnaire 70 de micro mémoire conforme
19 2782820
à la présente invention. Le gestionnaire 70 de micro mémoire inclut des sous-programmes de tâches de gestion de mémoire qui coordonnent et gouvernent les questions de gestion de mémoire selon la présente5 invention afin d'améliorer la gestion de mémoire et d'économiser celle- ci comme décrit de façon plus détaillée dans ce qui suit. Lorsqu'une page court le laser, c'est-à-dire lorsque toutes les bandes sont en cours de conversion pour balayage pour imagerie, les bandes converties pour balayage sont mémorisées consécutivement dans l'un des tampons préalablement alloués 45 à 55 et sont ultérieurement envoyées au moteur d'impression 30 par le dispositif de commande 25 de moteur d'impression, ce qui permet d'engendre une image, c'est-à-dire un texte, des graphiques, etc. Le programmateur d'impression de page commande la mise en séquence des tampons de bandes et leur transfert vers le dispositif de commande 25 du moteur d'impression. Le gestionnaire de moteur d'impression commande le fonctionnement du dispositif de commande 25 de moteur d'impression et, par conséquent, du moteur d'impression 30, pour l'imagerie des bandes afin de former une page imprimée. La présente invention traite plusieurs problèmes qui existent typiquement dans le cas de systèmes classiques d'impression qui emploient des pipe-lines de pages. En premier lieu, dans des systèmes classiques, la tâche de composition de pages est empêchée de continuer à composer la page actuelle lorsqu'une ressource partagée critique est indisponible, c'est-à-dire qu'un manque d'allocation
de mémoire empêche la tâche de composition.
Essentiellement, ceci arrête le pipe-line de pages et provoque une "pause" de l'imprimante. En deuxième lieu, tandis que la tâche de composition attend une
2782820
allocation de ressource partagée qui ne peut pas être satisfaite pour la page actuelle, très peu de travail utile est exécuté en ce qui concerne la réduction de pause, en dehors d'une attente du vidage d'une ou5 plusieurs autres pages hors de la mémoire. Il s'agit clairement d'une perte de largeur de bande de traitement. En troisième lieu, dans certains cas, si la tâche de composition intervient sur des données situées plus loin en avant dans la tâche d'imagerie vidéo que ce qui est nécessaire, cette intervention peut provoquer plus de mal que de bien. Dans de tels cas, une fragmentation de mémoire peut être accrue et provoquer donc une pause de pipe-line de pages. La Fig. 2 est un schéma logique qui représente des états de traitement d'image applicables à la présente invention et décrits en référence au système d'imagerie de la FIG. 1. Pendant un traitement d'images, un train de données est reçu dans la mémoire 40 représentée à la Fig. 1 et est divisé pour composer une page actuelle 110. La "page actuelle" est utilisée pour caractériser l'état d'une page qui est en cours de composition. En effet, la page a été "ouverte" ou débutée, mais aucun ordre de "fermeture" de la page, par exemple un ordre "showpage" de PostScript, littéralement afficher page, n'a été trouvé par le diviseur de personnalité, c'est-à-dire le diviseur de
langage de commande de l'imprimante.
Une page 115 "avant vol" représente une page en cours de "fermeture" parce que, par exemple, un ordre "showpage" est en cours d'exécution par la tâche de composition. En d'autres termes, une page qui se trouve dans l'état 115 préalable au vol est une page qui est en cours de fermeture par la personnalité et qui sera très bientôt libérée pour être dans l'état "en vol" dans le pipe-line 120 de pages. Il faut noter
21 2782820
que les pages 110 et 115 ne sont en fait qu'une seule et même page physique, pendant le traitement d'image, mais qu'elles sont représentées séparément pour montrer les états de composition séparés en séquences en fonction du temps. Le terme de "en vol" est utilisé pour caractériser l'état d'une page qui est en attente dans un pipe-line 120 de pages, c'est-à-dire dans la mémoire 40. Une page qui est en vol est "fermée", et libérée de la personnalité, et attend simplement que son imagerie vidéo soit exécutée par le dispositif de commande 25 d'impression d'image et par le moteur d'impression 30. A la Fig. 2, quatre pages 125, 130,
, 140 sont composées et attendent, dans le pipe-
line 120, leur imagerie vidéo. Mais ces pages constituent simplement des exemples, et il faut comprendre que le pipe-line de pages peut être configuré pour contenir un nombre quelconque de pages composées en fonction de configurations spécifiques du système 10, y compris par exemple la longueur du trajet de papier, l'utilisation d'options de plateau de papier, et de la quantité de mémoire 40 qui est établie pour être utilisée. Dans tous les cas, chaque page composée 125, 130, 135, 140 attend son tour dans la file d'attente, type premier entré premier sorti, du pipe-line 120 pour que son imagerie soit exécutée. La page 145 représente une page qui est dans un état après vol, c'est-à-dire qui est en cours de transition vers un état d'imagerie vidéo. Les tampons , 50 et 55 représentés à la FIG. 1, représentent la manière dont l'imagerie vidéo est exécutée en séquence pour les bandes de la page 145 par le dispositif de commande 25 du moteur d'impression et par le moteur d'impression 30. Il est spécialement critique que les données, ou bandes, qui constituent la page 145
22 2782820
restent directement disponibles dans la mémoire 40 pour une imagerie vidéo complète. Lorsque l'imagerie vidéo de la page 145 est achevée, de 45 à 55, par le moteur d'impression 30, les ressources de la mémoire 40 qui lui étaient précédemment allouées sont libérées
en 155.
D'une façon avantageuse, la présente invention exécute des tâches de gestion de mémoire sur (i) des données qui constituent la page actuellement en cours de composition 110, 115 et/ou sur (ii) des données qui constituent des pages composées 125, 130, 135, 140 qui attendent dans le pipe-line 120 l'exécution de leur imagerie vidéo, ou des données qui constituent une page composée 145 qui est en cours d'imagerie vidéo 145, mais qui n'est pas encore passée à l'imagerie vidéo et des tampons 45 à 55 de DMA. De façon importante, ces tâches de gestion de mémoire sont exécutées sans attendre que soit finie l'imagerie d'une page déjà composée 125, 130, 135, 140, 145. En d'autres termes, la largeur de bande de traitement de composition est utilisée de façon productive au lieu d'être perdue. De plus, des tâches de gestion de mémoire exécutées sur des pages 125, 130, 135, 140, contenues dans le pipe-line 120 sont surveillées afin d'engendrer une remontée d'information 190 pour permettre des tâches de gestion de mémoire par anticipation ou, en d'autres termes, de gestion anticipée de mémoire, sur une page actuellement en cours de composition 110, 115. Par conséquent, le débit des pages d'un travail d'impression à pages
multiples est amélioré.
La FIG. 3 est un schéma logique qui représente de façon générale le procédé de traitement d'image de la présente invention dans un système d'imagerie 10 qui inclut un pipe-line 120 de pages. En premier lieu, des données 170, 175 d'une page 110, 115 actuellement en
23 2782820
cours de composition et des données d'au moins une page composée 125, 130, 135, 140, 145 en attente d'imagerie sont amenées dans la mémoire 40 d'un système d'imagerie 10. Les pages composées 125, 130, 135, 140, 145 sont les pages qui forment le pipe-line de pages. Lorsqu'un certain état de la mémoire 40 est détecté en 180, par exemple un manque d'allocation de mémoire ou le fait qu'un seuil de faible mémoire libre est atteint, une ou plusieurs tâches spécifiques de gestion de mémoire sont exécutées 185 sur des données de la mémoire 40 sans attendre la fin de l'imagerie d'une page actuellement en cours d'imagerie vidéo 145 et sans attendre le vidage du pipe-line 120
de pages.
Les données sur lesquelles les tâches de gestion de mémoire sont exécutées incluent des données de la page en cours de composition 110, 115 et/ou des pages , 130, 135, 140, 145 contenues dans le pipe-line 120. Les tâches de gestion de mémoire peuvent inclure les tâches consistant à comprimer les données, à déplacer les données, à comprimer et déplacer les données, et/ou comprimer et déplacer les données en utilisant une technique qui évite une fragmentation de mémoire. Lorsqu'une tâche de gestion de mémoire est exécutée sur les données des pages 125, 130, 135, 140, contenues dans le pipe-line 120, une remontée d'information est engendrée 190 de façon que d'autres tâches de gestion de mémoire par anticipation puissent être exécutées sur la page actuelle 110, 115 en cours de composition. La remontée d'information indique qu'un seuil de faible mémoire libre est atteint. Par exemple, s'il est détecté que des données contenues dans le pipe-line ont été comprimées, il s'agit d'un bon indicateur que des données actuellement en cours de composition devraient être comprimées pour éviter
24 2782820
un manque d'allocation de mémoire et pour maintenir le
débit de pages.
La FIG. 4 est un schéma logique qui représente une tâche de gestion de mémoire de compression qui est exécutée tandis que la tâche de composition de la page actuelle 110 est empêchée, soit parce qu'il existe un manque d'allocation de mémoire et qu'elle attend une libération de la mémoire 40, soit en raison de la réception d'une remontée d'information, conformément aux FIG. 2 et 3, qui indique qu'un seuil de faible mémoire libre est atteint. De préférence, les tâches de gestion de mémoire par compression sont exécutées sur des parcelles de balayage, c'est-à-dire des parties d'images pour balayage qui sont associées à des bandes, soit sur la base actuelle 110, soit sur la page 115 avant vol, soit sur des pages en vol, 125, , 135, 140, 145. Pour la page en cours de composition, il existe une préférence pour une compression de parcelles de balayage parce que des objets peuvent continuer à être ajoutés aux bandes, au fur et à mesure de la composition de la page. Par conséquent, si les parcelles de balayage sont seules comprimées, elles sont facilement ajoutées à la bande, c'està-dire par des pointeurs d'adressage indirect, au fur et à mesure que la composition de la page continue. En revanche, si c'est une bande entière qui est comprimée, et non simplement ses parcelles de balayage, il peut être nécessaire de décomprimer la bande entière et de la comprimer de nouveau lorsque des objets additionnels sont ajoutés en cours de composition. En variante, les tâches de gestion de mémoire sont exécutées sur des polices, des configurations, la bande vidéo toute entière, une bande monstre, c'est-à-dire une grande bande complète de balayage qui n'est pas disséquée ni dispersée en mémoire, une bande vectorielle, c'est-à-dire une bande
2782820
dans laquelle des ordres de listes d'affichage constituent une majorité de la mémoire utilisée pour la bande, ou tout autre objet. Cependant, pour
simplifier la description, la FIG. 4 représente le cas
d'une gestion de mémoire de parcelles de balayage. Donc, si une récupération de mémoire est lancée en 205, et si un tampon de compression 60 est disponible en 210 sans vidage du pipe-line 120, toutes les parcelles de balayage qui sont disponibles pour compression sont comprimées en 215. Une parcelle est disponible pour compression si les complexités associées à cette bande indiquent que les parcelles peuvent être comprimées, et décomprimées, sans provoquer un "coup de volée" lorsque l'imagerie vidéo de la page est ensuite exécutée. On y parvient en
vérifiant les complexités qui sont liées à la bande.
De façon importante, cette tâche de compression est exécutée sans attendre, ni un vidage de la page actuellement en cours d'imagerie 145, ni un vidage de toute autre page contenue dans le pipe-line 120. Si une économie par compression est possible pour la parcelle 120, la parcelle comprimée est sauvegardée en 225. En revanche, s'il n'existe aucune économie de compression en 220, c'est la parcelle d'origine non comprimée qui est sauvegardée en 240. Selon des variantes non représentées, d'autres techniques de compression peuvent être appliquées jusqu'à ce qu'une économie de compression soit trouvée pour la parcelle. S'il existe d'autres parcelles à comprimer en 245, soit sur la bande actuelle, soit sur la page entière selon la mise en application, le processus de gestion de mémoire par compression est répété en 210, 215, 220, 225, 240, pour comprimer ces parcelles selon
les besoins.
26 2782820
Dès lors que les parcelles sont traitées et qu'une quantité suffisante de mémoire est récupérée en 250, le cycle de récupération est achevé en 255. De préférence, dans le contexte d'une page 110 dont la composition est empêchée, le seuil qui détermine en 250 si une quantité suffisante de mémoire est récupéré est supérieur à la quantité réellement nécessaire, par rapport au manque initial d'allocation de mémoire qui a lancé la tâche de gestion de mémoire par compression. Ceci constitue un "tampon" de mémoire disponible de façon qu'une poursuite de la composition de la page actuelle puisse continuer sans rencontrer immédiatement un autre empêchement lié à une
allocation de mémoire.
Dans le cas o des tampons suffisants de compression ne sont pas disponibles en 210 sans vider le pipe-line, ou si la quantité de mémoire récupérée n'est pas suffisante en 250, dans le contexte d'une page dont la composition est empêchée, de la mémoire est récupérée en 260 en utilisant des procédés classiques qui peuvent vider le pipe-line 120 ou la page 145 actuellement en cours d'imagerie vidéo. En se référant maintenant à la FIG. 5, ce schéma logique décrit une tâche de gestion de mémoire par compression et déplacement des données qui est, ou peut être, appelée dans le cas o la tâche de composition est empêchée ou dans le cas o est reçue une remontée d'information 190, selon les FIG. 2 et 3, qui est indicative du fait qu'un seuil de mémoire libre faible est atteint. Dans cet exemple, la compression et le déplacement de données sont exécutés
de façon que la fragmentation de mémoire soit réduite.
En d'autres termes, le procédé de la FIG. 5 est une méthode de gestion de mémoire par anticipation qui évite la fragmentation. Ici aussi, pour simplifier la
27 2782820
description, la FIG. 5 représente le cas d'une gestion
de mémoire de parcelles de balayage.
Lors d'une tentative de récupération de mémoire en 305, si des tampons de compression 60 sont disponibles en 310 sans exiger un vidage du pipe- line , les parcelles de balayage contenues dans la mémoire 40 sont préalablement triées en 315 en fonction de l'emplacement d'adresse. En d'autres termes, une liste qui identifie toutes les parcelles
de balayage dans un ordre trié par adresses est créée.
Un pointeur est ensuite placé en 320 à la première adresse de déplacement. La FIG. 6A est un schéma fonctionnel qui représente une telle liste créée et qui identifie, par exemple, trois parcelles 405, 410, 415 de balayage de la mémoire 40 triées par leurs adresses. Dans ce premier exemple de passage, la première adresse de déplacement est l'adresse de début de la première parcelle 405 de balayage et est
identifiée par le pointeur 420.
En continuant, la parcelle "actuelle" de balayage est ensuite comprimée en 325 en utilisant le tampon de compression 60. Dans ce premier exemple de passage, la parcelle actuelle de balayage est la première parcelle 405 de balayage. Après compression, la parcelle est ensuite remise en 330 dans la mémoire 40 à l'adresse de déplacement identifiée par le pointeur 420. La FIG. 6B représente cette configuration dans laquelle la
parcelle comprimée 405' est mémorisée au pointeur 420.
La FIG. 6B représente la manière dont de l'espace libre 425 est maintenant créé près de la parcelle 405'. L'espace libre 425 est l'espace créé par la différence entre la dimension de la première parcelle d'origine 405 et la dimension de la nouvelle parcelle
comprimée 405'.
Si toutes les parcelles ne sont pas achevées en 335, le cycle de compression et de déplacement est
28 2782820
répété. En effet, le pointeur est placé en 320 à la nouvelle adresse après déplacement pour identifier o
la nouvelle parcelle comprimée devrait être mémorisée.
La FIG. 6C représente le pointeur 420 qui est maintenant placé à la nouvelle adresse après déplacement, c'est-à-dire la fin de la première parcelle comprimée 405'. Puis, la nouvelle parcelle est de nouveau comprimée en 325 et mémorisée à la nouvelle adresse après déplacement 330. La FIG. 6D représente cette étape et la manière dont la deuxième parcelle 410 a été comprimée pour former la parcelle 410' et a été mémorisée à la nouvelle adresse après déplacement identifiée par le pointeur 420. Le nouvel
espace libre 430 est lui aussi représenté.
De nouveau, puisque les parcelles ne sont pas toutes achevées en 335, le cycle de compression et de déplacement est répété en 320, 325, 330. La FIG. 6E représente cette étape répétée et indique la manière dont le pointeur 420 a été déplacé à la fin de la parcelle comprimée 410' et la manière dont la troisième parcelle 415 a été comprimée pour former la parcelle 415' et a été mémorisée à la nouvelle adresse après déplacement identifiée par le pointeur 420. Le nouvel espace libre 435 est également représenté, et il indique clairement la manière dont une fragmentation de mémoire a été évitée et réduite pendant la compression et le déplacement des parcelles d'origine 405, 410 et 415. Il subsiste en effet maintenant dans la mémoire 40 un espace libre plus grand 435 plutôt que de multiples espaces libres fragmentés plus petits. Par conséquent, les chances que de nouvelles allocations de mémoire soient satisfaites pendant la composition d'une page actuelle 110, comme représenté à la FIG. 2, sont
améliorées.
29 2782820
Dès lors que les parcelles ont été traitées en 335 et qu'une mémoire suffisante est récupérée en 340, le cycle de récupération est achevé en 345. Si des tampons de compression suffisants ne sont pas disponibles en 310 sans vidage de pipe-line, ou si la quantité de mémoire récupérée n'est pas suffisante en 340, dans le contexte d'une page dont la composition est empêchée, de la mémoire est récupérée en 350 en utilisant des procédés classiques qui peuvent vider le pipe-line 120 ou la page dont l'imagerie vidéo est en
cours 145.
En se référant maintenant à la FIG. 7 et à la FIG. 8, ces schémas logiques représentent un procédé préféré de compression de parcelles de balayage par anticipation selon la présente invention. Dans le présent contexte, le terme "anticipé" signifie "antérieur à la détection d'une condition de mnque de mémoire en cours de composition de page", et ceci peut se produire en réponse à la détection d'un seuil général de mémoire faible ou à la génération d'un signal de remontée d'information provenant d'une tâche de gestion de mémoire qui intervient sur une page contenue dans le pipe-line 120. On comprend que des tâches réactives de compression et de décompression
sont onéreuses et modifient la complexité d'une bande.
Par conséquent, le procédé des FIG. 7 et 8 tente de compenser les coûts de compression et de décompression par les avantages potentiels d'une compression par anticipation lorsqu'il est estimé qu'il existe une change raisonnable d'améliorer la cadence d'ensemble d'impression de la page, c'est-à-dire de réduire les temps de pause. Ici aussi, des parcelles de balayage
sont utilisées pour simplifier la description, bien
que le procédé soit tout aussi applicable à des polices, des configurations, des bandes vidéo entières, des bandes monstres, des bandes vectorielles
2782820
ou d'autres objets. De plus, bien que seule une "compression" par anticipation soit décrite en référence aux FIG. 7 et 8, les principes
d'anticipation sont tout aussi applicables à un 5 déplacement de données.
En premier lieu, quelques définitions aideront à
la description:
Y = nombre de pages dans le pipe-line physique de pages de la FIG. 2, augmenté de un. Le but de cette "augmentation de un" est de prendre en compte la page en cours de composition 110. Par conséquent, la métrique destinée à l'utilisation de la compression par anticipation est normalisée par le nombre de pages physiques contenues dans le pipe-line de pages, augmenté de la page actuellement en cours de composition. En revenant au pipe-line 120 de pages de la FIG. 2, Y serait égal à la valeur six: cinq pages , 130, 135, 140, 145 dans le pipe-line plus la page
en cours de composition.
P = nombre réel actuel de pages dans le pipe-line de pages MS = mémoire totale au début du travail après mise sous tension A = MS / Y = mémoire moyenne par page physique du pipe-line M = quantité de mémoire libre au début de la page actuelle MUQ = Quotient d'utilisation de mémoire, qui est un seuil quantitatif de mémoire qui est ajusté à partir de données empiriques. MUQ est déterminé empiriquement par rapport à une partie ou à la totalité des autres valeurs, c'est-à-dire Y, P. MS, A et M. Quelques concepts généralisés sont également utiles ici. En premier lieu, lorsque la mémoire libre M à l'ouverture de page dépasse le quotient
31 2782820
d'utilisation de mémoire MUQ, une compression anticipée de parcelles est évitée. Ceci tend à éviter la compression de la première page, ce qui minimise le temps de sortie de la première page. En deuxième lieu,5 lorsque la mémoire libre M est inférieure à MUQ ou inférieure à A, une compression anticipée est exécutée, c'est-à-dire qu'un drapeau ou un état est placé pour accomplir une compression anticipée. C'est là une indication qu'il peut ne pas exister suffisamment de mémoire pour composer la page actuelle et un nombre suffisant de pages futures pour remplir
le pipe-line de pages.
Par conséquent, en se référant maintenant à la FIG. 7, au début d'un travail d'impression 505, certaines variables sont fixées en 510, y compris Y, MS, A, comme décrit précédemment, et le drapeau de précocité par anticipation ADE est placé à FAUX, c'est-à-dire qu'il est retiré. Lorsque la page X qui est la page actuelle est ouverte à des fins de20 composition 515, d'autres variables sont fixées en 520, y compris P, M(X) qui mémorise la mémoire libre qui est disponible pour la page X, et le drapeau de précocité par anticipation ADE est de nouveau placé à
FAUX, c'est-à-dire efface.
Puis, en 525, si M (X) est inférieure à MUQ, le quotient d'utilisation demémoire, ou si M (X) est inférieure à A, c'est-à-dire la mémoire moyenne par page physique de pipe-line, il est estimé qu'une compression de précocité par anticipation devrait se
produire, dans ce cas pour des parcelles de balayage.
Par conséquent, la variable d'état de précocité par anticipation ADE est placée à VRAI en 530. En revanche, si M (X) n'est pas inférieure à MUQ ou à A en 525, le drapeau ADE n'est pas placé à VRAI. Dans les deux cas, la composition de la page actuelle X continue ensuite en 535 jusqu'à ce qu'elle soit
32 2782820
achevée et fermée en 540. Pendant la composition 535 de la page X, certaines tâches sont détaillées à la FIG. 8 comme indiqué par les flèches directionnelles en traits interrompus de la Fig. 7 et par le "cercle A" et le "cercle B" et elles seront décrites plus loin. Si ADE = VRAI, ou si le drapeau ADEPIPE = VRAI en 545, ce drapeau étant le drapeau d'exécution précoce par anticipation en raison du pipe-line,
toutes les parcelles de balayage restantes, c'est-à-
dire qui ne sont pas déjà comprimées, sont comprimées en 550, afin d'éviter des manques futurs d'allocation de mémoire. Le drapeau ADEPIPE est un drapeau de précocité par anticipation qui est placé par une remontée d'information engendrée en 190, selon les FIG. 2 et 3, en raison de tâches de gestion de mémoire exécutées sur des pages contenues dans le pipe-line 120. Le drapeau ADEPIPE et la remontée d'information engendrée seront décrits plus complètement dans ce qui
suit.
La FIG. 8 est un schéma logique qui représente une autre zone de traitement dans laquelle se produit une compression anticipée de données, c'est-à-dire de parcelles de balayage. Spécifiquement, la FIG. 8 représente de façon plus détaillée la case 535 de la FIG. 7, et elle est présentée pour montrer une certaine partie du traitement qui peut se produire pendant la composition de la page X. Au cours de la composition de la page actuelle X, des parcelles de balayage sont préparées en 605. Ceci inclut d'identifier, de rassembler et de préparer les parcelles de la mémoire 40 à associer à des bandes appropriées de la page pour une restitution ultérieure. Dès lors qu'une ou plusieurs des parcelles ont été préparées en 610, c'est-à-dire lorsqu'elles sont prêtes pour être restituées par le dispositif, le
33 2782820
drapeau ADE et le drapeau ADE_PIPE sont contrôlés. Si l'un ou l'autre est mis, c'est-à-dire VRAI, la parcelle ou les parcelles sont comprimées par effet de précocité ou, en abrégé, par précocité en 620. Si5 aucun des drapeaux n'est placé, la composition de page continue en 535 à la FIG. 7 En reprenant l'état de l'art, il faut noter que, selon le brevet des Etats Unis N 5 479 587 de Campbell et al., la compression de parcelles de balayage sur la page en cours de composition n'y est exécutée que lorsqu'un manque de mémoire a été rencontré et seulement lorsque le pipe-line de pages a été complètement vidé, mais n'est jamais exécutée en anticipation d'un manque potentiel de mémoire ni d'une condition de mémoire basse, sans attendre que
l'imagerie d'une page soit finie ni que le pipe-
line soit vidé, comme décrit par la présente invention. En se référant maintenant à la FIG. 9, un schéma fonctionnel représente un mécanisme préféré destiné à éviter des collisions entre une compression et/ou un déplacement en vol, et une imagerie vidéo. Il faut commander ces tâches de gestion de mémoire de façon à maximiser leur efficacité sans affecter de façon défavorable des données qui doivent être lues par la tâche d'imagerie vidéo. La tâche d'imagerie vidéo doit pouvoir accéder immédiatement à des bandes lorsqu'elle est prête pour ces dernières, car un "coup de volée"
pourrait apparaître dans le cas contraire.
Un mécanisme préféré pour éviter des collisions consiste en "tampons séparés", comme représenté à la FIG. 9. La liste d'affichage, ou bande, 705, fait
* partie d'une page composée et elle est en vol, c'est-
à-dire dans le pipe-line 120, en attente d'imagerie vidéo. La bande 105 peut contenir plusieurs objets à restituer. Au dessin, la bande 705 référence au moins
34 2782820
un tampon d'information 710 qui contient une information concernant un objet, ou parcelle de balayage 700. Le tampon 710 représente la parcelle 715 en utilisant le pointeur 720 d'adressage indirect. En utilisant les principes de gestion de mémoire, la parcelle 715 doit être déplacée et/ou comprimée dans un nouveau tampon de destination 725, mais ceci doit être exécuté sans interférer avec le gestionnaire de tâche de vidéo qui sera peut être bientôt, ou est peut être déjà, en train de restituer la bande 705 et la parcelle 715, ou l'information associée au tampon d'information 710. Dans ce contexte, le tampon de mémoire de destination 725 dans lequel sont placées les données copiées, déplacées et/ou comprimées 715, est totalement disjoint du tampon de mémoire source
715 qui contient les données d'origine.
Pour réaliser le déplacement et/ou la compression sans collision avec la tâche vidéo, la parcelle 715 est copiée en premier lieu dans le tampon de destination 725. Puis, de façon importante, lorsque la copie/le déplacement des données a été exécuté, le pointeur 720 d'adressage indirect, qui pointe les données 715 de source est mis à jour pour pointer 720' aux nouvelles données de destination 725 en tant qu'opération atomique, c'est-à-dire une instruction de processeur qui ne peut être interrompue, ou en tant
qu'ensemble d'instructions pseudo atomiques, c'est-à-
dire verrouillées. Par conséquent, si la tâche d'imagerie vidéo obtient commande avant que la commutation de pointeur ne se produise, la tâche vidéo utilise l'ancien tampon de données 715 qui reste valide. Dans le cas contraire, lorsque la tâche vidéo obtient commande après la commutation du pointeur, elle utilise le nouveau tampon de données 725. Ce mécanisme exige que la tâche d'imagerie vidéo fonctionne, ou restitue, jusqu'à achèvement, et selon
2782820
une priorité élevée sur le bloc de mémoire 715 ou 725, dès lors qu'elle est en commande de ce bloc. En se référant encore à la FIG. 9, si un déplacement et une compression doivent se produire pour une parcelle, l'état de compression est enregistré et est lié à l'objet lui-même. Par exemple, si la parcelle source 715 n'est pas comprimée, cet état est décrit par un bit "zéro" 730. Si la parcelle de destination 725 est comprimée, cet état est décrit par un bit "un" 735. Par conséquent, lors de l'accès final à la parcelle par la tâche d'imagerie vidéo, l'état comprimé ou non comprimé est connu à l'intérieur de l'opération atomique singulière de lecture des données de la parcelle parce qu'il est lié aux données elles-mêmes de la parcelle et non au
tampon d'information 710.
Les FIG. 10A et 0lB sont des schémas logiques qui représentent une variante de mode de réalisation destinée à éviter des collisions entre la tâche d'imagerie vidéo et les opérations de gestion de mémoire sur des bandes en vol. La FIG. 10A représente les étapes du fonctionnement de la tâche de gestion de mémoire, et la FIG. 0lB représente les étapes corrélatives du fonctionnement de la tâche d'imagerie vidéo. En premier lieu, en se référant à la FIG. 10A, lorsqu'un tampon séparé ou, en d'autres termes, disjoint de mémoire de destination est alloué en 752, l'objet source d'origine, c'est-à-dire la parcelle de balayage, est copiée ou comprimée dans le tampon de destination 754. Le déroulement entre ensuite en 756 dans une section critique du procédé ou code exécutable. Une technologie classique de sémaphore est adaptée à valider la section critique de façon qu'elle soit une opération atomique. Si le verrou concernant l'objet n'est pas enlevé en 758, c'est-à-dire si l'objet est verrouillé, le déroulement sort de la
36 2782820
section critique en 760 et il attend simplement ou opère en boucle, jusqu'à ce que le verrou soit enlevé, 756, 758. Si le verrou de l'objet est effacé en 758, c'est-à-dire si l'objet n'est pas verrouillé, l'ancre ou pointeur d'adressage indirect qui identifie l'objet source est mis à jour en 762 pour pointer la copie de destination. A cet instant, le déroulement sort de la section critique en 764 et le gestionnaire de tâche accède, lorsqu'il obtient commande de l'objet, à l'objet déplacé par l'intermédiaire du pointeur d'ancre de restauration. Le tampon de source cesse maintenant d'être alloué en 766 en vue d'une autre utilisation. En variante à l'utilisation de tampon séparé en référence à la FIG. 10A, des tampons qui se recouvrent peuvent être utilisés si la quantité de mémoire est réellement faible. Ceci exige que la copie de la source à la destination se produise à l'intérieur de la section critique et à l'intérieur du temps/coût
d'imagerie alloué pour la bande.
En se référant maintenant au procédé destiné à éviter les collisions pour le gestionnaire de tâche vidéo, comme représenté à la FIG. 0lB, la première étape consiste, pour chaque objet d'imagerie rencontré 770, à déterminer si cet objet peut être déplacé ou comprimé 772. Ceci est déterminé par une information liée à cet objet. Si l'objet ne peut être ni déplacé, ni comprimé, son imagerie est simplement exécutée en 774 sans se préoccuper d'aucun conflit. En revanche, si l'objet peut être déplacé ou être comprimé, 772, l'objet est verrouillé en 776. Après verrouillage, son imagerie est exécutée en 778 et il est ensuite
déverrouillé en 780.
La FIG. 11 est un schéma logique qui représente un procédé préféré de compression par précocité, par anticipation, de parcelles de balayage par
37 2782820
régulation à remontée d'information: voir aussi FIG. 2 et 3, 190. Ici aussi, bien que seule une compression soit décrite en référence à la FIG. 11, les principes sont applicables de façon similaire à la régulation d'autres tâches de gestion de mémoire par précocité, c'est-à-dire un déplacement. De plus, travailler avec des parcelles de balayage ne constitue ici qu'un exemple puisque le procédé est applicable aussi à d'autres données de pages en cours de composition ou dans le pipe-line, c'est-à-dire à des polices, des configurations, des bandes, des bandes monstres ou des bandes vectorielles. Par conséquent, la régulation de remontée d'information se réfère, au total, à commander en quelle quantité et à quelle fréquence des données de bande sont déplacées et/ou comprimées par anticipation, en réponse à des tâches similaires de gestion de mémoire, qui se produisent dans des bandes en vol. Le mécanisme principal de "remontée d'information" pour des opérations classiques de traitement d'images consiste simplement à attendre que la mémoire d'imprimante soit libérée par impression, c'est-à-dire par vidage, de pages dont l'imagerie est exécutée et/ou qui sont dans le pipe-line. Mais, puisque la tâche de composition est arrêtée pendant ce vidage, une pause indésirable se produit dans la sortie d'impression. En revanche, le mécanisme de "remontée d'information" de la présente invention permet à l'avance une gestion de mémoire de bandes par anticipation sans attendre que l'imagerie de la page soit exécutée ou que l'imagerie de pages contenues
dans le pipe-line soit finie.
En général, le procédé de régulation de remontée d'information de la présente invention inclut une détection de l'instant o les opérations de gestion de mémoire se produisent sur des données en vol, ou après
38 2782820
vol, dans le pipe-line 120 de pages représenté à la FIG. 2, et une exécution, lorsque ceci est détecté, d'opérations similaires anticipées sur des données de la page en cours de composition. Par exemple, si une compression de parcelles de balayage s'est produite sur une page en vol, des parcelles de balayage seront comprimées par précocité sur la page actuellement en cours de composition. De plus, les opérations de gestion de mémoire qui apparaissent dans le pipe-line sont surveillées sur plusieurs pages afin d'établir un seuil de mémoire libre pour permettre une certaine hystérésis au système, c'est-à-dire pour "réguler" lorsqu'une compression par précocité doit être exécutée sur la page actuelle, et pour empêcher des oscillations instables entre des compressions exécutées, par précocité ou non, de parcelles de balayage. Par exemple, si des parcelles de balayage sont comprimées sur des données en vol, des parcelles seront comprimées par précocité dans au moins les deux
pages qui suivent.
Par conséquent, en se référant de nouveau à la FIG. 11, lors du début d'un travail d'impression, une variable E "de régulation" par précocité est mise à zéro, ou effacée, en 805, et des variables Ml et M2 sont mises à zéro. Ultérieurement, lorsqu'une page suivante est ouverte pour composition, cette page est assignée comme étant la page "actuelle" 810. Puis, certaines variables de commande sont mises en 812. En effet, M(C) mémorise la mémoire libre associée à la page actuelle, M(P) mémorise la mémoire libre qui était associée à la page immédiatement précédente, c'est-à-dire la page qui a été composée précédemment et qui se trouve maintenant dans le pipe-line, et le drapeau ADE_PIPE de pipe-line de précocité par
anticipation est placé à FAUX, c'est-à-dire enlevé.
39 2782820
Puis, s'il est détecté en 815 qu'une ou plusieurs parcelles en vol ont été comprimées pendant la composition de la page précédente, la variable de régulation de précocité E est mise à un, M2 est mise à Ml et Ml est mise à M(P). De plus, le drapeau de précocité par anticipation ADE_PIPE est placé à VRAI en 825 pour indiquer qu'une compression de parcelles de balayage par précocité devrait se produire sur la page actuelle en cours de composition. La composition de la page actuelle continue ensuite en 830 jusqu'à
son achèvement: voir aussi FIG. 8.
Lorsque la page actuelle est totalement composée et fermée en 832, si ADE PIPE est VRAI en 835, toutes parcelles résiduelles de balayage de la page actuelle sont comprimées par précocité en 840, c'est-à-dire que des parcelles qui n'ont pas été déjà comprimées sont comprimées maintenant. Cette compression de parcelles "par précocité" se produit sur la page actuelle en raison de la remontée d'information, c'est-à- dire ADE_PIPE, reçue en 190 du pipe-line 120, voir FIG. 2 et 3, ce qui indique qu'une compression s'est produite sur des pages en vol, pendant la composition de la page précédente. Cette compression de données par précocité sur la page actuelle est régulée, ou forcée à se produire, afin d'éviter qu'un manque potentiel d'allocation de mémoire se produise, ou qu'un seuil de
mémoire libre faible soit atteint.
S'il est détecté en 815 que des parcelles en vol n'ont pas été comprimées pendant la composition de la page précédente, la variable E de régulation par précocité est vérifiée en 845. Si E n'est pas égal à la valeur "deux", en 845, mais si E est égal à la valeur "un" en 860, et s'il existe des parcelles de balayage sur la page actuelle 865, Q est mise à la valeur la plus élevée parmi M(P), Mi et M2. Q représente un seuil pour continuer encore une
2782820
compression par précocité en 850, même si aucune parcelle en vol n'a été comprimée pendant la composition des deux pages précédentes 815, 845. En variante, Q peut être mise à la valeur la plus basse parmi M(P), Ml et M2 pour permettre un moindre nombre de compressions par précocité lorsque les compressions précédentes en vol ont cessé. Lorsque la variable E de régulation de précocité est égale à la valeur "deux" en 845, ceci indique qu'aucune compression en vol ne s'est produite pendant les deux dernières pages composées. Si tel est le cas, et si M(C) est supérieure à Q, en 850, le drapeau ADEPIPE est maintenu à FAUX, c'est-à-dire qu'il n'est pas placé à VRAI, et la composition de la page actuelle continue normalement en 830. En d'autres termes, une compression de la page actuelle par précocité est régulée pour la réduire parce qu'elle n'est plus nécessaire. En se référant maintenant à la FIG. 12, un schéma fonctionnel représente un mode de réalisation préféré d'une bande 905, contenue dans le pipe-line 120, qui inclut des éléments 910 de données de complexité liés à la bande pour permettre une gestion de mémoire en vol ou après vol selon les principes de la présente invention. Les éléments 910 de données de complexité décrivent un coût de complexité pour l'imagerie vidéo de la bande 905. L'accumulation de complexité, mémorisée dans les éléments 910, est exécutée tandis que la liste d'affichage, ou bande, 905, est en cours de construction, c'est-à- dire pendant la composition de page. Les éléments 910 de données de complexité sont calculés et sont liés à la bande 905 de façon à être disponibles tandis que la bande se propage à
travers le pipe-line 120 de pages.
En revenant aux éléments 910 de données de complexité, un premier élément 915 de "coût vidéo"
41 2782820
inclut une valeur indicative d'un coût, en référence au temps, pour l'imagerie vidéo de la bande 905, telle qu'elle existe actuellement, c'est-à-dire dans une course contre le laser. Un élément 920 de "coût additionnel" inclut une valeur indicative d'un coût incrémental, ici aussi en référence au temps, pour la décompression des parcelles 925, 930 de balayage qui sont liées à la bande 905, habituellement par un pointeur non représenté de liaison/nouvelle direction: voir FIG. 9. Le coût incrémental 920 de décompression est généralement une estimation du pire des cas, étant donnés le procédé de compression et la vitesse du décompresseur disponible. Des estimations de coût sont empiriques, basées, de manière classique dans l'art sur des paramètres comme des multiplicateurs de largeur de bande, des multiplicateurs de hauteur, des multiplicateurs de nombres de bits par zone, etc. Un troisième élément 935 de "temps libre", inclut une valeur indicative du temps libre qui existe encore pour l'imagerie de la bande. Le temps libre est simplement une différence entre le coût 915 et un seuil de coût d'imagerie, c'est-à-dire le temps maximal admissible disponible pour l'imagerie vidéo de
la bande avant qu'un "coup de volée" ne se produise.
De façon importante, l'élément 935 de temps libre permet à une bande de déterminer rapidement s'il existe un temps suffisant d'imagerie vidéo pour réaliser la gestion de mémoire associée à l'élément additionnel 920 de coût, simplement en comparant les valeurs des deux éléments. De plus, l'élément 935 de temps libre permet, à des bandes, d'exécuter des référence entre elles et "d'emprunter" un temps d'imagerie vidéo si ceci est approprié. Par exemple, si une première bande possède un temps libre d'une seconde et qu'une deuxième bande adjacente possède un temps libre de zéro seconde, la deuxième bande peut
42 2782820
"emprunter" une seconde de temps libre à la première bande. La deuxième bande peut avoir besoin de cette seconde additionnelle "empruntée" pour lui permettre de comprimer et de décomprimer ses parcelles de balayage afin d'économiser davantage de mémoire, alors que la compression et la décompression ne pourraient pas se produire sans "coup de volée" si elle ne pouvait pas emprunter ce temps, et la mémoire ne pourrait pas alors être économisée. La première bande n'a pas besoin de cette seconde de temps libre, et elle peut donc laisser une autre bande la lui emprunter. La distance jusqu'à laquelle une bande peut emprunter dépend du nombre de tampons d'imagerie vidéo qui sont utilisés. Dans l'exemple de la FIG. 1, puisque trois tampons vidéo 45, 50, 55 sont utilisés, une bande peut emprunter jusqu'à une distance de deux bandes. Evidemment, plus le nombre de tampons vidéo est élevé, plus grande est la distance à laquelle une bande peut emprunter. Lorsqu'une bande emprunte du temps libre, son propre élément 915 de coût est augmenté de façon proportionnelle. En revanche, pour la bande à laquelle le temps libre est emprunté, son élément de temps libre est décrémenté de façon
proportionnelle.
Au total, les éléments 910 de données de complexité permettent d'exécuter des tâches de gestion de mémoire sur une bande 905 ou sur ses objets lorsque la bande est dans le pipe-line, sans avoir à se préoccuper de l'apparition éventuelle d'un "coup de volée" si la gestion de mémoire est exécutée, et sans devoir recalculer un seuil total de coût d'imagerie pour la bande et pour d'autres bandes de la page. Bien qu'un mode de réalisation préféré inclue chacun de ces éléments 910, l'utilisation de sous-ensembles de ces
43 2782820
éléments ou d'éléments d'information différents est
applicable de façon semblable.
La FIG. 13 représente une variante, simplifiée,
de mode de réalisation d'une bande 955 dans un pipe-
line 120, qui inclut des parcelles 960, 965 de balayage et un seul élément 970 de données de complexité lié à la bande pour permettre une gestion de mémoire en vol ou après vol, selon les principes de la présente invention. L'élément unique 970 de données de complexité est de préférence un bit unique qui indique si la bande est "super-sûre" ou non quant à la compression / la décompression de ses parcelles. Au fur et à mesure que la bande est construite pendant une composition de page, l'accumulation de complexité est calculée, et il est ensuite déterminé si la bande est ou non super-sûre. La bande est marquée comme super-sûre en 970, si les calculs de complexité déterminent que les parcelles peuvent être comprimées et décomprimées, et que l'imagerie vidéo peut ensuite être exécutée, sans avoir à se préoccuper aucunement d'un coup de volée tandis que la bande est dans le pipe-line 120. En d'autres termes, la désignation de "super-sûre" est liée à la bande quand aucune conversion préalable de bande pour balayage n'est nécessaire pour éviter un coup de volée, mais qu'une compression de parcelles sauvegarde la mémoire et que la complexité résultante de la bande serait inférieure ou égale au seuil de coût d'imagerie. Finalement, ici aussi, il faut noter que les principes de la FIG. 12 et de la FIG. 13 sont applicables de façon semblable à des polices, des configurations, des bandes, des bandes monstres, des bandes vectorielles et/ou
d'autres objets.
La FIG. 14 est un schéma logique qui représente un procédé préféré d'utilisation d'éléments 910, 970 de données de complexité, selon les FIG. 12 et 13, qui
44 2782820
sont liés à des bandes, pour la gestion en vol ou après vol des bandes. Dès lors qu'une page est ouverte pour traitement en 980, les bandes sont construites en 982 de la manière décrite précédemment. Au fur et à mesure que chaque bande est construite, un coût 915 de
temps d'imagerie vidéo est accumulé pour chaque bande.
A l'achèvement de la construction de bande est de plus calculé un coût 920 de temps additionnel qui est une estimation de la quantité de temps additionnelle qui serait nécessaire pour l'imagerie vidéo de toute la bande si les parcelles de balayage associées à cette bande devaient être comprimées, en utilisant la méthode de compression donnée pour le système, et être
ensuite décomprimées lors de l'imagerie vidéo.
Si le procédé "super-sûr" de gestion en pipe-line est utilisé, le temps vidéo accumulé est comparé, à l'achèvement de la bande en cours de construction, au seuil de coût d'imagerie, c'est-à-dire au temps maximal admissible disponible pour l'imagerie vidéo de la bande. Si la différence est supérieure au coût
calculé en temps, la bande est marquée comme "super-
sûre" en 984: voir aussi 970 à la FIG. 13.
En revanche, s'il faut davantage de flexibilité pour la gestion en pipeline, le coût vidéo accumulé 915 et le coût additionnel 920 sont liés à la bande en 984. De plus, le temps libre 935 est lié à la bande en 984. Puis, la page est fermée en 986 et son état est maintenant considéré comme étant dans le pipe-line, c'est-à-dire en vol, en attendant l'imagerie vidéo: FIG. 2. Cependant, de façon importante, les critères de complexité, c'est-à-dire l'état super-sûr ou les données de coût vidéo, de coût additionnel et de temps libre, restent liés aux bandes. Si aucune gestion de
bande en pipe-line n'est nécessaire, en 988, c'est-à-
dire pour améliorer la gestion de bande comme décrit
2782820
précédemment, l'opération est achevée et l'imagerie
vidéo des bandes et de la page est simplement exécutée à un instant ultérieur approprié.
S'il faut une gestion des bandes contenues dans le pipe-line et si la bande est marquée comme "super- sûre" en 990, elle est comprimée en 992 et elle peut ensuite être décomprimée, et son imagerie vidéo peut être exécutée, sans se préoccuper d'une possibilité de provoquer un coup de volée en raison de son état super-sûr. Si la bande répond aux critères 910 de coût et si le coût vidéo 915 augmenté du coût additionnel 920 n'est pas supérieur au seuil 994 de coût d'imagerie, ou si le coût additionnel 920 est inférieur au temps libre 935, la bande est comprimée en 998, et sa décompression et son imagerie vidéo peuvent être exécutées à l'instant approprié ultérieur. Si la bande répond aux critères 910 de coût et si le coût vidéo 915 augmenté du coût additionnel 920 est supérieur au seuil 994 de coût d'imagerie, ou si le coût vidéo 915 augmenté du coût additionnel 920 est supérieur au temps libre 935, la bande peut emprunter du temps libre à une autre bande 996, 997,
et c'est seulement alors qu'elle est comprimée en 998.
Si aucun temps libre n'est disponible, à aucune des bandes qu'elle peut atteindre, aucune compression ne
se produit.
En résumé, la présente invention fournit des outils pour améliorer une gestion de mémoire pour améliorer un débit de pages dans un dispositif d'imagerie tel qu'une imprimante à laser. Il sera de plus évident pour l'homme de l'art que la présente invention est facile à mettre en application en utilisant l'un quelconque de divers composants et outils existants dans l'art. En outre, alors que la présente invention a été décrite en référence à des modes de réalisation spécifiques, il ressort
46 2782820
clairement que d'autres variantes de modes de réalisation et de procédés d'implantation ou modifications peuvent être employés sans s'écarter de
l'esprit et du cadre vrais de l'invention.
47 2782820

Claims (19)

REVENDICATIONS
1. Procédé de traitement d'image caractérisé en ce qu'il comprend les étapes consistant à: (a) agencer dans une mémoire (40): (i) des données d'une page en cours de composition (110, 115) en vue d'une imagerie, et (ii) des données d'au moins une page composée (125, 130, 135, 140, 145) en attente d'imagerie; (b) détecter des marquages indicatifs d'un état (180) de la mémoire (40); et (c) en réponse à une détection des marquages, exécuter une tâche de gestion (185) de mémoire sur des données contenues dans la mémoire sans attendre que soit finie une imagerie (155) de l'une quelconque des
pages composées (125, 130, 135, 140, 145).
2. Procédé selon la revendication 1 caractérisé en ce que la mémoire est associée à un dispositif d'imagerie (10) qui inclut une imprimante, un
photocopieur ou un télécopieur.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que l'état de la mémoire inclut un manque (180)
d'allocation de mémoire.
4. Procédé selon la revendication 1 ou 2 caractérisé en ce que l'état de la mémoire inclut un seuil (180) d'état
de mémoire libre.
5. Procédé selon l'une quelconque des
revendications 1 à 4, caractérisé en ce que
les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée incluent une parcelle (925, 930, 960, 965) de balayage récurrent, une police, une configuration modèle, une
48 2782820
bande vidéo (905, 955), une bande monstre ou une bande vectorielle.
6. Procédé selon l'une quelconque des
revendications 1 à 4, caractérisé en ce que
les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée incluent les données de la page en cours de
composition (110, 115) pour imagerie.
7. Procédé selon l'une quelconque des
revendications 1 à 4, caractérisé en ce que
les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée incluent les données de la page composée (125, 130,
, 140, 145) unique au moins en attente d'imagerie.
8. Procédé selon l'une quelconque des
revendications 1 à 7, caractérisé en ce que
la tâche de gestion de mémoire inclut une
compression des données (215, 325).
9. Procédé selon l'une quelconque des
revendications 1 à 7, caractérisé en ce que
la tâche de gestion de mémoire inclut un
déplacement des données (330).
10. Procédé selon l'une quelconque des
revendications 1 à 7, caractérisé en ce que
la tâche de gestion de mémoire inclut une
compression et un déplacement des données (325, 330).
11. Procédé selon la revendication 10, caractérisé en ce qu'il inclut en outre les étapes consistant à: comprimer et déplacer les données en utilisant une technique qui évite une fragmentation de mémoire
(Fig. 6A à 6E).
12. Appareil de traitement d'image caractérisé en ce qu'il comprend: a) un moteur d'imagerie (30) connecté fonctionnellement à une mémoire (40), la mémoire
4 9 2782820
incluant: (i) des données d'une page en cours de composition en vue d'une imagerie (110, 115), et (ii) des données d'au moins une page composée en attente d'imagerie (125, 130, 135, 140, 145); (b) un moyen (70) de détection de marquages indicatifs d'un état (180) de la mémoire (40) tandis que la page (110, 115) est en cours de composition pour imagerie; et (c) un moyen (70) d'exécution d'une tâche de gestion (185) de mémoire sur des données contenues dans la mémoire en réponse à une détection des marquages sans attendre que soit finie une imagerie (155) d'une quelconque page composée (125, 130, 135,
, 145).
13. Appareil selon la revendication 12, caractérisé en ce que le moteur d'imagerie (30) est associé à une
imprimante (10), un photocopieur ou un télécopieur.
14. Appareil selon la revendication 12 ou 13, caractérisé en ce que l'état de la mémoire inclut un manque (180)
d'allocation de mémoire.
15. Appareil selon la revendication 12 ou 13, caractérisé en ce que l'état de la mémoire inclut un seuil (180) d'état
de mémoire libre.
16. Appareil selon la revendication 12 ou 13, caractérisé en ce que les données contenues dans la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée incluent les données de la page en cours de
composition (110, 115) pour imagerie.
17. Appareil selon la revendication 12 ou 13, caractérisé en ce que les données de la mémoire sur lesquelles la tâche de gestion de mémoire est exécutée incluent les données de la page composée (125, 130, 135, 140, 145) unique au moins en attente d'imagerie.
18. Appareil selon la revendication 12, caractérisé en ce que la tâche de gestion de mémoire inclut une
compression des données (215, 325).
19. Appareil selon la revendication 12, caractérisé en ce que la tâche de gestion de mémoire inclut un
déplacement des données (330).
FR9905533A 1998-08-28 1999-04-30 Procede et dispositif de traitement d'image Pending FR2782820A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/141,786 US20020063894A1 (en) 1998-08-28 1998-08-28 Conservation of printer memory on the composition page

Publications (1)

Publication Number Publication Date
FR2782820A1 true FR2782820A1 (fr) 2000-03-03

Family

ID=22497246

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9905533A Pending FR2782820A1 (fr) 1998-08-28 1999-04-30 Procede et dispositif de traitement d'image

Country Status (3)

Country Link
US (1) US20020063894A1 (fr)
JP (1) JP2000079731A (fr)
FR (1) FR2782820A1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1785838B1 (fr) * 2005-11-01 2017-07-05 Kyocera Mita Corporation Système et programme de formation d'images
JP4644099B2 (ja) * 2005-11-01 2011-03-02 京セラミタ株式会社 画像形成装置
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
US8782371B2 (en) * 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) * 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US8861014B2 (en) * 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
US11113012B2 (en) 2018-03-28 2021-09-07 Hewlett-Packard Development Company, L.P. Reprocessing of page strips responsive to low memory condition

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
EP0843279A2 (fr) * 1996-11-18 1998-05-20 Canon Kabushiki Kaisha Méthode de gestion de mémoire, dispositif de contrôle d'impression, et appareil d'impression
US5797689A (en) * 1996-01-24 1998-08-25 Hewlett-Packard Company Avoiding memory fragmentation in printers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5797689A (en) * 1996-01-24 1998-08-25 Hewlett-Packard Company Avoiding memory fragmentation in printers
EP0843279A2 (fr) * 1996-11-18 1998-05-20 Canon Kabushiki Kaisha Méthode de gestion de mémoire, dispositif de contrôle d'impression, et appareil d'impression

Also Published As

Publication number Publication date
US20020063894A1 (en) 2002-05-30
JP2000079731A (ja) 2000-03-21

Similar Documents

Publication Publication Date Title
FR2771247A1 (fr) Mecanisme de detection et de traitement d'une page banniere
FR2782820A1 (fr) Procede et dispositif de traitement d'image
EP1909169A1 (fr) Système et procédé de stockage de masse
FR2500659A1 (fr) Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
FR2773899A1 (fr) Procede et appareil de superposition d'imprime a l'aide d'un ordinateur
FR2554256A1 (fr) Appareil et procede de regeneration d'un tampon de trames fonctionnant a grande vitesse
FR2800482A1 (fr) Procede de traitement des instructions dans un processeur et processeur le mettant en oeuvre
JP5555116B2 (ja) 情報処理装置、及び、プロセッサ間通信制御方法
FR3047821A1 (fr) Procede et dispositif de gestion d'un appareil de commande
FR2630233A1 (fr) Appareil peripherique de sortie
WO2012049082A1 (fr) Procédé et dispositif d'ordonnancement de tâches semi-périodiques dans un système multitâche temps réel
JP2004265408A (ja) メモリ管理方法
EP2585931B1 (fr) Dispositif, chaine et procédé de traitement de données, et programme d'ordinateur correspondant
JP2005073004A (ja) フレームバッファ管理方法及びフレームバッファ管理装置
FR2769105A1 (fr) Dispositif et procede de prise en compte de l'execution d'une tache sur un systeme informatique
FR2739953A1 (fr) Procede et appareil de transformation de donnees d'image
US20070279676A1 (en) System and method for pipelined dataflow document processing
FR3031822A1 (fr) Telechargement de donnees sur un equipement distant
EP2599053B1 (fr) Dispositif et procédé de génération d'images procédurales avec cache
FR2965077A1 (fr) Procede de gestion de taches dans un microprocesseur ou un ensemble de microprocesseurs
CN109218556B (zh) 进行绘制处理的图像处理装置、绘制处理方法和存储介质
EP0512881B1 (fr) Procédé et dispositif de sélection d'informations utilisables par une unité locale reliée à un système de transmission numérique
FR2771833A1 (fr) Procede de filtrage pour reduire la densite de pixels
FR2787602A1 (fr) Utilisation du pipe-line d'impression dans l'execution d'une operation de copie dans un dispositif peripherique a fonctions multiples
CN114598697B (zh) 一种传输文件的方法、装置及计算机可读存储介质