Coordinate rotation processing device, phase-limited correlation calculation device, control method, and program

The coordinate rotation processing apparatus employs CORDIC processing to generate output vectors with deflection angles, addressing the complexity of phase-constrained correlation calculations and achieving efficient alignment with reduced circuit size.

JP2025087492APending Publication Date: 2025-06-10CANON KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023202191
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-29
Publication Date
2025-06-10

AI Technical Summary

Technical Problem

Existing methods for phase-constrained correlation calculation require complex circuits for normalization, leading to increased circuit size and complexity.

Method used

A coordinate rotation processing apparatus using CORDIC processing means to generate output vectors with deflection angles based on input vectors, achieving normalization without the need for complex circuitry.

Benefits of technology

The solution enables a compact circuit design that calculates output vectors with deflection angles, improving alignment accuracy and reducing circuit complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025087492000001_ABST
    Figure 2025087492000001_ABST
Patent Text Reader

Abstract

To achieve a small-scale circuit that obtains an output vector having a deflection angle based on the deflection angles of two input vectors as a new deflection angle.SOLUTION: A coordinate rotation processing device executes: processing of inputting a first input vector to vector input orthogonal coordinate data, and inputting a coefficient intensity vector having a coefficient intensity to rotation input orthogonal coordinate data, thereby generating, as rotation output orthogonal coordinate data, a coefficient intensity first vector having a deflection angle of the first input vector and having an intensity obtained by multiplying the coefficient intensity by a predetermined coefficient; and processing of inputting a second input vector to the vector input orthogonal coordinate data, and inputting a coefficient intensity first vector to the rotation input orthogonal coordinate data, thereby generating, as rotation output orthogonal coordinate data, a coefficient intensity second vector having the deflection angle obtained by adding or subtracting the deflection angle of the first input vector and the deflection angle of the second input vector and having an intensity obtained by multiplying the coefficient intensity by the square of a predetermined coefficient. The coefficient intensity is a predetermined value that is set for every set of vector pairs consisting of the first input vector and the second input vector.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a coordinate rotation processing device, a phase-limited correlation operation device, a control method, and a program.

Background Art

[0002] Conventionally, in the fields of communication and image / video signal processing, there have been techniques for associating (matching, aligning) two signals or images. For example, as in Patent Document 1, distance measurement and three-dimensional measurement can be performed by aligning the positions of objects in two images on the left and right sides in stereo vision. Also, as in Patent Document 2, by searching for a registered marker image from a captured image and aligning it, for example, positioning of a substrate of a lithography apparatus is performed. In recent years, in order to improve the above-described measurement accuracy and alignment accuracy, there has been an increasing demand for a robust alignment with sub-pixel accuracy higher than that of the pixels of the captured image, independent of the imaging target and imaging conditions. To meet this demand, a method using a phase-limited correlation function is known (Patent Document 1 and Non-Patent Document 1).

[0003] On the other hand, in the method using a phase-limited correlation function, the amount of calculation required for two-dimensional discrete Fourier transform and the amount of calculation required for phase operation (vector operation) for two images increase. As a lightweight vector operation method, a coordinate data rotation arithmetic unit called "CORDIC" that can realize coordinate rotation only by repeating bit shift and addition / subtraction is disclosed in Non-Patent Document 2. Also, Patent Documents 3 and 4 disclose vector-mode CORDIC and rotation-mode CORDIC. Vector-mode CORDIC converts rectangular coordinates to polar coordinates and outputs the distance (absolute value) from the origin of two-dimensional coordinates. Rotation-mode CORDIC inputs the azimuth angle information obtained in vector mode as a rotation angle and outputs rectangular coordinates obtained by rotating other rectangular coordinates by the rotation angle.

Prior Art Documents

Patent Documents

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2010-071922 [Patent Document 2] Japanese Patent Application Laid-Open No. 2017-015994 [Patent Document 3] Japanese Patent No. 3283504 [Patent Document 4] Japanese Patent Application Laid-Open No. 2017-123057 [Non-Patent Document]

[0005] [Non-Patent Document 1] Sei Nagashima, Takafumi Aoki, Tatsuo Higuchi, Koji Kobayashi, "Improvement of High Performance Subpixel Image Matching Based on Phase-Constrained Correlation Method", The 218th Research Meeting of the Tohoku Branch of the Instrumentation and Control Engineers Society (October 9, 2004), Document No. 218-15 [Non-Patent Document 2] J. E. Volder. "The CORDIC trigonometric computing technique", IRE Transactions on Electronic Computers, EC-8:330-334, 1959. [Summary of the Invention] [Problems to be Solved by the Invention]

[0006] In phase-constrained correlation calculation, it is necessary to generate a normalized output vector by using, as a new phase angle, the phase angle based on the phase angles of two input vectors. Patent Document 3 does not suggest any configuration for generating such an output vector at all. Also, in Patent Document 4, although it is possible to obtain an output vector using, as a new phase angle, the phase angle based on the phase angles of two input vectors, a circuit (a circuit that performs absolute value calculation and division) for performing normalization processing is required to obtain a normalized output vector, resulting in an increase in circuit scale.

[0007] The present invention has been made in view of the above problems, and an object thereof is to provide a technique for realizing, on a small scale, a circuit that obtains an output vector having a deflection angle based on the respective deflection angles of two input vectors as a new deflection angle.

Means for Solving the Problems

[0008] The coordinate rotation processing apparatus according to the present invention that achieves the above object includes CORDIC processing means for generating rotation output orthogonal coordinate data from vector input orthogonal coordinate data and rotation input orthogonal coordinate data, The CORDIC processing means inputs a first input vector to the vector input orthogonal coordinate data, and inputs a coefficient intensity vector (C, 0) with a coefficient intensity C to the rotation input orthogonal coordinate data, thereby obtaining a deflection angle of the first input vector and multiplying the coefficient intensity C by a scaling coefficient. A first phase process for generating a coefficient intensity first vector having an intensity as the rotation output orthogonal coordinate data; inputs a second input vector to the vector input orthogonal coordinate data, and inputs the coefficient intensity first vector to the rotation input orthogonal coordinate data, thereby adding or subtracting the deflection angle of the first input vector and the deflection angle of the second input vector. A second phase process for generating a coefficient intensity second vector having an intensity obtained by multiplying the coefficient intensity C by the square of the scaling coefficient as the rotation output orthogonal coordinate data; executes, The coefficient intensity C is a predetermined value set for each set of vector pairs including the first input vector and the second input vector.

