Patent Publication Number: US-9407784-B2

Title: Image processing apparatus, control method thereof, and storage medium

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to an image processing apparatus, a control method thereof, and a storage medium. 
     2. Description of the Related Art 
     A reconfigurable circuit such as a programmable logic device (PLD) or a field programmable gate array (FPGA) capable of changing the configuration of a logic circuit is well known. Generally, changing the configuration of a logic circuit of the PLD or the FPGA is achieved by writing circuit configuration information stored in a non-volatile memory such as a ROM into a configuration memory, which is a volatile memory included in the PLD or the FPGA, at the time of activation. Also, the information stored in the configuration memory is cleared when power is turned off, and it is therefore necessary to again write the circuit configuration information stored in the ROM into the configuration memory when power is turned on. The method as described above that changes the logic circuit of the PLDs or the FPGAs only once during power supply is called “static reconfiguration”. In contrast, development has been underway to provide an FPGA or the like that is capable of dynamically changing the configuration of a logic circuit during operation of the logic circuit, and such a method that dynamically changes the logic circuit is called “dynamic reconfiguration”. 
     There is an FPGA capable of not only rewriting the circuit configuration of the entire chip of the FPGA, but also rewriting only the circuit configuration of a specific area in the chip. Such rewriting is called “partial reconfiguration”. Particularly, changing the configuration of the circuitry on the chip excluding the circuit that is in operation without stopping the operation of that circuit is called “dynamic partial reconfiguration”. In the dynamic partial reconfiguration, unlike the dynamic reconfiguration that rewrites the entire configuration memory, only a partial area in the configuration memory is rewritten. Accordingly, the logic circuit of the FPGA can be partially reconfigured. By using the dynamic partial reconfiguration described above, it is possible to, for example, mount a plurality of logic circuits in a specific area in an FPGA, and switch the logic circuits on a time shared basis. As a result, various functions that can fit for various applications can be flexibly implemented with the use of a fewer hardware resources while maintaining high-speed computing performance of hardware. 
     However, although the circuit configuration can be changed during operation, a long period of time is required to change (rewrite) the circuit configuration, and the time length is proportional to the size of logic circuit configuration information written into the configuration memory. To address this, techniques have been proposed to reduce the rewriting time required to rewrite the circuit configuration. 
     Japanese Patent Laid-Open No. 2012-234337 discloses a technique for reducing the conventional rewriting time by predicting processing that is very likely to be processed next during image processing, and loading in advance config data for implementing the predicted processing into a high-speed configuration memory. As a result of loading config data in advance, it is possible to shorten the loading time required to load the circuit configuration data during image processing, and achieve a faster image processing speed. 
     With an image processing apparatus such as a multi-function printer (MFP), a selection can be made from among a plurality of processing operations (copy job, print job, send job, and the like) in response to a request from the user, and each image processing is implemented by hardware or software. In addition, MFPs available in recent years have a power saving state from the viewpoint of reducing power consumption, and also have a function of making a transition to the power saving state when no access is made to the MFP for a fixed period of time and recovering from the power saving state when the MFP is used again. Particularly, demand is increasing for reducing the recovery period required to recover from the power saving state as short as possible so as to provide fast availability of the MFP and enhance usability for the user. 
     However, the conventional technique described above has the following problems. For example, if the reconfiguration technique is applied to an image processing unit provided in an image processing apparatus, it is possible to speed up the rewriting time required to rewrite the config data during image processing. However, if the user makes a setting change, the content of processing to be performed by the image processing unit is not fixed until a request to start the processing is received from the user. Accordingly, with the above-described conventional technique, the config data is loaded after the user issues a request to start processing and the content of processing is fixed. For this reason, the time required to start processing is not accelerated. 
     SUMMARY OF THE INVENTION 
     The present invention enables realization of a system that configures a circuit in which a required image processing circuit can be reconfigured according to previous user operations before the user issues an instruction to start processing so as to shorten the time it takes to start processing after receipt of the instruction to start processing. 
     One aspect of the present invention provides an image processing apparatus including a reconfigurable circuit in which functional blocks that perform image processing can be reconfigured, the image processing apparatus comprising: a first storage unit configured to store in advance configuration data, for each plurality of the functional blocks, for configuring the functional blocks in the reconfigurable circuit; an operation unit configured to accept a user operation for inputting a job; and a reconfiguration unit configured to, upon accepting the user operation indicating the job to be executed via the operation unit, read required configuration data from the first storage unit and reconfigure the reconfigurable circuit before a start instruction to start the job is accepted. 
     Another aspect of the present invention provides an image processing apparatus including a reconfigurable circuit in which functional blocks that perform image processing can be reconfigured, the image processing apparatus comprising: a first storage unit configured to store in advance configuration data, for each plurality of the functional blocks, for configuring the functional blocks in the reconfigurable circuit; a readable and writable second storage unit that has a faster reading speed than that of the first storage unit; an operation unit configured to accept a user operation for inputting a job; a writing unit configured to, upon accepting the user operation indicating the job to be executed via the operation unit, read the configuration data of a required functional block from the first storage unit and write the configuration data into the second storage unit before a start instruction to start the job is accepted; and a reconfiguration unit configured to read the required configuration data written by the writing unit from the second storage unit and reconfigure the reconfigurable circuit. 
     Still another aspect of the present invention provides a control method for controlling an image processing apparatus including a reconfigurable circuit in which functional blocks that perform image processing can be reconfigured, and a first storage unit configured to store in advance configuration data, for each plurality of the functional blocks, for configuring the functional blocks in the reconfigurable circuit, the method comprising: performing an operation to accept a user operation for inputting a job, which is performed by an operation unit; and upon accepting the user operation indicating the job to be executed in the operation, read required configuration data from the first storage unit and reconfiguring the reconfigurable circuit before a start instruction to start the job is accepted, which is performed by a reconfiguration unit. 
     Yet still another aspect of the present invention provides a control method for controlling an image processing apparatus including a reconfigurable circuit configured to be capable of reconfiguring functional blocks that perform image processing, a first storage unit configured to store in advance configuration data, for each plurality of the functional blocks, for configuring the functional blocks in the reconfigurable circuit, and a readable and writable second storage unit that has a faster reading speed than that of the first storage unit, the method comprising: performing an operation to accept a user operation for inputting a job, which is performed by an operation unit; upon accepting the user operation indicating the job to be executed in the operation, reading the configuration data of required functional blocks from the first storage unit and writing the configuration data into the second storage unit before a start instruction to start the job is accepted, which is performed by a writing unit; and reading the required configuration data written in the writing from the second storage unit and reconfiguring the reconfigurable circuit, which is performed by a reconfiguration unit. 
     Still yet another aspect of the present invention provides a non-transitory computer-readable storage medium storing a computer program for causing a computer to execute the processing of the control method for controlling the image processing apparatus. 
     Further features of the present invention will be apparent from the following description of exemplary embodiments with reference to the attached drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram showing an example of a configuration of an image processing apparatus according to a first embodiment. 
         FIG. 2  is a diagram illustrating the functions of the image processing apparatus according to the first embodiment and image processing functions configured in a dynamic reconfiguration unit. 
         FIG. 3  shows an operation unit for accepting a setting change from a user which is provided in the image processing apparatus according to the first embodiment. 
         FIG. 4  is a flowchart illustrating control performed to reconfigure an image processing unit when a setting change is made to the image processing apparatus according to the first embodiment. 
         FIG. 5  is a time chart showing the effect of reducing the processing time according to the first embodiment. 
         FIG. 6  is a diagram illustrating image processing functions configured in each step during dynamic reconfiguration performed in an image processing apparatus according to a second embodiment. 
         FIG. 7  is a diagram illustrating a transition of config data read by the image processing apparatus according to the second embodiment. 
         FIG. 8  is a flowchart illustrating control performed to reconfigure an image processing unit and control performed to read config data when a setting change is made to the image processing apparatus according to the second embodiment. 
         FIG. 9  is a time chart showing a time reduction effect according to the second embodiment. 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     Embodiments of the present invention will now be described in detail with reference to the drawings. It should be noted that the relative arrangement of the components, the numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention unless it is specifically stated otherwise. 
     First Embodiment 
     Configuration of Image Processing Apparatus 
     Hereinafter, a first embodiment of the present invention will be described with reference to  FIGS. 1 to 5 .  FIG. 1  is a block diagram illustrating an apparatus configuration of an image processing apparatus according to an embodiment of the present invention. The present embodiment will be described taking a case where an image processing apparatus  100  is a multifunction peripheral (multi-functional processing apparatus) including a scanner unit and a printer unit. 
     The image processing apparatus  100  includes an operation unit  103  for a user using the image processing apparatus  100  to perform various types of operations, a scanner unit  109  that scans image information of an original, and a printer unit  107  that prints an image on paper based on image data. The scanner unit  109  includes a CPU that controls the scanner unit  109 , an illumination lamp for reading an original, a scan mirror, and the like. The printer unit  107  includes a CPU that controls the printer unit  107 , a photosensitive drum, a fixing device and the like that are used to form (print) an image and fix the image. The operation unit  103  includes a power saving key. By the power saving key being pressed, a transition to a power saving state or recovery from the power saving state is performed. 
     Also, the image processing apparatus  100  includes an FPGA  140  including a dynamic reconfiguration unit as a controller that controls the image processing apparatus  100 . In this example, the FPGA  140  includes a CPU  101  that performs overall control on the operations of the image processing apparatus  100 . The CPU  101  executes a program for controlling the FPGA  140 , a config controller  130  that controls reconfiguration, and the like. Although the FPGA  140  is internally provided with the CPU  101 , this is merely an example, and the CPU may be provided outside the FPGA  140 . 
     The image processing apparatus  100  also includes a ROM (first storage unit)  104  in which a boot program that is to be executed by the CPU  101  and logic circuit configuration information for configuring the FPGA  140  are stored. The image processing apparatus  100  also includes a RAM (second storage unit)  111  that serves as a system work memory for the CPU  101  to perform operations and an image memory for temporarily storing image data. The RAM  111  also serves as a memory for copying, storing and reading the logic circuit configuration information stored in the ROM  104  at a high speed. 
     The FPGA  140  includes the CPU  101 , a network I/F  102 , a printer I/F  106 , a scanner I/F  108 , a memory controller  110 , a ROM I/F  112 , an operation unit I/F  113 , a USB I/F  114 , a FAX I/F  115 , the config controller  130 , and a dynamic reconfiguration unit (reconfigurable circuit)  131 . The reconfiguration unit  131  is dynamically reconfigurable (rewritable) and partially rewritable. To be specific, while a circuit reconfigured in a part of the reconfiguration unit  131  is in operation, another circuit can be reconfigured in another part that does not overlap with the part occupied by the circuit that is in operation. The reconfiguration unit  131  includes an image processing unit  132 , an image processing unit  133  and an image processing unit  134  in which a logic circuit for performing various image processing operations can be partially reconfigured. In the present embodiment, a configuration is shown in which the number of image processing units constituting the reconfiguration unit  131  is three, but the number of image processing units is not limited to three. The config controller  130  controls the circuit configuration (configuration) of the reconfiguration unit  131 . 
     The scanner I/F  108  receives an input of image data from the scanner unit  109 . The printer I/F  106  outputs image data to a printer. The image processing units  132 ,  133  and  134  of the reconfiguration unit  131 , the scanner I/F  108  and the printer I/F  106  are connected to an image bus  121  for transferring image data to be processed. 
     The CPU  101  performs overall control on the operations of the image processing apparatus  100 , and performs communication (transmission and reception) with a general-purpose computer on a network via the network I/F (network interface)  102 . The CPU  101  also performs communication (transmission and reception) with a general-purpose computer connected to the image processing apparatus  100  via the USB I/F (USB interface)  114 . Also, the CPU  101  connects to a public line network via the FAX I/F (facsimile interface)  115 , and performs communication (transmission and reception) with another image processing apparatus or a facsimile apparatus. The FAX I/F  115  includes a CI detection circuit that detects a call indicator (CI) signal from the public line network. The ROM I/F  112  controls writing and reading operations to and from the ROM  104  in which the boot program to be executed by the CPU  101  and the logic circuit configuration information (configuration data) for configuring the reconfiguration unit  131  are stored. 
     The FPGA  140  includes a system bus  120  that connects the CPU  101 , the network I/F  102 , the operation unit  103 , the ROM I/F  112 , the config controller  130  and the reconfiguration unit  131  with each other. The CPU  101  performs parameter setting for the image processing units  132 ,  133  and  134  configured in the configuration unit  131 , the scanner I/F  108  and the printer I/F  106  via the system bus  120 . The RAM  111  serves as a system work memory for the CPU  101  to perform operations, an image memory for temporarily storing image data and a memory for copying, storing and reading the logic circuit configuration information stored in the ROM  104  at a high speed. The memory controller  110  controls writing and reading operations to and from the RAM  111 . The memory controller  110  is connected to the system bus  120  and the image bus  121 , and performs exclusive switching between access of a bus master connected to the image bus  121  with respect to the RAM  111  and access of a bus master connected to the system bus  120  with respect to the RAM  111 . 
     Config Data 
     Next, examples of image processing functions (functional blocks) that are configured in the reconfiguration unit  131  of the image processing apparatus  100  of the present embodiment and the relationship with respect to config data (configuration data) will be described with reference to  FIG. 2 . The image processing apparatus  100  has a function of copying an original read by the scanner unit  109  (copy job) and a function of printing print data transmitted from an external printer driver (PDL print job). The image processing apparatus  100  also has a function of printing fax data received via the FAX I/F  115  (fax job). Also, the image processing apparatus  100  has a send job that transmits an original read by the scanner unit  109  to an external general-purpose computer via the network I/F  102  as image data. In the case of an image processing system to which a dynamic reconfiguration technique is applied, actual processing is performed after required image processing functions are configured in the reconfiguration unit  131  according to the function selected by the user and the setting items that have been changed by the user. 
     Reference numeral  201  shown in  FIG. 2  indicates a default image processing configuration set for copy job configured in the reconfiguration unit  131  when a copy job is executed as a default setting without a setting change being made. The default image processing configuration set for copy job includes a read DMAC (DMA controller)  250  for reading an image from the RAM  111  via the image bus  121  and a write DMAC  251  for writing the image into the RAM  111 . The default image processing configuration set for copy job further includes an image attribute separation processing unit  211 , a table conversion processing unit  212 , a filter processing unit  213 , a background color removal processing unit  214 , a color space transformation processing unit  215 , a γ correction processing unit  216 , and an error diffusion processing unit  217 . 
     Upon execution of the copy job, image data input from the scanner unit  109  is input into the read DMAC  250 , processed by the image processing functions (functional blocks)  211  to  217  and written into the RAM  111  by the write DMAC  251 . The image attribute separation processing unit  211  detects a character area from the input image so as to determine an image attribute, and generates an image attribute signal that is to be used in subsequent image processing. The table conversion processing unit  212  performs a table conversion in order to convert the read image data, which is brightness data, into intensity data. The filter processing unit  213  performs computing processing by using a digital spatial filter designed for a particular application such as, for example, edge enhancement. The background color removal processing unit  214  performs processing for, when image data obtained by reading an original having a light-colored background is received, removing the background color. The color space transformation processing unit  215  converts RGB data into CMYK data according to the output characteristics of the image processing apparatus. The γ correction processing unit  216  converts the intensity of the image data. The error diffusion processing unit  217  performs half-tone processing by comparing the input image data with a predetermined threshold value so as to perform an n-value conversion, and spreading the resulting difference between the input image data and the threshold value to surrounding pixels that are subsequently subjected to n-value conversion processing. The image data that has undergone the above image processing operations is transferred to the printer I/F  106  via the image bus  121  and output from the printer unit  107 . The flow described above is, of course, merely an example, and it is therefore possible to configure another image processing function in the reconfiguration unit  131  so as to perform processing. 
     Reference numeral  202  shown in  FIG. 2  indicates image processing functions configured in the reconfiguration unit  131  when the same copy job as that used in the configuration  201  is executed after a setting change is made by the user via the operation unit  103 , rather than executed by the default configuration. The configuration  201  is an image processing function configuration that is set as default and optimized to copy a text original, but the configuration  202  is an image processing function configuration in the case where a photographic original is used, and rotation and scaling functions are set. The configuration  202  is different from the configuration  201  in that the image attribute separation processing unit  211  is not configured, and a dither processing unit  220  is configured in place of the error diffusion processing unit  217 . This is because the type of original has been changed from “text original” set as default to “photographic original”. The dither processing unit  220  performs, as half-tone processing, an n-value conversion by using a plurality of predetermined dither matrices and the input image data. A scaling processing unit  218  and a rotation processing unit  219  are additionally configured according to the setting change. The scaling processing unit  218  performs magnification and demagnification processing on the image data. The rotation processing unit  219  performs rotation processing for changing the direction of the image data. The other image processing functions are the same as those of the configuration  201 . As described above, even if the same copy job is performed, the content of processing is changed according to a setting being made by the user, and the image processing function configuration is partially changed according to the change. 
     Reference numeral  203  shown in  FIG. 2  indicates image processing functions configured in the reconfiguration unit  131  when a send job is executed as a default setting without a setting change being made. An image processing configuration for send job will be described by using the configuration  203 . The image processing configuration for send job includes, as in the configuration  201 , the read DMAC  250  and the write DMAC  251  that perform image transfer via the image bus  121 , the image attribute separation processing unit  211 , the table conversion processing unit  212  and the filter processing unit  213 . It further includes a JPEG compression processing unit  221  that performs JPEG compression so as to efficiently transmit image data to an external general-purpose computer via the network I/F  102 . The image data that has undergone the above image processing operations is stored in the RAM  111 , and thereafter transferred to an external general-purpose computer via the network I/F  102 . The flow described above is, of course, merely an example, and it is therefore also possible to perform processing by configuring another image processing function in the reconfiguration unit  131 . 
     In the present embodiment, image processing is performed by appropriately configuring the image processing functions described with reference to  FIG. 2  in the reconfiguration unit  131 . The jobs that can be processed by the image processing apparatus  100  are not limited to those shown in  FIG. 2 . Also, the image processing units are not limited to those shown in FIG.  2 , and it is also possible to divide the processing included in each image processing into finer components (granularity). 
     Config data can be configured in processing units described in the configurations  201  to  203  shown in  FIG. 2 . For example, one piece of config data can be prepared by including all of the read DMAC  250 , the image processing units ( 211  to  217 ) and the write DMAC  251 . It is also possible to prepare separate pieces of config data respectively for the DMACs  250  and  251  that perform data transfer, the image processing units  211  to  213  that perform reading, the image processing units  214  to  217  that perform print output, and the image processing units  218  and  219  that perform editing processing. In the case of preparing separate pieces of config data, for execution of a copy job, a circuit necessary to execute the copy job can be configured by partially reconfiguring the separate pieces of config data in the reconfiguration unit  131 . It is of course possible to prepare config data in even finer components. It is possible to, for example, prepare a separate piece of config data for each of the image processing units ( 211  to  221 ), the read DMAC  250  and the write DMAC  251 . 
     Operation Unit 
     Next is a description of display items displayed on the operation unit  103  of the image processing apparatus  100  of the present embodiment and transition of the display items performed as a result of a change being made in the setting items by the user with reference to  FIG. 3 . In the present embodiment, the operation unit  103  is configured by a liquid crystal screen and a touch panel. The present invention is not limited thereto, and the operation unit  103  may of course be configured by another alternative. 
     Reference numeral  351  shown in  FIG. 3  indicates a user interface (UI) screen displayed on the operation unit  103  after the image processing apparatus  100  is turned on or when an operation for recovering from a sleep state for saving power is performed by the user. Usually, a main menu screen  300  is displayed after power is turned on or after recovery from the sleep state. On the main menu screen  300 , a hierarchy display portion  301  for showing the user the current menu hierarchy is displayed. Job selection icons  302  to  304  for selecting a job that can be executed by the image processing apparatus  100  are also displayed on the main menu screen  300 . The job selection icons  302  to  304  respectively indicate a copy job, a fax job and a send job. The jobs that can be processed by the image processing apparatus  100  are not limited to the examples shown on the screen  351 . 
     Reference numeral  352  shown in  FIG. 3  indicates a copy setting screen  310  that is displayed after the copy job selection icon  302  is selected by the user on the main menu screen  300 . On the copy setting screen  310 , a setting value display portion  311  that displays the current basic setting values in a list is displayed. In the setting value display portion  311 , a status notification unit  312  that notifies the user whether the image processing apparatus  100  is now ready to start the job is displayed. In addition, in the setting value display portion  311 , basic setting values such as whether to read the original in color or monochrome, magnification, paper size and the number of copies output are displayed in a list. On the copy setting screen  310 , setting change icons  313  to  320  for changing various frequently used setting values are displayed. The icons include a color selection icon  313  for selecting whether to read an original in color or monochrome, a magnification icon  314  for changing the magnification, a paper selection icon  315  for changing the type of paper, and a copy number icon  316  for changing the number of copies. 
     An original type setting icon  317  for setting the type of original to photograph alone, a combination of photograph and text, or text alone is also displayed on the copy setting screen  310 . A page collection setting icon  318  for collectively outputting a plurality of pages of an original read by the scanner unit  109  in one page is also displayed on the copy setting screen  310 . A frame deletion setting icon  319  for deleting an unnecessary area in the blank space of the original is also displayed on the copy setting screen  310 . A double-sided printing setting icon  320  for printing images on both sides of a sheet of paper by the printer unit  107  is also included in the copy setting screen  310 . A residual function setting icon  321  for making a change in other setting items that are not displayed on the screen is also displayed on the copy setting screen  310 . A copy start icon  322  that issues an instruction to start a copy operation to the image processing apparatus  100  is also displayed. 
     In the present embodiment, the copy job setting items and the setting change icons  313  to  321  displayed on the copy setting screen  310  are not limited to those shown on the screen  352 . As shown in the screen  352 , most frequently used setting values are already set as a default setting of the copy job immediately after the selection of the copy job selection icon  302  on the main menu screen  300 . The default setting values shown here are not limited to those shown on the screen  352 . 
     Reference numeral  353  shown in  FIG. 3  indicates a screen displayed on the operation unit  103  after various setting changes are made on the copy setting screen  310  of the screen  352  by the user. In the example shown on the screen  353 , the magnification is changed to 80%, the type of original is changed to photograph, and the type of printing is changed to double-sided printing. In order to notify the user that the setting values have been changed, for example, the color of the setting change icons  314 ,  317  and  320  whose setting values have been changed is changed. By selecting the copy start icon  322  in this state, the image processing apparatus  100  starts the copy job based on the values set by the user. 
     In the present embodiment, if the copy job selection icon  302  is selected on the screen  351 , the configuration  201  shown in  FIG. 2  including image processing functions set as default for copy job is configured in the reconfiguration unit  131 . To be specific, config data for implementing the image processing functions of the configuration  201  stored in the ROM  104  is transferred to the reconfiguration unit  131  as appropriate by the config controller  130 , and then configured. The config data is not necessarily read directly from the ROM  104 , and it is also possible to copy the config data into the RAM  111  in advance and read the copied config data. 
     If the magnification icon  314  is selected on the screen  352  shown in  FIG. 3  and the copy magnification is changed, the scaling processing unit  218  is instantly configured into the reconfiguration unit  131  as shown in the configuration  202  in  FIG. 2 . To be specific, the config controller  130  transfers config data for configuring the scaling processing unit  218  to the reconfiguration unit  131 . As described above, in the case where the granularity of config data is divided into the image processing units  211  to  221 , in order to add the scaling processing unit  218 , it is necessary to perform a transposition operation on the pipeline processing so as to change the processing order. In order to suppress an increase in the configuration time due to the transposition operation, the image processing functions may be configured with a cross-bar switch or the like. A case is also conceivable in which the granularity of config data is not divided into the image processing units  211  to  221  and thus is coarser. In this case, the reconfiguration unit  131  is configured by using config data including the scaling processing unit  218 . Likewise, if the type of original is changed from text to photograph on the screen  352  shown in  FIG. 3 , the image attribute separation processing unit  211  included in the configuration  201  is instantly removed from the reconfiguration unit  131 , and the error diffusion processing unit  217  is replaced by the dither processing unit  220 . Likewise, if the type of printing is changed to double-sided printing on the screen  352  shown in  FIG. 3 , the rotation processing unit  219  is instantly added to the reconfiguration unit  131 . Other than the above, if a setting for executing the copy job is changed on the screen  352  shown in  FIG. 3 , the corresponding image processing unit is configured as appropriate in the reconfiguration unit  131 . 
     When the configuration is changed by a setting change, a portion that has not changed from the default configuration is retained in the reconfiguration unit  131 . In other words, dynamic reconfiguration is partially performed. Accordingly, the configuration of the other portion may be in operation. However, as described above, if a need for transposition in the pipeline arises, it is necessary to perform a transposition operation as appropriate. 
     Sequence of Reconfiguration Control 
     Next is a description of a procedure of control of the config controller  130  for changing the configuration of the reconfiguration unit  131  in response to a setting change from the operation unit  103  of the image processing apparatus according to the embodiment of the present invention, with reference to  FIG. 4 . The processing described below is implemented by the CPU  101  reading a control program stored in advance in the ROM  104  or the like into the RAM  111  and executing the program. This control flow starts at a timing when the main menu screen  300  is displayed on the operation unit  103  after power is turned on or after recovery from the sleep state. 
     In S 401 , the CPU  101  determines whether or not a job has been designated via the operation unit  103 . If it is determined that a job has been designated, the procedure transitions to S 402 . If it is determined that a job has not been designated, the procedure transitions to S 403 . As used herein, the expression “a job has been designated” means that any one of the job selection icons  302  to  304  has been selected on the main menu screen  300 , or a job change icon or the like has been selected on the copy setting screen  310  or the like. 
     In S 402 , the CPU  101  configures the image processing function configuration set as default for the job designated in S 401  in the reconfiguration unit  131 , and then the procedure transitions to S 403 . For example, if the copy job selection icon  302  is selected, the image processing function configuration  201  shown in  FIG. 2  is configured. As a result of control in S 402 , even when the copy job selection icon  302  is selected and immediately after the copy start icon  322  is selected without a setting change being made, the time required to start processing can be shortened. 
     In S 403 , the CPU  101  determines whether or not the operation unit  103  has accepted a setting value change. If it is determined that a setting change has been accepted, the procedure transitions to S 404 . If it is determined that a setting value change has not been accepted, the procedure transitions to S 405 . In S 404 , the CPU  101  configures an image processing function corresponding to the changed setting item into the reconfiguration unit  131 . Here, addition, removal and transposition of image processing functions with respect to the reconfiguration unit  131  are performed. In S 405 , the CPU  101  determines whether or not a request to start the job has been input from the operation unit  103 . If it is determined that a request to start the job has been input, the control flow ends. If it is determined that a request to start the job has not been input, the procedure returns to S 401 , where the reconfiguration unit  131  is configured as appropriate according to the setting change. Here, in the example of the screen  353  shown in  FIG. 3 , the request to start the job is issued upon selection of the copy start icon  322 . 
     Processing Time Chart 
     A processing time chart according to the present embodiment will be described next with reference to  FIG. 5 . Reference numeral  510  shown in  FIG. 5  indicates a processing time chart serving as a comparative example. Reference numeral  520  indicates a processing time chart according to the present invention. Selection of job type  500  shown in  FIG. 5  indicates the time when any one of the job selection icons  302  to  304  is selected on the main menu screen  300  and the job type is determined. After that, a job start  502  is performed in which a request to start the job is issued. The time period from the time  500  to the time  502  is a user setting change period  501 . The setting change period  501  indicates, in the case of a copy job, for example, the time period from when the copy setting screen  310  is displayed on the operation unit  103  until when a setting change from the user is accepted. 
     In the comparative example  510 , no processing is performed on the reconfiguration unit  131  during the period indicated by the setting change period  501 . In the comparative example  510 , the reconfiguration unit  131  is configured according to the fixed setting item at the time of the job start  502 , and after that, copy processing starts. In contrast, in the present invention  520 , the image processing functions set as default are first configured in the reconfiguration unit  131  at the time of the selection of job type  500 . After that, in the setting change period  501 , the configuration of the reconfiguration unit  131  is changed instantly upon receipt of a setting change. By doing so, the image processing functions in which the user setting is reflected are already configured in the reconfiguration unit  131  at the time when a request to start the job is issued. Accordingly, copy processing starts instantly at the time of the job start  502 . By applying the present invention in the manner described above, it is possible to shorten the time it takes to start processing after a request to start the job is issued from the user. 
     As described above, if the user selects a job that needs to be executed, the image processing apparatus  100  of the present embodiment reconfigures the reconfiguration unit  131  so as to provide an image processing function configuration suitable for the selected job. If a specific setting is made in the settings of the selected job, the reconfiguration unit  131  is updated as appropriate so as to provide a configuration for executing the specific setting. By doing so, it is possible to start reconfiguration of a required image processing function configuration before receipt of a start request (start instruction) from the user, and thus the time required to start processing can be shortened as compared to the configuration in which reconfiguration is performed after receipt of a start request. 
     Second Embodiment 
     Hereinafter, a second embodiment of the present invention will be described with reference to  FIGS. 6  to  9 . In the first embodiment given above, a case was described in which all of the image processing functions of each job (for example, the configuration  201  shown in  FIG. 2 ) can be configured in the reconfiguration unit  131 . In the second embodiment, a case will be described in which a low-capacity FPGA is used and thus not all of the image processing functions of each job are fitted in the reconfiguration unit  131 . To be specific, the second embodiment is provided to implement all of the image processing functions by dividing the image processing functions shown in  FIG. 2  into a plurality of stages, and switching the image processing functions divided into the plurality of stages by dynamic reconfiguration during execution of the job. Such a method for implementing various functions with the use of a fewer resources by performing dynamic reconfiguration during execution of the job is well known in a dynamic reconfigurable processor (DRP) or the like. In the dynamic reconfiguration during execution of the job, the time required to perform reconfiguration directly leads to an increase in the processing time. Accordingly, in order to shorten the reconfiguration time, a method is known in which config data is written (copied) in advance from the ROM  104  having a slow access speed into the RAM  111  having a fast access speed, and then read from the RAM  111  at a high speed. This method is called “pre-loading”. The high-speed memory used in pre-loading is not limited to the RAM  111  serving as a system work memory. Examples of other pre-load memories include a block RAM provided in an FPGA, and a dedicated pre-load memory having a plurality of BANKs as used in a DRP or the like. 
     A difference between the present embodiment and the first embodiment is that the config data pre-loaded from the ROM  104  into the RAM  111  is replaced as appropriate according to changes in the setting items made by the user. This is important when it is not possible to secure a sufficient capacity as a pre-load memory because the RAM  111  is used as a system work memory and an image memory. To be specific, no problem arises if all of the config data stored in the ROM  104  are copied into the RAM  111 , but otherwise, it is necessary to selectively pre-load the config data. 
     Config Data 
     First, an image processing function configuration in each stage when the reconfiguration unit  131  is dynamically reconfigured during execution of a job according to the present embodiment will be described with reference to  FIG. 6 . Reference numerals  601  to  603  shown in  FIG. 6  indicate config data set as default for image reading processing, editing processing and image output processing obtained by dividing the image processing functions used to execute a copy job. The granularity (components) into which the image processing functions are divided is not limited to that described above. Upon execution of a copy job, the config data  601  to  603  set as default are sequentially configured into the reconfiguration unit  131 . To be specific, in order to perform image reading processing on the image data read by the scanner unit  109 , the config data  601  set as default for image reading processing is configured into the reconfiguration unit  131 . 
     As a result of the image reading processing performed on the image data in the reconfiguration unit  131 , intermediate data is generated. The intermediate data is stored into the RAM  111  by the write DMAC  251 . Subsequently, the config data  602  set as default for editing processing is configured into the reconfiguration unit  131 , and editing processing is performed on the intermediate data that has undergone image reading processing. Likewise, the intermediate data that has undergone editing processing is stored into the RAM  111 . Next, the config data  603  set as default for image output processing is configured into the reconfiguration unit  131 , and image output processing is performed. The data that has undergone all of the image processing operations is output to the printer unit  107 , whereby processing of one page ends. After completion of the processing of one page, the config data  601  set as default for image reading processing is again configured into the reconfiguration unit  131 , and processing of a second page thereby starts. 
     Reference numeral  604  shown in  FIG. 6  indicates config data corresponding to a trim/mask function that is used in editing processing to clip a designated area in an image or mask the image with white data or the like. A difference from the config data  602  set as default for editing processing is that a trim/mask unit  605  is included. The config data  604  is used instead of the config data  602  according to the content of the setting made by the user. 
     Transition of Config Data 
     Next is a description of a transition of config data pre-loaded into the RAM  111  upon a setting change being made by the user according to the present embodiment, with reference to  FIG. 7 . 
     All config data that can be configured into the reconfiguration unit  131  are stored in the ROM  104 , and the config data  601  to  603  set as default for image reading processing, image editing processing and image output processing are stored as a default setting. Config data  701  to  703  for image reading processing corresponding to some setting changes are also stored. For example, the config data  701  optimized to read an original containing both text and a photograph, the config data  702  optimized for a photographic original, and the config data  703  corresponding to automatic color detection are stored. The granularity or the number of pieces of config data corresponding to each setting is not limited to that described above. Also, config data  704 ,  604  and  705  corresponding to the settings for editing processing are stored in the ROM  104 . Config data  706  to  708  corresponding to the settings for image output processing are also stored in the ROM  104 . 
     Reference numeral  721  indicates config data pre-loaded into the RAM  111  and config data configured in the reconfiguration unit  131  if a specific one of the job selection icons  302  to  304  is selected on the main menu screen  300 . In this case, for example, upon selection of the copy job selection icon  302 , the config data  601  to  603  set as default for image reading processing, editing processing and output processing that are used in a copy job are pre-loaded into the RAM  111  as indicated by arrows  710 . If another job selection icon  303  or  304  is selected, optimal config data set as default for the selected job is pre-loaded from the ROM  104 . The pre-loaded config data set as default for each job is not limited to that described above. Also, in the present embodiment, in the memory area of the RAM  111 , an area for pre-loading having a capacity enough to store the size of three config data such as image reading processing, editing processing and output processing is allocated. Here, the size of the memory area allocated as the area for pre-loading is not limited to that described above, and may be changed according to the system configuration, the granularity into which config data is divided by dynamic reconfiguration, or the like. 
     Among the config data pre-loaded into the RAM  111 , the config data  601  set as default for image reading processing, which is used first in the job, is configured into the reconfiguration unit  131  as indicated by arrow  711 . 
     Reference numeral  722  indicates replacement of the config data pre-loaded into the RAM  111  when a setting change is made by the user on the copy setting screen  310 . This indicates the case in which, for example, the frame deletion setting icon  319  is selected so as to delete the frame. As a result of the frame deletion being set, as indicated by arrow  712 , the config data  604  corresponding to the trim/mask function is stored into the RAM  111  because the config data  602  set as default for editing processing cannot be used to perform the image processing function. At this time, three pieces of config data have already been pre-loaded in the RAM  111 , and thus for example, the area of the config data  602  set as default for editing processing is overwritten by the config data  604 . Also, in the image reading processing, a change in the image processing function configuration due to the setting change is unnecessary, and thus the configuration of the reconfiguration unit  131  is not changed. If it is necessary to change the image processing function configuration of the image reading processing due to the setting change, such a case requires not only replacement of the pre-loaded config data but also changing of the configuration of the reconfiguration unit  131 . 
     Reconfiguration Control Sequence 
     Next is a description of a procedure of control of the config controller  130  for changing the configuration of the reconfiguration unit  131  in response to a setting change from the operation unit  103  of the image processing apparatus according to the embodiment of the present invention, with reference to  FIG. 8 . The processing described below is implemented by the CPU  101  reading a control program stored in advance in the ROM  104  or the like into the RAM  111  and executing the program. A difference from the first embodiment is that in steps S 402  and S 404 , replacement of the pre-loaded config data and determination of whether it is necessary to change the image processing function configuration to be used first in the job are added. The other elements in the sequence are basically the same as those of the first embodiment, and thus a description thereof is omitted here. Hereinafter, differences from the first embodiment will be mainly described. To be specific, steps S 801 , S 804  and S 808  respectively correspond to steps S 401 , S 403  and S 405 , and thus a description thereof is omitted here. 
     In S 802 , the CPU  101  functions as a writing unit, and pre-loads the config data set as default for the job from the ROM  104  into the RAM  111 . Subsequently, in S 803 , the CPU  101  configures, into the reconfiguration unit  131 , the config data of the image processing function to be used first in the job from among the config data pre-loaded in S 802 . 
     Next, in S 805 , the CPU  101  replaces the config data pre-loaded in the RAM  111  according to the change made in the setting items. Subsequently, in S 806 , the CPU  101  determines whether or not the config data replaced in S 805  is the config data of the image processing function to be used first. If it is determined that the config data replaced in S 805  is the config data of the image processing function to be used first, the procedure transitions to S 807 . If, on the other hand, it is determined that the config data replaced in S 805  is not the config data of the image processing function to be used first, the procedure transitions to S 808 . In S 807 , the CPU  101  configures the reconfiguration unit  131  by using the config data replaced in S 805 . To be specific, in the present embodiment, the content of the config data pre-loaded in the RAM  111  is first updated according to the input of settings, a setting change or the like performed by the user, and thereafter the reconfiguration unit  131  is reconfigured. 
     Processing Time Chart 
     A processing time chart according to the present embodiment will be described next with reference to  FIG. 9 . As in the first embodiment described above, in the case where the present invention is applied, as indicated by  920 , image processing functions in which the setting change is reflected have been configured in the reconfiguration unit  131  at a timing when a request to start the job is issued. This is because during the user setting change period, the config data in the RAM  111  is updated as appropriate in response to a user operation, or in other words, a setting change, and reconfiguration of the reconfiguration unit  131  is also started. In addition, config data in which the setting change is reflected has been pre-loaded into the RAM  111 . Accordingly, processing starts immediately after a request to start the job is issued. 
     On the other hand, in the comparative example, as indicated by  910 , loading of config data in which the setting change is reflected into the RAM  111  starts after the request to start the job is issued. In the comparative example, first, the config data for image reading processing to be used first is pre-loaded into the RAM  111 . After the reconfiguration unit  131  has been configured by using the pre-loaded config data for image reading processing, image reading processing starts. 
     After that, in the comparative example, the config data for editing processing to be used next is pre-loaded in parallel to the image reading processing in the reconfiguration unit. Generally, it takes time to perform reading from a ROM having a slow access speed, and thus there is a good possibility that a situation will occur in which the processing is put on hold because pre-loading has not been finished despite the fact that the image reading processing of one page has been finished. Likewise, in the comparative example, the config data for output processing is pre-loaded, and after the data has been pre-loaded and the reconfiguration unit  131  has been configured, image output processing is performed. With respect to the processing of the second and subsequent pages, in the comparative example as well, pre-loading has already been finished, and thus a situation as described above in which the processing is put on hold does not occur. However, in the case where the present invention is applied, it is possible to shorten the time required to start processing the first page and the time required to complete the processing of the first page. 
     Other Embodiments 
     Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like. 
     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. 2014-050534 filed on Mar. 13, 2014, which is hereby incorporated by reference herein in its entirety.