Mostrar/Ocultar TOC

Tabla de Contenidos del Libro
Prefacio
Capítulo 1: Introducción
Capítulo 2: Fundamentos
Capítulo 3: Mapas de Bits
Capítulo 4: Archivos Vectoriales
Capítulo 5: Metaarchivos
Capítulo 6: Dependencias de Plataforma
Capítulo 7: Conversión de Formatos
Capítulo 8: Trabajando con Archivos Gráficos  
Capítulo 9: Compresión
Capítulo 10: Multimedia
Formato: Adobe Illustrator
Formato: Adobe Photoshop
Formato: Atari ST
Formato: AutoCAD DXF
Formato: Autodesk 3D Studio
Formato: BDF
Formato: BRL-CAD
Formato: BUFR
Formato: CALS Raster
Formato: CGM
Formato: CMU
Formato: DKB
Formato: Dore Raster
Formato: DPX
Formato: Dr. Halo
Formato: DVM Movie
Formato: PostScript Encapsulado
Formato: FaceSaver
Formato: FAX
Formato: FITS
Formato: FLI
Formato: GEM Raster
Formato: GEM VDI
Formato: GIF
Texto en Inglés del Capítulo 1
Imagen del CD-ROM de la 2° Edición
Imagen del CD-ROM de la 1° Edición (Torrent y HTTPS)
Versión Hipertexto del CD-ROM de la 2° Edición (En Inglés)
Versión Hipertexto del CD-ROM de la 2° Edición (En Ruso)

Capítulo 1 — Introducción

Capítulo 1 — Introducción

Un formato de archivo gráfico es un formato en el que datos gráficos —datos que describen una imagen gráfica— se almacenan en un archivo. Los formatos de archivo gráficos han surgido de la necesidad de almacenar, organizar y recuperar datos gráficos de una manera eficiente y lógica. Suena como una tarea sencilla, ¿no es verdad? Pero hay mucho por debajo de las cubiertas, y eso es de lo que hablaremos.

Los formatos de archivo pueden ser complejos. Por supuesto, ellos nunca parecen complejos hasta que estás intentando de hecho implementar uno en software. También son importantes, en maneras que a menudo no son obvias. Encontrarás, por ejemplo, que la manera que un bloque de datos se almacena es usualmente el factor individual más importante que gobierna la velocidad con la que este puede leerse, el espacio que ocupa en disco, y la facilidad con la que puede accederse por una aplicación. Un programa simplemente debe guardar sus datos en un formato razonable. De otra manera, corre el riesgo de considerarse inútil.

Prácticamente cada aplicación mayor crea y almacena alguna forma de datos gráficos. Incluso los editores en modo de caracteres más simples permiten la creación de archivos que contienen dibujos de líneas hechos a partir de caracteres ASCII o secuencias de escape de terminal. Las aplicaciones basadas en interfaces gráficas de usuario (GUI), las cuales han proliferado en años recientes, ahora necesitan soportar formatos híbridos para permitir la incorporación de datos de mapa de bits en documentos de texto. Los programas de bases de datos con extensiones de imagen también te permiten almacenar datos de texto y de mapa de bits juntos en un único archivo. Además, llos archivos gráficos son un mecanismo de transporte importante que permite el intercambio de datos visuales entre aplicaciones de software y sistemas de computadora.

Actualmente existe una gran cantidad de trabajo que se está realizando en sistemas de archivos basados en objetos, en donde un "archivo de datos" puede aparecer como un clúster u otros elementos de otra manera no relacionados y el que incorpore datos gráficos es tan probable como que no lo haga. Claramente, los esquemas de clasificación tradicionales necesitan una revisión. Sin embargo, una enorme cantidad de datos gráficos permanecerá accesible solo en virtud de nuestra habilidad de decodificar y manipular los archivos que encontremos entre nosotros hoy en día.



Los Fundamentos

Antes de que exploremos los detalles de cualquier formato de archivo particular, primero necesitamos establecer algún conocimiento general básico y terminología. Ya que estamos asumiendo que tienes un conocimiento general funcional sobre computadoras y conoces un poco de programación, comenzaremos con algunas definiciones. Encontrarás que hemos simplificado y condensado alguna terminología encontrada en referencias estándar de gráficos de computadora. Los cambios, sin embargo, siempre reflejan el uso moderno. (Encontrarás una discusión sobre nuestras razones fundamentales, o rationale, en el Prefacio.)

En lo que sigue, estaremos hablando de la salida de un proceso de gráficos de computadora, o la producción de un trabajo gráfico por un programa. No queremos parecer antropomórficos aquí. El autor del trabajo es usualmente humano, por supuesto, pero su contribución es la entrada desde el punto de vista de este libro. Estamos principalmente interesados sobre la porción de la salida que viene de un programa y se guarda en un archivo. Ya que el programa es lo último que "toca" los datos antes de guardarlos en disco o cinta, decimos que un trabajo gráfico es producido por un programa, en lugar de por un ser humano. (En este caso, nos referimos a la forma en la que los datos se almacenan, y no su significado o contenido.)

Gráficos y Gráficos de Computadora

Tradicionalmente, los gráficos se refieren a la producción de una representación visual de un objeto real o imaginario creado por métodos conocidos por los artistas gráficos, tales como escritura, pintura, impresión y aguafuerte (etching). El resultado final del proceso de producción gráfica tradicional eventualmente aparece en una superficie 2D, tal como papel o un lienzo. Los gráficos de computadora, sin embargo, han expandido el significado de gráficos para incluir cualesquiera datos pensados para desplegarse en un dispositivo de salida, tal como una pantalla, impresor, plotter, grabador de filme, o videocinta.

Nota lo que ha pasado aquí. Los gráficos solían referirse a la salida en cuestión, algo que pudieras ver. Ahora significa solo algo pensado para desplegarse, o algo pensado para convertirse en salida. Esta distinción puede parecer tonta a los usuarios con experiencia, pero hemos visto artistas nuevos a las computadoras luchar con esto. ¿Dónde está la salida gráfica de un programa de pintura? ¿Aparece a medida que compones algo en la pantalla? ¿Dónde está la representación cuando escribes tu trabajo a un archivo? ¿Aparece por primera vez cuando otro programa la despliega en una pantalla o papel?

En la práctica de los gráficos de computadora, la creación de un trabajo a menudo está separada de su representación. Una manera de explicarlo es que un proceso de gráficos de computadora produce salida virtual en memoria, o salida persistente en un archivo en un medio permanente, tal como un disco o cinta. En otras palabras, aun cuando un programa ha escrito un archivo lleno de algo, la salida todavía no existe desde un punto de vista tradicional porque nada se ha desplegado en ningún lugar. Así que decimos que los datos gráficos son la salida virtual de un programa, desde la cual una representación del trabajo puede ser construida, o puede ser reconstruida a partir da los datos gráficos persistentes guardados en un archivo, posiblemente por el mismo programa.

Renderizado e Imágenes

En el interés de la claridad, la mayoría de gente hace una distinción entre creación y renderizado (a veces también llamado realización). Tradicionalmente, una imagen es una representación visual de un objeto del mundo real, capturado por un artista a través del uso de algún tipo de proceso mecánico, electrónico o fotográfico. En los gráficos de computadora, el significado de una imagen ha sido ampliado de cierta forma para referirse a un objeto que aparece en un dispositivo de salida. Los datos gráficos son renderizados cuando un programa dibuja una imagen en un dispositivo de salida.

