Tecnopalm, todo para PDAs Palm OS    


· Home
· Análisis
· Articulos
· Contáctanos
· Descargas
· Encuestas
· Enlaces
· Enviar noticia
· FAQ (Pregs. Frecs.)
· Foro
· Glosario Tecnopalm
· Mensajes privados
· Noticias
· Recomiéndanos
· Top 10
· Tu cuenta
· Tutoriales
· URL p/Canal AvantGo
· Usuarios registrados
@Tecnopalm
Bienvenido, Anónimo
   
Nickname
Contraseña


Regístrate
Contraseña olvidada

  Gente en línea:  0
          Anónimos:
          Registrados: 0

Últimos Analisis
· FUNDA DE SILICÓN ANTIBACTERIAL PROPORTA
· FUNDA DE CRISTAL PARA IPHONE PROPORTA
· Twisted System – Altavoces
· 4Cast, el Clima en tu Palm OS
· BILLETERA DE PIEL PROPORTA
· 2TwitMe, Twitter en Palm OS
· ADIOS A LOS ENREDOS CON PROPORTA
· Solar Mobile Power Station charger Ideal Case for iPhone
· Reportaje Funda iPhone 3G/3GS de Otterbo
· IM+ Multimensajero Todo en uno
Seccion PRINCIPIANTES
Vas comenzando en PDAs?, tenías mucho tiempo sin trastearla?, se te olvidaron algunas cosas elementales?, aun no sabias este truco? En: FAQ (preguntas frecuentes) y Glosario Tecnopalm puedes encontrar respuestas...
Los Tipos de Reset en Palms
Tipos de Resets
Portales PDA´s

PDAMexico.net

PDAExpertos.com

Palmaniac.com

PDAColombia.com

CanalPDA.com

ListaPalm

TodoPocketPC.com

PCdemano.com
Visitas

Tracked by Histats.com
Tienda Mundo Tichie
Al comprar en Mundo Tichie, mete el Código TECNO, y obtén un descuento en tu compra.

Hollywood en la palma de tu mano

Video en tu Palm

Hollywood en la palma de tu mano

Introducción

Finalmente y tras una larga época de sequia, podemos decir que el multimedia real ha llegado a las Palm. Al menos, de momento, a las Palm de Palm SG con OS 5 (Tungsten T, Tungsten C y Zire 71). Hasta este momento, los usuarios de Palm teniamos que conformarnos con soluciones de compromiso, como el FireViewer, el Teal Movies o el Kinoma. Sin embargo, todas estas soluciones adolecian del problrma del formato propietario: cada uno de ellos utilizaba su propio formato privado, visible unicamente en una Palm.

En ese frente, los usuarios de PocketPC lo tenian más facil y comodo: puesto que Microsoft siempre ha vendido la idea de que los PPC son realmente multimedia, el Media Player venia de serie. Eso permitia ver algunos AVI aunque tampoco los codificados con el formato más extendido en el video para ordenador: DivX

Hace varios meses (casi un año), los usuarios de PPC veian como comenzaba en desarrollo de un player capaz de interpretar el formato DivX y reproducir video de calidad. Ahi, los usuarios de Palm comenzabamos a sudar tinta: una cosa es que compares Kinoma frente a un AVI codificado con Cinepak, que acababan siendo lo mismo, pero ¿DivX?. Eso suponia que los usuarios de PPC podian ver peliculas enteras en los PDA, cosa impensable usando Kinoma.

Finalmente hace unos tres meses, una pequeña empresa europea formada por Magnus Berg y David Janssens comenzaba el desarrollo del arma definitiva: MMPlayer. Si visitais la página del MMPlayer, vereis que es un proyecto muy ambicioso, que pretende proporcionar a los usuarios de Palm OS 5 un verdadero reproductor multimedia, capaz de reproducir cualquier cosa: MP3, WAV, OGG, MPEG-1, MPEG-2, MPEG-4, DivX, DV, etc. ¿Sería posible?

Tras dos meses de seguir a fondo la evolucion del programa y de colaborar con Magnus Berg como testeador privado en la Zire 71 (no os podeis imaginar la cantidad de resets que he hecho en los ultimos meses. Habia dias que recibia por correo hasta 3 versiones diferntes!), la respuesta es afirmativa: Podemos reproducir DivX en los Palm con OS5!

