Originally Posted by SiGGy
As well they can even smooth out variances in luminance in the dark areas frames without really hampering the video. As you probably know dark areas really struggle to stay stable with high compression. Lots of noise there...
Again, this is exactly where a temporal smoother shines, and even though it is altering the picture, people don't expect to see changing pixels in steady backgrounds, so it makes it look "right".
My opinion differs with yours speaking in terms of high end video processing in a TV or AVR. ASICs can be made to do a lot of what you describe without the need of a an expensive GPU...The last chip our division made had inside it 2 ARM processors, 6 core programmable DSP, and a crypto ASIC.
The GPU I am using has the equivalent of hundreds
of cores for this sort of processing, and the FFT is very easy to parallelize, and still it can't keep up with 1080p24 in real time (although it might if I reduced the block size and stride on the FFT, but then the quality drops, which is what a more limited chip would require to even think about being used in a real-time application).
The video card also has 512MB of very fast local RAM, which can be used for caching multiple frames to allow for very complex filters, some that look back at the last 30 frames to make their decisions. With single-cycle functions like pixel value averaging, having that many extra frames doesn't cost much in speed, but it does help avoid some of the ugly results that can come from ignoring frame history.
Remember, too, that today's GPUs really are just billion-transistor ASICs. They don't really cost that much compared to a $2000 TV when you can get a complete video card for $100, but manufacturers want to use the same hardware inside every one of their models if they can, so the $400 TV can't really afford $50 for such a chip. Worse still, the real devices that need such processing (STBs, media players) can't even afford $5 extra. The advantage to putting the processing in the source is that you can have memory settings that allow the right kind of processing based on things like resolution, source (OTA, Internet stream, satellite, etc.), or the exact movie being played (e.g., real-time de-greening of Fellowship of the Ring