USPatent applicationPatented

Image processing method and system with repetitive pattern detection

Granted 18 Mar 2014 · 1 office action

Life of the application

17 dated events
⤢ drag to zoom20102015202020252030ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

An image processing engine, comprising: a frame rate conversion entity configured to: (a) generate output pictures from input pictures, the output pictures comprising a set of first output pictures and a plurality of sets of second output pictures, each set of second output pictures being associated with one of the first output pictures, each of the first output pictures being derived from a respective one of the input pictures; and (b) control generation of the set of second output pictures associated with a particular first output picture based upon repetitive pattern presence detection within a related picture that is either (i) the particular first output picture or (ii) the input picture from which the particular first output picture was derived.

Description

8 parts
›CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

This patent application is a continuation of copending U.S. Utility patent application having Ser. No. 12/511,697, filed Jul. 29, 2009, which claims benefit from U.S. Provisional Patent Application Ser. No. 61/129,916, filed on Jul. 29, 2008.

The above stated applications are hereby incorporated herein by reference in its entirety.

›FIELD OF THE INVENTION

Certain embodiments of the invention relate to video image processing. More specifically, certain embodiments of the invention relate to an image processing method and system with repetitive pattern detection.

›BACKGROUND OF THE INVENTION

Video images are captured at a frame rate that is sufficiently high to trick the human brain into perceiving continuous motion when in fact a discrete number of images per second is being presented. In many video processing applications, frame rate conversion is required to ensure that the type of equipment used to process and display images is not constrained by the frame rate used to capture those images.

Because the frame rate conversion process generates output images at time instants not exactly corresponding to those of the input images, a process called motion estimation is required between successive input images. In particular, the motion estimation process outputs a motion vector indicative of a magnitude and direction of apparent motion of one or more pixels from one input image to another. This motion vector is then used in properly situating these one or more pixels in intermediate images by using techniques such as linear interpolation.

In some cases, however, errors in the motion estimation process can occur. For example, when an image exhibiting a horizontal, vertical, diagonal or tilted two-dimensional pattern is subjected to a conventional motion estimation process, the resulting motion vector may be inaccurate. In such instances, an intermediate image generated by interpolation relying on an inaccurate motion vector can result in a degradation of the perceived image quality.

Against this background, there is a need in the industry to provide a motion estimation process that is more robust to the presence of repetitive patterns.

›BRIEF SUMMARY OF THE INVENTION

According to a first aspect, the present invention seeks to provide an image processing engine, comprising: a frame rate conversion entity configured to: (a) generate output pictures from input pictures, the output pictures comprising a set of first output pictures and a plurality of sets of second output pictures, each set of second output pictures being associated with one of the first output pictures, each of the first output pictures being derived from a respective one of the input pictures; and (b) control generation of the set of second output pictures associated with a particular first output picture based upon repetitive pattern presence detection within a related picture that is either (i) the particular first output picture or (ii) the input picture from which the particular first output picture was derived.

According to a second aspect, the present invention seeks to provide a method, comprising: generating a set of first output pictures and a plurality of sets of second output pictures, each set of second pictures being associated with one of the first output pictures, each of the first output pictures being derived from a respective input picture in a stream of input pictures; and controlling generation of the set of second output pictures associated with a particular first output picture based on repetitive pattern presence detection within a related picture that is either (i) the particular first output picture or (ii) the input picture from which the particular first output picture was derived.

According to a third aspect, the present invention seeks to provide a computer-readable storage medium comprising computer-readable instructions for instructing a computing device to: (a) generate a set of first output pictures and a plurality of sets of second output pictures, each set of second pictures being associated with one of the first output pictures, each of the first output pictures being derived from a respective input picture in a stream of input pictures; and (b) control generation of the set of second output pictures associated with a particular first output picture based on repetitive pattern presence detection within a related picture that is either (i) the particular first output picture or (ii) the input picture from which the particular first output picture was derived.