Atención:En estos momentos, la última versión de MMPlayer es la 0.1.5b, que como podeis ver en la página oficial es aún una versión experimental, no es ni siquiera una beta. Eso quiere decir que si la probais y os da errores, es normal. Tambien quiero aclarar que todas estas versiones oficiales unicamente provocan soft resets (no se pierde nada), por lo que creo que vale la pena probarlas.

De momento MMPlayer no funciona en ningun PDA de Sony, porque los chicos de Sony, pese a poner el Palm OS5 en los ultimos modelos, no implementan el API standard de audio y en su lugar implementan uno propietario del cual no quieren hacer publicos todos los detalles.

¿AVI o DivX? ¿MOV o MPEG-4? ¿Que pinta un MP3 aquí?

Las películas son algo muy compejo de almacenar en un ordenador. Por un lado tenemos toda la infomración del video, por otro lado toda la del audio, e incluso en algunas tenemos subtitulos. Ademas, toda esa información debe ir sincronizada o vemos moverse los labios sin sonido (error de "lipsync"). ¿Como meto todo eso en un ordenador?. La verdad es que es un problema complejo, y ademas las soluciones que funcionan bien para el audio no lo hacen para el video y a la inversa. Por ello desde el principio se tuvo bastante claro que lo mejor era manejar cada cosa por separado. Pero claro, desde el punto de vista de los usuarios, nosotros queremos tener un único fichero. ¿Como se ha resuelto? Con los formatos de distribución

Lo que se hizo fué diseñar un formato de fichero que actuase de contenedor de varios canales de información. Ademas a esos formatos se les dotó de toda la información necesaria para sincronizar los fiferentes canales. Esos formatos son los que habitualmente conocemos como "formatos de video" entre los que se encuentran AVI, MOV y WMF. Con ello, saber que una pelicula es un AVI, lo unico que nos dice es como está organizada la información dentro del fichero, NO como es esa información.

Una vez sabemos donde almacenar, lo siguiente es saber como. Por ejemplo si queremos guardar video de 320x160 pixeles a 24fps (frames per second = fotogramas por segundo) con 16bits de color necesitaremos 320x160x16x24 = 19660800 bits/s = 18.75 Mbits/s!! que es una cantidad brutal de información, pues implica 140 Mbytes por minuto. Es decir en un CD podriamos meter 4.55 minutos de video. Evidentemente es necesario comprimir la información. Y ahi es donde aparece el segundo concepto importante el codec de video, es decir el algoritmo que se ha utilizado para comprimir el video. Dependiendo de cual se ha utilizado, decimos que este AVI es DivX o Cinepak. Realmente lo que deberiamos decir es que este AVI contiene un canal de video codificado mediante DivX o Cinepak, pero quedaría muy pedante ;-). En el mundo Apple, el formato es el MOV (tambien llamado QuickTime), y el codec habitual es el QuickTime (que realmente es una implementación de MPEG4, igual que el DivX). Como veis muchas veces el continente y el contenido se confunden.

Como veis solo hemos hablado del video, pero otro tanto ocurre con el audio: tambien se comprime para reducir su tamaño y se hace con un codec diferente al video y específico para el audio. Por eso, dentro de un AVI puedes tener video DivX y el audio codificado como un MP3 o como un OGG

Resolución, framerate, bitrate y calidad de imagen

Ok, ya está claro, pero ¿como meto un AVI, que contiene DivX y MP3 y ocupa 700Mb dentro de la PDA que solo tiene una SD de 128Mb?. La respuesta es simple y evidente: no puedes.

Para poder meter una pelicula en la PDA, tenemos que adaptarla a las características de la PDA y recodificarla para que quepa dentro. La primera diferencia aparente entre el PC y la PDA es el tamño de la pantalla. ¿Para que quiero meter un video de 500x256 pixels en la PDA si la pantalla solo tiene 320x320?. Un primer paso sería reducir el tamaño de la imagen. Muchas veces, coloquialmente, al tamaño de la imagen se le llama resolución, pero atentos que esto es un error. La resolución es el número de pixeles por unidad de medida física de la pantalla, por ejemplo 96 pixeles por pulgada o 300 pixeles por pulgada. Sobre la resolución NO tenemos ningún control, pues es una caracterísitica del hardware. Sin embargo lo que si que podemos cambiar es el tamaño en número de pixeles de la imagen.

Vale, pues podemos pasar de 500x256 a 320x160 pixeles. Esto supone una reducción de 2.5 veces, por lo que hemos dejado nuestro video de 700Mb en 280Mb. No está mal, pero no es suficiente. ¿Que más podemos hacer?

