Page 1

Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Técnicas de Gráficos por Computadora

Unidad 1

Conceptos Básicos de 2D

Ing. Leandro R. Barbagallo Ing. Matias N. Leone

Última revisión: 17 Ago 2010


Unidad 1 - Conceptos básicos de 2D

2

Contenido Imagen digital .............................................................................................................................................. 3 Modelo de color RGB............................................................................................................................... 4 Representaciones numéricas ................................................................................................................. 6 Modelo de color CMYK ........................................................................................................................... 6 Subpíxeles................................................................................................................................................ 8 Bitmap ......................................................................................................................................................... 9 Profundidad de color............................................................................................................................... 10 Monocromo ........................................................................................................................................ 10 Color Indexado ................................................................................................................................... 11 Color directo....................................................................................................................................... 12 Vectores y Bitmaps .................................................................................................................................... 13 Sistema de coordenadas.............................................................................................................................. 16 Formato de imágenes ................................................................................................................................. 18 Dimensiones........................................................................................................................................... 18 Proporción de aspecto............................................................................................................................. 18 Movimiento en las imágenes ...................................................................................................................... 22 Almacenamiento de imágenes .................................................................................................................... 23 Tasa de transferencia en dispositivos gráficos ......................................................................................... 24 Compresión de imágenes........................................................................................................................ 25 Técnicas de compresión ......................................................................................................................... 26 Run Length Encoding – RLE .............................................................................................................. 27 Codificación Lempel-Ziv.................................................................................................................... 27 Codificación Huffman ........................................................................................................................ 27 Transformada de coseno discreta (DCT).............................................................................................. 27 Bibliografía ................................................................................................................................................ 29


3

Técnicas de Gráficos por Computadora

Imagen digital

Si observamos una pantalla del monitor lo suficientemente cerca podremos notar que la imagen que se muestra en la misma está compuesta por pequeños puntos de colores, denominados píxeles píxeles. es Un píxel es la mínima unidad de color que compone una imagen digital. La misma proviene de la contracción de pix (por “picture”) y el (por “element”) y tiene distintos significados dependiendo del contexto, ya que puede haber píxeles en una imagen digital, en una página impresa, en un monitor CRT o LCD, en una cámara fotográfica, etc.

Píxel

Pixel en una imagen

Aquí haremos una distinción importante entre:


Unidad 1 - Conceptos básicos de 2D

4

• Píxel entendido como muestra individual de una imagen, la cual no tiene tamaño ni forma. Es decir que es solo información sobre la imagen, por lo tanto es adimensional e independiente del dispositivo que lo va a mostrar. Más adelante veremos que hay una estructura que le da a un conjunto de píxeles el formato necesario para que esta sea interpretada de una forma en particular. • Píxel entendido como punto físico de una imagen en el dispositivo, el cual posee un tamaño fijo, una forma determinada y depende de la tecnología empleada en cada dispositivo en particular, ya que no todos los ellos tienen la misma distribución de píxeles sobre su superficie. En la sección Subpíxeles se muestran ejemplos de las diversas formas de distribuir píxeles en una pantalla. Por otro lado, podemos definir formalmente una imagen digital como un arreglo bidimensional de muestras discretas, en donde a cada posición de la imagen ( x, y ) le corresponde un valor f ( x, y ) el cual representa la intensidad o color de cada pixel. La forma en la que se almacena el resultado de f ( x, y ) en la computadora es a través de una representación finita de bits. Es por eso que a continuación veremos las distintas formas de representar de forma numérica los colores en la computadora.

Modelo de color RGB Existen varias formas de representar un color determinado, y una de las más conocidas es a través del modelo RGB (Red, Green, Blue, o rojo, verde y azul). En este sistema cada color se forma por medio de la combinación de tres colores primarios: Rojo, Verde y Azul. Este modelo se encuentra dentro del tipo aditivo ya que los colores se forman con la mezcla por adición de distintas intensidades de los tres colores primarios.

Modelo aditivo de colores

Según la teoría tricromática de la visión en color, un observador puede igualar un estímulo de color mediante una mezcla aditiva de tres primarios. Por lo tanto, cualquier estímulo cromático se puede especificar mediante la cantidad de primarios que un observador necesitará para igualar o hacer corresponder ese estímulo.


5

Técnicas de Gráficos por Computadora

Basándose en esta teoría, en modelo RGB, a cada imagen la podemos descomponer en tres canales distintos, en donde cada uno contiene las distintas intensidades de rojo, verde y azul. En la figura de abajo vemos un ejemplo de una imagen y sus tres canales.

