You are on page 1of 36

INFORMÁTICA 

GRÁFICA.

Inestal García, Alejandro
Íñigo Hernández, Ignacio
ÍNDICE.­
Capítulo 1 .­ Introducción.­

BIBLIOGRAFÍA.­
Hearn, Baker.­ Gráficas por Computador. Prentice Hall, 97
Angel, E.­ Interactive Computer Graphics.­ Addison, 2000
Salmon, Slater.­ Computer Graphics: Systems and Concepts. Addison Wesley, 87
Foley, Van Dam.­ Introduction to Computer Graphics. Addison Wesley, 94
Watt.­ Three Dimensional Computer Graphics. Addison Wesley, 90
Brown, Shepherd.­ Graphics File Formats.­ Manning, 95
Wikipedia en español e inglés.
CAPITULO 1.­

INTRODUCCIÓN.­

Desde la aparición de los primeros dispositivos
experimentales en el MIT en el año 63 hasta la actualidad, hay un largo camino
sembrado de rotundos éxitos y sonados fracasos, y un conjunto de avances científicos y
tecnológicos que, como es habitual en la Informática, están siempre fuertemente
polarizados por la industria. Quizás es la informática gráfica una de las ramas de la
ciencia en la que los aspectos científicos, los tecnológicos y los meramente comerciales
están más mezclados, lo cual produce que no exista una identidad clara del “motor” del
desarrollo: los centros de investigación, las empresas de fabricación de hardware, las de
software, los usuarios que demandan aplicaciones, etc. En estos pocos años, ha habido
una serie de “estándares” gráficos que han ido naciendo y muriendo a medida que eran
sustituidos por otros, pretendidamente mejores o fuertemente apoyados por algún
nombre importante.: GKS, PHIGS, PHIGS+, OpenGL, ... son algunos de los estándares
que han ido apareciendo. Son tantas las aplicaciones y tanta la demanda de interfaces
gráficas que la velocidad de cambio es superior a la que las organizaciones de normas
(ISO, ANSI) pueden asumir. El resultado es que algunos fabricantes intentan imponer
un estándar “de facto” , en la esperanza de que se convierta en el estándar “de iure”. Y
en esas estamos.

1.1.­ Un poco de historia.­

Siempre es conveniente situar las cosas en su contexto y más en disciplinas que
están en formación, como esta que nos ocupa. Y para ello nada mejor que hacer un
breve repaso “histórico”, porque las cosas son como son debido a la evolución que han
ido teniendo.
La historia arranca en el MIT, Boston, en 1963 cuando un estudiante de
doctorado, Ivan Sutherland, diseña para su tesis un dispositivo para hacer
representaciones gráficas de los resultados numéricos de su trabajo y tener cierta
capacidad de interacción: lo llamó el SketchPad y construyó un primer prototipo.
Posteriormente, Sutherland fundó su propia compañía especializada en la fabricación de
dispositivos de salida gráfica. En el año 65, Tektronix, una empresa fabricante de
instrumentación electrónica de gran calidad, lanza al mercado la primera pantalla
gráfica basada en tecnología de tubo de almacenamiento (volveremos luego sobre ello).
El precio: 15.000 US$ de la época.. Unos años después, se aplicó la misma tecnología
de los televisores a las pantallas gráficas y así, en el 72, salieron las primeras pantallas
basadas en tubos de rastreo, mucho más baratas que las anteriores ya que compartían
parte de los componentes de la electrónica de consumo y que han logrado, en la
actualidad, desplazar casi totalmente a los tubos de almacenamiento. Aparecen también
los primeros trazadores mecánicos (plotters), voluminosos, lentos y caros pero que
tuvieron su mercado en aplicaciones de diseño: arquitectos, diseñadores industriales,
etc. En el 89 aparecen los trazadores electroestáticos, que tuvieron una vida no
demasiado feliz. La aparición, en el 90, de la impresoras laser monocromas y un par de
años después de las de color ha relegado a los trazadores mecánicos a las gamas altas
(tamaños A2, A1 y A0).

La interfaz entre un programa de aplicación y un sistema gráfico se puede
especificar mediante un conjunto de funciones que residen en una biblioteca gráfica
(graphics library) . Estas especificaciones constituyen una API (Application
Programming Interface). Desde el punto de vista del software, los primeros intentos de
normalización (con el objetivo final de la portabilidad, no siempre compartido por
todos) aparecen el año 74. Todos ellos se plantearon en forma de APIS. El primer
estándar de derecho no aparece hasta después de pasados 10 años: el Graphical Kernel
System (GKS), adoptado por la ISO y por la ANSI en el 85. GKS es una norma de
gráficos en 2 dimensiones que tuvo bastante aceptación pero que pronto se quedó corta.

En el 88 sale la versión en 3 dimensiones, GKS3D. Pero por entonces el mercado de la
Informática gráfica empezaba a ser importante y las intromisiones de las empresas cada
vez más frecuentes. El estándar GKS3D tuvo muy poco éxito (quizá porque GKS era
una norma desarrollada, fundamentalmente, en Europa) y, en su lugar, apareció el
Programming Hierarchical Interactive Graphics Standard, PHIGS, apoyado por la
poderosa industria norteamericana. Pronto se quedó corto también y en el 92 apareció
el PHIGS+ que añadía algunas funciones de sombreado 3D que no soportaba PHIGS.
OpenGL surgió como una API sucesora de la llamada GL (Graphics Language),
de Silicon Graphics (SGI), desarrollada para las estaciones IRIS. Las IRIS
suministraban hardware especializado para visualización gráfica, soporte de
transformaciones matriciales, buffer de profundidad, etc. Una versión más transportable
de GL constituyó la versión 1 de OpenGL, presentada en Julio del 92, juntamente con
algunas secuencias de películas hechas con la nueva API : Terminator, El Juicio Final,
etc. El desarrollo de OpenGl es controlado por la OpenGL ­ ARB (Architecture Review
Board), cuyos miembros fundadores son SGI, DEC, IBM, Intel y Microsoft. Se reúnen
dos veces al año.

En Diciembre de 1995 aparece la versión 1.1. de Open GL. Fué incluida como
parte del sistema operativo NT 3.5, y se le añadieron algunas DLL para hacerlo
compatible con W95. OpenGL no incluye funciones para la gestión de ventanas,
interactividad con el usuario ni manejo de ficheros. Para ello, se apoya en las funciones
del entorno de desarrollo y ejecución.
Actualmente, los entornos soportados por Open GL son NT 4, W95, W98,
UNIX con X Windows, OS/2, Mac. La versión (gratis) para LINUX se llama MESA 
En 1995 Mocosoft lanza Direct3D como competidor de OpenGl. Posteriormente, en 2006 se 
publica OpenGL2.1, aportando nuevas características al estándar.

1.2.­ Aplicaciones.

Son muchos los campos en los que la informática gráfica está teniendo
aplicación. Podemos destacar:
Dibujo : diseño asistido (CAD), fabricación asistida (CAM), etc.

Infografía: creación de efectos artísticos para publicidad, cabeceras en
televisión, etc.

Simuladores de vuelo, de locomotoras, de carros de combate, automóviles,
procesos, etc.

Enseñanza asistida (CAI).

Visualización de datos en meteorología, econometría, física, química y biología
moleculares, etc.

Aplicaciones de Control, comando y comunicaciones (CCC).
Medicina : ECG, EEG, TAC, RMN, etc.

Todas estas aplicaciones pueden clasificarse en cuatro grandes áreas:

Representación de información, en campos en que se generan enormes
volúmenes de datos cuya interpretación sería imposible sin la ayuda informática.
Tal es el caso, por ejemplo, de los mapas, imágenes médicas, imágenes
ultrasónicas, etc. Hay que hacer notar que, en algunos casos, este tipo de
aplicación requiere de enormes potencias de cálculo. Algunos fabricantes han
construido estaciones de trabajo diseñadas especialmente para este fin (SGI, IBM,
...)

Diseño: fundamentalmente para CAD, tanto en su vertiente mecánica, como de
arquitectura.

Simulación: de vehículos, aeronaves. Aquí podemos incluir un capítulo de
enorme impacto ecenómico, aunque a menudo muy despreciado en los ambientes
académicos: los juegos.

Interfaces de usuario: X
1.3.­ El proceso de producción de imágenes.
La informática gráfica podemos clasificarla como ciencia experimental y, por lo
tanto, el proceso en que se basa tiene se puede categorizar como un proceso genérico de
abstracción. En definitiva, al generar una imagen sintética con el ordenador, nos
estamos basando en una representación del mundo real (modelo), a partir de la cual
establecemos un mecanismo de abstracción que, normalmente, se plasma en una
extracción de características de dos tipos:
Primitivas de generación : líneas, marcas, texto, etc.
Atributos de estas primitivas: ancho de línea, tipo de marcas, etc.
Modelo Abstracción Imagen
1.4.­ El ojo humano.­
Sea cual sea la imagen, el hardware, el API, ... al final el usuario percibe el resultado a
través de sus sensores ópticos: los ojos. Se considera que este es el elemento sensor más
importante. Tiene una estructura que se muestra en la figura 1.2:

Figura 1.2.­ El ojo humano.
El ojo puede considerarse, en primera aproximación, como una esfera rellena de un gel
transparente (humor vítreo), un sistema de enfoque y diafragma (córnea, iris, critalino)
que proyectan la imagen exterior sobre la parte sensible, llamada retina. La retina consta
de 10 capas de células:
Capa de pigmentación (la más externa).
Capa sensible, con dos tipos de células : conos (unos 6 millones) y bastoncillos
(unos 120 millones).
Ocho capas de neuronas que efectúan algún tipo de procesamiento sobre las
señales de los conos y bastoncillos y envían la información al cerebro a través
del nervio óptico.
El ojo humano es pues un órgano sensible a la luz. La luz visible es solamente una
pequeña parte del espectro electromagnético, la comprendida en el rango de longitudes
de onda de 350 a 780 nm.
Figura 1.3.­ El espectro visible.
Como a toda radiación electromagnética, a la luz se le pueden aplicar una serie de
conceptos provenientes de la óptica:

Brillo : Es una medida de la respuesta del sistema ojo/cerebro a la energía
luminosa. Dada la adaptabilidad del ojo, resulta diífcil estimar niveles absolutos
de brillo.

Potencia: Energía/tiempo de la fuente de luz.

Color: Propiedad de la imagen, asociada a la frecuencia de la radiación
luminosa. Existen 3 grupos de conos sensibles a tres frecuencias luminosas, que
coinciden aproximadamente, con el Rojo (580 A), Verde (550 A) y Azul (450
A). ( teoría triestímulo) El sistema ojo/cerebro registra la respuesta de cada
cono y calcula el color resultante.

Un fenómeno que resulta difícil de explicar con métodos puramente físicos es de la
Constancia del color. Cualquiera de nosotros percibe los colores de forma,
aparentemente, constante a pesar de que las condiciones de iluminación puedan variar
en un amplio rango. No hay más que ver las diferencias entre fotografías de un mismo
objeto tomadas en diferentes horas del día y que la mayoría de nosotros no percibimos
porque nuestro cerebro las corrige y compensa.
De las células sensibles de la retina, los conos perciben el color, mientras que los
bastoncillos perciben el brillo. Entre los conos existentes (unos 6 millones) la mayoría
son sensible a colores próximos al verde, y el resto lo son al rojo y al azul. Esto es la
llamada teoría tri­estímulo y explica, razonablemente bien, la percepción de los colores
por los humanos.
.
1.5.­ Modelos de color.
Un modelo de color es un intento de explicar las propiedades, o el comportamiento de
los colores mediante un conjunto de parámetros. Dado que en la percepción del color
existe una fuerte componente subjetiva, ha habido intentos desde hace muchos años, de
establecer esta normalización. Ya los cartógrafos que acompañaron al capitán
Malaspina, en la expedición española a las islas Galápagos en el siglo XVIII
establecieron una tabla de colores “normalizados” para la confección de mapas. Pero
fue la aparición de la fotografía en color, en los años 1920­30 lo que empujó
definitivamente el intento, creándose la “Comisión Internationale pour l’Eclairage”
(CIE) que, en 1931, estableció el primer modelo de color. Este modelo define tres
colores primarios ficticios, (X, Y, Z) a partir de los cuales, por adición, se obtiene
cualquier otro color.
Dado un color, sean a,b y c sus componentes con relación a los primarios. Si se
normalizan, se obtienen las cromaticidades:
x = a/(a + b +c)
y = b/(a+b+c)
z=c/(a+b+c)
Como x+y+z = 1, se puede establecer un diagrama bidimensional sobre el cual se
rotulan las longitudes de onda : es el diagrama de cromaticidad CIE. Para un color
cualquiera, se definen sobre el diagrama la pureza, frecuencia dominante, color
complementario, etc
Figura 1.5.­ El modelo de cromaticidad CIE.