También escucharás ocasionalmente a gente hablar del pipeline de producción de gráficos de computadora. Esta es una serie de pasos involucrados en definir y crear datos gráficos y de renderizar una imagen. En un extremo del pipeline de producción está un ser humano; en el otro extremo está una imagen en papel, pantalla, u otro dispositivo. La Figura 1-1 ilustra este proceso.



Archivos Gráficos

Para los propósitos de este libro, los archivos gráficos son archivos que almacenan cualquier tipo de datos gráficos persistentes (al contrario de datos de texto, de hoja de cálculo, o datos numéricos, por ejemplo), y que están pensados para eventualmente renderizarse y desplegarse. Las varias maneras en las que estos archivos están estructurados se llaman formatos de archivo gráficos. Examinaremos varias categorías de formatos de archivo gráficos más tarde en este capítulo.

La gente a veces habla de renderizar una imagen a un archivo, y esta es una operación común y perfectamente válida. Para nuestros propósitos, cuando una imagen se renderiza a un archivo, el contenido de ese archivo se convierte en datos gráficos persistentes. ¿Por qué? Simplemente porque los datos en el archivo ahora necesitan ser re-renderizados como datos gráficos virtuales antes de que puedas ver cómo lucen.

Aunque la imagen se convierte una vez más en datos gráficos en el proceso de renderizarlos a un archivo, ahora es una vez más meros datos. De hecho, los datos pueden ser ahora de un tipo diferente. Esto es lo que sucede en operaciones de conversión de archivos, por ejemplo. Una imagen almacenada en un archivo del formato tipo 1 se renderiza (por un programa de conversión) a un segundo archivo de formato tipo 2.

Figura 1-1: El pipeline de producción de gráficos
FIGURA 1-1: El pipeline de producción de gráficos

Cuáles Archivos Gráficos Están Incluidos

Aunque hemos tratado en este libro de apegarnos a formatos que contienen datos gráficos, hemos intentado asegurarnos de que estos se usan para intercambiar datos entre programas. Ahora, pensarías que siempre es perfectamente claro que un archivo contenga datos gráficos o no. Desafortunadamente, ese no siempre es el caso. Los formatos de hojas de cálculo, a veces se usan para almacenar datos gráficos. ¿Y qué tal el intercambio de datos? Un formato es ya sea usado para transferir datos desde un programa a otro, o no, ¿cierto? Una vez más, esto no es tan simple.

Algunos formatos tales como TIFF, CGM y GIF, fueron diseñados para el intercambio de datos entre programas. ¿Pero qué tal otros formatos, tales como PCX, los cuales fueron diseñados conjuntamente con un programa particular? No hay una respuesta sencilla, pero hay dos criterios —datos gráficos e intercambio de datos— te llevarán a un largo camino, y hemos tratado tanto como es posible de seguirlos aquí.

Una lista completa de todos los formatos descritos en este libro está contenida abajo en la sección llamada "Resumen de Formatos".

...Y Cuáles No

Para los propósitos de este libro, estamos excluyendo tres tipos de archivos que contienen datos gráficos pero que están fuera del alcance de lo que estamos tratando de lograr aquí: archivos de lenguaje de dispositivo de salida, archivos de lenguaje de descripción de página, y archivos FAX.

Los archivos de lenguaje de dispositivo de salida contienen códigos de control dependientes del hardware que están diseñados para ser interpretados por un dispositivo de salida y usualmente se usan para producir salida de copia impresa. Excluimos estos, porque usualmente tienen un tiempo de vida corto como archivos temporales y con pocas excepciones no se archivan o intercambian con otras máquinas. Otra razón es práctica: muchos de los cientos de tipos de impresoras y plotters fabricados con el paso de los años usan información de control específica del fabricante, la cual el mercado tradicionalmente ha ignorado. Hasta ahora los lenguajes de dispositivos de salida más comunes en uso son el Printer Control Language (PLC) y variantes, usado para controlar las series Hewlett-Packard LaserJet de impresoras láser y compatibles, y Hewlett-Packard Printer Graphics Language (HPGL), usado para controlar plotters y otros dispositivos vectoriales.

Los lenguajes de descripción de página (PDLs) son sistemas sofisticados para describir salida gráfica. Excluimos los lenguajes de descripción de página de nuestra discusión, porque el mercado está dominado por PostScript y porque la especificación es voluminosa y extremadamente bien documentada en publicaciones fácilmente disponibles. Sin embargo, proveemos un artículo que describe el formato Encapsulated PostScript; ese artículo discute brevemente los formatos EPS, EPSF, y EPSI.

Los archivos en formato FAX usualmente son específicos de un programa, creados por una aplicación diseñada para soportar uno o más FAX módems. Hay muchos formatos de este tipo, y no los cubrimos, porque generalmente no se usan para intercambio de archivos. Sin embargo, incluimos un breve artículo sobre formatos FAX que discute algunos de los problemas que enfrentarás si usas estos formatos. El problema principal encontrado por la gente que trabaja con formatos FAX es encontrar información sobre los algoritmos de compresión. Hemos incluido un capítulo que cubre algunos de los formatos de compresión más comunes que encontrarás.



Datos Gráficos

Los datos gráficos tradicionalmente se dividen en dos clases: vectoriales y mapas de bits. A medida que explicamos a continuación, usamos el término mapa de bits para reemplazar el término más antiguo raster.

Datos Vectoriales

En gráficos de computadora, los datos vectoriales usualmente se refieren a un medio para representar líneas, polígonos o curvas (o cualquier objeto que pueda dibujarse fácilmente con líneas) especificando numéricamente puntos clave. El trabajo de un progrma que renderiza estos datos de puntos clave es regenerar las líneas al conectar de alguna manera los puntos clave o al dibujar usando los puntos clave para guiarse. Siempre asociado con los datos vectoriales está la información de atributos (tal como información del color y grosor de línea) y un conjunto de convenciones (o reglas) que le permiten a un programa dibujar los objetos deseados. Estas convenciones pueden ser ya sea implícitas o explícitas, y, aunque están diseñadas para llevar a cabo las mismas metas, generalmente son diferentes entre uno y otro programa.

La Figura 1-2 muestra varios ejemplos de datos vectoriales.

Figura 1-2: Datos vectoriales
FIGURA 1-2: Datos vectoriales

A propósito, puede que estés familiarizado con la definición de la palabra vector, la cual es muy precisa. En ciencias y matemática, por ejemplo, un vector es una línea que tiene tanto magnitud como dirección. En gráficos de computadora, un vector es una clase de término que engloba todo. Puede ser casi cualquier tipo de línea o segmento de línea, y usualmente se especifica por conjuntos de puntos finales, excepto en el caso de líneas curvadas y figuras geométricas más complicadas, las cuales requieren que otros puntos clave sean completamente especificados.

Datos de Mapas de Bits

