An apparatus, comprising: a motion detection logic configured to analyze an input video stream, wherein the input video stream is an interlaced stream comprising interlaced fields or is a progressive stream comprising progressive frames, and to determine a pattern of motion between the progressive frames when the input video stream is a progressive stream, and to determine a pattern of motion between the interlaced fields when the input video stream is an interlaced stream, the pattern of motion being a repeating pattern of motion values, wherein a motion value has either a value to indicate that two compared progressive frames or two compared interlaced fields are different or a value to indicate that the two compared frames or fields are the same or similar; a cadence detector to determine a cadence pattern from the pattern of motion of the analyzed input video stream, the cadence detector being programmed with one or more cadence patterns to match the motion values; a converter to, when the input video stream is an interlaced stream, convert the input video stream to a progressive stream; and a frame rate converter to convert the progressive stream to a video stream having a different cadence than the determined cadence pattern based at least in part on the cadence pattern; wherein the motion detection logic includes a programmable threshold that is set to declare when two compared interlaced fields are different and when two compared progressive frames are different, where the programmable threshold is set differently for the interlaced stream than for the progressive stream, wherein the programmable threshold is used to determine whether motion is present between two compared frames or between two compared fields. a motion detection logic configured to analyze an input video stream, wherein the input video stream is an interlaced stream comprising interlaced fields or is a progressive stream comprising progressive frames, and to determine a pattern of motion between the progressive frames when the input video stream is a progressive stream, and to determine a pattern of motion between the interlaced fields when the input video stream is an interlaced stream, the pattern of motion being a repeating pattern of motion values, wherein a motion value has either a value to indicate that two compared progressive frames or two compared interlaced fields are different or a value to indicate that the two compared frames or fields are the same or similar; a cadence detector to determine a cadence pattern from the pattern of motion of the analyzed input video stream, the cadence detector being programmed with one or more cadence patterns to match the motion values; a converter to, when the input video stream is an interlaced stream, convert the input video stream to a progressive stream; and a frame rate converter to convert the progressive stream to a video stream having a different cadence than the determined cadence pattern based at least in part on the cadence pattern; wherein the motion detection logic includes a programmable threshold that is set to declare when two compared interlaced fields are different and when two compared progressive frames are different, where the programmable threshold is set differently for the interlaced stream than for the progressive stream, wherein the programmable threshold is used to determine whether motion is present between two compared frames or between two compared fields.