Image forming apparatus, image forming method, and program
The image forming apparatus addresses the issue of deadlocks and redundant timeouts in parallel PDL drawing processing by dynamically setting a longer timeout period based on the number of drawing commands, ensuring efficient and reliable image formation.
Patent Information
- Application Number
- JP2020207880
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-12-15
- Publication Date
- 2025-05-26
- Estimated Expiration
- 2040-12-15
AI Technical Summary
In image forming apparatuses that perform PDL drawing processing in parallel, the complexity of resource exclusion and synchronization can lead to deadlocks, and setting a redundant timeout can result in prolonged return times for the user.
An image forming apparatus that includes a PDL analysis unit, an intermediate data generation unit, a tile data generation unit, a rendering unit, an acquisition unit, and a setting unit. The apparatus sets a longer timeout period for each thread when the number of drawing commands is small, thereby avoiding deadlocks and redundant timeouts.
The solution effectively sets an appropriate timeout period, preventing deadlocks and reducing the time it takes for the process to return to the user, thus enhancing the efficiency and reliability of image forming operations.
Smart Images

Figure 0007682624000001 
Figure 0007682624000002 
Figure 0007682624000003
Abstract
Description
Technical Field
[0001] The present invention relates to an image forming apparatus, an image forming method, and a program for forming image data from print data.
Background Art
[0002] Generally, PDL drawing processing can be divided into PDL analysis processing and drawing processing. The PDL analysis processing analyzes PDL data and converts it into drawing commands with a lower level of abstraction. The drawing processing receives the drawing commands, performs conversion processing to device coordinates and color composition processing, and creates a raster image. The raster image is output on paper by a printer device or displayed on a monitor device.
[0003] In recent years, with the increasing sophistication of the execution environment, the demand for speeding up PDL drawing processing has also increased, and it has been accelerated by processing PDL drawing processing in parallel (Patent Document 1). Furthermore, for the drawing processing as well, by dividing the intermediate data into tile units and generating raster images for each tile in parallel, speeding up has been achieved (Patent Document 2).
[0004] In parallel processing, since the processes are executed asynchronously, it becomes possible to speed up the processing. On the other hand, control such as resource exclusion shared between processes and synchronization between processes becomes complicated, and inevitable problems such as a deadlock that cannot be controlled due to conflicts in exclusion and synchronization occur (Patent Document 3). There is a mechanism called timeout to forcibly release exclusion and synchronization when problems such as deadlock occur. Generally, timeout is not set when exclusion and synchronization are simple and quality is ensured, or a redundant value is set within a range that does not affect normal processing. Also, when the processing time is uniquely determined, the occurrence of timeout is suppressed by predicting the processing time (Patent Document 4).
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
[0006] However, in the case where, like PDL drawing processing, PDL analysis processing, drawing processing, and each process within the drawing processing are executed in parallel, exclusion and synchronization become more complicated. Also, it is necessary to avoid deadlocks for all use cases, such as unexpected system errors and the timing of cancellation by the user. However, depending on the execution environment and processing environment, a deadlock may occur, and in the event of a deadlock, control may not return from the PDL drawing processing. Also, when setting a redundant timeout time for the upper-level printing process for the PDL drawing process regardless of the content of the input PDL, it may take a long time for the process to return to the user (Fig. 14(A)).
[0007] The present invention has been made in view of the above problems, and an object thereof is to set an appropriate timeout time in an image forming apparatus that forms image data from print data in order to avoid a redundant timeout time and a deadlock. [Means for Solving the Problems]
[0008] The present invention is an image forming apparatus that forms raster image data from print data, and includes: a PDL analysis unit that analyzes PDL data included in the print data and generates a plurality of drawing commands; an intermediate data generation unit that generates intermediate data by parallel processing the plurality of drawing commands in a plurality of threads per page; a tile data generation unit that generates tile data from the intermediate data; a rendering unit that generates raster image data from the tile data; an acquisition unit that acquires the number of drawing commands processed in each of the plurality of threads; and a setting unit that, when the number of drawing commands is small, sets a longer timeout period for each of the plurality of threads. The resource size included in the drawing command becomes smaller According to The resource size included in the drawing command becomes smaller , the present invention is characterized by including the above.
Effects of the Invention
[0009] According to the present invention, in an image forming apparatus that forms image data from print data, an appropriate timeout period can be set to avoid redundant timeout periods and deadlocks.
Brief Description of the Drawings
[0010]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Mode for Carrying Out the Invention
[0011] Hereinafter, each embodiment will be described with reference to the drawings.
[0012] (Embodiment 1) FIG. 1 is a diagram showing an example of the hardware configuration of an image forming apparatus. In FIG. 1, a CPU 101 executes programs such as an OS, general applications, etc. loaded from a ROM 103, an HDD 114, or an SSD 115 into a RAM 102, and realizes the functions of software and the processing of flowcharts described later. The RAM 102 functions as a main memory, a work area, etc. of the CPU 101. A keyboard controller (KBC 107) controls key inputs from a keyboard 112 and a pointing device (not shown). A CRT controller (CRTC 108) controls the display of a CRT display 113. A disk controller (DKC 109) controls access to a hard disk drive (HDD 114), a solid state drive (SSD 115), etc. that store a boot program, various applications, font data, user files, etc. A PRTC 110 controls the exchange of signals with a connected printer. An NC 111 is connected to a network and executes communication control processing with other devices connected to the network. In the present embodiment, the functions of the image forming apparatus shown below are described as being realized by software, but each function may be implemented in the image forming apparatus with dedicated hardware. Note that the CPU 101 of the present embodiment is assumed to be a multi-core CPU. The image forming apparatus may have a plurality of CPUs.
[0013] Figure 2 shows a block diagram of the printing system according to Embodiment 1. The print data generation unit 201 generates print data 203 from the data to be printed 202. The image forming processing apparatus 100 includes an input unit 204, a PDL analysis unit 205, a raster image generation unit 206, an output unit 207, and a plurality of processes to convert the print data 203 into output data 211. The PDL analysis unit 205 and the raster image generation unit 206 are configured to be operable in parallel. The raster image generation unit 206 includes an intermediate data generation unit 208, a tile data generation unit 209, and a rendering unit 210, each of which can operate in parallel. The functional block diagrams of the computer and the image forming processing apparatus shown in FIG. 2 do not necessarily need to be arranged in this way. Either one can be performed by a computer, or either one can be performed by a printer, and can be freely changed. These are usually stored in the RAM 102 in the image forming processing apparatus.
[0014] Figure 3 shows a functional block diagram from the input unit 204 to the output unit 207 according to Embodiment 1. Using this figure, the generation of the output data 211 from the print data 203 will be described.
[0015] The input unit 204 receives the print data 203 generated by the print data generation unit 201. The print data 203 is composed of PDL data 300 in which the print content is described, the paper size to be output, the number of pages to be output, and the like. The PDL data 300 is passed to the PDL analysis unit 205, waiting for the completion of the generation of the output data 211, and a timeout thread is started.
[0016] The PDL analysis unit 205 analyzes the PDL data 300 included in the print data 203 received by the input unit 204, extracts drawing commands, and generates drawing commands. Resources 301 such as images and fonts are stored in the HDD 114 or SSD 115 as necessary.
[0017] The intermediate data generation unit 208 reads out the drawing commands generated by the PDL analysis unit 205 and the resources 301 from the HDD 114 or the SSD 115 as necessary, and generates intermediate data 302 consisting of edge information in units of pages or bands obtained by vertically dividing a page.
[0018] The intermediate data generation thread 305 illustrates the task configuration when the intermediate data generation unit 208 is started as a thread. When receiving drawing commands for one page, it is started as a thread and generates intermediate data 302 from the drawing commands. The intermediate data generation thread 305 is configured to be able to operate in parallel in units of pages. When intermediate data 302 in units of pages or bands obtained by vertically dividing a page can be generated, it notifies the tile data generation unit 209 or the tile data generation thread 306 that tile data 303 can be generated. It performs synchronization between threads and waits until the generation of tile data 303 for the created intermediate data 302 is completed. When the generation of tile data 303 is completed, it notifies the PDL analysis unit 205 of the completion of the intermediate data generation and then ends.
[0019] The tile data generation unit 209 generates tile data 303 consisting of edge information, composite information, and filling information, which are obtained by dividing the intermediate data 302 consisting of edge information generated by the intermediate data generation unit 208 into units of tiles that can execute rendering processing in parallel.
[0020] The tile data generation thread 306 illustrates the task configuration when the tile data generation unit 209 is started in a separate thread. When the tile data generation unit 209 receives a notification of the start of tile data generation from the intermediate data generation thread 305, the tile data generation thread 306 is started as a thread. The tile data generation thread 306 is configured to be able to operate in parallel with respect to the intermediate data 302 generated in page or band units. The tile data 303 divided into sizes that can operate in parallel is sequentially created. When the creation of the tile data 303 for the intermediate data 302 is completed, the rendering unit 210 is notified of the start of rendering. Synchronization between threads is performed until the generation of the tile data 303 is completed, waiting until the rendering is finished, notifying the intermediate data generation unit 208 of completion, and then ending.
[0021] The rendering unit 210 generates raster image data in tile units from the tile data 303 generated by the tile data generation unit 209. The rendering thread 307 illustrates the task configuration when the rendering unit 210 is started in a separate thread, and generates raster image data by operating the tile data 303 generated in tile units in parallel for each tile unit.
[0022] The output unit 207 generates output data 211 from the raster image data generated in tile units.
[0023] Figure 4 is an example of the print job information generated as a result of processing the print data 203 in the input unit 204. The print job information including the print data 203 is expressed in one line each. The print job identifier 401 is a print job identifier for identifying a print job. The PDL size 402 is the input PDL size. The paper size 403 is the print paper size. The number of pages 404 is the number of pages. The timeout time 405 is the time until timeout, which is determined in the flowchart of FIG. 8 described later. The status 406 is the status of processing, indicating the status of the print job, and stores information that can identify statuses such as waiting for processing, in processing, and processing completed. Here, timeout includes notifying the user and prompting the user to cancel the processing, and is not limited to canceling the processing within the program.
[0024] Figure 5 is an example of the information obtained by analyzing the PDL in the PDL analysis unit 205 and the generated print page information. The page number 501 is the page number to be processed, indicating the physical page number of the output. The number of drawing commands 502 is the number of drawing commands generated within the physical page to be output. The resource size 503 is the total value of the resources 301 stored in the HDD 114 or SSD 115, such as images and font data, included in the number of drawing commands within the physical page to be output. The timeout time 504 is the time until the completion of the intermediate data generation process times out, which is determined in the flowchart of FIG. 9 described later. The status 505 is the status of processing, indicating the status of the PDL analysis process, and stores information that can identify statuses such as waiting for processing, in processing, and processed.
[0025] FIG. 6(a) is an example of information obtained by generating intermediate data 302 from drawing commands in intermediate data generation unit 208 and intermediate data information to be generated. Intermediate data ID 601 is a unique ID assigned to the intermediate data that identifies intermediate data 302. Edge count 602 is the count of the number of edges of the processed intermediate data 302. Intermediate data size 603 is the size of the intermediate data 302 generated by processing. Timeout time 604 is the time until the completion of the tile generation process times out, and is determined by the flowchart of FIG. 10 described later. Status 605 is the status of the intermediate data generation process, and stores information that can identify statuses such as waiting for processing, being generated, being processed, and processed.
[0026] FIG. 7 is an example of information obtained by generating tile data 303 from intermediate data 302 in tile data generation unit 209 and tile data information to be generated. Tile ID 701 is a unique ID assigned to the tile that identifies tile data 303. Status 702 is the status of the tile data generation process, and stores information that can identify statuses such as waiting for processing, being processed, and processed. Tile split count 703 is the number of tile splits from intermediate data 302. Parallel processing count 704 is the number of parallel processing of rendering threads 307. Timeout time 705 is the time until the completion of the rendering process times out, and is determined by the flowchart of FIG. 12 described later.
[0027] FIG. 8 is a flowchart of the processing in the input unit 204 in the present embodiment. In step S800 (hereinafter, “step S800” is abbreviated as “S800”, and other steps are abbreviated in the same way), print data 203 is received, and print job information 400 in FIG. 4 is created. In S801, print job information and PDL data 300 are extracted from the print data 203, and the information obtained is filled in the print job identifier 401, PDL size 402, paper size 403, and number of pages 404 of the print job information 400 in FIG. 4. In S802, a timeout time is calculated, and the calculation result is stored in the timeout time 405 of the print job information 400. Here, timeout means that when the conversion from the print data 203 to the output data 211 does not end within a certain time, there is a high possibility that a deadlock or a live lock has occurred in the image forming apparatus. Therefore, it means releasing resources to the OS and the user by forcibly stopping the image forming process. In S803, a timeout thread in FIG. 9 described later that times out with the value calculated in S802 is started. In S804, the PDL analysis unit 205 is passed the PDL data 300, and the conversion process from the received print data 203 to the output data 211 is performed, and the state 406 is changed to processing. When the conversion process ends, the state 406 is changed to processed, and the timeout time 405 is changed to -1. In S805, it is checked whether there is a next print job. If there is a next print job, the process returns to S800 and is repeated until there is no print job. If there is no job, the processing of the input unit 204 ends. The timeout time 405 of the input unit 204 needs to consider the processing time up to the output unit 207. Therefore, in this embodiment, the PDL size 402, paper size 403, and number of pages 404 that affect the processing amount are used. If the PDL size 402 is large, it is considered that the PDL drawing content is complex or an image with a high processing load is embedded, which affects the processing time. The paper size 403 is the size of the raster image to be output and is considered to affect the processing time. Even if the processing load per page of the number of pages 404 is small, it is considered that the number of pages affects the processing time. Therefore, the timeout time 405 of the input unit 204 shall use this information.However, it is not limited to this, and a configuration including resolution and the like may be adopted. Also, regarding the calculation of the timeout time 405, the specifications (number of cores, clock speed) of the CPU 101 in the execution environment may be considered as execution environment information.
[0028] FIG. 9 is a flowchart diagram of a timeout thread for aborting processing when the conversion from print data 203 to output data 211 does not finish within a certain period of time. The thread is initialized at S900. It sleeps for a certain period of time at S901. The elapsed time is calculated at S902. It is calculated as the difference between the startup time and the current time, but the calculation method is not particularly limited. At S903, the timeout time 405 is compared with the elapsed time, and if the elapsed time is greater than the timeout time 405, the cancellation process of the conversion process to the output data 211 is executed at S904. The end process of the timeout thread is carried out at S906 to end the thread. At S903, when the timeout time 405 is compared with the elapsed time and the elapsed time is less than or equal to the timeout time 405, if the status 406 of the corresponding print job is processing completed at S905, it proceeds to S906, and if it is in the middle of processing, it returns to S901.
[0029] FIG. 10 is a flowchart diagram in the PDL analysis unit 205. Analyze the PDL data 300 received at S1000, generate drawing commands from the drawing instructions, create the print page information 500 of FIG. 5, and change the state 505 during processing. Store the number of drawing commands counted when generating the drawing commands and the size of the resource 301 stored in the HDD 114 or SSD 115 in the drawing command number 502 and the resource size 503, respectively. Notify the intermediate data generation unit 208 to start processing at S1001. Generally, when comparing the processing amount of the PDL analysis unit 205 and the processing amount of the raster image generation unit 206, the processing amount of the PDL analysis unit 205 is smaller, and if they operate in parallel, the analysis of the PDL data 300 will proceed first. As a result, the drawing commands and resources of pages that are not immediately required will overwhelm the memory. To avoid this, it is configured to limit the pages for which drawing commands are generated by analysis. At S1002, determine whether the upper limit of the preceding page processing has been reached by counting the number of processes in the state 505. If it has been reached, calculate the timeout time from the drawing command number and the resource size at S1003 and store it in the timeout time 504. Set the timeout time 504 at S1004 and wait for the intermediate data generation unit 208 to finish. If it takes more than the timeout time 504 to complete the generation of the intermediate data 302 at S1005, the wait is forcibly released. In that case, since the wait is released as an error, perform error processing at S1011 and end the process. If the generation of the intermediate data 302 is completed within the timeout time 504, change the state 505 of the corresponding page to processed at S1007, and determine whether there is a next page by checking whether there is a wait for processing the state 505 for other pages.
[0030] If the upper limit has not been reached in S1002, in S1007, change the status 505 of the corresponding page to processed, and determine whether there is a next page by checking whether there is a page waiting for the processing of status 505 in other pages. If there is a next page, return to S1000; if not, calculate the timeout time from the number of rendering commands and the resource size in S1008, and store it in the timeout time 504. Set the timeout time 504 in S1009, and wait for the intermediate data generation unit 208 to finish. In S1010, change the timeout time 504 to -1. If the generation of the intermediate data 302 is completed within the timeout time 504, end the process. If it takes more than the timeout time 504 for the generation of the intermediate data 302 to be completed, the wait is forcibly released. In that case, since the wait is released as an error, perform error processing in S1011 and end the process. The timeout time 504 of the PDL analysis unit 205 needs to consider the processing time up to the rendering unit 210. Therefore, in this embodiment, the number of rendering commands 502 and the resource size 503, which are considered to affect the processing amount, are used. If the number of rendering commands 502 is large, it is considered that the amount of intermediate data to be generated increases and affects the processing time. If the resource size 503 is large, it is considered that an image with a high processing load is embedded, which affects the processing time. Therefore, these pieces of information shall be used for the timeout time 504 of the PDL analysis unit 205. However, it is not limited to this, and a configuration including the output size, etc. may also be acceptable. Also, regarding the calculation of the timeout time 504, the specifications (number of cores, clock speed) of the CPU 101 of the execution environment may be considered as execution environment information.
[0031] FIG. 11 is a flowchart of the intermediate data generation thread process activated by the intermediate data generation unit 208. Initialization is performed at S1100 to create the intermediate data information 600 in FIG. 6. Intermediate data 302 is generated from the drawing commands and the resources 301 stored in the HDD 114 and the SSD 115 at S1101. When generating the intermediate data 302 while changing the state 605 to generating, the number of edges counted and the size of the intermediate data 302 are stored in the number of edges 602 and the intermediate data size 603, respectively. At S1102, it is notified to the tile data generation unit 209 that the generation of the intermediate data 302 is completed and the generation of the tile data 303 is started. The timeout time 604 is calculated from the number of edges 602 and the intermediate data size 603 at S1103 and stored in the timeout time 604. The state 605 is updated during processing at S1104, the timeout time 604 is set, and it waits for the tile data generation unit 209 to finish. If the generation of the tile data 303 is not completed within the timeout time 604 at S1105, the waiting is forcibly released, and error processing is performed at S1106. At S1107, the state 605 for the corresponding intermediate data ID is set to processed, the timeout time 604 is changed to -1, and it is determined whether there is a process waiting in the state 605. If there is a process waiting in the state 605, since there is a drawing command for the next page, it repeats from S1101. If there is no process waiting in the state 605, it is notified to the PDL analysis unit 205 at S1108 that the generation of the intermediate data 302 is completed. Thread termination processing is performed at S1109. The timeout time 604 of the intermediate data generation unit 208 needs to consider the processing time up to the rendering unit 210. Therefore, in this embodiment, the number of edges 602 and the intermediate data size 603, which are considered to affect the processing amount, are used. If the number of edges 602 is large, it is considered that the amount of intermediate data to be generated increases and affects the processing time. If the intermediate data size 603 is large, since an image with a high processing load may be embedded, it is considered that it affects the processing time. Therefore, these pieces of information shall be used for the timeout time 604 of the intermediate data generation unit 208. However, it is not limited to this, and a configuration including the output size or the like may be adopted.Regarding the calculation of the timeout time 604, as execution environment information, the specifications (number of cores, clock speed) of the CPU 101 in the execution environment may be considered.
[0032] FIG. 12 is a flowchart of the tile data generation thread process started by the tile data generation unit 209. Initialization is performed at S1200 to generate the tile data information 700 in FIG. 7, and the tile division number 703 and the parallel processing number 704 to be divided for parallel operation in the rendering unit 210 are stored. The state 702 is changed to being processed at S1201, and the tile data 303 is generated from the intermediate data 302 and the resources 301 stored in the HDD 114 and the SSD 115. At S1202, the rendering unit 210 is notified that rendering can start, and the state 702 is changed to processed. At S1203, it is checked whether there is the next intermediate data to be processed depending on whether there is a processing wait in the state 702. If so, the process is repeated from S1201. Otherwise, in order to wait for the end of the rendering unit 210 at S1204, the timeout time is calculated from the tile division number 703, the parallel processing number 704, etc., and stored in the timeout time 705. The timeout time 705 is set at S1205, and the end of the rendering unit 210 is waited for. If the rendering process is not completed within the timeout time 705 at S1206, the wait is forcibly released, error processing is performed at S1207, and the process proceeds to S1208. If the rendering process is completed within the timeout time 705 at S1206, at S1208, the completion of the generation of the tile data 303 is notified to the intermediate data generation unit 208, and thread end processing is performed at S1209. The timeout time 705 of the tile data generation unit 209 needs to consider the processing time of the rendering unit 210.
[0033] Therefore, in this embodiment, the tile division number 703 and the parallel processing number 704, which are considered to affect the throughput, are used. If the tile division number 703 is large, it is considered that the amount of tile data 303 to be processed increases and the processing time is affected. The parallel processing number 704 is considered to affect the processing time of the tile data 303 that can be processed simultaneously. Therefore, these pieces of information are used for the timeout period 705 of the tile data generation unit 209. However, it is not limited to this, and a configuration including the output size or the like may be adopted. Further, regarding the calculation of the timeout period 705, the specifications (number of cores, clock speed) of the CPU 101 in the execution environment may be considered as the execution environment information.
[0034] FIG. 13 is a flowchart of the rendering thread process started in the rendering unit 210. Initialization is performed in S1300. In S1301, a raster image is rendered from the tile data 303. If there is the next tile data 303 in S1302, the process returns to S1301, and the rendering process is repeated until the tile data 303 runs out. In S1303, the tile data generation unit 209 is notified that the rendering process has been completed, and in S1304, the termination process of the rendering thread is performed.
[0035] As described above, by calculating and setting the timeout period according to the granularity of each processing content, it is possible to shorten the time until timeout for redundant timeouts.
[0036] (Embodiment 2) Other embodiments other than the above-described embodiments will be described below. In this embodiment, the configuration is the same as that of the above-described Embodiment 1, but there are differences in the intermediate data information described with reference to FIG. 6(a). This will be briefly described with reference to FIG. 6(b) below. The presence or absence of special drawing 606 indicates whether or not special drawing with complicated processing such as transparency is included. In the case of drawing with complicated processing such as transparency, it affects the processing time of raster image generation. Therefore, it is possible to calculate the timeout time in consideration of the presence or absence of special drawing 606. Specifically, when intermediate data 302 is obtained from the drawing command in S1101 of FIG. 11, it is stored in the presence or absence of special drawing 606 whether or not there is special drawing such as transparency processing in the generated intermediate data 302. Then, in S1102, it is notified to the tile data generation unit 209 that the generation of the intermediate data 302 is completed and the generation of the tile data 303 is started. In S1103, the timeout time 604 is calculated from the number of edges 602, the intermediate data size 603, and the presence or absence of special drawing 606, and is stored in the timeout time 604.
[0037] The present invention can also be implemented by supplying a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and causing one or more processors in a computer of the system or apparatus to read and execute the program. Further, it can also be implemented by a circuit (for example, ASIC) that realizes one or more functions.
[0038] The above-described embodiments are merely specific examples for implementing the present invention, and the technical scope of the present invention should not be construed in a limited manner by these. That is, the present invention can be implemented in various forms without departing from its technical idea or its main features.
Claims
1. An image forming apparatus for forming raster image data from print data, comprising: PDL analysis means for analyzing PDL data included in the print data and generating a plurality of drawing commands; Intermediate data generation means for generating intermediate data by parallel processing the plurality of drawing commands in a plurality of threads per page; Tile data generation means for generating tile data from the intermediate data; Rendering means for generating raster image data from the tile data; Acquisition means for acquiring the number of drawing commands processed in each of the plurality of threads; Setting means for setting a longer timeout time for each of the plurality of threads as the number of drawing commands decreases and the resource size included in the drawing commands decreases. An image forming apparatus characterized by comprising:
2. The image forming apparatus according to claim 1, further comprising control means for ending the processing of the thread having the set timeout time among the plurality of threads or notifying the user when the set timeout time has elapsed.
3. An image forming method for forming raster image data from print data, comprising: A PDL analysis step in which PDL analysis means analyzes PDL data included in the print data and generates a plurality of drawing commands; An intermediate data generation step in which intermediate data generation means generates intermediate data by parallel processing the plurality of drawing commands in a plurality of threads per page; A tile data generation step in which tile data generation means generates tile data from the intermediate data; A rendering step in which rendering means generates raster image data from the tile data; An acquisition step in which acquisition means acquires the number of drawing commands processed in each of the plurality of threads; A setting step in which setting means sets a longer timeout time for each of the plurality of threads as the number of drawing commands decreases and the resource size included in the drawing commands decreases. An image forming method characterized by comprising:
4. A computer, An image forming apparatus for forming raster image data from print data, comprising: PDL analysis means for analyzing PDL data included in the print data and generating a plurality of drawing commands; Intermediate data generation means for generating intermediate data by parallel processing the plurality of drawing commands in a plurality of page-based threads; Tile data generation means for generating tile data from the intermediate data; Rendering means for generating raster image data from the tile data; Acquisition means for acquiring the number of drawing commands processed by each of the plurality of threads; Setting means for setting a longer timeout period for each of the plurality of threads as the number of drawing commands decreases and the resource size included in the drawing commands becomes smaller. A computer program for causing an image forming apparatus to function as described above.
Citation Information
Patent Citations
Control method for ink jet printer
JP2002273950A
Information processor, method of processing information, recording medium and program
JP2007219741A
Image processor, image processing program
JP2008140046A
Image forming apparatus, and control method and control program for the same
JP2011076043A
Image forming apparatus
JP2014016520A