WO2016199477A1 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
WO2016199477A1
WO2016199477A1 PCT/JP2016/059952 JP2016059952W WO2016199477A1 WO 2016199477 A1 WO2016199477 A1 WO 2016199477A1 JP 2016059952 W JP2016059952 W JP 2016059952W WO 2016199477 A1 WO2016199477 A1 WO 2016199477A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
buffer
image processing
processing module
unit
Prior art date
Application number
PCT/JP2016/059952
Other languages
English (en)
French (fr)
Inventor
啓介 中薗
上野 晃
Original Assignee
オリンパス株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オリンパス株式会社 filed Critical オリンパス株式会社
Priority to DE112016002160.7T priority Critical patent/DE112016002160T5/de
Priority to CN201680033012.1A priority patent/CN107636631B/zh
Publication of WO2016199477A1 publication Critical patent/WO2016199477A1/ja
Priority to US15/813,658 priority patent/US10241721B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to an image processing apparatus and an image processing method.
  • This application claims priority on June 12, 2015 based on Japanese Patent Application No. 2015-119684 for which it applied to Japan, and uses the content here.
  • a single connected DRAM (Dynamic) Random Access Memory) is shared by multiple built-in processing blocks.
  • a plurality of built-in processing blocks are connected to a data bus inside the system LSI, and each processing block accesses the DRAM by DMA (Direct Memory Access).
  • DMA Direct Memory Access
  • an image processing unit that performs image processing is a processing block that performs pipeline processing.
  • high-speed image processing in the image processing unit is realized by pipeline processing in which a plurality of image processing modules that perform image processing are connected in series.
  • a processing block having a plurality of processing modules that perform pipeline processing is provided with a data buffer for transferring data between the processing modules. So that the pipeline processing is performed normally.
  • Patent Document 1 discloses a technology of a pipelined image processing apparatus in which a double buffer that is a data buffer is provided between each processing stage that is a processing module.
  • the image processing apparatus disclosed in Patent Document 1 realizes pipeline processing in which processing at each processing stage is sequentially performed by transferring data between the processing stages via a double buffer.
  • data processed by the preceding processing stage is temporarily stored in the double buffer, and the subsequent processing stage reads out the data stored in the double buffer, whereby the preceding processing is performed.
  • Data is transferred from the stage to the subsequent processing stage. That is, in the image processing apparatus disclosed in Patent Document 1, when data is transferred from the preceding processing stage to the succeeding processing stage, data is written to the double buffer by the preceding processing stage, and the following processing stage is used. Data is always read from the double buffer.
  • the present invention has been made on the basis of the above problem recognition, and an object thereof is to provide an image processing apparatus and an image processing method capable of reducing power consumption without reducing pipeline processing performance. Yes.
  • the image processing apparatus includes a pipeline in which a memory and a plurality of processing modules that perform predetermined processing on input data are connected in series.
  • An image processing apparatus connected to a data bus with an image processing unit that performs pipeline processing by the processing module sequentially performing the processing, and each of the processing modules stores the data for each unit of processing Whether to store the data in the data buffer based on the data buffer to be temporarily stored, the state of the data flow in the pipeline processing, and the state of the data stored in the data buffer
  • a route in the processing module for transferring the data is selected based on the determined result, and the data is selected.
  • a control unit for controlling the operation of the buffer, the.
  • the control unit further includes a data buffer that stores the data in a storage capacity of the data buffer.
  • the data When the data can be stored, the data is temporarily stored in the data buffer, then read and transferred, and the data buffer is operated to store the data in the pipeline processing.
  • the data When the flow is stagnant and the data cannot be further stored in the data buffer, the data is temporarily stored in the data buffer and then read and transferred, and the data is selected.
  • a buffer is operated to hold the stored data, and the pipeline processing is performed.
  • the data flow is not stagnant and the data is not stored in all the storage capacities of the data buffer, the data is passed through without being stored in the data buffer. While selecting a transfer path, the operation of the data buffer may be stopped.
  • the control unit includes the control unit itself in the processing module in the previous stage in the configuration of the pipeline.
  • a state notification signal representing the operation state of the pipeline, and determining a state of data flow in the pipeline processing based on the state notification signal input from the processing module in the subsequent stage in the configuration of the pipeline Good.
  • the control unit is based on the state notification signal input from the plurality of processing modules in the subsequent stage in the configuration of the pipeline. Then, the data flow state in the pipeline processing may be determined.
  • the state notification signal receives the data that has been processed by the processing module in the previous stage. Including a data request signal for requesting the output of the data processed by the processing module in the previous stage, and the control unit outputs the data from the processing module in the subsequent stage.
  • the data request signal for requesting it may be determined that the flow of the data in the pipeline processing is not stagnant.
  • control unit outputs the data when the data can be stored in the data buffer.
  • the requested data request signal may be output to the preceding processing module.
  • the control unit is in a state where the data is not stored in all the storage capacities of the data buffer.
  • the output of the data request signal for requesting the output of the data is suspended to the processing module in the previous stage, and after the data is not stored in all the storage capacities of the data buffer,
  • the data request signal may be output to the processing module, a path for transferring the data through the data buffer may be selected, and the operation of the data buffer may be stopped.
  • the image processing unit includes a plurality of bus masters connected to the data bus.
  • a bus traffic monitoring unit that monitors bus traffic in the data bus by monitoring access to the memory, wherein the bus traffic monitoring unit flows to the data bus based on the monitored bus traffic;
  • a buffer through instruction signal is output to each processing module to instruct selection of a route through which the data is transferred through the data buffer.
  • the control unit performs the pipeline. It may be determined that the flow of the data is a state of not stuck in the process.
  • the processing module transfers the data read from the data buffer. And a selector that selects one of the paths for transferring the data through the data buffer as a path for transferring the data, and the control unit stores the data in the data buffer.
  • a data amount management unit that manages the amount of data and outputs data amount information representing the monitored amount of data; and the data buffer based on the data amount information and a state of data flow in the pipeline processing The operation to be performed is determined, and based on the determined result, the writing of the data to the data buffer and the data buffer are performed.
  • a buffer-through determination unit that outputs an instruction signal for reading the data from the buffer and a control signal for selecting a path for transferring the data, and the instruction signal for writing the data to the data buffer.
  • a buffer write management unit that generates a buffer write signal that is a control signal for controlling the writing of the data to the data buffer, and according to the instruction signal for reading the data from the data buffer,
  • a buffer read management unit that generates a buffer read signal that is a control signal for controlling the reading of the data from the data buffer, and the data amount management unit includes the number of the input data, the buffer The amount of the data is managed based on the read signal, the buffer through determination unit, If the data amount information indicates that the amount of data is greater than 0, it is instructed to write the data to the data buffer and read the data from the data buffer.
  • the instruction signal and the control signal for selecting a route for reading and transferring the data once stored in the data buffer are output, and the data amount information indicates that the amount of the data is zero.
  • the selector outputs a path according to the control signal as a path for transferring the data. You may choose.
  • an image processing method includes a pipeline in which a memory and a plurality of processing modules that perform predetermined processing on input data are connected in series.
  • a control step which controls the operation of the data buffer.
  • FIG. 1 is a block diagram illustrating a schematic configuration of an image processing apparatus according to a first embodiment of the present invention. It is the figure which showed an example of the data transfer method between the image processing modules in the image processing part with which the image processing apparatus of the 1st Embodiment of this invention was equipped.
  • 1 is a block diagram illustrating a schematic configuration of an image processing module in an image processing unit provided in an image processing apparatus according to a first embodiment of the present invention.
  • 5 is a timing chart showing an example of the operation of the image processing module in the image processing unit provided in the image processing apparatus according to the first embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating a configuration of an image processing module in an image processing unit included in the image processing apparatus according to the first embodiment of the present invention.
  • FIG. 5 is a timing chart showing an example of the operation of the image processing module in the image processing unit provided in the image processing apparatus according to the first embodiment of the present invention.
  • 6 is a timing chart illustrating an example of another operation of the image processing module in the image processing unit included in the image processing apparatus according to the first exemplary embodiment of the present invention.
  • 1 is a block diagram illustrating a schematic configuration of an image processing module in an image processing unit provided in an image processing apparatus according to a first embodiment of the present invention.
  • FIG. 5 is a timing chart showing an example of the operation of the image processing module in the image processing unit provided in the image processing apparatus according to the first embodiment of the present invention. It is the block diagram which showed schematic structure of the image processing apparatus in the 2nd Embodiment of this invention. It is the timing chart which showed an example of operation
  • FIG. 1 is a block diagram showing a schematic configuration of an image processing apparatus according to the first embodiment of the present invention.
  • the image processing apparatus 1 illustrated in FIG. 1 includes a DMA bus 10, a DRAM 20, and an image processing unit 30.
  • the image processing unit 30 includes a connection switching unit 31, an input DMA module 32, three image processing modules 33-1 to 33-3, and an output DMA module 34.
  • the image processing apparatus 1 is provided in an imaging apparatus such as a still image camera, for example.
  • FIG. 1 illustration of other components provided in the image processing apparatus 1 and connected to the DMA bus 10 is omitted.
  • Other components included in the image processing device 1 include, for example, an imaging processing unit that controls a solid-state imaging device that photoelectrically converts an optical image of a subject formed by a lens included in the imaging device, and processing by the image processing unit 30.
  • a recording processing unit that performs a recording process for recording the image data
  • the DRAM 20 is connected to the DMA bus 10 and stores various data processed in the imaging device.
  • the DRAM 20 stores still image data output from a solid-state imaging device (not shown) provided in the imaging apparatus.
  • the image processing apparatus 1 the still image data of one frame stored in the DRAM 20 is divided into a plurality of predetermined small blocks, and the image processing unit 30 performs image processing for each block.
  • the image processing unit 30 includes an input DMA module 32, an image processing module 33-1, an image processing module 33-2, an image processing module 33-3, and an output DMA module 34 connected in series.
  • the image processing in the image processing apparatus 1 is sequentially performed by the pipeline processing.
  • data included in each block obtained by dividing still frame data of one frame is referred to as “block image data”.
  • the image processing unit 30 reads data of each pixel included in the block image data (hereinafter referred to as “pixel data”) from the DRAM 20 for each predetermined number of columns, for example, and processes the read pixel data as one process.
  • Image processing is performed as a unit.
  • a plurality of continuous pixel data included in the same column in pixel data of one processing unit on which the image processing unit 30 performs image processing is referred to as “unit line”.
  • the image processing unit 30 has a function of selecting image processing to be performed on still image data of one frame. More specifically, the image processing unit 30 can sequentially perform image processing by the image processing module 33-1, the image processing module 33-2, and the image processing module 33-3. -1 to image processing module 33-3 or image processing may be performed by one or a plurality of image processing modules 33-3, or image processing may be performed by changing the order of image processing modules 33-1 to 33-3. it can. In the following description, when each of the image processing module 33-1 to the image processing module 33-3 is expressed without distinction, it is referred to as “image processing module 33”.
  • the connection switching unit 31 switches the output destination of the image data output by each component provided in the image processing unit 30, that is, switches the connection between the respective components provided in the image processing unit 30. For example, when the image processing unit 30 performs image processing only on the image processing module 33-2, the output terminal of the input DMA module 32 and the input terminal of the image processing module 33-2 are connected, and the image processing module 33- The connection of each component is switched so that the two output terminals and the input terminal of the output DMA module 34 are connected. Further, for example, when the image processing unit 30 performs image processing in the order of the image processing module 33-3 and the image processing module 33-1, the output terminal of the input DMA module 32 and the input terminal of the image processing module 33-3.
  • connection switching unit 31 switches connection of each component included in the image processing unit 30 in accordance with, for example, control from a system control unit (not illustrated) included in the image processing apparatus 1.
  • the input DMA module 32 reads each pixel data included in the block image data stored in the DRAM 20 for each unit line, and performs the next image processing on the read pixel data via the connection switching unit 31. It is a processing module for outputting to any one of the image processing modules 33 that is a module.
  • the input DMA module 32 reads pixel data from the DRAM 20 via the DMA bus 10 in accordance with control from a system control unit (not shown) provided in the image processing apparatus 1, and the connection switching unit 31 reads the read pixel data. Is output to the connection destination image processing module 33 to which the connection has been switched.
  • the input DMA module 32 includes a data buffer capable of temporarily storing pixel data for a predetermined number of unit lines. Therefore, the input DMA module 32 temporarily stores the pixel data read from the DRAM 20 via the DMA bus 10 in the data buffer, and the connection of the pixel data temporarily stored in the data buffer is switched by the connection switching unit 31. It can also be output to the previous image processing module 33.
  • Each of the image processing modules 33-1 to 33-3 is input via the connection switching unit 31 from the connection destination input DMA module 32 or the image processing module 33 whose connection is switched by the connection switching unit 31.
  • This is a processing module that performs various digital image processing on the pixel data.
  • the image processing performed by each of the image processing modules 33-1 to 33-3 includes, for example, YC processing for generating Y (luminance) signals and C (color) signals corresponding to the respective pixel data, respectively.
  • Each of the image processing module 33-1 to the image processing module 33-3 is, for example, a pixel input via the connection switching unit 31 according to control from a system control unit (not shown) provided in the image processing apparatus 1.
  • the image processing is performed on the data, and the pixel data subjected to the image processing is output to the connection destination image processing module 33 or the output DMA module 34 to which the connection is switched by the connection switching unit 31.
  • each of the image processing modules 33-1 to 33-3 is also provided with a data buffer capable of temporarily storing pixel data for a predetermined number of unit lines.
  • a data buffer capable of temporarily storing pixel data for a predetermined number of unit lines.
  • whether or not the pixel data input via the connection switching unit 31 is temporarily stored in the data buffer depends on whether or not the pixel data in the pipeline processing is stored. Controlled based on flow.
  • processed pixel data when distinguished from pixel data to be subjected to image processing that is stored in the DRAM 20.
  • the output DMA module 34 writes (stores) in the DRAM 20 the processing pixel data input via the connection switching unit 31 from the connection destination image processing module 33 whose connection has been switched by the connection switching unit 31. It is a module.
  • the output DMA module 34 converts the processing pixel data input via the connection switching unit 31 into the DRAM 20 via the DMA bus 10 in accordance with control from a system control unit (not shown) provided in the image processing apparatus 1. Output to.
  • the output DMA module 34 is also provided with a data buffer capable of temporarily storing processing pixel data for a predetermined number of unit lines. Therefore, the output DMA module 34 temporarily stores the processed pixel data input via the connection switching unit 31 in the data buffer, and outputs the processed pixel data temporarily stored in the data buffer to the DRAM 20 via the DMA bus 10. You can also
  • each processing module divides one frame of still image data into block image data, for example, for control from a system control unit (not shown) included in the image processing apparatus 1.
  • the corresponding image processing is sequentially performed for each unit line on the pixel data included in each block image data, thereby performing a series of image processing on each block image data.
  • FIG. 2 is a diagram illustrating an example of a data transfer method between the image processing modules 33 in the image processing unit 30 included in the image processing apparatus 1 according to the first embodiment of the present invention.
  • FIG. 2 shows an example in which processed pixel data subjected to image processing by the image processing module 33-1 is output to the image processing module 33-2.
  • the pixel data output by each processing module is output to the processing module that performs the next processing via the connection switching unit 31.
  • the connection switching unit 31 is not shown, and the processing pixel data is directly output from the image processing module 33-1 to the image processing module 33-2.
  • each processing module performs image processing using a plurality of unit lines as one processing unit. For this reason, in the image processing unit 30, pixel data is also transferred between the processing modules provided in the image processing unit 30 for each processing unit.
  • FIG. 2 shows a case where the preceding image processing module 33-1 outputs the processing pixel data of each of the eight unit lines as one processing unit to the following image processing module 33-2. Note that one unit line includes a plurality of continuous processing pixel data included in the same column subjected to image processing.
  • FIG. 2 shows an example of a process pixel data transfer method (transfer method) between the image processing module 33-1 and the image processing module 33-2, but the input DMA module 32, the image processing module 33, and the like.
  • the pixel data transfer method between the image processing module 33 and the processing pixel data transfer method between the image processing module 33 and the output DMA module 34 are also the same as in FIG.
  • FIG. 2 shows an example in which the processing pixel data of each of the eight unit lines is transferred as one processing unit.
  • the number of unit lines that are transferred between the processing modules is shown in FIG. The number shown in 2 is not limited to eight.
  • FIG. 3 is a block diagram showing a schematic configuration of the image processing module 33 in the image processing unit 30 provided in the image processing apparatus 1 according to the first embodiment of the present invention.
  • FIG. 3 shows a basic configuration of the image processing module 33 having the first configuration.
  • the image processing module 33 having the first configuration illustrated in FIG. 3 includes an input buffer 331, a selector 332, a calculation unit 333, and a control unit 334.
  • the input buffer 331 is a data buffer that temporarily stores input data input to the image processing module 33.
  • the input buffer 331 includes, for example, a memory such as SRAM (Static Random Access Memory).
  • the input buffer 331 has a storage capacity capable of storing pixel data for a predetermined number of unit lines input from the preceding processing module as input data.
  • the input buffer 331 temporarily stores input data that is input in accordance with a control signal input from the control unit 334.
  • the input buffer 331 includes two sets of storage capacities for storing pixel data (input data) for a predetermined number of unit lines, and writing the pixel data to one set of storage capacities and the other It consists of a so-called double buffer that operates so that pixel data of one processing unit can be input and output at the same time by alternately switching the reading of pixel data from a set of storage capacity. Also good.
  • the selector 332 is a selection unit that selects pixel data to be output to the calculation unit 333.
  • the selector 332 selects input data (pixel data) temporarily stored in the input buffer 331 or input data (pixel data) currently input to the image processing module 33 in accordance with a control signal input from the control unit 334. Either one of the input data (pixel data) is output to the calculation unit 333.
  • the selector 332 calculates pixel data that is input from the previous processing module and temporarily stored in the input buffer 331, or the raw pixel data that is currently input from the previous processing module. To the unit 333.
  • the calculation unit 333 performs various digital image processing calculations on the input pixel data.
  • the computing unit 333 outputs processed pixel data generated by performing image processing computation as output data to the outside of the image processing module 33. That is, the calculation unit 333 outputs the generated processing pixel data to another image processing module 33 or the output DMA module 34 via the connection switching unit 31.
  • the control unit 334 performs notification of the operation state of the image processing module 33 and control of each component included in the image processing module 33.
  • the control unit 334 outputs a state notification signal indicating the operation state of the image processing module 33 to the previous processing module.
  • the control unit 334 controls the operation of the input buffer 331 depending on whether or not the input buffer 331 has a free storage capacity.
  • the input buffer 331 can temporarily store the input data input to the image processing module 33.
  • the control unit 334 outputs a signal requesting output of pixel data to the preceding processing module as a state notification signal indicating that the input data from the preceding processing module can be received. Then, the control unit 334 controls the input buffer 331 so as to temporarily store (write) the input data input from the preceding processing module in response to the state notification signal requesting output of the output pixel data.
  • the control unit 334 sends a signal indicating that output of pixel data is not requested to the previous processing module as a state notification signal indicating that the input data from the previous processing module cannot be received.
  • the status notification signal at this time may indicate that the processing module in the previous stage does not request the output of pixel data by the logical level of the signal requesting the output of pixel data. It may be expressed by a signal different from a signal requesting output of pixel data, such as a pipeline install signal indicating that the operation is temporarily stopped.
  • control unit 334 controls the operation of reading pixel data temporarily stored in the input buffer 331 and the selection (switching) of pixel data output from the selector 332 to the calculation unit 333.
  • Control of reading operation of pixel data from the input buffer 331 and control of switching of the selector 332 in the control unit 334 are input from the determination result of whether or not the input buffer 331 has an available storage capacity and a processing module in the subsequent stage.
  • the status notification signal input from the subsequent processing module is a status notification signal output by the control unit 334 provided in the subsequent processing module that is the output destination of the processing pixel data generated by the calculation unit 333, and is described above.
  • a signal indicating whether or not the subsequent processing module is in a state where it can receive the processing pixel data that is, a signal indicating whether or not to output the processing pixel data is included.
  • the control unit 334 determines whether or not the storage capacity of the input buffer 331 is free.
  • the control unit 333 controls the selector 332 to output the pixel data temporarily stored in the input buffer 331 or the pixel data currently input to the image processing module 33 to the calculation unit 333.
  • the control unit 334 controls the input buffer 331 so as to read out the temporarily stored pixel data, and also controls the selector 332 so as to transfer the pixel data output from the input buffer 331 to the arithmetic unit 333.
  • the calculation unit 333 outputs the processed pixel data generated by performing the image processing calculation on the pixel data temporarily stored in the input buffer 331 to the subsequent image processing module 33.
  • the control unit 334 reduces the input data to a free storage capacity.
  • the input buffer 331 is controlled to temporarily store (write).
  • the control unit 334 controls the input buffer 331 so as to stop the operation. Thereby, in the image processing module 33, the power consumption of the input buffer 331 can be reduced. Then, the control unit 334 outputs the pixel data currently input to the image processing module 33 as it is, that is, directly outputs the pixel data currently input to the calculation unit 333 without temporarily storing it in the input buffer 331.
  • the selector 332 is controlled. Accordingly, the calculation unit 333 outputs the processed pixel data generated by performing the image processing calculation on the pixel data currently input to the image processing module 33 to the subsequent image processing module 33.
  • control unit 334 indicates that the state notification signal input from the subsequent processing module indicates that the processing pixel data cannot be received, and the storage capacity of the input buffer 331 is free.
  • the control unit 334 controls the input buffer 331 so as to temporarily store (write) the input data input to the image processing module 33 in a free storage capacity.
  • the control unit 334 If the status notification signal input from the subsequent processing module indicates that the processing pixel data cannot be received, and the storage capacity of the input buffer 331 is not free, the control unit 334 Outputs a status notification signal indicating that input data cannot be received to the processing module in the previous stage, and therefore, input data is not input from the processing module in the previous stage. For this reason, the control unit 334 does not control the operation of the input buffer 331.
  • each processing module included in the image processing unit 30 receives input data from the preceding processing module based on the storage capacity of the input buffer 331 and the arithmetic unit 333 performs image processing. Selection (switching) of pixel data to be performed is performed.
  • FIG. 4 is a timing chart showing an example of the operation of the image processing module 33 in the image processing unit 30 provided in the image processing apparatus 1 according to the first embodiment of the present invention.
  • the image processing unit 30 includes an input DMA module 32, an image processing module 33-1 to an image processing module 33-3 having the first configuration, and an output DMA module 34 in series as shown in FIG.
  • an example of delivery of processed pixel data from the image processing module 33-1 to the image processing module 33-2 is shown.
  • FIG. 4 shows a signal requesting output of input data (hereinafter referred to as “data request signal”) as a state notification signal output to the preceding processing module by each of the image processing module 33-1 and the image processing module 33-2. ").
  • data request signal a signal requesting output of input data
  • FIG. 4 also shows a data request signal output as a status notification signal by the image processing module 33-3 connected to the subsequent stage of the image processing module 33-2.
  • FIG. 4 shows numbers representing the unit lines for input data, buffer write, buffer read, and output data.
  • Each processing module provided in the image processing unit 30 will be described as including a data buffer having a capacity capable of storing pixel data for two unit lines.
  • reference numerals given to the respective components reference numerals given to the respective components.
  • “ ⁇ ” given to the image processing module 33 and a numerical part following it are given.
  • the control unit 334 included in the image processing module 33-1 is represented as “control unit 334-1”
  • the control unit 334 included in the image processing module 33-2 is represented as “control unit 334-2”.
  • the image processing module 33-1, the image processing module 33-2, the image processing module 33-3, and the output DMA module 34 each request data for outputting input data.
  • the request signal is output to the previous processing module. This is because the storage capacity of the input buffer 331 provided in each image processing module 33 is all free at the initial stage when the image processing unit 30 starts pipeline processing, so that input data can be received. Because there is.
  • the arithmetic unit 333-1 included in the image processing module 33-1 and the arithmetic unit 333-2 included in the image processing module 33-2 can immediately perform image processing on the input pixel data. State.
  • the output DMA module 34 can immediately output the input data (processed pixel data) to the DRAM 20 via the DMA bus 10. This is because it is possible.
  • a period in which the data request signal is at “High” level represents a request period in which each processing module can accept pixel data
  • a period in which the data request signal is at “Low” level represents a request negation period in which each processing module cannot accept pixel data.
  • the input DMA module 32 When the data request signal is input from the image processing module 33-1 at the subsequent stage, the input DMA module 32 first receives the pixel data of the first unit line stored in the DRAM 20 via the DMA bus 10. Read sequentially for each unit line. Then, the input DMA module 32 outputs the read pixel data to the image processing module 33-1. At this time, the image processing module 33-1 connected to the subsequent stage of the input DMA module 32 outputs a “High” level data request signal to indicate that it can accept pixel data. . For this reason, the input DMA module 32 outputs the read pixel data to the image processing module 33-1 as it is without temporarily storing it in the data buffer. At this time, the input DMA module 32 stops the operation of the data buffer to reduce the power consumption of the data buffer. Thereafter, the input DMA module 32 reads out the pixel data of the second unit line stored in the DRAM 20 and starts output to the image processing module 33-1.
  • the image processing module 33-1 applies to each pixel data of the first unit line input from the input DMA module 32. Perform image processing. At this time, as described above, the image processing module 33-1 is in a state where the storage capacity of the input buffer 331-1 is all free, and the arithmetic unit 333-1 immediately performs image processing on the input pixel data. It is in a state where it can be performed. At this time, the image processing module 33-2 connected to the subsequent stage of the image processing module 33-1 is in a state where it can accept the processed pixel data by outputting a “High” level data request signal. It is shown that.
  • control unit 334-1 selects the selector 332-1 so that the pixel data of the first unit line currently input from the input DMA module 32 in the previous stage is output to the arithmetic unit 333-1 as it is. To control. Further, the control unit 334-1 controls to stop the operation of the input buffer 331-1 to reduce the power consumption of the input buffer 331-1. As a result, the calculation unit 333-1 generates the processed pixel data generated by performing the image processing calculation on each pixel data of the first unit line input via the selector 332-1. The image is output to the image processing module 33-2.
  • the processed pixel data output from the image processing module 33-1 is generated when the calculation unit 333-1 performs an image processing operation, from when the pixel data is input to when the processed pixel data is output. Output is delayed by a delay time (hereinafter referred to as “latency”). Thereafter, the image processing module 33-1 starts image processing for each pixel data of the second unit line input from the input DMA module 32.
  • the image processing module 33-2 processes pixel data corresponding to the first unit line input from the image processing module 33-1. Image processing is performed on At this time, as described above, the image processing module 33-2 is also in a state where all the storage capacity of the input buffer 331-2 is empty, and the arithmetic unit 333-2 immediately performs image processing on the input processing pixel data. It is in a state that can be performed. At this time, the image processing module 33-3 connected to the subsequent stage of the image processing module 33-2 is also in a state where it can accept the processed pixel data by outputting the “High” level data request signal. It is shown that.
  • control unit 334-2 also selects the processing pixel data corresponding to the first unit line currently input from the previous image processing module 33-1 and outputs the processed pixel data to the arithmetic unit 333-2 as it is. Control 332-2. In addition, the control unit 334-2 performs control so as to stop the operation of the input buffer 331-2, thereby reducing the power consumption of the input buffer 331-2. As a result, the calculation unit 333-2 performs image processing calculation on the processing pixel data corresponding to the first unit line input via the selector 332-2, and only the latency in the calculation unit 333-2 is obtained. The delayed processing pixel data is output to the image processing module 33-3. Thereafter, the image processing module 33-2 also starts image processing on the processing pixel data corresponding to the second unit line input from the image processing module 33-1.
  • each processing module sequentially transfers the input data input to the subsequent processing modules connected in the pipeline.
  • each processing module is in a state where the storage capacity of the input buffer 331 provided in the processing module itself is all free and the subsequent processing module can receive input data.
  • the calculation processing of the image processing is performed as it is or immediately and is output to the subsequent processing module.
  • FIG. 4 shows a period during which input data is not temporarily stored in the input buffer 331 for buffer write and buffer read of the image processing module 33-1 and the image processing module 33-2, that is, without going through the input buffer 331.
  • a period during which input data is transferred to the arithmetic unit 333 is shown as a buffer through period.
  • each processing module controls to stop the operation of the data buffer (input buffer 331) provided in the processing module itself. That is, the image processing unit 30 stops the operation of the data buffer (input buffer 331) during the buffer through period in each processing module. As a result, the image processing unit 30 can reduce the power consumption of the data buffer (input buffer 331) included in each processing module.
  • the subsequent image processing module 33-3 cannot accept the processing pixel data for some reason.
  • the image processing module 33-3 is in a state where it cannot accept the processed pixel data by setting the data request signal output to the image processing module 33-2 to the “Low” level. Indicates that no data output is requested.
  • the method of notifying each processing module that the output of input data is not requested to the processing module in the previous stage is not limited to the method based on the logic level of the data request signal, as described above, and the pipeline installation signal May be used to notify that pixel data cannot be received.
  • the control unit 334-2 The input buffer 331-2 is controlled so as to temporarily store the processing pixel data corresponding to the third unit line currently input from the previous image processing module 33-1. As a result, the input buffer 331-2 stores the processing pixel data corresponding to the third unit line, and the storage capacity for one unit line becomes empty (remains).
  • the control unit 334-2 temporarily stores the processing pixel data corresponding to the fourth unit line currently input from the preceding image processing module 33-1. Controls the input buffer 331-2. As a result, the input buffer 331-2 also stores the processed pixel data corresponding to the fourth unit line, and there is no free storage capacity. That is, the image processing module 33-2 cannot receive the processing pixel data from the image processing module 33-1. For this reason, the control unit 334-2 outputs a data request signal output to the image processing module 33-1 to indicate that the image processing module 33-2 cannot accept the processing pixel data. Set to “Low” level.
  • the control unit 334-1 is similar to the control unit 334-2 provided in the image processing module 33-2, and the fifth and sixth input from the input DMA module 32 are performed.
  • the input buffer 331-1 is controlled so as to temporarily store the pixel data of each unit line of the eye. Accordingly, the input buffer 331-1 stores the pixel data of the fifth and sixth unit lines, and the image processing module 33-1 cannot accept the pixel data from the input DMA module 32. It becomes a state. Therefore, similarly to the control unit 334-2, the control unit 334-1 also outputs to the input DMA module 32 to indicate that the image processing module 33-1 cannot accept the pixel data.
  • the received data request signal is set to the “Low” level.
  • the input DMA module 32 suspends reading of each pixel data of the seventh unit line stored in the DRAM 20.
  • the input DMA module 32 is also provided with a data buffer having a capacity capable of storing pixel data for two unit lines. For this reason, the input DMA module 32 reads the pixel data of the seventh and eighth unit lines, temporarily stores them in the data buffer, and then reads the pixel data of the ninth unit line. May be suspended.
  • each processing module Stops outputting the output data to the subsequent processing module.
  • Each processing module temporarily stores pixel data for the storage capacity of the input buffer 331 provided in the processing module itself, and then the processing module itself cannot receive the pixel data. To be notified.
  • each processing module performs processing for each processing unit. Therefore, in the image processing unit 30, even when each processing module is notified that the pixel data cannot be received while outputting the pixel data of one processing unit to the subsequent processing module, After outputting all pixel data of the currently output processing unit, output of output data to the subsequent processing module is stopped.
  • the image processing module 33-3 is in a state where it can accept the processed pixel data by setting the data request signal output to the image processing module 33-2 to the “High” level. Indicates that data output is requested.
  • the method for notifying each processing module to request the output of input data again to the previous processing module is not limited to the method based on the logic level of the data request signal, as described above. A method of notifying that pixel data can be received by stopping signal output may be used.
  • the image processing module 33-2 temporarily stores the processing pixel data corresponding to the third and fourth unit lines in a state where the input buffer 331-2 has no free storage capacity. State). Therefore, the control unit 334-2 first reads out the processing pixel data corresponding to the third unit line stored in the input buffer 331-2 from the input buffer 331-2, and outputs the processed pixel data to the calculation unit 333-2. Thus, the input buffer 331-2 and the selector 332-2 are controlled. As a result, the input buffer 331-2 outputs the processed pixel data corresponding to the stored third unit line to the selector 332-2, and the selector 332-2 receives the input from the input buffer 331-2. The processed pixel data corresponding to the third unit line is output to the calculation unit 333-2.
  • the calculation unit 333-2 performs an image processing calculation on the processing pixel data corresponding to the third unit line output from the selector 332-2, and a process delayed by the latency in the calculation unit 333-2.
  • the pixel data is output to the subsequent image processing module 33-3.
  • the input buffer 331-2 outputs the processing pixel data corresponding to the third unit line, and thus the storage capacity for one unit line becomes empty (remains). That is, the image processing module 33-2 can receive the processing pixel data from the image processing module 33-1. Therefore, the control unit 334-2 outputs a data request signal output to the image processing module 33-1 to indicate that the image processing module 33-2 can receive the processing pixel data. Set to “High” level.
  • the input buffer 331-2 has a free storage capacity, but the processing pixel data corresponding to the fourth unit line is temporarily stored. Therefore, the control unit 334-2 reads out the processing pixel data corresponding to the fourth unit line stored in the input buffer 331-2 from the input buffer 331-2, and outputs it to the arithmetic unit 333-2. In addition, the input buffer 331-2 and the selector 332-2 are controlled. As a result, the processing pixel data corresponding to the fourth unit line stored in the input buffer 331-2 is input to the arithmetic unit 333-2 via the selector 332-2. Then, the calculation unit 333-2 performs the image processing on the processed pixel data corresponding to the fourth unit line input via the selector 332-2, and generates the processed pixel data. Output to module 33-3.
  • the data request signal input from the subsequent image processing module 33-2 becomes “High” level so that the image processing module 33-2 can accept the processed pixel data.
  • the control unit 334-1 like the control unit 334-2 provided in the image processing module 33-2, processes pixel data corresponding to the fifth and sixth unit lines. Is output to the image processing module 33-2. More specifically, the control unit 334-1 sequentially reads out the pixel data of the fifth and sixth unit lines stored in the input buffer 331-1 and outputs them to the arithmetic unit 333-1. In addition, the input buffer 331-2 and the selector 332-2 are controlled.
  • the calculation unit 333-1 performs image processing calculation on the respective pixel data of the fifth and sixth unit lines sequentially input via the selector 332-1, and the calculation unit 333-3.
  • the processed pixel data delayed by the latency in 1 is output to the subsequent image processing module 33-2.
  • the input buffer 331-1 is in a state where the storage capacity for one unit line is vacant (remains) when each pixel data of the fifth unit line is output, and the image processing module 33-1 is ready to receive pixel data from the input DMA module 32. Therefore, similarly to the control unit 334-2, the control unit 334-1 outputs to the input DMA module 32 to indicate that the image processing module 33-1 is ready to accept pixel data.
  • the received data request signal is set to “High” level.
  • the input DMA module 32 resumes reading of the pixel data from the seventh unit line stored in the DRAM 20, and outputs the read pixel data to the image processing module 33-1.
  • the input DMA module 32 holds the pixel data of the seventh and eighth unit lines in the data buffer when reading the pixel data stored in the DRAM 20 is suspended. Then, after outputting each pixel data of the seventh unit line stored in the data buffer to the image processing module 33-1, reading of the pixel data may be resumed from the ninth unit line.
  • each processing module when the data request signal input from the downstream processing module connected in the pipeline is changed to a state in which the pixel data can be received again, each processing module The output of output data to the processing module is resumed. At this time, each processing module sequentially outputs the pixel data stored in the input buffer 331 included in the processing module itself to the subsequent processing module. Then, each processing module notifies that the processing module itself is ready to accept pixel data after the storage capacity of the input buffer 331 provided in the processing module itself becomes free. Thereafter, each processing module temporarily stores the input pixel data in an input buffer 331 provided in the processing module itself, reads it, and sequentially outputs it to the subsequent processing module.
  • the image processing unit 30 performs pipeline processing by each processing module connected in the pipeline for each unit line with respect to the pixel data included in each block image data. By sequentially performing, a series of image processing is performed on each block image data.
  • the image processing unit 30 has resumed outputting the output data to the subsequent processing module by each processing module.
  • the input data can be output as it is to the subsequent processing module without going through the input buffer 331 again, as in the first stage where the pipeline processing shown in FIG. Control is performed to stop the operation of the buffer 331.
  • the image processing unit 30 can reduce the power consumption of the input buffer 331 provided in each processing module.
  • FIG. 5 is a block diagram illustrating a configuration of the image processing module 33 in the image processing unit 30 included in the image processing apparatus 1 according to the first embodiment of the present invention.
  • FIG. 5 shows a schematic configuration of the control unit 334 included in the image processing module 33 having the first configuration. 5 also shows the input buffer 331, the selector 332, and the calculation unit 333 provided in the image processing module 33 having the first configuration.
  • the control unit 334 illustrated in FIG. 5 includes a data amount management unit 3341, a buffer through determination unit 3342, an input buffer write management unit 3343, and an input buffer read management unit 3344.
  • the data amount management unit 3341 manages the number of unit lines temporarily stored in the input buffer 331 in order to manage the data amount of input data (pixel data) temporarily stored in the input buffer 331. More specifically, the data amount management unit 3341 is based on the data valid signal input from the previous processing module, and the currently input pixel data is valid pixel data to be temporarily stored in the input buffer 331. It is determined whether or not.
  • the data valid signal is a signal indicating whether or not each pixel data included in the unit line is valid pixel data.
  • the data amount management unit 3341 determines whether or not all valid pixel data included in the currently input unit line has been input from the previous processing module by counting the number of valid pixel data. To do.
  • the data amount management unit 3341 receives information indicating the number of unit lines temporarily stored in the input buffer 331 (hereinafter referred to as “data amount information in buffer”). ). For example, each time a unit line including valid pixel data is input from the preceding processing module, the data amount management unit 3341 adds 1 to the number of unit lines represented by the data amount information in the buffer.
  • the timing at which the data amount management unit 3341 adds the data amount information in the buffer is the timing at which the first valid pixel data is determined in the unit line. This is because when the first effective pixel data is input in one unit line, the effective pixel data included in this unit line is subsequently input.
  • the data amount management unit 3341 counts the number of pixel data read from the input buffer 331 based on the buffer read signal for reading the pixel data temporarily stored in the input buffer 331 by the input buffer read management unit 3344, and It is determined whether all pixel data included in the unit line to be output has been read from the input buffer 331.
  • the data amount management unit 3341 updates the data amount information in the buffer. For example, each time the data amount management unit 3341 determines that one unit line has been read, the data amount management unit 3341 decrements the number of unit lines represented by the data amount information in the buffer by one.
  • the timing at which the data amount management unit 3341 subtracts the data amount information in the buffer is the timing at which the last pixel data included in the unit line is read, that is, all the pixel data included in one unit line is read from the input buffer 331. This is the read timing. This is because the pixel data of the other unit lines cannot be temporarily stored in the input buffer 331 unless all the pixel data included in one unit line is read.
  • the data amount management unit 3341 manages the number of unit lines temporarily stored in the input buffer 331. Then, the data amount management unit 3341 outputs the data amount information in the buffer to the buffer through determination unit 3342 and the input buffer read management unit 3344.
  • a data request signal for requesting data output is output to the preceding processing module. More specifically, the data amount management unit 3341 temporarily stores the number of unit lines represented by the data amount information in the buffer, that is, the input buffer 331 from the maximum number of unit lines that can be temporarily stored in the input buffer 331. If the value obtained by subtracting the current number of unit lines is larger than “0”, it is determined that the input buffer 331 has a free storage capacity and the output of the input data is requested. The data request signal to be output is output to the preceding processing module.
  • the data amount management unit 3341 outputs the input data when the number of unit lines represented by the data amount information in the buffer is smaller than the maximum number of unit lines that can be temporarily stored in the input buffer 331.
  • a data request signal indicating a request is output to the previous processing module.
  • the data amount management unit 3341 inputs “0” when the value obtained by subtracting the number of unit lines represented by the data amount information in the buffer from the maximum number of unit lines that can be temporarily stored in the input buffer 331 is “0”. It is determined that there is no free storage capacity in the buffer 331, and the data request signal output to the processing module in the previous stage is set to a logic level indicating that output of input data is not requested.
  • the data amount management unit 3341 outputs a pipeline install signal indicating that output of input data is not requested to the processing module in the previous stage. That is, when the number of unit lines represented by the data amount information in the buffer is the same value as the maximum number of unit lines that can be temporarily stored in the input buffer 331, the data amount management unit 3341 outputs to the processing module in the previous stage.
  • the data request signal is changed to a logic level indicating that output of input data is not requested, and a pipeline install signal is output to the processing module in the previous stage.
  • the data amount management unit 3341 knows in advance the delay time (latency) until input data is input from the processing module in the previous stage in accordance with, for example, a data request signal indicating that output of input data is requested.
  • the timing at which the reading of the pixel data from the input buffer 331 is predicted may be predicted, and the data request signal requesting the output of the input data may be output at the timing before the reading of the pixel data is completed.
  • the buffer through determination unit 3342 determines the control method of the input buffer 331 based on the data amount information in the buffer input from the data amount management unit 3341 and the data request signal and the pipeline installation signal input from the subsequent processing module. judge. That is, the buffer through determination unit 3342 determines whether to temporarily store (write) the input data input to the image processing module 33 in the input buffer 331, and the input data (pixel data) temporarily stored in the input buffer 331. ) And the selection (switching) of input data (pixel data) to be output to the calculation unit 333 are determined.
  • the buffer through determination unit 3342 instructs each of the input buffer write management unit 3343 and the input buffer read management unit 3344 to perform an operation on the input buffer 331 (hereinafter referred to as an instruction signal). "Buffer operation instruction signal”) is output. Further, the buffer through determination unit 3342 outputs a control signal for controlling the selector 332 (hereinafter referred to as “buffer through signal”).
  • the buffer through determination unit 3342 accepts the processing pixel data. It is determined that it is possible to Then, when the number of unit lines represented by the data amount information in the buffer is a value larger than “0”, the buffer through determination unit 3342 temporarily stores pixel data for at least one unit line in the input buffer 331. Is determined. In this case, the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer write management unit 3343 to temporarily store (write) the input data input to the image processing module 33.
  • the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer read management unit 3344 to read out pixel data temporarily stored in the input buffer 331. Further, the buffer through determination unit 3342 outputs a buffer through signal for controlling the pixel data output from the input buffer 331 to be output to the arithmetic unit 333 to the selector 332. Thereby, the pixel data currently input to the image processing module 33 is temporarily stored in the input buffer 331 and then read, that is, temporarily stored in the input buffer 331 and then transferred to the arithmetic unit 333. .
  • the buffer through determination unit 3342 determines that the subsequent processing module can accept the processing pixel data, and the number of unit lines represented by the data amount information in the buffer is “0”, the input It is determined that the pixel data for one unit line is not temporarily stored in the buffer 331. That is, the buffer through determination unit 3342 determines that the pipeline processing is being smoothly performed without the flow of the processing pixel data being delayed. In this case, the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer write management unit 3343 to stop the operation of the input buffer 331. Further, the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer read management unit 3344 not to read pixel data temporarily stored in the input buffer 331.
  • the buffer through determination unit 3342 outputs to the selector 332 a buffer through signal for controlling the input data (pixel data) currently input to the image processing module 33 to be output to the arithmetic unit 333 as it is.
  • the pixel data currently input to the image processing module 33 is transferred to the arithmetic unit 333 directly, that is, through the input buffer 331 without being temporarily stored in the input buffer 331.
  • the buffer-through determination unit 3342 receives a data request signal from a subsequent processing module or a data request signal from a subsequent processing module but receives a pipeline installation signal. Determines that the subsequent processing module cannot accept the processing pixel data.
  • the buffer through determination unit 3342 stores at least in the input buffer 331. It is determined that the pixel data for one unit line can be temporarily stored.
  • the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer write management unit 3343 to temporarily store (write) the input data input to the image processing module 33. Thereby, the pixel data currently input to the image processing module 33 is temporarily stored in the input buffer 331.
  • the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer read management unit 3344 not to read the pixel data temporarily stored in the input buffer 331. Further, the buffer through determination unit 3342 outputs a buffer through signal for controlling the pixel data output from the input buffer 331 to be output to the arithmetic unit 333 to the selector 332. As a result, the same pixel data as the pixel data currently input to the image processing module 33 and temporarily stored in the input buffer 331 (pixel data not currently subject to image processing) passes through the input buffer 331. Therefore, the operation unit 333 can be prevented from performing unnecessary operations and consuming electric power.
  • the image processing module 33 when it is determined that the subsequent processing module cannot accept the processing pixel data, the number of unit lines represented by the data amount information in the buffer is temporarily stored in the input buffer 331.
  • the data amount management unit 3341 outputs a pipeline installation signal indicating that output of input data is not requested to the processing module in the previous stage. For this reason, input data from the previous processing module is not input to the image processing module 33.
  • the buffer through determination unit 3342 instructs each of the input buffer write management unit 3343 and the input buffer read management unit 3344 not to perform writing and reading operations to the input buffer 331.
  • the buffer through determination unit 3342 instructs to hold the pixel data temporarily stored in the input buffer 331. Also at this time, the buffer through determination unit 3342 outputs a buffer through signal that controls the pixel data output from the input buffer 331 to be output to the arithmetic unit 333 to the selector 332. Thereby, pixel data is not input to the calculation unit 333.
  • the input buffer write management unit 3343 is a control signal (hereinafter referred to as “buffer write signal”) for performing an input data write operation to the input buffer 331 in response to the buffer operation instruction signal input from the buffer through determination unit 3342. Is output to the input buffer 331. More specifically, when a buffer operation instruction signal instructing to temporarily store (write) input data input to the image processing module 33 is input to the input buffer write management unit 3343, the input buffer write management unit 3343 starts from the previous processing module. A buffer write signal for writing input data (pixel data) indicating that the input data valid signal is valid to the input buffer 331 is generated and output to the input buffer 331.
  • the input buffer write management unit 3343 sends a buffer write signal for writing input data to the input buffer 331 to the input buffer 331. Do not output.
  • the input buffer write management unit 3343 for example, a control signal for setting the input buffer 331 to the sleep state and stopping the operation. May be generated and output to the input buffer 331. In FIG. 5, only the buffer write signal is shown, and for example, a control signal for stopping the operation of the input buffer 331 such as a sleep signal is omitted.
  • the input buffer read management unit 3344 controls a pixel data read operation for the input buffer 331 in accordance with the buffer operation instruction signal input from the buffer through determination unit 3342 (hereinafter referred to as “buffer read signal”). Is output to the input buffer 331. More specifically, when a buffer operation instruction signal instructing to read out pixel data temporarily stored in the input buffer 331 is input, the input buffer read management unit 3344 temporarily stores the input buffer 331 in the input buffer 331. A buffer read signal for sequentially reading from the unit line temporarily stored among the unit lines is generated and output to the input buffer 331. In addition, when a buffer operation instruction signal instructing not to read pixel data temporarily stored in the input buffer 331 is input, the input buffer read management unit 3344 temporarily stores the unit in the input buffer 331. A buffer read signal for reading out pixel data of each line is not output to the input buffer 331.
  • FIG. 6 is a flowchart illustrating a processing procedure of the image processing module 33 in the image processing unit 30 provided in the image processing apparatus 1 according to the first embodiment of the present invention.
  • FIG. 6 shows a processing procedure for determining the control method of the input buffer 331 in the buffer through determination unit 3342 included in the image processing module 33 having the first configuration.
  • the buffer through determination unit 3342 first determines whether or not a data request signal has been input from the subsequent processing module, that is, the subsequent processing module requests output of processed pixel data. It is determined whether or not (step S100). In step S100, when it is determined that the data request signal is not input, that is, the subsequent processing module does not request the output of the processing pixel data (“NO” in step S100), the buffer through determination unit 3342 Proceed to step S105.
  • step S100 when it is determined in step S100 that a data request signal has been input, that is, the subsequent processing module requests output of processed pixel data (“YES” in step S100), the buffer through determination unit 3342 Then, it is determined whether or not the pipeline processing of the subsequent processing module is (temporarily) stopped and the pipeline installation state in which the processing pixel data cannot be received (step S101). The determination in step S101 can be made based on whether or not a pipeline installation signal is input from a subsequent processing module.
  • step S101 When it is determined in step S101 that the subsequent processing module is not in the pipeline installation state (“NO” in step S101), the buffer through determination unit 3342 receives the data in the buffer input from the data amount management unit 3341 in step S102. It is determined whether or not the number of unit lines represented by the quantity information is “0”.
  • step S102 when the number of unit lines represented by the data amount information in the buffer is not “0”, that is, the number of unit lines represented by the data amount information in the buffer is greater than “0” (“NO” in step S102).
  • the buffer through determination unit 3342 determines that the pixel data for at least one unit line is temporarily stored in the input buffer 331. Then, the buffer through determination unit 3342 temporarily stores the pixel data currently input to the image processing module 33 in the input buffer 331 for each of the input buffer write management unit 3343, the input buffer read management unit 3344, and the selector 332. It controls so that it may read later and may be transferred to the calculating part 333 (step S103).
  • the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer write management unit 3343 to temporarily store (write) the input data input to the image processing module 33.
  • a buffer operation instruction signal for instructing the input buffer read management unit 3344 to read out pixel data temporarily stored in the input buffer 331 is output.
  • the buffer through determination unit 3342 outputs a buffer through signal for controlling the pixel data output from the input buffer 331 to be output to the arithmetic unit 333 to the selector 332.
  • the buffer through determination unit 3342 stores pixels for one unit line in the input buffer 331. It is determined that no data is temporarily stored, that is, the storage capacity of the input buffer 331 is all free. This is a state in which the pipeline processing is smoothly performed without the flow of pixel data being delayed. Therefore, the buffer-through determination unit 3342 causes the input buffer write management unit 3343, the input buffer read management unit 3344, and the selector 332 to directly input the pixel data currently input to the image processing module 33 to the calculation unit 333. Control is performed to transfer the data (step S104).
  • the buffer through determination unit 3342 controls the pixel data currently input to the image processing module 33 to pass through the input buffer 331 and transfer it to the arithmetic unit 333. More specifically, the buffer through determination unit 3342 outputs a buffer operation instruction signal for instructing the input buffer write management unit 3343 to stop the operation of the input buffer 331, and inputs it to the input buffer read management unit 3344. A buffer operation instruction signal for instructing not to read the buffer 331 is output. Further, the buffer through determination unit 3342 outputs to the selector 332 a buffer through signal that controls the input data (pixel data) currently input to the image processing module 33 to be output to the arithmetic unit 333 as it is.
  • step S101 if it is determined in step S101 that the subsequent processing module is in the pipeline installation state (“YES” in step S101), or if the subsequent processing module does not request output of processing pixel data in step S100. If it is determined (“NO” in step S100), the buffer through determination unit 3342 proceeds to step S105.
  • the buffer through determination unit 3342 is a value in which the number of unit lines represented by the data amount information in the buffer input from the data amount management unit 3341 is smaller than the maximum number of unit lines that can be temporarily stored in the input buffer 331. It is determined whether or not.
  • step S105 if the number of unit lines represented by the data amount information in the buffer is smaller than the maximum number of unit lines that can be temporarily stored in the input buffer 331 (“YES” in step S105), the buffer through determination unit 3342 determines that pixel data for at least one unit line can be temporarily stored in the input buffer 331. Then, the buffer through determination unit 3342 temporarily stores the pixel data currently input to the image processing module 33 in the input buffer 331 for each of the input buffer write management unit 3343, the input buffer read management unit 3344, and the selector 332. (Step S106). More specifically, the buffer through determination unit 3342 outputs a buffer operation instruction signal that instructs the input buffer write management unit 3343 to temporarily store (write) the input data input to the image processing module 33.
  • a buffer operation instruction signal for instructing not to read out pixel data temporarily stored in the input buffer 331 is output to the input buffer read management unit 3344. Further, the buffer through determination unit 3342 outputs a buffer through signal for controlling the pixel data output from the input buffer 331 to be output to the arithmetic unit 333 to the selector 332.
  • step S105 the number of unit lines represented by the data amount information in the buffer is not smaller than the maximum number of unit lines that can be temporarily stored in the input buffer 331, that is, the unit line represented by the data amount information in the buffer.
  • the buffer through determination unit 3342 stores input data (pixel data) in the input buffer 331. It is determined that temporary storage is not possible.
  • the buffer through determination unit 3342 holds the pixel data temporarily stored in the input buffer 331 so that the input buffer write management unit 3343, the input buffer read management unit 3344, and the selector 332 do not operate. Control is performed (step S107).
  • the data amount management unit 3341 outputs a data request signal and a pipeline installation signal indicating that output of input data is not requested to the processing module in the previous stage.
  • the buffer through determination unit 3342 determines the control method of the input buffer 331, and based on the determined result, the input buffer write management unit 3343, the input buffer read management unit 3344, and the selector 332 Control. Note that the determination of the control method of the input buffer 331 in the buffer through determination unit 3342 is repeated until the pipeline processing in the image processing unit 30 ends.
  • the control unit 334 included in the image processing module 33 having the first configuration receives input data (pixel data) from the previous processing module based on the free state of the storage capacity of the input buffer 331. Request. In addition, the control unit 334 determines the input data (pixel data) input from the previous processing module to the image processing module 33 based on the empty storage capacity of the input buffer 331 and the operation state of the subsequent processing module. Writing to the input buffer 331, reading of pixel data temporarily stored in the input buffer 331, and selection (switching) of pixel data for the calculation unit 333 to perform image processing calculation are performed. Accordingly, the calculation unit 333 outputs the processed pixel data generated by performing the image processing calculation on the input pixel data to the subsequent processing module. In FIG. 5, the calculation unit 333 generates a data valid signal indicating whether or not each processing pixel data included in the unit line generated by performing the image processing calculation is valid processing pixel data. Thus, a configuration for outputting to a subsequent processing module is shown.
  • FIG. 7 is a timing chart showing an example of the operation of the image processing module 33 in the image processing unit 30 provided in the image processing apparatus 1 according to the first embodiment of the present invention.
  • FIG. 7 shows an example of pixel data transfer in the image processing module 33 having the first configuration shown in FIG.
  • FIG. 7 shows a data request signal and a pipeline installation signal that are input to the image processing module 33 from the subsequent processing module, and output data that the image processing module 33 outputs to the subsequent processing module.
  • FIG. 7 also shows a data request signal, a pipeline installation signal, and a data valid signal output from the image processing module 33 to the preceding processing module, a data valid signal input to the image processing module 33 from the preceding processing module, and And input data.
  • the buffer through signal output to the selector 332 by the control unit 334 provided in the image processing module 33 and the input buffer write management unit 3343 in the control unit 334 provided in the image processing module 33 are input buffer 331.
  • FIG. 7 shows data amount information in the buffer, which is a signal in the control unit 334 provided in the image processing module 33, and pixel data input to the calculation unit 333 provided in the image processing module 33. .
  • the input buffer 331 included in the image processing module 33 has a storage capacity capable of storing pixel data for two unit lines.
  • each processing module included in the image processing unit 30 When the image processing unit 30 starts pipeline processing, each processing module included in the image processing unit 30 outputs a data request signal for requesting output of input data to the preceding processing module at timing t1.
  • the data amount management unit 3341 outputs a data request signal to the preceding processing module.
  • a data request signal is input to the image processing module 33 from a subsequent processing module.
  • the image processing module 33 is in a state where it can immediately perform image processing on the input pixel data.
  • the unit 334 controls to pass through the input buffer 331 and transfer it to the arithmetic unit 333.
  • the control unit 334 inputs the image processing module 33 to the image processing module 33 at the first stage when the image processing unit 30 starts the pipeline processing in order to facilitate the explanation of the change in the data amount information in the buffer. The description will be made assuming that the pixel data is temporarily stored in the input buffer 331 and then read out and transferred to the arithmetic unit 333.
  • input data and a data valid signal are input from the previous processing module in response to the data request signal output at timing t1.
  • the buffer through determination unit 3342 receives input data input from the preceding processing module in accordance with the “High” level of the data request signal input from the subsequent processing module and the “High” level of the pipeline installation signal. An instruction is given to temporarily store the data in the input buffer 331 and then transfer it to the computing unit 333. Accordingly, the input buffer write management unit 3343 outputs a buffer write signal to the input buffer 331 at the timing t2.
  • the buffer write signal is a signal including a plurality of pulse signals for temporarily storing (writing) each pixel data of the currently input unit line in the input buffer 331. In FIG. It is shown as a signal of “High” level.
  • the buffer through determination unit 3342 outputs a “Low” level buffer through signal in order to control the selector 332 to output the pixel data output from the input buffer 331 to the arithmetic unit 333 at timing t2.
  • the input buffer read management unit 3344 outputs a buffer read signal to the input buffer 331 at timing t3.
  • the buffer read signal is also a signal including a plurality of pulse signals for reading out the pixel data of each unit line temporarily stored in the input buffer 331.
  • the buffer read signal is the same as the buffer write signal. These are shown as “High” level signals.
  • the pixel data read from the input buffer 331 is sequentially input to the arithmetic unit 333 via the selector 332.
  • the calculation unit 333 performs image processing calculation on the input pixel data, and outputs the processed pixel data delayed by the latency in the calculation unit 333 as output data to the subsequent processing module.
  • the arithmetic unit 333 also outputs a data valid signal representing valid pixel data included in the output data to the subsequent processing module.
  • the pixel data of the unit line currently input by the input buffer write management unit 3343 is temporarily stored (written) in the input buffer 331 and the unit line currently read by the input buffer read management unit 3344 is stored. Reading of each pixel data from the input buffer 331 and updating of the data amount information in the buffer by the data amount management unit 3341 are repeated. As a result, the calculation unit 333 outputs the processed pixel data obtained by performing the image processing calculation on the transferred pixel data after being temporarily stored in the input buffer 331 and the data valid signal to the subsequent processing module.
  • the arithmetic unit 333 outputs the processed pixel data obtained by performing the image processing operation on the input pixel data and the data valid signal to the subsequent processing module.
  • each pixel data of the unit line currently input from the preceding processing module is directly input to the computing unit 333, and the computing unit 333 transmits the processed pixel data and the data valid signal to the subsequent processing module. Repeat the output.
  • the buffer through determination unit 3342 After that, at timing t8, when the pipeline installation signal input from the subsequent processing module is at the “Low” level indicating that the processing pixel data cannot be received because of the pipeline installation state, the buffer through determination unit 3342 After the transfer of the pixel data of each unit line currently input from the processing module in the previous stage to the calculation unit 333 is completed, the buffer through signal is set to the “Low” level. Further, the buffer through determination unit 3342 receives the input data input from the previous processing module in accordance with the “High” level of the data request signal input from the subsequent processing module and the “Low” level of the pipeline installation signal. The input buffer 331 is controlled so as to be temporarily stored.
  • the input data input from the previous processing module at timing t9 is temporarily stored in the input buffer 331 according to the buffer write signal output from the input buffer write management unit 3343 to the input buffer 331.
  • the pipeline installation signal input from the subsequent processing module becomes “High” level indicating that the processing pixel data can be received because the pipeline installation state has been canceled.
  • the input data is temporarily stored in the input buffer 331 and then instructed to be transferred to the arithmetic unit 333.
  • the input buffer read management unit 3344 performs buffer read at timing t11 after the temporary storage (writing) of the pixel data of each unit line currently input from the previous processing module to the input buffer 331 is completed.
  • the signal is output to the input buffer 331.
  • the pixel data read from the input buffer 331 is sequentially input to the arithmetic unit 333, and the arithmetic unit 333 performs processing pixel data obtained by performing image processing arithmetic on the input pixel data and a data valid signal, The data is output to the subsequent processing module with a delay by the latency in the calculation unit 333.
  • the buffer read signal is output at timing t11 after the temporary storage (writing) of the pixel data of each unit line currently input to the input buffer 331 is completed.
  • the buffer through determination unit 3342 instructs the input buffer 331 to temporarily store the input data and then transfer the input data to the arithmetic unit 333, the pixel data for one unit line is still stored in the input buffer 331. This is because is not temporarily stored. Accordingly, when one or more unit line pixel data is already temporarily stored in the input buffer 331 when the buffer through determination unit 3342 instructs, the input buffer read management unit 3344 is currently input.
  • a buffer read signal may be output to the input buffer 331 without waiting for the end of temporary storage (writing) of the pixel data of each unit line to the input buffer 331.
  • the pixel data of the unit line currently input by the input buffer write management unit 3343 is temporarily stored (written) in the input buffer 331 and the unit line currently read by the input buffer read management unit 3344 is stored. Reading of each pixel data from the input buffer 331 and updating of the data amount information in the buffer by the data amount management unit 3341 are repeated. As a result, the calculation unit 333 outputs the processed pixel data obtained by performing the image processing calculation on the transferred pixel data after being temporarily stored in the input buffer 331 and the data valid signal to the subsequent processing module.
  • the input buffer write management unit 3343 temporarily inputs each pixel data of the unit line to the input buffer 331.
  • Set to “Low” level to indicate that it cannot be performed.
  • the data amount management unit 3341 sets the pipeline installation signal output to the previous processing module to the “High” level indicating that the processed pixel data can be received because the pipeline installation state has been canceled.
  • the processing module at the previous stage resumes outputting the input data and the data valid signal according to the data request signal at the timing t16.
  • the pixel data of the unit line currently input by the input buffer write management unit 3343 is temporarily stored (written) in the input buffer 331 and the unit line currently read by the input buffer read management unit 3344 is stored. Reading of each pixel data from the input buffer 331 and updating of the data amount information in the buffer by the data amount management unit 3341 are repeated. Then, the arithmetic unit 333 repeatedly outputs the processed pixel data corresponding to the pixel data input from the input buffer 331 and the data valid signal to the subsequent processing module.
  • the image processing module 33 ends the processing when the output of the processing pixel data and the data valid signal corresponding to all the unit lines is completed to the subsequent processing module at the timing t17. Then, when the processing by each processing module included in the image processing unit 30 ends, the image processing unit 30 ends the pipeline processing.
  • the processing unit 30) is an image processing apparatus (image processing apparatus 1) connected to a data bus (DMA bus 10), and each of the image processing modules 33 is configured to process pixel data or processed pixel data for each unit of processing.
  • An image processing apparatus 1) is configured.
  • the control unit 334 further includes pixels in the input buffer 331 in a state where the pixel data or the processed pixel data is stored in the storage capacity of the input buffer 331.
  • a path for temporarily storing the pixel data or processed pixel data in the input buffer 331 and then reading (transferring to the arithmetic unit 333) is selected, and the input buffer
  • the input buffer In a state where the pixel data in the pipeline processing or the flow of the processed pixel data is stagnant (in a pipeline installed state), further pixel data or processed pixel data cannot be stored in the input buffer 331
  • the pixel data or processed pixel data in the input buffer 31 is used to select a path to be transferred after being stored in the memory 31 (to the arithmetic unit 333), and the input buffer 331 is operated so as to hold the stored pixel data or processed pixel data.
  • the image processing apparatus 1 is configured to select a path through which pixel data or processed pixel data is transferred (to the calculation unit 333) without being stored in the input buffer 331 and to stop the operation of the input buffer 331.
  • control unit 334 changes the operation state of the image processing module 33 including the control unit 334 itself to the previous image processing module 33 in the pipeline configuration.
  • An image processing device that outputs a state notification signal that represents the pixel data in the pipeline processing or determines the state of the flow of the processed pixel data based on the state notification signal input from the subsequent image processing module 33 in the pipeline configuration 1 is configured.
  • control unit 334 performs pipeline processing based on the state notification signals input from the plurality of subsequent image processing modules 33 in the pipeline configuration.
  • An image processing apparatus 1 that determines the flow state of pixel data or processed pixel data is configured.
  • the state notification signal is a signal indicating whether the pixel data processed by the image processing module 33 in the previous stage or the processed pixel data can be received. Including a data request signal for requesting output of processed pixel data processed by the preceding image processing module 33, and the control unit 334 requests a data request for outputting processed pixel data from the subsequent image processing module 33.
  • the image processing apparatus 1 is configured to determine that the pixel data in the pipeline processing or the flow of the processed pixel data is not in a stagnation state (a state that is not a pipeline installation state).
  • control unit 334 outputs the processed pixel data when the pixel data or the processed pixel data can be stored in the input buffer 331.
  • the image processing apparatus 1 is configured to output a requested data request signal to the preceding image processing module 33.
  • the image processing module 33 transfers the pixel data or the processed pixel data read from the input buffer 331 (to the calculation unit 333), and the input buffer 331.
  • a selector (selector) that selects one of the paths through which the pixel data or the processed pixel data is transferred (to the calculation unit 333) as a path for transferring the pixel data or the processed pixel data (to the calculation unit 333) 332), and the control unit 334 manages the amount of pixel data or processed pixel data stored in the input buffer 331, and data amount information (the amount of data in the buffer) representing the amount of monitored pixel data or processed pixel data Data amount management unit (data amount management unit 3341) for outputting information), data amount information in the buffer,
  • the operation to be performed by the input buffer 331 is determined based on the flow state of the processed pixel data in the pipeline processing, and the pixel data or the processed pixel data is written to the input buffer 331 and the input buffer 331 is determined based on the determined result.
  • An instruction signal for reading pixel data or processed pixel data from the control signal, and a control signal (buffer through signal) for selecting a path for transferring the pixel data or processed pixel data (to the arithmetic unit 333)
  • the buffer through determining unit for outputting the pixel data or processed pixel data to the input buffer 331
  • a control signal for controlling writing In response to a buffer write management unit (input buffer write management unit 3343) that generates an write signal and a buffer operation instruction signal for reading pixel data or processed pixel data from the input buffer 331, pixel data or processing from the input buffer 331
  • a buffer read management unit (input buffer read management unit 3344) that generates a buffer read signal that is a control signal for controlling the reading of the pixel data, and the data amount management unit 3341 receives the input pixel data or processing The amount of pixel data or processed pixel data
  • a buffer through signal for selecting a transfer path is output after being stored (read out to the arithmetic unit 333), and the data amount information in the buffer indicates that the amount of pixel data or processed pixel data is zero.
  • the selector 332 selects a path according to the buffer through signal as a path for transferring pixel data or processed pixel data (to the arithmetic unit 333).
  • a device 1 is configured.
  • An image processing unit configured to form a pipeline in which processing modules 33-1 to 33-3) are connected in series, and each processing module (image processing module 33) performs processing in sequence.
  • Image processing unit 30 is an image processing method in an image processing apparatus (image processing apparatus 1) connected to a data bus (DMA bus 10), and is executed by each of the image processing modules 33 and in pipeline processing.
  • the image processing module 33 of the first configuration requests input data from the processing modules connected to the previous stage in the pipeline configuration based on the free state of the storage capacity of the input buffer 331, Controls temporary storage (writing) of input data (pixel data) input from the processing module in the previous stage to the input buffer 331. Further, the image processing module 33 having the first configuration temporarily stores the input buffer 331 in the input buffer 331 based on the empty state of the storage capacity of the input buffer 331 and the operation state of the processing module connected to the subsequent stage in the pipeline configuration. The pixel data to be read and the selection (switching) of the pixel data for which the calculation unit 333 performs image processing calculation are controlled.
  • the input is input from the previous processing module.
  • the input data can be controlled to pass through the input buffer 331 and be transferred to the arithmetic unit 333.
  • the processing unit 333 has processed pixels directly subjected to the image processing operation on the input data from the previous processing module transferred through the input buffer 331. Data can be output to a subsequent processing module.
  • the operation of the input buffer 331 at this time is performed by transferring the input data input from the processing module in the previous stage through the input buffer 331 to the arithmetic unit 333. By stopping, the power consumption of the input buffer 331 can be reduced.
  • the image processing unit 30 in which the pipeline is configured by the image processing module 33 having the first configuration data writing to the data buffer and the data buffer are always performed as in the case where the pipeline is configured by the conventional processing module. Therefore, it is possible to perform desired image processing without reading data from and to reduce power consumption in pipeline processing without degrading the performance of pipeline processing.
  • FIG. 8 is a timing chart showing an example of another operation of the image processing module 33 in the image processing unit 30 provided in the image processing apparatus 1 according to the first embodiment of the present invention.
  • the image processing unit 30 similarly to the example of the operation of the image processing module 33 having the first configuration illustrated in FIG. 4, the image processing unit 30 includes the input DMA module 32 and the image processing modules 33-1 to 33-1 having the first configuration.
  • pipeline processing is performed by a configuration in which the image processing module 33-3 and the output DMA module 34 are connected in series (pipeline connection)
  • processing pixels from the image processing module 33-1 to the image processing module 33-2 are processed.
  • An example of data transfer is shown.
  • FIG. 8 shows input data, buffer write, buffer read, and output for each of the image processing module 33-1 and the image processing module 33-2, as in the example of the operation of the image processing module 33 shown in FIG.
  • a data request signal is shown as a status notification signal that each image processing module 33 outputs to the preceding processing module.
  • each processing module provided in the image processing unit 30 stores pixel data for two unit lines, as in the example of the operation of the image processing module 33 shown in FIG.
  • a data buffer having a capacity that can be used is provided.
  • FIG. 8 as in the example of the operation of the image processing module 33 shown in FIG. 4, in order to distinguish each component provided in each image processing module 33, it is given to each component. Subsequent to the reference numeral, “ ⁇ ” given to the image processing module 33 and the subsequent numeric part are given.
  • each image processing module 33 can accept pixel data during the period when the data request signal is at “High” level.
  • the request period is a state, and the period when the data request signal is “Low” level indicates a request negation period in which each image processing module 33 cannot accept pixel data.
  • the image processing module 33-1, the image processing module 33-2, the image processing module 33-3, and the output DMA module 34 each request data for outputting input data.
  • the request signal is output to the previous processing module.
  • the operation at the first stage when the image processing unit 30 starts the pipeline processing is an example of the operation of the image processing module 33 shown in FIG. It is the same. Therefore, a detailed description of the operation of each processing module is omitted.
  • the operation of each processing module until the request negation period of the image processing module 33-2 ends is also the image processing module 33 shown in FIG. Since it is the same as that of an example of operation
  • the image processing module 33-3 is in a state where it can accept the processed pixel data.
  • the data request signal output to the image processing module 33-2 By setting the data request signal output to the image processing module 33-2 to the “High” level, the processed pixel data is changed. An operation in a case where it can be accepted (output of input data is requested) will be described.
  • the image processing module 33-2 temporarily stores the processing pixel data corresponding to the third and fourth unit lines in the input buffer 331-2 (there is no free storage capacity). State). Therefore, the control unit 334-2 first reads out the processing pixel data corresponding to the third unit line stored in the input buffer 331-2 from the input buffer 331-2, and outputs the processed pixel data to the calculation unit 333-2. Thus, the input buffer 331-2 and the selector 332-2 are controlled. As a result, the input buffer 331-2 outputs the processed pixel data corresponding to the stored third unit line to the selector 332-2, and the selector 332-2 receives the input from the input buffer 331-2. The processed pixel data corresponding to the third unit line is output to the calculation unit 333-2.
  • the calculation unit 333-2 performs an image processing calculation on the processing pixel data corresponding to the third unit line output from the selector 332-2, and a process delayed by the latency in the calculation unit 333-2.
  • the pixel data is output to the subsequent image processing module 33-3.
  • the input buffer 331-2 outputs the processing pixel data corresponding to the third unit line as in the example of the operation of the image processing module 33 shown in FIG.
  • the image processing module 33-2 is in a state where it can receive the processed pixel data from the image processing module 33-1.
  • the control unit 334-2 represents that the image processing module 33-2 can receive the processing pixel data.
  • the data request signal output to the image processing module 33-1 was set to “High” level.
  • the control unit 334 does not set the data request signal to the “High” level but maintains the “Low” level state.
  • the image processing module 33-2 suspends the change of the data request signal to the “High” level in order to intentionally maintain a state where the processing pixel data from the image processing module 33-1 cannot be received. .
  • the image processing module 33-2 outputs the processed pixel data corresponding to the fourth unit line temporarily stored in the input buffer 331-2, thereby temporarily storing it in the input buffer 331-2. This is because all the pixel data of each unit line is read out and the storage capacity of the input buffer 331-2 is all free.
  • control unit 334-2 reads the processing pixel data corresponding to the fourth unit line stored in the input buffer 331-2 from the input buffer 331-2, and outputs the processed pixel data to the calculation unit 333-2.
  • the input buffer 331-2 and the selector 332-2 are controlled.
  • the processing pixel data corresponding to the fourth unit line stored in the input buffer 331-2 is input to the arithmetic unit 333-2 via the selector 332-2.
  • the calculation unit 333-2 performs the image processing on the processed pixel data corresponding to the fourth unit line input via the selector 332-2, and generates the processed pixel data. Output to module 33-3.
  • the input buffer 331-2 outputs the processed pixel data corresponding to the fourth unit line, so that all the storage capacity is free.
  • the image processing module 33-2 receives the processing pixel data from the image processing module 33-1, and directly transfers the received processing pixel data to the calculation unit 333-2 without temporarily storing it in the input buffer 331-2. Ready to go.
  • the control unit 334-2 outputs a data request signal output to the image processing module 33-1 to indicate that the image processing module 33-2 is ready to receive the processing pixel data. Set to “High” level.
  • control unit 334-2 controls the selector 332-2 so that the processing pixel data of each unit line input thereafter from the image processing module 33-1 is output to the arithmetic unit 333-2 as it is. Further, the control unit 334-2 performs control so as to stop the operation of the input buffer 331-2, thereby reducing the power consumption of the input buffer 331-2.
  • the data request signal input from the subsequent image processing module 33-2 becomes “High” level, and the image processing module 33-2 can accept the processing pixel data.
  • the control unit 334-1 outputs the processed pixel data corresponding to the fifth and sixth unit lines to the image as in the control unit 334-2 included in the image processing module 33-2. Output to the processing module 33-2. More specifically, the control unit 334-1 sequentially reads out the pixel data of the fifth and sixth unit lines stored in the input buffer 331-1 and outputs them to the arithmetic unit 333-1.
  • the input buffer 331-2 and the selector 332-2 are controlled.
  • the calculation unit 333-1 performs image processing calculation on the respective pixel data of the fifth and sixth unit lines sequentially input via the selector 332-1, and the calculation unit 333-3.
  • the processed pixel data delayed by the latency in 1 is output to the subsequent image processing module 33-2.
  • the control unit 334-1 also sends a data request signal “High” after reading out the pixel data of each of the fifth unit lines. “When the pixel data of each of the sixth unit lines is not read out, that is, when all the storage capacity of the input buffer 331-1 is empty, the data request signal is Set to “High” level.
  • the image processing module 33-1 when the image processing module 33-1 becomes ready to accept the pixel data from the input DMA module 32, the image processing module 33-1 does not notify that the pixel data can be accepted immediately. When it becomes possible to directly transfer the received pixel data to the computing unit 333-1 without temporarily storing it in the input buffer 331-1, it is notified that the pixel data can be received.
  • control unit 334-1 directly uses the pixel data of each unit line input from the input DMA module 32 thereafter as it is.
  • the selector 332-1 is controlled to output to -1.
  • control unit 334-1 controls to stop the operation of the input buffer 331-1 and consumes the input buffer 331-1. Reduce power.
  • the DRAM 20 When the input DMA module 32 is notified by the data request signal input from the subsequent image processing module 33-1 that the image processing module 33-2 is ready to accept the processing pixel data, the DRAM 20 The pixel data read-out is restarted from the seventh unit line stored in, and the read pixel data is output to the image processing module 33-1.
  • the input DMA module 32 holds the pixel data of the seventh and eighth unit lines in the data buffer when reading the pixel data stored in the DRAM 20 is suspended. After the pixel data of the seventh and eighth unit lines stored in the data buffer are output to the image processing module 33-1, the readout of the pixel data from the ninth unit line is resumed. May be.
  • each processing module when the data request signal input from the downstream processing module connected in the pipeline is changed to a state in which the pixel data can be received again, each processing module The output of output data to the processing module is resumed. At this time, each processing module sequentially outputs the pixel data stored in the input buffer 331 included in the processing module itself to the subsequent processing module. Then, each processing module notifies that the processing module itself is ready to accept pixel data after the storage capacity of the input buffer 331 provided in the processing module itself is all free. . Each processing module sequentially outputs the input pixel data to subsequent processing modules without temporarily storing them in the input buffer 331 provided in the processing module itself. Further, each processing module controls to stop the operation of the input buffer 331 provided in the processing module itself, thereby reducing the power consumption of the input buffer 331.
  • the image processing unit 30 performs pipeline processing by each processing module connected in the pipeline for each unit line with respect to the pixel data included in each block image data. By sequentially performing, a series of image processing is performed on each block image data.
  • each processing module is in a state where the storage capacity of the input buffer 331 provided in the processing module itself is all free.
  • a case has been described in which notification is made that pixel data can be received after becoming.
  • the pixel data input to each processing module is not temporarily stored in the input buffer 331, but is stored in the subsequent processing module. The case where the power is sequentially output and power consumption is reduced by stopping the operation of the input buffer 331 has been described.
  • the control unit 334 included in each processing module temporarily stores the input pixel data in the input buffer 331 based on the number of unit lines temporarily stored in the input buffer 331, and then reads out the pixel data. It is also possible to determine whether to control to transfer to the calculation unit 333 without temporarily storing the input pixel data in the input buffer 331.
  • the threshold of the number of lines may be compared with the number of unit lines represented by the data amount information in the buffer, and the operation of the input buffer 331 may be switched according to the comparison result. For example, consider a case where the input buffer 331 has a storage capacity capable of storing pixel data for 10 unit lines, and the threshold of the number of unit lines set in advance is “5”. In this case, if the number of unit lines represented by the data amount information in the buffer when it is notified that the processing module in the subsequent stage is ready to accept the pixel data is “5” or less, it will be input later.
  • Control is performed so that the processed pixel data is not temporarily stored in the input buffer 331 but is transferred to the arithmetic unit 333 as it is, that is, similarly to the operation example of the image processing module 33 shown in FIG.
  • the image processing unit 30 can switch between control giving priority to reducing power consumption of the input buffer 331 provided in each processing module and control giving priority to reducing processing time required for pipeline processing.
  • control unit 334 operates until the pixel is not stored in all the storage capacities of the data buffer (input buffer 331).
  • the output of the data request signal for requesting the output of data or processed pixel data is suspended to the previous processing module (image processing module 33), and the pixel data or processed pixel data is stored in all the storage capacities of the input buffer 331.
  • a data request signal is output to the image processing module 33 in the previous stage, a path through which the pixel data or processed pixel data is transferred through the input buffer 331 is selected, and the operation of the input buffer 331 is controlled.
  • An image processing apparatus (image processing apparatus 1) to be stopped is configured.
  • the image processing module 33 of the first configuration requests input data from the processing modules connected to the previous stage in the pipeline configuration based on the free state of the storage capacity of the input buffer 331.
  • the input data is intentionally passed through the input buffer 331 and controlled to be transferred to the arithmetic unit 333.
  • the image processing module 33 having the first configuration the operation of the input buffer 331 at this time can be stopped, and the power consumption of the input buffer 331 can be reduced.
  • the image processing unit 30 that configures the pipeline with the image processing module 33 having the first configuration does not deteriorate the performance of the pipeline processing when performing desired image processing, and the power consumption in the pipeline processing. Can be reduced.
  • the configuration in which the temporary storage (writing) of the input data input from the previous processing module to the input buffer 331 is shown. That is, in the image processing module 33 having the first configuration, the configuration of the processing module including the data buffer (input buffer 331) on the input side when performing image processing calculation is shown.
  • the configuration of each processing module that performs pipeline processing is not limited to the configuration including the data buffer on the input side as described above, and the data buffer is provided on the output side when performing image processing operations. The structure provided may be sufficient.
  • FIG. 9 is a block diagram illustrating a schematic configuration of an image processing module in the image processing unit 30 provided in the image processing apparatus 1 according to the first embodiment of the present invention.
  • FIG. 9 shows a basic configuration of an image processing module (hereinafter referred to as “image processing module 43”) having a second configuration including a data buffer on the output side.
  • image processing module 43 having the second configuration illustrated in FIG. 9 includes a calculation unit 433, an output buffer 431, a selector 432, and a control unit 434.
  • the image processing module 43 is a component that performs pipeline processing in the image processing unit 30.
  • the calculation unit 433 performs various digital image processing calculations on the input pixel data in the same manner as the calculation unit 333 included in the image processing module 33 having the first configuration.
  • the calculation unit 433 outputs the processed pixel data generated by performing the image processing calculation to the output buffer 431 and the selector 432 as output data.
  • the output buffer 431 is a data buffer that temporarily stores the processed pixel data input from the calculation unit 433. Similar to the input buffer 331 provided in the image processing module 33 having the first configuration, the output buffer 431 includes, for example, a memory such as an SRAM. The output buffer 431 has a storage capacity capable of storing processed pixel data for a predetermined number of unit lines input from the calculation unit 433 as output data. The output buffer 431 temporarily stores the input processed pixel data according to the control signal input from the control unit 434.
  • the output buffer 431 similarly to the input buffer 331 provided in the image processing module 33 having the first configuration, the output buffer 431 also receives processing pixel data (output data) for a predetermined number of unit lines input from the calculation unit 433. It is a so-called double buffer that has two storage capacity groups to store and alternately switches between writing processing pixel data to one storage capacity group and reading processing pixel data from the other storage capacity group. It may be configured.
  • the selector 432 is a selection unit that selects processing pixel data to be output to the outside of the image processing module 43 as output data.
  • the selector 432 has the same configuration as the selector 332 included in the image processing module 33 having the first configuration.
  • the selector 432 outputs the output data (process pixel data) temporarily stored in the output buffer 431 and the output data (process pixel data) currently output from the calculation unit 433 according to the control signal input from the control unit 434. Any one of the output data (processed pixel data) is output to the outside of the image processing module 43.
  • the selector 432 outputs either the processed pixel data output from the calculation unit 433 and temporarily stored in the output buffer 431 or the processed pixel data as it is currently output from the calculation unit 433, The data is output to another image processing module 43 or the output DMA module 34 via the connection switching unit 31.
  • control unit 434 Similar to the control unit 334 provided in the image processing module 33 having the first configuration, the control unit 434 performs notification of the operation state of the image processing module 43 and control of each component provided in the image processing module 43. Do.
  • the control unit 434 outputs a state notification signal representing the operation state of the image processing module 43 to the previous processing module.
  • control unit 434 controls the operation of the output buffer 431 depending on whether or not the output buffer 431 has a free storage capacity.
  • the output buffer 431 when the output buffer 431 has a free storage capacity, the output buffer 431 is in a state in which the processed pixel data output from the calculation unit 433 can be temporarily stored.
  • the control unit 434 generates a signal (data request signal) for requesting output of pixel data as a state notification signal indicating that input data from the previous processing module can be received. Output to the module. Then, the control unit 434 generates a processing pixel generated by the calculation unit 433 performing image processing on the input data input from the previous processing module in response to the state notification signal requesting output of the output pixel data.
  • the output buffer 431 is controlled so as to temporarily store (write) data.
  • the output buffer 431 when the output buffer 431 does not have a free storage capacity, the output buffer 431 is in a state in which the processing pixel data output from the calculation unit 433 cannot be temporarily stored.
  • the control unit 434 sends a signal indicating that no output of pixel data is requested (request for output of pixel data) as a status notification signal indicating that input data from the processing module in the previous stage cannot be received.
  • a data request signal at a logical level indicating that the processing is not performed) is output to the processing module in the previous stage.
  • the status notification signal at this time may be a pipeline installation signal, similar to the control unit 334 provided in the image processing module 33 having the first configuration.
  • control unit 434 reads out the processing pixel data temporarily stored in the output buffer 431 and selects (switches) the processing pixel data (output data) that the selector 432 outputs to the outside of the image processing module 43. To control.
  • the control of the processing pixel data read operation from the output buffer 431 and the switching of the selector 432 in the control unit 434 are free in the output buffer 431 as in the control unit 334 provided in the image processing module 33 having the first configuration. This is performed based on the determination result of whether or not there is a storage capacity, and the state notification signal input from the subsequent processing module.
  • the status notification signal input from the subsequent processing module is a status notification signal output by the control unit 434 provided in the subsequent processing module that is the output destination of the processing pixel data selected and output by the selector 432.
  • a signal indicating whether or not the subsequent processing module is in a state where it can receive the processing pixel data that is, a signal indicating whether or not to output the processing pixel data is included. .
  • the control unit 434 determines whether or not the storage capacity of the output buffer 431 is free.
  • the selector 432 is controlled by the control unit 432, and the processing pixel data temporarily stored in the output buffer 431 or the processing pixel data currently output from the calculation unit 433 is used as output data of the image processing module 43. Output to the outside. That is, the control unit 434 also outputs, depending on whether the pipeline processing is performed smoothly without delay of the processing pixel data, similarly to the control unit 334 included in the image processing module 33 having the first configuration. Control of the operation of the buffer 431 and switching of the selector 432 are performed.
  • the control unit 434 controls the output buffer 431 so as to read out the temporarily stored processed pixel data, and controls the selector 432 so as to output the processed pixel data output from the output buffer 431 to the outside.
  • the selector 432 outputs the processed pixel data read after being temporarily stored in the output buffer 431 to the subsequent image processing module 43.
  • the control unit 434 causes the arithmetic unit 433 to execute the input data.
  • the output buffer 431 is controlled so as to temporarily store (write) the processed pixel data generated by performing the calculation of the image processing in a free storage capacity.
  • the control unit 434 controls the output buffer 431 so as to stop the operation.
  • the image processing module 43 can reduce the power consumption of the output buffer 431.
  • the control unit 434 uses the processing pixel data currently output from the calculation unit 433 as it is, that is, the processing pixel data generated by the calculation unit 433 performing image processing calculation on the currently input pixel data.
  • the selector 432 is controlled to output directly to the outside without temporarily storing them in the output buffer 431.
  • the calculation unit 433 outputs the processed pixel data generated by performing the image processing calculation on the input data (pixel data) currently input to the image processing module 43 to the subsequent image processing module 43. .
  • control unit 434 indicates that the status notification signal input from the subsequent processing module indicates that the processing pixel data cannot be received and the storage capacity of the output buffer 431 is free.
  • the control unit 434 temporarily stores (writes) the processed pixel data generated by the calculation unit 433 performing image processing on the input data input to the image processing module 43 in an available storage capacity.
  • the output buffer 431 is controlled.
  • the control unit 434 Outputs a status notification signal indicating that input data cannot be received to the processing module in the previous stage, and therefore, input data is not input from the processing module in the previous stage. For this reason, the control unit 434 does not control the operation of the output buffer 431.
  • each of the processing modules having the second configuration included in the image processing unit 30 receives input data from the previous processing module based on the storage capacity of the output buffer 431 and externally. Processing pixel data to be output is selected (switched).
  • FIG. 10 is a timing chart showing an example of the operation of the image processing module 43 in the image processing unit 30 provided in the image processing apparatus 1 according to the first embodiment of the present invention.
  • the image processing unit 30 includes the input DMA module 32 and the image processing modules 43-1 to 43-1 having the second configuration.
  • the image processing unit 30 includes the input DMA module 32 and the image processing modules 43-1 to 43-1 having the second configuration.
  • processing pixels from the image processing module 43-1 to the image processing module 43-2 are processed.
  • An example of data transfer is shown.
  • FIG. 10 shows a data request signal for requesting output of input data as a status notification signal output from the image processing module 43-1 and the image processing module 43-2 to the preceding processing module.
  • FIG. 10 also shows a data request signal output as a status notification signal by the image processing module 43-3 connected to the subsequent stage of the image processing module 43-2.
  • each processing module provided in the image processing unit 30 is equivalent to two unit lines as in the example of the operation of the image processing module 33 having the first configuration shown in FIG.
  • a data buffer having a capacity capable of storing pixel data is provided.
  • control unit 434 provided in the image processing module 43-1 is represented as “control unit 434-1”
  • control unit 434 provided in the image processing module 43-2 is represented as “control unit 434-2”.
  • each of the image processing module 43-1, the image processing module 43-2, the image processing module 43-3, and the output DMA module 34 requests data for outputting input data.
  • the request signal is output to the previous processing module.
  • this is provided in each image processing module 43 at the initial stage when the image processing unit 30 starts the pipeline processing. This is because all the storage capacity of the output buffer 431 is free, so that the processed pixel data can be temporarily stored and the input data can be received. That is, the arithmetic unit 433-1 included in the image processing module 43-1 and the arithmetic unit 433-2 included in the image processing module 43-2 can immediately perform image processing on the input pixel data.
  • the output DMA module 34 also receives the input input as in the example of the operation of the image processing module 33 having the first configuration shown in FIG. Data (processed pixel data) can be immediately output to the DRAM 20 via the DMA bus 10.
  • each processing module accepts pixel data during a period when the data request signal is at “High” level.
  • a request period in which the data request signal is “Low” level represents a request negation period in which each processing module cannot accept pixel data.
  • the input DMA module 32 When a data request signal is input from the subsequent image processing module 43-1 to the input DMA module 32, first, the pixel data of the first unit line stored in the DRAM 20 is transmitted via the DMA bus 10. Read sequentially for each unit line. Then, the input DMA module 32 outputs the read pixel data to the image processing module 43-1. At this time, the image processing module 43-1 connected to the subsequent stage of the input DMA module 32 outputs a “High” level data request signal, indicating that it can accept pixel data. . Therefore, the input DMA module 32 outputs the read pixel data to the image processing module 43-1 as it is without temporarily storing it in the data buffer. At this time, the input DMA module 32 stops the operation of the data buffer to reduce the power consumption of the data buffer. Thereafter, the input DMA module 32 reads the pixel data of the second unit line stored in the DRAM 20 and starts output to the image processing module 43-1.
  • the image processing module 43-1 applies to each pixel data of the first unit line input from the input DMA module 32. Perform image processing. At this time, as described above, the image processing module 43-1 is in a state where the storage capacity of the output buffer 431-1 is all free, and the arithmetic unit 433-1 immediately performs image processing on the input pixel data. It is in a state where it can be performed. At this time, the image processing module 43-2 connected to the subsequent stage of the image processing module 43-1 is in a state where it can accept the processed pixel data by outputting a “High” level data request signal. It is shown that.
  • the control unit 434-1 is generated by the calculation unit 433-1 performing image processing calculation on each pixel data of the first unit line currently input from the previous input DMA module 32.
  • the selector 432-1 is controlled so that the processed pixel data is directly output to the outside as output data. Further, the control unit 434-1 controls to stop the operation of the output buffer 431-1 to reduce the power consumption of the output buffer 431-1.
  • the selector 432-1 outputs the processed pixel data output from the arithmetic unit 433-1 as it is to the subsequent image processing module 43-2 as output data.
  • output data (processed pixel data) output from the image processing module 43-1 is output with a delay by a delay time (latency) generated by the calculation unit 433-1 performing image processing. Thereafter, the image processing module 43-1 starts image processing for each pixel data of the second unit line input from the input DMA module 32.
  • the image processing module 43-2 receives the processing pixel data corresponding to the first unit line input from the image processing module 43-1. Image processing is performed on At this time, as described above, the image processing module 43-2 is also in a state where all the storage capacity of the output buffer 431-2 is empty, and the arithmetic unit 433-2 immediately performs image processing on the input processing pixel data. It is in a state that can be performed. At this time, the image processing module 43-3 connected to the subsequent stage of the image processing module 43-2 is also in a state where it can accept the processing pixel data by outputting a “High” level data request signal. It is shown that.
  • control unit 434-2 also performs an image processing operation on the processing pixel data corresponding to the first unit line currently input from the preceding image processing module 43-1.
  • the selector 432-2 is controlled so that the processed pixel data generated in this way is output as it is to the outside as output data.
  • control unit 434-2 performs control so as to stop the operation of the output buffer 431-2, thereby reducing the power consumption of the output buffer 431-2.
  • the selector 432-2 outputs the processed pixel data output from the calculation unit 433-2 after being delayed by the latency in the calculation unit 433-2 as output data to the subsequent image processing module 43-3.
  • the image processing module 43-2 also starts image processing on the processing pixel data corresponding to the second unit line input from the image processing module 43-1.
  • each processing module having the second configuration sequentially transfers input data to the subsequent processing modules connected in the pipeline.
  • each processing module having the second configuration is in a state where the storage capacity of the output buffer 431 provided in the processing module itself is all free and in a state where the subsequent processing module can accept input data. Therefore, the input data input from the preceding processing module is used as it is, or the image processing operation is immediately performed on the input data, and is output to the subsequent processing module without being temporarily stored in the output buffer 431.
  • FIG. 10 shows a period in which input data is not temporarily stored in the output buffer 431 for the buffer write and buffer read of the image processing module 43-1 and the image processing module 43-2, that is, without going through the output buffer 431. A period during which the processed pixel data is output to the outside is shown as a buffer through period.
  • each processing module having the second configuration controls to stop the operation of the data buffer (output buffer 431) included in the processing module itself. That is, the image processing unit 30 stops the operation of the data buffer (output buffer 431) during the buffer through period in each processing module. As a result, the image processing unit 30 can reduce the power consumption of the data buffer (output buffer 431) included in each processing module.
  • the subsequent image processing module 43-3 cannot accept the processing pixel data for some reason.
  • the image processing module 43-3 is in a state where it cannot accept the processed pixel data by setting the data request signal output to the image processing module 43-2 to the “Low” level. Indicates that no data output is requested.
  • the method of notifying each of the processing modules of the second configuration that the output of input data is not requested to the preceding processing module is not limited to the method based on the logic level of the data request signal. Alternatively, a method of notifying that pixel data cannot be received by outputting a pipeline install signal may be used.
  • the control unit 434-2 The processing unit 433-2 temporarily stores the processed pixel data obtained by performing the calculation of the image processing on the processed pixel data corresponding to the third unit line currently input from the previous image processing module 43-1.
  • the output buffer 431-2 is controlled.
  • the output buffer 431-2 stores the processed pixel data obtained by performing further image processing on the processed pixel data corresponding to the third unit line, and the storage capacity for one unit line is free. Is in the state of remaining.
  • the control unit 434-2 performs an operation on the processing pixel data corresponding to the fourth unit line currently input from the preceding image processing module 43-1 for the processing unit 433. 2 controls the output buffer 431-2 so as to temporarily store the processed pixel data on which the image processing operation has been performed. As a result, the output buffer 431-2 also stores the processed pixel data obtained by performing the image processing operation on the processed pixel data corresponding to the fourth unit line, and has no free storage capacity. . That is, the image processing module 43-2 cannot receive the processing pixel data from the image processing module 43-1. Therefore, the control unit 434-2 displays a data request signal output to the image processing module 43-1 in order to indicate that the image processing module 43-2 cannot accept the processing pixel data. Set to “Low” level.
  • the control unit 434-1 is similar to the control unit 434-2 provided in the image processing module 43-2, and the fifth and sixth input from the input DMA module 32 are performed.
  • the output buffer 431-1 is controlled so as to temporarily store the processed pixel data obtained by the calculation unit 433-1 performing image processing on each pixel data of the eye unit line.
  • the output buffer 431-1 stores processed pixel data obtained by performing image processing operations on the pixel data of the fifth and sixth unit lines, and the image processing module 43-1
  • the pixel data from the input DMA module 32 cannot be accepted. Therefore, similarly to the control unit 434-2, the control unit 434-1 also outputs to the input DMA module 32 to indicate that the image processing module 43-1 has become unable to accept pixel data.
  • the received data request signal is set to the “Low” level.
  • the input DMA module 32 suspends reading of each pixel data of the seventh unit line stored in the DRAM 20. Since the input DMA module 32 also includes a data buffer having a capacity capable of storing pixel data for two unit lines, the pixel data of the seventh and eighth unit lines are read out. Then, after the data is temporarily stored in the data buffer, the reading of the pixel data of the ninth unit line may be suspended.
  • each processing module Stops outputting the output data to the subsequent processing module. Then, after each processing module temporarily stores the processing pixel data for the storage capacity of the output buffer 431 provided in the processing module itself, the processing module itself cannot receive the pixel data. Notify that.
  • each processing module having the second configuration performs processing for each processing unit. Therefore, in the image processing unit 30, even when each processing module is notified that the pixel data cannot be received while outputting the pixel data of one processing unit to the subsequent processing module, After outputting all pixel data of the currently output processing unit, output of output data to the subsequent processing module is stopped.
  • the image processing module 43-3 is in a state where it can accept the processed pixel data by setting the data request signal output to the image processing module 43-2 to the “High” level. Indicates that data output is requested.
  • the method of notifying each of the processing modules having the second configuration to request the output of input data again to the processing module in the previous stage is limited to the method based on the logic level of the data request signal. Instead, it may be a method of notifying that pixel data can be received by stopping the output of the pipeline installation signal.
  • the image processing module 43-2 has a state where there is no free storage capacity in the output buffer 431-2 (the calculation unit 433 for each processing pixel data corresponding to the third and fourth unit lines).
  • -2 is a state in which processed pixel data generated by performing an image processing operation is temporarily stored. Therefore, the control unit 434-2 first outputs processed pixel data obtained by performing further image processing operations on the processed pixel data corresponding to the third unit line stored in the output buffer 431-2.
  • the output buffer 431-2 and the selector 432-2 are controlled so as to read from the buffer 431-2 and output to the outside. As a result, the output buffer 431-2 outputs the processed pixel data obtained by further performing image processing to the processed pixel data corresponding to the stored third unit line to the selector 432-2.
  • the processing pixel data stored in the output buffer 431-2 by the image processing module 43-2 is processing pixel data that has already been subjected to image processing by the calculation unit 433-2. 2 can be output to the subsequent image processing module 43-3 without delay by the latency in 2.
  • the output buffer 431-2 outputs processed pixel data obtained by further performing image processing on the processed pixel data corresponding to the third unit line, thereby reducing the storage capacity for one unit line. It becomes free (remains). That is, the image processing module 43-2 can receive the processing pixel data from the image processing module 43-1. For this reason, the control unit 434-2 outputs a data request signal output to the image processing module 43-1 to indicate that the image processing module 43-2 is ready to receive the processing pixel data. Set to “High” level.
  • the output buffer 431-2 has a free storage capacity, but the processing pixel data corresponding to the fourth unit line is temporarily stored. Therefore, the control unit 434-2 outputs the processed pixel data obtained by performing further image processing calculation on the processed pixel data corresponding to the fourth unit line stored in the output buffer 431-2.
  • the output buffer 431-2 and the selector 432-2 are controlled so as to read out from -2 and output to the outside. As a result, the output buffer 431-2 uses the processed pixel data obtained by performing further image processing on the stored processed pixel data corresponding to the fourth unit line as output data. 3 is output.
  • the data request signal input from the subsequent image processing module 43-2 becomes "High" level so that the image processing module 43-2 can accept the processed pixel data.
  • the control unit 434-1 processes pixel data corresponding to the fifth and sixth unit lines in the same manner as the control unit 434-2 provided in the image processing module 43-2. Is output to the image processing module 43-2. More specifically, the processing pixel data obtained by the control unit 434-1 performing image processing operations on the respective pixel data of the fifth and sixth unit lines stored in the output buffer 431-1. Are sequentially read and output to the outside, the output buffer 431-2 and the selector 432-2 are controlled.
  • the output buffer 431-1 uses the processed pixel data obtained by performing the image processing operation on the stored pixel data of the fifth and sixth unit lines as output data. Output to module 43-2.
  • the processing pixel data stored in the output buffer 431-1 by the image processing module 43-1 is also processing pixel data that has already been subjected to image processing calculation by the calculation unit 433-1. 1 can be output to the subsequent image processing module 43-2 without delay by the latency of 1.
  • the output buffer 431-1 outputs the processed pixel data obtained by performing the image processing operation on the pixel data of each of the fifth unit lines
  • the storage capacity for one unit line becomes empty.
  • the image processing module 43-1 can accept pixel data from the input DMA module 32. Therefore, like the control unit 434-2, the control unit 434-1 outputs to the input DMA module 32 to indicate that the image processing module 43-1 is ready to accept pixel data.
  • the received data request signal is set to “High” level.
  • the input DMA module 32 resumes reading of the pixel data from the seventh unit line stored in the DRAM 20, and outputs the read pixel data to the image processing module 43-1.
  • the input DMA module 32 holds the pixel data of the seventh and eighth unit lines in the data buffer when reading the pixel data stored in the DRAM 20 is suspended.
  • the pixel data read from the ninth unit line may be resumed after outputting the pixel data of the seventh unit line stored in the data buffer to the image processing module 43-1.
  • each of the second configurations when the data request signal input from the subsequent processing module connected in the pipeline is changed to a state in which the pixel data can be received again, each of the second configurations.
  • the processing module resumes outputting the output data to the subsequent processing module.
  • each processing module having the second configuration sequentially outputs the pixel data stored in the output buffer 431 provided in the processing module itself to the subsequent processing module.
  • Each of the processing modules having the second configuration is in a state where the processing module itself can accept the pixel data after the storage capacity of the output buffer 431 provided in the processing module itself is vacant. Notify that.
  • each processing module having the second configuration includes, in the processing module itself, processed pixel data generated by performing image processing calculation on the pixel data input by the calculation unit 433 included in the processing module itself.
  • the data is temporarily stored in the output buffer 431, read out, and sequentially output to the subsequent processing module.
  • the image processing unit 30 performs pipeline processing by the pipeline-connected processing modules of the second configuration on the pixel data included in each block image data. By sequentially performing each unit line, a series of image processing is performed on each block image data.
  • the image processing unit 30 outputs the output data to the subsequent processing modules by the processing modules of the second configuration. After resuming the output, if the processed pixel data generated by performing the image processing operation on the input data again without going through the output buffer 431 can be directly output to the subsequent processing module. As in the first stage where the pipeline processing shown in FIG. 10 is started, the operation of the output buffer 431 is controlled to be stopped. As a result, the image processing unit 30 can reduce the power consumption of the output buffer 431 provided in each processing module having the second configuration.
  • the image processing module 43 of the second configuration requests input data from the processing modules connected to the previous stage in the pipeline configuration based on the storage capacity of the output buffer 431, Controls temporary storage (writing) of the processed pixel data in the output buffer 431 after performing image processing operations on the input data (pixel data) input from the processing module in the previous stage. Further, the image processing module 43 having the second configuration temporarily stores the output buffer 431 in the output buffer 431 based on the empty state of the storage capacity of the output buffer 431 and the operation state of the processing module connected in the subsequent stage in the pipeline configuration. The processing pixel data is read out, and the selection (switching) of the processing pixel data to be output to the subsequent processing module is controlled.
  • the processing pixel data after the calculation unit 433 performs image processing on the input data passes through the output buffer 431 and is output to the subsequent processing module.
  • the processing pixel data after the calculation unit 433 performs the image processing operation on the input data input from the preceding processing module passes through the output buffer 431.
  • the configuration, determination processing, and operation of the control unit 434 provided in the image processing module 43 are the same as the configuration, determination processing, and operation of the image processing module 33 of the first configuration illustrated in FIGS. Can think. Therefore, a detailed description of the configuration, determination processing, and operation of the control unit 434 provided in the image processing module 43 is omitted.
  • the image processing module 43 having the second configuration is configured such that the calculation unit 433 first performs an image processing calculation on the input data input from the preceding processing module. Therefore, in the image processing module 43 having the second configuration, the timing at which the calculation unit 433 performs image processing calculation on the input data, the timing at which the control unit 434 updates the data amount information in the buffer, and the control unit 434.
  • the timing of the buffer write signal for writing the processed pixel data to the output buffer 431 and the timing of the data valid signal output from the image processing module 43 to the subsequent processing module are different from those of the image processing module 33 of the first configuration. .
  • the calculation unit 433 applies the data valid signal input from the previous processing module to pixel data indicating that each pixel data included in the unit line is valid pixel data. Perform image processing operations. Further, the data amount management unit provided in the control unit 434 corresponding to the data amount management unit 3341 provided in the control unit 334 of the image processing module 33 having the first configuration indicates the number of unit lines represented by the data amount information in the buffer. When updating by adding one by one, the data valid signal output from the calculation unit 433 is regarded as the data valid signal input from the preceding processing module in the image processing module 33 of the first configuration. Update quantity information.
  • the output buffer write management unit provided in the control unit 434 corresponding to the input buffer write management unit 3343 provided in the control unit 334 of the image processing module 33 having the first configuration is configured to validate the data output from the calculation unit 433. Based on the processed pixel data indicating that the signal is valid, a buffer write signal for writing the processed pixel data to the output buffer 431 is generated and output to the output buffer 431.
  • the selector 432 also selects (switches) a data valid signal to be output to the outside so as to output a data valid signal corresponding to the selected (switched) processed pixel data.
  • the selector 432 outputs the data valid signal output from the calculation unit 433 and stores it in the output buffer 431-1 when the processing unit 433 outputs the processed pixel data subjected to the image processing calculation to the outside.
  • the data valid signal to be output to the outside is selected (switched) so that a data valid signal corresponding to the timing for reading the processed pixel data from the output buffer 431 is output.
  • the data valid signal corresponding to the timing of reading out the processed pixel data from the output buffer 431 is sent to the control unit 434 corresponding to the input buffer read management unit 3344 included in the control unit 334 of the image processing module 33 having the first configuration.
  • the output buffer read management unit provided may generate and output to the selector 432, or the selector 432 may generate based on the buffer read signal output from the control unit 434 to the output buffer 431.
  • the processed pixel data obtained by performing the image processing operation on the input data input from the previous processing module is output to the output buffer 431.
  • the arithmetic unit 433 performs image processing similarly to the operation of the image processing module 33 having the first configuration illustrated in FIGS. 4 and 7.
  • Control of processing pixel data generated by performing computation through the output buffer 431 and outputting it to the outside depends on the operating states of the processing module at the preceding stage and the processing module at the subsequent stage.
  • the control unit 434 intentionally passes through the output buffer 431 and the calculation unit 433 performs image processing calculations. It is also possible to control the processing pixel data generated by performing the processing to be output to the outside.
  • the operation at this time can be considered in the same manner as the operation of the image processing module 33 having the first configuration shown in FIG. Accordingly, a detailed description of the operation for controlling the image processing module 43 to intentionally pass through the output buffer 431 and output the processed pixel data generated by the calculation unit 433 performing image processing calculation is omitted. To do.
  • each processing module constituting the pipeline provided in the image processing unit 30 has a storage capacity of a data buffer provided in each processing module. Based on the free state, input data is requested to the processing module connected in the previous stage, and temporary storage (writing) of data to the data buffer is controlled. Further, in the image processing apparatus 1 according to the first embodiment, each processing module provided in the image processing unit 30 is connected to the free state of the storage capacity of the data buffer provided in each processing module and to the subsequent stage. Based on the operation state of the processing module, it controls reading of data temporarily stored in the data buffer and selection (switching) of output data to be output to the outside.
  • each processing module when the subsequent processing module is not in the pipeline installed state and the storage capacity of the data buffer is all free, control is performed so as to pass through the data buffer. Stop. Thereby, in each processing module, the power consumption of the data buffer can be reduced.
  • the image processing unit 30 can regard the processing module controlled so as to pass through the data buffer and the processing module in the subsequent stage as one processing module.
  • control is performed so as not to pass through the data buffer. As a result, it is possible to prevent each processing module itself from entering the pipeline installation state.
  • the pipeline processing performed by the respective processing modules provided in the image processing unit 30 reduces the performance of the pipeline processing when performing desired image processing. In addition, power consumption in the pipeline processing can be reduced.
  • each processing module configuring the pipeline provided in the image processing unit 30 is based on the operation state of the processing module immediately after the pipeline configuration.
  • the configuration for determining whether to pass through the data buffer provided in the processing module has been described.
  • whether or not to pass through the data buffer in each processing module is not limited to the configuration in which the determination is made according to the operation state of the processing module immediately after that shown in the first embodiment.
  • each processing module determines whether or not to pass through the data buffer provided in each processing module based on the operating state of a plurality of subsequent processing modules in the pipeline configuration or all the processing modules in the subsequent stage. It may be configured to.
  • each processing module can determine whether or not to pass through the data buffer based on the result of logical product (AND) of the pipeline installation signals output from a plurality of subsequent processing modules.
  • each processing module can determine whether or not to pass through the data buffer based on the pipeline installed signal inputted by AND. That is, each processing module can determine to pass through the data buffer when all of the subsequent processing modules obtained by ANDing the pipeline installation signals are not in the pipeline installation state. Further, when each processing module can also obtain information on the free state of the storage capacity of the data buffer provided in the subsequent processing module as the status notification signal, the storage capacity of the data buffer provided in the subsequent processing module. Also, it can be determined whether or not the data buffer is to be passed through, assuming that it is a part of the storage capacity of the data buffer provided in the processing module itself.
  • each of the processing modules reads out all data temporarily stored in the data buffer and then requests the input processing data from the previous processing module.
  • direction which controls so that it may pass through a data buffer positively in each processing module is not limited to the method shown in 1st Embodiment.
  • each processing module may control to pass through the data buffer when requests for input data from a plurality of subsequent processing modules are continuously output for a predetermined time or more. Good.
  • each processing module constituting the pipeline provided in the image processing unit 30 passes through the data buffer based on the pipeline installed state in the subsequent processing module. In other words, for each processing module, it is determined whether to pass through the data buffer.
  • a cause of the pipeline processing in the image processing unit 30 being in a pipeline installed state may be a stagnation of data flow (bus traffic) in the DMA bus 10. This is because a plurality of components connected to the DMA bus 10 in the image processing apparatus 1 exchange data to be processed with the DRAM 20 via the DMA bus 10. For this reason, it is desirable to consider the bus traffic in the DMA bus 10 in order not to deteriorate the pipeline processing performance in the image processing unit 30.
  • FIG. 11 is a block diagram showing a schematic configuration of an image processing apparatus according to the second embodiment of the present invention.
  • the image processing apparatus 2 shown in FIG. 11 includes a DMA bus 10, a DRAM 20, an image processing unit 50, a sensor interface (I / F) unit 60, a video interface (I / F) unit 70, and a memory card interface.
  • An (I / F) unit 80 and a CPU (Central Processing Unit) 90 are provided.
  • the image processing unit 50 includes a connection switching unit 31, an input DMA module 32, three image processing modules 33-1 to 33-3, an output DMA module 34, a bus traffic monitoring unit 55, It has. Similar to the image processing apparatus 1, the image processing apparatus 2 is provided in an imaging apparatus such as a still image camera, for example.
  • the constituent elements of the image processing apparatus 2 include the same constituent elements as those provided in the image processing apparatus 1 of the first embodiment shown in FIG. Therefore, in the following description, in the constituent elements of the image processing apparatus 2, the same constituent elements as the constituent elements of the image processing apparatus 1 of the first embodiment are denoted by the same reference numerals, and details regarding the respective constituent elements are provided. The detailed explanation is omitted.
  • the sensor interface unit 60 is an imaging processing unit that is connected to the DMA bus 10 and controls a solid-state imaging device (image sensor) that photoelectrically converts an optical image of a subject formed by a lens provided in the imaging device.
  • the sensor interface unit 60 causes the DRAM 20 to store the still image data of each frame captured by the image sensor via the DMA bus 10.
  • the still image data of one frame stored in the DRAM 20 by the sensor interface unit 60 is divided into a plurality of predetermined small blocks, and the image processing unit 50 performs image processing for each block. I do.
  • the video interface unit 70 is connected to the DMA bus 10 and displays image data for display stored in the DRAM 20 by performing image processing by the image processing unit 50 on a display unit (not shown) provided in the imaging apparatus. It is a display processing unit.
  • the video interface unit 70 reads display image data from the DRAM 20 via the DMA bus 10 and causes the display unit to display the read display image data.
  • the memory card interface unit 80 is connected to the DMA bus 10 and is connected to the imaging device so that the image data for recording stored in the DRAM 20 after the image processing unit 50 performs image processing can be attached to and detached from the imaging device.
  • a recording processing unit for recording on a recording medium such as The memory card interface unit 80 reads the image data for recording from the DRAM 20 via the DMA bus 10 and records the read image data for recording on the recording medium.
  • the CPU 90 is a system control unit that is connected to the DMA bus 10 and controls each component provided in the image processing apparatus 2 and each component provided in the imaging apparatus.
  • the CPU 90 reads a program and data for controlling each component via the DMA bus 10 and controls the entire imaging apparatus according to the read program and data.
  • the image processing unit 50 divides one frame of still image data stored in the DRAM 20 into a plurality of predetermined small blocks. Then, image processing is performed for each block.
  • the image processing unit 50 is also a bus master connected to the DMA bus 10. As shown in FIG. 11, the image processor 50 includes an input DMA module 32, an image processing module 33-1, an image processing module 33-2, an image processing module 33-3, and an output DMA module 34 connected in series. The image processing in the image processing apparatus 2 is sequentially performed by the pipeline processing.
  • the image processing unit 50 also includes the same components as the components of the image processing unit 30 provided in the image processing apparatus 1 of the first embodiment shown in FIG. Accordingly, in the following description, only the points of the components of the image processing unit 50 that are different from the components of the image processing unit 30 included in the image processing apparatus 1 of the first embodiment will be described.
  • the same components as those of the image processing unit 30 included in the image processing apparatus 1 are denoted by the same reference numerals, and detailed description thereof is omitted.
  • connection switching unit 31 switches the connection between the processing modules provided in the image processing unit 50 in accordance with control from the CPU 90.
  • the bus traffic monitoring unit 55 monitors the bus traffic of the DMA bus 10 by monitoring the access to the DRAM 20 by each bus master connected to the DMA bus 10 in the image processing unit 50. Based on the monitored bus traffic of the DMA bus 10, the bus traffic monitoring unit 55 passes through the input buffer 331 and outputs an instruction signal (hereinafter referred to as “buffer”) for instructing to output the input data to the arithmetic unit 333. "Through instruction signal”) is output to each image processing module 33.
  • buffer an instruction signal for instructing to output the input data to the arithmetic unit 333.
  • “Through instruction signal” is output to each image processing module 33.
  • the bus traffic monitoring unit 55 outputs a DMA control signal when each bus master connected to the DMA bus 10 transfers (reads and writes) data to and from the DRAM 20 via the DMA bus 10. Monitor.
  • This DMA control signal is, for example, a DMA request signal that is output when each bus master requests access to the DRAM 20 by DMA, or a bus arbiter (not shown) that arbitrates access to the DRAM 20 by DMA by each bus master. For example, a DMA acknowledge signal output to a bus master permitting an access request.
  • the bus traffic monitoring unit 55 determines that the amount of data flowing through the DMA bus 10 is small based on the monitored bus traffic of the DMA bus 10, the bus traffic monitoring unit 55 passes the input data through the input buffer 331 and calculates the input data.
  • a buffer through instruction signal for instructing to be output is output.
  • the bus traffic monitoring unit 55 determines that the amount of data flowing through the DMA bus 10 is small when the monitored bus traffic of the DMA bus 10 satisfies a predetermined condition.
  • the condition for determining that the data flowing through the DMA bus 10 is small by the bus traffic monitoring unit 55 is, for example, the interval between the DMA request signals output from the respective bus masters and whether or not the DMA request signals are output from the bus masters. There are conditions such as. More specifically, the bus traffic monitoring unit 55 determines that the interval between DMA request signals by each bus master, that is, the interval at which each bus master accesses the DRAM 20 via the DMA bus 10 is a predetermined interval. If it is longer than the threshold, it is determined that the data flowing through the DMA bus 10 is small. Further, the bus traffic monitoring unit 55 determines that the data flowing through the DMA bus 10 is small when the period during which each bus master does not access the DRAM 20 by DMA is longer than a predetermined interval threshold.
  • Each of the image processing modules 33 is a processing module having the same configuration as the image processing module 33 provided in the image processing unit 30 in the image processing apparatus 1 of the first embodiment.
  • the image processing apparatus 2 in accordance with the buffer through instruction signal output from the bus traffic monitoring unit 55, input data passes through the input buffer 331 and is output to the arithmetic unit 333 or is temporarily stored in the input buffer 331. After that, whether to output to the calculation unit 333 is selected (switched).
  • the buffer through determination is performed by inputting the buffer through instruction signal output from the bus traffic monitoring unit 55 instead of the pipeline installation signal input from the subsequent processing module.
  • the unit 3342 can operate in the same manner as the image processing unit 30 provided in the image processing apparatus 1 of the first embodiment. That is, the buffer through determining unit 3342 can output a buffer through signal for controlling the selector 332 based on the buffer through instruction signal.
  • the pipeline install signal is a signal indicating that the output of input data is not requested because the pipeline processing is (temporarily) stopped, and the buffer through instruction signal passes through the input buffer 331 to input data. Is a signal indicating that the operation unit 333 is to be output. That is, the meaning represented by the pipeline install signal is opposite to the meaning represented by the buffer through instruction signal. Therefore, in the configuration of the image processing module 33 shown in FIG. 5, the buffer through determination unit 3342 captures the meaning of the buffer through instruction signal input instead of the pipeline installation signal in reverse, and the input buffer 331 (that is, the input buffer 331). The control method of the write management unit 3343 and the input buffer read management unit 3344) and the selector 332 is determined.
  • Each of the image processing modules 33 indicates that the buffer through instruction signal instructs the input unit 333 to output the input data through the input buffer 331, and the storage capacity of the input buffer 331 is all free. In the state, control is performed so that the input data input from the processing module in the previous stage passes through the input buffer 331 and is transferred to the arithmetic unit 333. At this time, each image processing module 33 stops the operation of the input buffer 331 to reduce the power consumption of the input buffer 331.
  • FIG. 12 is a timing chart showing an example of the operation of the bus traffic monitoring unit 55 in the image processing unit 50 provided in the image processing apparatus 2 according to the second embodiment of the present invention.
  • the DMA request signal output when each bus master provided in the image processing apparatus 2 requests access to the DRAM 20 and the input DMA module 32 and the output DMA module 34 provided in the image processing unit 50 are included in the DRAM 20.
  • 2 shows an example of a DMA request signal output when requesting access to the.
  • FIG. 12 also shows an example of a buffer through instruction signal output according to the result of the bus traffic monitoring unit 55 monitoring the bus traffic of the DMA bus 10.
  • Each bus master provided in the image processing device 2 outputs a DMA access request (DMA request signal) to the DRAM 20 according to the processing status to a bus arbiter (not shown).
  • a bus arbiter (not shown) arbitrates the DMA request signals input from the respective bus masters, and outputs a DMA acknowledge signal to the bus masters permitting access requests.
  • the bus master to which the DMA acknowledge signal is input that is, the bus master to which the access request is permitted, accesses the DRAM 20 by DMA.
  • access to the DRAM 20 by each bus master is not performed at regular intervals as shown in FIG.
  • the bus traffic monitoring unit 55 monitors the bus traffic of the DMA bus 10 by monitoring the access to the DRAM 20 performed by the bus master other than the image processing unit 50 by DMA. More specifically, the bus traffic monitoring unit 55 measures the interval between the DMA request signals output by the respective bus masters other than the image processing unit 50 for each bus master. Thereby, the bus traffic monitoring unit 55 can determine the state of the bus traffic of the DMA bus 10. For example, when a DMA request signal is output from one bus master at an interval shorter than a predetermined interval threshold, the occupation rate of the DMA bus 10 by this bus master is high, and the DRAM 20 is frequently accessed. Therefore, it can be determined that a large amount of data is flowing through the DMA bus 10.
  • the interval between DMA request signals output by each bus master is longer than a predetermined interval threshold.
  • the occupation rate of the DMA bus 10 is low, the DRAM 20 is frequently accessed by a plurality of bus masters, so that it can be determined that a large amount of data flows through the DMA bus 10.
  • the bus traffic monitoring unit 55 does not output a buffer through instruction signal indicating that an instruction is given to output the input data to the arithmetic unit 333 through the input buffer 331.
  • the timing chart shown in FIG. 12 indicates that setting the buffer through instruction signal to the “Low” level does not instruct to pass through the input buffer 331 and output the input data to the arithmetic unit 333.
  • each image processing module 33 provided in the image processing unit 50, the buffer through determination unit 3342 is controlled so that the input data input is temporarily stored in the input buffer 331 and then read out and transferred to the calculation unit 333. To do.
  • pipeline processing is performed by sequentially outputting the processed pixel data that has been subjected to the image processing calculation by the calculation unit 333 to the subsequent processing module.
  • the buffer through determination unit 3342 causes the selector 332 to output the input data that has been input through the input buffer 331 to the arithmetic unit 333. And the operation of the input buffer 331 is stopped to reduce the power consumption of the input buffer 331.
  • the processing pixel data obtained by performing the image processing operation on the input data transferred through the input buffer 331 is sequentially output to the subsequent processing module. To perform pipeline processing.
  • a DMA request signal is output from a bus master other than the image processing unit 50, as shown after the timing t3 in the timing chart shown in FIG. 12, that is, access to the DRAM 20 by a bus master other than the image processing unit 50 is performed.
  • the bus traffic monitoring unit 55 determines that the data flowing through the DMA bus 10 will increase from now on. Therefore, the bus traffic monitoring unit 55 does not instruct to pass through the input buffer 331 and output the input data to the arithmetic unit 333 by setting the buffer through instruction signal to the “Low” level again from the timing t4. Represents.
  • the buffer through determination unit 3342 is controlled so that the input data input is temporarily stored in the input buffer 331 and then read out and transferred to the calculation unit 333. To do.
  • the bus traffic monitoring unit 55 monitors the bus traffic of the DMA bus 10 based on the access to the DRAM 20 by each bus master connected to the DMA bus 10. The bus traffic monitoring unit 55 then inputs the input through the input buffer 331 to each image processing module 33 constituting the pipeline in the image processing unit 50 based on the monitored bus traffic of the DMA bus 10. A buffer through instruction signal for controlling whether or not to transfer data to the arithmetic unit 333 is output.
  • the condition for determining the bus traffic by the bus traffic monitoring unit 55 is as described above for the DMA request signal output from each bus master.
  • the determination is not limited to the interval or the condition whether the DMA request signal is output from the bus master, but may be determined according to other conditions.
  • the bus traffic may be determined based on the number of bus masters accessing the DRAM 20.
  • the bus traffic monitoring unit 55 determines that the amount of data flowing on the DMA bus 10 is small when the number of bus masters accessing the DRAM 20 is less than a predetermined threshold value, and the number of bus masters accessing the DRAM 20 is determined in advance.
  • the bus traffic may be determined based on the time from when each bus master outputs a DMA request signal until the DMA acknowledge signal is input. In this case, the bus traffic monitoring unit 55 determines that the amount of data flowing through the DMA bus 10 is small when the time from the output of the DMA request signal to the input of the DMA acknowledge signal is shorter than a predetermined time threshold. If the time from when the DMA request signal is output until the DMA acknowledge signal is input is equal to or greater than a predetermined time threshold, it is determined that there is a lot of data flowing through the DMA bus 10.
  • the image processing unit includes a plurality of bus masters (sensor interface unit 60, video interface unit 70, memory card interface unit) connected to the data bus (DMA bus 10). 80, CPU 90, and the like) further monitoring a bus traffic on the DMA bus 10 by monitoring access to the memory (DRAM 20), and the bus traffic monitoring unit 55 includes: When it is determined that the amount of data flowing through the DMA bus 10 is small based on the monitored bus traffic, the data (pixel) is passed through the data buffer (input buffer 331) to each processing module (image processing module 33).
  • control unit (control unit 334) in each image processing module 33 outputs a buffer through instruction signal for instructing the selection of a path for transferring the data (to the arithmetic unit 333).
  • An image processing apparatus image processing apparatus 2 that determines that the pixel data in the pipeline processing or the flow of the processed pixel data is not stagnated is configured.
  • the bus traffic monitoring unit 55 provided in the image processing unit 50 monitors access to the DRAM 20 by another bus master provided in the image processing device 2. By doing so, the bus traffic in the DMA bus 10 is monitored.
  • the bus traffic monitoring unit 55 inputs to each image processing module 33 configuring the pipeline provided in the image processing unit 50 based on the monitored bus traffic. It is controlled whether or not the input data passed through the input buffer 331 is transferred to the arithmetic unit 333. At this time, each image processing module 33 stops the operation of the input buffer 331 when the input data input through the input buffer 331 is transferred to the arithmetic unit 333.
  • each image processing module 33 the power consumption in the input buffer 331 can be reduced.
  • the image processing apparatus 2 of the second embodiment by the pipeline processing by the respective image processing modules 33 provided in the image processing unit 50, It is possible to reduce the power consumption in the pipeline processing without degrading the performance of the pipeline processing when performing desired image processing.
  • each image processing module 33 in response to the buffer through instruction signal output based on the bus traffic of the DMA bus 10 monitored by the bus traffic monitoring unit 55 provided in the image processing unit 50, respectively.
  • the image processing module 33 selects (switches) whether the input data passes through the input buffer 331 and is output to the arithmetic unit 333 or is temporarily stored in the input buffer 331 and then output to the arithmetic unit 333.
  • each image processing module 33 includes not only the buffer through instruction signal, but also the operation state of the image processing module 33 in the subsequent stage (including a plurality of subsequent stages) in the same manner as the image processing apparatus 1 of the first embodiment. It may be configured to determine whether or not to pass through the input buffer 331.
  • the buffer through determination unit 3342 in each image processing module 33 provided in the image processing unit 50 performs input buffer write management based on the buffer through instruction signal and the operation state of the processing module connected in the subsequent stage.
  • Unit 3343, input buffer read management unit 3344, and selector 332 can be controlled. Then, similarly to the image processing apparatus 1 of the first embodiment, it is possible to control the state in which the input data is intentionally passed through the input buffer 331 and the input data is transferred to the arithmetic unit 333.
  • the bus traffic monitoring unit 55 may be configured outside the image processing unit 50.
  • a bus arbiter (not shown) provided in the image processing apparatus 2 may have a function of monitoring the bus traffic of the DMA bus 10 as with the bus traffic monitoring unit 55.
  • the buffer through determination unit 3342 in each image processing module 33 provided in the image processing unit 50 is input based on a signal indicating the bus traffic state of the DMA bus 10 monitored by a bus arbiter (not shown).
  • It can be configured to determine whether to pass through the buffer 331 and to control the input buffer write management unit 3343, the input buffer read management unit 3344, and the selector 332. Then, similarly to the image processing apparatus 1 of the first embodiment, it is possible to control the state in which the input data is intentionally passed through the input buffer 331 and the input data is transferred to the arithmetic unit 333.
  • each processing module constituting the pipeline provided in the image processing unit 50 is provided in the image processing unit 30 in the image processing device 1 of the first embodiment.
  • the case where the processing module has the same configuration as the image processing module 33 having the first configuration has been described.
  • each processing module constituting the pipeline provided in the image processing unit 50 is not limited to the image processing module 33 having the first configuration, but is the image processing module 43 having the second configuration. Also good.
  • the image processing apparatus 2 and the image processing according to the second embodiment are used.
  • the operation of the unit 50 can be considered in the same manner as the above-described operation. Therefore, a detailed description of the operation when each processing module configuring the pipeline provided in the image processing unit 50 is the image processing module 43 having the second configuration is omitted.
  • each processing module configuring the pipeline in the image processing unit selects (switches) whether to pass through the data buffer provided in the processing module itself. ) Configuration.
  • selection (switching) of whether or not to pass through the data buffer provided in the processing module itself is controlled.
  • the bus traffic of the DMA bus to which the image processing unit is connected is monitored, and whether to pass through the data buffer provided in the processing module itself based on the monitored bus traffic is selected. Control (switching).
  • the input data request to the processing module connected to the previous stage in the pipeline configuration is intentionally controlled based on the free state of the storage capacity of the data buffer provided in the processing module itself.
  • You can also In each embodiment of the present invention when the processing module is controlled to pass through the data buffer, the control of the data buffer is stopped.
  • the pipeline processing by the respective processing modules provided in the image processing unit does not reduce the performance of the pipeline processing when performing desired image processing. Power consumption in processing can be reduced.
  • the image processing unit provided in the image processing apparatus selects whether to pass through the data buffer provided in the image processing module itself to each image processing module constituting the pipeline.
  • a configuration having a function of controlling (switching) has been described.
  • the input DMA module and the output DMA module which are processing modules constituting a pipeline in the image processing unit, also include a data buffer. Accordingly, the input DMA module and the output DMA module may have a function of controlling selection (switching) as to whether or not to pass through a data buffer provided in the input DMA module and the output DMA module. By providing this function, the input DMA module and the output DMA module can achieve the same effects as the image processing module.
  • each processing module configuring the pipeline is provided in the image processing unit provided in the image processing apparatus.
  • various processing devices other than the image processing device can be considered as a processing device that performs a series of processing by a pipeline configuration. Therefore, the processing apparatus to which the concept of the present invention can be applied is not limited to the image processing apparatus shown in each embodiment of the present invention, and a pipeline is formed by connecting a plurality of processing modules in series. If the processing apparatus is configured to perform pipeline processing, the concept of the present invention can be applied in the same manner, and the same effects as the present invention can be obtained.
  • Image processing device 10 DMA bus (data bus) 20 DRAM (memory) 30 Image processing unit 31 Connection switching unit (image processing unit) 32 input DMA module (image processing unit) 33, 33-1, 33-2, 33-3 Image processing module (image processing unit, processing module) 331 Input buffer (processing module, data buffer) 332 selector (processing module, selector) 333 arithmetic unit (processing module) 334 Control unit (processing module, control unit) 3341 Data amount management unit (processing module, control unit, data amount management unit) 3342 Buffer-through determination unit (processing module, control unit, buffer-through determination unit) 3343 Input buffer write manager (processing module, controller, buffer write manager) 3344 Input buffer read management unit (processing module, control unit, buffer read management unit) 34 Output DMA module (image processing unit) 43, 43-1, 43-2, 43-3 Image processing module (image processing unit, processing module) 431 Output buffer (processing module, data buffer) 432 selector (processing module, selector) 433 a

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Image Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの処理モジュールが処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続された画像処理装置であって、処理モジュールのそれぞれは、データを処理の単位ごとに一時的に記憶するデータバッファと、パイプライン処理におけるデータの流れの状態と、データバッファに記憶しているデータの状態とに基づいて、データをデータバッファに記憶するか否かを判定し、判定した結果に基づいてデータを転送する処理モジュール内の経路を選択すると共に、データバッファの動作を制御する制御部と、を備える。

