WO2000024202A1 - Motion vector detecting method and device - Google Patents

Motion vector detecting method and device Download PDF

Info

Publication number
WO2000024202A1
WO2000024202A1 PCT/JP1999/005735 JP9905735W WO0024202A1 WO 2000024202 A1 WO2000024202 A1 WO 2000024202A1 JP 9905735 W JP9905735 W JP 9905735W WO 0024202 A1 WO0024202 A1 WO 0024202A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
search area
block
detecting
area
Prior art date
Application number
PCT/JP1999/005735
Other languages
English (en)
French (fr)
Inventor
Yuji Ando
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP30147998A external-priority patent/JP4078733B2/ja
Priority claimed from JP30147898A external-priority patent/JP4035903B2/ja
Priority claimed from JP30147798A external-priority patent/JP4196447B2/ja
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to EP99947946A priority Critical patent/EP1051040A1/en
Priority to AU61242/99A priority patent/AU751909B2/en
Priority to CA002314976A priority patent/CA2314976C/en
Priority to KR1020007006895A priority patent/KR100659627B1/ko
Priority to US09/582,156 priority patent/US6594314B1/en
Publication of WO2000024202A1 publication Critical patent/WO2000024202A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Definitions

  • the present invention relates to a j-vector used when performing an image encoding process based on MPEG (Moving Picture Image Coding Experts Group).
  • the present invention relates to a method and an apparatus for detecting a motion vector for detecting motion vector. Back ⁇ technology
  • the MPEG method is a coding method that compresses image data by combining DCT (Discrete Cosine Transform) in a screen, motion compensation prediction in an image, and variable-length coding.
  • DCT Discrete Cosine Transform
  • the motion vector detection processing performed in the prediction of the long sleeves of an image has been performed by so-called block matching.
  • This block matching is based on a reference block divided into a predetermined number of pixels in a reference image to be processed, and a reference block corresponding to a motion vector starting from the same position in the reference image as the reference block.
  • the process of extracting an area having the same number of pixels as the number of pixels, calculating the absolute value of the difference between the reference block and the corresponding pixel of the reference block, and calculating the sum of the absolute values of the differences for all the pixels in the reference block Do.
  • the block matrix described above is moved while moving the area to be extracted within the search area of the reference image one pixel at a time.
  • the motion vector is detected using the point at which the sum of the absolute values of the differences has the smallest value as a base point.
  • the search area when the motion vector for the reference image is obtained and the search area when the motion vector for the S sub-image is obtained are the same size. It is performed in the range of. Also, when calculating the motion vector of the reference image, even if the motion vector of the quasi-block can be predicted to some extent, an area of a certain size based on the edict vector of the reference image is used. The search vector was used as the search area to detect the reference vector. Furthermore, the process of detecting a motion vector by block matching described above ⁇ . Is extremely enormous in the process of obtaining the sum of absolute values of the ⁇ -marks performed when performing block matching. And
  • a first object of the present invention has been proposed in view of the above-described circumstances, and has been made in consideration of a calculation for detecting a motion vector for a field image of an in-and-out race method.
  • An object of the present invention is to provide a motion vector detection method and device capable of reducing the amount.
  • a second object of the present invention is to provide a motion vector detection method capable of reducing the amount of calculation while maintaining the detection accuracy when detecting the motion vector. It is an object of the present invention to provide an exit method and an apparatus. .
  • a third object of the present invention is to reduce the number of block matchings performed when detecting a motion vector to reduce the amount of calculation and the processing time when detecting a motion vector. It is an object of the present invention to provide a motion vector detection method and device that can be achieved.
  • the present inventor has detected a motion vector for each field image constituting a Kei image in the in-line race method. At that time, I found that the high distance between the top-field image and the bottom-field image could be in the prediction of the Imperial Vector.
  • the motion vector detection method and apparatus have been completed based on such knowledge, and have been developed to detect a motion vector of a field image conforming to the in-night lace method.
  • a motion vector of a second field image is detected in a predetermined search area using a first field image, and a motion vector of a third field image is detected.
  • the search area for detecting a vector is defined as the distance between the fields between the referenced field image and the third field image, the first field image and the second field.
  • the third field image is calculated by comparing the distance between the image and the field with the image, and using the search area obtained by the above calculation starting from the point indicated by the motion vector for the second field image. It is characterized by detecting a motion vector for.
  • a search area for detecting a motion vector for a field image is changed using a motion vector for another field image.
  • set Block matching is performed in the set search area to detect a motion vector for the third field image.
  • the method and apparatus for detecting a motion vector according to the present invention that achieves the second object described above provide a motion vector detection method for a reference block included in a reference frame temporally or spatially adjacent to a reference frame.
  • the first search area around the point indicating the vector is determined, and the second search vector around the point where the motion vector of the reference block is extended according to the frame distance between the reference frame and the reference frame is determined.
  • the motion vector search area including the first search area and the second search area the reference block image data and the reference frame included in the reference block included in the reference frame are determined.
  • the image data of the reference block is calculated, and the j-vector of the reference block is detected.
  • Such a method and apparatus for detecting a motion vector determine the first search area based on the motion vector of the reference block when detecting the motion vector of the reference block, and The second search area is determined according to the point where the motion vector of the reference block is extended, and the motion vector of the reference block is determined in the motion vector search area including the first search area and the second search area. Is performed.
  • the present inventors have conducted intensive studies to achieve the third object described above, and as a result, when detecting a motion vector, the correlation between pixel blocks adjacent to each other is high in the motion vector. It has been found that it can be used to predict motion vectors.
  • the motion vector detection method and apparatus have been completed based on such knowledge, and have been described in the first search area.
  • the second search area for detecting the motion vector for the block is determined based on the motion vector for the first block adjacent to the second block in the horizontal or vertical direction.
  • the motion vector for the second block is detected by performing block matching in the second search area.
  • a motion vector is detected by performing block matching in the first search area, and the motion vector is detected by the first block.
  • the second search area is set by setting the search vector of the adjacent first block to / [], and the second search area having the size given by the predetermined search area is set.
  • the motion vector of the second block is detected by performing block matching in the search area.
  • FIG. 1 is a block diagram showing a configuration of a motion vector detecting device according to a first embodiment of the present invention.
  • FIG. 2 is a diagram for explaining the inter-field distance of the field image of the in-the-sun race method.
  • FIG. 3 is a flowchart showing a processing procedure in which a CPU included in the motion vector detection device according to the first embodiment detects a motion vector according to a motion vector detection program.
  • Figure 4 is a diagram for explaining a searching for the predetermined search area to determine the motion base-vector V TT.
  • FIG. 5 is a diagram for explaining determining a starting point and a search area for searching for a motion vector VBB using the motion vector VTT.
  • Figure 6 is a diagram for explaining that the decision of the start point and search area for searching the motion base-vector V TB using Ugokibeku torr V TT.
  • Figure 7 is a diagram for explaining that to determine the starting point and the search region for searching the motion base-vector VBT using the motion vector V TT.
  • FIG. 8 is a flow chart for explaining a process of detecting a motion vector by substituting a search area in the motion vector detection device S according to the embodiment of ⁇ 1.
  • FIG. 9 is a flowchart illustrating a process of determining a search area and detecting a motion vector with the motion vector detection device according to the first embodiment.
  • FIG. 10 is a diagram for explaining a process of creating a map using CPU.
  • FIG. 11 is a diagram for explaining an example of a map created in the memory of the CPU.
  • FIG. 12 is a diagram for explaining another example of the map created in the memory of the CPU.
  • FIG. 13 is a block diagram illustrating a configuration of a motion vector detection device according to a second embodiment of the present invention.
  • FIG. 14 shows that a frame image is divided into macroblock units when a motion vector detection process is performed by a CPU included in the motion vector detection device according to the third embodiment.
  • FIG. 15 is a flowchart showing a processing procedure in which the CPU included in the motion vector detection device according to the third embodiment detects a motion vector according to a motion vector detection program.
  • FIG. 16 is a flowchart showing a processing procedure in which a CPU included in the motion vector detection device according to the third embodiment detects a motion vector according to a motion vector detection program. is there.
  • Figure 17 shows that when the adjacent macroblock in the horizontal direction is pointing in the direction of H, the motion vector is detected by setting the search area using the edict of the adjacent Mac mouth block. It is a diagram for explaining what to do.
  • Figure 18 shows that, when adjacent macroblocks in the horizontal direction point in substantially the same direction, a search area is set using the motion vectors of the adjacent macroblocks to detect the motion vector. It is a figure for explaining.
  • Fig. 19 shows that when the adjacent macroblocks in the vertical direction are pointing in the direction of 3 ⁇ 4, the motion vector is detected by setting the search area using the j vectors of the adjacent macroblocks.
  • Fig. 20 explains how to detect a motion vector by setting a search area using the motion vector of an adjacent macroblock when adjacent macroblocks in the horizontal direction point in substantially the same direction.
  • FIG. BEST MODE FOR CARRYING OUT THE INVENTION first, second, and third embodiments according to the first, second, and third objects of the present invention will be described in detail with reference to the drawings. Also, in the following description, a motion vector detecting apparatus that detects a motion vector by setting a search area by using a correlation between a top field image and a bottom field image according to the first embodiment is described.
  • a motion vector detection device that sets a search area by using the correlation of frames or fields that are temporally preceding and succeeding to detect a motion vector is described as a second embodiment. The motion vector is detected by setting the search area using the phase difference between the work vectors of the pixel blocks adjacent to each other. This is explained as an embodiment.
  • the motion vector detection device is configured, for example, as shown in FIG.
  • the motion vector detection device 1 includes a CPU (Central Processing Unit) 2 that performs a process of detecting an I / vector in an image encoding process based on the MPEG 2 standard for a field image. .
  • the CPU 2 performs a process of detecting a motion vector by starting a motion vector detection program.
  • the CPU 2 uses the image data and motion vector detection program stored in the memory 3 when detecting the motion vector.
  • the CPU 2 outputs a control signal to the memory 3 and the HDD (Hard Disc Drive) 4 so that the image data and motion vector detection program stored in the HDD 4 are stored in the memory 3. To control.
  • a CPU Central Processing Unit
  • the CPU 2 performs image processing such as an MPEG method
  • image processing such as an MPEG method
  • .1 (Intra) pictures are subjected to DCT (Discrete Cosine Transform) processing
  • B (biairectionally predictive) and P (Predictive) pictures are subjected to motion compensation prediction.
  • Perform compression processing when calculating a motion vector for one field image, the CPU 2 refers to a search area for searching for a motion vector by referring to a field interrogation distance of a temporally preceding and succeeding field image. To determine. Then, the CPU 2 detects a motion vector by performing block matching in a macroblock unit composed of, for example, 8 ⁇ 8 pixels in the search area.
  • the CPU 2 When performing block matching, the CPU 2 generates a reference block divided into a predetermined number of pixels included in a reference field image to be subjected to a process of detecting an excitation vector, and a reference field image corresponding to the reference block.
  • the reference block indicated by the motion vector is extracted from the position of the reference block, the absolute value of the difference between the reference block and the corresponding pixel of the reference block is calculated, and the difference is calculated for all the pixels in the reference block. Performs the process of calculating the sum of the absolute iifl of
  • the CPU 2 when detecting the motion vector, the CPU 2 repeatedly performs the above-described block matching while moving the region to be extracted within the search region of the reference field image one pixel at a time, and obtains the absolute value of the difference.
  • the motion vector is detected starting from the point at which the sum has the smallest value. The details of the procedure for detecting the motion vector by calculating the search area performed by the CPU 2 will be described later.
  • the content stored in the memory 3 is controlled by the CPU 2.
  • This memory 3 stores the motion vector detection program and image data from the HDD 4 according to the control signal from the CPU 2. At the same time, the stored motion vector detection program and image data are read.
  • the HDD 4 stores image data and a motion vector detection program. Then, the HDD 4 outputs the designated image data to the memory 3 according to the control signal from the CPU 2.
  • the image data stored in the HDD 4 has a top field image (T) and a bottom field image (B) that are alternately arranged according to the in-line lace method.
  • This is time-series moving image data.
  • the CPU 2 obtains the top field image T and the bottom field image T the field question the distance between the T 2 as a "1.5”, Botomufu I one field image B, and the field distance between the top field image T 2 is set to "0.5", bottom field image B, performs a process of calculating the search region the field Toi ⁇ away the board Tomufu Iru de image B 2 and as "1.0".
  • the I / F (in-flight interface) circuit 5 shown in FIG. 1 receives image data from the outside, for example, and outputs image data to the outside according to a control signal from the CPU 2.
  • the I / F circuit 5 outputs the image data to the HDD 4 when, for example, image data is input from the outside.
  • step S1 the CPU 2 performs a process of setting the search start point to (0, 0) as shown in FIG. That is, the CPU 2 performs a process of setting the starting point of the search area when performing block matching to detect a motion vector as (0, 0) as an initial setting.
  • CPU 2 for example click base motion torr V used when motion compensation top Fi one field image T 2 using the top Fi one field image T as shown in Figure 2 above
  • the search area S 0 for searching TT is defined as, for example, a diagonal point between the point (1 32, -32) and the point (+32, +32) with the origin (0, 0) as the center. It is a rectangular area.
  • CPU 2 may be any size to the extent that can be accurately and the detected child to Tsutomukibeku torr search area in detecting the ⁇ -out vector V TT.
  • CPU 2 performs a process of detecting a valiant-out base-vector V TT by performing block matching in the search area determined in step S 2 described above. That is, the CPU 2 sets the top field image T, for example, to the above-mentioned reference field image, sets the top field image T2 to the above-mentioned reference field image, and generates the top field image T, for example. Block matching is performed in the search area using the reference block A having a predetermined number of pixels included. Thus CPU 2 searches the reference proc B contained in the top Fi one field image T 2, detects the Ugokibeku torr VTT.
  • CPU 2 is a bottom field image B, relative to the the reference field image Botomufi one field image B 2 Fi - shifts to a process of detecting the base motion as field image-vector V BB.
  • the CPU 2 searches for the motion vector VB B as shown in FIG.
  • the origin of the detected at Sutedzupu S 3 described above the coordinate position of the tip of Ugokibeku Torr V TT (h TT, ⁇ ) a process of setting to do.
  • CPU 2 includes a inter-field distance between the reference Fi one field picture image and the reference field image used when detecting a Ugokibeku torr V TT, bottom field image B, the bottom field image B 2 Is the same as the distance between the fields, the starting point of the motion vector VB B is searched without expanding / contracting the tip of the motion vector VTT, and the coordinate position of the tip of the motion vector VTT (h I ⁇ , V TT).
  • the CPU 2 sets a search area S in FIG. 5 consisting of a predetermined number of pixels centered on the coordinate position (hTT, VTT) set in the above step S4.
  • C P U 2 is, for example, centered on the point ⁇ ⁇ ⁇ ⁇ , V TT, the point (h ⁇ ⁇ 4, V ⁇ -4) and the point (h ⁇
  • step S5 the CPU 2 may set the search area S for detecting the motion vector VnB to an arbitrary number of pixels.
  • step S 6 CPU 2 detects the motion vector V B beta by performing pro click matching in the same manner as the search area S BB in in the above-described step S 3 set Oite to step S 5 above Processing.
  • the CPU 2 proceeds to the process of detecting the motion vector V TB using the top field image T, as the reference field image and the bottom field image B 2 as the reference field image. I do.
  • CPU 2 as shown in FIG. 6, the starting point of searching the motion vector V TB, the length of the detected motion base-vector VTT at step S 3 described above Performs processing to set a coordinate position that is 1.5 times the height. That is, the CPU 2 determines that the distance between the fields between the top field image T and the top field image T 2 and the distance between the fields between the top field image T and the bottom field image B 2 is 1.5 times. from, and sets the start point of searching the motion vector V TB at the coordinate position (1. 5 hn, 1. 5 ⁇ ⁇ ).
  • the CPU 2 centers on the coordinate position (1.5 h TT , 1.5 ⁇ ) set in the above step S7, and sets the position of the search area set in the above step S5 to 1.
  • a search area S T "consisting of five times the number of pixels is set. That is, the CPU 2 sets the coordinates (1.5 h, 1.5 V") as the center and coordinates (1.5 h TT — 6, 1, 1. 5 VT T-6) and the coordinates (h TT + 6, the rectangular area defined as ⁇ + 6) and the diagonal point and search area S TB.
  • C PU 2 is the above-mentioned steps S 3 similarly to pro click matching motion base-vector V r »by performing within the search area S TH was Oite set to Step S 8 above Perform the detection process.
  • CPU 2 may shift to processing of detecting the motion base-vector V BT bottom field picture image B, and Toppufu Iru de image T 2 and the reference field picture as a reference full I one field image I do.
  • C PU 2 as shown in FIG. 7, the starting point for search probe motion vector V BT, was 5 times 0.5 the length of detected motion base-vector V TT at step S 3 described above A process for setting the coordinates is performed. In other words, CPU 2 uses the top field image T!
  • the starting point for searching the moving vector VBT is set to the coordinate position (0.5 hn, 0.5 v ⁇ ). I do.
  • the CPU 2 sets the coordinate position (0.5 h 1 T , 0.5 V ⁇ ) set in the above step S 10 as a center, and sets the coordinates in the above step S 5.
  • Set the search area S ⁇ consisting of 0.5 times the number of pixels of the search area. That is, the CPU 2 has the coordinates (0.5 h TT — 2, 0.5 V TT -2) and the J3 ⁇ 4 target (h TT +2) centered on the coordinates (0.5 h ⁇ , 0.5 V ⁇ ⁇ ). , V TT + 2) as a diagonal point, and the search area S nr is a momme ⁇ -shaped area.
  • step S12 CPU2 replaces step S1 described above.
  • a process for detecting the motion vector VBT is performed by performing block matching in the search area S irr set in 1 in the same manner as in step S 3 described above.
  • the CPU 2 predicts the motion vector for the top field image T from the relationship between the two field images of the top field image T, and the bottom field image B, 2 You get one motion vector. Then, CPU 2 selects an optimum motion vector from these two Tsunodo-out vector, the motion vector for the top field image T 2. The CPU 2 also calculates the motion vector of the bottom field image B 2 out of the motion vectors predicted from the two field images of the top field image T and the bottom field image B. The optimal motion vector will be selected.
  • the Keiki Vector Detector 1 When performing a process of detecting a motion vector for a field image conforming to the Ink Race-method, the Keiki Vector Detector 1 performs the processing as described in steps S1 to S3 described above. First, when detecting the motion vector V TT and detecting the other motion vectors V BB , V BT , and V TB , the top position of the motion vector V TT is used as a search starting point, and -Since the search area for detecting other motion vectors ⁇ ⁇ , V BT , and V TB is changed by performing block matching according to the distance between the fields, the top field image and the bottom field The pixel size of the search area can be reduced using the correlation with the blank image. Therefore, according to the present invention, the operation vector for detecting the motion vector can be reduced and the processing time can be reduced by reducing the pixel size of the search area. Can be.
  • the motion vector detecting device according to the second embodiment has a configuration as shown in FIG. 1, similarly to the motion vector detecting device 1 according to the above-described first embodiment.
  • the CPU 2 has a memory inside, and performs a search area for detecting a motion vector by performing block matching according to a motion vector detection program, by using a reference block included in a reference frame temporally close to the reference frame. Determine the first search area around the point indicating the vector, and set the second search area around the point extended according to the field between the reference frame and the reference frame or the distance between the frames You.
  • the CPU 2 generates, for each reference block constituting the reference frame, a flag indicating that it is a search area for performing block matching, stores the flag in the memory, and detects a key vector. As a result, the CPU 2 generates a map in the memory for determining whether or not the flag corresponding to the reference frame exists.
  • the CPU 2 creates a map using, for example, “1” as a flag for performing block matching and “0” as a flag for not performing block matching. Then, the CPU 2 performs a block matching in the set search area with reference to the map composed of the flags to detect a moving vector.
  • step S21 the CPU 2 determines whether or not a motion vector exists in the reference block in macroblock units.
  • step S2 the CPU 2 determines that the motion vector exists in the reference block.
  • step S23 the process proceeds to step S23.
  • CPU 2 sets the center position of the motion vector search area to the tip position ⁇ of the motion vector of the reference block. That is, the CPU 2 sets a rectangular area having a predetermined prime number from the center position S to a j-vector search area and sets it as an area for creating a map including a flag indicating that block matching is performed. .
  • the CPU 2 stores a map comprising a flag for storing the center of gravity ⁇ of the motion vector search area set in the above-mentioned step S22 in the memory. And set a rectangular area with (1 Sh, — Sv) and (+ Sh, + Sv) as diagonal points as the base area of the map. That is, the CPU 2 creates in the internal memory a map including a flag of “1” indicating that block matching is performed in the base area or a flag of “0” indicating not performing block matching in the base area. It will be.
  • the CPU 2 sets the area occupying a predetermined number of pixels centered on the movement vector of the reference block as the first search area and the movement vector of the reference block.
  • a second mining area is set with the point extended from the center as the center position.
  • the CPU 2 determines the position of a point extended from the motion vector of the reference block according to the inter-frame distance between the reference frame from which the motion vector is to be detected and the reference frame where the reference block exists.
  • the size of the second search area centered on the determined point is determined. That is, the CPU 2 sets an area having a size proportional to the distance between the reference frame and the reference frame as the size of the second search area.
  • the CPU 2 in response to setting the first search area and the second search area, the CPU 2 generates a flag indicating that block matching is performed.
  • the CPU 2 sets a connection line that narrows the set first search area and the second search area, and encloses the first search area, the ⁇ 2 search area, and the area surrounded by the connection line. Is used as a vector search area, and a flag is generated.
  • the CPU 2 sets the first search area and the second search area set as described above to, for example, a circular shape, and increases the radius of the second search area according to the frame distance.
  • a flag indicating the motion vector search area surrounded by the tangent connecting the first search area and the ⁇ 2 search area as a connection line in the base erlier of the memory, 11.
  • a map showing a motion vector search area surrounded by a first search area A, a second search area B, and a connection line C as shown in 1 is created in the memory.
  • the shaded area indicates the motion vector search area with the flag “1”
  • the white area indicates the area with the flag “0”.
  • step S23 where it is determined in step S21 that the motion vector does not exist in the reference block, the CPU 2 determines the center position of the motion vector search area as the coordinates (0, 0) Set. .
  • step S26 the CPU 2 sets the center of the motion vector search area set in the above step S23 as the center position, and calculates (-Sh, Sv) and (+ Sh, + A rectangular area having S v) as a diagonal point is set as a map base area, and the flow advances to step S27. That is, since it is determined in step S21 that no motion vector exists in the reference block, the CPU 2 sets the center of the motion vector search area as the center position of the rectangular area, A map is created in memory with a rectangular area having diagonal points of ( ⁇ Sh, —Sv) and (+ Sh, + Sv) as the vector search area.
  • step S27 the CPU 2 specifies the upper left coordinate position of the base gallery in the map created in step S26 as the initial position in step S25A described above. In other words, the CPU 2 starts searching for the block matching search position [S] to be detected when detecting a vector from the upper left coordinates (H, V) of the base area.
  • H and V are variables indicating the coordinate position iS in the map.
  • the CPU 2 reads from the memory 3 the image data of the reference block in macroblock units from the reference frame for detecting the motion vector.
  • CPU 2 reads the flag at coordinates (H, V) from the map stored in the memory.
  • step S30 the CPU 2 determines whether the flag read in step S29 is "1" or "0". In other words, this CPU 2 uses the coordinates of the map stored in the memory It is determined whether or not block matching is to be performed using the corresponding reference block pixel and reference block pixel. Then, when the flag is “1”, that is, when performing the block matching, the CPU 2 proceeds to step S31 shown in FIG. 9, and when the flag is “0”, that is, does not perform the block matching. Sometimes the process proceeds to step S35 shown in FIG.
  • step S31 the CPU 2 retrieves the image data of the reference block corresponding to the coordinates (H, V) from the memory 3 from the reference frame.
  • the CPU 2 determines the field image of the S sub-block corresponding to the locus (H, V) extracted in step S28, and The difference between each pixel constituting the reference block and each image constituting the reference block is calculated by comparing the image data of the reference block corresponding to the coordinates (H, V) input in step 1. And perform the sum of the absolute values of the differences.
  • step S33 CPU 2 determines whether or not the sum of absolute values obtained in step S32 is the minimum. Then, when the CPU 2 determines that the absolute value sum of the difference is the minimum, the CPU 2 proceeds to step S34, stores the coordinates (H, V) with the absolute value sum of the difference as the minimum value, and determines that the coordinate is not the minimum. If so, the process proceeds to step S35. As a result, the CPU 2 detects the motion vector.
  • step S35 the CPU 2 specifies the next pixel by incrementing the coordinates (H, V) of the map.
  • step S36 the coordinates of the map are lower right, that is, the coordinates are (Right, Bottom). And CPU 2 makes the coordinates of the map If it is determined that the coordinates are not the lower right, the processing from step S29 is performed on the pixel specified in step S.35, and if it is determined that the coordinates of the map are the lower right, the motion vector is determined for the reference block. The detection process ends.
  • the motion vector detection device 1 When detecting a motion vector for a certain reference block, the motion vector detection device 1 according to the second embodiment including the CPU 2 that performs such processing, The area to be subjected to block matching is determined using the motion vector, and the processing from step S29 to step S36 is repeated to perform the block matching only for the coordinates where the flag is generated.
  • Step S3 The motion vector of the reference block is detected by using the coordinates of the reference block when the absolute value sum of the difference calculated in step 2 is the minimum.
  • the motion vector detection device uses the motion vector of the reference block to Since the second search area is set and block matching is performed only in the search area including the first search area and the ⁇ 2 search area, compared with the case where the search area is set without the reference block.
  • the search range can be reduced. Therefore, according to the motion vector detection device 1 according to the second embodiment, the number of times of performing block matching can be reduced, and the amount of calculation for detecting the motion vector is significantly reduced. can do.
  • the amount of calculation can be reduced while maintaining the accuracy of the motion vector detection processing, and the processing time can be reduced. it can.
  • the CPU 2 is configured as a CPU as described in the first embodiment.
  • the search area is further reduced to reduce the number of times block matching is performed can do.
  • the above-mentioned motion search in which the search area of 1 and the search area of 2 are rectangular areas, and a straight line connecting the search area of 1 and the search area of 2 and the search area of 1 and the search area of 2 Processing for detecting a motion vector in the area may be performed.
  • the motion vector detection device ⁇ 1 can set the search area as compared with the case where the search area of the circular area is set.
  • the processing S for setting can be reduced, and the processing time can be further shortened.
  • the motion vector detection device 100 shown in FIG. 13 will be described using the vector detection device 1 as a functional block.
  • the motion vector detecting device 100 is provided with a reference frame memory 1 for storing image data of a reference frame from which a motion vector is to be obtained.
  • the image data of the reference frame stored by the motion detection unit 102 is read as a reference block in units of macroblocks, for example.
  • the motion vector detecting device 100 detects the reference frame.
  • a reference frame memory 103 for storing an image data of a reference frame used when detecting all motion vectors is provided.
  • the reference frame memory 103 sets the image data of the reference frame as a reference block in units of macroblocks, for example. Output to 2.
  • the motion detection unit 102 performs block matching on the reference block from the reference frame memory 101 and the reference block from the reference frame memory 103 to perform block matching. Detects motion vectors.
  • the block matching is a process of dividing a reference frame and a reference frame into a predetermined fixed number of rectangular small areas (reference block, reference block) and detecting a motion vector for each block.
  • the size of the reference block and the reference block include, for example, 8 pixels wide by 8 pixels high, 16 pixels wide by 16 pixels high, and the like. Then, the motion detection unit 102 outputs the motion vector detected for the reference block to the outside, and also outputs the motion vector to the search area determination unit 104.
  • the search area determination unit 104 uses the motion vector from the motion detection unit 102 as the motion vector of the reference block, performs the above-described block matching in the motion detection unit 102, and performs the motion estimation of the reference block. Performs processing to determine the motion vector search area when detecting a vector. More specifically, the search area determination unit 104 determines the first search area centered on a point indicating the motion vector of the reference block by performing an operation using the motion vector of the reference block. In addition, the reference frame is calculated by calculating the distance between the reference frame and the reference frame. A second search area centered on a point extended from the motion vector is determined.
  • the search area determination unit 104 generates a reference block read control signal as a motion vector search area including the first search area and the second search area, and outputs the control signal from the reference frame memory 103.
  • the detection unit 102 outputs the reference block included in the motion vector search area.
  • the search area determining unit 104 has an internal memory, determines each of the above search areas, and determines that the block matching is performed for each reference block constituting the reference frame. / ⁇ ; s flag is generated and stored in the above memory. As a result, the search area determining unit 104 generates a map for determining whether or not the flag corresponding to the serious frame exists in the memory.
  • the search area determination unit 104 creates a map, for example, by setting “1” as a flag for performing block matching and “0” as a flag for not performing block matching.
  • the search area determination unit 104 when performing block matching in the motion detection unit 102, the search area determination unit 104 generates a reference block extraction control signal with reference to the map composed of the flags and generates the reference frame memory 10 Output to 3.
  • the processing for generating the above-described flag in the motion vector detecting device 100 configured as described above and detecting the motion vector for one reference block will be described with reference to the flowcharts of FIGS. 8 and 9 described above.
  • the processing is substantially the same as that in FIG. 8, but the processing of the motion vector detection device 100 shown in FIG. 13 will be described with reference to FIGS. 8 and 9 again.
  • step S21 the search area determination unit 104 determines that the motion vector exists for the reference block in macroblock units from the reference frame memory 103. You It is determined whether or not there is a motion vector. If it is determined that a motion vector exists, the process proceeds to step S22. If it is determined that no motion vector exists, the process proceeds to step S23.
  • the search area determination unit 104 sets the center position of the motion vector search area to the leading end position of the motion vector of the reference block.
  • the search area determining unit 104 stores the: 'center position of the key vector search area set in the above step S22 in the above memory.
  • the search area determination unit 104 sets the area occupying a predetermined number of pixels centered on the tip of the motion vector of the reference block as the first search area, According to the distance, the second search area is set with the point extended from the movement vector of the reference block as the center position. Then, the search area determination unit 104 generates a flag indicating that block matching is to be performed in accordance with the setting of the first search area and the second search area. Further, the search area determination unit 104 sets a connection line connecting the set first search area and second search area, and sets the first search area, the second search area, and the connection line. The area enclosed by the line is used as the motion vector search area, and a flag is generated.
  • the search area determination unit 104 sets the first search area and the second search area set as described above to, for example, circular shapes, and sets the size of the second search area to a radius according to the inter-frame distance. Is set to be large, and a flag indicating a motion vector search area surrounded by a tangent connecting the first search area and the second search area as a connection line is mapped in the base area of the memory.
  • a map showing the first search area, the area A, the second search area B, and the motion vector search area ffled by the connection line C as shown in FIG. 11 is created in the memory. .
  • the shaded area indicates the motion vector search area with the flag “1”
  • the white area indicates the area with the flag “0 j”.
  • step S23 where it is determined in step S21 that there is no vector in the reference block, the search area determination unit 104 determines the center position of the motion vector search area as a reference. Set to coordinates (0, 0) in block.
  • step S26 the search area determining unit 104 sets the center of the vector search area set in step S23 to the subcenter; S, and (1 Sh, 1 S A rectangular area having v) and (+ Sh, + Sv) as diagonal points is set as a map base area, and the flow advances to step S27.
  • step S26 the search area determining unit 104 determines that the motion vector does not exist in the reference block in step S21, so that the center of the motion vector search area is A map is created in the memory as a motion vector search area with a rectangular area with the center position as the diagonal point of (one Sh, —Sv) and (+ Sh, + Sv).
  • step S27 the search area determination unit 104 performs the above-described steps.
  • the coordinate position at the upper left of the base area in the map created in step S25 or step S26 is designated as the initial position. That is, the search area determination unit 104 starts a search position of block matching performed when the motion detection unit 102 detects a motion vector from the upper left coordinates (H, V) of the base area.
  • H and V are variables indicating the coordinate position on the map.
  • the motion detection unit 102 extracts the image data of the quasi-block at the macroblock level from the base frame for detecting the vector from the reference frame memory 101. I see.
  • the search area determination unit 104 finds a flag in ⁇ (H, V) from the map stored in the memory.
  • the search area determination unit 104 determines whether the flag read in step S29 is "1" or "0". That is, the search area determination unit 104 determines whether or not to perform block matching using the image M of the reference block corresponding to the target position of the map stored in the memory and the pixels of the reference block. Is determined. Then, when the flag is “1”, that is, when performing block matching, the search area determination unit 104 proceeds to step S31 shown in FIG. 9, and when the flag is “0”, When no matching is performed, the process proceeds to step S35 shown in FIG.
  • step S35 the search area determination unit 104 specifies the next pixel by incrementing the coordinates (H, V) of the map, and in step S36, the coordinates of the map are changed. Determine whether the coordinates are (Right, Bottom) at the bottom right. Then, the search area determination unit 1 When 0 is determined that the coordinates of the map are not the lower right, the processing from step S 29 is performed on the pixel specified in step S 35, and when it is determined that the coordinates of the map are the lower right, The process of detecting the motion vector for the reference block ends.
  • step S31 the search area determination unit 104 outputs the reference block read control signal to the reference frame memory 103, thereby outputting the image of the reference block corresponding to the coordinates (H, V) from the reference frame. Control is performed so that the entire frame is output from the reference frame memory 103 to the motion detector 102.
  • the encouragement detection unit 102 determines the image data of the standard block corresponding to the coordinates (H, V) extracted in step S28 described above. By comparing the image data of the reference block corresponding to the coordinates (H, V) input in step S31 described above, the difference between each pixel forming the reference block and each pixel forming the reference block is calculated. Calculate the sum of the absolute values of the differences.
  • step S33 the motion detection unit 102 determines whether or not the absolute value sum of the difference obtained in the above-described step S32 is minimum, and determines that the absolute value sum of the difference is minimum. If it is determined that the absolute value of the difference is satisfied, the process proceeds to step S34, and the absolute value sum of the difference is set to the minimum value, and the coordinates (H, V) are stored. Thereby, the motion detection unit 102 detects a motion vector.
  • the search area determination unit 104 specifies the next reference block in the base area as described above, and the coordinates of the reference block specified in step S36 are set in step S36.
  • the motion vector detection device 100 determines an area in which block matching is to be performed using the motion vector of the reference block in step S25. By repeating the processing from step S29 to step S36, block matching is performed only for the coordinates for which the flag was generated, and the reference block when the sum of absolute values of the differences calculated in step S32 is the minimum.
  • the motion vector of the reference block is detected using the coordinates of ffl.
  • the vector detection device ⁇ 100 that performs such processing if R, as described in the above-described step S 25, streams the vector of the reference block, and (1) Search area A and ⁇ 2 search area B are set, and block matching is performed only in the motion vector search area including the first search area A and the second search area B.
  • the search range can be reduced as compared with the case where the search area is set without using. Therefore, according to the motion vector detection device 100, the number of times that block matching is performed can be reduced, and the amount of calculation for detecting the motion vector can be significantly reduced. According to 3 !, the motion vector detection device 100 that performs the above-described processing can reduce the amount of calculation while maintaining the accuracy of the detection processing of the vector and shorten the processing time. be able to.
  • the region and the second search region are rectangular regions, and the motion search region is surrounded by a straight line connecting the first search region and the second search region and the first search region and the second search region.
  • Movement vector Detection processing may be performed.
  • a third embodiment for realizing the third object of the present invention will be described. In the following description of the third embodiment, an example will be described in which the present invention is applied to the motion vector detection device 1 having the configuration shown in FIG. 1 and used in the first embodiment.
  • the motion vector detecting device detects a motion vector by setting a search area by utilizing a high correlation between motion vectors of pixel blocks adjacent to each other. .
  • the CPU 2 sets a search area for searching for a motion vector when obtaining a work vector for a field image or a frame image, and for example, 8 ⁇ 8 pixels in the search area
  • the work vector is detected by performing block matching on a macroblock basis.
  • the CPU 2 divides the frame image for each macroblock in accordance with the motion vector detection program, and searches for a search area when performing block matching using the motion vectors of adjacent macroblocks. Set.
  • the CPU 2 When detecting a motion vector, the CPU 2 first performs block matching in a predetermined search area for every other macroblock indicated by a shaded portion in FIG. 14 to detect the motion vector. 'Do Subsequently, the CPU 2 calculates a search area using the motion vector of the macroblock in the shaded area, and performs block matching in the search area to thereby obtain a white area in FIG. 14. Performs processing to detect motion vectors for macroblocks.
  • the motion vector detection device 1 configured as described above, when the CPU 2 detects a motion vector for an image data of a frame image, By executing the motion vector detection program stored in the HDD 4, the processing shown in the flowcharts of FIGS. 15 and 16 is performed.
  • the CPU 2 designates the address of a line (L ine) in which a plurality of MAC opening blocks are horizontally arranged as shown in FIG. Perform the process of specifying.
  • the CPU 2 designates the ⁇ symbol of the top line “0” among the multiple lines in which the macroblock (MB) is horizontally aligned.
  • '' in the above line consists of 0, 1, 2,..., Bottom (Bottm) from the top.
  • the CPU 2 performs a process of designating a macroblock number ⁇ "0" for detecting a perceptual vector among the lines "0" designated in the above step S41.
  • the numbers of the multiple block blocks that make up each line are 0, 1, 2, ..., Right from the left end to the right end.
  • the CPU 2 sets a search area for the macroblock of the number specified in the above step S42.
  • the CPU 2 sets the search area to a search range R including a predetermined number of pixels.
  • the CPU 2 sets, for example, a rectangular area having a diagonal point of (Sat R, Sat R) from the coordinates indicating the center position of the macroblock as the search area.
  • the CPU 2 sets, for example, a rectangular area including 32 ⁇ 32 pixels as a search area of the search range R.
  • the CPU 2 performs a process of detecting a motion vector by performing the above-described block matching using a corresponding macroblock of a frame image that is temporally preceding and succeeding in a search area including a predetermined number of pixels. .
  • the CPU 2 performs a process of designating the macroblock whose motion has been detected in the above step S43 and a macroblock shifted by two numbers to the left and right in the horizontal direction.
  • step S45 the CPU 2 determines whether or not the macroblock designated in step S44 is located at the right end of the frame image.
  • CPU 2 determines that the specified macroblock is located at the right end of the frame image, it proceeds to step S46, and when it determines that it is not at the right end, it returns to step S43. That is, the CPU 2 performs the processing shown in the above-described steps S43 to S45, so that the designated line is changed to two turns from the left side of the designated block to the right side.
  • the processing for detecting a vector in the predetermined search area described in step S43 is performed.
  • step S46 the CPU 2 performs a process of designating the macroblock of the number "1" adjacent to the right side of the macroblock of the number "0" specified in the above step S42.
  • step S47 the CPU 2 determines whether or not there is a macroblock adjacent to the right side of the macroblock at the number specified in step S46 described above or step S54 described later. I do. If the CPU 2 determines that there is no macro block adjacent to the right side of the macro block at the specified number, the process proceeds to step S48, and determines that there is a macro block adjacent to the right side of the macro block at the specified number. When it is determined, the process proceeds to step S49.
  • step S48 the CPU 2 proceeds to step S47 described above.
  • the predetermined search area is set in step S43 described above, and block matching is performed in the search area.
  • a process for detecting a motion vector is performed, and the process proceeds to step S54.
  • step S49 the CPU 2
  • the absolute value of the ⁇ minute of the above-mentioned vector ⁇ V is small when the working vectors of the adjacent macroblocks on both sides of the macroblock point in substantially the same direction. The value becomes larger as the direction in which the motion vector of the macroblock adjacent to both sides of is different.
  • the CPU 2 determines whether or not the absolute value ⁇ V of the difference calculated in the above step S49 is sufficiently larger than the search range r.
  • “r” is ffi of ignorance
  • the search range r is a rectangular area having a point (1r, 1r) and a point (+ r, + r) at 1 ⁇ point.
  • the rectangular area defined by the search range r occupies a smaller area than the rectangular area defined by the search range R in step S43 described above, and is, for example, a rectangular area composed of 6 ⁇ 6 pixels.
  • CPU 2 is determined when the absolute value of the difference ⁇ is sufficiently larger than the search range r, that is, when the directions of the motion vectors of adjacent macroblocks are different.
  • step S51 the CPU 2 compares each motion vector of the macroblock adjacent to both sides in the horizontal direction of the macroprogram specified in step S46 described above or step S54 described later in FIG.
  • the search area A and B defined by the search range r are set at the upper left coordinate position of the specified macro block as shown in the figure, and the point indicated is the center. Then, the CPU 2 detects a motion vector by performing block matching in the ft search areas A and B, and proceeds to step S54.
  • step S52 the CPU 2 determines that each step vector of the macroblock adjacent to both sides in the direction of the water and the direction of the macroblock pointed out in step S54 by the step S46. ffl and perform the average motion vector AveV (h, v) as shown in Figure 18.
  • step S53 the CPU 2 sets a point (-r, -r) and a point (-r, -r) around the coordinate position (h, V) indicated by the tip of the f-equivalent motion vector Av eV (h, v).
  • a rectangular search area C with (+ r, + r) as the diagonal point is settled.
  • CPU 2 detects a motion vector for the macroblock specified in step S46 or step S54 by performing block matching in the set search area C.
  • the CPU 2 performs a process of moving forward two numbers from the macroblock in which the motion vector is detected in the above step S53 toward the right side in the horizontal direction.
  • step S55 the CPU 2 determines whether or not the macroblock with the number specified in the above step S54 is located at the right end of the line.
  • the CPU 2 determines that the designated macro block is located at the right end of the line.
  • the CPU 2 proceeds to step S Proceeding to 56, when it is determined that the specified macroblock is not located at the right end of the line, the flow returns to step S47. That is, the CPU 2 detects the motion vector for all the macroblocks constituting the line on which the above-described processing is being performed by repeating the above-described processing from step S42 to step S55.
  • step S56 the CPU 2 performs a process of designating a new line by moving two lines from the line on which the processes from step S43 to step S55 are performed toward the bottom.
  • step S57 the CPU 2 determines whether or not the number ⁇ of the line specified in the step S56 described above is the bottom.
  • the CPU 2 proceeds to step S58 shown in FIG. 16, and when it determines that the specified line is not at the bottom, returns to step S42 to specify the specified line.
  • the processing shown in steps S42 to S55 is performed on the line thus obtained. In other words, the CPU 2 performs the processing from step S41 to step S57, thereby performing the above-described steps for every two numbers from the line “0” of the frame image toward the bottom line.
  • the processing shown in S42 to step S55 is performed.
  • the CPU 2 performs a process of specifying a line number in which a plurality of macro blocks are vertically arranged as shown in FIG.
  • CPU 2 designates the number of the line “1” which is one number below and adjacent to the macroblock in the horizontal direction and is adjacent to the macroblock by one number.
  • step S59 the CPU 2 detects a motion vector from the line “1” specified in the above step S58. W 0
  • step S60 CPU 2 determines whether or not a macroblock exists below the macroblock specified in step S59 described above. If the CPU 2 determines that no macroblock exists below the specified macroblock, the process proceeds to step S61, and if the CPU 2 determines that a macroblock exists below the specified macroblock, the process proceeds to step S6. Proceed to 2.
  • step S61 the CPU 2 determines the search range R in step S43 described above for the macroblock determined to have no lower adjacent macroblock in step S60.
  • a search area is set, a process of detecting a motion vector is performed by performing block matching in the search area, and the process proceeds to step S67.
  • step S62 the CPU 2 performs the difference between the motion vectors of the adjacent macro blocks in the vertical direction of the mac mouth block specified in step S59 described above or step S67 described later. Then, the absolute value ⁇ V of the corresponding component is calculated.
  • step S63 CPU 2 determines whether or not the absolute value ⁇ V of the difference calculated in step S62 is greater than search range r. Then, the CPU 2 proceeds to step S65 when the absolute value ⁇ of the difference is smaller than the search range r, and proceeds to step S64 when the absolute value ⁇ of the difference is not smaller than the search range r.
  • step S64 the CPU 2 sets the vertical position of the mouthpiece block designated in step S59 described above or step S67 described later.
  • the motion vector of the adjacent macroblock is the coordinate position of the upper left corner of the designated macroblock, and the search area defined by the search range r with the point indicated as the center. Set D and E respectively. Then, the CPU 2 detects a motion vector by performing block matching in each of the search areas D and E.
  • step S65 the CPU 2 samples each motion vector of the macroblock adjacent in the vertical direction of the mac mouth block specified in step S59 or step S67, and Perform a uniform motion vector AveV (h, v).
  • step S66 CPU2 is average!
  • A) The vector is pointed by the tip of Av eV (h, v) .Position; centered on S (h, V), point (-r, -r) and point (+ r, + r) are diagonal.
  • CPU 2 detects a motion vector for the macroblock specified in step S59 or step S67 by performing block matching in the set search area.
  • step S67 the CPU 2 performs a process of advancing one number from the macroblock in which the j vector is detected in the above-described step S66 toward the right side in the horizontal direction.
  • step S68 the CPU 2 determines whether or not the macroblock of the number specified in step S67 is located at the right end of the line.
  • the process proceeds to step S69, and when it determines that the specified macro block is not located at the right end of the line, the process returns to step S60. That is, the CPU 2 repeats the processing from step S60 to step S68 described above. By returning, motion vectors are detected for all the macroblocks constituting the line performing the above processing.
  • step S69 the CPU 2 performs a process of designating a new line by proceeding toward the lower end by two numbers from the line on which the processes from step S59 to step S68 described above are performed.
  • step S70 CPU 2 determines whether or not the line number designated in step S69 is the bottom. And it, CPU 2 is punished when the specified line is determined to be bottom: Quit, above the line that ⁇ connection specified Step S 5 9 when the specified line is determined not to be the bottom.
  • steps S42 to S68 The processing shown in steps S42 to S68 is performed. In other words, the CPU 2 performs the processing from step S58 to step S70, so that in the vertical direction of the frame image, two numbers from the line “0” toward the bottom line
  • the processing shown in steps S59 to S68 is performed every time.
  • the learning vector detection device ifi1 is a horizontal line among the lines specified by executing the processing shown in steps S41 to S57.
  • the motion vectors are detected for all the macroblocks arranged in the direction, and the processing shown in Steps S58 to S70 is executed to execute the processing in Steps S41 to S57.
  • the motion vectors are detected for all the macroblocks constituting the frame image by specifying the non-target line and detecting the motion vectors using the vertically adjacent macroblocks.
  • the motion vector detecting device 1 has According to this, by performing the processing shown in step S43, processing for detecting a motion vector by performing block matching in a search area of a predetermined pixel size for a part of the mac mouth programs constituting the frame image For other macroblocks, reference is made to the motion vectors of adjacent macroblocks to perform block matching within the search area having a pixel size smaller than the predetermined pixel size. Therefore, the search area is compared with the case where a motion vector is detected by performing block matching in a search area of a predetermined pixel size that is set in advance for all the macroblocks constituting the frame image. Therefore, the number of times of performing block matching can be reduced.
  • the process P ! time fii] required to detect the motion vector can be significantly reduced.
  • the motion vector detecting device according to the third embodiment; 1 is that the search range R in the above step S 43 is 32 ⁇ 32 pixels, and that the reference range r when referring to the vector of adjacent macroblocks is 6 ⁇ 6 pixels. Then, the processing time for detecting a motion vector for all the macroblocks constituting the frame image can be reduced to about 1/1000.
  • the processing shown in step S49 and step S50 is performed so as to be adjacent to the mac mouth block for detecting the motion vector. Judgment is made on the direction indicated by the motion vector of the macro mouth vector, and the search range set according to the direction indicated by each motion vector is changed. High-precision movement even when pointing Vector can be detected.
  • the motion vector detection device according to the above-described first to third embodiments may perform only the processing described in the above-described first to third embodiments.
  • the motion vector may be detected by setting a search area by performing the above processing.
  • the motion vector detection device can detect a motion vector with a further reduced amount of calculation.
  • the target vector detection method and apparatus is based on the target field for the third field image.
  • a motion vector detection method and apparatus Determines the first search area around the point indicating the motion vector of the reference block included in the reference frame temporally or spatially confined to the reference frame, and determines the motion vector of the reference block.
  • a second search area centered on a point where the vector is extended according to the frame distance is determined, and a reference block is set in the motion vector search area including the first search area and the second search area. Since the motion vector of the reference block is detected, the motion vector can be detected by transforming the motion vector search area according to the motion vector of the reference block. Therefore, according to the motion vector detection method and apparatus, the motion vector search area can be reduced as compared with the case where the area for searching the motion vector is fixed. In addition, the number of block matching performed to detect a motion vector can be reduced, and the number of operations can be reduced.
  • the motion vector detecting method and device [S] include: the second search area when detecting the motion vector of the second vector; And the motion vector for the first block adjacent on both sides in the horizontal or vertical direction, and the motion vector for the second block is detected by performing block matching in the second search area. Therefore, block matching is performed in the second search area having a different pixel size from the search area when the motion vector for the first block is detected, and the motion vector for the second block is detected. Can be detected. Therefore, according to the motion vector detection method and apparatus, the second search area is compared with the first search area according to the motion vector of the first block adjacent to the second block. Small pixel size reduces the number of times block matching is performed when detecting motion vectors As a result, it is possible to reduce the amount of calculation when detecting a motion vector and shorten the processing time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)
  • Television Systems (AREA)

