Image processing method and apparatus

Abstract: A fast-output image processing method and apparatus which employ an outline font. A page printer (100) embodying the present invention stores form data received from a host computer (300) into a RAM (101) before printing output. Upon mapping of the input code data, whether the necessary pattern is stored in a cache memory (103) or not is examined, and if it is not stored, the pattern is registered. As for form data, similar pattern registration is performed to a cache memory for form character. The pattern registration is repeated until data for one page is mapped. In the case where the respective cache memories are full, the pattern of the lowest access frequency among registered patterns is deleted, thus realizing effective use of cache memories.

Description: The present invention relates to an image processing method and apparatus, and more particularly, to an image processing method and apparatus having a function where data received from a host computer is overlaid on a pre-registered standardized form to generate a new image data. Recently, outline font has been widely employed as a font in order to generate character pattern corresponding to character code data. Main features of the outline font exist on easiness of character processing and fineness of the generated character pattern. However, there is a drawback that the time required to generate a character pattern employing the outline font is longer than that taken in a method of employing a dotted pattern font. In order to reduce the processing time, a once-generated character pattern as a dot-pattern is registered in a cache memory for the next usage. When the same code is inputted, the registered character pattern is read out of the cache memory. In this manner, time for generating the dot character pattern is saved. The above method controls available spaces in the cache memory in accordance with access frequencies of the registered character patterns. More specifically, when the cache memory becomes full, one character pattern of the lowest access frequency is deleted to create an available space for registration of a new character pattern. However, in a case where an inputted data has to be overlaid on a pre-registered form data as e.g. known from JP-A-1 206 052 and the overlaid image is outputted, the above-mentioned conventional approach has dealt with all the data without consideration of the type of data such as an ordinary character data or character data for a form. In many cases, when the cache memory becomes full, a character data for a form might be deleted from the memory first because appearance frequency of the form character data is different from that of an ordinary character data. Thereafter, a deleted form character pattern should be read into the cache memory again upon form output. For example, a page printer employing the outline font re-reads a once-deleted form character data into its cache memory and generates a dot pattern, which takes more time in dot pattern formation at every page, increasing processing time by final image formation. EP-A-0398681 discloses an image processing apparatus and method in accordance with the preamble of claims 1 and 11 wherein outline font data is stored and used to form dot-pattern data corresponding to data codes of data received for forming an image. Once the dot-pattern data has been formed it is stored in a cache memory means so that if it is used in the future it does not have to be reformed. Thus, when data codes are received, it is discriminated as to whether the corresponding dot-pattern data is present in the cache memory means. If it is it can be read out and used to form a bit map image. If the corresponding dot-pattern data is not present in the cache memory, the dot-pattern data is formed for using the formation of the bit map image and is also stored in the cache memory means for future use. In accordance with one aspect, the present invention provides an image processing method comprising: a first input step of inputting data corresponding to an image; a first discrimination step of discriminating whether or not dot-pattern data corresponding to a respective data code inputted in said first input step is stored in a first cache memory; a first mapping step of generating a dot-pattern in response to the data code of the first input data in the first cache memory using a stored and read outline font for the respective data codes, if the discrimination result in the first discrimination step is negative; a first reading step of reading a dot-pattern from the first cache memory, if the discrimination result in said first discrimination step is positive; an image mapping step of bit mapping the generated or read dot-patterns in a bit map memory; and an output step of outputting the bit mapped pattern; characterised by a second input step of inputting data corresponding to a form image over which said image is to be overlaid; a second discrimination step of discriminating whether or not the dot-pattern data corresponding to a respective form code input in said second input step is stored in a second cache memory; a second mapping step of generating a dot-pattern in response to the form code of the second input data in the second cache memory using a stored and read outline font for the respective form code, if the discrimination result in said second discrimination step is negative; and a second reading step of reading a dot-pattern from said second cache memory, if the discrimination result in said second discrimination step is positive; wherein said image mapping step comprises bit mapping the dot-patterns corresponding to the data codes and the form codes generated in said first and second mapping steps read in said first and second reading steps in a bit map memory to form an overlaid image of the image on the form image. In accordance with a second aspect, the present invention provides image processing apparatus comprising receiving means for receiving data corresponding to an image; font memory means for storing outline font data; first cache memory means for storing dot-pattern data corresponding to data codes of the data received by said receiving means; forming means for discriminating whether or not dot-pattern data corresponding to a respective data code of the data received by said receiving means is stored in said first cache memory means, and if the result of the discrimination is positive, the forming means is adapted to read the dot-pattern from said first cache memory means, and if the result of the discrimination is negative, the forming means is adapted to generate a dot-pattern in response to the data code of the received data in said first cache memory means using the outline font data stored in said font memory means for the respective data code; image forming means for forming a bit mapped image by bit mapping the generated or read dot-patterns; and output means for outputting the bit mapped image; characterised in that said receiving means is adapted to receive form data corresponding to a form image over which said image is to be overlaid; by second cache memory means for storing dot-pattern data corresponding to form codes of the form data received by said receiving means; in that said forming means is adapted to discriminate whether or not the dot-pattern data corresponding to a respective form code of the form data received by said receiving means is stored in said second cache memory means, if the result of the discrimination is positive, the forming means is adapted to read the dot-pattern from said second cache memory means, and if the result of the discrimination is negative, the forming means is adapted to generate a dot-pattern in response to the form code of received form data in said second cache memory means using the outline font data stored in said font memory means for the respective form code; and in that said image forming means is adapted to form the bit mapped image by bit mapping the dot-patterns corresponding to the data codes and the form codes generated by said forming means or read from said first and second cache memory means. Embodiments of the present invention will now be described with reference to the accompanying drawings, in which: Fig. 1 is a block diagram showing a configuration of a printing apparatus as a typical embodiment of the present invention; Figs. 2A and 2B are diagrams showing examples of output data; Figs. 3A and 3B are diagrams showing data stored in cache memories according to the embodiment; Figs. 4, 5 and 6 are flowcharts showing overlaying image formation and printing performed by a CPU 101 according to the embodiment; Fig. 7 is a cross-sectional view showing the structure of the printing apparatus in Fig. 1; Fig. 8 is a diagram showing data stored in a cache memory having another structure; and Fig. 9 is a diagram showing a memory address space employed for memory allocation, both static and dynamic memories. A printing apparatus which receives a data from a host computer and overlays an ordinary character data on a form to output the overlaid image data will be described in detail below. <Configuration of Apparatus (Fig. 1)> Fig. 1 shows a configuration of an printing apparatus according to an embodiment. In Fig. 1, reference numeral 100 denotes a printer; 200, a printing result; and 300, a host computer which outputs printing data. The printer 100 includes a CPU 101 having a ROM 101a and a RAM 101b and the following elements. Reference numeral 108 denotes a reception buffer in which data from the host computer 300 is temporarily stored; 102, a font memory in which outline font data is stored; 103, a cache memory for form character data; 106, a cache memory for ordinary character data; 104, a page buffer memory in which received data is stored; 105, a bitmap memory for bitmapping of an image data for one page; and 107, a printer engine for actual printing process based on an image data bitmapped in the bitmap memory 105. <Character Data (Figs. 2A to 3B)> Figs. 2A and 2B illustrate examples of data to be outputted by the printing apparatus according to the embodiment. In Figs. 2A and 2B, reference numeral 201 denotes a form data; and 202, an ordinary character data. Upon printing output, the ordinary character data 202 is overlaid on the form data 201 to form an output image data. In the form data 201, numeral 2011 to 2014 denote character data in the form. Figs. 3A and 3B illustrate character patterns registered in the cache memory 103 for form character data and the cache memory 106 for ordinary character data in case where the ordinary character data 202 is overlaid on the form data 201 and the overlaid image is outputted. <Flowcharts (Figs. 4 to 6)> Figs. 4 to 6 are flowcharts showing printing processing by the CPU 101 when an image data is formed by overlaying an ordinary character data, such as the data 202, on a form data, such as the data 201, and the formed image data is outputted. Data from the host computer 100 received in parallel with the overlaying image formation and printing is stored in the page buffer memory 104 via the reception buffer 108. The processing of the flowcharts of Figs. 4 to 6 start when printing data for one page is received and stored in the page buffer memory 104. It should be assumed that the form data 201 on each page, which will be overlaid, has been registered and stored in the RAM 101b in advance. The outline of the image formation by overlaying an ordinary character data on a form data and printing output will be described below with reference to the flowchart of Fig. 4. First, data for one character is read out of the page buffer memory 104 in step S1. Next, registered characters in the cache memory 106 for ordinary character data are searched to examine whether the character data read out in step S1 is stored or not in step S2. If NO in step S2, i.e., it is determined that the character data is not stored, an outline data corresponding to the character code is read out of the font memory 102 in step S3, and the character pattern is generated based on the read outline data in step S4. Thereafter, the character pattern is registered in the cache memory 106 in step S5. On the other hand, if YES in step S2, i.e., it is determined that the character data is stored, a corresponding character pattern is read out of the cache memory 106 in step S6. The obtained character pattern is mapped on the bitmap memory 105 in step S7. In step S8, whether bitmapping of character patterns for one page is completed or not is examined, and the operations in steps S1 to S7 are repeated until it is determined that the bitmapping of character patterns for one page is completed. On the other hand, if it is determined that the bitmapping of character patterns for one page is completed, the process proceeds to steps S9. In step S9, whether the bitmapped data is a page specified to be overlaid on the pre-registered form data is examined. If YES in step S9, data for one character is read out of the form data which has been received from the host computer 300 and stored in the RAM 101b via the reception buffer 108 in advance in step S10. In step S11, registered characters in the cache memory 103 for form character data are searched to examine whether the read character data is stored or not. If NO in step S11, an outline data corresponding to the character data is read out of the font memory 102 in step S12. In step S13, a character pattern is generated based on the outline data and outputted into the RAM 101b, and the character pattern is registered in the cache memory 103 in step S14. If YES in step S11, the corresponding character pattern is read out of the cache memory 103 in step S15. The obtained character pattern corresponding to the character data is mapped on the bitmap memory 105 in step S16. In step S17, whether the bitmapping of form data is completed or not is examined, and the operations in steps S10 to S16 are repeated until it is determined that the bitmapping of the form data is completed, at which time the process proceeds to step S18 to perform printing output. In step S9, if it is determined that the bitmapped data is not a page specified to be overlaid on the form data, the process proceeds to step S18, in which the image data in the bitmap memory 105 is outputted into the printer engine 107 to perform printing output. Next, the ordinary character pattern registration in step S5 will be described in detail with reference to the flowchart of Fig. 5, as well as description of the form character pattern registration in step S14 shown in the flowchart of Fig. 6. In the registration of step S5, whether the cache memory has an empty space is examined before the pattern for one character is stored in the cache memory 106 in step S51. If NO, the least probable accessed data (=low priority data) is deleted from the pattern data pre-stored in the cache memory 106 in step S52. Access frequency of each pattern data is predicted based on such as the number of accesses and time elapsed from the previous access. In this manner, an empty space is ensured in the cache memory 106, then in step S53, the new character pattern is registered at the space. It should be noted that the flowchart of Fig. 6 explaining the registration in step S14 corresponds to the flowchart of Fig. 5 except that the cache memory employed in the registration is the cache memory 103 for form character patterns, therefore, the explanation of the flowchart of Fig. 6 will be omitted. The printing output in step S18 is performed in the printer engine 107 (laser-beam printer hereinafter abbreviated to "LBP") shown in Fig. 7. Fig. 7 is a sectional view showing the internal structure of a printer, containing the printer engine 107. In Fig. 7, numeral 740 denotes a LBP main body which forms an image on a recording sheet as a recording medium, based on character patterns and the like supplied from the host computer 300; 700, a control panel on which various operating switches and LED(light emitting diode) displays and the like are arranged; and 701, a printer control unit for performing overall control of the LBP 740 and for analyzing data supplied from the host computer 300. The main unit 100 excluding the printer engine 107 shown in Fig. 1 is contained in the printing control unit 701. A laser driver 702 is a circuit for driving a semiconductor laser unit 703. The laser driver 702 turns a laser beam 704 emitted from the semiconductor laser unit 703 to be on/off in accordance with the inputted video signal. A rotatable polygon mirror 705 reflects the laser beam 704 in a left-right direction so that the laser beam 704 scans on an electrostatic drum 706. In this way, an electrostatic latent image such as a character pattern is formed on the electrostatic drum 706. A developing unit 707 arranged around the electrostatic drum 706 develops the latent image and transfer the image onto a recording sheet. The recording sheet is a cut-sheet type recording sheet set in a cassette 708 attached to the LBP 740. A paper feeding roller 709, document feeding rollers 710 and 711 convey the sheet into the LBP 740 and supply the sheet to the electrostatic drum 706. In this manner, the given printing data is outputted on the recording sheet. According to the embodiment, upon overlaying an ordinary character data on a form data and outputting the overlaid image data, cache memories separated and respectively dedicated for ordinary character data and character data for form is employed. When the cache memory 106 has no empty space for ordinary character registration, space should be created by deleting character data from the lowest priority data; this arrangement can prevent deletions of characters used for the form from the cache memory 103. Similarly, the arrangement can prevent deletions of ordinary characters from the cache memory 103 when it is out of empty space for character registration. In this embodiment, the size of each cache memory space is not specified and it can be freely set. For example, when the cache memory 103 runs out of empty space, deletion can be performed from a character which has a mapping time of the shortest period, thus utilizing the cache memory effectively. Upon search of a registered character pattern, if the character pattern is a character for form, the cache as the object of the search is the cache memory 103, while the object cache is the cache memory 106 if the character pattern is an ordinary character. However, it can be arranged such that both cache memories are searched. It should be noted that the electrophotographic type printer is employed in this embodiment, however, the recording method is not taken into account as far as the printer uses an outline font. Further, the process described in the embodiment can be applied to a case where image output is not printing output. In the embodiment, the two cache memories respectively have a fixed size. However, the present invention is not limited to this arrangement. For example, it can be arranged, as described in Fig. 8, such that the sum of the memory sizes of the two cache memories is fixed and the ratio of the respective memory sizes is variable. Fig. 8 illustrates a font cache memory 401 including a form character cache memory area and an ordinary character cache memory area. The sum of the two memory areas is constant and the sizes of respective areas are variable. In Fig. 8, data in Fig. 2A are employed as form characters and data in Fig. 2B are employed as ordinary characters overlaid on the form 201 in Fig. 2A. As for cache allocation, the form character cache memory area is reserved for the amount of the form character data at form printing starting time, and the other part of the memory 401 is allocated as an ordinary character cache memory area, and upon completion of the form printing or deletion of the form, the reserved area is released, thus effectively utilizing the memory. Furthermore, it can be arranged such that the form character cache memory area is reserved and released at each form printing to utilize the memory more effectively. When a plurality of forms are registered or printed, a cache memory area can be reserved at each recording starting time, and it can be released at each completion of form printing or each deletion of form. It is also possible to dynamically allocate memory spaces in dependence upon the amount of ordinary character data and that of form character data as for allocation of ordinary character cache memory area and form character cache memory area. Fig. 9 illustrates a memory address space used for static memory allocation and dynamic memory allocation. In Fig. 9, the hatched portion includes areas respectively having a fixed area size, i.e., a program storage area, a program work area, a reception buffer, a management table and a font storage area. These areas are allocated at initializing time of the apparatus. The other portion includes areas dynamically allocated in accordance with necessities, i.e., a bitmap memory, a page buffer memory, a work memory, an ordinary character cache memory area and a form character cache memory area. According to this arrangement employing dynamically allocated areas, if the size of a recording sheet is small, the bitmap memory size can be small, which allows larger size allocation for the other memory spaces. Accordingly, an ordinary character cache memory area and form character cache memory area for large sized character data can be ensured for registration of more character patterns. Further, it can be arranged such that priorities of the areas to be dynamically allocated are set in advance, and if an empty memory area is insufficient, necessary memory size is deleted from the lowest priority area, e.g., the ordinary character cache memory area, and the deleted memory size is re-allocated to an area requiring the memory size. As described in the embodiment, the deletion is started from the area in which data of the lowest access frequency is stored. Note that it is possible to set the largest memory size and the smallest memory size with respect to each area for preventing deletion of important data or for effective utilization of memory. The present invention can be applied to a system constituted by a plurality of devices, or to an apparatus comprising a single device. Furthermore, it goes without saying that the invention is applicable also to a case where the object of the invention is attained by supplying a program to a system or apparatus.

