Visualizador de imgenes remotas - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

Visualizador de imgenes remotas

Description:

Lo que se persigue es implementar un sistema que nos permita ... Byte mas significativo del ancho de la imagen. Byte menos significativo del ancho de la imagen ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 15
Provided by: juanpablog
Category:

less

Transcript and Presenter's Notes

Title: Visualizador de imgenes remotas


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
Byte mas significativo del ancho de la imagen
1
Byte menos significativo del ancho de la imagen
2
Byte mas significativo del alto de la imagen
3
Byte menos significativo del alto de la imagen
4
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.

Cliente
Servidor
L
E
N
A
0
Imagen no encontrada
0
1
Imagen encontrada
(Datos de la imagen)
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
Directorio no encontrado
0
2
Porcentaje
msb
lsb
Nombre de la imagen
L
E
N
A
0
Tamaño de la imagen
Directorio encontrado
msb
b2
b3
lsb
Datos de la imagen
....
1
0
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.

Cliente
Servidor
1
0
M
D
I
R
0
D
I
R
1
0
....
1
0
....
1
0
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
Datos del servidor
Buffer de la imagen
Proceso 2 Está continuamente mostrando la
imagen en pantalla
Write a Comment
User Comments (0)
About PowerShow.com