WO2005098754A1 - 画像処理装置および方法、記録媒体、並びにプログラム - Google Patents

画像処理装置および方法、記録媒体、並びにプログラム Download PDF

Info

Publication number
WO2005098754A1
WO2005098754A1 PCT/JP2005/006940 JP2005006940W WO2005098754A1 WO 2005098754 A1 WO2005098754 A1 WO 2005098754A1 JP 2005006940 W JP2005006940 W JP 2005006940W WO 2005098754 A1 WO2005098754 A1 WO 2005098754A1
Authority
WO
WIPO (PCT)
Prior art keywords
vector
motion vector
pixel
frame
unit
Prior art date
Application number
PCT/JP2005/006940
Other languages
English (en)
French (fr)
Inventor
Norifumi Yoshiwara
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
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to JP2006512131A priority Critical patent/JP4692846B2/ja
Priority to KR1020067020965A priority patent/KR101157053B1/ko
Priority to EP05728528A priority patent/EP1734480A1/en
Publication of WO2005098754A1 publication Critical patent/WO2005098754A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • H04N7/014Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors

Definitions

  • Image processing apparatus and method recording medium, and program
  • the present invention relates to an image processing apparatus and method, a recording medium, and a program, and more particularly, to an image processing apparatus and method capable of improving the quality of an image generated based on a motion vector, and recording. It relates to a medium and a program.
  • a motion vector is detected by using, for example, a gradient method or a block matching method described in Patent Document 1. Is performed, and the detected motion vector force is assigned to the generated interpolation frame.
  • these motion vector detection methods it is not always possible to obtain a motion vector of a target pixel for which a motion vector is not always obtained, or the obtained motion vector is unstable. There was a problem with the reliability of motion vectors.
  • the image processing apparatus has dealt with the case where the motion vector is not obtained or left as it is, or the motion vector is set to the 0 vector (that is, a stationary state).
  • Patent Document 1 JP-A-60-158786
  • a motion vector that has not been obtained or a motion vector that has been converted to a zero vector is not necessarily a motion suitable for the object to which the target pixel belongs, and is generated using these motion vectors.
  • a visual deterioration such as discontinuity is brought to a small extent in the obtained image.
  • the motion vector obtained by the conventional motion vector detection method as described above Is that the motion vector assigned to the pixel of the interpolated frame is calculated as a motion vector ( ⁇ ⁇ similar to the motion vector of the surrounding pixels) with no motion correlation, even though the motion is within the same object.
  • This motion vector, which is frequently obtained, is likely to be erroneously obtained, that is, there is a problem that the motion vector is often not very accurate.
  • the present invention has been made in view of such a situation, and it is an object of the present invention to be able to obtain a reliable motion vector for a pixel for which a motion vector has not been obtained in the preceding process.
  • the image processing device of the present invention determines whether or not a high reliability and a motion vector are set in a region of interest composed of one or more pixels on the first frame or the second frame. If it is determined that a highly reliable motion vector is not set in at least a part of the region of interest by the vector determination unit that determines A motion vector having the highest reliability among the motion vectors being set as a motion vector of at least a part of the region of interest.
  • Vector detection means for detecting a motion vector on the first frame, and an evaluation value representing the degree of reliability of the motion vector detected in the region of interest on the first frame by the vector detection means are calculated.
  • a reliability calculating unit wherein the vector determining unit determines whether a motion vector with a high reliability is set in the region of interest on the first frame based on the calculation result by the reliability calculating unit.
  • the vector setting means determines the highest reliability among the motion vectors detected in the peripheral pixels near the target area of the first frame, and sets the motion vector as the motion vector of the target area. Can be set.
  • an effective pixel determining means for determining whether or not a pixel in an operation block to be subjected to an operation for detecting a motion vector is effective for detecting a motion vector.
  • Motion vector detecting means for detecting a motion vector by an operation using a pixel determined to be valid by the valid pixel determining means, wherein the vector determining means determines In the area of interest on frame 1 It is determined whether or not a motion vector with high reliability is set, and the vector setting means
  • the apparatus further includes vector allocating means for allocating a motion vector detected in the first frame to at least a part of a region of interest including one or more pixels on the second frame, wherein the vector determining means includes: Based on the motion vector allocation result by the vector allocating means, it is determined whether or not a force having a highly reliable motion vector allocated to the region of interest on the second frame. Of the motion vectors assigned to the peripheral pixels near the region of interest, the motion vector with the highest reliability can be set as at least a part of the motion vector of the region of interest.
  • the vector setting means determines the motion vector having the highest reliability among the motion vectors allocated to the peripheral pixels near the attention area of the second frame by the vector determination means in the attention area. It can be set as a motion vector of an area determined to have not been assigned a high-degree vector.
  • the image processing apparatus further includes candidate vector setting means for setting a motion vector as a candidate vector, and the candidate vector setting means is configured to set at least one of the motion vector set by the vector setting means temporally earlier than the attention area in the peripheral pixel. Some of the motion vectors can be set as candidate vectors.
  • the candidate vector setting means assigns a motion vector acquired to a peripheral pixel in the vicinity of the attention area to a vector having high reliability by the vector determination means in the attention area. It can be set as a candidate vector for the determined area.
  • the image processing method of the present invention determines whether or not a high reliability and a motion vector are set in a region of interest composed of one or more pixels on the first frame or the second frame.
  • Vector determining step of determining If it is determined that the motion vector with the highest reliability is not set at least in part, the motion vector with the highest reliability among the motion vectors acquired by the peripheral pixels near the region of interest is focused on. And setting a vector as a motion vector of at least a part of the region.
  • the program recorded on the recording medium of the present invention is configured such that a highly reliable motion vector is set in a region of interest consisting of one or more pixels on the first frame or the second frame!
  • the program of the present invention has a high degree of reliability in a region of interest consisting of one or more pixels on the first frame or the second frame!
  • a motion vector is set, and a vector judgment step for judging whether or not a force is applied, and a motion vector having high reliability is not set in at least a part of the region of interest by the processing of the vector judgment step.
  • a vector setting step of setting the motion vector having the highest reliability among the motion vectors acquired in the peripheral pixels near the attention area as at least a part of the motion vector of the attention area is characterized by including.
  • the motion vector having the highest reliability is set as at least a part of the motion vector of the attention area.
  • a reliable motion vector can be obtained for a pixel for which a motion vector was not obtained in the preceding process. Further, according to the present invention, the detection accuracy and the allocation accuracy of the motion vector are improved. Further, according to the present invention, the quality of the generated image can be improved, and the accuracy of the frame frequency conversion can be improved.
  • FIG. 1 is a block diagram illustrating a configuration example of a signal processing device of the present invention.
  • FIG. 2 is a block diagram showing a configuration of a signal processing device.
  • FIG. 3 is a diagram for explaining the principle of the processing of the present invention.
  • FIG. 4 is a diagram specifically illustrating the processing of the present invention.
  • FIG. 5 is a diagram for explaining an evaluation value of a motion vector used in the signal processing device.
  • FIG. 6 is a flowchart illustrating frame frequency conversion processing of the signal processing device.
  • FIG. 7 is a block diagram illustrating a configuration of an image interpolation unit.
  • # 8 is a flowchart for describing image interpolation processing.
  • FIG. 9 is a block diagram showing a configuration of a vector detection unit.
  • FIG. 10 is a diagram illustrating a gradient method used in a vector detection unit.
  • FIG. 11 is a diagram illustrating an iterative gradient method using an initial vector.
  • FIG. 12 is a flowchart illustrating a motion vector detection process.
  • FIG. 13 is a block diagram showing a configuration of a shift initial vector allocating unit.
  • FIG. 14 is a diagram illustrating the concept of a shift initial vector.
  • FIG. 15 is a diagram specifically illustrating a shift initial vector.
  • FIG. 16 is a diagram specifically illustrating a shift initial vector.
  • FIG. 17 is a diagram illustrating a method for determining a shift initial vector.
  • FIG. 18 is a diagram illustrating an example of allocation of shift initial vectors.
  • FIG. 19 is a diagram illustrating an example of a shift initial vector when motion vectors compete with each other.
  • FIG. 20 is a flowchart illustrating a shift initial vector allocation process.
  • FIG. 21 is a block diagram showing a configuration of an initial vector selection unit.
  • FIG. 22 is a diagram showing a peripheral area of an initial vector.
  • FIG. 23 is a diagram showing a candidate block of an initial vector.
  • FIG. 24 is a flowchart illustrating an initial vector selection process.
  • FIG. 25 is a block diagram showing a configuration of an iterative gradient method calculation unit.
  • FIG. 26 is a block diagram illustrating a configuration of an effective pixel determination unit.
  • FIG. 27 is a block diagram showing a configuration of a gradient method calculation unit.
  • FIG. 28 is a diagram illustrating a motion vector detection target block and a calculation block.
  • FIG. 29 is a diagram illustrating the movement of an object in a detection target block.
  • FIG. 30 is a diagram illustrating a state of luminance in a detection target block having the same motion object.
  • FIG. 31 is a view for explaining a state of luminance in a detection target block having an object having a different motion.
  • FIG. 32 is a diagram illustrating an example of an operation block of pixel-based processing.
  • FIG. 33 is a diagram illustrating pixel-by-pixel processing in the detection target block in FIG. 29.
  • FIG. 34 is a flowchart illustrating an iterative gradient method calculation process.
  • FIG. 35 is a flowchart illustrating an effective pixel determination process.
  • FIG. 36 is a flowchart illustrating a gradient method calculation process.
  • FIG. 37 is a flowchart illustrating a pixel-based iterative gradient method calculation process.
  • FIG. 38 is a block diagram showing a configuration of a vector allocating unit.
  • FIG. 39 is a diagram illustrating the concept of the four-point interpolation processing of the present invention.
  • FIG. 40 is a view for explaining the outline of the vector allocation processing.
  • FIG. 41 is a diagram illustrating an example of pixels near an intersection of a motion vector and an interpolation frame.
  • FIG. 42 is a diagram illustrating a method for evaluating a motion vector of an allocation candidate.
  • FIG. 43 is a diagram illustrating an example of four-point interpolation in vector allocation.
  • FIG. 44 is a flowchart illustrating a vector allocation process.
  • FIG. 45 is a flowchart illustrating pixel position calculation processing.
  • FIG. 46 is a flowchart illustrating an allocation vector evaluation process.
  • FIG. 47 is a block diagram showing a configuration of an allocation compensating unit.
  • FIG. 48 is a block diagram showing a configuration of a vector compensation unit.
  • FIG. 49A is a diagram illustrating the principle of allocation compensation processing.
  • FIG. 49B is a diagram illustrating the principle of block mode allocation compensation processing.
  • FIG. 49C is a diagram for explaining an example of evaluating a compensation candidate vector in the block mode.
  • Fig. 50 is a diagram illustrating the principle of motion correlation.
  • FIG. 51 is a diagram illustrating an example of the configuration of pixels surrounding a target pixel.
  • FIG. 52 is a diagram illustrating an example of a compensation candidate vector of a motion vector of a target pixel.
  • FIG. 53 is a diagram illustrating an example of a compensation candidate vector of a motion vector of a target pixel.
  • FIG. 54 is a diagram illustrating an example of a compensation candidate vector of a motion vector of a pixel of interest.
  • FIG. 55 is a diagram illustrating an example of evaluating a compensation candidate vector.
  • FIG. 56 is a diagram illustrating an example of evaluating a compensation candidate vector.
  • FIG. 57 illustrates an example of evaluating a compensation candidate vector.
  • FIG. 58 is a diagram illustrating an example in which a compensation candidate vector is selected as a motion vector of a pixel of interest.
  • FIG. 59B is a flowchart illustrating an allocation compensation process in a block mode.
  • FIG. 60 is a flowchart illustrating a vector compensation process.
  • FIG. 61 is a block diagram showing another configuration of the signal processing device.
  • FIG. 62 is a block diagram illustrating a configuration of a detection compensation unit.
  • FIG. 63 is a block diagram showing a configuration of a vector compensator in FIG. 62.
  • FIG. 64 is a flowchart illustrating another example of the frame frequency conversion process of the signal processing device.
  • FIG. 65 is a flowchart illustrating another example of the motion vector detection process.
  • FIG. 67 is a flowchart illustrating another example of the vector compensation process.
  • FIG. 68 is a block diagram showing another configuration of the vector detection unit.
  • FIG. 69 is a flowchart illustrating still another example of the motion vector detection process.
  • FIG. 70 is a block diagram showing still another configuration of the vector detection unit.
  • 1 signal processing device 11 CPU, 12 ROM, 13 RAM, 31 magnetic disk, 32 optical disk, 33 magneto-optical disk, 34 semiconductor memory, 51 frame memory, 52 vector detection unit, 53 detection vector memory, 54 vector allocation unit, 55 allocation vector memory, 56 allocation flag memory, 57 allocation compensation unit, 58 image interpolation unit, 101 initial vector selection unit, 103 iterative gradient method calculation unit, 104 vector evaluation unit, 105 shift initial vector allocation unit, 1 06 evaluation value memory, 107 shift initial vector memory, 201 allocation target position calculation unit, 202 evaluation value comparison unit, 203 shift initial vector replacement unit, 204 evaluation value replacement unit, 251 candidate vector position calculation unit, 252 detection vector acquisition unit, 253 shift initial vector acquisition unit, 254 offset position calculation unit, 255 evaluation value calculation unit, 256 evaluation value comparison unit, 257 optimal candidate storage register, 401 mode selection unit, 402 selector, 403 effective pixel determination unit, 404 gradient method Calculation unit, 405 delay unit, 411 time pixel difference calculation unit, 412 pixel difference value determination unit, 413 effective
  • FIG. 1 shows a configuration example of a signal processing device 1 to which the present invention is applied.
  • the signal processing device 1 is composed of, for example, a personal computer.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • a RAM Random Access Memory 13 appropriately stores programs executed by the CPU 11, data, and the like.
  • These CPU 11, ROM 12, and RAM 13 are interconnected by a bus 14.
  • An input / output interface 15 is connected to the CPU 11 via a bus 14.
  • the input / output interface 15 is connected to an input unit 16 including a keyboard, a mouse, a microphone, and the like, and an output unit 17 including a display, a speaker, and the like.
  • the CPU 11 executes various processes in response to a command input from the input unit 16. Then, the CPU 11 outputs the obtained image, sound, and the like to the output unit 17 as a result of the processing.
  • the storage unit 18 connected to the input / output interface 15 includes, for example, a node disk. And stores programs to be executed by the CPU 11 and various data.
  • the communication unit 19 communicates with an external device via the Internet or another network. Alternatively, the program may be acquired via the communication unit 19 and stored in the storage unit 18.
  • the drive 20 connected to the input / output interface 15 drives a magnetic disk 31, an optical disk 32, a magneto-optical disk 33, or a semiconductor memory 34 when they are mounted, and records the data therein. Get programs and data that are being used. The acquired program ⁇ data is transferred to the storage unit 18 and stored as needed.
  • the signal processing device 1 can be, for example, a television receiver, an optical disk player, or the like, or a signal processing unit thereof.
  • FIG. 2 is a block diagram showing the signal processing device 1.
  • each function of the signal processing device 1 is realized by hardware or software.
  • each block diagram in this specification may be considered as a hardware block diagram or a software-based block diagram.
  • FIG. 2 is a diagram illustrating a configuration of a signal processing device that is an image processing device.
  • the input image of the 24P signal input to the signal processing device 1 is supplied to a frame memory 51, a vector detection unit 52, a vector allocation unit 54, an allocation compensation unit 57, and an image interpolation unit 58.
  • the frame memory 51 stores an input image in frame units.
  • the frame memory 51 stores the frame at the time t immediately before the input image at the time t + 1.
  • the frame at the time t stored in the frame memory 51 is supplied to a vector detection unit 52, a vector allocation unit 54, an allocation compensation unit 57, and an image interpolation unit 58.
  • the frame at time t on the frame memory 51 is referred to as frame t
  • the frame of the input image at time t + 1 is referred to as frame t + 1.
  • the vector detection unit 52 detects a motion vector between the target block of the frame t on the frame memory 51 and the target block of the frame t + 1 of the input image, and stores the detected motion vector in the detection vector memory 53.
  • the method of detecting the motion vector between these two frames A gradient method or a block matching method is used. Details of the configuration of the vector detection unit 52 will be described later.
  • the detection vector memory 53 stores the motion vector detected by the vector detection unit 52 in the frame t.
  • the vector allocating unit 54 converts the motion vector calculated on the frame t of the 24P signal into a frame of the 60P signal to be interpolated on the allocation vector memory 55 (hereinafter, the frame of the 60P signal is the frame of the 24P signal. (Also referred to as an interpolated frame in order to distinguish from the interpolation frame), and the allocation flag of the allocation flag memory 56 of the pixel to which the motion vector is allocated is rewritten to 1 (True). Details of the configuration of the vector allocating unit 54 will be described later.
  • the allocation vector memory 55 stores the motion vector allocated by the vector allocation unit 54 in association with each pixel of the interpolation frame.
  • the allocation flag memory 56 stores an allocation flag indicating whether or not there is a motion vector to be allocated for each pixel of the interpolation frame. For example, an assignment flag of True (l) indicates that a motion vector is assigned to the corresponding pixel, and an assignment flag of False (O) indicates that no motion vector is assigned to the corresponding pixel. Is shown.
  • the allocation compensating unit 57 refers to the allocation flag in the allocation flag memory 56, and assigns a motion vector of a peripheral pixel of the pixel of interest to a violated target pixel to which a motion vector is not allocated by the vector allocation unit 54. And allocates the data on the interpolation frame of the allocation vector memory 55. At this time, the allocation compensating unit 57 rewrites the allocation flag of the target pixel to which the motion vector has been allocated to l (True). Details of the configuration of the allocation compensating unit 57 will be described later.
  • the image interpolation unit 58 interpolates the pixel values of the interpolation frame using the motion vector allocated to the interpolation frame in the allocation vector memory 55, and the pixel values of the frame t and the next frame t + 1. Generate. Then, the image interpolation unit 58 outputs the generated interpolation frame, and then outputs the frame t + 1 as necessary, thereby outputting the image of the 60P signal to a subsequent stage (not shown). .
  • a pixel value is also appropriately referred to as a luminance value.
  • FIG. 3 is a diagram illustrating the principle of processing in the signal processing device 1 according to the present invention.
  • the dotted line represents the frame of the 24P signal input to the signal processing device 1 at times t, t + 1, and t + 2
  • the solid line represents the signal of the input 24P signal. Representing the interpolated frames of the 60P signal at times t, t + O. 4, t + O. 8, t + 1.2, t + 1.6, and t + 2 generated by processor 1! /, You.
  • the interpolated frame of the generated 60P signal has the same time order as that on the 24P signal, SO. 0, 0.4, 0.8, 1.2, And 1.6.
  • 4 frames (frames of t + 0.4, t + 0.8, t + 1.2, and t + 1.6) excluding one frame at time t whose time phase is 0.0 are 24P This is an image that does not exist on the signal.
  • the signal processing device 1 when the image of the 24P signal is input, the signal processing device 1 generates four interpolation frames from the two frames at the time t and the time t + 1 of the 24P signal. Therefore, the signal processing device 1 outputs a 60P signal image including five frames at times t, t + 0.4, t + 0.8, t + 1.2, and t + 1.6.
  • the signal processing device 1 executes a process of converting a frame frequency from a 24P signal image to a 60P signal image.
  • FIG. 4 is a diagram for more specifically explaining the processing of the present invention.
  • the thick arrows indicate transitions to the respective states
  • the arrow T indicates the direction in which time elapses in the states 81 to 85.
  • states 81 to 85 indicate a frame t at time t of a 24P signal, a frame t + 1 at time t + 1 next to time t, or a frame t + 1 at the time of input / output to each unit configuring the signal processing device 1.
  • the state 81 indicates the state of the frame t and the frame t + 1 of the 24P signal input to the vector detection unit 52.
  • the black dots on frame t in state 81 represent pixels on frame t.
  • the vector detection unit 52 detects the position to which the pixel moves on the frame t + 1 in the next time at the frame t + 1 at the next time, and detects the movement as shown on the frame t in the state 82. Output as a motion vector corresponding to each pixel.
  • a method of detecting a motion vector between the two frames As a method of detecting a motion vector between the two frames, a block matching method, a gradient method, or the like is used. At this time, when a plurality of motion vectors are detected for the pixel, the vector detection unit 52 obtains an evaluation value, which will be described later, for each motion vector, and selects a motion vector based on the evaluation value.
  • State 82 represents the state of frame t and frame t + 1 input to vector allocating section 54.
  • the arrow of each pixel of the frame t represents the motion vector detected by the vector detection unit 52.
  • the vector allocating unit 54 extends the motion vector detected for each pixel of the frame t in the state 82 to the next frame t + 1, and sets a predetermined time phase (for example, FIG. Find the position on the interpolation frame F at t + O. 4). This is because, assuming that there is a constant movement between the frame t and the frame t + 1, the motion vector is the point force passing through the inner frame F, which is the pixel position in that frame. Therefore, the vector allocating unit 54 allocates the passing motion vector to the four nearest pixels on the interpolation frame F in the state 83. At this time, depending on the pixel of the interpolation frame, there is a case where no motion vector exists or a case where a plurality of motion vectors can be an allocation candidate. In the latter case, the vector allocating unit 54 obtains an evaluation value for each motion vector, similarly to the vector detection unit 52, and selects a motion vector to be allocated based on the evaluation value.
  • a predetermined time phase for example, FIG. Find the position
  • the state 83 represents the state of the frame t and the frame t + 1 and the state of the interpolated frame F to which the motion vector is allocated, which is input to the allocation compensating unit 57.
  • a pixel to which a motion vector is allocated by the vector allocating unit 54 and a pixel to which a motion vector is not allocated are shown.
  • the allocation compensating unit 57 determines whether the motion vector in the state 83 is not allocated to a pixel. The compensation is made using the motion vectors assigned to the peripheral pixels of the pixel. This is because, if it is assumed that the vicinity of a given pixel has the same motion, the motion vector of the pixel surrounding the pixel of interest and the motion vector of the pixel of interest are similar. As a result, even to the powerful pixels to which no motion vector is assigned, a somewhat accurate motion vector is given, and the motion vector is assigned to all the pixels on the interpolation frame F in the state 84.
  • the allocation compensating unit 57 obtains an evaluation value for each motion vector in the same manner as the vector allocation unit 54, and based on the evaluation value. Select the motion vector to be assigned.
  • the state 84 represents the state of the frame t and the frame t + 1, and the state of the interpolated frame F in which the motion vectors are assigned to all the pixels, which are input to the image interpolation unit 58. Based on the motion vectors assigned to all these pixels, the image interpolation unit 58 determines the positional relationship between the pixels on the interpolation frame F and the two frames t and t + 1. be able to. Therefore, the image interpolation unit 58 uses the motion vector allocated on the interpolation frame F and the pixel values of the frame t and the frame t + 1 as shown in the black point of the internal frame F in the state 85 as follows. Interpolate and generate pixel values on interpolation frame F. Then, the image interpolation unit 58 outputs the generated interpolation frame, and then outputs the frame t + 1 as necessary, thereby outputting the image of the 60P signal to a subsequent stage (not shown). .
  • each unit (the vector detection unit 52, the vector allocation unit 54, and the allocation compensation unit 57) of the signal processing device 1 selects a motion vector that is optimal for the subsequent processing.
  • a sum of absolute differences (DFD) representing a correlation value between blocks shifted by a vector amount of interest of two frames (DFD (Displaced Frame Difference)) ) Is used.
  • Ft (p) represents the luminance value of the pixel position p at time t
  • mXn represents the DFD calculation range (block) for obtaining the sum of absolute differences. Since this sum of absolute differences represents the correlation value between the DFD calculation ranges (blocks) in two frames, generally, the smaller the sum of absolute differences is, the more the waveforms of the blocks between frames match. Therefore, it is determined that the smaller the sum of absolute differences is, the higher the reliability of the motion vector V is. As a result, the sum of absolute differences is used when a most probable motion vector is selected from a plurality of candidates.
  • evaluation value DFD the sum of absolute differences
  • step S1 the vector detection unit 52 inputs the frame value t + 1 of the input image at time t + 1 and the pixel value of the frame t at time t immediately before the input image in the frame memory 51, and executes step S1. Proceed to S2. At this time, the vector allocating unit 54, the allocating compensating unit 57, and the image interpolating unit 58 determine the frame t + 1 of the input image at the time t + 1 and the frame t at the time t immediately before the input image of the frame memory 51. Is input.
  • step S2 the vector detection unit 52 executes a motion vector detection process, and proceeds to step S3. That is, the vector detection unit 52 detects a motion vector between the focused block of the frame t on the frame memory 51 and the target block of the next frame t + 1 which is the input image, and converts the detected motion vector into the detected vector.
  • the data is stored in the memory 53, and the process proceeds to step S3.
  • the motion vector between these two frames can be detected using the gradient method or block matching. Method is used.
  • an evaluation value DFD is obtained for each motion vector, and a motion vector with high reliability based on the obtained evaluation value DFD is detected. That is, in this case, the most probable motion vector is selected and detected in the target program for detecting the motion vector. Details of the motion vector detection processing in step S2 will be described later.
  • step S3 the vector allocating unit 54 executes a vector allocating process, and proceeds to step S4. That is, in step S3, the vector allocating unit 54 allocates the motion vector obtained on the frame t to the target pixel on the interpolation frame to be interpolated on the allocation vector memory 55, and assigns the pixel to which the motion vector is allocated. Rewrite the allocation flag in the allocation flag memory 56 to l (True). For example, an allocation flag of True indicates that a motion vector is allocated to the corresponding pixel, and an allocation flag of False indicates that no motion vector is allocated to the corresponding pixel.
  • an evaluation value DFD is obtained for each motion vector, and the reliability of the motion vector is high based on the obtained evaluation value DFD!
  • a vector is allocated. That is, in this case, the most probable motion vector is selected and assigned to the target pixel to which the motion vector is assigned. Details of the vector allocation processing in step S3 will be described later.
  • step S4 the allocation compensating unit 57 executes an allocation compensating process, and proceeds to step S5. That is, in step S4, the allocation compensating unit 57 refers to the allocation flag of the allocation flag memory 56, and assigns a target pixel to which a motion vector has not been allocated by the vector allocation unit 54 to a peripheral pixel of the pixel of interest. The motion vector is supplemented and allocated on the interpolation frame in the allocation vector memory 55. At this time, the allocation compensating unit 57 supplements the motion vector and rewrites the allocated flag of the allocated target pixel to l (True).
  • step S5 the image interpolation unit 58 executes an image interpolation process. That is, the image interpolation unit 58 uses the motion vector allocated to the interpolated frame in the allocation vector memory 55 and the pixel values of the frame t and the frame t + 1 in step S5 to calculate the internal frame. The pixel value is generated by interpolation, and the process proceeds to step S6.
  • the image interpolating unit 58 outputs the interpolated frame generated in step S6, and then outputs the frame t + 1 as necessary, so that the image of the 60P signal is not shown. Output to the subsequent stage, and proceed to step S7.
  • step S7 the vector detection unit 52 determines whether or not processing of all frames has been completed. If it is determined that processing of all frames has not been completed, the process returns to step S1. Is repeated. On the other hand, if it is determined in step S7 that the processing of all the frames has been completed, the vector detecting unit 52 ends the processing of converting the frame frequency.
  • the signal processing device 1 detects a motion vector from a frame of an input image of a 24P signal, and assigns the detected motion vector to a pixel on the frame of the 60P signal. Based on the assigned motion vector, a pixel value on the frame of the 60P signal is generated. At this time, in each process, the signal processing device 1 selects a motion vector with higher reliability based on the evaluation value DFD (sum of absolute differences) and outputs it to the subsequent stage. Therefore, in the signal processing device 1, it is possible to suppress the breakdown of the motion and the like, and to generate a more accurate image.
  • DFD sum of absolute differences
  • FIG. 7 is a block diagram showing a configuration of the image interpolation unit 58.
  • the image interpolation unit 58 shown in FIG. 7 uses the motion vector allocated to the interpolation frame in the allocation vector memory 55 and the pixel values of the frame t and the frame t + 1 to calculate the pixel value of the interpolation frame. Performs interpolation and generates a 60P signal image.
  • the frame t of the image at time t is input to the spatial filter 92-1.
  • the frame t + 1 of the image at time t + 1 is input to the spatial filter 92-2 and the buffer 95. .
  • the interpolation control unit 91 selects a pixel of the interpolation frame in the allocation vector memory 55, and selects the selected pixel. Based on the motion vector assigned to the pixel, the positional relationship (spatial shift amount) between the pixel on the interpolated frame and the two frames t and t + 1 is calculated. That is, the interpolation control unit 91 calculates, based on the pixel of the interpolation frame, the position on the frame t associated with the motion vector and the position of the pixel on the frame t corresponding to the pixel of the interpolation frame. The spatial shift amounts are obtained, and the obtained spatial shift amounts are supplied to the spatial filter 92-1.
  • the interpolation control unit 91 determines the position on the frame t + 1 associated with the motion vector, based on the pixel of the interpolation frame, and the pixel on the frame t + 1 corresponding to the pixel of the interpolation frame.
  • the spatial shift amounts are obtained from the positions, and the obtained spatial shift amounts are supplied to the spatial filter 92-2.
  • the interpolation control unit 91 obtains an interpolation weight between the frame t and the frame t + 1 based on a preset time phase (time) of the interpolation frame, and calculates the obtained interpolation weight as Set the multipliers 93-1 and 93-2.
  • the interpolation control unit 91 sets the interpolation weight of "1-k” to the multiplier 93-1 Then, the interpolation weight of “k” is set to the multiplier 93-2.
  • the spatial filters 92-1 and 92-2 are composed of, for example, cubic filters.
  • the spatial filter 92-1 determines a pixel value of a pixel on the frame t based on the input pixel value of the frame on the frame t and a spatial shift amount supplied from the interpolation control unit 91.
  • the pixel value is obtained, and the obtained pixel value is output to the multiplier 93-1.
  • the spatial filter 9 2-2 based on the pixel value of the pixel on the input frame t + 1 and the spatial shift amount supplied from the interpolation control unit 91, converts the pixel on the frame t + 1 corresponding to the pixel of the interpolation frame. And outputs the obtained pixel value to the multiplier 93-2.
  • the spatial filters 92-1 and 92-2 use the pixel values of the surrounding 4 pixels at the pixel position of the interpolated frame in frame t or frame t + 1 to calculate the distance between the surrounding 4 pixels.
  • the image of the interpolation frame can be calculated.
  • the pixel value on the frame corresponding to the element is obtained. That is, the value of the pixel value at the position below the pixel is obtained by linear interpolation based on the distance from the four surrounding pixels (the details will be described later).
  • the multiplier 93-1 multiplies the pixel value on the frame t input from the spatial filter 92-1 by the interpolation weight “1 ⁇ k” set by the interpolation control unit 91, and is weighted.
  • the pixel value is output to the adder 94.
  • the multiplier 93-2 multiplies the pixel value on the frame t + 1 input from the spatial filter 92-2 by the interpolation weight “k” set by the interpolation control unit 91, and outputs the weighted pixel value. , To the adder 94.
  • the adder 94 generates the pixel value of the pixel of the interpolation frame by adding the pixel value input from the multiplier 93-1 and the pixel value input from the multiplier 93-1.
  • the pixel value of the generated interpolation frame is output to the buffer 95.
  • the buffer 95 buffers the input frame t + 1.
  • the buffer 95 outputs the generated interpolated frame, and then outputs the frame t + 1 that is being knocked out, as necessary, based on the preset time phase (time) of the 60P frame.
  • the image of the 60P signal is output to a subsequent stage (not shown).
  • step S51 the interpolation control unit 91 determines the interpolation weight (for example, “k” and “1”) of the interpolation frame between the frame t and the frame t + 1 based on the time phase of the interpolation frame to be processed. —K ”), and the obtained interpolation weights are set in the multipliers 93-1 and 93-2, respectively, and the flow advances to step S52.
  • step S52 the interpolation control unit 91 selects a pixel of the interpolation frame in the allocation vector memory 55, and proceeds to step S53. The pixels on the inner frame are selected in raster scan order from the upper left pixel of the frame.
  • step S53 based on the motion vector allocated to the selected pixel, the interpolation control unit 91 determines the positional relationship between the pixel on the interpolated frame, the two frames t, and the pixel of frame t + 1. (Spatial shift amounts) are obtained, and the obtained space shift amounts are supplied to the spatial filters 92-1 and 92-2, respectively, and the process proceeds to step S54. Specifically, in step S53, the interpolation control unit 91 determines, based on the pixel of the interpolation frame, the position on the frame t associated with the motion vector and the pixel of the interpolation frame. The spatial shift amount is obtained from the position of the pixel on the frame t, and the obtained spatial shift amount is supplied to the spatial filter 92-1.
  • the interpolation control unit 91 calculates the position on the frame t + 1 associated with the motion vector and the position of the pixel on the frame t + 1 corresponding to the pixel of the interpolation frame. From these, the spatial shift amounts are obtained, and the obtained spatial shift amounts are supplied to the spatial filter 92-2.
  • the pixel value of frame t of the image at time t is input to spatial filter 92-1.
  • the pixel value of frame t + 1 of the image at time t + 1 is input to spatial filter 92-2.
  • the spatial filters 92-1 and 92-2 determine the inner frame based on the pixel values of the pixels on the input frames t and t + 1 and the spatial shift amount supplied from the interpolation control unit 91.
  • a pixel value on each frame corresponding to the pixel is obtained, and the obtained pixel value is output to multipliers 93-1 and 92-2, respectively, and the process proceeds to step S55.
  • step S55 the multipliers 93-1 and 93-2 add the interpolation weight set by the interpolation control unit 91 to the pixel value on each frame input from the spatial filter 92-1 or 92-2. , And the weighted pixel value is output to the adder 94, and the process proceeds to step S56. That is, the multiplier 93-1 multiplies the pixel value on the frame t input from the spatial filter 92-1 by the interpolation weight “1 k” set by the interpolation control unit 91, and outputs the weighted pixel value. , To the adder 94.
  • the multiplier 93-2 multiplies the pixel value on the frame t + 1 input from the spatial filter 92-2 by the interpolation weight “k” set by the interpolation control unit 91, and adds the weighted pixel value. Output to the container 94.
  • step S56 the adder 94 adds the pixel value weighted by the multiplier 93-1 and the pixel value weighted by the multiplier 93-1 to thereby obtain the pixel value of the pixel of the interpolation frame. Is generated, and the generated pixel value is output to the buffer 95, and the process proceeds to step S57.
  • step S57 the interpolation control unit 91 determines whether or not processing has been completed for all pixels on the interpolation frame, and determines that processing has not been completed for all pixels on the interpolation frame. If so, the process returns to step S52, and the subsequent processes are repeated. When the interpolation control unit 91 determines in step S57 that the processing has been completed for all pixels on the interpolation frame, the image interpolation processing ends.
  • the interpolation frame In step S6 in FIG. 6 described above, the inner frame is output by the buffer 95, and then, if necessary, the frame t + 1 is output. Image output of 60P signal Output to the subsequent stage. Therefore, since the motion vector is assigned to the pixel of the interpolation frame from the most certainty, the interpolation frame can be generated with high accuracy.
  • FIG. 9 is a block diagram showing a configuration of the vector detection unit 52.
  • the solid state detection unit 52 having the configuration shown in FIG. 9 detects a motion vector on the frame t using the input frame t of the image at the time t and the frame t + 1 of the image at the time t + 1.
  • the processing of detecting the motion vector is executed for each predetermined block having a plurality of pixel forces.
  • the initial vector selecting unit 101 determines a motion vector having a high degree of reliability, which is also a detection result of a past motion vector, as an initial vector VO serving as an initial value used in the gradient method. Output to the modulo operation unit 103. More specifically, the initial vector selection unit 101 initializes the motion vector of the peripheral block obtained in the past stored in the detection vector memory 53 and the shift initial vector stored in the shift initial vector memory 107, Select as a vector candidate vector. Then, the initial vector selection unit 101 obtains the evaluation value DFD of the candidate vector using the frame t and the frame t + 1, and among the candidate vectors, the highest reliability based on the obtained evaluation value DFD is obtained. Select the higher one and output it as the initial vector VO. The details of the configuration of the initial vector selection unit 101 will be described later.
  • the pre-filters 102-1 and 102-2 are configured by a low-pass filter and a Gaussian filter, respectively, remove noise components of the frame t and frame t + 1 of the input image, and Output.
  • the iterative gradient method calculation unit 103 uses the initial vector V 0 input from the initial vector selection unit 101 and the frame t and the frame t + 1 input via the prefilters 102-1 and 102-2. , A motion vector Vn is calculated for each predetermined block by the gradient method.
  • the iterative gradient method calculation unit 103 outputs the initial vector VO and the calculated motion vector Vn to the vector evaluation unit 104.
  • the iterative gradient method operation unit 103 repeatedly performs the operation of the gradient method based on the evaluation result of the motion vector by the vector evaluation unit 104, and calculates the motion vector Vn. calculate.
  • the configuration of the iterative gradient method calculation unit 103 will be described later in detail.
  • the vector evaluation unit 104 obtains the motion vector Vn-1 (or the initial vector VO) from the iterative gradient method operation unit 103 and the evaluation value DFD of the motion vector Vn, and based on the obtained evaluation value DFD. Then, the iterative gradient method operation unit 103 is controlled to repeatedly execute the operation of the gradient method, and finally, a highly reliable one based on the evaluation value DFD is selected, and as the motion vector V, the detection vector memory is selected. Store in 53. At this time, the vector evaluation unit 104 supplies the motion vector V and the evaluation value DFD obtained for the motion vector V to the shift initial vector allocation unit 105.
  • the shift initial vector allocator 105 shifts the motion vector passing through the target block on the next frame to the target block. Also, it is set as a shift initial vector.
  • the shift initial vector allocating unit 105 shifts a motion vector having the same size and the same direction as the motion vector V, starting from the block of interest on the next frame at the same position as the end block of the motion vector V. Set as the initial vector. Then, the shift initial vector allocating unit 105 allocates the set shift initial vector to the shift initial vector memory 107 in association with the target block.
  • the shift initial vector allocating unit 105 stores the evaluation value DFD of the motion vector V allocated as the shift initial vector in the evaluation value memory 106 in association with the block of interest. This is compared with the evaluation value DFD of another motion vector V that passes through the same block of interest (that is, the end point is the block of the past frame at the same position as the block of interest). Then, the shift initial vector allocating unit 105 shifts the motion vector V determined to be highly reliable based on the evaluation value DFD to the target block, and sets the shift initial vector memory 107 as the shift initial vector of the target block. Assign to The details of the configuration of shift initial vector allocating section 105 will be described later.
  • the horizontal (vertical) and vertical (time difference) gradients are calculated as gx (x, y, t), gy (x, y, t), gt (x, y, t), the luminance value of the pixel after displacement is the Taylor
  • equation (2) By substituting equation (2) into equation (3), it is expressed by the following equation (4).
  • Equation (4) is a two-variable equation of vx and vy, so that a single equation for one pixel of interest cannot find its solution. Therefore, as described below, a block that is a peripheral region of a target pixel is considered as one processing unit, and it is assumed that all pixels in a block (peripheral region) perform the same motion (vx, vy). Make a similar formula. Assuming assumptions, an expression for the number of neighboring pixels for two variables is obtained. Therefore, these equations are made simultaneous to obtain (vx, vy) that minimizes the sum of the squares of the motion compensation frame differences of all the pixels in the block.
  • an arrow X indicates a horizontal direction
  • an arrow ⁇ indicates a vertical direction
  • the arrow ⁇ indicates the direction in which the time elapses from the frame t at the time t at the far right in the figure to the frame t + 1 at the time t + 1 at the front left.
  • each frame corresponds to a region around the pixel of interest p. As the lock), only the area of 8 pixels ⁇ 8 pixels used in the gradient method calculation is shown.
  • the motion vector V (vx, vy) of the pixel of interest P which is the fifth pixel down from the upper left pixel and the fifth pixel right, is calculated using the gradient method described above.
  • the motion vector V (vx, vy) is the difference in luminance (ie, gradient) ⁇ ) and Ay between the pixel of interest p and the adjacent pixels px and py determined in the x and y directions, respectively.
  • the difference (gradient) At in the luminance in the time direction from the pixel q located at the same phase as the pixel of interest P obtained at t + 1 is expressed by all of the peripheral area (8 pixels X 8 pixels) around the pixel of interest p. And the difference between them can be calculated by using equation (9).
  • the gradient method is to calculate the gradients ⁇ , ⁇ , and At between two frames, and to statistically calculate the obtained ⁇ , ⁇ , and At using the sum of squared differences. , And a motion vector V (vx, vy).
  • the vector detection unit 52 calculates the initial vector obtained based on the movement of the peripheral pixels in the past frame and the current frame.
  • the number of repetitions of the gradient method is reduced.
  • a large motion is calculated by adding an offset in advance from the pixel of interest, which is the starting point of the motion, to the point indicated by the initial vector, and the position force to which the offset is added is also calculated using the gradient method. By doing so, it is possible to perform fine adjustment including the movement of pixels or less. This makes it possible to detect a highly accurate motion vector without increasing the operation time.
  • FIG. 11 is a diagram specifically illustrating an iterative gradient method executed using an initial vector.
  • an arrow T indicates a lapse of time from a frame t at a time t on the left front to a frame t + 1 at a time t + 1 on the right rear in the figure.
  • each pixel p, qO , ql, q2, and q3 represent the peripheral area (block) of the pixel used in the gradient method operation.
  • the initial vector ⁇ obtained in advance is not the pixel qO located in the same phase as the pixel of interest p.
  • the first gradient method operation is performed starting from the position (pixel) ql calculated by offset (moving), and as a result, a motion vector vl is obtained.
  • V v0 + vl + v2
  • the frame t of the input image at time t and the frame t + 1 of the image at time t + 1 are input to the vector detection unit 52.
  • step S101 the initial vector selection unit 101 selects a block to be processed on the frame t as a target block, and proceeds to step S102. Note that, on the frame, the processing is executed in raster scan order from the upper left block color.
  • step S102 the initial vector selection unit 101 executes an initial vector selection process.
  • step S101 the initial vector selection unit 101 selects a motion vector with high reliability from the detection result of the past motion vector for each predetermined block, and sets the selected motion vector as an initial value used for the gradient method.
  • the initial vector VO is output to the iterative gradient method calculation unit 103, and the process proceeds to step S103.
  • the initial vector selection unit 101 determines the motion vector of the peripheral block obtained in the past gradient method operation evaluation process (step S103 described later) and stored in the detection vector memory 53,
  • the shift initial vector stored in the shift initial vector memory 107 in the initial vector allocating process (step S104 to be described later) is used as an initial vector candidate. Select as a vector.
  • the initial vector selection unit 101 obtains the evaluation value DFD of the candidate vector using the frame t and the frame t + 1, and selects a candidate vector having high reliability based on the obtained evaluation value DFD from the candidate vectors.
  • the selected candidate vector is output as the initial vector VO.
  • the details of the initial vector selection process in step S102 will be described later.
  • step S103 the iterative gradient method operation unit 103 and the vector evaluation unit 104 execute an iterative gradient method operation evaluation process (also referred to as an iterative gradient method operation process), and then proceed to step S104. More specifically, in step S103, the iterative gradient method operation unit 103 determines whether the initial vector V0 input from the initial vector selection unit 101 and the frames t and Using the frame t + 1, the operation of the gradient method is repeated based on the evaluation result of the motion vector by the vector evaluation unit 104 to calculate the motion vector Vn. The vector evaluation unit 104 obtains the motion vector Vn-l from the iterative gradient method operation unit 103 and the evaluation value DFD of the motion vector Vn, and obtains the most reliable one based on the obtained evaluation value DFD.
  • an iterative gradient method operation evaluation process also referred to as an iterative gradient method operation process
  • the vector evaluation unit 104 supplies the motion vector V and the evaluation value DFD obtained for the motion vector V to the shift initial vector allocation unit 105.
  • the details of the iterative gradient method calculation processing in step S103 will be described later.
  • step S104 shift initial vector allocating section 105 executes a shift initial vector allocating process, and proceeds to step S105.
  • the shift initial vector allocation unit 105 proceeds to step S104! Then, the motion vector passing through the target block on the next frame is set as a shift initial vector shifted to the target block. That is, in other words, starting from the block at the end point of the motion vector V and the block of interest on the next frame with the same Cf standing as the starting point, the motion vector in the same direction and in the same direction as the motion vector V is shifted as the initial vector. Set. Then, the shift initial vector allocating unit 105 allocates the set shift initial vector to the shift initial vector memory 107 in association with the target block.
  • the shift initial vector allocating section 105 associates the evaluation value DFD of the motion vector V allocated as the shift initial vector with the evaluation value memory 106, and compared with the evaluation value DFD of another motion vector V that passes through the same block of interest (that is, the end point is a block of a past frame at the same position as the block of interest).
  • the motion vector V determined to be highly reliable is shifted to the block and set as a shift initial vector, and is assigned to the shift initial vector memory 107 in correspondence with the shifted block.
  • the details of the configuration of the shift initial vector allocating unit 105 will be described later.
  • step S105 the initial vector selection unit 101 determines whether or not processing of all blocks has been completed in the frame t, and when it is determined that processing of all blocks has not been completed, in step S101 And the subsequent processing is repeated. Also, in step S105, when the initial vector selection unit 101 determines that the processing of all the blocks has been completed in the frame t, that is, in all the blocks on the frame t, the motion vector V Is determined to have been detected, and the motion vector detection processing ends.
  • the motion vector force initial vector detected in the past is selected, and based on the selected initial vector, the repetitive motion vector is calculated by using the iterative gradient method. From the calculated motion vectors, a motion vector with high reliability (that is, most likely) based on the evaluation value DFD is detected. As a result, the motion vectors V corresponding to all the blocks on the frame t are stored in the detection vector memory 53.
  • FIG. 13 is a block diagram showing a configuration of shift initial vector allocating section 105.
  • the shift initial vector allocating unit 105 having the configuration shown in FIG. 13 is configured to determine a shift initial vector as a candidate vector of an initial vector based on the motion vector V detected by the vector evaluating unit 104 in the previous (past) frame. Then, a process of setting and assigning to the shift initial vector memory 107 is performed.
  • the motion vector V detected by the vector evaluation unit 104 and the evaluation value DFD of the motion vector V are input to the shift initial vector allocation unit 105.
  • the allocation target position calculation unit 201 determines whether the motion vector V detected by the vector evaluation unit 104 passes through the position of the block passing on the frame at the next time (ie, the motion vector V detected on the current frame). (The position of the block on the next frame at the same position as the block at the end point of the block), and stores the calculated block position in the evaluation value memory 106 and And a shift initial vector replacement unit 203.
  • the evaluation value comparison unit 202 stores the evaluation value DFD of the position of the block from the allocation target position calculation unit 201 in the evaluation value memory. Read from 106.
  • the evaluation value comparison unit 202 compares and determines the evaluation value DFD read from the evaluation value memory 106 with the evaluation value DFD of the motion vector V detected by the vector evaluation unit 104, and If it is determined that the evaluation value DFD of V is smaller (that is, the reliability is higher), the shift initial vector replacing unit 203 is controlled and supplied by the shift initial vector allocating unit 105 of the shift initial vector memory 107.
  • the shift initial vector of the block position is rewritten with the motion vector V determined to have high reliability based on the evaluation value DFD.
  • the evaluation value comparison unit 202 controls the evaluation value substitution unit 204, and stores the evaluation value DFD of the position of the block selected by the allocation target position calculation unit 201 in the evaluation value memory 106, and the motion vector V Rewrite with the evaluation value DFD of.
  • the shift initial vector replacement unit 203 compares the shift initial vector of the block position supplied by the allocation target position calculation unit 201 in the shift initial vector memory 107 with the motion vector V supplied from the evaluation value comparison unit 202. (That is, a motion vector having the same size and the same direction as the motion vector V). Under the control of the evaluation value comparison unit 202, the evaluation value replacement unit 204 converts the evaluation value DFD of the position of the block selected by the allocation target position calculation unit 201 into the evaluation value DFD of the motion vector V in the evaluation value memory 106. Rewrite with
  • the evaluation value memory 106 stores, for each block, an evaluation value DFD of a shift initial vector candidate assigned to each block on the next frame.
  • the shift initial vector memory 107 stores a motion vector having the smallest evaluation value DFD (that is, the most reliable) in each block in the next frame as a shift initial vector in association with the block.
  • FIG. 14 is a diagram for one-dimensionally explaining the shift initial vector allocated by shift initial vector allocation section 105.
  • the partitions on the frames indicate the boundaries of the blocks in each frame.
  • the motion vector detected in block B on frame t ⁇ l is a motion vector V (solid arrow in the figure), and the frame based on the motion vector V starting from block B
  • the motion compensation destination on t (hereinafter, also referred to as an offset destination) is a block Bt.
  • a motion vector obtained by shifting the motion vector V on the frame t-l to the block Bt on the frame t is defined as a shift initial vector SV (dotted arrow in the figure).
  • the offset destination indicates a block Bt on the frame t at the same position as the block at the end point of the motion vector V detected on the frame tl
  • the shift means the frame t-l.
  • the start point of the motion vector of the same size and the same direction as the motion vector V detected on l be the frame t on the same position as the end block of the motion vector V on frame t1.
  • Block Bt That is, the shift initial vector SV has the same size and the same size as the motion vector V starting from the block Bt on the frame t located at the same position as the end block of the motion vector V detected on the frame t-1.
  • Fig. 15 shows an example of a motion vector of a block through which a large-moving object passes and its surrounding blocks.
  • the image object of an object Ol which is one block force
  • is a motion vector VI of a large motion and is moved from the rightmost block (the ninth from the left) on the frame t1 to the frame t on the frame t1.
  • the image object of object 02 which has four blocks, has a motion vector V2 with a smaller motion than the motion vector VI
  • the third to sixth fourth blocks from the left move to the fifth to eighth fourth blocks from the left on frame t + 1 via the fourth to seventh fourth blocks on the frame t. That is, in the fifth block from the left on frame t, the image object of the object Ol and the image object of the object 02 intersect with the image object of the object Ol in front.
  • the initial vectors of the dynamics of the peripheral blocks are also extracted.
  • the image object of object 02 passes through a different motion vector V2 from the image object of object Ol in the surrounding block (the block with the left force of 4th or 6th)
  • the appropriate motion vector is ,not exist.
  • the initial shift vector SV1 (the dotted arrow in the figure) is obtained by converting the motion vector VI detected on the past frame T-1 into the fifth on the frame t from the left.
  • the motion vector shifted to the block that is, the same size as the motion vector VI starting from the block on frame t at the same Cf as the end block of the motion vector VI detected on frame tl) And the motion vector in the same direction), it is possible to reliably acquire the motion vector.
  • Fig. 16 shows an example of a motion vector of a block at the boundary of a moving object and its surrounding blocks.
  • the image object of an object 03 consisting of one block is represented by a motion vector V3, from the sixth block from the left on the frame t—l to the fifth block from the left on the frame t. Via to the fourth block from the left on frame t + 1.
  • the image object of the object 04 composed of nine or more blocks has a motion vector V4 different from the motion vector VI, and from the all nine blocks on the frame t ⁇ l, the second to ninth ninth 8 on the frame t from the left. It moves to the third to ninth seven blocks from the left on frame t + 1 via the block.
  • the image object of the object 03 is the image block of the object 04 in the sixth block from the left of the frame t-l, the fifth block from the left on the frame t, and the fourth block from the left of the frame t + 1. Passing in front of the object.
  • the initial vectors are also extracted from the dynamics of the peripheral blocks. Attempting to move the image object of object 04 differently from the image object of object 03 in the surrounding blocks (the fourth block also has the left force). There is no suitable motion vector because it is passing by Tuttle V4. However, in this case as well, as in the case of FIG. 15, the shift initial vector SV3 (dotted arrow in the figure) is obtained by replacing the motion vector V3 detected on the past frame T-1 with that on the frame t.
  • the vector shifted to the fifth block that is, the motion vector V3 starting from the block on frame t at the same Cf as the end block of the motion vector V3 detected on frame t-1) (The motion vector is the same size and the same direction as the motion vector), so that it can be reliably obtained.
  • an object having a large motion as shown in FIG. 15 or a motion vector as shown in FIG. 16 is to be detected at a boundary between a moving object and a moving object as shown in FIG.
  • a motion vector that is optimal as an initial vector of a target block does not exist in a peripheral block that is a candidate for an initial vector of the target block.
  • the shift initial vector has the same size as the motion vector starting from the block on frame t at the same position as the end point block of the motion vector detected on past frame t-l. Since the motion vectors are in the same direction, they do not depend on the spatial distance between the blocks. Therefore, even if there is no appropriate motion vector as the initial vector of the target block in the peripheral block, the motion vector can be reliably obtained. Can be used as an optimal candidate.
  • the shift initial vector allocating unit 105 determines, at the time of detecting the motion vector in the frame t-1, the position of the block passing on the frame t at the next time at the motion vector V force detected in the target block Bt. That is, a block on the frame t at the same position as the end block of the motion vector V) is obtained, and the motion vector V It is assigned in advance as the period vector sv. This makes it possible to reduce the amount of calculation for searching for a shift initial vector necessary for detecting a motion vector on the frame t, thereby realizing hardware implementation. It can be used as an initial solid candidate.
  • the arrow T indicates the lapse of time from the frame t—l at the time t—l on the left front to the frame t at the time t on the right back in the figure.
  • the circle on each frame represents a pixel.
  • the block BO is composed of 4 x 4 pixels.
  • the motion vector Vb detected in the block BO is the offset destination where the block BO is offset (motion compensated) on the frame t (the block on the frame t at the same position as the end block of the motion vector Vb of the block BO)
  • AO Generally has an overlap with four blocks Btl to Bt4 composed of 4 ⁇ 4 pixels on the frame t. Therefore, in the case of the example of FIG. 17, all of the four blocks Btl to Bt4 overlapping with the offset destination AO are the target blocks to which the motion vector Vb is allocated as the shift initial vector.
  • the motion vector detected in the previous frame as described above is allocated as a shift initial vector.
  • the position of the block to be allocated depends on the size and direction of the motion vector. Therefore, depending on the distribution of the motion vectors detected on the frame t ⁇ l, as shown in FIG. 18, on the frame t, a plurality of shift initial vectors are to be allocated, and there are conflicting blocks, In addition, if the initial vector of shift is not allocated, a block occurs.
  • FIG. 18 shows an example of allocation of shift initial vectors.
  • the partition of each frame indicates the boundary of the block.
  • the frame t-l includes blocks B1 to B5 from the left in the figure, and the frame t has the left in the figure on the frame t. Shows the block Btlno to Bt5.
  • the motion vector VI is detected, and the offset destination A1 of the block B1 overlaps the blocks Btl and Bt2 on the frame t.
  • the motion vector V2 is detected, and the offset destination A2 of the block B2 is the block Bt on the frame t. It overlaps 1 and Bt2.
  • the motion vector V3 is detected, and the offset destination A3 of the block B3 overlaps the blocks Bt4 and Bt5 on the frame t.
  • the motion vector V4 is detected, and the offset destination A4 of the block B4 overlaps the blocks Bt4 and Bt5 on the frame t.
  • the motion vector V5 is detected, and the offset destination A5 of the block B5 overlaps with the block Bt5 on the frame t and an adjacent block (not shown).
  • one of the motion vectors VI and V2 is allocated to the blocks Btl and Bt2 on the frame t as the shift initial vector.
  • One of the motion vectors V3 and V4 is assigned as a shift initial vector to the block Bt4 on the frame t
  • one of the motion vectors V3, V4, and V5 is assigned to the block Bt5 on the frame t.
  • block Bt3 on frame t there is no motion vector that is a candidate for a shift initial vector, and no shift initial vector is assigned.
  • the shift initial vector allocating unit 105 allocates the 0 vector as the shift initial vector to the block in which the shift initial vector is not allocated, as in the block Bt3.
  • the shift initial vector allocating unit 105 determines a motion vector with a high reliability based on the above-described evaluation value DFD for a block where a plurality of motion turtles compete, such as blocks Btl, Bt2, Bt4, and Bt5. Select a vector and assign the selected motion vector to each block as the initial shift vector.
  • the offset destination A is shown with a slight shift on the frame t.
  • FIG. 19 is a diagram showing an example of competing motion vectors.
  • the motion vectors VI and V2 detected from the blocks B1 and B2 on the frame tl pass through the block Bt on the frame t. That is, the block Bt is a block on the frame t where the end point of the motion vector VI on frame t1 is the same as the end point on the frame C-1. Block on frame t.
  • the evaluation value DFD1 for the motion vector VI and the evaluation value DFD2 for the motion vector V2 are compared.
  • the one with the smaller evaluation value DFD that is, the one with the higher reliability
  • the shift initial vector SV2 corresponding to the block Bt.
  • step S201 the evaluation value comparison unit 202 inputs the motion vector V and the evaluation value DFD of the motion vector V from the vector evaluation unit 104.
  • the allocation target position calculation unit 201 also inputs the motion vector V, and proceeds to step S202.
  • the allocation target position calculation unit 201 obtains the position of the allocation target block at the offset (motion compensation) destination in the frame t of the motion vector V. That is, the allocation target position calculation unit 201 obtains the position of the block on the frame t at the same position as the block at the end point of the motion vector V detected on the frame t-1, and proceeds to step S203.
  • step S203 the allocation target position calculation unit 201 selects one allocation target block from the allocation target blocks obtained, and stores the position of the selected allocation target block in the evaluation value memory 106 and the shift initial vector.
  • Nozzle replacement ⁇ 203 [Supply, step S204 [Proceed.
  • the blocks to be allocated are sequentially selected from the upper left block on frame t among the blocks to be allocated.
  • step S204 the evaluation value comparison unit 202 acquires the evaluation value DFD of the allocation target block selected by the allocation target position calculation unit 201 from the evaluation value memory 106, and proceeds to step S205. Whether the evaluation value DFD of the motion vector V input in step S201 is smaller than the evaluation value DFD of the evaluation value memory 106 (that is, the evaluation value DFD of the motion vector V is smaller than the evaluation value DFD of the evaluation value memory 106) It is determined whether the reliability is high or not. If it is determined that the evaluation value DFD of the evaluation value DFD of the motion vector V is smaller than the evaluation value DFD of the evaluation value memory 106, the process proceeds to step S206.
  • step S206 the evaluation value comparison unit 202 controls the shift initial vector replacement unit 203 to divide the shift initial vector memory 107 selected by the allocation target position calculation unit 201.
  • the shift initial vector of the block to be attached is rewritten to a motion vector V (that is, a motion vector having the same size and the same direction as the motion vector V), and the process proceeds to step S207 to control the evaluation value replacing unit 204 to
  • the evaluation value DFD of the allocation target block selected by the position calculation unit 201 is rewritten with the evaluation value DFD of the motion vector V, and the process proceeds to step S208.
  • the evaluation value comparison unit 202 determines in step S205 that the evaluation value DFD of the motion vector V input in step S201 is not smaller than the evaluation value DFD stored in the evaluation value memory 106. Then, the process of steps S206 and S207 is skipped, and the process proceeds to step S208. That is, in this case, it is determined that the reliability is higher than the evaluation value DFD of the evaluation value DFD of the evaluation value memory 106 and the evaluation value DFD of the motion vector V. Therefore, the values of the evaluation value memory 106 and the shift initial vector memory 107 are rewritten. What can be done! / ,.
  • step S208 the allocation target position calculation unit 201 determines whether or not the processing has been completed for all the blocks to be allocated with the motion vector V, and has determined that the processing for all of the allocation target blocks has not been completed. In this case, the process returns to step S203, and the subsequent processes are repeated.
  • the allocation target position calculation unit 201 determines in step S208 that the processing of all the allocation target blocks of the motion vector V has been completed, the shift initial vector allocation processing ends.
  • the initial shift vector force corresponding to the selected allocation target block has not been stored in the initial shift vector memory 107 yet. Therefore, if the evaluation value DFD of the shift initial vector has not been stored in the corresponding allocation target block of the evaluation value memory 106, the evaluation value DFD from the selected allocation target block is determined in step S204. Since it is not acquired, it is determined to be Yes in step S205, and the processes in steps S206 and S207 are executed.
  • the amount of motion of the moving object has a certain degree of continuity between consecutive frames, and the change in the amount of motion is small.
  • the motion vector passing through the target block of the frame at the next time that is, at the same position as the block at the end point of the motion vector V detected on the past frame
  • Movement starting from the block on the next frame By setting the shift initial vector that is the same size and the same direction as the vector V in the same direction as the candidate vector of the initial vector, only the motion vector previously obtained in the peripheral block in the past is obtained as in the past.
  • the motion vector detected in the frame at the previous time passes through the block passing through in the frame at the next time (that is, the motion vector V detected on the frame t1).
  • the block on the frame t at the same position as the block at the end point) is obtained and assigned as the shift initial vector in the block of interest on the frame at the next time, so that the motion vector passing through the block of interest is Since the computational complexity of the processing is reduced as compared with the case where the motion vector forces of all the blocks of the frame at the time are also searched, it is possible to realize hardware that was difficult to realize due to the huge computational complexity.
  • FIG. 21 is a block diagram showing a configuration of the initial vector selection unit 101.
  • An initial vector selection unit 101 having a configuration shown in FIG. 21 is configured to obtain a motion vector with high reliability from a motion vector detected in a previous (past) frame or a candidate vector such as a shift initial vector (hereinafter also referred to as an initial candidate vector). Is selected as an initial vector.
  • the frame t of the image at time t and the frame t + 1 of the image at time t + 1 are input to the initial vector selection unit 101.
  • the candidate vector position calculation unit 251 selects a target block to be processed on the frame t, and acquires an initial candidate vector of the target block from a peripheral region of the target block.
  • the position of the candidate block, the type and priority of the motion vector serving as the initial candidate vector are obtained, and the position information of the candidate block and the type information of the initial candidate vector are obtained in the order of the obtained priority in the detection vector obtaining unit 252 and the shift initial position.
  • the candidate vector position calculation unit 251 also supplies the position information of the candidate block to the offset position calculation unit 254.
  • the number of initial candidate vectors is set to a predetermined number based on a balance between the accuracy of the initial vectors and hardware capabilities, and the like.
  • the type and priority of the candidate vector are also set in advance, for example, as described later with reference to FIG.
  • the type of the initial candidate vector is a motion vector obtained by shifting a motion vector passing through a predetermined block in the past frame to the predetermined block (i.e., the end point of the motion vector detected in the past frame).
  • a shift initial vector SV which is a motion vector of the same size and in the same direction as the motion vector V, starting from the block on the next frame in the same Cf position as the block of Cf, and the motion vector detected in the past frame (
  • a motion vector also referred to as a current vector CV
  • a zero vector there are a motion vector (also referred to as a current vector CV) detected in a block before the block of interest in the current frame.
  • the candidate vector position calculation unit 251 detects the position information of the candidate block and the type information of the initial candidate vector. If the type of the initial candidate vector obtained is supplied to the vector acquisition unit 252 and the obtained type of the initial candidate vector is the shift initial vector, the position information of the candidate block and the type information of the initial candidate vector are supplied to the shift initial vector acquisition unit 253. If neither of them is satisfied (for example, if the type of the initial candidate vector is 0), a 0 vector is set, and the position information of the candidate block is supplied to the offset position calculator 254 together with the 0 vector. .
  • the detection vector acquisition unit 252 acquires from the detection vector memory 53 a motion vector corresponding to the position information of the candidate block and the type information of the initial candidate vector supplied by the candidate vector position calculation unit 251.
  • the motion vector is output to the offset position calculation unit 254 as an initial candidate vector.
  • the shift initial vector acquisition unit 253 calculates a shift initial vector corresponding to the candidate block position information in accordance with the candidate block position information and the initial candidate vector type information supplied by the candidate vector position calculation unit 251. It is obtained from the shift initial vector memory 107 and output to the offset position calculation unit 254 as an initial candidate vector. Also, the shift initial vector acquisition unit 253 determines the position of the block specified by the candidate vector position calculation unit 251. If the shift initial vector is not assigned to the position, the zero vector is output to the offset position calculation unit 254. When the shift initial vector is not allocated, it may be stored in the zero vector force shift initial vector memory 107 in advance.
  • the offset candidate position calculation unit 254 receives an initial candidate vector (or 0 bits from the candidate vector position calculation unit 251) from the detected vector acquisition unit 252 or the shift initial vector acquisition unit 253, the candidate vector position calculation unit Based on the position information of the candidate block supplied by 251, for each initial candidate vector, the block position of the offset destination in which the target block of frame t is offset (motion compensated) to frame t + 1 is calculated. Then, the offset position calculator 254 outputs the position information of the candidate block and the information of the position of the offset destination block to the evaluation value calculator 255 together with the initial candidate vector.
  • the evaluation value calculation unit 255 uses the frame t and the frame t + 1, Find the evaluation value DFD of the initial candidate vector. Then, the evaluation operation unit 255 outputs the obtained evaluation value DFD together with the initial candidate vector to the evaluation value comparison unit 256.
  • the evaluation value comparison unit 256 compares the evaluation value DFD input by the evaluation value calculation unit 255 with the evaluation value DFD of the optimal candidate vector stored in the optimal candidate storage register 257, and calculates the evaluation value. If the evaluation value DFD of the initial candidate vector input by the unit 255 is smaller than the evaluation value DFD of the optimal candidate vector, that is, if it is determined that the initial candidate vector has higher reliability than the optimal candidate vector, the optimal The optimal candidate vector and its evaluation value DFD in the candidate storage register 257 are replaced with the initial candidate vector and its evaluation value DFD determined to have high reliability! Then, finally, the evaluation value comparison unit 256 controls the optimal candidate storage register 257, and among all the candidate vectors, the optimal candidate vector determined to have the highest reliability based on the evaluation value DFD is determined. , As the initial vector VO.
  • the optimum candidate storage register 257 stores the initial candidate vector for which the evaluation value DFD is determined to be small (high reliability) by the evaluation value comparison unit 256 as an optimal candidate vector together with the evaluation value DFD. Have been.
  • the optimum candidate storage register 257 is provided in the evaluation value comparison unit. Under the control of 256, the optimal candidate vector finally stored is output to the iterative gradient method operation unit 103 as the initial vector VO.
  • FIG. 22 shows a peripheral area that can be a candidate block for an initial vector.
  • an arrow T indicates a direction in which time elapses from a past (previous) frame t1 at a time t1 on the left front to a current frame t at a time t on the right back in the figure.
  • the peripheral area that can be a candidate for the initial vector is composed of 7 blocks ⁇ 7 blocks centered on the target block Bt, and each block has a pixel count of 4 pixels ⁇ 4 pixels. It is composed of
  • the motion vector detection processing is executed in raster scan order from the upper left block of the frame. Therefore, in the motion vector detection process of the block of interest Bt of the current frame t, the initial vector selection unit 101 can use the results of the motion vector detection up to the immediately preceding block as candidates for the initial vector.
  • the peripheral area of the block of interest Bt is composed of a block CVB processed before the block of interest B and a block PVB processed after the block of interest Bt. Therefore, when obtaining the initial vector of the block of interest Bt, the initial candidate vector is the motion vector detected on the current frame t of the block CVB (current vector CV) and the motion vector detected on the past frame t1 of the block PVB. The strength of the motion vector (past PV) can also be selected. At this time, a shift initial vector assigned to a block in the same peripheral area can also be a candidate for an initial candidate vector.
  • FIG. 23 shows an example of an initial vector candidate block set in the candidate vector position calculation unit 251.
  • symbols of “alphanumeric Z numerals” are respectively shown, and eight predetermined block powers are set as candidate blocks from which initial candidate vectors are obtained.
  • RU The symbols before and after the diagonal lines shown in these eight predetermined blocks represent “type of initial candidate vector” and “priority”, respectively.
  • P represents the past vector PV detected in the past frame t1
  • C represents the current vector detected in the current frame t
  • S represents This represents the shift initial vector SV.
  • rs / lj in the target block is the shift initial vector S assigned to the target block Bt. This indicates that V is used as the initial candidate vector at the priority “1”.
  • ⁇ C / 2 '' in the block on the left of the block of interest Bt indicates that the current vector CV of that block detected in the current frame t is used as the initial candidate vector in the second priority order .
  • ⁇ C / 3 '' in the upper right block of the block of interest Bt indicates that the current vector CV force of that block detected in the current frame t is used as the initial candidate vector in the ⁇ 3''th priority order,
  • You. “P / 4” in the lower right block of the block of interest Bt indicates that the previous vector detected in the past frame t ⁇ l is used as the initial candidate vector in the fourth priority order “PV”. .
  • CZ6 of the lower right block in the upper left corner of the surrounding area 7 X 7 is the current vector CV force of that block detected at the current frame t! It indicates that it is used as a candidate vector.
  • the ⁇ CZ5 '' of the lower left block in the upper right corner of the peripheral area 7 X 7 indicates that the current vector CV force of that block detected in the current frame t is used as the ⁇ 5''th initial candidate vector.
  • ⁇ P / 7 '' in the upper right block in the lower left corner of the surrounding area 7 X 7 is used as the initial candidate vector in the past vector PV power priority of the block detected in the past frame t1 ⁇ 7 '' Is represented.
  • ⁇ PZ8 '' of the upper left block in the lower right corner of the surrounding area 7 X 7 is used as the initial candidate vector in the past vector PV power of the block detected in the past frame t-1 Priority ⁇ 8 '' To represent.
  • the initial candidate vectors are the target block Bt, the left neighbor, the upper right, and the right of the target block Bt.
  • a block force is selected at a position that is one inside each of the four corners of the peripheral area 7 ⁇ 7.
  • the block adjacent to the block of interest Bt (the block that is close both spatially and temporally) is detected in the current frame t, which has a higher priority than the block slightly away.
  • the priority of the current vector is set higher than that of the past vector detected in the past frame t1.
  • the positions, types, and priorities of these initial vector candidates should be as small as possible to obtain reliable initial candidate vectors. Is set based on spatial correlation and temporal correlation etc., including the block at a position slightly away from the target block Bt so that it can be is there. Therefore, by using the motion vector of the predetermined block set in advance as the initial candidate vector, the number of initial candidate vectors is increased and the amount of calculation for processing is prevented from becoming enormous. Is done.
  • the type of candidate block and the position of the candidate block are not limited to the example of Fig. 23, and other types of vectors or block positions may be used. Further, considering that there is no optimum vector in the peripheral blocks, a 0 vector may be used to suppress deterioration in such a case. Also, the number of weather blocks may be more or less than eight.
  • step S251 the candidate vector position calculation unit 251 acquires the preset initial candidate vector of the target block from the peripheral region of the selected target block, and sets the type of the initial candidate vector In step S252, it is determined whether the type of the initial candidate vector of the candidate block is a past vector or a current vector in the order of the obtained priority.
  • step S252 when the candidate vector position calculation unit 251 determines that the type of the initial candidate vector of the candidate block is the past vector or the current vector, the process proceeds to step S253, and the position information of the candidate block and the type of the initial candidate vector The information is supplied to the detection vector acquisition unit 252, and the detection vector acquisition unit 252 detects the motion vector (past vector PV or current vector CV) corresponding to the position information of the candidate block and the type information of the initial candidate vector. The obtained motion vector is output from the offset position calculation unit 254, and the process proceeds to step S257.
  • step S252 when the candidate vector position calculation unit 251 determines that the type of the initial candidate vector of the candidate block is not the past vector or the current vector, the process proceeds to step S254, and the candidate vector position calculation unit 251 ,
  • the type of the initial candidate vector of the candidate block is a shift initial vector.
  • step S254 the candidate vector position calculation unit 251 determines the type of the initial candidate vector If it is determined that the candidate block is the initial vector, the process proceeds to step S255, where the position information of the candidate block and the type information of the initial candidate vector are supplied to the shift initial vector acquisition unit 253, and the candidate block The shift initial vector corresponding to the position information is obtained from the shift initial vector memory 107, and the obtained shift initial vector is output to the offset position calculating unit 254, and the process proceeds to step S257.
  • step S254 the candidate vector position calculation unit 251 determines that the type of the initial candidate vector of the candidate block is not the shift initial vector (that is, the type of the initial candidate vector of the candidate block 0 vector If it is determined that the vector is zero, the process proceeds to step S256, in which the zero vector is set as the initial candidate vector, the position information of the candidate block is supplied to the offset position calculating unit 254 together with the zero vector, and the process proceeds to step S257. Note that also in steps S253 and S255, the candidate vector position calculation unit 251 supplies the position information of the candidate block to the offset position calculation unit 254.
  • the offset position calculating unit 254 determines the position of the candidate block supplied by the candidate vector position calculating unit 251. Based on the information, an offset destination block position in which the target block of frame t is offset to frame t + 1 is calculated for each initial candidate vector. Then, the offset position calculation unit 254 outputs the position information of the candidate block and the information of the offset destination block position together with the initial candidate vector to the evaluation value calculation unit 255, and the process proceeds to step S258.
  • step S259 the evaluation value comparison unit 256 determines whether the evaluation value DFD obtained by the evaluation value calculation unit 255 is smaller than the evaluation value DFD of the optimal candidate vector stored in the optimal candidate storage register 257.
  • the evaluation value DFD obtained by the evaluation value calculation unit 255 is stored in the optimum candidate storage register 257, and the optimum candidate vector is evaluated. If it is determined that the value is smaller than the value DFD, that is, the initial candidate vector has higher reliability than the optimal candidate vector, in step S260, the optimal candidate vector of the optimal candidate storage register 257 and its evaluation value Is rewritten with the initial candidate vector determined to be! And its evaluation value DFD, and the process proceeds to step S261.
  • step S259 the evaluation value comparison unit 256 stores the evaluation value DFD obtained by the evaluation value calculation unit 255 in the optimum candidate storage register 257 and calculates the evaluation value DFD of the optimum candidate vector. If it is determined that the size is smaller, skip the process of step S260 and proceed to step S261.
  • step S261 the candidate vector position calculation unit 251 determines whether or not the processing has been completed for all the initial candidate vectors (eight vectors in the example of Fig. 23), and If it is determined that the process has not been completed, the process returns to step S252, and the subsequent processes are repeated.
  • step S261 If it is determined in step S261 that the processing of all the initial candidate vectors has been completed, the process proceeds to step S262, where the evaluation value comparison unit 256 controls the optimal candidate storage register 257, Among the initial candidate vectors, the optimal candidate vector determined to have the highest reliability based on the evaluation value DFD is output as the initial vector VO to the iterative gradient method operation unit 103, and the initial vector selection processing is performed. To end.
  • the evaluation values DFD of a plurality of initial candidate vectors are obtained, and the initial candidate vector having the smallest evaluation value DFD, that is, the initial candidate vector having the highest reliability is determined. Since the selection is made as a vector, it is possible to provide an optimal initial vector for the detection of the subsequent motion vector, and as a result, it is possible to improve the accuracy of the detection of the subsequent motion vector. Further, since the motion vector of the predetermined block is used as the initial candidate vector, the number of initial candidate vectors is increased and the amount of calculation for processing is prevented from becoming enormous.
  • the amount of motion of the moving object has a certain degree of continuity between consecutive frames, and based on the fact that the change in the amount of motion is small, the previous frame force is also a shift initial vector that is a motion vector passing through the block of interest. Is used as an initial vector candidate, as in the past, only the motion vectors found in the past in neighboring blocks are This makes it possible to perform motion detection with higher accuracy than in the case of using as a candidate for a file. This is particularly effective at the boundaries of moving objects.
  • FIG. 25 is a block diagram showing a configuration of the iterative gradient method operation unit 103.
  • the iterative gradient method calculation unit 103 having the configuration shown in FIG. 25 performs processing for detecting an optimal motion vector using the input frame t of the image at the time t and the frame t + 1 of the image at the time t + 1. Do.
  • the process of detecting the motion vector is a process executed for each predetermined block composed of a plurality of pixels, and the iterative gradient method operation unit 103 performs the process for each block or the unit of pixel for each block.
  • the operation using the gradient method is repeatedly executed to output an optimal motion vector with high reliability based on the evaluation value DFD.
  • the iterative gradient method operation unit 103 receives the frame t of the image at time t and the frame t + 1 of the image at time t + 1 via the prefilters 102-1 and 102-2.
  • the initial vector VO from the solid state selection unit 102 is input.
  • the mode selection unit 401 selects a processing mode of the gradient method operation for each predetermined block under the control of the effective pixel determination unit 403, and selects the initial vector V 0 from the initial vector selection unit 102. Output to 402 and vector evaluation section 104.
  • the processing method of the gradient method operation includes a block-based processing mode in which the motion vector detection target is a block and a pixel-based processing mode in which the motion vector detection target is a pixel, and the block-based processing mode is selected as an initial value. Is done.
  • the selector 402 determines which of the initial vector V0 from the mode selecting unit 401 and the motion vector Vn output from the gradient method operation unit 404, under the control of the vector evaluation unit 104 It is output to the effective pixel determination unit 403 and the gradient method calculation unit 404 as a motion vector (hereinafter, referred to as an offset vector) used as a value.
  • a motion vector hereinafter, referred to as an offset vector
  • the effective pixel determination unit 403 receives a frame t of an image at time t input through the prefilters 102-1 and 102-2, and a time t + Starting from the position calculated by offsetting the offset vector using the frame t + 1 of the image 1 in the calculation block of each unit processing mode, the number of pixels effective for the calculation by the gradient method is determined. More or less, and depending on the result, cut the processing method Change. That is, when the valid pixel determining unit 403 determines that the number of valid pixels for the operation of the gradient method is equal to or smaller than the threshold value, the valid pixel determining unit 403 controls the mode selecting unit 401 to change the processing mode for the predetermined block.
  • the valid pixel determination unit 403 controls the gradient method calculation unit 404 when the calculation block in each unit processing mode determines that the number of pixels effective for the calculation by the gradient method is larger than the threshold value, and controls each processing unit. To execute the gradient method arithmetic processing.
  • the gradient method calculation unit 404 Upon receiving the offset vector input from the selector 402, the gradient method calculation unit 404 obtains the frame t of the image at time t input through the pre-filters 102-1 and 102-2 and the frame t at time t + 1. Using the frame t + 1 of the image, the gradient method calculation in each unit processing mode is executed with the position calculated by offsetting the offset vector from the selector 402 as a start point, and the calculated motion vector Vn is converted to a delay unit. 405 and the vector evaluation unit 104.
  • the delay unit 405 holds the motion vector Vn output from the gradient method operation unit 404 until the next processing cycle of the effective pixel determination unit 403 and the gradient method operation unit 404. Is output to the effective pixel determination unit 403 in accordance with
  • FIG. 26 is a block diagram illustrating a detailed configuration of the effective pixel determination unit 403.
  • the effective pixel determination unit 403 includes a time pixel difference calculation unit 411, a pixel difference value determination unit 412, an effective pixel counter 413, and a gradient method continuation determination unit 414.
  • the temporal pixel difference calculation unit 411 selects a pixel in an operation block in block units, and selects the offset vector and the prefilters 102-1 and 102-2. Using the frame of the image at time t and the frame t + 1 of the image at time t + 1, the pixel difference At in the time direction of the selected pixel is calculated, and the calculated time direction is calculated. Is output to the pixel difference value determination unit 412.
  • the pixel difference value determination unit 412 determines whether or not the pixel difference At in the time direction calculated by the time pixel difference calculation unit 411 is smaller than a predetermined threshold value (hereinafter, referred to as a pixel difference value). If it is determined that the pixel difference At in the time direction is smaller than a predetermined pixel difference value, the number of valid pixels of the valid pixel counter 413 is counted by one. The effective pixel number counter 413 is determined to be valid by the pixel difference value determination unit 412 for each operation block. The value of the pixel is counted. In addition, the effective pixel number counter 413 is reset for each calculation block.
  • a predetermined threshold value hereinafter, referred to as a pixel difference value
  • FIG. 27 is a block diagram showing a detailed configuration of the gradient method operation unit 404.
  • the gradient method calculation unit 404 includes a time pixel difference calculation unit 421, a pixel difference value determination unit 422, a horizontal / vertical pixel difference calculation unit 423, a gradient integration unit 424, and a vector calculation unit 425. You.
  • a pixel in the operation block of each unit processing mode is selected, centering on the pixel calculated by offsetting the offset vector from the selector 402, and the time of the selected pixel is selected.
  • the pixel difference At in the direction is calculated, and the calculated pixel difference At in the time direction and the offset vector are output to the pixel difference value determination unit 422.
  • the time pixel difference calculation unit 421 outputs the offset vector to the vector calculation unit 425, controls the vector calculation unit 425, and outputs the motion vector of the detection target block. Is calculated.
  • the temporal pixel difference calculating unit 421 does not calculate the temporal pixel difference At of the pixel in the calculation block.
  • the processing of the gradient method calculation is not executed, and the processing is terminated.
  • the time pixel difference calculation unit 421 controls the vector calculation unit 425 to set the motion vector V to the zero vector.
  • the pixel difference value determination unit 422 determines whether the pixel difference At in the time direction calculated by the time pixel difference calculation unit 421 is smaller than a predetermined threshold value (hereinafter, referred to as a pixel difference value). When it is determined that the pixel difference At in the time direction is smaller than the predetermined pixel difference value, the pixel is set as a calculation target of the gradient method, and the pixel difference At in the time direction and the offset vector are calculated as the horizontal and vertical pixel differences. Output to calculation section 423. That is, the pixel having the pixel difference At determined to be smaller than the predetermined pixel difference value is set as a calculation target in the horizontal / vertical pixel difference calculation unit 423 and the gradient integration unit 424.
  • a predetermined threshold value hereinafter, referred to as a pixel difference value
  • the pixel difference value determination unit 422 determines that the pixel difference At in the time direction is equal to or greater than a predetermined pixel difference value, the pixel difference value determination unit 422 sends the pixel processing value to the horizontal / vertical pixel difference calculation unit 423 and the gradient integration unit 424. Is forbidden.
  • the horizontal / vertical pixel difference calculation unit 423 receives the offset vector input from the pixel difference value determination unit 422, and receives the frame t of the image at time t input via the prefilters 102-1 and 102-2.
  • the pixel difference At in the time direction is a predetermined value.
  • the pixel difference ⁇ in the horizontal direction and the pixel difference Ay in the vertical direction of the pixel determined to be smaller than the pixel difference value are calculated.
  • the horizontal / vertical pixel difference calculation unit 423 outputs the pixel difference At in the time direction, the pixel difference ⁇ in the horizontal direction, and the pixel difference Ay in the vertical direction to the gradient integration unit 424.
  • the gradient integrating unit 424 integrates the gradient of the pixel for which it is determined that the pixel difference At in the time direction is smaller than a predetermined pixel difference value. That is, the gradient integrating section 424 calculates the temporal pixel difference At calculated by the temporal pixel difference calculating section 421, the horizontal pixel difference ⁇ calculated by the horizontal / vertical pixel difference calculating section 423, and the vertical pixel difference.
  • the difference Ay is integrated, and the integrated gradient value is output to the vector calculation unit 425.
  • the vector calculating unit 425 uses the gradient value integrated by the gradient integrating unit 424 and the least square sum of the above equation (9). To calculate the motion vector vn.
  • the vector calculation unit 425 calculates the time pixel
  • the offset vector from the difference calculation unit 421 is added to the calculated motion vector vn to obtain a motion vector Vn, which is output to the vector evaluation unit 104 and the delay unit 405.
  • the unit of the detection processing for detecting the motion vector is usually performed in units of blocks as shown in FIG.
  • arrow X indicates the horizontal direction
  • arrow Y indicates the vertical direction
  • an arrow T indicates a direction in which time elapses from the frame t at the time t at the far right in the figure to the frame t + 1 at the time t + 1 at the front left.
  • a block of 8 pixels ⁇ 8 pixels (hereinafter, referred to as an 8 ⁇ 8 block) is shown as a detection target block K of each frame.
  • the detection target block K is a block in which the same motion is obtained for an 8 ⁇ 8 block when a motion vector is detected for the 8 ⁇ 8 block! , U.
  • detection ie, calculation
  • the gradient method using the least squares method which is a statistical solution, has the disadvantage that the detection accuracy is significantly reduced. Therefore, in general, when calculating a motion vector, even if it is a processing unit for each pixel, not just for each block, the pixels used for the calculation of the gradient method are configured in units of blocks (calculation blocks). Many things.
  • the pixels used for the operation of the gradient method are pixels of the operation block of 8x8 blocks. That is, in the example of FIG. 28, the motion vector obtained as a result of performing the gradient method operation using the operation block (8 ⁇ 8) corresponds to all the pixels of the detection target block K (8 ⁇ 8). That is, the motion vector changes.
  • a force of 28 pixels (thick circle) from the upper left pixel is indicated by the arrow A.
  • the lower right pixel has a 36 pixel (thin circle) force and has a rightward movement indicated by arrow B.
  • the annihilation area is a mixed area at a position corresponding to all ends of the foreground object in the traveling direction with respect to the foreground area, and refers to an area in which the background component is covered by the foreground with the passage of time.
  • the occurrence area is a mixed area at a position corresponding to the rear end of the foreground object in the traveling direction with respect to the foreground area. ⁇ .
  • FIG. 30 is a view for explaining the state of luminance of a detection target block when the objects are the same.
  • arrow X indicates the horizontal direction
  • arrow Y indicates the vertical direction.
  • an arrow T indicates the direction in which the time elapses from the frame t at the time t at the far right in the figure to the frame t + 1 at the time t + 1 at the front left.
  • the arrow X indicates the horizontal direction
  • the arrow L indicates the luminance value.
  • the luminance values Lpl, Lp2, Lp3, Lpi (3 ⁇ i ⁇ 7), Lp7 on the right side in the figure are the detection target blocks of 8x8 of frame t on the left side in the figure.
  • the luminance values of the pixels pi, p2, p3,..., Pi (3 ⁇ i ⁇ 7),..., P7,. , Lql, Lq2, Lq3, ..., Lqi (3 ⁇ i ⁇ 7), ..., Lq7 are the 8x8 detection target blocks of the frame t + 1 on the left side of the figure.
  • Pixels located in the same phase as pixels pi, p2, p3, ⁇ , pi (3 ⁇ i ⁇ 7), ⁇ , p7, ..., pixels in the fifth row below the upper left pixel , qi (3 ⁇ i ⁇ 7),..., q7,... represent the luminance values of ql, q2, q3,.
  • Arrows between the luminance values Lp1 to Lp7 and Lql to Lq7 indicate a time-direction difference ⁇ t between the pixel on the frame t and the pixel on the frame t + 1.
  • the temporal difference At between the pixel pi and the pixel ql is represented by the difference between the luminance value Lpl and the luminance value Lql
  • the temporal difference At between the pixel p2 and the pixel q2 is value
  • the time difference A t between the pixel P 3 and the pixel q 3 is represented by the difference between Lp 2 and the luminance value Lq 2
  • the time difference A t between the pixel pi and the pixel q i is represented by the difference between the luminance value L p 3 and the luminance value Lq 3.
  • Fig. 31 is a diagram illustrating the luminance state of the detection target block when pixels of an object having different motions are mixed. Note that, in FIG. 30, the portions corresponding to those in FIG. 31 are denoted by the corresponding reference numerals, and the description thereof will not be repeated. Therefore, in the example of FIG. 31, the pixel p7 on the frame t is Has a different motion from the other pixels.
  • the luminance value of the pixel q7 located in the same phase as the pixel p7 on the frame t + 1 is
  • the luminance value of the pixel q7 is represented by the luminance value Lq7 ⁇ 2.
  • the luminance value greatly changes to the lower side in the figure than Lq7-1. Therefore, the time difference A t (the difference between the luminance value Lp7 and the luminance value Lq7-2) between the pixel p7 and the pixel q7 becomes large.
  • the effective pixel determination unit 403 a pixel having a small luminance change is effective even when used for motion vector detection, and a pixel having a large luminance change is not effective when used for motion vector detection.
  • a decision by focusing on the element of the magnitude of the luminance change and determining whether the pixel is valid or invalid based on the magnitude of the luminance change, the pixel with the small luminance change is used for motion vector detection, and conversely, the pixel with the small luminance change is used. Large pixels may not be used for motion vector detection. Thereby, the accuracy of motion vector detection can be increased.
  • the valid pixel determination unit 403 sets a predetermined pixel difference value (threshold) for the pixel difference At in the time direction for each pixel in the calculation block, and If the elementary difference At is smaller than the set predetermined pixel difference value, the pixel is determined to contribute (effective) to the motion vector detection, and the gradient method for detecting the motion vector is used. However, if the pixel difference At in the time direction is equal to or larger than a predetermined pixel difference value, it is determined that the pixel may cause motion disturbance, and the motion vector is determined. Excludes the computational power of the gradient method when detecting. As a result, mixing of different motions is suppressed, and a more stable gradient method operation is performed, and as a result, a likely motion vector is detected.
  • a predetermined pixel difference value threshold
  • the gradient method operation is an operation based on the least square method which is a statistical solution
  • the gradient method operation is performed by separating pixels used in the gradient method operation from pixels not used in the gradient method operation.
  • the reliability of the operation decreases, and the accuracy of motion vector detection decreases. There is a risk of getting it.
  • the effective pixel determination unit 403 determines that the calculation in the processing unit of the detection target block (8 ⁇ 8) is unstable, and As shown in the figure, processing is performed by switching to the calculation unit for each pixel (64 pixels) in the 8x8 block.
  • FIG. 32 shows an example of an operation block in the pixel unit processing.
  • the calculation block of the pixel p at the upper left of the detection target block K when the detection target block (operation block in blocks) K (8 x 8) on the frame is switched to pixel-based processing.
  • C (9 ⁇ 9 in the example of FIG. 32).
  • the pixels used for the gradient method operation are separated from the pixels not to be used, and when the number of pixels used for the gradient method operation becomes extremely small, the detection target block ⁇ (8 x 8) For each pixel, switch to pixel-based processing instead of stopping the detection of motion vectors, and change the pixel of the calculation block ⁇ (9 X 9) for each pixel to perform the gradient method operation. Even a small amount of unused pixels can be prevented, and depending on the pixels, more accurate motion vector detection can be performed.
  • FIG. 33 is a diagram showing an example in which pixel unit processing is applied to pixels in the detection target block (arithmetic block) in FIG.
  • a pixel having two different movements a thin line circle
  • a pixel having a diagonally upper left movement indicated by an arrow ⁇ a thick circle
  • a pixel having a rightward movement indicated by an arrow B In the detection target block K (8 ⁇ 8) shown in FIG. 29, processing is performed in pixel units.
  • an operation block E (9 ⁇ 9 in the example of FIG. 33) centering on the pixel p to be detected is used. .
  • the pixels in the operation block E have a diagonally upper left movement indicated by an arrow A, except for the lower right three pixels (thin circles) having a rightward movement indicated by an arrow B. ing.
  • a predetermined threshold pixel difference value
  • the time-direction pixel difference ⁇ t is set as the time-direction pixel difference ⁇ t
  • the time-direction pixel difference ⁇ is set as the time-direction pixel difference ⁇ t
  • the time-direction pixel difference ⁇ If the pixel value is smaller than the set predetermined pixel difference value, the pixel is determined to contribute (effective) to the motion vector detection, and is used for the gradient method calculation when detecting the motion vector. If the temporal pixel difference At is larger than a predetermined pixel difference value, the pixel is considered to have a possibility of causing motion disturbance, and the pixel is subjected to a gradient method calculation for detecting a motion vector. For, what,.
  • the lower right three pixels (thin circles) Pixels excluding (bold circle) are considered to be effective pixels for the gradient method calculation of the detection target pixel P.
  • the gradient method operation of the block unit processing executed using the detection target block K (8 ⁇ 8) in FIG. 29 as an operation block is performed.
  • a more stable gradient method operation is performed, and as a result, a strong motion vector is detected.
  • the initial vector VO is input to the mode selection unit 401 from the previous stage.
  • step S401 the mode selection unit 401 selects the block-based processing mode, sets a block on the frame t as a detection target block (operation block), and sets the initial vector VO of the detection target block to the selector 402 and the vector evaluation. Output to the unit 104, and go to step S402. As a result, in each unit of the iterative gradient method operation unit 103, processing is performed in block units.
  • step S402 the selector 402 selects the initial vector VO input from the mode selection unit 401 as an offset vector in accordance with the control from the vector evaluation unit 104, and determines the selected offset vector as a time pixel difference calculation unit. 411 and the time pixel difference calculation unit 421, and the process proceeds to step S403.
  • step S403 the temporal pixel difference calculation unit 411 and the pixel difference value determination unit 412 use the selected offset vector (in this case, offset the initial vector VO) to determine the effective pixel for each block.
  • the process is executed, and the process proceeds to step S404.
  • the effective pixel number counter 413 indicates that the pixel difference value is within a predetermined pixel difference within the operation block in block units. The number of pixels that are determined to be smaller than the value (that is, determined to be valid pixels in the gradient method calculation in the subsequent stage) is counted.
  • step S405 the gradient method calculation unit 404 uses the offset vector (in this case, the initial vector VO) from the selector 402 based on the flag from the gradient method continuation determination unit 414, The gradient method calculation process is performed, and the process proceeds to step S406.
  • the details of the gradient method calculation processing will be described later with reference to FIG. 36.
  • the motion vector Vn is obtained by the gradient method calculation processing and output to the vector evaluation unit 104 and the delay unit 405.
  • step S406 the vector evaluation unit 104 evaluates the motion vector Vn evaluation value DFD (n) obtained by the gradient method operation processing and the motion vector Vn-1 evaluation value DFD used as the offset vector. (n-1) is calculated, and the evaluation value DFD (n) is smaller than the evaluation value DFD (n-1). Force S is smaller or smaller, that is, the gradient method operation is performed more than the motion vector Vn-l used as the offset vector. It is determined whether or not the reliability of the motion vector Vn obtained by the processing is high. Specifically, for example, in the first processing, the evaluation value DFD (l) of the obtained motion vector VI and the evaluation value DF of the initial vector VO used as the offset vector are calculated. D (0) is compared, and in the second processing, the evaluation value D FD (2) of the obtained motion vector V2 is compared with the evaluation value DFD (l) of the motion vector VI used as the offset vector. You.
  • step S406 the vector evaluation unit 104 determines that the evaluation value DFD (n) is smaller than the evaluation value DFD (n-1), that is, the reliability of the motion vector Vn is larger than the motion vector Vn-1. If it is determined that the degree is high, in step S407, the calculated motion vector Vn (the motion vector VI for the first time, the motion vector V2 for the second time) is added to the motion vector V of the detection target block. And the process proceeds to step S408. In step S408, the vector evaluator 104 counts the number of repetitions n by one, and proceeds to step S409 to determine whether the force has reached the set maximum number of repetitions (for example, two). If it is determined that the number of repetitions n is not the set maximum number of repetitions yet, the selector 402 is controlled to return to step S402, and the subsequent processing is repeated.
  • the set maximum number of repetitions for example, two
  • step S402 the selector 402 selects the motion vector VI output from the vector calculation unit 425 and held in the delay unit 405 as an offset vector
  • step S403 selects the motion pixel difference calculation unit
  • step S406 the vector evaluation unit 104 determines that the evaluation value DFD (n) is not smaller than the evaluation value DFD (n-1), that is, the direction of the motion vector Vn-1. If it is judged that the reliability is higher than the threshold value, step S410 proceeds and the vector Vn—1 (the initial vector VO in the first time, the motion vector VI in the second time) as the offset of the gradient method operation is detected. The motion vector V of the target block is set, and the process proceeds to step S411. If the vector evaluation unit 104 determines in step S409 that the number of repetitions n has reached the set maximum number of repetitions, the process proceeds to step S411.
  • step S411 the vector evaluation unit 104 determines that the motion vector V It is determined whether or not the force is within a search area set in advance as a range to be detected, and if it is determined that the force is within the search area, the process proceeds to step S415, where the motion vector V is set to the detection target block. The corresponding values are stored in the detection vector memory 53, and the iterative gradient method processing is terminated.
  • step S411 determines in step S411 that the motion vector V is not within the search area
  • the process proceeds to step S412, sets the motion vector V to the zero vector, and proceeds to step S415.
  • the vector V (0 vector) is stored in the detection vector memory 53 in correspondence with the detection target block, and the iterative gradient method processing ends.
  • step S404 determines in step S404 that the number of effective pixels of the effective pixel counter 413 is equal to or smaller than the predetermined threshold value a
  • the process proceeds to step S413, and the mode is determined.
  • the selection unit 401 is controlled to select the pixel unit processing mode, and the process proceeds to step S414.
  • the mode selection unit 401 executes the iterative gradient method calculation processing in pixel units, and proceeds to step S415.
  • the details of the iterative gradient method calculation processing in the pixel unit processing mode will be described later with reference to FIG. 37.
  • step S415 the vector evaluation unit 104 stores the motion vector V in the detection vector memory 53 in association with each pixel of the detection target block, and ends the iterative gradient method processing.
  • step S406 the evaluation of the reliability of the motion vector is performed by evaluating the evaluation value DFD (n) of the motion vector Vn obtained by the gradient method processing and the motion vector Vn used as the offset vector. Judgment was made by comparing the evaluation value DFD (n-1) with the evaluation value DFD of (1), and at the same time as the comparison judgment of the evaluation value DFD, the motion vector obtained by the gradient method operation (the motion vector before the offset vector was added) vn It may be determined that the norm value (I vn I) is smaller than a predetermined size (for example, 16 in the case of the operation block 8 ⁇ 8).
  • a predetermined size for example, 16 in the case of the operation block 8 ⁇ 8
  • the norm represents the magnitude of a vector in a certain vector space.
  • the norm of the vector V to (X, y) starting from the origin (0, 0) is expressed by the following equation. It is represented by (11).
  • the norm value I vn I of the motion vector obtained by the force gradient method calculation that can obtain a high-precision result with respect to a minute motion is a predetermined magnitude.
  • the norm value I vn I of the motion vector obtained by the gradient method operation has exceeded a predetermined value, and the norm value I vn I is determined to be the predetermined value.
  • FIG. 35 shows an example of the effective pixel determination process in step S403 in FIG.
  • the time pixel difference calculation unit 411 controls the pixel difference value determination unit 412 in step S431 to reset the effective pixel number counter 413, and proceeds to step S432.
  • a pixel is selected, and the process proceeds to step S433. Pixels are selected in raster scan order from the upper left pixel of the operation block.
  • step S433 the temporal pixel difference calculation unit 411 determines the offset vector, the frame t of the image at the time t input via the pre-filters 102-1 and 102-2, and the image of the image at the time t + 1. Using the frame t + 1, the pixel difference ⁇ t in the time direction of the selected pixel is calculated, the calculated pixel difference ⁇ t in the time direction is output to the pixel difference value determination unit 412, and the process proceeds to step S434.
  • step S434 the pixel difference value determination unit 412 It is determined whether or not the calculated pixel difference At in the time direction is smaller than a predetermined pixel difference value, that is, it is determined whether or not the force is a pixel effective for the gradient method calculation in the subsequent stage. If it is determined that the pixel difference At in the direction is smaller than the predetermined pixel difference value, the process proceeds to step S435, the number of valid pixels of the valid pixel counter 413 is counted by one, and the process proceeds to step S436.
  • the pixel difference value determination unit 412 determines that the pixel difference At in the time direction is equal to or larger than the predetermined pixel difference value in step S434, that is, the pixel difference value determination unit 412 is not a pixel that is effective for the gradient method calculation in the subsequent stage. Is determined, the process of step S435 is skipped, and the process proceeds to step S436.
  • step S436 the temporal pixel difference calculation unit 411 determines whether or not the processing has been completed for all the pixels in the operation block, and determines that the processing for all the pixels in the operation block has not been completed. If it is determined, the process returns to step S432, the next pixel is selected, and the subsequent processing is repeated. On the other hand, if the time pixel difference calculation unit 411 determines in step S436 that processing of all pixels in the operation block has been completed, the valid pixel determination processing ends, and the flow returns to step S404 in FIG.
  • the effective pixel counter 413 stores, in the operation block, the pixels determined to be effective in the subsequent gradient method operation whose pixel difference At is smaller than the predetermined pixel difference value. The number has been counted. Therefore, in step S404 in FIG. 34, the gradient method continuation determining unit 414 refers to the number of pixels of the effective pixel counter 413 to perform the gradient method operation in block units or to perform the gradient method operation in pixel units. You can decide whether to do it.
  • the temporal pixel difference calculation unit 421 selects a pixel in a block-based operation block in step S451, and proceeds to step S452. move on.
  • the pixels are raster-scanned from the upper left pixel of the operation block. Are selected in order.
  • step S452 the temporal pixel difference calculation unit 421 determines the offset vector from the selector 402, the frame t of the image at the time t input through the pre-filters 102-1 and 102-2, and the time t + Using the frame t + 1 of one image, a pixel difference ⁇ t in the time direction of the selected pixel is calculated, and the calculated pixel difference ⁇ t in the time direction and the offset vector are determined by a pixel difference value determination unit 422. And the process proceeds to step S453.
  • step S453 the pixel difference value determination unit 422 determines whether the pixel difference At in the time direction calculated by the time pixel difference calculation unit 421 is smaller than a predetermined pixel difference value, Then, it is determined whether or not the force is a pixel effective for the gradient method calculation in the subsequent stage, and if it is determined that the pixel difference At in the time direction is smaller than a predetermined pixel difference value, the process proceeds to step S454, where the vertical and horizontal pixel difference is determined.
  • the calculation unit 423 is controlled to calculate a horizontal pixel difference ⁇ of a pixel determined to be valid.
  • the predetermined pixel difference value in the pixel difference value determination unit 422 may be the same value as the predetermined pixel difference value in the pixel difference value determination unit 412, or may be a different value.
  • the pixel difference value determination unit 422 outputs the pixel difference At and the offset vector in the time direction calculated by the time pixel difference calculation unit 421 to the vertical and horizontal pixel difference calculation unit 423.
  • step S454 the vertical / horizontal pixel difference calculation unit 423 calculates the offset vector, the frame of the image at the time t input via the prefilters 102-1 and 102-2, and the time t + 1 Using the image frame t + 1, calculate the horizontal pixel difference ⁇ of the pixel determined to be valid, and proceed to step S455 to calculate the vertical pixel difference Ay of the pixel determined to be valid Then, the pixel difference At in the time direction, the pixel difference ⁇ ⁇ in the horizontal direction, and the pixel difference Ay in the vertical direction are output to the gradient integrating unit 424, and the process proceeds to step S456.
  • step S456 the gradient integrating unit 424 integrates the temporal pixel difference At, the horizontal pixel difference ⁇ , and the vertical pixel difference Ay from the vertical / horizontal pixel difference calculating unit 423, and calculates the vectorized result. Output to section 425 and proceed to step S457.
  • step S453 If the pixel difference value determination unit 422 determines in step S453 that the pixel difference At in the time direction is equal to or greater than the predetermined pixel difference value, the process in steps S454 to S456 is performed. Skip and go to step S457. That is, since each pixel difference (gradient) of this pixel is not a pixel effective for the gradient method calculation in the subsequent stage, it is not used for the calculation.
  • step S457 the temporal pixel difference calculation unit 421 determines whether or not the processing has been completed for all pixels in the arithmetic block, and determines that the processing for all pixels in the arithmetic block has not been completed. If it is determined, the process returns to step S451 to select the next pixel and repeat the subsequent processing. On the other hand, if the time pixel difference calculation unit 421 determines in step S457 that processing of all pixels in the operation block has been completed, it outputs an offset vector to the vector calculation unit 425, and proceeds to step S458.
  • the vector calculating unit 425 calculates the motion using the gradient integration result from the gradient integrating unit 424 and the least square sum of the above equation (9).
  • the process proceeds to step S459 to calculate a motion vector Vn by adding the calculated motion vector vn to the offset vector from the temporal pixel difference calculation unit 421, and obtain the obtained motion vector V n Is output to the vector estimating unit 104, and the gradient method operation processing ends, and the flow returns to step S406 in FIG.
  • FIG. 37 shows an example of the iterative gradient method operation processing in pixel units in step S414 in FIG. This process is executed for each pixel in the detection target block.
  • the mode selection unit 401 selects a pixel of the detection target block as a detection target pixel in step S471, and calculates an operation block (for example, 9 X 9) of the pixel. Is output to the selector 402 and the vector evaluator 104, and the flow advances to step S472.
  • the pixels are selected in the raster scan order from the upper left pixel of the detection target block.
  • the selector 402 sets the vector evaluation unit 10
  • the initial vector VO input from the mode selection unit 401 is selected as an offset vector, and the selected offset vector is output to the time pixel difference calculation unit 411 and the time pixel difference calculation unit 421. , And proceed to step S473.
  • step S473 the temporal pixel difference calculation unit 411 and the pixel difference value determination unit 412 use the selected offset vector (in this case, using the initial vector VO as an offset) to perform a pixel-by-pixel effective pixel determination process. And the process proceeds to step S474.
  • the details of the effective pixel determination processing are basically the same as those of the effective pixel determination processing described above with reference to FIG. 35, except that the target operation block (block range and pixels constituting the block) is different.
  • the effective pixel determination process causes the effective pixel number counter 413 to make the pixel difference value larger than the predetermined pixel difference value in the calculation block for each pixel.
  • the number of pixels that are determined to be small (that is, pixels that are determined to be valid pixels in the subsequent gradient method operation) are counted.
  • the predetermined pixel difference value for performing the effective pixel determination in pixel units may be the same value as in the case of block units, or may be set to a different value.
  • step S474 the gradient determination method 414 determines whether the number of valid pixels (the number of valid pixels) is greater than a predetermined threshold value
  • 8 in step S474. If it is determined that the number of effective pixels is larger than the predetermined threshold value ⁇ 8, a flag (flg l) for executing the gradient method calculation is output to the gradient method calculation unit 404, and the process proceeds to step S475.
  • the threshold value j8 may be the same value as the threshold value a in the case of a block unit, or a different value may be set.
  • step S475 based on the flag from the gradient method continuation determination unit 414, the gradient method calculation unit 404 uses the offset vector (initial vector VO) from the selector 402 to perform the pixel-based gradient method calculation.
  • the process is executed, and the process proceeds to step S476.
  • the details of the gradient method operation processing are basically the same as the gradient method operation processing in block units described above with reference to FIG. 36, except that the target operation block (range and pixels constituting the block) is different.
  • step S476 the vector evaluator 104 calculates the evaluation value DFD (n) of the motion vector Vn calculated by the gradient method processing and the evaluation value DFD (n-1) of the motion vector Vn-1 used as the offset. ), And the evaluation value DFD (n) is smaller than the evaluation value DFD (n-1)! / Power. That is, the motion vector Vn-1 used as the offset was calculated by the gradient method processing. It is determined whether or not the reliability of the motion vector Vn is high.
  • step S476 the vector evaluator 104 determines that the evaluation value DFD (n) is smaller than the evaluation value DFD (n-1), that is, the motion vector is smaller than the motion vector Vn-l. If it is determined that the reliability of Vn is high, in step S477, the calculated motion vector Vn (the motion vector VI for the first time, the motion vector V2 for the second time) is Set to V and proceed with step S478. In step S478, the vector evaluator 104 counts the number of iterations n by one, and proceeds to step S479 to determine whether or not the number of iterations n has reached the set maximum number of iterations (for example, two). If it is still determined that the number of repetitions n is not the set maximum number of repetitions, the selector 402 is controlled, and the process returns to step S472 to repeat the subsequent processes.
  • the set maximum number of iterations for example, two
  • step S472 the selector 402 selects the motion vector VI output from the vector calculation section 425 and held in the delay section 405 as an offset vector, and in step S473, the time pixel difference calculation section
  • step S476 the vector evaluation unit 104 determines that the evaluation value DFD (n) is larger than the evaluation value DFD (n-1), that is, the direction of the motion vector Vn-1. If it is determined that the reliability is higher than Vn, the process proceeds to step S480, and the vector Vn—1 (the initial vector VO in the first time, the motion vector VI in the second time) is set as the offset of the gradient method calculation. Is set as the motion vector V of the detection target block, and the flow advances to step S481. If the vector evaluation unit 104 determines in step S479 that the number of repetitions n has reached the set maximum number of repetitions, the process proceeds to step S481.
  • step S481 the vector evaluation unit 104 determines whether or not the motion vector V is within a search area set in advance as a range for detecting the motion vector, and determines whether or not the motion vector V is within the search area. If it is determined that is, the process proceeds to step S483. Also, in step S481, when the force is determined not to be within the motion vector V force search area in step S481, the process proceeds to step S482, sets the motion vector V to the zero vector, and proceeds to step S483.
  • step S474 when the gradient method determining unit 414 determines that the number of valid pixels of the valid pixel number counter 413 is smaller than the predetermined threshold value ⁇ , the gradient method calculating unit 404 sends the gradient method to the gradient method calculating unit 404.
  • the temporal pixel difference calculation unit 421 controls the vector calculation unit 425 based on the flag to set the motion vector V to the zero vector, and proceeds with step S483.
  • step S483 the mode selection unit 401 determines whether or not the processing has been completed for all the pixels in the detection target block, and determines that the processing for all the pixels in the detection target block has not been completed. If it is determined, the process returns to step S471, and the subsequent pixel of the detection target block is set as the detection target pixel, and the subsequent processing is repeated. If the mode selection unit 401 determines in step S483 that processing of all pixels in the detection target block has ended, the mode selection unit 401 ends the iterative gradient method calculation processing in pixel units, and returns to step S415 in FIG.
  • the vector evaluator 104 returns to step S415 in FIG. V is stored in the detection vector memory 53 so as to correspond to each pixel of the detection target block, and the iterative gradient method processing ends.
  • step S476 may use both the evaluation value DFD determination and the norm value determination.
  • the pixel difference in the calculation block is smaller than the predetermined pixel difference value!
  • the gradient method is adaptively performed. Since the calculation process is controlled, the accuracy of the motion vector detection can be further improved, especially at the boundaries of the motion of the object, and as a result, the required motion vector is more reliable. be able to.
  • the gradient method in which the pixel difference in the operation block is larger than a predetermined pixel difference value The number of pixels not used in the operation If the number of pixels exceeds a predetermined threshold, the block unit mode From pixel to pixel unit mode, the calculation block is set for each pixel of the detection target block, and the validity judgment processing and the gradient method calculation processing are performed. Depending on the pixel, a more accurate motion vector is detected. be able to.
  • the processing of the gradient method operation process is terminated. Since the vector is set to 0, detection of a violent motion vector can be suppressed, and a safer motion vector can be detected.
  • FIG. 38 is a block diagram showing a configuration of the vector allocating unit 54.
  • the vector allocating unit 54 shown in FIG. 38 uses the frame t of the image at the time t to which the 24P signal is input and the frame t + 1 of the image at the time t + 1 to calculate the motion vector detected on the frame t. Is assigned to the pixel on the interpolation frame of the 60P signal to be interpolated on the allocation vector memory 55.
  • the frame t of the image at time t and the frame t + 1 of the image at time t + 1 are input to the pixel information calculation unit 701, the evaluation value calculation unit 702, and the target pixel difference calculation unit 703. Is done.
  • the pixel information calculation unit 701 obtains the motion vector detected by the pixel on the frame t in the detection vector memory 53 from the upper left pixel in the raster scan order, and obtains the obtained motion vector in the frame t + It extends in one direction and calculates the intersection of the extended motion vector and the interpolated frame. Then, the pixel information calculation unit 701 calculates the motion level and the interpolation From the intersection with the frame, a pixel to be assigned a motion vector (hereinafter referred to as an assignment target pixel) is set on an interpolation frame, and information on the position of the motion vector and the assignment target pixel is set in a vector selection unit 705.
  • an assignment target pixel a pixel to be assigned a motion vector
  • the image information calculation unit 701 calculates the position P of the frame t and the position Q on the frame t + 1 associated with the allocation target pixel by the motion vector, and calculates the calculated position information on the frame t and the frame t + 1. Is output to the evaluation value calculation unit 702 and the pixel difference calculation unit of interest 703.
  • the evaluation value calculation unit 702 receives the position information on the frame t and the frame t + 1 associated with the pixel to be allocated and the motion vector from the pixel information calculation unit 701, the position P and the frame t + In order to calculate the evaluation value DFD of the position Q in 1, set a certain range of DFD calculation range (mXn) centered on the position P and the position Q, and set the DFD calculation range within the image frame. Determine whether or not. When the evaluation value calculation unit 702 determines that the DFD calculation range is within the image frame, the evaluation value calculation unit 702 obtains the evaluation value DFD of the pixel to be allocated with respect to the motion vector by performing calculation using the DFD calculation range. The evaluation value DFD is output to the vector evaluation unit 704.
  • the pixel-of-interest calculation unit 703 receives, from the pixel information calculation unit 701, the position information on the frame t and the frame t + 1 associated with the allocation target pixel in the motion vector, and Using the position Q of the frame t + 1 and the position Q of the frame t + 1, the absolute value of the luminance difference for the pixel to be allocated is obtained, and the obtained absolute value of the luminance difference is output to the vector evaluation unit 704.
  • the vector evaluation unit 704 includes a pixel difference determination unit 711 and an evaluation value determination unit 712.
  • the pixel difference determination unit 711 determines whether the luminance difference absolute value for the allocation target pixel input from the focused pixel difference calculation unit 703 is smaller than a predetermined threshold.
  • the evaluation value judging unit 712 calculates an evaluation value when the pixel difference judging unit 711 determines that the absolute value of the luminance difference for the allocation target pixel input from the pixel difference calculating unit 703 of interest is smaller than a predetermined threshold value. It is determined whether the evaluation value DFD of the allocation target pixel input from the unit 702 is smaller than the minimum evaluation value of the DFD table of the vector selection unit 705.
  • the evaluation value determination unit 712 determines that the reliability of the motion vector corresponding to the allocation target pixel is high, and Outputs the evaluation value DFD of the pixel to be allocated to the selection unit 705 To do.
  • the vector selection unit 705 has a DFD table that holds the minimum evaluation value of each pixel on the interpolation frame. When the 0 vector is assigned to each pixel on the interpolation frame, The evaluation value DFDO is held in the DFD table in advance as the minimum evaluation value for each pixel on the interpolation frame.
  • the vector selection unit 705 Upon receiving the evaluation value DFD of the allocation target pixel from the vector evaluation unit 704, the vector selection unit 705 resets the flag of the allocation flag memory 56 based on the information of the position of the allocation target pixel from the pixel information calculation unit 701 by l ( Rewrite to true) and rewrite the minimum evaluation value in the DFD table of the pixel to be allocated to the evaluation value DFD of the pixel to be allocated. Further, the vector selection unit 705 allocates the motion vector from the pixel information calculation unit 701 to the allocation target pixel in the allocation vector memory 55 based on the information on the position of the allocation target pixel from the pixel information calculation unit 701.
  • FIG. 39 is a diagram showing the concept of the four-point interpolation processing of the present invention.
  • the arrow X indicates the horizontal direction in the frame t + 1
  • the arrow Y indicates the vertical direction in the frame t + 1.
  • a white circle represents a pixel position on the frame t + 1
  • a black dot represents a position below a pixel.
  • the upper leftmost black point p + v on frame t + 1 and its surrounding four pixels are shown enlarged in window E.
  • window E the letters inside the white circles indicate the luminance values of the four surrounding pixels.
  • the brightness value F (p + v) is represented by the following equation (12).
  • the DFD evaluation is performed using the luminance value F (p + v) obtained by the four-point interpolation processing.
  • the motion vector of the frame of the 24P signal detected by the vector detection unit 53 (hereinafter, also referred to as the original frame with respect to the inner frame) is defined by the motion vector and the 60P signal to be interpolated.
  • the motion vector and the 60P signal to be interpolated By assigning to the intersection with the interpolation frame, the motion of each pixel on the interpolation frame can be obtained. Conversely, from the assigned motion vector, it is possible to determine from which position the pixel on the interpolation frame has moved on the 24P signal frame.
  • Fig. 40 shows the motion vector detected in the original frame of the 24P signal and the inner frame of the 60P signal.
  • An example of a pixel on the camera is shown in one dimension.
  • Two interpolation frames F2 are inserted.
  • the position of the interpolation frame is the position where the time phase on the 24P signal is 0.0, 0.4, 0.8, 1.2, and 1.6
  • the position of the 60P signal is The frame force of the S can be set in the signal processing device 1 and set in advance!
  • a circle on each frame indicates each pixel.
  • the motion vectors vl, v2, and v3 detected in the frame t by the vector detector 52 in the preceding stage are extended in the frame t + 1 direction.
  • the motion vector passing near each pixel on the interpolation frame is a candidate vector assigned to the pixel (hereinafter, also referred to as an assignment candidate vector). It is said.
  • the motion vector vl from the pixel on the left side of frame t to the vicinity of the fourth and fifth pixels from the left of frame t + 1 is calculated between the second and third pixels on the interpolated frame F1 from the left. It passes between the third and fourth pixels from the left on the interpolation frame F2. Therefore, the motion vector vl is calculated based on the pixels included in the vicinity N1 of the point where the motion vector vl intersects the interpolation frames F1 and F2 (the second and third pixels from the left of the interpolation frame F1 and the interpolation frame F1).
  • the third and fourth pixels from the left of F2) are the allocation candidate vectors.
  • the motion vector v2 from the third pixel from the left of frame t to the vicinity of the second and third pixels from the left of frame t + 1 is the second and third pixels from the left on the interpolated frame F1. It passes between the pixels, between the second and third pixels from the left on the interpolation frame F2. Therefore, the motion vector v2 is determined by the pixels included in the area N2 near the point where the motion vector v2 intersects the interpolation frames F1 and F2 (the second and third pixels from the left and the interpolation pixel This is the allocation candidate vector allocated to the second and third pixels from the left of frame F2).
  • the motion vector v3 from the fifth pixel from the left of frame t to the vicinity of the fourth and fifth pixels from the left of frame t + 1 is the fourth and fifth pixels from the left on the interpolated frame F1.
  • the left force on the interpolated frame F2 also passes between the fourth and fifth pixels. Therefore, the motion vector v3 is calculated based on the pixels included in the neighboring area N3 of the point where the motion vector v3 intersects the interpolation frames F1 and F2 (the fourth and fifth pixels from the left of the interpolation frame F1 and the internal pixels). This is the allocation candidate vector that is allocated to the fourth and fifth pixels from the left of the insertion frame F2).
  • the allocation candidate vector of the second pixel from the left of the interpolation frame F2 is the motion vector v2, and the second and third pixels from the left on the interpolation frame F1 and the interpolation vector F2.
  • the allocation candidate vectors of the third pixel from the left of frame F2 are the motion vectors vl and v2.
  • the allocation candidate vectors of the fourth pixel in the left frame of the interpolation frame F2 are the motion vectors vl and v3, and the fourth and fifth pixels from the left in the interpolation frame F1 and the interpolation frame
  • the allocation candidate vector of the fifth pixel from the left of F2 is the motion vector v3.
  • the allocation candidate vector to be allocated to each pixel on the interpolation frame is obtained. It should be noted that, for the leftmost pixel and the rightmost pixel (solid circles in the figure) of the interpolation frames F1 and F2, the motion vectors passing through the vicinity are not shown. That is, there is no allocation candidate vector to be allocated to the leftmost pixel and the rightmost pixel of the interpolation frames F1 and F2. Therefore, for these pixels, allocation compensation processing is executed in an allocation compensating unit 57 described later.
  • an arrow T indicates a direction in which time elapses from a frame t at a time t on the front left to a frame t + 1 at a time t + 1 on the far right in the figure.
  • An interpolation frame F1 is placed at time t + pos between time t and time t + 1.
  • intersection is the point where the pixel corresponding to the end point of the motion vector V on the frame t of the 24P signal has moved.
  • the motion vector V is a near a point of intersection on the interpolation frame F1.
  • the pixels are shifted (translated in parallel) onto the pixels Gl to G4 to become allocation candidate vectors allocated to the respective pixels, and the allocation compensation processing is performed.
  • one motion vector may be a candidate to be assigned to four pixels in the vicinity of the force
  • a plurality of motion vectors may be assigned as candidate vectors for some pixels.
  • the vector allocating unit 54 calculates a pixel on the interpolation frame and an intersection on the original frame associated with the motion vector, and evaluates each motion vector using the intersection. Thus, a motion vector to be finally allocated to a pixel on the interpolation frame is determined.
  • FIG. 42 shows, from the bottom, the frame t at time t in FIG. 41, the interpolated frame Fl at time t + pos, and t
  • the frame t + 1 at the time t + 1 is shown one-dimensionally.
  • the motion vector sv is a pixel on the pixel G4 as an allocation candidate vector of the pixel G4 near the motion vector V force detected at the pixel (X, y) on the frame t.
  • Frame t and frame t + 1 are point P and point Q, respectively.
  • the vector allocating unit 54 first assigns the points P and Q to a
  • the respective DFD calculation ranges at the center are determined, and it is determined whether the calculated DFD calculation range extends beyond the image frame. Therefore, if the DFD calculation range centered on the points P and Q is outside the image frame, the motion vector sv is excluded from the candidates.
  • Attachment 54 uses a point P and a point Q as a second evaluation of the motion vector
  • the luminance difference absolute value dp is determined, and it is determined whether the luminance difference absolute value dp is larger than a predetermined value. If it is determined that the luminance difference absolute value dp is larger than the predetermined value, the reliability of the motion vector sv at the pixel G4 is determined to be low, and the motion vector sv is excluded from the candidates aa It is. Note that the luminance difference absolute value dp is represented by the following equation (15).
  • the vector allocating unit 54 calculates the points P and Q a
  • the evaluation judgment is made based on the absolute difference value representing the correlation value in the DFD calculation range centered on. That is, the vector allocating unit 54 obtains the evaluation value DFD (absolute difference value) of the motion vector sv in the pixel G4 using the DFD operation range centered on the points P and Q, and obtains the obtained evaluation value.
  • DFD absolute difference value
  • the vector allocating unit 54 allocates the motion vector having the minimum evaluation value DFD among the obtained evaluation values DFD to the pixel G4.
  • the position on the original frame associated with the motion vector with respect to the pixel of the interpolation frame is used.
  • the motion vector of the allocation candidate is extended based on the pixel position of the interpolation frame. In some cases, the position does not match, and the pixel value cannot be obtained as it is. In such a case, the four-point interpolation processing described above with reference to FIG. 39 is executed.
  • FIG. 43 shows an example of four-point interpolation in the vector allocation processing.
  • portions corresponding to those in FIGS. 41 and 42 are denoted by the corresponding reference numerals, and description thereof will not be repeated because it is repeated.
  • the motion vector sv of the allocation candidate is represented by the pixel position a of the interpolation frame F1.
  • the luminance difference absolute value dp and the evaluation value DFD are calculated using the pixel values of the intersection points P and Q obtained by the four-point interpolation processing.
  • the luminance difference absolute value dp and the evaluation value DFD can be obtained with higher accuracy than the conventional method of rounding the sub-pixel component.
  • the frame t of the image at time t which is the original frame of the 24P signal, and the frame t + 1 of the image at time t + 1 are sent to the pixel information calculation unit 701, the evaluation value calculation unit 702, and the pixel difference calculation unit of interest 703. Is entered.
  • the pixel information calculation unit 701 controls the vector selection unit 705, and in step S701, initializes the allocation flag of the allocation flag memory 56 to O (False). Then, the allocation vector memory 55 is initialized with the 0 vector, and the flow proceeds to step S703. As a result, a 0 vector is assigned to a pixel to which no motion vector is assigned.
  • step S703 the pixel information calculation unit 701 controls the evaluation value calculation unit 702 to calculate the evaluation value DFD0 using the 0 vector for all pixels on the interpolation frame
  • the vector selection unit 705 is controlled, and the 0-vector evaluation value DFD0 calculated by the evaluation value calculation unit 702 is stored in the DFD table as the minimum evaluation value for each pixel of the interpolation frame, and the process proceeds to step S704. That is, in step S703, the evaluation value calculation unit 702 calculates the evaluation value DFD0 using the 0 vector for all the pixels of the interpolation frame, and outputs the calculated evaluation value DFD0 via the vector evaluation unit 704. , And output to the vector selection unit 705. Then, the vector selection unit 705 stores the evaluation value DFD0 input via the vector evaluation unit 704 as the minimum evaluation value of the corresponding pixel in the DFD table.
  • step S704 the pixel information calculation unit 701 determines that the original A pixel is selected from the frame, and the process proceeds to step S705. In this case, pixels are selected in the raster scan order from the upper left of the frame.
  • step S705 the pixel information calculation unit 701 executes a pixel position calculation process, and proceeds to step S706.
  • This pixel position calculation process allows the motion vector detected at the pixel selected in step S704 to be assigned to an interpolation frame to be allocated. Is calculated, and a position on the original frame associated with the motion vector is calculated based on the calculated allocation target pixel.
  • step S706 the pixel information calculation unit 701 selects the calculated allocation target pixel, outputs the selected allocation target pixel and its motion vector to the vector selection unit 705, and proceeds to step S707. At this time, at the same time, based on the selected allocation target pixel, the pixel information calculation unit 701 transmits the information on the position on the original frame associated with the motion vector to the evaluation value calculation unit 702 and the target pixel calculation unit 703. Output. In step S706, when there are a plurality of allocation target pixels, the pixel information calculation unit 701 selects the pixel from the upper left pixel.
  • step S707 the pixel information calculation unit 701 performs an allocation vector evaluation process on the selected allocation target pixel, and proceeds to step S708.
  • the details of this allocation vector evaluation processing will be described later with reference to FIG. 46.
  • the motion vector evaluation value DFD and the luminance difference absolute value of the allocation target pixel are obtained, and the allocation target pixel is determined. Is determined, and as a result of these determinations, the motion vector in the allocation vector memory 55 is rewritten with the motion vector determined to have high reliability.
  • step S708 the pixel information calculation unit 701 determines whether or not the processing has been completed for all the pixels to be allocated, and determines that the processing has not been completed for all the pixels to be allocated. Returns to step S706, selects the next pixel to be allocated, and repeats the subsequent processing.
  • step S708 If it is determined in step S708 that the processing of all the pixels to be allocated has been completed, the pixel information calculation unit 701 determines in step S709 that the elements in the detection vector memory 53 have been processed. It is determined whether or not the processing has been completed for all the pixels of the frame. If the pixel information calculation unit 701 determines in step S709 that processing of all pixels of the original frame on the detection vector memory 53 has not been completed, the process returns to step S704, and the pixel information calculation unit 701 returns to step S704. The next pixel is selected, and the subsequent processing is repeated. If the pixel information calculation unit 701 determines in step S709 that the processing for all the pixels in the detection vector memory 53 has been completed, the vector allocation processing ends.
  • FIG. 45 shows an example of the pixel position calculation process in step S705 in FIG.
  • step S721 the pixel information calculation unit 701 acquires the motion vector detected by the pixel selected in the processing in step S704 from the detection memory vector 53, and proceeds to step S722. If the motion vector is the motion vector of the selected pixel, since the allocation vector memory 55 previously stores the 0 vector as an initial value, the subsequent steps S722 to S724 and FIG. The process of steps S706 to S708 is skipped, and the process proceeds to step S709.
  • step S722 the pixel information calculation unit 701 calculates an intersection between the obtained motion vector and the interpolated frame. That is, the pixel information calculation unit 701 extends the obtained motion vector in the direction of the next frame t + 1, calculates an intersection between the extended motion vector and the interpolated frame, and proceeds to step S723.
  • step S723 the pixel information calculation unit 701 sets an allocation target pixel from the intersection calculated from the motion vector and the interpolation frame, and proceeds to step S724. At this time, if the intersection point matches the pixel position on the interpolation frame, the pixel information calculation unit 701 sets the intersection point as the allocation target pixel. On the other hand, when the intersection does not match the pixel position on the interpolation frame, the pixel information calculation unit 701 sets the four pixels near the intersection on the interpolation frame as allocation target pixels as described above.
  • step S724 the pixel information calculation unit 701 sets the evaluation value calculation unit 702 and the pixel-of-interest pixel difference calculation unit 703 on the basis of each allocation target pixel necessary for obtaining the evaluation value DFD and the luminance difference absolute value. Then, the position on the original frame associated with the obtained motion vector is calculated. Specifically, the pixel information calculation unit 701 determines in step S724 The obtained motion vector is shifted (translated) to the set allocation target pixel, the position of the intersection of the shifted motion vector and the original frame is obtained, and the pixel position calculation processing is completed. Return to S706.
  • FIG. 46 shows an example of the allocation vector evaluation processing in step S707 of FIG.
  • step S706 of FIG. 44 the pixel information calculation unit 701 obtains a position on the original frame associated with the motion vector based on the selected pixel to be allocated, and determines the position on the obtained original frame. Is input to the evaluation value calculation unit 702 and the focused pixel difference calculation unit 703.
  • the evaluation value calculation unit 702 obtains the evaluation value DFD of the motion vector at the allocation target pixel in step S741. Then, a DFD calculation range (mXn) centered on the position on frame t and frame t + 1 is calculated, and the process proceeds to step S742 to determine whether or not the calculated DFD calculation range is within the image frame. If the evaluation value calculation unit 702 determines in step S742 that the DFD calculation range is out of the image frame, the evaluation value calculation unit 702 determines that the motion vector cannot be an allocation candidate vector to be allocated to the allocation target pixel. The processing from S743 to S749 is skipped, the allocation vector evaluation processing ends, and the flow returns to step S708 in FIG.
  • step S742 determines in step S742 that the calculated DFD calculation range is within the image frame. Then, the evaluation value DFD of the pixel to be allocated is calculated, and the obtained evaluation value DFD is output to the evaluation value determination unit 712, and the process proceeds to step S744. At this time, if the position on the original frame is equal to or less than the pixel, the evaluation value DFD of the allocation target pixel is obtained by calculating the luminance value of the intersection on the original frame using the above-described four-point interpolation. It is calculated.
  • the pixel-of-interest calculation unit 703 obtains the luminance difference absolute value dp of the allocation target pixel in step S744, The calculated brightness difference absolute value dp is output to the pixel difference determination unit 711, and the process proceeds to step S745.
  • the position on the original frame was below the pixel.
  • the focused pixel difference calculation unit 703 calculates the brightness difference absolute value dp of the allocation target pixel by obtaining the brightness value of the intersection on the original frame using the above-described four-point interpolation.
  • step S745 the pixel difference determination unit 711 determines whether or not the luminance difference absolute value dp of the allocation target pixel from the pixel-of-interest calculation unit 703 is equal to or smaller than a predetermined threshold! /.
  • a predetermined threshold value it is determined that there is a high possibility that the intersections of the frame t and the frame t + 1 belong to different objects, that is, It is determined that the motion vector is not an allocation candidate vector to be allocated to an allocation target pixel having a low degree of reliability in the allocation target pixel, and the processing of steps S746 to S749 is skipped, and the allocation vector evaluation processing is terminated.
  • step S708 determines whether or not the luminance difference absolute value dp of the allocation target pixel from the pixel-of-interest calculation unit 703 is equal to or smaller than a predetermined threshold! /.
  • step S745 If the pixel difference determination unit 711 determines in step S745 that the luminance difference absolute value dp force of the allocation target pixel is equal to or smaller than the predetermined threshold, the process proceeds to step S746.
  • the evaluation value determination unit 712 refers to the DFD table of the vector selection unit 705, and stores the evaluation value DFD of the allocation target pixel from the evaluation value calculation unit 702 in the DFD table.
  • the motion vector is determined whether or not it is smaller than the minimum evaluation value of the pixel (in the meantime, the evaluation value DFDO of the 0 vector), and the evaluation value DFD of the allocation target pixel from the evaluation value calculation unit 702 is stored in the DFD table, If it is determined that the motion vector is equal to or greater than the minimum evaluation value of the pixel to be allocated, the motion vector is determined not to have high reliability in the pixel to be allocated, and the processing of steps S747 to S749 is skipped, and the allocation vector evaluation processing is performed. The process ends, and the process returns to step S708 in FIG.
  • the evaluation value determination unit 712 stores the evaluation value DFD of the allocation target pixel from the evaluation value calculation unit 702 in the DFD table and calculates the evaluation value DFD from the minimum evaluation value of the allocation target pixel. Is smaller, the motion vector is determined to have the highest reliability based on the evaluation value DFD among the motion vectors compared so far, and the reliability is determined to be high.
  • the evaluation value DFD of the allocation target pixel is output to the vector selection unit 705, and the flow advances to step S747.
  • the vector selection unit 705 outputs the evaluation value DFD of the pixel to be allocated from the evaluation value determination unit 712.
  • the allocation flag of the allocation target pixel in the allocation flag memory 56 is rewritten to l (True), and the process proceeds to step S748, where the minimum evaluation value corresponding to the allocation target pixel in the DFD table is determined by the evaluation value determination unit.
  • the evaluation value DFD determined to have high reliability by 712 is rewritten, and the process proceeds to step S749.
  • step S749 the vector selection unit 705 determines the motion vector allocated to the pixel to be allocated in the allocation vector memory 55 by the motion vector corresponding to the evaluation value DFD determined to have high reliability. The rewriting and the allocation vector evaluation processing are completed, and the flow returns to step S708 in FIG.
  • the evaluation value DFD based on the 0 vector is previously stored in the DFD table as an initial value, and while the motion vectors are sequentially processed, the evaluation value DFD based on a certain motion vector becomes the minimum evaluation value at that time. When this value is reached, the minimum evaluation value of the DFD table and the motion vector allocated to the allocation vector memory 55 are updated as needed. The source can be used efficiently.
  • FIG. 47 is a block diagram showing a configuration of allocation compensating section 57.
  • the allocation compensating unit 57 whose configuration is shown in FIG. 47 is composed of an allocation vector determining unit 801 and a vector compensating unit 802, and assigns a pixel on the interpolation frame of a powerful 60P signal to which no motion vector is allocated by the vector allocating unit 54. , A process of compensating and allocating the motion vector of the peripheral pixel.
  • the motion vector is allocated to the pixel of the interpolation frame on the allocation vector memory 55 by the vector allocation unit 54 in the previous stage. Also, l (True) is written in the allocation flag memory 56 of the pixel to which the motion vector is allocated by the vector allocation unit 54, and the allocation flag memory 56 of the pixel to which the motion vector is not allocated is used. O (False) is written in the assignment flag.
  • the allocation vector determination unit 801 refers to the allocation flag in the allocation flag memory 56, and determines whether the motion vector is allocated to the pixel of interest by the vector allocation unit 54. Then, the allocation vector determination unit 801 selects a small pixel of interest to which the motion vector is not allocated by the vector allocation unit 54, and controls the vector compensation unit 802 for the selected pixel of interest. The motion vector of the peripheral pixel of the target pixel is selected and assigned to the interpolation frame in the allocation vector memory 55.
  • the vector compensating unit 802 acquires the motion vector allocated to the peripheral pixel of the pixel of interest from the allocation vector memory 55, and inputs the frame t of the input image at time t and the image at time t + 1. By obtaining and comparing the evaluation value DFD of the obtained motion vector using the frame t + 1 of the above, among the motion vectors allocated to the peripheral pixels of the pixel of interest, the highest reliability based on the evaluation value DFD is obtained. A high motion vector is allocated to the pixel of interest in the allocation vector memory 55. Further, the vector compensating unit 802 rewrites the allocation flag of the target pixel to which the motion vector has been allocated to l (True).
  • FIG. 48 is a block diagram showing a configuration of the vector compensator 802.
  • the vector compensator 802 shown in FIG. 48 includes a compensation processor 811 and an evaluation value calculator 812.
  • the compensation processing unit 811 has a memory 821 that stores the minimum evaluation value DFD and the motion vector of the minimum evaluation value DFD as a candidate vector (hereinafter, also referred to as a compensation candidate vector). As the initial value of the pixel of interest selected by the allocation vector determination unit 801, the evaluation DFD of the zero vector is stored in the memory 821 as the minimum evaluation value, and the zero vector is stored in the memory 821 as a compensation candidate vector.
  • the compensation processing unit 811 refers to the allocation flag memory 56 to determine whether or not there is a motion vector of a peripheral pixel of the pixel of interest, obtains a motion vector allocated to the peripheral pixel from the allocation vector memory 55, and evaluates the motion vector.
  • the value calculation unit 812 is controlled to calculate the evaluation value DFD of the motion vector.
  • the compensation processing unit 811 judges whether the evaluation value DFD calculated by the evaluation value calculation unit 812 is smaller than the minimum evaluation value stored in the memory 821 and calculated. If it is determined that the evaluated evaluation value DFD is smaller than the minimum evaluation value, the compensation candidate vector and the minimum evaluation value in the memory 821 are rewritten to the calculated evaluation value DFD and its motion vector.
  • the motion vector (compensation candidate vector) of the peripheral pixel determined to be the smallest is assigned to the target pixel in the allocation vector memory 55 as the motion vector of the target pixel. Further, the compensation processing unit 811 rewrites the allocation flag of the allocation flag memory 56 of the target pixel to which the motion vector is allocated to l (True).
  • the evaluation value calculation unit 812 determines the frame t of the 24P signal image at the input time t and the frame t + 1 of the image at the time t + 1. , The motion vector evaluation value DFD from the allocation vector memory 55 is calculated, and the calculated evaluation value DFD is output to the compensation processing unit 811.
  • FIG. 49A is a diagram illustrating the principle of allocation compensation processing.
  • each pixel on the interpolation frame is shown.
  • the arrows output from the pixels represent the motion vectors assigned to the pixels, and the pixels without the arrows represent the pixels to which the motion vectors are assigned!
  • FIG. 50 is a diagram illustrating the principle of motion correlation.
  • an object Ol that moves with a motion vl on a certain frame and an object 02 that moves with a motion v2 are shown.
  • the pixel of interest P1 belonging to the object Ol and the vicinity K1 have almost the same movement vl as the object Ol.
  • the pixel of interest P2 belonging to the object 02 and its neighboring K2 have almost the same motion v2 as the object 02!
  • the motion correlation indicates that in a space at the same time (in the same frame), the motion of a pixel belonging to a certain object often makes almost the same motion. It is. Therefore, for a pixel for which a motion vector could not be allocated, the fact that there is such a motion correlation in a space at the same time (within the same frame) is used to calculate the motion vector of a peripheral pixel. The corresponding motion vector for that pixel can be selected. Although the explanation is omitted, the same applies to the correlation in the time direction.
  • this is a process of selecting a motion vector from the motion vectors of the peripheral pixels and supplementing it as the motion vector of the pixel of interest.
  • white circles represent pixels on the interpolation frame, and eight peripheral pixels are shown around the target pixel P for which a motion vector is to be obtained.
  • the motion vector of the target pixel P is obtained with reference to the motion vectors of the eight peripheral pixels.
  • the upper left pixel, the upper right pixel, and the lower right pixel (black circle) among the eight pixels around the pixel of interest P are processed in the preceding stage (for example, the above-described vector allocation process).
  • the motion vectors (arrows) obtained by such methods are shown. That is, in this case, the compensation candidate vector of the target pixel P is a motion vector of the upper left pixel, the upper right pixel, and the lower right pixel. Since the motion vector is obtained in the raster scan order from the upper left pixel on the frame in the frame, the motion vector is still not obtained among the eight peripheral pixels, and there may be some pixels. Force A motion vector is still required, and cannot be used as a compensation candidate vector.
  • the peripheral pixels are obtained by this process.
  • the circle is composed of motion vectors.
  • a 0 vector (stationary vector) SO with a motion amount of 0 can also be used as a compensation candidate vector.
  • the pixel having the motion vector obtained by this processing and the force separately representing the pixel in which the motion vector already exists are the same in that both have the motion vector.
  • the pixel having the motion vector obtained by this processing is also included in the pixel (black circle) in which the motion vector already exists. Therefore, in the example of FIG. 54, the compensation candidate vector of the target pixel P is composed of the motion vector of the pixel (black circle) for which the motion vector already exists and the 0 vector SO.
  • the evaluation value DFD which is a method for evaluating a motion vector
  • FIG. 55 shows an example in which the 0 vector SO is used as a compensation candidate vector.
  • FIG. 56 shows an example in which the motion vector VK1 of the upper left pixel of the eight peripheral pixels is used as the compensation candidate vector.
  • FIG. 57 shows an example in which the motion vector VK2 of the upper center pixel of the eight peripheral pixels is used as the compensation candidate vector!
  • the 0 vector SO is selected from among the compensation candidate vectors of the target pixel P shown on the left side of the figure, and the evaluation value DFD of the selected 0 vector SO is obtained.
  • the evaluation value DFD for the 0 vector SO is calculated based on the target pixel P on the inner frame in the frame t and frame t + 1 of the 24P signal, sandwiching the target pixel P (interpolated frame of the 60P signal).
  • the motion vector VKl of the upper left pixel of the eight peripheral pixels is selected, and the evaluation value DFD of the selected motion vector VK1 is obtained.
  • the evaluation value DFD of the motion vector VK1 of the upper left pixel of the eight surrounding pixels is calculated on the basis of the pixel of interest P on the interpolation frame on the frame t and frame t + 1 sandwiching the pixel of interest P (interpolated frame).
  • the motion vector VK2 of the upper central pixel of eight surrounding pixels is selected as a compensation candidate vector, and An example of obtaining an evaluation value DFD of the obtained motion vector VK2 is shown. That is, the evaluation value DFD of the motion vector VK2 of the upper and middle pixels of the eight peripheral pixels is located on the frame t and frame t + 1 that sandwich the pixel of interest P (interpolated frame)! With reference to the pixel of interest P, an intersection with which the selected motion vector VK2 is associated is obtained, and a DFD operation range D3-1 and D3-2 within a predetermined range (mXn) is calculated around this intersection. Using the calculated DFD calculation ranges D3-1 and D3-2, the above formula (1) is calculated.
  • the other compensation candidate vectors shown on the left side of the figure are basically the same processing, and thus description thereof is omitted, but as described above, the surrounding pixels of the pixel of interest P
  • the evaluation values DFD of all the compensation candidate vectors are obtained, and the obtained evaluation values DFD are compared, and among these, the compensation candidate vector having the smallest evaluation value DFD is obtained as shown in FIG. 58. It is selected as the most reliable and reliable motion vector assigned to the target pixel P.
  • the evaluation value DFD of the motion vector VK1 of the upper left pixel of the eight peripheral pixels is determined to be the smallest among the compensation candidate vectors of the peripheral pixels of the target pixel P, and the motion vector VK1 is , Is selected and assigned as the motion vector of the pixel of interest P.
  • the motion vector of a strong pixel that cannot be allocated by the vector allocation unit 54 is compensated for by using the motion correlation. Therefore, it is possible to suppress the disturbance of the motion as compared with the case where the motion vector is not allocated and, for example, the 0 vector is allocated. Further, the motion vector of the pixel compensated in this way can be reused as a compensation candidate vector of another pixel. In other words, a motion vector in the temporal direction, which is obtained only by a motion vector in the spatial direction, can be used as the compensation candidate vector. The vector is selected, and a stable motion vector with few errors can be obtained. This improves the accuracy of vector allocation.
  • the motion vector is allocated to the pixel of the interpolation frame on the allocation vector memory 55 by the vector allocation unit 54 in the preceding stage. Also, l (True) is written in the allocation flag memory 56 of the pixel to which the motion vector is allocated by the vector allocation unit 54, and the allocation flag memory 56 of the pixel to which the motion vector cannot be allocated is used. 0 (False) is written to the allocation flag of! / ,.
  • step S801 the allocation vector determination unit 801 selects a pixel of the inner frame of the allocation flag memory 56 as a pixel of interest, and proceeds to step S802. At this time, the allocation vector determination unit 801 selects pixels from the upper left pixel of the frame in raster scan order.
  • step S802 the allocation vector determination unit 801 determines whether or not the allocation flag power of the pixel of interest in the allocation flag memory 56 is O (False), and determines whether or not the allocation flag of the pixel of interest in the allocation flag memory 56. If it is determined that the force is O (False), it is determined that no motion vector has been allocated, and the flow advances to step S803 to control the compensation processing unit 811 to execute the vector compensation processing, and then advances to step S804. The details of this vector compensation processing will be described later with reference to FIG. 60.By this vector compensation processing, the minimum motion vector of the evaluation value DFD is selected as a compensation candidate vector from among the motion vectors assigned to the peripheral pixels. Gc fe to memory 821.
  • step S804 the compensation processing unit 811 allocates the compensation candidate vector in the memory 821 to the allocation vector memory 55 as the motion vector of the pixel of interest, and proceeds to step S805 to allocate the pixel of interest in the allocation flag memory 56.
  • the flag is rewritten to l (True), and the flow advances to step S806.
  • step S802 if the allocation vector determination unit 801 determines that the allocation flag of the target pixel in the allocation flag memory 56 is l (True), the motion vector is already assigned to the target pixel. Is determined to have been allocated, the processing of steps S803 to S805 is skipped, and the process proceeds to step S806.
  • step S806 the allocation vector determination unit 801 determines whether or not processing of all pixels in the inner frame of the allocation flag memory 56 has been completed, and processing of all pixels has not been completed. If it is determined that it is, the process returns to step S801, and the next pixel of the interpolation frame in the allocation flag memory 56 is selected as the pixel of interest, and the subsequent processing is executed. If it is determined in step S806 that the processing of all pixels of the interpolation frame in the allocation flag memory 56 has been completed, the allocation compensation processing ends.
  • FIG. 60 shows an example of the vector compensation process in step S803 in FIG. 59A.
  • step S821 the compensation processing unit 811 controls the evaluation value calculation unit 812 to calculate the evaluation value DFD0 using 0 vectors, and proceeds to step S822. Specifically, in step S821, the evaluation value calculation unit 812 uses the frame t of the input image at time t and the frame t + 1 of the image at time t + 1 to refer to, for example, FIG. 55. As described above, the evaluation value DFD0 of the 0th vector is calculated for the target pixel, and the calculated evaluation value DFD0 is output to the compensation processing unit 811.
  • step S822 the compensation processing unit 811 stores the evaluation value DFD0 as the minimum evaluation value in the memory 821, proceeds to step S823, stores the 0 vector as a compensation candidate vector in the memory 821, and proceeds to step S824. move on.
  • step S824 the compensation processing unit 811 selects one peripheral pixel from among the eight peripheral pixels of the target pixel selected by the allocation vector determination unit 801 and proceeds with step S825. At this time, the compensation processing unit 811 selects the peripheral pixels in the upper left pixel power raster scan order from the eight peripheral pixels.
  • step S825 the compensation processing unit 811 refers to the allocation flag memory 56, and determines whether or not there is a force in which a motion vector of the selected peripheral pixel exists. If the allocation flag of the peripheral pixel in the allocation flag memory 56 is l (True), the compensation processing unit 811 determines in step S825 that there is a motion vector allocated to the selected peripheral pixel, and Proceeding to S826, the motion vector of the peripheral pixel is acquired from the allocation vector memory 55, and the flow proceeds to step S827. At this time, the motion vectors of the peripheral pixels are also output from the allocation vector memory 55 to the evaluation value calculation unit 812.
  • the evaluation value calculation unit 812 determines in step S827 the frame t of the input image at time t and the frame t + of the image at time t + 1. Using 1, the motion vector evaluation value DFD from the allocation vector memory 55 is calculated for the pixel of interest, the calculated evaluation value DFD is output to the compensation processing unit 811, and the process proceeds to step S 828.
  • the compensation processing unit 811 checks in step S828 whether the evaluation value DFD is smaller than the minimum evaluation value of the pixel of interest stored in the memory 821. If it is determined that the evaluation value DFD is smaller than the minimum evaluation value of the pixel of interest stored in the memory 821, the process proceeds to step S829, and the minimum evaluation value of the memory 821 is set to the minimum evaluation value. The value is rewritten to the evaluation value DFD determined to be smaller than the above, the process proceeds to step S830, the compensation candidate vector in the memory 821 is rewritten to the motion vector of the minimum evaluation value, and the process proceeds to step S831.
  • step S825 the allocation flags of the peripheral pixels in the allocation flag memory 56 are set to 0.
  • step S828 when the compensation processing unit 811 determines that the evaluation value DFD is equal to or more than the minimum evaluation value of the pixel of interest stored in the memory 821, the compensation processing unit 811 skips the processing of steps S829 and S830. , And proceed to step S831.
  • step S831 the compensation processing unit 811 determines whether or not the processing has been completed for all eight pixels around the pixel of interest, and has completed the processing for all eight pixels around the pixel of interest. If not, the process returns to step S824 to select the next peripheral pixel and repeat the subsequent processing.
  • the compensation processing unit 811 determines in step S831 that the processing has been completed for all eight pixels around the pixel of interest, the compensation processing unit 811 ends the vector compensation processing, and returns to step S804 in FIG. 59A.
  • Vector compensation processing is performed on pixels whose motion vectors are not determined in any processing, such as pixels not detected by the vector detection unit 52 (zero vector is detected). May be performed.
  • vector compensation processing may be performed on pixels for which the detected motion vector or the assigned motion vector is not reliable (the reliability is low).
  • the allocation compensation processing is executed at the individual pixel level! That is, in the above-described examples of FIG. 51 to FIG. 58, each individual pixel is evaluated, and the allocation compensation processing is executed on the evaluation.
  • a block mode in which a plurality of pixel-powered blocks are evaluated at once is used to reduce the number of pixels in a block once. You may try to evaluate it.
  • the block of interest B is composed of four pixels, and each pixel near the block of interest B (in FIG. 49B, 12 pixels) is a peripheral pixel. Further, among the four pixels in the attention block B, a pixel whose allocation flag is 1 (a pixel in which an allocation vector already exists) may be used as a peripheral pixel.
  • the evaluation value DFD of the compensation candidate vector is calculated on the basis of the block B of interest in the same manner as in the cases of FIGS. 55 to 57.
  • the block of interest B does not need to be composed of 4 pixels, and includes, for example, 9 pixels of another block of interest near the block of interest B and a plurality of pixels near the block of interest B.
  • FIG. 59B an allocation compensation process in which the above-described processing applied to each pixel (hereinafter, also referred to as pixel mode processing) is applied to the target block B in FIG. 49B will be described. .
  • Fig. 59B shows the allocation compensation processing for the block corresponding to the allocation compensation processing for the individual pixels in Fig. 59A.
  • Fig. 59B the same processing as in the example of Fig. 59A is performed.
  • the same step numbers are assigned to the processes, and the description thereof will be omitted as appropriate because it will be repeated.
  • the allocation vector determination unit 801 selects a pixel of the interpolation frame of the allocation flag memory 56 as a block of interest in step S860, and proceeds to step S861. move on. At this time, the allocation vector determining unit 801 selects, for example, a target block composed of four pixels in FIG. 49B in raster scan order from the upper left pixel of the frame.
  • step S861 the allocation vector determination unit 801 determines whether or not there is a pixel having the allocation flag power O (False) in the allocation flag memory 56 in the block of interest.
  • the allocation vector determination unit 801 determines that there is a pixel having the allocation flag power O (False) in the allocation flag memory 56, it determines that there is a pixel having no motion vector in the block of interest, and proceeds to step Proceed to S803.
  • the allocation vector determination unit 801 controls the compensation processing unit 811 to execute the vector compensation processing.
  • the details of the vector compensation processing are different only in that the processing target is the block of interest. Since the processing is basically the same as the processing described above with reference to FIG. 60, the description thereof is omitted.
  • the evaluation value DFD0 of the block of interest is calculated and stored, and is compared with the evaluation value DFD0, whereby the strength of the motion vector allocated to the peripheral pixels of the block of interest Evaluation value
  • the minimum motion vector of the DFD The force is stored in the memory 821 as a compensation candidate vector of the target block.
  • the compensation candidate vector of the target block may be stored in all the pixels of the target block in the memory 821, or a motion vector is assigned to the target block, and is stored only for the pixel. Alternatively, it may be stored only at a predetermined pixel position of the block of interest.
  • step S803 the compensation candidate vector force memory of the block of interest is stored in the memory 821, and the process proceeds to step S862.
  • the compensation processing unit 811 selects the target pixel in the target block, and determines in step S862 whether the allocation flag in the allocation flag memory 56 of the target pixel in the target block is O (False). If the allocation flag of the pixel of interest is determined to be O (False), the process proceeds to step S804, and the compensation candidate vector of the memory 821 is used as the motion vector of the pixel of interest as in the case of FIG. Assigned to 55, the process proceeds to step S805, and the assignment flag of the target pixel in the assignment flag memory 56 is set to l (True).
  • step S863 the compensation processing unit 811 determines whether or not processing of all pixels in the target block has been completed, and determines whether all pixels in the target block have been processed. If it is determined that the processing of has not been completed, the process proceeds to step S864 to select the next target pixel in the target block, returns to step S862, and repeats the subsequent processes.
  • step S861 when it is determined that there is no pixel having the allocation flag power O (False) in the allocation flag memory 56, or in step S863, the processing of all the pixels in the block of interest ends. If it is determined that the processing has been completed, the compensation processing unit 811 proceeds to step S865, determines whether or not processing of all blocks of the interpolation frame in the allocation flag memory 56 has been completed, and ends processing of all blocks. If it is determined that there is no block, the process returns to step S860, and the next block of the interpolation frame in the allocation flag memory 56 is selected as the target block, and the subsequent processing is executed. If it is determined in step S865 that the processing of all blocks of the interpolation frame in the allocation flag memory 56 has been completed, the allocation compensation processing ends.
  • a motion vector is assigned to each pixel (pixel to which no motion vector is assigned) of the block of interest.
  • a motion vector calculated for a block having a pixel to which a motion vector is allocated is simply allocated to the block. Also, the motion vector already assigned to the pixel of the block before the start of the block mode is not replaced with the motion vector calculated for the block. Further, since the vector allocating unit 54 previously allocates a flag of 1 or 0 (allocation flag memory 56) to the pixels of the block based on the existing motion vector, the pixel of the block assigns the motion vector. There is no need to recalculate to know whether or not it has the force. As described above, by employing the block mode when allocating and compensating the motion vector, the calculation amount is reduced as compared with the processing in the pixel mode.
  • the most reliable and reliable motion vector based on the evaluation value DFD can be obtained. This makes it possible to improve the accuracy of vector allocation and suppress the discontinuity of the image generated in the subsequent image interpolation process, compared to the case where no vector is allocated and the 0 vector is allocated. .
  • the obtained (allocated) motion vector force of the peripheral pixels of the pixel of interest (or block) is a real motion vector. Therefore, since a real motion vector is allocated, no error due to allocation, which is caused by, for example, allocation of a created virtual motion vector, is accumulated in each pixel to be allocated.
  • motion vectors of peripheral pixels newly allocated by this processing are used as allocation candidates.
  • the motion vector of the peripheral pixel of the peripheral pixel (block) is also used as an allocation candidate, and in other words, from a wider range of peripheral pixels (that is, more peripheral pixels), This means that a more reliable motion vector to be assigned can be searched. Therefore, by using the motion vector of the peripheral pixel in the allocation compensation processing, it is possible to allocate the motion vector to the target pixel or the target block with higher reliability!
  • the allocation flag of the pixel to which the motion vector is allocated by the above-described allocation compensation processing is rewritten to l (True), and the motion vector allocated by the allocation compensation processing is also used as the compensation candidate vector of the next pixel. Since it is used, almost the same motion vector is selected for pixels that make almost the same motion in the object, and a stable motion vector with few errors can be obtained. As a result, it is possible to suppress block noise, powder noise, and the like of an image generated in a later stage, and improve quality.
  • the evaluation value DFD of the 0 vector is calculated in advance and stored in the memory as the minimum evaluation value, so that all the compensation candidate vector evaluation values DFD can be obtained at once. Time and resources can be used more efficiently than when calculating and selecting the minimum evaluation value DFD from the calculated values.
  • FIG. 61 is a block diagram showing another example of the signal processing device 1.
  • the signal processing device 1 of FIG. 61 has the same configuration as the signal processing device 1 of FIG. 2 described above except that a determination result flag memory 911 and a detection compensation unit 912 are added. It is.
  • Frame t + 1 at time t + 1 consists of frame memory 51, vector detection unit 52, detection compensation unit 9 12, are supplied to the vector allocating unit 54, the allocation compensating unit 57, and the image interpolating unit 58.
  • the frame t at the time t stored in the frame memory 51 is supplied to the vector detection unit 52, the detection compensation unit 912, the vector allocation unit 54, the allocation compensation unit 57, and the image interpolation unit 58.
  • the vector detection unit 52 detects a motion vector between the target block of the frame t on the frame memory 51 and the target block of the frame t + 1 of the input image, and stores the detected motion vector in the detection vector memory 53.
  • the vector detection unit 52 evaluates and determines the degree of reliability of the motion vector, and when determining that the reliability of the motion vector is high, sets l (True) to the determination result flag of the determination result flag memory 911. ) Is stored, and when it is determined that the reliability of the motion vector is low, O (False) is stored in the determination result flag of the determination result flag memory 911.
  • a gradient method, a block matching method, or the like is used as a method of detecting the motion vector between the two frames.
  • the vector detection unit 52 uses an evaluation value for evaluating the degree of reliability of the detected motion vector. DFD is determined, and whether or not the reliability of the motion vector is high is determined by determining whether or not the evaluation value DFD of the motion vector is smaller than a predetermined threshold value, and the determination result is determined based on the determination result. Write value to flag memory 911
  • the vector detection unit 52 determines whether or not there are many effective pixels for motion vector detection in the operation block to be subjected to the gradient method calculation. Is determined as to whether the reliability of the motion vector is high, and a value is written to the determination result flag memory 911 based on the determination result. That is, as described above, since the gradient operation is an operation based on the least squares method, which is a statistical solution, the more pixels effective in detecting a motion vector are included in an operation block, This is because the reliability of the motion vector calculated by the gradient method operation increases because the accuracy of the gradient method operation is improved (that is, a more reliable motion vector is calculated).
  • the effective pixel determination unit 403 uses the motion vector It is determined whether or not the number of pixels effective for detecting the number is greater than a predetermined threshold, and a flag (flg) of the result of the determination is output to the gradient method calculation unit 404.
  • the determination result flag memory 911 determines whether the reliability of the detected motion vector is high or low for each pixel of the original frame (that is, whether the detected motion vector is reliable or not reliable). Is stored. For example, a judgment result flag of True (l) indicates that the reliability of the motion vector of the corresponding pixel is high, and a judgment result flag of False (O) indicates the reliability of the motion vector of the corresponding pixel. Is low.
  • the detection compensation unit 912 refers to the determination result flag of the pixel of interest in the determination result flag memory 911, and if the determination result flag is O (False), the vector detection unit 52 performs highly reliable motion. It is determined that no vector has been detected, and the motion vector of the peripheral pixel of the pixel of interest is supplemented for the pixel of interest, and the motion vector is stored in the frame of the detection vector memory 53. At this time, the detection compensation unit 912 rewrites the determination result flag memory 911 of the target pixel from which the motion vector has been detected to l (True).
  • the force detection compensation unit 912 uses the allocation compensation unit 57 to compensate for the motion vector with a pixel whose motion vector is not assigned by the vector assignment unit 54.
  • the power vector is simply replaced by a powerful pixel for which a highly reliable (highly reliable) motion vector is not detected by the vector detector 52.
  • the basic configuration is the same as that of the allocation compensator 57, Since then, A detailed description will be repeated, and will be omitted as appropriate.
  • the allocation compensating unit 57 and the detection compensating unit 912 indicate that the object of the vector compensating process performed by the allocation compensating unit 57 is a pixel on the interpolation frame of the 60P signal, while the detection compensating unit 912 performs vector compensation.
  • the object to be processed is a pixel on the frame of the 24P signal.
  • FIG. 62 is a block diagram showing a configuration of detection compensation section 912.
  • the detection compensator 912 having the configuration shown in FIG. 62 is composed of a detected vector determiner 921 and a vector compensator 922, and the vector detector 52 does not detect a highly reliable motion vector (i.e., an uncertain motion).
  • a highly reliable motion vector i.e., an uncertain motion.
  • the motion vector has been detected in the pixels of the frame on the detection vector memory 53 by the vector detection unit 52 at the preceding stage. Also, l (True) is written in the determination result flag of the determination result flag memory 911 of the pixel for which it has been determined that the motion vector with high reliability is detected by the vector detection unit 52, and (XFalse) is written in the determination result flag of the determination result flag memory 911 of the pixel determined to have detected a motion vector with a low X.
  • the detection vector determination unit 921 refers to the determination result flag of the pixel of interest in the determination result flag memory 911, and determines the degree of reliability of the pixel of interest.
  • the detected vector determining unit 921 controls the vector compensating unit 922 for the target pixel in which a motion vector with high reliability is not detected by the vector detecting unit 52 (a motion vector with low reliability is detected). Then, a motion vector of a peripheral pixel of the target pixel is selected, and the selected motion vector is stored in a frame of the detection vector memory 53.
  • the vector compensating unit 922 acquires the motion vector allocated to the peripheral pixel of the pixel of interest from the detection vector memory 53, and inputs the frame t of the input image at time t and the image at time t + 1. By using the frame t + 1 to obtain the evaluation value DFD of the obtained motion vector and comparing it, the highest reliability based on the evaluation value DFD among the motion vectors detected in the surrounding pixels of the pixel of interest is obtained.
  • the motion vector is stored in the pixel of interest in the detection vector memory 53.
  • the vector compensator 922 stores the evaluation value in the determination result flag memory 911. Rewrite the judgment result flag of the target pixel in which the motion vector with the highest reliability based on DFD has been compensated to l (True).
  • FIG. 63 is a block diagram showing a configuration of vector compensating section 922.
  • portions corresponding to those in FIG. 48 are denoted by the same reference numerals, and detailed description thereof will not be repeated because it is repeated.
  • the compensation processing unit 811 has a memory 821 that stores the minimum evaluation value DFD and the motion vector of the minimum evaluation value DFD as a compensation candidate vector.
  • the evaluation value DFD of the motion vector already detected in the target pixel is stored in the memory 821 as the minimum evaluation value, and the motion vector is stored in the memory 821 as a compensation candidate vector.
  • the vector detection unit 52 finally detects the 0 vector. In this case, the 0 vector is stored in the memory 821 as a compensation candidate vector.
  • the compensation processing unit 811 refers to the determination result flag memory 911 to determine the degree of reliability of the motion vector of the peripheral pixel of the pixel of interest, and from the detection vector memory 53, A motion vector having a high degree is acquired, and the evaluation value calculation unit 812 is controlled to calculate an evaluation value DFD of the motion vector.
  • the compensation processing unit 811 determines whether the evaluation value DFD calculated by the evaluation value calculation unit 812 is smaller than the minimum evaluation value stored in the memory 821 and calculated. If it is determined that the evaluated evaluation value DFD is smaller than the minimum evaluation value, the compensation candidate vector and the minimum evaluation value in the memory 821 are rewritten to the calculated evaluation value DFD and its motion vector.
  • the motion vector (compensation candidate vector) of the peripheral pixel determined to be the smallest is stored in the target pixel of the detection vector memory 53 as the motion vector of the target pixel. Further, the compensation processing unit 811 rewrites the judgment result flag of the judgment result flag memory 911 of the detected pixel of interest, in which the motion vector is compensated, to l (True).
  • the evaluation value calculation unit 812 determines the frame t of the input 24P signal image at time t and the frame t + 1 of the image at time t + 1. , The motion vector evaluation value DFD from the detection vector memory 53 is calculated, and the calculated evaluation value DFD is output to the compensation processing unit 811. Note that, as described above, The target on which the unit 57 performs the vector compensation process is the pixel on the interpolation frame of the 60P signal, whereas the target on which the detection compensation unit 912 performs the vector compensation process is the pixel on the frame of the 24P signal. Therefore, the evaluation value calculation unit 812 calculates the evaluation value DFD in the target pixel of the frame t of the 24P signal.
  • step S901 the vector detection unit 52 determines that the frame t of the input image at time t + 1.
  • step S902 the vector allocating unit 54, the detection compensating unit 912, the allocation compensating unit 57, and the image interpolating unit 58 determine the frame t + 1 of the input image at time t + 1 and the time immediately before the input image in the frame memory 51. Input the pixel value of the frame t of t.
  • step S902 the vector detection unit 52 executes a motion vector detection process, and proceeds to step S903. That is, the vector detection unit 52 detects a motion vector between the target block of the frame t on the frame memory 51 and the target block of the next frame t + 1 which is the input image, and detects the detected motion vector. The result is stored in the vector memory 53, and the process proceeds to step S903.
  • a method of detecting a motion vector between the two frames a gradient method, a block matching method, or the like is used.
  • an evaluation value DFD is obtained for each motion vector. Based on the obtained evaluation value DFD, the most reliable (probable) motion vector is determined. Is detected.
  • the vector detection unit 52 determines whether or not the reliability of the detected motion vector is high.Based on the determination result, the l (True) force, O (False ) Is written. Details of the motion vector detection processing in step S902 will be described later with reference to FIG.
  • step S903 the detection compensation unit 912 performs a detection compensation process, and proceeds to step S904. That is, in step S903, the detection compensating unit 912 refers to the determination result flag of the determination result flag memory 911, and determines a strong target pixel for which a highly reliable motion vector has not been detected by the vector detection unit 52. Movement of pixels around the pixel of interest And store it in the frame of the detection vector memory 53. At this time, the detection compensating unit 912 rewrites the detection target flag of the target pixel for which the motion vector has been compensated in the determination result flag memory 911 to l (True).
  • step S903 When there are a plurality of motion vectors of peripheral pixels, an evaluation value DFD is obtained for each motion vector, and a motion vector with the highest reliability is detected based on the obtained evaluation value DFD. Details of the detection compensation processing in step S903 will be described later with reference to FIG.
  • step S904 ! the vector allocating unit 54 executes the vector allocating process, and proceeds to step S905. That is, in steps S902 and S903, the motion vectors detected on the frame t are allocated to the pixels on the interpolation frame to be interpolated on the allocation vector memory 55 in steps S902 and S903. Rewrite the allocation flag of the allocation flag memory 56 of the pixel to which the motion vector is allocated to l (True).
  • step S905 the allocation compensating unit 57 executes the allocation compensating process, and proceeds to step S906. That is, in step S905, the allocation compensating unit 57 refers to the allocation flag in the allocation flag memory 56, and sets the motion of the peripheral pixel around the target pixel for which the motion vector has not been allocated by the vector allocation unit 54. The vector is supplemented and allocated on the interpolation frame of the allocation vector memory 55. At this time, the allocation compensating unit 57 rewrites the motion vector to the complement V and the allocated flag of the allocated target pixel to l (True).
  • step S906 the image interpolation unit 58 executes an image interpolation process. That is, the image interpolation unit 58 interpolates and generates the pixel value of the internal frame using the motion vector allocated to the interpolation frame in the allocation vector memory 55 and the pixel value of the frame t and the frame t + 1 in step S906. Then, the process proceeds to step S907.
  • the image interpolating unit 58 outputs the interpolated frame generated in step S908, and then outputs the frame t + 1 as necessary, so that the image of the 60P signal is not shown. Output to the subsequent stage, and proceed to step S908.
  • step S908 the vector detection unit 52 determines whether or not the processing has been completed for all the frames. If it is determined that the processing has not been completed for all the frames, the process returns to step S901. , And the subsequent processes are repeated. On the other hand, if the vector detection unit 52 determines in step S908 that processing of all frames has been completed, The process of converting the number ends.
  • step S902 in FIG. 64 details of the motion vector detection processing in step S902 in FIG. 64 will be described.
  • the processing in steps S921 to S923, S925, and S926 in FIG. 65 is basically the same as the processing in steps S101 to S105 in FIG. 12, and a detailed description thereof will be omitted as appropriate. .
  • step S921 The frame t of the input image at time t and the frame t + 1 of the image at time t + 1 are input to the vector detection unit 52.
  • step S921 the initial vector selection unit 101 selects a block to be processed on the frame t as a target block, and proceeds to step S922.
  • the processing is executed in the raster scan order from the upper left block.
  • step S922 the initial vector selection unit 101 executes an initial vector selection process. That is, in step S922, the initial vector selection unit 101 selects a motion vector with high reliability from the past motion vector detection result for each predetermined block, and uses the selected motion vector for the gradient method. The value is output to the iterative gradient method calculation unit 103 as an initial vector VO serving as an initial value to be obtained, and the process proceeds to step S923.
  • step S923 the iterative gradient method operation unit 103 and the vector evaluation unit 104 execute gradient method operation evaluation processing, and the flow advances to step S924.
  • the mode selection unit 401 selects a block-based processing mode or a pixel-based processing mode.
  • the effective pixel determination unit 403 uses the initial vector V 0 input via the selector 402 and the frame t and the frame t + 1 input via the pre-filters 102-1 and 102-2 to obtain a block unit or The number of effective pixels determined as having a pixel difference value smaller than a predetermined pixel difference value (that is, effective for detecting a motion vector) in a pixel-based operation block is counted, and the counted effective pixels are counted.
  • the gradient method operation unit 404 repeatedly performs the operation of the gradient method based on the evaluation result of the motion vector by the vector evaluation unit 104, and calculates the motion vector Vn. Further, the vector evaluation unit 104 obtains the motion vector Vn-l from the iterative gradient method calculation unit 103 and the evaluation value DFD of the motion vector Vn, and finally obtains the reliability based on the obtained evaluation value DFD. The higher one is selected and stored in the detection vector memory 53 as the motion vector V. At this time, the vector evaluation unit 104 supplies the motion vector V and the evaluation value DFD obtained for the motion vector V to the shift initial vector allocation unit 105.
  • step S924 the vector evaluation unit 104 determines the number of effective pixels in the operation block when the motion vector V is calculated based on the flag corresponding to the motion vector V stored in the detection vector memory 53.
  • step S925 the shift initial vector allocating unit 105 executes a shift initial vector allocating process, and proceeds to step S926. That is, when the motion vector V and its evaluation value DFD are supplied from the vector estimating unit 104, the shift initial vector allocating unit 105 determines, in step S925, any block of the next time frame in the motion vector V. The motion vector that passes through the motion vector is obtained, and the obtained motion vector is shifted to that block. The shift initial vector (that is, the target block on the next frame at the same position as the block at the end point of the motion vector V, Set a motion vector of the same size and the same direction as the motion vector V). Then, the shift initial vector allocating unit 105 allocates the shift initial vector to the shift initial vector memory 107.
  • the shift initial vector allocating unit 105 allocates the shift initial vector to the shift initial vector memory 107.
  • step S926 the initial vector selection unit 101 It is determined whether or not the processing of the block has been completed. If it is determined that the processing of all blocks has not been completed, the process returns to step S921 and the subsequent processing is repeated. Also, in step S926, when the initial vector selection unit 101 determines that the processing of all the blocks has been completed in the frame t, that is, in all the blocks on the frame t, the initial Is determined to have been detected, and the motion vector detection processing ends.
  • the number of pixels (effective pixels) effective for detecting a motion vector is detected based on whether or not the number of pixels is large. Then, a flag indicating whether the reliability of the motion vector is high, low, or not (probably U or not) is stored in the determination result flag memory 911.
  • Judgment result flag memory Refers to the 911 to judge the degree of reliability of the motion vector of the pixel, and performs vector compensation processing on the pixel of the motion vector with low (uncertain) reliability. Can be.
  • the detection compensation processing in FIG. 66 is basically the same as the allocation compensation processing in FIG. 59A, and the description thereof will be repeated, and thus will be omitted as appropriate.
  • the motion vector is detected in the frame on the detection vector memory 53 by the vector detection unit 52 in the preceding stage.
  • l (True) is written in the determination result flag of the determination result flag memory 911 of the pixel for which the motion vector with high reliability is detected by the vector detection unit 52, and the motion with low reliability is detected.
  • O (False) is written in the determination result flag of the determination result flag memory 911 of the pixel for which the vector (for example, 0 vector) is detected.
  • step S941 the detection vector determination unit 921 selects a pixel of the frame of the determination result flag memory 911 as a pixel of interest, and proceeds to step S942. At this time, the detection vector determination unit 921 selects a pixel in the order of raster scan in the upper left of the frame.
  • step S942 the detection vector determination unit 921 determines whether the determination result flag of the pixel of interest in the determination result flag memory 911 is (XFalse) or not, and determines whether the pixel of interest in the determination result flag memory 911. If the determination result flag of (xFalse) is determined to be (XFalse), it is determined that the reliability of the motion vector of the pixel of interest is low, and the process proceeds to step S943 to control the compensation processing unit 811 and execute the vector compensation processing. And proceed to step S944.
  • This vector complement The details of the compensation process will be described later with reference to FIG. 67.However, this vector compensation process compensates for the smallest motion vector of the evaluation value DFD from among the motion vectors with high reliability detected in the peripheral pixels. It is stored in the memory 821 as a candidate vector.
  • step S944 the compensation processing unit 811 stores the compensation candidate vector in the memory 821 in the detection vector memory 53 as the motion vector of the pixel of interest, and proceeds to step S945 to determine the pixel of interest in the determination result flag memory 911. Is rewritten to l (True), and the flow proceeds to step S946.
  • step S942 when the detection vector determination unit 921 determines that the determination result flag of the pixel of interest in the determination result flag memory 911 is l (True), the detected pixel already has It is determined that a likely motion vector has been detected, and the processing of steps S943 to S945 is skipped, and the process proceeds to step S946.
  • step S946 the detection vector determination unit 921 determines whether or not processing of all pixels of the frame of the determination result flag memory 911 has been completed, and has determined that processing of all pixels has not been completed. In this case, the process returns to step S941, and the next pixel of the frame of the determination result flag memory 911 is selected as the target pixel, and the subsequent processing is executed. In step S946, if it is determined that the processing of all the pixels of the frame of the determination result flag memory 911 has been completed, the detection compensation processing ends.
  • FIG. 67 shows an example of the vector compensation processing in step S943 in FIG. Accordingly, in the example of FIG. 67, basically the same processing as the vector compensation processing of FIG. 60 is performed, and the description thereof will be repeated, and thus will not be repeated.
  • step S951 the compensation processing unit 811 controls the evaluation value calculation unit 812 to calculate the evaluation value DFD using the motion vector already detected in the target pixel, and proceeds with step S952. Specifically, the evaluation value calculation unit 812 evaluates the motion vector detected for the pixel of interest using the frame t of the input image at time t and the frame t + 1 of the image at time t + 1. The value DFD is calculated, and the calculated evaluation value DFD is output to the compensation processing unit 811.
  • step S952 the compensation processing unit 811 stores the calculated evaluation value DFD in the memory 821 as the minimum evaluation value, and proceeds to step S953 to use the motion vector as a compensation candidate.
  • the information is stored in the memory 821 as a tuttle, and the process proceeds to step S954.
  • step S954 the compensation processing unit 811 selects one peripheral pixel from the eight peripheral pixels of the target pixel selected by the detection vector determination unit 921, and proceeds with step S955. At this time, the compensation processing unit 811 selects peripheral pixels in the raster scan order from the upper left pixel among the eight peripheral pixels.
  • step S955 the compensation processing unit 811 refers to the determination result flag memory 911 and determines whether a motion vector with high reliability exists (is detected) in the selected peripheral pixel. If the determination result flag of the peripheral pixel in the determination result flag memory 911 is l (True), the compensation processing unit 811 determines in step S955 that a motion vector with high reliability exists in the selected peripheral pixel, and Proceeding to S956, the detected vector memory 53 acquires the motion vectors of the peripheral pixels, and the flow proceeds to step S957. At this time, the motion vectors of the peripheral pixels are also output from the detection vector memory 53 to the evaluation value calculation unit 812.
  • the evaluation value calculation unit 812 determines in step S957 that the frame t of the input image at time t and the frame t + of the image at time t + 1 are input. Using 1, the evaluation value DFD of the motion vector from the detection vector memory 53 is calculated for the pixel of interest, the calculated evaluation value DFD is output to the compensation processing unit 811, and the process proceeds to step S958.
  • the compensation processing unit 811 checks in step S958 whether the evaluation value DFD is smaller than the minimum evaluation value of the pixel of interest stored in the memory 821. If it is determined that the evaluation value DFD is smaller than the minimum evaluation value of the pixel of interest stored in the memory 821, the process proceeds to step S959, and the minimum evaluation value of the memory 821 is set to the minimum evaluation value. Rewrite to the evaluation value DFD determined to be smaller than the above, proceed to step S960, rewrite the compensation candidate vector in the memory 821 with the motion vector of the minimum evaluation value, and proceed to step S961.
  • step S955 if the determination result flag of the peripheral pixel in the determination result flag memory 911 is O (False), the compensation processing unit 811 determines that the selected peripheral pixel has no motion vector with high reliability. , (Detected,,), and skips the processing of steps S956 to S960, and proceeds to step S961.
  • step S961 the compensation processing unit 811 performs processing on all eight pixels around the pixel of interest. To determine whether or not the processing has been completed, and if it has been determined that the processing has not been completed for all eight pixels surrounding the pixel of interest, the process returns to step S954 to select the next peripheral pixel, and thereafter. Is repeated. If the compensation processing unit 811 determines in step S961 that processing has been completed for all eight pixels around the pixel of interest, the compensation processing unit 811 ends the vector compensation processing, and returns to step S944 in FIG.
  • the determination result flag of a pixel for which a highly reliable motion vector has been detected by the above-described detection compensation processing is rewritten to l (True), and the motion vector detected by the detection compensation processing is also Since it is used as a pixel compensation candidate vector, almost the same motion vector is selected for pixels that make almost the same motion in the object.As a result, a stable motion vector with few errors can be obtained. Can be.
  • the evaluation value DFD of the motion vector that has already been detected is calculated in advance, and stored in the memory as the minimum evaluation value. Time and resources can be used more efficiently than when DFDs are calculated at once and the minimum evaluation value DFD is selected from them.
  • the detection compensation processing of the motion vector detected using the gradient method has been described.
  • this detection compensation processing uses the block matching method.
  • the present invention can also be applied to the case of detecting a motion vector.
  • FIG. 68 is a block diagram showing a configuration of the vector detection unit 52 of FIG.
  • the vector detection unit 52 having the configuration shown in FIG. 68 detects a motion vector by using a block matching method using the input frame t of the image at the time t and the frame t + 1 of the image at the time t + 1.
  • the process of detecting the motion vector is executed for each predetermined block having a plurality of pixel forces.
  • the pre-filters 102-1 and 102-2 are composed of a low-pass filter and a Gaussian filter, respectively, to remove noise components of the input image at frame t and frame t + 1, and output the result to the block matching calculation unit 951. I do.
  • the block matching calculation unit 951 uses the frame t and the frame t + 1 input through the pre-filters 102-1 and 102-2 to determine, for each predetermined block, a motion vector by a block matching method. V is calculated, and the calculated motion vector V is stored in the detection vector memory 53. In the block matching method, the minimum motion vector of the evaluation value DFD is determined while calculating the evaluation value DFD of the motion vector. Therefore, the block matching calculation unit 951 stores the calculated motion vector V in the detection vector memory 53 and outputs the evaluation value DFD of the motion vector V to the vector evaluation unit 952.
  • the vector evaluation unit 952 determines whether or not the evaluation value DFD of the motion vector V input from the block matching calculation unit 951 is smaller than a predetermined threshold value, and determines whether the evaluation value DFD of the motion vector V is When it is determined that the predetermined threshold value is smaller than the value, l (True) is written to the determination result flag memory 911 as the reliability of the motion vector V is high (that is, the motion vector is a reliable motion vector).
  • the vector evaluation unit 952 has low reliability of the motion vector V (that is, the motion vector V No), write O (False) in the judgment result flag memory 911.
  • This motion vector detection process is another example of the motion vector detection process in step S902 in FIG.
  • the frame t of the input image at time t and the frame t + 1 of the image at time t + 1 are input to the vector detection unit 52.
  • the block matching calculation unit 951 sets a block to be processed on the frame t as a target block in step S981. Select and go to step S982.
  • raster scan starts from the upper left block. The processing is executed in order.
  • step S982 the block matching calculation unit 951 performs the motion vector detection process by the block matching method using the frame t and the frame t + 1 input via the pre-filters 102-1 and 102-2. Then, the motion vector is calculated, and the process proceeds to step S983, where the calculated motion vector is output to the detection vector memory 53 and stored. At this time, the block matching calculation unit 951 outputs the calculated evaluation value DFD of the motion vector to the vector evaluation unit 952, and proceeds to step S984.
  • step S984 the vector evaluation unit 952 compares and determines whether or not the evaluation value DFD of the motion vector V input from the block matching calculation unit 951 is smaller than a predetermined threshold value. Proceeding to S985, the result (based on) of the comparison judgment is written into the judgment result flag memory 911 [Step S986 [Step forward]. In other words, if it is determined that the evaluation value DFD of the inputted motion vector V is smaller than a predetermined threshold value, the reliability of the motion vector V is determined to be high (probable), and the determination result flag memory Write 1 (True) to 911.
  • the vector evaluation unit 952 determines that the evaluation value DFD of the input motion vector V is equal to or larger than a predetermined threshold, the vector evaluation unit 952 determines that the reliability of the motion vector V is low ⁇ (not certain), and Write O (False) to the flag memory 911.
  • step S986 the block matching calculation unit 951 determines whether or not processing of all blocks has been completed in the frame t, and determines that processing of all blocks has not been completed. Returning to step S981, the subsequent processing is repeated. Also, in step S986, when the block matching calculation unit 951 determines that the processing of all the blocks has been completed in the frame t, that is, it is determined that the motion vector V has been detected in all the blocks on the frame t. Judge and end the motion vector detection process.
  • FIG. 70 is a block diagram showing another example of the configuration of the vector detection unit 52 in FIG.
  • the vector detection unit 52 in FIG. 70 has the same configuration as the vector detection unit 52 in FIG. 68, except that the prefilters 102-1 and 102-2 are deleted. Return It will be omitted as appropriate. That is, in the block matching method, a motion vector can be detected without a prefilter.
  • the block matching calculation unit 951 uses the input frame t and frame t + 1 to calculate the motion vector V for each predetermined block by the block matching method.
  • the calculated motion vector V is stored in the detection vector memory 53, and the evaluation value DFD of the motion vector V is output to the vector evaluation unit 952.
  • the vector evaluation unit 952 determines whether or not the evaluation value DFD of the motion vector V input from the block matching calculation unit 951 is smaller than a predetermined threshold value. If it is determined that the predetermined threshold is smaller than the value, the reliability of the motion vector V is determined to be high, and l (True) is written to the determination result flag memory 911. When the vector evaluation unit 952 determines that the evaluation value DFD of the input motion vector V is equal to or larger than a predetermined threshold, the reliability of the motion vector V is low (that is, the motion vector V No), write O (False) to the judgment result flag memory 911.
  • the motion vector detection processing of the vector detection unit 52 in Fig. 70 is basically the same as the motion vector detection processing of the vector detection unit 52 in Fig. 68 described above with reference to Fig. 69. The description thereof will be omitted because it is repeated.
  • the reliability of the motion vector detected at the pixel is determined. Is stored in the determination result flag memory 911, and the detection compensation unit 912 at the subsequent stage sees the determination result flag memory 911 to determine the motion vector of the pixel. It is possible to know the degree of reliability based on the evaluation value DFD, and if the degree of reliability is low, it is possible to execute vector compensation processing.
  • the evaluation value DFD of the motion vector detected by the force gradient method described using the block matching method is used to calculate the reliability of the motion vector detected at the pixel.
  • the flag indicating whether the degree is high or low may be stored in the determination result flag memory 911, and the method of detecting a motion vector is not limited to the above two methods. And other motion vector detection methods.
  • a pixel that is not allocated by the vector allocation unit 54 or a pixel that is not detected by the vector detection unit 52 such as a pixel whose motion vector is not determined in any processing.
  • the present embodiment has been described using the evaluation value DFD, which is the sum of absolute differences, as an evaluation value when selecting a motion vector, the present invention is not limited to the evaluation value DFD, and is not limited to the evaluation value DFD. Anything that evaluates reliability may be used!
  • the blocks that perform each processing are described as being composed of, for example, 8 pixels x 8 pixels, 9 pixels x 9 pixels, and the like.
  • the pixels constituting the block that performs the processing are not limited to the above number of pixels.
  • the series of processes described above can also be executed by hardware that can be executed by hardware.
  • a series of processing is executed by software, it is possible to execute various functions by installing a computer built in hardware dedicated to the program power constituting the software or various programs. It is installed from a program storage medium to a possible general-purpose personal computer, for example.
  • a program storage medium for storing a program installed in a computer and made executable by the computer includes a magnetic disk 31 (including a flexible disk), an optical disk 32 (CD), and the like.
  • -ROM Compact Disc-Read Only Memory
  • DVD Digital Versatile Disc
  • MD Magneto-Optical Disk 33
  • a removable recording medium such as a semiconductor memory 34, or a ROM 12 in which a program is temporarily or permanently stored.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Television Systems (AREA)
  • Image Analysis (AREA)

Abstract

 本発明は、前段の処理において動きベクトルが求められなかった画素に、確からしい動きベクトルを求めることができるようにする画像処理装置および方法、記録媒体、並びにプログラムに関する。前段の処理において動きベクトルが取得されなかった着目画素Pにおいては、前段の処理や過去の本処理により着目画素Pの周辺画素に求められた動きベクトル、および図示せぬ0ベクトルなどからなる補償候補ベクトルの信頼度の高さを表す評価値が算出され、算出された評価値が比較判断され、補償候補ベクトルのうち、最も信頼度が高いと判断された補償候補ベクトルVK1が、着目画素Pの動きベクトルVK1として選択されて取得される。本発明は、24P信号から60P信号へのフレーム周波数変換処理を行う信号処理装置に適用できる。

Description

明 細 書
画像処理装置および方法、記録媒体、並びにプログラム
技術分野
[0001] 本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、 動きベクトルに基づいて生成される画像の品質を向上することができるようにした画 像処理装置および方法、記録媒体、並びにプログラムに関する。
背景技術
[0002] 従来、画像のフレーム周波数を変換する画像処理装置にお!/ヽては、例えば、特許 文献 1に記載の勾配法、またはブロックマッチング法などを用いることにより、動きべク トルの検出が行われ、検出された動きベクトル力 生成される内挿フレームに割り付 けられる。しかしながら、これらの動きベクトル検出方法においては、常に、動きべタト ルが求められるわけではなぐ注目画素の動きベクトルを求めることができなかったり 、もしくは、求められた動きベクトルが不安定であるなど、動きベクトルの信頼度に問 題がある場合があった。
[0003] また、検出された動きベクトルを、生成される内挿フレームに割り付ける場合におい ても、内挿フレーム上のすべての画素に、動きベクトルが割り付けられるわけではな い。
[0004] このような場合、画像処理装置は、動きベクトルを求まらな 、ままにするか、または、 動きベクトルを 0ベクトル (すなわち、静止状態)にすることにより対応していた。
特許文献 1 :特開昭 60— 158786公報
発明の開示
発明が解決しょうとする課題
[0005] しかしながら、求まらないままの動きベクトルや 0ベクトルにされた動きベクトルは、注 目画素が属するオブジェクトに適した動きであるとは、必ずしも言えず、これらの動き ベクトルを用いて生成された画像に、例えば、不連続性などの視覚劣化を、少なから ずもたらしてしまう課題があった。
[0006] また、上述したような従来の動きベクトル検出方法で求められた動きベクトル、また は、内挿フレームの画素に割り付けられた動きベクトルは、同じオブジェクト内の動き であるにも拘わらず、動き相関のな ヽ(周辺画素の動きベクトルと似て ヽな 、)動きべ タトルとして求められることが多ぐこの動きベクトルは、誤って求められた可能性が高 い、すなわち、あまり確力もしくないことが多い課題があった。
[0007] 本発明は、このような状況に鑑みてなされたものであり、前段の処理において動き ベクトルが求められなかった画素に、確からしい動きベクトルを求めることができるよう にするものである。
課題を解決するための手段
[0008] 本発明の画像処理装置は、第 1のフレームまたは第 2のフレーム上における 1また は複数の画素でなる着目領域に、信頼度が高 、動きベクトルが設定されて 、るか否 かを判断するベクトル判断手段と、ベクトル判断手段により着目領域の少なくとも一部 に、信頼度が高い動きべ外ルが設定されていないと判断された場合、着目領域の 近傍にある周辺画素に取得されている動きベクトルのうち、最も信頼度が高い動きべ タトルを、着目領域の少なくとも一部の動きベクトルとして設定するベクトル設定手段 とを備えることを特徴とする。
[0009] 第 1のフレーム上の動きベクトルを検出するベクトル検出手段と、ベクトル検出手段 により第 1のフレーム上における着目領域に検出された動きベクトルの信頼度の高さ を表す評価値を演算する信頼度演算手段とをさらに備え、ベクトル判断手段は、信 頼度演算手段による演算結果に基づいて、第 1のフレーム上の着目領域に、信頼度 が高い動きベクトルが設定されているカゝ否かを判断し、ベクトル設定手段は、第 1のフ レームの着目領域の近傍にある周辺画素に検出されている動きベクトルのうち、最も 信頼度が高 、動きベクトルを、着目領域の動きベクトルとして設定するようにすること ができる。
[0010] 第 1のフレームにおいて、動きベクトルを検出するための演算の対象となる演算プロ ック内の画素が、動きベクトルの検出に有効である力否かを判断する有効画素判断 手段と、有効画素判断手段により有効であると判断された画素を用いた演算により、 動きベクトルを検出する動きベクトル検出手段とをさらに備え、ベクトル判断手段は、 有効画素判断手段による判断結果に基づいて、第 1のフレーム上の着目領域に、信 頼度が高い動きベクトルが設定されているカゝ否かを判断し、ベクトル設定手段は、第
1のフレームの着目領域の近傍にある周辺画素に検出されている動きベクトルのうち
、最も信頼度が高い動きベクトルを、着目領域の少なくとも一部の動きベクトルとして 設定するよう〖こすることができる。
[0011] 第 1のフレームにおいて検出された動きベクトルを、第 2のフレーム上の 1または複 数の画素でなる着目領域の少なくとも一部に割り付けるベクトル割付手段をさらに備 え、ベクトル判断手段は、ベクトル割付手段による動きベクトルの割付結果に基づい て、第 2のフレーム上の着目領域に、信頼度の高い動きベクトルが割り付けられてい る力否かを判断し、ベクトル設定手段は、第 2のフレームの着目領域の近傍にある周 辺画素に割り付けられている動きベクトルのうち、最も信頼度が高い動きベクトルを、 着目領域の少なくとも一部の動きベクトルとして設定するようにすることができる。
[0012] ベクトル設定手段は、第 2のフレームの着目領域の近傍にある周辺画素に割り付け られている動きベクトルのうち、最も信頼度が高い動きベクトルを、着目領域のうち、 ベクトル判断手段により信頼度の高いベクトルが割り付けられていないと判断された 領域の動きベクトルとして設定するようにすることができる。
[0013] ベクトル判断手段により着目領域に、信頼度が高い動きベクトルが取得されていな いと判断された場合、着目領域の近傍にある周辺画素に取得されている動きべタト ルを、着目領域の動きベクトルの候補ベクトルとして設定する候補ベクトル設定手段 をさらに備え、候補ベクトル設定手段は、周辺画素において、着目領域よりも時間的 に先にベクトル設定手段により設定された動きベクトルも、着目領域の少なくとも一部 の動きベクトルの候補ベクトルとして設定するようにすることができる。
[0014] 候補ベクトル設定手段は、着目領域の近傍にある周辺画素に取得されている動き ベクトルを、着目領域のうち、ベクトル判断手段により信頼度の高いベクトルが割り付 けられて 、な 、と判断された領域の候補ベクトルとして設定するようにすることができ る。
[0015] 本発明の画像処理方法は、第 1のフレームまたは第 2のフレーム上における 1また は複数の画素でなる着目領域に、信頼度が高 、動きベクトルが設定されて 、るか否 かを判断するベクトル判断ステップと、ベクトル判断ステップの処理により着目領域の 少なくとも一部に、信頼度が高い動きベクトルが設定されていないと判断された場合 、着目領域の近傍にある周辺画素に取得されている動きベクトルのうち、最も信頼度 が高い動きベクトルを、着目領域の少なくとも一部の動きベクトルとして設定するべク トル設定ステップとを含むことを特徴とする。
[0016] 本発明の記録媒体に記録されるプログラムは、第 1のフレームまたは第 2のフレーム 上における 1または複数の画素でなる着目領域に、信頼度が高い動きベクトルが設 定されて!/ヽる力否かを判断するベクトル判断ステップと、ベクトル判断ステップの処理 により着目領域の少なくとも一部に、信頼度が高 、動きベクトルが設定されて 、な!/、 と判断された場合、着目領域の近傍にある周辺画素に取得されている動きベクトル のうち、最も信頼度が高い動きベクトルを、着目領域の少なくとも一部の動きベクトル として設定するベクトル設定ステップとを含むことを特徴とする。
[0017] 本発明のプログラムは、第 1のフレームまたは第 2のフレーム上における 1または複 数の画素でなる着目領域に、信頼度が高!、動きベクトルが設定されて 、る力否かを 判断するベクトル判断ステップと、ベクトル判断ステップの処理により着目領域の少な くとも一部に、信頼度が高い動きべ外ルが設定されていないと判断された場合、着 目領域の近傍にある周辺画素に取得されている動きベクトルのうち、最も信頼度が高 い動きベクトルを、着目領域の少なくとも一部の動きベクトルとして設定するベクトル 設定ステップとを含むことを特徴とする。
[0018] 本発明においては、第 1のフレームまたは第 2のフレーム上における 1または複数の 画素でなる着目領域の少なくとも一部に、信頼度が高い動きベクトルが設定されてい ないと判断された場合、着目領域の近傍にある周辺画素に取得されている動きべタト ルのうち、最も信頼度が高い動きベクトルが、着目領域の少なくとも一部の動きべタト ルとして設定される。
発明の効果
[0019] 本発明によれば、前段の処理において動きベクトルが求められなかった画素に、確 力もしい動きベクトルを求めることができる。また、本発明によれば、動きベクトルの検 出精度および割付精度が向上する。さらに、本発明によれば、生成される画像の品 質を向上し、フレーム周波数変換の精度を向上することができる。 図面の簡単な説明
圆 1]本発明の信号処理装置の構成例を示すブロック図である。
[図 2]信号処理装置の構成を示すブロック図である。
[図 3]本発明の処理の原理を説明する図である。
[図 4]本発明の処理を具体的に説明する図である。
圆 5]信号処理装置において用いられる動きベクトルの評価値を説明する図である。 圆 6]信号処理装置のフレーム周波数変換処理を説明するフローチャートである。 圆 7]画像補間部の構成を示すブロック図である。
圆 8]画像補間処理を説明するフローチャートである。
[図 9]ベクトル検出部の構成を示すブロック図である。
[図 10]ベクトル検出部で用いられる勾配法を説明する図である。
圆 11]初期ベクトルを用いた反復勾配法を説明する図である。
[図 12]動きベクトル検出処理を説明するフローチャートである。
[図 13]シフト初期ベクトル割付部の構成を示すブロック図である。
[図 14]シフト初期ベクトルの概念を説明する図である。
圆 15]シフト初期ベクトルを具体的に説明する図である。
圆 16]シフト初期ベクトルを具体的に説明する図である。
[図 17]シフト初期ベクトルの決定方法を説明する図である。
[図 18]シフト初期ベクトルの割り付けの例を説明する図である。
[図 19]動きベクトルが競合する場合のシフト初期ベクトルの例を説明する図である。
[図 20]シフト初期ベクトル割付処理を説明するフローチャートである。
[図 21]初期ベクトル選択部の構成を示すブロック図である。
[図 22]初期ベクトルの周辺領域を示す図である。
[図 23]初期ベクトルの候補ブロックを示す図である。
[図 24]初期ベクトル選択処理を説明するフローチャートである。
[図 25]反復勾配法演算部の構成を示すブロック図である。
[図 26]有効画素判定部の構成を示すブロック図である。
[図 27]勾配法演算部の構成を示すブロック図である。 [図 28]動きベクトルの検出対象ブロックと演算ブロックを説明する図である。
[図 29]検出対象ブロックにおけるオブジェクトの動きを説明する図である。
圆 30]同じ動きのオブジェクトを有する検出対象ブロックにおける輝度の状態を説明 する図である。
[図 31]異なる動きのオブジェクトを有する検出対象ブロックにおける輝度の状態を説 明する図である。
[図 32]画素単位処理の演算ブロックの例を説明する図である。
[図 33]図 29の検出対象ブロックにおける画素単位処理を説明する図である。
[図 34]反復勾配法演算処理を説明するフローチャートである。
[図 35]有効画素判定処理を説明するフローチャートである。
[図 36]勾配法演算処理を説明するフローチャートである。
[図 37]画素単位の反復勾配法演算処理を説明するフローチャートである。
[図 38]ベクトル割付部の構成を示すブロック図である。
圆 39]本発明の 4点補間処理の概念を説明する図である。
[図 40]ベクトル割付処理の概要を説明する図である。
[図 41]動きベクトルと内挿フレームの交点の近傍画素の例を説明する図である。 圆 42]割付候補の動きベクトルの評価方法を説明する図である。
[図 43]ベクトル割付における 4点補間の例を説明する図である。
[図 44]ベクトル割付処理を説明するフローチャートである。
[図 45]画素位置演算処理を説明するフローチャートである。
[図 46]割付ベクトル評価処理を説明するフローチャートである。
[図 47]割付補償部の構成を示すブロック図である。
[図 48]ベクトル補償部の構成を示すブロック図である。
[図 49A]割付補償処理の原理を説明する図である。
[図 49B]ブロックモードの割付補償処理の原理を説明する図である。
[図 49C]ブロックモードの補償候補ベクトルを評価する例を説明する図である。 圆 50]動き相関の原理を説明する図である。
圆 51]着目画素の周囲画素の構成例を説明する図である。 [図 52]着目画素の動きベクトルの補償候補ベクトルの例を説明する図である。
[図 53]着目画素の動きベクトルの補償候補ベクトルの例を説明する図である。
圆 54]着目画素の動きベクトルの補償候補ベクトルの例を説明する図である。
圆 55]補償候補ベクトルを評価する例を説明する図である。
圆 56]補償候補ベクトルを評価する例を説明する図である。
圆 57]補償候補ベクトルを評価する例を説明する図である。
圆 58]補償候補ベクトルを着目画素の動きベクトルとして選択する例を説明する図で ある。
圆 59A]割付補償処理を説明するフローチャートである。
[図 59B]ブロックモードの割付補償処理を説明するフローチャートである。
[図 60]ベクトル補償処理を説明するフローチャートである。
[図 61]信号処理装置の他の構成を示すブロック図である。
圆 62]検出補償部の構成を示すブロック図である。
[図 63]図 62のベクトル補償部の構成を示すブロック図である。
[図 64]信号処理装置のフレーム周波数変換処理の他の例を説明するフローチャート である。
[図 65]動きベクトル検出処理の他の例を説明するフローチャートである。
圆 66]検出補償処理を説明するフローチャートである。
[図 67]ベクトル補償処理の他の例を説明するフローチャートである。
[図 68]ベクトル検出部の他の構成を示すブロック図である。
[図 69]動きベクトル検出処理のさらに他の例を説明するフローチャートである。
[図 70]ベクトル検出部のさらに他の構成を示すブロック図である。
符号の説明
1 信号処理装置, 11 CPU, 12 ROM, 13 RAM, 31 磁気ディスク, 32 光 ディスク, 33 光磁気ディスク, 34 半導体メモリ, 51 フレームメモリ, 52 ベクトル 検出部, 53 検出ベクトルメモリ, 54 ベクトル割付部, 55 割付ベクトルメモリ, 56 割付フラグメモリ, 57 割付補償部, 58 画像補間部, 101 初期ベクトル選択部, 1 03 反復勾配法演算部, 104 ベクトル評価部, 105 シフト初期ベクトル割付部, 1 06 評価値メモリ, 107 シフト初期ベクトルメモリ, 201 割付対象位置演算部, 202 評価値比較部, 203 シフト初期ベクトル置換部, 204 評価値置換部, 251 候補 ベクトル位置演算部, 252 検出ベクトル取得部, 253 シフト初期ベクトル取得部, 2 54 オフセット位置演算部, 255 評価値演算部, 256 評価値比較部, 257 最適 候補格納用レジスタ, 401 モード選択部, 402 セレクタ, 403 有効画素判定部, 404 勾配法演算部, 405 遅延部, 411 時間画素差分算出部, 412 画素差分 値判定部, 413 有効画素数カウンタ, 414 勾配法継続判定部, 421 時間画素差 分算出部, 422 画素差分値判定部, 423 水平垂直画素差分算出部, 424 勾配 積算部, 425 ベクトル算出部, 701 画素情報演算部, 702 評価値演算部, 703 着目画素差分演算部, 704 ベクトル評価部, 705 ベクトル選択部, 711 画素差 分判断部, 712 評価値判断部, 801 割付ベクトル判定部, 802 ベクトル割付部, 811 補償処理部, 812 評価値演算部, 821 メモリ, 911 判定結果フラグメモリ, 912 検出補償部, 921 検出ベクトル判定部, 922 ベクトル補償部, 951 ブロック マッチング演算部, 952 ベクトル評価部
発明を実施するための最良の形態
[0022] 以下、図を参照して本発明の実施の形態について説明する。
[0023] 図 1は、本発明を適用した信号処理装置 1の構成例を表している。信号処理装置 1 は、例えば、パーソナルコンピュータなどで構成される。図 1において、 CPU (Central Processing Unit) 11は、 ROM (Read Only Memory) 12、または記憶部 18に記憶さ れているプログラムに従って各種の処理を実行する。 RAM (Random Access Memory ) 13には、 CPU11が実行するプログラムやデータなどが適宜記憶される。これらの C PU11、 ROM12、および RAM13は、バス 14により相互に接続されている。
[0024] CPU11にはまた、バス 14を介して入出力インタフェース 15が接続されている。入 出力インタフェース 15には、キーボード、マウス、マイクロフォンなどよりなる入力部 1 6、ディスプレイ、スピーカなどよりなる出力部 17が接続されている。 CPU11は、入力 部 16から入力される指令に対応して各種の処理を実行する。そして、 CPU11は、処 理の結果、得られた画像や音声等を出力部 17に出力する。
[0025] 入出力インタフェース 15に接続されている記憶部 18は、例えばノヽードディスクなど で構成され、 CPU11が実行するプログラムや各種のデータを記憶する。通信部 19 は、インターネット、その他のネットワークを介して外部の装置と通信する。また、通信 部 19を介してプログラムを取得し、記憶部 18に記憶してもよ 、。
[0026] 入出力インタフェース 15に接続されているドライブ 20は、磁気ディスク 31、光デイス ク 32、光磁気ディスク 33、或いは半導体メモリ 34などが装着されたとき、それらを駆 動し、そこに記録されているプログラムやデータなどを取得する。取得されたプロダラ ムゃデータは、必要に応じて記憶部 18に転送され、記憶される。
[0027] なお、信号処理装置 1は、例えば、テレビジョン受像機、光ディスクプレーヤなど、ま たは、それらの信号処理部とすることもできる。
[0028] 図 2は、信号処理装置 1を示すブロック図である。
[0029] なお、信号処理装置 1の各機能をハードウェアで実現するか、ソフトウェアで実現す るかは問わない。つまり、本明細書の各ブロック図は、ハードウェアのブロック図と考 えても、ソフトウェアによる機會ブロック図と考えてもよい。
[0030] 図 2に構成を示す信号処理装置 1においては、例えば、フレーム周波数 24Hzのプ ログレツシブ画像信号 (以下、 24P信号と称する)の画像が入力され、入力された画 像 (入力画像)力 フレーム周波数 60Hzのプログレッシブ画像信号 (以下、 60P信号 と称する)の画像に変換されて、出力される。すなわち、図 2は、画像処理装置である 信号処理装置の構成を示す図である。
[0031] 信号処理装置 1に入力された 24P信号の入力画像は、フレームメモリ 51、ベクトル 検出部 52、ベクトル割付部 54、割付補償部 57、および画像補間部 58に供給される 。フレームメモリ 51は、入力画像をフレーム単位で記憶する。フレームメモリ 51は、時 刻 t+ 1の入力画像の 1つ前の時刻 tのフレームを記憶する。フレームメモリ 51に記憶 される時刻 tのフレームは、ベクトル検出部 52、ベクトル割付部 54、割付補償部 57、 および画像補間部 58に供給される。なお、以下、フレームメモリ 51上の時刻 tのフレ ームをフレーム tと称し、時刻 t+ 1の入力画像のフレームを、フレーム t+ 1と称する。
[0032] ベクトル検出部 52は、フレームメモリ 51上のフレーム tの着目ブロックと、入力画像 のフレーム t+ 1の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを 、検出ベクトルメモリ 53に記憶する。この 2フレーム間の動きベクトルの検出方法には 、勾配法またはブロックマッチング法などが用いられる。ベクトル検出部 52の構成の 詳細は、後述する。検出ベクトルメモリ 53は、フレーム tにおいて、ベクトル検出部 52 により検出された動きベクトルを記憶する。
[0033] ベクトル割付部 54は、 24P信号のフレーム t上において求められた動きベクトルを、 割付ベクトルメモリ 55上の、補間する 60P信号のフレーム(以下、 60P信号のフレー ムは、 24P信号のフレームと区別するため、内挿フレームとも称する)上の画素に割り 付け、動きベクトルが割り付けられた画素の割付フラグメモリ 56の割付フラグを 1 (True)に書き換える。ベクトル割付部 54の構成の詳細は、後述する。
[0034] 割付ベクトルメモリ 55は、ベクトル割付部 54により割り付けられた動きベクトルを、内 挿フレームの各画素に対応させて記憶する。割付フラグメモリ 56は、内挿フレームの 画素毎に、割り付けられる動きベクトルの有無を示す割付フラグを記憶している。例え ば、 True(l)である割付フラグは、対応する画素に動きベクトルが割り付けられている ことを示し、 False(O)である割付フラグは、対応する画素に動きベクトルが割り付けられ ていないことを示す。
[0035] 割付補償部 57は、割付フラグメモリ 56の割付フラグを参照し、ベクトル割付部 54に より動きベクトルが割り付けられな力つた着目画素に対して、その着目画素の周辺画 素の動きベクトルを補い、割付ベクトルメモリ 55の内挿フレーム上に割り付ける。この とき、割付補償部 57は、動きベクトルを割り付けた着目画素の割付フラグを l(True)に 書き換える。割付補償部 57の構成の詳細は、後述する。
[0036] 画像補間部 58は、割付ベクトルメモリ 55の内挿フレームに割り付けられた動きべク トルと、フレーム tおよび次のフレーム t+ 1の画素値を用いて、内挿フレームの画素 値を補間生成する。そして、画像補間部 58は、生成された内挿フレームを出力し、そ の次に、必要に応じて、フレーム t+ 1を出力することにより、 60P信号の画像を、図 示せぬ後段に出力する。なお、以下においては、画素値を、適宜、輝度値とも称する
[0037] 図 3は、本発明に係る信号処理装置 1における処理の原理を説明する図である。図 3の例においては、点線が、信号処理装置 1に入力される、時刻 t, t+ 1,および t+ 2における 24P信号のフレームを表しており、実線が、入力された 24P信号力も信号 処理装置 1により、生成される時刻 t, t+O. 4, t+O. 8, t+ 1. 2, t+ 1. 6,および t + 2における 60P信号の内挿フレームを表して!/、る。
[0038] 一般に、 24P信号を、 60P信号に変換するためには、 5Z2倍のフレームが必要に なる。すなわち、 2枚の 24P信号の画像から 5枚の 60P信号の画像が生成されなけれ ばならない。このとき、生成される 60P信号の内挿フレームは、そのフレーム間隔を等 しくするために、 24P信号上での時間位ネ目カ SO. 0, 0. 4, 0. 8, 1. 2,および 1. 6と なる位置に配置される。この中で、時間位相が 0. 0である時刻 tの 1フレームを除く 4 フレーム(t+0. 4, t+0. 8, t+ 1. 2,および t+ 1. 6のフレーム)は、 24P信号上に は存在しない画像である。したがって、信号処理装置 1は、 24P信号の画像が入力さ れると、 24P信号の時刻 tおよび時刻 t+ 1の 2枚のフレームから、 4つの内挿フレーム を生成する。したがって、信号処理装置 1からは、時刻 t, t+0. 4, t+0. 8, t+ 1. 2 ,および t+ 1. 6の 5枚のフレームからなる 60P信号の画像が出力される。
[0039] 以上のようにして、信号処理装置 1は、 24P信号の画像から 60P信号の画像に、フ レーム周波数を変換する処理を実行する。
[0040] なお、原理的には、上述したように、 24P信号の時刻 tおよび時刻 t+ 1の 2枚のフレ ームから、時刻 t, t+0. 4, t+0. 8, t+ 1. 2,および t+ 1. 6の 5枚の 60P信号のフ レームが新しく生成される力 実際には、図 3の例の場合、 24P信号の時刻 tおよび 時刻 t+ 1の 2枚のフレームに基づいて、 t, t+0. 4, t+0. 8の 60P信号のフレーム が生成され、 24P信号の時刻 t+ 1および t+ 2の 2枚のフレームに基づいて、 t+ 1. 2 , t+ 1. 6,および t+ 2の 60P信号のフレームが生成される。
[0041] 図 4は、本発明の処理をより具体的に説明する図である。図 4の例においては、太 線矢印は、各状態への遷移を表しており、矢印 Tは、状態 81乃至 85における時間の 経過方向を表している。また、状態 81乃至 85は、信号処理装置 1を構成する各部へ の入出力時の、 24P信号の時刻 tのフレーム t、時刻 tの次の時刻 t+ 1のフレーム t+ 1、または、フレーム tおよびフレーム t+ 1の間に生成される 60P信号の内挿フレーム Fの状態を概念的に表している。すなわち、実際には、例えば、状態 82に示されるよ うな動きベクトルが検出されたフレームは入力されず、フレームと動きベクトルは、別 々に入力される。 [0042] 状態 81は、ベクトル検出部 52に入力される、 24P信号のフレーム tおよびフレーム t + 1の状態を表している。状態 81のフレーム t上の黒点は、フレーム t上の画素を表し ている。ベクトル検出部 52は、状態 81のフレーム t上の画素力 次の時刻のフレーム t+ 1において、どの位置に移動するかを検出し、その動きを、状態 82のフレーム t上 に示されるように、各画素に対応する動きベクトルとして出力する。この 2フレーム間 の動きベクトルの検出方法には、ブロックマッチング法または勾配法などが用いられ る。なお、このとき、画素に複数の動きベクトルが検出された場合、ベクトル検出部 52 は、各動きベクトルについて、後述する評価値を求め、その評価値に基づいて動きべ タトルを選択する。
[0043] 状態 82は、ベクトル割付部 54に入力される、フレーム tおよびフレーム t+ 1の状態 を表している。状態 82において、フレーム tの各画素の矢印は、ベクトル検出部 52に より検出された動きベクトルを表している。
[0044] ベクトル割付部 54は、状態 82のフレーム tの各画素に対して検出された動きべタト ルを、次のフレーム t+ 1まで延長させ、予め設定されている時間位相(例えば、図 3 の t+O. 4)にある内挿フレーム F上のどの位置を通過するかを求める。これは、フレ ーム tおよびフレーム t+ 1の間が一定動きであると仮定すると、動きベクトルが内揷フ レーム Fを通過した点力 そのフレームでの画素位置となるためである。したがって、 ベクトル割付部 54は、この通過する動きベクトルを、状態 83の内挿フレーム F上の近 傍 4画素に割り付ける。また、このとき、内挿フレームの画素によっては、動きベクトル が存在しない場合、あるいは、複数の動きベクトルが、割付候補となりうる場合がある 。後者のような場合には、ベクトル割付部 54は、ベクトル検出部 52と同様に、各動き ベクトルについての評価値を求め、その評価値に基づいて割り付ける動きベクトルを 選択する。
[0045] 状態 83は、割付補償部 57に入力される、フレーム tおよびフレーム t+ 1、並びに動 きベクトルが割り付けられた内挿フレーム Fの状態を表している。状態 83の内揷フレ ーム Fにおいては、ベクトル割付部 54により動きベクトルが割り付けられている画素と 、動きベクトルが割り付けられな力つた画素が示されて 、る。
[0046] 割付補償部 57は、状態 83の動きベクトルが割り付けられていない画素に対して、 その画素の周辺画素に割り付けられている動きベクトルを用いて補う。これは、ある着 目画素の近傍領域が同じ動きであるという仮定が成り立つならば、着目画素の周辺 画素の動きベクトルと、その着目画素の動きベクトルは似たものであるからである。こ れにより、動きベクトルが割り付けられな力つた画素にも、ある程度正確な動きべタト ルが与えられ、状態 84の内挿フレーム F上のすべての画素に動きベクトルが割り付 けられる。なお、この場合にも、複数の周辺画素の動きベクトルが候補として存在する ため、割付補償部 57は、ベクトル割付部 54と同様に、各動きベクトルについての評 価値を求め、その評価値に基づ!/、て割り付ける動きベクトルを選択する。
[0047] 状態 84は、画像補間部 58に入力される、フレーム tおよびフレーム t+ 1、並びに、 すべての画素に動きベクトルが割り付けられた内挿フレーム Fの状態を表している。こ れらのすベての画素に割り付けられた動きベクトルにより、画像補間部 58は、内挿フ レーム F上の画素と、 2枚のフレーム tおよびフレーム t+ 1の画素の位置関係を決定 することができる。したがって、画像補間部 58は、内挿フレーム F上に割り付けられた 動きベクトルと、フレーム tおよびフレーム t+ 1の画素値を用いて、状態 85の内揷フ レーム Fの黒点に示されるように、内挿フレーム F上の画素値を補間生成する。そして 、画像補間部 58は、生成された内挿フレームを出力し、その次に、必要に応じて、フ レーム t+ 1を出力することにより、 60P信号の画像を、図示せぬ後段に出力する。
[0048] 次に、図 5を参照して、本発明に係る信号処理装置 1において用いられる動きべタト ルの評価値を説明する。図 4を参照して上述したように、信号処理装置 1の各部(ベタ トル検出部 52、ベクトル割付部 54、および割付補償部 57)において、後段の処理に 最適な動きベクトルが選択される。このとき、信号処理装置 1の各部においては、動き ベクトルに対する評価値として、 2つのフレームの注目するベクトル量分ずらしたブロ ック間の相関値を表す差分絶対値和(DFD(Displaced Frame Difference))が用いら れる。
[0049] 図 5の例においては、時刻 tのフレーム t上の画素位置 pを中心とした m X nのブロッ ク、および、時刻 t+ 1のフレーム t+ 1上の画素位置 pから注目する動きベクトル Vの ベクトル量分ずらした画素位置 p+vを中心とした mX nのブロックの 2つのブロックが 示されている。これら 2つのブロック間において求められる差分絶対値和 DFDt (p)は 、次の式(1)で表される。
[0050] [数 1]
m xn
DFDt (p) =∑ | Ft+i (Px, y+v) -Ft (Px, y) I
x, y
•••(l)
[0051] ここで、 Ft (p)は、時刻 tにおける画素位置 pの輝度値を表しており、 mX nは、差分 絶対値和を求めるための DFD演算範囲(ブロック)を表して 、る。この差分絶対値和 は、 2つのフレームにおける DFD演算範囲(ブロック)間の相関値を表しているため、 一般的には、この差分絶対値和が小さいほどフレーム間のブロックの波形が一致し ており、差分絶対値和が小さいほど、動きベクトル Vの信頼度が高いと判定される。こ れにより、この差分絶対値和は、複数の候補の中から、最も確からしい動きベクトルを 選ぶ場合などに用いられる。
[0052] したがって、以降、信号処理装置 1の各部(ベクトル検出部 52、ベクトル割付部 54、 および割付補償部 57)においては、動きベクトルが選択される場合の評価値として、 特に言及しない場合には、差分絶対値和(以下、評価値 DFDと称する)が用いられ ることとする。
[0053] 次に、図 6のフローチャートを参照して、信号処理装置 1のフレーム周波数を変換 する処理を説明する。
[0054] ステップ S1において、ベクトル検出部 52は、時刻 t+ 1の入力画像のフレーム t+ 1 と、フレームメモリ 51の入力画像の 1つ前の時刻 tのフレーム tの画素値を入力し、ス テツプ S2に進む。なお、このとき、ベクトル割付部 54、割付補償部 57および画像補 間部 58は、時刻 t+ 1の入力画像のフレーム t+ 1と、フレームメモリ 51の入力画像の 1つ前の時刻 tのフレーム tの画素値を入力する。
[0055] ステップ S2において、ベクトル検出部 52は、動きベクトル検出処理を実行し、ステツ プ S3に進む。すなわち、ベクトル検出部 52は、フレームメモリ 51上のフレーム tの着 目ブロックと、入力画像である次のフレーム t+ 1の対象ブロックの間で動きベクトルを 検出し、検出した動きベクトルを、検出ベクトルメモリ 53に記憶し、ステップ S3に進む 。この 2フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング 法などが用いられる。また、動きベクトルの候補が複数ある場合には、各動きベクトル に対して、評価値 DFDが求められ、求められた評価値 DFDに基づいた信頼度の高 い動きベクトルが検出される。すなわち、この場合、動きベクトルを検出する着目プロ ックにおいて、最も確力もしい動きベクトルが選択され、検出される。ステップ S2にお ける、動きベクトル検出処理の詳細は、後述する。
[0056] ステップ S3にお 、て、ベクトル割付部 54は、ベクトル割付処理を実行し、ステップ S 4に進む。すなわち、ベクトル割付部 54は、ステップ S3において、フレーム t上におい て求められた動きベクトルを、割付ベクトルメモリ 55上の、補間する内挿フレーム上の 着目画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメモリ 56の割 付フラグを l(True)に書き換える。例えば、 Trueである割付フラグは、対応する画素に 動きベクトルが割り付けられていることを示し、 Falseである割付フラグは、対応する画 素に動きベクトルが割り付けられていないことを示す。なお、各画素において、動きべ タトルの候補が複数ある場合には、各動きベクトルに対して、評価値 DFDが求められ 、求められた評価値 DFDに基づ ヽた信頼度の高!、動きベクトルが割り付けられる。 すなわち、この場合、動きベクトルを割り付ける着目画素において、最も確カゝらしい動 きベクトルが選択され、割り付けられる。ステップ S3における、ベクトル割付処理の詳 細は、後述する。
[0057] ステップ S4にお ヽて、割付補償部 57は、割付補償処理を実行し、ステップ S5に進 む。すなわち、割付補償部 57は、ステップ S4において、割付フラグメモリ 56の割付フ ラグを参照し、ベクトル割付部 54により動きベクトルが割り付けられな力つた着目画素 に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメモリ 55の 内挿フレーム上に割り付ける。このとき、割付補償部 57は、動きベクトルを補い、割付 けた着目画素の割付フラグを l(True)に書き換える。なお、周辺画素の動きベクトル が複数ある場合には、各動きベクトルに対して、評価値 DFDが求められ、求められた 評価値 DFDに基づいた、信頼度の高い動きベクトルが割り付けられる。すなわち、こ の場合、動きベクトルを割り付ける着目画素において、最も確からしい動きベクトルが 選択され、割り付けられる。ステップ S4における、割付補償処理の詳細は、後述する [0058] ステップ S5にお ヽて、画像補間部 58は、画像補間処理を実行する。すなわち、画 像補間部 58は、ステップ S5において、割付ベクトルメモリ 55の内挿フレームに割り付 けられた動きベクトルと、フレーム tおよびフレーム t+ 1の画素値を用いて、内揷フレ ームの画素値を補間生成し、ステップ S6に進む。ステップ S5〖こおける、画像補間処 理の詳細は後述する。画像補間部 58は、ステップ S6において、生成された内挿フレ ームを出力し、その次に、必要に応じて、フレーム t+ 1を出力することにより、 60P信 号の画像を、図示せぬ後段に出力し、ステップ S7に進む。
[0059] ステップ S7において、ベクトル検出部 52は、すべてのフレームの処理が終了したか 否かを判断し、すべてのフレームの処理が終了していないと判断した場合、ステップ S1に戻り、それ以降の処理を繰り返す。一方、ベクトル検出部 52は、ステップ S7〖こ おいて、すべてのフレームの処理が終了したと判断した場合、フレーム周波数を変換 する処理を終了する。
[0060] 以上のように、本発明に係る信号処理装置 1は、 24P信号の入力画像のフレームか ら動きベクトルを検出し、検出した動きベクトルを、 60P信号のフレーム上の画素に割 付け、割付けられた動きベクトルに基づいて、 60P信号のフレーム上の画素値を生成 する。このとき、信号処理装置 1は、各処理において、評価値 DFD (差分絶対値和) に基づぐより信頼度の高い動きベクトルを選択し、後段に出力する。したがって、信 号処理装置 1においては、動きが破綻することなどが抑制され、より精度のよい画像 を生成することができる。
[0061] 次に、画像補間部 58の構成の詳細について説明する。
[0062] 図 7は、画像補間部 58の構成を示すブロック図である。図 7に構成を示す画像補間 部 58は、割付ベクトルメモリ 55の内挿フレームに割り付けられた動きベクトルと、フレ ーム tおよびフレーム t+ 1の画素値を用いて、内挿フレームの画素値を補間生成し、 60P信号の画像を出力する処理を行う。
[0063] 図 7の例において、時刻 tの画像のフレーム tは、空間フィルタ 92— 1に入力され、 時刻 t+ 1の画像のフレーム t+ 1は、空間フィルタ 92— 2およびバッファ 95に入力さ れる。
[0064] 補間制御部 91は、割付ベクトルメモリ 55の内挿フレームの画素を選択し、選択した 画素に割り付けられている動きベクトルに基づいて、内挿フレーム上の画素と、 2枚の フレーム tおよびフレーム t+ 1の画素との位置関係(空間シフト量)をそれぞれ求める 。すなわち、補間制御部 91は、内挿フレームの画素を基準に、その動きベクトルで対 応付けられるフレーム t上の位置と、内挿フレームの画素に対応するフレーム t上の画 素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ 92 —1に供給する。同様に、補間制御部 91は、内挿フレームの画素を基準に、その動 きベクトルで対応付けられるフレーム t+ 1上の位置と、内挿フレームの画素に対応す るフレーム t+ 1上の画素の位置から、それらの空間シフト量を求め、求めた空間シフ ト量を空間フィルタ 92— 2に供給する。
[0065] また、補間制御部 91は、予め設定されている内挿フレームの時間位相(時刻)に基 づいて、フレーム tとフレーム t+ 1の間における補間重みを求め、求めた補間重みを 、乗算器 93— 1および 93— 2に設定する。例えば、内挿フレームの時刻力 フレーム t+ 1の時刻 t+ 1から「k」離れた時刻で、かつ、フレーム tの時刻 tから「1 k」離れた 時刻である場合 (すなわち、内挿フレームが時刻 tと時刻 t+ 1を「1— k」:「k」に内分 する時刻に生成される場合)、補間制御部 91は、乗算器 93— 1に「1— k」の補間重 みを設定し、乗算器 93— 2に「k」の補間重みを設定する。
[0066] 空間フィルタ 92— 1および 92— 2は、例えば、キュービックフィルタなどにより構成さ れる。空間フィルタ 92— 1は、入力されるフレーム t上の画素の画素値と、補間制御 部 91から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、フレ ーム t上の画素値を求め、求めた画素値を乗算器 93— 1に出力する。空間フィルタ 9 2— 2は、入力されるフレーム t+ 1上の画素の画素値と、補間制御部 91から供給され る空間シフト量に基づいて、内挿フレームの画素に対応する、フレーム t+ 1上の画 素値を求め、求めた画素値を乗算器 93— 2に出力する。
[0067] なお、内挿フレームの画素の位置力 フレーム tまたはフレーム t+ 1上の画素の位 置と一致しない場合(すなわち、内挿フレームの画素の位置力 フレーム tまたはフレ ーム t+ 1において画素以下成分である場合)、空間フィルタ 92— 1および 92— 2は、 フレーム tまたはフレーム t+ 1における内挿フレームの画素の位置の周辺 4画素の画 素値を用いて、周辺 4画素の距離の逆比の和を求めることにより、内挿フレームの画 素に対応するフレーム上の画素値を求める。すなわち、画素以下位置の画素値は、 周辺 4画素との距離を基にした線形補間で値が求められる(その詳細は後述する)。
[0068] 乗算器 93— 1は、空間フィルタ 92— 1から入力されるフレーム t上の画素値に、補 間制御部 91により設定された補間重み「1—k」を乗算し、重み付けされた画素値を、 加算器 94に出力する。乗算器 93— 2は、空間フィルタ 92— 2から入力されるフレー ム t+ 1上の画素値に、補間制御部 91により設定された補間重み「k」を乗算し、重み 付けされた画素値を、加算器 94に出力する。
[0069] 加算器 94は、乗算器 93— 1から入力される画素値と、乗算器 93— 2から入力され る画素値を加算することにより、内挿フレームの画素の画素値を生成し、生成された 内挿フレームの画素値を、バッファ 95に出力する。バッファ 95は、入力されたフレー ム t+ 1をバッファしている。バッファ 95は、生成された内挿フレームを出力し、その次 に、予め設定されている 60Pフレームの時間位相(時刻)に基づいて、必要に応じて 、ノッファしているフレーム t+ 1を出力することにより、 60P信号の画像を、図示せぬ 後段に出力する。
[0070] 以上のように構成される画像補間部 58の画像補間処理の詳細を、図 8のフローチ ヤートを参照して説明する。
[0071] 補間制御部 91は、ステップ S51において、処理する内挿フレームの時間位相に基 づいて、フレーム tとフレーム t+ 1の間における内挿フレームの補間重み(例えば、「 k」および「1— k」)を求め、求められた補間重みを、乗算器 93— 1および 93— 2にそ れぞれ設定し、ステップ S52に進む。補間制御部 91は、ステップ S52において、割 付ベクトルメモリ 55の内挿フレームの画素を選択し、ステップ S53に進む。なお、内 揷フレーム上の画素は、フレームの左上の画素からラスタスキャン順に選択される。
[0072] 補間制御部 91は、ステップ S53において、選択した画素に割り付けられている動き ベクトルに基づいて、内挿フレーム上の画素と、 2枚のフレーム tおよびフレーム t+ 1 の画素との位置関係 (空間シフト量)をそれぞれ求め、求められた空間シフト量を、そ れぞれ空間フィルタ 92— 1および 92— 2に供給し、ステップ S54に進む。具体的に は、補間制御部 91は、ステップ S53において、内挿フレームの画素を基準に、その 動きベクトルで対応付けられるフレーム t上の位置と、内挿フレームの画素に対応す るフレーム t上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量 を空間フィルタ 92— 1に供給する。同様に、補間制御部 91は、内挿フレームの画素 を基準に、その動きベクトルで対応付けられるフレーム t+ 1上の位置と、内挿フレー ムの画素に対応するフレーム t+ 1上の画素の位置から、それらの空間シフト量を求 め、求めた空間シフト量を空間フィルタ 92— 2に供給する。
[0073] 時刻 tの画像のフレーム tの画素値は、空間フィルタ 92— 1に入力され、時刻 t+ 1 の画像のフレーム t+ 1の画素値は、空間フィルタ 92— 2に入力されている。ステップ S54において、空間フィルタ 92—1および 92— 2は、入力されるフレーム tおよび t+ 1上の画素の画素値と、補間制御部 91から供給される空間シフト量に基づいて、内 揷フレームの画素に対応する、各フレーム上の画素値を求め、求めた画素値を乗算 器 93— 1および 93— 2にそれぞれ出力し、ステップ S55に進む。
[0074] 乗算器 93— 1および 93— 2は、ステップ S55において、空間フィルタ 92— 1または 92— 2から入力される各フレーム上の画素値に、補間制御部 91により設定された補 間重みを重み付けし、重み付けされた画素値を、加算器 94に出力し、ステップ S56 に進む。すなわち、乗算器 93— 1は、空間フィルタ 92— 1から入力されるフレーム t上 の画素値に、補間制御部 91により設定された補間重み「1 k」を乗算し、重み付け された画素値を、加算器 94に出力する。乗算器 93— 2は、空間フィルタ 92— 2から 入力されるフレーム t+ 1上の画素値に、補間制御部 91により設定された補間重み「 k」を乗算し、重み付けされた画素値を、加算器 94に出力する。
[0075] 加算器 94は、ステップ S56において、乗算器 93— 1により重み付けされた画素値と 、乗算器 93— 2により重み付けされた画素値を加算することにより、内挿フレームの 画素の画素値を生成し、生成された画素値を、ノ ッファ 95に出力し、ステップ S57に 進む。補間制御部 91は、ステップ S57において、内挿フレーム上のすべての画素に ついての処理が終了したか否かを判断し、内挿フレーム上のすべての画素について の処理が終了していないと判断した場合、ステップ S52に戻り、それ以降の処理を繰 り返す。補間制御部 91は、ステップ S57において、内挿フレーム上のすべての画素 についての処理が終了したと判断した場合、画像補間処理を終了する。
[0076] 以上のように、内挿フレームに割り付けられた動きベクトルに基づいて、内挿フレー ムの画素値が生成され、上述した図 6のステップ S6において、ノ ッファ 95により、内 揷フレームが出力され、その次に、必要に応じて、フレーム t+ 1が出力されることによ り、 60P信号の画像力 後段に出力される。したがって、内挿フレームの画素に、最も 確から 、動きベクトルが割り付くので、精度のょ 、内挿フレームを生成することがで きる。
[0077] 次に、ベクトル検出部 52の構成の詳細について説明する。
[0078] 図 9は、ベクトル検出部 52の構成を示すブロック図である。図 9に構成を示すベタト ル検出部 52は、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画像のフレーム t + 1を用いて、フレーム t上の動きベクトルを検出する。この動きベクトルを検出する処 理は、複数の画素力 なる所定のブロック毎に実行される。
[0079] 初期ベクトル選択部 101は、所定のブロック毎に、過去の動きベクトルの検出結果 力も求められる信頼度が高い動きベクトルを、勾配法に用いられる初期値となる初期 ベクトル VOとして、反復勾配法演算部 103に出力する。具体的には、初期ベクトル選 択部 101は、検出ベクトルメモリ 53に記憶される過去に求められた周辺のブロックの 動きベクトルや、シフト初期ベクトルメモリ 107に記憶されるシフト初期ベクトルを、初 期ベクトルの候補ベクトルとして選択する。そして、初期ベクトル選択部 101は、フレ ーム tとフレーム t+ 1を用いて、候補ベクトルの評価値 DFDを求め、候補ベクトルの 中から、求められた評価値 DFDに基づぐ最も信頼度が高いものを選択し、初期べク トル VOとして出力する。なお、初期ベクトル選択部 101の構成の詳細は、後述する。
[0080] プリフィルタ 102—1および 102— 2は、ローパスフィルタやガウシアンフィルタにより 構成され、それぞれ、入力される画像のフレーム tおよびフレーム t+ 1のノイズ成分を 除去し、反復勾配法演算部 103に出力する。
[0081] 反復勾配法演算部 103は、初期ベクトル選択部 101から入力された初期ベクトル V 0と、プリフィルタ 102—1および 102— 2を介して入力されるフレーム tおよびフレーム t+ 1を用いて、所定のブロック毎に、勾配法により、動きベクトル Vnを算出する。反 復勾配法演算部 103は、初期ベクトル VOと、算出された動きベクトル Vnをベクトル評 価部 104に出力する。また、反復勾配法演算部 103は、ベクトル評価部 104による動 きベクトルの評価結果に基づいて、勾配法の演算を繰り返し行い、動きベクトル Vnを 算出する。なお、反復勾配法演算部 103の構成の詳細は、後述する。
[0082] ベクトル評価部 104は、反復勾配法演算部 103からの動きベクトル Vn— 1 (または 、初期ベクトル VO)と、動きベクトル Vnの評価値 DFDを求め、求められた評価値 DF Dに基づいて、反復勾配法演算部 103を制御し、勾配法の演算を繰り返し実行させ 、最終的に、評価値 DFDに基づぐ信頼性の高いものを選択し、動きベクトル Vとし て、検出ベクトルメモリ 53に記憶する。このとき、ベクトル評価部 104は、動きベクトル Vとともに、その動きベクトル Vに対して求められた評価値 DFDを、シフト初期べタト ル割付部 105に供給する。
[0083] シフト初期ベクトル割付部 105は、ベクトル評価部 104より動きベクトル Vおよびその 評価値 DFDが供給されると、次のフレーム上の着目ブロックを通過する動きベクトル を、その着目ブロックにシフトさせた、シフト初期ベクトルとして設定する。換言すると、 シフト初期ベクトル割付部 105は、動きベクトル Vの終点のブロックと同じ位置の次の フレーム上の着目ブロックを始点とした、動きベクトル Vと同じ大きさで同じ向きの動き ベクトルを、シフト初期ベクトルとして設定する。そして、シフト初期ベクトル割付部 10 5は、設定したシフト初期ベクトルを、着目ブロックに対応させて、シフト初期ベクトルメ モリ 107に割り付ける。
[0084] 具体的には、シフト初期ベクトル割付部 105は、シフト初期ベクトルとして割り付けら れた動きベクトル Vの評価値 DFDを、着目ブロックに対応させて、評価値メモリ 106 に記憶させておき、同じ着目ブロックを通過する(すなわち、着目ブロックと同じ位置 の過去のフレームのブロックを終点とする)他の動きベクトル Vの評価値 DFDと比較 する。そして、シフト初期ベクトル割付部 105は、評価値 DFDに基づぐ信頼度が高 いとされた動きベクトル Vを、着目ブロックにシフトさせ、着目ブロックのシフト初期べク トルとして、シフト初期ベクトルメモリ 107に割り付ける。なお、シフト初期ベクトル割付 部 105の構成の詳細は、後述する。
[0085] 次に、ベクトル検出部 52において用いられる勾配法の原理について説明する。ま ず、動画像中において、水平、垂直、時間軸を用いた座標 (X, y, t)で表される画素 の輝度値を g (X, y, t)とする。ここで、着目画素 (X , y , t )が、微小時間中に、 (dx,
0 0 0
dy, dt)だけ変位したとき、水平、垂直、時間軸の勾配 (差分差)を、それぞれ gx (x , y , t), gy(x, y, t), gt(x, y, t)と表すと、変位後の画素の輝度値は、 Taylor展
0 0 0 0 0 0 0 0
開近似を用いて、次の式(2)で表される。
[0086] g(x +dx, y +dy, t +dt)
0 0 0
^ g(x , y , t
0 0 0ノ +gx、x , y , t )dx
0 0 0
+ gy(x , y , t )dy+gt(x , y , t )dt
0 0 0 0 0 0
•••(2)
[0087] ここで、動画像中のある着目画素が 1フレーム後に水平 vx,垂直 vyだけ移動した場 合 (以降、(vx, vy)と表す)、その画素の輝度値は、次の式(3)で表される。
[0088] g(x +vx, y +vy, t +1) = g(x, y , t)
0 0 0 0 0 0
•••(3)
[0089] 式(2)を式 (3)に代入すると、次の式 (4)で表される。
[0090] gx(x , y , t )vx + gy(x , y , t )vy
0 0 0 0 0 0
+ gt(x, y , t) = 0
0 0 0
•••(4)
[0091] 式 (4)は、 vx, vyの 2変数の式であるので、着目 1画素に対する単独の式では、そ の解を求めることができない。そこで、次に説明するように、着目画素の周辺領域で あるブロックを 1つの処理単位として考え、ブロック (周辺領域)内の全画素が同じ動き (vx, vy)をすると仮定し、各画素について同様の式を立てる。仮定が前提となるが、 2変数に対して周辺画素の個数の式が得られる。したがって、それらの式を連立させ 、ブロック内全画素の動き補償フレーム差分の自乗和が最小になるような (vx, vy)を 求める。
[0092] 画素(X, y, t)カ^フレーム間に(vx, vy)だけ移動したとき、その動き補償フレーム 間差分 dは、次の式(5)で表される。
[0093] d = g(x+vx, y+vy, t+l)-g(x, y, t)
Figure imgf000023_0001
•••(5)
[0094] 式(5)において、 Ax=gx(x, y, t)であり、水平方向の勾配を表し、 Ay=gy(x, y, t)であり、垂直方向の勾配を表し、 At=gt(x, y, t)であり、時間方向の勾配を表す 。これらを用いて、動き補償フレーム間差分の自乗和を Eとすると、式 (6)で表される
[0095] E = ∑d2
= ∑ (Δχνχ + Ayvy +2ΔχΔ yvxvy
+ 2AxAtvx+2AyAtvy+ At2)
=vx L Δχ2+νγ2∑ Ay2+2vxvy∑ ΔχΔγ
+ 2vx∑ AxAt + 2vy∑ AyAt+∑ At2
•••(6)
[0096] ここで、 Eが最小となる (vx, vy)は、各変数における偏微分値が 0になるとき、すな わち、
Figure imgf000024_0001
式(6)から、次の 式(7)および式(8)となる。
[0097] νχ∑ Δχ2+νγ∑ ΔχΔγ+Σ AxAt = 0
•••(7)
vy∑ Δγ2+νχ∑ ΔχΔγ+Σ Ay At = 0
•••(8)
[0098] これらの式(7)および式(8)から、求めた!/、動きである(vx, vy)は、次の式(9)を演 算することにより求めることができる。
[0099] [数 2] v = (∑Δγ2)(∑ΛΐΔχ)-(∑ΔχΛγ)(∑ΛΐΔγ)
(∑Δχ2)(∑Λγ2)-(∑ΛχΔγ)2
(∑ Δχ2) (∑AtAy)-(∑AxAy) (∑AtAx) VV (∑Δχ2)(∑Λν2)-(∑ΛχΔγ)2
•••(9)
[0100] ここで、図 10を参照して、具体的に説明する。図 10の例において、矢印 Xは、水平 方向を示しており、矢印 Υは、垂直方向を示している。また、矢印 τは、図中、右奥の 時刻 tのフレーム tから、左手前の時刻 t+ 1のフレーム t+ 1への時間の経過方向を 示している。なお、図 10の例においては、各フレームは、着目画素 pの周辺領域 (ブ ロック)として、勾配法演算に用いられる 8画素 X 8画素の領域のみ示されて 、る。
[0101] フレーム tにお!/、て、左上の画素から下に 5番目、右に 5番目の画素である着目画 素 Pの動きベクトル V (vx, vy)を、上述した勾配法を用いて求める場合、動きベクトル V (vx, vy)は、着目画素 pの x, y方向のそれぞれについて求められる隣接画素 pxお よび pyとの輝度の差分差 (すなわち、勾配) Δ χおよび Ay、フレーム t+ 1において求 められる着目画素 Pの同位相に位置する画素 qとの時間方向の輝度の差分差 (勾配) A tを、着目画素 pの周辺領域(8画素 X 8画素)のすベての画素について求め、それ らの差分差を、式 (9)を用いて演算することにより、求めることができる。
[0102] すなわち、勾配法とは、 2フレーム間において、勾配 Δ χ, Δγ,および A tを求め、 求められた Δ χ, Δγ,および A tから、差分自乗和を用いて、統計的に、動きベクトル V (vx, vy)を算出するものである。
[0103] 一般的に、このような勾配法を用いた動きベクトル検出方法においては、微小動き に対して精度の高い結果が得られる。し力しながら、実際の動画像の中で動きを求め ようとするとする場合、この勾配法は、その動き量が大きすぎるため実用的とはいえな い。これに対応して、この勾配法を複数回反復する方法が考えられる。勾配法を反復 して実行することにより、各演算で求められる動き量が収束するため、徐々に正しい 動きが求められる。
[0104] し力しながら、ただ、勾配法を反復するだけでは、リアルタイム処理を行おうとした場 合、演算時間の面から実用的ではない。そこで、ベクトル検出部 52においては、過 去フレームと現在フレームでの周辺画素の動きに基づいて求められる初期ベクトルを
、初期値として用いることで、勾配法の繰り返し回数を軽減している。すなわち、動き の起点となる着目画素から、初期ベクトルが指す先へオフセットを予め加えることで大 ま力な動きを算出し、オフセットが加えられたその位置力も勾配法を用いた演算を行 うようにすれば、画素以下動きを含めた微調整を行うことができる。これにより、演算 時間を増大させることなぐ精度のよい動きベクトルを検出することができる。
[0105] 図 11は、初期ベクトルを用いて実行される反復勾配法について具体的に説明する 図である。図 11の例においては、矢印 Tは、図中、左手前の時刻 tのフレーム tから、 右奥の時刻 t+ 1のフレーム t+ 1への時間の経過を示している。なお、各画素 p, qO , ql, q2,および q3を中心としたブロックは、その画素の、勾配法演算に用いられる 周辺領域 (ブロック)を表して!/ヽる。
[0106] 図 11の例の場合、フレーム tにおける着目画素 pに対して、フレーム t+ 1において は、着目画素 pの同位相に位置する画素 qOではなぐ予め求めておいた初期べタト ル νθをオフセット (移動)して計算した位置 (画素) qlを開始点として 1回目の勾配法 演算が行われ、その結果、動きベクトル vlが得られる。
[0107] 次に、画素 qOから vO+vlをオフセットして計算した位置 (画素) q2を開始点として、
2回目の勾配法演算が行われ、その結果、動きベクトル v2が得られる。これにより、最 終的に動きベクトル Vは、式(10)として求められる。
[0108] V = v0+vl +v2
•••(10)
[0109] 以上のようにして、初期ベクトルを用いて、反復勾配法の演算を実行することにより 、演算時間を短縮させつつ、精度の高い動きベクトルを求めることができる。
[0110] 次に、図 12のフローチャートを参照して、動きベクトル検出処理の詳細について説 明する。ベクトル検出部 52には、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の 画像のフレーム t+ 1が入力される。
[0111] 初期ベクトル選択部 101は、ステップ S101において、フレーム t上の処理の対象と なるブロックを、着目ブロックとして選択し、ステップ S102〖こ進む。なお、フレーム上 にお ヽては、左上のブロックカゝらラスタスキャン順に処理が実行される。
[0112] ステップ S102において、初期ベクトル選択部 101は、初期ベクトル選択処理を実 行する。初期ベクトル選択部 101は、ステップ S101において、所定のブロック毎に、 過去の動きベクトルの検出結果から、信頼度が高い動きベクトルを選択し、選択した 動きベクトルを、勾配法に用いられる初期値となる初期ベクトル VOとして、反復勾配 法演算部 103に出力し、ステップ S103に進む。
[0113] すなわち、初期ベクトル選択部 101は、過去の勾配法演算評価処理 (後述するステ ップ S103)において求められ、検出ベクトルメモリ 53に記憶された周辺ブロックの動 きベクトルや、過去のシフト初期ベクトル割付処理(後述するステップ S 104)において シフト初期ベクトルメモリ 107に記憶されたシフト初期ベクトルを、初期ベクトルの候補 ベクトルとして選択する。そして、初期ベクトル選択部 101は、フレーム tとフレーム t+ 1を用いて、候補ベクトルの評価値 DFDを求め、候補ベクトルの中から、求められた 評価値 DFDに基づいた信頼度が高いものを選択し、選択された候補ベクトルを、初 期ベクトル VOとして出力する。なお、ステップ S 102における、初期ベクトル選択処理 の詳細は、後述する。
[0114] ステップ S 103において、反復勾配法演算部 103およびベクトル評価部 104は、反 復勾配法演算評価処理 (なお、反復勾配法演算処理とも称する)を実行し、ステップ S104に進む。具体的には、ステップ S103において、反復勾配法演算部 103は、初 期ベクトル選択部 101から入力された初期ベクトル V0と、プリフィルタ 102— 1および 102— 2を介して入力されるフレーム tおよびフレーム t+ 1を用いて、ベクトル評価部 104による動きベクトルの評価結果に基づいて、勾配法の演算を繰り返し行い、動き ベクトル Vnを算出する。また、ベクトル評価部 104は、反復勾配法演算部 103からの 動きベクトル Vn—lと、動きベクトル Vnの評価値 DFDを求め、求められた評価値 DF Dに基づぐ最も信頼性の高いものを選択し、動きベクトル Vとして、検出ベクトルメモ リ 53に記憶する。このとき、ベクトル評価部 104は、動きベクトル Vとともに、その動き ベクトル Vに対して求めた評価値 DFDを、シフト初期ベクトル割付部 105に供給する 。なお、ステップ S103における、反復勾配法演算処理の詳細は、後述する。
[0115] ステップ S104において、シフト初期ベクトル割付部 105は、シフト初期ベクトル割付 処理を実行し、ステップ S105に進む。シフト初期ベクトル割付部 105は、ベクトル評 価部 104より動きベクトル Vおよびその評価値 DFDが供給されると、ステップ S104に お!、て、次のフレーム上の着目ブロックを通過する動きベクトルを、その着目ブロック にシフトさせた、シフト初期ベクトルとして設定する。すなわち、換言すると、動きべタト ル Vの終点のブロックと同 Cf立置の次のフレーム上の着目ブロックを始点とした、動き ベクトル Vと同じ大きさで同じ向きの動きベクトル力 シフト初期ベクトルとして設定さ れる。そして、シフト初期ベクトル割付部 105は、設定したシフト初期ベクトルを、着目 ブロックに対応させて、シフト初期ベクトルメモリ 107に割り付ける。
[0116] なお、具体的には、シフト初期ベクトル割付部 105は、シフト初期ベクトルとして割り 付けられた動きベクトル Vの評価値 DFDを、着目ブロックに対応させて、評価値メモリ 106に記憶させておき、同じ着目ブロックを通過する(すなわち、着目ブロックと同じ 位置の過去のフレームのブロックを終点とする)他の動きベクトル Vの評価値 DFDと 比較し、評価値 DFDに基づぐ信頼度が高いとされた動きベクトル Vを、そのブロック にシフトさせてシフト初期ベクトルと設定し、シフトさせたブロックに対応させて、シフト 初期ベクトルメモリ 107に割り付ける。なお、シフト初期ベクトル割付部 105の構成の 詳細は、後述する。
[0117] ステップ S105において、初期ベクトル選択部 101は、フレーム tにおいて、すべて のブロックの処理が終了したか否かを判断し、すべてのブロックの処理が終了してい ないと判断した場合、ステップ S101に戻り、それ以降の処理を繰り返す。また、ステ ップ S105において、初期ベクトル選択部 101は、フレーム tにおいて、すべてのブロ ックの処理が終了したと判断した場合、すなわち、フレーム t上のすべてのブロックに おいて、動きベクトル Vが検出されたと判断し、動きベクトル検出処理を終了する。
[0118] 以上のように、過去に検出された動きベクトル力 初期ベクトルが選択され、選択さ れた初期ベクトルに基づいて、反復勾配法の演算が用いられて、繰り返し動きべタト ルが算出され、算出された動きベクトルの中から、評価値 DFDに基づぐ信頼度が高 い(すなわち、最も確からしい)動きベクトルが検出される。この結果、検出ベクトルメ モリ 53に、フレーム t上のすべてのブロックに対応する動きベクトル Vが記憶される。
[0119] 次に、シフト初期ベクトル割付部 105の構成の詳細について説明する。
[0120] 図 13は、シフト初期ベクトル割付部 105の構成を示すブロック図である。図 13に構 成を示すシフト初期ベクトル割付部 105は、前 (過去)フレームにおいて、ベクトル評 価部 104より検出された動きベクトル Vに基づいて、初期ベクトルの候補ベクトルとな るシフト初期ベクトルを設定し、シフト初期ベクトルメモリ 107に割り付ける処理を行う。 シフト初期ベクトル割付部 105には、ベクトル評価部 104より検出された動きベクトル V、および、その動きベクトル Vの評価値 DFDが入力される。
[0121] 割付対象位置演算部 201は、ベクトル評価部 104より検出された動きベクトル Vが、 次の時刻のフレーム上において通過するブロックの位置(すなわち、現在のフレーム 上において検出された動きベクトル Vの終点のブロックと同じ位置にある次のフレー ム上のブロックの位置)を演算し、演算されたブロックの位置を、評価値メモリ 106お よびシフト初期ベクトル置換部 203に供給する。
[0122] 評価値比較部 202は、動きベクトル V、および、その動きベクトル Vの評価値 DFD が入力されると、割付対象位置演算部 201からのブロックの位置の評価値 DFDを、 評価値メモリ 106から読み出す。そして、評価値比較部 202は、評価値メモリ 106か ら読み出された評価値 DFDと、ベクトル評価部 104により検出された動きベクトル V の評価値 DFDとを比較判断し、検出された動きベクトル Vの評価値 DFDの方が小さ い (すなわち、信頼度が高い)と判断した場合、シフト初期ベクトル置換部 203を制御 し、シフト初期ベクトルメモリ 107の、シフト初期ベクトル割付部 105により供給された ブロックの位置のシフト初期ベクトルを、評価値 DFDに基づぐ信頼度が高いと判断 した動きベクトル Vで書き換えさせる。また、それと同時に、評価値比較部 202は、評 価値置換部 204を制御し、評価値メモリ 106において、割付対象位置演算部 201に より選択されたブロックの位置の評価値 DFDを、動きベクトル Vの評価値 DFDで書き 換えさせる。
[0123] シフト初期ベクトル置換部 203は、シフト初期ベクトルメモリ 107の、割付対象位置 演算部 201により供給されたブロックの位置のシフト初期ベクトルを、評価値比較部 2 02から供給される動きベクトル V (すなわち、動きベクトル Vと同じ大きさで同じ向きの 動きベクトル)で書き換える。評価値置換部 204は、評価値比較部 202の制御のもと 、評価値メモリ 106において、割付対象位置演算部 201により選択されたブロックの 位置の評価値 DFDを、動きベクトル Vの評価値 DFDで書き換える。
[0124] 評価値メモリ 106は、次のフレーム上における、各ブロックに割り当てられるシフト初 期ベクトル候補の評価値 DFDをブロック毎に記憶する。シフト初期ベクトルメモリ 107 は、次のフレームにおける各ブロックにおいて最も評価値 DFDが小さい(すなわち、 最も信頼度がある)動きベクトルを、シフト初期ベクトルとして、そのブロックに対応さ せて記憶する。
[0125] 図 14は、シフト初期ベクトル割付部 105により割り付けられるシフト初期ベクトルを 1 次元的に説明する図である。図 14の例においては、上から順に、時刻 T=t— 1のフ レーム t—l、時刻 T=tのフレーム t、および、時刻 T=t+ 1のフレーム t+ 1が示され ており、各フレーム上の仕切りは、各フレームにおけるブロックの境界を示している。 [0126] 図 14の例の場合、フレーム t—l上のブロック Bにおいて検出される動きベクトルを、 動きベクトル V (図中、実線矢印)とし、ブロック Bを始点とする動きベクトル Vによるフ レーム t上の動き補償先(以下、オフセット先とも称する)を、ブロック Btとする。また、 フレーム t—l上の動きベクトル Vをフレーム t上のブロック Btにシフトした動きベクトル を、シフト初期ベクトル SV (図中、点線矢印)とする。なお、この場合、オフセット先と は、フレーム t—l上において検出された動きベクトル Vの終点のブロックと同じ位置 にあるフレーム t上のブロック Btのことを表しており、シフトとは、フレーム t—l上にお いて検出された動きベクトル Vと同じ大きさで同じ向きの動きベクトルの始点を、フレ ーム t 1上の動きべクトノレ Vの終点のブロックと同じ位置にあるフレーム t上のブロッ ク Btとすることをいう。すなわち、シフト初期ベクトル SVは、フレーム t—1上において 検出された動きベクトル Vの終点のブロックと同じ位置にあるフレーム t上のブロック B tを始点とした、動きベクトル Vと同じ大きさで同じ向きの動きベクトルのことである。
[0127] 一般的に、連続するフレーム間では、動物体の動き量にある程度の連続性があり、 その動き量の変化が小さいとされるので、図 14の例においては、ブロック B上の物体 が等速かそれに近い動きをする場合、ブロック Btにおける動きベクトルも、動きべタト ル V力それに近!、動きのベクトルになることが多!、。
[0128] したがって、このシフト初期ベクトル SVを、フレーム t上の着目ブロック Btの動きべク トルを検出する場合に、勾配法演算に与える初期ベクトルの候補として用いることに より、周辺ブロックの動きベクトルだけを初期ベクトルの候補として用いる場合よりも、 勾配法演算による動きベクトル検出に、より適切な初期ベクトルを得ることができる。
[0129] 以上のことを、図 15および図 16を参照して、具体的に説明する。なお、図 15およ び図 16においては、各フレーム上には、 9つのブロックが示されている。
[0130] 図 15は、大きな動きの物体が通過しているブロックと、その周辺ブロックの動きべク トルの例を表している。図 15の例の場合、 1ブロック力 なる、ある物体 Olの画像ォ ブジェクトは、大きな動きの動きベクトル VIで、フレーム t 1上の最右端 (左から 9番 目)のブロックから、フレーム t上の左から 5番目のブロックを経由して、フレーム t+ 1 上の最左端のブロックへ移動している。一方、 4ブロック力もなる物体 02の画像ォブ ジェタトは、動きベクトル VIよりも小さな動きの動きベクトル V2で、フレーム t— 1上の 左から 3乃至 6番目の 4ブロック力ら、フレーム t上の左から 4乃至 7番目の 4ブロックを 経由して、フレーム t+ 1上の左から 5乃至 8番目の 4ブロックへ移動している。すなわ ち、フレーム t上の左から 5番目のブロックにおいて、物体 Olの画像オブジェクトと物 体 02の画像オブジェクトは、物体 Olの画像オブジェクトを手前にして交差している。
[0131] このとき、フレーム t上において、物体 Olの画像オブジェクトが動きベクトル VIで通 過する、左から 5番目のブロックの動きベクトルを検出するために、周辺ブロックの動 き力も初期ベクトルを抽出しようとしても、周辺ブロック (左力も 4または 6番目のブロッ ク)に、物体 02の画像オブジェクトが、物体 Olの画像オブジェクトとは異なる動きべ タトル V2で通過しているため、適切な動きベクトルは、存在しない。一方、シフト初期 ベクトル SV1 (図中、点線矢印)は、このような場合であっても、過去のフレーム T—1 上で検出された動きベクトル VIを、そのフレーム t上の左から 5番目のブロックにシフ トした動きベクトル(すなわち、フレーム t—l上において検出された動きベクトル VIの 終点のブロックと同 Cf立置にあるフレーム t上のブロックを始点とした、動きベクトル VI と同じ大きさで同じ向きの動きベクトル)であるので、確実に取得することができる。
[0132] 図 16は、動物体の境界のブロックと、その周辺ブロックの動きベクトルの例を表して いる。図 16の例の場合、 1ブロック力らなる、ある物体 03の画像オブジェクトは、動き ベクトル V3で、フレーム t—l上の左から 6番目のブロックから、フレーム t上の左から 5 番目のブロックを経由して、フレーム t+ 1上の左から 4番目のブロックへ移動している 。一方、 9ブロック以上からなる物体 04の画像オブジェクトは、動きベクトル VIとは異 なる動きベクトル V4で、フレーム t—l上の全 9ブロックから、フレーム t上の左から 2乃 至 9番目の 8ブロックを経由して、フレーム t+ 1上の左から 3乃至 9番目の 7ブロックへ 移動している。すなわち、物体 03の画像オブジェクトは、フレーム t—lの左から 6番 目のブロック、フレーム t上の左から 5番目のブロック、およびフレーム t+ 1左から 4番 目のブロックにおいて、物体 04の画像オブジェクトの手前を通過している。
[0133] このとき、フレーム t上において、物体 03の画像オブジェクトが動きベクトル V3で通 過する、左から 5番目のブロックの動きベクトルを検出するために、周辺ブロックの動 き力も初期ベクトルを抽出しようとしても、周辺ブロック (左力も 4または 6番目のブロッ ク)に、物体 04の画像オブジェクトが、物体 03の画像オブジェクトとは異なる動きべ タトル V4で通過しているため、適切な動きベクトルは、存在しない。しかしながら、こ の場合においても、図 15の場合と同様に、シフト初期ベクトル SV3 (図中、点線矢印 )は、過去のフレーム T—1上で検出された動きベクトル V3を、そのフレーム t上の右 力 5番目のブロックにシフトしたベクトル(すなわち、フレーム t—1上において検出さ れた動きベクトル V3の終点のブロックと同 Cf立置にあるフレーム t上のブロックを始点 とした、動きベクトル V3と同じ大きさで同じ向きの動きベクトル)であるので、確実に取 得することができる。
[0134] 以上のように、図 15に示されるような大きな動きを持つ物体や、図 16に示されるよう に動 、て 、る物体の境界にぉ 、ては、動きベクトルを検出しょうとする着目ブロックの 初期ベクトルの候補となる周辺ブロックに、着目ブロックの初期ベクトルとして最適な 動きベクトルが存在しない場合が多く存在する。これに対して、シフト初期ベクトルは 、過去のフレーム t—l上において検出された動きベクトルの終点のブロックと同じ位 置にあるフレーム t上のブロックを始点とした、動きベクトルと同じ大きさで同じ向きの 動きベクトルであるので、ブロック間の空間距離に依存しないため、周辺ブロックに、 着目ブロックの初期ベクトルとして適切な動きベクトルが存在しない場合にも、確実に 取得することができ、初期ベクトルの最適な候補として用いることができる。
[0135] ここで、ー且、図 14に戻り、シフト初期ベクトルの決定方法について説明する。図 1 4の例において、動きベクトル検出処理を行うフレーム t上の着目ブロック Btを基準と して、フレーム t—lから、着目ブロック Btを通過する動きベクトル(すなわち、フレーム t上のブロック Btと同 Cf立置にあるフレーム t—1のブロックを終点とする動きベクトル) を探索しょうとすると、フレーム t 1上の全ブロックの動きベクトルを検索しなければ ならず、処理が膨大になってしまう。したがって、この場合、動きベクトル検出時に、膨 大な処理分の演算量をこなさなければならず、その実現 (ハードウ ア化)が困難で めつに。
[0136] そこで、シフト初期ベクトル割付部 105は、フレーム t— 1における動きベクトル検出 の際に、着目ブロック Btにおいて検出された動きベクトル V力 次の時刻のフレーム t 上で通過するブロックの位置(すなわち、動きベクトル Vの終点のブロックと同じ位置 のフレーム t上のブロック)を求め、その動きベクトル Vを、ブロック Btに対するシフト初 期ベクトル svとして、予め割り付けておく。これにより、フレーム t上での動きベクトル 検出の際に必要となるシフト初期ベクトルを探索する演算量を削減することができ、 ハードウェア化が実現できるようになり、現実的に、シフト初期ベクトルを、初期べタト ルの候補として用いることが可能になる。
[0137] 図 17を参照して、シフト初期ベクトル割付部 105によるシフト初期ベクトルの決定方 法を具体的に説明する。図 17の例においては、矢印 Tは、図中、左手前の時刻 t—l のフレーム t—lから、右奥の時刻 tのフレーム tへの時間の経過を示している。また、 各フレーム上の丸は、画素を表している。
[0138] フレーム t—l上において、ブロック BOは、 4 X 4画素により構成される。ブロック BO において検出された動きベクトル Vbとすると、ブロック BOをフレーム t上にオフセット( 動き補償)したオフセット先(ブロック BOの動きベクトル Vbの終点のブロックと同じ位 置のフレーム t上のブロック) AOは、一般的には、フレーム t上の 4 X 4画素により構成 される 4つのブロック Btl乃至 Bt4と重なりを持つ。したがって、図 17の例の場合にお いては、このオフセット先 AOと重なりを持つ 4つのブロック Btl乃至 Bt4のすべてが、 動きベクトル Vbを、シフト初期ベクトルとして割り付ける対象ブロックとされる。
[0139] 以上のようにして前のフレームにおいて検出された動きベクトルを、シフト初期べタト ルとして割り付ける。この場合、割り付けられる対象となるブロックの位置は、動きべク トルの大きさと向きによる。このため、フレーム t—l上で検出される動きベクトルの分 布によっては、図 18に示されるように、フレーム t上において、複数のシフト初期べタト ルが割り付ける対象となり競合するブロックや、逆に、シフト初期ベクトルの割り付けが 起こらな 、ブロックが発生してしまう。
[0140] 図 18は、シフト初期ベクトルの割り付けの例を示している。図 18の例において、各 フレームの仕切りは、ブロックの境界を示しており、フレーム t—l上には、図中左から 、ブロック B1乃至 B5により構成され、フレーム t上には、図中左から、ブロック Btl乃 至 Bt5が示されている。
[0141] ブロック B1においては、動きベクトル VIが検出され、ブロック B1のオフセット先 A1 は、フレーム t上のブロック Btlおよび Bt2と重なりを持つ。ブロック B2においては、動 きベクトル V2が検出され、ブロック B2のオフセット先 A2は、フレーム t上のブロック Bt 1および Bt2と重なりを持つ。ブロック B3おいては、動きベクトル V3が検出され、ブロ ック B3のオフセット先 A3は、フレーム t上のブロック Bt4および Bt5と重なりを持つ。 ブロック B4においては、動きベクトル V4が検出され、ブロック B4のオフセット先 A4は 、フレーム t上のブロック Bt4および Bt5と重なりを持つ。ブロック B5においては、動き ベクトル V5が検出され、ブロック B5のオフセット先 A5は、フレーム t上のブロック Bt5 および図示せぬ隣接ブロックと重なりを持つ。
[0142] すなわち、図 18の例においては、フレーム t上のブロック Btlおよび Bt2には、動き ベクトル VIまたは V2のどちらか一方がシフト初期ベクトルとして割り付けられる。また 、フレーム t上のブロック Bt4には、動きべクトノレ V3および V4のどちらか一方がシフト 初期ベクトルとして割り付けられ、フレーム t上のブロック Bt5には、動きベクトル V3、 V4、および V5のうちのいずれかがシフト初期ベクトルとして割り付けられる。しかしな がら、フレーム t上のブロック Bt3には、シフト初期ベクトルの候補となる動きベクトルが 存在せず、シフト初期ベクトルは割り付けられな 、。
[0143] したがって、シフト初期ベクトル割付部 105は、ブロック Bt3のように、シフト初期べク トルの割り付けが起こらな 、ブロックに対して、 0ベクトルをシフト初期ベクトルとして割 り付ける。一方、シフト初期ベクトル割付部 105は、ブロック Btl, Bt2, Bt4,および B t5のように、複数の動きタトルが競合するブロックに対して、上述した評価値 DFDに 基づぐ信頼度が高い動きベクトルを選択し、選択した動きベクトルを、シフト初期べ タトルとしてそれぞれのブロックに割り付ける。
[0144] なお、図 18の例においては、説明の便宜上、オフセット先 Aは、フレーム t上カも少 しずらして示されている。
[0145] 図 19は、競合する動きベクトルの例を示す図である。図 19の例においては、フレー ム t—l上のブロック B1および B2から、それぞれにおいて検出された動きベクトル VI および V2が、フレーム t上のブロック Btを通過している。すなわち、ブロック Btは、動 きベクトル VIのフレーム t 1上の終点と同 Cf立置のフレーム t上のブロックであり、動 きべクトノレ V2のフレーム t— 1上の終点と同 Cf立置のフレーム t上のブロックである。こ のように、複数の動きベクトルが同じブロックに対して競合する場合には、動きべタト ル VIに対する評価値 DFD1と、動きベクトル V2に対する評価値 DFD2の値が比較 され、評価値 DFDが小さい方 (すなわち、信頼度が高い方)がブロック Btに対応する シフト初期ベクトル SV2として選択される。これにより、評価値 DFDに基づぐ信頼度 の高 、シフト初期ベクトルを得ることができる。
[0146] 次に、図 20のフローチャートを参照して、シフト初期ベクトル割り付け処理の詳細に ついて説明する。前段において、ベクトル評価部 104は、フレーム t—1上の着目ブロ ックの動きベクトル Vを検出すると、検出された動きベクトル Vとともに、その動きべタト ル Vに対して求めた評価値 DFDを、シフト初期ベクトル割付部 105に供給する。
[0147] ステップ S201において、評価値比較部 202は、ベクトル評価部 104から、動きべク トル Vとともに、その動きベクトル Vの評価値 DFDを入力する。また、このとき、割付対 象位置演算部 201も、動きベクトル Vを入力し、ステップ S202に進む。割付対象位 置演算部 201は、動きベクトル Vのフレーム tにおけるオフセット (動き補償)先の割付 対象ブロックの位置を求める。すなわち、割付対象位置演算部 201は、フレーム t— 1 上において検出された動きベクトル Vの終点のブロックと同じ位置にあるフレーム t上 のブロックの位置を求め、ステップ S203に進む。割付対象位置演算部 201は、ステ ップ S203において、求められた割付対象ブロックのうち、 1つの割付対象ブロックを 選択し、選択した割り付け対象ブロックの位置を、評価値メモリ 106およびシフト初期 ベタ卜ノレ置換咅 203【こ供給し、ステップ S204【こ進む。なお、ステップ S203【こお!ヽて は、割付対象ブロックのうち、フレーム t上において左上のブロックから順に選択され る。
[0148] ステップ S204にお ヽて、評価値比較部 202は、評価値メモリ 106から、割付対象 位置演算部 201により選択された割付対象ブロックの評価値 DFDを取得し、ステツ プ S205に進み、ステップ S201において入力された動きベクトル Vの評価値 DFDが 、評価値メモリ 106の評価値 DFDよりも小さいか否力 (すなわち、動きベクトル Vの評 価値 DFDが、評価値メモリ 106の評価値 DFDよりも信頼度が高いか否力 )を判断し 、動きベクトル Vの評価値 DFD力 評価値メモリ 106の評価値 DFDよりも小さいと判 断された場合、ステップ S206に進む。
[0149] 評価値比較部 202は、ステップ S206において、シフト初期ベクトル置換部 203を制 御し、割付対象位置演算部 201により選択されたシフト初期ベクトルメモリ 107の割 付対象ブロックのシフト初期ベクトルを、動きベクトル V (すなわち、動きベクトル Vと同 じ大きさで同じ向きの動きベクトル)に書き換えさせ、ステップ S207に進み、評価値 置換部 204を制御し、割付対象位置演算部 201により選択された割付対象ブロック の評価値 DFDを、動きベクトル Vの評価値 DFDで書き換えさせ、ステップ S 208に進 む。
[0150] また、評価値比較部 202は、ステップ S205において、ステップ S 201において入力 された動きベクトル Vの評価値 DFD力 評価値メモリ 106に記憶される評価値 DFD よりも小さくないと判断した場合、ステップ S206および S207の処理をスキップし、ス テツプ S208に進む。すなわち、この場合、評価値メモリ 106の評価値 DFD力 動き ベクトル Vの評価値 DFDよりも信頼度が高 、と判断されるので、評価値メモリ 106お よびシフト初期ベクトルメモリ 107の値は、書き換えられることはな!/、。
[0151] 割付対象位置演算部 201は、ステップ S208において、動きベクトル Vの割り付け対 象ブロックすべての処理が終了した力否かを判断し、割り付け対象ブロックすべての 処理が終了していないと判断した場合、ステップ S203に戻り、それ以降の処理を繰 り返す。また、割付対象位置演算部 201は、ステップ S208において、動きベクトル V の割り付け対象ブロックすべての処理が終了したと判断した場合、シフト初期ベクトル 割付処理を終了する。
[0152] なお、初回の処理においては、選択された割付対象ブロックに対応するシフト初期 ベクトル力 シフト初期ベクトルメモリ 107にまだ記憶されていない。したがって、その シフト初期ベクトルの評価値 DFDが、評価値メモリ 106の対応する割付対象ブロック に、まだ記憶されていない場合には、ステップ S 204において、選択された割付対象 ブロックから評価値 DFDは、取得されないので、ステップ S205においては Yesと判 断されることとし、ステップ S206および S207の処理が実行される。
[0153] 以上のように、着目ブロックの動きベクトルの検出を処理する際に、連続するフレー ム間において動物体の動き量にはある程度の連続性があり、動き量の変化が小さい ことに基づいて、前の時刻(過去)のフレームから、次の時刻のフレームの着目ブロッ クを通過する動きベクトル (すなわち、過去のフレーム上において検出された動きべク トル Vの終点のブロックと同じ位置にある次のフレーム上のブロックを始点とした、動き ベクトル Vと同じ大きさで同じ向きの動きベクトル)であるシフト初期ベクトルを、初期べ タトルの候補ベクトルとすることにより、従来のように、周辺ブロックにおいて過去に求 められている動きベクトルのみを初期ベクトルの候補ベクトルとする場合よりも、特に、 動 ヽて 、る物体の境界にぉ 、ては、勾配法演算の初期値として適切な動きベクトル を与えることができ、これにより、勾配法の演算による動きベクトル検出の精度を向上 させることがでさる。
[0154] また、シフト初期ベクトルを求める際に、前の時刻のフレームにおいて検出された動 きベクトルが次の時刻のフレームにおいて通過するブロック(すなわち、フレーム t 1 上において検出された動きベクトル Vの終点のブロックと同じ位置にあるフレーム t上 のブロック)を求め、次の時刻のフレーム上の着目ブロックにおけるシフト初期べタト ルとして割り付けるようにしたので、着目ブロックを通過する動きベクトルを、前の時刻 のフレームの全ブロックの動きベクトル力も探索する場合よりも、処理の演算量が削減 されるため、膨大な演算量により実現が困難であったハードウ ア化を実現すること ができる。
[0155] 次に、初期ベクトル選択部 101の構成の詳細について説明する。
[0156] 図 21は、初期ベクトル選択部 101の構成を示すブロック図である。図 21に構成を 示す初期ベクトル選択部 101は、前 (過去)フレームにおいて検出された動きベクトル や、シフト初期ベクトルなどの候補ベクトル (以下、初期候補ベクトルとも称する)から、 信頼度の高い動きベクトルを、初期ベクトルとして選択する処理を行う。初期ベクトル 選択部 101には、時刻 tの画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1が入 力される。
[0157] 候補ベクトル位置演算部 251は、フレーム tが入力されると、フレーム t上の処理の 対象となる着目ブロックを選択し、着目ブロックの周辺領域から、着目ブロックの初期 候補ベクトルを取得する候補ブロックの位置、初期候補ベクトルとなる動きベクトルの 種類および優先順位を求め、求められた優先順位の順に、候補ブロックの位置情報 および初期候補ベクトルの種類情報を、検出ベクトル取得部 252およびシフト初期べ タトル取得部 253に供給する。また、候補ベクトル位置演算部 251は、候補ブロックの 位置情報を、オフセット位置演算部 254にも供給する。 [0158] なお、信号処理装置 1においては、初期候補ベクトルの数は、初期ベクトルの精度 と、ハードウェア能力の兼ね合いなどに基づいて所定数に設定されており、さらに、 候補ブロックの位置、初期候補ベクトルの種類、および優先順位も、例えば、図 23を 参照して後述するように、予め設定されている。また、初期候補ベクトルの種類として は、過去フレームにおいて、所定のブロックを通過する動きベクトルを、その所定のブ ロックにシフトさせた動きベクトル (すなわち、過去フレーム上において検出された動 きベクトルの終点のブロックと同 Cf立置にある次のフレーム上のブロックを始点とした、 動きベクトル Vと同じ大きさで同じ向きの動きベクトル)であるシフト初期ベクトル SV、 過去フレームにおいて検出された動きベクトル (以下、過去ベクトル PVとも称する)、 現在のフレームにおいて着目ブロックより手前のブロックにおいて検出された動きべ タトル(現在ベクトル CVとも称する)、および 0ベクトルがある。
[0159] したがって、候補ベクトル位置演算部 251は、予め設定された初期候補ベクトルの 種類が過去ベクトルまたは現在ベクトルであった場合、候補ブロックの位置情報およ び初期候補ベクトルの種類情報を、検出ベクトル取得部 252に供給し、求めた初期 候補ベクトルの種類がシフト初期ベクトルであった場合、候補ブロックの位置情報お よび初期候補ベクトルの種類情報を、シフト初期ベクトル取得部 253に供給し、その どちらでもなカゝつた場合 (例えば、初期候補ベクトルの種類が、 0ベクトルである場合) 、 0ベクトルを設定し、 0ベクトルと共に、候補ブロックの位置情報を、オフセット位置演 算部 254に供給する。
[0160] 検出ベクトル取得部 252は、候補ベクトル位置演算部 251により供給された候補ブ ロックの位置情報および初期候補ベクトルの種類情報に応じた動きベクトルを、検出 ベクトルメモリ 53より取得し、取得した動きベクトルを、初期候補ベクトルとして、オフ セット位置演算部 254に出力する。
[0161] シフト初期ベクトル取得部 253は、候補ベクトル位置演算部 251により供給された 候補ブロックの位置情報および初期候補ベクトルの種類情報に応じて、候補ブロック の位置情報に対応したシフト初期ベクトルを、シフト初期ベクトルメモリ 107から取得 し、初期候補ベクトルとしてオフセット位置演算部 254に出力する。また、シフト初期 ベクトル取得部 253は、候補ベクトル位置演算部 251により指示されたブロックの位 置に、シフト初期ベクトルが割り付けられていない場合、 0ベクトルを、オフセット位置 演算部 254に出力する。なお、シフト初期ベクトルが割り付けられていない場合には 、 0ベクトル力 シフト初期ベクトルメモリ 107に予め記憶されているようにしてもよい。
[0162] オフセット位置演算部 254は、検出ベクトル取得部 252またはシフト初期ベクトル取 得部 253から初期候補ベクトル (あるいは候補ベクトル位置演算部 251からの 0ベタト ル)を入力すると、候補ベクトル位置演算部 251により供給された候補ブロックの位置 情報に基づいて、各初期候補ベクトルに対して、フレーム tの着目ブロックを、フレー ム t+ 1にオフセット (動き補償)させたオフセット先のブロック位置を演算する。そして 、オフセット位置演算部 254は、初期候補ベクトルとともに、候補ブロックの位置情報 、およびオフセット先ブロック位置の情報を、評価値演算部 255に出力する。
[0163] 評価値演算部 255は、オフセット位置演算部 254より初期候補ベクトルとともに、候 補ブロックの位置情報、およびオフセット先ブロック位置の情報を入力すると、フレー ム tとフレーム t+ 1を用いて、初期候補ベクトルの評価値 DFDを求める。そして、評 価値演算部 255は、初期候補ベクトルとともに、求められた評価値 DFDを、評価値 比較部 256に出力する。
[0164] 評価値比較部 256は、評価値演算部 255により入力された評価値 DFDと、最適候 補格納用レジスタ 257に格納されている最適候補ベクトルの評価値 DFDを比較し、 評価値演算部 255により入力された初期候補ベクトルの評価値 DFDが、最適候補 ベクトルの評価値 DFDよりも小さい、すなわち、初期候補ベクトルが最適候補べタト ルよりも信頼度が高いと判断された場合、最適候補格納用レジスタ 257の最適候補 ベクトルおよびその評価値 DFDを、信頼度が高!、とされた初期候補ベクトルおよび その評価値 DFDで置き換える。そして、最終的に、評価値比較部 256は、最適候補 格納用レジスタ 257を制御し、すべての候補ベクトルの中から、評価値 DFDに基づく 、信頼度が最も高いと判断された最適候補ベクトルを、初期ベクトル VOとして、反復 勾配法演算部 103に出力させる。
[0165] 最適候補格納用レジスタ 257は、評価値比較部 256により評価値 DFDが小さい( 信頼度が高い)とされた初期候補べ外ルが、最適候補ベクトルとして、その評価値 D FDとともに記憶されている。そして、最適候補格納用レジスタ 257は、評価値比較部 256の制御のもと、最終的に記憶されている最適候補ベクトルを、初期ベクトル VOと して、反復勾配法演算部 103に出力する。
[0166] 図 22は、初期ベクトルの候補ブロックとなり得る周辺領域を示している。図 22の例 において、矢印 Tは、図中、左手前の時刻 t 1の過去(前)フレーム t 1から、右奥 の時刻 tの現在フレーム tへの時間の経過方向を示している。なお、図 22の例におい ては、初期ベクトルの候補となり得る周辺領域は、着目のブロック Btを中心とした 7ブ ロック X 7ブロックにより構成され、各ブロックは、画素数が 4画素 X 4画素により構成 されている。
[0167] 動きベクトル検出処理は、上述したように、フレームの左上のブロックからラスタスキ ヤン順に実行される。したがって、初期ベクトル選択部 101は、現在フレーム tの着目 ブロック Btの動きベクトル検出処理の際には、その直前のブロックまでの動きベクトル 検出の結果を、初期ベクトルの候補とすることができる。
[0168] すなわち、着目ブロック Btの周辺領域は、着目ブロック B りも手前に処理される ブロック CVB、および着目ブロック Btよりも後に処理されるブロック PVBにより構成さ れている。したがって、着目ブロック Btの初期ベクトルを求める場合、初期候補べタト ルは、ブロック CVBの現在フレーム t上で検出された動きベクトル(現在ベクトル CV) 、および、ブロック PVBの過去フレーム t 1上で検出された動きベクトル(過去べタト ル PV)の中力も選択することができる。なお、このとき、同じ周辺領域のブロックに割り 付けられるシフト初期ベクトルも、初期候補ベクトルの候補となりうる。
[0169] 図 23は、候補ベクトル位置演算部 251において設定される初期ベクトルの候補ブ ロックの例を示している。図 23の例においては、着目ブロック Btの周辺領域のうち、「 英字 Z数字」のシンボルがそれぞれ示されて 、る 8個の所定のブロック力 初期候補 ベクトルが取得される候補ブロックとして設定されて 、る。これらの 8個の所定のブロッ クに示されて 、る斜線の前後のシンボルは、「初期候補ベクトルの種類」と「優先順位 」をそれぞれ表している。なお、初期候補ベクトルの種類のうち、 Pは、過去フレーム t 1で検出された過去ベクトル PVを表しており、 Cは、現在フレーム tで検出された現 在ベクトルを表しており、 Sは、シフト初期ベクトル SVを表している。
[0170] 着目ブロックでの rs/ljは、着目ブロック Btに割り付けられたシフト初期ベクトル S Vが初期候補ベクトルとして、優先順位「1」番目に用いられることを表している。着目 ブロック Btの左隣のブロックの「C/2」は、現在フレーム tにおいて検出されたそのブ ロックの現在ベクトル CVが初期候補ベクトルとして、優先順位「2」番目に用いられる ことを表している。着目ブロック Btの右上のブロックの「C/3」は、現在フレーム tにお いて検出されたそのブロックの現在ベクトル CV力 優先順位「3」番目に初期候補べ タトルとして用いられることを表して 、る。着目ブロック Btの右下のブロックの「P/4」 は、過去フレーム t—lにおいて検出されたそのブロックの過去ベクトル PV力 優先 順位「4」番目に初期候補ベクトルとして用いられることを表している。
[0171] 周辺領域 7 X 7の左上隅の右下のブロックの「CZ6」は、現在フレーム tにお!/、て検 出されたそのブロックの現在ベクトル CV力 優先順位「6」番目に初期候補ベクトルと して用いられることを表して 、る。周辺領域 7 X 7の右上隅の左下のブロックの「CZ5 」は、現在フレーム tにおいて検出されたそのブロックの現在ベクトル CV力 優先順 位「5」番目に初期候補ベクトルとして用いられることを表している。周辺領域 7 X 7の 左下隅の右上のブロックの「P/7」は、過去フレーム t 1において検出されたそのブ ロックの過去ベクトル PV力 優先順位「7」番目に初期候補ベクトルとして用いられる ことを表している。周辺領域 7 X 7の右下隅の左上のブロックの「PZ8」は、過去フレ ーム t— 1において検出されたそのブロックの過去ベクトル PV力 優先順位「8」番目 に初期候補ベクトルとして用いられることを表して 、る。
[0172] 以上のように、図 23の例において、初期候補ベクトルは、着目ブロック Btを含む、 着目ブロック Btに隣接するブロックのうち、着目ブロック Bt、着目ブロック Btの左隣、 右上、および右下のブロックとされ、着目ブロック Btに隣接していないブロックのうち、 周辺領域 7 X 7の四隅から、それぞれ内側に 1つ入った位置のブロック力 選択され る。
[0173] すなわち、図 23の例の場合、着目ブロック Btに隣接するブロック (空間的にも時間 的にも近いブロック)のほうが少し離れたブロックよりも優先順位が高ぐ現在フレーム tで検出された現在ベクトルのほうが、過去フレーム t 1で検出された過去ベクトルよ りも優先順位が高く設定されている。なお、これらの初期ベクトルの候補の位置、種類 、および優先度は、できるだけ少ない候補数で、確かな初期候補ベクトルを得ること ができるように、着目ブロック Btの近傍だけでなぐ少し離れた位置のブロックも含め 、また、偏りのないようになど、空間的な相関や時間的な相関などに基づいて設定さ れたものである。したがって、このように、予め設定された所定のブロックの動きべタト ルを初期候補ベクトルとして用いることにより、初期候補ベクトル数が多くなつてしまい 、処理の演算量が膨大になってしまうことが抑制される。
[0174] なお、候補ブロックの種類と候補ブロックの位置は、図 23の例に限定されるもので はなぐ他の種類のベクトルや、ブロックの位置を用いてもよい。また、周辺のブロック に、最適なベクトルが存在しない場合を考慮して、そのような場合に劣化を抑制する 、 0ベクトルを用いてもよい。また、候ネ ΐブロックの数も 8個より多くても少なくてもよい。
[0175] 次に、図 24のフローチャートを参照して、初期ベクトル選択処理の詳細について説 明する。
[0176] 候補ベクトル位置演算部 251は、ステップ S251において、選択された着目ブロック の周辺領域から、予め設定されている着目ブロックの初期候補ベクトルを取得する候 補ブロックの位置、初期候補ベクトルの種類および優先順位を求め、ステップ S252 において、求められた優先順位の順に、候補ブロックの初期候補ベクトルの種類が、 過去ベクトルまたは現在ベクトルであるか否かを判断する。ステップ S252において、 候補ベクトル位置演算部 251は、候補ブロックの初期候補ベクトルの種類力 過去べ タトルまたは現在ベクトルであると判断した場合、ステップ S253に進み、候補ブロック の位置情報および初期候補ベクトルの種類情報を、検出ベクトル取得部 252に供給 し、検出ベクトル取得部 252に、候補ブロックの位置情報および初期候補ベクトルの 種類情報に応じた動きベクトル (過去ベクトル PVまたは現在ベクトル CV)を、検出べ タトルメモリ 53から取得させ、取得させた動きベクトルを、オフセット位置演算部 254 に出力させ、ステップ S257〖こ進む。
[0177] ステップ S252において、候補ベクトル位置演算部 251は、候補ブロックの初期候 補ベクトルの種類が、過去ベクトルまたは現在ベクトルでないと判断した場合、ステツ プ S254に進み、候補ベクトル位置演算部 251は、候補ブロックの初期候補ベクトル の種類が、シフト初期ベクトルであるか否かを判断する。ステップ S254において、候 補ベクトル位置演算部 251は、候補ブロックの初期候補ベクトルの種類力 シフト初 期ベクトルであると判断した場合、ステップ S255に進み、候補ブロックの位置情報お よび初期候補ベクトルの種類情報を、シフト初期ベクトル取得部 253に供給し、シフト 初期ベクトル取得部 253に、候補ブロックの位置情報に対応したシフト初期ベクトル を、シフト初期ベクトルメモリ 107から取得させ、取得させたシフト初期ベクトルを、ォ フセット位置演算部 254に出力させ、ステップ S257に進む。
[0178] ステップ S254において、候補ベクトル位置演算部 251は、候補ブロックの初期候 補ベクトルの種類が、シフト初期ベクトルではないと判断した場合 (すなわち、候補ブ ロックの初期候補ベクトルの種類力 0ベクトルであると判断した場合)、ステップ S25 6に進み、初期候補ベクトルに 0ベクトルを設定し、 0ベクトルと共に、候補ブロックの 位置情報を、オフセット位置演算部 254に供給し、ステップ S257に進む。なお、ステ ップ S253および S255においても、候補ベクトル位置演算部 251は、候補ブロックの 位置情報を、オフセット位置演算部 254に供給している。
[0179] オフセット位置演算部 254は、ステップ S257において、検出ベクトル取得部 252ま たはシフト初期ベクトル取得部 253から初期候補ベクトルを入力すると、候補ベクトル 位置演算部 251により供給された候補ブロックの位置情報に基づ 、て、各初期候補 ベクトルに対して、フレーム tの着目ブロックを、フレーム t+ 1にオフセットさせたオフ セット先のブロック位置を演算する。そして、オフセット位置演算部 254は、初期候補 ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を 、評価値演算部 255に出力し、ステップ S258に進む。
[0180] 評価値演算部 255は、オフセット位置演算部 254より初期候補ベクトルとともに、候 補ブロックの位置情報、およびオフセット先ブロック位置の情報を入力すると、ステツ プ S258において、フレーム tとフレーム t+ 1を用いて、初期候補ベクトルの評価値 D FDを求め、初期候補ベクトルとともに、求められた評価値 DFDを、評価値比較部 25 6【こ出力し、 S259〖こ itむ。
[0181] 評価値比較部 256は、ステップ S259において、評価値演算部 255により求められ た評価値 DFDが、最適候補格納用レジスタ 257に格納されて 、る最適候補ベクトル の評価値 DFDより小さいか否かを判断し、評価値演算部 255により求められた評価 値 DFDが、最適候補格納用レジスタ 257に格納されて 、る最適候補ベクトルの評価 値 DFDより小さい、すなわち、初期候補ベクトルが最適候補ベクトルよりも信頼度が 高いと判断された場合、ステップ S260において、最適候補格納用レジスタ 257の最 適候補ベクトルおよびその評価値 DFDを、信頼度が高!、とされた初期候補ベクトル およびその評価値 DFDで書き換え、ステップ S261に進む。
[0182] また、ステップ S259において、評価値比較部 256は、評価値演算部 255により求 められた評価値 DFD力 最適候補格納用レジスタ 257に格納されて 、る最適候補 ベクトルの評価値 DFDより小さくな!/、と判断した場合、ステップ S260の処理をスキッ プし、ステップ S 261に進む。
[0183] ステップ S261において、候補ベクトル位置演算部 251は、すべての初期候補べク トル(図 23の例の場合、 8ベクトル)の処理が終了した力否かを判断し、すべての初期 候補ベクトルの処理が終了していないと判断した場合、ステップ S252に戻り、それ以 降の処理を繰り返す。
[0184] ステップ S261において、すべての初期候補ベクトルの処理が終了したと判断され た場合、処理は、ステップ S262に進み、評価値比較部 256は、最適候補格納用レ ジスタ 257を制御し、すべての初期候補ベクトルの中から、評価値 DFDに基づぐ信 頼度が最も高 、とされた最適候補べ外ルを、初期ベクトル VOとして反復勾配法演算 部 103に出力させ、初期ベクトル選択処理を終了する。
[0185] 以上のように、着目ブロックにおいて、複数の初期候補ベクトルの評価値 DFDを求 め、評価値 DFDが最も小さい、すなわち、信頼度が最も高いとされる初期候補べタト ルを、初期ベクトルとして選択するようにしたので、後段の動きベクトル検出に最適な 初期ベクトルを与えることができ、その結果、後段の動きベクトル検出の精度を向上さ せることができる。また、予め定められた所定のブロックの動きベクトルを、初期候補 ベクトルとして用いるようにしたので、初期候補ベクトル数が多くなつてしまい、処理の 演算量が膨大になってしまうことが抑制される。
[0186] さらに、連続するフレーム間において動物体の動き量にはある程度の連続性があり 、動き量の変化が小さいことに基づいて、前フレーム力も着目ブロックを通過する動き ベクトルであるシフト初期ベクトルを、初期ベクトルの候補とするようにしたので、従来 のように、周辺ブロックにお 、て過去に求められて 、る動きベクトルのみを初期べタト ルの候補とする場合よりも、精度の高い動き検出を行うことができる。これは、特に、 動いている物体の境界において、効果的である。
[0187] 次に、反復勾配法演算部 103の構成の詳細について説明する。
[0188] 図 25は、反復勾配法演算部 103の構成を示すブロック図である。図 25に構成を示 す反復勾配法演算部 103は、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画 像のフレーム t+ 1を用いて、最適な動きベクトルを検出する処理を行う。この動きべク トルを検出する処理は、複数の画素からなる所定のブロック毎に実行される処理であ り、反復勾配法演算部 103は、各ブロックにおいて、ブロック単位毎、または、画素単 位毎に、勾配法を用いた演算を繰り返し実行することにより、評価値 DFDに基づぐ 信頼度が高い、最適な動きベクトルを出力する。
[0189] 反復勾配法演算部 103には、プリフィルタ 102— 1および 102— 2を介して、時刻 t の画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1が入力され、また、初期べタト ル選択部 102からの初期ベクトル VOが入力される。
[0190] モード選択部 401は、有効画素判定部 403からの制御のもと、所定のブロック毎に 、勾配法演算の処理モードを選択し、初期ベクトル選択部 102からの初期ベクトル V 0をセレクタ 402およびベクトル評価部 104に出力する。勾配法演算の処理モードは 、動きベクトルの検出対象がブロックであるブロック単位処理モードと、動きベクトルの 検出対象が画素である画素単位処理モードにより構成され、初期値としてブロック単 位処理モードが選択される。セレクタ 402は、ベクトル評価部 104力ゝらの制御のもと、 モード選択部 401からの初期ベクトル V0、または勾配法演算部 404から出力された 動きベクトル Vnのどちらかを、勾配法演算の初期値として用いる動きベクトル (以下、 オフセットベクトルと称する)として、有効画素判定部 403および勾配法演算部 404に 出力する。
[0191] 有効画素判定部 403は、セレクタ 402により選択されたオフセットベクトルを入力す ると、プリフィルタ 102—1および 102— 2を介して入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1を用いて、オフセットベクトルをオフセットして計 算した位置を開始点として、各単位処理モードの演算ブロックに、勾配法の演算に有 効な画素の数がしき 、値より多 、か否かを判断し、その結果に応じて処理方法を切り 換える。すなわち、有効画素判定部 403は、勾配法の演算に有効な画素の数がしき い値以下であると判断した場合、モード選択部 401を制御し、その所定のブロックに 対しての処理モードを、画素単位処理モードに変更させたり、演算を中止させる。有 効画素判定部 403は、各単位処理モードの演算ブロックに、勾配法の演算に有効な 画素の数がしきい値より多いと判断した場合、勾配法演算部 404を制御し、各処理 単位での勾配法演算処理を実行させる。
[0192] 勾配法演算部 404は、セレクタ 402から入力されたオフセットベクトルを入力すると 、プリフィルタ 102— 1および 102— 2を介して入力される時刻 tの画像のフレーム tと、 時刻 t+ 1の画像のフレーム t+ 1を用いて、セレクタ 402からのオフセットベクトルをォ フセットして計算した位置を開始点として、各単位処理モードの勾配法演算を実行し 、算出された動きベクトル Vnを、遅延部 405およびベクトル評価部 104に出力する。
[0193] 遅延部 405は、勾配法演算部 404から出力された動きベクトル Vnを、有効画素判 定部 403および勾配法演算部 404の次の処理のサイクルまで保持しており、セレクタ 402の制御に応じて、保持する動きベクトル Vnを有効画素判定部 403に出力する。
[0194] 図 26は、有効画素判定部 403の詳細な構成を示すブロック図である。図 26の例に おいて、有効画素判定部 403は、時間画素差分算出部 411、画素差分値判定部 41 2、有効画素カウンタ 413、および勾配法継続判定部 414により構成される。
[0195] 時間画素差分算出部 411は、セレクタ 402により選択されたオフセットベクトルを入 力すると、ブロック単位の演算ブロックにおいて、画素を選択し、オフセットベクトル、 並びに、プリフィルタ 102—1および 102— 2を介して入力される時刻 tの画像のフレ 一ム 、および時刻 t+ 1の画像のフレーム t+ 1を用いて、選択された画素の時間方 向の画素差分 Atを算出し、算出された時間方向の画素差分 Atを、画素差分値判 定部 412に出力する。
[0196] 画素差分値判定部 412は、時間画素差分算出部 411により算出された時間方向 の画素差分 Atが、所定のしきい値 (以下、画素差分値と称する)よりも小さいか否か を判断し、時間方向の画素差分 Atが、所定の画素差分値よりも小さいと判断した場 合には、有効画素数カウンタ 413の有効画素の数を 1つカウントする。有効画素数力 ゥンタ 413は、演算ブロック毎に画素差分値判定部 412により有効であると判断され た画素分の値をカウントする。また、有効画素数カウンタ 413は、演算ブロック毎に値 力 Sリセットされる。
[0197] 勾配法継続判定部 414は、各単位処理モードの演算ブロックに、勾配法の演算に 有効な画素の数がしきい値より多いか否かを判断し、各単位処理モードの演算ブロッ クに、勾配法の演算に有効な画素の数がしきい値より多いと判断した場合、勾配法 演算部 404に、各単位処理モードの勾配法演算を実行させるフラグ (flg= 1)を出力 する。勾配法継続判定部 414は、各単位処理モードの演算ブロックに、勾配法の演 算に有効な画素の数がしきい値より少ないと判断した場合、モード選択部 401を制 御し、他の単位処理モードを選択させたり、勾配法演算部 404に勾配法演算を打ち 切るフラグ (flg=0)を出力する。
[0198] 図 27は、勾配法演算部 404の詳細な構成を示すブロック図である。図 27の例にお いて、勾配法演算部 404は、時間画素差分算出部 421、画素差分値判定部 422、 水平垂直画素差分算出部 423、勾配積算部 424、およびベクトル算出部 425により 構成される。
[0199] 時間画素差分算出部 421は、有効画素判定部 403から入力されるフラグに基づい て、勾配法演算部 404の各部を制御する。すなわち、時間画素差分算出部 421は、 フラグが 1を示す (flg= l)場合には、勾配法演算部 404の各部に、勾配法演算の処 理を実行させる。具体的には、時間画素差分算出部 421は、有効画素判定部 403か らフラグを入力すると、プリフィルタ 102— 1および 102— 2を介して入力される時刻 t の画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1を用いて、セレクタ 402からの オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの 演算ブロック内の画素を選択し、選択された画素の時間方向の画素差分 Atを算出 し、算出された時間方向の画素差分 Atおよびオフセットベクトルを、画素差分値判 定部 422に出力する。また、時間画素差分算出部 421は、演算ブロック内の画素の 処理が終了した場合に、オフセットベクトルを、ベクトル算出部 425に出力し、ベタト ル算出部 425を制御し、検出対象ブロックの動きベクトルを算出させる。
[0200] 一方、フラグが 0を示す (flg=0)場合には、時間画素差分算出部 421は、演算プロ ック内の画素の時間方向の画素差分 Atを算出しないので、勾配法演算部 404の各 部では、勾配法演算の処理が実行されず、処理は打ち切られる。なお、このとき、時 間画素差分算出部 421は、ベクトル算出部 425を制御し、動きベクトル Vを 0ベクトル に設定させる。
[0201] 画素差分値判定部 422は、時間画素差分算出部 421により算出された時間方向 の画素差分 Atが、所定のしきい値 (以下、画素差分値と称する)よりも小さいか否か を判断し、時間方向の画素差分 Atが、所定の画素差分値よりも小さいと判断した場 合、その画素を、勾配法の演算対象とし、時間方向の画素差分 Atおよびオフセット ベクトルを水平垂直画素差分算出部 423に出力する。すなわち、所定の画素差分値 よりも小さいと判断された画素差分 Atの画素は、水平垂直画素差分算出部 423およ び勾配積算部 424において、演算対象とされる。また、画素差分値判定部 422は、 時間方向の画素差分 Atが、所定の画素差分値以上であると判断した場合、水平垂 直画素差分算出部 423および勾配積算部 424に、その画素の処理を禁止させる。
[0202] 水平垂直画素差分算出部 423は、画素差分値判定部 422から入力されたオフセッ トベクトルを入力すると、プリフィルタ 102— 1および 102— 2を介して入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1を用いて、オフセットベクトル をオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内にお いて、時間方向の画素差分 Atが、所定の画素差分値よりも小さいと判断された画素 の水平方向の画素差分 Δχおよび垂直方向の画素差分 Ayを算出する。また、水平 垂直画素差分算出部 423は、時間方向の画素差分 At、水平方向の画素差分 Δχ、 垂直方向の画素差分 Ayを勾配積算部 424に出力する。勾配積算部 424は、時間 方向の画素差分 Atが、所定の画素差分値よりも小さいと判断された画素の勾配を 積算する。すなわち、勾配積算部 424は、時間画素差分算出部 421により算出され た時間方向の画素差分 At、水平垂直画素差分算出部 423により算出された水平方 向の画素差分 Δχ、および、垂直方向の画素差分 Ayを積算し、積算された勾配の 値を、ベクトル算出部 425に出力する。
[0203] ベクトル算出部 425は、時間画素差分算出部 421からオフセットベクトルが入力さ れると、勾配積算部 424により積算された勾配の値、および上述した式(9)の最小自 乗和を用いて、動きベクトル vnを算出する。また、ベクトル算出部 425は、時間画素 差分算出部 421からのオフセットベクトルを、算出した動きベクトル vnに加算して、動 きベクトル Vnを求め、ベクトル評価部 104および遅延部 405に出力する。
[0204] 次に、動きベクトルの検出対象ブロックと演算ブロックについて説明する。画像内の オブジェクトの動きを考えた場合、同じオブジェクトであれば、大方同じ動きをしてい ることが多い。したがって、動きベクトルを検出する検出処理の単位は、通常、図 28 に示されるように、ブロック単位で行うことが多 、。
[0205] 図 28の例において、矢印 Xは、水平方向を示しており、矢印 Yは、垂直方向を示し ている。また、矢印 Tは、図中、右奥の時刻 tのフレーム tから、左手前の時刻 t+ 1の フレーム t+ 1への時間の経過方向を示している。
[0206] 図 28の例の場合、各フレームの検出対象ブロック Kとして、 8画素 X 8画素のブロッ ク(以下、 8 X 8ブロックと称する)が示されている。この検出対象ブロック Kとは、 8 X 8 ブロックに関して動きベクトルの検出を行ったときに、その 8 X 8ブロックに対して同じ 動きが求まるブロックのことを!、う。
[0207] 一方、勾配法による動きベクトルの検出(すなわち、演算)は、画素毎に動きべタト ルを検出できる特徴を有している。し力しながら、画素単位での動きベクトルの演算を 行うと、統計的な解法である最小自乗法を用いる勾配法では、検出精度が著しく低 下する欠点がある。したがって、通常、ブロック毎だけでなぐ画素毎の処理単位であ つても、動きベクトルを演算する場合には、勾配法の演算に用いられる画素は、プロ ック (演算ブロック)単位で構成されることが多 、。
[0208] 以上のように、勾配法の演算に用いられる画素は、 8 X 8ブロックの演算ブロックの 画素とされる。すなわち、図 28の例においては、演算ブロック(8 X 8)を用いて、勾配 法演算を行った結果得られる動きベクトルは、検出対象ブロック K (8 X 8)のすベての 画素に対応する動きベクトルということになる。
[0209] し力しながら、上述したように勾配法の演算に用いられる画素を、演算ブロック単位 に扱う際に発生する問題として、図 29に示されるように、検出対象ブロックを構成する 画素の中に、異なる動きを持つオブジェクトの画素が混在する場合が挙げられる。
[0210] 図 29の例においては、 8 X 8画素(64画素)により構成される検出対象ブロック(= 演算ブロック) Kにおいて、左上の画素から 28画素(太線丸)力 矢印 Aに示される斜 め左上への動きを有しており、 8 X 8の検出対象ブロック Kにおいて、右下の画素から 36画素(細線丸)力 矢印 Bに示される右横への動きを有して 、る。
[0211] したがって、検出対象ブロック Kにおいて、上述したような大方同じ動きであるという 仮定が崩れてしまい、動きの異なる画素を含んだままの演算ブロックを用いて、勾配 法の演算を行うと、著しぐ動きベクトルの検出精度が低下してしまう。すなわち、これ は、異なる動きを持つオブジェクト同士の境界に発生する、オブジェクトの消滅領域( カバードバックグラウンド領域)および発生領域 (アンカバードバックグラウンド領域)に 関する検出精度低下問題である。消滅領域は、前景領域に対して、前景のオブジェ タトの進行方向の全端部に対応する位置の混合領域であり、時間の経過に対応して 背景成分が前景に覆い隠される領域をいう。これに対して、発生領域は、前景領域 に対して、前景のオブジェクトの進行方向の後端部に対応する位置の混合領域であ り、時間の経過に対応して背景成分が現れる領域を ヽぅ。
[0212] 図 30は、同じオブジェクトである場合の検出対象ブロックの輝度の状態を説明する 図である。図中左側においては、矢印 Xは、水平方向を示しており、矢印 Yは、垂直 方向を示している。また、矢印 Tは、図中、右奥の時刻 tのフレーム tから、左手前の時 刻 t+1のフレーム t+1への時間の経過方向を示している。また、図中右側において は、矢印 Xは、水平方向を示しており、矢印 Lは、輝度値を示している。すなわち、図 中右側の輝度値 Lpl, Lp2, Lp3, ···, Lpi(3<i<7), ···, Lp7は、図中左側のフレ ーム tの 8X8の検出対象ブロックにおいて、例えば、左上の画素から下に 5番目の行 の画素 pi, p2, p3, ···, pi(3<i<7), ···, p7,…の輝度値を表しており、同様に、 輝度値 Lql, Lq2, Lq3, ···, Lqi(3<i<7), ···, Lq7は、図中左側のフレーム t+1 の 8X8の検出対象ブロック【こお!ヽて、画素 pi, p2, p3, ···, pi(3<i<7), ···, p7, …とそれぞれ同位相に位置する画素である、左上の画素から下に 5番目の行の画素 ql, q2, q3, ···, qi(3<i<7), ···, q7,…の輝度値を表している。また、輝度値 Lp 1乃至 Lp7および Lql乃至 Lq7間の矢印は、フレーム t上の画素とフレーム t+ 1上の 画素の時間方向差分 Δ tを示している。
[0213] したがって、図 30の例においては、画素 piと画素 qlの時間方向差分 Atは、輝度 値 Lplと輝度値 Lqlの差で表され、画素 p2と画素 q2の時間方向差分 Atは、輝度値 Lp2と輝度値 Lq2の差で表され、画素 P3と画素 q3の時間方向差分 A tは、輝度値 L p3と輝度値 Lq3の差で表され、画素 piと画素 qiの時間方向差分 A tは、輝度値 Lpiと 輝度値 Lqiの差で表され、画素 p7と画素 q7の時間方向差分 A tは、輝度値 Lp7と輝 度値 Lq7の差で表され、各輝度値の差は、輝度値 Lpl乃至 Lp7を結んだ曲線と、輝 度値 Lql乃至 Lq7を結んだ曲線の形状がほぼ同形状で示されるように、輝度変化が 小さい。
[0214] 以上のように、検出対象ブロックの中の画素が、同じオブジェクトである(すなわち、 同一動きである)場合には、時間方向の対応画素について、輝度変化は、あまり大き くない。
[0215] 図 31は、異なる動きを持つオブジェクトの画素が混在する場合の検出対象ブロック の輝度の状態を説明する図である。なお、図 30において、図 31における場合と対応 する部分には対応する符号を付してあり、その説明は繰り返しになるので省略するが 、図 31の例においては、フレーム t上の画素 p7が、他の画素と異なる動きを有してい る。
[0216] 例えば、フレーム t上の画素 p7が、他の画素と同じ動きを有している場合には、フレ ーム t+ 1上において、画素 p7と同位相に位置する画素 q7の輝度値は、輝度値 Lq7 1で表されるはずであるが、図 31の例においては、画素 p7は、他の画素と異なる 動きを有しているため、画素 q7の輝度値は、輝度値 Lq7— 2に示されるように、輝度 値 Lq7—1よりも図中下側に大きく変化している。したがって、画素 p7と画素 q7の時 間方向差分 A t (輝度値 Lp7と、輝度値 Lq7— 2の差)は、大きくなつてしまう。
[0217] このように、例えば、検出対象ブロック内に、上述したオブジェクトの消滅、発生、ま たは変形などにより、異なる動きを有するオブジェクトの画素が混在する場合には、 対応する画素の輝度値が大きく変化することが多ぐこのことが、動きの乱れにつなが つてしまう恐れがある。そこで、有効画素判定部 403において、輝度変化が小さい画 素は、動きベクトル検出に用いても有効であり、逆に、輝度変化が大きい画素は、動 きベクトル検出に用いると、有効ではないと判断するようにする。すなわち、輝度変化 の大小という要素に着目し、輝度変化の大小でその画素が有効か無効かを判断する ことにより、輝度変化が小さい画素は、動きベクトル検出に用い、逆に、輝度変化が 大きい画素は、動きベクトル検出に用いないようにすることができる。これにより、動き ベクトル検出の精度を高くすることができる。
[0218] 具体的に説明すると、有効画素判定部 403は、演算ブロック内の各画素について、 時間方向の画素差分 A tに所定の画素差分値 (しきい値)を設定し、時間方向の画 素差分 A tが、設定された所定の画素差分値よりも小さい場合には、その画素は、動 きベクトル検出に寄与する(有効である)と判定し、動きベクトルを検出する際の勾配 法の演算に用いるが、時間方向の画素差分 A tが、設定された所定の画素差分値以 上である場合には、その画素は、動きの乱れを発生させる恐れがあるとして、動きべ タトルを検出する際の勾配法の演算力 除外する。これにより、異なる動きが混入す ることが抑制され、より安定した勾配法演算が実行され、その結果、確からしい動きべ タトルが検出される。
[0219] ただし、上述したように、勾配法演算は、統計的な解法である最小自乗法に基づい た演算であるため、勾配法演算に用いる画素と用いない画素を切り分けることにより、 勾配法演算に用いられる画素が極端に少なくなり、これらの極端に少ない画素数で 勾配法演算が行われてしまうと、逆に、演算の信頼性が低下してしまい、動きベクトル 検出の精度が低下してしまう恐れがある。
[0220] そこで、有効画素判定部 403は、勾配法演算に用いられる画素数が少ない場合に は、この検出対象ブロック(8 X 8)の処理単位での演算は不安定であるとし、図 32に 示されるように、 8 X 8ブロック内の画素(64個)毎の演算単位に切り替えて処理を行
[0221] 図 32は、画素単位処理における演算ブロックの例を示している。図 32の例におい ては、フレーム上の検出対象ブロック(ブロック単位の演算ブロック) K (8 X 8)が画素 単位処理に切り替えられた場合の、検出対象ブロック Kの左上の画素 pの演算ブロッ ク E (図 32の例の場合、 9 X 9)を示している。
[0222] すなわち、画素 pの動きベクトルを求める際には、画素 pを中心とした演算ブロック E
(図 32の例の場合、 9 X 9)が用いられる。また、例えば、画素 pの右隣の画素の動き ベクトルを求める場合には、画素 pの右隣の画素を中心とした演算ブロック 9 X 9 (図 示せず)が用いられる。 [0223] したがって、例えば、検出対象ブロック Kにおいて、大半が画素 ρと異なる動きをし ていたとしても、検出対象ブロック Κ (8 X 8)において、勾配法演算に用いられる画素 数が計数され、その数が少ない場合には、画素単位処理に切り替えられるので、図 3 2に示されるように、画素単位処理での演算ブロック Εを用いて勾配法の演算を実行 することができる。
[0224] このように、勾配法演算に用いる画素と用いない画素を切り分け、勾配法演算に用 いられる画素が極端に少なくなつた場合に、検出対象ブロック Κ (8 X 8)ブロック内す ベての画素について動きベクトルの検出をやめるのではなぐ画素単位処理に切り 替えて、画素毎に、演算ブロック Ε (9 X 9)の画素を変えて勾配法演算するようにする ことで、演算に用いられない画素の混在を少しでも防ぎ、画素によっては、より高精度 の動きベクトルの検出を行うことができる。
[0225] 図 33は、図 29の検出対象ブロック(演算ブロック) Κの画素に、画素単位処理を適 用する例を示す図である。図 33の例においては、矢印 Αに示される斜め左上への動 きを有する画素(太線丸)と、矢印 Bに示される右横への動きの 2つの異なる動きを有 する画素(細線丸)からなる図 29の検出対象ブロック K (8 X 8)において、画素単位 での処理が行われる。この場合において、検出対象ブロック Kの左上の検出対象画 素 Pの動きベクトルを検出するとき、検出対象画素 pを中心とした演算ブロック E (図 33 の例の場合、 9 X 9)が用いられる。
[0226] 演算ブロック E内の画素は、矢印 Bに示される右横への動きを有する右下の 3画素( 細線丸)以外を除いて、矢印 Aに示される斜め左上への動きを有している。ここで、上 述したブロック単位処理の場合と同様に、演算ブロック E内の各画素について、時間 方向画素差分 Δ tに所定のしき 、値 (画素差分値)を設定し、時間方向画素差分 Δ t 力 設定された所定の画素差分値よりも小さい場合には、その画素は、動きベクトル 検出に寄与する(有効である)と判定し、動きベクトルを検出する際の勾配法演算に 用いるが、時間方向画素差分 A tが、設定された所定の画素差分値よりも大きい場合 には、その画素は、動きの乱れを発生させる恐れがあるとして、動きベクトルを検出す る際の勾配法演算に用 、な 、。
[0227] すなわち、図 33の例においては、演算ブロック Eにおいて、右下の 3画素(細線丸) を除いた画素 (太線丸)が、検出対象画素 Pの勾配法演算に有効な画素であるとされ
、その有効な画素が用いられて勾配法演算が実行されるため、図 29の検出対象プロ ック K (8 X 8)を、演算ブロックとして用いて実行されるブロック単位処理の勾配法演 算よりも、より安定した勾配法演算が実行され、その結果、確力 しい動きベクトルが 検出される。
[0228] なお、この画素毎の演算ブロックにおいても、勾配法演算に用いる画素と用いない 画素を切り分けることにより、勾配法演算に用いられる画素が極端に少なくなつてしま う場合には、動きベクトルを検出することが危険であるとし、演算は、打ち切られる。す なわち、動きベクトル検出が不安定であるにもかかわらす、何力しらの大きさを有する 動きが検出されたことにしてしまうと、実際の画像内のオブジェクトの動きにそぐわな V、(確からしくな 、)動きベクトルになってしまう恐れがある力 である。このような確か らしくない動きベクトルを用いた上で、以降の処理 (例えば、ベクトル割付処理または ベクトル補償処理)が実行され、生成された画像は、動きが不連続になってしまったり 、ブロックノイズが発生してしまうなどの大きな視覚劣化を及ぼしてしまう場合が多 、。
[0229] したがって、画素単位の勾配法演算に用いられる画素が極端に少なくなつてしまう 場合、検出される動きベクトルは、例えば、 0ベクトル (すなわち、静止状態)が用いら れる。これにより、以降の処理において、この動きベクトル力 悪影響を及ぼすことが 抑制され、生成される画像の大きな視覚劣化を抑制することができる。
[0230] 次に、図 34のフローチャートを参照して、反復勾配法演算処理の詳細を説明する。
前段よりモード選択部 401に初期ベクトル VOが入力される。
[0231] モード選択部 401は、ステップ S401において、ブロック単位処理モードを選択し、 フレーム t上のブロックを、検出対象ブロック(演算ブロック)とし、検出対象ブロックの 初期ベクトル VOをセレクタ 402およびベクトル評価部 104に出力し、ステップ S402 に進む。これにより、反復勾配法演算部 103の各部においては、ブロック単位での処 理が実行される。ステップ S402において、セレクタ 402は、ベクトル評価部 104から の制御に応じて、モード選択部 401から入力された初期ベクトル VOをオフセットべク トルとして選択し、選択したオフセットベクトルを、時間画素差分算出部 411および時 間画素差分算出部 421に出力し、ステップ S403に進む。 [0232] ステップ S403において、時間画素差分算出部 411および画素差分値判定部 412 は、選択されたオフセットベクトルを用いて(いまの場合、初期ベクトル VOをオフセット して)、ブロック単位の有効画素判定処理を実行し、ステップ S404に進む。この有効 画素判定処理の詳細は、図 35を参照して後述するが、この有効画素判定処理により 、有効画素数カウンタ 413には、ブロック単位の演算ブロック内において、画素差分 値が所定の画素差分値よりも小さいと判定された (すなわち、後段の勾配法演算で有 効な画素であると判定された)画素の数がカウントされて 、る。
[0233] 勾配法 «続判定部 414は、ステップ S404において、有効画素数カウンタ 413に力 ゥントされて 、る画素数 (有効画素数)が所定のしき 、値 αより多!、か否かを判断し、 有効画素数が所定のしきい値 αより多いと判断した場合、勾配法演算部 404に、ブ ロック単位で、勾配法演算を実行させるフラグ (flg= l)を出力し、ステップ S405に進 む。
[0234] ステップ S405において、勾配法演算部 404は、勾配法継続判定部 414からのフラ グに基づいて、セレクタ 402からのオフセットベクトル(いまの場合、初期ベクトル VO) を用いて、ブロック単位の勾配法演算処理を実行し、ステップ S406に進む。この勾 配法演算処理の詳細は、図 36を参照して後述するが、この勾配法演算処理により、 動きベクトル Vnが求められ、ベクトル評価部 104および遅延部 405に出力される。な お、動きベクトル Vnは、 1回目の勾配法演算により算出された動きベクトル vnに、ォ フセットベクトル Vn— 1が加算されたもの(Vn=Vn— 1 +vn)である。例えば、動きべ タトル VIは、 1回目の勾配法演算により算出された動きベクトル vlに、オフセットべク トル(初期ベクトル VO)が加算されたもの(VI =VO+vl)である。
[0235] ステップ S406において、ベクトル評価部 104は、勾配法演算処理により求められた 動きベクトル Vnの評価値 DFD (n)と、オフセットベクトルとして用いられた動きべタト ル Vn— 1の評価値 DFD (n- 1)を求め、評価値 DFD (n— 1)よりも評価値 DFD (n) 力 S小さいか否力、すなわち、オフセットベクトルとして用いられた動きベクトル Vn—lよ りも勾配法演算処理により求められた動きベクトル Vnの信頼度が高いか否かを判断 する。具体的には、例えば、 1回目の処理においては、求められた動きベクトル VIの 評価値 DFD (l)と、オフセットベクトルとして用いられた初期ベクトル VOの評価値 DF D (0)が比較され、 2回目の処理においては、求められた動きベクトル V2の評価値 D FD (2)と、オフセットベクトルとして用いられた動きベクトル VIの評価値 DFD (l)が 比較される。
[0236] ベクトル評価部 104は、ステップ S406において、評価値 DFD (n— 1)よりも評価値 DFD (n)が小さいと判断した場合、すなわち、動きベクトル Vn—lよりも動きベクトル Vnの信頼度が高いと判断された場合、ステップ S407において、算出された動きべク トル Vn (l回目の場合、動きベクトル VI、 2回目の場合、動きベクトル V2)を、検出対 象ブロックの動きベクトル Vに設定して、ステップ S408に進む。ベクトル評価部 104 は、ステップ S408において、反復回数 nを 1つカウントし、ステップ S409に進み、反 復回数 nが設定された最大反復回数 (例えば、 2回)になった力否かを判断し、まだ、 反復回数 nが設定された最大反復回数ではな 、と判断した場合、セレクタ 402を制 御し、ステップ S402〖こ戻り、それ以降の処理を繰り返させる。
[0237] すなわち、ステップ S402において、セレクタ 402は、ベクトル算出部 425から出力さ れ、遅延部 405に保持された動きベクトル VIを、オフセットベクトルとして選択し、ス テツプ S403において、時間画素差分算出部 411および画素差分値判定部 412は、 動きベクトル VIをオフセットベクトルとして用いて、ブロック単位の有効画素判定処理 を実行し、それ以降の処理を繰り返す。したがって、ステップ S405において算出され る動きベクトル V2は、 2回目の勾配法演算により算出された動きベクトル v2に、オフ セットベクトルとして用いられた動きベクトル VIが加算されたもの(すなわち、 V2=V 1 +v2=V0+vl +v2)となる。
[0238] ベクトル評価部 104は、ステップ S406において、評価値 DFD (n— 1)よりも評価値 DFD (n)が小さくないと判断した場合、すなわち、動きベクトル Vn— 1の方力 動き ベクトル Vnよりも信頼度が高いと判断した場合、ステップ S410〖こ進み、勾配法演算 のオフセットとしたベクトル Vn— 1 (1回目の場合、初期ベクトル VO、 2回目の場合、 動きベクトル VI)を、検出対象ブロックの動きベクトル Vに設定して、ステップ S411に 進む。また、ベクトル評価部 104は、ステップ S409において、反復回数 nが設定され た最大反復回数になったと判断した場合、ステップ S411に進む。
[0239] ベクトル評価部 104は、ステップ S411において、動きベクトル Vが、動きベクトルを 検出する範囲として予め設定されたサーチエリア内である力否かを判断し、動きべク トル V力 サーチエリア内であると判断した場合、ステップ S415に進み、動きベクトル Vを、検出対象ブロックに対応させて、検出ベクトルメモリ 53に記憶し、反復勾配法処 理を終了する。
[0240] また、ベクトル評価部 104は、ステップ S411において、動きベクトル V力 サーチェ リア内ではないと判断した場合、ステップ S412に進み、動きベクトル Vを 0ベクトルに 設定し、ステップ S415に進み、動きベクトル V (0ベクトル)を、検出対象ブロックに対 応させて、検出ベクトルメモリ 53に記憶し、反復勾配法処理を終了する。
[0241] 一方、勾配法 «続判定部 414は、ステップ S404において、有効画素数カウンタ 41 3の有効画素数が所定のしきい値 a以下であると判断した場合、ステップ S413に進 み、モード選択部 401を制御し、画素単位処理モードを選択させ、ステップ S414に 進む。これにより、反復勾配法演算部 103の各部においては、画素単位での処理が 実行される。モード選択部 401は、ステップ S414において、画素単位の反復勾配法 演算処理を実行し、ステップ S415に進む。この画素単位処理モードの反復勾配法 演算処理の詳細は、図 37を参照して後述するが、画素単位処理モードの反復勾配 法演算処理により、検出対象ブロック内の全画素の動きベクトル Vが求められるので 、ベクトル評価部 104は、ステップ S415において、動きベクトル Vを、検出対象ブロッ クの各画素に対応させて、検出ベクトルメモリ 53に記憶し、反復勾配法処理を終了 する。
[0242] なお、上述したステップ S406においては、動きベクトルの信頼度の評価を、勾配法 処理により求められた動きベクトル Vnの評価値 DFD (n)と、オフセットベクトルとして 用いられた動きベクトル Vn— 1の評価値 DFD (n— 1)を比較することで判断したが、 評価値 DFDの比較判断と同時に、勾配法演算により求められた動きベクトル (オフセ ットベクトルが加算される前の動きベクトル) vnのノルムの値( I vn I )が所定の大きさ (演算ブロック 8 X 8の場合、例えば、 16)よりも小さいことも判断するようにしてもよい。
[0243] ここで、ノルムとは、あるベクトル空間におけるベクトルの大きさを表し、例えば、原 点(0, 0)を起点とした (X, y)へのベクトル Vのノルムは、次の式(11)で表される。
[0244] [数 3]
Figure imgf000058_0001
•••(ID
[0245] すなわち、勾配法演算においては、一般的に、微小動きに対して、精度の高い結 果が得られる力 勾配法演算により求められた動きベクトルのノルム値 I vn Iが所定 の大きさを超えてしまうと、その大きい動きベクトル vnに対して精度の高い結果が得ら れているとは限らない。したがって、評価値 DFDと並行して、勾配法演算により求め られた動きベクトルのノルム値 I vn Iが所定の大きさを超えたか否かを判断し、ノル ム値 I vn Iが所定の大きさを超えた動きベクトルを除外することにより、この勾配法 演算においては、微小動きに対しても、大きい動きに対しても、精度の高い結果を得 ることができ、さらに動きベクトル検出の精度を向上させることができる。
[0246] なお、この評価値 DFDの判断とノルム値による判断の場合には、ステップ S406に おいて、 I vn I ≤ 16である場合で、かつ、評価値 DFD (n—l) >評価値 DFD (n) である場合には、ステップ S407に進み、 V=Vnに設定され、ステップ S406におい て、 I vn I > 16である場合で、または、評価値 DFD (n—l)≤評価値 DFD (n)であ る場合には、ステップ S410に進み、 V=Vn— 1に設定される。
[0247] 次に、図 35のフローチャートを参照して、有効画素判定処理の詳細を説明する。な お、図 35は、図 34のステップ S403の有効画素判定処理の例を示している。
[0248] セレクタ 402から、オフセットベクトルが入力されると、時間画素差分算出部 411は、 ステップ S431において、画素差分値判定部 412を制御し、有効画素数カウンタ 413 をリセットさせ、ステップ S432に進み、ブロック単位の演算ブロックにおいて、画素を 選択し、ステップ S433に進む。なお、画素は、演算ブロックの左上の画素からラスタ スキャン順に選択される。
[0249] 時間画素差分算出部 411は、ステップ S433において、オフセットベクトル、並びに 、プリフィルタ 102—1および 102— 2を介して入力される時刻 tの画像のフレーム t、 および時刻 t+ 1の画像のフレーム t+ 1を用いて、選択された画素の時間方向の画 素差分 Δ tを算出し、算出された時間方向の画素差分 Δ tを画素差分値判定部 412 に出力し、ステップ S434に進む。
[0250] 画素差分値判定部 412は、ステップ S434において、時間画素差分算出部 411に より算出された時間方向の画素差分 A tが、所定の画素差分値よりも小さいか否かを 判断し、すなわち、後段の勾配法演算に有効な画素である力否かを判断し、時間方 向の画素差分 A tが、所定の画素差分値よりも小さいと判断した場合、ステップ S435 に進み、有効画素数カウンタ 413の有効画素の数を 1つカウントし、ステップ S436に 進む。また、画素差分値判定部 412は、ステップ S434において、時間方向の画素差 分 A tが、所定の画素差分値以上であると判断した場合、すなわち、後段の勾配法 演算に有効な画素ではないと判断し、ステップ S435の処理をスキップし、ステップ S 436に進む。
[0251] 時間画素差分算出部 411は、ステップ S436において、演算ブロック内のすべての 画素の処理が終了した力否かを判断し、演算ブロック内のすべての画素の処理が終 了していないと判断した場合、ステップ S432に戻り、次の画素を選択し、それ以降の 処理を繰り返す。一方、時間画素差分算出部 411は、ステップ S436において、演算 ブロック内のすべての画素の処理が終了したと判断した場合、有効画素判定処理を 終了し、図 34のステップ S404に戻る。
[0252] 以上の処理により、有効画素カウンタ 413には、演算ブロック内において、その画 素差分 A tが所定の画素差分値より小さぐ後段の勾配法演算において有効であると 判断された画素の数がカウントされている。したがって、勾配法継続判断部 414は、 図 34のステップ S404において、この有効画素カウンタ 413の画素の数を参照するこ とにより、ブロック単位の勾配法演算を行うか、画素単位の勾配法演算を行うかを判 断することができる。
[0253] 次に、図 36のフローチャートを参照して、ブロック単位の勾配法演算処理の詳細を 説明する。なお、図 36は、図 34のステップ S405のブロック単位の勾配法演算処理 の例を示している。したがって、図 36の例においては、時間画素差分算出部 421に は、勾配法継続判定部 414から、勾配法演算を実行させるフラグ (flg= l)が入力され る。
[0254] 勾配法継続判定部 414からフラグ (flg= 1)が入力されると、時間画素差分算出部 4 21は、ステップ S451において、ブロック単位の演算ブロックにおいて、画素を選択し 、ステップ S452に進む。なお、画素は、演算ブロックの左上の画素からラスタスキヤ ン順に選択される。
[0255] 時間画素差分算出部 421は、ステップ S452において、セレクタ 402からのオフセッ トベクトル、並びに、プリフィルタ 102—1および 102— 2を介して入力される時刻 tの 画像のフレーム t、および時刻 t+ 1の画像のフレーム t+ 1を用いて、選択された画素 の時間方向の画素差分 Δ tを算出し、算出された時間方向の画素差分 Δ tおよびォ フセットベクトルを、画素差分値判定部 422に出力し、ステップ S453に進む。
[0256] 画素差分値判定部 422は、ステップ S453において、時間画素差分算出部 421に より算出された時間方向の画素差分 Atが、所定の画素差分値よりも小さいか否かを 判断し、すなわち、後段の勾配法演算に有効な画素である力否かを判断し、時間方 向の画素差分 Atが、所定の画素差分値よりも小さいと判断した場合、ステップ S454 に進み、垂直水平画素差分算出部 423を制御し、有効であると判断した画素の水平 方向の画素差分 Δχを算出させる。なお、画素差分値判定部 422における所定の画 素差分値は、画素差分値判定部 412における所定の画素差分値と同じ値であっても よいし、異なる値であってもよい。また、このとき、画素差分値判定部 422は、時間画 素差分算出部 421により算出された時間方向の画素差分 Atおよびオフセットべタト ルを、垂直水平画素差分算出部 423に出力する。
[0257] 垂直水平画素差分算出部 423は、ステップ S454において、オフセットベクトル、並 びに、プリフィルタ 102—1および 102— 2を介して入力される時刻 tの画像のフレー ム 、および時刻 t+ 1の画像のフレーム t+ 1を用いて、有効であると判断された画素 の水平方向の画素差分 Δχを算出し、ステップ S455に進み、有効であると判断され た画素の垂直方向の画素差分 Ayを算出し、時間方向の画素差分 At、水平方向の 画素差分 Δχ、および垂直方向の画素差分 Ayを、勾配積算部 424に出力し、ステツ プ S456に進む。勾配積算部 424は、ステップ S456において、垂直水平画素差分 算出部 423からの時間方向の画素差分 At、水平方向の画素差分 Δχ、および垂直 方向の画素差分 Ayを積算し、積算した結果をベクトル算出部 425に出力し、ステツ プ S457に進む。
[0258] 画素差分値判定部 422は、ステップ S453において、時間方向の画素差分 Atが、 所定の画素差分値以上であると判断した場合、ステップ S454乃至 S456の処理をス キップし、ステップ S457に進む。すなわち、この画素の各画素差分 (勾配)は、後段 の勾配法演算に有効な画素ではな 、ので、演算に用いられな 、。
[0259] ステップ S457において、時間画素差分算出部 421は、演算ブロック内のすべての 画素の処理が終了した力否かを判断し、演算ブロック内のすべての画素の処理が終 了していないと判断した場合、ステップ S451に戻り、次の画素を選択し、それ以降の 処理を繰り返す。一方、時間画素差分算出部 421は、ステップ S457において、演算 ブロック内のすべての画素の処理が終了したと判断した場合、ベクトル算出部 425に オフセットベクトルを出力し、ステップ S458に進む。ベクトル算出部 425は、時間画 素差分算出部 421からオフセットベクトルが入力されると、勾配積算部 424からの勾 配の積算結果と、上述した式(9)の最小自乗和を用いて、動きベクトル vnを算出し、 ステップ S459に進み、時間画素差分算出部 421からのオフセットベクトルに、算出さ れた動きベクトル vnをカ卩算した、動きベクトル Vnを求めて、求められた動きベクトル V nをベクトル評価部 104に出力し、勾配法演算処理を終了し、図 34のステップ S406 に戻る。
[0260] 以上のように、時間方向の画素差分 A tが、設定された所定の画素差分値以上の 場合には、その画素は、動きの乱れを発生させる恐れがあるとして、動きベクトルを検 出する際の勾配法の演算力 除外するようにしたので、より安定した勾配法演算が実 行され、その結果、確からしい動きベクトルが検出され、これにより、動きベクトル検出 の精度が向上される。
[0261] 次に、図 37のフローチャートを参照して、画素単位の反復勾配法演算処理の詳細 を説明する。図 37は、図 34のステップ S414の画素単位の反復勾配法演算処理の 例を示している。なお、この処理は、検出対象ブロック内の各画素について実行され る。
[0262] モード選択部 401は、画素単位処理モードを設定すると、ステップ S471〖こおいて、 検出対象ブロックの画素を検出対象画素として選択し、その画素の演算ブロック (例 えば、 9 X 9)の初期ベクトル VOを、セレクタ 402およびベクトル評価部 104に出力し 、ステップ S472に進む。なお、画素は、検出対象ブロックの左上の画素からラスタス キャン順に選択される。ステップ S472において、セレクタ 402は、ベクトル評価部 10 4からの制御に応じて、モード選択部 401から入力された初期ベクトル VOをオフセッ トベクトルとして選択し、選択したオフセットベクトルを、時間画素差分算出部 411およ び時間画素差分算出部 421に出力し、ステップ S473に進む。
[0263] ステップ S473において、時間画素差分算出部 411および画素差分値判定部 412 は、選択されたオフセットベクトルを用いて(いまの場合、初期ベクトル VOをオフセット として)、画素単位の有効画素判定処理を実行し、ステップ S474に進む。この有効 画素判定処理の詳細は、図 35を参照して上述したブロック単位の有効画素判定処 理と、対象となる演算ブロック (ブロック範囲や、ブロックを構成する画素)が異なる以 外、基本的に同様の処理を行うため、その詳細な説明を省略する力 この有効画素 判定処理により、有効画素数カウンタ 413には、画素単位の演算ブロック内において 、画素差分値が所定の画素差分値よりも小さいと判定された (すなわち、後段の勾配 法演算で有効な画素であると判定された)画素の数がカウントされている。なお、画素 単位の有効画素判定を行う所定の画素差分値は、ブロック単位の場合と同じ値とし てもよいし、異なる値を設定するようにしてもよい。
[0264] 勾配法 «続判定部 414は、ステップ S474において、有効画素数カウンタ 413に力 ゥントされて 、る画素数 (有効画素数)が所定のしき 、値 |8より多 、か否かを判断し、 有効画素数が所定のしきい値 ι8より多いと判断した場合、勾配法演算部 404に、勾 配法演算を実行させるフラグ (flg= l)を出力し、ステップ S475に進む。なお、しきい 値 j8も、ブロック単位の場合のしき 、値 aと同じ値としてもよ!、し、異なる値を設定す るようにしてちょい。
[0265] ステップ S475において、勾配法演算部 404は、勾配法継続判定部 414からのフラ グに基づいて、セレクタ 402からのオフセットベクトル(初期ベクトル VO)を用いて、画 素単位の勾配法演算処理を実行し、ステップ S476に進む。この勾配法演算処理の 詳細は、図 36を参照して上述したブロック単位の勾配法演算処理と、対象となる演 算ブロック (範囲や、ブロックを構成する画素)が異なる以外、基本的に同様の処理を 行うため、その詳細な説明を省略するが、この勾配法演算処理により、検出対象画素 の動きベクトル Vnが求められ、ベクトル評価部 104および遅延部 405に出力される。 なお、動きベクトル Vnは、 1回目の勾配法演算により求められた動きベクトル vnに、 オフセットベクトルが加算されたもの(Vn= Vn— 1 +vn)となる。
[0266] ステップ S476において、ベクトル評価部 104は、勾配法処理により算出された動き ベクトル Vnの評価値 DFD (n)と、オフセットとして用いられた動きベクトル Vn— 1の 評価値 DFD (n— 1)を求め、評価値 DFD (n— 1)よりも評価値 DFD (n)が小さ!/、か 否力 すなわち、オフセットとして用いられた動きベクトル Vn— 1よりも勾配法処理に より算出された動きベクトル Vnの信頼度が高いか否かを判断する。
[0267] ベクトル評価部 104は、ステップ S476において、評価値 DFD (n— 1)よりも評価値 DFD (n)が小さいと判断された場合、すなわち、動きベクトル Vn—lよりも動きべタト ル Vnの信頼度が高いと判断された場合、ステップ S477において、算出された動き ベクトル Vn(l回目の場合、動きベクトル VI、 2回目の場合、動きベクトル V2)を、検 出対象画素の動きベクトル Vに設定して、ステップ S478〖こ進む。ベクトル評価部 104 は、ステップ S478において、反復回数 nを 1つカウントし、ステップ S479に進み、反 復回数 nが設定された最大反復回数 (例えば、 2回)になった力否かを判断し、まだ、 反復回数 nが設定された最大反復回数ではな 、と判断した場合、セレクタ 402を制 御し、ステップ S472に戻り、それ以降の処理を繰り返させる。
[0268] すなわち、ステップ S472において、セレクタ 402は、ベクトル算出部 425から出力さ れ遅延部 405に保持された動きベクトル VIを、オフセットベクトルとして選択し、ステ ップ S473において、時間画素差分算出部 411および画素差分値判定部 412は、ォ フセットベクトルである動きベクトル VIをオフセットして、画素単位の有効画素判定処 理を実行し、それ以降の処理を繰り返す。したがって、ステップ S475において求めら れる動きベクトル V2は、 2回目の勾配法演算により算出された動きベクトル v2に、ォ フセットとなる動きベクトル VIが加算されたもの(すなわち、 V2= VO+vl +v2)であ る。
[0269] ベクトル評価部 104は、ステップ S476において、評価値 DFD (n— 1)よりも評価値 DFD (n)が大きいと判断した場合、すなわち、動きベクトル Vn— 1の方力 動きべタト ル Vnよりも信頼度が高いと判断された場合、ステップ S480に進み、勾配法演算のォ フセットとしたベクトル Vn— 1 (1回目の場合、初期ベクトル VO、 2回目の場合、動きべ タトル VI)を、検出対象ブロックの動きベクトル Vに設定して、ステップ S481に進む。 また、ベクトル評価部 104は、ステップ S479において、反復回数 nが設定された最大 反復回数になったと判断した場合、ステップ S481に進む。
[0270] ベクトル評価部 104は、ステップ S481において、動きベクトル Vが、動きベクトルを 検出する範囲として予め設定されたサーチエリア内である力否かを判断し、動きべク トル V力 サーチエリア内であると判断した場合、ステップ S483に進む。また、ベタト ル評価部 104は、ステップ S481において、動きベクトル V力 サーチエリア内である と判断しな力つた場合、ステップ S482に進み、動きベクトル Vを 0ベクトルに設定し、 ステップ S483に進む。
[0271] 一方、ステップ S474において、勾配法 «続判定部 414は、有効画素数カウンタ 41 3の有効画素数が所定のしき 、値 βより少な 、と判断した場合、勾配法演算部 404 に勾配法演算を打ち切るフラグ (flg=0)を出力し、ステップ S482に進む。時間画素 差分算出部 421は、フラグに基づいて、ベクトル算出部 425を制御し、動きベクトル V を 0ベクトルに設定させ、ステップ S483〖こ進む。
[0272] モード選択部 401は、ステップ S483において、検出対象ブロック内のすべての画 素の処理が終了した力否かを判断し、検出対象ブロック内のすべての画素の処理が 終了していないと判断した場合、ステップ S471に戻り、検出対象ブロックの次の画素 を、検出対象画素として、それ以降の処理を繰り返す。モード選択部 401は、ステツ プ S483において、検出対象ブロック内のすべての画素の処理が終了したと判断した 場合、画素単位の反復勾配法演算処理を終了し、図 34のステップ S415に戻る。す なわち、画素単位の反復勾配法演算処理により、検出対象ブロック内すベての画素 について動きベクトル Vが求められるので、図 34のステップ S415〖こ戻り、ベクトル評 価部 104は、動きベクトル Vを、検出対象ブロックの各画素に対応させて、検出べタト ルメモリ 53に記憶し、反復勾配法処理を終了する。
[0273] なお、ステップ S476の動きベクトルの信頼度の評価も、ステップ S406の場合と同 様に、評価値 DFDの判断とノルム値による判断を併用するようにしてもよい。
[0274] 以上のように、演算ブロック内の画素差分が所定の画素差分値よりも小さ!/、画素の み勾配法演算に用いるようにすることで、異なる動きを有する画素を演算対象力 除 くことができ、勾配法演算により求められる動きベクトルの確からしさが向上し、動きべ タトル検出の精度が向上する。
[0275] また、演算ブロック内の画素差分が所定の画素差分値よりも大きぐ勾配法演算に 用いられない画素数力 所定のしきい値よりも多力つた場合に、適応的に、勾配法演 算の処理を制御するようにしたので、特に、オブジェクトの動きの境界などにおいて、 さらに、動きベクトル検出の精度を向上させることができ、その結果、求められる動き ベクトルもより確からしいものとすることができる。
[0276] 具体的には、演算ブロック内の画素差分が所定の画素差分値よりも大きぐ勾配法 演算に用いられない画素数力 所定のしきい値よりも多力つた場合に、ブロック単位 モードから画素単位モードに変更し、検出対象ブロックの画素毎に演算ブロックを設 定し、有効判定処理および勾配法演算処理を行うようにしたので、画素によっては、 より高精度な動きベクトルを検出することができる。また、演算ブロック内の画素差分 が所定の画素差分値よりも大きぐ勾配法演算に用いられない画素数が、所定のしき い値よりも多力つた場合に、勾配法演算処理の処理を打ち切り、 0ベクトルとするよう にしたので、暴れた動きベクトルの検出を抑制し、より安全な動きベクトルを検出する ことができる。
[0277] 次に、ベクトル割付部 54の構成の詳細について説明する。
[0278] 図 38は、ベクトル割付部 54の構成を示すブロック図である。図 38に構成を示すベ タトル割付部 54は、 24P信号の入力される時刻 tの画像のフレーム tと、時刻 t+ 1の 画像のフレーム t+ 1を用いて、フレーム t上において検出された動きベクトルを、割付 ベクトルメモリ 55上の、補間する 60P信号の内挿フレーム上の画素に割り付ける処理 を行う。
[0279] 図 38の例において、時刻 tの画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1 は、画素情報演算部 701、評価値演算部 702、および着目画素差分演算部 703に 入力される。
[0280] 画素情報演算部 701は、検出ベクトルメモリ 53のフレーム t上の画素に検出された 動きベクトルを、左上の画素からラスタスキャン順に取得し、取得した動きベクトルを、 次の時刻のフレーム t+ 1方向に延ばし、延ばした動きベクトルと、内挿フレームとの 交点を算出する。そして、画素情報演算部 701は、算出された動きべ外ルと内挿フ レームとの交点から、内挿フレーム上において、その動きベクトルの割付対象となる 画素(以下、割付対象画素と称する)を設定し、動きベクトルおよび割付対象画素の 位置の情報を、ベクトル選択部 705に出力する。また、画像情報演算部 701は、割付 対象画素と、動きベクトルで対応付けられるフレーム tの位置 Pおよびフレーム t+ 1上 の位置 Qを算出し、算出されたフレーム tおよびフレーム t+ 1上の位置情報を、評価 値演算部 702、および着目画素差分演算部 703に出力する。
[0281] 評価値演算部 702は、画素情報演算部 701から、割付対象画素と、動きベクトルで 対応付けられるフレーム tおよびフレーム t+ 1上の位置情報を入力すると、フレーム t の位置 Pおよびフレーム t+ 1の位置 Qの評価値 DFDを演算するため、位置 Pおよび 位置 Qを中心とした一定範囲の DFD演算範囲 (m X n)をそれぞれ設定し、それらの DFD演算範囲が画枠内にある力否かを判断する。評価値演算部 702は、 DFD演算 範囲が画枠内にあると判断した場合、この DFD演算範囲を用いて演算することによ り、動きベクトルに対する割付対象画素の評価値 DFDを求め、求めた評価値 DFDを 、ベクトル評価部 704に出力する。
[0282] 着目画素差分演算部 703は、画素情報演算部 701から、割付対象画素と、動きべ タトルで対応付けられるフレーム tおよびフレーム t+ 1上の位置情報を入力すると、フ レーム tの位置 Pおよびフレーム t+ 1の位置 Qを用いて、割付対象画素に対する輝 度差分絶対値を求め、求めた輝度差分絶対値を、ベクトル評価部 704に出力する。
[0283] ベクトル評価部 704は、画素差分判断部 711および評価値判断部 712により構成 される。画素差分判断部 711は、着目画素差分演算部 703から入力された割付対象 画素に対する輝度差分絶対値が所定のしきい値よりも小さいか否かを判断する。評 価値判断部 712は、画素差分判断部 711により着目画素差分演算部 703から入力 された割付対象画素に対する輝度差分絶対値が所定のしきい値よりも小さいと判断 された場合に、評価値演算部 702から入力された割付対象画素の評価値 DFDが、 ベクトル選択部 705が有する DFDテーブルの最小評価値より小さいか否かを判断す る。そして、評価値判断部 712は、割付対象画素の評価値 DFDが、 DFDテーブル の最小評価値より小さいと判断した場合に、割付対象画素が対応する動きベクトルの 信頼度が高いと判断し、ベクトル選択部 705に、割付対象画素の評価値 DFDを出力 する。
[0284] ベクトル選択部 705は、内挿フレーム上の各画素における最小評価値を保持する DFDテーブルを有しており、内挿フレーム上の各画素に対して、 0ベクトルを割り付 けた場合の評価値 DFDOを、内挿フレーム上の各画素における最小評価値として D FDテーブルに予め保持している。ベクトル選択部 705は、ベクトル評価部 704から の割付対象画素の評価値 DFDを入力すると、画素情報演算部 701からの割付対象 画素の位置の情報に基づいて、割付フラグメモリ 56のフラグを l(true)に書き換え、割 付対象画素の DFDテーブルの最小評価値を、その割付対象画素の評価値 DFDに 書き換える。また、ベクトル選択部 705は、画素情報演算部 701からの割付対象画素 の位置の情報に基づいて、割付ベクトルメモリ 55の割付対象画素に、画素情報演算 部 701からの動きベクトルを割り付ける。
[0285] 次に、動きベクトルの画素以下精度を説明する。上述した式(1)で表される DFD評 価の演算においては、フレーム tの画素位置 pをベクトル V量分ずらした先のフレーム t + l上の位相p+vは、実際には、 24p信号のフレーム t+ 1上の画素位置と一致しな い場合が多ぐその場合の輝度値は定義されていない。したがって、画素以下精度 を有する動きベクトル Vに対する評価値 DFDの演算を行うためには、画素以下の位 相における輝度値を何らかの方法で生成しなければならな!/、。
[0286] これに対応して、フレーム tの画素位置 pをベクトル V量分ずらした先のフレーム t+ 1 上の位相 p+vに最も近い画素の輝度値をそのまま用いる方法がある。しかしながら、 この方法では、評価する動きベクトルの画素以下成分を丸めてしまうため、動きべタト ルの画素以下成分を捨てていることになり、これにより求められた評価値 DFDの信頼 度は、低くなつてしまう。
[0287] そこで、本発明においては、周辺 4画素の輝度値による 4点補間処理を用いている 。図 39は、本発明の 4点補間処理の概念を示す図である。図 39においては、矢印 X 力 フレーム t+ 1における水平方向を示しており、矢印 Yが、フレーム t+ 1における 垂直方向を示している。このフレーム t+ 1において、白丸は、フレーム t+ 1上の画素 位置を表しており、黒点は、画素以下の位置を表している。また、フレーム t+ 1上に おける最左上の黒点 p+vとその周辺 4画素は、ウィンドウ Eに拡大して示されている。 ウィンドウ Eにおいて、白丸内のアルファベットは、周辺 4画素の輝度値を示している
[0288] このフレーム t+ 1における最左上の黒点 p+v力 フレーム tの画素位置 pをベクトル V量分ずらした先の位相 p+vとすると、位相 p+vの輝度値 F (p+v)は、位相 p+v
t+1
の水平方向の画素以下成分 αおよび垂直方向の画素以下成分 β、並びに、位相 ρ + Vの周辺 4画素の輝度値 LO乃至 L4を用いて、周辺 4画素の距離の逆比の和で求 められる。すなわち、輝度値 F (p+v)は、次の式(12)で表される。
t+l
[0289] F (p+v) = (1— α ) (1— j8 ) LO+ α (1— j8 ) Ll
t+l
+ (1— a ) j8 L2+ a j8 L3 · · · (12)
[0290] 以上のように、 4点補間処理により求められる輝度値 F (p+v)を用いて、 DFD評
t+l
価の演算を行うことにより、ハードウェア実装上のコストを引き上げることなぐ評価値
DFDの信頼度の低下を抑制することができる。なお、以下においては、ベクトル割付 の際の評価値 DFDや輝度差分絶対値などの演算において、この 4点補間を適用し た例を説明する力 もちろん、上述した初期ベクトル選択処理やベクトル検出処理、 または、後述する割付補償処理などのベクトルを評価する場合の評価値 DFDの演 算においても、この 4点補間は適用される。
[0291] 次に、ベクトル割付処理の概念を説明する。例えば、 24P信号上でオブジェクトが 速度 Vで動いており、任意の 2フレーム間で、このオブジェクトの動きについて等速仮 定が成り立つと仮定した場合に、 24P信号のフレーム間に、新しくフレームを内挿す ることを考える。この場合、 24P信号のオブジェクトから動きベクトル Vを延ばすと、動 きベクトル Vと内挿フレームとの交点は、同じオブジェクトであり、同じ速度 Vを有する。
[0292] したがって、ベクトル検出部 53で検出された 24P信号のフレーム(以下、内揷フレ ームに対して、元フレームとも称する)の動きベクトルを、その動きベクトルと、内挿す る 60P信号の内挿フレーム上との交点に割り付けることで、内挿フレーム上の各画素 の動きを求めることができる。また、逆に、割り付けられた動きベクトルから、内挿フレ ーム上の画素が 24P信号フレーム上でどの位置から動いたものなのかを求めること ができる。
[0293] 図 40は、 24P信号の元フレームで検出された動きベクトルと、 60P信号の内揷フレ ーム上の画素の例を 1次元で示している。図 40の例においては、 2つの 24P信号の 時刻 tのフレーム tおよび時刻 t+ 1のフレーム t+ 1の間に、例えば、時刻 t+0. 4の 内挿フレーム Fl、および時刻 t+0. 8の内挿フレーム F2が 2つ挿入されている。なお 、この内挿フレームの位置は、上述したように、 24P信号上での時間位相が 0. 0, 0. 4, 0. 8, 1. 2,および 1. 6となる位置に、 60P信号のフレーム力 S置力れること力ら、 信号処理装置 1にお!、て予め設定されて!、る。
[0294] 各フレーム上の丸は、各画素を示している。前段のベクトル検出部 52によりフレー ム tにおいて検出された動きベクトル vl、 v2、および v3が、フレーム t+ 1方向に延ば されている。これらの動きベクトルを内挿フレーム F1および F2の各画素に割り付ける 場合、内挿フレーム上の各画素の近傍を通る動きベクトルは、その画素に割り付けら れる候補ベクトル (以下、割付候補ベクトルとも称する)とされる。
[0295] したがって、フレーム tの左側の画素から、フレーム t+ 1の左から 4, 5番目の画素 近傍への動きベクトル vlは、内挿フレーム F1上の左から 2番目と 3番目の画素の間、 内挿フレーム F2上の左から 3番目と 4番目の画素の間を通っている。したがって、動 きベクトル vlは、動きベクトル vlが内挿フレーム F1および F2を交差する点の近傍 N 1に含まれる画素(内挿フレーム F1の左から 2番目と 3番目の画素および内挿フレー ム F2の左から 3番目と 4番目の画素)に割り付けられる割付候補ベクトルとなる。
[0296] また、フレーム tの左から 3番目の画素から、フレーム t+ 1の左から 2, 3番目の画素 近傍への動きベクトル v2は、内挿フレーム F1上の左から 2番目と 3番目の画素の間、 内挿フレーム F2上の左から 2番目と 3番目の画素の間を通っている。したがって、動 きベクトル v2は、動きベクトル v2が内挿フレーム F1および F2を交差する点の近傍領 域 N2に含まれる画素(内挿フレーム F1の左から 2番目と 3番目の画素および内揷フ レーム F2の左から 2番目と 3番目の画素)に割り付けられる割付候補ベクトルとなる。
[0297] さらに、フレーム tの左から 5番目の画素から、フレーム t+ 1の左から 4, 5番目の画 素近傍への動きベクトル v3は、内挿フレーム F1上の左から 4番目と 5番目の画素の 間、内挿フレーム F2上の左力も 4番目と 5番目の画素の間を通っている。したがって 、動きベクトル v3は、動きベクトル v3が内挿フレーム F1および F2を交差する点の近 傍領域 N3に含まれる画素(内挿フレーム F1の左から 4番目と 5番目の画素および内 挿フレーム F2の左から 4番目と 5番目の画素)に割り付けられる割付候補ベクトルとな る。
[0298] すなわち、内挿フレーム F2の左から 2番目の画素の割付候補ベクトルは、動きべク トル v2であり、内挿フレーム F1上の左から 2番目および 3番目の画素、並びに内揷フ レーム F2の左から 3番目の画素の割付候補ベクトルは、動きベクトル vlおよび v2で ある。また、内挿フレーム F2の左力 4番目の画素の割付候補ベクトルは、動きべタト ル vlおよび v3であり、内挿フレーム F1上の左から 4番目および 5番目の画素、並び に内挿フレーム F2の左から 5番目の画素の割付候補ベクトルは、動きベクトル v3で ある。
[0299] 以上のように、元フレームにおいて検出された動きベクトルの中から、内挿フレーム 上の各画素に割り付けられる割付候補ベクトルが求められる。なお、内挿フレーム F1 および F2の左端の画素および右端の画素(図中黒丸)においては、近傍を通る動き ベクトルは、示されていない。すなわち、内挿フレーム F1および F2の左端の画素お よび右端の画素には、割り付けられる割付候補ベクトルが存在しない。したがって、こ れらの画素については、後述する後段の割付補償部 57において割付補償処理が実 行される。
[0300] さらに、図 41を参照して、元フレームで検出された動きベクトルと、 60P信号の内挿 フレーム上の画素について詳しく説明する。図 41の例において、矢印 Tは、図中、左 前の時刻 tのフレーム tから、右奥の時刻 t+ 1のフレーム t+ 1への時間の経過方向を 示している。また、時刻 tと時刻 t+ 1の間の時刻 t+posに内挿フレーム F1が置かれ
t
ている。
[0301] 図 41の例の場合、フレーム t上の画素(X , y )で検出された動きベクトル v (x , y
a a a va va
)をフレーム t+ 1方向に延ばし、内挿フレーム Flとの交点 (x , y )を演算する。交点 は、 24P信号のフレーム t上の動きベクトル Vの端点にあたる画素が移動した点であ
a
ると考えられるので、具体的には、式(13)および式(14)のように表される。
[0302] X = X +pos x · · · (13)
ia a t va
y = y +pos y · · · (14)
ia a t va
[0303] ここで、上述したように、動きベクトル vが画素以下精度を有する場合には、動きべ
a タトル vの交点と、内挿フレーム F1上の画素位置は、一致するとは限らない。一致し a
ない場合、図 41に示されるように、動きベクトル Vは、内挿フレーム F1上の交点の近 a
傍 4画素 Gl乃至 G4に対して割り付けられる。すなわち、動きベクトル Vは、近傍の各 a
画素 Gl乃至 G4上にシフト(平行移動)されて、それぞれの画素に対して割り付けら れる割付候補ベクトルとされ、割付補償処理が実行される。
[0304] なお、このように、 1つの動きベクトル力 近傍 4画素に対して割り付けられる候補と なることもあるため、画素によっては、複数の動きベクトルが割付候補ベクトルとされる 。この場合、ベクトル割付部 54は、各動きベクトルについて、内挿フレーム上の画素 と、その動きベクトルで対応付けられる元フレーム上の交点を算出し、その交点を用 いて、各動きベクトルを評価することにより、最終的に、内挿フレーム上の画素に、割 り付ける動きベクトルを決定する。
[0305] 図 42を参照して、ベクトル割付部 54における動きベクトルの評価について説明す る。図 42は、下から、図 41の時刻 tのフレーム t、時刻 t+posの内挿フレーム Fl、お t
よび、時刻 t+ 1のフレーム t+ 1を、 1次元的に示している。
[0306] 図 42の例において、動きベクトル svは、フレーム t上の画素(X , y )において検出 された動きベクトル V力 近傍の画素 G4の割付候補ベクトルとして、画素 G4上にシ a
フト(平行移動)されたものである。ここで、画素 G4上にシフトされた動きベクトル sv aと
、フレーム tおよびフレーム t+ 1との交点を、それぞれ点 Pおよび点 Qとする。
[0307] ベクトル割付部 54は、動きベクトル svの第 1の評価として、まず、点 Pおよび点 Qを a
中心とした DFD演算範囲をそれぞれ求め、求めた DFD演算範囲が画枠をはみ出し てしまうか否かを判断する。したがって、点 Pおよび点 Qを中心とした DFD演算範囲 が画枠をはみ出てしまった場合には、動きベクトル svは、候補から除外される。
a
[0308] また、この点 Pおよび点 Qが、例えば、異なるオブジェクトに属する場合、点 Pの輝度 値 F (P)と、点 Qの輝度値 F (Q)の差は、大きくなつてしまう。したがって、ベクトル割 t t+1
付部 54は、動きベクトル svの第 2の評価として、点 Pと点 Qを用いて、画素 G4におけ a
る輝度差分絶対値 dpを求め、輝度差分絶対値 dpが所定の値より大きいか否かを判 断する。輝度差分絶対値 dpが所定の値より大きいと判断された場合には、画素 G4 における動きベクトル svの信頼度が低いとされ、動きベクトル svは、候補から除外さ a a れる。なお、輝度差分絶対値 dpは、次の式(15)で表される。
[0309] dp = I F (P)— F (Q)
t t+1 I · ' · (15)
[0310] そして、動きベクトル svの第 3の評価として、ベクトル割付部 54は、点 Pおよび点 Q a
を中心とした DFD演算範囲の相関値を表す差分絶対値による評価判断を行う。すな わち、ベクトル割付部 54は、点 Pおよび点 Qを中心とした DFD演算範囲を用いて、画 素 G4における動きベクトル svの評価値 DFD (差分絶対値)を求め、求められた評価 a
値 DFDが DFDテーブルの最小評価値よりも小さ 、か否かを判断する。以上の評価 の結果、ベクトル割付部 54は、求められた評価値 DFDの中で最小の評価値 DFDを 有する動きベクトルを、画素 G4に割り付ける。
[0311] 以上のように、内挿フレームの画素における割付候補の動きベクトルを、割付対象 画素の評価値 DFDだけでなぐ割付対象画素における輝度差分絶対値を用いて評 価するようにしたので、従来の評価値 DFDを用いるだけの場合よりも、確力もしい動 きベクトルを、割付対象画素に割り付けることができる。この結果、ベクトル割付の精 度が向上する。
[0312] なお、上述したように内挿フレームの画素における割付候補の動きベクトルを評価 するためには、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元 フレーム上の位置が用いられる力 輝度差分絶対値 dpおよび評価値 DFDを求める 際に、割付候補の動きベクトルは、内挿フレームの画素位置を基準に延長するため、 動きベクトルと元フレーム上の交点は、元フレームの画素位置と一致しな 、ことがあり 、このままでは画素値を求めることができない。このような場合に、図 39を参照して上 述した 4点補間処理が実行される。
[0313] 図 43は、ベクトル割付処理における 4点補間の例を示している。図 43において、図 41および図 42における場合と対応する部分には対応する符号を付してあり、その説 明は繰り返しになるので省略する。
[0314] 図 43の例においては、割付候補の動きベクトル svは、内挿フレーム F1の画素位 a
置 G4を基準に延長されているため、動きベクトル svとフレーム tとの交点 Pは、フレー a
ム t上の画素位置(フレーム t上の白丸)と一致しておらず、また、動きベクトル SVとフ a レーム t+ 1との交点 Qも、フレーム t+ 1上の画素位置(フレーム t上の白丸)と一致し ていない。したがって、フレーム tおよびフレーム t+ 1においては、それぞれ交点 Pお よび交点 Qを中心とした近傍 Eの 4画素(フレーム tおよびフレーム t+ 1上の白丸)を 用いて、上述した 4点補間演算が行なわれ、交点 Pおよび交点 Qの画素値が求めら れる。
[0315] このように、本発明のベクトル割付処理においては、 4点補間処理により求められる 交点 Pおよび交点 Qの画素値が用いられて、輝度差分絶対値 dpおよび評価値 DFD が演算されるので、従来の画素以下成分を丸めてしまう方法よりも、輝度差分絶対値 dpや評価値 DFDを精度よく求めることができる。
[0316] 次に、図 44のフローチャートを参照して、ベクトル割付処理の詳細を説明する。 24 P信号の元フレームである、時刻 tの画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1は、画素情報演算部 701、評価値演算部 702、および着目画素差分演算部 70 3に入力される。
[0317] 画素情報演算部 701は、新しい元フレームが入力されると、ベクトル選択部 705を 制御し、ステップ S701において、割付フラグメモリ 56の割付フラグを O(False)で初期 化させ、ステップ S702に進み、割付ベクトルメモリ 55を 0ベクトルで初期化させ、ステ ップ S703に進む。これにより、結果的に、動きベクトルが割り付けられない画素に、 0 ベクトルが割り付けられる。
[0318] また、画素情報演算部 701は、ステップ S703において、評価値演算部 702を制御 し、内挿フレーム上のすべての画素に対して、 0ベクトルを用いて評価値 DFD0を算 出させ、ベクトル選択部 705を制御し、評価値演算部 702により算出された 0ベクトル の評価値 DFD0を、内挿フレームの各画素に対する最小評価値として DFDテープ ルに記憶させ、ステップ S704に進む。すなわち、ステップ S703において、評価値演 算部 702は、内挿フレームすべての画素に対して、 0ベクトルを用いて評価値 DFD0 を算出し、算出した評価値 DFD0を、ベクトル評価部 704を介して、ベクトル選択部 7 05に出力する。そして、ベクトル選択部 705は、ベクトル評価部 704を介して入力さ れた評価値 DFD0を、 DFDテーブルの対応する画素の最小評価値として記憶する
[0319] 画素情報演算部 701は、ステップ S704において、検出ベクトルメモリ 53上の元フ レームから画素を選択し、ステップ S705〖こ進む。なお、この場合、フレームの左上か らラスタスキャン順に画素が選択される。
[0320] 画素情報演算部 701は、ステップ S705において、画素位置演算処理を実行し、ス テツプ S706に進む。この画素位置演算処理の詳細は、図 45を参照して後述するが 、この画素位置演算処理により、ステップ S704において選択された画素において検 出された動きベクトルが割り付けられる対象となる内挿フレーム上の割付対象画素が 算出され、算出された割付対象画素を基準に、その動きベクトルで対応付けられる元 フレーム上の位置が算出される。
[0321] 画素情報演算部 701は、ステップ S706において、算出された割付対象画素を選 択し、選択した割付対象画素と、その動きベクトルを、ベクトル選択部 705に出力し、 ステップ S707に進む。このとき、同時に、画素情報演算部 701は、選択した割付対 象画素を基準に、その動きベクトルで対応付けられる元フレーム上の位置の情報を、 評価値演算部 702および着目画素演算部 703に出力する。なお、ステップ S706に おいて、画素情報演算部 701は、割付対象画素が複数存在する場合には、左上の 画素から選択する。
[0322] ステップ S707において、画素情報演算部 701は、選択された割付対象画素に関し て、割付ベクトル評価処理を実行し、ステップ S708に進む。この割付ベクトル評価処 理の詳細は、図 46を参照して後述する力 この割付ベクトル評価処理により、割付対 象画素における動きベクトルの評価値 DFDおよび輝度差分絶対値が求められ、割 付対象画素における動きベクトルの信頼度が判断され、これらの判断の結果、信頼 度が高いとされた動きベクトルで、割付ベクトルメモリ 55の動きベクトルが書き換えら れる。
[0323] 画素情報演算部 701は、ステップ S708において、すべての割付対象画素の処理 が終了した力否かを判断し、まだ、すべての割付対象画素の処理が終了していない と判断した場合には、ステップ S706に戻り、次の割付対象画素を選択し、それ以降 の処理を繰り返す。
[0324] ステップ S708において、すべての割付対象画素の処理が終了したと判断された場 合、画素情報演算部 701は、ステップ S709において、検出ベクトルメモリ 53上の元 フレームのすべての画素の処理を終了した力否かを判断する。画素情報演算部 701 は、ステップ S709において、検出ベクトルメモリ 53上の元フレームのすべての画素 の処理を終了していないと判断した場合、ステップ S704に戻り、検出ベクトルメモリ 5 3上の元フレームの次の画素を選択し、それ以降の処理を繰り返す。また、画素情報 演算部 701は、ステップ S709において、検出ベクトルメモリ 53のすベての画素につ V、ての処理を終了したと判断した場合、ベクトル割付処理を終了する。
[0325] 次に、図 45のフローチャートを参照して、画素位置演算処理の詳細を説明する。な お、図 45は、図 44のステップ S705の画素位置演算処理の例を示している。
[0326] ステップ S721において、画素情報演算部 701は、ステップ S704の処理により選択 された画素で検出された動きベクトルを、検出メモリベクトル 53から取得し、ステップ S 722に進む。なお、選択された画素の動きベクトル力^ベクトルである場合、割付べク トルメモリ 55には、初期値として 0ベクトルが予め記憶されているので、以降のステツ プ S722乃至 S724、および、図 44のステップ S706乃至 S708の処理はスキップされ 、処理 ίま、ステップ S 709に進む。
[0327] 画素情報演算部 701は、ステップ S722において、取得された動きベクトルと内挿フ レームの交点を算出する。すなわち、画素情報演算部 701は、取得した動きベクトル を、次フレーム t+ 1方向に延ばし、延ばした動きベクトルと、内挿フレームとの交点を 算出し、ステップ S723〖こ進む。
[0328] 画素情報演算部 701は、ステップ S723において、動きベクトルと内挿フレームから 算出された交点から、割付対象画素を設定し、ステップ S724に進む。このとき、画素 情報演算部 701は、交点が内挿フレーム上の画素位置に一致する場合には、交点 を、割付対象画素に設定する。一方、画素情報演算部 701は、交点が内挿フレーム 上の画素位置に一致しない場合には、上述したように、内挿フレーム上の交点の近 傍 4画素を、割付対象画素に設定する。
[0329] ステップ S724において、画素情報演算部 701は、評価値演算部 702および着目 画素差分演算部 703が評価値 DFDおよび輝度差分絶対値を求める上で必要であ る、各割付対象画素を基準に、取得された動きベクトルで対応付けた元フレーム上の 位置を算出する。具体的には、画素情報演算部 701は、ステップ S724において、取 得された動きベクトルを、設定された割付対象画素にシフト (平行移動)し、シフトされ た動きベクトルと、元フレーム上の交点の位置を求め、画素位置演算処理を終了し、 図 43のステップ S706に戻る。
[0330] 次に、図 46のフローチャートを参照して、割付ベクトル評価処理の詳細を説明する 。なお、図 46は、図 44のステップ S 707の割付ベクトル評価処理の例を示している。
[0331] 図 44のステップ S706において、画素情報演算部 701により、選択した割付対象画 素を基準に、その動きベクトルで対応付けられる元フレーム上の位置が求められ、求 められた元フレーム上の位置の情報が、評価値演算部 702および着目画素差分演 算部 703に入力される。
[0332] 評価値演算部 702は、画素情報演算部 701から、元フレーム上の位置の情報が入 力されると、ステップ S741において、割付対象画素における動きベクトルの評価値 D FDを求めるために、フレーム tおよびフレーム t+ 1上の位置を中心とした DFD演算 範囲(m X n)をそれぞれ求め、ステップ S742に進み、求められた DFD演算範囲が 画枠内にある力否かを判断する。評価値演算部 702は、ステップ S742において、 D FD演算範囲が画枠からはみ出していると判断した場合、その動きベクトルは、割付 対象画素に割り付ける割付候補ベクトルにはならな 、と判断し、ステップ S743乃至 S 749の処理をスキップし、割付ベクトル評価処理を終了し、図 44のステップ S708に 戻る。
[0333] 評価値演算部 702は、ステップ S742において、求められた DFD演算範囲が画枠 内にあると判断した場合、ステップ S743に進み、画枠内にあると判断された DFD演 算範囲を用いて、割付対象画素の評価値 DFDを演算し、求められた評価値 DFDを 、評価値判断部 712に出力し、ステップ S744に進む。なお、このとき、元フレーム上 の位置が画素以下であった場合には、上述した 4点補間を用いて、元フレーム上の 交点の輝度値を求めることにより、割付対象画素の評価値 DFDが演算される。
[0334] 一方、着目画素差分演算部 703は、画素情報演算部 701から、元フレーム上の位 置の情報が入力されると、ステップ S744において、割付対象画素における輝度差分 絶対値 dpを求め、求められた輝度差分絶対値 dpを、画素差分判断部 711に出力し 、ステップ S745に進む。なお、このときも、元フレーム上の位置が画素以下であった 場合には、着目画素差分演算部 703は、上述した 4点補間を用いて、元フレーム上 の交点の輝度値を求めることにより、割付対象画素における輝度差分絶対値 dpを演 算する。
[0335] 画素差分判断部 711は、ステップ S745において、着目画素差分演算部 703から の割付対象画素の輝度差分絶対値 dpが、所定のしき!/、値以下であるカゝ否かを判断 し、割付対象画素の輝度差分絶対値 dpが、所定のしきい値より大きいと判断した場 合、フレーム tおよびフレーム t+ 1の交点がそれぞれ異なるオブジェクトに属する可 能性が高いと判断し、すなわち、その動きベクトルは、割付対象画素における信頼度 が低ぐ割付対象画素に割り付ける割付候補ベクトルにはならないと判断し、ステップ S746乃至 S749の処理をスキップし、割付ベクトル評価処理を終了し、図 44のステ ップ S 708に戻る。
[0336] 画素差分判断部 711は、ステップ S745において、割付対象画素の輝度差分絶対 値 dp力 所定のしきい値以下であると判断した場合、ステップ S746に進む。評価値 判断部 712は、ステップ S746において、ベクトル選択部 705の DFDテーブルを参 照し、評価値演算部 702からの割付対象画素の評価値 DFDが、 DFDテーブルに記 憶されて 、る割付対象画素の最小評価値 ( 、まの場合、 0ベクトルの評価値 DFDO) よりも小さいか否かを判断し、評価値演算部 702からの割付対象画素の評価値 DFD 力 DFDテーブルに記憶されて 、る割付対象画素の最小評価値以上であると判断 した場合、その動きベクトルは、割付対象画素において、信頼度が高くないと判断し 、ステップ S747乃至 S749の処理をスキップし、割付ベクトル評価処理を終了し、図 44のステップ S 708に戻る。
[0337] 一方、評価値判断部 712は、ステップ S746において、評価値演算部 702からの割 付対象画素の評価値 DFDが、 DFDテーブルに記憶されて 、る割付対象画素の最 小評価値よりも小さいと判断した場合、その動きベクトルは、割付対象画素において 、いままで比較した動きベクトルの中で最も、評価値 DFDに基づく信頼度が高いと判 断し、信頼度が高いと判断された割付対象画素の評価値 DFDを、ベクトル選択部 7 05に出力し、ステップ S 747に進む。
[0338] ベクトル選択部 705は、評価値判断部 712からの割付対象画素の評価値 DFDを 入力すると、ステップ S747において、割付フラグメモリ 56の割付対象画素の割付フ ラグを l(True)に書き換え、ステップ S748に進み、 DFDテーブルの割付対象画素が 対応する最小評価値を、評価値判断部 712により信頼度が高いと判断された評価値 DFDに書き換え、ステップ S 749に進む。
[0339] ベクトル選択部 705には、ステップ S706において、画素情報演算部 701から選択 した割付対象画素とその動きベクトルが入力されている。したがって、ベクトル選択部 705は、ステップ S749において、割付ベクトルメモリ 55の割付対象画素に割り付けら れて 、る動きベクトルを、信頼度が高 、と判断された評価値 DFDに対応する動きべ タトルで書き換え、割付ベクトル評価処理を終了し、図 44のステップ S708に戻る。
[0340] 以上のように、内挿フレームの割付対象画素に割り付けられる動きベクトルを選ぶと きに、評価値 DFDだけでなぐ割付対象画素を基準に動きベクトルで対応付けた元 フレーム上の位置に基づいて求められる、割付対象画素の輝度差分絶対値を別扱 いにし、評価するようにしたので、従来の評価値 DFDを用いるだけの場合よりも、割 付候補ベクトルの中から、最も確からしい動きベクトルを選んで、割付対象画素に割り 付けることができる。これにより、ベクトル割付の精度が向上し、後段の画像補間処理 にお 、て生成される画像の不連続性などを抑制することができ、画像の品質を向上 させることがでさる。
[0341] さらに、評価値 DFDや輝度差分絶対値を求める際などに、画素以下位置の画素 値が必要な場合に、その画素以下位置の近傍 4画素との距離を基にした線形補間 で値を求めるようにしたので、画素以下位置精度の処理が可能になり、さらに、従来 の画素以下成分を丸めてしまう方法よりも、輝度差分絶対値 dpや評価値 DFDを精 度よく求めることができ、これにより、割付候補ベクトルの中から、着目画素により確か らしい動きベクトルを割り付けることができる。すなわち、ベクトル割付処理の精度が 向上する。
[0342] また、 0ベクトルによる評価値 DFDを初期値として、 DFDテーブルに予め保持して おき、動きベクトルを順次処理している間に、ある動きベクトルによる評価値 DFDがそ の時点で最小評価値となった場合に、 DFDテーブルの最小評価値と、割付ベクトル メモリ 55に割り付けられている動きベクトルを、随時更新するようにしたので、時間とリ ソースを効率的に使用することができる。
[0343] 次に、割付補償部 57の構成の詳細について説明する。
[0344] 図 47は、割付補償部 57の構成を示すブロック図である。図 47に構成を示す割付 補償部 57は、割付ベクトル判定部 801およびベクトル補償部 802により構成され、ベ タトル割付部 54により動きベクトルが割り付けられな力つた 60P信号の内挿フレーム 上の画素に、その周辺画素の動きベクトルを補って割り付ける処理を行う。
[0345] 前段のベクトル割付部 54により、割付ベクトルメモリ 55上の内挿フレームの画素に は動きベクトルが割り付けられている。また、ベクトル割付部 54により動きベクトルが 割り付けられた画素の割付フラグメモリ 56の割付フラグには、 l(True)が書き込まれて おり、動きベクトルが割り付けられな力つた画素の割付フラグメモリ 56の割付フラグに は、 O(False)が書き込まれている。
[0346] 割付ベクトル判定部 801は、割付フラグメモリ 56の割付フラグを参照し、着目画素 に、ベクトル割付部 54により動きベクトルが割り付けられているか否かを判定する。そ して、割付ベクトル判定部 801は、ベクトル割付部 54により動きベクトルが割り付けら れなカゝつた着目画素を選択し、選択した着目画素に対して、ベクトル補償部 802を制 御し、その着目画素の周辺画素の動きベクトルを選択して、割付ベクトルメモリ 55の 内挿フレーム上に割り付けさせる。
[0347] ベクトル補償部 802は、割付ベクトルメモリ 55から、着目画素の周辺画素に割り付 けられている動きベクトルを取得し、入力される時刻 tの画像のフレーム tと、時刻 t+ 1 の画像のフレーム t+ 1を用いて、取得した動きベクトルの評価値 DFDを求めて比較 することにより、着目画素の周辺画素に割り付けられた動きベクトルのうち、評価値 D FDに基づぐ最も信頼度が高い動きベクトルを、割付ベクトルメモリ 55の着目画素に 割り付ける。また、ベクトル補償部 802は、動きベクトルが割り付けられた着目画素の 割付フラグを l(True)に書き換える。
[0348] 図 48は、ベクトル補償部 802の構成を示すブロック図である。図 48に構成を示す ベクトル補償部 802は、補償処理部 811および評価値演算部 812により構成される。
[0349] 補償処理部 811は、最小評価値 DFDと、最小評価値 DFDの動きベクトルを候補 ベクトル (以下、補償候補ベクトルとも称する)として記憶するメモリ 821を有しており、 割付ベクトル判定部 801により選択された着目画素の初期値として、 0ベクトルの評 価値 DFDを最小評価値としてメモリ 821に記憶し、 0ベクトルを、補償候補ベクトルと してメモリ 821に記憶する。補償処理部 811は、割付フラグメモリ 56を参照して、着目 画素の周辺画素の動きベクトルの有無を判断し、割付ベクトルメモリ 55から、周辺画 素に割り付けられている動きベクトルを取得し、評価値演算部 812を制御し、その動 きベクトルの評価値 DFDを演算させる。
[0350] また、補償処理部 811は、評価値演算部 812により演算された評価値 DFDがメモリ 821に記憶されて 、る最小評価値よりも小さ!/、か否かを判断し、演算された評価値 D FDが最小評価値よりも小さいと判断した場合、メモリ 821の補償候補ベクトルと最小 評価値を、演算された評価値 DFDとその動きベクトルに書き換え、最終的に、評価 値 DFDが最も小さ 、と判断された周辺画素の動きベクトル (補償候補ベクトル)を、着 目画素の動きベクトルとして、割付ベクトルメモリ 55の着目画素に割り付ける。さらに、 補償処理部 811は、動きベクトルが割り付けられた着目画素の割付フラグメモリ 56の 割付フラグを l(True)に書き換える。
[0351] 評価値演算部 812は、割付ベクトルメモリ 55から周辺画素の動きベクトルを取得す ると、入力される時刻 tの 24P信号の画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1を用いて、割付ベクトルメモリ 55からの動きベクトルの評価値 DFDを演算し、演 算した評価値 DFDを補償処理部 811に出力する。
[0352] 図 49Aは、割付補償処理の原理を説明する図である。図 49Aの例においては、内 挿フレーム上の各画素が示されている。画素から出力される矢印は、各画素に割り付 けられている動きベクトルを表しており、矢印がない画素は、動きベクトルが割り付け られて!ヽな ヽ画素を表して!/、る。
[0353] ここで、前段のベクトル割付部 54により動きベクトルの割り付けられな力つた中央の 着目画素 Pに対して、着目画素 Pの近傍の周辺画素に割り付けられて 、る動きべタト ルの中から、評価値 DFDに基づぐ信頼度が高いものを選択して割り付ける。図 49 Aの例の場合、着目画素 Pには、着目画素 Pの上の画素の動きベクトル (太線矢印) が選択され、割り付けられている。これは、次に説明する動き相関に基づいて実行さ れる処理である。 [0354] 図 50は、動き相関の原理について説明する図である。図 50の例においては、ある フレーム上を動き vlで動くオブジェクト Olと、動き v2で動くオブジェクト 02が示され ている。オブジェクト Olに属している着目画素 P1とその近傍 K1は、オブジェクト Ol とほぼ同一動き vlを有している。また、オブジェクト 02に属している着目画素 P2とそ の近傍 K2は、オブジェクト 02とほぼ同じ動き v2を有して!/、る。
[0355] このように、動き相関とは、ある同じ時間における空間内(同一フレーム内)において 、あるオブジェクトに属する画素の動きは、ほぼ同一動きをしていることが多いというこ とを表すものである。したがって、動きベクトルを割り付けることができなかった画素に 対しては、ある同じ時間における空間内(同一フレーム内)において、このような動き 相関があることを利用して、周辺画素の動きベクトルから、その画素の対応する動き ベクトルを選択することができる。なお、説明は省略するが、時間方向の相関も同様 である。
[0356] 次に、図 51乃至図 57を参照して、動き相関に基づいて実行される動きベクトルの 補償処理について説明する。すなわち、周辺画素の動きベクトルから、動きベクトル を選択し、着目画素の動きベクトルとして補う処理である。図 51の例においては、白 丸は、内挿フレーム上の画素を表しており、動きベクトルを求めようとしている着目画 素 Pの周辺に、周辺 8画素が示されている。この着目画素 Pの動きベクトルは、この周 辺 8画素の動きベクトルを参照して求められる。
[0357] 図 52の例においては、着目画素 Pの周辺 8画素の中で、左上画素、右上画素、お よび、右下画素(黒丸)に、前段の処理 (例えば、上述したベクトル割付処理)などに より求められた動きベクトル (矢印)が示されている。すなわち、この場合の着目画素 P の補償候補ベクトルは、左上画素、右上画素、および、右下画素の動きベクトルとさ れる。なお、フレーム上において、動きベクトルは、フレーム上の左上の画素からラス タスキャン順に求められていくため、周辺 8画素のうち、まだ動きベクトルの求められ て 、な 、画素も存在する可能性もある力 まだ動きベクトルは求められて 、な 、ため 、補償候補ベクトルにはできない。
[0358] ここで、図 53の例に示されるように、周辺 8画素の中には、前段の処理において求 められた動きベクトルを有する画素(黒丸)の他に、本処理により求められた動きべク トルを有する画素 (ハッチングされた丸)も存在する。すなわち、本処理においては、 本処理自体の前段の結果も利用される。したがって、図 53の例の場合の着目画素 P の補償候補ベクトルは、動きベクトルがすでに存在する画素(黒丸)の動きベクトルと 、前段の本処理により求められた動きベクトルを有する画素 (ハッチングされた丸)の 動きベクトルにより構成されて 、る。
[0359] また、図 54の例に示されるように、動き量を 0とした 0ベクトル (静止ベクトル) SOも補 償候補ベクトルとして利用することができる。なお、図 53の例においては、本処理に より求められた動きベクトルを有する画素と、動きベクトルがすでに存在する画素を別 々に表した力 どちらも動きベクトルを有するという点で同じであるので、図 54乃至図 57においては、本処理により求められた動きベクトルを有する画素も、動きベクトルが すでに存在する画素(黒丸)に含まれることとする。したがって、図 54の例の場合、着 目画素 Pの補償候補ベクトルは、動きベクトルがすでに存在する画素(黒丸)の動き ベクトルおよび 0ベクトル SOにより構成されている。
[0360] 以上のようにして構成される補償候補ベクトルの信頼度 (確カゝらしさ)を比較するた めに、動きベクトルの評価方法である評価値 DFDは、以降の図 55乃至図 57に示さ れるようにして求められる。図 55は、補償候補ベクトルとして、 0ベクトル SOが用いら れる例を示している。図 56は、補償候補ベクトルとして、周辺 8画素の左上画素の動 きベクトル VK1が用いられる例を示している。図 57は、補償候補ベクトルとして、周辺 8画素の上中央画素の動きベクトル VK2が用いられる例を示して!/、る。
[0361] 図 55の例においては、図中左側に示される着目画素 Pの補償候補ベクトルの中か ら、 0ベクトル SOが選択され、選択された 0ベクトル SOの評価値 DFDを求める例が示 されている。すなわち、 0ベクトル SOに対する評価値 DFDは、着目画素 P (60P信号 の内挿フレーム)を挟む、 24P信号のフレーム tとフレーム t+ 1上において、内揷フレ ーム上の着目画素 Pを基準にして、選択された 0ベクトル SOが対応付けられる交点を 求め、この交点を中心として所定の範囲(m X n)の DFD演算範囲 D1— 1および D1 2を算出し、算出された DFD演算範囲 D1— 1および D1— 2を用いて、上述した式 (1)を演算することにより求められる。
[0362] 図 56の例においては、図中左側に示される着目画素 Pの補償候補ベクトルの中か ら、周辺 8画素の左上画素の動きベクトル VKlが選択され、選択された動きベクトル VK1の評価値 DFDを求める例が示されている。すなわち、周辺 8画素の左上画素 の動きベクトル VK1に対する評価値 DFDは、着目画素 P (内挿フレーム)を挟むフレ ーム tとフレーム t+ 1上において、内挿フレーム上の着目画素 Pを基準にして、選択 された動きベクトル VK1が対応付けられる交点を求め、この交点を中心として所定の 範囲(m X n)の DFD演算範囲 D2— 1および D2— 2を算出し、算出された DFD演算 範囲 D2— 1および D2— 2を用いて、上述した式(1)を演算することにより求められる
[0363] 図 57の例においては、図中左側に示される着目画素 Pの補償候補ベクトルの中か ら、補償候補ベクトルとして、周辺 8画素の上中央画素の動きベクトル VK2が選択さ れ、選択された動きベクトル VK2の評価値 DFDを求める例が示されている。すなわ ち、周辺 8画素の上中央画素の動きベクトル VK2に対する評価値 DFDは、着目画 素 P (内挿フレーム)を挟むフレーム tとフレーム t+ 1上にお!、て、内挿フレーム上の 着目画素 Pを基準にして、選択された動きベクトル VK2が対応付けられる交点を求 め、この交点を中心として所定の範囲(m X n)の DFD演算範囲 D3— 1および D3— 2を算出し、算出された DFD演算範囲 D3— 1および D3— 2を用いて、上述した式(1 )を演算することにより求められる。
[0364] なお、図中左側に示される他の補償候補ベクトルについても、基本的に同様の処 理であるため、その説明は省略するが、以上のようにして、着目画素 Pの周辺画素の 補償候補ベクトルすべての評価値 DFDが求められ、求められたそれらの評価値 DF Dが比較され、その中で、最も評価値 DFDが最小となる補償候補ベクトルが、図 58 に示されるように、着目画素 Pに割り付けられる最も信頼度がある、確力もしい動きべ タトルとして選択される。
[0365] 図 58の例の場合、着目画素 Pの周辺画素の補償候補ベクトルの中から、周辺 8画 素の左上画素の動きベクトル VK1の評価値 DFDが最も小さいとして判断され、動き ベクトル VK1が、着目画素 Pの動きベクトルとして選択され、割り付けられている。
[0366] 以上のように、ベクトル割付部 54において割り付けることができな力つた画素の動き ベクトルを、動き相関を利用して、周辺画素の動きベクトル力 補償するようにしたの で、動きベクトルが割り付けられず、例えば、 0ベクトルが割り付けられていたような場 合よりも、動きの乱れを抑制することができる。また、このようにして補償された画素の 動きベクトルも、他の画素の補償候補ベクトルとして再度利用することができる。すな わち、空間方向の近傍の動きベクトルだけでなぐ時間方向の近傍の動きベクトルも 、補償候補ベクトルに用いることができるので、オブジェクト内でほぼ同じ動きをする 画素には、ほぼ同一の動きベクトルが選択され、誤りの少ない安定した動きベクトル を得ることができる。これにより、ベクトル割付の精度が向上する。
[0367] 次に、図 59Aのフローチャートを参照して、割付補償処理の詳細を説明する。前段 のベクトル割付部 54により、割付ベクトルメモリ 55上の内挿フレームの画素には動き ベクトルが割り付けられている。また、ベクトル割付部 54により動きベクトルが割り付け られた画素の割付フラグメモリ 56の割付フラグには、 l(True)が書き込まれており、動 きベクトルが割り付けられな力つた画素の割付フラグメモリ 56の割付フラグには、 0 (False)が書き込まれて!/、る。
[0368] 割付ベクトル判定部 801は、ステップ S801において、割付フラグメモリ 56の内揷フ レームの画素を、着目画素として選択し、ステップ S802に進む。このとき、割付べタト ル判定部 801は、フレームの左上の画素からラスタスキャン順に画素を選択する。
[0369] 割付ベクトル判定部 801は、ステップ S802において、割付フラグメモリ 56内の着目 画素の割付フラグ力 O(False)である力否かを判断し、割付フラグメモリ 56内の着目 画素の割付フラグ力 O(False)であると判断した場合、動きベクトルが割り付けられて いないと判定し、ステップ S803に進み、補償処理部 811を制御し、ベクトル補償処 理を実行させ、ステップ S804に進む。このベクトル補償処理の詳細は、図 60を参照 して後述する力 このベクトル補償処理により、周辺画素に割り付けられた動きべタト ルの中から、評価値 DFDの最小の動きベクトルが補償候補ベクトルとしてメモリ 821 に gc feされる。
[0370] 補償処理部 811は、ステップ S804において、メモリ 821の補償候補ベクトルを、着 目画素の動きベクトルとして、割付ベクトルメモリ 55に割り付け、ステップ S805に進み 、割付フラグメモリ 56の着目画素の割り付けフラグを、 l(True)に書き換え、ステップ S 806に進む。 [0371] 一方、ステップ S802において、割付ベクトル判定部 801は、割付フラグメモリ 56内 の着目画素の割付フラグが、 l(True)であると判断した場合、その着目画素にはすで に動きベクトルが割り付けられて ヽると判定して、ステップ S803乃至 S805の処理を スキップし、ステップ S806〖こ進む。
[0372] 割付ベクトル判定部 801は、ステップ S806において、割付フラグメモリ 56の内揷フ レームのすべての画素の処理を終了したか否かを判断し、すべての画素の処理を終 了していないと判断した場合、ステップ S801に戻り、割付フラグメモリ 56の内挿フレ ームの次の画素を、着目画素として選択し、それ以降の処理を実行する。ステップ S 806において、割付フラグメモリ 56の内挿フレームのすべての画素の処理を終了し たと判断した場合、割付補償処理を終了する。
[0373] 次に、図 60のフローチャートを参照して、ベクトル補償処理の詳細を説明する。な お、図 60は、図 59Aのステップ S803のベクトル補償処理の例を示している。
[0374] 補償処理部 811は、ステップ S821において、評価値演算部 812を制御し、 0ベタト ルを用いて評価値 DFD0を算出させ、ステップ S822に進む。具体的には、評価値 演算部 812は、ステップ S821において、入力される時刻 tの画像のフレーム tと、時 刻 t+ 1の画像のフレーム t+ 1を用いて、例えば、図 55を参照して上述したように、着 目画素について、 0ベクトルでの評価値 DFD0を演算し、演算した評価値 DFD0を 補償処理部 811に出力する。
[0375] ステップ S822において、補償処理部 811は、評価値 DFD0を最小評価値としてメ モリ 821に記憶し、ステップ S823に進み、 0ベクトルを補償候補ベクトルとして、メモリ 821に記憶し、ステップ S824に進む。補償処理部 811は、ステップ S824において、 割付ベクトル判定部 801により選択された着目画素の周辺 8画素のうち、 1つの周辺 画素を選択し、ステップ S825〖こ進む。このとき、補償処理部 811は、周辺 8画素のう ち、左上の画素力 ラスタスキャン順に周辺画素を選択する。
[0376] 補償処理部 811は、ステップ S825において、割付フラグメモリ 56を参照し、選択し た周辺画素の動きベクトルが存在する力否かを判断する。割付フラグメモリ 56の周辺 画素の割付フラグが l(True)であれば、補償処理部 811は、ステップ S825において 、選択した周辺画素に割り付けられている動きベクトルが存在すると判断し、ステップ S826に進み、割付ベクトルメモリ 55から、周辺画素の動きベクトルを取得し、ステツ プ S827に進む。このとき、割付ベクトルメモリ 55から評価値演算部 812にも周辺画 素の動きベクトルが出力される。
[0377] 評価値演算部 812は、割付ベクトルメモリ 55から周辺画素の動きベクトルが入力さ れると、ステップ S827において、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の 画像のフレーム t+ 1を用いて、着目画素について、割付ベクトルメモリ 55からの動き ベクトルの評価値 DFDを演算し、演算した評価値 DFDを、補償処理部 811に出力 し、ステップ S828に進む。
[0378] 補償処理部 811は、評価値演算部 812から評価値 DFDが入力されると、ステップ S828において、評価値 DFDが、メモリ 821に記憶されている着目画素の最小評価 値よりも小さいか否かを判断し、評価値 DFDが、メモリ 821に記憶されている着目画 素の最小評価値よりも小さいと判断した場合、ステップ S829に進み、メモリ 821の最 小評価値を、最小評価値よりも小さいと判断された評価値 DFDに書き換え、ステップ S830に進み、メモリ 821の補償候補ベクトルを、その最小評価値の動きベクトルに書 き換え、ステップ S831に進む。
[0379] 一方、ステップ S825において、割付フラグメモリ 56の周辺画素の割付フラグが 0
(False)であると、補償処理部 811は、選択した周辺画素に割り付けられている動きべ タトルがないと判断し、ステップ S826乃至 S830の処理をスキップし、ステップ S831 に進む。また、ステップ S828において、補償処理部 811は、評価値 DFDが、メモリ 8 21に記憶されて 、る着目画素の最小評価値以上であると判断した場合、ステップ S8 29および S830の処理をスキップし、ステップ S831に進む。
[0380] 補償処理部 811は、ステップ S831において、着目画素の周辺 8画素すべてに対し て処理が終了した力否かを判断し、着目画素の周辺 8画素すべてに対して処理が終 了していないと判断した場合、ステップ S824に戻り、次の周辺画素を選択し、それ以 降の処理を繰り返す。また、補償処理部 811は、ステップ S831において、着目画素 の周辺 8画素すべてに対して処理が終了したと判断した場合、ベクトル補償処理を終 了し、図 59Aのステップ S804に戻る。
[0381] なお、上記説明にお 、ては、ベクトル割付部 54にお 、て割り付けられな力つた画素 に対してベクトル補償処理を行っている力 ベクトル検出部 52において検出されなか つた(0ベクトルが検出された)画素など、何らかの処理において動きベクトルが求めら れな力つた画素に対してベクトル補償処理を行うようにしてもよい。また、さらに、検出 された動きベクトル、または、割り付けられた動きベクトルが確力 しくない (信頼度が 低 ヽ)とされる画素に対してベクトル補償処理を行うようにしてもょ ヽ。
[0382] また、上記説明にお 、ては、割付補償処理は、個々の画素レベルで実行されて!ヽ る。すなわち、上述した図 51乃至図 58の例においては、それぞれの個々の画素が 評価され、その上で割付補償処理が実行されている。
[0383] しかしながら、もっと単純化した処理の例として、図 49B及び図 49Cに示されるよう に、複数の画素力 なるブロックが一度に評価されるブロックモードを用いて、ブロッ ク内の画素を一度に評価するようにしてもょ 、。
[0384] 例えば、図 49Bの例に示されるように、着目ブロック Bは、 4画素で構成され、着目 ブロック Bの近傍の各画素(図 49Bの場合、 12画素)が、周辺画素となる。さらに、着 目ブロック B内の 4画素のうち、割付フラグが 1の画素(すでに割付ベクトルが存在し ている画素)も周辺画素として用いてもよい。この場合、図 49Cの例に示されるように 、補償候補ベクトルの評価値 DFDは、着目ブロック Bを基準にして、図 55乃至図 57 の場合と同様に演算される。なお、着目ブロック Bは、 4画素で構成される必要はなく 、着目ブロック Bの近傍の他の着目ブロックの画素や、着目ブロック Bの近傍の複数 の画素などを含めて、例えば、 9画素のように他の数の画素で構成されてもよい。次 に、図 59Bのフローチャートを参照して、上述した個々の画素に適用される処理(以 下、画素モードの処理とも称する)を、図 49Bの着目ブロック Bに適用した割付補償 処理を説明する。
[0385] なお、図 59Bは、図 59Aの個々の画素に対しての割付補償処理に対応する、ブロ ックに対しての割付補償処理であり、図 59Bにおいて、図 59Aの例と同様の処理に ついては、同じステップ番号が付してあり、その説明は、繰り返しになるので適宜省略 する。
[0386] 図 59Bの例において、割付ベクトル判定部 801は、ステップ S860において、割付 フラグメモリ 56の内挿フレームの画素を、着目ブロックとして選択し、ステップ S861に 進む。このとき、割付ベクトル判定部 801は、フレームの左上の画素からラスタスキヤ ン順に、例えば、図 49Bの 4画素で構成される着目ブロックを選択する。
[0387] 割付ベクトル判定部 801は、ステップ S861において、着目ブロックに、割付フラグメ モリ 56内の割付フラグ力 O(False)である画素があるか否かを判断する。割付べタト ル判定部 801は、割付フラグメモリ 56内の割付フラグ力 O(False)である画素があると 判断した場合、着目ブロック内に、動きベクトルが存在しない画素があるとして、ステ ップ S803に進む。割付ベクトル判定部 801は、ステップ S803において、補償処理 部 811を制御し、ベクトル補償処理を実行させる。このベクトル補償処理の詳細は、 処理の対象が着目ブロックであることが異なるだけであり、図 60を参照して上述した 処理と基本的に同様の処理を行うため、その説明は省略する。
[0388] すなわち、着目ブロックの評価値 DFD0が演算されて記憶され、評価値 DFD0と比 較することにより、着目ブロックの周辺画素に割り付けられた動きベクトルの中力 評 価値 DFDの最小の動きベクトル力 着目ブロックの補償候補ベクトルとしてメモリ 821 に記憶される。なお、着目ブロックの補償候補ベクトルは、メモリ 821において、着目 ブロックすべての画素に記憶されてもよいし、着目ブロックのうち動きベクトルが割り付 けられて 、な 、画素に対してだけ記憶されるようにしてもよ!、し、着目ブロックの所定 の画素位置にのみ記憶されてもよい。
[0389] ステップ S803において、着目ブロックの補償候補ベクトル力メモリ 821に記憶され、 処理は、ステップ S862に進む。補償処理部 811は、着目ブロック内の着目画素を選 択し、ステップ S862において、着目ブロック内の着目画素の、割付フラグメモリ 56内 の割付フラグが O(False)であるか否かを判断し、着目画素の割付フラグが O(False)で あると判断した場合、ステップ S804に進み、図 59Aの場合と同様に、メモリ 821の補 償候補ベクトルを、着目画素の動きベクトルとして、割付ベクトルメモリ 55に割り付け、 ステップ S805に進み、割付フラグメモリ 56の着目画素の割り付けフラグを、 l(True) 【こ書さ 免、ステップ S863【こ itむ。
[0390] 着目画素の割付フラグ力 SCXFalse)ではな 、と判断された場合、補償処理部 811は、 ステップ S863に進む。補償処理部 811は、ステップ S863において、着目ブロック内 のすベての画素の処理を終了したか否かを判断し、着目ブロック内のすべての画素 の処理を終了していないと判断した場合、ステップ S864に進み、着目ブロック内の 次の着目画素を選択し、ステップ S862に戻り、それ以降の処理を繰り返す。
[0391] ステップ S861において、割付フラグメモリ 56内の割付フラグ力 O(False)である画 素がないと判断された場合、または、ステップ S863において、着目ブロック内のすべ ての画素の処理を終了したと判断された場合、補償処理部 811は、ステップ S865に 進み、割付フラグメモリ 56の内挿フレームのすべてのブロックの処理を終了したか否 かを判断し、すべてのブロックの処理を終了していないと判断した場合、ステップ S8 60に戻り、割付フラグメモリ 56の内挿フレームの次のブロックを、着目ブロックとして 選択し、それ以降の処理を実行する。ステップ S865において、割付フラグメモリ 56の 内挿フレームのすべてのブロックの処理を終了したと判断された場合、割付補償処 理は終了される。
[0392] 以上により、着目ブロックの各画素(動きベクトルが割りついていない画素)に動き ベクトルが割り付けられる。
[0393] 上述のブロックモードは、単に、動きベクトルが割り付けられて ヽな 、画素を有する ブロックに対して演算される動きベクトルを、そのブロックに割り付けるだけである。ま た、そのブロックの画素に、ブロックモードの開始前にすでに割り付けられている動き ベクトルは、そのブロックについて演算された動きベクトルとは置き換えられない。さら に、ベクトル割付部 54は、存在する動きベクトルに基づいて、 1または 0のフラグ (割 付フラグメモリ 56)をブロックの画素に対して予め割り付けているので、ブロックの画 素が動きベクトルを有する力否かを知るために再演算の必要はない。以上により、動 きベクトルを割付補償する際にブロックモードを採用することにより、その計算量は、 画素モードの処理よりも減少される。
[0394] 以上のように、ベクトル割付処理にぉ 、て、割り付けることができな力つた画素また は着目ブロック内の画素に関しても、動き相関があることを利用して、その画素の周 辺の動きベクトルの中から、評価値 DFDに基づぐ最も信頼度がある、確からしい動 きベクトルを得ることができる。これにより、ベクトルが割り付けられず、 0ベクトルなどを 割り付けておく場合よりも、ベクトル割付の精度が向上し、後段の画像補間処理にお いて生成される画像の不連続性を抑制することができる。 [0395] また、着目画素(またはブロック)の周辺画素の動きベクトル力 得られた (割り付け られた)この動きベクトルは、実在する動きベクトルである。したがって、実在する動き ベクトルが割り付けられるので、割り付けられる各画素には、例えば、作り出された架 空の動きベクトルが割り付けられるしまうことなどで発生してしまう、割り付けによるエラ 一が蓄積されない。
[0396] さらに、割付補償処理においては、割付候補として、本処理により新しく割り付けら れた周辺画素の動きベクトルも用いられる。これは、割付候補として、周辺画素(プロ ック)の周辺画素の動きベクトルも用いられるということであり、さらに換言するに、より 広い範囲の周辺画素 (すなわち、より多くの周辺画素)から、割り付けるべき、より信頼 性の高い動きベクトルが探索可能であるということである。したがって、割付補償処理 にお 、て周辺画素の動きベクトルを用いることにより、より信頼性の高!、動きベクトル を着目画素または着目ブロックに割り付けることができる。
[0397] また、上述した割付補償処理により動きベクトルが割り付けられた画素の割付フラグ を l(True)に書き換えるようにし、割付補償処理により割り付けられた動きベクトルも、 次の画素の補償候補ベクトルとして用いるようにしたので、オブジェクト内でほぼ同じ 動きをする画素には、ほぼ同一の動きベクトルが選択されるようになり、誤りの少ない 安定した動きベクトルを得ることができる。その結果、後段において生成される画像の ブロックノイズや粉状ノイズなどを抑制し、品質を向上させることができる。
[0398] さらに、動きベクトルを求める着目画素について、 0ベクトルの評価値 DFDを予め 算出し、最小評価値としてメモリに保持しておくことにより、すべての補償候補べタト ル評価値 DFDを一度に算出し、その中から最小の評価値 DFDを選択する場合より も、時間とリソースを効率的に使用することができる。
[0399] 次に、ベクトル補償処理の他の例について説明する。
[0400] 図 61は、信号処理装置 1の他の例を示すブロック図である。なお、図 61の信号処 理装置 1は、判定結果フラグメモリ 911および検出補償部 912が追加されている点を 除いて、その他の構成は、上述した図 2の信号処理装置 1と同様の構成である。
[0401] したがって、図 61の例の場合、信号処理装置 1に入力された 24P信号の入力画像
(時刻 t+ 1のフレーム t+ 1)は、フレームメモリ 51、ベクトル検出部 52、検出補償部 9 12、ベクトル割付部 54、割付補償部 57、および画像補間部 58に供給される。フレー ムメモリ 51に記憶される時刻 tのフレーム tは、ベクトル検出部 52、検出補償部 912、 ベクトル割付部 54、割付補償部 57、および画像補間部 58に供給される。
[0402] ベクトル検出部 52は、フレームメモリ 51上のフレーム tの着目ブロックと、入力画像 のフレーム t+ 1の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを 、検出ベクトルメモリ 53に記憶する。このとき、ベクトル検出部 52は、動きベクトルの信 頼度の高さを評価判断し、動きべ外ルの信頼度が高いと判断した場合、判定結果フ ラグメモリ 911の判定結果フラグに l(True)を記憶させ、動きベクトルの信頼度が低い と判断した場合、判定結果フラグメモリ 911の判定結果フラグに O(False)を記憶させる 。この 2フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング 法などが用いられる。動きベクトル検出に勾配法またはブロックマッチング法などが用 いられる場合、図 68を参照して後述するが、ベクトル検出部 52は、検出した動きべク トルの信頼度の高さを評価する評価値 DFDを求め、動きベクトルの評価値 DFDが、 所定のしきい値より小さいか否かを判断することにより、動きベクトルの信頼度が高い か否か判断し、その判断結果に基づいて、判定結果フラグメモリ 911に値を書き込む
[0403] なお、動きベクトル検出に勾配法が用いられる場合、ベクトル検出部 52は、勾配法 演算の対象となる演算ブロックに、動きベクトルの検出に有効な画素が多いか否かを 判断することにより、動きベクトルの信頼度が高いか否かを判断し、その判断結果に 基づいて、判定結果フラグメモリ 911に値を書き込む。すなわち、上述したように、勾 配法演算は、統計的な解法である最小自乗法に基づいた演算であるため、演算プロ ック内に、動きベクトルの検出に有効な画素が多ければ多いほど、勾配法演算精度 が向上するため、その勾配法演算により算出される動きベクトルの信頼度が高くなる( すなわち、より確力 しい動きベクトルが算出される)からである。
[0404] 動きベクトル検出に勾配法が用いられる場合におけるベクトル検出部 52の構成の 詳細は、図 9および図 25を参照して上述したベクトル検出部 52と基本的に同様の構 成であるため、繰り返しになるので、その詳細な説明を省略する力 図 61のベクトル 検出部 52においては、有効画素判定部 403は、演算ブロックにおいて、動きベクトル の検出に有効な画素数が所定のしきい値より多いか否かを判断し、その判断した結 果のフラグ (flg)を、勾配法演算部 404に出力する。勾配法演算部 404は、有効画素 判定部 403からのフラグを参照し、フラグが 1を示す (flg=l)場合、算出した動きべタト ルとともに、フラグ (flg=l)をベクトル評価部 104に出力する。ベクトル評価部 104は、こ の動きベクトルを、検出ベクトルメモリ 53に出力するとともに、フラグ (flg=l)に基づいて 、演算ブロックに、動きベクトルの検出に有効な画素数が多い (すなわち、動きべタト ルの信頼度が高い)と判断し、判定結果フラグメモリ 911に l(True)を書き込む。
[0405] 一方、勾配法演算部 404は、有効画素判定部 403からのフラグを参照して、フラグ 力 SOを示す (flg=0)場合、 0ベクトルととも〖こ、フラグ (flg=0)をベクトル評価部 104に入力 する。ベクトル評価部 104は、この 0ベクトルを、検出ベクトルメモリ 53に出力するとと もに、フラグ (flg=0)に基づいて、演算ブロックに、動きベクトルの検出に有効な画素数 が少ない (すなわち、動きベクトルの信頼度が低い)と判断し、判定結果フラグメモリ 9 11に O(False)を書き込む。
[0406] 判定結果フラグメモリ 911は、元フレームの画素毎に、検出された動きベクトルの信 頼度が高いか低いか (すなわち、検出された動きベクトルが確からしいか、確力もしく ないか)を示す判定結果フラグを記憶している。例えば、 True(l)である判定結果フラ グは、対応する画素の動きベクトルの信頼度が高いことを示し、 False(O)である判定結 果フラグは、対応する画素の動きベクトルの信頼度が低 ヽことを示す。
[0407] 検出補償部 912は、判定結果フラグメモリ 911の着目画素の判定結果フラグを参 照し、判定結果フラグが O(False)であった場合、ベクトル検出部 52により信頼度の高 い動きベクトルが検出されていないと判断して、その着目画素に対して、着目画素の 周辺画素の動きベクトルを補い、検出ベクトルメモリ 53のフレーム上に記憶させる。こ のとき、検出補償部 912は、動きベクトルが検出された着目画素の判定結果フラグメ モリ 911を l(True)に書き換える。なお、検出補償部 912の構成の詳細は、後述する 力 検出補償部 912は、割付補償部 57における動きベクトルを補償する対象が、ベ タトル割付部 54により動きベクトルが割り付けられな力つた画素であったもの力 ベタ トル検出部 52により信頼度が高い (確力もしい)動きベクトルが検出されな力つた画素 に代わっただけであり、基本的な構成は、割付補償部 57と同様であり、以降、その詳 細な説明は繰り返しになるので適宜省略する。すなわち、割付補償部 57と検出補償 部 912は、割付補償部 57がベクトル補償処理を実行する対象が 60P信号の内挿フ レーム上の画素であるのに対して、検出補償部 912がベクトル補償処理を実行する 対象が 24P信号のフレーム上の画素であることが異なるだけである。
[0408] 図 62は、検出補償部 912の構成を示すブロック図である。図 62に構成を示す検出 補償部 912は、検出ベクトル判定部 921およびベクトル補償部 922により構成され、 ベクトル検出部 52により信頼度が高い動きベクトルが検出されな力つた (すなわち、 確からしくない動きベクトルが検出されている) 24P信号のフレーム上の画素に対して 、図 50を参照して上述した動き相関に基づいて、その周辺画素の動きベクトルを補 つて検出する処理を行う。
[0409] 前段のベクトル検出部 52により、検出ベクトルメモリ 53上のフレームの画素には動 きベクトルが検出されている。また、ベクトル検出部 52により信頼度が高い動きべタト ルが検出されていると判断された画素の判定結果フラグメモリ 911の判定結果フラグ には、 l(True)が書き込まれており、信頼度が低い動きベクトルが検出されていると判 断された画素の判定結果フラグメモリ 911の判定結果フラグには、(XFalse)が書き込 まれている。
[0410] 検出ベクトル判定部 921は、判定結果フラグメモリ 911の着目画素の判定結果フラ グを参照し、着目画素の信頼度の高さを判定する。検出ベクトル判定部 921は、ベタ トル検出部 52により信頼度が高い動きベクトルが検出されな力つた (信頼度が低い動 きベクトルが検出された)着目画素に対して、ベクトル補償部 922を制御し、その着目 画素の周辺画素の動きベクトルを選択させて、それを、検出ベクトルメモリ 53のフレ ーム上に記憶させる。
[0411] ベクトル補償部 922は、検出ベクトルメモリ 53から、着目画素の周辺画素に割り付 けられている動きベクトルを取得し、入力される時刻 tの画像のフレーム tと、時刻 t+ 1 の画像のフレーム t+ 1を用いて、取得した動きベクトルの評価値 DFDを求めて比較 することにより、着目画素の周辺画素に検出された動きベクトルのうち、評価値 DFD に基づぐ最も信頼度が高い動きベクトルを、検出ベクトルメモリ 53の着目画素に記 憶させる。また、ベクトル補償部 922は、判定結果フラグメモリ 911において、評価値 DFDに基づぐ最も信頼度が高い動きベクトルが補償された着目画素の判定結果フ ラグを l(True)に書き換える。
[0412] 図 63は、ベクトル補償部 922の構成を示すブロック図である。なお、図 63において 、図 48における場合と対応する部分には対応する符号を付してあり、その詳細な説 明は繰り返しになるので省略する。
[0413] 図 63においては、補償処理部 811は、最小評価値 DFDと、最小評価値 DFDの動 きベクトルを補償候補ベクトルとして記憶するメモリ 821を有しており、検出ベクトル判 定部 921により選択された着目画素の初期値として、着目画素にすでに検出されて いる動きベクトルの評価値 DFDを最小評価値としてメモリ 821に記憶し、その動きべ タトルを、補償候補ベクトルとしてメモリ 821に記憶する。例えば、ベクトル検出部 52 においては、演算ブロック内に有効な画素が少ない場合には、最終的に 0ベクトルが 検出されるので、この場合、 0ベクトルが補償候補ベクトルとしてメモリ 821に記憶され る。補償処理部 811は、判定結果フラグメモリ 911を参照して、着目画素の周辺画素 の動きベクトルの信頼度の高さを判断し、検出ベクトルメモリ 53から、周辺画素に検 出されている、信頼度が高い動きベクトルを取得し、評価値演算部 812を制御し、そ の動きベクトルの評価値 DFDを演算させる。
[0414] また、補償処理部 811は、評価値演算部 812により演算された評価値 DFDがメモリ 821に記憶されて 、る最小評価値よりも小さ!/、か否かを判断し、演算された評価値 D FDが最小評価値よりも小さいと判断した場合、メモリ 821の補償候補ベクトルと最小 評価値を、演算された評価値 DFDとその動きベクトルに書き換え、最終的に、評価 値 DFDが最も小さ 、と判断された周辺画素の動きベクトル (補償候補ベクトル)を、着 目画素の動きベクトルとして、検出ベクトルメモリ 53の着目画素に記憶させる。さらに 、補償処理部 811は、動きベクトルが補償され、検出された着目画素の判定結果フラ グメモリ 911の判定結果フラグを l(True)に書き換える。
[0415] 評価値演算部 812は、検出ベクトルメモリ 53から周辺画素の動きベクトルを取得す ると、入力される時刻 tの 24P信号の画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1を用いて、検出ベクトルメモリ 53からの動きベクトルの評価値 DFDを演算し、演 算した評価値 DFDを補償処理部 811に出力する。なお、上述したように、割付補償 部 57がベクトル補償処理を実行する対象が、 60P信号の内挿フレーム上の画素であ るのに対して、検出補償部 912がベクトル補償処理を実行する対象は、 24P信号の フレーム上の画素であるので、評価値演算部 812は、 24P信号のフレーム tの着目画 素において、評価値 DFDを演算する。
[0416] 次に、図 64のフローチャートを参照して、図 61の信号処理装置 1のフレーム周波数 を変換する処理の例を説明する。なお、図 64のステップ S901、および S904乃至 S9 08の処理は、図 6のステップ Sl、およびステップ S3乃至 S7と基本的に同様の処理 であるため、その詳細な説明は繰り返しになるので省略する。
[0417] ステップ S901において、ベクトル検出部 52は、時刻 t+ 1の入力画像のフレーム t
+ 1と、フレームメモリ 51の入力画像の 1つ前の時刻 tのフレーム tの画素値を入力し 、ステップ S902に進む。なお、このとき、ベクトル割付部 54、検出補償部 912、割付 補償部 57および画像補間部 58は、時刻 t+ 1の入力画像のフレーム t+ 1と、フレー ムメモリ 51の入力画像の 1つ前の時刻 tのフレーム tの画素値を入力する。
[0418] ステップ S902において、ベクトル検出部 52は、動きベクトル検出処理を実行し、ス テツプ S903に進む。すなわち、ベクトル検出部 52は、フレームメモリ 51上のフレーム tの着目ブロックと、入力画像である次のフレーム t+ 1の対象ブロックの間で動きべク トルを検出し、検出した動きベクトルを、検出ベクトルメモリ 53に記憶し、ステップ S90 3に進む。この 2フレーム間の動きベクトルの検出方法には、勾配法またはブロックマ ツチング法などが用いられる。また、動きベクトルの候補が複数ある場合には、各動き ベクトルに対して、評価値 DFDが求められ、求められた評価値 DFDに基づいて、最 も信頼度の高い (確からしい)動きベクトルが検出される。このとき、ベクトル検出部 52 は、検出された動きベクトルの信頼度が高いか否かの判断を行い、その判断結果に 基づいて、判定結果フラグメモリ 911に、 l(True)力、 O(False)を書き込む。ステップ S9 02における、動きベクトル検出処理の詳細は、図 65を参照して後述する。
[0419] ステップ S903において、検出補償部 912は、検出補償処理を実行し、ステップ S9 04に進む。すなわち、検出補償部 912は、ステップ S903において、判定結果フラグ メモリ 911の判定結果フラグを参照し、ベクトル検出部 52により信頼度が高い動きべ タトルが検出されな力つた着目画素に対して、その着目画素の周辺画素の動きべタト ルを補い、検出ベクトルメモリ 53のフレームに記憶させる。このとき、検出補償部 912 は、判定結果フラグメモリ 911において、動きベクトルを補償した着目画素の検出対 象フラグを l(True)に書き換える。なお、周辺画素の動きベクトルが複数ある場合には 、各動きベクトルに対して、評価値 DFDが求められ、求められた評価値 DFDに基づ いて、最も信頼度が高い動きベクトルが検出される。ステップ S903における、検出補 償処理の詳細は、図 66を参照して後述する。
[0420] ステップ S904にお!/、て、ベクトル割付部 54は、ベクトル割付処理を実行し、ステツ プ S905に進む。すなわち、ベクトノレ害 ij付咅 54ίま、ステップ S902および S903にお!/ヽ て、フレーム t上で検出された動きベクトルを、割付ベクトルメモリ 55上の、補間する内 挿フレーム上の画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメ モリ 56の割付フラグを l(True)に書き換える。
[0421] ステップ S905にお 、て、割付補償部 57は、割付補償処理を実行し、ステップ S90 6に進む。すなわち、割付補償部 57は、ステップ S905において、割付フラグメモリ 56 の割付フラグを参照し、ベクトル割付部 54により動きベクトルが割り付けられな力つた 着目画素に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメ モリ 55の内挿フレーム上に割り付ける。このとき、割付補償部 57は、動きベクトルを補 V、、割付けた着目画素の割付フラグを l(True)に書き換える。
[0422] ステップ S906にお ヽて、画像補間部 58は、画像補間処理を実行する。すなわち、 画像補間部 58は、ステップ S906において、割付ベクトルメモリ 55の内挿フレームに 割り付けられた動きベクトルと、フレーム tおよびフレーム t+ 1の画素値を用いて、内 揷フレームの画素値を補間生成し、ステップ S907に進む。画像補間部 58は、ステツ プ S908において、生成された内挿フレームを出力し、その次に、必要に応じて、フレ ーム t+ 1を出力することにより、 60P信号の画像を、図示せぬ後段に出力し、ステツ プ S908に進む。
[0423] ステップ S908において、ベクトル検出部 52は、すべてのフレームの処理が終了し た力否かを判断し、すべてのフレームの処理が終了していないと判断した場合、ステ ップ S901に戻り、それ以降の処理を繰り返す。一方、ベクトル検出部 52は、ステップ S908において、すべてのフレームの処理が終了したと判断した場合、フレーム周波 数を変換する処理を終了する。
[0424] 次に、図 65のフローチャートを参照して、図 64のステップ S902の動きベクトル検出 処理の詳糸田【こつ 、て説明する。なお、図 65のステップ S921乃至 S923、 S925、お よび S926の処理は、図 12のステップ S101乃至 S105と基本的に同様の処理である ため、その詳細な説明は、繰り返しになるので適宜省略する。
[0425] ベクトル検出部 52には、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画像の フレーム t+ 1が入力される。初期ベクトル選択部 101は、ステップ S921において、フ レーム t上の処理の対象となるブロックを、着目ブロックとして選択し、ステップ S922 に進む。なお、フレーム上においては、左上のブロックからラスタスキャン順に処理が 実行される。
[0426] ステップ S922において、初期ベクトル選択部 101は、初期ベクトル選択処理を実 行する。すなわち、初期ベクトル選択部 101は、ステップ S922において、所定のブロ ック毎に、過去の動きベクトルの検出結果から、信頼度が高い動きベクトルを選択し、 選択した動きベクトルを、勾配法に用いられる初期値となる初期ベクトル VOとして、反 復勾配法演算部 103に出力し、ステップ S923に進む。
[0427] ステップ S923において、反復勾配法演算部 103およびベクトル評価部 104は、勾 配法演算評価処理を実行し、ステップ S924に進む。具体的には、ステップ S923に おいて、モード選択部 401は、ブロック単位処理モードまたは画素単位処理モードを 選択する。有効画素判定部 403は、セレクタ 402を介して、入力される初期ベクトル V 0と、プリフィルタ 102—1および 102— 2を介して入力されるフレーム tおよびフレーム t+ 1を用いて、ブロック単位または画素単位の演算ブロック内において、画素差分値 が所定の画素差分値よりも小さい (すなわち、動きベクトルの検出に有効である)と判 断された有効画素の数をカウントし、カウントされた有効画素の数が所定のしき!、値よ り多いと判断した場合、ブロック単位または画素単位で、勾配法演算を実行させるフ ラグ (flg= l)を、勾配法演算部 404を介してベクトル評価部 104に出力する。一方、 画素単位の演算ブロック内にお!ヽて、画素差分値が所定の画素差分値よりも小さ ヽ と判定された有効画素の数が所定のしき 、値より少な 、と判断した場合、フラグ (flg= 0)を、勾配法演算部 404を介して、ベクトル評価部 104に出力する。 [0428] 勾配法演算部 404は、ベクトル評価部 104による動きベクトルの評価結果に基づい て、勾配法の演算を繰り返し行い、動きベクトル Vnを算出する。また、ベクトル評価部 104は、反復勾配法演算部 103からの動きベクトル Vn—lと、動きベクトル Vnの評価 値 DFDを求め、最終的に、求められた評価値 DFDに基づぐ信頼性の高いものを 選択し、動きベクトル Vとして、検出ベクトルメモリ 53に記憶する。このとき、ベクトル評 価部 104は、動きベクトル Vとともに、その動きベクトル Vに対して求めた評価値 DFD を、シフト初期ベクトル割付部 105に供給する。
[0429] その後、ベクトル評価部 104は、ステップ S924において、検出ベクトルメモリ 53に 記憶した動きベクトル Vに対応するフラグに基づいて、動きベクトル Vを算出した際の 演算ブロック内の有効画素数の判断結果(に基づ 、た値)を、判定結果フラグメモリ 9 11に書き込み、ステップ S925に進む。すなわち、ベクトル評価部 104は、検出べタト ルメモリ 53に記憶させた動きベクトル Vのフラグが 1を示す (flg= 1)場合、演算ブロック 内に有効な画素数が所定のしきい値より多ぐこれらを用いて検出された動きべタト ル Vの信頼度は高い (確からしい)と判断して、判定結果フラグメモリ 911に l(True)を 書き込む。また、逆に、検出ベクトルメモリ 53に記憶させた動きベクトル Vのフラグが 0 を示す (flg= 0)場合、演算ブロック内に有効な画素数が所定のしきい値より少なぐこ れらを用いて検出された動きベクトル V (0ベクトル)の信頼度は低いと判断して、判定 結果フラグメモリ 911に O(False)を書き込む。
[0430] ステップ S925において、シフト初期ベクトル割付部 105は、シフト初期ベクトル割付 処理を実行し、ステップ S926に進む。すなわち、シフト初期ベクトル割付部 105は、 ベクトル評価部 104より動きベクトル Vおよびその評価値 DFDが供給されると、ステツ プ S925において、動きベクトル Vの中で、次の時刻のフレームの任意のブロックを通 過する動きベクトルを求め、求めた動きベクトルを、そのブロックにシフトさせたシフト 初期ベクトル(すなわち、動きベクトル Vの終点のブロックと同じ位置の次のフレーム 上の着目ブロックを始点とした、動きベクトル Vと同じ大きさで同じ向きの動きベクトル )を設定する。そして、シフト初期ベクトル割付部 105は、そのシフト初期ベクトルを、 シフト初期ベクトルメモリ 107に割り付ける。
[0431] ステップ S926において、初期ベクトル選択部 101は、フレーム tにおいて、すべて のブロックの処理が終了したか否かを判断し、すべてのブロックの処理が終了してい ないと判断した場合、ステップ S921に戻り、それ以降の処理を繰り返す。また、ステ ップ S926において、初期ベクトル選択部 101は、フレーム tにおいて、すべてのブロ ックの処理が終了したと判断した場合、すなわち、フレーム t上のすべてのブロックに おいて、動きベクトル Vが検出されたと判断し、動きベクトル検出処理を終了する。
[0432] 以上のように、反復勾配法の演算が用いる演算ブロックにおいて、動きベクトルの 検出に有効である画素数 (有効画素数)が多 、か否かに基づ 、て、その画素に検出 されて 、る動きベクトルの信頼度が高 、か低 、か (確から U、か否力 のフラグを、判 定結果フラグメモリ 911に記憶するようにしたので、後段の検出補償部 912は、判定 結果フラグメモリ 911を参照することにより、その画素の動きベクトルの信頼度の高さ を判定し、信頼度が低い (確からしくない)動きベクトルの画素に対して、ベクトル補償 処理を実行することができる。
[0433] 次に、図 66のフローチャートを参照して、検出補償処理の詳細を説明する。なお、 図 66の検出補償処理は、図 59Aの割付補償処理と基本的に同様の処理であり、そ の説明は繰り返しになるので適宜省略する。
[0434] 前段のベクトル検出部 52により、検出ベクトルメモリ 53上のフレームには動きべタト ルが検出されている。また、ベクトル検出部 52により、信頼度が高い動きベクトルが検 出されている画素の判定結果フラグメモリ 911の判定結果フラグには、 l(True)が書き 込まれており、信頼度が低い動きベクトル (例えば、 0ベクトル)が検出されている画素 の判定結果フラグメモリ 911の判定結果フラグには、 O(False)が書き込まれている。
[0435] 検出ベクトル判定部 921は、ステップ S941において、判定結果フラグメモリ 911の フレームの画素を、着目画素として選択し、ステップ S942に進む。このとき、検出べ タトル判定部 921は、フレームの左上の画素力 ラスタスキャン順に画素を選択する。
[0436] 検出ベクトル判定部 921は、ステップ S942において、判定結果フラグメモリ 911内 の着目画素の判定結果フラグが、(XFalse)である力否かを判断し、判定結果フラグメ モリ 911内の着目画素の判定結果フラグが、(XFalse)であると判断した場合、その着 目画素の動きベクトルの信頼度が低いと判定し、ステップ S943に進み、補償処理部 811を制御し、ベクトル補償処理を実行させ、ステップ S944に進む。このベクトル補 償処理の詳細は、図 67を参照して後述するが、このベクトル補償処理により、周辺画 素に検出されている信頼度が高い動きベクトルの中から、評価値 DFDの最小の動き ベクトルが補償候補ベクトルとしてメモリ 821に記憶される。
[0437] 補償処理部 811は、ステップ S944において、メモリ 821の補償候補ベクトルを、着 目画素の動きベクトルとして、検出ベクトルメモリ 53に記憶し、ステップ S945に進み、 判定結果フラグメモリ 911の着目画素の判定結果フラグを、 l(True)に書き換え、ステ ップ S 946に進む。
[0438] 一方、ステップ S942において、検出ベクトル判定部 921は、判定結果フラグメモリ 9 11内の着目画素の判定結果フラグが、 l(True)であると判断した場合、その着目画 素にはすでに確からしい動きベクトルが検出されていると判定して、ステップ S943乃 至 S945の処理をスキップし、ステップ S946に進む。
[0439] 検出ベクトル判定部 921は、ステップ S946において、判定結果フラグメモリ 911の フレームのすべての画素の処理を終了したか否かを判断し、すべての画素の処理を 終了していないと判断した場合、ステップ S941に戻り、判定結果フラグメモリ 911の フレームの次の画素を、着目画素として選択し、それ以降の処理を実行する。ステツ プ S946にお!/、て、判定結果フラグメモリ 911のフレームのすべての画素の処理を終 了したと判断した場合、検出補償処理を終了する。
[0440] 次に、図 67のフローチャートを参照して、ベクトル補償処理の詳細を説明する。な お、図 67は、図 66のステップ S943のベクトル補償処理の例を示している。したがつ て、図 67の例においては、図 60のベクトル補償処理と基本的に同様の処理を行うた め、その説明は繰り返しになるので適宜省略する。
[0441] 補償処理部 811は、ステップ S951において、評価値演算部 812を制御し、着目画 素にすでに検出されている動きベクトルを用いて評価値 DFDを算出させ、ステップ S 952〖こ進む。具体的には、評価値演算部 812は、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画像のフレーム t+ 1を用いて、着目画素に検出されている動きべク トルの評価値 DFDを演算し、演算した評価値 DFDを補償処理部 811に出力する。
[0442] ステップ S952において、補償処理部 811は、算出された評価値 DFDを最小評価 値としてメモリ 821に記憶し、ステップ S953に進み、その動きベクトルを補償候補べ タトルとして、メモリ 821に記憶し、ステップ S954に進む。補償処理部 811は、ステツ プ S954において、検出ベクトル判定部 921により選択された着目画素の周辺 8画素 のうち、 1つの周辺画素を選択し、ステップ S955〖こ進む。このとき、補償処理部 811 は、周辺 8画素のうち、左上の画素からラスタスキャン順に周辺画素を選択する。
[0443] 補償処理部 811は、ステップ S955において、判定結果フラグメモリ 911を参照し、 選択した周辺画素に、信頼度が高い動きベクトルが存在する (検出されている)か否 かを判断する。判定結果フラグメモリ 911の周辺画素の判定結果フラグが l(True)で あれば、補償処理部 811は、ステップ S955において、選択した周辺画素に、信頼度 が高い動きベクトルが存在すると判断し、ステップ S956に進み、検出ベクトルメモリ 5 3力 、周辺画素の動きベクトルを取得し、ステップ S957に進む。このとき、検出べク トルメモリ 53から評価値演算部 812にも周辺画素の動きベクトルが出力される。
[0444] 評価値演算部 812は、検出ベクトルメモリ 53から周辺画素の動きベクトルが入力さ れると、ステップ S957において、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の 画像のフレーム t+ 1を用いて、着目画素について、検出ベクトルメモリ 53からの動き ベクトルの評価値 DFDを演算し、演算した評価値 DFDを補償処理部 811に出力し 、ステップ S958に進む。
[0445] 補償処理部 811は、評価値演算部 812から評価値 DFDが入力されると、ステップ S958において、評価値 DFDが、メモリ 821に記憶されている着目画素の最小評価 値よりも小さいか否かを判断し、評価値 DFDが、メモリ 821に記憶されている着目画 素の最小評価値よりも小さいと判断した場合、ステップ S959に進み、メモリ 821の最 小評価値を、最小評価値よりも小さいと判断された評価値 DFDに書き換え、ステップ S960に進み、メモリ 821の補償候補ベクトルを、その最小評価値の動きベクトルに書 き換え、ステップ S 961に進む。
[0446] 一方、ステップ S955において、判定結果フラグメモリ 911の周辺画素の判定結果 フラグが O(False)であると、補償処理部 811は、選択した周辺画素に信頼度が高い動 きベクトルがな 、(検出されて 、な 、)と判断し、ステップ S956乃至 S960の処理をス キップし、ステップ S961に進む。
[0447] 補償処理部 811は、ステップ S961において、着目画素の周辺 8画素すべてに対し て処理が終了した力否かを判断し、着目画素の周辺 8画素すべてに対して処理が終 了していないと判断した場合、ステップ S954に戻り、次の周辺画素を選択し、それ以 降の処理を繰り返す。また、補償処理部 811は、ステップ S961において、着目画素 の周辺 8画素すべてに対して処理が終了したと判断した場合、ベクトル補償処理を終 了し、図 66のステップ S944に戻る。
[0448] 以上のように、勾配法の演算を用いて、動きベクトルを検出する際に、演算ブロック 内に、有効画素が少ないと判断された信頼度が低い (すなわち、確力もしくない)動き ベクトルが検出された画素に関しても、動き相関があることを利用して、その画素の周 辺の動きベクトルの中から、評価値 DFDに基づぐ最も信頼度がある(すなわち、確 力もしい)動きベクトルを得ることができる。これにより、動きベクトル検出の精度が向 上する。
[0449] さらに、上述した検出補償処理により信頼度が高い動きベクトルが検出された画素 の判定結果フラグを l(True)に書き換えるようにし、検出補償処理により検出された動 きベクトルも、次の画素の補償候補ベクトルとして用いるようにしたので、オブジェクト 内でほぼ同じ動きをする画素には、ほぼ同一の動きベクトルが選択されるようになり、 その結果、誤りの少ない安定した動きベクトルを得ることができる。
[0450] また、動きベクトルを求める着目画素について、すでに検出されている動きベクトル の評価値 DFDを予め算出し、最小評価値としてメモリに保持しておくことにより、すべ ての補償候補ベクトル評価値 DFDを一度に算出し、その中から最小の評価値 DFD を選択する場合よりも、時間とリソースを効率的に使用することができる。
[0451] なお、上述したベクトル検出部 52においては、勾配法を用いて検出された動きべク トルの検出補償処理を説明したが、この検出補償処理は、ブロックマッチング法を用 V、て、動きベクトルを検出する場合にも適用することができる。
[0452] 次に、ブロックマッチング法を用いて検出された動きベクトルに対する検出補償処 理を説明する。
[0453] 図 68は、図 61のベクトル検出部 52の構成を示すブロック図である。図 68に構成を 示すベクトル検出部 52は、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画像 のフレーム t+ 1を用いて、ブロックマッチング法を用いて、動きベクトルを検出する。 この動きベクトルを検出する処理は、複数の画素力 なる所定のブロック毎に実行さ れる。
[0454] プリフィルタ 102—1および 102— 2は、ローパスフィルタやガウシアンフィルタにより 構成され、それぞれ、入力される画像のフレーム tおよびフレーム t+ 1のノイズ成分を 除去し、ブロックマッチング演算部 951に出力する。
[0455] ブロックマッチング演算部 951は、プリフィルタ 102— 1および 102— 2を介して入力 されるフレーム tおよびフレーム t+ 1を用いて、所定のブロック毎に、ブロックマツチン グ法により、動きベクトル Vを算出し、算出した動きベクトル Vを検出ベクトルメモリ 53 に記憶する。なお、ブロックマッチング法では、動きベクトルの評価値 DFDを計算し ながら、評価値 DFDの最小な動きベクトルを決定している。したがって、ブロックマツ チング演算部 951は、算出された動きベクトル Vを検出ベクトルメモリ 53に記憶すると ともに、動きベクトル Vの評価値 DFDを、ベクトル評価部 952に出力する。
[0456] ベクトル評価部 952は、ブロックマッチング演算部 951より入力された動きベクトル V の評価値 DFDが所定のしき 、値よりも小さ 、か否かを判断し、動きベクトル Vの評価 値 DFDが所定のしき 、値より小さ 、と判断した場合、動きベクトル Vの信頼度が高 ヽ (すなわち、この動きベクトルが確力もしい動きベクトル)として、判定結果フラグメモリ 911に l(True)を書き込む。また、ベクトル評価部 952は、入力された動きベクトル V の評価値 DFDが所定のしき 、値以上であると判断した場合、動きベクトル Vの信頼 度が低い(すなわち、この動きベクトルが確力もしくない)として、判定結果フラグメモリ 911に O(False)を書き込む。
[0457] 次に、図 69のフローチャートを参照して、図 68のベクトル検出部 52の動きベクトル 検出処理を実行する。なお、この動きベクトル検出処理は、図 64のステップ S902の 動きベクトル検出処理の他の例である。
[0458] ベクトル検出部 52には、入力される時刻 tの画像のフレーム tと、時刻 t+ 1の画像の フレーム t+ 1が入力される。ブロックマッチング演算部 951は、プリフィルタ 102— 1 および 102— 2を介してフレーム tおよびフレーム t+ 1が入力されると、ステップ S981 において、フレーム t上の処理の対象となるブロックを、着目ブロックとして選択し、ス テツプ S982に進む。なお、フレーム上においては、左上のブロックからラスタスキャン 順に処理が実行される。
[0459] ブロックマッチング演算部 951は、ステップ S982において、プリフィルタ 102— 1お よび 102— 2を介して入力されたフレーム tおよびフレーム t+ 1を用いて、ブロックマ ツチング法により動きベクトル検出処理を行い、動きベクトルを算出し、ステップ S983 に進み、算出された動きベクトルを、検出ベクトルメモリ 53に出力し、記憶する。このと き、ブロックマッチング演算部 951は、算出された動きベクトルの評価値 DFDを、ベタ トル評価部 952に出力し、ステップ S984に進む。
[0460] ベクトル評価部 952は、ステップ S984において、ブロックマッチング演算部 951か ら入力された動きベクトル Vの評価値 DFDが所定のしき 、値よりも小さ 、か否かを比 較判断し、ステップ S985に進み、比較判断の結果(に基づいた値)を、判定結果フラ グメモリ 911【こ書さ込み、ステップ S986【こ進む。すなわち、ベクトノレ評価咅 952ίま、 入力された動きベクトル Vの評価値 DFDが所定のしき 、値より小さ 、と判断した場合 、動きベクトル Vの信頼度が高い (確からしい)として、判定結果フラグメモリ 911に 1 (True)を書き込む。また、ベクトル評価部 952は、入力された動きベクトル Vの評価値 DFDが所定のしき 、値以上であると判断した場合、動きベクトル Vの信頼度が低 ヽ( 確からしくない)として、判定結果フラグメモリ 911に O(False)を書き込む。
[0461] ステップ S986において、ブロックマッチング演算部 951は、フレーム tにおいて、す ベてのブロックの処理が終了したか否かを判断し、すべてのブロックの処理が終了し ていないと判断した場合、ステップ S981に戻り、それ以降の処理を繰り返す。また、 ステップ S986において、ブロックマッチング演算部 951は、フレーム tにおいて、すべ てのブロックの処理が終了したと判断した場合、すなわち、フレーム t上のすべてのブ ロックにおいて、動きベクトル Vが検出されたと判断し、動きベクトル検出処理を終了 する。
[0462] なお、以上のブロックマッチング法での動きベクトル検出処理は、プリフィルタ 102 —1および 102— 2を介さずにも実行することができる。
[0463] 図 70は、図 61のベクトル検出部 52の構成の他の例を示すブロック図である。なお 図 70のベクトル検出部 52は、プリフィルタ 102— 1および 102— 2が削除されている 点を除いて、図 68のベクトル検出部 52と同様の構成をしており、その説明は、繰り返 しになるので、適宜省略する。すなわち、ブロックマッチング法においては、プリフィル タがなくても動きベクトルを検出することができる。
[0464] したがって、図 70の例においては、ブロックマッチング演算部 951は、入力されるフ レーム tおよびフレーム t+ 1を用いて、所定のブロック毎に、ブロックマッチング法によ り、動きベクトル Vを算出し、算出した動きベクトル Vを検出ベクトルメモリ 53に記憶す るとともに、動きベクトル Vの評価値 DFDを、ベクトル評価部 952に出力する。
[0465] ベクトル評価部 952は、ブロックマッチング演算部 951より入力された動きベクトル V の評価値 DFDが所定のしき 、値よりも小さ 、か否かを判断し、動きベクトル Vの評価 値 DFDが所定のしき 、値より小さ 、と判断した場合、動きベクトル Vの信頼度が高 ヽ として、判定結果フラグメモリ 911に l(True)を書き込む。また、ベクトル評価部 952は 、入力された動きベクトル Vの評価値 DFDが所定のしき 、値以上であると判断した場 合、動きベクトル Vの信頼度が低い (すなわち、この動きベクトルが確からしくない)と して、判定結果フラグメモリ 911に O(False)を書き込む。
[0466] なお、図 70のベクトル検出部 52の動きベクトル検出処理は、図 69を参照して上述 した図 68のベクトル検出部 52の動きベクトル検出処理と、基本的に同じ処理を行うた め、その説明は、繰り返しになるので省略する。
[0467] 以上のように、ブロックマッチング法により検出された動きベクトルの評価値 DFDと 、所定のしきい値との比較判断の結果に基づいて、その画素に検出されている動き ベクトルの信頼度が高 、か低!、かのフラグを、判定結果フラグメモリ 911に記憶する ようにしたので、後段の検出補償部 912は、判定結果フラグメモリ 911を見ることによ り、その画素の動きベクトルの評価値 DFDに基づぐ信頼度の高さを知ることができ、 信頼度が低 ヽ場合には、ベクトル補償処理を実行することができる。
[0468] なお、上記説明にお 、ては、ブロックマッチング法を用いて説明した力 勾配法に より検出された動きベクトルの評価値 DFDを用いて、その画素に検出されている動き ベクトルの信頼度が高 、か低!、かのフラグを、判定結果フラグメモリ 911に記憶する ようにしてもよいし、動きベクトル検出の方法は、上記 2つの方法に限らず、本発明の ベクトル補償処理は、その他の動きベクトル検出方法に対しても適用することができ る。 [0469] 以上のように、例えば、ベクトル割付部 54にお 、て割り付けられな力つた画素、また は、ベクトル検出部 52において検出されなかった画素など、何らかの処理において 動きベクトルが求められな力つた画素に対して、動き相関があることを利用して、その 画素の周辺の動きベクトルの中力も最も信頼度がある、確からしい動きベクトルを得る ことができる。これにより、従来のベクトル補償処理を実行しない場合よりも、元フレー ムにお 、て確からし 、動きベクトルが検出され、内挿フレームに確からし 、動きべタト ルが割り付けられるので、動きベクトルの検出精度および動きベクトルの割付精度が 向上する。その結果、後段の画像補間処理において、生成される画像の品質が悪く なることが抑制され、フレーム周波数変換の処理の精度を向上させることができる。
[0470] なお、本実施の形態においては、動きベクトルを選択する際の評価値として、差分 絶対値和である評価値 DFDを用いて説明したが、評価値 DFDに限定されず、動き ベクトルの信頼度を評価するものであれば、他のものを用いるようにしてもよ!、。
[0471] また、本実施の形態においては、各処理を行うブロックを、例えば、 8画素 X 8画素 や 9画素 X 9画素などにより構成するようにして説明した力 これらは、一例であり、各 処理を行うブロックを構成する画素は、上記画素数に限定されな 、。
[0472] さらに、本実施の形態においては、 24P信号力も 60P信号への信号変換を例に、 説明を行ったが、本発明は、例えば、動画像のフレーム周波数変換として、インター レース信号や、他のフレームレート変換にも適用することができる。
[0473] 上述した一連の処理は、ハードウェアにより実行させることもできる力 ソフトウェア により実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、 そのソフトウェアを構成するプログラム力 専用のハードウェアに組み込まれているコ ンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行 することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒 体からインストールされる。
[0474] コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプロ グラムを格納するプログラム格納媒体は、図 1に示されるように、磁気ディスク 31 (フレ キシブルディスクを含む)、光ディスク 32 (CD- ROM(Compact Disc-Read Only Memory), DVD(Digital Versatile Disc)を含む)、光磁気ディスク 33 (MD(Mini- Disc) ( 商標)を含む)、もしくは半導体メモリ 34などよりなるリムーバブル記録媒体 (パッケー ジメディア)、または、プログラムが一時的もしくは永続的に格納される ROM12など により構成される。
なお、本明細書において、フローチャートに示されるステップは、記載された順序に 従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、 並列的あるいは個別に実行される処理をも含むものである。

Claims

請求の範囲
[1] 第 1のフレーム上の動きベクトルを検出し、検出された前記動きベクトルに基づいて 、第 2のフレーム上の画素値を生成する画像処理装置にお!/、て、
前記第 1のフレームまたは前記第 2のフレーム上における 1または複数の画素でな る着目領域に、信頼度が高 、動きベクトルが設定されて 、る力否かを判断するべタト ル判断手段と、
前記ベクトル判断手段により前記着目領域の少なくとも一部に、前記信頼度が高い 動きベクトルが設定されて 、な 、と判断された場合、前記着目領域の近傍にある周 辺画素に取得されている動きベクトルのうち、最も信頼度が高い動きベクトルを、前記 着目領域の少なくとも一部の動きベクトルとして設定するべ外ル設定手段と を備えることを特徴とする画像処理装置。
[2] 前記第 1のフレーム上の動きベクトルを検出するベクトル検出手段と、
前記ベクトル検出手段により前記第 1のフレーム上における前記着目領域に検出さ れた前記動きベクトルの信頼度の高さを表す評価値を演算する信頼度演算手段と をさらに備え、
前記ベクトル判断手段は、前記信頼度演算手段による演算結果に基づいて、前記 第 1のフレーム上の前記着目領域に、信頼度が高い動きベクトルが設定されているか 否かを判断し、
前記ベクトル設定手段は、前記第 1のフレームの前記着目領域の近傍にある周辺 画素に検出されている動きベクトルのうち、最も信頼度が高い動きベクトルを、前記着 目領域の動きベクトルとして設定する
ことを特徴とする請求項 1に記載の画像処理装置。
[3] 前記第 1のフレームにおいて、前記動きベクトルを検出するための演算の対象とな る演算ブロック内の画素力 前記動きベクトルの検出に有効である力否かを判断する 有効画素判断手段と、
前記有効画素判断手段により有効であると判断された画素を用いた演算により、前 記動きベクトルを検出する動きベクトル検出手段と
をさらに備え、 前記ベクトル判断手段は、前記有効画素判断手段による判断結果に基づいて、前 記第 1のフレーム上の前記着目領域に、信頼度が高い動きベクトルが設定されてい るか否かを判断し、
前記ベクトル設定手段は、前記第 1のフレームの前記着目領域の近傍にある周辺 画素に検出されている動きベクトルのうち、最も信頼度が高い動きベクトルを、前記着 目領域の少なくとも一部の動きベクトルとして設定する
ことを特徴とする請求項 1に記載の画像処理装置。
[4] 前記第 1のフレームにおいて検出された前記動きベクトルを、前記第 2のフレーム上 の 1または複数の画素でなる着目領域の少なくとも一部に割り付けるベクトル割付手 段をさらに備え、
前記ベクトル判断手段は、前記ベクトル割付手段による前記動きベクトルの割付結 果に基づいて、前記第 2のフレーム上の前記着目領域に、信頼度の高い動きべタト ルが割り付けられて 、る力否かを判断し、
前記ベクトル設定手段は、前記第 2のフレームの前記着目領域の近傍にある周辺 画素に割り付けられている動きベクトルのうち、最も信頼度が高い動きベクトルを、前 記着目領域の少なくとも一部の動きベクトルとして設定する
ことを特徴とする請求項 1に記載の画像処理装置。
[5] 前記ベクトル設定手段は、前記第 2のフレームの前記着目領域の近傍にある周辺 画素に割り付けられている動きベクトルのうち、最も信頼度が高い動きベクトルを、前 記着目領域のうち、前記ベクトル判断手段により前記信頼度の高いベクトルが割り付 けられて 、な 、と判断された領域の動きベクトルとして設定する
ことを特徴とする請求項 4に記載の画像処理装置。
[6] 前記ベクトル判断手段により前記着目領域に、前記信頼度が高い動きベクトルが取 得されて!/ヽな ヽと判断された場合、前記着目領域の近傍にある周辺画素に取得され ている動きベクトルを、前記着目領域の動きベクトルの候補ベクトルとして設定する候 補ベクトル設定手段をさらに備え、
前記候補ベクトル設定手段は、前記周辺画素において、前記着目領域よりも時間 的に先に前記ベクトル設定手段により設定された動きベクトルも、前記着目領域の少 なくとも一部の動きベクトルの候補ベクトルとして設定する
ことを特徴とする請求項 1に記載の画像処理装置。
[7] 前記候補ベクトル設定手段は、前記着目領域の近傍にある周辺画素に取得されて いる動きベクトルを、前記着目領域のうち、前記ベクトル判断手段により前記信頼度 の高 、ベクトルが割り付けられて 、な 、と判断された領域の前記候補ベクトルとして 設定する
ことを特徴とする請求項 6に記載の画像処理装置。
[8] 第 1のフレーム上の動きベクトルを検出し、検出された前記動きベクトルに基づいて 、第 2のフレーム上の画素値を生成する画像処理装置の画像処理方法にぉ 、て、 前記第 1のフレームまたは前記第 2のフレーム上における 1または複数の画素でな る着目領域に、信頼度が高 、動きベクトルが設定されて 、る力否かを判断するべタト ル判断ステップと、
前記ベクトル判断ステップの処理により前記着目領域の少なくとも一部に、前記信 頼度が高 、動きベクトルが設定されて 、な 、と判断された場合、前記着目領域の近 傍にある周辺画素に取得されている動きベクトルのうち、最も信頼度が高い動きべク トルを、前記着目領域の少なくとも一部の動きベクトルとして設定するベクトル設定ス テツプと
を含むことを特徴とする画像処理方法。
[9] 第 1のフレーム上の動きベクトルを検出し、検出された前記動きベクトルに基づいて 、第 2のフレーム上の画素値を生成する処理をコンピュータに行わせるプログラムが 記録される記録媒体であって、
前記第 1のフレームまたは前記第 2のフレーム上における 1または複数の画素でな る着目領域に、信頼度が高 、動きベクトルが設定されて 、る力否かを判断するべタト ル判断ステップと、
前記ベクトル判断ステップの処理により前記着目領域の少なくとも一部に、前記信 頼度が高 、動きベクトルが設定されて 、な 、と判断された場合、前記着目領域の近 傍にある周辺画素に取得されている動きベクトルのうち、最も信頼度が高い動きべク トルを、前記着目領域の少なくとも一部の動きベクトルとして設定するベクトル設定ス テツプと
を含むことを特徴とするプログラムが記録される記録媒体。
第 1のフレーム上の動きベクトルを検出し、検出された前記動きベクトルに基づいて 、第 2のフレーム上の画素値を生成する処理をコンピュータに行わせるプログラムで あって、
前記第 1のフレームまたは前記第 2のフレーム上における 1または複数の画素でな る着目領域に、信頼度が高 、動きベクトルが設定されて 、る力否かを判断するべタト ル判断ステップと、
前記ベクトル判断ステップの処理により前記着目領域の少なくとも一部に、前記信 頼度が高 、動きベクトルが設定されて 、な 、と判断された場合、前記着目領域の近 傍にある周辺画素に取得されている動きベクトルのうち、最も信頼度が高い動きべク トルを、前記着目領域の少なくとも一部の動きベクトルとして設定するベクトル設定ス テツプと
を含むことを特徴とするプログラム。
PCT/JP2005/006940 2004-04-09 2005-04-08 画像処理装置および方法、記録媒体、並びにプログラム WO2005098754A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006512131A JP4692846B2 (ja) 2004-04-09 2005-04-08 画像処理装置および方法、記録媒体、並びにプログラム
KR1020067020965A KR101157053B1 (ko) 2004-04-09 2005-04-08 화상 처리 장치 및 방법, 기록 매체, 및 프로그램
EP05728528A EP1734480A1 (en) 2004-04-09 2005-04-08 Image processing device and method, recording medium, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-116011 2004-04-09
JP2004116011 2004-04-09

Publications (1)

Publication Number Publication Date
WO2005098754A1 true WO2005098754A1 (ja) 2005-10-20

Family

ID=35125291

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/006940 WO2005098754A1 (ja) 2004-04-09 2005-04-08 画像処理装置および方法、記録媒体、並びにプログラム

Country Status (6)

Country Link
US (1) US7667778B2 (ja)
EP (1) EP1734480A1 (ja)
JP (1) JP4692846B2 (ja)
KR (1) KR101157053B1 (ja)
CN (1) CN1961338A (ja)
WO (1) WO2005098754A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008011439A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 補間画像生成装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070076973A1 (en) * 2005-09-30 2007-04-05 Walid Ali Method and apparatus for detecting and deblocking variable-size grid artifacts in coded video
US8472524B2 (en) * 2006-04-03 2013-06-25 Intel Corporation Motion compensated frame rate conversion with protection against compensation artifacts
JP5023805B2 (ja) * 2007-05-16 2012-09-12 ソニー株式会社 画像処理装置および画像処理方法、並びにプログラム
US8050325B2 (en) * 2007-06-22 2011-11-01 Samsung Electronics Co., Ltd. System and method for boundary motion vector correction in motion compensated frame rate
JP4375452B2 (ja) * 2007-07-18 2009-12-02 ソニー株式会社 画像処理装置、画像処理方法、及びプログラム、並びに表示装置
US8861603B2 (en) * 2007-08-28 2014-10-14 Samsung Electronics Co., Ltd. System and method for motion vector collection based on K-means clustering for motion compensated interpolation of digital video
WO2009034488A2 (en) * 2007-09-10 2009-03-19 Nxp B.V. Method an apparatus for line based vertical motion estimation and compensation
US20090110281A1 (en) * 2007-10-29 2009-04-30 Kabushiki Kaisha Toshiba Image forming apparatus, image processing apparatus, and image processing method
WO2009072273A1 (ja) * 2007-12-04 2009-06-11 Panasonic Corporation 映像信号処理装置
JP4309453B2 (ja) * 2007-12-26 2009-08-05 株式会社東芝 補間フレーム生成装置、補間フレーム生成方法及び放送受信装置
JP5088164B2 (ja) * 2008-02-21 2012-12-05 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
TWI470578B (zh) * 2008-06-26 2015-01-21 Mstar Semiconductor Inc 計算用於待插補影像區塊之目標移動向量的影像處理方法及其相關裝置
JP4385077B1 (ja) * 2008-08-27 2009-12-16 三菱電機株式会社 動きベクトル検出装置および画像処理装置
TWI490819B (zh) * 2009-01-09 2015-07-01 Mstar Semiconductor Inc 影像處理方法及其裝置
JP2010187116A (ja) * 2009-02-10 2010-08-26 Toshiba Corp 動画処理装置
US8824558B2 (en) * 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
US8891831B2 (en) * 2010-12-14 2014-11-18 The United States Of America, As Represented By The Secretary Of The Navy Method and apparatus for conservative motion estimation from multi-image sequences
JP5863273B2 (ja) * 2011-05-02 2016-02-16 キヤノン株式会社 画像処理装置、制御方法及びプログラム
WO2013100791A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Method of and apparatus for scalable frame rate up-conversion
EP3448032B1 (en) * 2013-03-25 2022-10-19 Imax Corporation Enhancing motion pictures with accurate motion information
JP6236259B2 (ja) * 2013-09-06 2017-11-22 株式会社東芝 画像処理装置、画像処理方法、及び画像処理プログラム
GB2527315B (en) * 2014-06-17 2017-03-15 Imagination Tech Ltd Error detection in motion estimation
EP3054685A1 (en) * 2015-02-04 2016-08-10 Thomson Licensing Hierarchical motion estimation and video segmentation in presence of more than one moving object in a block
KR102525033B1 (ko) * 2015-11-11 2023-04-24 삼성전자주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
CN105915835B (zh) * 2016-02-05 2018-10-19 四川长虹电器股份有限公司 一种可硬件实现的帧频提升方法
EP3648059B1 (en) * 2018-10-29 2021-02-24 Axis AB Video processing device and method for determining motion metadata for an encoded video
CN113766313B (zh) * 2019-02-26 2024-03-05 深圳市商汤科技有限公司 视频数据处理方法及装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07135663A (ja) * 1993-09-17 1995-05-23 Oki Electric Ind Co Ltd 動きベクトル検出方法および動きベクトル検出装置
JPH1114741A (ja) * 1997-06-11 1999-01-22 Samsung Electron Co Ltd ターゲット追跡方法及び装置
JP2003189258A (ja) * 2001-12-13 2003-07-04 Sony Corp 画像信号処理装置及び方法
JP2003224854A (ja) * 2002-01-29 2003-08-08 Hitachi Ltd 動きベクトル検出装置及び画像処理装置並びにコンピュータ・ソフトウエア

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60158786A (ja) 1984-01-30 1985-08-20 Kokusai Denshin Denwa Co Ltd <Kdd> 画像動き量検出方式
US5200820A (en) * 1991-04-26 1993-04-06 Bell Communications Research, Inc. Block-matching motion estimator for video coder
DE4344924A1 (de) 1993-12-30 1995-08-10 Thomson Brandt Gmbh Verfahren und Vorrichtung zur Bewegungsschätzung
GB2305569B (en) * 1995-09-21 1999-07-21 Innovision Res Ltd Motion compensated interpolation
EP0883298A3 (en) 1997-06-04 2000-03-29 Hitachi, Ltd. Conversion apparatus for image signals and TV receiver

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07135663A (ja) * 1993-09-17 1995-05-23 Oki Electric Ind Co Ltd 動きベクトル検出方法および動きベクトル検出装置
JPH1114741A (ja) * 1997-06-11 1999-01-22 Samsung Electron Co Ltd ターゲット追跡方法及び装置
JP2003189258A (ja) * 2001-12-13 2003-07-04 Sony Corp 画像信号処理装置及び方法
JP2003224854A (ja) * 2002-01-29 2003-08-08 Hitachi Ltd 動きベクトル検出装置及び画像処理装置並びにコンピュータ・ソフトウエア

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008011439A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 補間画像生成装置

Also Published As

Publication number Publication date
KR20070008628A (ko) 2007-01-17
KR101157053B1 (ko) 2012-06-21
EP1734480A1 (en) 2006-12-20
JP4692846B2 (ja) 2011-06-01
JPWO2005098754A1 (ja) 2008-02-28
CN1961338A (zh) 2007-05-09
US7667778B2 (en) 2010-02-23
US20050271144A1 (en) 2005-12-08

Similar Documents

Publication Publication Date Title
WO2005098754A1 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
KR101118982B1 (ko) 화상 처리 장치 및 방법, 기록 매체, 및 프로그램
KR101118981B1 (ko) 화상 처리 장치 및 방법, 기록 매체, 및 프로그램
JP4752407B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
WO2007029640A1 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP4512983B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP4432714B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP4655214B2 (ja) 画像処理装置および方法、プログラム並びに記録媒体
JP4512982B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP4512984B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP4655217B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP4650682B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP4512985B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP2007110461A (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP4835075B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP4655216B2 (ja) 画像処理装置および方法、並びにプログラム
JP4655215B2 (ja) 画像処理装置および方法、並びにプログラム
KR20180009819A (ko) 중복 영역 제거 기반 헤드 마운티드 디스플레이 영상 보간 기법

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

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: 2006512131

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2005728528

Country of ref document: EP

Ref document number: 1020067020965

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWE Wipo information: entry into national phase

Ref document number: 200580017112.7

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2005728528

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020067020965

Country of ref document: KR