Archivo

Posts Tagged ‘Software Libre’

El escritorio multimedia en Linux – Drivers de Video

20 mayo 2010 Los comentarios están cerrados

En los últimos años, el ecosistema Linux ha abarcado rápidamente equipos personales como PCs, netbook’s, smartphones, etc. Estas tecnologías abiertas han permitido a empresas como Canonical y Google ofrecer excelentes productos como Ubuntu 10.04 y Android respectivamente. Pero ¿Hasta donde ha llegado el escritorio Linux? ¿Ya es posible tener una experiencia multimedia completa? ¿Qué más falta por hacer?.

Durante algún tiempo Linux fue desarrollado principalmente pensando en grandes equipos de cómputo como servidores y supercomputadoras, además de pequeños sistemas embebidos como routers, electrodomésticos, etc. Y aunque hoy en día Linux domina todos estos mercados, existe un componente que no es necesario para ninguna de estas aplicaciones y que durante mucho tiempo no fue relevante para Linux: el entorno gráfico.

Cuando usas una computadora personal o un teléfono celular, la pantalla gráfica es uno de los componentes más importantes para obtener información de tu equipo. Las interfaces gráficas actuales son sumamente amigables, utilizando una serie de elementos como botones, menús, ventanas etc., así como la presencia de imágenes, audio, video y entornos 3D interactivos, han enriquecido enormemente la funcionalidad de estos sistemas.

Durante muchos años, el entorno gráfico y el sistema de audio han sido los puntos débiles de los sistemas Linux. Anteriormente era común ver a los usuarios correr despavoridos al ver que el sistema fallaba al iniciar el modo gráfico, el audio no se escuchaba, o su laptop se calentaba demasiado. Y aunque hoy en día estos problemas se han logrado resolver en su mayoría, aún se llegan a presentar.

Estos problemas están asociados con tres componentes: los drivers de video, el servidor X y el sistema de audio.

Drivers de video

Linux vs. drivers propietarios

La naturaleza abierta del kernel de Linux (GPL) – la cual lo ha impulsado enormemente –  solo permite que drivers de software libre sean integrados y distribuidos junto con éste. Esto significa que aquellos que son propietarios no pueden ser incluidos en las distribuciones de Linux y deben ser instalados y configurados por el usuario final. Afortunadamente, algunas distribuciones como Ubuntu ofrecen una forma fácil y sencilla de instalarlos.

Actualmente Nvidia, ATI (AMD), S3 (VIA) (e Intel en ocasiones) ofrecen drivers propietarios para Linux, mientras algunas de estas empresas ofrecen también drivers open-source, Nvidia y S3 únicamente proveen drivers propietarios. Finalmente estos drivers en ocasiones no pueden aprovechar los últimos avances que se dan en el kernel (como KMS) o en el servidor X, debido a su naturaleza propietaria.

Drivers propietarios

Debido a que muy pocos clientes usaban Linux en sistemas de escritorio, los fabricantes de tarjetas de video ofrecían un soporte muy pobre (o ninguno) de drivers para Linux, al mismo tiempo que no proveían información del hardware o de sus drivers que permitiera a los programadores arreglar o desarrollar drivers alternativos. En ocasiones usar el driver propietario era la única opción  y muy frecuentemente se encontraban en un estado muy pobre. Para los dueños de estas tarjetas de video usar Linux simplemente no era una opción.

Afortunadamente en los últimos años el soporte de drivers propietarios a mejorado considerablemente, aquellos provistos por Nvidia son considerablemente buenos, ofreciendo un gran soporte para lo último en tecnología de gráficos en Linux. El soporte de ATI ha ido mejorando lentamente, aunque aún falta un buen camino por recorrer. En general los drivers propietarios en Linux son casi tan buenos como los de otros sistemas operativos.

Drivers de código abierto.

El kernel de Linux no fué diseñado originalmente para trabajar con entornos gráficos avanzados, sin embargo ha ido evolucionando poco a poco en esta dirección, algunos de los eventos más importantes han sido:

  • Diciembre 2008, con la versión 2.6.28 comienza una lenta integración de componentes para ofrecer un mejor soporte de gráficos (KMS, GEM), los chips de video de Intel son los primeros en tomar ventaja de estas tecnologías.
  • Diciembre 2008, ATI comienza la liberación de documentación que permitirá el desarrollo de drivers open-source con aceleración 2D y 3D para sus tarjetas de video.
  • Septiembre 2009, en el kernel 2.6.31 se integra soporte inicial para algunos chips de video de ATI.
  • Diciembre 2009, kernel 2.6.32, se agrega soporte de aceleración 2D y 3D para todos los chips de ATI.
  • Febrero 2010, con el kernel 2.6.33 se integran drivers open-source con soporte 2D y 3D para tarjetas de video Nvidia desarrollados por el proyecto nouveau.

