Sobre HD, Full HD y Calidad de Imagen

ENTENDIENDO

Sobre HD, Full HD y «verdadera» calidad de Imagen

Muchas veces oímos publicidades de televisores que hacen gala de ser FullHD, entregar una máxima calidad de imagen y demás. Pero grande es la sorpresa cuando, tras la compra, muchos descubren que la calidad de imagen es incluso peor de lo que tenían en sus viejos televisores, entonces ¿que significa el maravilloso FullHD?, ¿en que fijarse a la hora de comprar un Televisor, Monitor o cualquier tipo de móvil y gadget a la hora de esperar calidad de imagen?, bueno, entendamos un poco mas del tema.

Pixeles

Descripción corta: un puntito de color en la pantalla. En realidad se define como la menor unidad homogenea de color de una imagen digital, la cantidad de pixeles nos indica cuantos de esos puntos hay en una imagen, muchas veces esto sale como 1074×768 es decir 1074 puntos de ancho por 768 puntos de alto, un total de 824832 puntitos de color, lo cual es bastante bueno, pero en cuanto a video, muchas veces se usa un solo valor, por ejemplo 360p que es la «calidad» los videos estándar de youtube, aunque también los puedes aumentar a 480p o 720p, en este caso ese valor representa la cantidad de puntitos que hay de arriba a abajo en una imagen, es decir la cantidad de lineas horizontales de una imagen, de esta forma se puede comparar mejor entre uno y otro. En el caso que mencionábamos de youtube veras que la imagen mejora conforme mas cantidad de «p» hayan, eso indica una mayor concentración y densidad de pixeles, con lo cual las imágenes son mas nítidas, los bordes de lo que veamos serán mas definidos y se tendrá una «buena imagen». En cuanto a la «p», en este contexto, significa «progresivo», quiere decir que la imagen se dibuja una a una linea consecutivamente, como contra parte existe la «i» (por ejemplo: 1080i)  significa «entrelazado» donde la imagen se dibuja en dos partes, primero todas las lineas horizontales pares y luego las impares.

¿y el HD?

Básicamente es un «estándar» que se definió en 720p, la imagen en total tiene un tamaño por lo general de 1360×720 pixeles. De esta manera los nuevos televisores o son HD (720) o FullHD (1080), así todos se preparan para trabajar imágenes en esos tamaños y no en 1280×800, 1074×768, 1440×900, etc. intentando abarcar todas las resoluciones al mismo tiempo y creando un caos en poco tiempo, aunque esto ultimo igual termina ocurriendo. Como comparación los televisores comunes tenían una resolución de 576p. Bien, cuando tu tomas un video de 360p de youtube o una foto o imagen pequeña, digamos 640×480 y la amplias por tu pantalla (1074×768, 1280×800, 1366×720, etc.) veras que queda horrible, los 360p o 640×480 se han expandido por un espacio mucho mayor y todo se ha distorsionado. De esto podemos concluir que si tienes una pantalla con alta resolución, la imagen debe ser de una alta resolución también, no esperes una gran definición en un televisor Full HD (1080p) si la imagen que recibes es la convencional de 576p o menos.

Y a todo esto hay que sumar un detalle muy importante, lo que mencionábamos de «p» e «i», a efectos prácticos, la «p» que se añade, quiere decir que la imagen se transmite a 60 cuadros por segundo y tiene 1080 lineas horizontales reales, en cambio la «i» son 60 cuadros entrelazados por segundo, «simulando» 1080p reales, ya que hace una combinación tan rápida que engaña a nuestros ojos, a lo mas la imagen se verá algo mas parpadeante en comparación. ¿Es tan malo el «i»?, pues no tanto, en realidad la calidad de imagen dependerá más de otros factores que de si es «p» o «i» (mas si se habla de 1080), como veremos mas adelante.

¿Y las Pulgadas?

También son importantes, todos esos pixeles rellenan un espacio físico, la cantidad de pulgadas dividida en cantidad pixeles da una cierta densidad, 720p en un monitor 13» tiene una densidad mucho mayor que 720p en un televisor de 42», de hecho en 37» ya puedes notar que el HD se va quedando corto en calidad de imagen, y es que los 720p están demasiado expandidos en ese espacio (y en un televisor de 42 pulgadas ni hablar), por ello, un Full HD en televisores de esos tamaños viene bastante bien, son 2.073.600 pixeles que rellenan esas pantallas, lo cual es bueno, pero tiene un gran PERO, aun es difícil encontrar imágenes en esa calidad (de hecho un Blueray y otros pocos formatos ofrecen imagenes FullHD), habrá que esperar para que ese nivel de calidad comience a masificarse y logre sacar partido a las pantallas FullHD, al menos no en todas partes del mundo se tiene acceso a la «mas alta definición» y eso trae como consecuencia que un video común, muchas veces de unos 480p, se vea feo en una pantalla HD y peor en una Full HD.

