Tamaño de la memoria de cuadros (SRAM) para una imagen

1

Ahora estoy revisando un artículo sobre la implementación del hardware y dice que al recortar los 128 * 96 píxeles de 160 * 120 píxeles, el tamaño de la memoria de cuadros (SRAM) se puede reducir a 1/10.

No lo entiendo.

¿Alguien sabe cómo funciona esto?

(EDITADO)

La imagen se reduce primero a la mitad ... Asi que. 320 * 240 - > 160 * 120 - > 128 * 96

    
pregunta IKS

3 respuestas

1

Si almacena una imagen en una SRAM, generalmente desea poder dividir el bus de direcciones en un componente x y un componente y. Para hacer esto, al menos uno de ellos debe tener una potencia de 2. Para 320 x 240, debe redondear 320 a 512 para obtener una potencia de 2. 512 x 240 es 122880. Si lo reduce a 128x96, es más eficiente porque 128 ya tiene una potencia de 2, por lo que puede ajustarlo en una SRAM de 128 x 96 = 12288 bytes. Ahí está tu factor de 10.

    
respondido por el alex.forencich
0

128 * 96 = 12288 píxeles

160 * 120 = 19200 píxeles

por lo tanto, no hay una relación de 1/10, pero 1.56 ..

    
respondido por el Blup1980
0

La cantidad mínima de RAM requerida para mantener cada fila de una imagen generalmente será la cantidad de píxeles por fila por la cantidad de bits por píxel [la mayoría de los sistemas usan la misma cantidad de bits por cada píxel, aunque algunos históricamente no] . En algunos casos, especialmente cuando esta cantidad está cerca de ser un múltiplo de alguna potencia particular de dos, puede redondearse [por ejemplo. una pantalla de 640 píxeles de ancho con 24 bits por píxel requeriría 15,360 bits por fila, pero por la facilidad de abordar algunas de estas pantallas se redondearía hasta 16,384 por fila].

Algunos subsistemas de visualización requieren que el número de bits por píxel y el número de bits por fila deben ser potencias de dos. Por lo tanto, una pantalla de 160 píxeles de ancho con 24 bits por píxel terminaría requiriendo 8192 (256x32) bits por fila, aunque se usó menos de la mitad de esos bits. Al volver a escalar las cosas a 128 píxeles de ocho bits, se reduciría el requisito de memoria a 1024 bits, una reducción de ocho veces en la cantidad de memoria requerida [aunque menos de una reducción de cuatro veces en la memoria utilizada].

Por cierto, cuando el número de bytes por fila es algo más que una potencia de dos, y el número de filas es un múltiplo de tres, a veces es útil empujar el número de bytes por fila con una potencia "extra" de dos pero subdividir la pantalla verticalmente en tercios. Este enfoque se utiliza en la serie de computadoras Apple II, que tienen 40 bytes por fila. El tercio superior de la pantalla utiliza bytes 0-39 de filas que comienzan con 128 bytes aparte; el tercio medio de la pantalla usa las filas iguales como el tercio superior, pero usa los bytes 40-79 de cada una; el tercio inferior utiliza los bytes 80-119 de cada fila. El hardware para hacer esto es más simple de lo que sería el hardware para lidiar con un número de bytes por fila sin potencia de dos, aunque el software que tiene que dibujar a través de los límites entre las secciones es un poco más complicado.

    
respondido por el supercat

Lea otras preguntas en las etiquetas