Linux: VDPAU y los avances en reproducción de videos

En el área gráfica de Linux se están realizando varios cambios importantes para mejorar el uso de hardware específico y para eliminar algunas trabas como es el manejo de memoria gráfica en foma estándard.

Respecto al hardware, las series 6 de NVIDIA GeForce incluyen una característica llamada PureVideo que se encarga del soporte de decodificación y presentación de videos a través del procesador gráfico (GPU).  Mientras que en Windows se utiliza PureVideo mediante DirectX Video Acceleration API (DxVA), en Linux se podía utilizar esta característica sólo en forma limitada.

NVIDIA viene a cambiar esta situación con el desarrollo de una API equivalente a DxVA para el mundo Unix llamada VDPAU : Video Decoding and Presentation API for Unix (API para decodificación y presentación para video).  Antes de explicar de que se trata, repasemos cuales son los sistemas actuales de aceleración de la reproducción de videos en Linux:

  • Sin aceleración : la CPU se encarga de realizar todos los cálculos de decodificación de video.  Posteriormente cada frame decodificado debe ser copiado a Video RAM aplicando otros cálculos adicionales para llegar al tamaño que se quiere desplegar, ya sea agregando o eliminando pixeles.  Mientras más grande es el video original o el area de despliegue, peor es el rendimiento del sistema completo.  Si la ventana del video es cubierta por otras ventanas, la CPU tiene que hacer los cálculos necesarios para copiar sólo los bloques visibles. Independiente de la velocidad del computador, es un método bastante lento.
  • X-Video (xv) : La CPU se encarga de realizar todos los cálculos de la decodificación del video, pero es la GPU quien se encarga de escalar y mostrar el video en pantalla, por lo tanto el tamaño del video es irrelevante para el rendimiento.  Originalmente se utilizaba la técnica del Chorma Key, es decir, se pinta un fondo azul y la GPU reemplaza todos esos píxeles por la imagen del vídeo, no es necesario hacer ningún cálculo relacionado con ventanas que tapan areas del video.  Cuando surgen los sistemas de despliegue basados en composición (Compiz y sus efectos 3D) se elimina el uso de Chroma Key y el video se renderiza como si fuera una textura en un polígono, aprovechando toda la capacidad de las GPU con aceleración 3D.
  • X-Video Motion Compensation (XvMC) :  La GPU se hace cargo de algunas tareas de la decodificación de video, especificamente dos importantes tareas de la decodificación de MPEG-2, el codec que se usa en los DVD’s y en sistemas de televisión digital.  El hardware de NVIDIA sólo soporta XvMC con su driver propietario hasta las series 7 de GeForce mientras que ATI lo soporta sólo en forma experimental.  VIA agrega una tercera tarea de decodificación y además soporta MPEG-4 (ASP) y H.264.  Intel lo soporta completamente en sus series 8xx/9xx y dice que está trabajando en el soporte de más codecs.

VDPAU : Video Decode and Presentation API for Unix

NVIDIA no siguió con el soporte de aceleración a través de XvMC y no es que abandone el barco, sino que se dedicaron a desarrollar un nuevo esquema de aceleración que oficialmente soporte más tareas de decodificación en la GPU y que además soporte una gran cantidad de codecs.

A partir de la versión 180.06 de su driver propietario, NVIDIA comenzó el soporte de VDPAU en la series 8 de GeForce y posteriores (las anteriores tienen XvMC).  Los codecs que pueden ser acelerados son MPEG-1, MPEG-2 (DVD), MPEG-4 (H.264), VC-1 (HD DVD/BlueRay) y WMV3/WMV9.

La mejora en el rendimiento de la reproducción de videos puede ser impresionante.   En pruebas de VDPAU realizadas con hardware barato (CPU: USD$20 + GPU: USD$30) se pueden apreciar mejoras del rendimiento en la decodificación de videos HD que van desde una relación 1:2 a casos extremos con una relación 1:9.

