Increasing motion smoothness using frame interpolation with motion analysis
First Claim
1. In a computer system, a computer-implemented method of video frame synthesis, the method comprising:
- estimating global motion between first video data with a first timestamp and second video data with a second timestamp; and
estimating local motion at an intermediate timestamp between the first and second timestamps to correct the global motion at the intermediate timestamp.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques and tools for video frame interpolation and motion analysis are described. The techniques and tools may be implemented separately or in combination in software and/or hardware devices for various applications. For example, a media playback device uses frame interpolation and motion analysis in real time to increase the frame rate of streamed video for playback. The device uses feature/region selection in global motion estimation, local motion estimation to correct the global motion estimation at an intermediate timestamp for a synthesized frame, and vector switching in the local motion estimation.
-
Citations
110 Claims
-
1. In a computer system, a computer-implemented method of video frame synthesis, the method comprising:
-
estimating global motion between first video data with a first timestamp and second video data with a second timestamp; and
estimating local motion at an intermediate timestamp between the first and second timestamps to correct the global motion at the intermediate timestamp. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of processing source data samples in a sequence, the method comprising:
-
estimating global motion between source data samples in a sequence; and
estimating local motion to correct the global motion at a position of an intermediate data sample in the sequence, wherein the intermediate data sample is between the source data samples in the sequence, and wherein the estimating local motion includes estimating motion at the position of the intermediate data sample. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. In a computer system, a computer-implemented method of increasing the playback frame rate of streamed video on a client computer, the method comprising:
-
receiving a stream by the client computer from a server computer, wherein the stream is for a video sequence having a streaming frame rate;
decompressing plural source video frames in real time;
performing motion analysis between the plural source video frames in real time;
synthesizing a video frame in real time using interpolation of the plural source video frames after warping; and
playing back the source and synthesized video frames in real time at the client computer at a playback frame rate greater than the streaming frame rate. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of processing video data in a streaming media playback device, the method comprising:
-
receiving at least part of a stream of data from a streaming media provider, wherein the stream is for a media sequence;
temporarily buffering the received stream;
reconstructing first and second source frames in the media sequence based at least in part on the buffered stream;
temporarily buffering the first and second reconstructed source frames;
estimating motion between the first and second reconstructed source frames;
synthesizing one or more new frames between the first and second reconstructed source frames using interpolation to increase motion smoothness for the media sequence;
temporarily buffering the one or more synthesized frames;
playing back the first reconstructed source frame, the one or more synthesized frames, and the second reconstructed source frame, wherein the receiving, the reconstructing, the estimating motion, the synthesizing, and the playing back occur in real time, thereby providing unbroken playback of the media sequence by the streaming media playback device as the receiving continues. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61)
-
-
62. In a computer system, a computer-implemented method of video frame synthesis, the method comprising:
-
selecting features and/or regions of source video data for emphasis;
estimating motion between the source video data, wherein the selecting increases accuracy and/or speed of the estimating; and
synthesizing a video frame. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
-
-
73. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
-
identifying one or more points in a region of an active area in source data with reference to a boundary around the region; and
de-emphasizing the one or more points in motion analysis for frame synthesis. - View Dependent Claims (74, 75, 76, 77, 78)
-
-
79. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
-
constructing a histogram for source data;
identifying one or more feature points based at least in part upon the histogram;
emphasizing the one or more feature points in motion analysis for frame synthesis. - View Dependent Claims (80, 81, 82, 83, 84, 85)
-
-
86. In a computer system, a computer-implemented method of video frame synthesis comprising:
-
estimating motion between source video data, wherein the estimating includes vector switching; and
synthesizing a new video frame using the estimated motion along with interpolation. - View Dependent Claims (87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97)
-
-
98. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
-
estimating global motion between first video data with a first timestamp and second video data with a second timestamp;
computing plural candidate sets of differential vectors to correct the global motion at an intermediate timestamp between the first timestamp and the second timestamp; and
selecting between the plural candidate sets of differential vectors. - View Dependent Claims (99, 100, 101, 102, 103)
-
-
104. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of frame synthesis, the method comprising:
-
computing plural candidate sets of motion information, wherein the computing uses a different motion model before deriving each of the plural candidate sets;
selecting between the plural candidate sets of motion information; and
performing motion compensation on plural source frames based at least in part on the selected motion information; and
generating a new frame based at least in part upon interpolation between the motion compensated source frames. - View Dependent Claims (105, 106, 107)
-
-
108. A system comprising:
-
a pyramid decomposition module for decomposing source frames into levels;
a global motion estimation module for estimating global motion between the levels, wherein the global motion estimation module checks quality of the global motion before frame synthesis;
a local motion estimation module for correcting the global motion at an intermediate timestamp, wherein the local motion estimation module checks quality of the corrected global motion before the frame synthesis;
a frame synthesis module for synthesizing a new frame at the intermediate timestamp using the corrected global motion. - View Dependent Claims (109, 110)
-
Specification