Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Acelerador gráfico
Introducción
E l modelo RGB (Red, Green, Blue) es el modo por defecto para las imágenes digitales
y los monitores de ordenador muestran siempre los colores en este modelo. Las imágenes
RGB utilizan tres colores primarios para reproducir en pantalla hasta 16.7 millones de colores.
El modelo RGB es un modelo de color basado en la síntesis aditiva, con el que es posible
representar un color mediante la mezcla por adición de los tres colores luz primarios. Para
indicar con qué proporción mezclamos cada color, se asigna un valor a cada uno de los colores
primarios, de manera que, por ejemplo, el valor “0” significa que no interviene en la mezcla
dicho color y, a medida que ese valor aumenta, se entiende que aporta más intensidad a la
mezcla. Aunque el intervalo de valores podría ser cualquiera, es frecuente que cada color
primario se codifique con un byte (8 bits). Así, de manera usual, la intensidad de cada una de
las componentes se mide según una escala que va del 0 al 255.
Para representar los colores se utilizan los códigos en hexadecimal dispuestos en tres pares,
los cuales muestran la intensidad de cada color según el porcentaje de luminosidad. Así por
ejemplo para obtener un 25% de luminosidad en el color rojo habría que multiplicar el valor
máximo de ese píxel (255 ya que estamos trabajando con 8 bits o 1 byte) por 0.25 y así
obtendríamos el “espacio de color” que se requiere en la escala utilizada.
Objetivo
Se plantea realizar el procesamiento de una imagen RGB apoyándonos en el uso de Matlab y
ModelSim con los cuales, usando los conocimientos previamente adquiridos a lo largo de la
materia, se pueda desarrollar una descripción que nos permita manipular datos de una
imagen como entrada de texto para generar efectos que puedan ser recuperados y mostrados
en una nueva imagen de salida.
Para este trabajo consideramos 4 conversiones: RGB a escala de grises, la multiplicación de
un escalar por cada píxel, RGB a blanco y negro y una conversión donde se realicen las
operaciones lógicas AND, OR y XOR de cada píxel por una constante.
Desarrollo
La siguiente metodología permitió llevar a cabo cada conversión descrita anteriormente.
Descripción en VHDL
Para el siguiente paso se realizó una descripción de VHDL en donde se efectuaron operaciones
aritméticas con una entrada de texto que contiene los datos RGB de la imagen con la que se
trabajó. La entrada de texto de esta descripción es la salida de texto que se obtuvo de Matlab.
A continuación, se presentan y explican las descripciones que se realizaron para cada
conversión mostrando de igual forma su diagrama conceptual.
Se utiliza una misma entidad para los tres primeros casos y las mismas librerías IEEE std logic
y numeric para todos los casos.
library IEEE;
use IEEE.std_logic_1164.all;
use ieee.numeric_std.all;
entity RGB2Gray is
port (
r, g, b : in std_logic_vector(7 downto 0);
gr : out std_logic_vector(7 downto 0)
);
end RGB2Gray;
09/Diciembre/2021
entity project_ej4 is
port (
r, g, b : in std_logic_vector(7 downto 0);
rslt_AND, rslt_OR, rslt_XOR : out std_logic_vector(7 downto 0)
);
end project_ej4;
09/Diciembre/2021
Begin
And_r<=r and c;
And_g<=g and c;
And_b<=b and c;
Or_r<=r or c;
Or_g<=g or c;
Or_b<=b or c;
Xor_r<=r xor c;
Xor_g<=g xor c;
Xor_b<=b xor c;
End arch;
09/Diciembre/2021
Análisis de Resultados
Escala de grises Operaciones lógicas AND, OR y XOR
Conclusiones
En este trabajo estudiamos las tonalidades de la escala RGB obteniendo resultados
satisfactorios para el procesamiento de la imagen prevista en nuestro objetivo.
Para los primero 3 casos (RGB a Escala de Grises, multiplicación por un escalar y la conversión
a blanco y negro) se necesitaron coeficientes que hicieran posible la manipulación de la
imagen conforme a lo planeado en nuestro objetivo.
Para el último punto (Operaciones lógicas con AND, OR, XOR) se generaron conversiones con
las compuertas AND, OR, XOR y en cada una de ellas la constante fue determinante para la
manipulación de la imagen resultante, ya que al hacer la operación lógica con la compuerta
and por una constante 010 el resultado obtenido fue una imagen en negro, lo contario ocurrió
al hacer la misma operación, pero con la compuerta OR con 25510. Cuando se hacía
operaciones con la compuerta XOR la imagen parece contener más dispersión en sus colores
y se hizo la observación que los colores se invertían respecto a la imagen con la compuerta
anterior (OR).
Referencias:
• Jesús Flores (2009),” Síntesis digital de color utilizando tonos de gris”, MX, SLP,
UASLP Facultad de Ciencias.
• Pong P. Chu (2006), “RTL HARDWARE DESIGN USING VHDL” EUA, Ohio, Cleveland
State University.
09/Diciembre/2021