NVIDIA además ha ayudado a desarrollar los parches para que las aplicaciones de video en Linux puedan usar VDPAU, específicamente hay soporte en MythTV, FFmpeg, MPlayer, VLC y Xine a través de parches.

Intel por su parte estaba tratando de mejorar XvMC a través de una API funcionalmente equivalente a VDPAU pero llamada simplemente Video Acceleration API (VA-API), sin embargo no ha tenido un impulso tan grande como el que esta dando NVIDIA a su tecnología.  No sólo no hay mucho código disponible, sino que el único driver de Intel que soporta VA-API es para una familia de chips que fue adquirida a PowerVR, por lo tanto es diferente a todo lo existente para sus chips más conocidos.  Este hardware conocido como Poulsbo (GMA 500) se encuentra presente en dispositivos MID’s y netbooks, sus drivers tienen componentes privativos y han sido duramente criticados por su deficiente calidad.

Afortunadamente Intel ha declarado que está considerando a VDPAU para sus drivers de X.org, y si esto sucede, se espera que ATI también se una a esta iniciativa.

Links:
- NVIDIA Driver brings PureVideo features to Linux (phoronix.org)
- Intel considering VDPAU for X.org driver (phoronix.org)
- HD Video playback with a $20 CPU & $30 GPU on Linux (phoronix.org)

Compartir Compartir
Publicado por Franco Catrin el 8 de February 2009 en la categoría Hardware, Software con los tags , , , , , , , , . Tiene 52 comentarios.

52 Comentarios

Linux: VDPAU y los avances en reproducción de videos

Deja tu Comentario ↓

Ver Comentario... shulo dijo el 8-2-2009 a las 23:29 ...

wigtor_gl

DesaprobarAprobar4wigtor_gl dijo el 8-2-2009 a las 23:36:

2

¿existe alguna info acerca de cuando agregan esta funcion en las nvidia 6 y 7 ?

… o solo agregar soporte para las serie 8 en adelante será una tactica de nvidia para que sus usuarios compren nueva VGA

Cristián

DesaprobarAprobar18Cristián dijo el 8-2-2009 a las 23:38:

3

Excelente segundo artículo, Franco.
Tu aporte será muy bienvenido, de eso estoy seguro.
A ver si le haces una reseña a la Telecaster de Richie Kotzen corriendo Linux, jeje.

Eleazar

DesaprobarAprobar13Eleazar dijo el 8-2-2009 a las 23:41:

4

Todo sea en aras de la bendita unicidad, de nada sirve que una empresa de con la mejor solución si esta no es adoptada por todos, los desarrolladores de las aplicaciones libres que finalmente harian uso de estas tecnologías son siempre reacios a dar soporte a multiples tecnologías, son siempre partidarios a que se definan “interfaces” y que cada quien vea como diablos la implemente, al final la cosa solo queda en bonitos acrónimos que poco hacen además de sonar bien.

Así siempre han sido las cosas en el mundo del software libre, el exceso de diversidad de propuestas para una misma solución es siempre un arma de doble filo.

Eleazar

DesaprobarAprobar25Eleazar dijo el 8-2-2009 a las 23:44:

5

Por cierto estos artículos deberian ser etiquetados FW Hardcore :P

Leo

DesaprobarAprobar2Leo dijo el 8-2-2009 a las 23:45:

6