Los tres canales RGB por separado

Cada uno de estos canales, posee una matriz de valores que puede variar entre 0 y 1, o entre 0 y 255 dependiendo del tipo de representación elegida. Por lo general se suele utilizar el rango 0 a 255, en donde se utilizan 8 bits, siendo el 0 la ausencia del color en la mezcla y 255 aportando la máxima intensidad a la mezcla. A continuación nombraremos las distintas convenciones para representar colores numéricamente.


Unidad 1 - Conceptos básicos de 2D

6

Representaciones numéricas Existen distintas formas de representar cuantitativamente los valores de cada canal en el modelo RGB. • De 0.0 a 1.0, utilizando la representación de punto flotante. • De 0% a 100% como porcentaje. • Como número entero, por ejemplo de 0 a 255 utilizando el rango ofrecido por los 8 bits o de 0 a 65535 utilizando 16 bits. Color Rojo Verde Azul Amarillo Cian Magenta Negro Blanco

Tabla 1 - Representaciones numéricas de los colores Punto flotante Porcentaje (1.0, 0.0, 0.0) (100%, 0%, 0%) (0.0, 1.0, 0.0) (0%, 100%, 0%) (0.0, 0.0, 1.0) (0%, 0%, 100%) (1.0, 1.0, 0.0) (100%, 100%, 0%) (0.0, 1.0, 1.0) (0%, 100%, 100%) (1.0, 0.0, 1.0) (100%, 0%, 100%) (0.0, 0.0, 0.0) (0%, 0%, 0%) (1.0, 1.0, 1.0) (100%, 100%,100%)

Entero 8-bit (255, 0, 0) (0, 255, 0) (0, 0, 255) (255, 255, 0) (0, 255, 255) (255, 0, 255) (0, 0, 0) (255, 255, 255)

Es importante remarcar que el modelo de color RGB no es capaz de representar toda la gama de colores o Gamut que un humano puede percibir, por lo que no basta solo con aumentar la cantidad de intensidades distintas que puede tener cada canal. Existen otros modelos de color que cubren gamas de colores distintas. A continuación veremos un modelo de color distinto al RGB llamado CMYK.

Modelo de color CMYK A diferencia del modelo RGB que describimos anteriormente, el modelo de color CMYK (C C yan, M agenta, Yellow y Key) es un modelo del tipo sustractivo, ampliamente utilizado en la impresión offset y en las impresoras de chorro de tinta.


7

Técnicas de Gráficos por Computadora

Para este modelo se utiliza un fondo blanco, en donde se combinan los distintos pigmentos de Cian, Magenta, Amarillo y Negro para crear una gama de colores. Cada uno de estos pigmentos tiene la propiedad de absorber luz y de reflejar solo una parte de ella, por lo que entra dentro del tipo sustractivo. sustractivo

Los cuatro canales CMYK por separado

La gama de colores del modelo CMYK es más reducida que el del RGB. Podemos notar que algunos de sus colores se ven más apagados, comparándolos con el modelo aditivo de RGB. Por ejemplo el azul puro (0, 0, 255) se ve como un azul-violeta en CMYK.


Unidad 1 - Conceptos básicos de 2D

8

Subpíxeles La mayoría de los dispositivos gráficos de salida no son capaces de mostrar los tres canales de colores en una misma ubicación física, por lo que la mayoría de estos dividen cada píxel en tres subpí subp íxeles donde cada uno emite las intensidades de rojo, verde y azul por separado.

Subpíxeles

En la imagen de arriba podemos ver las distintas disposiciones geométricas en las que pueden estar los subpíxeles en distintos dispositivos de visualización. En la parte superior están las disposiciones de subpíxeles de pantallas de tubo de rayos catódicos (CRT) utilizado en las pantallas de televisores y en monitores de computadora, mientras que en la parte inferior se encuentran dos formas distintas de ordenar los subpíxeles en pantallas LCD.


9

Técnicas de Gráficos por Computadora

Bitmap A la hora de representar digitalmente una imagen en un medio de almacenamiento debemos definir una forma de estructurar su codificación y para eso debemos ponernos de acuerdo en sus dimensiones, cantidad de píxeles y en qué orden lo haremos. Un mapa de bits (Bitmap Bitmap) Bitmap o también llamado Raster es un tipo de estructura de datos utilizada para almacenar imágenes digitales la cual debe contener mínimamente los siguientes elementos: • Un formato de imagen, en el cual entre sus elementos más importantes se encuentran: o Dimensiones, Dimensiones ancho y alto de la imagen expresado en cantidad de píxeles. o Formato de píxel, la forma de codificar cada muestra, en donde el factor más importante es la profundidad de color. color • Un conjunto de píxeles, tantos como indique su formato.

