Detecting motion in a sequence of frames each comprising one or more blocks of pixels, the detection comprising: determining image characteristics at a set of sample points of a block; comparing image characteristics of pairs of sample points 901 of the set, to form a current feature 902 for the block, the current feature having a plurality of values each representing the result of the comparison of a pair of sample points; and generating a motion output for a block by comparing the current feature for the block to a learned feature representing historical feature values for the block. Preferably each pair of points is randomly selected from the sample points of a block. The sample points themselves may be randomly or pseudo-randomly generated from the pixels of the block. Motion detection may comprise generating an estimate of the expectation of the current feature based on the historical feature and comparing this against a pre-defined or adaptive threshold. The adaptive threshold may be based on the expected degree of variation of the block.
Learned feature motion detection