Computer program and image processing device
Patent Information
- Application Number
- JP2021034855
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-03-04
- Publication Date
- 2025-03-12
- Estimated Expiration
- 2041-03-04
Smart Images

Figure 0007644407000001 
Figure 0007644407000002 
Figure 0007644407000003
Abstract
Description
[Technical field]
[0001] The present specification relates to a technique for generating print data and supplying it to a print execution unit. [Background technology]
[0002] The printer controller disclosed in Patent Document 1 executes JPEG processing, resizing processing, image quality correction processing, etc. to generate decompressed image data when a user presses a print button after selecting an image file and print settings (paper size, layout, etc.). The controller generates print data from the decompressed image data that can be printed by the printing mechanism, and controls the printing mechanism based on the print data. This realizes printing of the image. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2008-213406 A Summary of the Invention [Problem to be solved by the invention]
[0004] Since generating print data requires processing time, there are cases where the time from inputting a print instruction (eg, pressing a print button) to printing is long.
[0005] This specification discloses a technique that can prevent a long time from being taken from inputting a print instruction until printing is actually performed. [Means for solving the problem]
[0006] The technology disclosed in this specification can be realized in the following application examples.
[0007] [Application Example 1] A computer program that causes a computer to realize an instruction acquisition function that acquires a data selection instruction input by a user and acquires a print instruction corresponding to the data selection instruction, the print instruction being input by the user after the data selection instruction is input; a generation function that generates print data using target image data selected based on the data selection instruction; and a supply function that supplies the print data to a print execution unit, wherein the generation function starts generating the print data after the data selection instruction is acquired and before the print instruction is acquired, and the supply function does not start supplying the print data even if generation of the print data is completed before the print instruction is acquired, and starts supplying the print data after the print instruction is acquired.
[0008] According to the above configuration, the generation of print data is started after the data selection instruction is acquired but before the print instruction is acquired, and the supply of print data is started after the print instruction is acquired. As a result, it is possible to prevent the time from input of the print instruction to printing from being long. Furthermore, even if the generation process of the print data is completed before the print instruction is acquired, the supply of print data is not started, so it is possible to prevent an image not intended by the user from being printed. [Application example 2] The computer program according to Application Example 1, The generating function further generates image data for preview using the target image data selected based on the data selection instruction, The computer program further comprises: After the data selection instruction is acquired and before the print instruction is acquired, a display function is implemented in the computer to display a preview image on a display unit using the preview image data; The generating function is a computer program that executes generating the image data for preview with priority over generating the print data. [Application example 3] The computer program according to application example 1 or 2, the data selection instruction includes a first data selection instruction and a second data selection instruction; the print instruction includes a specific print instruction corresponding to the first data selection instruction and the second data selection instruction; the print data includes first print data generated using first target image data selected based on the first data selection instruction, and second print data generated using second target image data selected based on the second data selection instruction; The generating function is after the first data selection instruction is obtained and before the specific print instruction is obtained, generating the first print data is started; after the second data selection instruction is obtained and before the specific print instruction is obtained, starting generation of the second print data; A computer program product that, when the second data selection instruction is acquired before the generation of the first print data is completed, executes a process of generating the first print data and a process of generating the second print data in parallel. [Application example 4] The computer program according to Application Example 3, further comprising: A setting function is implemented in a computer to set an upper limit value of the number of the print data generation processes to be executed in parallel; A computer program, wherein the setting function sets the upper limit based on at least one of information regarding resources available for the generation process and information regarding the load of the generation process. [Application example 5] The computer program according to any one of Application Examples 1 to 4, the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is execute the first processing corresponding to a first portion of the target image data; After the first processing corresponding to the first partial data, the first processing corresponding to the second partial data of the target image data and the second processing corresponding to the first partial data are executed in parallel; execute the second process corresponding to the second partial data; The supply function is a computer program that, when the print instruction is obtained before the second process corresponding to the second partial data is completed, supplies the print data corresponding to the first partial data to the print execution unit in parallel with the second process corresponding to the second partial data. [Application Example 6] The computer program according to any one of Application Examples 1 to 4, the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is sequentially executing the print data generation process including the first process and the second process corresponding to a first portion of the target image data, and the first process and the second process corresponding to a second portion of the target image data; a supply function that supplies the print data to the print execution unit after the generation process of the print data is completed when the print instruction is obtained before the generation process of the print data is completed; [Application Example 7] The computer program according to any one of Application Examples 1 to 4, the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is sequentially executing the print data generation process including the first process and the second process corresponding to a first portion of the target image data, and the first process and the second process corresponding to a second portion of the target image data; When the print instruction is obtained before the generation process of the print data is completed, The generation function interrupts the generation process of the print data, the supply function supplies a part of the generated print data to the print execution unit after the generation process of the print data is interrupted; The generating function resumes a process of generating the print data after the supply of the part of the print data to the print execution unit is completed. [Application Example 8] The computer program according to any one of Application Examples 1 to 4, the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is sequentially executing the print data generation process including the first process and the second process corresponding to a first portion of the target image data, and the first process and the second process corresponding to a second portion of the target image data; When the print instruction is obtained before the generation process of the print data is completed, the supply function supplies a part of the generated print data to the print execution unit in parallel with the generation process of the print data.
[0009] The technology disclosed in this specification can be realized in various forms, for example, as an image processing method and an image processing device, a printing method and a printing device, a computer program for realizing the functions of those methods or devices, a recording medium on which that computer program is recorded (e.g., a non-temporary recording medium), etc. [Brief description of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram showing the configuration of a printing system 1000 according to an embodiment. [Diagram 2] FIG. 2 is a block diagram showing the functional configuration of a print application PA. [Diagram 3] FIG. 13 is a diagram showing an example of a UI screen. [Figure 4] 4 is a flowchart of a control process. [Diagram 5] 4 is a flowchart of a printing process. [Figure 6] 4 is a flowchart of a printing process. [Figure 7] 4 is a flowchart of the processing of processing units PS1 to PS5. [Figure 8] FIG. [Figure 9] FIG. [Figure 10] FIG. 4 is an explanatory diagram of a sequential method according to an embodiment. [Figure 11] FIG. 11 is a first explanatory diagram of a modified sequential method. [Figure 12] FIG. 2 is a second explanatory diagram of the sequential method of the modified example. [Figure 13] FIG. 11 is a third explanatory diagram of the modified sequential method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] A. Working Example: A-1: Configuration of the printing system 1000 Next, an embodiment of the present invention will be described based on an example embodiment. Fig. 1 is a block diagram showing the configuration of a printing system 1000 according to the example embodiment.
[0012] The printing system 1000 includes a printer 200 and a terminal device 300 as an image processing device of this embodiment. The printer 200 and the terminal device 300 are communicably connected via a network NW. In this embodiment, the network NW is a wireless network in which wireless communication conforming to the Wi-Fi standard is performed.
[0013] The terminal device 300 is a computer used by a user of the printer 200, such as a smartphone. The terminal device 300 includes a CPU 310 as a controller of the terminal device 300, a non-volatile storage device 320 such as a hard disk drive or SSD (Solid State Drive), a volatile storage device 330 such as a RAM, an operation unit 360 such as a button or a touch panel for acquiring operations by the user, a display unit 370 such as a liquid crystal display, and a communication unit 380. The communication unit 380 includes an interface (a wireless interface in this embodiment) for connecting to a network NW.
[0014] The volatile storage device 330 provides a buffer area 331 for the CPU 310. The non-volatile storage device 320 stores a plurality of computer programs, specifically, an application program AP and an OS program OP.
[0015] The application program AP is a program that causes the CPU 310 to realize a function for causing the printer 200 to print an image. Specific processing that is realized by the CPU 310 executing the application program AP will be described later. The application program AP is provided by the manufacturer of the printer 200, for example, in a form that is downloaded from a server.
[0016] The OS program OP is a program that causes the CPU 310 to realize functions as an operating system (OS). The OS program OP is a well-known program such as Android (registered trademark), iOS (registered trademark), Windows (registered trademark), and the like.
[0017] The printer 200 includes, for example, a print mechanism 250 as a print execution unit, a CPU 210 as a control device for the print mechanism 250, a non-volatile storage device 220 such as a hard disk or flash memory, a volatile storage device 230 such as a RAM, an operation unit 260 such as buttons or a touch panel for acquiring operations by a user, a display unit 270 such as a liquid crystal display, and a communication unit 280. The printer 200 is connected to an external device, for example, a user's terminal device (not shown) via the communication unit 280 so as to be able to communicate with the external device.
[0018] The volatile storage device 230 provides a buffer area 231 for temporarily storing various intermediate image data generated when the CPU 210 performs processing. The non-volatile storage device 220 stores a computer program PG. In this embodiment, the computer program PG is a control program for controlling the printer 200. The computer program PG may be provided by being stored in the non-volatile storage device 220 at the time of shipment of the printer 200. Alternatively, the computer program PG may be provided in a form downloaded from a server, or in a form stored on a DVD-ROM or the like.
[0019] The printing mechanism 250 is an inkjet printing mechanism that ejects multiple types of ink, for example, cyan (C), magenta (M), yellow (Y), and black (K), to print on a print medium such as paper. Alternatively, the printing mechanism 250 may be an electrophotographic printing mechanism that prints on a print medium using multiple types of toner.
[0020] A-2. Print application overview The function that the CPU 310 realizes by executing the above-mentioned application program AP is also called a "print application PA." The print application PA generates print data using original image data, and causes the printer 200 to execute printing using the print data. The original image data in this embodiment is, for example, user image data stored in the non-volatile storage device 320. This image data is saved as image files in various formats such as JPEG (Joint Photographic Experts Group), PDF (Portable Document Format), and XPS (XML Paper Specification).
[0021] Fig. 2 is a block diagram showing the functional configuration of the print application PA. The print application PA includes a user interface (UI) processing unit UP, a plurality of image processing units IP1 and IP2, and an image processing control unit CP that controls the plurality of image processing units. The number of image processing units (two in Fig. 2) is equal to or less than a predetermined upper limit value Nmax, which will be described later.
[0022] The UI processing unit UP displays a user interface (UI) screen on the display unit 270. Fig. 3 is a diagram showing an example of a UI screen. The UI screen in Fig. 3(A) is a main screen WI1. For example, the UI processing unit UP displays the main screen WI1 on the display unit 370 when a print application is started. The main screen WI1 includes a preview image display area PW and buttons BT1 to BT3, SB1, and SB2.
[0023] The preview image display area PW is an area where an image (also called a preview image PI) is displayed for the user to check a print image including an original image indicated by the original image data selected by the user. If the original image data is not selected by the user, no preview image is displayed in the preview image display area PW. The switching buttons SB1 and SB2 are buttons for switching the preview image PI displayed in the preview image display area PW among the multiple preview images PI corresponding to the multiple original image data when multiple original image data are selected.
[0024] When the image selection button BT1 is pressed on the main screen WI1, the UI processing unit UP displays the image selection screen WI2 of FIG. 3B on the display unit 270 instead of the main screen WI1. The image selection screen WI2 includes a list SL of a plurality of image files, a check box CB for selecting one or more image files from the list SL, and buttons BT4 and BT5. In this embodiment, as shown in FIG. 3B, when an image file including image data showing one image, for example, an image file in JPEG or PNG format, is selected, it is permitted to select a plurality of image files. In this case, each image data included in each image file is selected as the original image data.
[0025] Also, when an image file including multiple page image data, for example, an image file in PDF format, is selected, only one image file can be selected. Then, it is permitted to select multiple page image data from multiple page image data included in one image file. In this case, each selected page image data is selected as the original image data. Illustrations of the image file in PDF format and a UI screen for selecting page image data in the file are omitted.
[0026] When the decision button BT5 is pressed on the image selection screen WI2, the UI processing unit UP decides that the image data included in the image file currently selected on the image selection screen WI2 is the original image data, and displays the main screen WI1 on the display unit 270 instead of the image selection screen WI2. That is, the UI processing unit UP acquires a data selection instruction to select the original image data from the user via the image selection screen WI2. When the return button BT4 is pressed on the image selection screen WI2, the UI processing unit UP displays the main screen WI1 on the display unit 270 instead of the image selection screen WI2 without deciding the original image data.
[0027] When the print instruction button BT3 on the main screen WI1 is pressed after the data selection instruction is acquired, the UI processing unit UP acquires a print instruction corresponding to the data selection instruction. In the following, the print instruction corresponding to the data selection instruction means an instruction to cause the printer 200 to execute printing using a print job generated using the original image data selected by the data selection instruction. After the print instruction is acquired, the print job is transmitted to the printer 200.
[0028] After inputting a data selection command, but before acquiring a print command, the user can input a data change command by selecting another original image data on the image selection screen WI2 and pressing the confirm button BT5. A data change command is a command to change the original image data to be used for printing.
[0029] When the print setting button BT2 is pressed on the main screen WI1, the UI processing unit UP displays the print setting screen WI3 of FIG. 3C on the display unit 270 instead of the main screen WI1. The print setting screen WI3 includes input elements for inputting print settings for a plurality of setting items. In the example of FIG. 3C, pull-down menus PM1 to PM3 for inputting print settings for the print color mode, paper size, and print quality are illustrated. The color mode is set to one of a plurality of options (e.g., monochrome mode and color mode) via the pull-down menu PM1. The paper size is set to one of a plurality of options (e.g., A3, A4, A5) via the pull-down menu PM2. The print quality is set to one of a plurality of options (e.g., high image quality (low speed), low image quality (high speed)) via the pull-down menu PM3. Although not shown in the figure, the setting items set via the print setting screen WI3 include various other setting items, specifically, margin settings, number of copies to be printed, number of original images contained in one printed image (also called the number of layouts, for example, 1in1, 2in1, 4in1), double-sided / single-sided printing designation, tray settings (the paper feed tray in which the paper to be used is stored, and the output tray into which printed paper is discharged), etc.
[0030] When the decision button BT7 is pressed on the print setting screen WI3, the UI processing unit UP updates the current print settings to the print settings set on the print setting screen WI3 at that time, and displays the main screen WI1 on the display unit 270 instead of the print setting screen WI3. That is, the UI processing unit UP acquires a print setting change instruction from the user via the print setting screen WI3. When the return button BT6 is pressed on the print setting screen WI3, the UI processing unit UP displays the main screen WI1 on the display unit 270 instead of the print setting screen WI3 without updating the print settings. Note that the print settings are set to default settings until a print setting change instruction is acquired.
[0031] In the main screen WI1, the print instruction button BT3 is enabled when the original image data is selected. When the print instruction button BT3 is pressed, the UI processing unit UP acquires a print instruction corresponding to the data selection instruction that has been acquired at that time.
[0032] The image processing unit IP1 includes a management unit CL, a plurality of processing units PS1 to PS5, and a plurality of delivery lists IL1 to IL5. The plurality of processing units PS1 to PS4 cooperate to generate print data using original image data selected by a user. The supply unit PS5 supplies a print job including the generated print data to the printer 200 in response to a print instruction obtained from the user. As a result, the printer 200 can be caused to execute printing.
[0033] The rasterizing unit PS1 executes a rasterizing process using the original image data to generate bitmap data representing the original image. The bitmap data is, for example, RGB image data including RGB values for each pixel. The RGB values are, for example, color values in the RGB color system including three component values of red, green, and blue. The rasterizing unit PS1 outputs the generated bitmap data in a predetermined format, in this embodiment, PNG format. In this way, the input image data to the rasterizing unit PS1 is the original image data, and the output image data from the rasterizing unit PS1 is the original image data converted into PNG format (also called converted image data). If the original image data is in PNG format, the rasterizing process is not executed, and the rasterizing unit PS1 outputs the input original image data as is.
[0034] The layout unit PS2 is a process that executes layout processing using the converted image data to generate layout image data. The layout image data indicates a print image in which an original image is arranged according to the print settings. For example, a margin having a set width is added to the print image according to the margin setting. Also, when a setting to arrange two original images in one print image (so-called 2in1) is specified, the two original images are arranged in the print image. The layout unit PS2 outputs the layout image data in a predetermined format, in this embodiment, in PNG format. In this way, the input image data to the layout unit PS2 is the converted image data, and the output image data from the layout unit PS2 is the layout image data.
[0035] The preview unit PS3 is a process for performing a preview process using the layout image data to generate preview image data. The preview image data is image data showing the preview image PI. The preview image data is used to display the preview image PI in the preview image display area PW of the main screen WI1 described above. The preview process includes, for example, various processes for adjusting the preview image PI according to print settings. For example, when the color mode is set to the monochrome mode, it is preferable that the preview image PI is also a monochrome image, so the preview process includes a process for converting the layout image data into monochrome image data. The preview process may include, for example, a process for adjusting the number of pixels and the number of colors according to the characteristics of the display unit 270. In this way, the input image data to the preview unit PS3 is layout image data, and the output image data from the preview unit PS3 is preview image data.
[0036] When the preview unit PS3 generates the preview image data, the UI processing unit UP immediately uses the preview image data to display the preview image PI in the preview image display area PW of the main screen WI1. That is, the preview image PI is displayed on the main screen WI1 after a data selection instruction is acquired and before a print instruction is acquired.
[0037] The build unit PS4 executes build processing using layout image data to generate print data. The build processing converts the layout image data into a data format that can be interpreted by the printer 200. The print data is image data described in a data format that can be interpreted by the printer 200, for example, a page description language such as PostScript (registered trademark) or Printer Control Language (registered trademark). The build processing includes different processing depending on various print settings, for example, print resolution and whether double-sided printing or single-sided printing. In this way, the input image data to the build unit PS4 is layout image data, and the output image data from the build unit PS4 is print data.
[0038] The supply unit PS5 executes a supply process using the print data. The supply process is a process of generating a print job by adding a print command to the print data and supplying the print job to the printer 200. The print job is supplied by transmitting the print job to the printer 200 via the communication unit 380. The added print command includes commands for specifying setting items according to the print settings, specifically, the number of copies to be printed, the print quality, the tray in which the paper to be used is stored, the tray to which the printed paper is output, and the like. In this way, the input image data to the supply unit PS5 is the print data, and the output image data from the supply unit PS5 is the print job.
[0039] The delivery list ILn (n is an integer from 1 to 5) is a list in which the path of the input image data to the processing unit PSn is described. Hereinafter, describing the path of the image data in the list (delivery list ILn or management list OLn) is expressed as "image data is registered in the list." The image data registered in the delivery list IL1 is the original image data, and is registered by the management unit CL. The image data registered in the delivery list ILn (n is an integer from 2 to 5) is the output image data from the processing unit PS(n-1), and is registered by the processing unit PS(n-1). The processing unit PSn (n is an integer from 1 to 5) acquires the input image data registered in the delivery list ILn, and executes its own processing using the input image data. The processing unit PSn (n is an integer from 1 to 5) acquires the input image data one by one in the order in which they are registered in the delivery list ILn. That is, the delivery list ILn functions as a FIFO (first in first out) queue.
[0040] The management list OLn (n is an integer from 1 to 5) is a list associated with each processing unit PSn. The management list OLn is a list in which output image data generated by the corresponding processing unit PSn is registered. When each processing unit PSn performs a predetermined process using input image data to generate output image data, it registers the output image data in the management list OLn so that the correspondence with the input image data can be understood. For this reason, by referring to the management list OLn, it is possible to recognize whether output image data corresponding to specific input image data has already been generated. The details of the processing of each processing unit PSn using the delivery list ILn and the management list OLn will be described later.
[0041] A-3. Print application operation A-3-1. Control processing Fig. 4 is a flowchart of the control process. The control process in Fig. 4 is executed by the image processing control unit CP while the print application is started and one of the UI screens WI1 to WI2 is being displayed by the UI processing unit UP.
[0042] In S1, the image processing control unit CP sets an upper limit Nmax of print processes that can be processed in parallel based on the remaining memory Mr. Specifically, the image processing control unit CP acquires the currently available remaining memory Mr (the remaining amount of the buffer area 231 of the volatile storage device 230). The remaining memory Mr can be acquired, for example, from the OS. If the remaining memory Mr is less than a threshold THm, the image processing control unit CP sets the upper limit Nmax to 1, and if the remaining memory Mr is equal to or greater than the threshold THm, the image processing control unit CP sets the upper limit Nmax to 2. The maximum value that the upper limit Nmax can take is not limited to 2, and may be a value of 3 or more.
[0043] In S2, the image processing control unit CP judges whether or not there is a data selection instruction that has been acquired but not yet processed. For example, if there is a data selection instruction for which the corresponding print processing has not yet started among the data selection instructions that the UI processing unit UP has acquired via the image selection screen WI2, it is judged that there is a data selection instruction that has been acquired but not yet processed. If there is no data selection instruction that has been acquired but not yet processed (S2: NO), the image processing control unit CP waits until the UI processing unit UP acquires a new data selection instruction.
[0044] If there is a data selection instruction that has been acquired and not yet processed (S2: YES), in S3 the image processing control unit CP determines whether the number of print processes being executed has reached the upper limit value Nmax. A print process is a process of generating a print job and supplying the print job to the printer 200 (details will be described later). When a print instruction is acquired after a data selection instruction is acquired, the UI processing unit UP can acquire a new data selection instruction. If a new data selection instruction is acquired before the print process corresponding to the previously acquired data selection instruction is completed, two print processes are executed in parallel. In this way, in this embodiment, multiple print processes up to the upper limit value Nmax may be executed in parallel.
[0045] If the number of active printing processes has reached the upper limit Nmax (S3: YES), the image processing control unit CP waits until one of the active printing processes is completed and the number of active printing processes falls below the upper limit Nmax.
[0046] If the number of print processes being executed is less than the upper limit Nmax (S3: NO: YES), the image processing control unit CP starts the print process corresponding to the unprocessed data selection instruction. The image processing control unit CP notifies, for example, one of the image processing units IP1 and IP2 of the path of the original image data selected by the data selection instruction, and instructs the start of the print process using the original image data. After starting the print process, the image processing control unit CP returns the process to S2.
[0047] A-3-2. Printing process 5 and 6 are flowcharts of the printing process. The printing process is executed by the management unit CL (FIG. 2) of the image processing unit (IP1 or IP2) in response to a start instruction from the image processing control unit CP. The printing process corresponds to a data selection instruction and a print instruction. That is, the printing process generates print data and a print job including the print data using original image data selected by the corresponding data selection instruction, and supplies the print job to the printer 200 in response to the corresponding print instruction.
[0048] In S10 of Fig. 5, the management unit CL acquires OS version information indicating the version of the OS program OP, paper size information indicating the size of the paper to be used for printing, and image size information indicating the size (number of pixels) of the print image. For example, the OS version information is acquired from the OS. The paper size information is specified by the print settings. The size of the print image is calculated based on the paper size and print resolution specified by the print settings.
[0049] In S13, the management unit CL determines whether the execution method of the print data generation process (described later) is to be a sequential method or a parallel method based on the OS version information, the paper size information, and the image size information. The sequential method is a method in which the processes of the above-mentioned processing units PS1 to PS4 for generating print data are executed sequentially, not in parallel. The parallel method is a method in which at least some of the processes of the processing units PS1 to PS4 are executed in parallel.
[0050] In this embodiment, if all of the following conditions (1) to (3) are met, the execution method is determined to be the parallel method, and if at least one of the conditions (1) to (3) is not met, the execution method is determined to be the sequential method. Condition (1): The OS version is above the standard. Condition (2): The paper size is smaller than the standard (A3 in this embodiment). Condition (3): The image size is equal to or smaller than the standard (in this embodiment, the number of pixels equivalent to A4 size 600 dpi).
[0051] The OS version is used as the criterion because if the OS version is old, the stability and processing speed of parallel processing may not be sufficiently high. The paper size and image size are used as the criterion because if the paper size or image size is excessively large, the processing load of parallel processing may be excessively large. In these cases, the stability and processing speed of parallel processing may decrease, and it may not be possible to realize the advantage of adopting the parallel method, which is to increase the processing speed, so it is preferable to adopt the sequential method.
[0052] In S15, the management unit CL registers the original image data selected by the data selection instruction corresponding to the print process in the delivery list IL1 to the rasterization unit PS1. In S17, the management unit CL determines parameters according to the print settings for the processing units PS1 to PS4, and supplies the parameters to the processing units PS1 to PS4.
[0053] In S20, the management unit CL causes the processing units PS1 to PS4 to start processing. The processing of each of the processing units PS1 to PS4 will be described later, but the timing at which each of the processing units PS1 to PS4 actually executes the processing thereafter differs between the parallel method and the sequential method, which will be described later.
[0054] In S25, the management unit CL determines whether a printing condition change instruction has been acquired. The printing condition change instruction includes a data change instruction acquired via the image selection screen WI2 and a print setting change instruction acquired via the print setting screen WI3.
[0055] If a print condition change instruction is not acquired (S25: NO), the management unit CL advances the process to S70. If a print condition change instruction is acquired (S25: YES), the management unit CL advances the process to S30.
[0056] In S30, the management unit CL determines whether to change the execution method determined in S13 based on the printing condition change instruction. Specifically, if the paper size or image size has been changed by the printing condition change instruction, the management unit CL re-determines the execution method to be either the parallel method or the sequential method. If the re-determined execution method is different from the execution method determined in S13, the management unit CL determines to change the execution method. If the paper size or image size has not been changed and if the re-determined execution method is the same as the execution method determined in S13, the management unit CL determines not to change the execution method.
[0057] If the execution method is to be changed (S30: YES), in S35 the management unit CL changes the execution method of the print data generation process to the execution method determined again based on the print condition change instruction. If the execution method is not to be changed (S30: NO), the management unit CL skips S35.
[0058] 6, the management unit CL causes the processing units PS1 to PS4 to stop processing. In S45, the management unit CL clears the delivery lists IL1 to IL5 for the processing units PS1 to PS5. In S50, the management unit CL clears the management lists OL1 to OL5 for the processing units PS1 to PS5. As a result, no image data is registered in the delivery lists IL1 to IL5 and the management lists OL1 to OL5.
[0059] In S55, the management unit CL registers the original image data selected by the data selection instruction corresponding to the print process in a delivery list IL1 to the rasterize unit PS1. If a data change instruction has been acquired, the original image data after the change is registered. In S60, the management unit CL determines parameters according to the print settings for the processing units PS1 to PS4, and supplies the parameters to the processing units PS1 to PS4. If a print setting change instruction has been acquired, the parameters after the change of the print settings are supplied to the processing units PS1 to PS4.
[0060] In S65, the management unit CL causes the processing units PS1 to PS4 to resume the processing. The processing units PS1 to PS4 execute the processing of each processing unit, which will be described later, from the beginning again.
[0061] In S70, the management unit CL judges whether or not a print instruction has been acquired via the main screen WI1 described above. If a print instruction has not been acquired (S70: NO), the management unit CL returns the process to S25 in FIG. 5. If a print instruction has been acquired (S70: YES), in S75, the management unit CL causes the supply unit PS5 to start processing. From this point on, a print job including print data already generated by the processing units PS1 to PS4 is transmitted to the printer 200. After causing the supply unit PS5 to start processing, the management unit CL ends the print processing.
[0062] As can be seen from the above explanation, after a data selection instruction is acquired, input of a printing condition change instruction for printing based on the data selection instruction is permitted until the corresponding print instruction is acquired, but after the print instruction is acquired, input of a printing condition change instruction is not permitted. In other words, input of a print instruction determines the printing conditions for printing based on the corresponding data selection instruction.
[0063] A-3-3. Processing of processing units PS1 to PS5 The processing of the processing units PS1 to PS5 that operate under the control of the management unit CL will be described. FIG. 7 is a flowchart of the processing of the processing units PS1 to PS5. The processing units PS1 to PS5 have many common parts, so they will be described together while pointing out the different parts as appropriate. A transfer list in which input image data to a processing unit is registered is also called a transfer list on the upstream side of the processing unit, and a transfer list in which output image data from a processing unit is registered is also called a transfer list on the downstream side of the processing unit. For example, the transfer list on the upstream side of the rasterizing unit PS1 is the transfer list IL1, and the transfer list on the downstream side of the rasterizing unit PS1 is the transfer list IL2. There are transfer lists IL3 and IL5 on the upstream side of the preview unit PS3 and the supply unit PS5, but there are no transfer lists on the downstream side of the preview unit PS3 and the supply unit PS5.
[0064] 7 is started in response to a start instruction from the management unit CL. In S100, a processing unit (one of the processing units PS1 to PS5) determines whether input image data to itself is registered in the upstream delivery list.
[0065] FIG. 8 is an explanatory diagram of the processing of the processing unit. FIG. 8 illustrates the states of the delivery lists IL1 to IL4 and the management lists OL1 and OL2 at multiple points during processing. FIG. 8 illustrates an example in which three original image data D1_org, D2_org, and D3_org are selected. FIG. 8(A) illustrates the state at the start of processing. In the state of FIG. 8(A), three original image data D1_org, D2_org, and D3_org are registered in the delivery list IL1. The registration of the original image data D1_org, D2_org, and D3_org in the delivery list IL1 is performed by the management unit CL (S15 in FIG. 5, S55 in FIG. 6). No image data is registered in the other lists IL2 to IL4, OL1, and OL2. In this state, the rasterization unit PS1 determines that the input image data is registered in the upstream delivery list IL1. The layout unit PS2 determines that the input image data is not registered in the upstream delivery list IL2.
[0066] If the input image data to itself is registered in the upstream delivery list (S100: YES), the processing unit proceeds to S105. If the input image data to itself is not registered in the upstream delivery list (S100: NO), the processing unit waits until the input image data to itself is registered in the delivery list.
[0067] In S105, the processing unit sets the image data that is registered first among the input image data registered in the upstream delivery list IL1 as the image data of interest, and deletes the registration of the image data of interest from the upstream delivery list. For example, in the example of Fig. 8(A), the rasterizing unit PS1 sets the original image data D1_org as the image data of interest, and deletes the registration of the original image data D1_org from the delivery list IL1.
[0068] In S110, the processing unit judges whether the output image data corresponding to the image data of interest is registered in its own management list. The output image data corresponding to the image data of interest is image data generated by executing the processing to be executed by the processing unit on the image data of interest. In the example of Fig. 8(A), since the converted image data D1_conv corresponding to the original image data D1_org is not registered in the management list OL1, the rasterizing unit PS1 judges that the output image data corresponding to the image data of interest is not registered in its own management list OL1.
[0069] If the output image data corresponding to the target image data is not registered in the management list (S110: NO), the processing unit executes the processing to be executed by itself using the target image data in S115 to generate output image data. The generated output image data is stored and saved in an image file.
[0070] In S120, the processing unit registers the output image data generated in S115 in its own management list, that is, describes the path of the image file including the output image data in its own management list.
[0071] If the output image data corresponding to the target image data is registered in its own management list (S110: YES), S115 and S120 are skipped and the process proceeds to S125.
[0072] In S125, the processing unit registers the output image data generated in S115 in the downstream delivery list. After S125, the processing unit returns to S110.
[0073] When the processing unit is the layout unit PS2, there are a delivery list IL3 to the preview unit PS3 and a delivery list IL4 to the build unit PS4 as downstream delivery lists. In S125, the layout unit PS2 registers the output image data in both delivery lists IL3 and IL4. At that time, the layout unit PS2 registers the output image data in the delivery list IL3 to the preview unit PS3 before the delivery list IL4 to the build unit PS4. This is because it is considered that the user will input a print instruction after checking the preview image PI, and therefore the generation of image data for preview should be prioritized over the generation of print data.
[0074] When the processing section is the preview section PS3 or the supply section PS5, the downstream delivery list does not exist, and therefore S125 is not executed.
[0075] FIG. 8B shows a state after the rasterization process using the original image data D1_org is executed, that is, after the rasterization unit PS1 executes S105 to S125 of FIG. 7 with the original image data D1_org as the image data of interest. At this point, the registration of the original image data D1_org is deleted from the transfer list IL1 to the rasterization unit PS1 (S105). The converted image data D1_conv, which is the output image data corresponding to the original image data D1_org, is registered in the management list OL1 of the rasterization unit PS1 (S120). The converted image data D1_conv is also registered in the transfer list IL2 downstream of the rasterization unit PS1 (the transfer list IL2 upstream of the layout unit PS2). Since the converted image data D1_conv is registered in the transfer list IL2 upstream of the layout unit PS2, the layout unit PS2 is now in a state where it can execute S105 to S125 of FIG. 7 with the converted image data D1_conv as the image data of interest.
[0076] A-3-4. Execution method of print data generation process The parallel method and the sequential method, which are execution methods of the print data generation process, will be described. FIG. 9 is an explanatory diagram of the parallel method. FIG. 10 is an explanatory diagram of the sequential method. In FIG. 9 and FIG. 10, the vertical axis is time t. The numbers arranged along the axis of time t are identifiers given to the period during which the process is executed, and the identifier numbers are assigned in chronological order. In FIG. 9 and FIG. 10, the rectangles arranged below the names of the processing units PS1 to PS5 indicate the contents of the process executed by each of the processing units PS1 to PS5 and the period during which the process is executed. For example, in FIG. 9, a rectangle corresponding to the rasterizing unit PS1 is shown at a vertical position corresponding to the period 1, and "D1_conv" is written inside the rectangle. This means that in the period 1, the rasterizing process for generating the converted image data D1_conv is executed by the rasterizing unit PS1.
[0077] Here, the converted image data D1_conv, the layout image data D1_lay, the preview image data D1_pre, the print data D1_bld, and the print job D1_job are all image data generated using the original image data D1_org. Therefore, these image data D1_conv, D1_lay, D1_pre, D1_bld, and D1_job can all be said to be image data corresponding to the original image data D1_org. In addition, the converted image data D1_conv and the layout image data D1_lay are also called intermediate image data because they are all data temporarily generated in the process of generating the preview image data D1_pre and the print data D1_bld.
[0078] A-3-4-1.Parallel method In the parallel method, after the processing units PS1 to PS5 are started by the management unit CL in S20, S65, and S75 in Fig. 5, the processing units PS1 to PS5 operate asynchronously with each other. For example, the processing units PS1 to PS5 are executed as different threads in so-called multi-thread processing. For this reason, when input image data is registered in each of the processing units PS1 to PS5's delivery list, the processing units PS1 to PS5 immediately execute processing using the input image data. In the parallel method, at least some of the processing units PS1 to PS4 are executed in parallel for at least some of the periods.
[0079] When a data selection instruction is input to select the original image data D1_org, D2_org, and D3_org, the four processing units PS1 to PS4, excluding the supply unit PS5, start processing (S20 in FIG. 5). At the start of period 1 in FIG. 9, as shown in FIG. 8(A) above, input image data is registered only in the delivery list IL1, so only the rasterization unit PS1 can execute processing. For this reason, during period 1 in FIG. 9, only the rasterization process for generating the converted image data D1_conv is executed.
[0080] 9 ends, as shown in Fig. 8(B) above, the converted image data D1_conv is generated and registered in the delivery list IL2, so that the rasterization unit PS1 and the layout unit PS2 can perform processing in parallel during period 2. For example, during period 2 in Fig. 9, the rasterization process in which the rasterization unit PS1 generates the converted image data D2_conv and the layout process in which the layout unit PS2 generates the layout image data D1_lay are performed in parallel.
[0081] FIG. 8C shows the state at the end of the period 2 in FIG. 9, that is, the end of the rasterization process for generating the converted image data D2_conv and the layout process for generating the layout image data D1_lay. At this time, the original image data D3_org is registered in the transfer list IL1, the converted image data D2_conv is registered in the transfer list IL2, and the layout image data D1_lay is registered in the transfer lists IL3 and IL4. Therefore, at this time, the processing units PS1 to PS4 are in a state where they can perform processes in parallel. Therefore, during the period 3 in FIG. 9, the rasterization process for generating the converted image data D3_conv, the layout process for generating the layout image data D2_lay, the preview process for generating the preview image data D1_pre, and the build process for generating the print data D1_bld are executed in parallel.
[0082] Furthermore, in period 4 of Fig. 9, a layout process for generating layout image data D3_lay, a preview process for generating preview image data D2_pre, and a build process for generating print data D2_bld are executed in parallel. In period 5 of Fig. 9, a preview process for generating preview image data D3_pre and a build process for generating print data D3_bld are executed in parallel, and at the end of period 5, generation of print data D1_bld, D2_bld, and D3_bld corresponding to all of the original image data D1_org, D2_org, and D3_org is completed. Thus, in parallel processing, the number of periods required to generate print data using three original image data is five.
[0083] The supply process by the supply unit PS5 differs from the processes by the processing units PS1 to PS4 in that it starts when a print instruction is acquired (S75 in FIG. 6). The process by the supply unit PS5 is executed as a thread separate from the processes by the processing units PS1 to PS4 and asynchronously with the processes by the processing units PS1 to PS4. For this reason, the process by the supply unit PS5 can be executed in parallel with the processes by the processing units PS1 to PS4.
[0084] 9 shows an example in which a print instruction is obtained at the end of period 4 (start of period 5). At this point, two pieces of print data D1_bld and D2_bld have already been generated, so the supply unit PS5 can immediately start the supply process. In the example of FIG. 9, the supply process for supplying print jobs D1_job, D2_job, and D3_job is executed in periods 5, 6, and 7. For this reason, in period 5, the supply process for supplying print job D1_job is executed in parallel with the preview process for generating preview image data D3_pre and the build process for generating print data D3_bld.
[0085] A-3-4-2. Sequential method In the sequential method, after the processing of each of the processing units PS1 to PS5 is started by the management unit CL in S20, S65, and S75 in Fig. 5, each of the processing units PS1 to PS5 operates sequentially under the control of the management unit CL. For example, all of the processing units PS1 to PS5 are executed as one thread. For this reason, it is not permitted for the processing of one processing unit (e.g., PS1) to be executed in parallel with the processing of another processing unit (e.g., PS2 to PS5).
[0086] For example, at the end of period 1 in Fig. 10, the converted image data D1_conv is generated and registered in the delivery list IL2 as shown in Fig. 8(B) described above, so that the layout unit PS2 is ready to start processing in period 2. Even in this state, in the sequential method of this embodiment, the layout unit PS2 does not start layout processing until the rasterize unit PS1 completes the generation of all the converted image data D1_conv, D2_conv, and D3_conv. The layout unit PS2 starts layout processing after all the converted image data D1_conv, D2_conv, and D3_conv have been generated.
[0087] Fig. 8(D) shows the state at the end of period 3 in Fig. 10, that is, when all converted image data D1_conv, D2_conv, and D3_conv have been generated. In the example of Fig. 8(D), it can be seen that the converted image data D1_conv, D2_conv, and D3_conv have been generated and registered in the transfer list IL2, but the layout section PS2 has not executed the layout process. In the sequential method, the layout process for generating the layout image data D1_lay, D2_lay, and D3_lay is executed sequentially in periods 4, 5, and 6 (Fig. 10).
[0088] After all the layout image data D1_lay, D2_lay, and D3_lay are generated, both the preview process and the build process can be executed, but in this embodiment, the preview process is prioritized over the build process. As described above, it is considered that the user often inputs a print instruction after checking the preview image PI, so it is preferable to display the preview image PI promptly. For this reason, as shown in FIG. 10, in periods 7, 8, and 9 after all the layout image data D1_lay, D2_lay, and D3_lay are generated, the preview process for generating the preview image data D1_pre, D2_pre, and D3_pre is sequentially executed. In periods 10, 11, and 12 after all the preview image data D1_pre, D2_pre, and D3_pre are generated, the build process for generating the print data D1_bld, D2_bld, and D3_bld is sequentially executed.
[0089] In this embodiment, the supply process by the supply unit PS5 is started after all the print data is generated and after the print instruction is acquired. For example, even if the print instruction is acquired and an instruction to start the supply process is given from the management unit CL (S75 in FIG. 6), if all the print data has not been generated at that point, the supply unit PS5 starts the supply process after all the print data is generated.
[0090] 10 shows an example in which a print instruction is obtained at the end of period 7 (at the start of period 8). At this point, the supply process is not started, and the supply process for supplying the print jobs D1_job, D2_job, and D3_job is executed in periods 13, 14, and 15 after all the print data D1_bld, D2_bld, and D3_bld are generated.
[0091] The parallel method can generate and supply print jobs faster than the sequential method, for example, when available resources (e.g., memory capacity) are sufficiently large relative to the processing load (e.g., the size of image data to be processed) and parallel processing can be executed efficiently. The sequential method can stably generate and supply print jobs even when available resources are insufficient relative to the processing load and parallel processing cannot be executed efficiently.
[0092] If a print condition change instruction is obtained after a data selection instruction is obtained and before a print instruction is obtained (S25: YES in FIG. 5), the processing of the processing units PS1 to PS4 is stopped (S40 in FIG. 6), the delivery lists IL1 to IL5 and the management lists OL1 to OL5 are cleared (S45, S55 in FIG. 5), and the processing units PS1 to PS4 generate print data again in response to the print condition change instruction (S60, 65 in FIG. 5). In this case, the print data generation process shown in FIG. 9 and FIG. 10 is restarted from the beginning.
[0093] According to the embodiment described above, the UI processing unit UP acquires a data selection instruction input by a user, and acquires a print instruction corresponding to the data selection instruction and input by the user after the input of the data selection instruction (FIG. 3B). The processing units PS1, PS2, and PS4 generate print data D1_bld, D2_bld, and D3_bld using the original image data D1_org, D2_org, and D3_org selected based on the data selection instruction (S15 to S20 in FIG. 5, and FIGS. 7, 9, and 10). The supply unit PS5 supplies the print data D1_bld, D2_bld, and D3_bld to the printer 200 (S75 in FIG. 6, and FIGS. 7, 9, and 10). The processing units PS1 to PS4 start generating the print data D1_bld, D2_bld, and D3_bld after the data selection instruction is acquired and before the print instruction is acquired (S2 to S4 in FIG. 4, and FIGS. 9 and 10). Even if the generation of the print data D1_bld, D2_bld, and D3_bld is completed before the print instruction is acquired, the supply unit PS5 does not start supplying the print data D1_bld, D2_bld, and D3_bld, but starts supplying the print data D1_bld, D2_bld, and D3_bld after the print instruction is acquired (S70, S75 in FIG. 6, FIG. 9, FIG. 10). As a result, it is possible to prevent the time from input of the print instruction to printing from becoming long. For example, it is possible to proceed with the generation process of the print data D1_bld, D2_bld, and D3_bld while the user is checking the display of the preview image PI. Therefore, it is possible to supply the print data D1_bld, D2_bld, and D3_bld to the printer 200 more quickly than when the generation of the print data is started after the print instruction is acquired, and therefore it is possible to cause the printer 200 to start printing quickly. Furthermore, even if the generation process of the print data D1_bld, D2_bld, and D3_bld is completed before a print instruction is obtained, the supply of the print data D1_bld, D2_bld, and D3_bld is not started, so that it is possible to prevent an image not intended by the user from being printed.
[0094] Furthermore, according to this embodiment, the processing units PS1 to PS3 generate preview image data D1_pre, D2_pre, and D3_pre using the original image data D1_org, D2_org, and D3_org selected based on the data selection instruction (FIGS. 9 and 10). After the data selection instruction is acquired and before the print instruction is acquired, the UI processing unit UP displays the preview image PI on the display unit 370 using the preview image data D1_pre, D2_pre, and D3_pre (FIG. 3(A)). The generation of the preview image data D1_pre, D2_pre, and D3_pre is executed with priority over the generation of the print data D1_bld, D2_bld, and D3_bld. For example, in the sequential method, as shown in FIG. 10, the generation of the preview image data D1_pre, D2_pre, and D3_pre is executed before the generation of the print data D1_bld, D2_bld, and D3_bld. Furthermore, the layout unit PS2 registers the layout image data D1_pre, D2_pre, and D3_pre in the delivery list IL3 of the preview unit PS3 before registering the layout image data in the delivery list IL4 of the build unit PS4 (FIG. 7). As a result, even in the parallel method, the generation of image data for preview is executed with priority over the generation of print data. As a result, the preview image PI can be displayed promptly after a data selection instruction is acquired and before a print instruction is acquired. Therefore, for example, the user can look at the preview image PI and promptly check the print image in advance before inputting a print instruction.
[0095] Furthermore, in this embodiment, a plurality of image processors IP1 and IP2 not exceeding the upper limit Nmax can execute the print process of FIG. 5 in parallel. That is, a print process for making the printer 200 execute printing in response to a first data selection instruction and a first print instruction corresponding to the first data selection instruction, and a print process for making the printer 200 execute printing in response to a second data selection instruction and a second print instruction corresponding to the second data selection instruction can be executed in parallel (S2 to S4 in FIG. 4). Specifically, the image processor IP1 starts generating the first print data after the first data selection instruction is acquired and before the first print instruction is acquired. The image processor IP2 starts generating the second print data after the second data selection instruction is acquired and before the second print instruction is acquired. When the second data selection instruction is acquired before the generation of the first print data is completed, the generation process of the first print data and the generation process of the second print data are executed in parallel. As a result, it is possible to prevent the time from being long after the second print instruction is input until printing is performed.
[0096] Furthermore, in this embodiment, the management unit CL sets an upper limit Nmax for the number of print data generation processes executed in parallel (S1 in FIG. 4). The management unit CL sets the upper limit Nmax based on information on resources available for the generation processes, specifically, the remaining memory Mr. As a result, the upper limit Nmax can be set appropriately, so that by executing multiple print processes in parallel, the total time required for the multiple print processes can be shortened and problems caused by executing too many print processes in parallel (for example, the stop of print processes) can be prevented.
[0097] Here, the three original image data D1_org, D2_org, and D3_org are all regarded as target image data, one original image data D1_org of the target image data is regarded as first partial data, and the remaining two original image data D2_org and D3_org are regarded as second partial data. The print data generation process of this embodiment includes a layout process for generating layout image data D1_lay, D2_lay, and D3_lay corresponding to the target image data, and a build process for generating print data D1_bld, D2_bld, and D3_bld using the layout image data D1_lay, D2_lay, and D3_lay.
[0098] In the parallel method of FIG. 9, the layout process corresponding to the first partial data is executed (period 2 in FIG. 9), and then the layout process corresponding to the second partial data is executed (periods 3 and 4 in FIG. 9). The build process corresponding to the first partial data (period 3 in FIG. 9) is executed in parallel with the layout process corresponding to the second partial data (periods 3 and 4 in FIG. 9). When a print instruction is acquired before the build process corresponding to the second partial data (periods 4 and 5 in FIG. 9) is completed, the supply unit PS5 executes the supply of the print job D1_job including the print data D1_bld corresponding to the first partial data (period 5 in FIG. 9) in parallel with the build process for the second partial data (periods 4 and 5 in FIG. 9). As a result, the generation of print data is executed in parallel for each partial data, and the generation and supply of print data are executed in parallel for each partial data according to the print instruction. As a result, the generation and supply of print data can be executed efficiently.
[0099] In the sequential method of FIG. 10, the print data generation process including the layout process and build process corresponding to the first partial data and the layout process and build process corresponding to the second partial data is executed sequentially (periods 1 to 12 in FIG. 10). If a print instruction is acquired before the print data generation process is completed, the supply unit PS5 executes the supply of print jobs D1_job, D2_job, and D3_job including the print data to the printer 200 after the print data generation process is completed (periods 13 to 15 in FIG. 10). As a result, the print data generation process is executed sequentially for each partial data, and the supply of the print job including the print data is executed after the generation of the print data is completed, so that the processing load for generating and supplying the print data can be prevented from becoming excessively large.
[0100] Furthermore, if a print condition change instruction is acquired after the data selection instruction is acquired and before the print instruction is acquired (S25 in FIG. 5: YES), the generation of the print data D1_bld, D2_bld, and D3_bld is redone in accordance with the print condition change instruction (S40-5-S65 in FIG. 6). As a result, after the data selection instruction is acquired and before the print instruction is acquired, the user is permitted to change the print conditions, and even if the user changes the print conditions, appropriate print data can be generated according to the print conditions.
[0101] B. Modifications (1) FIG. 11 is a first explanatory diagram of the sequential method of the modified example. In the modified example of FIG. 11, like the sequential method of the embodiment of FIG. 10, the processes of the processing units PS1 to PS4 that generate print data are not allowed to be executed in parallel. In the modified example of FIG. 11, unlike the sequential method of the embodiment of FIG. 10, the process of the supply unit PS5 is allowed to be executed in parallel with the processes of the processing units PS1 to PS4. The supply process of the supply unit PS5 is to generate a print job by adding a print command and transmit the print job to the printer 200, and the processing load is lower than that of the processing units PS1 to PS4 that may include relatively complicated image processing. For this reason, even if the supply process of the supply unit PS5 is executed in parallel with the processes of the processing units PS1 to PS4, the overall processing load is unlikely to be excessively high.
[0102] For example, Fig. 11 illustrates a case where a print instruction is obtained before the generation of all print data D1_bld, D2_bld, and D3_bld is completed. In this case, after the print data D1_bld corresponding to the original image data D1_org is generated, the supply unit PS5 executes a supply process of the print job D1_job including the print data D1_bld in parallel with the build process of generating the print data D2_bld (period 11 in Fig. 11). Then, after the print data D2_bld corresponding to the original image data D2_org is generated, the supply process of the print job D2_job including the print data D2_bld is executed in parallel with the build process of generating the print data D3_bld (period 12 in Fig. 11).
[0103] According to the present modified example described above, when a print instruction is obtained before the print data generation process is completed, a portion of the generated print data is supplied to the printer 200 in parallel with the print data generation process, so that the supply of the print job can be started more quickly than in the sequential process of the embodiment. As a result, the printer 200 can start printing quickly.
[0104] (2) Fig. 12 is a second explanatory diagram of the sequential method of the modified example. In the modified example of Fig. 12, similar to the modified example of Fig. 11, the processes of the processing units PS1 to PS4 that generate print data are not allowed to be executed in parallel, but the process of the supply unit PS5 is allowed to be executed in parallel with the processes of the processing units PS1 to PS4.
[0105] In the modified example of Fig. 12, the processing order of processing units PS1 to PS4 is different from that of the modified example of Fig. 11 and the sequential method of the embodiment of Fig. 10. In the modified example of Fig. 12, after the processing of processing units PS1 to PS4 corresponding to the original image data D1_org is executed, the processing of processing units PS1 to PS4 corresponding to the original image data D2_org is executed. Then, after the processing of processing units PS1 to PS4 corresponding to the original image data D2_org is executed, the processing of processing units PS1 to PS4 corresponding to the original image data D3_org is executed.
[0106] That is, as shown in Fig. 12, a rasterization process (period 1 in Fig. 12) for generating converted image data D1_conv, a layout process (period 2 in Fig. 12) for generating layout image data D1_lay, a preview process (period 3 in Fig. 12) for generating preview image data D1_pre, and a build process (period 4 in Fig. 12) for generating print data D1_bld are executed. Next, a rasterization process (period 5 in Fig. 12) for generating converted image data D2_conv, a layout process (period 6 in Fig. 12) for generating layout image data D2_lay, a preview process (period 7 in Fig. 12) for generating preview image data D2_pre, and a build process (period 8 in Fig. 12) for generating print data D2_bld are executed. Finally, a rasterization process (period 9 in FIG. 12) is executed to generate converted image data D3_conv, a layout process (period 10 in FIG. 12) is executed to generate layout image data D3_lay, a preview process (period 11 in FIG. 12) is executed to generate preview image data D3_pre, and a build process (period 12 in FIG. 12) is executed to generate print data D3_bld.
[0107] FIG. 12 illustrates a case where a print instruction is acquired after the processing of the processing units PS1 to PS4 corresponding to the original image data D1_org and D2_org is completed and before the processing of the processing units PS1 to PS4 corresponding to the original image data D3_org is completed. In this case, the supply unit PS5 executes the supply process of the print jobs D1_job and D2_job including the print data D1_bld and D2_bld in parallel with the processing of the processing units PS1 to PS4 corresponding to the original image data D3_org. In the example of FIG. 12, the supply process of the print job D1_job is executed in parallel with the layout process for generating the layout image data D3_lay (period 10 in FIG. 12), and the supply process of the print job D2_job is executed in parallel with the preview process for generating the preview image data D3_pre (period 11 in FIG. 12). Then, when the generation of the print data D3_bld corresponding to the original image data D3_org is completed, the supply unit PS5 executes the supply process of the print job D3_job including the print data D3_bld (period 13 in FIG. 12).
[0108] According to the modification of FIG. 12, compared with the sequential method of the embodiment and the modification of FIG. 11, the generation of the print data D1_bld is completed earlier, so that the print job D1_job including the print data D1_bld can be quickly supplied to the printer 200 in response to the print instruction. As a result, the printer 200 can quickly start printing based on the print job D1_job. The terminal device 300 can proceed with the generation process of the remaining print data D1_bld while the printer 200 is executing printing based on the print job D1_job. As a result, the time required from when the print instruction is acquired to when the printer 200 completes printing can be shortened overall.
[0109] (3) Fig. 13 is a third explanatory diagram of the sequential method of the modified example. In the modified example of Fig. 13, similar to the sequential method of the embodiment of Fig. 10, the processes of the processing units PS1 to PS4 that generate print data are not allowed to be executed in parallel, and the process of the supply unit PS5 is also not allowed to be executed in parallel with the processes of the processing units PS1 to PS4. In the modified example of Fig. 13, similar to the sequential method of the modified example of Fig. 12, after the processes of the processing units PS1 to PS4 corresponding to the original image data D1_org are executed, the processes of the processing units PS1 to PS4 corresponding to the original image data D2_org are executed. Then, after the processes of the processing units PS1 to PS4 corresponding to the original image data D2_org are executed, the processes of the processing units PS1 to PS4 corresponding to the original image data D3_org are executed.
[0110] Fig. 13 illustrates a case where a print instruction is acquired after the processing of the processing units PS1 to PS4 corresponding to the original image data D1_org and D2_org is completed, and before the processing of the processing units PS1 to PS4 corresponding to the original image data D3_org is completed. In this case, unlike the sequential method of the modified example of Fig. 12, the processing units PS1 to PS4 suspend the processing corresponding to the original image data D3_org (Fig. 13). Then, the supply unit PS5 executes the supply processing of the print jobs D1_job and D2_job including the print data D1_bld and D2_bld that have been generated at this point (periods 10 and 11 in Fig. 13). When the supply processing of the print jobs D1_job and D2_job is completed, the processing units PS1 to PS4 resume the processing corresponding to the original image data D3_org (Fig. 13). When the generation of the print data D3_bld corresponding to the original image data D3_org is completed, the supply unit PS5 executes a supply process of the print job D3_job including the print data D3_bld (period 15 in FIG. 13).
[0111] 13, when a print instruction is acquired before the print data generation process is completed, the print data generation process is interrupted, and after the print data generation process is interrupted, a portion of the generated print data is supplied to the printer 200, and after the supply of the portion of the print data is completed, the print data generation process is resumed. As a result, it is possible to prevent the processing load for generating and supplying the print data from becoming excessively large, and it is possible to promptly supply the print job D1_job including the print data D1_bld to the printer 200. As a result, like the modification of FIG. 12, the printer 200 can promptly start printing based on the print job D1_job.
[0112] (4) In the printing process of the above embodiment, the sequential method and the parallel method are selectively used, but this is not limiting. The sequential method may always be used, or the parallel method may always be used.
[0113] (5) In the printing process of the above embodiment, the configuration of the processing units PS1 to PS5 that generate the print data is an example and may be changed as appropriate. For example, the preview unit PS3 and the preview process may be omitted. In this case, for example, the display of the preview image PI may be omitted, or the preview image PI may be displayed using the layout image data generated by the layout unit PS2.
[0114] The rasterization process and the layout process may be executed by a single processing unit. Of the supply processes executed by the supply unit PS5, the process of adding a print command to the print data to generate a print job may be executed by the build unit PS4.
[0115] The print data generated by the build unit PS4 is image data described in a specific page description language. Without being limited to this, the build unit PS4 may execute color conversion processing and halftone processing on the layout image data to generate dot data indicating the dot formation state for each pixel and for each color material (for example, CMYK ink) used in printing as print data. The dot formation state may be, for example, two types of states, "no dot" and "dot", or four types of states, "no dot", "small", "medium", and "large".
[0116] In the above embodiment, the target image data includes a plurality of original image data D1_org, D2_org, and D3_org, and the processing of the processing units PS1 to PS4 is performed for each of the original image data. Alternatively, for example, the processing of the processing units PS1 to PS5 may be performed for each portion of data included in one piece of original image data. For example, an inkjet printer performs printing by repeating partial printing (also called a pass) to form dots a plurality of times while performing a main scan of the print head, and the processing of the processing units PS1 to PS5 may be performed for each piece of data for one partial print.
[0117] (6) In the above embodiment, the management unit CL determines the upper limit Nmax of print processes that can be processed in parallel based on the remaining memory Mr (S1 in FIG. 4). Instead of the remaining memory Mr, or together with the remaining memory Mr, the upper limit Nmax may be determined based on other information on resources available for the generation process. For example, the information on resources other than the remaining memory Mr may be information on the load of the CPU 310, such as the number of applications running in parallel with the print application or the usage rate of the CPU 310. Also, instead of the information on available resources, or together with the information on available resources, the upper limit Nmax may be determined based on information on the load of the generation process of the print data. The information on the load of the generation process of the print data may be, for example, information indicating the maximum size of paper that can be used by the printer 200 or the maximum print resolution at which the printer 200 can print.
[0118] (7) The upper limit Nmax of print processes that can be processed in parallel may always be the same fixed value (for example, 1, 2, 3). The upper limit Nmax of print processes that can be processed in parallel may also be dynamically changed depending on the usage rate of the CPU 310 or memory usage by other applications, even during execution of the print data generation process. For example, when the print application receives a warning from the OS that the remaining available memory Mr is below a reference value, the upper limit Nmax may immediately be set to 1.
[0119] (8) In each of the above embodiments, the device that executes the print processing in Figs. 3 to 7 is the CPU 310 of the terminal device 300. Alternatively, the device that executes the processing in Figs. 3 to 7 may be the CPU 210 of the printer 200. In this case, the CPU 210 of the printer 200 supplies a print job to the print mechanism 250 as a print execution unit, causing the print mechanism 250 to execute printing. Alternatively, the device that executes the processing in Figs. 3 to 7 may be, for example, a server that acquires image data from the terminal device 300 and generates a print job using the image data. Such a server may be a plurality of computers that can communicate with each other via a network. In addition, the terminal device 300 may cause the server to execute part of the processing in Figs. 3 to 7, for example, rasterization processing for a specific type of image data.
[0120] (9) In each of the above embodiments, a part of the configuration realized by hardware may be replaced by software, and conversely, a part or all of the configuration realized by software may be replaced by hardware. For example, a part of the processing of the processing units PS1 to PS4 may be realized by a dedicated hardware circuit (e.g., ASIC) that operates according to instructions from the CPU 310.
[0121] The present invention has been described above based on examples and modifications, but the above-described embodiments of the invention are intended to facilitate understanding of the present invention and are not intended to limit the present invention. The present invention may be modified or improved without departing from the spirit and scope of the claims, and equivalents thereof are included in the present invention. [Explanation of symbols]
[0122] 1000...printing system, 200...printer, 210...CPU, 220...non-volatile storage device, 230...volatile storage device, 231...buffer area, 250...printing mechanism, 260...operation unit, 270...display unit, 280...communication unit, 300...terminal device, 310...CPU, 320...non-volatile storage device, 330...volatile storage device, 331...buffer area, 360...operation unit, 370...display unit, 380...communication unit, AP...application program, CL...management unit, CP...image processing control unit, IL1 to IL5...delivery list, IP1, IP2...image processing unit, OL1 to OL5...management list, OP...OS program, PA...printing application, PG...computer program, PS1...rasterization unit, PS2...layout unit, PS3...preview unit, PS4...build unit, PS5...supply unit, UP...UI processing unit, WI1...main screen, WI2...image selection screen, WI3...print setting screen
Claims
1. A computer program comprising: an instruction acquisition function that acquires a data selection instruction input by a user, and acquires a print instruction corresponding to the data selection instruction, the print instruction being input by the user after the input of the data selection instruction; a generating function that executes a generating process that generates print data using target image data selected based on the data selection instruction, the generating process including a first process that generates intermediate image data showing a print image in which a target image shown by the target image data is arranged, and a second process that uses the intermediate image data to generate the print data having a data format that can be interpreted by a print execution unit; a determining function for determining an execution method of the generation process to be one of a parallel method for executing at least a part of the plurality of processes in parallel and a sequential method for executing the plurality of processes in sequence; A supply function of supplying the print data to a print execution unit; This is realized on a computer. the determination function determines the execution method to be the parallel method when a plurality of conditions are satisfied, including that the size of the printing medium on which the print image is to be printed is smaller than a reference size, and that the number of pixels of the print image is equal to or smaller than a reference number, and determines the execution method to be the sequential method when at least one of the plurality of conditions is not satisfied; the generation function starts generating the print data after the data selection instruction is acquired and before the print instruction is acquired; The supply function includes: Even if the generation of the print data is completed before the print instruction is acquired, the supply of the print data is not started, a computer program product that starts supplying the print data after the print instruction is obtained;
2. 2. A computer program according to claim 1, comprising: The generating function further generates image data for preview using the target image data selected based on the data selection instruction, The computer program further comprises: After the data selection instruction is acquired and before the print instruction is acquired, a display function is implemented in the computer to display a preview image on a display unit using the preview image data; The generating function is a computer program that executes generating the image data for preview with priority over generating the print data.
3. A computer program according to claim 1 or 2, the data selection instruction includes a first data selection instruction and a second data selection instruction; the print instruction includes a specific print instruction corresponding to the first data selection instruction and the second data selection instruction; the print data includes first print data generated using first target image data selected based on the first data selection instruction, and second print data generated using second target image data selected based on the second data selection instruction; The generating function is after the first data selection instruction is obtained and before the specific print instruction is obtained, generating the first print data is started; after the second data selection instruction is obtained and before the specific print instruction is obtained, generating the second print data is started; a second data selection instruction is acquired before generation of the first print data is completed, the first print data generation process and the second print data generation process are executed in parallel.
4. 4. The computer program of claim 3, further comprising: A setting function is implemented in a computer to set an upper limit value of the number of the print data generation processes to be executed in parallel; A computer program, wherein the setting function sets the upper limit value based on at least one of information regarding resources available for the generation process and information regarding the load of the generation process.
5. A computer program according to any one of claims 1 to 4, the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is execute the first processing corresponding to a first portion of the target image data; After the first processing corresponding to the first partial data, the first processing corresponding to the second partial data of the target image data and the second processing corresponding to the first partial data are executed in parallel; execute the second process corresponding to the second partial data; The supply function is a computer program that, when the print instruction is obtained before the second process corresponding to the second partial data is completed, supplies the print data corresponding to the first partial data to the print execution unit in parallel with the second process corresponding to the second partial data.
6. A computer program according to any one of claims 1 to 4, the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is sequentially executing the print data generation process including the first process and the second process corresponding to a first portion of the target image data, and the first process and the second process corresponding to a second portion of the target image data; a supply function that supplies the print data to the print execution unit after the generation process of the print data is completed when the print instruction is obtained before the generation process of the print data is completed;
7. A computer program comprising: an instruction acquisition function that acquires a data selection instruction input by a user, and acquires a print instruction corresponding to the data selection instruction, the print instruction being input by the user after the input of the data selection instruction; a generation function for generating print data using the target image data selected based on the data selection instruction; A supply function of supplying the print data to a print execution unit; This is realized on a computer. the generation function starts generating the print data after the data selection instruction is acquired and before the print instruction is acquired; The supply function includes: Even if the generation of the print data is completed before the print instruction is acquired, the supply of the print data is not started, After the print instruction is acquired, the supply of the print data is started; the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is sequentially executing the print data generation process including the first process and the second process corresponding to a first portion of the target image data, and the first process and the second process corresponding to a second portion of the target image data; When the print instruction is obtained before the generation process of the print data is completed, The generation function interrupts the generation process of the print data, the supply function supplies a part of the generated print data to the print execution unit after the generation process of the print data is interrupted; The generating function resumes a process of generating the print data after the supply of the part of the print data to the print execution unit is completed.
8. A computer program according to any one of claims 1 to 4, the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generating function is sequentially executing the print data generation process including the first process and the second process corresponding to a first portion of the target image data, and the first process and the second process corresponding to a second portion of the target image data; When the print instruction is obtained before the generation process of the print data is completed, the supply function supplies a part of the generated print data to the print execution unit in parallel with the generation process of the print data.
9. An image processing device, an instruction acquisition unit that acquires a data selection instruction input by a user, and acquires a print instruction corresponding to the data selection instruction, the print instruction being input by the user after the input of the data selection instruction; a generating unit that executes a generating process to generate print data using target image data selected based on the data selection instruction, the generating process including a first process to generate intermediate image data showing a print image in which a target image shown by the target image data is arranged, and a second process to generate the print data having a data format that can be interpreted by a print execution unit using the intermediate image data; a determination unit that determines an execution method of the generation process to be one of a parallel method in which at least a part of the plurality of processes is executed in parallel and a sequential method in which the plurality of processes is executed sequentially; a supply unit that supplies the print data to a print execution unit; Equipped with the determination unit determines the execution method to be the parallel method when a plurality of conditions are satisfied, including that the size of the printing medium on which the print image is to be printed is smaller than a reference size, and that the number of pixels of the print image is equal to or smaller than a reference number, and determines the execution method to be the sequential method when at least one of the plurality of conditions is not satisfied; the generation unit starts generating the print data after the data selection instruction is acquired and before the print instruction is acquired; The supply unit includes: Even if the generation of the print data is completed before the print instruction is acquired, the supply of the print data is not started, The image processing apparatus starts supplying the print data after the print instruction is acquired.
10. An image processing device, an instruction acquisition unit that acquires a data selection instruction input by a user, and acquires a print instruction corresponding to the data selection instruction, the print instruction being input by the user after the input of the data selection instruction; a generation unit that generates print data using the target image data selected based on the data selection instruction; a supply unit that supplies the print data to a print execution unit; Equipped with the generation unit starts generating the print data after the data selection instruction is acquired and before the print instruction is acquired; The supply unit includes: Even if the generation of the print data is completed before the print instruction is acquired, the supply of the print data is not started, After the print instruction is acquired, the supply of the print data is started; the print data generation process includes a first process of generating intermediate image data in a first data format corresponding to the target image data, and a second process of generating the print data in a second data format using the intermediate image data, the second data format being a data format that can be interpreted by the print execution unit; The generation unit is sequentially executing the print data generation process including the first process and the second process corresponding to a first portion of the target image data, and the first process and the second process corresponding to a second portion of the target image data; When the print instruction is obtained before the generation process of the print data is completed, The generation unit interrupts the generation process of the print data, the supply unit supplies the generated part of the print data to the print execution unit after the generation process of the print data is interrupted; The generation unit restarts a process of generating the print data after the supply of the part of the print data to the print execution unit is completed.
Citation Information
Patent Citations
Printing processor, printing processing method, and its program
JP2008213406A
Printing control apparatus, print control method, and computer program
JP2010033284A
Image forming system, and preview program
JP2014222484A
Image processing apparatus, and control method and control program thereof
JP2016196111A
Information processing apparatus and method for controlling the same, printing system, and program
JP2018041274A