P. Brox , S. Sánchez-Solano , I. Baturone , A. Barriga , J. Gutiérrez
Transcripción
P. Brox , S. Sánchez-Solano , I. Baturone , A. Barriga , J. Gutiérrez
IMPLEMENTACIÓN SOBRE FPGA DE UN ALGORITMO DE DESENTRELAZADO DE VÍDEO BASADO EN LÓGICA FUZZY P. Brox1, S. Sánchez-Solano1, I. Baturone1, A. Barriga1, J. Gutiérrez-Ríos2, F. Fernández2 1 Instituto de Microelectrónica de Sevilla - Centro Nacional de Microelectrónica Avda. Reina Mercedes s/n, (Edif. CICA). E-41012, Sevilla, Spain 2 Dpto. Tecnología Fotónica – Universidad Politécnica de Madrid Campus de Montegancedo, s/n. 28660 - Boadilla del Monte (Madrid), Spain Proc. I Congreso Español de Informática (CEDI 2005) Simposio Sobre Lógica Fuzzy y Soft Computing (LFSC2005), pp. 83-90, Granada, Septiembre 13-16, 2005. This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author’s copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder. Implementación sobre FPGA de un algoritmo de desentrelazado de vídeo basado en lógica fuzzy P. Brox1, S. Sánchez-Solano1, I. Baturone1, A. Barriga1, J. Gutiérrez-Ríos2, F. Fernández2 1 Instituto de Microelectrónica de Sevilla Centro Nacional de Microelectrónica Avda. Reina Mercedes s/n, Edificio CICA, 41012 Sevilla [email protected] Resumen Los algoritmos de desentrelazado permiten la conversión de una señal de vídeo entrelazada a un formato progresivo. Entre las diferentes técnicas propuestas en la literatura, las que combinan interpolación espacial y temporal en función de la presencia de movimiento en la secuencia de imágenes proporcionan buenos resultados con un coste computacional bajo. Este artículo describe la implementación sobre FPGA de un algoritmo de desentrelazado que emplea lógica fuzzy para detectar el movimiento. Dependiendo del grado de movimiento evaluado en cada píxel se realiza la interpolación entre la técnica de inserción de campo y un nuevo método de promedio de línea dependiente de la detección de bordes que también utiliza lógica fuzzy. La realización de numerosas simulaciones con diferentes secuencias de vídeo muestran las ventajas del método propuesto frente a otras técnicas de desentralazado conocidas. La implementación del algoritmo sobre una FPGA proporciona una solución de bajo coste para procesado en tiempo real. 1. Introducción Los sistemas de televisión más habituales (NTSC, PAL, SECAM) utilizan un formato entrelazado para la transmisión de imágenes de vídeo. Sin embargo, la aparición de nuevos dispositivos que requieren un formato de visualización progresivo (monitores de alta calidad, cañones de proyección, sistemas de televisión de alta definición, etc.) ha provocado el desarrollo de numerosos algoritmos para la conversión de formato entrelazado a progresivo o algoritmos de desentrelazado [1] 2 Dpto. Tecnología Fotónica, (UPM) Campus de Montegancedo, s/n 28660 - Boadilla del Monte (Madrid) [email protected] Dichos algoritmos pueden ser clasificados en tres categorías atendiendo a la técnica de interpolación empleada: espacial (o intra-field), temporal (o inter-field) e híbridos. Los algoritmos intra-field, como los de repetición y promedio de línea, presentan bajos requerimientos de hardware, ya que no es necesario incluir buffers adicionales para almacenar diferentes fotogramas. Sin embargo, introducen errores al desentralazar líneas diagonales o curvas dando lugar al típico efecto escalera. Este inconveniente puede ser evitado mediante el uso de métodos de interpolación con identificación de bordes, como el algoritmo ELA [2], que proporciona buenos resultados cuando los bordes son claramente identificados aunque introduce errores en las zonas de bordes no claros. El empleo en exclusiva de técnicas de desentrelazado intra-field provoca, por tanto, una serie de defectos visuales que dan lugar a imágenes borrosas y parpadeantes, especialmente en los fondos y zonas estáticas. Por otra parte, las técnicas inter-field permiten reconstruir correctamente la resolución vertical original de la imagen pero provocan la aparición del efecto conocido como ghosting o imagen fantasma en las partes móviles de la misma. Para evitar estos inconvenientes se han propuesto una serie de métodos de desentrelazado que combinan técnicas intra-field e inter-field. Por ejemplo, el uso de filtros vértico-temporales (VT) descrito en [3] interpola, según un esquema prefijado, entre muestras espaciales y temporales de la secuencia de vídeo. El método propuesto en [5] también combina los valores de luminancia de una serie de vecinos espaciales y temporales, empleando un filtro de valores medios con pesos que determinan la probabilidad de cada una de las técnicas. Por último, una técnica similar es empleada en [6] considerando la correlación Actas del Simposio sobre Lógica Fuzzy y Soft Computing, LFSC2005 (EUSFLAT), pp.83-90 ISBN: 84-9732-433-1 © 2005 Los autores, Thomson 84 Aplicaciones con Lógica Fuzzy direccional mínima en los dominios espacial y temporal. Los resultados pueden mejorarse aún más si se utilizan estrategias de interpolación dependientes del grado de movimiento de la imagen [7], [8].La idea consiste en seleccionar un método inter-field para las zonas estáticas de la imagen y uno intrafield para las áreas donde aparezca movimiento. La calidad de una técnica de desentrelazado basada en el movimiento depende básicamente de la exactitud del detector de movimiento. Puesto que el grado de movimiento es un concepto que puede describirse adecuadamente en términos lingüísticos, algunos autores han propuesto el uso de detectores basados en lógica fuzzy para implementar algoritmos de desentrelazado dependientes del movimiento [4], [8]. El algoritmo de desentrelazado descrito en este artículo utiliza la lógica fuzzy para mejorar el rendimiento, no sólo del detector de movimiento, sino también de la técnica intra-field utilizada. La interpolación se lleva a cabo entre la técnica de inserción de campo y una versión mejorada del método de promedio de línea dependiente de la detección de bordes (algoritmo ELA). Entrada Entrelazada 2. Técnica de desentrelazado con detector de movimiento fuzzy Los métodos de desentrelazado basados en detección de movimiento calculan la luminancia I(x,y,t) del píxel con coordenadas espaciales x e y del fotograma t de la secuencia de vídeo como: I(x, y, t ) = (1 − γ(x, y, t ))·I INTER (x, y, t ) + γ(x, y, t )·I INTRA (x, y, t ) donde IINTER(x,y,t) e IINTRA(x,y,t) corresponden a las salidas de los métodos inter-field e intra-field respectivamente y γ(x,y,t) es la salida del detector de movimiento. De esta forma es posible combinar las ventajas de ambas alternativas, empleando técnicas intra-field en las zonas de la imagen que presentan movimiento (γ=1) y utilizando técnicas inter-field en las zonas estáticas (γ=0). La técnica de desentrelazado dependiente del movimiento basada en lógica fuzzy que presentamos en este artículo sigue el diagrama de bloques mostrado en la Figura 1. Las siguientes secciones describen con detalle tanto el detector de movimiento como la técnica intra-field utilizada. Field (t+1) Field Storage Field Storage Field Storage Field (t) Field (t-1) DETECTOR DE MOVIMIENTO FUZZY γ (x, y, t ) Field (t-2) FUZZY ELA INSERCIÓN DE CAMPO (1) IINTRA (x, y, t ) INTERPOLACIÓN Salida Progresiva I INTER (x, y, t ) Fotograma actual Figura 1. Diagrama de bloques del método de desentrelazado basado en detección de movimiento propuesto. Simposio sobre Lógica Fuzzy y Soft Computing, LFSC2005 (EUSFLAT) Tabla 1. If 85 Base de reglas del detector de movimiento fuzzy antecedents then consequent M(x,y,t) =YES (H(x+2,y,t) is LARGE) and (H(x+1,y,t) is LARGE) and (H(x,y,t) is LARGE) and (H(x-1,y,t) is LARGE) and (H(x-2,y,t) is LARGE) M(x,y-1,t-1) =YES (H(x+2,y-1,t-1) is LARGE) and (H(x+1,y-1,t-1) is LARGE) and (H(x,y-1,t-1) is LARGE) and (H(x-1,y-1,t-1) is LARGE) and (H(x-2,y-1,t-1) is LARGE) M(x,y+1,t-1) =YES (H(x+2,y+1-1,t-1) is LARGE) and (H(x+1,y+1,t-1) is LARGE) and (H(x,y+1,t-1) is LARGE) and (H(x-1,y+1,t-1) is LARGE) and (H(x-2,y+1,t-1) is LARGE) 2.1. Detector de movimiento fuzzy El detector de movimiento utilizado [4] está inspirado en el método propuesto por Van de Ville en [8], aunque mejora sus resultados reduciendo de forma considerable el coste computacional. La entrada al detector de movimiento fuzzy es una “matriz de diferencias” H(x,y,t) dada por: H(x, y, t ) = I(x, y, t − 1) − I(x, y, t + 1) 2 (2) La presencia de movimiento es calculada para cada píxel del fotograma evaluando el conjunto de reglas mostrado en la Tabla 1. La primera regla establece que habrá movimiento (M(x,y,t)=YES) cuando los valores de H(x,y,t) en el píxel actual y en los situados a ambos lados de él sea grande. Las restantes reglas corresponden a razonamientos similares que tienen en cuenta datos del fotograma anterior y el siguiente Esta heurística es fácilmente implementada mediante un sistema fuzzy ya que el concepto “grande” (LARGE) puede ser interpretado como una variable lingüística en lugar de como un valor umbral. Por tanto será representado mediante un conjunto difuso cuya función de pertenencia cambia de forma continua entre los valores 0 y 1, como se muestra en la Figura 2a. Los píxeles evaluados por el sistema fuzzy aparecen representados en la La Figura 2b. Como se describe de forma detallada en [4], el proceso de inferencia del sistema fuzzy puede ser aproximado empleando técnicas de convolución bidimensional de acuerdo con la expresión (3). Esto reduce de forma considerable el coste computacional y proporciona alta flexibilidad Líneas desentrelazadas Líneas originales µ (H) LARGE 1 y+1 y-1 4,8 H 0,8 (a) Frame (t-2) Píxel actual x y+1 y Frame (t-1) y y-1 Frame (t) Frame (t+1) (b) Figura 2. (a) Función de pertenencia de la etiqueta LARGE. (b) Píxeles considerados para evaluar el movimiento. 86 Aplicaciones con Lógica Fuzzy porque permite utilizar diferentes pesos en los coeficientes de la matriz C de la expresión (5). 5 3 A = ∑ ∑ H ·C ij i j i = 1 j = 1 H(x − 2, y − 1, t − 1) H(x − 1, y − 1, t − 1) H = H(x, y − 1, t − 1) H(x + 1, y − 1, t − 1) H(x + 2, y − 1, t − 1) (3) H(x − 2, y, t ) H(x − 2, y + 1, t − 1) H(x − 1, y, t ) H(x − 1, y + 1, t − 1) H(x, y, t ) H(x, y + 1, t − 1) H(x + 1, y, t ) H(x + 1, y + 1, t − 1) H(x + 2, y, t ) H(x + 2, y + 1, t − 1) 1 2 1 C= 3 32 2 1 1 1 3 2 5 3 3 2 1 1 Fuzzy-ELA, basada en el modelado heurístico del conocimiento mediante un sistema fuzzy simple. La Figura 3a muestra los datos usados en el algoritmo ELA para interpolar el valor del píxel I(x,y,t). El pseudo-código correspondiente puede expresarse como: a = A−F (4) if b = B−E c = C−D min{a,b,c} = a ⇒ I(x, y, t ) = (A + F)/2 if min{a,b,c} = c ⇒ I(x, y, t ) = (C + D)/2 else ⇒ I(x, y, t ) = (B + E )/2 (5) El resultado de la convolución, A, constituye la entrada al proceso de fuzzificación en el que se evalúa el grado de pertenencia al conjunto difuso mostrado en la Figura 2a. La salida del detector γ(x,y,t) es un valor normalizado en el intervalo [0, 1] que indica el grado de movimiento de la imagen. 2.2. Algoritmo Fuzzy-ELA El algoritmo ELA (Edge-based Line Average) es una de las técnicas intra-field más ampliamente utilizadas por su capacidad para reconstruir los bordes de imágenes desentrelazadas. Sin embargo produce algunos errores cuando los bordes no son claros o en presencia de ruido. Estos errores pueden ser minimizados mediante el uso de una versión mejorada del algoritmo, denominada (6) El problema del algoritmo ELA se debe a que una correlación mínima no siempre corresponde a la dirección de un borde. La versión mejorada del algoritmo impone nuevas restricciones para asegurar la presencia de un borde: 1) Un borde es claro en la dirección a no sólo cuando a es pequeña (small) sino también cuando b y c son grandes (large). 2) Una regla similar es válida para la dirección c. 3) Cuando las correlaciones son muy pequeñas en las direcciones a y c es preferible realizar la interpolación lineal entre los 4 píxeles implicados. 4) En otros casos lo más adecuado es una interpolación vertical. Esta heurística puede ser modelada por un sistema fuzzy donde los conceptos “small”, “large” y “strongly small” vienen representados por las funciones de pertenencia que se muestran en la Figura 3b. La Tabla 2 describe la base de reglas del sistema. Como conectivo de antecedentes se emplea el operador mínimo, mientras que los grados de activación de las reglas, αI, son calculados mediante las siguientes expresiones: x large µ(a) A B C small µ(b) µ(c) 1 1 strongly small 1 y D E F 0 (a) 0 0 H’ a H’ b H’/2 c (b) Figura 3. (a) Ventana 3x3 para el algoritmo ELA. (b) Funciones de pertenencia utilizadas en el algoritmo Fuzzy-ELA. Simposio sobre Lógica Fuzzy y Soft Computing, LFSC2005 (EUSFLAT) Tabla 2. if 87 Conjunto de reglas para el algoritmo Fuzzy-ELA. antecedents then consequent 1) (a is SMALL) and (b is LARGE) and (c is LARGE) (A+F)/2 2) (a is LARGE) and (b is LARGE) and (c is SMALL) (C+D)/2 3) (a is strongly SMALL) and (b is LARGE) and (c is strongly SMALL) 4) otherwise α1 = min{µ SMALL a (h ), µ LARGE b (h ), µ LARGE c (h )} α 2 = min{µ LARGE a (h ), µ LARGE b (h ), µ SMALLc (h )} α 3 = min{µ strongly SMALL a (h ), µ LARGE b (h ), µ strongly SMALLc (h )} α 4 = 1 − α1 − α 2 − α 3 Por último, la salida de la técnica intra-field empleada en el algoritmo de desentrelazado dependiente del movimiento propuesto se calcula utilizzando el método de defuzzificación Fuzzy Mean. 3. Resultados de simulación El algoritmo propuesto ha sido verificado con diferentes secuencias de vídeo y comparado con otros algoritmos de similar coste computacional. En particular, con tres métodos intra-field (duplicación de línea, promedio de línea y ELA) y el más simple de los métodos inter-field (inserción del campo previo). Los restantes algoritmos considerados corresponden a métodos híbridos que realizan interpolación espacio-temporal: el filtrado VT reportado en [3], el filtrado de valor medio con pesos descrito en [5], la técnica desarrollada en [6] y los algoritmos dependientes del movimiento de [4] y [8]. Se han analizado cincuenta fotogramas de cada secuencia considerando como figura de mérito los valores medios del PSRN. Los resultados se muestran en la Tabla 3. La Figura 4 permite evaluar de forma subjetiva la calidad de los diferentes métodos para la secuencia de vídeo denominada ‘Mother & Daughter’. El área en movimiento del fotograma seleccionado corresponde a la mano de la madre. El análisis de los fotogramas corrobora el dato ya mencionado de que las técnicas inter-field introducen un efecto fantasma en las zonas con A+F+C+D)/4 (B+E)/2 mayor presencia de movimiento (Figura 4c), mientras que las técnicas intra-field reconstruyen mejor esta zona pero introducen varios defectos visuales en la zona estática del fondo de la imagen (Figura 4d-f). Como se muestra en la Figura 4l, el algoritmo propuesto proporciona mejor calidad visual evitando estos inconvenientes. 4. Implementación hardware El algoritmo propuesto ha sido implementado siguiendo tres arquitecturas que difieren en el grado de paralelismo empleado para llevar a cabo la convolución bidimensional de la expresión (3) y para evaluar los grados de activación de las reglas del sistema fuzzy correspondiente al método intra-field. El diseño paralelo proporciona un nuevo valor de píxel cada ciclo de reloj, utilizando dos multiplicadores para realizar el interpolador de la expresión (1) y tres multiplicadores para implementar el algoritmo Fuzzy-ELA. El diseño mixto realiza las operaciones de forma secuencial para los tres valores de cada columna de la matriz de diferencias (4) mientras que las operaciones de las distintas filas de la matriz se llevan a cabo en paralelo. Los grados de activación de las reglas del método intra-field se procesan de forma secuencial, obteniéndose un nuevo resultado cada tres ciclos de reloj. Por último, la implementación más eficiente en términos de área se obtiene mediante una arquitectura totalmente secuencial del algoritmo de desentralazado que requiere quince ciclos de reloj para proporcionar el nuevo valor del píxel. Las arquitecturas mixta y secuencial utilizan dos multiplicadores para realizar la interpolación y uno más para implementar el algoritmo Fuzzy-ELA. El diagrama de bloques de la arquitectura mixta se muestra en la Figura 5. 88 Aplicaciones con Lógica Fuzzy (a) (b) (c) (d) (e) (f) (g) (h) (i) (k) (l) (j) Figura 4. Fotograma progresivo original de la secuencia ‘Mother and Daughter’(a). Fotograma entrelazado artificialmente usado para comparar los diferentes algoritmos (b). Fotograma desentrelazado mediante inserción de línea (c), duplicación de línea (d), promediado de línea (e), método ELA (f), filtrado VT (g), método reportado en [6]] (h), filtrado de valor medio con pesos [5] (i), métodos dependientes del movimiento descritos en [8] (j) y [4] (k), y técnica propuesta (l). Simposio sobre Lógica Fuzzy y Soft Computing, LFSC2005 (EUSFLAT) Tabla 3. Valores medios de PSNR para diferentes métodos de desentrelazado. SECUENCIAS DE VÍDEO CIF FORMATO Duplicación L. Promedio L. ELA Inserción C. [3] [5] [6] [8] [4] Propuesto 89 QCIF Trevor Salesman Susie Paris Missa Foreman Carphone News 31,05 35,04 34,11 34,36 36,61 35,18 35,44 35,38 36,69 36,92 29,75 33,53 32,11 36,17 36,54 34,83 37,03 37,62 38,29 38,45 33,14 36,74 35,99 33,64 36,49 36,95 35,59 36,95 37,79 37,83 23,61 26,67 25,53 29,86 30,73 31,98 32,31 33,12 35,28 35,31 36,44 40,47 39,49 38,36 30,73 40,71 38,41 40,01 40,18 40,82 27,59 32,02 34,02 27,49 31,04 32,73 29,21 32,06 32,78 33,38 28,25 32,61 32,65 30,34 34,08 32,84 31,59 32,27 34,78 34,81 25,18 29,25 26,63 33,13 35,46 30,53 35,94 34,73 37,51 38,05 El diseño ha sido realizado con ayuda de la herramienta System Generator (Sysgen) de Xilinx. Integrada en el entorno Matlab, esta herramienta acelera el proceso de diseño al permitir la simulación mediante el entorno Simulink y, especialmente, al facilitar la generación de descripciones VHDL. Los sistemas generados Mother & Daughter 31,81 35,94 35,39 33,13 35,46 36,42 39,83 39,49 41,87 42,12 utilizan codificación en complemento a dos con 16 bits de resolución para realizar las operaciones. Los resultados obtenidos con los algoritmos simulados en Matlab son muy similares a los conseguidos con el simulador ModelSim a partir de las descripciones VHDL de las implementaciones hardware. Figura 5. Representación en SysGen de la arquitectura mixta para el algoritmo de desentrelazado propuesto. 90 Aplicaciones con Lógica Fuzzy Tabla 4. Resultados post-síntesis de implementaciones sobre FPGAs FPGA Virtex 2 xc2v500_6fg256 No. Slices Paralela Mixta Secuencial 1017 (33%) 569(18,5%) 421 (13,7%) Tiempo de procesado (ns) 11,7 28,7 98,6 Frecuencia de procesado (MHz) 85,4 38,4 10,14 Resolución (píxeles) Las implementaciones han sido desarrolladas sobre una FPGA Virtex2 de Xilinx con 500.000 puertas que proporciona una amplia variedad de recursos (memorias de bloque, multiplicadores, etc.) y admite un reloj de 420 MHz para las operaciones internas. Los resultados post-síntesis en términos de ocupación de la FPGA y velocidad de procesado se muestran en la Tabla 4. La última columna de la tabla indica la máxima resolución por fotograma que puede ser obtenida para secuencias de vídeo reproducidas a 30 fotogramas por segundo. Puede observarse que el diseño secuencial permite alcanzar una resolución tipo VGA (640x480), el mixto XGA (1024x768) y el paralelo HDTV (1080x1920). 5. Conclusiones El algoritmo de desentrelazado dependiente del movimiento propuesto en este artículo emplea lógica fuzzy para mejorar las prestaciones del detector de movimiento así como de la técnica intra-field utilizada. La mejora es especialmente significativa en la reconstrucción de zonas con movimiento en los fotogramas desentrelazados como consecuencia de los avances en la técnica ELA empleada. Estas ventajas son obtenidas con un incremento bajo en el coste computacional del algoritmo cuya implementación hardware, según distintas arquitecturas, ha sido realizada mediante FPGAs. Referencias [1] De Haan, G., Bellers, E. B., “De-interlacingAn overview”, Proc. of the IEEE, vol. 86, no. 9, pp. 1839-1857, Sept. 1998. 2.849.002 1.161.440 338.066 [2] Doyle, T., Looymans, M., “Progressive scan conversion using edge information”, Proc. 3rd Int. Workshop on HDTV, pp. 711-721, Aug. 1989, Torino, Italy. [3] Genesis Microchip, Inc., “Preliminary data sheet of Genesis gmVLD8, 8 bit digital video line doubler”, version 1.0, June 1996. [4] Gutiérrez-Ríos, J., Fernández Hernández, F., Crespo, J. C., Treviño, G., “Motion Adaptive Fuzzy Video De-interlacing method based on convolution techniques”. Proc. of Information Processing and Management of Uncertainty in Knowledge-Based Systems, July 2004, Perugia, Italy. [5] Haavisto, P., Juhola, J., Neuvo, Y., “Fractional frame rate up-conversion using weighted median filters”, IEEE Transactions on Consumer Electronics, vol. 35, no. 3, Aug. 1989. [6] Hsu, C-T., Chen, M-J., Huang, C-H., “High performance spatial-temporal de-interlacing technique using interfiled information”, Proc. IEEE Int. Symposium on Circuits and Systems (ISCAS), vol. 2, pp. 213-216, May 2004, Vancouver, Canada. [7] Lee, S-G., Lee, D-H., “A motion-adaptive deinterlacing method using an efficient spatial and temporal interpolation”, IEEE Transactions on Consumer Electronics, vol. no. 4, Nov 2003. [8] Van de Ville, D., Rogge, B., Philips, W., Lemahieu, I., “De-interlacing using fuzzybased motion detection”, Proc. 3rd Int. Conf. on knowledge-Based Intelligent Information Engineering Systems, pp. 263-267, Aug. 1999, Adelaide, Australia.