El formato de imagen en la mayoría de los casos se almacena en el encabezado del archivo y suele tener un tamaño fijo.

En las próximas secciones veremos en más detalle cada uno de estos elementos, y veremos cuáles son las dimensiones y formatos de píxel estándar utilizados en la actualidad.


Unidad 1 - Conceptos básicos de 2D

10

Profundidad de color Siendo el pixel la unidad fundamental que conforma una imagen, surge la pregunta de cómo representar digitalmente el valor de cada muestra. Es ahí donde se utiliza el concepto de profundidad de color (Color Depth) que describe la cantidad de bits que se utilizan para representar el valor de un píxel expresado en B pp (bits per píxel). El mismo de alguna manera determina la cantidad de información que puede contener cada píxel. Como resultado de esto, a mayor cantidad de bits por píxel más amplio es el rango relativo de colores a representar. En los formatos de imágenes digitales, cada uno de los valores de los componentes de cada píxel es expresado como un entero positivo. El rango de valores de un componente de color está determinado por la precisión precisi n de muestro que es el numero de bits utilizados para representar un componente. Los valores de estos componentes puede ir de un rango de 0 a 2 precisión de muestra − 1 , variando este número entre 2 y 16 millones de valores. Las profundidades de color más utilizadas son: Tabla 2 - Profundidades de colores más utilizadas Bpp Nombre común

1 2 4 8 16 24 32

Monocromo CGA EGA VGA indexado XGA HiColor SVGA TrueColor TrueColor + Canal Alfa

Cantidad de colores disponibles 2 4 16 256 65.536 16.777.216 16.777.216

Monocromo Es el caso donde un píxel es representado con un único bit, es decir bpp = 1 . Este formato puede ser utilizado para imágenes que solo contengan dos valores, como por ejemplo blanco o negro. Si bien no es utilizado para almacenar imágenes fotográficas, si lo es para definir máscaras (concepto que vamos a desarrollar en otras unidades), con las que se puede utilizar un Bitmap para cubrir a otro.


11

Técnicas de Gráficos por Computadora

La ventaja de este formato es que es muy compacto ya que en un único bit pueden almacenarse hasta ocho píxeles.

Es necesario aclarar que algunos autores reservan término Bitmap para formatos donde cada píxel es un único bit, mientras que llaman Pixmap a aquellos con píxeles de más de un bit, sin embargo en este texto nos referiremos a ambos términos de forma indistinta. Color Indexado Se denomina color indexado a aquellos formatos con profundidades de color de hasta 8 Bpp, en los cuales los valores de los píxeles no representan directamente el color, sino que hace referencia a un índice de una tabla llamada mapa o paleta de colores que contiene los valores RGB finales. Esta paleta de colores puede ser estándar del sistema operativo o puede adaptarse dependiendo de las necesidades. La principal ventaja de este formato es que ocupa muy poco espacio, sin embargo se dispone de una paleta con una cantidad de colores limitada.


Unidad 1 - Conceptos básicos de 2D

12

Color directo Como vimos anteriormente, el color indexado es indirecto ya que hace referencia a posiciones de una paleta de colores, sin embargo existe lo que se denomina color directo donde se codifica en cada valor de píxel la intensidad de cada uno de sus canales rojo, verde y azul del modelo RGB. Los dos colores directos más utilizados son:

HiColor También denominado HighColor, es un formato en el que se utilizan 15 o 16 bpp logrando alcanzar una combinación de 32 mil o 65 mil colores. En la versión de 15 bits se usan 5 bits para rojo, 5 para el verde y 5 para el azul, llegando a 32.768 colores, mientras que en la versión de 16 bits se utilizan 5 bits para el rojo, 5 para el azul y, ya que el ojo humano es más sensible al color verde, se reservan 6 bits para representar 64 niveles de verde.

TrueColor Este formato mayormente utilizado en los dispositivos gráficos de la actualidad, utiliza 24 bpp es decir 8 para rojo, 8 para verde y 8 para azul, los cuales combinados se obtienen un total de 16.777.216 colores, los suficientes como para que el ojo humano no pueda distinguir entre un tono y otro. Recordemos que como se dijo anteriormente, el modelo TrueColor no puede producir tonos de colores fuera del espacio de color RGB. Muchas veces se utilizan los 8 bits restantes para el canal alfa alfa con el fin de completar los 32 bits por píxel, el cual es utilizado para lograr imágenes traslúcidas.


13

