WO2019043823A1 - メモリアクセス装置、画像処理装置、および撮像装置 - Google Patents

メモリアクセス装置、画像処理装置、および撮像装置 Download PDF

Info

Publication number
WO2019043823A1
WO2019043823A1 PCT/JP2017/031110 JP2017031110W WO2019043823A1 WO 2019043823 A1 WO2019043823 A1 WO 2019043823A1 JP 2017031110 W JP2017031110 W JP 2017031110W WO 2019043823 A1 WO2019043823 A1 WO 2019043823A1
Authority
WO
WIPO (PCT)
Prior art keywords
image processing
data processing
time
processing unit
image
Prior art date
Application number
PCT/JP2017/031110
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 PCT/JP2017/031110 priority Critical patent/WO2019043823A1/ja
Priority to CN201780093760.3A priority patent/CN111033476B/zh
Publication of WO2019043823A1 publication Critical patent/WO2019043823A1/ja
Priority to US16/796,071 priority patent/US11314664B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Definitions

  • the present invention relates to a memory access device, an image processing device, and an imaging device.
  • an imaging apparatus such as a still image camera, a moving image camera, a medical endoscope camera, or an industrial endoscope camera
  • various image processing is performed by an image processing apparatus such as a system LSI mounted.
  • the image processing apparatus incorporates a plurality of processing blocks for performing various image processing in the imaging apparatus, and each processing block is connected to a data bus provided in the image processing apparatus.
  • each processing block connected to the data bus shares one DRAM (Dynamic Random Access Memory) connected to the outside of the image processing apparatus as a bus master.
  • each processing block (bus master) accesses the DRAM by DMA (Direct Memory Access) transfer via the data bus, and passes various data for image processing via the DRAM. I'm going.
  • DRAM Dynamic Random Access Memory
  • an image processing apparatus having a configuration in which one DRAM is shared by a plurality of processing blocks (bus masters) includes an arbitration circuit (so-called DMA arbitration circuit) that arbitrates access requests for DMA transfer output from the respective bus masters. ing.
  • the arbitration circuit controls the actual access to the DRAM while appropriately arbitrating the access request (so-called DMA request) to the DRAM output from each bus master.
  • the arbitration circuit basically determines a bus master that accepts (permits) an access request to the DRAM based on the priority that indicates the priority of each bus master.
  • a processing block with high priority (bus master (bus master) Arbitration can be performed to reliably accept (permit) access requests from), but the rate of acceptance (permission) of access requests from processing blocks (bus masters) with low priorities decreases. Conceivable.
  • a processing block (bus master) with a low priority can not exchange necessary data with the DRAM because the access request to the DRAM is not accepted (not permitted), It is conceivable that the process can not be completed within the prescribed processing time. However, even if the processing block (bus master) has a low priority, if the processing is not completed within a predetermined processing time, the operation or function as a system of the imaging apparatus equipped with the image processing apparatus may be broken. It becomes.
  • Patent Document 1 a technology of a bus arbitration system as disclosed in Patent Document 1 is disclosed.
  • a bus request from a bus master highly necessary to perform real-time processing competes with a bus request from another bus master, it is determined that access in a bus master requiring real-time processing is kept waiting
  • a bus arbitration system has been proposed in which the shared bus use right is preferentially given to a bus master which requires real-time processing.
  • the bus arbitration system disclosed in Patent Document 1 the maximum waitable time in each bus master and the shared bus in each bus master before actually giving the shared bus use right to any bus master Based on the occupancy schedule time of one of the bus masters, the influence on the other bus masters in the case of giving one shared bus use right to one candidate bus master is verified, and then the bus master to which the shared bus use right is actually given is determined. There is.
  • the bus arbitration can be performed so that processing by a bus master requiring real-time processing is not delayed, that is, waiting time in the bus master is not exceeded. it can.
  • bus arbitration can be performed for bus requests from a plurality of bus masters output at the same time, the bus requests output after giving the shared bus use right Can not perform bus arbitration. From this, in the technique disclosed in Patent Document 1, the bus arbitration can not necessarily be performed while the waiting time in the bus master is not exceeded, and the operation and the function as a system are broken. It is also possible.
  • the present invention is made based on the above problem recognition, and when a plurality of processing blocks share a DRAM, processing is performed within a predetermined processing time even if the processing blocks have low priority. It is an object of the present invention to provide a memory access device, an image processing device, and an imaging device which can be completed to reduce factors that cause a system failure.
  • a memory access apparatus outputs an access request for requesting access to a memory connected to a data bus, and performs data processing on data in the accessed memory.
  • the data processing unit that notifies the progress of the data processing, and the urgency of the data processing by the data processing unit is determined based on the progress of the data processing notified from the data processing unit, and the data processing is performed
  • a priority switching control unit for outputting a priority switching signal for notifying switching of the priority of the unit, and when arbitrating an access request to the memory connected to the data bus, according to the priority switching signal Arbitrate by changing the priority of the access request output from the data processing unit and responding to the access request accepted by the arbitration;
  • a bus arbiter for controlling access to the memory Te.
  • the priority switching control unit is configured to select the data based on the progress of the data processing notified from the data processing unit.
  • the remaining processing time in the data processing performed by the processing unit is calculated, the remaining processing time, the limit time defined as the time when the data processing unit needs to complete the data processing, and the data processing
  • the processing margin time when the data processing section performs the data processing is calculated based on the processing time from the start of the data processing to the present time, and the processing margin time and the urgency level determined in advance
  • the degree of urgency of the data processing by the data processing unit may be determined based on the threshold time.
  • the priority switching control unit determines the data when the processing allowance time is shorter than a predetermined urgency threshold time. It determines that the urgency of the data processing by the processing unit is high, and outputs the priority switching signal notifying that the priority of the data processing unit is increased, and the processing margin time is longer than the urgency threshold time. If the priority of the data processing by the data processing unit is not short, it is determined that the data processing unit has low priority, and the bus arbiter outputs the priority switching signal notifying that the priority of the data processing unit is kept low.
  • the arbitration unit outputs the data output from the data processing unit to which it is notified that the priority is to be increased by the priority switching signal when arbitrating the access request to the memory; It may be arbitration by raising the priority of Seth request.
  • the data processing unit notifies a processing completion rate representing a rate at which the data processing is completed as the progress status of the data processing.
  • the priority switching control unit may calculate the remaining processing time based on the speed and processing amount of the data processing in the data processing unit and the notified processing completion rate.
  • the data processing unit performs the data processing as a progress of the data processing when the data processing is performed in a plurality of times.
  • the priority switching control unit notifies of the number of completion of data processing, and the priority switching control unit determines the number of times of data processing separately performed by the data processing unit and the remaining number obtained from the notified number of completion of processing.
  • the remaining processing time may be calculated based on the number of times of processing, the amount of processing in one data processing performed separately, and the speed of the data processing in the data processing unit.
  • the data processing unit proceeds the data processing in the case where the data processing is performed in multiple times with different processing amounts.
  • a status completion amount indicating the amount of processing for which the data processing has been completed by the present is notified, and the priority switching control unit is configured to notify the amount of overall processing in the data processing performed by the data processing unit, and notification
  • the remaining processing time may be calculated based on the amount of remaining processing obtained from the amount of processing completion and the speed of the data processing in the data processing unit.
  • the priority switching control unit further comprises:
  • the processing margin time may be calculated after any one or both of the times are multiplied by a predetermined time coefficient expressed as a ratio to the time.
  • the memory access device further includes a plurality of the data processing units that sequentially perform the data processing corresponding to a series of processing in a predetermined order, After the corresponding data processing included in the series of processes started earlier is completed, the data processing unit starts the plurality of corresponding processes by starting the corresponding data processes included in the next series of processes.
  • the data processing units perform in parallel the corresponding data processing included in the series of processes different from one another, and the priority switching control unit performs processing based on the progress of the data processing notified from the respective data processing units.
  • the urgency of the data processing by each of the data processing units is determined in units of the series of processing, and the data in the plurality of data processing units is determined.
  • the priority switching signal notifying that the priority of the data processing unit which performs the corresponding data processing included in the series of processing started earlier is increased when it is determined that the degree of urgency of the logic is high May be output.
  • the memory access device further includes a plurality of the data processing units that sequentially perform the corresponding data processing in a series of processing in a predetermined order, After the corresponding data processing included in the series of processes started earlier is completed, the data processing unit starts the plurality of corresponding processes by starting the corresponding data processes included in the next series of processes.
  • the data processing unit performs in parallel the corresponding data processing included in the series of processes different from each other, and the priority switching control unit calculates based on the progress of the data processing notified from each of the data processing units The remaining processing time for each data processing unit and the limit time set for each data processing unit in each series of processing And the processing margin time is calculated for each data processing unit based on the processing time for each data processing unit, and based on the processing margin time for each data processing unit and the emergency degree threshold time , The urgency of the data processing is determined for each of the data processing units, and the completion of the data processing by the data processing unit that performs the data processing corresponding to the last in each series of processing is set to the limit
  • the priority switching signal may be output to notify that the priority is to be increased, so as not to exceed the time interval.
  • an image processing apparatus outputs an access request for requesting access to a memory connected to a data bus, and performs data processing on data in the accessed memory.
  • the data processing unit that notifies the progress of the data processing, and the urgency of the data processing by the data processing unit is determined based on the progress of the data processing notified from the data processing unit, and the data processing is performed
  • a priority switching control unit for outputting a priority switching signal for notifying switching of the priority of the unit, and when arbitrating an access request to the memory connected to the data bus, according to the priority switching signal Arbitrate by changing the priority of the access request output from the data processing unit, and responding to the access request accepted by the arbitration
  • a memory access device provided with the a bus arbiter for controlling access to the serial memory.
  • an imaging device outputs an access request for requesting access to a memory connected to a data bus, performs data processing on data in the accessed memory, and
  • the data processing unit for notifying the progress of data processing, and the urgency of the data processing by the data processing unit are determined based on the progress of the data processing notified from the data processing unit, and the data processing unit
  • a priority switching control unit for outputting a priority switching signal for notifying switching of the priority of the memory, and when arbitrating an access request to the memory connected to the data bus, according to the priority switching signal, The priority of the access request output from the data processing unit is changed for arbitration, and the access request accepted by the arbitration is responded to.
  • Comprising a bus arbiter for controlling access to the memory the image processing apparatus, comprising a memory access device having a.
  • FIG. 1 is a block diagram showing a schematic configuration of an imaging device equipped with an image processing device including a memory access device according to a first embodiment of the present invention. It is the flowchart which showed the process procedure of the process which determines the urgency of image processing in the memory access apparatus of the 1st Embodiment of this invention. It is the figure which showed typically an example of the relationship between the limit time in the memory access apparatus of the 1st Embodiment of this invention, and the period of an image process. It is the figure which showed typically another example of the relationship between the limit time in the memory access apparatus of the 1st Embodiment of this invention, and the period of an image process.
  • FIG. 1 is a block diagram showing a schematic configuration of an imaging apparatus equipped with an image processing apparatus provided with a memory access apparatus according to a first embodiment of the present invention.
  • the imaging device 1 illustrated in FIG. 1 includes an image sensor 10, an image processing device 20, a dynamic random access memory (DRAM) 30, and a display device 40.
  • DRAM dynamic random access memory
  • the image processing apparatus 20 further includes a bus arbiter 220, a DRAM interface unit 230, a captured image capturing unit 240, an image processing unit 250, and a display processing unit 260.
  • the image processing unit 250 includes a bus master 2501, an image processing module 2502, a bus master 2503, and a priority switching control unit 2504.
  • the bus master 2501 includes a plane buffer 2501B.
  • the bus master 2503 includes a plane buffer 2503B.
  • the bus arbiter 220, the captured image capturing unit 240, the image processing unit 250, and the display processing unit 260 are connected to the common data bus 210.
  • the memory access apparatus of the first embodiment is configured by the image processing unit 250 provided in the image processing apparatus 20 and the bus arbiter 220.
  • the imaging device 1 captures a still image or a moving image of a subject by the image sensor 10. Then, the imaging device 1 causes the display device 40 to display a display image according to the captured still image. Further, the imaging device 1 causes the display device 40 to display a display image corresponding to the captured moving image.
  • the imaging device 1 can also record a recorded image according to a photographed still image or a moving image on a recording medium (not shown).
  • the image sensor 10 is a solid-state imaging device that photoelectrically converts an optical image of an object formed by a lens (not shown) provided in the imaging device 1.
  • the image sensor 10 is a solid-state imaging device represented by a CCD (Charge Coupled Device) image sensor or a CMOS (Complementary Metal-Oxide Semiconductor) image sensor.
  • the image sensor 10 outputs a pixel signal corresponding to an optical image of a subject that has been captured, to a captured image capturing unit 240 provided in the image processing apparatus 20.
  • the DRAM 30 is a memory (data storage unit) for storing various data to be processed in the image processing apparatus 20 provided in the imaging device 1.
  • the DRAM 30 is connected to the data bus 210 via a DRAM interface unit 230 and a bus arbiter 220 provided in the image processing apparatus 20.
  • the DRAM 30 stores data of images of respective processing stages in the image processing apparatus 20.
  • the DRAM 30 stores the data of the pixel output by the captured image capturing unit 240 based on the pixel signal output from the image sensor 10.
  • the DRAM 30 stores data of images (still images, moving images, display images, recorded images, and the like) generated by the image processing unit 250 provided in the image processing apparatus 20.
  • the display device 40 is a display device that displays the display image output from the display processing unit 260 provided in the image processing device 20.
  • the display device 40 includes various display devices having different sizes of display images to be displayed, that is, different numbers of pixels.
  • a thin film transistor (TFT) liquid crystal display (LCD) that displays an image of VGA (640 ⁇ 480) size on the display device 40 or an electronic view finder (EVF)
  • TFT thin film transistor
  • LCD liquid crystal display
  • EMF electronic view finder
  • HDTV High Definition TeleVision
  • UHDTV Ultra High Definition TeleVision
  • the image processing apparatus 20 performs predetermined image processing on the pixel signal output from the image sensor 10 to generate a still image or a moving image. Further, the image processing device 20 generates a display image according to the generated still image or moving image. Then, the image processing device 20 causes the display device 40 to display the generated display image.
  • the image processing apparatus 20 can also generate a recording image according to the generated still image or moving image, and can record the generated recording image on a recording medium (not shown).
  • each of the captured image capturing unit 240, the image processing unit 250, and the display processing unit 260 is a processing block that realizes the processing function of the image processing performed in the image processing apparatus 20.
  • each of the captured image capturing unit 240, the image processing unit 250, and the display processing unit 260 accesses the DRAM 30 by DMA (Direct Memory Access) transfer via the data bus 210.
  • DMA Direct Memory Access
  • a priority when accessing the DRAM 30 when performing image processing that is, a priority representing a priority when performing DMA transfer is set.
  • the priority is set for each operation performed by the imaging device 1, that is, each operation mode.
  • the operation mode of the imaging device 1 is a shooting mode for shooting a subject, the shooting of the subject, and a display image for confirming the subject to be shot, so-called display of a live view image (through image), Real-time performance is required.
  • the processing block for realizing the function requiring real-time property in the image processing apparatus 20 breaks down the operation of the imaging apparatus 1 as a system.
  • the priority of the processing block for realizing the function requiring the real-time property is set high, so that the DMA transfer of the processing block having the high priority is not kept waiting.
  • the priorities of the captured image capturing unit 240 and the display processing unit 260 provided in the image processing device 20 are set high.
  • each of the captured image capturing unit 240 and the display processing unit 260 provided in the image processing apparatus 20 is a processing block whose priority is set to be high.
  • the image processing unit 250 provided in the image processing apparatus 20 is described as a processing block whose priority is set low.
  • the bus arbiter 220 arbitrates an access request (DMA request) to the DRAM 30 by DMA transfer from each processing block in the image processing apparatus 20 connected to the data bus 210, and transfers any one of the processing blocks to the DRAM 30. It is an arbitration circuit (so-called DMA arbitration circuit) that receives an access request.
  • the bus arbiter 220 receives an access request to the DRAM 30 from among the processing blocks that have output the access request signal (DMA request signal) based on the priority of each processing block provided in the image processing apparatus 20 (see FIG. Determine the processing block to allow.
  • the bus arbiter 220 increases the priority of the image processing unit 250. Then, the processing block to accept (permit) the access request to the DRAM 30 is determined. That is, even if the bus arbiter 220 is the image processing unit 250 which is a processing block with low priority, it is possible to increase the priority of the image processing unit 250 according to the priority switching signal SW. Arbitrate the access request to the DRAM 30 by the DMA transfer of
  • the bus arbiter 220 arbitrates the access request to the DRAM 30 from each processing block, and as a result, receives an access for notifying that the access request has been received to the processing block determined to accept (permit) the access request. It outputs a signal (a so-called DMA enable signal).
  • the bus arbiter 220 exchanges data via the data bus 210 with the processing block that has received the access request.
  • the bus arbiter 220 outputs information (access information) related to access to the DRAM 30, such as an address (including a bank) and an access direction (write or read) output together with the access request signal from the processing block that received the access request.
  • the bus arbiter 220 also outputs (transfers) data output from the processing block that has received the access request via the data bus 210 to the DRAM interface unit 230.
  • the bus arbiter 220 when the bus arbiter 220 performs read access for reading data from the DRAM 30, the bus arbiter 220 receives an access request via the data bus 210 for the data output from the DRAM interface unit 230 according to the output access information to the DRAM 30. Output (transfer) to the processing block.
  • the access request to each DRAM 30 from each processing block is prioritized
  • the arbitration operation based on the degree is similar to the operation of the existing bus arbiter (so-called DMA arbitration circuit). That is, the operation of the bus arbiter 220 arbitrating the access request to the DRAM 30 based on the priority can be easily considered based on the existing bus arbiter (so-called DMA arbitration circuit) technology. Therefore, with the bus arbiter 220 raising the priority of the image processing unit 250 according to the priority switching signal SW output from the image processing unit 250, the access request to the DRAM 30 by DMA transfer from each processing block is A detailed description of the arbitration operation is omitted.
  • the DRAM interface unit 230 is a DRAM controller that actually exchanges data with the DRAM 30 based on the access information output from the bus arbiter 220, that is, actually transfers (DMA) data.
  • the DRAM interface unit 230 controls the DRAM 30 based on the access information to the DRAM 30 which is output from the processing block to which the bus arbiter 220 receives the access request and is output (transferred) from the bus arbiter 220.
  • the DRAM interface unit 230 performs a write access to the DRAM 30, the data output (transferred) from the bus arbiter 220 and the data output to the data bus 210 by the processing block for which the bus arbiter 220 received the access request.
  • the DRAM interface unit 230 When the DRAM interface unit 230 performs read access to the DRAM 30, the DRAM interface unit 230 reads the data stored in the storage area of the address of the DRAM 30 specified by the access information and outputs the read data to the bus arbiter 220. .
  • the captured image capturing unit 240 is a processing block that performs various predetermined image processing on the data of the pixel signal output from the image sensor 10.
  • the image processing performed on the data of the pixel signal output from the image sensor 10 by the captured image capturing unit 240 is, for example, so-called preprocessing such as flaw correction and shading correction.
  • the image processing (pre-processing) to be performed on the data of the pixel signal output from the image sensor 10 by the captured image capturing unit 240 is not particularly limited.
  • the captured image capture unit 240 stores (writes) the data of the pixel signal (hereinafter, referred to as “preprocessed image data”) subjected to the preprocessing in the DRAM 30 by DMA transfer.
  • the captured image capturing unit 240 is also a DMA transfer unit (bus master) that performs DMA transfer for storing (writing) the preprocessed image data in the DRAM 30.
  • bus master DMA transfer unit
  • the captured image capture unit 240 is a high priority bus master.
  • the captured image capture unit 240 stores an access request signal (DMA request signal) for requesting a write access to the DRAM 30 when storing (writing) the preprocessed image data in the DRAM 30, and a DRAM 30 for storing the preprocessed image data.
  • An address (DMA address) for designating a storage area (including a bank) and an access direction signal (DMA write signal) indicating that it is an access direction for writing to the DRAM 30 are output to the bus arbiter 220.
  • the captured image capturing unit 240 transmits the preprocessed image data to the bus arbiter 220 after the output access request signal is received by the bus arbiter 220, that is, after the access acceptance signal (DMA permission signal) is input from the bus arbiter 220.
  • the preprocessed image data output from the captured image capturing unit 240 is output to the DRAM 30 via the bus arbiter 220 and the DRAM interface unit 230, and stored in the storage area of the address (DMA address) output along with the access request signal. (Written)
  • the captured image capturing unit 240 may be configured to temporarily store data of pixel signals output from the image sensor 10 and then perform preprocessing.
  • the captured image capture unit 240 may be configured to temporarily store the preprocessed image data subjected to the preprocess and then output the preprocessed image data to the bus arbiter 220 in the DMA transfer.
  • the image processing unit 250 is a processing block that applies predetermined image processing to preprocessed image data stored in the DRAM 30.
  • the image processing unit 250 performs DMA transfer for acquiring (reading) preprocessed image data to be subjected to image processing, and DMA transfer for storing (writing) image data generated by performing image processing in the DRAM 30. I do. More specifically, the image processing unit 250 acquires (reads out) preprocessed image data to be subjected to image processing from the DRAM 30 by DMA transfer. Then, the image processing unit 250 performs predetermined image processing on the acquired preprocessed image data. Thereafter, the image processing unit 250 stores (writes) the image data subjected to the image processing in the DRAM 30 by DMA transfer. As described above, the image processing unit 250 includes the bus master 2501, the image processing module 2502, the bus master 2503, and the priority switching control unit 2504.
  • the bus master 2501 is a DMA transfer unit that performs DMA transfer between the DRAM 30 and the image processing module 2502.
  • the bus master 2501 performs DMA transfer in which the image processing module 2502 acquires (reads) preprocessed image data to be subjected to image processing from the DRAM 30. That is, the bus master 2501 performs unidirectional (read) DMA transfer (hereinafter, referred to as “read DMA transfer”) with the DRAM 30.
  • the bus master 2501 includes the surface buffer 2501B.
  • the surface buffer 2501 B is a data storage unit that temporarily stores (preserves) image data (preprocessed image data) of a predetermined data amount (for example, the number of pixels).
  • the plane buffer 2501 B is configured of, for example, a memory such as a static random access memory (SRAM).
  • the surface buffer 2501 B has a so-called double buffer configuration including two sets of storage capacities for storing image data (preprocessed image data) of a predetermined data amount (for example, the number of pixels). Good. That is, the plane buffer 2501 B alternately switches between writing of image data to one storage capacity set and reading of image data from the other storage capacity set, thereby performing one read DMA transfer in the bus master 2501.
  • the image data may be input / output at the same time in units of.
  • the operation of the bus master 2501 having the surface buffer 2501B of the double buffer configuration can be easily considered based on the technology for controlling the operation of the existing double buffer. Therefore, the detailed description of the operation of the bus master 2501 provided with the surface buffer 2501B of the double buffer configuration will be omitted.
  • the bus master 2501 temporarily stores (stores) preprocessed image data acquired (read) from the DRAM 30 by read DMA transfer in the plane buffer 2501B, and stores (stored) preprocessed image data of a predetermined data amount. After that, in response to a request from the image processing module 2502, the stored (stored) preprocessed image data is output to the image processing module 2502. That is, the bus master 2501 outputs the preprocessed image data (read) acquired (read) from the DRAM 30 by read DMA transfer to the image processing module 2502 at the timing when the image processing module 2502 performs image processing. As described above, since the image processing unit 250 is set to have a low priority, the bus master 2501 is a low priority bus master.
  • the image processing module 2502 is a processing module that executes predetermined image processing performed on the preprocessed image data in the image processing unit 250.
  • image processing performed by the image processing module 2502 on the preprocessed image data for example, stillness such as noise removal processing, YC (brightness color difference) conversion processing, distortion correction processing, motion detection processing, resizing processing, JPEG compression processing, etc.
  • Image compression processing, MPEG compression processing There are various image processing for display and image processing for recording, such as moving image compression processing such as H.264 compression processing.
  • the image processing performed by the image processing module 2502 on the preprocessed image data is not particularly limited.
  • the image processing module 2502 performs, for example, still image expansion processing such as JPEG expansion processing, MPEG expansion processing, H.264 processing, and the like on the data of the recorded image recorded on the recording medium (not shown). It may be configured to perform image processing such as moving image extension processing such as H.264 extension processing.
  • the image processing module 2502 performs predetermined image processing as described above on the acquired preprocessed image data, and generates image data of a still image (hereinafter referred to as “still image data”) or image data of a moving image. (Hereinafter referred to as "moving image data").
  • still image data a still image
  • moving image data image data of a moving image.
  • the image processing module 2502 notifies the priority switching control unit 2504 of the progress of the image processing to be applied to the acquired preprocessed image data.
  • the image processing module 2502 notifies the progress of the image processing applied to the preprocessed image data by the image processing progress status signal PS.
  • the image processing progress status signal PS is, for example, a signal that represents a ratio (percentage) in which the image processing of the image processing module 2502 on all preprocessed image data for one frame has been completed by the present time.
  • the percentage (%) of completion of the image processing represented by the image processing progress status signal PS is, for example, the number of all pixels of the preprocessed image for one frame and the current time It can be calculated based on the number of pixels for which image processing has been completed. Further, the image processing module 2502 determines, for example, the percentage (%) of completion of the image processing based on the information of the coordinates of the pixel currently subjected to the image processing within the area of the preprocessed image of one frame. It can also be calculated.
  • the image processing performed by the image processing module 2502 on the preprocessed image data is not limited to the image processing performed on the entire area of the image of one frame.
  • the image area of one frame is divided into a plurality of rectangular blocks, and the process is sequentially performed on each of the divided blocks, and the process on all the blocks is completed.
  • Image processing on the entire area of the image of one frame is completed.
  • the image processing module 2502 outputs an image processing progress status signal PS, which is output to notify the progress status of the image processing being applied to the preprocessed image data, by the current time among the plurality of divided blocks.
  • a signal representing the number of blocks that have completed image processing may be output.
  • the number of pixels included in each of the divided blocks may be different.
  • preprocessed image data of the same pixel may be used for image processing of different blocks. Therefore, the number of pixels to be processed before the image processing module 2502 completes the image processing on the entire area of the image of one frame is larger than the number of pixels for one frame.
  • the image processing module 2502 applies all blocks that need to be subjected to image processing before outputting image processing image data (still image data and moving image data) for one frame as the image processing progress status signal PS.
  • a signal representing the number of pixels obtained by totaling the number of different pixels included in each of the blocks for which image processing has been completed up to the present time may be output among the total number of pixels included in the number of different pixels.
  • the image processing performed by the image processing module 2502 on the preprocessed image data is not limited to the image processing performed for each frame.
  • the image processing module 2502 in order to process a plurality of frames as one group (so-called, GOP: Group of Picture), the image processing module 2502 also performs image processing in units of this group.
  • the image processing module 2502 may output, as the image processing progress status signal PS, a signal indicating the number of frames for which image processing has been completed by the current time out of a plurality of frames included in one group unit. Good.
  • the bus master 2503 is a DMA transfer unit that performs DMA transfer between the DRAM 30 and the image processing module 2502.
  • the bus master 2503 performs DMA transfer to cause the DRAM 30 to store (write) image-processed image data (still image data or moving image data) after the image processing module 2502 performs image processing. That is, the bus master 2503 performs unidirectional (write) DMA transfer (hereinafter referred to as “write DMA transfer”) with the DRAM 30.
  • the bus master 2503 includes the surface buffer 2503B.
  • the plane buffer 2503B is a data storage unit that temporarily stores (saves) image data (still image data and moving image data) of a predetermined data amount (for example, the number of pixels).
  • the plane buffer 2503B is also configured of, for example, a memory such as an SRAM.
  • the surface buffer 2503B is also a double having two sets of storage capacities for storing image data (still image data and moving image data) of a predetermined data amount (for example, the number of pixels) similarly to the surface buffer 2501B. It may be a buffer configuration.
  • the operation of the bus master 2503 having the surface buffer 2503B of the double buffer configuration is also based on the technology for controlling the operation of the existing double buffer as in the operation of the bus master 2501 having the surface buffer 2501B of the double buffer configuration. Therefore, detailed description of the operation of the bus master 2503 provided with the surface buffer 2503B of the double buffer configuration will be omitted.
  • the bus master 2503 temporarily stores (saves) image-processed image data (still image data and moving image data) generated by the image processing module 2502 by performing image processing in the surface buffer 2503 B, and has a predetermined data amount. After storing (saving) the image-processed image data, the stored (saved) image-processed image data is output to the bus arbiter 220 at the timing of DMA transfer, and is stored (written) in the DRAM 30. As described above, since the image processing unit 250 is set to have low priority, the bus master 2503 is also a low priority bus master.
  • the priority switching control unit 2504 notifies the bus arbiter 220 of the DMA transfer priority of the image processing unit 250, which is considered when the bus arbiter 220 arbitrates the access request to the DRAM 30 from each processing block.
  • the priority switching control unit 2504 calculates the remaining processing time when the image processing module 2502 performs image processing based on the image processing progress status signal PS output from the image processing module 2502. . Then, the priority switching control unit 2504 calculates the remaining processing time that has been calculated and the time of the image processing limit defined as the time required for the image processing module 2502 to complete the image processing for one frame. Based on the current elapsed time, the degree of urgency of the image processing performed by the image processing module 2502 is determined. The priority switching control unit 2504 generates a priority switching signal SW for notifying of the urgency of the image processing performed by the image processing module 2502 based on the determination result. The priority switching signal SW is also a signal for requesting switching (change) of the priority of DMA transfer in the image processing unit 250.
  • the parameter used by the priority switching control unit 2504 to determine the priority of DMA transfer of the image processing unit 250 is, for example, It is set in the register of the priority switching control unit 2504 by a CPU (Central Processing Unit) (not shown) provided in the image processing apparatus 20 or the like.
  • a CPU Central Processing Unit
  • a CPU is a control unit that controls the entire image processing apparatus 20 by controlling the respective components provided in the image processing apparatus 20.
  • a CPU controls the entire image processing apparatus 20 according to a program or data for controlling each component. Note that a CPU (not shown) may control the components provided in the imaging device 1.
  • Programs and data for controlling respective components provided in the image processing apparatus 20 by a CPU (not shown) are stored in the DRAM 30 connected to the data bus 210 via the DRAM interface unit 230 and the bus arbiter 220. It may be In this case, the CPU (not shown) controls the entire image processing apparatus 20 by reading and executing programs and data stored in the DRAM 30 via the bus arbiter 220 and the DRAM interface unit 230.
  • the priority switching control unit 2504 outputs the generated priority switching signal SW to the bus arbiter 220 to have the arbitration performed in a state where the priority of the image processing unit 250 is high, that is, in the image processing unit 250 It notifies that it wants to urgently receive DMA transfer (read DMA transfer or write DMA transfer) (want to allow it).
  • the bus arbiter 220 arbitrates an access request to the DRAM 30 from each processing block, the bus arbiter 220 switches the priority of the image processing unit 250 to high on the basis of the priority switching signal SW.
  • the priority switching control unit 2504 When the priority switching control unit 2504 notifies that the image processing unit 250 wants to receive DMA transfer urgently (permits permission), the access request (read DMA transfer) from the bus master 2501 Of the access requests from the bus master 2503 (write DMA transfer), information on which one of the bus masters should receive the access request with higher priority (to be permitted) is also notified. It is also good. That is, the priority switching control unit 2504 acquires the preprocessed image data to be subjected to the image processing by the image processing module 2502 from the DRAM 30, and the DRAM 30 of the image processed image data after the image processing module 2502 performs the image processing. Information indicating which one of storage (writing) to which preference is to be given priority may also be notified.
  • the display processing unit 260 acquires (reads) image-processed image data (still image data or moving image data) stored in the DRAM 30, and causes the display device 40 to display a display image according to the acquired image-processed image data. It is a block.
  • the display processing unit 260 acquires (reads) image processing image data to be displayed on the display device 40 from the DRAM 30 by DMA transfer. That is, the display processing unit 260 is also a DMA transfer unit (bus master) that performs DMA transfer for obtaining (reading) image processing image data from the DRAM 30. As described above, since the display processing unit 260 is set to have high priority, the display processing unit 260 is a high priority bus master.
  • the display processing unit 260 obtains an access request signal (DMA request signal) for requesting a read access to the DRAM 30 when obtaining (reading out) the image processing image data from the DRAM 30, and obtaining the image processing image data
  • DMA request signal an access request signal
  • An address (DMA address) for designating a storage area (including a bank) and an access direction signal (DMA read signal) indicating that it is an access direction for reading to the DRAM 30 are output to the bus arbiter 220.
  • the display processing unit 260 reads the DRAM interface unit 230 from the DRAM 30 after the output access request signal is received by the bus arbiter 220, that is, after the access acceptance signal (DMA permission signal) is input from the bus arbiter 220.
  • the image processing image data output via the bus arbiter 220 is acquired.
  • the display processing unit 260 outputs a display image corresponding to the acquired image-processed image data to the display device 40 for display.
  • the display processing unit 260 may be configured to output a display image generated by performing a predetermined display process on the image processing image data read (obtained) from the DRAM 30 and display the display image on the display device 40. Good.
  • display processing that the display processing unit 260 applies to the image-processed image data for example, processing for converting the size of the display image to the size of the image displayed by the display device 40; And processing for superimposing an on screen display (OSD) image for displaying various information related to a moving image.
  • OSD on screen display
  • the display processing performed by the display processing unit 260 on the image processing image data is not particularly limited.
  • the display processing unit 260 may be configured to temporarily store the image-processed image data read out (obtained) from the DRAM 30 and then to perform the display processing.
  • the display processing unit 260 may be configured to output data of the stored display image to the display device 40 for display after temporarily storing data of the display image subjected to the display processing.
  • the imaging device 1 captures a still image or a moving image of a subject with the image sensor 10, and causes the display device 40 to display a display image corresponding to the captured still image or the moving image.
  • the imaging device 1 can also record a recorded image according to a still image or a moving image captured by the image sensor 10 on a recording medium (not shown).
  • the image processing unit 250 provided in the image processing device 20 and the bus arbiter 220 constitute the memory access device of the first embodiment.
  • the image processing unit 250 which is a processing block with low priority, is combined with the bus arbiter 220.
  • a memory access device is configured.
  • the image processing module 2502 outputs the image processing progress status signal PS for notifying the progress status of the image processing being performed to the priority switching control unit 2504. .
  • the priority switching control unit 2504 controls the image processing module 2502 based on the progress of the image processing represented by the image processing progress signal PS output from the image processing module 2502.
  • the image processing unit 250 outputs to the bus arbiter 220 a priority switching signal SW for notifying the priority of DMA transfer in the image processing unit 250.
  • the priority switching signal SW is an image to be executed by the image processing unit 250. If it indicates that the degree of urgency of the process is high, the priority of the image processing unit 250 is switched to be high, and the access request from the image processing unit 250 is preferentially received (permitted).
  • the image processing unit 250 (more specifically, the image processing module 2502) does not stop the image processing to be executed, and the limit defined as the time required to complete the image processing for one frame ( Image processing can be completed by the time limit).
  • the image processing unit 250 image processing unit 250 (image processing unit) A series of image processing on image data can be performed without interruption without stopping the operation of the module 2502).
  • the operation of the image processing unit 250 will be described. First, after the image processing unit 250 acquires preprocessed image data from the DRAM 30 by DMA transfer and performs image processing, a basic operation when storing (writing) the image processed image data in the DRAM 30 by DMA transfer will be described. Do.
  • the bus master 2501 obtains (reads out) preprocessed image data to be subjected to the image processing from the DRAM 30 by DMA transfer.
  • the bus master 2501 obtains an access request signal (DMA request signal) for requesting a read access to the DRAM 30 when acquiring (reading) the preprocessed image data from the DRAM 30, and a storage area of the DRAM 30 for acquiring the preprocessed image data.
  • the bus interface 250 reads from the DRAM 30 the bus arbiter 220. Are temporarily stored in the plane buffer 2501B. Thereafter, the bus master 2501 stores (stores) preprocessed image data of a predetermined data amount in the surface buffer 2501B, and reads out the preprocessed image data stored in the surface buffer 2501B from the image processing module 2502 in response to a request. And outputs it to the image processing module 2502.
  • the image processing module 2502 performs predetermined image processing on the preprocessed image data output from the bus master 2501 (more specifically, the surface buffer 2501B) to generate image processed image data (still image data (still image data). And moving image data), and outputs the generated image-processed image data to the bus master 2503.
  • the bus master 2503 temporarily stores the image processing image data output from the image processing module 2502 in the plane buffer 2503B. Thereafter, the bus master 2503 stores (stores) image processing image data of a predetermined data amount in the plane buffer 2503B, and stores the image processing image data stored (stored) in the plane buffer 2503B in the DRAM 30 by DMA transfer. (Write).
  • the bus master 2503 stores an access request signal (DMA request signal) for requesting a write access to the DRAM 30 when storing (writing) the image processing image data in the DRAM 30, and a storage area of the DRAM 30 storing the image processing image data.
  • DMA request signal access request signal
  • An address (DMA address) for designating (including a bank) and an access direction signal (DMA write signal) indicating that it is an access direction for writing to the DRAM 30 are output to the bus arbiter 220.
  • the bus master 2503 receives the processed access image signal stored in the plane buffer 2503 B after the output access request signal is received by the bus arbiter 220, that is, after the access acceptance signal (DMA permission signal) is input from the bus arbiter 220. It is read and output to the bus arbiter 220.
  • the image-processed image data (still image data and moving image data) output by the bus master 2503 is output to the DRAM 30 via the bus arbiter 220 and the DRAM interface unit 230, and the address (DMA address) It is stored (written) in a storage area.
  • the image processing unit 250 acquires (reads out) the preprocessed image data to be subjected to the image processing from the DRAM 30 and the image processed image data after the image processing is performed (still image data or moving image data Is stored in the DRAM 30, the image data is exchanged with the DRAM 30 via the surface buffer 2501B and the surface buffer 2503B provided in the bus master 2501.
  • the image processing module 2502 can perform predetermined image processing without being affected by the timing of DMA transfer with the DRAM 30.
  • the image processing unit 250 is a processing block whose priority is set low in the image processing apparatus 20. For this reason, in the state where the image processing unit 250 is congested with the data bus 210 due to an increase in access requests to the DRAM 30 by the captured image capturing unit 240 and the display processing unit 260 having high priority, the bus arbiter 220 The access request for access may not be accepted (permitted). However, although the image processing unit 250 is not a real-time property, it is a processing block responsible for the operation of the image pickup apparatus 1 equipped with the image processing apparatus 20, so it is within the time of the predetermined image processing limit. If the image processing is not completed, the operation of the imaging apparatus 1 as a system is broken.
  • the priority switching control unit 2504 controls the image processing module 2502 based on the progress of the image processing represented by the image processing progress signal PS output from the image processing module 2502. Control is performed to increase the priority for accepting (permitting) an access request from the image processing unit 250 before a wait state occurs in the image processing to be executed and the operation is stopped. That is, in the memory access device of the first embodiment, the priority switching control unit 2504 controls to switch the low priority set in the image processing unit 250 to the high priority. At this time, the priority switching control unit 2504 determines the degree of urgency of the image processing performed by the image processing module 2502. This determination is performed by calculating the remaining processing time in the image processing performed by the image processing module 2502. That is, the priority switching control unit 2504 limits the limit in image processing defined as the time when the image processing module 2502 needs to complete the image processing for one frame. It is determined whether it is completed by the time of).
  • FIG. 2 is a flow chart showing a processing procedure of processing of determining the degree of urgency of image processing in the memory access apparatus of the first embodiment of the present invention.
  • the image processing represented by the image processing progress status signal PS output from the image processing module 2502 is completed. Based on the ratio (percentage), the image processing module 2502 calculates the remaining processing time when performing the image processing (step S110).
  • parameters used to calculate the remaining processing time in the image processing module 2502 are set in a register. The method of calculating the remaining processing time calculated by the priority switching control unit 2504 in step S110 will be described later.
  • the priority level switching control unit 2504 determines the remaining processing time calculated in step S110, the time of the image processing limit defined in advance and set in the register, and the current elapsed time. Then, the time for which the image processing module 2502 performs image processing (hereinafter, referred to as “processing allowance time”) is calculated (step S120).
  • parameters used to calculate the processing allowance time in the image processing module 2502 are set in a register.
  • the method of calculating the processing margin time calculated by the priority switching control unit 2504 in step S120 will be described later.
  • the priority switching control unit 2504 compares the calculated processing allowance time with the emergency degree threshold time, and determines whether the calculated processing allowance time is shorter than the urgent degree threshold time (step S130). . Thus, the priority switching control unit 2504 determines the degree of urgency of the image processing performed by the image processing module 2502.
  • a parameter used to determine the degree of urgency of the image processing performed by the image processing module 2502, that is, the urgency degree threshold time, is set in the register.
  • step S130 When it is determined in step S130 that the calculated processing allowance time is not shorter than the emergency degree threshold time (the processing allowance time is equal to or greater than the emergency degree threshold time) (“NO” in step S130), the priority switching control unit 2504 The image processing module 2502 determines that the urgency of the image processing performed by the image processing module 2502 is not high (low), and the process advances to step S140. Then, the priority switching control unit 2504 generates a priority switching signal SW indicating that the priority of the image processing unit 250 is not high, that is, the priority remains low (step S140).
  • step S130 determines that the calculated processing allowance time is shorter than the emergency degree threshold time (“YES” in step S130).
  • the priority switching control unit 2504 determines that the image processing module 2502 performs image processing emergency It is determined that the degree is high, and the process proceeds to step S150. Then, the priority switching control unit 2504 generates a priority switching signal SW indicating that the priority of the image processing unit 250 is increased (step S150).
  • the priority switching control unit 2504 determines the urgency of the image processing executed by the image processing module 2502, and switches the priority set in the image processing unit 250 based on the determined result. To generate a priority switching signal SW. Then, the priority switching control unit 2504 outputs the generated priority switching signal SW to the bus arbiter 220. Thus, when the bus arbiter 220 receives (permits) an access request from each processing block, the priority switching signal SW indicates that the urgency of the image processing performed by the image processing unit 250 is increased. If there is, the priority of the image processing unit 250 is switched to be high, and the access request from the image processing unit 250 is preferentially received (permitted).
  • the image processing progress status signal PS represents the progress status of the image processing of the image processing unit 250 with respect to all preprocessed image data for one frame, as a percentage (%) that has been completed by the present time It is a signal.
  • the priority switching control unit 2504 calculates the remaining processing time when the image processing module 2502 performs image processing, based on the percentage (%) of completion of the image processing represented by the image processing progress status signal PS. Note that there are various calculation methods corresponding to image processing performed by the image processing module 2502 as a method of calculating the remaining processing time in the priority switching control unit 2504.
  • the first calculation method is a method of calculating the remaining processing time based on the processing time when the image processing module 2502 performs image processing of image data of one frame. That is, in the first calculation method, the remaining processing time is calculated based on the time until the image processing module 2502 completes the image processing for one frame.
  • the priority switching control unit 2504 calculates the remaining processing time by the following equation (1) and the following equation (2).
  • Total processing time processing speed x total number of output pixels (1)
  • Remaining processing time total processing time ⁇ (1-processing completion rate) ... (2)
  • the total processing time is the processing time required for the image processing module 2502 to perform image processing for one frame.
  • the processing speed is the processing speed at which the image processing module 2502 performs image processing on preprocessed image data of one pixel.
  • the processing speed is the processing time required for the image processing module 2502 to perform image processing of preprocessed image data of one pixel.
  • the total number of output pixels is the number of pixels of image processing image data (still image data and moving image data) for one frame that the image processing module 2502 performs image processing and outputs.
  • the remaining processing time is the processing time required for the image processing module 2502 to finish the image processing that has not been completed by the present time.
  • the processing completion ratio is a ratio (percentage) of the image processing which has been completed by the image processing module 2502 and represented by the image processing progress status signal PS.
  • each of the processing speed and the total number of output pixels used in the above equation (1) to calculate the remaining processing time by the priority switching control unit 2504 in the first calculation method is for calculating the remaining processing time.
  • the CPU (not shown) is set in the register of the priority switching control unit 2504.
  • the image processing module 2502 divides an image area of one frame into a plurality of rectangular blocks including preprocessed image data having the same number of pixels, and performs image processing for each of the divided blocks.
  • the remaining processing time is calculated based on the processing time of image processing for each block.
  • the remaining processing time is calculated based on the processing time when the image processing module 2502 performs image processing of image data for one frame.
  • the priority switching control unit 2504 uses the following equation (3) and the following equation (4) to deal with the image processing performed for each block divided by the image processing module 2502. calculate.
  • Number of remaining blocks number of all blocks-number of processing completed blocks (3)
  • Remaining processing time number of remaining blocks ⁇ number of pixels of one block ⁇ processing speed (4)
  • the remaining number of blocks is the number of blocks that need to be processed before the image processing module 2502 outputs image processing image data (still image data and moving image data) for one frame. is there. That is, in the blocks divided by the image processing module 2502, the remaining number of blocks is the number of blocks for which image processing has not been completed at the present time. Further, in the above equation (3), the total number of blocks is the number of blocks obtained by dividing the image area of one frame in order for the image processing module 2502 to perform image processing of the image data of one frame. Further, in the above equation (3), the number of processing completed blocks is the number of blocks represented by the image processing progress status signal PS and in which the image processing module 2502 has completed the image processing up to the present time.
  • the remaining processing time is the processing time required for the image processing module 2502 to finish the image processing that has not been completed by the present time.
  • the remaining processing time is the image processing for the blocks of the remaining number of blocks for which image processing is not completed among the processing times required to complete the image processing of all the blocks divided by the image processing module 2502. It is the processing time required.
  • the number of remaining blocks is the number of remaining blocks calculated in the above equation (3).
  • the number of pixels in one block is the number of pixels included in each block divided by the image processing module 2502.
  • the processing speed is the same as the processing speed in the above equation (1) of the first calculation method.
  • the third calculation method when the image processing module 2502 divides an image area of one frame into a plurality of blocks and performs image processing, each block is different even when the number of pixels included in each block is different. Is a method of calculating the remaining processing time based on the processing time of the image processing for. That is, the remaining processing time is calculated based on the processing time of the image processing which differs in processing time required for each of the divided blocks.
  • the remaining processing time based on the processing time when the image processing module 2502 performs image processing of image data of one frame Is calculated.
  • the priority switching control unit 2504 uses the following equations (5) and (6). Calculate the remaining processing time.
  • Remaining input pixel number total input pixel number-current input pixel number (5)
  • Remaining processing time remaining input pixel number ⁇ processing speed (6)
  • the remaining number of input pixels is all that needs to be processed before the image processing module 2502 outputs image processing image data (still image data and moving image data) for one frame. It is the number of pixels obtained by totaling different numbers of pixels included in the block. That is, the remaining number of input pixels is the number of pixels obtained by totaling the number of different pixels included in each block which has not been processed at the current time in each block divided by the image processing module 2502. Further, in the above equation (5), the total input pixel number is input to the image processing module 2502 until the image processing module 2502 outputs image processing image data (still image data and moving image data) for one frame. All pixels.
  • the total input number of pixels is the sum of the number of different pixels included in all blocks used by the image processing module 2502 to perform image processing. That is, the total input number of pixels is the number of pixels larger than the number of pixels for one frame. Further, in the above equation (5), the current number of input pixels is the number of pixels represented by the image processing progress status signal PS which is the total number of different pixels included in each block for which image processing has been completed up to the present time is there.
  • the remaining processing time is the processing time required for the image processing module 2502 to finish the image processing that has not been completed by the present time.
  • the remaining processing time is the processing time required for image processing for each block for which image processing has not been completed, out of the processing time required for image processing for all blocks divided by image processing module 2502 to be completed.
  • the remaining number of input pixels is the number of remaining input pixels calculated in the above equation (5).
  • the processing speed is the same as the processing rate in the above equation (1) of the first calculation method and the above equation (4) of the second calculation method.
  • the priority switching control unit 2504 uses the total number of input pixels and the current number of input pixels used in the above equation (5) to calculate the remaining processing time according to the third calculation method, and in the above equation (6)
  • Each of the processing speeds is set in the register of the priority switching control unit 2504 by a CPU (not shown) as a parameter used to calculate the remaining processing time.
  • the CPU substitutes the remaining input pixel number used in the above equation (6) with the priority switching control unit 2504, instead of the total input pixel number used in the above equation (5) and the current input pixel number. It may be configured to be set in the register of.
  • the image processing module 2502 may output a signal representing the remaining number of input pixels to the priority switching control unit 2504 as the image processing progress status signal PS.
  • the priority switching control unit 2504 calculates the remaining processing time by the calculation method as shown in the first calculation method to the third calculation method. Then, in the process of step S120, the priority switching control unit 2504 calculates a processing allowance time when the image processing module 2502 performs image processing.
  • the processing allowance time is the remaining processing time calculated in step S110, and the time (hereinafter referred to as "limit time") of the limit of image processing which is defined in advance and set in the register. Calculated based on the current elapsed time.
  • the image processing module 2502 calculates the processing margin time by the following expression (7).
  • Processing allowance time limit time-current elapsed time-remaining processing time (7)
  • the limit time is the limit time of image processing defined as the time required for the image processing module 2502 to complete image processing for one frame.
  • the current elapsed time is the elapsed time from the time the image processing module 2502 starts the image processing to the current time.
  • the remaining processing time is the remaining processing time calculated by any one of the first to third calculation methods described above.
  • each of the limit time used by the priority switching control unit 2504 in the above equation (7) to calculate the processing margin time and the current elapsed time is not a parameter used to calculate the processing margin time. It is set in the register of the priority switching control unit 2504 by the illustrated CPU.
  • the current elapsed time used in the above equation (7) for the priority switching control unit 2504 to calculate the processing allowance time is determined by the timer (not shown) provided in the priority switching control unit 2504 or the image processing unit 250. It may be configured to measure an elapsed time from the timing when the image processing module 2502 starts the image processing.
  • the priority switching control unit 2504 calculates the processing margin time when the image processing module 2502 performs the image processing by the above equation (7) in the process of step S120. Then, in the process of step S130, the priority switching control unit 2504 determines the degree of urgency of the image processing to be performed by the image processing module 2502 by comparing the calculated processing allowance time and the degree of urgency threshold time. The priority switching signal SW corresponding to the degree of urgency of image processing is generated and output to the bus arbiter 220.
  • the image processing module 2502 sets a predetermined time coefficient for giving a margin to either one or both of the limit time and the remaining processing time in order to give a further margin to the processing margin time.
  • the processing margin time may be calculated by the above equation (7).
  • the time coefficient is, for example, a time that can avoid the influence of the loss time taking into consideration the loss time of the DRAM 30 in each DMA transfer performed by the bus master 2501 and the bus master 2503. Is the coefficient specified as For example, the time factor is defined as a limit time and a percentage to the remaining processing time.
  • the loss time in DMA transfer is, for example, as a restriction of a normal DRAM, when switching from a data reading state to a data writing state, a data writing state to a data reading state It is a predetermined time (certain time) that there is a restriction that control can not be accepted when, for example, switching to storage areas (banks) of the same address is continuously accessed.
  • the time coefficient for the priority switching control unit 2504 to further allow the processing allowance time is a register of the priority switching control unit 2504 by the CPU (not shown) as a parameter used to calculate the processing allowance time. It may be set to
  • the limit time is stopped due to the occurrence of a waiting state in the image processing performed by the image processing module 2502 and the operation or function as a system in the imaging device 1 or the image processing device 20 is not broken.
  • the time until the end of the image processing by the image processing module 2502 is defined. That is, the access request output from the image processing unit 250 is accepted by the bus arbiter 220 (permitted) before the limit time is stopped due to the occurrence of a waiting state in the image processing performed by the image processing unit 250. It is set based on the idea that the priority switching control unit 2504 controls to increase the priority. Therefore, the limit time is set in various ways by the image processing performed by the image processing module 2502.
  • the operation mode of the imaging device 1 is a shooting mode for shooting a still image of a subject.
  • the display processing unit 260 causes the display device 40 to display the display image corresponding to the image processing image data.
  • Image-processed image data still image data
  • a periodic time is set based on the timing at which the display processing unit 260 acquires (reads) the image processed image data of each frame from the DRAM 30.
  • FIG. 3 is a diagram schematically showing an example of the relationship between the limit time and the image processing period in the memory access device according to the first embodiment of the present invention.
  • a limit time set for each frame, a period (image processing period) in which the image processing unit 250 performs image processing for each frame, and an image of each frame for the display processing unit 260 An example of a relation with a period (display period) which displays a display image according to processing image data on display 40 is shown typically.
  • the operation period to be performed and the operation period to perform write DMA transfer for causing the bus master 2503 to store (write) image processing image data in the DRAM 30 are collectively shown as an image processing period in the image processing unit 250.
  • the surface buffer 2501 B provided in the bus master 2501 and the surface buffer 2503 B provided in the bus master 2503 each have a double buffer configuration. It shows the operation period.
  • a period during which the display processing unit 260 acquires (reads out) the image-processed image data of each frame from the DRAM 30 and performs display processing, and displays the display image on the display device 40 It is shown as a display period.
  • the limit time in each frame is set at the timing when the display processing unit 260 starts acquisition (reading) of the image processing image data from the DRAM 30. Then, the image processing unit 250 performs image processing so as to end the image processing by the limit time set for each frame.
  • the priority switching control unit 2504 performs processing based on the remaining processing time calculated based on the image processing progress status signal PS output from the image processing module 2502, the limit time, and the current elapsed time. Calculate the allowance time.
  • FIG. 3 also shows the processing margin time calculated by the priority switching control unit 2504. Then, the priority switching control unit 2504 determines the degree of urgency of the image processing to be performed by the image processing module 2502 based on the calculated processing allowance time.
  • the image processing of the image processing unit 250 in each frame is completed by the limit time set for each frame.
  • the image processing period in which the image processing unit 250 performs image processing is different for each frame.
  • the image processing period of frame 2 is significantly longer than the image processing period of frame 1 and the image processing period of frame 3.
  • the processing allowance time of frame 2 is significantly shorter than the processing allowance time of frame 1 and the processing allowance time of frame 3.
  • the read DMA transfer by the bus master 2501 for acquiring (reading) the preprocessed image data of the frame 2 to be subjected to the image processing from the DRAM 30 is made to wait. That is, as the bus arbiter 220 preferentially receives (permits) access requests from other processing blocks having higher priority than the image processing unit 250, the access request from the bus master 2501 is accepted by the bus arbiter 220 ( It is because it took a long time to be permitted.
  • the priority switching control unit 2504 determines that the processing allowance time calculated for the frame 2 is shorter than the urgency threshold time in the process of step S130, the urgency of the image processing performed by the image processing module 2502 is high It is determined that Then, based on the determination result, the priority switching control unit 2504 generates a priority switching signal SW for notifying that the priority set in the image processing unit 250 is to be switched to a high level, and sends it to the bus arbiter 220. Output.
  • the bus arbiter 220 arbitrates the access request to the DRAM 30 from each processing block, the bus arbiter 220 switches the priority of the image processing unit 250 to high according to the priority switching signal SW, Prioritize (accept) access requests. More specifically, the bus arbiter 220 preferentially receives (permits), for example, read DMA transfer by the bus master 2501 and write DMA transfer by the bus master 2503.
  • FIG. 3 shows an example of the emergency threshold time. Further, in FIG. 3, as an example of the priority switching signal SW output to the bus arbiter 220 by the priority switching control unit 2504, the priority set in the image processing unit 250 is switched to high in the image processing period of frame 2. It shows the state of notifying that.
  • the priority switching signal SW output from the priority switching control unit 2504 indicates that the priority of the image processing unit 250 is increased at the “High” level, and the image processing unit at the “Low” level. This means that the priority of 250 is lowered (the priority is kept low).
  • the write DMA transfer by the bus master 2503 is preferentially received (permitted) by the bus arbiter 220.
  • the image processing period of frame 2 shown in FIG. 3 is a period shorter than the image processing period currently shown in FIG.
  • the processing allowance time of frame 2 shown in FIG. 3 is a period longer than the processing allowance time currently shown in FIG.
  • the image processing of frame 2 by the image processing unit 250 exceeds the limit time of frame 2 and causes a failure in a series of image processing of the imaging mode in the imaging device Can be reduced. That is, the image processing unit 250 can complete the image processing of frame 2 more reliably by the limit time of frame 2, and the imaging device 1 can perform a series of image processing in the shooting mode without any delay. .
  • the display processing unit 260 causes the display device 40 to display a display image corresponding to the image processing image data for each frame, that is, the display processing unit 260 acquires image processing image data from the DRAM 30 for each frame (read In this case, the limit time is set for each frame period as in the example shown in FIG. However, the display processing unit 260 does not display the display image corresponding to the image-processed image data of all the frames on the display device 40, but displays the display image on the display device 40 at a timing of a plurality of times. In the case where the display image is displayed on the display device 40 by thinning out the frames, the limit time is set for each cycle of the thinned out frames.
  • the operation mode of the imaging device 1 is a continuous shooting mode in which still images of a subject are continuously photographed.
  • the image processing module 2502 generates image-processed image data (still image data) at so-called continuous shooting intervals from the timing at which the subject is photographed at a certain time to the timing at which the subject is photographed next. It is necessary to store (write) in the DRAM 30. Therefore, the limit time is set to a periodic time based on the interval at which the captured image capturing unit 240 stores (writes) the preprocessed image data according to the data of the pixel signal output from the image sensor 10 in the DRAM 30. Ru.
  • the processing allowance time is calculated to determine the urgency of the image processing performed by the image processing module 2502. Then, the priority switching control unit 2504 outputs the priority switching signal SW based on the determination result to the bus arbiter 220, so that the image processing unit 250 can end the image processing more reliably by the limit time.
  • the imaging device 1 can perform a series of image processing in the continuous shooting mode without any delay.
  • the relationship between the limit time and the image processing period when the operation mode of the imaging device 1 is the continuous shooting mode is considered in the same manner as an example of the relationship between the limit time and the image processing period in the shooting mode shown in FIG. be able to. More specifically, in the example of the relationship between the limit time and the image processing period shown in FIG. 3, the display processing unit 260 in which the limit time is set starts acquisition (reading) of the image processing image data from the DRAM 30. This timing can be easily considered by replacing the timing when the captured image capturing unit 240 starts storing (writing) the preprocessed image data in the DRAM 30. Therefore, detailed description of the relationship between the limit time and the image processing period when the operation mode of the imaging device 1 is the continuous shooting mode will be omitted.
  • the operation mode of the imaging device 1 is a moving image mode in which a moving image of a subject is captured.
  • the image processing module 2502 converts image processing image data of a plurality of frames into one group and converts (encodes) the image processing image data of a plurality of frames into image processing image data stored in the DRAM 30. It is necessary to generate image processed image data (moving image data) for a plurality of frames included in the group and store (write in) the DRAM 30 by the timing of acquiring (reading) the image data.
  • the limit time is a timing at which image processing image data included in each group to be converted (encoded) by the moving image processing unit (not shown) collectively, that is, image processing image data in group units is obtained (read out) from the DRAM 30. Periodic time based on is set.
  • FIG. 4 is a view schematically showing another example of the relationship between the limit time and the image processing period in the memory access apparatus according to the first embodiment of the present invention.
  • a limit time set for each group, an image processing period in which the image processing unit 250 performs image processing for each frame, and a period corresponding to a frame included in each group (group
  • An example of a relationship between a processing period) and a period (encoding period) in which a plurality of frames of image processing image data included in each group are collectively converted (encoded) by a moving image processing unit (not shown) is schematically shown.
  • the example of the relationship between the limit time and the image processing period in the moving image mode shown in FIG. 4 is an example in the case where three frames are one group.
  • the period and the operation period of the write DMA transfer in the bus master 2503 are collectively shown as an image processing period in the image processing unit 250.
  • the moving image processing unit acquires (reads out) image processing image data for a plurality of frames (3 frames) included in each group from the DRAM 30 and collectively forms one group.
  • a period during which the conversion process (encoding process) is performed is shown as an encoding period.
  • the limit time in each group is set at the timing when the moving image processing unit (not shown) starts acquisition (reading) of image processing image data for a plurality of frames from the DRAM 30. Then, the image processing unit 250 performs the image processing so as to finish the image processing for three frames included in the group by the limit time set for each group.
  • the priority switching control unit 2504 calculates the remaining processing time of the group unit calculated based on the image processing progress status signal PS output from the image processing module 2502, the limit time of the group, the current elapsed time Based on the above, the processing margin time in group units is calculated. That is, the priority switching control unit 2504 calculates the remaining processing time and the processing margin time in units of grouping of three frames included in the group.
  • FIG. 4 also shows the group-based process allowance time calculated by the priority switching control unit 2504. Then, the priority switching control unit 2504 determines, on a group basis, the urgency of the image processing performed by the image processing module 2502 based on the calculated processing margin time on a group basis. Therefore, the priority switching control unit 2504 performs the image processing performed by the image processing module 2502 without considering the length of the image processing period in each frame in which the image processing module 2502 performs the image processing shown in FIG. Determine the urgency of the process.
  • the priority switching control unit 2504 may determine the degree of urgency of the image processing performed by the image processing module 2502 for each image processing period in each frame in which the image processing module 2502 performs image processing. In this case, the priority switching control unit 2504 calculates the processing margin time for each frame as in the example of the relationship between the limit time and the image processing period in the shooting mode shown in FIG. The degree of urgency of the image processing performed by 2502 is determined.
  • the image processing of the image processing unit 250 for the three frames included in each group is completed within the limit time set for each group.
  • the image processing period in which the image processing unit 250 performs image processing is different for each frame.
  • the group processing period of each group is different for each group.
  • the group processing period of group 1 is significantly longer than the group processing period of group 2.
  • the processing allowance time of group 1 is significantly shorter than the processing allowance time of group 2.
  • the state in which the processing allowance time of a group becomes short in this way is that the image processing period of any frame included in the same group is significantly longer than the image processing period of another frame, or included in the same group This may occur, for example, when the image processing period of each frame is extended as a whole.
  • the priority switching control unit 2504 determines in the process of step S130 that the processing allowance time calculated for group 1 is shorter than the emergency degree threshold time, image processing is performed on each frame included in group 1 It is determined that the urgency of the image processing performed by the module 2502 is high. Then, based on the determination result, the priority switching control unit 2504 generates a priority switching signal SW for notifying that the priority set in the image processing unit 250 is to be switched to a high level, and sends it to the bus arbiter 220. Output.
  • the bus arbiter 220 arbitrates the access request to the DRAM 30 from each processing block, the bus arbiter 220 switches the priority of the image processing unit 250 to high according to the priority switching signal SW, Prioritize (accept) access requests.
  • the bus arbiter 220 performs read DMA transfer by the bus master 2501 after the priority switching signal SW for notifying the high priority switching in the image processing unit 250 is output to the bus arbiter 220.
  • the write DMA transfer by the bus master 2503 is preferentially received (permitted).
  • FIG. 4 shows an example of the emergency threshold time.
  • the image processing unit 250 is set in the image processing period of frame 3 included in group 1. It shows a state of notifying that the priority is switched to high. Also in FIG. 4, the level represented by the priority switching signal SW is the same as in the example shown in FIG.
  • write DMA transfer by the bus master 2503 after the priority switching signal SW for notifying that the priority set in the image processing unit 250 is switched to high is output to the bus arbiter 220 is , And will be accepted (allowed) by the bus arbiter 220 in priority.
  • the group processing period of group 1 shown in FIG. 4 is shorter than the group processing period currently shown in FIG.
  • the processing allowance time of group 1 shown in FIG. 4 is a period longer than the processing allowance time currently shown in FIG.
  • each of the image processing units 250 performed after the priority switching signal SW for notifying that the priority of the image processing unit 250 is switched to high in group 1 is output.
  • the end of the image processing for the frame is delayed, and the limit time set for the group 1 is exceeded, which can reduce the factors that cause a failure in the series of image processing in the moving image mode in the imaging device 1 . That is, the image processing unit 250 can complete the image processing of each frame included in the group 1 more reliably by the limit time of the group 1, and the imaging device 1 performs a series of image processing in the moving image mode. It can be done without delay.
  • the priority switching control unit 2504 uses the image processing progress status signal PS output from the image processing module 2502 in the process of step S110.
  • the remaining processing time is calculated by the calculation method as described in the first to fourth calculation methods.
  • the priority switching control unit 2504 sets the limit time set according to the concept of the image processing performed by the image processing module 2502 in the process of step S120 and the current elapsed time.
  • the processing margin time is calculated by the above equation (7) using the time and the calculated remaining processing time.
  • the priority switching control unit 2504 calculates, in the processing of step S130, the processing margin time and the urgency threshold time of the image processing emergency performed by the image processing module 2502. And a priority switching signal SW for notifying the degree of urgency of the image processing performed by the image processing unit 250 to the bus arbiter 220 based on the determination result.
  • the priority switching control unit 2504 does not have the calculated processing allowance time shorter than the emergency degree threshold time (the processing allowance time is equal to or greater than the emergency degree threshold time) If the image processing unit 250 determines that the image processing unit 250 is executing the image processing, the priority switching signal SW is output to the bus arbiter 220.
  • the priority switching signal SW indicates that the degree of urgency of the image processing performed by the image processing unit 250 is low.
  • the priority switching control unit 2504 determines that the calculated processing allowance time is shorter than the emergency degree threshold time, the emergency of the image processing performed by the image processing unit 250 is performed.
  • a priority switching signal SW indicating that the degree is high is output to the bus arbiter 220.
  • the priority switching signal SW is a signal for requesting to switch (change) the priority of DMA transfer in the image processing unit 250.
  • the image processing module 2502 causes the priority switching control unit 2504 to stop waiting for image processing performed by the image processing unit 250 to occur. Determines the urgency of the image processing to be performed, and outputs the priority switching signal SW to the bus arbiter 220 at an early timing. That is, in the memory access device according to the first embodiment, the priority switching control unit 2504 outputs the priority switching signal SW in a state where the image processing period of the image processing unit 250 has a certain margin.
  • the bus arbiter 220 is requested to switch (change) the priority of the unit 250.
  • a processing block for accepting (permitting) an access request to the DRAM 30 is determined. More specifically, in the memory access device of the first embodiment, the bus arbiter 220 indicates that the priority switching signal SW output from the priority switching control unit 2504 indicates that the priority of the image processing unit 250 is low. If it is, the access request to the DRAM 30 from the captured image capturing unit 240 or the display processing unit 260, which has a high priority, is accepted (permitted).
  • the bus arbiter 220 indicates that the priority switching signal SW output from the priority switching control unit 2504 indicates that the priority of the image processing unit 250 is high.
  • the access request to the DRAM 30 from the image processing unit 250 switched to the high priority is accepted (permitted).
  • the end of the image processing on each frame by the image processing unit 250 is delayed, and the set limit time is not exceeded.
  • a factor causing a failure in a series of image processing in a system (the imaging device 1 or the image processing device 20) equipped with the memory access device of the first embodiment Can be reduced. That is, in the memory access device of the first embodiment, the image processing of each frame in the image processing unit 250 can be reliably completed by the set limit time, and the memory access device of the first embodiment A series of image processing in a system (the imaging device 1 or the image processing device 20) equipped with the above can be performed without delay.
  • the concept of the limit time set according to the image processing performed by the image processing module 2502 is not limited to the concept described above. That is, the concept of the limit time set in the memory access device of the first embodiment is, as described above, an image before the image processing performed by the image processing unit 250 is stopped due to a waiting state. Any idea may be used as long as the priority switching control unit 2504 controls so that the access request output by the processing unit 250 can be accepted (permitted) by the bus arbiter 220 to be high. .
  • an access request for requesting access to the memory (DRAM 30) connected to the data bus (data bus 210) is output, and the accessed data (eg, preprocessed image data) of the DRAM 30 is output.
  • Data processing (image processing) and notifying of the progress of the data processing (image processing) (outputting the image processing progress status signal PS) a data processing unit (image processing module 2502), an image processing module 2502
  • the image processing module 2502 determines the degree of urgency of data processing (image processing) by the image processing module 2502 based on the progress status (output image processing progress signal PS) of data processing (image processing) notified from the Output a priority switching signal (priority switching signal SW) for notifying switching of the priority of
  • the priority switching control unit (priority switching control unit 2504) is connected to the data bus 210, and when arbitrating an access request to the DRAM 30, the image processing module 2502 outputs the data according to the priority switching signal SW.
  • a memory access device memory access device including a bus arbiter (bus
  • the priority switching control unit 2504 determines the progress of the data processing (image processing) notified from the image processing module 2502 (the image processing progress status signal PS).
  • the remaining processing time in data processing (image processing) performed by the image processing module 2502 is calculated, and the remaining processing time and the time required for the image processing module 2502 to complete data processing (image processing) are defined.
  • the image processing module 2502 performs data processing (image processing) based on the time limit (limit time) and the processing time (current elapsed time) since the image processing module 2502 started data processing (image processing). Processing margin time is calculated, and image processing is performed based on the processing margin time and the predetermined urgency threshold time. Determining the urgency of the data processing (image processing) by module 2502, memory access device is configured.
  • the priority switching control unit 2504 determines the urgency of data processing (image processing) by the image processing module 2502 when the processing allowance time is shorter than the predetermined urgency threshold time. Determines that the priority of the image processing module 2502 is high, and outputs a priority switching signal SW notifying that the priority of the image processing module 2502 is high. It determines that the degree of urgency of processing (image processing) is low, and outputs a priority switching signal SW notifying that the priority of the image processing module 250 is kept low, and the bus arbiter 220 arbitrates the access request to the DRAM 30. When the image processing module 2502 is notified that the priority is to be increased by the priority switching signal SW. To arbitrate with higher priority et outputted access request, the memory access device is configured.
  • the image processing module 2502 indicates the rate at which data processing (image processing) is completed as the progress of data processing (image processing) (output image processing progress signal PS).
  • the priority switching control unit 2504 notifies the speed (processing speed) and amount of processing (total number of output pixels) of data processing (image processing) in the image processing module 2502 and the notified processing completion ratio.
  • the memory access device is configured to calculate the remaining processing time based on and.
  • the image processing module 2502 when the image processing module 2502 performs data processing (image processing) in a plurality of divided steps (pre-processed image data of the same number of pixels includes an area of an image of one frame).
  • the data processing image is performed as the progress status (image processing progress status signal PS to be output) of data processing (image processing)
  • the priority switching control unit 2504 notifies the number of times of data processing (image processing) to be separately performed by the image processing module 2502 (the number of all blocks). And the number of remaining processings (number of remaining blocks) determined from the notified number of processing completions, and in one data processing (image processing) performed separately.
  • the amount of processing (the number of pixels 1 block), the data processing in the image processing module 2502 and a rate of (image processing) (processing speed), and calculates the remaining processing time based on the memory access device is configured.
  • the image processing module 2502 when the image processing module 2502 performs data processing (image processing) in a plurality of times with different processing amounts (dividing an area of an image of one frame into a plurality of blocks)
  • data processing image processing
  • image processing as the progress status (image processing progress status signal PS to be output) of data processing (image processing) Notifies the amount of processing completion (the current number of input pixels) representing the amount of processing completed)
  • the priority switching control unit 2504 controls the amount of overall processing (data processing) performed by the image processing module 2502 (image processing).
  • Amount of remaining processing (remaining number of input pixels) calculated from input total number of pixels) and notified processing completion amount (current number of input pixels), image processing module And speed of data processing in the 502 (image processing) (processing speed), and calculates the remaining processing time based on the memory access device is configured.
  • the priority switching control unit 2504 multiplies one or both of the remaining processing time and the limit time by a predetermined time coefficient represented by a ratio to the time.
  • a memory access device is configured to calculate the processing allowance time.
  • an access request for requesting access to the memory (DRAM 30) connected to the data bus (data bus 210) is output, and data of the accessed DRAM 30 (for example, preprocessed image data)
  • the priority switching control unit (priority switching control unit 2504) is connected to the data bus 210, and is output from the image processing module 2502 according to the priority switching signal SW when arbitrating an access request to the DRAM 30.
  • a memory access device (memory access device) equipped with a bus arbiter (bus arbiter 220) for changing and prioritizing the priority of the access request and controlling access to the DRAM 30 according to the access request accepted by the arbitration
  • the image processing apparatus (image processing apparatus 20) is configured.
  • an access request for requesting access to the memory (DRAM 30) connected to the data bus (data bus 210) is output, and data of the accessed DRAM 30 (for example, preprocessed image data)
  • the priority switching control unit (priority switching control unit 2504) is connected to the data bus 210, and is output from the image processing module 2502 according to the priority switching signal SW when arbitrating an access request to the DRAM 30.
  • Image including a memory access device (memory access device) equipped with a bus arbiter (bus arbiter 220) for changing and prioritizing the priority of the access request and controlling access to the DRAM 30 according to the access request accepted by the arbitration
  • An imaging device (imaging device 1) including the processing device (image processing device 20) is configured.
  • the image processing module 2502 in the image processing unit 250 controls the progress of the image processing being executed by the image processing progress signal PS by priority switching control. It notifies the part 2504. Then, in the memory access device of the first embodiment, the priority switching control unit 2504 in the image processing unit 250 calculates the remaining processing time using the image processing progress status signal PS output from the image processing module 2502. The processing margin time is calculated using the set limit time, the current elapsed time, and the calculated remaining processing time. In the memory access device according to the first embodiment, the priority switching control unit 2504 in the image processing unit 250 compares the calculated processing allowance time with the emergency degree threshold time to perform the image processing performed by the image processing module 2502. A degree of urgency of processing is determined, and a priority switching signal SW for notifying the degree of urgency of image processing performed by the image processing unit 250 is output to the bus arbiter 220.
  • the priority switching control unit 2504 in the image processing unit 250 can request the bus arbiter 220 to switch (change) the priority of the image processing unit 250. Then, in the memory access device of the first embodiment, when the bus arbiter 220 arbitrates the access request to the DRAM 30 from each processing block, the priority switching signal SW output from the priority switching control unit 2504 is used. In response to the switching of the priority of the image processing unit 250, a processing block for accepting (permitting) an access request to the DRAM 30 is determined. That is, in the memory access device of the first embodiment, the DRAM 30 from the image processing unit 250 is delayed before the end of the image processing for each frame by the image processing unit 250 is delayed and exceeds the set limit time. Accept (permit) access requests to
  • the factors that cause a failure in the series of image processing are reduced, and each of the image processing units 250 The image processing of the frame can be completed more reliably by the set limit time.
  • a series of image processing to be realized without breaking the operation or function as the system is realized. It can be done smoothly and without delay.
  • one image processing unit 250 is provided in the image processing apparatus 20, and the image processing unit 250 determines the degree of urgency of the image processing to be performed, and switches the priority switching signal SW.
  • the memory access apparatus according to the first embodiment has a function of one type of image processing, determines the degree of urgency in performing the function of this image processing, and switches (changes) the priority to the bus arbiter 220.
  • the type of image processing performed in a system equipped with the memory access device of the present invention is not limited to one type of image processing shown in the memory access device of the first embodiment.
  • the memory access device of the present invention may be configured to carry out a plurality of types of image processing in a system equipped with the memory access device of the present invention by providing the plurality of image processing units 250.
  • the memory access device according to the second embodiment of the present invention is configured to include a plurality of image processing units that constitute the memory access device. Also in the following description, when the memory access device according to the second embodiment of the present invention is included in an image processing device mounted in an imaging device such as a still image camera or a moving image camera, for example. Will be explained.
  • FIG. 5 is a block diagram showing a schematic configuration of an imaging apparatus equipped with an image processing apparatus provided with a memory access apparatus according to a second embodiment of the present invention.
  • An image processing apparatus provided with the memory access device according to the first embodiment shown in FIG. 1 in the configuration of the imaging device equipped with the image processing apparatus provided with the memory access device according to the second embodiment shown in FIG. 20 includes the same components as the imaging device 1 having the T.20 mounted thereon. Therefore, among the components of the imaging apparatus equipped with the image processing apparatus equipped with the memory access apparatus according to the second embodiment, an imaging apparatus 1 equipped with the image processing apparatus 20 equipped with the memory access apparatus according to the first embodiment The same components as those of the components are denoted by the same reference numerals, and the detailed description of the components is omitted.
  • the configuration of the image processing apparatus having the memory access device of the second embodiment includes the memory access device of the first embodiment shown in FIG.
  • the same components as the image processing apparatus 20 are included. Therefore, in the components of the image processing apparatus provided with the memory access device of the second embodiment, the same components as the components of the image processing apparatus 20 provided with the memory access device of the first embodiment are the same. And the detailed description of each component is omitted.
  • the components of the image processing apparatus provided with the memory access device of the second embodiment are the same as the components of the image processing apparatus 20 provided with the memory access device of the first embodiment not shown in FIG. The same reference numerals will be used to indicate the components of.
  • the imaging device 2 illustrated in FIG. 5 includes an image sensor 10, an image processing device 21, a DRAM 30, and a display device 40. Further, the image processing device 21 includes a bus arbiter 220, a DRAM interface unit 230, a captured image capturing unit 240, three image processing units 251-1 to 251-3, and a priority switching control unit 2514. And a display processing unit 260. In the image processing device 21, the bus arbiter 220, the captured image capturing unit 240, the three image processing units 251-1 to 251-3, and the display processing unit 260 are connected to the common data bus 210. It is done.
  • the three image processing units 251-1 to 251-3, the priority switching control unit 2514, and the bus arbiter 220 provided in the image processing apparatus 21 perform the first process.
  • the memory access device of the second embodiment is configured.
  • image processing unit 251 when the three image processing units 251-1 to 251-3 are not distinguished from one another, they are simply referred to as "image processing unit 251".
  • the imaging device 2 captures a still image or a moving image of a subject with the image sensor 10, and a display image corresponding to the captured still image or the moving image Is displayed on the display device 40.
  • the imaging device 2 can also record a recorded image corresponding to a photographed still image or moving image on a recording medium (not shown), as in the case of the imaging device 1 in the first embodiment.
  • the image processing apparatus 21 performs predetermined image processing on the pixel signal output from the image sensor 10 to obtain a still image or a moving image. Generate an image. Further, the image processing device 21 generates a display image corresponding to the generated still image or moving image, and causes the display device 40 to display the generated display image, as in the image processing device 20 according to the first embodiment. Further, the image processing apparatus 21 generates a recording image according to the generated still image or moving image as in the image processing apparatus 20 in the first embodiment, and records the generated recording image on a recording medium (not shown). You can also
  • processing of image processing performed by the image processing device 21 by the captured image capturing unit 240, the three image processing units 251-1 to 251-3, and the display processing unit 260 It is a processing block that implements the function.
  • the image processing device 21 accesses the DRAM 30 by DMA transfer via the data bus 210 for each of the captured image capturing unit 240, the three image processing units 251-1 to 251-3, and the display processing unit 260.
  • each of the captured image capturing unit 240 and the display processing unit 260 provided in the image processing apparatus 21 is set to have high priority. It is assumed that the processing block is That is, the three image processing units 251-1 to 251-3 included in the image processing apparatus 21 will be described as processing blocks of which the priority is set low.
  • the bus arbiter 220 arbitrates an access request (DMA request) to the DRAM 30 by DMA transfer from each processing block in the image processing apparatus 21 connected to the data bus 210 based on the priority of each processing block Data is exchanged via the data bus 210 with the processing block that has received the access request.
  • DMA request an access request
  • the bus arbiter 220 arbitrates an access request (DMA request) to the DRAM 30 by DMA transfer from each processing block in the image processing apparatus 21 connected to the data bus 210 based on the priority of each processing block Data is exchanged via the data bus 210 with the processing block that has received the access request.
  • each of the image processing unit 251-1 to the image processing unit 251-3 determines in advance the image data stored in the DRAM 30. It is a processing block that performs image processing. Therefore, the image processing unit 251-1 to the image processing unit 251-3 are also generated by performing image processing and DMA transfer (read DMA transfer) for acquiring (reading) image data to be subjected to image processing. DMA transfer (write DMA transfer) for storing (writing) the image data in the DRAM 30 is performed. Accordingly, each of the image processing unit 251-1 to the image processing unit 251-3, like the image processing unit 250 in the image processing apparatus 20 according to the first embodiment, includes the bus master 2501 and the image processing module 2502. And a bus master 2503.
  • Each of the image processing unit 251-1 to the image processing unit 251-3 does not include the priority switching control unit 2504 included in the image processing unit 250 in the image processing apparatus 20 according to the first embodiment.
  • the image processing apparatus 21 includes the priority switching control unit 2514. That is, in the image processing apparatus 21, instead of the priority switching control unit 2504 included in the image processing unit 250 in the first embodiment, the image processing unit 25-1 to the image processing unit 25-3 share each in common.
  • One priority switching control unit 2514 is provided.
  • each of the image processing unit 251-1 to the image processing unit 251-3 sequentially performs predetermined image processing on the image data stored in the DRAM 30. Therefore, the image data that each of the image processing unit 251-1 to the image processing unit 251-3 acquires (reads) from the DRAM 30 by read DMA transfer is not limited to the preprocessed image data.
  • the image processing unit 251-1 performs predetermined image processing on the preprocessed image data stored in the DRAM 30, and stores (writes) the same in the DRAM 30 again.
  • the image processing unit 251-2 performs predetermined image processing on the image data stored (written) by the image processing unit 251-1 stored in the DRAM 30, and stores the image data in the DRAM 30 again (writing ).
  • the image processing unit 251-3 performs predetermined image processing on the image data stored (written) by the image processing unit 251-2 stored in the DRAM 30, and stores the image data in the DRAM 30 again (writing ).
  • the image processing unit 251-1 to the image processing unit 251-3 sequentially perform three types of image processing on the preprocessed image data stored in the DRAM 30.
  • the bus master 2501, the image processing module 2502 and the bus master 2503 provided in the image processing unit 251 are the same as the bus master 2501, the image processing module 2502 and the bus master 2503 provided in the image processing unit 250 in the first embodiment. It is. Therefore, detailed description of each of the bus master 2501 provided in the image processing unit 251, the image processing module 2502, and the bus master 2503 will be omitted.
  • each of the image processing unit 251-1 to the image processing unit 251-3 sequentially applies three types of image processing to the preprocessed image data stored in the DRAM 30. . Therefore, the image processing module 2502 provided in each of the image processing unit 251-1 to the image processing unit 251-3 realizes different image processing functions.
  • the image processing module 2502 provided in each of the image processing unit 251-1 to the image processing unit 251-3 is distinguished, the image processing unit is followed by the code of the image processing module 2502 It is shown by giving "-" given to each of 251 and a number following it. More specifically, the image processing module 2502 provided in the image processing unit 251-1 is referred to as “image processing module 2502-1". Further, the image processing module 2502 provided in the image processing unit 251-2 is referred to as “image processing module 2502-2.” Further, the image processing module 2502 provided in the image processing unit 251-3 is referred to as “image processing module 2502-3”.
  • the image processing apparatus 21 shown in FIG. 5 collectively shows the image processing progress status signal PS output from the image processing module 2502 provided in each of the image processing unit 251-1 to the image processing unit 251-3.
  • the image processing progress status signal PS is a signal for notifying the progress status of the image processing being executed in the image processing module 2502 provided in each of the image processing unit 251-1 to the image processing unit 251-3. Therefore, in the following description, the progress of image processing output to notify the progress of image processing performed by the image processing module 2502 provided in each of the image processing unit 251-1 to the image processing unit 251-3.
  • the image processing progress status signal PS output from the image processing module 2502-1 provided in the image processing unit 251-1 is represented as "image processing progress status signal PS-1".
  • the image processing progress status signal PS output from the image processing module 2502-2 included in the image processing unit 251-2 is represented as "image processing progress status signal PS-2.”
  • the image processing progress status signal PS outputted by the image processing module 2502-3 provided in the image processing unit 251-3 is represented as "image processing progress status signal PS-3”.
  • the priority switching control unit 2514 arbitrates when the bus arbiter 220 arbitrates an access request to the DRAM 30 from each processing block.
  • the bus arbiter 220 is notified of the DMA transfer priority of the image processing unit 251 to be considered.
  • the priority switching control unit 2514 also outputs an image processing progress status signal output from the image processing module 2502 included in the image processing unit 251. Based on PS, the image processing unit 251 calculates the remaining processing time when performing image processing. Then, like the priority switching control unit 2504 in the first embodiment, the priority switching control unit 2514 is also required to complete the calculated remaining processing time and the image processing unit 251 one frame worth of image processing. Based on the limit time of the image processing defined as a certain time and the current elapsed time, the degree of urgency of the image processing to be performed by the image processing unit 251 is determined.
  • the priority switching control unit 2514 is also a priority for notifying of the urgency of the image processing performed by the image processing unit 251 based on the determined result.
  • a switch signal SW is generated and output to the bus arbiter 220.
  • the priority switching signal SW output from the priority switching control unit 2514 is also higher in the priority of the image processing unit 251, similarly to the priority switching signal SW output from the priority switching control unit 2504 in the first embodiment. It is notified that the user wants to arbitrate in the state, that is, wants to urgently accept DMA transfer (read DMA transfer or write DMA transfer) in the image processing unit 251 (want to permit). That is, the priority switching signal SW output from the priority switching control unit 2514 is also for DMA transfer in the image processing unit 251, similarly to the priority switching signal SW output from the priority switching control unit 2504 in the first embodiment. It is a signal for requesting switching of priority (change).
  • each of the image processing progress status signal PS-1 to the image processing progress status signal PS-3 from each of the image processing unit 251-1 to the image processing unit 251-3 has priority switching control. It is output to the unit 2514. Therefore, the priority switching control unit 2514 outputs the image processing progress status signal PS-1 to the image processing progress status signal PS-3 output from each of the image processing unit 251-1 to the image processing unit 251-3.
  • the remaining processing time is calculated for each image processing unit 251 based on the above.
  • the priority switching control unit 2514 calculates the processing margin time based on the remaining processing time calculated for each image processing unit 251, the limit time, and the current elapsed time, and the respective image processing units 251
  • the degree of urgency of image processing to be performed is determined.
  • the priority switching control unit 2514 performs a series of image processing units sequentially performed by the image processing unit 251-1 to the image processing unit 251-3 according to the set limit time, or the image processing unit The degree of urgency of image processing is determined every 251.
  • the method by which the priority switching control unit 2514 determines the degree of urgency of the image processing performed by each image processing unit 251 is the image switching by the priority switching control unit 2504 in the first embodiment shown in FIG.
  • the method is the same as the method of determining the degree of urgency of the image processing performed by the processing unit 250. Therefore, detailed description of a method of determining the degree of urgency of the image processing performed by each of the image processing units 251 by the priority switching control unit 2514 will be omitted.
  • the priority switching control unit 2514 performs a series of image processing units sequentially performed by each of the image processing unit 251-1 to the image processing unit 251-3 according to the set limit time.
  • the concept of setting the limit time and a method of determining the degree of urgency of image processing according to the set limit time will be described later.
  • the priority switching control unit 2514 generates the priority switching signal SW for notifying the switching of the priority set in each image processing unit 251 based on the determined result, and outputs it to the bus arbiter 220. Do. At this time, the priority switching control unit 2514 generates the priority switching signal SW corresponding to each of the image processing unit 251-1 to the image processing unit 251-3 and outputs the generated signal to the bus arbiter 220. Thus, when arbitrating an access request to the DRAM 30 from each processing block, the bus arbiter 220 switches the priority of any one of the image processing units 251 to high on the basis of the priority switching signal SW. Is prioritized and accepted (permitted) from the image processing unit 251 that has switched to a high priority. As a result, each image processing unit 251 can complete the image processing by the specified image processing limit time without stopping due to the occurrence of a waiting state in the image processing to be executed.
  • the priority switching control unit 2514 also uses the priority switching signal SW as an access request for read DMA transfer from the bus master 2501 included in the image processing unit 251.
  • the priority switching control unit 2514 does not delay the image processing.
  • the order of priority DMA transfer may be controlled so as to finish smoothly.
  • the imaging device 2 captures a still image or a moving image of a subject by the image sensor 10, and causes the display device 40 to display a display image corresponding to the captured still image or the moving image.
  • the imaging device 2 can also record a recorded image corresponding to a still image or a moving image captured by the image sensor 10 on a recording medium (not shown).
  • the three image processing units 251-1 to 251-3, the priority switching control unit 2514, and the bus arbiter 220 included in the image processing device 21 of the second embodiment Configure a memory access device.
  • the three image processing units 251-1 to the image processing unit 251, which are processing blocks with low priority are processing blocks with low priority.
  • the third embodiment is combined with the priority switching control unit 2514 and the bus arbiter 220 to configure the memory access device of the second embodiment.
  • the image processing progress status signal PS for notifying the progress status of the image processing being performed by each of the image processing unit 251-1 to the image processing unit 251-3. -1 to the image processing progress status signal PS-3 are output to the priority switching control unit 2514.
  • the priority switching control unit 2514 selects each of the image processing progress status signals PS output from the respective image processing units 251 based on the progress status of the image processing.
  • the degree of urgency of the image processing performed by the image processing module 2502 included in the image processing unit 251 is determined, and a priority switching signal SW for notifying the priority of DMA transfer in the image processing unit 251 is output to the bus arbiter 220.
  • the priority switching signal SW is generated in one of the image processing units 251. If it indicates that the degree of urgency of the image processing to be executed is high, the priority of the image processing unit 251 is switched to high, and the access request from the image processing unit 251 switched to high priority is received with priority. (To give permission). Thus, each image processing unit 251 (more specifically, the image processing module 2502) completes the image processing by the defined image processing limit time without stopping the image processing to be executed. Can.
  • the respective image processing units 251 (the image processing unit 251 ( A series of image processing on image data can be smoothly and smoothly performed without stopping the operation of the image processing module 2502).
  • each of the image processing unit 251-1 to the image processing unit 251-3 performs image processing on the image data stored in the DRAM 30. Do one by one.
  • image processing is performed in the order of the image processing unit 251-1, the image processing unit 251-2, and the image processing unit 251-3. That is, in the image processing apparatus 21, three types of image processing by each of the image processing unit 251-1 to the image processing unit 251-3 are performed as a series of image processing.
  • each image processing unit sequentially performs image processing on image data of one frame to complete a series of image processing.
  • the time required for a series of image processing performed in the image processing apparatus becomes long. That is, the delay time (so-called latency) from the input of one frame of image data to be subjected to image processing to the output of the final one frame of image data subjected to the series of image processing becomes long.
  • each of the image processing unit 251-1 to the image processing unit 251-3 sequentially performs image processing on image data of one frame to complete a series of image processing.
  • each image processing unit 251 performs image processing from the time when the image processing unit 251-1 acquires (reads out) preprocessed image data for one frame from the DRAM 30, and performs image processing
  • the time required for a series of image processing until the unit 251-3 stores (writes) the image processing image data for one frame in the DRAM 30 becomes long. This is because, when each image processing unit 251 sequentially performs image processing on image data for one frame, the image processing unit 251 in the subsequent stage performs image processing while the image processing unit 251 in the former stage performs image processing. It is because processing can not be performed.
  • the second-stage image processing unit 251-2 and the third-stage are performed.
  • the image processing unit 251-3 can not perform image processing.
  • the image processing unit 251-2 of the second stage is performing image processing on preprocessed image data for one frame
  • the image processing unit 251-3 of the third stage can not perform image processing. . Therefore, the time (delay time) required to complete a series of image processing in the image processing apparatus 21 is the time required for image processing in the first-stage image processing unit 251-1 and the second-stage image processing unit The sum of the time required for the image processing in 251-2 and the time required for the image processing in the third-stage image processing unit 251-3.
  • each image processing unit sequentially performs image processing on image data of one frame, the time required for a series of image processing becomes long .
  • FIG. 6 is a view schematically showing an example in which an image area (for one frame) to be subjected to image processing is divided in the image processing apparatus 21 provided with the memory access device according to the second embodiment of the present invention. .
  • FIG. 6 shows the case where the image area of one frame is divided into three blocks. In this case, in the image processing device 21, each image processing unit 251 can perform image processing on image data included in the divided blocks in parallel.
  • the image processing unit 251-1 performs image processing (hereinafter referred to as "image processing-1") on the preprocessed image data of the block 1 stored in the DRAM 30, and then the DRAM 30 is again processed.
  • image processing-1 image processing
  • the image processing unit 251-1 starts image processing-1 on the preprocessed image data of the block 2 stored in the DRAM 30.
  • the image processing unit 251-2 performs image processing on the image data of the block 1 that the image processing unit 251-1 performs image processing-1 and stores (writes) in the DRAM 30 (hereinafter, “image processing Can be started).
  • the image processing unit 251-1 causes the DRAM 30 to store (write) the image data obtained by performing the image processing-1 on the preprocessed image data of the block 2 again. Start image processing-1 on processed image data.
  • the image processing unit 251-2 stores (writes) in the DRAM 30 the image data of the image data of the block 1 subjected to the image processing-1 by the image processing unit 251-1. If the image processing unit 25-1 has completed the process, the image processing unit 25-1 can start the image processing -2 on the image data of the block 2 subjected to the image processing -1.
  • the image processing unit 251-3 performs image processing on the image data of the block 1 that the image processing unit 251-2 performs image processing-2 and stores (writes) in the DRAM 30 (hereinafter referred to as “image processing— 3) can be started.
  • the image processing unit 251-1 stores (writes) the image data obtained by performing the image processing-1 on the preprocessed image data of the block 3 in the DRAM 30, and completes the processing.
  • the image processing unit 251-2 stores (writes) in the DRAM 30 the image data obtained by performing the image processing-2 on the image data of the block 2 subjected to the image processing-1 by the image processing unit 251-1. If the image processing unit 25-1 has completed the process, the image processing unit 25-1 can start the image processing -2 on the image data of the block 3 subjected to the image processing -1.
  • the image processing unit 251-3 stores (writes) in the DRAM 30 the image data obtained by performing the image processing-3 on the image data of the block 1 subjected to the image processing-2 by the image processing unit 251-2. If the processing has been completed, the image processing unit 25-2 can subsequently start the image processing -3 on the image data of the block 2 subjected to the image processing -2.
  • the image processing unit 251-2 causes the DRAM 30 to store the image data of the image data of the block 3 subjected to the image processing-1 by the image processing unit 251-1 in the DRAM 30 (write ), Complete the process.
  • the image processing unit 251-3 stores (writes) in the DRAM 30 the image data obtained by performing the image processing-3 on the image data of the block 2 subjected to the image processing-2 by the image processing unit 251-2. If the image processing unit 25-2 has completed the process, the image processing unit 25-2 can start image processing -3 on the image data of the block 3 subjected to the image processing -2.
  • the image processing unit 251-3 stores the image data of the image data of the block 3 subjected to the image processing-2 by the image processing unit 251-2 into the DRAM 30, ), Complete the process.
  • each image processing unit 251 may perform image processing on image data included in different blocks in parallel. it can.
  • the time required for a series of image processing can be shortened.
  • FIG. 6 shows an example where the image area of one frame is divided into three blocks in the vertical direction
  • the division method of the image area of one frame is the division shown in FIG. It is not limited to the method.
  • the area of the image of one frame may be divided into a plurality of blocks in the horizontal direction, or the area of the image of one frame may be divided into a plurality of blocks in the vertical direction and the horizontal direction.
  • the area of each block obtained by dividing the area of the image of one frame may be further divided into a plurality of small blocks.
  • each of the image processing units 251 is used as an image processing progress status signal PS for notifying the progress status of the image processing in each block, among a plurality of small blocks divided in the block currently being processed, A signal representing the number of small blocks whose image processing has been completed up to the present time may be output.
  • the limit time is a system in the imaging device 2 or the image processing device 21. It is defined as not to break down the operation or function as. Therefore, in the memory access apparatus according to the second embodiment, the image processing unit 251 performs a series of image processing so that the image processing unit 251 does not stop due to a waiting state occurring in the series of image processing performed by the respective image processing units 251. The time until the end is set as the limit time. That is, also in the memory access apparatus according to the second embodiment, the limit time is the image processing before the waiting state occurs in the series of image processing performed by the respective image processing units 251 and the image processing is stopped.
  • the priority switching control unit 2514 controls so that the access request output from the unit 251 is accepted (permitted) by the bus arbiter 220 to be high. Then, in the memory access device of the second embodiment provided with a plurality of image processing units 251, the limit time is different according to the configuration of the image processing unit 251 and the series of image processing performed by the image processing unit 251. It is set.
  • the operation mode of the imaging device 2 is a shooting mode for shooting a still image of a subject.
  • the limit time is determined by the image processing unit 251-3 at the third stage, which is the image processing unit 251 at the final stage that generates image processed image data (still image data).
  • the time to finish storing (writing) the data (data) in the DRAM 30 is set based on the timing at which the display processing unit 260 acquires (reads) the image-processed image data of each frame from the DRAM 30.
  • FIG. 7 is a diagram schematically showing an example of the relationship between the limit time and the image processing period in the memory access apparatus according to the second embodiment of the present invention.
  • the limit time set for each block, an image processing period in which each image processing unit 251 performs image processing for each block, and image processing for one frame by the display processing unit 260 An example of a relationship with a period (display period) in which a display image corresponding to image data is displayed on the display device 40 is schematically shown.
  • the image processing period-1 is an operation period of read DMA transfer in which the image processing unit 251-1 acquires (reads) preprocessed image data included in the block from the DRAM 30, and preprocessed image data of the acquired block.
  • Image processing period including the operation period of image processing (image processing-1) and the operation period of write DMA transfer for storing (writing) the image data of the block after image processing-1 is performed on the DRAM 30 is there.
  • an operation period of read DMA transfer in which the image processing unit 251-2 acquires (reads) the image data subjected to the image processing-1 included in the block from the DRAM 30, and the acquired block Operation period for performing image processing (image processing -2) on the image data of the above and the operation period of write DMA transfer for storing (writing) the image data of the block after the image processing -2 is performed in the DRAM 30 It is an image processing period.
  • the display processing unit 260 acquires image processing image data of each block from the DRAM 30 in order to display a display image corresponding to the image processing image data of one frame on the display device 40.
  • a period in which display processing is performed (read out) is shown as a display period.
  • the display processing unit 260 outputs the generated display image to the display device 40 when the display processing on the image processing image data of the three divided blocks is completed, that is, when the generation of the display image for one frame is completed. Can be displayed.
  • the limit time in each block is set to the timing at which the display processing unit 260 starts acquisition (reading) of the image processing image data of each block from the DRAM 30. That is, the limit time in each block is set in units of a series of image processing that each of the image processing unit 251-1 to the image processing unit 251-3 sequentially performs on the same block. For this reason, each image processing unit 251 performs image processing so as to end a series of image processing by the limit time set for each block.
  • the priority switching control unit 2514 calculates the remaining processing time in each image processing unit 251 based on the image processing progress status signal PS output from each image processing unit 251. Then, the priority switching control unit 2514 adds up the remaining processing time of each of the calculated image processing units 251, and calculates the remaining processing time of the series of image processing by each of the image processing units 251. After that, the priority switching control unit 2514 calculates the processing margin time of each block based on the calculated remaining processing time of the series of image processing, the limit time of the block, and the current elapsed time. FIG. 7 also shows the processing allowance time in each block calculated by the priority switching control unit 2514. Then, the priority switching control unit 2514 determines the degree of urgency of the series of image processing performed by each of the image processing units 251 based on the calculated processing allowance time of each block.
  • the method of determining the degree of urgency of the series of image processing based on the processing allowance time of the block is the same as that of the priority switching control unit 2504 in the first embodiment. That is, the priority switching control unit 2514 compares the calculated processing allowance time of each block with the urgency threshold time, and when the processing allowance time is equal to or more than the urgency threshold time, the respective image processing units It is determined that the degree of urgency of the series of image processing by 251 is low, and if the processing margin time is shorter than the degree of urgency threshold time, it is determined that the degree of urgency of series of image processing by each image processing unit 251 is high.
  • the priority switching control unit 2514 generates a priority switching signal SW for notifying that the priority set in each of the image processing units 251 is switched, and the bus arbiter 220 Output to
  • the bus arbiter 220 gives priority to the access request from the image processing unit 251 whose priority is switched high in accordance with the priority switching signal SW. Accept (permit). More specifically, the bus arbiter 220 preferentially receives the access request for the read DMA transfer and the access request for the write DMA transfer, which are output from the image processing unit 251-1 to the image processing unit 251-3, respectively ( To give permission).
  • FIG. 7 shows the case where the image processing in each image processing unit 251 is completed by the limit time set for each block.
  • FIG. 7 shows an example of the emergency degree threshold time and an example of the priority switching signal SW output to the bus arbiter 220 by the priority switching control unit 2514.
  • the priority switching signal SW shown in FIG. 7 notification is given that the priority set in each of the image processing units 251 is switched to high in the image processing period -3 of block 1 in the image processing unit 251-3. doing.
  • the level represented by the priority switching signal SW is the same as one example of the priority switching signal SW in the memory access device of the first embodiment shown in FIG. 3 and FIG.
  • the bus arbiter 220 receives an access request for read DMA transfer or an access request for write DMA transfer output from each of the image processing unit 251-2 and the image processing unit 251-3. , Priority can be accepted (permitted). Therefore, if the access request from the image processing unit 251-2 is output earlier than the access request from the image processing unit 251-3, the bus arbiter 220 receives the request from the image processing unit 251-2. It is also conceivable that the received access request is preferentially received (permitted).
  • the image processing unit 251-3 performs a series of image processing on the block 1, and the image processing unit 251-2 performs a series of image processing on the block 3.
  • the priority switching control unit 2514 is required to finish the series of image processing first, and the urgency of the image processing of the image processing unit 251-3 executing the series of image processing on the block 1 It is determined that the priority is higher, and a priority switching signal SW for notifying that the priority set in the image processing unit 251-3 is switched to high is output to the bus arbiter 220.
  • the priority switching control unit 2514 can be notified of which one of the plurality of image processing units 251 is to be switched to have a higher priority.
  • a plurality of priority switching signals SW corresponding to are generated, and only the priority switching signal SW corresponding to any one of the image processing units 251 is in a state representing switching the priority high.
  • the priority switching control unit 2514 switches the priority set to be high, for example, all image processing units It may be a method of outputting, together with the priority switching signal SW common to 251, information indicating which image processing unit 251 is to be switched to have a higher priority.
  • the bus arbiter 220 preferentially receives (permits) the access request for the read DMA transfer or the access request for the write DMA transfer, which is output from the image processing unit 251-3.
  • the image processing period -3 of the block 1 in the image processing unit 251-3 is a period shorter than the image processing period -3 currently shown in FIG.
  • the process margin time of block 1 shown in FIG. 7 is a period longer than the process margin time of block 1 currently shown in FIG. 7.
  • each image processing unit 251 can complete the series of image processing for the block 1 more reliably by the limit time of the block 1, and the imaging device 2 smoothly performs the series of image processing in the photographing mode. It can be carried out.
  • the priority switching control unit 2514 calculates the remaining processing time for each image processing unit 251. Therefore, the priority switching control unit 2514 can determine the degree of urgency of the image processing for each of the image processing units 251. Also in this case, the priority switching control unit 2514 outputs the priority switching signal SW corresponding to each of the image processing units 251 to the bus arbiter 220 based on the determined result. Thereby, when the bus arbiter 220 arbitrates the access request to the DRAM 30 from each processing block, one of the image processing units 251 is used based on the priority switching signal SW corresponding to each of the image processing units 251. Can be prioritized and accepted (permitted).
  • each limit time is obtained and set according to the following procedure.
  • the image processing unit 251 at the final stage of the series of image processing sets the time of the absolute limit at which the image processing needs to be finished as a reference time.
  • the image processing unit 251 of the final stage performs final image processing image data (still image data) in order to prevent this from breaking the operation or function as a system in the imaging device 2 or the image processing device 21. It is necessary to secure a time for completing the storage (writing) of the DRAM 30 in the DRAM 30).
  • the time required for the image processing in each image processing unit 251 is the processing time required for the image processing for one block of each image processing unit 251. Therefore, the time required for the image processing can be calculated, for example, in the same manner as the method of calculating the total processing time in the above equation (1).
  • the image processing image data for one block output by the image processing unit 251 performing the image processing on the total number of output pixels in the equation (1) still image It is assumed that the number of pixels of data and moving image data).
  • the time required for the image processing in each of the image processing units 251 may be obtained by any method as long as the processing time required for the image processing for one block. For example, it may be processing time when each image processing unit 251 performs image processing for one block at the highest speed.
  • the time of the absolute limit (limit) in the series of image processing set as the reference time is set as a temporary limit time of the image processing performed by the image processing unit 251 of the final stage.
  • the temporary limit time of the image processing performed by the image processing unit 251 one stage before the image processing unit 251 of the final stage the image processing of the final stage is performed from the temporary limit time of the image processing unit 251 of the final stage set.
  • a time obtained by subtracting the time required for image processing performed by the unit 251 is set.
  • the temporary limit time of the image processing performed by the image processing unit 251 one before that is, two before
  • the image processing unit 251 one before is set as a temporary limit time of the image processing unit 251 one before.
  • a time obtained by subtracting the time required for the image processing performed by the image processing unit 251 one stage before is set from the limit time of the above. Such calculation is repeated, and the temporary limit time of the image processing performed by each image processing unit 251 up to the first image processing unit 251 in the series of image processing performed sequentially by each image processing unit 251 Set “limit time” sequentially.
  • the image processing unit 251 in the first stage performs image processing for the time obtained by subtracting the time required for image processing performed by the image processing unit 251 in the first stage from the temporary limit time set for the image processing unit 251 in the first stage.
  • Time hereinafter referred to as "image processing start time”
  • the time of difference obtained in the procedure 4 is distributed to each of the image processing units 251 that perform a series of image processing, and is distributed from the temporary limit time set in each of the image processing units 251.
  • the time obtained by subtracting the time of the completed difference is set as the limit time in each image processing unit 251.
  • the amount (time) of allocating the time of the difference obtained in the procedure 4 to each image processing unit 251 may be equivalent to each image processing unit 251.
  • the amount (time) for allocating the difference time obtained in step 4 to the respective image processing units 251 corresponds to the ratio (percentage) determined based on the time required for the image processing performed by each of the image processing units 251. It may be time. That is, more difference time may be distributed to the image processing unit 251, which requires more time for image processing.
  • a limit time obtained by such a procedure is set for each of the image processing units 251 that performs a series of image processing.
  • the above-described procedures 1 to 5 are procedures in the case of setting the limit time for each image processing unit 251 when performing image processing of one block. Therefore, when the image area of one frame is divided into a predetermined number of blocks, the above-described steps 1 to 5 can be sequentially performed from the block in which image processing is first performed to the block in which image processing is finally performed. repeat.
  • the operation mode of the imaging device 2 is a shooting mode for shooting a still image of a subject, and the image area of one frame is divided into three blocks as shown in FIG.
  • An example of the concept in the case of setting the limit time for each image processing unit 251 in the case where it is determined will be described.
  • FIGS. 8 and 9 are diagrams schematically showing an example of the procedure for setting the limit time in the memory access apparatus according to the second embodiment of the present invention.
  • FIG. 8 schematically shows an example of a time relationship when the above-described procedure 1 to procedure 4 are performed when setting the limit time in each image processing unit 251.
  • FIG. 9 schematically shows an example of the relationship of time when the above-described procedure 5 is executed when setting the limit time in each image processing unit 251.
  • FIGS. 8 and 9 show image processing periods in which each image processing unit 251 performs image processing for each block, the limit time corresponding to block 1 is set in each image processing unit 251. Only the relationship of time is shown. That is, in FIG. 8 and FIG.
  • step 1 a reference time for a series of image processing is set.
  • the display processing unit 260 acquires the image processing image data of the block 1 from the DRAM 30 in order to display the display image corresponding to the image processing image data of one frame on the display device 40.
  • the timing at which the display process is started (read out) is the time of the absolute limit at which the image processing unit 251-3 at the final stage needs to finish the image processing on the block 1. Therefore, in the procedure 1, the timing at which the display processing unit 260 starts acquisition (reading) of the image processing image data of the block 1 from the DRAM 30 is set as a reference time.
  • step 3 the image processing unit 251-1 at the first stage obtains an image processing start time to start the image processing of the block 1.
  • a time obtained by subtracting the image processing period -1 in the image processing unit 251-1 from the temporary limit time in image processing of the block 1 performed by the image processing unit 251-1 is the image processing unit 251 It is determined as the image processing start time of block 1 in 1.
  • step 4 the image processing start possible time at which the image processing unit 251-1 at the first stage can start the image processing of the block 1 is set. Then, a time difference between the set image processing startable time and the image processing start time obtained in step 3 is determined.
  • the image processing unit 251-1 can start the image processing of the block 1 at the time when the captured image capturing unit 240 finishes storing (writing) the preprocessed image data in the DRAM 30. It is the earliest time. Therefore, in step 4, the time when the captured image capture unit 240 finishes storing (writing) the preprocessed image data in the DRAM 30 is the image processing startable time. Then, the time of the difference from the image processing start time obtained in step 3 is obtained.
  • the time of this difference corresponds to the total processing allowance time when each image processing unit 251 performs a series of image processing on the block 1 as described above.
  • the time of the difference obtained in the procedure 4 is distinguished from the processing allowance time calculated by the priority switching control unit 2514 in order to determine the degree of urgency of the image processing performed by the image processing unit 251. It is shown as “block processing allowance time” of block 1 before distribution.
  • the temporary limit time set in the image processing unit 251-3 of the final stage is decided and set as the limit time of the image processing of the block 1 performed by the image processing unit 251-3.
  • the temporary limit time set in the image processing unit 251-3 in step 2 that is, the time of the absolute limit set as the reference time in step 1 is the image processing unit 251. It is determined and set as the limit time in the image processing of block 1 performed by -3.
  • a time obtained by subtracting the block processing allowance time allocated to the image processing unit 251-3 from the temporary limit time set in the image processing unit 251-2 at the front stage of the image processing unit 251-3 is the image processing unit 251-2.
  • a time obtained by subtracting the block processing allowance time allocated to the image processing unit 251-3 and the image processing unit 251-2 from the temporary limit time set in the image processing unit 251-1 at the front stage of the image processing unit 251-2 is decided and set as the limit time of the image processing of the block 1 performed by the image processing unit 251-1.
  • the block processing allowance time T3 distributed to the image processing unit 251-3 and the block processing allowance allocated to the image processing unit 251-2 from the block processing allowance time obtained in step 4
  • the limit time corresponding to the block 1 is set for each of the image processing units 251. Thereafter, as described above, the procedures 1 to 5 are performed on block 2 to set the limit time corresponding to block 2.
  • the image processing startable time of the image processing unit 251-1 of the first stage set in procedure 4 performed on block 2 is the limit time of the image processing unit 251-1 set in procedure 5 for block 1. This is because the time when the image processing unit 251-1 finishes the image processing for the block 1 is the earliest time when the image processing unit 251-1 can start the image processing for the block 2.
  • the difference time (block processing allowance time) allocated to each of the image processing units 251 in the procedure 5 for each block is a process required for image processing of each block by each of the image processing units 251. This time is temporarily set to allow time. Therefore, the remaining processing time calculated by the priority switching control unit 2514 based on the image processing progress status signal PS output when each image processing unit 251 is actually performing image processing on each block, and The process allowance time calculated based on the limit time set by repeating the procedure of the procedure 1 to the procedure 5 and the current elapsed time may be different.
  • actual image processing on blocks in each image processing unit 251 may end without consuming time temporarily set (block processing allowance time) in order to allow processing time for processing. . That is, the block processing allowance time temporarily set in the image processing unit 251 may be left as a result of actually performing the image processing.
  • the block processing allowance time which has not been consumed (or left) is allocated again to the image processing unit 251 in the subsequent stage, and the processing time required for the image processing of the same block by the image processing unit 251 in the subsequent stage is additionally provided. May be given.
  • the amount (time) of allocating the block processing allowance time which is not consumed (remained) to the image processing unit 251 in the subsequent stage may be equal to that in the image processing unit 251 in the subsequent stage.
  • the amount (time) for allocating the block processing margin time not consumed (or left) at this time to the image processing unit 251 in the subsequent stage is determined based on the time required for the image processing performed by the image processing unit 251 in the subsequent stage. It may be time according to the percentage (percentage). That is, a block processing margin time which is not consumed (remained) may be distributed to the image processing unit 251 which requires more time for image processing. Note that the block processing allowance time not consumed (or left) is reassigned to the image processing unit 251 in the subsequent stage, so that the image processing unit 251 in the subsequent stage resets the currently set limit time. You may fix it.
  • the actual image processing on the blocks in each image processing unit 251 may not be completed even if it consumes a temporarily set time (block processing allowance time) in order to give allowance to the processing time. That is, the block processing allowance time temporarily set in the image processing unit 251 may not be sufficient as the time for giving allowance to the processing time required for actual image processing.
  • the image processing is performed by consuming the block processing allowance time allocated to the image processing unit 251 in the latter stage as a time for giving an allowance to the processing time required for the image processing. become. At this time, the insufficient block processing allowance time may consume the block processing allowance time allocated to the image processing unit 251 immediately after that.
  • the block processing allowance time that has not been sufficient may equally consume the block processing allowance time allocated to the image processing unit 251 in the subsequent stage. Further, the insufficient block processing allowance time may be consumed in accordance with a ratio (percentage) determined based on the time required for the image processing performed by the image processing unit 251 in the latter stage. Further, the block processing allowance time that has not been sufficient may consume the block processing allowance time of the image processing unit 251 in the subsequent stage to which the most block processing allowance time is allocated. Note that the image processing unit 251 in the subsequent stage, in which the allocated block processing allowance time is reduced due to consuming the insufficient block processing allowance time, does not perform resetting of the set limit time again. The image processing is finished by the currently set limit time.
  • the priority switching control unit 2514 performs image processing performed by the image processing unit 251 in the subsequent stage so that the block processing allowance time extra consumed by the image processing unit 251 in the previous stage is recovered by the image processing unit 251 in the subsequent stage.
  • the priority switching signal SW is generated based on the determination result, and is output to the bus arbiter 220.
  • the end of the image processing for each block by each image processing unit 251 is set to be delayed. It will not exceed the limit time of the block.
  • a system (image pickup device 2 or image processing device 21) equipped with the memory access device of the second embodiment as in the memory access device of the first embodiment Factors that cause failure in the series of image processing in the above can be reduced. That is, in the memory access device of the second embodiment, as in the memory access device of the first embodiment, the image processing of each block in each image processing unit 251 is performed up to the limit time of the set block. The process can be reliably completed, and a series of image processing in a system (the imaging apparatus 2 or the image processing apparatus 21) equipped with the memory access device of the second embodiment can be performed without a break.
  • the concept of the limit time set according to the image processing performed by the image processing module 2502 is not limited to the concept as described above. That is, the concept of the limit time of the block set in the memory access device of the second embodiment is, as described above, stopped due to the occurrence of a waiting state in a series of image processing executed by each image processing unit 251. If it is based on the idea that the priority switching control unit 2514 controls so that the access request outputted by each image processing unit 251 is accepted (permitted) by the bus arbiter 220 prior to completion. It may be any way of thinking.
  • a plurality of data processing units (image processing unit 251-1 to image processing unit 251-3) sequentially performing corresponding data processing (image processing) in a series of processing in a predetermined order And each data processing unit performs the next series of processing after the corresponding data processing (image processing-1 to image processing-3) included in the series of processing (image processing for block 1) started earlier is completed.
  • a memory access device (memory access device) is configured to output a priority
  • a plurality of data processing units (image processing unit 251-1 to image processing unit 251-3 sequentially performing corresponding data processing (image processing) in a series of processing in a predetermined order , And each data processing unit, after the corresponding data processing (image processing-1 to image processing-3) included in the series of processing (image processing for block 1) started earlier is completed, By starting corresponding data processing (image processing-1 to image processing-3) included in a series of processing (for example, image processing for block 2), a plurality of data processing units perform different series of processing (for different blocks The corresponding data processing (image processing-1 to image processing-3) included in the image processing is performed in parallel, and the priority switching control unit (priority switching control unit 2514) The remaining processing time for each data processing unit calculated based on the progress status (output image processing progress status signal PS) of the data processing (image processing-1 to image processing-3) notified from the data processing unit; Processing margin time based on the limit time (limit time) set for each data processing unit in each series of processing (block image
  • the image executed by each image processing unit 250 (the image processing module 2502 provided in the image processing unit 251) by the image processing progress status signal PS
  • the priority switching control unit 2514 is notified of the progress of the process.
  • the priority switching control unit 2514 uses the image processing progress status signal PS output from the image processing unit 251 for each image processing unit 251 to execute the remaining processing time.
  • the processing margin time is calculated using the calculated and set limit time, the current elapsed time, and the calculated remaining processing time.
  • the priority switching control unit 2514 compares the calculated processing allowance time with the emergency degree threshold time to obtain the image processing unit 251 for each image processing unit 251.
  • the image processing module 2502 determines the level of urgency of the image processing, and outputs to the bus arbiter 220 a priority switching signal SW for notifying the level of urgency of the image processing performed by the image processing unit 251 at an early timing.
  • the priority switching control unit 2514 can request the bus arbiter 220 to switch (change) the priority of the image processing unit 251. Then, in the memory access device of the second embodiment, when the bus arbiter 220 arbitrates the access request to the DRAM 30 from each processing block, the priority switching signal SW output from the priority switching control unit 2514 is used. In response to this, in a state in which the priority of one of the image processing units 251 is switched, a processing block for accepting (permitting) an access request to the DRAM 30 is determined.
  • any one of them is performed before the end of the series of image processing for each block by each image processing unit 251 is delayed and exceeds the set limit time.
  • the access request to the DRAM 30 from the image processing unit 251 is accepted (permitted).
  • the factors that cause a failure in the series of image processing for the divided blocks are reduced.
  • Image processing on each block in the image processing unit 251 can be reliably completed by the set limit time.
  • a series of image processing to be realized without breaking the operation or function as a system is realized. It can be done smoothly and without delay.
  • the image processing module in the image processing unit provided in the image processing apparatus constituting the memory access apparatus of the present invention performs image processing on image data.
  • An image processing progress status signal for notifying the progress status of the processing is output.
  • the priority switching control unit constituting the memory access device of the present invention is provided in the image processing device constituting the memory access device of the present invention based on the image processing progress status signal PS.
  • the image processing module in the image processing unit calculates the remaining processing time when performing the image processing.
  • the priority switching control unit constituting the memory access device of the present invention defines the remaining processing time calculated and the time for which the image processing module needs to complete the image processing.
  • the priority switching control unit configuring the memory access device of the present invention is a priority for notifying the urgency of the image processing performed by the image processing module based on the determination result.
  • a switching signal is generated and output to a bus arbiter that constitutes the memory access device of the present invention.
  • the bus arbiter that configures the memory access device of the present invention arbitrates an access request to DRAM from each processing block connected to a common data bus, priority switching is performed.
  • the priority of the image processing unit provided in the image processing apparatus constituting the memory access device of the present invention is increased to prioritize the access request from the image processing unit.
  • the end of the image processing performed by the image processing unit provided in the image processing apparatus constituting the memory access device of the present invention is delayed, and the time of the defined limit is reached. Will never be exceeded. That is, in each embodiment of the present invention, the image processing unit provided in the image processing apparatus constituting the memory access apparatus of the present invention performs a wait state in the image processing performed, and the defined limit is not generated. Image processing can be completed by (limit) time.
  • each of the embodiments of the present invention it is possible to reduce factors that cause a failure in a series of image processing in a system equipped with the memory access device of the present invention. That is, in each embodiment of the present invention, the operation of the image processing unit (image processing module), which can cause a breakdown of the operation and function as a system, is suspended in the system equipped with the memory access device of the present invention. Instead, a series of image processing on image data can be smoothly and smoothly performed.
  • each embodiment of the present invention the configuration in which the memory access apparatus of the present invention is included in the image processing apparatus mounted on the imaging apparatus has been described.
  • various systems other than the image processing apparatus and the imaging apparatus shown in each embodiment of the present invention can be considered as a system provided with a memory access apparatus for transferring data to and from the DRAM.
  • various systems can be considered, such as a system that performs predetermined processing (voice processing) on voice data. Therefore, the processing apparatus and system to which the memory access apparatus based on the concept of the present invention can be applied are not limited at all. That is, as long as the processing apparatus or system performs predetermined processing on data transferred to and from the DRAM, the concept of the memory access apparatus of the present invention is similarly applied to any processing apparatus or system. be able to. And the same effect as the memory access device of the present invention can be obtained.
  • Imaging device 10 Image sensor (imaging device) 20, 21 Image Processing Device (Imaging Device, Image Processing Device) 210 Data bus (imaging device, image processing device) 220 Bus Arbiter (Image Processing Device, Memory Access Device, Bus Arbiter) 230 DRAM interface unit (image processing device, memory access device, bus arbiter) 240 Captured Image Capture Unit (Imaging Device, Image Processing Device) 250, 251, 251-1, 251-2, 251-3 Image processing unit (image processing device, memory access device, data processing unit, priority switching control unit) 2501 Bus master (image processing device, memory access device, data processing unit) 2501B Surface buffer (image processing unit, memory access unit, data processing unit) 2502, 2502-1, 2502-2, 2502-3 Image processing module (memory access device, data processing unit) 2503 Bus master (image processing device, memory access device, data processing unit) 2503 B Surface buffer (image processing device, memory access device, data processing unit) 2504, 2514 Priority switching control unit (image processing device, memory access device, priority switching control unit)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Studio Devices (AREA)

Abstract

データバスに接続されたメモリへのアクセスを要求するアクセス要求を出力し、アクセスしたメモリのデータに対してデータ処理を行うと共に、データ処理の進行状況を通知するデータ処理部と、データ処理部から通知されたデータ処理の進行状況に基づいて、データ処理部によるデータ処理の緊急度を判定し、データ処理部の優先度の切り替えを通知する優先度切り替え信号を出力する優先度切り替え制御部と、データバスに接続され、メモリへのアクセス要求を調停する際に、優先度切り替え信号に応じて、データ処理部から出力されたアクセス要求の優先度を変更して調停し、調停によって受け付けたアクセス要求に応じてメモリへのアクセスを制御するバスアービタと、を備える。

Description

メモリアクセス装置、画像処理装置、および撮像装置
 本発明は、メモリアクセス装置、画像処理装置、および撮像装置に関する。
 静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、搭載されたシステムLSIなどの画像処理装置によって、様々な画像処理が行われる。画像処理装置には、撮像装置における様々な画像処理を行うための複数の処理ブロックが内蔵されており、それぞれの処理ブロックは、画像処理装置の内部に設けられたデータバスに接続されている。また、画像処理装置では、データバスに接続されたそれぞれの処理ブロックが、バスマスタとして、画像処理装置の外部に接続された1つのDRAM(Dynamic Random Access Memory)を共有している。そして、画像処理装置では、それぞれの処理ブロック(バスマスタ)が、データバスを介したDMA(Direct Memory Access)転送によってDRAMにアクセスし、画像処理を行うための種々のデータの受け渡しを、DRAMを介して行っている。
 また、複数の処理ブロック(バスマスタ)で1つのDRAMを共有する構成の画像処理装置には、それぞれのバスマスタから出力されるDMA転送のアクセス要求を調停する調停回路(いわゆる、DMA調停回路)を備えている。調停回路は、それぞれのバスマスタから出力されるDRAMへのアクセス要求(いわゆる、DMA要求)を適切に調停しながら、DRAMに対する実際のアクセスを制御している。調停回路は、基本的に、それぞれのバスマスタの優先順位を表す優先度に基づいて、DRAMへのアクセス要求を受け付ける(許可する)バスマスタを決定する。これにより、画像処理装置では、それぞれのバスマスタがDRAMとの間でデータの受け渡しを行う際のデータバスにおけるデータの流れ、つまり、バス帯域を確保し、画像処理装置を搭載した撮像装置のシステム全体としての機能を実現する。
 また、近年では、撮像装置における高性能化が進んでいる。このため、撮像装置に搭載する画像処理装置においても、備える処理ブロック(バスマスタ)が増加し、それぞれの処理ブロックにおいて実行する処理も複雑化してきている。例えば、近年の画像処理装置では、撮影した画像を表示するための表示装置の高精細化に伴って、HDTV(High Definition TeleVision)に対応したフルHDサイズ(1920×1080)の解像度をもつ画像や、UHDTV(Ultra High Definition TeleVision)に対応した4Kサイズ(3840×2160)の解像度をもつ画像を表示させることができるようになっている。このため、画像処理装置では、データバスを介して受け渡しを行うデータ量も増加し、それぞれの処理ブロック(バスマスタ)がデータバスを介してDRAMにアクセスするために必要なバス帯域(単位時間あたりのデータアクセス量)が急増している。
 そして、DRAMへのアクセス量が多くデータバスが混雑している状態、つまり、バス帯域が高い状態のときに、調停回路が優先度に基づいて調停を行うと、優先度が高い処理ブロック(バスマスタ)からのアクセス要求を確実に受け付ける(許可する)ように調停をすることはできるが、優先度が低い処理ブロック(バスマスタ)からのアクセス要求は、受け付ける(許可する)割合が少なくなってしまうと考えられる。つまり、優先度が低い処理ブロック(バスマスタ)は、DRAMへのアクセス要求が受け付けられなかった(許可されなかった)ことによって、DRAMとの間で必要なデータの受け渡しをすることができず、予め規定された処理時間内に処理を終了することができなくなってしまうことが考えられる。しかしながら、優先度が低い処理ブロック(バスマスタ)であっても、予め定めた処理時間内に処理が終了しないと、画像処理装置を搭載した撮像装置のシステムとしての動作や機能が破綻してしまう要因となる。
 そこで、例えば、特許文献1のようなバス調停システムの技術が開示されている。特許文献1には、リアルタイム処理を行う必要性の高いバスマスタからのバス要求が、他のバスマスタからのバス要求と競合した場合において、リアルタイム処理を必要とするバスマスタにおけるアクセスが待たされていると判断した場合に、リアルタイム処理が必要なバスマスタに対して共有バス使用権を優先的に与えるバス調停システムが提案されている。このとき、特許文献1に開示されたバス調停システムでは、実際に共有バス使用権をいずれかのバスマスタに与えてしまう前に、それぞれのバスマスタにおける待機可能な最長時間と、それぞれのバスマスタにおける共有バスの占有予定時間とに基づいて、仮に1つの候補のバスマスタに共有バス使用権を与えた場合における他のバスマスタへの影響を検証してから、実際に共有バス使用権を与えるバスマスタを決定している。これにより、特許文献1に開示されたバス調停システムでは、リアルタイム処理が必要なバスマスタによる処理が滞ることがないように、つまり、バスマスタにおける待機時間を超過させないようにして、バス調停を行うことができる。
日本国特開2000-148668号公報
 上述したように、特許文献1に開示された技術では、複数のバスマスタからのバス要求が競合した場合において、実際に共有バス使用権をいずれかのバスマスタに与えてしまう前に、いずれのバスマスタに実際に共有バス使用権を与えるかを判断している。しかしながら、それぞれの処理ブロック(バスマスタ)は、自身が行っている処理の状態に応じて、アクセス要求を出力する。このため、それぞれの処理ブロック(バスマスタ)からのアクセス要求は、必ずしも同時期に出力されるとは限らない。また、それぞれの処理ブロック(バスマスタ)がアクセス要求を出力する周期も、常に同じ周期であるとは限らない。そして、特許文献1に開示された技術では、バスマスタからバス要求が出力されるタイミングに関しての考慮がされていない。このため、特許文献1に開示された技術では、同時期に出力された複数のバスマスタからのバス要求に関してはバス調停を行うことができるものの、共有バス使用権を与えた後に出力されたバス要求を含めてバス調停を行うことができない。このことから、特許文献1に開示された技術では、必ずしも、バスマスタにおける待機時間を超過させないようにしてバス調停を行うことができるとは限らず、システムとしての動作や機能が破綻をきたしてしまうこともあり得る。
 本発明は、上記の課題認識に基づいてなされたものであり、複数の処理ブロックがDRAMを共有する場合に、優先度が低い処理ブロックであっても、予め規定された処理時間内に処理を終了して、システムに破綻をきたす要因を削減することができるメモリアクセス装置、画像処理装置、および撮像装置を提供することを目的としている。
 本発明の第1の態様によれば、メモリアクセス装置は、データバスに接続されたメモリへのアクセスを要求するアクセス要求を出力し、アクセスした前記メモリのデータに対してデータ処理を行うと共に、前記データ処理の進行状況を通知するデータ処理部と、前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部による前記データ処理の緊急度を判定し、前記データ処理部の優先度の切り替えを通知する優先度切り替え信号を出力する優先度切り替え制御部と、前記データバスに接続され、前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号に応じて、前記データ処理部から出力された前記アクセス要求の優先度を変更して調停し、前記調停によって受け付けたアクセス要求に応じて前記メモリへのアクセスを制御するバスアービタと、を備える。
 本発明の第2の態様によれば、上記第1の態様のメモリアクセス装置において、前記優先度切り替え制御部は、前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部が行う前記データ処理における残りの処理時間を算出し、前記残りの処理時間と、前記データ処理部が前記データ処理を完了する必要がある時間として規定された限界の時間と、前記データ処理部が前記データ処理を開始してから現在までの処理時間とに基づいて、前記データ処理部が前記データ処理を行う際の処理余裕時間を算出し、前記処理余裕時間と、予め定めた緊急度閾値時間とに基づいて、前記データ処理部による前記データ処理の緊急度を判定してもよい。
 本発明の第3の態様によれば、上記第2の態様のメモリアクセス装置において、前記優先度切り替え制御部は、前記処理余裕時間が、予め定めた緊急度閾値時間よりも短い場合に前記データ処理部による前記データ処理の緊急度は高いと判定し、前記データ処理部の優先度を高くすることを通知する前記優先度切り替え信号を出力し、前記処理余裕時間が、前記緊急度閾値時間よりも短くない場合に前記データ処理部による前記データ処理の緊急度は低いと判定し、前記データ処理部の優先度を低いままとすることを通知する前記優先度切り替え信号を出力し、前記バスアービタは、前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号によって優先度を高くすることが通知された前記データ処理部から出力された前記アクセス要求の優先度を高くして調停してもよい。
 本発明の第4の態様によれば、上記第3の態様のメモリアクセス装置において、前記データ処理部は、前記データ処理の進行状況として、前記データ処理が完了した割合を表す処理完了割合を通知し、前記優先度切り替え制御部は、前記データ処理部における前記データ処理の速度および処理の量と、通知された前記処理完了割合と、に基づいて前記残りの処理時間を算出してもよい。
 本発明の第5の態様によれば、上記第3の態様のメモリアクセス装置において、前記データ処理部は、前記データ処理を複数回に分けて行う場合において、前記データ処理の進行状況として、前記データ処理が完了した回数を表す処理完了数を通知し、前記優先度切り替え制御部は、前記データ処理部が分けて行う前記データ処理の回数、および通知された前記処理完了数とから求められる残りの処理回数と、分けて行う1回の前記データ処理における処理の量と、前記データ処理部における前記データ処理の速度と、に基づいて前記残りの処理時間を算出してもよい。
 本発明の第6の態様によれば、上記第3の態様のメモリアクセス装置において、前記データ処理部は、前記データ処理を処理量が異なる複数回に分けて行う場合において、前記データ処理の進行状況として、現在までに前記データ処理が終了した処理の量を表す処理完了量を通知し、前記優先度切り替え制御部は、前記データ処理部が行う前記データ処理における全体の処理の量、および通知された処理完了量とから求められる残りの処理の量と、前記データ処理部における前記データ処理の速度と、に基づいて前記残りの処理時間を算出してもよい。
 本発明の第7の態様によれば、上記第2の態様から上記第6の態様のいずれか一態様のメモリアクセス装置において、前記優先度切り替え制御部は、前記残りの処理時間および前記限界の時間のいずれか一方または両方に、時間に対する割合で表される予め定めた時間係数を乗算した後に、前記処理余裕時間を算出してもよい。
 本発明の第8の態様によれば、上記第3の態様のメモリアクセス装置において、予め定めた順番で一連の処理において対応する前記データ処理を順次行う複数の前記データ処理部を備え、それぞれの前記データ処理部は、先に開始した前記一連の処理に含まれる対応する前記データ処理が終了した後、次の前記一連の処理に含まれる対応する前記データ処理を開始することによって、複数の前記データ処理部が異なる前記一連の処理に含まれる対応する前記データ処理を並列に行い、前記優先度切り替え制御部は、それぞれの前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記一連の処理の単位でそれぞれの前記データ処理部による前記データ処理の緊急度を判定し、複数の前記データ処理部における前記データ処理の緊急度が高いと判定した場合には、先に開始した前記一連の処理に含まれる対応する前記データ処理を行う前記データ処理部の優先度を高くすることを通知する前記優先度切り替え信号を出力してもよい。
 本発明の第9の態様によれば、上記第3の態様のメモリアクセス装置において、予め定めた順番で一連の処理において対応する前記データ処理を順次行う複数の前記データ処理部を備え、それぞれの前記データ処理部は、先に開始した前記一連の処理に含まれる対応する前記データ処理が終了した後、次の前記一連の処理に含まれる対応する前記データ処理を開始することによって、複数の前記データ処理部が異なる前記一連の処理に含まれる対応する前記データ処理を並列に行い、前記優先度切り替え制御部は、それぞれの前記データ処理部から通知された前記データ処理の進行状況に基づいて算出した前記データ処理部ごとの前記残りの処理時間と、それぞれの前記一連の処理において前記データ処理部ごとに設定された前記限界の時間と、前記データ処理部ごとの前記処理時間とに基づいて、前記処理余裕時間を前記データ処理部ごとに算出し、前記データ処理部ごとの前記処理余裕時間と、前記緊急度閾値時間とに基づいて、前記データ処理の緊急度を前記データ処理部ごとに判定し、それぞれの一連の処理において最後に対応する前記データ処理を行う前記データ処理部による前記データ処理の完了が、設定された前記限界の時間を超えないように、優先度を高くすることを通知する前記優先度切り替え信号を出力してもよい。
 本発明の第10の態様によれば、画像処理装置は、データバスに接続されたメモリへのアクセスを要求するアクセス要求を出力し、アクセスした前記メモリのデータに対してデータ処理を行うと共に、前記データ処理の進行状況を通知するデータ処理部と、前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部による前記データ処理の緊急度を判定し、前記データ処理部の優先度の切り替えを通知する優先度切り替え信号を出力する優先度切り替え制御部と、前記データバスに接続され、前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号に応じて、前記データ処理部から出力された前記アクセス要求の優先度を変更して調停し、前記調停によって受け付けたアクセス要求に応じて前記メモリへのアクセスを制御するバスアービタと、を具備したメモリアクセス装置、を備える。
 本発明の第11の態様によれば、撮像装置は、データバスに接続されたメモリへのアクセスを要求するアクセス要求を出力し、アクセスした前記メモリのデータに対してデータ処理を行うと共に、前記データ処理の進行状況を通知するデータ処理部と、前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部による前記データ処理の緊急度を判定し、前記データ処理部の優先度の切り替えを通知する優先度切り替え信号を出力する優先度切り替え制御部と、前記データバスに接続され、前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号に応じて、前記データ処理部から出力された前記アクセス要求の優先度を変更して調停し、前記調停によって受け付けたアクセス要求に応じて前記メモリへのアクセスを制御するバスアービタと、を具備したメモリアクセス装置を備える画像処理装置、を備える。
 上記各態様によれば、複数の処理ブロックがDRAMを共有する場合に、優先度が低い処理ブロックであっても、予め規定された処理時間内に処理を終了して、システムに破綻をきたす要因を削減することができるメモリアクセス装置、画像処理装置、および撮像装置を提供することができるという効果が得られる。
本発明の第1の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。 本発明の第1の実施形態のメモリアクセス装置において画像処理の緊急度を判定する処理の処理手順を示したフローチャートである。 本発明の第1の実施形態のメモリアクセス装置におけるリミット時間と画像処理の期間との関係の一例を模式的に示した図である。 本発明の第1の実施形態のメモリアクセス装置におけるリミット時間と画像処理の期間との関係の別の一例を模式的に示した図である。 本発明の第2の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。 本発明の第2の実施形態におけるメモリアクセス装置を備えた画像処理装置において画像処理を行う画像の領域を分割した一例を模式的に示した図である。 本発明の第2の実施形態のメモリアクセス装置におけるリミット時間と画像処理の期間との関係の一例を模式的に示した図である。 本発明の第2の実施形態のメモリアクセス装置においてリミット時間を設定する手順の一例を模式的に示した図である。 本発明の第2の実施形態のメモリアクセス装置においてリミット時間を設定する手順の一例を模式的に示した図である。
(第1の実施形態)
 以下、本発明の実施形態について、図面を参照して説明する。なお、以下の説明においては、本発明の第1の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。
 図1は、本発明の第1の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。図1に示した撮像装置1は、イメージセンサ10と、画像処理装置20と、DRAM(Dynamic Random Access Memory)30と、表示装置40と、を備えている。
 また、画像処理装置20は、バスアービタ220と、DRAMインターフェース部230と、撮像画像取り込み部240と、画像処理部250と、表示処理部260と、を備えている。また、画像処理部250は、バスマスタ2501と、画像処理モジュール2502と、バスマスタ2503と、優先度切り替え制御部2504と、を備えている。また、バスマスタ2501は、面バッファ2501Bを備えている。また、バスマスタ2503は、面バッファ2503Bを備えている。画像処理装置20では、バスアービタ220と、撮像画像取り込み部240と、画像処理部250と、表示処理部260とのそれぞれが、共通のデータバス210に接続されている。
 なお、図1に示した撮像装置1では、画像処理装置20に備えた画像処理部250と、バスアービタ220とによって、第1の実施形態のメモリアクセス装置を構成している。
 撮像装置1は、イメージセンサ10によって被写体の静止画像または動画像を撮影する。そして、撮像装置1は、撮影した静止画像に応じた表示画像を表示装置40に表示させる。また、撮像装置1は、撮影した動画像に応じた表示画像を表示装置40に表示させる。なお、撮像装置1は、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
 イメージセンサ10は、撮像装置1に備えた不図示のレンズによって結像された被写体の光学像を光電変換する固体撮像装置である。例えば、イメージセンサ10は、CCD(Charge Coupled Device:電荷結合素子)イメージセンサや、CMOS(Complementary Metal-Oxide Semiconductor:相補型金属酸化膜半導体)イメージセンサに代表される固体撮像装置である。イメージセンサ10は、撮像した被写体の光学像に応じた画素信号を、画像処理装置20に備えた撮像画像取り込み部240に出力する。
 DRAM30は、撮像装置1に備えた画像処理装置20において処理される様々なデータを記憶するメモリ(データ記憶部)である。DRAM30は、画像処理装置20に備えたDRAMインターフェース部230およびバスアービタ220を介してデータバス210に接続されている。DRAM30は、画像処理装置20におけるそれぞれの処理段階の画像のデータを記憶する。例えば、DRAM30は、イメージセンサ10から出力された画素信号に基づいて撮像画像取り込み部240が出力した画素のデータを記憶する。また、例えば、DRAM30は、画像処理装置20に備えた画像処理部250が生成した画像(静止画像、動画像、表示画像、記録画像など)のデータを記憶する。
 表示装置40は、画像処理装置20に備えた表示処理部260から出力された表示画像を表示する表示装置である。表示装置40には、表示する表示画像の大きさ、つまり、画素数が異なる様々な表示装置がある。例えば、表示装置40には、VGA(640×480)サイズの画像を表示するTFT(薄膜トランジスター:Thin Film Transistor)液晶ディスプレイ(LCD:Liquid Crystal Display)や、EVF(Electronic View Finder:電子ビューファインダ)など、撮像装置1に搭載され、撮影する被写体を確認するためのビューファインダとして動作する小型の表示装置がある。また、例えば、表示装置40には、フルHD(1920×1080)サイズの画像を表示するHDTV(High Definition TeleVision)や、4K2K(3840×2160)サイズの画像を表示するUHDTV(Ultra High Definition TeleVision)など、撮像装置1に着脱できる構成であり、静止画像や動画像に応じた表示画像を表示して確認するための大型の表示装置もある。
 画像処理装置20は、イメージセンサ10から出力された画素信号に対して予め定めた画像処理を行って、静止画像や動画像を生成する。また、画像処理装置20は、生成した静止画像や動画像に応じた表示画像を生成する。そして、画像処理装置20は、生成した表示画像を表示装置40に表示させる。また、画像処理装置20は、生成した静止画像や動画像に応じた記録画像を生成し、生成した記録画像を不図示の記録媒体に記録させることもできる。
 画像処理装置20では、撮像画像取り込み部240と、画像処理部250と、表示処理部260とのそれぞれが、画像処理装置20において実行する画像処理の処理機能を実現する処理ブロックである。画像処理装置20では、撮像画像取り込み部240、画像処理部250、および表示処理部260のそれぞれが、データバス210を介したDMA(Direct Memory Access)転送によってDRAM30にアクセスする。
 なお、画像処理装置20では、それぞれの処理ブロックに、画像処理を実行するときにDRAM30にアクセスする際の優先順位、つまり、DMA転送を行う際の優先順位を表す優先度が設定されている。この優先度は、撮像装置1が実行する動作、いわゆる、動作モードごとに設定されている。例えば、撮像装置1の動作モードが、被写体の撮影を行う撮影モードである場合、被写体の撮影、および撮影する被写体を確認するための表示画像、いわゆる、ライブビュー画像(スルー画像)の表示に、リアルタイム性が求められる。ここで、画像処理装置20においてリアルタイム性が求められる機能を実現するための処理ブロックがDRAM30にアクセスするDMA転送が待たされると、撮像装置1のシステムとしての動作に破綻をきたしてしまう。このため、画像処理装置20においては、リアルタイム性が求められる機能を実現するための処理ブロックの優先度を高く設定して、優先度が高い処理ブロックのDMA転送が待たされないようにする。例えば、撮像装置1の動作モードが撮影モードである場合、画像処理装置20に備えた撮像画像取り込み部240と表示処理部260との優先度を高く設定する。
 なお、以下の説明においては、画像処理装置20に備えた撮像画像取り込み部240と表示処理部260とのそれぞれが、優先度が高く設定されている処理ブロックであるものとして説明する。言い換えれば、画像処理装置20に備えた画像処理部250は、優先度が低く設定されている処理ブロックであるものとして説明する。
 バスアービタ220は、データバス210に接続されている画像処理装置20内のそれぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求(DMA要求)を調停し、いずれかの処理ブロックからのDRAM30へのアクセス要求を受け付ける調停回路(いわゆる、DMA調停回路)である。バスアービタ220は、画像処理装置20に備えたそれぞれの処理ブロックの優先度に基づいて、アクセス要求信号(DMA要求信号)を出力してきたそれぞれの処理ブロックの中から、DRAM30へのアクセス要求を受け付ける(許可する)処理ブロックを決定する。
 このとき、バスアービタ220は、画像処理部250から、画像処理部250の優先度を高くすることを表す優先度切り替え信号SWが出力されている場合には、画像処理部250の優先度を高くして、DRAM30へのアクセス要求を受け付ける(許可する)処理ブロックを決定する。つまり、バスアービタ220は、優先度が低い処理ブロックである画像処理部250であっても、優先度切り替え信号SWに応じて、画像処理部250の優先度を高くした状態で、それぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求を調停する。
 そして、バスアービタ220は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停した結果、アクセス要求を受け付ける(許可する)と決定した処理ブロックに、アクセス要求を受け付けたことを通知するためのアクセス受け付け信号(いわゆる、DMA許可信号)を出力する。
 その後、バスアービタ220は、アクセス要求を受け付けた処理ブロックとの間でデータバス210を介したデータの受け渡しを行う。このとき、バスアービタ220は、アクセス要求を受け付けた処理ブロックからアクセス要求信号と共に出力されてきたアドレス(バンクを含む)やアクセス方向(書き込みまたは読み出し)など、DRAM30へのアクセスに関する情報(アクセス情報)をDRAMインターフェース部230に出力(転送)する。なお、バスアービタ220は、DRAM30にデータを書き込むライトアクセスを行う場合には、アクセス要求を受け付けた処理ブロックからデータバス210を介して出力されたデータもDRAMインターフェース部230に出力(転送)する。一方、バスアービタ220は、DRAM30からデータを読み出すリードアクセスを行う場合には、出力したDRAM30へのアクセス情報に応じてDRAMインターフェース部230から出力されたデータを、データバス210を介してアクセス要求を受け付けた処理ブロックに出力(転送)する。
 なお、バスアービタ220の動作は、画像処理部250から出力された優先度切り替え信号SWに応じて画像処理部250の優先度を高くした状態でも、それぞれの処理ブロックからのDRAM30へのアクセス要求を優先度に基づいて調停する動作は、既存のバスアービタ(いわゆる、DMA調停回路)の動作と同様である。つまり、バスアービタ220が優先度に基づいてDRAM30へのアクセス要求を調停する動作は、既存のバスアービタ(いわゆる、DMA調停回路)の技術に基づいて容易に考えることができる。従って、バスアービタ220が、画像処理部250から出力された優先度切り替え信号SWに応じて画像処理部250の優先度を高くした状態で、それぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求を調停する動作に関する詳細な説明は省略する。
 DRAMインターフェース部230は、バスアービタ220から出力されたアクセス情報に基づいて、DRAM30との間で実際にデータの受け渡しを行う、つまり、実際にデータの転送(DMA転送)を行うDRAMコントローラーである。DRAMインターフェース部230は、バスアービタ220がアクセス要求を受け付けた処理ブロックから出力され、バスアービタ220から出力(転送)されてきたDRAM30へのアクセス情報に基づいて、DRAM30を制御する。このとき、DRAMインターフェース部230は、DRAM30に対してライトアクセスを行う場合には、バスアービタ220から出力(転送)されてきた、バスアービタ220がアクセス要求を受け付けた処理ブロックがデータバス210に出力したデータを、アクセス情報によって指定されたDRAM30のアドレスの記憶領域に記憶させる(書き込む)。一方、DRAMインターフェース部230は、DRAM30に対してリードアクセスを行う場合には、アクセス情報によって指定されたDRAM30のアドレスの記憶領域に記憶されているデータを読み出し、読み出したデータをバスアービタ220に出力する。
 撮像画像取り込み部240は、イメージセンサ10から出力された画素信号のデータに対して予め定めた種々の画像処理を施す処理ブロックである。撮像画像取り込み部240がイメージセンサ10から出力された画素信号のデータに対して施す画像処理は、例えば、キズ補正やシェーディング補正などの、いわゆる、前処理である。なお、本発明においては、撮像画像取り込み部240がイメージセンサ10から出力された画素信号のデータに対して施す画像処理(前処理)に関しては、特に制限はしない。撮像画像取り込み部240は、前処理を施した後の画素信号のデータ(以下、「前処理画像データ」という)を、DMA転送によってDRAM30に記憶させる(書き込む)。つまり、撮像画像取り込み部240は、前処理画像データをDRAM30に記憶させる(書き込む)DMA転送を行うDMA転送部(バスマスタ)でもある。なお、上述したように、撮像画像取り込み部240は、優先度が高く設定されているため、撮像画像取り込み部240は、高優先のバスマスタである。
 撮像画像取り込み部240は、前処理画像データをDRAM30に記憶させる(書き込む)際に、DRAM30へのライトアクセスを要求するためのアクセス要求信号(DMA要求信号)と、前処理画像データを記憶させるDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する書き込みのアクセス方向であることを表すアクセス方向信号(DMAライト信号)とを、バスアービタ220に出力する。そして、撮像画像取り込み部240は、出力したアクセス要求信号がバスアービタ220に受け付けられた後に、つまり、バスアービタ220からアクセス受け付け信号(DMA許可信号)が入力された後に、前処理画像データをバスアービタ220に出力する。これにより、撮像画像取り込み部240が出力した前処理画像データが、バスアービタ220およびDRAMインターフェース部230を介してDRAM30に出力され、アクセス要求信号と共に出力したアドレス(DMAアドレス)の記憶領域に記憶される(書き込まれる)。
 なお、撮像画像取り込み部240は、イメージセンサ10から出力された画素信号のデータを一時的に保存してから前処理を施す構成であってもよい。また、撮像画像取り込み部240は、前処理を施した前処理画像データを一時的に保存した後に、DMA転送においてバスアービタ220に出力する構成であってもよい。
 画像処理部250は、DRAM30に記憶された前処理画像データに対して予め定めた画像処理を施す処理ブロックである。画像処理部250では、画像処理を施す対象の前処理画像データを取得する(読み出す)ためのDMA転送と、画像処理を施して生成した画像データをDRAM30に記憶する(書き込む)ためのDMA転送とを行う。より具体的には、画像処理部250は、画像処理を施す対象の前処理画像データを、DMA転送によってDRAM30から取得する(読み出す)。そして、画像処理部250は、取得した前処理画像データに対して予め定めた画像処理を施す。その後、画像処理部250は、画像処理を施した後の画像データを、DMA転送によってDRAM30に記憶させる(書き込む)。上述したように、画像処理部250は、バスマスタ2501と、画像処理モジュール2502と、バスマスタ2503と、優先度切り替え制御部2504と、を備えている。
 バスマスタ2501は、DRAM30と画像処理モジュール2502との間でDMA転送を行うDMA転送部である。バスマスタ2501は、画像処理モジュール2502が画像処理を行う対象の前処理画像データをDRAM30から取得する(読み出す)DMA転送を行う。つまり、バスマスタ2501は、DRAM30との間で一方向(読み出し)のDMA転送(以下、「リードDMA転送」という)を行う。上述したように、バスマスタ2501は、面バッファ2501Bを備えている。
 面バッファ2501Bは、予め定めたデータ量(例えば、画素数)の画像データ(前処理画像データ)を一時的に記憶(保存)するデータ記憶部である。面バッファ2501Bは、例えば、SRAM(Static Random Access Memory)などのメモリで構成される。
 なお、面バッファ2501Bは、予め定めたデータ量(例えば、画素数)の画像データ(前処理画像データ)を記憶する記憶容量の組を2つ備えた、いわゆる、ダブルバッファの構成であってもよい。つまり、面バッファ2501Bは、一方の記憶容量の組への画像データの書き込みと、他方の記憶容量の組からの画像データの読み出しとを交互に切り替えることによって、バスマスタ2501における1回のリードDMA転送の単位で、画像データの入出力を同時期に行うことができる構成であってもよい。なお、ダブルバッファの構成の面バッファ2501Bを備えたバスマスタ2501の動作は、既存のダブルバッファの動作を制御する技術に基づいて容易に考えることができる。従って、ダブルバッファの構成の面バッファ2501Bを備えたバスマスタ2501の動作に関する詳細な説明は省略する。
 バスマスタ2501は、リードDMA転送によってDRAM30から取得した(読み出した)前処理画像データを、面バッファ2501Bに一時的に記憶(保存)し、予め定めたデータ量の前処理画像データを記憶(保存)した後に、画像処理モジュール2502からの要求に応じて、記憶(保存)している前処理画像データを画像処理モジュール2502に出力する。つまり、バスマスタ2501は、リードDMA転送によってDRAM30から取得した(読み出した)前処理画像データを、画像処理モジュール2502が画像処理を行うタイミングに合わせて、画像処理モジュール2502に出力する。なお、上述したように、画像処理部250は、優先度が低く設定されているため、バスマスタ2501は、低優先のバスマスタである。
 画像処理モジュール2502は、画像処理部250において前処理画像データに対して行う予め定めた画像処理を実行する処理モジュールである。画像処理モジュール2502が、前処理画像データに対して行う画像処理としては、例えば、ノイズ除去処理、YC(輝度色差)変換処理、歪補正処理、動き検出処理、リサイズ処理、JPEG圧縮処理などの静止画像圧縮処理、MPEG圧縮処理やH.264圧縮処理などの動画像圧縮処理など、各種の表示用の画像処理や記録用の画像処理がある。なお、本発明においては、画像処理モジュール2502が前処理画像データに対して施す画像処理に関しては、特に制限はしない。なお、画像処理モジュール2502は、不図示の記録媒体に記録された記録画像のデータに対して、例えば、JPEG伸張処理などの静止画像伸張処理、MPEG伸張処理やH.264伸張処理などの動画像伸張処理などの画像処理を行う構成であってもよい。
 画像処理モジュール2502は、取得した前処理画像データに対して上述したような予め定めた画像処理を施して、静止画像の画像データ(以下、「静止画像データ」という)や、動画像の画像データ(以下、「動画像データ」という)を生成する。なお、以下の説明においては、画像処理モジュール2502が生成した静止画像データと動画像データとを区別せずに表すときには、「画像処理画像データ」という。
 また、画像処理モジュール2502は、取得した前処理画像データに施す画像処理の進行状況を、優先度切り替え制御部2504に通知する。図1に示した画像処理部250では、画像処理モジュール2502が、画像処理進行状況信号PSによって、前処理画像データに対して施している画像処理の進行状況を通知している。なお、画像処理進行状況信号PSは、例えば、1フレーム分の全ての前処理画像データに対する画像処理モジュール2502の画像処理が、現時点までに完了している割合(パーセント)を表す信号である。ここで、画像処理進行状況信号PSが表す、画像処理が完了している割合(パーセント)は、画像処理モジュール2502が、例えば、1フレーム分の前処理画像の全ての画素数と、現時点までに画像処理が完了している画素数とに基づいて算出することができる。また、画像処理モジュール2502は、例えば、1フレームの前処理画像の領域内で、現在画像処理を行っている画素の座標の情報などに基づいて、画像処理が完了している割合(パーセント)を算出することもできる。
 なお、画像処理モジュール2502が前処理画像データに対して行う画像処理は、1つのフレームの画像の全体の領域に対して画像処理を行うとは限らない。例えば、歪補正処理やJPEG圧縮処理では、1つのフレームの画像の領域を複数の矩形のブロックに分割し、分割したそれぞれのブロックに対する処理を順次行って、全てのブロックに対する処理が完了したときに、1つのフレームの画像の全体の領域に対する画像処理が完了する。この場合、画像処理モジュール2502は、前処理画像データに対して施している画像処理の進行状況を通知するために出力する画像処理進行状況信号PSとして、分割した複数のブロックの内、現時点までに画像処理を完了しているブロック数を表す信号を出力してもよい。
 このとき、画像処理モジュール2502は、1フレームの画像の領域を複数のブロックに分割して行う画像処理において、分割したそれぞれのブロックに含まれる画素数が異なることもある。例えば、歪補正処理では、分割したそれぞれのブロックに対する画像処理を行うために、同じ画素の前処理画像データを異なるブロックの画像処理に用いることもある。このため、画像処理モジュール2502が1つのフレームの画像の全体の領域に対する画像処理を完了するまでに処理を行う画素数は、1フレーム分の画素数よりも多くなる。この場合、画像処理モジュール2502は、画像処理進行状況信号PSとして、1フレーム分の画像処理画像データ(静止画像データや動画像データ)を出力するまでに画像処理を行う必要がある全てのブロックに含まれる異なる画素数を合計した画素数の内、現時点までに画像処理を完了しているそれぞれのブロックに含まれる異なる画素数を合計した画素数を表す信号を出力してもよい。
 また、画像処理モジュール2502が前処理画像データに対して行う画像処理は、1つのフレームごとに行う画像処理のみであるとは限らない。例えば、動画像圧縮処理では、複数のフレームを1つのグループ(いわゆる、GOP:Group of Picture)として処理するため、画像処理モジュール2502も、このグループ単位で画像処理を行う。この場合、画像処理モジュール2502は、画像処理進行状況信号PSとして、1つのグループ単位に含まれる複数のフレームの内、現時点までに画像処理を完了しているフレーム数を表す信号を出力してもよい。
 バスマスタ2503は、DRAM30と画像処理モジュール2502との間でDMA転送を行うDMA転送部である。バスマスタ2503は、画像処理モジュール2502が画像処理を行った後の画像処理画像データ(静止画像データや動画像データ)をDRAM30に記憶させる(書き込む)DMA転送を行う。つまり、バスマスタ2503は、DRAM30との間で一方向(書き込み)のDMA転送(以下、「ライトDMA転送」という)を行う。上述したように、バスマスタ2503は、面バッファ2503Bを備えている。
 面バッファ2503Bは、予め定めたデータ量(例えば、画素数)の画像データ(静止画像データや動画像データ)を一時的に記憶(保存)するデータ記憶部である。面バッファ2503Bも、例えば、SRAMなどのメモリで構成される。
 なお、面バッファ2503Bも、面バッファ2501Bと同様に、予め定めたデータ量(例えば、画素数)の画像データ(静止画像データや動画像データ)を記憶する記憶容量の組を2つ備えたダブルバッファの構成であってもよい。なお、ダブルバッファの構成の面バッファ2503Bを備えたバスマスタ2503の動作も、ダブルバッファの構成の面バッファ2501Bを備えたバスマスタ2501の動作と同様に、既存のダブルバッファの動作を制御する技術に基づいて容易に考えることができるため、ダブルバッファの構成の面バッファ2503Bを備えたバスマスタ2503の動作に関する詳細な説明は省略する。
 バスマスタ2503は、画像処理モジュール2502が画像処理を行って生成した画像処理画像データ(静止画像データや動画像データ)を、面バッファ2503Bに一時的に記憶(保存)し、予め定めたデータ量の画像処理画像データを記憶(保存)した後に、DMA転送のタイミングに合わせて、記憶(保存)している画像処理画像データをバスアービタ220に出力して、DRAM30に記憶させる(書き込む)。なお、上述したように、画像処理部250は、優先度が低く設定されているため、バスマスタ2503も、低優先のバスマスタである。
 優先度切り替え制御部2504は、バスアービタ220がそれぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に考慮する、画像処理部250のDMA転送の優先度を、バスアービタ220に通知する。
 より具体的には、優先度切り替え制御部2504は、画像処理モジュール2502から出力された画像処理進行状況信号PSに基づいて、画像処理モジュール2502が画像処理を行う際の残りの処理時間を算出する。そして、優先度切り替え制御部2504は、算出した残りの処理時間と、画像処理モジュール2502が1フレーム分の画像処理を完了する必要がある時間として規定された画像処理の限界(リミット)の時間と、現在の経過時間とに基づいて、画像処理モジュール2502が行う画像処理の緊急度を判定する。優先度切り替え制御部2504は、判定した結果に基づいて、画像処理モジュール2502が行う画像処理の緊急度を通知するための優先度切り替え信号SWを生成する。なお、優先度切り替え信号SWは、画像処理部250におけるDMA転送の優先度の切り替え(変更)を要求するための信号でもある。
 なお、優先度切り替え制御部2504が画像処理部250のDMA転送の優先度を判定するために用いるパラメータ、つまり、画像処理モジュール2502が行う画像処理の緊急度を判定するために用いるパラメータは、例えば、画像処理装置20に備えた、不図示のCPU(Central Processing Unit)などによって、優先度切り替え制御部2504のレジスタに設定される。
 なお、不図示のCPUは、画像処理装置20に備えたそれぞれの構成要素を制御することによって、画像処理装置20の全体を制御する制御部である。不図示のCPUは、それぞれの構成要素を制御するためのプログラムやデータに応じて、画像処理装置20の全体を制御する。なお、不図示のCPUは、撮像装置1に備えた構成要素を制御してもよい。不図示のCPUが画像処理装置20に備えたそれぞれの構成要素を制御するためのプログラムやデータは、DRAMインターフェース部230およびバスアービタ220を介してデータバス210に接続されたDRAM30に記憶されているものであってもよい。この場合、不図示のCPUは、DRAM30に記憶されているプログラムやデータを、バスアービタ220およびDRAMインターフェース部230を介して読み出して実行することによって、画像処理装置20の全体を制御する。
 優先度切り替え制御部2504は、生成した優先度切り替え信号SWをバスアービタ220に出力することによって、画像処理部250の優先度を高くした状態で調停をしてもらいたい、つまり、画像処理部250におけるDMA転送(リードDMA転送またはライトDMA転送)を緊急で受け付けてもらいたい(許可してもらいたい)ことを通知する。これにより、バスアービタ220は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに基づいて、画像処理部250の優先度を高く切り替えて、画像処理部250からのアクセス要求を優先して受け付ける(許可する)。これにより、画像処理部250は、実行する画像処理に待ちの状態が発生して停止することなく、規定された限界(リミット)の時間までに、画像処理を完了することができる。
 なお、優先度切り替え制御部2504は、画像処理部250におけるDMA転送を緊急で受け付けてもらいたい(許可してもらいたい)ことを通知する際に、バスマスタ2501からのアクセス要求(リードDMA転送)と、バスマスタ2503からのアクセス要求(ライトDMA転送)との内、いずれのバスマスタからのアクセス要求の方をより優先して受け付けてもらいたい(許可してもらいたい)かの情報も併せて通知してもよい。つまり、優先度切り替え制御部2504は、画像処理モジュール2502が画像処理を施す対象の前処理画像データのDRAM30からの取得と、画像処理モジュール2502が画像処理を施した後の画像処理画像データのDRAM30への記憶(書き込み)とのいずれを優先したいかを表す情報も併せて通知してもよい。
 表示処理部260は、DRAM30に記憶された画像処理画像データ(静止画像データや動画像データ)を取得し(読み出し)、取得した画像処理画像データに応じた表示画像を表示装置40に表示させる処理ブロックである。表示処理部260は、表示装置40に表示させるための画像処理画像データを、DMA転送によってDRAM30から取得する(読み出す)。つまり、表示処理部260は、画像処理画像データをDRAM30から取得する(読み出す)DMA転送を行うDMA転送部(バスマスタ)でもある。なお、上述したように、表示処理部260は、優先度が高く設定されているため、表示処理部260は、高優先のバスマスタである。
 表示処理部260は、画像処理画像データをDRAM30から取得する(読み出す)際に、DRAM30へのリードアクセスを要求するためのアクセス要求信号(DMA要求信号)と、画像処理画像データを取得するDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する読み出しのアクセス方向であることを表すアクセス方向信号(DMAリード信号)とを、バスアービタ220に出力する。そして、表示処理部260は、出力したアクセス要求信号がバスアービタ220に受け付けられた後に、つまり、バスアービタ220からアクセス受け付け信号(DMA許可信号)が入力された後に、DRAMインターフェース部230がDRAM30から読み出してバスアービタ220を介して出力された画像処理画像データを取得する。そして、表示処理部260は、取得した画像処理画像データに応じた表示画像を表示装置40に出力して表示させる。
 なお、表示処理部260は、DRAM30から読み出した(取得した)画像処理画像データに対して予め定めた表示処理を施して生成した表示画像を表示装置40に出力して表示させる構成であってもよい。なお、表示処理部260が画像処理画像データに対して施す表示処理としては、例えば、表示装置40が表示する画像のサイズに表示画像のサイズを変換する処理や、例えば、撮影日時などの静止画像や動画像に関する様々な情報を表示させるためのオンスクリーンディスプレイ(On Screen Display:OSD)画像を重畳する処理などがある。しかし、本発明においては、表示処理部260が画像処理画像データに対して施す表示処理に関しては、特に制限はしない。また、表示処理部260は、DRAM30から読み出した(取得した)画像処理画像データを一時的に保存してから表示処理を施す構成であってもよい。また、表示処理部260は、表示処理を施した表示画像のデータを一時的に保存した後に、保存した表示画像のデータを表示装置40に出力して表示させる構成であってもよい。
 このような構成によって、撮像装置1は、イメージセンサ10によって被写体の静止画像や動画像を撮影し、撮影した静止画像や動画像に応じた表示画像を表示装置40に表示させる。また、撮像装置1は、イメージセンサ10によって撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
 また、撮像装置1では、画像処理装置20に備えた画像処理部250とバスアービタ220とで、第1の実施形態のメモリアクセス装置を構成する。言い換えれば、画像処理装置20において、DRAM30との間でDMA転送によって画像データの受け渡しを行う処理ブロックの内、優先度が低い処理ブロックである画像処理部250が、バスアービタ220と組み合わされて、第1の実施形態のメモリアクセス装置が構成される。
 そして、第1の実施形態のメモリアクセス装置では、画像処理モジュール2502が、実施している画像処理の進行状況を通知するための画像処理進行状況信号PSを、優先度切り替え制御部2504に出力する。そして、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、画像処理モジュール2502から出力された画像処理進行状況信号PSが表す画像処理の進行状況に基づいて、画像処理モジュール2502が行う画像処理の緊急度を判定し、画像処理部250におけるDMA転送の優先度を通知するための優先度切り替え信号SWを、バスアービタ220に出力する。これにより、第1の実施形態のメモリアクセス装置では、バスアービタ220が、それぞれの処理ブロックからのアクセス要求を受け付ける(許可する)際に、優先度切り替え信号SWが、画像処理部250において実行する画像処理の緊急度が高いことを表している場合には、画像処理部250の優先度を高く切り替えて、画像処理部250からのアクセス要求を優先して受け付ける(許可する)。
 これにより、画像処理部250(より具体的には、画像処理モジュール2502)は、実行する画像処理を停止させることなく、1フレーム分の画像処理を完了する必要がある時間として規定された限界(リミット)の時間までに、画像処理を完了することができる。このことにより、第1の実施形態のメモリアクセス装置を搭載したシステム(撮像装置1や画像処理装置20)では、システムとしての動作や機能に破綻をきたす要因となり得る、画像処理部250(画像処理モジュール2502)の動作が停止することなく、画像データに対する一連の画像処理を、滞りなく行うことができる。
 ここで、画像処理部250の動作について説明する。まず、画像処理部250が前処理画像データをDMA転送によってDRAM30から取得し、画像処理を施した後に、画像処理画像データをDMA転送によってDRAM30に記憶させる(書き込む)際の基本的な動作について説明する。
 画像処理部250が画像処理を行う場合、まず、バスマスタ2501が、画像処理を施す対象の前処理画像データを、DMA転送によってDRAM30から取得する(読み出す)。バスマスタ2501は、DRAM30から前処理画像データを取得する(読み出す)際に、DRAM30へのリードアクセスを要求するためのアクセス要求信号(DMA要求信号)と、前処理画像データを取得するDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する読み出しのアクセス方向であることを表すアクセス方向信号(DMAリード信号)とを、バスアービタ220に出力する。そして、バスマスタ2501は、出力したアクセス要求信号がバスアービタ220に受け付けられた後に、つまり、バスアービタ220からアクセス受け付け信号(DMA許可信号)が入力された後に、DRAMインターフェース部230がDRAM30から読み出してバスアービタ220を介して出力された前処理画像データを、面バッファ2501Bに一時的に保存する。その後、バスマスタ2501は、予め定めたデータ量の前処理画像データを面バッファ2501Bに記憶(保存)した後、画像処理モジュール2502から要求に応じて、面バッファ2501Bに保存した前処理画像データを読み出して、画像処理モジュール2502に出力する。これにより、画像処理モジュール2502は、バスマスタ2501(より具体的には、面バッファ2501B)から出力された前処理画像データに対して予め定めた画像処理を施して、画像処理画像データ(静止画像データや動画像データ)を生成し、生成した画像処理画像データを、バスマスタ2503に出力する。
 バスマスタ2503は、画像処理モジュール2502から出力された画像処理画像データを、面バッファ2503Bに一時的に保存する。その後、バスマスタ2503は、予め定めたデータ量の画像処理画像データを面バッファ2503Bに記憶(保存)した後、面バッファ2503Bに記憶(保存)した画像処理画像データを、DMA転送によってDRAM30に記憶させる(書き込む)。バスマスタ2503は、画像処理画像データをDRAM30に記憶させる(書き込む)際に、DRAM30へのライトアクセスを要求するためのアクセス要求信号(DMA要求信号)と、画像処理画像データを記憶させるDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する書き込みのアクセス方向であることを表すアクセス方向信号(DMAライト信号)とを、バスアービタ220に出力する。そして、バスマスタ2503は、出力したアクセス要求信号がバスアービタ220に受け付けられた後に、つまり、バスアービタ220からアクセス受け付け信号(DMA許可信号)が入力された後に、面バッファ2503Bに保存した画像処理画像データを読み出してバスアービタ220に出力する。これにより、バスマスタ2503が出力した画像処理画像データ(静止画像データや動画像データ)が、バスアービタ220およびDRAMインターフェース部230を介してDRAM30に出力され、アクセス要求信号と共に出力したアドレス(DMAアドレス)の記憶領域に記憶される(書き込まれる)。
 このように、画像処理部250では、DRAM30から画像処理を行う対象の前処理画像データを取得する(読み出す)際、および画像処理を行った後の画像処理画像データ(静止画像データや動画像データ)をDRAM30に記憶させる(書き込む)際に、バスマスタ2501に備えた面バッファ2501Bと面バッファ2503Bとを介して、DRAM30との間でそれぞれの画像データの受け渡しを行う。これにより、画像処理部250では、画像処理モジュール2502が、DRAM30との間で行うDMA転送のタイミングに影響されることなく、予め定めた画像処理を行うことができる。
 ところで、画像処理部250は、上述したように、画像処理装置20の中では、優先度が低く設定されている処理ブロックである。このため、画像処理部250は、優先度が高い撮像画像取り込み部240と表示処理部260とのそれぞれによるDRAM30へのアクセス要求が増えてデータバス210が混雑している状態では、バスアービタ220からDRAM30へのアクセス要求が受け付けられる(許可される)とは限らない。しかしながら、画像処理部250も、リアルタイム性は求められないものの、画像処理装置20を搭載した撮像装置1における動作を担う処理ブロックであるため、予め規定された画像処理の限界(リミット)の時間内に画像処理を完了しないと、撮像装置1のシステムとしての動作に破綻をきたしてしまう。
 そこで、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、画像処理モジュール2502から出力された画像処理進行状況信号PSが表す画像処理の進行状況に基づいて、画像処理モジュール2502が実行する画像処理に待ちの状態が発生して停止してしまう前に、画像処理部250からのアクセス要求が受け付けられる(許可される)優先度を高くするように制御する。つまり、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、画像処理部250に設定されている低い優先度を、高い優先度に切り替わるように制御する。このとき、優先度切り替え制御部2504は、画像処理モジュール2502が行う画像処理の緊急度を判定する。この判定は、画像処理モジュール2502が行う画像処理における残りの処理時間を算出することによって行う。つまり、優先度切り替え制御部2504は、画像処理モジュール2502によって行う残りの画像処理が、画像処理モジュール2502が1フレーム分の画像処理を完了する必要がある時間として規定された画像処理における限界(リミット)の時間までに完了するか否かを判定する。
 次に、第1の実施形態のメモリアクセス装置において、優先度切り替え制御部2504が、画像処理部250(画像処理モジュール2502)が実行する画像処理の緊急度を判定する方法について説明する。図2は、本発明の第1の実施形態のメモリアクセス装置において画像処理の緊急度を判定する処理の処理手順を示したフローチャートである。
 優先度切り替え制御部2504による、画像処理モジュール2502が実行する画像処理の緊急度を判定する処理では、まず、画像処理モジュール2502から出力された画像処理進行状況信号PSが表す画像処理が完了している割合(パーセント)に基づいて、画像処理モジュール2502が画像処理を行う際の残りの処理時間を算出する(ステップS110)。
 なお、優先度切り替え制御部2504には、画像処理モジュール2502における残りの処理時間を算出するために用いるパラメータが、レジスタに設定されている。なお、優先度切り替え制御部2504がステップS110において算出する残りの処理時間の算出方法に関しては、後述する。
 続いて、優先度切り替え制御部2504は、ステップS110において算出した残りの処理時間と、予め規定されてレジスタに設定された、画像処理の限界(リミット)の時間と、現在の経過時間とに基づいて、画像処理モジュール2502が画像処理を行う際の余裕の時間(以下、「処理余裕時間」という)を算出する(ステップS120)。
 なお、優先度切り替え制御部2504には、画像処理モジュール2502における処理余裕時間を算出するために用いるパラメータが、レジスタに設定されている。なお、優先度切り替え制御部2504がステップS120において算出する処理余裕時間の算出方法に関しては、後述する。
 続いて、優先度切り替え制御部2504は、算出した処理余裕時間と緊急度閾値時間とを比較して、算出した処理余裕時間が、緊急度閾値時間よりも短いか否か判定する(ステップS130)。これにより、優先度切り替え制御部2504は、画像処理モジュール2502が行う画像処理の緊急度を判定する。
 なお、優先度切り替え制御部2504には、画像処理モジュール2502が行う画像処理の緊急度を判定するために用いるパラメータ、つまり、緊急度閾値時間が、レジスタに設定されている。
 ステップS130において、算出した処理余裕時間が緊急度閾値時間よりも短くない(処理余裕時間が緊急度閾値時間以上である)と判定した場合(ステップS130の“NO”)、優先度切り替え制御部2504は、画像処理モジュール2502が行う画像処理の緊急度は高くない(低い)と判定し、ステップS140に進む。そして、優先度切り替え制御部2504は、画像処理部250の優先度を高くしない、つまり、優先度は低いままであることを表す優先度切り替え信号SWを生成する(ステップS140)。
 一方、ステップS130において、算出した処理余裕時間が緊急度閾値時間よりも短いと判定した場合(ステップS130の“YES”)、優先度切り替え制御部2504は、画像処理モジュール2502が行う画像処理の緊急度は高いと判定し、ステップS150に進む。そして、優先度切り替え制御部2504は、画像処理部250の優先度を高くすることを表す優先度切り替え信号SWを生成する(ステップS150)。
 このような処理によって、優先度切り替え制御部2504は、画像処理モジュール2502が実行する画像処理の緊急度を判定し、判定した結果に基づいて、画像処理部250に設定されている優先度の切り替えを通知するための優先度切り替え信号SWを生成する。そして、優先度切り替え制御部2504は、生成した優先度切り替え信号SWを、バスアービタ220に出力する。これにより、バスアービタ220は、それぞれの処理ブロックからのアクセス要求を受け付ける(許可する)際に、優先度切り替え信号SWが、画像処理部250が実行する画像処理の緊急度を高くすることを表している場合には、画像処理部250の優先度を高く切り替えて、画像処理部250からのアクセス要求を優先して受け付ける(許可する)。
 次に、優先度切り替え制御部2504がステップS110の処理において算出する、画像処理モジュール2502が画像処理を行う際の残りの処理時間の算出方法について説明する。上述したように、画像処理進行状況信号PSは、1フレーム分の全ての前処理画像データに対する画像処理部250の画像処理の進行状況を、現時点までに完了している割合(パーセント)で表した信号である。
 優先度切り替え制御部2504は、画像処理進行状況信号PSが表す画像処理が完了している割合(パーセント)に基づいて、画像処理モジュール2502が画像処理を行う際の残りの処理時間を算出する。なお、優先度切り替え制御部2504における残りの処理時間の算出方法には、画像処理モジュール2502が行う画像処理に対応した様々な算出方法がある。
 まず、残りの処理時間の第1の算出方法について説明する。第1の算出方法は、画像処理モジュール2502が1フレーム分の画像データの画像処理を行う際の処理時間に基づいて、残りの処理時間を算出する方法である。つまり、第1の算出方法は、画像処理モジュール2502が1フレーム分の画像処理を完了するまでの時間を基準として、残りの処理時間を算出している。第1の算出方法では、優先度切り替え制御部2504が、下式(1)および下式(2)によって残りの処理時間を算出する。
 総処理時間=処理速度×出力総画素数   ・・・(1)
 残りの処理時間=総処理時間×(1-処理完了割合)
                           ・・・(2)
 上式(1)において、総処理時間は、画像処理モジュール2502が1フレーム分の画像処理に要する処理時間である。また、上式(1)において、処理速度は、画像処理モジュール2502が1画素の前処理画像データに対して画像処理を行う処理の速度である。言い換えれば、処理速度は、画像処理モジュール2502が1画素の前処理画像データの画像処理に要する処理時間である。また、上式(1)において、出力総画素数は、画像処理モジュール2502が画像処理を行って出力する1フレーム分の画像処理画像データ(静止画像データや動画像データ)の画素数である。
 上式(2)において、残りの処理時間は、画像処理モジュール2502が現時点までに完了していない画像処理を終了するまでに要する処理時間である。また、上式(2)において、処理完了割合は、画像処理進行状況信号PSが表す、画像処理モジュール2502が現時点までに完了している画像処理の割合(パーセント)である。
 なお、優先度切り替え制御部2504が第1の算出方法で残りの処理時間を算出するために上式(1)において用いる処理速度および出力総画素数のそれぞれは、残りの処理時間を算出するために用いるパラメータとして、不図示のCPUによって、優先度切り替え制御部2504のレジスタに設定されている。
 続いて、残りの処理時間の第2の算出方法について説明する。第2の算出方法は、画像処理モジュール2502が1フレームの画像の領域を、同じ画素数の前処理画像データが含まれる複数の矩形のブロックに分割し、分割したそれぞれのブロックごとに画像処理を行う場合において、それぞれのブロックに対する画像処理の処理時間に基づいて、残りの処理時間を算出する方法である。
 第2の算出方法でも、第1の算出方法と同様に、画像処理モジュール2502が1フレーム分の画像データの画像処理を行う際の処理時間に基づいて、残りの処理時間を算出している。第2の算出方法では、画像処理モジュール2502が分割したブロックごとに行う画像処理に対応するため、優先度切り替え制御部2504が、下式(3)および下式(4)によって残りの処理時間を算出する。
 残りのブロック数=全ブロック数-処理完了ブロック数
                           ・・・(3)
 残りの処理時間=残りのブロック数×1ブロックの画素数×処理速度
                           ・・・(4)
 上式(3)において、残りのブロック数は、画像処理モジュール2502が1フレーム分の画像処理画像データ(静止画像データや動画像データ)を出力するまでに画像処理を行う必要があるブロック数である。つまり、残りのブロック数は、画像処理モジュール2502が分割したブロックにおいて、現時点で画像処理が終わっていないブロックの数である。また、上式(3)において、全ブロック数は、画像処理モジュール2502が1フレーム分の画像データの画像処理を行うために1フレームの画像の領域を分割したブロック数である。また、上式(3)において、処理完了ブロック数は、画像処理進行状況信号PSが表す、画像処理モジュール2502が現時点までに画像処理を完了しているブロック数である。
 上式(4)において、残りの処理時間は、画像処理モジュール2502が現時点までに完了していない画像処理を終了するまでに要する処理時間である。言い換えれば、残りの処理時間は、画像処理モジュール2502が分割した全てのブロックの画像処理を終了するまでに要する処理時間の内、画像処理が終了していない残りのブロック数のブロックに対する画像処理に要する処理時間である。また、上式(4)において、残りのブロック数は、上式(3)において算出した残りのブロック数である。また、上式(4)において、1ブロックの画素数は、画像処理モジュール2502が分割したそれぞれのブロックに含まれる画素数である。また、上式(4)において、処理速度は、第1の算出方法の上式(1)における処理速度と同じものである。
 なお、優先度切り替え制御部2504が第2の算出方法で残りの処理時間を算出するために上式(3)において用いる全ブロック数と、上式(4)において用いる1ブロックの画素数および処理速度とのそれぞれは、残りの処理時間を算出するために用いるパラメータとして、不図示のCPUによって、優先度切り替え制御部2504のレジスタに設定されている。
 続いて、残りの処理時間の第3の算出方法について説明する。第3の算出方法は、画像処理モジュール2502が1フレームの画像の領域を複数のブロックに分割して画像処理を行う際に、それぞれのブロックに含まれる画素数が異なる場合においても、それぞれのブロックに対する画像処理の処理時間に基づいて、残りの処理時間を算出する方法である。つまり、分割したそれぞれのブロックごとに、処理に要する時間が異なる画像処理の処理時間に基づいて、残りの処理時間を算出する方法である。
 第3の算出方法でも、第1の算出方法および第2の算出方法と同様に、画像処理モジュール2502が1フレーム分の画像データの画像処理を行う際の処理時間に基づいて、残りの処理時間を算出している。第3の算出方法では、画像処理モジュール2502が分割したそれぞれのブロックに含まれる画素数が異なることに対応するため、優先度切り替え制御部2504が、下式(5)および下式(6)によって残りの処理時間を算出する。
 残りの入力画素数=入力総画素数-現在の入力画素数
                          ・・・(5)
 残りの処理時間=残りの入力画素数×処理速度   ・・・(6)
 上式(5)において、残りの入力画素数は、画像処理モジュール2502が1フレーム分の画像処理画像データ(静止画像データや動画像データ)を出力するまでに画像処理を行う必要がある全てのブロックに含まれる異なる画素数を合計した画素数である。つまり、残りの入力画素数は、画像処理モジュール2502が分割したそれぞれのブロックにおいて、現時点で画像処理が終わっていないそれぞれのブロックに含まれる異なる画素数を合計した画素数である。また、上式(5)において、入力総画素数は、画像処理モジュール2502が1フレーム分の画像処理画像データ(静止画像データや動画像データ)を出力するまでに、画像処理モジュール2502に入力される全ての画素数である。ここで、入力総画素数は、画像処理モジュール2502が画像処理を行うために用いる、全てのブロックに含まれる異なる画素数を合計したものである。つまり、入力総画素数は、1フレーム分の画素数よりも多い画素数である。また、上式(5)において、現在の入力画素数は、画像処理進行状況信号PSが表す、現時点までに画像処理を完了しているそれぞれのブロックに含まれる異なる画素数を合計した画素数である。
 上式(6)において、残りの処理時間は、画像処理モジュール2502が現時点までに完了していない画像処理を終了するまでに要する処理時間である。言い換えれば、残りの処理時間は、画像処理モジュール2502が分割した全てのブロックの画像処理を終了するまでに要する処理時間の内、画像処理が終了していないそれぞれのブロックに対する画像処理に要する処理時間である。また、上式(6)において、残りの入力画素数は、上式(5)において算出した残りの入力画素数である。また、上式(6)において、処理速度は、第1の算出方法の上式(1)、および第2の算出方法の上式(4)における処理速度と同じものである。
 なお、優先度切り替え制御部2504が第3の算出方法で残りの処理時間を算出するために上式(5)において用いる入力総画素数および現在の入力画素数と、上式(6)において用いる処理速度とのそれぞれは、残りの処理時間を算出するために用いるパラメータとして、不図示のCPUによって、優先度切り替え制御部2504のレジスタに設定されている。このとき、不図示のCPUは、上式(5)において用いる入力総画素数および現在の入力画素数の代わりに、上式(6)において用いる残りの入力画素数を、優先度切り替え制御部2504のレジスタに設定する構成であってもよい。また、画像処理モジュール2502が、画像処理進行状況信号PSとして、残りの入力画素数を表す信号を優先度切り替え制御部2504に出力してもよい。
 このように、優先度切り替え制御部2504は、ステップS110の処理において、第1の算出方法~第3の算出方法に示したような算出方法によって、残りの処理時間を算出する。そして、優先度切り替え制御部2504は、ステップS120の処理において、画像処理モジュール2502が画像処理を行う際の処理余裕時間を算出する。
 次に、優先度切り替え制御部2504がステップS120の処理において算出する処理余裕時間の算出方法について説明する。上述したように、処理余裕時間は、ステップS110において算出した残りの処理時間と、予め規定されてレジスタに設定された、画像処理の限界(リミット)の時間(以下、「リミット時間」という)と現在の経過時間とに基づいて算出する。画像処理モジュール2502は、下式(7)によって処理余裕時間を算出する。
 処理余裕時間=リミット時間-現在の経過時間-残りの処理時間
                           ・・・(7)
 上式(7)において、リミット時間は、画像処理モジュール2502が1フレーム分の画像処理を完了する必要がある時間として規定された画像処理の限界の時間である。また、上式(7)において、現在の経過時間は、画像処理モジュール2502が画像処理を開始したときから現時点までの経過時間である。また、上式(7)において、残りの処理時間は、上述した第1の算出方法~第3の算出方法にいずれかの算出方法によって算出した残りの処理時間である。
 なお、優先度切り替え制御部2504が処理余裕時間を算出するために上式(7)において用いるリミット時間と、現在の経過時間とのそれぞれは、処理余裕時間を算出するために用いるパラメータとして、不図示のCPUによって、優先度切り替え制御部2504のレジスタに設定されている。なお、優先度切り替え制御部2504が処理余裕時間を算出するために上式(7)において用いる現在の経過時間は、優先度切り替え制御部2504または画像処理部250に備えた不図示のタイマーによって、画像処理モジュール2502が画像処理を開始したタイミングからの経過時間を計測する構成であってもよい。
 このように、優先度切り替え制御部2504は、ステップS120の処理において、上式(7)によって、画像処理モジュール2502が画像処理を行う際の処理余裕時間を算出する。そして、優先度切り替え制御部2504は、ステップS130の処理において、算出した処理余裕時間と緊急度閾値時間とを比較することによって、画像処理モジュール2502が行う画像処理の緊急度を判定し、判定した画像処理の緊急度に応じた優先度切り替え信号SWを生成して、バスアービタ220に出力する。
 なお、画像処理モジュール2502は、処理余裕時間にさらに余裕を持たせるために、リミット時間および残りの処理時間のいずれか一方または両方に、余裕(マージン)を持たせるための予め定めた時間係数を乗算した後に、上式(7)によって処理余裕時間を算出してもよい。ここで、時間係数は、例えば、バスマスタ2501とバスマスタ2503とが行うそれぞれのDMA転送におけるDRAM30のロス時間を考慮して、このロス時間の影響を回避することができるような時間を余裕(マージン)として規定した係数である。例えば、時間係数は、リミット時間および残りの処理時間に対する割合(パーセント)など規定する。なお、DMA転送におけるロス時間とは、例えば、通常のDRAMの制約として存在する、データを読み出している状態からデータを書き込む状態への切り替えるとき、データを書き込んでいる状態からデータを読み出す状態への切り替えるとき、同じアドレスの記憶領域(バンク)に連続してアクセスするときなどに、制御を受け付けることができないという制約がある、所定の時間(一定時間)である。なお、優先度切り替え制御部2504が処理余裕時間にさらに余裕を持たせるための時間係数は、処理余裕時間を算出するために用いるパラメータとして、不図示のCPUによって、優先度切り替え制御部2504のレジスタに設定されていてもよい。
 なお、リミット時間は、画像処理モジュール2502が行う画像処理に待ちの状態が発生して停止してしまい、撮像装置1や画像処理装置20におけるシステムとしての動作や機能に破綻をきたすことがないように、画像処理モジュール2502による画像処理が終了するまでの時間が規定される。つまり、リミット時間は、画像処理部250が実行する画像処理に待ちの状態が発生して停止してしまう前に、画像処理部250が出力したアクセス要求がバスアービタ220によって受け付けられる(許可される)優先度を高くするように優先度切り替え制御部2504が制御するという考え方を基本として設定される。このため、リミット時間は、画像処理モジュール2502が行う画像処理によって、様々な考え方で設定される。
 ここで、画像処理モジュール2502が行う画像処理によって設定するリミット時間の考え方の一例について説明する。例えば、撮像装置1の動作モードが、被写体の静止画像の撮影を行う撮影モードである場合について考える。この場合、画像処理モジュール2502は、画像処理画像データに応じた表示画像を表示装置40に表示させるために表示処理部260がDRAM30に記憶された画像処理画像データを取得する(読み出す)タイミングまでに、画像処理画像データ(静止画像データ)を生成してDRAM30に記憶させておく(書き込んでおく)必要がある。このため、リミット時間は、表示処理部260がそれぞれのフレームの画像処理画像データをDRAM30から取得する(読み出す)タイミングに基づいた周期的な時間が設定される。
 この場合におけるリミット時間と画像処理部250が画像処理を行う期間との関係は、図3に示したような関係になっている。図3は、本発明の第1の実施形態のメモリアクセス装置におけるリミット時間と画像処理の期間との関係の一例を模式的に示した図である。図3には、それぞれのフレームに対して設定されているリミット時間と、画像処理部250がそれぞれのフレームに対する画像処理を行う期間(画像処理期間)と、表示処理部260がそれぞれのフレームの画像処理画像データに応じた表示画像を表示装置40に表示させる期間(表示期間)との関係の一例を模式的に示している。
 より具体的には、図3には、バスマスタ2501がDRAM30から前処理画像データを取得する(読み出す)リードDMA転送を行う動作期間と、画像処理モジュール2502が前処理画像データに対して画像処理を行う動作期間と、バスマスタ2503が画像処理画像データをDRAM30に記憶させる(書き込む)ライトDMA転送を行う動作期間とのそれぞれを合わせて、画像処理部250における画像処理期間として示している。なお、図3に示したリミット時間と画像処理期間との関係の一例では、バスマスタ2501に備えた面バッファ2501B、およびバスマスタ2503に備えた面バッファ2503Bのそれぞれが、ダブルバッファの構成である場合の動作期間を示している。
 また、図3には、表示処理部260が、それぞれのフレームの画像処理画像データをDRAM30から取得して(読み出して)表示処理を行い、表示画像を表示装置40に表示させている期間を、表示期間として示している。
 図3に示したように、それぞれのフレームにおけるリミット時間は、表示処理部260が、画像処理画像データのDRAM30からの取得(読み出し)を開始するタイミングに設定されている。そして、画像処理部250は、それぞれのフレームに対して設定されているリミット時間までに画像処理を終了するように画像処理を行う。
 このとき、優先度切り替え制御部2504は、画像処理モジュール2502から出力された画像処理進行状況信号PSに基づいて算出した残りの処理時間と、リミット時間と、現在の経過時間とに基づいて、処理余裕時間を算出する。図3には、優先度切り替え制御部2504が算出した処理余裕時間も併せて示している。そして、優先度切り替え制御部2504は、算出した処理余裕時間に基づいて、画像処理モジュール2502が行う画像処理の緊急度を判定する。
 図3に示した一例では、それぞれのフレームにおける画像処理部250の画像処理が、それぞれのフレームに対して設定されているリミット時間までに終了している。しかし、図3に示したように、画像処理部250が画像処理を行う画像処理期間は、それぞれのフレームごとに異なっている。例えば、図3に示した一例では、フレーム2の画像処理期間が、フレーム1の画像処理期間やフレーム3の画像処理期間よりも大幅に長くなっている。言い換えれば、図3に示した一例では、フレーム2の処理余裕時間が、フレーム1の処理余裕時間やフレーム3の処理余裕時間よりも大幅に短くなっている。
 これは、画像処理を行う対象のフレーム2の前処理画像データをDRAM30から取得する(読み出す)ためのバスマスタ2501によるリードDMA転送が待たされたことによるものである。つまり、バスアービタ220が、画像処理部250よりも優先度が高い他の処理ブロックからのアクセス要求を優先して受け付けた(許可した)ことによって、バスマスタ2501からのアクセス要求がバスアービタ220に受け付けられる(許可される)までに長い時間を要したことによるものである。
 優先度切り替え制御部2504は、ステップS130の処理において、フレーム2に対して算出した処理余裕時間が緊急度閾値時間よりも短いと判定した場合、画像処理モジュール2502が行う画像処理の緊急度は高いと判定する。そして、優先度切り替え制御部2504は、判定した結果に基づいて、画像処理部250に設定されている優先度を高く切り替えることを通知するための優先度切り替え信号SWを生成して、バスアービタ220に出力する。これにより、バスアービタ220は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに応じて画像処理部250の優先度を高く切り替えて、画像処理部250からのアクセス要求を優先して受け付ける(許可する)。より具体的には、バスアービタ220は、例えば、バスマスタ2501によるリードDMA転送や、バスマスタ2503によるライトDMA転送を、優先して受け付ける(許可する)。
 図3には、緊急度閾値時間の一例を示している。また、図3には、優先度切り替え制御部2504がバスアービタ220に出力する優先度切り替え信号SWの一例として、フレーム2の画像処理期間において、画像処理部250に設定されている優先度を高く切り替えることを通知している状態を示している。なお、図3においては、優先度切り替え制御部2504が出力する優先度切り替え信号SWが、“High”レベルで画像処理部250の優先度を高くすることを表し、“Low”レベルで画像処理部250の優先度を低くする(優先度は低いままにする)ことを表している。
 これにより、図3に示した一例では、バスマスタ2503によるライトDMA転送が、バスアービタ220によって優先して受け付けられる(許可される)ことになる。この場合、図3に示したフレーム2の画像処理期間は、図3に現在示されている画像処理期間よりも短い期間となる。言い換えれば、図3に示したフレーム2の処理余裕時間は、図3に現在示されている処理余裕時間よりも長い期間となる。
 これにより、図3に示した一例では、画像処理部250によるフレーム2の画像処理がフレーム2のリミット時間を超えてしまい、撮像装置1における撮影モードの一連の画像処理に破綻をきたしてしまう要因を削減することができる。つまり、画像処理部250は、フレーム2の画像処理を、フレーム2のリミット時間までにより確実に終了することができ、撮像装置1は、撮影モードにおける一連の画像処理を、滞りなく行うことができる。
 なお、表示処理部260が1フレームごとに画像処理画像データに応じた表示画像を表示装置40に表示させる、つまり、表示処理部260が1フレームごとに画像処理画像データをDRAM30から取得する(読み出す)場合には、リミット時間は、図3に示した一例のように、それぞれのフレームの周期ごとに設定されることになる。しかし、表示処理部260が全てのフレームの画像処理画像データに応じた表示画像を表示装置40に表示させるのではなく、複数回に1回のタイミングで表示画像を表示装置40に表示させる、つまり、フレームを間引いて表示画像を表示装置40に表示させる場合には、リミット時間は、間引いたフレームの周期ごとに設定されることになる。
 続いて、画像処理モジュール2502が行う画像処理によって設定するリミット時間の考え方の別の一例について説明する。例えば、撮像装置1の動作モードが、被写体の静止画像を連続して撮影する連写モードである場合について考える。この場合、画像処理モジュール2502は、ある時点で被写体を撮影したタイミングから、次に被写体を撮影するタイミングまでの間、いわゆる、連写間隔ごとに、画像処理画像データ(静止画像データ)を生成してDRAM30に記憶させておく(書き込んでおく)必要がある。このため、リミット時間は、撮像画像取り込み部240がイメージセンサ10から出力された画素信号のデータに応じた前処理画像データをDRAM30に記憶させる(書き込む)間隔に基づいた周期的な時間が設定される。
 この場合も、優先度切り替え制御部2504が、画像処理モジュール2502から出力された画像処理進行状況信号PSに基づいて算出した残りの処理時間と、リミット時間と、現在の経過時間とに基づいて、処理余裕時間を算出して、画像処理モジュール2502が行う画像処理の緊急度を判定する。そして、優先度切り替え制御部2504が、判定した結果に基づいた優先度切り替え信号SWをバスアービタ220に出力することによって、画像処理部250が、画像処理を、リミット時間までにより確実に終了することができ、撮像装置1は、連写モードにおける一連の画像処理を、滞りなく行うことができる。
 なお、撮像装置1の動作モードが連写モードである場合におけるリミット時間と画像処理期間との関係は、図3に示した撮影モードにおけるリミット時間と画像処理期間との関係の一例と同様に考えることができる。より具体的には、図3に示したリミット時間と画像処理期間との関係の一例において、リミット時間が設定されている表示処理部260がDRAM30からの画像処理画像データの取得(読み出し)を開始するタイミングを、撮像画像取り込み部240が前処理画像データのDRAM30への記憶(書き込み)を開始するタイミングとして置き換えることによって、容易に考えることができる。従って、撮像装置1の動作モードが連写モードである場合におけるリミット時間と画像処理期間との関係に関する詳細な説明は省略する。
 続いて、画像処理モジュール2502が行う画像処理によって設定するリミット時間の考え方のさらに別の一例について説明する。例えば、撮像装置1の動作モードが、被写体の動画像の撮影を行う動画モードである場合について考える。この場合、画像処理モジュール2502は、複数のフレームの画像処理画像データを1つのグループにまとめて変換(エンコード)する不図示の動画処理部が、DRAM30に記憶された複数のフレームの画像処理画像データを取得する(読み出す)タイミングまでに、グループに含まれる複数フレーム分の画像処理画像データ(動画像データ)を生成してDRAM30に記憶させておく(書き込んでおく)必要がある。このため、リミット時間は、不図示の動画処理部がまとめて変換(エンコード)するそれぞれのグループに含まれる画像処理画像データ、つまり、グループ単位の画像処理画像データをDRAM30から取得する(読み出す)タイミングに基づいた周期的な時間が設定される。
 この場合におけるリミット時間と画像処理部250が画像処理を行う期間との関係は、図4に示したような関係になっている。図4は、本発明の第1の実施形態のメモリアクセス装置におけるリミット時間と画像処理の期間との関係の別の一例を模式的に示した図である。図4には、それぞれのグループに対して設定されているリミット時間と、画像処理部250がそれぞれのフレームに対する画像処理を行う画像処理期間と、それぞれのグループ含まれるにフレームに対応する期間(グループ処理期間)と、不図示の動画処理部がそれぞれのグループに含まれる複数フレーム分の画像処理画像データをまとめて変換(エンコード)する期間(エンコード期間)との関係の一例を模式的に示している。なお、図4に示した動画モードにおけるリミット時間と画像処理期間との関係の一例は、3つのフレームを1つのグループとした場合の一例である。
 なお、図4には、図3に示した撮影モードにおけるリミット時間と画像処理期間との関係の一例と同様に、バスマスタ2501におけるリードDMA転送の動作期間と、画像処理モジュール2502における画像処理の動作期間と、バスマスタ2503におけるライトDMA転送の動作期間とのそれぞれを合わせて、画像処理部250における画像処理期間として示している。なお、図4に示したリミット時間と画像処理期間との関係の一例でも、図3に示した撮影モードにおけるリミット時間と画像処理期間との関係の一例と同様に、バスマスタ2501に備えた面バッファ2501B、およびバスマスタ2503に備えた面バッファ2503Bのそれぞれが、ダブルバッファの構成である場合の動作期間を示している。
 また、図4には、不図示の動画処理部が、それぞれのグループに含まれる複数フレーム(3フレーム)分の画像処理画像データをDRAM30から取得して(読み出して)、1つのグループとして一括して変換処理(エンコード処理)する期間を、エンコード期間として示している。
 図4に示したように、それぞれのグループにおけるリミット時間は、不図示の動画処理部が、DRAM30からの複数フレーム分の画像処理画像データの取得(読み出し)を開始するタイミングに設定されている。そして、画像処理部250は、それぞれのグループに対して設定されているリミット時間までに、グループに含まれる3フレーム分の画像処理を終了するように画像処理を行う。
 このとき、優先度切り替え制御部2504は、画像処理モジュール2502から出力された画像処理進行状況信号PSに基づいて算出したグループ単位の残りの処理時間と、グループのリミット時間と、現在の経過時間とに基づいて、グループ単位の処理余裕時間を算出する。つまり、優先度切り替え制御部2504は、グループに含まれる3フレーム分をまとめた単位で、残りの処理時間の算出と処理余裕時間の算出とを行う。図4には、優先度切り替え制御部2504が算出したグループ単位の処理余裕時間も併せて示している。そして、優先度切り替え制御部2504は、算出したグループ単位の処理余裕時間に基づいて、画像処理モジュール2502が行う画像処理の緊急度を、グループ単位で判定する。このため、優先度切り替え制御部2504は、図4に示されている、画像処理モジュール2502が画像処理を行うそれぞれのフレームにおける画像処理期間の長短は考慮せずに、画像処理モジュール2502が行う画像処理の緊急度を判定する。
 なお、優先度切り替え制御部2504は、画像処理モジュール2502が画像処理を行うそれぞれのフレームにおける画像処理期間ごとに、画像処理モジュール2502が行う画像処理の緊急度を判定するようにしてもよい。この場合、優先度切り替え制御部2504は、図3に示した撮影モードにおけるリミット時間と画像処理期間との関係の一例と同様に、それぞれのフレームごとに処理余裕時間を算出して、画像処理モジュール2502が行う画像処理の緊急度を判定する。
 図4に示した一例でも、それぞれのグループに含まれる3つのフレームに対する画像処理部250の画像処理が、それぞれのグループに対して設定されているリミット時間までに終了している。しかし、図4に示した一例でも、図3に示した一例と同様に、画像処理部250が画像処理を行う画像処理期間は、それぞれのフレームごとに異なっている。この理由は、図3に示した撮影モードにおけるリミット時間と画像処理期間との関係の一例と同様である。このため、図4に示したように、それぞれのグループのグループ処理期間は、それぞれのグループごとに異なっている。例えば、図4に示した一例では、グループ1のグループ処理期間が、グループ2のグループ処理期間よりも大幅に長くなっている。言い換えれば、図4に示した一例では、グループ1の処理余裕時間が、グループ2の処理余裕時間よりも大幅に短くなっている。このようにグループの処理余裕時間が短くなる状態は、同じグループに含まれるいずれかのフレームの画像処理期間が他のフレームの画像処理期間よりも大幅に長くなった場合や、同じグループに含まれるそれぞれのフレームの画像処理期間が全体的に長くなった場合などに起こり得る。
 優先度切り替え制御部2504は、ステップS130の処理において、グループ1に対して算出した処理余裕時間が緊急度閾値時間よりも短いと判定した場合、グループ1に含まれるそれぞれのフレームに対して画像処理モジュール2502が行う画像処理の緊急度は高いと判定する。そして、優先度切り替え制御部2504は、判定した結果に基づいて、画像処理部250に設定されている優先度を高く切り替えることを通知するための優先度切り替え信号SWを生成して、バスアービタ220に出力する。これにより、バスアービタ220は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに応じて画像処理部250の優先度を高く切り替えて、画像処理部250からのアクセス要求を優先して受け付ける(許可する)。より具体的には、バスアービタ220は、例えば、画像処理部250に設定されている優先度を高く切り替えることを通知する優先度切り替え信号SWがバスアービタ220に出力された後のバスマスタ2501によるリードDMA転送や、バスマスタ2503によるライトDMA転送を、優先して受け付ける(許可する)。
 図4には、緊急度閾値時間の一例を示している。また、図4には、優先度切り替え制御部2504がバスアービタ220に出力する優先度切り替え信号SWの一例として、グループ1に含まれるフレーム3の画像処理期間において、画像処理部250に設定されている優先度を高く切り替えることを通知している状態を示している。なお、図4においても、優先度切り替え信号SWが表すレベルは、図3に示した一例と同様である。
 これにより、図4に示した一例では、画像処理部250に設定されている優先度を高く切り替えることを通知する優先度切り替え信号SWがバスアービタ220に出力された後のバスマスタ2503によるライトDMA転送が、バスアービタ220によって優先して受け付けられる(許可される)ことになる。この場合、図4に示したグループ1のグループ処理期間は、図4に現在示されているグループ処理期間よりも短い期間となる。言い換えれば、図4に示したグループ1の処理余裕時間は、図4に現在示されている処理余裕時間よりも長い期間となる。
 これにより、図4に示した一例では、グループ1において、画像処理部250の優先度を高く切り替えることを通知する優先度切り替え信号SWが出力された以降に行われる、画像処理部250によるそれぞれのフレームに対する画像処理の終了が遅くなり、グループ1に対して設定されているリミット時間を超えてしまい、撮像装置1における動画モードの一連の画像処理に破綻をきたしてしまう要因を削減することができる。つまり、画像処理部250は、グループ1に含まれるそれぞれのフレームの画像処理を、グループ1のリミット時間までにより確実に終了することができ、撮像装置1は、動画モードにおける一連の画像処理を、滞りなく行うことができる。
 このような構成および動作によって、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、ステップS110の処理において、画像処理モジュール2502から出力された画像処理進行状況信号PSを用いて、第1の算出方法~第4の算出方法に示したような算出方法によって、残りの処理時間を算出する。そして、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、ステップS120の処理において、画像処理モジュール2502が行う画像処理に応じた考え方で設定されたリミット時間と、現在の経過時間と、算出した残りの処理時間を用いて、上式(7)によって処理余裕時間を算出する。そして、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、ステップS130の処理において、画像処理モジュール2502が行う画像処理の緊急度を、算出した処理余裕時間と緊急度閾値時間とを比較することによって判定し、判定した結果に基づいて、画像処理部250が行う画像処理の緊急度を通知するための優先度切り替え信号SWを、バスアービタ220に出力する。
 より具体的には、第1の実施形態のメモリアクセス装置において優先度切り替え制御部2504は、算出した処理余裕時間が緊急度閾値時間よりも短くない(処理余裕時間が緊急度閾値時間以上である)と判定した場合には、画像処理部250が行う画像処理の緊急度は低いことを表す優先度切り替え信号SWをバスアービタ220に出力する。また、第1の実施形態のメモリアクセス装置において優先度切り替え制御部2504は、算出した処理余裕時間が緊急度閾値時間よりも短いと判定した場合には、画像処理部250が行う画像処理の緊急度が高いことを表す優先度切り替え信号SWをバスアービタ220に出力する。
 なお、第1の実施形態のメモリアクセス装置において優先度切り替え信号SWは、上述したように、画像処理部250におけるDMA転送の優先度の切り替え(変更)を要求するための信号である。このとき、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、画像処理部250が実行する画像処理に待ちの状態が発生して停止してしまう前に、画像処理モジュール2502が行う画像処理の緊急度を判定して、早いタイミングで優先度切り替え信号SWをバスアービタ220に出力する。つまり、第1の実施形態のメモリアクセス装置では、優先度切り替え制御部2504が、画像処理部250の画像処理期間にある程度の余裕をもった状態で、優先度切り替え信号SWを出力して画像処理部250の優先度の切り替え(変更)を、バスアービタ220に要求する。
 これにより、第1の実施形態のメモリアクセス装置では、バスアービタ220が、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え制御部2504から出力された優先度切り替え信号SWに応じて画像処理部250の優先度を切り替えた状態で、DRAM30へのアクセス要求を受け付ける(許可する)処理ブロックを決定する。より具体的には、第1の実施形態のメモリアクセス装置においてバスアービタ220は、優先度切り替え制御部2504から出力された優先度切り替え信号SWが、画像処理部250の優先度が低いことを表している場合には、優先度が高く設定されている撮像画像取り込み部240または表示処理部260からのDRAM30へのアクセス要求を受け付ける(許可する)。一方、第1の実施形態のメモリアクセス装置においてバスアービタ220は、優先度切り替え制御部2504から出力された優先度切り替え信号SWが、画像処理部250の優先度が高いことを表している場合には、高い優先度に切り替えた画像処理部250からのDRAM30へのアクセス要求を受け付ける(許可する)。
 これにより、第1の実施形態のメモリアクセス装置では、画像処理部250によるそれぞれのフレームに対する画像処理の終了が遅くなって設定されているリミット時間を超えてしまうことがなくなる。このことにより、第1の実施形態のメモリアクセス装置では、第1の実施形態のメモリアクセス装置を搭載したシステム(撮像装置1や画像処理装置20)における一連の画像処理に破綻をきたしてしまう要因を削減することができる。つまり、第1の実施形態のメモリアクセス装置では、画像処理部250におけるそれぞれのフレームの画像処理を、設定されたリミット時間までにより確実に終了することができ、第1の実施形態のメモリアクセス装置を搭載したシステム(撮像装置1や画像処理装置20)における一連の画像処理を、滞りなく行うことができる。
 なお、第1の実施形態では、画像処理モジュール2502が行う画像処理に応じたリミット時間を設定するいくつかの考え方を説明した。しかし、第1の実施形態のメモリアクセス装置において、画像処理モジュール2502が行う画像処理に応じて設定するリミット時間の考え方は、上述したような考え方に限定されるものではない。つまり、第1の実施形態のメモリアクセス装置において設定するリミット時間の考え方は、上述したように、画像処理部250が実行する画像処理に待ちの状態が発生して停止してしまう前に、画像処理部250が出力したアクセス要求がバスアービタ220によって受け付けられる(許可される)優先度を高くするように優先度切り替え制御部2504が制御するという考え方を基本としていれば、いかなる考え方であってもよい。
 第1の実施形態によれば、データバス(データバス210)に接続されたメモリ(DRAM30)へのアクセスを要求するアクセス要求を出力し、アクセスしたDRAM30のデータ(例えば、前処理画像データ)に対してデータ処理(画像処理)を行うと共に、データ処理(画像処理)の進行状況を通知する(画像処理進行状況信号PSを出力する)データ処理部(画像処理モジュール2502)と、画像処理モジュール2502から通知されたデータ処理(画像処理)の進行状況(出力された画像処理進行状況信号PS)に基づいて、画像処理モジュール2502によるデータ処理(画像処理)の緊急度を判定し、画像処理モジュール2502の優先度の切り替えを通知する優先度切り替え信号(優先度切り替え信号SW)を出力する優先度切り替え制御部(優先度切り替え制御部2504)と、データバス210に接続され、DRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに応じて、画像処理モジュール2502から出力されたアクセス要求の優先度を変更して調停し、調停によって受け付けたアクセス要求に応じてDRAM30へのアクセスを制御するバスアービタ(バスアービタ220)と、を備える、メモリアクセス装置(メモリアクセス装置)が構成される。
 また、第1の実施形態によれば、優先度切り替え制御部2504は、画像処理モジュール2502から通知されたデータ処理(画像処理)の進行状況(出力された画像処理進行状況信号PS)に基づいて、画像処理モジュール2502が行うデータ処理(画像処理)における残りの処理時間を算出し、残りの処理時間と、画像処理モジュール2502がデータ処理(画像処理)を完了する必要がある時間として規定された限界の時間(リミット時間)と、画像処理モジュール2502がデータ処理(画像処理)を開始してから現在までの処理時間(現在の経過時間)とに基づいて、画像処理モジュール2502がデータ処理(画像処理)を行う際の処理余裕時間を算出し、処理余裕時間と、予め定めた緊急度閾値時間とに基づいて、画像処理モジュール2502によるデータ処理(画像処理)の緊急度を判定する、メモリアクセス装置が構成される。
 また、第1の実施形態によれば、優先度切り替え制御部2504は、処理余裕時間が、予め定めた緊急度閾値時間よりも短い場合に画像処理モジュール2502によるデータ処理(画像処理)の緊急度は高いと判定し、画像処理モジュール2502の優先度を高くすることを通知する優先度切り替え信号SWを出力し、処理余裕時間が、緊急度閾値時間よりも短くない場合に画像処理モジュール2502によるデータ処理(画像処理)の緊急度は低いと判定し、画像処理モジュール2502の優先度を低いままとすることを通知する優先度切り替え信号SWを出力し、バスアービタ220は、DRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWによって優先度を高くすることが通知された画像処理モジュール2502から出力されたアクセス要求の優先度を高くして調停する、メモリアクセス装置が構成される。
 また、第1の実施形態によれば、画像処理モジュール2502は、データ処理(画像処理)の進行状況(出力する画像処理進行状況信号PS)として、データ処理(画像処理)が完了した割合を表す処理完了割合を通知し、優先度切り替え制御部2504は、画像処理モジュール2502におけるデータ処理(画像処理)の速度(処理速度)および処理の量(出力総画素数)と、通知された処理完了割合と、に基づいて残りの処理時間を算出する、メモリアクセス装置が構成される。
 また、第1の実施形態によれば、画像処理モジュール2502は、データ処理(画像処理)を複数回に分けて行う場合(1フレームの画像の領域を、同じ画素数の前処理画像データが含まれる複数の矩形のブロックに分割し、分割したそれぞれのブロックごとに画像処理を行う場合)において、データ処理(画像処理)の進行状況(出力する画像処理進行状況信号PS)として、データ処理(画像処理)が完了した回数を表す処理完了数(処理完了ブロック数)を通知し、優先度切り替え制御部2504は、画像処理モジュール2502が分けて行うデータ処理(画像処理)の回数(全ブロック数)、および通知された処理完了数とから求められる残りの処理回数(残りのブロック数)と、分けて行う1回のデータ処理(画像処理)における処理の量(1ブロックの画素数)と、画像処理モジュール2502におけるデータ処理(画像処理)の速度(処理速度)と、に基づいて残りの処理時間を算出する、メモリアクセス装置が構成される。
 また、第1の実施形態によれば、画像処理モジュール2502は、データ処理(画像処理)を処理量が異なる複数回に分けて行う場合(1フレームの画像の領域を複数のブロックに分割して画像処理を行う際に、それぞれのブロックに含まれる画素数が異なる場合)において、データ処理(画像処理)の進行状況(出力する画像処理進行状況信号PS)として、現在までにデータ処理(画像処理)が終了した処理の量を表す処理完了量(現在の入力画素数)を通知し、優先度切り替え制御部2504は、画像処理モジュール2502が行うデータ処理(画像処理)における全体の処理の量(入力総画素数)、および通知された処理完了量(現在の入力画素数)とから求められる残りの処理の量(残りの入力画素数)と、画像処理モジュール2502におけるデータ処理(画像処理)の速度(処理速度)と、に基づいて残りの処理時間を算出する、メモリアクセス装置が構成される。
 また、第1の実施形態によれば、優先度切り替え制御部2504は、残りの処理時間およびリミット時間のいずれか一方または両方に、時間に対する割合で表される予め定めた時間係数を乗算した後に、処理余裕時間を算出する、メモリアクセス装置が構成される。
 また、第1の実施形態によれば、データバス(データバス210)に接続されたメモリ(DRAM30)へのアクセスを要求するアクセス要求を出力し、アクセスしたDRAM30のデータ(例えば、前処理画像データ)に対してデータ処理(画像処理)を行うと共に、データ処理(画像処理)の進行状況を通知する(画像処理進行状況信号PSを出力する)データ処理部(画像処理モジュール2502)と、画像処理モジュール2502から通知されたデータ処理(画像処理)の進行状況(出力された画像処理進行状況信号PS)に基づいて、画像処理モジュール2502によるデータ処理(画像処理)の緊急度を判定し、画像処理モジュール2502の優先度の切り替えを通知する優先度切り替え信号(優先度切り替え信号SW)を出力する優先度切り替え制御部(優先度切り替え制御部2504)と、データバス210に接続され、DRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに応じて、画像処理モジュール2502から出力されたアクセス要求の優先度を変更して調停し、調停によって受け付けたアクセス要求に応じてDRAM30へのアクセスを制御するバスアービタ(バスアービタ220)と、を具備したメモリアクセス装置(メモリアクセス装置)、を備える、画像処理装置(画像処理装置20)が構成される。
 また、第1の実施形態によれば、データバス(データバス210)に接続されたメモリ(DRAM30)へのアクセスを要求するアクセス要求を出力し、アクセスしたDRAM30のデータ(例えば、前処理画像データ)に対してデータ処理(画像処理)を行うと共に、データ処理(画像処理)の進行状況を通知する(画像処理進行状況信号PSを出力する)データ処理部(画像処理モジュール2502)と、画像処理モジュール2502から通知されたデータ処理(画像処理)の進行状況(出力された画像処理進行状況信号PS)に基づいて、画像処理モジュール2502によるデータ処理(画像処理)の緊急度を判定し、画像処理モジュール2502の優先度の切り替えを通知する優先度切り替え信号(優先度切り替え信号SW)を出力する優先度切り替え制御部(優先度切り替え制御部2504)と、データバス210に接続され、DRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに応じて、画像処理モジュール2502から出力されたアクセス要求の優先度を変更して調停し、調停によって受け付けたアクセス要求に応じてDRAM30へのアクセスを制御するバスアービタ(バスアービタ220)と、を具備したメモリアクセス装置(メモリアクセス装置)を備える画像処理装置(画像処理装置20)、を備える、撮像装置(撮像装置1)が構成される。
 上述したように、第1の実施形態のメモリアクセス装置では、画像処理部250において画像処理モジュール2502が、画像処理進行状況信号PSによって、実行している画像処理の進行状況を、優先度切り替え制御部2504に通知する。そして、第1の実施形態のメモリアクセス装置では、画像処理部250において優先度切り替え制御部2504が、画像処理モジュール2502から出力された画像処理進行状況信号PSを用いて残りの処理時間を算出し、設定されたリミット時間と、現在の経過時間と、算出した残りの処理時間を用いて処理余裕時間を算出する。そして、第1の実施形態のメモリアクセス装置では、画像処理部250において優先度切り替え制御部2504が、算出した処理余裕時間と緊急度閾値時間とを比較することによって、画像処理モジュール2502が行う画像処理の緊急度を判定し、画像処理部250が行う画像処理の緊急度を通知するための優先度切り替え信号SWを、バスアービタ220に出力する。
 これにより、第1の実施形態のメモリアクセス装置では、画像処理部250において優先度切り替え制御部2504が、画像処理部250の優先度の切り替え(変更)を、バスアービタ220に要求することができる。そして、第1の実施形態のメモリアクセス装置では、バスアービタ220が、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え制御部2504から出力された優先度切り替え信号SWに応じて画像処理部250の優先度を切り替えた状態で、DRAM30へのアクセス要求を受け付ける(許可する)処理ブロックを決定する。つまり、第1の実施形態のメモリアクセス装置では、画像処理部250によるそれぞれのフレームに対する画像処理の終了が遅くなって設定されているリミット時間を超えてしまう前に、画像処理部250からのDRAM30へのアクセス要求を受け付ける(許可する)。
 これにより、第1の実施形態のメモリアクセス装置を搭載したシステム(撮像装置1や画像処理装置20)では、一連の画像処理に破綻をきたしてしまう要因を削減して、画像処理部250におけるそれぞれのフレームの画像処理を、設定されたリミット時間までにより確実に終了することができる。このことにより、第1の実施形態のメモリアクセス装置を搭載したシステム(撮像装置1や画像処理装置20)では、システムとしての動作や機能に破綻をきたすことがなく、実現する一連の画像処理を、滞りなく円滑に行うことができる。
 なお、第1の実施形態のメモリアクセス装置では、画像処理装置20内に、1つの画像処理部250を備え、画像処理部250において行う画像処理の緊急度を判定して、優先度切り替え信号SWをバスアービタ220に出力する構成である場合について説明した。つまり、第1の実施形態のメモリアクセス装置では、1種類の画像処理の機能を備え、この画像処理の機能を実施する際の緊急度を判定して、優先度の切り替え(変更)をバスアービタ220に要求する構成である場合について説明した。しかし、本発明のメモリアクセス装置を搭載したシステムにおいて実施する画像処理の種類は、第1の実施形態のメモリアクセス装置に示した1種類の画像処理に限定されるものではない。例えば、本発明のメモリアクセス装置を搭載したシステムにおいて複数種類の画像処理を実施することも考えられる。この場合、本発明のメモリアクセス装置では、複数の画像処理部250を備えることによって、本発明のメモリアクセス装置を搭載したシステムにおいて複数種類の画像処理を実施する構成にしてもよい。
(第2の実施形態)
 次に、本発明の第2の実施形態のメモリアクセス装置について説明する。本発明の第2の実施形態のメモリアクセス装置は、メモリアクセス装置を構成する画像処理部を複数備えた構成である。なお、以下の説明においても、本発明の第2の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。
 図5は、本発明の第2の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。図5に示した第2の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成には、図1に示した第1の実施形態のメモリアクセス装置を備えた画像処理装置20を搭載した撮像装置1と同様の構成要素を含んでいる。従って、第2の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成要素において、第1の実施形態のメモリアクセス装置を備えた画像処理装置20を搭載した撮像装置1の構成要素と同様の構成要素には、同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。また、図5に示していない構成要素もあるが、第2の実施形態のメモリアクセス装置を備えた画像処理装置の構成には、図1に示した第1の実施形態のメモリアクセス装置を備えた画像処理装置20と同様の構成要素を含んでいる。従って、第2の実施形態のメモリアクセス装置を備えた画像処理装置の構成要素において、第1の実施形態のメモリアクセス装置を備えた画像処理装置20の構成要素と同様の構成要素には、同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。なお、第2の実施形態のメモリアクセス装置を備えた画像処理装置の構成要素において、図5に示していない、第1の実施形態のメモリアクセス装置を備えた画像処理装置20の構成要素と同様の構成要素を表すときには、同一の符号を用いて説明する。
 図5に示した撮像装置2は、イメージセンサ10と、画像処理装置21と、DRAM30と、表示装置40と、を備えている。また、画像処理装置21は、バスアービタ220と、DRAMインターフェース部230と、撮像画像取り込み部240と、3つの画像処理部251-1~画像処理部251-3と、優先度切り替え制御部2514と、表示処理部260と、を備えている。画像処理装置21では、バスアービタ220と、撮像画像取り込み部240と、3つの画像処理部251-1~画像処理部251-3と、表示処理部260とのそれぞれが、共通のデータバス210に接続されている。
 なお、図5に示した撮像装置2では、画像処理装置21に備えた3つの画像処理部251-1~画像処理部251-3と、優先度切り替え制御部2514と、バスアービタ220とによって、第2の実施形態のメモリアクセス装置を構成している。
 なお、以下の説明においては、3つの画像処理部251-1~画像処理部251-3のそれぞれを区別しない場合には、単に「画像処理部251」という。
 撮像装置2も、図1に示した第1の実施形態における撮像装置1と同様に、イメージセンサ10によって被写体の静止画像または動画像を撮影し、撮影した静止画像または動画像に応じた表示画像を表示装置40に表示させる。なお、撮像装置2も、第1の実施形態における撮像装置1と同様に、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
 画像処理装置21は、図1に示した第1の実施形態における画像処理装置20と同様に、イメージセンサ10から出力された画素信号に対して予め定めた画像処理を行って、静止画像や動画像を生成する。また、画像処理装置21は、第1の実施形態における画像処理装置20と同様に、生成した静止画像や動画像に応じた表示画像を生成し、生成した表示画像を表示装置40に表示させる。また、画像処理装置21は、第1の実施形態における画像処理装置20と同様に、生成した静止画像や動画像に応じた記録画像を生成し、生成した記録画像を不図示の記録媒体に記録させることもできる。
 画像処理装置21では、撮像画像取り込み部240と、3つの画像処理部251-1~画像処理部251-3と、表示処理部260とのそれぞれが、画像処理装置21において実行する画像処理の処理機能を実現する処理ブロックである。画像処理装置21では、撮像画像取り込み部240、3つの画像処理部251-1~画像処理部251-3、および表示処理部260のそれぞれ、データバス210を介したDMA転送によってDRAM30にアクセスする。
 なお、画像処理装置21でも、第1の実施形態における画像処理装置20と同様に、それぞれの処理ブロックに、画像処理を実行するときにDRAM30にアクセスする際のDMA転送の優先順位を表す優先度が設定されている。この優先度も、第1の実施形態における画像処理装置20と同様に、撮像装置2の動作モードごとに設定されている。
 なお、以下の説明においては、第1の実施形態における画像処理装置20と同様に、画像処理装置21に備えた撮像画像取り込み部240と表示処理部260とのそれぞれが、優先度が高く設定されている処理ブロックであるものとして説明する。つまり、画像処理装置21に備えた3つの画像処理部251-1~画像処理部251-3は、優先度が低く設定されている処理ブロックであるものとして説明する。
 バスアービタ220は、データバス210に接続されている画像処理装置21内のそれぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求(DMA要求)を、それぞれの処理ブロックの優先度に基づいて調停し、アクセス要求を受け付けた処理ブロックとの間でデータバス210を介したデータの受け渡しを行う。
 画像処理部251-1~画像処理部251-3のそれぞれは、第1の実施形態における画像処理装置20に備えた画像処理部250と同様に、DRAM30に記憶された画像データに対して予め定めた画像処理を施す処理ブロックである。このため、画像処理部251-1~画像処理部251-3でも、画像処理を施す対象の画像データを取得する(読み出す)ためのDMA転送(リードDMA転送)と、画像処理を施して生成した画像データをDRAM30に記憶する(書き込む)ためのDMA転送(ライトDMA転送)とを行う。従って、画像処理部251-1~画像処理部251-3のそれぞれには、第1の実施形態における画像処理装置20内の画像処理部250と同様に、バスマスタ2501と、画像処理モジュール2502と、バスマスタ2503と、を備えている。
 なお、画像処理部251-1~画像処理部251-3のそれぞれには、第1の実施形態における画像処理装置20内の画像処理部250に備えていた優先度切り替え制御部2504を備えていない。その代わりに、画像処理装置21では、上述したように、優先度切り替え制御部2514を備えている。つまり、画像処理装置21では、第1の実施形態における画像処理部250に備えていた優先度切り替え制御部2504の代わりに、画像処理部251-1~画像処理部251-3のそれぞれに共通した1つの優先度切り替え制御部2514を備えている。
 画像処理装置21では、画像処理部251-1~画像処理部251-3のそれぞれが、DRAM30に記憶された画像データに対して順次、予め定めた画像処理を施す。従って、画像処理部251-1~画像処理部251-3のそれぞれがリードDMA転送によってDRAM30から取得する(読み出す)画像データは、前処理画像データに限定されるものではない。
 より具体的には、まず、画像処理部251-1が、DRAM30に記憶された前処理画像データに対して予め定めた画像処理を施して再びDRAM30に記憶させる(書き込む)。続いて、画像処理部251-2が、DRAM30に記憶された画像処理部251-1が記憶させた(書き込んだ)画像データに対して予め定めた画像処理を施して再びDRAM30に記憶させる(書き込む)。最後に、画像処理部251-3が、DRAM30に記憶された画像処理部251-2が記憶させた(書き込んだ)画像データに対して予め定めた画像処理を施して再びDRAM30に記憶させる(書き込む)。このように、画像処理装置21では、画像処理部251-1~画像処理部251-3のそれぞれによって、DRAM30に記憶された前処理画像データに対して3種類の画像処理を順次施す。
 画像処理部251に備えたバスマスタ2501、画像処理モジュール2502、およびバスマスタ2503のそれぞれは、第1の実施形態における画像処理部250に備えたバスマスタ2501、画像処理モジュール2502、およびバスマスタ2503のそれぞれと同様である。従って、画像処理部251に備えたバスマスタ2501と、画像処理モジュール2502と、バスマスタ2503とのそれぞれに関する詳細な説明は省略する。ただし、上述したように、画像処理装置21では、画像処理部251-1~画像処理部251-3のそれぞれによって、DRAM30に記憶された前処理画像データに対して3種類の画像処理を順次施す。このため、画像処理部251-1~画像処理部251-3のそれぞれに備えた画像処理モジュール2502は、異なる画像処理の機能を実現する。
 なお、以下の説明においては、画像処理部251-1~画像処理部251-3のそれぞれに備えた画像処理モジュール2502を区別する場合には、画像処理モジュール2502の符号に続いて、画像処理部251のそれぞれに付与した「-」と、それに続く数字を付与して表す。より具体的には、画像処理部251-1に備えた画像処理モジュール2502を「画像処理モジュール2502-1」として表す。また、画像処理部251-2に備えた画像処理モジュール2502を「画像処理モジュール2502-2」として表す。また、画像処理部251-3に備えた画像処理モジュール2502を「画像処理モジュール2502-3」として表す。
 なお、図5に示した画像処理装置21では、画像処理部251-1~画像処理部251-3のそれぞれに備えた画像処理モジュール2502が出力する画像処理進行状況信号PSをまとめて示しているが、画像処理進行状況信号PSは、画像処理部251-1~画像処理部251-3のそれぞれに備えた画像処理モジュール2502において実行している画像処理の進行状況を通知する信号である。従って、以下の説明においては、画像処理部251-1~画像処理部251-3のそれぞれに備えた画像処理モジュール2502が行っている画像処理の進行状況を通知するために出力する画像処理進行状況信号PSを区別する場合にも、画像処理進行状況信号PSの信号名に続いて、画像処理部251のそれぞれに付与した「-」と、それに続く数字を付与して表す。より具体的には、画像処理部251-1に備えた画像処理モジュール2502-1が出力する画像処理進行状況信号PSを「画像処理進行状況信号PS-1」として表す。また、画像処理部251-2に備えた画像処理モジュール2502-2が出力する画像処理進行状況信号PSを「画像処理進行状況信号PS-2」として表す。また、画像処理部251-3に備えた画像処理モジュール2502-3が出力する画像処理進行状況信号PSを「画像処理進行状況信号PS-3」として表す。
 優先度切り替え制御部2514は、第1の実施形態における画像処理部250に備えた優先度切り替え制御部2504と同様に、バスアービタ220がそれぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に考慮する、画像処理部251のDMA転送の優先度を、バスアービタ220に通知する。
 より具体的には、優先度切り替え制御部2514も、第1の実施形態における優先度切り替え制御部2504と同様に、画像処理部251に備えた画像処理モジュール2502から出力された画像処理進行状況信号PSに基づいて、画像処理部251が画像処理を行う際の残りの処理時間を算出する。そして、優先度切り替え制御部2514も、第1の実施形態における優先度切り替え制御部2504と同様に、算出した残りの処理時間と、画像処理部251が1フレーム分の画像処理を完了する必要がある時間として規定された画像処理のリミット時間と、現在の経過時間とに基づいて、画像処理部251が行う画像処理の緊急度を判定する。そして、優先度切り替え制御部2514も、第1の実施形態における優先度切り替え制御部2504と同様に、判定した結果に基づいて、画像処理部251が行う画像処理の緊急度を通知するための優先度切り替え信号SWを生成し、バスアービタ220に出力する。
 優先度切り替え制御部2514が出力する優先度切り替え信号SWも、第1の実施形態における優先度切り替え制御部2504が出力する優先度切り替え信号SWと同様に、画像処理部251の優先度を高くした状態で調停をしてもらいたい、つまり、画像処理部251におけるDMA転送(リードDMA転送またはライトDMA転送)を緊急で受け付けてもらいたい(許可してもらいたい)ことを通知する。つまり、優先度切り替え制御部2514が出力する優先度切り替え信号SWも、第1の実施形態における優先度切り替え制御部2504が出力する優先度切り替え信号SWと同様に、画像処理部251におけるDMA転送の優先度の切り替え(変更)を要求するための信号である。
 なお、優先度切り替え制御部2514が画像処理部251のDMA転送の優先度を判定するために用いるパラメータ、つまり、画像処理モジュール2502が行う画像処理の緊急度を判定するために用いるパラメータも、第1の実施形態における優先度切り替え制御部2504と同様に、例えば、画像処理装置21に備えた、不図示のCPUなどによって、優先度切り替え制御部2514のレジスタに設定される。
 なお、画像処理装置21では、画像処理部251-1~画像処理部251-3のそれぞれから、画像処理進行状況信号PS-1~画像処理進行状況信号PS-3のそれぞれが、優先度切り替え制御部2514に出力されている。このため、優先度切り替え制御部2514は、画像処理部251-1~画像処理部251-3のそれぞれから出力された、それぞれの画像処理進行状況信号PS-1~画像処理進行状況信号PS-3に基づいて、画像処理部251ごとに、残りの処理時間を算出する。そして、優先度切り替え制御部2514は、画像処理部251ごとに算出した残りの処理時間と、リミット時間と、現在の経過時間とに基づいて、処理余裕時間を算出し、それぞれの画像処理部251によって行う画像処理の緊急度を判定する。このとき、優先度切り替え制御部2514は、設定されているリミット時間に応じて、画像処理部251-1~画像処理部251-3のそれぞれが順次行う一連の画像処理の単位、または画像処理部251ごとに、画像処理の緊急度を判定する。
 なお、優先度切り替え制御部2514が、それぞれの画像処理部251が行う画像処理の緊急度を判定する方法は、図2に示した、第1の実施形態における優先度切り替え制御部2504が、画像処理部250が行う画像処理の緊急度を判定する方法と同様である。従って、優先度切り替え制御部2514がそれぞれの画像処理部251が行う画像処理の緊急度を判定する方法に関する詳細な説明は省略する。ただし、優先度切り替え制御部2514は、上述したように、設定されているリミット時間に応じて、画像処理部251-1~画像処理部251-3のそれぞれが順次行う一連の画像処理の単位、または画像処理部251ごとに、画像処理の緊急度を判定するため、リミット時間の設定の考え方と、設定されているリミット時間に応じて画像処理の緊急度を判定する方法に関しては、後述する。
 そして、優先度切り替え制御部2514は、判定した結果に基づいて、それぞれの画像処理部251に設定されている優先度の切り替えを通知するための優先度切り替え信号SWを生成し、バスアービタ220に出力する。このとき、優先度切り替え制御部2514は、画像処理部251-1~画像処理部251-3のそれぞれに対応する優先度切り替え信号SWを生成して、バスアービタ220に出力する。これにより、バスアービタ220は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに基づいて、いずれかの画像処理部251の優先度を高く切り替えて、優先度を高く切り替えた画像処理部251からのアクセス要求を優先して受け付ける(許可する)。これにより、それぞれの画像処理部251は、実行する画像処理に待ちの状態が発生して停止することなく、規定された画像処理のリミット時間までに、画像処理を完了することができる。
 なお、優先度切り替え制御部2514も、第1の実施形態における優先度切り替え制御部2504と同様に、優先度切り替え信号SWとして、画像処理部251に備えたバスマスタ2501からのリードDMA転送のアクセス要求と、バスマスタ2503からのライトDMA転送のアクセス要求との内、いずれのバスマスタからのアクセス要求の方をより優先するかの情報も併せて通知してもよい。つまり、優先度切り替え制御部2514は、画像処理装置21において画像処理部251-1~画像処理部251-3のそれぞれが順次実行する一連の画像処理の進行状況に応じて、画像処理が滞りなく円滑に終了するように、優先するDMA転送の順番を制御してもよい。
 このような構成によって、撮像装置2は、イメージセンサ10によって被写体の静止画像や動画像を撮影し、撮影した静止画像や動画像に応じた表示画像を表示装置40に表示させる。また、撮像装置2は、イメージセンサ10によって撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
 また、撮像装置2では、画像処理装置21に備えた3つの画像処理部251-1~画像処理部251-3と、優先度切り替え制御部2514と、バスアービタ220とで、第2の実施形態のメモリアクセス装置を構成する。言い換えれば、画像処理装置21において、DRAM30との間でDMA転送によって画像データの受け渡しを行う処理ブロックの内、優先度が低い処理ブロックである3つの画像処理部251-1~画像処理部251-3が、優先度切り替え制御部2514およびバスアービタ220と組み合わされて、第2の実施形態のメモリアクセス装置が構成される。
 そして、第2の実施形態のメモリアクセス装置では、画像処理部251-1~画像処理部251-3のそれぞれが、実施している画像処理の進行状況を通知するための画像処理進行状況信号PS-1~画像処理進行状況信号PS-3を、優先度切り替え制御部2514に出力する。そして、第2の実施形態のメモリアクセス装置では、優先度切り替え制御部2514が、それぞれの画像処理部251から出力された画像処理進行状況信号PSが表す画像処理の進行状況に基づいて、それぞれの画像処理部251に備えた画像処理モジュール2502が行う画像処理の緊急度を判定し、画像処理部251におけるDMA転送の優先度を通知するための優先度切り替え信号SWを、バスアービタ220に出力する。
 これにより、第2の実施形態のメモリアクセス装置では、バスアービタ220が、それぞれの処理ブロックからのアクセス要求を受け付ける(許可する)際に、優先度切り替え信号SWが、いずれかの画像処理部251において実行する画像処理の緊急度が高いことを表している場合には、その画像処理部251の優先度を高く切り替えて、優先度を高く切り替えた画像処理部251からのアクセス要求を優先して受け付ける(許可する)。これにより、それぞれの画像処理部251(より具体的には、画像処理モジュール2502)は、実行する画像処理を停止させることなく、規定された画像処理のリミット時間までに、画像処理を完了することができる。このことにより、第2の実施形態のメモリアクセス装置を搭載したシステム(撮像装置2や画像処理装置21)では、システムとしての動作や機能に破綻をきたす要因となり得る、それぞれの画像処理部251(画像処理モジュール2502)の動作が停止することなく、画像データに対する一連の画像処理を、滞りなく円滑に行うことができる。
 次に、第2の実施形態のメモリアクセス装置の動作の一例について説明する。上述したように、第2の実施形態のメモリアクセス装置を構成する画像処理装置21では、画像処理部251-1~画像処理部251-3のそれぞれが、DRAM30に記憶された画像データに対する画像処理を順次行う。以下の説明においては、画像処理部251-1、画像処理部251-2、画像処理部251-3の順番で画像処理を行うものとして説明する。つまり、画像処理装置21において、画像処理部251-1~画像処理部251-3のそれぞれによる3種類の画像処理を一連の画像処理として行うものとして説明する。
 なお、複数の画像処理部を備えた画像処理装置では、それぞれの画像処理部が、1フレーム分の画像データに対する画像処理を順次行うことによって、一連の画像処理を完了させる。しかし、この場合には、画像処理装置において行う一連の画像処理に要する時間が長くなる。つまり、画像処理を行う対象の1フレーム分の画像データの入力から、一連の画像処理を施した最終的な1フレーム分の画像データの出力までの遅延時間(いわゆる、レイテンシ)が長くなる。
 例えば、画像処理装置21において、画像処理部251-1~画像処理部251-3のそれぞれが、1フレーム分の画像データに対する画像処理を順次行うことによって、一連の画像処理を完了させる場合を考える。この場合、画像処理装置21では、画像処理部251-1がDRAM30から1フレーム分の前処理画像データを取得する(読み出す)ときから、それぞれの画像処理部251が画像処理を施して、画像処理部251-3が1フレーム分の画像処理画像データをDRAM30に記憶させる(書き込む)までの一連の画像処理に要する時間が長くなる。これは、それぞれの画像処理部251が1フレーム分の画像データに対する画像処理を順次行う場合には、前段の画像処理部251が画像処理を行っている期間は、後段の画像処理部251が画像処理を行うことができないからである。
 より具体的には、1段目の画像処理部251-1が1フレーム分の前処理画像データに対する画像処理を行っている期間は、2段目の画像処理部251-2および3段目の画像処理部251-3は、画像処理を行うことができない。また、2段目の画像処理部251-2が1フレーム分の前処理画像データに対する画像処理を行っている期間は、3段目の画像処理部251-3は、画像処理を行うことができない。このため、画像処理装置21において一連の画像処理を完了させるまでに要する時間(遅延時間)は、1段目の画像処理部251-1において画像処理に要する時間と、2段目の画像処理部251-2において画像処理に要する時間と、3段目の画像処理部251-3において画像処理に要する時間との合計となる。
 このように、複数の画像処理部を備えた画像処理装置では、それぞれの画像処理部が1フレーム分の画像データに対する画像処理を順次行うようにすると、一連の画像処理に要する時間長くなってしまう。
 そこで、複数の画像処理部251を備えた画像処理装置21では、一連の画像処理に要する時間を短縮するため、図6に示したように、1フレーム分の画像の領域を予め定めた数のブロックに分割し、それぞれの画像処理部251が分割したブロックに含まれる画像データに対して画像処理を順次行うことによって、複数の画像処理部251が並列に画像処理を行うようにする。図6は、本発明の第2の実施形態におけるメモリアクセス装置を備えた画像処理装置21において画像処理を行う(1フレーム分の)画像の領域を分割した一例を模式的に示した図である。図6には、1フレーム分の画像の領域を、3つのブロックに分割した場合を示している。この場合、画像処理装置21では、それぞれの画像処理部251が、分割したブロックに含まれる画像データに対する画像処理を並列に行うことができる。
 より具体的には、まず、画像処理部251-1が、DRAM30に記憶されたブロック1の前処理画像データに対して画像処理(以下、「画像処理-1」という)を施して再びDRAM30に記憶させる(書き込む)。続いて、画像処理部251-1は、DRAM30に記憶されたブロック2の前処理画像データに対する画像処理-1を開始する。このとき、画像処理部251-2は、画像処理部251-1が画像処理-1を施してDRAM30に記憶させた(書き込んだ)ブロック1の画像データに対して画像処理(以下、「画像処理-2」という)を開始することができる。
 その後、画像処理部251-1は、ブロック2の前処理画像データに対して画像処理-1を施した画像データを再びDRAM30に記憶させ(書き込み)、引き続き、DRAM30に記憶されたブロック3の前処理画像データに対する画像処理-1を開始する。このとき、画像処理部251-2は、画像処理部251-1が画像処理-1を施したブロック1の画像データに対して画像処理-2を施した画像データのDRAM30への記憶(書き込み)が終わっている場合には、引き続き、画像処理部251-1が画像処理-1を施したブロック2の画像データに対して画像処理-2を開始することができる。また、画像処理部251-3は、画像処理部251-2が画像処理-2を施してDRAM30に記憶させた(書き込んだ)ブロック1の画像データに対して画像処理(以下、「画像処理-3」という)を開始することができる。
 その後、画像処理部251-1は、ブロック3の前処理画像データに対して画像処理-1を施した画像データをDRAM30に記憶させて(書き込んで)、処理を完了する。このとき、画像処理部251-2は、画像処理部251-1が画像処理-1を施したブロック2の画像データに対して画像処理-2を施した画像データのDRAM30への記憶(書き込み)が終わっている場合には、引き続き、画像処理部251-1が画像処理-1を施したブロック3の画像データに対して画像処理-2を開始することができる。また、画像処理部251-3は、画像処理部251-2が画像処理-2を施したブロック1の画像データに対して画像処理-3を施した画像データのDRAM30への記憶(書き込み)が終わっている場合には、引き続き、画像処理部251-2が画像処理-2を施したブロック2の画像データに対して画像処理-3を開始することができる。
 その後、画像処理部251-2は、画像処理部251-1が画像処理-1を施したブロック3の画像データに対して画像処理-2を施した画像データをDRAM30に記憶させて(書き込んで)、処理を完了する。このとき、画像処理部251-3は、画像処理部251-2が画像処理-2を施したブロック2の画像データに対して画像処理-3を施した画像データのDRAM30への記憶(書き込み)が終わっている場合には、引き続き、画像処理部251-2が画像処理-2を施したブロック3の画像データに対して画像処理-3を開始することができる。
 最後に、画像処理部251-3は、画像処理部251-2が画像処理-2を施したブロック3の画像データに対して画像処理-3を施した画像データをDRAM30に記憶させて(書き込んで)、処理を完了する。
 このように、1フレーム分の画像の領域を予め定めた数のブロックに分割した場合には、それぞれの画像処理部251は、互いに異なるブロックに含まれる画像データに対する画像処理を並列に行うことができる。これにより、複数の画像処理部251を備えた画像処理装置21では、一連の画像処理に要する時間を短縮することができる。
 なお、図6においては、1フレーム分の画像の領域を垂直方向に3つのブロックに分割した場合の一例を示したが、1フレーム分の画像の領域の分割方法は、図6に示した分割方法に限定されるものではない。例えば、1フレーム分の画像の領域を水平方向に複数のブロックに分割してもよいし、1フレーム分の画像の領域を垂直方向および水平方向に複数のブロックに分割してもよい。また、例えば、1フレーム分の画像の領域を分割したそれぞれのブロックの領域を、さらに複数の小ブロックに分割してもよい。この場合、画像処理部251のそれぞれは、それぞれのブロックにおける画像処理の進行状況を通知するための画像処理進行状況信号PSとして、現在処理を行っているブロックにおいて分割した複数の小ブロックの内、現時点までに画像処理を完了している小ブロックの数を表す信号を出力してもよい。
 なお、複数の画像処理部251を備えた第2の実施形態のメモリアクセス装置においても、第1の実施形態のメモリアクセス装置と同様に、リミット時間は、撮像装置2や画像処理装置21におけるシステムとしての動作や機能に破綻をきたすことがないように規定される。このため、第2の実施形態のメモリアクセス装置では、それぞれの画像処理部251が行う一連の画像処理に待ちの状態が発生して停止しまわないように、画像処理部251による一連の画像処理が終了するまでの時間が、リミット時間として設定される。つまり、第2の実施形態のメモリアクセス装置においても、リミット時間は、それぞれの画像処理部251が実行する一連の画像処理に待ちの状態が発生して停止してしまう前に、それぞれの画像処理部251が出力したアクセス要求がバスアービタ220によって受け付けられる(許可される)優先度を高くするように優先度切り替え制御部2514が制御するという考え方を基本として設定される。そして、複数の画像処理部251を備えた第2の実施形態のメモリアクセス装置では、画像処理部251の構成や画像処理部251が行う一連の画像処理に応じた様々な考え方で、リミット時間が設定される。
 ここで、複数の画像処理部251によって行う一連の画像処理に応じて設定するリミット時間の考え方の一例について説明する。なお、以下の説明においては、1フレーム分の画像の領域を、図6に示したように3つのブロックに分割した場合において、3つの画像処理部251-1~画像処理部251-3のそれぞれが順次行う一連の画像処理の単位で設定するリミット時間の考え方の一例について説明する。
 例えば、撮像装置2の動作モードが、被写体の静止画像の撮影を行う撮影モードである場合について考える。この場合、それぞれの画像処理部251は、画像処理画像データに応じた表示画像を表示装置40に表示させるために表示処理部260がDRAM30に記憶された画像処理画像データを取得する(読み出す)タイミングまでに、一連の画像処理を施した画像処理画像データ(静止画像データ)をDRAM30に記憶させておく(書き込んでおく)必要がある。このため、リミット時間は、画像処理画像データ(静止画像データ)を生成する最終段の画像処理部251である3段目の画像処理部251-3が、最終的な画像処理画像データ(静止画像データ)のDRAM30への記憶(書き込み)を終了する時間が、表示処理部260がそれぞれのフレームの画像処理画像データをDRAM30から取得する(読み出す)タイミングに基づいて設定される。
 この場合におけるリミット時間とそれぞれの画像処理部251が画像処理を行う期間との関係は、図7に示したような関係になっている。図7は、本発明の第2の実施形態のメモリアクセス装置におけるリミット時間と画像処理の期間との関係の一例を模式的に示した図である。図7には、それぞれのブロックに対して設定されているリミット時間と、それぞれの画像処理部251がそれぞれのブロックに対する画像処理を行う画像処理期間と、表示処理部260が1フレーム分の画像処理画像データに応じた表示画像を表示装置40に表示させる期間(表示期間)との関係の一例を模式的に示している。
 より具体的には、図7には、画像処理部251-1がそれぞれのブロックに対して画像処理を行う画像処理期間(画像処理期間-1)と、画像処理部251-2がそれぞれのブロックに対して画像処理を行う画像処理期間(画像処理期間-2)と、画像処理部251-3がそれぞれのブロックに対して画像処理を行う画像処理期間(画像処理期間-3)とを示している。なお、画像処理期間-1は、画像処理部251-1が、ブロックに含まれる前処理画像データをDRAM30から取得する(読み出す)リードDMA転送の動作期間と、取得したブロックの前処理画像データに対して画像処理(画像処理-1)を施す動作期間と、画像処理-1を施した後のブロックの画像データをDRAM30に記憶させる(書き込む)ライトDMA転送の動作期間を合わせた画像処理期間である。また、画像処理期間-2は、画像処理部251-2が、ブロックに含まれる画像処理-1が施された画像データをDRAM30から取得する(読み出す)リードDMA転送の動作期間と、取得したブロックの画像データに対して画像処理(画像処理-2)を施す動作期間と、画像処理-2を施した後のブロックの画像データをDRAM30に記憶させる(書き込む)ライトDMA転送の動作期間を合わせた画像処理期間である。また、画像処理期間-3は、画像処理部251-3が、ブロックに含まれる画像処理-2が施された画像データをDRAM30から取得する(読み出す)リードDMA転送の動作期間と、取得したブロックの画像データに対して画像処理(画像処理-3)を施す動作期間と、画像処理-3を施した後のブロックの画像データをDRAM30に記憶させる(書き込む)ライトDMA転送の動作期間を合わせた画像処理期間である。
 また、図7には、表示処理部260が、1フレーム分の画像処理画像データに応じた表示画像を表示装置40に表示させるために、それぞれのブロックの画像処理画像データをDRAM30から取得して(読み出して)表示処理を行う期間を、表示期間として示している。なお、表示処理部260は、分割した3つのブロックの画像処理画像データに対する表示処理が完了する、つまり、1フレーム分の表示画像の生成が終了すると、生成した表示画像を表示装置40に出力して表示させることができる。
 図7に示したように、それぞれのブロックにおけるリミット時間は、表示処理部260が、それぞれのブロックの画像処理画像データのDRAM30からの取得(読み出し)を開始するタイミングに設定されている。つまり、それぞれのブロックにおけるリミット時間は、画像処理部251-1~画像処理部251-3のそれぞれが同じブロックに対して順次行う一連の画像処理の単位で設定されている。このため、それぞれの画像処理部251は、それぞれのブロックに対して設定されているリミット時間までに一連の画像処理を終了するように画像処理を行う。
 このとき、優先度切り替え制御部2514は、それぞれの画像処理部251から出力されたそれぞれの画像処理進行状況信号PSに基づいて、それぞれの画像処理部251における残りの処理時間を算出する。そして、優先度切り替え制御部2514は、算出した画像処理部251のそれぞれの残りの処理時間を合計して、それぞれの画像処理部251による一連の画像処理の残りの処理時間を算出する。その後、優先度切り替え制御部2514は、算出した一連の画像処理の残りの処理時間と、ブロックのリミット時間と、現在の経過時間とに基づいて、それぞれのブロックにおける処理余裕時間を算出する。図7には、優先度切り替え制御部2514が算出したそれぞれのブロックにおける処理余裕時間も併せて示している。そして、優先度切り替え制御部2514は、算出したそれぞれのブロックの処理余裕時間に基づいて、それぞれの画像処理部251が行う一連の画像処理の緊急度を判定する。
 なお、優先度切り替え制御部2514がブロックの処理余裕時間に基づいて一連の画像処理の緊急度を判定する方法は、第1の実施形態における優先度切り替え制御部2504と同様である。つまり、優先度切り替え制御部2514は、算出したそれぞれのブロックの処理余裕時間と緊急度閾値時間とを比較して、処理余裕時間が緊急度閾値時間以上である場合には、それぞれの画像処理部251による一連の画像処理の緊急度は低いと判定し、処理余裕時間が緊急度閾値時間よりも短い場合には、それぞれの画像処理部251による一連の画像処理の緊急度は高いと判定する。
 そして、優先度切り替え制御部2514は、判定した結果に基づいて、それぞれの画像処理部251に設定されている優先度を切り替えることを通知するための優先度切り替え信号SWを生成して、バスアービタ220に出力する。これにより、バスアービタ220は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え信号SWに応じて優先度を高く切り替えた画像処理部251からのアクセス要求を優先して受け付ける(許可する)。より具体的には、バスアービタ220は、画像処理部251-1~画像処理部251-3のそれぞれから出力されているリードDMA転送のアクセス要求やライトDMA転送のアクセス要求を、優先して受け付ける(許可する)。
 図7に示した一例では、それぞれのブロックに対して設定されているリミット時間までに、それぞれの画像処理部251における画像処理が終了している場合を示している。しかし、図7には、緊急度閾値時間の一例と、優先度切り替え制御部2514がバスアービタ220に出力する優先度切り替え信号SWの一例とを示している。図7に示した優先度切り替え信号SWの一例では、画像処理部251-3におけるブロック1の画像処理期間-3において、それぞれの画像処理部251に設定されている優先度を高く切り替えることを通知している。なお、図7においても、優先度切り替え信号SWが表すレベルは、図3や図4に示した第1の実施形態のメモリアクセス装置における優先度切り替え信号SWの一例と同様である。
 ここで、図7に示した一例のように、画像処理部251-3におけるブロック1の画像処理期間-3に、それぞれの画像処理部251に設定されている優先度を高く切り替えることを通知する優先度切り替え信号SWが出力された場合、バスアービタ220は、画像処理部251-2と画像処理部251-3とのそれぞれから出力されているリードDMA転送のアクセス要求またはライトDMA転送のアクセス要求を、優先して受け付ける(許可する)ことができる。このため、仮に、画像処理部251-2からのアクセス要求の方が、画像処理部251-3からのアクセス要求よりも早く出力された場合には、バスアービタ220は、画像処理部251-2から出力されたアクセス要求を優先して受け付けてしまう(許可してしまう)ことも考えられる。しかし、画像処理部251-3は、ブロック1に対する一連の画像処理を実行しており、画像処理部251-2は、ブロック3に対する一連の画像処理を実行している。このため、優先度切り替え制御部2514は、先に一連の画像処理を終了することが必要な、ブロック1に対する一連の画像処理を実行している画像処理部251-3の画像処理の緊急度の方が高いと判定し、画像処理部251-3に設定されている優先度を高く切り替えることを通知する優先度切り替え信号SWを、バスアービタ220に出力する。
 なお、優先度切り替え制御部2514が、複数の画像処理部251の内、いずれの画像処理部251に設定されている優先度を高く切り替えるかを通知する方法は、複数の画像処理部251のそれぞれに対応する複数の優先度切り替え信号SWを生成し、いずれかの画像処理部251に対応する優先度切り替え信号SWのみを、優先度を高く切り替えることを表す状態にする方法である。しかし、優先度切り替え制御部2514が、複数の画像処理部251の内、いずれの画像処理部251に設定されている優先度を高く切り替えるかを通知する方法としては、例えば、全ての画像処理部251に共通の優先度切り替え信号SWと共に、いずれの画像処理部251に設定されている優先度を高く切り替えるかを表す情報を出力する方法であってもよい。
 これにより、バスアービタ220は、画像処理部251-3から出力されているリードDMA転送のアクセス要求またはライトDMA転送のアクセス要求を、優先して受け付ける(許可する)。
 これにより、図7に示した一例では、画像処理部251-3におけるブロック1の画像処理期間-3が、図7に現在示されている画像処理期間-3よりも短い期間となる。言い換えれば、図7に示したブロック1の処理余裕時間は、図7に現在示されているブロック1の処理余裕時間よりも長い期間となる。
 これにより、図7に示した一例では、それぞれの画像処理部251によるブロック1に対する一連の画像処理がブロック1のリミット時間を超えてしまい、撮像装置2における撮影モードの一連の画像処理に破綻をきたしてしまう要因を削減することができる。つまり、それぞれの画像処理部251は、ブロック1に対する一連の画像処理を、ブロック1のリミット時間までにより確実に終了することができ、撮像装置2は、撮影モードにおける一連の画像処理を、滞りなく行うことができる。
 なお、上述したように、優先度切り替え制御部2514は、画像処理部251ごとに残りの処理時間を算出する。このため、優先度切り替え制御部2514は、画像処理部251ごとに画像処理の緊急度を判定することができる。この場合も、優先度切り替え制御部2514は、判定した結果に基づいて、画像処理部251のそれぞれに対応する優先度切り替え信号SWを、バスアービタ220に出力する。これにより、バスアービタ220は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、それぞれの画像処理部251に対応する優先度切り替え信号SWに基づいて、いずれかの画像処理部251からのアクセス要求を優先して受け付ける(許可する)ことができる。
 続いて、複数の画像処理部251によって行う一連の画像処理に応じて設定するリミット時間の考え方の別の一例について説明する。画像処理部251ごとにリミット時間を設定する場合、それぞれのリミット時間は、以下のような手順によって求めて設定する。
(手順1):まず、一連の画像処理おける基準の時間を設定する。
 より具体的には、一連の画像処理における最終段の画像処理部251が画像処理を終了する必要がある絶対的な限界(リミット)の時間を基準の時間として設定する。これは、撮像装置2や画像処理装置21におけるシステムとしての動作や機能に破綻をきたすことがないようにするために、最終段の画像処理部251が最終的な画像処理画像データ(静止画像データ)のDRAM30への記憶(書き込み)を終了する時間を確保する必要があるためである。
(手順2):続いて、基準とした時間からそれぞれの画像処理部251が順次行う画像処理に要する時間を遡って、一連の画像処理を行うそれぞれの画像処理部251におけるリミット時間を仮に設定する。
 ここで、それぞれの画像処理部251における画像処理に要する時間とは、それぞれの画像処理部251が1ブロック分の画像処理に要する処理時間である。このため、画像処理に要する時間は、例えば、上式(1)において総処理時間を算出する方法と同様に算出することができる。このとき、画像処理に要する時間を算出する場合には、上式(1)における出力総画素数を、画像処理部251が画像処理を行って出力する1ブロック分の画像処理画像データ(静止画像データや動画像データ)の画素数とする。なお、それぞれの画像処理部251における画像処理に要する時間は、1ブロック分の画像処理に要する処理時間であれば、いかなる方法で求めてもよい。例えば、それぞれの画像処理部251が1ブロック分の画像処理を最速で行う際の処理時間であってもよい。
 より具体的には、最終段の画像処理部251が行う画像処理の仮のリミット時間として、基準の時間として設定した、一連の画像処理における絶対的な限界(リミット)の時間を設定する。その後、最終段の画像処理部251の1つ前段の画像処理部251が行う画像処理の仮のリミット時間として、設定した最終段の画像処理部251の仮のリミット時間から、最終段の画像処理部251が行う画像処理に要する時間を減算した時間を設定する。その後、1つ前段の画像処理部251のさらに1つ前段(つまり、2つ前段)の画像処理部251が行う画像処理の仮のリミット時間として、設定した1つ前段の画像処理部251の仮のリミット時間から、1つ前段の画像処理部251が行う画像処理に要する時間を減算した時間を設定する。このような演算を繰り返して、それぞれの画像処理部251によって順次行う一連の画像処理における初段の画像処理部251まで、それぞれの画像処理部251が行う画像処理の仮のリミット時間(以下、「仮リミット時間」という)を順次設定する。
(手順3):続いて、一連の画像処理において最終段の画像処理部251が最終的な画像処理画像データ(静止画像データ)のDRAM30への記憶(書き込み)を終了するために、初段の画像処理部251が画像処理を開始しなくてはならない時間を求める。
 より具体的には、初段の画像処理部251に対して設定した仮リミット時間から、初段の画像処理部251が行う画像処理に要する時間を減算した時間を、初段の画像処理部251が画像処理を開始しなくてはならない時間(以下、「画像処理開始時間」という)とする。
(手順4):続いて、一連の画像処理において初段の画像処理部251が画像処理を開始することができる時間(以下、「画像処理開始可能時間」という)と、画像処理開始時間との差分の時間を求める。この差分の時間は、それぞれの画像処理部251が行う一連の画像処理における合計の処理余裕時間に相当する。
(手順5):最後に、手順4で求めた差分の時間を、一連の画像処理を行うそれぞれの画像処理部251に振り分けて、それぞれの画像処理部251において設定した仮リミット時間から、振り分けた済みの差分の時間を減算した時間を、それぞれの画像処理部251におけるリミット時間として設定する。なお、手順4で求めた差分の時間をそれぞれの画像処理部251に振り分ける量(時間)は、それぞれの画像処理部251に均等な時間であってもよい。また、手順4で求めた差分の時間をそれぞれの画像処理部251に振り分ける量(時間)は、それぞれの画像処理部251が行う画像処理に要する時間に基づいて決定した割合(パーセント)に応じた時間であってもよい。つまり、画像処理により多くの時間を要する画像処理部251に、より多くの差分の時間を振り分けてもよい。
 このような手順によって求めたリミット時間を、一連の画像処理を行うそれぞれの画像処理部251に対して設定する。なお、上述した手順1~手順5は、1つのブロックの画像処理を行う場合において、画像処理部251ごとにリミット時間を設定する場合の手順である。従って、1フレーム分の画像の領域を予め定めた数のブロックに分割した場合には、上述した手順1~手順5を、最初に画像処理を行うブロックから順に、最後に画像処理を行うブロックまで繰り返す。
 ここで、画像処理部251ごとにリミット時間を設定する手順1~手順5のより具体的な例として、画像処理部251-1~画像処理部251-3のそれぞれにリミット時間を設定する場合について説明する。なお、以下の説明においては、撮像装置2の動作モードが、被写体の静止画像の撮影を行う撮影モードであり、1フレーム分の画像の領域を、図6に示したように3つのブロックに分割した場合において、画像処理部251ごとにリミット時間を設定する場合の考え方の一例について説明する。
 図8および図9は、本発明の第2の実施形態のメモリアクセス装置においてリミット時間を設定する手順の一例を模式的に示した図である。図8には、それぞれの画像処理部251にリミット時間を設定する場合において、上述した手順1~手順4までを実行した際の時間の関係の一例を模式的に示している。また、図9には、それぞれの画像処理部251にリミット時間を設定する場合において、上述した手順5を実行した際の時間の関係の一例を模式的に示している。なお、図8および図9には、それぞれの画像処理部251がそれぞれのブロックに対する画像処理を行う画像処理期間を示しているが、ブロック1に対応するリミット時間をそれぞれの画像処理部251に設定する場合の時間の関係のみを示している。つまり、図8および図9には、画像処理部251-1の画像処理期間-1と、画像処理部251-2の画像処理期間-2と、画像処理部251-3の画像処理期間-3とのそれぞれの画像処理期間を示しているが、リミット時間をそれぞれの画像処理部251に設定する手順に関しては、ブロック1に対応するリミット時間を設定する場合のみを示している。また、図8および図9には、基準の時間として設定する絶対的な限界(リミット)の時間の一例として、表示処理部260が1フレーム分の画像処理画像データに応じた表示画像を表示装置40に表示させる期間(表示期間)を示している。
 最初に、図8を用いて、ブロック1に対応するリミット時間を設定する前の準備段階の一例について説明する。
 リミット時間を設定する準備段階では、まず、手順1において、一連の画像処理おける基準の時間を設定する。図8に示した一例では、表示処理部260が、1フレーム分の画像処理画像データに応じた表示画像を表示装置40に表示させるために、ブロック1の画像処理画像データをDRAM30から取得して(読み出して)表示処理を開始するタイミングが、最終段の画像処理部251-3がブロック1に対する画像処理を終了する必要がある絶対的な限界(リミット)の時間である。このため、手順1では、表示処理部260がブロック1の画像処理画像データのDRAM30からの取得(読み出し)を開始するタイミングを、基準の時間として設定している。
 続いて、手順2において、それぞれの画像処理部251が行う画像処理の仮リミット時間を設定する。図8に示した一例では、まず、最終段の画像処理部251-3が行うブロック1の画像処理における仮リミット時間として、手順1において基準の時間として設定した絶対的な限界(リミット)の時間を設定している。その後、画像処理部251-3の前段の画像処理部251-2が行うブロック1の画像処理における仮リミット時間として、画像処理部251-3の仮リミット時間から、画像処理部251-3における画像処理期間-3を減算した時間を設定している。その後、画像処理部251-2の前段、つまり初段の画像処理部251-1が行うブロック1の画像処理における仮リミット時間として、画像処理部251-2の仮リミット時間から、画像処理部251-2における画像処理期間-2を減算した時間を設定している。
 続いて、手順3において、初段の画像処理部251-1がブロック1の画像処理を開始する画像処理開始時間を求める。図8に示した一例では、画像処理部251-1が行うブロック1の画像処理における仮リミット時間から、画像処理部251-1における画像処理期間-1を減算した時間を、画像処理部251-1におけるブロック1の画像処理開始時間として求めている。
 続いて、手順4において、初段の画像処理部251-1がブロック1の画像処理を開始することができる画像処理開始可能時間を設定する。そして、設定した画像処理開始可能時間と、手順3において求めた画像処理開始時間との差分の時間を求める。図8に示した一例では、撮像画像取り込み部240が前処理画像データのDRAM30への記憶(書き込み)を終了した時間が、画像処理部251-1がブロック1の画像処理を開始することができる最も早い時間である。このため、手順4では、撮像画像取り込み部240が前処理画像データのDRAM30への記憶(書き込み)を終了した時間を、画像処理開始可能時間としている。そして、手順3において求めた画像処理開始時間との差分の時間を求める。この差分の時間は、上述したように、それぞれの画像処理部251がブロック1に対して一連の画像処理を行う際の合計の処理余裕時間に相当する。図8に示した一例では、手順4によって求めた差分の時間を、画像処理部251が行う画像処理の緊急度を判定するために優先度切り替え制御部2514が算出した処理余裕時間と区別して、振り分け前のブロック1の、「ブロック処理余裕時間」として示している。
 続いて、図9を用いて、ブロック1に対応するリミット時間を設定する段階の一例について説明する。
 リミット時間を設定段階では、まず、最終段の画像処理部251-3に設定した仮リミット時間を、画像処理部251-3が行うブロック1の画像処理のリミット時間として確定して設定する。図9に示した一例では、手順2において画像処理部251-3に設定した仮リミット時間、つまり、手順1において基準の時間として設定した絶対的な限界(リミット)の時間を、画像処理部251-3が行うブロック1の画像処理におけるリミット時間として確定して設定している。そして、図9に示した一例では、手順4によって求めた差分の時間(ブロック処理余裕時間)の内、時間=T3を画像処理部251-3に振り分けている。ここで、画像処理部251-3に振り分けたブロック処理余裕時間=T3は、画像処理部251-3によるブロック1の画像処理に要する処理時間に余裕を持たせるために仮に設定した時間である。
 その後、画像処理部251-3の前段の画像処理部251-2に設定した仮リミット時間から、画像処理部251-3に振り分けたブロック処理余裕時間を減算した時間を、画像処理部251-2が行うブロック1の画像処理のリミット時間として確定して設定する。図9に示した一例では、手順2において画像処理部251-2に設定した仮リミット時間から、画像処理部251-3に振り分けたブロック処理余裕時間=T3を減算した時間を、画像処理部251-2が行うブロック1の画像処理のリミット時間として確定して設定している。そして、図9に示した一例では、手順4によって求めたブロック処理余裕時間の内、時間=T2を画像処理部251-2に振り分けている。ここで、画像処理部251-2に振り分けたブロック処理余裕時間=T2は、画像処理部251-2によるブロック1の画像処理に要する処理時間に余裕を持たせるために仮に設定した時間である。なお、ここで設定された画像処理部251-2のリミット時間は、画像処理部251-3のリミット時間から、画像処理部251-3に振り分けたブロック処理余裕時間=T3を減算し、さらに画像処理部251-3における画像処理期間-3を減算した時間と同等である。
 その後、画像処理部251-2の前段の画像処理部251-1に設定した仮リミット時間から、画像処理部251-3および画像処理部251-2に振り分けたブロック処理余裕時間を減算した時間を、画像処理部251-1が行うブロック1の画像処理のリミット時間として確定して設定する。図9に示した一例では、手順2において画像処理部251-1に設定した仮リミット時間から、画像処理部251-3に振り分けたブロック処理余裕時間=T3と、画像処理部251-2に振り分けたブロック処理余裕時間=T2とを合わせた時間=T3+T2を減算した時間を、画像処理部251-1が行うブロック1の画像処理のリミット時間として確定して設定している。そして、図9に示した一例では、手順4によって求めたブロック処理余裕時間から、画像処理部251-3に振り分けたブロック処理余裕時間=T3と、画像処理部251-2に振り分けたブロック処理余裕時間=T2とを減算した時間=T1が、画像処理部251-1に振り分けられる。つまり、画像処理部251-1には、手順4によって求めたブロック処理余裕時間の内、画像処理部251-3と画像処理部251-2とのそれぞれに振り分けたブロック処理余裕時間の余りの時間が振り分けられる。ここで、画像処理部251-1に振り分けられたブロック処理余裕時間=T1は、画像処理部251-1によるブロック1の画像処理に要する処理時間に余裕を持たせるために仮に設定した時間となる。なお、ここで、設定された画像処理部251-1のリミット時間は、画像処理部251-2のリミット時間から、画像処理部251-2に振り分けたブロック処理余裕時間=T2を減算し、さらに画像処理部251-2における画像処理期間-2を減算した時間と同等である。
 このようにして、画像処理部251ごとに、ブロック1に対応するリミット時間を設定する。その後、上述したように、手順1~手順5の手順を、ブロック2に対して行って、ブロック2に対応するリミット時間を設定する。なお、ブロック2に対して行う手順4において設定する初段の画像処理部251-1の画像処理開始可能時間は、ブロック1に対する手順5で設定した画像処理部251-1のリミット時間となる。これは、画像処理部251-1がブロック1に対する画像処理を終了した時間が、画像処理部251-1がブロック2の画像処理を開始することができる最も早い時間であるからである。
 その後、同様に、手順1~手順5の手順を、ブロック3に対して行って、ブロック3に対応するリミット時間を設定する。
 なお、それぞれのブロックに対する手順5において画像処理部251のそれぞれに振り分けた差分の時間(ブロック処理余裕時間)は、上述したように、それぞれの画像処理部251によるそれぞれのブロックの画像処理に要する処理時間に余裕を持たせるために仮に設定した時間である。このため、それぞれの画像処理部251がそれぞれのブロックに対する画像処理を実際に行っているときに出力した画像処理進行状況信号PSに基づいて優先度切り替え制御部2514が算出した残りの処理時間と、手順1~手順5の手順を繰り返して設定したリミット時間と、現在の経過時間とに基づいて算出した処理余裕時間とは異なることもある。
 より具体的には、それぞれの画像処理部251におけるブロックに対する実際の画像処理が、処理時間に余裕を持たせるために仮に設定した時間(ブロック処理余裕時間)を消費することなく終了することもある。つまり、画像処理部251に仮に設定したブロック処理余裕時間が、実際に画像処理を行った結果、余ってしまうこともある。この場合、消費しなかった(余ってしまった)ブロック処理余裕時間を、後段の画像処理部251に再度振り分けて、後段の画像処理部251による同じブロックの画像処理に要する処理時間に、さらに余裕を持たせてもよい。なお、このとき消費しなかった(余ってしまった)ブロック処理余裕時間を後段の画像処理部251に振り分ける量(時間)は、後段の画像処理部251に均等な時間であってもよい。また、このとき消費しなかった(余ってしまった)ブロック処理余裕時間を後段の画像処理部251に振り分ける量(時間)は、後段の画像処理部251が行う画像処理に要する時間に基づいて決定した割合(パーセント)に応じた時間であってもよい。つまり、画像処理により多くの時間を要する画像処理部251に、消費しなかった(余ってしまった)ブロック処理余裕時間をより多くの振り分けてもよい。なお、消費しなかった(余ってしまった)ブロック処理余裕時間を後段の画像処理部251に再度振り分けたことによって、後段の画像処理部251においては、現在設定されているリミット時間を再度設定し直してもよい。
 一方、それぞれの画像処理部251におけるブロックに対する実際の画像処理が、処理時間に余裕を持たせるために仮に設定した時間(ブロック処理余裕時間)を消費しても終了しないこともある。つまり、画像処理部251に仮に設定したブロック処理余裕時間では、実際の画像処理に要する処理時間に余裕を持たせる時間としては足りないこともある。この場合、足りなかったブロック処理余裕時間を、画像処理に要する処理時間に余裕を持たせるための時間として後段の画像処理部251に割り当てたブロック処理余裕時間を消費して、画像処理を行うことになる。このとき、足りなかったブロック処理余裕時間は、すぐ後段の画像処理部251に割り当てたブロック処理余裕時間を消費してもよい。また、足りなかったブロック処理余裕時間は、後段の画像処理部251に割り当てたブロック処理余裕時間を均等に消費してもよい。また、足りなかったブロック処理余裕時間は、後段の画像処理部251が行う画像処理に要する時間に基づいて決定した割合(パーセント)に応じて消費してもよい。また、足りなかったブロック処理余裕時間は、最も多くのブロック処理余裕時間が割り当てられている後段の画像処理部251のブロック処理余裕時間を消費してもよい。なお、足りなかったブロック処理余裕時間を消費したことによって、振り分けられたブロック処理余裕時間が少なくなった後段の画像処理部251においては、設定されているリミット時間を再度設定し直すことは行わず、現在設定されているリミット時間までに画像処理を終了するようにする。
 これにより、優先度切り替え制御部2514は、前段の画像処理部251が余分に消費したブロック処理余裕時間を、後段の画像処理部251で回復するように、後段の画像処理部251が行う画像処理の緊急度を判定し、判定した結果に基づいた優先度切り替え信号SWを生成して、バスアービタ220に出力することになる。
 これにより、第2の実施形態のメモリアクセス装置でも、第1の実施形態のメモリアクセス装置と同様に、それぞれの画像処理部251によるそれぞれのブロックに対する画像処理の終了が遅くなって設定されているブロックのリミット時間を超えてしまうことがなくなる。このことにより、第2の実施形態のメモリアクセス装置でも、第1の実施形態のメモリアクセス装置と同様に、第2の実施形態のメモリアクセス装置を搭載したシステム(撮像装置2や画像処理装置21)における一連の画像処理に破綻をきたしてしまう要因を削減することができる。つまり、第2の実施形態のメモリアクセス装置でも、第1の実施形態のメモリアクセス装置と同様に、それぞれの画像処理部251におけるそれぞれのブロックの画像処理を、設定されたブロックのリミット時間までにより確実に終了することができ、第2の実施形態のメモリアクセス装置を搭載したシステム(撮像装置2や画像処理装置21)における一連の画像処理を、滞りなく行うことができる。
 なお、第2の実施形態でも、画像処理部251が行うブロックに対する画像処理に応じたリミット時間を設定するいくつかの考え方を説明した。しかし、第2の実施形態のメモリアクセス装置において、画像処理モジュール2502が行う画像処理に応じて設定するリミット時間の考え方は、上述したような考え方に限定されるものではない。つまり、第2の実施形態のメモリアクセス装置において設定するブロックのリミット時間の考え方は、上述したように、それぞれの画像処理部251が実行する一連の画像処理に待ちの状態が発生して停止してしまう前に、それぞれの画像処理部251が出力したアクセス要求がバスアービタ220によって受け付けられる(許可される)優先度を高くするように優先度切り替え制御部2514が制御するという考え方を基本としていれば、いかなる考え方であってもよい。
 第2の実施形態によれば、予め定めた順番で一連の処理において対応するデータ処理(画像処理)を順次行う複数のデータ処理部(画像処理部251-1~画像処理部251-3)を備え、それぞれのデータ処理部は、先に開始した一連の処理(ブロック1に対する画像処理)に含まれる対応するデータ処理(画像処理-1~画像処理-3)が終了した後、次の一連の処理(例えば、ブロック2に対する画像処理)に含まれる対応するデータ処理(画像処理-1~画像処理-3)を開始することによって、複数のデータ処理部が異なる一連の処理(異なるブロックの画像処理)に含まれる対応するデータ処理(画像処理-1~画像処理-3)を並列に行い、優先度切り替え制御部(優先度切り替え制御部2514)は、それぞれのデータ処理部から通知されたデータ処理(画像処理-1~画像処理-3)の進行状況(出力された画像処理進行状況信号PS)に基づいて、一連の処理の単位(一連の画像処理の単位)でそれぞれのデータ処理部によるデータ処理(画像処理)の緊急度を判定し、複数のデータ処理部におけるデータ処理(画像処理)の緊急度が高いと判定した場合には、先に開始した一連の処理(例えば、ブロック1に対する画像処理)に含まれる対応するデータ処理(画像処理)を行うデータ処理部(画像処理部251-1~画像処理部251-3のいずれか)の優先度を高くすることを通知する優先度切り替え信号(優先度切り替え信号SW)を出力する、メモリアクセス装置(メモリアクセス装置)が構成される。
 また、第2の実施形態によれば、予め定めた順番で一連の処理において対応するデータ処理(画像処理)を順次行う複数のデータ処理部(画像処理部251-1~画像処理部251-3)を備え、それぞれのデータ処理部は、先に開始した一連の処理(ブロック1に対する画像処理)に含まれる対応するデータ処理(画像処理-1~画像処理-3)が終了した後、次の一連の処理(例えば、ブロック2に対する画像処理)に含まれる対応するデータ処理(画像処理-1~画像処理-3)を開始することによって、複数のデータ処理部が異なる一連の処理(異なるブロックの画像処理)に含まれる対応するデータ処理(画像処理-1~画像処理-3)を並列に行い、優先度切り替え制御部(優先度切り替え制御部2514)は、それぞれのデータ処理部から通知されたデータ処理(画像処理-1~画像処理-3)の進行状況(出力された画像処理進行状況信号PS)に基づいて算出したデータ処理部ごとの残りの処理時間と、それぞれの一連の処理(ブロックの画像処理)においてデータ処理部ごとに設定された限界の時間(リミット時間)と、データ処理部ごとの処理時間(現在の経過時間)とに基づいて、処理余裕時間をデータ処理部ごとに算出し、データ処理部ごとの処理余裕時間と、緊急度閾値時間とに基づいて、データ処理(画像処理-1~画像処理-3)の緊急度をデータ処理部ごとに判定し、それぞれの一連の処理(ブロックの画像処理)において最後に対応するデータ処理(画像処理-3)を行うデータ処理部(画像処理部251-3)によるデータ処理(画像処理-3)の完了が、設定されたリミット時間を超えないように、優先度を高くすることを通知する優先度切り替え信号(優先度切り替え信号SW)を出力する、メモリアクセス装置(メモリアクセス装置)が構成される。
 上述したように、第2の実施形態のメモリアクセス装置では、それぞれの画像処理部250(画像処理部251に備えた画像処理モジュール2502)が、画像処理進行状況信号PSによって、実行している画像処理の進行状況を、優先度切り替え制御部2514に通知する。そして、第2の実施形態のメモリアクセス装置では、優先度切り替え制御部2514が、画像処理部251ごとに、画像処理部251から出力された画像処理進行状況信号PSを用いて残りの処理時間を算出し、設定されたリミット時間と、現在の経過時間と、算出した残りの処理時間を用いて処理余裕時間を算出する。そして、第2の実施形態のメモリアクセス装置では、優先度切り替え制御部2514が、算出した処理余裕時間と緊急度閾値時間とを比較することによって、画像処理部251ごとに、画像処理部251に備えた画像処理モジュール2502が行う画像処理の緊急度を判定し、早いタイミングで、画像処理部251が行う画像処理の緊急度を通知するための優先度切り替え信号SWを、バスアービタ220に出力する。
 これにより、第2の実施形態のメモリアクセス装置では、優先度切り替え制御部2514が、画像処理部251の優先度の切り替え(変更)を、バスアービタ220に要求することができる。そして、第2の実施形態のメモリアクセス装置では、バスアービタ220が、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する際に、優先度切り替え制御部2514から出力された優先度切り替え信号SWに応じていずれかの画像処理部251の優先度を切り替えた状態で、DRAM30へのアクセス要求を受け付ける(許可する)処理ブロックを決定する。つまり、第2の実施形態のメモリアクセス装置では、それぞれの画像処理部251によるそれぞれのブロックに対する一連の画像処理の終了が遅くなって設定されているリミット時間を超えてしまう前に、いずれかの画像処理部251からのDRAM30へのアクセス要求を受け付ける(許可する)。
 これにより、第2の実施形態のメモリアクセス装置を搭載したシステム(撮像装置2や画像処理装置21)では、分割したブロックに対する一連の画像処理に破綻をきたしてしまう要因を削減して、それぞれの画像処理部251におけるそれぞれのブロックに対する画像処理を、設定されたリミット時間までにより確実に終了することができる。このことにより、第2の実施形態のメモリアクセス装置を搭載したシステム(撮像装置2や画像処理装置21)では、システムとしての動作や機能に破綻をきたすことがなく、実現する一連の画像処理を、滞りなく円滑に行うことができる。
 上記に述べたように、本発明の各実施形態によれば、本発明のメモリアクセス装置を構成する画像処理装置に備えた画像処理部内の画像処理モジュールが、画像データに対して施している画像処理の進行状況を通知するための画像処理進行状況信号を出力する。そして、本発明の各実施形態では、本発明のメモリアクセス装置を構成する優先度切り替え制御部が、画像処理進行状況信号PSに基づいて、本発明のメモリアクセス装置を構成する画像処理装置に備えた画像処理部内の画像処理モジュールが画像処理を行う際の残りの処理時間を算出する。そして、本発明の各実施形態では、本発明のメモリアクセス装置を構成する優先度切り替え制御部が、算出した残りの処理時間と、画像処理モジュールが画像処理を完了する必要がある時間として規定された画像処理の限界(リミット)の時間と、現在の経過時間とに基づいて、画像処理モジュールが行う画像処理の緊急度を判定する。そして、本発明の各実施形態では、本発明のメモリアクセス装置を構成する優先度切り替え制御部が、判定した結果に基づいて、画像処理モジュールが行う画像処理の緊急度を通知するための優先度切り替え信号を生成し、本発明のメモリアクセス装置を構成するバスアービタに出力する。そして、本発明の各実施形態では、本発明のメモリアクセス装置を構成するバスアービタが、共通のデータバスに接続されたそれぞれの処理ブロックからのDRAMへのアクセス要求を調停する際に、優先度切り替え制御部から出力された優先度切り替え信号に応じて、本発明のメモリアクセス装置を構成する画像処理装置に備えた画像処理部の優先度を高くして、画像処理部からのアクセス要求を優先して受け付ける(許可する)。これにより、本発明の各実施形態では、本発明のメモリアクセス装置を構成する画像処理装置に備えた画像処理部が実行する画像処理の終了が遅くなって、規定された限界(リミット)の時間を超えてしまうことがなくなる。つまり、本発明の各実施形態では、本発明のメモリアクセス装置を構成する画像処理装置に備えた画像処理部が実行する画像処理に待ちの状態が発生して停止することなく、規定された限界(リミット)の時間までに、画像処理を完了することができる。
 このことにより、本発明の各実施形態では、本発明のメモリアクセス装置を搭載したシステムにおける一連の画像処理に破綻をきたしてしまう要因を削減することができる。つまり、本発明の各実施形態では、本発明のメモリアクセス装置を搭載したシステムにおいて、システムとしての動作や機能に破綻をきたす要因となり得る、画像処理部(画像処理モジュール)の動作が停止することなく、画像データに対する一連の画像処理を、滞りなく円滑に行うことができる。
 なお、本発明の各実施形態では、本発明のメモリアクセス装置が、撮像装置に搭載される画像処理装置に備えられる構成について説明した。しかし、DRAMとの間でデータの転送を行うメモリアクセス装置を備えるシステムは、本発明の各実施形態において示した画像処理装置や撮像装置の他にも種々のシステムが考えられる。例えば、音声データに対して予め定めた処理(音声処理)を行うシステムなど、種々のシステムが考えられる。従って、本発明の考え方に基づいたメモリアクセス装置を適用することができる処理装置やシステムは、何ら限定されるものではない。すなわち、DRAMとの間で転送したデータに対して予め定めた処理を行う処理装置やシステムであれば、いかなる処理装置やシステムであっても、本発明のメモリアクセス装置における考え方を同様に適用することができる。そして、本発明のメモリアクセス装置と同様の効果を得ることができる。
 以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更をすることができる。
 また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
 上記各実施形態によれば、複数の処理ブロックがDRAMを共有する場合に、優先度が低い処理ブロックであっても、予め規定された処理時間内に処理を終了して、システムに破綻をきたす要因を削減することができる。
 1,2 撮像装置(撮像装置)
 10 イメージセンサ(撮像装置)
 20,21 画像処理装置(撮像装置,画像処理装置)
 210 データバス(撮像装置,画像処理装置)
 220 バスアービタ(画像処理装置,メモリアクセス装置,バスアービタ)
 230 DRAMインターフェース部(画像処理装置,メモリアクセス装置,バスアービタ)
 240 撮像画像取り込み部(撮像装置,画像処理装置)
 250,251,251-1,251-2,251-3 画像処理部(画像処理装置,メモリアクセス装置,データ処理部,優先度切り替え制御部)
 2501 バスマスタ(画像処理装置,メモリアクセス装置,データ処理部)
 2501B 面バッファ(画像処理装置,メモリアクセス装置,データ処理部)
 2502,2502-1,2502-2,2502-3 画像処理モジュール(メモリアクセス装置,データ処理部)
 2503 バスマスタ(画像処理装置,メモリアクセス装置,データ処理部)
 2503B 面バッファ(画像処理装置,メモリアクセス装置,データ処理部)
 2504,2514 優先度切り替え制御部(画像処理装置,メモリアクセス装置,優先度切り替え制御部)
 260 表示処理部(撮像装置,画像処理装置)
 30 DRAM(メモリ,撮像装置)
 40 表示装置(撮像装置)

Claims (11)

  1.  データバスに接続されたメモリへのアクセスを要求するアクセス要求を出力し、アクセスした前記メモリのデータに対してデータ処理を行うと共に、前記データ処理の進行状況を通知するデータ処理部と、
     前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部による前記データ処理の緊急度を判定し、前記データ処理部の優先度の切り替えを通知する優先度切り替え信号を出力する優先度切り替え制御部と、
     前記データバスに接続され、前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号に応じて、前記データ処理部から出力された前記アクセス要求の優先度を変更して調停し、前記調停によって受け付けたアクセス要求に応じて前記メモリへのアクセスを制御するバスアービタと、
     を備える、
     メモリアクセス装置。
  2.  前記優先度切り替え制御部は、
     前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部が行う前記データ処理における残りの処理時間を算出し、
     前記残りの処理時間と、前記データ処理部が前記データ処理を完了する必要がある時間として規定された限界の時間と、前記データ処理部が前記データ処理を開始してから現在までの処理時間とに基づいて、前記データ処理部が前記データ処理を行う際の処理余裕時間を算出し、
     前記処理余裕時間と、予め定めた緊急度閾値時間とに基づいて、前記データ処理部による前記データ処理の緊急度を判定する、
     請求項1に記載のメモリアクセス装置。
  3.  前記優先度切り替え制御部は、
     前記処理余裕時間が、予め定めた緊急度閾値時間よりも短い場合に前記データ処理部による前記データ処理の緊急度は高いと判定し、前記データ処理部の優先度を高くすることを通知する前記優先度切り替え信号を出力し、
     前記処理余裕時間が、前記緊急度閾値時間よりも短くない場合に前記データ処理部による前記データ処理の緊急度は低いと判定し、前記データ処理部の優先度を低いままとすることを通知する前記優先度切り替え信号を出力し、
     前記バスアービタは、
     前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号によって優先度を高くすることが通知された前記データ処理部から出力された前記アクセス要求の優先度を高くして調停する、
     請求項2に記載のメモリアクセス装置。
  4.  前記データ処理部は、
     前記データ処理の進行状況として、前記データ処理が完了した割合を表す処理完了割合を通知し、
     前記優先度切り替え制御部は、
     前記データ処理部における前記データ処理の速度および処理の量と、通知された前記処理完了割合と、に基づいて前記残りの処理時間を算出する、
     請求項3に記載のメモリアクセス装置。
  5.  前記データ処理部は、
     前記データ処理を複数回に分けて行う場合において、
     前記データ処理の進行状況として、前記データ処理が完了した回数を表す処理完了数を通知し、
     前記優先度切り替え制御部は、
     前記データ処理部が分けて行う前記データ処理の回数、および通知された前記処理完了数とから求められる残りの処理回数と、分けて行う1回の前記データ処理における処理の量と、前記データ処理部における前記データ処理の速度と、に基づいて前記残りの処理時間を算出する、
     請求項3に記載のメモリアクセス装置。
  6.  前記データ処理部は、
     前記データ処理を処理量が異なる複数回に分けて行う場合において、
     前記データ処理の進行状況として、現在までに前記データ処理が終了した処理の量を表す処理完了量を通知し、
     前記優先度切り替え制御部は、
     前記データ処理部が行う前記データ処理における全体の処理の量、および通知された処理完了量とから求められる残りの処理の量と、前記データ処理部における前記データ処理の速度と、に基づいて前記残りの処理時間を算出する、
     請求項3に記載のメモリアクセス装置。
  7.  前記優先度切り替え制御部は、
     前記残りの処理時間および前記限界の時間のいずれか一方または両方に、時間に対する割合で表される予め定めた時間係数を乗算した後に、前記処理余裕時間を算出する、
     請求項2から請求項6のいずれか1項に記載のメモリアクセス装置。
  8.  予め定めた順番で一連の処理において対応する前記データ処理を順次行う複数の前記データ処理部を備え、
     それぞれの前記データ処理部は、
     先に開始した前記一連の処理に含まれる対応する前記データ処理が終了した後、次の前記一連の処理に含まれる対応する前記データ処理を開始することによって、複数の前記データ処理部が異なる前記一連の処理に含まれる対応する前記データ処理を並列に行い、
     前記優先度切り替え制御部は、
     それぞれの前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記一連の処理の単位でそれぞれの前記データ処理部による前記データ処理の緊急度を判定し、複数の前記データ処理部における前記データ処理の緊急度が高いと判定した場合には、先に開始した前記一連の処理に含まれる対応する前記データ処理を行う前記データ処理部の優先度を高くすることを通知する前記優先度切り替え信号を出力する、
     請求項3に記載のメモリアクセス装置。
  9.  予め定めた順番で一連の処理において対応する前記データ処理を順次行う複数の前記データ処理部を備え、
     それぞれの前記データ処理部は、
     先に開始した前記一連の処理に含まれる対応する前記データ処理が終了した後、次の前記一連の処理に含まれる対応する前記データ処理を開始することによって、複数の前記データ処理部が異なる前記一連の処理に含まれる対応する前記データ処理を並列に行い、
     前記優先度切り替え制御部は、
     それぞれの前記データ処理部から通知された前記データ処理の進行状況に基づいて算出した前記データ処理部ごとの前記残りの処理時間と、それぞれの前記一連の処理において前記データ処理部ごとに設定された前記限界の時間と、前記データ処理部ごとの前記処理時間とに基づいて、前記処理余裕時間を前記データ処理部ごとに算出し、
     前記データ処理部ごとの前記処理余裕時間と、前記緊急度閾値時間とに基づいて、前記データ処理の緊急度を前記データ処理部ごとに判定し、
     それぞれの一連の処理において最後に対応する前記データ処理を行う前記データ処理部による前記データ処理の完了が、設定された前記限界の時間を超えないように、優先度を高くすることを通知する前記優先度切り替え信号を出力する、
     請求項3に記載のメモリアクセス装置。
  10.  データバスに接続されたメモリへのアクセスを要求するアクセス要求を出力し、アクセスした前記メモリのデータに対してデータ処理を行うと共に、前記データ処理の進行状況を通知するデータ処理部と、
     前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部による前記データ処理の緊急度を判定し、前記データ処理部の優先度の切り替えを通知する優先度切り替え信号を出力する優先度切り替え制御部と、
     前記データバスに接続され、前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号に応じて、前記データ処理部から出力された前記アクセス要求の優先度を変更して調停し、前記調停によって受け付けたアクセス要求に応じて前記メモリへのアクセスを制御するバスアービタと、
     を具備したメモリアクセス装置、
     を備える、
     画像処理装置。
  11.  データバスに接続されたメモリへのアクセスを要求するアクセス要求を出力し、アクセスした前記メモリのデータに対してデータ処理を行うと共に、前記データ処理の進行状況を通知するデータ処理部と、
     前記データ処理部から通知された前記データ処理の進行状況に基づいて、前記データ処理部による前記データ処理の緊急度を判定し、前記データ処理部の優先度の切り替えを通知する優先度切り替え信号を出力する優先度切り替え制御部と、
     前記データバスに接続され、前記メモリへのアクセス要求を調停する際に、前記優先度切り替え信号に応じて、前記データ処理部から出力された前記アクセス要求の優先度を変更して調停し、前記調停によって受け付けたアクセス要求に応じて前記メモリへのアクセスを制御するバスアービタと、
     を具備したメモリアクセス装置を備える画像処理装置、
     を備える、
     撮像装置。
PCT/JP2017/031110 2017-08-30 2017-08-30 メモリアクセス装置、画像処理装置、および撮像装置 WO2019043823A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2017/031110 WO2019043823A1 (ja) 2017-08-30 2017-08-30 メモリアクセス装置、画像処理装置、および撮像装置
CN201780093760.3A CN111033476B (zh) 2017-08-30 2017-08-30 存储器访问装置、图像处理装置和摄像装置
US16/796,071 US11314664B2 (en) 2017-08-30 2020-02-20 Memory access device, image processing device and imaging device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/031110 WO2019043823A1 (ja) 2017-08-30 2017-08-30 メモリアクセス装置、画像処理装置、および撮像装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/796,071 Continuation US11314664B2 (en) 2017-08-30 2020-02-20 Memory access device, image processing device and imaging device

Publications (1)

Publication Number Publication Date
WO2019043823A1 true WO2019043823A1 (ja) 2019-03-07

Family

ID=65527182

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/031110 WO2019043823A1 (ja) 2017-08-30 2017-08-30 メモリアクセス装置、画像処理装置、および撮像装置

Country Status (3)

Country Link
US (1) US11314664B2 (ja)
CN (1) CN111033476B (ja)
WO (1) WO2019043823A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113452591B (zh) * 2021-06-21 2023-04-07 合安科技技术有限公司 基于can总线连续数据帧的回路控制方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280253A (ja) * 2006-04-11 2007-10-25 Canon Inc 情報処理装置及び情報処理方法
JP2012199788A (ja) * 2011-03-22 2012-10-18 Renesas Electronics Corp 情報処理システム、調停方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286083B1 (en) * 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
JP2000148668A (ja) 1998-11-11 2000-05-30 Nec Niigata Ltd バス調停システム
US6850995B1 (en) * 1999-01-25 2005-02-01 Canon Kabushiki Kaisha Control unit selectively connected with a first bus and a second bus for controlling a displaying process in parallel with a scanning process
JP4162863B2 (ja) * 2001-03-30 2008-10-08 株式会社ルネサステクノロジ マイクロコンピュータ
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US7793025B2 (en) * 2008-03-28 2010-09-07 Freescale Semiconductor, Inc. Hardware managed context sensitive interrupt priority level control
JP5808495B2 (ja) * 2012-08-22 2015-11-10 三菱電機株式会社 キャッシュメモリコントローラ及びキャッシュメモリコントロール方法
JP6303672B2 (ja) * 2014-03-20 2018-04-04 セイコーエプソン株式会社 データ転送制御装置、データ転送制御装置の制御方法、電子機器、及び、表示装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280253A (ja) * 2006-04-11 2007-10-25 Canon Inc 情報処理装置及び情報処理方法
JP2012199788A (ja) * 2011-03-22 2012-10-18 Renesas Electronics Corp 情報処理システム、調停方法

Also Published As

Publication number Publication date
US11314664B2 (en) 2022-04-26
CN111033476A (zh) 2020-04-17
US20200192830A1 (en) 2020-06-18
CN111033476B (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
JP3761061B2 (ja) データ処理システムおよびデータ処理方法
US20190324646A1 (en) Memory access device, image-processing device, and imaging device
JP6676162B2 (ja) メモリアクセス制御装置、画像処理装置、および撮像装置
JP6210743B2 (ja) データ処理装置およびデータ転送制御装置
JP2007088806A (ja) 画像信号処理装置及び画像信号処理方法
US10719458B2 (en) Data transfer device, image processing device, and imaging device
US9363440B2 (en) Imaging device and imaging method that sets a phase difference between first and second synchronization signals
US11314664B2 (en) Memory access device, image processing device and imaging device
JP2010097311A (ja) 半導体装置及び半導体集積回路
JP6539509B2 (ja) データ転送装置およびデータ転送方法
US20100135644A1 (en) Photographing apparatus and method of controlling the same
JP5959194B2 (ja) 撮像装置
WO2019043822A1 (ja) メモリアクセス装置、画像処理装置、および撮像装置
WO2012111825A1 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2008172410A (ja) 撮像装置、画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
US9547330B2 (en) Processor and control method for processor
JPWO2017187508A1 (ja) 表示処理装置および撮像装置
US20220174233A1 (en) Imaging element, imaging apparatus, operation method of imaging element, and program
JP7332376B2 (ja) 撮像装置およびその制御方法ならびにプログラム
US20140009478A1 (en) Image processing apparatus and control method
JP6564625B2 (ja) データ転送装置およびデータ転送方法
JP2004312072A (ja) 画像処理装置及びカメラ、並びに画像処理方法
JP4640434B2 (ja) デジタルカメラ
JP2017157883A (ja) 画像処理装置
JP3494436B2 (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: 17923640

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17923640

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP