US20140023149A1 - Sparse geometry for super resolution video processing - Google Patents
Sparse geometry for super resolution video processing Download PDFInfo
- Publication number
- US20140023149A1 US20140023149A1 US14/040,035 US201314040035A US2014023149A1 US 20140023149 A1 US20140023149 A1 US 20140023149A1 US 201314040035 A US201314040035 A US 201314040035A US 2014023149 A1 US2014023149 A1 US 2014023149A1
- Authority
- US
- United States
- Prior art keywords
- directions
- subset
- video sequence
- candidate
- predefined set
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- H04N19/00909—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/238—Analysis of motion using block-matching using non-full search, e.g. three-step search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/21—Circuitry for suppressing or minimising disturbance, e.g. moiré or halo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0127—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0135—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
Definitions
- the present invention relates to digital video processing. It is applicable, in particular, in the field of super-resolution video processing.
- Super-resolution video processing methods are used in various applications including super-resolution interpolation (such as frame-rate conversion, super-resolution video scaling and deinterlacing) and reduction of compression artifacts and/or noise.
- a video sequence is typically represented as an array of pixel values I t (x) where t is an integer time index, and x is a 2-dimensional integer index (x 1 , x 2 ) representing the position of a pixel in the image.
- the pixel values can for example be single numbers (e.g. gray scale values), or triplets representing color coordinates in a color space (such as RGB, YUV, YCbCr, etc.).
- Super-resolution video processing methods consist in computing new pixel values (for interpolation) or new values of existing pixels (for noise reduction) by combining pixel values of several adjacent video frames in time.
- WO 2007/115583 A1 discloses a super-resolution video processing method which exhibits very few artifacts.
- the method consists in selecting for each new pixel to be calculated an interpolator best suited for computing that pixel. For certain particular sequences, however, it may be necessary to enhance the method by increasing the total number of interpolators considered. The quality is increased but at the cost of a higher complexity.
- Motion-adaptive video deinterlacing only provides full resolution deinterlaced frames when the video is not moving. Otherwise, the deinterlaced frames exhibit jagged contours or lower resolution textures, and flicker.
- An example of an advanced motion adaptive technique is described in U.S. Pat. No. 5,428,398.
- Motion-compensated techniques are known to reach better quality levels, at the expense of being less robust and displaying in some cases substantially worse artifacts than motion-adaptive techniques. This happens in particular at locations of the video where motion estimation does not work well, like occlusions, transparent objects, or shadows.
- An example of a motion-compensated deinterlacing technique is described in U.S. Pat. No. 6,940,557.
- a standard way to perform frame-rate conversion includes estimating motion estimation between two frames to compute a dense motion field, and computing new frames with motion-compensated interpolation. For the same reasons as above, frame-rate conversion based on such steps has a number of drawbacks. Dense motion estimation fails on periodic patterns, on contours or on flat areas.
- a possible form of the matching energy (L 1 -energy) is
- E x ⁇ ( v ) ⁇ d ⁇ W ⁇ ⁇ ⁇ l t ⁇ ( x + d ) - l t + 1 ⁇ ( x + d + v ) ⁇ .
- E x ⁇ ( v ) ⁇ d ⁇ W ⁇ ⁇ ⁇ l t ⁇ ( x + d ) - l t + 1 ⁇ ( x + d + v ) ⁇ 2 .
- Block matching is well suited for motion compensation in video compression schemes such as MPEG, which make use of block-based transforms. If the matching algorithm matches two windows of images that are similar, but do not represent the same object (e.g. matching the first ‘e’ with the second ‘e’ in an image of the word “sweet”), compression efficiency is not impaired. However, when doing video interpolation, matching groups of pixels which do not actually correspond to the same object leads to interpolation artifacts, because the interpolated pixels will reflect an “incorrect motion” due to spatial correlation in the objects appearing in the images.
- Block matching methods are computationally intensive, in proportion to the number of possible displacements that are actually considered for each pixel.
- “fast” block matching strategies consist in limiting the range of possible displacements using predetermined motion subsets. This is not acceptable in video interpolation where using a displacement vector that is too inaccurate leads to blurry interpolated images or to artifacts.
- a first set of methods impose a smoothness constraint on the motion field, i.e. by imposing that for pixels that close one to another, the corresponding motion vectors are close. This can be achieved with multiscale motion estimation, or recursive block matching.
- Another type of method designed to solve this issue is phase correlation.
- U.S. Pat. No. 5,742,710 discloses an approach based on multiscale block-matching.
- block matching is performed between copies of I t and I t+1 that have been reduced in size by a factor of 2 in each dimension (i.e. four times less pixels) and the resulting displacement map is then refined to obtain a resolution twice finer.
- the refinement process is a search of limited range around the coarse scale results. As a result, the cost of the displacement search is reduced because full range searches are done only on smaller images.
- the resulting displacement field is also smoother because it is a refinement of a low resolution map.
- GB-A-2 188 510 discloses a so-called phase correlation method in which a displacement energy map is computed over a large image window for a set of candidate displacements. This map can be computed efficiently using fast Fourier transform. A subset of displacements corresponding to peak values in the energy map is determined as including the most representative displacements over this window. Then block matching is performed as a second step pixelwise considering only this subset of displacements.
- phase correlation limits to a fixed number the set of different possible vectors in a motion map.
- phase correlation still requires relatively complex computations based on 2-dimensional fast Fourier transforms that are expensive to implement in hardware.
- the method selects motion vectors on the basis of individual merit that is assessed with their phase correlation. So it has a limited ability to provide a minimal set of motion vectors. Indeed, when a moving pattern has a periodic structure or is translation-invariant, several vectors have comparable merit values, and phase correlation is not able to arbitrate between them. The resulting motion-compensated video interpolation process is thus of suboptimal robustness. This has also a cost in terms of complexity because for all pixels, more candidate motion vectors are considered than necessary.
- WO 2007/059795 A1 describes a super-resolution processing method that can be used for long-range noise reduction or super-resolution scaling.
- the method is based on a bandlet transform using multiscale grouping of wavelet coefficients. This representation is much more appropriate for noise reduction or super-resolution scaling than the 3D transform described in the 3D-ESCOT paper.
- the multiscale grouping performs a variable range image registration that can be computed for example with block matching or any state of the art image registration process. For both super-resolution scaling and noise reduction, it is important that the image registration map used is not corrupted by noise or by aliasing artifacts.
- An object of the present invention is to propose a method useful for detecting directions of regularity in an input video stream with high accuracy and high robustness.
- it is desired to avoid artifacts usually caused by incoherent interpolation directions.
- video noise reduction it is desired to select averaging directions that are not corrupted by noise.
- Another object is to reduce substantially the implementation complexity of the super-resolution interpolation or noise reduction processing.
- a method of analyzing an input video sequence in which pixels of synthesized images of an output video sequence are associated with respective directions of regularity belonging to a predefined set of directions.
- the method comprises: determining, from the predefined set of directions, a first subset of candidate directions for a region of a first image of the output sequence; determining, from the predefined set of directions, a second subset of candidate directions for a corresponding region of a second synthesized image of the sequence following the first image, based on images of the input sequence and the first subset of candidate directions; and detecting the directions of regularity for pixels of said region of the second synthesized image from the second subset of candidate directions.
- the subset of candidate directions is determined in a time recursion by taking into account the subset determined at a preceding time. Typically, directions will be added to or removed from the subset depending on incremental changes of a cost function caused by such addition or removal.
- the image “regions” can encompass the whole image area, or only part of it, as discussed further below.
- the determination of the second subset of candidate directions may comprise: detecting at least one pair of directions v r and v a such that v r belongs to the first subset of candidate directions, v a belongs to the predefined set of directions but not to the first subset, and a cost function associated with the first subset with respect to the first and second images is higher than the cost function associated with a modified subset including v a and the directions of the first subset except v r ; and in response to the detection, excluding v r from the second subset and including v a into the second subset.
- the technique can use simple operations and structures to accelerate the detection of the directions of regularity, or reduce its implementation cost. It reduces the number of artifacts occurring in motion-compensated video interpolation.
- a feature of some embodiments consists in evaluating the relative marginal gain that a new direction provides to an existing subset of directions.
- most existing methods in the specific field of motion estimation only use an absolute efficiency measure of a displacement vector, without taking into account which displacements are already used.
- the present approach selects sparser direction sets, and also manages to put aside various artifacts.
- the directions subset is separable, i.e. it can be written as a sum of functionals applied to each direction individually. This choice is commonly made because this is the only case where directly minimizing the functional does not lead to a combinatorial explosion.
- the m directions for which the functional P takes the highest value are simply picked in that order.
- the determination of the second subset of candidate directions includes: evaluating first margins relating to respective contributions of the individual directions of the first subset to a cost function associated with the first subset; evaluating second margins relating to respective decrements of the cost function resulting from the addition of individual directions of the predefined set to the first subset; and substituting a direction of the predefined set for a direction of the first subset when the second margin evaluated for said direction of the predefined set exceeds the first margin evaluated for said direction of the first subset.
- a global cost function is minimized, whereas techniques such as phase correlation maximize a global correlation measure.
- the super-resolution processing of the video sequence may be interpolation or noise reduction. Simple noise reduction is also possible.
- the input video sequence I t (x) is defined on a grid of points (x, t) called “original pixels”.
- the output video sequence Î ⁇ ( ⁇ ) is defined on a grid of points ( ⁇ , ⁇ ) called “target pixels”.
- a pixel is defined by a position (x, t) or ( ⁇ , ⁇ ) and the value I t (x) or Î ⁇ ( ⁇ ) of the video image at that location, called a “pixel value”.
- the pixels for which a value has to be computed are the target pixels Î ⁇ ( ⁇ ) that are not original pixels I t (x), which are coined “new pixels” ( ⁇ t or ⁇ x).
- the frame rate is usually the same in the input and output video sequences, so that the time indexes t in the output sequence can be the same as those t in the input sequence; they will generally be denoted by integer indexes t, t+1, etc.
- the video deinterlacing process consists in adding interpolated missing lines into the successive frames of the input sequence.
- the time indexes t, t are not the same in the input and output video sequences. Integers t, t+1, etc., can be used to index the frames of the input sequence, and then some frames Î ⁇ are synthesized for non-integer values of ⁇ .
- the frame rate-converted output sequence includes synthesized frames Î ⁇ for non-integer values of ⁇ . Again, in order to synthesize those intervening frames Î ⁇ , an interpolation is performed for which it is useful to detect directions of regularity by analyzing the input video sequence.
- the analysis will involve at least the frames I t and I t+1 of the input sequence located immediately before and immediately after the non-integer time index ⁇ , i.e. t is the integer such that t ⁇ t+1.
- the target pixels are defined on a grid ( ⁇ , ⁇ ) different from the original pixel grid (x, t). This grid ( ⁇ , ⁇ ) is usually a finer grid that can be defined as a superset of the original pixel grid (x, t).
- Another aspect of the invention relates to a computer program product, comprising instructions to carry out a video analysis method as outlined above when said program product is run in a computer processing unit.
- Still another aspect of the invention relates to a video processing method, comprising: receiving successive images of an input video sequence; analyzing the input video sequence by applying a method as outlined above; and generating the output video sequence using the detected directions of regularity.
- the step of generating the video sequence may comprise performing interpolation between successive images of the input video sequence using the detected directions of regularity. Such interpolation may consist of video deinterlacing or of converting the frame rate of the input video sequence.
- the processing of the video sequence may comprise applying a noise reduction operation to the input video sequence using the detected directions of regularity.
- Still another aspect of the invention relates to a video processing apparatus, comprising computing circuitry arranged to analyze or process a video sequence as indicated hereabove.
- FIG. 1 is a block diagram of an embodiment of a video processing device.
- FIG. 2 is a block diagram of an example of direction selection unit usable in the device of FIG. 1 .
- FIG. 3 is a flow chart of an exemplary procedure of evaluating cost function margins in a device as illustrated in FIGS. 1 and 2 .
- FIG. 4 is a flow chart of an alternative embodiment of a loop used in the procedure of FIG. 3 .
- FIGS. 5 and 6 are flow charts of exemplary procedures of arbitrating between candidate directions in a device as illustrated in FIGS. 1 and 2 .
- FIGS. 7 and 8 are diagrams illustrating frame rate conversion processing applied to certain image portions.
- FIGS. 9 , 10 , 11 and 12 are diagrams illustrating video deinterlacing processing applied to similar image portions.
- FIG. 13 is a block diagram of a video processing apparatus according to an embodiment of the invention.
- a video processing device has an input receiving digital representations of successive images or frames of a video sequence.
- I t , I t+1 denote frames at discrete times t and t+1
- How the time indexes t and spatial indexes x are managed may differ from one video processing application to another, e.g. between deinterlacing, frame rate conversion and noise reduction. This issue will be addressed further below.
- a direction selection unit 101 implements a time recursive estimation to determine a subset D ⁇ ′ of candidate directions for an output frame Î ⁇ ′ based on a previous subset D ⁇ and on the consecutive input frames.
- the aforesaid “previous subset D ⁇ ” was determined for an output frame Î ⁇ which immediately precedes Î ⁇ ′ in the output video sequence.
- ⁇ ′ ⁇ +1 for deinterlacing or simple noise reduction
- ⁇ ′ ⁇ + ⁇ for frame rate conversion or super-resolution noise reduction.
- the input frames involved in the determination of the subset D ⁇ ′ at time ⁇ ′ include at least I t and I t+1 such that t ⁇ ′ ⁇ t+1. In certain embodiments, they may further include a few past frames I t ⁇ 1 , . . . , I t ⁇ n (n ⁇ 1).
- dx (dx 1 , dx 2 ) in the 2D image space
- dt time offset
- the value of an input pixel is corrupted by noise which can be averaged out if it is possible to identify some neighborhood of “similar” pixels. Again, such a neighborhood can extend in the 2D image space and/or in time.
- the method described below yields directions of regularity for pixels of the images which help determining the “similar” pixel values useful to the processing.
- the subset D ⁇ or D ⁇ ′ is said to define a sparse geometry.
- Each subset D ⁇ or D ⁇ ′ is a subset of a set ⁇ containing all the possible directions of regularity.
- the geometry defined by D ⁇ , D ⁇ ′ is said to be sparse because for each instant ⁇ , ⁇ ′, the number of different directions that can be used is limited to a relatively small number.
- the subset of candidate directions D ⁇ , D ⁇ ′ , . . . evolves in time with marginal changes. Directions that would be redundant in D ⁇ , D ⁇ ′ are removed and not used for the pixel-by-pixel processing.
- ⁇ can contain 200 to 1000 different directions (200 ⁇
- the subsets D ⁇ , D ⁇ ′ , . . . can have their sizes limited in the range 10 ⁇
- a direction detection unit 102 determines a distribution of directions of regularity ⁇ v ⁇ based on the consecutive frames I t , I t+1 (and possibly a few past frames I t ⁇ 1 , . . . , I t ⁇ n ) by testing only candidate directions belonging to the subset D ⁇ ′ determined by the selection unit 101 .
- the reduction in size from ⁇ to D ⁇ ′ makes it possible to carry out the detection without requiring an exceedingly high complexity.
- the video processing unit 103 uses the detected directions of regularity ⁇ v ⁇ to perform a video processing, such as deinterlacing, frame rate conversion or noise reduction to deliver output video frames from the input frames I t , I t+1 .
- a video processing such as deinterlacing, frame rate conversion or noise reduction
- Units 102 and 103 can implement any conventional or state-of-the-art methods, and simple examples will be given for completeness.
- the detection unit 102 can use the loss function described in WO 2007/115583 A1.
- the core of the invention lies in unit 101 that will be described in greater detail.
- the direction selection unit 101 considers a much larger set of directions than the direction detection unit 102 , an interesting possibility is to use a simpler or cost function in unit 101 than in unit 102 .
- the local cost functions are estimated more coarsely in the step of determining the direction subset D ⁇ ′ (selection unit 101 ) than in the step of picking the directions from that subset (direction detection unit 102 ). This provides substantial savings in terms of computational complexity or, equivalently, in terms of ASIC/FPGA logic size.
- the aim of the selection unit 101 is to compute a subset of directions D ⁇ ′ providing a useful description of the local regularity of the video sequence at an instant ⁇ ′ in the output sequence.
- the best subset D is the one that minimizes a global cost (or loss) function L(D):
- g is a convolution window function, i.e. with non-zero values in a vicinity of (0,0).
- the direction selection unit 101 as depicted in FIG. 2 has a block 201 for evaluating margins m(v) for different directions v of the set of possible directions ⁇ , and an arbitration block 202 to decide, based on the margins m(v) which directions of D ⁇ should be excluded from D ⁇ ′ and which directions of ⁇ D ⁇ should be included into D ⁇ ′ .
- the directions v selected to be added to D ⁇ to get D ⁇ ′ are chosen depending on how much they would marginally contribute to improving (reducing) the cost function L(D) according to (1).
- the directions v to be removed from D ⁇ are chosen depending on how little they marginally contribute to reducing that cost function L(D).
- D) is the measure of how much a new direction marginally contributes to lowering the cost function (1) already obtained with a subset of directions D.
- D) can be computed using:
- D) for a fixed D and for each x and each candidate v in ⁇ D can be done by determining the quantities L x (D) and L x (v). Then m(v
- the exchange margin M′ exch (v a , v r ) in (7) is not more than the actual exchange margin M exch (V a , v r ) in (5). If the approximated exchange margin M′ exch (v a , v r ) is non-negative, the actual exchange margin M exch (v a , v r ) is also non-negative. So a swap decided based on (7) cannot be a wrong one from the point of view of (5).
- FIG. 3 is a flow chart illustrating a procedure usable by block 201 to evaluate the margins m(v a
- D ⁇ ′ the margins m(v a
- m(v) stands for m(v r
- D ⁇ ) if the direction v ( v a ) is in ⁇ D and may be added to D.
- the margins m(v) are evaluated for all directions v in ⁇ by updating running sums that are set to zero at the initialization 301 of the procedure.
- the procedure scans the pixels x of the frame arrays I t and I t+1 one by one, a first pixel x being selected in step 302 .
- This first loop is initialized in step 311 by taking a first direction v in D and setting a variable A to an arbitrarily large value (for example its maximum possible value).
- variable A will contain the value of L x (D) defined in (2).
- step 312 the local cost L x (v) for pixel x and direction v is obtained and loaded into variable L.
- block 201 can either compute L x (v), for example according to one of the above-mentioned possibilities, or retrieve it from a memory if the costs L x (v) were computed beforehand.
- a test 313 is performed to evaluate whether L is smaller than A. If L ⁇ A, the direction index v is stored in a variable u and a variable B receives the value A in step 314 . Then the value L is allocated to the variable A in step 315 .
- variable u will contain the index of the direction v of D which minimizes L x (v), i.e.
- variable B will contain the second smallest value of L x (v) for the directions v of D, i.e.
- the local cost is compared to B in test 316 . If A ⁇ L ⁇ B (yes in test 316 ), the variable B is updated with the value L in step 317 . If L ⁇ B in test 316 , or after step 315 or 317 , the end-of-loop test 318 is performed to check if all the directions v of D have been scanned. If not, another direction v of D is selected in step 319 and the procedure returns to step 312 for another iteration of loop 310 .
- the margin m(u) of the direction u of D ⁇ which minimizes the local cost at pixel x is updated by adding thereto the quantity B ⁇ A (step 321 ).
- removing u from D would degrade the cost by that quantity while the margins for the other directions of D would remain unaffected.
- the processing for pixel x is then continued by a second loop 330 over the possible directions v that are not in D, in order to update the running sums for the directions of ⁇ D regarding pixel x.
- This second loop is initialized in step 331 by taking a first direction v in ⁇ D.
- the local cost L x (v) for pixel x and direction v is computed or retrieved to be loaded into variable L.
- step 334 the end-of-loop test 335 is performed to check if all the directions v of ⁇ D have been scanned. If not, another direction v of ⁇ D is selected in step 336 and the procedure returns to step 332 for another iteration of loop 330 .
- test 341 it is determined in test 341 if all pixels x of the relevant frame array have been scanned. If not, another pixel x of the array is selected in step 342 and the procedure returns to step 311 .
- the operation of block 201 regarding the current frame is over when test 341 shows that all the pixels have been processed.
- block 201 For each new input frame I t+1 , block 201 thus outputs the margins m(v) for all directions v of ⁇ , i.e. removal margins for the directions of D and addition margins for the directions of ⁇ D.
- the subset D can have an arbitrary content, or it can be determined with a coarse method over the first few frames. A correct subset will quickly be built due to the time recursion of the selection procedure.
- a second approximation can be made to further reduce the complexity of block 201 .
- D ⁇ ) is replaced by a modified margin m*(v a
- D) is a pixelwise sum:
- a modified exchange margin M* exch (v a , v r ) can be derived as follows:
- the modified exchange margin M* exch (V a , v r ) is not more than the actual exchange margin M exch (v a , v r ), because of (6) and because m* x (v a
- D) can be computed with less expensive computations or circuitry because, for each location x, at most one running sum corresponding to a single absolute best direction in ⁇ D has to be updated, whereas with non-modified margins m x (v a
- the impact on logic size is significant. For identical reasons, the impact on the worst-case execution time in a software implementation is also important.
- variable A* will contain the minimum of L x (v) for all directions v in ⁇ , i.e. L x ( ⁇ ).
- the local cost L x (v) for pixel x and direction v ⁇ D is computed or retrieved to be loaded into variable L in step 432 .
- a test 433 is then performed to evaluate whether L is smaller than A*. If L ⁇ A*, the above-mentioned variable u is updated to contain the direction index v, and the value L is allocated to the variable A* in step 434 . If L ⁇ A* in test 433 , or after step 434 , the end-of-loop test 435 is performed to check if all the directions v of ⁇ D have been scanned. If not, a further direction v of ⁇ D is selected in step 436 and the procedure returns to step 432 for another iteration of loop 430 .
- step 441 the margin m(u) of the direction u of ⁇ which minimizes the local cost at pixel x is updated by adding thereto the quantity A ⁇ A* (step 441 ). If u ⁇ D, step 441 changes nothing. If u ⁇ D, adding u to D would reduce the cost function by A ⁇ A* as far as pixel x is concerned, while the margins for the other directions of ⁇ D would remain unaffected.
- FIG. 6 illustrates another approach in which block 202 can swap more than one pair of directions.
- the number n can be any integer between 1 and
- . In the case n 1, the procedure of FIG. 6 is the same as that of FIG. 5 .
- the inclusion of new directions w of ⁇ D ⁇ into D ⁇ ′ can be prevented when m(w) is below the threshold T.
- the number n can be set as the largest integer in ⁇ 1, 2, . . . ,
- the use of the threshold T helps to prune the set of candidate directions and to select a number of candidate directions that is adapted to the geometric complexity of the video, i.e. to select the sparsest set of directions suitable for the video.
- FIGS. 7 and 8 illustrate the results provided by an embodiment of the invention in a case where the video processing unit 103 performs interpolation and more particularly frame rate conversion with a ratio of 2 between the frame rates of the output and input video sequences.
- the video sequence in this example is a horizontally scrolling caption with the text “Sweeet”.
- 701 and 801 denote the image at time t
- images 701 / 801 and 703 / 803 times t and t+1
- the whole text “Sweeet” has scrolled 10 pixels to the left.
- a possible cause for mismatch is that the text contains several times the letter “e” with a periodicity of 8 pixels, and the direction detection unit 102 might be mistaken by the first “e” at time t looking like another “e” in the next input image at time t+1, leading to artifacts as shown in 702 .
- Two directions of regularity can be found with a local measure on this sequence:
- the detected direction may group the first “e” at time t with the second “e” at time t+1 (see the squares in FIG. 7 ) and the second “e” at time t with the third “e” at time t+1, leading to incorrect temporal interpolation.
- Reference 702 shows an incorrect image with an artifact resulting from this incorrect interpolation.
- a simple workaround consisting in mixing the interpolated values corresponding to both detected directions v (1) , v (2) does not solve the problem either.
- the margin of v (1) with respect to D ⁇ ′ will be high because only v (1) can account for the scrolling of the letters “S”, “w” and “t”. So v (1) will at some time ⁇ ′ enter D ⁇ ′ . This done, since v (1) is a possible direction of the video over all letters including all “e”s, the margin of
- the loss function used in units 101 and 102 can then be adapted accordingly.
- FIGS. 9-12 are diagrams similar to FIGS. 7-8 illustrating application of an embodiment of the invention to super-resolution video deinterlacing.
- FIGS. 9-10 show the same text “Sweeet” scrolling in an interlaced video format at the input of the apparatus.
- References 901 , 1001 , 1101 and 1201 show an even input field at time t ⁇ 1
- references 903 , 1003 , 1103 and 1203 show the next even input field at time t+1
- references 902 and 1002 show the intervening odd input field at time t.
- the vertical coordinate dx 2 of to the half-direction v can be odd. This allows deinterlacing properly video sequences including half-pixel vertical speeds. If such a direction description is referred to in the direction selection and detection units 101 - 102 , the processing unit 103 may interpolate Î ⁇ ′ ( ⁇ ) as:
- Another possibility in deinterlacing applications is to compute costs for directions where the fields are shot at irregularly spaced times, in addition to directions associated with fields shot at evenly spaced times. This is for example the case when the original source of the video contents is film converted to video using “telecine”. For example, in 2:2 telecine used in Europe, when 25 fps (frames per second) film is transferred to 50 fps video, each film frame is used to generate two video fields, so fields I 0 , I 1 , I 2 , I 3 are shot at respective times 0 s, 0 s, 2/50 s, 2/50 s, instead of times 0/50 s, 1/50 s, 2/50 s, 3/50 s for video-originating contents.
- a video signal can contain a mix of film-originating contents and video-originating contents, so this detection has to be made pixelwise.
- Specific local cost functions can be chosen for detecting whether for a given pixel, the video is film-originating and whether the field just before or just after originates from the same film frame.
- a configuration of the direction at each pixel is then one of the following:
- film-before means that at a given pixel location, the contents is film-originating, and the preceding field comes from the same film frame, so that missing pixels can be picked at the same location from the preceding field
- film-after means that at a given pixel location, the contents is film-originating, and the field after comes from same film frame
- (video, v) means that at the current pixel location, the contents is video-originating, and the direction vector is v.
- This description exemplifies another case where the “direction” can be defined by a local descriptor more complex than a single 3D vector v. In this case, the “direction” is a symbol which is one of (film-before), (film-after), (video,v) where v is a vector.
- the processing unit 103 of FIG. 1 computes for each target pixel ⁇ , ⁇ its new value by using a directional averaging function K v at ⁇ with:
- I ⁇ ⁇ ⁇ ( ⁇ ) ⁇ x , t ⁇ K v ⁇ ( ⁇ - x , ⁇ - t ) . I t ⁇ ( x )
- K v ( x,t ) K 1 ( t ) ⁇ K 2 ( x ⁇ t ⁇ dx/dt )
- K 1 and K 2 are 1D and 2D averaging kernels, for example Gaussian.
- the video processing performed in the processing unit 103 receives a variable number of directions from the direction detection unit 102 .
- Each of these directions can be accompanied with a relevance measure.
- a fallback interpolation function or averaging function can be used.
- the target pixel value can be computed by combining the pixel values computed with each interpolating or averaging function corresponding to each direction. This combination can be an averaging, a weighted averaging using the relevance measure, or a median, or a weighted median, or any other kind of method to combine these pixel values.
- IIR infinite impulse response
- the sparse geometry is used to enhance the type of processing disclosed in WO 2007/059795 A1 when the processed signal is a video signal.
- the set ⁇ of candidate directions is partitioned into a plurality of subsets ⁇ 1 , . . . , ⁇ J (J>1), and only one of the subsets ⁇ 1 , . . . , ⁇ J is considered by the direction selection unit 101 at each time ⁇ ′ to provide candidates to enter the subset of selected directions D ⁇ ′ .
- This is interesting when the set ⁇ is too large to be entirely scanned for candidates in every cycle ⁇ ′. For example, at a time when subset ⁇ j is considered (1 ⁇ j ⁇ J), loop 330 in FIG. 3 or 430 in FIG. 4 is carried out for the directions v that are in ⁇ 1 but not in D.
- W p,q ⁇ ( x 1 ,x 2 ): w ⁇ ( p ⁇ 1) ⁇ x 1 ⁇ w ⁇ p and h ⁇ ( q ⁇ 1) ⁇ x 2 ⁇ h ⁇ q ⁇
- h and w are respectively the height and the width (in pixels) of these windows, and the window indexes p, q are in the ranges 1 ⁇ p ⁇ P, 1 ⁇ q ⁇ Q.
- the total number of windows is P ⁇ Q.
- D) can be computed using a formula similar to (4), but with a sum spanning an image region limited to this window W p,q :
- a third subset D ⁇ ′,p,q of candidate directions is thus determined as a subset of the second subset D ⁇ ′ determined for the whole area of I t+1 , based on cost margins m p,q (v
- the selection allows to eliminate a bad direction ( ⁇ 1, 0, 1 ⁇ 2) [or ( ⁇ 2, 0, 1)] and to only use the right direction ( ⁇ 5, 0, 1 ⁇ 2) [or ( ⁇ 10, 0, 1)]. If the scene is more complex and somewhere else in the picture an object happens to be exhibiting a direction of regularity ( ⁇ 1, 0, 1 ⁇ 2), this vector ( ⁇ 1, 0, 1 ⁇ 2) will be present in D ⁇ ′ , and the benefit of the selection made in unit 101 may be lost to properly handle the scrolling text. If the selection margins are recomputed on smaller windows W p,q , the probability that such a window W p,q includes both the scrolling text and the object having the single direction of regularity ( ⁇ 1, 0, 1 ⁇ 2) will be much lower.
- a multiscale selection scheme can be devised to avoid this difficulty, by recursively splitting the image support into windows, and each window into sub-windows. For each window, the subset of directions is selected as a subset of the subset of directions that was selected for the parent region (whole image or higher-layer window).
- one or more of the windows W p,q is further split into a plurality of sub-windows W p,q,r,s , and for each sub-window a fourth subset D ⁇ ′,p,q,r,s of candidate directions is determined as a subset of the third subset D ⁇ ′,p,q determined for the window W p,q , based on cost margins m p,q,r,s (v
- the subset D ⁇ ′ of selected directions can be constrained to satisfy various criteria. For example:
- the above-described embodiments may be implemented by means of software run by general-purpose microprocessors or digital signal processors, in which case the modules described above with reference to FIGS. 1-6 are understood to be or form part of software modules or routines. It may also be implemented as a hardware component as illustrated in FIG. 13 , for example in an application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA) for interpolating a video stream, in addition to other video processing blocks 1302 , 1304 , before and/or after the video interpolation block 1303 . Alternatively, the video processing block 1303 may implement a noise reduction method as described above. In an exemplary embodiment, the video processing blocks 1302 , 1303 , 1304 are implemented in a single chip 1301 .
- ASIC application-specific integrated circuit
- FPGA field-programmable gate array
- the chip also has video input and output interfaces, and external RAM (random access memory) devices 1305 and 1306 as temporary storage required for the different video processing steps performed in 1302 , 1303 and 1304 .
- RAM random access memory
- Other variants of this embodiment can be equally considered as part of the invention, with more complete video processing chips, or even system-on-chip devices including other functionalities.
- the hardware device can then be incorporated into various kinds of video apparatus.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Television Systems (AREA)
- Image Processing (AREA)
Abstract
In a method of analyzing an input video sequence, pixels of synthesized images of an output video sequence are associated with respective directions of regularity belonging to a predefined set of directions. A first subset of candidate directions is determined from the predefined set of directions for a region of a first image of the output sequence. For a corresponding region of a second synthesized image of the output sequence following the first image, a second subset of candidate directions is determined from the predefined set of directions, based on images of the input sequence and the first subset of candidate directions. The directions of regularity for pixels of this region of the second synthesized image are detected from the second subset of candidate directions. The recursive determination of the subsets of candidate directions provides a sparse geometry for efficiently analyzing the video sequence.
Description
- This application is a continuation under 35 U.S.C. §120 of U.S. application Ser. No. 12/812,201, titled “SPARSE GEOMETRY FOR SUPER RESOLUTION VIDEO PROCESSING,” filed on Jul. 8, 2010, which is hereby incorporated by reference in its entirety. U.S. patent application Ser. No. 12/812,201 is a National Stage application under 35 U.S.C. §371 of International Application PCT/IB2008/051270, titled “SPARSE GEOMETRY FOR SUPER RESOLUTION VIDEO PROCESSING,” filed on Jan. 11, 2008.
- The present invention relates to digital video processing. It is applicable, in particular, in the field of super-resolution video processing. Super-resolution video processing methods are used in various applications including super-resolution interpolation (such as frame-rate conversion, super-resolution video scaling and deinterlacing) and reduction of compression artifacts and/or noise.
- In digital systems, a video sequence is typically represented as an array of pixel values It(x) where t is an integer time index, and x is a 2-dimensional integer index (x1, x2) representing the position of a pixel in the image. The pixel values can for example be single numbers (e.g. gray scale values), or triplets representing color coordinates in a color space (such as RGB, YUV, YCbCr, etc.).
- Super-resolution video processing methods consist in computing new pixel values (for interpolation) or new values of existing pixels (for noise reduction) by combining pixel values of several adjacent video frames in time.
- WO 2007/115583 A1 discloses a super-resolution video processing method which exhibits very few artifacts. The method consists in selecting for each new pixel to be calculated an interpolator best suited for computing that pixel. For certain particular sequences, however, it may be necessary to enhance the method by increasing the total number of interpolators considered. The quality is increased but at the cost of a higher complexity.
- In video interpolation applications, known techniques are motion adaptive or motion compensated.
- Motion-adaptive video deinterlacing only provides full resolution deinterlaced frames when the video is not moving. Otherwise, the deinterlaced frames exhibit jagged contours or lower resolution textures, and flicker. An example of an advanced motion adaptive technique is described in U.S. Pat. No. 5,428,398.
- Motion-compensated techniques are known to reach better quality levels, at the expense of being less robust and displaying in some cases substantially worse artifacts than motion-adaptive techniques. This happens in particular at locations of the video where motion estimation does not work well, like occlusions, transparent objects, or shadows. An example of a motion-compensated deinterlacing technique is described in U.S. Pat. No. 6,940,557.
- A standard way to perform frame-rate conversion includes estimating motion estimation between two frames to compute a dense motion field, and computing new frames with motion-compensated interpolation. For the same reasons as above, frame-rate conversion based on such steps has a number of drawbacks. Dense motion estimation fails on periodic patterns, on contours or on flat areas.
- A popular technique for motion estimation is referred to as “block matching”. In the block matching technique, estimating the motion at x and t consists in minimizing a matching energy Ex(v) over a window W which is a set of offsets d=(d1, d2). A possible form of the matching energy (L1-energy) is
-
- Another form frequently used is the L2-energy or Euclidean distance:
-
- Block matching is well suited for motion compensation in video compression schemes such as MPEG, which make use of block-based transforms. If the matching algorithm matches two windows of images that are similar, but do not represent the same object (e.g. matching the first ‘e’ with the second ‘e’ in an image of the word “sweet”), compression efficiency is not impaired. However, when doing video interpolation, matching groups of pixels which do not actually correspond to the same object leads to interpolation artifacts, because the interpolated pixels will reflect an “incorrect motion” due to spatial correlation in the objects appearing in the images.
- Block matching methods are computationally intensive, in proportion to the number of possible displacements that are actually considered for each pixel. In video compression again, “fast” block matching strategies consist in limiting the range of possible displacements using predetermined motion subsets. This is not acceptable in video interpolation where using a displacement vector that is too inaccurate leads to blurry interpolated images or to artifacts.
- To circumvent these problems in motion estimation, several methods have been developed. A first set of methods impose a smoothness constraint on the motion field, i.e. by imposing that for pixels that close one to another, the corresponding motion vectors are close. This can be achieved with multiscale motion estimation, or recursive block matching. Another type of method designed to solve this issue is phase correlation.
- U.S. Pat. No. 5,742,710 discloses an approach based on multiscale block-matching. In the 2-scale case, block matching is performed between copies of It and It+1 that have been reduced in size by a factor of 2 in each dimension (i.e. four times less pixels) and the resulting displacement map is then refined to obtain a resolution twice finer. The refinement process is a search of limited range around the coarse scale results. As a result, the cost of the displacement search is reduced because full range searches are done only on smaller images. The resulting displacement field is also smoother because it is a refinement of a low resolution map. However, the motion in a scene cannot be accurately accounted for by a smooth displacement map: the motion field is inherently discontinuous, in particular around object occlusions. Enforcing a displacement map smoothness constraint is not an appropriate way to address the robustness issue.
- Another method to handle in a similar way this problem is recursive block matching as disclosed in “True-Motion with 3D Recursive Search Block Matching”, G. De Haan et al., IEEE Transactions on Circuits and Systems for Video Technology, Vol. 3, No. 5, October 1993, pp. 368-379. This method significantly reduces the cost of computing a motion map, but it can still be misled by periodic patterns or even occlusions.
- GB-A-2 188 510 discloses a so-called phase correlation method in which a displacement energy map is computed over a large image window for a set of candidate displacements. This map can be computed efficiently using fast Fourier transform. A subset of displacements corresponding to peak values in the energy map is determined as including the most representative displacements over this window. Then block matching is performed as a second step pixelwise considering only this subset of displacements.
- This method reduces the complexity of motion estimation, and is also able to detect discontinuous motion maps. With the phase correlation technique, the motion map is also regularized and constrained, but in a way very different from spatial regularization. Instead of imposing a local smoothness of the motion map, phase correlation limits to a fixed number the set of different possible vectors in a motion map.
- However, phase correlation still requires relatively complex computations based on 2-dimensional fast Fourier transforms that are expensive to implement in hardware. Also, the method selects motion vectors on the basis of individual merit that is assessed with their phase correlation. So it has a limited ability to provide a minimal set of motion vectors. Indeed, when a moving pattern has a periodic structure or is translation-invariant, several vectors have comparable merit values, and phase correlation is not able to arbitrate between them. The resulting motion-compensated video interpolation process is thus of suboptimal robustness. This has also a cost in terms of complexity because for all pixels, more candidate motion vectors are considered than necessary.
- Other classes of approaches include selecting a first subset of displacements by computing low-complexity matching energies on candidate vectors. This can reduce the computational complexity to some extent, but it is not an appropriate way to make the motion-compensated interpolation more reliable.
- Classical and still popular methods for noise reduction in video sequences include motion-compensated recursive or non-recursive temporal filtering. See, e.g., “Noise reduction in Image Sequences Using Motion-Compensated Temporal Filtering”, E. Dubois and S. Sabri, IEEE Transactions on Communications, Vol. COM-32, No. 7, July 1984, pp. 826-832. This consists in estimating motion between a frame and a preceding frame, and filtering the video sequence along the estimated motion with a temporal filter.
- Other known methods use motion-compensated 3D wavelet transforms. See “Three-Dimensional Embedded Subband Coding with Optimized Truncation (3D-ESCOT)”, Xu, et al., Applied and Computational Harmonic Analysis, Vol. 10, 2001, pp. 290-315. The motion-compensated 3D wavelet transform described in this paper can be used for noise reduction, by performing a wavelet thresholding on this 3D transform. The limitation of such an approach using lifting-based wavelet transform along motion threads is its very high sensitivity to the corruption of the motion map by noise.
- WO 2007/059795 A1 describes a super-resolution processing method that can be used for long-range noise reduction or super-resolution scaling. The method is based on a bandlet transform using multiscale grouping of wavelet coefficients. This representation is much more appropriate for noise reduction or super-resolution scaling than the 3D transform described in the 3D-ESCOT paper. The multiscale grouping performs a variable range image registration that can be computed for example with block matching or any state of the art image registration process. For both super-resolution scaling and noise reduction, it is important that the image registration map used is not corrupted by noise or by aliasing artifacts.
- Whatever the application (interpolation or noise reduction), using a motion-compensated approach with a dense flow field has limitations: aperture, irrelevance of a single motion model for contents with transparent objects or shadows. Analyzing the local invariance structure of video by detecting at each pixel one or more directions of regularity of the video signal in space and time, as described in WO 2007/115583 A1 provides a more general and robust way to do video interpolation. There is thus a need for a technique which makes it possible to detect such directions in an efficient way and with enhanced robustness.
- An object of the present invention is to propose a method useful for detecting directions of regularity in an input video stream with high accuracy and high robustness. In particular, in super-resolution video interpolation, it is desired to avoid artifacts usually caused by incoherent interpolation directions. In video noise reduction, it is desired to select averaging directions that are not corrupted by noise.
- Another object is to reduce substantially the implementation complexity of the super-resolution interpolation or noise reduction processing.
- A method of analyzing an input video sequence is disclosed in which pixels of synthesized images of an output video sequence are associated with respective directions of regularity belonging to a predefined set of directions. The method comprises: determining, from the predefined set of directions, a first subset of candidate directions for a region of a first image of the output sequence; determining, from the predefined set of directions, a second subset of candidate directions for a corresponding region of a second synthesized image of the sequence following the first image, based on images of the input sequence and the first subset of candidate directions; and detecting the directions of regularity for pixels of said region of the second synthesized image from the second subset of candidate directions.
- The subset of candidate directions is determined in a time recursion by taking into account the subset determined at a preceding time. Typically, directions will be added to or removed from the subset depending on incremental changes of a cost function caused by such addition or removal. The image “regions” can encompass the whole image area, or only part of it, as discussed further below.
- The determination of the second subset of candidate directions may comprise: detecting at least one pair of directions vr and va such that vr belongs to the first subset of candidate directions, va belongs to the predefined set of directions but not to the first subset, and a cost function associated with the first subset with respect to the first and second images is higher than the cost function associated with a modified subset including va and the directions of the first subset except vr; and in response to the detection, excluding vr from the second subset and including va into the second subset.
- The technique can use simple operations and structures to accelerate the detection of the directions of regularity, or reduce its implementation cost. It reduces the number of artifacts occurring in motion-compensated video interpolation.
- A feature of some embodiments consists in evaluating the relative marginal gain that a new direction provides to an existing subset of directions. In contrast, most existing methods in the specific field of motion estimation only use an absolute efficiency measure of a displacement vector, without taking into account which displacements are already used. The present approach selects sparser direction sets, and also manages to put aside various artifacts.
- For example, the known phase correlation method consists in finding inside a region of the image the best displacements according to a global phase correlation measure. Within a certain image region, all candidate displacements Vi have an associated phase correlation value which can be noted P(Vi), for i=1, . . . , n. An optimal subset will then consist of displacements with the highest phase correlation values. This can be compared to selecting the subset of m directions (Vi)iεS such that
-
- is maximal. The functional
-
- on the directions subset is separable, i.e. it can be written as a sum of functionals applied to each direction individually. This choice is commonly made because this is the only case where directly minimizing the functional does not lead to a combinatorial explosion. To find the optimal subset S from the point of view of phase correlation, the m directions for which the functional P takes the highest value are simply picked in that order.
- If, however, the functional is not separable and can only be written as P({Vi}iεS), the minimization cannot be done using such a simple algorithm. Finding the best subset of candidates directly is of high combinatorial complexity. In some cases, however, what can still be done is computing variations of the functional when a vector or direction is added to or removed from the selected subset, i.e. P({Vi}iεS)−P({Vi}iεS′) where S and S′ only differ by one element. This then opens the way to incremental optimization of the functional in a time-recursive way.
- Hence, in certain embodiments, the determination of the second subset of candidate directions includes: evaluating first margins relating to respective contributions of the individual directions of the first subset to a cost function associated with the first subset; evaluating second margins relating to respective decrements of the cost function resulting from the addition of individual directions of the predefined set to the first subset; and substituting a direction of the predefined set for a direction of the first subset when the second margin evaluated for said direction of the predefined set exceeds the first margin evaluated for said direction of the first subset. It is noted that a global cost function is minimized, whereas techniques such as phase correlation maximize a global correlation measure.
- The super-resolution processing of the video sequence may be interpolation or noise reduction. Simple noise reduction is also possible.
- The input video sequence It(x) is defined on a grid of points (x, t) called “original pixels”. The output video sequence Îτ(ξ) is defined on a grid of points (ξ, τ) called “target pixels”. A pixel is defined by a position (x, t) or (ξ, τ) and the value It(x) or Îτ(ξ) of the video image at that location, called a “pixel value”.
- In the particular case of video interpolation, some target pixels Îτ(ξ) spread over space and/or time may also be original pixels It(x) (τ=t, ξ=x) and do not need to be recomputed since we can take Îτ(ξ)=It(x). The pixels for which a value has to be computed are the target pixels Îτ(ξ) that are not original pixels It(x), which are coined “new pixels” (τ≠t or τ≠x).
- In the case of video deinterlacing, the frame rate is usually the same in the input and output video sequences, so that the time indexes t in the output sequence can be the same as those t in the input sequence; they will generally be denoted by integer indexes t, t+1, etc. The video deinterlacing process consists in adding interpolated missing lines into the successive frames of the input sequence. Typically, the odd frames of the input sequence only have odd lines while the even frames only have even lines, i.e. for x=(x1, x2), the input video sequence provides It(x) only if t and x2 are both odd or both even. The synthesized frames Ît of the output deinterlaced video sequence are made of pixels Îτ(ξ) with ξ=(x1, x2) and without any parity constraint on the integer lines indexes x2, such that Ît(ξ)=It(ξ) if t and x2 are both odd or both even. The object of video deinterlacing is to interpolate the “best” values for Ît(ξ)=Ît(x1, x2) where one of t and x2 is odd and the other one is even. In order to perform such interpolation, it is useful to detect inter-frame and/or intra-frame directions of regularity.
- In the case of frame rate conversion, the time indexes t, t are not the same in the input and output video sequences. Integers t, t+1, etc., can be used to index the frames of the input sequence, and then some frames Îτ are synthesized for non-integer values of τ. The spatial indexes ξ=x=(x1, x2) are often the same in the input and output frames It, Îτ. The frame rate-converted output sequence includes synthesized frames Îτ for non-integer values of τ. Again, in order to synthesize those intervening frames Îτ, an interpolation is performed for which it is useful to detect directions of regularity by analyzing the input video sequence. In order to detect the directions of regularity for the pixels of a synthesized output frame Îτ, the analysis will involve at least the frames It and It+1 of the input sequence located immediately before and immediately after the non-integer time index τ, i.e. t is the integer such that t<τ<
t+ 1. - In the case of video noise reduction, all target pixel values have to be recomputed. According to these conventions, combined super-resolution video scaling and noise reduction are a case of super-resolution noise reduction. For simple noise reduction, the target pixel grid (ξ, τ) is the same as that (x, t) of the original pixels: Ît(x)=It(x)−νt(x), where νt(x) is a noise component estimate cancelled by the process. For combined super-resolution noise reduction and scaling, the target pixels are defined on a grid (ξ, τ) different from the original pixel grid (x, t). This grid (ξ, τ) is usually a finer grid that can be defined as a superset of the original pixel grid (x, t).
- Another aspect of the invention relates to a computer program product, comprising instructions to carry out a video analysis method as outlined above when said program product is run in a computer processing unit.
- Still another aspect of the invention relates to a video processing method, comprising: receiving successive images of an input video sequence; analyzing the input video sequence by applying a method as outlined above; and generating the output video sequence using the detected directions of regularity.
- The step of generating the video sequence may comprise performing interpolation between successive images of the input video sequence using the detected directions of regularity. Such interpolation may consist of video deinterlacing or of converting the frame rate of the input video sequence. In another embodiment, the processing of the video sequence may comprise applying a noise reduction operation to the input video sequence using the detected directions of regularity.
- Still another aspect of the invention relates to a video processing apparatus, comprising computing circuitry arranged to analyze or process a video sequence as indicated hereabove.
-
FIG. 1 is a block diagram of an embodiment of a video processing device. -
FIG. 2 is a block diagram of an example of direction selection unit usable in the device ofFIG. 1 . -
FIG. 3 is a flow chart of an exemplary procedure of evaluating cost function margins in a device as illustrated inFIGS. 1 and 2 . -
FIG. 4 is a flow chart of an alternative embodiment of a loop used in the procedure ofFIG. 3 . -
FIGS. 5 and 6 are flow charts of exemplary procedures of arbitrating between candidate directions in a device as illustrated inFIGS. 1 and 2 . -
FIGS. 7 and 8 are diagrams illustrating frame rate conversion processing applied to certain image portions. -
FIGS. 9 , 10, 11 and 12 are diagrams illustrating video deinterlacing processing applied to similar image portions. -
FIG. 13 is a block diagram of a video processing apparatus according to an embodiment of the invention. - Referring to
FIG. 1 , a video processing device has an input receiving digital representations of successive images or frames of a video sequence. It, It+1 denote frames at discrete times t and t+1, and It(x), It+1 (x) denote pixel values of those frames for a pixel located by a 2-dimensional index x=(x1, x2). How the time indexes t and spatial indexes x are managed may differ from one video processing application to another, e.g. between deinterlacing, frame rate conversion and noise reduction. This issue will be addressed further below. - A
direction selection unit 101 implements a time recursive estimation to determine a subset Dτ′ of candidate directions for an output frame Îτ′ based on a previous subset Dτ and on the consecutive input frames. The aforesaid “previous subset Dτ” was determined for an output frame Îτ which immediately precedes Îτ′ in the output video sequence. For example τ′=τ+1 for deinterlacing or simple noise reduction; τ′=τ+δτ for frame rate conversion or super-resolution noise reduction. The input frames involved in the determination of the subset Dτ′ at time τ′ include at least It and It+1 such that t≦τ′<t+ 1. In certain embodiments, they may further include a few past frames It−1, . . . , It−n (n≧1). - As referred to herein, a “direction” v=(dx, dt) is meant as a direction in the 3D space in which two dimensions relate to pixel offsets dx=(dx1, dx2) in the 2D image space and the third direction relates to a time offset dt. There are a number of video applications in which it is desired to look for directions of regularity in an incoming video sequence. When doing video interpolation for example, one must determine the values of certain missing pixels based on “similar” pixels in a neighborhood of the missing pixels. Such a neighborhood can extend in the 2D image space and/or in time, so that it is relevant to look for it in the above-mentioned 3D space. Likewise, in noise reduction applications, the value of an input pixel is corrupted by noise which can be averaged out if it is possible to identify some neighborhood of “similar” pixels. Again, such a neighborhood can extend in the 2D image space and/or in time. The method described below yields directions of regularity for pixels of the images which help determining the “similar” pixel values useful to the processing.
- The subset Dτ or Dτ′ is said to define a sparse geometry. Each subset Dτ or Dτ′ is a subset of a set Ω containing all the possible directions of regularity. The geometry defined by Dτ, Dτ′ is said to be sparse because for each instant τ, τ′, the number of different directions that can be used is limited to a relatively small number. As described further below, the subset of candidate directions Dτ, Dτ′, . . . evolves in time with marginal changes. Directions that would be redundant in Dτ, Dτ′ are removed and not used for the pixel-by-pixel processing.
- Typically, Ω can contain 200 to 1000 different directions (200≦|Ω|≦1000, bars being used to denote the size of a set). The subsets Dτ, Dτ′, . . . can have their sizes limited in the range 10≦|Dτ|≦50.
- A
direction detection unit 102 then determines a distribution of directions of regularity {v} based on the consecutive frames It, It+1 (and possibly a few past frames It−1, . . . , It−n) by testing only candidate directions belonging to the subset Dτ′ determined by theselection unit 101. The reduction in size from Ω to Dτ′ makes it possible to carry out the detection without requiring an exceedingly high complexity. - Finally, the
video processing unit 103 uses the detected directions of regularity {v} to perform a video processing, such as deinterlacing, frame rate conversion or noise reduction to deliver output video frames from the input frames It, It+1. -
Units detection unit 102 can use the loss function described in WO 2007/115583 A1. The core of the invention lies inunit 101 that will be described in greater detail. - As the
direction selection unit 101 considers a much larger set of directions than thedirection detection unit 102, an interesting possibility is to use a simpler or cost function inunit 101 than inunit 102. In other words, the local cost functions are estimated more coarsely in the step of determining the direction subset Dτ′ (selection unit 101) than in the step of picking the directions from that subset (direction detection unit 102). This provides substantial savings in terms of computational complexity or, equivalently, in terms of ASIC/FPGA logic size. - This can be done, for example, by using less precise representations of pixel values, e.g. 5- or 6-bit pixel values in
unit 101 instead of 8- to 10-bit pixel values inunit 102. Another possibility is to use in thedirection selection unit 101 convolution windows g (to be described further below) that are simpler to compute than those used in thedirection detection unit 102, e.g. window profiles corresponding to simple infinite impulse response (IIR) filters which do not require so much logic and memory as large explicit finite impulse response (FIR) filters. Also, cost functions (described below) of different computational complexities can be used for the subset selection inunit 101, and for the pixelwise direction detection inunit 102. - The aim of the
selection unit 101 is to compute a subset of directions Dτ′ providing a useful description of the local regularity of the video sequence at an instant τ′ in the output sequence. The best subset D is the one that minimizes a global cost (or loss) function L(D): -
- where the sum over the pixels (x) spans the whole image area (or part of it). The quantity Lx(v) to be minimized over the candidate directions v of D is a local cost (or loss) function, which can be of various kinds for v=(dx, dt), such as:
-
Absolute difference: L x(v)=|I t(x)−I t+dt(x+dx)| -
Quadratic difference: L x(v)=|I t(x)−I t+dt(x+dx)|2 - Weighted sum of absolute differences:
-
- Weighted sum of quadratic differences:
-
- where g is a convolution window function, i.e. with non-zero values in a vicinity of (0,0).
- Other variants are possible, including computing local cost functions over more than two frames of the video sequence, e.g. Lx(v)=|It(x)−It+dt(x+dx)|+|It(x)−It−dt(x−dx)|, and similar variations.
- For convenience, we also define the local cost Lx(D) of a set of directions as the minimum of the loss function over all directions in that set:
-
- Note that finding the subset D minimizing (1) is of extreme combinatorial complexity, because the value of adding a direction to the subset D depends on the directions already present in that subset. To overcome this difficulty, an incremental approach is proposed. The minimization is done using time recursion, by applying only marginal changes to Dτ, Dτ′, . . . in time.
- The
direction selection unit 101 as depicted inFIG. 2 has ablock 201 for evaluating margins m(v) for different directions v of the set of possible directions Ω, and anarbitration block 202 to decide, based on the margins m(v) which directions of Dτ should be excluded from Dτ′ and which directions of Ω−Dτ should be included into Dτ′. The directions v selected to be added to Dτ to get Dτ′ are chosen depending on how much they would marginally contribute to improving (reducing) the cost function L(D) according to (1). Likewise, the directions v to be removed from Dτ are chosen depending on how little they marginally contribute to reducing that cost function L(D). - Deciding which elements are in Dτ′ cannot be done by evaluating L(D) for the various combinations D which may form Dτ′. However, how L(D) varies when a new direction v of Ω−D is added to D can be estimated using the margin, noted m(v|D), of a direction v with respect to an existing direction subset D:
-
m(v|D)=L(D)−L(D+{v}) (3) - where D+(v) denotes the union of the set D and of the singleton {v}. In other words, m(v|D) is the measure of how much a new direction marginally contributes to lowering the cost function (1) already obtained with a subset of directions D. The margins m(v|D) can be computed using:
-
- where the local margin mx(v|D) at location x of v with respect to D is:
-
- mx(v|D)=0 if Lx(v)≧Lx(D), i.e. when v is not better at minimizing the cost function at pixel position x than the directions already in D;
- mx(v|D)=Lx(D)−Lx(v) else.
- Computing a margin mx(v|D) for a fixed D and for each x and each candidate v in Ω−D can be done by determining the quantities Lx(D) and Lx(v). Then m(v|D) is computed by updating running sums of mx(v|D).
- Let us consider the case of including a new direction va, and removing an already selected direction vr from Dτ to compute Dτ′ as
-
D τ′ =D τ −{v r }+{v a}. - The decrease of the global cost (1) caused by such an exchange can be written as an exchange margin Mexch(va, vr):
-
- If Mexch(va, vr)>0, namely m(va|Dτ)>m(vr|Dτ−{vr}+{va}), substituting direction va for direction vr in Dτ reduces the global cost so that it is worth swapping vr and va. Computing these various margins is tractable, but it is still possible to significantly reduce the amount of computation. This can be understood as follows: “if va provides a larger marginal decrease of the global cost than vr was providing, it is reasonable to do the exchange”. In such an approach, instead of computing the exact margins m(vr|Dτ−{vr}+{va}) in (5), some approximations can be made.
- In a first approximation, m(vr|Dτ−{vr}+{va}) is replaced by m(vr|Dτ−{vr}). The following inequality is always verified:
-
m(v r |D τ −{v r})≧m(v r |D τ −{v r }+{v a}) (6) - The complexity gain provided by this approximation is significant. The number of margins to be computed is now of order |D| instead of |Ω−D|×|D|. Using this approximation, we can derive a exchange margin M′exch(Va, vr) as follows:
-
M′ exch(v a ,v r)=m(v a ↑D τ)−m(v r |D τ −{v r}) (7) - Note that the exchange margin M′exch(va, vr) in (7) is not more than the actual exchange margin Mexch(Va, vr) in (5). If the approximated exchange margin M′exch(va, vr) is non-negative, the actual exchange margin Mexch(va, vr) is also non-negative. So a swap decided based on (7) cannot be a wrong one from the point of view of (5).
-
FIG. 3 is a flow chart illustrating a procedure usable byblock 201 to evaluate the margins m(va|Dτ) and m(vr|Dτ−{vr}) used in (7). InFIG. 3 , it is assumed that one subset Dτ′ of candidate directions is determined for each new input frame It+1 received by thedirection selection unit 101. This assumption is valid for video deinterlacing or simple noise reduction (e.g. τ=t, τ′=t+1), or for frame rate doubling (τ=t−½, τ′=t+½). Generalization to frame rate conversion with a ratio other than 2 is straightforward (a procedure of the kind shown inFIG. 3 is generally run for each new output frame to be generated; the above assumption just makes the explanation clearer because it means that the rate of the new output frames is the same as that of the input frames). With this assumption, we can drop the time indexes t−1, t and τ, τ′ due to the time recursion in the procedure. In addition, m(v) stands for m(vr|Dτ−{vr}) if the direction v (=vr) is in D (=Dτ) and may be removed, and for m(va|Dτ) if the direction v (=va) is in Ω−D and may be added to D. The margins m(v) are evaluated for all directions v in Ω by updating running sums that are set to zero at theinitialization 301 of the procedure. - The procedure scans the pixels x of the frame arrays It and It+1 one by one, a first pixel x being selected in
step 302. A first loop 310 over the directions v of D is executed in order to update the running sums for the directions of D (=Dτ) regarding pixel x. This first loop is initialized instep 311 by taking a first direction v in D and setting a variable A to an arbitrarily large value (for example its maximum possible value). At the end of loop 310, variable A will contain the value of Lx(D) defined in (2). - In each iteration of loop 310 (step 312), the local cost Lx(v) for pixel x and direction v is obtained and loaded into variable L. In
step 312, block 201 can either compute Lx(v), for example according to one of the above-mentioned possibilities, or retrieve it from a memory if the costs Lx(v) were computed beforehand. Atest 313 is performed to evaluate whether L is smaller than A. If L<A, the direction index v is stored in a variable u and a variable B receives the value A instep 314. Then the value L is allocated to the variable A instep 315. At the end of loop 310, variable u will contain the index of the direction v of D which minimizes Lx(v), i.e. -
- and variable B will contain the second smallest value of Lx(v) for the directions v of D, i.e.
-
- If L≧A in
test 313, the local cost is compared to B intest 316. If A≦L<B (yes in test 316), the variable B is updated with the value L instep 317. If L≧B intest 316, or afterstep loop test 318 is performed to check if all the directions v of D have been scanned. If not, another direction v of D is selected instep 319 and the procedure returns to step 312 for another iteration of loop 310. - When loop 310 is over, the margin m(u) of the direction u of Dτ which minimizes the local cost at pixel x is updated by adding thereto the quantity B−A (step 321). As far as pixel x is concerned, removing u from D would degrade the cost by that quantity while the margins for the other directions of D would remain unaffected.
- The processing for pixel x is then continued by a
second loop 330 over the possible directions v that are not in D, in order to update the running sums for the directions of Ω−D regarding pixel x. - This second loop is initialized in
step 331 by taking a first direction v in Ω−D. In each iteration (step 332), the local cost Lx(v) for pixel x and direction v is computed or retrieved to be loaded into variable L. Atest 333 is then performed to evaluate whether L is smaller than A=Lx(D). If L<A, the margin m(v) for direction v is updated by adding thereto the quantity A−L (step 334) in order to take into account the improvement of the cost function that would result from the addition of v into D regarding pixel x. If L≧A intest 333, or afterstep 334, the end-of-loop test 335 is performed to check if all the directions v of Ω−D have been scanned. If not, another direction v of Ω−D is selected instep 336 and the procedure returns to step 332 for another iteration ofloop 330. - When
loop 330 is over, it is determined intest 341 if all pixels x of the relevant frame array have been scanned. If not, another pixel x of the array is selected instep 342 and the procedure returns to step 311. The operation ofblock 201 regarding the current frame is over whentest 341 shows that all the pixels have been processed. - For each new input frame It+1, block 201 thus outputs the margins m(v) for all directions v of Ω, i.e. removal margins for the directions of D and addition margins for the directions of Ω−D.
- To initialize the procedure at the beginning of an input video sequence, the subset D can have an arbitrary content, or it can be determined with a coarse method over the first few frames. A correct subset will quickly be built due to the time recursion of the selection procedure.
- A second approximation can be made to further reduce the complexity of
block 201. In this approximation, m(va|Dτ) is replaced by a modified margin m*(va|Dτ). As in (4), a modified margin m*(v|D) is a pixelwise sum: -
- of local modified margins m*x(v|D) defined as:
-
- m*x(v|D)=Lx(D)−Lx(v) if Lx(v)<Lx(Ω−{v}), i.e. when v is the best direction in Ω from the point of view of minimizing the cost function at pixel position x;
- m*x(v|D)=0 else.
- With the first and second approximations, a modified exchange margin M*exch(va, vr) can be derived as follows:
-
M* exch(v a ,v r)=m*(v a |D τ)−m(v r |D τ −{v r}) (9) - Again, the modified exchange margin M*exch(Va, vr) is not more than the actual exchange margin Mexch(va, vr), because of (6) and because m*x(va|D)≦mx(va|D). So a swap decided based on (9) cannot be a wrong one from the point of view of (5).
- The modified margins m*x(va|D) can be computed with less expensive computations or circuitry because, for each location x, at most one running sum corresponding to a single absolute best direction in Ω−D has to be updated, whereas with non-modified margins mx(va|D), the number of such winners is in the worst case (test 333 always positive in
FIG. 3 ) equal to |Ω−D|. In implementations using hardwired ASIC or FPGA circuits, the impact on logic size is significant. For identical reasons, the impact on the worst-case execution time in a software implementation is also important. - With the second approximation, the procedure of
FIG. 3 is modified by replacingloop 330 by a modifiedloop 430 illustrated inFIG. 4 .Loop 430 is initialized in step 431 (replacing step 331) by taking a first direction v in Ω−D and setting the value of A=Lx(D) for another variable A*. At the end ofloop 430, variable A* will contain the minimum of Lx(v) for all directions v in Ω, i.e. Lx(Ω). - In each iteration, the local cost Lx(v) for pixel x and direction vεΩ−D is computed or retrieved to be loaded into variable L in
step 432. Atest 433 is then performed to evaluate whether L is smaller than A*. If L<A*, the above-mentioned variable u is updated to contain the direction index v, and the value L is allocated to the variable A* instep 434. If L≧A* intest 433, or afterstep 434, the end-of-loop test 435 is performed to check if all the directions v of Ω−D have been scanned. If not, a further direction v of Ω−D is selected instep 436 and the procedure returns to step 432 for another iteration ofloop 430. - When
loop 430 is over, the margin m(u) of the direction u of Ω which minimizes the local cost at pixel x is updated by adding thereto the quantity A−A* (step 441). If uεD, step 441 changes nothing. If u≠D, adding u to D would reduce the cost function by A−A* as far as pixel x is concerned, while the margins for the other directions of Ω−D would remain unaffected. - The reduction of complexity results from the fact that the updating
step 441 is performed out of theloop 430. The downside of this simplification is some loss of accuracy for the less-than-optimal directions of Ω−D, but this is not such a significant problem in view of the time recursion of the procedure that will eventually reveal the directions actually relevant to the video sequence. - Various procedures can be applied by
block 202 to arbitrate between the candidate directions v for which the margins m(v) were computed byblock 201. - In the simple example depicted in
FIG. 5 , block 202 selects the direction v of the subset D=Dτ which has the lowest margin m(v) as computed byblock 201 and which is thus the best candidate for exclusion from Dτ′ (step 501). It also selects the direction w of Ω−D which has the highest margin m(w), i.e. the best candidate for inclusion into Dτ′ (step 502). If m(w)>m(v) (test 503), the exchange is done in step 504: v is replaced by w in D so that Dτ′=Dτ−{v}+{w}. If m(w)≦m(v) intest 503, there is no exchange: Dτ′=Dτ. -
FIG. 6 illustrates another approach in which block 202 can swap more than one pair of directions. Instep 601, the n directions v1, v2, . . . , vn of the subset D=Dτ which have the lowest margins are selected and sorted with increasing margins: m(v1)≦m(v2)≦ . . . ≦m(vn). The number n can be any integer between 1 and |D|. In the case n=1, the procedure ofFIG. 6 is the same as that ofFIG. 5 . Instep 602, the direction w1, w2, . . . , wn of Ω−D which have the highest margins are also selected and sorted with decreasing margins: m(w1)≧m(w2)≧ . . . ≧m(wn). Then it is determined how many direction pairs can be swapped. For example, after initializing a loop index i (i=1) instep 603, block 202 compares the margins m(wi) and m(vi) intest 604. If direction wi of Ω−D is better than direction vi of D, i.e. m(wi)>m(vi), the exchange is done instep 605, wi replacing vi in D, and then i is compared to n intest 606. If i<n, not all the pairs have been checked and i is incremented instep 607 before checking the next pair in anew test 604. The procedure is terminated when atest 604 reveals that m(wi)≦m(vi) for some i<n, or when i=n intest 606. If n′ direction pairs are swapped (n′≦n), the updated direction subset is Dτ′=Dτ−{v1, . . . , vn′}+{w1, . . . , wn′}. - In an embodiment, when the directions of regularity are detected by
unit 102, only directions v that have a margin m(v) above a given threshold T are used. This is easily done once Dτ′ has been determined byblock 202, by ignoring in thedirection detection unit 102 the directions v of Dτ′ such that m(v)<T. - Alternatively, the inclusion of new directions w of Ω−Dτ into Dτ′ can be prevented when m(w) is below the threshold T. There are various ways of doing this. For example, if the procedure of
FIG. 6 is used, the number n can be set as the largest integer in {1, 2, . . . , |D|} such that m(wi)>T for all indexes i such that 1≦i≦n. - The use of the threshold T helps to prune the set of candidate directions and to select a number of candidate directions that is adapted to the geometric complexity of the video, i.e. to select the sparsest set of directions suitable for the video.
-
FIGS. 7 and 8 illustrate the results provided by an embodiment of the invention in a case where thevideo processing unit 103 performs interpolation and more particularly frame rate conversion with a ratio of 2 between the frame rates of the output and input video sequences. - The video sequence in this example is a horizontally scrolling caption with the text “Sweeet”. 701 and 801 denote the image at time t, 703 and 803 the image at time t+1 and 702 and 802 the synthesized image at time=τ′+½, with a mismatch in
FIG. 7 and with a correct interpolation in FIG. 8. Betweenimages 701/801 and 703/803 (times t and t+1), the whole text “Sweeet” has scrolled 10 pixels to the left. A possible cause for mismatch is that the text contains several times the letter “e” with a periodicity of 8 pixels, and thedirection detection unit 102 might be mistaken by the first “e” at time t looking like another “e” in the next input image attime t+ 1, leading to artifacts as shown in 702. - In the example of
FIGS. 7 and 8 , the cost function used inunit 101 is centered, and Ω contains only directions v=(dx, dt) with dt=½. The cost for a direction v=(dx, dt) at location x and time τ′=t+½ is then, for example, Lx(v)=|It′−dt(x−dx)−Iτ′+dt(x+dx)|=|It(x−dx)−It+1(x+dx)| or preferably a windowed version of this cost, by convolution with a non-negative spatial window function g. Two directions of regularity can be found with a local measure on this sequence: -
- Once a direction v=(dx, ½) is detected by
unit 102 for a pixel x at time τ′=t+½, the interpolation for frame rate conversion done inunit 103 may consist in computing Îτ′(x)=Ît+1/2(x)=[It(x−dx)+It+1 (x+dx)]/2. - In
FIG. 7 , we assume that no sparse geometry is used, so that all directions in Ω are considered in thedetection unit 102. For some pixels between the first and the third “e” of the text, the detected direction may group the first “e” at time t with the second “e” at time t+1 (see the squares inFIG. 7 ) and the second “e” at time t with the third “e” attime t+ 1, leading to incorrect temporal interpolation.Reference 702 shows an incorrect image with an artifact resulting from this incorrect interpolation. A simple workaround consisting in mixing the interpolated values corresponding to both detected directions v(1), v(2) does not solve the problem either. - Using a sparse geometry Dτ′ in
unit 101 helps to overcome this problem. Indeed, if the subset Dτ does not contain the direction -
- the margin of v(1) with respect to Dτ′ will be high because only v(1) can account for the scrolling of the letters “S”, “w” and “t”. So v(1) will at some time τ′ enter Dτ′. This done, since v(1) is a possible direction of the video over all letters including all “e”s, the margin of
-
- will become very low or even zero, because there is no region of the video where it is a possible direction of regularity and v(1) is not. As a result, the direction v(2) will be kept out of the set Dτ′ so that it will not be taken into account in the
detection unit 102, or will be ignored because its margin is below a threshold T. The correct interpolation will be computed as depicted in 802. - Note that the temporal interpolation can be done at times other than halfway between two original frames. For example, in applications to conversion between the 50 Hz and 60 Hz frame rate standards, interpolation is done at times τ′=t+h/6, where h is one of 1, 2, 3, 4 or 5. The loss function used in
units -
FIGS. 9-12 are diagrams similar toFIGS. 7-8 illustrating application of an embodiment of the invention to super-resolution video deinterlacing. -
FIGS. 9-10 show the same text “Sweeet” scrolling in an interlaced video format at the input of the apparatus.References references time t+ 1, and references 902 and 1002 show the intervening odd input field at time t. The purpose of deinterlacing is the compute the even lines at time t to synthesize a full progressive frame at time τ′=t containing both even and odd lines. - In the example of
FIGS. 9-12 , the cost function used inunit 101 is centered, and Ω may contain only directions v=(dx1, dx2, dt) such that dt=1 and dx2 is even. The cost for a direction v=(dx, dt) of Ω at location ξ=x=(x1, x2) and time τ′=t is then, for example, Lx(v)=|It−dt(x−dx)−It+dt(x+dx) or a windowed version of this cost. Several directions of regularity can be found a priori on this sequence, including v(1)=(dx1 (1),dx2 (1),dt(1))=(−5,0,1) and v(2)=(dx1 (2),dx2 (2),dt(2))=(−1,0,1). - Once a direction v=(dx, 1) is detected by
unit 102 for a pixel x at time τ′=t, the interpolation for deinterlacing done in theprocessing unit 103 may consist in computing Îτ′(ξ)=Ît(x)=[It−1(x−dx)+It+1(x+dx)]/2. - In
FIG. 11 , we again assume that theselection unit 101 feeds all directions of Ω to thedetection unit 102 without using a sparse geometry. Thedetection unit 102 cannot properly discriminate between directions v(1)=(−5,0,1) and v(2)=(−1,0,1) and the output can again display dislocation-type of artifacts as shown in 1102. -
FIG. 12 illustrates the result of a better deinterlacing when only the direction v(1)=(−5,0,1) is retained in the sparse geometry by theselection unit 101, the superfluous direction v(2)=(−1,0,1) being eliminated in the selection step of the analysis. - Alternatively, in a deinterlacing application, when computing pixels at time τ′=t, a direction can be computed between t−2 and t+2 using the value dt=2 in the directions of Ω, in order to account for directions with higher definition. This means that directions v=(dx, 1) and 2v=(2dx, 2) are used in the same way in the interpolation. Because of parity constraints of the interlaced source, corresponding loss functions |It−2(x−2dx)−It+2(x+2dx)| can be computed. If a direction 2v=(2dx, 2dt)=(2dx1, 2dx2, 2dt) is detected by
unit 102, the vertical coordinate dx2 of to the half-direction v can be odd. This allows deinterlacing properly video sequences including half-pixel vertical speeds. If such a direction description is referred to in the direction selection and detection units 101-102, theprocessing unit 103 may interpolate Îτ′(ξ) as: -
Î τ′(ξ)=Î t(x)=[I t−2(x−2dx)+I t+2(x+2dx)]/2 - The direction measure that is used can involve time steps of either dt=1 or dt=2. This corresponds to comparing various directions as well as different temporal offsets (1 or 2, or even more).
- Another possibility in deinterlacing applications is to compute costs for directions where the fields are shot at irregularly spaced times, in addition to directions associated with fields shot at evenly spaced times. This is for example the case when the original source of the video contents is film converted to video using “telecine”. For example, in 2:2 telecine used in Europe, when 25 fps (frames per second) film is transferred to 50 fps video, each film frame is used to generate two video fields, so fields I0, I1, I2, I3 are shot at
respective times 0 s, 0 s, 2/50 s, 2/50 s, instead oftimes 0/50 s, 1/50 s, 2/50 s, 3/50 s for video-originating contents. Furthermore, a video signal can contain a mix of film-originating contents and video-originating contents, so this detection has to be made pixelwise. Specific local cost functions can be chosen for detecting whether for a given pixel, the video is film-originating and whether the field just before or just after originates from the same film frame. A configuration of the direction at each pixel is then one of the following: - (film-before)
- (film-after)
- (video, v)
- where “film-before” means that at a given pixel location, the contents is film-originating, and the preceding field comes from the same film frame, so that missing pixels can be picked at the same location from the preceding field, where “film-after” means that at a given pixel location, the contents is film-originating, and the field after comes from same film frame, and where (video, v) means that at the current pixel location, the contents is video-originating, and the direction vector is v. This description exemplifies another case where the “direction” can be defined by a local descriptor more complex than a single 3D vector v. In this case, the “direction” is a symbol which is one of (film-before), (film-after), (video,v) where v is a vector.
- In the case of super-resolution video noise reduction, the
processing unit 103 ofFIG. 1 computes for each target pixel ξ, τ its new value by using a directional averaging function Kv at ξ with: -
- where the sum runs over all pixels (x, t) of the input images in a vicinity of (ξ, τ), including the pixel (ξ, τ) itself if ξ=x, τ=t for some point (x, t) of the input grid, and Kv depends on the local direction v=(dx,dt). In an exemplary embodiment, the averaging functions Kv are directional averaging functions along a direction v=(dx, dt). An example is the function:
-
K v(x,t)=K 1(t)×K 2(x−t·dx/dt) - where K1 and K2 are 1D and 2D averaging kernels, for example Gaussian.
- In another embodiment, the video processing performed in the
processing unit 103 receives a variable number of directions from thedirection detection unit 102. Each of these directions can be accompanied with a relevance measure. In the case where the number of directions is 0, a fallback interpolation function or averaging function can be used. In the case where the number of directions is larger than 1, the target pixel value can be computed by combining the pixel values computed with each interpolating or averaging function corresponding to each direction. This combination can be an averaging, a weighted averaging using the relevance measure, or a median, or a weighted median, or any other kind of method to combine these pixel values. - In another exemplary embodiment, the noise reduction processing along direction v=(dx, dt) can be any kind of known directional filtering, including infinite impulse response (IIR) filtering.
- In another exemplary embodiment, the sparse geometry is used to enhance the type of processing disclosed in WO 2007/059795 A1 when the processed signal is a video signal. The directions (dx, dt) may then be limited to values of dt=1 and to integer values of dx. They can be used to construct a mapping between pixels of a frame at time t and pixels of a frame t+1: (x,t)(x+dx,t+1), and provide an embodiment for the first grouping estimation used in WO 2007/059795 A1.
- In an embodiment of the
direction selection unit 101, the set Ω of candidate directions is partitioned into a plurality of subsets Ω1, . . . , ΩJ (J>1), and only one of the subsets Ω1, . . . , ΩJ is considered by thedirection selection unit 101 at each time τ′ to provide candidates to enter the subset of selected directions Dτ′. This is interesting when the set Ω is too large to be entirely scanned for candidates in every cycle τ′. For example, at a time when subset Ωj is considered (1≦j≦J),loop 330 inFIG. 3 or 430 inFIG. 4 is carried out for the directions v that are in Ω1 but not in D. - In certain cases, it may be interesting, in addition to the selection of a global subset Dτ′ for the whole image area, to split the image support into several windows Wp,q of pixels, for example defined as rectangular regions:
-
W p,q={(x 1 ,x 2):w×(p−1)<x 1 ≦w×p and h×(q−1)<x 2 ≦h×q} - where h and w are respectively the height and the width (in pixels) of these windows, and the window indexes p, q are in the
ranges 1≦p≦P, 1≦q≦Q. The total number of windows is P×Q. When P=Q=1, there is only one window consisting of the whole image area as described previously. For each direction v inside each window Wp,q, a margin mp,q(v|D) can be computed using a formula similar to (4), but with a sum spanning an image region limited to this window Wp,q: -
- Local subset of directions Dτ′,p,q⊂Dτ′ can be computed using these margins. A third subset Dτ′,p,q of candidate directions is thus determined as a subset of the second subset Dτ′ determined for the whole area of It+1, based on cost margins mp,q(v|D) computed for pixels of the window Wp,q in the input images It and It+1. When the
direction detection unit 102 measures a direction at a pixel ξ=x which is inside one of the windows Wp,q, only candidate directions from Dτ′,p,q are taken into account. This is helpful to increase the robustness of the detection to avoid bad directions. Referring again to the example depicted inFIGS. 7-12 , the selection allows to eliminate a bad direction (−1, 0, ½) [or (−2, 0, 1)] and to only use the right direction (−5, 0, ½) [or (−10, 0, 1)]. If the scene is more complex and somewhere else in the picture an object happens to be exhibiting a direction of regularity (−1, 0, ½), this vector (−1, 0, ½) will be present in Dτ′, and the benefit of the selection made inunit 101 may be lost to properly handle the scrolling text. If the selection margins are recomputed on smaller windows Wp,q, the probability that such a window Wp,q includes both the scrolling text and the object having the single direction of regularity (−1, 0, ½) will be much lower. - When using too small windows Wp,q (e.g., in the case of
FIGS. 7-12 a region spanning only one or two “e”s), the selection may become difficult because on too small windows, it is not possible any more to discriminate between two different directions of regularity. A multiscale selection scheme can be devised to avoid this difficulty, by recursively splitting the image support into windows, and each window into sub-windows. For each window, the subset of directions is selected as a subset of the subset of directions that was selected for the parent region (whole image or higher-layer window). In the multiscale selection scheme, one or more of the windows Wp,q is further split into a plurality of sub-windows Wp,q,r,s, and for each sub-window a fourth subset Dτ′,p,q,r,s of candidate directions is determined as a subset of the third subset Dτ′,p,q determined for the window Wp,q, based on cost margins mp,q,r,s(v|D) computed for pixels of sub-window Wp,q,r,s in the input images It and It+1: -
- The directions of regularity for pixels of sub-window Wp,q,r,s of the output image Îτ′ are then detected from subset Dτ′,p,q,r,s, possibly after one or more iterations of the recursive splitting of the windows.
- In some embodiments, the subset Dτ′ of selected directions can be constrained to satisfy various criteria. For example:
-
- some particular directions (such as (0, 0, 1) typically) can be forced to permanently stay within Dτ′, regardless of the margin associated with these directions;
- the set of directions Ω can also be split into R clusters Ω(1), . . . , Ω(R), and a constraint can be enforced that for each cluster Ω(r) (1≦r≦R, R>1), only one or a limited number of directions is selected to be included into subset Dτ′.
- The above-described embodiments may be implemented by means of software run by general-purpose microprocessors or digital signal processors, in which case the modules described above with reference to
FIGS. 1-6 are understood to be or form part of software modules or routines. It may also be implemented as a hardware component as illustrated inFIG. 13 , for example in an application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA) for interpolating a video stream, in addition to other video processing blocks 1302, 1304, before and/or after thevideo interpolation block 1303. Alternatively, thevideo processing block 1303 may implement a noise reduction method as described above. In an exemplary embodiment, the video processing blocks 1302, 1303, 1304 are implemented in asingle chip 1301. The chip also has video input and output interfaces, and external RAM (random access memory)devices - While a detailed description of exemplary embodiments of the invention has been given above, various alternative, modifications, and equivalents will be apparent to those skilled in the art. Therefore the above description should not be taken as limiting the scope of the invention which is defined by the appended claims.
Claims (24)
1. A method of analyzing an input video sequence to associate pixels of synthesized images of an output video sequence with respective directions of regularity belonging to a predefined set of directions, the method comprising:
determining, from the predefined set of directions, a first subset of candidate directions for a region of a first image of the output video sequence;
determining, from the predefined set of directions, a second subset of candidate directions for a corresponding region of a second synthesized image of the output video sequence following the first image, based on images of the input video sequence and the first subset of candidate directions; and
detecting the respective directions of regularity for pixels of said region of the second synthesized image from the second subset of candidate directions.
2. The method as claimed in claim 1 , wherein the determination of the second subset of candidate directions comprises:
detecting at least one pair of directions vr and va such that vr belongs to the first subset of candidate directions, va belongs to the predefined set of directions but not to the first subset, and a cost function associated with the first subset with respect to said regions of the first and second images is higher than the cost function associated with a modified subset including va and the directions of the first subset except vr, detecting said at least one pair of directions vr and va; and
in response to detection of said at least one pair of directions vr and va, excluding vr from the second subset and including va into the second subset.
3. The method as claimed in claim 2 , wherein the cost function associated with a given subset of directions is a sum, over the pixels of said regions, of minimum values of local costs for the different directions of the given subset.
4. The method as claimed in claim 1 , wherein the determination of the second subset of candidate directions comprises:
evaluating first margins relating to respective contributions of the individual directions of the first subset to a cost function associated with the first subset;
evaluating second margins relating to respective decrements of the cost function resulting from the addition of individual directions of the predefined set to the first subset; and
substituting a direction of the predefined set for a direction of the first subset when the second margin evaluated for said direction of the predefined set exceeds the first margin evaluated for said direction of the first subset.
5. The method as claimed in claim 4 , wherein the first margin for a direction of the first subset is equal to the contribution of said direction to the cost function.
6. The method as claimed in claim 4 , wherein the second margin for a direction of the predefined set is equal to the decrement of the cost function resulting from the addition of said direction to the first subset.
7. The method as claimed in claim 4 , wherein the second margin for a direction of the predefined set is estimated as a sum of local margins over the pixels of said regions, whereby a local margin for a pixel x and a direction v is:
Lx(D)−Lx(v) if v is the best direction in the whole predefined set from the point of view of minimizing a local cost at pixel position x, where Lx(v) designates the local cost at pixel position x for direction v and Lx(D) designates a minimum value of the local cost at pixel position x for the directions of the first subset; and
zero else.
8. The method as claimed in claim 4 , comprising:
selecting a first direction having the lowest first margin in the first subset;
selecting a second direction having the highest second margin in the predefined set except the first subset; and
if the second margin for the selected second direction is above the first margin for the selected first direction, excluding the selected first direction from the second subset and including the selected second direction into the second subset.
9. The method as claimed in claim 4 , comprising:
selecting and sorting with increasing margins a number n of directions v1, v2, . . . , Vn having lowest first margins in the first subset;
selecting and sorting with decreasing margins the n directions w1, w2, . . . , wn having highest second margins in the predefined set except the first subset; and
for each direction wi of the n sorted directions w1, w2, . . . , wn of the predefined set except the first subset, with 1≦i≦n, if the second margin is above the first margin for the corresponding direction vi of the n sorted directions v1, v2, . . . , vn of the predefined set except the first subset, excluding Vi from the second subset and including wi into the second subset.
10. The method as claimed in claim 4 , further comprising excluding from the second subset directions of the predefined set having an evaluated margin below a preset threshold.
11. The method as claimed in claim 4 , wherein the cost function associated with a given subset of directions is a sum, over the pixels of said regions, of minimum values of local costs for the different directions of the given subset.
12. The method as claimed in claim 1 , wherein the steps of determining the second subset of candidate directions and of detecting the directions from the second subset comprise estimating local cost functions between the at least two successive images of the input video sequence having respective time positions before and after said second synthesized image of the output video sequence, and wherein the local cost functions are estimated more coarsely in the step of determining the second subset than in the step of detecting the respective directions of regularity from the second subset.
13. The method as claimed in claim 1 , wherein at least one preset direction is forced to be included into the first and second subsets.
14. The method as claimed in claim 1 , wherein the predefined set of directions is partitioned into a plurality of clusters, and in the determination of the second subset of candidate directions, one or a limited number of directions of each cluster is selected to be included into said second subset.
15. The method as claimed in claim 1 , wherein the images of the video sequences are split into a plurality of windows, wherein the second subset of candidate directions is determined for a region corresponding to the whole area of the second synthesized image, the method further comprising, for each window:
determining a third subset of candidate directions as a subset of said second subset, based on cost margins determined for pixels of said window; and
detecting the respective directions of regularity for pixels of said window of the second synthesized image from the third subset of candidate directions.
16. The method as claimed in claim 15 , wherein at least one of the windows is further split into a plurality of sub-windows, the method further comprising, for each sub-window of said window:
determining a fourth subset of candidate directions as a subset of the third subset determined for said window, based on cost margins determined for pixels of said sub-window; and
detecting the respective directions of regularity for pixels of said sub-window of the second synthesized image from the fourth subset of candidate directions.
17. A video processing device, comprising computing circuitry arranged to analyze an input video sequence to associate pixels of synthesized images of an output video sequence with respective directions of regularity belonging to a predefined set of directions, wherein the analysis of the input video sequence comprises:
determining, from the predefined set of directions, a first subset of candidate directions for a region of a first image of the output video sequence;
determining, from the predefined set of directions, a second subset of candidate directions for a corresponding region of a second synthesized image of the output video sequence following the first image, based on images of the input video sequence and the first subset of candidate directions; and
detecting the respective directions of regularity for pixels of said region of the second synthesized image from the second subset of candidate directions.
18. A computer-readable medium having a program stored therein, wherein said program comprises instructions to analyze an input video sequence when said program is run in a computer processing unit, to associate pixels of synthesized images of an output video sequence with respective directions of regularity belonging to a predefined set of directions, wherein the analysis of the input video sequence comprises:
determining, from the predefined set of directions, a first subset of candidate directions for a region of a first image of the output video sequence;
determining, from the predefined set of directions, a second subset of candidate directions for a corresponding region of a second synthesized image of the output video sequence following the first image, based on images of the input video sequence and the first subset of candidate directions; and
detecting the respective directions of regularity for pixels of said region of the second synthesized image from the second subset of candidate directions.
19. A video processing method, comprising:
receiving successive images of an input video sequence;
analyzing the input video sequence to associate pixels of synthesized images of an output video sequence with respective directions of regularity; and
generating the output video sequence from the input video sequence using the detected directions of regularity,
wherein analyzing the input video sequence comprises:
determining, from the predefined set of directions, a first subset of candidate directions for a region of a first image of the output video sequence;
determining, from the predefined set of directions, a second subset of candidate directions for a corresponding region of a second synthesized image of the output video sequence following the first image, based on images of the input video sequence and the first subset of candidate directions; and
detecting the respective directions of regularity for pixels of said region of the second synthesized image from the second subset of candidate directions.
20. The method as claimed in claim 19 , wherein generating the output video sequence comprises performing interpolation between successive images of the input video sequence using the detected directions of regularity.
21. The method as claimed in claim 20 , wherein the interpolation comprises video deinterlacing.
22. The method as claimed in claim 20 , wherein the interpolation comprises converting the frame rate of the input video sequence.
23. The method as claimed in claim 19 , wherein the step of generating the output video sequence comprises applying a noise reduction operation to the input video sequence using the detected directions of regularity.
24. A video processing apparatus, comprising computing circuitry for:
receiving successive images of an input video sequence;
analyzing the input video sequence to associate pixels of synthesized images of an output video sequence with respective directions of regularity; and
generating the output video sequence from the input video sequence using the detected directions of regularity,
wherein the analysis of the input video sequence comprises:
determining, from the predefined set of directions, a first subset of candidate directions for a region of a first image of the output video sequence;
determining, from the predefined set of directions, a second subset of candidate directions for a corresponding region of a second synthesized image of the output video sequence following the first image, based on images of the input video sequence and the first subset of candidate directions; and
detecting the respective directions of regularity for pixels of said region of the second synthesized image from the second subset of candidate directions.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/040,035 US20140023149A1 (en) | 2008-01-11 | 2013-09-27 | Sparse geometry for super resolution video processing |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2008/051270 WO2009087493A1 (en) | 2008-01-11 | 2008-01-11 | Sparse geometry for super resolution video processing |
US81220110A | 2010-11-22 | 2010-11-22 | |
US14/040,035 US20140023149A1 (en) | 2008-01-11 | 2013-09-27 | Sparse geometry for super resolution video processing |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/812,201 Continuation US8571114B2 (en) | 2008-01-11 | 2008-01-11 | Sparse geometry for super resolution video processing |
PCT/IB2008/051270 Continuation WO2009087493A1 (en) | 2008-01-11 | 2008-01-11 | Sparse geometry for super resolution video processing |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140023149A1 true US20140023149A1 (en) | 2014-01-23 |
Family
ID=39745405
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/812,201 Expired - Fee Related US8571114B2 (en) | 2008-01-11 | 2008-01-11 | Sparse geometry for super resolution video processing |
US14/040,035 Abandoned US20140023149A1 (en) | 2008-01-11 | 2013-09-27 | Sparse geometry for super resolution video processing |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/812,201 Expired - Fee Related US8571114B2 (en) | 2008-01-11 | 2008-01-11 | Sparse geometry for super resolution video processing |
Country Status (6)
Country | Link |
---|---|
US (2) | US8571114B2 (en) |
EP (1) | EP2240905B1 (en) |
JP (1) | JP2011509617A (en) |
KR (1) | KR20100118978A (en) |
CN (1) | CN101971209A (en) |
WO (1) | WO2009087493A1 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8508661B1 (en) * | 2008-02-01 | 2013-08-13 | Zenverge, Inc. | Enhanced deinterlacing using predictors from motion estimation engine |
US9699475B2 (en) | 2009-02-12 | 2017-07-04 | Qualcomm Incorporated | Video sequence analysis for robust motion estimation |
US9042680B2 (en) | 2009-02-12 | 2015-05-26 | Zoran (France) S.A. | Temporal video interpolation method with 2-frame occlusion handling |
ATE547775T1 (en) | 2009-08-21 | 2012-03-15 | Ericsson Telefon Ab L M | METHOD AND DEVICE FOR ESTIMATING INTERFRAME MOTION FIELDS |
WO2011113500A1 (en) | 2010-03-15 | 2011-09-22 | Zoran (France) | Video interpolation method and apparatus with smooth fallback interpolation mode |
WO2011120600A1 (en) | 2010-04-02 | 2011-10-06 | Zoran (France) | Cadence detection for interlaced video based on temporal regularity |
CN102063729A (en) * | 2010-12-30 | 2011-05-18 | 哈尔滨工业大学 | Two-dimensional sparsity based compressed sensing image reconstruction method |
CN102685370B (en) * | 2012-05-10 | 2013-04-17 | 中国科学技术大学 | De-noising method and device of video sequence |
US9691133B1 (en) | 2013-12-16 | 2017-06-27 | Pixelworks, Inc. | Noise reduction with multi-frame super resolution |
TWI493476B (en) * | 2014-01-02 | 2015-07-21 | Mstar Semiconductor Inc | Image processing circuit and method thereof |
CN113239236B (en) * | 2021-07-13 | 2021-10-01 | 北京达佳互联信息技术有限公司 | Video processing method and device, electronic equipment and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050238103A1 (en) * | 2002-08-06 | 2005-10-27 | Raghavan Subramaniyan | Method and apparatus for performing high quality fast predictive motion search |
US20100118970A1 (en) * | 2004-12-22 | 2010-05-13 | Qualcomm Incorporated | Temporal error concealment for video communications |
US20100284465A1 (en) * | 2006-09-18 | 2010-11-11 | Ulrich-Lorenz Benzler | Method for compressing data in a video sequence |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4890160A (en) | 1986-03-19 | 1989-12-26 | British Broadcasting Corporation | TV picture motion vector measurement by correlation of pictures |
US5428398A (en) | 1992-04-10 | 1995-06-27 | Faroudja; Yves C. | Method and apparatus for producing from a standard-bandwidth television signal a signal which when reproduced provides a high-definition-like video image relatively free of artifacts |
TW321748B (en) | 1994-02-23 | 1997-12-01 | Rca Thomson Licensing Corp | |
KR100482898B1 (en) * | 1996-05-24 | 2005-08-31 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | Method, device, and video display device including the device for estimating motion vectors |
JPH10262254A (en) * | 1997-03-18 | 1998-09-29 | Matsushita Electric Ind Co Ltd | Motion vector detection method and its device |
JP2001520781A (en) * | 1998-02-06 | 2001-10-30 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Motion or depth estimation |
US6845130B1 (en) * | 2000-10-12 | 2005-01-18 | Lucent Technologies Inc. | Motion estimation and compensation for video compression |
US6940557B2 (en) * | 2001-02-08 | 2005-09-06 | Micronas Semiconductors, Inc. | Adaptive interlace-to-progressive scan conversion algorithm |
KR100446235B1 (en) * | 2001-05-07 | 2004-08-30 | 엘지전자 주식회사 | Merging search method of motion vector using multi-candidates |
US20060098886A1 (en) | 2003-01-10 | 2006-05-11 | Koninklijke Philips Electronics N.V. | Efficient predictive image parameter estimation |
DE10327577A1 (en) * | 2003-06-18 | 2005-01-13 | Micronas Gmbh | Method for determining a displacement vector in image processing |
WO2007059795A1 (en) | 2005-11-25 | 2007-05-31 | Let It Wave | Method and apparatus for enhancing signals with multiscale grouping bandelets |
CN101473346B (en) | 2006-04-12 | 2012-06-20 | 法国卓然 | Method and device for zooming Robust super-resolution video |
JP2008011197A (en) * | 2006-06-29 | 2008-01-17 | Toshiba Corp | Motion vector detecting device, motion vector detecting method, and interpolation frame generating device |
-
2008
- 2008-01-11 KR KR1020107017363A patent/KR20100118978A/en not_active Application Discontinuation
- 2008-01-11 US US12/812,201 patent/US8571114B2/en not_active Expired - Fee Related
- 2008-01-11 EP EP08719873A patent/EP2240905B1/en not_active Not-in-force
- 2008-01-11 JP JP2010541855A patent/JP2011509617A/en not_active Ceased
- 2008-01-11 WO PCT/IB2008/051270 patent/WO2009087493A1/en active Application Filing
- 2008-01-11 CN CN2008801280248A patent/CN101971209A/en active Pending
-
2013
- 2013-09-27 US US14/040,035 patent/US20140023149A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050238103A1 (en) * | 2002-08-06 | 2005-10-27 | Raghavan Subramaniyan | Method and apparatus for performing high quality fast predictive motion search |
US20100118970A1 (en) * | 2004-12-22 | 2010-05-13 | Qualcomm Incorporated | Temporal error concealment for video communications |
US20100284465A1 (en) * | 2006-09-18 | 2010-11-11 | Ulrich-Lorenz Benzler | Method for compressing data in a video sequence |
Also Published As
Publication number | Publication date |
---|---|
US20110058106A1 (en) | 2011-03-10 |
EP2240905B1 (en) | 2012-08-08 |
JP2011509617A (en) | 2011-03-24 |
EP2240905A1 (en) | 2010-10-20 |
US8571114B2 (en) | 2013-10-29 |
WO2009087493A1 (en) | 2009-07-16 |
CN101971209A (en) | 2011-02-09 |
KR20100118978A (en) | 2010-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8571114B2 (en) | Sparse geometry for super resolution video processing | |
CN101422047B (en) | Motion estimation at image borders and display device | |
Kang et al. | Motion compensated frame rate up-conversion using extended bilateral motion estimation | |
JP5657391B2 (en) | Image interpolation to reduce halo | |
US7613364B2 (en) | Global motion-compensated sequential-scanning method considering horizontal and vertical patterns | |
US7667773B2 (en) | Apparatus and method of motion-compensation adaptive deinterlacing | |
US20030086498A1 (en) | Apparatus and method of converting frame and/or field rate using adaptive motion compensation | |
US7403234B2 (en) | Method for detecting bisection pattern in deinterlacing | |
US7519230B2 (en) | Background motion vector detection | |
US20070070250A1 (en) | Methods for adaptive noise reduction based on global motion estimation | |
US20060139494A1 (en) | Method of temporal noise reduction in video sequences | |
US7944503B1 (en) | Interlaced-to-progressive video processing | |
US8711938B2 (en) | Methods and systems for motion estimation with nonlinear motion-field smoothing | |
CN101065964A (en) | Motion stabilization | |
US8675128B2 (en) | Image processing method and system with repetitive pattern detection | |
Kaviani et al. | Frame rate upconversion using optical flow and patch-based reconstruction | |
CN107483960B (en) | Motion compensation frame rate up-conversion method based on spatial prediction | |
US20050180506A1 (en) | Unit for and method of estimating a current motion vector | |
WO2003102872A2 (en) | Unit for and method of estimating a motion vector | |
US7881500B2 (en) | Motion estimation with video mode detection | |
US8830394B2 (en) | System, method, and apparatus for providing improved high definition video from upsampled standard definition video | |
AU2004200237B2 (en) | Image processing apparatus with frame-rate conversion and method thereof | |
JP5448983B2 (en) | Resolution conversion apparatus and method, scanning line interpolation apparatus and method, and video display apparatus and method | |
US8698954B2 (en) | Image processing method, image processing apparatus and image processing program | |
WO2000072590A2 (en) | Block matching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: ZORAN CORPORATION, CALIFORNIA Free format text: MERGER;ASSIGNOR:ZORAN (FRANCE) S.A.;REEL/FRAME:046435/0788 Effective date: 20171227 |