Archivo

Archivo para la categoría ‘Apuntes’

La Resolución de Pantalla

Sábado, 9 de Agosto de 2008 JvC Sin comentarios

La resolución de pantalla es el número de píxels (o máxima resolución de imagen) que puede ser mostrada en la pantalla. Viene dada por el producto de las columnas (“X”), el cual se coloca al principio y el número de filas (“Y”) con el que se obtiene una razón.

Estándar Resolución Razón Píxels
CGA 320×200 16:10 64K
QVGA 320×240 4:3 77K
B&W Macintosh/Macintosh LC 512×384 4:3 197K
EGA 640×350 aprox. 5:3 224K
VGA and MCGA 640×480 4:3 307K
HGC 720×348 60:29 251K
MDA 720×350 72:35 252K
Apple Lisa 720×360 2:1 259K
SVGA 800×600 4:3 480K
XGA 1024×768 4:3 786K
XGA+ 1152×864 4:3 995K
WXGA 1280×768 15:9 983K
WXGA+ ? 1280×800 16:10 1M
SXGA 1280×1024 5:4 1,3M
WSXGA or WXGA+ 1440×900 16:10 1,3M
SXGA+ 1400×1050 4:3 1,5M
WSXGA 1600×1024 25:16 1,6M
WSXGA+ 1680×1050 16:10 1,8M
UXGA 1600×1200 4:3 1,9M
WUXGA 1920×1200 16:10 2,3M
QXGA 2048×1536 4:3 3,1M
WQXGA 2560×1600 16:10 4,1M
QSXGA 2560×2048 5:4 5,2M
WQSXGA 3200×2048 25:16 6,6M
QUXGA 3200×2400 4:3 7,7M
WQUXGA 3840×2400 16:10 9,2M
HSXGA 5120×4096 5:4 21M
WHSXGA 6400×4096 25:16 26M
HUXGA 6400×4800 4:3 31M
WHUXGA 7680×4800 16:10 37M
Categories: Apuntes Tags:

La herramienta Libre Inkscape

Sábado, 9 de Agosto de 2008 JvC Sin comentarios

Inkscape es una herramienta de dibujo libre y multiplataforma para gráficos vectoriales SVG. Este programa surgió de una bifurcación del proyecto Sodipodi. Las características de SVG soportadas incluyen formas básicas, caminos, texto, canal alfa, transformaciones, gradientes, edición de nodos, exportación de SVG a PNG, agrupación de elementos, etc.

La principal motivación de Inkscape es proporcionar a la comunidad una herramienta de código abierto de dibujo SVG que cumpla completamente con los estándares XML, SVG y CSS2.

Inkscape se encuentra desarrollado principalmente para el sistema operativo GNU/Linux, pero es una herramienta multiplataforma que funciona en Windows, Mac OS X, y otros sistemas derivados de Unix.

Esta aplicación tiene una buena compatibilidad multilingüe, particularmente para scripts complejos.

Inkscape  

Pantalla de ejemplo de Inkscape
Desarrollador: El Equipo Inkscape
Última versión: 0.45.1 / 20 de marzo de 2007
S.O.: Multiplataforma
Género: Editor de gráficos vectoriales
Licencia: GPL
En español:
Sitio Web: www.inkscape.org
Categories: Apuntes Tags:

Grafico Vectorial.

Sábado, 9 de Agosto de 2008 JvC Sin comentarios

Los gráficos vectoriales (también conocidos como modelados geométricos o gráficos orientados a objetos) son los que se conforman con primitivas geométricas tales como puntos, líneas, curvas o polígonos, de igual forma, son gráficos que se construyen por ordenador basándose en ecuaciones matemáticas. Se utiliza como antónimo de aquellas imágenes que están configuradas sobre un conjunto de píxeles, tales como los bitmaps, también llamados gráficos rasterizados.

INTRODUCCIÓN.

Todos los ordenadores actuales traducen los gráficos vectoriales a gráficos rasterizados para poderlos visualizar en pantalla. La imagen rasterizada posee un valor determinada para cada píxel que la conforma, esta información se guarda en la memoria ocupando un espacio específico.

Desde los inicios del computador en 1950 hasta la década de los ochenta se usaba un sistema de graficación vectorial, diferente al actual. En este sistema “caligráfico” el rayo eléctrico del tubo de rayo catódico de la pantalla era guiado directamente para dibujar las formas necesarias, segmento de línea por segmento de línea, dejando en negro el resto de la pantalla. Este proceso se repetía muchas veces en un segundo para alcanzar una imagen libre de destellos o muy cercana a estar libre de destellos. Este sistema permitía visualizar imágenes estáticas y con movimiento de buena resolución (para ese momento) sin usar la inimaginable cantidad de memoria que se hubiera necesitado para originar una resolución equivalente en un sistema de rasterización, permitiendo que dibujos completos pudieran ser movidos, rotados y hasta que titilaran modificando sólo algunas de las palabras del código de la gráfica en su respectivo “display file”. Estos monitores basados en vectores también eran conocidos como X-Y displays.

Uno de los primeros usos de los vectores como proceso de visualización fue el realizado por la Fuerza Aérea de los Estados Unidos. El sistema de graficación por vectores se utilizó hasta 1999 en control aéreo y probablemente aún se siga usando en diversos sistemas militares y sistemas especializados. Ivan Sutherland empleó este mismo sistema en la TX-2 para correr su programa Sketchpad en MIT Lincoln Laboratory en 1963.

