1.2.1 Los modos de 16 colores
En los sistemas de video como EGA o las primeras VGA (256 Kbytes), en
los modos de alta resolución (en 640x480 de aquella y aún
hoy para algunos usuarios) sólo era posible representar 16 colores
simultáneos en pantalla. Para poder codificar 16 colores necesitamos
4 bits, con lo cual en cada posición de la memoria de video podríamos
codificar dos pixels. Sin embargo estos modos almacenaban la información
de una forma distinta, utilizando los llamados planos de bits.
En este enfoque, la imagen estaba formada por 4 planos de bits, en cada
uno de los cuales se almacenaba una representación monocroma de
la imagen con relación al bit de entre los cuatro posibles para
representar los 16 colores referenciaban, es decir, si por ejemplo en la
paleta de color se representaba el color rojo con los bits 1001, para poder
visualizar ese pixel era necesario pintarlos en el plano 0 y en el plano
3.
Un esquema de este tipo presenta ventajas e inconvenientes como sucede
en todos los compos. Entre las ventajas podemos citar:
- Con esta organización de memoria podemos pintar 8 pixels con
solo un acceso a memoria. La limitación es que los 8 pixels están
en el mismo plano, así si necesitamos 4 colores tendríamos
que realizar 2 acceso para pintar los 8 pixels, en el peor caso solo se
realizarían 4 accesos a memoria para pintar los 8 pixels. Entre
cada uno de estos accesos es necesario enviar información a los
registros de la tarjeta de video mediante instrucciones OUT las cuales
suelen ser más lentas, pero en general si no utilizamos los 4 planos
ganamos velocidad.
- Rellenar un plano para toda la pantalla se convierte en un volcado
en una zona lineal, la pantalla pasa a ser de 80x480 (640/8 x 480 lineas),
lo que facilitaba operaciones como escrolles.
- Mediante una redefinición adecuada de la paleta de color podemos
crear efectos de transparencia una forma muy sencilla. Si definimos los
colores con el bit 3 a 1 (del 8 al 15) con las mismas tonalidades que los
que lo tienen a 0 pero un poco más oscuras, pintar sobre el plano
3 hace que los colores de la imagen se oscurrezcan. De la misma forma si
definimos estos colores con un valor fijo, las zonas en las que pintemos
en el plano 3 pasarán a tener el mismo color independientemente
de lo que tengan en los otros planos.
Entre las desventajas podemos citar:
- Pintar un solo pixel requiere operaciones adicionales. Al codificarse
8 pixels en un solo byte, además de calcular el byte en el que se
debe almacenar un pixel con determinadas coordenadas es necesario calcular
la posición del pixel dentro.Para estos casos en los que interesa
el acceso a pixels individuales los controladores de video soportaban un
método alternativo de escritura en el cual se escribían los
4 planos en un solo acceso.
- Por supuesto, tenemos sólo 16 colores.
Dependiendo de la aplicación la utilización de esta filosofía
de acceso a la memoria de video mediante planos de bit y en bloques de
8 pixels puede ser más aconsejable que un acceso directo a los pixels.
En concreto este mapeado de memoria era y es utilizado generalmente por
los juegos. Si bien, esto está pensado para sistemas de 16 colores,
se pueden programar los registros del controlador de video para permitir
un acceso de este tipo en modos de 256 colores disponiéndose, en
este caso, de 8 planos de bits. Estos modos se conocen en general como
modos X y se siguen en vigencia, prueba de ello es el soporte que proporcionan
las librerías DirectX de Microsoft para Windows95.