Description

画像処理装置および画像処理方法
 本発明は、画像処理装置および画像処理方法に関する。
 本願は、2015年06月12日に、日本に出願された特願2015-119684号に基づき優先権を主張し、その内容をここに援用する。
 静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置に搭載されるシステムLSIなど、多くの画像処理装置では、接続された1つのDRAM(Dynamic Random Access Memory)を、内蔵している複数の処理ブロックで共有している。このようなシステムLSIにおいては、内蔵している複数の処理ブロックが、システムLSI内部のデータバスに接続され、それぞれの処理ブロックは、DMA(Direct Memory Access)によってDRAMへのアクセスを行う。
 また、このようなシステムLSIに備える処理ブロックの中には、複数の処理モジュールを備え、それぞれの処理モジュールを直列に接続することによってパイプライン処理を行う処理ブロックもある。例えば、撮像装置に備えたシステムLSIでは、画像処理を行う画像処理部が、パイプライン処理を行う処理ブロックである。そして、画像処理部では、それぞれの画像処理を行う複数の画像処理モジュールを直列に接続したパイプライン処理によって、画像処理部における画像処理の高速化を実現している。一般的に、パイプライン処理を行う複数の処理モジュールを備えた処理ブロックでは、それぞれの処理モジュール間でデータの受け渡しを行うためのデータバッファが設けられ、このデータバッファによって、それぞれの処理モジュールにおける処理の遅延を吸収し、パイプライン処理が正常に行われるようにしている。
 例えば、特許文献1には、処理モジュールであるそれぞれの処理ステージ間にデータバッファであるダブルバッファを設けたパイプライン構成の画像処理装置の技術が開示されている。特許文献1に開示された画像処理装置では、ダブルバッファを介してそれぞれの処理ステージ間でのデータの受け渡しを行うことにより、それぞれの処理ステージによる処理を順次行うパイプライン処理を実現している。
 特許文献1に開示された画像処理装置では、前段の処理ステージが処理を行ったデータを一旦ダブルバッファに記憶し、ダブルバッファに記憶されたデータを後段の処理ステージが読み出すことによって、前段の処理ステージから後段の処理ステージにデータを受け渡している。つまり、特許文献1に開示された画像処理装置では、前段の処理ステージから後段の処理ステージにデータを受け渡す際に、前段の処理ステージによるダブルバッファへのデータの書き込みと、後段の処理ステージによるダブルバッファからのデータの読み出しとが必ず行われている。