Dados tres colores cualesquiera sobre el diagrama CIE, definen un triángulo. Los
colores que se pueden obtener por combinación de esos tres (gama de colores) son los
incluidos dentro del área del triángulo.

Sin embargo, en Informática Gráfica el modelo CIE no se emplea: no es adecuado al
hardware disponible, es demasiado complicado, etc. En su lugar se emplean modelo
más sencillos que se derivan, en su mayoría, del desarrollo de la televisión en color, en
los años 1940:
Modelo RGB: es un modelo aditivo : los colores se forman por la adición de
cantidades variables, ∈[0,1] de los tres colores primarios Rojo, Verde, Azul. Es
el modelo empleado en la mayoría de los estándares gráficos : GKS, PHIGS.
OpenGL

Modelo CMY: es un modelo sustractivo, complementario del RGB. Empleado
en los dispositivos de copia sobre papel, en que el color se forma por reflexión
de la luz sobre una superficie pasiva (sustracción de componentes).

Modelo YIQ: empleado en la transmisión de señal de TV
Y = 0.3 R + 0.59 G + 0.11 B
X = B ­ Y ; Z = R ­ Y PAL (Sistema europeo)
I = f(X,Z) ; Q = g(X,Z) NTSC (Sistema estadounidense).
Dos colores que se perciban iguales, aunque correspondan a parámetros diferentes, se
llaman parejas metaméricas.

Los tres anteriores son modelo “hardware” en el sentido de que permiten reproducir
colores, pero no describen bien la percepción del color. El modelo HSV (Hue Saturation
Value) (hue=matiz), debido a Smith (1978) es subjetivo.Se basa en un hexágono de
color en cuyo centro se sitúa el blanco:
Figura 1.6.­ Hexágono de colores HSV

Cualquier color definido sobre este hexágono puede parametrizarse por dos números:

El tercer parámetro, la sombra (value) varía entre 0 (negro) y 1 (color puro). Si este
tercer parámetro lo añadimos al hexágono de color, tenemos una pirámide de color.
Sobre el lado de esta pirámide los valores de la sombra varían entre 0 (vértice) y 1
(triángulo de color) :
Figura 1.8.­ Pirámide de color.

Aparentemente, el ojo humano puede distinguir:
Unos 128 matices (H)
Unos 130 Tintes (S)
Entre 16 y 23 sombras (V)
Es decir, unos 380.000 colores distintos.

Figura 1.9.­ Taxonomía del modelo HSV.
1.6.­ Sistemas gráficos.­

Un sistema gráfico convencional responde al siguiente esquema:

Figura 1.10.­ Esquema de un sistema gráfico.

Se distinguen claramente tres partes: entrada, proceso gráfico y salida. Para cada una de
estas partes, existen dispositivos específicos y que están continuamente apareciendo:
ratones, “joysticks”, tabletas, muestreadores, procesadores gráficos, etc. Tal vez donde
más se esté dando la batalla es en los dispositivos de salida. Podemos distinguir los
siguientes:
a.­ Sobre pantalla (displays):
–Emisores:
»CRT, Panel de plasma. LEDs
–No emisores:
»Cristal líquido
b.­ Sobre papel (hardcopy):
–Trazadores (plotters)
–Impresoras:
»De impacto
»De chorro de tinta o inyección de cera
»Laser
–Sistemas fotográficos
1.6.1.­ Tubos de rayos catódicos.­

De los dispositivos de salida es el tubo de rayos catódicos (CRT) el que, por ahora,
ocupa el lugar preferente, fundamentalmente porque comparte la tecnología básica con
los tubos de los televisores y, por lo tanto, se benefician de la economía de escala de las
grandes series de producción.

Figura 1.11.­ Tubo de rayos catódicos (CRT)

El principio básico es un tubo de vidrio, en cuyo interior está hecho el vacío y que, en
un extremo, tiene un cátodo que, al calentarse, emite un chorro de electrones que puede
ser controlado y enfocado por una serie de bobinas situadas en el cuello del tubo. En el
otro extremo del tubo, que es más ancho (la pantalla) el vidrio está recubierto
interiormente por una o varias capas de fósforo que, al ser impactado por el chorro de
electrones, emite luz de un color que depende del tipo de fósforo. La posición del punto
de emisión y la intensidad de la luz emitida son gobernados por las bobinas
mencionadas antes.

Sobre estas bases tecnológicas, se pueden definir los siguientes conceptos:

Fluorescencia del fósforo: Es la luz emitida por los átomos al ser excitados por
el haz de electrones.

Fosforescencia: Es la luz emitida por los átomos una vez que dejan de ser
excitados por el haz.

Persistencia: Es el tiempo desde que se deja de emitir el haz hasta que la
fosforescencia decae al 10% de su valor inicial. En la práctica, entre 10 y 60
microsegundos.
Tasa de refresco de la pantalla: Es el número de veces por segundo que se
redibuja Se mide (incorrectamente) en Hz. Por encima de 50. Tasas inferiores a
30 producen sensación de parpadeo.­­­> Frecuencia crítica de fusión. »Las
tecnologías actuales permiten tasas de refresco superiores a 100.

Frecuencia de barrido horizontal: Es el número de líneas /sg que se trazan en
pantalla.

Ancho de banda: Es la frecuencia de conmutación del cañón de electrones. Es el
inverso del tiempo de dibujo de 1 pixel.
»Ejemplo: monitor de 1000 filasx1000 columnas a 60 Hz
»Ancho de banda teórico = 60 MHz

Los anchos de banda actuales están en el rango de 50 a 150 MHz. En la práctica,
hay que añadir los tiempos de retrazo vertical y horizontal, y el efecto de que los
pixels no son “puntos”. La técnica de “entrelazado” permite disminuir estos
valores.

El color en los CRT’s se puede generar por penetración o por máscara. En el método de
penetración, existen varias capas de fósforo de distintos colores superpuestas. La
intensidad del haz de electrones determina el número de capas excitadas y, por tanto, el
color final:

Figura 1.12.­ Color por penetración en un CRT.
En el método por máscara, el interior del tubo está recubierto por puntos de fósforos
rojos, verdes y azules, formando “pixels” de tamaño suficientemente pequeño como
para que el ojo los perciba como un único punto cuyo color es la mezcla aditiva de los
tres.

El haz de electrones, en este caso, es triple. Cada uno es generado por un cañón
independiente. Concéntrica a la superficie del tubo, por su interior, se dispone una
“máscara”, consistente en una placa de metal perforada de forma que cada punto de
cada color es excitado, solamente, por su correspondiente cañón de electrones. En la
tecnología más empleada, los tres cañones de electrones están en línea (Precision in
Line, PIL) y es la misma que se utiliza en los televisores de color.

A pesar de que, como se dijo, los CRTs son los dispositivos de salida gráfica más
extendidos, no podemos olvidar que se trata de una tecnología muy antigua y, sobre
todo, consumidora de energía: si no se calienta el cátodo no hay emisión de electrones
y, por consiguiente, no hay imagen. Es habitual que en un computador personal
consuma más energía el monitor que el resto del equipo (excepción hecha de la
impresora).

1.6.2.­ Pantallas de cristal líquido (LCD)
El “cristal líquido” es un material formado por moléculas cristalinas de gran longitud,
dispuestas en espiral, de forma que al ser atravesadas por luz polarizada desvían el
plano de polarización 90º. Si se somete a los cristales a un campo eléctrico, se alinean
en la misma dirección y pierden su efecto polarizador.

Las pantallas de cristal líquido constan de 5 capas:
–Vidrio polarizador vertical.
–Rejillas verticales
–Cristales líquidos
–Rejillas horizontales
–Vidrio polarizador horizontal

Se suele añadir una capa emisora de luz, o reflectante de la luz ambiental. En ausencia
de tensión, la capa de cristales líquidos desvía el plano de polarización 90º y, por lo
tanto, la luz de la capa emisora, o reflectante, pasa y el punto se “ve”. Al aplicar tensión
a ese punto, a través de las rejillas horizontales y verticales, no se desvía el plano de
polarización y el punto no se “ve”.

Los paneles LCD de matriz activa de puntos tienen un transistor en cada punto (x,y),
para aumentar la velocidad de conmutación y poder obtener estados intermedios. Los
cristales pueden colorearse para obtener pantallas LCD de color. El transistor se emplea
también para mantener al pixel en un estado dado y, por tanto, no tienen que ser
refrescados continuamente. Existen pantallas de LCD de matriz activa con resoluciones
de 1024x800 en 15”.
La pantallas de LCD competirán en un futuro próximo con los CRT. Sus principales
inconvenientes son el precio (disminuyendo), el poco ángulo de visión y el desgaste con
el uso. Pero su principal ventaja es su poco consumo energético y, por ello, todos los
equipos portátiles utilizan este tipo de pantallas.
1.6.3.­ Pantallas de plasma.­

Tienen un principio de construcción muy parecido a las de las pantallas de cristal
líquido. Constan de 5 capas:
–Vidrio delantero
–Electrodos horizontales
–Capa de gas inerte (neón o xenón)
–Electrodos verticales
–Vidrio trasero

Un pixel se ilumina al aplicar una tensión entre los electrodos que lo definen. Si se
añade una capa de puntos de fósforo RGB se pueden obtener colores. La tecnología
actual llega a pantallas de plasma de 32”, de 1240x1024, con precios todavía muy
similares a las de las pantallas de LCD. Pero es posible que compitan favorablemente
con ellas en un futuro próximo. Su mayor inconveniente es el alto consumo energético
superior, incluso, a las pantallas convencionales de rayos catódicos.

1.6.4.­ Otros dispositivos de entrada, salida.

Solamente haremos una enumeración de algunos dispositivos de entrada o salida
también disponibles en el mercado. Entre  los dispositivos de entrada podemos mencionar:
Lápiz óptico.
Pantalla sensible al tacto
Tableta gráfica.
Ratón
Joystick
Trackball, etc.

Y entre los dispositivos de salida sobre papel, debemos mencionar:
Impresora de impacto
Impresora de chorro de tinta.
Impresora de sublimación de cera
Impresora laser:
–Monocroma
–Color
Trazadores (plotters) de tinta o electroestáticos, etc.

Algunas características que se deben tener en cuenta en este tipo de dispositivos de
salida sobre papel son el tamaño del punto, la direccionabilidad (ppi), la resolución
(Número de líneas por pulgada distinguibles), el tamaño del papel: A4, A3, A2, A1, A0,
etc.
1.7.­ Monitores de video.

Podemos distinguir dos grandes familias de monitores de video: los de refresco
vectorial, caligráficos o vectoriales y los de rastreo.
Los tubos de refresco vectorial o caligráficos emplean tubos monocromáticos o de color
por penetración. La unidad de representación es la línea (vector)

Figura 1.13.­ Monitor vectorial

En los tubos de rastreo (raster), la unidad de representación es el punto (pixel). La
pantalla se “explora” en líneas horizontales del mismo número de puntos. La resolución
discreta produce el efecto de alias en las líneas oblicuas.

