WO2007091213A2 - Video processor comprising a motion estimator of the recursive type - Google Patents

Video processor comprising a motion estimator of the recursive type Download PDF

Info

Publication number
WO2007091213A2
WO2007091213A2 PCT/IB2007/050392 IB2007050392W WO2007091213A2 WO 2007091213 A2 WO2007091213 A2 WO 2007091213A2 IB 2007050392 W IB2007050392 W IB 2007050392W WO 2007091213 A2 WO2007091213 A2 WO 2007091213A2
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
motion
class
motion vectors
vectors
Prior art date
Application number
PCT/IB2007/050392
Other languages
French (fr)
Other versions
WO2007091213A3 (en
Inventor
Aleksandar Beric
Ramanathan Sethuraman
Original Assignee
Koninklijke Philips Electronics N.V.
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 Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Publication of WO2007091213A2 publication Critical patent/WO2007091213A2/en
Publication of WO2007091213A3 publication Critical patent/WO2007091213A3/en

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Definitions

  • Video processor comprising a motion estimator of the recursive type.
  • An aspect of the invention relates to a video processor that comprises a motion estimator of the recursive type.
  • the video processor may be, for example, a video display driver that causes a display device to display a video input signal, which the display driver receives.
  • Other aspects of the invention relate to a method of video processing, a computer program product for a programmable processor, and a video display system.
  • motion-compensated filtering for noise reduction
  • motion-compensated interpolation for video format conversion
  • picture-rate up- conversion and de-interlacing
  • motion-compensated prediction for coding
  • the motion information is generally in the form of motion vectors.
  • a motion vector belongs to a particular block of pixels in a particular picture from a sequence of pictures, which constitutes a video.
  • the motion vector points to a similar block of pixels in a neighboring picture.
  • the motion vector represents a spatial displacement of the similar block of pixels to which the motion vector points with respect to the block of pixels to which the motion vector belongs.
  • Motion estimation designates the process of extracting motion information, such as motion vectors, from a video. Motion estimation requires a considerable computational effort. This can be demonstrated with reference to a block-based type of algorithm, which type of algorithm is currently widely used.
  • a search in a neighboring picture is made on behalf of a current block of pixels in a current picture.
  • the search aims to find the most similar block of pixels in the neighboring picture.
  • the search may be a so-called full search. In that case, a similarity metric needs to be calculated for each different block of pixels in the neighboring picture. There may be numerous different blocks of pixels for which this calculation needs to be made. This is particularly true for high resolution video applications where pictures comprise several millions of pixels.
  • 3-D RS three- dimensional recursive search
  • a relatively small set of candidate vectors is formed on the basis of a relatively small set of motion vectors that have previously been established for respective blocks of pixels having a predefined spatio temporal position with regard to the current block of pixels for which the motion vector needs to be established.
  • the 3-D RS algorithm examines the relatively small set of candidate vectors and retains a best vector: the candidate vector that provides the best similarity measure.
  • International patent application published with the reference W02004/064403 describes a method for recursively estimating local vectors from at least one picture taken from an image sequence.
  • the method comprises the four following steps in order to reduce computational complexity without deteriorating accuracy.
  • a first set of candidate vectors is generated under at least partial use of recursion.
  • Candidate vectors from the first set of candidate vectors are selected according to a first criterion, the selected candidate vectors forming a smaller second set of candidate vectors.
  • the best vectors from the second set of candidate vectors are determined according to a second criterion. These best vectors are assigned to a group of pixels that is related to the group of pixels for which the candidate vectors were evaluated.
  • the invention takes the following points into consideration.
  • the candidate vectors of the 3-D RS algorithm described hereinbefore are entirely based on a relatively small set of motion vectors that have previously been established for a few predefined spatiotemporal positions in an immediate vicinity of a spatiotemporal position for which a motion vector needs to be established. It may occur relatively frequently that these previously established motion vectors, which the 3-D RS algorithm takes into account, are quite similar. Consequently, it may frequently occur that the candidate vectors are quite similar. Examining all these candidate vectors can be considered as a waste of computational effort in the sense that if fewer candidate vectors were examined, or even only one, this would produce a sufficiently precise motion vector.
  • motion estimation of the recursive type establishes a motion vector field, which comprises respective motion vectors for respective spatial positions in a picture, in the following manner.
  • At least a portion of the respective motion vectors in the motion vector field are classified so as to establish at least one class of motion vectors.
  • At least one class representing motion vector is generated.
  • a class representing motion vector is representative of a particular class of motion vectors.
  • a new motion vector for the motion vector field is established on the basis of the at least one class representing motion vector.
  • the invention allows taking into account a set of motion vectors that have previously been established for a relatively great variety of spat io temporal positions. There is a relatively high probability that one of these motion vectors is close to the best vector that would be obtained if a full search were carried out.
  • the set of motion vectors that is taken into account will comprise a certain degree of redundancy in the sense that various motion vectors may have a similar property.
  • the classification reduces this redundancy.
  • the classification may group motion vectors that have a similar property so as to form a class of motion vectors. Only a class representing motion vector, which represents the motion vectors in a class, needs to be examined.
  • this single examination will provide a result that correctly reflects the respective results that would be obtained if all the motion vectors in the class were examined. Consequently, there is a high degree of probability that a precise motion vector is found with modest computational effort. Stated differently, a precise motion vector can be found in a relatively short time. This allows high-quality video processing.
  • the set of previously established motion vectors that are taken into account for the purpose of recursive motion estimation can be regarded as a collection of suggestions based on previous experiences to solve a given problem. Similar suggestions are bundled so as to obtain different bundles of suggestions, which are sufficiently different from each other. A representative suggestion is established for each bundle. The respective representative suggestions are examined instead of individually examining each suggestion that has been made. Accordingly, a solution to the problem is formulated, which may be a slight adaptation of one of the representative suggestions that finally gave the best result. Accordingly, the collection of suggestions may be relatively large without this leading to a huge examination burden. The larger the collection of suggestions is, the more probable it is that the solution found on the basis thereof is a good one.
  • An implementation of the invention advantageously comprises one or more of following additional features, each of which contributes to obtaining precise motion vectors or to reducing computational effort, or both.
  • Associated data is taken into account for the purpose of classifying motion vectors .
  • the associated data may comprise picture data for the respective spatial positions to which the respective motion vectors that are classified belong.
  • the associated data may also comprise data that results from respective motion compensations based on the respective motion vectors that are classified.
  • a median operation is applied to the motion vectors in a class of motion vectors so as to establish the class representative motion vector for the class of motion vectors.
  • a classification criterion is dynamically adjusted.
  • a readout window module forms a set of motion vectors, which are taken from the motion vector field, on the basis of the spatial position for which the new motion vector has to be established.
  • the set of motion vectors is subsequently subject to classification.
  • a best vector search is carried out in a vicinity of a class representative motion vector so as to establish a best motion vector. Respective best vector searches may be carried out for respective class representative motion vectors so as to obtain respective best vectors. One of these best vectors provides the highest degree of similarity between a picture portion to which the best vector points and a picture portion for which the new motion vector has to be established. This best vector is selected as the new motion vector.
  • FIG. 1 is a block diagram that illustrates a video display system.
  • FIG. 2 is a pictorial diagram that illustrates motion information for a picture that the video display system processes.
  • FIG. 3 is a pictorial diagram that illustrates a motion vector field built by a motion estimator, which forms part of the video display system.
  • FIG. 4 is a functional diagram that illustrates the motion estimator.
  • FIG. 1 illustrates a video display system VDS.
  • the video display system VDS comprises a video display driver VDD, a display device DPL, and a remote control device RCD.
  • the display device DPL may be, for example, a flat panel display of the liquid crystal type.
  • the video display driver VDD comprises an input circuit INP, a video enhancement circuit VXC, an output circuit OUT, and a controller CTRL.
  • the video enhancement circuit VXC comprises a motion-based processing module MBP and a motion estimator ME.
  • a single integrated circuit may form the video enhancement circuit VXC. This integrated circuit may further comprise at least a portion of the input circuit INP.
  • the video display driver VDD basically operates as follows. Let it be assumed that the video display driver VDD receives various input video signals VA, VB, VC from various video sources, which are not shown. A user may select a particular video source on his or her remote control device RCD. The remote control device RCD sends to the controller CTRL a command that indicates the particular video source to be selected. In response, the controller CTRL causes the input circuit INP to select that particular video source.
  • the input circuit INP applies an internal video signal VI to the video enhancement circuit VXC.
  • the internal video signal VI corresponds with the input video signal from the video source that the user has selected.
  • the input circuit INP may further detect one or more characteristics of the internal video signal VI and signal these characteristics to the controller CTRL. For example, the input circuit INP may detect that the internal video signal VI is an interlaced video signal that has a relatively low picture rate.
  • the motion estimator ME derives motion information MI from the internal video signal VI.
  • the motion-based processing module MBP processes the internal video signal VI on the basis of this motion information MI. Such processing may include operations such as, for example, de-interlacing and picture-rate up-conversion, which allow an improved display quality.
  • the controller CTRL may instruct the motion-based processing module MBP to carry out one or more operations on the basis of the characteristics of the internal video signal VI, which the input circuit INP has detected.
  • the motion-based processing module MBP applies an enhanced internal video signal VIX to the output circuit OUT.
  • the enhanced internal video signal VIX may be, for example, a progressive scan video signal that has a relatively high picture rate.
  • the output circuit OUT provides a display driver signal DDS in response to the enhanced internal video signal VIX.
  • the output circuit OUT may carry out various signal processing operations, such as, for example, amplification, level shifting, bias voltage generation, and synchronization.
  • the display device DPL which receives the display driver signal DDS, displays the input video signal that the user has selected.
  • FIG. 2 illustrates motion information for a picture in the internal video signal VI.
  • the picture is divided into various blocks of pixels B.
  • Each block of pixels has a motion vector MV.
  • This motion vector points to a block of pixels in a neighboring picture and indicates a spatial displacement of the block of pixels to which the motion vector points with respect to the block of pixels to which the motion vector belongs.
  • the motion vector indicates a displacement, i.e. a motion, of that particular object. More specifically, the motion vector has an orientation that indicates a direction of movement and a length that indicates a speed of movement.
  • the respective motion vectors for the respective block of pixels in a picture constitute a so-called motion vector field for that picture.
  • the picture illustrated in FIG. 2 comprises two objects 01, 02 and a background BG.
  • the objects move with respect to the background BG.
  • the background BG is also moving.
  • the respective motion vectors for the respective blocks of pixels in the picture indicate this. More specifically, object Ol comprises an entire block of pixels. The motion vector for that block of pixels indicates that object moves in a leftward direction with a moderate speed.
  • Object 02 comprises four entire blocks of pixels. The respective motion vectors for these four blocks of pixels indicate that object moves in an upper rightward direction with a relatively high speed.
  • the remaining blocks of pixels belong to the background BG. The respective motion vectors for these remaining blocks of pixels indicates that the background BG is moving in an upper leftward direction with a relatively low speed.
  • FIG. 3 illustrates that the motion estimator ME builds a motion vector field on a block by block basis in accordance with a predefined pattern.
  • the predefined pattern is a row wise scan that starts at an upper row of blocks and ends with a lower row of blocks in a picture and that goes from the leftmost block to the rightmost block in a row.
  • Broken arrows in FIG. 3 illustrate the predefined pattern.
  • the motion estimator ME establishes a motion vector for a current block of pixels CB in a current picture I[n], which is subsequent to the picture illustrated in FIG. 2.
  • the picture illustrated in FIG. 2 constitutes a previous picture I[n-1].
  • the motion vector field comprises motion vectors that belong to the previous picture I[n-1] and the current picture I[n] for which the motion estimator ME is in the process of establishing motion vectors.
  • the respective motion vectors for the respective block of pixels that have a higher row position than the current block of pixels CB belong to the current picture I[n].
  • the respective motion vectors for the respective block of pixels that have a lower row position than the current block of pixels CB still belong to the previous picture I[n-1].
  • the motion vectors of the blocks of pixels that are left to the current block of pixels CB belong to the current picture I[n]
  • the respective motion vectors for the respective blocks of pixels that are right to the current block of pixels CB belong to the previous picture I[n-1].
  • FIG. 4 illustrates the motion estimator ME.
  • the motion estimator ME comprises a motion vector memory MMV and various functional entities: a readout window module WIN, a motion vector classifier CLSF, a class representative generator CRG, and a motion vector generator GEN. Any of these functional entities may be implemented by means of software or hardware, or a combination of software and hardware.
  • a suitably programmed processor may carry out operations that will be described hereinafter with reference to the motion estimator ME illustrated in FIG. 4.
  • a software module may cause a generic processor to carry out specific operations that belong to a particular functional entity.
  • each of the aforementioned functional entities may be implemented in the form of a dedicated circuit. This is a hardware-based implementation. Hybrid implementations may involve software modules as well as one or more dedicated circuits.
  • the motion estimator ME operates as follows.
  • the motion vector memory MMV and various functional entities: a readout window module WIN, a motion vector classifier CLSF, a class representative generator CRG, and a motion vector
  • the MMV stores a motion vector field MVF, which comprises respective motion vectors for respective block of pixels that have different spatial positions.
  • the readout window module WIN reads motion vectors from the motion vector memory MMV so as to form a set of motion vectors MVS on the basis of a current block position CBP.
  • the current block position CBP indicates the spatial position of a current block of pixels in a current picture for which the motion estimator ME needs to establish a motion vector.
  • the readout window module WIN may define, for example, a readout window of 3 by 3 blocks that is centered on the current block of pixels. In that case, the readout window module WIN forms a set of 9 motion vectors.
  • the motion vector that is available for the spatial position of the current block of pixels CB is the motion vector that has been established for the previous picture I[n-1].
  • the motion vector that is available for the spatial position of the left neighbor of the current block of pixels CB belongs to the current picture I[n]
  • the motion vector that is available for the spatial position of the right neighbor of the current block of pixels CB belongs to the previous picture I[n-1].
  • the motion vector classifier CLSF classifies the motion vectors that form part of the set of motion vectors MVS, which the readout window module WIN provides. That is, the motion vector classifier CLSF establishes at least one class of motion vectors MVC.
  • a class constitutes a subset of motion vectors. There may be some overlap between respective subsets of motion vectors or no overlap at all.
  • a motion vector may belong to more than one class.
  • each motion vector belongs to a single class only. That is, in the latter case the motion vector classifier CLSF effectively divides the set of motion vectors MVS into one or more subsets of motion vectors, each subset constituting a class.
  • the motion vector classifier CLSF may apply various different classification criteria depending on the processing that the motion-based processing module MBP carries out.
  • the classification may solely be based on one or more properties of the motion vectors themselves, such as, for example length or orientation, or both. In that case, the motion vectors that belong to a particular class have at least one similar property.
  • the motion vector classifier CLSF may form, for example, a class of relatively large motion vectors and another class of relatively small motion vectors.
  • the motion vector classifier CLSF may further form respective classes of motion vectors for respective different orientations, such as, upward, downward, leftward, and rightward.
  • the classification criteria may dynamically be adjusted so as to obtain meaningful classes in the sense that each class is sufficiently populated and that motion vectors that belong to one class sufficiently differ from motion vectors that belong to another class.
  • the motion vector classifier CLSF may dynamically adjust a threshold value that is used to determine which motion vectors are assigned to the class of relatively large motion vectors and the class of relatively small motion vectors, respectively.
  • the classification criteria need not necessarily exclusively relate to one or more motion vector properties.
  • the motion vector classifier CLSF may use data that is associated with the motion vectors in order to classify the motion vectors. This data will be referred to as associated data AD hereinafter.
  • the associated data AD may comprise picture data for the respective spatial positions to which the respective motion vectors that are classified belong.
  • the associated data AD may relate to luminance information comprised in respective block of pixels to which respective motion vectors belong or to which these motion vectors point.
  • the motion vector classifier CLSF may use this luminance information as a classification criterion. Accordingly, the motion vector classifier CLSF may form a class of motion vectors MVC that belong to or that point to relatively bright blocks of pixels and another class of motion vectors MVC that belong to or that point to relatively dark blocks of pixels.
  • the associated data AD which is involved in classifying motion vectors, may also relate to chrominance information.
  • the associated data AD may comprise respective frequency domain representations of respective blocks of pixels to which respective motion vectors belong or to which respective motion vectors point.
  • a frequency domain representation of a block of pixels may indicate, for example, whether the block of pixels represents an image portion with many details or not. Stated differently, the frequency domain representation can indicate whether the block of pixels concerned comprises much texture or not.
  • the motion vector classifier CLSF may classify the motion vectors on the basis of the respective frequency domain representations of the respective blocks of pixels to which these motion vectors belong. That is, the motion vector classifier CLSF may use the frequency domain representation of a block of pixels, which provides texture information, as a classification criterion. Accordingly, the motion vector classifier CLSF may form a class of motion vectors MVC that belong to or that point to respective blocks of pixels that comprise much texture and another class of motion vectors MVC that belong to or that point to respective blocks of pixels that comprise little texture.
  • the associated data AD may also comprise data that results from respective motion compensations based on the respective motion vectors that are classified.
  • the associated data AD may comprise respective similarity metrics for respective motion vectors.
  • a similarity metric which is associated with a motion vector, indicates a degree of similarity between the block of pixels to which the motion vector belongs, on the one hand, and the block of pixels to which the motion vector points, on the other hand.
  • the similarity metric may be, for example, the sum of absolute differences between respective corresponding pixels in the aforementioned blocks.
  • the motion vector classifier CLSF may classify the motion vectors on the basis of the respective similarity metrics associated with these motion vectors. That is, the motion vector classifier CLSF may use the similarity metric as a classification criterion. Accordingly, the motion vector classifier CLSF may form a class of motion vectors MVC that provide similarity metrics indicating a relatively high degree of similarity and another class of motion vectors MVC that provides the similarity metrics indicating a relatively poor degree of similarity.
  • the associated data AD may comprise respective frequency domain representations of respective differential blocks that are associated with respective motion vectors.
  • a differential block that is associated with a motion vector results from subtracting the block of pixels to which the motion vector points from the block of pixels to which the motion vector belongs.
  • Many coding standards provide a frequency domain representation of a differential block, often in the form of a so-called DCT block (DCT is an acronym for discrete cosine transform).
  • DCT is an acronym for discrete cosine transform
  • a DCT block may be available for each motion vector and reveals whether the corresponding differential block has significant spectral energy at relatively high frequencies or not.
  • the motion vector classifier CLSF may classify the motion vectors on the basis of the respective frequency domain representations of the respective differential blocks that are associated with these motion vectors. That is, the motion vector classifier CLSF may use the frequency domain representation of a differential block as a classification criterion.
  • the motion vector classifier CLSF may form a class of motion vectors MVC that provide differential blocks of a predominantly low-frequency nature and another class of motion vectors MVC that provide differential blocks of a predominantly high-frequency nature.
  • the motion vector classifier CLSF may form a class of motion vectors MVC based on various criteria. For example, the motion vector classifier CLSF may form a class of motion vectors MVC that are relatively large and that provide a relatively high degree of block similarity. Another class may comprise motion vectors that are relatively small and that also provide a relatively high degree of block similarity. Yet another class may comprise motion vectors that provide a relatively low degree of block similarity irrespective of motion vector length.
  • the motion vector classifier CLSF provides one or more classes of motion vectors on the basis of the set of motion vectors MVS, which the readout window module WIN provides.
  • the class representative generator CRG establishes a class representing motion vector for each class that the motion vector classifier CLSF provides. Accordingly, the class representative generator CRG provides a set of class representing motion vectors MVR, one for each class.
  • the class representing motion vector of a class can be regarded as a typical motion vector for that class, which is a fair representative of the motion vectors that belong to the class concerned.
  • the class representative generator CRG may apply a median operation to the motion vectors in a class so as to establish the class representing motion vector.
  • the article entitled "Vector Median Filters”, by J. Astola et al, published in the Proceedings of the IEEE, Volume 78, Issue 4, April 1990, pp.678-689, provides an example of such a median operation.
  • the class representative generator CRG may apply other operations in order to establish the class representing motion vector, such as, for example, averaging.
  • the class representing motion vector of a class need not necessarily be one of the motion vectors in that class. That is, the class representing motion vector may be a new motion vector, which is a fair representative of the motion vectors in the class concerned.
  • the motion vector generator GEN generates a motion vector MV on the basis of the set of class representing motion vectors MVR that the class representative generator CRG provides and, in addition, on the basis of a so-called zero motion vector ZV.
  • the zero motion vector ZV corresponds with no displacement.
  • Each class representing motion vector, including the zero motion vector ZV, serves as a starting point for a motion vector search algorithm that the motion vector generator GEN carries out. That is, the motion vector generator GEN applies the motion vector search algorithm to each class representing motion vector and the zero motion vector ZV.
  • the motion vector search algorithm establishes a so-called best motion vector in the vicinity of the starting point.
  • a motion vector search algorithm tests, as it were, various motion vectors that slightly differ from the class representing motion vector that forms the starting point, or the zero motion vector ZV, which may also form the starting point.
  • the motion vector search algorithm calculates a similarity metric for each of these test vectors.
  • the similarity metric indicates a degree of similarity between the current block of pixels in the current picture for which the motion vector has to be established, on the one hand, and the block of pixels in a neighboring picture to which the test vector concerned points, on the other hand.
  • the motion vector that provides the similarity metric that indicates the highest degree of similarity is retained as best vector.
  • motion vector search algorithms there are numerous different motion vector search algorithms, each of which applies a different search strategy.
  • the 2D logarithmic search the three-step search, the one-at-a-time conjugate direction search, the orthogonal search, and the full window search.
  • the motion vector generator GEN establishes a set of best vectors, one for each class representing motion vector and one for the zero motion vector ZV.
  • the motion vector generator GEN selects the best vector that provides the lowest prediction error.
  • the motion vector generator GEN outputs this selected best vector as the motion vector MV for the block of pixels concerned.
  • the motion vector memory MMV stores the motion vector MV that the motion estimator ME has established as described hereinbefore.
  • the motion estimator ME illustrated in FIG. 4 thus establishes motion vectors in a recursive manner that is class based. Previously established motion vectors are classified. Each class provides a different focus for the generation of new motion vectors, which will be classified in their turn. There is thus an element of recursion and an element of classification.
  • the element of recursion allows motion vector fields that are locally homogeneous and, consequently, that have relatively low entropy.
  • the element of classification allows relatively good precision with relatively little computational effort. Stated boldly, the motion estimator ME illustrated in FIG. 4 allows fast and precise motion vector generation.
  • the invention may be applied to advantage in any type of product or method that relates to video processing and which involves motion estimation.
  • a video display driver is merely an example.
  • the invention may equally be applied in, for example, a video encoder. In such an application, the invention allows good video quality for a given degree of data compression. This is because the invention allows obtaining precise motion vectors with modest computational effort.
  • motion estimation can be object based.
  • a motion vector may be established for a group of pixels that belong to a particular object in a picture. This group of pixels may have any arbitrary shape. It should further be noted that motion estimation can also be pixel based.
  • a motion vector classification may be based on all respective motion vectors that are present in a motion vector field.
  • the motion estimator ME that FIG. 4 illustrates may be modified as follows.
  • the readout window module WIN is omitted.
  • the motion vector classifier CLSF classifies all the motion vectors that are present in the motion vector memory MMV.
  • Such a classification may require a considerable computational effort.
  • it is possible to carry out this classification only once for a previous picture before starting generating motion vectors for a current picture. In that case, respective class representing motion vectors will not change while motion vectors for the current picture are being generated. These motion vectors are updated on a picture-by-picture basis.
  • picture should be understood in a broad sense. This term includes a frame, a field, and any other entity that may wholly or partially constitute an image or a picture.

Landscapes

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

Abstract

A video processor comprises a motion estimator (ME) of the recursive type that establishes a motion vector field (MVF). The motion vector field (MVF) comprises respective motion vectors for respective spatial positions in a picture. A motion vector classifier (CLSF) classifies at least a portion of the respective motion vectors in the motion vector field (MVF). Accordingly, the motion vector classifier (CLSF) establishes one or more classes of motion vectors (MVC). A class representative generator (CRG) generates one or more class representing motion vectors (MVR). A class representing motion vector represents a particular class of motion vectors that the motion vector classifier (CLSF) has established. A motion vector generator (GEN) establishes a new motion vector (MV) for the motion vector field (MVF) on the basis of the one or more class representing motion vectors (MVR).

Description

Video processor comprising a motion estimator of the recursive type.
FIELD OF THE INVENTION
An aspect of the invention relates to a video processor that comprises a motion estimator of the recursive type. The video processor may be, for example, a video display driver that causes a display device to display a video input signal, which the display driver receives. Other aspects of the invention relate to a method of video processing, a computer program product for a programmable processor, and a video display system.
BACKGROUND OF THE INVENTION
There are various types of video processing that use motion information. Examples of such types of video processing include motion-compensated filtering for noise reduction, motion-compensated interpolation for video format conversion, picture-rate up- conversion and de-interlacing, and motion-compensated prediction for coding. The motion information is generally in the form of motion vectors. In many implementations, a motion vector belongs to a particular block of pixels in a particular picture from a sequence of pictures, which constitutes a video. The motion vector points to a similar block of pixels in a neighboring picture. The motion vector represents a spatial displacement of the similar block of pixels to which the motion vector points with respect to the block of pixels to which the motion vector belongs.
Motion estimation designates the process of extracting motion information, such as motion vectors, from a video. Motion estimation requires a considerable computational effort. This can be demonstrated with reference to a block-based type of algorithm, which type of algorithm is currently widely used. In a block-based algorithm, a search in a neighboring picture is made on behalf of a current block of pixels in a current picture. The search aims to find the most similar block of pixels in the neighboring picture. The search may be a so-called full search. In that case, a similarity metric needs to be calculated for each different block of pixels in the neighboring picture. There may be numerous different blocks of pixels for which this calculation needs to be made. This is particularly true for high resolution video applications where pictures comprise several millions of pixels. Various techniques have been proposed in order to reduce the computational effort that motion estimation involves. One of these techniques is the so-called three- dimensional recursive search (3-D RS) block matching algorithm. In accordance with this algorithm, a relatively small set of candidate vectors is formed on the basis of a relatively small set of motion vectors that have previously been established for respective blocks of pixels having a predefined spatio temporal position with regard to the current block of pixels for which the motion vector needs to be established. The 3-D RS algorithm examines the relatively small set of candidate vectors and retains a best vector: the candidate vector that provides the best similarity measure. International patent application published with the reference W02004/064403 describes a method for recursively estimating local vectors from at least one picture taken from an image sequence. The method comprises the four following steps in order to reduce computational complexity without deteriorating accuracy. A first set of candidate vectors is generated under at least partial use of recursion. Candidate vectors from the first set of candidate vectors are selected according to a first criterion, the selected candidate vectors forming a smaller second set of candidate vectors. The best vectors from the second set of candidate vectors are determined according to a second criterion. These best vectors are assigned to a group of pixels that is related to the group of pixels for which the candidate vectors were evaluated.
SUMMARY OF THE INVENTION
It is an object of the invention to provide an improvement in video processing, in particular through relatively fast and precise motion estimation. The independent claims define various aspects of the invention. The dependent claims define additional features for implementing the invention to advantage.
The invention takes the following points into consideration. The candidate vectors of the 3-D RS algorithm described hereinbefore are entirely based on a relatively small set of motion vectors that have previously been established for a few predefined spatiotemporal positions in an immediate vicinity of a spatiotemporal position for which a motion vector needs to be established. It may occur relatively frequently that these previously established motion vectors, which the 3-D RS algorithm takes into account, are quite similar. Consequently, it may frequently occur that the candidate vectors are quite similar. Examining all these candidate vectors can be considered as a waste of computational effort in the sense that if fewer candidate vectors were examined, or even only one, this would produce a sufficiently precise motion vector.
However, it may also occur that none of the previously established motion vectors, which the 3-D RS algorithm takes into account, allows establishing a sufficiently precise motion vector. Stated popularly, in such a case, the 3-D RS algorithm will retain the least bad candidate motion vector instead of the best motion vector. It may require several iterations with least bad candidate motion vectors before arriving at a point where the motion vector is sufficiently precise. The 3-D RS algorithm gradually migrates to this point, which is a relatively slow process during which imprecise motion vectors are produced. In accordance with the invention, motion estimation of the recursive type establishes a motion vector field, which comprises respective motion vectors for respective spatial positions in a picture, in the following manner. At least a portion of the respective motion vectors in the motion vector field are classified so as to establish at least one class of motion vectors. At least one class representing motion vector is generated. A class representing motion vector is representative of a particular class of motion vectors. A new motion vector for the motion vector field is established on the basis of the at least one class representing motion vector.
Accordingly, the invention allows taking into account a set of motion vectors that have previously been established for a relatively great variety of spat io temporal positions. There is a relatively high probability that one of these motion vectors is close to the best vector that would be obtained if a full search were carried out. The set of motion vectors that is taken into account will comprise a certain degree of redundancy in the sense that various motion vectors may have a similar property. The classification reduces this redundancy. For example, the classification may group motion vectors that have a similar property so as to form a class of motion vectors. Only a class representing motion vector, which represents the motion vectors in a class, needs to be examined. In many cases, this single examination will provide a result that correctly reflects the respective results that would be obtained if all the motion vectors in the class were examined. Consequently, there is a high degree of probability that a precise motion vector is found with modest computational effort. Stated differently, a precise motion vector can be found in a relatively short time. This allows high-quality video processing.
In a manner of speaking, the set of previously established motion vectors that are taken into account for the purpose of recursive motion estimation can be regarded as a collection of suggestions based on previous experiences to solve a given problem. Similar suggestions are bundled so as to obtain different bundles of suggestions, which are sufficiently different from each other. A representative suggestion is established for each bundle. The respective representative suggestions are examined instead of individually examining each suggestion that has been made. Accordingly, a solution to the problem is formulated, which may be a slight adaptation of one of the representative suggestions that finally gave the best result. Accordingly, the collection of suggestions may be relatively large without this leading to a huge examination burden. The larger the collection of suggestions is, the more probable it is that the solution found on the basis thereof is a good one.
An implementation of the invention advantageously comprises one or more of following additional features, each of which contributes to obtaining precise motion vectors or to reducing computational effort, or both.
Associated data is taken into account for the purpose of classifying motion vectors .The associated data may comprise picture data for the respective spatial positions to which the respective motion vectors that are classified belong. The associated data may also comprise data that results from respective motion compensations based on the respective motion vectors that are classified.
A median operation is applied to the motion vectors in a class of motion vectors so as to establish the class representative motion vector for the class of motion vectors. A classification criterion is dynamically adjusted.
A readout window module forms a set of motion vectors, which are taken from the motion vector field, on the basis of the spatial position for which the new motion vector has to be established. The set of motion vectors is subsequently subject to classification.
A best vector search is carried out in a vicinity of a class representative motion vector so as to establish a best motion vector. Respective best vector searches may be carried out for respective class representative motion vectors so as to obtain respective best vectors. One of these best vectors provides the highest degree of similarity between a picture portion to which the best vector points and a picture portion for which the new motion vector has to be established. This best vector is selected as the new motion vector. A detailed description with reference to drawings illustrates the invention summarized hereinbefore, as well as the additional features. BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram that illustrates a video display system.
FIG. 2 is a pictorial diagram that illustrates motion information for a picture that the video display system processes. FIG. 3 is a pictorial diagram that illustrates a motion vector field built by a motion estimator, which forms part of the video display system.
FIG. 4 is a functional diagram that illustrates the motion estimator.
DETAILED DESCRIPTION FIG. 1 illustrates a video display system VDS. The video display system VDS comprises a video display driver VDD, a display device DPL, and a remote control device RCD. The display device DPL may be, for example, a flat panel display of the liquid crystal type. The video display driver VDD comprises an input circuit INP, a video enhancement circuit VXC, an output circuit OUT, and a controller CTRL. The video enhancement circuit VXC comprises a motion-based processing module MBP and a motion estimator ME. A single integrated circuit may form the video enhancement circuit VXC. This integrated circuit may further comprise at least a portion of the input circuit INP. Alternatively, various different integrated circuits and other components, which are mounted on a printed circuit board, may form the video enhancement circuit VXC. The video display driver VDD basically operates as follows. Let it be assumed that the video display driver VDD receives various input video signals VA, VB, VC from various video sources, which are not shown. A user may select a particular video source on his or her remote control device RCD. The remote control device RCD sends to the controller CTRL a command that indicates the particular video source to be selected. In response, the controller CTRL causes the input circuit INP to select that particular video source. The input circuit INP applies an internal video signal VI to the video enhancement circuit VXC. The internal video signal VI corresponds with the input video signal from the video source that the user has selected. The input circuit INP may further detect one or more characteristics of the internal video signal VI and signal these characteristics to the controller CTRL. For example, the input circuit INP may detect that the internal video signal VI is an interlaced video signal that has a relatively low picture rate.
The motion estimator ME derives motion information MI from the internal video signal VI. The motion-based processing module MBP processes the internal video signal VI on the basis of this motion information MI. Such processing may include operations such as, for example, de-interlacing and picture-rate up-conversion, which allow an improved display quality. The controller CTRL may instruct the motion-based processing module MBP to carry out one or more operations on the basis of the characteristics of the internal video signal VI, which the input circuit INP has detected. The motion-based processing module MBP applies an enhanced internal video signal VIX to the output circuit OUT. The enhanced internal video signal VIX may be, for example, a progressive scan video signal that has a relatively high picture rate. The output circuit OUT provides a display driver signal DDS in response to the enhanced internal video signal VIX. To that end, the output circuit OUT may carry out various signal processing operations, such as, for example, amplification, level shifting, bias voltage generation, and synchronization. The display device DPL, which receives the display driver signal DDS, displays the input video signal that the user has selected.
FIG. 2 illustrates motion information for a picture in the internal video signal VI. The picture is divided into various blocks of pixels B. Each block of pixels has a motion vector MV. This motion vector points to a block of pixels in a neighboring picture and indicates a spatial displacement of the block of pixels to which the motion vector points with respect to the block of pixels to which the motion vector belongs. In case the respective blocks of pixels both belong to a particular object, the motion vector indicates a displacement, i.e. a motion, of that particular object. More specifically, the motion vector has an orientation that indicates a direction of movement and a length that indicates a speed of movement. The respective motion vectors for the respective block of pixels in a picture constitute a so-called motion vector field for that picture.
The picture illustrated in FIG. 2 comprises two objects 01, 02 and a background BG. The objects move with respect to the background BG. The background BG is also moving. The respective motion vectors for the respective blocks of pixels in the picture indicate this. More specifically, object Ol comprises an entire block of pixels. The motion vector for that block of pixels indicates that object moves in a leftward direction with a moderate speed. Object 02 comprises four entire blocks of pixels. The respective motion vectors for these four blocks of pixels indicate that object moves in an upper rightward direction with a relatively high speed. The remaining blocks of pixels belong to the background BG. The respective motion vectors for these remaining blocks of pixels indicates that the background BG is moving in an upper leftward direction with a relatively low speed. FIG. 3 illustrates that the motion estimator ME builds a motion vector field on a block by block basis in accordance with a predefined pattern. The predefined pattern is a row wise scan that starts at an upper row of blocks and ends with a lower row of blocks in a picture and that goes from the leftmost block to the rightmost block in a row. Broken arrows in FIG. 3 illustrate the predefined pattern. In FIG. 3, the motion estimator ME establishes a motion vector for a current block of pixels CB in a current picture I[n], which is subsequent to the picture illustrated in FIG. 2. The picture illustrated in FIG. 2 constitutes a previous picture I[n-1].
The motion vector field comprises motion vectors that belong to the previous picture I[n-1] and the current picture I[n] for which the motion estimator ME is in the process of establishing motion vectors. The respective motion vectors for the respective block of pixels that have a higher row position than the current block of pixels CB belong to the current picture I[n]. Conversely, the respective motion vectors for the respective block of pixels that have a lower row position than the current block of pixels CB still belong to the previous picture I[n-1]. As regards to the respective blocks of pixels that are in the same row as the current block of pixels CB, the motion vectors of the blocks of pixels that are left to the current block of pixels CB belong to the current picture I[n], whereas the respective motion vectors for the respective blocks of pixels that are right to the current block of pixels CB belong to the previous picture I[n-1].
FIG. 4 illustrates the motion estimator ME. The motion estimator ME comprises a motion vector memory MMV and various functional entities: a readout window module WIN, a motion vector classifier CLSF, a class representative generator CRG, and a motion vector generator GEN. Any of these functional entities may be implemented by means of software or hardware, or a combination of software and hardware. For example, a suitably programmed processor may carry out operations that will be described hereinafter with reference to the motion estimator ME illustrated in FIG. 4. In such a software-based implementation, a software module may cause a generic processor to carry out specific operations that belong to a particular functional entity. As another example, each of the aforementioned functional entities may be implemented in the form of a dedicated circuit. This is a hardware-based implementation. Hybrid implementations may involve software modules as well as one or more dedicated circuits. The motion estimator ME operates as follows. The motion vector memory
MMV stores a motion vector field MVF, which comprises respective motion vectors for respective block of pixels that have different spatial positions. FIG. 3, which has been described hereinbefore, illustrates such a motion vector field. The readout window module WIN reads motion vectors from the motion vector memory MMV so as to form a set of motion vectors MVS on the basis of a current block position CBP. The current block position CBP indicates the spatial position of a current block of pixels in a current picture for which the motion estimator ME needs to establish a motion vector. In terms of blocks of pixels, the readout window module WIN may define, for example, a readout window of 3 by 3 blocks that is centered on the current block of pixels. In that case, the readout window module WIN forms a set of 9 motion vectors. Referring to FIG. 3, the motion vector that is available for the spatial position of the current block of pixels CB is the motion vector that has been established for the previous picture I[n-1]. The motion vector that is available for the spatial position of the left neighbor of the current block of pixels CB belongs to the current picture I[n], whereas the motion vector that is available for the spatial position of the right neighbor of the current block of pixels CB belongs to the previous picture I[n-1].
The motion vector classifier CLSF classifies the motion vectors that form part of the set of motion vectors MVS, which the readout window module WIN provides. That is, the motion vector classifier CLSF establishes at least one class of motion vectors MVC. A class constitutes a subset of motion vectors. There may be some overlap between respective subsets of motion vectors or no overlap at all. In the first case, a motion vector may belong to more than one class. In the latter case, each motion vector belongs to a single class only. That is, in the latter case the motion vector classifier CLSF effectively divides the set of motion vectors MVS into one or more subsets of motion vectors, each subset constituting a class.
The motion vector classifier CLSF may apply various different classification criteria depending on the processing that the motion-based processing module MBP carries out. The classification may solely be based on one or more properties of the motion vectors themselves, such as, for example length or orientation, or both. In that case, the motion vectors that belong to a particular class have at least one similar property. The motion vector classifier CLSF may form, for example, a class of relatively large motion vectors and another class of relatively small motion vectors. The motion vector classifier CLSF may further form respective classes of motion vectors for respective different orientations, such as, upward, downward, leftward, and rightward.
The classification criteria may dynamically be adjusted so as to obtain meaningful classes in the sense that each class is sufficiently populated and that motion vectors that belong to one class sufficiently differ from motion vectors that belong to another class. For example, the motion vector classifier CLSF may dynamically adjust a threshold value that is used to determine which motion vectors are assigned to the class of relatively large motion vectors and the class of relatively small motion vectors, respectively.
The classification criteria need not necessarily exclusively relate to one or more motion vector properties. The motion vector classifier CLSF may use data that is associated with the motion vectors in order to classify the motion vectors. This data will be referred to as associated data AD hereinafter.
The associated data AD may comprise picture data for the respective spatial positions to which the respective motion vectors that are classified belong. For example, the associated data AD may relate to luminance information comprised in respective block of pixels to which respective motion vectors belong or to which these motion vectors point. The motion vector classifier CLSF may use this luminance information as a classification criterion. Accordingly, the motion vector classifier CLSF may form a class of motion vectors MVC that belong to or that point to relatively bright blocks of pixels and another class of motion vectors MVC that belong to or that point to relatively dark blocks of pixels. The associated data AD, which is involved in classifying motion vectors, may also relate to chrominance information.
As another example, the associated data AD may comprise respective frequency domain representations of respective blocks of pixels to which respective motion vectors belong or to which respective motion vectors point. A frequency domain representation of a block of pixels may indicate, for example, whether the block of pixels represents an image portion with many details or not. Stated differently, the frequency domain representation can indicate whether the block of pixels concerned comprises much texture or not.
The motion vector classifier CLSF may classify the motion vectors on the basis of the respective frequency domain representations of the respective blocks of pixels to which these motion vectors belong. That is, the motion vector classifier CLSF may use the frequency domain representation of a block of pixels, which provides texture information, as a classification criterion. Accordingly, the motion vector classifier CLSF may form a class of motion vectors MVC that belong to or that point to respective blocks of pixels that comprise much texture and another class of motion vectors MVC that belong to or that point to respective blocks of pixels that comprise little texture.
The associated data AD may also comprise data that results from respective motion compensations based on the respective motion vectors that are classified. For example, the associated data AD may comprise respective similarity metrics for respective motion vectors. A similarity metric, which is associated with a motion vector, indicates a degree of similarity between the block of pixels to which the motion vector belongs, on the one hand, and the block of pixels to which the motion vector points, on the other hand. The similarity metric may be, for example, the sum of absolute differences between respective corresponding pixels in the aforementioned blocks.
The motion vector classifier CLSF may classify the motion vectors on the basis of the respective similarity metrics associated with these motion vectors. That is, the motion vector classifier CLSF may use the similarity metric as a classification criterion. Accordingly, the motion vector classifier CLSF may form a class of motion vectors MVC that provide similarity metrics indicating a relatively high degree of similarity and another class of motion vectors MVC that provides the similarity metrics indicating a relatively poor degree of similarity.
As another example, the associated data AD may comprise respective frequency domain representations of respective differential blocks that are associated with respective motion vectors. A differential block that is associated with a motion vector results from subtracting the block of pixels to which the motion vector points from the block of pixels to which the motion vector belongs. Many coding standards provide a frequency domain representation of a differential block, often in the form of a so-called DCT block (DCT is an acronym for discrete cosine transform). A DCT block may be available for each motion vector and reveals whether the corresponding differential block has significant spectral energy at relatively high frequencies or not.
The motion vector classifier CLSF may classify the motion vectors on the basis of the respective frequency domain representations of the respective differential blocks that are associated with these motion vectors. That is, the motion vector classifier CLSF may use the frequency domain representation of a differential block as a classification criterion.
Accordingly, the motion vector classifier CLSF may form a class of motion vectors MVC that provide differential blocks of a predominantly low-frequency nature and another class of motion vectors MVC that provide differential blocks of a predominantly high-frequency nature. The motion vector classifier CLSF may form a class of motion vectors MVC based on various criteria. For example, the motion vector classifier CLSF may form a class of motion vectors MVC that are relatively large and that provide a relatively high degree of block similarity. Another class may comprise motion vectors that are relatively small and that also provide a relatively high degree of block similarity. Yet another class may comprise motion vectors that provide a relatively low degree of block similarity irrespective of motion vector length.
In general, there are numerous possible classification criteria and numerous possible combinations of classification criteria. As mentioned hereinbefore, a suitable classification strategy depends on the type of processing for which motion vectors need to be generated. The classification strategy may empirically be established. In any case, the motion vector classifier CLSF provides one or more classes of motion vectors on the basis of the set of motion vectors MVS, which the readout window module WIN provides.
The class representative generator CRG establishes a class representing motion vector for each class that the motion vector classifier CLSF provides. Accordingly, the class representative generator CRG provides a set of class representing motion vectors MVR, one for each class. The class representing motion vector of a class can be regarded as a typical motion vector for that class, which is a fair representative of the motion vectors that belong to the class concerned. For example, the class representative generator CRG may apply a median operation to the motion vectors in a class so as to establish the class representing motion vector. The article entitled "Vector Median Filters", by J. Astola et al, published in the Proceedings of the IEEE, Volume 78, Issue 4, April 1990, pp.678-689, provides an example of such a median operation. The class representative generator CRG may apply other operations in order to establish the class representing motion vector, such as, for example, averaging. The class representing motion vector of a class need not necessarily be one of the motion vectors in that class. That is, the class representing motion vector may be a new motion vector, which is a fair representative of the motion vectors in the class concerned.
The motion vector generator GEN generates a motion vector MV on the basis of the set of class representing motion vectors MVR that the class representative generator CRG provides and, in addition, on the basis of a so-called zero motion vector ZV. The zero motion vector ZV corresponds with no displacement. Each class representing motion vector, including the zero motion vector ZV, serves as a starting point for a motion vector search algorithm that the motion vector generator GEN carries out. That is, the motion vector generator GEN applies the motion vector search algorithm to each class representing motion vector and the zero motion vector ZV.
The motion vector search algorithm establishes a so-called best motion vector in the vicinity of the starting point. In general, a motion vector search algorithm tests, as it were, various motion vectors that slightly differ from the class representing motion vector that forms the starting point, or the zero motion vector ZV, which may also form the starting point. The motion vector search algorithm calculates a similarity metric for each of these test vectors. As explained hereinbefore, the similarity metric indicates a degree of similarity between the current block of pixels in the current picture for which the motion vector has to be established, on the one hand, and the block of pixels in a neighboring picture to which the test vector concerned points, on the other hand. The motion vector that provides the similarity metric that indicates the highest degree of similarity is retained as best vector. There are numerous different motion vector search algorithms, each of which applies a different search strategy. To name a few motion vector search algorithms: the 2D logarithmic search, the three-step search, the one-at-a-time conjugate direction search, the orthogonal search, and the full window search.
Accordingly, the motion vector generator GEN establishes a set of best vectors, one for each class representing motion vector and one for the zero motion vector ZV. The motion vector generator GEN selects the best vector that provides the lowest prediction error. The motion vector generator GEN outputs this selected best vector as the motion vector MV for the block of pixels concerned. The motion vector memory MMV stores the motion vector MV that the motion estimator ME has established as described hereinbefore.
The motion estimator ME illustrated in FIG. 4 thus establishes motion vectors in a recursive manner that is class based. Previously established motion vectors are classified. Each class provides a different focus for the generation of new motion vectors, which will be classified in their turn. There is thus an element of recursion and an element of classification. The element of recursion allows motion vector fields that are locally homogeneous and, consequently, that have relatively low entropy. The element of classification allows relatively good precision with relatively little computational effort. Stated boldly, the motion estimator ME illustrated in FIG. 4 allows fast and precise motion vector generation.
CONCLUDING REMARKS
The detailed description hereinbefore with reference to the drawings is merely an illustration of the invention and the additional features, which are defined in the claims. The invention can be implemented in numerous different manners. In order to illustrate this, some alternatives are briefly indicated.
The invention may be applied to advantage in any type of product or method that relates to video processing and which involves motion estimation. A video display driver is merely an example. The invention may equally be applied in, for example, a video encoder. In such an application, the invention allows good video quality for a given degree of data compression. This is because the invention allows obtaining precise motion vectors with modest computational effort.
The detailed description hereinbefore relates to block-based motion estimation. This is merely an example. As another example, motion estimation can be object based. In such an implementation, a motion vector may be established for a group of pixels that belong to a particular object in a picture. This group of pixels may have any arbitrary shape. It should further be noted that motion estimation can also be pixel based.
A motion vector classification may be based on all respective motion vectors that are present in a motion vector field. For example, the motion estimator ME that FIG. 4 illustrates may be modified as follows. The readout window module WIN is omitted. The motion vector classifier CLSF classifies all the motion vectors that are present in the motion vector memory MMV. Such a classification may require a considerable computational effort. However, it is possible to carry out this classification only once for a previous picture before starting generating motion vectors for a current picture. In that case, respective class representing motion vectors will not change while motion vectors for the current picture are being generated. These motion vectors are updated on a picture-by-picture basis.
The term "picture" should be understood in a broad sense. This term includes a frame, a field, and any other entity that may wholly or partially constitute an image or a picture.
There are numerous ways of implementing functions by means of items of hardware or software, or both. In this respect, the drawings are very diagrammatic, each representing only one possible embodiment of the invention. Thus, although a drawing shows different functions as different blocks, this by no means excludes that a single item of hardware or software carries out several functions. Nor does it exclude that an assembly of items of hardware or software or both carry out a function.
The remarks made herein before demonstrate that the detailed description, with reference to the drawings, illustrates rather than limits the invention. There are numerous alternatives, which fall within the scope of the appended claims. Any reference sign in a claim should not be construed as limiting the claim. The word "comprising" does not exclude the presence of other elements or steps than those listed in a claim. The word "a" or "an" preceding an element or step does not exclude the presence of a plurality of such elements or steps.

Claims

CLAIMS:
1. A video processor comprising a motion estimator (ME) of the recursive type arranged to establish a motion vector field (MVF) comprising respective motion vectors for respective spatial positions in a picture, the motion estimator (ME) comprising: a motion vector classifier (CLSF) for classifying at least a portion of the respective motion vectors in the motion vector field (MVF) so as to establish at least one class of motion vectors (MVC); a class representative generator (CRG) for generating at least one class representing motion vector (MVR), a class representing motion vector being representative of a particular class of motion vectors that the motion vector classifier (CLSF) has established; and a motion vector generator (GEN) for establishing a new motion vector (MV) for the motion vector field (MVF) on the basis of the at least one class representing motion vector (MVR).
2. A video processor according to claim 1, the motion vector classifier (CLSF) being arranged to take into account associated data (AD) for classifying motion vectors, the associated data (AD) comprising picture data for the respective spatial positions to which the respective motion vectors that are classified belong.
3. A video processor according to claim 1, the motion vector classifier (CLSF) being arranged to take into account associated data (AD) for classifying motion vectors, the associated data (AD) comprising data that results from respective motion compensations based on the respective motion vectors that are classified.
4. A video processor according to claim 1, the class representative generator
(CRG) being arranged to apply a median operation to the motion vectors in a class of motion vectors so as to establish the class representative motion vector for the class of motion vectors.
5. A video processor according to claim 1, the motion vector classifier (CLSF) being arranged to dynamically adjust a classification criterion.
6. A video processor according to claim 1, the motion estimator (ME) comprising a readout window module (WIN) so as to form a set of motion vectors (MVS), which are taken from the motion vector field (MVF), on the basis of the spatial position for which the new motion vector (MV) has to be established.
7. A video processor according to claim 1, the motion vector generator (GEN) being arranged to carry out a best vector search in a vicinity of a class representative motion vector so as to establish a best motion vector.
8. A video processor according to claim 7, the motion vector generator (GEN) being arranged to carry out respective best vector searches for respective class representative motion vectors so as to obtain respective best vectors and to select the best vector that provides the highest degree of similarity between a picture portion to which the best vector points and a picture portion for which the new motion vector (MV) has to be established, the selected best vector being the new motion vector (MV).
9. A method of video processing that involves motion estimation of the recursive type for establishing a motion vector field (MVF) comprising respective motion vectors for respective spatial positions in a picture, the method comprising the following steps: a motion vector classification step in which at least a portion of the respective motion vectors in the motion vector field (MVF) are classified so as to establish at least one class of motion vectors (MVC); a class representative generation step in which at least one class representing motion vector (MVR) is generated, a class representing motion vector being representative of a particular class of motion vectors that the motion vector classification step has produced; and - a motion vector generation step in which a new motion vector (MV) for the motion vector field (MVF) is established on the basis of the at least one class representing motion vector (MVR).
10. A computer program product for a programmable processor, the computer program product comprising a set of instructions that, when loaded into the programmable processor, causes the programmable processor to carry out the method according to claim 9.
11. A video display system (VDS) comprising a video processor (VDD) according to claim 1 for providing an enhanced image signal in response to an input image signal, and a display device (DPL) for displaying the enhanced image signal.
PCT/IB2007/050392 2006-02-10 2007-02-06 Video processor comprising a motion estimator of the recursive type WO2007091213A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06300126 2006-02-10
EP06300126.7 2006-02-10

Publications (2)

Publication Number Publication Date
WO2007091213A2 true WO2007091213A2 (en) 2007-08-16
WO2007091213A3 WO2007091213A3 (en) 2007-12-13

Family

ID=38179944

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2007/050392 WO2007091213A2 (en) 2006-02-10 2007-02-06 Video processor comprising a motion estimator of the recursive type

Country Status (1)

Country Link
WO (1) WO2007091213A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020259507A1 (en) * 2019-06-24 2020-12-30 Huawei Technologies Co., Ltd. Method for computing position of integer grid reference sample for block level boundary sample gradient computation in bi-predictive optical flow computation and bi-predictive correction
RU2820638C2 (en) * 2019-06-24 2024-06-07 Хуавэй Текнолоджиз Ко., Лтд. Method for calculating position of reference sample of integer grid for calculating gradient of boundary sample of block level in calculating optical flow with dual prediction and correction with dual prediction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193001A (en) * 1989-06-27 1993-03-09 Thomson Consumer Electronics Method of segmenting the field of motion of an image and its application to the encoding of video images
US5557684A (en) * 1993-03-15 1996-09-17 Massachusetts Institute Of Technology System for encoding image data into multiple layers representing regions of coherent motion and associated motion parameters
US20030133503A1 (en) * 2002-01-17 2003-07-17 Marco Paniconi Motion segmentation system with multi-frame hypothesis tracking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193001A (en) * 1989-06-27 1993-03-09 Thomson Consumer Electronics Method of segmenting the field of motion of an image and its application to the encoding of video images
US5557684A (en) * 1993-03-15 1996-09-17 Massachusetts Institute Of Technology System for encoding image data into multiple layers representing regions of coherent motion and associated motion parameters
US20030133503A1 (en) * 2002-01-17 2003-07-17 Marco Paniconi Motion segmentation system with multi-frame hypothesis tracking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BERIC A ET AL: "AN EFFICIENT PICTURE-RATE UP-CONVERTER" JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL, IMAGE, AND VIDEO TECHNOLOGY, SPRINGER, NEW YORK, NY, US, vol. 41, no. 1, August 2005 (2005-08), pages 49-63, XP001152004 ISSN: 0922-5773 *
SUK BYUNG CHAE ET AL: "VIDEO CODING BY SEGMENTING MOTION VECTORS AND FRAME DIFFERENCES" OPTICAL ENGINEERING, SOC. OF PHOTO-OPTICAL INSTRUMENTATION ENGINEERS. BELLINGHAM, US, vol. 32, no. 4, 1 April 1993 (1993-04-01), pages 870-876, XP000364010 ISSN: 0091-3286 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020259507A1 (en) * 2019-06-24 2020-12-30 Huawei Technologies Co., Ltd. Method for computing position of integer grid reference sample for block level boundary sample gradient computation in bi-predictive optical flow computation and bi-predictive correction
RU2820638C2 (en) * 2019-06-24 2024-06-07 Хуавэй Текнолоджиз Ко., Лтд. Method for calculating position of reference sample of integer grid for calculating gradient of boundary sample of block level in calculating optical flow with dual prediction and correction with dual prediction

Also Published As

Publication number Publication date
WO2007091213A3 (en) 2007-12-13

Similar Documents

Publication Publication Date Title
Kang et al. Motion compensated frame rate up-conversion using extended bilateral motion estimation
EP1987676B1 (en) Method and apparatus for determining motion between video images
US20050201626A1 (en) Global motion-compensated sequential-scanning method considering horizontal and vertical patterns
EP2240905B1 (en) Sparse geometry for super resolution video processing
JP4564564B2 (en) Moving picture reproducing apparatus, moving picture reproducing method, and moving picture reproducing program
US20190188829A1 (en) Method, Apparatus, and Circuitry of Noise Reduction
JP2012513728A (en) Deinterleaved view reconstruction using adaptive interpolation based on disparity between views for upsampling
EP2011342A1 (en) Motion estimation at image borders
Heinrich et al. Optimization of hierarchical 3DRS motion estimators for picture rate conversion
US20140010307A1 (en) Method of and apparatus for complexity scalable frame rate up-conversion
Cetin et al. An adaptive true motion estimation algorithm for frame rate conversion of high definition video and its hardware implementations
KR100727795B1 (en) Motion estimation
US20060098886A1 (en) Efficient predictive image parameter estimation
KR100942887B1 (en) Motion estimation
KR100955415B1 (en) Method, computer program product and integrated circuit for providing a motion parameter set or a picture repetition pattern, and computer for providing a motion parameter
WO2007091213A2 (en) Video processor comprising a motion estimator of the recursive type
Hargreaves et al. Bayesian motion estimation and interpolation in interlaced video sequences
JP4140091B2 (en) Image information conversion apparatus and image information conversion method
JPH10261092A (en) Locally tensing and relaxing method for predicting optical flow
EP1420595B1 (en) Motion vector selection in a video motion estimator based on a preferred reference point
Jovanov et al. Combinedwavelet domain and motion compensated filtering compliant with video codecs
Lee et al. Algorithm and Architecture Design of a Hardware-Efficient Frame Rate Upconversion Engine
Han et al. A novel hierarchical-search block matching algorithm and VLSI architecture considering the spatial complexity of the macroblock
Kim et al. A new update strategy for blocks with low correlation in 3-D recursive search
Cizmeci et al. Occlusion aware motion compensation for video frame rate up-conversion

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07705803

Country of ref document: EP

Kind code of ref document: A2