Los subsiguientes sistemas de graficación vectorial incluían Digital´s GT40; existió una consola llamada Vectrex que usaba gráficos vectoriales para mostrar videojuegos como Asteroids y Space Wars. Equipos como el Tektronix 4014, podían crear imágenes vectoriales dinámicas manejando una menor intensidad en la visualización en las imágenes almacenadas.

El término vector es usado comúnmente en el contexto de gráficos de dos dimensiones producidos por computador. Es uno de los muchos modos con los que un artista cuenta para crear una imagen con una previsualización rasterizada. Otras formas de uso pueden ser en textos, en multimedia y en la creación de escenarios 3D. Virtualmente todos los programas de modelado en 3D usan técnicas en donde se extienden gráficos vectoriales de 2D. Los plotters usados en dibujo técnico siguen dibujando los vectores directamente sobre el papel.

¿Cómo funciona?
En los gráficos vectoriales la imagen se genera como descripción de trazos, por ejemplo: para crear un segmento de línea recta se indica su punto inicial (x1,y1), su punto final (x2,y2), su grosor, color, etc. En cambio, en una imagen bitmap, esa misma línea estaría formada por un número determinado de puntos (píxeles) de color contiguos.

Al contrario que un bitmap, una imagen vectorial puede ser escalada, rotada o deformada, sin que ello perjudique en su calidad. Normalmente, un conjunto de trazos se puede agrupar, formando objetos, y crear formas más complejas que permiten el uso de curvas de Bézier, degradados de color, etc. En algunos formatos, como el SWF, las imágenes vectoriales pueden animarse muy fácilmente sin que ello suponga un aumento excesivo en el tamaño del archivo, al contrario de los bitmaps.

Figuras Geometricas Basicas.
* Líneas y polilíneas
* Polígonos
* Círculos y elipses
* Curvas Bézier
* Bezigons (dibujo con curvas)
* Texto (en formatos naturales de computador tales como True Type y Fon en donde cada letra esta creada a partir de curvas Bézier)

La lista anterior no incluye otros tipos de curvas (spline de Catmull-Rom, Nurbs, entre otros), los cuales son útiles para otro tipo de aplicaciones.

Frecuentemente, una imagen bitmap es considerada un objeto primitivo, desde un punto de vista conceptual; ya que se comporta como un rectángulo (el rectángulo conformado por los píxeles que la componen).

Operaciones Vectoriales.

* Los típicos graficadores vectoriales permiten rotar, mover, reflejar, estirar, inclinar, realizar finas transformaciones de los objetos, cambiar en orden en el eje z (eje que define la dimensión de profundidad en 3D) y combinar objetos primarios para componer objetos más complejos

* Hay otro tipo de operaciones de un nivel mucho más sofisticado que incluye acciones sobre objetos cerrados tales como: unir o soldar, combinar intersecar y diferenciar.

Los gráficos vectoriales son ideales para dibujos simples y compuestos que necesitan tener formas independientes o que no necesitan tener un carácter de realismo fotográfico.

Formatos Vectoriales.

* PostScript
* Portable Document Format (PDF)
* Scalable Vector Graphics (SVG)
* Adobe Flash (SWF)
* [Metaarchivo de Windows]] (WMF)
* Illustrator (AI)
* Corel Draw (CDR)
* FreeHand (FH9, FH10, FH11, etc)
* Drawing eXchange File, formato de intercambio de Autocad (DXF)
* IGES
* HPGL: (HP Graphic Language), Un estándar de facto para los trazadores gráficos (Plotter).

Ventajas y desventajas.

Ventajas

* Dependiendo del tipo de imagen, las imágenes vectoriales pueden requerir menor espacio en disco que un bitmap. Las imágenes formadas por colores planos o degradados sencillos son más factibles de ser vectorizadas. A menor información para crear la imagen, menor será el tamaño del archivo. Dos imágenes con dimensiones de presentación distintas pero con la misma información vectorial, ocuparán el mismo espacio en disco.
* No pierden calidad al ser escalados, rotados o deformados. Ciertamente, se puede hacer zoom sobre una imagen vectorial de forma ilimitada. En el caso de las imágenes rasterizadas, llega un momento en el que el zoom revela que la imagen está compuesta por píxeles.
* Los parámetros de los objetos configurados por medio de vectores puedes ser guardados y modificados en el futuro.
* Algunos formatos permiten animación. Está se realiza de forma sencilla mediante operaciones básicas como traslación o rotación y no requiere un gran acopio de datos, ya que lo que se hace es reubicar los nodos base de los vectores en nuevos puntos dentro de los ejes x, y y z en el caso de 3D.

Desventajas

* Los gráficos vectoriales no son aptos para mostrar fotografías o imágenes complejas, aunque algunos formatos admiten una composición mixta (vector + imagen bitmap).
* Los datos que describen el gráfico vectorial deben ser procesados, es decir, el computador debe sumar todos los datos para formar la imagen final. Si hay demasiados datos se puede ralentizar la presentación de la imagen, incluso en imágenes pequeñas.
* Por más que se construya una imagen con gráficos vectoriales su visualización tanto en pantalla, como en la mayoría de sistemas de impresión, en última instancia tiene que hacer una traducción a sistema rasterizado.