Los datos de mapas de bits se forman de un conjunto de valores numéricos que especifican el color de pixeles individuales o elementos de imagen (picture elements, o pels). Los pixeles son puntos de color arreglados en una malla regular en un patrón que representa la forma a desplegar. Comúnmente decimos que un mapa de bits es un arreglo de pixeles, aunque un mapa de bits, técnicamente, consiste de un arreglo de valores numéricos usados para establecer, colorear, o "encender" los pixeles correspondientes en un dispositivo de salida cuando el mapa de bits es renderizado. Si hay alguna ambigüedad en el texto, haremos clara la distinción al usar el término valor de pixel para referirse a un valor numérico en los datos del mapa de bits que corresponden a un color de pixel en la imagen en el dispositivo de salida.

Figura 1-3: Datos de mapa de bits
FIGURA 1-3: Datos de mapa de bits

En la vieja usanza, el término mapa de bits a veces se refería a un arreglo (o "mapa") de bits individuales, cada uno correspondiente a un pixel, mientras que el término pixelmap, graymay y pixmap estaban reservados para arreglos de pixeles de múltiples bits. Siempre usamos el término mapa de bits para referirnos a un arreglo de pixeles, cualquiera que sea el tipo, y especificamos la profundidad de bits, o profundidad de pixel (profundidad de color) que es el tamaño de los pixeles en bits o alguna otra unidad conveniente (tal como bytes). La profundidad de bits determina el número de colores que un valor de pixel puede representar. Un pixel de 1 bit puede ser uno de dos colores, un pixel de 4 bits uno de 16 colores, y así sucesivamente. Las profundidades de color más comúnmente encontradas hoy son 1, 2, 4, 8, 15, 16, 24 y 32 bits. Algunas de las razones para esto, y otros temas relacionados con el color, se discuten en el Capítulo 2, Fundamentos de Gráficos de Computadora.

Fuentes de los Datos de Mapa de Bits: Dispositivos de Rastro

Históricamente, el término rastro ha sido asociado con la tecnología de tubo de rayos catódicos (CRT) y se ha referido al patrón de filas que el dispositivo efectúa cuando despliega una imagen en un tubo de imagen. Las imágenes de formato de rastro son por lo tanto una colección de pixeles organizados en una serie de filas, las cuales son llamadas scan lines. Ya que los dispositivos de salida de rastro, por ahora el tipo más popular disponible hoy en día, despliegan imágenes como patrones de pixeles, los valores de pixeles en un mapa de bits usualmente están arreglados para hacer que sean fáciles de desplegar en ciertos dispositivos comunes de rastro. Por estas razones, los datos de mapas de bits a menudo son llamados datos de rastro. En este libro usamos el término datos de mapa de bits.

Como se mencionó antes, los datos de mapa de bits pueden producirse cuando un programa renderiza datos gráficos y escribe la imagen de salida correspondiente a un archivo en lugar de desplegarla en un dispositivo de salida. Esta es una de las razones por las que los mapas de bits y los datos de mapa de bits a menudo son referenciados como imágenes, y los datos de mapa de bits son referenciaos como datos de imagen. Aunque no hay nada que ver en el sentido tradicional, una imagen puede ser fácilmente reconstruida a partir del archivo y desplegada en un dispositivo de salida. Ocasionalmente nos referimos al bloque de valores de pixeles en un archivo de mapa de bits como la imagen o porción de imagen.

Otras fuentes de datos de mapa de bits son dispositivos de rastro usados para trabajar con imágenes en el sentido tradicional de la palabra; los dispositivos de rastro son escáneres, cámaras de video, y otros dispositivos de digitalización. Para nuestros propósitos, consideramos que un dispositivo de rastro que produce datos digitales no es más que otra fuente de datos gráficos, y decimos que los datos gráficos se renderizan cuando el programa usado para capturar los datos desde el dispositivo los escribe a un archivo. Cuando hablamos de datos gráficos capturados desde una fuente del mundo real, tal como un escáner, la gente habla de manera redundante sobre un mapa de bits, imagen, o un mapa de bits de imagen.

¿Qué Hay Sobre los Datos de Objeto?

La gente a veces habla de una tercera clase: datos de objeto. En el pasado, esto se refería a un método para designar formas complejas, tales como polígonos anidados, a través de un método abreviado de notación, y dependiendo de la habilidad de un programa para renderizar directamente estas formas con un conjunto mínimo de pistas. Cada vez más, sin embargo, el término se usa para referirse a datos almacenados con el código del programa o la información del algoritmo necesaria para renderizarlo. Esta distinción puede volverse útil en el futuro, particularmente si los lenguajes que soportan la programación orientada a objetos (tales como Smalltalk y C++) se vuelven más populares. Sin embargo, por ahora elegimos ignorar este tercer tipo de datos primitivo, principalmente porque por el momento de escribir este texto, no hay formatos de archivo de objeto estandarizados con alguna importancia comercial aparente. En cualquier caso, las porciones de datos de todos los objetos pueden descomponerse en formas más simples compuestas de elementos de una de las dos clases primitivas.

La Figura 1-4 muestra un ejemplo de datos de objeto.

Figura 1-4: Datos de objeto
FIGURA 1-4: Datos de objeto

Otros Datos

Los archivos gráficos pueden también incluir datos que contienen información estructural, de color y otra información descriptiva. Esta información está incluida principalmente como una ayuda a la aplicación de renderización en reconstruir y desplegar una imagen.

De Datos Vectoriales a Datos de Mapa de Bits...

Hace 25 años, los gráficos de computadora estaban basados casi totalmente en datos vectoriales. Las pantallas vectoriales de escaneo aleatorio y los plotters de pluma eran los únicos dispositivos de salida fácilmente asequibles. La llegada de medios magnéticos baratos de alta capacidad, en la forma de cintas y discos, pronto permitió el almacenamiento de archivos grandes, los cuales a su vez crearon la necesidad de formatos de archivo gráficos estandarizados.

Hoy en día, la mayoría del almacenamiento gráfico está basado en mapas de bits, y las pantallas están basadas en rastros. Esto en parte es debido a la disponibilidad de CPUs de alta velocidad, memoria barata y almacenamiento masivo, y hardware de entrada y salida de alta resolución. Los gráficos de mapa de bits también están impulsados por la necesidad de manipular imágenes obtenidas de dispositivos de rastro de digitalización. Los gráficos de mapa de bits son importantes en aplicaciones que soportan CAD y renderizado 3D, gráficos (charts) de negocios, modelado 2D y 3D, arte computarizado y animación, interfaces gráficas de usuario, videojuegos, procesamiento electrónico de imágenes de documentos (electronic document image processing, o EDIP), y procesamiento y análisis de imagen.

Es interesante notar que el énfasis aumentado en los gráficos de mapa de bits en nuestro tiempo corresponde a un cambio hacia el extremo del lado de la salida del pipeline de producción de gráficos. Por volumen, la mayor cantidad de datos que se están almacenando e intercambiando consisten de imágenes terminadas en formato de mapa de bits.

El crecimiento explosivo de la WWW ha alimentado este cambio. Casi cada página web tiene uno o más archivos de mapa de bits asociados con este. Las imágenes de mapa de bits se han convertido en una parte de la vida diaria de millones de personas.

...Y De Vuelta

