Temporal video filtering
First Claim
1. A method for performing temporal filtering of video frames, comprising:
- storing a first video frame at a first time;
receiving a second video frame at a second time, wherein the second time is after the first time;
determining a difference between a first pixel of the first video frame and a corresponding second pixel of the second video frame;
generating a filtered second video frame based on said determining the difference between the first pixel and the corresponding second pixel, wherein said generating comprises;
if the difference is within a first range of thresholds, adding a first offset to the first pixel to form a filtered pixel;
if the difference is not within the first range of thresholds, and the difference is within a second range of thresholds, adding a second offset to the first pixel to form the filtered pixel, wherein the second offset is greater than the first offset, wherein the second range of thresholds is greater than the first range of thresholds; and
if the difference is greater than the first range of thresholds and the second range of thresholds, adding a value approximately equal to the difference to the first pixel to form the filtered pixel;
providing the filtered second video frame for display.
4 Assignments
0 Petitions
Accused Products
Abstract
In various embodiments, temporal filtering may be used to reduce noise over time in a series of video frames. A temporal filter may use previous filtered frames to reduce the noise in a current frame. For example, a temporal filter may filter noise in still parts of an image more strongly than in moving parts of the image. In some embodiments, a temporal filter requiring less processing power may include a method for detecting motion between a set of pixels and applying the temporal filter based on the detected motion. For example, if substantial motion is not detected, the temporal filter for the block of pixels may be stronger (i.e., reduce more noise) than the temporal filter applied to a block of pixels for which substantial motion has been detected.
45 Citations
28 Claims
-
1. A method for performing temporal filtering of video frames, comprising:
-
storing a first video frame at a first time; receiving a second video frame at a second time, wherein the second time is after the first time; determining a difference between a first pixel of the first video frame and a corresponding second pixel of the second video frame; generating a filtered second video frame based on said determining the difference between the first pixel and the corresponding second pixel, wherein said generating comprises; if the difference is within a first range of thresholds, adding a first offset to the first pixel to form a filtered pixel; if the difference is not within the first range of thresholds, and the difference is within a second range of thresholds, adding a second offset to the first pixel to form the filtered pixel, wherein the second offset is greater than the first offset, wherein the second range of thresholds is greater than the first range of thresholds; and if the difference is greater than the first range of thresholds and the second range of thresholds, adding a value approximately equal to the difference to the first pixel to form the filtered pixel; providing the filtered second video frame for display. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 20)
-
-
11. A non-transitory computer accessible memory medium storing program instructions for performing temporal filtering of video frames, wherein the program instructions are executable by a processor to:
-
store a first video frame at a first time; receive a second video frame at a second time, wherein the second time is after the first time; determine a difference between a first pixel of the first video frame and a corresponding second pixel of the second video frame; generate a filtered second video frame based on said determining the difference between the first pixel and the corresponding second pixel, wherein said generating comprises; if the difference is within a first range of thresholds, adding a first offset to the first pixel to form a filtered pixel; if the difference is not within the first range of thresholds, and the difference is within a second range of thresholds, adding a second offset to the first pixel to form the filtered pixel, wherein the second offset is greater than the first offset, wherein the second range of thresholds is greater than the first range of thresholds; and if the difference is greater than the first range of thresholds and the second range of thresholds, adding a value approximately equal to the difference to the first pixel to form the filtered pixel; provide the filtered second video frame for display. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
21. A video conferencing system, comprising:
-
a video display; a video codec coupled to the video display, wherein the video codec is configured to send/receive video frames to/from a remote video conferencing system, wherein the video codec comprises a processor and memory;
wherein the memory is configured to store program instructions executable by the processor to;store a first video frame at a first time; receive a second video frame at a second time, wherein the second time is after the first time; determine a difference between a first pixel of the first video frame and a corresponding second pixel of the second video frame; generate a filtered second video frame based on said determining the difference between the first pixel and the corresponding second pixel, wherein said generating comprises; if the difference is within a first range of thresholds, adding a first offset to the first pixel to form a filtered pixel; if the difference is not within the first range of thresholds, and the difference is within a second range of thresholds, adding a second offset to the first pixel to form the filtered pixel, wherein the second offset is greater than the first offset, wherein the second range of thresholds is greater than the first range of thresholds; and if the difference is greater than the first range of thresholds and the second range of thresholds, adding a value approximately equal to the difference to the first pixel to form the filtered pixel; provide the filtered second video frame for display. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A non-transitory computer accessible memory medium storing program instructions for performing temporal filtering of video frames, wherein the program instructions are executable by a processor to:
-
store a first video frame at a first time; receive a second video frame at a second time, wherein the second time is after the first time; determine a difference between a first pixel of the first video frame and a corresponding second pixel of the second video frame; generate a filtered second video frame based on said determining the difference between the first pixel and the corresponding second pixel, wherein said generating comprises; if the difference is within a first range of thresholds, adding a first offset to the first pixel to form a filtered pixel; if the difference is not within the first range of thresholds, and the difference is within a second range of thresholds, adding a second offset to the first pixel to form the filtered pixel, wherein the second offset is greater than the first offset, wherein the second range of thresholds is greater than the first range of thresholds; and if the difference is greater than the first range of thresholds and the second range of thresholds, using the second pixel without filtering; provide the filtered second video frame for display. - View Dependent Claims (28)
-
Specification