El siguiente paso es utilizar una característica de nuestro sistema visual. Cuando el ojo junto al cerebro ven en rapida sucesion imagenes estáticas tomadas de una secuencia, las unen automáticamente creando la sensación de movimiento. Este es el fundamento del cine, ni más ni menos. Hoy está establecido que a partir de 24fps el ojo ya no es capaz de detectar ningúna pausa y ve el video como continuo. Sin embargo, podemos reducir el framerate hasta más o menos 12fps y aún vemos continuidad (sobre todo si la imagen es pequeña, como es nuestro caso). Luego, podemos coger el video y quitar justo la mitad de los fotogramas, con lo cual en principio nos hemos quedado con un video de 140Mb que es casi lo que queremos. Pero aún es grande. ¿De donde podemos seguir recortando?

Este es el momento de confesar que os he mentido un poco. Realmente, reducir la imagen en un factor 2.5 no reduce el tamaño del fichero en ese factor. Del mimso modo, quitar la mitad de los fotogramas no divide por dos el tamaño del fichero. ¿Como puede ser esto?. Pues simplemente porque dentro del fichero, los canales de video y audio estan comprimidos y esta compresión es de las llamadas con perdidas. Una compresión con perdidas, elimina información del canal que está comprimiendo, con la esperanza de que luego no nos demos cuenta. Los ejemplos conocidos por todos son el JPEG de imagen o el MP3 de audio. Ambos son formatos con perdida de información.

Ahora pensemos un poco en ese concepto: perdida de información. Esto implica tres cosas:

  • Al comprimir video y audio, la calidad se degrada (pues perdemos información).
  • Podemos controlar la cantidad de información que perdemos.
  • No todos los fotogramas tienen la misma cantidad de información.

El primer puntoe es evidente, quien ha visto un video en un PC sabe que no es igual que el video original. Tambien es cierto (y aquí entra el segundo punto), que si la máquina donde se va a reproducir es muy potente se puede llegar a un nivel de calidad practicamente indistinguible del original. El tercer punto es el que nos va a permitir introducir el tercer conceto, el bitrate o caudal de información.

Veamos como funcionan todos los compresores de video. Cogemos en una escena lenta y la pasamos fotograma a fotograma. Veremos que las imágenes difieren poco unas de otras. Si a una imagen (B) le restamos la anterior (A) pixel a pixel, es de esperar que la mayoria de los pixeles contengan cero o valores muy pequeños y solo algunos valores grandes. Ahora fijamos un umbral y todos los pixeles que tienen un valor por debajo los hacemos estrictamente cero. Si ahora inventamos algun modo de "resumir" los ceros, nos quedamos unicamente con lo que importa: los valores altos y el número de ceros. En principio, partiendo de la imagen A y utilizando esta información comprimida seriamos capaces de reproducir la imagen B. Ese es el principio que utilizan todos los codecs de video y audio. En concepto importante, es que el "resumen" de ceros y los pixels con valores grandes son el fotograma comprimido. Como este fotograma comprimido depende de la diferencia entre un fotograma y el anterior en el video original, es facil ver que cada fotograma puede comprimirse a un tamaño completamente diferente.

Para aprovechar este tamaño diferente, se utiliza el bitrate que especifica unicamente cual es el número de bits por segundo que se quiere dejar. Si se baja el bitrate a valores muy pequeños, se tiene muy pocos bits por fotograma y el proceso de eliminar los valores muy pequeños se endurece y comienzan a eliminarse valore no tan pequeños. Esto hace que al reproducir el video sea evidente esa perdida de información en una imagen degradada. Así pues ajustando el bitrate decimos cuantos bits por segundo utilizamos para almacenar la información. Esto a su vez determina lo duros que somos en la perdida de información y esto a su vez determina la calidad de la imagen.

Pero ¿que tiene que ver esto con el tamaño del fichero?. Pues todo, absolutamente todo!. Lo repito una vez más: el bitrate es el número de bits por segundo utilizados para codificar la secuencia, es decir es el tamaño de un segundo de la secuencia!. Luego, el tamaño del video final depende unica y exclusivamente del bitrate NO del tamño de la imagen, NI del numero de fotogramas por segundo.¿Puede ser esto verdad?