Pero la tendencia hacia los datos de mapa de bits puede no durar. Aunque hay ciertas ventajas en almacenar imágenes gráficas como datos de mapa de bits (estas las cubrimos en la sección llamada "Pros y Contras de los Formatos de Archivo de Mapa de Bits" en el Capítulo 3, Archivos de Mapa de Bits), las imágenes de mapa de bits usualmente son muy grandes. Hay una tendencia definida hacia interconectar en red en todos los mercados de computadoras, y archivos de mapa de bits grandes y redes de bajo costo no se mezclan. El costo de enviar archivos por Internet, por ejemplo, puede medirse no solo por sus costos de conexión, sino en tiempo perdido y desempeño de red disminuido.

El crecimiento de la WWW ha acelerado esta moda. La Web está actualmente construida alrededor del HTML, un lenguaje de etiquetas de texto que le permite al software que corre en las máquinas de los usuarios remotos, construir imágenes elaboradas de páginas de texto solo con pistas mínimas. Esta estrategia, una de delegar tareas de imagen a las máquinas de los usuarios remotos para conservar ancho de banda de la red, está siendo perseguida por un número de fabricantes. Este trabajo está tipificado por el desarrollo de Java, el lenguaje de programación para Internet de Sun Microsystems.

Ya que los archivos gráficos con seguridad no desaparecerán, esperamos que algún tipo de formato de archivo vectorial emerja en algún punto de la línea como un estándar de intercambio. Desafortunadamente, ninguno de los formatos vectoriales presentes en uso común es aceptable a un rango amplio de usuarios (pero esto puede cambiar).



Tipos de Formatos de Archivo Gráficos

Existe un número de diferentes tipos de formatos de archivo gráficos. Cada tipo almacena datos gráficos de diferente manera. Los formatos de mapas de bits, vectoriales y de metaarchivos son por mucho los formatos más comúnmente usados, y nos enfocamos en ellos en este libro. Sin embargo, también hay otros tipos de formatos — escena, animación, multimedia, híbridos, de hipertexto, de hipermedia, 3D, lenguaje de modelado de realidad virtual (virtual modelling reality language, o VRML), de audio, de fuentes, y lenguaje de descripción de página (PDL). La popularidad creciente de la WWW ha hecho más populares a algunos de estos formatos, y anticipamos un interés aumentado en ellos en el futuro. Aunque la mayoría de estos tipos de archivo están fuera del alcance de este libro, los introducimos en esta sección.

Formatos de Mapa de Bits

Estos son usados para almacenar datos de mapa de bits. Los archivos de este tipo son partecularmente adecuados para almacenar imágenes del mundo real tales como fotografías e imágenes de video. Los archivos de mapa de bits, a veces llamados archivos de rastro, esencialmente contienen un mapa exacto, pixel por pixel, de una imagen. Una aplicación de renderización puede subsecuentemente reconstruir esta imagen en la superficie de despliegue de un dispositivo de salida.

Los BMP, PCX, TIFF y TGA de Microsoft son ejemplos de formatos de mapa de bits comúnmente usados. El Capítulo 3 describe la construcción de archivos de mapa de bits con un poco de detalle.

Formatos Vectoriales

Estos archivos son particularmente útiles para almacenar elementos basados en líneas, tales como líneas y polígonos, o aquellos que puedan descomponerse en objetos geométricos simples, tal como texto. Los archivos vectoriales contienen descripciones matemáticas de elementos de imagen, en lugar de valores de pixeles. Una aplicación de renderización usa estas descripciones matemáticas de formas gráficas (por ejemplo, líneas, curvas y splines) para construir una imagen final.

En general, los archivos vectoriales son estructuralmente más simples que la mayoría de archivos de mapa de bits y típicamente se organizan como flujos de datos.

Los DXF de AutoCAD y los SYLK de Microsoft son ejemplos de formatos vectoriales comúnmente usados. El Capítulo 4, Archivos Vectoriales, describe la construcción de archivos vectoriales con un poco de detalle.

Formatos de Metaarchivo

Los metaarchivos pueden contener ya sea datos de mapa de bits y vectoriales en un mismo archivo. Los metaarchivos más simples recuerdan a archivos de formato vectorial; estos ofrecen un lenguaje o gramática que puede usarse para definir elementos de datos vectoriales, pero también pueden almacenar una representación de mapa de bits de una imagen. Los metaarchivos son usados frecuentemente para transportar datos de mapa de bits o vectoriales entre plataformas de hardware, o para mover datos de imagen entre plataformas de software.

Los WPG, PICT de Macintosh, y CGM, son ejemplos de formatos de metaarchivo comúnmente usados. El Capítulo 5, Metaarchivos, describe la construcción de los metaarchivos con un poco de detalle.

Formatos de Escena

Los formatos de archivo de escena (a veces llamados archivos de descripción de escena) están diseñados para almacenar una representación condensada de una imagen o escena, la cual es usada por un programa para reconstruir la imagen en cuestión. ¿Cuál es la diferencia entre un archivo de formato vectorial y un formato de archivo de escena? Simplemente que los archivos vectoriales contienen descripciones de porciones de la imagen, y los archivos de escena contienen instrucciones que el programa de renderización usa para construir la imagen. En la práctica, a veces es difícil decidir si un formato particular es de escena o vectorial; es más cuestión de grado que algo absoluto.

Formatos de Animación

Los formatos de animación han rondado por un buen tiempo. La idea básica es la de dar vuelta a páginas rápidamente, como con los libros de este tipo con los que jugabas cuando eras niño; con esos libros, desplegabas rápidamente una imagen superpuesta sobre otra para hacer que pareciera como si los objetos de la imagen estaban en movimiento. Los formatos muy primitivos de animación almacenan imágenes enteras que se despliegan en secuencia, usualmente en un ciclo. Formatos ligeramente más avanzados solamente almacenan una imagen pero múltiples mapas de color para la imagen. Al cargar un nuevo mapa de color, los colores en la imagen cambian, y los objetos parecen moverse. Formatos avanzados de animación almacenan solo las diferencias entre dos imágenes adyacentes (llamados cuadros o frames) y solamente actualizan los pixeles que de hecho han cambiado a medida que cada cuadro es desplegado. Una tasa de despliegue de 10 a 15 cuadros por segundo es típica para animaciones del tipo de caricaturas. Las animaciones de video usualmente requieren una tasa de despliegue de 20 cuadros por segundo o mayor para producir un movimiento más suave.

Los TDDD y TTDDD son ejemplos de formatos de animación.

Formatos Multimedia

Los formatos multimedia son relativamente nuevos pero se están volviendo cada vez más importantes. Están diseñados para permitir el almacenamiento de datos de diferentes tipos en el mismo archivo. Los formatos multimedia usualmente permiten la inclusión de información de gráficos, de audio y de video. Los RIFF de Microsoft, QuickTime de Apple, MPEG y los FLI de Autodesk son ejemplos bien conocidos, y es probable que otros emerjan en el futuro cercano. El Capítulo 10, Multimedia, describe varios problemas relacionados con los formatos multimedia.

Formatos Híbridos

Actualmente, hay una buena cantidad de investigación realizada sobre la integración de datos no estructurados de texto y de mapa de bits ("texto híbrido") y la integración de información basada en registros y mapas de bits ("base de datos híbrida"). A medida que este trabajo dé fruto, esperamos que emerjan formatos híbridos capaces de almacenar eficientemente datos gráficos y que se vuelvan más importantes con paso firme.