Hoy en día Intel y ATI son los mayores fabricantes de chips de video que ofrecen documentación sobre estos, permitiendo el rápido desarrollo de drivers open-source. Actualmente el kernel de Linux integra drivers para la mayoría de las tarjetas de video disponibles en el mercado, en su mayoría ofreciendo soporte de aceleración 2D y 3D.

Apesar de estos grandes avances, los drivers de código abierto aún no pueden competir con drivers propietarios en algunas áreas como aceleración 3D y aceleración de codecs de video. Aún carecen de soporte de APIs relativamente nuevos como OpenGL 3.0, 3.2 o 4.0. Pero tal vez la mayor limitación actual en drivers open-source, sea el alto consumo de energía que presentan algunos de estos, afectando principalmente equipos portátiles, en muchos casos por la falta de una administración de energía o la falta de aceleración de códecs de video. Se espera que la administración de energía de los chips de Intel y ATI mejore en las versiones 2.6.34 y 2.6.35 del kernel.

Gallium3D y el futuro de los drivers de video en Linux

Las tarjetas de video actuales ofrecen una gran cantidad de funcionalidades:

  • Aceleración 2D (EXA, Textured Xv)
  • Aceleración 3D (OpenGL)
  • Aceleración general (OpenCL)
  • Aceleración de códecs de video (XvMC, VDPAU, VA-API)
  • Administración de consumo de energía (ACPI,..)

Desarrollar un driver por cada chip de video que cubra todas estas necesidades/especificaciones es realmente un arduo trabajo, incluso los fabricantes de hardware mantienen un driver común para toda una familia de chips. Esta gran cantidad de trabajo también se ve reflejada en el  retraso de los drivers open-source. Sería muy bueno encontrar una forma de hacer más eficiente el trabajo para cada uno de los equipos que desarrollan drivers para el kernel.

Gallium3D es la mayor apuesta de la comunidad de software libre para lograr drivers open-source competitivos. Uno de sus principales objetivos es permitir que programadores de drivers compartan la mayor cantidad de software posible, reduciendo la necesitdad de programar una y otra vez la misma funcionalidad por cada driver. Pero ¿Cómo funciona Gallium3D? La arquitectura base se puede ver en el siguiente diagrama:

Básicamente se puede pensar en Gallium3D como una capa intermedia entre el API y el driver de video. Cada implementación de un API sobre Gallium3D es llamada state tracker, Los state trackers pueden ser APIs 3D como OpenGL o incluso Direct3D, pero también es posible tener otro tipo de API’s por ejemplo API’s de aceleración 2D como OpenVG o aceleración GPGPU como OpenCL. Una vez que el state tracker esta listo, todos los drivers desarrollados para Gallium3D (que cubran ciertos requisitos) pueden tomar ventaja de este. De esta forma se puede reducir el tiempo de programación para cada driver, acelerando el desarrollo de los mismos.

La versión 7.5 de Mesa3D (Julio 2009) fué la primera en incluir Gallium3D, en Mayo 2009 se incluyó el state tracker OpenVG, permitiendo aceleración de SVG y Flash. Actualmente programadores de drivers de Intel, ATI y nouveau están enfocando sus esfuerzos en Gallium3D. Se han hecho diversas propuestas para la creacion de state trackers en Gallium3d, incluyendo OpenGL 3.2 y Cairo (usado en gtk+).

Los drivers de video juegan un papel muy importante en equipos de computo personal, tanto en tareas comunes como navegar en Internet, editar textos o ver videos, así como en el uso de aplicaciones avanzadas para edición, animación, ingenieria, videojuegos, etc. Linux no podrá competir con otros sistemas operativos en este mercado sino cuenta con los drivers de video adecuados.

Puedes seguir los avances de Gallium3D y los drivers de video en Linux en los siguientes links:

GalliumStatus

Radeon Feature Matrix (drivers para chips ATI)

Nouveau Feature Matrix (drivers para chips Nvidia)

En la siguiente sección revisaré el Servidor X y el sistema de sonido en Linux.

VLC 1.1.0 más rápido que nunca

16 abril 2010 Los comentarios están cerrados

VLC es un reproductor multimedia de código abierto que se ha hecho muy popular por su capacidad para reproducir prácticamente cualquier archivo de video y estar disponible para Windows, Linux y Mac.
A pesar de todas sus cualidades, uno de sus puntos débiles es la falta de soporte de aceleración de video, es decir los videos son decodificados en el procesador, lo cual como ya hemos visto antes, puede ser un proceso costoso y lento (Videos HD en Linux?, Guía de Tarjetas Gráficas 2010).

Pero esto esta apunto de cambiar, en la próxima versión 1.1.0 vlc dará soporte a las APIs DXVA2 en Windows y VAAPI, VDPAU en Linux, lamentablemente los usuarios de Mac tendrán que esperar un poco más para obtener esta nueva caracterísitca.

Con el soporte de estas API’s vlc podrá tomar ventaja de la aceleración de la tarjeta de video para reproducir diferentes codecs de video, descargando la mayor parte del procesamiento en esta y dejando el procesador libre para otras tareas. Esto se traduce en una mayor calidad de imagen, una reproducción de video más suave, y en general menor consumo de energía de nuestras PCs.

Puedes probar la versión Pre (no estable) desde este sitio (solo windows) o revisar los repositorios testing de tu distribución de Linux favorita.

Actualización: 23 de Junio 2010:

Ya esta disponible vlc 1.1.0 para windows, linux y mac. bajalo aquí

Los riesgos de usar H.264 en YouTube y que puedes hacer al respecto

1 febrero 2010 Los comentarios están cerrados

(ver actualizaciones al final del texto)

Muchos de nosotros no estamos conscientes de toda la tecnología que hay detrás de Internet. Ni de como podemos utilizarla sin que nos cueste ni un solo centavo. Entre estas tenemos:

  • HTML, que le da estructura y contenido a la página
  • CSS, le da presentación a una página
  • JavaScript, permite que la página sea interactiva (menús, botones, animaciones, ..)
  • fuentes, las letras que se usan para los textos
  • Formatos de Imágenes (jpeg, png,…) que comprimen la información de una imagen para poder tener un uso eficiente de la red
  • … y muchas otras

Esto ha reducido las barreras para poder entrar y participar, creando un tablero de juego equilibrado en el que todos tienen las mismas oportunidades. Este es el corazón de Internet y la razón por la que ha crecido de una forma tan sorprendente. Millones de páginas y sitios en la red son creados todos los días gracias a esto.

¿Que hubiera pasado con el Internet si tuvieras que comprar un navegador de Internet? o ¿Pagar peaje por cada página que visitas? o ¿Pagar miles de dolares por la tecnología para crear un sitio o usar el correo electrónico?

Bueno algunas organizaciones ni siquiera existirían:

“La web es innegablemente mejor después de que Mozilla entro al mercado de navegadores, y habría sido imposible para nosotros hacer esto si hubieran existido pagos multi-millonarios en dolares por licencias para el manejo de HTML, CSS, JavaScript, o alguna otra.

Mike Shaver, vicepresidente de ingeniería de Mozilla

A pesar de todo, hoy en día existen tecnologías en Internet que no son del todo gratuitas o libres. Un gran ejemplo de esto es el reproductor de Flash. Hasta algunos años el reproductor de Flash era la única forma de poner vídeos en una página de Internet. Al mismo tiempo el video en Internet no se consideraba como algo relevante debido a su poca popularidad y el limitado acceso a la banda ancha. Con la llegada de sitios como YouTube o Vimeo su uso creció de forma sorprende, y ahora forma parte de la infraestructura de Internet. Con los años las críticas en contra de esta pieza de tecnología propietaria se han hecho más y más fuertes. Aunque el reproductor de flash es gratuito para los usuarios, los diseñadores de páginas deben pagar licencias, la tecnología impone muchas limitaciones en su uso, y muchos problemas técnicos no pueden ser resueltos; más que por la empresa que controla esta tecnología. Muchos problemas actuales de seguridad con hackers y virus se asocian al flash.

Finalmente hoy en día existe una alternativa de tecnología libre y gratuita que hace “casi” lo mismo: el HTML5. Y ha sido muy bien recibido, sitios como YouTube y Vimeo ya se encuentran en fase de pruebas para dar soporte a este nuevo estándar.

Pero esto no ha resuelto todos los problemas aún, junto con flash se “escondía” otro problema: los códecs de video. Estos codec’s son la tecnología que se usa para comprimir, descomprimir y transmitir el contenido de un video por la red. Y el HTML5 necesita un codec, de la misma forma que flash.

Ahora nos enfrentamos a un nuevo riesgo: Los sitios de YouTube y Vimeo han utilizado junto con flash el codec H.264 para almacenar y transmitir sus videos durante ya algún tiempo. Y cuando estos mismos sitios deciden iniciar pruebas con HTML5 deciden seguir usando el mismo codec H.264. Pero esto podría traer consecuencias a largo plazo.