Uuuuuuuuuuuuuuuuuu
yo tengo puras ATI
:(

TurboMAC

DesaprobarAprobar5TurboMAC dijo el 8-2-2009 a las 23:49:

7

Notable!!!! Justo tengo una Nvidia serie 8, asi que me descargo el controlador y lo instalo pa ver que talca las diferencias.
Esto si que es tecnologia!!!

gustavo

DesaprobarAprobar1gustavo dijo el 8-2-2009 a las 23:53:

8

ojalá funcione bien, en windows al ver un video 1090p ocupa 1-5%cpu el MPC Homecinema.. ojalá sea igual

chronnoz

DesaprobarAprobar-1chronnoz dijo el 8-2-2009 a las 23:55:

9

y los que tenemos geforces 6 o 7 nos vamos a quedar solo con el antiguo?
ademas de aceleracion, vendra tambien con las mejoras en calidad de imagen del purevideo para windows?
espero que lleven a linux toda la tecnologia que tienen en windows, siempre para otros S.O’s llevan solo lo basico (por ej comparar el nvidia control panel de windows con el nvidia-settings de windows)

PD: el ffmpeg no es para convertir entre formatos de video?

pepe

DesaprobarAprobar6pepe dijo el 9-2-2009 a las 00:00:

10

buen articulo franco.
Esperemos que todos los desarrolladores de hardware, den un soporte “decente” para linux. de ser asi, habria mas libre competencia….

Fakeroot

DesaprobarAprobar4Fakeroot dijo el 9-2-2009 a las 00:04:

11

es genial que se mejore el desempeño de linux en el apartado grafico y ademas vemos como las empresas se interesan en participar aportando parches, eso si es espiritu, ahora falta que liberen el codigo de los drivers y estariamos bien jejeje

franco, que crees sobre el futuro de wayland como nuevo xserver, tendra el suficiente apoyo y desarrollo por la comunidad, ahora que aparecen GEM y Kernel mode setting, hay esperanza de eliminar al Xorg (yo siempre queriendo matarlo jejej)

y una ultima pregunta es sobre OpenGL 3 aporta lo suficiente a estas tecnologias para escritorios 3d o se quedo corto??

saludos y gracias

TurboMAC

DesaprobarAprobar7TurboMAC dijo el 9-2-2009 a las 00:25:

12

@Fakeroot: En la pagina de Nvidia dice solamente que se añadira soporte “Preliminar” a Open GL 3.0. Pero con el tiempo, supongo que sera a toda nalga. ES cosa de esperar no mas.

http://www.nvidia.com/object/linux_display_ia32_180.22.html

cristian

DesaprobarAprobar-2cristian dijo el 9-2-2009 a las 00:35:

13

Mplayer rocks.

Anónimo

DesaprobarAprobar4Anónimo dijo el 9-2-2009 a las 00:42:

14

Solo falta que liberen sus drivers y API como ATI, Nvidia tiene buen soporte, solo falta que permita que todos puedan sacarles provecho liberando su software porque vende hardware no software.

Lord-Nicon

DesaprobarAprobar3Lord-Nicon dijo el 9-2-2009 a las 00:51:

15

Que buena, pero y para ATI se sabe algo?

Gon

DesaprobarAprobar0Gon dijo el 9-2-2009 a las 01:36:

16

Franco, se te hecha de menos en powers :B

kotelo

DesaprobarAprobar-2kotelo dijo el 9-2-2009 a las 01:45:

17

catrin en FW!

los equis de

y sip, teni como botao powers xD

DeltaLinuXer

DesaprobarAprobar8DeltaLinuXer dijo el 9-2-2009 a las 01:55:

18

Wena Franco! Puro LinuxWayer :P Siga así no mas compadre!

bluesman

DesaprobarAprobar0bluesman dijo el 9-2-2009 a las 02:02:

19

Notable artículo!
Explicativo y entretenido.

Toshi

DesaprobarAprobar6Toshi dijo el 9-2-2009 a las 02:10:

20

linuxWayer no pega xDD, no queda tan genial como applewayer, fayerWater, Chantawater xDDD
podría ser “TorvaYer” xDD Linus Torvalds + Fayerwayer

Muy interesante el articulo, aprendí algo mas de GPU’s y Los malditos codecs con Wikiwayer :p

creo que seria bueno que las tres desarrolladoras se unieran, para hacer el sistema de presentación de video perfecto y así no pelean por codecs, solo por rendimiento!

Franco Ferrari

DesaprobarAprobar-6Franco Ferrari dijo el 9-2-2009 a las 02:24:

21

Tonce toi dao con mi 9800GT jojo

Luis

DesaprobarAprobar0Luis dijo el 9-2-2009 a las 02:27:

22

Gracias Franco por la información ….

Interesante articulo, grande NVIDIA.

Andres Bravo

DesaprobarAprobar4Andres Bravo dijo el 9-2-2009 a las 02:29:

23

Llendome un poco por las ramas:
En general el desarrollo de los Drivers en linux esta llegando a un buen ritmo generando drivers cada vez más estables por parte de ati, intel, nvidia y via, ultimamente esto se está notando mucho en el desempeño y el buen funcionamiento de tarjetas de todas las marcas y puede comprobarse facilmente viendo correr fluidamente juegos y escritorios 3D en linux con un mínimo de 32MB de Video.

Creo que el proximo nivel en un mediano plazo/futuro próximo es integrar estos drivers a las distribuciones o hacer su configuacion una tarea sencilla para un usuario final comun y corriente.
No veo a OpenGl 3 ni VDPAU en el horizonte próximo como estandar en el resto de los drivers, todabía falta un montón de debate, adaptacion de drivers, modificaciones de kernel, y consecuentes dolores de cabeza que esto va a casusar en las actuales aplicaciones 3D (Xgl, Aiglx, Compiz, Kwin y juegos).

Buen artículo, pero la verdad me costó su rato entender hacia adonde apuntaba y a que cosa quería llegar (falto una pequeña alusion a XvBA).

Uranio23

DesaprobarAprobar-1Uranio23 dijo el 9-2-2009 a las 02:43:

24

Worales pues buen articulo, algo confuso para el que no sepa que pex, pero bueno …

Por otra parte me parece exelente que nvidia este decidida a dar soporte de drivers mas avanzados o completos a plataformas como GNU/Linux, esto me hace querer tener una lap con grafica nvidia, tengo ati integraday no rulea taaan chido el driver y la actualizacion que hay hasta (con envy) hasta me dejo los videos parpadeantes si no los ponia a fullscreen.

Bueno
Bye

Andres Bravo

DesaprobarAprobar1Andres Bravo dijo el 9-2-2009 a las 02:49:

25

Luego de un paseo por phoronix he quedado bastante impresionado al ver que OpenGl 3.0 ya se está empezando a implementar en los drivers de ATI, aunque probablemente debe ser bastante experimental.

“Is improved Composite support during video playback, Hybrid CrossFire support, and a number of fixes. Oh, and there’s also OpenGL 3.0 support!”

Linux: VDPAU y los avances en reproducción de videos

DesaprobarAprobar1Linux: VDPAU y los avances en reproducción de videos dijo el 9-2-2009 a las 05:19:

26

[...] Linux: VDPAU y los avances en reproducción de videoswww.fayerwayer.com/2009/02/vdpau-y-los-avances-en-reproducci… por NeoRazorX hace pocos segundos [...]

Ver Comentario... Guido dijo el 9-2-2009 a las 07:34 ...

Guido

DesaprobarAprobar-4Guido dijo el 9-2-2009 a las 07:34:

28

me falto el :P en la primera linea :)

Mikko

DesaprobarAprobar10Mikko dijo el 9-2-2009 a las 08:47:

29

off topic: Como se nota que los trolls que aburren con comentarios estupidos en otros articulos de este blog ni se aparacen cuando hablan de tecnologia de verdad y concreta.

Excelente articulo, queremos ver mas linux en FW.

Stein!

DesaprobarAprobar6Stein! dijo el 9-2-2009 a las 09:27:

30

@Guido:
Como los applewayer para el 0,02% ;)

Deja tu Comentario

XHTML: Puedes usar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Previsualizar comentario?