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; using a long-term counter with each Gaussian model to determine if a current pixel is a foreground pixel or background pixel; using a short-term counter with each Gaussian model to determine which Gaussian model to use for the current pixel of a current background image; if a pixel is detected as a background pixel updating a corresponding evolving background image with a moving average method; dividing the image into M×M pixel blocks, each block having motion pixels in a frame; comparing for each block the motion pixels in a current frame with motion pixels in a previous frame to identify a number of pixels with motion change, and 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; designating a block for noise masking 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; if an object is detected as a still object, updating the pixels in the area in the current frame into the current background image and evolving background image, and maximizing the short-term counters of the Gaussian models corresponding to the pixels in the area of the current frame and updating the long-term counters to ensure that the pixels will be classified as background pixels; and if a pixel is detected as a background pixel and the background model for the pixel is different to the pixel in the previous frame, updating the pixel of both of the current and evolving background image and coding and transmitting the updated current background pixels; determining if an object is always moving locally by detecting if an object is always moving within a predetermined distance and changing a 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 an 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 with background update blocks defined therein; updating an evolving background image; and coding the current background image, background update blocks and objects for transmission.