4 votos

Programación de la memoria en FPGA

Estoy tratando de diseñar un sistema de procesamiento de imagen en un FPGA para hacer Astuto Detección de bordes. El diseño se muestra en la imagen de abajo.

Canny Edge Detector

Tengo un gran bloque de memoria ram para almacenar los datos de mi imagen. entonces tengo más pequeños de la línea de búferes para leer sólo las líneas estoy de procesamiento. Tengo 3 líneas en uso al mismo tiempo ( con 1 otra línea como un pre-fetch para la siguiente fila de procesamiento ).

El reto que tengo es que el filtro 1 se ve en un 9 cuadro de píxeles y salidas de un valor para el píxel central. así que para un 10x10 imagen, el filtro sólo salidas de datos de 8x8 píxeles en el medio.

Una vez que el filtro 1 ha terminado de 3 filas, quiero filtro 2 para iniciar en la modificación de los valores de los píxeles. A la canalización de este diseño, yo estoy teniendo un tiempo difícil averiguar cómo hacer frente a la 'falta' de píxeles que el filtro 1 no de salida. ¿cuál sería la mejor forma de carga de los Filtros 2? debería haber una forma de eludir el primero+ultimo de la fila y la primera y la última de píxeles de cada uno de los otros a mi 2ª línea de buffer? o hay alguna otra manera lo puedo hacer?

6voto

GSerg Puntos 33571

¿Por qué el primer filtro de salida no todos los píxeles? Lo que debería. Usted sólo tiene que averiguar lo que se necesita producir para el "borde" píxeles".

En mi video de procesamiento de diseños, tengo un módulo independiente que yo llamo un "núcleo generador" que se encuentra entre la línea de los buffers y el verdadero filtro. Lee la línea de búferes y salidas de los nueve píxeles de entrada (en paralelo) que necesita ser operado de cualquier píxel de salida. En los bordes de la imagen, se produce replica píxeles para reemplazar las que sería "el borde" en el frame de entrada.

Lo que se hace en los bordes es algo dependiente de la aplicación, pero en la mayoría de los casos, funciona bien para "reflejar" los datos en el borde de la imagen. En otras palabras, cuando usted está trabajando en la primera fila de la imagen, la falta de datos de entrada (para el "cero" de la fila) se rellena con los datos de la segunda fila. La misma lógica se utiliza en la izquierda, derecha y parte inferior de los bordes.

De esta manera, la salida de cualquier etapa de filtro tiene el mismo número de píxeles como de su entrada, y "efectos de borde" se reducen al mínimo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X