Patent Publication Number: US-8542384-B2

Title: Image processing apparatus, image forming apparatus, and computer readable medium storing program for shared image processing

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2010-066221 filed Mar. 23, 2010. 
     BACKGROUND 
     (i) Technical Field 
     The present invention relates to an image processing apparatus, an image forming apparatus, and a computer readable medium storing a program. 
     SUMMARY 
     According to an aspect of the invention, there is provided an image processing apparatus including a receiving unit, a recognition unit, a calculation unit, a determination unit, and a controller. The receiving unit receives a print job. The recognition unit recognizes hardware information regarding the image processing apparatus. The calculation unit calculates a time required for image processing of the print job received by the receiving unit in accordance with the hardware information recognized by the recognition unit and image data in the print job. The determination unit determines whether or not the time required for the image processing of the print job calculated by the calculation unit is shorter than a predetermined time. The controller performs assignment control so that, when the determination unit determines that the time required for the image processing of the print job is not shorter than the predetermined time, a dynamic reconfigurable processor included in a second image processing apparatus different from the image processing apparatus processes a portion of the print job. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Exemplary embodiment(s) of the present invention will be described in detail based on the following figures, wherein: 
         FIG. 1  is a block diagram illustrating the configuration of a system including an image forming apparatus according to an exemplary embodiment; 
         FIG. 2  is a configuration diagram of a workstation; 
         FIG. 3  illustrates the configuration of a hardware accelerator; 
         FIG. 4  is a flowchart illustrating a process executed by a terminal apparatus and a workstation; 
         FIG. 5  illustrates an example of data stored in a storage unit; 
         FIG. 6A  is a sequence diagram illustrating an example of image processing executed by a hardware accelerator; 
         FIG. 6B  is a sequence diagram illustrating an example of image processing executed by other hardware accelerators; 
         FIG. 7A  is a database illustrating the relationship between the workstation, hardware accelerator, and drawing processor numbers, and functions; 
         FIGS. 7B and 7C  illustrate portions of the database illustrated in  FIG. 7A ; 
         FIG. 8  illustrates the relationship between the processing time of a printer and the processing time of a workstation; 
         FIG. 9  is a flowchart illustrating processes executed by workstations; and 
         FIG. 10  illustrates an example of changing of setting information regarding a hardware accelerator. 
     
    
    
     DETAILED DESCRIPTION 
     An exemplary embodiment of the present invention will be described hereinafter with reference to the drawings. 
       FIG. 1  is a block diagram illustrating the configuration of a system including an image forming apparatus according to the exemplary embodiment. 
     The system illustrated in  FIG. 1  includes image forming apparatuses  1 A and  1 B, a pre-processing apparatus  4 , a post-processing apparatus  5 , and a terminal apparatus  6 . The image forming apparatuses  1 A and  1 B may be professional large format printing systems, and include printers  2 A and  2 B and workstations  3 A- 1  to  3 A- 4  and  3 B- 1  to  3 B- 4 , respectively. The number of workstations connected to each printer is not limited to four, and may be at least one. In the following description, plural elements having the same function are specified by a single reference numeral unless specifically identified. For example, the workstations  3 A- 1  to  3 A- 4  and  3 B- 1  to  3 B- 4  are referred to as “workstations  3 A” and “workstations  3 B”, respectively. 
     The workstations  3 A and  3 B may be computers, and are connected to the terminal apparatus  6  via a network  7 . The terminal apparatus  6  may be connected to the workstations  3 A and  3 B via a high-speed data transfer medium. The workstations  3 A and  3 B may also be connected to the printers  2 A and  2 B, respectively, via a high-speed data transfer medium. 
     The pre-processing apparatus  4  holds continuous paper wound in a roll (hereinafter referred to as “roll paper”), and transports the roll paper to the printer  2 A. The printer  2 A prints image data, text data, or other desired data on the front side of the roll paper, and outputs the printed roll paper. The roll paper output from the printer  2 A is reversed and is input to the printer  2 B. The printer  2 B prints image data, text data, or other desired data on the back side of the roll paper, and outputs the roll paper to the post-processing apparatus  5 . The post-processing apparatus  5  rewinds the roll paper output from the printer  2 B. 
     The terminal apparatus  6  generates a print job to be printed on the roll paper by the printers  2 A and  2 B, and a printing instruction, and transmits the print job and the printing instruction to the workstations  3 A and  3 B via the network  7 . The workstations  3 A and  3 B receive the print job and printing instruction transmitted from the terminal apparatus  6 , and convert the print job into raster image data that can be printed by the printers  2 A and  2 B. Further, the workstations  3 A and  3 B control the printing operation of the printers  2 A and  2 B so that the raster image data is printed on the roll paper by the printers  2 A and  2 B. Raster data represents grids of values of pixels into which an image is divided, indicating the color or density of the pixels, using a color system such as an RGB color system based on red, green, and blue or a YMCK color system based on yellow, magenta, cyan, and black. The printers  2 A and  2 B print image data, text data, and other desired data on the roll paper in accordance with the printing instruction under the control of the workstations  3 A and  3 B, respectively. 
     The printers  2 A and  2 B may form, for example, image data, text data, or other desired data for two pages of A4 size in the width direction of the roll paper. Further, the printers  2 A and  2 B may print, for example, image data, text data, or other desired data of A4 size in a continuous manner in the direction in which the roll paper is transported. The printers  2 A and  2 B may be color printers or monochrome printers. 
       FIG. 2  is a configuration diagram of the workstations  3 A and  3 B. In  FIG. 2 , elements of the workstation  3 B are represented by numbers in parentheses. 
     The workstation  3 A includes a controller  11 A (determination unit, execution unit), a storage unit  12 A, hardware accelerators  13 A- 1  to  13 A-N, where N is a natural number, a printer interface (I/F) board  14 A, a network interface card (NIC)  15 A, and a user interface (UI)  17 A (instruction unit). Similarly, the workstation  3 B includes a controller  11 B (determination unit, execution unit), a storage unit  12 B, hardware accelerators  13 B- 1  to  13 B-N, a printer interface (I/F) board  14 B, a network interface card (NIC)  15 B, and a UI  17 B (instruction unit). The configuration of the workstation  3 B is similar to the configuration of the workstation  3 A, and a description thereof is thus omitted. 
     The controller  11 A may be formed of a central processing unit (CPU), and is connected to the storage unit  12 A, the hardware accelerators  13 A- 1  to  13 A-N, the printer I/F board  14 A, the network interface card (NIC)  15 A, and the UI  17 A via a bus  16 A. The controller  11 A controls the operation of the storage unit  12 A, the hardware accelerators  13 A- 1  to  13 A-N, the printer I/F board  14 A, the network interface card (NIC)  15 A, and the UI  17 A. Further, the controller  11 A communicates with the controller  11 B of the workstation  3 B via the network interface card (NIC)  15 A. 
     The network interface card  15 A receives a print job transmitted from the terminal apparatus  6 . The hardware accelerators  13 A- 1  to  13 A-N perform various image processing operations, which have been specified, on the print job to convert the print job into raster image data that can be printed by the printer  2 A, and store the raster image data in the storage unit  12 A. The hardware accelerators  13 A- 1  to  13 A-N are capable of communicating with the hardware accelerators  138 - 1  to  13 B-N of the workstation  3 B via the network interface card (NIC)  15 A. The storage unit  12 A may be implemented by a memory, a hard disk drive, or any other suitable device. The printer I/F board  14 A performs predetermined processing on the print data subjected to the image processing operations, which is stored in the storage unit  12 A, and transfers the resulting print data to the printer  2 A. The predetermined processing may include a calibration process for performing tone correction of image data using correction data from the printer  2 A (for example, color reproduction characteristic distribution data on a drum), and a protocol selection process for selecting a protocol to be used to transfer the print data. 
     The UI  17 A may be used for editing data, table information, or any other suitable data stored in the storage unit  12 A or for controlling the operation of the printer  2 A. 
       FIG. 3  is a diagram illustrating the configuration of the hardware accelerator  13 A- 1 . The configuration of the hardware accelerators  13 A- 2  to  13 A-N and  13 B- 1  to  13 B-N is similar to the configuration of the hardware accelerator  13 A- 1 . 
     The hardware accelerator  13 A- 1  may serve as a RIP-assist board for assisting a software-based raster image processor (RIP). The hardware accelerator  13 A- 1  may also serve as a page creation board for creating a page of a specified size (for example, A4 size) on roll paper. 
     The hardware accelerator  13 A- 1  includes an external interface  21 , drawing processors  22 - 1  to  22 -N, where N is a natural number, and memories  23 - 1  to  23 -N. The drawing processors  22 - 1  to  22 -N are connected to the external interface  21  via a bus  24 . The drawing processors  22 - 1  to  22 -N are connected to the memories  23 - 1  to  23 -N, respectively. 
     The external interface  21  may be a communication interface provided between the bus  16 A illustrated in  FIG. 2  and the bus  24 . The external interface  21  executes data communication between the controller  11 A illustrated in  FIG. 2  and the drawing processors  22 - 1  to  22 -N. 
     Next, the configuration of the drawing processor  22 - 1  will be described. The configuration of the drawing processors  22 - 2  to  22 -N is similar to the configuration of the drawing processor  22 - 1 . 
     The drawing processor  22 - 1  may be a processor (dynamic reconfigurable processor) capable of dynamically replacing its on-chip circuit configuration. In response to an instruction for performing multiple image processing operations, the drawing processor  22 - 1  repeatedly executes a process of replacing the circuit configuration. For example, after the end of the initial image processing operation, the drawing processor  22 - 1  may replace the on-chip circuit configuration to support the next image processing operation. The drawing processor  22 - 1  includes a system controller  31 , an arithmetic unit group  32 , a wired connection information storage unit  33 , a high-speed bus switch  34 , a memory interface  35 , and a bus interface  36 . 
     The arithmetic unit group  32  may include various arithmetic units such as an adder and a multiplier. The wired connection information storage unit  33  stores plural pieces of wired connection information for implementing image processing requested from the controller  11 A by combining various arithmetic units included in the arithmetic unit group  32 . The plural pieces of wired connection information are read from the memory  23 - 1 , and are stored in the wired connection information storage unit  33 . 
     The system controller  31  executes a requested image processing by selecting one of the pieces of wired connection information stored in the wired connection information storage unit  33  in accordance with an image processing command (image processing request) from the controller  11 A and by combining various arithmetic units included in the arithmetic unit group  32  in accordance with the selected piece of wired connection information. Therefore, even upon receipt of an instruction for performing plural image processing operations, the drawing processor  22 - 1 , which may be a dynamic reconfigurable processor, executes the requested plural image processing operations only by appropriately changing wired connection information. Thus, the chip area is smaller than that in a field programmable gate array (FPGA) or application specific integrated circuit (ASIC) processor. In the exemplary embodiment, dynamic reconfigurable processors are used as the drawing processors  22 . However, FPGA or ASIC processors may be used as the drawing processors  22 . 
     The high-speed bus switch  34  may be a bus switch that allows quick switching of a data path among the system controller  31 , the arithmetic unit group  32 , the memory interface  35 , and the bus interface  36 . The memory interface  35  may be an interface for transmitting and receiving data between the memory  23 - 1  and the high-speed bus switch  34 . The bus interface  36  may be an interface for transmitting and receiving data between the bus  24  and the high-speed bus switch  34 . The memory  23 - 1  stores connection information described below, a table, and other suitable data. 
     With the use of the above configuration, the drawing processor  22 - 1  implements an image processing function specified in an image processing command from the controller  11 A. 
       FIG. 4  is a flowchart illustrating a process executed by the terminal apparatus  6  and the workstation  3 A. The process illustrated in  FIG. 4  may also be executed by the workstation  3 B. 
     First, the terminal apparatus  6  receives a print job, and divides the print job into pages (step S 1 ). Then, the controller  11 A divides data included in each page into text data and image data (step S 2 ). The controller  11 A executes a RIP process by software on the obtained text data (step S 3 ). 
     The hardware accelerator  13 A- 1  executes a RIP process on the obtained image data (step S 4 ). Plural hardware accelerators may execute the processing of step S 4 . The RIP process performed in step S 4  may include various image processing such as a Joint Photographic Experts Group (JPEG) expansion process, an enlargement/reduction process, and a color space conversion process. Then, in step S 4 , a RIP-processed raw image in YMCK format is generated. 
     Then, the controller  11 A receives the RIP-processed image data, and combines the RIP-processed image data with the text data on which a RIP process has been performed by software to generate binary images of respective YMCK colors (step S 5 ). 
     The hardware accelerators  13 A- 2  to  13 -N receive image data for one page, which forms a binary image, and executes a rotation process or an imposition process (a process for defining a layout of, for example, two pages of image data of A4 size in an A3-size region) on the received image data (step S 6 ). 
     Finally, the printer I/F board  14 A receives image data on which a rotation process or an imposition process has been performed from the hardware accelerators  13 A- 2  to  13 -N, and executes a calibration process for performing tone correction of the received image data using correction data from the printer  2 A (for example, color reproduction characteristic distribution data on a drum) and a protocol selection process for selecting a protocol to be used to transfer the print data. Then, the printer I/F board  14 A transmits image data on which all the processes have been performed to the printer  2 A (step S 7 ). 
       FIG. 5  is a diagram illustrating an example of data stored in the storage unit  12 A. The storage unit  12 B stores similar data. 
     As illustrated in  FIG. 5 , the storage unit  12 A includes expansion process connection information  41 , reduction process connection information  42 , rotation process connection information  43 , color conversion process connection information  44 , user tone reproduction curve (TRC) process connection information  45 , calibration process connection information  46 , filtering process connection information  47 , enlargement process connection information  48 , screen process connection information  49 , page rotation process connection information  50 , and page imposition process connection information  51 . Further, the storage unit  12 A includes a color conversion table  52 , a user TRC table  53 , and a calibration table  54 . Each connection information includes the wired connection information described above, parameters for determining the operation of the drawing processors  22 , and other suitable data. 
     The connection information and tables described above are used by the drawing processors  22 . The expansion process connection information  41  may be used in a process for expanding image data such as a JPEG expansion process. The reduction process connection information  42  may be used when the drawing processors  22  reduce image data. The rotation process connection information  43  may be used when the drawing processors  22  rotate image data. 
     The color conversion process connection information  44  and the color conversion table  52  may be used when the drawing processors  22  execute color conversion of image data. For example, the drawing processors  22  convert the RGB components of image data into the CMY components in accordance with the color conversion table  52 . The user TRC process connection information  45  and the user TRC table  53  may be used when the drawing processors  22  perform tone correction of image data. For example, the drawing processors  22  perform tone correction of image data in accordance with a tone correction curve in the user TRC table  53 , which is specified by the user. 
     The calibration process connection information  46  and the calibration table  54  may be used when the drawing processors  22  execute a calibration process on image data. The calibration process is a process for performing tone correction of image data to compensate for the effect of environmental change or aging change on the printer  2 A. The calibration table  54  is updated when the drawing processors  22  receive correction data from the printer  2 A at a predetermined timing (such as at the time of the start of a print job or at the end of each printing operation of 1,000 pages). The filtering process connection information  47  may be used when the drawing processors  22  remove noise in image data. 
     The enlargement process connection information  48  may be used when the drawing processors  22  enlarge image data to a specified size. The screen process connection information  49  may be used when the drawing processors  22  convert multivalued image data of the CMY components and multivalued image data of the K component into binary image data of the CMYK components. The page rotation process connection information  50  may be used when the drawing processors  22  rotate image data for one page. The page imposition process connection information  51  may be used when the drawing processors  22  define a layout of each page of image data in a predetermined region. 
     When the controller  11 A outputs an image processing request to the drawing processor  22 - 1 , connection information including wired connection information and a table, which are specified by the image processing request, are output together to the drawing processor  22 - 1 , and are stored in the memory  23 - 1 . The connection information stored in the memory  23 - 1  is stored in the wired connection information storage unit  33  by using the system controller  31 . The system controller  31  selects a piece of wired connection information stored in the wired connection information storage unit  33  in accordance with the image processing request, and combines various arithmetic units included in the arithmetic unit group  32  in accordance with the selected piece of wired connection information to create a circuit that executes the corresponding image processing operation. Then, the requested image processing is executed. In image processing that requires a table, the system controller  31  reads a table from the memory  23 - 1 , as desired. 
       FIG. 6A  is a sequence diagram illustrating an example of image processing executed by the hardware accelerator  13 A- 1 .  FIG. 6B  is a sequence diagram illustrating an example of image processing executed by the hardware accelerators  13 A- 2  to  13 A-N.  FIG. 6C  is a sequence diagram illustrating an example of processes executed by the printer I/F board  14 A. 
     In  FIG. 6A , the hardware accelerator  13 A- 1  functions as a RIP-assist board (hereinafter referred to as a “RIP-assist function”) for assisting a software-based RIP, and executes a RIP process on image data. RIP processes executed using the RIP-assist function include an expansion process (P 1 ) using the expansion process connection information  41 , a reduction process (P 2 ) using the reduction process connection information  42 , a rotation process (P 3 ) using the rotation process connection information  43 , a color conversion process (P 4 ) using the color conversion process connection information  44  and the color conversion table  52 , a user TRC process (P 5 ) using the user TRC process connection information  45  and the user TRC table  53 , a calibration process (P 6 ) using the calibration process connection information  46  and the calibration table  54 , a filtering process (P 7 ) using the filtering process connection information  47 , an enlargement process (P 8 ) using the enlargement process connection information  48 , and a screen process (P 9 ) using the screen process connection information  49 . The calibration table  54  may be a lookup table in which color data of each color of an input image is associated with color data of the corresponding color of an output image. As described above, the drawing processors  22  included in the hardware accelerator  13 A- 1  execute requested plural image processing operations merely by appropriately changing wired connection information. Thus, after the end of each of the processes P 1  to P 8 , the drawing processors  22  sequentially replace the on-chip circuit configuration to support the next process. 
     In  FIG. 6B , each of the hardware accelerators  13 A- 2  to  13 A-N functions as a page creation board (hereinafter referred to as a “page creation function”) for creating a page of a specified size (for example, A4 size) on roll paper. Processes executed using the page creation function include a page rotation process (P 10 ) using the page rotation process connection information  50 , and a page imposition process (P 11 ) using the page imposition process connection information  51 . 
     Plural hardware accelerators may serve as RIP-assist boards, or a single hardware accelerator may serve as a page creation board. 
     A user sets image processing operations executed as the RIP-assist function or the page creation function among the above image processing operations (P 1  to P 11 ) and the processing order in the controller  11 A through the UI  17 A or the terminal apparatus  6 . The image processing operations executed as the RIP-assist function or the page creation function and the processing order are saved in the storage unit  12 A as setting information. The setting information is represented in the sequence diagrams illustrated in  FIGS. 6A and 6B . Upon receipt of a print job from the terminal apparatus  6 , the controller  11 A reads setting information from the storage unit  12 A, and sequentially outputs the connection information and table corresponding to the set processes to a hardware accelerator  13 A that is specified by a database illustrated in  FIGS. 7A to 7C  described below in accordance with the setting information. Setting information, which may be set using a sequence diagram, allows a user to easily recognize image processing operations executed by the hardware accelerator  13 A and the printer I/F board  14 A and the processing order. 
       FIG. 7A  illustrates a database representing the relationship between the workstation, hardware accelerator, and drawing processor numbers, and functions.  FIGS. 7B and 7C  illustrate portions of the database illustrated in  FIG. 7A . 
     The database illustrated in  FIG. 7A  is stored in the storage unit  12 A, and is set using the UI  17 A provided in the workstation  3 A or using the terminal apparatus  6 . Further, the database illustrated in  FIG. 7A  may be edited using the UI  17 A or the terminal apparatus  6 . The database is also stored in the storage unit  12 B. 
     As illustrated in  FIG. 7A , the database describes the relationship between the numbers of the hardware accelerators and drawing processors included in all the workstations, and functions. In  FIG. 7A , all the drawing processors  22 - 1  to  22 -N included in the hardware accelerator  13 A- 1  are assigned the RIP-assist function for the front side of the roll paper. Alternatively, for example, as illustrated in  FIG. 7B , the RIP-assist function or the page creation function may be assigned to each drawing processor included in the hardware accelerator  13 A- 1 . Further, as illustrated in  FIG. 7C , a specific image processing operation in the RIP-assist function or the page creation function may be assigned to a drawing processor. 
     In accordance with the above database, the controller  11 A recognizes the hardware accelerators and the drawing processors that are assigned the RIP-assist function and the page creation function. The hardware accelerators  13 A or drawing processors  22  to be assigned to the respective image processing operations are changed in accordance with the database. However, the controller  11 A may change the hardware accelerators  13 A or drawing processors  22  to be assigned to the respective image processing operations in response to an instruction (specifically, for updating the database) from the terminal apparatus  6  or the UI  17 A. 
       FIG. 8  illustrates the relationship between the processing time of the printer  2 A and the processing time of the workstation  3 A. 
     As illustrated in  FIG. 8 , in a case where the printer  2 A prints image data for one page of A4 size with a resolution of 600 dots per inch (dpi) by 600 dpi at a speed of 400 pages per minutes (ppm), printing is completed in 0.15 seconds (=60/400 ppm). Therefore, in order to make the best use of the processing performance of the printer  2 A, it is desirable that, for example, the hardware accelerator  13 A- 1  execute the RIP-assist function within 0.15 seconds and output the image data to the hardware accelerators  13 A- 2  to  13 A-N. Further, it is desirable that the hardware accelerators  13 A- 2  to  13 A-N execute the page creation function within 0.15 seconds and output the image data to the printer I/F board  14 A. Further, it is desirable that the printer I/F board  14 A execute predetermined processing within 0.15 seconds and output the image data to the printer  2 A. 
     As illustrated in  FIGS. 6A and 6B , the RIP-assist function and the page creation function are sequences including plural image processing operations. The controller  11 A calculates the time required for each image processing operation using the number of pixels of input image data. The time required for the drawing processors  22  to process a predetermined number of pixels is determined in advance. For example, the time required for a drawing processor to process 100,000 pixels may be 1/10000 seconds. 
     In the RIP-assist function, in a case where the processing time of each drawing processor  22  is 3 seconds and the RIP-assist function is completed within 0.15 seconds, 20 (=3/0.15) drawing processors  22  are necessary. In this case, if four drawing processors  22  are mounted per hardware accelerator  13 A, five hardware accelerators  13 A are necessary. Even if each of the workstations  3 A- 1  to  3 A- 4  has one hardware accelerator  13 A, one hardware accelerator  13 A or four drawing processors  22  are additionally needed. 
     In the exemplary embodiment, in a case where all the image processing operations are not completed within a desired image processing time even with the use of the hardware accelerators  13 A or drawing processors  22  mounted in the workstation  3 A, the hardware accelerators  13 B or drawing processors  22  mounted in the workstation  3 B are used. That is, upon receipt of a print job that requires a long processing time, the workstation  3 A uses the drawing processors  22  included in the workstation  3 B which has received a print job that requires a short processing time, by taking into account the time difference between the processing time of the print job applied to the front side and the processing time of the print job applied to the back side. 
       FIG. 9  is a flowchart illustrating processes executed by the workstations  3 A and  3 B. Here, the workstation  3 A executes the process in the left part of the flowchart illustrated in  FIG. 9 , and the workstation  3 B executes the process in the right part of the flowchart illustrated in  FIG. 9 . Further, it may be assumed that the printer  2 A prints pages of image data on the front side of roll paper and that the printer  2 B prints pages of text data on the back side of the roll paper. 
     First, the controller  11 A examines features of a print job (step S 11 A). Specifically, the controller  11 A determines whether or not the data included in the print job is image data. Here, only the data included in the print job is image data. 
     Then, the controller  11 A examines hardware resources (drawing processors  22 ) provided in the workstation  3 A (step S 12 A). Specifically, the controller  11 A examines the number of drawing processors  22  provided in the workstation  3 A or the version of the drawing processors  22 . 
     Then, the controller  11 A calculates the processing time required to process image data for one page of A4 size in the print job using the hardware resources (step S 13 A). The controller  11 A may calculate the processing time by, for example, multiplying the time required for one drawing processor  22  to process a predetermined number of pixels by the number of drawing processors  22  provided in the workstation  3 A and by dividing the number of pixels of one piece of image data of A4 size by the multiplication result. 
     Then, the controller  11 A determines whether or not the processing time is shorter than a predetermined time (step S 14 A). The predetermined time may be a value given by multiplying the number of hardware resources provided in the workstation  3 A by the time required for one drawing processor  22  to perform an image processing operation of one piece of image data of A4 size. In other words, the predetermined time may be a value determined by multiplying the number of hardware resources provided in the workstation  3 A by a predefined processing time (that is, the processing time required for one hardware resource to process one page of image data). 
     If NO is determined in step S 14 A, that is, if the workstation  3 A alone is not sufficient to process the print job within a predetermined time, the controller  11 A sends an image processing request to the controller  11 B (step S 15 A). The controller  11 A determines whether or not a permission to use the hardware resources of the workstation  3 B has been received from the controller  11 B (step S 16 A). If NO is determined in step S 16 A, the controller  11 A determines that execution of the image processing is not possible, and then the process ends. If YES is determined in step S 16 A, the controller  11 A transmits setting information including image processing operations to be executed and the processing order and a portion of the print job to the controller  11 B (step S 17 A). 
     Then, the hardware accelerator  13 A and the printer I/F board  14 A execute image processing. In addition, the printer I/F board  14 A receives an image processing result from the controller  11 B and outputs all the image processing results to the printer  2 A (step S 18 A). The processing of step S 18 A and the processing of step S 24 A described below are repeated until the end of the print job (step S 19 A). When the print job ends, the process ends. 
     If YES is determined in step S 14 A, that is, if the workstation  3 A alone is sufficient to process the print job within the predetermined time, the controller  11 A determines whether or not an image processing request has been received from the controller  11 B (step S 20 A). If NO is determined in step S 20 A, the workstation  3 A is in a normal operating state, and the process ends. If YES is determined in step S 20 A, the controller  11 A sends a permission to use the hardware resources of the workstation  3 A to the controller  11 B (step S 21 A). The controller  11 A receives from the controller  11 B setting information including image processing operations to be executed and the processing order and a portion of a print job (step S 22 A). The controller  11 A sequentially outputs a program and table corresponding to the image processing operation specified by the received setting information, the portion of the print job, and the image processing request to hardware accelerators  13 A that are available to use (step S 23 A). The drawing processors  22  in the hardware accelerators  13 A change the circuit configuration in accordance with the image processing request, execute image processing of the portion of the print job in accordance with the received program and table, and transmit an image processing result to the controller  11 B (step S 24 A). Then, the process proceeds to step S 19 A. 
     If the workstation  3 A alone is not sufficient to process the print job within the predetermined time (NO in step S 41 ), as illustrated in steps S 15 A to S 17 A, the controller  11 A utilizes the drawing processors  22  provided in the workstation  3 B to process the print job within the predetermined time. If the workstation  3 A alone is sufficient to process the print job within the predetermined time (YES in step S 14 A), as illustrated in steps S 20 A to S 24 A, the controller  11 A assigns the drawing processors  22  provided in the workstation  3 A to the workstation  3 B to process the print job of the workstation  38 . Similarly, the assignment of the drawing processors  22  is also executed by the controller  11 B. 
     Further, here, by way of example, the printer  2 A prints pages of image data, and the printer  2 B prints pages of text data. Thus, the workstation  3 A alone may not necessarily be sufficient to process a print job. Since the printer  2 B prints pages of text data, the controller  118  executes a software RIP process. In the workstation  3 B, therefore, a drawing processor  22  that is not being used may be present. 
     Accordingly, when the controller  11 A transmits setting information including image processing operations to be executed and the processing order and a portion of the print job to the controller  11 B (step S 17 A), the controller  11 B receives the setting information and the portion of the print job (step S 22 B), and executes image processing of the portion of the print job in accordance with the setting information (steps S 23 B, S 24 B). 
       FIG. 10  illustrates an example of changing of setting information regarding the hardware accelerator  13 B- 1 . As illustrated in  FIG. 10 , before receipt of setting information from the controller  11 A, the controller  11 B has not yet set setting information in the hardware accelerator  13 B- 1 . The reason may be that the controller  11 B executes a software RIP process of text data. After receipt of setting information from the controller  11 A, the controller  11 B sets the setting information received from the controller  11 A in the hardware accelerator  13 B- 1 . This allows the drawing processors  22  included in the hardware accelerator  13 B- 1  to execute image processing operations of the portion of the print job received from the controller  11 A in accordance with the setting information. 
     The controller  11 B may set setting information in the hardware accelerator  13 B- 1  before receipt of setting information from the controller  11 A. In this case, the setting information may be changed. 
     Referring back to  FIG. 9 , the processing executed by the workstation  3 B (the processing of steps S 11 B to S 24 B) is similar to the processing of steps S 11 A to S 24 A described above, and detailed descriptions thereof are thus omitted. As illustrated in  FIG. 9 , when the controller  11 A sends an image processing request to the controller  11 B (step S 15 A), in step S 20 B, the controller  11 B determines whether or not an image processing request has been received from the controller  11 A. Further, when the controller  11 B sends a permission to use the hardware resources of the workstation  3 B to the controller  11 A (step S 21 B), the controller  11 A determines whether or not a permission to use the hardware resources of the workstation  38  has been received from the controller  11 B (step S 16 A). In this manner, when the process performed by the workstation  3 A passes through the route of steps S 11 A to S 19 A, the process performed by the workstation  3 B may pass through the route of steps S 11 B to S 14 B, S 20 B to S 24 B, and S 19 B. Conversely, when the process performed by the workstation  3 A passes through the route of steps S 11 A to S 14 A, S 20 A to S 24 A, and S 19 A, the process performed by the workstation  38  may pass through the route of steps S 11 B to S 19 B. 
     In  FIG. 9 , the hardware resources of the drawing processors  22  are assigned between the workstation  3 A that executes image processing of image data and the workstation  3 B that executes a process of text data. However, the hardware resources of the drawing processors  22  may be assigned between the workstation  3 A- 1  and the workstations  3 A- 2  to  3 A- 4 . For example, if image data represents a solid black image and the workstation  3 A- 1  processes black image data, the drawing processors mounted in the workstations  3 A- 2  to  3 A- 4  are not being used. Thus, the workstation  3 A- 1  may assign the process of the black image data also to the drawing processors  22  mounted in the workstations  3 A- 2  to  3 A- 4 . 
     As described above, according to the exemplary embodiment, the controller  11 A of the workstation  3 A determines whether or not a print job can be processed within a predetermined time using the drawing processors  22  mounted in the workstation  3 A. If it is determined that the print job cannot be processed within the predetermined time, the controller  11 A shares the drawing processors  22  mounted in the workstation  3 B, and causes the drawing processors  22  mounted in the workstation  3 A and the shared drawing processors  22  to process the print job. Therefore, the print job is processed more efficiently. 
     If it is determined that the print job can be processed within the predetermined time, the controller  11 A assigns the hardware resources of the drawing processors  22  mounted in the workstation  3 A to the workstation  3 B to cause the drawing processors  22  mounted in the workstation  3 A to process a portion of the print job of the workstation  3 B. Therefore, the drawing processors  22  mounted in the workstation  3 A are effectively utilized. 
     In the foregoing exemplary embodiment, furthermore, the controller  11 A automatically assigns drawing processors  22  between the workstations  3 A and  3 B. However, the controller  11 A may assign drawing processors  22  between the workstations  3 A and  3 B in response to an instruction (specifically, for updating the database) from the terminal apparatus  6  or the UI  17 A. 
     In another exemplary embodiment, a recording medium on which a program of software for implementing the functions of the workstation  3 A is recorded may be supplied to the workstation  3 A, and the controller  11 A may read and execute the program stored in the recording medium. Examples of the recording medium through which the program is supplied include a compact disc read only memory (CD-ROM), a digital versatile disc (DVD), and a Secure Digital (SD) card. 
     In another exemplary embodiment, furthermore, the workstation  3 A may execute the program of software for implementing the functions of the workstation  3 A. 
     The foregoing description of the exemplary embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.