Formatos de Hipertexto e Hipermedia

El hipertexto es una estrategia para permitir acceso no linear a la información. En contraste, la mayoría de libros son lineares, con un inicio y un fin, y un patrón de progresión definido a lo largo del texto. El hipertexto, sin embargo, permite construir documentos con uno o más inicios, con uno, ninguno, o múltiples finales, y con muchos enlaces de hipertexto que permitan a los usuarios saltar a cualquier lugar disponible en el documento al que deseen ir.

Los lenguajes de hipertexto no son formatos de archivo gráficos como GIF o DXF. En lugar de eso, son lenguajes de programación, como PostScript o C. Como tales, están diseñados específicamente para la transmisión de un flujo de datos en serie. En otras palabras, puedes comenzar a decodificar un flujo de información de hipertexto a medida que recibes los datos. No necesitas esperar que el documento de hipertexto entero sea descargado antes de poder verlo.

El término hipermedia se refiere a la unión del hipertexto y la multimedia. Los lenguajes de hipertexto y protocolos de red modernos soportan una amplia variedad de medios, incluyendo texto y fuentes, gráficos estáticos y animados, audio, video y datos 3D. El hipertexto permite la creación de una estructura que permite que los datos multimedia sean organizados, desplegados y navegados interactivamente por un usuario de computadora.

Los sistemas de hipertexto e hipermedia, tales como la WWW, contienen millones de recursos de información almacenados en la forma de archivos GIF, JPEG, PostScript, MPEG y AVI. Muchos otros formatos son también usados.

Formatos 3D

Los archivos de datos tridimensionales almacenan descripciones de la forma y color de modelos 3D de objetos imaginarios y del mundo real. Los modelos 3D típicamente están construidos por polígonos y superficies suaves, combinados con descripciones de elementos relacionados, tales como color, textura, reflejos, y así sucesivamente, que una aplicación de renderización puede usar para reconstruir el objeto. Los modelos son colocados en escenas con luces y cámaras, así que los objetos en archivos 3D a menudo son llamados elementos de escena.

Las aplicaciones de renderización que pueden usar datos 3D generalmente son programas de modelado y animación, como Lightwave de NewTek y Autodesk 3D Studio. Estos ofrecen la habilidad de ajustar la apariencia de la imagen renderizada a través de cambios y adiciones a la iluminación, texturas aplicadas a elementos de escena, y las posiciones relativas de elementos de escena. Además, le permiten al usuario animar, o asignar movimientos a, los elementos de la escena. La aplicación luego crea una serie de archivos de mapa de bits, o cuadros, que tomados en secuencia pueden ser ensamblados en una película.

Es importante entender que los datos vectoriales históricamente han sido 2D en naturaleza. Es decir, la aplicación creadora con la cual los datos se originaron, no hizo un intento de simular una pantalla 3D a través de la aplicación de perspectiva. Ejemplos de datos vectoriales incluyen dibujos CAD y la mayoría de clip art diseñado para ser usado en aplicaciones de publicación en el escritorio. Hay una cierta cantidad de confusión en el mercado sobre lo que constituye el renderizado 3D. Esto es complicado por el hecho de que os datos 3D ahora son soportados por un número de formatos que anteriormente almacenaban únicamente datos 2D. Un ejemplo de esto es el formato DXF de Autodesk. Los formatos como DXF a veces son llamados formatos vectoriales extendidos.

Formatos de Lenguaje de Modelado de Realidad Virtual (VRML)

Se puede pensar en VRML (pronunciado "vermel") como un híbrido entre gráficos 3D y HTML. El VRML v1.0 es esencialmente un subconjunto del formato de archivo Silicon Graphics Inventor y no agrega soporte para enlazar a URLs en la WWW.

El VRML codifica datos 3D en un formato adecuado para el intercambio a través de Internet usando HTTP. Los datos VRML recibidos de un servidor Web son desplegados en un navegador Web que soporta la interpretación del lenguaje VRML. Esperamos que los gráficos 3D basados en VRML pronto sean muy comunes en la WWW.

Este libro no contiene una discusión a profundidad de VRML por algunas de las mismas razones por las que no ofrecemos descripciones detalladas del hipertexto, hipermedia, y formatos 3D. La especificación VRML es un blanco en movimiento, pero puedes seguirle el paso al consultar los siguientes recursos en Internet:

http://www.oki.com/vrml/VRML_FAQ.html
      FAQ de VRML

http://www.sdsc.edu/vrml/
      Repositorios de información de VRML

Formatos de Audio

El audio típicamente se almacena en una cinta magnética como datos análogicos. Para que datos de audio se almacenen en un medio tal como un CD-ROM o disco duro, primero debe ser codificado usando un proceso de muestreo digital similar al usado para almacenar datos de video digital. Una vez codificado, los datos de audio pueden luego escribirse a disco como un flujo de datos crudo de audio digital, o más comúnmente, almecenados usando un formato de archivo de audio.

Los formatos de archivo de audio son idénticos en concepto a los formatos de archivo gráficos, excepto que los datos que almacenan se renderizan para tus oídos y no para tus ojos. La mayoría de formatos contienen una cabecera simple que describe los datos de audio que contienen. La información comúnmente almacenada en las cabeceras del formato de archivo de audio incluyen muestras por segundo, número de canales, y número de bits por muestra. Esta información corresponde aproximadamente al número de muestras por pixel, número de planos de color, y número de bits por muestra comúnmente encontrada en cabeceras de archivos gráficos.

En donde difieren grandemente los formatos de archivo de audio es en los métodos de compresión de datos que usan. La codificación Huffman es usada comúnmente tanto para datos de 8 bits de gráficos y de audio. Los datos de audio de 16 bits, sin embargo, requieren algoritmos adaptados especialmente para los problemas de compresión de datos de audio. Tales esquemas de compresión incluyen las recomendaciones del CCITT (International Telegraph and Telephone Consultative Comitee) G.711 (Ulaw), g.721 (dpcm 32) y G.723 (ADPCM 24), y los estándares federales de EE.UU. FIPS-1016 (CELP) y FIPS-1015 (LPC-10E).

Ya que los datos de audio son muy diferentes a los datos gráficos, este libro no intenta cubrir los formatos de audio gráficos. Si necesitas mayor información sobre los formatos de archivos de audio, recomendamos que revises los siguientes recursos de información en Internet:

http://cuiwww.unige.ch/OSG/AudioFormats/
      Guía a los formatos de archivo de audio

ftp://rtfm.mit.edu/pub/usenet/news.answers/audio-faq/part[1-2]
      FAQ de formatos de archivo de audio

ftp://rtfm.mit.edu/pub/usenet/news.answers/compression-faq/part[1-3]
      FAQ comp.compression

ftp://rtfm.mit.edu/pub/usenet/news.answers/dsp-faq/part[1-4]
      FAQ comp.dsp

ftp://rtfm.mit.edu/pub/usenet/news.answers/mpeg-faq/part[1-6]
      FAQ MPEG

Formatos de Fuentes