日本国特開平10-334225号公報
 しかしながら、パイプライン処理を行う処理ブロックでは、処理ブロックに備えたそれぞれの処理モジュールにおける処理の進行状況によっては、データバッファを介さずに、前段の処理モジュールと後段の処理モジュールとの間で直接、データの受け渡しを行うことができるような状況になることもある。つまり、それぞれの処理モジュールが行う処理のタイミングによっては、パイプライン処理を行うそれぞれのデータが、それぞれの処理モジュールをスムーズに流れる状況になることもある。このような状況にあるときでも、特許文献1に開示された画像処理装置では、前段の処理ステージによるダブルバッファへの書き込みと、後段の処理ステージによるダブルバッファの読み出しが行われる。
 データバッファでは、データを書き込んだり読み出したりする動作に伴って電力を消費する。このため、特許文献1に開示された画像処理装置では、パイプライン処理を行うそれぞれの処理ステージにおいて、ダブルバッファへのデータの書き込みと、ダブルバッファからのデータの読み出しとのそれぞれの動作のときに、ダブルバッファの動作に伴った電力を消費する。そして、特許文献1に開示された画像処理装置では、それぞれの処理ステージにおける処理の進行状況と関係なく、ダブルバッファの動作に伴う電力を消費している。
 本発明は、上記の課題認識に基づいてなされたものであり、パイプライン処理の性能を低下させることなく、消費電力を低減することができる画像処理装置および画像処理方法を提供することを目的としている。
 本発明の第1の態様によれば、画像処理装置は、メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続された画像処理装置であって、前記処理モジュールのそれぞれは、前記データを前記処理の単位ごとに一時的に記憶するデータバッファと、前記パイプライン処理におけるデータの流れの状態と、前記データバッファに記憶している前記データの状態とに基づいて、前記データを前記データバッファに記憶するか否かを判定し、前記判定した結果に基づいて前記データを転送する前記処理モジュール内の経路を選択すると共に、前記データバッファの動作を制御する制御部と、を備える。
 本発明の第2の態様によれば、上記第1の態様の画像処理装置において、前記制御部は、前記データバッファが有する記憶容量に前記データが記憶されている状態で、前記データバッファにさらに前記データを記憶することができる状態である場合、前記データを前記データバッファに一旦記憶してから読み出して転送する経路を選択すると共に、前記データバッファを動作させ、前記パイプライン処理における前記データの流れが滞っている状態で、前記データバッファにさらに前記データを記憶することができない状態である場合、前記データを前記データバッファに一旦記憶してから読み出して転送する経路を選択すると共に、前記データバッファを、記憶している前記データを保持させるように動作させ、前記パイプライン処理における前記データの流れが滞っていない状態で、前記データバッファが有する全ての前記記憶容量に前記データが記憶されていない状態である場合に、前記データバッファに記憶せずにスルーして前記データを転送する経路を選択すると共に、前記データバッファの動作を停止させてもよい。
 本発明の第3の態様によれば、上記第2の態様の画像処理装置において、前記制御部は、前記パイプラインの構成における前段の前記処理モジュールに、前記制御部自身を備えた前記処理モジュールの動作状態を表す状態通知信号を出力し、前記パイプラインの構成における後段の前記処理モジュールから入力された前記状態通知信号に基づいて、前記パイプライン処理におけるデータの流れの状態を判定してもよい。
 本発明の第4の態様によれば、上記第3の態様の画像処理装置において、前記制御部は、前記パイプラインの構成における後段の複数の前記処理モジュールから入力された前記状態通知信号に基づいて、前記パイプライン処理におけるデータの流れの状態を判定してもよい。
 本発明の第5の態様によれば、上記第3の態様または上記第4の態様の画像処理装置において、前記状態通知信号は、前段の前記処理モジュールが前記処理を行った前記データを受け付けることができるか否かを表す信号であり、前段の前記処理モジュールが前記処理を行った前記データの出力を要求するデータリクエスト信号を含み、前記制御部は、後段の前記処理モジュールから前記データの出力を要求する前記データリクエスト信号が入力された場合に、前記パイプライン処理における前記データの流れが滞っていない状態であると判定してもよい。
 本発明の第6の態様によれば、上記第5の態様の画像処理装置において、前記制御部は、前記データバッファに前記データを記憶することができる状態である場合に、前記データの出力を要求する前記データリクエスト信号を、前段の前記処理モジュールに出力してもよい。
 本発明の第7の態様によれば、上記第5の態様の画像処理装置において、前記制御部は、前記データバッファが有する全ての前記記憶容量に前記データが記憶されていない状態になるまで、前記データの出力を要求する前記データリクエスト信号の前段の前記処理モジュールへの出力を保留し、前記データバッファが有する全ての前記記憶容量に前記データが記憶されていない状態になった後に、前段の前記処理モジュールに前記データリクエスト信号を出力し、前記データバッファをスルーして前記データを転送する経路を選択すると共に、前記データバッファの動作を停止させてもよい。
 本発明の第8の態様によれば、上記第2の態様から上記第7の態様のいずれか一態様の画像処理装置において、前記画像処理部は、前記データバスに接続された複数のバスマスタによる前記メモリへのアクセスを監視することによって、前記データバスにおけるバストラフィックを監視するバストラフィック監視部、をさらに備え、前記バストラフィック監視部は、監視した前記バストラフィックに基づいて前記データバスに流れているデータが少ないと判定した場合に、それぞれの前記処理モジュールに、前記データバッファをスルーして前記データを転送する経路の選択を指示するバッファスルー指示信号を出力し、それぞれの前記処理モジュール内の前記制御部は、前記バッファスルー指示信号が入力された場合に、前記パイプライン処理における前記データの流れが滞っていない状態であると判定してもよい。
 本発明の第9の態様によれば、上記第2の態様から上記第8の態様のいずれか一態様の画像処理装置において、前記処理モジュールは、前記データバッファから読み出した前記データを転送する経路、および前記データバッファをスルーして前記データを転送する経路のいずれか一方の経路を、前記データを転送する経路として選択するセレクタ、をさらに備え、前記制御部は、前記データバッファに記憶する前記データの量を管理し、監視した前記データの量を表すデータ量情報を出力するデータ量管理部と、前記データ量情報と前記パイプライン処理におけるデータの流れの状態とに基づいて、前記データバッファに行わせる動作を判定し、判定した結果に基づいて、前記データバッファへの前記データの書き込みおよび前記データバッファからの前記データの読み出しの指示信号と、前記データを転送する経路を選択するための制御信号とを出力するバッファスルー判定部と、前記データバッファへの前記データの書き込みの前記指示信号に応じて、前記データバッファへの前記データの書き込みを制御するための制御信号であるバッファライト信号を生成するバッファ書き込み管理部と、前記データバッファからの前記データの読み出しの前記指示信号に応じて、前記データバッファからの前記データの読み出しを制御するための制御信号であるバッファリード信号を生成するバッファ読み出し管理部と、を備え、前記データ量管理部は、入力された前記データの数と、前記バッファリード信号とに基づいて前記データの量を管理し、前記バッファスルー判定部は、前記データ量情報が、前記データの量が0よりも大きい値であることを表している場合、前記データバッファへの前記データの書き込みおよび前記データバッファからの前記データの読み出しを行うことを指示する前記指示信号と、前記データを前記データバッファに一旦記憶してから読み出して転送する経路を選択する前記制御信号とを出力し、前記データ量情報が、前記データの量が0であることを表している場合、前記データバッファへの前記データの書き込みおよび前記データバッファからの前記データの読み出しを停止することを指示する前記指示信号と、前記データバッファをスルーして前記データを転送する経路を選択する前記制御信号とを出力し、前記セレクタは、前記制御信号に応じた経路を、前記データを転送する経路として選択してもよい。
 本発明の第10の態様によれば、画像処理方法は、メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続された画像処理装置における画像処理方法であって、前記処理モジュールのそれぞれにより実行され、前記パイプライン処理におけるデータの流れの状態と、前記データを前記処理の単位ごとに一時的に記憶するデータバッファに記憶している前記データの状態とに基づいて、前記データを前記データバッファに記憶するか否かを判定し、前記判定した結果に基づいて前記データを転送する前記処理モジュール内の経路を選択すると共に、前記データバッファの動作を制御する制御ステップ、を備える。
 上記各態様によれば、パイプライン処理の性能を低下させることなく、消費電力を低減することができる画像処理装置および画像処理方法を提供することができるという効果が得られる。
