An image processing apparatus includes a memory holding image data generated by an image reader; a memory controller for accessing the memory; first and second image processors for executing image processing on the image data one line at a time, the second image processor being added when implementing functional expansion; a connector for connecting the first and second image processors by a transfer path of the image data when implementing the functional expansion; first and second generators for respectively generating first and second allowance signals for allowing reading of a next line of the image data from the memory, according to the image processing times taken by the first and second image processors; and an allower configured to output, to the memory controller, a third allowance signal for allowing reading of the next line of the image data from the memory, based on the first and second allowance signals.
|
1. An image processing apparatus comprising:
a first hardware memory configured to store image data generated by an image reader and program instructions; and
a processor configured to access the first hardware memory, wherein execution of the program instructions stored in the first hardware memory cause the processor to:
construct a first image processor configured to execute a first image processing on the stored image data one line at a time,
construct a second image processor configured to execute a second image processing on the image data one line at a time, the second image processor being constructed when implementing functional expansion;
connect the constructed first image processor and the constructed second image processor by a transfer path of the image data when implementing the functional expansion,
generate a first allowance signal to allow reading of a next line of the image data from the first hardware memory, according to an image processing time taken by the first image processing;
generate a second allowance signal to allow reading of the next line of the image data from the first hardware memory, according to an image processing time taken by the second image processing; and
output, to the processor, a third allowance signal to allow reading of the next line of the image data from the first hardware memory, based on the first allowance signal and the second allowance signal.
9. A method for controlling an image processing apparatus, the image processing apparatus including a first hardware memory configured to store image data generated by an image reader and program instructions; and a processor configured to access the first hardware memory, wherein execution of the program instructions stored in the first hardware memory cause the processor to construct a first image processor configured to execute a first image processing on the image data one line at a time, and construct a second image processor configured to execute a second image processing on the image data one line at a time, the second image processor being constructed when implementing functional expansion, the method comprising:
connecting the constructed first image processor and the constructed second image processor by a transfer path of the image data when implementing the functional expansion;
generating a first allowance signal to allow reading of a next line of the image data from the first hardware memory, according to an image processing time taken by the first image processing;
generating a second allowance signal to allow reading of the next line of the image data from the first hardware memory, according to an image processing time taken by the second image processing; and
outputting, to the processor, a third allowance signal to allow reading of the next line of the image data from the first hardware memory, based on the first allowance signal and the second allowance signal.
10. A non-transitory computer-readable recording medium storing a program that causes a computer to execute a process performed in an image processing apparatus, the image processing apparatus including a first hardware memory configured to store image data generated by an image reader and program instructions; and a processor configured to access the first hardware memory, wherein execution of the program instructions stored in the first hardware memory cause the processor to construct a first image processor configured to execute a first image processing on the image data one line at a time, and construct a second image processor configured to execute a second image processing on the image data one line at a time, the second image processor being constructed when implementing functional expansion, the process comprising:
connecting the constructed first image processor and the constructed second image processor by a transfer path of the image data when implementing the functional expansion;
setting a timing to allow reading of a next line of the image data from the first hardware memory, according to a first image processing time taken by the first image processing;
setting a timing to allow reading of the next line of the image data from the first hardware memory, according to a second image processing time taken by the second image processing; and
allowing reading of the next line of the image data from the first hardware memory, based on the timing set according to the first image processing time and the timing set according to the second image processing time.
2. The image processing apparatus according to
output the third allowance signal based on an allowance signal for which a generation timing is later, among the first allowance signal and the second allowance signal, and
read the next line of the image data from the first hardware memory based on the third allowance signal and output the read image data together with a main scanning synchronization signal indicating an output timing of each line of the image data.
3. The image processing apparatus according to
set the second allowance signal to a non-allowance state based on the main scanning synchronization signal, and
set the second allowance signal to an allowance state based on completion of reception of one line of the image data that has undergone the second image processing.
4. The image processing apparatus according to
generate the main scanning synchronization signal in accordance with a minimum cycle regardless of the third allowance signal, upon determining that by generating the main scanning synchronization signal based on the third allowance signal, a generation cycle of the main scanning synchronization signal will become shorter than the minimum cycl e that is set in advance.
5. The image processing apparatus according to
a second hardware memory configured to hold the image data that has undergone the second image processing, wherein the program instructions further cause the processor to:
construct a plurality of sub-image processors of the first image processor, and connect the plurality of sub-image processors in series, and
connect the second image processor between two of the plurality of sub-image processors, wherein
one of the plurality of sub-image processors, which executes a third image processing on the image data output from the second image processor, executes the third image processing on the image data read from the second hardware memory in a cycle subsequent to a cycle in which one line of the image data that has undergone the second image processing is stored in the second hardware memory.
6. The image processing apparatus according to
the one of the plurality of sub-image processors, which executes the third image processing upon receiving the image data output from the second image processor, executes the third image processing on dummy image data in a cycle before a cycle in which the third image processing is executed on the image data that has undergone the second image processing.
7. The image processing apparatus according to
in a case where the second image processing is executed across a plurality of cycles, the second allowance signal is maintained in an allowance state except in a last cycle among the plurality of cycles.
8. The image processing apparatus according to
in a case where the functional expansion is not implemented, the first image processing is executed on one line of the image data in each cycle, and
in a case where the functional expansion is implemented, the first image processing and the second image processing are executed on one line of the image data in a plurality of cycles, and
the processor generates the first allowance signal and the second allowance signal in each cycle, and outputs the third allowance signal in each cycle.
|
The present application is based on and claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2018-205984, filed on Oct. 31, 2018, the contents of which are incorporated herein by reference in their entirety.
The present invention relates to an image processing apparatus, an image processing apparatus controlling method, and a recording medium.
In the related art, an image processing apparatus such as a multifunction peripheral (MFP) having a function of simultaneously reading images on both sides of a sheet, has been developed. In an image processing apparatus of this type, image data on the front side and image data on the back side are read at the same time and are temporarily stored in a memory inside an engine that performs image processing. The image on the front side and the image on the back side stored in the memory are sequentially read line-by-line and are subjected to image processing. In this case, while executing image processing on one line, an allowance signal for reading the image data of the next line from the memory inside the engine is output, thereby shortening the cycle of image processing and improving the transfer efficiency of the image data (see, for example, Patent Document 1).
Patent Document 1: Japanese Unexamined Patent Application Publication No. 2013-192197
According to one aspect of the present invention, there is provided an image processing apparatus including a first memory configured to hold image data generated by an image reader; a memory controller configured to access the first memory; a first image processor configured to execute image processing on the image data one line at a time; a second image processor configured to execute image processing on the image data one line at a time, the second image processor being added when implementing functional expansion; a connector configured to connect the first image processor and the second image processor by a transfer path of the image data when implementing the functional expansion; a first generator configured to generate a first allowance signal for allowing reading of a next line of the image data from the first memory, according to an image processing time taken by the first image processor; a second generator configured to generate a second allowance signal for allowing reading of the next line of the image data from the first memory, according to an image processing time taken by the second image processor; and an allower configured tb output, to the memory controller, a third allowance signal for allowing reading of the next line of the image data from the first memory, based on the first allowance signal and the second allowance signal.
For example, when a new image processing function is added to the existing image processing by implementing functional expansion, the latency of the image processing varies, and, therefore, the output timing of the above-mentioned allowance signal needs to be changed depending on whether functional expansion is implemented. However, no method has been proposed for changing the output timing of the allowance signal depending on whether functional expansion is implemented. If the output timing of the allowance signal is too early and the next image data is transferred while image processing is being performed, abnormal image data may be generated. Further, when functional expansion is implemented by connecting a new image processing module to the image processing apparatus, it is necessary to communicate image data between the main body unit of the image processing apparatus and the new image processing module. In this case, it is necessary to adjust the output timing of the allowance signal according to the variation in the communication rate depending on the communication state.
A problem to be addressed by an embodiment of the present invention is to prevent the transfer performance of image data from being degraded, without generating abnormal image data, even when the image processing time varies according to whether functional expansion is implemented.
Hereinafter, embodiments will be described with reference to the drawings. In the following, a code indicating a data line or a signal line is also used as the code indicating data or a signal.
An image processing apparatus 1 illustrated in
The image processing apparatus 1 includes an engine 100, an image reading unit 200, a controller 300, and an additional image processing unit 400. The image reading unit 200 includes, for example, a Charge Coupled Device (CCD) for reading the front side of a document and a Contact Image Sensor (CIS) for reading the back side of the document. The image reading unit 200 can simultaneously read the front side and the back side of a document to generate image data of the front side and image data of the back side. The image reading unit 200 may be configured to read only one side of a document. The engine 100 executes image processing on image data generated by the image reading unit 200.
The controller 300 controls the entire image processing apparatus 1 and has a processing function such as rotating image data (image), which has undergone image processing, output from the engine 100. The controller 300 may output image data, which has undergone image processing, to a printer unit (not illustrated) to be printed on a paper sheet.
The engine 100 includes a main image processing unit 110, a memory 120, and a central processing unit (CPU) 130 that is an example of a computer. The main image processing unit 110 includes an image processing unit 10, a memory controller 50, a transfer control unit 60, a functional expansion interface unit 70 including a memory 72, an output enable generating unit 80, and an output enable synthesizing unit 90.
The image processing unit 10 includes a plurality of image processing modules MD (MD1, MD2, and MD3) and a selector unit 20. The number of image processing modules MD is not limited to three. The image processing modules MD1 to MD3, which are examples of a first image processor and sub-image processors, have functions of executing different types of image processing from each other, such as color conversion processing, gradation processing, multiplication processing, and image characteristics correction processing. For example, the image processing modules MD1 to MD3 are connected in series, and pieces of image data generated by the image reading unit 200 are sequentially processed. The image processing module MD to be operated can be selected by control of the CPU 130 based on a specification by a user who uses the image processing apparatus 1. Hereinafter, an image processing module MD may be simply referred to as a module MD.
The selector unit 20, which is an example of a connector, controls the connection of the image processing modules MD1 TO MD3 and further controls the connection of the additional image processing unit 400. An example of the selector unit 20 is illustrated in
The memory controller 50, which is an example of a memory controller, has a function for accessing the memory 120 mounted in the engine 100. The memory controller 50 writes the image data, which is received from the image reading unit 200, into the memory 120 one line at a time along the main scanning direction, reads the image data written in the memory 120 one line at a time, and outputs the image data to the image processing unit 10.
For example, the memory controller 50 reads image data corresponding to one line from the memory 120 upon receipt of a main scanning synchronization signal output enable OEN, and outputs the read image data together with a main scanning synchronization signal HSYNC0. The main scanning synchronization signal HSYNC0 indicates the output timing for each line of image data. The memory controller 50 outputs not only the main scanning synchronization signal HSYNC0, but also a sub scanning synchronization signal VSYNC0, when outputting image data corresponding to the first line of each document. The sub scanning synchronization signal VSYNC0 is a synchronization signal with respect to the sub scanning direction that is the feeding direction of a document read by the image reading unit 200, and for example, the sub scanning synchronization signal VSYNC0 is generated for each sheet of a document. The main scanning synchronization signal HSYNC0 is generated for each piece of image data corresponding to one line along the main scan direction that is perpendicular to the sub scanning direction. The memory 120 may be a Dynamic Random Access Memory, although not limited thereto.
The transfer control unit 60 controls high-speed serial transfer between the engine 100 and the controller 300. The functional expansion interface unit 70, which is an example of a second generator, has a function of controlling the communication with the additional image processing unit 400 and generating a main scanning synchronization signal output enable OEN2. The memory 72 included in the functional expansion interface unit 70 temporarily holds image data that has undergone image processing at the additional image processing unit 400. For example, the memory 72 may be a static random access memory (SRAM). The functional expansion interface unit 70 sets the main scanning synchronization signal output enable OEN2 to be in an enable state based on completion of writing image data corresponding to one line from the additional image processing unit 400 into the memory 72.
The additional image processing unit 400 is mounted on, for example, a printed circuit board or the like, and is detachably connected to the engine 100 via a connector (not illustrated) or the like. A semiconductor chip or a printed circuit board including the additional image processing unit 400 may be mounted directly to a printed circuit board on which the engine 100 is mounted. The additional image processing unit 400 is electrically connected to the engine 100 at the time of functional expansion of image processing.
For example, the additional image processing unit 400 is connected to the functional expansion interface unit 70 via transmission lines TX and RX of high-speed serial signals. The transmission line TX is used for transmitting image data from the functional expansion interface unit 70 to the additional image processing unit 400, and the transmission line RX is used for receiving, by the functional expansion interface unit 70, image data output from the additional image processing unit 400.
The additional image processing unit 400 includes an image processing unit 40 as an example of a second image processor and a transfer control unit 42. For example, the image processing unit 40 performs image processing on image data transferred from the engine 100, one line at a time. The transfer control unit 42 controls the reception of image data transferred from the engine 100, one line at a time, and controls the transfer of image data processed by the image processing unit 40 to the engine 100, one line at a time.
Although not particularly limited, image processing executed by the image processing unit 40 is more highly specialized than image processing performed by the module MD, and examples of image processing by the image processing unit 40 include forgery prevention processing and watermark processing. Users who use these types of image processing are limited, and, therefore, these types of image processing functions are preferably connected to the engine 100 as functional expansions (options) according to need, rather than being installed in the engine 100 as standard functions. Accordingly, the image processing by the image processing unit 40 can be provided only to a user who needs this image processing, so that the cost of the image processing apparatus 1 can be reduced. When installing a new image processing function after development of the image processing apparatus 1, the additional image processing unit 400 including the image processing unit 40 including the new image processing function may be connected to the image processing apparatus 1.
When the additional image processing unit 400 is not connected to the engine 100, that is, when functional expansion of image processing is not performed, the functional expansion interface unit 70 fixes the main scanning synchronization signal output enable OEN2 in an enable state.
The output enable generating unit 80, which is an example of a first generator, generates a main scanning synchronization signal output enable OEN1 based on delay information DLY generated by the image processing unit 10 based on the image processing status. For example, the delay information DLY indicates the timing of completion of the image processing in the image processing unit 10.
The output enable synthesizing unit 90, which is an example of an allower, generates a main scanning synchronization signal output enable OEN based on the main scanning synchronization signal output enable OEN1 from the output enable generating unit 80 and the main scanning synchronization signal output enable OEN2 from the functional expansion interface unit 70. For example, the output enable synthesizing unit 90 asserts the main scanning synchronization signal output enable OEN based on the main scanning synchronization signal output enable for which assert generation timing is later, among the main scanning synchronization signal output enable OEN1 and the main scanning synchronization signal output enable OEN2. The main scanning synchronization signal output enables OEN1, OEN2, and OEN are examples of allowance signals.
The main scanning synchronization signal output enable OEN is set to the enable state according to the main scanning synchronization signal output enable for which the transition timing to the enable state is later, among the main scanning synchronization signal output enable OEN1 and the main scanning synchronization signal output enable OEN2. Hereinafter, the main scanning synchronization signal output enables OEN, OEN1, and OEN2 are also referred to as simply output enables OEN, OEN1, and OEN2.
The CPU 130 controls the entire engine 100 by executing a control program stored in a memory (not illustrated). The function of setting the generation timing of the output enable OEN1 by the output enable generating unit 80 may be implemented by a control program executed by the CPU 130. The function of setting the generation timing of the output enable OEN2 by the functional expansion interface unit 70 may be implemented by a control program executed by the CPU 130. The function of setting the generation timing of the output enable OEN by the output enable synthesizing unit 90 may be implemented by a control program executed by the CPU 130.
By the operations of the selectors SEL0 to SEL9, it is possible to insert the image processing unit 40 at any point between the memory controller 50, the modules MD1 to MD3, and the transfer control unit 60. That is, by the selectors SEL0 to SEL9, the modules MD1 TO MD3 and the image processing unit 40 can be connected in series. The selector unit 20 may include a selector for selecting the transmission destination and the transmission source of a control signal such as a main scanning synchronization signal HSYNC0. The selector for selecting the transmission destination of the control signal may have a function for outputting the control signal to a plurality of transmission destinations in parallel.
The selector SEL0 transfers image data from the memory controller 50 toward the module MD1 or the additional image processing unit 400. The selector SEL1 transfers image data from the memory controller 50 or image data from the additional image processing unit 400 to the module MD1.
The selector SEL2 transfers image data from the module MD1 toward the module MD2 or the additional image processing unit 400. The selector SEL3 transfers image data from the module MD1 or image data from the additional image processing unit 400 to the module MD2.
The selector SEL4 transfers image data from the module MD2 toward the module MD3 or the additional image processing unit 400. The selector SEL5 transfers image data from the module MD2 or image data from the additional image processing unit 400 to the module MD3.
The selector SEL6 transfers image data from the module MD3 toward the transfer control unit 60 or the additional image processing unit 400. The selector SEL7 transfers image data from the module MD3 or image data from the additional image processing unit 400 to the transfer control unit 60.
The selector SEL8 transfers image data from any one of the memory controller 50 and the module MD1 TO MD3 toward the additional image processing unit 400. The selector SEL9 transfers image data from the additional image processing unit 400 to one of the modules MD1 to MD3 or to the transfer control unit 60.
Note that when the additional image processing unit 400 is not connected, the selector unit 20 illustrated in
In this case, for example, the selector unit 20 may include a selector for selecting the input of one of the modules MD1, MD2, and MD3 for connecting to the output of the memory controller 50. The selector unit 20 may include a selector for selecting the input of one of the modules MD2 and MD3 or the input of the transfer control unit 60 for connecting to the output of the module MD1. The selector unit 20 may include a selector for selecting either the input of the module MD3 or the input of the transfer control unit 60 for connecting to the output of the module MD2.
First, in step S10, the image processing apparatus receives, from a user operating the image processing apparatus 1, an instruction to perform image processing on image data obtained by reading a document, and sets various parameters related to the image processing to be executed. For example, the user specifies (selects) image processing to be performed on the image by operating a touch panel or the like mounted in the image processing apparatus 1.
Next, in step S12, the image processing apparatus 1 connects the module MD to be operated and the additional image processing unit 400 via the selector unit 20 based on image processing specified by the user.
Next, in step S14, the image processing apparatus 1 starts reading a document based on the pressing of a start button or the like as the user operates a touch panel. For example, the reading of the document is executed by reading, one line at a time, an image along the main scanning direction that is perpendicular to the sub scanning direction, while moving a CCD or the like or the document in the sub scanning direction that is the feeding direction of the document. Accordingly, the image data of the document is generated one line at a time. The memory controller 50 writes the generated image data one line at a time into the memory 120.
Next, in step S16, the image processing apparatus 1 waits until a predetermined number of lines of image data is written in the memory 120, and when the predetermined number of lines of image data is written in the memory 120, the process proceeds to step S18. By the process of step S16, it is possible to prevent a situation where there is a shortage of lines of image data to be read from the memory 120, during the image processing of image data.
In step S18, when the additional image processing unit 400 is connected to the engine 100, the image processing apparatus 1 proceeds to the process of step S20, and when the additional image processing unit 400 is not connected to the engine 100, the image processing apparatus 1 proceeds to the process of step S22. Note that in a case where the parameters are set in step S10 such that image processing is not executed by the additional image processing unit 400, even when the additional image processing unit 400 is connected to the engine 100, the process proceeds to step S22.
In step S20, the image processing apparatus 1 cancels the mask of the output enable OEN2 and proceeds to step S22. Here, a mask refers to a state where the output enable OEN2 is fixed to the enable state so that the output enable OEN is not affected by the output enable OEN2. Cancelling a mask refers to shifting to a state where the output enable OEN2 can be generated based on the state of image processing by the additional image processing unit 400. Note that the output enable OEN2 is in a masked state, i.e., fixed to an enable state, at the start of the flowchart.
In step S22, the image processing apparatus 1 starts reading the image data from the memory 120. The image processing apparatus 1 executes image processing, on one line at a time, by using at least one of the module MD selected by the selector unit 20 and the image processing unit 40. Examples in which the image processing apparatus 1 executes image processing are described with reference to
Next, in step S24, the image processing apparatus 1 waits until the image data of the last line of the document read by the image reading unit 200 is transferred to the memory controller 50, and when the transfer of the image data that has undergone image processing corresponding to one document is completed, the process proceeds to step S26. In step S26, the image processing apparatus 1 sets the output enable OEN2 to the masked state by fixing the output enable OEN2 to the enable state, and ends the operation of reading the document.
“Valid” indicated in a rectangle of solid lines indicates that image data (line data in the main scanning direction) generated by reading a document is valid, and a code indicated in parenthesis within the rectangle indicates a particular line (line a, line b, line c, or line d). Lines a, b, c, and d are lines arranged in this order in the sub scanning direction. “Invalid” indicated in a rectangle of dashed lines indicates that image data is invalid.
In the example of
First, the module MD1 receives the synchronization signal HSYNC0 and the image data of line a that is output from the memory controller 50 ((a) in
The functional expansion interface unit 70 negates the output enable OEN2 to a low level in response to the synchronization signal HSYNC1 ((d) in
The functional expansion interface unit 70 receives image data of one line that has undergone image processing by the module MD1, via the selector unit 20, and outputs the received image data to the image processing unit 40 of the additional image processing unit 400 via the transmission line TX ((e) in
The functional expansion interface unit 70 sequentially writes the received image data to the memory 72 each time the image data (pixel data) is received from the image processing unit 40 ((f) in
As described above, the output enable OEN2 is negated (not allowed) based on the synchronization signal HSYNC, and is asserted (allowed) based on the completion of reception of the image data from the image processing unit 40. Therefore, during image processing by the image processing unit 40, the reading of the image data of the next line from the memory 120 is prohibited. Therefore, even when the image processing time by the image processing unit 40 varies, it is possible to reliably prohibit the reading of the image data of the next line from the memory 120 during image processing by the image processing unit 40.
On the other hand, the module MD2 starts the execution of image processing of dummy image data based on the reception of the synchronization signal HSYNC1 and outputs the synchronization signal HSYNC2 ((h) in
The output enable generating unit 80 negates the output enable OEN1 to a low level in response to the synchronization signal HSYNC0 ((j) in
When no valid image data is received, image processing is executed by using dummy image data, so that the image processing unit 10 can output the delay information DLY to the output enable generating unit 80 as in the case where valid image data is processed. Accordingly, the output enable generating unit 80 can assert the output enable OEN1 as in the case of processing valid image data. On the other hand, if image processing were not executed by using dummy image data, the image processing unit 10 would not be able to output the delay information DLY, and the output enable generating unit 80 would not be able to assert the output enable OEN1. As a result, the output enable synthesizing unit 90 would continue to wait for the output enable OEN1 to be asserted after the output enable OEN2 is asserted, and would consequently fall into a deadlock state. That is, by executing image processing by using dummy image data, it is possible to prevent malfunctions of the image processing apparatus 1.
For example, the output enable synthesizing unit 90 takes OR of the negative logic of the output enable OEN1 and the output enable OEN2 and outputs this as the output enable OEN ((1) in
The operation of the module MD1 in the second cycle is the same as that of the first cycle, and the operation of the image processing unit 40 is the same as that of the first cycle, except that the processing time of processing the image data is shorter than that of the first cycle. The functional expansion interface unit 70 asserts the output enable OEN2 in response to completion of reception of image data of one line from the image processing unit 40 ((m) in
On the other hand, in the second cycle, the modules MD2 and MD3 sequentially execute image processing by using the image data of line a generated by the image processing unit 40 in the first cycle. The module MD2 receives image data of line a held by the memory 72 together with the main scanning synchronization signal HSYNC1 output from the module MD1, starts image processing, and outputs the main scanning synchronization signal HSYNC2 ((n) and (o) in
As described above, when the additional image processing unit 400 is connected to the engine 100, image processing is executed by using two cycles T. For this reason, in the second cycle T, image processing of the image data of line a is executed by the modules MD2 and MD3 in parallel with image processing of the image data of line b by the module
MD1 and the image processing unit 40. In this case also, by allowing the reading of the image data of the next line at a timing matching the later one of the output enable OEN1 and the output enable OEN2, each module MD can always start processing the image based on a predetermined main scanning synchronization signal HSYNC.
The image data generated by the image processing unit 40 is buffered in the memory 72, and, therefore, even when the cycle T varies, the module
MD2 can receive the image data at a timing matching the synchronization signal HSYNC1 and execute image processing. In other words, even when the additional image processing unit 400 is connected to the engine 100 and image processing is executed across a plurality of cycles T, the deviation of timing caused by the variation of the leading cycle T can be adjusted and image processing in the subsequent cycle T can always be started at the same timing. As a result, it is possible to prevent abnormal images from being generated due to deviation of timing caused by executing the image processing is executed across a plurality of cycles T.
The module MD3 receives image data together with the main scanning synchronization signal HSYNC2 output from the module MD2, starts image processing, and outputs the main scanning synchronization signal HSYNC3 ((p) and (q) in
The output enable synthesizing unit 90 asserts the output enable OEN at a timing matching the output enable OEN1 for which the assert timing is later among the output enable OEN1 and the output enable OEN2 ((s) in
The operation of the third cycle T is similar to the operation of the second cycle, except that the timing of asserting the output enable OEN is adjusted to be at a timing matching the output enable OEN2. As illustrated in
In
The module MD3 does not receive valid image data from the image processing unit 40 in the first cycle T, and, therefore, the module MD3 starts image processing on dummy image data based on the synchronization signal HSYNC2 ((e) in
Also in
The functional expansion interface unit 70 has a function of detecting whether the additional image processing unit 400 is connected to the engine 100. When it is detected that the additional image processing unit 400 is not connected to the engine 100, the functional expansion interface unit 70 fixes the output enable OEN2 to a high-level “H” (enable state) ((a) in
The operations of the modules MD2 and MD3 are the same as those of the modules MD2 and MD3 in the second cycle T in
For example, the communication I/F 106 is a Peripheral Component Interconnect (PCI) interface. The I/O I/F 107 is connected to an input device such as a touch panel or various buttons, or is connected to a display device such as a liquid crystal display. The I/O I/F 108 is an interface for connecting a recording medium such as a digital versatile disc (DVD), a Compact Disk Read-Only Memory (CD-ROM), or a Universal Serial Bus (USB) memory. In the recording medium, control programs for controlling the operations of the image processing apparatus 1 may be stored. In this case, the CPU 130 executes a control program transferred from the recording medium to the HDD 104 or the like.
The CPU 130 implements the functions of the image processing apparatus 1 by executing control programs stored in the ROM 102 or a recording medium. The RAM 103 may include the memory 120 or the memory 72 illustrated in
Similar to
In the first cycle T, the output enable generating unit 80 detects the completion of the transfer of the dummy output image data by the module MD3 and asserts the output enable OEN1 to a high level ((a) in
The functional expansion interface unit 70 sequentially receives image data that has undergone image processing from the image processing unit 40 in a period spanning across the first and second cycles T and writes the received image data into the memory ((c) in
The module MD1 generates the synchronization signal HSYNC1 based on the synchronization signal HSYNC0 and starts image processing of line b ((d) in
When the storage of the image data generated by the image processing unit 40 in the memory 72 is completed before the synchronization signal HSYNC1 is output, no malfunction occurs. In the operations illustrated in
As described above, in the embodiments illustrated in
The functional expansion interface unit 70 negates the output enable OEN2 in response to the synchronization signal HSYNC1 and asserts the output enable OEN2 in response to the completion of reception of image data of one line from the image processing unit 40. Accordingly, even when the image processing time by the image processing unit 40 varies, reading of image data of the next line from the memory 120 during image processing by the image processing unit 40 can be reliably prohibited.
Further, because the output enable OEN2 is asserted in response to completion of reception of the image data from the image processing unit 40, it is possible to prevent the output enable OEN2 from being asserted during reception of the image data. As a result, even when the image processing time by the image processing unit 40 varies, the negate period of the output enable OEN2 can be minimized and abnormal images are prevented from being generated.
The image data generated by the image processing unit 40 is temporarily stored in the memory 72, and then transferred from the memory 72 to a subsequent module MD. Therefore, even when the cycle T varies, the subsequent module MD can receive image data at a timing matching the synchronization signal HSYNC and execute image processing.
In other words, even when the additional image processing unit 400 is connected to the engine 100 and image processing is executed across a plurality of cycles T, the deviation of timing due to the variation of the leading cycle T can be adjusted and image processing in the subsequent cycles T can always be started at the same timing. That is, at each cycle T, the timing of starting image processing by each module MD can be constant regardless of whether the additional image processing unit 400 is connected. As a result, it is possible to prevent abnormal images from being generated due to deviation of timing caused by the image processing being executed across a plurality of cycles T.
When no valid image data is received, image processing is executed by using dummy image data, so that the image processing unit 10 can output the delay information DLY to the output enable generation unit 80 as in the case where valid image data is processed. Accordingly, the output enable OEN1 can be asserted as in the case of processing valid image data, and it is possible to prevent malfunctions of the image processing apparatus 1 caused by the output enable OEN1 not being asserted.
When the cycle T set according to the output enable OEN (the cycle of generating the synchronization signal HSYNC0) is smaller than a minimum cycle that is set in advance, the memory controller 50 outputs the synchronization signal HSYNC0 in accordance with the minimum cycle. The operations of the first and third cycles of
In the second cycle T, the processing time of the image data by the image processing unit 40 and the processing time of the image data by the modules MD2 and MD3 are shorter than the processing time of the other cycles T ((a) and (b) in
When the image processing time by the image processing unit 40 extends across n cycles (n is an integer of two or more), the mask control unit 74 forcibly sets the output enable OEN2 to the assert level from the reading of the document to the n−1th cycle. The processing time of the image data by the image processing unit 40 may be calculated by the CPU 130 when the additional image processing unit 400 is connected to the engine 100 or may be calculated by the CPU 130 each time a document is read. The CPU 130 reports, to the mask control unit 74, the calculated processing time of the image data as the number of cycles.
The CPU 130 may store the calculated number of cycles in a register that can be referred to by the mask control unit 74. Further, without providing the mask control unit 74, an I/O register for forcibly setting the output enable OEN2 to the assert state may be provided, and the CPU 130 may write, in the I/O register, a value for setting the output enable OEN2 to the assert state for a period corresponding to the calculated number of cycles.
Based on the report from the CPU 130, the mask control unit 74 maintains the output enable OEN2 at a high level “H” in the first cycle T after reading the document ((a) in
The output enable OEN2 is fixed to a high level, and, therefore, the output enable synthesizing unit 90 asserts the output enable OEN in synchronization with the assert timing of the output enable OEN1 ((b) in
The operations of the second and third cycles T in
According to one embodiment of the present invention, the transfer performance of image data is prevented from being degraded, without generating abnormal image data, even when the image processing time varies according to whether functional expansion is implemented.
The image processing apparatus, the image processing apparatus controlling method, and the recording medium are not limited to the specific embodiments described in the detailed description, and variations and modifications may be made without departing from the spirit and scope of the present invention.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
10298808, | Mar 10 2017 | Ricoh Company, Ltd. | Image processing apparatus, image processing method, and recording medium |
4665556, | Feb 09 1983 | HITACHI, LTD , 6, KANDA SURUGADAI 4-CHOME, CHIYODA-KU, TOKYO, JAPAN | Image signal processor |
8520250, | Sep 12 2007 | Ricoh Company, Ltd. | Image reading apparatus and method, and computer-readable recording medium |
8849067, | Aug 12 2011 | Ricoh Company, Limited | Image processing apparatus, computer-readable storage medium, and image processing method for improving image data transfer |
8904069, | Nov 01 2010 | Olympus Corporation | Data processing apparatus and image processing apparatus |
9513694, | Nov 15 2012 | Ricoh Company, Ltd. | Information processing apparatus and power-source switching method |
9571020, | Sep 17 2014 | Ricoh Company, Limited | Motor drive control device, motor drive control method, and non-transitory computer-readable medium |
20090316169, | |||
20130077868, | |||
20130176590, | |||
20130182026, | |||
JP2012098883, | |||
JP2013192197, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 04 2019 | IMAIZUMI, YUKI | Ricoh Company, LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 050757 | /0192 | |
Oct 18 2019 | Ricoh Company, Ltd. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Oct 18 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Mar 29 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 06 2023 | 4 years fee payment window open |
Apr 06 2024 | 6 months grace period start (w surcharge) |
Oct 06 2024 | patent expiry (for year 4) |
Oct 06 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 06 2027 | 8 years fee payment window open |
Apr 06 2028 | 6 months grace period start (w surcharge) |
Oct 06 2028 | patent expiry (for year 8) |
Oct 06 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 06 2031 | 12 years fee payment window open |
Apr 06 2032 | 6 months grace period start (w surcharge) |
Oct 06 2032 | patent expiry (for year 12) |
Oct 06 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |