La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Visualizador de imágenes remotas Alumno: Juan Pablo García Ortíz Director: Vicente Gonzalez Ruiz.

Presentaciones similares


Presentación del tema: "Visualizador de imágenes remotas Alumno: Juan Pablo García Ortíz Director: Vicente Gonzalez Ruiz."— Transcripción de la presentación:

1 Visualizador de imágenes remotas Alumno: Juan Pablo García Ortíz Director: Vicente Gonzalez Ruiz

2 Descripción del entorno Lo que se persigue es implementar un sistema que nos permita transmitir imágenes astronómicas de gran tamaño almacenadas en un servidor y que un cliente que se conecte pueda visualizarlas en un tiempo mínimo y de manera progresiva. El servidor correrá en una maquina con un sistema operativo con arquitectura UNIX (en nuestro caso Solaris). La arquitectura bajo la cual se ejecutará el cliente no tiene por qué ser única.

3 Principales inconvenientes Imágenes a transmitir de gran tamaño (1024x1024,...) Conexión cliente-servidor a través de Internet Arquitectura del cliente variable Transmisión progresiva de la imagen

4 Solución adoptada Algoritmo de compresión/descompresión SPIHT para poder transmitir progresivamente las imágenes de manera eficiente. Java como lenguaje para la implementación del cliente, asegurandonos que éste sea multiplataforma. El servidor será implementado en C para obtener una mayor potencia y un amplio soporte por parte del sistema operativo donde se va a ejecutar (Solaris)

5 Algoritmo de compresión SPIHT El algoritmo SPIHT (Set Partitioning in Hierarchical Trees) fue expuesto por Amir Said y William A. Pearlman en IEEE Transactions on Circuits and Systems for Video Technology, Volumen 6 de Junio de 1996. Este algoritmo nos permite transmitir progresivamente la imagen bit a bit, de manera que es posible mostrar una imagen completa que será mas reconocible conforme mas datos se reciban. En la mayoría de los casos, con el 1% de la imagen (ya comprimida) que se transmita, ya es posible mostrar en el cliente una imagen perfectamente reconocible.

6 Programa servidor en C La elección del lenguaje C es siempre una buena elección para cualquier desarrollo debido a su gran potencia y flexibilidad. En nuestro caso, al ser el sistema operativo tipo UNIX, su elección viene mas que justificada. La mayoría de estos sistemas operativos están desarrollados en este lenguaje, por lo que la integración es plena. Además, suelen proveer un amplio soporte para este lenguaje (compilador, documentación, etc) sin necesidad de adquirir herramientas externas de desarrollo.

7 Programa cliente en Java Java nos asegura que el cliente puede ejecutarse sobre cualquier plataforma. El problema podría ser la velocidad de ejecución que presenta, al ser Java interpretado por una maquina virtual. Un programa en Java, en el mejor de los casos, puede alcanzar el 80% de la velocidad del mismo programa con código nativo, pero en el pero de los casos, su velocidad puede llegar a ser extremadamente lenta. Sin embargo, con la tecnología JIT (Just-In-Time) podemos compilar el programa en Java y obtener código nativo. Además, los navegadores actuales poseen ya esta tecnología.

8 Protocolo de comunicación El servidor se ejecutará en el directorio donde estén almacenadas las imágenes. Estas imágenes estarán ya comprimidas con el algoritmo antes mencionado, y tendrán una extensión.prog para diferenciarlas del resto de los archivos que pudiesen existir. El servidor atenderá una sola petición por conexión realizada, de manera que si un cliente quisiera bajarse n imágenes, tendría que realizar n conexiones distintas con el servidor. El servidor no envía información adicional para las imágenes, simplemente va enviando byte a byte el archivo asociado.

9 El formato de las imágenes.prog es el siguiente: 0 1 2 3 4.... Byte mas significativo del ancho de la imagen Byte menos significativo del ancho de la imagen Byte mas significativo del alto de la imagen Byte menos significativo del alto de la imagen Numero de planos Datos de la imagen

10 El servidor acepta tres tipos diferentes de peticiones: Petición de imagen: el servidor enviara la imagen completa que solicite el cliente. ‘L’‘E’‘N’‘A’0 0 1 (Datos de la imagen) Cliente Servidor Imagen no encontrada Imagen encontrada

11 Petición de directorio: el servidor enviará un porcentaje de cada imagen contenida en el directorio especificado. Cliente Servidor ‘M’‘D’‘I’‘R’0 0 2 msblsb msbb2b3lsb ‘L’‘E’‘N’‘A’0 10 Directorio no encontrado Directorio encontrado Porcentaje Tamaño de la imagen Datos de la imagen Nombre de la imagen....

12 Petición de jerarquía de directorios: el servidor enviará la jerarquía de directorios que cuelga del directorio en el que se encuentra. 10 ‘D’‘I’‘R’‘1’0 10 10 ‘M’‘D’‘I’‘R’0.... Cliente Servidor

13 Descripción del programa cliente El programa cliente está desarrollado con el JDK 1.2.2, pero el código es compatible con versiones anteriores hasta la 1.1.5. Para la interfaz se han empleado únicamente los paquetes AWT. No se han utilizado los paquetes Swing de las JFCs para asegurar una mayor compatibilidad. No se han incluido componentes desarrollados por terceras personas. Todos los componentes no estándar del programa han sido desarrollados específicamente para el proyecto. El programa ha sido testado bajo los entornos gráficos Windows 98 y X-Windows, con el Internet Explorer 5.0 (solo en Windows) y Nestcape Navigator 4.5 (en ambos entornos).

14 El programa cliente lleva implementado el algoritmo de descompresión SPIHT. Para conseguir la visualización progresiva de una imagen, tenemos la siguiente implementación: Proceso 1 Va descomprimiendo la imagen conforme van llegando datos Proceso 2 Está continuamente mostrando la imagen en pantalla Buffer de la imagen Datos del servidor


Descargar ppt "Visualizador de imágenes remotas Alumno: Juan Pablo García Ortíz Director: Vicente Gonzalez Ruiz."

Presentaciones similares


Anuncios Google