本発明の第1の実施形態における画像処理装置の概略構成を示したブロック図である。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュール間のデータの転送方法の一例を示した図である。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの概略構成を示したブロック図である。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの動作の一例を示したタイミングチャートである。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの構成を示したブロック図である。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの処理手順を示したフローチャートである。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの動作の一例を示したタイミングチャートである。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの別の動作の一例を示したタイミングチャートである。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの概略構成を示したブロック図である。 本発明の第1の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの動作の一例を示したタイミングチャートである。 本発明の第2の実施形態における画像処理装置の概略構成を示したブロック図である。 本発明の第2の実施形態の画像処理装置に備えた画像処理部におけるバストラフィック監視部の動作の一例を示したタイミングチャートである。
(第1の実施形態)
 以下、本発明の実施形態について、図面を参照して説明する。図1は、本発明の第1の実施形態における画像処理装置の概略構成を示したブロック図である。図1に示した画像処理装置1は、DMAバス10と、DRAM20と、画像処理部30と、を備えている。また、画像処理部30は、接続切り替え部31と、入力DMAモジュール32と、3つの画像処理モジュール33-1~画像処理モジュール33-3と、出力DMAモジュール34と、を備えている。画像処理装置1は、例えば、静止画用カメラなどの撮像装置に備えられる。
 なお、図1においては、画像処理装置1に備えられ、DMAバス10に接続される他の構成要素の図示を省略している。画像処理装置1に備える他の構成要素としては、例えば、撮像装置に備えたレンズによって結像された被写体の光学像を光電変換する固体撮像素子を制御する撮像処理部、画像処理部30によって処理された画像のデータを記録するための記録処理を行う記録処理部、画像処理部30によって処理された画像のデータを画像処理装置1に備えた表示部に表示させるための表示処理部などがある。また、例えば、画像処理装置1に備える他の構成要素としては、画像処理装置1に備えたそれぞれの構成要素を制御するシステム制御部などもある。
 DRAM20は、DMAバス10に接続され、撮像装置において処理される様々なデータを記憶する。例えば、DRAM20は、撮像装置に備えた図示しない固体撮像素子から出力された静止画像のデータを記憶する。画像処理装置1においては、DRAM20に記憶された1フレームの静止画像のデータを、予め定めた複数の小さなブロックに分割し、画像処理部30が、それぞれのブロックごとに画像処理を行う。
 画像処理部30は、図1に示したように、入力DMAモジュール32、画像処理モジュール33-1、画像処理モジュール33-2、画像処理モジュール33-3、および出力DMAモジュール34が直列に接続されたパイプライン処理によって、画像処理装置1における画像処理を順次行う。以下の説明においては、1フレームの静止画像のデータを分割したそれぞれのブロックに含まれるデータを、「ブロック画像データ」という。画像処理部30は、ブロック画像データに含まれるそれぞれの画素のデータ(以下、「画素データ」という)を、例えば、予め定めた数の列ごとにDRAM20から読み出し、読み出した画素データを1つの処理単位として画像処理を行う。以下の説明においては、画像処理部30が画像処理を行う1つの処理単位の画素データにおいて、同じ列に含まれる連続した複数の画素データを、「ユニットライン」という。
 画像処理部30は、1フレームの静止画像のデータに対して行う画像処理を選択する機能を備えている。より具体的には、画像処理部30は、画像処理モジュール33-1、画像処理モジュール33-2、および画像処理モジュール33-3のそれぞれによる画像処理を順次行うこともできるが、画像処理モジュール33-1~画像処理モジュール33-3のいずれか1つまたは複数によって画像処理を行ったり、画像処理モジュール33-1~画像処理モジュール33-3の順番を変更して画像処理を行ったりすることができる。以下の説明においては、画像処理モジュール33-1~画像処理モジュール33-3のそれぞれを区別せずに表すときには、「画像処理モジュール33」という。
 接続切り替え部31は、画像処理部30に備えたそれぞれの構成要素が出力した画像データの出力先を切り替える、つまり、画像処理部30に備えたそれぞれの構成要素同士の接続を切り替える。例えば、画像処理部30によって画像処理モジュール33-2のみの画像処理を行う場合には、入力DMAモジュール32の出力端子と画像処理モジュール33-2の入力端子とを接続し、画像処理モジュール33-2の出力端子と出力DMAモジュール34の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。また、例えば、画像処理部30によって画像処理モジュール33-3、画像処理モジュール33-1の順番で画像処理を行う場合には、入力DMAモジュール32の出力端子と画像処理モジュール33-3の入力端子とを接続し、画像処理モジュール33-3の出力端子と画像処理モジュール33-1の入力端子とを接続し、画像処理モジュール33-1の出力端子と出力DMAモジュール34の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。なお、接続切り替え部31は、例えば、画像処理装置1に備えた不図示のシステム制御部からの制御に応じて、画像処理部30に備えたそれぞれの構成要素の接続の切り替えを行う。
 入力DMAモジュール32は、DRAM20に記憶されているブロック画像データに含まれるそれぞれの画素データをユニットラインごとに読み出し、読み出した画素データを、接続切り替え部31を介して、次に画像処理を行う処理モジュールであるいずれかの画像処理モジュール33に出力するための処理モジュールである。入力DMAモジュール32は、例えば、画像処理装置1に備えた不図示のシステム制御部からの制御に応じて、DMAバス10を介してDRAM20から画素データを読み出し、読み出した画素データを接続切り替え部31によって接続が切り替えられた接続先の画像処理モジュール33に出力する。
 入力DMAモジュール32は、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備えている。このため、入力DMAモジュール32は、DMAバス10を介してDRAM20から読み出した画素データをデータバッファに一時記憶し、データバッファに一時記憶した画素データを、接続切り替え部31によって接続が切り替えられた接続先の画像処理モジュール33に出力することもできる。
 画像処理モジュール33-1~画像処理モジュール33-3のそれぞれは、接続切り替え部31によって接続が切り替えられた接続先の入力DMAモジュール32または画像処理モジュール33から、接続切り替え部31を介して入力された画素データに対して予め定めた種々のデジタル的な画像処理を行う処理モジュールである。画像処理モジュール33-1~画像処理モジュール33-3のそれぞれが行う画像処理には、例えば、それぞれの画素データに対応するY(輝度)信号とC(色)信号とを生成するYC処理、それぞれの画素データに含まれるノイズを低減するノイズ低減処理、それぞれの画素データで表される画像における倍率色収差などの補正を行う歪補正処理などが含まれている。画像処理モジュール33-1~画像処理モジュール33-3のそれぞれは、例えば、画像処理装置1に備えた不図示のシステム制御部からの制御に応じて、接続切り替え部31を介して入力された画素データに対して画像処理を施し、画像処理を施した画素データを、接続切り替え部31によって接続が切り替えられた接続先の画像処理モジュール33または出力DMAモジュール34に出力する。
 なお、画像処理モジュール33-1~画像処理モジュール33-3のそれぞれにも、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備えている。ただし、画像処理モジュール33-1~画像処理モジュール33-3のそれぞれでは、接続切り替え部31を介して入力された画素データをデータバッファに一時記憶するか否かが、パイプライン処理における画素データの流れに基づいて制御される。
 なお、以下の説明においては、画像処理を施した画素データを、DRAM20に記憶されている画像処理を行う対象の画素データと区別して表す場合には、「処理画素データ」という。
 出力DMAモジュール34は、接続切り替え部31によって接続が切り替えられた接続先の画像処理モジュール33から、接続切り替え部31を介して入力された処理画素データを、DRAM20に書き込む(記憶する)ための処理モジュールである。出力DMAモジュール34は、例えば、画像処理装置1に備えた不図示のシステム制御部からの制御に応じて、接続切り替え部31を介して入力された処理画素データを、DMAバス10を介してDRAM20に出力する。
 出力DMAモジュール34も、予め定めた数のユニットライン分の処理画素データを一時的に記憶することができるデータバッファを備えている。このため、出力DMAモジュール34は、接続切り替え部31を介して入力された処理画素データをデータバッファに一時記憶し、データバッファに一時記憶した処理画素データを、DMAバス10を介してDRAM20に出力することもできる。
 このように、画像処理部30では、それぞれの処理モジュールが、1フレームの静止画像のデータをブロック画像データに分割し、例えば、画像処理装置1に備えた不図示のシステム制御部からの制御に応じた画像処理を、それぞれのブロック画像データに含まれる画素データに対してユニットラインごとに順次行うことによって、それぞれのブロック画像データに対する一連の画像処理を行う。
 次に、画像処理部30に備えたそれぞれの処理モジュールの構成および動作について説明する。まず、画像処理部30に備えたそれぞれの処理モジュール間の画素データの受け渡し方法について説明する。
 図2は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール33間のデータの転送方法の一例を示した図である。図2には、画像処理モジュール33-1が画像処理を行った処理画素データを、画像処理モジュール33-2に出力する場合の一例を示している。なお、上述したように、画像処理部30においては、それぞれの処理モジュールが出力する画素データは、接続切り替え部31を介して次に処理を行う処理モジュールに出力される。しかし、図2においては、接続切り替え部31の図示を省略し、画像処理モジュール33-1から画像処理モジュール33-2に、処理画素データを直接出力するものとして示している。
 上述したように、画像処理部30では、それぞれの処理モジュールが、複数のユニットラインを1つの処理単位として画像処理を行う。このため、画像処理部30では、画像処理部30に備えたそれぞれの処理モジュール間での画素データの受け渡しも、1つの処理単位ごとに行われる。図2には、前段の画像処理モジュール33-1が、8つのユニットラインのそれぞれの処理画素データを1つの処理単位として、後段の画像処理モジュール33-2に出力する場合を示している。なお、1つのユニットラインには、画像処理を施した同じ列に含まれる連続した複数の処理画素データが含まれている。
 図2においては、画像処理モジュール33-1と画像処理モジュール33-2との間の処理画素データの受け渡し方法(転送方法)の一例を示しているが、入力DMAモジュール32と画像処理モジュール33との間の画素データの受け渡し方法や、画像処理モジュール33と出力DMAモジュール34との間の処理画素データの受け渡し方法も、図2と同様である。また、図2においては、8つのユニットラインのそれぞれの処理画素データを1つの処理単位として受け渡している一例を示しているが、それぞれの処理モジュールの間で受け渡しを行うユニットラインの数は、図2に示した数、つまり、8つに限定されるものではない。