Impresión

Un punto clave en las artes finalizadas vectorialmente es su practica aplicación en el momento de la impresión ya que es posible escalarlas y aumentar su definición de forma ilimitada. Por ejemplo: se puede tomar el mismo logo vectorizado imprimirlo en una tarjeta personal, y después, agrandarlo e imprimirlo en una valla manteniendo en ambas imágenes el mismo nivel de calidad.

Otro modo de impresión en donde los gráficos vectoriales son importantes es en el proceso del plotter de corte, ya que este, como su nombre lo indica, busca cortar áreas de color diseñadas por el usuario a partir de una archivo digital, estas figuras deben estar construidas a partir de vectores los cuales son interpretados por el plotter como las líneas límite por donde debe pasar la cuchilla que en en lugar de dibujar, corta el material.

Ejemplo de las imagenes vectoriales.

Este es un ejemplo en donde se enfrentan los gráficos vectoriales (columna de la izquierda) frente a los gráficos rasterizados (columna de la derecha). Como se puede ver a medida que se aumenta el zoom, los gráficos de la izquierda mantienen su calidad en tanto los de la derecha van evidenciando los píxeles que conforman la imagen. Los gráficos vectoriales pueden ser escalados ilimitadamente sin perder las características de sus parámetros.  Existen dos ejemplos de acercamiento de 300% y 600%; esto para ilustrar como los contornos de las figuras geométricas (curvas blancas atrás de la letra A) usualmente no aumentan proporcionalmente en la figura —segundo y tercer ejemplo no hace la corrección de este fenómeno— en tanto en los dos últimos si se realiza, lo cual permite ver una mancha visual similar tanto en el sectorizado como en el rasterizado.
Este es un ejemplo en donde se enfrentan los gráficos vectoriales (columna de la izquierda) frente a los gráficos rasterizados (columna de la derecha). Como se puede ver a medida que se aumenta el zoom, los gráficos de la izquierda mantienen su calidad en tanto los de la derecha van evidenciando los píxeles que conforman la imagen. Los gráficos vectoriales pueden ser escalados ilimitadamente sin perder las características de sus parámetros. Existen dos ejemplos de acercamiento de 300% y 600%; esto para ilustrar como los contornos de las figuras geométricas (curvas blancas atrás de la letra A) usualmente no aumentan proporcionalmente en la figura —segundo y tercer ejemplo no hace la corrección de este fenómeno— en tanto en los dos últimos si se realiza, lo cual permite ver una mancha visual similar tanto en el sectorizado como en el rasterizado.

Fuente Original. Wikipedia.

Categories: Apuntes Tags:

El Formato MNG (Multiple-image Network Graphics).

Sábado, 9 de Agosto de 2008 JvC Sin comentarios

El MNG (pronunciado ming) es un formato de fichero, libre de derechos, para imágenes animadas. Las iniciales significan Multiple-image Network Graphics.

El formato MNG está estrechamente vinculado al formato de imagen PNG. Cuando comenzó el desarrollo de PNG a principios del año 1995, se decidió no incorporar la gestión de la animación, porque se empleaba poco esta capacidad del formato GIF en ese tiempo. Sin embargo, se desarrolló rápidamente un formato que soportaba la animación, el formato MNG, una extensión del formato PNG.

La versión 1.0 de las especificaciones de MNG salió el 31 de enero 2001. MNG es pues muy reciente, y actualmente no se actualiza tanto como el PNG. Sin embargo varios navegadores como Netscape Navigator y Konqueror ya soportan MNG; y los plugins de MNG están disponibles para Mozilla, Opera e Internet Explorer. Los desarrolladores de MNG esperan que MNG comience a sustituir a largo plazo al GIF para imágenes animadas en la Red, de la misma forma que el formato PNG ya comenzó a hacerlo para imágenes fijas.

La estructura de los ficheros de formato MNG es básicamente idéntica a la de los ficheros PNG, difiriendo solamente en la firma (8A 4D 4E 47 0D 1A 0A en hexadecimal) y en la utilización de unidades de información discretas que proporcionan una gran variedad de dispositivos de animación. Las imágenes utilizadas en la animación se almacenan en el fichero MNG como una encapsulación de imágenes con formato PNG o JNG.

Se crearon también dos versiones de MNG de complejidad reducida: MNG-LC (baja complejidad) y MNG-VLC (complejidad muy baja). Éstas permiten a las aplicaciones incluir el soporte de MNG en cierta medida, sin tener que poner todas las especificaciones de MNG.

MNG no dispone aún de un tipo registrado de soporte de vídeo MIME, pero se puede utilizar vídeo/x-mng.

Son muy pocos los navegadores que soportan este formato. Safari no lo soporta. Mozilla retiró el soporte de MNG en la versión 1.5a y todas las futuras versiones, y no parece solucionarse al reinstalarlo por ahora [1], a pesar de las objeciones de la comunidad [2]. El plugin oficioso de Firefox puede utilizarse para integrar el soporte en Mozilla. Hay que indicar que los programadores intentan crear una alternativa a Mozilla, llamada MNGzilla, integrando MNG.

