WO2000055810A1 - Capteur de vision ultra-rapide - Google Patents

Capteur de vision ultra-rapide Download PDF

Info

Publication number
WO2000055810A1
WO2000055810A1 PCT/JP2000/001471 JP0001471W WO0055810A1 WO 2000055810 A1 WO2000055810 A1 WO 2000055810A1 JP 0001471 W JP0001471 W JP 0001471W WO 0055810 A1 WO0055810 A1 WO 0055810A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
arithmetic
processing
row
transfer
Prior art date
Application number
PCT/JP2000/001471
Other languages
English (en)
French (fr)
Inventor
Masatoshi Ishikawa
Haruyoshi Toyoda
Original Assignee
Hamamatsu Photonics K. K.
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 Hamamatsu Photonics K. K. filed Critical Hamamatsu Photonics K. K.
Priority to EP00908001A priority Critical patent/EP1164544B1/en
Priority to US09/936,267 priority patent/US6970196B1/en
Priority to JP2000605967A priority patent/JP4489305B2/ja
Priority to AU29416/00A priority patent/AU2941600A/en
Publication of WO2000055810A1 publication Critical patent/WO2000055810A1/ja
Priority to US11/205,001 priority patent/US7532244B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/76Addressed sensors, e.g. MOS or CMOS sensors
    • H04N25/78Readout circuits for addressed sensors, e.g. output amplifiers or A/D converters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/71Charge-coupled device [CCD] sensors; Charge-transfer registers specially adapted for CCD sensors
    • H04N25/75Circuitry for providing, modifying or processing image signals from the pixel array

Definitions

  • the present invention relates to a high-speed vision sensor device having an image processing function.
  • high-speed image processing is required.
  • the actuator can be controlled in milliseconds.
  • the image processing speed is limited to the video frame rate, so it can only operate at a low speed in accordance with the image processing speed, and the performance of the mouth pot has not been fully utilized.
  • some high-speed CCD cameras can capture an image in about 1 millisecond, but these are mechanisms that store the captured image in memory and read it out later for processing. Although it can be used for applications such as image analysis, it has almost no real-time characteristics and could not be used for applications such as mouth pot control.
  • the present invention provides a high-speed visual sensor with a large number of pixels capable of processing basic image operations at high speed with a simple circuit configuration. It is an object to provide a satellite device.
  • a high-speed vision sensor device includes a light-receiving element array in which a plurality of light-receiving elements are two-dimensionally arranged in a plurality of rows and columns, and a plurality of AZD converters.
  • the AZD converters are arranged in a one-dimensional manner in a one-to-one correspondence with the plurality of rows of the light receiving element array, and each AZD converter sequentially reads output signals from the light receiving elements in the corresponding one row.
  • An AZD converter array that performs analog-to-digital conversion of the data and a plurality of arithmetic elements are two-dimensionally arranged in a plurality of rows and columns corresponding to the plurality of light receiving elements of the light receiving element array.
  • a parallel processing mechanism composed of a parallel processing element array in which each processing element performs a predetermined operation on the digital signal transferred from the AZD converter array; and a plurality of data lines for column direction data transfer are the parallel processing mechanism. Each row has a one-to-one correspondence.
  • a data transfer data line is provided in one-to-one correspondence with each row of the parallel processing mechanism, and each row-direction data transfer data line connects a plurality of arithmetic elements existing in a corresponding row to the corresponding row.
  • a row direction data transfer bus for performing data transfer with each arithmetic element in a row, the light receiving element array, the A / D converter array, the parallel processing mechanism, the column direction data transfer bus, and A control circuit for controlling the row direction data transfer bus.
  • the arithmetic elements are provided in one-to-one correspondence with the light receiving elements, image processing operations can be performed at high speed by parallel processing.
  • Providing an AZD converter for each row also has the advantage of reducing the number of transmission paths.
  • a dedicated data bus is provided for each processing element in the row and column directions. Because of this arrangement, various image processing operations can be performed, and therefore, flexible processing capability can be achieved while maintaining an architecture suitable for semiconductor integration.
  • the control circuit causes each column-directional data transfer data line to transfer the position information of the corresponding column to the arithmetic element of the corresponding column, and to respond to each row-direction data transfer data line.
  • the position information of the row to be transferred is transferred to the arithmetic element of the corresponding row, and a predetermined center of gravity operation is performed on the digital signal for each arithmetic element based on the position information of the corresponding row and column transferred overnight.
  • dedicated data buses are arranged in the row and column directions, so that the position information required for the center-of-gravity calculation, which is the basic calculation of image processing, can be efficiently transferred with a small data transfer system. Can be.
  • the control circuit transmits predetermined arithmetic control data to each of the data line for data transfer for each column direction and the data line for each data transfer for each row direction, thereby providing a predetermined arithmetic element with data.
  • a predetermined element operation control unit for performing a predetermined operation on the digital signal. In this case, it is possible to cause each arithmetic element to execute different arithmetic processing.
  • control circuit transmits a predetermined arithmetic control data to each of the column-direction data transfer data lines and each of the row-direction data transfer data lines, so that the arithmetic elements of the corresponding rows and columns are transferred.
  • a data transfer control unit for transferring the operation result data of the above to the control circuit.
  • the operation result of a specific operation element can be transferred to the control circuit.
  • a parallel processing mechanism is further provided, and a plurality of transfer shift registers are arranged in a one-to-one correspondence with a plurality of A / D converters and a plurality of operation element rows.
  • a transfer register array for sequentially transferring digital signals output from the AZD converter and corresponding to the output signals of the light receiving elements belonging to the corresponding light receiving element row to predetermined arithmetic elements belonging to the corresponding row. Is preferred.
  • FIG. 1 is a block diagram of a high-speed vision sensor device according to an embodiment of the present invention.
  • FIG. 2 is a schematic configuration diagram of a high-speed vision sensor device according to the embodiment.
  • FIG. 3 is a configuration block diagram of a control circuit included in the high-speed vision sensor device according to the embodiment.
  • FIG. 4 is a circuit configuration diagram of a light receiving element array and an A / D converter array included in the high-speed vision sensor device according to the embodiment.
  • FIG. 5 is a detailed circuit configuration diagram of an integration circuit provided in the AZD converter array of FIG.
  • FIG. 6 is a block diagram of an arithmetic element and a transfer shift register included in the high-speed vision sensor device according to the embodiment.
  • FIG. 7 (A) is a circuit diagram of a register matrix included in the arithmetic element of FIG.
  • FIG. 7 (B) is a control timing chart of the arithmetic element in FIG.
  • FIG. 8 is an operation flowchart of the high-speed vision sensor device according to the embodiment.
  • FIG. 9 is an operation flow chart of the center-of-gravity calculation processing step as an example of the step S110 in FIG.
  • FIG. 10 (A) is an operation flowchart of the image intensity sum calculation processing step of the centroid calculation processing step of FIG.
  • FIG. 10 (B) is an operation flow chart of the sum calculation processing step of the image intensity sum calculation processing step of FIG. 10 (A).
  • FIG. 10 (C) is an operation flowchart of a pixel selection processing step in the image intensity sum calculation processing step of FIG. 10 (A).
  • FIG. 11 is an operation flowchart of an X-direction coordinate calculation processing step of the center-of-gravity calculation processing step of FIG.
  • FIG. 12 is an operation flowchart of the y-direction coordinate calculation processing step of the center-of-gravity calculation processing step of FIG.
  • FIG. 13 is an operation flowchart of a desired position calculation processing step as an example of the step S110 in FIG.
  • FIG. 14 is an operation flowchart of an operation-extraction process as an example of the process S110 in FIG.
  • FIG. 15 is an operation flowchart of an image search processing step as an example of step S110 in FIG.
  • FIG. 16 is an operation flowchart of an edge extraction processing step as an example of a pre-process performed in step S110 in FIG.
  • FIG. 17 is a block diagram of a modified example of the high-speed vision sensor device according to the present invention.
  • FIG. 18 is a block diagram of another modification of the high-speed vision sensor device according to the present invention.
  • a high-speed vision sensor device according to an embodiment of the present invention will be described with reference to FIGS. 1 to 16.
  • FIG. 1 is a block diagram of a high-speed vision sensor device 10 according to the present embodiment.
  • FIG. 2 shows a configuration example of the sensor device 10.
  • the high-speed vision sensor device 10 of the present embodiment includes a light-receiving element array 11, an AZD converter array 13, a parallel processing mechanism 14, a control circuit 15, a X-direction data bus 17 and a y-direction data It is composed of an overnight bus 18, an X-direction data buffer 19 and a y-direction data buffer 20, an instruction Z command bus 16, and an output bus 15 55 (FIG. 6) to be described later.
  • N1 ⁇ N2 light receiving elements 120 are arranged two-dimensionally (ie, Nl columns ⁇ N2 rows).
  • the light-receiving element array 11 has N horizontal light-receiving sections 110 each composed of N 1 light-receiving elements 120 arranged in the horizontal direction (X direction). They are arranged in a perpendicular direction (y direction).
  • AZD converter array 13 has N 2 AZD converters 2 1 0 in one dimension (Vertical direction (y direction)).
  • the N 2 A / D converters 210 correspond one-to-one to the N 2 horizontal light receiving units 110 in the light receiving element array 11, and the corresponding horizontal light receiving units 1 10 This is for sequentially converting the electric charge output from the light receiving element 120 belonging to the above into a voltage signal and further performing AZD conversion.
  • N 1 x N 2 processing elements (PEs) 400 are two-dimensionally arranged in a one-to-one correspondence with the light receiving elements 120. That is, there is provided an arithmetic element array 40 arranged and arranged in (N 1 column ⁇ N 2 rows).
  • the operation element array 40 is provided with N2 transfer shift register lines (image transfer shift register lines) 420 corresponding to the N2 operation element rows in a one-to-one correspondence. ing.
  • Each transfer shift register line 420 is connected in series with N 1 transfer shift register (image transfer shift register) 4 10 which is equal to the number (N 1) of arithmetic elements 400 in the corresponding row. It is configured.
  • Each transfer shift register 410 is connected to a corresponding arithmetic element 400 in a corresponding row.
  • the control circuit 15 is for transmitting a command signal, data, and the like to the entire circuit of the sensor device 10 for control.
  • the X-direction data bus 17 is connected to the arithmetic element 400 of each column and transfers data to the arithmetic element 400 of each column.
  • the y-direction data bus 18 is connected to the arithmetic element 400 for each row and transfers data to the arithmetic element 400 for each row.
  • the X-direction data buffer 19 is connected to the X-direction data bus 17 and the control circuit 15, and the y-direction data buffer 20 is connected to the y-direction data bus 18 and the control circuit 15. It is connected.
  • the X-direction data bus 17 is connected to the control circuit 15 via the X-direction data buffer 19, and the y-direction data bus 18 is connected to the control circuit via the y-direction data buffer 20.
  • the command bus 16 is for sending a signal from the control circuit 15 to the light receiving element array 11, the A / D converter array 13 and the parallel processing mechanism 14.
  • the control circuit 15 is further connected to all the processing elements 400 via a single output bus 155. Since the present sensor device 10 has the above configuration, the parallel processing mechanism 14 and the light receiving element array 11 can be connected by N 2 data lines. Therefore, as shown in FIG.
  • the light-receiving element array 11 and the parallel processing mechanism 14 are formed on separate substrates so that the operation of each can be confirmed. Is possible. In addition, by forming the light receiving element array 11 and the parallel processing mechanism 14 on separate substrates as described above, both can be highly integrated, and the respective devices can be integrated. Stable production is also possible because processing steps that match the characteristics can be adopted.
  • the data buses 17 and 18 and the data buffers 19 and 20 in the X direction and the y direction may be formed on the same substrate as the parallel processing mechanism 14 as shown in FIG. May be formed on the same substrate. When integrated as one, it is easy to increase the data transfer speed between the data buffers 19 and 20 and the arithmetic element 400, which is particularly preferable. In addition, since all the components of the sensor device 10 can be formed by a CMOS process, all the components can be integrated into one chip, which can lead to a significant cost reduction. .
  • FIG. 3 is a configuration block diagram of the control circuit 15.
  • the control circuit 15 is composed of a CPU 150, a memory 151, an image capture control unit 300 (Fig. 4), and an external input / output interface 152 connected by a bus 153. Have been.
  • Memory 15 1 is executed by CPU 150
  • a visual sensor processing program (FIG. 8) described later and an image processing step (S110 in FIG. 8) in the visual sensor processing program for controlling the image parallel processing of the parallel processing mechanism 14
  • Programs (for example, FIGS. 9 to 12, FIG. 13, FIG. 14, FIG. 15, and FIG. 16) are stored. These visual sensor processing programs and image processing programs are written from an external device (for example, an external computer) 1 000 into the memory 15 1 via the input / output interface 152.
  • the bus 153 includes a command bus and a data bus (not shown), and is connected to the instruction / command bus 16 and the data buffers 19 and 20 in FIG. 1 and the output bus 155 in FIG. It is connected.
  • the CPU 150 controls the light-receiving element array 11 and the AZD converter array 13 via the image capture control unit 300, based on the visual sensor processing program (FIG. 8) in the memory 151, and , And controls the parallel processing mechanism 14. More specifically, the CPU 150 controls the image capture control unit 300 (FIG. 4) (S 101 in FIG. 8), and the light receiving element array 11 and the A / A
  • the CPU 150 also controls the data transfer by the transfer shift register 410 in the parallel processing mechanism 14 and the calculation by the arithmetic element 400 (S102 to S104, S104 in FIG. 8). 1 1 0) Then, S ⁇ MD (single instruction ana multi data stream) type parallel operation processing is performed. The CPU 150 further performs necessary operations during the execution of the parallel operation processing of the parallel processing mechanism 14, and performs necessary operations and determination operations based on the processing results by the parallel processing mechanism 14. The CPU 150 further communicates with an external computer, which is an external device, and controls another external device, which is an external device, via an input / output interface. Or For example, the CPU 150 outputs the obtained calculation result to an external computer, or outputs the calculation result based on the calculation result. And control the club actuyue.
  • FIG. 4 the configurations of the light receiving element array 11 and the AZD converter array 13 as an image capturing unit will be described in detail with reference to FIGS. 4 and 5.
  • FIG. 4 the configurations of the light receiving element array 11 and the AZD converter array 13 as an image capturing unit will be described in detail with reference to FIGS. 4 and 5.
  • the light-receiving element array 11 functions as a light-receiving unit for detecting light
  • the A / D converter array 13 converts the output signal from the light-receiving unit 11 into a current-to-voltage signal. It functions as a signal processing unit for processing.
  • the image capture control unit 300 of the control circuit 15 is connected to the light receiving element array 11 and the AZD converter array 13, and operates to the light receiving unit 11 and the signal processing unit 13. It functions as an evening control section for notifying an instruction signal.
  • each light-receiving element 120 includes a photoelectric conversion element 130 that generates an electric charge according to the input light intensity, and a photoelectric conversion element 130.
  • N 1 light receiving elements 120 are arranged along the horizontal direction (X direction), and switch elements 140 of each light receiving element 120 are electrically connected to form a horizontal light receiving section 110.
  • Each AZD converter 210 j comprises three circuits: an integration circuit 220j including a charge amplifier 22; a comparison circuit 230 ; and a capacity control mechanism 240 ; .
  • the integration circuit 220 "receives the output signal from the horizontal light receiving section 110] as an input, amplifies the charge of the input signal, and a charge amplifier 222 and an input terminal of the charge amplifier 222. are connected, and a variable capacitance part 2 2 2 j the other end is connected to the output terminal, one end is connected to the input terminal of the charge amplifier 2 2 1 ⁇ , the other end is connected to the output terminal switch Element 2 2 3 ; Switch element 2 2 3 is made ON, the OF F state in response to a reset signal R from the image capture control unit 3 0 0, the integration of the integrating circuit 2 2 0 J, is used to switch the non-integral operation.
  • FIG. 5 is a detailed configuration diagram of the integration circuit 220. This figure shows an example of an integrator circuit having an AZD conversion function having a resolution of 4 bits, that is, 16 gray scales.
  • the variable capacitors 2 2 2 are composed of the capacitors C 1 to C 4 having one terminal connected to the input terminal of the output signal from the horizontal light receiving unit 110 of the charge amplifier 2 21, and the capacitors C 1 to C 4 connected to the output terminal of the charge amplifier 2 21 and the output terminal of the charge amplifier 2, and a switch element SW 11 1 to SW 14 that opens and closes in response to a capacitance indication signal (: ⁇ to j ⁇ ); one terminal is connected between the 1 through C 4 and Suitsuchi element SW 1 1 ⁇ SW 1 4, the other terminal connected to the GND level, to open and close in accordance with the capacity command signal C 21 -C 24 Suitsuchi It consists of the elements SW21 to SW24 4.
  • Comparison circuit 2 3 0j is the value of the output integrated signal V s from the integration circuit 2 2 0 J is compared with a reference value V REF, and outputs a comparison result signal V c.
  • Capacity control mechanism 240j are both the outputs of the capacitance instruction signal C for notifying the value of the comparison result signal V c to the variable capacitance section 2 2 2 of the integrating circuit 2 2 0 3, a digital signal corresponding to the capacitance instruction signal C D Outputs 1.
  • the image capturing units 11 and 13 having the above configuration are controlled in image capturing timing by an image capturing control unit 300 in the control circuit 15.
  • the image capturing control unit 300 is composed of a basic timing unit 310 that generates basic timing for performing clock control of all the circuits 11 and 13 and a basic timing unit 310. It is composed of a horizontal shift register 320 for generating a horizontal scanning signal according to the notified horizontal scanning instruction, and a control signal section 340 for generating a reset instruction signal R.
  • the controller 15 outputs the transfer start signal to each shift register 410 and outputs it to j, thereby transferring the data from the AZD converter array 13 to the required arithmetic element 400 position.
  • the parallel processing mechanism 14 has N 1 x N 2 light receiving elements 1 2 0
  • a controller 15 is connected to each of the arithmetic elements 400 and j via an instruction Z command bus 16 and controls arithmetic processing in the arithmetic element 400. .
  • all the arithmetic elements 400 are connected to a single output bus 155.
  • the output bus 155 is composed of a single 1-bit signal line. Since the output bus 155 is connected to all the arithmetic elements 400, a wired-R circuit (OR) for communicating the OR logical operation result of the output of all the arithmetic elements 400 to the control circuit 15 is provided. OR circuit). For this reason, the control circuit 15 can receive the output signals of all the arithmetic elements 400 after collecting them, and can receive the output signals at high speed without using scan. Can be killed.
  • the X-direction data bus 17 and the y-direction data bus 18 include, for example, a one-way data bus having only a data transfer function from the control circuit 15 to the arithmetic element 400 and having only a Z write function. Can be used.
  • the X-direction data bus 17 is composed of a plurality of (in this case, N 1) 1-bit data lines 170 0 i (1 ⁇ i ⁇ N 1). Each 1-bit data line 170 0 i is connected to a total of N 2 arithmetic elements 400 (i, j) (1 ⁇ j ⁇ N 2) located in the corresponding arithmetic element row i. Each 1-bit data line 170 0 i is also connected to a control circuit 15 via an X-direction data buffer 19. With such a configuration, each 1-bit data line 170 0 i receives the data from the control circuit 15 via the X-direction data buffer 19, and outputs each operation element 4 located in the corresponding column i. 0 0 (i, j).
  • the y-direction data bus 18 is composed of a plurality of (in this case, N 2) 1-bit data lines 180 j (1 ⁇ j ⁇ N 2). Each one-bit data line 180 j is connected to all N 1 arithmetic elements 400 (i, j) (1 ⁇ i ⁇ N 1) located in the corresponding arithmetic element row j . Each 1-bit data line 180 i is also connected to a control circuit 15 via a y-direction data buffer 20. With such a configuration, each 1-bit data line 180 i transmits data from the control circuit 15 via the y-direction buffer 20 to each of the arithmetic elements 4 located in the corresponding row j. 0 0 (i, j).
  • the arithmetic element 400 has a structure that performs SIMD parallel processing in which each element is controlled by a common control signal, reducing the number of transistors per element and increasing the integration of the parallel processing mechanism 14. As a result, the number of elements can be increased.
  • the arithmetic element 400 is composed of a 4 ⁇ 8-bit randomly accessible 1-bit shift register matrix 401, an A-latch 402, a B-latch 403, and an arithmetic logic unit. (ALU) 404.
  • the register matrix 401 is for data retention and input / output.
  • the resist matrix 410 is for receiving and receiving a digital signal D1 corresponding to the output signal of the corresponding light receiving element 120 from the shift register 410.
  • the resist matrix 401 is also directly connected to the resist matrix 401 in the four adjacent arithmetic elements 400, and can also accommodate the digital signals contained therein.
  • the register matrix 40 1 further includes a corresponding X-direction data line 170 0 i of the X-direction bus 17 and a corresponding y-direction data line 1 of the y-direction bus 18. It is connected to 80 j so that data can be transferred using both data buses.
  • ALU404 is for performing a sequential bit serial operation in which the lower bit is sequentially operated one bit at a time.
  • the A latch 402 and the B latch 403 are for accommodating the signals held in the register matrix 401 and for providing the arithmetic operation in the ALU 404.
  • the A-latch 402 and the B-latch 403 each read data from any register in the register matrix 401, and the ALU 404 stores the data. Calculation is performed based on The result of the operation is written again to any register in the register matrix 401. The arithmetic element 400 repeats this operation as one cycle. Thus, various operations can be performed.
  • the ALU404 is a 1-bit arithmetic unit that has arithmetic functions such as AND (AND), OR (OR), exclusive OR (XOR), addition (ADD), and addition with carry. are doing. Only one bit operation can be performed at a time, and multi-bit operations are performed by performing serial operations one bit at a time. Since complex calculations can be described as a combination of the above calculation functions, complex calculations can be realized by having the ALU404 repeatedly perform calculations while selecting each of the above calculation functions one by one. I have. For example, since multiplication can be described as a combination of addition, it is realized by repeating the addition a plurality of times. Subtraction can be realized by inverting the number to be subtracted and adding 1 to make it a negative number, and then adding this.
  • Division is realized by, for example, setting the number to be divided to 8, 4, or 2 and shifting the bits (for example, if the number to be divided is 8, the bits are shifted three bits to the right). Furthermore, to find the absolute value, sign inversion is applied to a negative number (sign bit is 1), that is, bit inversion is performed and 1 is added.
  • the register matrix 401 is composed of 24 randomly accessible register bits 4010 that can be accessed at random. It has a configuration in which eight function registers 4012 are arranged, and these are all treated as one address space.
  • the number described in each register 4010 and 4012 indicates an address assigned to the corresponding registry. Specifically, addresses "0" to "23" are allocated to 24 registers 4010, and addresses "24" to "31” are allocated to 8 function registers 4012. I have. With such a configuration, input / output data can be accessed in the same manner as reading / writing data in a register.
  • the register matrix 401 further includes one OR circuit 4104 connected to these 32 registers 400101 and 41012.
  • the registers 410 and 4012 are all connected to the A latch 402 and the B latch 403 via the OR circuit 410. If one of the addresses in the register register is selected, only the selected register outputs its contents, and all registers that are not selected output a zero. The result of the OR operation of all the registers is output to the A latch 402 or the B latch 403 as the output of the entire register matrix 401.
  • the function register is used mainly for input and output. Specifically, the function register 410 of address "29" is connected to the corresponding transfer shift register 410, and is used for input from the transfer shift register 410. .
  • the function register 4102 at address “2 4" is used to output the arithmetic elements 400 near the top, bottom, left, and right to the register matrix 401.
  • the function registers 4 0 1 2 at addresses “2 4” to “2 7” are respectively obtained from the register matrix 4 0 1 of the corresponding one of the 4 adjacent operation elements 4 0 0.
  • the function register 4102 at address "28” is connected to the output bus 155 and is used as an output address to the control circuit 15.
  • the address “2 8” of the register matrix 401 of all the arithmetic elements 400 (i, j) is connected to the single output bus 155.
  • the function register 4 0 1 2 of the address “3 0” is connected to the corresponding y-direction data line 18 0 j in the y-direction data bus 18, and the corresponding y-direction data line 18 0 j Used to input data from
  • the function register 401 of address “3 1” is connected to the corresponding X-direction data line 170 0 i in the X-direction data bus 17. 1 7 Used to input data from 0i.
  • the function register 4012 at address "28” always reads "0" when reading.
  • the control circuit 15 controls the access to the register matrix 401 and the arithmetic processing of the ALU 404, thereby controlling all arithmetic and input / output processing in the arithmetic element 400. For example, if you want to write the input from the transfer shift register 410 to the address “0” of the register matrix 401, use 0 (Register address “28”) and the sensor input (Register address “2 9”). The instruction to write to the register address “0” by ORing is output to the arithmetic element 400. As shown in Fig. 7 (B), the control circuit 15 sets four cycles of the basic clock CLK as one cycle, during which various clocks CLK2 and CLK4 are supplied while reading the A latch, Read the latch and write the operation result in order. By repeating such processing a plurality of cycles, necessary input / output to the register matrix 401 and calculation by the ALU 404 are performed.
  • the image capture control unit 300 sets the reset signal R to a valid state, sets all of SW11 to SW14 of the variable capacitance unit 222 shown in FIG. 5 to “ON”, and sets SW2:! To SW24 to “OF F State.
  • the capacitance between the input terminal and output terminal of the charge amplifier 221 becomes C.
  • all the switch elements 140 shown in FIG. 4 are set to the “ ⁇ FF” state, and the horizontal scanning signal Vi is set to a state in which none of the light receiving elements 120 ⁇ is selected. From this state, the reset instruction signal R is set to non-significant, and the integration operation in each integration circuit 220 is started.
  • the horizontal scanning signal V in which only the switch element 140 of the first light receiving element 120 in each of the N2 horizontal light receiving sections 110j shown in FIG. Is output.
  • the switch element is turned “ON”, the charges Q, accumulated in the photoelectric conversion element 130 by the light reception up to that time are output from the light receiving section 11 as a current signal. That is, a signal of the photoelectric conversion element can be read.
  • the charge is the capacitance value C. Flows into the variable capacity section 222 set to.
  • the capacity control mechanism 240 opens SW12 to SW14 and then closes SW22 to SW24. As a result, the integral signal V s becomes
  • Integrated signal V s is to enter the comparator circuit 2 30, it is compared with the reference voltage V REF.
  • the difference between V s and V REF is equal to or less than the resolution range, that is, equal to or less than soil (C 4 Z 2), it is considered that they match, and the integration operation is terminated without further capacitance control. If they do not match within the range of the resolution, control the capacity further and continue the integration operation. For example, if V S > V REF , the capacity control mechanism 240 opens SW22 and then closes SW12. As a result, the integral signal V s becomes
  • V s Q / + C 2 )
  • This integration signal V s is input to a subsequent comparison circuit 230 (FIG. 4) and is compared with a reference voltage value V REF .
  • V S V REF
  • the capacity control mechanism 240 opens SW 11 and SW 22, and then closes SW 12 and SW 21.
  • This integral signal V s is issued sent to the subsequent comparison circuit 2 30, it is compared with the reference voltage V REF. Thereafter, in the same manner, the comparison and capacitance setting are performed by the feedback loop of the integrating circuit 220 ⁇ the comparing circuit 230—the capacity control mechanism 240 ⁇ the integrating circuit 220 until the integrated signal Vs matches the reference voltage value V REF within the resolution range. (SW11 to SW14 and SW2;! To SW24 ONZO FF control) are sequentially repeated.
  • the capacitance indication signal indicating the ON Z ⁇ FF state of SW11 to SW14 at the end of the integration operation (the value of ⁇ to j is a digital signal corresponding to the charge value, and the most significant bit (MSB)
  • MSB most significant bit
  • LSB least significant bit
  • a / D conversion is performed, and these values are output to the arithmetic element array 14 as digital signals D1.
  • each bit value of the digital signal D1 is determined one bit at a time from the MSB side to the LSB side.
  • the reset signal R is determined to be significant, and is again determined to be non-significant, and the capacitance of the variable capacitance unit 222 '' is determined.
  • the switch element 140 of the second light receiving element 1 20 2 j of the horizontal light receiving portions 1 1 Oj outputs horizontal scanning signal V 2 to "oN", similar to the above operation
  • the second The photoelectric output of the light receiving element 120 is read, and a digital signal corresponding to this is transmitted.
  • the photoelectric output of all the light receiving elements 120 is read, and the corresponding digital signal is output to the parallel processing mechanism 14.
  • the A / D-converted digital signal is sent to the register matrix 401 of the arithmetic elements 400 j corresponding to the respective light receiving elements 120 j via the transfer shift register 410.
  • This transfer is performed by sequentially transferring the signals stored in the transfer shift register 410 to the transfer shift register 410 of the next pixel in the corresponding transfer shift register line 420.
  • transfer processing in the transfer shift register can be performed independently of the arithmetic processing in the arithmetic element 400. Therefore, while the processing operation is being performed in the arithmetic element 400, pipeline-like processing for transferring the next data to the transfer shift register 410 becomes possible. Calculation processing at a high frame rate becomes possible.
  • the transfer shift register 410 starts the transfer of the AZD-converted data based on the transfer start signal from the control circuit 15, and performs a bit shift by (the number of elements in the row direction X an analog level). After performing the data transfer, a signal of “data transfer completed” is sent back to the control circuit 15 so that efficient transfer can be performed.
  • a signal of “data transfer completed” is sent back to the control circuit 15 so that efficient transfer can be performed.
  • the image processing operation inside the arithmetic element 400 is as follows.
  • the signals contained in the respective registry matrix 401 are transferred between the arithmetic elements 400, and the X-direction data buses 17 and y are transferred.
  • the signals necessary for the operation are transferred from the register matrix 401 to the A latches 402 and B.
  • the data is read out to the latch 403, a predetermined operation is performed by the ALU 404, and the calculation result is output to the control circuit 15 via the register matrix 401 and the output bus 155.
  • the control circuit 15 outputs the calculation result of the parallel processing mechanism 14 to an external computer 1000 as an external device and other external devices. For example, the calculation result is used as an on / off signal of an external device.
  • the control circuit 15 may perform a necessary operation based on the calculation result of the parallel processing mechanism 14 and then output the operation result to the external circuit 1000.
  • the CPU 150 of the control circuit 15 controls the image capture control unit 300 (FIG. 4) to sequentially switch the reset signal R between the positive Z non-positive and the horizontal synchronizing signal V i, thereby providing the light receiving element.
  • the image data output from each light receiving element 120 (hereinafter, referred to as light receiving element 120 (x, y)) (frame data: I (x, y)) are sequentially input to the parallel processing mechanism 14 via the corresponding AZD converter 210j (S101).
  • the transmitted data is transferred one after another by the corresponding transfer shift register 410 in each row j (S102). This transfer processing is performed until data is transferred to the transfer shift register 410,... At the position (i, j) (hereinafter, referred to as (x, y)) corresponding to the light receiving element 120. Continue (S103). When the transfer is completed, the data I of the pixel is transferred from the transfer shift register 410 to the register matrix 401 of the corresponding operation element 400 (hereinafter referred to as operation element 400 (x, y)). (x, y) is transferred (S104). Specifically, as shown in FIG.
  • the data is sequentially transferred one bit at a time from a transfer shift register 410 composed of a plurality of bits (in this case, 4 bits) to a register matrix 401. Is stored.
  • S110 necessary parallel arithmetic processing is performed by controlling each arithmetic element 400.
  • the transfer shift register 410 When the transfer shift register 410 completes the data transfer to each processing element 400, it controls each processing element 400 and performs the parallel operation processing of S110 to perform the next frame. Move to the processing (S105), execute S101 to S103, control the light receiving element array 11, the AZD converter array 13 and the transfer shift register 4 10 The input Z transfer operation of the next frame is performed. On the other hand, in the parallel arithmetic processing using each arithmetic element 400, when the processing of one frame (S110) ends, the processing shifts to the processing of the next frame (S106), and the image data of the next frame is processed.
  • operation data or operation control data can be supplied to each operation element at high speed from outside via the X-direction data bus 17 and the y-direction data bus 18. Therefore, even when performing an arithmetic process that requires data other than image information in each arithmetic element 400 at the time of the arithmetic operation of S110, an extremely high-speed arithmetic operation can be performed.
  • the image processing step (S110) when performing the "center of gravity calculation" that requires the position information data, this position information is supplied as external data to perform the center of gravity calculation process.
  • the operation when the center-of-gravity calculation processing is executed in the image processing step (S110) will be described in detail.
  • the memory 15 1 of the control circuit 15 stores X-direction position information (hereinafter simply referred to as “x address”) and y-direction position information (hereinafter simply referred to as “y address”) of each pixel. Is stored in advance. Specifically, binary data indicating values of "1" to “N1” is stored as an X address, and binary data indicating values of "1" to “N2” is stored as a y address. Evening is stored.
  • the gravity center calculation is a calculation based on the calculation of the weighted sum in each of the X direction and the y direction.
  • the barycentric coordinates Gc can be obtained by the following formula (1), where I (x, y) is the intensity of the image at each pixel position (x, y) on the image.
  • the position information in the X direction of the image is multiplied by the image intensity I (x, y) to obtain the x-direction moment xI (x, y).
  • Obtain the X coordinate of the center of gravity by dividing the sum of the X-direction moments obtained by adding the X-direction moments ⁇ XI (x, y) by the total image intensity ⁇ I (x, y).
  • the image intensity sum ⁇ I (x, y) can be obtained by adding the image intensities of all the pixels.
  • the position information in the y-direction of the image is multiplied by the image intensity I (x, y) to obtain a y-direction moment yI (x, y). It is obtained by dividing the sum of the y-direction moments ⁇ y ⁇ I (x, y) obtained by adding the y-direction moments of all pixels by the total image intensity ⁇ I (x, y).
  • the center of gravity calculation processing (S300) as shown in FIG. 9 may be performed in the image processing step S110 (FIG. 8).
  • the center-of-gravity calculation processing (S 300) first, the image intensity sum ⁇ I (x, y) is calculated in S 350, then the X coordinate of the center of gravity is calculated in S 400, At 500, find the y-coordinate of the center of gravity.
  • the image data I (x, y) of each pixel of the input image D is already transferred for transfer at S104 (Fig. 8).
  • the data is transferred from the shift register 410 to the register matrix 401 of each arithmetic element 400 (x, y) and stored in a certain area of the register matrix 401.
  • the CPU 150 first performs a sum calculation process for obtaining the sum of the image intensity values I (x, y) in S360.
  • the target data for which the sum is to be obtained (in this case, the image data I (x, y)) is read from the register matrix 401 into the A latch 402 (S1002). That is, the data of I (x, y) stored in the register matrix 401 is transferred to the A latch 402 from the lower bits.
  • each processing element 400 (X, y) is stored in the processing element 400 (x + 1, y) located at the pixel position (x + 1, y) adjacent in the X direction.
  • the evening (in this case, the image data I (x + 1, y)) is transferred to the register matrix 401 of the processing element 400 (x, y) by the transfer between the register matrix 401 and stored (S 1 00 4).
  • the image data stored in the adjacent pixel is transferred to a vacant area.
  • the destination data (image data I (x + 1, y)) of the transferred adjacent pixel (x + 1, y) is read into the B latch 403 (S1 006), and the A latch 402 and the B latch The value of 403 is added (S 1 008), and the addition result is stored in the A latch 402 (S 1 0 1 2) via the register matrix 401 (S 1 0 1 2).
  • the sum of the target data for two pixels in this case, the image data I (x, y) and I (x + l, y)
  • each arithmetic element 400 (X, y) pixel position adjacent to the eye (x + n, y) (where, n 2 in this case, n S 1?) of the processing element 400 (x + 2, y) to the result calculated currently yield capacity (this In this case, the arithmetic element 400 (x, y) is obtained by repeating I (x + 2, y) + I (x + 3, y)) twice between the register matrix 401 adjacent in the X direction. And store it in (S1018).
  • each pixel 400 (x, y) has image data I (x, y), I (x + l, y), I (x + 2, y), I (x + 3 y) will be stored.
  • Arithmetic element By repeating the transfer of the calculation result data (addition result of image data) currently stored in 400 to the registration matrix 401 adjacent in the X direction n times (in this case, four times), the arithmetic element The data is transferred to 400 (x, y), read into the B latch 403 (S1 020), and the same addition is performed (S102 to S102).
  • the operation result of the adjacent pixel (x, y + 1) is read into the B latch 403 (S1036), the values of the A latch 402 and the B latch 403 are added (S1038), and the addition result is obtained.
  • the arithmetic element 400 (1, y) at the beginning of each row has the sum of the arithmetic results of the two rows. Will be stored.
  • each arithmetic element 400 (x, y) is accommodated in the arithmetic element 400 at the position (x, y + m) (m ⁇ 2j ; in this case, the position (x, y + 2)).
  • the result of the addition is transferred to the arithmetic element 400 (X, y) by repeating the transfer between the adjacent registration matrixes 401 twice (S1034), and read into the B latch 403 ( S1036), and perform the same addition (S1038 ⁇
  • the pixel selection processing (S 1) for selecting the target pixel position (X 1, y 1) (in this case, the first pixel position (1, 1))
  • the CPU 150 first In the x-direction data bus 17, the X-direction data line 170 0 i corresponding to the X address position X 1 of the target pixel position (X 1, y 1) to be selected (hereinafter referred to as “x direction Data line (170x) ”, and transfer data (0) to all remaining X-direction data lines (170x).
  • the CPU 150 sets the y-direction data line 1 corresponding to the y-address position y1 of the target pixel position (xl, y1) in the y-direction data bus 18.
  • the data (1) is transferred to 80 j (hereinafter referred to as “y-direction data line 180 y”), and the data (0) is transferred to all remaining y-direction data lines 180 y. Forward.
  • each arithmetic element 400 (x, y)
  • the value of the A latch 402 and the value of the B latch 403 are multiplied by the ALU 404 (S1114), and the operation result is stored in the register matrix 401. Yes (S 1 1 1 6).
  • the multiplication result 1 is set only for the arithmetic element 400 (xl, y1) at the target address (X1, y1) (in this case, the first arithmetic element 400 (1, 1)).
  • the multiplication result 0 is set.
  • the pixel selection processing (S370) ends.
  • the output bus 155 transfers the image intensity sum ⁇ I (x, y), which is the result of the 0 R logical operation of the operation results from all the operation elements 400 to the control circuit 15 .
  • the CPU 150 stores the received total image intensity ⁇ I (X, y) in the memory 151.
  • the CPU 150 reads the X-direction position information (X address data “X”) of each pixel, which is data necessary for the center of gravity calculation, from the memory 151, Transfer to arithmetic element 400.
  • each X address data "X” is temporarily stored in the X direction data buffer 19, and the corresponding data line 170X of the X direction data bus 1 is used. This is done by transferring the lower bits, bit by bit, one bit at a time.
  • the X address data “X” of the pixel connected to each X direction data line 170 X of the X direction data bus 17 is equal to each other, and is one of 1 to N1. Is the binary data of the value of.
  • each data line 170 X the binary data of the corresponding X address “X” is transferred by 1 og 2 (N 1) bits in order from the lower order bit, thereby obtaining the corresponding X address. It can be transferred to all arithmetic elements 400 (x, y).
  • each arithmetic element 400 (x, y), the transferred X address data "X" is stored in its register matrix 401 (S404).
  • the data is read from the second bit into the B latch 403 (S406).
  • the image data I (x, y) is read from the resist matrix 401 into the A latch 402 again (S408).
  • the ALU 404 multiplies the value of the A latch 402 and the value of the B latch 403 (S410), and the X direction moment value ( ⁇ ⁇ ⁇ (x, y)), which is the operation result, is stored in the register matrix. (S4 1 2).
  • the summation processing described with reference to FIG. 10 (B) is performed using the X-direction moment value ( ⁇ ⁇ I (x, y)) as the target data.
  • the X-direction moment value (X ⁇ I (x, y)), which is the target data to be summed, is obtained from the resist matrix A Transfer to 402.
  • the x-direction model of the arithmetic element 400 (X + 1, y) at the position (x + 1, y) adjacent to the arithmetic element 400 (x, y) in the X direction is set. Transfer the value ((x + 1) ⁇ I (x + l, y)).
  • the X-direction moment value ((X + 1) ⁇ I (x + l, y)) is stored in the B latch (S1006), and the values of the A latch and the B latch are added.
  • the X-direction moment values at the pixels are added, and the addition result is stored in the A latch 402 via the register matrix 401 (S1008 to S1012).
  • the sum of the X-direction moment values for two pixels (XXI (X, y) + (x + 1) ⁇ I (x + 1, y)) It will be stored.
  • each arithmetic element 400 calculates the addition result and y
  • the same processing as the pixel selection processing described with reference to FIG. 10 (C) is performed.
  • the multiplication result (1) is set only in the first arithmetic element 400 (1, 1) in S114-S116, and the multiplication result (0) is set in the other arithmetic elements 400. Is set.
  • the multiplication result obtained in the pixel selection processing (S430) is transferred from the register matrix 401 to the A latch 402.
  • the sum operation result finally obtained in the sum operation processing (S420) is transferred from the register matrix 401 to the B latch 403 (S434).
  • the ALU 404 multiplies the value of the A latch 402 by the value of the B latch 403 (S436).
  • the arithmetic element 400 at the head address (1, 1) has the sum of the moments in the X direction ⁇ X ⁇ I (X) as the result of multiplication of the sum operation result ⁇ ⁇ I (x, y) and (1). x, y) are required.
  • zero (0) is obtained as a result of multiplication of the sum operation result and 0 (zero).
  • the multiplication result is stored in the register matrix 401, and in S440, the multiplication result is output to the output bus 1555 from the output address "28" of the register matrix 401. I do.
  • the multiplication result of S 436 in all the arithmetic elements 400 is output to the output bus 155.
  • the head arithmetic element 400 (1, 1) outputs the sum of the X-direction moments ⁇ ⁇ ⁇ I (x, y) as the multiplication result, and all the remaining arithmetic elements are zero ( 0) is output. Therefore, the output bus 155 transfers the X-direction moment total ⁇ ⁇ (I (I (((((((((((((((((( ⁇ ⁇ ((( ⁇ ⁇ ⁇ ((( ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ .
  • the CPU 150 divides the received sum of the x-direction moments ⁇ ( ⁇ I (x, y) by the sum of the image intensities ⁇ I (x, y) to obtain the center of gravity. Find the X coordinate of.
  • the CPU 150 reads out the y-direction position information (X address data “y”) of each pixel from the memory 151, Transfer to arithmetic element 400.
  • each y-address data "y” is temporarily stored in the y-direction data buffer 20 and bit serial is performed using the corresponding data line 180 y of the y-direction data bus 18.
  • the transfer is performed by transferring the lower bits from the lower bits one bit at a time.
  • the y address data of the pixel connected to each y direction data line 180 y of the y direction data bus 18 is "y". Are binary data that are equal to each other and have a value of 1 to N2.
  • each data line 180 y by transferring the binary data of the corresponding y address “y” by 1 og 2 (N 2) bits in order from the lower bit, all arithmetic elements 400 of the corresponding y address are transferred. to (x, y).
  • each arithmetic element 400 (x, y), the transferred y address data "y" is stored in its register matrix 401 (S504), and then read from the lower pit to the B latch 403 (S504). 506).
  • the image data I (x, y) is read into the A latch 402 again through the register matrix 401 (S508).
  • the ALU404 multiplies the value of the A latch 402 and the value of the B latch 403 (S510), and calculates the result of the operation in the y-direction moment value (yI (x, y)) as a resistive matrix. (S 5 1 2).
  • S520 a sum calculation process is performed to obtain the sum of the y-direction moment values (y ⁇ I (x, y)) in all the pixels.
  • the summation processing described with reference to FIG. 10 (B) is performed using the y-direction moment value (y ⁇ I (x, y)) as the target data.
  • the y direction moment value (y ⁇ I (x + 1, y)) is stored in the B latch (SI 006), and the values of the A latch and the B latch are added to obtain the y direction in the two adjacent pixels.
  • the moment values are added, and the addition result is stored in the A latch 402 via the register matrix 401 (S1008 to S1012).
  • the sum of the y-direction moment values for two pixels y. I (x, y) + y-I (x + 1, y) is stored. become.
  • each arithmetic element 400 (X, y) calculates the sum of the addition result and the position adjacent in the y direction.
  • the arithmetic element 400 (1, y) at the head position of each row has the sum (y * I (1, y) + y-I (2, y) tens ... + y- I (N 1, y)) + ((y + 1) ⁇ I (1, y + 1) + (y + 1) ⁇ I (2, y + 1) tens ... + (y + 1) ⁇ I (N 1, y + 1)).
  • the pixel selection process In the pixel selection process, the pixel selection described with reference to FIG. The same processing as the processing is performed. As a result, in S114-S116, the multiplication result (1) is set only in the first arithmetic element 400 (1, 1), and in the other arithmetic elements 400, the multiplication result (0) is set. Is set.
  • the multiplication result obtained in the pixel selection processing (S530) is transferred from the register matrix 401 to the A latch 402.
  • the sum operation result finally obtained in the sum operation processing (S520) is transferred from the register matrix 401 to the B latch 403 (S534).
  • the ALU 404 multiplies the value of the A latch 402 by the value of the B latch 403 (S536).
  • the arithmetic element 400 at the start address (1, 1) has a sum of the y-direction moment sum ⁇ y ⁇ I (I) as a result of multiplying the sum operation result ⁇ y * I (x, y) by (1). x, y) are required.
  • zero (0) is obtained as a result of multiplication of the sum operation result and 0 (zero).
  • the multiplication result is stored in the register matrix 401, and in S540, the multiplication result is output to the output bus 1555 from the output address "28" of the register matrix 401. I do.
  • the multiplication result of S536 in all the arithmetic elements 400 is output to the output bus 155.
  • the operation element 400 (1, 1) at the head position outputs the sum of y-direction moments * y * I (x, y) as the multiplication result, and all the remaining operation elements Outputs zero (0). Therefore, the output bus 155 must transfer the y-direction moment total ⁇ y ′ I (x, y), which is the OR logical operation result of the operation results from all the operation elements 400, to the control circuit 15. become.
  • the CPU 150 divides the received total sum of the y-direction moments ⁇ ⁇ I (x, y) by the total image intensity ⁇ I (x, y) to obtain Find the X coordinate of the center of gravity. (Example 2)
  • the parallel operation method of this system is a method called SIMD that performs the same operation on all operation elements.However, in some cases, a different operation is performed for each pixel, or a special operation is performed only for a certain pixel. If it can be done, more flexible processing will be possible.
  • the image data I (x, y) of each pixel of the input image D has already been obtained in S104 (FIG. 8).
  • the data is transferred from the transfer shift register 410 to the register matrix 401 of each arithmetic element 400 (x, y) and stored in a certain area of the register matrix 401.
  • a pixel selection process for selecting a desired pixel position (xl, y1) is performed.
  • the pixel selection processing described with reference to FIG. 10 (C) is performed so as to select the desired pixel position (xl, y1).
  • the arithmetic element whose X address is X 1 out of all the arithmetic elements 400 Set data (1) only to 400 (xl, y) (1 ⁇ y ⁇ N2), and set data (0) to other arithmetic elements 400.
  • the processing element 400 (X, yl) (1 ⁇ x Set the data (1) only for ⁇ N 1) and the data (0) for the other arithmetic elements 400.
  • the transfer data from the X-direction data line 170 X and the transfer data from the y-direction data line 180 y are multiplied by the evening (S 1 1 14).
  • the result of the multiplication is stored in the register matrix 401 (S1116), and the pixel selection processing (S610) is completed.
  • the multiplication result becomes 1 only with the arithmetic element 400 (x1, y1) at the desired address (xl, yl), and the multiplication result becomes 0 with the other arithmetic elements 400.
  • the multiplication result of S616 is transferred from the register matrix 401 to the A latch 402 or the B latch 403, and the ALU 404 performs predetermined arithmetic processing.
  • the arithmetic processing is performed on the target data only at the target pixel position (xl, y1), and the arithmetic processing is performed on the zero (0) data at positions other than the target pixel position.
  • the calculation result is output to the control circuit 15 via the output bus 15.
  • the desired position calculation processing (S 600) is performed while selecting the individual calculation elements (pixels) while changing the contents of the calculation processing (S 620), the different calculation processing can be performed for each calculation element. Can also be executed.
  • a plurality of pixels may be selected instead of selecting only a single pixel. That is, data (1) is transferred to the X-direction data line 170 X and the y-direction data line 180 y corresponding to the X address and y address of the plurality of pixels, and the other data lines are transferred.
  • the data (0) may be transferred to the server.
  • the multiplication result of S1114 (Fig. 10 (C)) becomes 1, and as a result, the target data is obtained as the multiplication result of S616 (Fig. 13). Is obtained. Therefore, in S620, the target pixel is selected in the plurality of selected pixels. A desired operation can be performed on the data.
  • the image data I (x, y) of each pixel of the input image D has already been shifted for transfer by S104 (Fig. 8).
  • the data is transferred from the register 410 to the register matrix 401 of each arithmetic element 400 (x, y) and stored in a certain area of the register matrix 401.
  • the respective calculation elements 400 are caused to perform a desired calculation on the image data I (x, y).
  • desired operation various operation processes such as an edge extraction process described later can be considered.
  • the multiplication result of the pixel selection processing (S680) is transferred from the register matrix 401 to the A latch 402.
  • the data to be extracted (the operation result of S660) is transferred from the register matrix 401 to the B latch 403 (S6844), and the value of A latch 402 and B
  • the value of the latch 403 is multiplied (S686).
  • the result of the multiplication is stored in the register matrix 401 (S688), and then output to the output bus 1555 from the output address "28" at S690.
  • the target pixel 400 (x1, y1 ) Is output to the control circuit 15.
  • the X-direction data bus 17 and the y-direction data bus 18 are not unidirectional data buses having only a transfer Z-write function from the control circuit 15 to the arithmetic element 400, but a control circuit 15 A bidirectional data bus having a function of transferring / writing data from / to the arithmetic element 400 and a function of transferring the output Z from the arithmetic element 400 to the control circuit may be used.
  • the arithmetic element 400 By using the register matrix addresses ⁇ 30 '' and ⁇ 31 '' also for outputting data to the y-direction data line 180 y and the x-direction data line 170 x, the arithmetic element 400 The calculation result can be output to the control circuit 15 through the X-direction data line 1 ⁇ 0 X or the y-direction data line 180 0 y.
  • bidirectional data buses 17 and 18 are used, and if these are used bidirectionally, the arithmetic element 40 at a certain position in the X and y directions can be used.
  • the signal from 0 can be received by the control circuit 15. If this function is used, for example, when it is desired to search for a certain search image (ml Xm2 pixels) by parallel operation, the control device 15 determines the position at which the match signal was obtained at high speed through a data bus. You can check.
  • (p, q) is the position of the reference pixel (x, y) in the image D. ml m2
  • FIG. 15 A flowchart of the search processing (S700) based on this algorithm is shown in FIG. 15, and the flow of the data processing will be described below with reference to FIG.
  • this search processing (S700) is also executed in the image processing step S110 of FIG.
  • each pixel (x, y) is set as a reference position (p, q) for image search, respectively.
  • the image data P (i, j) (1 ⁇ i ⁇ m1, 1 ⁇ j ⁇ m2) of the search image P is stored in the memory 151 of the control circuit 15.
  • each pixel of the input image D The image data I (x, y) (hereinafter referred to as I (p, q)) of each of the arithmetic elements 40 0 (x, y) is already transferred from the transfer shift register 4100 in S 104 (FIG. 8).
  • y) (hereinafter, referred to as 400 (p, q)) is transferred to the register matrix 401 and stored in a certain area of the register matrix 401.
  • the CPU 150 first sets an initial state in step S702. Specifically, it is assumed that the head position (1, 1) is set at the matching detection position (i, j) in the search pattern P, and that it is stored in the register matrix 401 of each operation element 400 (p, q). Yes Reset the calculation result E r (p, q).
  • step S703 the image data P (i, j) of the current detection position (i, j) (here, the head position (1, 1)) in the search pattern P is stored in the memory 15 1 , And transferred to each arithmetic element 400 via the data buses 17 and 18.
  • step S704 in each arithmetic element 400 (p, q), the matching detection position between the image data I (P, q) of the pixel stored in a certain area of the registration matrix 401 and the search pattern is determined.
  • the image of the evening? Find the absolute value of the difference from (i, j) and add it to E r (p, q).
  • E r (p, q) the absolute value of the difference between the image data I (p, q) and the image data P (1, 1) at the head position of the search image is obtained, and another area of the resist matrix 401 is calculated. And store it as E r (p, q).
  • step S705 the CPU 150 determines whether or not the detected position (i, j) has reached the final position (ml, m2).
  • the detection position (i, j) is still the head position (1, 1), it has not reached the final position (No in step 705), and the process proceeds to step S706.
  • step S707 the image data at the position (p + i-1, q + j-1), here, the image data I (P + 1, q) at the position (p + 1, q) is calculated.
  • the image data I (p + 1, q) stored in the adjacent pixel 400 (p + 1, q) is calculated. This transfer is performed by transferring to the vacant area of the pixel 400 (p, q).
  • step S7033 CPU 150 obtains image data P (i, j) of current detection position (i, j) (here, position (2, 1)) in search pattern P. j) is read from the memory 151, and is transferred to each arithmetic element 400 (p, q) via the data buses 17 and 18.
  • each arithmetic element 400 (p, q) determines the current matching between the image data I (p + l, q) of the adjacent pixel currently stored in the registry matrix 401 and the search pattern.
  • the absolute value of the difference between the detection position and the image P (i, j) is calculated and added to E r (p, q). Since the detection position (i, j) has not reached the final position (ml, ra2) (No in S705), the process proceeds to S706, and the detection position (i, j) is updated.
  • step S703 to S707 is repeated until the detection position (i, j) reaches the final position (ml, m2).
  • step S704 ERROR (p, q) can be obtained in each of the arithmetic elements 400 (p> q).
  • the transfer in step S707 uses the transfer function of the register matrix 401 to sequentially transfer the pixels to the adjacent pixels in the X and y directions, respectively. Then, the transfer can be performed.
  • step S708 the CPU 150 sets the threshold value Eth , and in step S709, transfers the set threshold value Eth data to each arithmetic element 400 via the data bus 17 or 18. .
  • each processing element 400 (p, q) in step S 7 1 the threshold E th and determined meth ERROR (p, Q), that is, compares E r (p, q) and the. Specifically, each arithmetic element 400 performs an operation of ERROR (p, q) —threshold E th , and outputs a sign bit (positive / negative sign) of the result as a comparison result. That is, if E r (p, q) is equal to or less than the threshold value E th , the process proceeds to step S 7 1 1 to output 1, and if E r (p, q) is greater than the threshold value E th, Then, the flow shifts to step S712 to output "0". Each arithmetic element 400 outputs the output data to the data buses 17 and 18. The CPU 150 counts the number of operation elements 400 that output 1 by taking the sum of the output signals from the data buses 17 and 18.
  • step S713 the CPU 150 determines this number. If the output number is 0, the CPU 150 proceeds to step S714 to output a determination result indicating that there is no matching image.
  • the CPU 150 When the number of outputs is one, one output signal is obtained only on the single data lines 170x and 180y of the data buses 17 and 18 respectively. Therefore, the CPU 150 outputs the position data of the arithmetic element 400 that has output 1 based on the positions and y of the output signal lines 170 x and 180 where the output signal of 1 is obtained in S 715. Find (p, q). In S715, the output bus 155 may be used instead of the overnight bus 17 or 18. That is, for each arithmetic element 400, The output (0 or 1) as the judgment result may be multiplied by the position data (p, q), and the multiplication result may be output to the output bus 155.
  • S710 Only the pixel that has output the output signal 1 (matching position pixel) as a result of the determination outputs the position data (p, Q). Other pixels output (0) which is the result of multiplication of the output signal (0) and the position data (p, q). Therefore, only the position data (p, q) of the matching position is transferred to the control circuit 15 via the output bus 155. According to this method, not only the matching position data (p, q) but also other matching calculation results (for example, the absolute value of the difference between the input image D and the search pattern P) are transferred to the control circuit 15. be able to.
  • the threshold E th is changed to a small value in step S 716 and the process returns to step S 709, and the threshold E th is reduced until the number of outputs becomes one To narrow down.
  • the high-speed vision sensor device 10 of the present embodiment is an AZD converter in which one AZD converter 2 10 corresponds to all the light receiving elements 120 in each row of the light receiving element array 11.
  • An array 13 a parallel processing mechanism 14 including an arithmetic element 400 corresponding to the light receiving element 120 and the transfer shift register 410 are provided, and data for transferring data to the arithmetic element 400 is further provided. Evening buses 17 and 18 and de overnight buffers 19 and 20 are provided.
  • the arithmetic element 400 can perform image processing operation between neighboring pixels at high speed by parallel processing, and also perform arithmetic processing that requires external data transfer at high speed by using the data buses 17 and 18. be able to.
  • the image processing step S110 when performing the above-described image processing (FIGS. 9 to 15), Various image processing can be performed on the input image I (x, y).
  • edge extraction can be performed.
  • edge extraction is the processing most frequently used in image processing.
  • two-neighbor edge extraction using a two-neighbor operation using a difference from the intensity value of one pixel adjacent in the left direction is used.
  • the value I '( ⁇ , y) of the image intensity data of the extracted 2-neighbor edge image is given by the following equation. Is represented.
  • the data I (X-1, y) of the adjacent pixel on the left from the 4-neighbor input terminal is converted to the arithmetic element 400 (x, y). Is transferred to the register matrix 401 and stored in Z (S1210).
  • the data of I (x, y) and I (X-1, y) currently stored in the register matrix 401 are transferred to the A latch 402 and the B latch 400, respectively (S12). 1 1),
  • the difference between the two is calculated by ALU404 (S1222).
  • the calculation result is temporarily stored in the registration matrix 401 (S1213).
  • the calculation result is read out to the A latch 402 again (S1214), and the absolute value of the difference is obtained by the ALU 404 (S1215).
  • the calculation result is stored again in the resist matrix 401 (S1216).
  • the image processing steps (S300, S600, S650, S700) of (Example 1) to (Example 4) are performed on the two neighboring edge extracted images I ′ (x, y) obtained in this manner. ).
  • the value I '( ⁇ , y) of the image intensity data of the four neighboring edges extracted image obtained for the input image intensity I (x, y) at the position (x, y) Can be expressed by the following equation.
  • I '(x, y) 1 (x, y—1) + I (x, y + 1) + I (x-1, y) + I (x + 1, y) —4 I (x, y)
  • the value I '(x, y) of the desired image intensity of the four-neighbor smoothed image can be expressed by the following equation.
  • I '(x, y) (4 I (x, y) + I (x-1, y) + I (x + l, y) + I (x, y-1) + I (x, y + 1 )) / 8
  • Table 1 shows an example of the number of steps and the processing time when the calculation is performed according to the present embodiment for some of the algorithms frequently used in image processing in addition to the above-described algorithms.
  • Table 1 As is clear from Table 1, in the present embodiment, general image processing (for example, For example, smoothing, thinning, compensation, correlation, and mask processing) can be performed at very high speed by completely parallel processing. Therefore, it can be applied to fields such as FA mouth pot control, which were limited by the low processing speed and transfer speed of the conventional visual sensor device.
  • general image processing for example, For example, smoothing, thinning, compensation, correlation, and mask processing
  • the calculation time shown in Table 1 does not include the transfer time of the image data by the transfer shift register 410.
  • the transfer data rate is limited by the conversion speed of the A / D converter 210.If this is, for example, 1 microsecond per bit, 128 x 128 pixels x 8 bits
  • the time required to transfer image data in parallel in 128 rows is 128 (pixels) X 8 (bits) xl (microsecond dabits) 1 millisecond. In the present embodiment, this transfer is performed in parallel with the arithmetic processing.
  • the object of the present embodiment is an image processing system having practical high speed and sufficient resolution.
  • the robot control in the FA system requires a resolution of arranging at least 1 2 8 ⁇ 1 2 8 light receiving elements 1 20 c.
  • the light receiving element array 11 and the parallel processing mechanism 14 This resolution can be realized sufficiently because the resolution can be separated and the degree of integration of each can be increased.
  • the speed of the mouth pot As a guide to the processing speed, the speed of the mouth pot
  • the processing speed is determined by the A / D conversion processing speed in the AZD converter 210, but can be sufficiently increased.
  • the A / D conversion speed per pixel in the present embodiment is 1 microsecond per bit.
  • arithmetic elements are arranged in a one-to-one correspondence with each light receiving element, and all the arithmetic elements are processed in parallel. Therefore, as shown in Table 1, most arithmetic processing can be performed in less than 0.4 ms. Furthermore, since arithmetic processing and transfer processing can be performed in parallel, the idle time of each processing can be reduced, and the overall processing time can be reduced.
  • the AZD converter 210 of the present embodiment performs A / D conversion from the most significant bit. Therefore, when the conversion is performed to the desired number of bits, the reset signal R is transmitted, and the process proceeds to the AZD conversion of the next optical signal, whereby the gradation of the AZD conversion can be changed.
  • This allows for faster and more complex processing. For example, when tracking a moving object, if the object is moving at a high speed, if the image is controlled to perform arithmetic processing at a binary level of 1 bit, the transfer time will be as described above. This is shortened to 0.128 milliseconds, one sixth of the 6-bit value, and can be applied to high-speed feedback control. Conversely, if the vehicle is moving at a low speed, it is possible to improve the accuracy and follow up by increasing the gradation.
  • the bit length of the input data must be adjusted to a fixed length in the transfer shift register. This is because, for example, a shift register having a fixed length of 8 bits and the number of pixels in a row (N 1) is used as a transfer shift register line when the normal data length is 8 bits. Each shift register divided into 8 bits functions as a transfer shift register for each pixel corresponding to each position. Therefore, unless the bit length is adjusted to 8 bits, the image data will not be correctly transferred to the corresponding shift register for transfer. For this reason, the data is transferred correctly by adding a dummy signal at the time of transmission in the transfer shift register to make the total 8 bits.
  • the AZD conversion in which one A7D converter 210 corresponds to the light receiving elements 120 of each row of the light receiving element array 11
  • a parallel processing mechanism 14 including an arithmetic element 400 corresponding to the light-receiving element 120 and the shift register 410 for transfer.
  • the arithmetic element 400 since the arithmetic element 400 has a one-to-one correspondence with the light receiving element 120, image processing between neighboring pixels can be performed at high speed by parallel processing.
  • the A / D converter 210 is provided for each row, the calculation is performed with the light receiving element 120 compared to the case where the AZD converter 210 is provided for each light receiving element 120.
  • the number of transmission lines between the elements 400 can be reduced, and the light receiving element 120 and the arithmetic element 400 can be easily manufactured and arranged separately. For this reason, both can optimize the degree of integration, and can easily manufacture a high-speed visual sensor device 10 having a large number of pixels.
  • the AZD converter 210 is provided for each row as described above, the overall processing speed is limited by the processing speed of the AZD conversion, but it is said that the number of pixels is sufficient for FA robot control.
  • the multi-pixel high-speed visual sensor device 10 of the present embodiment can perform basic image calculations at high speed while having a simple circuit configuration.
  • data transfer transmission / reception
  • transmission / reception can be performed more efficiently than in the X-direction data bus and the y-direction data bus, so high-speed operations are possible.
  • the transfer shift register 410 is provided corresponding to the arithmetic element 400, the arithmetic processing can be performed independently of the transfer processing, and the arithmetic processing and the transfer processing can be performed efficiently. In addition, transfer processing and arithmetic processing are performed in parallel. Since it can be performed, the waiting time of each process can be reduced, and higher-speed image processing can be performed. In other words, real-time processing is possible by using the transfer shift register to realize a function that can execute arithmetic processing and transfer independently during data transfer from the AZD converter to the arithmetic element. .
  • the high-speed vision sensor device according to the present invention is not limited to the embodiment described above, and various modifications are possible.
  • the data buffers 19 and 20 are provided. However, if a sufficient transfer speed can be obtained between the control circuit 15 and the data buses 17 and 18, There is no need to provide a buffer overnight.
  • the data transfer from the A / D converter 210 to the arithmetic element 400 is performed by the transfer shift register 410.
  • each of the 8/0 converters 210 is connected to the register matrix 401 of the first arithmetic element 400 (1, y) of the corresponding row in the parallel processing mechanism 14. It may be connected.
  • the pixel data I (x, y) output from the A / D converter 210 of each row is adjacent to the corresponding arithmetic element 400 (x, y) in the X direction.
  • the transfer is performed by sequentially performing the transfer between the register matrices 401 of the arithmetic elements 400 (1, y) to 400 (x, y).
  • the transfer shift register 410 when the transfer shift register 410 is not provided, extra time is required to transfer the image data to each arithmetic element 400 in addition to the arithmetic time shown in Table 1.
  • image processing as shown in Table 1, most arithmetic processing can be performed in less than 0.4 ms. Therefore, even if the transfer time is taken into account, most image processing can be performed in less than 1 millisecond, and it has sufficient high-speed performance.
  • the AZD converter 210 is configured to include the charge amplifier 221.
  • the AZD converter 210 and the charge amplifier 221 are separately provided, and FIG. , An amplifier array 12 composed of N 2 charge amplifiers 22 1 is connected to the light receiving element array 11, and an A / D converter array 1 3 composed of N 2 AZD converters 2 10 May be provided between the amplifier array 12 and the parallel processing mechanism 14.
  • each of the amplifiers 221 in the amplifier array 12 sequentially charges the electric charge output from a total of N 1 light receiving elements 120 on the corresponding row 110 of the light receiving element array 11 with a voltage.
  • the signal is converted into a signal, and the obtained analog voltage signal is output to the corresponding AZD converter 210 in the AZD converter array 13.
  • the AZD converter 210 sequentially performs A / D conversion of the analog voltage signal from the charge amplifier 221 and supplies the analog voltage signal to the parallel processing mechanism 14.
  • the sum calculation processing shown in FIG. 10B is performed in order to obtain the sum of the image intensity and the moment in the x / y direction.
  • a circuit for calculating the sum of outputs may be added to the output bus 155, and the sum may be calculated by the circuit.
  • the high-speed visual sensor device according to the present invention is widely used for visual recognition processing such as FA robot control.

Description

明細書 高速視覚センサ装置 技術分野
本発明は、 画像処理機能を備えた高速視覚センサ装置に関する。 背景技術
F Aシステム等でロボットを高速で動作させるためには、 高速の画像 処理が必要とされる。 例えば、 視覚センサとァクチユエ一夕の間でフィ 一ドバックループを形成するロボッ卜の場合、 ァクチユエ一夕はミリ秒 単位で制御可能であるため、 本来はこれに対応した画像処理速度が必要 になる。 ところが、 現状のビジョンシステムでは画像処理速度がビデオ フレームレー卜に限られているため、 この画像処理速度に合わせた低速 動作しかできず、 口ポットの性能を十分に活かしきれていなかった。 一方、 高速 C C Dカメラの中には 1ミリ秒程度で画像を撮像できるも のもあるが、 これらは撮像した画像をいつたんメモリに貯えて、 後から 読み出して処理を行う機構になっているため、 画像解析などの用途には 使えるが、 実時間性はほとんどなく、 口ポット制御などの用途には適用 できなかった。
このような問題を解決するため、 画像の取込部と処理部を一体として 取り扱うビジョンチップの研究が進んでおり、 マサチューセッツ工科大 学、 カリフォルニア工科大学、三菱電機などの研究が知られている ("An Object Position and Orientation IC with Embedded Imaeer''^ David L. Standley ("Solid State Circuits", Vol. 26, No. 12, Dec. 1991, pp. 1853- 1859, IEEE), "Computing Motion Using Analog and Binary Resistive Networks" > James Hutchinson, et al.("Computer", Vol. 21, March 1988, pp.52 - 64, IEEE)、及び、 "Artificial retinas -fast, versatile image processors" > Kazuo Kyuma et al., ("Nature", Vol. 372, 10 November 1994)。 しかし、 これらは主として集積化の容易なアナログの固定回路 を用いており、 出力信号の後処理が必要であったり、 画像処理の内容が 特定用途に限定されていて汎用性がないなどの問題点があった。
これらに対して汎用的な画像処理を行うことができるビジョンチップ としては、 特開平 1 0— 1 4 5 6 8 0号公報に開示された技術が知られ ている。 この技術は、 受光素子と 1対 1に対応させて演算素子を設け、 A / D変換器を受光素子の行毎に設けているため、 並列処理により演算 時間を短縮するとともに、 受光素子と演算素子間の伝送線を少なくする ことができ、 両者の集積度を最適にすることができるといった利点があ る。
しかしながら、 多くの画像処理において必要とされる情報である画像 の重心( 1次モ一メン卜) を演算する場合には、その画素の位置情報(X 方向の位置、 y方向の位置) と画素デ一夕との演算を行うので、 予めそ れぞれの画素の位置情報をそれぞれの演算素子のメモリーに保管してお く必要がある。 上記特開平 1 0— 1 4 5 6 8 0号公報の技術では、 まず 位置情報を制御回路から順に各演算素子に転送しておき、 その位置デ一 夕と、 受光素子からの画像デ一夕を演算して出力しなければならず、 位 置情報の転送に時間を要してしまう。 こうした基本的な画像演算処理の 高速化が望まれていた。 発明の開示
そこで、 本発明は、 こうした問題点に鑑みて、 簡単な回路構成で、 基 本的な画像演算を高速に処理することが可能な多画素数の高速視覚セン サ装置を提供することを課題としている。
上記課題を解決するために本発明の高速視覚センサ装置は、 複数の受 光素子が複数の行及び列に 2次元状に配列されて構成された受光素子ァ レイと、 複数の A Z D変換器が該受光素子ァレイの該複数の行に 1対 1 に対応して 1次元状に配列されて構成され、 各 A Z D変換器が、 該対応 する 1行中の受光素子から順次読み出された出力信号をアナログ ·デジ タル変換する A Z D変換器アレイと、 複数の演算素子が、 該受光素子ァ レイの該複数の受光素子と 1対 1に対応して複数の行及び列に 2次元状 に配列され、 各演算素子が該 A Z D変換器アレイから転送されたデジ夕 ル信号について所定の演算を行う並列演算素子アレイからなる並列処理 機構と、 複数の列方向データ転送用データラインが前記並列処理機構の 各列と 1対 1に対応して設けられ、 各列方向データ転送用データライン が、 対応する列に存在する複数の演算素子を接続し該対応する列の各演 算素子とのデータ転送を行う列方向データ転送用バスと、 複数の行方向 データ転送用デ一夕ラインが前記並列処理機構の各行と 1対 1に対応し て設けられ、 各行方向データ転送用データラインが、 対応する行に存在 する複数の演算素子を接続し該対応する行の各演算素子とのデ一夕転送 を行う行方向データ転送用バスと、 前記受光素子アレイ、 前記 A / D変 換器アレイ、 前記並列処理機構、 前記列方向データ転送用バス、 及び、 前記行方向データ転送用バスを制御する制御回路とを備えることを特徴 とする。
本発明によれば、 受光素子と 1対 1に対応させて演算素子が設けられ ているので、 画像処理演算を並列処理により高速で行うことができる。 また、 A Z D変換器を各行毎に設けることで伝送路の本数が少なくて済 むという利点がある。
さらに、 各演算素子に対して行方向および列方向に専用のデータバス を配置しているので、 様々な画像処理演算を行うことができ、 したがつ て、 半導体による集積化に適したアーキテクチャを堅持したまま、 柔軟 な処理能力を達成できる。
例えば、 制御回路は、 各列方向デ一夕転送用データラインに対し、 対 応する列の位置情報を対応する列の演算素子にデータ転送させ、 各行方 向データ転送用データラインに対し、 対応する行の位置情報を対応する 行の演算素子にデータ転送させ、 各演算素子に対し、 該デ一夕転送され た対応する行及び列の位置情報に基づき、 デジタル信号に対する所定の 重心演算を行わせる重心演算制御部を有することが好ましい。この場合、 専用のデ一夕バスを行方向および列方向に配置しているので、 画像処理 の基本演算である重心演算で必要となる位置情報を少ないデータ転送系 統で効率的に転送することができる。
また、 該専用のデ一夕バスにより、 各演算素子に対して個別にァクセ スすることも可能となっている。
このため、 例えば、 制御回路は、 各列方向デ一夕転送用データライン と各行方向データ転送用デ一夕ラインのそれぞれに対し所定の演算制御 データをデータ転送させることで、 所定の演算素子に対しデジタル信号 に対する所定の演算を行わせる所定素子演算制御部を有することが好ま しい。 この場合、 個々の演算素子に異なった演算処理を実行させること ができる。
さらに、 制御回路は、 各列方向データ転送用データラインと各行方向 データ転送用データラインのそれぞれに対し所定の演算制御デ一夕をデ 一夕転送させることで、 対応する行及び列の演算素子の演算結果データ を制御回路へ転送させるデータ転送制御部を有することが好ましい。 こ の場合、 例えば、 特定の演算素子の演算結果を制御回路に転送させるこ ともできる。 ここで、 列方向データ転送用バス及び行方向データ転送用バスのそれ ぞれに対応するデ一夕バッファをさらに備えていることが好ましい。 デ —夕バッファを設けることで、 制御回路とデータ転送用バスとのデータ 転送速度が低くても高速でのデータ転送が可能となる。 並列処理機構、 データ転送用バス、 データバッファとを集積化すれば、 演算素子からバ ッファまでのデ一夕転送の高速化を比較的容易に行える。
また、 並列処理機構が、 さらに、 複数の転送用シフトレジスタが複数 の A / D変換器と複数の演算素子行の各々と 1対 1に対応して配列され、 各転送用シフトレジス夕が、 対応する A Z D変換器から出力された対応 する受光素子行に所属する受光素子の出力信号に相当するデジタル信号 を、 対応する行に所属する所定の演算素子に順次転送する転送用シフト レジス夕アレイを有することが好ましい。 このように演算素子への転送 を専用のシフトレジス夕により行うことで転送中でも演算処理を行うこ とが可能である。 したがって、 転送処理、 演算処理とも待ち時間を少な くして効率良く行うことができ、 全体の処理時間を短縮できる。 この結 果、 パイプライン的な動作が可能となり、 高速での画像処理、 特に実時 間的な処理が可能となる。 図面の簡単な説明
第 1図は、 本発明の実施形態に係る高速視覚センサ装置のブロック図 である。
第 2図は、 実施形態に係る高速視覚センサ装置の概略構成図である。 第 3図は、 実施形態に係る高速視覚センサ装置の備える制御回路の構 成ブロック図である。
第 4図は、 実施形態に係る高速視覚センサ装置の備える受光素子ァレ ィ、 及び、 A / D変換器アレイの回路構成図である。 第 5図は、 第 4図の AZD変換器アレイの備える積分回路の詳細回路 構成図である。
第 6図は、 実施形態に係る高速視覚センサ装置の備える演算素子及び 転送用シフトレジス夕のブロック図である。
第 7 (A) 図は、 第 6図の演算素子の備えるレジスタマトリックスの 回路図である。
第 7 (B) 図は、 第 6図の演算素子の制御タイミングチヤ一トである。 第 8図は、実施形態に係る高速視覚センサ装置の動作フロー図である。 第 9図は、 第 8図中の工程 S 1 1 0の一例としての重心演算処理工程 の動作フロー図である。
第 1 0 (A) 図は、 第 9図の重心演算処理工程のうちの画像強度総和 演算処理工程の動作フロー図である。
第 1 0 (B) 図は、 第 1 0 (A) 図の画像強度総和演算処理工程のう ちの総和演算処理工程の動作フロー図である。
第 1 0 (C) 図は、 第 1 0 (A) 図の画像強度総和演算処理工程のう ちの画素選択処理工程の動作フロー図である。
第 1 1図は、 第 9図の重心演算処理工程のうちの X方向座標演算処理 工程の動作フロー図である。
第 1 2図は、 第 9図の重心演算処理工程のうちの y方向座標演算処理 工程の動作フロー図である。
第 1 3図は、 第 8図中の工程 S 1 1 0の一例としての所望位置演算処 理工程の動作フロー図である。
第 14図は、 第 8図中の工程 S 1 1 0の一例としての演算一抽出処理 工程の動作フロー図である。
第 1 5図は、 第 8図中の工程 S 1 1 0の一例としての画像検索処理ェ 程の動作フロー図である。 第 1 6図は、 第 8図中の工程 S 1 1 0中に行われる前処理の一例とし てのエツジ抽出処理工程の動作フロー図である。
第 1 7図は、 本発明に係る高速視覚センサ装置の変更例のブロック図 である。
第 1 8図は、 本発明に係る高速視覚センサ装置の他の変更例のブロッ ク図である。 発明を実施するための最良の形態
本発明の実施形態に係る高速視覚センサ装置を第 1図〜第 1 6図に基 づき説明する。
なお、 図面の説明においては同一要素には同一符号を付し、 重複する 説明を省略する。
第 1図は、 本実施形態に係る高速視覚センサ装置 1 0のブロック図で ある。 また、 第 2図に、 当該センサ装置 1 0の構成例を示す。
まず、 第 1図により、 センサ装置 1 0全体の構成を簡単に説明する。 本実施形態の高速視覚センサ装置 1 0は、 受光素子アレイ 1 1と、 AZ D変換器アレイ 1 3と、 並列処理機構 14と、 制御回路 1 5と、 X方向 データバス 1 7及び y方向デ一夕バス 1 8と、 X方向デ一夕バッファ 1 9及び y方向データバッファ 20、 インストラクション Zコマンドバス 1 6、 及び、 後述する出力バス 1 5 5 (第 6図) とから構成されている。 受光素子アレイ 1 1には、 N 1個 xN 2個の受光素子 1 20が 2次元 状 (すなわち、 N l列xN 2行) に配置されている。 すなわち、 受光素 子アレイ 1 1は、 N 1個の受光素子 1 20が水平方向 (X方向) に並ん で構成された水平受光部 1 1 0が、 N 2個、 水平方向 (X方向) に直交 する垂直方向 (y方向) に配列されて構成されている。
AZD変換器アレイ 1 3には、 N 2個の AZD変換器 2 1 0が 1次元 状 (垂直方向 (y方向)) に配列されている。 当該 N 2個の A / D変換器 2 1 0は、 受光素子アレイ 1 1内の N 2個の水平受光部 1 1 0に 1対 1 に対応しており、 対応する水平受光部 1 1 0に所属する受光素子 1 2 0 から出力された電荷を順次電圧信号に変換しさらに A Z D変換するため のものである。
並列処理機構 1 4には、 N 1個 x N 2個の演算素子(P E (processing element) ) 4 0 0が、受光素子 1 2 0と 1対 1に対応して、 2次元状(す なわち、 N 1列 x N 2行) に配置されて構成された演算素子アレイ 4 0 が設けられている。 この演算素子アレイ 4 0には、 その N 2個の演算素 子行に 1対 1に対応して、 N 2個の転送用シフトレジスタライン (画像 転送用シフトレジスタライン) 4 2 0が付加されている。 各転送用シフ トレジス夕ライン 4 2 0は、対応する行の演算素子 4 0 0の個数(N 1 ) に等しい N 1個の転送用シフトレジス夕 (画像転送用シフトレジス夕) 4 1 0が直列接続されて構成されている。 各転送用シフトレジスタ 4 1 0が、 対応する行内の対応する演算素子 4 0 0に接続されている。
制御回路 1 5は、 本センサ装置 1 0の回路全体に命令信号やデータ等 を送って制御するためのものである。 X方向データバス 1 7は、 各列ご との演算素子 4 0 0と接続され、 列毎の各演算素子 4 0 0にデータを転 送するためのものである。 また、 y方向データバス 1 8は、 各行ごとの 演算素子 4 0 0と接続され、 行毎の各演算素子 4 0 0にデ一夕を転送す るためのものである。 さらに、 X方向データバッファ 1 9が X方向デー 夕バス 1 7と制御回路 1 5とに接続されており、 y方向デ一夕バッファ 2 0が y方向データバス 1 8と制御回路 1 5とに接続されている。 こう して、 X方向データバス 1 7は、 X方向データバッファ 1 9を介して制 御回路 1 5と接続され、 y方向データバス 1 8は、 y方向データバッフ ァ 2 0を介して制御回路 1 5と接続されている。 インストラクショノ、 / コマンドバス 1 6は、 制御回路 1 5からの信号を受光素子アレイ 1 1、 A/D変換器アレイ 1 3、 及び、 並列処理機構 14に送るためのもので ある。 なお、 後述する第 6図に示すように、 制御回路 1 5は、 さらに、 単一の出力バス 1 55を介して全演算素子 400と接続されている。 本センサ装置 1 0は上記構成となっているため、 並列処理機構 14と 受光素子アレイ 1 1との間を、 N 2本のデータラインで接続することが できる。 したがって、 第 2図に示されるように受光素子アレイ 1 1と並 列処理機構 14とを別々の基板に形成し、 個々の動作を確認できる構成 とすることで、 センサ装置 1 0の安定した生産が可能となっている。 ま た、 このように、 受光素子アレイ 1 1と並列処理機構 14とを別々の基 板に形成することで、 双方を高集積化することが可能であり、 また、 そ れぞれの装置の特性に合わせた加工工程を採用できる点からも、 安定し た生産が可能となっている。 X方向、 y方向のそれぞれのデータバス 1 7、 1 8及びデータバッファ 1 9、 20は、 図示されているように、 並 列処理機構 14と同一の基板上に形成してもよいし、 別の基板上に形成 してもよい。 一体として集積化すれば、 デ一夕バッファ 1 9、 20と演 算素子 400間のデ一夕転送速度を高速化させることが容易であり、 特 に、 好ましい。 また、 本センサ装置 1 0の各構成要素は、 全て CMOS プロセスによって作成可能であるため、 すべての構成要素を 1チップ化 することも可能であり、 これにより大幅なコストダウンを図ることもで さる。
続いて、 各回路の内部構成について説明する。
第 3図は、 制御回路 1 5の構成ブロック図である。 制御回路 1 5は、 C PU 1 50, メモリ 1 5 1 , 画像取り込み制御部 300 (第 4図)、 及 び、 外部との入出力インターフェース 1 52等が、 バス 1 53で接続さ れて構成されている。 メモリ 1 5 1には、 C PU 1 50によって実行さ れる後述の視覚センサ処理プログラム (第 8図)、 及び、 当該視覚センサ 処理プログラム内の画像処理ステップ (第 8図の S 1 1 0) において並 列処理機構 14の画像並列処理を制御するためのプログラム (例えば、 第 9図〜第 1 2図、 第 1 3図、 第 14図、 第 1 5図、 第 1 6図) が格納 されている。これら視覚センサ処理プログラムや画像処理プログラムは、 外部装置 (例えば、 外部コンピュータ) 1 000より、 入出力インタ一 フエ一ス 1 52を介して、 メモリ 1 5 1に書き込まれる。 なお、 バス 1 53は、 図示しないコマンドバスゃデ一夕バスを備えており、 第 1図の インストラクション /コマンドバス 1 6やデータバッファ 1 9 , 20、 及び、 第 6図の出力バス 1 55に接続されている。
C PU 1 50は、 メモリ 1 5 1内の視覚センサ処理プログラム (第 8 図) に基づいて、 画像取り込み制御部 300を介して受光素子アレイ 1 1と AZD変換器アレイ 1 3とを制御すると共に、 並列処理機構 14を 制御する。 より詳しくは、 C PU 1 50は、 画像取り込み制御部 300 (第 4図) を制御して (第 8図の S 1 0 1)、 受光素子アレイ 1 1と A/
D変換器アレイ 1 3に画像の取り込みを行わせる。 C PU 1 50はまた、 並列処理機構 1 4内の転送用シフトレジス夕 4 1 0によるデ一夕転送と 演算素子 400による演算とを制御する(第 8図の S 1 02〜S 1 04、 S 1 1 0)しとで、 S 丄 MD (single instruction ana multi data stream) 型の並列演算処理を行わせる。 C PU 1 50は、 さらに、 並列処理機構 14の並列演算処理実行中必要な演算を行ったり、 並列処理機構 14に よる処理結果に基づいて必要な演算や判別動作を行う。 C PU 1 50は、 さらに、 入出力イン夕一フェース 1 52を介して、 外部装置 1 000た る外部コンピュータとの通信を行ったり、 別の外部装置 1 000たる外 部ァクチユエ一夕を制御したりする。 例えば、 CPU 1 50は、 得られ た演算結果を外部コンピュータに出力したり、 当該演算結果に基づき外 部ァクチユエ一夕を制御したりする。
次に、 画像取込部たる受光素子アレイ 1 1と AZD変換器アレイ 1 3 の構成を、 第 4図及び第 5図を参照して詳細に説明する。
受光素子アレイ 1 1は、光を検出する受光部として機能し、 A/D変 換器アレイ 1 3は、当該受光部 1 1からの出力信号を電流ノ電圧変換し、 さらに、 A/D変換処理する信号処理部として機能する。 制御回路 1 5 の画像取り込み制御部 3 0 0が、 受光素子アレイ 1 1と A ZD変換器ァ レイ 1 3に接続されており、 当該受光部 1 1及び信号処理部 1 3に動作 夕イミングの指示信号を通知する夕イミング制御部として機能する。 まず、 受光素子アレイ (受光部) 1 1の構成を説明する。
第 4図に示すように、 受光素子アレイ 1 1では、 各受光素子 1 2 0が、 入力した光強度に応じて電荷を発生する光電変換素子 1 3 0と、 光電変 換素子 1 3 0の信号出力端子に接続され、 水平走査信号 V, ( i = 1〜N 1 ) に応じて光電変換素子 1 3 0に蓄積された電荷を出力するスィツチ 素子 1 40とを 1組として構成されている。 この受光素子 1 2 0が水平 方向 (X方向) に沿って N 1個配置され、 各受光素子 1 2 0のスィッチ 素子 1 40が電気的に接続されて水平受光部 1 1 0を構成している。 そ して、 この水平受光部 1 1 0を水平方向に直交する垂直方向 (y方向) に沿って N 2個配列することにより受光部 1 1が構成されている。 した がって、 受光部 1 1には、 受光素子 1 2 0し 』 ( i = l〜N l、 j = 1 〜N 2) が 2次元状に N 1列 xN 2行、 配列されている。
次に、 同じく第 4図により、 信号処理部たる A/D変換器アレイ 1 3 の構成を説明する。
AZD変換器アレイ 1 3は、 AZD変換器 2 1 0j ( j = 1 ~N 2) を N 2個配置して構成されている。各 A/D変換器 2 1 Oj ( j = 1〜N 2) は、 対応する水平受光部 1 1 0j ( j = 1〜N 2) から転送されてきた電 荷を個別に取り出して処理し、 この電荷強度に対応するデジタル信号を 出力するためのものである。
各 AZD変換器 2 1 0j は、 チャージアンプ 2 2 を含む積分回路 2 2 0j と、 比較回路 2 3 0,、 及び、 容量制御機構 2 4 0; の 3つの回路 から構成されている。
積分回路 2 2 0』 は、水平受光部 1 1 0] からの出力信号を入力として、 この入力信号の電荷を増幅するチャージアンプ 2 2 lj と、 チャージァ ンプ 2 2 の入力端子に一方の端が接続され、 出力端子に他方の端が 接続された可変容量部 2 2 2j と、チャージアンプ 2 2 1} の入力端子に 一方の端が接続され、 出力端子に他方の端が接続されたスィッチ素子 2 2 3; とからなる。 スィッチ素子 2 2 3 は、 画像取り込み制御部 3 0 0 からのリセット信号 Rに応じて ON、 OF F状態となり、 積分回路 2 2 0J の積分、 非積分動作を切り替えるためのものである。
第 5図は、 積分回路 2 2 0の詳細構成図である。 本図は、 4ビットつ まり 1 6階調の分解能を持つ AZD変換機能を備える積分回路の例であ り、 以下、 この回路構成により説明する。
可変容量部 2 2 2は、 チャージアンプ 2 2 1の水平受光部 1 1 0から の出力信号の入力端子に一方の端子が接続された容量素子 C 1〜C 4と, 容量素子 C 1〜C 4の他方の端子とチャージアンプ 2 2 1の出力端子と の間に接続され、容量指示信号 (:^〜じ^ に応じて開閉するスィッチ素 子 SW 1 1〜SW 1 4と、 容量素子 C 1〜C 4とスィツチ素子 SW 1 1 〜SW 1 4との間に一方の端子が接続され、 他方の端子が GNDレベル と接続されて、容量指示信号 C21〜C24 に応じて開閉するスィツチ素子 S W2 1〜S W2 4とから構成されている。 なお、 容量素子 C 1〜C 4 の電気容量
Figure imgf000014_0001
は、
C: = 2 C2 = 4 C3= 8 C4 の関係を満たす。 ここで、 (:。 は積分回路 2 2 0で必要とする最大電気 容量であり、 受光素子 1 3 0 (第 4図参照) の飽和電荷量を Q。、 基準 電圧を VREF とすると、
し。 = Q。/
の関係を満たす。
再び、 第 4図に戻り、 A/D変換器 2 1 0j の積分回路 2 2 0j以外の 回路を説明する。 比較回路 2 3 0j は、 積分回路 2 2 0J から出力された 積分信号 Vs の値を基準値 VREF と比較して、 比較結果信号 Vc を出力 する。 容量制御機構 240j は、 比較結果信号 Vc の値から積分回路 2 2 03 内の可変容量部 2 2 2 に通知する容量指示信号 Cを出力すると 共に、 容量指示信号 Cに相当するデジタル信号 D 1を出力する。
なお、 以上、 A/D変換器アレイ 1 3が 4ビットつまり 1 6階調の分 解能を持つ場合について説明したが、 AZD変換器アレイ 1 3は、 6ビ ット、 8ビット等、他のビット構成の分解能を持つ構成であってもよい。 上記構成の画像取り込み部 1 1及び 1 3は、 制御回路 1 5内の画像取 り込み制御部 3 0 0により、 画像取り込みのタイミングを制御される。 第 4図に示すように、 画像取り込み制御部 3 0 0は、 全回路 1 1及び 1 3のクロック制御を行う基本タイミングを発生する基本夕イミング部 3 1 0と、 基本タイミング部 3 1 0から通知された水平走査指示に従って 水平走査信号 を発生する水平シフトレジスタ 3 2 0と、 リセット指 示信号 Rを発生する制御信号部 340とから構成されている。
次に、 並列処理機構 1 4の構成を説明する。
既述のように、 並列処理機構 1 4には、 第 1図に示すように、 受光素 子アレイ 1 1の N 2個の水平受光部 1 1 0 j ( j = 1〜N 2) 及び AZ D変換器アレイ 1 3の N 2個の A/D変換器 2 1 0; ( j = 1〜N 2) に対応して、 N 2個の転送用シフトレジスタライン 4 2 0』 ( j = l〜 N 2) が設けられている。 各転送用シフトレジスタライン 4 2 0 j ( j = 1〜N 2) には、 複数ビット (この場合、 4ビッ ト) の転送用シフト レジス夕 4 1 0 し 』が、 N 1個、 直列接続されている。 第 6図に示すよ うに、 コントローラ 1 5が、 インストラクション/コマンドバス 1 6を 介して、 各転送用シフトレジスタ 4 1 0 し j ( i = 1〜N 1、 j = 1〜 N 2) に接続されている。 コントローラ 1 5は、 転送開始信号を各シフ トレジスタ 4 1 0 し jに出力することより、 AZD変換器アレイ 1 3か らのデ一夕を必要な演算素子 4 0 0の位置まで転送させる。
また、 並列処理機構 1 4には、 N 1個 x N 2個の受光素子 1 2 0 し j
( i = l〜N l, j = l〜N 2) に 1対 1に対応して、 演算素子 4 0 0 し 』 ( i = l〜N l, j = l〜N 2) が N l xN 2個 2次元状に配列さ れている。 各演算素子 4 0 0 し 』 ( i = l〜N l , j = l〜N 2 ) は、 対応するシフトレジス夕ライン 4 2 0 j ( j = l〜N 2 ) の対応する転 送用シフトレジスタ 4 1 0 し j ( i = l〜N l, j = l〜N 2 ) に接続 されている。 第 6図に示すように、 コントローラ 1 5が、 インストラク ション Zコマンドバス 1 6を介して各演算素子 4 0 0 し jに接続されて おり、 当該演算素子 4 0 0における演算処理を制御する。
次に、 出力バス 1 5 5について説明する。
第 6図に示すように、 全演算素子 4 0 0が単一の出力バス 1 5 5に接 続されている。 ここで、 出力バス 1 5 5は、 単一の 1ビット信号線から 構成されている。 当該出力バス 1 5 5は、 全演算素子 4 0 0に接続され ているため、 全演算素子 4 0 0の出力の OR論理演算結果を制御回路 1 5に通信するワイヤ一ド〇R回路 (wired OR 回路) の機能を有する。 このため、 制御回路 1 5は、 全演算素子 4 0 0の出力信号をまとめてか ら受け取ることができ、 スキャンを用いることなく高速に出力信号を受 け取ることができる。
次に、 X方向データバス 1 7と y方向データバス 1 8について説明す る。
なお、 X方向データバス 1 7と y方向データバス 1 8としては、 例え ば、 制御回路 1 5から演算素子 4 0 0へのデ一夕転送 Z書き込み機能の みを有する一方向性のデータバスを利用することができる。
X方向データバス 1 7は、 第 1図に示すように、 複数 (この場合 N 1 個) の 1ビットデータライン 1 7 0 i ( 1≤ i≤N 1 ) から構成されて いる。 各 1ビットデータライン 1 7 0 i力、 対応する演算素子列 iに位 置する全 N 2個の演算素子 4 0 0 ( i 、 j ) ( 1≤ j ≤ N 2 ) と接続され ている。 各 1ビットデ一夕ライン 1 7 0 iはまた、 X方向デー夕バッフ ァ 1 9を介して、 制御回路 1 5に接続されている。 かかる構成により、 各 1ビットデ一夕ライン 1 7 0 iは、 制御回路 1 5からのデータを、 X 方向デ一夕バッファ 1 9を介して、 対応する列 i内に位置する各演算素 子 4 0 0 ( i 、 j ) に転送するようになっている。
同様に、 y方向データバス 1 8は、 複数 (この場合 N 2個) の 1ビッ トデータライン 1 8 0 j ( 1≤ j≤N 2 ) から構成されている。 各 1ビ ットデ一夕ライン 1 8 0 jが、 対応する演算素子行 j に位置する全 N 1 個の演算素子 4 0 0 ( i , j ) ( 1≤ i≤N 1 ) と接続されている。 各 1 ビットデータライン 1 8 0 iはまた、 y方向データバッファ 2 0を介し て、 制御回路 1 5に接続されている。 かかる構成により、 各 1ビットデ —タライン 1 8 0 iは、 制御回路 1 5からのデータを、 y方向デ一夕バ ッファ 2 0を介して、 当該対応する行 j 内に位置する各演算素子 4 0 0 ( i , j ) に転送するようになっている。
次に、 演算素子 4 0 0の構造について、 第 6図に示すブロック図を参 照して、 より詳細に説明する。 演算素子 4 0 0は、 各素子が共通の制御信号で制御される S I M D型 の並列処理を行う構造になっており、 1素子あたりのトランジスタ数を 削減し、 並列処理機構 1 4の集積化を図り、 素子数を増やすことができ るようになっている。
より詳しくは、 演算素子 4 0 0は、 4 X 8ビッ トのランダムアクセス 可能な 1ビットシフトのレジス夕マトリックス 4 0 1と、 Aラッチ 4 0 2 、 Bラッチ 4 0 3、 及び、 演算論理ユニット (A L U ) 4 0 4とで構 成されている。 レジスタマトリックス 4 0 1は、 データ保持と入出力の ためのものである。 より詳しくは、 レジス夕マトリックス 4 0 1は、 対 応する受光素子 1 2 0の出力信号に相当するデジタル信号 D 1をシフ卜 レジス夕 4 1 0から入力し収容するためのものである。 レジス夕マトリ ックス 4 0 1はまた、 4近傍の演算素子 4 0 0中のレジス夕マトリック ス 4 0 1と直接接続しており、 これらに収容されているデジタル信号を も収容することができる。 レジス夕マトリックス 4 0 1は、 さらに、 X 方向デ一夕バス 1 7の対応する X方向データライン 1 7 0 i、 及び、 y 方向デ一夕バス 1 8の対応する y方向デ一夕ライン 1 8 0 j に接続され、 両方のデ一夕バスを利用してデータ転送を行うことができるようになつ ている。 A L U 4 0 4は、 下位ビットから 1ビットずつ順次演算する順 次ビッ トシリアル演算を行うためのものである。 Aラッチ 4 0 2 、 Bラ ツチ 4 0 3は、 レジス夕マトリックス 4 0 1に保持されている信号を収 容し、 A L U 4 0 4での演算に供するためのものである。
以上の構成により、 演算素子 4 0 0では、 Aラッチ 4 0 2 、 Bラッチ 4 0 3がそれぞれレジス夕マトリクス 4 0 1内の任意のレジスタからデ —夕を読み込み, A L U 4 0 4がそのデータをもとに演算を行なう。 演 算結果は、 再び、 レジス夕マトリクス 4 0 1内の任意のレジス夕に書き 込まれる。 演算素子 4 0 0は、 この作業を 1サイクルとして繰り返し行 うことで、 さまざまな演算を実行できるようになつている。
より詳しくは、 ALU404は、 1ビットの演算器で、 論理積 (AN D), 論理和 (OR), 排他的論理和 (XOR), 加算 (ADD)、 C a r r yつき加算などの演算機能を有している。 1度に実行できるのは 1ビ ットの演算だけであり, 多ビット演算は 1ビットずつシリアルに演算を 行なうことで実行する。 複雑な演算は上記演算機能の組み合わせとして 記述できるため、 ALU404に対し上記演算機能の中から毎回一つず つを選択させながら繰り返し演算を行わせることで、 複雑な演算を実現 するようになつている。 例えば、 乗算は加算の組み合わせとして記述で きるため、 加算を複数回繰り返し行うことで実現する。 減算は、 引こう とする数をビット反転して 1を足すことで負の数とし、 これを足し算す ることで実現できる。 割り算については、 例えば、 割る数を 8, 4, 2 というような数字にして、 ビットシフトする (例えば、 「割る数が 8」 の 場合、 ビットを 3ビット右にシフトする) ことにより実現する。 さらに、 絶対値を求めるためには、 マイナスの数 (サインビットが 1 ) に対して、 符号反転、 すなわち、 ビット反転して 1を足すことで、 実現する。
レジス夕マトリックス 40 1は、 第 7 (A) 図に示すように、 ランダ ムにアクセスできる 1ビットのレジス夕 40 1 0を 24個並べ、さらに、 外部や近傍演算素子 400との入出力用に 8個の機能レジスタ 40 1 2 を並べた構成となっており、 これら全体が 1つのアドレス空間として扱 われる。 第 6図において、 各レジス夕 40 1 0、 40 1 2内に記載され ている数は、 当該レジス夕に割り当てられたアドレスを示す。 具体的に は、 24個のレジス夕 40 1 0にアドレス 「0」 〜 「23」 が割り振ら れ、 8個の機能レジス夕 40 1 2にアドレス 「24」 〜 「3 1」 が割り 振られている。 かかる構成により、 レジスタ内のデ一夕を読み書きする のと同じ方法で入出力データとアクセスできるようになつている。 第 7 ( A) 図に示すように、 レジスタマトリックス 4 0 1は、 これら 3 2個のレジス夕 4 0 1 0 , 4 0 1 2に接続された 1個の O R回路 4 0 1 4をさらに備えており、 レジスタ 4 0 1 0 , 4 0 1 2は、 すべて、 こ の O R回路 4 0 1 4を介して、 Aラッチ 4 0 2及び Bラッチ 4 0 3に接 続されている。 レジス夕 4 0 1 0, 4 0 1 2の内の一つのアドレスが選 択されると、 選択されたレジス夕のみがその内容を出力し, 選択されて いないレジスタは全て 0を出力する。 全てのレジス夕の O Rをとつたも のが、 レジス夕マトリックス 4 0 1全体の出力として、 Aラッチ 4 0 2 または Bラッチ 4 0 3に出力される。
機能レジス夕 4 0 1 2は主に入出力に用いられる。 具体的には、 アド レス 「2 9」 の機能レジスタ 4 0 1 2は、 対応する転送用シフトレジス 夕 4 1 0に接続されており、 当該転送用シフトレジス夕 4 1 0からの入 力に用いられる。 また、 アドレス 「2 4」 の機能レジスタ 4 0 1 2は、 上下左右の 4近傍の演算素子 4 0 0のレジス夕マトリックス 4 0 1への 出力に用いられる。 アドレス 「2 4」 〜 「2 7」 の機能レジスタ 4 0 1 2は、 それぞれ、 当該 4近傍の演算素子 4 0 0のうちの対応する 1個の 演算素子 4 0 0のレジスタマトリックス 4 0 1からの入力に用いられる: アドレス 「2 8」 の機能レジスタ 4 0 1 2は、 出力バス 1 5 5に接続さ れており、 制御回路 1 5への出力アドレスとして用いられる。 なお、 全 演算素子 4 0 0 ( i , j ) におけるレジス夕マトリックス 4 0 1のアド レス 「2 8」 が当該単一の出力バス 1 5 5に接続されている。 アドレス 「3 0」 の機能レジスタ 4 0 1 2は、 y方向デ一夕バス 1 8内の対応す る y方向データライン 1 8 0 j に接続されており、 当該 y方向データラ イン 1 8 0 jからのデータの入力に用いられる。 また、 アドレス 「3 1」 の機能レジス夕 4 0 1 2は、 X方向データバス 1 7内の対応する X方向 デ一夕ライン 1 7 0 i に接続されており、 当該 X方向デ一夕ライン 1 7 0 iからのデータの入力に用いられる。 なお、 アドレス 「28」 の機能 レジスタ 40 1 2は、 読み込み時には常に 0を読み込むようになつてい る。
制御回路 1 5がレジス夕マトリクス 40 1へのアクセスと ALU 40 4の演算処理を制御することにより、 演算素子 400における演算及び 入出力の全処理を制御する。 例えば、 転送用シフトレジス夕 4 1 0から の入力をレジスタマトリックス 40 1のアドレス 「0」 に書き込みたい ときは, 0 (レジス夕アドレス 「28」) とセンサ入力 (レジス夕ァドレ ス 「2 9」) の ORをとつてレジス夕アドレス 「0」 に書き込む命令を演 算素子 400に出力する。 なお、 制御回路 1 5は、 第 7 (B) 図に示す ように, 基本クロック CLKの 4倍を 1サイクルとし, この間に、 各種 クロック CLK2, CLK 4を供給しながら、 Aラッチの読み込み、 B ラッチの読み込み, 演算結果の書き込みを順に行なう。 かかる処理を複 数サイクル繰り返し行うことで、 レジス夕マトリックス 40 1への必要 な入出力と ALU 404による演算を行う。
次に、 第 4図〜第 6図を参照して、 本実施形態の動作について説明す る。
まず、 画像取り込み部 1 1及び 1 3の動作について説明する。
画像取り込み制御部 300は、 まず、 リセット信号 Rを有為に設定し、 第 5図に示す可変容量部 222のSW1 1〜SW14を全て「ON」、 S W2 :!〜 SW24を全て 「OF F」 状態にする。 これにより、 チャージ アンプ 22 1の入力端子と出力端子間の容量値を C。 に設定する。 それ と同時に、 第 4図に示す全てのスィッチ素子 140を 「〇FF」 状態と し、水平走査信号 V iをいずれの受光素子 1 20^ も選択しない状態に 設定する。 この状態から、 リセット指示信号 Rを非有為に設定し、 各積 分回路 220での積分動作を開始させる。 積分動作を開始させると、第 4図に示す N2個の各水平受光部 1 1 0j にある第 1番目の受光素子 1 20 ; のスィッチ素子 140のみを 「0 N」 とする水平走査信号 V, が出力される。 スィッチ素子が 「ON」 に なると、 それまでの受光によって光電変換素子 1 30に蓄積された電荷 Q, は、 電流信号として受光部 1 1から出力される。 つまり、 光電変換 素子の信号を読み出すことができる。 電荷 は容量値 C。 に設定され た可変容量部 222に流入する。
次に、 第 5図により積分回路 220内部の動作を説明する。 容量制御 機構 240 (第 4図参照) は、 SW 1 2〜SW 14を開放した後、 SW 22〜 24を閉じる。 この結果、 積分信号 Vs は、
Figure imgf000022_0001
で示す電圧値として出力される。 積分信号 Vs は、 比較回路 2 30に入 力して、 基準電圧値 VREF と比較される。 ここで、 Vs と VREF の差が、 分解能の範囲以下、 すなわち土 (C4Z2) 以下の時は、 一致したものと みなし、 更なる容量制御は行わず、 積分動作を終了する。 分解能の範囲 で一致しないときは、 更に容量制御を行い、 積分動作を続ける。 例えば、 VS>VREF であれば、 容量制御機構 240は、 更に、 SW22を開放 した後に、 SW1 2を閉じる。 この結果、 積分信号 Vs は、
Vs = Q/ + C2)
で示す電圧値となる。 この積分信号 Vs は、 後続の比較回路 230 (第 4図) に入力して、 基準電圧値 VREF と比較される。 一方、 VS<VREF であれば、 容量制御機構 240は、 更に、 SW1 1及び SW22を開放 した後に、 SW1 2及び SW2 1を閉じる。 この結果、 積分信号 Vs は、 VS = Q/C2
で示す電圧値となる。 この積分信号 Vs は、 後続の比較回路 2 30に送 出され、 基準電圧値 VREF と比較される。 以後、 同様にして、 積分回路 220→比較回路 230—容量制御機構 240→積分回路 220のフィードバックループによって、 積分信号 V sが基準電圧値 VREF と分解能の範囲で一致するまで、 比較及び容量設 定 (S W 1 1〜S W 14及び SW2 ;!〜 S W24の ONZO F F制御) を順次繰り返す。 積分動作が終了した時点の SW1 1〜SW14の ON Z〇F F状態を示す容量指示信号 (:^〜じ の値は、 電荷 の値に対 応したデジタル信号であり、 最上位ビット (MS B) の値が Cu、 最下 位ビット (L S B) の値が C14である。 こうして A/D変換が行われ、 これらの値をデジタル信号 D 1として、演算素子アレイ 14に出力する。 以上述べたように、 この装置では、 デジタル信号 D 1の各ビット値は、 MS B側から L S B側へ 1ビットずつ順に定まる。
このように、 容量 C 1〜C 4がーつずつ ONされながら、 比較電圧 V REFとの比較が行われ、 その比較結果が出力デジタル信号 D 1として出 力される。 すなわち、 まず、 容量 C 1がオンとされ、 積分信号 VS = Q /C 1となり、 この Vsが VREFと比較される。 Vsが大きければ " 1"、 小さければ " 0" となり、 これが MS B (最上位ビット) として出力さ れる。 次に、 C 2がオンとされ、 VS = QZ (C 1 +C 2) (MS 1 の時)、 または、 VS = Q/C 2 (MS B= 0の時) が得られ、 VREFと 比較される。 Vsが大きければ " 1"、 小さければ " 0" となり、 これが 2ビット目として出力される。 以上の処理が必要なビット数まで繰り返 されることで、 A/D変換が実行される。
第 1番目の受光素子 1 2 01:i の光電出力に相当するデジタル信号の 送出が終了すると、 リセット信号 Rが有為とされ、 再び、 非有為にして、 可変容量部 222』 の容量値を初期化した後に、各水平受光部 1 1 Oj の 第 2番目の受光素子 1 202 j のスィッチ素子 140のみを 「ON」 と する水平走査信号 V2 を出力し、 上述と同様の動作により、 第 2番目の 受光素子 1 2 0 の光電出力を読み出し、 これに相当するデジタル信 号を送出する。 以下、 水平走査信号を切り替えて、 全受光素子 1 2 0の 光電出力を読み出し、 相当するデジタル信号を並列処理機構 1 4に出力 する。
次に、 演算素子 4 0 0の動作を第 6図により説明する。
A / D変換されたデジタル信号は、 転送用のシフトレジス夕 4 1 0を 介してそれぞれの受光素子 1 2 0 jに対応する演算素子 4 0 0 し jの レジスタマトリックス 4 0 1に送られる。 この転送は、 対応する転送用 シフトレジス夕ライン 4 2 0』内において、 転送用シフトレジス夕 4 1 0に格納された信号を順次隣の画素の転送用シフトレジスタ 4 1 0に転 送することによって行われる。 転送用シフトレジス夕 4 1 0を備えるこ とにより、 演算素子 4 0 0での演算処理と独立して転送用シフトレジス 夕での転送処理を行うことができる。 したがって、 演算素子 4 0 0にお いて処理演算を行わせている間に、 転送用シフトレジスタ 4 1 0に次の データを転送させるパイプライン的な処理が可能となり、 演算素子 4 0 0におけるより高速なフレームレートでの演算処理が可能となる。また、 転送用シフトレジス夕 4 1 0は、 制御回路 1 5からの転送開始の信号に 基づいて、 A Z D変換されたデータの転送を開始し、 (行方向の素子数 X アナログレベル)分だけビットシフトによる転送を行った後、 「データ転 送完了」 の信号を制御回路 1 5に送り返すことで効率的な転送を行うこ とができる。 このように、 演算処理と転送処理を並列していわゆるパイ プライン処理を行うことにより、 両処理においてフレーム毎の処理の間 の待ち時間を減らすことができ、 より高速な画像処理が可能となる。 演算素子 4 0 0内部での画像処理演算は、 以下の通りである。 すなわ ち、 必要に応じて、 各演算素子 4 0 0間でそれぞれのレジス夕マトリツ クス 4 0 1に収容された信号の転送を行い、 X方向データバス 1 7 、 y 方向データバス 1 8と各バッファ 1 9、 20を介した制御回路 1 5から のデータ、 制御信号の転送を行った後、 演算に必要な信号をレジス夕マ トリックス 40 1から Aラッチ 402と Bラッチ 40 3に読み出し、 A LU 404で所定の演算を行い、 計算結果を、 レジスタマトリックス 4 0 1及び出力バス 1 5 5を介して、 制御回路 1 5に出力する。
並列処理機構 14では、 上記画像処理演算を全演算素子 400におい て同時に並列処理するため、 極めて高速の演算が可能である。 制御回路 1 5は、 並列処理機構 14の計算結果を、 外部装置 1 000たる外部コ ンピュー夕や他の外部機器へ出力する。 例えば、 当該計算結果を、 外部 機器のオン/オフ信号として利用する。 制御回路 1 5は、 また、 並列処 理機構 14の計算結果に基づき、 必要な演算を行った後その演算結果を 外部回路 1 000に出力するようにしてもよい。
次に、 第 8図を参照して、 本センサ装置 1 0による画像入力から、 転 送、 及び、 演算終了までの一連の視覚センサ処理について説明する。 制御回路 1 5の C P U 1 50は、画像取り込み制御部 300 (第 4図) を制御することで、 リセット信号 Rの有為 Z非有為と水平同期信号 V i を順次切り替え、 もって、 受光素子アレイ 1 1の各行 j ( j = 1 , 〜N 2) において、 各受光素子 1 20 (以下、 受光素子 1 20 (x、 y) という) から出力された画像デ一夕 (フレームデータ :以下、 I (x, y) という) を順番に対応する AZD変換器 2 1 0 jを介して並列処理 機構 14に入力させる (S 1 0 1 )。
送られて来たデータを、 対応する各行 j内の転送用シフトレジス夕 4 1 0にて、 次々に転送させていく (S 1 02)。 そして、 受光素子 1 20 に対応する位置 ( i , j ) (以下、 (x、 y) という) の転送用シフトレ ジス夕 4 1 0,·, 」·にデータが転送されるまでこの転送処理を続ける (S 1 0 3)。 転送が終了したら、 転送用シフトレジス夕 4 1 0から対応する演算素 子 400し j (以下、 演算素子 400 (x、 y) という) のレジス夕マ 卜リックス 40 1へと、 当該画素のデータ I (x, y) を転送する (S 1 04)。 具体的には、 第 6図に示されるように、 複数ビッ ト (この場合、 4ビッ ト) で構成されている転送用シフトレジスタ 41 0からレジス夕 マトリックス 40 1へと 1ビットずつ順番にデータを格納していく。 次 に、 S 1 1 0において、 各演算素子 400を制御することにより、 必要 な並列演算処理を行う。
転送用シフトレジス夕 4 1 0が各演算素子 400へのデ一夕転送を完 了すると、 各演算素子 400を制御して S 1 1 0の並列演算処理を行つ ている間に次のフレームの処理へと移り (S 1 05)、 S 1 0 1〜S 1 0 3を実施して、 受光素子アレイ 1 1と AZD変換器アレイ 1 3、 及び、 転送用シフトレジス夕 4 1 0を制御して、 次のフレームの入力 Z転送動 作を行う。 一方、 各演算素子 400を用いた並列演算処理についても、 1フレームの処理 (S 1 1 0) が終了すると、 次のフレームの処理へと 移行し (S 1 06 )、 次のフレームの画像デ一夕が各転送用シフトレジス 夕 4 1 0から演算素子 400のレジス夕マトリックス 40 1へと転送さ れ(S 1 04)、当該次のフレームの並列演算処理を開始する(S 1 1 0)。 これを繰り返すことにより、 受光素子アレイ 1 1と AZD変換器アレイ 1 3、 及び、 転送用シフトレジスタ 4 1 0が次のフレームのデ一夕を入 力/転送している間 (S 1 0 1〜S 1 03) に演算素子 400を用いた 演算処理 (S 1 1 0) を行うことができ、 それぞれ無駄な待ち時間を減 らすことができる。
次に、 演算素子 400を用いた並列画像処理 (S 1 1 0) の実行動作 を、 いくつかの画像処理について詳細に説明する。 なお、 これら画像処 理工程では、 制御回路 1 5の C PU 1 50が全演算素子 400を同時に 並列制御するようになっており、 演算処理が非常に高速に行われる。 (実施例 1)
本実施形態では、 X方向データバス 1 7、 y方向データバス 1 8を介 して外部から高速で演算データあるいは演算制御データを各演算素子に 供給することができる。 したがって、 S 1 1 0の演算の際に各演算素子 400において画像情報以外のデータを必要とするような演算処理を行 う場合も、 極めて高速の演算が可能となる。 例えば、 画像処理工程 (S 1 1 0) において、 位置情報デ一夕を必要とする 「重心演算」 を行う場 合、この位置情報を外部からデータとして供給して重心演算処理を行う。 以下、 この重心演算処理を画像処理工程 (S 1 1 0) にて実行する場合 の動作を詳細に説明する。
なお、 制御回路 1 5のメモリ 1 5 1は、 各画素の X方向位置情報 (以 下、 単に 「xアドレス」 と呼ぶ) と y方向位置情報 (以下、 単に 「yァ ドレス」 と呼ぶ) とを予め格納している。 具体的には、 Xアドレスとし て、 「 1」 〜 「N 1」 の値を示す 2進数データを格納し、 yアドレスとし て、 「 1」 〜 「N 2」 の値を示す 2進数デ一夕を格納している。
ここで、 重心演算とは、 X方向および y方向のそれぞれについての重 みづけ総和の演算が基本となる演算である。 重心座標 Gcは、 画像上の 各画素位置 (x、 y) の画像強度のデ一夕を I (x, y) として以下の 計算式 ( 1) により求められる。
N2 Nl N2 Nl y— 1 -1 y-1 x-1
G,
N2 Nl N2 Nl (1) v-l -i ) ' y-1 x-1 )
つまり、 重心演算を行うためには、 各演算素子 40 0において当該画 素のデ一夕 I (x、 y) にその位置情報 (x、 y) を掛け合わせてその 和を求める必要があるため、 予め画素の位置情報 (x、 y) を各演算素 子に転送しておく。
重心の X座標を求める際には、 画像の X方向の位置情報と画像強度 I (x、 y) とを掛け合わせて x方向モーメント x · I (x、 y) を求め、 さらに、 全画素の X方向モーメントを足し合わせて得られる X方向モ一 メント総和∑∑ X · I (x、 y) を画像強度総和∑∑ I ( x、 y) で割 ることで、 重心の X座標を求めることができる。 なお、 画像強度総和∑ ∑ I (x、 y) は、 全画素の画像強度を足し合わせて求めることができ る。 重心の y座標についても、 同様に、 各画素について画像の y方向の 位置情報と画像強度 I (x、 y)とを掛け合わせて y方向モーメント y · I (x、 y) を求め、 さらに、 全画素の y方向モーメントを足し合わせ て得られる y方向モーメント総和∑∑ y · I (x、 y) を画像強度総和 ∑∑ I (x、 y) で割ることで得られる。
したがって、 入力画像の重心位置を求めるためには、 第 9図に示すよ うな重心演算処理 (S 300) を、 画像処理工程 S 1 1 0 (第 8図) に て行えば良い。 当該重心演算処理 (S 300) では、 まず、 S 3 50にて画像強度総 和∑∑ I (x、 y) を求め、 次に、 S 400にて、 重心の X座標を求め、 さらに、 S 500にて、 重心の y座標を求める。
なお、 重心演算処理 (S 300) がスタートした際には、 入力画像 D の各画素の画像デ一夕 I (x、 y) は、 既に、 S 1 04 (第 8図) にて、 転送用シフトレジス夕 4 1 0から各演算素子 400 (x, y) のレジス 夕マトリックス 40 1へ転送され、 当該レジスタマトリックス 40 1の ある領域へ格納されている。
まず、 画像強度総和 Σ Σ Ι (x、 y) の演算処理 (S 3 50 ) の処理 内容について、 第 1 0 (A) 図を参照して、 詳細に説明する
当該画像強度総和演算処理 (S 3 50 ) では、 C PU 1 50は、 まず、 S 360にて、 画像強度値 I (x、 y ) の総和を求めるための総和演算 処理を行う。
以下、 この総和演算処理 (S 360) について、 第 1 0 (B) 図を参 照して詳細に説明する。
まず、総和を求めようとする目的デ一夕 (この場合、画像デ一夕 I (x、 y )) を、 レジス夕マトリックス 40 1から Aラッチ 402に読み込ませ る (S 1 002 )。 すなわち、 レジス夕マトリックス 40 1に格納されて いる I (x, y) のデ一夕を下位ビットから Aラッチ 402に転送する。 次に、 各演算素子 400 (X, y) は、 それぞれ、 X方向において隣接 する画素位置 (x+ l, y) に存在する演算素子 400 (x + 1 , y) に格納されている目的デ一夕 (この場合、 画像デ一夕 I (x+ 1, y)) を、 レジス夕マトリックス 40 1間の転送によって、 該演算素子 400 (x、 y ) のレジスタマトリックス 40 1に転送 '格納する (S 1 00 4)。具体的には、 レジス夕マトリックス 40 1の近傍転送機能を利用し て隣の画素に格納されている画像デ一夕値を空いている領域に転送する < 次に、 当該転送されてきた隣接画素 (x+ 1, y) の目的デ一夕 (画像 データ I (x+ l, y)) を Bラッチ 403に読み込み (S 1 006)、 Aラッチ 402と Bラッチ 403の値の加算を行い(S 1 008)、加算 結果をレジスタマトリックス 40 1を介して (S 1 0 1 0) Aラッチ 4 02へと格納する (S 1 0 1 2)。 これにより、 各画素 400 (x、 y) には、 2画素分の目的デ一夕 (この場合、 画像デ一夕 I (x、 y) と I (x+ l、 y )) の和が格納されることになる。
次に、 X方向の総和を取るための初期設定として i = 1とした (S 1 0 14) 後、 各演算素子 400 (X, y) は、 S 1 0 1 8において、 x 方向において 2つ目に隣接する画素位置 (x + n, y) (ここで、 n = 2 この場合、 n S 1 ?) の演算素子 400 (x + 2 , y) に現在収 容されている計算結果 (この場合、 I (x+ 2, y) + I (x+ 3, y)) を、 X方向に隣接するレジス夕マトリックス 40 1間の転送を 2回繰り 返すことにより、 該演算素子 400 (x、 y) へ転送格納する (S 1 0 1 8)。 次に、 当該転送されてきた 2つ目に隣接する画素 (x+ 2, y) の計算結果データを Bラッチ 403に読み込み(S 1 0 20)、 Aラッチ 402と Bラッチ 40 3の値の加算を行い(S 1 022 )、加算結果をレ ジス夕マトリックス 40 1を介して (S 1 024) Aラッチ 402へと 格納する (S 1 026 )。 これにより、 各画素 400 (x、 y) には、 隣 接する 4画素の画像データ I (x、 y), I (x+ l、 y)、 I (x + 2、 y)、 I (x + 3 y) の和が格納されることになる。
次に、 iを 1インクリメントし (S 1 028)、 得られた n= 2 jが 1 行画素数の半分の値である N 1 Z2を越えたか否かを判断し (S 1 0 3 0 )、 N 1 / 2を越えていなければ (S 1 030で No)、 S 1 0 1 8に 戻る。 S 1 0 1 8で、 各演算素子 400 (x、 y) は、 n個目に隣接す る位置 (x + n, y) (n - 2 ! ; この場合、 n = 22=4) の演算素子 400に現在収容されている計算結果データ (画像データの加算結果) を、 X方向に隣接するレジス夕マトリックス 40 1間の転送を n回 (こ の場合、 4回) 繰り返すことにより、 該演算素子 400 (x、 y) へ転 送し、 Bラッチ 403に読み込み (S 1 020 )、 同様の加算を行う (S 1 0 22〜S 1 0 26)。
続いて、 iを 1インクリメントしつつ (S 1 028)、 S 1 0 1 8〜S 1 030の処理を繰り返すことにより、 8個 (n = 23) 隣、 1 6個 (n = 24) 隣、 32個 (n = 25) 隣、 64 (n = 26) 隣、 …と進めて、 (N 1 /2) 隣まで加算を繰り返す。 この結果、 各行における全ての画像強 度の加算結果 I (1, y) + 1 (2, y) 十… + 1 (N l , y) 力 当 該行の先頭にある演算素子 400 ( 1, y) の Aラッチ 402に得られ る (S 1 026 )。 nが N 1 Z2を越えると (S 1 03 0で Ye s)、 S 1 032に移行する。
S 1 0 32以降では、 各行毎に求められた画像強度加算結果を、 上記 と同様の手法を用いて、加算することで、 ( 1 )式に示した分母である画 像強度総和 Σ Σ Ι (x、 y) を得る。
具体的には、 初期設定として j = 0とした (S 1 032 ) 後、 各演算 素子 400 (x, y) は、 y方向において隣接する位置(x, y+m) (こ こで、 m= 2 j、 この場合、 m= 2 j = 1 ) に存在する演算素子 400 (x, y +m) (この場合、 400 (x, y + 1 )) の加算結果を、 レジスタマ トリックス 40 1間の転送にて、 該演算素子 400 (x、 y) のレジス 夕マトリックス 40 1に格納する(S 1 034)。次に、当該隣接画素(x, y + 1 ) の演算結果を Bラツチ 403に読み込み (S 1 036)、 Aラッ チ 402と Bラッチ 403の値の加算を行い(S 1 038)、加算結果を レジス夕マトリックス 40 1に記憶する (S 1 040)。 これにより、 各 行の先頭にある演算素子 400 ( 1 , y) には、 2行分の演算結果の和 が格納されることになる。
次に、 j を 1インクリメントし (S 1 044)、 m= 2 jが 1列画素数 の半分の値である N 2Z2を越えたか否かを判断し (S 1 046)、 N 2 / 2を越えていなければ(S 1 046で No)、 S 1 0 3 8で得られた加 算結果をレジス夕マトリックス 4 0 1から Aラッチ 4 0 2へ転送した (S 1 048 ) 後、 S 1 0 34に戻る。
次に、 各演算素子 40 0 (x、 y) は、 位置 (x, y +m) (m- 2 j ; この場合、 位置 (x, y + 2)) の演算素子 40 0に収容されている加算 結果を、 隣接するレジス夕マトリックス 40 1間の転送を 2回繰り返す ことにより、 該演算素子 40 0 ( X , y) へ転送し (S 1 0 34)、 Bラ ツチ 40 3に読み込み (S 1 0 3 6 )、 同様の加算を行う (S 1 0 3 8〜
1 040)。
続いて、 j を 1インクリメントしつつ (S 1 044)、 S 1 046〜S 1 040の処理を繰り返すことにより、 4つ (m= 22) 隣、 8つ (m = 23) 隣、 1 6個 (m= 24) 隣、 3 2個 (m= 25) 隣、 64 (m =
26) 隣、 …と進めて、 (N 2/2) 隣まで加算を繰り返すことにより、 全画素の画像強度の加算結果∑∑ I (x、 y) が、 演算素子アレイ 4 0 の先頭にある演算素子 40 0 ( 1, 1 ) のレジスタマトリックス 40 1 に得られる (S 1 040 )。 mが N 2Z2を越えると (S 1 046で Y e s)、 総和演算処理は終了する。
総和演算処理 (S 3 6 0 ) が終了すると、 目的画素位置 (X 1 , y 1) (この場合、先頭画素位置( 1 , 1 ))を選択するための画素選択処理(S
3 7 0 ) に移行する (第 1 0 (A) 図)。
以下、 画素選択処理 (S 3 7 0) について、 第 1 0 (C) 図を参照し て、 詳細に説明する。
画素選択処理においては、 C PU 1 5 0は、 まず、 S 1 1 0 2におい て、 x方向データバス 1 7のうち、 選択しょうとする目的画素位置 (X 1 , y 1 ) の Xアドレス位置 X 1に対応する X方向デ一夕ライン 1 7 0 i (以下、 「x方向データライン 1 7 0 x」 という) にデータ ( 1 ) を転 送し、 残りの全ての X方向データライン 1 7 0 Xにデータ (0) を転送 する。 この場合、 選択しょうとする目的画素位置たる先頭画素位置 (X 1 (= 1), y 1 (= 1 )) の Xアドレス位置 X 1に対応する X方向デー 夕ライン 1 7 0 x (x = x 1 = 1 ) にデータ ( 1 ) を転送し、 残りの全 ての X方向データライン 1 7 0 X (x≠ x 1 ) にデータ (0 ) を転送す る。
次に、 各演算素子 4 0 0 (x、 y) のレジス夕マトリックス 4 0 1に、 対応する X方向デ一夕ライン 1 7 0 Xからの転送データを格納させる (S 1 1 0 4)。 この結果、 全演算素子 4 0 0のうち、 Xアドレスが X 1 (= 1 ) の演算素子 4 0 0 ( 1, y) ( 1≤y≤N 2 ) のレジスタマトリ ックス 4 0 1にのみ、 データ (1 ) が格納され、 それ以外の演算素子 4 0 0のレジス夕マトリックス 4 0 1にはデ一夕 (0) が格納される。 次 に、 このデータを Aラッチ 4 0 2に転送する (S 1 1 0 6)。
次に、 C P U 1 5 0は、 S 1 1 0 8において、 y方向デ一夕バス 1 8 のうち、 目的画素位置 (x l, y 1 ) の yアドレス位置 y 1に対応する y方向データライン 1 8 0 j (以下、 「y方向データライン 1 8 0 y」 と いう) にデ一夕 (1 ) を転送し、 残りの全ての y方向データライン 1 8 0 yにデ一夕 (0) を転送する。 この場合、 選択しょうとする目的画素 位置たる先頭画素位置 (x l (= 1), y 1 (= 1 )) の yアドレス位置 y 1の y方向デ一夕ライン 1 8 0 y (y = y 1 = 1 ) にデータ ( 1 ) を 転送し、 残りの全ての y方向データライン 1 8 0 y (y≠ y 1 ) にデー 夕 (0) を転送する。
次に、 各演算素子 4 0 0 (x、 y ) のレジスタマトリックス 4 0 1に、 対応する y方向データライン 1 8 0 yからの転送データを格納させる (S 1 1 1 0)。 この結果、 全演算素子 400 (x、 y) のうち、 yアド レスが y 1 (= 1 ) の演算素子 400 (x、 1) ( 1≤x≤N 1 ) のレジ スタマトリックス 40 1にのみデ一夕 (1) が格納され、 それ以外の演 算素子 400のレジス夕マトリックス 40 1にはデータ (0) が格納さ れることになる。 次に、 このデ一夕を Bラッチ 403に転送する (S 1 1 1 2)。
ついで、 各演算素子 400 (x、 y) にて、 ALU404により、 A ラッチ 402の値と Bラッチ 403の値の乗算を行い(S 1 1 14)、演 算結果をレジス夕マトリックス 40 1に格納する (S 1 1 1 6)。 この結 果、 目的アドレス (X 1, y 1 ) の演算素子 400 (x l, y 1 ) (この 場合、 先頭演算素子 400 ( 1, 1)) にのみ、 乗算結果 1が設定され、 それ以外の演算素子 400では、 乗算結果 0が設定されることになる。 こうして、 画素選択処理 (S 370) が終了する。
画素選択処理 (S 3 7 0 ) が終了すると、 S 3 72に移行する (第 1
0 (A) 図)。 S 3 72では、 画素選択処理 (S 37 0 ) にて得られた乗 算結果を、 レジス夕マトリックス 40 1から Aラッチ 402に転送する (S 3 72 )0 次に、 総和演算処理 (S 360) にて最終的に求められた 演算結果を、 やはりレジス夕マトリックス 40 1から Bラッチ 40 3に 転送する (S 3 74)。 ついで、 ALU 404にて、 Aラッチ 402の値 と Bラッチ 403の値の乗算を行う (S 376)。 この結果、 先頭ァドレ ス ( 1, 1) の演算素子 400には、 総和演算結果 Σ Σ Ι (x、 y) と ( 1) との乗算結果として、 画像強度総和 ΣΣ Ι (x、 y) が求められ る。 一方、 それ以外の演算素子 400では、 総和演算結果と 0 (ゼロ) との乗算の結果として、 ゼロ (0) が得られる。 S 3 78にて、 当該乗 算結果をレジス夕マトリックス 40 1に格納し、 S 380にて、 当該乗 算結果を、 レジスタマトリックス 4 0 1の出力アドレス 「2 8」 より出 力バス 1 5 5に出力する。 この結果、 全演算素子 4 0 0での S 3 7 6の 乗算結果が単一の出力バス 1 5 5に出力されることになる。 ここで、 先 頭位置の演算素子 4 0 0 ( 1, 1 ) のみが乗算結果として画像強度総和 ∑∑ I (x、 y) を出力し、 残りの全ての演算素子は乗算結果としてゼ 口 (0) を出力する。 したがって、 出力バス 1 5 5は、 これら全演算素 子 4 0 0からの演算結果の 0 R論理演算結果たる画像強度総和∑∑ I (x、 y) を制御回路 1 5に転送することになる。 C PU 1 5 0は、 受 け取った画像強度総和∑∑ I ( X、 y ) をメモリ 1 5 1に記憶する。 次に、 重心の X方向座標の演算処理 (S 4 0 0) の処理内容について、 第 1 1図を参照して、 詳細に説明する。
C P U 1 5 0は、 まず、 S 4 0 2にて、 重心演算に必要なデータであ る各画素の X方向位置情報 (Xァドレスデータ " X ") を、 メモリ 1 5 1 から読みだし、 各演算素子 4 0 0に転送する。 この転送は、 各 Xァドレ スデ一夕 " X " を X方向のデ一夕バッファ 1 9に一旦格納し、 X方向デ 一夕バス 1 Ίの対応するデ一夕ライン 1 7 0 Xを用いてビッ トシリアル 方式によって下位ビッ 卜より 1ビットづっ順番に転送することで行う。 ここで、 X方向デ一夕バス 1 7の各 X方向データライン 1 7 0 Xに接続 されている画素の Xアドレスデ一夕 " X " は、 互いに等しく、 かつ、 1 〜N 1のいずれかの値の 2進数データである。 したがって、 各デ一タラ イン 1 7 0 Xでは、 対応する Xァドレス " X " の 2進数データを、 その 下位ビッ トから順に 1 o g2 (N 1 ) ビット転送することにより、 対応 する Xアドレスの全演算素子 4 0 0 ( x、 y ) に転送することが可能で める。
各演算素子 4 0 0 ( x、 y ) では、 転送された Xアドレスデ一夕 " X " がそのレジス夕マトリックス 4 0 1に格納され (S 4 0 4)、 その後、 下 位ビットから Bラッチ 40 3へと読み込まれる (S 406)。 一方、 画像 データ I (x、 y) が、 再び、 レジス夕マトリックス 40 1から Aラッ チ 402に読み込まれる (S 408)。 ALU404で、 Aラッチ 402 の値と Bラッチ 403の値の乗算を行い (S 41 0)、 演算結果たる X方 向モーメント値 (χ · Ι (x、 y)) が、 レジス夕マトリックスに格納さ れる (S 4 1 2)。
次に、 S 420にて、 全画素における X方向モーメント値 (X · I ( X , y )) の総和を求めるための総和演算処理を行う。
当該総和演算処理 (S 420) では、 第 1 0 (B) 図を参照して説明 した総和演算処理を、 X方向モーメント値 (χ · I ( x、 y)) を目的デ —夕として行う。
具体的には、 S 1 002にて、 各演算素子において、 総和を求めたい 目的デ一夕である X方向モーメント値 (X · I ( x、 y )) を、 レジス夕 マトリックス 40 1から Aラッチ 402に転送する。 次に、 S 1 004 にて、 各演算素子 400 ( x、 y ) に、 X方向において隣接する位置 (x + 1, y ) の演算素子 40 0 ( X + 1, y ) の x方向モ一メント値 ((x + 1) · I ( x + l、 y )) を転送する。 当該 X方向モーメント値 ((X + 1 ) · I (x+ l、 y)) を Bラッチへ格納し (S 1 006)、 Aラッチと Bラツチの値を加算することにより、 当該隣り合う 2つの画素における X方向モーメント値の加算を行い、 加算結果をレジス夕マトリックス 4 0 1を介して Aラッチ 40 2へと格納する(S 1 008〜S 1 0 1 2)。 この結果、 各画素 400 ( x、 y ) には、 2画素分の X方向モーメント 値の和 (X · I ( X , y) + (x + 1 ) · I (x + 1, y)) が格納され ることになる。
次に、 初期設定として i = 1とした (S 1 0 14) 後、 各演算素子 4
00 ( X , y ) は、 S 1 0 1 8〜S 1 026において、 格納している加 算結果 (χ · I (χ, y) + (x + 1 ) · I (x + 1 , y)) と、 x方向 において 2つ目に隣接する画素位置 (x + n, y) (ここで、 n = 2 この場合、 n^ Z 1: ) の演算素子 40 0 (x + 2 , y) に格納され ている加算結果 ((χ+ 2) · I (x + 2 , y) + (x+ 3) . I (x + 3 , y)) とを加算する転送 ·加算処理を行う。
続いて、 iを 1インクリメントしつつ (S 1 0 2 8)、 S 1 0 1 8〜S 1 0 3 0の処理を繰り返すことにより、 4個 (n = 22) 隣、 8個 (n = 23) 隣、 1 6個 (n = 24) 隣、 3 2個 (n= 25) 隣、 64 (n = 26) 隣、 …と進めて、 (N 1 Z2) 隣まで転送 ·加算を繰り返す。 その 結果、 各行における全ての X方向モーメント値の加算結果 1 · I ( 1, y) + 2 · I (2, y) 十… + N 1 · I (N 1 , y) が、 当該行の先頭 にある演算素子 40 0 ( 1, y) に得られる。
次に、 初期設定として j = 0とした (S 1 0 3 2) 後、 S 1 0 34〜 S 1 04 0にて、 各演算素子 40 0 (x, y) は、 その加算結果と、 y 方向において隣接する位置 (x, y +m) (ここで、 m= 2 この場合、 m= 2 j = 1 ) の演算素子 40 0 (x, y+m) (この場合、 40 0 (x, y + 1 )) の加算結果とを、 加算する転送 ·加算処理を行う。
続いて、 j を 1インクリメントしつつ (S 1 044)、 S 1 046〜S 1 04 0の処理を繰り返すことにより、 2つ (m 21) 隣、 4つ (m = 22) 隣、 8つ (m= 23) 隣、 1 6個 (m= 24) 隣、 3 2個 (m = 25) 隣、 6 4 (m= 26) 隣、 …と進めて、 (N 2/ 2) 隣まで転送 - 加算を繰り返す。 この結果、 全画素の X方向モーメント値の加算結果∑ ∑ X - I (x、 y) が、 演算素子アレイ 40の先頭にある演算素子 40 0 ( 1, 1 ) に得られ、 総和演算処理 (S 42 0) が終了する。
総和演算処理 (S 42 0) が終了すると、 S 43 0に移行する (第 1
1図)。 S 430では、 先頭画素位置 ( 1, 1) を選択するための画素選択処 理を行う。
当該画素選択処理では、 第 1 0 (C) 図を参照して説明した画素選択 処理と同一の処理を行う。 その結果、 S 1 1 14〜S 1 1 1 6にて、 先 頭演算素子 400 (1, 1 ) にのみ乗算結果 ( 1) が設定され、 他の演 算素子 400では、 乗算結果 (0) が設定される。
画素選択処理 (S 430) が終了すると、 S 432に移行する (第 1 1図)。 S 432では、 画素選択処理 (S 430) にて得られた乗算結果 を、 レジス夕マトリックス 40 1から Aラッチ 402に転送する。次に、 総和演算処理 (S 420) にて最終的に求められた総和演算結果を、 や はりレジス夕マトリックス 40 1から Bラッチ 40 3に転送する (S 4 34)。 ついで、 ALU 404にて、 Aラッチ 402の値と Bラッチ 40 3の値の乗算を行う (S 436)。 この結果、 先頭ァドレス ( 1 , 1 ) の 演算素子 400には、 総和演算結果∑∑ χ · I (x、 y) と ( 1) との 乗算結果として、 X方向モーメント総和∑∑ X · I (x、 y) が求めら れる。 一方、 他の演算素子 400では、 総和演算結果と 0 (ゼロ) との 乗算の結果として、 ゼロ (0) が得られる。 次に、 S 43 8にて、 当該 乗算結果をレジスタマトリックス 40 1に格納し、 S 440にて、 当該 乗算結果を、 レジス夕マトリックス 40 1の出力アドレス 「28」 より 出力バス 1 5 5に出力する。 この結果、 全演算素子 400での S 43 6 の乗算結果が出力バス 1 5 5に出力されることになる。 ここで、 先頭位 置の演算素子 400 (1 , 1) のみが乗算結果として X方向モーメント 総和∑∑ χ · I (x、 y) を出力し、 残りの全ての演算素子は乗算結果 としてゼロ (0) を出力する。 したがって、 出力バス 1 5 5は、 これら 全演算素子 400からの演算結果の OR論理演算結果たる X方向モーメ ント総和∑∑ χ · I (x、 y) を制御回路 1 5に転送することになる。 次に、 S 450において、 CPU 1 50は、 当該受け取った x方向モ —メント総和∑∑ χ · I (x、 y) を画像強度総和∑∑ I (x、 y) で 除算することにより、 重心の X座標を求める。
次に、 処理は、 S 500へ以降し、 S 500において、 重心の y座標 を、 重心の X座標を求めたのと同様な方法で求める。
すなわち、 第 1 2図に示すように、 まず、 S 502にて、 C PU 1 5 0は、 各画素の y方向位置情報 (Xアドレスデータ "y ") をメモリ 1 5 1から読みだし、 各演算素子 400に転送する。 この転送は、 各 yアド レスデータ "y" を y方向のデ一夕バッファ 20に一旦格納し、 y方向 デ一夕バス 1 8の対応するデ一夕ライン 1 80 yを用いてビットシリア ル方式によって下位ビッ卜より 1ビットづっ順番に転送することで行う c ここで、 y方向データバス 1 8の各 y方向データライン 1 80 yに接続 されている画素の yアドレスデ一夕 "y" は、 互いに等しく、 かつ、 1 〜N 2のいずれかの値の 2進数データである。 したがって、 各データラ イン 1 80 yでは、 対応する yァドレス "y" の 2進数データを、 その 下位ビットから順に 1 o g2 (N 2) ビット転送することにより、 対応 する yアドレスの全演算素子 400 (x、 y) に転送することが可能で ある。
各演算素子 400 (x、 y) では、 転送された yアドレスデータ "y" がそのレジスタマトリックス 40 1に格納され(S 504)、 その後、 下 位ピットから Bラッチ 40 3へと読み込まれる (S 506 )。 一方、 画像 データ I (x、 y) が、 再び、 レジスタマトリックス 40 1を通じて A ラッチ 402に読み込まれる (S 508)。 ALU404で、 Aラッチ 4 0 2の値と Bラッチ 403の値の乗算を行い(S 5 1 0)、演算結果たる y方向モ一メント値 (y · I (x、 y)) をレジス夕マトリックスに格納 する (S 5 1 2 )。 次に、 S 520にて、 全画素における y方向モーメント値 (y · I (x, y ) ) の総和を求めるための総和演算処理を行う。
当該総和演算処理 (S 520) では、 第 1 0 (B) 図を参照して説明 した総和演算処理を、 y方向モーメント値 (y · I (x、 y)) を目的デ 一夕として行う。
具体的には、 S 1 002にて、 各演算素子において、 総和を求めたい 目的デ一夕である y方向モーメント値 (y · I (x、 y)) を、 レジス夕 マトリックス 40 1から Aラッチ 402に転送する。 次に、 S 1 004 にて、 各演算素子 400 (x、 y) に、 X方向において隣接する位置 (X + 1 , y ) の演算素子 400 ( X + 1, y) の y方向モ一メント値 (y · I ( X + 1、 y)) を転送する。 当該 y方向モーメント値 (y · I (x + 1、 y)) を Bラッチへ格納し (S I 006 )、 Aラッチと Bラッチの値 を加算することにより、 当該隣り合う 2つの画素における y方向モ一メ ント値の加算を行い、 加算結果をレジスタマトリックス 40 1を介して Aラッチ 402へと格納する (S 1 008〜S 1 0 1 2)。 この結果、 各 画素 400 (x、 y) には、 2画素分の y方向モーメント値の和 (y . I (x, y ) + y - I (x + 1 , y )) が格納されることになる。
次に、 初期設定として i = 1とした (S 1 0 14) 後、 各演算素子 4
0 0 ( X , y ) は、 S 1 0 1 8〜S 1 026において、 格納している加 算結果 (y , I (x, y ) + y - I (x+ 1 , y )) と、 x方向において
2つ目に隣接する画素位置 (x + n, y) (ここで、 η= 2 この場合, n = 2 x= 2) の演算素子 40 0 (x + 2 , y ) に格納されている加算 結果 (y * I (x + 2, y) +y - I (x + 3, y)) とを加算する転送 · 加算処理を行う。
続いて、 iを 1インクリメントしつつ (S 1 028)、 S 1 0 1 8〜S
1 0 30の処理を繰り返すことにより、 4個 (n= 22) 隣、 8個 (n = 23) 隣、 1 6個 (n = 24) 隣、 32個 (n= 25) 隣、 64 (n = 26) 隣、 …と進めて、 (N 1Z2) 隣まで転送 ·加算を繰り返す。 その 結果、 各行における全ての y方向モーメント値の加算結果 y · I ( 1 , y) +y · I (2, y) 十… + y · I (N 1 , y) が、 当該行の先頭に ある演算素子 400 (1, y) に得られる。
次に、 初期設定として j = 0とした (S 1 032 ) 後、 S 1 034〜 S 1 040にて、 各演算素子 400 (X , y) は、 その加算結果と、 y 方向において隣接する位置 (x, y+m) (ここで, m= 2 j、 この場合、 m= 2 j = 1 ) の演算素子 400 ( X , y+m) (この場合、 400 (x, y + 1 )) の加算結果とを、 加算する転送 ·加算処理を行う。 この結果、 各行の先頭位置の演算素子 400 (1, y) には、 2行分の加算結果の 和 (y * I (1, y ) + y - I (2, y ) 十… +y - I (N 1 , y )) + ((y + 1 ) · I ( 1, y + 1) + (y + 1 ) · I (2, y+ 1) 十… + (y + 1 ) · I (N 1 , y + 1 )) が得られる。
続いて、 j を 1インクリメントしつつ (S 1 044)、 S 1 046〜S
1 040の処理を繰り返すことにより、 2つ (m = 2 隣、 4つ (m = 22) 隣、 8つ (m= 23) 隣、 1 6個 (m= 24) 隣、 32個 (m =
25) 隣、 64 (m= 26) 隣、 …と進めて、 (N 2/2) 隣まで転送 · 加算を繰り返す。 この結果、 全画素の y方向モーメント値の加算結果∑ ∑ y · I (x、 y) 力 演算素子アレイ 40の先頭にある演算素子 40 0 ( 1, 1) に得られ、 総和演算処理 (S 520 ) が終了する。
総和演算処理 (S 520) が終了すると、 S 530に移行する (第 1 2図)。
S 5 30では、 先頭画素位置 ( 1, 1) を選択するための画素選択処 理を行う。
当該画素選択処理では、 第 1 0 (C) 図を参照して説明した画素選択 処理と同一の処理を行う。 その結果、 S 1 1 14〜S 1 1 1 6にて、 先 頭演算素子 400 ( 1, 1) にのみ乗算結果 (1) が設定され、 他の演 算素子 400では、 乗算結果 (0) が設定される。
画素選択処理 (S 530 ) が終了すると、 S 532に移行する (第 1 2図)。 S 532では、 画素選択処理 (S 530 ) にて得られた乗算結果 を、 レジスタマトリックス 40 1から Aラッチ 402に転送する。次に、 総和演算処理 (S 520) にて最終的に求められた総和演算結果を、 や はりレジスタマトリックス 40 1から Bラッチ 403に転送する (S 5 34)。 ついで、 ALU 404にて、 Aラッチ 402の値と Bラツチ 40 3の値の乗算を行う (S 536 )。 この結果、 先頭アドレス ( 1, 1) の 演算素子 400には、 総和演算結果∑∑y * I (x、 y) と ( 1) との 乗算結果として、 y方向モーメント総和∑∑y · I (x、 y) が求めら れる。 一方、 他の演算素子 400では、 総和演算結果と 0 (ゼロ) との 乗算の結果として、 ゼロ (0) が得られる。 次に、 S 5 38にて、 当該 乗算結果をレジス夕マトリックス 40 1に格納し、 S 540にて、 当該 乗算結果を、 レジスタマトリックス 40 1の出力アドレス 「28」 より 出力バス 1 5 5に出力する。 この結果、 全演算素子 400での S 5 36 の乗算結果が出力バス 1 5 5に出力されることになる。 ここで、 先頭位 置の演算素子 400 ( 1 , 1) のみが乗算結果として y方向モ一メント 総和∑∑y * I (x、 y) を出力し、 残りの全ての演算素子は乗算結果 としてゼロ (0) を出力する。 したがって、 出力バス 1 5 5は、 これら 全演算素子 400からの演算結果の OR論理演算結果たる y方向モ一メ ント総和∑∑y ' I (x、 y) を制御回路 1 5に転送することになる。 次に、 S 5 50において、 CPU 1 50は、 当該受け取った y方向モ 一メント総和∑∑γ · I (x、 y) を画像強度総和∑∑ I (x、 y) で 除算することにより、 重心の X座標を求める。 (実施例 2)
本システムの並列演算方法は、 すべての演算素子において同等の演算 を行う S I MDと呼ばれる方式であるが、 場合によっては、 各画素ごと に違う演算をさせたり、 ある画素のみに特別な演算を行わせることがで きれば、 より柔軟性のある処理が可能となる。 ここで、 本実施形態によ れば、 データバス 1 7, 1 8を利用することで、 各演算素子 400に対 して異なった演算を行わせることが可能となっている。 X方向データバ ス 1 7および y方向データバス 1 8を用いて、 各演算素子 400に演算 制御データを転送することができるからである。
例えば、 ある画素のみに特別な演算を行わせたい場合、 X方向データ バス 1 7と y方向デ一夕バス 1 8から、 目的の画素 (例えば、 (x l , y 1)) を指定し、 (x l, y 1 ) のラインにのみ 1、 他には 0を転送し、 この値と演算素子 400が保持している値を掛け合わせた後に画像処理 演算を行えば、 位置 (X 1, y 1 ) の演算素子 400のみで画像処理演 算がなされることになる。
具体的には、 第 8図の画像処理工程 S 1 1 0において、 第 1 3図のよ うな所望位置演算処理 (S 600 ) を行うことが可能である。
なお、 所望位置演算処理 (S 600) がスタートした際には、 入力画 像 Dの各画素の画像デ一夕 I (x、 y) は、 既に、 S 1 04 (第 8図) にて、 転送用シフトレジスタ 4 1 0から各演算素子 400 (x、 y) の レジス夕マトリックス 40 1へ転送され、 当該レジス夕マトリックス 4 0 1のある領域へ格納されている。
当該所望位置演算処理 (S 600 ) では、 まず、 S 6 1 0において、 所望の画素位置 (x l、 y 1 ) を選択するための画素選択処理を行う。 当該画素選択処理 (S 6 1 0) では、 当該所望の画素位置 (x l, y 1) を選択するよう、 第 1 0 (C) 図を参照して説明した画素選択処理を行 う。
具体的には、 CPU 1 50は、 S 1 1 02〜S 1 1 06において、 目 的の xアドレス x 1の x方向デ一夕ライン 1 70 x (x = X 1 ) にデー 夕 ( 1) を転送し、 残りの全ての X方向データライン 1 70 X (x≠ x 1 ) にデ一夕 (0) を転送することで、 全演算素子 400のうち、 Xァ ドレスが X 1の演算素子 400 (x l , y) ( 1≤y≤N 2 ) にのみデー 夕 ( 1) をセットし、 .それ以外の演算素子 400にデ一夕 (0) をセッ 卜する。 次に、 S 1 1 08〜S 1 1 1 2において、 目的の yアドレス y 1の y方向デ一夕ライン 1 80 y (y = y 1 ) にデ一夕 ( 1 ) を転送し、 残りの全ての y方向デ一タライン 1 80 y (x≠ 1 ) にデータ (0) を転送することで、 全演算素子 400のうち、 yアドレスが y lの演算 素子 400 (X, y l) ( 1≤x≤N 1 ) にのみデ一夕 ( 1) をセッ トし、 それ以外の演算素子 400にデ一夕 (0) をセットする。
ついで、 各演算素子 400 (x、 y) にて、 上記 X方向データライン 1 7 0 Xからの転送データと y方向データライン 1 80 yからの転送デ —夕との乗算を行い (S 1 1 14)、 乗算結果をレジス夕マトリックス 4 0 1に格納して (S 1 1 1 6)、 画素選択処理 (S 6 1 0) を終了する。 この結果、 所望のアドレス (x l , y l) の演算素子 400 (x 1 , y 1) のみで乗算結果が 1となり、 それ以外の演算素子 400では乗算結 果は 0となる。
選択処理 (S 6 1 0) が終了すると、 S 6 1 2に移行する (第 1 3図) ( S 6 1 2では、 上記画素選択処理 (S 6 1 0) の乗算結果をレジス夕マ トリックス 40 1から Aラッチ 402に転送する。 次に、 演算に供しよ うとする目的のデータ (例えば、 画像データ I (x、 y)) を、 レジス夕 マトリックス 40 1から Bラッチ 403に転送し (S 6 14)、 Aラッチ 402の値と Bラッチ 403の値の乗算を行う (S 6 1 6 )。 この結果、 目的の画素位置 (x l, y 1 ) の演算素子 400でのみ目的デ一夕その ものが得られ、 それ以外の演算素子 400では、 ゼロ (0) データが得 られる。 当該乗算結果をレジス夕マトリックス 40 1に格納した (S 6 1 8) のち、 S 620にて、 当該乗算結果に対する所望の演算処理を行 う。 具体的には、 S 6 1 6の乗算結果をレジスタマトリックス 40 1か ら Aラッチ 402または Bラッチ 403に転送し、 ALU404により 所定の演算処理を行う。 この結果、 目的の画素位置 (x l, y 1) のみ で、 目的のデータに対する演算処理が行われ、 当該画素位置以外では、 ゼロ (0) データに対して演算処理が行われることになる。 演算結果は、 出力バス 1 5 5を介して制御回路 1 5に出力される。
なお、 S 620では、 演算を行わず、 S 6 1 6で得られた乗算結果を、 そのまま、 出力ァドレス 「28」 から出力バス 1 5 5を介して制御回路 1 5に出力するようにしてもよい。 このようにすれば、 所望のアドレス ( 1 , y 1 ) で得られた所望のデータ (例えば、 画像データ I (x、 y)) のみを制御回路 1 5に出力することができる。
また、 上記所望位置演算処理 (S 600) を、 その演算処理 (S 62 0) の内容を変更しつつ個々の演算素子(画素) を選択しながら行えば、 個々の演算素子に異なった演算処理を実行させることもできる。
さらに、 画素選択処理 ( S 6 1 0 ) では、 単一の画素のみを選択せず、 複数の画素を選択するようにしてもよい。 すなわち、 当該複数の画素の Xアドレス及び yァドレスに対応する X方向デ一夕ライン 1 70 Xと y 方向デ一夕ライン 1 80 yにデータ ( 1) を転送し、 それ以外のデ一夕 ラインにデータ (0) を転送するようにしてもよい。 選択された複数の 画素のみで、 S 1 1 14 (第 1 0 (C) 図) の乗算結果が 1となり、 そ の結果、 S 6 1 6 (第 1 3図) での乗算結果として目的データが得られ る。 従って、 S 620では、 当該選択された複数の画素において目的の データに対する所望の演算を行うことができる。
S 620で行われる演算としては、 後述するエッジ抽出処理等、 様々 な演算処理を行うことができる。
(実施例 3)
また、 データバス 1 7, 1 8を用いることで、 全演算素子 400で所 定の演算を行なった後、 ある 1つの演算素子 400のレジス夕マトリツ クス 40 1の中身 (演算結果) だけを選択的に取り出すことも可能であ る。
具体的には、 第 8図の画像処理工程 S 1 1 0において、 第 14図のよ うな演算一抽出処理 (S 6 50 ) を行うことが可能である。
なお、 演算一抽出処理 (S 650) がスタートした際には、 入力画像 Dの各画素の画像データ I (x、 y ) は、 既に、 S 1 04 (第 8図) に て、 転送用シフトレジスタ 4 1 0から各演算素子 400 (x、 y) のレ ジス夕マトリックス 40 1へ転送され、 当該レジス夕マトリックス 40 1のある領域へ格納されている。
当該演算一抽出処理 (S 6 50 ) では、 まず、 S 6 6 0において、 各 演算素子 400に、 画像データ I (x、 y) に対する所望の演算を行わ せる。 当該所望の演算としては、 後述するエッジ抽出処理等、 様々な演 算処理が考えられる。
次に、 目的の画素位置 (x l , y 1 ) を選択するための画素選択処理
(S 680 ) を行う。 当該画素選択処理 (S 680) では、 第 1 0 (C) 図を参照して説明した画素選択処理を目的の画素 (x l, y 1) に対し て行う。 この結果、 目的の演算素子 400 (x l, y l) のみで S 1 1 14の乗算結果として ( 1) が設定され、 それ以外の演算素子 400で は S 1 1 14の乗算結果として (0) が設定される。
選択処理 (S 680 ) が終了すると、 S 682に移行する (第 14図)。 S 6 8 2では、 上記画素選択処理 (S 6 8 0) の乗算結果をレジス夕マ トリックス 40 1から Aラッチ 40 2に転送する。 次に、 抽出したい目 的のデ一夕 (S 6 6 0の演算結果) を、 レジス夕マトリックス 40 1か ら Bラッチ 40 3に転送し (S 6 84)、 Aラッチ 40 2の値と Bラッチ 40 3の値の乗算を行う (S 6 8 6)。 この結果、 目的の画素位置 (x 1, y 1 ) の演算素子 40 0でのみ演算結果デ一夕そのものが得られ、 それ 以外の演算素子 40 0では、 ゼロ (0) デ一夕が得られる。 この乗算結 果をレジス夕マトリックス 40 1に格納した (S 6 8 8) のち、 S 6 9 0にて、 出力ァドレス 「2 8」 から出力バス 1 5 5へ出力する。 全演算 素子 40 0から S 6 8 6の乗算結果が出力バス 1 5に出力される結果、 これら全演算素子の乗算結果の OR論理演算出力として、 目的の画素 4 0 0 (x 1 , y 1 ) における演算結果が、 制御回路 1 5に出力されるこ とになる。
(実施例 4)
なお、 X方向データバス 1 7及び y方向データバス 1 8としては、 制 御回路 1 5から演算素子 40 0への転送 Z書き込み機能のみを有する一 方向性のデータバスではなく、 制御回路 1 5から演算素子 40 0への転 送/書き込み機能と演算素子 40 0から制御回路への出力 Z転送機能と を有する双方向性のデ一夕バスを使用してもよい。 レジスタマトリック スのアドレス 「3 0」 及び 「3 1」 を y方向デ一夕ライン 1 8 0 y及び X方向データライン 1 7 0 Xへのデータの出力にも用いることで、 演算 素子 40 0の計算結果を X方向データライン 1 Ί 0 Xまたは y方向デー タライン 1 8 0 yを介して制御回路 1 5に出力することができるように なる。
さらに、 データバス 1 7及び 1 8として双方向性のものを採用し、 こ れらを双方向に使用すれば、 X方向、 y方向のある位置の演算素子 40 0からの信号を制御回路 1 5が受信することが可能となる。 この機能を 利用すれば、 例えばある検索画像 (ml Xm2画素) を並列演算によつ て探したい場合には、 制御装置 1 5は、 一致信号が得られた位置をデ一 夕バスを通じて高速に確認できる。
当該画像検索の具体例を以下説明する。
この検索は、 検索パターン Pが入力画像 D (= I ( X , y)、 ここで、 1≤ x≤N 1 , 1≤y≤N 2) 内にあるか、 あるとすればいずれの位置 にあるかを見つける作業である。 マッチングのアルゴリズムには多くの 研究例があるが、 ここでは、 最も簡単な次の計算式で示される画像間の 距離 ERROR (p, q) が、 あるしきい値より小さい時に同一画像とみ なすアルゴリズムを用いるものとする。 ここで、 (p, q) は、 画像 D内 の基準画素 (x、 y) の位置である。 ml m2
ERROR(p q) = ^ |l(p + i, q + j) - P(i, j (2)
このアルゴリズムに基づく検索処理 (S 700) のフローチャートを 第 1 5図に示し、同図を参照しつつデ一夕処理の流れを以下に説明する。
ここで、 この検索処理 (S 7 00) も、 第 8図の画像処理工程 S 1 1 0において実行されるものである。 また、 各画素 (x、 y) を、 それぞ れ、 画像検索の基準位置 (p、 q) とする。 さらに、 検索画像 Pの画像 データ P ( i , j ) ( 1≤ i≤m 1 , 1≤ j≤m 2 ) は、 制御回路 1 5の メモリ 1 5 1に格納されている。
なお、 検索処理 (S 7 00 ) がスタートした際、 入力画像 Dの各画素 の画像データ I (x、 y) (以下、 I (p、 q) という) は、 既に、 S 1 04 (第 8図) にて、 転送用シフトレジス夕 41 0から各演算素子 40 0 (x、 y) (以下、 400 (p、 q) という) のレジスタマトリックス 40 1へ転送され、 当該レジス夕マトリックス 40 1のある領域へ格納 されている。
検索処理 (S 7 00) では、 C PU 1 50は、 まず、 ステップ S 70 2において、 初期状態を設定する。 具体的には、 検索パターン P中のマ ツチング検出位置 ( i, j ) に先頭位置 ( 1, 1) を設定し、 各演算素 子 400 (p、 q) のレジスタマトリックス 40 1に格納しょうとする 計算結果 E r (p, q) をリセットする。
ステップ S 7 0 3で、検索パターン P内の現在の検出位置( i, j ) (こ こでは、 先頭位置 ( 1 , 1 )) の画像デ一夕 P ( i, j ) をメモリ 1 5 1 から読みだし、 データバス 1 7、 1 8を介して、 各演算素子 400へと 転送 ^る。
ステップ S 7 04においては、 各演算素子 400 (p、 q) において、 レジス夕マトリックス 40 1のある領域に格納されている当該画素の画 像データ I (P, q) と検索パターンのマッチング検出位置の画像デ一 夕? ( i , j ) との差の絶対値を求め、 E r (p, q) に加算する。 こ こでは、 具体的には、 画像データ I (p, q) と検索画像の先頭位置の 画像データ P ( 1, 1) との差の絶対値を求め、 レジス夕マトリックス 40 1の別の領域を割り当てて E r (p, q) として格納する。
ステップ S 70 5では、 CPU 1 50は、 検出位置 ( i, j ) が最終 位置 (ml , m2) に到達しているか否かを判定する。 ここでは、 検出 位置 ( i, j ) は、 まだ先頭位置 ( 1, 1) なので、 最終位置には到達 しておらず(ステップ 7 0 5で No)、ステップ S 706へと移行する。 ステップ S 7 06では、 i≠mlの場合は、 iの値のみを 1増加させ、 i =mlの場合は、 x方向の端に達したとして iを 1にリセットし、 j の値を 1増加させる。 ここでは、 i = l、 j = lの場合なので、 i = 2、 j = 1へと更新される。 そして、 ステップ S 707では、 位置 (p + i - 1 , q + j - 1 ) の画像データ、 ここでは、 位置 (p + 1, q) の画 像データ I (P+ 1, q) を、 演算素子 400 (p、 q) のレジス夕マ トリックス 40 1に転送する。 具体的には、 レジス夕マトリックス 40 1の近傍転送機能を利用して、 隣の画素 400 (p + 1 , q) に格納さ れている画像デ一夕値 I (p + 1 , q) を、 当該画素 400 (p、 q) の空いている領域に転送することでこの転送は行われる。
転送が終了したら、 ステップ S 7 03に戻り、 C PU 1 50は、 検索 パターン P内の現在の検出位置 ( i , j ) (ここでは、 位置 (2, 1)) の画像データ P ( i , j ) をメモリ 1 5 1から読みだし、 データバス 1 7、 1 8を介して、 各演算素子 400 (p、 q) へと転送する。 ステツ プ S 7 04において、 各演算素子 400 (p、 q) は、 現在レジス夕マ トリックス 40 1に格納されている隣接画素の画像データ I (p + l, q) と検索パターンの現在のマッチング検出位置の画像デ一夕 P ( i , j ) との差の絶対値を求め、 E r (p, q) に加算する。 検出位置 ( i、 j ) が最終位置 (ml, ra2) に到達していないので (S 7 0 5で No)、 S 7 06に進み、 検出位置 ( i , j ) を更新する。
かかる処理 (ステップ S 703〜S 707) を、 検出位置 ( i、 j ) が最終位置 (ml, m2) に到達するまで、 繰り返す。
このように、 ステップ S 704で繰り返し加算を行うことにより、 各 演算素子 40 0 ( p > q) において、 ERROR (p , q ) を求めること ができる。
また、 ステップ S 707による転送は、 レジスタマトリックス 40 1 の転送機能を利用して、 X方向、 y方向にそれぞれ順次隣の画素に転送 していくことで転送を行えばよい。
検出位置が最終位置 (m l , m2 ) に達し、 ERROR (p, q) が求 まると、 ステップ S 70 5 (S 705で Ye s) からステップ S 708 へと移行する。 ステップ S 708においては、 CPU 1 50は、 閾値 E th を設定し、 ステップ S 709で、 設定した閾値 Ethデータを、 データ バス 1 7または 1 8を介して、 各演算素子 400へと転送する。
各演算素子 400 (p、 q) は、 ステップ S 7 1 0で、 閾値 Eth と求 めた ERROR (p, Q)、 つまり、 E r (p, q) とを比較する。 具体的 には、 各演算素子 400は、 ERROR (p, q) —閾値 Eth の演算を行 い、 この結果のサインビット (正負の符号) のビットを、 比較結果とし て出力する。 すなわち、 E r (p, q) が閾値 Eth以下の場合は、 ステ ップ S 7 1 1に移行して 1を出力し、 E r (p, q) が閾値 Eth より大 きい場合は、 ステップ S 7 1 2に移行して 0を出力する。 各演算素子 4 00は、 これら出力デ一夕を、 データバス 1 7及び 1 8に出力する。 C PU 1 50は、 これらデ一夕バス 1 7, 1 8からの出力信号の総和をと ることで、 1を出力した演算素子 400の個数をカウントする。
ステップ S 7 1 3では、 C PU 1 50は、 この個数を判定し、 出力個 数が 0の場合は、 ステップ S 7 14に移行して、 マッチング画像なしと の判定結果を出力する。
出力個数が 1個の場合は、 デ一夕バス 1 7, 1 8のうち、 それぞれ単 一のデータライン 1 7 0 x、 1 80 yのみにおいて 1の出力信号が得ら れている。 したがって、 CPU 1 50は、 S 7 1 5において、 1の出力 信号が得られている出力信号線 1 70 x、 1 80 の位置 、 yに基づ いて、 1を出力した演算素子 400の位置データ (p, q) を求める。 なお、 S 7 1 5では、 デ一夕バス 1 7, 1 8の代わりに出力バス 1 5 5を利用してもよい。 すなわち、 各演算素子 400に対し、 S 7 1 0の 判断結果としての出力 (0または 1) とその位置デ一夕 (p、 q) とを 乗算させ、 その乗算結果を出力バス 1 55に出力させるようにしてもよ レ この場合、 S 7 1 0の判断結果として出力信号 1を出力した画素(マ ツチング位置画素) のみが、 その位置データ (p、 Q) を出力する。 他 の画素は、 その出力信号 (0) と位置デ一夕 (p、 q) との乗算結果で ある (0) を出力する。 したがって、 マッチング位置の位置デ一夕 (p、 q) のみが、 出力バス 1 5 5を介して、 制御回路 1 5に転送されること になる。 かかる方法によれば、 マッチング位置データ (p、 q) のみな らず、 他のマッチング演算結果 (例えば、 入力画像 Dと検索パターン P との差の絶対値等) も制御回路 1 5に転送させることができる。
一方、 出力個数が 2個以上あった場合は、 ステップ S 7 1 6で閾値 E th を小さく変更してステップ S 709に戻り、 出力個数が 1個になるま で閾値 Eth を小さくしていくことで絞り込みを行う。
以上のように、 本実施形態の高速視覚センサ装置 1 0は、 受光素子ァ レイ 1 1の各行の全受光素子 1 20に対して 1個の AZD変換器 2 1 0 を対応させた AZD変換器アレイ 1 3と、 受光素子 1 20と 1対 1に対 応する演算素子 400と転送用シフトレジス夕 41 0とからなる並列処 理機構 14とを備え、 さらに、 演算素子 400にデータ転送を行うデー 夕バス 1 7、 1 8とデ一夕バッファ 1 9、 20を備えている。 演算素子 400は並列処理により近傍画素間の画像処理演算を高速で行うことが でき、 デ一夕バス 1 7、 1 8を利用することで外部からデータ転送の必 要な演算処理も高速で行うことができる。
また、 本実施形態の高速視覚センサ装置 1 0によれば、 画像処理ステ ップ S 1 1 0においては、 上述の画像処理 (第 9図〜第 1 5図) を行う にあたり、 その前処理として、 入力画像 I (x、 y) に様々な画像処理 を行うこともできる。 例えば、 エッジ抽出を行うことができる。 ここで、 「エッジ抽出」 は画 像処理において最も頻繁に利用される処理である。 最も簡単に演算する 場合は、 左方向に隣接する 1個の画素の強度値との差分による 2近傍演 算を用いた 2近傍エッジ抽出が用いられる。
具体的には、 位置 (x, y) における入力画像強度 I (x, y) に対 し、 求める 2近傍エッジ抽出画像の画像強度データの値 I '(χ, y) は、 以下の式で表わされる。
I '(x、 y) = (x、 y) - I (x— 1, y) I
S 1 1 0の画像処理ステップにおいて当該 2近傍エッジ抽出を前処理 として行う場合には、 上記 (実施例 1) 〜 (実施例 4) の演算処理工程 S 300 , S 600, S 6 50 , S 700の前に、 第 1 6図に示すよう な 2近傍エッジ抽出工程 (S 1 200) を行う。
具体的には、 まず、 各演算素子 400 (x、 y) において、 4近傍入 力端子から左隣の隣接画素のデータ I ( X— 1, y) を当該演算素子 4 00 (x、 y ) のレジス夕マトリックス 40 1へと転送 Z格納する (S 1 2 1 0 )。次に、 レジスタマトリックス 40 1に現在格納されている I (x, y ) と I (X— 1 , y ) のデ一夕を Aラッチ 402と Bラッチ 4 0 3にそれぞれ転送し(S 1 2 1 1)、 ALU404により両者の差分を 計算する (S 1 2 1 2)。計算結果は一旦レジス夕マトリックス 40 1に 格納する (S 1 2 1 3)。 計算完了後、 計算結果を再び Aラッチ 402へ と読み出して (S 1 2 14)、 差分の絶対値を ALU 404で求める (S 1 2 1 5)。 計算結果を再度レジス夕マトリックス 40 1へと格納する (S 1 2 1 6 )。
こうして得られた 2近傍エッジ抽出画像 I '(x、 y) に対して、 (実 施例 1 ) 〜 (実施例 4 ) の画像演算工程 (S 300, S 600 , S 6 5 0 , S 700) を行うようにする。 なお、 4近傍エッジ抽出を行う場合には、 位置 (x, y) における入 力画像強度 I (x, y) に対し求める 4近傍エッジ抽出画像の画像強度 データの値 I '(χ, y) は、 以下の式で表せる。
I '(x、 y ) = 1 (x、 y— 1) + I (x、 y+ 1) + I (x - 1 , y ) + I ( x + 1 , y) —4 I (x、 y )
また、 4近傍平滑化を行う場合には、 求める 4近傍平滑画像の画像強 度デ一夕の値 I '(x, y) は、 以下の式で表せる。
I '(x、 y) = (4 I (x、 y ) + I (x - 1 , y ) + I (x+ l, y ) + I (x、 y - 1 ) + I (x、 y + 1 )) / 8
上記アルゴリズムの他、 画像処理でよく用いられるアルゴリズムのい くつかについて、 本実施形態により演算を行った場合のステップ数、 処 理時間の例を表 1に示す。
Figure imgf000054_0001
表 1 表 1から明らかなように、 本実施形態では、 一般的な画像処理 (例え ば、 平滑化、 細線化、 コンポリューシヨン、 相関、 マスク処理) 演算を 完全並列処理により、 非常に高速で行うことができる。 したがって、 こ れまでの視覚センサ装置では演算処理速度、 転送速度が遅いために制限 されていた F A口ポット制御などの分野への応用が可能になる。
なお、 表 1に示される演算時間は、 転送用シフトレジス夕 4 1 0によ る画像データの転送時間は含んでいない。 転送データ速度は、 A / D変 換器 2 1 0の変換スピードによって制限されるが、 これを例えば、 1ビ ット当たり 1マイクロ秒とすると、 1 2 8 x 1 2 8画素 X 8ビットの画 像データを 1 2 8行で並列転送する場合に要する時間は、 1 2 8 (画素) X 8 (ビット) x l (マイクロ秒ダビット) 1ミリ秒となる。 本実施 形態では、 この転送を演算処理と並行して行う。
本実施形態が目指しているのは、 実用的な高速性と十分な解像度を有 する画像処理システムである。 F Aシステムにおけるロポット制御には、 受光素子 1 2 0を 1 2 8 X 1 2 8個以上配列する解像度が必要とされる c 本実施形態によれば、 受光素子ァレイ 1 1と並列処理機構 1 4を分離で き、 それぞれの集積度を高められるため、 この解像度を十分に実現でき る。 また、 処理速度の目安としては、 口ポットのァクチユエ一夕の速度
( 1〜 1 0ミリ秒) が必要である。 本実施形態では、 この処理速度は、 A Z D変換器 2 1 0における A / D変換処理速度によって決まるが、 十 分に高速化が可能である。
例えば、 本実施形態での 1画素あたりの A / D変換速度は、 1ビット あたり 1マイクロ秒となる。 例えば、 入力アナログ信号を 6ビット (6 4階調) でデジタル変換する場合には、 1行分の 1 2 8個の受光素子 1 2 0の出力信号をデジタル変換するのに必要な時間は、 6マイクロ秒 X 1 2 8 = 0 . 7 6 8ミリ秒となる。 画像処理については、 各受光素子に 1対 1に対応して演算素子が配置され、 全演算素子で並列処理されるた め、 表 1に示すように、 0 . 4ミリ秒以下でほとんどの演算処理が行え る。 さらに、 演算処理と転送処理を並行して行えるので、 それぞれの処 理の空き時間を減らすことができ、 処理全体の時間を短縮することがで さる。
また、 前述したように本実施形態の AZD変換器 2 1 0は、 最上位ビ ットから A/ D変換を行う。 したがって、 所望のビット数まで変換した 時点で、 リセット信号 Rを送出し、 次の光信号の AZ D変換に移ること により、 AZ D変換の階調を変更することができる。 これにより、 より 高速で、 複雑な処理を行うことが可能となる。 例えば、 移動物体のトラ ッキングをするような場合に、 物体が高速で移動している場合は、 画像 を 1ビッ卜の 2値レベルで演算処理するように制御すれば、転送時間は、 前述の 6ビッ卜の時の 6分の 1の 0 . 1 2 8ミリ秒に短縮され、 高速フ イードバック制御に適用できる。 逆に、 低速で動いている場合には、 階 調を上げることにより、 より精度を向上させて、 追従させることができ る。
ただし、 AZ D変換器から出力されるビット長を可変にする場合は、 転送用シフトレジス夕では入力デ一夕のビット長を調整して固定長にす る必要がある。 なぜなら、 例えば、 通常のデータ長が 8ビットの場合の 転送用シフトレジスタラインには、 固定長で 8ビット X行内画素数 (N 1 )のシフトレジスタが用いられる。そして、 8ビットずつ区切った個々 のシフトレジス夕がそれぞれの位置に対応する各画素用の転送用シフト レジスタとして機能する。 したがって、 ビット長を 8ビットに合わせて おかないと、 画像データが対応する位置の転送用シフトレジス夕に正し く転送されないことになるからである。 このため、 転送用シフトレジス 夕に送る時点でダミー信号を加えて合計 8ビッ卜になるようにすること でデータが正しく転送される。 以上説明したように、 本実施形態のセンサ装置 1 0では、 受光素子ァ レイ 1 1の各行の受光素子 1 2 0に対して 1個の A 7 D変換器 2 1 0を 対応させた A Z D変換器アレイ 1 3と、 受光素子 1 2 0と 1対 1に対応 する演算素子 4 0 0と転送用シフトレジス夕 4 1 0とからなる並列処理 機構 1 4とを備えている。 このように受光素子 1 2 0と 1対 1に対応す る演算素子 4 0 0を有しているので、 並列処理により近傍画素間の画像 処理演算を高速で行うことができる。
さらに、 A / D変換器 2 1 0を 1行ごとに設けているので、 A Z D変 換器 2 1 0を受光素子 1 2 0毎に設けた場合に比較して、 受光素子 1 2 0と演算素子 4 0 0間の伝送線の数が少なくて済み、 受光素子 1 2 0と 演算素子 4 0 0とを別々に製造、 配置することが容易にできる。 このた め、 両者とも集積度を最適にすることができ、 多画素数の高速視覚セン サ装置 1 0を容易に製作できる。 なお、 このように A Z D変換器 2 1 0 を行ごとに設けたため、 A Z D変換の処理速度により、 全体の処理速度 が制限を受けるが、 F Aロポット制御に十分な画素数といわれる 1 2 8 X 1 2 8画素の映像を 6 4階調で処理する場合でも、 ほとんどの画像処 理が 1ミリ秒以下で終了し、 従来にない高速処理が可能である。 したが つて、 本実施形態の多画素数ノ高速視覚センサ装置 1 0は、 簡単な回路 構成を有しながらも、 基本的な画像演算を高速に処理することが可能と なっている。
特に、 外部からのデ一夕が必要となる演算では、 X方向デ一夕バスお よび y方向データバスより効率的にデータ転送 (送受信) が可能である ため、 高速な演算が可能である。
さらに、 転送用シフトレジス夕 4 1 0を演算素子 4 0 0に対応して設 けているので、 転送処理と独立して演算処理が行え、 演算処理及び転送 処理を効率良く行うことができる。 また、 転送処理と演算処理を並列に 行うことができることから、 各処理の待ち時間を減らし、 より高速の画 像処理を行うことができる。 すなわち、 AZD変換器から演算素子への デ一夕転送時に、 転送用シフトレジスタを用いて、 演算処理と転送とを 独立に実行できる機能を実現することで、 実時間処理が可能となってい る。
本発明に係る高速視覚センサ装置は、前述した実施形態に限定されず、 種々の変更が可能である。
例えば、 上記の実施形態では、 デ一夕バッファ 1 9、 2 0を設けてい たが、 制御回路 1 5とデータバス 1 7、 1 8間に十分な転送速度が得ら れるような場合は、 デ一夕バッファを設ける必要はない。
また、 上記の実施形態では、 A/D変換器 2 1 0から演算素子 40 0 へのデータ転送を、 転送用シフトレジス夕 4 1 0により行っているが、 転送用シフトレジス夕 4 1 0はなくてもいい。 すなわち、 第 1 7図のよ うに、 各八/0変換器2 1 0を、 並列処理機構 1 4のうち、 対応する行 の先頭の演算素子 40 0 ( 1, y) のレジスタマトリックス 40 1と接 続するようにしてもよい。 この場合、 各行の A/D変換器 2 1 0から出 力される画素デ一夕 I (x、 y) は、 対応する演算素子 40 0 (x、 y) まで、 X方向に隣接している演算素子 40 0 ( 1, y) 〜40 0 (x、 y) のレジスタマトリックス 40 1間の転送を順次行うことにより、 転 送される。
このように転送用シフトレジス夕 4 1 0を設けていない場合には、 表 1の演算時間に加えて画像デ一夕を各演算素子 40 0に転送する時間が 余分に必要となる。 ここで、 上述したように、 本実施形態での 1画素あ たりの AZD変換速度は、 1ビットあたり約 1マイクロ秒となる。 した がって、 例えば、 入力アナログ信号を 6ビット (64階調) でデジタル 変換する場合には、 1行分の 1 2 8個の受光素子 1 2 0の出力信号をデ ジ夕ル変換するのに必要な時間は、 6マイクロ秒 X 1 28 = 0. 768 ミリ秒となる。 一方、 画像処理については、 表 1に示すように、 0. 4 ミリ秒以下でほとんどの演算処理が行える。 したがって、 転送時間を考 慮しても、 ほとんどの画像処理が 1ミリ秒以下で行えることになり、 十 分な高速性能を有している。
また、 上述の実施形態では、 AZD変換器 2 1 0がチャージアンプ 2 2 1を含む構成となっているが、 AZD変換器 2 1 0とチャージアンプ 22 1とを別体とし、 第 1 8図のように、 N 2個のチャージアンプ 22 1からなるアンプアレイ 1 2を受光素子アレイ 1 1に接続させ、 さらに、 N 2個の AZD変換器 2 1 0からなる A/D変換器アレイ 1 3を当該ァ ンプアレイ 1 2と並列処理機構 14との間に設けるようにしても良い。 この場合には、 アンプアレイ 1 2内の各アンプ 22 1は、 受光素子ァレ ィ 1 1の対応する行 1 1 0上の計 N 1個の受光素子 1 20から出力され る電荷を順次電圧信号に変換し、 得られたアナログ電圧信号を、 AZD 変換器アレイ 1 3内の対応する AZD変換器 2 1 0に出力する。 AZD 変換器 2 1 0は、 当該チャージアンプ 22 1からのアナログ電圧信号を 順次 A/D変換し、 並列処理機構 14に供給する。
さらに、 上述の実施形態では、 画像強度や x/y方向モーメントの総 和を求めるために、 第 1 0 (B) 図に示す総和演算処理を行うようにし ているが、 各演算素子 400からの出力の総和を求めるための回路を出 力バス 1 5 5に付加し、 当該回路にて総和を求めるようにしても良い。 産業上の利用可能性
本発明に係る高速視覚センサ装置は、 FAロボット制御等、 視覚認識 処理に幅広く用いられる。

Claims

請求の範囲
1 . 複数の受光素子が複数の行及び列に 2次元状に配列されて構成さ れた受光素子アレイと、
複数の AZ D変換器が該受光素子ァレイの該複数の行に 1対 1に対応 して 1次元状に配列されて構成され、 各 AZD変換器が、 該対応する 1 行中の受光素子から順次読み出された出力信号をアナログ ·デジタル変 換する AZD変換器アレイと、
複数の演算素子が、 該受光素子アレイの該複数の受光素子と 1対 1に 対応して複数の行及び列に 2次元状に配列され、 各演算素子が該 AZ D 変換器アレイから転送されたデジタル信号について所定の演算を行う並 列演算素子ァレイからなる並列処理機構と、
複数の列方向データ転送用データラインが前記並列処理機構の各列と 1対 1に対応して設けられ、 各列方向データ転送用データラインが、 対 応する列に存在する複数の演算素子を接続し該対応する列の各演算素子 とのデータ転送を行う列方向データ転送用バスと、
複数の行方向データ転送用デ一タラインが前記並列処理機構の各行と 1対 1に対応して設けられ、 各行方向デ一夕転送用データラインが、 対 応する行に存在する複数の演算素子を接続し該対応する行の各演算素子 とのデータ転送を行う行方向データ転送用バスと、
前記受光素子アレイ、 前記 AZ D変換器アレイ、 前記並列処理機構、 前記列方向データ転送用バス、 及び、 前記行方向データ転送用バスを制 御する制御回路と、
を備える高速視覚センサ装置。
2 . 前記制御回路が、前記各列方向データ転送用データラインに対し、 対応する列の位置情報を対応する列の演算素子にデ一夕転送させ、 前記 各行方向データ転送用データラインに対し、 対応する行の位置情報を対 応する行の演算素子にデータ転送させ、 各演算素子に対し、 該データ転 送された対応する行及び列の位置情報に基づき、 前記デジタル信号に対 する所定の重心演算を行わせる重心演算制御部を有することを特徴とす る請求項 1記載の高速視覚センサ装置。
3 . 前記制御回路が、 前記各列方向データ転送用データラインと前記 各行方向デ一夕転送用データラインのそれぞれに対し所定の演算制御デ 一夕をデータ転送させることで、 所定の演算素子に対しデジタル信号に 対する所定の演算を行わせる所定素子演算制御部を有することを特徴と する請求項 1記載の高速視覚センサ装置。
4 . 前記制御回路が、 前記各列方向データ転送用データラインと前記 各行方向データ転送用データラインのそれぞれに対し所定の演算制御デ 一夕をデータ転送させることで、 対応する行及び列の演算素子の演算結 果デ一夕を該制御回路へ転送させるデータ転送制御部を有することを特 徴とする請求項 1記載の高速視覚センサ装置。
5 . 前記列方向データ転送用バス及び前記行方向データ転送用バスの それぞれに対応するデータバッファをさらに備えていることを特徴とす る請求項 1記載の高速視覚センサ装置。
6 . 前記並列処理機構が、 さらに、 複数の転送用シフトレジス夕が該 複数の AZ D変換器と該複数の演算素子行の各々と 1対 1に対応して配 列され、 各転送用シフトレジス夕が、 該対応する AZD変換器から出力 された対応する受光素子行に所属する該受光素子の出力信号に相当する デジタル信号を、 該対応する行に所属する所定の演算素子に順次転送す る転送用シフトレジスタアレイを有することを特徴とする請求項 1記載 の高速視覚センサ装置。
PCT/JP2000/001471 1999-03-16 2000-03-10 Capteur de vision ultra-rapide WO2000055810A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP00908001A EP1164544B1 (en) 1999-03-16 2000-03-10 High-speed vision sensor
US09/936,267 US6970196B1 (en) 1999-03-16 2000-03-10 High-speed vision sensor with image processing function
JP2000605967A JP4489305B2 (ja) 1999-03-16 2000-03-10 高速視覚センサ装置
AU29416/00A AU2941600A (en) 1999-03-16 2000-03-10 High-speed vision sensor
US11/205,001 US7532244B2 (en) 1999-03-16 2005-08-17 High-speed vision sensor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP11/70121 1999-03-16
JP7012199 1999-03-16

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US09936267 A-371-Of-International 2000-03-10
US11/205,001 Continuation US7532244B2 (en) 1999-03-16 2005-08-17 High-speed vision sensor

Publications (1)

Publication Number Publication Date
WO2000055810A1 true WO2000055810A1 (fr) 2000-09-21

Family

ID=13422416

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2000/001471 WO2000055810A1 (fr) 1999-03-16 2000-03-10 Capteur de vision ultra-rapide

Country Status (5)

Country Link
US (2) US6970196B1 (ja)
EP (1) EP1164544B1 (ja)
JP (2) JP4489305B2 (ja)
AU (1) AU2941600A (ja)
WO (1) WO2000055810A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002094886A (ja) * 2000-09-13 2002-03-29 Hamamatsu Photonics Kk 高速画像処理装置
JP2002365022A (ja) * 2001-06-05 2002-12-18 Hamamatsu Photonics Kk 画像計測カメラ
JP2008243233A (ja) * 2001-03-13 2008-10-09 Ecchandesu:Kk 視覚装置

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1164544B1 (en) * 1999-03-16 2011-11-02 Hamamatsu Photonics K.K. High-speed vision sensor
JP3902741B2 (ja) * 2002-01-25 2007-04-11 株式会社半導体理工学研究センター 半導体集積回路装置
GB2395299B (en) * 2002-09-17 2006-06-21 Micron Technology Inc Control of processing elements in parallel processors
US6871409B2 (en) 2002-12-18 2005-03-29 Snap-On Incorporated Gradient calculating camera board
US7913062B2 (en) * 2003-04-23 2011-03-22 Micron Technology, Inc. Method of rotating data in a plurality of processing elements
US7676648B2 (en) * 2003-04-23 2010-03-09 Micron Technology, Inc. Method for manipulating data in a group of processing elements to perform a reflection of the data
US7581080B2 (en) * 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data
JP4277216B2 (ja) * 2005-01-13 2009-06-10 ソニー株式会社 撮像装置及び撮像結果の処理方法
TWI429066B (zh) 2005-06-02 2014-03-01 Sony Corp Semiconductor image sensor module and manufacturing method thereof
US8179296B2 (en) 2005-09-30 2012-05-15 The Massachusetts Institute Of Technology Digital readout method and apparatus
US20100226495A1 (en) * 2007-10-29 2010-09-09 Michael Kelly Digital readout method and apparatus
US7787021B2 (en) * 2006-10-30 2010-08-31 Texas Instruments Incorporated Programmable architecture for flexible camera image pipe processing
JP4661912B2 (ja) * 2008-07-18 2011-03-30 ソニー株式会社 固体撮像素子およびカメラシステム
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
JP6017415B2 (ja) 2010-04-30 2016-11-02 コーニング オプティカル コミュニケイションズ リミテッド ライアビリティ カンパニー 接近特徴部付き光ファイバケーブル及びその製造方法
AU2011320659B2 (en) 2010-10-28 2015-08-27 Corning Cable Systems Llc Fiber optic cables with extruded access features and methods of making fiber optic cables
WO2013006188A1 (en) 2011-07-01 2013-01-10 Schultz Kenneth I Methods and apparatus for in-pixel filtering in focal plane arrays
US20130027416A1 (en) * 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
US9323022B2 (en) 2012-10-08 2016-04-26 Corning Cable Systems Llc Methods of making and accessing cables having access features
US9274302B2 (en) 2011-10-13 2016-03-01 Corning Cable Systems Llc Fiber optic cables with extruded access features for access to a cable cavity
US9201208B2 (en) 2011-10-27 2015-12-01 Corning Cable Systems Llc Cable having core, jacket and polymeric jacket access features located in the jacket
US9343497B2 (en) * 2012-09-20 2016-05-17 Semiconductor Components Industries, Llc Imagers with stacked integrated circuit dies
JP2014239309A (ja) 2013-06-06 2014-12-18 富士通オプティカルコンポーネンツ株式会社 光送信装置、光受信装置、および光送受信装置
CN104184963B (zh) * 2014-09-05 2017-10-13 无锡英斯特微电子有限公司 光电导航系统中高效资源利用的方法
US20170132466A1 (en) 2014-09-30 2017-05-11 Qualcomm Incorporated Low-power iris scan initialization
US9838635B2 (en) * 2014-09-30 2017-12-05 Qualcomm Incorporated Feature computation in a sensor element array
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
KR102426677B1 (ko) 2015-03-09 2022-07-28 삼성전자주식회사 오프셋 및 잡음이 감소되는 차분 증폭기 및 이벤트에 기반한 비전 센서
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9772852B2 (en) * 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US9756268B2 (en) * 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US9785423B2 (en) * 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
US20180005346A1 (en) 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
US20180005059A1 (en) * 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
WO2018090163A1 (en) * 2016-11-15 2018-05-24 Shenzhen Xpectvision Technology Co., Ltd. An image sensor
US10984235B2 (en) 2016-12-16 2021-04-20 Qualcomm Incorporated Low power data generation for iris-related detection and authentication
US10614332B2 (en) 2016-12-16 2020-04-07 Qualcomm Incorportaed Light source modulation for iris size adjustment
US10672101B1 (en) * 2019-03-04 2020-06-02 Omnivision Technologies, Inc. DRAM with simultaneous read and write for multiwafer image sensors
CN111397510B (zh) * 2020-03-24 2021-05-18 青岛罗博智慧教育技术有限公司 一种数字轨迹记录装置及坐标校准方法
US20230194677A1 (en) * 2021-12-16 2023-06-22 Waymo Llc Multi-Chip Daisychain for Output Aggregation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274467A (ja) * 1993-03-23 1994-09-30 Sumitomo Metal Ind Ltd フィールドプログラマブルプロセッサアレイ
JPH10145680A (ja) * 1996-11-08 1998-05-29 Hamamatsu Photonics Kk 高速視覚センサ装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60221877A (ja) * 1984-04-18 1985-11-06 Mitsubishi Electric Corp 図形演算装置
US4725970A (en) * 1985-02-05 1988-02-16 Sanders Associates, Inc. Simulation device
US4665440A (en) * 1985-09-17 1987-05-12 Honeywell, Inc. Parallel processing of the output from monolithic sensor arrays
JP2580501B2 (ja) * 1986-06-14 1997-02-12 工業技術院長 並列デ−タ処理装置
US4910665A (en) * 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
JP2900359B2 (ja) 1986-10-30 1999-06-02 株式会社日立製作所 マルチプロセッサシステム
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
US5113365A (en) * 1989-05-16 1992-05-12 Massachusetts Institute Of Technology Method and charge coupled apparatus for algorithmic computations
US5253308A (en) * 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
US5297289A (en) * 1989-10-31 1994-03-22 Rockwell International Corporation System which cooperatively uses a systolic array processor and auxiliary processor for pixel signal enhancement
JPH0620070A (ja) 1992-06-30 1994-01-28 Mitsubishi Electric Corp 並列データ処理装置
JPH06195480A (ja) 1992-10-13 1994-07-15 Nec Corp 並列処理装置
JPH09511078A (ja) * 1993-12-12 1997-11-04 エーエスピー ソルーション ユーエスエイ インコーポレイション 信号処理方法および装置
US6021172A (en) * 1994-01-28 2000-02-01 California Institute Of Technology Active pixel sensor having intra-pixel charge transfer with analog-to-digital converter
US6507362B1 (en) * 1994-12-09 2003-01-14 Neomagic Israel Ltd. Digital image generation device for transmitting digital images in platform-independent form via the internet
JPH08235149A (ja) 1995-02-24 1996-09-13 Sumitomo Metal Ind Ltd 単一命令・多データ型並列計算機の命令生成・分配装置
US5892962A (en) * 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US6362482B1 (en) * 1997-09-16 2002-03-26 Advanced Scientific Concepts, Inc. High data rate smart sensor technology
US6721008B2 (en) * 1998-01-22 2004-04-13 Eastman Kodak Company Integrated CMOS active pixel digital camera
WO2000021284A1 (fr) * 1998-10-07 2000-04-13 Hamamatsu Photonics K. K. Capteur de vision ultra-rapide
US6757019B1 (en) * 1999-03-13 2004-06-29 The Board Of Trustees Of The Leland Stanford Junior University Low-power parallel processor and imager having peripheral control circuitry
EP1164544B1 (en) * 1999-03-16 2011-11-02 Hamamatsu Photonics K.K. High-speed vision sensor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274467A (ja) * 1993-03-23 1994-09-30 Sumitomo Metal Ind Ltd フィールドプログラマブルプロセッサアレイ
JPH10145680A (ja) * 1996-11-08 1998-05-29 Hamamatsu Photonics Kk 高速視覚センサ装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HOSCHETTE J A ET AL.: "CCD analog array processor [for military applications]", NATIONAL AEROSPACE AND ELECTRONICS CONFERENCE. NAECON 1984, vol. 1, 1 January 1984 (1984-01-01), pages 228 - 233
See also references of EP1164544A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002094886A (ja) * 2000-09-13 2002-03-29 Hamamatsu Photonics Kk 高速画像処理装置
JP2008243233A (ja) * 2001-03-13 2008-10-09 Ecchandesu:Kk 視覚装置
JP4625513B2 (ja) * 2001-03-13 2011-02-02 株式会社エッチャンデス 視覚装置
JP2002365022A (ja) * 2001-06-05 2002-12-18 Hamamatsu Photonics Kk 画像計測カメラ

Also Published As

Publication number Publication date
EP1164544A1 (en) 2001-12-19
EP1164544A4 (en) 2010-04-21
JP4489305B2 (ja) 2010-06-23
JP4503697B2 (ja) 2010-07-14
JP2010063173A (ja) 2010-03-18
US7532244B2 (en) 2009-05-12
US6970196B1 (en) 2005-11-29
US20050280728A1 (en) 2005-12-22
EP1164544B1 (en) 2011-11-02
AU2941600A (en) 2000-10-04

Similar Documents

Publication Publication Date Title
WO2000055810A1 (fr) Capteur de vision ultra-rapide
US6670904B1 (en) Double-ramp ADC for CMOS sensors
TWI550447B (zh) 線性裝置值估算方法、電容偵測方法、積體電路、觸摸感測器系統、及電子裝置
US7244919B2 (en) Semiconductor integrated circuit device having photo detector circuits, processing elements, and comparing circuits which compare the output of a photo detector element with a reference voltage
JP3962788B2 (ja) A/d変換アレイ及びイメージセンサ
JP2010136413A (ja) 高速視覚センサ装置
JP4592243B2 (ja) 高速画像処理カメラシステム
Tang et al. Considerations of integrating computing-in-memory and processing-in-sensor into convolutional neural network accelerators for low-power edge devices
US8149150B2 (en) Cyclic analog/digital converter
Cembrano et al. ACE16k: a 128× 128 focal plane analog processor with digital I/O
JP3834113B2 (ja) 高速視覚センサ装置
EP0725356B1 (en) Semiconductor device, semiconductor circuit using the device, and correlation calculation device, signal converter, and signal processing system using the circuit
JP4302212B2 (ja) 高速視覚センサ装置
US7046821B2 (en) Image detection processor
EP0709793A2 (en) Semiconductor device and operating device, signal converter, and signal processing system using the semiconductor device
JP2002094886A (ja) 高速画像処理装置
US20090046181A1 (en) Method and apparatus providing improved successive approximation analog-to-digital conversion for imagers
JP2000333083A (ja) 高速視覚センサ装置
JP2002183724A (ja) 高速画像処理装置
JP2002083292A (ja) 画像信号処理装置
US20240089626A1 (en) Image sensor
CN116916143A (zh) 图像处理设备、图像处理方法和计算机可读存储介质
CN116647767A (zh) 图像传感器
JPH09200624A (ja) 並列信号処理回路、信号処理装置および信号処理システム
Aubreton et al. Using dithering for implementing geometric moment function estimation in a correlation retina

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 09936267

Country of ref document: US

ENP Entry into the national phase

Ref country code: JP

Ref document number: 2000 605967

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 2000908001

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2000908001

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642