Paso 2: Tratamiento de la imagen
Tenemos que extraer los datos raw pixel de la imagen, luego comprimir y reconstruir en el FPGA a través de cable VGA. Para esto he usado Matlab, pero puede usar python también.
Una cosa importante a mencionar es que el un pixel tiene 3 componentes: rojo, verde y azul y por lo tanto se llama RBG. Lo que significa que se puede crear cualquier otro color (naranja, marrón...) con estos 3 colores Base.
Por lo general hay 3 bytes por píxel dedicada para los colores (un Byte por el color Base). Para VGA 3 todos los colores se almacenan en un único Byte así tenemos alguna manera comprimir tres octetos en uno. De la hoja de datos, verá que los primeros 3 bits (desde el bit menos significativo / desde la posición más correcta) son de color rojo, entonces 3 bits para el verde y el finales 2 bits para colores azul.
En primer lugar usar Matlab función imread ('name.png'); que lee la imagen y almacena su información de píxel. Entonces podemos extraer R, G y B componentes a separan las variables y luego convierten a formato doble para conversiones más. Para que los componentes rojo y verde a 1 Byte (8 bits) se traducen en 3 bits podemos aumentar el valor decimal del componente 3/8 (matemáticamente, subida 3 bits de total raíz número de bit, que es 8...). Para la componente azul, este número es 1/4 (o 2/8, que es lo mismo). Traducir el resultado de factible a uint8 (entero de 8 bits) que será también redondear el resultado. Algunos de los valores redondeados podrían obtener un poco más grandes de lo esperado (debido al redondeo al techo), por lo tanto menos uno de los bits que no rebose. Entonces tenemos que combinan todos los 3 colores vuelta en un valor único uint8. Esto se hace cambiando el verde 3 veces, azul 6 veces y luego sumando rojo, verde y azul. Por último necesitan almacenar todo en un archivo .list en formato HEX. (véase archivo de Matlab).
Después de ejecutar la secuencia de comandos de Matlab se almacenarán los datos en 'Mickey.list'. Antes de dejar leer el tamaño del variable color (lado derecho o izquierdo de la ventana de Matlab donde se guardan todas las variables) de Matlab, porque necesita introducir este valor en código de Verilog en cuanto a número de líneas del archivo a leer (para Mickey.jpg es 6960 x 2 char, por lo tanto Observe abajo 6960). También proporciono la gimp.txt y gimp.list para los que no quieres hacer la parte de Matlab.