According to a fourth aspect, the present invention seeks to provide a computer-readable storage medium storing instructions which, when processed, are used to generate an entity configured to: (a) generate a set of first output pictures and a plurality of sets of second output pictures, each set of second pictures being associated with one of the first output pictures, each of the first output pictures being derived from a respective input picture in a stream of input pictures; and (b) control generation of the set of second output pictures associated with a particular first output picture based on repetitive pattern presence detection within a related picture that is either (i) the particular first output picture or (ii) the input picture from which the particular first output picture was derived.

These and other aspects and features of the present invention will now become apparent to those of ordinary skill in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying drawings.

›BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

In the accompanying drawings:

FIG. 1 is a block diagram of an image processing engine that performs a frame rate conversion process on an input picture stream to produce an output picture stream.

FIG. 2A illustrates the process of obtaining candidate motion vectors for a number of pixel collections in a particular output picture.

FIG. 2B illustrates the generation of interpolated pictures between the particular output picture and another output picture based on scaling of true motion vectors obtained from the candidate motion vectors.

FIG. 3 shows an example auto-correlation function computed for a given pixel collection in a given image.

FIG. 4 illustrates a scenario where the difference between a pair of candidate motion vectors for a particular pixel collection of a particular output image corresponds to a periodicity vector for that pixel collection.

It is to be understood that the description and drawings are only for the purpose of illustration of certain embodiments of the invention and are an aid for understanding. They are not intended to be a definition of the limits of the invention.

›DETAILED DESCRIPTION OF THE INVENTION · 1 of 3

Reference is made to FIG. 1 , which shows an image processing engine 100 adapted to receive an input picture stream 102 from a picture source 130 such as a picture buffer. The input picture stream 102 comprises a sequence of input pictures 104 1,2,3 . . . at an input frame rate FR in that can be expressed in pictures per time unit (e.g., pictures per second, hereinafter abbreviated as “pps”). Each of the input pictures 104 1,2,3 . . . is associated with an input time instant T 1 1,2,3, . . . . Thus, for example, where the input frame rate FR in is 24 pps, the time instants TI 1,2,3, . . . occupied by the input pictures 104 1,2,3 . . . will be separated by 1/24 s.

The image processing engine 100 produces an output picture stream 106 from the input picture stream 102 . To this end, the image processing engine 100 implements a frame rate conversion entity 200 that executes a frame rate conversion process. The output picture stream 106 comprises a sequence of output pictures 108 1,2,3 . . . at an output frame rate FR out that can be expressed in pictures per time unit (e.g., pps). The output picture stream 106 can be rendered on a display 120 . Each of the output pictures 108 1,2,3 . . . is associated with an output time instant T 0 1,2,3, . . . . Thus, for example, where the output frame rate FR out is 60 pps, the time instants T 0 1,2,3, . . . occupied by the output pictures 108 1,2,3 . . . will be separated by 1/60 s.

One function of the frame rate conversion process is to generate each output picture 108 j such that it contains appropriate visual effects (or lacks unsuitable visual artifacts) relative to its temporal neighbors (namely, output pictures 108 j−1 and 108 j+1 ), particularly as regards the appearance of motion. The frame rate conversion process executed by the frame rate conversion entity 200 can be viewed as a sequence of steps, some of which will be described later with additional reference to FIGS. 2A and 2B .

It will be appreciated that among the output pictures 108 1,2,3 . . . , some correspond to respective ones of the input pictures 104 1,2,3 . . . . Such output pictures are hereinafter referred to as “original” output pictures and denoted by an asterisk (*). Each original output picture 108 * j is derived from a corresponding input picture 104 m . In some cases, original output picture 108 * j is a copy of the corresponding input picture 104 m . In other cases, processing functions not related to frame rate conversion may be performed in order to generate original output picture 108 * j from input picture 104 m .

