1. Field of the Invention
The present invention relates to an image processing apparatus using a logic circuit, which can be reconfigured in operation, and a method for controlling the same.
2. Description of the Related Art
An FPGA (Field Programmable Gate Array) and a CPLD (Complex Programmable Logic Device) have been conventionally known as logic circuits having logical configurations, which can be reconfigured during circuit operation. Also, in recent years, a reconfigurable processor having a logical configuration, which can be more dynamically reconfigured during system operation, is coming into practical use.
Of conventional techniques that use reconfigurable logic circuits as described above, especially those that use reconfigurable processors, have often been proposed. Japanese Patent Laid-Open No. 2006-285792, for example, proposes an apparatus including a processing unit that can perform a plurality of types of image processing, and a control unit that controls the processing unit in accordance with attribute information indicating the contents of image processing for respective pixels, which form the input image. This makes it possible to perform desired image processing while avoiding increases in, for example, the circuit scale and the power consumption using not all types of hardware dedicated to respective types of image processing, each according to attribute information corresponding to a pixel of interest.
Also, Japanese Patent Laid-Open No. 2006-065786 proposes an apparatus including a reconfigurable circuit that has a plurality of logical configurations with variable functions, and a setting unit that sets the functions of the logical configurations. Note that the setting unit reduces the power consumed by a function switching process, by setting the functions of at least some of the plurality of logical configurations to the same function with a high frequency of appearance for a predetermined period.
However, the conventional techniques pose the following problems. A reconfigurable processor has a plurality of circuit configuration planes formed from multifunction elements, which are called PEs (Processor Elements) and have a primitive operation function. The circuit-configuration information (configuration data) of the reconfigurable processor is formed using a PE as a basic unit. For this reason, the reconfigurable processor has configuration data in an amount smaller than those of an FPGA and CPLD formed for each logic gate, and therefore has a circuit that can be reconfigured within a time shorter than those in an FPGA and CPLD.
Nevertheless, it takes a predetermined time to change the circuit configuration of the reconfigurable processor because this change takes place through a plurality of procedures, such as switching trigger detection for the circuit configuration, a circuit operation stop, configuration switching, and a circuit operation restart. Therefore, when image processing is performed for image data to be processed while switching the processing circuit in accordance with the pieces of attribute information of pixels that form the image data, as in the technique described in Japanese Patent Laid-Open No. 2006-285792, the number of times of switching of the configuration data increases as the attribute information is frequently switched. As a result, the temporal overhead incurred in switching the configuration data increases, leading to a lengthy processing time.
Japanese Patent Laid-Open No. 2006-065786 proposes a method for reducing a temporal overhead incurred in frequently switching the configuration data, as described above. The temporal overhead required to switch the configuration data to the one according to a corresponding attribute can be effectively reduced by fixing a processing-circuit function corresponding to a specific attribute with a high frequency of appearance in processed image data to one of the plurality of circuit configuration planes, as described in Japanese Patent Laid-Open No. 2006-065786.
Nevertheless, when image processing is performed for image data by scanning it in a predetermined sequence as in image processing of, for example, a printer, the number of times of switching of the configuration data differs depending on the distribution of attribute information in the scanning direction even when certain pieces of attribute information of pixels that form the image data have the same frequency. The amount of configuration data differs depending on the circuit function and circuit scale to be realized, so the time taken for configuration switching, in turn, changes. In other words, if a given attribute continuously appears in the scanning direction although its frequency of appearance is high, both the number of times of configuration switching and the total time taken for switching may decrease. In contrast, if a given attribute intermittently appears in the scanning direction although its frequency of appearance is low, both the number of times of configuration switching and the total time taken for switching may increase. Furthermore, even if given attributes have the same frequency of appearance, the total time taken for configuration switching may differ if the processing contents differ. That is, it is difficult to optimally fix a processing-circuit function corresponding to an attribute with a high frequency of appearance in processed image data based only on the frequency of appearance of each attribute.
The present invention enables realization of an image processing apparatus that includes an image processing unit including a plurality of circuit configuration units, each of which can be reconfigured into one of a plurality of types of circuit configurations, and which reduces the overhead incurred in the switching time period by fixing a circuit configuration of an optimal type in accordance with the frequency of appearance of pixel data having a certain attribute in a plurality of pixel data and the number of times of switching of the attribute of the pixel data from one to another, and a method for controlling the same.
One aspect of the present invention provides an image processing apparatus comprising: a plurality of image processing units that have variable circuit configurations; and an input unit that inputs image data; and a control unit that controls the apparatus to perform image processing for the image data, input via the input unit, using the plurality of image processing units. For a duration from the start of the image processing for the image data until the end of the image processing, the control unit controls the apparatus to perform the image processing for the image data with changing a circuit configuration of a first image processing unit of the plurality of image processing units, and controls the apparatus to perform the image processing for the image data without changing a circuit configuration of a second image processing unit, different from the first image processing unit, of the plurality of image processing units.
Another aspect of the present invention provides a method for controlling an image processing apparatus including a plurality of image processing units that have variable circuit configurations, comprising: inputting image data; and controlling the apparatus to perform image processing for the image data, input in the inputting the image data, using the plurality of image processing units. In the controlling of the apparatus to perform the image processing, for a duration from the start of the image processing for the image data until the end of the image processing, control of the apparatus is done to perform the image processing for the image data with changing a circuit configuration of a first image processing unit of the plurality of image processing units, and control the apparatus is done to perform the image processing for the image data without changing a circuit configuration of a second image processing unit, different from the first image processing unit, of the plurality of image processing units.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
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.
<Image Processing System>
The first embodiment will be described below with reference to
The scanner 1 reads information (for example, images and texts) recorded on a recording medium such as paper, and outputs the reading result as image data. The output image data is input to the image processing apparatus 3. The host computer 2 is a computer such as a general-purpose PC (Personal Computer) or a WS (Work Station). An image or a document created in the host computer 2 is input to the image processing apparatus 3 as PDL data. Although the scanner 1 and the host computer 2 exemplify devices for inputting data to the image processing apparatus 3 in this embodiment, other devices may be adopted. For example, data sent from a multifunction peripheral or a facsimile machine may be input to the image processing apparatus 3.
In this manner, the image processing apparatus 3 can receive the data sent from the scanner 1 and the host computer 2. In other words, the image processing apparatus 3 is connected to the scanner 1 and the host computer 2 so as to perform data communication with them. However, this connection is not particularly limited. Also, the image processing apparatus 3 performs various types of image processing based on the data received from the scanner 1 and the host computer 2 and outputs the data having undergone the image processing. Details of the configuration and processing of the image processing apparatus 3 will be described later. The storage device 4 stores the data that has undergone the image processing, and intermediate data being processed, which are output from the image processing apparatus 3. The print engine unit 5 performs print processing on a storage medium such as paper, based on the data that has undergone the image processing and is output from the image processing apparatus 3.
The configuration of the image processing apparatus 3 will be explained next. The image processing apparatus 3 includes a scanner input processing block 31, host I/F unit 32, PDL processing unit 33, a CPU 34, a RAM 35, a ROM 36, an image processing unit 37, an image analysis unit 38, a storage controller unit 39, and an engine I/F unit 40.
The scanner input processing block 31 receives the image data sent from the scanner 1 and performs various types of color processing for the received image data. The host I/F unit 32 functions as an interface for receiving the PDL data sent from the host computer 2. Note that the host I/F unit 32 differs depending on the network that connects the image processing apparatus 3 and the host computer 2 to each other, and can be, for example, an Ethernet® network, a serial interface network, or a parallel interface network. The PDL processing unit 33 rasterizes the PDL data received by the host I/F unit 32.
The CPU 34 controls the overall image processing apparatus 3 using programs and data stored in the RAM 35 and the ROM 36 and performs respective types of processing (to be described later) by the image processing apparatus 3. The RAM 35 includes not only an area to temporarily store the data received from the scanner 1 and the host computer 2 via the scanner input processing block 31 and the host I/F unit 32, respectively, but also a work area for use in various types of processing by the CPU 34. The ROM 36 stores, for example, programs and data for performing respective types of processing by the CPU 34 and setting data for the image processing apparatus 3.
The image processing unit 37 includes a logic circuit having a reconfigurable logical configuration and performs image processing for images formed from the data sent from the scanner 1 and the host computer 2. Details of the processing of the image processing unit 37 will be described later. The image analysis unit 38 analyzes the image data saved in the storage device 4 and acquires attribute information of each pixel and the distribution of the attribute information. Details of processing of the image analysis unit 38 will be described later.
The storage controller unit 39 controls processing for recording the data, having undergone the image processing by the image processing apparatus 3, in the storage device 4. The engine I/F unit 40 performs a series of processing for sending the data having undergone the image processing by the image processing apparatus 3 to the print engine unit 5. Reference numeral 41 denotes an internal bus of the image processing apparatus 3 that connects the above-mentioned respective units to each other.
<Scanner Input>
Processing of the image processing apparatus 3 when data is sent from the scanner 1 to the image processing apparatus 3 will be explained next with reference to
When the CPU 34 detects reception of image data sent from the scanner 1 via the scanner input processing block 31, processing according to the flowchart shown in
In step S101, the CPU 34 generates attribute information of each pixel that forms the image data having undergone the color processing. The generated attribute information includes, for example, texts and photographs in the scanner input. The process then advances to step S102, in which the CPU 34 sends, as intermediate data, the generated attribute information and the image data having undergone the color processing to the storage device 4 via the storage controller unit 39. The intermediate data is saved in the storage device 4 as data of one or more pages in accordance with the image data, sent from the scanner 1, while the image data and the attribute information can be associated with each other for each pixel.
<PDL Input>
Processing of the image processing apparatus 3 when data is sent from the host computer 2 to the image processing apparatus 3 will be explained next with reference to
When the CPU 34 detects reception of PDL data sent from the host computer 2 via the host I/F unit 32, processing according to the flowchart shown in
In step S203, the CPU 34 temporarily stores the rasterized display list in the RAM 35. In step S204, the CPU 34 generates intermediate data based on the stored display list. In the intermediate data, image information of the display list and its corresponding attribute information can be associated with each other for each pixel. In step S205, the CPU 34 stores the generated intermediate data in the storage device 4 via the storage controller unit 39. The intermediate data is saved in the storage device 4 as data of one or more pages in accordance with the image data sent from the host computer 2.
<Image Analysis>
Processing of the image analysis unit 38, which analyzes the attributes of the intermediate data saved in the storage device 4, will be explained next with reference to
First, in step S301, the image analysis unit 38 reads out the intermediate data saved in the storage device 4 to the RAM 35 and analyzes attribute information assigned to the readout intermediate data for each pixel to obtain, for example, the frequency of appearance of each attribute and the order and number of times of switching to each attribute for each page. Details of step S301 will be described later. In step S302, the image analysis unit 38 determines whether all pages have been analyzed. If YES in step S302, the process advances to step S303. If NO in step S302, step S301 is repeated a number of times equal to the number of pages and, after all pages have been analyzed, the process advances to step S303. In step S303, the image analysis unit 38 notifies the image processing unit 37 of the respective information on the frequency of appearance of each attribute and the order and number of times of switching to each attribute, obtained in step S301, and notifies the CPU 34 of the end of the image analysis.
<Print Processing>
Print processing corresponding to the intermediate data saved in the storage device 4 will be explained next with reference to
First, in step S401, in response to the end message sent from the image analysis unit 38, the CPU 34 instructs, as a print command, to read out the intermediate data saved in the storage device 4 from the RAM 35 to the image processing unit 37. After preprocessing of image processing, the image processing unit 37 reads out the intermediate data, performs image processing for print output for the readout data, and converts the processed data into print data. Details of the processing in step S401 will be described later. In step S402, the CPU 34 outputs the converted print data to the print engine unit 5. The print engine unit 5 performs print processing in accordance with the print data.
The image processing apparatus 3 converts data received from both the scanner 1 and the host computer 2 into intermediate data and holds the converted data by the respective types of processing explained with reference to
<Intermediate Data>
The format of the intermediate data will be explained with reference to
<Configuration of Image Processing Unit>
The image processing unit 37 will be explained next with reference to
The intermediate data input to the image processing unit 37 is separated into pixel data and attribute information in the data separation unit 302. The separated attribute information is input to the reconfiguration information control unit 3003. The reconfiguration information control unit 3003 designates a circuit configuration plane to be enabled in the reconfigurable logic circuit 3001 in accordance with the attribute information. On the other hand, the separated pixel data is input to the reconfigurable logic circuit 3001. Then, the image processing is performed using the logical configuration configured on the previously designated circuit configuration plane. If a desired circuit is configured on none of the circuit configuration planes A to D of the reconfigurable logic circuit 3001, desired reconfiguration information is read from the reconfiguration information storage unit 3002 to one circuit configuration plane of the reconfigurable logic circuit 3001, and image processing is performed after the readout.
<Operations of Image Analysis Unit/Image Processing Unit>
The operations of the image analysis unit 38 and the image processing unit 37 will be explained next with reference to
Image-analysis processing of the image analysis unit 38 for the intermediate data 801 will be explained with reference to
First, in step S901, the image analysis unit 38 sets, as the first pixel to be analyzed, a pixel positioned at the scanning origin of image data to be analyzed. A pixel to be analyzed will be referred to as a pixel of interest hereinafter. For example, a pixel positioned in the first pixel row and the first pixel column with respect to the upper left vertex of the intermediate data 801 is set as the first pixel of interest. This pixel of interest is set in accordance with a predetermined order when image processing is performed in the predetermined order.
In step S902, the image analysis unit 38 decodes and acquires attribute information of the pixel of interest. Attribute 1 (for example, a first attribute or a second attribute), for example, is acquired as the attribute of the pixel positioned in the first pixel row and the first pixel column of the intermediate data 801. In step S903, the image analysis unit 38 determines whether the attribute information of the pixel of interest does not indicate the pixel at the scanning origin and its attribute acquired in step S902 is different from that of the previous pixel. The previous pixel means herein a pixel of interest preceding the current pixel of interest in the analysis processing. If YES is determined in step S903, the process advances to step S904, in which the image analysis unit 38 acquires attribute switching information indicating switching of the attribute information from the previous one to the current one, and the process advances to step S905. In contrast, if NO is determined in step S903, the process directly advances to step S905. If, for example, the previously analyzed pixel is positioned at the scanning origin, NO is determined in step S903, and the process advances to step S905.
In step S905, the image analysis unit 38 determines whether a pixel to be analyzed next remains. If YES is determined in step S905, the process advances to step S906, in which the image analysis unit 38 sets, as the next pixel of interest, a pixel positioned next in the scanning direction, and the process returns to step S902. If, for example, the current pixel of interest is positioned at the scanning origin, the pixel positioned in the first pixel row and the second pixel column with respect to the upper left vertex of the intermediate data 801 is set as the next pixel of interest, and the process returns to step S902, in which the above-mentioned processing continues.
In contrast, if NO is determined in step S905, the attribute acquisition for the intermediate data ends, and the process advances to step S907. In step S907, using the total numbers of respective attributes of the acquired intermediate data and the total pixel count of the intermediate data, the image analysis unit 38 divides the number of appearances of the acquired attribute by the total pixel count to calculate the attribute frequency for each attribute. The total pixel count is acquired from the header information of the intermediate data. Attribute 1, for example, has a frequency of 13% because the total number of appearances of attribute 1 is two and the total pixel count is 16 in this case.
Detailed processing of the reconfigurable image processing unit 303 in the image processing unit 37 for the intermediate data 801 will be explained next with reference to
In this case, the numbers of times of switching from attributes 1, 2, 3, and 6 to other attributes are one each, and those of switching from attributes 4 and 5 to other attributes are two each.
First, in step S1201, the image processing unit 303 calculates a circuit-switching time period that allows reconfiguration in accordance with the data amount of the circuit-configuration information shown in
In step S1202, the image processing unit 303 determines, circuit information fixed on a circuit configuration plane (first type circuit configuration) of the reconfigurable logic circuit 3001, based on the analysis result acquired from the image analysis unit 38 and the above-mentioned circuit-switching time periods. As a determination method, the circuit-switching time period for each attribute is multiplied by the number of times of switching to each attribute to calculate the total switching time period for each attribute, and attributes are extracted in descending order of total switching time period a number of times equal to a predetermined number of fixed planes. More specifically, the total switching time periods for attributes 1 to 6 are 0, 15t, 20t, 20t, 10t, and 10t, respectively. As a result, when predetermined fixed planes are determined as the circuit configuration plane A 3010 and circuit configuration plane B 3011, attributes 3 and 4 for which the total switching time periods are long are determined to be fixed on the circuit configuration planes.
In step S1203, the image processing unit 303 initializes the circuit configuration planes of the reconfigurable logic circuit 3001. Circuit-configuration information corresponding to the attribute to be fixed, determined in step S1202, is loaded to the fixed plane, and that corresponding to an attribute containing a small value of the attribute switching 1004 is loaded to the remaining circuit configuration plane. More specifically, pieces of circuit-configuration information corresponding to attributes 3 and 4 are loaded to the plane A 3010 and plane B 3011 as pieces of circuit-configuration information to be fixed. On the other hand, pieces of circuit-configuration information corresponding to attributes 1 and 2 are loaded to the plane C 3012 and plane D 3013. Hence, a circuit having attribute 3 is configured on the plane A 3010, one having attribute 4 is configured on the plane B 3011, one having attribute 1 is configured on the plane C 3012, and one having attribute 2 is configured on the plane D 3013 after the initialization.
In step S1204, the image processing unit 303 starts to receive the intermediate data stored in the storage device 4. In step S1205, the reconfiguration information control unit 3003 analyzes the received attribute information to acquire the received attribute of each pixel. In step S1206, the image processing unit 303 determines whether a processing circuit corresponding to the received attribute is present on a circuit configuration plane.
If YES is determined in step S1206, the process directly advances to step S1208, in which the image processing unit 303 performs desired image processing, and the process advances to step S1209. In contrast, if NO is determined in step S1206, the process advances to step S1207, in which the image processing unit 303 performs circuit configuration switching. Since data cannot be received during the circuit configuration switching, the reconfiguration information control unit 3003 stops the data input to the data I/F 301 by instructing it to assert a data input stop signal, and then loads desired circuit-configuration information from the reconfiguration information storage unit 3002. Note that as the switching target, a circuit configuration plane on which is configured a logical configuration that is least likely to be required again is selected from reconfigurable logical configurations that are currently configured on the circuit configuration planes. More specifically, the first circuit switching takes place in the intermediate data 801 shown in
In step S1209, the image processing unit 303 determines whether the currently processed pixel is the last pixel that forms the intermediate data. If YES is determined in step S1209, the image processing ends, and the CPU 34 is notified of the end of the image processing. In contrast, if NO is determined in step S1209, the process returns to step S1205, in which the image processing unit 303 performs image processing in accordance with the above-mentioned procedure.
As described above, when the intermediate data 801 is processed, circuit switching takes place twice: when the pixel that is positioned in the third pixel row and the first pixel column and has attribute 5 is processed, and when the pixel that is positioned in the third pixel row and the third pixel column and has attribute 6 is processed. Hence, the total switching time period is 5t+10t=15t. In contrast, a case in which the intermediate data 801 is processed by prioritizing only the frequency of appearance of each attribute will be explained below.
In this case, attributes corresponding to pieces of circuit information to be fixed are attributes 4 and 5, and those corresponding to pieces of circuit information of circuits to be configured on the remaining circuits are attributes 1 and 2. Then, circuit switching takes place twice: when the pixel that is positioned in the second pixel row and the first pixel column and has attribute 3 is processed, and when the pixel that is positioned in the third pixel row and the third pixel column and has attribute 6 is processed. Hence, the total switching time period is 20t+10t=30t. In this manner, according to this embodiment, it is possible to reduce both the overhead incurred in the circuit-switching time period and the data processing time.
As has been explained above, an image processing apparatus according to this embodiment includes a logic circuit that has a plurality of circuit configuration planes with logical configurations that can be reconfigured in operation, and a storage unit that stores in advance the switching time period for which switching to each logical configuration is performed, and reconfigures the logic circuit in accordance with image processing to be performed. Also, the image processing apparatus analyzes the attribute of each pixel contained in image data processed in a predetermined order in the logic circuit, and derives the frequency of appearance of each attribute and the order and number of times of switching to each attribute in the predetermined order for each analyzed attribute. Moreover, the image processing apparatus multiplies the switching time period by the number of times of switching for each attribute to calculate the total switching time period for each attribute when processing is performed in the predetermined order. Using the total switching time period, the image processing apparatus determines a logical configuration to be configured on each circuit configuration plane in advance before image processing starts, determines a fixed circuit configuration plane and a reconfigurable circuit configuration plane, and switches the logical configuration in accordance with image processing to be performed. Note that the image processing apparatus determines a logical configuration on a fixed circuit configuration plane by selecting attributes in descending order of total switching time period and determining logical configurations for image processing corresponding to the attributes. In this manner, the image processing apparatus analyzes the attribute of each pixel in image data serving as an image processing target to calculate a total switching time period that takes account of the frequency of appearance of each attribute and the order and number of times of switching to each attribute, and determines a logical configuration configured on a fixed circuit configuration plane. In other words, the image processing apparatus can perform processing within a switching time period minimum for image data processed in a predetermined order.
The present invention is not limited to the above-described embodiment and can be modified into various forms. For example, the image processing apparatus switches a logical configuration configured on a reconfigurable circuit configuration plane in accordance with image processing by selecting, as a switching target, a circuit configuration plane on which a logical configuration that is least likely to be required again is configured. With this operation, the image processing apparatus can reduce the number of times of switching of the logical configuration as much as possible during processing of the image data and, in turn, reduce the overhead required for the switching.
An image processing apparatus that performs image processing for image data has been exemplified in the above-described embodiment. However, the present invention is also applicable to an information processing apparatus that processes data. In this case, the information processing apparatus can be realized by analyzing the attribute of processed data per predetermined unit instead of analyzing the attribute of processed image data per unit pixel.
The second embodiment will be described below with reference to
Processing of a reconfigurable image processing unit 303 for the intermediate data 1301 will be explained next with reference to
First, in step S1501, the image processing unit 303 calculates a circuit-switching time period that allows reconfiguration in accordance with the data amount of the circuit-configuration information shown in
In step S1502, the image processing unit 303 determines the number of circuit configuration planes fixed in a reconfigurable logic circuit 3001 and pieces of circuit information fixed in it, based on the analysis result acquired from an image analysis unit 38 and the above-mentioned circuit-switching time periods. As a determination method, first, a total switching time period is calculated for each attribute by multiplying the circuit-switching time period for each attribute by the number of times of switching to each attribute. Next, attributes are extracted in descending order of the total switching time period a number of times equal to 0 or 1 to N−1 fixed planes, and determined to be fixed. Note that N is the number of circuit configuration planes of the reconfigurable logic circuit 3001. Lastly, a total switching time period is calculated for each number of fixed planes, and the number of fixed planes, in which the total switching time period is minimized, is determined.
More specifically, first, the total switching time periods for attributes 1 to 6 in the intermediate data 1301 are 30t, 60t, 40t, 30t, 15t, and 20t, respectively. Next, the total switching time periods when the number of fixed planes is 0, 1, 2, and 3 will be explained. In the following description, assume that circuits set on circuit configuration planes in advance before the start of processing correspond to attributes 1, 2, 3, and 4 to be processed in the scanning sequence. Assume also that a circuit configuration plane to be switched during circuit switching is other than the fixed plane and has a circuit that is configured on it and corresponds to an attribute that is least likely to be selected again.
A case in which the number of fixed planes is zero, for example, all planes are not locked will be explained first. The first pixel switching takes place from the pixel that is positioned in the second pixel row and the third pixel column and has attribute 4 to the one that is positioned in the second pixel row and the fourth pixel column and has attribute 5. Then, a circuit corresponding to attribute 5 is set on a circuit configuration plane, for which circuit information corresponding to attribute 1 is set, for a time period 5t. The second pixel switching takes place from the pixel that is positioned in the second pixel row and the fourth pixel column and has attribute 5 to the one that is positioned in the third pixel row and the first pixel column and has attribute 1. A circuit corresponding to attribute 1 is set on a circuit configuration plane, for which circuit information corresponding to attribute 2 is set, for a time period 10t. The third pixel switching takes place from the pixel that is positioned in the third pixel row and the second pixel column and has attribute 1 to the one that is positioned in the third pixel row and the third pixel column and has attribute 2. A circuit corresponding to attribute 2 is set on a circuit configuration plane, for which circuit information corresponding to attribute 3 is set, for a time period 15t. The fourth pixel switching takes place from the pixel that is positioned in the third pixel row and the third pixel column and has attribute 2 to the one that is positioned in the third pixel row and the fourth pixel column and has attribute 6. A circuit corresponding to attribute 6 is set on a circuit configuration plane, for which circuit information corresponding to attribute 4 is set, for a time period 10t. The fifth pixel switching takes place from the pixel that is positioned in the fourth pixel row and the third pixel column and has attribute 2 to the one that is positioned in the fourth pixel row and the fourth pixel column and has attribute 4. A circuit corresponding to attribute 4 is set on a circuit configuration plane, for which circuit information corresponding to attribute 1 is set, for a time period 10t. The sixth pixel switching takes place from the pixel that is positioned in the fourth pixel row and the fourth pixel column and has attribute 4 to the one that is positioned in the fifth pixel row and the first pixel column and has attribute 2. A circuit corresponding to attribute 2 is set on a circuit configuration plane, for which circuit information corresponding to attribute 1 is set, for a time period 15t. The seventh pixel switching takes place from the pixel that is positioned in the fifth pixel row and the first pixel column and has attribute 2 to the one that is positioned in the fifth pixel row and the second pixel column and has attribute 5. A circuit corresponding to attribute 5 is set on a circuit configuration plane, for which circuit information corresponding to attribute 6 is set, for a time period 5t. The eighth pixel switching takes place from the pixel that is positioned in the fifth pixel row and the second pixel column and has attribute 5 to the one that is positioned in the fifth pixel row and the third pixel column and has attribute 1. A circuit corresponding to attribute 1 is set on a circuit configuration plane, for which circuit information corresponding to attribute 3 is set, for a time period 10t. The ninth pixel switching takes place from the pixel that is positioned in the fifth pixel row and the third pixel column and has attribute 1 to the one that is positioned in the fifth pixel row and the fourth pixel column and has attribute 6. A circuit corresponding to attribute 6 is set on a circuit configuration plane, for which circuit information corresponding to attribute 2 is set, for a time period 10t. Hence, the total switching time period when the number of fixed planes is zero is 5t+10t+15t+10t+10t+15t+5t+10t+10t=90t.
A case in which the number of fixed planes is one will be explained next. Note that a circuit corresponding to attribute 2, for which the previously calculated total switching time period is longest, 60t is fixed. The first pixel switching takes place from the pixel that is positioned in the second pixel row and the third pixel column and has attribute 4 to the one that is positioned in the second pixel row and the fourth pixel column and has attribute 5. Then, a circuit corresponding to attribute 5 is set on a circuit configuration plane, for which circuit information corresponding to attribute 1 is set, for a time period 5t. The second pixel switching takes place from the pixel that is positioned in the second pixel row and the fourth pixel column and has attribute 5 to the one that is positioned in the third pixel row and the first pixel column and has attribute 1. A circuit corresponding to attribute 1 is set on a circuit configuration plane, for which circuit information corresponding to attribute 3 is set, for a time period 10t. The third pixel switching takes place from the pixel that is positioned in the third pixel row and the fourth pixel column and has attribute 6 to the one that is positioned in the fourth pixel row and the first pixel column and has attribute 1. A circuit corresponding to attribute 6 is set on a circuit configuration plane, for which circuit information corresponding to attribute 4 is set, for a time period 10t. The fourth pixel switching takes place from the pixel that is positioned in the fourth pixel row and the first pixel column and has attribute 1 to the one that is positioned in the fourth pixel row and the second pixel column and has attribute 3. A circuit corresponding to attribute 3 is set on a circuit configuration plane, for which circuit information corresponding to attribute 5 is set, for a time period 20t. The fifth pixel switching takes place from the pixel that is positioned in the fourth pixel row and the third pixel column and has attribute 2 to the one that is positioned in the fourth pixel row and the fourth pixel column and has attribute 4. A circuit corresponding to attribute 4 is set on a circuit configuration plane, for which circuit information corresponding to attribute 6 is set, for a time period 10t. The sixth pixel switching takes place from the pixel that is positioned in the fifth pixel row and the first pixel column and has attribute 2 to the one that is positioned in the fifth pixel row and the second pixel column and has attribute 5. A circuit corresponding to attribute 5 is set on a circuit configuration plane, for which circuit information corresponding to attribute 1 is set, for a time period 5t. The seventh pixel switching takes place from the pixel that is positioned in the fifth pixel row and the second pixel column and has attribute 5 to the one that is positioned in the fifth pixel row and the third pixel column and has attribute 1. A circuit corresponding to attribute 1 is set on a circuit configuration plane, for which circuit information corresponding to attribute 3 is set, for a time period 10t. The eighth pixel switching takes place from the pixel that is positioned in the fifth pixel row and the third pixel column and has attribute 1 to the one that is positioned in the fifth pixel row and the fourth pixel column and has attribute 6. A circuit corresponding to attribute 6 is set on a circuit configuration plane, for which circuit information corresponding to attribute 4 is set, for a time period 10t. Hence, the total switching time period when the number of fixed planes is one is 5t+10t+10t+20t+10t+5t+10t+10t=80t.
In the same way, when the number of fixed planes is two, circuits corresponding to attributes 2 and 3 are fixed and the total switching time period is 50t. When the number of circuit configuration planes is three, attributes 2 and 3 and attribute 1, with a frequency of appearance higher than that of attribute 4 is fixed of attributes 1 and 4 for which the total switching time periods are both third longest, are fixed and the total switching time period is 40t. Hence, in step S1502, the image processing unit 303 determines the number of fixed planes as three and determines attributes 1, 2, and 3 to be fixed on circuit configuration planes so that the image processing time is minimized.
In step S1503, the image processing unit 303 initializes the circuit configuration planes of the reconfigurable logic circuit 3001. Circuit-configuration information corresponding to the attribute to be fixed, determined in step S1502, is loaded to the fixed plane, and that corresponding to an attribute containing a small value of the attribute switching 1404 is loaded to the remaining circuit configuration plane. More specifically, three planes, a circuit configuration plane A 3010, circuit configuration plane B 3011, and circuit configuration plane C 3012 are set as fixed planes, and pieces of circuit-configuration information corresponding to attributes 1, 2, and 3 are loaded to the respective planes. On the other hand, circuit-configuration information corresponding to attribute 4 is loaded to a circuit configuration plane D 3013. Hence, a circuit having attribute 1 is configured on the plane A 3010, one having attribute 2 is configured on the plane B 3011, one having attribute 3 is configured on the plane C 3012, and one having attribute 4 is configured on the plane D 3013 after the initialization.
In step S1504, the image processing unit 303 starts to receive the intermediate data stored in a storage device 4, and the process advances to step S1505. In step S1505, a reconfiguration information control unit 3003 analyzes the received attribute information to acquire the received attribute of each pixel. In step S1506, the image processing unit 303 determines whether a processing circuit corresponding to the received attribute is present on a circuit configuration plane. If YES is determined in step S1506, the process directly advances to step S1508, in which the image processing unit 303 performs desired image processing, and the process advances to step S1509. In contrast, if NO is determined in step S1506, the process advances to step S1507, in which the image processing unit 303 performs circuit configuration switching. Since data cannot be received during the circuit configuration switching, the reconfiguration information control unit 3003 stops the data input to a data I/F 301 by instructing it to assert a data input stop signal, and then loads desired circuit-configuration information from a reconfiguration information storage unit 3002. Note that a circuit configuration plane to be switched is other than the fixed plane and has a circuit that is configured on it and corresponds to an attribute that is least likely to be selected again. More specifically, the first circuit switching takes place in the intermediate data 1301 when the pixel that is positioned in the second pixel row and the fourth pixel column and has attribute 5 is processed. Also, the switchable plane is the plane D 3013. After that, the process advances to step S1508, in which the image processing unit 303 performs desired image processing, and the process advances to step S1509.
In step S1509, the image processing unit 303 determines whether the currently processed pixel is the last pixel that forms the intermediate data. If YES is determined in step S1509, the image processing ends, and a CPU 34 is notified of the end of the image processing. In contrast, if NO is determined in step S1509, the process returns to step S1505, in which the image processing unit 303 performs image processing in accordance with the above-mentioned procedure.
As described above, when the intermediate data 1301 is processed, the number of fixed planes is suitably determined as three and the total switching time period is 40t. As a result, the determined number of fixed planes can more greatly reduce both the overhead incurred in the circuit-switching time period and the data processing time than any other number of fixed planes.
As has been explained above, an image processing apparatus according to this embodiment determines the number of fixed circuit configuration planes based on the total switching time period, in addition to the configuration and operation in the first embodiment. With this operation, the image processing apparatus can perform image processing by setting a more optimal switching time period. Note that the first and second embodiments can be modified into various forms. For example, the number of fixed planes determined in advance in the first embodiment is not limited to two, and can be changed as needed in accordance with the circuit configuration planes adopted. Also, the number of circuit configuration planes of the reconfigurable logic circuit is not limited to four as exemplified in each embodiment, and can be changed as needed. Moreover, the numbers of pixel rows and columns and the total pixel count, for example, in the intermediate data are not limited to those exemplified in each embodiment, and can be changed as needed in accordance with the data input from the scanner 1 and host computer 2. The detailed configuration and detailed operation of each unit, which constitutes the image processing apparatus in each embodiment, can also be changed as needed without departing from the scope of the present invention.
Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment(s), and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment(s). For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (for example, computer-readable medium).
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2009-108459 filed on Apr. 27, 2009, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2009-108459 | Apr 2009 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5615281 | Yamaguchi | Mar 1997 | A |
7565011 | Matsunaga et al. | Jul 2009 | B2 |
20020051230 | Ohta | May 2002 | A1 |
20060098229 | Matsunaga et al. | May 2006 | A1 |
20070038971 | Hiramatsu et al. | Feb 2007 | A1 |
20070285716 | Ohmiya | Dec 2007 | A1 |
20080002065 | Waseda | Jan 2008 | A1 |
20080240584 | Saiga et al. | Oct 2008 | A1 |
20090243978 | Yamamoto et al. | Oct 2009 | A1 |
Number | Date | Country |
---|---|---|
2001-051826 | Feb 2001 | JP |
2005-202667 | Jul 2005 | JP |
2006-065786 | Mar 2006 | JP |
2006065786 | Mar 2006 | JP |
2006-140601 | Jun 2006 | JP |
2006-285792 | Oct 2006 | JP |
2007-304887 | Nov 2007 | JP |
2008-242850 | Oct 2008 | JP |
Entry |
---|
Japanese Office Action dated Feb. 15, 2013, issued in counterpart Japanese Application No. 2009-108459. |
Number | Date | Country | |
---|---|---|---|
20100271668 A1 | Oct 2010 | US |