Otra clase de formatos no cubiertos en este libro son archivos de fuente. Los archivos de fuente contienen las descripciones de conjuntos de caracteres alfanuméricos y símbolos en un formato compacto y de fácil acceso. Generalmente están diseñados para facilitar el acceso aleatorio de los datos asociados con los caracteres individuales. En este sentido, son bases de datos de caracteres o de información simbólica, y por esta razón los archivos de fuente a menudo son usados para almacenar datos gráficos que no son alfanuméricos o simbólicos por naturaleza. Los archivos de fuente pueden no tener una cabecera global, y algunos archivos soportan subcabeceras para cada carácter. En cualquier caso, es necesario conocer el inicio de los datos de carácter en cuestión, el tamaño de los datos de cada carácter, y el orden en el que los caracteres se almacenan a fin de recuperar los caracteres individuales sin tener que leer y analizar el archivo entero. Los datos de carácter en el archivo pueden estar indexados alfanuméricamente, por código ASCII, o por algún otro esquema. Algunos archivos de fuente soportan adiciones y edición arbitrarios, y por lo tanto tienen un índice en algún lugar del archivo para ayudarte a encontrar los datos de los caracteres.

Algunos archivos de fuente soportan compresión, y pueden soportar encriptación para los datos de los caracteres. La creación de conjuntos de caracteres a mano siempre ha sido un proceso difícil y que consume mucho tiempo, y típicamente un diseñador de fuentes dedicó un año o más a un único conjunto de caracteres. Consecuentemente, las compañías que comercializan fuentes (llamadas foundries por razones que datan de los orígenes de la impresión usando tipografía mecánica) a menudo buscan proteger sus inversiones a través de medios legales o a través de encriptación. En los Estados Unidos, por ejemplo, los nombres de las fuentes se consideran propietarios, pero los trazos descritos por los datos de los caracteres no. No es raro ver datos pirateados anidados en archivos de fuente bajo nombres diferentes al original.

Históricamente, ha habido tres tipos principales de archivos de fuente: trazos basados en mapas de bits, strokes y splines, descritos en las siguientes secciones.

Elegimos no cubrir archivos de fuente en este libro porque la tecnología de fuentes es un mundo en sí mismo, con terminología y preocupaciones diferentes. Muchos de los formatos de archivo de fuentes todavía son propietarios y están encriptados y, de hecho, no están disponibles para el público en general. Aunque hay unos pocos formatos antiguos basados en splines todavía en uso, los datos de fuente en los formatos TrueType y Adobe Tipo 1 es fácilmente a disposición de todas las plataformas mayores y está bien documentado en otros lugares en publicaciones fácilmente asequibles a los desarrolladores. Recomendamos que verifiques los siguientes recursos en Internet:

ftp://rtfm.mit.edu/pub/usenet/news.answers/fonts-faq/part[1-17]
      FAQ de Fuentes

http://www.adobe.com/
      Repositorios de información de fuentes

Fuentes de Mapa de Bits

Las fuentes de mapa de bits consisten en una serie de imágenes de caracteres renderizadas en pequeños mapas de bits rectangulares, y almacenados secuencialmente en un archivo individual. El archivo puede o puede no tener cabecera. La mayoría de archivos de fuente son monocromáticos, y la mayoría almacena las fuentes en rectángulos con tamaño uniforme para facilitar la velocidad de acceso. Los caracteres almacenados en formato de mapa de bits pueden ser muy elaborados, pero el tamaño del archivo aumenta, y, consecuentemente, la velocidad y la facilidad de uso cae en declive con imágenes más complejas.

La ventaja de los archivos de mapa de bits son la velocidad de acceso y la facilidad de uso — leer y desplegar un carácter de un archivo de mapa de bits usualmente involucra poco más que leer el rectángulo que contiene los datos en la memoria y desplegarlos en la superficie del dispositivo de salida. A veces, sin embargo, los datos son analizados y usados como una plantilla para desplegar el carácter por la aplicación de renderización. Las desventajas principales de las fuentes de mapa de bits son que no escalan fácilmente y que las fuentes de mapa de bits solo se miran bien al rotarlas en pantallas con pixeles cuadrados.

La mayoría de sistemas basados en caracteres, tales como MS-DOS, UNIX en modo de caracteres, y sistemas de terminal basados en caracteres, usan fuentes de mapa de bits almacenadas en ROM o en disco. Sin embargo, las fuentes de mapa de bits son raramente usadas hoy cuando hay suficiente poder de procesamiento para permitir el uso de otros tipos de datos de fuente.

Fuentes de Stroke

Las fuentes de trazos (strokes) son bases de datos de caracteres almacenadas en forma vectorial. Los caracteres pueden consistir de trazos individuales o pueden ser contornos huecos. Los datos de carácter de trazos usualmente consisten de una lista de puntos finales pensados para ser dibujados secuencialmente, reflejando el origen de muchas fuentes de trazos en aplicaciones que soportan plotters de pluma. No obstante, algunas fuentes de trazos pueden ser más elaboradas, y pueden incluir instrucciones para arcos y otras curvas. Tal vez las fuentes de trazos mejor conocidas y más ampliamente usadas eran los conjuntos de caracteres Hershey, los cuales aún están disponibles en línea.

Las ventajas de las fuentes de trazos son que pueden escalarse y rotarse fácilmente, y que se componen de primitivas, tales como líneas y arcos, las cuales están bien soportados por la mayoría de entornos operativos de GUI y por aplicaciones de renderización. La desventaja principal de las fuentes de trazos es que generalmente tienen una apariencia mecánica diferente de lo que hemos llegado a esperar al leer texto impreso de alta calidad en todas nuestras vidas.

Las fuentes de trazos son raramente usadas hoy. La mayoría de plotters de pluma las soportan, sin embargo. También puedes necesitar saber más sobre ellas si tienes una aplicación industrial especializada usando una pantalla vectorial o algo similar.

Fuentes de Contornos Basados en Splines

Las ventajas de las fuentes basadas en splines son que pueden usarse para crear representaciones de caracteres de alto nivel, en algunos casos imposibles de distinguir de texto hecho con tipos de metal. La mayoría de fuentes tradicionales, de hecho, han sido convertidas a contornos basados en splines. Además, los caracteres pueden ser escalados, rotados, y de otra manera manipulados en maneras únicamente soñadas incluso hace solo una generación.

Desafortunadamente, la reconstrucción de caracteres a partir de datos de contorno de splines no es una tarea trivial, y la calidad superior obtenida por los contornos de splines tiene en precio en el tiempo de renderización y los costos de desarrollo de los programas.

Formatos de Lenguaje de Descripción de Página (PDL)

Los lenguajes de descripción de página son verdaderos lenguajes de computadora usados para describir la disposición, información de fuente, y gráficos de páginas impresas y desplegadas. Los PDLs se usan como los lenguajes interpretados usados para comunicar información a los dispositivos de impresión, tales como impresoras, o para dispositivos de pantalla, tales como displays de interfaces gráficas de usuario (GUI). La mayor diferencia es que el código PDL es muy dependiente de un dispositivo. Un archivo PostScript típico contiene información detallada sobre el dispositivo de salida, métricas de fuente, paletas de color, y así sucesivamente. Un archivo PostScript que contiene código para un documento de 4 colores de tamaño A4 solo puede imprimirse o desplegarse en un dispositivo que pueda manejar esas métricas.