It will also be appreciated that among the output pictures 108 1,2,3 . . . , those that are not original output pictures are “interpolated” pictures. In one embodiment, an interpolated picture is derived from a combination of two or more of the input pictures 104 1,2,3 . . . . In another embodiment, an interpolated picture is derived from one of the input pictures 104 1,2,3, . . . and a set of previously calculated motion vectors. In accordance with an embodiment of the present invention, the image processing engine 100 computes a set of “R” interpolated pictures { 110 } j for original output picture 108 * j . Specifically, the set of R interpolated pictures { 110 } j for original output picture 108 * j may be computed from a combination of (i) input picture 104 m or original picture 108 * j and (ii) one or more other ones of the input pictures 104 1,2,3 . . . using any one of a number of interpolation techniques.

In one specific non-limiting example embodiment, the interpolation technique used to generate the set of R interpolated pictures { 110 } j for original output picture 108 * j includes a step of motion estimation. In particular, and with reference to FIG. 2A , a set of candidate motion vectors {V} 1,2,3, . . . is obtained for each of a number of pixel collections B 1,2,3, . . . in original output picture 108 * j . It should be appreciated that because original output picture 108 * j corresponds to input picture 104 m , the set of candidate motion vectors {V} 1,2,3, . . . could equivalently be obtained for the same pixel collections B 1,2,3, . . . in the corresponding input picture 104 m . While the following description will consider the situation strictly from the vantage point of original output picture 108 * j , this has been done for convenience and ease of understanding, and is not to be considered a limitation of the scope of the invention.

Each of the pixel collections B 1,2,3, . . . in original output picture 108 * j may include one or more pixels arranged in any shape such as, but not limited to, a block. An example of a suitable block size is 128×64 pixels, which is in no way limiting. Each set of candidate motion vectors {V} k represents the magnitude and direction of apparent motion of the corresponding pixel collection Bk between original output picture 108 * j and another original output picture (in this case, original output picture 108 * j+R ).

Next, one of the candidate motion vectors in each set {V} 1,2,3, . . . is selected as the “true” motion vector for the corresponding pixel collection B 1,2,3, . . . , respectively, and is denoted V* 1,2,3, . . . , respectively. This can be done based on various criteria. In one embodiment, a candidate motion vector belonging to an identified cluster of candidate motion vectors within a particular set {V} k could be selected as the true motion vector V* k for pixel collection B k .

Reference is now made to FIG. 2B . Having obtained the true motion vectors V* 1,2,3, . . . for the various pixel collections B 1 , 2 , 3 , . . . in original output picture 108 * j , the R interpolated pictures { 110 } j for original output picture 108 * j are generated as follows in the specific non-limiting case of linear interpolation. Considering the r th interpolated picture in the set { 110 } j , each pixel collection B k in original output picture 108 * j is translated by its corresponding true motion vector V* k , scaled by a factor S. The factor S corresponds to the relative temporal position of the aforementioned r th interpolated picture along a time line 250 that connects original output picture 108 * j to the other original output picture(s) (in this case, original output picture 108 * j+R ) from which the true motion vector V* k for pixel collection B k was obtained.

›DETAILED DESCRIPTION OF THE INVENTION · 2 of 3

In accordance with an embodiment of the present invention, selection of the true motion vectors V* 1,2,3, . . . for the various pixel collections B 1,2,3, . . . is influenced by the presence of repetitive patterns in original output picture 108 * j . Specifically, the image processing engine 100 may effect an additional step of carrying out repetitive pattern presence detection within original output picture 108 * j . In one embodiment, this yields a set of periodicity vectors for original output picture 108 * j .

The identification of periodicity vectors occurring within original output image 108 * j can be done in a variety of ways. Reference is now made to FIG. 3 . In a non-limiting example, a two-dimensional autocorrelation function may be performed as the basis for the search. Specifically, the autocorrelation function for pixel collection B k in original output picture 108 * j is denoted R(x, y; j, k) and can be computed as a scalar product of pixel collection B k with a version of itself that has been spatially shifted by an amount “x” along one of two Cartesian axes and by an amount “y” along the other. Of course, appropriate windowing may be used to reduce ringing and other discrete-time processing artifacts. The autocorrelation function R(x, y; j, k) will be a two-dimensional function having its global maximum at the origin (x=0, y=0) since pixel collection B k is multiplied with itself. Additionally, the autocorrelation function R(x, y; j, k) may have other noticeable—albeit less significant—peaks at other (x, y) values when multiple sub-regions of the shifted version of pixel collection B k contain substantially similar texture.