Estrictamente si. Pero si pensamos un poco veremos que indirectamente ambas cosas afectan. El bitrate unicamente fija los bits por segundo. Evidentemente si reducimos el número de frames a la mitad, tendremos justo el doble de bits por frame. Si ademas reducimos el tamaño del fotograma en un factor 2.5, reduciremos justo en ese factor el número de pixeles de valores por debajo del umbral que eliminamos. En definitiva, los tres parámetros van juntos y aunque se puede bajar el bitrate tanto como se quiera manteniendo los FPS y el tamaño de la imagen, lo lógico es reducir los tres simultaneamente.

Bueno, pero ¿Como meto la pelicula de 700Mb en la SD de 128Mb?. Primero, tenemos que reformular la pregunta: ¿Como meto una pelicula, que dura 90min dentro de la SD de 128Mb para verla en la PDA?. Con un bitrate de 128kbps (kilo bits por segundo), 1Mb equivale justo a un minuto. Luego, la pelicula en cuestion ocupa 90min = 90Mb a 128kbps. Voila!, ya tenemos el número mágico.

Pero un momento, dentro del AVI tenemos Video y Audio. Esos 128Kbps que son ¿video o audio?. Pues la respuesta es que es el bitrate combinado. Como lo repartimos entre audio y video es cuestión nuestra. En geneal el video necesita un bitrate mayor que el audio, por lo que es recomendable hacer el reparto como 96kbps para video y 32kbps para audio.

VirtualDub: el procesador de video universal

Vale, basta ya de teoria. ¿Como preparo la película?. Se necesitan varias herramientas:

  • VirtualDub. Es el procesador de video que sabe como manipular fotogramas decodificados, moverse por el AVI, pero no sabe nada del formato comprimido.
  • Un codec de video que no sabe nada del formato del AVI, pero que sabe como transformar un fotograma nativo en uno comprimido.
  • Paciencia y mucho tiempo. El procesado de video es una tarea muy pesada y consume mucho tiempo de ordenador (horas!)

Lo primero que debes hacer es bajar e instalar el VirtualDub y el DivX. En principio todo lo que voy a contar funciona con el DivX completamente gratuito (el que no es Pro). Una vez instalados, vamos a ver de forma rápida como se usa el VirtualDub. Esta introducción tiene que ser ligera, pues dicho programa es muy extenso y excede el asunto de este artículo.

VirtualDub es un procesador de Video que trabaja como una cadena de montaje. Las fases por las que atraviesa el procesado son:

  1. Decodificación de los fotogramas
  2. Filtrado de los fotogramas uno a uno (varios filtros)
  3. Eliminación (decimating) de fotogramas no deseados
  4. Codificacion del fotograma filtrado
  5. Decodificación del "frame de audio"
  6. Filtrado de audio frame a frame
  7. Remuestreo (resamplign) del audio
  8. Codificación del nuevo audio.
  9. Mezcla o "interleaving" de video y audio
  10. Empaquetado en un formato contenedor (AVI)

El paso 1 lo hace de forma automática, si tenemos el codec con el que se ha codificado la pelicula instalado en el PC. En el paso 2, en el filtrado, es donde aplicaremos el filtro de reescalado para meterlo en la pantalla de 320x320. En el paso 3 quitaremos la mitad de las frames. En el paso 4 recodificaremos en DivX y fijaremos el bitrate. En el canal de audio, haremos un resampling y recodificación todo en un paso con el codec de audio de las windows. Los dos ultimas pasos los hace de forma automática VirtualDub.

¿Preparados? Pues vamos a ver el procesado en plan receta. Una vez conocida esta receta y con la base teórica expuesta arriba, solo os queda ir probando otras configuraciones hasta obtener la que más os guste.

La receta para MMPlayer

El objetivo es meter una pelicula de 90 a 120 minutos en una SD de 128Mb. Para ello el bitrate será de 128kbps. Actualmente a MMPlayer le viene un poco justo un bitrate tan alto, por lo que vamos a dar la receta para un bitrate combinado de 112kbps = 80kbps video + 32kbps audio. A partir de aquí podeis hacer vuestras pruebas

Cargar la pelicula original

Evidentemente tenemos que cargar la película orginal. Para ello, en el menú de VirtualDub, seleccionamos File::Open Video File. VirtualDub puede abir cualquier AVI o MPEG, pero NO puede manejar WMF o MOV por cuestiones de copyright. Si no teneis ninguna pelicula para hacer pruebas, podeis bajar algunas de NoLoSeAun. Estan en formato MPEG y son un buen punto de partida.

Una vez abierta la pelicula vereis dos rectangulos: el video de entrada a la izquierda y el de salida a la derecha. Con el botón derecho sobre cualquiera de ellos podeis reducir o aumentar la visualización. No afecta al AVI producido, es solo para verlo mejor en pantalla

