domingo, marzo 21, 2010

Como Reproducir Videos a 1080p en GNU/Linux

Con el estreno de The Pacific he querido volver a ver Band of Brothers de nuevo como aperitivo. Ahora que la tecnología lo permite, estoy viendo la serie en alta definición a 1080 líneas. El problema con el que me encontré es que ni en Windows ni en Ubuntu podía reproducir el vídeo sin que se produjesen cuellos de botella. Todo el trabajo lo hace el procesador y encima sólo utiliza un núcleo, puesto que la aplicación todavía no está programada para multihilo.

Me puse a leer un poco y encontré la solución de cómo poder reproducir los vídeos sin que se produjesen pérdidas de fotogramas o cuellos de botella. En una de las últimas versiones de los controladores de NVIDIA (ATI también lo tiene) la empresa ha desarrollado un driver para reproducir vídeo que en lugar de dejar el trabajo al procesador y únicamente dedicarse a representar la imagen, lo que hace es pasar el trabajo de descompresión a la gráfica y posteriormente representarlo. El driver en cuestión se llama VDPAU (si recuerdo bien sólo está disponible para los modelos 8xxx en adelante). Si usamos GNOME, lamentablemente no he encontrado forma de que Totem haga uso del driver, sin embargo MPLAYER si viene con esta capacidad. Si abrimos Mplayer y vamos a Preferencias > Video, vemos que está en la lista de los posibles drivers. Si os pasa como a mí, que siempre que cambiais algo en esa pestaña Mplayer se cuelga (esto lleva así ya 3 o 4 versiones y no lo solucionan) podemos abrir el fichero de configuración de Mplayer y configurar directamente ahí la salida de vídeo que queremos. Así hacemos:

  • $ gedit ~USUARIO/.mplayer/gui.conf
  • y modificamos el valor 'vo_driver'
  • vo_driver="xv" >> vo_driver="vdpau"

Lamentablemente esto no es lo único que hay que hacer. Ahora podremos abrir el vídeo y verlo con cierta continuidad, cosa que antes no podía, pero de vez en cuando, sobretodo cuando los planos son cortos y con mucho movimiento, se sigue produciendo pérdida de fotogramas. Además, el programa sigue usando un núcleo de entre todos los disponibles. Lo bueno es que el filtro que se encarga de descomprimir el vídeo (ffmpeg) se puede configurar, y lo bueno es que podemos hacer que esos cambios sean permanentes.

Los cuellos de botella se producen porque el ancho de banda que necesita un vídeo a 1080p es enorme aunque esté comprimido. Es una densidad de píxeles gigantesca, 1920x1080, que tiene que mover esa cantidad de píxeles 24 veces por segundo (en este caso) y encima que tiene que aplicar determinados algoritmos para poder reconstruir la imagen; algoritmos que no es que sean precisamente simples. Lo que vamos a hacer es decirle a ffmpeg es que cuando decodifique un vídeo no tenga en cuenta los macrobloques (porciones en las que se divide el fotograma cuando se comprime para calcular el movimiento, redundancia, etc.) y que decodifique el fotograma entero como si fuera un único macrobloque. Con esto en teoría vamos a perder algo de calidad, sobretodo cuando haya mucho movimiento en la escena, quizás la división entre macrobloques se haga patente y tengamos algo de bracketing. Según mi experiencia no he notado esa perdida de calidad en el movimiento o los colores. Para establecer estas opciones hacemos:

  • $ gedit ~USUARIO/.mplayer/config
  • y escribimos:
  • lavdopts=threads=4:skiploopfilter=nonkey

La opción threads lo que nos habilita es la capacidad de que el decodificador use más de un núcleo, en este caso 4. Así que la idea es ajustar el número a la cantidad de núcleos que tengamos. Por otro lado skiploopfilter es el encargado de controlar el deblocking del video. Tenemos varias opciones, pero las más interesantes son all, nonkey, nonref y default. La primera deshabilita el deblocking para todos los fotogramas; nonkey lo desahabilita para todos los fotogramas excepto los claves -aquellos que no se comprimen-; nonref hace el deblocking únicamente en los de referencia y no en los clave; default obviamente habilita el deblocking siempre en todos los fotogramas. Dependiendo del ordenador que tengáis y de los recursos os interesará establecer una u otra. Las ordeno ahora de mayor a menor consumo de recursos: default > nonref > nonkey > all. Aunque no lo he notado, creo que es más conveniente, si dudamos entre nonref y nonkey, establecer nonkey porque los fotogramas siguientes se construyen a partir del clave, así tendríamos menos problemas a la hora de reproducir los vídeos.

Con estas opciones pasé de esta gráfica de consumo de CPU:

Fijaros como se nota que empiezo a reproducir el vídeo en torno al 30. A esta:

Un gran cambio :D.

sábado, marzo 20, 2010

OPA Hostil

  • Pues lo siento mucho caballero, pero no vendemos.
  • Me da igual; le hago una OPA hostil.
  • ¿Y eso qué es? ¿Qué es lo de la OPA hostil?
  • Pues que o me vende o le meto dos hostias.

OPA entre talleres visto en el Podcast de Gomaespuma.

lunes, febrero 01, 2010

20 Años de Photoshop

Acabo de leer que Photoshop cumple 20 años. Sabía algo de los orígenes del programa, que fue creado por los hermanos Knoll (John y Thomas), y que primero empezó como un pasatiempo para aplicar los conocimientos de la carrera y que luego se convirtió en algo más serio. Leyendo acerca del tema, he visto este vídeo en el que entrevistan a John Knoll sobre los 20 años de Photoshop y se le pregunta un poco sobre el génesis y las motivaciones que tuvieron. Es muy interesante y dice algunas cosas que me sorprenden.