Enlaces externos

Categories: Apuntes Tags:

El Formato JPEG (Joint Photographic Experts Group)

Sábado, 9 de Agosto de 2008 JvC Sin comentarios

JPEG (Joint Photographic Experts Group) es un algoritmo diseñado para comprimir imágenes con 24 bits de profundidad o en escala de grises. JPEG es también el formato de fichero que utiliza este algoritmo para comprimir imágenes. JPEG sólo trata imágenes fijas, pero existe un estándar relacionado llamado MPEG para videos. El formato de archivos JPEG se abrevia frecuentemente JPG debido a que algunos sistemas operativos sólo aceptan tres letras de extensión.

JPEG es un algoritmo de compresión con pérdida. Esto significa que al descomprimir la imagen no obtenemos exactamente la misma imagen que teníamos antes de la compresión.

Una de las características que hacen muy flexible el JPEG es el poder ajustar el grado de compresión. Si especificamos una compresión muy alta se perderá una cantidad significativa de calidad, pero obtendremos ficheros de pequeño tamaño. Con una tasa de compresión baja obtenemos una calidad muy parecida a la del original, y un fichero mayor.

Esta pérdida de calidad se acumula. Esto significa que si comprime una imagen y la descomprime obtendrá una calidad de imagen, pero si vuelve a comprimirla y descomprimirla otra vez obtendrá una perdida mayor. Cada vez que comprima y descomprima la imagen, esta perderá algo de calidad.

El formato de ficheros JPEG o JPG fue creado por un grupo independiente, llamado JFIF (JPEG File Interchange Format), quienes se encargan sólo de la utilización del algoritmo JPEG para almacenar imágenes. Existen otros formatos de fichero que también utilizan el algoritmo JPEG, el más conocido de ellos es JNG.

JPEG/JFIF es el formato más utilizado para almacenar y transmitir archivos de fotos en la Web. Pero la compresión con pérdida del formato no conviene a diagramas que incluyen textos y líneas.

El algoritmo de compresión JPEG se basa en dos defectos visuales del ojo humano, uno es el hecho de que es mucho más sensible al cambio en la luminancia que en la crominancia, es decir, notamos más claramente los cambios de brillo que de color. El otro es que notamos con más facilidad pequeños cambios de brillo en zonas homogéneas que en zonas donde la variación es grande, por ejemplo en los bordes de los cuerpos (entiéndase por cuerpo cualquier cosa y no un cuerpo humano).

El algoritmo JPEG, transforma la imagen en cuadrados de 8×8 y luego almacena cada uno de estos como una combinación lineal o suma de los 64 recuadros que forman esta imágen, esto permitie eliminar detalles de forma selectiva, por ejemplo, si una casilla tiene un valor muy próximo a 0, puede ser eliminada sin que afecte mucho a la calidad

El algoritmo JPEG, transforma la imagen en cuadrados de 8×8 y luego almacena cada uno de estos como una combinación lineal o suma de los 64 recuadros que forman esta imágen, esto permitie eliminar detalles de forma selectiva, por ejemplo, si una casilla tiene un valor muy próximo a 0, puede ser eliminada sin que afecte mucho a la calidad.

Codificación.

Muchas de las opciones del estándar JPEG seusan poco. Esto es una descripción breve de uno de los muchos métodos comúnmente usados para comprimir imágenes cuando se aplican a una imagen de entrada con 24 bits por pixel (ocho por cada rojo, verde, y azul). Esta opción particular es un método de compresión con pérdida.

Transformación del espacio de color.

Comienza convirtiendo la imagen desde su modelo de color RGB a otro llamado YUV ó YCbCr. Este espacio de color es similar al que usan los sistemas de color para televisión PAL y NTSC, pero, es mucho más parecido al sistema de televisión MAC.

Este espacio de color (YUV) tiene tres componentes:

* La componente Y, o Luminancia (información de brillo), es decir, la imagen en escala de grises.
* Las componentes U o Cb y V o Cr, respectivamente Saturación (la cantidad de blanco, o la pureza del color) y Tono (el nombre del color propiamente dicho, o la longitud de onda asociada); ambas señales son conocidas como Crominancia (información de color).

El resultado es una imagen en la que la luminancia está separada de la crominancia.

Las ecuaciones que realizan éste cambio de base de RGB a YUV son las siguientes:

Y = 0.257 * R + 0.504 * G + 0.098 * B + 16

Cb = U = -0.148 * R – 0.291 * G + 0.439 * B + 128

Cr = V = 0.439 * R – 0.368 * G – 0.071 * B + 128

Las ecuaciones para el cambio inverso se pueden obtener despejando de las anteriores y se obtienen las siguientes:

B = 1.164 * (Y – 16) + 2.018 * (U – 128)

G = 1.164 * (Y – 16) – 0.813 * (V – 128) – 0.391 * (U – 128)

R = 1.164 * (Y – 16) + 1.596 * (V – 128)

NOTA: Estas ecuaciones están en continua investigación con lo que se pueden encontrar por libros y red otras ecuaciones distintas pero con coeficientes muy parecidos.

Si se analiza el primer trío de ecuaciones veremos que las tres componentes toman como valor mínimo el 16. El canal de luminancia (canal Y) tiene como valor máximo el 235, mientras que los canales de crominancia el 240, todos estos valores caben en un byte haciendo redondeo al entero más próximo.

