A data processing device for detecting motion in a sequence of frames each comprising one or more blocks of pixels, the data processing device comprising: a sampling unit configured to determine image characteristics at a set of sample points of a block; a feature generation unit configured to compare the image characteristics of pairs of sample points of the set, each comparison being between the sample points of the respective pair, and form a current feature for the block in dependence on the identified image characteristics, the current feature having a plurality of values derived from the sample points such that each value represents the result of the comparison for a pair of sample points; and motion detection logic configured to generate a motion output for the block by comparing the current feature for the block to a learned feature representing historical feature values for the block, characterized in that: the comparison performed by the motion detection logic comprises; maintaining an estimate of an expected degree of variation of the block; forming an adaptive threshold for the block in dependence on that estimate; forming an estimate as to whether, based on a measure of differences between the values of the current feature and the corresponding values of the learned feature, the current feature is expected based on the historical values of the learned feature of the block; and generating the motion output so as to indicate motion at the block if the estimate exceeds the adaptive threshold. a sampling unit configured to determine image characteristics at a set of sample points of a block; a feature generation unit configured to compare the image characteristics of pairs of sample points of the set, each comparison being between the sample points of the respective pair, and form a current feature for the block in dependence on the identified image characteristics, the current feature having a plurality of values derived from the sample points such that each value represents the result of the comparison for a pair of sample points; and motion detection logic configured to generate a motion output for the block by comparing the current feature for the block to a learned feature representing historical feature values for the block, characterized in that: the comparison performed by the motion detection logic comprises; maintaining an estimate of an expected degree of variation of the block; forming an adaptive threshold for the block in dependence on that estimate; forming an estimate as to whether, based on a measure of differences between the values of the current feature and the corresponding values of the learned feature, the current feature is expected based on the historical values of the learned feature of the block; and generating the motion output so as to indicate motion at the block if the estimate exceeds the adaptive threshold. maintaining an estimate of an expected degree of variation of the block; forming an adaptive threshold for the block in dependence on that estimate; forming an estimate as to whether, based on a measure of differences between the values of the current feature and the corresponding values of the learned feature, the current feature is expected based on the historical values of the learned feature of the block; and generating the motion output so as to indicate motion at the block if the estimate exceeds the adaptive threshold.