Técnicas de Gráficos por Computadora

Vectores y Bitmaps Dentro de las distintas formas que existen para representar imágenes digitales, se destacan dos grandes tipos, los gráficos basados en Bitmaps o Raster y los basados en Vectores. Cada uno de estos posee distintas formas de solucionar el problema de la representación eficiente de imágenes dentro de una computadora, por lo que es importante conocer sus distintos usos, sus ventajas y desventajas. Comencemos por los gráficos basados en Bitmaps, los cuales vimos en la sección anterior. Los gráficos del tipo Bitmap, como ya dijimos, son un arreglo bidimensional donde cada elemento representa un color en una ubicación específica. Cuando se visualiza un Bitmap en un dispositivo gráfico, a cada elemento de este arreglo le corresponde un píxel dentro de la pantalla. Es precisamente por esto que son dependientes de la resolución, resolución entendiendo a resolución como la cantidad de píxeles que existen en una unidad de longitud, expresada en dpi (dots per inch) o ppi (píxels per inch). Por ejemplo, un Bitmap que se muestra en la pantalla de la computadora tiene aproximadamente 100 dpi, mientras que en una impresora imprime en el rango de los 300 dpi. El problema que surge de la dependencia en la resolución es en el momento de redimensionar el Bitmap. Al reducirlo se está obligado a quitarle información a la imagen y al ampliarlo se deben crear nuevos píxeles mediante un proceso de interpolación donde se tiene que estimar los colores de los nuevos píxeles basados en los valores de los que lo rodean, muchas veces produciendo efectos de pixelado xelado. ado La principal ventaja de los Bitmaps es su calidad de imagen, pero a medida que esta aumenta también aumenta la necesidad de memoria, lo que lo convierte en su principal desventaja. Más adelante veremos cómo calcular la demanda de memoria de un Bitmap. Los formatos de archivos de Bitmaps que podemos encontrar en la actualidad son JPEG, GIF, BMP, TGA, PNG y TIFF.


Unidad 1 - Conceptos básicos de 2D

14

Muy diferentes a los Bitmaps, son los gráficos vectoriales, los cuales están compuestos por objetos definidos por ecuaciones matemáticas en lugar de píxeles, lo que significa que siempre se pueden representar con la mayor calidad disponible. Cada uno de estos objetos consiste de puntos, líneas, curvas y polígonos con atributos como color y relleno. A estos objetos se les puede cambiar sus atributos sin necesariamente afectar el objeto básico y también puede modificarse la forma manipulando sus nodos de control.

A diferencia de los Bitmaps, los gráficos basados en vectores son independientes de la resolución, resolución por lo que al aumentar o disminuir el tamaño de las imágenes las formas siguen siendo claras y nítidas. La razón de esto es que, independientemente del tamaño que posea, se realizan cálculos matemáticos para convertir las ecuaciones matemáticas que lo componen en píxeles que el dispositivo gráfico pueda interpretar, en un proceso llamado rasterizació rasterización. Esta sobrecarga de procesamiento es justamente una de las principales desventajas de este tipo de imágenes frente a los Bitmaps. Además los gráficos vectoriales no son muy útiles a la hora de representar imágenes fotográficas, puesto que estas están compuestas principalmente por figuras con variaciones de tonalidades muy sutiles. Como ventajas de los gráficos vectoriales podemos nombrar su poca utilización de memoria, debido a que solo es necesario retener los coeficientes de las ecuaciones que forman sus primitivas y por último su facilidad para edición mediante software gráficos como por ejemplo Adobe Illustrator y Corel Draw. El formato vectorial es muy utilizado en el diseño asistido por computadora y más recientemente en animación por computadora. El formato Adobe Flash utiliza en gran parte gráficos vectoriales para lograr altas resoluciones en un tamaño de archivo pequeño pudiendo así ser transmitido eficientemente a través de Internet. Entre los formatos vectoriales más utilizados se encuentran SVG, CDR, AI, SWF, DXF y WMF.


15

Técnicas de Gráficos por Computadora

<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="12cm" height="4cm" viewBox="0 0 1200 400" xmlns="http://www.w3.org/2000/svg" version="1.1"> <desc>Example polygon01 - star and hexagon</desc> <!-- Show outline of canvas using 'rect' element --> <rect x="1" y="1" width="1198" height="398" fill="none" stroke="blue" stroke-width="2" /> <polygon fill="red" stroke="blue" stroke-width="10" points="350,75 379,161 469,161 397,215 423,301 350,250 277,301 303,215 231,161 321,161" /> <polygon fill="lime" stroke="blue" stroke-width="10" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" /> </svg>