(第1の構成)
 次に、画像処理部30に備えたそれぞれの処理モジュールの第1の構成について説明する。図3は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール33の概略構成を示したブロック図である。図3には、第1の構成の画像処理モジュール33における基本的な構成を示している。図3に示した第1の構成の画像処理モジュール33は、入力バッファ331と、セレクタ332と、演算部333と、制御部334と、を備えている。
 入力バッファ331は、画像処理モジュール33に入力された入力データを、一時的に記憶するデータバッファである。入力バッファ331は、例えば、SRAM(Static Random Access Memory)などのメモリで構成される。入力バッファ331は、前段の処理モジュールから入力された予め定めた数のユニットライン分の画素データを、入力データとして記憶することができる記憶容量をもっている。入力バッファ331は、制御部334から入力された制御信号に応じて、入力された入力データを一時記憶する。
 なお、入力バッファ331は、予め定めた数のユニットライン分の画素データ(入力データ)を記憶する記憶容量の組を2つ備え、一方の記憶容量の組への画素データの書き込みと、他方の記憶容量の組からの画素データの読み出しとを交互に切り替えることによって、1つの処理単位の画素データの入出力を同時期に行うことができるように動作する、いわゆる、ダブルバッファで構成されていてもよい。
 セレクタ332は、演算部333に出力する画素データを選択する選択部である。セレクタ332は、制御部334から入力された制御信号に応じて、入力バッファ331に一時記憶された入力データ(画素データ)、または画像処理モジュール33に現在入力されている入力データ(画素データ)のいずれか一方の入力データ(画素データ)を、演算部333に出力する。つまり、セレクタ332は、前段の処理モジュールから入力されて入力バッファ331に一時記憶された画素データ、または前段の処理モジュールから現在入力されているそのままの画素データのいずれか一方の画素データを、演算部333に出力する。
 演算部333は、入力された画素データに対して予め定めた種々のデジタル的な画像処理の演算を行う。演算部333は、画像処理の演算を行って生成した処理画素データを、出力データとして画像処理モジュール33の外部に出力する。つまり、演算部333は、生成した処理画素データを、接続切り替え部31を介して他の画像処理モジュール33または出力DMAモジュール34に出力する。
 制御部334は、画像処理モジュール33の動作状態の通知と、画像処理モジュール33に備えたそれぞれの構成要素の制御とを行う。制御部334は、画像処理モジュール33の動作状態を表す状態通知信号を、前段の処理モジュールに出力する。また、制御部334は、入力バッファ331に空いている記憶容量があるか否かによって、入力バッファ331の動作を制御する。
 より具体的には、入力バッファ331に空いている記憶容量がある場合、入力バッファ331は、画像処理モジュール33に入力された入力データを一時記憶することができる。この場合、制御部334は、前段の処理モジュールからの入力データを受け付けることができる状態であることを表す状態通知信号として、画素データの出力を要求する信号を、前段の処理モジュールに出力する。そして、制御部334は、出力した画素データの出力を要求する状態通知信号に応じて前段の処理モジュールから入力された入力データを一時記憶する(書き込む)ように、入力バッファ331を制御する。
 また、入力バッファ331に空いている記憶容量がない場合、入力バッファ331は、画像処理モジュール33に入力された入力データを一時記憶することができない状態である。この場合、制御部334は、前段の処理モジュールからの入力データを受け付けることができない状態であることを表す状態通知信号として、画素データの出力を要求しないことを表す信号を、前段の処理モジュールに出力する。なお、このときの状態通知信号は、前段の処理モジュールに画素データの出力を要求しないことを、画素データの出力を要求する信号の論理レベルで表してもよいし、例えば、パイプライン処理が(一時)停止していることを表すパイプラインストール信号など、画素データの出力を要求する信号と異なる信号で表してもよい。
 また、制御部334は、入力バッファ331に一時記憶されている画素データの読み出しの動作と、セレクタ332が演算部333に出力する画素データの選択(切り替え)とを制御する。制御部334における入力バッファ331からの画素データの読み出し動作の制御やセレクタ332の切り替えの制御は、入力バッファ331に空いている記憶容量があるか否かの判定結果、および後段の処理モジュールから入力された状態通知信号に基づいて行う。なお、後段の処理モジュールから入力される状態通知信号は、演算部333が生成した処理画素データの出力先である後段の処理モジュールに備えた制御部334が出力する状態通知信号であり、上述したように、後段の処理モジュールが処理画素データを受け付けることができる状態であるか否かを表す信号、つまり、処理画素データの出力を要求するか否かを表す信号などが含まれている。
 そして、制御部334は、後段の処理モジュールから入力された状態通知信号が、処理画素データを受け付けることができる状態であることを表している場合、入力バッファ331の記憶容量が空いているか否かによってセレクタ332を制御し、入力バッファ331に一時記憶された画素データ、または画像処理モジュール33に現在入力されている画素データのいずれか一方の画素データを、演算部333に出力させる。
 より具体的には、入力バッファ331の記憶容量が全て空いていない場合、入力バッファ331には、少なくとも1つのユニットライン分の画素データが一時記憶されている状態である。この場合、制御部334は、一時記憶された画素データを読み出すように入力バッファ331を制御すると共に、入力バッファ331から出力された画素データを演算部333に転送するようにセレクタ332を制御する。これにより、演算部333は、入力バッファ331に一時記憶された画素データに対して画像処理の演算を行って生成した処理画素データを、後段の画像処理モジュール33に出力する。このとき、制御部334は、出力した画素データの出力を要求する状態通知信号に応じた入力データが前段の処理モジュールから入力された場合には、入力された入力データを空いている記憶容量に一時記憶する(書き込む)ように、入力バッファ331を制御する。
 また、入力バッファ331の記憶容量が全て空いている場合、入力バッファ331には、1つのユニットライン分の画素データも一時記憶されていない状態である。この場合、制御部334は、動作を停止するように入力バッファ331を制御する。これにより、画像処理モジュール33では、入力バッファ331の消費電力を削減することができる。そして、制御部334は、画像処理モジュール33に現在入力されている画素データをそのまま、つまり、現在入力されている画素データを入力バッファ331に一時記憶せずに直接、演算部333に出力するようにセレクタ332を制御する。これにより、演算部333は、画像処理モジュール33に現在入力されている画素データに対して画像処理の演算を行って生成した処理画素データを、後段の画像処理モジュール33に出力する。
 一方、制御部334は、後段の処理モジュールから入力された状態通知信号が、処理画素データを受け付けることができない状態であることを表しており、かつ、入力バッファ331の記憶容量が空いている場合、制御部334は、画像処理モジュール33に入力された入力データを空いている記憶容量に一時記憶する(書き込む)ように、入力バッファ331を制御する。
 なお、後段の処理モジュールから入力された状態通知信号が、処理画素データを受け付けることができない状態であることを表しており、かつ、入力バッファ331の記憶容量が空いていない場合は、制御部334は、入力データを受け付けることができない状態であることを表す状態通知信号を前段の処理モジュールに出力しているため、前段の処理モジュールからは入力データが入力されない。このため、制御部334は、入力バッファ331の動作を制御しない。
 このような構成によって画像処理部30に備えたそれぞれの処理モジュールは、入力バッファ331の記憶容量の空き状態に基づいて、前段の処理モジュールからの入力データの受け付けと、演算部333が画像処理の演算を行う画素データの選択(切り替え)とを行う。
 次に、画像処理部30に備えたそれぞれの処理モジュールの動作について説明する。図4は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール33の動作の一例を示したタイミングチャートである。図4には、画像処理部30が、図1に示したように、入力DMAモジュール32、第1の構成の画像処理モジュール33-1~画像処理モジュール33-3、および出力DMAモジュール34が直列に接続(パイプライン接続)された構成によってパイプライン処理を行う場合において、画像処理モジュール33-1から画像処理モジュール33-2への処理画素データの受け渡しの一例を示している。
 図4には、画像処理モジュール33-1および画像処理モジュール33-2のそれぞれについて、入力される入力データ、入力バッファ331への入力データの書き込みを表すバッファライト、入力バッファ331からの入力データの読み出しを表すバッファリード、および出力する出力データを示している。また、図4には、画像処理モジュール33-1および画像処理モジュール33-2のそれぞれが前段の処理モジュールに出力する状態通知信号として、入力データの出力を要求する信号(以下、「データリクエスト信号」という)を示している。なお、図4には、画像処理モジュール33-2の後段に接続された画像処理モジュール33-3が状態通知信号として出力するデータリクエスト信号も示している。
 なお、図4の説明においては、1つのユニットラインを1つの処理単位として画像処理を行うものとして説明する。そして、図4には、入力データ、バッファライト、バッファリード、および出力データのそれぞれに、何番目のユニットラインであるかを表す数字を示している。また、画像処理部30に備えたそれぞれの処理モジュールは、2つのユニットライン分の画素データを記憶することができる容量のデータバッファを備えているものとして説明する。また、以下の説明においては、画像処理モジュール33-1に備えたそれぞれの構成要素と、画像処理モジュール33-2に備えたそれぞれの構成要素とを区別するため、それぞれの構成要素に付与した符号に続いて、画像処理モジュール33に付与した「-」と、それに続く数字の部分を付与して表す。例えば、画像処理モジュール33-1に備えた制御部334を「制御部334-1」とし、画像処理モジュール33-2に備えた制御部334を「制御部334-2」として表す。
 画像処理部30がパイプライン処理を開始すると、画像処理モジュール33-1、画像処理モジュール33-2、画像処理モジュール33-3、および出力DMAモジュール34のそれぞれは、入力データの出力を要求するデータリクエスト信号を、前段の処理モジュールに出力する。これは、画像処理部30がパイプライン処理を開始した最初の段階では、それぞれの画像処理モジュール33に備えた入力バッファ331の記憶容量は全て空いているため、入力データを受け付けることができる状態であるからである。この場合、画像処理モジュール33-1に備えた演算部333-1、および画像処理モジュール33-2に備えた演算部333-2は、入力された画素データに対する画像処理をすぐに行うことができる状態である。また、画像処理部30がパイプライン処理を開始した最初の段階では、出力DMAモジュール34は、入力された入力データ(処理画素データ)を、すぐにDMAバス10を介してDRAM20に出力することができる状態であるからである。
 なお、図4においては、データリクエスト信号が“High”レベルの期間が、それぞれの処理モジュールが画素データを受け付けることができる状態であるリクエスト期間を表し、データリクエスト信号が“Low”レベルの期間が、それぞれの処理モジュールが画素データを受け付けることができない状態であるリクエストネゲート期間を表している。
 入力DMAモジュール32は、後段の画像処理モジュール33-1からデータリクエスト信号が入力されると、まず、DRAM20に記憶されている1つ目のユニットラインのそれぞれの画素データを、DMAバス10を介してユニットラインごとに順次読み出す。そして、入力DMAモジュール32は、読み出した画素データを画像処理モジュール33-1に出力する。このとき、入力DMAモジュール32の後段に接続された画像処理モジュール33-1は、“High”レベルのデータリクエスト信号を出力することによって、画素データを受け付けることができる状態であることを示している。このため、入力DMAモジュール32は、読み出した画素データをデータバッファに一時記憶せずに、そのまま画像処理モジュール33-1に出力する。このとき、入力DMAモジュール32では、データバッファの動作を停止して、データバッファの消費電力を削減する。その後、入力DMAモジュール32は、DRAM20に記憶されている2つ目のユニットラインのそれぞれの画素データを読み出して、画像処理モジュール33-1への出力を開始する。
 また、画像処理モジュール33-1は、後段の画像処理モジュール33-2からデータリクエスト信号が入力されると、入力DMAモジュール32から入力された1つ目のユニットラインのそれぞれの画素データに対して画像処理を行う。このとき、画像処理モジュール33-1は、上述したように、入力バッファ331-1の記憶容量が全て空いている状態であり、演算部333-1が入力された画素データに対する画像処理をすぐに行うことができる状態である。また、このとき、画像処理モジュール33-1の後段に接続された画像処理モジュール33-2は、“High”レベルのデータリクエスト信号を出力することによって、処理画素データを受け付けることができる状態であることを示している。このため、制御部334-1は、前段の入力DMAモジュール32から現在入力されている1つ目のユニットラインのそれぞれの画素データを、そのまま演算部333-1に出力するようにセレクタ332-1を制御する。また、制御部334-1は、入力バッファ331-1の動作を停止するように制御して、入力バッファ331-1の消費電力を削減する。これにより、演算部333-1は、セレクタ332-1を介して入力された1つ目のユニットラインのそれぞれの画素データに対して画像処理の演算を行って生成した処理画素データを、後段の画像処理モジュール33-2に出力する。なお、画像処理モジュール33-1から出力される処理画素データは、演算部333-1が画像処理の演算を行うことによって発生する、画素データが入力されてから処理画素データが出力されるまでの遅延時間(以下、「レイテンシ」という)だけ遅れて出力される。その後、画像処理モジュール33-1は、入力DMAモジュール32から入力された2つ目のユニットラインのそれぞれの画素データに対する画像処理を開始する。
 また、画像処理モジュール33-2は、後段の画像処理モジュール33-3からデータリクエスト信号が入力されると、画像処理モジュール33-1から入力された1つ目のユニットラインに対応した処理画素データに対して画像処理を行う。このとき、画像処理モジュール33-2も、上述したように、入力バッファ331-2の記憶容量が全て空いている状態であり、演算部333-2が入力された処理画素データに対する画像処理をすぐに行うことができる状態である。また、このとき、画像処理モジュール33-2の後段に接続された画像処理モジュール33-3も、“High”レベルのデータリクエスト信号を出力することによって、処理画素データを受け付けることができる状態であることを示している。このため、制御部334-2も、前段の画像処理モジュール33-1から現在入力されている1つ目のユニットラインに対応する処理画素データを、そのまま演算部333-2に出力するようにセレクタ332-2を制御する。また、制御部334-2は、入力バッファ331-2の動作を停止するように制御して、入力バッファ331-2の消費電力を削減する。これにより、演算部333-2は、セレクタ332-2を介して入力された1つ目のユニットラインに対応する処理画素データに対して画像処理の演算を行い、演算部333-2におけるレイテンシだけ遅れた処理画素データを画像処理モジュール33-3に出力する。その後、画像処理モジュール33-2も、画像処理モジュール33-1から入力された2つ目のユニットラインに対応する処理画素データに対する画像処理を開始する。
 このようにして、画像処理部30では、それぞれの処理モジュールが、パイプライン接続された後段の処理モジュールに、入力された入力データを順次受け渡す。このとき、それぞれの処理モジュールは、処理モジュール自身に備えた入力バッファ331の記憶容量が全て空いている状態で、かつ、後段の処理モジュールが入力データを受け付けることができる状態であるため、前段の処理モジュールから入力された入力データを入力バッファ331に一時記憶せずに、そのまま、またはすぐに画像処理の演算を行って、後段の処理モジュールに出力する。図4には、画像処理モジュール33-1と画像処理モジュール33-2とのそれぞれのバッファライトおよびバッファリードに、入力データを入力バッファ331に一時記憶しない期間、すなわち、入力バッファ331を介さずに演算部333に入力データを転送する期間を、バッファスルーの期間として示している。
 そして、画像処理部30では、それぞれの処理モジュールが、処理モジュール自身に備えたデータバッファ(入力バッファ331)の動作を停止するように制御する。つまり、画像処理部30では、それぞれの処理モジュールにおけるバッファスルーの期間のデータバッファ(入力バッファ331)の動作を停止する。これにより、画像処理部30では、それぞれの処理モジュールに備えたデータバッファ(入力バッファ331)の消費電力を削減することができる。
 ここで、画像処理モジュール33-2が2つ目のユニットラインに対応した処理画素データを出力しているときに、後段の画像処理モジュール33-3が何らかの要因によって処理画素データを受け付けることができない状態になった場合の動作について説明する。この場合、画像処理モジュール33-3は、画像処理モジュール33-2に出力しているデータリクエスト信号を“Low”レベルにすることによって、処理画素データを受け付けることができない状態である、つまり、入力データの出力を要求しないことを表す。なお、それぞれの処理モジュールが、入力データの出力を要求しないことを前段の処理モジュールに伝える方法は、上述したように、データリクエスト信号の論理レベルによる方法に限定されるものではなく、パイプラインストール信号を出力することによって、画素データを受け付けることができない状態であることを通知する方法であってもよい。
 このとき、画像処理モジュール33-2は、入力バッファ331-2の記憶容量が全て空いている状態(2つのユニットライン分の記憶容量が空いている状態)であるため、制御部334-2は、前段の画像処理モジュール33-1から現在入力されている3つ目のユニットラインに対応した処理画素データを一時記憶するように、入力バッファ331-2を制御する。これにより、入力バッファ331-2は、3つ目のユニットラインに対応した処理画素データを記憶し、1つのユニットライン分の記憶容量が空いている(残っている)状態になる。
 さらに、画像処理モジュール33-2では、制御部334-2が、前段の画像処理モジュール33-1から現在入力されている4つ目のユニットラインに対応した処理画素データを一時記憶するように、入力バッファ331-2を制御する。これにより、入力バッファ331-2は、4つ目のユニットラインに対応した処理画素データも記憶し、空いている記憶容量がない状態になる。つまり、画像処理モジュール33-2は、画像処理モジュール33-1からの処理画素データを受け付けることができない状態になる。このため、制御部334-2は、画像処理モジュール33-2が処理画素データを受け付けることができない状態になったことを表すために、画像処理モジュール33-1に出力しているデータリクエスト信号を“Low”レベルにする。
 これにより、画像処理モジュール33-1では、制御部334-1が、画像処理モジュール33-2に備えた制御部334-2と同様に、入力DMAモジュール32から入力された5つ目と6つ目のユニットラインのそれぞれの画素データを一時記憶するように、入力バッファ331-1を制御する。これにより、入力バッファ331-1は、5つ目と6つ目のユニットラインのそれぞれの画素データを記憶し、画像処理モジュール33-1は、入力DMAモジュール32からの画素データを受け付けることができない状態になる。このため、制御部334-1も、制御部334-2と同様に、画像処理モジュール33-1が画素データを受け付けることができない状態になったことを表すために、入力DMAモジュール32に出力しているデータリクエスト信号を“Low”レベルにする。
 これにより、入力DMAモジュール32は、DRAM20に記憶されている7つ目のユニットラインのそれぞれの画素データの読み出しを保留する。なお、入力DMAモジュール32にも、2つのユニットライン分の画素データを記憶することができる容量のデータバッファを備えている。このため、入力DMAモジュール32は、7つ目と8つ目のユニットラインのそれぞれの画素データを読み出して、データバッファに一旦記憶してから、9つ目のユニットラインのそれぞれの画素データの読み出しを保留してもよい。
 このようにして、画像処理部30では、パイプライン接続された後段の処理モジュールから入力されたデータリクエスト信号が、画素データを受け付けることができない状態であることを表している場合、それぞれの処理モジュールは、後段の処理モジュールへの出力データの出力を停止する。そして、それぞれの処理モジュールは、処理モジュール自身に備えた入力バッファ331の記憶容量が空いている分の画素データを一時記憶した後に、処理モジュール自身が画素データを受け付けることができない状態になったことを通知する。
 なお、画像処理部30では、それぞれの処理モジュールが、処理単位ごとに処理を行っている。従って、画像処理部30では、それぞれの処理モジュールが1つの処理単位の画素データを後段の処理モジュールに出力している途中で画素データを受け付けることができない状態であることが通知された場合でも、現在出力している処理単位の全ての画素データを出力した後に、後段の処理モジュールへの出力データの出力を停止する。
 続いて、画像処理モジュール33-3が処理画素データを受け付けることができる状態になった場合の動作について説明する。この場合、画像処理モジュール33-3は、画像処理モジュール33-2に出力しているデータリクエスト信号を“High”レベルにすることによって、処理画素データを受け付けることができる状態である、つまり、入力データの出力を要求することを表す。なお、それぞれの処理モジュールが、再び入力データの出力を要求することを前段の処理モジュールに伝える方法は、上述したように、データリクエスト信号の論理レベルによる方法に限定されるものではなく、パイプラインストール信号の出力を停止することによって、画素データを受け付けることができる状態であることを通知する方法であってもよい。
 このとき、画像処理モジュール33-2は、入力バッファ331-2に空いている記憶容量がない状態(3つ目と4つ目のユニットラインに対応したそれぞれの処理画素データを一時記憶している状態)である。このため、制御部334-2は、まず、入力バッファ331-2に記憶している3つ目のユニットラインに対応した処理画素データを入力バッファ331-2から読み出して演算部333-2に出力するように、入力バッファ331-2およびセレクタ332-2を制御する。これにより、入力バッファ331-2は、記憶している3つ目のユニットラインに対応した処理画素データをセレクタ332-2に出力し、セレクタ332-2は、入力バッファ331-2から入力された3つ目のユニットラインに対応した処理画素データを演算部333-2に出力する。そして、演算部333-2は、セレクタ332-2から出力された3つ目のユニットラインに対応した処理画素データに対して画像処理の演算を行い、演算部333-2におけるレイテンシだけ遅れた処理画素データを、後段の画像処理モジュール33-3に出力する。
 また、入力バッファ331-2は、3つ目のユニットラインに対応した処理画素データを出力することにより、1つのユニットライン分の記憶容量が空いている(残っている)状態になる。つまり、画像処理モジュール33-2は、画像処理モジュール33-1からの処理画素データを受け付けることができる状態になる。このため、制御部334-2は、画像処理モジュール33-2が処理画素データを受け付けることができる状態になったことを表すために、画像処理モジュール33-1に出力しているデータリクエスト信号を“High”レベルにする。
 さらに、画像処理モジュール33-2では、入力バッファ331-2に空いている記憶容量があるが、4つ目のユニットラインに対応した処理画素データを一時記憶している状態である。このため、制御部334-2は、入力バッファ331-2に記憶している4つ目のユニットラインに対応した処理画素データを入力バッファ331-2から読み出して演算部333-2に出力するように、入力バッファ331-2およびセレクタ332-2を制御する。これにより、演算部333-2に、入力バッファ331-2に記憶している4つ目のユニットラインに対応した処理画素データが、セレクタ332-2を介して入力される。そして、演算部333-2は、セレクタ332-2を介して入力された4つ目のユニットラインに対応した処理画素データに対して画像処理の演算を行って生成した処理画素データを、画像処理モジュール33-3に出力する。
 また、画像処理モジュール33-1では、後段の画像処理モジュール33-2から入力されたデータリクエスト信号が“High”レベルになり、画像処理モジュール33-2が処理画素データを受け付けることができる状態になったことが通知されると、制御部334-1は、画像処理モジュール33-2に備えた制御部334-2と同様に、5つ目と6つ目のユニットラインに対応した処理画素データを画像処理モジュール33-2に出力する。より具体的には、制御部334-1が、入力バッファ331-1に記憶された5つ目と6つ目のユニットラインのそれぞれの画素データを順次読み出して演算部333-1に出力するように、入力バッファ331-2およびセレクタ332-2を制御する。これにより、演算部333-1は、セレクタ332-1を介して順次入力された5つ目と6つ目のユニットラインのそれぞれの画素データに対して画像処理の演算を行い、演算部333-1におけるレイテンシだけ遅れた処理画素データを、後段の画像処理モジュール33-2に出力する。
 また、入力バッファ331-1は、5つ目のユニットラインのそれぞれの画素データを出力したときに、1つのユニットライン分の記憶容量が空いている(残っている)状態になり、画像処理モジュール33-1が入力DMAモジュール32からの画素データを受け付けることができる状態になる。このため、制御部334-1は、制御部334-2と同様に、画像処理モジュール33-1が画素データを受け付けることができる状態になったことを表すために、入力DMAモジュール32に出力しているデータリクエスト信号を“High”レベルにする。
 これにより、入力DMAモジュール32は、DRAM20に記憶されている7つ目のユニットラインから、画素データの読み出しを再開し、読み出した画素データを画像処理モジュール33-1に出力する。なお、入力DMAモジュール32が、DRAM20に記憶されている画素データの読み出しを保留する際に、7つ目と8つ目のユニットラインのそれぞれの画素データをデータバッファに記憶している場合には、データバッファに記憶している7つ目のユニットラインのそれぞれの画素データを画像処理モジュール33-1に出力した後に、9つ目のユニットラインから、画素データの読み出しを再開してもよい。
 このようにして、画像処理部30では、パイプライン接続された後段の処理モジュールから入力されたデータリクエスト信号が、再び画素データを受け付けることができる状態に変わった場合、それぞれの処理モジュールは、後段の処理モジュールへの出力データの出力を再開する。このとき、それぞれの処理モジュールは、処理モジュール自身に備えた入力バッファ331に記憶している画素データから順次、後段の処理モジュールに出力する。そして、それぞれの処理モジュールは、処理モジュール自身に備えた入力バッファ331の記憶容量が空いている状態になった後に、処理モジュール自身が画素データを受け付けることができる状態になったことを通知する。その後、それぞれの処理モジュールは、入力された画素データを処理モジュール自身に備えた入力バッファ331に一旦記憶してから読み出して、後段の処理モジュールに順次出力する。
 以降、上述したような動作を繰り返すことによって、画像処理部30では、パイプライン接続されたそれぞれの処理モジュールによるパイプライン処理を、それぞれのブロック画像データに含まれる画素データに対してユニットラインごとに順次行うことによって、それぞれのブロック画像データに対する一連の画像処理を行う。
 なお、図4に示した画像処理モジュール33の動作のタイミングチャートの一例には示していないが、画像処理部30は、それぞれの処理モジュールによる後段の処理モジュールへの出力データの出力を再開した後、再び入力バッファ331を介さずに入力データを後段の処理モジュールにそのまま出力することができる状態になった場合には、図4に示したパイプライン処理を開始した最初の段階と同様に、入力バッファ331の動作を停止するように制御する。これにより、画像処理部30では、それぞれの処理モジュールに備えた入力バッファ331の消費電力を削減することができる。
 次に、画像処理モジュール33に備えた制御部334の構成について説明する。図5は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール33の構成を示したブロック図である。図5には、第1の構成の画像処理モジュール33に備えた制御部334の概略構成を示している。なお、図5には、第1の構成の画像処理モジュール33に備えた入力バッファ331、セレクタ332、および演算部333も併せて示している。図5に示した制御部334は、データ量管理部3341と、バッファスルー判定部3342と、入力バッファ書き込み管理部3343と、入力バッファ読み出し管理部3344と、を備えている。
 データ量管理部3341は、入力バッファ331に一時記憶する入力データ(画素データ)のデータ量を管理するため、入力バッファ331に一時記憶するユニットラインの数を管理する。より具体的には、データ量管理部3341は、前段の処理モジュールから入力されるデータ有効信号に基づいて、現在入力された画素データが、入力バッファ331に一時記憶すべき有効な画素データであるか否かを判定する。なお、データ有効信号は、ユニットラインに含まれるそれぞれの画素データが有効な画素データであるか否かを表す信号である。データ量管理部3341は、有効な画素データの数を計数することによって、現在の入力されているユニットラインに含まれる全ての有効な画素データが、前段の処理モジュールから入力されたか否かを判定する。
 また、データ量管理部3341は、有効な画素データを含むユニットラインが入力されると、入力バッファ331に一時記憶されているユニットラインの数を表す情報(以下、「バッファ内データ量情報」という)を更新する。例えば、データ量管理部3341は、前段の処理モジュールから有効な画素データを含むユニットラインが入力されるごとに、バッファ内データ量情報が表すユニットライン数を1ずつ加算する。データ量管理部3341がバッファ内データ量情報を加算するタイミングは、ユニットラインにおいて1つ目の有効な画素データを判定したタイミングである。これは、1つのユニットラインにおいて1つ目の有効な画素データが入力されると、その後、このユニットラインに含まれる有効な画素データが引き続き入力されるからである。
 また、データ量管理部3341は、入力バッファ読み出し管理部3344が入力バッファ331に一時記憶した画素データを読み出すバッファリード信号に基づいて、入力バッファ331から読み出した画素データの数を計数し、現在の出力するユニットラインに含まれる全ての画素データが、入力バッファ331から読み出されたか否かを判定する。データ量管理部3341は、ユニットラインに含まれる全ての画素データが読み出されたと判定すると、バッファ内データ量情報を更新する。例えば、データ量管理部3341は、1つのユニットラインが読み出されたと判定するごとに、バッファ内データ量情報が表すユニットライン数を1ずつ減算する。データ量管理部3341がバッファ内データ量情報を減算するタイミングは、ユニットラインに含まれる最後の画素データの読み出し判定したタイミング、つまり、1つのユニットラインに含まれる全ての画素データを入力バッファ331から読み出したタイミングである。これは、1つのユニットラインに含まれる全ての画素データの読み出しが終わらないと、他のユニットラインのそれぞれの画素データを入力バッファ331に一時記憶することができないからである。
 このように、データ量管理部3341は、入力バッファ331に一時記憶されているユニットラインの数を管理する。そして、データ量管理部3341は、バッファ内データ量情報を、バッファスルー判定部3342および入力バッファ読み出し管理部3344に出力する。
 また、データ量管理部3341は、入力バッファ331に一時記憶されているデータ量(ユニットラインの数)を管理した結果、入力バッファ331に空いている記憶容量があると判定した場合には、入力データの出力を要求するデータリクエスト信号を、前段の処理モジュールに出力する。より具体的には、データ量管理部3341は、入力バッファ331に一時記憶することができるユニットラインの最大数から、バッファ内データ量情報が表すユニットライン数、つまり、入力バッファ331に一時記憶している現在のユニットライン数を減算した値が、「0」よりも大きい値である場合には、入力バッファ331に空いている記憶容量があると判定し、入力データの出力を要求することを表すデータリクエスト信号を前段の処理モジュールに出力する。つまり、データ量管理部3341は、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数よりも小さい値である場合には、入力データの出力を要求することを表すデータリクエスト信号を前段の処理モジュールに出力する。また、データ量管理部3341は、入力バッファ331に一時記憶することができるユニットラインの最大数からバッファ内データ量情報が表すユニットライン数を減算した値が「0」である場合には、入力バッファ331に空いている記憶容量がないと判定し、前段の処理モジュールに出力しているデータリクエスト信号を、入力データの出力を要求しないことを表す論理レベルにする。また、このとき、データ量管理部3341は、入力データの出力を要求しないことを表すパイプラインストール信号を前段の処理モジュールに出力する。つまり、データ量管理部3341は、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数と同じ値である場合には、前段の処理モジュールに出力しているデータリクエスト信号を、入力データの出力を要求しないことを表す論理レベルにし、パイプラインストール信号を前段の処理モジュールに出力する。
 なお、上述したデータ量管理部3341の動作では、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数よりも小さい値である場合に、入力データの出力を要求することを表すデータリクエスト信号を前段の処理モジュールに出力する動作を示した。しかし、データ量管理部3341は、例えば、入力データの出力を要求することを表すデータリクエスト信号に応じて前段の処理モジュールから入力データが入力されるまでの遅延時間(レイテンシ)が予めわかっている場合には、入力バッファ331からの画素データの読み出しが終了するタイミングを予想し、画素データの読み出しが終了する前のタイミングで、入力データの出力を要求するデータリクエスト信号を出力してもよい。
 バッファスルー判定部3342は、データ量管理部3341から入力されたバッファ内データ量情報と、後段の処理モジュールから入力されたデータリクエスト信号およびパイプラインストール信号とに基づいて、入力バッファ331の制御方法を判定する。すなわち、バッファスルー判定部3342は、画像処理モジュール33に入力された入力データを入力バッファ331に一時記憶する(書き込む)か否かの判定、入力バッファ331に一時記憶している入力データ(画素データ)を読み出すか否かの判定、および演算部333に出力する入力データ(画素データ)の選択(切り替え)の判定を行う。そして、バッファスルー判定部3342は、判定した結果に基づいて、入力バッファ書き込み管理部3343と、入力バッファ読み出し管理部3344とのそれぞれに、入力バッファ331に対する動作を指示するための指示信号(以下、「バッファ動作指示信号」という)を出力する。また、バッファスルー判定部3342は、セレクタ332を制御するための制御信号(以下、「バッファスルー信号」という)を出力する。
 より具体的には、バッファスルー判定部3342は、後段の処理モジュールからデータリクエスト信号が入力され、かつ、パイプラインストール信号が入力されていない場合には、後段の処理モジュールが処理画素データを受け付けることができる状態であると判定する。そして、バッファスルー判定部3342は、バッファ内データ量情報が表すユニットライン数が「0」よりも大きい値であるときには、入力バッファ331に少なくとも1つのユニットライン分の画素データが一時記憶されていると判定する。この場合、バッファスルー判定部3342は、入力バッファ書き込み管理部3343に、画像処理モジュール33に入力された入力データを一時記憶する(書き込む)ように指示するバッファ動作指示信号を出力する。また、バッファスルー判定部3342は、入力バッファ読み出し管理部3344に、入力バッファ331に一時記憶している画素データを読み出すように指示するバッファ動作指示信号を出力する。さらに、バッファスルー判定部3342は、セレクタ332に、入力バッファ331から出力された画素データを演算部333に出力するように制御するバッファスルー信号を出力する。これにより、画像処理モジュール33に現在入力されている画素データは、入力バッファ331に一時記憶された後に読み出されて、つまり、入力バッファ331に一旦記憶されてから、演算部333に転送される。
 また、バッファスルー判定部3342が、後段の処理モジュールが処理画素データを受け付けることができる状態であると判定した場合において、バッファ内データ量情報が表すユニットライン数が「0」であるときには、入力バッファ331に1つのユニットライン分の画素データも一時記憶されていないと判定する。つまり、バッファスルー判定部3342は、処理画素データの流れが滞らずにパイプライン処理がスムーズに行われている状態であると判定する。この場合、バッファスルー判定部3342は、入力バッファ書き込み管理部3343に、入力バッファ331の動作を停止させるように指示するバッファ動作指示信号を出力する。また、バッファスルー判定部3342は、入力バッファ読み出し管理部3344に、入力バッファ331に一時記憶している画素データの読み出しを行わないように指示するバッファ動作指示信号を出力する。さらに、バッファスルー判定部3342は、セレクタ332に、画像処理モジュール33に現在入力されている入力データ(画素データ)をそのまま演算部333に出力するように制御するバッファスルー信号を出力する。これにより、画像処理モジュール33に現在入力されている画素データが、入力バッファ331に一時記憶されずに直接、つまり、入力バッファ331をスルーして演算部333に転送される。
 また、バッファスルー判定部3342は、後段の処理モジュールからデータリクエスト信号が入力されていない場合、または後段の処理モジュールからデータリクエスト信号が入力されているが、パイプラインストール信号が入力されている場合には、後段の処理モジュールが処理画素データを受け付けることができない状態であると判定する。この場合において、バッファスルー判定部3342は、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数よりも小さい値であるときには、入力バッファ331に少なくとも1つのユニットライン分の画素データを一時記憶することができると判定する。この場合、バッファスルー判定部3342は、入力バッファ書き込み管理部3343に、画像処理モジュール33に入力された入力データを一時記憶する(書き込む)ように指示するバッファ動作指示信号を出力する。これにより、画像処理モジュール33に現在入力されている画素データは、入力バッファ331に一時記憶される。
 なお、このとき、バッファスルー判定部3342は、入力バッファ読み出し管理部3344に、入力バッファ331に一時記憶している画素データの読み出しを行わないように指示するバッファ動作指示信号を出力する。さらに、バッファスルー判定部3342は、セレクタ332に、入力バッファ331から出力された画素データを演算部333に出力するように制御するバッファスルー信号を出力する。これにより、画像処理モジュール33に現在入力されて入力バッファ331に一時記憶している画素データと同じ画素データ(現在は画像処理の演算対象ではない画素データ)が、入力バッファ331をスルーする経路を通って演算部333に出力されることがなくなり、演算部333が不要な動作を行って電力を消費してしまうことを回避することができる。
 また、画像処理モジュール33では、後段の処理モジュールが処理画素データを受け付けることができない状態であると判定した場合で、かつ、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数と同じ値であるとき、データ量管理部3341が入力データの出力を要求しないことを表すパイプラインストール信号を前段の処理モジュールに出力している。このため、画像処理モジュール33には、前段の処理モジュールからの入力データが入力されない。このとき、バッファスルー判定部3342は、入力バッファ書き込み管理部3343および入力バッファ読み出し管理部3344のそれぞれに、入力バッファ331への書き込みおよび読み出しの動作をしないように指示する。すなわち、バッファスルー判定部3342は、入力バッファ331に一時記憶している画素データを保持するように指示する。このときも、バッファスルー判定部3342は、セレクタ332に、入力バッファ331から出力された画素データを演算部333に出力するように制御するバッファスルー信号を出力する。これにより、演算部333には、画素データが入力されることがなくなる。
 入力バッファ書き込み管理部3343は、バッファスルー判定部3342から入力されたバッファ動作指示信号に応じて、入力バッファ331に対する入力データの書き込み動作を行うための制御信号(以下、「バッファライト信号」という)を生成し、入力バッファ331に出力する。より具体的には、入力バッファ書き込み管理部3343は、画像処理モジュール33に入力された入力データを一時記憶する(書き込む)ように指示するバッファ動作指示信号が入力された場合、前段の処理モジュールから入力されたデータ有効信号が有効であることを表している入力データ(画素データ)を、入力バッファ331に入力データを書き込むためのバッファライト信号を生成し、入力バッファ331に出力する。また、入力バッファ書き込み管理部3343は、入力バッファ331の動作を停止させるように指示するバッファ動作指示信号が入力された場合、入力バッファ331に入力データを書き込むためのバッファライト信号を入力バッファ331に出力しない。なお、入力バッファ書き込み管理部3343は、入力バッファ331の動作を停止させるように指示するバッファ動作指示信号が入力された場合、例えば、入力バッファ331をスリープ状態にして動作を停止させるための制御信号を生成し、入力バッファ331に出力してもよい。なお、図5においては、バッファライト信号のみを図示し、例えば、スリープ信号など、入力バッファ331の動作を停止させるための制御信号の図示は省略している。
 入力バッファ読み出し管理部3344は、バッファスルー判定部3342から入力されたバッファ動作指示信号に応じて、入力バッファ331に対する画素データの読み出し動作を行うための制御信号(以下、「バッファリード信号」という)を生成し、入力バッファ331に出力する。より具体的には、入力バッファ読み出し管理部3344は、入力バッファ331に一時記憶している画素データを読み出すように指示するバッファ動作指示信号が入力された場合、入力バッファ331に一時記憶しているユニットラインの内、最も早く一時記憶されたユニットラインから順次読み出すためのバッファリード信号を生成し、入力バッファ331に出力する。また、入力バッファ読み出し管理部3344は、入力バッファ331に一時記憶している画素データの読み出しを行わないように指示するバッファ動作指示信号が入力された場合、入力バッファ331に一時記憶しているユニットラインのそれぞれの画素データを読み出すためのバッファリード信号を入力バッファ331に出力しない。
 ここで、バッファスルー判定部3342が行うそれぞれの判定処理について説明する。図6は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール33の処理手順を示したフローチャートである。図6には、第1の構成の画像処理モジュール33に備えたバッファスルー判定部3342における入力バッファ331の制御方法の判定の処理手順を示している。
 画像処理部30がパイプライン処理を開始すると、バッファスルー判定部3342は、まず、後段の処理モジュールからデータリクエスト信号が入力されたか否か、つまり、後段の処理モジュールが処理画素データの出力を要求しているか否かを判定する(ステップS100)。ステップS100において、データリクエスト信号が入力されていない、つまり、後段の処理モジュールが処理画素データの出力を要求していないと判定した場合(ステップS100の“NO”)、バッファスルー判定部3342は、ステップS105に進む。
 一方、ステップS100において、データリクエスト信号が入力された、つまり、後段の処理モジュールが処理画素データの出力を要求していると判定した場合(ステップS100の“YES”)、バッファスルー判定部3342は、後段の処理モジュールのパイプライン処理が(一時)停止し、処理画素データを受け付けることができないパイプラインストール状態であるか否かを判定する(ステップS101)。このステップS101における判定は、後段の処理モジュールからパイプラインストール信号が入力されているか否かによって行うことができる。
 ステップS101において、後段の処理モジュールがパイプラインストール状態ではないと判定した場合(ステップS101の“NO”)、バッファスルー判定部3342は、ステップS102において、データ量管理部3341から入力されたバッファ内データ量情報が表すユニットライン数が「0」であるか否かを判定する。
 ステップS102において、バッファ内データ量情報が表すユニットライン数が「0」ではない、つまり、バッファ内データ量情報が表すユニットライン数が「0」よりも大きい値である場合(ステップS102の“NO”)、バッファスルー判定部3342は、入力バッファ331に少なくとも1つのユニットライン分の画素データが一時記憶されていると判定する。そして、バッファスルー判定部3342は、入力バッファ書き込み管理部3343、入力バッファ読み出し管理部3344、およびセレクタ332のそれぞれを、画像処理モジュール33に現在入力されている画素データを入力バッファ331に一旦記憶した後に読み出して演算部333に転送するように制御する(ステップS103)。より具体的には、バッファスルー判定部3342は、入力バッファ書き込み管理部3343に、画像処理モジュール33に入力された入力データを一時記憶する(書き込む)ように指示するバッファ動作指示信号を出力し、入力バッファ読み出し管理部3344に、入力バッファ331に一時記憶している画素データを読み出すように指示するバッファ動作指示信号を出力する。また、バッファスルー判定部3342は、セレクタ332に、入力バッファ331から出力された画素データを演算部333に出力するように制御するバッファスルー信号を出力する。
 一方、ステップS102において、バッファ内データ量情報が表すユニットライン数が「0」である場合(ステップS102の“YES”)、バッファスルー判定部3342は、入力バッファ331に1つのユニットライン分の画素データも一時記憶されていない、つまり、入力バッファ331の記憶容量が全て空いている状態であると判定する。これは、画素データの流れが滞らずに、パイプライン処理がスムーズに行われている状態である。このため、バッファスルー判定部3342は、入力バッファ書き込み管理部3343、入力バッファ読み出し管理部3344、およびセレクタ332のそれぞれを、画像処理モジュール33に現在入力されている画素データを直接、演算部333に転送するように制御する(ステップS104)。すなわち、バッファスルー判定部3342は、画像処理モジュール33に現在入力されている画素データを、入力バッファ331をスルーして演算部333に転送するように制御する。より具体的には、バッファスルー判定部3342は、入力バッファ書き込み管理部3343に、入力バッファ331の動作を停止させるように指示するバッファ動作指示信号を出力し、入力バッファ読み出し管理部3344に、入力バッファ331の読み出しを行わないように指示するバッファ動作指示信号を出力する。また、バッファスルー判定部3342は、セレクタ332に、画像処理モジュール33に現在入力されている入力データ(画素データ)をそのまま演算部333に出力するように制御するバッファスルー信号を出力する。
 一方、ステップS101において、後段の処理モジュールがパイプラインストール状態であると判定した場合(ステップS101の“YES”)、またはステップS100において、後段の処理モジュールが処理画素データの出力を要求していないと判定した場合(ステップS100の“NO”)、バッファスルー判定部3342は、ステップS105に進む。ステップS105において、バッファスルー判定部3342は、データ量管理部3341から入力されたバッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数よりも小さい値であるか否かを判定する。
 ステップS105において、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数よりも小さい値である場合(ステップS105の“YES”)、バッファスルー判定部3342は、入力バッファ331に少なくとも1つのユニットライン分の画素データを一時記憶することができると判定する。そして、バッファスルー判定部3342は、入力バッファ書き込み管理部3343、入力バッファ読み出し管理部3344、およびセレクタ332のそれぞれを、画像処理モジュール33に現在入力されている画素データを入力バッファ331に一旦記憶しておくように制御する(ステップS106)。より具体的には、バッファスルー判定部3342は、入力バッファ書き込み管理部3343に、画像処理モジュール33に入力された入力データを一時記憶する(書き込む)ように指示するバッファ動作指示信号を出力し、入力バッファ読み出し管理部3344に、入力バッファ331に一時記憶している画素データの読み出しを行わないように指示するバッファ動作指示信号を出力する。また、バッファスルー判定部3342は、セレクタ332に、入力バッファ331から出力された画素データを演算部333に出力するように制御するバッファスルー信号を出力する。
 一方、ステップS105において、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数よりも小さい値ではない、つまり、バッファ内データ量情報が表すユニットライン数が入力バッファ331に一時記憶することができるユニットラインの最大数と同じ値である場合(ステップS105の“NO”)、バッファスルー判定部3342は、入力バッファ331に入力データ(画素データ)を一時記憶することができないと判定する。そして、バッファスルー判定部3342は、入力バッファ書き込み管理部3343、入力バッファ読み出し管理部3344、およびセレクタ332のそれぞれが動作をしないように、つまり、入力バッファ331に一時記憶している画素データを保持するように制御する(ステップS107)。なお、このとき、画像処理モジュール33では、データ量管理部3341が入力データの出力を要求しないことを表すデータリクエスト信号やパイプラインストール信号を前段の処理モジュールに出力している。
 このような処理によって、バッファスルー判定部3342は、入力バッファ331の制御方法を判定し、判定した結果に基づいて、入力バッファ書き込み管理部3343と、入力バッファ読み出し管理部3344と、セレクタ332とを制御する。なお、バッファスルー判定部3342における入力バッファ331の制御方法の判定を、画像処理部30におけるパイプライン処理が終了するまで繰り返す。
 このような構成および処理によって第1の構成の画像処理モジュール33に備えた制御部334は、入力バッファ331の記憶容量の空き状態に基づいて、前段の処理モジュールに対して入力データ(画素データ)を要求する。また、制御部334は、入力バッファ331の記憶容量の空き状態と、後段の処理モジュールの動作状態とに基づいて、前段の処理モジュールから画像処理モジュール33に入力された入力データ(画素データ)の入力バッファ331への書き込み、入力バッファ331に一時記憶している画素データの読み出し、演算部333が画像処理の演算を行う画素データの選択(切り替え)とを行う。これにより、演算部333は、入力された画素データに対して画像処理の演算を行って生成した処理画素データを、後段の処理モジュールに出力する。なお、図5においては、画像処理の演算を行って生成したユニットラインに含まれるそれぞれの処理画素データが、有効な処理画素データであるか否かを表すデータ有効信号を、演算部333が生成して、後段の処理モジュールに出力する構成を示している。
 次に、図5に示した第1の構成の画像処理モジュール33の動作について説明する。図7は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール33の動作の一例を示したタイミングチャートである。図7には、図5に示した第1の構成の画像処理モジュール33における画素データの受け渡しの一例を示している。
 図7には、画像処理モジュール33に後段の処理モジュールから入力されるデータリクエスト信号およびパイプラインストール信号と、画像処理モジュール33が後段の処理モジュールに出力する出力データと、を示している。また、図7には、画像処理モジュール33が前段の処理モジュールに出力するデータリクエスト信号、パイプラインストール信号、およびデータ有効信号と、画像処理モジュール33に前段の処理モジュールから入力されるデータ有効信号および入力データと、を示している。さらに、図7には、画像処理モジュール33に備えた制御部334がセレクタ332に出力するバッファスルー信号と、画像処理モジュール33に備えた制御部334内の入力バッファ書き込み管理部3343が入力バッファ331に出力するバッファライト信号と、画像処理モジュール33に備えた制御部334内の入力バッファ読み出し管理部3344が入力バッファ331に出力するバッファリード信号と、を示している。さらに、図7には、画像処理モジュール33に備えた制御部334内の信号であるバッファ内データ量情報と、画像処理モジュール33に備えた演算部333に入力される画素データとを示している。
 なお、図7の説明においては、1つのユニットラインを1つの処理単位として画像処理を行うものとして説明する。また、画像処理モジュール33の備えた入力バッファ331は、2つのユニットライン分の画素データを記憶することができる記憶容量をもっているものとして説明する。
 画像処理部30がパイプライン処理を開始すると、画像処理部30に備えたそれぞれの処理モジュールは、タイミングt1において、前段の処理モジュールに入力データの出力を要求するデータリクエスト信号を出力する。画像処理モジュール33では、データ量管理部3341が、前段の処理モジュールにデータリクエスト信号を出力する。また、画像処理モジュール33には、後段の処理モジュールからデータリクエスト信号が入力される。
 なお、上述したように、画像処理部30がパイプライン処理を開始した最初の段階では、画像処理モジュール33は、入力された画素データに対する画像処理をすぐに行うことができる状態であるため、制御部334は、入力バッファ331をスルーして演算部333に転送するように制御をする。しかし、以下の説明においては、バッファ内データ量情報の変化の説明を容易にするため、画像処理部30がパイプライン処理を開始した最初の段階において、制御部334が、画像処理モジュール33に入力された画素データを入力バッファ331に一旦記憶した後に読み出して演算部333に転送するように制御するものとして説明する。
 画像処理モジュール33には、タイミングt1において出力したデータリクエスト信号に応じて前段の処理モジュールから入力データとデータ有効信号とが入力される。データ量管理部3341は、入力されたデータ有効信号に基づいて、バッファ内データ量情報を更新する。より具体的には、データ量管理部3341は、データ有効信号の“High”レベルによって、有効な画素データを含むユニットラインが入力されたと判定すると、タイミングt2において、バッファ内データ量情報が表すユニットライン数に「1」を加算する。これにより、バッファ内データ量情報=「1」となる。
 また、バッファスルー判定部3342は、後段の処理モジュールから入力されたデータリクエスト信号の“High”レベルおよびパイプラインストール信号の“High”レベルに応じて、前段の処理モジュールから入力された入力データを、入力バッファ331に一旦記憶してから演算部333に転送するように指示する。これにより、入力バッファ書き込み管理部3343は、タイミングt2において、バッファライト信号を入力バッファ331に出力する。なお、バッファライト信号は、現在入力されているユニットラインのそれぞれの画素データを入力バッファ331に一時記憶(書き込む)ための複数のパルス信号が含まれた信号であるが、図7においては、“High”レベルの信号として示している。また、バッファスルー判定部3342は、タイミングt2において、入力バッファ331から出力された画素データを演算部333に出力するようにセレクタ332を制御するため、“Low”レベルのバッファスルー信号を出力する。
 その後、現在入力されているユニットラインが入力バッファ331に一時記憶されると、入力バッファ読み出し管理部3344は、タイミングt3において、バッファリード信号を入力バッファ331に出力する。なお、バッファリード信号も、入力バッファ331に一時記憶されているユニットラインのそれぞれの画素データを読み出すための複数のパルス信号が含まれた信号であるが、図7においては、バッファライト信号と同様に、“High”レベルの信号として示している。これにより、演算部333には、入力バッファ331から読み出しされた画素データがセレクタ332を介して順次入力される。そして、演算部333は、入力された画素データに対して画像処理の演算を行い、演算部333におけるレイテンシだけ遅れた処理画素データを、出力データとして後段の処理モジュールに出力する。このとき、演算部333は、出力データに含まれる有効な画素データを表すデータ有効信号も後段の処理モジュールに出力する。
 その後、データ量管理部3341は、有効な画素データを含む次のユニットラインが入力されたと判定すると、タイミングt4において、バッファ内データ量情報を更新する。これにより、バッファ内データ量情報=「2」となる。
 また、データ量管理部3341は、現在読み出しているユニットラインに含まれる全ての画素データを入力バッファ331から読み出したと判定すると、タイミングt5において、バッファ内データ量情報を更新する。より具体的には、データ量管理部3341は、バッファ内データ量情報が表すユニットライン数から「1」を減算する。これにより、バッファ内データ量情報=「1」となる。
 以降、同様に、入力バッファ書き込み管理部3343による現在入力されているユニットラインのそれぞれの画素データの入力バッファ331への一時記憶(書き込み)および入力バッファ読み出し管理部3344による現在読み出しているユニットラインのそれぞれの画素データの入力バッファ331からの読み出しと、データ量管理部3341によるバッファ内データ量情報の更新とを繰り返す。これにより、演算部333は、入力バッファ331に一旦記憶してから転送された画素データに対して画像処理の演算を行った処理画素データとデータ有効信号とを後段の処理モジュールに出力する。
 その後、入力バッファ読み出し管理部3344によって入力バッファ331に一時記憶された全てのユニットラインのそれぞれの画素データの読み出しが終了すると、タイミングt6において、データ量管理部3341が更新したバッファ内データ量情報が「0」となる。これにより、バッファスルー判定部3342は、後段の処理モジュールから入力されているデータリクエスト信号の“High”レベルおよびパイプラインストール信号の“High”レベルと、バッファ内データ量情報=「0」とに応じて、前段の処理モジュールから入力された入力データをそのまま画素データとして演算部333に出力するように制御し、バッファスルー信号を“High”レベルにする。
 これにより、その後のタイミングt7において、前段の処理モジュールから有効な画素データを含むユニットラインが入力されると、それぞれの画素データは、セレクタ332を介してそのまま、演算部333に順次入力される。そして、演算部333は、入力された画素データに対して画像処理の演算を行った処理画素データとデータ有効信号とを後段の処理モジュールに出力する。
 以降、同様に、前段の処理モジュールから現在入力されているユニットラインのそれぞれの画素データが演算部333に直接入力され、演算部333は、処理画素データとデータ有効信号との後段の処理モジュールへの出力を繰り返す。
 その後、タイミングt8において、後段の処理モジュールから入力されているパイプラインストール信号が、パイプラインストール状態であるため処理画素データを受け付けることができないことを表す“Low”レベルになると、バッファスルー判定部3342は、前段の処理モジュールから現在入力されているユニットラインのそれぞれの画素データの演算部333への転送が終了した後に、バッファスルー信号を“Low”レベルにする。また、バッファスルー判定部3342は、後段の処理モジュールから入力されたデータリクエスト信号の“High”レベルおよびパイプラインストール信号の“Low”レベルに応じて、前段の処理モジュールから入力された入力データを、入力バッファ331に一旦記憶するように制御する。
 これにより、タイミングt9において前段の処理モジュールから入力された入力データは、入力バッファ書き込み管理部3343から入力バッファ331に出力されたバッファライト信号に応じて、入力バッファ331に一旦記憶される。このとき、データ量管理部3341は、バッファ内データ量情報を更新する。これにより、バッファ内データ量情報=「1」となる。
 その後、タイミングt10において、後段の処理モジュールから入力されているパイプラインストール信号が、パイプラインストール状態が解消されたため処理画素データを受け付けることができることを表す“High”レベルになる。すると、バッファスルー判定部3342は、後段の処理モジュールから入力されたデータリクエスト信号およびパイプラインストール信号の“High”レベルと、バッファ内データ量情報=「1」とに応じて、前段の処理モジュールから入力された入力データを、入力バッファ331に一旦記憶してから演算部333に転送するように指示する。これにより、入力バッファ読み出し管理部3344は、前段の処理モジュールから現在入力されているユニットラインのそれぞれの画素データの入力バッファ331への一時記憶(書き込み)が終了した後に、タイミングt11において、バッファリード信号を入力バッファ331に出力する。そして、入力バッファ331から読み出しされた画素データが演算部333に順次入力され、演算部333は、入力された画素データに対して画像処理の演算を行った処理画素データとデータ有効信号とを、演算部333におけるレイテンシだけ遅れて後段の処理モジュールに出力する。
 なお、図7では、現在入力されているユニットラインのそれぞれの画素データの入力バッファ331への一時記憶(書き込み)が終了した後のタイミングt11においてバッファリード信号を出力している。これは、バッファスルー判定部3342が、入力された入力データを入力バッファ331に一旦記憶してから演算部333に転送するように指示したときには、まだ入力バッファ331に1つのユニットライン分の画素データが一時記憶されていない状態であるからである。従って、バッファスルー判定部3342が指示したときに、すでに入力バッファ331に1つ以上のユニットライン分の画素データが一時記憶されている場合には、入力バッファ読み出し管理部3344は、現在入力されているユニットラインのそれぞれの画素データの入力バッファ331への一時記憶(書き込み)の終了を待たずに、バッファリード信号を入力バッファ331に出力してもよい。
 以降、同様に、入力バッファ書き込み管理部3343による現在入力されているユニットラインのそれぞれの画素データの入力バッファ331への一時記憶(書き込み)および入力バッファ読み出し管理部3344による現在読み出しているユニットラインのそれぞれの画素データの入力バッファ331からの読み出しと、データ量管理部3341によるバッファ内データ量情報の更新とを繰り返す。これにより、演算部333は、入力バッファ331に一旦記憶してから転送された画素データに対して画像処理の演算を行った処理画素データとデータ有効信号とを後段の処理モジュールに出力する。
 その後、タイミングt12において、後段の処理モジュールから入力されているパイプラインストール信号が“Low”レベルになると、入力バッファ書き込み管理部3343による入力されたユニットラインのそれぞれの画素データの入力バッファ331への一時記憶(書き込み)のみを継続する。そして、データ量管理部3341は、バッファ内データ量情報=「2」となった後のタイミングt13において、前段の処理モジュールに出力するパイプラインストール信号を、パイプラインストール状態であるため処理画素データを受け付けることができないことを表す“Low”レベルにする。これにより、現在のユニットラインのそれぞれの画素データの入力が終了した後に、前段の処理モジュールからの入力データの出力が一旦停止する。
 その後、タイミングt14において、後段の処理モジュールから入力されているパイプラインストール信号が“High”レベルになると、バッファスルー判定部3342は、後段の処理モジュールから入力されたデータリクエスト信号およびパイプラインストール信号の“High”レベルと、バッファ内データ量情報=「2」とに応じて、前段の処理モジュールから入力された入力データを、入力バッファ331に一旦記憶してから演算部333に転送するように指示する。これにより、入力バッファ読み出し管理部3344は、バッファリード信号を入力バッファ331に出力し、演算部333は、入力バッファ331から読み出しされた画素データに対して画像処理の演算を行った処理画素データとデータ有効信号とを、演算部333におけるレイテンシだけ遅れて後段の処理モジュールに出力する。
 また、入力バッファ読み出し管理部3344によって現在読み出しているユニットラインの全ての画素データの読み出しが終了すると、タイミングt15において、データ量管理部3341が更新したバッファ内データ量情報が「1」となる。これにより、データ量管理部3341は、前段の処理モジュールに出力するパイプラインストール信号を、パイプラインストール状態が解消されたため処理画素データを受け付けることができることを表す“High”レベルにする。これにより、前段の処理モジュールは、タイミングt16において、データリクエスト信号に応じた入力データとデータ有効信号との出力を再開する。
 以降、同様に、入力バッファ書き込み管理部3343による現在入力されているユニットラインのそれぞれの画素データの入力バッファ331への一時記憶(書き込み)および入力バッファ読み出し管理部3344による現在読み出しているユニットラインのそれぞれの画素データの入力バッファ331からの読み出しと、データ量管理部3341によるバッファ内データ量情報の更新とを繰り返す。そして、演算部333は、入力バッファ331から入力された画素データに対応する処理画素データとデータ有効信号とを後段の処理モジュールへの出力を繰り返す。
 その後、画像処理モジュール33は、タイミングt17において、後段の処理モジュールに対して、全てのユニットラインに対応する処理画素データとデータ有効信号との出力が終了すると、処理を終了する。そして、画像処理部30に備えたそれぞれの処理モジュールによる処理が終了すると、画像処理部30は、パイプライン処理を終了する。
 本第1の実施形態における第1の構成によれば、メモリ(DRAM20)と、入力されたデータ(画素データまたは処理画素データ)に対して予め定めた処理を行う複数の処理モジュール(画像処理モジュール33-1~画像処理モジュール33-3)が直列に接続されたパイプラインが構成され、それぞれの処理モジュール(画像処理モジュール33)が処理を順次行うことによってパイプライン処理を行う画像処理部(画像処理部30)とがデータバス(DMAバス10)に接続された画像処理装置(画像処理装置1)であって、画像処理モジュール33のそれぞれは、画素データまたは処理画素データを処理の単位ごとに一時的に記憶するデータバッファ(入力バッファ331)と、パイプライン処理における処理画素データの流れの状態と、入力バッファ331に記憶している画素データまたは処理画素データの状態とに基づいて、画素データまたは処理画素データを入力バッファ331に記憶するか否かを判定し、判定した結果に基づいて画素データまたは処理画素データを(演算部333に)転送する画像処理モジュール33内の経路を選択すると共に、入力バッファ331の動作を制御する制御部(制御部334)と、を備える画像処理装置(画像処理装置1)が構成される。
 また、本第1の実施形態における第1の構成によれば、制御部334は、入力バッファ331が有する記憶容量に画素データまたは処理画素データが記憶されている状態で、入力バッファ331にさらに画素データまたは処理画素データを記憶することができる状態である場合、画素データまたは処理画素データを入力バッファ331に一旦記憶してから読み出して(演算部333に)転送する経路を選択すると共に、入力バッファ331を動作させ、パイプライン処理における画素データまたは処理画素データの流れが滞っている状態(パイプラインストール状態である状態)で、入力バッファ331にさらに画素データまたは処理画素データを記憶することができない状態である場合、画素データまたは処理画素データを入力バッファ331に一旦記憶してから読み出して(演算部333に)転送する経路を選択すると共に、入力バッファ331を、記憶している画素データまたは処理画素データを保持させるように動作させ、パイプライン処理における画素データまたは処理画素データの流れが滞っていない状態(パイプラインストール状態ではない状態)で、入力バッファ331が有する全ての記憶容量に画素データまたは処理画素データが記憶されていない状態である場合に、入力バッファ331に記憶せずにスルーして画素データまたは処理画素データを(演算部333に)転送する経路を選択すると共に、入力バッファ331の動作を停止させる画像処理装置1が構成される。
 また、本第1の実施形態における第1の構成によれば、制御部334は、パイプラインの構成における前段の画像処理モジュール33に、制御部334自身を備えた画像処理モジュール33の動作状態を表す状態通知信号を出力し、パイプラインの構成における後段の画像処理モジュール33から入力された状態通知信号に基づいて、パイプライン処理における画素データまたは処理画素データの流れの状態を判定する画像処理装置1が構成される。
 また、本第1の実施形態における第1の構成によれば、制御部334は、パイプラインの構成における後段の複数の画像処理モジュール33から入力された状態通知信号に基づいて、パイプライン処理における画素データまたは処理画素データの流れの状態を判定する画像処理装置1が構成される。
 また、本第1の実施形態における第1の構成によれば、状態通知信号は、前段の画像処理モジュール33が処理を行った画素データまたは処理画素データを受け付けることができるか否かを表す信号であり、前段の画像処理モジュール33が処理を行った処理画素データの出力を要求するデータリクエスト信号を含み、制御部334は、後段の画像処理モジュール33から処理画素データの出力を要求するデータリクエスト信号が入力された場合に、パイプライン処理における画素データまたは処理画素データの流れが滞っていない状態(パイプラインストール状態ではない状態)であると判定する画像処理装置1が構成される。
 また、本第1の実施形態における第1の構成によれば、制御部334は、入力バッファ331に画素データまたは処理画素データを記憶することができる状態である場合に、処理画素データの出力を要求するデータリクエスト信号を、前段の画像処理モジュール33に出力する画像処理装置1が構成される。
 また、本第1の実施形態における第1の構成によれば、画像処理モジュール33は、入力バッファ331から読み出した画素データまたは処理画素データを(演算部333に)転送する経路、および入力バッファ331をスルーして画素データまたは処理画素データを(演算部333に)転送する経路のいずれか一方の経路を、画素データまたは処理画素データを(演算部333に)転送する経路として選択するセレクタ(セレクタ332)、をさらに備え、制御部334は、入力バッファ331に記憶する画素データまたは処理画素データの量を管理し、監視した画素データまたは処理画素データの量を表すデータ量情報(バッファ内データ量情報)を出力するデータ量管理部(データ量管理部3341)と、バッファ内データ量情報とパイプライン処理における処理画素データの流れの状態とに基づいて、入力バッファ331に行わせる動作を判定し、判定した結果に基づいて、入力バッファ331への画素データまたは処理画素データの書き込みおよび入力バッファ331からの画素データまたは処理画素データの読み出しの指示信号(バッファ動作指示信号)と、画素データまたは処理画素データを(演算部333に)転送する経路を選択するための制御信号(バッファスルー信号)とを出力するバッファスルー判定部(バッファスルー判定部3342)と、入力バッファ331への画素データまたは処理画素データの書き込みのバッファ動作指示信号に応じて、入力バッファ331への画素データまたは処理画素データの書き込みを制御するための制御信号であるバッファライト信号を生成するバッファ書き込み管理部(入力バッファ書き込み管理部3343)と、入力バッファ331からの画素データまたは処理画素データの読み出しのバッファ動作指示信号に応じて、入力バッファ331からの画素データまたは処理画素データの読み出しを制御するための制御信号であるバッファリード信号を生成するバッファ読み出し管理部(入力バッファ読み出し管理部3344)と、を備え、データ量管理部3341は、入力された画素データまたは処理画素データの数と、バッファリード信号とに基づいて画素データまたは処理画素データの量を管理し、バッファスルー判定部3342は、バッファ内データ量情報が、画素データまたは処理画素データの量が0よりも大きい値であることを表している場合、入力バッファ331への画素データまたは処理画素データの書き込みおよび入力バッファ331からの画素データまたは処理画素データの読み出しを行うことを指示するバッファ動作指示信号と、画素データまたは処理画素データを入力バッファ331に一旦記憶してから読み出して(演算部333に)転送する経路を選択するバッファスルー信号とを出力し、バッファ内データ量情報が、画素データまたは処理画素データの量が0であることを表している場合、入力バッファ331への画素データまたは処理画素データの書き込みおよび入力バッファ331からの画素データまたは処理画素データの読み出しを停止することを指示するバッファ動作指示信号と、入力バッファ331をスルーして画素データまたは処理画素データを(演算部333に)転送する経路を選択するバッファスルー信号とを出力し、セレクタ332は、バッファスルー信号に応じた経路を、画素データまたは処理画素データを(演算部333に)転送する経路として選択する画像処理装置1が構成される。
 また、本第1の実施形態における第1の構成によれば、メモリ(DRAM20)と、入力されたデータ(画素データまたは処理画素データ)に対して予め定めた処理を行う複数の処理モジュール(画像処理モジュール33-1~画像処理モジュール33-3)が直列に接続されたパイプラインが構成され、それぞれの処理モジュール(画像処理モジュール33)が処理を順次行うことによってパイプライン処理を行う画像処理部(画像処理部30)とがデータバス(DMAバス10)に接続された画像処理装置(画像処理装置1)における画像処理方法であって、画像処理モジュール33のそれぞれにより実行され、パイプライン処理における処理画素データの流れの状態と、画素データまたは処理画素データを処理の単位ごとに一時的に記憶するデータバッファ(入力バッファ331)に記憶している画素データまたは処理画素データの状態とに基づいて、画素データまたは処理画素データを入力バッファ331に記憶するか否かを判定し、判定した結果に基づいて画素データまたは処理画素データを(演算部333に)転送する画像処理モジュール33内の経路を選択すると共に、入力バッファ331の動作を制御する制御ステップ、を備える画像処理方法が構成される。
 上記に述べたとおり、第1の構成の画像処理モジュール33は、入力バッファ331の記憶容量の空き状態に基づいて、パイプライン構成において前段に接続された処理モジュールに対して入力データを要求し、前段の処理モジュールから入力された入力データ(画素データ)の入力バッファ331への一時記憶(書き込み)を制御する。また、第1の構成の画像処理モジュール33は、入力バッファ331の記憶容量の空き状態と、パイプライン構成において後段に接続された処理モジュールの動作状態とに基づいて、入力バッファ331に一時記憶している画素データの読み出しと、演算部333が画像処理の演算を行う画素データの選択(切り替え)とを制御する。これにより、第1の構成の画像処理モジュール33では、後段の処理モジュールがパイプラインストール状態ではなく、入力バッファ331の記憶容量が全て空いている状態である場合に、前段の処理モジュールから入力された入力データを、入力バッファ331をスルーして演算部333に転送するように制御することができる。そして、第1の構成の画像処理モジュール33では、演算部333が、入力バッファ331をスルーして転送された前段の処理モジュールからの入力データに対して、画像処理の演算を直接行った処理画素データを、後段の処理モジュールに出力することができる。また、第1の構成の画像処理モジュール33では、前段の処理モジュールから入力された入力データを、入力バッファ331をスルーして演算部333に転送することにより、このときの入力バッファ331の動作を停止させて、入力バッファ331の消費電力を削減することができる。このことにより、第1の構成の画像処理モジュール33でパイプラインを構成した画像処理部30では、従来の処理モジュールでパイプラインを構成したときのように必ずデータバッファへのデータの書き込みとデータバッファからのデータの読み出しとを行わなくても、所望の画像処理を行うことができ、パイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。
 図4および図7を用いて説明した第1の構成の画像処理モジュール33の動作では、前段の処理モジュールから入力された入力データを、入力バッファ331に一旦記憶した後に読み出して演算部333に転送するように制御した後、再び入力バッファ331をスルーして演算部333に転送するように、積極的に制御することは行っていなかった。つまり、図4および図7に示した第1の構成の画像処理モジュール33の動作では、入力バッファ331をスルーして入力データを演算部333に転送するように制御するのは、前段の処理モジュールおよび後段の処理モジュールの動作状態に依存していた。しかし、第1の構成の画像処理モジュール33では、制御部334が、意図的に入力バッファ331をスルーして入力データを演算部333に転送する状態に制御することもできる。
 ここで、画像処理部30に備えた画像処理モジュール33が、意図的に入力バッファ331をスルーして入力データを演算部333に転送する状態に制御する動作について説明する。図8は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール33の別の動作の一例を示したタイミングチャートである。図8には、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、画像処理部30が、入力DMAモジュール32、第1の構成の画像処理モジュール33-1~画像処理モジュール33-3、および出力DMAモジュール34が直列に接続(パイプライン接続)された構成によってパイプライン処理を行う場合において、画像処理モジュール33-1から画像処理モジュール33-2への処理画素データの受け渡しの一例を示している。
 図8には、図4に示した画像処理モジュール33の動作の一例と同様に、画像処理モジュール33-1および画像処理モジュール33-2のそれぞれについて、入力データ、バッファライト、バッファリード、および出力データを示し、それぞれの画像処理モジュール33が前段の処理モジュールに出力する状態通知信号として、データリクエスト信号を示している。
 なお、図8の説明においても、図4に示した画像処理モジュール33の動作の一例と同様に、1つのユニットラインを1つの処理単位として画像処理を行うものとし、入力データ、バッファライト、バッファリード、および出力データのそれぞれに、何番目のユニットラインであるかを表す数字を示して説明する。また、図8の説明においても、図4に示した画像処理モジュール33の動作の一例と同様に、画像処理部30に備えたそれぞれの処理モジュールは、2つのユニットライン分の画素データを記憶することができる容量のデータバッファを備えているものとして説明する。そして、図8の説明においても、図4に示した画像処理モジュール33の動作の一例と同様に、それぞれの画像処理モジュール33に備えたそれぞれの構成要素を区別するため、それぞれの構成要素に付与した符号に続いて、画像処理モジュール33に付与した「-」と、それに続く数字の部分を付与して表す。
 なお、図8においても、図4に示した画像処理モジュール33の動作の一例と同様に、データリクエスト信号が“High”レベルの期間が、それぞれの画像処理モジュール33が画素データを受け付けることができる状態であるリクエスト期間を表し、データリクエスト信号が“Low”レベルの期間が、それぞれの画像処理モジュール33が画素データを受け付けることができない状態であるリクエストネゲート期間を表している。
 画像処理部30がパイプライン処理を開始すると、画像処理モジュール33-1、画像処理モジュール33-2、画像処理モジュール33-3、および出力DMAモジュール34のそれぞれは、入力データの出力を要求するデータリクエスト信号を、前段の処理モジュールに出力する。なお、図8に示した画像処理モジュール33の動作のタイミングチャートにおいて、画像処理部30がパイプライン処理を開始した最初の段階の動作は、図4に示した画像処理モジュール33の動作の一例と同様である。従って、それぞれの処理モジュールの動作に関する詳細な説明は省略する。また、図8に示した画像処理モジュール33の動作のタイミングチャートにおいて、画像処理モジュール33-2のリクエストネゲート期間が終了するまでのそれぞれの処理モジュールの動作も、図4に示した画像処理モジュール33の動作の一例と同様であるため、詳細な説明は省略する。
 続いて、画像処理モジュール33-3が処理画素データを受け付けることができる状態になり、画像処理モジュール33-2に出力しているデータリクエスト信号を“High”レベルにすることによって、処理画素データを受け付けることができる状態である(入力データの出力を要求する)ことを表した場合の動作について説明する。
 このとき、画像処理モジュール33-2は、入力バッファ331-2に3つ目と4つ目のユニットラインに対応したそれぞれの処理画素データを一時記憶している状態(空いている記憶容量がない状態)である。このため、制御部334-2は、まず、入力バッファ331-2に記憶している3つ目のユニットラインに対応した処理画素データを入力バッファ331-2から読み出して演算部333-2に出力するように、入力バッファ331-2およびセレクタ332-2を制御する。これにより、入力バッファ331-2は、記憶している3つ目のユニットラインに対応した処理画素データをセレクタ332-2に出力し、セレクタ332-2は、入力バッファ331-2から入力された3つ目のユニットラインに対応した処理画素データを演算部333-2に出力する。そして、演算部333-2は、セレクタ332-2から出力された3つ目のユニットラインに対応した処理画素データに対して画像処理の演算を行い、演算部333-2におけるレイテンシだけ遅れた処理画素データを、後段の画像処理モジュール33-3に出力する。
 これにより、入力バッファ331-2は、図4に示した画像処理モジュール33の動作の一例と同様に、3つ目のユニットラインに対応した処理画素データを出力することによって、1つのユニットライン分の記憶容量が空いている(残っている)状態になり、画像処理モジュール33-2は、画像処理モジュール33-1からの処理画素データを受け付けることができる状態になる。このとき、図4に示した画像処理モジュール33の動作の一例では、制御部334-2が、画像処理モジュール33-2が処理画素データを受け付けることができる状態になったことを表すために、画像処理モジュール33-1に出力しているデータリクエスト信号を“High”レベルにしていた。しかし、図8に示した画像処理モジュール33の動作の一例では、制御部334は、データリクエスト信号を“High”レベルにせず、“Low”レベルの状態を維持する。つまり、画像処理モジュール33-2は、画像処理モジュール33-1からの処理画素データを受け付けることができない状態を意図的に維持するために、データリクエスト信号の“High”レベルへの変更を保留する。これは、画像処理モジュール33-2が、入力バッファ331-2に一時記憶している4つ目のユニットラインに対応した処理画素データを出力することによって、入力バッファ331-2に一時記憶しているユニットラインのそれぞれの画素データを全て読み出し、入力バッファ331-2の記憶容量が全て空いている状態にするためである。
 そして、制御部334-2は、入力バッファ331-2に記憶している4つ目のユニットラインに対応した処理画素データを入力バッファ331-2から読み出して演算部333-2に出力するように、入力バッファ331-2およびセレクタ332-2を制御する。これにより、演算部333-2に、入力バッファ331-2に記憶している4つ目のユニットラインに対応した処理画素データが、セレクタ332-2を介して入力される。そして、演算部333-2は、セレクタ332-2を介して入力された4つ目のユニットラインに対応した処理画素データに対して画像処理の演算を行って生成した処理画素データを、画像処理モジュール33-3に出力する。
 入力バッファ331-2は、4つ目のユニットラインに対応した処理画素データを出力することにより、全ての記憶容量が空いている状態になる。つまり、画像処理モジュール33-2は、画像処理モジュール33-1からの処理画素データを受け付け、受け付けた処理画素データを入力バッファ331-2に一時記憶せずに演算部333-2に直接転送することができる状態になる。ここで、制御部334-2は、画像処理モジュール33-2が処理画素データを受け付けることができる状態になったことを表すために、画像処理モジュール33-1に出力しているデータリクエスト信号を“High”レベルにする。
 また、制御部334-2は、画像処理モジュール33-1から以降に入力されたユニットラインのそれぞれの処理画素データを、そのまま演算部333-2に出力するようにセレクタ332-2を制御する。さらに、制御部334-2は、入力バッファ331-2の動作を停止するように制御して、入力バッファ331-2の消費電力を削減する。
 画像処理モジュール33-1では、後段の画像処理モジュール33-2から入力されたデータリクエスト信号が“High”レベルになり、画像処理モジュール33-2が処理画素データを受け付けることができる状態になったことが通知されると、制御部334-1は、画像処理モジュール33-2に備えた制御部334-2と同様に、5つ目と6つ目のユニットラインに対応した処理画素データを画像処理モジュール33-2に出力する。より具体的には、制御部334-1が、入力バッファ331-1に記憶された5つ目と6つ目のユニットラインのそれぞれの画素データを順次読み出して演算部333-1に出力するように、入力バッファ331-2およびセレクタ332-2を制御する。これにより、演算部333-1は、セレクタ332-1を介して順次入力された5つ目と6つ目のユニットラインのそれぞれの画素データに対して画像処理の演算を行い、演算部333-1におけるレイテンシだけ遅れた処理画素データを、後段の画像処理モジュール33-2に出力する。このとき、制御部334-1も、画像処理モジュール33-2に備えた制御部334-2と同様に、5つ目のユニットラインのそれぞれの画素データの読み出した後にはデータリクエスト信号を“High”レベルにせず、6つ目のユニットラインのそれぞれの画素データの読み出しが終了した後、つまり、入力バッファ331-1の全ての記憶容量が空いている状態になったときに、データリクエスト信号を“High”レベルにする。つまり、画像処理モジュール33-1も、入力DMAモジュール32からの画素データを受け付けることができる状態になったとき、すぐに画素データを受け付けることができる状態になったことを通知するのではなく、受け付け画素データを入力バッファ331-1に一時記憶せずに演算部333-1に直接転送することができる状態になったときに、画素データを受け付けることができる状態になったことを通知する。
 また、制御部334-1は、画像処理モジュール33-2に備えた制御部334-2と同様に、入力DMAモジュール32から以降に入力されたユニットラインのそれぞれの画素データを、そのまま演算部333-1に出力するようにセレクタ332-1を制御する。さらに、制御部334-1は、画像処理モジュール33-2に備えた制御部334-2と同様に、入力バッファ331-1の動作を停止するように制御して、入力バッファ331-1の消費電力を削減する。
 入力DMAモジュール32は、後段の画像処理モジュール33-1から入力されたデータリクエスト信号によって、画像処理モジュール33-2が処理画素データを受け付けることができる状態になったことが通知されると、DRAM20に記憶されている7つ目のユニットラインから、画素データの読み出しを再開し、読み出した画素データを画像処理モジュール33-1に出力する。なお、入力DMAモジュール32が、DRAM20に記憶されている画素データの読み出しを保留する際に、7つ目と8つ目のユニットラインのそれぞれの画素データをデータバッファに記憶している場合には、データバッファに記憶している7つ目および8つ目のユニットラインのそれぞれの画素データを画像処理モジュール33-1に出力した後に、9つ目のユニットラインから、画素データの読み出しを再開してもよい。
 このようにして、画像処理部30では、パイプライン接続された後段の処理モジュールから入力されたデータリクエスト信号が、再び画素データを受け付けることができる状態に変わった場合、それぞれの処理モジュールは、後段の処理モジュールへの出力データの出力を再開する。このとき、それぞれの処理モジュールは、処理モジュール自身に備えた入力バッファ331に記憶している画素データから順次、後段の処理モジュールに出力する。そして、それぞれの処理モジュールは、処理モジュール自身に備えた入力バッファ331の記憶容量が全て空いている状態になった後に、処理モジュール自身が画素データを受け付けることができる状態になったことを通知する。そして、それぞれの処理モジュールは、入力された画素データを、処理モジュール自身に備えた入力バッファ331に一時記憶せずに後段の処理モジュールに順次出力する。また、それぞれの処理モジュールは、処理モジュール自身に備えた入力バッファ331の動作を停止するように制御して、入力バッファ331の消費電力を削減する。
 以降、上述したような動作を繰り返すことによって、画像処理部30では、パイプライン接続されたそれぞれの処理モジュールによるパイプライン処理を、それぞれのブロック画像データに含まれる画素データに対してユニットラインごとに順次行うことによって、それぞれのブロック画像データに対する一連の画像処理を行う。
 なお、図8に示した第1の構成の画像処理モジュール33の動作のタイミングチャートの一例では、それぞれの処理モジュールが、処理モジュール自身に備えた入力バッファ331の記憶容量が全て空いている状態になった後に画素データを受け付けることができる状態になったことを通知する場合について説明した。そして、図8に示した第1の構成の画像処理モジュール33の動作のタイミングチャートの一例では、それぞれの処理モジュールに入力された画素データを入力バッファ331に一時記憶せずに後段の処理モジュールに順次出力し、入力バッファ331の動作を停止して消費電力を削減する合について説明した。しかし、それぞれの処理モジュール自身に備えた入力バッファ331が、多くのユニットライン分の画素データを記憶することができる記憶容量をもっている場合、それぞれの処理モジュール自身に備えた入力バッファ331の記憶容量が全て空いている状態になってから画素データを受け付けることができる状態になったことを通知すると、パイプライン処理が完了するまでに多くの時間を要してしまうことも考えられる。従って、それぞれの処理モジュールに備えた制御部334は、入力バッファ331に一時記憶しているユニットラインの数に基づいて、入力された画素データを入力バッファ331に一旦記憶した後に読み出して演算部333に転送するように制御するか、入力された画素データを入力バッファ331に一時記憶せずにそのまま演算部333に転送するように制御するかを判定するようにしてもよい。
 より具体的には、後段の処理モジュールが画素データを受け付けることができる状態になったことを通知してきたときに、入力バッファ331が一時記憶することができるユニットライン数に基づいて予め定めたユニットライン数の閾値と、バッファ内データ量情報が表すユニットライン数と比較し、この比較結果によって入力バッファ331の動作を切り替えてもよい。例えば、入力バッファ331が10個のユニットライン分の画素データを記憶することができる記憶容量をもっており、予め定めたユニットライン数の閾値が「5」である場合を考える。この場合、後段の処理モジュールが画素データを受け付けることができる状態になったことを通知してきたときのバッファ内データ量情報が表すユニットライン数が「5」以下である場合には、以降に入力された画素データを入力バッファ331に一時記憶せずにそのまま演算部333に転送するように制御する、つまり、図8に示した画像処理モジュール33の動作の一例と同様に制御する。一方、後段の処理モジュールが画素データを受け付けることができる状態になったことを通知してきたときのバッファ内データ量情報が表すユニットライン数が「5」よりも大きい場合には、以降に入力された画素データを入力バッファ331に一旦記憶した後に読み出して演算部333に転送するように制御する、つまり、図4に示した画像処理モジュール33の動作の一例と同様に制御する。これにより、画像処理部30では、それぞれの処理モジュールに備えた入力バッファ331の消費電力の削減を優先する制御と、パイプライン処理に要する処理時間の短縮を優先する制御とを切り替えることができる。
 本第1の実施形態における第1の構成によれば、制御部(制御部334)は、データバッファ(入力バッファ331)が有する全ての記憶容量にデータが記憶されていない状態になるまで、画素データまたは処理画素データの出力を要求するデータリクエスト信号の前段の処理モジュール(画像処理モジュール33)への出力を保留し、入力バッファ331が有する全ての記憶容量に画素データまたは処理画素データが記憶されていない状態になった後に、前段の画像処理モジュール33にデータリクエスト信号を出力し、入力バッファ331をスルーして画素データまたは処理画素データを転送する経路を選択すると共に、入力バッファ331の動作を停止させる画像処理装置(画像処理装置1)が構成される。
 上記に述べたとおり、第1の構成の画像処理モジュール33は、入力バッファ331の記憶容量の空き状態に基づいて、パイプライン構成において前段に接続された処理モジュールに対して入力データを要求するタイミングを制御することによって、意図的に入力バッファ331をスルーして入力データを演算部333に転送する状態に制御する。これにより、第1の構成の画像処理モジュール33では、このときの入力バッファ331の動作を停止させて、入力バッファ331の消費電力を削減することができる。このことにより、第1の構成の画像処理モジュール33でパイプラインを構成した画像処理部30では、所望の画像処理を行うときのパイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。
 なお、第1の構成の画像処理モジュール33では、前段の処理モジュールから入力された入力データの入力バッファ331への一時記憶(書き込み)を制御する構成を示した。つまり、第1の構成の画像処理モジュール33では、画像処理の演算を行う際の入力側にデータバッファ(入力バッファ331)を備えている処理モジュールの構成を示した。しかし、パイプライン処理を行うそれぞれの処理モジュールの構成は、上述したような入力側にデータバッファを備えた構成に限定されるものではなく、画像処理の演算を行う際の出力側にデータバッファを備える構成であってもよい。
