Method and System for Video Coding with Noise Filtering
First Claim
1. A method of video coding comprising:
- receiving a video image having a plurality of pixels;
selecting a plurality of Gaussian models for each pixel in the plurality of pixels in the image;
classifying each pixel as a background pixel or foreground pixel based on the probability of the model that the pixel fits best;
dividing the image into M×
M pixel blocks;
comparing for each block the motion pixels in the current frame with motion pixels in the previous frame to determine if the number of pixels with motion change is greater than a first threshold;
triggering a counter for a block if the number of pixels with motion change is greater than the first threshold;
determining if an accumulated count in the counter in a first predetermined period of time is larger than a second threshold;
ignoring all motion in a block if the accumulated count in the counter in a first predetermined period of time is larger than the second threshold;
tracking objects in the image;
determining if an object is always moving locally by detecting if an object is always moving within a predetermined distance and changing the direction of moving frequently for a second predetermined period of time;
removing an object from classification as an object if the determining step determines that an object is always moving locally;
ignoring the motion of an object if the determining step determines that an object is always moving locally and marking the area that the object moves within as a noisy area on a noise mask buffer;
updating background models based on motion detection and noise filtering;
updating a current background image;
updating an evolving background image; and
coding the current background image, background update blocks and objects for transmission.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques are discussed herein for providing mechanisms for coding and transmitting high definition video, e.g., over low bandwidth connections. In particular, foreground-objects are identified as distinct from the background of a scene represented by a plurality of video frames. In identifying foreground-objects, semantically significant and semantically insignificant movement (e.g., non-repetitive versus repetitive movement) is differentiated. For example, the swaying motion of a tree'"'"'s leaves being minor and repetitive, can be determined to be semantically insignificant and to belong in a scene'"'"'s background. Processing of the foreground-objects and background proceed at different update rates or frequencies. For example, foreground-objects can be updated 30 or 60 times per second. By contrast, a background is updated less frequently, e.g., once every 10 seconds. In some implementations, if no foreground-objects are identified, no live video is transmitted (e.g., if no motion is detected, static images are not configured to be repeatedly sent). Techniques described herein take advantage of the realization that, in the area of surveillance and wireless communications, updating video of semantically significant movement at a high frame rate is sufficient.
72 Citations
18 Claims
-
1. A method of video coding comprising:
- receiving a video image having a plurality of pixels;
selecting a plurality of Gaussian models for each pixel in the plurality of pixels in the image;
classifying each pixel as a background pixel or foreground pixel based on the probability of the model that the pixel fits best;
dividing the image into M×
M pixel blocks;
comparing for each block the motion pixels in the current frame with motion pixels in the previous frame to determine if the number of pixels with motion change is greater than a first threshold;
triggering a counter for a block if the number of pixels with motion change is greater than the first threshold;
determining if an accumulated count in the counter in a first predetermined period of time is larger than a second threshold;
ignoring all motion in a block if the accumulated count in the counter in a first predetermined period of time is larger than the second threshold;
tracking objects in the image;
determining if an object is always moving locally by detecting if an object is always moving within a predetermined distance and changing the direction of moving frequently for a second predetermined period of time;
removing an object from classification as an object if the determining step determines that an object is always moving locally;
ignoring the motion of an object if the determining step determines that an object is always moving locally and marking the area that the object moves within as a noisy area on a noise mask buffer;
updating background models based on motion detection and noise filtering;
updating a current background image;
updating an evolving background image; and
coding the current background image, background update blocks and objects for transmission. - View Dependent Claims (2, 3, 4, 5, 6)
- receiving a video image having a plurality of pixels;
-
7. A system for video coding comprising:
- a processor adapted to receive a video image having a plurality of pixels, select a plurality of Gaussian models for each pixel in the plurality of pixels in the image, classify each pixel as a background pixel or foreground pixel based on the probability of the model that the pixel fits best divide the image into M×
M pixel blocks, compare for each block the motion pixels in the current frame with motion pixels in the previous frame to determine if the number of pixels with motion change is greater than a first threshold, trigger a counter for a block if the number of pixels with motion change is greater than the first threshold, determine if an accumulated count in the counter in a first predetermined period of time is larger than a second threshold, ignore all motion in a block if the accumulated count in the counter in a first predetermined period of time is larger than the second threshold, track objects in the image, determine if an object is always moving locally by detecting if an object is always moving within a predetermined distance and changing the direction of moving frequently for a second predetermined period of time, remove an object from classification as an object if the processor determines that an object is always moving locally, ignore the motion of an object if the determining step determines that an object is always moving locally and marking the area that the object moves within as a noisy area on a noise mask buffer, update background models based on motion detection and noise filtering, update a current background image, update an evolving background image and code the current background image, background update blocks and objects for transmission. - View Dependent Claims (8, 9, 10, 11, 12)
- a processor adapted to receive a video image having a plurality of pixels, select a plurality of Gaussian models for each pixel in the plurality of pixels in the image, classify each pixel as a background pixel or foreground pixel based on the probability of the model that the pixel fits best divide the image into M×
-
13. A non-transitory computer readable medium comprising instructions configured to cause a processor to:
- receive a video image having a plurality of pixels;
selecting a plurality of Gaussian models for each pixel in the plurality of pixels in the image;
classify each pixel as a background pixel or foreground pixel based on the probability of the model that the pixel fits best;
divide the image into M×
M pixel blocks;
compare for each block the motion pixels in the current frame with motion pixels in the previous frame to determine if the number of pixels with motion change is greater than a first threshold;
trigger a counter for a block if the number of pixels with motion change is greater than the first threshold;
determine if an accumulated count in the counter in a first predetermined period of time is larger than a second threshold;
ignore all motion in a block if the accumulated count in the counter in a first predetermined period of time is larger than the second threshold;
track objects in the image;
determine if an object is always moving locally by detecting if an object is always moving within a predetermined distance and changing the direction of moving frequently for a second predetermined period of time;
remove an object from classification as an object if the processor determines that an object is always moving locally;
ignore the motion of an object if the processor determines that an object is always moving locally and marking the area that the object moves within as a noisy area on a noise mask buffer;
update background models based on motion detection and noise filtering;
update a current background image;
update an evolving background image; and
code the current background image, background update blocks and objects for transmission. - View Dependent Claims (14, 15, 16, 17, 18)
- receive a video image having a plurality of pixels;
Specification