Figura 1.14.­ Monitor de rastreo.­
1.8.­ Generadores de imágenes gráficas.­

Con todos estos componentes, un generador de imágenes gráficas responde,
normalmente, al siguiente esquema:

Figura 1.15.­ Generador de imágenes gráficas.

Normalmente, las imágenes se generan en base a un modelo del universo del discurso
que es utilizado por la aplicación concreta (simulador, visualizador, etc.). Con la ayuda
de la biblioteca gráfica (API), y a efectos de portabilidad, las imágenes se generan sobre
un dispositivo gráfico normalizado, o “virtual” que es, posteriormente, traducido a
código sobre un dispositivo gráfico real (pantalla, trazador, etc), con una serie de
parámetros dependientes de máquina. Este dispositivo real tiene la arquitectura típica
de la siguiente figura:

CPU->Interprete de comandos-> Memoria de Imagen-


>Interprete de memoria de imagen->Generador de
imagen

Figura 1.16.­ Dispositivo gráfico real.

Los comandos que genera la API gráfica pueden ser:
Funciones de control y configuración
Primitivas de dibujo
Ajuste de atributos:
Tipo de línea
Color
Tamaño de texto,
......
De los componentes del dispositivo gráfico real de la figura 1.16, tal vez el más
importante es la memoria de imagen que es la que, en definitiva, almacena una
representación interna de la imagen . Esta memoria de imagen puede ser de dos tipos:

Lista de display : almacena todos los atributos y primitivas necesarios para
reproducir la imagen. Se empleaba, básicamente, en los sistemas de refresco
vectorial y dentro de este tipo de memorias de imagen también se desarrollaron
algunas alternativas:
Listas jerarquizadas.
Listas estructuradas.
Listas lineales simples.

Memoria gráfica o frame buffer.­ 

Es una representación virtual en memoria de los gráficos que han de mostrarse por pantalla
Cualquier escritura supone una modificación inmediata de la imagen en la pantalla
Evita problemas en la interacción entre el ordenador y el dispositivo de video
Guarda en 8, 15, 16 ó 24 bits la información de cada pixel, dependiendo de la profundidad de 
color que se requiera

Es el tipo de memoria de imagen empleada
en los sistemas de rastreo. Dada su importancia, volveremos más adelante sobre
ellos. En sistemas monocromos, la memoria gráfica también se llamaba bitmap.
Un par de conceptos que conviene aclarar en este contexto son:

Ventana (window): Superficie, normalmente rectangular, que delimita la parte
de la escena a representar.

Puerto de visión (viewport): Superficie física de la pantalla, o dispositivo de
salida, que define la zona sobre la que se va a visualizar la ventana.
Ambos conceptos resultan algo confusos con la aparición de Windows y X, que los
utilizan de forma algo distinta. A veces se usa el término “Ventana en pantalla”
(Display window) para referirse a la ventana que abre el interfaz gráfico de usuario
(GUI).
1.9.­ Sistemas de refresco vectorial.­

En estos sistemas, prácticamente obsoletos, la imagen se construye por dibujo repetido a
una tasa fija (del orden de 30 veces por segundo, o 30 Hz) del contenido de la memoria
de imagen, que es del tipo lista de display:

Figura 1.17.­ Sistema de refresco vectorial.

En este tipo de sistemas, el monitor es caligráfico. Esto los hace muy adecuados para la
generación de polilíneas pero muy poco aptos para funciones de relleno de áreas. Los
textos (caracteres) se implementan también como polilíneas. Los colores, de existir, se
implementan por el método de penetración.
Estos sistemas vectoriales están en franca desaparición del mercado. Su lugar está
siendo ocupado por los sistemas gráficos de rastreo, de mucho menor coste.
1.10.­ Sistemas gráficos de rastreo.­

En estos sistemas, la imagen se construye como una serie de líneas horizontales, cada
una de un número fijo de puntos (pixels), almacenados en la memoria gráfica. Dicha
memoria gráfica (frame buffer) se dispone de forma que representa la superficie del
display, en filas­columnas. En ella, cada pixel almacena un valor proporcional al brillo.
La memoria gráfica ha de ser de doble puerto, puesto que ha de ser accedida,
simultáneamente, por la CPU y por el generador de imagen.
Así, por ejemplo, un display de 1000x1000, refrescado a 60 Hz, con 8 bit/pixel,
necesitaría un tiempo de acceso de 2 ns/bit, muy por debajo de lo que la
tecnología actual permite. Por tanto, hay técnicas para reducir este tiempo:
VRAM (Texas), registros cache, etc.

El esquema general de un sistema de rastreo es el siguiente:

Figura 1.18.­ Sistema gráfico de rastreo.

Para generar el color en estos sistemas de rastreo, se emplean varios bits por píxel. Por
ejemplo, si se usa un bit por píxel, solamente se podrá generar un color (bit = 1) o
ninguno (bit = 0). En general, si se emplean N bits por píxel, se dice que tenemos un
sistema de N planos de color.

Si se establecen tres subconjuntos de planos y cada uno de ellos se usa para excitar a un
componente RGB, tenemos un color por planos que da lugar a 2N colores diferentes.
Es un modelo muy simple, pero muy poco flexible. La gama actual de planos va de 8
(256 colores) a 24 (sistemas de color verdadero).

Con un sistema de 1024x1024 pixels, con color verdadero (4 bytes por píxel),
necesitaremos una memoria gráfica de 4 Mb, lo cual ya no es descabellado
actualmente.
Una alternativa a los sistemas de color por planos, es usar el contenido del frame buffer
para direccionar una tabla de colores (look up table, LUT) que actúa sobre los valores
RGB. Cambiando la LUT se cambian los colores sin actuar sobre la memoria gráfica:

Figura 1.19.­ Uso de una tabla de colores.

Con una LUT, si la memoria gráfica tiene N planos hay un máximo de 2N colores
diferentes, como es obvio. Pero si la anchura de la tabla es mayor de N, podremos tener
una paleta de más colores, de los cuales solamente 2N pueden ser representados
simultáneamente. Por ejemplo, si N = 8 y la anchura de la tabla es 12, tendríamos una
paleta de 2048 colores de los cuales podríamos representar 256.

En algunos sistemas de rastreo, se puede tener más de una memoria de rastreo y
conmutar entre ellas, lo cual permite hacer animaciones en tiempo real:

Figura 1.20.­ Un sistema de animación en tiempo real.
1.11.­ Ficheros gráficos.­

Existen una gran variedad de formatos de ficheros para almacenar gráficos. Por
desgracia, no son compatibles entre sí. Además, con cierta frecuencia aparecen nuevos
formatos, a medida que las aplicaciones o los avances tecnológicos van creando la
necesidad. En este apartado, vamos a intentar cumplir los siguientes objetivos:
­     Definir, categorizar y sintetizar los aspectos más críticos en el diseño de
formato de ficheros gráficos.
– Identificar las características que hacen unos formatos mejores que otros.
– Dar una panorámica general de los formatos existentes.
– Despertar alguna curiosidad sobre el tema.

Todos los ficheros gráficos pueden clasificarse en unas pocas categorías:
Ficheros bitmap o de rastreo: son los más comunes. Una imagen de mapa de
bits es, simplemente, una matriz de puntos, llamados pixels o "picture elements". Cada punto 
de la imagen se almacena como un número que representa el color o valor de pixel de ese 
punto. En las imágenes mocromas, por ejemplo, el valor de pixel es 0 (Blanco) o 1 (negro). 
En las imágenes con escala de grises, o con colores, el esquema es algo más complicado.
Un problema que se plantea en los ficheros de mapa de bits es la ordenación de los pixels, 
que forma parte del formato gráfico. Por ejemplo, se pueden almacenar fila a fila, haciendo 
corresponder una fila de pixeles de la imagen con una fila de la matriz a almacenar. En otros 
casos, se almacena por planos, bit a bit. A veces, se almacena por planos y por filas. En otros 
casos, se almacena por filas pero entrelazadas, es decir, se almacenan las filas pares y luego 
las impares (por ejemplo). Todas estas decisiones de diseño forman parte del formato del
fichero y deben estar suficientemente claras.

Ficheros vectoriales: es un método totalmente diferente, y más antiguo. En vez
de almacenar los valores de los pixels, se almacenan primitivas de alto nivel que
permiten reconstruir la imagen. Un posible ejemplo sería:

Mueve a (100, 0) ; Color azul ; linea a (100, 100) ; color rojo; ....
Los ficheros vectoriales son, lógicamente, mucho más compactos que los mapas
de bits. Pero, desgraciadamente, solamente son adecuados para describir
imágenes muy simples que puedan describirse como un "dibujo", y no como una
fotografía.

Metaficheros: es un paso adicional sobre los ficheros vectoriales. Además de
datos de dibujo, pueden contener primitivas de creación mucho más sofisticadas,
como rellenar una porción de la imagen, sombrear otra, etc. Suelen ser muy
dependientes del software sobre el que se apoyan. La idea original se remonta a
la norma GKS, y fué luego adoptada en PHIGS, en Windows, etc.
Ficheros de impresión: las impresoras actuales son, de hecho, dispositivos
gráficos bastante sofisticados y la forma en que se envían los datos para
imprimir es, de hecho, una especificación de fichero gráfico. Existen dos
alternativas:

Formatos de texto extendidos: "empotran" la información de los gráficos
dentro de los datos alfanuméricos convencionales. Por ejemplo, en el PCL de
Hewlett Packard las secuencias de escape introducen elementos gráficos dentro
de la página.

Lenguajes de descripción de páginas: son lenguajes de nueva creación que
definen el contenido de una página a imprimir. El primero de estos lenguajes
que tuvo cierto éxito fué el Postscript de Adobe , derivado del lenguaje FORTH
(era un lenguaje basado en pila, de 0 direcciones, en el cual todas las operaciones
se hacían sobre la cima de una pila de ejecución). El PDF, de Acrobat, parece
que se ha impuesto sobre el Postcsript y recientemente entra en liza el lenguaje
de Microsoft.

Además en un fichero gráfico sea del tipo que sea, se suelen almacenar datos que no lo
son : texto, anotaciones, etc. En cualquier caso, el diseño de un formato gráfico se basa,
en parte, en el hardware al cual va dirigido : memoria, velocidad, etc (Fig 1.20)
1.11.1.­ Algo de historia de los ficheros gráficos.­

Es claro que la creación de imágenes ha sido una actividad tan antigua como la
humanidad. Pero los métodos para conservar y reproducir las imágenes están ligados a
la aparición de formas de comunicación escrita, sobre soporte duro. Por lo tanto, nos
centraremos en los métodos relacionados con la historia de la Informática. Así, podemos
hablar de:

Formatos para ficheros de impresora:
–Chromalink, DDES (Digital Data Exchange Standard), Freeway, HP­PCL
(printer Control Language), MIF, Adobe Postscript, Acrobat PDF
Para Plotters:
–907PCI, DMP, HP­GL, HP­GL/2

Fotografía : La fotografía digital tiene, todavía, un largo trecho que recorrer. Un
negativo en color de 35 mm, analógico, tiene una resolución de unos 12 millones
de pixel. Los dispositivos digitales de esa resolución son enormemente caros.
Una ventaja de la fotografía digital es que no hace falta un proceso químico
adicional. Además, se pueden aplicar algoritmos de tratamiento de imagen con
facilidad.

Para las fotografías digitales creadas con scanners, el standard es TIFF, que es en
realidad un conjunto muy amplio de posibles formatos. Para fotos de cámaras
digitales, el formato standard, pareción en su momento que iba a ser el
PhotoCD, de Kodak,. Pero, como tantas otras veces, despareció y está siendo
sustituido por otros (JPEG, GIF, etc. ).

Otra posible forma de clasificación, es atendiendo al criterio de la funcionalidad para la
que fueron creados los ficheros gráficos. Así podremos distinguir
GUI: BMP (Windows), CUR, ICO, UIL, X, TGA,...

Aplicaciones:
De rastreo: ADRG, DDIF, GIF, IFF,IMG,PCX,JPEG,...
Geométricos: ClarisCAD, Windows, Metaficheros, WPG, AutoCad
Mixtos: CGM, EPS, IFF, WPG, Postscript,SPDL,...

Para animación, existen algunos formatos desarrollados:
–GRASP, MPEG, SFIL, SLD, Tango, ...

Existen, además, un cierto número de formatos de almacenamiento de datos pensados
para la generación de gráficos:

De diseño gráfico, arquitectura, etc: DXF, IGES, STEP
De modelado: AMF, 3DGF, ISIF, etc
Geográficos: ARC, DLG, GIRAS, GBF, etc
Científicos: BUFR, FITS, GF3, HDS, SFF, SFDU, VIFF, etc
Medicina: AVS, VFF, ..

1.11.2.­ Color en ficheros gráficos.­

Según sea el modelo de color que se emplee, son necesarios tres (RGB) o cuatro
(CMYB) parámetros para representar el color. Algunos formatos utilizan un modelo
analógico para cada parámetro: IGES, IIF, Postscript, RIB.. No obstante, la mayoría de
los formatos gráficos usan un modelo digital y por tanto limitan el número de valores.
Este límite depende normalmente de las aplicaciones:

Diagramas : 16 colores
Escenas “naturales” : 256
Imágenes médicas : 4096
Fotos digitales: 16384
Imágenes “realistas” : 65536 o más

Cada uno de los formatos que admiten color tienen una limitación en el número de
bits/pixel empleado. Si se usa un valor de color directamente como intensidad para
cada parámetro (RGB), se dice que es un sistema de color verdadero (true color).
Algunos formatos que emplean este tipo de color son AVS, IGES, JFIF, JPEG,
MacPaint, etc Por el contrario, si se usan los valores de color como índice a una tabla de
colores, se dice que es un sistema de color directo. Los formatos que lo emplean son
CUR, DXF, FLI, HP­GL, etc. La mayoría de los formatos soporta ambos tipos de color,
y algunos formatos permiten el uso de más de cuatro parámetros por color. Tal es el
caso de JBIG, JPEG, RLE, etc
1.12.­ Normas.­
Como es lógico, toda esta variedad de formatos diferentes esconden también
intereses comerciales. No obstante, existen movimientos a favor de imponer algo de
racionalidad en este mundo: normalizar. En la figura 1.22. se da un pequeño esquema
de todas las organizaciones interesadas en las diferentes normas y en la figura 1.23 se
muestran algunos de los comités específicos.

Figura 1.22.­ Organizaciones internacionales de normalización.
Figura 1.23.­ Algunos de los esfuerzos de normalización en vigor.

1.13.­ Compresión.­

Para reducir el tamaño de los ficheros gráficos, tanto para almacenamiento como para
envío es fundamental el empleo de alguna técnica de compresión de datos. Antes de ver
las diferentes técnicas existentes, es conveniente establecer algunas definiciones:
Razón de compresión = Nº bytes originales/Nº bytes comprimidos. Se suele expresar
como N:1 (2:1, 10:1, ...)
La compresión es sin pérdidas si al descomprimir se obtiene el fichero original idéntico.
En caso contrario es con pérdidas (lossy). No obstante, como veremos, las pérdidas en
los ficheros gráficos (imágenes) normalmente no son detectables por el ojo humano.
Compresión en tiempo real , si a medida que la imagen se va recibiendo se puede ir
descomprimiendo. En realidad, esta es una definición muy cambiante.

Entropía : es una medida, definida en teoría de la información, que da idea del grado de
aleatoriedad de los datos. Los datos perfectamente aleatorios no pueden ser
comprimidos. De hecho, todos los algoritmos de compresión se basan en la presencia de
algún ordenamiento, implícito o explícito, presente en los datos.
Las metodologías de compresión existentes pueden clasificarse en:

1.­ Transformar un conjunto de datos en otro equivalente pero de menor tamaño,
reduciendo bien el numero de datos o el tamaño de los mismos : Métodos de
correspondencia (map).
2.­ Reducir la precisión de los valores individuales : métodos de cuantificación.
3.­ Codificar cada dato de forma que se minimice el número total de bits :
métodos de codificación.

1.13.1.­ Compresión por transformación.­

La idea básica es reducir el tamaño del conjunto de datos aprovechando la repetición de
patrones. Un “patrón”, en este contexto, es una secuencia repetitiva de items. Por tanto,
estos métodos también se llaman de búsqueda de patrones.

Según sea el tipo de procesamiento que se hace sobre los datos, tenemos las diferentes
categorías de compresión basadas en esta técnica (figura 1.23)
Métodos de Búsqueda 1D:

Codificación “Run­Length” : las secuencias de valores idénticos en una lista
pueden reemplazarse por “dato­longitud”

»Ej : AAAAAAAAA ­­­­­­­­­>A9
Algunos formatos que utilizan esta técnica son CCITT Fax3, GEM/IMG, HDF,
PCX, Postscript, TARGA (9,10,11,32,33) y TIFF (2).

Codfificación LZW: Debida a Lempel­Ziv­Welch (1985). Utiliza la repetición
de secuencias de valores no idénticos para asignarles un código y almacenarlas
codificadas, juntamente con el “libro de códigos” (Code­Book)
»Ej : 5 23 7 12 5 23 7 6 12 5 23 7 6 12 .....

•La secuencia 5 23 7 se repite. Se le asigna codigo C1
•La secuencia 6 12 se repite. Se le asigna codigo C2 ...
Algunos formatos que usan este método son, entre otros, GIF, Postscript,
TIFF(5). El GIF, que en un principio tuvo un enorme éxito, dejó de usarse a raíz
de una demanada de propiedad intelectual interpuesta por Unisys.

Metodo de Diferenciación 1D

Este es un método que trata de reducir el tamaño de los conjuntos de datos
almacenando, para cada dato, su diferencia con algún otro (normalmente el
anterior). Para conjuntos de datos con variaciones suaves, esto puede suponer un
ahorro considerable.

»Ej : 34 37 39 45 36 43 ..
» 34 3 2 6 ­9 7 ...

Algunos formatos que los usan: JPEG, LANDSAT, MPEG,
Las razones de compresión que se obtienen con los métodos 1D son:

–Run­Length : entre 2:1 y 5:1
–LZW : entre 2:1 y 9:1
–Diferenciación : entre 1.5:1 y 3:1

Métodos de Búsqueda 2D

El principio básico es el mismo que en el caso 1D, pero tratando los datos como
conjuntos de dos dimensiones.

La codificación por fractales (Barnsley 93), trata de reconocer patrones 2D en
la imagen y encontrar un conjunto de datos simple que pueda dar lugar a los
datos originales a través de transformaciones simples. La compresión se logra
entonces almacenando el conjunto de datos simple y el conjunto de
transformaciones.

Es un método que puede ser muy costoso en tiempo de cálculo, pero puede
llegar a lograr razones de compresión de 100:1

La diferenciación 2D es una extensión. más o menos trivial, del caso 1D. Es
usada por los formatos JPEG, MPEG y otros, y logra unas razones de
compresión de hasta 1:3.

Métodos de Búsqueda 3D.­

La extensión a 3D (sucesión de patrones 2D) de los métodos 2D es bastante directa. Los
métodos de diferenciación, por ejemplo, funcionan evaluando las diferencias entre una
imagen (frame) y la siguiente (inter­frame compression). Si , además, esta información
de cada frame es codificada con algún método 1D, tenemos una gran gama de posibles
métodos.

MPEG, por ejemplo, usa una diferenciación pixel a pixel entre frames.
Análogamente, se pueden usar métodos como DCT por frame, combinados con
diferenciación

Método de transformaciones.­

La codificación basada en transformaciones matemáticas explota la idea de que existen
algunas transformaciones (FFT,...) que son reversibles y que, al aplicarlas, reducen el
tamaño de los datos. La más empleada de estas es la DCT (Digital Cosine Transform),
variante de la FFT, debido a la existencia de algoritmos muy rápidos para su cálculo. El
inconveniente es que la transformación inversa pierde información por dos factores:
Los valores cos() no se pueden calcular con precisión infinita.
Errores de redondeo acumulados.
La DCT será empleada por el formato ACATS(HDTV en USA), y es empleado
por JPEG y MPEG

Métodos de precisión reducida

Aunque no hay ningún formato que utilice este tipo de métodos en exclusiva, si se usan,
implícitamente, en algunos (JPEG). La idea básica es que en alguna información de tipo
gráfico existen datos que son más precisos de lo que el ojo humano puede detectar (por
ejemplo, en los scanners). Por ello, se puede reducir la precisión (p.e., limitando el
número de niveles de gris), sin que ello suponga una pérdida apreciable de información.
No obstante, es obvio que estos son métodos “lossy”.

Métodos de minimización.

La base de estos métodos consiste en reducir el número de bits necesarios para codificar
el conjunto de datos. En algunos casos, esto da lugar a códigos de longitud fija y en
otros a códigos de longitud variable. En formatos gráficos se emplean tres métodos
basados en esta técnica:

Códigos de desplazamiento: si el rango de variación de los datos no es muy
amplio, es posible que puedan representarse con menos bits de los originales. Ej
: LANDSAT utiliza un código de diferenciación 1D, en el cual, la mayoría de las
diferencias entre un pixel y el siguiente están entre ­7 y +7. Por tanto, se
codifican con 4 bits. Se obtienen razones de compresión de hasta 3:1
Códigos de Huffman, asignan a cada dato un código de longitud que depende
inversamente de la frecuencia de aparición del mismo. JPEG, MPEG, TARGA
32, etc. razones de compresión de 2:1

Códigos aritméticos: usando la frecuencia de aparición de cada dato, se generan
valores que corresponden a secuencias de datos. (JPEG). Método patentado en
1990.

Combinación de métodos de compresión
Algunos esquemas de compresión combinan dos o más de los métodos anteriores, para
conseguir mayores tasas de compresión. La secuencia típica se muestra en la figura
1.24:

Figura 1.24.­ Combinación de métodos

Formato JPEG

El standard JPEG define una batería de formatos gráficos para imágenes de rastreo de
color. Incluye cuatro formas distintas de operación:
»1.­ Compresión predictiva, sin pérdidas (es un método de diferenciación).
»2.­ Compresión secuencial, DCT, fila a fila
»3.­ Compresión progresiva, DCT, sobre la imagen completa
»4.­ Compresión jerárquica.

Todo ello da lugar a un total de 29 posibles métodos de codificación. Como es obvio, el
método usado forma parte del fichero gráfico a efectos de decodificación. Este método
se está convirtiendo en el standard de hecho en aplicaciones de imágenes.
Como regla general en JPEG, a mayor tasa de compresión mayor es la pérdida de
información.

Formato MPEG

Usa básicamente los mismos esquemas de compresión que JPEG, pero está diseñado
para secuencias de video. Difiere de JPEG en los siguientes puntos:
Requiere el uso del modelo de color YCrCb (CCIR 601­1)
Requiere el uso de códigos de Hoffmann.
No codifica cada frame como una entidad separada, sino que codifica solamente
la diferencia con los anteriores (inter­frame)

MPEG también define un esquema de compresión para audio. Además, define
un procedimiento que permite mezclar, en una única corriente de datos video y
audio, hasta un total de 32 señales de audio y 16 de video simultáneas.
(multiplexing)

Está diseñado para acomodar señales sincronizadas de video y audio en un
ancho de banda de 1.5 Mbits/sg, a expensas de exigir un procesador de cierta
potencia para poder hacer la decodificación en tiempo real

Formato PNG

Es un formato gráfico basado en un algoritmo de compresión sin pérdida para bitmaps no 
sujeto a patentes.
Solventar deficiencias del formato GIF como la limitación de 8 paletas de 256 colores.
Su versión animada se llama MNG.
Soporta transparencias
Es uno de los mejores formatos para almacenar una imagen fielmente.

You might also like