Sistemas operativos modernos

GIF se muestra en la figura 12-7b. Aquí cada valor es un índice de 8 bits para la paleta de color. Ésta se almacena como parte del archivo de imagen, y se muestra en la figura 12-7c. En realidad, GIF tiene más aspectos, pero la idea central es la consulta de tablas. 24 bits 3,8,13 3,8,13 26,4,9 90,2,6 3,8,13 3,8,13 4,19,20 4,6,9 4,6,9 10,30,8 5,8,1 22,2,0 10,11,5 4,2,17 88,4,3 66,4,43 (a) 8 bits 7 7 2 6 7 7 3 4 4 5 10 0 8 9 2 11 (b) 11 10 9 8 7 6 5 4 3 2 1 O 24 bits 66,4,43 5,8,1 4,2,17 10,11,5 3,8,13 90,2,6 10,30,8 4,6,9 4,19,20 '00.4,3 26,4,9 22 , 2,0 (c) Figura 12'7. a) Parte de una imagen no comprimida con 24 bits por píxel. b) La mis­ ma parte comprimida con GIF, con 8 bits por píxel. c) La paleta de colores. Hay otra forma de reducir el tamaño de las imágenes, la cual ilustra una solución distinta. PostScript es un lenguaje de programación que puede servir para describir imágenes. (En reali­ dad, cualquier lenguaje de programación puede describir imágenes, pero PostScript está afinado para hacerlo.) Muchas impresoras fienen un intérprete de PostScript incrustado para poder ejecu­ tar programas PostScript que se les envíen. Por ejemplo, si hay un bloque rectangular de pixeles en una imagen, todos del mismo co­ lor, un programa PostScript para ia imagen incluiría instrucciones para colocar un rectángulo en cierto punto y llenarlo con cierto color. Sólo se necesita un puñado de bits para emitir esta or­ den. Cuando la imagen se recibe en la impresora, un intérprete residente debe ejecutar el pro­ grama para construir la imagen. Así, PostScript logra comprimir imágenes a expensas de realizar más cálculos, una solución diferente de la consulta de tablas, pero valiosa cuando la memoria o el ancho de banda son escasos. Otras soluciones a menudo fienen que ver con estructuras de datos. Las listas con doble enla­ ce ocupan más memoria que las de enlace sencillo, pero en muchos casos permiten acceso más rá­ pido a los elementos. Las tablas de hash desperdician más espacio aún, pero son todavía más rápidas. En síntesis, una de las principales cosas a considerar al optimizar un fragmento de códi­ go es si el uso de estructuras de datos distintas produce el mejor equilibrio espacio-tiempo. 12.4.4 Uso de cachés Una técnica muy conocida para mejorar el desempeño es el uso de cachés. Puede aplicarse en situaciones en las que es probable que se vaya a necesitar el mismo resultado varias veces. La

RkJQdWJsaXNoZXIy MjI4NDcx