The more peaks there are along a definable trend line 302 (horizontal, vertical or diagonal) of the autocorrelation function R(x, y; j, k), the more indicative this is of a repetitive pattern. By taking the one-dimensional Fourier transform of the autocorrelation function R(x, y; j, k) along that trend line 302 , one obtains the spatial frequency at which the repetitive pattern occurs. The inverse of the spatial frequency is then the period which, coupled with the orientation of the trend line 302 , yields a periodicity vector having a respective magnitude and a respective direction. By performing this computation along multiple trend lines exhibiting a number of peaks, one obtains a set of periodicity vectors {P} j,k associated with pixel collection B k in original output picture 108 * j .

Depending on the number of periodicity vectors in each set {P} j,k , as well as their respective magnitudes, adjustments can be made to the interpolation process described above. Specifically, at least three non-limiting possibilities are envisaged:

In a first non-limiting embodiment, the image processing engine 100 determines that there is a substantial repetitive pattern presence within pixel collection B k in original output picture 108 * j . This can be determined based on the periodicity vectors in the set {P} j,k . For example, if the number of periodicity vectors in the set {P} j,k exceeds a certain threshold and/or if the set {P} j,k includes a periodicity vector whose magnitude exceeds a certain other threshold, this may be deemed a substantial repetitive pattern presence within pixel collection B k . Accordingly, the image processing engine 100 causes copies of pixel collection B k to appear in one or more (possibly all) of the R interpolated pictures { 110 } j without any translation thereof. Basically, this overrides the effect of having selected a “true” motion vector V* k for pixel collection Bk in original output image 108 * j Alternatively, instead of causing copies of pixel collection B k to appear in one or more (possibly all) of the R interpolated pictures { 110 } j without any translation thereof, it is within the scope of the present invention to use other techniques such as alpha-blending.

Meanwhile, other pixel collections in original output picture 108 * j that are not deemed to be affected by a substantial presence of repetitive patterns may continue to be translated, as before, by a scaled version of the true motion vector for that pixel collection in original output picture 108 * j .

The above technique can be referred to as partial fallback, and will tend to cause interpolation-induced artifacts, if any, to be less perceptible in the output picture stream 106 .

In a second non-limiting embodiment, the image processing engine 100 considers pixel collection B k in original output picture 108 * j . With reference to FIG. 4 , consider the case where there are multiple candidate motion vectors in the set of candidate motion vectors {V} k for pixel collection B k including, say, V A and V B , among others. This can imply that there is an ambiguity as to whether the true motion of pixel collection B k is correctly expressed by V A or by V B , or by another candidate motion vector in the set {V} k .

Now assume that pairs of candidate motion vectors within the set {V} k are compared to one another, and that the difference between V A and V B is observed to be the same as (or substantially similar to) one of the periodicity vectors in the set {P} k,j . For example, from FIG. 4 , it is observed that V B −V A =P A . This observation can lead to the conclusion that either or both of V A and V B may be attributable to the presence of repetitive patterns present within the given pixel collection B k , in particular the repetitive pattern associated with periodicity vector P A . In other words, when two candidate motion vectors differ by an amount that corresponds to a periodicity vector, then it reduces the likelihood that one or both of the candidate motion vectors is a true motion vector. As a result, it is within the scope of this embodiment to disqualify (remove from consideration) either or both of V A and V B as candidate motion vectors for the given pixel collection B k .