Effects of the Invention

[0009] According to the present invention, it is possible to realize, on a small scale, a circuit that obtains an output vector having a deflection angle based on the respective deflection angles of two input vectors as a new deflection angle.

Brief Description of the Drawings

[0010]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Embodiments for Carrying Out the Invention

[0011] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiments, not all of these plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the accompanying drawings, the same or similar configurations are denoted by the same reference numerals, and duplicate explanations are omitted.

[0012] (First Embodiment) FIG. 1(A) and FIG. 1(B) are diagrams showing a configuration example of the coordinate rotation processing apparatus according to the present embodiment. FIG. 1(A) is a functional block diagram showing each functional unit corresponding to each process performed by the coordinate rotation processing apparatus 100 of the present embodiment. FIG. 1(B) is a block diagram showing a hardware configuration example of the data processing apparatus 110 that realizes the coordinate rotation processing apparatus 100 shown in FIG. 1(A).

[0013] <Hardware Configuration> As shown in FIG. 1(B), the data processing apparatus 110 includes a CPU 111, a RAM 112, a ROM 113, a communication I / F (interface) 114, a recording I / F 115, and a display I / F 116, and can be realized by an information processing apparatus such as a so-called personal computer. The data processing apparatus 110 can be connected to a recording medium 120 such as a hard disk or a semiconductor memory via the recording I / F 115, and can be connected to a display device 121 such as a liquid crystal display via the display I / F 116. Further, the data processing apparatus 110 can be connected to, for example, an imaging device 130 or various NWs (networks) 131 via the communication I / F 114.

[0014] The ROM 113 holds various programs including the data processing program according to the present embodiment. The program in the ROM 113 is expanded in the RAM 112 and executed by the CPU 111. The RAM 112 is used as a work area for the CPU 111 in addition to the expansion of the program, and temporarily stores input image data, image data during processing, and the like.

[0015] The communication I / F 114 communicates with, for example, the imaging device 130 or the network 131. When the communication I / F 114 receives image data or the like sent from the imaging device 130 or the network 131, those image data are temporarily stored in the RAM 112 under the control of the CPU 111. The CPU 111 performs various image processes or the like on those image data as necessary, and displays them on the screen of the display device 121 via the display I / F 116 or records them on the recording medium 120 via the recording I / F 115.

[0016] The CPU 111 performs various processes and controls in the data processing device 110, and can also execute a data processing program and the like according to this embodiment to perform various image processes including data conversion processes as described later. In this embodiment, an example is given in which the processes of the respective functional units of the coordinate rotation processing device 100 in Fig. 1(A) are realized by software processes in which the CPU 111 executes a program. Of course, the processes of these respective functional units may be realized by a hardware configuration such as a circuit corresponding to each of them. Further, each functional unit may be realized by one device, or may be realized by a plurality of devices.

[0017] <Functional configuration> Subsequently, with reference to Fig. 1(A), the functional configuration of the coordinate rotation processing device 100 according to this embodiment will be described. The coordinate rotation processing device 100 includes a Vector-Rotation CORDIC processing unit (hereinafter, CORDIC processing unit 101) 101, a data selection unit 102, a data holding unit 103, a coefficient strength vector generation unit 104, and a control unit 106.

[0018] The CORDIC processing unit 101 generates rotation output orthogonal coordinate data 14 from vector input orthogonal coordinate data 10 and rotation input orthogonal coordinate data 13. More specifically, rotation output orthogonal coordinate data 14 obtained by rotating the vector of the rotation input orthogonal coordinate data 13 by the declination angle of the vector input orthogonal coordinate data 10, which is an input vector of the coordinate rotation processing device 100, is generated by Vector-Rotation CORDIC described later. The generated rotation output orthogonal coordinate data 14 is stored in the data holding unit 103 or output as an output vector of the coordinate rotation processing device 100.

[0019] The data selection unit 102 selects either the coefficient strength vector 11 or the rotation output orthogonal coordinate data 12 read from the data holding unit 103 as the rotation input orthogonal coordinate data 13. The data holding unit 103 holds the rotation output orthogonal coordinate data 14 generated by the CORDIC processing unit 101.

[0020] The coefficient intensity vector generation unit 104 generates a coefficient intensity vector 11 having a coefficient intensity C corresponding to the vector input orthogonal coordinate data 10. This is an intensity adjustment value for the vector components of the vector input orthogonal coordinate data 10. For example, if the vector input orthogonal coordinate data 10 is data for each frequency component, the intensity adjustment value means the coefficient value of the frequency filter. The coefficient intensity C is a predetermined value set for each set of vector pairs consisting of two input vectors (the first input vector and the second input vector). The control unit 106 controls the operation of the coordinate rotation processing device 100.

[0021] <Description of Vector-Rotation CORDIC> Subsequently, an outline of Vector-Rotation CORDIC will be described. When the processing is completed in the vector mode processing and the rotation mode processing and the phase angle is not required externally, it is redundant to convert the rotation direction information into the phase angle in the vector mode and return it to the original rotation direction information in the rotation mode. If the rotation direction information is directly sent, the coordinate rotation operation can be efficiently performed, and the conversion to / from the phase angle is unnecessary, enabling low-latency processing.