Durante esta fase no hay pérdida de información.

NOTA: Esta última afirmación no es del todo cierta ya que debido a los redondeos se introduce un pequeño margen de error aunque imperceptible para el ojo humano.

Submuestreo.

Una opción que se puede aplicar al guardar la imagen, es reducir la información del color respecto a la de brillo (debido al defecto en el ojo humano comentado anteriormente). Hay varios métodos: si este paso no se aplica, la imagen sigue en su espacio de color YUV, (este submuestreo se entiende como 4:4:4), con lo que la imagen no sufre pérdidas. Puede reducirse la información cromática a la mitad, 4:2:2 (reducir en un factor de 2 en dirección horizontal), con lo que el color tiene la mitad de resolución (en horizontal), y el brillo sigue intacto. Otro método, muy usado, es reducir el color a la cuarta parte, 4:2:0, en el que el color se reduce en un factor de 2 en ambas direcciones, horizontal y vertical. Si la imagen de partida estaba en escala de grises (blanco y negro), puede eliminarse por completo la información de color, quedando como 4:0:0.
Algunos programas que permiten el guardado de imágenes en JPEG (como el que usa GIMP) se refieren a estos métodos con 1×1,1×1,1×1 para YUV 4:4:4 (no perder color), 2×1,1×2,1×1 para YUV 4:2:2 y 2×2,1×1,1×1 para el último método, YUV 4:2:0.

Las técnicas algorítmicas usadas para este paso (para su reconstrucción exactamente) suelen ser interpolación bilineal, vecino más próximo convolución cúbica, Bezier, b-spline y Catmun-Roll.

Transformación discreta de coseno o DCT
Entonces, cada componente de la imagen se divide en pequeños bloques de 8×8 píxeles, que se procesan de forma casi independiente, de esto resulta la formación de los bloques, que se hace notable en imágenes guardadas con altas compresiones. Si la imagen sufrió un submuestreo del color, los colores quedarían en la imagen final en bloques de 8×16 y 16×16 pixeles, según fuese 4:2:2 o 4:2:0.

Después cada pequeño bloque se convierte al dominio de la frecuencia a través de la transformación discreta de coseno bidimensional, abreviadamente llamada DCT.

Un ejemplo de uno de esos pequeños bloques de 8×8 inicial es este:

\begin 52 & 55 & 61 & 66 & 70 & 61 & 64 & 73 \\ 63 & 59 & 55 & 90 & 109 & 85 & 69 & 72 \\ 62 & 59 & 68 & 113 & 144 & 104 & 66 & 73 \\ 63 & 58 & 71 & 122 & 154 & 106 & 70 & 69 \\ 67 & 61 & 68 & 104 & 126 & 88 & 68 & 70 \\ 79 & 65 & 60 & 70 & 77 & 68 & 58 & 75 \\ 85 & 71 & 64 & 59 & 55 & 61 & 65 & 83 \\ 87 & 79 & 69 & 68 & 65 & 76 & 78 & 94 \end

El siguiente proceso es restarles 128 para que queden números entorno al 0, entre -128 y 127.

\begin -76 & -73 & -67 & -62 & -58 & -67 & -64 & -55 \\ -65 & -69 & -73 & -38 & -19 & -43 & -59 & -56 \\ -66 & -69 & -60 & -15 & 16 & -24 & -62 & -55 \\ -65 & -70 & -57 & -6 & 26 & -22 & -58 & -59 \\ -61 & -67 & -60 & -24 & -2 & -40 & -60 & -58 \\ -49 & -63 & -68 & -58 & -51 & -60 & -70 & -53 \\ -43 & -57 & -64 & -69 & -73 & -67 & -63 & -45 \\ -41 & -49 & -59 & -60 & -63 & -52 & -50 & -34 \end

Se procede a la transformación por DCT de la matriz, y el redondeo de cada elemento al número entero más cercano.

\begin -415 & -30 & -61 & 27 & 56 & -20 & -2 & 0 \\ 4 & -22 & -61 & 10 & 13 & -7 & -9 & 5 \\ -47 & 7 & 77 & -25 & -29 & 10 & 5 & -6 \\ -49 & 12 & 34 & -15 & -10 & 6 & 2 & 2 \\ 12 & -7 & -13 & -4 & -2 & 2 & -3 & 3 \\ -8 & 3 & 2 & -6 & -2 & 1 & 4 & 2 \\ -1 & 0 & 0 & -2 & -1 & -3 & 4 & -1 \\ 0 & 0 & -1 & -4 & -1 & 0 & 1 & 2 \end

Nótese que el elemento más grande de toda la matriz aparece en la esquina superior izquierda, este es el coecifiente DC.

NOTA: Se ha comprobado que los resultados anteriormente expuestos están correctos.

Cuantificación.
Como ya habíamos comentado, el ojo humano es muy bueno detectando pequeños cambios de brillo en áreas relativamente grandes, pero no cuando el brillo cambia rápidamente en pequeñas áreas (variación de alta frecuencia), esto permite eliminar las altas frecuencias, sin perder excesiva calidad visual. Esto se realiza dividiendo cada componente en el dominio de la frecuencia por una constante para ese componente, y redondeándolo a su número entero más cercano. Este es el proceso en el que se pierde la mayor parte de la información (y calidad) cuando una imagen es procesada por este algoritmo. El resultado de esto es que los componentes de las altas frecuencias, tienden a igualarse a cero, mientras que muchos de los demás, se convierten en números positivos y negativos pequeños.

