Antes de que HD fuera una cosa, las CPU podían manejar la decodificación de video fácilmente. Cuando HD se hizo popular hace unos 8 años, los fabricantes de GPU comenzaron a implementar la decodificación de video acelerada en sus chips. Puede encontrar fácilmente tarjetas gráficas comercializadas como compatibles con videos HD y algunos otros lemas. Hoy en día, cualquier GPU admite video acelerado, incluso GPU integradas como Intel HD Graphics o sus predecesoras, Intel GMA. Sin esa adición, su CPU tendría dificultades para tratar de digerir video de 1080p con una velocidad de fotogramas aceptable, sin mencionar el mayor consumo de energía. Entonces ya estás usando videos acelerados todos los días.
Ahora, cuando las GPU tienen un poder computacional de uso cada vez más general, también se usan ampliamente para acelerar el procesamiento de video. Esta tendencia comenzó casi al mismo tiempo cuando se introdujo la decodificación acelerada. Programas como Badaboom comenzaron a ganar popularidad, ya que resultó que las GPU son mucho mejores en (re) codificar video que las CPU. Sin embargo, no se podía hacer antes, porque las GPU carecían de capacidades computacionales genéricas.
Pero las GPU ya podían escalar, rotar y transformar imágenes desde la edad media, entonces, ¿por qué no pudimos usar estas funciones para el procesamiento de video? Bueno, estas características nunca se implementaron para usarse de esa manera, por lo que no eran óptimas por varias razones.
Cuando programa un juego, primero carga todos los gráficos, efectos, etc. a la GPU y luego simplemente renderiza polígonos y asigna objetos apropiados a ellos. No tiene que enviar texturas cada vez que las necesite, puede cargarlas y reutilizarlas. Cuando se trata del procesamiento de video, debe alimentar constantemente los cuadros a la GPU, procesarlos y recuperarlos para volver a codificarlos en la CPU (recuerde, estamos hablando de tiempos de GPU pre-computacionales). Así no se suponía que las GPU funcionaran, por lo que el rendimiento no fue excelente.
Otra cosa es que las GPU no están orientadas a la calidad cuando se trata de transformaciones de imágenes. Cuando juegas un juego a más de 40 fps, realmente no notarás ligeras tergiversaciones de píxeles. Incluso si quisieras, los gráficos del juego no eran lo suficientemente detallados para que la gente se preocupara. Hay varios trucos y trucos utilizados para acelerar el renderizado que pueden afectar ligeramente la calidad. Los videos también se reproducen a una velocidad de fotogramas bastante alta, por lo que es aceptable escalarlos dinámicamente en la reproducción, pero volver a codificar o renderizar debe producir resultados que sean perfectos en píxeles o al menos lo más cerca posible a un costo razonable. No puede lograr eso sin las características adecuadas implementadas directamente en la GPU.
Hoy en día, el uso de GPU para procesar videos es bastante común porque hemos requerido tecnología en su lugar. Por qué no es la opción predeterminada es más bien una pregunta para el editor del programa, no para nosotros, es su elección. Tal vez creen que sus clientes tienen hardware orientado a procesar videos en la CPU, por lo que cambiar a GPU afectará negativamente el rendimiento, pero eso es solo mi suposición. Otra posibilidad es que todavía traten el procesamiento de GPU como una característica experimental que aún no es lo suficientemente estable como para establecerlo como predeterminado. No quieres perder horas renderizando tu video solo para darte cuenta de que algo está mal debido al error de renderizado de la GPU. Si decide usarlo de todos modos, no puede culpar al editor de software: fue su decisión.