Description

明 細 書 ' 動きべク トル検出方法及び装置 技 術 分 野 本発明は、 MP E G (Moving Picture Image Coding Experts Gr oup) に準拠した画像符号化処理を行う ときに用いられる jきべク ト ルを検出する動きべク トル検出方法及び装置に関する。 背 ^ 技 術
MP E G方式は、 画面内における D C T (Discrete Cosine Tran sform) と画像問における動き補償予測と可変長符号化とを組み合わ せて勋画像データの圧縮を行う符号化方式である。
一般に、 画像問の勋き袖^予測においてなされる動きべク トルの 検出処理は、 所謂ブロックマッチングによって行われていた。 この プロックマツチングは、 処理の対象となる基準画像において所定の 画素数に分割された基準プロックに対して、 参照画像内における同 位置を起点として動きべク トルに対応する参照プロックと上記所定 の画素数と同じ画素数を有する領域を抽出し、 基準ブロックと参照 プロックの対応する画素の差分の絶対値を演算し、 基準プロック内 の全ての画素について差分の絶対値の和を演算する処理を行う。 そ して、 動きベク トルを検出するときには、 参照画像の探索領域内で 抽出する領域を 1画素ずつ移動させながら上述のブロックマツチン グを繰り返して行い、 上記差分の絶対値の和が最も小さい値を示し た点を基点として動きべク トルを検出する。
しかし、 上述のブロックマッチングを行うときは、 参照画像につ いての動きべク トルを求めたときの探索颔域と、 S準画像について の動きべク トルを求めたときの探索領域と同じサイズの範囲となさ れて行われている。 また、 基準画像の動きベク トルを求めるときに は、 a準ブロックの動きべク トルがある程度予測できる場合であつ ても、 参照画像の勅きベク トルを基準として、 ある一定の大きさの 領域を探索領域として基準画像の勁きべク トルを検出していた。 更に、 上述したブロックマッチングにより動きべク トルを検出す る処 ίφ.は、 プロックマッチングを行うときなされる ヒ記^分の絶対 値の和を求める処理についての演^ sが非常に膨大となっており、
M P E G等の画像圧縮処理の大半の時問がこれに^やされ、 ソフ ト ウェアで突現するときの障害となっており、 演算 の削減が まれ ている。
発 明 の 開 示 本発明の第 1の目的は、 上述したような実情に鑑みて提案された ものであり、 イン夕レース方式のフィ一ル ド画像について動きべク トルを検出するときの演算量を削減することができる動きべク トル 検出方法及び装置を提供することにある。
また、 本発明の第 2の目的は、 動きベク トルを検出するときの検 出精度を保持しつつ演算量を削減することができる動きべク トル検 出方法及び装置を提供することにある。 .
更に、 本発明の第 3の目的は、 動きベク トルの検出を行うときの プロックマツチングを行う回数を削減して動きべク 卜ルを検出する ときの演算量の削減及び処理時間の短縮を図ることができる動きべ ク トル検出方法及び装置を提供することにある。
本発明者は、 上述の第 1の目的を達成するために鋭意研究を重ね た結果、 イン夕レース方式において、 勁画像を構成する各フ ィ一ル ド画像についての動きべク トルを検出するとき、 ト ップフィール ド ιϋ像とボトムフィールド画像との钔阅が高いことが勅きべク トルの 予測に川いることが可能であることを見い出した。
本 明の 1の目的に係る動きべク トル検出方法及び装置は、 こ のような知見に基づいて完成されたものであり、 イン夕レース方式 に準拠したフィールド画像についての動きべク トルの検出を行う!) きべク トル検出方法及び装置において、 第 1のフィールド画像を用 いて、 第 2のフィ一ルド画像についての動きべク トルを所定の探索 領域で検出し、 第 3のフィールド画像についての動きべク トルを検 出するときの探索領域を、 参照するフィ一ルド画像と第 3のフィ一 ルド画像とのフィ一ルド間距離と、 上記第 1のフィ一ル ド画像と第 2のフィールド画像とのフィールド問距離とを比較して演算し、 上 記第 2のフィールド画像についての動きべク トルが指し示す点を起 点として上記演算して得た探索領域で第 3のフィ一ルド画像につい ての動きべク トルを検出することを特徴とする。
このような動きべク トル検出方法及び装置によれば、 フィ一ルド 画像について動きべク トルを検出するときの探索領域を、 他のフィ —ルド画像についての動きべク トルを用いて変化させて設定し、 当 該設定した探索領域内でプロックマツチングをして第 3のフィール ド画像についての動きべク トルを検出する。
また、 上述の第 2の目的を達成する本発明に係る動きべク 卜ル検 出方法及び装置は、 基準フレームと時間的又は空問的に近接する参 照フレームに含まれる参照プロックの動きべク トルを示す点を中心 とした第 1の探索領域を決定し、 上記参照プロックの動きべク トル を基準フレームと参照フレームとのフレーム問距離に応じて延長し た点を中心とした第 2の探索領域を決定し、 上記第 1の探索領域及 び第 2の探索領域を含む動きべク トル探索領域内で、 ^準フレーム に含まれる ¾準プロックの画像データと参照フレームに まれる参 照ブロックの画像データとを演算して、 基準ブロックの jきべク 卜 ルを検出することを特徴とする。
このような動きべク トル検出方法及び装置は、 基準プロックの動 きべク トルを検出するときに参照ブロックの動きべク トルを基点と して第 1の探索領域を決定するとともに、 参照ブロックの動きべク トルを延長した点に従って第 2の探索領域を決定する処理を行って、 第 1の探索領域及び第 2の探索範囲を含む動きべク トル探索領域で 基準プロックの動きべク トルを検出する処理を行う。
更に、 本発明者は、 上述の第 3の目的を達成するために鋭意研究 を重ねた結果、 動きベク トルを検出するとき、 相互に隣接する画素 ブロックの動きべク トルにおける相関が高いことが、 動きべク トル の予測に用いることが可能であることを見い出した。
本発明にの第 3の目的に係る動きべク トル検出方法及び装置は、 このような知見に基づいて完成されたものであり、 第 1の探索領域 で第 1のプロヅクについての動きべク トルを検出し、 第 2のブロヅ クについての動きべク トルを検出するときの第 2の探索領域を、 前 記第 2のプロックと水平方向又は垂直方向における両側に隣接する 上記第 1のブロックについての動きべク 卜ルに基づいて設定し、 上 記第 2のプロックについての動きべク トルを上記第 2の探索領域で ブロックマッチングを行って検出することを特徴とする。
このような動きべク トル検出方法及び装置によれば、 上記第 1の ブロックについては第 1の探索領域でブロックマツチングを行って 動きべク 卜ルの検出を行い、 上記第 1のプロックに隣接する第 2の ブロックについては、 隣接する第 1のブロックについての勁きべク トルを /[]いて第 2の探索領域を設定して上記所定の探索領域とは與 なるサイズの第 2の探索領域でブロックマッチングを行って第 2の ブロヅクについての動きべク トルの検出を行う。
本発明の更に他の目的、 本発明によって得られる具体的な利点は、 以下に説叨される実施例の説明から一層明らかにされるであろう。
図面の簡単な説明 図 1は、 本発明を適用した第 1の実施の形態に係る動きべク トル 検出装置の構成を示すプロック図である。
図 2は、 イン夕レース方式のフィ一ルド画像のフィールド間距離 について説明するための図である。
図 3は、 第 1の実施の形態に係る動きべク トル検出装置に備えら れる C P Uが動きべク トル検出プログラムにしたがって動きべク ト ルを検出する処理手順を示すフローチヤ一トである。 図 4は、 所定の探索領域を決定して動きべク トル VTTを探索する ことを説明するための図である。
図 5は、 動きベク トル VTTを用いて動きべク トル VBBを探索する 起点及び探索領域を决定することを説明するための図である。 図 6は、 動きべク トル VTTを用いて動きべク トル VTBを探索する 起点及び探索領域を决定することを説明するための図である。 図 7は、 動きベク トル VTTを用いて動きべク トル VBTを探索する 起点及び探索領域を決定することを説明するための図である。 図 8は、 ^ 1の実施の形態に係る動きべク トル検出装; Sで探索領 域を,没定し、 動きべク トルを検出する処现を説明するためのフロー チャートである。
図 9は、 第 1の実施の形態に係る動きべク トル検出装置で探索領 域を ¾定し、 動きべク トルを検出する処理を説明するためのフロー チャートである。
図 1 0は、 C P Uによりマツプを作成する処理を説明するための 図である。
図 1 1は、 C P Uのメモリに作成したマップの一例を説明するた めの図である。
図 1 2は、 C P Uのメモリに作成したマツプの他の一例を説明す るための図である。
図 1 3は、 本発明を適用した第 2の実施の形態に係る動きべク ト ル検出装置の構成を示すプロック図である。
図 1 4は、 第 3の実施の形態に係る動きべク トル検出装置に備え られる C P Uにより動きべク トルを検出する処理がされるときに、 フレーム画像がマクロブロック単位に分割されることを説明するた めの図である。 - 図 1 5は、 第 3の実施の形態に係る動きべク トル検出装置に備え られる C P Uが動きベク トル検出プログラムにしたがって動きべク トルを検出する処理手順を示すフローチヤ一トである。
図 1 6は、 第 3の実施の形態に係る動きべク トル検出装置に備え られる C P Uが動きベク トル検出プログラムにしたがって動きべク トルを検出する処理手顺を示すフ口一チヤ一トである。
図 1 7は、 水平方向において隣接するマクロプロックが Hなる方 向を指し示しているときにおいて、 隣接するマク口プロックの勅き べク トルを用いて探索領域を設定して動きべク トルを検出すること を説 Π刀するための図である。
図 1 8は、 水平方向において隣接するマクロブロックが略同方向 を指し示しているときにおいて、 隣接するマクロブロックの動きべ ク トルを用いて探索領域を設定して動きべク トルを検出することを 説明するための図である。
図 1 9は、 垂直方向において隣接するマクロブロックが ¾なる方 向を指し示しているときにおいて、 隣接するマクロブロックの jき べク トルを用いて探索領域を設定して動きべク トルを検出すること を説明するための図である。
図 2 0は、 水平方向において隣接するマクロプロックが略同方向 を指し示しているときにおいて、 隣接するマクロプロヅクの動きべ ク トルを用いて探索領域を設定して動きべク トルを検出することを 説明するための図である。 発明を実施するための最良の形態 以下、 本発明の第 1、 第 2及び第 3の目的にかかる第 1、 第 2の 及び第 3の実施の形態について図面を参照しながら詳細に説明する。 また、 以下の説明では、 ト ップフィールド画像とボトムフィ一ル ド画像との相関を利 fflして探索領域を設定して動きべク トルを検出 する動きべク トル検出装置を第 1の実施の形態として説明し、 時間 的に前後するフレーム又はフィールドの相関を利用して探索領域を 設定して勁きべク トルを検出する動きべク トル検出装置を第 2の実 施の形態として説 Π刀し、 相互に隣接する画素プロックの勤きべク ト ルにおける相 が ^いことを利用して探索領域を設定して動きべク トルを検出する ¾きべク トル検出装 を第 3の突施の形態として説 明する。
本発明の第 1の実施の形態に係る動きべク トル検出装置は、 例え ば図 1に示すように構成される。
この動きべク トル検出装置 1は、 フィールド画像について M P E G 2規格に準拠した画像符 ¾-化処理における I /きべク トルの検出す る処理を行う C P U ( Central Processing Unit) 2を備えている。 この C P U 2は、 動きベク トル検出プログラム起動することで、 動 きベク トルを検出する処理を行う。 この C P U 2は、 動きベク トル を検出するときには、 メモリ 3に格納された画像デ一夕及び動きべ ク トル検出プログラムを用いる。 このとき、 C P U 2は、 制御信号 をメモリ 3及び H D D (Hard Disc Drive) 4に出力することで、 H D D 4に格納された画像デ一夕及び動きべク トル検出プログラムを メモリ 3に格納するように制御する。
また、 この C P U 2は、 画像デ一夕について例えば M P E G方式 に準拠した画像圧縮処理を行うときには、 .1 (Intra)ピクチャについ て D C T (Discrete Cosine Transform) 処理を行うとともに、 B (biairectionally predictive), P (Predictive)ピクチャを動き補 償予測をすることで画像圧縮処理を行う。 このとき、 C PU 2は、 一のフィ一ルド画像について動きべク トルを求めるとき、 時間的に 前後するフィールド画像のフィールド問距離を参照して動きべク ト ルを探索するときの探索領域を決定する。 そして、 C P U 2は、 前 記探索領域において例えば 8 X 8画素からなるマクロブロック単位 でブロックマッチングを行うことで動きベク トルを検出する。
この C P U 2は、 ブロックマッチングを行うとき、 励きベク トル を検出する処理の対象となる基準フィールド画像に含まれる所定の 画素数に分割された基準プロックと、 当該基準プロックに対応した 参照フィールド画像の位置を起点として動きべク トルが指し示す一 の参照ブロックとを抽出し、 基準ブロックと参照ブロックの対応す る画素の差分の絶対値を演算し、 基準プロック内の全ての画素につ いて差分の絶対 iiflの和を演算する処理を行う。
そして、 C P U 2は、 動きべク トルを検出するとき、 参照フィ― ルド画像の探索領域内で抽出する領域を 1画素ずつ移動させながら 上述のプロックマッチングを繰り返して行い、 上記差分の絶対値の 和が最も小さい値を示した点を基点として動きべク トルを検出する。 なお、 この C P U 2が行う上記探索領域を演算して動きべク トルを 検出する処理の手順の詳細については後述する。
メモリ 3は、 上記 C PU 2により制御されることで、 格納する内 容が制御される。 このメモリ 3は、 C P U 2からの制御信号に応じ て HDD 4から動きべク トル検出プログラム及び画像デ一夕が格納 されるとともに、 格納された動きべク トル検出プログラム及び画像 デ一夕が読み込まれる。
HDD 4は、 画像データ及び動きべク トル検出プログラムを格納 する。 そして、 この HDD 4は、 C P U 2からの制御信号に応じて 指定された画像データをメモリ 3に出力する。
この HD D 4に格納される画像デ一夕は、 図 2に示すように、 ィ ン夕レース方式に準拠した ト ップフィール ド画像 ( T ) とボトムフ ィール画像 (B) とが交互に配列された時系列の動画像データであ る。 そして、 C P U 2は、 例えばト ップフィールド画像 T ,と次の 卜 ヅプフィール ド画像 T 2とのフ ィールド問距離を 「 1. 0」 としたと き、 ト ップフィール ド画像 T ,とボ トムフィール ド画像 T 2とのフィ ールド問距離を 「 1. 5」 とし、 ボトムフ ィ一ルド画像 B ,と トップ フィール ド画像 T 2とのフィール ド間距離を 「0. 5」 とし、 ボトム フィール ド画像 B ,とボ トムフ ィール ド画像 B 2とのフ ィールド問距 離を 「 1. 0」 として上記探索領域を演算する処理を行う。
図 1に示した I/F (イン夕一フェイス) 回路 5は、 例えば外部 から画像デ一夕が入力されるとともに、 CPU 2からの制御信号に 応じて画像データを外部に出力する。 この I/F回路 5は、 例えば 外部から画像データが入力されたときには、 HDD 4に当該画像デ 一夕を出力する。
このように構成された第 1の実施の形態に係る動きべク トル検出 装置 1は、 C P U 2により複数のフィ一ルド画像からなる画像デ一 夕についての動きべク トルを検出するとき、 H D D 4に格納された 動きベク トル検出プログラムを実行することで図 3のフローチヤ一 卜に示すような処理を行う。 先ずステツプ S 1において、 C P U 2は、. 図 4に示すように、 探 索の起点を ( 0, 0 ) に設定する処理を行う。 すなわち、 C P U 2 は、 動きべク トルを検出するためにブロックマッチングを行うとき の探索領域の起点を初期の設定として ( 0 , 0 ) とする処理を行う。 次のステップ S 2において、 C P U 2は、 例えば上述の図 2に示 すように トップフィ一ルド画像 T ,を用いて トップフィ一ルド画像 T 2を動き補償するときに用いる動きべク トル VTTを探索する探索領域 S 0を、 例えば上記起点 ( 0 , 0 ) を中心とし点 (一 3 2 , - 3 2 ) と点 (+ 3 2, + 3 2 ) とを対角点として定義される矩形颃域とす る。 なお、 このステップ S 2において、 C P U 2は、 勋きベク トル VTTを検出するときの探索領域を正確に勤きべク トルを検出するこ とができる程度の任意のサイズとしても良い。
次のステップ S 3において、 C P U 2は、 上述のステップ S 2で 決定した探索領域内でブロックマッチングを行うことにより勁きベ ク トル VTTを検出する処理を行う。 すなわち、 C P U 2は、 例えば 卜ップフィ一ルド画像 T ,を上記参照フ ィールド画像とするとともに ト ヅプフィ一ル ド画像 T 2を上記基準フィ一ル ド画像とし、 ト ップフ ィ一ルド画像 T ,に含まれる所定の画素数からなる基準プロック Aを 用いて、 探索領域内でブロックマッチングを行う。 これにより C P U 2は、 トップフィ一ルド画像 T 2に含まれる参照プロック Bを探索 し、 動きべク トル VTTを検出する。
次のステップ S 4において、 C P U 2は、 ボトムフィールド画像 B ,を参照フィールド画像としボトムフィ一ルド画像 B 2を基準フィ —ルド画像として動きべク トル VBBを検出する処理に移行する。 こ のとき、 C P U 2は、 図 5に示すように、 動きベク トル VBBを探索 する起点を上述のステヅプ S 3で検出した-動きべク トル VTTの先端 の座標位置 (hTT, νττ) に設定する処理を行う。 ここで、 C P U 2は、 動きべク トル VTTを検出したときに用いた基準フィ一ルド画 像と参照フィールド画像とのフィールド間距離と、 ボトムフィール ド画像 B ,とボトムフィール ド画像 B 2とのフ ィールド間距離とが同 じであることから、 動きベク トル VTTの先端を伸縮させずに、 動き べク トル VB Bを探索する起点を動きべク トル VTTの先端の座標位置 ( h I τ , V TT) とする。
次のステップ S 5において、 C P U 2は、 上述のステップ S 4で 設定した座標位 ( h T T , V TT) を中心とした所定の画素数からな る図 5中の探索領域 S を設定する。 ここで、 C P U 2は、 例えば 点 ^ Π τ τ , V TT を中心とし点 ( h τ τ— 4 , V ττ - 4 ) と点 ( h ττ
+ 4, νττ+ 4 ) とを対角点として定義される矩形領域を探索領域 SBBとする。 なお、 このステップ S 5において、 C P U 2は、 動き べク トル VnBを検出するときの探索領域 S を任 の画素数として も良い。
次のステップ S 6において、 C P U 2は、 上述のステップ S 5に おいて設定した探索領域 S BB内で上述のステップ S 3と同様にプロ ックマッチングを行うことで動きベク トル V B βを検出する処理を行 。
次のステップ S 7において、 C PU 2は、 トップフィールド画像 T ,を参照フィ一ル ド画像としボトムフィール ド画像 B 2を基準フィ —ルド画像として動きべク トル VTBを検出する処理に移行する。 こ のとき、 C P U 2は、 図 6に示すように、 動きベク トル VTBを探索 する起点を、 上述のステツプ S 3で検出した動きべク トル VTTの長 さを 1. 5倍した座標位置に設定する処理を行う。 すなわち、 C P U 2は、 トップフィールド画像 T ,と ト ップフィールド画像 T 2との フィールド間距離と、 トップフィールド画像 T ,とボトムフィールド 画像 B2とのフィールド間距離とが、 1. 5倍であることから、 動き ベク トル VTBを探索する起点を座標位置 ( 1. 5 hn, 1. 5 ντ χ) に設定する処理を行う。
次のステップ S 8において、 C P U 2は、 上述のステップ S 7で 設定した座標位置 ( 1. 5 hTT, 1. 5 νττ) を中心とし、 上述の ステップ S 5で設定した探索領域の 1. 5倍の画素数からなる探索 領域 ST"を設定する。 すなわち、 C P U 2は、 座標 ( 1. 5 h , 1. 5 V " ) を中心とし座標 ( 1. 5 hTT— 6 , 1. 5 V T T- 6 ) と座標 (hTT+ 6 , νττ+ 6 ) とを対角点として定義される矩形領 域を探索領域 STBとする。
次のステップ S 9において、 C PU 2は、 上述のステップ S 8に おいて設定した探索領域 S TH内で上述のステップ S 3と同様にプロ ックマッチングを行うことで動きべク トル V r »を検出する処理を行 う。
次のステップ S 1 0において、 C P U 2は、 ボトムフィールド画 像 B ,を参照フ ィールド画像とし トップフ ィール ド画像 T 2を基準フ ィ一ルド画像として動きべク トル VBTを検出する処理に移行する。 このとき、 C PU 2は、 図 7に示すように、 動きベク トル VBTを探 索する起点を、 上述のステツプ S 3で検出した動きべク トル VTTの 長さを 0. 5倍した座標位置に設定する処理を行う。 すなわち、 C P U 2は、 ト ップフィールド画像 T!と トップフィールド画像 T 2と のフィールド間距離と、 ボトムフィ一ルド画像 B ,と トップフィ一ル ド画像 T 2とのフィールド間距離とが、 0. - 5倍であることから、 動 きベク トル VBTを探索する起点を座標位置 ( 0. 5 hn, 0. 5 v ττ) に設定する処理を行う。
次のステップ S 1 1において、 C P U 2は、 上述のステヅプ S 1 0で設定した座標位置 ( 0. 5 h1 T, 0. 5 V ττ) を中心とし、 上 述のステップ S 5で設定した探索領域の 0. 5倍の画素数からなる 探索領域 S πτを設定する。 すなわち、 C P U 2は、 座標 ( 0. 5 h ττ , 0. 5 V τ τ ) を中心とし座標 ( 0. 5 hTT— 2 , 0. 5 V TT - 2 ) と J¾標 (hTT+ 2 , V TT + 2 ) とを対角点として定 される匁 ί 形領域を探索領域 S nrとする。
次のステップ S 1 2において、 C P U 2は、 上述のステヅプ S 1
1において設定した探索領域 S irr内で上述のステツプ S 3と同様に プロックマツチングを行うことで動きべク トル VB Tを検出する処理 を行う。
このような処理を行った結果、 C P U 2は、 トップフィールド画 像 T についての動きべク トルを ト ップフィールド画像 T ,とボトム フィ一ルド画像 B ,との 2つのフィールド画像の関係から予測した 2 つの動きベク トルを得る。 そして、 C P U 2は、 これらの 2つの動 きベク トルから最適な動きベク トルを選択して、 トップフィールド 画像 T 2についての動きベク トルとする。 また、 C P U 2は、 ボトム フィ一ルド画像 B 2についての動きベク トルについても、 トップフィ —ルド画像 T ,とボトムフィ一ルド画像 B の 2つのフィ一ルド画像 から予測した動きべク トルのうち最適な動きべク トルを選択するこ とになる。
このような処理を行う C P U 2を備えた第 1の実施の形態に係る 勁きべク トル検出装置 1は、 ィン夕レース-方式に準拠したフィール ド画像について動きべク トルを検出する処理を行うとき、 上述のス テツプ S 1〜ステップ S 3で示したように、 先ず動きべク トル VTT を検出して他の動きベク トル VBB、 VBT、 VTBを検出するとき、 上 記動きべク トル VTTの先端位置を探索の起点とするとともに、 フィ —ルド間距離に応じてブロヅクマツチングを行って他の動きべク 卜 ル νϋΒ、 VBT、 VTBを検出するときの探索領域を変化させるので、 トップフィ一ルド画像とボトムフ ィ一ルド画像との相関を利用し探 索領域の画素サイズを縮小することができる。 したがって、 この勁 きべク トル検出装置 1によれば、 探索領域の画素サイズを縮小する ことにより、 動きべク トルを検出する演算 gを削減することができ るとともに、 処理時間を短縮することができる。
なお、 上述した C P U 2の処理の説明においては、 先ず動きべク トル VTTを検出して他の動きベク トル VBB、 VBT、 VTBを検出する ときの探索領域を設定することを説明したが、 動きべク トル検出装 iSlは、 先ず jきベク トル VTT、 VBB、 VI1T、 VTBのいずれかの ί きベク トルを検出し、 フィールド間距離に比例して他の動きべク ト ルを検出するときの探索領域の画素サイズを変化させても良い。 また、 上述した C P U 2の処理の説明においては、 各フィール ド 画像についての動きべク トルを求めるとき、 時間的に前に配置され たいずれかのフィールド画像を用いて動きべク トルを求める一例、 すなわち例えばト ップフィールド画像 Τ 2についての動きべク トルを 求めるときにはトヅプフィ一ルド画像 Τ ,及びボトムフィールド画像 を用いて動きべク トル VTT及び動きべク トル VTBを求めることを 説明したが、 動きべク トル VTTと動きべク トル VRBのうちいずれか 1つの動きべク トルのみを求めて各フィ一ルド画像についての動き べク トルとしても良い。
つぎに、 本発明を適用した第 2の実施の形態に係る動きべク トル 検出装置について説明する。 この第 2の実施の形態に係る動きべク トル検出装置は、 上述した第 1の実施の形態に係る動きべク トル検 出装置 1 と同様に図 1に示すような構成を有する。
C P U 2は、 内部にメモリを備え、 動きベク トル検出プログラム に従ってブロックマッチングを行って動きベク トルを検出する探索 領域を、 ^準フレームと時間的に近接する参照フレームに含まれる 参照プロックの動きべク トルを示す点を中心とした第 1の探索領域 を決定し、 基準フレームと参照フレームとのフィ一ルド又はフレ一 ム間距離に応じて延長した点を中心として第 2の探索領域を設定す る。
そして、 C P U 2は、 基準フレームを構成する各基準ブロック毎 に、 プロックマッチングを行う探索領域であることを示すフラグを 生成して上記メモリに格納して勁きべク トルの検出を行う。 これに より、 C P U 2は、 基準フレームに対応したフラグが存在するか否 かを判断するためのマツプを上記メモリに生成する。
このとき、 C P U 2は、 例えば 「 1」 をブロックマッチングを行 うフラグとし、 「 0」 をブロックマッチングを行わないフラグとし てマップを作成する。 そして、 C P U 2は、 フラグからなるマップ を参照して、 設定した探索領域内でブロックマッチングを行って動 きべク トルの検出を行う。
この第 2の実施の形態に係る動きべク トル検出装置 1に備えられ る C P U 2の処理について図 8及び図 9のフローチャートを用いて 説明する。 - 先ず、 ステップ S 2 1において、 C P U 2は、 マクロブロック単 位の参照プロックに動きべク トルが存在するか否かを判定する。 そ して、 C P U 2は、 参照ブロックに動きべク トルが存在すると判定 したときにはステップ S 2に進み、 参照プロックに動きべク トルが 存在しないと判定したときにはステップ S 2 3に進む。
次のステップ S 2 2において、 C P U 2は、 上記動きベク トル探 索領域の中心位置を参照プロックの動きべク トルの先端位^に設定 する。 すなわち、 C P U 2は、 上記中心位 ;Sから所定の岡素数の矩 形領域を jきべク トル探索領域として設定し、 プロックマッチング を行うことを示すフラグからなるマップを作成する領域として設定 する。
次のステップ S 24において、 C P U 2は、 図 1 0に示すように、 上述のステップ S 2 2において設定した動きべク 卜ル探索領域の巾 心位 ίδを上記メモリに格納するフラグからなるマップの中心位 ^と し、 (一 S h, — S v) と ( + S h, + S v) を対角点とした矩形 領域をマップのベースエリアとして設定する。 すなわち、 この C P U 2は、 上記べ一スエリア内においてブロックマッチングを行うこ とを示す 「 1」 のフラグ又はブロックマッチングを行わないことを 示す 「 0」 のフラグからなるマツプを内部のメモリに作成すること になる。
次のステツプ S 2 5において、 C P U 2は、 参照プロックの動き べク トルの先端を中心とした所定の画素数を占める領域を第 1の探 索領域とするとともに、 参照プロックの動きべク トルから延長した 点を中心位置として第 2の採索領域を設定する。 このとき、 C P U 2は、 動きべク トルを検出する対象となる基準フレームと上記参照 プロックが存在する参照フレームとのフレーム間距離に応じて、 参 照プロックの動きべク トルから延長した点の位置を決定し、 当該決 定した点を中心とした第 2の探索領域の大きさを決定する。 すなわ ち、 この C P U 2は、 基準フレームと参照フレームとの距離に比例 した大きさの領域を第 2の探索領域の大きさとして設定する。 そし て、 この C P U 2は、 第 1の探索領域及び第 2の探索領域を設定し たことに応じて、 ブロックマッチングを行うことを示すフラグを生 成する。 1に、 C P U 2は、 設定した第 1の探索領域と 2の探索 領域とを接絞する接続線を設定し、 上記第 1の探索領域、 ίΠ 2の探 索領域及び接続線で囲んだ領域を勁きべク トル探索領域とし、 フラ グを生成する。
この結果、 C P U 2は、 上述したように設定した第 1の探索領域 及び 2の探索領域を例えば円形とし、 第 2の探索領域の大きさを フレーム問距離に応じて半径を大となるように設定し、 接続線とし て第 1の探索領域と ¾ 2の探索領域とを接続する接線で園まれてな る動きべク トル探索領域を示すフラグをメモリのベースェリァ内で マッピングすることにより、 図 1 1に示すような第 1の探索領域 A、 第 2の探索領域 B及び接続線 Cで囲まれた動きべク トル探索領域を 示すマップをメモリ内に作成する。 なお、 この図 1 1において、 網 掛け部分はフラグが 「 1」 の動きベク トル探索領域を示し、 白抜き 部分はフラグが 「 0」 の領域を示している。
一方、 上述のステップ S 2 1で参照ブロックに動きベク トルが存 在しないと判定されたステップ S 2 3において、 C P U 2は、 動き ベク トル探索領域の中心位置を基準ブロック内の座標 ( 0 , 0 ) に 設定する。 .
次のステップ S 2 6において、 C P U 2は、 上述のステップ S 2 3において設定した動きべク トル探索領域の中心を中心位置とし、 (一 S h, — S v) と (+ S h, + S v) を対角点とした矩形領域 をマヅプのべ一スエリアとして設定してステツプ S 2 7に進む。 す なわち、 C P U 2は、 ステップ S 2 1で参照ブロックに動きべク 卜 ルが存在しないと判定されたことから、 動きべク トル探索颌域の中 心を上記矩形領域の中心位置とし、 (― S h, — S v) と (+ S h, + S v ) を対角点とした矩形領域を勋きべク トル探索領域としてメ モリにマヅプを作成する。
ステップ S 2 7において、 C PU 2は、 上述のステップ S 2 5乂 はステツプ S 2 6で作成されたマツプにおける上記ベースェリァの 左上の座標位 ϊを初期位置として指定する。 すなわち、 この C P U 2は、 勁きべク トルを検出するときに行うブロックマツチングの探 索位【Sを上記ベースエリアの左上の座標 (H, V) から問始する。 ここで、 H及び Vは、 上記マップにおける座標位 iSを示す変数であ る。
次のステップ S 2 8において、 C P U 2は、 動きベク トルを検出 する基準フレームからマクロブロック単位の基準ブロックの画像デ 一夕をメモリ 3から読み込む。
次のステップ S 2 9において、 C PU 2は、 メモリに格納されて いるマップから座標 (H, V) におけるフラグを読み出す。
次のステップ S 3 0において、 C P U 2は、 上述のステップ S 2 9において読み出したフラグが 「 1」 又は 「0」 かを判定する。 す なわち、 この C P U 2は、 メモリに格納されたマップの座標位置に 対応した基準プロックの画素と参照プロッ-クの画素とを用いてプロ ックマッチングを行うか否かを判定する。 そして、 C P U 2は、 フ ラグが 「 1」 である場合、 すなわちブロックマッチングを行うとき には図 9に示すステツプ S 3 1に進み、 フラグが 「 0」 である場合、 すなわちブロックマッチングを行わないときには図 9に示すステツ プ S 3 5に進む。
ステップ S 3 1において、 C P U 2は、 参照フレームから座標 (H, V) に相当する参照ブロックの画像デ一夕をメモリ 3から^ み出す。
次のステップ S 3 2において、 C P U 2は、 上述のステップ S 2 8で^み出した上記座^ (H, V) に対応する S準ブロックの圃像 デ一夕と、 上述のステップ S 3 1で入力された座標 (H, V) に相 当する参照プロックの画像デ一夕とを比較することにより基準プロ ックを構成する各画素と参照ブロックを構成する各画 との差分を 演算し、 差分の絶対値和を演^する。
次のステップ S 3 3において、 C P U 2は、 上述のステップ S 3 2で求めた 分の絶対値和が最小であるか否かを判定する。 そして、 C P U 2は、 差分の絶対値和が最小であると判定したときにはステ ップ S 34に進んで差分の絶対値和を最小値として座標 (H, V) を記憶し、 最小でないと判定したときにはステップ S 3 5に進む。 これにより、 C P U 2は、 動きベク トルを検出する。
そして、 ステップ S 3 5において、 C PU 2は、 マップの座標 (H, V) をインクリメン トすることで次の画素を指定し、 ステツ プ S 3 6においてマップの座標が右下、 すなわち座標が (Right, Bo ttom) であるかを判定する。 そして、 C P U 2は、 マップの座標が 右下でないと判定したときにはステップ S .3 5で指定した画素につ いてステップ S 2 9以降の処理を行い、 マップの座標が右下である と判定したときには、 基準プロックについて動きべク トルを検出す る処理を終了する。
このような処理を行う C P U 2を備えた第 2の実施の形態に係る 動きべク トル検出装置 1は、 ある基準ブロックについて動きべク 卜 ルを検出するとき、 ステップ S 2 5において参照ブロックの動きべ ク トルを用いてブロックマッチングを行う領域を決定し、 ステツプ S 2 9からステップ S 3 6までの処理を繰り返すことでフラグが :. 成された座標についてのみブロックマッチングを行い、 ステップ S 3 2で演算した差分の絶対値和が最小であるときの参照ブロックの 座標を丌]いて基準プロックの動きべク トルを検出する。
したがって、 第 2の実施の形態に係る動きべク トル検出装; S 1は、 上述のステップ S 2 5で説明したように、 参照プロックの動きべク トルを用いて、 第 1の探索領域及び第 2の探索領域を設定し、 当該 1の探索領域及び^ 2の探索領域を含む探索颃域のみでプロック マッチングを行うので、 参照ブロックを/ Ήいないで探索領域を設定 した場合と比較して探索範囲を縮小することができる。 したがって、 第 2の実施の形態に係る動きベク トル検出装置 1によれば、 ブロッ クマッチングを行う回数を削減することができ、 動きべク 卜ルを検 出するための演算量を大幅に削減することができる。
更に、 第 2の実施の形態に係る動きべク トル検出装置 1によれば、 動きべク トルの検出処理の精度を保持しつつ演算量を削減すること ができ、 処理時間を短縮することができる。
更にまた、 C P U 2は、 第 1の実施の形態で説明したようにボ卜 ムフィ一ル ド画像と ト ップフィールド画像との相関を利用した探索 領域を設定する処理を行う動きべク トル検出プログラムと併用する ことで、 更に探索領域を縮小して、 ブロックマッチングを行う回数 を削減することができる。
なお、 第 2の実施の形態に係る動きべク トル検出装置 1の処理の 説明においては、 図 1 1に示すように、 ステップ S 2 5において第
1の探索領域 A及び第 2の探索領域 Bを円形領域とした一例につい て説 Π刀したが、 動きベク トル検出装; S 1は、 図 1 2に示すように^
1の探索^域と^ 2の探索領域を矩形領域とし、 1の探索領域と 第 2の探索領域とを接続する直線と 了記^ 1の探索領域及び 2の 探索領域とで囲む上記動き探索領域内で動きべク トルを検出する処 理を行っても良い。 このように、 第 1の探索領域及び ¾ 2の探索領 域を矩形領域とすることにより、 動きベク トル検出装 ίδ 1は、 円形 領域の探索領域を設定する場合と比較して、 探索領域を設定するた めの処理 Sを削減することができ、 更に処理時問を短縮することが できる。
上述の第 2の実施の形態に係る!)きべク トル検出装置 1を機能的 なプロックとして、 図 1 3に示す動きべク トル検出装置 1 0 0につ いて説明する。
この動きべク トル検出装置 1 0 0は、 動きべク トルを求める対象 となる基準フレームの画像データを格納する基準フレームメモリ 1
0 1を備えている。 この基準フレームメモリ 1 0 1は、 動き検出部 1 0 2により格納している基準フレームの画像デ一夕が例えばマク ロブ口ック単位の基準プロックとして読み込まれる。
また、 この動きべク トル検出装置 1 0 0は、 基準フレームについ ての動きべク トルを検出するときに用いる参照フレームの画像デ一 夕を格納する参照フレームメモリ 1 0 3を備えている。 この参照フ レームメモリ 1 0 3は、 探索領域決定部 1 0 4からの参照ブロック 読み出し制御信号に応じて、 参照フレームの画像デ一夕を例えばマ クロブロック単位の参照ブロックとして動き検出部 1 0 2に出力す る。
上記動き検出部 1 0 2は、 上記基準フレームメモリ 1 0 1からの 基準プロック及び上記参照フレームメモリ 1 0 3からの参照プロッ クを川いて、 ブロックマッチングを行うことで、 準ブロックにつ いての動きベク トルを検出する。 ここで、 ブロックマッチングとは、 基準フレーム及び参照フレームを所定の固 数の矩形の小領域 準ブロック、 参照ブロック) に分割し、 ブロック毎に動きベク トル を検出する処理である。 &準ブ口ヅク及び参照プロックのサイズと しては、 例えば横 8画素 X縦 8画素、 横 1 6画尜 X縦 1 6画素等が ある。 そして、 この動き検出部 1 0 2は、 基準プロックについて検 出した動きべク トルを外部に出力するとともに、 探索領域決定部 1 0 4に出力する。
探索領域決定部 1 0 4は、 動き検出部 1 0 2からの動きべク トル を参照ブロックの動きベク トルとして用いて、 動き検出部 1 0 2で 上記ブロックマッチングを行って基準ブロックの動きべク トルを検 出するときの動きべク トル探索領域を決定する処理を行う。 具体的 には、 この探索領域決定部 1 0 4は、 参照ブロックの動きベク トル を用いて演算することで参照ブロックの動きべク トルを示す点を中 心とした第 1の探索領域を決定するとともに、 基準フレームと参照 フレームとのフレーム間距離に応じて演算することで参照プロヅク の動きべク トルから延長した点を中心とした第 2の探索領域を決定 する。 そして、 この探索領域決定部 1 0 4は、 上記第 1の探索領域 及び第 2の探索領域を含む動きべク トル探索領域として参照プロッ ク読み出し制御信号を生成し、 参照フレームメモリ 1 0 3から勁き 検出部 1 0 2に動きべク トル探索領域に含まれる参照プロックを出 力させる。
ここで、 探索領域決定部 1 0 4は、 内部にメモリを備え、 上記各 探索領域を決定するとともに、 基準フレームを構成する各基準ブロ 'ソク毎に、 ブロックマツチングを行う領域であることを /Γ;すフラグ を生成して上記メモリに格納する。 これにより、 探索領域決定部 1 0 4は、 甚準フレームに対応したフラグが存在するか否かを判断す るためのマップを上記メモリに生成する。 探索領域決定部 1 0 4は、 例えば 「 1」 をブロックマッチングを行うフラグとし、 「 0」 をブ ロックマツチングを行わないフラグとしてマップを作成する。 そし て、 探索領域決定部 1 0 4は、 動き検出部 1 0 2でプロックマッチ ングを行うとき、 フラグからなるマツプを参照して、 参照ブロック み出し制御信号を生成して参照フレームメモリ 1 0 3に出力する。 つぎに、 このように構成された動きべク トル検出装置 1 0 0で上 記フラグを生成して、 1つの基準ブロックについて動きベク トルを 検出する処理については上述の図 8及び図 9のフローチャートにお ける処理と略同様であるが、 図 8及び図 9を再度参照して図 1 3に 示す動きべク トル検出装置 1 0 0の処理を説明する。
この動きベク トルを検出する処理は、 先ず、 ステップ S 2 1にお いて、 探索領域決定部 1 0 4は、 参照フレームメモリ 1 0 3からの マクロブロック単位の参照ブロックについて動きべク トルが存在す るか否かを判定し、 動きべク トルが存在すると判定したときにはス テツプ S 2 2に進み、 動きベク トルが存在しないと判定したときに はステップ S 2 3に進む。
次のステップ S 2 2において、 探索領域決定部 1 0 4は、 上記動 きべク トル探索領域の中心位置を参照ブロックの動きべク トルの先 端位置に設定する。
次のステップ S 2 4において、 探索領域決定部 1 0 4は、 図 1 0 に示すように、 上述のステップ S 2 2において設定した勁きべク ト ル探索領域の :'心位 を上記メモリに格納するフラグからなるマツ プの(I '心位 とし、 (一 S h, - S V ) と ( + S h , + S V ) を対 角点とした矩形領域をマツプのベースェリアとして設定する。 すな わち、 この探索領域決定部 1 0 4は、 上記べ一スエリア内において ブロックマッチングを行うことを示す 「 1」 のフラグ又はブロック マッチングを行わないことを示す 「 0」 のフラグからなるマップを 内部のメモリに作成することになる。
次のステップ S 2 5において、 探索領域決定部 1 0 4は、 参照ブ ロックの動きべク トルの先端を中心とした所定の画素数を占める領 域を第 1の探索領域とするとともに、 フレーム間距離に応じて、 参 照プロックの動きべク トルから延長した点を中心位置として第 2の 探索領域を設定する。 そして、 この探索領域決定部 1 0 4は、 第 1 の探索領域及び第 2の探索領域を設定したことに応じて、 プロック マッチングを行うことを示すフラグを生成する。 更に、 探索領域決 定部 1 0 4は、 設定した第 1の探索領域と第 2の探索領域とを接続 する接続線を設定し、 上記第 1の探索領域、 第 2の探索領域及び接 続線で囲んだ領域を動きべク トル探索領域とし、 フラグを生成する。 この結果、 探索領域決定部 1 04は、 上述したように設定した第 1の探索領域及び第 2の探索領域を例えば円形とし、 第 2の探索領 域の大きさをフレーム間距離に応じて半径を大となるように設定し、 接続線として第 1の探索領域と第 2の探索領域とを接続する接線で 囲まれてなる動きべク トル探索領域を示すフラグをメモリのベース エリア内でマッピングすることにより、 図 1 1に示すような第 1の 探索領、域 A、 第 2の探索領域 B及び接続線 Cで fflまれた動きべク 卜 ル探索領域を示すマップをメモリ内に作成する。 なお、 この図 1 1 において、 網掛け部分はフラグが 「 1」 の動きべク トル探索領域を 示し、 白抜き部分はフラグが 「0 j の領域を示している。
一方、 上述のステヅプ S 2 1で参照ブロックに勋きべク トルが存 在しないと判定されたステップ S 2 3において、 探索領域決定部 1 04は、 動きべク トル探索領域の中心位置を基準プロック内の座標 ( 0 , 0 ) に設定する。
次のステツプ S 2 6において、 探索領域決定部 1 04は、 上述の ステップ S 2 3において設定した勁きべク トル探索領域の巾心を屮 心位; Sとし、 (一 S h, 一 S v) と ( + S h, + S v) を対角点と した矩形領域をマヅプのベースェリアとして設定してステップ S 2 7に進む。 ステップ S 26において、 探索領域決定部 1 04は、 ス テツプ S 2 1で参照ブロックに動きべク トルが存在しないと判定さ れたことから、 動きべク トル探索領域の中心を上記矩形領域の中心 位置とし、 (一 S h, — S v) と ( + S h, + S v) を対角点とし た矩形領域を動きべク トル探索領域としてメモリにマツプを作成す る。
ステップ S 2 7において、 探索領域決定部 1 04は、 上述のステ ップ S 2 5又はステツプ S 2 6で作成され-たマツプにおける上記べ ースエリァの左上の座標位置を初期位置として指定する。 すなわち、 この探索領域決定部 1 0 4は、 動き検出部 1 0 2で動きべク トルを 検出するときに行うプロックマッチングの探索位置を上記ベースェ リアの左上の座標 (H, V ) から開始する。 ここで、 H及び Vは、 上記マップにおける座標位置を示す変数である。
次のステップ S 2 8において、 動き検出部 1 0 2は、 基準フ レー ムメモリ 1 0 1から勋きべク トルを検出する基^フレームからマク ロブロック 位の^準プロックの画像デ一夕を^み込む。
次のステヅプ S 2 9において、 探索領域決定部 1 0 4は、 メモ リ に格納されているマップから沲楞 (H , V ) におけるフラグを^み 出す。
次のステップ S 3 0において、 探索領域決定部 1 0 4は、 上述の ステップ S 2 9において読み出したフラグが 「 1」 又は 「 0」 かを 判定する。 すなわち、 この探索領域決定部 1 0 4は、 メモリに格納 されたマップの :標位置に対応した基準ブロックの画 Mと参照ブ口 ックの画素とを用いてプロックマツチングを行うか否かを判定する。 そして、 探索領域決定部 1 0 4は、 フラグが 「 1」 である場合、 す なわちブロックマッチングを行うときには図 9に示すステップ S 3 1に進み、 フラグが 「 0」 である場合、 すなわちブロックマツチン グを行わないときには図 9に示すステップ S 3 5に進む。
そして、 ステップ S 3 5において、 探索領域決定部 1 0 4は、 マ ヅプの座標 (H , V ) をインク リメン トすることで次の画素を指定 し、 ステップ S 3 6においてマップの座標が右下、 すなわち座標が (Right, Bottom) であるかを判定する。 そして、 探索領域決定部 1 0 4は、 マツプの座標が右下でないと判定-したときにはステップ S 3 5で指定した画素についてステップ S 2 9以降の処理を行い、 マ ップの座標が右下であると判定したときには、 基準プロックについ て動きべク トルを検出する処理を終了する。
ステップ S 3 1において、 探索領域決定部 1 0 4は、 参照フレー ムメモリ 1 0 3に参照プロック読み出し制御信号を出力することに より、 参照フレームから座標 (H, V ) に相当する参照ブロックの 画像デ一夕を参照フ レームメモリ 1 0 3から動き検出部 1 0 2に出 力するように制御する。
次のステップ S 3 2において、 励き検出部 1 0 2は、 上述のステ ヅプ S 2 8で^み出した上記座標 (H, V ) に対応する ¾準ブロッ クの画像デ一夕と、 上述のステップ S 3 1で入力された座標 (H , V ) に相当する参照プロックの画像データとを比較することにより 基準プロックを構成する各画素と参照プロックを構成する各画素と の差分を演算し、 差分の絶対値和を演算する。
次のステップ S 3 3において、 動き検出部 1 0 2は、 上述のステ ップ S 3 2で求めた差分の絶対値和が最小であるか否かを判定し、 差分の絶対値和が最小であると判定したときにはステップ S 3 4に 進んで差分の絶対値和を最小値とし、 座標 (H , V ) を記憶する。 これにより、 動き検出部 1 0 2は、 動きベク トルを検出する。
次のステツプ S 3 5において、 探索領域決定部 1 0 4は、 上述し たように、 ベースエリア内における次の参照ブロックを指定し、 ス テヅプ S 3 6において指定した参照プロヅクの座標がステツプ S 3 6においてマップの座標が右下、 すなわち (Right , Bottom) である かを判定する。 このように動きべク トル検出装置 1 0 0は、 ある基準ブロックに ついて動きべク トルを検出するとき、 ステップ S 2 5において参照 ブロックの動きベク トルを用いてブロックマッチングを行う領域を 決定し、 ステップ S 2 9からステップ S 3 6までの処理を繰り返す ことでフラグが生成された座標についてのみプロックマッチングを 行い、 ステップ S 3 2で演算した差分の絶対値和が最小であるとき の参照プロックの座標を fflいて基準プロックの動きべク トルを検出 する。
したがって、 このような処 ifRを行う勋きべク トル検出装^ 1 0 0 は、 上述のステップ S 2 5で説 Π刀したように、 参照ブロックの勁き ベク トルを川いて、 第 1の探索 ^域 A及び ¾ 2の探索領域 Bを設定 し、 当該第 1の探索領域 A及び第 2の探索領域 Bを含む動きべク ト ル探索領域のみでブロックマッチングを行うので、 参照プロックを 用いないで探索領域を設定した場合と比較して探索範囲を縮小する ことができる。 したがって、 動きベク トル検出装置 1 0 0によれば、 ブロックマツチングを行う回数を削減することができ、 動きべク ト ルを検出するための演算量を大幅に削減することができる。 3!に、 上述した処理を行う動きべク トル検出装置 1 0 0によれば、 勋きべ ク トルの検出処理の精度を保持しつつ演算量を削減することができ、 処理時間を短縮することができる。
なお、 上述した第 2の実施の形態に係る動きべク トル検出装置 1, 1 0 0の処理の説明においても、 図 1 1に示す例以外に図 1 2に示 すように第 1の探索領域と第 2の探索領域を矩形領域とし、 第 1の 探索領域と第 2の探索領域とを接続する直線と前記第 1の探索領域 及び第 2の探索領域とで囲む上記動き探索領域内で動きべク トルを 検出する処理を行っても良い。 - つぎに、 本発明の第 3の目的を実現するための第 3の実施の形態 を説明する。 なお、 以下の第 3の実施の形態の説明では、 第 1の実 施の形態で用いた図 1に示す構成の動きべク トル検出装置 1に適用 した一例について説明する。
この第 3の実施の形態に係る動きべク トル検出装置は、 相互に隣 接する画素プロックの動きべク トルにおける相関が高いことを利用 して探索領域を設定して動きべク トルを検出する。
この ¾合、 C P U 2は、 フ ィール ド画像又はフレーム画像につい て勤きべク トルを求めるときには、 動きべク トルを探索するときの 探索領域を設定し、 前記探索領域において例えば 8 X 8画素からな るマクロブロ ヅク単位でプロックマッチングを行うことで勤きべク トルを検出する。 具体的には、 C P U 2は、 動きベク トル検出プロ グラムに従って、 マクロブロック毎にフ レーム画像を分割し、 相互 に隣接するマクロブロックの動きベク トルを用いてブロックマッチ ングを行うときの探索領域を設定する。
C P U 2は、 動きベク トルを検出するときには、 先ず図 1 4中の 網掛け部分で示す 1つおきにマクロブロックについて、 所定の探索 領域でプロックマッチングを行うことで動きべク トルを検出する処' 理を行う。 続いて、 C P U 2は、 上記網掛け部分におけるマクロブ ロックについての動きべク トルを用いて探索領域を演算し、 当該探 索領域でブロックマツチングを行うことで図 1 4中の白抜き部分の マクロブロックについての動きべク トルを検出する処理を行う。
このように構成された動きべク トル検出装置 1は、 C P U 2によ りフレーム画像の画像デ一夕について動きべク トルを検出するとき、 HD D 4に格納された動きベク トル検出プログラムを実行すること で図 1 5及び図 1 6のフローチャートに示すような処理を行う。 先ずステップ S 4 1において、 C P U 2は、 図 1 7に示すような 複数のマク口プロックが水平方向に配列されてなるライン ( L i n e ) のアドレスを指定することでラインの番号 (No.) を指定する処 理を行う。 ここで、 C PU 2は、 マクロブロック (MB) が水平方 向に ffi列する複数のラインのうち、 最も上部に位置するライン 「0」 の^号を指定する。 ここで、 上記ラインの '' は、 上部から 0, 1 , 2 , · · · , ボトム ( Bottm) からなる。
次のステップ S 4 2において、 C P U 2は、 上述のステップ S 4 1において指定したライン 「0」 のうち、 勋きべク トルを検出する マクロブロックの番^ 「0」 を指定する処理を行う。 各ラインを構 成する複数のマク口プロックの番号は、 左端から右端に向かって、 0 , 1, 2 , · · · , ライ ト (Right) からなる。
次のステップ S 4 3において、 C P U 2は、 上述のステップ S 4 2で指定された番号のマクロプロックについて探索領域を,设定する。 ここで、 C P U 2は、 探索領域を所定の画素数からなるサーチレン ジ Rに設定する。 このとき、 C P U 2は、 例えばマクロブロックの 中心位置を示す座標から (土 R, 土 R) の対角点を有する矩形領域 を探索領域として設定する。 また、 C P U 2は、 例えばサーチレン ジ Rの探索領域として、 3 2 x 3 2画素からなる矩形領域を設定す る。 そして、 この C P U 2は、 所定の画素数からなる探索領域にお いて時間的に前後するフレーム画像の対応するマクロプロックを用 いて上述したブロックマッチングを行うことで動きベク トルを検出 する処理を行う。 次のステップ S 4 4において、 C P U 2は、 上述のステップ S 4 3において動き検出を行ったマク口プロヅクと水平方向の左右に 2 つの番^だけずれたマクロプロックを指定する処理を行う。
次に、 ステップ S 4 5において、 C P U 2は、 上述のステップ S 4 4で指定したマクロブ口ックが、 フレーム画像の右端に位置する か否かを判断する。 そして、 C P U 2は、 指定したマクロブロック がフレーム画像の右端に位置すると判断したときにはステップ S 4 6に進み、 右端に位 Sしないと判断したときにはステップ S 4 3に 戻る。 すなわち、 C P U 2は、 上述のステツプ S 4 3〜ステップ S 4 5に示す処 ί¾を行うことにより、 指定したラインのうち、 左端に 位置するマク口プロックから右端に向かって 2つの番^每に上記ス テツプ S 4 3で説明した所定の探索領域で勁きべク トルを検出する 処理を行う。
次のステップ S 4 6において、 C P U 2は、 上述のステップ S 4 2で指定した Φ号 「 0」 のマクロブロックに右側に隣接する番号 「 1」 のマクロブロックを指定する処理を行う。
次のステップ S 4 7において、 C P U 2は、 上述のステップ S 4 6又は後述のステップ S 5 4で指定された番号におけるマクロプロ ックの右側に隣接するマクロブロックが存在するか否かを判断する。 そして、 C P U 2は、 指定した番号におけるマクロブロックの右側 に隣接するマクロプロックが存在しないと判断したときにはステツ プ S 4 8に進み、 指定した番号におけるマクロプロックの右側に隣 接するマクロプロックが存在すると判断したときにはステップ S 4 9に進む。
ステップ S 4 8において、 C P U 2は、 上述のステップ S 4 7に おいて右側に隣接するマクロプロックが存在しないと判断されたマ ク口プロヅクについて、 上述のステップ S 4 3における上記所定の 探索領域を設定して、 当該探索領域でブロックマツチングを行うこ とで動きべク トルを検出する処理を行ってステップ S 5 4に進む。 一方、 ステップ S 4 9において、 C P U 2は、 上述のステップ S
4 6又は後述のステップ S 5 4で指定したマクロブロックの両側に 隣接するマクロブロックの勁きべク トルの !分を演算し、 当該差分 の絶対 ίιΐ'ί Δ Vを演算する。 ここで、 上記勁きベク トルの^分の絶対 値△ Vは、 マクロブロックの両側に隣接するマクロブロックの勤き べク トルの指し す方向が略同方向であるときには小さな値となり、 マクロブロックの両側に隣接するマクロブロックの動きベク トルの 指し示す方向が異なるほど大きな値となる。
次のステップ S 5 0において、 C P U 2は、 上述のステップ S 4 9で演算して得た差分の絶対値 Δ Vがサーチレンジ rよりも十分に 大きいか否かを判断する。 ここで、 「 r」 は任怠の ffiであり、 サ一 チレンジ rとは点 (一 r , 一 r ) と点 ( + r , + r ) とを対 1¾点に 有する矩形領域である。 また、 このサーチレンジ rで定義される矩 形領域は、 上述したステップ S 4 3におけるサーチレンジ Rで定義 される矩形領域よりも占める領域が小さ く、 例えば 6 X 6画素から なる矩形領域である。 そして、 C P U 2は、 差分の絶対値 Δ νがサ ーチレンジ rよりも十分に大きいとき、 すなわち隣接するマクロブ 口ックの各動きべク トルの指し示す方向が異なる場合にはステツプ
5 5 1に進み、 差分の絶対値 Δ νがサーチレンジ rよりも十分に大 きくないとき、 すなわち隣接するマクロブロックの各動きべク トル の指し示す方向が略同方向である場合にはステツプ S 5 2に進む。 ステップ S 5 1において、 C P U 2は、 上述のステツプ S 4 6又 は後述のステップ S 54で指定されたマクロプロヅクの水平方向に おける両側に隣接するマクロブロックについての各動きべク トルを 図 1 7に示すように指定されたマクロプロックの左上の座標位置と し、 指し示す点を中心としてサーチレンジ rで定義される探索領域 A, Bをそれぞれ設定する。 そして、 C P U 2は、 ft探索領域 A, Bにおいてブロックマッチングを行うことで動きベク トルを検出し てステップ S 54に進む。
一方、 ステップ S 5 2において、 C PU 2は、 ステップ S 4 6乂 はステップ S 54で指^されたマクロプロヅクの水、 方向における 両側に隣接するマクロブ口ックについての各 ®きべク トルを fflいて、 図 1 8に示すような平均動きべク トル AveV(h,v)を演^する。
次のステップ S 5 3において、 C P U 2は、 、f均動きベク トル Av eV(h,v)の先端が指し示す座標位置 (h, V) を中心とし、 点 (― r, - r ) と点 (+ r , + r ) とを対角点とした矩形の探索領域 Cを,没 定する。 そして、 C P U 2は、 設定した探索領域 Cにおいてブロ ヅ クマッチングを行うことでステップ S 4 6又はステップ S 54で指 定したマクロブロックについての動きベク トルを検出する。
次のステップ S 54において、 C P U 2は、 上述のステップ S 5 3で動きべク トルを検出したマクロプロックから水平方向における 右側に向かって 2番号だけ進める処理を行う。
次のステップ S 5 5において、 C P U 2は、 上述のステップ S 5 4で指定した番号のマクロブロックがラインにおける右端に位置す るか否かを判断する。 そして、 C P U 2は、 指定したマクロブロッ クがラインにおける右端に位置すると判断したときにはステップ S 5 6に進み、 指定したマクロブロックがラ.インにおける右端に位置 しないと判断したときにはステップ S 4 7に戻る。 すなわち、 C P U 2は、 上述のステップ S 4 2〜ステップ S 5 5までの処理を繰り 返すことにより、 上述の処理を行っているラインを構成する全ての マクロブロックについて動きべク トルを検出する。
ステップ S 5 6において、 C P U 2は、 上述したステップ S 4 3 からステップ S 5 5までの処理を行ったラインから 2つの悉^だけ ボトムに向かって進めて新たなラインを指定する処理を行う。
次のステップ S 5 7において、 C P U 2は、 ヒ述のステップ S 5 6で指定したラインの番 ^がボトムであるか否かを判断する。 そし て、 C P U 2は、 指定したラインがボトムであると判断したときに は図 1 6に示すステップ S 5 8に進み、 指定したラインがボトムで ないと判断したときにはステップ S 42に戻って指定したラインに ついて上述のステップ S 4 2〜ステップ S 5 5に示す処理を行う。 すなわち、 C PU 2は、 ステップ S 4 1〜ステップ S 5 7までの処 理を行うことで、 フレーム画像の番号 「 0」 のライ ンからボトムの ラインに向かって 2つの番号毎に上述のステヅプ S 4 2〜ステップ S 5 5に示す処理を行う。
次のステップ S 5 8において、 CPU 2は、 図 1 4に示すような 複数のマクロプロックが垂直方向に配列されてなるライ ンの番号を 指定する処理を行う。 ここで、 C P U 2は、 マクロブロックが水平 方向に配列する複数のラインのうち、 上端から 1つの番号だけ下側 に隣接するライン 「 1」 の番号を指定する。
次のステップ S 5 9において、 C PU 2は、 上述のステヅプ S 5 8において指定したライン 「 1」 のうち、 動きべク トルを検出する W 0
36 マクロブロックの番号 「0」 を指定する処理を行う。
次のステップ S 6 0において、 C P U 2は、 上述のステップ S 5 9で指定したマクロブロックの下側にマクロブロックが存在するか 否かを判断する。 そして、 C P U 2は、 指定したマクロブロックの 下側にマクロブロックが存在しないと判断したときにはステップ S 6 1に進み、 指定したマクロブロックの下側にマクロブロックが存 在すると判断したときにはステップ S 6 2に進む。
ステップ S 6 1において、 C P U 2は、 上述のステツプ S 6 0に おいて下側に隣接するマクロブロックが存在しないと判断されたマ クロブロックについて、 上述のステップ S 4 3におけるサーチレン ジ Rの探索領域を設定して、 当該探索領域でブロックマッチングを 行うことで動きべク トルを検出する処理を行ってステツプ S 6 7に 進む。
一方、 ステップ S 6 2において、 C P U 2は、 上述のステップ S 5 9又は後述のステップ S 6 7で指定したマク口プロックの垂直方 向において隣接するマクロプロックの動きべク トルの差分を演^し、 当該ノ 分の絶対値 Δ Vを演算する。
次のステップ S 6 3において、 C P U 2は、 上述のステップ S 6 2で演算して得た差分の絶対値 Δ Vがサーチレンジ rよりも大きい か否かを判断する。 そして、 C P U 2は、 差分の絶対値 ΔΎがサ一 チレンジ rよりも小さいときにはステップ S 6 5に進み、 差分の絶 対値 Δ νがサーチレンジ rよりも小さくないときにはステップ S 6 4に進む。
ステップ S 6 4において、 C P U 2は、 上述のステップ S 5 9又 は後述のステップ S 6 7で指定されたマク口プロックの垂直方向に おいて隣接するマクロブロックについての各動きべク トルを図 1 9 に示すように指定されたマク口プロックの左上の座標位置とし、 指 し示す点を中心としてサーチレンジ rで定義される探索領域 D , E をそれぞれ設定する。 そして、 C P U 2は、 各探索領域 D , E内で ブロックマッチングを行うことで動きベク トルを検出する。
一方、 ステップ S 6 5において、 C P U 2は、 ステップ S 5 9又 はステップ S 6 7で指定されたマク口プロックの垂直方向において 隣接するマクロブロックについての各動きベク トルを川いて、 図 2 0に^すような .均動きべク トル AveV(h,v)を演^する。
次のステップ S 6 6において、 C P U 2は、 平均!)きベク トル Av eV(h,v)の先端が指し示す .標位; S (h, V) を中心とし、 点 (- r , - r ) と点 ( + r , + r ) とを対角点とした矩形の探索領域 Fを設 定する。 そして、 C P U 2は、 設定した探索領域内でブロックマツ チングを行うことでステップ S 5 9又はステップ S 6 7で指定した マクロブロックについての動きベク トルを検出する。
次のステップ S 6 7において、 C PU 2は、 上述のステップ S 6 6で jきべク トルを検出したマクロブロックから水平方向における 右側に向かって 1つの番号だけ進める処理を行う。
次のステップ S 6 8において、 C P U 2は、 上述のステップ S 6 7で指定した番号のマクロプロックがラインにおける右端に位置す るか否かを判断する。 そして、 C P U 2は、 指定したマクロプロヅ クがラインにおける右端に位置すると判断したときにはステツプ S 69に進み、 指定したマクロブロックがラインにおける右端に位置 しないと判断したときにはステップ S 6 0に戻る。 すなわち、 C P U 2は、 上述のステヅプ S 6 0〜ステップ S 6 8までの処理を繰り 返すことにより、 上述の処理を行っているライ ンを構成する全ての マクロブロックについて動きべク トルを検出する。
ステヅプ S 6 9において、 C P U 2は、 上述したステップ S 5 9 からステップ S 6 8までの処理を行ったライ ンから 2つの番号だけ 下端に向かって進めて新たなラインを指定する処理を行う。
次のステップ S 7 0において、 C P U 2は、 上述のステップ S 6 9で指定したラインの番^がボトムであるか否かを判断する。 そし て、 C P U 2は、 指定したラインがボトムであると判断したときに は処 :を終了し、 指定したラインがボトムでないと判断したときに はステップ S 5 9に ^つて指定したラインについて上述のステヅプ S 4 2〜ステップ S 6 8に示す処理を行う。 すなわち、 C P U 2は、 ステップ S 5 8〜ステップ S 7 0までの処理を行うことで、 フレ一 ム画像の ¾直方向において、 番号 「 0」 のラインからボトムのライ ンに向かって 2つの番号毎に上述のステップ S 5 9〜ステップ S 6 8に示す処理を行う。
1:述した第 3の¾施の形態に係る勉きべク トル検出装 ifi 1は、 ス テツプ S 4 1〜ステップ S 5 7に示す処理を突行することにより指 定したラインのうち水平方向に配列する全てのマクロブロックにつ いて動きべク トルを検出し、 ステップ S 5 8〜ステップ S 7 0に示 す処理を実行することにより上記ステップ S 4 1〜ステップ S 5 7 で処理の対象となっていないラインを指定して垂直方向に隣接する マクロブロックを用いて動きベク トルを検出することでフレーム画 像を構成する全てのマクロブロックについて動きべク トルを検出す る。
したがって、 第 3の実施の形態に係る動きべク トル検出装置 1に よれば、 ステップ S 4 3に示す処理を行う-ことで、 フレーム画像を 構成する一部のマク口プロヅクについて所定の画素サイズの探索領 域内でプロックマッチングを行って動きべク トルを検出する処理を 行い、 他のマクロブロックについては隣接するマクロブロックの動 きべク トルを参照することで上記所定の画素サイズよりも小さい画 素サイズの探索領域内でプロックマツチングを行って動きべク トル を検出するので、 フレーム画像を構成する全てのマク口プロヅクに ついて予め設定された所定の画素サイズの探索領域にてプロックマ ツチングを行って動きべク トルを検出する場合と比較して探索領域 を削減することができ、 ブロックマッチングを行う回数を削減する ことができる。 したがって、 3の突施の形態に係る jきべク トル 検出装匿 1によれば、 動きべク トルを検出するのに要する処 P!!時 fii] を大幅に短縮することができる。 具体的には、 笫 3の実施の形態に 係る動きべク トル検出装;! 1は、 上述のステップ S 4 3におけるサ ーチレンジ Rを 3 2 x 3 2画素とし、 隣接するマクロブロックの勁 きべク トルを参照した場合の ヒ記サ一チレ ンジ rを 6 x 6画索とし たとき、 フ レーム画像を構成する全てのマクロブロックについて動 きべク トルを検出するための処理時間を 1 / 1 0 0程度に短縮する ことができる。
また、 第 3の実施の形態に係る動きべク トル検出装置 1によれば、 ステップ S 4 9及びステツプ S 5 0で示す処理を行うことで動きべ ク トルを検出するマク口プロックに隣接するマク口プロヅクの動き べク トルが指し示す方向を判断し、 各動きべク トルが指し示す方向 に応じて設定する探索範囲を変化させるので、 隣接するマクロプロ ックの動きべク トルが異なる方向を指し示していても、 高精度な動 きベク トルの検出を行うことができる。 - なお、 上述した第 1〜第 3の実施の形態に係る動きべク 卜ル検出 装置は、 上述した第 1〜第 3の実施の形態で説明した処理のみを行 つても良く、 更には組み合わせた処理を行って探索領域を設定して 動きベク トルを検出しても良い。 これにより、 動きベク トル検出装 置は、 更に演算量を削減した動きべク トルの検出を行うことができ る。 産業上の利川可能性 以上,†T:細に説明したように、 本発明の笫 1の 的に係る勋きべク トル検出方法及び装置は、 第 3のフィ一ルド画像についての ¾きべ ク トルを検出するときの探索領域を、 参照するフィールド画像と第 3のフィ一ルド画像とのフィールド問距離と、 上記第 1のフィ一ル ド画像と第 2のフィールド画像とのフィールド問距離とを比較して 演算するので、 笫 3のフィ一ルド画像についての動きべク トルを求 めるときの探索領域のサイズを変化させることができる。 したがつ て、 この動きベク トル検出方法及び装置によれば、 動きベク トルに おいて ト ップフィ一ルド画像とボトムフィールド画像との相関が高 いことを利用して、 サイズの小さな探索領域を設定することができ る。 従って、 この動きべク トル検出方法及び装置によれば、 動きべ ク トルの検出を行うときのプロックマッチングを行う探索領域を縮 小させることでプロックマッチングの行う回数を削減することがで き、 処理時間を削減することができる。
また、 本発明の第 2の目的に係る動きべク トル検出方法及び装置 は、 基準フレームと時間的又は空間的に近 4妾する参照フレームに含 まれる参照ブロックの動きベク トルを示す点を中心とした第 1の探 索領域を決定し、 上記参照プロックの動きべク トルをフレーム問距 離に応じて延長した点を中心とした第 2の探索領域を決定し、 上記 第 1の探索領域及び第 2の探索領域を含む動きべク トル探索領域内 で基準プロックの動きべク トルを検出するので、 参照プロックの動 きべク トルに応じて動きべク トル探索領域を変形させて動きべク ト ルを検出することができる。 したがって、 この動きべク トル検出方 法及び装^によれば、 動きべク トルを探索する颌域を固定とした場 合と比較したとき、 動きべク トル探索^域を縮小することができ、 動きべク トルを検出するために行うブロックマツチングの回数を削 減し、 演算 ¾を削減することができる。
更に、 本発明の第 3の目的に係る動きべク トル検出方法及び装 [S は、 笫 2のプロヅクの動きべク トルを検出するときの第 2の探索領 域を、 前記 ¾ 2のプロックと水平方向又は垂直方向における両側に 隣接する第 1のプロヅクについての動きべク トルに基づいて設定し、 第 2のブロックについての動きベク トルを第 2の探索領域でブロッ クマッチングを行って検出するので、 第 1のブロックについての動 きべク トルを検出したときの探索領域とは画素サイズの異なる第 2 の探索領域でブロックマッチングを行って第 2のブ口ックについて の動きベク トルの検出を行うことができる。 したがって、 この動き べク トル検出方法及び装置によれば、 第 2のブロックに隣接する第 1のブロックについての動きべク トルに応じて第 2の探索領域を第 1の探索領域と比較して小さな画素サイズとすることができ、 動き ベク トルの検出を行うときのブロックマッチングを行う回数を削減 して動きべク トルを検出するときの演算量の削減及び処理時間の短 縮を図ることができる。

Claims

請 求 の 範 囲
1 - イ ン夕レース方式に準拠したフ ィ一ル ド画像についての動き べク トルの検出を行う動きべク トル検出方法において、
第 1のフィ一ルド画像を用いて、 第 2のフィール ド画像について の動きべク トルを所定の探索領域で検出し、
第 3のフィール ド画像についての動きべク トルを検出するときの 探索領域を、 参照するフィール ド画像と^ 3のフィール ド削像との フィール ド ^距離と、 上記第 1のフィール ド画像と 2のフィール ド剛像とのフィ一ルド ( 距離とを比較して演算し、
上記第 2のフ ィール ド画像についての動きべク トルが指し示す点 を起点として上記演算して得た探索領域で笫 3のフィール ド画像に ついての動きべク トルを検出すること
を特徴とする動きべク トル検出方法。
2 . イン夕レース方式に準拠したフィールド画像についての勅き べク トルの検出を行う動きべク トル検出装置において、
第 1のフィール ド画像を用いて、 第 2のフィール ド画像について の動きべク トルを所定の探索領域で検出する第 1の動き検出手段と、 第 3のフィールド画像についての動きべク トルを検出するときの 探索領域を、 参照するフィール ド画像と第 3のフィール ドとのフ ィ ールド間距離と、 上記第 1のフィール ド画像と第 2のフィ ール ド画 像とのフィールド問距離とを比較して演算する探索領域演算手段と、 上記第 2のフィールド画像についての動きべク 卜ルが指し示す点 を起点として上記探索領域決定手段で演算して得た探索領域でフィ 一ルド画像についての動きベク トルを検出する第 2の動き検出手段 と
を備えることを特徴とする動きべク トル検出装置。
3 . 基準フレームと時間的又は空間的に近接する参照フレームに 含まれる参照ブロックの動きベク トルを示す点を中心とした第 1の 探索領域を決定し、
上記参照プロックの動きべク トルを基準フレームと参照フレーム とのフレーム間距離に応じて延長した点を中心とした第 2の探索領 域を決定し、
上記第 1の探索領域及び第 2の探索領域を含む動きべク トル探索 領域内で、 基準フレームに含まれる基準プロックの画像データと参 照フレームに含まれる参照ブロックの画像デ一夕とを演算して、 基 準ブロックの動きべク トルを検出すること
を特徴とする動きべク トル検出方法。
4 . 基準フレームと参照フレームとのフレーム問距離に応じて上 記第 1の探索領域に対する上記第 2の探索領域の大きさを決定する こと
を特徴とする請求の範囲第 3項記載の動きべク トル検出方法。
5 . 上記第 1の探索領域と第 2の探索領域とを接続する接続線と、 第 1の探索領域及び第 2の探索領域とで囲まれる動き探索領域を決 定し、
上記第 3の探索領域内で基準プロックの画像データと参照プロッ クの画像デ一夕とを演算して基準プロックの動きべク トルを検出す ることを特徴とする請求の範囲第 3項記載の動きべク トル検出方法。
6 . 上記第 1の探索領域及び第 2の探索領域を円形領域とし、 上記第 1の探索領域と第 2の探索領域とを接続する接線と、 前記 第 1の探索領域及び第 2の探索領域とで囲む上記動きべク トル探索 領域内で、 丛準ブロックの画像データと参照ブロックの画像デ一夕 とを演算して基準プロックの動きべク トルを検出することを特徴と ' する詰求の範囲第 5 JI記載の動きべク トル検出方法。
7 . 第 1の探索領域及び第 2の探索領域を炬形領域とし、
上記第 1の探索領域と第 2の探索領域とを接続する接続線と、 前 記第 1の探索領域及び第 2の探索領域とで四む上,记 ilきべク トル探 索領域内で、 ¾準プロックの画像デ一夕と参照プロックの则像デー 夕とを比敉して S準プロックの勒きべク トルを検出することを特徴 とする 求の範 [ffl R 5项記載の勅きべク トル検出方法。
8 . 上記!]きべク トル探索領域を示す領域についてフラグを生成 し、
上記フラグに従って動きべク トルの検出を行うか否かの判断をし、 基準ブロックの画像データと参照ブロックの画像データとを演 し て基準プロックにおける動きべク トルを検出することを特徴とする 詰求の範囲第 3项記載の勤きべク トル検出方法。
9 . 基準フレームと時問的又は空問的に近接する参照フレームに 含まれる参照プロックの動きべク トルを示す点を中心とした第 1の 探索領域を泱定する第 1の領域決定手段と、
上記参照プロックの動きべク トルを基準フレームと参照フレーム とのフレーム間距離に応じて延長した点を中心とした第 2の探索領 域を决定する第 2の領域決定手段と、
上記第 1の領域決定手段からの第 1の探索領域及び第 2の領域决 定手段からの第 2の探索領域を含む動きべク トル探索領域内で、 基 準フレームに含まれる基準ブロックの画像デ一夕と参照フレームに 含まれる参照ブロックの画像データとを演算して、 基準ブロックの 動きべク トルを検出する動きべク トル検出手段と
を備えることを特徴とする動きべク トル検出装置。
1 0 . 上記第 2の領域決定手段は、 基準フレームと参照フレーム とのフレーム間距離に応じて第 1の探索領域に対する第 2の探索領 域の大きさを決定することを特徴とする詰求の範囲第 9項記戦の勤 きべク トル検出装置。
1 1 . 1の探索領域と^ 2の探索領域とを接絞する接続線と、 1の探索領域及び第 2の探索領域とで囲まれる勤きべク トル探索 領域を決定する I)きベク トル領域決定手段を備え、
上記動きべク トル検出手段は、 上記動きべク トル領域決定手段か らの動きべク トル探索領域内で基準ブロックの画像デ一夕と参照ブ ロックの画像デ一夕とを演算して基準ブロックの勁きべク トルを検 出することを特徴とする請求の範囲第 9项記載の動きべク トル検出 装置。
1 2 . 上記第 1の領域決定手段及び第 2の領域決定手段は、 笫 1 の探索領域及び第 2の探索領域を円形領域とし、
上記動きベク トル検出手段は、 第 1の探索領域と第 2の探索領域 · とを接続する接線と、 前記第 1の探索領域及び第 2の探索領域とで 囲む上記動きべク トル探索領域内で、 基準ブロックの画像デ一夕と 参照ブロックの画像データとを演算して基準ブロックの動きべク ト ルを検出することを特徴とする請求の範囲第 1 1項記載の ί力きぺク トル検出装置。
1 3 . 上記第 1の領域決定手段及び第 2の領域決定手段は、 第 1 の探索領域及び第 2の探索領域を矩形領域とし、 ヒ記動きべク トル検出手段は、 上記第 1の探索領域と第 2の探索 領域とを接続する接続線と、 前記第 1の探索領域及び第 2の探索領 域とで囲む上記動きべク トル探索領域内で、 基準ブロックの画像デ —夕と参照プロックの画像デ一夕とを演算して基準プロヅクの勋き べク トルを検出することを特徴とする請求の範囲第 1 1項記載の動 きべク トル検出装置。
1 4 . 上記動きべク 卜ル探索領域を示す領域についてフラグを生 成するフラグ生成手段を備え、
ヒ記動きべク トル検出 段は、 上記フラグ尘成手段で 成された フラグに従って動きべク トルの検出を行うか否かの判断をし、 基準 プロックの画像データと参照プロックの画像デ一夕とを演算して基 準プロックの動きべク トルを検出することを特徴とする^求の範囲 第 9 記載の動きべク トル検出装匿。
1 5 . 複数のプロヅクからなる画像についての動きべク トルを検 出する動きベク トル検出方法において、
第 1の探索領域で^ 1のプロックについての動きべク トルを検出 し、
第 2のブロックについての動きべク トルを検出するときの第 2の 探索領域を、 前記第 2のプロックと水平方向又は垂直方向における 両側に隣接する上記第 1のプロックについての動きべク トルに基づ いて設定し、
上記第 2のブロックについての動きべク トルを上記第 2の探索領 域でブロックマツチングを行つて検出すること
を特徴とする動きべク トル検出方法。
1 6 . 上記第 2のブロックと水平方向又.は垂直方向における両側 に隣接する上記第 1のプロックについての各動きべク トルが指し示 す方向を判定し、
上記各動きべク トルが指し示す方向に応じて第 2の探索領域を設 定することを特徴とする請求の範囲第 1 5項記載の動きべク トル検 出方法。
1 7 . 上記第 2のプロックと水平方向又は里 · ι直方向における両側 に隣接する上記第 1のプロックについての各勤きべク トルが指し示 す方 [ が略同方向であるときには、 各動きベク トルの甲.均を演 し て ヒ^ 2の探索 ΐΑ域を設定することを特徴とする 求の範囲^ 1
6項 <¾,践の勋きべク トル検出方法。
1 8 . 上記第 2のプロックと水平方向又は垂直方向における両側 に隣接する上記第 1のプロックについての各 jきべク トルが指し示 す方向が ¾なる方向であるときには、 各動きべク トルが指し示す方 向に従って上記第 2の探索領域を設定することを特徴とする請求の m ii 1 6 ifi s截の勋きべク トル検出方法。
1 9 . 複数のブロ ックからなる画像についての動きべク トルを検 出する動きべク トル検出装置において、
第 1の探索領域で第 1のプロックについての動きべク トルを検出 する第 1の動きべク トル検出手段と、
第 2のブロックについての動きベク トルを検出するときの第 2の 探索領域を、 前記第 2のプロックと水平方向又は垂直方向における 両側に隣接する上記第 1の動きべク トル検出手段で検出した第 1の ブロックについての動きべク トルに基づいて設定する探索領域設定 手段と、 上記第 2のブロックについての動きべ夕-トルを上記第 2の探索領 域でプロックマッチングを行って検出する第 2の動きべク トル検出 手段と
を備えることを特徴とする動きべク トル検出装置。
2 0 . 上記探索領域設定手段は、 上記第 2のブロックと水平方向 又は垂 ¾方向における両側に隣接する上記第 1のブロックについて の各勋きべク トルが指し示す方向を判定し、 上記各動きべク トルが 指し す方向に応じて第 2の探索領域を設定することを特徴とする 求の範 ra i¾ 1 9项 ¾战の!)きべク トル検出装 i 。
2 1 . 上記探索領域設定手段は、 上記第 2のブロックと水平方^ 又は ifH 方向における両側に隣接する上記第 1のプロックについて の各勤きべク トルが指し示す方向が略同方向であるときには、 ^勋 きべク トルの平均を演算して上記第 2の探索領域を,没定することを 特徴とする詰求の範囲第 2 0顷記載の勁きべク トル検出装置。
2 2 . 上記探索領域設定手段は、 第 2のブロックと水、 1∑方向又は ¾-直方向における両側に隣接する上記第 1のプロックについての各 動きべク トルが指し示す方向が異なる方向であるときには、 各動き ベク トルが指し示す方向に従って上記第 2の探索領域を設定するこ とを特徴とする請求の範囲第 2 0項記載の動きべク トル検出装置。
PCT/JP1999/005735 1998-10-22 1999-10-18 Motion vector detecting method and device WO2000024202A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP99947946A EP1051040A1 (en) 1998-10-22 1999-10-18 Motion vector detecting method and device
AU61242/99A AU751909B2 (en) 1998-10-22 1999-10-18 Motion vector detecting method and device
CA002314976A CA2314976C (en) 1998-10-22 1999-10-18 Motion vector detecting method and device
KR1020007006895A KR100659627B1 (ko) 1998-10-22 1999-10-18 이동 벡터 검출 방법 및 장치
US09/582,156 US6594314B1 (en) 1998-10-22 1999-10-18 Motion vector detection method and apparatus

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP30147998A JP4078733B2 (ja) 1998-10-22 1998-10-22 動きベクトル検出方法及び装置
JP30147898A JP4035903B2 (ja) 1998-10-22 1998-10-22 動きベクトル検出方法及び装置
JP10/301478 1998-10-22
JP10/301479 1998-10-22
JP30147798A JP4196447B2 (ja) 1998-10-22 1998-10-22 動きベクトル検出方法及び装置
JP10/301477 1998-10-22

Publications (1)

Publication Number Publication Date
WO2000024202A1 true WO2000024202A1 (en) 2000-04-27

Family

ID=27338461

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/005735 WO2000024202A1 (en) 1998-10-22 1999-10-18 Motion vector detecting method and device

Country Status (9)

Country Link
US (1) US6594314B1 (ja)
EP (1) EP1051040A1 (ja)
KR (1) KR100659627B1 (ja)
CN (3) CN1222174C (ja)
AU (1) AU751909B2 (ja)
CA (1) CA2314976C (ja)
MY (1) MY125635A (ja)
TW (1) TW444507B (ja)
WO (1) WO2000024202A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW444507B (en) * 1998-10-22 2001-07-01 Sony Corp Detecting method and device for motion vector
US20030081685A1 (en) * 2001-10-31 2003-05-01 Montgomery Dennis L. Method and apparatus for determining patterns within adjacent blocks of data
JP4610195B2 (ja) 2001-12-17 2011-01-12 マイクロソフト コーポレーション スキップマクロブロックコード化
US7817717B2 (en) * 2002-06-18 2010-10-19 Qualcomm Incorporated Motion estimation techniques for video encoding
JP4179548B2 (ja) * 2003-09-24 2008-11-12 Kddi株式会社 動きベクトル検出装置
US7894526B2 (en) * 2004-02-27 2011-02-22 Panasonic Corporation Motion estimation method and moving picture coding method
CN100373952C (zh) * 2004-06-15 2008-03-05 中兴通讯股份有限公司 一种基于mpeg-4的视频对象快速运动估值方法
CN100433835C (zh) * 2005-03-01 2008-11-12 凌阳科技股份有限公司 动态调整运动估计的方法及系统
JP4304528B2 (ja) * 2005-12-01 2009-07-29 ソニー株式会社 画像処理装置および画像処理方法
JP4389866B2 (ja) * 2005-12-12 2009-12-24 セイコーエプソン株式会社 画像処理方法、画像処理装置、表示装置およびプログラム
US8416851B2 (en) * 2006-12-20 2013-04-09 Intel Corporation Motion detection for video processing
JP4985201B2 (ja) * 2007-08-07 2012-07-25 ソニー株式会社 電子機器、動きベクトル検出方法及びプログラム
KR101446773B1 (ko) * 2008-02-20 2014-10-02 삼성전자주식회사 영상 복구를 이용한 인터 예측 부호화, 복호화 방법 및장치
JP5268433B2 (ja) * 2008-06-02 2013-08-21 キヤノン株式会社 撮像装置、及び撮像装置の制御方法
US20100103323A1 (en) * 2008-10-24 2010-04-29 Ati Technologies Ulc Method, apparatus and software for determining motion vectors
JP5338684B2 (ja) * 2010-01-08 2013-11-13 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
KR20120072205A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 매크로블록 간의 예측 기법을 이용한 움직임 추정 장치 및 방법
US20140254678A1 (en) * 2013-03-11 2014-09-11 Aleksandar Beric Motion estimation using hierarchical phase plane correlation and block matching
TWI782974B (zh) 2017-04-13 2022-11-11 美商松下電器(美國)知識產權公司 解碼裝置、解碼方法及非暫時性電腦可讀取媒體
JP6946419B2 (ja) 2017-04-13 2021-10-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 復号装置、復号方法及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08223577A (ja) * 1994-12-12 1996-08-30 Sony Corp 動画像符号化方法及び装置、並びに動画像復号方法及び装置
EP0804034A2 (en) * 1996-04-26 1997-10-29 Fujitsu Limited Method and device for detecting motion vectors
JPH09284777A (ja) * 1996-04-15 1997-10-31 Sony Corp 動きベクトルなしで動き補償を用いるビデオ符号化方法とその装置
JPH1051792A (ja) * 1996-07-31 1998-02-20 Matsushita Electric Ind Co Ltd 動画像符号化装置及び符号化方法
JPH10126787A (ja) * 1996-10-14 1998-05-15 Nec Eng Ltd Pピクチャの予測ベクトルをオフセットベクトルとした双方向予測ベクトル検出回路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108039A (en) * 1996-05-23 2000-08-22 C-Cube Microsystems, Inc. Low bandwidth, two-candidate motion estimation for interlaced video
TW444507B (en) * 1998-10-22 2001-07-01 Sony Corp Detecting method and device for motion vector

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08223577A (ja) * 1994-12-12 1996-08-30 Sony Corp 動画像符号化方法及び装置、並びに動画像復号方法及び装置
JPH09284777A (ja) * 1996-04-15 1997-10-31 Sony Corp 動きベクトルなしで動き補償を用いるビデオ符号化方法とその装置
EP0804034A2 (en) * 1996-04-26 1997-10-29 Fujitsu Limited Method and device for detecting motion vectors
JPH1051792A (ja) * 1996-07-31 1998-02-20 Matsushita Electric Ind Co Ltd 動画像符号化装置及び符号化方法
JPH10126787A (ja) * 1996-10-14 1998-05-15 Nec Eng Ltd Pピクチャの予測ベクトルをオフセットベクトルとした双方向予測ベクトル検出回路

Also Published As

Publication number Publication date
EP1051040A1 (en) 2000-11-08
KR100659627B1 (ko) 2006-12-20
CA2314976A1 (en) 2000-04-27
AU751909B2 (en) 2002-08-29
CN1148069C (zh) 2004-04-28
CN1222174C (zh) 2005-10-05
US6594314B1 (en) 2003-07-15
KR20010033415A (ko) 2001-04-25
CN1496128A (zh) 2004-05-12
MY125635A (en) 2006-08-30
CN1222173C (zh) 2005-10-05
CN1291409A (zh) 2001-04-11
TW444507B (en) 2001-07-01
CA2314976C (en) 2008-04-08
CN1496129A (zh) 2004-05-12
AU6124299A (en) 2000-05-08

Similar Documents

Publication Publication Date Title
WO2000024202A1 (en) Motion vector detecting method and device
US8130835B2 (en) Method and apparatus for generating motion vector in hierarchical motion estimation
US8019168B2 (en) Motion detecting device and search region variable-shaped motion detector
US6418168B1 (en) Motion vector detection apparatus, method of the same, and image processing apparatus
US20060098886A1 (en) Efficient predictive image parameter estimation
JP2006020095A (ja) 動きベクトル検出回路、画像符号化回路、動きベクトル検出方法および画像符号化方法
JP2005072726A (ja) 動きベクトル検出装置及び動きベクトル検出方法
US5739872A (en) High-speed motion estimating apparatus for high-definition television and method therefor
US7852939B2 (en) Motion vector detection method and device of the same
JP2004356747A (ja) 画像のマッチング方法および装置
KR100994771B1 (ko) 블록정합에 의한 움직임 벡터 탐색방법 및 탐색장치
JP2950633B2 (ja) 動きベクトル検出装置
JPH07154801A (ja) 階層型動きベクトル検出方法
JP4035903B2 (ja) 動きベクトル検出方法及び装置
JP4196447B2 (ja) 動きベクトル検出方法及び装置
JPH10327401A (ja) 動きベクトル検出方法及びそれを用いた画像信号の符号化方法及び装置
JP4053925B2 (ja) 映像符号化方法,映像符号化装置,映像符号化プログラムおよび映像符号化プログラムの記録媒体
JP4241021B2 (ja) 動きベクトル検出方法、動きベクトル検出装置、画像符号化装置
JPH11243546A (ja) 画像符号化装置及び方法
JPH09238346A (ja) 動きベクトル探索方法および装置
JPH11205816A (ja) 動きベクトル検出装置
JPH09182078A (ja) 動きベクトル検出装置及び動きベクトル検出方法
JP2006262198A (ja) 動画圧縮符号化装置
JP2000134629A (ja) 動きベクトル検出方法及び装置
US20150365681A1 (en) Method of encoding and decoding video stream for image compression

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 99803179.8

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA CN KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 61242/99

Country of ref document: AU

ENP Entry into the national phase

Ref document number: 2314976

Country of ref document: CA

Ref document number: 2314976

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1999947946

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1020007006895

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 09582156

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1999947946

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020007006895

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1999947946

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 61242/99

Country of ref document: AU

WWG Wipo information: grant in national office

Ref document number: 1020007006895

Country of ref document: KR