Antes de continuar, entramos en la opción File::File Information y apuntamos el tamaño del video original (está en la primera casilla).

Cambiar el tamaño

Nuestra primera acción es en le menú Video::Filters. En la pantalla de filtros activos, elegimos el boton Add y seleccionamos el filtro Resize. Nos aparece la siguiente ventana para configurar el filtro:

Aquí nos pide el tamaño al que queremos llegar. Queremos que el ajuste de la imagen sea sin deformar. Para ello debemos calcular el aspect ratio del video original y utilizarlo para calcular el alto del nuevo video. Por ejemplo, un video que he procesado recientemente tiene 704x304 pixels y yo lo quiero meter en 320xNoLoSe. Para calcular NoLoSe, divido 304/704 y el resultado lo multiplico por 320 y me da 138. Esas son las dimensiones de mi nuevo video 320x138. Tener en cuenta que algunos codec (por ejemplo DivX) tienen algunas restricciones en los tamaños permitidos. Así en DivX 5.0.5 la anchura debe ser multiplo de 4 y la altura de 2. Ambas restricciones se cumplen en este caso.

Antes de salir de la ventana, en le desplegable de Filter Mode seleccionamos Bicubic. Con esto nos aseguramos de que la calidad del escalado sea la optima. Aceptamos hasta salir del menú de filtros

Fijar el framerate

En la opción Video::Frame Rate, del segundo conjunto de radiobox, seleccionamos la opcion Decimate by 2, con esto pasamos el video de 24fps a 12fps

Fijar el bitrate de video

Opción Video::Compression y en la lista que aparece a la izquierda seleccionamos el codec de DivX. Una vez seleccionado, accedemos a su configuración. Aquí lo único importante es fijar el birtate a 80kbps o 90kbps. Aceptamos la configuración.


Cambiar el modo de procesado del Audio

Seleccionamos del menú principal Audio::Full Processing mode.

Fijar el bitrate de audio

Con la opcion de Audio::Compression accedemos a la lista de codecs de audio instalados en la máquina. En un WinXP o Win2000, biene un compresor de MP3. En otros operativos no tengo experiencia, si algun usuario tiene más información, le agradeceré instrucciones al respecto.

Una vez seleccionado el codec de audio aparece la lista de frecuencias y bitrates a las que codificar. Se obtienen buenos resultados con un muestreo de 20500 Hz y un bitrate de 32kbps en mono

Procesar

¿Donde está el botón de procesar? Pues no hay. Simplemente selecciona File::Save as AVI y en ese momento comienza el procesado / conversión y se genera el nuevo AVI listo para ser cargado en tu Palm. Ahora es cuando tienes que utilizar toda tu paciencia, pues en función de la longitud de la pelicula puede tardar bastante rato.

Ya está. Acabais de crear un DivX optimizado para la version 0.1.5b de MMPlayer y que cabe dentro de una SD. Espero que lo disfruteis y que conteis en los foros cualquier mejora al procedimiento descrito!

Como colofón, me gustaría recomendar a los más pacientes y exigentes que probasen la compresion con multiples pasadas. Es más costosa, pero los resultados son impactantes.

Palmipedo (Rafa Barberá)
Junio 2003

Agregado: June 17th 2003

Impresiones: 16181
Lenguaje: spanish

  

[ Volver al Índice de tutoriales | Enviar Comentario ]


Hollywood en la palma de tu mano
Enviado por Kyo_AM el 2008-09-16 01:07:17
Mi Puntuación:


En un pc normal puede haber mas de 250 entre compresores y descompresores, para tareas de auidio y video. Pero se esconden en las instalaciones para otros programa como por ejemplo Vdub Antiguamenteera mas sencillo: codec que instalas codec en la lista pero ahora las .dll no estan donde tiene que estar y te puedes volver loco, si kieres instalarlos 1 a uno te puedes morir y no siempre aciertas donde van las dll( me podrias orientar en como agrandar la lista de posibles compresores y descompresores para usar Vdub(matroska no porfavor) con los casi 300 codecs instalados asi de pronto que creo que tendre en el ordenador? gracias muchas gracias. Graciasss




Tecnopalm.com
Prohibida la reproducción sin autorización.
Sedo - Buy and Sell Domain Names and Websites project info: tecnopalm.com Statistics for project tecnopalm.com etracker® web controlling instead of log file analysis