(第2の構成)
 次に、画像処理部30に備えたそれぞれの処理モジュールの第2の構成について説明する。図9は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュールの概略構成を示したブロック図である。図9には、出力側にデータバッファを備えた第2の構成の画像処理モジュール(以下、「画像処理モジュール43」という)における基本的な構成を示している。図9に示した第2の構成の画像処理モジュール43は、演算部433と、出力バッファ431と、セレクタ432と、制御部434と、を備えている。画像処理モジュール43も、第1の構成の画像処理モジュール33と同様に、画像処理部30においてパイプライン処理を行う構成要素である。
 演算部433は、第1の構成の画像処理モジュール33に備えた演算部333と同様に、入力された画素データに対して予め定めた種々のデジタル的な画像処理の演算を行う。演算部433は、画像処理の演算を行って生成した処理画素データを、出力データとして出力バッファ431およびセレクタ432に出力する。
 出力バッファ431は、演算部433から入力された処理画素データを、一時的に記憶するデータバッファである。出力バッファ431は、第1の構成の画像処理モジュール33に備えた入力バッファ331と同様に、例えば、SRAMなどのメモリで構成される。出力バッファ431は、演算部433から入力された予め定めた数のユニットライン分の処理画素データを、出力データとして記憶することができる記憶容量をもっている。出力バッファ431は、制御部434から入力された制御信号に応じて、入力された処理画素データを一時記憶する。
 なお、出力バッファ431も、第1の構成の画像処理モジュール33に備えた入力バッファ331と同様に、演算部433から入力された予め定めた数のユニットライン分の処理画素データ(出力データ)を記憶する記憶容量の組を2つ備え、一方の記憶容量の組への処理画素データの書き込みと、他方の記憶容量の組からの処理画素データの読み出しとを交互に切り替える、いわゆる、ダブルバッファで構成されていてもよい。
 セレクタ432は、出力データとして画像処理モジュール43の外部に出力する処理画素データを選択する選択部である。セレクタ432は、第1の構成の画像処理モジュール33に備えたセレクタ332と同様の構成である。セレクタ432は、制御部434から入力された制御信号に応じて、出力バッファ431に一時記憶された出力データ(処理画素データ)、および演算部433から現在出力されている出力データ(処理画素データ)のいずれか一方の出力データ(処理画素データ)を、画像処理モジュール43の外部に出力する。つまり、セレクタ432は、演算部433から出力されて出力バッファ431に一時記憶された処理画素データ、または演算部433から現在出力されているそのままの処理画素データのいずれか一方の処理画素データを、接続切り替え部31を介して他の画像処理モジュール43または出力DMAモジュール34に出力する。
 制御部434は、第1の構成の画像処理モジュール33に備えた制御部334と同様に、画像処理モジュール43の動作状態の通知と、画像処理モジュール43に備えたそれぞれの構成要素の制御とを行う。制御部434は、画像処理モジュール43の動作状態を表す状態通知信号を、前段の処理モジュールに出力する。また、制御部434は、出力バッファ431に空いている記憶容量があるか否かによって、出力バッファ431の動作を制御する。
 より具体的には、出力バッファ431に空いている記憶容量がある場合、出力バッファ431は、演算部433から出力された処理画素データを一時記憶することができる状態である。この場合、制御部434は、前段の処理モジュールからの入力データを受け付けることができる状態であることを表す状態通知信号として、画素データの出力を要求する信号(データリクエスト信号)を、前段の処理モジュールに出力する。そして、制御部434は、出力した画素データの出力を要求する状態通知信号に応じて前段の処理モジュールから入力された入力データに対して演算部433が画像処理の演算を行って生成した処理画素データを一時記憶する(書き込む)ように、出力バッファ431を制御する。
 また、出力バッファ431に空いている記憶容量がない場合、出力バッファ431は、演算部433から出力された処理画素データを一時記憶することができない状態である。この場合、制御部434は、前段の処理モジュールからの入力データを受け付けることができない状態であることを表す状態通知信号として、画素データの出力を要求しないことを表す信号(画素データの出力を要求しないことを表す論理レベルのデータリクエスト信号)を、前段の処理モジュールに出力する。なお、このときの状態通知信号は、第1の構成の画像処理モジュール33に備えた制御部334と同様に、パイプラインストール信号であってもよい。
 また、制御部434は、出力バッファ431に一時記憶されている処理画素データの読み出しの動作と、セレクタ432が画像処理モジュール43の外部に出力する処理画素データ(出力データ)の選択(切り替え)とを制御する。制御部434における出力バッファ431からの処理画素データの読み出し動作の制御やセレクタ432の切り替えの制御は、第1の構成の画像処理モジュール33に備えた制御部334と同様に、出力バッファ431に空いている記憶容量があるか否かの判定結果、および後段の処理モジュールから入力された状態通知信号に基づいて行う。なお、後段の処理モジュールから入力される状態通知信号は、セレクタ432によって選択して出力した処理画素データの出力先である後段の処理モジュールに備えた制御部434が出力する状態通知信号であり、上述したように、後段の処理モジュールが処理画素データを受け付けることができる状態であるか否かを表す信号、つまり、処理画素データの出力を要求するか否かを表す信号などが含まれている。
 そして、制御部434は、後段の処理モジュールから入力された状態通知信号が、処理画素データを受け付けることができる状態であることを表している場合、出力バッファ431の記憶容量が空いているか否かによってセレクタ432を制御し、出力バッファ431に一時記憶された処理画素データ、または演算部433から現在出力されている処理画素データのいずれか一方の処理画素データを、出力データとして画像処理モジュール43の外部に出力させる。つまり、制御部434も、第1の構成の画像処理モジュール33に備えた制御部334と同様に、処理画素データの流れが滞らずにパイプライン処理がスムーズに行われているか否かによって、出力バッファ431の動作の制御やセレクタ432の切り替えの制御を行う。
 より具体的には、出力バッファ431の記憶容量が全て空いていない場合、出力バッファ431には、少なくとも1つのユニットライン分の処理画素データが一時記憶されている状態である。この場合、制御部434は、一時記憶された処理画素データを読み出すように出力バッファ431を制御すると共に、出力バッファ431から出力された処理画素データを外部に出力するようにセレクタ432を制御する。これにより、セレクタ432は、出力バッファ431に一時記憶された後に読み出された処理画素データを、後段の画像処理モジュール43に出力する。このとき、制御部434は、出力した画素データの出力を要求する状態通知信号に応じた入力データが前段の処理モジュールから入力された場合には、入力された入力データに対して演算部433が画像処理の演算を行って生成した処理画素データを空いている記憶容量に一時記憶する(書き込む)ように、出力バッファ431を制御する。
 また、出力バッファ431の記憶容量が全て空いている場合、出力バッファ431には、1つのユニットライン分の処理画素データも一時記憶されていない状態である。この場合、制御部434は、動作を停止するように出力バッファ431を制御する。これにより、画像処理モジュール43では、出力バッファ431の消費電力を削減することができる。そして、制御部434は、演算部433から現在出力されている処理画素データをそのまま、つまり、現在入力されている画素データに対して演算部433が画像処理の演算を行って生成した処理画素データを出力バッファ431に一時記憶せずに直接、外部に出力するようにセレクタ432を制御する。これにより、演算部433は、画像処理モジュール43に現在入力されている入力データ(画素データ)に対して画像処理の演算を行って生成した処理画素データを、後段の画像処理モジュール43に出力する。
 一方、制御部434は、後段の処理モジュールから入力された状態通知信号が、処理画素データを受け付けることができない状態であることを表しており、かつ、出力バッファ431の記憶容量が空いている場合、制御部434は、画像処理モジュール43に入力された入力データに対して演算部433が画像処理の演算を行って生成した処理画素データを空いている記憶容量に一時記憶する(書き込む)ように、出力バッファ431を制御する。
 なお、後段の処理モジュールから入力された状態通知信号が、処理画素データを受け付けることができない状態であることを表しており、かつ、出力バッファ431の記憶容量が空いていない場合は、制御部434は、入力データを受け付けることができない状態であることを表す状態通知信号を前段の処理モジュールに出力しているため、前段の処理モジュールからは入力データが入力されない。このため、制御部434は、出力バッファ431の動作を制御しない。
 このような構成によって画像処理部30に備えたそれぞれの第2の構成の処理モジュールは、出力バッファ431の記憶容量の空き状態に基づいて、前段の処理モジュールからの入力データの受け付けと、外部に出力する処理画素データの選択(切り替え)とを行う。
 次に、画像処理部30に備えたそれぞれの第2の構成の処理モジュールの動作について説明する。図10は、本発明の第1の実施形態の画像処理装置1に備えた画像処理部30における画像処理モジュール43の動作の一例を示したタイミングチャートである。図10には、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、画像処理部30が、入力DMAモジュール32、第2の構成の画像処理モジュール43-1~画像処理モジュール43-3、および出力DMAモジュール34が直列に接続(パイプライン接続)された構成によってパイプライン処理を行う場合において、画像処理モジュール43-1から画像処理モジュール43-2への処理画素データの受け渡しの一例を示している。
 図10には、画像処理モジュール43-1および画像処理モジュール43-2のそれぞれについて、入力される入力データ、演算部433が画像処理の演算を行って出力する処理画素データ、出力バッファ431への処理画素データの書き込みを表すバッファライト、出力バッファ431からの処理画素データの読み出しを表すバッファリード、および出力する出力データを示している。また、図10には、画像処理モジュール43-1および画像処理モジュール43-2のそれぞれが前段の処理モジュールに出力する状態通知信号として、入力データの出力を要求するデータリクエスト信号を示している。なお、図10には、画像処理モジュール43-2の後段に接続された画像処理モジュール43-3が状態通知信号として出力するデータリクエスト信号も示している。
 なお、図10の説明においても、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、1つのユニットラインを1つの処理単位として画像処理を行うものとし、入力データ、処理画素データ、バッファライト、バッファリード、および出力データのそれぞれに、何番目のユニットラインであるかを表す数字を示して説明する。また、図10の説明においても、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、画像処理部30に備えたそれぞれの処理モジュールは、2つのユニットライン分の画素データを記憶することができる容量のデータバッファを備えているものとして説明する。そして、図10の説明においても、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、それぞれの画像処理モジュール43に備えたそれぞれの構成要素を区別するため、それぞれの構成要素に付与した符号に続いて、画像処理モジュール43に付与した「-」と、それに続く数字の部分を付与して表す。例えば、画像処理モジュール43-1に備えた制御部434を「制御部434-1」とし、画像処理モジュール43-2に備えた制御部434を「制御部434-2」として表す。
 画像処理部30がパイプライン処理を開始すると、画像処理モジュール43-1、画像処理モジュール43-2、画像処理モジュール43-3、および出力DMAモジュール34のそれぞれは、入力データの出力を要求するデータリクエスト信号を、前段の処理モジュールに出力する。これは、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、画像処理部30がパイプライン処理を開始した最初の段階では、それぞれの画像処理モジュール43に備えた出力バッファ431の記憶容量は全て空いているため、処理画素データを一時記憶することができる状態であり、入力データを受け付けることができる状態であるからである。すなわち、画像処理モジュール43-1に備えた演算部433-1、および画像処理モジュール43-2に備えた演算部433-2は、入力された画素データに対する画像処理をすぐに行うことができる状態であるからである。また、画像処理部30がパイプライン処理を開始した最初の段階では、出力DMAモジュール34も、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、入力された入力データ(処理画素データ)を、すぐにDMAバス10を介してDRAM20に出力することができる状態である。
 なお、図10においても、図4に示した第1の構成の画像処理モジュール33の動作の一例と同様に、データリクエスト信号が“High”レベルの期間が、それぞれの処理モジュールが画素データを受け付けることができる状態であるリクエスト期間を表し、データリクエスト信号が“Low”レベルの期間が、それぞれの処理モジュールが画素データを受け付けることができない状態であるリクエストネゲート期間を表している。
 入力DMAモジュール32は、後段の画像処理モジュール43-1からデータリクエスト信号が入力されると、まず、DRAM20に記憶されている1つ目のユニットラインのそれぞれの画素データを、DMAバス10を介してユニットラインごとに順次読み出す。そして、入力DMAモジュール32は、読み出した画素データを画像処理モジュール43-1に出力する。このとき、入力DMAモジュール32の後段に接続された画像処理モジュール43-1は、“High”レベルのデータリクエスト信号を出力することによって、画素データを受け付けることができる状態であることを示している。このため、入力DMAモジュール32は、読み出した画素データをデータバッファに一時記憶せずに、そのまま画像処理モジュール43-1に出力する。このとき、入力DMAモジュール32では、データバッファの動作を停止して、データバッファの消費電力を削減する。その後、入力DMAモジュール32は、DRAM20に記憶されている2つ目のユニットラインのそれぞれの画素データを読み出して、画像処理モジュール43-1への出力を開始する。
 また、画像処理モジュール43-1は、後段の画像処理モジュール43-2からデータリクエスト信号が入力されると、入力DMAモジュール32から入力された1つ目のユニットラインのそれぞれの画素データに対して画像処理を行う。このとき、画像処理モジュール43-1は、上述したように、出力バッファ431-1の記憶容量が全て空いている状態であり、演算部433-1が入力された画素データに対する画像処理をすぐに行うことができる状態である。また、このとき、画像処理モジュール43-1の後段に接続された画像処理モジュール43-2は、“High”レベルのデータリクエスト信号を出力することによって、処理画素データを受け付けることができる状態であることを示している。このため、制御部434-1は、前段の入力DMAモジュール32から現在入力されている1つ目のユニットラインのそれぞれの画素データに対して演算部433-1が画像処理の演算を行って生成した処理画素データを、そのまま出力データとして外部に出力するようにセレクタ432-1を制御する。また、制御部434-1は、出力バッファ431-1の動作を停止するように制御して、出力バッファ431-1の消費電力を削減する。これにより、セレクタ432-1は、演算部433-1から出力された処理画素データをそのまま、出力データとして後段の画像処理モジュール43-2に出力する。なお、画像処理モジュール43-1から出力される出力データ(処理画素データ)は、演算部433-1が画像処理の演算を行うことによって発生する遅延時間(レイテンシ)だけ遅れて出力される。その後、画像処理モジュール43-1は、入力DMAモジュール32から入力された2つ目のユニットラインのそれぞれの画素データに対する画像処理を開始する。
 また、画像処理モジュール43-2は、後段の画像処理モジュール43-3からデータリクエスト信号が入力されると、画像処理モジュール43-1から入力された1つ目のユニットラインに対応した処理画素データに対して画像処理を行う。このとき、画像処理モジュール43-2も、上述したように、出力バッファ431-2の記憶容量が全て空いている状態であり、演算部433-2が入力された処理画素データに対する画像処理をすぐに行うことができる状態である。また、このとき、画像処理モジュール43-2の後段に接続された画像処理モジュール43-3も、“High”レベルのデータリクエスト信号を出力することによって、処理画素データを受け付けることができる状態であることを示している。このため、制御部434-2も、前段の画像処理モジュール43-1から現在入力されている1つ目のユニットラインに対応する処理画素データに対して演算部433-2が画像処理の演算を行って生成した処理画素データを、そのまま出力データとして外部に出力するようにセレクタ432-2を制御する。また、制御部434-2は、出力バッファ431-2の動作を停止するように制御して、出力バッファ431-2の消費電力を削減する。これにより、セレクタ432-2は、演算部433-2におけるレイテンシだけ遅れて演算部433-2から出力された処理画素データをそのまま、出力データとして後段の画像処理モジュール43-3に出力する。その後、画像処理モジュール43-2も、画像処理モジュール43-1から入力された2つ目のユニットラインに対応する処理画素データに対する画像処理を開始する。
 このようにして、画像処理部30では、それぞれの第2の構成の処理モジュールが、パイプライン接続された後段の処理モジュールに、入力された入力データを順次受け渡す。このとき、それぞれの第2の構成の処理モジュールは、処理モジュール自身に備えた出力バッファ431の記憶容量が全て空いている状態で、かつ、後段の処理モジュールが入力データを受け付けることができる状態であるため、前段の処理モジュールから入力された入力データをそのまま、または入力データに対する画像処理の演算をすぐに行って、出力バッファ431に一時記憶せずに後段の処理モジュールに出力する。図10には、画像処理モジュール43-1と画像処理モジュール43-2とのそれぞれのバッファライトおよびバッファリードに、入力データを出力バッファ431に一時記憶しない期間、すなわち、出力バッファ431を介さずに処理画素データを外部に出力する期間を、バッファスルーの期間として示している。
 そして、画像処理部30では、それぞれの第2の構成の処理モジュールが、処理モジュール自身に備えたデータバッファ(出力バッファ431)の動作を停止するように制御する。つまり、画像処理部30では、それぞれの処理モジュールにおけるバッファスルーの期間のデータバッファ(出力バッファ431)の動作を停止する。これにより、画像処理部30では、それぞれの処理モジュールに備えたデータバッファ(出力バッファ431)の消費電力を削減することができる。
 ここで、画像処理モジュール43-2が2つ目のユニットラインに対応した処理画素データを出力しているときに、後段の画像処理モジュール43-3が何らかの要因によって処理画素データを受け付けることができない状態になった場合の動作について説明する。この場合、画像処理モジュール43-3は、画像処理モジュール43-2に出力しているデータリクエスト信号を“Low”レベルにすることによって、処理画素データを受け付けることができない状態である、つまり、入力データの出力を要求しないことを表す。なお、それぞれの第2の構成の処理モジュールが、入力データの出力を要求しないことを前段の処理モジュールに伝える方法は、上述したように、データリクエスト信号の論理レベルによる方法に限定されるものではなく、パイプラインストール信号を出力することによって、画素データを受け付けることができない状態であることを通知する方法であってもよい。
 このとき、画像処理モジュール43-2は、出力バッファ431-2の記憶容量が全て空いている状態(2つのユニットライン分の記憶容量が空いている状態)であるため、制御部434-2は、前段の画像処理モジュール43-1から現在入力されている3つ目のユニットラインに対応した処理画素データに対して演算部433-2が画像処理の演算を行った処理画素データを一時記憶するように、出力バッファ431-2を制御する。これにより、出力バッファ431-2は、3つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データを記憶し、1つのユニットライン分の記憶容量が空いている(残っている)状態になる。
 さらに、画像処理モジュール43-2では、制御部434-2が、前段の画像処理モジュール43-1から現在入力されている4つ目のユニットラインに対応した処理画素データに対して演算部433-2が画像処理の演算を行った処理画素データを一時記憶するように、出力バッファ431-2を制御する。これにより、出力バッファ431-2は、4つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データも記憶し、空いている記憶容量がない状態になる。つまり、画像処理モジュール43-2は、画像処理モジュール43-1からの処理画素データを受け付けることができない状態になる。このため、制御部434-2は、画像処理モジュール43-2が処理画素データを受け付けることができない状態になったことを表すために、画像処理モジュール43-1に出力しているデータリクエスト信号を“Low”レベルにする。
 これにより、画像処理モジュール43-1では、制御部434-1が、画像処理モジュール43-2に備えた制御部434-2と同様に、入力DMAモジュール32から入力された5つ目と6つ目のユニットラインのそれぞれの画素データに対して演算部433-1が画像処理の演算を行った処理画素データを一時記憶するように、出力バッファ431-1を制御する。これにより、出力バッファ431-1は、5つ目と6つ目のユニットラインのそれぞれの画素データに対して画像処理の演算を行った処理画素データを記憶し、画像処理モジュール43-1は、入力DMAモジュール32からの画素データを受け付けることができない状態になる。このため、制御部434-1も、制御部434-2と同様に、画像処理モジュール43-1が画素データを受け付けることができない状態になったことを表すために、入力DMAモジュール32に出力しているデータリクエスト信号を“Low”レベルにする。
 これにより、入力DMAモジュール32は、DRAM20に記憶されている7つ目のユニットラインのそれぞれの画素データの読み出しを保留する。なお、入力DMAモジュール32にも、2つのユニットライン分の画素データを記憶することができる容量のデータバッファを備えているため、7つ目と8つ目のユニットラインのそれぞれの画素データを読み出して、データバッファに一旦記憶してから、9つ目のユニットラインのそれぞれの画素データの読み出しを保留してもよい。
 このようにして、画像処理部30では、パイプライン接続された後段の処理モジュールから入力されたデータリクエスト信号が、画素データを受け付けることができない状態であることを表している場合、それぞれの処理モジュールは、後段の処理モジュールへの出力データの出力を停止する。そして、それぞれの処理モジュールは、処理モジュール自身に備えた出力バッファ431の記憶容量が空いている分の処理画素データを一時記憶した後に、処理モジュール自身が画素データを受け付けることができない状態になったことを通知する。
 なお、画像処理部30でも、それぞれの第2の構成の処理モジュールが、処理単位ごとに処理を行っている。従って、画像処理部30では、それぞれの処理モジュールが1つの処理単位の画素データを後段の処理モジュールに出力している途中で画素データを受け付けることができない状態であることが通知された場合でも、現在出力している処理単位の全ての画素データを出力した後に、後段の処理モジュールへの出力データの出力を停止する。
 続いて、画像処理モジュール43-3が処理画素データを受け付けることができる状態になった場合の動作について説明する。この場合、画像処理モジュール43-3は、画像処理モジュール43-2に出力しているデータリクエスト信号を“High”レベルにすることによって、処理画素データを受け付けることができる状態である、つまり、入力データの出力を要求することを表す。なお、それぞれの第2の構成の処理モジュールが、再び入力データの出力を要求することを前段の処理モジュールに伝える方法は、上述したように、データリクエスト信号の論理レベルによる方法に限定されるものではなく、パイプラインストール信号の出力を停止することによって、画素データを受け付けることができる状態であることを通知する方法であってもよい。
 このとき、画像処理モジュール43-2は、出力バッファ431-2に空いている記憶容量がない状態(3つ目と4つ目のユニットラインに対応したそれぞれの処理画素データに対して演算部433-2が画像処理の演算を行って生成した処理画素データを一時記憶している状態)である。このため、制御部434-2は、まず、出力バッファ431-2に記憶している3つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データを出力バッファ431-2から読み出して外部に出力するように、出力バッファ431-2およびセレクタ432-2を制御する。これにより、出力バッファ431-2は、記憶している3つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データをセレクタ432-2に出力し、セレクタ432-2は、出力バッファ431-2から入力された3つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データを出力データとして外部に出力する。なお、画像処理モジュール43-2が出力バッファ431-2に記憶している処理画素データは、すでに演算部433-2によって画像処理の演算が行われた処理画素データであるため、演算部433-2におけるレイテンシだけ遅れることなく、後段の画像処理モジュール43-3に出力することができる。
 また、出力バッファ431-2は、3つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データを出力することにより、1つのユニットライン分の記憶容量が空いている(残っている)状態になる。つまり、画像処理モジュール43-2は、画像処理モジュール43-1からの処理画素データを受け付けることができる状態になる。このため、制御部434-2は、画像処理モジュール43-2が処理画素データを受け付けることができる状態になったことを表すために、画像処理モジュール43-1に出力しているデータリクエスト信号を“High”レベルにする。
 さらに、画像処理モジュール43-2では、出力バッファ431-2に空いている記憶容量があるが、4つ目のユニットラインに対応した処理画素データを一時記憶している状態である。このため、制御部434-2は、出力バッファ431-2に記憶している4つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データを出力バッファ431-2から読み出して外部に出力するように、出力バッファ431-2およびセレクタ432-2を制御する。これにより、出力バッファ431-2は、記憶している4つ目のユニットラインに対応した処理画素データに対してさらに画像処理の演算を行った処理画素データを、出力データとして画像処理モジュール43-3に出力する。
 また、画像処理モジュール43-1では、後段の画像処理モジュール43-2から入力されたデータリクエスト信号が“High”レベルになり、画像処理モジュール43-2が処理画素データを受け付けることができる状態になったことが通知されると、制御部434-1は、画像処理モジュール43-2に備えた制御部434-2と同様に、5つ目と6つ目のユニットラインに対応した処理画素データを画像処理モジュール43-2に出力する。より具体的には、制御部434-1が、出力バッファ431-1に記憶された5つ目と6つ目のユニットラインのそれぞれの画素データに対して画像処理の演算を行った処理画素データを順次読み出して外部に出力するように、出力バッファ431-2およびセレクタ432-2を制御する。これにより、出力バッファ431-1は、記憶している5つ目と6つ目のユニットラインのそれぞれの画素データに対して画像処理の演算を行った処理画素データを出力データとして後段の画像処理モジュール43-2に出力する。なお、画像処理モジュール43-1が出力バッファ431-1に記憶している処理画素データも、すでに演算部433-1によって画像処理の演算が行われた処理画素データであるため、演算部433-1におけるレイテンシだけ遅れることなく、後段の画像処理モジュール43-2に出力することができる。
 また、出力バッファ431-1は、5つ目のユニットラインのそれぞれの画素データに対して画像処理の演算を行った処理画素データを出力したときに、1つのユニットライン分の記憶容量が空いている(残っている)状態になり、画像処理モジュール43-1が入力DMAモジュール32からの画素データを受け付けることができる状態になる。このため、制御部434-1は、制御部434-2と同様に、画像処理モジュール43-1が画素データを受け付けることができる状態になったことを表すために、入力DMAモジュール32に出力しているデータリクエスト信号を“High”レベルにする。
 これにより、入力DMAモジュール32は、DRAM20に記憶されている7つ目のユニットラインから、画素データの読み出しを再開し、読み出した画素データを画像処理モジュール43-1に出力する。なお、入力DMAモジュール32が、DRAM20に記憶されている画素データの読み出しを保留する際に、7つ目と8つ目のユニットラインのそれぞれの画素データをデータバッファに記憶している場合には、データバッファに記憶している7つ目のユニットラインのそれぞれの画素データを画像処理モジュール43-1に出力した後に、9つ目のユニットラインから、画素データの読み出しを再開してもよい。
 このようにして、画像処理部30では、パイプライン接続された後段の処理モジュールから入力されたデータリクエスト信号が、再び画素データを受け付けることができる状態に変わった場合、それぞれの第2の構成の処理モジュールは、後段の処理モジュールへの出力データの出力を再開する。このとき、それぞれの第2の構成の処理モジュールは、処理モジュール自身に備えた出力バッファ431に記憶している画素データから順次、後段の処理モジュールに出力する。そして、それぞれの第2の構成の処理モジュールは、処理モジュール自身に備えた出力バッファ431の記憶容量が空いている状態になった後に、処理モジュール自身が画素データを受け付けることができる状態になったことを通知する。その後、それぞれの第2の構成の処理モジュールは、処理モジュール自身に備えた演算部433が入力された画素データに対して画像処理の演算を行って生成した処理画素データを、処理モジュール自身に備えた出力バッファ431に一旦記憶してから読み出して、後段の処理モジュールに順次出力する。
 以降、上述したような動作を繰り返すことによって、画像処理部30では、パイプライン接続されたそれぞれの第2の構成の処理モジュールによるパイプライン処理を、それぞれのブロック画像データに含まれる画素データに対してユニットラインごとに順次を行うことによって、それぞれのブロック画像データに対する一連の画像処理を行う。
 なお、図10に示した画像処理モジュール43の動作のタイミングチャートの一例には示していないが、画像処理部30は、それぞれの第2の構成の処理モジュールによる後段の処理モジュールへの出力データの出力を再開した後、再び出力バッファ431を介さずに入力データに対して画像処理の演算を行って生成した処理画素データを後段の処理モジュールにそのまま出力することができる状態になった場合には、図10に示したパイプライン処理を開始した最初の段階と同様に、出力バッファ431の動作を停止するように制御する。これにより、画像処理部30では、それぞれの第2の構成の処理モジュールに備えた出力バッファ431の消費電力を削減することができる。
 上記に述べたとおり、第2の構成の画像処理モジュール43は、出力バッファ431の記憶容量の空き状態に基づいて、パイプライン構成において前段に接続された処理モジュールに対して入力データを要求し、前段の処理モジュールから入力された入力データ(画素データ)に対して画像処理の演算を行った後の処理画素データの出力バッファ431への一時記憶(書き込み)を制御する。また、第2の構成の画像処理モジュール43は、出力バッファ431の記憶容量の空き状態と、パイプライン構成において後段に接続された処理モジュールの動作状態とに基づいて、出力バッファ431に一時記憶している処理画素データの読み出し、後段の処理モジュールに出力する処理画素データの選択(切り替え)を制御する。これにより、第2の構成の画像処理モジュール43では、後段の処理モジュールがパイプラインストール状態ではなく、出力バッファ431の記憶容量が全て空いている状態である場合に、前段の処理モジュールから入力された入力データに対して演算部433が画像処理の演算を行った後の処理画素データを、出力バッファ431をスルーして後段の処理モジュールに出力するように制御することができる。また、第2の構成の画像処理モジュール43では、前段の処理モジュールから入力された入力データに対して演算部433が画像処理の演算を行った後の処理画素データを、出力バッファ431をスルーして後段の処理モジュールに出力することにより、このときの出力バッファ431の動作を停止させて、出力バッファ431の消費電力を削減することができる。このことにより、第2の構成の画像処理モジュール43でパイプラインを構成した画像処理部30でも、従来の処理モジュールでパイプラインを構成したときのように必ずデータバッファへのデータの書き込みとデータバッファからのデータの読み出しとを行わなくても、所望の画像処理を行うことができ、パイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。
 なお、画像処理モジュール43に備えた制御部434の構成、判定処理、および動作は、図5~図7に示した第1の構成の画像処理モジュール33の構成、判定処理、および動作と同様に考えることができる。従って、画像処理モジュール43に備えた制御部434の構成、判定処理、および動作に関する詳細な説明は省略する。ただし、第2の構成の画像処理モジュール43は、前段の処理モジュールから入力された入力データに対して、まず、演算部433が画像処理の演算を行う構成である。このため、第2の構成の画像処理モジュール43では、演算部433が入力データに対して画像処理の演算を行うタイミングと、制御部434がバッファ内データ量情報を更新するタイミングと、制御部434が出力バッファ431に処理画素データを書き込むためのバッファライト信号のタイミングと、画像処理モジュール43が後段の処理モジュールに出力するデータ有効信号のタイミングとが、第1の構成の画像処理モジュール33と異なる。
 より具体的には、演算部433は、前段の処理モジュールから入力されたデータ有効信号が、ユニットラインに含まれるそれぞれの画素データが有効な画素データであることを表している画素データに対して画像処理の演算を行う。また、第1の構成の画像処理モジュール33の制御部334に備えたデータ量管理部3341に対応する、制御部434に備えたデータ量管理部は、バッファ内データ量情報が表すユニットライン数を1ずつ加算して更新する際に、演算部433から出力されたデータ有効信号を、第1の構成の画像処理モジュール33において前段の処理モジュールから入力されたデータ有効信号であるものとしてバッファ内データ量情報を更新する。また、第1の構成の画像処理モジュール33の制御部334に備えた入力バッファ書き込み管理部3343に対応する、制御部434に備えた出力バッファ書き込み管理部は、演算部433から出力されたデータ有効信号が有効であることを表している処理画素データに基づいて、出力バッファ431に処理画素データを書き込むためのバッファライト信号を生成し、出力バッファ431に出力する。また、セレクタ432は、選択した(切り替えた)処理画素データに対応するデータ有効信号を出力するように、外部に出力するデータ有効信号も選択する(切り替える)。つまり、セレクタ432は、演算部433が画像処理の演算を行った処理画素データを外部に出力する際には、演算部433から出力されたデータ有効信号を出力し、出力バッファ431-1に記憶された処理画素データを外部に出力する際には、出力バッファ431から処理画素データを読み出すタイミングに応じたデータ有効信号を出力するように、外部に出力するデータ有効信号を選択する(切り替える)。なお、出力バッファ431から処理画素データを読み出すタイミングに応じたデータ有効信号は、第1の構成の画像処理モジュール33の制御部334に備えた入力バッファ読み出し管理部3344に対応する、制御部434に備えた出力バッファ読み出し管理部が生成してセレクタ432に出力してもよいし、セレクタ432が、制御部434から出力バッファ431に出力されたバッファリード信号に基づいて生成してもよい。
 なお、図10を用いて説明した第2の構成の画像処理モジュール43の動作では、前段の処理モジュールから入力された入力データに対して画像処理の演算を行った処理画素データを、出力バッファ431に一旦記憶した後に読み出して後段の処理モジュールに出力するように制御した後、再び出力バッファ431をスルーして演算部433が生成した処理画素データを外部に出力するように、積極的に制御することは行っていなかった。つまり、図10に示した第2の構成の画像処理モジュール43の動作でも、図4および図7に示した第1の構成の画像処理モジュール33の動作と同様に、演算部433が画像処理の演算を行って生成した処理画素データを、出力バッファ431をスルーして外部に出力するように制御するのは、前段の処理モジュールおよび後段の処理モジュールの動作状態に依存していた。しかし、第2の構成の画像処理モジュール43でも、第1の構成の画像処理モジュール33と同様に、制御部434が、意図的に出力バッファ431をスルーして演算部433が画像処理の演算を行って生成した処理画素データを外部に出力する状態に制御することもできる。このときの動作は、図8に示した第1の構成の画像処理モジュール33の動作と同様に考えることができる。従って、画像処理モジュール43が、意図的に出力バッファ431をスルーして演算部433が画像処理の演算を行って生成した処理画素データを外部に出力する状態に制御する動作に関する詳細な説明は省略する。
 上記に述べたとおり、第1の実施形態の画像処理装置1では、画像処理部30に備えられたパイプラインを構成するそれぞれの処理モジュールが、それぞれの処理モジュールに備えたデータバッファの記憶容量の空き状態に基づいて、前段に接続された処理モジュールに対して入力データを要求し、データバッファへのデータの一時記憶(書き込み)を制御する。また、第1の実施形態の画像処理装置1では、画像処理部30に備えられたそれぞれの処理モジュールが、それぞれの処理モジュールに備えたデータバッファの記憶容量の空き状態と、後段に接続された処理モジュールの動作状態とに基づいて、データバッファに一時記憶しているデータの読み出しと、外部に出力する出力データの選択(切り替え)とを制御する。このとき、それぞれの処理モジュールでは、後段の処理モジュールがパイプラインストール状態ではなく、データバッファの記憶容量が全て空いている状態である場合に、データバッファをスルーするように制御し、データバッファの動作を停止させる。これにより、それぞれの処理モジュールでは、データバッファの消費電力を削減することができる。このとき、画像処理部30では、データバッファをスルーするように制御した処理モジュールと、その後段の処理モジュールとが1つの処理モジュールであるのと同様に見なすことができる。一方、それぞれの処理モジュールでは、後段の処理モジュールがパイプラインストール状態である場合には、データバッファをスルーしないように制御する。これにより、それぞれの処理モジュール自身がパイプラインストール状態となるのを防止することができる。このことにより、第1の実施形態の画像処理装置1では、画像処理部30に備えられたそれぞれの処理モジュールによるパイプライン処理によって、所望の画像処理を行うときのパイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。
 なお、第1の実施形態の画像処理装置1では、画像処理部30に備えられたパイプラインを構成するそれぞれの処理モジュールが、パイプライン構成における直後の処理モジュールの動作状態に基づいて、それぞれの処理モジュールに備えたデータバッファをスルーするか否かを判定する構成について説明した。しかし、それぞれの処理モジュールにおけるデータバッファをスルーするか否かは、第1の実施形態に示した直後の処理モジュールの動作状態によって判定する構成に限定されるものではない。例えば、それぞれの処理モジュールが、パイプライン構成における複数の後段の処理モジュール、または後段の全ての処理モジュールの動作状態に基づいて、それぞれの処理モジュールに備えたデータバッファをスルーするか否かを判定する構成であってもよい。より具体的には、複数の後段の処理モジュールから出力されたパイプラインストール信号を論理積(AND)した結果に基づいてデータバッファをスルーするか否かを判定する構成であってもよい。この場合、それぞれの処理モジュールは、論理積して入力されたパイプラインストール信号に基づいてデータバッファをスルーするか否かを判定することができる。つまり、それぞれの処理モジュールは、パイプラインストール信号を論理積した後段の処理モジュールの全てがパイプラインストール状態でない場合に、データバッファをスルーすると判定することができる。また、それぞれの処理モジュールが、後段の処理モジュールに備えたデータバッファの記憶容量の空き状態の情報も状態通知信号として得ることができる場合には、後段の処理モジュールに備えたデータバッファの記憶容量も、処理モジュール自身に備えたデータバッファの記憶容量の一部であると見なして、データバッファをスルーするか否かを判定することができる。
 また、第1の実施形態の画像処理装置1では、例えば、図7に示したように、データバッファをスルーしないように制御した後、再びデータバッファをスルーするように積極的に制御する方法として、それぞれの処理モジュールが、データバッファに一時記憶された全てのデータを読み出した後に、前段の処理モジュールに対して入力データを要求する方法を示した。しかし、それぞれの処理モジュールにおいて積極的にデータバッファをスルーするように制御する方位は、第1の実施形態に示した方法に限定されるものではない。例えば、それぞれの処理モジュールが、複数の後段の処理モジュールからの入力データの要求が、継続して予め定めた時間以上出力されている場合に、データバッファをスルーするように制御するようにしてもよい。
 なお、第1の実施形態の画像処理装置1では、画像処理部30に備えられたパイプラインを構成するそれぞれの処理モジュールが、後段の処理モジュールにおけるパイプラインストール状態に基づいて、データバッファをスルーするか否かの判定をそれぞれ行う、つまり、それぞれの処理モジュールごとに、データバッファをスルーするか否かの判定を行っている。しかし、画像処理装置1の全体を考えると、画像処理部30におけるパイプライン処理がパイプラインストール状態になってしまう要因としては、DMAバス10におけるデータの流れ(バストラフィック)の滞りも考えられる。これは、画像処理装置1においてDMAバス10に接続された複数の構成要素が、DMAバス10を介してDRAM20との間で処理を行うデータの受け渡しを行っているからである。このため、画像処理部30におけるパイプライン処理の性能を低下させないためには、DMAバス10におけるバストラフィックも考慮することが望ましい。