En el ejemplo podemos ver como se puede representar una estrella y un hexágono a través del lenguaje XML, en donde las figuras están expresadas por medio de primitivas que contienen sus puntos y sus propiedades como relleno, color y espesor de contorno. Este formato de gráfico vectorial es conocido como Scalable Vector Graphics (SVG). La siguiente tabla resume las ventajas y desventajas de los mapas de bits y vectores. Tabla 3 - Ventajas y desventajas de los Bitmaps y Vectores Punto fuerte Bitmap Vectorial Velocidad de visualización X Calidad de imagen X Utilización de memoria X Facilidad de edición X Independencia de resolución X


Unidad 1 - Conceptos básicos de 2D

16

Sistema de coordenadas Recordemos que las coordenadas son un conjunto de números que describen una posición. El sistema de coordenadas más utilizado para representar figuras o primitivas geométricas es el sistema cartesiano de coordenadas. coordenadas

Cada sistema gráfico tiene al menos dos espacios de coordenadas distintos:

• Espacio de usuario: usuario Es el espacio independiente del dispositivo en el que se crean las primitivas gráficas. • Espacio de dispositivo, dispositivo es el espacio del dispositivo gráfico de salida como una pantalla o impresora. Las primitivas gráficas que se dibujan en un programa son especificadas inicialmente basándose en el espacio de usuario, dentro de éste se pueden realizar distintas transformaciones como rotaciones, traslaciones y escalados, para que luego en la etapa final se realice la conversión del espacio de usuario al espacio de dispositivo que se esté utilizando para mostrar los resultados. En el espacio de usuario pueden utilizarse otras unidades que no necesariamente son pixeles, como por ejemplo puntos, milímetros o pulgadas. Luego en el espacio de dispositivo estas magnitudes van a ser convertidas a pixeles. Este proceso debe ser transparente para el usuario, ya que a este solo le interesa especificar la geometría respecto de su propio espacio de usuario, delegando el resto de las transformaciones al sistema. Este finalmente lo termina representado en distintos medios como una ventana de una aplicación, una pantalla, un archivo o una impresora.


17

TĂŠcnicas de GrĂĄficos por Computadora

El espacio de dispositivo puede adoptar distintas convenciones para los ejes de coordenadas, algunos pueden considerar el origen de coordenadas como el extremo superior izquierdo y otros como el extremo inferior izquierdo. En uno se determina que el eje Y crece de cero al infinito desde arriba hacia abajo y el otro en sentido contrario. (0,0)

x

y

y (0,0)

Distintos tipos de sistemas de coordenadas

x


Unidad 1 - Conceptos básicos de 2D

18

Formato de imágenes Dimensiones Existen cientos de formatos de imagen en la actualidad y cada uno posee su aplicación dependiendo de las necesidades que se desean cubrir. Queda claro que una imagen de un dispositivo de celular no pose los mismos requerimientos que una imagen de una pantalla de televisión de alta definición. Es por eso que existen características que diferencian a un formato de otro, y entre las más importantes se encuentran el formato dimensional y la profundidad de color (la cual ya tratamos anteriormente). Utilizamos el concepto de formato dimensional para referirnos al número de píxeles distintos que se puede mostrar en cada dimensión de una imagen. Por ejemplo una imagen con una dimensión de 1024x768 significa que está compuesta por 1024 muestras de píxeles en el eje horizontal y 768 muestras en el eje vertical. Multiplicando ambos valores se obtiene la cantidad total de píxeles que comprende la imagen, y más adelante este valor nos será útil para calcular la cantidad total de memoria requerida para almacenarlo. Es importante remarcar que muchas veces el formato dimensional es confundido con el concepto de resolución, el cual como explicamos anteriormente, es la cantidad de píxeles distintos que existen en una unidad de longitud determinada. La resolución debe ser entendida como la densidad de pixeles que se tiene en un espacio determinado. Por ejemplo al cambiar una imagen de 800x600 a una de 1600x1200 no necesariamente duplicamos su resolución, ya que solo lo haría si las dimensiones físicas donde se la está mostrando permaneciesen constantes.

Mismo bitmap con distintos formatos espaciales

Proporción de aspecto No todas las imágenes o formatos de pantalla tienen la misma forma, y podríamos notar que algunos formatos son más anchos que otros. Es por eso que es importante encontrar una manera de expresar que tan ancha es la imagen, es decir, que relación guarda el ancho con el alto. Esto se expresa mediante un atributo llamado proporción de aspecto o a spect ratio, atio la cual se calcula dividiendo el ancho y alto de la imagen y se expresa como X : Y y se dice “x a y”. Por ejemplo una imagen de 800x600 píxeles tiene una proporción de 4 : 3 , y se obtiene de:


19

Técnicas de Gráficos por Computadora

) 800 4 = = 1,3 600 3

Este resultado expresa como 4 : 3 ó 1,33 : 1 . Entonces con esto, se puede decir que el ancho de la imagen es 1,33 veces mayor en relación que su alto. La tasa de aspecto varía dependiendo de las aplicaciones, por ejemplo la televisión utiliza 4 : 3 o 16 : 9 para alta definición mientras que en formato de cine es común encontrar una proporción de aspecto como 1,85 : 1

4:3

3:2

16:9

1.85:1

2.39:1

Proporciones de aspecto más comunes

En una época cada fabricante de placas gráficas utilizaban los formatos imagen o de pantalla que mejor se ajustaban al producto que estaban ofreciendo en el mercado, pero luego para lograr una cierta uniformidad en la industria se creó una organización avocada a la especificación de estándares referidos a formatos gráficos llamada VESA (Video Electronics Standards Association) la cual establece los formatos de imágenes y pantallas más utilizados en la actualidad. Sin embargo muchos formatos fueron definidos antes de la creación de esta organización y se convirtieron en estándares de facto. A continuación se muestra una tabla con las dimensiones más utilizadas tanto en formatos de imagen como en formatos de pantallas de video y televisión.


Unidad 1 - Conceptos bรกsicos de 2D

20

Formatos de pantalla utilizados en la actualidad

Tabla 4 - Formatos de pantalla mรกs comunes

Dimensiones 320x200 320x240 640x480 800x600 1024x768 1280x720

Abreviatura CGA QVGA VGA SVGA XGA WXGA

Aspect ratio 8:5 4:3 4:3 4:3 4:3 16:9

1280x1024

SXGA

5:4

1600x1200 1920x1200

UXGA WUXGA

4:3 16:10

1280x720 1920x1080

HDTV 720 HDTV 1080

16:9 16:9

Nombre completo Color Graphics Adapter Quarter Video Graphics Array Video Graphics Array Super Video Graphics Array Extended Graphics Array Wide Extended Graphics Array Super Extended Graphics Array Ultra Extended Graphics Array Wide Ultra Extended Graphics Array High Definition Television High Definition Television


21

TĂŠcnicas de GrĂĄficos por Computadora

2560x1440

HDTV 1440

16:9

High Definition Television


Unidad 1 - Conceptos básicos de 2D

22

Movimiento en las imágenes Cuando se intenta dar la ilusión de movimiento a través de las imágenes, se utiliza una técnica que consiste en mostrar una secuencia de imágenes a intervalos regulares. Es la misma técnica utilizada en las películas de cine, donde se toman cuadros (frames) a intervalos regulares, y debido al fenómeno de la persistencia de la visión, se crea la ilusión óptica de movimiento. La frecuencia en la cual se muestran estos frames se lo denomina framerate frame rate, rate y es expresado en Fps (Frames per second). Si calculamos el inverso este número podemos obtener la cantidad de segundos que un cuadro en particular permanece en la pantalla. Por 1 ejemplo con 24 Fps cada cuadro permanece en la pantalla por s , es decir un poco más 24 de 41 ms. Dentro de lo que denominamos framerate, se suele hacer distinción entre la tasa de actualización (update update rate), rate que es la frecuencia en la cual se modifica el Frame B uffer del dispositivo de pantalla y la tasa de refresco (refresh refresh rate), rate que es la frecuencia en la que realmente se producen las nuevas imágenes en la pantalla. Estas frecuencias no siempre son iguales, y debido a esto, pueden surgir algunos efectos no deseados (denominados artifacts) tearing). artifacts como por ejemplo el efecto de parpadeo de pantalla (tearing tearing En la próxima unidad, veremos con más detalle estos conceptos.


23

Técnicas de Gráficos por Computadora

Almacenamiento de imágenes En secciones anteriores hemos remarcado que los Bitmaps, a diferencia de los gráficos vectoriales, requieren mucha más memoria, por lo que sería importante tener alguna forma de estimar la cantidad de información que es va a ser requerida para almacenarlos. La manera más directa de almacenar un Bitmap es codificando la información de cada píxel uno al lado del otro, en lo que se denomina formato RAW (datos en crudo), que como veremos más adelante es una técnica eficiente en cuanto a velocidad pero ineficiente en términos de almacenamiento. A pesar de esto, la mayoría de los dispositivos de salida gráficos aún almacenan y transfieren imágenes desde y hacia memoria principal utilizando este formato sin compresión. Para estimar el espacio de almacenamiento requerido por un Bitmap, debemos tener en cuenta los siguientes parámetros:

• El número total de muestras de la imagen, que se obtiene multiplicando la cantidad de píxeles de ancho y alto. • La cantidad de bits por cada píxel (bpp), siendo los más comunes 1, 8, 16, 24 y 32 bpp. Para calcular el tamaño requerido por una única imagen podemos hacer lo siguiente: Tamaño (en KB) =

Ancho × Alto × Bpp 8 × 1024

Por ejemplo un Bitmap de 1024x768 con 32 bpp necesitaría de al menos 3 MB para ser almacenado: 1024 × 768 × 32 = 3.072 KB = 3 MB 8 × 1024

Cabe aclarar que además, si se desea almacenar un Bitmap en un formato de archivo, se suele sumar el tamaño su respectivo encabezado el cual incluye información acerca del Bitmap en sí mismo, como por ejemplo, las dimensiones, el formato de píxel, paleta de colores, cantidad de capas, etc. En la siguiente tabla podemos apreciar la cantidad de memoria necesaria para almacenar Bitmaps en los formatos más comunes de la actualidad. Tabla 5 - Memoria necesaria para almacenar Bitmaps

Dimensiones 640x480 800x600 1024x768 1280x1024 1600x1200 1920x1200

8 bpp 0,3 MB 0,5 MB 0,8 MB 1,3 MB 1,8 MB 2,2 MB

24 bpp 0,9 MB 1,4 MB 2,3 MB 3,8 MB 5,5 MB 6,6 MB

32 bpp 1,2 MB 1,8 MB 3,0 MB 5,0 MB 7,3 MB 8,8 MB


Unidad 1 - Conceptos básicos de 2D

24

Tasa de transferencia en dispositivos gráficos En esta sección demostraremos como calcular la cantidad de información que se transmite entre varias partes de un sistema completo. La forma de transmitir las imágenes se realiza mediante un flujo continuo de datos en el cual los píxeles son enviados uno detrás de otro en un orden preestablecido en lo que se llama sistema raster. raster Al igual que en el cálculo para almacenamiento de Bitmaps, en el cálculo de capacidad de datos de una interface en un sistema raster se debe tener en cuenta un factor adicional. Entonces, la lista completa de factores a tener en cuenta es la siguiente:

• El número total de muestras de la imagen, que se obtiene multiplicando la cantidad de píxeles de ancho y alto. • La cantidad de bits por cada píxel (bpp), siendo los más comunes 1, 8, 16, 24 y 32 bpp. • El frame rate o refresh rate que es la cantidad de veces por segundo que se actualiza la imagen completa. Los valores más comunes varían entre 60 y 100 cuadros por segundo. La forma de calcular aproximadamente la capacidad necesaria para transmitir imágenes en un sistema se calculará de la siguiente manera: Tasa de datos (en bits/s) = Ancho × Alto × Bpp × Fps Por ejemplo para un sistema con un formato de imagen de 1280x1024, con un refresh rate de 75hz y un formato de píxel de 24 bpp necesitara una interfaz con capacidad para transferir 2,19 Gb/s: bits Tasa de datos (en bits/s) = 1280 píxeles ×1024 líneas × 24 píxel × 75 línea frame

frames s

≈ 2,19 Gb / s

Como podemos ver que para un sistema de visualización moderno es necesario disponer de un hardware relativamente veloz para poder transferir esta cantidad de información en un solo segundo.


25

Técnicas de Gráficos por Computadora

Compresión de imágenes La sección anterior deja en claro que la cantidad de información necesaria para almacenar o transmitir imágenes raster es muy alta, aún teniendo en cuenta el rápido avance de las tecnologías de almacenamiento, transmisión y procesamiento de datos. Con el crecimiento de las aplicaciones multimedia en Internet y la incorporación de la televisión digital, se ha puesto gran énfasis la compresión de la señales de imágenes y videos. Debido a esto se han desarrollado varias técnicas compresión para lograr reducir la cantidad de datos antes de almacenarlos y transmitirlos. En principio la compresión de imágenes se basa en una característica común que poseen todas las imágenes, en donde existe una semejanza o correlación entre los píxeles. Estas correlaciones se deben a la existencia de estructuras similares entre las imágenes, ya que la disposición de píxeles no es completamente aleatoria. De esta manera, el valor de un píxel puede emplearse para predecir el de sus vecinos, una ventaja que no existe para las técnicas generales de compresión de datos binarios. Entonces podemos decir que el objetivo principal de un buen algoritmo de compresión de imágenes es encontrar una representación de la imagen menos correlacionada. Para eso existen dos componentes fundamentales en la compresión que son la reducción de la redundancia y la reducción de la irrelevancia

• Reducción de la redundancia: Intenta eliminar la repetición en la imagen original, y tiene tres subtipos: o Redundancia espacial: Correlación entre píxeles vecinos. o Redundancia espectral: Correlación entre planos de color o bandas del espectro. o Redundancia temporal: Correlación entre cuadros de una secuencia de imágenes (En esta sección nos vamos a ocupar de las imágenes estáticas por lo que no trataremos este tipo de redundancia). • Reducción de la irrelevancia: Intenta omitir la parte de la imagen que no será percibida por el receptor humano.


Unidad 1 - Conceptos básicos de 2D

26

Técnicas de compresión En la compresión de imágenes existen dos grandes clasificaciones:

• Compresión sin pérdida: En la compresión sin pérdida (lossless lossless), lossless la imagen reconstruida es una copia idéntica bit a bit a la imagen original. Como contrapartida, esta técnica solo puede alcanzar niveles bajos de compresión. • Compresión con perdida: En la compresión con perdida (lossy lossy), lossy la imagen reconstruida es una versión aproximada pero no es exactamente idéntica a la original. Por medio de esta técnica se logran altos niveles de compresión, y bajo condiciones normales, la perdida visible no es percibida por el receptor humano.

Compresión con y sin pérdida

Es importante destacar que cada tipo de compresión tiene sus aplicaciones determinadas. Por ejemplo una compresión con pérdida media es aceptable para almacenar fotografías digitales para uso hogareño, pero sin lugar a duda es inaceptable para utilización en la medicina de diagnóstico por imágenes.


27

Técnicas de Gráficos por Computadora

A continuación veremos una breve descripción de algunas de las técnicas de compresión conocidas en la actualidad. Run Length Encoding – RLE Los píxeles consecutivos con el mismo valor son codificados como un único valor y su recuento. Por ejemplo para una imagen que tiene el valor de píxel 8 repetido 9 veces, se puede representar como 2 bytes con [09] 08 En lugar de 08 08 08 08 08 08 08 08 08

En el ejemplo de arriba los veinte primeros píxeles de color blanco pueden ser codificados como [20] 0, en lugar de 00000000000000000000. Codificación LempelLempel-Ziv El compresor mantiene un diccionario conteniendo las secuencias de valores de los píxeles que ya se han encontrado. El conjunto de datos comprimidos contienen códigos que representan las entradas en los diccionarios. Codificación Huffman En lugar de utilizar un número fijo de bits para representar los valores, se utilizan códigos variables. Los valores utilizados más frecuentemente tienen asignados códigos más cortos. Transformada de coseno discreta (DCT) Los bloques de los píxeles son representados usando funciones de coseno de distintas frecuencias. Las frecuencias altas, que generalmente contienen menos información en la imagen, son descartadas. Esta transformada es ampliamente utilizada en los formatos JPG y MPEG.


Unidad 1 - Conceptos básicos de 2D

28

Los bloques de la imagen son transformados del dominio espacial al dominio de frecuencia usando la transformada de coseno discreta.

Aquí vemos una tabla que resumen las distintas técnicas empleadas por los distintos formatos de archivos gráficos. Tabla 6 - Técnicas de compresión utilizadas en los formatos de archivos Técnica BMP GIF PNG JPG RLE X X Lempel Ziv X X Huffman X X DCT X


29

Técnicas de Gráficos por Computadora

Bibliografía Apple Cocoa - http://developer.apple.com/ Wikipedia - http://ww.wikipedia.org/ Video Compression - http://embedded.com/design/201203310 Image Processing with gluas. Introduction to pixel molding - http://pippin.gimp.org/image_processing/ DSP DesignLine - http://www.dspdesignline.com/201202637 Tom McReynolds and David Blyth - Advanced Graphics Programming using Opengl Morgan Kaufmann Publishers - 2005 Barry G. Blundell - An Introduction to Computer Graphics and Creative 3-D Environments – Springer – 2008 Robert L. Myers - Display Interfaces - Fundamentals and Standards - John Wiley & Sons 2002 John Miano - Compressed Image File Formats - John Wiley & Sons – 1999 Daniel Sánchez, Crespo Dalmau - Core Techniques and Algorithms in Game Programming - New Riders Publishing - 2003

nose  

nose nose nose

Read more
Read more
Similar to
Popular now
Just for you