Why can't more processing be offloaded on to the GPU?
Porque o Flash (usado para) falta integração com o sistema operacional e as APIs da placa gráfica que permitiriam isso. Para que o plugin Flash adie a decodificação para a GPU, ele precisa falar com o sistema operacional e, subseqüentemente, com a placa gráfica para passar as instruções de decodificação e renderização.
O Flash 10.1 finalmente introduziu a aceleração de GPU .
Hardware-accelerated H.264 decoding is supported on some video cards and drivers running on Windows XP, Windows Vista, and Windows 7. Linux and Mac OS X hardware-accelerated decoding is not supported in this version.
Aqui está o principal culpado: OS X fez permitir que o Flash acesse a GPU mais tarde para decodificação de vídeo h.264, mas o suporte deles não foi tão bom. Porque - basta colocar - A Apple ainda detesta o Flash (a falta de suporte da API é pelas mesmas razões que eles não usam nunca deseje Flash em um dispositivo móvel como o iPhone ou iPad). Para suporte a GPU no OS X, consulte esta entrada na base de conhecimento da Adobe .
Por que isso ainda não funciona no Linux, eu pessoalmente não sei.
Para responder sua primeira pergunta, também citarei a própria Adobe. O ponto principal é que os codecs de vídeo modernos, como o h.264, são muito muito complicados de decodificar, e eles enfatizam bastante as CPUs. Se não houver uma API para decodificação da GPU ou um mau suporte para ela, você verá um alto uso da CPU e não há muita coisa a fazer sobre isso.
H.264 provides excellent video quality but requires a great deal of processing power to decode it. H.264 video is decoded in Flash Player 10.1 by a GPU or media accelerator whenever capable hardware is available, which greatly improves playback performance and battery life. This is particularly useful for resource-constrained mobile devices, such as netbooks and smartphones.