Otros Factores en la Calidad de Imagen

La tecnologia de la pantalla: Una de las primeras «pantallas planas» en salir al mercado fueron los Televisores Plasma, luego y actualmente los LCD, y lo siguiente probablemente será la tecnología OLED y/o AMOLED. Básicamente su composición es distinta, Plasma = Gas, LCD = Cristales Liquidos, OLED = Partículas orgánicas. Estas composiciones inciden directamente en la viveza de los colores, el contraste que puede lograr la imagen y hasta la vida útil del producto, esto ultimo terminó por sacar del mercado a los Plasmas, de vida mas corta en comparación con el LCD. En todo caso es un punto muy importante, muchas veces notarás grandes diferencias entre una pantalla y otra, aunque sean de la «misma resolución», debido a la forma de haber empleado las tecnologías los diversos fabricante.

Contraste: Se puede decir que es la máxima diferencia que hay entre un color blanco y un color negro, más contraste son colores más diferenciados, una imagen más nítida, contornos más definidos y se nota una imagen mas «viva» en comparación con una de bajo contraste. Normalmente se definen en rangos de 30000:1, 60000:1, 100000:1, etc.

Dos pantallas con la misma resolución pueden verse totalmente distintas por el factor contraste, es algo a tener muy en cuenta.

La iluminacion: En general no hay mucho problema con este punto, pero quizás hayas oído hablar de la tecnología LED, no es un nuevo tipo de pantalla, sino que la iluminación (la luz) se produce con esta tecnología, mucho mas ecológica y con menor consumo de energía que las anteriores luces. De todas maneras siempre se agradece una buena iluminación.

Reflejo y Antirreflejo: Hay pantallas que parecen espejo, en tanto otras se ven opacas y sin vida cuando están apagadas, aunque los televisores son, en general, antirreflejo, también es un punto a tener en cuenta, las pantallas «reflectivas» poseen un grado de definición algo mas «vistoso», ideal para videos, películas y juegos, pero en el día es muchas veces imposible poder apreciar algo, en tanto las pantallas anti-reflejo son mas precisas en lo que respecta al color y mas «definidas», al punto de «pixelarse», de todas maneras los televisores y la mayoría de las pantallas han intentado solventar las deficiencias de cada una de ellas, minimizando las desventajas en especial de las anti-reflejo.

Angulo de visión: Es otro aspecto, también va en función de la tecnología y el tipo de pantalla, es algo en que fijarse a la hora de comprar un monitor o cualquier tipo de pantalla, en especial de un televisor.

Velocidad de refresco: muchas veces descrita con Mhz, otro indicador es la velocidad de respuesta en milisegundos (ms), en general, todas están dentro del rango «mas que aceptable», de 60 Mhz o mas y 3ms o menos. Lo importante es que de una gran cantidad de imágenes por segundo, pero hay que recordar que los seres humanos solo percibimos una cierta cantidad de ellas.

Bueno esto es un poco sobre las pantallas, hemos hablado bastante de Televisores, pero aplica a los monitores, a las pantallas de los notebooks, de los móviles y cuanto aparato haya hoy en día. Espero que les sirva.

PD: Pronto volveré con mas temas Open Source, este es uno que tenía reservado …falta de tiempo.

¿Que es Linaro?

ENTENDIENDO

Es una iniciativa en conjunto de varias empresas para crear una base estandar de Linux que pueda funcionar en Tablets, Netbooks, Moviles, Television y otros aparatos. Esta iniciativa es muy importante ya que muchas veces ocurría que, por ejemplo, un desarrollousaba un núcleo Linux, luego debia incorporar varias herramientas especializadas para ser compatibles con dispositivos que van mas alla de PC y Notebooks, pero después se encontraban con que otro proyecto habia hecho algo similar, pero distinto, habiendo ambos proyectos duplicado esfuerzos para lograr lo mismo, en cambio ahora una sola entidad se encargará de coordinar el desarrollo de esas herramientas especiales, esa entidad es Linaro.

