I could have sworn video processing was floating point intensive... hence the speedup from OpenCL.
They're nearly entirely integer. This is why AVX wasn't as useful as it could have been (had it included what we now know as AVX2). The three operand calling convention of AVX did help (although only on Intel processors I believe).
Video encoding is almost all integer. The speedup from GPU usage is due to the amount of parallel computations that are available.
Also note that all current implementations of non-CPU encoding sacrifice a lot of quality in order to accommodate GPU architectures.
The most logical thing to offload to the GPU would be motion compensation. Stuff like CABAC encoding is inherently single threaded and not suited to GPU's, so you'll never have an encoder which will run entirely on the GPU.
GPU's are very good at doing vast number of things in parallel (thousands of threads) so even trying to offload the motion compensation you run into the problem of simply not being able to use the GPU's resources in a way which would make it worth offloading in the first place.
Last edited: