O problema não é VLC, nem mesmo os drivers; é o Windows ou, para ser mais específico, o Aero.
No Windows XP, a superfície de sobreposição acelerada por hardware da placa de vídeo não era usada pelo Windows e, portanto, era gratuita para os programas usarem para gravar dados diretamente na saída da placa de vídeo. (Você já tentou obter um screencap de um vídeo e obteve um retângulo preto ao colá-lo? Isso porque você capturou a superfície de sobreposição, não o vídeo real.)
No Windows 7, a interface Aero ocupa a superfície de sobreposição para fazer seus gráficos e transparências sofisticados, sem diminuir o ritmo do sistema. Como resultado, outros programas não podem usar a sobreposição (a maioria dos cartões de vídeo tem apenas um), e assim os vídeos precisam usar a renderização de software (por exemplo, usando a CPU em vez da GPU) para exibir o vídeo. (Presumivelmente, mudando a tela para um modo de tela cheia, um aplicativo pode usar a sobreposição, embora o Alt-Tabbing para a área de trabalho possa causar problemas ou pelo menos um atraso conforme os drivers da placa de vídeo são trocados. Claro que isso é apenas teoria, eu não tenho nenhuma evidência real de programas usando aceleração de hardware enquanto o Aero está rodando.)
Como você descobriu, a exibição renderizada por software parece bastante diferente da exibição acelerada. Você também descobriu que pode usar o módulo de saída Direct-X para usar a aceleração, mas isso requer a desativação do Aero. Imran mencionou o uso do OpenGL, mas também é um módulo renderizado por software.
Então, aqui está o cenário ao visualizar vídeos no Windows 7. Você tem duas opções básicas:
- Desabilite o Aero e use um tema clássico do Windows Basic ou Windows, mas obtenha vídeo acelerado por hardware.
- Mantenha o Aero e use módulos de saída OpenGL (ou outros) no player de vídeo para renderizá-los no software. Se você escolher a padrão, ela não ficará tão boa, mas se você escolher uma que pareça melhor (por exemplo, mistura, suavização etc.), ela usará mais CPU.