Patent Publication Number: US-8115942-B2

Title: Image forming apparatus and image forming method

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to an image forming apparatus, such as a printing apparatus and a multifunction peripheral, and an image-forming method thereof. 
     2. Description of the Related Art 
     Recently, in an image forming apparatus having a plurality of functions, such as a printing apparatus and a multifunction peripheral, reduction of power consumption is desired from the viewpoint of energy saving, and therefore, a technical issue of how to control the increase of power consumption associated with the increase of additional functions has been addressed. 
     However, a conventional image forming apparatus is configured to perform an image forming process in a single system, so that the power consumption of the entire image forming apparatus needs to be reduced in order to save power supply to a print engine, which is the most power consuming part in the system. 
     Further, when the entire image forming apparatus is turned off due to power reduction, for example, a problem arises in that print processing, such as print output in progress, is aborted. In order to resolve the above-described problem, for example, Japanese Patent Application Laid-Open No. 2004-268594 discusses a method that, if one of the image forming apparatuses stops a printing process while the printing is performed dispersedly by a plurality of image forming apparatuses, any one of the other image forming apparatuses alternatively takes over the printing process, thereby outputting a print from the alternative image forming apparatus. 
     However, in the method discussed in Japanese Patent Application Laid-Open No. 2004-268594, there is a case that an output result cannot be obtained from a desired image forming apparatus. Further, any difference between a property of the print engine of the image forming apparatus initially scheduled for outputting and that of the alternative image forming apparatus may cause a difference in the output result, for example, a difference in the density of an image. 
     Meanwhile, there have been various demands for more functions to be added to an image forming apparatus such as a printing apparatus and a multifunction peripheral. Accordingly, continuous attempts are made to increase performance in hardware to enable precisely processing information related to such diverse functions implemented in recent image forming apparatuses. For example, in the most recent central processing unit (CPU), a technique that is called virtualization has been applied. Virtualization enables a plurality of operating systems (OSs) to run concurrently. 
     SUMMARY OF THE INVENTION 
     The present invention is directed to an image forming apparatus capable of obtaining a desired image without a delay of processing and capable of effectively controlling power consumption by using a virtual technique even when a system for an image forming process of the image forming apparatus is in a stopped state. 
     According to an aspect of the present invention, an image forming apparatus includes a first system, a second system, and an output engine and is configured to process input data via the first system and the second system and to output the processed data as an image via the output engine. The first system includes a first communication unit configured to communicate with the second system, a detection unit configured to detect whether the second system is in a processing-disabled state, a virtual environment activation unit configured to activate a virtual environment running on the first system if the detection unit detects that the second system is in the processing-disabled state, and a first image processing unit configured to perform image processing under the virtual environment. The second system includes a second communication unit configured to communicate with the first system, a second image processing unit configured to perform image processing on data received from the first system, and an output engine control unit configured to control the output engine. The output engine is configured to output the processed data as an image under control of the output engine control unit. 
     According to an exemplary embodiment of the present invention, for example, power can be supplied to a second system only as required, and therefore, the power consumption can be effectively controlled in the image forming apparatus. Further, even in the case where the second system temporarily cannot accept a processing request due to overload or the like, a first system performs image processing that is to be performed by the second system. Accordingly, a difference in an image output, which may occur when different image forming apparatuses perform image processing, can be reduced, so that a high-quality image can be output. 
     Further features and aspects of the present invention will become apparent from the following detailed description of exemplary embodiments with reference to the attached drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the invention and, together with the description, serve to explain the principles of the invention. 
         FIG. 1  is a cross sectional view illustrating an exemplary configuration of a color laser beam printer (color LBP) as an example of an image forming apparatus according to a first exemplary embodiment of the present invention. 
         FIG. 2  is a configuration diagram of a controller board of the color LBP according to the first exemplary embodiment of the present invention. 
         FIG. 3  is a functional configuration diagram illustrating an image forming process performed by the color LBP according to the first exemplary embodiment of the present invention. 
         FIG. 4  is a block diagram illustrating a process performed when a virtual technique runs on a main board of the color LBP according to the first exemplary embodiment of the present invention. 
         FIG. 5  is a flowchart illustrating an image forming process performed by the color LBP according to the first exemplary embodiment of the present invention. 
         FIG. 6  is a block diagram illustrating an example of how to run the virtual environment on a sub board of the multicolor LBP according to a second exemplary embodiment of the present invention. 
         FIG. 7  is a functional configuration view illustrating an image forming process performed by a conventional image forming apparatus. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     Various exemplary embodiments, features, and aspects of the invention will be described in detail below with reference to the drawings. 
       FIG. 1  is a cross sectional view illustrating an exemplary configuration of a color laser beam printer (hereinafter referred to as a “color LBP”) as an example of an image forming apparatus according to a first exemplary embodiment of the present invention. 
     A color LBP  100  illustrated in  FIG. 1  receives and stores a print command including print data (e.g., character code and image data) and a control code supplied from an externally connected host computer. Then, the color LBP  100  generates a character pattern, an image, or the like to form a visual image on a recording sheet as an example of a print medium according to the received print command. 
     In the color LBP  100 , a formatter control unit  110  analyzes the print command supplied from the host computer as an external device and performs a print image generation process. Further, the formatter control unit  110  controls the color LBP  100 . Further, the formatter control unit  110  is connected to an operation panel unit  120  configured to enable a user to operate the color LBP  100  and to notify the user of the present status of the color LBP  100 . 
     The operation panel unit  120  includes a switch, a light-emitting diode (LED) display device, or the like, and, for example, is mounted on the color LBP  100  as a part of the housing of the color LBP  100 . The formatter control unit  110  delivers a generated final print image to an output control unit  130  in the form of a video signal. 
     The output control unit  130  inputs a state of the color LBP  100  from various sensors (not shown) and outputs a control signal to an optical unit  140  and various drive-line mechanism units. Namely, the output control unit  130  acts to control a printing process of the color LBP  100 . 
     Now, a printing operation of the color LBP  100  will be described below with reference to each constituent element. In the color LBP  100 , the leading edge of a recording sheet P supplied from a sheet cassette  161  is pinched by a gripper  154   f  to be held on the outer periphery of a transfer drum  154 . An electrostatic latent image of a document image separated into four colors, which is formed on a photosensitive drum  151  by an optical unit  140 , is developed by development units Dy, Dm, Dc, and Db, corresponding to colors of yellow (Y), magenta (M), cyan (C), and black (B), respectively, in this order. A color image is formed on the recording sheet P by transferring each toner image obtained as a result of development to the recording sheet P on the transfer drum  154  in a superimposed manner. 
     Subsequently, the recording sheet P is separated from the transfer drum  154  and conveyed to a fixing unit  155 . In the fixing unit  155 , the toner images are fixed to the recording sheet P by heating and pressurizing. Then, the recording sheet P is discharged from a sheet discharge unit  159  to a sheet discharge tray unit  160 . 
     Here, each development unit Dy, Dm, Dc, or Db of each color has rotation support shafts at both ends thereof. Each development unit is held by a development unit selecting mechanism unit  152  so as to allow each development unit to rotate around the rotation support shafts. Accordingly, each development unit Dy, Dm, Dc, or Db can keep its own position at a predetermined position even when the development unit selecting mechanism unit  152  rotates around a rotation shaft  152   a  in a manner as illustrated in  FIG. 1  to select the development unit. 
     The development unit selecting mechanism unit  152 , in synchronization with the development units Dy, Dm, Dc, and Db, moves rotatably around a supporting point  153   b  in such a manner that a selecting mechanism holding frame  153  is pulled towards the photosensitive drum  151  by a solenoid  153   a . Accordingly, after the selected development unit Dy, Dm, Dc, or Db moves to a development position, the development units Dy, Dm, Dc, and Db of the corresponding colors move towards the photosensitive drum  151  to perform a development process. Here, the photosensitive drum  151  is uniformly charged in a predetermined polarity by an electric charger  156 . 
     Further, the print command, rasterized into a device-dependent bitmap by the formatter control unit  110 , is converted into a video signal having a corresponding pattern, and is output to a laser driver (not shown) to drive a semiconductor laser  141 . Laser light emitted from the semiconductor laser  141  in response to the input video signal is reflected by a polygon mirror  142 , which is moved at high speed by a scanner motor  143  while the laser light is controlled in an alternate ON/OFF state. The laser light scans the photosensitive drum  151  through a polygon lens  144  and a reflection mirror  145  and exposes the photosensitive drum  151 . Accordingly, an electrostatic latent image corresponding to the video signal is formed on the photosensitive drum  151 . In the electrostatic latent image, for example, an electrostatic latent image of M (magenta) color is developed by the development unit Dm for M (magenta) color, so that a first toner image of M (magenta) color is formed on the photosensitive drum  151 . 
     Further, the recording sheet P is supplied concurrently with the formation of the electrostatic latent image at a predetermined timing. A transfer bias voltage having a polarity opposite to that of the toner (for example, a positive polarity) is applied to the transfer drum  154 . Consequently, the first toner image on the photosensitive drum  151  is transferred onto the recording sheet P, and the recording sheet P is electrostatically attracted to the surface of the transfer drum  154 . Subsequently, a cleaner  157  removes the M (magenta) color toner remaining on the photosensitive drum  151 . Accordingly, the photosensitive drum  151  becomes ready for formation of a latent image of the next color and the development process of this latent image. A second, third, and fourth color toner images, corresponding to colors C (cyan), Y (yellow), and Bk (black), respectively, are transferred to the recording sheet P in this order according to similar processes, except that a bias voltage higher than that previously used is applied to the transfer drum  154  when each latent image of colors C, Y, and Bk is transferred to the recording sheet P. 
     As the leading edge of the recording sheet P, to which the toner images of four colors have been transferred in a superimposed manner, comes close to a separating position, a separating claw  158  comes close to the transfer drum  154  and the top edge of the separating claw  158  contacts the surface of the transfer drum  154  to separate the recording sheet P from the transfer drum  154 . The thus-separated recording sheet P is conveyed to the fixing unit  155 , where the recording sheet P is fixed with the toner image, to be discharged into the sheet discharge tray unit  160 . 
     The image forming apparatus according to the present exemplary embodiment of the present invention is not limited to the color LBP  100  described above, but can be a color or a monochroic (black and white) printing apparatus or a multifunction peripheral of another type, such as an inkjet type or a thermal transfer type. 
       FIG. 2  is a configuration diagram of a controller board, which controls the color LBP  100  and realizes the processing according to the exemplary embodiment of the present invention. The present apparatus generally includes a main board  200  acting for general information processing (including a function of the formatter control unit  110  of  FIG. 1 ) and a sub board  220  acting for image processing (including a function of the output control unit  130  of  FIG. 1 ). Here, the main board  200  and the sub board  220  can be integrated into a single board. However, the present exemplary embodiment will be described below presuming that the apparatus includes the main board  200  and the sub board  220  separately for the sake of a brief explanation. 
     The main board  200  includes a boot read-only memory (ROM)  201  as a non-volatile memory storing a boot program, a CPU  202  as an operational device for executing the boot program and other programs, and a volatile memory  203  for temporarily storing a program or data. The main board  200  further includes a bus controller  204  acting for connection with the sub board  220  and a disk controller  205  for controlling a hard disk drive (HDD)  206 . Further, the main board  200  includes a communication controller  207  for controlling a network, a universal serial bus (USB), or the like, which acts for communication with an information processing apparatus as an external device. 
     On the other hand, the sub board  220  includes a boot ROM  221  as a non-volatile memory storing a boot program, a CPU  222  as an operational device for executing the boot program and other programs, and a volatile memory  223  for temporarily storing a program or data. The sub board  220  further includes a bus controller  225  acting for connection with the main board  200  and an image processor  224 , which is hardware capable of executing an image forming process at high speed. Further, the sub board  220  includes a device controller  226  for controlling devices. The device controller  226  is adapted to control an image forming device, such as the print engine  227 , connected to the image forming apparatus. 
     Now, the image forming process performed by the color LBP  100  according to the present exemplary embodiment will be described below. Prior to the description of the image forming process according to the present exemplary embodiment, the image forming process performed by a conventional image forming apparatus will be described with reference to a functional configuration diagram illustrated in  FIG. 7 . Here, the image forming process is a process where the input data is processed to form an image, followed by printing out the image. 
     An information processing apparatus (host computer)  701  as illustrated in  FIG. 7  sends an image forming request to an image forming apparatus  702 . The image forming apparatus  702  performs an image forming process based on the thus-received image forming request. The image forming apparatus  702  generally includes a controller board  703  and a print engine  704 . Namely, the image forming process is mainly performed by the controller board  703  and the print engine  704 . 
     Here, the controller board  703  includes a data analysis unit  705 , a page description language (PDL) processing unit  706 , an image processing unit  707 , and a device control unit  708 , as function units. Further, the print engine  704  includes a density measurement unit  710 . The image forming process to be substantially performed by each of the above-described units will be described below. 
     When the data analysis unit  705  receives an image forming process request, which is called a job, from the information processing apparatus  701 , the data analysis unit  705  analyzes the content of the request. If the data is not processible, the data analysis unit  705  stops processing the data and sends an error message to the information processing apparatus  701 . On the other hand, if the data is processible, the data analysis unit  705  transfers the data to the PDL processing unit  706 . The PDL processing unit  706  analyzes an image output instruction in the thus-received data, which is called PDL, and generates intermediate data. After completing the analysis of the PDL, the image processing unit  707  performs image processing, such as density correction, color processing, and scaling, based on the generated intermediate data. Thus, a print image is generated. When the processing is completed with respect to the intermediate data, the device control unit  708  sends the print image to the print engine  704  to thereby obtain a print output. 
     When the print engine  704  generates a print output, toner density may differ between an actually output toner density and an assumed density depending on conditions of, for example, temperature, humidity, and the remaining amounts of toner. In order to resolve this problem, for example, such a patch detection method as discussed in Japanese Patent Application Laid-Open No. 10-016304 is widely used, wherein a density measuring pattern which is called a patch is output to read the output pattern. With the patch detection method, an output density under the present environment is measured and a parameter of the image processing is adjusted based on the thus-measured density value. Accordingly, an image output intended by the user can be realized. In  FIG. 7 , the density measurement unit  710  corresponds to the patch detection method. The value measured by the density measurement unit  710  is stored in the controller board  703  as a density correction value  709 , which is used in the image processing performed by the image processing unit  707 . 
     Now, the image forming process performed by the color LBP  100  according to the present exemplary embodiment will be described below with reference to a functional configuration diagram illustrated in  FIG. 3 . The image forming process according to the present exemplary embodiment differs from that performed by the conventional image forming apparatus  702  in that an image processing step in the image forming process can be performed by two systems. A detailed description will be provided below, with the same components in  FIGS. 2 and 7  provided with the same reference symbols and the descriptions thereof omitted. 
     In  FIG. 3 , the information processing apparatus (host computer)  701  sends an image forming request to the color LBP  100 . The image forming process is performed by the main board  200  and the sub board  220  of the controller board and the print engine  227  in the color LBP  100 . 
     In the main board  200 , acting for information processing, the data analysis unit  301  analyzes the image forming request from the information processing apparatus  701 . As a result of the analysis, the data analysis unit  301  stops the processing if the data is unprocessible, and sends an error message to the information processing apparatus  701 , whereas the data analysis unit  301  transfers the data to the PDL processing unit  302  if the data is processible. The PDL processing unit  302  analyzes the image output command, which is referred to as PDL (page description language) contained in the thus-received data, and generates intermediate data, which is then temporarily stored in the HDD  206 . 
     After storing the intermediate data in the HDD  206 , the PDL processing unit  302  waits for determination of the sub board  220 , acting for image forming process, whether the sub board  220  can accept the processing (i.e., whether the sub board  220  is in a processing-enabled or processing-disabled state). Then, the PDL processing unit  302  transfers the intermediate data to the image processing unit  304  running on the virtual environment or to the image processing unit  307  in the sub board  220  according to the determination. 
     More specifically, if the sub board  220  is in an acceptable state (i.e., if the sub board  220  is in a processing-enabled state), the PDL processing unit  302  reads the intermediate data from the HDD  206  and transfers the intermediate data to the image processing unit  307 . Subsequently, the image processing unit  307  performs image processing, such as density correction, color processing, scaling, based on the generated intermediate data, thereby generating a print image. As described above, after completing the processing with respect to the intermediate data, the device control unit  306  sends the print image to the print engine  227  to obtain a print output. 
     On the other hand, if the sub board  220  is not in an acceptable state (i.e., if the sub board  220  is in a processing-disabled state), the PDL processing unit  302  reads the intermediate data from the HDD  206  and transfers the intermediate data to the image processing unit  304  running on the virtual environment  409 , which is activated by a virtual environment managing unit  303  (description thereof will be provided below with reference to  FIG. 4 ). Subsequently, the image processing unit  304  performs image processing, such as density correction, color processing, scaling, based on the generated intermediate data, thereby generating a print image. Accordingly, after completing the processing with respect to the intermediate data, the image processing unit  304  transfers the print image to the device control unit  306 . Then, the device control unit  306  sends the print image to the print engine  227 , thereby obtaining a print output. 
     Further, the image processing unit  304  and the image processing unit  307  are connected to the density measurement unit  309  of the print engine  227 , so that a value measured by the density measurement unit  309  is used for image processing as a density correction value  305  or  308 . Here, the image processing unit  304  and the image processing unit  307  can be so configured that the measured value obtained from the density measurement unit  309  is temporarily stored in a storage medium, such as the HDD  206 . 
       FIG. 4  is a block diagram illustrating a process in the case where the virtual technique is applied to the main board  200  acting for information processing. As described above with reference to  FIG. 2 , the main board  200  includes the CPU  202 , the volatile memory  203 , and a hardware resource  401  such as peripheral chips. In the main board  200 , a main operating system (OS)/driver  402  controls the hardware resource  401  to provide a program executable environment, so that an information-processing system control application  404  runs on the environment. 
     On the main board  200 , a virtual machine (VM)  403  can run under the executable environment provided by the main OS/driver  402 , and the virtual environment  409  can run on the VM  403 . In other words, the VM  403  is an emulation program of the hardware resource  401  that virtually establishes the access of a guest OS/driver  405  running on the virtual environment  409  to the hardware resource  401 . 
     Further, an image processing program  407  and an image chip emulator  408  run on the guest OS/driver  405 . The image processing program  407  calls a virtual image chip driver  406  in order to use an image chip (not shown) which performs image processing at high speed. The virtual image chip driver  406  calls the image chip emulator  408  to cause the image chip emulator to perform image processing, since there is no image chip on the main board  200 . Then, the virtual image chip driver  406  sends the processing result to the image processing program  407 . With the above-described virtual technique, the image processing unit  304  can run on the virtual environment  409  in a similar manner as the process performed by the image processing unit  307  of the sub board  220 . 
     Now, a flow of the image forming process performed by the controller board of the color LBP  100  according to the present exemplary embodiment will be described with reference to a flow chart illustrated in  FIG. 5 . 
     Initially, when the color LBP  100  receives a job from the host computer  701 , the data analysis unit  301  analyzes the job in step S 501 . As a result of the analysis, if the format of the job is normal and the job includes PDL, the PDL processing unit  302  analyzes the PDL in step S 502 . 
     Next, in step S 503 , the PDL processing unit  302  stores (spools) the intermediate data, which is divided into objects, such as characters, graphics, and images, obtained by the PDL analysis in the HDD  206  or the like. 
     When the storage of the intermediate data resulting from the PDL analysis is completed, whether the sub board  220  can accept the image forming process is determined (detected) in step S 504 . The detection is performed by the CPU  202  via the bus controller  204 . Further, examples of cases where the sub board  220  cannot accept the image forming process include the case where the sub board  220  is in a sleep mode, the case where the sub board  220  is in a rebooting process, and the case where the user himself stops the process. 
     If it is determined that the sub board  220  can accept the image forming process in step S 504  (YES in step S 504 ), processes after step S 505  of the image forming process are executed by the sub board  220 . 
     In step S 505 , the image processing unit  307  performs color processing on the intermediate data stored in step S 503 . Here, the print output is adjusted to the assumed density by using the density correction value  308  obtained from the density measurement unit  309 . 
     Subsequently, in step S 506 , the image processing unit  307  performs other predetermined image processing, and thereafter, rasterizes the thus-obtained image data into an image memory in step S 507 . After the rasterization of the image data into the image memory is completed, then in step S 508 , the device control unit  306  controls the print engine  227  to print and output image data. 
     On the other hand, in step S 504 , if it is determined that the sub board cannot accept the image forming processing (NO in step S 504 ), then in step S 509 , the virtual environment managing unit  303  activates the virtual environment  409  to allow the image processing unit  304  to run on the virtual environment  409 . In step S 510 , the virtual environment managing unit  303  determines whether the virtual environment is activated. If the virtual environment is activated (YES in step S 510 ), then in step S 511 , the PDL processing unit  302  transfers the intermediate data stored in step S 503  to the image processing unit  304  running on the virtual environment  409 . 
     In step S 512 , the image processing unit  304  performs color processing on the intermediate data, and performs other predetermined image processing in step S 513 . Here, the image processing is measured by the density measurement unit  309  and performed by using the density correction value  305  stored in the HDD  206  or the like after the measurement values are obtained periodically by the main board  200 . The processing in steps S 512  and S 513  is performed by the image processing program  407  and the image chip emulator  408  illustrated in  FIG. 4 , respectively, as described above. 
     Then, in step S 507 , the image processing unit  304  rasterizes the image data generated in step S 513  into the image memory. In step S 508 , the device control unit  306  controls the print engine  227  to print and output image data. In the present process, the timing at which the image processing unit  304  rasterizes the image data into the image memory in step S 507  is matched to the timing at which the sub board  220  comes into the processing-enabled state. Further, the image data to be transferred is that which has been subjected to processing similar to that performed in steps S 505  and S 506  (i.e., the image processing data which has been subjected to processing for every image forming unit). 
     Further, in the above-described process, the image data is rasterized into the image memory in step S 507  after the processing of step S 513  is completed. However, the image data can be transferred to the sub board  220  at the time when the sub board  220  becomes ready to process the image data. In this case, the image processing unit  307  of the sub board  220  takes over the process of image processing. Here, it can be arbitrarily selectable by the color LBP  100  if the image processing by the sub board  220  is stopped at a predetermined timing or if the image processing by the sub board  220  is stopped after the processing of steps S 512  and S 513  is completed. 
     Further, in the above process, the processing performed in steps S 512  and S 513  is similar to the image processing performed by the sub board  220 . However, if what is performed by the sub board  220  is general image processing, the user can execute only a general image processing program. 
     As described above, in the present exemplary embodiment, in the case where the sub board  220  acting for image processing is in the processing-disabled state, the image forming apparatus activates the virtual environment on the main board  200  acting for information processing and activates the program for emulating the image processing which is normally performed by the sub board  220 . Then, the image forming apparatus performs the image processing on the main board  200  and transfers the image data obtained by the image processing to the sub board  220  at the time when the sub board  220  comes into the processing-enabled state to thereby print and output image data. With the above-described configuration, for example, the power supply to the sub board  220  and the print engine  227  can be optimized by supplying power to the sub board  220  only as required, thereby effectively saving power consumption. Further, even in the case where the sub board  220  cannot temporarily accept the processing due to overload or the like, a part of or all of the image processing can be performed according to the virtual environment on the main board  200 , so that the down time can be minimized and throughput is expected to be increased, which can eliminate a delay of processing. 
     Still further, the image processing unit  304  at the main board  200  side performs processing similar to that of the image processing unit  307  at the side of the sub board  220 , so that the image can be prevented from deterioration or the like, and thus a desired image can be obtained. Specifically, since the image processing unit  304  performs the image processing by using the density correction value  305 , which is a property of the print engine, from the density measurement unit  309 , the image processing unit  304  can produce an image having quality similar to that processed by the image processing unit  307 . Incidentally, in the present exemplary embodiment, the density measurement value is exemplified as the property of the print engine. However, the property can be any other inherent image processing parameter. 
     Now, a second exemplary embodiment of the present invention will be described below. While, in the first exemplary embodiment, the virtual environment is implemented in the main board  200 , the virtual environment can be implemented also in the sub board  220  in addition to the main board  200  in the present exemplary embodiment. 
     Now, how to implement the virtual environment in the sub board  220  will be described below with reference to  FIG. 6 . In the following description, components similar to those of the first exemplary embodiment are represented by the same reference symbols. 
     The sub board  220  according to the present exemplary embodiment executes an image processing application  605  under administration of a main OS/driver  602 , which uses a hardware resource  601  including the CPU  222 , the volatile memory  223 , an image chip, and the like as illustrated in  FIG. 2 . The image processing application  605  obtains intermediate data from the PDL processing unit  302  of the main board  200  and performs image processing such as color processing, density correction, and scaling based on the intermediate data. Further, the image processing application  605  performs the image processing at high speed by using the image chip via an image chip driver  603 . Then, after completing the image processing, the image processing application  605  controls the print engine  227  to allow the print engine  227  to print an image. 
     In order to run the virtual environment on the sub board  220 , it is required to run a VM  604  on the main OS/driver  602  in a similar manner as performed by the configuration of the first exemplary embodiment. Here, in the present exemplary embodiment, the VM  604  loads a guest OS/driver  606  in a virtual environment  609 . Accordingly, an image processing application  608  runs on the guest OS/driver  606 . 
     In the above-described first exemplary embodiment, the image chip of the virtual image chip driver  406  running on the virtual environment of the main board  200  does not exist in the apparatus, so that the image processing is performed by the image chip emulator  408 . On the other hand, the image chip for performing the image processing exists in the apparatus according to the present exemplary embodiment. Therefore, the image processing application  608  calls and accesses a virtual image chip driver  607  on the virtual environment  609 , while the virtual image chip driver  607  directly accesses the image chip driver  603  to perform image processing. In other words, the virtual image chip driver  607  is configured to perform the image processing by the image chip via the image chip driver  603  when the virtual image chip driver  607  receives the image processing request from the image processing application  608 . 
     With the above-described configuration, in the present exemplary embodiment, the virtual environment  409  running on the main board  200  is transferred to the sub board  220  while the sub board  220  comes into the processing-disabled state, where the processing can be recovered by the image processing application  608 . Further, in the present exemplary embodiment, the processing can be stopped at a predetermined timing on the virtual environment, and the thus stopped virtual environment itself can be transferred to another system which can provide a similar virtual environment, where the virtual environment can be recovered from its stopped state. With the above-described configuration, for example, if the sub board  220  comes into the processing-enabled state while the image processing is performed under the virtual environment on the main board  200 , the virtual environment on the main board  200  can be stopped and transferred to the sub board  220 , where the image processing can be restarted. In this case, the effect of high speed processing by the image chip provided by the sub board  220  can be joined in the image forming process. 
     As described above, in the present exemplary embodiment, such a configuration of the sub board  220  that the virtual environment can be implemented also on the sub board  220  enables stopping the virtual environment running on the main board  200  at the time when the sub board  220  comes into the processing-enabled state and to transfer the virtual environment running on the main board  200  to the sub board  220 . The implementation of the thus-transferred virtual environment in the sub board  220  enables high speed image processing by using the image chip of the sub board  220 . Here, it is described above that the virtual environment on the main board  200  is transferred to the sub board  220  when the sub board  220  comes into the processing-enabled state while the image processing is performed under the virtual environment on the main board  200 . However, whether to transfer the virtual environment can be set arbitrarily. 
     Now, a third exemplary embodiment of the present invention will be described below. In the first and the second exemplary embodiments, the virtual environment is activated on the main board  200  or on the sub board  220  of the image forming apparatus itself. However, in the present exemplary embodiment, the virtual environment is activated by the image forming apparatus via the communication controller  207  if the image forming apparatus can communicate with another image forming apparatus, the image processing is performed under the virtual environment of the other image forming apparatus to obtain generated image data. In the present exemplary embodiment, as described in the above second exemplary embodiment, the virtual environment including the image processing application and the image chip emulator can be transferred to and activated on the other image processing apparatus. Further, the configuration of the present exemplary embodiment can be combined with the configuration of the first exemplary embodiment or the second exemplary embodiment. In this case, however, the virtual environment is activated on the other image forming apparatus and whether to perform the image processing under the virtual environment is set arbitrarily. 
     According to the above-described present exemplary embodiment, the image forming process can be performed by using the other image forming apparatus via a local area network (LAN) or the like. Accordingly, for example, even in the case of an excessive load of processing in the main board of the image forming apparatus, a decrease of the throughput of the image forming process can be minimized. 
     In order to realize the present invention, a computer-readable storage medium for storing program code (computer program) of software which realizes the functions of the above-described exemplary embodiment can be employed. In this case, the present invention is achieved such that the computer-readable storage medium is to be supplied to the system or the apparatus and a computer (or a CPU or a micro processing unit (MPU)) of the system or the apparatus reads and executes the program code stored in the computer-readable storage medium. 
     In this case, the program code read from the computer-readable storage medium itself realizes the functions of the above-described exemplary embodiment, and thus the program code itself and the computer-readable storage medium storing the program code are encompassed within the scope of the present invention. 
     Examples of the computer-readable storage medium which provides the program code can include, for example, a floppy disk, a hard disk, an optical disk, a magnetic optical disk, a compact disc-ROM (CD-ROM), a CD-recordable (CD-R), a magnetic tape, a non-volatile memory card, and a ROM. 
     Further, the present exemplary embodiment includes such a configuration that performs a part or the all of the actual process by an OS (basic system or operating system) or the like which runs on a computer based on an instruction of the program code. 
     Still further, the program code read from the computer-readable storage medium can be written in a memory of a function expansion board which is inserted into the computer or a function expansion unit which is connected to the computer. In this case, the CPU or the like of the functional extension board or the function expansion unit can perform a part or the all of the actual processing based on the instruction of the thus-written program code. 
     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 modifications, equivalent structures, and functions. 
     This application claims priority from Japanese Patent Application No. 2008-092207 filed on Mar. 31, 2008, which is hereby incorporated by reference herein in its entirety.