Is VAAPI the same as hardware encoding?
Couldn't you just offload some of the software encoding tasks to CUDA or OpenCL to speed them up? 
  


No. Video encoding is very difficult to parallelize. And even in software adding threads has a quality impact. GPUs run small, simple programs. Their speed comes from being able to run thousands of copies of these small programs at the same time. All forms of compression work by reducing entropy from a stream. Meaning it needs to have knowledge of what data it has encountered in the past. If the past is running on another core, it must wait for it to finish (eliminating the benefits of multi core) or proceed without that information (hurting compression ratios)

VAAPI uses intel QuickSync.