Las patentes de la tecnología H.264, que expiran hasta el 2028, pertenecen a la compañía MPEG-LA, quien cobra licencias, no solo por el hardware o software para crear y reproducir el codec, sino también por transmitirlo o ponerlo en un sitio web. Los costos se elevan hasta $ 5 millones de dólares por distribuir archivos en este formato. Y las licencias cambian cada año, lo que significa que no se tiene una certidumbre sobre los costos a largo plazo de esta tecnología. Como muchas tecnologías propietarias de este tipo, comenzó siendo gratis y ahora se espera un nuevo modelo de cobro para el 2011 y no se tiene una certeza en como puede afectar a los usuarios finales.

Mas aún, el gran impacto que tiene hoy en día Internet en todo el mundo, la creciente popularidad y demanda de video en la web, junto con los efectos de red, que se sabe tienen este tipo de tecnologías. Nos dice que en un futuro cercano se establecerá un estándar queramos o no. De la misma forma que el DVD, el mp3 o el Blue-Ray se han establecido como estándares en otros ámbitos. Por lo tanto si YouTube y Vimeo siguen impulsando el uso de H.264, este podría establecerse como el nuevo estándar de video, creando un monopolio efectivo para formatos de video, donde la tecnología esta en manos de una sola compañía y cuyos costos de licenciamiento a largo plazo son impredecibles. Por si fuera poco esta misma tecnología es la misma que se usa en los discos Blue-Ray impulsando un monopolio en posiblemente todos los ámbitos dentro y fuera del Internet.

Y ¿Qué significa todo esto para nosotros los consumidores? Esto se traduce en mayores costos en los servicios de Internet, mayores costos en los equipos de hardware como son: cómputo, reproductores portátiles de video, telefonos celulares,… , menores opciones para los consumidores, pues al elevarse los costos solo las grandes corporaciones podrán comprar su entrada al mercado, los pequeños fabricantes, o sitios de Internet quedarán fuera. Muchas empresas pequeñas no podrán ajustarse a los cambios de licenciamiento y tendrán que cerrar.

¿Especulaciones? Puede ser, pero esto ya ha ocurrido antes: DVD, Blue-Ray, MP3, GIF,…

¿Cuál es la alternativa? Existen varios formatos y codecs de video que son tecnologías 100% libre y gratuita como son Dirac o Theora. Actualmente navegadores de Internet como: Firefox, Chrome y Opera ya soportan el códec Theora junto con HTML5 y debido a que la tecnología no tiene ningún costo o restricción puede ser integrada o incluida con cualquier producto sin tener que pagar ningún tipo de licencia. Ya que estas tecnologías son abiertas, cualquiera puede participar para corregirlas o mejorarlas. El establecer Theora o algún codec de tecnología libre como el estándar de Internet traería enormes beneficios para todos nosotros, de la misma forma que lo hacen hoy en día  HTML o  Javascript.

¿Qué puedo hacer para apoyar un estándar de video libre?

[Gracias a todos por participar, ya no es necesario votar, ver actualizaciones más adelante]

Puedes votar en http://productideas.appspot.com/#9/e=3d60a&t=theora para que YouTube soporte la tecnología de Theora en su sitio.

Puedes apoyar a la fundación Xiph para que continúe desarrollando la tecnología Theora

También puedes votar para la liberación de la tecnología On2 http://productideas.appspot.com/#9/e=3d60a&t=on2 recientemente adquirida por Google.

Oh votar por cualquier otra tecnología libre y gratuita para HTML5: http://productideas.appspot.com/#9/e=3d60a&t=html5

ACTUALIZACIÓN (17/04/10):

Gracias a la enorme participación y a la preocupación de los programadores y usuarios en general sobre este tema, Google a tomado algunas decisiones que pueden beneficiarnos a todos:

Google ha comenzado a financiar el desarrollo de Theorarm, un decodificador de Theora para procesadores ARM, esto también ha permitido poner este software bajo una licencia más permisiva BSD.

Se especula que Google podría anunciar pronto la liberación de los codecs VP8 bajo una licencia open-source.

ACTUALIZACIÓN (20/05/10):

Finalmente Google ha liberado bajo una  licencia BSD modificada los codecs VP8 junto con el contenedor WebM basado en la tecnlogía de Matroska (mkv) y que utilizará el codec vorbis para audio. Más información del proyecto del contenedor open-source WebM aquí

Parrot 2.0.0 es liberado

21 enero 2010 Los comentarios están cerrados

