La madre de la compresión

Andres Cuenca

Moderador general
Hace poco me enviaron un archivo que contenía mas de 5 minutos de animación grafica en 3D, en tan solo 64KB, si!! no me equivoco casi 64000 Bytes.

Según la explicación que dan al final del video, comprimieron 1.9GB a solo 64KB ósea una relación de compresión de 30000 a 1. A mi me parece sorprendente, pero se los dejo a ustedes para que lo juzguen.
 

Adjuntos

  • 64kbmovie_707.zip
    62.1 KB · Visitas: 118
Cuando corro el archivo me dá un error que dice "dx error".
Supongo que es un error de Directx. Sabrás si hay que correrlo que alguna versión específica, yo tengo Directx 9 (que por cierto es bien problemático) que se instala a juro con el SP2 de Windows XP.
Creo que para correrlo se necesita el Directx 8.

Saludos,
Marcelo.
 
Marcelo yo utilizo windows 98, y nunca me ha dado problema, me imagino entonces que debe ser por conflictos con la versión de directX que tienes instalada.
 
No me funciono en XP, pero en win98 si me funciono. En win98 tengo instalado el directX 9.

También estoy sorprendido, como harán ese tipo de animaciones en archivos tan pequeños?
 
Que buena esa animación!!!

Para ser un archivo tan pequeño creo que estoy impresionado. Por ahí tengo unos videos de música de la nueva era con imágenes muy parecidas, y cada video de casi 20 minutos pesa como 300MB, y pensar que esta animación solo ocupa 64KB.

No será que hay gato encerrado?
 
fer dijo:
No será que hay gato encerrado?

A mi también me gustaría saber como hicieron para hacer esta animación en un archivo tan pequeño, me imagino que en el archivo solo hay códigos que son interpretadas por las APIs del DirectX. Es decir el archivo contiene el código que compila el directX.

Será esperar a que alguien que sepa como hacen esto nos explique.
 
Estuve revisando y traceando la aplicacion, y realmente me ha logrado sorprender. El archivo de 64K tan simple como un segmento, tiene incluido el codigo de compilacion en run time, de directivas de DirectX, es decir la animación se forma en la computadora en tiempo de ejecucion. La he probado en XP con SP2 y directx 9.0c, cambiando la compatibilidad a windows 95. Utiliza el mismo metodo poligonal que un scr modelo. He truncado el engine de los screensaver (una salvedad del directx) y la aplicacion deja de responder, clavandose en la cuarta posicion del volcado a la pila. (ECB +4). Me sorprende la idea de generar aplicaciones que compilen y carguen en tiempo de ejecucion, con simples directivas a directx por medio de las API. (valores de funciones bastante complejas, com hasta 8 parametros de respuesta en Dx). A groso modo, puede interpretarse como un salva pantallas en tiempo de ejecucion, que segun he monitoreado se comporta como tal.
Recuerdo haber tocado directx desde delphi, y a pesar de ser bastante complejo, tiene le ventaja de no necesitar incluirse archivos y librerias puesto que estos se encuentran en cualquier SO, con lo cual se necesitara un ejecutable de muy poco peso. El archivo no contiene ningun res, tan solo directivas de compilacion en runtime y un excelente manejo de interrupciones (Api para el que asi prefiera).

Saludos
 
MaMu, explícame bien como hicistes para hacerlo funcionar en WinXP, porque yo intenté compatibilidad Windows95, Win98/Me, Reproducir solo en 640x480, deshabilité los temas visuales, Instalé el Directx9c (el último) y no logré hacerlo arrancar. Me sigue saliendo el error "dx Error".

Por allí encontré otro archivo de 64K pero de un tema que no se puede publicar por acá (lo digo por el título, no se como es), el cual debe hacer lo mismo pero con otro tema pero necesita Direct9.

Yo he hecho algunas pruebas con Directx 8.1 usando las API y la verdad es fabuloso lo que se puede hacer con algunas líneas de programación, y te estoy hablando de Visual basic. Lo que pude entender es que el Directx y el DirectShow es todo un engine completo que es capaz de generar por si solo con sus librerías: animaciones, renderizaciones incluyendo texturas, sombreado, rotaciones, morphing, warping y un montón de cosas más con tan solo indicárselo y esto sin contar las facilidades de sonidos que tiene. También maneja OpenGl y D3D, por lo que el desarrollo depende de la tarjeta de video que se tenga.

Como no he podido ver la animación, me imagino que el programa en sí no guarda absolutamente nada del video, sino solo las directivas de las API y la data de las coordenadas de los polígonos. Las textura las pudiera generar el mismo directx.

Saludos y a ver si logro correrlo.

Marcelo.
 
Bueno, al fin lo pude correr. Desinstalé el Directx9, hice un escaneo con RegFixer, limpié el registro y luego reinstalé Directx9c.

Les anexo el otro archivo de 64K que les había comentado para que lo vean. Les recuerdo que necesita Directx 9

El Direct9c lo pueden bajar de aquí (la última versión):

http://www.softwarepatch.com/windows/directx.html

(Si no, traten desde Microsoft a ver si pueden)

Y si luego de instalarlo tienen problemas o lo quieren quitar, pueden buscar el desinstalador de DX9 aquí (para Windows Xp, no se si funciona en otros SO pero creo que no):

http://www.3dcenter.org/downloads/directx-dx9uninstaller.php

Nota: El título del archivo no es el original.