Claims: An image processing method comprising: a first input step (S1) of inputting data corresponding to an image (202); a first discrimination step (S2) of discriminating whether or not dot-pattern data corresponding to a respective data code inputted in said first input step (S1) is stored in a first cache memory (106); a first mapping step (S4) of generating a dot-pattern in response to the data code of the first input data in the first cache memory (106) using a stored and read outline font for the respective data codes, if the discrimination result in the first discrimination step is negative; a first reading step (S6) of reading a dot-pattern from the first cache memory (106), if the discrimination result in said first discrimination step is positive; an image mapping step (S7,S16) of bit mapping the generated or read dot-patterns in a bit map memory (105); and an output step (S18) of outputting the bit mapped pattern; characterised by a second input step (S10) of inputting data corresponding to a form image (201) over which said image (202) is to be overlaid; a second discrimination step (S11) of discriminating whether or not the dot-pattern data corresponding to a respective form code input in said second input step (S11) is stored in a second cache memory (103); a second mapping step (S13) of generating a dot-pattern in response to the form code of the second input data in the second cache memory (103) using a stored and read outline font for the respective form code, if the discrimination result in said second discrimination step is negative; and a second reading step (S15) of reading a dot-pattern from said second cache memory (103), if the discrimination result in said second discrimination step is positive; wherein said image mapping step (S7,S16) comprises bit mapping (S16) the dot-patterns corresponding to the data codes and the form codes generated in said first and second mapping steps (S4,S13) read in said first and second reading steps (S6,S15) in a bit map memory (105) to form an overlaid image of the image (202) on the form image (201). An image processing method according to claim 1, wherein in said first mapping step (S4), whether or not the first cache memory (106) has sufficient space is examined, and if the space is insufficient, appropriate deletable data is deleted from dot-pattern data pre-stored in the first cache memory (106) to ensure sufficient space. An image processing method according to claim 2, wherein the appropriate deletable data is a data of the lowest access frequency. An image processing method according to claim 3, wherein the data of the lowest access frequency is determined based on a number of accesses within a predetermined time and/or time elapsed from the previous access. An image processing method according to claim 1, wherein in said second mapping step (S13), whether or not the second cache memory (103) has sufficient space is examined, and if the space is insufficient, inappropriate deletable data is deleted from dot-pattern data pre-stored in the second cache memory (103) to ensure sufficient space. An image processing method according to claim 5, wherein the appropriate deletable data is a data of the lowest access frequency. An image processing method according to claim 6, wherein the data of the lowest access frequency is determined based on a number of accesses within a predetermined time and/or time elapsed from the previous access. An image processing method according to any preceding claim, wherein the first and second cache memories (103,106) have a fixed memory capacity, wherein the fixed memory capacity is divided in dependence upon respective necessary memory information amounts. An image processing method according to any preceding claim, including the step of separately and dynamically allocating memory areas of a storage medium to the first and second cache memories (103,106) in dependence upon respective necessary memory information amounts. An image processing method according to claim 9 wherein said first and second cache memories (103,106) have priorities, and if the storage medium do not have sufficient space for newly storing the dot-pattern data, the lowest priority area of the storage medium is released. Image processing apparatus comprising receiving means (108) for receiving data corresponding to an image (202); font memory means (102) for storing outline font data; first cache memory means (106) for storing dot-pattern data corresponding to data codes of the data received by said receiving means (108); forming means (101) for discriminating whether or not dot-pattern data corresponding to a respective data code of the data received by said receiving means (108) is stored in said first cache memory means (106), and if the result of the discrimination is positive, the forming means (101) is adapted to read the dot-pattern from said first cache memory means (106), and if the result of the discrimination is negative, the forming means is adapted to generate a dot-pattern in response to the data code of the received data in said first cache memory means (106) using the outline font data stored in said font memory means (102) for the respective data code; image forming means (105) for forming a bit mapped image by bit mapping the generated or read dot-patterns; and output means (107) for outputting the bit mapped image; characterised in that said receiving means (108) is adapted to receive form data corresponding to a form image (201) over which said image (202) is to be overlaid; by second cache memory means (103) for storing dot-pattern data corresponding to form codes of the form data received by said receiving means (108); in that said forming means (101) is adapted to discriminate whether or not the dot-pattern data corresponding to a respective form code of the form data received by said receiving means (108) is stored in said second cache memory means (103), if the result of the discrimination is positive, the forming means (101) is adapted to read the dot-pattern from said second cache memory means (103), and if the result of the discrimination is negative, the forming means (101) is adapted to generate a dot-pattern in response to the form code of received form data in said second cache memory means (103) using the outline font data stored in said font memory means (102) for the respective form code; and in that said image forming means (105) is adapted to form the bit mapped image by bit mapping the dot-patterns corresponding to the data codes and the form codes generated by said forming means (101) or read from said first and second cache memory means (106,103). Image processing apparatus according to claim 11, wherein if said forming means (101) discriminates that the dot-pattern data is not stored in said first cache memory means (106), said forming means (101) is adapted to examine whether said first cache memory means (106) has sufficient space for storing generated dot-pattern data, if this space is insufficient, said forming means (101) is adapted to delete appropriate deletable data from dot-pattern data pre-stored in said first cache memory means (106) to ensure sufficient space. Image processing apparatus according to claim 12, wherein said forming means (101) is adapted to delete the data having the lowest access frequency. Image processing apparatus according to claim 13, wherein said forming means (101) is adapted to determine data of the lowest access frequency based on a number of accesses within a predetermined time and/or time elapsed from the previous access. Image processing apparatus according to claim 11, wherein if said forming means (101) discriminates that the dot-pattern data is not stored in said second cache memory means (103), said forming means (101) is adapted to examine whether said second cache memory means (103) has sufficient space, and if the space is insufficient, said forming means (101) is adapted to delete appropriate deletable data from dot-pattern data pre-stored in said second cache memory means (103) to ensure sufficient space. Image processing apparatus according to claim 15 wherein said forming means (101) is adapted to delete data of the lowest access frequency. Image processing apparatus according to claim 16, wherein said forming means (101) is adapted to determine the lowest access frequency based on a number of accesses within a predetermined time and/or time elapsed from the previous access. Image processing apparatus according to any one of claims 11 to 17 wherein said first and second cache memory means (106,103) comprise a storage medium having a fixed memory capacity to be divided in dependence upon respective necessary information amounts. Image processing apparatus according to any one of claims 11 to 18, wherein said output means (107) comprises an electrophotographic type printer. Image processing apparatus according to any one of claims 11 to 17 wherein said first and second cache memory means (106,103) are separately and dynamically allocated memory areas of a storage medium in dependence upon respective necessary memory information amounts. Image processing apparatus according to claim 20, wherein the first and second cache memory means (106,103) have priorities, and if the storage medium does not have sufficient space for newly storing the dot-pattern data, the lowest priority areas of the storage medium are released by the first and second cache memory means (106,103).

Inventors: MIYAZAKI YUKI, MIYAZAKI, YUKI, MIYAZAKI, YUKI, C/O CANON KABUSHIKI KAISHA
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1993
Main classification: G06K15
IPC codes: G06K15, B41J21, G06T11