Los lenguajes de etiquetas, por otro lado, no contienen información específica al dispositivo de salida. En su lugar, dependen del hecho de que el dispositivo que está renderizando el código del lenguaje de etiquetas (markup) puede adaptarse a las instrucciones de formateo que le son enviadas. El programa de renderización escoge las fuentes, colores y método de despliegue de los datos gráficos. El lenguaje de etiquetas solo provee la información y cómo está estructurada.

Si bien los archivos PDL pueden contener información gráfica, consideramos que los PDLs sean formatos gráficos de archivos más de lo que consideraríamos un módulo de código C que contiene un arreglo de información gráfica, un formato de archivo gráfico. Los PDLs son lenguajes de programación completos, que requieren el uso de intérpretes sofisticados para leer sus datos; son muy diferentes a los analizadores mucho más simples usados para leer formatos de archivo gráficos.



Elementos de un Archivo Gráfico

Como se mencionó en el Prefacio, diferentes especificaciones de formato de archivo usan diferente terminología. De hecho, es posible que ningún término individual tenga un significado común a través de todos los formatos de archivo mencionados en este libro. Esto es ciertamente verdadero para términos que se refieren a la manera en la que los datos se almacenan en un archivo — términos tales como campo, etiqueta (tag), bloque y paquete. De hecho, una especificación a veces ofrecerá una definición para uno de estos términos y luego lo abandonará a favor de uno más descriptivo, tal como una porción (chunk), secuencia o registro (record).

Para los propósitos de discusión en este libro, consideraremos que un archivo gráfico está compuesto de una secuencia de datos y estructuras de datos, llamados elementos del archivo o elementos de datos. Estos están divididos en tres categorías: campos, etiquetas (tags) y flujos (streams).

Campos (Fields)

Esta es una estructura de datos que tiene un tamaño fijo en un archivo gráfico. Un campo fijo no solo tiene un tamaño fijo sino también una posición fija dentro del archivo. La ubicación de un campo se comunica a especificar ya sea un offset absoluto desde una marca en un archivo, tal como el inicio o el final de un archivo, o un offset relativo desde algún otro dato. El tamaño de un campo ya sea se declara en la especificación del formato o puede inferirse a partir de otra información.

Etiquetas (Tags)

Estas son estructuras de datos que varían tanto en tamaño como en posición entre un archivo y otro. La posición de una etiqueta, como aquella de un campo, se especifica ya sea por un offset absoluto desde una marca conocida en el archivo, o mediante un offset relativo desde otro elemento del archivo. Las etiquetas mismas pueden contener otras etiquetas o una colección de campos relacionados.

Flujos (Streams)

Los campos y etiquetas son una ayuda para los accesos aleatorios; están diseñados para ayudar a un programa a acceder rápidamente un elemento de datos conocido de antemano. Una vez que una posición en un archivo es conocida, un programa puede acceder la posición directamente sin tener que leer los datos que intervienen. Un archivo que organiza datos como un flujo, por el contrario, carece de la estructura de uno organizado en campos y etiquetas y de be leerse secuencialmente. Para nuestros propósitos, consideraremos que un flujo está hecho de paquetes, los cuales pueden variar en tamaño, son sub-elementos de un flujo, y tienen significado para el programa que lee el archivo. Si bien el inicio y el final del flujo pueden ser conocidos y especificados, la ubicación de los paquetes diferentes del primero usualmente no lo es, al menos antes del momento de la lectura.

Combinaciones de Elementos de Datos

Puedes imaginar, entonces, archivos puramente de campos fijos, archivos puramente de etiquetas, y archivos puramente de flujos, hechos enteramente de datos organizados en campos, etiquetas y flujos fijos, respectivamente. Rara vez, sin embargo, un archivo contiene elementos de datos de un único tipo; en la mayoría de casos es una combinación de dos o más. Los formatos TIFF y TGA, por ejemplo, usan tanto etiquetas y campos fijos. Los archivos GIF, por el contrario, usan tanto campos fijos y flujos.

Los datos de campos fijos son usualmente más rápidos y fáciles para leer que datos de etiqueta o de flujo. Los archivos compuestos principalmente de datos fijos, sin embargo, son menos flexibles en situaciones en las que se necesita agregar o eliminar datos de un archivo existente. Los formatos que contienen datos fijos raramente son fácilmente actualizables. Los datos de flujo generalmente requieren menos memoria para leer y para poner en un búfer que los datos de campo o de etiqueta. Los archivos compuestos principalmente de datos de flujo, sin embargo, no pueden accederse al azar, y por lo tanto no pueden usarse para encontrar o sub-muestrear datos rápidamente. Estas consideraciones son discutidas adicionalmente en los Capítulos 3, 4 y 5.



Convirtiendo Formatos

A menudo necesitas convertir un archivo gráfico de un formato a otro — para impresión, manipulación por un programa de publicación de escritorio particular, o por alguna otra razón. Aunque la conversión a y desde ciertos formatos de archivo es simple, la conversión de otros formatos puede poner un poco los pelos de punta. Encontrarás la conversión particularmente problemática si necesitas convertir entre tipos de formato básicos — por ejemplo, de mapa de bits a vectorial.

Afortunadamente, algunos productos excelentes pueden manejar la mayoría de complejidades de conversión por ti. Si tienes sificente suerte para convertir entre los formatos soportados por el paquete pbmplus (Portable Bitmap Utilities, un con junto de programas gratuitos desarrollados por Jef Poskanzer que hemos incluido en el CD-ROM), tu trabajo será fácil. En lugar de convertir explícitamente de un formato de archivo gráfico a otro (por ejemplo, de PCX a mapa de bits de Microsoft Windows [BMP]), pbmplus convierte cualquier formato de fuente a un formato común y luego convierte ese formato común al formato de destino deseado. pbmplus es más a menudo usado en entornos UNIX, pero el código fuente también ha sido compilado para otras plataformas. También ofrecemos un número de otros programas de conversión libremente disponibles para plataformas Windows, MS-DOS, OS/2, Macintosh y UNIX en el CD-ROM.

Prueba esos programas y mira cuál se ajusta mejor a tus formatos y aplicaciones. Si tienes una máquina que está corriendo MS-DOS o una variante de Microsoft Windows, considera comprar HiJaak, un producto comercial excelente desarrollado por Inset Systems (ahora Quarterdeck) que convierte hacia y desde la mayoría de los formatos de archivo comunes. Si tienes una Macintosh o Power Mac, considera comprar DeBabelizer.

El Capítulo 7, Conversión de Formatos, contiene una discusión sobre convertir entre tipos de formatos de archivo gráficos.



Comprimiendo Datos

A través de los artículos incluidos en la Parte Dos de este libro, verás referencias a métodos de compresión de datos o codificación de datos. La compresión es el proceso usado para reducir el tamaño físico de un bloque de información. Al comprimir los datos gráficos, podemos hacer caber más información en un espacio de almacenamiento físico. Ya que las imágenes gráficas usualmente requieren una cantidad muy grande de espacio de almacenamiento, la compresión es una consideración importante para los formatos de archivo gráficos. Casi todos los formatos de archivo gráficos usan algún método de compresión.