Una matriz de cuantificación típica es esta:

\begin 16 & 11 & 10 & 16 & 24 & 40 & 51 & 61 \\ 12 & 12 & 14 & 19 & 26 & 58 & 60 & 55 \\ 14 & 13 & 16 & 24 & 40 & 57 & 69 & 56 \\ 14 & 17 & 22 & 29 & 51 & 87 & 80 & 62 \\ 18 & 22 & 37 & 56 & 68 & 109 & 103 & 77 \\ 24 & 35 & 55 & 64 & 81 & 104 & 113 & 92 \\ 49 & 64 & 78 & 87 & 103 & 121 & 120 & 101 \\ 72 & 92 & 95 & 98 & 112 & 100 & 103 & 99 \end

Dividiendo cada coecifiente de la matriz de la imagen transformada entre cada coecifiente de la matriz de cuantificación, se obtiene esta matriz, ya cuantificada:

\begin -26 & -3 & -6 & 2 & 2 & -1 & 0 & 0 \\ 0 & -2 & -4 & 1 & 1 & 0 & 0 & 0 \\ -3 & 1 & 5 & -1 & -1 & 0 & 0 & 0 \\ -4 & 1 & 2 & -1 & 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end

Por ejemplo, cuantificando el primer elemento, el coecifiente DC, sería así:

\mathrm \left( \frac{-415} \right) = \mathrm \left( -25.9375 \right) = -26

Codificación entrópica.
La codificación entrópica es una forma especial de la compresión sin pérdida de datos. Para ello se cogen los elementos de la matriz siguiendo una forma de zig-zag, poniendo grupos con frecuencias similares juntos, e insertando ceros de codificación, y usando la Codificación Huffman para lo que queda. También se puede usar la codificación aritmética, superior a la de Huffman, pero que rara vez se usa, ya que está cubierta por patentes, esta compresión produce archivos un 5% menores, pero a costa de un mayor tiempo de codificación y decodificación, esta pequeña ganancia, puede emplearse también en aplicar un menor grado de compresión a la imagen, y obtener más calidad para un tamaño parecido.

En la matriz anterior, la secuencia en zig-zag, es esta:
−26, −3, 0, −3, −2, −6, 2, −4, 1 −4, 1, 1, 5, 1, 2, −1, 1, −1, 2, 0, 0, 0, 0, 0, −1, −1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

JPEG tiene un código Huffman para cortar la cadena anterior en el punto en el que el resto de coecifientes sean ceros, y así, ahorrar espacio:
−26, −3, 0, −3, −3, −6, 2, −4, 1 −4, 1, 1, 5, 1, 2, −1, 1, −1, 2, 0, 0, 0, 0, 0, −1, −1, EOB

Ruido producido por la compresión

El resultado tras la compresión, puede variar, en función de la agresividad de los divisores de la matriz de cuantización, a mayor valor de esos divisores, más coecifientes se convierten en ceros, y más se comprime la imagen. Pero mayores compresiones producen mayor ruido en la imagen, empeorando su calidad. Una imagen con una fuerte compresión (1%-15%) puede tener un tamaño de archivo mucho menor, pero tendrá tantas imperfecciones que no será interesante, una compresión muy baja (98%-100%) producirá una imagen de muy alta calidad, pero, tendrá un tamaño tan grande que quizás interese más un formato sin pérdida como PNG.

La mayoría de personas que naveguen por Internet estarán familiarizadas con estas imperfecciones, son el resultado de lograr una buena compresión; para evitarlos, se tendrá que reducir el nivel de compresión o aplicar compresión sin pérdida, produciendo mayores ficheros después.

Decodificación

El proceso es similar al seguido hasta ahora, sólo que de forma inversa. En este caso, al haber perdido información, los valores no coincidirán.

Se coge la información de la matriz, se descodifica, y se pone cada valor en su casilla correspondiente. Después se multiplica cada uno de estos valores por el valor correspondiente de la matriz de cuantización usada, como muchos valores son ceros, sólo se recuperan ( y de forma aproximada) los valores de la esquina superior izquierda.

Después se deshace la transformación DCT:

\begin -416 & -33 & -60 & 32 & 48 & -40 & 0 & 0 \\ 0 & -24 & -56 & 19 & 26 & 0 & 0 & 0 \\ -42 & 13 & 80 & -24 & -40 & 0 & 0 & 0 \\ -56 & 17 & 44 & -29 & 0 & 0 & 0 & 0 \\ 18 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end
\begin -68 & -65 & -73 & -70 & -58 & -67 & -70 & -48 \\ -70 & -72 & -72 & -45 & -20 & -40 & -65 & -57 \\ -68 & -76 & -66 & -15 & 22 & -12 & -58 & -61 \\ -62 & -72 & -60 & -6 & 28 & -12 & -59 & -56 \\ -59 & -66 & -63 & -28 & -8 & -42 & -69 & -52 \\ -60 & -60 & -67 & -60 & -50 & -68 & -75 & -50 \\ -54 & -46 & -61 & -74 & -65 & -64 & -63 & -45 \\ -45 & -32 & -51 & -72 & -58 & -45 & -45 & -39 \end

