Información referente a todas las GPU del mercado, tanto integradas como dedicadas.
Uno de los dilemas más divergentes y poco especificadas las diferencias en la edición de vídeo es sobre la codificación de vídeo por CPU vs GPU. Sabemos que las GPU pueden hacerlo mucho más rápido que la CPU por tener mayor capacidad de cómputo en coma flotante, pero… ¿los resultados son los mismos o mejores?
En las comparativas que utilizaremos aclararemos ahora como se han hecho y lo que se hará después. En los dos códec más populares en la codificación de vídeo actuales (h264 y h265 HEVC), utilizaremos un RyZen 2700X @ 4.165GHz en CCX0 y en CCX1 4.115GHz con memorias a 3433MHz CL14, totalmente estable bajo instrucciones vectoriales avanzadas (100% estable).
A su vez, estas pruebas se repetirán en otra plataforma que hemos adquirido para Disruptive Kernel, actualizando este artículo posteriormente e incluyéndolas en la entrada actual, plataforma la cual no desvelaremos actualmente pero está basada en la plataforma HEDT (alto rendimiento) de Intel bajo el chipset X299 (Ahora seremos #DisruptiveHintel y no #DisruptiveAmede).
¿Porqué decimos esto?, es importante recalcar que el tipo de instrucciones avanzadas vectoriales (AVX o AVX2 e incluso actualmente AVX512F) puede influir en la velocidad y codificación de vídeo de manera significativa, los cuales los RyZen de segunda generación o inferior salen perjudicados por la distribución y tamaño de sus unidades vectoriales, los cuales te explicamos en este artículo donde analizamos la arquitectura Zen vs Zen 2.
– Un poco de historia
– Codec H264 y su década de oro
El codec H264 básicamente ha sido un codec estándar en la última década por su buen ratio de compresión/calidad, ha inundado miles y miles de vídeos que se mueven por la red con un gran resultado.
Es un codec que no hace un uso intensivo de instrucciones vectoriales avanzadas y que funciona muy bien al trabajar con la GPU, al no usar estas extensiones en profundidad también se le da muy bien a los RyZen basados en arquitecturas inferiores a Zen 2, con un buen resultado de tiempo lineal respecto al conteo de núcleos de la CPU/IPC/Frecuencia como consecuencia.
Tiene soporte prácticamente en todos los dispositivos medianamente modernos del mercado por todo ello, lo cual apostar por él será un éxito si el tamaño del archivo no es relevante para tu conexión o dispositivo a usar.
– Codec H265 HEVC (High Efficiency Video Coding), presente y futuro
H265 o HEVC es un codec que viene para quedarse. Su diseño nace de la época en la que la banda ancha no estaba tan expandida como ahora, la necesidad de conseguir la misma calidad con un bitrate menor (tamaño final de archivo menor si no hablamos de una transmisión), un codec que al final se imponía a gritos para los medios digitales que hacen uso del streaming, pero que no pudo expandirse rápido por la nula retrocompatibilidad de H264 y la lenta adopción de los dispositivos del mismo.
Actualmente es el hoy y el mañana, en características en su codificación se define como un codec que en CPU si hace uso medio de instrucciones vectoriales avanzadas de 256 bits, e incluso hay implementación en codificadores por parte de Intel que hacen uso de unidades de 512 bits, beneficiando enormemente a sus procesadores que son los únicos que disponen actualmente de este conjunto de instrucciones (en la gama HEDT y servidor, que no doméstica aún).
Su adopción en dispositivos ya es bastante buena, las GPU modernas también admiten su codificación y de-codificación por hardware, solo queda que el mundo lo utilice mayormente.
– Las pruebas
– Resultados obtenidos en Zen+ y Vega 64 con codificador AMD VCE
– Tamaños de archivo resultante
Como codificador hemos utilizado Handbrake, del cual hicimos una review… con la misma configuración en todas las codificaciones realizadas pero cambiando el tipo de codec y su aceleración mediante hardware, todas las codificaciones realizadas con el mismo vídeo. El resultado de los tamaños de vídeo es el siguiente:

Recordad que para ver los resultados en su tamaño real, podéis hacer click en el botón derecho de vuestro ratón y seleccionar (Abrir imagen en una nueva pestaña), o simplemente confiar en el resumen que os haré a continuación.
- Codificación en H264 CPU vs GPU: 3,42x de archivo menor a favor de la CPU, siendo este de 1,75GB vs 6GB.
- Codificación en H265 CPU vs GPU: 4,22X de archivo menor a favor de la CPU, siendo este de 1,28GB vs 5,41GB.
Creo que en este apartado la diferencia de tamaño entre archivos es tremenda, que si buscamos un ratio de compresión alto y es nuestra principal “baza”, la prueba de codificación de vídeo por CPU vs GPU nos muestra que la CPU no tiene rival en los mismos parámetros de configuración.
– Tiempo de codificación
– Calidad
Hemos parado las cuatro variantes codificadas en el mismo minuto y hemos hecho cuatro capturas del mismo. Se subirán sin compresión (tipo de archivo PNG) para que juzguéis las calidades vosotros mismos. En cada fotograma hay una muy pequeña variable, y es que es complicado cuadrar exactamente el mismo momento, pero se puede diferenciar por varios patrones las diferencias de calidad, las cuales no vamos a dar nuestra opinión, simplemente os pedimos que juzguéis vosotros mismos.
Os recuerdo que para abrir la imagen a pantalla completa, debéis clickar al botón derecho y “Abrir imagen en nueva pestaña” o en su defecto, si es un teléfono desde donde nos ves, quedarte clickando encima de la imagen con la pantalla y esperar a que nos salga la opción de abrirla en nueva pestaña. (Pronto lo corregiremos, para que al hacer click, se abra simplemente en una nueva pestaña sin hacer este procedimiento.)
Hasta aquí el artículo de codificación de vídeo por CPU vs GPU, recordad que actualizaremos esta entrada cuando tengamos en marcha la nueva plataforma, para ver como se comporta en tiempos y resultados la CPU con las instrucciones avanzadas vectoriales al completo.
Recordad también que los enlaces son en color verde, y que os llevan a lugares donde se explica bien que estamos hablando, para la gente menos preparada.
¡Gracias por vuestro tiempo!