En origen el programa iba a ser únicamente una pequeña aplicación para cambiar las imágenes de un formato a otro (en aquel momento el tema de las imágenes en los ordenadores era complicado pues cada plataforma tenía su propio estándar, por ejemplo, una imagen de Mac no se podía ver en un PC.)

Contó con Apple casi desde el primer momento, cuando tenían la versión 0.9 hicieron una demo para la gente de Apple y quedaron interesados. De hecho, dice que le propusieron mejoras y modificaciones con vistas a que fuera incluído como el programa de pintado por defecto en los Mac en lugar de Paint.

A modo de anécdota dice que la versión 1.0 del programa era únicamente para Mac y constaba tan sólo de 7 ficheros, eso sí, ocupaba 16MB y el disco duro más grande que tenían que aquel momento era de 20.

También habla de cuando decidieron él y su hermano tratar de venderlo. En aquel momento Electronic Arts era una de las empresas productoras de videojuegos más potentes. Para pintar el fondo de sus juegos usaban evidentemente programas propios y decidieron hacerles una demo o bien para que comprasen su producto, o bien, para que lo distribuyesen. Después de la demostración, la gente de Electronic Arts dijo que no veía por qué la gente pudiendo pintar en papel, iba a querer pintar con el ordenador.

En un momento el tipo que hace la entrevista le pregunta si se imaginaba al crear Photoshop a finales de los 80 si influiría tanto el tema de las cámaras digitales y de los escáneres. Knoll dice que el primer escáner que vio fue en el '87 y que lo vio en Apple. Cuando lo probó escaneó una fotografía de él y su novia en unas vacaciones en Bora Bora. Esa imagen fue la que usó para todas las presentaciones a partir de ese momento y de hecho la imagen fue publicada en una revista que hablaba sobre el propio Photoshop. Algo parecido le pasó a mediados de los '90. Estaba contratado como Supervisor de Efectos Especiales en ILM y pudo probar uno de los primeros escáneres 3D. Knoll se escaneó la cabeza y luego la usó para las secuencias digitales de la Edición Especial de La Guerra de las Galaxias del ataque a la Estrella de la Muerta; como él mismo dice: "Básicamente era yo el que pilotaba todas las naves".

viernes, enero 15, 2010

Politi-Show

No sé si alguien recuerda ya un mitín que dio el PSOE, la verdad es que no recuerdo muy bien el motivo, pero que estaba como si fuera un programa televisivo. Aunque la lectura del evento en cuestión se puede hacer desde muchos puntos de vista, por ejemplo, propiamente desde el punto de vista de un programa televisivo, a mí me interesa más el punto de vista que ya trate de explicar cuando hablé del libro Amusing Ourselves to Death.

Por retomar rápidamente las ideas, en él Neil Postman se pregunta si la televisión (y de alguna forma, los medios de comunicación) son un medio adecuado para que se difundan determinados mensajes. Es decir, analiza la complejidad de los mensajes emitidos en relación a la capacidad (eficiente) de transmisión de esos mensajes por parte de la televisión y como ejemplo referente pone la política. Un ejemplo muy claro de esto, es que en un momento dado para comunicarse a distancia se usaban señales de humo, sin embargo es un tipo de comunicación muy limitada, ya que permite expresar ideas muy simples: "peligro", "sin novedad", "alerta", etc., ideas establecidas de antemano con un código que ambos interlocutores conocen. Sin embargo, las señales de humo difícilmente serán capaces de transmitir ideas filosóficas o geográficas, por ejemplo. El medio no lo permite. Termina concluyendo que de la misma forma que las señales de humo no son un buen medio para transmitir mensajes filosóficos, la televisión no es un buen medio para transmitir mensajes políticos. Debido a que tal y como está concebida, el mensajes político o por ampliarlo a lo que él dice las "news of the day" (los informativos), no ponen el suficiente contexto como para que una noticia pueda ser entendida en su totalidad.

Al principio del libro expone algunas anécdotas que se ven demostradas con lo que termina concluyendo. Yo me quedo con dos divertidas pero que reflejan perfectamente la idea que quiere dar. La primera es la que dice que, en su opinión, la imagen que define actualmente la imagen global de los Estados Unidos es la de una carta gigantesca de neón con una cabaretera sobre ella; ya no es una imagen tan simbólica como la Estatua de la Libertad, por ejemplo. Por otro lado, cuenta que Richard Nixon asegura que perdió unas elecciones porque la gente de maquillaje le saboteó y que el propio Nixon le dio un consejo a Edward Kennedy si quería optar a la Casa Blanca: "Pierda veinte kilos".

Así la televisión, por ser el medio que es y por ver en directo lo que capta la lente de la cámara, desfigura y desvirtua la realidad. Algo muy parecido ha pasado con el mitin en cuestión del PSOE. Como en otros aspectos de la vida (el cine o la publicidad por ejemplo) ya cada vez importa menos el contenido pero sí la forma. Lo del PSOE era de todo menos un mitín. Hay que fijarse en el Ministro Chaves para darse cuenta de que parece más un entrenador de fútbol que un Ministro. Además introduce cosas nuevas como entrevistas entre las bambalinas antes de saltar al escenario, al más puro estilo "Tu Sí Que Vales"; entradas apoteósicas en el recinto; presentadores, no uno, ni dos, sino tres y según me dijeron (y la fuente es buena aunque no me lo termino de creer) Sergio Martín Flecken era uno de ellos.

No sé cual sería el germen de todo esto, sólo se me ocurre que ningún mitin es divertido así que han tratado de amenizarlo al máximo. Si es así, es precisamente lo que concluye Neil Postman en el libro, que quizas de tanto ver la tele, de tanto entretenernos, nos vamos a entretener hasta morir.