Hay varias maneras de ver la compresión, Podemos hablar de diferencias entre compresión física y lógica, simétrica y asimétrica, y entre lossless y lossy. Estos términos se describen en detalle en el Capítulo 9, Compresión de Datos. Ese capítulo también describe los métodos más comunes de, o algoritmos para, compresión, los cuales mencionamos brevemente aquí:

  • Empacado de pixeles — No es un método de compresión de datos per se, sino una manera eficiente de almacenar datos en bytes contiguos de memoria. Este método es usado por el formato PICT de Macintosh y otros formatos que son capaces de almacenas múltiples pixeles de 1, 2 o 4 bits por byte de memoria o espacio en disco.

  • Run-length encoding (RLE) — Un algoritmo de compresión muy común usado por formatos de mapa de bits tales como BMP, TIFF y PCX para reducir la cantidad de datos gráficos redundantes.

  • Lempel-Ziv-Welch (LZW) — Usado por GIF y TIFF, este algoritmo es también una parte del estándar de compresión de módem v.42bis y de PostScript Nivel 2.

  • Codificación CCITT — Una forma de compresión de datos usada para la transmisión de facsímiles y estandarizada por el CCITT. Un estándar particular está basado en el esquema de compresión por clave introducido por David Huffman y conocido ampliamente como la codificación Huffman.

  • Joint Photographic Experts Group (JPEG) — Un kit de herramientas de métodos de compresión usados particularmente para datos de imagen de tono continuo y para multimedia. La implementación base del JPEG usa un esquema de codificación basado en el algoritmo de Transformación Discreta de Coseno (Discrete Cosine Transform, o DCT).

  • Joint Bi-level Image Experts Group (JBIG) — Un método para comprimir datos de imagen bi-nivel (dos colores), el cual está pensado para reemplazar los algoritmos de compresión MR (Modified READ) y MMR (Modified Modified READ) usados por CCITT Grupo 3 y Grupo 4.

  • ART — Un algoritmo de compresión propietario desarrollado por Johnson-Grace que puede adaptarse para soportar audio, animaciones, y video de movimiento completo (full-motion video) en el futuro.

  • Fractal — Un proceso matemático usado para comprimir mapas de bits que contienen imágenes del mundo real como un conjunto de datos matemáticos que describen las propiedades fractales de la imagen (patrones similares repetitivos).

Cada uno de los artículos en la Parte Dos, Formatos de Archivo Gráficos, lista los algoritmos de compresión usados para el formato de archivo gráfico particular descrito.



Resumen de Formatos

La Tabla 1-1 lista cada uno de los formatos de archivo gráficos que describimos en este libro, junto con una indicación de qué tipo de formato es (mapa de bits, vectorial, metaarchivo, descripción de escena, animación, multimedia, u otro [para "otros" formatos, referirse al artículo apropiado en la Parte Dos]).

En algunos casos, un formato puede conocerse por un número de nombres diferentes. Por favor verifica el índice, y busca en línea si tu formato no está listado a continuación; es probable que esté incluido, pero simplemente bajo un nombre diferente.

Los archivos gráficos en la mayoría de plataformas usan una convención de extensiones de archivo bastante consistente. De las tres plataformas con la base de instalación más grande (MS-DOS, Macintosh y UNIX), todas usan una convención similar de nombrado de archivos nombre.extensión. Las otras plataformas que son populares para gráficos de computadoras (Amiga, Atari, y VMS) usan una convención de nombres de archivo aproximadamente similar. VMS, por ejemplo, usa la convención nombre1.nombre2:version, en donde version es un entero que indica el número de la revisión de archivo.

TABLA 1-1: Formatos de Archivo Gráficos Descritos en Este Libro

Formato Tipo
________________________________________________________________________________________________
Adobe Illustrator Metaarchivo
Adobe Photoshop Mapa de Bits
Formatos Gráficos Atari ST Mapa de Bits y Animación
AutoCAD DXF Vector
Autodesk 3D Studio Descripción de Escena
BDF Mapa de Bits
BRL-CAD Otro
BUFR Otro
CALS Raster Mapa de Bits
CGM Metaarchivo
Formatos CMU Multimedia
DKB Descripción de Escena
Formato de Archivo Dore Raster Mapa de bits
DPX Mapa de Bits
Dr. Halo Mapa de Bits
Película DVM Animación
Encapsulated PostScript Metaarchivo (lenguaje de descripción de página)
FaceSaver Mapa de Bits
Formatos FAX Mapa de Bits
FITS Otro
FLI Animación
Rastro GEM Mapa de Bits
GEM VDI Metaarchivo
GIF Mapa de Bits
GRASP Animación
GRIB Otro
Harvard Graphics Metaarchivo
Formato de Datos Jerárquicos Metaarchivo
IFF Mapa de Bits
IGES Otro
Inset PIX Mapa de Bits
Inset DVI Multimedia
JPEG File Interchange Format Mapa de Bits
Kodak Photo CD Mapa de Bits
Kodak YCC Mapa de Bits
Lotus DIF Vector
Lotus PIC Vector
Lumena Paint Mapa de Bits
Macintosh Paint Mapa de Bits
Macintosh PICT Metaarchivo
Microsoft Paint Mapa de Bits
Microsoft RIFF Multimedia
Microsoft RTF Metaarchivo
Microsoft SYLK Vector
Microsoft Windows Bitmap Mapa de Bits
Microsoft Windows Metafile Metaarchivo
MIFF Mapa de Bits
MPEG Otro
MTV Descripción de Escena
NAPLPS Metaarchivo
NFF Descripción de Escena
OFF Descripción de Escena
OS/2 Bitmap Mapa de Bits
P3D Descripción de Escena
PBM, PGM, PNM y PPM Mapa de Bits
PCX Mapa de Bits
PDS Otro
Pictor PC Paint Mapa de Bits
Pixar RIB Descripción de Escena
Plot-10 Vector
PNG Mapa de Bits
POV Vector
Metaarchivo de Presentation Manager Metaarchivo
PRT Descripción de Escena
QRT Descripción de Escena
QuickTime Otro
Radiance Descripción de Escena
Rayshade Descripción de Escena
RIX Mapa de Bits
RTrace Descripción de Escena
SAF Mapa de Bits y otro
Sense8 NFF Descripción de Escena
Formato de Imagen SGI Mapa de Bits
SGI Inventor Descripción de Escena
SGI YAODL Descripción de Escena
SGO Vector
SPIFF Mapa de Bits
Sun Icon Mapa de Bits
Sun Raster Mapa de Bits
TDDD Vector y Animación
TGA Mapa de Bits
TIFF Mapa de Bits
TTDDD Vector y Animación
uRay Descripción de Escena
Utah RLE Mapa de Bits
VICAR2 Mapa de Bits
VIFF Mapa de Bits
VIS-5D Vector
Vivid and Bob Descripción de Escena
Wavefront OBJ Vector
Wavefront RLA Mapa de Bits
Metaarchivo Gráfico de WordPerfect Metaarchivo
XBM Mapa de Bits
XPM Mapa de Bits
XWD Mapa de Bits
ZBR Metaarchivo
 n0HCo(-JT' &N5i5詗7c'wOưQ|c!@|%A"@[0d1̖Y'zb,5͔Ow( 2+FcI`Fqlzv(7LX rfYvNzzYOA#.E-94Zn!S 52@K9my;.}U݀r&jn2WWHJ`Q}u_tro {rWL;=_ؼ