To assist in determining whether either or both of V A and V B should be removed from consideration, various techniques could be used. For example, reference can be made to other nearby pixel collections such as, say, B m . For example, as shown in FIG. 4 , let it be the case that V A is also a candidate motion vector in the set {V} m and is not subject to prospective disqualification (which would otherwise arise if the difference between it and another candidate motion vector in the set {V} m were to correspond to a periodicity vector in the set {P} m,j ). In such a case, then it may be appropriate to remove VB from the set {V}k and to continue to consider V A as a candidate motion vector in the set {V} k (as well as the set {V} m ).

›DETAILED DESCRIPTION OF THE INVENTION · 3 of 3

In a third non-limiting embodiment, the image processing engine 100 determines that there is a substantial repetitive pattern presence in several pixel collections within original output picture 108 * j . This can be determined based on the periodicity vectors in the set {P} j,k for multiple values of k. For example, if the number of periodicity vectors in the sets {P} j,k1 , {P} j,k1 , etc. exceeds a certain threshold and/or if the sets {P} j,k1 , {P} j,k1 , etc. includes several periodicity vectors whose magnitude exceeds a certain other threshold, this may be deemed a substantial repetitive pattern presence within original output picture 108 * j

Alternatively, the frame rate conversion entity 200 may deem there to be a substantial repetitive pattern presence within original output picture 108 * j by performing an analysis of the autocorrelation function R(x, y; j, k) over a range of values for the variable k (i.e., over multiple pixel collections). Specifically, a large number of peaks and/or the presence of one or more high-magnitude peaks may be deemed a substantial repetitive pattern presence within original output picture 108 * j .

In either case, under this third non-limiting embodiment, the image processing engine 100 causes copies of original output image 108 * j to appear as one or more (possibly all) of the R interpolated pictures { 110 } j without any translation of any of its pixel collections B 1,2,3, . . . . Basically, this overrides the effect of having selected the “true” motion vectors V* 1,2,3, . . . for pixel collections B 1,2,3, . . . in original output image 108 * j . Alternatively, instead of causing copies of original output image 108 * j to appear in one or more (possibly all) of the R interpolated pictures { 110 } j , it is within the scope of the present invention to use other techniques such as alpha-blending.

The above technique can be referred to as global fallback, and will, similarly to the other techniques described above, tend to cause interpolation-induced artifacts, if any, to be less perceptible in the output picture stream 106 .

Those skilled in the art should also appreciate that not all of the steps described above are essential in all embodiments. Moreover, the order of certain steps can be interchanged without affecting the end result. Those skilled in the art should appreciate that the image processing engine 100 can be implemented in an application-specific integrated circuit (ASIC) such as can be integrated into a television set, computer graphics processor or other electronic device. Alternatively, the image processing engine 100 can be implemented by programmable elements of a computing device such as a personal computer, mobile computer or mobile communication device. Other implementations will be apparent to those of skill in the art as being within the scope of the present invention.

It should also be appreciated that in some embodiments, all or part of the image processing engine 100 can be manufactured based on a low-level hardware description obtained using a logic synthesis tool that is run on a computing device. The logic synthesis tool reads source code containing a functional description of the image processing engine 100 (e.g., in a language such as HDL, VHDL, Verilog) and outputs a definition of the physical implementation of a circuit suitable for implementing corresponding functionality.

While specific embodiments of the present invention have been described and illustrated, it will be apparent to those skilled in the art that numerous modifications and variations can be made without departing from the scope of the invention as defined in the appended claims.

Claims as granted

20 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

7 codes
IPC · International Patent Classification
Section H — Electricity
  • H04N7/01
USPC · US Patent Classification
348/441382/300348/459348/558348/452348/458

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2012Oct 2012Jan 2013Apr 2013Jul 2013Oct 2013Jan 2014Apr 2014USPTOApplicantNon-final rejectionResponse after non-finalRequest for continued examination
USPTOApplicanthover for detail · click to open
Pendency
1.6 y
600 days filing → grant
Office actions
1
non-final + final
Responses
1
1 RCE
Examiner
Jefferey Harold
art unit 2422 · TC 2400
Citations: 3 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20122014201620182020202220242026202820302032Owner 1Owner 3liens, releases & corrections
TitleLienReleasehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock