Increased video playback framerate in low bit-rate video applications
First Claim
Patent Images
1. A method comprising:
- selecting a number of blocks of a frame pair;
synthesizing an interpolated frame based on the selected blocks of the frame pair; and
aborting the synthesis of the interpolated frame upon determining the interpolated frame has an unacceptable quality.
1 Assignment
0 Petitions
Accused Products
Abstract
A method comprising selecting a number of blocks of a frame pair and synthesizing an interpolated frame based on those selected blocks of the frame pair. Additionally, the synthesis of the interpolated frame is aborted upon determining the interpolated frame has an unacceptable quality.
117 Citations
42 Claims
-
1. A method comprising:
-
selecting a number of blocks of a frame pair;
synthesizing an interpolated frame based on the selected blocks of the frame pair; and
aborting the synthesis of the interpolated frame upon determining the interpolated frame has an unacceptable quality. - View Dependent Claims (21, 22)
determining that a sum of relative portions of covered and uncovered pixels within a block exceeds a first predetermined threshold.
-
-
22. The method of claim 21, wherein determining the interpolated frame has an unacceptable quality further comprises:
-
determining that a sum of relative portions of covered and uncovered pixels within an other block exceeds the first predetermined threshold;
marking the block and the other block as suspect; and
determining the a number of blocks marked as suspect exceeds a second predetermined threshold.
-
-
2. A method comprising:
-
selecting a block size based on a level of activity for a current frame and a previous frame; and
synthesizing an interpolated frame based on the selected block size of the current frame and the previous frame. - View Dependent Claims (3, 4, 5, 23, 24, 38)
(a) selecting an initial block size of N×
N, wherein N is a block size variable;
(b) determining relative proportions of pixels for each block that belong to a certain class;
(c) determining the number of blocks that have a single class of pixels in excess of a first predetermined threshold to form a homogenous value;
(d) comparing the homogenous value to a second predetermined threshold;
(e) using block size N×
N wherein N is the block size variable upon determining the homogenous value is greater than the second predetermined threshold; and
(f) dividing the block size variable by two and repeating (b)-(e) until the homogenous value is in excess of the second predetermined threshold or the block size variable is less than a third predetermined threshold.
-
-
23. The method of claim 2, wherein selecting a block size further comprises:
dynamically changing the block size on a per-frame basis.
-
24. The method of claim 23, wherein selecting a block size further comprises:
changing a resolution of a motion field to account for both large and small amounts of motion.
-
38. The method of claim 23, further comprising:
a video display, wherein the video display receives the current frame and the interpolated frame from the synthesizer to display the current frame and the interpolated frame.
-
6. A method comprising:
-
selecting a zero motion vector for a given pixel in an interpolated frame upon determining a current pixel in a current frame corresponding to the given pixel in the interpolated frame is classified as covered or uncovered; and
synthesizing the interpolated frame based on selecting the zero motion vector for the given pixel in the interpolated frame upon determining the current pixel in the current frame corresponding to the given pixel in the interpolated frame is classified as covered or uncovered. - View Dependent Claims (25, 26)
determining a number of pixels in the current frame to be covered or uncovered.
-
-
26. The method of claim 25, further comprising:
low-pass filtering an edge of a covered region.
-
7. A method comprising:
-
classifying a number of pixels in a current frame into one of a number of different pixel classifications for synthesis of an interpolated frame; and
aborting of the synthesis of the interpolated frame and repeating a previous frame upon determining the interpolated frame has an unacceptable quality based on the classifying of the number of pixels in the current frame. - View Dependent Claims (8, 27, 28)
determining that a number of non-stationary blocks in the interpolated frame have been forced to use a zero motion vector.
-
-
28. The method of claim 27, wherein determining the interpolated frame has an unacceptable quality further comprises:
determining that the number of non-stationary blocks exceeds a predetermined proportion of all blocks in the interpolated frame.
-
9. A method comprising:
-
selecting a best motion vector from a forward motion vector, a backward motion vector, and a zero motion vector for each of a number of blocks for a hypothetical interpolated frame situated temporally in between a current frame and a previous frame;
scaling the best motion vector for each of the number of blocks for the hypothetical interpolated frame for a number of interpolated frames a relative distance of the number of interpolated frames from the current frame; and
synthesizing the number of interpolated frames based on the best motion vector for each block within the number of interpolated frames. - View Dependent Claims (29, 30)
creating a candidate list for each block in the number of blocks.
-
-
30. The method of claim 29, wherein the candidate list includes the forward motion vector, the backward motion vector, and the zero motion vector.
-
10. A method comprising:
-
determining a suitable block matching measure for motion compensation, the block matching measure including a block matching error and an overlap; and
synthesizing an interpolated frame based on the suitable block matching measure. - View Dependent Claims (31, 32, 33)
calculating a ratio comprising the mean absolute difference and the overlap; and
comparing the ratio to a predetermined threshold.
-
-
11. A system comprising:
-
a block size selector selecting a number of blocks of a frame pair;
a synthesizer synthesizing an interpolated frame based on the selected blocks of the frame pair; and
a mechanism aborting the synthesis of the interpolated frame upon determining the interpolated frame has an unacceptable quality. - View Dependent Claims (12, 34)
-
-
13. A system comprising:
-
a block size selector selecting a block size based on a level of activity for a current frame and a previous frame; and
a synthesizer synthesizing an interpolated frame based on the selected block size of the current frame and the previous frame. - View Dependent Claims (35, 36)
-
-
14. A system comprising:
-
a first mechanism maintaining a number of lists for a number of interpolated blocks of an interpolated frame for determining a best-matched block from a current frame and a previous frame for each interpolated block, wherein each list of the number of lists has a current winning block;
a block size selector selecting the best-matched block for each interpolated block from the current winning block for each list based on an error criterion and an overlap criterion; and
a synthesizer synthesizing the interpolated frame based on the best-matched block for each interpolated block. - View Dependent Claims (15, 16)
a second mechanism substituting a zero motion vector for a best motion vector for creation of each interpolated block of the interpolated frame upon determining the corresponding overlap is less than a first predetermined threshold; and
a third mechanism aborting the synthesis of the interpolated frame and repeating a previous frame upon determining a number of interpolated blocks whose corresponding overlap is less than a first predetermined threshold is greater than a second predetermined threshold.
-
-
17. A system comprising:
-
a mechanism selecting a zero motion vector for a given pixel in an interpolated frame upon determining a current pixel in a current frame corresponding to the given pixel in the interpolated frame is classified as covered or uncovered; and
a synthesizer synthesizing the interpolated frame based on the selection of the zero motion vector for the given pixel in the interpolated frame upon determining the current pixel in the current frame corresponding to the given pixel in the interpolated frame is classified as covered or uncovered. - View Dependent Claims (37)
a mechanism to calculate the zero motion vector capable of being coupled to the mechanism selecting a zero motion vector.
-
-
18. A system comprising:
-
a first mechanism classifying a number of pixels in a current frame into one of a number of different pixel classifications for synthesis of an interpolated frame; and
a second mechanism aborting the synthesis of the interpolated frame and repeating a previous frame upon determining the interpolated frame has an unacceptable quality based on the classification of the number of pixels in the current frame. - View Dependent Claims (39, 40)
-
-
19. A system comprising:
-
a block size selector selecting a best motion vector for each of a number of blocks for a hypothetical interpolated frame situated temporally in between a current frame and a previous frame;
a mechanism scaling the best motion vector for each of the number of blocks for the hypothetical interpolated frame for a number of interpolated frames a relative distance of the number of interpolated frames from the current frame; and
a synthesizer synthesizing the number of interpolated frames based on the best motion vector for each block within the number of interpolated frames. - View Dependent Claims (41, 42)
a classification map having a state for each one of a plurality of pixels, the classification map being accessible by the block size selector.
-
-
42. The system of claim 41, wherein the classification map has a number of different pixel classifications including covered, uncovered, moving, and stationary.
-
20. An article comprising a computer readable medium having a computer program stored thereon for execution on a computer with instructions to:
-
select a block size based on a level of activity for a current frame and a previous frame; and
synthesize an interpolated frame based on the selected block size of the current frame and the previous frame.
-
Specification