[0022] FIG. 2 shows a configuration diagram of Vector-Rotation CORDIC according to the present embodiment. As shown in FIG. 2, the CORDIC processing unit 101 includes two pipelines, a pipeline CORDIC operation unit 201 in the vector mode and a pipeline CORDIC operation unit 202 in the rotation mode. Between the corresponding coordinate rotation operation units in each stage of these two pipelines, two-value rotation direction information 203 indicating the rotation direction is sent from the vector mode (pipeline CORDIC operation unit 201) to the rotation mode (pipeline CORDIC operation unit 202). The pipeline CORDIC operation unit 201 (vector mode processing) has an input vector (x 0 ', y 0') By repeating the following multiple rotation processes, the input vector is rotated by the deflection angle and converged to a vector with a magnitude that is a multiple of the scaling factor. The pipeline CORDIC operation unit 202 (rotation mode processing) repeats the multiple rotation processes according to the rotation direction information 203, thereby rotating the input vector (x 0 , y 0 ) and performing the same multiple rotation processes as in the vector mode processing. As a result, from the pipeline CORDIC operation unit 202, the input vector (x 0 , y 0 ) is rotated by the deflection angle of the input vector (x 0 ', y 0 '), and a vector with a magnitude multiplied by the scaling factor is obtained.

[0023] Fig. 3 shows the circuit configuration of the i-th stage (i = 0, 1, 2, 3 ···) of the pipeline. Fig. 3 shows a coordinate rotation operation unit 301 that performs the vector mode processing of the i-th stage and a coordinate rotation operation unit 302 that performs the rotation mode processing of the i-th stage. The coordinate rotation operation unit 301 and the coordinate rotation operation unit 302 have the same circuit configuration. However, the sign bit sign(y i ') of y i ' is input to the adder / subtractor 304 of the coordinate rotation operation unit 301, and the value obtained by inverting the sign bit sign(y i ') by the inverter 306 is input to the adder / subtractor 304 of the coordinate rotation operation unit 302. That is, the sign bit sign(y i ') of y i ' in each stage of the vector mode processing is used as the rotation direction information 203 representing the rotation direction of each stage of the rotation mode processing. The input data x i ', y i ' are vector coordinate data, and the coordinate rotation operation unit 301 receives the data and performs vector mode operations with two shift circuits 303 and two adder / subtractors 304. Each operation result is recorded in the register 305 as the output data x i+1 ' and y i+1 ' and provided to the next stage (the (i + 1)-th stage). Also, the input data x i , y iis rotation coordinate data, and the coordinate rotation operation unit 302 performs rotation mode operations on the input rotation coordinate data using two shift circuits 303 and two adders / subtractors 304.

[0024] The direction of coordinate rotation by the adders / subtractors 304 of the coordinate rotation operation unit 301 and the coordinate rotation operation unit 302 is y i ' data's sign bit, that is, sign(y i ) is determined. For example, assuming that the vector coordinate data (x i ,y i ) is in the first or fourth quadrant, if sign(y i ) = 0, a right rotation is performed; if sign(y i ) = 1, a left rotation is performed. On the other hand, in the coordinate rotation operation unit 302, since sign(y i ) is inverted by the inverter 306, if sign(y i ) = 0, a left rotation is performed; if sign(y i ) = 1, a right rotation is performed. The operation processing by the coordinate rotation operation unit 301 and the coordinate rotation operation unit 302 is common. Hereinafter, the operation of the coordinate rotation operation unit 302 will be described. For example, in the adder / subtractor 304, the rotation operation to rotate the rotation coordinate data x i ,y i to the right and obtain x i+1 ,y i+1 is as follows.

[0025] x i+1 = x i +(2 -i )·y i y i+1 = y i -(2 -i )·x i ··· (1) The data on the left side of equation (1) becomes the input data of the operation unit in the next stage (stage i + 1). Also, the data obtained by multiplying the right side of equation (1) by (2 -i ) is the data to be multiplied, which is x i ,y iIt is obtained by a shift circuit 303 that right-shifts by i bits. On the other hand, when rotating left, the addition on the right side of Equation (1) is switched to subtraction, and the subtraction is switched to addition for calculation. With the above circuit configuration, in the case of an n-stage pipeline, in vector mode processing, for an input vector (x 0 ', y 0 '), n rotations are performed so that the declination converges to 0° (y n ' = 0). Then, in rotation mode processing, the same rotations as the n rotations in vector mode processing are applied to the input vector (x 0 , y 0 ). In rotation mode processing, since the signal obtained by inverting sign(y i ') by the inverter 306 is used, as will be described later with reference to FIGS. 5(A) and 5(B), the input vector (x 0 , y 0 ) will rotate in the direction of the declination by the amount of the declination of the input vector (x 0 ', y 0 ).

[0026] Based on the declination information of the vector input to the vector mode process (pipeline CORDIC calculation unit 201) as described above, a new vector obtained by rotating the vector input to the rotation mode process (pipeline CORDIC calculation unit 202) is generated. Although the case where CORDIC has a pipeline configuration has been described above, the present disclosure is not limited to such a pipeline configuration and is also applicable to a recursive CORDIC configuration, and the same effect can be obtained. In FIG. 1, the vector input orthogonal coordinate data 10 corresponds to the above-described coordinate data for vectors, and the rotation input orthogonal coordinate data 13 corresponds to the above-described coordinate data for rotation. Therefore, the CORDIC processing unit 101 generates a vector (rotation output orthogonal coordinate data 14) obtained by rotating the vector to be rotated (rotation input orthogonal coordinate data 13) by the declination of the input vector (vector input orthogonal coordinate data 10) of the coordinate rotation processing apparatus 100. In the first phase process described later, the rotation output orthogonal coordinate data 14 is stored in the data holding unit 103 as a coefficient intensity first vector (described later). Further, in the second phase process described later, the rotation output orthogonal coordinate data 14 is output as an output vector (described later) of the coordinate rotation processing apparatus 100. The data selection unit 102 selects either the coefficient intensity vector (C, 0) with an intensity of C or the output orthogonal coordinate data 12 read from the data holding unit 103, and supplies it to the CORDIC processing unit 101 as the rotation input orthogonal coordinate data 13. More specifically, the data selection unit 102 selects the coefficient intensity first vector in the first phase process described later, and selects the output orthogonal coordinate data 12 read from the data holding unit 103 in the second phase process described later. The control unit 106 controls the CORDIC processing unit 101, the data selection unit 102, and the data holding unit 103 to obtain an output vector having the difference in declination between the first input vector and the second input vector as the declination.

[0027] Thus, the CORDIC operation unit 201 inputs the vector input orthogonal coordinate data 10, repeats the rotation process a plurality of times for the vector input orthogonal coordinate data 10, converges to the data indicating the magnitude of the vector represented by the vector input orthogonal coordinate data 10, and outputs the rotation direction information of the plurality of rotation processes. Further, the CORDIC operation unit 202 inputs the rotation input orthogonal coordinate data 13, and performs a plurality of rotation processes on the rotation input orthogonal coordinate data 13 by using the rotation direction information of the plurality of rotation processes, thereby rotating the rotation input orthogonal coordinate data 13 by the deviation angle of the vector represented by the vector input orthogonal coordinate data 10 and converging to the data indicating the rotation output orthogonal coordinate data 14 multiplied by the scaling coefficient corresponding to the number of times of the rotation process.

[0028] <Process> FIG. 4(A) is a flowchart showing the procedure of the process performed by the coordinate rotation processing apparatus 100 according to the present embodiment. In the present embodiment, the phase difference between the first input vector and the second input vector (the difference value (subtraction value) of the two deviation angles) is used as the deviation angle, and the vectors having the coefficient strengths corresponding to the first input vector and the second input vector are obtained by three processes.

[0029] (S401: Coefficient Strength Generation Process) In S401, the coefficient strength vector generation unit 104 generates a coefficient strength vector 11 having a coefficient strength C corresponding to the vector input orthogonal coordinate data 10. The coefficient strength C is a filter coefficient for each frequency component, and can be a predetermined value (filter value) set for each set of vector pairs including the first input vector and the second input vector.

[0030] As a specific example, FIGS. 9(A) and 9(B) show an image diagram of the data of the vector input orthogonal coordinate data 10 and the coefficient strength. In the example of FIG. 9(A), one-dimensional series data having n elements is shown, and the coefficient strength corresponding to V 0 is C 0 , the coefficient strength corresponding to V 1 is C 1 , and the coefficient strength corresponding to V n is C nis. Thus, each of the vector pair and the coefficient intensity vector may be n one-dimensional series data. Also, in the example of FIG. 9(B), two-dimensional series data having m×n elements is shown, and the coefficient intensity corresponding to V 0,0 is C 0,0 , and the coefficient intensity corresponding to V 0,1 is C 0,1 , and the coefficient intensity corresponding to V m,n is C m,n . Thus, each of the vector pair and the coefficient intensity vector may be n×m two-dimensional series data.

[0031] (S402: First phase processing) In S402, the control unit 106 inputs the first input vector to the vector input orthogonal coordinate data 10, and inputs the coefficient intensity vector (C, 0) with intensity C to the rotation input orthogonal coordinate data 13. Then, the rotation output orthogonal coordinate data 14 having the declination angle of the first input vector and the intensity that is "a scaling coefficient multiple of C1" is obtained as the coefficient intensity first vector. The scaling coefficient is a coefficient corresponding to the number of processing stages (number of rotations) of CORDIC. When the number of rotations is i, C1 = C(1 + 2 -2i ) 1 / 2 is shown.

[0032] Here, FIG. 6 shows the vector image of the first phase processing. When the declination angle of the first input vector 601 is θ 1 , the coefficient intensity vector 602 (intensity = C, θ = 0) is rotated by θ 1 by the rotation processing by Vector-Rotation CORDIC, and as shown in the figure, the coefficient intensity first vector 603 having intensity C1 and declination angle θ 1 is generated. The obtained coefficient intensity first vector is stored in the data holding unit 103. Note that the data holding unit 103 may be an internal memory composed of an SRAM or a register, or may be an external memory such as a DRAM or an external recording device.

[0033] (S403: Second phase processing) In S403, the control unit 106 inputs a second input vector to the vector input orthogonal coordinate data 10. The control unit 106 inputs, to the rotation input orthogonal coordinate data 13, the conjugate data of the coefficient strength first vector stored in the data holding unit 103 in S402, that is, the data with the sign of the Y-axis data inverted in the orthogonal coordinates, which is selected by the data selection unit 102 and input.

[0034] Thereby, a vector having the phase difference between the first input vector and the second input vector as the deflection angle is obtained. Note that the intensity of the output vector is C2. C2 is a value obtained by multiplying C1 by a scaling coefficient. When the number of rotations is i, C2 = C1(1 + 2 -2i ) 1 / 2 is shown. Therefore, C2 = C1(1 + 2 -2i ) 1 / 2 = C(1 + 2 -2i ) 1 / 2 ·(1 + 2 -2i ) 1 / 2 = C · (square of the scaling coefficient).

[0035] Here, FIG. 7(A) shows the vector image of the second phase processing. When the deflection angle of the second input vector 711 is θ 2 , by the rotation processing by Vector-Rotation CORDIC, the coefficient strength first vector 603'(θ = -θ 1 ) is rotated by θ 2 , and a coefficient strength second vector 712 having a deflection angle of θ 2 -θ 1 is generated as shown in FIG. 7(A). The acquired coefficient strength second vector 712 is output as the output vector.

[0036] (S404: Determination Process) In S404, the control unit 106 determines whether the first input vector or the second input vector has been newly input or updated. If this step is Yes, the process returns to the first phase processing in S401 to calculate a new output vector. On the other hand, if this step is No, a series of processes are terminated.

[0037] As described above, in the present embodiment, the phase difference between two input vectors (the first input vector and the second input vector) is used as the deflection angle, and a vector having coefficient strengths corresponding to the two input vectors is generated. By realizing this with a Vector-Rotation CORDIC configuration, a coordinate rotation processing device with a small circuit scale can be provided. Therefore, it becomes possible to realize a circuit for obtaining an output vector with the difference between the deflection angles of the two input vectors as a new deflection angle on a small scale.

[0038] Also, according to the present embodiment, it is possible to provide coefficient strengths for each input vector to the coordinate rotation processing device realized by the Vector-Rotation CORDIC configuration, in other words, to add a filter process. Therefore, since it is not necessary to add a filter circuit for frequency components (vectors), a reduction in circuit scale can be realized.

[0039] In the present embodiment, an example has been described in which conjugate data of the coefficient strength first vector is used as the rotation input orthogonal coordinate data 13 in the second phase process of S403 in order to obtain a vector of the phase difference. However, the present invention is not limited to this.

[0040] For example, in the first phase process of S402, the conjugation process can also be performed by rotating the coefficient strength vector in the reverse direction. More specifically, in the first phase process, the above-described coefficient strength first vector is obtained by inputting the rotation direction information 203 to the adder / subtractor 304 without inverting it (without passing through the inverter 306) in the coordinate rotation operation unit 302 that performs the rotation mode process. Then, in the second phase process, the rotation direction information 203 is inverted by the inverter 306 and input to the adder / subtractor 304, thereby obtaining an output vector with the phase difference as the deflection angle.

[0041] Also, it is possible to generate a vector of phase addition instead of the phase difference by using the coefficient strength first vector as it is without conjugating it. That is, the deflection angle of the coefficient strength second vector may be the added value of the deflection angle of the first input vector and the deflection angle of the second input vector. For example, as shown in FIG. 7(B), when the deflection angle θ is θ2 The second input vector 711a and the coefficient strength first vector 603(θ 1 ) are input to the CORDIC processing unit 101, and the coefficient strength first vector 603(θ 1 ) is further rotated by θ 2 in the same direction. As a result, the declination angle of the coefficient strength second vector 712a (output vector) becomes θ 1 +θ 2 . In this case as well, the strength is C2 as in the case of the phase difference.

[0042] (Second Embodiment) In the second embodiment, a case where there is a change only in one of two vectors, the first input vector and the second input vector, will be described as an example. In this embodiment, it is assumed that there is no change in the first input vector in particular. Since the apparatus configuration is the same as that of the first embodiment, the description thereof will be omitted.

[0043] (Processing) FIG. 5(A) is a flowchart showing the procedure of the process performed by the coordinate rotation processing apparatus 100 according to this embodiment. FIG. 5(A) corresponds to the process of FIG. 4(A) described in the first embodiment. In this embodiment, it is assumed that only the second input vector changes, and the process of S501 is executed instead of S404 in FIG. 4(A).

[0044] (S501: Determination Process) In S501, it is determined whether or not the second vector has been newly input or updated. If this step is Yes, the process returns to the second phase process of S403 and the process is repeated. This is because there is no change in the first vector, and thus the new process only needs to be the second phase process of S403. On the other hand, if this step is No, the series of processes is terminated.

[0045] As described above, in this embodiment, when the first vector is first input, the first phase process is executed, and after the execution of the first phase process, each time the second vector is input or changed, the second phase process is executed. According to this embodiment, when only one of the two input vectors (the first input vector and the second input vector) changes, the number of processing steps can be further reduced compared to the first embodiment.

[0046] (Third Embodiment) In this embodiment, a phase-limited correlation arithmetic unit using the coordinate rotation processing device described in the first embodiment or the second embodiment will be described. Hereinafter, the differences from the first embodiment and the second embodiment will be mainly described.

[0047] <Configuration of Phase-Limited Correlation Arithmetic Unit> FIG. 8 shows a configuration diagram of a phase-limited correlation arithmetic unit 800 according to this embodiment. The phase-limited correlation arithmetic unit 800 can be realized, for example, by the data processing device 110 shown in FIG. 1(B). The phase-limited correlation arithmetic unit 800 includes an FFT processing unit 801, a coordinate rotation processing device 100, an inverse FFT processing unit 802, a peak determination unit 803, and a control unit 804.

[0048] The coordinate rotation processing device (coordinate rotation processing unit) 100 has the same functional configuration as the coordinate rotation processing device 100 described in the first embodiment or the second embodiment. The FFT processing unit 801, the coordinate rotation processing device 100, the inverse FFT processing unit 802, and the peak determination unit 803 operate under the control of the control unit 804 to perform phase-limited correlation arithmetic processing.

[0049] The FFT processing unit 801 performs FFT processing on the input signal to generate vector information having frequency components, that is, intensity and phase information. The inverse FFT processing unit 802 performs inverse FFT processing on the output vector that is the output value of the coordinate rotation processing device 100 to generate a phase-limited correlation value. The peak determination unit 803 acquires correlation coordinate values from the intensity information of the phase-limited correlation value.

[0050] If the input signal is one-dimensional data, it may be audio data, time-series measurement results of the object to be measured, or line information of a captured image. In that case, in the FFT processing unit 801 and the inverse FFT processing unit 802, one-dimensional FFT processing is performed. Further, the peak determination unit 803 determines the peak position by one-dimensional function fitting processing or the like.

[0051] Further, the coefficient intensity vector 11 generated by the coefficient intensity vector generation unit 104 provided in the coordinate rotation processing device 100 is a coefficient value for each one-dimensional or two-dimensional frequency component of the input signal (n one-dimensional series data, n×m two-dimensional series data). Therefore, the output vector of the coordinate rotation processing device 100 has the coefficient values of each frequency component, that is, a frequency filter is applied.

[0052] If the input signal is two-dimensional data such as captured image data, the FFT processing is also performed two-dimensionally. Further, the peak determination unit 803 determines the peak position by two-dimensional fitting, for example, parabola fitting processing or the like. When the peak position is known by the peak determination unit 803, this becomes the amount of displacement between data (for example, between image data), so that alignment can be performed based on this amount of displacement.

[0053] <Processing> FIG. 4(B) is a flowchart showing the procedure of the process performed by the phase-limited correlation arithmetic unit 800 according to the present embodiment. For the process of FIG. 4(A), the processes of S451 to S453 are added. Hereinafter, the differences from FIG. 4(A) will be mainly described.

[0054] In S451, the FFT processing unit 801 performs Fourier transform (FFT operation in this embodiment) on the first input signal to generate vector information of frequency components, that is, a plurality of vectors composed of the intensity and phase information of each frequency. These plurality of vectors are used as a plurality of first input vectors of the coordinate rotation processing device 100. Note that FFT represents Fast Fourier Transformation. The generated plurality of first input vectors are input from the FFT processing unit 801 to the coordinate rotation processing device 100.

[0055] In S401, as described in the first embodiment, the coordinate rotation processing device 100 generates a coefficient intensity vector 11 having a coefficient intensity C corresponding to the vector input orthogonal coordinate data 10.

[0056] In S402, the coordinate rotation processing device 100 inputs each of the plurality of first input vectors to the CORDIC processing unit 101 as the vector input orthogonal coordinate data 10 and performs first phase processing. A plurality of coefficient intensity first vectors obtained by performing first phase processing on each of the plurality of first input vectors are held in the data holding unit 103. The first phase processing for the first input vector is as described in the first embodiment.

[0057] In S452, the FFT processing unit 801 performs FFT processing on the second input signal to generate a plurality of vectors composed of the intensity and phase information of each frequency. These plurality of vectors are provided to the coordinate rotation processing device 100 as second input vectors.

[0058] In S403, the coordinate rotation processing device 100 performs second-phase processing using each of a plurality of coefficient strength first vectors held in the data holding unit 103 and each of a plurality of second input vectors input in S452, to obtain a plurality of output vectors. The second-phase processing is as described in the first embodiment, and the second input vector is input to the CORDIC processing unit 101 as vector input orthogonal coordinate data 10, and the coefficient strength first vector is input as rotation input orthogonal coordinate data 13. However, the pair of the coefficient strength first vector and the second input vector used for the second-phase processing is a pair of vectors corresponding to the same frequency among the plurality of coefficient strength first vectors and the plurality of second input vectors.

[0059] In S453, the inverse FFT processing unit 802 generates phase-limited correlation value data by performing an inverse Fourier transform (in this embodiment, an inverse fast Fourier transform (inverse FFT operation)) on the output vector group obtained from the coordinate rotation processing device 100 in S402.

[0060] In S454, the peak determination unit 803 obtains a correlation coordinate value from the intensity information of the phase-limited correlation value. This correlation coordinate value corresponds to, for example, the relative positional shift between two images, and can be used for various image processes such as image matching and alignment.

[0061] In S404, the control unit 804 determines whether the first input signal or the second input signal has been updated, as a condition for executing the next new process. If this step is Yes, control is performed to return to S451 to execute the process, and a correlation coordinate value for the new input signal is acquired.

[0062] Note that when it is assumed that only the second input signal is updated without the first input signal being updated, the control unit 804 may perform the phase-limited correlation operation process shown in FIG. 5(B). That is, after the process of S454, in S501, the control unit 804 determines whether the second input signal has been updated. If this step is Yes, control is performed to return to S452 to execute the process, and a correlation coordinate value for the new second input signal is acquired.

[0063] As described above, according to the present embodiment, it is possible to provide a phase-limited correlation operation device having frequency filter processing, which is realized by a Vector-Rotation CORDIC configuration with a small circuit scale. According to the present embodiment, a phase-limited correlation operation on two input vectors and a filter operation of multiplying a predetermined coefficient to the operation result are processed using Vector-Rotation CORDIC. Thereby, a phase-limited correlation operation having a frequency filter capable of emphasizing only a desired frequency component can be realized with a small circuit scale. Therefore, for example, since a frequency filter corresponding to an image pattern can be applied to the output vector, it is possible to improve the alignment accuracy.

[0064] As described above, according to the present embodiment, a phase-limited correlation operation on two input vectors and a filter operation of multiplying a predetermined coefficient to the operation result can be realized with a small circuit scale.

[0065] (Fourth Embodiment) This embodiment is another example of the coordinate rotation processing device described in the first embodiment or the second embodiment. The configuration and the processing parts changed with respect to the first embodiment and the second embodiment will be mainly described.

[0066] FIG. 10(A) shows the configuration of the coordinate rotation processing device according to the fourth embodiment. The coordinate rotation processing device 1000A includes a CORDIC processing unit 101, a data holding selection unit 105, and a control unit 106. In this embodiment, a coefficient strength vector generation unit 104 is not provided, and a coefficient strength vector is supplied from the outside. The coefficient strength vector 15 may be generated by an external control unit (not shown) or transferred from a memory (not shown) or the like. Further, a data holding selection unit 105 is provided instead of the data holding unit 103.

[0067] The generated rotation output orthogonal coordinate data 14 is stored in the data holding selection unit 105 or output as an output vector of the coordinate rotation processing device 1000A. Similarly, the coefficient intensity vector 15 supplied from the outside is also stored in the data holding selection unit 105. In the data holding selection unit 105, either data is selected according to the processing described in the above embodiment and input to the CORDIC processing unit 101 as the rotation input orthogonal coordinate data 13. Specifically, in the case of the first phase processing, the coefficient intensity vector 15 is selected, and in the case of the second phase processing, the rotation output orthogonal coordinate data 14 is selected and output.

[0068] Note that the data holding selection unit 105 may be an internal memory composed of an SRAM or a register, or may be an external memory such as a DRAM or an external recording device. FIG. 10(B) shows a configuration example of the coordinate rotation processing device 1000B in that case. That is, it is a configuration example in which the data holding selection unit 105 is not provided inside the coordinate rotation processing device 1000B.

[0069] As described above, according to the present embodiment, by obtaining the coefficient intensity vector 15 from the outside, it is possible to provide a coordinate rotation processing device with a smaller circuit scale in which the coefficient vector generation processing is omitted.

[0070] The disclosure of this specification includes the following coordinate rotation processing device, phase-limited correlation operation device, control method, and program.

[0071] (Item 1) It includes CORDIC processing means for generating rotation output orthogonal coordinate data from vector input orthogonal coordinate data and rotation input orthogonal coordinate data, The CORDIC processing means is By inputting a first input vector to the vector input orthogonal coordinate data and inputting a coefficient intensity vector (C, 0) with a coefficient intensity C to the rotation input orthogonal coordinate data, a coefficient intensity first vector having the deflection angle of the first input vector and having an intensity obtained by multiplying the coefficient intensity C by a scaling coefficient is generated as the rotation output orthogonal coordinate data in the first phase processing, By inputting a second input vector into the vector input orthogonal coordinate data and inputting the coefficient intensity first vector into the rotation input orthogonal coordinate data, a coefficient intensity second vector having an included angle obtained by adding or subtracting the included angle of the first input vector and the included angle of the second input vector and having an intensity obtained by multiplying the coefficient intensity C by the square of the scaling coefficient is generated as the rotation output orthogonal coordinate data, which is a second phase process; Execute, The coordinate rotation processing device is characterized in that the coefficient intensity C is a predetermined value set for each set of vector pairs composed of the first input vector and the second input vector.

[0072] (Item 2) Generating means for generating the coefficient intensity vector; Data holding means for holding the rotation output orthogonal coordinate data; Selecting means for selecting one of the rotation output orthogonal coordinate data held by the data holding means or the coefficient intensity vector generated by the generating means and outputting it as the rotation input orthogonal coordinate data; The coordinate rotation processing device according to item 1, further comprising:

[0073] (Item 3) The coordinate rotation processing device according to item 1, further comprising holding and selecting means for holding the coefficient intensity vector and the rotation output orthogonal coordinate data and selecting one of the coefficient intensity vector and the rotation output orthogonal coordinate data and outputting it as the rotation input orthogonal coordinate data.

[0074] (Item 4) The coordinate rotation processing device according to item 1, wherein the rotation output orthogonal coordinate data is read from an external memory.

[0075] (Item 5) The coordinate rotation processing device according to any one of items 1 to 4, wherein each of the vector pair and the coefficient intensity vector is n one-dimensional series data.

[0076] (Item 6) The coordinate rotation processing device according to any one of Items 1 to 4, wherein each of the vector pair and the coefficient strength vector is n×m pieces of two-dimensional sequence data.

[0077] (Item 7) In the second phase processing, the CORDIC processing means inputs conjugate data of the coefficient strength first vector as the rotation input orthogonal coordinate data, The coordinate rotation processing device according to any one of Items 1 to 6, wherein the argument of the coefficient strength second vector is a subtracted value of the argument of the first input vector and the argument of the second input vector.

[0078] (Item 8) In the second phase processing, the CORDIC processing means inputs the coefficient strength first vector as the rotation input orthogonal coordinate data, The coordinate rotation processing device according to any one of Items 1 to 6, wherein the argument of the coefficient strength second vector is an added value of the argument of the first input vector and the argument of the second input vector.

[0079] (Item 9) The coordinate rotation processing device according to any one of Items 1 to 6, wherein the CORDIC processing means executes the first phase processing and the second phase processing each time the first input vector or the second input vector is input or changed.

[0080] (Item) The coordinate rotation processing device according to any one of Items 1 to 6, wherein the CORDIC processing means executes the first phase processing when the first vector is first input, and after the execution of the first phase processing, executes the second phase processing each time the second vector is input or changed.

[0081] (Item 11) The scaling factor is a coefficient that depends on the number of rotations by the CORDIC processing means. When the number of rotations is i, it is (1 + 2 -2i ) 1 / 2 and is represented by. The coordinate rotation processing device according to any one of Items 1 to 10, characterized in that

[0082] (Item 12) A coordinate rotation processing device according to any one of Items 1 to 11, FFT processing means for performing an FFT operation on a first signal to obtain the first input vector and performing an FFT operation on a second signal to generate the second input vector, Inverse FFT processing means for performing an inverse FFT operation on the coefficient strength second vector to generate phase-limited correlation value data, Peak determination means for calculating a peak position of the phase-limited correlation value data in order to obtain a correlation coordinate value between the first signal and the second signal, A phase-limited correlation operation device, characterized by comprising

[0083] (Item 13) The first signal and the second signal are one-dimensional data, The phase-limited correlation operation device according to Item 12, wherein the FFT processing means and the inverse FFT processing means perform a one-dimensional FFT operation.

[0084] (Item 14) The first signal and the second signal are two-dimensional data, The phase-limited correlation operation device according to Item 12, wherein the FFT processing means and the inverse FFT processing means perform a two-dimensional FFT operation.

[0085] (Item 15) A control method for a coordinate rotation processing device including CORDIC processing means for generating rotation output orthogonal coordinate data from vector input orthogonal coordinate data and rotation input orthogonal coordinate data, The CORDIC processing means inputs a first input vector to the vector input orthogonal coordinate data, and inputs a coefficient strength vector (C, 0) with a coefficient strength C to the rotation input orthogonal coordinate data, thereby generating a coefficient strength first vector having an argument angle of the first input vector and having a strength obtained by multiplying the coefficient strength C by a scaling coefficient as the rotation output orthogonal coordinate data in a first phase processing step; The CORDIC processing means inputs a second input vector to the vector input orthogonal coordinate data, and inputs the coefficient strength first vector to the rotation input orthogonal coordinate data, thereby generating a coefficient strength second vector having an argument angle obtained by adding or subtracting the argument angle of the first input vector and the argument angle of the second input vector and having a strength obtained by multiplying the coefficient strength C by the square of the scaling coefficient as the rotation output orthogonal coordinate data in a second phase step; having The coefficient strength C is a predetermined value set for each set of vector pairs consisting of the first input vector and the second input vector, and a control method for a coordinate rotation processing device is characterized thereby.

[0086] (Item 16) A program for causing a computer to execute the control method for a coordinate rotation processing device according to Item 15.

[0087] (Other Embodiments) The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program. Further, it can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

[0088] The invention is not limited to the above-described embodiments, and various changes and modifications are possible without departing from the spirit and scope of the invention. Therefore, the claims are attached to disclose the scope of the invention.

Explanation of Signs

[0089] 100: Coordinate rotation processing device, 101: Vector-Rotation CORDIC processing unit, 102: Data selection unit, 103: Data holding unit, 104: Coefficient strength vector generation unit, 106: Control unit

Claims

1. Comprising CORDIC processing means for generating rotation output orthogonal coordinate data from vector input orthogonal coordinate data and rotation input orthogonal coordinate data, wherein the CORDIC processing means, inputs a first input vector to the vector input orthogonal coordinate data, and inputs a coefficient strength vector (C, 0) with a coefficient strength C to the rotation input orthogonal coordinate data, thereby having an argument of the first input vector and multiplying the coefficient strength C by a scaling factor. A first phase process for generating a coefficient strength first vector having a strength as the rotation output orthogonal coordinate data; inputs a second input vector to the vector input orthogonal coordinate data, and inputs the coefficient strength first vector to the rotation input orthogonal coordinate data, thereby adding or subtracting the argument of the first input vector and the argument of the second input vector. A second phase process for generating a coefficient strength second vector having an argument and having a strength obtained by multiplying the coefficient strength C by the square of the scaling factor as the rotation output orthogonal coordinate data; executes, wherein the coefficient strength C is a predetermined value set for each set of vector pairs consisting of the first input vector and the second input vector. A coordinate rotation processing apparatus characterized by this.

2. generating means for generating the coefficient strength vector; data holding means for holding the rotation output orthogonal coordinate data; selection means for selecting one of the rotation output orthogonal coordinate data held by the data holding means or the coefficient strength vector generated by the generating means and outputting it as the rotation input orthogonal coordinate data; The coordinate rotation processing apparatus according to claim 1, further comprising this.

3. The coordinate rotation processing apparatus according to claim 1, further comprising holding selection means for holding the coefficient strength vector and the rotation output orthogonal coordinate data, and selecting one of the coefficient strength vector and the rotation output orthogonal coordinate data and outputting it as the rotation input orthogonal coordinate data.

4. The coordinate rotation processing apparatus according to claim 1, wherein the rotation output orthogonal coordinate data is read from an external memory.

5. The coordinate rotation processing apparatus according to claim 1, wherein the vector pair and the coefficient strength vector are each n one-dimensional series data.

6. The coordinate rotation processing device according to claim 1, wherein each of the vector pair and the coefficient intensity vector is n×m two-dimensional series data.

7. In the second phase processing, the CORDIC processing means inputs conjugate data of the coefficient intensity first vector as the rotation input orthogonal coordinate data. The coordinate rotation processing device according to claim 1, wherein the declination angle of the coefficient intensity second vector is a subtraction value of the declination angle of the first input vector and the declination angle of the second input vector.

8. In the second phase processing, the CORDIC processing means inputs the coefficient intensity first vector as the rotation input orthogonal coordinate data. The coordinate rotation processing device according to claim 1, wherein the declination angle of the coefficient intensity second vector is an addition value of the declination angle of the first input vector and the declination angle of the second input vector.

9. The coordinate rotation processing device according to claim 1, wherein the CORDIC processing means executes the first phase processing and the second phase processing every time the first input vector or the second input vector is input or changed.

10. The coordinate rotation processing device according to claim 1, wherein the CORDIC processing means executes the first phase processing when the first vector is first input, and after the execution of the first phase processing, executes the second phase processing every time the second vector is input or changed.

11. The scaling factor is a coefficient that depends on the number of rotations by the CORDIC processing means. When the number of rotations is i, it is (1 + 2 -2i ) 1/2 The coordinate rotation processing apparatus according to claim 1, characterized in that it is represented by

12. The coordinate rotation processing device according to claim 1, FFT processing means for performing FFT operation on a first signal to obtain the first input vector and performing FFT operation on a second signal to generate the second input vector, Inverse FFT processing means for performing inverse FFT operation on the coefficient intensity second vector to generate phase-limited correlation value data, Peak determination means for calculating a peak position of the phase-limited correlation value data to obtain a correlation coordinate value between the first signal and the second signal, A phase-limited correlation operation device characterized by comprising.

13. The first signal and the second signal are one-dimensional data, The phase-limited correlation operation device according to claim 12, wherein the FFT processing means and the inverse FFT processing means execute one-dimensional FFT operation.

14. The first signal and the second signal are two-dimensional data. The FFT processing means and the inverse FFT processing means perform a two-dimensional FFT operation, and the phase-limited correlation operation device according to claim 12 is characterized in that.

15. A control method for a coordinate rotation processing device including CORDIC processing means for generating rotation output orthogonal coordinate data from vector input orthogonal coordinate data and rotation input orthogonal coordinate data, In the CORDIC processing means, a first input vector is input to the vector input orthogonal coordinate data, and a coefficient intensity vector (C, 0) with a coefficient intensity C is input to the rotation input orthogonal coordinate data, so that the first input vector has a phase angle and a coefficient intensity first vector having an intensity obtained by multiplying the coefficient intensity C by a scaling coefficient is generated as the rotation output orthogonal coordinate data in a first phase processing step; In the CORDIC processing means, a second input vector is input to the vector input orthogonal coordinate data, and the coefficient intensity first vector is input to the rotation input orthogonal coordinate data, so that a phase angle obtained by adding or subtracting the phase angle of the first input vector and the phase angle of the second input vector is obtained, and a coefficient intensity second vector having an intensity obtained by multiplying the coefficient intensity C by the square of the scaling coefficient is generated as the rotation output orthogonal coordinate data in a second phase step; having The coefficient intensity C is a predetermined value set for each set of vector pairs composed of the first input vector and the second input vector, and a control method for a coordinate rotation processing device is characterized in that.

16. A program for causing a computer to execute the control method for a coordinate rotation processing device according to claim 15.

Citation Information

Patent Citations

  • Apparatus for measuring three-dimensional position

    JP2010071922A

  • Detecting apparatus, lithography apparatus, producing method of product and detecting method

    JP2017015994A

  • Coordinate arithmetic unit and coordinate arithmetic method

    JP2017123057A

  • cordic complex multiplier

    JP3283504B2