Output method and apparatus

Abstract: An output apparatus such as a laser beam printer comprises: a discrimination circuit to discriminate a necessary minimum portion in an output image in one page; a determining circuit to determine a storage area on the basis of the result of the discrimination by the discrimination circuit; and an output device to generate an image of one page by using the storage area determined by the determining circuit.

Description: The invention relates to output method and apparatus for generating a pattern in accordance with data supplied from an external device such as a host computer or the like. In older EP-application 92 303 574.5 of the same applicant (EP-A-0 510 923) a data frame is segmented and all segments are compressed. Fig. 2 is a block diagram showing a flow of processes in a conventional printer 1. In Fig. 2, reference numeral 2 denotes an external device such as a host computer or the like which generates print data; 3 an input unit which receives data; 4 an analyzer to analyze the input data; 5 a page buffer to store the result of the analysis; 6 a developer to develop into an output image of a bit map memory or the like on the basis of the content in the page buffer 5; and 7 a frame memory to store the developed output image. The frame memory 7 comprises a RAM. Reference numeral 8 denotes an output unit to control an output mechanism 9 by, for instance, a laser beam or the like in accordance with the frame memory 7. Reference numeral 10 denotes a recording medium such as a paper or the like. In the printer 1, the print data generated from the external device 2 is received by the input unit 3 for receiving the data, the analyzer 4 analyzes the received data, and data of a format to give an instruction to the developer 6, namely, the page buffer 5 is formed as a result of the analysis. The page buffer 5 is formed on a page unit basis and is sent to the developer 6 in a form including all of the information of one page. In accordance with the page buffer 5, the developer 6 forms an output image into the frame memory 7 in a form of, for example, a binary bit map memory of one page. In accordance with the frame memory, the output unit 8 records the result of the printing to the recording medium such as a paper or the like by, for instance, on/off controlling a laser beam to the output mechanism 9. In the above conventional apparatus, however, the frame memory to store the output image is previously reserved by an amount of data corresponding to one whole page, so that it is impossible to control such as to efficiently use the memory in accordance with the size of output image. For instance, when the page of the A4 size is generated at a resolution of, e.g., 300 dpi (dots per inch), even in the case where only one point of a size of one dot is generated, it is necessary to fixedly reserve a frame memory of about one Mbytes necessary to store the output image of the whole page. Further, in the case of performing a color expression or a dark/light expression, such a problem becomes further serious. According to one aspect the present invention provides transient storage apparatus for data frames comprising: receiving means for receiving data for a data frame; discriminating means for discriminating partitions of said data frame; determining means for determining in which partition data is present; memory means for storing partitions which contain data; control means for assigning nulls to partitions if it is determined by the determining means that data is not present for those partitions, and for reserving memory areas for partitions if it is determined by the determining means that data is present for those partitions; and output means for generating an output data frame by checking the reserved memory areas and outputting the data in the reserved memory areas with nulls for partitions in which no data is present. According to a second aspect the present invention provides a method of transiently storing data frames comprising the steps of receiving data for a data frame; partitioning said data frame; determining in which partitions data is present; assigning nulls to partitions if it is determined that data is not present for those partitions; reserving memory areas for partitions if it is determined that data is present for those partitions; and generating an output data frame by checking the reserved memory areas and outputting the data in the reserved memory areas with nulls for data partitions in which no data is present. Embodiments of the present invention will now be described with reference to the drawings in which:- Figs. 1A and 1B are diagrams showing a construction of a frame memory in an embodiment; Fig. 2 is a diagram showing a flow of processes in a conventional printer; Fig. 3 is a flowchart showing processes in an analyzer in the embodiment; Fig. 4 is a diagram showing a page buffer in the embodiment; Fig. 5 is a flowchart showing processes in a developer in the embodiment; Fig. 6 is a diagram showing a memory assignment table in the embodiment; Fig. 7 is a flowchart showing processes in an output unit in the embodiment; Fig. 8 is a practical constructional diagram of a printer according to an embodiment; and Fig. 9 is a structural diagram of a laser beam printer. The invention can be applied to an apparatus or a system comprising a plurality of apparatuses or can be also applied to the case where the invention is accomplished by supplying a program to an apparatus or a system. An embodiment embodying the present invention will now be described hereinbelow. For simplicity of explanation, the case of generating characters "A, B, C" into one page will be described. Figs. lA and lB show a frame memory of one page which has hitherto been necessary to store such an output image. In the embodiment, the frame memory of one page is divided into eight portions and the numbers 0 to 7 are given to those portions. Only the memories corresponding to Nos. 1, 5, and 6 are reserved as a frame memory as shown in Fig. lB. Those numbers are hereinafter referred to as frame numbers. Fig. 3 is a flowchart showing processes for one data which are executed by the analyzer 4 in one embodiment of the invention. In the analyzer 4, the data is first analyzed in step S31, thereby knowing the position and developing range (size of character in this case) where each data should be developed. The number of dividing portions of the frame memory is determined (0 to 7 in Fig. 1B). In the next step S32, the memory into which the data should be developed is determined on the basis of the above information, that is, the frame number in Fig. lB into which the data should be developed is determined. For instance, it will be understood that in the case of a character "A", it can be developed in only an area of the frame No. 1 and, in the case of a character "B", areas of both of the frame Nos. 5 and 6 are needed. Due to this, a page buffer added with the information of the corresponding frame number (in which data should be developed) is formed in step S33. In the case of data such as image or graphic data other than characters as well, the area (the number of dividing portions) in which data should be developed can be known by the data analysis in step S31. Consequently, the developing areas are classified into the case of two dividing portions, the case where the frame cannot be divided, the case of three dividing portions, or the like. In step S32, the number of a frame in which data should be developed can be predetermined. Fig. 4 shows a page buffer according to the embodiment which has been formed by the analyzer 4. The information of the frame numbers such as (1), (5, 6), and (6) are respectively allocated to the characters "A", "B", and "C". The frame is variably set on the basis of the necessary minimum partial area based on the output image. Fig. 5 is a flowchart showing processes for one page buffer in the developer 6 in one embodiment of the invention. In the developer 6, the frame number in the page buffer is first checked in step S51. A check is now made in step S52 to see if the memory corresponding to the frame number has already been reserved or not by using a table (hereinafter, referred to as a memory assignment table) showing the corresponding relation between the frame numbers and the assigned memories as shown in Fig. 6. "NULL" is set to the number of frame to which no memory is assigned. In the initial state, all of the frame numbers are set to "NULL". When the corresponding memory is not reserved in step S52, the memories which will be newly necessary are reserved in step S53. The addresses of the reserved memories are written into the memory assignment table in step S54. Step S55 follows. When the corresponding memory has been reserved in step S52, the output image is developed for the corresponding memory in step S55. Fig. 7 is a flowchart showing output processes of one page which are executed by the output unit 8 in one embodiment of the invention. In the output unit 8, the initial value "0" is first set to a variable N representing the processing frame number in step S71. In the next step S72, a check is made to see if the address in the memory corresponding to the frame number N is equal to "NULL" or not by referring to the memory assignment table. If it is "NULL", the NULL image is generated in correspondence to the above frame number or nothing is generated in step S73. Practically speaking, in the case of a laser beam printer, a process such that the laser beam is turned off during the generation of the image corresponding to the frame or the like is performed. After that, step S75 follows. When the corresponding memory address exists in step S72, an image corresponding to the frame is generated in step S74 by executing a conventional output control with reference to the corresponding memory. The processing routine advances to step S75. The variable N is increased by only +1 in step S75 and step S76 follows. A check is made in step S76 to see if the variable N exceeds an end value (7 in this case) or not. If the variable N is not larger than the end value, the processing routine is returned to step S72. When N is larger than the end value, the generation of this page is finished. Fig. 8 shows a practical construction of a printer of the embodiment. In the diagram, reference numeral 100 denotes a printer of the embodiment; 200 a host computer which generates print information; 101 an input interface which receives the print information from the host computer 200; 102 a CPU to control the whole printer 100; 103 an ROM to store operation processing procedure (programs regarding the flowcharts of Figs. 3, 5, and 7 and the like) of the CPU 102, character font patterns, and the like; 104 an RAM which is used for storage such as work area of the CPU 102, reception buffer to store the print data received from the host computer 200, page buffer to construct an output image of one page from the received print information, or the like; 105 a frame memory into which the output image is developed and which is also constructed by an RAM; and 106 an output interface to generate the output image to an output unit 107 to actually print the output image. The above component elements are connected to a system bus 108. According to the embodiment as described above, it is possible to control so as to generate the image data of one page while dynamically reserving the frame memory in accordance with the size of output image. (Another embodiment) As another embodiment, there is also considered a method whereby the analyzer 4 in the above embodiment executes the analyzing process in a manner similar to the conventional method, the developer 6 develops the image data of one whole page into the frame memory in a manner similar to the conventional method, the portions which are not used for development in the frame memory are checked, a memory assignment table is formed, and the portions which are not used are released. In such a case, although the frame memory of one whole page is temporarily necessary, only the same capacity as that in the above embodiment is used upon generation. It is also considered to reserve the memory, namely, to form a memory assignment table by the developer 6. [Description of laser beam printer (Fig. 9)] A construction of a laser beam printer 100 to which the invention can be applied will now be described with reference to Fig. 9. Fig. 9 is a cross sectional view showing an internal structure of the laser beam printer (hereinafter, abbreviated to an LBP) of the embodiment. The LBP can register a character pattern, form data, or the like from a data source (not shown). In the diagram, reference numeral 100 denotes the LBP main body which receives and stores character information (character code), form information, macro instruction, etc. which is supplied from the external device (2 in Fig. 1) connected to the LBP main body. The LBP main body 100 forms the corresponding character pattern, form pattern, etc. in accordance with those information and forms an image onto a recording paper as a recording medium. Reference numeral 1001 denotes an operation panel on which switches for operation, an LED or LCD display, and the like are arranged. Reference numeral 1100 denotes a control section comprising the CPU 102 in Fig. 8 for controlling the whole LBP 100 and for analyzing the character information or the like which is supplied from the external device. The control section 1100 converts the character information or the like into the video signal of the corresponding character pattern and transfers to a laser driver 1002. The laser driver 1002 is a circuit to drive a semiconductor laser 1003 and on/off switches a laser beam 1004 which is emitted from the semiconductor laser 1003 in accordance with the input video signal. The laser beam 1004 is led to the right and left by a rotary polygon mirror 1005 and scans on an electrostatic drum 1006. Thus, an electrostatic latent image of a character pattern is formed onto the drum l006. The latent image is developed by a developing unit 1007 arranged around the drum 1006 and, thereafter, the developed image is copy transferred to the recording paper. A cut sheet is used as a recording paper. The cut sheet recording papers are enclosed in a paper cassette 1008 attached in the LBP main body 100 and are picked up one by one and inserted into the apparatus and conveyed to the drum l006 by a paper feed roller 1009 and conveying rollers 1010 and 1011. According to the invention as described above; the frame memory can be dynamically reserved in accordance with the size of output image, so that the memory can be efficiently used in accordance with the size of output image in the page.

Claims: Transient storage apparatus for data frames comprising: receiving means (3) for receiving data for a data frame; discriminating means (4) for discriminating partitions of said data frame; determining means (4) for determining in which partition data is present; memory means (5) for storing partitions which contain data; control means (6) for assigning nulls to partitions if it is determined by the determining means that data is not present for those partitions, and for reserving memory areas for partitions if it is determined by the determining means that data is present for those partitions; and output means (8) for generating an output data frame by checking the reserved memory areas and outputting the data in the reserved memory areas with nulls for partitions in which no data is present. Transient storage apparatus as claimed in claim 1 wherein said discriminating means (4) is adapted to partition a data frame into a plurality of partitions, each partition being identifiable by a number. Transient storage apparatus as claimed in claim 2 wherein said determining means (4) is adapted to form a table in which the data present in each partition number is identified. Transient storage apparatus as claimed in any preceding claim including a memory assignment table containing either a memory location or a null for each partition of a data frame, said output means (8) being adapted to look up the contents of the memory assignment table to determine if data is present for each said partition. A method of transiently storing data frames comprising the steps of receiving data for a data frame; partitioning said data frame; determining in which partitions data is present; assigning nulls to partitions if it is determined that data is not present for those partitions; reserving memory areas for partitions if it is determined that data is present for those partitions; and generating an output data frame by checking the reserved memory areas and outputting the data in the reserved memory areas with nulls for data partitions in which no data is present. A method as claimed in claim 5 wherein said data frame is partitioned to assign each partition a number. A method as claimed in claim 6 wherein a table is formed identifying data contained in each partition number. A method as claimed in any one of claims 5 to 7 wherein a memory assignment table is formed to contain a memory location or a null for each partition of a data frame and said step of outputting includes the step of checking said memory assignment table to determine if data is stored for each said partition.

Inventors: TOYOKURA YOICHI, TOYOKURA, YOICHI, TOYOKURA, YOICHI, C/O CANON KABUSHIKI KAISHA
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1992
Main classification: G06K15
IPC codes: B41J5, H04N1, G06K15