Y finalmente se suma 128 a cada entrada:

\begin 60 & 63 & 55 & 58 & 70 & 61 & 58 & 80 \\ 58 & 56 & 56 & 83 & 108 & 88 & 63 & 71 \\ 60 & 52 & 62 & 113 & 150 & 116 & 70 & 67 \\ 66 & 56 & 68 & 122 & 156 & 116 & 69 & 72 \\ 69 & 62 & 65 & 100 & 120 & 86 & 59 & 76 \\ 68 & 68 & 61 & 68 & 78 & 60 & 53 & 78 \\ 74 & 82 & 67 & 54 & 63 & 64 & 65 & 83 \\ 83 & 96 & 77 & 56 & 70 & 83 & 83 & 89 \end

Para comparar las diferencias entre el bloque original y el comprimido, se halla la diferencia entre ambas matrices, la media de sus valores absolutos, da una ligera idea de la calidad perdida:

\begin -8 & -8 & 6 & 8 & 0 & 0 & 6 & -7 \\ 5 & 3 & -1 & 7 & 1 & -3 & 6 & 1 \\ 2 & 7 & 6 & 0 & -6 & -12 & -4 & 6 \\ -3 & 2 & 3 & 0 & -2 & -10 & 1 & -3 \\ -2 & -1 & 3 & 4 & 6 & 2 & 9 & -6 \\ 11 & -3 & -1 & 2 & -1 & 8 & 5 & -3 \\ 11 & -11 & -3 & 5 & -8 & -3 & 0 & 0 \\ 4 & -17 & -8 & 12 & -5 & -7 & -5 & 5 \end

Se puede observar que las mayores diferencias están cerca de la mancha, y por la parte inferior, entre la esquina izquierda y el centro, notándose más esta última, ya que corre una mancha clara que antes estaba más hacia la esquina. La media de los valores absolutos de las restas es 4.8125, aunque en algunas zonas es mayor.

Esquema del modelo RGB

Esquema del modelo RGB

Esquema del modelo YUV

Esquema del modelo YUV

Categories: Apuntes Tags:

El Formato GIF (Graphics Interchange Format)

Sábado, 9 de Agosto de 2008 JvC Sin comentarios

GIF (Compuserve GIF o Graphics Interchange Format) es un formato gráfico utilizado ampliamente en la World Wide Web, tanto para imágenes como para animaciones.

El formato fue creado por CompuServe en 1987 para dotar de un formato de imagen a color para sus áreas de descarga de ficheros, sustituyendo su temprano formato RLE en blanco y negro. GIF llegó a ser muy popular porque podía usar el algoritmo de compresión LZW (Lempel Ziv Welch) para realizar la compresión de la imagen, que era más eficiente que el algoritmo Run-Lenght Encoding (RLE) usado por los formatos PCX y MacPaint. Por lo tanto, imágenes de gran tamaño podían ser descargadas en un razonable periodo de tiempo, incluso con modems muy lentos.

GIF es un formato sin pérdida de calidad, siempre que partamos de imágenes de 256 colores o menos. Una imagen de alta calidad, como una imagen de color verdadero (profundidad de color de 24 bits o superior) debería reducir literalmente el número de colores mostrados para adaptarla a este formato, y por lo tanto existiría una pérdida de calidad.

Caracteristicas.
Existen diferentes versiones de este formato (GIF87a, GIF89a …).

Sus principales características son:

* Profundidad de color: 8 bits máximo (256 colores simultáneos)
o Uso de color indexado, a través de una paleta de colores que puede ser de distintos tamaños, dependiendo del valor del Size of Local Color Table, que tiene un tamaño de 3 bits. El número de colores se puede calcular mediante la fórmula: 2(Size of Local Color Table+1) Esto permite a GIF usar una paleta de 2,4,8,16,32,64,128 ó 256 colores.
o Aunque con mediante el uso de varias capas transparentes (con un máximo de 256 colores en cada una) separadas por 0 milisegundos (simultáneas) entre ellas, si pueden mostrarse imágenes con más de 24 colores diferentes [1] y [2], permitiendo mostrar un color real. Pese a esto, esta última técnica es poco eficiente, y rara vez se usa, y cuando se hace es sobre todo para demostrar esta posibilidad, a veces, estas imágenes no aparecen simultáneamente sino que va apareciendo cada una de las capas sucesivamente. En este caso, cada capa sería un cuadrado de 16 por 16, en el que como mucho se podrían mostrar 256 colores, la imagen se divide en dichos recuadros, y se van superponiendo uno sobre otro.
* Permite transparencia de 1 bit, de tal forma que cada pixel de la imagen puede ser o no transparente. Esto lo diferencia de formatos como el PNG, que también dispone transparencia variable.
* Sus últimas versiones permiten hacer animaciones simples, aunque la compresión es muy deficiente.
* Permite utilizar entrelazado en imágenes, de tal forma que las imágenes se visualicen al completo nada más empezar su descarga, pero con una baja definición que va progresando hasta cargarse por completo en los navegadores.