(第2の実施形態)
 次に、本発明の第2の実施形態の画像処理装置について説明する。図11は、本発明の第2の実施形態における画像処理装置の概略構成を示したブロック図である。図11に示した画像処理装置2は、DMAバス10と、DRAM20と、画像処理部50と、センサインタフェース(I/F)部60と、ビデオインタフェース(I/F)部70と、メモリカードインタフェース(I/F)部80と、CPU(Central Processing Unit)90と、を備えている。また、画像処理部50は、接続切り替え部31と、入力DMAモジュール32と、3つの画像処理モジュール33-1~画像処理モジュール33-3と、出力DMAモジュール34と、バストラフィック監視部55と、を備えている。画像処理装置2も画像処理装置1と同様に、例えば、静止画用カメラなどの撮像装置に備えられる。
 なお、画像処理装置2の構成要素には、図1に示した第1の実施形態の画像処理装置1に備えた構成要素と同様の構成要素を含んでいる。従って、以下の説明においては、画像処理装置2の構成要素において、第1の実施形態の画像処理装置1の構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
 センサインタフェース部60は、DMAバス10に接続され、撮像装置に備えたレンズによって結像された被写体の光学像を光電変換する固体撮像素子(イメージセンサ)を制御する撮像処理部である。センサインタフェース部60は、イメージセンサによって撮像したそれぞれのフレームの静止画像のデータを、DMAバス10を介してDRAM20に記憶させる。画像処理装置2においては、センサインタフェース部60によってDRAM20に記憶された1フレームの静止画像のデータを、予め定めた複数の小さなブロックに分割し、画像処理部50が、それぞれのブロックごとに画像処理を行う。
 ビデオインタフェース部70は、DMAバス10に接続され、画像処理部50が画像処理を施してDRAM20に記憶した表示用の画像のデータを、撮像装置に備えた不図示の表示部に表示させるための表示処理部である。ビデオインタフェース部70は、表示用の画像のデータを、DMAバス10を介してDRAM20から読み出し、読み出した表示用の画像のデータを表示部に表示させる。
 メモリカードインタフェース部80は、DMAバス10に接続され、画像処理部50が画像処理を施してDRAM20に記憶した記録用の画像のデータを、撮像装置に着脱できるような構成で接続されたメモリカードなどの記録媒体に記録するための記録処理部である。メモリカードインタフェース部80は、記録用の画像のデータを、DMAバス10を介してDRAM20から読み出し、読み出した記録用の画像のデータを記録媒体に記録させる。
 CPU90は、DMAバス10に接続され、画像処理装置2に備えたそれぞれの構成要素や撮像装置に備えた構成要素を制御するシステム制御部である。CPU90は、それぞれの構成要素を制御するためのプログラムやデータを、DMAバス10を介して読み出し、読み出したプログラムやデータに応じて、撮像装置の全体を制御する。
 以下の説明においては、DMAバス10に接続され、DMAバス10を介してDRAM20にアクセスするセンサインタフェース部60、ビデオインタフェース部70、メモリカードインタフェース部80、およびCPU90を区別せずに表すときには、「バスマスタ」という。
 画像処理部50は、第1の実施形態の画像処理装置1に備えた画像処理部30と同様に、DRAM20に記憶された1フレームの静止画像のデータを、予め定めた複数の小さなブロックに分割し、それぞれのブロックごとに画像処理を行う。画像処理部50も、DMAバス10に接続されたバスマスタである。画像処理部50は、図11に示したように、入力DMAモジュール32、画像処理モジュール33-1、画像処理モジュール33-2、画像処理モジュール33-3、および出力DMAモジュール34が直列に接続されたパイプライン処理によって、画像処理装置2における画像処理を順次行う。
 なお、画像処理部50も、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部30の構成要素と同様の構成要素を含んでいる。従って、以下の説明においては、画像処理部50の構成要素において、第1の実施形態の画像処理装置1に備えた画像処理部30の構成要素と異なる点のみを説明し、第1の実施形態の画像処理装置1に備えた画像処理部30と同様の構成要素には同一の符号を付与して詳細な説明は省略する。
 接続切り替え部31は、CPU90からの制御に応じて、画像処理部50に備えたそれぞれの処理モジュール同士の接続の切り替えを行う。
 バストラフィック監視部55は、画像処理部50においてDMAバス10に接続されたそれぞれのバスマスタによるDRAM20へのアクセスを監視することによって、DMAバス10のバストラフィックを監視する。そして、バストラフィック監視部55は、監視したDMAバス10のバストラフィックに基づいて、入力バッファ331をスルーして入力データを演算部333に出力するように指示するための指示信号(以下、「バッファスルー指示信号」という)を、それぞれの画像処理モジュール33に出力する。
 より具体的には、バストラフィック監視部55は、DMAバス10に接続されたそれぞれのバスマスタが、DMAバス10を介してDRAM20との間でデータの受け渡し(読み書き)を行う際のDMA制御信号を監視する。このDMA制御信号は、例えば、それぞれのバスマスタがDMAによるDRAM20へのアクセスを要求する際に出力するDMAリクエスト信号や、それぞれのバスマスタによるDMAでのDRAM20へのアクセスを調停するバスアービタ(不図示)がアクセス要求を許可するバスマスタに出力するDMAアクノリッジ信号などである。そして、バストラフィック監視部55は、監視したDMAバス10のバストラフィックに基づいて、DMAバス10に流れているデータが少ないと判定した場合に、入力バッファ331をスルーして入力データを演算部333に出力するように指示するバッファスルー指示信号を出力する。
 なお、バストラフィック監視部55は、監視したDMAバス10のバストラフィックが予め定めた条件を満足する場合に、DMAバス10に流れているデータが少ないと判定する。バストラフィック監視部55がDMAバス10に流れているデータが少ないと判定する条件は、例えば、それぞれのバスマスタから出力されたDMAリクエスト信号の間隔や、バスマスタからDMAリクエスト信号が出力されているか否かなどの条件がある。より具体的には、バストラフィック監視部55は、それぞれのバスマスタによるDMAリクエスト信号の間隔、つまり、それぞれのバスマスタがDMAバス10を介して行うDRAM20へのアクセスを行う間隔が、予め定めた間隔の閾値よりも長い場合に、DMAバス10に流れているデータが少ないと判定する。また、バストラフィック監視部55は、それぞれのバスマスタがDMAによってDRAM20にアクセスしていない期間が、予め定めた間隔の閾値よりも長い場合に、DMAバス10に流れているデータが少ないと判定する。
 画像処理モジュール33のそれぞれは、第1の実施形態の画像処理装置1において画像処理部30に備えられた画像処理モジュール33と同様の構成の処理モジュールである。ただし、画像処理装置2では、バストラフィック監視部55が出力したバッファスルー指示信号に応じて、入力データを、入力バッファ331をスルーして演算部333に出力するか、入力バッファ331に一旦記憶してから演算部333に出力するかを選択する(切り替える)。図5に示した画像処理モジュール33の構成では、後段の処理モジュールから入力されるパイプラインストール信号の代わりに、バストラフィック監視部55から出力されたバッファスルー指示信号を入力することによって、バッファスルー判定部3342は、第1の実施形態の画像処理装置1に備えた画像処理部30と同様に動作することができる。すなわち、バッファスルー判定部3342は、バッファスルー指示信号に基づいてセレクタ332を制御するためのバッファスルー信号を出力することができる。
 なお、パイプラインストール信号は、パイプライン処理が(一時)停止しているため入力データの出力を要求しないことを表している信号であり、バッファスルー指示信号は、入力バッファ331をスルーして入力データを演算部333に出力するように指示することを表している信号である。つまり、パイプラインストール信号が表す意味とバッファスルー指示信号が表す意味とは逆の意味になっている。従って、図5に示した画像処理モジュール33の構成においてバッファスルー判定部3342は、パイプラインストール信号の代わりに入力されるバッファスルー指示信号の意味を逆に捉えて、入力バッファ331(すなわち、入力バッファ書き込み管理部3343および入力バッファ読み出し管理部3344)と、セレクタ332との制御方法を判定する。
 そして、それぞれの画像処理モジュール33は、バッファスルー指示信号が入力バッファ331をスルーして入力データを演算部333に出力するように指示することを表し、入力バッファ331の記憶容量が全て空いている状態である場合に、前段の処理モジュールから入力された入力データを、入力バッファ331をスルーして演算部333に転送するように制御する。このとき、それぞれの画像処理モジュール33は、入力バッファ331の動作を停止させて、入力バッファ331の消費電力を削減する。
 次に、バストラフィック監視部55におけるDMAバス10のバストラフィックの監視動作について説明する。図12は、本発明の第2の実施形態の画像処理装置2に備えた画像処理部50におけるバストラフィック監視部55の動作の一例を示したタイミングチャートである。図12には、画像処理装置2に備えたそれぞれのバスマスタがDRAM20へのアクセスを要求する際に出力するDMAリクエスト信号と、画像処理部50に備えた入力DMAモジュール32および出力DMAモジュール34がDRAM20へのアクセスを要求する際に出力するDMAリクエスト信号との一例を示している。また、図12には、バストラフィック監視部55がDMAバス10のバストラフィックを監視した結果に応じて出力するバッファスルー指示信号の一例を併せて示している。
 画像処理装置2に備えたそれぞれのバスマスタは、処理の状況に応じてDMAによるDRAM20へのアクセス要求(DMAリクエスト信号)をバスアービタ(不図示)に出力する。そして、バスアービタ(不図示)は、それぞれのバスマスタから入力されたDMAリクエスト信号を調停し、アクセス要求を許可するバスマスタに対してDMAアクノリッジ信号を出力する。これにより、DMAアクノリッジ信号が入力されたバスマスタ、すなわち、アクセス要求が許可されたバスマスタは、DMAによってDRAM20にアクセスする。ここで、それぞれのバスマスタによるDRAM20へのアクセスは、図12に示したように、一定の間隔では行われない。
 バストラフィック監視部55は、画像処理部50以外のバスマスタがDMAによって行うDRAM20へのアクセスを監視することによって、DMAバス10のバストラフィックを監視する。より具体的には、バストラフィック監視部55は、画像処理部50以外のそれぞれのバスマスタが出力するDMAリクエスト信号の間隔を、バスマスタごとに計測する。これにより、バストラフィック監視部55は、DMAバス10のバストラフィックの状態を判定することができる。例えば、予め定めた間隔の閾値よりも短い間隔で1つのバスマスタからDMAリクエスト信号が出力されている場合には、このバスマスタによるDMAバス10の占有率が高く、DRAM20へのアクセスが頻繁に行われていることにより、DMAバス10に多くのデータが流れていると判定することができる。また、例えば、それぞれのバスマスタが出力するDMAリクエスト信号の間隔は予め定めた間隔の閾値よりも長いが、同時期に複数のバスマスタからDMAリクエスト信号が出力されている場合には、それぞれのバスマスタによるDMAバス10の占有率が低いものの、複数のバスマスタによってDRAM20は頻繁にアクセスされていることにより、DMAバス10に多くのデータが流れていると判定することができる。
 このように、DMAバス10に多くのデータが流れていると、画像処理部50がDMAでのDRAM20へのアクセスを要求した場合でも、アクセス要求が許可される間隔が長くなり、画像処理部50におけるパイプライン処理が滞ってしまう、つまり、パイプラインストール状態になってしまうことが考えられる。このため、バストラフィック監視部55は、入力バッファ331をスルーして入力データを演算部333に出力するように指示することを表すバッファスルー指示信号を出力しない。図12に示したタイミングチャートでは、バッファスルー指示信号を“Low”レベルにすることよって、入力バッファ331をスルーして入力データを演算部333に出力するように指示しないことを表している。これにより、画像処理部50に備えたそれぞれの画像処理モジュール33では、バッファスルー判定部3342が、入力された入力データを入力バッファ331に一旦記憶した後に読み出して演算部333に転送するように制御する。そして、それぞれの画像処理モジュール33では、演算部333によって画像処理の演算を行った処理画素データを、後段の処理モジュールに順次出力することによって、パイプライン処理を行う。
 また、図12に示したタイミングチャートにおけるタイミングt1以降のように、画像処理部50以外のバスマスタが出力するDMAリクエスト信号がなくなり、つまり、画像処理部50以外のバスマスタによるDRAM20へのアクセスがなくなり、この状態が予め定めた期間よりも長く続いている場合には、バストラフィック監視部55は、DMAバス10に流れているデータが少ないと判定する。そして、バストラフィック監視部55は、入力バッファ331をスルーして入力データを演算部333に出力するように指示することを表すバッファスルー指示信号を出力する。図12に示したタイミングチャートでは、タイミングt2からバッファスルー指示信号を“High”レベルにすることによって、入力バッファ331をスルーして入力データを演算部333に出力するように指示することを表している。これにより、画像処理部50に備えたそれぞれの画像処理モジュール33では、バッファスルー判定部3342が、入力された入力データを、入力バッファ331をスルーして演算部333に出力するようにセレクタ332を制御し、入力バッファ331の動作を停止させて入力バッファ331の消費電力を削減する。そして、それぞれの画像処理モジュール33では、入力バッファ331をスルーして転送された入力データに対して演算部333が画像処理の演算を行った処理画素データを、後段の処理モジュールに順次出力することによって、パイプライン処理を行う。
 また、図12に示したタイミングチャートにおけるタイミングt3以降のように、画像処理部50以外のバスマスタからDMAリクエスト信号が出力された場合、つまり、画像処理部50以外のバスマスタによるDRAM20へのアクセスが行われるようになった場合、バストラフィック監視部55は、DMAバス10に流れるデータがこれから多くなると判定する。このため、バストラフィック監視部55は、タイミングt4から、バッファスルー指示信号を再び“Low”レベルにすることよって、入力バッファ331をスルーして入力データを演算部333に出力するように指示しないことを表す。これにより、画像処理部50に備えたそれぞれの画像処理モジュール33では、バッファスルー判定部3342が、入力された入力データを入力バッファ331に一旦記憶した後に読み出して演算部333に転送するように制御する。
 このように、バストラフィック監視部55は、DMAバス10に接続されたそれぞれのバスマスタによるDRAM20へのアクセスに基づいて、DMAバス10のバストラフィックを監視する。そして、バストラフィック監視部55は、監視したDMAバス10のバストラフィックに基づいて、画像処理部50においてパイプラインを構成するそれぞれの画像処理モジュール33に、入力バッファ331をスルーして入力された入力データを演算部333に転送するか否かを制御するためのバッファスルー指示信号を出力する。
 なお、バストラフィック監視部55がバストラフィックを判定する条件、つまり、DMAバス10に流れるデータが多いか少ないかを判定する条件は、上述したような、それぞれのバスマスタから出力されたDMAリクエスト信号の間隔や、バスマスタからDMAリクエスト信号が出力されているか否かの条件に限定されるものではなく、他の条件によって判定してもよい。例えば、DRAM20にアクセスするバスマスタの数によってバストラフィックを判定してもよい。この場合、バストラフィック監視部55は、DRAM20にアクセスするバスマスタの数が予め定めた数の閾値よりも少ない場合にDMAバス10に流れるデータが少ないと判定し、DRAM20にアクセスするバスマスタの数が予め定めた数の閾値以上である場合にDMAバス10に流れるデータが多いと判定する。また、例えば、それぞれのバスマスタがDMAリクエスト信号を出力してからDMAアクノリッジ信号が入力されるまでの時間によってバストラフィックを判定してもよい。この場合、バストラフィック監視部55は、DMAリクエスト信号を出力してからDMAアクノリッジ信号が入力されるまでの時間が予め定めた時間の閾値よりも短い場合にDMAバス10に流れるデータが少ないと判定し、DMAリクエスト信号を出力してからDMAアクノリッジ信号が入力されるまでの時間が予め定めた時間の閾値以上である場合にDMAバス10に流れるデータが多いと判定する。
 本第2の実施形態によれば、画像処理部(画像処理部50)は、データバス(DMAバス10)に接続された複数のバスマスタ(センサインタフェース部60、ビデオインタフェース部70、メモリカードインタフェース部80、CPU90など)によるメモリ(DRAM20)へのアクセスを監視することによって、DMAバス10におけるバストラフィックを監視するバストラフィック監視部(バストラフィック監視部55)、をさらに備え、バストラフィック監視部55は、監視したバストラフィックに基づいてDMAバス10に流れているデータが少ないと判定した場合に、それぞれの処理モジュール(画像処理モジュール33)に、データバッファ(入力バッファ331)をスルーしてデータ(画素データまたは処理画素データ)を(演算部333に)転送する経路の選択を指示するバッファスルー指示信号を出力し、それぞれの画像処理モジュール33内の制御部(制御部334)は、バッファスルー指示信号が入力された場合に、パイプライン処理における画素データまたは処理画素データの流れが滞っていない状態であると判定する画像処理装置(画像処理装置2)が構成される。
 上記に述べたとおり、第2の実施形態の画像処理装置2では、画像処理部50に備えられたバストラフィック監視部55が、画像処理装置2に備えた他のバスマスタによるDRAM20へのアクセスを監視することによって、DMAバス10におけるバストラフィックを監視する。そして、第2の実施形態の画像処理装置2では、バストラフィック監視部55が、監視したバストラフィックに基づいて、画像処理部50に備えられたパイプラインを構成するそれぞれの画像処理モジュール33に入力された入力データを、入力バッファ331をスルーして演算部333に転送するか否かを制御する。このとき、それぞれの画像処理モジュール33では、入力バッファ331をスルーして入力された入力データを演算部333に転送する場合、入力バッファ331の動作を停止させる。これにより、それぞれの画像処理モジュール33では、入力バッファ331における消費電力を削減することができる。このことにより、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、画像処理部50に備えられたそれぞれの画像処理モジュール33によるパイプライン処理によって、所望の画像処理を行うときのパイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。
 なお、第2の実施形態の画像処理装置2では、画像処理部50に備えられたバストラフィック監視部55が監視したDMAバス10のバストラフィックに基づいて出力したバッファスルー指示信号に応じて、それぞれの画像処理モジュール33が、入力データを、入力バッファ331をスルーして演算部333に出力するか、入力バッファ331に一旦記憶してから演算部333に出力するかを選択する(切り替える)構成について説明した。しかし、それぞれの画像処理モジュール33は、バッファスルー指示信号に加えて、第1の実施形態の画像処理装置1と同様に、後段(複数の後段も含む)の画像処理モジュール33の動作状態も併せて入力バッファ331をスルーするか否かを判定する構成であってもよい。この場合、画像処理部50に備えられたそれぞれの画像処理モジュール33内のバッファスルー判定部3342が、バッファスルー指示信号と後段に接続された処理モジュールの動作状態とに基づいて、入力バッファ書き込み管理部3343、入力バッファ読み出し管理部3344、およびセレクタ332を制御することができる。そして、第1の実施形態の画像処理装置1と同様に、意図的に入力バッファ331をスルーして入力データを演算部333に転送する状態に制御することもできる。
 また、第2の実施形態の画像処理装置2では、画像処理部50内にバストラフィック監視部55を備えた構成について説明した。しかし、バストラフィック監視部55は、画像処理部50の外部に備えられる構成であってもよい。例えば、画像処理装置2に備えたバスアービタ(不図示)が、バストラフィック監視部55と同様に、DMAバス10のバストラフィックを監視する機能を有している場合も考えられる。この場合、画像処理部50に備えられたそれぞれの画像処理モジュール33内のバッファスルー判定部3342が、バスアービタ(不図示)が監視したDMAバス10のバストラフィックの状態を表す信号に基づいて、入力バッファ331をスルーするか否かを判定し、入力バッファ書き込み管理部3343、入力バッファ読み出し管理部3344、およびセレクタ332を制御する構成にすることができる。そして、第1の実施形態の画像処理装置1と同様に、意図的に入力バッファ331をスルーして入力データを演算部333に転送する状態に制御することもできる。
 また、第2の実施形態の画像処理装置2では、画像処理部50に備えられたパイプラインを構成するそれぞれの処理モジュールが、第1の実施形態の画像処理装置1において画像処理部30に備えられた第1の構成の画像処理モジュール33と同様の構成の処理モジュールである場合について説明した。しかし、画像処理部50に備えられたパイプラインを構成するそれぞれの処理モジュールは、第1の構成の画像処理モジュール33に限定されるものではなく、第2の構成の画像処理モジュール43であってもよい。なお、画像処理部50に備えられたパイプラインを構成するそれぞれの処理モジュールが第2の構成の画像処理モジュール43である場合であっても、第2の実施形態の画像処理装置2および画像処理部50の動作は、上述した動作と同様に考えることができる。従って、画像処理部50に備えられたパイプラインを構成するそれぞれの処理モジュールが第2の構成の画像処理モジュール43である場合の動作に関する詳細な説明は省略する。
 上記に述べたとおり、本発明の各実施形態によれば、画像処理部においてパイプラインを構成するそれぞれの処理モジュールに、処理モジュール自身に備えたデータバッファをスルーするか否かを選択する(切り替える)構成を備える。そして、本発明の各実施形態では、処理モジュール自身に備えたデータバッファの記憶容量の空き状態と、パイプライン構成において後段(複数の後段も含む)に接続された処理モジュールの動作状態とに基づいて、処理モジュール自身に備えたデータバッファをスルーするか否かの選択(切り替え)を制御する。また、本発明の各実施形態では、画像処理部が接続されたDMAバスのバストラフィックを監視し、監視したバストラフィックに基づいて、処理モジュール自身に備えたデータバッファをスルーするか否かの選択(切り替え)を制御する。このとき、本発明の各実施形態では、処理モジュール自身に備えたデータバッファの記憶容量の空き状態に基づいて、パイプライン構成において前段に接続された処理モジュールに対する入力データの要求を意図的に制御することもできる。そして、本発明の各実施形態では、それぞれの処理モジュールにおいてデータバッファをスルーするように制御した場合、データバッファの動作を停止するように制御する。これにより、本発明の各実施形態では、それぞれの処理モジュールにおいて画像処理の演算を行う際に、処理モジュール自身に備えたデータバッファにおける消費電力を削減することができる。このことにより、本発明の各実施形態では、画像処理部に備えられたそれぞれの処理モジュールによるパイプライン処理によって、所望の画像処理を行うときのパイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。
 なお、本発明の各実施形態では、画像処理装置に備えた画像処理部において、パイプラインを構成するそれぞれの画像処理モジュールに、画像処理モジュール自身に備えたデータバッファをスルーするか否かの選択(切り替え)を制御する機能を備えた構成について説明した。しかし、上述したように、画像処理部においてパイプラインを構成する処理モジュールである入力DMAモジュールと出力DMAモジュールとにもデータバッファを備えている。従って、入力DMAモジュールや出力DMAモジュールにも、画像処理モジュールと同様に、自身に備えたデータバッファをスルーするか否かの選択(切り替え)を制御する機能を備えてもよい。この機能を備えることによって、入力DMAモジュールや出力DMAモジュールでも、画像処理モジュールと同様の効果を得ることができる。
 また、本発明の各実施形態では、画像処理装置に備えた画像処理部内にパイプラインを構成するそれぞれの処理モジュールを備えた構成について説明した。しかし、パイプライン構成によって一連の処理を行う処理装置は、画像処理装置の他にも種々の処理装置が考えられる。従って、本発明の考え方を適用することができる処理装置は、本発明の各実施形態で示した画像処理装置に限定されるものではなく、複数の処理モジュールを直列に接続することによってパイプラインを構成してパイプライン処理を行う処理装置であれば、本発明の考え方を同様に適用することができ、本発明と同様の効果を得ることができる。
 以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更ができる。
 また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
 上記各実施形態によれば、パイプライン処理の性能を低下させることなく、消費電力を低減することができる画像処理装置および画像処理方法を提供することができる。
 1 画像処理装置
 10 DMAバス(データバス)
 20 DRAM(メモリ)
 30 画像処理部
 31 接続切り替え部(画像処理部)
 32 入力DMAモジュール(画像処理部)
 33,33-1,33-2,33-3 画像処理モジュール(画像処理部,処理モジュール)
 331 入力バッファ(処理モジュール,データバッファ)
 332 セレクタ(処理モジュール,セレクタ)
 333 演算部(処理モジュール)
 334 制御部(処理モジュール,制御部)
 3341 データ量管理部(処理モジュール,制御部,データ量管理部)
 3342 バッファスルー判定部(処理モジュール,制御部,バッファスルー判定部)
 3343 入力バッファ書き込み管理部(処理モジュール,制御部,バッファ書き込み管理部)
 3344 入力バッファ読み出し管理部(処理モジュール,制御部,バッファ読み出し管理部)
 34 出力DMAモジュール(画像処理部)
 43,43-1,43-2,43-3 画像処理モジュール(画像処理部,処理モジュール)
 431 出力バッファ(処理モジュール,データバッファ)
 432 セレクタ(処理モジュール,セレクタ)
 433 演算部(処理モジュール)
 434 制御部(処理モジュール,制御部)
 2 画像処理装置
 50 画像処理部
 55 バストラフィック監視部(画像処理部,バストラフィック監視部)
 60 センサインタフェース部(バスマスタ)
 70 ビデオインタフェース部(バスマスタ)
 80 メモリカードインタフェース部(バスマスタ)
 90 CPU(バスマスタ)

Claims (10)

  1.  メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続された画像処理装置であって、
     前記処理モジュールのそれぞれは、
     前記データを前記処理の単位ごとに一時的に記憶するデータバッファと、
     前記パイプライン処理におけるデータの流れの状態と、前記データバッファに記憶している前記データの状態とに基づいて、前記データを前記データバッファに記憶するか否かを判定し、前記判定した結果に基づいて前記データを転送する前記処理モジュール内の経路を選択すると共に、前記データバッファの動作を制御する制御部と、
     を備える、
     画像処理装置。
  2.  前記制御部は、
      前記データバッファが有する記憶容量に前記データが記憶されている状態で、前記データバッファにさらに前記データを記憶することができる状態である場合、前記データを前記データバッファに一旦記憶してから読み出して転送する経路を選択すると共に、前記データバッファを動作させ、
      前記パイプライン処理における前記データの流れが滞っている状態で、前記データバッファにさらに前記データを記憶することができない状態である場合、前記データを前記データバッファに一旦記憶してから読み出して転送する経路を選択すると共に、前記データバッファを、記憶している前記データを保持させるように動作させ、
      前記パイプライン処理における前記データの流れが滞っていない状態で、前記データバッファが有する全ての前記記憶容量に前記データが記憶されていない状態である場合に、前記データバッファに記憶せずにスルーして前記データを転送する経路を選択すると共に、前記データバッファの動作を停止させる、
     請求項1に記載の画像処理装置。
  3.  前記制御部は、
      前記パイプラインの構成における前段の前記処理モジュールに、前記制御部自身を備えた前記処理モジュールの動作状態を表す状態通知信号を出力し、
      前記パイプラインの構成における後段の前記処理モジュールから入力された前記状態通知信号に基づいて、前記パイプライン処理におけるデータの流れの状態を判定する、
     請求項2に記載の画像処理装置。
  4.  前記制御部は、前記パイプラインの構成における後段の複数の前記処理モジュールから入力された前記状態通知信号に基づいて、前記パイプライン処理におけるデータの流れの状態を判定する、
     請求項3に記載の画像処理装置。
  5.  前記状態通知信号は、
      前段の前記処理モジュールが前記処理を行った前記データを受け付けることができるか否かを表す信号であり、
      前段の前記処理モジュールが前記処理を行った前記データの出力を要求するデータリクエスト信号を含み、
     前記制御部は、後段の前記処理モジュールから前記データの出力を要求する前記データリクエスト信号が入力された場合に、前記パイプライン処理における前記データの流れが滞っていない状態であると判定する、
     請求項3または請求項4に記載の画像処理装置。
  6.  前記制御部は、前記データバッファに前記データを記憶することができる状態である場合に、前記データの出力を要求する前記データリクエスト信号を、前段の前記処理モジュールに出力する、
     請求項5に記載の画像処理装置。
  7.  前記制御部は、
      前記データバッファが有する全ての前記記憶容量に前記データが記憶されていない状態になるまで、前記データの出力を要求する前記データリクエスト信号の前段の前記処理モジュールへの出力を保留し、
      前記データバッファが有する全ての前記記憶容量に前記データが記憶されていない状態になった後に、前段の前記処理モジュールに前記データリクエスト信号を出力し、前記データバッファをスルーして前記データを転送する経路を選択すると共に、前記データバッファの動作を停止させる、
     請求項5に記載の画像処理装置。
  8.  前記画像処理部は、前記データバスに接続された複数のバスマスタによる前記メモリへのアクセスを監視することによって、前記データバスにおけるバストラフィックを監視するバストラフィック監視部、
     をさらに備え、
     前記バストラフィック監視部は、監視した前記バストラフィックに基づいて前記データバスに流れているデータが少ないと判定した場合に、それぞれの前記処理モジュールに、前記データバッファをスルーして前記データを転送する経路の選択を指示するバッファスルー指示信号を出力し、
     それぞれの前記処理モジュール内の前記制御部は、前記バッファスルー指示信号が入力された場合に、前記パイプライン処理における前記データの流れが滞っていない状態であると判定する、
     請求項2から請求項7のいずれか1の項に記載の画像処理装置。
  9.  前記処理モジュールは、前記データバッファから読み出した前記データを転送する経路、および前記データバッファをスルーして前記データを転送する経路のいずれか一方の経路を、前記データを転送する経路として選択するセレクタ、
     をさらに備え、
     前記制御部は、
      前記データバッファに記憶する前記データの量を管理し、監視した前記データの量を表すデータ量情報を出力するデータ量管理部と、
      前記データ量情報と前記パイプライン処理におけるデータの流れの状態とに基づいて、前記データバッファに行わせる動作を判定し、判定した結果に基づいて、前記データバッファへの前記データの書き込みおよび前記データバッファからの前記データの読み出しの指示信号と、前記データを転送する経路を選択するための制御信号とを出力するバッファスルー判定部と、
      前記データバッファへの前記データの書き込みの前記指示信号に応じて、前記データバッファへの前記データの書き込みを制御するための制御信号であるバッファライト信号を生成するバッファ書き込み管理部と、
      前記データバッファからの前記データの読み出しの前記指示信号に応じて、前記データバッファからの前記データの読み出しを制御するための制御信号であるバッファリード信号を生成するバッファ読み出し管理部と、
     を備え、
     前記データ量管理部は、入力された前記データの数と、前記バッファリード信号とに基づいて前記データの量を管理し、
     前記バッファスルー判定部は、
      前記データ量情報が、前記データの量が0よりも大きい値であることを表している場合、前記データバッファへの前記データの書き込みおよび前記データバッファからの前記データの読み出しを行うことを指示する前記指示信号と、前記データを前記データバッファに一旦記憶してから読み出して転送する経路を選択する前記制御信号とを出力し、
      前記データ量情報が、前記データの量が0であることを表している場合、前記データバッファへの前記データの書き込みおよび前記データバッファからの前記データの読み出しを停止することを指示する前記指示信号と、前記データバッファをスルーして前記データを転送する経路を選択する前記制御信号とを出力し、
     前記セレクタは、前記制御信号に応じた経路を、前記データを転送する経路として選択する、
     請求項2から請求項8のいずれか1の項に記載の画像処理装置。
  10.  メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続された画像処理装置における画像処理方法であって、
     前記処理モジュールのそれぞれにより実行され、前記パイプライン処理におけるデータの流れの状態と、前記データを前記処理の単位ごとに一時的に記憶するデータバッファに記憶している前記データの状態とに基づいて、前記データを前記データバッファに記憶するか否かを判定し、前記判定した結果に基づいて前記データを転送する前記処理モジュール内の経路を選択すると共に、前記データバッファの動作を制御する制御ステップ、を備える、
     画像処理方法。
PCT/JP2016/059952 2015-06-12 2016-03-28 画像処理装置および画像処理方法 WO2016199477A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE112016002160.7T DE112016002160T5 (de) 2015-06-12 2016-03-28 Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
CN201680033012.1A CN107636631B (zh) 2015-06-12 2016-03-28 图像处理装置和图像处理方法
US15/813,658 US10241721B2 (en) 2015-06-12 2017-11-15 Image processing device and image processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-119684 2015-06-12
JP2015119684A JP6580380B2 (ja) 2015-06-12 2015-06-12 画像処理装置および画像処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/813,658 Continuation US10241721B2 (en) 2015-06-12 2017-11-15 Image processing device and image processing method

Publications (1)

Publication Number Publication Date
WO2016199477A1 true WO2016199477A1 (ja) 2016-12-15

Family

ID=57503556

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/059952 WO2016199477A1 (ja) 2015-06-12 2016-03-28 画像処理装置および画像処理方法

Country Status (5)

Country Link
US (1) US10241721B2 (ja)
JP (1) JP6580380B2 (ja)
CN (1) CN107636631B (ja)
DE (1) DE112016002160T5 (ja)
WO (1) WO2016199477A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017169186A (ja) * 2016-03-14 2017-09-21 株式会社リコー 画像処理装置、情報処理装置、画像処理システム及び画像処理方法
JP6722278B2 (ja) * 2016-04-11 2020-07-15 オリンパス株式会社 画像処理装置
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
WO2019021344A1 (ja) * 2017-07-24 2019-01-31 オリンパス株式会社 画像処理装置および撮像装置
US10860618B2 (en) 2017-09-25 2020-12-08 Splunk Inc. Low-latency streaming analytics
US10997180B2 (en) 2018-01-31 2021-05-04 Splunk Inc. Dynamic query processor for streaming and batch queries
US11003456B2 (en) 2018-03-30 2021-05-11 Iunu, Inc. Pipelined processing of plant images for monitoring horticultural grow operations
US10979669B2 (en) * 2018-04-10 2021-04-13 Facebook, Inc. Automated cinematic decisions based on descriptive models
US11481264B2 (en) * 2018-04-27 2022-10-25 Mitsubishi Electric Corporation Data processing device, monitoring method, and program
WO2020012574A1 (ja) * 2018-07-11 2020-01-16 オリンパス株式会社 画像処理装置
US10775976B1 (en) * 2018-10-01 2020-09-15 Splunk Inc. Visual previews for programming an iterative publish-subscribe message processing system
US10761813B1 (en) 2018-10-01 2020-09-01 Splunk Inc. Assisted visual programming for iterative publish-subscribe message processing system
US10936585B1 (en) 2018-10-31 2021-03-02 Splunk Inc. Unified data processing across streaming and indexed data sets
US11238048B1 (en) 2019-07-16 2022-02-01 Splunk Inc. Guided creation interface for streaming data processing pipelines
US11614923B2 (en) 2020-04-30 2023-03-28 Splunk Inc. Dual textual/graphical programming interfaces for streaming data processing pipelines
US11650995B2 (en) 2021-01-29 2023-05-16 Splunk Inc. User defined data stream for routing data to a data destination based on a data route
US11687487B1 (en) 2021-03-11 2023-06-27 Splunk Inc. Text files updates to an active processing pipeline
US11663219B1 (en) 2021-04-23 2023-05-30 Splunk Inc. Determining a set of parameter values for a processing pipeline
US11989592B1 (en) 2021-07-30 2024-05-21 Splunk Inc. Workload coordinator for providing state credentials to processing tasks of a data processing pipeline
CN115063283A (zh) * 2022-06-13 2022-09-16 脉冲视觉(北京)科技有限公司 一种用于图像重构的逻辑器件

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05181817A (ja) * 1991-04-30 1993-07-23 Hitachi Ltd 並列処理装置
JPH07302201A (ja) * 1994-05-10 1995-11-14 Hitachi Ltd パイプライン演算データ診断装置
JP2011028738A (ja) * 2009-06-25 2011-02-10 Canon Inc 画像処理デバイス及び画像処理装置
JP2012098883A (ja) * 2010-11-01 2012-05-24 Olympus Corp データ処理装置および画像処理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10334225A (ja) * 1997-06-02 1998-12-18 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
JPH10340243A (ja) * 1997-06-06 1998-12-22 Hitachi Ltd 入出力データ転送システム
US20030007703A1 (en) * 2001-07-03 2003-01-09 Roylance Eugene A. Configurable image processing logic for use in image processing devices
WO2004068489A1 (ja) * 2003-01-31 2004-08-12 Matsushita Electric Industrial Co., Ltd. 情報記録装置及び情報記録方法並びに記録媒体の領域管理方法
KR100546640B1 (ko) * 2003-03-11 2006-01-26 엘지전자 주식회사 디지털 비디오 기록 재생 시스템 및 트릭 재생 방법
US7787026B1 (en) * 2004-04-28 2010-08-31 Media Tek Singapore Pte Ltd. Continuous burst mode digital camera
US20050248584A1 (en) * 2004-05-10 2005-11-10 Koji Takeo Imaging system and image processing apparatus
US7542435B2 (en) * 2004-05-12 2009-06-02 Nokia Corporation Buffer level signaling for rate adaptation in multimedia streaming
US7743183B2 (en) * 2005-05-23 2010-06-22 Microsoft Corporation Flow control for media streaming
TWI322354B (en) * 2005-10-18 2010-03-21 Via Tech Inc Method and system for deferred command issuing in a computer system
CN100518249C (zh) * 2006-07-28 2009-07-22 奥林巴斯映像株式会社 具有连拍功能的数字照相机
CN101296158A (zh) * 2007-04-26 2008-10-29 深圳市同洲电子股份有限公司 一种流媒体数据传输方法及其数据传输装置
CN100591134C (zh) * 2007-08-01 2010-02-17 神州亿品科技有限公司 防止黑屏和花屏的播放方法
CN101727651B (zh) * 2009-11-16 2012-04-18 东莞光阵显示器制品有限公司 一种一次性使用医疗产品的实现方法及控制系统
US20110296095A1 (en) * 2010-05-25 2011-12-01 Mediatek Inc. Data movement engine and memory control methods thereof
US9462032B2 (en) * 2013-07-24 2016-10-04 Google Inc. Streaming media content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05181817A (ja) * 1991-04-30 1993-07-23 Hitachi Ltd 並列処理装置
JPH07302201A (ja) * 1994-05-10 1995-11-14 Hitachi Ltd パイプライン演算データ診断装置
JP2011028738A (ja) * 2009-06-25 2011-02-10 Canon Inc 画像処理デバイス及び画像処理装置
JP2012098883A (ja) * 2010-11-01 2012-05-24 Olympus Corp データ処理装置および画像処理装置

Also Published As

Publication number Publication date
CN107636631A (zh) 2018-01-26
JP6580380B2 (ja) 2019-09-25
JP2017004386A (ja) 2017-01-05
CN107636631B (zh) 2020-09-25
DE112016002160T5 (de) 2018-02-01
US10241721B2 (en) 2019-03-26
US20180074752A1 (en) 2018-03-15

Similar Documents

Publication Publication Date Title
JP6580380B2 (ja) 画像処理装置および画像処理方法
US8904069B2 (en) Data processing apparatus and image processing apparatus
US8554962B2 (en) Data transfer control device and data transfer control method
JPWO2017149591A1 (ja) 画像処理装置
US10803589B2 (en) Image processing device
US9026697B2 (en) Data processing apparatus
JP5591022B2 (ja) バス帯域モニタ装置およびバス帯域モニタ方法
JP5993267B2 (ja) 画像処理装置
JP6580381B2 (ja) 画像処理装置および画像処理方法
US9547330B2 (en) Processor and control method for processor
WO2019043822A1 (ja) メモリアクセス装置、画像処理装置、および撮像装置
JP6849702B2 (ja) メモリアクセス装置、画像処理装置、および撮像装置
JP2012123620A (ja) データ転送装置、データ転送方法、及び半導体装置
US11314664B2 (en) Memory access device, image processing device and imaging device
JP6564625B2 (ja) データ転送装置およびデータ転送方法
US20240028331A1 (en) Image processing apparatus and image processing circuit
JP4071225B2 (ja) 転送回路
JP2012123465A (ja) データ処理装置
JP5125296B2 (ja) 転送量制御装置
JP2015141528A (ja) 画像処理装置及び撮像装置、及び、画像処理装置の制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16807184

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 112016002160

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16807184

Country of ref document: EP

Kind code of ref document: A1