WO2018185881A1 - 相関値演算装置 - Google Patents

相関値演算装置 Download PDF

Info

Publication number
WO2018185881A1
WO2018185881A1 PCT/JP2017/014244 JP2017014244W WO2018185881A1 WO 2018185881 A1 WO2018185881 A1 WO 2018185881A1 JP 2017014244 W JP2017014244 W JP 2017014244W WO 2018185881 A1 WO2018185881 A1 WO 2018185881A1
Authority
WO
WIPO (PCT)
Prior art keywords
correlation value
block
pixels
value calculation
pixel
Prior art date
Application number
PCT/JP2017/014244
Other languages
English (en)
French (fr)
Inventor
彩 中島
修 小柴
Original Assignee
オリンパス株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オリンパス株式会社 filed Critical オリンパス株式会社
Priority to PCT/JP2017/014244 priority Critical patent/WO2018185881A1/ja
Priority to CN201780088604.8A priority patent/CN110447052B/zh
Publication of WO2018185881A1 publication Critical patent/WO2018185881A1/ja
Priority to US16/590,519 priority patent/US11288787B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/32Determination of transform parameters for the alignment of images, i.e. image registration using correlation-based methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction

Definitions

  • the present invention relates to a correlation value calculation device that calculates a correlation value between images.
  • a correlation value between two images is a specific area (base block) in the base frame and a reference in a reference frame having the same block size as the base block. Is calculated from a difference in pixel values between pixels at the same position.
  • a calculation method such as a sum of absolute differences (SAD) or a sum of squared differences (SSD) is known.
  • Patent Document 1 describes a motion vector detection device provided with a correlation value calculation device.
  • the correlation value calculation is speeded up by providing in parallel a circuit (correlation value calculation unit) that calculates the correlation value at high speed in block size units.
  • a circuit correlation value calculation unit
  • the circuit scale of the correlation value calculation device also increases. There is a demand for a reduction in the circuit scale.
  • the correlation value calculation unit of the correlation value calculation device described in Patent Document 1 includes a calculator that calculates SAD for one column of block size, and cumulatively adds the calculated SAD for one column to block size SAD.
  • the circuit scale is reduced by calculating.
  • the correlation value calculation device is configured so that a block size can be selected from several types.
  • a block size can be selected from several types.
  • an object of the present invention is to provide a correlation value calculation apparatus that can select an arbitrary block size from several block sizes and can reduce the circuit scale.
  • the correlation value calculation device selects a target pixel in an image and a plurality of reference pixels in the image or in a different image, a reference block including the target pixel at a predetermined position, and each of the reference pixels as the predetermined pixel
  • the correlation value calculation apparatus of the present invention it is possible to provide a correlation value calculation apparatus that can select an arbitrary block size from several block sizes and can reduce the circuit scale.
  • the correlation value calculation apparatus 100 is mounted to calculate a correlation value at high speed in an apparatus that performs noise reduction processing, motion vector detection, and the like.
  • FIG. 1 is a diagram illustrating a configuration of the correlation value calculation apparatus 100.
  • the correlation value calculation apparatus 100 calculates a correlation value between a specific area (standard block) in one image (frame) and a specific area (reference block) having the same block size as the standard block.
  • the correlation value calculation apparatus 100 calculates in parallel the correlation values between a reference block centered on a pixel of interest (tx, ty) of an image (frame) and a plurality of reference blocks. To do.
  • XY coordinates are used to describe the position of the pixel of the image. As shown in FIG. 2, the horizontal direction is the X-axis direction, the vertical direction is the Y-axis direction, and the upper left is the origin.
  • the correlation value calculation device 100 includes a main memory 1, a block memory 2, a correlation value calculation unit 3, and a block size determination unit 4.
  • the main memory 1 is composed of a DRAM (Dynamic Random Access Memory) or the like, and stores image data (frame data 10) to be subjected to correlation value calculation.
  • DRAM Dynamic Random Access Memory
  • Correlation value calculation apparatus 100 in two images (one is called a reference frame and the other is called a reference frame), a reference region having a specific area (reference block) in the reference frame and the same block size as the reference block
  • the correlation value can be calculated at high speed with a specific area (reference block).
  • Correlation value calculation device 100 stores both reference frame data 11 and reference frame data 12 in main memory 1 when calculating a correlation value between two images (a reference frame and a reference frame).
  • the block memory 2 is a memory that stores data of a reference block and a reference block that are targets of correlation value calculation, and includes a reference block data storage memory 21 and a reference block data storage memory 22.
  • the reference block data storage memory 21 includes an SRAM (Static Random Access Memory), a register file, and the like, and stores at least one reference block data among the frame data 10 stored in the main memory 1.
  • the data of the reference block is read from the main memory 1 by a CPU (not shown) and transferred to the reference block data storage memory 21.
  • the reference block data storage memory 22 is configured by an SRAM, a register file, or the like, and stores data of a plurality of reference blocks among the frame data 10 stored in the main memory 1.
  • the reference block data is read from the main memory 1 by a CPU (not shown) and transferred to the reference block data storage memory 22.
  • the reference point is a checkered pattern (checkered) in an area of 17 pixels in the horizontal direction and 17 pixels in the vertical direction (hereinafter referred to as “17 ⁇ 17”) with the target pixel as the central pixel.
  • 144 pixels excluding the target pixel from the pixels arranged in a pattern.
  • the reference block data storage memory 22 stores data of an area (reference area) including 144 reference blocks having a reference point (rx, ry) as a central pixel.
  • the block having the target pixel as the central pixel is the reference block itself, it is excluded from the target for calculating the correlation value with the reference block.
  • checkered pattern means that pixels that are reference points and pixels that are not reference points are alternately arranged in the horizontal direction and the vertical direction for each pixel.
  • the block size of the reference block and the reference block can be selected from four types: 9 ⁇ 9 block size B9, 7 ⁇ 7 block size B7, 5 ⁇ 5 block size B5, and 3 ⁇ 3 block size B3.
  • the block size of the reference block and the reference block is changed with the central pixel fixed. That is, the central pixel is the same regardless of the block size.
  • the correlation value calculation apparatus 100 determines an optimal block size based on the relationship between the target pixel and its surrounding pixels. The block size determination will be described in the description of the block size determination unit 4 described later.
  • the correlation value calculation unit 3 includes a first intermediate correlation value calculation unit 31, a second intermediate correlation value calculation unit 32, and a correlation value interpolation unit 35.
  • the correlation value calculation unit 3 includes one reference block and 144 reference blocks. This is a circuit for calculating 144 correlation values in parallel. The data of one reference block stored in the reference block data storage memory 21 and the data of 144 reference blocks stored in the reference block data storage memory 22 are input.
  • the correlation value calculation unit 3 includes 144 first intermediate correlation value calculation units 31 and second intermediate correlation value calculation units 32 in total, and 144 correlation values are thereby obtained. Can be calculated in parallel.
  • the correlation value calculation unit 3 calculates a sum of absolute differences (SAD) as a correlation value.
  • SAD sum of absolute differences
  • the SAD at the reference point (rx, ry) is calculated by the following formula 1.
  • img (x, y) is pixel data of an image (frame data 10) at XY coordinates (x, y). Either monochrome or color data, or intermediate data from the image sensor may be used. Size indicates the number of pixels ⁇ 1 from the center pixel to the endmost pixel.
  • the calculation of the correlation value between the reference block and the reference block may be performed by calculating the correlation value of the entire block, or the correlation value for one column of the block size is calculated, and the calculated correlation value for one column is accumulated.
  • the correlation value of the block size may be calculated by addition.
  • Correlation value calculation unit 3 calculates the relationship between one reference block and 144 reference blocks in the block size determined by block size determination unit 4 (to be described later) (hereinafter referred to as “target block size (selected block size)”). Correlation value calculation results can be obtained simultaneously.
  • Reference points arranged in a checkered pattern are classified into two types as shown in FIG. There are four types (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) in a reference block (hereinafter referred to as “reference block A”) having a reference point described as A (hereinafter referred to as “reference point A”) as a central pixel. Correlation values for all block sizes are calculated.
  • reference block B having a reference point described as B (hereinafter referred to as “reference point B”) as a central pixel
  • reference point B having a reference point described as B (hereinafter referred to as “reference point B”) as a central pixel
  • the reference point A (first reference pixel) that is a part of the reference point and the reference point B (second reference pixel) that is the remainder of the reference point are adjacent to each other in an oblique direction. Is arranged. Of the 144 reference points in the reference area, 80 are reference points A and 64 are reference points B.
  • correlation values for all four types of block sizes (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) are calculated. That is, in the reference block A, 4 of a 9x9 base block and a 9x9 reference block, a 7x7 base block and a 7x7 reference block, a 5x5 base block and a 5x5 reference block, a 3x3 base block and a 3x3 reference block A type of correlation value is calculated.
  • the four types of correlation values of the reference block A are calculated by the first intermediate correlation value calculation unit 31.
  • a correlation value between the 3 ⁇ 3 standard block and the 3 ⁇ 3 reference block is calculated.
  • interpolated correlation values using the correlation values calculated by the neighboring reference block A are obtained.
  • the correlation value of the 3 ⁇ 3 block size is calculated by the second intermediate correlation value calculation unit 32, and the interpolation correlation value is calculated by the correlation value interpolation unit 35.
  • correlation values are not calculated for three types of block sizes other than 3 ⁇ 3 (9 ⁇ 9, 7 ⁇ 7, and 5 ⁇ 5), and an interpolated correlation value using the correlation values calculated by the neighboring reference block A is calculated. This utilizes the tendency that the pixel configuration of the reference block B is often similar to the pixel configuration of the nearby reference block A.
  • the interpolation method will be described in the description of the correlation value interpolation unit 35 described later.
  • the first intermediate correlation value calculation unit 31 calculates correlation values for all four types (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) of block sizes as shown in FIG. In any block size, the reference point A is the central pixel.
  • FIG. 6 is a diagram showing the configuration of the arithmetic circuit of the first intermediate correlation value calculating unit 31.
  • the reference block data is a reference block data having a block size of 9x9 including the coordinate (tx, ty) of the target pixel as the central pixel and the upper left coordinate (tx-4, ty-4) and the lower right coordinate (tx + 4, ty + 4).
  • the data is input from the storage memory 21 to the first intermediate correlation value calculation unit 31.
  • Data of the same reference block is input to all 80 first intermediate correlation value calculation units 31.
  • the data of the reference block A having the reference point A (rx, ry) as the center pixel and the block size of 9x9 including the upper left coordinates (rx-4, ry-4) and the lower right coordinates (rx + 4, ry + 4) is referred to
  • the data is input from the block data storage memory 22 to the first intermediate correlation value calculation unit 31.
  • Data of 80 different reference blocks A having 80 reference points A as the central pixel are input to each of the 80 first intermediate correlation value calculation units 31.
  • the first intermediate correlation value calculation unit 31 includes four blocks (a first block 36, a second block 37, a third block 38, and a fourth block 39).
  • the first block 36 is a circuit that calculates a correlation value of 9 pixels in a 3 ⁇ 3 region.
  • the difference between the 9 pixels centered on the pixel img (tx, ty) of the reference block and the 9 pixels centered on the pixel img (rx, ry) of the reference block is calculated for each pixel by a subtractor.
  • the absolute value (abs) is obtained.
  • the first block 36 adds the difference absolute values of all nine pixels and outputs the result as a correlation value of a 3 ⁇ 3 region.
  • the second block 37 is a circuit that calculates a correlation value of 25 pixels in a 5 ⁇ 5 region.
  • the correlation value of 25 pixels is calculated by combining the calculation result of 9 pixels in the first block 36 and the correlation values of the remaining 16 pixels.
  • the third block 38 is a circuit that calculates a correlation value of 49 pixels in a 7 ⁇ 7 region.
  • the correlation value of 49 pixels is calculated by combining the calculation result of 25 pixels of the second block 37 and the correlation values of the remaining 24 pixels.
  • the fourth block 39 is a circuit that calculates a correlation value of 81 pixels in a 9 ⁇ 9 region.
  • the correlation value of 81 pixels is calculated by combining the calculation result of 49 pixels of the third block 38 and the correlation values of the remaining 32 pixels.
  • the first intermediate correlation value calculation unit 31 outputs correlation values for all four types of calculated block sizes (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3).
  • 6 is an example of a circuit that calculates correlation values for all four types (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, and 3 ⁇ 3) of block sizes. Any other configuration may be used as long as the circuit calculates a correlation value.
  • the second intermediate correlation value calculation unit 32 calculates a correlation value for only the minimum block size (3 ⁇ 3) as shown in FIG.
  • FIG. 7 is a diagram showing the configuration of the arithmetic circuit of the second intermediate correlation value calculating unit 32.
  • the data of the reference block having a block size of 3x3 including the upper left coordinates (tx-1, ty-1) and the lower right coordinates (tx + 1, ty + 1) is stored as reference block data.
  • the data is input from the memory 21 to the second intermediate correlation value calculation unit 32.
  • the same reference block data is input to all 64 second intermediate correlation value calculation units.
  • the data of the reference block B having the reference point B (rx, ry) as the central pixel and the block size of 3x3 including the upper left coordinates (rx-1, ry-1) and the lower right coordinates (rx + 1, ry + 1) is referred to
  • the data is input from the block data storage memory 22 to the second intermediate correlation value calculation unit 32.
  • Data of 64 different reference blocks B having 64 reference points B as the central pixel are input to each of the 64 second intermediate correlation value calculation units 32.
  • the second intermediate correlation value calculation unit 32 is configured only by the same circuit as the first block 36 of the first intermediate correlation value calculation unit 31. Therefore, the second intermediate correlation value calculation unit 32 is smaller in circuit scale than the first intermediate correlation value calculation unit 31.
  • the second intermediate correlation value calculator 32 outputs the calculated correlation value of the block size 3 ⁇ 3.
  • the second intermediate correlation value calculation unit 32 of the present embodiment illustrated in FIG. 7 is an example of a circuit that calculates a correlation value for a 3 ⁇ 3 block size, and any other circuit that calculates a correlation value of 3 ⁇ 3. It may be configured as follows.
  • the correlation value interpolation unit 35 performs an interpolation approximation process on the correlation value and outputs a correlation value.
  • the correlation value interpolation unit 35 calculates the average difference value of the correlation values calculated in the surrounding reference block A as shown by the following calculation formula, and sets the 3 ⁇ 3 correlation value (calculated correlation value) of the interpolation target reference block B. Add to find approximate value.
  • the arithmetic expressions are expressed by Expression 2 to Expression 5.
  • the SAD to be output is sad (x, y), and the SADs with block sizes of 9x9, 7x7, 5x5, 3x3 are sad9 (x, y), sad7 (x, y), sad5 (x, y), sad3 (x, y).
  • the target block size be sizeT
  • the SAD value at the target block size be sadT (x, y).
  • dif_ave (x, y) is calculated by Equation 3.
  • dif (x, y) is calculated by Equation 4.
  • sadT (x, y) is calculated by Equation 5.
  • FIG. 8 is a diagram illustrating the configuration of the correlation value interpolation unit.
  • FIG. 8B is a diagram illustrating a configuration of an arithmetic circuit of the correlation value interpolation unit 35.
  • the correlation value interpolation unit 35 shown in FIG. 8B performs an interpolation approximation process with the reference block B having the reference point B (4, 4) shown in FIG. 8A as the central pixel as the interpolation target reference block B. Yes.
  • the correlation value interpolating unit 35 receives the reference point A (3, 3) and the reference point A (3, 3) which are the reference points A closest to the reference point B (4, 4) from the first intermediate correlation value calculating unit 31. 5), the calculated correlation value in the reference block A having the reference point A (5, 3) and the reference point A (5, 5) as the central pixel is input. Correlation values for all four types of block sizes (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) of the reference block A are input to the correlation value interpolation unit 35. Further, the correlation value for the 3 ⁇ 3 block size in the reference block B having the calculated reference point B (4, 4) as the central pixel is input from the second intermediate correlation value calculation unit 32.
  • sadT (x, y) is selected by the selector.
  • sad3 (x, y) By subtracting sad3 (x, y) from sadT (x, y), dif (x, y) is calculated.
  • an average value dif_ave (x, y) of dif (x, y) of the four reference blocks A is calculated.
  • an approximate value sad (4, 4) is calculated by adding the correlation value sad3 (4, 4) for the 3 ⁇ 3 block size in the interpolation target reference block B.
  • the correlation value interpolation unit 35 inputs the calculated correlation value of the reference block A as the central pixel of the nearest reference point A even at the reference point B (x, y) other than the reference point B (4, 4). The same interpolation approximation process as described above is performed.
  • the block size determination unit 4 determines a target block size suitable for each pixel of interest. For example, in the case of a flat image with little variation in pixel value, the difference in correlation is difficult to occur unless the range is wide, so the target block size is increased. In the case where the peripheral region of the pixel of interest is a picture with a fine pattern or the like in which the pixel value varies greatly, the pixel value changes within a small range, so the target block size is reduced. By reducing the target block size, data transfer and calculation required for processing can be reduced, and power can be reduced appropriately.
  • Equation 7 ave (x, y) is obtained from Equation 7.
  • the block size determination unit 4 determines a target block size for each target pixel. That is, the correlation value calculation apparatus 100 calculates the correlation values between one base block and 144 reference blocks for each target pixel in parallel according to the determined target block size.
  • target frame data 10 is stored in the main memory 1. Even if all data of the frame data 10 is not stored in the main memory 1, the correlation value calculation of the target block is performed when the data of the reference block and the reference block data of the correlation value calculation target are stored in the main memory 1. May be executed sequentially.
  • the data of the reference block to be calculated is stored in the reference block data storage memory 21 in order.
  • the reference block data in the reference area corresponding to the reference block to be calculated is stored in the reference block data storage memory 22.
  • the target block size is determined by the block size determination unit 4, and the determined target block size is transferred to the correlation value calculation unit 3.
  • the calculation of the correlation value of the target block is started when the data of the reference block to be calculated is stored in the reference block data storage memory 21 and the reference block data to be calculated is stored in the reference block data storage memory 22.
  • the block memory 2 only needs to transfer data necessary for the correlation value calculation with the determined target block size.
  • Correlation value calculation unit 3 outputs the result of correlation value calculation between one standard block and 144 reference blocks to, for example, a motion vector detection device.
  • the correlation value calculation apparatus 100 of the present embodiment can select a block size from several types.
  • the calculation of the correlation value between the reference block B having the reference pixel as a central pixel among the reference points in the reference area and the base block calculates only the correlation value for the minimum block size, and other block sizes
  • the correlation value for is obtained by interpolation. Thereby, the circuit scale of a correlation value calculating apparatus can be reduced.
  • the correlation value calculated by the correlation value calculation apparatus 100 of this embodiment is used for noise reduction processing, motion vector detection, and the like.
  • the correlation value calculation apparatus 100 of the above embodiment is a circuit that calculates the sum of absolute differences (SAD) as the correlation value, but the correlation value is not limited to this.
  • the correlation value may be a sum of squares of differences (SSD), a normalized cross correlation (NCC), a zero mean normalized cross correlation (ZNCC), or the like.
  • the standard block and the reference block have the target pixel and the reference point as the central pixel, and the central pixel is fixed and the block size is changed.
  • the manner of changing the pixel configuration and block size of the reference block and the reference block is not limited to this.
  • the pixel size may be changed with the pixel of interest and the reference point arranged at the upper left, with the upper left pixel fixed.
  • the reference block B calculates the correlation value for only the minimum block size (3 ⁇ 3) by the second intermediate correlation value calculation unit 32.
  • the second intermediate correlation value calculator 32 may calculate correlation values for at least some of the four block sizes. In this case, correlation values for other block sizes not calculated by the second intermediate correlation value calculation unit 32 are calculated by the correlation value calculation unit by interpolation.
  • the reference point was arrange
  • positioning of a reference point is not limited to this.
  • the reference points may be arranged in a specific region without a gap, or may be arranged irregularly.
  • the block size may be 15x15, or the block size may be 15x9.
  • the number of pixels in the horizontal direction or the vertical direction may be an even number, such as 16 ⁇ 16 or 8 ⁇ 8.
  • FIG. 9 is a diagram showing a configuration of the correlation value calculation apparatus 200 of the present embodiment.
  • the correlation value calculation unit 3A of the correlation value calculation device 200 includes 24 first intermediate correlation value calculation units 31, 16 second intermediate correlation value calculation units B320, and 40 second intermediate correlation value calculation units C321. And 64 second intermediate correlation value calculation units D322 and a correlation value interpolation unit 35.
  • the correlation value calculation unit 3 includes a first intermediate correlation value calculation unit 31, a second intermediate correlation value calculation unit B320, a second intermediate correlation value calculation unit C321, and a second intermediate correlation value calculation. 144 parts are provided in total, and 144 correlation values can be calculated in parallel.
  • the reference points are arranged in a checkered pattern as in the first embodiment.
  • Reference points arranged in a checkered pattern are classified into four types as shown in FIG.
  • the correlation values are calculated for all four types (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) of block sizes as in the first embodiment.
  • Reference points other than the reference point A do not calculate correlation values for all four types (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) of block sizes, as in the first embodiment.
  • reference points other than the reference point A are classified into the following three groups.
  • the reference block B having the reference point B (first group) described as B as the central pixel
  • correlation values are calculated for all three types (7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) of block sizes.
  • the reference block C having the reference point C (second group) described as C as the central pixel correlation values are calculated for all two types (5 ⁇ 5, 3 ⁇ 3) of block sizes.
  • the reference block D having the reference point D (third group) described as D as the central pixel the correlation value for only the minimum block size (3 ⁇ 3) is calculated as in the reference block B of the first embodiment.
  • the reference point B is arranged 4 pixels apart in the horizontal direction and the vertical direction, and the reference point D is arranged so as to be adjacent to the oblique four directions of the reference point B. Further, the reference point C is arranged two pixels away from the reference point B in the horizontal direction and the vertical direction. A reference point in which the reference point B, the reference point C, and the reference point D are not arranged is arranged as the reference point A.
  • the reference point A, the reference point B, the reference point C, and the reference point D are arranged so that the reference points that are adjacent to each other in the oblique direction are different as shown in FIG.
  • 24 are reference points A
  • 16 are reference points B
  • 40 are reference points C
  • 64 are reference points D.
  • FIG. 11A shows reference points for calculating a correlation value for a 3 ⁇ 3 block size. The correlation value for the 3x3 block size is calculated at all reference points.
  • FIG. 11B shows reference points for calculating a correlation value for a 5 ⁇ 5 block size.
  • FIG. 11C shows reference points for calculating a correlation value for a 7 ⁇ 7 block size.
  • FIG. 11D shows reference points for calculating a correlation value for a 9 ⁇ 9 block size.
  • correlation values for all four types of block sizes (9 ⁇ 9, 7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) are calculated.
  • the four types of correlation values of the reference block A are calculated by the first intermediate correlation value calculation unit 31.
  • correlation values for three types of block sizes (7 ⁇ 7, 5 ⁇ 5, 3 ⁇ 3) are calculated.
  • another type of block size (9 ⁇ 9) as shown in FIG. 12C, an interpolated correlation value using a correlation value calculated by a nearby reference block A is obtained.
  • the three types of correlation values of the reference block B are calculated by the second intermediate correlation value calculation unit B320, and the interpolation correlation value is calculated by the correlation value interpolation unit 35.
  • correlation values for two types of block sizes (5 ⁇ 5, 3 ⁇ 3) are calculated.
  • interpolated correlation values using correlation values calculated by neighboring reference blocks A and B are obtained.
  • the two types of correlation values of the reference block C are calculated by the second intermediate correlation value calculation unit C321, and the interpolation correlation value is calculated by the correlation value interpolation unit 35.
  • a correlation value between the 3 ⁇ 3 standard block and the 3 ⁇ 3 reference block is calculated.
  • interpolated correlation using correlation values calculated by neighboring reference block A, reference block B, and reference block C Find the value.
  • the correlation value of the 3 ⁇ 3 block size of the reference block D is calculated by the second intermediate correlation value calculation unit D322, and the interpolation correlation value is calculated by the correlation value interpolation unit 35.
  • the reference block used for the interpolation process is farther from the reference block to be interpolated.
  • the large block size is determined as the target block size in many cases where the target pixel is in an image area with many flat low-frequency components with little pixel variation, and the correlation value is even if it is a reference block that is slightly distant. It is considered that there is not much difference, and even if interpolation is performed using the data of this reference block, it is considered that the error is small.
  • the second intermediate correlation value calculation unit B320 calculates correlation values for three types of block sizes (7x7, 5x5, 3x3).
  • the data of the reference block with the block size of 7x7 including the upper left coordinates (tx-3, ty-3) and the lower right coordinates (tx + 3, ty + 3) is stored in the reference block data.
  • the data is input from the memory 21 to the second intermediate correlation value calculation unit B320.
  • the same reference block data is input to all the 16 second intermediate correlation value calculation units.
  • Reference block B data having a block size of 7x7, with the reference point B (rx, ry) as the central pixel and including the upper left coordinates (rx-3, ry-3) and the lower right coordinates (rx + 3, ry + 3) is referred to
  • the data is input from the block data storage memory 22 to the second intermediate correlation value calculation unit B320.
  • Data of 16 different reference blocks B having 16 reference points B as the central pixel are input to each of the 16 second intermediate correlation value calculation units B320.
  • the second intermediate correlation value calculation unit C321 calculates correlation values for two types (5 ⁇ 5, 3 ⁇ 3) of block sizes.
  • the data of the reference block with the block size of 5x5 including the upper left coordinates (tx-2, ty-2) and the lower right coordinates (tx + 2, ty + 2) is stored in the reference block data.
  • the data is input from the memory 21 to the second intermediate correlation value calculation unit C321.
  • the same reference block data is input to all 40 second intermediate correlation value calculation units.
  • Reference block C data having a block size of 5 ⁇ 5 including the upper left coordinate (rx ⁇ 2, ry ⁇ 2) and the lower right coordinate (rx + 2, ry + 2) with the reference point C (rx, ry) as the central pixel is referred to
  • the data is input from the block data storage memory 22 to the second intermediate correlation value calculation unit C321.
  • Data of 40 different reference blocks C having 40 reference points C as the central pixel are input to each of the 40 second intermediate correlation value calculation units C321.
  • the second intermediate correlation value calculation unit D322 calculates a correlation value for only the minimum block size (3 ⁇ 3), similarly to the second intermediate correlation value calculation unit 32 of the first embodiment.
  • the data of the reference block having a block size of 3x3 including the upper left coordinates (tx-1, ty-1) and the lower right coordinates (tx + 1, ty + 1) is stored as reference block data.
  • the data is input from the memory 21 to the second intermediate correlation value calculation unit D322.
  • the same reference block data is input to all 64 second intermediate correlation value calculation units.
  • data of a reference block D having a reference pixel D (rx, ry) as a central pixel and a block size of 3 ⁇ 3 including upper left coordinates (rx ⁇ 1, ry ⁇ 1) and lower right coordinates (rx + 1, ry + 1) is a reference.
  • Data of 64 different reference blocks D having 64 reference points D as the central pixel is input to each of the 64 second intermediate correlation value calculation units D322.
  • the second intermediate correlation value calculation unit B320, the second intermediate correlation value calculation unit C321, and the second intermediate correlation value calculation unit D322 are similar to the second intermediate correlation value calculation unit 32 of the first embodiment. Do not compute correlation values for all block sizes.
  • the correlation value interpolation unit 35 performs an interpolation approximation process on the correlation value and outputs a correlation value.
  • the interpolation approximation process correlation values (interpolation target correlation values) of the reference block B, the reference block C, and the reference block D for which correlation values for all four types of block sizes have not been calculated are calculated by approximation.
  • the interpolation approximation process may take the difference between the SAD (sadT) of the target block size and the 3 ⁇ 3 SAD (sad3), but is calculated in the SAD (sadT) of the target block size and the reference block to be interpolated.
  • a difference in SAD (sadM) of the maximum block size of the SAD (calculated correlation value) being calculated may be taken.
  • the difference from the target block size is small, errors during interpolation can be suppressed, and the accuracy can be improved as compared with the approximation method of the first embodiment.
  • dif_ave (x, y) is calculated by Equation 9.
  • the coordinates of the four pixels used for the interpolation processing are (x1, y1), (x2, y2), (x3, y4), (x4, y4).
  • dif (x, y) is calculated by Equation 10.
  • sadT (x, y) is calculated by Equation 11.
  • sadTM (x, y) is calculated by Equation 12.
  • the correlation value calculation apparatus 200 can select from several types of block sizes.
  • the calculation of the correlation value between the reference block D having the reference pixel as a central pixel among the reference points in the reference area and the base block calculates only the correlation value for the minimum block size, and other block sizes
  • the correlation value for is obtained by interpolation.
  • correlation values for some block sizes are obtained by interpolation.
  • the correlation value may be calculated by accumulating the difference between one new line that enters and one old line that goes outside the block.
  • the present invention can be applied to an apparatus including a circuit for obtaining a correlation value between specific areas in an image.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Quality & Reliability (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本相関値演算装置は、画像内の注目画素と、前記画像内もしくは異なる画像内の複数の参照画素を選択し、前記注目画素を所定の位置に含む基準ブロックと、それぞれの前記参照画素を所定の位置に含み、前記基準ブロックと同一のブロックサイズを有する複数の参照ブロックとの相関値を演算する相関値演算装置であって、ブロックサイズ判定部と、相関値を前記複数種類のブロックサイズにおいて演算する第一中間相関値演算部と、相関値を前記複数種類のブロックサイズのうち一部のブロックサイズにおいて演算する第二中間相関値演算部と、相関値を補間により求める相関値補間部、とを備える。

Description

相関値演算装置
 本発明は、画像間の相関値を演算する相関値演算装置に関する。
 画像処理におけるノイズ低減処理や動きベクトル検出などでは、画像間の相関値演算がよく行われる。相関値は、画像間の類似度を示すものである。2枚の画像(一方を基準フレーム、他方を参照フレームと呼ぶ)の間の相関値は、基準フレームにおける特定の領域(基準ブロック)と、基準ブロックと同一のブロックサイズを有する参照フレーム内の特定の領域(参照ブロック)との間で、同一位置の画素同士の画素値の差分等から算出される。相関値の算出には、差分絶対値和(SAD)や差分二乗和(SSD)などの計算方法が知られている。
 ノイズ低減処理や動きベクトル検出などにおいては、この相関値演算を高速に行う必要がある。そのため、ノイズ低減処理や動きベクトル検出等を行う装置においては、相関値演算を行う専用の回路(相関値演算装置)を設けることが多い。特許文献1には、相関値演算装置が設けられた動きベクトル検出装置が記載されている。
 相関値演算装置においては、ブロックサイズ単位で相関値を高速に演算する回路(相関値演算部)を並列に設けることで、相関値演算を高速化している。相関値演算部の並列度の増加やブロックサイズの増加に伴い、相関値演算装置の回路規模も増加している。その増加する回路規模の低減が求められている。
 特許文献1に記載されている相関値演算装置の相関値演算部においては、ブロックサイズの一列分のSADを算出する演算器を備え、算出した一列分のSADを累積加算してブロックサイズのSADを演算することで、回路規模の低減を行っている。
特開2007-88910号公報
 しかしながら、特許文献1に記載の相関値演算部においては、ブロックサイズは固定されていた。ブロックサイズを変更するとしても、各相関値演算部は対応する最大のブロックサイズを処理できる専用回路を備えておく必要があった。
 相関値の使用用途によって、相関値算出に適切なブロックサイズは画像や画素ごとに異なる。そのため、相関値演算装置は、ブロックサイズを数種類から選択できるように構成されることが好ましい。しかし、相関値演算部のすべてが最大のブロックサイズを処理できるように構成する場合、相関値演算装置全体の回路規模が大きくなりすぎるという課題があった。
 上記事情を踏まえ、本発明は、数種類のブロックサイズから任意のブロックサイズを選択可能で、かつ、回路規模を低減可能な相関値演算装置を提供することを目的とする。
 上記課題を解決するために、この発明は以下の手段を提案している。
相関値演算装置は、画像内の注目画素と、前記画像内もしくは異なる画像内の複数の参照画素を選択し、前記注目画素を所定の位置に含む基準ブロックと、それぞれの前記参照画素を前記所定の位置に含み、前記基準ブロックと同一のブロックサイズを有する複数の参照ブロックとの相関値を演算する相関値演算装置であって、前記基準ブロックと前記参照ブロックのブロックサイズを、複数種類のブロックサイズから一つ選択して選択ブロックサイズとするブロックサイズ判定部と、前記基準ブロックと、前記参照画素の一部である第一参照画素を前記所定の位置に含む前記参照ブロックとの相関値を、前記複数種類のブロックサイズにおいて演算する第一中間相関値演算部と、前記基準ブロックと、前記参照画素の残部である第二参照画素を前記所定の位置に含む前記参照ブロックとの相関値を、前記複数種類のブロックサイズのうち少なくとも一部のブロックサイズにおいて演算する第二中間相関値演算部と、前記第二中間相関値演算部が演算しない他のブロックサイズについての補間対象相関値を、前記第一中間相関値演算部が演算した前記他のブロックサイズについての相関値を用いて補間により求め、前記選択ブロックサイズが前記他のブロックサイズである場合に、前記第二中間相関値演算部の演算結果として前記補間対象相関値を出力する相関値補間部、とを備える。
 本発明の相関値演算装置によれば、数種類のブロックサイズから任意のブロックサイズを選択可能で、かつ、回路規模を低減可能な相関値演算装置を提供することができる。
本発明の第一実施形態に係る相関値演算装置を示す図である。 基準ブロックおよび参照ブロックの関係を示す図である。 本発明の第一実施形態に係る相関値演算装置における参照点の分類を示す図である。 本発明の第一実施形態に係る相関値演算装置における基準ブロックおよび参照ブロックのブロックサイズを示す図である。 本発明の第一実施形態に係る相関値演算装置における参照ブロックBが補間処理に使用する近傍の参照ブロックAを示す図である。 発明の第一実施形態に係る相関値演算装置における第一中間相関値演算部の構成を示す図である。 発明の第一実施形態に係る相関値演算装置における第二中間相関値演算部の構成を示す図である。 発明の第一実施形態に係る相関値演算装置における相関値補間部の構成を示す図である。 本発明の第二実施形態に係る相関値演算装置を示す図である。 本発明の第二実施形態に係る相関値演算装置における参照点の分類を示す図である。 本発明の第二実施形態に係る相関値演算装置における参照点の分類を示す図である。 本発明の第一実施形態に係る相関値演算装置における参照ブロックが補間処理に使用する近傍の参照ブロックを示す図である。 本発明の第一実施形態に係る相関値演算装置における第一中間相関値演算部の変形例の構成を示す図である。
(第一実施形態)
 本発明の相関値演算装置の第一実施形態について、図1から図8を参照して説明する。
本実施形態に係る相関値演算装置100は、ノイズ低減処理や動きベクトル検出等を行う装置において、相関値を高速に算出するために搭載される。
図1は、相関値演算装置100の構成を示す図である。相関値演算装置100は、1枚の画像(フレーム)内の特定の領域(基準ブロック)と、基準ブロックと同一のブロックサイズを有する特定の領域(参照ブロック)との相関値を算出する。
本実施形態の相関値演算装置100は、図2に示すように、画像(フレーム)の注目画素(tx、ty)を中心画素した基準ブロックと、複数の参照ブロックとの相関値を並列に算出する。
以降の説明において、画像の画素の位置を説明するためにXY座標を用いる。図2に示すように、水平方向をX軸方向、垂直方向をY軸方向とし、左上を原点とする。XY座標は、(X、Y)=(0、0)のように表現する。
相関値演算装置100は、メインメモリ1と、ブロックメモリ2と、相関値演算部3と、ブロックサイズ判定部4と、を備える。
メインメモリ1は、DRAM(Dynamic Random Access Memory)等で構成され、相関値演算対象の画像データ(フレームデータ10)が格納される。
相関値演算装置100は、2枚の画像(一方を基準フレーム、他方を参照フレームと呼ぶ)において、基準フレーム内の特定の領域(基準ブロック)と、基準ブロックと同一のブロックサイズを有する参照フレーム内の特定の領域(参照ブロック)との間で、相関値を高速に演算することもできる。
 相関値演算装置100は、2枚の画像(基準フレームと参照フレーム)との間で相関値を算出する場合、メインメモリ1には基準フレームデータ11と参照フレームデータ12の両方を格納する。
 ブロックメモリ2は、相関値演算の対象となる基準ブロックと参照ブロックのデータを格納するメモリであり、基準ブロックデータ格納メモリ21と、参照ブロックデータ格納メモリ22と、を有する。
 基準ブロックデータ格納メモリ21は、SRAM(Static Random Access Memory)やレジスタファイルなどで構成され、メインメモリ1に格納されたフレームデータ10のうち、少なくとも一個の基準ブロックのデータが格納される。基準ブロックのデータは、図示しないCPU等によってメインメモリ1から読み出され、基準ブロックデータ格納メモリ21に転送される。
 参照ブロックデータ格納メモリ22は、SRAMやレジスタファイルなどで構成され、メインメモリ1に格納されたフレームデータ10のうち、複数の参照ブロックのデータを格納する。参照ブロックのデータは、図示しないCPU等によってメインメモリ1から読み出され、参照ブロックデータ格納メモリ22に転送される。
フレームデータ10において、参照点(参照画素)は、注目画素を中心画素とした、水平方向に17画素および垂直方向に17画素(以降、「17x17」と称す)の領域に、市松模様状(チェッカー模様状)に配置された画素から、注目画素を除いた144個の画素である。参照ブロックデータ格納メモリ22は、参照点(rx、ry)を中心画素とした参照ブロック144個を含む領域(参照領域)のデータを格納する。
ここで、注目画素を中心画素としたブロックは、基準ブロックそのものであるため、基準ブロックとの相関値を算出する対象からは除かれている。
ここで、参照点が市松模様状(チェッカー模様状)に配置されるとは、参照点である画素と、参照点ではない画素が、水平方向および垂直方向に、一画素ごと交互に配置されていることを意味する。
基準ブロックおよび参照ブロックのブロックサイズは、図2に示すように、9x9のブロックサイズB9、7x7のブロックサイズB7、5x5のブロックサイズB5、3x3のブロックサイズB3の4種類から選択することができる。基準ブロックおよび参照ブロックは、中心画素を固定してブロックサイズが変更される。つまり、ブロックサイズによらず、中心画素は同じである。
相関値演算装置100は、注目画素とその周辺画素との関係により、最適なブロックサイズを判定する。ブロックサイズの判定に関しては、後述するブロックサイズ判定部4の説明にて述べる。
 相関値演算部3は、第一中間相関値演算部31と、第二中間相関値演算部32と、相関値補間部35とを有し、1個の基準ブロックと144個の参照ブロックとの相関値144個を並列に演算する回路である。
 基準ブロックデータ格納メモリ21に格納された一つの基準ブロックのデータと、参照ブロックデータ格納メモリ22に格納された144個の参照ブロックのデータとが入力される。
図1に示すように、相関値演算部3には、第一中間相関値演算部31と第二中間相関値演算部32とが合わせて144個備えられており、これらにより144個の相関値を並列に算出できる。
 相関値演算部3は相関値として差分絶対値和(SAD)を演算する。参照点(rx、ry)におけるSADは以下の式1で算出される。
Figure JPOXMLDOC01-appb-M000001
式1において、img(x、y)は、XY座標(x、y)における画像(フレームデータ10)の画素データである。モノクロもしくはカラーデータのどちらでもよく、画像センサーからの中間データであってもよい。Sizeは、中心画素から最端画素までの画素数-1を示している。
基準ブロックと、参照ブロックとの相関値の演算は、ブロック全体の相関値をまとめて演算してもよいし、ブロックサイズの一列分の相関値を算出し、算出した一列分の相関値を累積加算してブロックサイズの相関値を演算してもよい。
 相関値演算部3は、後述するブロックサイズ判定部4が判定したブロックサイズ(以降、「ターゲットブロックサイズ(選択ブロックサイズ)」と称す)における、1個の基準ブロックと144個の参照ブロックとの相関値演算の結果を同時に得ることができる。
 市松模様状に配置された参照点は、図3に示すように、二種類に分類される。
 Aと記載された参照点(以降、「参照点A」と称す)を中心画素とした参照ブロック(以降、「参照ブロックA」と称す)においては、4種類(9x9、7x7、5x5、3x3)のブロックサイズすべてについての相関値を算出する。
 Bと記載された参照点(以降、「参照点B」と称す)を中心画素とした参照ブロック(以降、「参照ブロックB」と称す)においては、最小ブロックサイズ(3x3)のみについての相関値を算出する。
 参照点の一部である参照点A(第一参照画素)と、参照点の残部である参照点B(第二参照画素)とは、図3に示すように、斜め方向に互いに隣り合うように配置されている。参照領域内の144個の参照点のうち、80個が参照点Aであり、64個が参照点Bである。
参照ブロックAにおいては、4種類のブロックサイズ(9x9、7x7、5x5、3x3)すべてについての相関値が算出される。すなわち、参照ブロックAにおいては、9x9の基準ブロックと9x9の参照ブロック、7x7の基準ブロックと7x7の参照ブロック、5x5の基準ブロックと5x5の参照ブロック、3x3の基準ブロックと3x3の参照ブロック、の4種類の相関値が算出される。
参照ブロックAの4種類の相関値は、第一中間相関値演算部31により算出される。
参照ブロックBにおいては、3x3の基準ブロックと3x3の参照ブロックとの相関値が算出される。他の3種類のブロックサイズ(9x9、7x7、5x5)に関しては、図5に示すように、近傍の参照ブロックAが算出した相関値を用いた補間相関値を求める。
3x3のブロックサイズの相関値は、第二中間相関値演算部32により算出され、補間相関値は、相関値補間部35により算出される。
参照ブロックBにおいては、3x3以外の3種類のブロックサイズ(9x9、7x7、5x5)に関して、相関値を算出せず、近傍の参照ブロックAが算出した相関値を用いた補間相関値を算出する。これは、参照ブロックBの画素構成が、近傍の参照ブロックAの画素構成に類似している場合が多いという傾向を利用している。補間の方法に関しては、後述する相関値補間部35の説明にて述べる。
 第一中間相関値演算部31は、図4(a)に示すように、4種類(9x9、7x7、5x5、3x3)のブロックサイズすべてについての相関値を算出する。いずれのブロックサイズにおいても、参照点Aが中心画素となっている。
 図6は第一中間相関値演算部31の演算回路の構成を示す図である。注目画素の座標(tx、ty)を中心画素とし、左上座標(tx-4、ty-4)および右下座標(tx+4、ty+4)を含むブロックサイズが9x9の基準ブロックのデータが、基準ブロックデータ格納メモリ21から、第一中間相関値演算部31に入力される。80個の第一中間相関値演算部31すべてに同じ基準ブロックのデータが入力される。
また、参照点A(rx、ry)を中心画素とし、左上座標(rx-4、ry-4)および右下座標(rx+4、ry+4)を含むブロックサイズが9x9の参照ブロックAのデータが、参照ブロックデータ格納メモリ22から、第一中間相関値演算部31に入力される。80個の第一中間相関値演算部31の各々に、80個の参照点Aを中心画素とした80個の異なる参照ブロックAのデータが入力される。
第一中間相関値演算部31は、4つのブロック(第一ブロック36、第二ブロック37、第三ブロック38、第四ブロック39)で構成される。
第一ブロック36は、3x3の領域の9画素の相関値を算出する回路である。基準ブロックの画素img(tx、ty)を中心とした9画素と、基準ブロックの画素img(rx、ry)を中心とした9画素との、差分を画素毎に減算器により算出し、それぞれの絶対値(abs)を求める。第一ブロック36は、9画素すべての差分絶対値を加算して、3x3の領域の相関値として出力する。
第二ブロック37は、5x5の領域の25画素の相関値を算出する回路である。第一ブロック36の9画素の算出結果と、残りの周囲16画素の相関値とを合わせて、25画素の相関値を算出する。
第三ブロック38は、7x7の領域の49画素の相関値を算出する回路である。第二ブロック37の25画素の算出結果と、残りの周囲24画素の相関値とを合わせて、49画素の相関値を算出する。
第四ブロック39は、9x9の領域の81画素の相関値を算出する回路である。第三ブロック38の49画素の算出結果と、残りの周囲32画素の相関値とを合わせて、81画素の相関値を算出する。
 第一中間相関値演算部31は、算出した4種類(9x9、7x7、5x5、3x3)のブロックサイズすべてについての相関値を出力する。
なお、図6に示す本実施形態の第一中間相関値演算部31は、4種類(9x9、7x7、5x5、3x3)のブロックサイズすべてについての相関値を算出する回路の一例であり、これらの相関値を算出する回路であれば、他の構成であってもよい。
なお、第一中間相関値演算部に入力される基準ブロックと参照ブロックのデータは、必ずしも9x9の領域に含まれるデータすべてを入力する必要はない。例えば、9x9のブロックサイズについての相関値は必要なく、7x7、5x5、3x3の3種類のブロックサイズについての相関値のみが必要な場合は、7x7の領域に含まれる基準ブロックと参照ブロックのデータの入力を行えばよい。データ転送量を削減でき、高速化および省電力化できる。
 第二中間相関値演算部32は、図4(b)に示すように、最小ブロックサイズ(3x3)のみについての相関値を算出する。
図7は第二中間相関値演算部32の演算回路の構成を示す図である。注目画素の座標(tx、ty)とした場合、左上座標(tx-1、ty-1)および右下座標(tx+1、ty+1)を含むブロックサイズが3x3の基準ブロックのデータが、基準ブロックデータ格納メモリ21から、第二中間相関値演算部32に入力される。64個の第二中間相関値演算部すべてに同じ基準ブロックのデータが入力される。
また、参照点B(rx、ry)を中心画素とし、左上座標(rx-1、ry-1)および右下座標(rx+1、ry+1)を含むブロックサイズが3x3の参照ブロックBのデータが、参照ブロックデータ格納メモリ22から、第二中間相関値演算部32に入力される。64個の第二中間相関値演算部32の各々に、64個の参照点Bを中心画素とした64個の異なる参照ブロックBのデータが入力される。
第二中間相関値演算部32は、第一中間相関値演算部31の第一ブロック36と同一の回路のみで構成されている。そのため、第二中間相関値演算部32は、第一中間相関値演算部31と比較して回路規模は小さい。
 第二中間相関値演算部32は、算出したブロックサイズ3x3の相関値を出力する。
なお、図7に示す本実施形態の第二中間相関値演算部32は、3x3のブロックサイズについての相関値を算出する回路の一例であり、3x3の相関値を算出する回路であれば、他の構成であってもよい。
相関値補間部35は、相関値に関する補間近似処理を行い、相関値を出力する。
補間近似処理では、3種類のブロックサイズ(9x9、7x7、5x5)についての相関値を算出していない参照ブロックB(補間対象参照ブロックB)についての、3種類のブロックサイズ(9x9、7x7、5x5)についての相関値(補間対象相関値)を、周囲の参照ブロックAにおける算出済みの相関値を使って、近似により算出する。
相関値補間部35は、以下の演算式で示すような周囲の参照ブロックAにおいて算出した相関値の差分平均値を算出し、補間対象参照ブロックBの3x3の相関値(演算済相関値)に加算して近似値を求める。
演算式は式2から式5で表される。出力するSADをsad(x、y)、ブロックサイズが9x9、7x7、5x5、3x3のSADをそれぞれsad9(x、y)、sad7(x、y)、sad5(x、y)、sad3(x、y)とする。ターゲットブロックサイズをsizeT、ターゲットブロックサイズにおけるSAD値をsadT(x、y)とする。
Figure JPOXMLDOC01-appb-M000002
ここで、dif_ave(x、y)は式3で算出される。
Figure JPOXMLDOC01-appb-M000003
ここでdif(x、y)は式4により算出される。
Figure JPOXMLDOC01-appb-M000004
ここでsadT(x、y)は式5により算出される。
Figure JPOXMLDOC01-appb-M000005
図8は、相関値補間部の構成を示す図である。図8(b)は相関値補間部35の演算回路の構成を示す図である。図8(b)に示す相関値補間部35は、図8(a)に示す参照点B(4、4)を中心画素とした参照ブロックBを補間対象参照ブロックBとして補間近似処理を行っている。
相関値補間部35には、第一中間相関値演算部31から、参照点B(4、4)の最近傍の参照点Aである参照点A(3、3)と参照点A(3、5)と参照点A(5、3)と参照点A(5、5)を中心画素とした参照ブロックAにおける算出済の相関値が入力される。相関値補間部35には、上記の参照ブロックAの4種類のブロックサイズ(9x9、7x7、5x5、3x3)すべてについての相関値が入力される。また、第二中間相関値演算部32から算出済の参照点B(4、4)を中心画素とした参照ブロックBにおける3x3のブロックサイズについての相関値が入力される。
後述するブロックサイズ判定部4から入力されるターゲットブロックサイズsizeTに従い、sadT(x、y)をセレクタにより選択する。sadT(x、y)からsad3(x、y)を減算してdif(x、y)を算出する。次に、四つの参照ブロックAのdif(x、y)の平均値dif_ave(x、y)を算出する。最後に、補間対象参照ブロックBにおける3x3のブロックサイズについての相関値sad3(4、4)と加算し、近似値sad(4、4)を算出する。
相関値補間部35は、参照点B(4、4)以外の参照点B(x、y)においても、最近傍の参照点Aの中心画素とした参照ブロックAの算出済相関値を入力し、上記と同様の補間近似処理を行う。
ブロックサイズ判定部4は、注目画素ごとに適したターゲットブロックサイズを判定する。例えば、画素値の変動が少ない平坦な画像の場合は広い範囲でないと相関性の違いが出にくいため、ターゲットブロックサイズを大きくする。注目画素の周辺領域が、画素値の変動が多い細かな柄等の絵の場合は、小さい範囲で画素値が変化するため、ターゲットブロックサイズを小さくする。ターゲットブロックサイズを小さくすることで、処理に必要なデータ転送や演算を減らすことができ、好適に低電力化できる。
判定に使う評価値をE(x、y)として、注目画素の上下左右±sizeE画素の範囲の平均値と各画素の差分の合計値を評価値として算出する(式6)。評価値が大きいほどターゲットブロックサイズは小さくなるように判定し、9x9、7x7、5x5、3x3のいずれかを示す信号(ターゲットブロックサイズ)を出力する。
Figure JPOXMLDOC01-appb-M000006
ここで、ave(x、y)は式7から求める。
Figure JPOXMLDOC01-appb-M000007
ブロックサイズ判定部4は、注目画素ごとにターゲットブロックサイズを判定する。すなわち、相関値演算装置100は、一つの注目画素ごとに1個の基準ブロックと144個の参照ブロックとの相関値を、判定したターゲットブロックサイズにより並列に演算する。
 次に、相関値演算装置100の動作について説明する。
 まずはじめに、対象のフレームデータ10がメインメモリ1に格納される。フレームデータ10の全データがメインメモリ1に格納されていなくとも、相関値演算対象の基準ブロックのデータと参照ブロックのデータとがメインメモリ1に格納された時点で、対象のブロックの相関値演算を逐次実行してよい。
 演算対象となる基準ブロックのデータが、順番に基準ブロックデータ格納メモリ21に格納される。また、演算対象となる基準ブロックに対応する参照領域の参照ブロックのデータが、参照ブロックデータ格納メモリ22に格納される。
 ブロックサイズ判定部4により、ターゲットブロックサイズが判定され、判定されたターゲットブロックサイズが相関値演算部3に転送される。
 基準ブロックデータ格納メモリ21に演算対象の基準ブロックのデータが格納され、参照ブロックデータ格納メモリ22に演算対象の参照ブロックのデータが格納された時点で、対象ブロックの相関値の演算を開始する。ブロックメモリ2には、判定されたターゲットブロックサイズでの相関値演算に必要なデータが転送されていればよい。
 相関値演算部3は、1個の基準ブロックと144個の参照ブロックとの相関値演算の結果を、例えば動きベクトル検出装置などに出力する。
 一つの基準ブロックに対する上記処理が終了した後は、順次、次の基準ブロックに対して同様の処理を繰り返し、フレームデータ10全体に対して相関値演算を実行する。
(第一実施形態の効果)
 本実施形態の相関値演算装置100によれば、相関値演算装置は、ブロックサイズを数種類から選択できる。参照領域内の参照点のうち一部の参照点を中心画素とした参照ブロックBと、基準ブロックとの相関値の演算は、最小のブロックサイズについての相関値のみを演算し、他のブロックサイズについての相関値は補間により求める。これにより、相関値演算装置の回路規模を低減できる。
 本実施形態の相関値演算装置100によって算出された相関値は、ノイズ低減処理や動きベクトル検出などに使用される。
(変形例)
以上、本発明の第一実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の第一実施形態および変形例において示した構成要素は適宜に組み合わせて構成することが可能である。
例えば、上記実施形態の相関値演算装置100は相関値として差分絶対値和(SAD)を演算する回路であったが、相関値はこれに限定されない。例えば、相関値は、差分二乗和(SSD)、正規化相互相関(NCC)、または零平均正規化相互相関(ZNCC)等であってもよい。
上記実施形態では、基準ブロックおよび参照ブロックは、注目画素および参照点を中心画素とし、中心画素を固定してブロックサイズが変更されていた。基準ブロックおよび参照ブロックの画素構成やブロックサイズの変更態様はこれに限定されない。例えば、注目画素および参照点を左上に配置した画素構成とし、左上画素を固定してブロックサイズが変更されてもよい。
上記実施形態では、参照ブロックBは第二中間相関値演算部32により、最小のブロックサイズ(3x3)のみについての相関値を算出していた。しかしながら、参照ブロックBおよび第二中間相関値演算部32の構成はこれに限定されない。第二中間相関値演算部32は、4種類のブロックサイズのうち少なくとも一部のブロックサイズについての相関値を算出すればよい。この場合、第二中間相関値演算部32が演算しない他のブロックサイズについての相関値は、相関値演算部が補間により算出する。
上記実施形態では、参照点は特定の領域に市松模様状に配置されていたが、参照点の配置はこれに限定されない。例えば、参照点は特定の領域に隙間なく配置されていてもよく、また、不規則に配置されていてもよい。
上記実施形態では、ブロックサイズは4種類(9x9、7x7、5x5、3x3)であったが、ブロックサイズの種類や数はこれに限定されない。例えば、15x15のブロックサイズであってもよいし、また、15x9のブロックサイズであってもよい。さらに、16x16、8x8のように、水平方向もしくは垂直方向の画素数が偶数であってもよい。
(第二実施形態)
 本発明の第二実施形態について、図9から図13を参照して説明する。本実施形態は、第二中間相関値演算部32の態様が第一実施形態と異なっている。以降の説明において、既に説明したものと共通する構成については、同一の符号を付して重複する説明を省略する。
 図9は、本実施形態の相関値演算装置200の構成を示す図である。相関値演算装置200の相関値演算部3Aは、24個の第一中間相関値演算部31と、16個の第二中間相関値演算部B320と、40個の第二中間相関値演算部C321と、64個の第二中間相関値演算部D322と、と相関値補間部35と、を備える。
図9に示すように、相関値演算部3には、第一中間相関値演算部31と第二中間相関値演算部B320と、第二中間相関値演算部C321と、第二中間相関値演算部D322と、が合わせて144個備えられており、これらにより144個の相関値を並列に算出できる。
 参照点は第一実施形態同様、市松模様状に配置されている。市松模様状に配置された参照点は、図10に示すように、四種類に分類される。
 Aと記載された参照点Aを中心画素とした参照ブロックAにおいては、第一実施形態同様、4種類(9x9、7x7、5x5、3x3)のブロックサイズすべてについての相関値を算出する。
 参照点A以外の参照点は、第一実施形態と同様、4種類(9x9、7x7、5x5、3x3)のブロックサイズすべてについての相関値を算出しない。第二実施形態では、参照点A以外の参照点は、以下の三つのグループに分類される。
 Bと記載された参照点B(第一グループ)を中心画素とした参照ブロックBにおいては、3種類(7x7、5x5、3x3)のブロックサイズすべてについての相関値を算出する。
 Cと記載された参照点C(第二グループ)を中心画素とした参照ブロックCにおいては、2種類(5x5、3x3)のブロックサイズすべてについての相関値を算出する。
 Dと記載された参照点D(第三グループ)を中心画素とした参照ブロックDにおいては、第一実施形態の参照ブロックB同様、最小ブロックサイズ(3x3)のみについての相関値を算出する。
参照点Bが、水平方向および垂直方向に4画素ずつ離れて配置され、その参照点Bの斜め四方向に隣り合うように参照点Dが配置される。さらに、参照点Cが、参照点Bから水平方向および垂直方向に2画素ずつ離れて配置される。参照点B、参照点C、参照点Dが配置されてない参照点が、参照点Aとして配置される。
 参照点Aと、参照点Bと、参照点Cと、参照点Dとは、図10に示すように、斜め方向に互いに隣り合う参照点が異なる参照点になるように配置されている。参照領域内の144個の参照点のうち、24個が参照点Aであり、16個が参照点Bであり、40個が参照点Cであり、64個が参照点Dである。
 図11(a)は、3x3のブロックサイズについての相関値を算出する参照点を示している。3x3のブロックサイズについての相関値は、すべての参照点で算出される。
図11(b)は、5x5のブロックサイズについての相関値を算出する参照点を示している。
図11(c)は、7x7のブロックサイズについての相関値を算出する参照点を示している。
図11(d)は、9x9のブロックサイズについての相関値を算出する参照点を示している。
参照ブロックAにおいては、4種類のブロックサイズ(9x9、7x7、5x5、3x3)すべてについての相関値が算出される。
参照ブロックAの4種類の相関値は、第一中間相関値演算部31により算出される。
参照ブロックBにおいては、3種類のブロックサイズ(7x7、5x5、3x3)についての相関値が算出される。他の1種類のブロックサイズ(9x9)に関しては、図12(c)に示すように、近傍の参照ブロックAが算出した相関値を用いた補間相関値を求める。
参照ブロックBの3種類の相関値は、第二中間相関値演算部B320により算出され、補間相関値は、相関値補間部35により算出される。
参照ブロックCにおいては、2種類のブロックサイズ(5x5、3x3)についての相関値が算出される。他の2種類のブロックサイズ(9x9、7x7)に関しては、図12(b)に示すように、近傍の参照ブロックAおよび参照ブロックBが算出した相関値を用いた補間相関値を求める。
参照ブロックCの2種類の相関値は、第二中間相関値演算部C321により算出され、補間相関値は、相関値補間部35により算出される。
参照ブロックDにおいては、3x3の基準ブロックと3x3の参照ブロックとの相関値が算出される。他の3種類のブロックサイズ(9x9、7x7、5x5)に関しては、図12(a)に示すように、近傍の参照ブロックAおよび参照ブロックBおよび参照ブロックCが算出した相関値を用いた補間相関値を求める。
 参照ブロックDの3x3のブロックサイズの相関値は、第二中間相関値演算部D322により算出され、補間相関値は、相関値補間部35により算出される。
補間により求める相関値のブロックサイズが大きいほど、補間処理に使う参照ブロックは補間対象の参照ブロックから離れる。大きいブロックサイズがターゲットブロックサイズとして判定されるのは、注目画素が画素変動の少ない平坦な低周波成分が多い画像領域にある場合が多く、少し位置が離れた参照ブロックであっても相関値は大きく異ならないと考えられ、この参照ブロックのデータを用いて補間を行っても誤差が小さいと考えられる。
第二中間相関値演算部B320は、3種類(7x7、5x5、3x3)のブロックサイズについての相関値を算出する。
注目画素の座標(tx、ty)とした場合、左上座標(tx-3、ty-3)および右下座標(tx+3、ty+3)を含むブロックサイズが7x7の基準ブロックのデータが、基準ブロックデータ格納メモリ21から、第二中間相関値演算部B320に入力される。16個の第二中間相関値演算部すべてに同じ基準ブロックのデータが入力される。
また、参照点B(rx、ry)を中心画素とし、左上座標(rx-3、ry-3)および右下座標(rx+3、ry+3)を含むブロックサイズが7x7の参照ブロックBのデータが、参照ブロックデータ格納メモリ22から、第二中間相関値演算部B320に入力される。16個の第二中間相関値演算部B320の各々に、16個の参照点Bを中心画素とした16個の異なる参照ブロックBのデータが入力される。
第二中間相関値演算部C321は、2種類(5x5、3x3)のブロックサイズについての相関値を算出する。
注目画素の座標(tx、ty)とした場合、左上座標(tx-2、ty-2)および右下座標(tx+2、ty+2)を含むブロックサイズが5x5の基準ブロックのデータが、基準ブロックデータ格納メモリ21から、第二中間相関値演算部C321に入力される。40個の第二中間相関値演算部すべてに同じ基準ブロックのデータが入力される。
また、参照点C(rx、ry)を中心画素とし、左上座標(rx-2、ry-2)および右下座標(rx+2、ry+2)を含むブロックサイズが5x5の参照ブロックCのデータが、参照ブロックデータ格納メモリ22から、第二中間相関値演算部C321に入力される。40個の第二中間相関値演算部C321の各々に、40個の参照点Cを中心画素とした40個の異なる参照ブロックCのデータが入力される。
 第二中間相関値演算部D322は、第一実施形態の第二中間相関値演算部32と同様、最小ブロックサイズ(3x3)のみについての相関値を算出する。
注目画素の座標(tx、ty)とした場合、左上座標(tx-1、ty-1)および右下座標(tx+1、ty+1)を含むブロックサイズが3x3の基準ブロックのデータが、基準ブロックデータ格納メモリ21から、第二中間相関値演算部D322に入力される。64個の第二中間相関値演算部すべてに同じ基準ブロックのデータが入力される。
また、参照点D(rx、ry)を中心画素とし、左上座標(rx-1、ry-1)および右下座標(rx+1、ry+1)を含むブロックサイズが3x3の参照ブロックDのデータが、参照ブロックデータ格納メモリ22から、第二中間相関値演算部D322に入力される。64個の第二中間相関値演算部D322の各々に、64個の参照点Dを中心画素とした64個の異なる参照ブロックDのデータが入力される。
すなわち、第二中間相関値演算部B320と、第二中間相関値演算部C321と、第二中間相関値演算部D322とは、第一実施形態の第二中間相関値演算部32同様、4種類のブロックサイズすべてについての相関値を演算しない。
相関値補間部35は、第一実施形態と同様、相関値に関する補間近似処理を行い、相関値を出力する。
補間近似処理では、4種類のブロックサイズすべてについての相関値を算出していない参照ブロックBおよび参照ブロックCおよび参照ブロックDの相関値(補間対象相関値)を近似により算出する。
補間近似処理は、第一実施形態と同様に、ターゲットブロックサイズのSAD(sadT)と3x3のSAD(sad3)の差をとってもよいが、ターゲットブロックサイズのSAD(sadT)と補間対象参照ブロックにおいて算出されているSAD(演算済相関値)の最大のブロックサイズのSAD(sadM)の差を取ってもよい。この場合、ターゲットブロックサイズとの差が小さくなるため、補間時の誤差を抑えられ、第一実施形態の近似方法と比べて精度を向上できる。
演算式は式8から式12で表される。
Figure JPOXMLDOC01-appb-M000008
ここで、dif_ave(x、y)は式9で算出される。ここで、補間処理に使う画素4点の座標を(x1、 y1)、(x2 、y2)、(x3 、y4)、(x4 、y4)とする。
Figure JPOXMLDOC01-appb-M000009
ここでdif(x、y)は式10により算出される。
Figure JPOXMLDOC01-appb-M000010
ここでsadT(x、y)は式11により算出される。
Figure JPOXMLDOC01-appb-M000011
ここでsadTM(x、y)は式12により算出される。
Figure JPOXMLDOC01-appb-M000012
(第二実施形態の効果)
 本実施形態の相関値演算装置200によれば、相関値演算装置200は、ブロックサイズを数種類から選択できる。参照領域内の参照点のうち一部の参照点を中心画素とした参照ブロックDと、基準ブロックとの相関値の演算は、最小のブロックサイズについての相関値のみを演算し、他のブロックサイズについての相関値は補間により求める。さらに、参照ブロックBと参照ブロックCにおいても、一部のブロックサイズについての相関値は補間により求める。これにより、補間処理の誤差を低減しつつ、相関値演算装置の回路規模をより好適に低減できる。
(変形例)
以上、本発明の第二実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の第二実施形態および変形例において示した構成要素は適宜に組み合わせて構成することが可能である。
 例えば、図13に示すように、第一中間相関値演算部31の変形例である第一中間相関値演算部31Aのように、注目画素が水平方向に走査される場合に、ブロック内に初めて入る新しい1ラインとブロック外に出る古い1ラインの差分を累積して相関値を算出してもよい。
 本発明は、画像内の特定の領域間の相関値を求める回路を含む装置に適用することができる。
100 相関値演算装置
200 相関値演算装置
2   ブロックメモリ
21  基準ブロックデータ格納メモリ
22  参照ブロックデータ格納メモリ
3   相関値演算部
31、31A 第一中間相関値演算部
32  第二中間相関値演算部
32  第二中間相関値演算部
35  相関値補間部
36  第一ブロック
37  第二ブロック
38  第三ブロック
39  第四ブロック
4   ブロックサイズ判定部
10  フレームデータ
11  基準フレームデータ
12  参照フレームデータ

Claims (8)

  1. 画像内の注目画素と、前記画像内もしくは異なる画像内の複数の参照画素を選択し、
    前記注目画素を所定の位置に含む基準ブロックと、それぞれの前記参照画素を前記所定の位置に含み、前記基準ブロックと同一のブロックサイズを有する複数の参照ブロックとの相関値を演算する相関値演算装置であって、
    前記基準ブロックと前記参照ブロックのブロックサイズを、複数種類のブロックサイズから一つ選択して選択ブロックサイズとするブロックサイズ判定部と、
    前記基準ブロックと、前記参照画素の一部である第一参照画素を前記所定の位置に含む前記参照ブロックとの相関値を、前記複数種類のブロックサイズにおいて演算する第一中間相関値演算部と、
     前記基準ブロックと、前記参照画素の残部である第二参照画素を前記所定の位置に含む前記参照ブロックとの相関値を、前記複数種類のブロックサイズのうち少なくとも一部のブロックサイズにおいて演算する第二中間相関値演算部と、
     前記第二中間相関値演算部が演算しない他のブロックサイズについての補間対象相関値を、前記第一中間相関値演算部が演算した前記他のブロックサイズについての相関値を用いて補間により求め、前記選択ブロックサイズが前記他のブロックサイズである場合に、前記第二中間相関値演算部の演算結果として前記補間対象相関値を出力する相関値補間部、とを備える、
    相関値演算装置。
  2. 市松模様状に前記参照画素が配置され、
     前記第一参照画素と前記第二参照画素とは、斜め方向に互いに隣り合うように前記第一参照画素と前記第二参照画素を配置する、
     請求項1に記載の相関値演算装置。
  3.  前記複数種類のブロックサイズが、水平方向および垂直方向に9画素、水平方向および垂直方向に7画素、水平方向および垂直方向に5画素、水平方向および垂直方向に3画素の、4種類である、
    請求項1または請求項2に記載の相関値演算装置。
  4. 前記第二中間相関値演算部は、前記基準ブロックと、前記第二参照画素を前記所定の位置に含む前記参照ブロックとの相関値を、水平方向および垂直方向に3画素のブロックサイズのみにおいて演算する、
    請求項3に記載の相関値演算装置。
  5. 市松模様状に前記参照画素が配置され、
    前記第二参照画素は3つのグループに分類され、
    前記第二参照画素の第一グループは、水平方向および垂直方向に4画素ずつ離れて配置され、
    前記第二参照画素の第三グループは、前記第二参照画素の前記第一グループの斜め四方向に隣り合うように配置され、
    前記第二参照画素の第二グループは、前記第二参照画素の前記第一グループから水平方向および垂直方向に2画素ずつ離れて配置され、
    前記第二参照画素が配置されてない参照点が、前記第一参照画素として配置される、
     請求項1に記載の相関値演算装置。
  6. 前記複数種類のブロックサイズが、水平方向および垂直方向に9画素、水平方向および垂直方向に7画素、水平方向および垂直方向に5画素、水平方向および垂直方向に3画素の、4種類である、
     請求項5に記載の相関値演算装置。
  7. 前記第二中間相関値演算部は、
    前記基準ブロックと、前記第二参照画素の前記第一グループを前記所定の位置に含む前記参照ブロックとの相関値を、水平方向および垂直方向に7画素、水平方向および垂直方向に5画素、水平方向および垂直方向に3画素の3種類のブロックサイズにおいて演算し、
    前記基準ブロックと、前記第二参照画素の前記第二グループを前記所定の位置に含む前記参照ブロックとの相関値を、水平方向および垂直方向に5画素、水平方向および垂直方向に3画素の2種類のブロックサイズにおいて演算し、
    前記基準ブロックと、前記第二参照画素の前記第三グループを前記所定の位置に含む前記参照ブロックとの相関値を、水平方向および垂直方向に3画素のブロックサイズのみにおいて演算する、
    請求項6に記載の相関値演算装置。
  8. 前記相関値補間部は、
    前記第二中間相関値演算部が演算した前記一部のブロックサイズについての演算済相関値と、
    前記第一中間相関値演算部が演算した前記他のブロックサイズについての相関値と、前記第一中間相関値演算部が演算した前記一部のブロックサイズについての相関値の差分平均値とを加算することで、
    前記補間対象相関値を補間により求める、
    請求項1から請求項7のいずれか一項に記載の相関値演算装置。
PCT/JP2017/014244 2017-04-05 2017-04-05 相関値演算装置 WO2018185881A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2017/014244 WO2018185881A1 (ja) 2017-04-05 2017-04-05 相関値演算装置
CN201780088604.8A CN110447052B (zh) 2017-04-05 2017-04-05 相关值运算装置
US16/590,519 US11288787B2 (en) 2017-04-05 2019-10-02 Correlation value calculation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/014244 WO2018185881A1 (ja) 2017-04-05 2017-04-05 相関値演算装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/590,519 Continuation US11288787B2 (en) 2017-04-05 2019-10-02 Correlation value calculation device

Publications (1)

Publication Number Publication Date
WO2018185881A1 true WO2018185881A1 (ja) 2018-10-11

Family

ID=63712102

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/014244 WO2018185881A1 (ja) 2017-04-05 2017-04-05 相関値演算装置

Country Status (3)

Country Link
US (1) US11288787B2 (ja)
CN (1) CN110447052B (ja)
WO (1) WO2018185881A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018185881A1 (ja) * 2017-04-05 2018-10-11 オリンパス株式会社 相関値演算装置
CN110537202B (zh) * 2017-04-10 2022-10-04 奥林巴斯株式会社 相关值运算装置
CN117745531B (zh) * 2024-02-19 2024-05-31 瑞旦微电子技术(上海)有限公司 图像插值方法、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007181168A (ja) * 2005-12-01 2007-07-12 Sony Corp 画像処理装置および画像処理方法
JP2013121044A (ja) * 2011-12-07 2013-06-17 Hitachi Kokusai Electric Inc 画像符号化装置及び画像符号化方法
JP2015152484A (ja) * 2014-02-17 2015-08-24 キヤノン株式会社 距離計測装置、撮像装置、距離計測方法、およびプログラム
JP2017017585A (ja) * 2015-07-02 2017-01-19 オリンパス株式会社 撮像装置、画像処理方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128416A (en) * 1993-09-10 2000-10-03 Olympus Optical Co., Ltd. Image composing technique for optimally composing a single image from a plurality of digital images
FR2742900B1 (fr) * 1995-12-22 1998-02-13 Thomson Multimedia Sa Procede d'interpolation de trames progressives
US5991464A (en) * 1998-04-03 1999-11-23 Odyssey Technologies Method and system for adaptive video image resolution enhancement
JP3789442B2 (ja) * 2002-12-25 2006-06-21 三菱電機株式会社 走査線補間装置、画像処理装置、画像表示装置及び走査線補間方法
JP4220284B2 (ja) * 2003-03-28 2009-02-04 株式会社東芝 フレーム補間方法、装置及びこれを用いた画像表示システム
KR100631777B1 (ko) * 2004-03-31 2006-10-12 삼성전자주식회사 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치
JP4547321B2 (ja) 2005-09-22 2010-09-22 オリンパスイメージング株式会社 動きベクトル検出装置及び撮像装置
JP4470899B2 (ja) * 2006-03-16 2010-06-02 ソニー株式会社 画像処理装置および画像処理方法、並びにプログラム
JP4322904B2 (ja) * 2006-09-19 2009-09-02 株式会社東芝 補間フレーム作成装置、動きベクトル検出装置、補間フレーム作成方法、動きベクトル検出方法、補間フレーム作成プログラムおよび動きベクトル検出プログラム
JP4670918B2 (ja) * 2008-08-26 2011-04-13 ソニー株式会社 フレーム補間装置及びフレーム補間方法
JP5245783B2 (ja) * 2008-12-09 2013-07-24 富士通株式会社 フレーム補間装置、方法、及びプログラム、フレームレート変換装置、映像再生装置、映像表示装置
JP5741011B2 (ja) * 2011-01-26 2015-07-01 株式会社リコー 画像処理装置、画素補間方法およびプログラム
JP5524133B2 (ja) * 2011-06-07 2014-06-18 株式会社東芝 画像処理装置
JP6099536B2 (ja) * 2013-09-27 2017-03-22 オリンパス株式会社 画像処理装置、画像処理方法及び画像処理プログラム
WO2018185881A1 (ja) * 2017-04-05 2018-10-11 オリンパス株式会社 相関値演算装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007181168A (ja) * 2005-12-01 2007-07-12 Sony Corp 画像処理装置および画像処理方法
JP2013121044A (ja) * 2011-12-07 2013-06-17 Hitachi Kokusai Electric Inc 画像符号化装置及び画像符号化方法
JP2015152484A (ja) * 2014-02-17 2015-08-24 キヤノン株式会社 距離計測装置、撮像装置、距離計測方法、およびプログラム
JP2017017585A (ja) * 2015-07-02 2017-01-19 オリンパス株式会社 撮像装置、画像処理方法

Also Published As

Publication number Publication date
US11288787B2 (en) 2022-03-29
CN110447052B (zh) 2023-03-14
CN110447052A (zh) 2019-11-12
US20200034960A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
JP5642653B2 (ja) 適応型色彩補間
US9679357B2 (en) Image processing device, and an image processing method
WO2018185881A1 (ja) 相関値演算装置
JP2010288110A (ja) 画像処理装置および画像処理方法
EP3051526B1 (en) Data compensator and display device including the same
KR20140038513A (ko) 광각 렌즈 이미지 보정
US20150071561A1 (en) Removing noise from an image via efficient patch distance computations
US10008023B2 (en) Method and device for texture filtering
KR20210148822A (ko) 압축된 가이드를 사용하는 이미지 센서 다운-업 샘플링
US6876778B2 (en) Edge enhancement method and apparatus in digital image scalar-up circuit
JP2017174311A (ja) エッジ検出装置およびエッジ検出方法
JP4868249B2 (ja) 映像信号処理装置
US20150356709A1 (en) Interpolation method and corresponding device
US20200034975A1 (en) Correlation value calculation device
JP2013048376A (ja) 動き補償フレーム生成装置及び方法
US11995156B2 (en) Confidence aided upsampling of categorical maps
JP6704726B2 (ja) エッジ検出装置、エッジ検出方法、及び、プログラム
US20130315502A1 (en) Image processing apparatus and image processing method
JP6730804B2 (ja) 画像処理装置および画像処理方法
US8200032B2 (en) Image processing method and related apparatus for performing image processing operation according to image blocks in horizontal direction
JP4775161B2 (ja) 画像処理装置、画像処理プログラム
JP2005346393A (ja) ステレオ画像認識装置及びその方法
CN110580880A (zh) 一种基于rgb三角亚像素布局式的亚像素渲染方法、系统以及显示装置
CN117764819A (zh) 图像处理方法、装置、电子设备和存储介质
JP2014123814A (ja) 画像処理装置及び画像処理方法

Legal Events

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

Ref document number: 17904454

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17904454

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP