US20120050773A1 - Print processing method and printing system - Google Patents
Print processing method and printing system Download PDFInfo
- Publication number
- US20120050773A1 US20120050773A1 US13/182,314 US201113182314A US2012050773A1 US 20120050773 A1 US20120050773 A1 US 20120050773A1 US 201113182314 A US201113182314 A US 201113182314A US 2012050773 A1 US2012050773 A1 US 2012050773A1
- Authority
- US
- United States
- Prior art keywords
- print data
- data
- server
- processing
- output device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1293—Printer information exchange with computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
- G06F3/1213—Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/124—Parallel printing or parallel ripping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1248—Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1288—Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/181—Receiving print data characterized by its formatting, e.g. particular page description languages
- G06K15/1814—Receiving print data characterized by its formatting, e.g. particular page description languages including print-ready data, i.e. data already matched to the printing process
Definitions
- the present invention relates to a print processing method and a printing system.
- the printer driver of a host PC generates page description language (PDL) data and transfers it to a print processing apparatus, which in turn performs print processing of the PDL data. More specifically, the controller in the print processing apparatus generates a display list (DL), and renders the data into a bitmap using a hardware or software renderer.
- PDL page description language
- SaaS Software as a Service
- the conventional technique described above gives no consideration to the engine speed of a device which outputs a sheet of paper when segmenting PDL and DL data in a page. For this reason, even if PDL and DL data are segmented, the device cannot fully exhibit its performance.
- the present invention provides a method and system which can perform data segmentation in consideration of the engine speed of a device, by using an optical segmentation method when performing parallel processing.
- a print processing method for a printing system in which a client which issues a print instruction, a server including a plurality of processors which process page description language data, and an output device which outputs print data generated from the page description language data are connected to each other via a network, wherein the server executes: a reception step of receiving a print instruction from the client; a decision step of deciding the number of layers into which a page is segmented, based on render instructions included in the page description language data, and deciding the number of processors which perform parallel processing for generation of print data from the page description language data, based on the decided number of layers; a generation step of generating the print data equal in number to the number of layers based on which the number of processors is decided in the decision step; and a transmission step of transmitting the print data generated in the generation step in accordance with a request from the output device, and wherein the output device executes: a requesting step of requesting the server to transmit the print data; and an
- FIG. 1 is a view showing a plurality of apparatuses constituting a printing system
- FIG. 2A is a block diagram showing the internal arrangement of an image forming apparatus
- FIG. 2B is a block diagram showing an example of the internal arrangement of an information processing apparatus
- FIG. 3 is a block diagram showing the functions of each apparatus of the printing system
- FIG. 4A is a view showing conventional PDL segmentation (band segmentation), and FIG. 4B is a view showing PDL segmentation (layer segmentation) in this embodiment;
- FIG. 5 is a view showing an overall processing sequence in the printing system
- FIG. 6 is a flowchart showing an overall processing procedure
- FIG. 7 is a flowchart showing a processing procedure in a PDL segmentation server
- FIG. 8 is a flowchart showing the details of PDL segmentation in the PDL segmentation server
- FIG. 9 is a flowchart showing a processing procedure in a virtual processor group
- FIG. 10 is a flowchart showing a processing procedure in an output device
- FIG. 11 is a view for explaining weighting operation for PDL segmentation
- FIGS. 12A and 12B are views for explaining processing speed estimation in layer segmentation.
- FIG. 13A is a view showing a case in which the virtual processors generate no DL even after the lapse of a predetermined period of time
- FIG. 13B is a flowchart showing the processing of deciding the number of virtual processors in accordance with a charge system.
- a plurality of apparatuses constituting a printing system will be described first with reference to FIG. 1 .
- the respective apparatuses constituting the printing system are connected to each other via networks 100 .
- the respective apparatuses include a virtual processor group 102 , a PDL segmentation server 103 , an image forming apparatus 104 as an output device, and a client computer (client PC) 105 .
- the networks 100 are communication lines for the exchange of information among the respective apparatuses.
- the Internet 101 is a communication line for the exchange of information among the respective apparatuses over firewalls.
- the Internet 101 allows the network 100 to which the virtual processor group 102 and the PDL segmentation server 103 belong to communicate with the network 100 to which the image forming apparatus 104 and the client PC 105 belong, over the firewalls.
- the networks 100 and the Internet 101 are, for example, communication networks which support the TCP/IP protocol, and it does not matter whether they are wired or wireless.
- FIG. 1 shows the virtual processor group 102 as a processor group. However, a plurality of processors may be prepared as servers, and the PDL segmentation server 103 may include them.
- the internal arrangements of the respective apparatuses constituting the printing system shown in FIG. 1 will be described in detail next.
- the internal arrangement of the image forming apparatus 104 will be described first with reference to the block diagram shown in FIG. 2A .
- the image forming apparatus 104 includes two units, namely an image processing unit 1041 and a printing unit 1042 .
- the image processing unit 1041 incorporates a CPU 1043 , a direct storage unit 1044 , an indirect storage unit 1045 , a RIP 1046 , a user interface 1047 , and an external interface 1048 .
- RIP is an abbreviation for “Raster Image Processor”.
- the CPU 1043 is a unit which issues instructions for various kinds of control of the image forming apparatus 104 by executing predetermined programs.
- the direct storage unit 1044 is a work memory to be used when the CPU 1043 executes various programs. A program to be executed by the CPU 1043 is loaded into the direct storage unit 1044 .
- the direct storage unit 1044 is implemented by a RAM.
- the indirect storage unit 1045 stores various kinds of programs including application programs and a platform program. Various kinds of programs stored in the indirect storage unit 1045 are moved to the direct storage unit 1044 when the CPU 1043 executes the programs.
- the indirect storage unit 1045 is implemented by an SSD (Solid State Drive) or HDD (Hard Disc Drive). Note that the CPU 1043 may be multiprocessor.
- a platform will be described in detail below. Implementing the platform can execute the new application developed by the user on the image forming apparatus 104 , and can also customize the image forming apparatus 104 .
- the CPU 1043 moves the platform program stored in the indirect storage unit 1045 to the direct storage unit 1044 .
- the CPU 1043 becomes ready to execute the platform program.
- the operation of causing the CPU 1043 to execute the platform program will be referred to as “to activate the platform”.
- the platform will operate on firmware in the image forming apparatus 104 .
- the platform program provides an environment for the execution of an application program.
- Printing software which accepts a print request operates on the platform.
- This printing software transmits print data received from the client PC 105 to the RIP 1046 to make it start rendering processing of the print data (DL).
- this software then transmits the print data (DL) to a device connected via the network 100 and the Internet 101 by using a communication protocol such as HTTP (Hyper Text Transfer Protocol).
- Executing the application program on the platform can implement control of the image forming apparatus 104 .
- the activated platform moves the application program stored in the indirect storage unit 1045 to the direct storage unit 1044 . Upon completion of the movement, the platform becomes ready to execute the application program. The platform then executes the application program.
- the function of the platform which can be provided by executing the application program in this manner will be referred to as a “platform application” in this embodiment.
- the platform can perform part of each of the processes based on the flowcharts disclosed in the embodiment.
- the RIP 1046 is a unit which inputs PDL (Page Description Language) data (to be described later) and generates a bitmap.
- the RIP 1046 is implemented by hardware or software.
- the user interface 1047 is a unit necessary to accept a processing request from the user. For example, this unit accepts a signal corresponding to an instruction input by the user via a keyboard, mouse, or the like.
- the external interface 1048 can receive data from an external apparatus and transmit data to an external apparatus.
- external apparatuses include external storage devices such as external HDDs and external USB memories and separate apparatuses such as separate host computers and image forming apparatuses which are connected via networks.
- the image forming apparatus 104 can communicate with the client PC 105 , the virtual processor group 102 , and the like via the networks 100 and the Internet 101 .
- FIG. 2B is a block diagram showing an example of the internal arrangement of an information processing apparatus 106 .
- the information processing apparatus 106 includes a user interface 1061 , a CPU 1062 , a direct storage unit 1063 , an indirect storage unit 1064 , and an external interface 1065 .
- the user interface 1061 is a unit necessary to accept a processing request from the user. For example, this unit accepts a signal corresponding to an instruction input by the user via a keyboard, mouse, or the like.
- the CPU 1062 is a unit which issues instructions for various kinds of control of the information processing apparatus 106 by executing predetermined programs.
- the direct storage unit 1063 is a work memory to be used when the CPU 1062 executes a program. A program to be executed by the CPU 1062 is loaded into the direct storage unit 1063 .
- the direct storage unit 1063 is implemented by a RAM.
- the indirect storage unit 1064 stores various kinds of programs including application programs and an OS (Operating System). Various kinds of programs stored in the indirect storage unit 1064 are moved to the direct storage unit 1063 when the CPU 1062 executes the programs.
- the indirect storage unit 1064 is implemented by a ROM and an HDD.
- the external interface 1065 is connected to the network 100 and can communicate with other apparatuses connected to the network 100 .
- FIG. 3 is a block diagram showing the functions of each apparatus in the printing system.
- the functions of the virtual processor group 102 will be described first.
- the virtual processor group 102 includes the functions of a request reception unit 4011 , a back-end processing unit 4021 , a queue service 405 , and a storage 406 .
- the request reception unit 4011 has a function of accepting a processing request transmitted from the client PC 105 or the image forming apparatus 104 .
- the back-end processing unit 4021 has a function of processing a processing request by using a processing program. More specifically, the back-end processing unit 4021 performs processing by loading a processing program into the memory of a processor which executes the back-end processing unit 4021 .
- the request reception unit 4011 and the back-end processing unit 4021 are implemented by loading the request reception program and back-end processing program stored in the indirect storage unit 1064 in FIG. 2B into the direct storage unit 1063 and making the CPU 1062 execute them.
- the queue service 405 has a function for asynchronous data communication with the request reception unit 4011 and the back-end processing unit 4021 .
- the storage 406 has a function of storing various kinds of data including data as an execution result obtained by processing by the back-end processing unit 4021 .
- the storage 406 is implemented by the indirect storage unit 1064 in FIG. 2B .
- the virtual processor group 102 is assumed to operate as a Worker Role in Windows Azure. The functions of the virtual processor group 102 have been described above, and will be described in further detail later.
- the functions of the PDL segmentation server 103 will be described next.
- the PDL segmentation server 103 has a PDL segmentation function 301 .
- the PDL segmentation function 301 is implemented by the CPU 1062 , direct storage unit 1063 , and indirect storage unit 1064 in FIG. 2B .
- PDL is data generated by the user using a printer driver 304 on the client PC 105 (to be described later).
- the PDL segmentation server 103 is assumed to operate as a Web Role in Windows Azure.
- the functions of the image forming apparatus 104 will be described in detail next.
- the image forming apparatus 104 has the functions of a RIP 302 and platform application 303 .
- the platform application 303 has a function of acquiring data stored in the virtual processor group 102 connected via the network 100 .
- the platform application 303 is implemented by loading the platform application program stored in the direct storage unit 1044 in FIG. 2A into the indirect storage unit 1045 and making the CPU 1043 execute it.
- the RIP 302 has a function of providing a rendering service of interpreting print data (DL) and converting the data into a bitmap.
- this service checks for the request reception unit 4011 whether the generation of print data is complete. At this time, the service performs this check based on the ID generated by the PDL segmentation server 103 .
- the printer driver 304 is installed in the client PC 105 .
- the printer driver 304 has a function of generating PDL data from application data based on information stored in an output device (image forming apparatus 104 ) connected via the network 100 .
- This function is implemented by loading the printer driver software stored in the indirect storage unit 1064 in FIG. 2B into the direct storage unit 1063 and making the CPU 1062 execute it.
- the above description is about the functions of each apparatus in the printing system according to this embodiment.
- FIG. 4A shows a case of conventional PDL segmentation (band segmentation).
- the system renders, on the entire page, a triangle, circle, and rectangle sequentially arranged from the deepest side, from the render instructions included in PDL data (page description language data), so as to superimpose them.
- the apparatus segments the page into three bands, namely upper, intermediate, and lower bands, and concurrently processes them using three virtual processors.
- the respective segmented PDL data include render instructions in the following manner.
- the first segmented PDL data includes render instructions corresponding to the upper portions of the triangle and circle.
- the second segmented PDL data includes render instructions corresponding to the intermediate portion of the triangle, the lower portion of the circle, and the entire rectangle such that they overlap each other.
- the third segmented PDL data includes the lower portion of the triangle.
- the processing load of the first segmented PDL data is small, the processing load of the second segmented PDL data is large, and the processing load of the third segmented PDL data is small.
- FIG. 4B shows a case of PDL segmentation (layer segmentation) according to this embodiment.
- the system renders, on the entire page, a triangle, circle, and rectangle sequentially arranged from the deepest side, from the render instructions included in PDL data, so as to superimpose them.
- the system segments this page into three layers, with the background, intermediate, and uppermost layers respectively including the triangle, circle, and rectangle, and concurrently processes them using three virtual processors.
- the respective segmented PDL data include render instructions in the following manner.
- the first segmented PDL data includes render instructions corresponding to the entire triangle.
- the second segmented PDL data includes render instructions corresponding to the entire circle.
- the third segmented PDL data includes render instructions corresponding to the entire rectangle.
- the processing loads of the first to third segmented PDL data are all intermediate.
- segmentation for each layer as in this embodiment facilitates making adjustment so as to make the respective segmented PDL data have intended processing loads.
- Weighting in PDL segmentation in the printing system will be described next in detail with reference to FIG. 11 .
- the system renders, on the entire page, a triangle at the first level, a circle at the second level, and a rectangle at the third level, sequentially from the deepest side, based on the render instructions included in input PDL data, so as to superimpose them, and renders a rectangle at the 150th level on the uppermost surface.
- the processing of generating a DL from PDL data is characterized in that the larger the number of levels included in each PDL data, the longer the time it takes to process the PDL data, and vice versa.
- This processing must always be sequentially performed starting from the layer closest to the background surface.
- FIG. 11 shows an example of how PDL data is segmented with weighting operation.
- the number of levels included in segmented PDL data 1 in the deepest layer is 10, and the number of levels included in segmented PDL data 2 on segmented PDL data 1 is 20.
- the number of levels includes in segmented PDL data 3 on segmented PDL data 2 is 30.
- the number of levels included in segmented PDL data 4 on segmented PDL data 3 is 40.
- the number of levels included in segmented PDL data 5 on segmented PDL data 4 is 50.
- the user issues a print instruction from the printer driver 304 of the client PC 105 to the PDL segmentation server 103 in step S 501 .
- the PDL segmentation server 103 Upon receiving the print instruction, the PDL segmentation server 103 returns a document ID and a server ID to the printer driver 304 in step S 502 .
- the printer driver 304 sends the document ID and the server ID to the output device 104 which outputs a sheet of paper.
- step S 504 the output device 104 sends the document ID to the PDL segmentation server 103 to perform polling to acquire PDL segmentation information.
- step S 505 the PDL segmentation server 103 also performs PDL segmentation processing based on the print instruction received in step S 501 .
- the PDL segmentation server 103 transmits each segmented PDL data to the virtual processor group 102 in step S 506 , and receives the segmented PDL data IDs and the virtual processor IDs from the virtual processor group 102 in step S 507 . Upon completion of the segmentation of all the pages and transmission to the virtual processor group 102 , the PDL segmentation server 103 transmits the respective segmented PDL data IDs and the virtual processor IDs of the virtual processors which are processing the PDL data to the output device 104 in step S 508 .
- step S 509 the virtual processor group 102 converts the respective segmented PDL data received in step S 506 into DLs.
- step S 510 the output device 104 performs polling to check, based on the segmented PDL data IDs and virtual processor IDs received in step S 508 , whether the generation of DLs from the deepest layer is complete. If this processing is complete, the output device 104 acquires the segmented DLs in step S 511 .
- step S 512 the output device 104 then renders the acquired DL and performs superimposition processing as needed. The output device 104 repeats the above processing for all the DLs. Upon completion of this processing, the output device 104 notifies the printer driver 304 of the end of printing in step S 513 .
- FIG. 6 shows an overall processing procedure in this embodiment.
- FIG. 7 shows a processing procedure in the PDL segmentation server 103 .
- FIG. 8 shows a detailed procedure for PDL segmentation in the PDL segmentation server 103 .
- FIG. 9 shows a processing procedure in the virtual processor group 102 .
- FIG. 10 shows a processing procedure in the output device 104 .
- step S 601 the printer driver 304 of the client PC 105 generates PDL data from print target data designated by a printing application in step S 601 .
- the printer driver 304 determines in step S 602 whether a cloud environment can be used. If NO in step S 602 , the printer driver 304 causes the output device 104 to execute print processing under a conventional local environment in step S 603 , and terminates this processing.
- the printer driver 304 determines in step S 602 that a cloud environment can be used, as shown in FIG. 1 , the printer driver 304 transfers the PDL data to the PDL segmentation server 103 on the cloud in step S 604 . With this operation, the PDL segmentation server 103 segments the PDL data received in step S 605 .
- the details of segmentation processing in the PDL segmentation server 103 will be described later in association with ⁇ PDL Segmentation Processing (Web Role)>
- the PDL segmentation server 103 then transmits the segmented PDL data obtained by segmentation in step S 605 to the virtual processor group 102 .
- the virtual processor group 102 concurrently generates the DLs of the segmented PDL data. The details of the processing in the virtual processor group 102 will be described later in association with ⁇ Segmented PDL Data DL Generation Processing (Worker Role)>
- the generated DLs are transmitted to the output device 104 .
- the output device 104 renders the respective DLs to generate a bitmap, and performs superimposition processing as needed, thereby generating a one-page image.
- the details of this processing in the output device 104 will be described in association with ⁇ Rendering Processing in Device>.
- step S 701 the PDL segmentation server 103 receives PDL data as a processing target via the Internet 101 .
- step S 702 the PDL segmentation server 103 checks the engine speed of the output device 104 .
- step S 703 the PDL segmentation server 103 checks the number and throughputs of virtual processors of the virtual processor group 102 .
- the PDL segmentation server 103 interprets the PDL data received in step S 704 to check in step S 705 whether each page of the PDL data is a heavy page that does not allow to achieve the engine speed unless the render commands included in the page are segmented with a threshold or more. If NO in step S 705 , the PDL segmentation server 103 transmits the unsegmented PDL data to the virtual processor group 102 in 706 . The process then advances to 710 . If YES in 705 , the PDL segmentation server 103 decides the number of levels included in each segmented PDL data in consideration of the number of levels in each page, the number of virtual processors, and superimposition in step S 707 . The details of this processing will be described in association with ⁇ Processing of Deciding Numbers of Levels in PDL Segmentation>
- the PDL segmentation server 103 then segments the PDL data into layers (for each layer) based on the numbers of levels decided in step S 708 . It is easy to perform segmentation because objects to be rendered are described in the PDL data from the deepest layer. Each PDL data segmented in step S 709 is then transmitted to the virtual processor group 102 . In step S 710 , the PDL segmentation server 103 determines whether the processing of all the pages of the received PDL data is complete. If NO in step S 710 , the process returns to step S 704 to process the next page. If the PDL segmentation server 103 determines in step S 710 that the processing of all the pages is complete, the PDL segmentation server 103 terminates this processing.
- step S 801 the virtual processor group 102 receives segmented PDL data to be processed from the PDL segmentation server 103 .
- step S 802 the virtual processor group 102 generates a DL from each segmented PDL data received in step S 802 .
- step S 803 the virtual processor group 102 determines whether to perform processing up to rendering processing by determining whether the band between the output device 104 and the virtual processor group 102 is wider than a predetermined band. If YES in step S 803 , the virtual processor group 102 interprets the DL and renders it into a bitmap in step S 804 .
- step S 803 the process advances to step S 805 , in which the virtual processor group 102 determines whether there is any transmission request from the output device 104 . If the virtual processor group 102 determines that there is no transmission request, the process loops until the output device 104 issues a transmission request. If there is a transmission request from the output device 104 , the process advances to step S 806 , in which the virtual processor group 102 transfers the DL generated in step S 802 or the bitmap generated in step S 804 to the output device 104 , and terminates this processing.
- step S 901 the output device 104 receives print information from the printer driver 304 or Web Role.
- step S 902 the output device 104 determines whether the received data is segmented data. If NO in step S 902 , the output device 104 determines in step S 903 whether the data is a DL. If NO in step S 903 , the output device 104 receives the bitmap from the virtual processor group 102 in step S 904 . The process then advances to step S 919 . If YES in step S 903 , the output device 104 receives the DL from the virtual processor group 102 in step S 905 . In step S 906 , the output device 104 renders the received DL into a bitmap. The process then advances to step S 919 .
- step S 907 determines whether the data is DL data. If NO in step S 907 , the output device 104 waits in step S 908 until a bitmap to be received is generated. If a bitmap is generated, the output device 104 receives the generated bitmap from the virtual processor group 102 in step S 909 . In step S 910 , the output device 104 determines whether it is necessary to perform superimposition. If the output device 104 determines that there is no need to perform superimposition as in a case in which the bitmap corresponds to the background surface, the process advances to step S 912 .
- step S 912 the output device 104 determines whether the processing of all the data is complete. If the processing is not complete, the process advances to step S 908 . If the processing is complete, the process advances to step S 919 .
- step S 907 determines in step S 907 that the data is DL data
- the output device 104 waits in step S 913 until a DL to be received is generated.
- the output device 104 receives the DL data from the virtual processor group 102 in step S 914 .
- step S 915 the output device 104 determines whether it is necessary to perform superimposition. If the output device 104 determines in step S 917 that there is no need to perform superimposition as in a case in which the DL data corresponds to the background surface, the output device 104 renders the DL data into a bitmap. The process then advances to step S 918 .
- step S 916 the output device 104 generates a bitmap from the DL under processing which is to be superimposed while performing superimposition processing for the bitmap on the background.
- step S 918 the output device 104 determines whether the processing of all the data is complete. If NO in step S 918 , the process returns to step S 913 to start processing the next layer. If YES in step S 918 , the output device 104 outputs the generated bitmap onto a sheet in step S 919 , and terminates this processing.
- step S 1001 the PDL segmentation server 103 inputs three conditions including a number LSN of levels included in PDL data to be processed, an engine speed ES of the output device 104 , and a throughput PS of the virtual processor group 102 .
- the PDL segmentation server 103 then calculates a number LNP of levels that can be processed by the virtual processor group 102 within the engine speed ES from the throughput PS and the engine speed ES.
- step S 1002 the PDL segmentation server 103 calculates a number PN of virtual processors for processing the PDL data at the engine speed by dividing the number LSN of levels included in the PDL data by the throughput of the virtual processor group 102 .
- step S 1003 the PDL segmentation server 103 determines whether the calculated number PN is larger than one. If NO in step S 1003 , the PDL segmentation server 103 assigns one-page PDL data to one virtual processor without segmenting the PDL data in step S 1004 .
- the PDL segmentation server 103 determines in step S 1003 that the calculated number PN is larger than one, calculates a median value ML of the number of levels in the PDL data by dividing the number of levels included in the PDL data by the number of virtual processors required in step S 1005 .
- the PDL segmentation server 103 calculates a weight LW for the number of levels for each virtual processor by dividing the median value ML of levels by the value obtained dividing the number LSN of levels included in the PDL data by two.
- the PDL segmentation server 103 decides the number of levels by adding or deleting the number of levels corresponding to the weight for each virtual processor with reference to the median value ML as the center.
- step S 1008 the PDL segmentation server 103 determines whether the determined number of levels is too large or small. If NO in step S 1008 , the PDL segmentation server 103 terminates this processing. If YES in step S 1008 , the PDL segmentation server 103 adjusts the numbers of levels by adding or deleting the number of levels corresponding to the excess or deficiency to or from the number of levels on the foreground layer in step S 1009 . The PDL segmentation server 103 then terminates this processing.
- FIG. 12A shows various kinds of conditions 1201 assumed in this estimation.
- data processed is PDL data having complicated render commands which do not allow to achieve an engine speed of 50 ppm, if the current PDL data is not segmented.
- the time taken to generate the DL of one layer is 0.3 sec.
- the time taken for the RIP (Hard) on the device to render is 0.1 sec.
- the time taken for the RIP (Soft) on virtual processors is 0.3 sec.
- the time taken to perform superimposition at the time of rendering is 0.1 sec.
- the time taken to transfer the DL to the device is 0.1 sec.
- the time taken to transmit a bitmap to the device is 0.3 sec.
- the number of DLs that can achieve the engine speed is estimated to be five.
- a timing chart 1202 indicates a case in which all the processes are performed within the device without using the existing cloud. In this case, since one CPU generates DLs, it is possible to process the DLs concurrently with RIP. This processing takes a total of 1.8 sec. Obviously, 50 ppm cannot be achieved.
- a timing chart 1203 indicates a case in which virtual processors perform processing up to the generation of DLs without weighting operation described in association with ⁇ Weighting in Page Segmentation>.
- DLs are concurrently generated.
- a timing chart 1204 indicates a case in which virtual processors performs processing up to the generation of DLs while performing weighting operation described in association with ⁇ Weighting in Page Segmentation>.
- the generation of the DL of the background layer is complete earlier than other layers, the DLs are generated concurrently with RIP.
- This processing takes a total of 1.1 sec. Obviously, an engine speed of 50 ppm can be achieved.
- a timing chart 1205 indicates a case in which virtual processors perform processing up to the generation of bitmaps without performing weighting operation described in association with ⁇ Weighting in Page Segmentation>.
- virtual processors perform processing up to the generation of bitmaps without performing weighting operation described in association with ⁇ Weighting in Page Segmentation>.
- parallel processing is performed among the respective layers, the generation of DLs is not parallel with the generation of bitmaps.
- rendering to bitmaps increases the amount of information as compared with DLs, and hence it takes much time to transfer the information to the device. Obviously, this processing takes a total of 1.3 sec.
- a timing chart 1206 indicates a case in which virtual processors perform processing up to the generation of bitmaps while performing weighting operation described in association with ⁇ Weighting in Page Segmentation>.
- parallel processing is performed among the respective layers, the generation of DLs is not parallel with the generation of bitmaps.
- rendering to bitmaps increases the amount of information as compared with DLs, and hence it takes much time to transfer the information to the device. Obviously, this processing takes a total of 1.2 sec.
- step S 1301 the virtual processor group 102 determines whether the PDL segmentation server 103 has generated DL data. This determination is the same as that in step S 909 or S 914 . If YES in step S 1301 , the virtual processor group 102 terminates this processing. If NO in step S 1301 , the virtual processor group 102 determines in step S 1302 whether the determination in step S 1301 has been performed for a time equal to or more than a time corresponding to a given threshold. If NO in step S 1302 , the process returns to step S 1301 to perform determination again. If YES in step S 1302 , the virtual processor group 102 transmits information instructing to reduce the segmentation unit to the PDL segmentation server 103 in step S 1303 , and then terminates this processing.
- step S 1304 the PDL segmentation server 103 determines whether the user is charged in accordance with the number of virtual processors to be used. If YES in step S 1304 , the PDL segmentation server 103 increases the segmentation unit for PDL data in step S 1306 , and terminates this processing. If NO in step S 1304 , the PDL segmentation server 103 decreases the segmentation unit to achieve the engine speed, and terminates this processing.
- the PDL data generated by the client PC 105 is transmitted to the cloud.
- this system may be configured to generate PDL data on the cloud.
- the present invention it is possible to minimize the uneven distribution of the numbers of render instructions upon segmentation to perform optimal parallel processing.
- the embodiment is configured to segment data in consideration of the performance of the output device. This makes it possible for the output device to fully exert its performance even for data which includes many render instructions and does not allow the conventional output device to exert its performance.
- aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment(s), and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment(s).
- the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (for example, computer-readable medium).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Record Information Processing For Printing (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
A server constituted by a plurality of processors which process page description language data receives a print instruction from a client, and decides the number of layers into which a page is to be segmented based on render instructions included in the page description language data. The server decides the number of processors which perform parallel processing of the generation of print data from the page description language data based on the decided number of layers. The server generates print data equal in number to the number of layers based on which the number of processors is decided. An output device requests the server to transmit print data. The server transmits print data in accordance with the request from the output device. Upon receiving the print data from the server, the output device processes the print data and outputs it onto a sheet.
Description
- 1. Field of the Invention
- The present invention relates to a print processing method and a printing system.
- 2. Description of the Related Art
- Conventionally, the printer driver of a host PC generates page description language (PDL) data and transfers it to a print processing apparatus, which in turn performs print processing of the PDL data. More specifically, the controller in the print processing apparatus generates a display list (DL), and renders the data into a bitmap using a hardware or software renderer.
- There has also been proposed a technique of processing a page which is accompanied by complicated render commands output from an application and hence takes much time for print processing when rendering the data, by segmenting the PDL data for each band to concurrently generate DLs, and concurrently rendering the DLs segmented for each band. See, for example, Japanese Patent Laid-Open Nos. 2000-141811 and 2009-245436. Concurrently processing PDL/DL data segmented for each band speeds up the processing of a page which takes much time for processing.
- In addition, as forms of performing various types of processes on the server side, techniques called a cloud computing system and SaaS (Software as a Service) have recently begun to be used.
- In the conventional technique described above, however, since PDL and DL data are segmented into bands and concurrently processed, if render instructions are unevenly distributed in a page, the processing times for the respective bands vary. For this reason, one page is not generated until the processing of a band including the largest number of render instructions is complete.
- Furthermore, the conventional technique described above gives no consideration to the engine speed of a device which outputs a sheet of paper when segmenting PDL and DL data in a page. For this reason, even if PDL and DL data are segmented, the device cannot fully exhibit its performance.
- The present invention provides a method and system which can perform data segmentation in consideration of the engine speed of a device, by using an optical segmentation method when performing parallel processing.
- According to one aspect of the present invention, there is provided a print processing method for a printing system in which a client which issues a print instruction, a server including a plurality of processors which process page description language data, and an output device which outputs print data generated from the page description language data are connected to each other via a network, wherein the server executes: a reception step of receiving a print instruction from the client; a decision step of deciding the number of layers into which a page is segmented, based on render instructions included in the page description language data, and deciding the number of processors which perform parallel processing for generation of print data from the page description language data, based on the decided number of layers; a generation step of generating the print data equal in number to the number of layers based on which the number of processors is decided in the decision step; and a transmission step of transmitting the print data generated in the generation step in accordance with a request from the output device, and wherein the output device executes: a requesting step of requesting the server to transmit the print data; and an output step of processing the print data upon receiving the print data from the server in the requesting step, and outputting the print data onto a sheet.
- Further features of the present invention will become apparent from the following description of exemplary embodiments (with reference to the attached drawings).
-
FIG. 1 is a view showing a plurality of apparatuses constituting a printing system; -
FIG. 2A is a block diagram showing the internal arrangement of an image forming apparatus, andFIG. 2B is a block diagram showing an example of the internal arrangement of an information processing apparatus; -
FIG. 3 is a block diagram showing the functions of each apparatus of the printing system; -
FIG. 4A is a view showing conventional PDL segmentation (band segmentation), andFIG. 4B is a view showing PDL segmentation (layer segmentation) in this embodiment; -
FIG. 5 is a view showing an overall processing sequence in the printing system; -
FIG. 6 is a flowchart showing an overall processing procedure; -
FIG. 7 is a flowchart showing a processing procedure in a PDL segmentation server; -
FIG. 8 is a flowchart showing the details of PDL segmentation in the PDL segmentation server; -
FIG. 9 is a flowchart showing a processing procedure in a virtual processor group; -
FIG. 10 is a flowchart showing a processing procedure in an output device; -
FIG. 11 is a view for explaining weighting operation for PDL segmentation; -
FIGS. 12A and 12B are views for explaining processing speed estimation in layer segmentation; and -
FIG. 13A is a view showing a case in which the virtual processors generate no DL even after the lapse of a predetermined period of time, andFIG. 13B is a flowchart showing the processing of deciding the number of virtual processors in accordance with a charge system. - Embodiments of the present invention will be described in detail below in accordance with the accompanying drawings.
- <Arrangement of Printing System>
- A plurality of apparatuses constituting a printing system will be described first with reference to
FIG. 1 . As shown inFIG. 1 , the respective apparatuses constituting the printing system are connected to each other vianetworks 100. - In this case, the respective apparatuses include a
virtual processor group 102, aPDL segmentation server 103, animage forming apparatus 104 as an output device, and a client computer (client PC) 105. Thenetworks 100 are communication lines for the exchange of information among the respective apparatuses. The Internet 101 is a communication line for the exchange of information among the respective apparatuses over firewalls. The Internet 101 allows thenetwork 100 to which thevirtual processor group 102 and thePDL segmentation server 103 belong to communicate with thenetwork 100 to which theimage forming apparatus 104 and the client PC 105 belong, over the firewalls. - The
networks 100 and the Internet 101 are, for example, communication networks which support the TCP/IP protocol, and it does not matter whether they are wired or wireless.FIG. 1 shows thevirtual processor group 102 as a processor group. However, a plurality of processors may be prepared as servers, and thePDL segmentation server 103 may include them. - The internal arrangements of the respective apparatuses constituting the printing system shown in
FIG. 1 will be described in detail next. The internal arrangement of theimage forming apparatus 104 will be described first with reference to the block diagram shown inFIG. 2A . - The
image forming apparatus 104 includes two units, namely animage processing unit 1041 and aprinting unit 1042. In this case, theimage processing unit 1041 incorporates aCPU 1043, adirect storage unit 1044, anindirect storage unit 1045, aRIP 1046, auser interface 1047, and anexternal interface 1048. Note that RIP is an abbreviation for “Raster Image Processor”. - The
CPU 1043 is a unit which issues instructions for various kinds of control of theimage forming apparatus 104 by executing predetermined programs. Thedirect storage unit 1044 is a work memory to be used when theCPU 1043 executes various programs. A program to be executed by theCPU 1043 is loaded into thedirect storage unit 1044. Thedirect storage unit 1044 is implemented by a RAM. - The
indirect storage unit 1045 stores various kinds of programs including application programs and a platform program. Various kinds of programs stored in theindirect storage unit 1045 are moved to thedirect storage unit 1044 when theCPU 1043 executes the programs. Theindirect storage unit 1045 is implemented by an SSD (Solid State Drive) or HDD (Hard Disc Drive). Note that theCPU 1043 may be multiprocessor. - A platform will be described in detail below. Implementing the platform can execute the new application developed by the user on the
image forming apparatus 104, and can also customize theimage forming apparatus 104. - A method of implementing the platform will be described next. The
CPU 1043 moves the platform program stored in theindirect storage unit 1045 to thedirect storage unit 1044. When the program is completely moved, theCPU 1043 becomes ready to execute the platform program. - The operation of causing the
CPU 1043 to execute the platform program will be referred to as “to activate the platform”. Note that the platform will operate on firmware in theimage forming apparatus 104. In addition, the platform program provides an environment for the execution of an application program. - A method of executing an application program on the platform will be described in detail next. Printing software which accepts a print request operates on the platform. This printing software transmits print data received from the
client PC 105 to theRIP 1046 to make it start rendering processing of the print data (DL). For example, this software then transmits the print data (DL) to a device connected via thenetwork 100 and theInternet 101 by using a communication protocol such as HTTP (Hyper Text Transfer Protocol). Executing the application program on the platform can implement control of theimage forming apparatus 104. - A method of executing an application program will be described next. The activated platform moves the application program stored in the
indirect storage unit 1045 to thedirect storage unit 1044. Upon completion of the movement, the platform becomes ready to execute the application program. The platform then executes the application program. The function of the platform which can be provided by executing the application program in this manner will be referred to as a “platform application” in this embodiment. In addition, the platform can perform part of each of the processes based on the flowcharts disclosed in the embodiment. - The
RIP 1046 is a unit which inputs PDL (Page Description Language) data (to be described later) and generates a bitmap. TheRIP 1046 is implemented by hardware or software. Theuser interface 1047 is a unit necessary to accept a processing request from the user. For example, this unit accepts a signal corresponding to an instruction input by the user via a keyboard, mouse, or the like. Theexternal interface 1048 can receive data from an external apparatus and transmit data to an external apparatus. For example, external apparatuses include external storage devices such as external HDDs and external USB memories and separate apparatuses such as separate host computers and image forming apparatuses which are connected via networks. Note that theimage forming apparatus 104 can communicate with theclient PC 105, thevirtual processor group 102, and the like via thenetworks 100 and theInternet 101. - The internal arrangement of each of information processing apparatuses functioning as the
virtual processor group 102, thePDL segmentation server 103, and theclient PC 105 will be described with reference toFIG. 2B .FIG. 2B is a block diagram showing an example of the internal arrangement of aninformation processing apparatus 106. As shown inFIG. 2B , theinformation processing apparatus 106 includes auser interface 1061, aCPU 1062, adirect storage unit 1063, anindirect storage unit 1064, and anexternal interface 1065. - The
user interface 1061 is a unit necessary to accept a processing request from the user. For example, this unit accepts a signal corresponding to an instruction input by the user via a keyboard, mouse, or the like. TheCPU 1062 is a unit which issues instructions for various kinds of control of theinformation processing apparatus 106 by executing predetermined programs. Thedirect storage unit 1063 is a work memory to be used when theCPU 1062 executes a program. A program to be executed by theCPU 1062 is loaded into thedirect storage unit 1063. Thedirect storage unit 1063 is implemented by a RAM. - The
indirect storage unit 1064 stores various kinds of programs including application programs and an OS (Operating System). Various kinds of programs stored in theindirect storage unit 1064 are moved to thedirect storage unit 1063 when theCPU 1062 executes the programs. Theindirect storage unit 1064 is implemented by a ROM and an HDD. Theexternal interface 1065 is connected to thenetwork 100 and can communicate with other apparatuses connected to thenetwork 100. - <Functions of Each Apparatus in Printing System>
- The functions of each apparatus in the printing system according to this embodiment will be described next with reference to
FIG. 3 .FIG. 3 is a block diagram showing the functions of each apparatus in the printing system. The functions of thevirtual processor group 102 will be described first. Thevirtual processor group 102 includes the functions of arequest reception unit 4011, a back-end processing unit 4021, aqueue service 405, and astorage 406. - The
request reception unit 4011 has a function of accepting a processing request transmitted from theclient PC 105 or theimage forming apparatus 104. The back-end processing unit 4021 has a function of processing a processing request by using a processing program. More specifically, the back-end processing unit 4021 performs processing by loading a processing program into the memory of a processor which executes the back-end processing unit 4021. Therequest reception unit 4011 and the back-end processing unit 4021 are implemented by loading the request reception program and back-end processing program stored in theindirect storage unit 1064 inFIG. 2B into thedirect storage unit 1063 and making theCPU 1062 execute them. - The
queue service 405 has a function for asynchronous data communication with therequest reception unit 4011 and the back-end processing unit 4021. Thestorage 406 has a function of storing various kinds of data including data as an execution result obtained by processing by the back-end processing unit 4021. Thestorage 406 is implemented by theindirect storage unit 1064 inFIG. 2B . Thevirtual processor group 102 is assumed to operate as a Worker Role in Windows Azure. The functions of thevirtual processor group 102 have been described above, and will be described in further detail later. - The functions of the
PDL segmentation server 103 will be described next. ThePDL segmentation server 103 has a PDL segmentation function 301. The PDL segmentation function 301 is implemented by theCPU 1062,direct storage unit 1063, andindirect storage unit 1064 inFIG. 2B . - In this case, PDL is data generated by the user using a
printer driver 304 on the client PC 105 (to be described later). ThePDL segmentation server 103 is assumed to operate as a Web Role in Windows Azure. - The functions of the
image forming apparatus 104 will be described in detail next. Theimage forming apparatus 104 has the functions of aRIP 302 andplatform application 303. Theplatform application 303 has a function of acquiring data stored in thevirtual processor group 102 connected via thenetwork 100. Theplatform application 303 is implemented by loading the platform application program stored in thedirect storage unit 1044 inFIG. 2A into theindirect storage unit 1045 and making theCPU 1043 execute it. - The
RIP 302 has a function of providing a rendering service of interpreting print data (DL) and converting the data into a bitmap. In addition, this service checks for therequest reception unit 4011 whether the generation of print data is complete. At this time, the service performs this check based on the ID generated by thePDL segmentation server 103. - The functions of the
client PC 105 will be described last in detail. Theprinter driver 304 is installed in theclient PC 105. Theprinter driver 304 has a function of generating PDL data from application data based on information stored in an output device (image forming apparatus 104) connected via thenetwork 100. This function is implemented by loading the printer driver software stored in theindirect storage unit 1064 inFIG. 2B into thedirect storage unit 1063 and making theCPU 1062 execute it. The above description is about the functions of each apparatus in the printing system according to this embodiment. - <Conventional Page Segmentation and Page Segmentation in This Embodiment>
- The differences between the conventional PDL segmentation function and the PDL segmentation function in the printing system according to this embodiment will be described in detail next with reference to
FIGS. 4A and 4B .FIG. 4A shows a case of conventional PDL segmentation (band segmentation). In this case, the system renders, on the entire page, a triangle, circle, and rectangle sequentially arranged from the deepest side, from the render instructions included in PDL data (page description language data), so as to superimpose them. In this case, the apparatus segments the page into three bands, namely upper, intermediate, and lower bands, and concurrently processes them using three virtual processors. - As a consequence, the respective segmented PDL data include render instructions in the following manner. The first segmented PDL data includes render instructions corresponding to the upper portions of the triangle and circle. The second segmented PDL data includes render instructions corresponding to the intermediate portion of the triangle, the lower portion of the circle, and the entire rectangle such that they overlap each other. The third segmented PDL data includes the lower portion of the triangle.
- When the loads of the respective rendering processes are calculated from the render instructions, the processing load of the first segmented PDL data is small, the processing load of the second segmented PDL data is large, and the processing load of the third segmented PDL data is small.
-
FIG. 4B shows a case of PDL segmentation (layer segmentation) according to this embodiment. In this case, the system renders, on the entire page, a triangle, circle, and rectangle sequentially arranged from the deepest side, from the render instructions included in PDL data, so as to superimpose them. The system segments this page into three layers, with the background, intermediate, and uppermost layers respectively including the triangle, circle, and rectangle, and concurrently processes them using three virtual processors. - As a consequence, the respective segmented PDL data include render instructions in the following manner. The first segmented PDL data includes render instructions corresponding to the entire triangle. The second segmented PDL data includes render instructions corresponding to the entire circle. The third segmented PDL data includes render instructions corresponding to the entire rectangle.
- When the loads of the respective rendering processes are calculated from the render instructions, the processing loads of the first to third segmented PDL data are all intermediate.
- In parallel processing, the longest processing time among the segmented processes is regarded as the final processing time. For this reason, conventional band segmentation produces segmented PDL data with a light processing load and segmented PDL data with a heavy processing load depending on the uneven distribution of commands rendered in a page. This segmentation technique cannot always provide optimal segmentation. In contrast, segmentation for each layer as in this embodiment facilitates making adjustment so as to make the respective segmented PDL data have intended processing loads.
- <Weighting in Page Segmentation>
- Weighting in PDL segmentation in the printing system according to this embodiment will be described next in detail with reference to
FIG. 11 . In this case, the system renders, on the entire page, a triangle at the first level, a circle at the second level, and a rectangle at the third level, sequentially from the deepest side, based on the render instructions included in input PDL data, so as to superimpose them, and renders a rectangle at the 150th level on the uppermost surface. - As shown in
FIG. 11 , the processing of generating a DL from PDL data is characterized in that the larger the number of levels included in each PDL data, the longer the time it takes to process the PDL data, and vice versa. When finally printing the segmented PDL data, it is necessary to perform superimposition processing at the time of rendering. This processing must always be sequentially performed starting from the layer closest to the background surface. - When, therefore, segmenting PDL data, it is necessary to segment the PDL data so as to make PDL data on layers closer to the background surface include smaller numbers of levels and take shorter processing times, in consideration of the above characteristic, instead of evenly segmenting the PDL data in accordance with the number of virtual processors which can be used. This operation is called weighting.
-
FIG. 11 shows an example of how PDL data is segmented with weighting operation. In this case, when there are five virtual processors and input PDL data includes 150 levels, the number of levels included insegmented PDL data 1 in the deepest layer is 10, and the number of levels included insegmented PDL data 2 onsegmented PDL data 1 is 20. The number of levels includes insegmented PDL data 3 onsegmented PDL data 2 is 30. The number of levels included insegmented PDL data 4 onsegmented PDL data 3 is 40. The number of levels included insegmented PDL data 5 onsegmented PDL data 4 is 50. - The details of this processing will be described in associated with <Processing of Deciding Numbers of Levels in PDL segmentation>, and the effects of weighting operation will be described in association with <Processing Speed Estimation in Layer Segmentation>.
- <Overall Processing Sequence>
- An overall processing sequence in the printing system according to this embodiment will be described next with reference to
FIG. 5 . First of all, the user issues a print instruction from theprinter driver 304 of theclient PC 105 to thePDL segmentation server 103 in step S501. Upon receiving the print instruction, thePDL segmentation server 103 returns a document ID and a server ID to theprinter driver 304 in step S502. In step S503, theprinter driver 304 sends the document ID and the server ID to theoutput device 104 which outputs a sheet of paper. - In step S504, the
output device 104 sends the document ID to thePDL segmentation server 103 to perform polling to acquire PDL segmentation information. In step S505, thePDL segmentation server 103 also performs PDL segmentation processing based on the print instruction received in step S501. - The
PDL segmentation server 103 transmits each segmented PDL data to thevirtual processor group 102 in step S506, and receives the segmented PDL data IDs and the virtual processor IDs from thevirtual processor group 102 in step S507. Upon completion of the segmentation of all the pages and transmission to thevirtual processor group 102, thePDL segmentation server 103 transmits the respective segmented PDL data IDs and the virtual processor IDs of the virtual processors which are processing the PDL data to theoutput device 104 in step S508. - In step S509, the
virtual processor group 102 converts the respective segmented PDL data received in step S506 into DLs. In step S510, theoutput device 104 performs polling to check, based on the segmented PDL data IDs and virtual processor IDs received in step S508, whether the generation of DLs from the deepest layer is complete. If this processing is complete, theoutput device 104 acquires the segmented DLs in step S511. In step S512, theoutput device 104 then renders the acquired DL and performs superimposition processing as needed. Theoutput device 104 repeats the above processing for all the DLs. Upon completion of this processing, theoutput device 104 notifies theprinter driver 304 of the end of printing in step S513. - <Overall Processing Procedure>
- The operation of the printer driver, PDL segmentation server, virtual processor group, and output device will be described next with reference to
FIGS. 6 to 10 .FIG. 6 shows an overall processing procedure in this embodiment.FIG. 7 shows a processing procedure in thePDL segmentation server 103.FIG. 8 shows a detailed procedure for PDL segmentation in thePDL segmentation server 103.FIG. 9 shows a processing procedure in thevirtual processor group 102.FIG. 10 shows a processing procedure in theoutput device 104. - The overall processing procedure will be described first with reference to
FIG. 6 . In step S601, theprinter driver 304 of theclient PC 105 generates PDL data from print target data designated by a printing application in step S601. Theprinter driver 304 then determines in step S602 whether a cloud environment can be used. If NO in step S602, theprinter driver 304 causes theoutput device 104 to execute print processing under a conventional local environment in step S603, and terminates this processing. - If the
printer driver 304 determines in step S602 that a cloud environment can be used, as shown inFIG. 1 , theprinter driver 304 transfers the PDL data to thePDL segmentation server 103 on the cloud in step S604. With this operation, thePDL segmentation server 103 segments the PDL data received in step S605. The details of segmentation processing in thePDL segmentation server 103 will be described later in association with <PDL Segmentation Processing (Web Role)> - The
PDL segmentation server 103 then transmits the segmented PDL data obtained by segmentation in step S605 to thevirtual processor group 102. In step S606, thevirtual processor group 102 concurrently generates the DLs of the segmented PDL data. The details of the processing in thevirtual processor group 102 will be described later in association with <Segmented PDL Data DL Generation Processing (Worker Role)> - The generated DLs are transmitted to the
output device 104. In step S607, theoutput device 104 renders the respective DLs to generate a bitmap, and performs superimposition processing as needed, thereby generating a one-page image. The details of this processing in theoutput device 104 will be described in association with <Rendering Processing in Device>. - <PDL Segmentation (Web Role)>
- Web Role processing as PDL segmentation processing in this embodiment will be described next with reference to
FIG. 7 . In step S701, thePDL segmentation server 103 receives PDL data as a processing target via theInternet 101. In step S702, thePDL segmentation server 103 checks the engine speed of theoutput device 104. In step S703, thePDL segmentation server 103 checks the number and throughputs of virtual processors of thevirtual processor group 102. - The
PDL segmentation server 103 then interprets the PDL data received in step S704 to check in step S705 whether each page of the PDL data is a heavy page that does not allow to achieve the engine speed unless the render commands included in the page are segmented with a threshold or more. If NO in step S705, thePDL segmentation server 103 transmits the unsegmented PDL data to thevirtual processor group 102 in 706. The process then advances to 710. If YES in 705, thePDL segmentation server 103 decides the number of levels included in each segmented PDL data in consideration of the number of levels in each page, the number of virtual processors, and superimposition in step S707. The details of this processing will be described in association with <Processing of Deciding Numbers of Levels in PDL Segmentation> - The
PDL segmentation server 103 then segments the PDL data into layers (for each layer) based on the numbers of levels decided in step S708. It is easy to perform segmentation because objects to be rendered are described in the PDL data from the deepest layer. Each PDL data segmented in step S709 is then transmitted to thevirtual processor group 102. In step S710, thePDL segmentation server 103 determines whether the processing of all the pages of the received PDL data is complete. If NO in step S710, the process returns to step S704 to process the next page. If thePDL segmentation server 103 determines in step S710 that the processing of all the pages is complete, thePDL segmentation server 103 terminates this processing. - <Segmented PDL Data DL Generation Processing (Worker Role)>
- Worker Role processing as segmented PDL data DL generation processing in this embodiment will be described next with reference to
FIG. 8 . In step S801, thevirtual processor group 102 receives segmented PDL data to be processed from thePDL segmentation server 103. In step S802, thevirtual processor group 102 generates a DL from each segmented PDL data received in step S802. In step S803, thevirtual processor group 102 determines whether to perform processing up to rendering processing by determining whether the band between theoutput device 104 and thevirtual processor group 102 is wider than a predetermined band. If YES in step S803, thevirtual processor group 102 interprets the DL and renders it into a bitmap in step S804. - If NO in step S803, the process advances to step S805, in which the
virtual processor group 102 determines whether there is any transmission request from theoutput device 104. If thevirtual processor group 102 determines that there is no transmission request, the process loops until theoutput device 104 issues a transmission request. If there is a transmission request from theoutput device 104, the process advances to step S806, in which thevirtual processor group 102 transfers the DL generated in step S802 or the bitmap generated in step S804 to theoutput device 104, and terminates this processing. - <Rendering Processing in Device>
- Rendering processing in the device according to this embodiment will be described next with reference to
FIG. 9 . In step S901, theoutput device 104 receives print information from theprinter driver 304 or Web Role. In step S902, theoutput device 104 determines whether the received data is segmented data. If NO in step S902, theoutput device 104 determines in step S903 whether the data is a DL. If NO in step S903, theoutput device 104 receives the bitmap from thevirtual processor group 102 in step S904. The process then advances to step S919. If YES in step S903, theoutput device 104 receives the DL from thevirtual processor group 102 in step S905. In step S906, theoutput device 104 renders the received DL into a bitmap. The process then advances to step S919. - If the
output device 104 determines in step S902 that the received data is segmented data, theoutput device 104 determines in step S907 whether the data is DL data. If NO in step S907, theoutput device 104 waits in step S908 until a bitmap to be received is generated. If a bitmap is generated, theoutput device 104 receives the generated bitmap from thevirtual processor group 102 in step S909. In step S910, theoutput device 104 determines whether it is necessary to perform superimposition. If theoutput device 104 determines that there is no need to perform superimposition as in a case in which the bitmap corresponds to the background surface, the process advances to step S912. If it is necessary to perform superimposition, theoutput device 104 performs superimposition processing for the background and the currently processed bitmap in step S911. In step S912, theoutput device 104 determines whether the processing of all the data is complete. If the processing is not complete, the process advances to step S908. If the processing is complete, the process advances to step S919. - If the
output device 104 determines in step S907 that the data is DL data, theoutput device 104 waits in step S913 until a DL to be received is generated. When DL data is generated, theoutput device 104 receives the DL data from thevirtual processor group 102 in step S914. In step S915, theoutput device 104 determines whether it is necessary to perform superimposition. If theoutput device 104 determines in step S917 that there is no need to perform superimposition as in a case in which the DL data corresponds to the background surface, theoutput device 104 renders the DL data into a bitmap. The process then advances to step S918. If it is necessary to perform superimposition in step S916, theoutput device 104 generates a bitmap from the DL under processing which is to be superimposed while performing superimposition processing for the bitmap on the background. In step S918, theoutput device 104 determines whether the processing of all the data is complete. If NO in step S918, the process returns to step S913 to start processing the next layer. If YES in step S918, theoutput device 104 outputs the generated bitmap onto a sheet in step S919, and terminates this processing. - <Processing of Deciding Numbers of Levels in PDL Segmentation>
- The processing of deciding the numbers of levels in PDL segmentation in this embodiment will be described next with reference to
FIG. 10 . First of all, in step S1001, thePDL segmentation server 103 inputs three conditions including a number LSN of levels included in PDL data to be processed, an engine speed ES of theoutput device 104, and a throughput PS of thevirtual processor group 102. ThePDL segmentation server 103 then calculates a number LNP of levels that can be processed by thevirtual processor group 102 within the engine speed ES from the throughput PS and the engine speed ES. - In step S1002, the
PDL segmentation server 103 calculates a number PN of virtual processors for processing the PDL data at the engine speed by dividing the number LSN of levels included in the PDL data by the throughput of thevirtual processor group 102. In step S1003, thePDL segmentation server 103 determines whether the calculated number PN is larger than one. If NO in step S1003, thePDL segmentation server 103 assigns one-page PDL data to one virtual processor without segmenting the PDL data in step S1004. - If the
PDL segmentation server 103 determines in step S1003 that the calculated number PN is larger than one, thePDL segmentation server 103 calculates a median value ML of the number of levels in the PDL data by dividing the number of levels included in the PDL data by the number of virtual processors required in step S1005. In step S1006, thePDL segmentation server 103 calculates a weight LW for the number of levels for each virtual processor by dividing the median value ML of levels by the value obtained dividing the number LSN of levels included in the PDL data by two. In step S1007, thePDL segmentation server 103 decides the number of levels by adding or deleting the number of levels corresponding to the weight for each virtual processor with reference to the median value ML as the center. - In step S1008, the
PDL segmentation server 103 determines whether the determined number of levels is too large or small. If NO in step S1008, thePDL segmentation server 103 terminates this processing. If YES in step S1008, thePDL segmentation server 103 adjusts the numbers of levels by adding or deleting the number of levels corresponding to the excess or deficiency to or from the number of levels on the foreground layer in step S1009. ThePDL segmentation server 103 then terminates this processing. - <Processing Speed Estimation in Layer Segmentation>
- Processing speed estimation in layer segmentation in this embodiment will be described next with reference to
FIGS. 12A and 12B .FIG. 12A shows various kinds ofconditions 1201 assumed in this estimation. First of all, data processed is PDL data having complicated render commands which do not allow to achieve an engine speed of 50 ppm, if the current PDL data is not segmented. In this case, assume the following. When the levels are uniformly distributed, the time taken to generate the DL of one layer is 0.3 sec. The time taken for the RIP (Hard) on the device to render is 0.1 sec. The time taken for the RIP (Soft) on virtual processors is 0.3 sec. The time taken to perform superimposition at the time of rendering is 0.1 sec. The time taken to transfer the DL to the device is 0.1 sec. The time taken to transmit a bitmap to the device is 0.3 sec. Assume also that the number of DLs that can achieve the engine speed is estimated to be five. - Under these premises, as shown in
FIG. 12B , atiming chart 1202 indicates a case in which all the processes are performed within the device without using the existing cloud. In this case, since one CPU generates DLs, it is possible to process the DLs concurrently with RIP. This processing takes a total of 1.8 sec. Obviously, 50 ppm cannot be achieved. - A
timing chart 1203 indicates a case in which virtual processors perform processing up to the generation of DLs without weighting operation described in association with <Weighting in Page Segmentation>. In this case, DLs are concurrently generated. However, it is not possible to start RIP until the processing associated with the background layer is complete. Therefore, the generation of DLs and RIP are not concurrently performed. As a consequence, this processing takes a total of 1.3 sec. - A
timing chart 1204 indicates a case in which virtual processors performs processing up to the generation of DLs while performing weighting operation described in association with <Weighting in Page Segmentation>. In this case, since DLs are concurrently generated with weighting operation, the generation of the DL of the background layer is complete earlier than other layers, the DLs are generated concurrently with RIP. This processing takes a total of 1.1 sec. Obviously, an engine speed of 50 ppm can be achieved. - A
timing chart 1205 indicates a case in which virtual processors perform processing up to the generation of bitmaps without performing weighting operation described in association with <Weighting in Page Segmentation>. In this case, although parallel processing is performed among the respective layers, the generation of DLs is not parallel with the generation of bitmaps. In addition, rendering to bitmaps increases the amount of information as compared with DLs, and hence it takes much time to transfer the information to the device. Obviously, this processing takes a total of 1.3 sec. - A
timing chart 1206 indicates a case in which virtual processors perform processing up to the generation of bitmaps while performing weighting operation described in association with <Weighting in Page Segmentation>. In this case, although parallel processing is performed among the respective layers, the generation of DLs is not parallel with the generation of bitmaps. In addition, rendering to bitmaps increases the amount of information as compared with DLs, and hence it takes much time to transfer the information to the device. Obviously, this processing takes a total of 1.2 sec. - As described above, it is expected to speed up the processing by making virtual processors generate segmented DLs and to speed up the processing by implementing parallel processing in PDL segmentation by performing weighting operation.
- <When Virtual Processor Group Generate No DL even after Lapse of Predetermined Period of Time>
- Processing to be performed when the virtual processor group generates no DL even after the lapse of a predetermined period of time will be described next with reference to
FIG. 13A . In step S1301, thevirtual processor group 102 determines whether thePDL segmentation server 103 has generated DL data. This determination is the same as that in step S909 or S914. If YES in step S1301, thevirtual processor group 102 terminates this processing. If NO in step S1301, thevirtual processor group 102 determines in step S1302 whether the determination in step S1301 has been performed for a time equal to or more than a time corresponding to a given threshold. If NO in step S1302, the process returns to step S1301 to perform determination again. If YES in step S1302, thevirtual processor group 102 transmits information instructing to reduce the segmentation unit to thePDL segmentation server 103 in step S1303, and then terminates this processing. - <Decision of Number of Virtual Processors in accordance with Charge System>
- The decision of the number of virtual processors in accordance with a charge system will be described next with reference to
FIG. 13B . In step S1304, thePDL segmentation server 103 determines whether the user is charged in accordance with the number of virtual processors to be used. If YES in step S1304, thePDL segmentation server 103 increases the segmentation unit for PDL data in step S1306, and terminates this processing. If NO in step S1304, thePDL segmentation server 103 decreases the segmentation unit to achieve the engine speed, and terminates this processing. - Note that in this embodiment, the PDL data generated by the
client PC 105 is transmitted to the cloud. However, this system may be configured to generate PDL data on the cloud. - According to the present invention, it is possible to minimize the uneven distribution of the numbers of render instructions upon segmentation to perform optimal parallel processing. In addition, the embodiment is configured to segment data in consideration of the performance of the output device. This makes it possible for the output device to fully exert its performance even for data which includes many render instructions and does not allow the conventional output device to exert its performance.
- Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment(s), and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment(s). For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (for example, computer-readable medium).
- While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
- This application claims the benefit of Japanese Patent Application No. 2010-189986, filed Aug. 26, 2010, which is hereby incorporated by reference herein in its entirety.
Claims (9)
1. A print processing method for a printing system in which a client which issues a print instruction, a server including a plurality of processors which process page description language data, and an output device which outputs print data generated from the page description language data are connected to each other via a network,
wherein the server executes:
a reception step of receiving a print instruction from the client;
a decision step of deciding the number of layers into which a page is segmented, based on render instructions included in the page description language data, and deciding the number of processors which perform parallel processing for generation of print data from the page description language data, based on the decided number of layers;
a generation step of generating the print data equal in number to the number of layers based on which the number of processors is decided in the decision step; and
a transmission step of transmitting the print data generated in the generation step in accordance with a request from the output device, and
wherein the output device executes:
a requesting step of requesting the server to transmit the print data; and
an output step of processing the print data upon receiving the print data from the server in the requesting step, and outputting the print data onto a sheet.
2. The method according to claim 1 , wherein in the generation step, it is determined whether the processor renders the print data into a bitmap, and the processor renders the print data into the bitmap when it is determined that the processor renders the print data into the bitmap.
3. The method according to claim 2 , wherein in the determination, it is determined whether a band between the processor and the output device is wider than a predetermined band, and the processor renders the print data into the bitmap when the band is wider than the predetermined band.
4. The method according to claim 1 , wherein the output device transmits information to reduce a segmentation unit of the page description language data if no print data is received from the server when a predetermined period of time has elapsed after the server is requested to transmit print data.
5. The method according to claim 1 , wherein the server increases a segmentation unit of the page description language data if a charge is imposed in accordance with the number of processors when the number of layers is decided.
6. A printing system in which a client which issues a print instruction, a server including a plurality of processors which process page description language data, and an output device which outputs print data generated from the page description language data are connected to each other via a network,
wherein said server comprises:
a reception unit configured to receive a print instruction from the client;
a decision unit configured to decide the number of layers into which a page is segmented, based on render instructions included in the page description language data, and decide the number of processors which perform parallel processing for generation of print data from the page description language data, based on the decided number of layers;
a generation unit configured to generate the print data equal in number to the number of layers based on which the number of processors is decided by said decision unit; and
a transmission unit configured to transmit the print data generated in the generation step in accordance with a request from the output device, and
wherein said output device comprises:
a requesting unit configured to request said server to transmit the print data; and
an output unit configured to process the print data when said requesting unit receives the print data from said server, and output the print data onto a sheet.
7. A computer-readable recording medium recording a program for causing a computer to execute a print processing method defined in claim 1 .
8. An information processing apparatus comprising:
a segmentation unit configured to segment page description language data for each layer such that the number of layers decreases toward a background; and
a transmission unit configured to transmit page description language data segmented by said segmentation unit for each layer to a plurality of generation units.
9. A printing system comprising:
a segmentation unit configured to segment page description language data for each layer such that the number of layers decreases toward a background;
a plurality of generation units configured to generate print data based on page description language data segmented by the segmentation unit for each layer; and
a printing unit configured to print based on print data generated by said generation unit.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/049,131 US9098225B2 (en) | 2010-08-26 | 2013-10-08 | Print processing method and printing system |
US14/801,660 US9411548B2 (en) | 2010-08-26 | 2015-07-16 | Print processing method and printing system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010-189986 | 2010-08-26 | ||
JP2010189986A JP5641825B2 (en) | 2010-08-26 | 2010-08-26 | Apparatus, control method therefor, and program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/049,131 Division US9098225B2 (en) | 2010-08-26 | 2013-10-08 | Print processing method and printing system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120050773A1 true US20120050773A1 (en) | 2012-03-01 |
Family
ID=45696876
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/182,314 Abandoned US20120050773A1 (en) | 2010-08-26 | 2011-07-13 | Print processing method and printing system |
US14/049,131 Expired - Fee Related US9098225B2 (en) | 2010-08-26 | 2013-10-08 | Print processing method and printing system |
US14/801,660 Expired - Fee Related US9411548B2 (en) | 2010-08-26 | 2015-07-16 | Print processing method and printing system |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/049,131 Expired - Fee Related US9098225B2 (en) | 2010-08-26 | 2013-10-08 | Print processing method and printing system |
US14/801,660 Expired - Fee Related US9411548B2 (en) | 2010-08-26 | 2015-07-16 | Print processing method and printing system |
Country Status (2)
Country | Link |
---|---|
US (3) | US20120050773A1 (en) |
JP (1) | JP5641825B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140204085A1 (en) * | 2010-09-08 | 2014-07-24 | Navteq B.V. | Generating a Multi-Layered Geographic Image and the Use Thereof |
US20150020073A1 (en) * | 2011-10-25 | 2015-01-15 | Dell Products, Lp | Network Traffic Control by Association of Network Packets and Processes |
US20150062169A1 (en) * | 2013-08-28 | 2015-03-05 | DeNA Co., Ltd. | Image processing device and non-transitory computer-readable storage medium storing image processing program |
US9888144B2 (en) | 2015-06-17 | 2018-02-06 | Canon Kabushiki Kaisha | Printing apparatus for skipping user authentication for an external device when communicating through a direct wireless connection, method of controlling the same, and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110255124A1 (en) * | 2010-04-15 | 2011-10-20 | Xerox Corporation | Robust recovery of a page parallel rip system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3384223B2 (en) * | 1996-01-29 | 2003-03-10 | 富士ゼロックス株式会社 | Print processing system |
JP2000141811A (en) * | 1998-11-11 | 2000-05-23 | Nec Corp | Printer system |
JP4125228B2 (en) | 2003-12-26 | 2008-07-30 | キヤノン株式会社 | Information processing apparatus and method, program, storage medium, and preflight check system |
US7206915B2 (en) * | 2004-06-03 | 2007-04-17 | Emc Corp | Virtual space manager for computer having a physical address extension feature |
JP4724517B2 (en) * | 2005-09-29 | 2011-07-13 | キヤノン株式会社 | Image processing system, image processing method, program, and storage medium |
US8228540B2 (en) * | 2007-07-31 | 2012-07-24 | Esko Ip Nv | Rasterizing variable and non-variable data for printing |
US8228555B2 (en) | 2008-03-31 | 2012-07-24 | Konica Minolta Laboratory U.S.A., Inc. | Systems and methods for parallel display list rasterization |
JP5450998B2 (en) | 2008-07-23 | 2014-03-26 | キヤノン株式会社 | Image forming apparatus |
JP4893815B2 (en) * | 2009-12-11 | 2012-03-07 | コニカミノルタビジネステクノロジーズ株式会社 | Variable printing control apparatus and control program |
JP5051327B1 (en) * | 2012-03-22 | 2012-10-17 | 富士ゼロックス株式会社 | Image processing apparatus and program |
-
2010
- 2010-08-26 JP JP2010189986A patent/JP5641825B2/en not_active Expired - Fee Related
-
2011
- 2011-07-13 US US13/182,314 patent/US20120050773A1/en not_active Abandoned
-
2013
- 2013-10-08 US US14/049,131 patent/US9098225B2/en not_active Expired - Fee Related
-
2015
- 2015-07-16 US US14/801,660 patent/US9411548B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110255124A1 (en) * | 2010-04-15 | 2011-10-20 | Xerox Corporation | Robust recovery of a page parallel rip system |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140204085A1 (en) * | 2010-09-08 | 2014-07-24 | Navteq B.V. | Generating a Multi-Layered Geographic Image and the Use Thereof |
US9508184B2 (en) * | 2010-09-08 | 2016-11-29 | Here Global B.V. | Generating a multi-layered geographic image and the use thereof |
US20150020073A1 (en) * | 2011-10-25 | 2015-01-15 | Dell Products, Lp | Network Traffic Control by Association of Network Packets and Processes |
US10007544B2 (en) * | 2011-10-25 | 2018-06-26 | Dell Products, Lp | Network traffic control by association of network packets and processes |
US20150062169A1 (en) * | 2013-08-28 | 2015-03-05 | DeNA Co., Ltd. | Image processing device and non-transitory computer-readable storage medium storing image processing program |
US9177531B2 (en) * | 2013-08-28 | 2015-11-03 | DeNA Co., Ltd. | Image processing device and non-transitory computer-readable storage medium storing image processing program |
US9888144B2 (en) | 2015-06-17 | 2018-02-06 | Canon Kabushiki Kaisha | Printing apparatus for skipping user authentication for an external device when communicating through a direct wireless connection, method of controlling the same, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US9098225B2 (en) | 2015-08-04 |
JP5641825B2 (en) | 2014-12-17 |
US20140036313A1 (en) | 2014-02-06 |
JP2012048500A (en) | 2012-03-08 |
US20150317547A1 (en) | 2015-11-05 |
US9411548B2 (en) | 2016-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8908207B2 (en) | Print server, print control system and print control method having a raster image processor (RIP) function | |
US9411548B2 (en) | Print processing method and printing system | |
US8743389B2 (en) | Methods and systems rendering a print job | |
US8625133B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
US20190065128A1 (en) | Server apparatus, method of controlling the same, storage medium, and printing kystem | |
US8488171B2 (en) | Rendering system, method for optimizing data, and storage medium | |
US9781295B2 (en) | Image processing apparatus, a method for performing specific process on an image processing apparatus, and a computer-readable storage medium for a program to be executed by an image processing apparatus | |
US9164715B2 (en) | Method for managing a print job | |
US20120212782A1 (en) | Image forming apparatus, method for controlling image forming apparatus, and storage medium | |
US8614822B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
JP6465384B2 (en) | Image forming apparatus, parallel processing control program, and parallel processing control method | |
US20100188692A1 (en) | Printing System, Printing Apparatus, and Printing Method | |
JP2011201146A (en) | Image processing device and image processing program | |
JP6518561B2 (en) | Image forming apparatus, operation control program, and operation control method | |
US10382637B2 (en) | Print controller, image forming system, and image forming apparatus | |
JP6372315B2 (en) | Image processing apparatus, parallel processing control program, and parallel processing control method | |
JP6185745B2 (en) | Print control apparatus, print control method, and program | |
JP2015020404A (en) | Image formation device | |
US9146700B2 (en) | Information processing system having image forming apparatus capable of controlling print data obtainment timing, control method therefor, and storage medium | |
US8896872B2 (en) | Print control apparatus, printing system, and non-transitory computer readable medium | |
JP6206056B2 (en) | Processing program, processing apparatus, and processing method | |
US8914591B2 (en) | Information processing apparatus, method for controlling same | |
US20130100498A1 (en) | Image formation processing apparatus and image processing method | |
US20140320894A1 (en) | Intelligent Print Release | |
JP2003341152A (en) | Printing controlling unit, printing controlling method, printing system, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CANON KABUSHIKI KAISHA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ITO, MORIKAZU;REEL/FRAME:027248/0128 Effective date: 20110712 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |