WO2008023466A1 - Moving vector detecting bdevice - Google Patents
Moving vector detecting bdevice Download PDFInfo
- Publication number
- WO2008023466A1 WO2008023466A1 PCT/JP2007/052011 JP2007052011W WO2008023466A1 WO 2008023466 A1 WO2008023466 A1 WO 2008023466A1 JP 2007052011 W JP2007052011 W JP 2007052011W WO 2008023466 A1 WO2008023466 A1 WO 2008023466A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- block
- horizontal
- vertical
- projection data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20068—Projection on vertical or horizontal image axis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20192—Edge enhancement; Edge preservation
Definitions
- the present invention relates to a motion vector detection device that detects a motion vector between frame images related to a previous frame and a subsequent frame that are in a time series front-rear relationship.
- Patent Document 1 discloses a technique for improving this problem.
- feature points of an image having a luminance gradient are extracted, and representative point matching processing is performed using the extracted feature points as representative points, thereby enabling good detection of motion vectors.
- Patent Document 2 there is a method of detecting a motion vector by dividing an image into a plurality of blocks, detecting an edge for each block, and following the movement of the edge.
- This method can reduce misjudgment when there is no characteristic pattern with a low spatial frequency such as the sky, or when there are many feature points with a high spatial frequency such as a lattice door.
- the reliability is evaluated by weighting the number of edges per block.
- a zero crossing method or the like is used as a method for detecting the edge.
- Patent Document 1 Japanese Patent No. 3534551
- Patent Document 2 Japanese Patent No. 3164121
- Patent Document 1 can reliably set the representative point where the luminance gradient exists, the correlation calculation of the representative point is performed while shifting the pixels little by little over the entire search range in the frame image. Therefore, a considerable amount of computation is required for each representative point (feature point). Therefore, unless the number of representative points is kept below a certain level, it is difficult to quickly detect a motion vector and real-time processing becomes difficult. On the other hand, if there are too few representative points, the accuracy of motion vector detection will be reduced.
- the motion vector detection method disclosed in Patent Document 2 has the power to reduce erroneous determination by weighting the reliability of the motion vector calculated for each block by the number of edges for each block.
- the present invention has been made to solve the above-described problems, and can detect a motion vector between frame images with high accuracy and speed and calculate each block force while satisfying real-time processing. It is an object of the present invention to provide a motion vector detection device capable of evaluating the reliability of a motion vector.
- a first aspect of the motion vector detection device is a motion vector detection device that detects a motion vector between frame images related to a previous frame and a rear frame that are in a chronological order. For a frame image that is read out by repeating pixel scanning of the horizontal line in order in the vertical direction, an edge that emphasizes the vertical edge for each of the divided blocks having a certain division width in the vertical direction Emphasis means and said et Projection means for projecting data in the vertical direction for each of the blocks and generating projection data having a data array for one horizontal line in each of the blocks.
- the projecting means obtains a specifying means for specifying the position of the array element at each intersection and a data array in a predetermined range centered on the position of the array element at each intersection. For each of the extracting means for extracting from the projection data and the data array in the predetermined range extracted by the extracting means, values of array elements having the same relative position with respect to the position of the array element at each intersection are obtained.
- a calculation adding means based on the added result of addition by said adding means, and a detection means for detecting a motion vector related to the horizontal direction of the frame image, Ru.
- a second aspect of the motion vector detection device is a motion vector detection device that detects a motion vector between frame images related to a previous frame and a rear frame that are in a chronological order. For the frame image that is read out by repeating the pixel scanning of the horizontal line in order in the vertical direction, the horizontal edge is emphasized for each block divided into a plurality of blocks having a certain division width in the horizontal direction.
- An edge enhancement unit that performs projection in a horizontal direction for each of the blocks, and a projection having a data array for one vertical line in each of the blocks.
- Projection means for generating data, and projection data obtained by the projection means with respect to the previous frame;
- Extraction means for extracting a data array of a predetermined range from the projection data obtained by the projection means for the subsequent frame, and an array element of each intersection for each of the data array of the predetermined range extracted by the extraction means
- the third aspect of the motion vector detection device has a front-to-back relationship in time series.
- a motion vector detection device that detects a motion vector between frame images related to a previous frame and a subsequent frame, and is fixed in a vertical direction with respect to a frame image that is read by sequentially repeating pixel scanning of a horizontal line in the vertical direction.
- An edge emphasizing unit for emphasizing a vertical edge for each block divided into a plurality of blocks, and an image in which the edge is emphasized by the edge emphasizing unit.
- Projection means for projecting in the direction and generating projection data having a data array for one horizontal line in each of the blocks, and an array of post-frame projection data obtained by the projection means for the rear frame
- a maximum value acquisition means for obtaining a maximum value in the element, and a previous frame projection data obtained by the projection means with respect to the previous frame
- Identifying means for extracting, a data array in a predetermined range centering on the position of the array element at each intersection, an extraction means for extracting from the post-frame projection data, and a data array in the predetermined range extracted by the extraction means, respectively Then, add the values of the array elements that have the same relative position to the position of the array element at each intersection, and calculate the horizontal motion vector for each block based on the obtained addition result.
- a detecting means for detecting a horizontal motion vector of the entire frame image based on the horizontal motion vector for each block calculated by the calorie calculating means.
- the detecting means includes the maximum value of the post-frame projection data obtained by the maximum value obtaining means, the addition result obtained by the calorie calculating means, and the intersection information obtained by the specifying means. The reliability of the horizontal motion vector for each block is evaluated using at least one.
- a fourth aspect of the motion vector detection device is a motion vector detection device that detects a motion vector between frame images related to a previous frame and a subsequent frame that are in a time series front-rear relationship.
- Edge enhancement that emphasizes the horizontal edge for each block divided into multiple blocks with a constant division width in the horizontal direction for a frame image that is read out by repeating pixel scanning of the line in the vertical direction. And an image in which edges are emphasized by the edge enhancement means, and horizontally for each block.
- Projection means for generating projection data having a data array for one vertical line in each of the blocks, and an array element of the post-frame projection data obtained by the projection means for the rear frame
- a maximum value obtaining means for obtaining a maximum value in the above, a waveform obtained by graphing array element values in the order of the elements of the data array with respect to the previous frame projection data obtained by the projection means with respect to the previous frame, and an array element A means for specifying the position of an array element at each intersection where a straight line having a predetermined constant value intersects and outputting as intersection information, and a data array in a predetermined range centered on the position of the array element at each intersection
- the extraction means for extracting from the post-frame projection data, and for each of the predetermined range of data arrays extracted by the extraction means!
- the edge in the vertical direction is emphasized in a predetermined image area in the frame image, and the projection in the vertical direction is performed in the edge-enhanced image.
- Projection data having a data array for one horizontal line is generated, and a waveform in which array element values are graphed in the order of the data array elements with respect to the projection data of the previous frame, and the array element values are set to a predetermined constant value. Specify the position of the array element at each intersection where the straight line intersects.
- the projection data force of the subsequent frame is extracted from the data array in a predetermined range centered on the position of the array element at each intersection, and the extracted array of data in the predetermined range is compared with the position of the array element at each intersection.
- the values of array elements having the same relative position are added, and the motion vector in the horizontal direction of the frame image is detected based on the addition result.
- the edge in the horizontal direction is emphasized in the predetermined image region in the frame image, and the image in the edge direction is enhanced in the horizontal direction.
- Projection data having a data array for one vertical line is generated by projecting to the waveform, and the waveform of the array elements is graphed in the order of the data array elements with respect to the projection data of the previous frame, and the values of the array elements are predetermined.
- the position of the array element at each intersection where a straight line with a constant value intersects is specified.
- the projection data force of the subsequent frame is extracted from the data array in a predetermined range centered on the position of the array element at each intersection, and the extracted array of data in the predetermined range is compared with the position of the array element at each intersection.
- the values of array elements having the same relative position are added, and a motion vector in the vertical direction of the frame image is detected based on the addition result. As a result, motion vectors between frame images can be detected accurately and quickly.
- the detection means in the detection means, the maximum value of the post-frame projection data obtained by the maximum value acquisition means, the calorie calculation result obtained by the addition means.
- the reliability of the horizontal motion vector for each block is evaluated using at least one of the intersection information obtained by the specifying means, the horizontal motion vector obtained from the low-reliability block power is obtained. As a result, it is possible to calculate the horizontal motion vector of the entire frame image with high reliability.
- the detection means in the detection means, the maximum value of the post-frame projection data obtained by the maximum value acquisition means, the calorie calculation result obtained by the addition means Since the reliability of the vertical motion vector for each block is evaluated using at least one of the intersection information obtained by the specifying means, the vertical motion vector obtained from the low-reliability block force is used. By excluding, as a result, the vertical motion vector of the entire frame image with high reliability can be calculated.
- FIG. 10 is a block diagram showing a main configuration of a motion vector detection device 1C according to a state 4.
- FIG. 2 is a diagram for explaining a pixel scanning direction in a frame image.
- FIG. 3 is a block diagram showing a main configuration of a horizontal motion vector detection unit 2.
- FIG. 4 is a block diagram showing a main configuration of a vertical block projection unit 23.
- FIG. 5 is a block diagram showing the main configuration of a vertical block horizontal motion vector calculation unit 31.
- FIG. 6 is a block diagram showing a main configuration of a vertical motion vector detection unit 4.
- FIG. 7 is a block diagram showing a main configuration of a horizontal block projection unit 43.
- FIG. 8 is a block diagram showing a main configuration of a horizontal block vertical motion vector calculation unit 50.
- FIG. 9 is a diagram for explaining the operation of the vertical image dividing unit 21 and the vertical block projecting unit 23.
- FIG. 10 is a diagram for explaining n-value key processing in the n-value converters 314 and 504.
- FIG. 11 is a diagram for explaining the operations of a first threshold intersection searching unit 29, a vertical block projection data reading unit 30, and a vertical block horizontal motion vector calculating unit 31.
- FIG. 12 is a diagram for explaining the operation of adder 315 and peak detector 317.
- FIG. 13 is a diagram for explaining operations of a horizontal image dividing unit 41 and a horizontal block projecting unit 43.
- FIG. 14 is a diagram for explaining the operation of a third threshold intersection searching unit 48, a horizontal block projection data reading unit 49, and a horizontal block vertical motion vector calculating unit 50.
- FIG. 15 is a diagram for explaining operations of an adder 505 and a peak detection unit 507.
- FIG. 16 is a block diagram showing a main configuration of a horizontal direction motion vector detection unit 2A in a motion vector detection device 1A according to Embodiment 2 of the present invention.
- FIG. 17 is a block diagram showing a main configuration of a vertical direction motion vector detection unit 4A in the motion vector detection device 1A.
- FIG. 18 shows horizontal motion in the motion vector detection device 1C according to the third embodiment of the present invention.
- FIG. 5 is a block diagram showing a main configuration of a vector detection unit 2B.
- FIG. 19 is a block diagram showing a main configuration of a vertical block horizontal motion vector calculation unit 310.
- FIG. 20 is a block diagram showing a main configuration of a vertical motion vector detection unit 4B.
- FIG. 21 is a block diagram showing a main configuration of a horizontal block vertical motion vector calculation unit 500.
- FIG. 22 is a diagram for explaining a method for determining the effectiveness Z invalidity of each vertical block using the first vertical block projection data maximum value.
- FIG. 23 is a diagram schematically showing determination of valid Z invalidity of a vertical block.
- FIG. 24 is a diagram for explaining a method of determining the effective Z invalidity of each vertical block using the vertical block n-valued addition data peak value.
- FIG. 25 is a diagram schematically showing determination of valid Z invalidity of a vertical block.
- FIG. 26 is a diagram for explaining a method for determining valid Z invalidity of each vertical block using the number of first threshold intersections.
- FIG. 27 is a diagram schematically showing determination of valid Z invalidity of a vertical block.
- FIG. 28 is a diagram schematically showing a determination of valid Z invalidity of a vertical block.
- FIG. 29 is a diagram for explaining an example of a method for determining the horizontal motion vector of the entire image.
- FIG. 30 is a diagram for explaining an example of a method for determining the horizontal motion vector of the entire image.
- FIG. 31 is a diagram for explaining a method of determining validity Z invalidity of each horizontal block using the first horizontal block projection data maximum value.
- FIG. 32 is a diagram schematically showing determination of valid Z invalidity of a horizontal block.
- FIG. 33 is a diagram for explaining a method of determining validity Z invalidity of each horizontal block using the horizontal block n-valued addition data peak value.
- FIG. 34 is a diagram schematically showing valid Z invalid / invalid determination of a horizontal block.
- FIG. 35 is a diagram for explaining a method for determining valid Z invalidity of each horizontal block using the number of third threshold intersections.
- FIG. 36 is a diagram schematically showing valid Z invalid / invalid determination of a horizontal block.
- FIG. 37 is a diagram schematically showing determination of valid Z invalidity of horizontal blocks.
- FIG. 38 is a diagram for explaining an example of a method for determining the vertical motion vector of the entire image.
- FIG. 39 is a diagram illustrating an example of a method for determining a vertical motion vector of an entire image.
- FIG. 40 is a block diagram showing a main configuration of a horizontal direction motion vector detection unit 2C in the motion vector detection device 1C according to Embodiment 4 of the present invention.
- FIG. 41 is a block diagram showing a main configuration of a vertical direction motion vector detection unit 4C in the motion vector detection device 1C.
- FIG. 1 is a block diagram showing a main configuration of motion vector detection apparatus 1 according to Embodiment 1 of the present invention.
- the motion vector detection device 1 detects, for example, an image motion vector representing a motion of a subject in a screen in a moving image, and a frame image related to a previous frame and a subsequent frame that are in a chronological order. A motion vector in between is detected.
- the motion vector detected by the motion vector detection device 1 is used for camera shake correction of the video camera. It is assumed that the frame image input to the motion vector detection device 1 is read out by performing horizontal pixel scanning and vertical line scanning as shown in FIG.
- the motion vector detection device 1 includes an input terminal 11, a horizontal direction motion vector detection unit 2 and a vertical direction motion vector detection unit 4, and two output terminals 12 and 13.
- the functions may be realized by software, for example, by a microprocessor, or most of the functions are realized by hardware (partially software). You may do it. Of course, all the functions can be realized with no software! Needless to say! /.
- image data (moving image) acquired by an image sensor in a video camera or image data (moving image) such as a video signal is input to the input terminal 11.
- image data moving image
- image data moving image
- a horizontal motion vector is detected by the horizontal motion vector detection unit 2, and the detected horizontal motion vector is output from the output terminal 12.
- the vertical motion vector detection unit 4 detects a vertical motion vector for the image data input to the input terminal 11.
- the vertical motion vector detected by the vertical motion vector detection unit 4 is output from the output terminal 13.
- FIG. 3 is a block diagram showing the main configuration of the horizontal motion vector detection unit 2.
- the horizontal direction motion vector detection unit 2 includes an input terminal 20, a vertical image segmentation unit 21, a vertical direction edge extraction filtering unit 22, a vertical block projection unit 23, and a first vertical block projection data maximum value.
- a storage unit 24, a bit number reduction unit 25, and a first vertical block projection line memory 26 are provided.
- the horizontal motion vector detection unit 2 includes a second vertical block projection line memory 27, a second vertical block projection data maximum value storage unit 28, a first threshold intersection search unit 29, and a vertical direction.
- a block projection data reading unit 30, a vertical block horizontal motion vector calculation unit 31, a horizontal motion vector determination unit 32, and an output terminal 33 are provided. The function of each part of the horizontal direction motion vector detection unit 2 will be briefly described (specific operations will be described in detail later).
- the vertical image dividing unit 21 divides the frame image input to the input terminal 20 in the vertical direction, and outputs a block divided in the vertical direction (hereinafter also referred to as “vertical block”).
- the vertical edge extraction filtering unit 22 performs a filtering process for performing edge extraction for each block divided by the vertical image dividing unit 21.
- the vertical image dividing unit 21 and the vertical edge extraction filtering unit 22 may be collectively referred to as edge enhancement means.
- the vertical block projection unit 23 projects the vertical direction of the edge-enhanced vertical block output from the vertical edge extraction filtering unit 22 in the vertical direction. Output projection data for each block.
- the first vertical block projection data maximum value storage unit 24 stores the maximum value in the projection data of the vertical block of the current frame output from the vertical block projection unit 23 (hereinafter referred to as "vertical direction of the current frame"). “Block projection data maximum value” or “first vertical block projection data maximum value”) is saved. The first vertical block projection data maximum value storage unit 24 calculates a second threshold value to be described later based on the first vertical block projection data maximum value.
- the bit number reduction unit 25 is output from the vertical block projection unit 23 based on the first vertical block projection data maximum value stored in the first vertical block projection data maximum value storage unit 24. Reduce the number of bits of vertical block projection data.
- the projection data of the vertical block with the reduced number of bits is called “first vertical block projection data”.
- the first vertical block projection line memory 26 stores the first vertical block projection data whose number of bits has been reduced by the bit number reduction unit 25.
- the second vertical block projection line memory 27 uses the vertical block projection data sent from the first vertical block projection line memory 26 as the projection data (hereinafter referred to as "first block data") of the vertical block of the previous frame. 2) (vertical block projection data).
- the second vertical block projection data maximum value storage unit 28 stores the first vertical block projection data maximum value output from the first vertical block projection data maximum value storage unit 24 in the previous frame.
- second vertical block projection data maximum value also referred to as “vertical block projection data maximum value of previous frame”. Further, the second vertical block projection data maximum value storage unit 28 calculates a first threshold value to be described later based on the second vertical block projection data maximum value.
- the first threshold intersection search unit 29 generates a waveform of the second vertical block projection data relating to the previous frame stored in the second vertical block projection line memory 27, and the second vertical block. A point where the first threshold value calculated by the projection data maximum value storage unit 28 intersects is obtained, and information on this intersection (hereinafter also referred to as “first threshold value intersection”) is output.
- the vertical block projection data reading unit 30 is centered on the first threshold intersection obtained by the first threshold intersection searching unit 29, and is within a predetermined range (motion vector detection range) before and after the first threshold intersection. Read the 1 vertical block projection data from the first vertical block projection line memory 26.
- the vertical block horizontal motion vector calculation unit 31 uses the second threshold value output from the first vertical block projection data maximum value storage unit 24, and the vertical block projection data read unit 30 Each of the read first vertical block projection data is reduced to the n value n (where n is an integer of 2 or more) to reduce the number of bits, and the n-valued projection data is converted to the first threshold intersection force. Add for each distance.
- the horizontal motion vector determination unit 32 determines a horizontal motion vector of the image based on the output from the vertical block horizontal motion vector calculation unit 31.
- the horizontal motion vector of the image determined here is output from the output terminal 33.
- FIG. 4 is a block diagram showing a main configuration of the vertical block projection unit 23.
- the vertical block projection unit 23 includes an input terminal 231, an adder 232 that performs data addition for each horizontal line, and a vertical projection temporary storage memory 233 as a buffer memory that sequentially stores the data added by the adder 232. And an output terminal 234.
- the image in which the vertical edge is emphasized by the vertical edge extraction filtering unit 22 is input for each vertical block.
- the image input to the input terminal 231 is projected in the vertical direction by the adder 232 and the vertical projection temporary storage memory 233 for each vertical block.
- the adder 232 adds the data for one horizontal line of the vertical block and the data for one horizontal line read from the vertical projection temporary memory 233, and the addition result is the vertical projection temporary.
- the data is returned to the storage memory 233 and stored.
- FIG. 5 is a block diagram showing a main configuration of the vertical block horizontal motion vector calculation unit 31.
- the vertical block horizontal motion vector calculation unit 31 includes three input terminals 311 to 313. , An n-value converter 314, an adder 315 for adding the first vertical block projection data n-valued by the n-value generator 314, and a buffer memory for sequentially storing the data added by the adder 315
- a horizontal motion vector addition memory 316 as a memory, a peak detector 317, and an output terminal 318 are provided.
- the first vertical block projection data output from the vertical block projection data reading unit 30 is input to the input terminal 311.
- the first vertical block projection data maximum value is input to the input terminal 312.
- the second threshold value output from the storage unit 24 is input.
- the input terminal 313 receives information about the first threshold value intersection output from the first threshold value intersection search unit 29.
- the n-value converter 314 converts the first vertical block projection data input from the input terminal 311 into an n-value key (for example, a ternary value) based on the second threshold value input from the input terminal 312. )
- the adder 315 converts the first vertical block projection data n-valued by the n-value generator 314 and the data read from the horizontal motion vector addition memory 316 into a first threshold intersection. The result of the addition is stored in the horizontal motion vector addition memory 316 again. When the addition for all the first threshold intersections related to the vertical block is completed by repeating such addition operation, the addition data related to the vertical block is output to the peak detector 317.
- the peak detector 317 detects a peak position (horizontal motion vector described later) in the addition data output from the adder 315.
- the peak position detected by the peak detector 317 is input to the horizontal direction motion vector determination unit 32 via the output terminal 318.
- FIG. 6 is a block diagram showing the main configuration of the vertical motion vector detection unit 4.
- the vertical motion vector detection unit 4 includes an input terminal 40, a horizontal image segmentation unit 41, a horizontal edge extraction filtering unit 42, a horizontal block projection unit 43, and a first horizontal block projection line memory 44. And a first horizontal block projection data maximum value storage unit 45.
- the vertical motion vector detection unit 4 includes a second horizontal block projection line memory 46, a second horizontal block projection data maximum value storage unit 47, and a third
- the threshold intersection searching unit 48, the horizontal block projection data reading unit 49, the horizontal block vertical motion vector calculating unit 50, the vertical motion vector determining unit 51, and the output terminal 52 are provided. The function of each part of the vertical motion vector detection unit 4 will be briefly described (specific operations will be described in detail later).
- the horizontal image dividing unit 41 divides the frame image input to the input terminal 40 in the horizontal direction and outputs a block divided in the horizontal direction (hereinafter also referred to as “horizontal block”).
- the horizontal edge extraction filtering unit 42 performs a filtering process for performing edge extraction for each block divided by the horizontal image dividing unit 41.
- the horizontal image segmentation unit 41 and the horizontal direction edge extraction filtering unit 42 may be collectively referred to as edge enhancement means.
- the horizontal block projection unit 43 projects the edge-enhanced horizontal block output from the horizontal edge extraction filtering unit 42 in the horizontal direction and outputs projection data for each horizontal block.
- the first horizontal block projection line memory 44 converts the horizontal block projection data output from the horizontal block projection unit 43 into the horizontal block projection data of the current frame (hereinafter referred to as “first block projection data”). This is also referred to as “horizontal block projection data”.
- the first horizontal block projection data maximum value storage unit 45 stores the maximum value of the projection data of the horizontal block of the current frame output from the horizontal block projection unit 43 (hereinafter, “horizontal direction of the current frame”). “Block projection data maximum value” or “first horizontal block projection data maximum value”) is saved.
- the second horizontal block projection line memory 46 uses the horizontal block projection data sent from the first horizontal block projection line memory 44 as the projection data (hereinafter referred to as "first block data") of the horizontal block of the previous frame. This is also called “2 horizontal block projection data”.
- the second horizontal block projection data maximum value storage unit 47 stores the first horizontal block projection data maximum value output from the first horizontal block projection data maximum value storage unit 45 in the previous frame. "Second horizontal block projection data maximum"("Previous frame This is also referred to as “horizontal block projection data maximum value”). Further, the second horizontal block projection data maximum value storage unit 47 calculates a third threshold value and a fourth threshold value, which will be described later, based on the second horizontal block projection data maximum value.
- the third threshold value intersection search unit 48 stores the second horizontal block projection data and the second horizontal block projection data related to the previous frame stored in the second horizontal block projection line memory 46. A point where the third threshold value calculated by the maximum value storage unit 47 intersects is obtained, and information on this intersection (hereinafter also referred to as “third threshold value intersection”) is output.
- the horizontal block projection data reading unit 49 is centered on the third threshold intersection obtained by the third threshold intersection searching unit 48, and is within a predetermined range (motion vector detection range) before and after the third threshold intersection. 1 horizontal block projection data is read from the first horizontal block projection line memory 44.
- the horizontal block vertical motion vector calculation unit 50 uses the fourth threshold value output from the second horizontal block projection data maximum value storage unit 47, and the horizontal block projection data read unit 49 Each of the first horizontal block projection data that has been read out is reduced to n-values (n is an integer of 2 or more) to reduce the number of bits, and the n-valued projection data is converted to the third threshold intersection force. Add for each distance.
- the vertical direction motion vector determination unit 51 determines the vertical direction motion vector of the image based on the output from the horizontal block vertical direction motion vector calculation unit 50.
- the vertical motion vector of the image determined here is output from the output terminal 52.
- FIG. 7 is a block diagram showing the main configuration of the horizontal block projection unit 43.
- the horizontal block projection unit 43 includes an input terminal 431, an adder 432 that adds one horizontal line data of the horizontal block, and a horizontal projection temporarily as a buffer memory that sequentially stores the data added by the adder 432.
- a storage memory 433 and an output terminal 434 are provided.
- an image in which horizontal edges are emphasized by the horizontal edge extraction filtering unit 42 is input.
- the image input to the input terminal 431 is projected in the horizontal direction by the adder 432 and the horizontal projection temporary storage memory 433 for each horizontal block. Specifically, for one horizontal line of pixels in a horizontal block, The pixel input from the input terminal 431 and the addition result up to the previous pixel by the adder 432 and stored in the horizontal projection temporary storage memory 433 are added by the adder 432, and the addition result is again projected in the horizontal direction. Return to temporary storage memory 433 for storage.
- the addition data of all the pixels of one horizontal line of the horizontal block is output from the output terminal 434. Will be. Thereafter, similarly, the projection data in the horizontal direction of the next horizontal block is processed, and when processing of all the horizontal blocks for one horizontal line is completed, the processing of the next horizontal line is performed.
- FIG. 8 is a block diagram showing a main configuration of the horizontal block vertical motion vector calculation unit 50.
- the horizontal block vertical motion vector calculation unit 50 includes three input terminals 501 to 503, an n-value converter 504, and a first horizontal block projection n-valued by the n-value converter 504.
- An adder 505 for adding data a vertical motion vector addition memory 506 as a buffer memory for sequentially storing the data added by the adder 505, a peak detector 507, and an output terminal 5 08 ⁇
- the adder 505 for adding data a vertical motion vector addition memory 506 as a buffer memory for sequentially storing the data added by the adder 505, a peak detector 507, and an output terminal 5 08 ⁇ The
- the first horizontal block projection data output from the horizontal block projection data reading unit 49 is input to the input terminal 501, and the second horizontal block projection data maximum value is input to the input terminal 502.
- the fourth threshold value output from the storage unit 47 is input.
- information on the third threshold value intersection output from the third threshold value intersection search unit 48 is input to the input terminal 503.
- the n-value quantizer 504 converts the first horizontal block projection data input from the input terminal 501 into an n-value key (for example, a ternary value) based on the fourth threshold value input from the input terminal 502. )
- the adder 505 converts the first horizontal block projection data n-valued by the n-valued converter 504 and the data read from the vertical motion vector addition memory 506 into a third threshold intersection. The result of addition is stored in the vertical motion vector addition memory 506 again.
- the addition data related to the horizontal block is output to the peak detector 507.
- the peak detector 507 detects a peak position (vertical motion vector described later) in the addition data output from the adder 505.
- the peak position detected by the peak detector 507 is input to the vertical direction motion vector determination unit 51 via the output terminal 508.
- the vertical image dividing unit 21 performs block division in the vertical direction. In other words, the vertical image dividing unit 21 sets a plurality of image regions (vertical blocks) obtained by dividing the frame image in the vertical direction. As a result, in the subsequent processing, processing and management are performed for each vertical block.
- the image data power of 640 pixels x 480 pixels is 7 vertical directions having a width (division width) of 64 pixels in the vertical direction. Divided into blocks Vb0 to vb6. Note that the bottom vertical image data vb7 is not used in the detection of horizontal motion vectors. Seven vertical blocks vb0 to vb6 occupying most of the force frame images are used for detection of horizontal motion vectors. For this reason, there is no particular problem in terms of detection accuracy.
- the division width and the number of divisions shown in (a) of Fig. 9 are not essential.
- the image divided into seven vertical blocks vb0 to vb6 by the vertical image dividing unit 21 as shown in Fig. 9A is an edge component extending in the vertical direction in the vertical edge extraction filtering unit 22.
- a filtering process is performed to emphasize the image portion that changes sharply in the horizontal direction.
- Filters used in this filtering process include the (1, 1) 2-tap filter, which simply takes the difference between pixels adjacent in the horizontal direction, and the equivalent of the second derivative (—1, 2, — 1). ) 3-tap filter can be used.
- It is essential to use such a filter as long as the output value rises in the image area where the luminance change in the horizontal direction increases.
- the image data in which the vertical edge is emphasized for each vertical block (image region) vbO to vb 6 by the vertical edge extraction filtering unit 22 is input to the vertical block projection unit 23, and the vertical block Projection unit 23 projects in the vertical direction.
- This projection reduces the noise component in the vertical direction (between the lines) and enhances the edge component in the vertical direction, so that the vertical edge corresponding to the feature point is highlighted to improve motion vector detection accuracy. It will be possible to plan.
- the operation of the vertical block projection unit 23 will be described with reference to the conceptual diagram shown in FIG. 9 (b).
- the vertical block projection unit 23 when the input of the vertical blocks vb0 to vb6 shown in (a) of Fig. 9 is completed, that is, the final lines in the vertical blocks vb0 to vb6 with edge enhancement.
- the data array Mv has an effective element of the total number of pixels of the horizontal line 1 (for a 2-tap filter such as force (1, 1) that has the total number of pixels of the horizontal line (for example, 640).
- a 3-tap filter such as 639) and (1, 1, 2, 1)
- the effective element is the total number of pixels in the horizontal line minus 2 (eg, 638).
- the image data of the vertical blocks vb0 to vb6 (image data subjected to edge enhancement in the vertical direction) input via the input terminal 231 sequentially Input to adder 232.
- the adder 232 the first horizontal line force of the input vertical block is written into the vertical projection temporary storage memory 233 without reading the data in the vertical projection temporary storage memory 233.
- the adder 232 reads the addition result up to the previous line stored in the vertical projection temporary storage memory 233, and adds it to the horizontal line of the vertical block input from the input terminal 231. Then, the addition result is written back to the vertical projection temporary storage memory 233.
- the projection data obtained by adding all horizontal lines of the vertical block in the adder 232 is stored in the vertical projection temporary storage memory 233 and the first line of the next vertical block is input. At this time, the projection data in the vertical projection temporary storage memory 233 may be read out and output from the output terminal 234.
- the first vertical block projection data maximum value storage unit 24 calculates the maximum value related to the projection data of the vertical block output from the vertical block projection unit 23, and the first vertical block projection data maximum Save as a value (maximum vertical block projection data for the current frame). In other words, the first vertical block projection data maximum value storage unit 24 finds the maximum value in the array element of the data array Mv (FIG. 9 (b)) relating to the projection data of the current frame (following frame). This maximum value is stored.
- the first vertical block projection data maximum value storage unit 24 calculates the second threshold value based on the calculated vertical block projection data maximum value of the current frame. For example, if the maximum vertical block projection data value of the current frame is Plmax, the second threshold value ⁇ 2 is calculated by the following equation (1).
- kl is a predetermined coefficient, and 0 and kl ⁇ 1.
- the calculation of the second threshold value a 2 is not limited to the above equation (1). If the maximum vertical block projection data value Plmax of the current frame increases, the second threshold value oc 2 increases. If it is a thing, you can use the conversion table again!
- the bit number reduction unit 25 the vertical block projection data maximum value of the current frame input from the first vertical block projection data maximum value storage unit 24 (first vertical block projection data maximum value) Based on the above, the effective bit range of the projection data is determined. Then, the upper invalid bit and the lower invalid bit set based on this valid bit range are reduced from the vertical block projection data input from the vertical block projection unit 23, and the vertical of the current frame consisting only of valid bits is reduced.
- the first vertical block projection line memory 26 uses the vertical block projection data of the current frame whose number of bits has been reduced by the bit number reduction unit 25 as the first vertical block projection data for each vertical block. Save to. That is, the first vertical block projection line memory 26 has a bit number reduction unit based on the first vertical block projection data maximum value obtained by the first vertical block projection data maximum value storage unit 24. In 25, the projection data of the current frame (following frame) in which the number of bits (data length of each array element) is reduced is stored.
- the first vertical block projection line memory 26 reads the vertical block projection data of the previous frame at the timing when new first vertical block projection data relating to the current frame is input, and the second vertical block projection line memory 26 The vertical block projection line memory 27 is given.
- the second vertical block projection line memory 27 uses the vertical block projection data of the previous frame read out from the first vertical block projection line memory 26 as the second vertical block projection data. save.
- the first vertical block projection data maximum value storage unit 24 is already stored at the timing when the new first vertical block projection data maximum value for the current frame is updated.
- the first vertical block projection data maximum value is read out and provided to the second vertical block projection data maximum value storage unit 28.
- the first vertical block projection data maximum value read from the first vertical block projection data maximum value storage unit 24 is the previous frame. Stored as the second vertical block projection data maximum value (vertical block projection data maximum value of the previous frame).
- the vertical block projection data maximum value of the current frame stored in the first vertical block projection data maximum value storage unit 24 is the second vertical block projection data of the next frame.
- the maximum value storage unit 28 stores the vertical block projection data of the previous frame as the maximum value.
- the second vertical block projection data maximum value storage unit 28 sets a first threshold (predetermined constant value) based on the second vertical block projection data maximum value for the previous frame. It is. For example, if the maximum value of the vertical block projection data of the previous frame is P2max, the first threshold ⁇ ⁇ is calculated by the following equation (2).
- k2 is a predetermined coefficient, and 0 ⁇ k2 ⁇ 1.
- the calculation of the first threshold value a1 is not limited to the above equation (2). If the maximum value P2max in the vertical block projection data of the previous frame increases, the first threshold value oc1 increases. If it is a thing, you can use the conversion table again!
- the first threshold intersection search unit 29 the second vertical block projection data read from the second vertical block projection line memory 27 and the second vertical block projection data maximum value The intersection with the first threshold output from the storage unit 28 (first threshold intersection) is searched for in the horizontal direction.
- the information on the first threshold intersection obtained by the first threshold intersection searching unit 29 is output to the vertical block projection data reading unit 30 and the vertical block horizontal motion vector calculating unit 31.
- the vertical direction block projection data reading unit 30 (the first frame of the current frame corresponding to the motion threshold detection range centered on the first threshold intersection output from the first threshold intersection searching unit 29 is used. Read vertical block projection data from the first vertical block projection line memory 26.
- the range is from (—V) to (+ V) (where V is a positive integer) centered on the first threshold intersection
- the projection data read from the first vertical block projection line memory 26 is In the horizontal direction
- the (A (i) -V) force is also partial data of the first vertical block projection data in the range up to (A (i) + V).
- the first vertical block projection data read from the first vertical block projection line memory 26 by the vertical block projection data reading unit 30 is sent to the vertical block horizontal motion vector calculation unit 31. Is output.
- the first vertical block projection data output from the vertical block projection data reading unit 30 is converted into n-values via the input terminal 31 1 of the vertical block horizontal motion vector calculation unit 31 shown in FIG. It is input to the device 314 (compression means).
- the n-value converter 314 outputs the first vertical direction based on the second threshold value output from the first vertical block projection data maximum value storage unit 24 and input via the input terminal 312. Convert the projection data into n values.
- the n-value converter 314 calculates the data length of each array element, for example, the data array Mv (FIG. 9 (b)) regarding the projection data of the current frame extracted by the vertical block projection data reading unit 30. Compressed by ternary processing The processing of the n-value converter 314 will be described with reference to FIG.
- FIG. 10 is a diagram for explaining n-value key processing in the n-value converter 314.
- the ⁇ -quantizer 314 outputs (1) when D ⁇ (-a 2), outputs 0 when (-a 2) ⁇ D ⁇ a 2, and outputs 1 when D> «2.
- ternary key processing is performed. That is, in the ternarization process in the n-valued unit 314, the second threshold ⁇ 2 ( ⁇ 2> set based on the maximum value of the array elements of the data array Mv in the projection data of the current frame (subsequent frame).
- the value of the array element related to the projection data of the current frame extracted by the vertical block projection data readout unit 30 is less than (1 a 2), (1 a 2) or more and a 2 or less, And if it is greater than a 2, a ternary ⁇ is performed in three steps.
- the partial waveform power of the first vertical-direction block projection data of the current frame output from the vertical-direction block projection data reading unit 30 It is important what kind of positional relationship, that is, what kind of tendency the waveform is with respect to the threshold intersection, so that the bit accuracy is sufficient to identify peaks and valleys in the first vertical block projection data waveform. Is sufficient.
- n-value converter 314 motion vector detection accuracy is improved by performing an appropriate n-value conversion process on the first vertical block projection data.
- the operations of the first threshold intersection searching unit 29, the vertical block projection data reading unit 30, and the vertical block horizontal motion vector calculating unit 31 described above will be specifically described with reference to FIG. explain.
- the horizontal axes of (a) and (b) in Fig. 11 indicate the positions of the projection data array Mv (the array elements of (b) in Fig. 9.
- the first threshold value intersections A (1) to A (8) are indicated by circles.
- the first threshold intersection search unit 29 relates to the projection data obtained by the vertical block projection unit 23 with respect to the previous frame, and the elements of the projection data array Mv (Fig. 9 (b)).
- the position of the array element at each first threshold crossing point where the waveform W2 in which the array element value is graphed in turn and the line where the array element value is the first threshold value (predetermined constant value) a 1 intersects Determine.
- the vertical block projection data reading unit 30 performs a predetermined motion vector detection range centered on each first threshold intersection A (1) to A (8) shown in (a) of FIG.
- the vertical block projection data of the current frame is read from the first vertical block projection line memory 26.
- the vertical block projection data reading unit 30 performs a vertical block projection on a data array in a predetermined range centered on the position of the array element of the projection data (data array) at each first threshold intersection. This is extracted from the projection data of the current frame (subsequent frame) output from the unit 23 and reduced in the number of bits by the bit number reduction unit 25.
- the (A (7) -V) force is also (A (7) In the range up to + V) (waveform part in the rectangular broken line)
- the corresponding first vertical block projection data Wl is read out.
- the first vertical block projection data read by the vertical block projection data read unit 30 is the first vertical block projection data maximum value storage unit 24.
- the ⁇ value is processed by the ⁇ value unit 314 of the vertical block horizontal motion vector calculation unit 31.
- the range ( ⁇ (7) —V) force is also up to (A (7) + V) (the waveform part in the rectangular broken line) in Fig. 11 (c )
- the first vertical block projection data is processed in three values.
- the vertical block projection data of the current frame is represented by “1”, “0”, or “1”.
- the n-value converter 314 performs n-value processing as shown in (c) of FIG. 11 for all the first threshold intersections output from the first threshold intersection search unit 29. Done.
- the first threshold value intersection searching unit 29, which also outputs the first threshold value intersection output via the input terminal 313, is used as the center, and the n value generator 314 outputs the n value.
- the first vertical block projection data that has been converted to the first vertical block projection data that has been read from the horizontal motion vector addition memory 316 and has been n-valued up to the previous one is added. Then, the addition result is stored in the horizontal motion vector addition memory 316 again.
- the adder 315 adds the first vertical block projection data that has been n-valued for the last one of all the first threshold intersections detected by the first threshold intersection search unit 29. Then, when the addition process for one vertical block is completed, the addition result is output to the peak detector 317.
- peak detection section 317 reads the addition result from horizontal motion vector addition memory 316 that stores the addition results for all the first threshold intersections. You may do it.
- the peak detector 317 includes, for all the first threshold value intersections detected by the first threshold value intersection search unit 29, a motion threshold detection range centered on each first threshold value intersection (described above).
- the first vertical block projection data with n values corresponding to the range of the V A force for inputting data (hereinafter also referred to as “vertical block n-value data”) A peak value related to the vertical block n-value data is detected by a peak detector 317.
- the peak position of the vertical block n-value data detected by this peak detector 317 becomes the horizontal motion vector obtained by the vertical block force, and the horizontal direction motion determination unit via the output terminal 3 18 Output to 32.
- the vertical block projection data readout unit 30 also extracts the vertical block projection data (data array Mv ((b) in Fig. 9) force, and the n-value unit 314 outputs the data.
- the values of array elements having the same relative position are added to the position of the array element at each first threshold intersection. Will be.
- the peak detector 317 When the vertical block n-value data generated by the adder 315 is input to the peak detector 317, the horizontal square shown in Fig. 12 (b) is obtained as the horizontal motion vector of the vertical block. Direction peak position hv is detected. That is, the peak detector 317 detects a motion vector in the horizontal direction of the frame image based on the addition result added by the adder 315.
- the peak detector 317 searches for the maximum peak position in the motion vector detection range (range of V), but if there are multiple identical maximum values, Priority is given to those close to 0 (in negative positions when the distance to origin 0 is the same). It should be noted that not only such a peak position detection rule, but the maximum value at the positive position may be prioritized, and the motion vector tendency in the previous frame is used for detection of the peak position in the current frame. May be.
- the horizontal motion vectors calculated for each vertical block by the peak detector 317 are sequentially input to the horizontal motion vector determination unit 32 via the output terminal 318.
- the horizontal direction motion vector of the entire image is determined based on the horizontal direction motion vector of each vertical block sequentially output from the vertical direction block horizontal direction motion vector calculation unit 31.
- the In the horizontal direction motion vector determination unit 32 for example, the horizontal direction motion vector having the highest appearance frequency is determined as the horizontal direction motion vector of the entire image.
- the horizontal direction motion vector determination unit 32 determines the horizontal direction motion vector for the entire frame image based on the horizontal direction motion vector of each vertical block. Even if there is, there will be no false reaction to the movement.
- the frame image power is read by sequentially repeating the pixel scanning of the horizontal line in the vertical direction.
- the direction image dividing unit 41 divides the block horizontally. That is, the horizontal image dividing unit 41 sets a plurality of image regions (horizontal blocks) obtained by dividing the frame image in the horizontal direction. As a result, in the subsequent processing, processing and management are performed for each horizontal block.
- the image data force of 640 pixels x 480 pixels is 10 horizontal directions having a width (division width) of 64 pixels in the horizontal direction. Bro Divided into hb0 to hb9. Note that the division width and the number of divisions shown in (a) of FIG. 13 are not essential.
- the image divided into 10 horizontal blocks hbO to hb9 by the horizontal image dividing unit 41 as shown in FIG. 13 (a) is the edge component extending in the horizontal direction in the horizontal edge extraction filtering unit 42.
- Filters used in this filtering process include a (1, 1) 2-tap filter that simply takes the difference between adjacent pixels in the vertical direction, and (—1, 2, — 1) equivalent to the second derivative.
- a 3-tap filter can be used. It is essential to use such a filter, as long as the output value rises in the image area where the luminance change is large in the vertical direction.
- the image data in which the horizontal edge is emphasized for each horizontal block (image region) hbO to hb 9 in the horizontal edge extraction filtering unit 42 is input to the horizontal block projection unit 43, and the horizontal block Projection unit 43 projects in the horizontal direction.
- This projection can reduce the noise component in the horizontal direction (between lines) and enhance the edge component in the horizontal direction, so that the horizontal edge corresponding to the feature point is highlighted to improve the motion vector detection accuracy. It will be possible to plan.
- the operation of the horizontal block projection unit 43 will be described with reference to the conceptual diagram of FIG.
- the horizontal block projection unit 43 when the input of one horizontal line of each horizontal block hbO to hb9 shown in (a) of Fig. 13 is completed, the horizontal block projection unit 43 has a data array Mh for one vertical line.
- Block projection data hnO to hn9 (1 array element of (b) in Fig. 13 is generated. Therefore, all array elements are arranged when the input of the final horizontal line of each horizontal block hbO to hb9 is Note that the data array Mh is an effective element in a 2-tap filter such as force (1, 1) that has array elements of the total number of pixels in the vertical line (for example, 480).
- a 3-tap filter such as 1 (for example, 479) or (1, 1, 2, 1), the effective element is the total number of pixels for the vertical line minus 2 (for example, 478).
- image data (image data subjected to horizontal edge emphasis) of each horizontal block hbO to hb9 input via the input terminal 431 force adder 432 is input.
- the adder 432 first, one horizontal label of the input horizontal block is displayed.
- the data in the horizontal projection temporary storage memory 433 is written into the horizontal projection temporary storage memory 433 without reading out the data.
- the adder 432 reads the addition result up to the previous pixel of one horizontal line stored in the horizontal projection temporary storage memory 433, and outputs one horizontal line of the horizontal block input from the input terminal 431. Is added to the current pixel, and the addition result is written back to the horizontal projection temporary storage memory 433.
- the projection data obtained by adding all the pixels of one horizontal line of the horizontal block in the adder 432 is stored in the horizontal projection temporary storage memory 433, and one horizontal line of the next horizontal block is stored.
- the projection data in the horizontal projection temporary storage memory 433 may be read out and output from the output terminal 434.
- the first horizontal block projection line memory 44 uses the horizontal block projection data of the current frame input from the horizontal block projection unit 43 as the first horizontal block projection data for each horizontal block. save.
- the first horizontal block projection data maximum value storage unit 45 calculates the maximum value for the projection data of the horizontal block input from the horizontal block projection unit 43, and the first horizontal block projection data maximum Save as a value (maximum horizontal block projection data for the current frame).
- the second horizontal block projection line memory 46 stores the horizontal block projection data read from the first horizontal block projection line memory 44 as the second horizontal block projection data for the previous frame. To do.
- the first horizontal direction Maximum block projection data maximum value storage unit 45 outputs the first horizontal block projection data maximum value from the second horizontal block projection data maximum value for the previous frame (horizontal block projection data maximum value for the previous frame). Saved as
- the horizontal block projection data maximum value of the current frame stored in the first horizontal block projection data maximum value storage unit 45 is the second horizontal block projection data in the next frame.
- the maximum value storage unit 47 stores the horizontal block projection data of the previous frame as the maximum value.
- the second horizontal block projection data maximum value storage unit 47 calculates the fourth threshold value based on the calculated horizontal block projection data maximum value of the previous frame. For example, if the maximum horizontal block projection data value for the previous frame is P4max, the fourth threshold a4 is calculated by the following equation (3).
- k4 is a predetermined coefficient, and 0 ⁇ k4 ⁇ 1.
- the calculation of the fourth threshold value ⁇ 4 is not limited to the above equation (3). If the maximum horizontal block projection data P4max of the previous frame increases, the fourth threshold value a4 increases. Any conversion table can be used. In addition, for the fourth threshold ⁇ 4, it is not necessary to use the second horizontal block projection data maximum value for each horizontal block. For example, the maximum horizontal block projection data for the entire image of the previous frame. The fourth threshold value may be calculated using the value, and the same fourth threshold value may be adopted for the entire image.
- the second horizontal block projection data maximum value storage unit 47 sets a third threshold (predetermined constant value) based on the second horizontal block projection data maximum value for the previous frame. For example, if the maximum horizontal block projection data value of the previous frame is P3max, the third threshold value a3 is calculated by the following equation (4).
- k3 is a predetermined coefficient, and 0 ⁇ k3 ⁇ 1.
- the calculation of the third threshold ⁇ 3 is not limited to the above equation (4). If the maximum horizontal block projection data value P3max of the previous frame increases, the third threshold oc 3 increases. Any conversion table can be used. For the third threshold ⁇ 3 It is not necessary to use the second horizontal block projection data maximum value for each horizontal block.For example, the third threshold value is calculated using the maximum horizontal block projection data value for the entire previous frame image. However, the same third threshold value may be adopted for the entire image.
- the third threshold intersection search unit 48 the second horizontal block projection data read from the second horizontal block projection line memory 46 and the second horizontal block projection data maximum value are obtained.
- the intersection with the third threshold (third threshold intersection) output from the storage unit 47 is searched in the vertical direction.
- Information on the third threshold intersection obtained by the third threshold intersection searching unit 48 is input to the horizontal block projection data reading unit 49 and the horizontal block vertical motion vector calculating unit 50.
- the horizontal direction block projection data reading unit 49 outputs the first frame of the current frame corresponding to the motion threshold detection range centered on the third threshold intersection output from the third threshold intersection search unit 48. Read the horizontal block projection data from the first horizontal block projection line memory 44.
- the range is ( ⁇ U) force centered on the third threshold intersection and (+ U) (where U is a positive integer)
- the projection data read from the first horizontal block projection line memory 44 is In the vertical direction
- the (B (i) -U) force is also partial data of the first horizontal block projection data in the range up to (B (i) + U).
- the first horizontal block projection data read from the first horizontal block projection line memory 44 by the horizontal block projection data reading unit 49 is sent to the horizontal block vertical motion vector calculation unit 50. Is output.
- the first horizontal block projection data output from the horizontal block projection data reading unit 49 is converted into an n-value converter via the input terminal 501 of the horizontal block vertical motion vector calculation unit 50 shown in FIG. 504 (compression means).
- the n-value converter 504 outputs the first horizontal direction based on the fourth threshold value output from the second horizontal block projection data maximum value storage unit 47 and input via the input terminal 502. Convert the projection data into n values.
- the n-value converter 504 is extracted by the horizontal block projection data reading unit 49.
- the data length of each array element in the data array Mh (Fig. 13 (b)) related to the projection data of the current frame is compressed.
- This n-valuer 504 is processed in the same manner as the above-described n-valuer 314! ⁇ For example, ternary processing is executed.
- the fourth threshold ⁇ 4 ( ⁇ 4> set based on the maximum value of the array elements of the data array Mh in the projection data of the previous frame is used. For (0), if the value of the array element for the projection data of the current frame extracted by the horizontal block projection data readout unit 49 is less than (1 ⁇ 4), (- ⁇ 4) or more and ⁇ 4 or less, And if the value is larger than ⁇ 4, the ternary value is calculated in three steps. It should be noted that the ⁇ -value calculator 504 does not necessarily have the same characteristics as the ⁇ -value calculator 314, and may have different characteristics from the ⁇ -value calculator 314.
- the third threshold intersection search unit 48 uses the second horizontal block projection data maximum in the waveform of the second vertical block projection data W4 related to the previous frame as shown in Fig. 14 (a). Third threshold value intersections B (1) to B (6) that intersect with the third threshold value a3 output from the value storage unit 47 are obtained.
- the third threshold value intersection search unit 48 relates to the projection data obtained by the horizontal block projection unit 43 with respect to the previous frame, and includes elements of the projection data array Mh ((b) in Fig. 13).
- the horizontal block projection data reading unit 49 performs a predetermined motion vector detection range centered on each of the third threshold intersections B (1) to B (6) shown in (a) of Fig. 14.
- the horizontal block projection data of the current frame is read from the first horizontal block projection line memory 44.
- the horizontal block projection data reading unit 49 generates a horizontal block projection of a predetermined range of data array centered on the position of the array element of the projection data (data array) at each third threshold intersection. Extracted from the projection data of the current frame (back frame) obtained in part 43.
- the third threshold intersection B (4) as shown in Fig. 14 (b), the (B (4) -U) force (B (4) + U) around the third threshold intersection B (4) )
- the first horizontal block projection data W3 corresponding to the range up to (the waveform portion within the rectangular broken line) is read out.
- the first horizontal block projection data read out by the horizontal block projection data reading unit 49 is the second horizontal block projection data maximum value storage unit 47.
- the output fourth threshold value ⁇ 4 is used, and n-value processing is performed by the n-value unit 504 of the horizontal block vertical motion vector calculation unit 50.
- n-value processing as shown in (c) of FIG. 14 is performed for all the third threshold intersections output from the third threshold intersection search unit 48.
- the third threshold value intersection search unit 48 output power is also output via input terminal 503.
- the first horizontal block projection data converted into the first horizontal block projection data added to the previous n values read from the vertical motion vector addition memory 506 are added together. Then, the addition result is stored in the vertical motion vector addition memory 506 again.
- the first horizontal block projection data that has been n-valued for the last one of all the third threshold intersections detected by the third threshold intersection search unit 48 is added by the adder 505.
- the addition result is output to the peak detector 507.
- the peak detector 507 includes a motion threshold detection range centered on each third threshold value intersection for all the third threshold value intersections detected by the third threshold value intersection search unit 48 (described above). This is the force to which the data (hereinafter also referred to as “horizontal block n-value ⁇ data”) that is the sum of the first horizontal block projection data with n-values corresponding to ( ⁇ U range) is input.
- the peak detector 507 detects a peak value related to the n-valued data.
- the peak position of the horizontal block n value ⁇ data detected by this peak detector 507 becomes the vertical motion vector obtained by the horizontal block force, and the vertical motion determination unit via the output terminal 5008 Output to 51.
- the peak detector 507 When the horizontal block n-value ⁇ data generated by the adder 505 is input to the peak detector 507, the vertical motion vector shown in Fig. 15 (b) is displayed as the vertical motion vector of the horizontal block. A direction peak position w is detected. That is, the peak detector 507 detects a motion vector in the vertical direction of the frame image based on the addition result added by the adder 505.
- this peak detector 507 is within the motion vector detection range ( ⁇ U range).
- the peak position with the maximum value is searched, but if there are multiple identical maximum values, priority is given to the one close to the origin 0 (or the negative position if the distance to the origin 0 is equal).
- the maximum value at the positive position may be prioritized, and the motion vector tendency in the previous frame is used for detection of the peak position in the current frame. May be.
- the vertical motion vector (peak value) calculated for each horizontal block by the peak detector 507 is sequentially input to the vertical motion vector determination unit 51 via the output terminal 508.
- the vertical motion vector determination unit 51 determines the vertical motion vector of the entire image based on the vertical motion vector of each horizontal block sequentially output from the horizontal block vertical motion vector calculation unit 50.
- the vertical motion vector determination unit 51 determines, for example, the vertical motion vector having the highest appearance frequency as the vertical motion vector of the entire image.
- Horizontal block vertical motion vector calculation unit 50 The average value of the vertical motion vectors of may be determined as the vertical motion vector of the entire image.
- the vertical motion vector determination unit 51 determines the vertical motion vector for the entire frame image based on the vertical motion vector of each horizontal block, motion is performed on a part of the image. Even if there is, there will be no false reaction to the movement.
- the vertical block projection data is generated by projecting in the vertical direction for each vertical block in which the vertical edge is emphasized, and the vertical frame of the previous frame is generated. Intersection of direction block projection data and first threshold ⁇ 1 The vertical frame projection data of the current frame corresponding to the movement range detection center around the point (first threshold intersection) is read and added for each distance of each first threshold intersection force. Force Since the motion vector in the horizontal direction is detected, the motion of the vertical edge of the image corresponding to the feature point can be tracked with a small amount of computation.
- horizontal block projection data is generated by projecting in the horizontal direction for each horizontal block with emphasized horizontal edges, and the horizontal block projection data and the third threshold value of the previous frame are generated.
- the bit number reduction unit 25 of the motion vector detection device 1 uses the maximum value of the vertical block projection data of the current frame calculated by the first vertical block projection data maximum value storage unit 24. Since the number of bits in the vertical block projection data of the frame is reduced, the amount of computation in the subsequent processing can be suppressed, and motion vectors can be detected more quickly.
- the motion vector detection device 1 calculates the second vertical block projection data maximum value for the previous frame and sets the first threshold value ⁇ 1 based on this maximum value, an appropriate first value is set. A threshold intersection can be set. Similarly, since the second horizontal block projection data maximum value for the previous frame is obtained and the third threshold value oc3 is set based on this maximum value, an appropriate third threshold value intersection can be set.
- the vertical image dividing unit 21 divides the frame image in the vertical direction, and then emphasizes the edge in the vertical direction for each divided image (vertical block). A divided image with emphasized vertical edges can be easily generated. Similarly, after the frame image is divided in the horizontal direction by the horizontal image dividing unit 41, the horizontal edge is emphasized for each divided image (horizontal block). It can be generated easily.
- the n-value generator 314 of the vertical block horizontal motion vector calculation unit 31 converts the projection data read by the vertical block projection data reading unit 30 into n-values. Subsequent calculations can be reduced, and motion vectors can be detected more quickly.
- the n-value converter 314 since the n-value converter 314 performs ternary processing based on the second threshold value oc 2 set based on the maximum value of the vertical block projection data of the current frame, it ensures a relatively large dynamic range. However, motion vector detection capable of real-time processing can be realized. Also, the memory can be greatly reduced.
- the n-value generator 504 of the horizontal block vertical motion vector calculation unit 50 performs n-value conversion on the projection data read by the horizontal block projection data reading unit 49, and so on.
- the amount of calculation can be reduced, and motion vectors can be detected more quickly.
- the n-value converter 504 sets an appropriate fourth threshold ⁇ 4 in order to calculate a three-value based on the fourth threshold ⁇ 4 based on the maximum value of the horizontal block projection data of the previous frame.
- motion vector detection capable of real-time processing without greatly degrading the dynamic range.
- the memory can be greatly reduced.
- the motion vector detection device 1 A according to the second embodiment of the present invention has a force similar to that of the motion vector detection device 1 according to the first embodiment.
- the vertical motion vector detection unit are different in configuration.
- the configurations of the horizontal direction motion vector detection unit 2A and the vertical direction motion vector detection unit 4A in the motion vector detection device 1A will be described with reference to FIGS.
- FIG. 16 is a block diagram showing a main configuration of the horizontal direction motion vector detection unit 2A.
- parts having the same functions as those of the horizontal motion vector detection unit 2 described in the first embodiment are denoted by the same reference numerals, and redundant description is omitted.
- the edge enhancement unit of the horizontal direction motion vector detection unit 2A the vertical direction image segmentation unit 21, the vertical direction edge extraction filtering unit 22, and the edge enhancement unit of the horizontal direction motion vector detection unit 2 of Embodiment 1
- the arrangement of is reversed.
- the extraction filtering unit 22 performs extraction processing for extracting edge components extending in the vertical direction, in other words, enhancing an image portion that changes sharply in the horizontal direction.
- the vertical image dividing unit 21 sets a plurality of image regions (vertical blocks) obtained by dividing the frame image subjected to edge enhancement in the vertical direction. As a result, in the subsequent processing, processing and management are performed for each vertical block.
- the image data divided by the vertical image dividing unit 21 is input to the vertical block projecting unit 23.
- the processing after the vertical block projecting unit 23 is the horizontal motion vector of the first embodiment. Processing similar to that of the detection unit 2 is performed.
- FIG. 17 is a block diagram showing the main configuration of the vertical motion vector detection unit 4A.
- parts having the same functions as those in the vertical direction motion vector detection unit 4 described in the first embodiment are denoted by the same reference numerals, and redundant description is omitted.
- edge enhancement unit of the vertical direction motion vector detection unit 4A the horizontal image segmentation unit 41, the horizontal direction edge extraction filtering unit 42, and the edge enhancement unit of the vertical direction motion vector detection unit 4 of Embodiment 1
- the arrangement of is reversed.
- the operation of the vertical motion vector detection unit 4A will be described.
- a horizontal edge As shown in Fig. 2, when a frame image read by repeating pixel scanning of a horizontal line in order in the vertical direction is input to the input terminal 40 of the vertical motion vector detection unit 4A, a horizontal edge
- the extraction filtering unit 42 performs extraction of edge components extending in the horizontal direction, in other words, filtering processing that emphasizes an image portion that changes sharply in the vertical direction.
- the horizontal image dividing unit 41 sets a plurality of image regions (horizontal blocks) obtained by dividing the frame image subjected to edge enhancement in the horizontal direction. Therefore, in the subsequent processing, processing and management are performed for each horizontal block.
- the image data divided by the horizontal image dividing unit 41 is input to the horizontal block projecting unit 43.
- the processing after the horizontal block projecting unit 43 is the vertical direction motion vector of the first embodiment. Processing similar to that of the detection unit 4 is performed.
- the vertical edge extraction filtering unit 22 emphasizes the edge in the vertical direction with respect to the frame image, and then the edge-enhanced frame image is vertically converted to the vertical image dividing unit 21. Since the image is divided in the direction, a divided image in which the edge in the vertical direction is emphasized can be easily generated.
- the horizontal image dividing unit 41 divides the edge-enhanced frame image in the horizontal direction. Split images with enhanced edges can be easily generated.
- the vertical direction edge extraction filtering unit 22 and the horizontal direction edge extraction filtering unit 42 are separately arranged in the horizontal direction motion vector detection unit 2A and the vertical direction motion vector detection unit 4A.
- the vertical edge extraction filtering unit 22 and the horizontal edge extraction filtering unit 42 are both provided with a horizontal Z vertical edge extraction filtering unit that integrates the functions of the vertical edge extraction filtering unit 22 and the output of the vertical image segmentation unit 21. Alternatively, it may be input to each of the horizontal image dividing unit 41.
- the motion vector detection device 1B according to the third embodiment of the present invention has a force similar to that of the motion vector detection device 1 according to the first embodiment.
- the configurations of the motion vector detection unit and the vertical direction motion vector detection unit are different.
- FIG. 18 is a block diagram showing a main configuration of the horizontal direction motion vector detection unit 2B.
- parts having the same functions as those in the horizontal motion vector detection unit 2 described in the first embodiment are denoted by the same reference numerals, and redundant description is omitted.
- the horizontal motion vector detection unit 2B includes an input terminal 20, a vertical image segmentation unit 21, a vertical edge extraction filtering unit 22, a vertical block projection unit 23, and a first vertical block projection.
- a maximum data storage unit 24, a bit number reduction unit 25, and a first vertical block projection line memory 26 are provided.
- the horizontal motion vector detection unit 2 includes a second vertical block projection line memory 27, a second vertical block projection data maximum value storage unit 28, a first threshold intersection search unit 29, and a vertical direction.
- a block projection data reading unit 30, a vertical block horizontal motion vector calculation unit 310, a horizontal motion vector determination unit 320, and an output terminal 33 are provided.
- Horizontal motion vector detection unit 2B In the horizontal motion vector detection unit 2B described above, the functional power of the vertical block horizontal motion vector calculation unit 310 and the horizontal motion vector determination unit 320 is implemented. Horizontal motion vector detection unit 2 according to Embodiment 1 This is different from the vertical block horizontal motion vector calculation unit 31 and the horizontal motion vector determination unit 32.
- the vertical block horizontal motion vector calculation unit 310 uses the second threshold value output from the first vertical block projection data maximum value storage unit 24, and uses the vertical block projection data read unit 30.
- Each of the first vertical block projection data read out in step n is converted into n values (n is an integer of 2 or more) to reduce the number of bits, and the n converted projection data from the first threshold intersection Add for each distance.
- the peak position (horizontal motion vector described later) and peak value information in the addition data are provided to the horizontal motion vector determination unit 320.
- the horizontal direction motion vector determination unit 320 determines the horizontal direction motion vector of the image based on the output from the vertical direction block horizontal direction motion vector calculation unit 31.
- the horizontal motion vector of the image determined here is output from the output terminal 33.
- Horizontal The direction motion vector determination unit 320 outputs the first vertical block projection data maximum value and the first threshold intersection search unit 29 stored in the first vertical block projection data maximum value storage unit 24. It is configured to receive information on the threshold crossing 1 and use it for processing that increases the reliability of the horizontal motion vector. The specific operation will be described later in detail.
- FIG. 19 is a block diagram showing the main configuration of the vertical block horizontal motion vector calculation unit 310.
- the vertical block horizontal motion vector calculation unit 310 includes three input terminals 311 to 313, an n-value converter 314, and a first vertical block projection that is n-valued by the n-value generator 314.
- An adder 315 for adding data, a horizontal motion vector addition memory 316 as a buffer memory for sequentially storing the data added by the adder 315, a peak detector 3170, and output terminals 318 and 319 are provided. ing.
- the first vertical block projection data output from the vertical block projection data reading unit 30 is input to the input terminal 311.
- the first vertical block projection data maximum value is input to the input terminal 312.
- the second threshold value output from the storage unit 24 is input.
- the input terminal 313 receives information about the first threshold value intersection output from the first threshold value intersection search unit 29.
- the n-value converter 314 converts the first vertical block projection data input from the input terminal 311 into an n-value key (for example, ternarization based on the second threshold value input from the input terminal 312). )
- the adder 315 converts the first vertical block projection data n-valued by the n-value generator 314 and the data read from the horizontal motion vector addition memory 316 into a first threshold intersection. The result of the addition is stored in the horizontal motion vector addition memory 316 again. When the addition for all the first threshold intersections related to the vertical block is completed by repeating such an addition operation, the addition data related to the vertical block is output to the peak detector 3170.
- the peak detector 3170 is a peak position in the addition data output from the adder 315.
- the peak position detected by the peak detector 3170 is output via the output terminal 318 to the horizontal direction motion vector determination unit 320.
- the peak value is manually input to the horizontal direction motion vector determination unit 320 via the output terminal 319.
- FIG. 20 is a block diagram showing the main configuration of the vertical motion vector detection unit 4B.
- the vertical motion vector detection unit 4B includes an input terminal 40, a horizontal image segmentation unit 41, a horizontal edge extraction filtering unit 42, a horizontal block projection unit 43, and a first horizontal block projection.
- a line memory 44 and a first horizontal block projection data maximum value storage unit 45 are provided.
- the vertical motion vector detection unit 4 includes a second horizontal block projection line memory 46, a second horizontal block projection data maximum value storage unit 47, a third threshold intersection search unit 48, A direction block projection data reading unit 49, a horizontal block vertical direction motion vector calculation unit 500, a vertical direction motion vector determination unit 510, and an output terminal 52 are provided.
- the functional power of the horizontal block vertical motion vector calculation unit 500 and the vertical motion vector determination unit 510 is implemented.
- Vertical motion vector detection unit 4 according to Embodiment 1 This is different from the horizontal block vertical motion vector calculator 50 and the vertical motion vector determiner 51.
- the horizontal block vertical motion vector calculation unit 500 uses the fourth threshold value output from the second horizontal block projection data maximum value storage unit 47, and uses the horizontal block projection data read unit 49.
- Each of the first horizontal block projection data read out in step 1 is converted to n values (n is an integer of 2 or more) to reduce the number of bits, and the n-valued projection data is converted from the third threshold intersection. Add for each distance. Then, the peak position information (vertical direction motion vector described later) and peak value information in the addition data are provided to the vertical direction motion vector determination unit 510.
- the vertical motion vector determination unit 510 determines the vertical motion vector of the image based on the output from the horizontal block vertical motion vector calculation unit 500.
- the vertical motion vector of the image determined here is output from the output terminal 52.
- the vertical motion vector determination unit 510 uses the first horizontal block projection data maximum value and the third threshold intersection stored in the first horizontal block projection data maximum value storage unit 45. The configuration is such that it receives information on the third threshold intersection output from the search unit 48 and uses it for processing to increase the reliability of the vertical motion vector. The specific operation will be described later in detail.
- FIG. 21 is a block diagram showing the main configuration of the horizontal block vertical motion vector calculation unit 500.
- the horizontal block vertical motion vector calculation unit 500 includes three input terminals 501 to 503, an n-value converter 504, and a first horizontal block projection obtained by n-value conversion by the n-value converter 504.
- An adder 505 for adding data a vertical motion vector addition memory 506 as a buffer memory for sequentially storing the data added by the adder 505, a peak detector 5070, and output terminals 508 and 509 /!
- the first horizontal block projection data output from the horizontal block projection data reading unit 49 is input to the input terminal 501 and the second horizontal block projection data maximum value is input to the input terminal 502.
- the fourth threshold value output from the storage unit 47 is input.
- information on the third threshold value intersection output from the third threshold value intersection search unit 48 is input to the input terminal 503.
- the n-value quantizer 504 converts the first horizontal block projection data input from the input terminal 501 into an n-value key (for example, a ternary value) based on the fourth threshold value input from the input terminal 502. )
- the adder 505 outputs the first horizontal block projection data n-valued by the n-value generator 504 and the data read from the vertical motion vector addition memory 506 to the third threshold intersection.
- the result of addition is stored in the vertical motion vector addition memory 506 again.
- the addition data for the horizontal block is output to the peak detector 5070.
- the peak detector 5070 is the peak position in the sum data output from the adder 505.
- the peak position detected by the peak detector 507 is input to the vertical motion vector determination unit 510 via the output terminal 508, and the peak value is manually input to the horizontal motion vector determination unit 510 via the output terminal 509. It will be. [0226] The operation of the motion vector detection device IB having the above configuration will be described below.
- the operation of the horizontal direction motion vector detection unit 2B is basically the same as the operation of the horizontal direction motion vector detection unit 2 described in Embodiment 1, and a duplicate description is omitted.
- the operation of the vertical block horizontal motion vector calculation unit 310 and the horizontal direction motion vector determination unit 320 will be mainly described.
- first threshold intersection search unit 29 the second vertical block projection data read from the second vertical block projection line memory 27 and the second vertical block projection data maximum value The intersection with the first threshold output from the storage unit 28 (first threshold intersection) is searched for in the horizontal direction.
- the information on the first threshold intersection obtained by the first threshold intersection searching unit 29 is sent to the vertical block projection data reading unit 30, the vertical block horizontal motion vector calculating unit 310, and the horizontal motion vector determining unit 320. Is output.
- the vertical direction block projection data reading unit 30 outputs the first frame of the current frame corresponding to the motion vector detection range centered on the first threshold intersection output from the first threshold intersection search unit 29.
- the motion vector detection range is the first threshold.
- the projection data read from the first vertical block projection line memory 26 is (A (i) — V) Force (A (i) + V) This is the partial data of the first vertical block projection data in the range.
- the first vertical block projection data read from the first vertical block projection line memory 26 by the vertical block projection data reading unit 30 is sent to the vertical block horizontal motion vector calculation unit 310. Is output.
- the first vertical block projection data output from the vertical block projection data reading unit 30 is converted into n values via the input terminal 311 of the vertical block horizontal motion vector calculation unit 310 shown in FIG. Input to the device 314. Since the processing of the n-value converter 314 has already been described with reference to FIG.
- the first threshold value intersection output from first threshold value intersection search unit 29 via input terminal 313 is used as an n-value by n-value converter 314.
- the first vertical block projection data and the addition value of the first n-valued vertical block projection data read from the horizontal motion vector addition memory 316 up to the previous one are added.
- the addition result is stored again in the horizontal motion vector addition memory 316.
- the n-valued first vertical block projection data regarding the last one of all the first threshold intersections detected by the first threshold intersection search unit 29 is added by the adder 315 to obtain one
- the addition result is output to the peak detector 3170. Note that after the addition processing in the adder 315 is completed, the addition results regarding all the first threshold intersections are stored, and the peak detection unit 3170 reads out the addition results from the horizontal motion vector addition memory 316. May be.
- the peak detector 3170 includes a motion threshold detection range centered on each first threshold intersection for all the first threshold intersections detected by the first threshold intersection search unit 29 (the above-mentioned (The range of V) is the force to which the data obtained by adding the n-valued first vertical block projection data (hereinafter also referred to as “vertical block n value ⁇ data”) is input.
- This vertical block n The peak value related to the digitized data is detected by the peak detector 3170.
- the peak position of the vertical block n-value ⁇ data detected by the peak detector 3170 becomes the horizontal motion vector obtained from the vertical block force, and is output to the horizontal motion vector determination unit 320 via the output terminal 318. Is output.
- the peak value at that time is output from the output terminal 319.
- the peak value of the added data obtained by adding and adding the horizontal motion vector (peak position) calculated for each vertical block by the peak detector 3170 and the n value of the vertical block. , Also referred to as “vertical direction block n-valued calorie calculation data peak value”) is input to the horizontal direction motion vector determination unit 320 via output terminals 318 and 319, respectively, and the vertical direction block n-valued addition data peak value is input. Is used to determine whether the vertical block is valid Z invalid.
- the horizontal direction motion vector of the entire image is based on the horizontal direction motion vector of each vertical block sequentially output from the vertical direction block horizontal direction motion vector calculation unit 310. Is determined.
- the calculated vertical motion vector determined as an invalid block is not used when determining the horizontal motion vector of the entire image.
- FIG. 22 is a diagram for explaining a method for determining valid Z invalidity of each vertical block by using the first vertical block projection data maximum value.
- FIG. 22 the image data of 640 pixels x 480 pixels shown in Fig. 9 (a) is taken as an example, and seven vertical blocks having a width (division width) of 64 pixels in the vertical direction are taken. The case of dividing into vb0 to vb6 is shown.
- the first vertical block projection data maximum value of each vertical block output from the first vertical block projection data maximum value storage unit 24 (FIG. 18) is shown. Each block is shown in hexadecimal notation.
- the medium force of the vertical block projection data maximum value of 1 is also determined as the maximum value in all blocks.
- the vertical block vb2 has the maximum value in all blocks, and this value is referred to as the total vertical block projection data maximum value.
- the horizontal direction motion vector determination unit 320 determines, as an invalid block, a vertical direction block having a maximum value of 1Z4 or less with respect to the maximum value of all vertical block projection data, for example.
- vertical blocks vbO, vbl, and vb6 are half-IJ disconnected from the invalid block.
- FIG. 23 is a diagram schematically illustrating determination of valid Z invalidity of a vertical block.
- a vertical block that is determined to be an invalid block can be said to have a small pattern (there are few clear parts) or a very fine pattern as a result. On the other hand, it can be judged that the reliability is low. Therefore, the reliability of the horizontal motion vector can be improved by not using the vertical block determined to be an invalid block for determining the horizontal motion vector of the entire image.
- the force described as the effective Z invalidity judgment condition being 1Z4 or less of the maximum value of all vertical block projection data, this is not limited to this. It may be 1Z8 or less. In this way, by setting the determination condition lZ2 n , it is possible to easily determine whether it is valid or invalid.
- FIG. 24 is a diagram for explaining a method of determining valid Z invalidity of each vertical block using the vertical block n-valued addition data peak value.
- the image data of 640 pixels ⁇ 480 pixels shown in (a) of FIG. 9 is taken as an example, and seven vertical blocks each having a width of 64 pixels (divided width) in the vertical direction. Minutes from vb0 to vb6 This shows the case of splitting.
- the vertical block n-valued addition data peak value of each vertical block output from the vertical block horizontal motion vector calculation unit 310 is 16 for each block. Shown in decimal notation.
- the horizontal direction motion vector determination unit 320 obtains the maximum value of the medium force of the vertical direction block n-valued addition data peak value in each of the vertical direction blocks vb0 to vb6.
- the vertical block vb4 has the maximum value, and this value is referred to as the maximum value of the vertical block n-valued addition data peak value.
- the vertical direction block n value A vertical block whose normalized data is less than a specified value B (for example, 7 in decimal notation) is determined as an invalid block.
- the vertical blocks vbO, vbl, vb5 and vb6 are determined as invalid blocks.
- the output of the adder 315 (Fig. 19) of the vertical block horizontal motion vector calculation unit 310 (Fig. 18) is the first n-valued with the second threshold value around the first threshold intersection.
- the vertical block projection data is added, and the larger the number of first threshold crossings and the larger the amplitude (mountain) exceeding the second threshold (2) on the positive side, the larger the value. Conversely, if there is an amplitude that exceeds the negative second threshold (-a2), it will be canceled.
- the maximum value of the output of the adder 315 that is, the vertical block n- valued sum data peak value of a certain vertical block is equal to or greater than the predetermined value A, while the other vertical blocks
- the vertical block n-valued addition data peak value is less than or equal to the predetermined value B, it can be said that the other vertical block has a pattern in which the addition result is canceled or a pattern with fewer features and less amplitude.
- FIG. 25 is a diagram schematically illustrating determination of valid Z invalidity of a vertical block.
- the horizontal axis is the maximum value of the vertical blocks n-valued added data peak value and the vertical axis represents the graph with the vertical block n-valued added data peak value, vertical blocks n value conversion
- the maximum value of the added data peak value is equal to or greater than the predetermined value A
- an operation for determining a vertical block whose vertical block n-valued added data is equal to or smaller than the predetermined value B as an invalid block is shown.
- the maximum value of the vertical block n-valued addition data peak value is smaller than the predetermined value A.
- the vertical block n-valued addition data peak value is equal to or less than the predetermined value B. It also shows that even if there is another block, the block is not judged as an invalid block.
- the effective Z / invalidity determination condition is a force indicating an example in which the predetermined value A is 12 and the predetermined value B is 7.
- the number of horizontal pixels of the image is not limited to this. For example, if the number of pixels in the horizontal direction is 640 pixels, the predetermined value A can be set to a value of about 10 and the predetermined value B can be set to a value about half of that.
- FIG. 26 is a diagram for explaining a method of determining the effective Z invalidity of each vertical block using the number of first threshold intersections.
- Fig. 26 the image data of 640 pixels x 480 pixels shown in (a) of Fig. 9 is taken as an example, and seven vertical blocks having a width (division width) of 64 pixels in the vertical direction are taken as an example. The case of dividing into vb0 to vb6 is shown.
- FIG. 26 the number of first threshold intersections output from the first threshold intersection searching unit 29 (FIG. 18) is shown in hexadecimal notation for each block.
- the waveform of the second vertical block projection data related to the previous frame stored in the second vertical block projection line memory 27 and the second vertical block projection data are stored.
- Information on the first threshold intersection at which the first threshold calculated by the direction block projection data maximum value storage unit 28 intersects is output. This information also includes information on the number of first threshold intersections. As shown in FIG. 26, the number of first threshold intersections is obtained for each of the vertical blocks vb0 to vb6.
- FIG. 27 is a diagram schematically illustrating determination of valid Z invalidity of a vertical block.
- the horizontal axis represents the maximum number of first threshold intersections in each of the vertical blocks vb0 to vb6, and the vertical axis represents the number of first threshold intersections.
- the number of first threshold intersections in the vertical blocks vb0 to vb6 is equal to or less than the number of first threshold intersections for blocks having a predetermined value D (for example, 3 in decimal notation) or less. Regardless of the maximum value, it is determined as an invalid block.
- the vertical blocks vbO and vb6 are determined to be invalid blocks.
- the reliability of the horizontal motion vector can be improved by not using the vertical block determined to be an invalid block for determining the horizontal motion vector of the entire image.
- the number of first threshold intersections is at least equal to or less than the number of pixels in the horizontal direction, and if the number is too large compared to the number of pixels in the horizontal direction, a very periodic pattern is captured. Therefore, for example, when the value is equal to or greater than a predetermined value E (for example, more than half of the number of pixels in the horizontal direction), the block may be determined as an invalid block.
- a predetermined value E for example, more than half of the number of pixels in the horizontal direction
- a block having a predetermined value D or less is determined as an invalid block. It may be configured to do so. In this case, if the maximum value of the number of first threshold intersections is smaller than the predetermined value, even if there is a block with a predetermined value D or less, the block is not judged as an invalid block and is invalid.
- the block criteria can be set more carefully.
- the method of determining the valid Z invalidity of each vertical block the vertical block n-valued sum data peak value is used.
- the invalid block is determined and the invalid block is determined. It is possible to improve the reliability of the motion vector by not using the calculated horizontal motion vector when determining the horizontal motion vector of the entire image.
- the effective Z invalidity is determined using the first vertical block projection data maximum value, and the effective Z invalidity of each vertical block is determined using the vertical block n-valued addition data peak value.
- the effective Z invalidity is determined using the first vertical block projection data maximum value, and the effective Z invalidity of each vertical block is determined using the first threshold intersection information. Also good! ,.
- the horizontal motion vector determination unit 320 determines the effective Z invalidity of the vertical block, and the horizontal motion vector force of the vertical block determined to be an effective block is also the horizontal motion vector of the entire image. To decide.
- FIG. 29 An example of a method for determining the horizontal motion vector of the entire image will be described with reference to FIGS. 29 and 30.
- FIG. 29 An example of a method for determining the horizontal motion vector of the entire image will be described with reference to FIGS. 29 and 30.
- 29 and 30 show the case where the detection range of the horizontal motion vector is V to V.
- V the case where V is 31 is shown as an example, and from 31 to 31 1 vector interval is displayed. It should be noted that the numbers displayed in the boxes provided for the respective vectors represent the number of vertical blocks having the same vector.
- the horizontal motion vector 6 is calculated with two vertical blocks. Force All other vertical blocks have disjoint horizontal motion vectors. The minimum value of the distribution range is 14, and the maximum value is 27. The difference 41 is the motion vector detection range. It can be said that there is a great variation.
- the sand corresponding to the horizontal motion vector obtained from each vertical block in the current frame is hatched! /.
- the horizontal direction motion vector determination unit 320 the difference between the maximum value and the minimum value of the horizontal direction motion vector distribution range obtained from each vertical block is greater than or equal to a predetermined threshold B (for example, V described above).
- a predetermined threshold B for example, V described above.
- the number of vertical blocks having the horizontal motion vector 6 is a predetermined numerical value.
- the numerical value A and the threshold value B are not limited to the above-described values. Further, the determination of the fluctuation is not limited to the above-described difference between the maximum value and the minimum value of the horizontal motion vector, and the standard deviation is used. May be judged to be large.
- the horizontal motion vector of the current frame is calculated by the following procedure.
- the outline is the closest to the horizontal motion vector of the previous frame, and the horizontal motion vector is the horizontal motion vector of the current frame. It is what.
- the horizontal direction motion vector determination unit 320 also calculates each vertical direction block block. The determined horizontal motion vector is determined to be reliable.
- the horizontal motion vector 5 is the horizontal motion vector of the previous frame
- the horizontal motion vector obtained from each vertical block of the current frame closest to this is the horizontal motion vector.
- Directional motion vector 6. Accordingly, the horizontal motion vector 6 is determined as the horizontal motion vector of the current frame.
- the sand corresponding to the horizontal motion vector obtained for each vertical block force in the current frame is hatched
- the block corresponding to the horizontal motion vector of the previous frame is hatched. Attached.
- the horizontal motion vector 8 becomes the horizontal motion vector of the current frame.
- the average that is, the horizontal motion vector of the previous frame itself is used as the horizontal motion vector of the current frame. I'll do it.
- the information on the horizontal motion vector of the previous frame is stored in a predetermined storage unit (previous frame horizontal motion vector storage means) provided in the horizontal motion vector decision unit 320. It is configured to read as needed.
- a predetermined storage unit previously frame horizontal motion vector storage means
- the low-reliability V and vertical blocks are excluded by the operation of determining whether the vertical blocks are valid or invalid, and the high-reliability is calculated based on the vertical blocks.
- the reliability of the horizontal motion vector of the entire image is evaluated in consideration of variations in the horizontal motion vector that is output, and even if it is determined to be reliable, by considering the horizontal motion vector of the previous frame, A little uncomfortable with movement from the previous frame A horizontal motion vector can be determined.
- the operation of the vertical motion vector detection unit 4B is basically the same as the operation of the vertical motion vector detection unit 4 described in Embodiment 1, and a duplicate description is omitted.
- the operations of the horizontal block vertical motion vector calculation unit 500 and the vertical direction motion vector determination unit 510 will be mainly described.
- the third threshold intersection search unit 48 the second horizontal block projection data read from the second horizontal block projection line memory 46 and the second horizontal block projection data maximum value are obtained.
- the intersection with the third threshold (third threshold intersection) output from the storage unit 47 is searched in the vertical direction.
- the information on the third threshold intersection obtained by the third threshold intersection searching unit 48 is sent to the horizontal block projection data reading unit 49, the horizontal block vertical motion vector calculating unit 500, and the vertical motion vector determining unit 510. Is output.
- the horizontal block projection data reading unit 49 outputs the first frame of the current frame corresponding to the motion threshold detection range centered on the third threshold intersection output from the third threshold intersection searching unit 48.
- the horizontal block projection data is read from the first horizontal block projection line memory 44.
- the projection data read from the first horizontal block projection line memory 44 is (B
- the (i) —U) force is also partial data of the first horizontal block projection data in the range up to (B (i) + U).
- the first horizontal block projection data read from the first horizontal block projection line memory 44 by the horizontal block projection data reading unit 49 is sent to the horizontal block vertical motion vector calculation unit 500. Is output.
- the first horizontal block projection data output from the horizontal block projection data readout unit 49 is input to the horizontal block vertical motion vector calculation unit 500 shown in FIG. It is input to the n-value converter 504 via the power terminal 501. Since the processing of the n-value converter 504 has been described with reference to FIG. 10, the description thereof is omitted.
- the third threshold intersection searching unit 48, the horizontal block projection data reading unit 49, and the horizontal block vertical motion vector calculation unit 500 (basically the same as the horizontal block vertical motion vector calculation unit 50) The operation of) has already been described with reference to FIG.
- the third threshold value intersection search unit 48 output power via input terminal 503 is used as the center, and n value generator 504 outputs n value.
- the first horizontal block projection data converted into the first horizontal block projection data added to the previous n values read from the vertical motion vector addition memory 506 are added together. Then, the addition result is stored in the vertical motion vector addition memory 506 again.
- the adder 505 adds the n-valued first horizontal block projection data for the last one of all the third threshold intersections detected by the third threshold intersection search unit 48 to add 1
- the summing result is output to the peak detector 5070.
- the peak detection unit 5070 reads out the addition result from the vertical motion vector addition memory 506 storing the addition results regarding all the third threshold intersections. Also good.
- the peak detector 5070 includes a motion threshold detection range centered on each third threshold intersection for all the third threshold intersections detected by the third threshold intersection search unit 48 ( ⁇ Force that receives the data obtained by adding the n-valued first horizontal block projection data corresponding to (range U) (hereinafter also referred to as “horizontal block n value ⁇ data”).
- This horizontal block n The peak value for the value key is detected by the peak detector 5070.
- the peak position of the horizontal block n value ⁇ data detected by this peak detector 5070 becomes the vertical motion vector obtained from the horizontal block force, and is output to the vertical motion determination unit 510 via the output terminal 508. Is done. Similarly, the peak value at that time is output from the output terminal 509.
- the specific operations of the adder 505 and the peak detection unit 5070 are described with reference to FIG. 15, and the adder 505 of the horizontal block vertical motion vector calculation unit 50 described above is used.
- the force is the same as that of the peak detector 507 and the description is omitted.
- the vertical motion vector (peak position) calculated for each horizontal block by the peak detector 507 and the added data obtained by adding the n-valued horizontal block The peak value (hereinafter also referred to as “horizontal block n-valued addition data peak value”) is input to the vertical motion vector determination unit 510 via the output terminals 508 and 509, respectively, and the horizontal block n-value addition is performed.
- the data peak value is used for valid Z invalidity judgment of the horizontal block.
- the vertical direction of the entire image is determined based on the vertical direction motion vector of each horizontal block sequentially output from the horizontal direction block vertical direction motion vector calculation unit 500. A motion vector is determined.
- the vertical direction motion vector determination unit 510 the first horizontal block projection data maximum value output from the first horizontal direction block projection data maximum value storage unit 45, the horizontal direction block vertical motion Horizontal block n value output from vector calculation unit 500 ⁇
- Addition data peak value and third threshold intersection search unit 48 output from third threshold intersection information Valid Z block invalid for each horizontal block Determine.
- the vertical motion vector calculated as the horizontal block force determined to be an invalid block is not used when determining the vertical motion vector of the entire image.
- FIG. 31 is a diagram for explaining a method of determining valid Z invalidity of each horizontal block using the first horizontal block projection data maximum value.
- FIG. 31 the image data of 640 pixels x 480 pixels shown in (a) of Fig. 13 is taken as an example, and 10 horizontal directions having a width (divided width) of 64 pixels in the horizontal direction. This shows the case where the block is divided into hbO to hb9.
- FIG. 31 the first horizontal block projection data maximum value of each horizontal block output from the first horizontal block projection data maximum value storage unit 45 (FIG. 20) is shown as Each block is shown in hexadecimal notation.
- the horizontal direction blocks hbO to hb9 The medium force of the horizontal block projection data maximum value of 1 is also determined as the maximum value in all blocks.
- the horizontal block hb4 has the maximum value in all blocks, and this value is referred to as the all horizontal block projection data maximum value.
- the vertical motion vector determination unit 510 determines, as an invalid block, a horizontal block having a maximum value of, for example, 1Z4 or less with respect to the maximum value of all horizontal block projection data.
- the horizontal blocks hbO, hbl, hb8 and hb9 are determined to be invalid blocks.
- FIG. 32 is a diagram schematically illustrating determination of valid Z invalidity of a horizontal block.
- a horizontal block that is determined to be an invalid block can be said to have a few features (there are few clear parts) or a very fine design as a pattern. On the other hand, it can be judged that the reliability is low. Therefore, the reliability of the vertical motion vector can be improved by not using the horizontal block determined to be an invalid block for determining the vertical motion vector of the entire image.
- the force described as the valid Z invalidity judgment condition being 1Z4 or less of the maximum value of all horizontal block projection data, it is not limited to this. It may be 1Z8 or less. In this way, by setting the determination condition lZ2 n , it is possible to easily determine whether it is valid or invalid.
- FIG. 33 is a diagram for explaining a method for determining valid Z invalidity of each horizontal block using the horizontal block n-valued addition data peak value.
- FIG. 33 the image data of 640 pixels x 480 pixels shown in (a) of Fig. 13 is taken as an example, and 10 horizontal directions having a width (divided width) of 64 pixels in the horizontal direction are taken. This shows the case where the block is divided into hbO to hb9.
- the horizontal block vertical motion vector calculation unit 500 (Fig. 20 The horizontal block n-valued addition data peak value of each horizontal block output from) is shown in hexadecimal notation for each block.
- the vertical motion vector determination unit 510 obtains the maximum value of the medium force of the horizontal direction block n-valued addition data peak value in each of the horizontal direction blocks hbO to hb9.
- the horizontal block hb4 has the maximum value, and this value is referred to as the maximum value of the horizontal block n-valued addition data peak value.
- the vertical direction motion vector determination unit 510 when the maximum value of the horizontal block n-valued addition data peak value is equal to or greater than a predetermined value A (for example, 12 in decimal notation), the horizontal direction block n value A horizontal block whose summation data is less than or equal to a predetermined value B (for example, 7 in decimal notation) is determined as an invalid block.
- a predetermined value A for example, 12 in decimal notation
- a predetermined value B for example, 7 in decimal notation
- the output of the adder 505 (Fig. 21) of the horizontal block vertical motion vector calculation unit 500 (Fig. 20) is the first n-valued with the fourth threshold value centered on the third threshold value intersection.
- the horizontal block projection data is added, and the larger the number of third threshold intersections and the larger the amplitude (mountain) exceeding the fourth threshold (4) on the plus side, the larger the value. Conversely, if there is an amplitude that exceeds the negative fourth threshold (one ⁇ 4), it will be canceled.
- the maximum value of the output of the adder 505 that is, the horizontal block ⁇ - value added data peak value of a certain horizontal block is equal to or greater than the predetermined value ⁇ , while the other horizontal blocks
- the peak value of the n-valued addition data of the horizontal block is less than or equal to the predetermined value B, it can be said that the other horizontal block is a picture with the addition result canceled or a picture with less features and less amplitude.
- the block having the horizontal block n-valued addition data peak value force of the predetermined value B or less is less reliable than the block of the predetermined value A or more. Therefore, the reliability of the vertical motion vector can be improved by not using the horizontal block determined to be an invalid block for determining the vertical motion vector of the entire image.
- Fig. 34 is a diagram schematically showing determination of validity Z invalidity of a horizontal block.
- the horizontal axis represents the maximum value of the horizontal block n-valued addition data peak value
- the vertical axis represents the horizontal block n-valued addition data peak value.
- the horizontal block n-valued addition data peak value is equal to or less than the predetermined value B. It also shows that even if there is another block, the block is not judged as an invalid block.
- the effective Z / invalidation condition is a force indicating an example in which the predetermined value A is set to 12 and the predetermined value B is set to 7.
- the number of pixels in the vertical direction of the image is not limited to this. For example, if the number of pixels in the vertical direction is 80 pixels, the predetermined value A can be set to a value of about 10 and the predetermined value B can be set to a value about half of that.
- FIG. 35 is a diagram for explaining a method for determining valid Z invalidity of each vertical block using the number of third threshold intersections.
- Fig. 35 the image data of 640 pixels x 480 pixels shown in Fig. 13 (a) is taken as an example, and 10 horizontal directions having a width (divided width) of 64 pixels in the horizontal direction are taken. This shows the case where the block is divided into hbO to hb9.
- FIG. 35 the number of third threshold intersections output from the third threshold intersection searching unit 48 (FIG. 20) is shown in hexadecimal notation for each block.
- the waveform of the second horizontal block projection data relating to the previous frame stored in the second horizontal block projection line memory 46, and the second horizontal block Outputs information on the third threshold intersection at which the third threshold calculated by the projection data maximum value storage unit 45 intersects.
- This information also includes information on the number of third threshold intersections. As shown in Fig. 35, for each horizontal block hbO to hb9 The number of third threshold intersections is obtained.
- Fig. 36 is a diagram schematically showing determination of valid Z invalidity of a horizontal block.
- the horizontal axis represents the maximum number of the third threshold intersections in the horizontal blocks hbO to hb9
- the vertical axis represents the number of the third threshold intersections.
- the third threshold crossing point in each horizontal block hbO to hb9 is the third block for the block having a predetermined value D (for example, 3 in decimal notation) or less. Regardless of the maximum number of threshold intersections, it is determined as an invalid block. In the example of FIG. 35, the horizontal blocks hbO and hb9 are determined to be invalid blocks.
- the reliability of the vertical motion vector can be improved by not using the horizontal block determined to be an invalid block for determining the vertical motion vector of the entire image.
- the number of the third threshold intersections is at least the number of pixels in the vertical direction, and if the number is too large compared to the number of pixels in the vertical direction, a very periodic pattern is captured. Therefore, for example, when the value is equal to or greater than a predetermined value E (for example, more than half of the number of pixels in the vertical direction), the block may be determined to be an invalid block.
- a predetermined value E for example, more than half of the number of pixels in the vertical direction
- the number of third threshold intersections is 241 and is more than half of the number of vertical pixels, so it is determined as an invalid block.
- a block having a predetermined value D or less is determined as an invalid block. It may be configured to do so. In this case, if the maximum value of the number of the third threshold intersections is smaller than the predetermined value, even if there is a block with the predetermined value D or less, the block is not determined as an invalid block and is invalid.
- the block criteria can be set more carefully.
- the valid / invalid determination condition is that the predetermined value D is 3 and the predetermined value E is half the number of pixels in the vertical direction has been described.
- the present invention is not limited to this. It is not a thing.
- each horizontal block n-valued sum data peak value is used to determine each horizontal block. It is invalid by using the method of judging the effective Z invalidity of the direction block and the method of judging the valid Z invalidity of each horizontal block using the information of the third threshold intersection.
- the horizontal block force determined as an invalid block is determined as a block, and the calculated vertical motion vector is not used when determining the vertical motion vector of the entire image. Can be increased.
- the effective Z invalidity is determined using the first horizontal block projection data maximum value, and the effective Z invalidity of each horizontal block is determined using the horizontal block n-valued addition data peak value. It is also possible to determine valid Z invalidity using the first horizontal block projection data maximum value, and to determine valid Z invalidity of each horizontal block using information on the third threshold intersection. Also good! ,.
- the vertical motion vector determination unit 510 determines the effective Z invalidity of the horizontal block, and the vertical motion vector force of the horizontal block determined to be an effective block is also the vertical motion vector of the entire image. Decide.
- FIGS. 38 and 39 show the case where the detection range of the horizontal motion vector is U to U.
- U is 31
- from 31 to 31 1 vector interval is displayed.
- the numbers displayed in the boxes provided for the respective vectors represent the number of horizontal blocks having the same vector.
- the vertical direction motion vector determination unit 510 when the difference between the maximum value and the minimum value of the vertical direction motion vector obtained from each horizontal block is equal to or greater than a predetermined threshold B (for example, U described above), The vertical motion vector that also obtains horizontal blocking force is assumed to be 0, assuming that the vertical motion vector has low reliability.
- a predetermined threshold B for example, U described above
- each horizontal block force is obtained in the vertical direction. It is determined that the motion vector is sufficiently reliable.
- the numerical value A and the threshold value B are not limited to the values described above. Further, the determination of the fluctuation is not limited to the above-described difference between the maximum value and the minimum value of the vertical motion vector, and the standard deviation is used. May be judged to be large.
- the vertical motion margin of the current frame is calculated by the following procedure.
- the outline is that the vertical motion vector output from each horizontal block of the current frame is closest to the vertical motion vector of the previous frame, and the vertical motion vector is the vertical motion vector of the current frame. It is what.
- the vertical motion vector 8 is the vertical motion vector of the previous frame, and the vertical motion vector obtained from each horizontal block of the current frame closest to this is the vertical motion vector.
- the sand corresponding to the vertical motion vector obtained for each horizontal block force of the current frame is hatched, and the block corresponding to the vertical motion vector of the previous frame is hatched. Attached.
- the vertical direction motion vector 5 becomes the horizontal direction motion vector of the current frame.
- the information on the vertical motion vector of the previous frame is stored in a predetermined storage unit (previous frame vertical motion vector storage means) provided in the vertical motion vector determination unit 510, and is necessary. Is configured to read in response to
- the operation of determining whether the horizontal block is valid Z is invalid or not. Evaluate the reliability of the vertical motion vector of the entire image in consideration of variations in the vertical motion vector calculated in this way, and consider the vertical motion vector of the previous frame even if it is determined to be reliable. Thus, it is possible to determine a vertical motion vector with less sense of incongruity taking into account the motion from the previous frame.
- the horizontal direction motion vector determination unit 320 includes the first vertical direction block projection data maximum value storage unit. 1st vertical block projection data maximum value output from 24, vertical block horizontal motion vector calculation unit 310 output from vertical block n-valued addition data peak value, first threshold value intersection search unit Based on the information on the first threshold intersection output from 29, the effective block Z of the vertical block is judged to be invalid. As a result, a highly reliable horizontal motion vector can be calculated.
- the reliability of the horizontal motion vector of the entire image is evaluated by considering the variation of the horizontal motion vector calculated based on the highly reliable vertical block, the reliability is determined.
- the horizontal motion vector of the previous frame it is possible to determine the horizontal motion vector with less sense of incongruity reflecting the motion of the previous frame force.
- the first horizontal direction block projection data output from the first horizontal direction block projection data maximum value storage unit 45 in the vertical direction motion vector determination unit 510.
- a directional motion vector can be calculated.
- the vertical motion vector calculated based on a highly reliable horizontal block is evaluated for the reliability of the vertical motion vector of the entire image in consideration of variations, and it is determined that the motion vector is reliable.
- the vertical motion vector of the previous frame it is possible to determine the vertical motion vector with less sense of incongruity reflecting the motion of the previous frame force.
- the vertical image dividing unit 21 divides the frame image. Since the vertical edge is emphasized for each divided image (vertical block) after dividing in the straight direction, a divided image in which the vertical edge is emphasized can be easily generated. Similarly, the horizontal image dividing unit 41 divides the frame image in the horizontal direction, and then emphasizes the edge in the horizontal direction for each divided image (horizontal block). Can be generated easily.
- the motion vector detection device 1C according to the fourth embodiment of the present invention has a force similar to that of the motion vector detection device 1 according to the first embodiment. And the vertical direction motion vector detection unit are different.
- FIG. 40 is a block diagram showing the main configuration of the horizontal direction motion vector detection unit 2C.
- parts having the same functions as those in the horizontal motion vector detection unit 2B described in the third embodiment are denoted by the same reference numerals, and redundant description is omitted.
- the edge enhancement unit of the horizontal direction motion vector detection unit 2C the vertical direction image segmentation unit 21 and the vertical direction edge extraction filtering unit 22 are compared with the edge enhancement unit of the horizontal direction motion vector detection unit 2B of the third embodiment. The arrangement with is reversed. Hereinafter, the operation of the horizontal direction motion vector detection unit 2C will be described.
- the extraction filtering unit 22 performs extraction processing for extracting edge components extending in the vertical direction, in other words, enhancing an image portion that changes sharply in the horizontal direction.
- the vertical image dividing unit 21 sets a plurality of image regions (vertical blocks) obtained by dividing the frame image subjected to edge enhancement in the vertical direction. From this In the subsequent processing, processing and management are performed for each vertical block.
- the image data divided by the vertical image dividing unit 21 is input to the vertical block projecting unit 23.
- the processing after the vertical block projecting unit 23 is the horizontal direction motion vector of the third embodiment. Processing similar to that of the detection unit 2B is performed.
- FIG. 41 is a block diagram showing the main configuration of the vertical motion vector detection unit 4C.
- parts having the same functions as those in the vertical direction motion vector detection unit 4B described in the third embodiment are denoted by the same reference numerals, and redundant description is omitted.
- edge enhancement unit of the vertical motion vector detection unit 4C the horizontal image segmentation unit 41 and the horizontal direction edge extraction filtering unit 42 are compared with the edge enhancement unit of the vertical direction motion vector detection unit 4B of the third embodiment. The arrangement with is reversed. Hereinafter, the operation of the vertical motion vector detection unit 4C will be described.
- the extraction filtering unit 42 performs extraction of edge components extending in the horizontal direction, in other words, filtering processing that emphasizes an image portion that changes sharply in the vertical direction.
- the horizontal image dividing unit 41 sets a plurality of image regions (horizontal blocks) obtained by dividing the frame image subjected to edge enhancement in the horizontal direction. Thus, in the subsequent processing, processing and management are performed for each horizontal block.
- the image data divided by the horizontal image dividing unit 41 is input to the horizontal block projecting unit 43.
- the processing after the horizontal block projecting unit 43 is the vertical direction motion vector according to the third embodiment. Processing similar to that of the detection unit 4B is performed.
- the vertical edge extraction filtering unit 22 emphasizes the edge in the vertical direction with respect to the frame image, and then performs the edge-enhanced frame. Since the image is divided in the vertical direction by the vertical image dividing unit 21, a divided image in which the edge in the vertical direction is emphasized can be easily generated.
- the horizontal image dividing unit 41 divides the edge image with the edge in the horizontal direction. Split images with enhanced edges can be easily generated.
- the vertical edge extraction filtering unit 22 and the horizontal edge extraction filtering unit 42 are separately arranged in the horizontal motion vector detection unit 2A and the vertical motion vector detection unit 4A.
- the vertical edge extraction filtering unit 22 and the horizontal edge extraction filtering unit 42 are both provided with a horizontal Z vertical edge extraction filtering unit that integrates the functions of the vertical edge extraction filtering unit 22 and the output of the vertical image segmentation unit 21.
- the image data may be input to each of the horizontal image dividing unit 41.
- the threshold process for determining the magnitude relationship with a predetermined threshold For the vertical edge extraction filtering unit and the horizontal edge extraction filtering unit in each of the above embodiments, after the filtering process for performing edge extraction, for example, “with edge” is performed by the threshold process for determining the magnitude relationship with a predetermined threshold. It is also possible to perform binarization of “no edge” or ternization of “with positive edge”, “without edge”, and “with negative edge”. By performing such threshold processing, it is possible to treat the edges having a luminance change (luminance gradient) equal to or greater than a predetermined threshold in the same manner.
- the data output from the bit number reduction unit 25 is converted into the first vertical block projection line memory 26 and the second vertical block projection by, for example, switch switching for each frame.
- the line memory 27 may be alternately input.
- the data output from the horizontal block projection unit 43 is transferred to the first horizontal block projection line memory 44 and the second horizontal block projection line memory 46 by, for example, switch switching for each frame. You may make it make it input alternately.
- the data output from the vertical (horizontal) direction block projection unit is stored in the first vertical (horizontal) direction block projection data maximum value storage unit by, for example, switch switching for each frame.
- the second vertical (horizontal) block projection data maximum value storage unit may be alternately input.
- the "previous frame" in the present invention is not limited to the previous frame, but also includes two or more previous frames. For example, when a frame in the middle is skipped by the frame skipping process, the frame before the skipped frame is included.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
明 細 書
動きベクトル検出装置
技術分野
[0001] 本発明は、時系列的に前後の関係となる前フレームと後フレームとに関するフレー ム画像間の動きベクトルを検出する動きベクトル検出装置に関するものである。 背景技術
[0002] 手振れ補正などに用いられるフレーム画像間の動きベクトル検出技術としては、代 表点マッチング方式を用いて、連続して取り込んだ画像力も動きベクトルを検出する ものがある。この代表点マッチング方式では、連続して取り込んだ画像において前フ レームの画像の固定された位置に代表点を設定するとともに、現在のフレームの画 像を 2次元方向にずらしながら代表点の相関演算を行うことにより、相関の最も高くな るズレ量を動きベクトルとして検出する。
[0003] しかし、以上の動きベクトル検出技術では、代表点に一定以上の輝度勾配が存在 することが必要であるため、例えば文書画像のような白黒の画像を対象とする場合に は全ての代表点で輝度勾配が低くなつて、動き量 (動きベクトル)が精度良く検出でき ないこととなる。
[0004] この不具合を改善する技術としては、例えば特許文献 1に開示されるものがある。こ の技術では、まず輝度勾配を持つ画像の特徴点を抽出し、抽出された特徴点を代表 点として代表点マッチング処理を行うことにより、動きベクトルの良好な検出を可能と している。
[0005] また、特許文献 2に記載のように、画像を複数のブロックに分割し、ブロックごとにェ ッジを検出し、エッジの移動を追うことにより、動きベクトルを検出する方法がある。こ の方法では、空などのように、空間周波数が低く特徴的な絵柄のない場合や、格子 戸のように、空間周波数が高ぐ特徴点が多数存在する場合の誤判定を軽減するた めに、 1ブロックあたりのエッジ数で重み付けを行い、信頼性を評価している。また、ェ ッジ検出の方法としては、ゼロクロッシング法などが使用されて 、る。
[0006] 特許文献 1 :特許第 3534551号公報
特許文献 2:特許第 3164121号公報
発明の開示
発明が解決しょうとする課題
[0007] し力しながら、特許文献 1の技術では、輝度勾配が存在する代表点を確実に設定 できるものの、依然としてフレーム画像において探索範囲の全体にわたって画素を少 しずつずらしながら代表点の相関演算を行うため、代表点 (特徴点)ごとに相当の演算 量が必要となる。よって、代表点の数を一定以下に抑えない限り、迅速な動きべタト ルの検出が困難となってリアルタイム処理が難しくなる。一方、代表点が少なすぎると 、動きベクトルの検出精度の低下を招いてしまう。
[0008] また、特許文献 2に開示された動きベクトル検出方法は、ブロックごとに算出された 動きベクトルの信頼性を、ブロックごとのエッジ数で重み付けすることにより、誤判定を 軽減している力 リアルタイム処理が要求される場合には、全ブロックを一様に評価 することが難 ヽと 、う問題を有して 、る。
[0009] すなわち、画像全体を一様に評価しょうとすると、全画像を取り込んだ上で動きべク トル検出処理を行う必要があり、それではリアルタイム処理に合わない。処理時間を 満足するためには、ブロック単位で処理を完結させ、処理を次々と進める必要がある 力 このとき、各ブロックを一様に処理することができないため、各ブロックを一様にェ ッジ数だけで重み付けしたのでは、必ずしも、十分な結果が得られるとは言いがたい
[0010] 本発明は上記のような問題点を解消するためになされたものであり、フレーム画像 間の動きベクトルの検出を精度良く迅速に行えるとともに、リアルタイム処理を満足し つつ、各ブロック力 算出される動きベクトルの信頼性を評価することが可能な動きべ タトル検出装置を提供することを目的とする。
[0011] 本発明に係る動きベクトル検出装置の第 1の態様は、時系列的に前後の関係となる 前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きべ タトル検出装置であって、水平ラインの画素走査を垂直方向に順に繰り返すことによ つて読み出されるフレーム画像に関して、垂直方向に一定の分割幅を有して複数に 分割されたブロックごとに垂直方向のエッジを強調するエッジ強調手段と、前記エツ
ジ強調手段でエッジが強調された画像にっ 、て、前記ブロックごとに垂直方向に射 影をとり、前記ブロックのそれぞれで 1水平ライン分のデータ配列を有する射影デー タを生成する射影手段と、前記前フレームに対して前記射影手段で得られた射影デ ータに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列 要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特 定する特定手段と、前記各交差点の配列要素の位置を中心とした所定範囲のデー タ配列を、前記後フレームに対して前記射影手段で得られた射影データから抽出す る抽出手段と、前記抽出手段で抽出された所定範囲のデータ配列それぞれについ て、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を 加算する加算手段と、前記加算手段で加算された加算結果に基づき、フレーム画像 の水平方向に関する動きベクトルを検出する検出手段とを備えて 、る。
[0012] 本発明に係る動きベクトル検出装置の第 2の態様は、時系列的に前後の関係となる 前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きべ タトル検出装置であって、水平ラインの画素走査を垂直方向に順に繰り返すことによ つて読み出されるフレーム画像に関して、水平方向に一定の分割幅を有して複数の ブロックに分割されたブロックごとに水平方向のエッジを強調するエッジ強調手段と、 前記エッジ強調手段でエッジが強調された画像にっ 、て、前記ブロックごとに水平方 向に射影をとり、前記ブロックのそれぞれで 1垂直ライン分のデータ配列を有する射 影データを生成する射影手段と、前記前フレームに対して前記射影手段で得られた 射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と 、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位 置を特定する特定手段と、前記各交差点の配列要素の位置を中心とした所定範囲 のデータ配列を、前記後フレームに対して前記射影手段で得られた射影データから 抽出する抽出手段と、前記抽出手段で抽出された所定範囲のデータ配列それぞれ について、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士 の値を加算する加算手段と、前記加算手段で加算された加算結果に基づき、フレー ム画像の垂直方向に関する動きベクトルを検出する検出手段とを備えて 、る。
[0013] 本発明に係る動きベクトル検出装置の第 3の態様は、時系列的に前後の関係となる
前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きべ タトル検出装置であって、水平ラインの画素走査を垂直方向に順に繰り返すことによ つて読み出されるフレーム画像に関して、垂直方向に一定の分割幅を有して複数の ブロックに分割されたブロックごとに垂直方向のエッジを強調するエッジ強調手段と、 前記エッジ強調手段でエッジが強調された画像にっ 、て、前記ブロックごとに垂直方 向に射影をとり、前記ブロックのそれぞれで 1水平ライン分のデータ配列を有する射 影データを生成する射影手段と、前記後フレームに対して前記射影手段で得られた 後フレーム射影データの配列要素において最大値を求める最大値取得手段と、前 記前フレームに対して前記射影手段で得られた前フレーム射影データに関して前記 データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の 一定値となる直線とが交差する各交差点の配列要素の位置を特定して交差点情報 として出力する特定手段と、前記各交差点の配列要素の位置を中心とした所定範囲 のデータ配列を、前記後フレーム射影データから抽出する抽出手段と、前記抽出手 段で抽出された所定範囲のデータ配列それぞれにつ!/、て、前記各交差点の配列要 素の位置に対して相対位置が同じ配列要素同士の値を加算し、得られた加算結果 に基づいて前記ブロックごとの水平方向動きベクトルを算出する加算手段と、前記カロ 算手段で算出された前記ブロックごとの水平方向動きベクトルに基づき、フレーム画 像全体の水平方向動きベクトルを検出する検出手段と、を備え、前記検出手段は、 前記最大値取得手段で得られた前記後フレーム射影データの前記最大値、前記カロ 算手段で得られた前記加算結果および前記特定手段で得られた前記交差点情報の うち少なくとも 1つを用いて前記ブロックごとの水平方向動きベクトルの信頼性評価を 行う。
本発明に係る動きベクトル検出装置の第 4の態様は、時系列的に前後の関係となる 前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きべ タトル検出装置であって、水平ラインの画素走査を垂直方向に順に繰り返すことによ つて読み出されるフレーム画像に関して、水平方向に一定の分割幅を有して複数の ブロックに分割されたブロックごとに水平方向のエッジを強調するエッジ強調手段と、 前記エッジ強調手段でエッジが強調された画像にっ 、て、前記ブロックごとに水平方
向に射影をとり、前記ブロックのそれぞれで 1垂直ライン分のデータ配列を有する射 影データを生成する射影手段と、前記後フレームに対して前記射影手段で得られた 後フレーム射影データの配列要素において最大値を求める最大値取得手段と、前 記前フレームに対して前記射影手段で得られた前フレーム射影データに関して前記 データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の 一定値となる直線とが交差する各交差点の配列要素の位置を特定して交差点情報 として出力する特定手段と、前記各交差点の配列要素の位置を中心とした所定範囲 のデータ配列を、前記後フレーム射影データから抽出する抽出手段と、前記抽出手 段で抽出された所定範囲のデータ配列それぞれにつ!/、て、前記各交差点の配列要 素の位置に対して相対位置が同じ配列要素同士の値を加算し、得られた加算結果 に基づいて前記ブロックごとの垂直方向動きベクトルを算出する加算手段と、前記カロ 算手段で算出された前記ブロックごとの垂直方向動きベクトルに基づき、フレーム画 像全体の垂直方向動きベクトルを検出する検出手段と、を備え、前記検出手段は、 前記最大値取得手段で得られた前記後フレーム射影データの前記最大値、前記カロ 算手段で得られた前記加算結果および前記特定手段で得られた前記交差点情報の うち少なくとも 1つを用いて前記ブロックごとの垂直方向動きベクトルの信頼性評価を 行う。
本発明に係る動きベクトル検出装置の第 1の態様によれば、フレーム画像における 所定の画像領域にっ 、て垂直方向のエッジを強調し、エッジ強調された画像にっ ヽ て垂直方向に射影をとつて 1水平ライン分のデータ配列を有する射影データを生成 するとともに、前フレームの射影データに関してデータ配列の要素順に配列要素の 値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各 交差点の配列要素の位置を特定する。そして、各交差点の配列要素の位置を中心と した所定範囲のデータ配列を後フレームの射影データ力も抽出するとともに、抽出さ れた所定範囲のデータ配列それぞれについて各交差点の配列要素の位置に対して 相対位置が同じ配列要素同士の値を加算し、その加算結果に基づきフレーム画像 の水平方向に関する動きベクトルを検出する。その結果、フレーム画像間の動きべク トルの検出を精度良く迅速に行える。
[0016] 本発明に係る動きベクトル検出装置の第 2の態様によれば、フレーム画像における 所定の画像領域にっ 、て水平方向のエッジを強調し、エッジ強調された画像にっ ヽ て水平方向に射影をとつて 1垂直ライン分のデータ配列を有する射影データを生成 するとともに、前フレームの射影データに関してデータ配列の要素順に配列要素の 値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各 交差点の配列要素の位置を特定する。そして、各交差点の配列要素の位置を中心と した所定範囲のデータ配列を後フレームの射影データ力も抽出するとともに、抽出さ れた所定範囲のデータ配列それぞれについて各交差点の配列要素の位置に対して 相対位置が同じ配列要素同士の値を加算し、その加算結果に基づきフレーム画像 の垂直方向に関する動きベクトルを検出する。その結果、フレーム画像間の動きべク トルの検出を精度良く迅速に行える。
[0017] 本発明に係る動きベクトル検出装置の第 3の態様によれば、検出手段において、最 大値取得手段で得られた後フレーム射影データの最大値、加算手段で得られたカロ 算結果および特定手段で得られた交差点情報のうち少なくとも 1つを用いてブロック ごとの水平方向動きベクトルの信頼性評価を行うので、信頼性の低!ヽブロック力ゝら得 られた水平方向動きベクトルを除外することで、結果的に、信頼性の高いフレーム画 像全体の水平方向動きベクトルを算出することができる。
[0018] 本発明に係る動きベクトル検出装置の第 4の態様によれば、検出手段において、最 大値取得手段で得られた後フレーム射影データの最大値、加算手段で得られたカロ 算結果および特定手段で得られた交差点情報のうち少なくとも 1つを用いてブロック ごとの垂直方向動きベクトルの信頼性評価を行うので、信頼性の低!ヽブロック力ゝら得 られた垂直方向動きベクトルを除外することで、結果的に、信頼性の高いフレーム画 像全体の垂直向動きベクトルを算出することができる。
[0019] この発明の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによ つて、より明白となる。
図面の簡単な説明
[0020] [図 1]本発明の実施の形態 1に係る動きベクトル検出装置 1、実施の形態 2に係る動き ベクトル検出装置 1A、実施の形態 3に係る動きベクトル検出装置 IBおよび実施の形
態 4に係る動きベクトル検出装置 1Cの要部構成を示すブロック図である。
[図 2]フレーム画像における画素走査方向を説明するための図である。
[図 3]水平方向動きベクトル検出部 2の要部構成を示すブロック図である。
[図 4]垂直方向ブロック射影部 23の要部構成を示すブロック図である。
[図 5]垂直方向ブロック水平方向動きベクトル算出部 31の要部構成を示すブロック図 である。
[図 6]垂直方向動きベクトル検出部 4の要部構成を示すブロック図である。
[図 7]水平方向ブロック射影部 43の要部構成を示すブロック図である。
[図 8]水平方向ブロック垂直方向動きベクトル算出部 50の要部構成を示すブロック図 である。
[図 9]垂直方向画像分割部 21および垂直方向ブロック射影部 23の動作を説明する ための図である。
[図 10]n値化器 314および 504における n値ィ匕処理を説明するための図である。
[図 11]第 1の閾値交差点探索部 29、垂直方向ブロック射影データ読み出し部 30およ び垂直方向ブロック水平方向動きベクトル算出部 31の動作を説明するための図であ る。
[図 12]加算器 315およびピーク検出部 317の動作を説明するための図である。
[図 13]水平方向画像分割部 41および水平方向ブロック射影部 43の動作を説明する ための図である。
[図 14]第 3の閾値交差点探索部 48、水平方向ブロック射影データ読み出し部 49およ び水平方向ブロック垂直方向動きベクトル算出部 50の動作を説明するための図であ る。
[図 15]加算器 505およびピーク検出部 507の動作を説明するための図である。
[図 16]本発明の実施の形態 2に係る動きベクトル検出装置 1Aにおける水平方向動き ベクトル検出部 2Aの要部構成を示すブロック図である。
[図 17]動きベクトル検出装置 1Aにおける垂直方向動きベクトル検出部 4Aの要部構 成を示すブロック図である。
[図 18]本発明の実施の形態 3に係る動きベクトル検出装置 1Cにおける水平方向動き
ベクトル検出部 2Bの要部構成を示すブロック図である。
[図 19]垂直方向ブロック水平方向動きベクトル算出部 310の要部構成を示すブロック 図である。
[図 20]垂直方向動きベクトル検出部 4Bの要部構成を示すブロック図である。
[図 21]水平方向ブロック垂直方向動きベクトル算出部 500の要部構成を示すブロック 図である。
[図 22]第 1の垂直方向ブロック射影データ最大値を用いて各垂直方向ブロックの効 Z無効を判定する方法を説明する図である。
[図 23]垂直方向ブロックの有効 Z無効の判定を模式的に示す図である。
[図 24]垂直方向ブロック n値化加算データピーク値を用いて各垂直方向ブロックの有 効 Z無効を判定する方法を説明する図である。
[図 25]垂直方向ブロックの有効 Z無効の判定を模式的に示す図である。
圆 26]第 1の閾値交差点の個数を用いて各垂直方向ブロックの有効 Z無効を判定す る方法を説明する図である。
[図 27]垂直方向ブロックの有効 Z無効の判定を模式的に示す図である。
[図 28]垂直方向ブロックの有効 Z無効の判定を模式的に示す図である。
[図 29]画像全体の水平方向動きベクトルの決定方法の一例について説明する図で ある。
[図 30]画像全体の水平方向動きベクトルの決定方法の一例について説明する図で ある。
[図 31]第 1の水平方向ブロック射影データ最大値を用いて各水平方向ブロックの有 効 Z無効を判定する方法を説明する図である。
[図 32]水平方向ブロックの有効 Z無効の判定を模式的に示す図である。
[図 33]水平方向ブロック n値化加算データピーク値を用いて各水平方向ブロックの有 効 Z無効を判定する方法を説明する図である。
[図 34]水平方向ブロックの有効 Z無効の判定を模式的に示す図である。
圆 35]第 3の閾値交差点の個数を用いて各水平方向ブロックの有効 Z無効を判定す る方法を説明する図である。
[図 36]水平方向ブロックの有効 Z無効の判定を模式的に示す図である。
[図 37]水平方向ブロックの有効 Z無効の判定を模式的に示す図である。
[図 38]画像全体の垂直方向動きベクトルの決定方法の一例について説明する図で ある。
[図 39]画像全体の垂直方向動きベクトルの決定方法の一例について説明する図で ある。
[図 40]本発明の実施の形態 4に係る動きベクトル検出装置 1Cにおける水平方向動き ベクトル検出部 2Cの要部構成を示すブロック図である。
[図 41]動きベクトル検出装置 1Cにおける垂直方向動きベクトル検出部 4Cの要部構 成を示すブロック図である。
発明を実施するための最良の形態
[0021] 実施の形態 1.
<動きべクトル検出装置 1の構成 >
図 1は、本発明の実施の形態 1に係る動きベクトル検出装置 1の要部構成を示すブ ロック図である。
[0022] 動きベクトル検出装置 1は、例えば動画像において画面内の被写体の動きを表す 画像動きベクトルを検出するものであり、時系列的に前後の関係となる前フレームと 後フレームとに関するフレーム画像間の動きベクトルが検出される。この動きベクトル 検出装置 1で検出された動きベクトルはビデオカメラの手振れ補正などに利用される 。なお、動きベクトル検出装置 1に入力されるフレーム画像は、図 2に示すように水平 方向の画素走査および垂直方向のライン走査を行うことによって読み出されるものと する。
[0023] 動きベクトル検出装置 1は、入力端子 11と、水平方向動きベクトル検出部 2および 垂直方向動きベクトル検出部 4と、 2つの出力端子 12、 13とを備えている。この水平 方向動きベクトル検出部 2および垂直方向動きベクトル検出部 4については、その機 能が例えばマイクロプロセッサによってソフトウェア的に実現されてもよぐまた大半を ハードウェア (一部をソフトウェア)で実現するようにしてもよい。もちろん、全機能をノヽ 一ドウエアで実現してもよ!/、ことは言うまでもな!/、。
[0024] 入力端子 11には、例えばビデオカメラ内の撮像素子で取得された画像データ (動 画像)やビデオ信号などの画像データ (動画像)が入力される。入力端子 11に入力さ れた画像データは、水平方向動きベクトル検出部 2において水平方向の動きベクトル が検出され、その検出された水平方向動きベクトルが出力端子 12から出力される。
[0025] 一方、垂直方向動きベクトル検出部 4では、入力端子 11に入力された画像データ につ 、て垂直方向の動きベクトルが検出される。この垂直方向動きベクトル検出部 4 で検出された垂直方向動きベクトルは、出力端子 13から出力される。
[0026] 以下では、水平方向動きベクトル検出部 2と垂直方向動きベクトル検出部 4との構 成を順に説明する。
[0027] 図 3は、水平方向動きベクトル検出部 2の要部構成を示すブロック図である。
水平方向動きベクトル検出部 2は、入力端子 20と、垂直方向画像分割部 21と、垂 直方向エッジ抽出フィルタリング部 22と、垂直方向ブロック射影部 23と、第 1の垂直 方向ブロック射影データ最大値保存部 24と、ビット数削減部 25と、第 1の垂直方向ブ ロック射影ラインメモリ 26とを備えている。また、水平方向動きベクトル検出部 2は、第 2の垂直方向ブロック射影ラインメモリ 27と、第 2の垂直方向ブロック射影データ最大 値保存部 28と、第 1の閾値交差点探索部 29と、垂直方向ブロック射影データ読み出 し部 30と、垂直方向ブロック水平方向動きベクトル算出部 31と、水平方向動きべタト ル決定部 32と、出力端子 33とを備えている。以上の水平方向動きベクトル検出部 2 の各部位にっ 、て、その機能を簡単に説明する (具体的な動作は後で詳述する)。
[0028] 垂直方向画像分割部 21は、入力端子 20に入力されたフレーム画像を垂直方向に 分割し、垂直方向に分割したブロック (以下では「垂直方向ブロック」とも称する)を出 力する。
[0029] 垂直方向エッジ抽出フィルタリング部 22は、垂直方向画像分割部 21で分割された ブロックごとにエッジ抽出を行うためのフィルタリング処理を行う。なお、垂直方向画像 分割部 21および垂直方向エッジ抽出フィルタリング部 22を合わせてエッジ強調手段 と呼称する場合がある。
[0030] 垂直方向ブロック射影部 23は、垂直方向エッジ抽出フィルタリング部 22から出力さ れるエッジ強調済みの垂直方向ブロックにつ 、て垂直方向に射影をとり、垂直方向
ブロックごとに射影データを出力する。
[0031] 第 1の垂直方向ブロック射影データ最大値保存部 24は、垂直方向ブロック射影部 2 3から出力された現フレームの垂直方向ブロックの射影データにおける最大値 (以下 では「現フレームの垂直方向ブロック射影データ最大値」または「第 1の垂直方向プロ ック射影データ最大値」とも言う)を保存する。また、第 1の垂直方向ブロック射影デー タ最大値保存部 24は、第 1の垂直方向ブロック射影データ最大値に基づき、後述す る第 2の閾値を算出する。
[0032] ビット数削減部 25は、第 1の垂直方向ブロック射影データ最大値保存部 24に保存 された第 1の垂直方向ブロック射影データ最大値に基づき、垂直方向ブロック射影部 23から出力された垂直方向ブロックの射影データのビット数を削減する。ビット数を 削減された垂直方向ブロックの射影データを「第 1の垂直方向ブロック射影データ」と 称する。
[0033] 第 1の垂直方向ブロック射影ラインメモリ 26は、ビット数削減部 25でビット数が削減 された第 1の垂直方向ブロック射影データを保存する。
[0034] 第 2の垂直方向ブロック射影ラインメモリ 27は、第 1の垂直方向ブロック射影ラインメ モリ 26から送られた垂直方向ブロック射影データを、前フレームの垂直方向ブロック の射影データ (以下では「第 2の垂直方向ブロック射影データ」ともいう)として保存す る。
[0035] 第 2の垂直方向ブロック射影データ最大値保存部 28は、第 1の垂直方向ブロック射 影データ最大値保存部 24から出力された第 1の垂直方向ブロック射影データ最大値 を、前フレームに関する「第 2の垂直方向ブロック射影データ最大値」(「前フレームの 垂直方向ブロック射影データ最大値」とも言う)として保存する。また、第 2の垂直方向 ブロック射影データ最大値保存部 28は、第 2の垂直方向ブロック射影データ最大値 に基づき、後述する第 1の閾値を算出する。
[0036] 第 1の閾値交差点探索部 29は、第 2の垂直方向ブロック射影ラインメモリ 27に保存 される前フレームに係る第 2の垂直方向ブロック射影データの波形と、第 2の垂直方 向ブロック射影データ最大値保存部 28で算出された第 1の閾値とが交差する点を求 め、この交差点(以下では「第 1の閾値交差点」とも 、う)の情報を出力する。
[0037] 垂直方向ブロック射影データ読み出し部 30は、第 1の閾値交差点探索部 29で求 められた第 1の閾値交差点を中心に、その前後の所定範囲 (動きベクトル検出範囲) 内にある第 1の垂直方向ブロック射影データを、第 1の垂直方向ブロック射影ラインメ モリ 26から読み出す。
[0038] 垂直方向ブロック水平方向動きベクトル算出部 31は、第 1の垂直方向ブロック射影 データ最大値保存部 24から出力される第 2の閾値を用い、垂直方向ブロック射影デ ータ読み出し部 30で読み出された第 1の垂直方向ブロック射影データそれぞれを n 値ィ匕 (nは 2以上の整数)してビット数の削減を行うとともに、 n値化された射影データ を第 1の閾値交差点力 の距離ごとに加算する。
[0039] 水平方向動きベクトル決定部 32は、垂直方向ブロック水平方向動きベクトル算出 部 31からの出力に基づき画像の水平方向動きベクトルを決定する。ここで決定され た画像の水平方向動きベクトルは出力端子 33から出力される。
[0040] 図 4は、垂直方向ブロック射影部 23の要部構成を示すブロック図である。
垂直方向ブロック射影部 23は、入力端子 231と、 1水平ラインずつデータ加算を行 う加算器 232と、加算器 232で加算されたデータを逐次保存するバッファメモリとして の垂直方向射影一時記憶メモリ 233と、出力端子 234とを備えている。
[0041] 入力端子 231には、垂直方向エッジ抽出フィルタリング部 22で垂直方向のエッジ が強調された画像が垂直方向ブロックごとに入力される。入力端子 231に入力された 画像は、垂直方向ブロックごとに加算器 232および垂直方向射影一時記憶メモリ 23 3によって垂直方向に射影がとられる。具体的には、加算器 232において垂直方向 ブロックの 1水平ライン分のデータと、垂直方向射影一時メモリ 233から読み出された 1水平ライン分のデータとが加算され、加算結果が垂直方向射影一時記憶メモリ 233 に再び戻されて記憶される。このような加算動作が繰り返されることにより垂直方向ブ ロックにおける全ての水平ラインの加算が終了すると、全水平ラインの加算データ、 つまり垂直方向の射影データが出力端子 234から出力されることとなる。
[0042] 図 5は、垂直方向ブロック水平方向動きベクトル算出部 31の要部構成を示すブロッ ク図である。
[0043] 垂直方向ブロック水平方向動きベクトル算出部 31は、 3つの入力端子 311〜313と
、 n値化器 314と、 n値化器 314で n値ィ匕された第 1の垂直方向ブロック射影データの 加算を行う加算器 315と、加算器 315で加算されたデータを逐次保存するバッファメ モリとしての水平方向動きベクトル加算メモリ 316と、ピーク検出器 317と、出力端子 3 18とを備えている。
[0044] 入力端子 311には、垂直方向ブロック射影データ読み出し部 30から出力された第 1の垂直方向ブロック射影データが入力され、入力端子 312には、第 1の垂直方向ブ ロック射影データ最大値保存部 24から出力された第 2の閾値が入力される。また、入 力端子 313には、第 1の閾値交差点探索部 29から出力された第 1の閾値交差点の 情報が入力される。
[0045] n値化器 314は、入力端子 311から入力された第 1の垂直方向ブロック射影データ を、入力端子 312から入力される第 2の閾値に基づいて n値ィ匕 (例えば 3値化)する。
[0046] 加算器 315は、 n値化器 314で n値ィ匕された第 1の垂直方向ブロック射影データと、 水平方向動きベクトル加算メモリ 316から読み出されたデータとを第 1の閾値交差点 を中心として加算し、加算結果を水平方向動きベクトル加算メモリ 316に再び記憶さ せる。このような加算動作が繰り返されることにより垂直方向ブロックに関する全ての 第 1の閾値交差点についての加算が終了すると、垂直方向ブロックに関する加算デ ータがピーク検出器 317に出力される。
[0047] ピーク検出器 317は、加算器 315から出力された加算データにおけるピーク位置( 後述する水平方向動きベクトル)を検出する。このピーク検出器 317で検出されたピ ーク位置は、出力端子 318を介して水平方向動きベクトル決定部 32に入力されるこ ととなる。
[0048] 次に、垂直方向動きベクトル検出部 4の構成を説明する。
図 6は、垂直方向動きベクトル検出部 4の要部構成を示すブロック図である。
垂直方向動きベクトル検出部 4は、入力端子 40と、水平方向画像分割部 41と、水 平方向エッジ抽出フィルタリング部 42と、水平方向ブロック射影部 43と、第 1の水平 方向ブロック射影ラインメモリ 44と、第 1の水平方向ブロック射影データ最大値保存 部 45とを備えている。また、垂直方向動きベクトル検出部 4は、第 2の水平方向ブロッ ク射影ラインメモリ 46と、第 2の水平方向ブロック射影データ最大値保存部 47と、第 3
の閾値交差点探索部 48と、水平方向ブロック射影データ読み出し部 49と、水平方向 ブロック垂直方向動きベクトル算出部 50と、垂直方向動きベクトル決定部 51と、出力 端子 52とを備えて 、る。以上の垂直方向動きベクトル検出部 4の各部位にっ 、て、 その機能を簡単に説明する (具体的な動作は後で詳述する)。
[0049] 水平方向画像分割部 41は、入力端子 40に入力されたフレーム画像を水平方向に 分割し、水平方向に分割したブロック (以下では「水平方向ブロック」とも称する)を出 力する。
[0050] 水平方向エッジ抽出フィルタリング部 42は、水平方向画像分割部 41で分割された ブロックごとにエッジ抽出を行うためのフィルタリング処理を行う。水平方向画像分割 部 41および水平方向エッジ抽出フィルタリング部 42を合わせてエッジ強調手段と呼 称する場合がある。
[0051] 水平方向ブロック射影部 43は、水平方向エッジ抽出フィルタリング部 42から出力さ れるエッジ強調済みの水平方向ブロックについて水平方向に射影をとり、水平方向 ブロックごとに射影データを出力する。
[0052] 第 1の水平方向ブロック射影ラインメモリ 44は、水平方向ブロック射影部 43から出 力された水平方向ブロックの射影データを、現フレームの水平方向ブロック射影デー タ(以下では「第 1の水平方向ブロック射影データ」ともいう)として保存する。
[0053] 第 1の水平方向ブロック射影データ最大値保存部 45は、水平方向ブロック射影部 4 3から出力された現フレームの水平方向ブロックの射影データの最大値 (以下では「 現フレームの水平方向ブロック射影データ最大値」または「第 1の水平方向ブロック射 影データ最大値」とも言う)を保存する。
[0054] 第 2の水平方向ブロック射影ラインメモリ 46は、第 1の水平方向ブロック射影ラインメ モリ 44から送られた水平方向ブロック射影データを、前フレームの水平方向ブロック の射影データ (以下では「第 2の水平方向ブロック射影データ」ともいう)として保存す る。
[0055] 第 2の水平方向ブロック射影データ最大値保存部 47は、第 1の水平方向ブロック射 影データ最大値保存部 45から出力された第 1の水平方向ブロック射影データ最大値 を、前フレームに関する「第 2の水平方向ブロック射影データ最大値」(「前フレームの
水平方向ブロック射影データ最大値」とも言う)として保存する。また、第 2の水平方向 ブロック射影データ最大値保存部 47は、第 2の水平方向ブロック射影データ最大値 に基づき、後述する第 3の閾値および第 4の閾値を算出する。
[0056] 第 3の閾値交差点探索部 48は、第 2の水平方向ブロック射影ラインメモリ 46に保存 される前フレームに係る第 2の水平方向ブロック射影データと、第 2の水平方向ブロッ ク射影データ最大値保存部 47で算出された第 3の閾値とが交差する点を求め、この 交差点 (以下では「第 3の閾値交差点」とも 、う)の情報を出力する。
[0057] 水平方向ブロック射影データ読み出し部 49は、第 3の閾値交差点探索部 48で求 められた第 3の閾値交差点を中心に、その前後の所定範囲 (動きベクトル検出範囲) 内にある第 1の水平方向ブロック射影データを、第 1の水平方向ブロック射影ラインメ モリ 44から読み出す。
[0058] 水平方向ブロック垂直方向動きベクトル算出部 50は、第 2の水平方向ブロック射影 データ最大値保存部 47から出力される第 4の閾値を用い、水平方向ブロック射影デ ータ読み出し部 49で読み出された第 1の水平方向ブロック射影データそれぞれを n 値ィ匕 (nは 2以上の整数)してビット数の削減を行うとともに、 n値化された射影データ を第 3の閾値交差点力 の距離ごとに加算する。
[0059] 垂直方向動きベクトル決定部 51は、水平方向ブロック垂直方向動きベクトル算出 部 50からの出力に基づき画像の垂直方向動きベクトルを決定する。ここで決定され た画像の垂直方向動きベクトルは出力端子 52から出力される。
[0060] 図 7は、水平方向ブロック射影部 43の要部構成を示すブロック図である。
水平方向ブロック射影部 43は、入力端子 431と、水平方向ブロックの 1水平ライン データの加算を行う加算器 432と、加算器 432で加算されたデータを逐次保存する ノ ッファメモリとしての水平方向射影一時記憶メモリ 433と、出力端子 434とを備えて いる。
[0061] 入力端子 431には、水平方向エッジ抽出フィルタリング部 42で水平方向のエッジ が強調された画像が入力される。入力端子 431に入力された画像は、水平方向プロ ックごとに加算器 432および水平方向射影一時記憶メモリ 433によって水平方向に 射影がとられる。具体的には、水平方向ブロック内の 1水平ラインの画素について、
入力端子 431から入力された画素と、前画素までに加算器 432で加算され水平方向 射影一時記憶メモリ 433に記憶された加算結果を、加算器 432で加算し、その加算 結果を再び水平方向射影一時記憶メモリ 433に戻し記憶する。このような加算動作 が繰り返されることにより水平方向ブロックにおける 1水平ラインの加算が終了すると、 その水平方向ブロックの 1水平ラインの全画素の加算データ、つまり水平方向の射影 データが出力端子 434から出力されることとなる。以下、同様にして、次の水平方向 ブロックの水平方向の射影データが処理され、 1水平ラインについて全ての水平方向 ブロックの処理が終了すると、次の 1水平ラインの処理がなされる。
[0062] 図 8は、水平方向ブロック垂直方向動きベクトル算出部 50の要部構成を示すブロッ ク図である。
[0063] 水平方向ブロック垂直方向動きベクトル算出部 50は、 3つの入力端子 501〜503と 、 n値化器 504と、 n値化器 504で n値ィ匕された第 1の水平方向ブロック射影データの 加算を行う加算器 505と、加算器 505で加算されたデータを逐次保存するバッファメ モリとしての垂直方向動きベクトル加算メモリ 506と、ピーク検出器 507と、出力端子 5 08とを備えて ヽる。
[0064] 入力端子 501には、水平方向ブロック射影データ読み出し部 49から出力された第 1の水平方向ブロック射影データが入力され、入力端子 502には、第 2の水平方向ブ ロック射影データ最大値保存部 47から出力された第 4の閾値が入力される。また、入 力端子 503には、第 3の閾値交差点探索部 48から出力された第 3の閾値交差点の 情報が入力される。
[0065] n値化器 504は、入力端子 501から入力された第 1の水平方向ブロック射影データ を、入力端子 502から入力される第 4の閾値に基づいて n値ィ匕 (例えば 3値化)する。
[0066] 加算器 505は、 n値化器 504で n値ィ匕された第 1の水平方向ブロック射影データと、 垂直方向動きベクトル加算メモリ 506から読み出されたデータとを第 3の閾値交差点 を中心として加算し、加算結果を垂直方向動きベクトル加算メモリ 506に再び記憶さ せる。このような加算動作が繰り返されることにより水平方向ブロックに関する全ての 第 3の閾値交差点についての加算が終了すると、水平方向ブロックに関する加算デ ータがピーク検出器 507に出力される。
[0067] ピーク検出器 507は、加算器 505から出力された加算データにおけるピーク位置( 後述する垂直方向動きベクトル)を検出する。このピーク検出器 507で検出されたピ ーク位置は、出力端子 508を介して垂直方向動きベクトル決定部 51に入力されるこ ととなる。
[0068] 以上のような構成を有する動きベクトル検出装置 1の動作について、以下で説明す る。
[0069] <動きべタトル検出装置 1の動作 >
まず、動きベクトル検出装置 1において画像の水平方向の動きベクトルを検出する 水平方向動きベクトル検出部 2の動作を説明する。
[0070] 図 2のように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出 されるフレーム画像が、図 3に示す水平方向動きベクトル検出部 2の入力端子 20に 入力されると、垂直方向画像分割部 21で垂直方向にブロック分割される。すなわち、 垂直方向画像分割部 21においては、フレーム画像において垂直方向に分割して得 られる複数の画像領域 (垂直方向ブロック)が設定される。これにより、以降の処理で は、垂直方向ブロックごとに処理および管理が行われることとなる。
[0071] 垂直方向画像分割部 21では、例えば図 9の (a)に示すように 640画素 X 480画素 の画像データ力 垂直方向に 64画素の幅 (分割幅)を有した 7個の垂直方向ブロック V b0〜vb6に分割される。なお、垂直方向の最下段の画像データ vb7は水平方向動き ベクトルの検出において利用されないこととなる力 フレーム画像の大部分を占める 7 つの垂直方向ブロック vb0〜vb6が水平方向動きベクトルの検出に使用されるため、 検出精度の面で特に問題はないと考えられる。ここで、図 9の (a)に示す分割幅およ び分割数とするのは必須ではな 、。
[0072] 垂直方向画像分割部 21で図 9の (a)のように 7個の垂直方向ブロック vb0〜vb6に 分割された画像は、垂直方向エッジ抽出フィルタリング部 22において垂直方向に延 びるエッジ成分の抽出、換言すれば水平方向に急峻に変化する画像部分を強調す るようなフィルタリング処理が施される。このフィルタリング処理で用いられるフィルタと しては、単純に水平方向に隣接する画素との差分を取る (1, 1)の 2タップフィルタや 、 2次微分に相当する (—1,2,— 1)の 3タップフィルタなどの使用が可能である。なお、
このようなフィルタを使用するのは必須でなぐ水平方向に輝度変化が大きくなる画 像部分にぉ 、て出力値が上昇するフィルタであれば良 、。
[0073] 垂直方向エッジ抽出フィルタリング部 22で各垂直方向ブロック (画像領域) vbO〜vb 6ごとに垂直方向のエッジが強調された画像データは、垂直方向ブロック射影部 23 に入力され、垂直方向ブロック射影部 23で垂直方向に射影される。この射影により、 垂直方向の (ライン間で)ノイズ成分を低減でき、また垂直方向のエッジ成分をより強 調できるため、特徴点に対応する垂直方向エッジを際立たせて動きベクトル検出精 度の向上を図れることとなる。垂直方向ブロック射影部 23の動作について、図 9の (b) に示す概念図を参照しつつ説明する。
[0074] 垂直方向ブロック射影部 23では、図 9の (a)に示す各垂直方向ブロック vb0〜vb6 の入力が完了した時点、つまりエッジ強調された各垂直方向ブロック vb0〜vb6にお ける最終ラインの最終画素が入力された時点で、 1水平ライン分のデータ配列 Mvを 有する垂直方向ブロック射影データ νη0〜νη6(図 9の (b))それぞれの全配列要素が 生成される。なお、データ配列 Mvは、水平ラインの全画素数 (例えば 640)の配列要 素を有している力 (1, 1)のような 2タップフィルタでは有効要素が水平ラインの全 画素数 1(例えば 639)、(一 1, 2, 1)のような 3タップフィルタでは有効要素が水平 ラインの全画素数— 2(例えば 638)となる。
[0075] 具体的には、図 4に示すように入力端子 231を介して入力された各垂直方向ブロッ ク vb0〜vb6の画像データ (垂直方向のエッジ強調が施された画像データ)力 順次 に加算器 232に入力される。加算器 232では、まず入力された垂直方向ブロックの 先頭の水平ライン力 垂直方向射影一時記憶メモリ 233内のデータを読み出すこと なぐ垂直方向射影一時記憶メモリ 233に書き込まれる。次に、加算器 232では、垂 直方向射影一時記憶メモリ 233に記憶されている前ラインまでの加算結果を読み出 し、入力端子 231から入力される垂直方向ブロックの水平 1ラインとの加算を行って、 その加算結果を垂直方向射影一時記憶メモリ 233に書き戻す。
[0076] そして、垂直方向ブロックにおける最終の水平ラインが加算器 232に入力されると、 垂直方向射影一時記憶メモリ 233に保存された前ラインまでの加算結果を読み出し 、入力端子 231から入力される垂直方向ブロックの最終ラインとの加算を行って、そ
の加算結果、つまり垂直方向ブロックの全ての水平ラインが加算されたデータを垂直 方向ブロックの射影データとして、出力端子 234から第 1の垂直方向ブロック射影デ ータ最大値保存部 24とビット数削減部 25とに出力する。
[0077] なお、加算器 232において垂直方向ブロックの全水平ラインが加算された射影デ ータを垂直方向射影一時記憶メモリ 233にー且記憶させ、次の垂直方向ブロックの 先頭ラインが入力される際に、垂直方向射影一時記憶メモリ 233内の射影データを 読み出して出力端子 234から出力するようにしても良 、。
[0078] 第 1の垂直方向ブロック射影データ最大値保存部 24では、垂直方向ブロック射影 部 23から出力された垂直方向ブロックの射影データに関する最大値を算出し、第 1 の垂直方向ブロック射影データ最大値 (現フレームの垂直方向ブロック射影データ最 大値)として保存する。すなわち、第 1の垂直方向ブロック射影データ最大値保存部 2 4は、現フレーム(後フレーム)の射影データに関するデータ配列 Mv (図 9 (b) )の配 列要素にお 、て最大値を求め、この最大値を記憶する。
[0079] また、第 1の垂直方向ブロック射影データ最大値保存部 24では、算出された現フレ ームの垂直方向ブロック射影データ最大値に基づき、第 2の閾値を算出する。例え ば、現フレームの垂直方向ブロック射影データ最大値を Plmaxとすると、第 2の閾値 α 2は次の式(1)で算出される。
[0080] a 2 = Plmax X kl (1)
ここで、 klは予め定められた係数で、 0く kl < 1である。
[0081] なお、第 2の閾値 a 2の演算は、上式 (1)に限るものではなぐ現フレームの垂直方 向ブロック射影データ最大値 Plmaxが大きくなれば第 2の閾値 oc 2が大きくなるもの であれば良ぐまた変換テーブルを使用しても良!、。
[0082] ビット数削減部 25では、第 1の垂直方向ブロック射影データ最大値保存部 24から 入力された現フレームの垂直方向ブロック射影データ最大値 (第 1の垂直方向ブロッ ク射影データ最大値)に基づき射影データの有効ビットレンジを決定する。そして、こ の有効ビットレンジに基づき設定される上位無効ビットおよび下位無効ビットを垂直 方向ブロック射影部 23から入力された垂直方向ブロック射影データから削減し、有効 ビットのみで構成される現フレームの垂直方向ブロック射影データを第 1の垂直方向
ブロック射影ラインメモリ 26に出力する。
[0083] 第 1の垂直方向ブロック射影ラインメモリ 26は、ビット数削減部 25によってビット数 が低減された現フレームの垂直方向ブロック射影データを、第 1の垂直方向ブロック 射影データとして垂直方向ブロックごとに保存する。すなわち、第 1の垂直方向ブロッ ク射影ラインメモリ 26には、第 1の垂直方向ブロック射影データ最大値保存部 24で求 められた第 1の垂直方向ブロック射影データ最大値に基づきビット数削減部 25にお V、てビット数 (各配列要素のデータ長)が削減された現フレーム (後フレーム)の射影 データが記憶される。
[0084] 第 1の垂直方向ブロック射影ラインメモリ 26は、現フレームに関する新たな第 1の垂 直方向ブロック射影データが入力されるタイミングで、前フレームの垂直方向ブロック 射影データを読み出し、第 2の垂直方向ブロック射影ラインメモリ 27に与える。
[0085] 第 2の垂直方向ブロック射影ラインメモリ 27は、第 1の垂直方向ブロック射影ラインメ モリ 26から読み出された前フレームの垂直方向ブロック射影データを、第 2の垂直方 向ブロック射影データとして保存する。
[0086] 同様に、第 1の垂直方向ブロック射影データ最大値保存部 24は、現フレームに関 する新たな第 1の垂直方向ブロック射影データ最大値が更新されるタイミングで、既 に保存されている第 1の垂直方向ブロック射影データ最大値を読み出し、第 2の垂直 方向ブロック射影データ最大値保存部 28に与える。
[0087] 第 2の垂直方向ブロック射影データ最大値保存部 28では、第 1の垂直方向ブロック 射影データ最大値保存部 24から読み出された第 1の垂直方向ブロック射影データ最 大値力 前フレームに関する第 2の垂直方向ブロック射影データ最大値 (前フレーム の垂直方向ブロック射影データ最大値)として保存される。
[0088] 換言すれば、第 1の垂直方向ブロック射影データ最大値保存部 24に保存された現 フレームの垂直方向ブロック射影データ最大値は、次のフレームでは、第 2の垂直方 向ブロック射影データ最大値保存部 28に前フレームの垂直方向ブロック射影データ 最大値として保存されることとなる。
[0089] 第 2の垂直方向ブロック射影データ最大値保存部 28は、前フレームに関する第 2の 垂直方向ブロック射影データ最大値に基づき、第 1の閾値 (所定の一定値)が設定さ
れる。例えば、前フレームの垂直方向ブロック射影データ最大値を P2maxとすると、 第 1の閾値 α ΐは次の式(2)で算出される。
[0090] a 1 = P2max X k2 (2)
ここで、 k2は予め定められた係数で、 0< k2< 1である。
[0091] なお、第 1の閾値 a 1の演算は、上式 (2)に限るものではなぐ前フレームの垂直方 向ブロック射影データ最大値 P2maxが大きくなれば第 1の閾値 oc 1が大きくなるもの であれば良ぐまた変換テーブルを使用しても良!、。
[0092] 第 1の閾値交差点探索部 29では、第 2の垂直方向ブロック射影ラインメモリ 27から 読み出された第 2の垂直方向ブロック射影データと、第 2の垂直方向ブロック射影デ ータ最大値保存部 28から出力された第 1の閾値との交差点 (第 1の閾値交差点)を水 平方向に探索する。この第 1の閾値交差点探索部 29で得られた第 1の閾値交差点 の情報は、垂直方向ブロック射影データ読み出し部 30と垂直方向ブロック水平方向 動きベクトル算出部 31とに出力される。
[0093] 垂直方向ブロック射影データ読み出し部 30は、第 1の閾値交差点探索部 29から出 力された第 1の閾値交差点を中心とした動きべ外ル検出範囲に対応した現フレーム の (第 1の)垂直方向ブロック射影データを第 1の垂直方向ブロック射影ラインメモリ 26 から読み出す。
[0094] すなわち、第 1の閾値交差点を A(i) (ただし i= 1 ,2, · · · ρで、 ρは検出された第 1の閾 値交差点の総数)とし、動きべ外ル検出範囲を第 1の閾値交差点を中心とした (—V) から (+ V) (ただし Vは正の整数)の範囲とすると、第 1の垂直方向ブロック射影ライン メモリ 26から読み出される射影データは、水平方向において (A(i)— V)力も (A(i) +V) までの範囲にある第 1の垂直方向ブロック射影データの部分データとなる。
[0095] この垂直方向ブロック射影データ読み出し部 30によって第 1の垂直方向ブロック射 影ラインメモリ 26から読み出された第 1の垂直方向ブロック射影データは、垂直方向 ブロック水平方向動きベクトル算出部 31に出力される。
[0096] 垂直方向ブロック射影データ読み出し部 30から出力された第 1の垂直方向ブロック 射影データは、図 5に示す垂直方向ブロック水平方向動きベクトル算出部 31の入力 端子 31 1を介して n値化器 314 (圧縮手段)に入力される。
[0097] この n値化器 314では、第 1の垂直方向ブロック射影データ最大値保存部 24から出 力され、入力端子 312を介して入力された第 2の閾値に基づき、第 1の垂直方向プロ ック射影データを n値化する。
[0098] すなわち、 n値化器 314は、垂直方向ブロック射影データ読み出し部 30で抽出され た現フレームの射影データに関するデータ配列 Mv (図 9の (b))各配列要素のデータ 長を、例えば 3値化処理して圧縮する。この n値化器 314の処理について、図 10を参 照しつつ説明する。
[0099] 図 10は、 n値化器 314における n値ィ匕処理を説明するための図である。なお、図 10 では、 n= 3となる 3値化処理の一例を示して!/、る。
[0100] n値化器 314に入力される第 1の垂直方向ブロック射影データを D、入力端子 312 を介して入力される第 2の閾値を α 2( α 2は正の整数)とすると、 η値化器 314では、 D< (- a 2)のとき (一 1)を出力し、 (- a 2)≤D≤ a 2のとき 0を出力するとともに、 D > « 2のとき 1を出力することで 3値ィ匕処理が行われる。すなわち、 n値化器 314にお ける 3値化処理では、現フレーム (後フレーム)の射影データにおけるデータ配列 Mv の配列要素の最大値に基づき設定される第 2の閾値 α 2( α 2 >0)に関して、垂直方 向ブロック射影データ読み出し部 30で抽出された現フレームの射影データに関する 配列要素の値力 (一 a 2)より小さい場合、(一 a 2)以上で a 2以下の場合、および a 2より大きい場合の 3段階による 3値ィ匕が行われる。
[0101] この n値化器 314での n値ィ匕処理については、垂直方向ブロック射影データ読み出 し部 30から出力される現フレームの第 1の垂直方向ブロック射影データの部分波形 力 第 1の閾値交差点に対してどのような位置関係、つまりどのような傾向の波形とな つているのかが重要であるため、第 1の垂直方向ブロック射影データの波形において 山や谷が判別できるだけのビット精度を確保すれば十分である。
[0102] 一方、 n値化器 314においてビット数の削減を行わずに、垂直方向ブロック射影デ ータ読み出し部 30から出力された第 1の垂直方向ブロック射影データの値そのもの を採用する場合には、第 1の垂直方向ブロック射影データ D > ひ 2に対応する大きな 振幅の山や、 Dく(一 a 2)に対応する大きな振幅の谷に、画像の特徴が表れる小さ な振幅の山や谷が埋没してしまう恐れがあり不適切である。さらに、(一 o; 2)≤D≤ a
2に対応する小さな山や谷は、ノイズの影響を受けやすく数も多いため、これに画像 の特徴が表れる適度な振幅の山や谷が埋もれることとなる。
[0103] よって、 n値化器 314では、第 1の垂直方向ブロック射影データに対して適切な n値 化処理を施すことにより、動きベクトルの検出精度の向上を図っている。
[0104] 以上で説明した第 1の閾値交差点探索部 29、垂直方向ブロック射影データ読み出 し部 30および垂直方向ブロック水平方向動きベクトル算出部 31の動作について、図 11を参照しつつ具体的に説明する。なお、図 11の (a)および (b)の横軸は、射影デー タのデータ配列 Mv (図 9の (b》の配列要素の位置を示している。また、図 11の (a)では 、第 1の閾値交差点 A(1)〜A(8)それぞれを丸印で表している。
[0105] 第 1の閾値交差点探索部 29では、図 11の (a)に示すように前フレームに関する第 2 の垂直方向ブロック射影データ W2の波形において、第 2の垂直方向ブロック射影デ ータ最大値保存部 28から出力された第 1の閾値《1と交差する第 1の閾値交差点 A( 1)〜A(8)が求められる。
[0106] すなわち、第 1の閾値交差点探索部 29は、前フレームに対して垂直方向ブロック射 影部 23で得られた射影データに関して射影データのデータ配列 Mv (図 9の (b))の 要素順に配列要素の値をグラフ化した波形 W2と、配列要素の値が第 1の閾値 (所定 の一定値) a 1となる直線とが交差する各第 1の閾値交差点の配列要素の位置を特 定する。
[0107] 次に、垂直方向ブロック射影データ読み出し部 30では、図 11の (a)に示す各第 1の 閾値交差点 A(1)〜A(8)を中心とした所定の動きベクトル検出範囲について第 1の垂 直方向ブロック射影ラインメモリ 26から現フレームの垂直方向ブロック射影データが 読み出される。
[0108] すなわち、垂直方向ブロック射影データ読み出し部 30は、各第 1の閾値交差点に おける射影データ (データ配列)の配列要素の位置を中心とした所定範囲のデータ配 列を、垂直方向ブロック射影部 23から出力されビット数削減部 25によりビット数が削 減された現フレーム (後フレーム)の射影データから抽出する。
[0109] 例えば第 1の閾値交差点 A(7)に関しては、図 11の (b)に示すように第 1の閾値交差 点 A(7)を中心に (A(7)— V)力も (A(7) +V)までの範囲 (矩形の破線内の波形部分)に
対応する第 1の垂直方向ブロック射影データ Wlが読み出される。
[0110] そして、垂直方向ブロック射影データ読み出し部 30によって読み出された第 1の垂 直方向ブロック射影データは、第 1の垂直方向ブロック射影データ最大値保存部 24 力 出力された第 2の閾値 α 2を用いて、垂直方向ブロック水平方向動きベクトル算 出部 31の η値器 314で η値ィ匕処理される。
[0111] 例えば第 1の閾値交差点 Α(7)に関しては、図 11の (b)に示す第 2の閾値 a 2および (一《2)に対する第 1の垂直方向ブロック射影データ W1の大小関係に基づき、第 1 の閾値交差点 Α(7)を中心に (Α(7)— V)力も (A(7)+V)までの範囲 (矩形の破線内の 波形部分)について、図 11の (c)のように第 1の垂直方向ブロック射影データが 3値ィ匕 処理される。これにより、現フレームの垂直方向ブロック射影データが「一 1」、「0」ま たは「 1」で表されることとなる。
[0112] n値化器 314では、第 1の閾値交差点探索部 29から出力される全ての第 1の閾値 交差点にっ 、て、図 11の (c)に示すような n値ィ匕処理が行われる。
[0113] 次に、加算器 315(図 5)では、入力端子 313を介して第 1の閾値交差点探索部 29 力も出力された第 1の閾値交差点を中心に、 n値化器 314で n値化された第 1の垂直 方向ブロック射影データと、水平方向動きベクトル加算メモリ 316から読み出された 1 つ前までの n値ィ匕された第 1の垂直方向ブロック射影データの加算値とを加算し、そ の加算結果を水平方向動きべクトル加算メモリ 316に再び記憶させる。
[0114] そして、第 1の閾値交差点探索部 29で検出された全ての第 1の閾値交差点のうち 最後のものに関する n値ィ匕された第 1の垂直方向ブロック射影データを加算器 315で 加算して、 1つの垂直方向ブロックについての加算処理を終了する際には、その加 算結果をピーク検出器 317に出力するようにする。
[0115] なお、加算器 315での加算処理終了後に、全ての第 1の閾値交差点に関する加算 結果を記憶している水平方向動きベクトル加算メモリ 316から、その加算結果をピー ク検出部 317が読み出すようにしても良い。
[0116] ピーク検出器 317には、第 1の閾値交差点探索部 29で検出された全ての第 1の閾 値交差点について各第 1の閾値交差点を中心とした動きべ外ル検出範囲 (上述した 士 Vの範囲)に対応する n値ィ匕済みの第 1の垂直方向ブロック射影データを加算した
データ(以下では「垂直方向ブロック n値ィ匕データ」ともいう)が入力される力 この垂 直方向ブロック n値化データに関するピーク値がピーク検出器 317で検出される。
[0117] このピーク検出器 317において検出される垂直方向ブロック n値ィ匕データのピーク 位置が、その垂直方向ブロック力 得られる水平方向動きベクトルとなり、出力端子 3 18を介して水平方向動き決定部 32に出力される。
[0118] 以上で説明した加算器 315およびピーク検出部 317の動作について、図 12を参照 しつつ具体的に説明する。なお、図 12の (a)では、図 11の (a)に示す第 1の閾値交差 点 A(1)〜A(8)を中心とした動きベクトル検出範囲 (士 Vの範囲)において第 1の垂直 方向ブロック射影データを 3値ィ匕したものを概念的に示している。
[0119] 加算器 315において、図 12の (a)に示す第 1の閾値交差点 A(1)〜A(8)周辺の 3値 化データが順次に入力されると、これらのデータが加算され、図 12の (b)に示すような 垂直方向ブロック n値ィ匕データが生成される。
[0120] 具体的には、加算器 315において垂直方向ブロック射影データ読み出し部 30によ り垂直方向ブロック射影データ (データ配列 Mv (図 9の (b)》力も抽出され、 n値器 314 でデータ長が圧縮された現フレームに係る動きベクトル検出範囲 (所定範囲)のデー タ配列それぞれについて、各第 1の閾値交差点の配列要素の位置に対して相対位 置が同じ配列要素同士の値が加算されることとなる。
[0121] 加算器 315で生成された垂直方向ブロック n値ィ匕データがピーク検出器 317に入 力されると、その垂直方向ブロックの水平方向動きベクトルとして図 12の (b)に示す水 平方向のピーク位置 hvが検出される。すなわち、ピーク検出器 317では、加算器 31 5で加算された加算結果に基づき、フレーム画像の水平方向に関する動きベクトルが 検出される。
[0122] このピーク検出器 317では、原則的に動きベクトル検出範囲(士 Vの範囲)におい て最大値となるピーク位置が探索されるが、同一の最大値が複数ある場合には、原 点 0に近いもの (原点 0までの距離が等しい場合には負の位置のもの)を優先する。な お、このようなピーク位置の検出ルールに限らず、正の位置にある最大値を優先して も良ぐまた前フレームにおける動きベクトルの傾向を現フレームのピーク位置の検出 に利用するようにしても良い。
[0123] ピーク検出器 317で垂直方向ブロックごとに算出された水平方向動きベクトルは、 順次に出力端子 318を介して水平方向動きベクトル決定部 32に入力される。
[0124] 水平方向動きベクトル決定部 32では、垂直方向ブロック水平方向動きベクトル算出 部 31から順次に出力される各垂直方向ブロックの水平方向動きベクトルに基づき、 画像全体の水平方向動きベクトルが決定される。この水平方向動きベクトル決定部 3 2では、例えば最も出現頻度が高い水平方向動きベクトルを画像全体の水平方向動 きベクトルとして決定する。
[0125] なお、最も出現頻度が高い水平方向動きベクトルを画像全体の水平方向動きべタト ルとして決定するのは必須でなぐ垂直方向ブロック水平方向動きベクトル算出部 31 力も出力される各垂直方向ブロックの水平方向動きベクトルの平均値を、画像全体の 水平方向動きベクトルとして決定するようにしても良 、。
[0126] 以上のように水平方向動きベクトル決定部 32では、各垂直方向ブロックの水平方 向動きベクトルに基づいてフレーム画像全体に関する水平方向の動きベクトルを決 定するため、画像の一部で動きがあった場合でも、その動きへの誤反応を抑制できる こととなる。
[0127] なお、フレーム画像全体に関する水平方向動きベクトルの検出にあたっては、必ず しもフレーム画像全体を使う必要はなぐフレーム画像の一部力 水平方向動きべク トルを検出し、それをフレーム画像全体に関する水平方向動きベクトルとしても良い。
[0128] 次に、動きベクトル検出装置 1において画像の垂直方向の動きベクトルを検出する 垂直方向動きベクトル検出部 4の動作を説明する。
[0129] 図 2のように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出 されるフレーム画像力 図 6に示す垂直方向動きベクトル検出部 4の入力端子 40に 入力されると、水平方向画像分割部 41で水平方向にブロック分割される。すなわち、 水平方向画像分割部 41においては、フレーム画像において水平方向に分割して得 られる複数の画像領域 (水平方向ブロック)が設定される。これにより、以降の処理で は、水平方向ブロックごとに処理や管理が行われることとなる。
[0130] 水平方向画像分割部 41では、例えば図 13の (a)に示すように 640画素 X 480画素 の画像データ力 水平方向に 64画素の幅 (分割幅)を有した 10個の水平方向ブロッ
ク hb0〜hb9に分割される。なお、図 13の (a)に示す分割幅および分割数とするのは 必須ではない。
[0131] 水平方向画像分割部 41で図 13の (a)のように 10個の水平方向ブロック hbO〜hb9 に分割された画像は、水平方向エッジ抽出フィルタリング部 42において水平方向に 延びるエッジ成分の抽出、換言すれば垂直方向に急峻に変化する画像部分を強調 するようなフィルタリング処理が施される。このフィルタリング処理で用いられるフィルタ としては、単純に垂直方向に隣接する画素との差分を取る (1, 1)の 2タップフィルタ や、 2次微分に相当する (—1,2,— 1)の 3タップフィルタなどの使用が可能である。な お、このようなフィルタを使用するのは必須でなぐ垂直方向に輝度変化が大きくなる 画像部分にぉ 、て出力値が上昇するフィルタであれば良 、。
[0132] 水平方向エッジ抽出フィルタリング部 42で各水平方向ブロック (画像領域) hbO〜hb 9ごとに水平方向のエッジが強調された画像データは、水平方向ブロック射影部 43 に入力され、水平方向ブロック射影部 43で水平方向に射影される。この射影により、 水平方向の (ライン間で)ノイズ成分を低減でき、また水平方向のエッジ成分をより強 調できるため、特徴点に対応する水平方向エッジを際立たせて動きベクトル検出精 度の向上を図れることとなる。水平方向ブロック射影部 43の動作について、図 13の( b)の概念図を参照しつつ説明する。
[0133] 水平方向ブロック射影部 43では、図 13の (a)に示す各水平方向ブロック hbO〜hb9 の 1水平ラインの入力が完了した時点で、 1垂直ライン分のデータ配列 Mhを有する 水平方向ブロック射影データ hnO〜hn9(図 13の (b》の 1配列要素が生成される。し たがって、全配列要素が揃うのは、各水平方向ブロック hbO〜hb9の最終の水平ライ ンの入力が完了した時点である。なお、データ配列 Mhは、垂直ラインの全画素数( 例えば 480)の配列要素を有している力 (1, 1)のような 2タップフィルタでは有効要 素が垂直ラインの全画素数 1(例えば 479)、(一 1, 2, 1)のような 3タップフィルタ では有効要素が垂直ラインの全画素数— 2(例えば 478)となる。
[0134] 具体的には、図 7に示すように入力端子 431を介して入力された各水平方向ブロッ ク hbO〜hb9の画像データ (水平方向のエッジ強調が施された画像データ)力 加算 器 432に入力される。加算器 432では、まず入力された水平方向ブロックの 1水平ラ
インの先頭では、水平方向射影一時記憶メモリ 433内のデータを読み出すことなぐ 水平方向射影一時記憶メモリ 433に書き込まれる。
[0135] 次に、加算器 432では、水平方向射影一時記憶メモリ 433に記憶されている 1水平 ラインの前画素までの加算結果を読み出し、入力端子 431から入力される水平方向 ブロックの 1水平ラインの現画素との加算を行って、その加算結果を水平方向射影一 時記憶メモリ 433に書き戻す。
[0136] そして、水平方向ブロックにおける 1水平ラインの最終画素が加算器 432に入力さ れると、水平方向射影一時記憶メモリ 433に保存された前画素までの加算結果を読 み出し、入力端子 431から入力される水平方向ブロックの 1水平ラインの最終画素と の加算を行って、その加算結果、つまり水平方向ブロックの 1水平ラインの全画素が 加算されたデータを水平方向ブロックの 1水平ラインに関する射影データとして、出 力端子 434から第 1の水平方向ブロック射影ラインメモリ 44と第 1の水平方向ブロック 射影データ最大値保存部 45とに出力する。
[0137] なお、加算器 432において水平方向ブロックの 1水平ラインの全画素が加算された 射影データを水平方向射影一時記憶メモリ 433にー且記憶させ、次の水平方向プロ ックの 1水平ラインの先頭画素が入力される際に、水平方向射影一時記憶メモリ 433 内の射影データを読み出して出力端子 434から出力するようにしても良い。
[0138] 第 1の水平方向ブロック射影ラインメモリ 44では、水平方向ブロック射影部 43から 入力された現フレームの水平方向ブロック射影データを、第 1の水平方向ブロック射 影データとして水平方向ブロックごとに保存する。
[0139] 第 1の水平方向ブロック射影データ最大値保存部 45では、水平方向ブロック射影 部 43から入力された水平方向ブロックの射影データに関する最大値を算出し、第 1 の水平方向ブロック射影データ最大値 (現フレームの水平方向ブロック射影データ最 大値)として保存する。
[0140] 第 2の水平方向ブロック射影ラインメモリ 46は、第 1の水平方向ブロック射影ラインメ モリ 44から読み出された水平方向ブロック射影データを、前フレームに関する第 2の 水平方向ブロック射影データとして保存する。
[0141] 同様に、第 2の水平方向ブロック射影データ最大値保存部 47では、第 1の水平方
向ブロック射影データ最大値保存部 45から出力された第 1の水平方向ブロック射影 データ最大値が、前フレームに関する第 2の水平方向ブロック射影データ最大値 (前 フレームの水平方向ブロック射影データ最大値)として保存される。
[0142] 換言すれば、第 1の水平方向ブロック射影データ最大値保存部 45に保存された現 フレームの水平方向ブロック射影データ最大値は、次のフレームでは、第 2の水平方 向ブロック射影データ最大値保存部 47に前フレームの水平方向ブロック射影データ 最大値として保存されることとなる。
[0143] また、第 2の水平方向ブロック射影データ最大値保存部 47では、算出された前フレ ームの水平方向ブロック射影データ最大値に基づき、第 4の閾値を算出する。例え ば、前フレームの水平方向ブロック射影データ最大値を P4maxとすると、第 4の閾値 a 4は次の式 (3)で算出される。
[0144] « 4 = P4max X k4 (3)
ここで、 k4は予め定められた係数で、 0<k4く 1である。
[0145] なお、第 4の閾値 α 4の演算は、上式(3)に限るものではなぐ前フレームの水平方 向ブロック射影データ最大値 P4maxが大きくなれば第 4の閾値 a 4が大きくなるもの であれば良ぐまた変換テーブルを使用しても良い。また、第 4の閾値《4については 、水平方向ブロック毎の第 2の水平方向ブロック射影データ最大値を使用するのは必 須でなぐ例えば前フレームの画像全体についての水平方向ブロック射影データの 最大値を用いて第 4の閾値を算出し、画像全体で同じ第 4の閾値を採用しても良い。
[0146] 第 2の水平方向ブロック射影データ最大値保存部 47は、前フレームに関する第 2の 水平方向ブロック射影データ最大値に基づき、第 3の閾値 (所定の一定値)が設定さ れる。例えば、前フレームの水平方向ブロック射影データ最大値を P3maxとすると、 第 3の閾値 a 3は次の式 (4)で算出される。
[0147] « 3 = P3max X k3 (4)
ここで、 k3は予め定められた係数で、 0<k3< 1である。
[0148] なお、第 3の閾値 α 3の演算は、上式 (4)に限るものではなぐ前フレームの水平方 向ブロック射影データ最大値 P3maxが大きくなれば第 3の閾値 oc 3が大きくなるもの であれば良ぐまた変換テーブルを使用しても良い。また、第 3の閾値《3については
、水平方向ブロック毎の第 2の水平方向ブロック射影データ最大値を使用するのは必 須でなぐ例えば前フレームの画像全体についての水平方向ブロック射影データの 最大値を用いて第 3の閾値を算出し、画像全体で同じ第 3の閾値を採用しても良い。
[0149] 第 3の閾値交差点探索部 48では、第 2の水平方向ブロック射影ラインメモリ 46から 読み出された第 2の水平方向ブロック射影データと、第 2の水平方向ブロック射影デ ータ最大値保存部 47から出力された第 3の閾値との交差点 (第 3の閾値交差点)を垂 直方向に探索する。この第 3の閾値交差点探索部 48で得られた第 3の閾値交差点 の情報は、水平方向ブロック射影データ読み出し部 49と水平方向ブロック垂直方向 動きベクトル算出部 50とに入力される。
[0150] 水平方向ブロック射影データ読み出し部 49は、第 3の閾値交差点探索部 48から出 力された第 3の閾値交差点を中心とした動きべ外ル検出範囲に対応した現フレーム の (第 1の)水平方向ブロック射影データを第 1の水平方向ブロック射影ラインメモリ 44 から読み出す。
[0151] すなわち、第 3の閾値交差点を B(i) (ただし i= l,2, ' · 'qで、 qは検出された第 3の閾 値交差点の総数)とし、動きべ外ル検出範囲を第 3の閾値交差点を中心とした (—U) 力も (+U) (ただし Uは正の整数)の範囲とすると、第 1の水平方向ブロック射影ライン メモリ 44から読み出される射影データは、垂直方向において (B(i)— U)力も (B(i) + U) までの範囲にある第 1の水平方向ブロック射影データの部分データとなる。
[0152] この水平方向ブロック射影データ読み出し部 49によって第 1の水平方向ブロック射 影ラインメモリ 44から読み出された第 1の水平方向ブロック射影データは、水平方向 ブロック垂直方向動きベクトル算出部 50に出力される。
[0153] 水平方向ブロック射影データ読み出し部 49から出力された第 1の水平方向ブロック 射影データは、図 8に示す水平方向ブロック垂直方向動きベクトル算出部 50の入力 端子 501を介して n値化器 504 (圧縮手段)に入力される。
[0154] この n値化器 504では、第 2の水平方向ブロック射影データ最大値保存部 47から出 力され、入力端子 502を介して入力された第 4の閾値に基づき、第 1の水平方向プロ ック射影データを n値化する。
[0155] すなわち、 n値化器 504は、水平方向ブロック射影データ読み出し部 49で抽出され
た現フレームの射影データに関するデータ配列 Mh (図 13(b))の各配列要素のデー タ長を圧縮する。この n値化器 504の処理については、上述した n値化器 314と同様 の処理を行!ヽ、例えば 3値化処理が実行される。
[0156] すなわち、 n値化器 504における 3値ィ匕処理では、前フレームの射影データにおけ るデータ配列 Mhの配列要素の最大値に基づき設定される第 4の閾値 α 4( α 4 >0) に関して、水平方向ブロック射影データ読み出し部 49で抽出された現フレームの射 影データに関する配列要素の値力 (一 α 4)より小さい場合、 (- α 4)以上で《4以下 の場合、および α 4より大きい場合の 3段階による 3値ィ匕が行われる。なお、 η値化器 504においては、 η値化器 314と同じ特性を有するのは必須でなぐ η値ィ匕器 314と 異なる特性を有しても良い。
[0157] 以上で説明した第 3の閾値交差点探索部 48、水平方向ブロック射影データ読み出 し部 49および水平方向ブロック垂直方向動きベクトル算出部 50の動作について、図 14を参照しつつ具体的に説明する。なお、図 14の (a)および (b)の横軸は、射影デー タのデータ配列 Mh (図 13の (b》の配列要素の位置を示している。また、図 14の (a)で は、第 3の閾値交差点 B(1)〜B(6)それぞれを丸印で表している。
[0158] 第 3の閾値交差点探索部 48では、図 14の (a)に示すように前フレームに関する第 2 の垂直方向ブロック射影データ W4の波形において、第 2の水平方向ブロック射影デ ータ最大値保存部 47から出力された第 3の閾値 a 3と交差する第 3の閾値交差点 B( 1)〜B(6)が求められる。
[0159] すなわち、第 3の閾値交差点探索部 48は、前フレームに対して水平方向ブロック射 影部 43で得られた射影データに関して射影データのデータ配列 Mh (図 13の (b))の 要素順に配列要素の値をグラフ化した波形 W4と、配列要素の値が第 3の閾値 (所定 の一定値) a 3となる直線とが交差する各第 3の閾値交差点の配列要素の位置を特 定する。
[0160] 次に、水平方向ブロック射影データ読み出し部 49では、図 14の (a)に示す各第 3の 閾値交差点 B(1)〜B(6)を中心とした所定の動きベクトル検出範囲について第 1の水 平方向ブロック射影ラインメモリ 44から現フレームの水平方向ブロック射影データが 読み出される。
[0161] すなわち、水平方向ブロック射影データ読み出し部 49は、各第 3の閾値交差点に おける射影データ (データ配列)の配列要素の位置を中心とした所定範囲のデータ配 列を、水平方向ブロック射影部 43で得られた現フレーム (後フレーム)の射影データか ら抽出する。 例えば第 3の閾値交差点 B(4)に関しては、図 14(b)に示すように第 3の 閾値交差点 B(4)を中心に (B(4)— U)力 (B(4) + U)までの範囲 (矩形の破線内の波 形部分)に対応する第 1の水平方向ブロック射影データ W3が読み出される。
[0162] そして、水平方向ブロック射影データ読み出し部 49によって読み出された第 1の水 平方向ブロック射影データは、第 2の水平方向ブロック射影データ最大値保存部 47 力 出力された第 4の閾値《4を用いて、水平方向ブロック垂直方向動きベクトル算 出部 50の n値器 504で n値ィ匕処理される。
[0163] 例えば第 3の閾値交差点 B(4)に関しては、図 14の (b)に示す第 4の閾値 a 4および ( α 4)に対する第 1の水平方向ブロック射影データ W3の大小関係に基づき、第 3の 閾値交差点 Β(4)を中心に (B(4)— U)力 (B(4) + U)までの範囲 (矩形の破線内の波 形部分)について、図 14の (c)のように第 1の水平方向ブロック射影データが 3値ィ匕処 理される。これにより、現フレームの水平方向ブロック射影データが「一 1」、 「0」また は「1」で表されることとなる。
[0164] n値化器 504では、第 3の閾値交差点探索部 48から出力される全ての第 3の閾値 交差点について、図 14の (c)に示すような n値ィ匕処理が行われる。
[0165] 次に、加算器 505(図 8)では、入力端子 503を介して第 3の閾値交差点探索部 48 力も出力された第 3の閾値交差点を中心に、 n値化器 504で n値化された第 1の水平 方向ブロック射影データと、垂直方向動きベクトル加算メモリ 506から読み出された 1 つ前までの n値ィ匕された第 1の水平方向ブロック射影データの加算値とを加算し、そ の加算結果を垂直方向動きベクトル加算メモリ 506に再び記憶させる。
[0166] そして、第 3の閾値交差点探索部 48で検出された全ての第 3の閾値交差点のうち 最後のものに関する n値ィ匕された第 1の水平方向ブロック射影データを加算器 505で 加算して 1つの水平方向ブロックについての加算処理を終了する際には、その加算 結果をピーク検出器 507に出力するようにする。
[0167] なお、加算器 505での加算処理終了後に、全ての第 3の閾値交差点に関する加算
結果を記憶して 、る垂直方向動きベクトル加算メモリ 506から、その加算結果をピー ク検出部 507が読み出すようにしても良い。
[0168] ピーク検出器 507には、第 3の閾値交差点探索部 48で検出された全ての第 3の閾 値交差点について各第 3の閾値交差点を中心とした動きべ外ル検出範囲 (上述した ±Uの範囲)に対応する n値ィ匕済みの第 1の水平方向ブロック射影データを加算した データ(以下では「水平方向ブロック n値ィ匕データ」ともいう)が入力される力 この水 平方向ブロック n値化データに関するピーク値がピーク検出器 507で検出される。
[0169] このピーク検出器 507において検出される水平方向ブロック n値ィ匕データのピーク 位置が、その水平方向ブロック力 得られる垂直方向動きベクトルとなり、出力端子 5 08を介して垂直方向動き決定部 51に出力される。
[0170] 以上で説明した加算器 505およびピーク検出部 507の動作について、図 15を参照 しつつ具体的に説明する。なお、図 15の (a)では、図 14の (a)に示す第 3の閾値交差 点 B(1)〜B(6)を中心とした動きベクトル検出範囲 (±Uの範囲)において第 1の水平 方向ブロック射影データを 3値ィ匕したものを概念的に示している。
[0171] カロ算器 505において、図 15の (a)に示す第 3の閾値交差点 B(1)〜B(6)周辺の 3値 化データが順次に入力されると、これらのデータが加算され、図 15の (b)に示すような 水平方向ブロック n値ィ匕データが生成される。具体的には、加算器 505において水 平方向ブロック射影データ読み出し部 49により水平方向ブロック射影データ (データ 配列 Mh (図 13の (b)))力 抽出され n値器 504でデータ長が圧縮された現フレームに 係る動きベクトル検出範囲 (所定範囲)のデータ配列それぞれについて、各第 3の閾 値交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値が加算され ることとなる。
[0172] 加算器 505で生成された水平方向ブロック n値ィ匕データがピーク検出器 507に入 力されると、その水平方向ブロックの垂直方向動きベクトルとして図 15の (b)に示す垂 直方向のピーク位置 wが検出される。すなわち、ピーク検出器 507では、加算器 50 5で加算された加算結果に基づき、フレーム画像の垂直方向に関する動きベクトルが 検出される。
[0173] このピーク検出器 507では、原則的に動きベクトル検出範囲(±Uの範囲)におい
て最大値となるピーク位置が探索されるが、同一の最大値が複数ある場合には、原 点 0に近いもの (原点 0までの距離が等しい場合には負の位置のもの)を優先する。な お、このようなピーク位置の検出ルールに限らず、正の位置にある最大値を優先して も良ぐまた前フレームにおける動きベクトルの傾向を現フレームのピーク位置の検出 に利用するようにしても良い。
[0174] ピーク検出器 507で水平方向ブロックごとに算出された垂直方向動きベクトル (ピー ク値)は、順次に出力端子 508を介して垂直方向動きベクトル決定部 51に入力され る。
[0175] 垂直方向動きベクトル決定部 51では、水平方向ブロック垂直方向動きベクトル算出 部 50から順次に出力される各水平方向ブロックの垂直方向動きベクトルに基づき、 画像全体の垂直方向動きベクトルが決定される。この垂直方向動きベクトル決定部 5 1では、例えば最も出現頻度が高い垂直方向動きベクトルを画像全体の垂直方向動 きベクトルとして決定する。
[0176] なお、最も出現頻度が高い垂直方向動きベクトルを画像全体の垂直方向動きべタト ルとして決定するのは必須でなぐ水平方向ブロック垂直方向動きベクトル算出部 50 力も出力される各水平方向ブロックの垂直方向動きベクトルの平均値を、画像全体の 垂直方向動きベクトルとして決定するようにしても良 、。
[0177] 以上のように垂直方向動きベクトル決定部 51では、各水平方向ブロックの垂直方 向動きベクトルに基づいてフレーム画像全体に関する垂直方向の動きベクトルを決 定するため、画像の一部で動きがあった場合でも、その動きへの誤反応を抑制できる こととなる。
[0178] なお、フレーム画像全体に関する垂直方向動きベクトルの検出にあたっては、必ず しもフレーム画像全体を使う必要はなぐフレーム画像の一部力 垂直方向動きべク トルを検出し、それをフレーム画像全体に関する垂直方向動きベクトルとしても良い。
[0179] <効果 >
以上の動きベクトル検出装置 1の動作により、垂直方向のエッジが強調された各垂 直方向ブロックにつ 、て垂直方向に射影をとつて垂直方向ブロック射影データを生 成するとともに、前フレームの垂直方向ブロック射影データと第 1の閾値 α 1との交差
点 (第 1の閾値交差点)を中心とした動きべ外ル検出範囲に対応した現フレームの垂 直方向ブロック射影データを読み出して各第 1の閾値交差点力 の距離ごとに加算 し、その加算結果力 水平方向に関する動きベクトルを検出するため、特徴点に相 当する画像の垂直方向エッジの動きを少ない演算量で追跡できる。
[0180] 同様に、水平方向のエッジが強調された各水平方向ブロックについて水平方向に 射影をとつて水平方向ブロック射影データを生成するとともに、前フレームの水平方 向ブロック射影データと第 3の閾値 a 3との交差点 (第 3の閾値交差点)を中心とした動 きベクトル検出範囲に対応した現フレームの水平方向ブロック射影データを読み出し て各第 3の閾値交差点力もの距離ごとに加算し、その加算結果力も垂直方向に関す る動きベクトルを検出するため、特徴点に相当する画像の水平方向エッジの動きを少 ない演算量で追跡できる。その結果、水平方向および垂直方向に関する動きべタト ルの検出を精度良く迅速に行える。
[0181] また、動きベクトル検出装置 1のビット数削減部 25では、第 1の垂直方向ブロック射 影データ最大値保存部 24で求められた現フレームの垂直方向ブロック射影データ の最大値に基づき現フレームの垂直方向ブロック射影データのビット数を削減するた め、以降の処理における演算量を抑制でき、動きベクトルの検出を一層迅速に行え る。
[0182] また、動きベクトル検出装置 1では、前フレームに関する第 2の垂直方向ブロック射 影データ最大値を求め、この最大値に基づき第 1の閾値 α 1を設定するため、適切 な第 1の閾値交差点を設定できる。同様に、前フレームに関する第 2の水平方向プロ ック射影データ最大値を求め、この最大値に基づき第 3の閾値 oc 3を設定するため、 適切な第 3の閾値交差点を設定できる。
[0183] また、動きベクトル検出装置 1では、垂直方向画像分割部 21でフレーム画像を垂直 方向に分割した後に、各分割画像 (垂直方向ブロック)につ 、て垂直方向のエッジを 強調するため、垂直方向のエッジが強調された分割画像を簡易に生成できる。同様 に、水平方向画像分割部 41でフレーム画像を水平方向に分割した後に、各分割画 像 (水平方向ブロック)について水平方向のエッジを強調するため、水平方向のエッジ が強調された分割画像を簡易に生成できる。
[0184] また、動きベクトル検出装置 1では、垂直方向ブロック水平方向動きベクトル算出部 31の n値化器 314において垂直方向ブロック射影データ読み出し部 30で読み出さ れた射影データを n値化するため、以降の演算量を低減でき、動きベクトルの検出を より迅速に行える。特に、 n値化器 314では、現フレームの垂直方向ブロック射影デ ータの最大値に基づき設定される第 2の閾値 oc 2に基づき 3値ィ匕するため、ダイナミツ クレンジを比較的大きく確保しつつ、リアルタイム処理可能な動きベクトル検出が実現 できる。また、メモリも大幅に削減することができる。
[0185] 同様に、水平方向ブロック垂直方向動きベクトル算出部 50の n値化器 504におい て水平方向ブロック射影データ読み出し部 49で読み出された射影データを n値ィ匕す るため、以降の演算量を低減でき、動きベクトルの検出をより迅速に行える。特に、 n 値化器 504では、前フレームの水平方向ブロック射影データの最大値に基づき設定 される第 4の閾値《4に基づき 3値ィ匕するため、適切な第 4の閾値《4を設定でき、ダ イナミックレンジを大きく損なうことなぐリアルタイム処理可能な動きベクトル検出が実 現できる。また、メモリも大幅に削減することができる。
[0186] 実施の形態 2.
<動きべクトル検出装置 1 Aの構成 >
図 1に示すように、本発明の実施の形態 2に係る動きベクトル検出装置 1 Aについて は、実施の形態 1の動きベクトル検出装置 1と類似の構成を有している力 水平方向 動きベクトル検出部と垂直方向動きベクトル検出部との構成が異なっている。この動 きベクトル検出装置 1Aにおける水平方向動きベクトル検出部 2Aおよび垂直方向動 きベクトル検出部 4Aの構成について図 16および図 17を参照して説明する。
[0187] 図 16は、水平方向動きベクトル検出部 2Aの要部構成を示すブロック図である。な お、図 16では、実施の形態 1で説明した水平方向動きベクトル検出部 2と同様の機 能を有する部位には同一の符号を付し、重複する説明は省略する。
[0188] 水平方向動きベクトル検出部 2Aのエッジ強調手段では、実施の形態 1の水平方向 動きベクトル検出部 2のエッジ強調手段に対して垂直方向画像分割部 21と垂直方向 エッジ抽出フィルタリング部 22との配置が逆転している。
[0189] <動きべタトル検出装置 1Aの動作 >
まず、水平方向動きベクトル検出部 2Aの動作について説明する。
[0190] 図 2に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読 み出されるフレーム画像が、水平方向動きベクトル検出部 2Aの入力端子 20に入力 されると、垂直方向エッジ抽出フィルタリング部 22にお 、て垂直方向に延びるエッジ 成分の抽出、換言すれば水平方向に急峻に変化する画像部分を強調するようなフィ ルタリング処理が施される。
[0191] 垂直方向エッジ抽出フィルタリング部 22で垂直方向のエッジが強調されたフレーム 画像が垂直方向画像分割部 21に入力されると、垂直方向にブロック分割される。す なわち、垂直方向画像分割部 21では、エッジ強調が施されたフレーム画像を垂直方 向に分割して得られる複数の画像領域 (垂直方向ブロック)が設定される。これにより、 以降の処理では、垂直方向ブロックごとに処理および管理が行われることとなる。
[0192] 垂直方向画像分割部 21で分割された画像データは、垂直方向ブロック射影部 23 に入力される力 この垂直方向ブロック射影部 23以降の処理は、実施の形態 1の水 平方向動きベクトル検出部 2と同様の処理が行われる。
[0193] 図 17は、垂直方向動きベクトル検出部 4Aの要部構成を示すブロック図である。な お、図 17では、実施の形態 1で説明した垂直方向動きベクトル検出部 4と同様の機 能を有する部位には同一の符号を付し、重複する説明は省略する。
[0194] 垂直方向動きベクトル検出部 4Aのエッジ強調手段では、実施の形態 1の垂直方向 動きベクトル検出部 4のエッジ強調手段に対して水平方向画像分割部 41と水平方向 エッジ抽出フィルタリング部 42との配置が逆転している。以下では、この垂直方向動 きベクトル検出部 4Aの動作について説明する。
[0195] 図 2に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読 み出されるフレーム画像が、垂直方向動きベクトル検出部 4Aの入力端子 40に入力 されると、水平方向エッジ抽出フィルタリング部 42において水平方向に延びるエッジ 成分の抽出、換言すれば垂直方向に急峻に変化する画像部分を強調するようなフィ ルタリング処理が施される。
[0196] 水平方向エッジ抽出フィルタリング部 42で水平方向のエッジが強調されたフレーム 画像が水平方向画像分割部 41に入力されると、水平方向にブロック分割される。す
なわち、水平方向画像分割部 41では、エッジ強調が施されたフレーム画像を水平方 向に分割して得られる複数の画像領域 (水平方向ブロック)が設定される。これ〖こより、 以降の処理では、水平方向ブロックごとに処理および管理が行われることとなる。
[0197] 水平方向画像分割部 41で分割された画像データは、水平方向ブロック射影部 43 に入力される力 この水平方向ブロック射影部 43以降の処理は、実施の形態 1の垂 直方向動きベクトル検出部 4と同様の処理が行われる。
[0198] <効果 >
以上の動きベクトル検出装置 1Aの動作により、実施の形態 1と同様の効果を奏す る。
[0199] そして、動きベクトル検出装置 1Aでは、垂直方向エッジ抽出フィルタリング部 22で フレーム画像に対する垂直方向のエッジを強調した後に、エッジ強調されたフレーム 画像を垂直方向画像分割部 21にお ヽて垂直方向に分割するため、垂直方向のエツ ジが強調された分割画像を簡易に生成できる。
[0200] 同様に、水平方向エッジ抽出フィルタリング部 42でフレーム画像に対する水平方向 のエッジを強調した後に、エッジ強調されたフレーム画像を水平方向画像分割部 41 において水平方向に分割するため、水平方向のエッジが強調された分割画像を簡 易に生成できる。
[0201] なお、動きベクトル検出装置 1Aにおいては、垂直方向エッジ抽出フィルタリング部 22と水平方向エッジ抽出フィルタリング部 42とを別々に水平方向動きベクトル検出 部 2Aおよび垂直方向動きベクトル検出部 4Aに配置するのは必須でなぐ垂直方向 エッジ抽出フィルタリング部 22および水平方向エッジ抽出フィルタリング部 42の双方 の機能を一体ィ匕した水平 Z垂直方向エッジ抽出フィルタリング部を設けて、その出力 を垂直方向画像分割部 21および水平方向画像分割部 41それぞれに入力させるよう にしても良い。
[0202] 実施の形態 3.
く動きベクトル検出装置 1Bの構成〉
図 1に示すように、本発明の実施の形態 3に係る動きベクトル検出装置 1Bについて は、実施の形態 1の動きベクトル検出装置 1と類似の構成を有している力 水平方向
動きベクトル検出部と垂直方向動きベクトル検出部との構成が異なっている。
[0203] 以下、動きベクトル検出装置 1Bにおける水平方向動きベクトル検出部 2Bおよび垂 直方向動きベクトル検出部 4Bの構成について説明する。
[0204] 図 18は、水平方向動きベクトル検出部 2Bの要部構成を示すブロック図である。な お、図 18では、実施の形態 1で説明した水平方向動きベクトル検出部 2と同様の機 能を有する部位には同一の符号を付し、重複する説明は省略する。
[0205] 水平方向動きベクトル検出部 2Bは、入力端子 20と、垂直方向画像分割部 21と、垂 直方向エッジ抽出フィルタリング部 22と、垂直方向ブロック射影部 23と、第 1の垂直 方向ブロック射影データ最大値保存部 24と、ビット数削減部 25と、第 1の垂直方向ブ ロック射影ラインメモリ 26とを備えている。また、水平方向動きベクトル検出部 2は、第 2の垂直方向ブロック射影ラインメモリ 27と、第 2の垂直方向ブロック射影データ最大 値保存部 28と、第 1の閾値交差点探索部 29と、垂直方向ブロック射影データ読み出 し部 30と、垂直方向ブロック水平方向動きベクトル算出部 310と、水平方向動きべク トル決定部 320と、出力端子 33とを備えている。
[0206] 以上の水平方向動きベクトル検出部 2Bにおいては、垂直方向ブロック水平方向動 きベクトル算出部 310および水平方向動きベクトル決定部 320の機能力 実施の形 態 1の水平方向動きベクトル検出部 2の、垂直方向ブロック水平方向動きベクトル算 出部 31および水平方向動きベクトル決定部 32とは異なっている。
[0207] すなわち、垂直方向ブロック水平方向動きベクトル算出部 310は、第 1の垂直方向 ブロック射影データ最大値保存部 24から出力される第 2の閾値を用い、垂直方向ブ ロック射影データ読み出し部 30で読み出された第 1の垂直方向ブロック射影データ それぞれを n値化 (nは 2以上の整数)してビット数の削減を行うとともに、 n値化された 射影データを第 1の閾値交差点からの距離ごとに加算する。そして、加算データにお けるピーク位置 (後述する水平方向動きベクトル)とピーク値の情報を水平方向動き ベクトル決定部 320に与える。
[0208] また、水平方向動きベクトル決定部 320は、垂直方向ブロック水平方向動きべタト ル算出部 31からの出力に基づき画像の水平方向動きベクトルを決定する。ここで決 定された画像の水平方向動きベクトルは出力端子 33から出力される。なお、水平方
向動きベクトル決定部 320は、第 1の垂直方向ブロック射影データ最大値保存部 24 に保存された、第 1の垂直方向ブロック射影データ最大値および第 1の閾値交差点 探索部 29から出力される第 1の閾値交差点の情報を受けて、水平方向動きベクトル の信頼性を高める処理に使用する構成となっている。なお、具体的な動作は後で詳 述する。
[0209] 図 19は、垂直方向ブロック水平方向動きベクトル算出部 310の要部構成を示すブ ロック図である。
[0210] 垂直方向ブロック水平方向動きベクトル算出部 310は、 3つの入力端子 311〜313 と、 n値化器 314と、 n値化器 314で n値ィ匕された第 1の垂直方向ブロック射影データ の加算を行う加算器 315と、加算器 315で加算されたデータを逐次保存するバッファ メモリとしての水平方向動きベクトル加算メモリ 316と、ピーク検出器 3170と、出力端 子 318および 319とを備えている。
[0211] 入力端子 311には、垂直方向ブロック射影データ読み出し部 30から出力された第 1の垂直方向ブロック射影データが入力され、入力端子 312には、第 1の垂直方向ブ ロック射影データ最大値保存部 24から出力された第 2の閾値が入力される。また、入 力端子 313には、第 1の閾値交差点探索部 29から出力された第 1の閾値交差点の 情報が入力される。
[0212] n値化器 314は、入力端子 311から入力された第 1の垂直方向ブロック射影データ を、入力端子 312から入力される第 2の閾値に基づいて n値ィ匕 (例えば 3値化)する。
[0213] 加算器 315は、 n値化器 314で n値ィ匕された第 1の垂直方向ブロック射影データと、 水平方向動きベクトル加算メモリ 316から読み出されたデータとを第 1の閾値交差点 を中心として加算し、加算結果を水平方向動きベクトル加算メモリ 316に再び記憶さ せる。このような加算動作が繰り返されることにより垂直方向ブロックに関する全ての 第 1の閾値交差点についての加算が終了すると、垂直方向ブロックに関する加算デ ータがピーク検出器 3170に出力される。
[0214] ピーク検出器 3170は、加算器 315から出力された加算データにおけるピーク位置
(後述する水平方向動きベクトル)とピーク値とを検出する。このピーク検出器 3170で 検出されたピーク位置は、出力端子 318を介して水平方向動きベクトル決定部 320
に入力され、ピーク値は出力端子 319を介して水平方向動きベクトル決定部 320に 人力されることとなる。
[0215] 次に、垂直方向動きベクトル検出部 4Bの構成を説明する。
図 20は、垂直方向動きベクトル検出部 4Bの要部構成を示すブロック図である。
[0216] 垂直方向動きベクトル検出部 4Bは、入力端子 40と、水平方向画像分割部 41と、水 平方向エッジ抽出フィルタリング部 42と、水平方向ブロック射影部 43と、第 1の水平 方向ブロック射影ラインメモリ 44と、第 1の水平方向ブロック射影データ最大値保存 部 45とを備えている。また、垂直方向動きベクトル検出部 4は、第 2の水平方向ブロッ ク射影ラインメモリ 46と、第 2の水平方向ブロック射影データ最大値保存部 47と、第 3 の閾値交差点探索部 48と、水平方向ブロック射影データ読み出し部 49と、水平方向 ブロック垂直方向動きベクトル算出部 500と、垂直方向動きベクトル決定部 510と、出 力端子 52とを備えている。
[0217] 以上の垂直方向動きベクトル検出部 4Bにおいては、水平方向ブロック垂直方向動 きベクトル算出部 500および垂直方向動きベクトル決定部 510の機能力 実施の形 態 1の垂直方向動きベクトル検出部 4の、水平方向ブロック垂直方向動きベクトル算 出部 50および垂直方向動きベクトル決定部 51とは異なっている。
[0218] すなわち、水平方向ブロック垂直方向動きベクトル算出部 500は、第 2の水平方向 ブロック射影データ最大値保存部 47から出力される第 4の閾値を用い、水平方向ブ ロック射影データ読み出し部 49で読み出された第 1の水平方向ブロック射影データ それぞれを n値化 (nは 2以上の整数)してビット数の削減を行うとともに、 n値化された 射影データを第 3の閾値交差点からの距離ごとに加算する。そして、加算データにお けるピーク位置 (後述する垂直方向動きベクトル)とピーク値の情報を垂直方向動き ベクトル決定部 510に与える。
[0219] また、垂直方向動きベクトル決定部 510は、水平方向ブロック垂直方向動きべタト ル算出部 500からの出力に基づき画像の垂直方向動きベクトルを決定する。ここで 決定された画像の垂直方向動きベクトルは出力端子 52から出力される。なお、垂直 方向動きベクトル決定部 510は、第 1の水平方向ブロック射影データ最大値保存部 4 5に保存された、第 1の水平方向ブロック射影データ最大値および第 3の閾値交差点
探索部 48から出力される第 3の閾値交差点の情報を受けて、垂直方向動きベクトル の信頼性を高める処理に使用する構成となっている。なお、具体的な動作は後で詳 述する。
[0220] 図 21は、水平方向ブロック垂直方向動きベクトル算出部 500の要部構成を示すブ ロック図である。
[0221] 水平方向ブロック垂直方向動きベクトル算出部 500は、 3つの入力端子 501〜503 と、 n値化器 504と、 n値化器 504で n値ィ匕された第 1の水平方向ブロック射影データ の加算を行う加算器 505と、加算器 505で加算されたデータを逐次保存するバッファ メモリとしての垂直方向動きベクトル加算メモリ 506と、ピーク検出器 5070と、出力端 子 508および 509とを備えて!/、る。
[0222] 入力端子 501には、水平方向ブロック射影データ読み出し部 49から出力された第 1の水平方向ブロック射影データが入力され、入力端子 502には、第 2の水平方向ブ ロック射影データ最大値保存部 47から出力された第 4の閾値が入力される。また、入 力端子 503には、第 3の閾値交差点探索部 48から出力された第 3の閾値交差点の 情報が入力される。
[0223] n値化器 504は、入力端子 501から入力された第 1の水平方向ブロック射影データ を、入力端子 502から入力される第 4の閾値に基づいて n値ィ匕 (例えば 3値化)する。
[0224] 加算器 505は、 n値化器 504で n値ィ匕された第 1の水平方向ブロック射影データと、 垂直方向動きベクトル加算メモリ 506から読み出されたデータとを第 3の閾値交差点 を中心として加算し、加算結果を垂直方向動きベクトル加算メモリ 506に再び記憶さ せる。このような加算動作が繰り返されることにより水平方向ブロックに関する全ての 第 3の閾値交差点についての加算が終了すると、水平方向ブロックに関する加算デ ータがピーク検出器 5070に出力される。
[0225] ピーク検出器 5070は、加算器 505から出力された加算データにおけるピーク位置
(後述する垂直方向動きベクトル)とピーク値とを検出する。このピーク検出器 507で 検出されたピーク位置は、出力端子 508を介して垂直方向動きベクトル決定部 510 に入力され、ピーク値は出力端子 509を介して水平方向動きベクトル決定部 510に 人力されることとなる。
[0226] 以上のような構成を有する動きベクトル検出装置 IBの動作について、以下で説明 する。
[0227] <動きべタトル検出装置 1Bの動作 >
<水平方向動きベクトル検出部 2Bの動作 >
まず、動きベクトル検出装置 1Bにおいて画像の水平方向の動きベクトルを検出す る水平方向動きベクトル検出部 2Bの動作を説明する。
[0228] なお、水平方向動きベクトル検出部 2Bの動作は、基本的には、実施の形態 1にお いて説明した水平方向動きベクトル検出部 2の動作と同じであり、重複する説明は省 略するものとし、垂直方向ブロック水平方向動きベクトル算出部 310および水平方向 動きベクトル決定部 320の動作を中心に説明する。
[0229] 第 1の閾値交差点探索部 29では、第 2の垂直方向ブロック射影ラインメモリ 27から 読み出された第 2の垂直方向ブロック射影データと、第 2の垂直方向ブロック射影デ ータ最大値保存部 28から出力された第 1の閾値との交差点 (第 1の閾値交差点)を水 平方向に探索する。この第 1の閾値交差点探索部 29で得られた第 1の閾値交差点 の情報は、垂直方向ブロック射影データ読み出し部 30、垂直方向ブロック水平方向 動きベクトル算出部 310および水平方向動きベクトル決定部 320に出力される。
[0230] 垂直方向ブロック射影データ読み出し部 30は、第 1の閾値交差点探索部 29から出 力された第 1の閾値交差点を中心とした動きべ外ル検出範囲に対応した現フレーム の (第 1の)垂直方向ブロック射影データを第 1の垂直方向ブロック射影ラインメモリ 26 から読み出す。すなわち、第 1の閾値交差点を A(i) (ただし i= 1,2, · · ·ρで、 ρは検出 された第 1の閾値交差点の総数)とし、動きベクトル検出範囲を第 1の閾値交差点を 中心とした (一 V)から (+ V) (ただし Vは正の整数)の範囲とすると、第 1の垂直方向ブ ロック射影ラインメモリ 26から読み出される射影データは、水平方向において (A(i)— V)力 (A(i)+V)までの範囲にある第 1の垂直方向ブロック射影データの部分データ となる。
[0231] この垂直方向ブロック射影データ読み出し部 30によって第 1の垂直方向ブロック射 影ラインメモリ 26から読み出された第 1の垂直方向ブロック射影データは、垂直方向 ブロック水平方向動きベクトル算出部 310に出力される。
[0232] 垂直方向ブロック射影データ読み出し部 30から出力された第 1の垂直方向ブロック 射影データは、図 19に示す垂直方向ブロック水平方向動きベクトル算出部 310の入 力端子 311を介して n値化器 314に入力される。この n値化器 314の処理については 、図 10を用いて説明済みであるので、説明は省略する。
[0233] また、第 1の閾値交差点探索部 29、垂直方向ブロック射影データ読み出し部 30お よび垂直方向ブロック水平方向動きベクトル算出部 310 (垂直方向ブロック水平方向 動きベクトル算出部 31と基本的に同じ)の動作については、図 11を用いて説明済み であるので、説明は省略する。
[0234] 加算器 315(図 19)では、入力端子 313を介して第 1の閾値交差点探索部 29から出 力された第 1の閾値交差点を中心に、 n値化器 314で n値化された第 1の垂直方向ブ ロック射影データと、水平方向動きベクトル加算メモリ 316から読み出された 1つ前ま での n値化された第 1の垂直方向ブロック射影データの加算値とを加算し、その加算 結果を水平方向動きベクトル加算メモリ 316に再び記憶させる。そして、第 1の閾値 交差点探索部 29で検出された全ての第 1の閾値交差点のうち最後のものに関する n 値化された第 1の垂直方向ブロック射影データを加算器 315で加算して 1つの垂直 方向ブロックについての加算処理を終了する際には、その加算結果をピーク検出器 3170に出力するようにする。なお、加算器 315での加算処理終了後に、全ての第 1 の閾値交差点に関する加算結果を記憶して 、る水平方向動きベクトル加算メモリ 31 6から、その加算結果をピーク検出部 3170が読み出すようにしても良い。
[0235] ピーク検出器 3170には、第 1の閾値交差点探索部 29で検出された全ての第 1の 閾値交差点について各第 1の閾値交差点を中心とした動きべ外ル検出範囲 (上述 した士 Vの範囲)に対応する n値化済みの第 1の垂直方向ブロック射影データを加算 したデータ(以下では「垂直方向ブロック n値ィ匕データ」とも言う)が入力される力 この 垂直方向ブロック n値化データに関するピーク値がピーク検出器 3170で検出される 。このピーク検出器 3170において検出される垂直方向ブロック n値ィ匕データのピーク 位置が、その垂直方向ブロック力 得られる水平方向動きベクトルとなり、出力端子 3 18を介して水平方向動きベクトル決定部 320に出力される。同様に、そのときのピー ク値は出力端子 319から出力される。
[0236] なお、加算器 315およびピーク検出部 3170の具体的な動作については、図 12を 用いて説明した、垂直方向ブロック水平方向動きベクトル算出部 31の加算器 315お よびピーク検出部 317と同様なので説明は省略する力 ピーク検出器 3170で垂直 方向ブロックごとに算出された水平方向動きベクトル (ピーク位置)と、垂直方向ブロッ クの n値ィ匕され加算された加算データのピーク値 (以下、「垂直方向ブロック n値化カロ 算データピーク値」とも言う)は、それぞれ出力端子 318および 319を介して水平方 向動きベクトル決定部 320に入力され、垂直方向ブロック n値化加算データピーク値 は、垂直方向ブロックの有効 Z無効判定に使用される。
[0237] 水平方向動きベクトル決定部 320では、垂直方向ブロック水平方向動きベクトル算 出部 310から順次に出力される各垂直方向ブロックの水平方向動きベクトルに基づ き、画像全体の水平方向動きベクトルが決定される。
[0238] このとき、第 1の垂直方向ブロック射影データ最大値保存部 24から出力される第 1 の垂直方向ブロック射影データ最大値、垂直方向ブロック水平方向動きベクトル算出 部 310から出力される垂直方向ブロック n値化加算データピーク値および第 1の閾値 交差点探索手段 29から出力される第 1の閾値交差点の情報に基づいて各垂直方向 ブロックの有効 Z無効を判定する。そして、無効ブロックと判定された垂直方向ブロッ タカ 算出された水平方向動きベクトルは画像全体の水平方向動きベクトルを決定 する際には使用しないものとする。
[0239] <垂直方向ブロックの有効 Z無効の判定動作 >
<第 1の垂直方向ブロック射影データ最大値を用いる場合 > 以下、各垂直方向ブロックの有効 Z無効を判定する方法について説明する。
[0240] 図 22は、第 1の垂直方向ブロック射影データ最大値を用いて各垂直方向ブロック の有効 Z無効を判定する方法を説明する図である。
[0241] 図 22においては、図 9の (a)に示した 640画素 X 480画素の画像データを例に採り 、垂直方向に 64画素の幅 (分割幅)を有した 7個の垂直方向ブロック vb0〜vb6に分 割した場合を示している。
[0242] また、図 22においては、第 1の垂直方向ブロック射影データ最大値保存部 24 (図 1 8)から出力される各垂直方向ブロックの第 1の垂直方向ブロック射影データ最大値を
、各ブロックごとに 16進数表記で示している。
[0243] 水平方向動きベクトル決定部 320では、各垂直方向ブロック vb0〜vb6における第
1の垂直方向ブロック射影データ最大値の中力も全ブロック中の最大値を求める。図
22の例では、垂直方向ブロック vb2が全ブロック中の最大値を有しており、この値を 全垂直方向ブロック射影データ最大値と呼称する。
[0244] また、水平方向動きベクトル決定部 320では、全垂直方向ブロック射影データ最大 値に対して、例えば 1Z4以下の最大値しか有さない垂直方向ブロックを無効ブロッ クとして判断する。図 22の例では、垂直方向ブロック vbO、 vblおよび vb6が無効ブロ ックと半 IJ断される。
[0245] 図 23は、垂直方向ブロックの有効 Z無効の判定を模式的に示す図である。
[0246] 図 23においては、横軸を全垂直方向ブロック射影データ最大値とし、縦軸を第 1の 垂直方向ブロック射影データ最大値としたグラフを表しており、原点を起点とした傾き 1/4 (S = l/4)の直線を境にして、有効ブロックと無効ブロックとに分かれることが 表されている。
[0247] 無効ブロックと判断される垂直方向ブロックは、絵柄として特徴の少ない(くっきりと した箇所が少ない)、あるいは、非常に細かい絵柄であると言うことができ、結果として 、他の有効ブロックに対して信頼性が低いと判断できるものである。従って、無効プロ ックと判断される垂直方向ブロックについては、画像全体の水平方向動きベクトルの 決定には使用しないことで、水平方向動きベクトルの信頼性を高めることができる。
[0248] なお、上記にぉ 、ては、有効 Z無効の判定条件を、全垂直方向ブロック射影デー タ最大値の 1Z4以下として説明した力 これに限るものではなぐ場合によっては 1 Z2以下、あるいは 1Z8以下としても良い。このように、判定条件 lZ2nで設定するこ とにより、有効、無効の判定を簡単に行うことが可能である。
[0249] <垂直方向ブロック n値化加算データピーク値を用いる場合〉
図 24は、垂直方向ブロック n値化加算データピーク値を用 ヽて各垂直方向ブロック の有効 Z無効を判定する方法を説明する図である。
[0250] 図 24においては、図 9の (a)に示した 640画素 X 480画素の画像データを例に採り 、垂直方向に 64画素の幅 (分割幅)を有した 7個の垂直方向ブロック vb0〜vb6に分
割した場合を示している。
[0251] また、図 24においては、垂直方向ブロック水平方向動きベクトル算出部 310 (図 18 )から出力される各垂直方向ブロックの垂直方向ブロック n値化加算データピーク値を 、各ブロックごとに 16進数表記で示している。
[0252] 水平方向動きベクトル決定部 320では、各垂直方向ブロック vb0〜vb6における垂 直方向ブロック n値化加算データピーク値の中力も最大値を求める。図 24の例では、 垂直方向ブロック vb4が最大値を有しており、この値を垂直方向ブロック n値化加算 データピーク値の最大値と呼称する。
[0253] また、水平方向動きベクトル決定部 320では、垂直方向ブロック n値化加算データ ピーク値の最大値が所定値 A (例えば、 10進数表記で 12)以上のとき、垂直方向ブ ロック n値化加算データが所定値 B (例えば、 10進数表記で 7)以下の垂直方向プロ ックを無効ブロックとして判断する。図 24の例では、垂直方向ブロック vbO、 vbl、 vb5 および vb6が無効ブロックと判断される。
[0254] 垂直方向ブロック水平方向動きベクトル算出部 310 (図 18)の加算器 315 (図 19) の出力は、第 1の閾値交差点を中心に、第 2の閾値で n値化された第 1の垂直方向ブ ロック射影データを加算したものであり、第 1の閾値交差点が多ぐかつ、プラス側の 第 2の閾値(ひ 2)を超える振幅(山)が多いほど大きな値となる。逆に、マイナス側の 第 2の閾値(― a 2)を超える振幅があれば打ち消されることになる。
[0255] 言い換えれば、加算器 315の出力の最大値、つまり、ある垂直方向ブロックの垂直 方向ブロック n値化加算データピーク値が所定値 A以上であり、その一方で、他の垂 直方向ブロックの垂直方向ブロック n値化加算データピーク値が所定値 B以下である とき、当該他の垂直方向ブロックにおいては加算結果が打ち消される絵柄、あるいは 、特徴が少なぐ振幅が少ない絵柄であると言える。
[0256] 従って、垂直方向ブロック n値化加算データピーク値力 所定値 B以下のブロックは 、所定値 A以上のブロックに比べて、信頼性が低いと判断でき、結果として、他の有 効ブロックに対して信頼性が低いと判断できるものである。従って、無効ブロックと判 断される垂直方向ブロックについては、画像全体の水平方向動きベクトルの決定に は使用しないことで、水平方向動きベクトルの信頼性を高めることができる。
[0257] 図 25は、垂直方向ブロックの有効 Z無効の判定を模式的に示す図である。
図 25においては、横軸を垂直方向ブロック n値化加算データピーク値の最大値とし 、縦軸を垂直方向ブロック n値化加算データピーク値としたグラフを表しており、垂直 方向ブロック n値化加算データピーク値の最大値が所定値 A以上のときは、垂直方 向ブロック n値化加算データが所定値 B以下の垂直方向ブロックを無効ブロックとして 判断する動作が表されて 、る。
[0258] また、図 25においては、垂直方向ブロック n値化加算データピーク値の最大値が所 定値 Aよりも小さ 、場合には、垂直方向ブロック n値化加算データピーク値が所定値 B以下のブロックが存在しても、当該ブロックについては無効ブロックと判断しないと いう動作も表されている。
[0259] 例えば、図 24を例に採れば、垂直方向ブロック n値化加算データピーク値の最大 値が 7である場合は、垂直方向ブロック vbO、 vbl、 vb5および vb6は無効ブロックとは 判断されない。これは、垂直方向ブロック n値化加算データピーク値が最大値である ブロックに対して、相対的には信頼性が低いとは言えないからである。
[0260] なお、上記においては、有効 Z無効の判定条件を、所定値 Aを 12とし、所定値 Bを 7とする例を示した力 これに限定されるものではなぐ画像の水平方向画素数に依 存し、例えば水平方向画素数が 640画素である場合には、所定値 Aは 10程度の値 に設定し、所定値 Bはその半分前後の値に設定すれば良 、。
[0261] く第 1の閾値交差点の個数を用いる場合〉
図 26は、第 1の閾値交差点の個数を用 、て各垂直方向ブロックの有効 Z無効を判 定する方法を説明する図である。
[0262] 図 26においては、図 9の (a)に示した 640画素 X 480画素の画像データを例に採り 、垂直方向に 64画素の幅 (分割幅)を有した 7個の垂直方向ブロック vb0〜vb6に分 割した場合を示している。
[0263] また、図 26においては、第 1の閾値交差点探索部 29 (図 18)から出力される第 1の 閾値交差点の個数を、各ブロックごとに 16進数表記で示して 、る。
[0264] 第 1の閾値交差点探索部 29では、第 2の垂直方向ブロック射影ラインメモリ 27に保 存される前フレームに係る第 2の垂直方向ブロック射影データの波形と、第 2の垂直
方向ブロック射影データ最大値保存部 28で算出された第 1の閾値とが交差する第 1 の閾値交差点の情報を出力するが、当該情報には第 1の閾値交差点の個数につい ての情報も含まれており、図 26に示すように、各垂直方向ブロック vb0〜vb6ごとに 第 1の閾値交差点の個数が得られる。
[0265] 図 27は、垂直方向ブロックの有効 Z無効の判定を模式的に示す図である。
図 27においては、横軸を各垂直方向ブロック vb0〜vb6における第 1の閾値交差 点の個数の最大値とし、縦軸を第 1の閾値交差点の個数としたグラフを表しており、 水平方向動きベクトル決定部 320では、各垂直方向ブロック vb0〜vb6における第 1 の閾値交差点の個数が、所定値 D (例えば、 10進数表記で 3)以下のブロックについ ては、第 1の閾値交差点の個数の最大値に関わりなく無効ブロックと判断する。図 26 の例では、垂直方向ブロック vbOおよび vb6が無効ブロックと判断される。
[0266] 無効ブロックと判断される垂直方向ブロックについては、画像全体の水平方向動き ベクトルの決定には使用しないことで、水平方向動きベクトルの信頼性を高めることが できる。
[0267] 一方で、第 1の閾値交差点の個数は少なくとも水平方向の画素数以下であり、水平 方向の画素数と比較して余りにも個数が多い場合は非常に周期的な絵柄を捉えて いると言えるので、例えば、所定値 E以上 (例えば、水平方向画素数の半分以上)と なっているような場合には、そのブロックを無効ブロックと判断するように構成しても良 い。
[0268] また、図 28に示すように、第 1の閾値交差点の個数の最大値が所定値 C ( >D)以 上である場合にのみ、所定値 D以下のブロックについては無効ブロックと判断するよ うに構成しても良い。この場合、第 1の閾値交差点の個数の最大値が所定値じよりも 小さい場合には、所定値 D以下のブロックが存在しても、当該ブロックについては無 効ブロックとは判断されず、無効ブロックの判定基準をより細力べ設定できる。
[0269] なお、上記にお ヽては、有効 Z無効の判定条件を、所定値 Dを 3とし、所定値 Eを 水平方向画素数の半分とする例を示したが、これに限定されるものではない。
[0270] 以上説明した第 1の垂直方向ブロック射影データ最大値を用いて各垂直方向プロ ックの有効 Z無効を判定する方法、垂直方向ブロック n値化加算データピーク値を用
いて各垂直方向ブロックの有効 Z無効を判定する方法および第 lの閾値交差点の 情報を用いて各垂直方向ブロックの有効 Z無効を判定する方法を用いることで、無 効ブロックを判定し、無効ブロックとされた垂直方向ブロック力 算出された水平方向 動きベクトルは、画像全体の水平方向動きベクトルを決定する際には使用しないよう にすることで、動きベクトルの信頼性を高めることができる。
[0271] また、以上説明した 3つの判定方法は、単独で用いても良いが組み合わせて用い ても良い。
[0272] 例えば、第 1の垂直方向ブロック射影データ最大値を用いて有効 Z無効を判定す るとともに、垂直方向ブロック n値化加算データピーク値を用 、て各垂直方向ブロック の有効 Z無効を判定しても良いし、第 1の垂直方向ブロック射影データ最大値を用 いて有効 Z無効を判定するとともに、第 1の閾値交差点の情報を用いて各垂直方向 ブロックの有効 Z無効を判定しても良!、。
[0273] このような組み合わせにより、無効ブロックを確実に選択することができ、動きべタト ルの信頼性をさらに高めることができる。
[0274] <水平方向動きベクトルの決定方法 >
水平方向動きベクトル決定部 320では、上記のように垂直方向ブロックの有効 Z無 効を判定し、有効ブロックと判定された垂直方向ブロックについて、その水平方向動 きベクトル力も画像全体の水平方向動きベクトルを決定する。
[0275] このとき、同じ水平方向動きベクトルを有する垂直方向ブロックを集め、ヒストグラム を作成する。
[0276] 以下、図 29および図 30を用いて、画像全体の水平方向動きベクトルの決定方法の 一例について説明する。
[0277] 図 29および図 30においては、水平方向動きベクトルの検出範囲を Vないし Vと する場合を示しており、ここでは、一例として Vが 31の場合を示しており、 31から 3 1まで 1ベクトル間隔で表示されている。なお、各ベクトルに対応して設けたボックス内 に表示された数字は、同じベクトルを有する垂直方向ブロックの個数を表して 、る。
[0278] 図 29に示すように、各垂直方向ブロックについて算出された水平方向動きベクトル のうち、水平方向動きベクトル 6については 2つの垂直方向ブロックで算出されている
力 他の垂直方向ブロックでは全てバラバラの水平方向動きベクトルとなっており、そ の分布範囲の最小値は 14、最大値は 27となっており、その差 41となって動きべク トル検出範囲に対して非常にバラツキがあると言える。なお、図 29においては、現フ レームの各垂直方向ブロックから得られた水平方向動きベクトルに対応するブロック に砂地のハッチングを付して!/、る。
[0279] 水平方向動きベクトル決定部 320では、各垂直方向ブロックから得られた水平方向 動きベクトルの分布範囲の最大値と最小値の差が予め定めた閾値 B (例えば、上述 した V)以上のとき、各垂直方向ブロック力 得られる水平方向動きベクトルは信頼性 が低いとして、水平方向動きベクトルを 0とする。
[0280] このような処理を行うことで、画像全体の水平方向動きベクトルの信頼性を高めるこ とがでさる。
[0281] 一方、水平方向動きベクトル 6を有する垂直方向ブロックの個数が予め定めた数値
A (例えば 3)以上である場合には、各垂直方向ブロックから得られる水平方向動きべ タトルは十分信頼できると判断する。
[0282] 同様に、各垂直方向ブロックから得られた水平方向動きベクトルの最大値と最小値 の差が閾値 Bより小さい場合にも、各垂直方向ブロック力 得られた水平方向動きべ タトルは十分信頼できると判断する。
[0283] なお、数値 A、閾値 Bは上述した値に限るものではな 、。また、ノ ラツキの判断も上 述した水平方向動きベクトルの最大値と最小値の差で判断することに限定されず、標 準偏差を用いて、例えば、標準偏差が閾値 B以上のとき、バラツキが大きいと判断し ても良い。
[0284] 上述した処理の結果、各垂直方向ブロックから得られた水平方向動きベクトルが十 分信頼できると判断できた場合、次の手順で現フレームの水平方向動きべ外ルを算 出する。
[0285] その概要は、現フレームの各垂直方向ブロックから出力された水平方向動きべタト ルのうち、前フレームの水平方向動きベクトルに最も近 、水平方向動きベクトルを現 フレームの水平方向動きベクトルとするものである。
[0286] 図 30においては、各垂直方向ブロック力 得られた水平方向動きベクトルの分布
範囲の最大値と最小値の差が 11である場合を示しており、閾値 B (例えば V= 31)よ りも小さいため、水平方向動きベクトル決定部 320では、各垂直方向ブロックカも算 出された水平方向動きベクトルは信頼性があるものと判断する。
[0287] ここで、図 30においては水平方向動きベクトル 5が前フレームの水平方向動きべク トルであり、これに最も近い現フレームの各垂直方向ブロックから得られた水平方向 動きベクトルは、水平方向動きベクトル 6である。従って、水平方向動きベクトル 6が現 フレームの水平方向動きベクトルと決定される。なお、図 30においては、現フレーム の各垂直方向ブロック力 得られた水平方向動きベクトルに対応するブロックに砂地 のハッチングを付し、前フレームの水平方向動きベクトルに対応するブロックに斜線 のハッチングを付して 、る。
[0288] ここで、複数の垂直方向ブロックの出力結果が同じ水平方向動きベクトルとなった 場合、すなわち、ある水平方向動きベクトルの個数が 2以上となった場合、個数 1の 水平方向動きベクトルは信頼性が低 、ものとして除外し、その上で前フレームの水平 方向動きベクトルに最も近い水平方向動きベクトルを求め、その水平方向動きべタト ルを現フレームの水平方向動きベクトルとしても良い。
[0289] この方法を採る場合、図 30の例では、水平方向動きベクトル 8が現フレームの水平 方向動きベクトルとなる。
[0290] なお、前フレームの水平方向動きベクトルに最も近い水平方向動きベクトルが 2つ 存在する場合には、その平均、つまり、前フレームの水平方向動きベクトルそのもの を現フレームの水平方向動きベクトルとすれば良 、。
[0291] ここで、前フレームの水平方向動きベクトルの情報は、水平方向動きべクトノレ決定 部 320内に設けられた所定の記憶部(前フレーム水平方向動きベクトル保存手段)に 保存しておき、必要に応じて読み出すように構成されて 、る。
[0292] 以上説明したように、垂直方向ブロックの有効 Z無効の判定動作により信頼性の低 V、垂直方向ブロックを除外した上で、信頼性の高!、垂直方向ブロックに基づ 、て算 出される水平方向動きベクトルについてバラツキを考慮して画像全体の水平方向動 きベクトルの信頼性を評価し、信頼できると判断した場合にも、前フレームの水平方 向動きベクトルを考慮することで、前フレームからの動きを加味した違和感の少な ヽ
水平方向動きベクトルを決定することができる。
[0293] <垂直方向動きベクトル検出部 4Bの動作 >
次に、動きベクトル検出装置 1Bにおいて画像の垂直方向の動きベクトルを検出す る垂直方向動きベクトル検出部 4Bの動作を説明する。
[0294] なお、垂直方向動きベクトル検出部 4Bのの動作は、基本的には、実施の形態 1に おいて説明した垂直方向動きベクトル検出部 4の動作と同じであり、重複する説明は 省略するものとし、水平方向ブロック垂直向動きベクトル算出部 500および垂直方向 動きベクトル決定部 510の動作を中心に説明する。
[0295] 第 3の閾値交差点探索部 48では、第 2の水平方向ブロック射影ラインメモリ 46から 読み出された第 2の水平方向ブロック射影データと、第 2の水平方向ブロック射影デ ータ最大値保存部 47から出力された第 3の閾値との交差点 (第 3の閾値交差点)を垂 直方向に探索する。この第 3の閾値交差点探索部 48で得られた第 3の閾値交差点 の情報は、水平方向ブロック射影データ読み出し部 49、水平方向ブロック垂直方向 動きベクトル算出部 500および垂直方向動きベクトル決定部 510に出力される。
[0296] 水平方向ブロック射影データ読み出し部 49は、第 3の閾値交差点探索部 48から出 力された第 3の閾値交差点を中心とした動きべ外ル検出範囲に対応した現フレーム の (第 1の)水平方向ブロック射影データを、第 1の水平方向ブロック射影ラインメモリ 4 4から読み出す。すなわち、第 3の閾値交差点を B(i) (ただし i= l,2, ' · 'qで、 qは検出 された第 3の閾値交差点の総数)とし、動きベクトル検出範囲を第 3の閾値交差点を 中心とした (一 U)から (+U) (ただし Uは正の整数)の範囲とすると、第 1の水平方向ブ ロック射影ラインメモリ 44から読み出される射影データは、垂直方向において (B(i)— U)力も (B(i) + U)までの範囲にある第 1の水平方向ブロック射影データの部分データ となる。
[0297] この水平方向ブロック射影データ読み出し部 49によって第 1の水平方向ブロック射 影ラインメモリ 44から読み出された第 1の水平方向ブロック射影データは、水平方向 ブロック垂直方向動きベクトル算出部 500に出力される。
[0298] 水平方向ブロック射影データ読み出し部 49から出力された第 1の水平方向ブロック 射影データは、図 21に示す水平方向ブロック垂直方向動きベクトル算出部 500の入
力端子 501を介して n値化器 504に入力される。この n値化器 504の処理については 、図 10を用いて説明済みであるので、説明は省略する。
[0299] また、第 3の閾値交差点探索部 48、水平方向ブロック射影データ読み出し部 49お よび水平方向ブロック垂直方向動きベクトル算出部 500 (水平方向ブロック垂直方向 動きベクトル算出部 50と基本的に同じ)の動作については、図 14を用いて説明済み であるので、説明は省略する。
[0300] 次に、加算器 505(図 21)では、入力端子 503を介して第 3の閾値交差点探索部 48 力も出力された第 3の閾値交差点を中心に、 n値化器 504で n値化された第 1の水平 方向ブロック射影データと、垂直方向動きベクトル加算メモリ 506から読み出された 1 つ前までの n値ィ匕された第 1の水平方向ブロック射影データの加算値とを加算し、そ の加算結果を垂直方向動きベクトル加算メモリ 506に再び記憶させる。そして、第 3 の閾値交差点探索部 48で検出された全ての第 3の閾値交差点のうち最後のものに 関する n値化された第 1の水平方向ブロック射影データを加算器 505で加算して 1つ の水平方向ブロックにつ 、ての加算処理を終了する際には、その加算結果をピーク 検出器 5070に出力するようにする。なお、加算器 505での加算処理終了後に、全て の第 3の閾値交差点に関する加算結果を記憶している垂直方向動きベクトル加算メ モリ 506から、その加算結果をピーク検出部 5070が読み出すようにしても良い。
[0301] ピーク検出器 5070には、第 3の閾値交差点探索部 48で検出された全ての第 3の 閾値交差点について各第 3の閾値交差点を中心とした動きべ外ル検出範囲 (上述 した ± Uの範囲)に対応する n値化済みの第 1の水平方向ブロック射影データを加算 したデータ(以下では「水平方向ブロック n値ィ匕データ」とも言う)が入力される力 この 水平方向ブロック n値ィ匕データに関するピーク値がピーク検出器 5070で検出される 。このピーク検出器 5070において検出される水平方向ブロック n値ィ匕データのピーク 位置が、その水平方向ブロック力 得られる垂直方向動きベクトルとなり、出力端子 5 08を介して垂直方向動き決定部 510に出力される。同様に、そのときのピーク値は 出力端子 509から出力される。
[0302] なお、加算器 505およびピーク検出部 5070の具体的な動作については、図 15を 用いて説明した、水平方向ブロック垂直方向動きベクトル算出部 50の加算器 505お
よびピーク検出部 507と同様なので説明は省略する力 ピーク検出器 507で水平方 向ブロックごとに算出された垂直方向動きベクトル (ピーク位置)と、水平方向ブロック の n値化され加算された加算データのピーク値 (以下、「水平方向ブロック n値化加算 データピーク値」とも言う)は、それぞれ出力端子 508および 509を介して垂直方向 動きベクトル決定部 510に入力され、水平方向ブロック n値化加算データピーク値は 、水平方向ブロックの有効 Z無効判定に使用される。
[0303] 垂直方向動きベクトル決定部 510 (図 20)では、水平方向ブロック垂直方向動きべ タトル算出部 500から順次に出力される各水平方向ブロックの垂直方向動きベクトル に基づき、画像全体の垂直方向動きベクトルが決定される。
[0304] このとき、垂直方向動きベクトル決定部 510では、第 1の水平方向ブロック射影デー タ最大値保存部 45から出力される第 1の水平方向ブロック射影データ最大値、水平 方向ブロック垂直方向動きベクトル算出部 500から出力される水平方向ブロック n値 ィ匕加算データピーク値および第 3の閾値交差点探索部 48から出力される第 3の閾値 交差点の情報に基づいて各水平方向ブロックの有効 Z無効を判定する。そして、無 効ブロックと判定された水平方向ブロック力 算出された垂直方向動きベクトルは画 像全体の垂直方向動きベクトルを決定する際には使用しな 、ものとする。
[0305] <水平方向ブロックの有効 Z無効の判定動作 >
<第 1の水平方向ブロック射影データ最大値を用いる場合 > 以下、各水平方向ブロックの有効 Z無効を判定する方法について説明する。
[0306] 図 31は、第 1の水平方向ブロック射影データ最大値を用いて各水平方向ブロック の有効 Z無効を判定する方法を説明する図である。
[0307] 図 31においては、図 13の (a)に示した 640画素 X 480画素の画像データを例に採 り、水平方向に 64画素の幅 (分割幅)を有した 10個の水平方向ブロック hbO〜hb9に 分割した場合を示している。
[0308] また、図 31においては、第 1の水平方向ブロック射影データ最大値保存部 45 (図 2 0)から出力される各水平方向ブロックの第 1の水平方向ブロック射影データ最大値を 、各ブロックごとに 16進数表記で示している。
[0309] 垂直方向動きベクトル決定部 510では、各水平方向ブロック hbO〜hb9における第
1の水平方向ブロック射影データ最大値の中力も全ブロック中の最大値を求める。図 31の例では、水平方向ブロック hb4が全ブロック中の最大値を有しており、この値を 全水平方向ブロック射影データ最大値と呼称する。
[0310] また、垂直方向動きベクトル決定部 510では、全水平方向ブロック射影データ最大 値に対して、例えば 1Z4以下の最大値しか有さない水平方向ブロックを無効ブロッ クとして判断する。図 31の例では、水平方向ブロック hbO、 hbl、 hb8およひ hb9が無 効ブロックと判断される。
[0311] 図 32は、水平方向ブロックの有効 Z無効の判定を模式的に示す図である。
[0312] 図 32においては、横軸を全水平方向ブロック射影データ最大値とし、縦軸を第 1の 水平方向ブロック射影データ最大値としたグラフを表しており、原点を起点とした傾き 1/4 (S = l/4)の直線を境にして、有効ブロックと無効ブロックとに分かれることが 表されている。
[0313] 無効ブロックと判断される水平方向ブロックは、絵柄として特徴の少ない(くっきりと した箇所が少ない)、あるいは、非常に細かい絵柄であると言うことができ、結果として 、他の有効ブロックに対して信頼性が低いと判断できるものである。従って、無効プロ ックと判断される水平方向ブロックについては、画像全体の垂直方向動きベクトルの 決定には使用しないことで、垂直方向動きベクトルの信頼性を高めることができる。
[0314] なお、上記にお 、ては、有効 Z無効の判定条件を、全水平方向ブロック射影デー タ最大値の 1Z4以下として説明した力 これに限るものではなぐ場合によっては 1 Z2以下、あるいは 1Z8以下としても良い。このように、判定条件 lZ2nで設定するこ とにより、有効、無効の判定を簡単に行うことが可能である。
[0315] <水平方向ブロック n値化加算データピーク値を用いる場合 >
図 33は、水平方向ブロック n値化加算データピーク値を用 ヽて各水平方向ブロック の有効 Z無効を判定する方法を説明する図である。
[0316] 図 33においては、図 13の (a)に示した 640画素 X 480画素の画像データを例に採 り、水平方向に 64画素の幅 (分割幅)を有した 10個の水平方向ブロック hbO〜hb9に 分割した場合を示している。
[0317] また、図 33においては、水平方向ブロック垂直方向動きベクトル算出部 500 (図 20
)から出力される各水平方向ブロックの水平方向ブロック n値化加算データピーク値を 、各ブロックごとに 16進数表記で示している。
[0318] 垂直方向動きベクトル決定部 510では、各水平方向ブロック hbO〜hb9における水 平方向ブロック n値化加算データピーク値の中力も最大値を求める。図 33の例では、 水平方向ブロック hb4が最大値を有しており、この値を水平方向ブロック n値化加算 データピーク値の最大値と呼称する。
[0319] また、垂直方向動きベクトル決定部 510では、水平方向ブロック n値化加算データ ピーク値の最大値が所定値 A (例えば、 10進数表記で 12)以上のとき、水平方向ブ ロック n値化加算データが所定値 B (例えば、 10進数表記で 7)以下の水平方向プロ ックを無効ブロックとして判断する。図 33の例では、垂直方向ブロック hbO、 hbl、 hb 7、 hb8および hb9が無効ブロックと判断される。
[0320] 水平方向ブロック垂直方向動きベクトル算出部 500 (図 20)の加算器 505 (図 21) の出力は、第 3の閾値交差点を中心に、第 4の閾値で n値化された第 1の水平方向ブ ロック射影データを加算したものであり、第 3の閾値交差点が多ぐかつ、プラス側の 第 4の閾値(ひ 4)を超える振幅(山)が多いほど大きな値となる。逆に、マイナス側の 第 4の閾値(一 α 4)を超える振幅があれば打ち消されることになる。
[0321] 言い換えれば、加算器 505の出力の最大値、つまり、ある水平方向ブロックの水平 方向ブロック η値化加算データピーク値が所定値 Α以上であり、その一方で、他の水 平方向ブロックの水平方向ブロック n値化加算データピーク値が所定値 B以下である とき、当該他の水平方向ブロックにおいては加算結果が打ち消される絵柄、あるいは 、特徴が少なぐ振幅が少ない絵柄であると言える。
[0322] 従って、水平方向ブロック n値化加算データピーク値力 所定値 B以下のブロックは 、所定値 A以上のブロックに比べて、信頼性が低いと判断できる。従って、無効ブロッ クと判断される水平方向ブロックについては、画像全体の垂直方向動きベクトルの決 定には使用しないことで、垂直方向動きベクトルの信頼性を高めることができる。
[0323] 図 34は、水平方向ブロックの有効 Z無効の判定を模式的に示す図である。
図 34においては、横軸を水平方向ブロック n値化加算データピーク値の最大値とし 、縦軸を水平方向ブロック n値化加算データピーク値としたグラフを表しており、水平
方向ブロック n値化加算データピーク値の最大値が所定値 A以上のときは、水平方 向ブロック n値化加算データが所定値 B以下の水平方向ブロックを無効ブロックとして 判断する動作が表されて 、る。
[0324] また、図 34においては、水平方向ブロック n値化加算データピーク値の最大値が所 定値 Aよりも小さ 、場合には、水平方向ブロック n値化加算データピーク値が所定値 B以下のブロックが存在しても、当該ブロックについては無効ブロックと判断しないと いう動作も表されている。
[0325] 例えば、図 33を例に採れば、水平方向ブロック n値化加算データピーク値の最大 値が 7である場合は、垂直方向ブロック hbO、 hbl、 hb7、 hb8および hb9は無効ブロ ックとは判断されない。これは、水平方向ブロック n値化加算データピーク値が最大値 であるブロックに対して、相対的には信頼性が低いとは言えないからである。
[0326] なお、上記においては、有効 Z無効の判定条件を、所定値 Aを 12とし、所定値 Bを 7とする例を示した力 これに限定されるものではなぐ画像の垂直方向画素数に依 存し、例えば垂直方向画素数力 80画素である場合には、所定値 Aは 10程度の値 に設定し、所定値 Bはその半分前後の値に設定すれば良 、。
[0327] く第 3の閾値交差点の個数を用いる場合〉
図 35は、第 3の閾値交差点の個数を用いて各垂直方向ブロックの有効 Z無効を判 定する方法を説明する図である。
[0328] 図 35においては、図 13の (a)に示した 640画素 X 480画素の画像データを例に採 り、水平方向に 64画素の幅 (分割幅)を有した 10個の水平方向ブロック hbO〜hb9に 分割した場合を示している。
[0329] また、図 35においては、第 3の閾値交差点探索部 48 (図 20)から出力される第 3の 閾値交差点の個数を、各ブロックごとに 16進数表記で示して 、る。
[0330] 第 3の閾値交差点探索部 48では、第 2の水平方向ブロック射影ラインメモリ 46に保 存される前フレームに係る第 2の水平方向ブロック射影データの波形と、第 2の水平 方向ブロック射影データ最大値保存部 45で算出された第 3の閾値とが交差する第 3 の閾値交差点の情報を出力するが、当該情報には第 3の閾値交差点の個数につい ての情報も含まれており、図 35に示すように、各水平方向ブロック hbO〜hb9ごとに
第 3の閾値交差点の個数が得られる。
[0331] 図 36は、水平方向ブロックの有効 Z無効の判定を模式的に示す図である。
図 36においては、横軸を各水平方向ブロック hbO〜hb9における第 3の閾値交差 点の個数の最大値とし、縦軸を第 3の閾値交差点の個数としたグラフを表しており、 垂直方向動きベクトル決定部 510 (図 20)では、各水平方向ブロック hbO〜hb9にお ける第 3の閾値交差点の個数が、所定値 D (例えば、 10進数表記で 3)以下のブロッ クについては、第 3の閾値交差点の個数の最大値に関わりなく無効ブロックと判断す る。図 35の例では、水平方向ブロック hbOおよび hb9が無効ブロックと判断される。
[0332] 無効ブロックと判断される水平方向ブロックについては、画像全体の垂直方向動き ベクトルの決定には使用しないことで、垂直方向動きベクトルの信頼性を高めることが できる。
[0333] 一方で、第 3の閾値交差点の個数は少なくとも垂直方向の画素数以下であり、垂直 方向の画素数と比較して余りにも個数が多い場合は非常に周期的な絵柄を捉えて いると言えるので、例えば、所定値 E以上 (例えば、垂直方向画素数の半分以上)と なっているような場合には、そのブロックを無効ブロックと判断するように構成しても良 い。例えば、図 35の水平方向ブロック hb4では、第 3の閾値交差点の個数が 241で あり、垂直方向画素数の半分以上あるので、無効ブロックと判断される。
[0334] また、図 37に示すように、第 3の閾値交差点の個数の最大値が所定値 C ( >D)以 上である場合にのみ、所定値 D以下のブロックについては無効ブロックと判断するよ うに構成しても良い。この場合、第 3の閾値交差点の個数の最大値が所定値じよりも 小さい場合には、所定値 D以下のブロックが存在しても、当該ブロックについては無 効ブロックとは判断されず、無効ブロックの判定基準をより細力べ設定できる。
[0335] なお、上記にぉ 、ては、有効 Z無効の判定条件を、所定値 Dを 3とし、所定値 Eを 垂直方向画素数の半分とする例を示したが、これに限定されるものではない。
[0336] 以上説明した第 1の水平方向ブロック射影データ最大値を用 、て各水平方向プロ ックの有効 Z無効を判定する方法、水平方向ブロック n値化加算データピーク値を用 いて各水平方向ブロックの有効 Z無効を判定する方法および第 3の閾値交差点の 情報を用いて各水平方向ブロックの有効 Z無効を判定する方法を用いることで無効
ブロックを判定し、無効ブロックとされた水平方向ブロック力 算出された垂直方向動 きベクトルは、画像全体の垂直方向動きベクトルを決定する際には使用しないように することで、動きベクトルの信頼性を高めることができる。
[0337] また、以上説明した 3つの判定方法は、単独で用いても良!、が組み合わせて用い ても良い。
[0338] 例えば、第 1の水平方向ブロック射影データ最大値を用いて有効 Z無効を判定す るとともに、水平方向ブロック n値化加算データピーク値を用 、て各水平方向ブロック の有効 Z無効を判定しても良いし、第 1の水平方向ブロック射影データ最大値を用 いて有効 Z無効を判定するとともに、第 3の閾値交差点の情報を用いて各水平方向 ブロックの有効 Z無効を判定しても良!、。
[0339] このような組み合わせにより、無効ブロックを確実に選択することができ、動きべタト ルの信頼性をさらに高めることができる。
[0340] <垂直方向動きベクトルの決定方法 >
垂直方向動きベクトル決定部 510では、上記のように水平方向ブロックの有効 Z無 効を判定し、有効ブロックと判定された水平方向ブロックについて、その垂直方向動 きベクトル力も画像全体の垂直方向動きベクトルを決定する。
[0341] このとき、同じ垂直方向動きベクトルを有する水平方向ブロックを集め、ヒストグラム を作成する。
[0342] 以下、図 38および図 39を用いて、画像全体の垂直方向動きベクトルの決定方法の 一例について説明する。
[0343] 図 38および図 39においては、水平方向動きベクトルの検出範囲を Uないし Uと する場合を示しており、ここでは、一例として Uが 31の場合を示しており、 31から 3 1まで 1ベクトル間隔で表示されている。なお、各ベクトルに対応して設けたボックス内 に表示された数字は、同じベクトルを有する水平方向ブロックの個数を表して 、る。
[0344] 図 38に示すように、各水平方向ブロックについて算出された垂直方向動きベクトル のうち、垂直方向動きベクトル 3および垂直方向動きベクトル 2については 2つの水 平方向ブロックで算出されている力 S、他の水平方向ブロックでは全てバラバラの垂直 方向動きベクトルとなっており、その分布範囲の最小値は 26、最大値は 8となって
おり、その差 34となって動きベクトル検出範囲に対して非常にバラツキがあると言える 。なお、図 38においては、現フレームの各水平方向ブロックから得られた垂直方向 動きベクトルに対応するブロックに砂地のハッチングを付している。
[0345] 垂直方向動きベクトル決定部 510では、各水平方向ブロックから得られた垂直方向 動きベクトルの最大値と最小値の差が予め定めた閾値 B (例えば、上述した U)以上 のとき、各水平方向ブロック力も得られる垂直方向動きベクトルは信頼性が低いとして 、垂直方向動きベクトルを 0とする。
[0346] このような処理を行うことで、画像全体の水平方向動きベクトルの信頼性を高めるこ とがでさる。
[0347] 一方、垂直方向動きベクトル 3および垂直方向動きベクトル 2を有する水平方向 ブロックの個数が予め定めた数値 A (例えば 3)以上である場合には、各水平方向ブ ロック力 得られる垂直方向動きベクトルは十分信頼できると判断する。
[0348] 同様に、各水平方向ブロックから得られた垂直方向動きベクトルの最大値と最小値 の差が閾値 Bより小さい場合にも、各水平方向ブロック力 得られた垂直方向動きべ タトルは十分信頼できると判断する。
[0349] なお、数値 A、閾値 Bは上述した値に限るものではな 、。また、ノ ラツキの判断も上 述した垂直方向動きベクトルの最大値と最小値の差で判断することに限定されず、標 準偏差を用いて、例えば、標準偏差が閾値 B以上のとき、バラツキが大きいと判断し ても良い。
[0350] 上述した処理の結果、各水平方向ブロック力 得られた垂直方向動きベクトルが十 分信頼できると判断できた場合、次の手順で現フレームの垂直方向動きべ外ルを算 出する。
[0351] その概要は、現フレームの各水平方向ブロックから出力された垂直方向動きべタト ルのうち、前フレームの垂直方向動きベクトルに最も近 、垂直方向動きベクトルを現 フレームの垂直方向動きベクトルとするものである。
[0352] 図 39においては、各水平方向ブロック力 得られた垂直方向動きベクトルの分布 範囲の最大値と最小値の差が 9である場合を示しており、閾値 B (例えば U= 31)より も小さいため、垂直方向動きベクトル決定部 510では、各水平方向ブロックから算出
された垂直方向動きベクトルは信頼性があるものと判断する。
[0353] ここで、図 39においては垂直方向動きベクトル 8が前フレームの垂直方向動きべク トルであり、これに最も近い現フレームの各水平方向ブロックから得られた垂直方向 動きベクトルは、垂直方向動きベクトル 6である。従って、垂直方向動きベクトル 6が現 フレームの垂直方向動きベクトルと決定される。なお、図 39においては、現フレーム の各水平方向ブロック力 得られた垂直方向動きベクトルに対応するブロックに砂地 のハッチングを付し、前フレームの垂直方向動きベクトルに対応するブロックに斜線 のハッチングを付して 、る。
[0354] ここで、複数の水平方向ブロックの出力結果が同じ垂直方向動きベクトルとなった 場合、すなわち、ある垂直方向動きベクトルの個数が 2以上となった場合、個数 1の 垂直方向動きベクトルは信頼性が低 、ものとして除外し、その上で前フレームの垂直 方向動きベクトルに最も近い垂直方向動きベクトルを求め、その垂直方向動きべタト ルを現フレームの垂直方向動きベクトルとしても良い。
[0355] この方法を採る場合、図 39の例では、垂直方向動きベクトル 5が現フレームの水平 方向動きベクトルとなる。
[0356] なお、前フレームの垂直方向動きベクトルに最も近い垂直方向動きベクトルが 2つ 存在する場合には、その平均、つまり、前フレームの垂直方向動きベクトルそのもの を現フレームの垂直方向動きベクトルとすれば良!、。
[0357] ここで、前フレームの垂直方向動きベクトルの情報は、垂直方向動きベクトル決定 部 510内に設けられた所定の記憶部(前フレーム垂直方向動きベクトル保存手段)に 保存しておき、必要に応じて読み出すように構成されて 、る。
[0358] 以上説明したように、水平方向ブロックの有効 Z無効の判定動作により信頼性の低 V、水平方向ブロックを除外した上で、信頼性の高!、水平方向ブロックに基づ!/、て算 出される垂直方向動きベクトルについてバラツキを考慮して画像全体の垂直方向動 きベクトルの信頼性を評価し、信頼できると判断した場合にも、前フレームの垂直方 向動きベクトルを考慮することで、前フレームからの動きを加味した違和感の少な ヽ 垂直方向動きベクトルを決定することができる。
[0359] <効果 >
以上に説明したように、実施の形態 3に係る動きベクトル検出装置 IBの水平方向 動きベクトル検出部 2Bにおいては、水平方向動きベクトル決定部 320において、第 1 の垂直方向ブロック射影データ最大値保存部 24から出力される第 1の垂直方向プロ ック射影データ最大値、垂直方向ブロック水平方向動きベクトル算出部 310から出力 される垂直方向ブロック n値化加算データピーク値、第 1の閾値交差点探索部 29から 出力される第 1の閾値交差点の情報に基づいて、垂直方向ブロックの有効 Z無効の 判断を行うため、信頼性の低い垂直方向ブロック力 得られた水平方向動きベクトル を除外することができ、結果的に、信頼性の高い水平方向動きベクトルを算出するこ とがでさる。
[0360] また、信頼性の高い垂直方向ブロックに基づいて算出される水平方向動きベクトル についてバラツキを考慮して画像全体の水平方向動きベクトルの信頼性を評価し、 信頼できると判断した場合にも、前フレームの水平方向動きベクトルを考慮することで 、前フレーム力 の動きをカ卩味した違和感の少な 、水平方向動きベクトルを決定する ことができる。
[0361] また、垂直方向動きベクトル検出部 4Bにおいては、垂直方向動きベクトル決定部 5 10において、第 1の水平方向ブロック射影データ最大値保存部 45から出力される第 1の水平方向ブロック射影データ最大値、水平方向ブロック垂直方向動きベクトル算 出部 500から出力される水平方向ブロック n値化加算データピーク値、第 3の閾値交 差点探索部 48から出力される第 3の閾値交差点の情報に基づいて、水平方向ブロッ クの有効 Z無効の判断を行うため、信頼性の低 、水平方向ブロック力 得られた垂 直方向動きベクトルを除外することができ、結果的に、信頼性の高い垂直方向動きべ タトルを算出することができる。
[0362] また、信頼性の高い水平方向ブロックに基づいて算出される垂直方向動きベクトル についてバラツキを考慮して画像全体の垂直方向動きベクトルの信頼性を評価し、 信頼できると判断した場合にも、前フレームの垂直方向動きベクトルを考慮することで 、前フレーム力 の動きをカ卩味した違和感の少な 、垂直方向動きベクトルを決定する ことができる。
[0363] また、動きベクトル検出装置 1Bでは、垂直方向画像分割部 21でフレーム画像を垂
直方向に分割した後に、各分割画像 (垂直方向ブロック)につ 、て垂直方向のエッジ を強調するため、垂直方向のエッジが強調された分割画像を簡易に生成できる。同 様に、水平方向画像分割部 41でフレーム画像を水平方向に分割した後に、各分割 画像 (水平方向ブロック)について水平方向のエッジを強調するため、水平方向のエツ ジが強調された分割画像を簡易に生成できる。
[0364] 実施の形態 4.
<動きベクトル検出装置の構成 >
図 1に示すように、本発明の実施の形態 4に係る動きベクトル検出装置 1Cについて は、実施の形態 1の動きベクトル検出装置 1と類似の構成を有している力 水平方向 動きベクトル検出部と垂直方向動きベクトル検出部との構成が異なっている。
[0365] 以下、動きベクトル検出装置 1Cにおける水平方向動きベクトル検出部 2Cおよび垂 直方向動きベクトル検出部 4Cの構成について図 40および図 41を参照して説明する 。 図 40は、水平方向動きベクトル検出部 2Cの要部構成を示すブロック図である。 なお、図 40では、実施の形態 3で説明した水平方向動きベクトル検出部 2Bと同様の 機能を有する部位には同一の符号を付し、重複する説明は省略する。
[0366] 水平方向動きベクトル検出部 2Cのエッジ強調手段では、実施の形態 3の水平方向 動きベクトル検出部 2Bのエッジ強調手段に対して垂直方向画像分割部 21と垂直方 向エッジ抽出フィルタリング部 22との配置が逆転している。以下では、この水平方向 動きベクトル検出部 2Cの動作について説明する。
[0367] 図 2に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読 み出されるフレーム画像が、水平方向動きベクトル検出部 2Cの入力端子 20に入力 されると、垂直方向エッジ抽出フィルタリング部 22にお 、て垂直方向に延びるエッジ 成分の抽出、換言すれば水平方向に急峻に変化する画像部分を強調するようなフィ ルタリング処理が施される。
[0368] 垂直方向エッジ抽出フィルタリング部 22で垂直方向のエッジが強調されたフレーム 画像が垂直方向画像分割部 21に入力されると、垂直方向にブロック分割される。す なわち、垂直方向画像分割部 21では、エッジ強調が施されたフレーム画像を垂直方 向に分割して得られる複数の画像領域 (垂直方向ブロック)が設定される。これ〖こより、
以降の処理では、垂直方向ブロックごとに処理および管理が行われることとなる。
[0369] 垂直方向画像分割部 21で分割された画像データは、垂直方向ブロック射影部 23 に入力される力 この垂直方向ブロック射影部 23以降の処理は、実施の形態 3の水 平方向動きベクトル検出部 2Bと同様の処理が行われる。
[0370] 図 41は、垂直方向動きベクトル検出部 4Cの要部構成を示すブロック図である。な お、図 41では、実施の形態 3で説明した垂直方向動きベクトル検出部 4Bと同様の機 能を有する部位には同一の符号を付し、重複する説明は省略する。
[0371] 垂直方向動きベクトル検出部 4Cのエッジ強調手段では、実施の形態 3の垂直方向 動きベクトル検出部 4Bのエッジ強調手段に対して水平方向画像分割部 41と水平方 向エッジ抽出フィルタリング部 42との配置が逆転している。以下では、この垂直方向 動きベクトル検出部 4Cの動作について説明する。
[0372] 図 2に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読 み出されるフレーム画像が、垂直方向動きベクトル検出部 4Cの入力端子 40に入力 されると、水平方向エッジ抽出フィルタリング部 42において水平方向に延びるエッジ 成分の抽出、換言すれば垂直方向に急峻に変化する画像部分を強調するようなフィ ルタリング処理が施される。
[0373] 水平方向エッジ抽出フィルタリング部 42で水平方向のエッジが強調されたフレーム 画像が水平方向画像分割部 41に入力されると、水平方向にブロック分割される。す なわち、水平方向画像分割部 41では、エッジ強調が施されたフレーム画像を水平方 向に分割して得られる複数の画像領域 (水平方向ブロック)が設定される。これ〖こより、 以降の処理では、水平方向ブロックごとに処理および管理が行われることとなる。
[0374] 水平方向画像分割部 41で分割された画像データは、水平方向ブロック射影部 43 に入力される力 この水平方向ブロック射影部 43以降の処理は、実施の形態 3の垂 直方向動きベクトル検出部 4Bと同様の処理が行われる。
[0375] 以上の動きベクトル検出装置 1Cの動作により、実施の形態 3と同様の効果を奏する
[0376] そして、動きベクトル検出装置 1Cでは、垂直方向エッジ抽出フィルタリング部 22で フレーム画像に対する垂直方向のエッジを強調した後に、エッジ強調されたフレーム
画像を垂直方向画像分割部 21にお ヽて垂直方向に分割するため、垂直方向のエツ ジが強調された分割画像を簡易に生成できる。
[0377] 同様に、水平方向エッジ抽出フィルタリング部 42でフレーム画像に対する水平方向 のエッジを強調した後に、エッジ強調されたフレーム画像を水平方向画像分割部 41 において水平方向に分割するため、水平方向のエッジが強調された分割画像を簡 易に生成できる。
[0378] なお、動きベクトル検出装置 1Cにおいては、垂直方向エッジ抽出フィルタリング部 22と水平方向エッジ抽出フィルタリング部 42とを別々に水平方向動きベクトル検出 部 2Aおよび垂直方向動きベクトル検出部 4Aに配置するのは必須でなぐ垂直方向 エッジ抽出フィルタリング部 22および水平方向エッジ抽出フィルタリング部 42の双方 の機能を一体ィ匕した水平 Z垂直方向エッジ抽出フィルタリング部を設けて、その出力 を垂直方向画像分割部 21および水平方向画像分割部 41それぞれに入力させるよう にしても良い。
[0379] <変形例>
上記の各実施の形態における垂直方向エッジ抽出フィルタリング部および水平方 向エッジ抽出フィルタリング部については、エッジ抽出を行うフィルタリング処理後に、 所定の閾値との大小関係を判別する閾値処理により例えば「エッジあり」「エッジなし」 の 2値化や、「正のエッジあり」「エッジなし」「負のエッジあり」の 3値化を行うようにして も良い。このような閾値処理を行うことにより、所定の閾値以上の輝度変化 (輝度勾配) を有するエッジを同一に扱うことが可能となる。
[0380] 上記の各実施の形態においては、ビット数削減部 25から出力されるデータを、例え ばフレームごとのスィッチ切替えによって第 1の垂直方向ブロック射影ラインメモリ 26 と第 2の垂直方向ブロック射影ラインメモリ 27とに交互に入力させるようにしても良い。
[0381] また、水平方向ブロック射影部 43から出力されるデータを、例えばフレームごとのス イッチ切替えによって第 1の水平方向ブロック射影ラインメモリ 44と第 2の水平方向ブ ロック射影ラインメモリ 46とに交互に入力させるようにしても良い。
[0382] 同様に、垂直 (水平)方向ブロック射影部から出力されるデータを、例えばフレームご とのスィッチ切替えによって第 1の垂直 (水平)方向ブロック射影データ最大値保存部
と第 2の垂直 (水平)方向ブロック射影データ最大値保存部とに交互に入力させるよう にしても良い。
[0383] 本発明における「前フレーム」には、後フレーム (例えば現在のフレーム)に対して 1 つだけ前のフレームに限らず、 2つ以上前のフレームも含まれる。例えば、フレーム間 引き処理により途中のフレームがスキップされている場合には、スキップされたフレー ムの前のフレームが含まれる。
[0384] この発明は詳細に説明されたが、上記した説明は、すべての局面において、例示 であって、この発明がそれに限定されるものではない。例示されていない無数の変形 例力 この発明の範囲力 外れることなく想定され得るものと解される。
Claims
請求の範囲
[1] 時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の 動きベクトルを検出する動きベクトル検出装置であって、
水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレー ム画像に関して、垂直方向に一定の分割幅を有して複数に分割されたブロックごとに 垂直方向のエッジを強調するエッジ強調手段(21, 22)と、
前記エッジ強調手段(21, 22)でエッジが強調された画像について、前記ブロック ごとに垂直方向に射影をとり、前記ブロックのそれぞれで 1水平ライン分のデータ配 列を有する射影データを生成する射影手段 (23)と、
前記前フレームに対して前記射影手段(23)で得られた射影データに関して前記 データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の 一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段 (2 9)と、
前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フ レームに対して前記射影手段で得られた射影データ力 抽出する抽出手段 (30)と、 前記抽出手段(30)で抽出された所定範囲のデータ配列それぞれについて、前記 各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する 加算手段 (31)と、
前記加算手段(31)で加算された加算結果に基づき、フレーム画像の水平方向に 関する動きベクトルを検出する検出手段(32)と、を備える動きベクトル検出装置。
[2] 請求項 1記載の動きベクトル検出装置において、
前記射影データの配列要素にぉ 、て最大値を求める最大値取得手段(24)と、 前記最大値取得手段で求められた最大値に基づき前記射影データに関する各配 列要素のデータ長を削減する削減手段 (25)と、
前記後フレームにつ 、て前記削減手段(25)でデータ長が削減された射影データ を記憶する記憶手段(26)と、をさらに備え、
前記特定手段(29)は、
前記前フレームにつ 、て前記削減手段(25)でデータ長が削減された射影データ
に関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素 の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定す る位置特定手段、を有するとともに、
前記抽出手段(30)は、
前記位置特定手段で特定された各交差点の配列要素の位置を中心とした所定範 囲のデータ配列を、前記記憶手段(26)に記憶されるデータ長が削減された後フレ ームの射影データ力も抽出する手段を有する、動きベクトル検出装置。
[3] 請求項 1記載の動きベクトル検出装置において、
前記加算手段 (31)は、
前記抽出手段(30)で抽出された所定範囲のデータ配列に関する各配列要素のデ 一タ長を圧縮する圧縮手段 (314)と、
前記圧縮手段によりデータ長が圧縮された所定範囲のデータ配列それぞれについ て、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を 加算する手段 (315)を有する、動きベクトル検出装置。
[4] 請求項 3記載の動きベクトル検出装置において、
前記圧縮手段(314)は、
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素の値を 3 値化処理し、
前記 3値化処理では、前記後フレームの射影データにおける配列要素の最大値に 基づき設定される閾値 Th(Th>0)に関して、前記抽出手段(30)で抽出された射影 データに関する配列要素の値力 (一 Th)より小さい場合、(― Th)以上で Th以下の 場合、および Thより大きい場合の 3段階による 3値ィ匕が行われる、動きベクトル検出 装置。
[5] 時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の 動きベクトルを検出する動きベクトル検出装置であって、
水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレー ム画像に関して、水平方向に一定の分割幅を有して複数のブロックに分割されたブ ロックごとに水平方向のエッジを強調するエッジ強調手段 (42)と、
前記エッジ強調手段でエッジが強調された画像にっ 、て、前記ブロックごとに水平 方向に射影をとり、前記ブロックのそれぞれで 1垂直ライン分のデータ配列を有する 射影データを生成する射影手段 (43)と、
前記前フレームに対して前記射影手段 (43)で得られた射影データに関して前記 データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の 一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段 (4 8)と、
前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フ レームに対して前記射影手段で得られた射影データ力 抽出する抽出手段 (49)と、 前記抽出手段 (49)で抽出された所定範囲のデータ配列それぞれにつ 、て、前記 各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する 加算手段 (50)と、
前記加算手段(50)で加算された加算結果に基づき、フレーム画像の垂直方向に 関する動きベクトルを検出する検出手段(51)と、を備える、動きベクトル検出装置。
[6] 請求項 5記載の動きベクトル検出装置において、
前記加算手段(50)は、
前記抽出手段 (49)で抽出された所定範囲のデータ配列に関する各配列要素のデ 一タ長を圧縮する圧縮手段 (504)と、
前記圧縮手段によりデータ長が圧縮された所定範囲のデータ配列それぞれについ て、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を 加算する手段 (505)を有する、動きベクトル検出装置。
[7] 請求項 6記載の動きベクトル検出装置において、
前記圧縮手段(504)は、
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素の値を 3 値化処理し、
前記 3値化処理では、前記前フレームの射影データにおける配列要素の最大値に 基づき設定される閾値 Th(Th>0)に関して、前記抽出手段で抽出された射影デー タに関する配列要素の値が、(一 Th)より小さい場合、(― Th)以上で Th以下の場合、
および Thより大きい場合の 3段階による 3値ィ匕が行われる、動きベクトル検出装置。
[8] 請求項 1または請求項 5に記載の動きベクトル検出装置において、
前記前フレームに関する射影データの配列要素における最大値を求める、最大値 特定手段 (28, 47)を備える、動きベクトル検出装置。
[9] 時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の 動きベクトルを検出する動きベクトル検出装置であって、
水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレー ム画像に関して、垂直方向に一定の分割幅を有して複数のブロックに分割されたブ ロックごとに垂直方向のエッジを強調するエッジ強調手段(21, 22)と、
前記エッジ強調手段(21, 22)でエッジが強調された画像について、前記ブロック ごとに垂直方向に射影をとり、前記ブロックのそれぞれで 1水平ライン分のデータ配 列を有する射影データを生成する射影手段 (23)と、
前記後フレームに対して前記射影手段(23)で得られた後フレーム射影データの配 列要素において最大値を求める最大値取得手段(24)と、
前記前フレームに対して前記射影手段(23)で得られた前フレーム射影データに関 して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値 が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定して交 差点情報として出力する特定手段 (29)と、
前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フ レーム射影データ力 抽出する抽出手段(30)と、
前記抽出手段(30)で抽出された所定範囲のデータ配列それぞれについて、前記 各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算し、 得られた加算結果に基づいて前記ブロックごとの水平方向動きベクトルを算出する加 算手段 (310)と、
前記加算手段(310)で算出された前記ブロックごとの水平方向動きベクトルに基づ き、フレーム画像全体の水平方向動きベクトルを検出する検出手段(320)と、を備え 前記検出手段(320)は、
前記最大値取得手段(24)で得られた前記後フレーム射影データの前記最大値、 前記加算手段 (310)で得られた前記加算結果および前記特定手段 (29)で得られ た前記交差点情報のうち少なくとも 1つを用いて前記ブロックごとの水平方向動きべ タトルの信頼性評価を行う、動きベクトル検出装置。
[10] 請求項 9記載の動きベクトル検出装置において、
前記検出手段(320)は、
前記後フレーム射影データの前記最大値を用いて前記ブロックごとの水平方向動 きベクトルの信頼性評価を行う場合、
前記複数のブロックのそれぞれにお 、て得られた、前記後フレーム射影データの 前記最大値の中力 全ブロック中の最大値を求め、該全ブロック中の最大値に対し て、予め定めた比率以下の前記最大値を有する前記ブロックについては無効ブロッ クとし、該無効ブロック力も算出された前記ブロックごとの水平方向動きベクトルは、前 記フレーム画像全体の水平方向動きベクトルの検出には使用しない、動きベクトル検 出装置。
[11] 請求項 9記載の動きベクトル検出装置において、
前記検出手段(320)は、
前記加算結果を用いて前記ブロックごとの水平方向動きベクトルの信頼性評価を 行う場合、
前記複数のブロックのそれぞれにおいて得られた前記加算結果のピーク値の中か ら最大ピーク値を求め、該最大ピーク値が予め定めた第 1の所定値以上である場合 は、予め定めた第 2の所定値以下の前記最大値を有する前記ブロックについては無 効ブロックとし、該無効ブロック力も算出された前記ブロックごとの水平方向動きべタト ルは、前記フレーム画像全体の水平方向動きベクトルの検出には使用しない、動き ベクトル検出装置。
[12] 請求項 9記載の動きベクトル検出装置において、
前記検出手段(320)は、
前記交差点情報を用いて前記ブロックごとの水平方向動きベクトルの信頼性評価 を行う場合、前記交差点情報のうち交差点数の情報を使用し、
前記複数のブロックのそれぞれにおいて得られた前記交差点数のうち、予め定め た第 1の所定値以下および予め定めた第 2の所定値以上の前記交差点数を有する 前記ブロックについては無効ブロックとし、該無効ブロック力も算出された前記ブロッ クごとの水平方向動きベクトルは、前記フレーム画像全体の水平方向動きベクトルの 検出には使用しない、動きベクトル検出装置。
[13] 請求項 9記載の動きベクトル検出装置において、
前記検出手段(320)は、
前記交差点情報を用いて前記ブロックごとの水平方向動きベクトルの信頼性評価 を行う場合、前記交差点情報のうち交差点数の情報を使用し、
前記複数のブロックのそれぞれにおいて得られた前記交差点数の中から最大値を 求め、該最大値が予め定めた第 1の所定値以上である場合は、予め定めた第 2の所 定値以下および予め定めた第 3の所定値以上の前記交差点数を有する前記ブロッ クについては無効ブロックとし、該無効ブロック力 算出された前記ブロックごとの水 平方向動きベクトルは、前記フレーム画像全体の水平方向動きベクトルの検出には 使用しない、動きベクトル検出装置。
[14] 請求項 10ないし請求項 13の何れかに記載の動きベクトル検出装置において、 前記検出手段(320)は、
前記ブロックごとの水平方向動きベクトルの信頼性評価によって有効ブロックと判断 された前記ブロック力 算出された前記ブロックごとの水平方向動きベクトルについて 分布範囲を求め、該分布範囲が予め定めた閾値以上の場合は、前記フレーム画像 全体の水平方向動きベクトルをゼロとする、動きベクトル検出装置。
[15] 請求項 14記載の動きベクトル検出装置において、
前記検出手段(320)は、
前記前フレームの前記フレーム画像全体の水平方向動きベクトルを保存する前フ レーム水平方向動きベクトル保存手段を有し、
前記有効ブロックと判断された前記ブロック力 算出された前記ブロックごとの水平 方向動きベクトルのうち、前記前フレームの前記フレーム画像全体の水平方向動き ベクトルに最も近いものを、前記後フレームの前記フレーム画像全体の水平方向動
きベクトルとする、動きベクトル検出装置。
時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の 動きベクトルを検出する動きベクトル検出装置であって、
水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレー ム画像に関して、水平方向に一定の分割幅を有して複数のブロックに分割されたブ ロックごとに水平方向のエッジを強調するエッジ強調手段 (42)と、
前記エッジ強調手段 (42)でエッジが強調された画像にっ 、て、前記ブロックごとに 水平方向に射影をとり、前記ブロックのそれぞれで 1垂直ライン分のデータ配列を有 する射影データを生成する射影手段 (43)と、
前記後フレームに対して前記射影手段 (43)で得られた後フレーム射影データの配 列要素において最大値を求める最大値取得手段 (45)と、
前記前フレームに対して前記射影手段 (43)で得られた前フレーム射影データに関 して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値 が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定して交 差点情報として出力する特定手段 (48)と、
前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フ レーム射影データ力 抽出する抽出手段 (49)と、
前記抽出手段 (49)で抽出された所定範囲のデータ配列それぞれにつ 、て、前記 各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算し、 得られた加算結果に基づいて前記ブロックごとの垂直方向動きベクトルを算出する加 算手段 (500)と、
前記加算手段(500)で算出された前記ブロックごとの垂直方向動きベクトルに基づ き、フレーム画像全体の垂直方向動きベクトルを検出する検出手段(510)と、を備え 前記検出手段(510)は、
前記最大値取得手段 (45)で得られた前記後フレーム射影データの前記最大値、 前記加算手段 (500)で得られた前記加算結果および前記特定手段 (48)で得られ た前記交差点情報のうち少なくとも 1つを用いて前記ブロックごとの垂直方向動きべ
タトルの信頼性評価を行う、動きベクトル検出装置。
[17] 請求項 16記載の動きベクトル検出装置において、
前記検出手段(510)は、
前記後フレーム射影データの前記最大値を用いて前記ブロックごとの垂直方向動 きベクトルの信頼性評価を行う場合、
前記複数のブロックのそれぞれにお 、て得られた、前記後フレーム射影データの 前記最大値の中力 全ブロック中の最大値を求め、該全ブロック中の最大値に対し て、予め定めた比率以下の前記最大値を有する前記ブロックについては無効ブロッ クとし、該無効ブロック力 算出された前記ブロックごとの垂直方向動きベクトルは、前 記フレーム画像全体の垂直方向動きベクトルの検出には使用しない、動きベクトル検 出装置。
[18] 請求項 16記載の動きベクトル検出装置において、
前記検出手段(510)は、
前記加算結果を用いて前記ブロックごとの垂直方向動きベクトルの信頼性評価を 行う場合、
前記複数のブロックのそれぞれにお 、て得られた、前記後フレーム射影データの 前記最大値の中力 全ブロック中の最大値を求め、該全ブロック中の最大値に対し て、予め定めた比率以下の前記最大値を有する前記ブロックについては無効ブロッ クとし、該無効ブロック力 算出された前記ブロックごとの垂直方向動きベクトルは、前 記フレーム画像全体の垂直方向動きベクトルの検出には使用しない、動きベクトル検 出装置。
[19] 請求項 16記載の動きベクトル検出装置において、
前記検出手段(510)は、
前記交差点情報を用いて前記ブロックごとの垂直方向動きベクトルの信頼性評価 を行う場合、前記交差点情報のうち交差点数の情報を使用し、
前記複数のブロックのそれぞれにおいて得られた前記交差点数のうち、予め定め た第 1の所定値以下および予め定めた第 2の所定値以上の前記交差点数を有する 前記ブロックについては無効ブロックとし、該無効ブロック力も算出された前記ブロッ
クごとの垂直方向動きベクトルは、前記フレーム画像全体の垂直方向動きベクトルの 検出には使用しない、動きベクトル検出装置。
[20] 請求項 16記載の動きベクトル検出装置において、
前記検出手段(510)は、
前記交差点情報を用いて前記ブロックごとの垂直方向動きベクトルの信頼性評価 を行う場合、前記交差点情報のうち交差点数の情報を使用し、
前記複数のブロックのそれぞれにおいて得られた前記交差点数の中から最大値を 求め、該最大値が予め定めた第 1の所定値以上である場合は、予め定めた第 2の所 定値以下および予め定めた第 3の所定値以上の前記交差点数を有する前記ブロッ クについては無効ブロックとし、該無効ブロック力 算出された前記ブロックごとの垂 直方向動きベクトルは、前記フレーム画像全体の垂直方向動きベクトルの検出には 使用しない、動きベクトル検出装置。
[21] 請求項 17ないし請求項 20の何れかに記載の動きベクトル検出装置において、 前記検出手段(510)は、
前記ブロックごとの垂直方向動きベクトルの信頼性評価によって有効ブロックと判断 された前記ブロック力 算出された前記ブロックごとの垂直方向動きベクトルについて 分布範囲を求め、該分布範囲が予め定めた閾値以上の場合は、前記フレーム画像 全体の垂直方向動きベクトルをゼロとする、動きベクトル検出装置。
[22] 請求項 21記載の動きベクトル検出装置において、
前記検出手段は、
前記前フレームの前記フレーム画像全体の垂直方向動きベクトルを保存する前フ レーム垂直方向動きベクトル保存手段を有し、
前記有効ブロックと判断された前記ブロックから算出された前記ブロックごとの垂直 方向動きベクトルのうち、前記前フレームの前記フレーム画像全体の垂直方向動き ベクトルに最も近いものを、前記後フレームの前記フレーム画像全体の垂直方向動 きベクトルとする、動きベクトル検出装置。
[23] 請求項 1または請求項 9記載の動きベクトル検出装置において、
前記エッジ強調手段(21、 22)は、
前記フレーム画像を垂直方向に分割して得られる複数の画像領域のそれぞれを、 前記ブロックとして設定する画像分割手段 (21)と、
前記複数のブロックのそれぞれにつ 、て垂直方向のエッジを強調する強調手段(2 2)と、を有する、動きべ外ル検出装置。
[24] 請求項 1または請求項 9記載の動きベクトル検出装置において、
前記エッジ強調手段(21、 22)は、
前記フレーム画像について垂直方向のエッジを強調する強調手段(22)と、 前記強調手段(22)でエッジが強調された前記フレーム画像を垂直方向に分割し て得られる複数の画像領域のそれぞれを、前記ブロックとして設定する画像分割手 段 (21)と、を有する、動きべ外ル検出装置。
[25] 請求項 5または請求項 16に記載の動きベクトル検出装置において、
前記エッジ強調手段 (41, 42)は、
前記フレーム画像を水平方向に分割して得られる複数の画像領域のそれぞれを、 前記ブロックとして設定する画像分割手段 (41)と、
前記複数のブロックのそれぞれにつ 、て水平方向のエッジを強調する強調手段 (4 2)と、を有する、動きべ外ル検出装置。
[26] 請求項 5または請求項 16に記載の動きベクトル検出装置において、
前記エッジ強調手段 (41, 42)は、
前記フレーム画像について水平方向のエッジを強調する強調手段 (42)と、 前記強調手段 (42)でエッジが強調された前記フレーム画像を水平方向に分割し て得られる複数の画像領域のそれぞれを、前記ブロックとして設定する画像分割手 段 (41)とを、有する動きべ外ル検出装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07708111A EP2061007A1 (en) | 2006-08-24 | 2007-02-06 | Moving vector detecting bdevice |
CN2007800314952A CN101506845B (zh) | 2006-08-24 | 2007-02-06 | 运动矢量检测装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006227384A JP4027398B1 (ja) | 2006-08-24 | 2006-08-24 | 動きベクトル検出装置 |
JP2006-227384 | 2006-08-24 | ||
JP2006242343A JP4213739B2 (ja) | 2006-09-07 | 2006-09-07 | 動きベクトル検出装置 |
JP2006-242343 | 2006-09-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008023466A1 true WO2008023466A1 (en) | 2008-02-28 |
Family
ID=39106560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2007/052011 WO2008023466A1 (en) | 2006-08-24 | 2007-02-06 | Moving vector detecting bdevice |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP2061007A1 (ja) |
WO (1) | WO2008023466A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010003094A (ja) * | 2008-06-19 | 2010-01-07 | Fujitsu Ltd | 画像処理装置、画像処理方法、及びプログラム |
CN111292354A (zh) * | 2020-01-22 | 2020-06-16 | 维沃移动通信有限公司 | 误检测抑制方法及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107274364B (zh) * | 2017-06-06 | 2020-01-31 | 中科创达软件股份有限公司 | 一种图像增强方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002279430A (ja) * | 2001-03-14 | 2002-09-27 | Lg Electronics Inc | 動きベクトル検出回路 |
JP2004343483A (ja) * | 2003-05-16 | 2004-12-02 | Acutelogic Corp | 手振れ補正装置および方法、手振れ検出装置 |
JP2006268413A (ja) * | 2005-03-24 | 2006-10-05 | Mitsubishi Electric Corp | 画像動きベクトル検出装置 |
-
2007
- 2007-02-06 EP EP07708111A patent/EP2061007A1/en not_active Withdrawn
- 2007-02-06 WO PCT/JP2007/052011 patent/WO2008023466A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002279430A (ja) * | 2001-03-14 | 2002-09-27 | Lg Electronics Inc | 動きベクトル検出回路 |
JP2004343483A (ja) * | 2003-05-16 | 2004-12-02 | Acutelogic Corp | 手振れ補正装置および方法、手振れ検出装置 |
JP2006268413A (ja) * | 2005-03-24 | 2006-10-05 | Mitsubishi Electric Corp | 画像動きベクトル検出装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010003094A (ja) * | 2008-06-19 | 2010-01-07 | Fujitsu Ltd | 画像処理装置、画像処理方法、及びプログラム |
CN111292354A (zh) * | 2020-01-22 | 2020-06-16 | 维沃移动通信有限公司 | 误检测抑制方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2061007A1 (en) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7149355B2 (en) | Image processing apparatus, image processing method, image processing program, and computer-readable record medium storing image processing program | |
JP4339925B2 (ja) | 文書画像処理方法、文書画像処理装置、文書画像処理プログラムおよび記憶媒体 | |
US20040036924A1 (en) | Image processing apparatus, image processing method, and storage medium of image processing program | |
US7474354B2 (en) | Image angle detection device and scan line interpolation device having the same | |
JP2013045178A (ja) | 画像処理装置、画像処理方法及びプログラム | |
US20050152604A1 (en) | Template matching method and target image area extraction apparatus | |
US20100026903A1 (en) | Motion vector detection device, motion vector detection method, and program | |
JP2996657B2 (ja) | 階調パターン整合による動き検出装置及びその方法 | |
US5296940A (en) | Image processing method and apparatus for converting gray-scale images into binary images | |
CN108510425B (zh) | 基于ippvo和优化mhm的可逆水印方法 | |
US20020047907A1 (en) | Image processing apparatus and storage medium for storing image processing program | |
WO2008023466A1 (en) | Moving vector detecting bdevice | |
KR100943595B1 (ko) | 영상신호의 블러링 판단장치 및 방법 | |
JP4027398B1 (ja) | 動きベクトル検出装置 | |
CN112102316A (zh) | 产品缺陷位置分布获取方法和装置 | |
JP4213739B2 (ja) | 動きベクトル検出装置 | |
US20040052428A1 (en) | Image processing system | |
JP4083782B1 (ja) | 動きベクトル検出装置 | |
CN105611214A (zh) | 一种基于多方向检测的线性插值场内去隔行方法 | |
JP4261922B2 (ja) | 文書画像処理方法、文書画像処理装置、文書画像処理プログラムおよび記憶媒体 | |
JP4313820B2 (ja) | 動きベクトル検出装置 | |
JP5103436B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JPH10124665A (ja) | 画像処理方法および画像処理装置 | |
WO2008065764A1 (en) | Motion vector detecting device | |
JP2007287024A (ja) | 領域検出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200780031495.2 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07708111 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: RU |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2007708111 Country of ref document: EP |