Ya antes había platicado un poco sobre Parrot. Parrot es una máquina virtual de software libre principalmente enfocada a lenguajes dinámicos, soporta una gran cantidad de lenguajes como: C, Forth, Java, PHP, Python, Perl, Scheme, y muchos otros (lista completa aquí).

La comunidad de Parrot VM anuncia hoy la liberación de la versión 2.0.0, con muchas nuevas mejoras y características.

Llega Firefox 3.6

21 enero 2010 Los comentarios están cerrados

Hoy fue liberada una nueva versión de uno de los navegadores de Internet más populares. Ya puedes comienzar a descargar Firefox 3.6 aquí. Esta nueva versión  viene con muchas nuevas mejoras y características:

Para usuarios:

  • 20% más rápido y con una interfaz más responsiva.
  • Videos HTML5 en pantalla completa.
  • El agregado Personas ahora es parte del navegador, (pero puedes instalarlo si usas una versión anterior).

  • Plugin-Check ya ha sido integrado en el navegador, ahora envía mensajes de advertencia, antes tenías que revisar la página Plugin-Check

Diseñadores Web:

Para más información sobre las nuevas caracteristicas revisa el anuncio oficial.

Categorías:Aplicaciones Etiquetas: , ,

Editando PDFs con GIMP

17 enero 2010 Los comentarios están cerrados

Gimp es una poderosa herramienta de diseño gráfico, funciona en Linux, Windows y Mac, es gratuita y software libre. Recientemente nuestros amigos de la revista Linux Format liberaron 90 MB de manuales ilustrados sobre como lograr efectos muy profesionales y sorprendentes en tus PDFs usando Gimp. No esperes mas y comienza a descargarlos ya.

Categorías:Aplicaciones, Tutoriales Etiquetas: , , ,

Videos HD en Linux?

31 diciembre 2009 Los comentarios están cerrados

Ver videos de alta definición en la PC ya es hoy en día una tarea muy común, ya sea en Blue-Ray o en algún sitio en la red. Desafortunadamente la aceleración de video en Linux sigue siendo un reto. La mayoría de los fabricantes de hardware no ofrecen el soporte que nos gustaría ver.

La aceleración de codecs de video como H.264, VC-1 o MPEG2 en resoluciones de alta definición como 720p o 1080p, puede ser una tarea ardua para los microprocesadores actuales. En general sin una tarjeta gráfica que ofrezca este tipo de aceleración, el procesador (o alguno de sus núcleos) puede llegar al 100% de uso, gastando valiosos recursos de cómputo y energía eléctrica. Y si no se cuenta con un procesador lo suficientemente poderoso, seguramente observaremos frecuentes saltos en el audio y video.

La mejor opción es contar con una tarjeta gráfica que soporte este tipo de aceleración, reduciendo el consumo de energía (alargando la batería en equipos móviles) y permitiendo realizar otras tareas de forma simultanea. También cabe mencionar que este tipo de aceleración es “independiente” de la aceleración 2D y 3D que soporte el driver y la tarjeta.

Una vez dicho esto, revisemos el soporte que ofrecen los drivers actuales por fabricante, en el caso de que soporte aceleración, se indicará el API utilizada y el hardware requerido:

Fabricante Driver Aceleración Completa API Hardware Requerido
ATI catalyst (propietario) SI VA-API > UVD 2

ati (open-source) NO


Nvidia nvidia (propietario) SI VDPAU, VA-API > PureVideo 2

noveau (open-source) NO

Intel poulson (propietario) SI VA-API Solo GMA 500

intel (open-source) NO


Broadcom crystalhd (open-source?) SI libcrystalhd Solo BCM970012

Recientemente Broadcom lanzó al mercado su acelerador BCM970012, que ya cuenta con soporte del reproductor multimedia XBMC y cuenta con un driver open-source. Este ultimo aún no ha sido integrado al código del kernel de Linux y cuenta con un firmware de 2.7MB. Una vez integrado podría significar un gran avance en la aceleración de video en Linux, siendo el único driver Open-Source en soportar esta tecnología.

Por otro lado el driver propietario de ATI (catalyst) tiene serios problemas para seguirle el ritmo de desarrollo de la plataforma Linux + Xorg, y frecuentemente no ofrece soporte para las últimas versiones de éstos.

Al mismo tiempo el soporte  que ofrece el driver poulson de Intel, fuera de las distribuciones Moblin o Ubuntu, es muy pobre.

Cuando se refiere a reproductores multimedia XBMC, parece ser una muy buena opción ofreciendo soporte para VDPAU y Broadcom Crystal HD, en cualquier caso es recomendable revisar: VA-API y VDPAU para revisar los reproductores multimedia que soportan estas APIs.