Patentes.
Unisys, propietario de la patente del algoritmo LZW que se utiliza en el formato GIF reclamó durante años el pago de regalías por su uso. Compuserve, al desarrollar el formato, no sabía que el algoritmo LZW estaba cubierto por una patente. Debido a esto, cualquier programa capaz de abrir o guardar archivos GIF comprimidos con LZW debía cumplir con sus exigencias. Esto hace que su uso sea desaconsejado por el W3C, y perjudicial para el software libre y proyectos libres como Wikipedia. Es necesario recalcar que el formato GIF puede utilizar otros métodos de compresión no cubiertos por patentes, como el método Run-length encoding.

El 20 de junio de 2003 expiró en Estados Unidos la patente por el algoritmo LZW. Muchos llamaron a este día el Día de la liberación del GIF.

Ejemplo de Imagen GIF.

Animación de la tierra en formato GIF.

Animación de la tierra en formato GIF.
Categories: Apuntes Tags:

¿Qué es una imagen? y Formatos

Sábado, 9 de Agosto de 2008 JvC Sin comentarios

En informática puede tener dos significados:

  • Una imagen puede ser un archivo codificado que, al abrirlo, muestra una representación visual de algo (ya sea fotografía, gráfica, dibujo, etc.)
  • También puede ser un archivo en el cual está toda la información de una unidad (disco duro, CD…). Este archivo se puede usar como “molde” para configurar nuevos ordenadores sin tener que realizar todos los procesos de instalación de un sistema nuevo y a la vez sirve como copia de seguridad de los datos de ese ordenador antes de realizar alguna operación sobre él.

FORMATOS DE IMAGEN

BMP

Extensión: .bmp

Profundidad de Color:

  • 1 (Mapa de bits)
  • 4-8 bits (Escala grises)
  • 8 bits (Color Indexado)
  • 24 bits(RGB)

Modos Color:

  • Modos RGB
  • Color Indexado,
  • Escala de Grises,
  • Mapa de Bits

Canales Alfa:

No

Comprime:

NO (excepto en 4 y 8 bits)

Nota:

  • Formato estandar IBM PC,
  • Uso: fondo escritorio, o imagenes sencillas de hasta 256 colores

GIF (Graphics Interchange Format)

Extensión: .gif

Profundidad de Color:

  • 8 bits (256 colores)
Modos de color:
  • Compuserve GIF: Mapa de bitsEscala de grisesColor indexado
  • GIF89a (GIF Animado): Color Indexado RGB
Canales Alfa:
No
Comprime:
SI (LZW)
Nota:
  • Creado por Compuserve en 1987
  • Gráficos color indexado
  • Posibilidad visualización entrelazada (aparición gradual)
  • Transparencia y · Animación
  • Uso: Internet

PICT

Extensión: .pct; .pic

Profundidad de Color:

  • RGB: 16/32 bits
  • Escala Grises: 2,4, 8 bits
Modos de color:
  • Mapa de bits (sin canalaes Alfa)
  • Escala de grises
  • Color Indexado
  • RGB (1 canal)
Canales Alfa:
Si (1)
Comprime:
  • SI (sin pérdidas)
  • (con QuicTime: 4 opciones para JPEG)
Nota:
  • Estándar de Macintosh
  • Bueno para compresión imágenes con área color sólido
  • Uso: Transferencia de gráficos entre aplicaciones

JPEG (Joint Photographic Expert Group)

Extensión: .jpg; .jpe

Profundidad de Color: 24 bits

Modos de color:

  • · Escala de grises
  • · RGB
  • · CMYK

Canales Alfa:

No

Comprime:
SI: DIVERSAS CALIDADES (con pérdidas)
Nota:
  • Junto con GIF y PNG el formato de Internet para gráficos y fotografías.
  • Formato de color verdadero en el que no se produce pérdida de color, aunque si se comprime SI, pues se eliminan datos.
  • Uso: fotografías Internet

PNG (Portable Networks Graphics)

Extensión: .png

Profundidad de Color: 24 bits

Modos de color:

  • Mapa de bits
  • Escala Grises,
  • Color Indexado,
  • RGB
Canales Alfa:
  • Mapa de bits ( 0 canal)
  • Escala Grises, (1 canal)
  • Color Indexado (0 canal),
  • RGB (1 canal)
Comprime:
SI (sin pérdidas)
Nota:
  • Mayor capacidad de almacenamiento y capacidades que el GIF
  • Genera transparencias de fondo sin bordes dentados
  • No muy extendido, con el tiempo sustituirá al GIF
  • Uso: Internet

TIF (Tag Image File Format)

Extensión: .tif

Profundidad de Color: 32 bits

Modos de color:

  • Mapa de bits sin canales Alfa
  • Escala de Grises con canales Alfa y archivos Lab
  • Color Indexado
  • RGB con canales Alfa y archivos Lab· · · CMYK

Canales Alfa:

Si

Comprime:

SI (LZW)

(Se puede especificar si para IBMPC o Mac)

Nota:

  • Desarrollado por Aldus Corporation.
  • Reconocido por casi todoslos programas de Pintura y Vectorización·
  • Compatible IBM PC y Mac
  • Uso: Imprenta e intercambio de archivos
Categories: Apuntes Tags: