Video filtering using a programmable graphics processor is described. The
programmable graphics processor may be programmed to complete a plurality
of video filtering operations in a single pass through a
fragment-processing pipeline within the programmable graphics processor.
Video filtering functions such as deinterlacing, chroma up-sampling,
scaling, and deblocking may be performed by the fragment-processing
pipeline. The fragment-processing pipeline may be programmed to perform
motion adaptive deinterlacing, wherein a spatially variant filter
determines, on a pixel basis, whether a "bob", a "blend", or a "weave"
operation should be used to process an interlaced image.