Esto es igualmente positivo para los desarrolladores de hardware, ya que ahora deberán preocuparse por ser compatibles con la base desarrollada por Linaro, y no con cada proyecto como MeeGo, Android, Ubuntu y otros de forma independiente, nuevamente se ahorra esfuerzo. Y por otro lado quien desee hacer una distro para tablets u otro dispositivo basado en ARM, ahora lo tendrá mas fácil, ya que no necesitará escribir mucho código, incluir drivers especiales o hacer cosas demasiado complejas, el conjunto de colaboradores de Linaro proporcionara la base lista para ser compatible con esos dispositivos.

Por si todas estas ventajas no fuesen suficientes, quienes integran Linaro son justamente empresas del rubro móvil, como ARM, Freescale, Texas Instruments, Samsung, ST-Ericsson y otros colaboradores como IBM y Canonical, todo esto con el apoyo de la Linux Fundation. A propósito de esto hay tres tipos de integrantes en este proyecto:

Núcleo: Los principales gestores de la iniciativa, quienes aportan con capital e ingenieria.

Club: Grupo de trabajo de Linaro

Comunidad de Miembros de Linaro: Donde se pueden incluir organizaciones o colaboradores individuales, cualquiera puede participar con un simple acuerdo de contribución.

Linaro trabajara a nivel de Kernel Linux y en contacto directo con el hardware, no creará una distro, sino que formará parte de ellas en el futuro, tampoco desarrollarán simplemente una aplicación, sino que el código creado se distribuirá incluso dentro del mismo Kernel Linux. Estará en upstream, es decir seguirá la corriente de desarrollo de Linux y las diferentes distros y estará en sincronía con ellos para ser integrado de la forma mas natural con ellos, incluso se anticipa que su desarrollo será cada seis meses. Por ultimo destacar que es una organización sin ánimo de lucro, aunque obviamente traerá beneficios indirectos a los involucrados.

Básicamente Linaro aplica la esencia del desarrollo OpenSource, donde hay varios intereses  en común y se aplica la cooperación para solventar una necesidad, en este caso empresas proveedoras de hardware, vendedoras de dispositivos y desarrolladores de software se unen para ofrecer una solución integral que seria muy difícil de conseguir si cada uno actúa por su cuenta y finalmente se beneficia el usuario al encontrarse con un producto realmente notable y óptimo, ya que cada empresa aporto su especialidad, lo que mejor sabe hacer, en un mismo proyecto, si todo se hace bien la suma final de un 2+2 resulta en 5, gracias al valor añadido de un buen hacer.

En fin, es una iniciativa muy interesante que pretende sentar un estándar en un ambiente tan diversificado como son la variedad de sistemas Linux, ahorrar esfuerzo, trabajo y costo, y generar mejores productos finales para nosotros los usuarios. Esperamos que tengan el mejor de los éxitos y que hagan el mejor trabajo posible, el primer lanzamiento esta programado para Noviembre de 2010, estaremos atentos a nuevas noticias sobre ellos.

Pagina del proyecto: http://www.linaro.org/

Sistema Servidor-Cliente

ENTENDIENDO

Este es uno de los «sistemas» fundamentales sobre los que se sustenta la computación moderna y que pese al mucho tiempo que tiene en uso, va creciendo día a día, por lo que es necesario conocerlo para comprender muchas cosas que iremos analizando mas adelante.

Si bien muchas veces se les llama «Servidor» a las maquinas; grandes y robustas computadoras, en este caso nos referiremos a la estructura de trabajo basado en este sistema, a la parte software, muchas veces llamada «Arquitectura» Cliente-Servidor.

Esta imagen se me viene a la cabeza, pero no hablaremos de ellos, solo de software.

Definición

La definición es bien sencilla: «un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta», por lo que es mejor dar un ejemplo.

Cuando usas el navegador web, básicamente estas usando un Cliente, el cual realiza «peticiones» a un Servidor Web, este Servidor Web es un Software capacitado para recibir estas peticiones y en consecuencia ir enviando la información que tu vas requiriendo con cada click que hagas en la pagina. Esa «información», que puede ser «tu_foto.jpg», está almacenada en un computador, digamos en «/home/mi-server/imagenes/tu_foto.jpg», sin embargo un programa hace de mediador, recibiendo ordenes y enviando las respuestas, el programa Apache, por ejemplo, hace esto y es uno de los mejores y mas usados Servidores web. Finalmente las maquinas que se prestan para ese propósito se llaman Servidores Web, pero en realidad constan de un Sistema Operativo, Servidor web en si, bases de datos, programas varios, etc.

También hay servidores de correo, que reciben correos, los almacenan y son capaces de enviar correos, si usas Outlook, Evolution o Thunderbird, estas usando un cliente de correo, que se alimenta de un Servidor de correo, el cual recibe los mensajes y luego te los hace llegar. Acerca de este punto es imposible dejar de hablar de los protocolos, por ejemplo POP3 y SMTP de los correos.

¿Que es un protocolo?

Básicamente, un estándar o un conjunto de reglas para la comunicación entre dos puntos, es como un idioma inventado para poder comunicarse de forma clara y entendible. Por ejemplo el Protocolo utilizado para Internet es TCP/IP, de esta manera distintos computadores de todo el mundo, incluso con distintos Sistemas Operativos pueden conectarse a Internet. HTTP es otro, seguramente lo ves en la barra de direcciones (http://…). Los de correo, como mencionábamos, son POP y SMTP, el primero contacta del Servidor a nuestro programa de correo y el segundo desde nuestro programa de correo a cualquier Servidor por ahi, donde esté nuestro destinatario, actualmente hay uno incluso mejor que POP llamado IMAP.

Servidores distribuidos y otras artes

Volviendo al Servidor, muchas veces hay servicios que se entregan a muchísimos clientes o que necesitan estar disponibles siempre, en estos casos se usan Servidores distribuidos, donde varias maquinas se encargan de proveer un Servicio, si una maquina cae, el servicio se mantiene en pie, así se pueden añadir maquinas o retirarlas para reparación y el servicio seguirá funcionando sin «caerse». También se pueden ejecutar servidores virtuales, sustentados por varias maquinas o varias maquinas virtuales sobre una sola maquina real, etc. Este tipo de «magia» la hace por ejemplo Amazon con su servicio S3.

Redes P2P

Es un sistema similar, solo que aquí cada individuo hace de Cliente y a la vez Servidor, por ejemplo eMule usa este sistema, y si bien puedes descargar cosas a otros, al mismo tiempo otros te descargan cosas (de la carpeta «incoming») puedes ver eso en «descargas y subidas», las redes de torrents también son del tipo P2P. En este sistema mientras mas gente use los mismos archivos, mas rápidas son las descargas, en tanto que en el servidor mientras mas gente use el archivo (por ejemplo «peliculaenestreno.rmvb» en megaupload) mas lentas son las descargas, sin embargo los Servidores tienen otras cualidades, tantas y tan buenas como para seguir siendo referentes en el mundo de la informática.

Finalmente

En general esta arquitectura Servidor-Cliente es muy usada y esta distribuida ampliamente, lo usan los sistemas de gestión de las empresas que centralizan los datos, las paginas, los servicios y programas web, clientes de correo, de mensajería instantánea o chat, y casi todo lo que tiene que ver con redes e Internet, e incluso dentro de un computador, Linux por ejemplo, usa servidores internos de gráficos y sonido, aquí los programas son los clientes, mientras que estos servidores muestran las interfaces gráficas de los programas o reproducen los sonidos respectivamente.

Ultimas Aclaraciones

Los Servidores no necesariamente son grandes aparatos, hay algunos tan pequeños como un transformador de telefono movil o notebook, torres únicas similares a PC de escritorio o grupos de servidores como el de la imagen mas arriba.

El ejemplo de Servidores del Sistema Linux corresponden a Xorg y Pulseaudio (esta ALSA tambien), y lo uso ya que al ser de código abierto su funcionamiento es conocido y «estudiable».

Los ejemplos de eMule, torrent, «peliculaenestreno.rmvb» son solo ejemplos prácticos, no es mi intención fomentar la piratería ni nada parecido, al igual que con Outlook.

Por ultimo, este pequeño post sera la base de otros temas que pretendo tocar mas adelante, cualquier corrección o acotación sera bienvenida.

Codecs, Contenedores y Formatos de Video

ENTENDIENDO

Xvid, DivX, H264, theora, mkv y avis muchas veces nos suenan a «chino» y lo único que sabemos es que tiene algo que ver con video, les tomamos el peso cuando «necesitamos un codec adecuado» o cuando un supuesto video no se ve, mas alla de conocer los formatos o instalar codecs en el computador. Hago un pequeño articulo sobre los codecs y los formatos de video con tal de diferenciarlos y poder comprender un poco mejor el tema, asi que sin mas preambulos alla vá, empezaremos por lo mas básico:

El Video

Un video no es mas que una secuencia de imágenes que, mostradas una tras otra lo suficientemente rápido (15 cuadros por segundo a lo menos para que sirva), muestran las imágenes en movimiento que todos conocemos.

El Codec

Pues bien, un codec comprime esas imágenes con tal de que todos esos datos ocupen menos espacio y se puedan llevar a otra parte o puedan ser transmitidas (todo esto de forma digital), un buen codec reduce al máximo el tamaño del archivo y conserva al máximo la calidad de la imagen, luego este codec debe ser capaz de descomprimir este archivo que haya creado, por ello se le llama co-dec que en realidad significa codificador y decodificador.

El Contenedor

Un codec, al codificar (valga la redundancia) generará un archivo, que contendrá el video en su interior, pero este no irá solo, generalmente irá acompañado de audio, datos y hasta subtítulos, un contenedor lleva consigo todos esos archivos, codificados o no, y por lo general a eso lo llamamos «El video» como puede ser «mis vacaciones.avi».

El Formato

Es el tipo de archivo que asume el contenedor de video, decíamos «mis vacaciones.avi», también puede ser «pelicula.rmvb» o mejor aun «proyecto.ogv», los tipos de formatos se han ido creando por distintas empresas a lo largo del tiempo, de todas maneras en un formato se pueden haber usado distintos codecs. Por ejemplo un avi puede contener información hecha con los codecs, Divx, Xvid, mp3 o AC3. En todo caso formatos y codecs van relacionados de una u otra forma por aspectos técnicos y comerciales (no es que se puedan usar todos con todos).

Como trabaja el codec

Ya decíamos que el codec comprimía el video original, eso lo hace básicamente eliminando las partes repetidas de la imagen, como un video esta compuesto de varias imágenes secuenciales si una parte se repite estas se pueden quitar y poner una sola en su lugar, un buen codec hace esto de forma automatizada e inteligente. Luego hay otras tecnicas, como reemplazar algunos colores para usar menor variedad de ellos, entre otras. Luego viene la decodificacion, donde el Codec debe ser capaz de descomprimir el video de forma correcta y a una velocidad adecuada con tal de tener una buena imagen.

A modo de ejemplo, en este caso el codec «ahorraria» un poco de cielo.

Un poco de cultura general 😦

Actualmente quien «domina» en el campo de la codificación de video es MPEG (Moving Picture Experts Group) quienes han creado normas o estándares para la codificación de video y audio como los MPEG-1, MPEG-2 y MPEG-4. En base a estos estandares se crearon las especificaciones para lectura de CD de audio, el formato y codec mp3, el formato mp4, el codec DivX, el formato de Television estandar y Television HD y el codec H264, entre otras cosas.

Codecs, Contenedores y formatos libres

Tomando en consideración a MPEG-4, se creo el codec libre XviD, la version homologa de DivX y que ha sido tambien ampliamente aceptado y ha tenido gran exito, por otra parte la Fundación Xiph, creadora del excelente codec de audio Vorbis, en base al aporte de la empresa On2, desarrolló el codec de video Theora, a su vez Xiph.org es la creadora del contenedor y formato ogg. Otro contenedor libre muy potente es Matroska, soporta distintas pistas, distintos subtitulos y todo tipo de archivos, con una alta compresión. Y el 20 de mayo de 2010 se anunció la liberación del potente codec VP8 de la empresa On2 comprada por Google, este codec rivaliza con el poderoso H264 y probablemente se convierta en un estándar de codificación de video para la red, su principal ventaja ademas de su buena compresión y gran calidad de imagen es que esta disponible para todas las personas de forma libre y gratuita, el contenedor para ser usado en la red tendrá la extensión webm, aunque probablemente se pueda usar un contenedor ogg o un mkv.

A si es que ya lo sabes, codecs trabajan codificando y mostrando, mientras que los archivos .avi, ogg, ogv, mkv, rmvb, mp4, mov, flv, etc. son solo contenedores (aunque no por ello menos importantes).

Espero que con toda esta descripción haya quedado un poco mas claro el tema de los codecs y los formatos de video de los que tanto se habla, mas aun cuando últimamente las noticias giran en torno a la reproducción de video en la red, desde aquí, todo el apoyo para los codecs y formatos libres.

A continuación una pequeña lista de codecs y formatos de video (algunos pocos como ejemplo).

Codecs

DivX

Xvid

H263

H264

VP3

Theora

VP6

VP8

Contenedores

avi

ogg

mkv

mp4

mov

rmvb