Saludos,
Marcelo
 

Adjuntos

  • 64kbvirtualwoman_139.zip
    64.1 KB · Visitas: 60
Marcelo, ahora es a mi a quien no me funciona, en win98 no pasa de la barra de carga, y en winXP ni siquiera se ejecuta. Creo que la versión del directX para que funcione debe ser la 9c o superior.
 
Tienes el D9 en WinXP?. A mi me funcionaron las dos cuando instalé el D9c.

Con cada nueva versión de Directx, le cambian el nombre a las librerías (Directx6.DLL, Directx7.DLL, etc), a fin de que se genere una nueva clave de registro y no se eliminen las anteriores referencias a DLL viejas. A veces ocasiona que existan más de una GUI en el registro de Windows marcando a una librería auxiliar de funciones que si tiene el mismo nombre para distintas versiones, pero que no contienen las mismas funciones que las versiones nuevas.( no se si me expliqué)

Cuando esto sucede, los programas arrancan con una versión nueva pero llaman a librerías más viejas del Directx y empiezan a mezclar referencias. Es decir, se hace un pasticho en el registro. (Esto si es difícil de explicar....:x

Por eso fué que usé el RegFixer.

Creo que actualizando te funcionaría, pero te voy a advertir que hay por allí un montón de blogs que comentan los problemas de runtimes que tiene la versión 9 y posteriores de estos drivers. Así que es "risky" una actualización, por eso "linkee" el desinstalador en el post anterior.

Saludos,
Marcelo.
 
Si vas a reinstalar el 9 te recomendaría que antes te bajaras la versión c del link que puse antes pues debe tener algunos bugs ya corregidos.

Saludos,
Marcelo.
 
Marcelo, para hacerlo andar solo cambie la compativilidad a win95 y voila!, ya que tengo instalado en el xp, el software de nForce de mi tarjeta nVidia, la cual me mantiene actualizado el DirectX ( es que tengo unos cuantos juegos de pc instalados :) ). Estuve revisando mas abajo de las Api, en las funciones de video a nivel interrupciones, pero son mas de 1500!!!!, eso explica claramente porque se demoran 2 años mas de 500 programadores en crear un buen juego de PC, ya sea por DirectX u OpenGL.

Saludos
 
Lo de la compatibilidad lo probé y no me funcionó. Le puse Compatibilidad Win95, Win98/ME, Nt4 y 2000 y nada. Luego empecé con la reproducción forzada a 640 x 480 y nada. Por último le deshabilité los temas visuales de XP y adivina... nada, y hasta lo arranqué en modo a prueba de fallos a ver y siguió nadando.

Solo después de la reinstalación pude correr diréctamente ambos archivos sin necesidad de cambiar la compatibilidad. ¿Como es posible que cada uno tenga que hacer algo distinto para que funcione?.....

Cuando pasan estas cosas es que me doy cuenta que esto de las computadoras, programación, etc. todavía está en la edad de hierro (o será en la de piedra?).

Me gustaría ver el día en que podamos encender las computadoras como si fuera un televisor, sin esperar a que se cargue nada y programarlas hablándoles por un hueco. Por ahora... SciFi.

Y con respecto a los juegos y a Directx, Direct 3D, OpenGl, etc... ni te comento. Hay tipos que lo único que hacen es dedicarse a eso todo el día, todos los días y comen polígonos, así es que imagínate si será complicado.

De los que tengo a montones son los de tirotéos en primera persona y los de tercera persona (como tomb raider, por ejemplo), que son los que me gustan. Los de aventura me pudren un poco y los arcade los uso para matar tiempo.

Saludos,
Marcelo.
 
Marcelo dijo:
Solo después de la reinstalación pude correr diréctamente ambos archivos sin necesidad de cambiar la compatibilidad. ¿Como es posible que cada uno tenga que hacer algo distinto para que funcione?.....

Respuesta muy simple : Microsoft Windows.
 
Amigos, este es mi primer post, un saludo a todos :p

Bueno, si estan impresionados con esas animaciones, les comento que se llaman "demos" y en europa estan a full haciendo exposiciones y demas.

Es esta ocasion quiero compartir con uds. esto que hace rato lo tengo en mi poder y que como estoy "remodelando" je mi pag, se lo adjunto para que lo vean.

No digo que es porque es sorpresa...

Recomendacion: ejecuten este programa con alguna almohada cerca para no lastimarse cuando se caigan de espaldas, o un medico en todo caso

Saludos nuevamente, espero lo disfruten
 

Adjuntos

  • pno0001_183.zip
    95.1 KB · Visitas: 49
MaMu dijo:
Recuerdo haber tocado directx desde delphi, y a pesar de ser bastante complejo, tiene le ventaja de no necesitar incluirse archivos y librerias puesto que estos se encuentran en cualquier SO, con lo cual se necesitara un ejecutable de muy poco peso. El archivo no contiene ningun res, tan solo directivas de compilacion en runtime y un excelente manejo de interrupciones (Api para el que asi prefiera).
Saludos

Mamu creo que debiste ser mas puntual. DirectX es de Microsoft y solo se encuentra en los Sistemas Operativos de Microsoft más modernos.
De hecho win98 venia con directX 5, y los win95 ni siquiera conocian de directX

En Linux y otros sistemas operativos, no existe el concepto de directX. De hecho directX surgió para competir con OpenGL...

Saludos
 
Atrás
Arriba