conversión de rgb a ycbcr en system generator y hls

10
Conversión de RGB a YCbCr en System Generator y HLS Romina Molina and Verónica Gil-Costa Universidad Nacional de San Luis San Luis, Argentina {rmolina,gvcosta}@unsl.edu.ar Abstract. Los sistema de recuperación de imagenes basados en con tenidos (CBIR) típicamente ejecutan dos tareas de alto costo computa- cional: (1) generación de la base de datos e indexacion y (2) recuperacion. Este trabajo se enfoca en la primera tarea la cual es inherentemente par alela, debido a que las imagenes son generalmente divididas en varias partes y cada parte se procesa por separado y de manera similar. Para ello se presenta un conversor de espacio de color de RGB a YCbCr para plataformas de FPGAs basadas en SoCs. Esta conversion de color se uti liza como parte del proceso de extraccion del descriptor de la distribucion de color, el cual forma parte del estandar MPEG-7 y es utilizado en sis temas CBIR. Se presenta la implementacióon del conversor haciendo uso de System Generator y de Vivado HLS y se efectóa una comparacion de los resultados sobre la plataforma ZYNQ - ZC7020 Evaluation Kit. Keywords: MPEG-7, system generator, descriptores, HDL, multime dia. 1 Introducción La recuperación de imagenes basada en contenido (CBIR) es un area cuyo obje tivo es desarrollar herramientas para recuperar informacion visual y tiene apli caciones importantes en muchas areas incluyendo medicina, educacion, diseño de arquitecturas, agricultura. Para representar una imagen, se utilizan los con tenidos visuales como el color, la forma, la textura, etc.. El estandar de representacion MPEG-7 (tambien conocido como Interfaz de Descripcion de Contenido Multimedial) ha sido amplianente utilizado en los ultimos años. Surge debido la necesidad de estandarizar la repesentacion del contenido de la informacion multimedia. Trabajos como [1] y [2] exponen mejoras de MPEG-7 respecto a MPEG-4. Es un estandar ISO/IEC desarrollado por el grupo MPEG [3],[4],[5]. Dentro de sus especificaciones se definen la semantica y la sintaxis para lograr una adecuada descripcion del contenido. MPEG-7 se encuentra estructurado en 7 partes: sistemas, lenguaje de de scripción y definicion, visual, audio, entidades genericas y esquemas de de scripción multimedia(MDS), software de referencia y conformance testing. En

Upload: others

Post on 29-Dec-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conversión de RGB a YCbCr en System Generator y HLS

Conversión de RGB a YCbCr en System Generator y HLS

Romina Molina and Verónica Gil-Costa

Universidad Nacional de San Luis San Luis, Argentina

{rmolina,gvcosta}@unsl.edu.ar

Abstract. Los sistema de recuperación de imagenes basados en con­tenidos (CBIR) típicamente ejecutan dos tareas de alto costo computa- cional: (1) generación de la base de datos e indexacion y (2) recuperacion. Este trabajo se enfoca en la primera tarea la cual es inherentemente par­alela, debido a que las imagenes son generalmente divididas en varias partes y cada parte se procesa por separado y de manera similar. Para ello se presenta un conversor de espacio de color de RGB a YCbCr para plataformas de FPGAs basadas en SoCs. Esta conversion de color se uti­liza como parte del proceso de extraccion del descriptor de la distribucion de color, el cual forma parte del estandar MPEG-7 y es utilizado en sis­temas CBIR. Se presenta la implementacióon del conversor haciendo uso de System Generator y de Vivado HLS y se efectóa una comparacion de los resultados sobre la plataforma ZYNQ - ZC7020 Evaluation Kit.

Keywords: MPEG-7, system generator, descriptores, HDL, multime­dia.

1 Introducción

La recuperación de imagenes basada en contenido (CBIR) es un area cuyo obje­tivo es desarrollar herramientas para recuperar informacion visual y tiene apli­caciones importantes en muchas areas incluyendo medicina, educacion, diseño de arquitecturas, agricultura. Para representar una imagen, se utilizan los con­tenidos visuales como el color, la forma, la textura, etc..

El estandar de representacion MPEG-7 (tambien conocido como Interfaz de Descripcion de Contenido Multimedial) ha sido amplianente utilizado en los ultimos años. Surge debido la necesidad de estandarizar la repesentacion del contenido de la informacion multimedia. Trabajos como [1] y [2] exponen mejoras de MPEG-7 respecto a MPEG-4. Es un estandar ISO/IEC desarrollado por el grupo MPEG [3],[4],[5]. Dentro de sus especificaciones se definen la semantica y la sintaxis para lograr una adecuada descripcion del contenido.

MPEG-7 se encuentra estructurado en 7 partes: sistemas, lenguaje de de­scripción y definicion, visual, audio, entidades genericas y esquemas de de­scripción multimedia(MDS), software de referencia y conformance testing. En

Page 2: Conversión de RGB a YCbCr en System Generator y HLS

2 Romina Molina et al.

la parte visual de MPEG-7, los descriptores se clasifican en: descriptores nor­mativos (describen colores, formas, texturas y movimiento de datos visuales), descriptores bóasicos y descriptores para localizacióon. Dentro de los campos de aplicacioón de este estóandar se encuentran: bibliotecas digitales, aplicaciones bio- medicas [6], busqueda de personas, aplicaciones educativas, control de trófico, sistemas de vigilancia [7], edicion multimedia, entre otras.

La contruccióon de los descriptores MPEG-7 que representan las imóagenes, es un proceso computacionalmente intensivo lo cual lo hace un buen candidato para ser paralelizado. Por lo tanto, en este trabajo se propone utilizar plataformas paralelas que permitan acelerar la construccióon de estos descriptores. En partic­ular, se propone utilizar las FPGAs basadas en SoC (System on Chip) que han mostrado ser una solución eficiente debido a su paralelismo inherente. Las FP- GAs son de alta eficiencia energóetica y proporcionan un alto poder de cóomputo debido a la posibilidad de adaptar los disenños basados en FPGA a una arqui­tectura específica. Estas características las hacen ideales para las operaciones de procesamiento de imagen o visioón por computador. Los SoCs hacen referencia a las nuevas tecnologóas que integran un microcontrolador, procesador, DSPs, móodulos de memoria, osciladores, contadores, temporizadores, interfaces exter­nas, AD/DA, entre otros componentes. Debido a la complejidad de los chips, esta tecnología puede ser programada, no solo con VHDL o Verilog, sino con HDL de mós alto nivel como SystemVerilog, SystemC, C /C + + . Trabajos como [8], [9] reflejan el uso de los SOC en el procesamiento de imagenes.

Recientemente se ha incrementado el uso de System Generator para realizar diseños hardware para FPGA. Areas como control [12], electrónica de poten­cia [13], procesamiento de señales [14],[15], entre otras. En lo que respecta al procesamiento de imóagenes, ha sido utilizado para implementar las operaciones bóasicas como binarizacióon, conversioón a escala de grises y mejora del contraste[16], [17], [18].

Este paper se enfoca especóficamente en el desarrollo del bloque correspondi­ente a la etapa del cambio de espacio de color de RGB a YCbCr, implementado mediante System Generator y Vivado HLS, y se compara la utilizacióon de los recursos que reporta cada una de esas herramientas. Este trabajo se organiza de la siguiente manera. La Seccióon 2 describe el proceso de construccioón de descrip­tores para imóagenes utilizando el Color Layout Descriptor de MPEG-7. En la Seccióon 3 de detalla la implementacióon de la etapa que involucra la conversioón del espacio de color RGB a YCbCr utilizando System Generator y Vivado HLS. La Seccióon 4 presenta compara el nuómero de recursos requeridos por System Generator y Vivado HLS. Finalmente, se concluye en la Seccióon 5.

2 Generación de descriptores de color en M PEG-7

Un descriptor es una representacion de una característica definida sintactica y semanticamente. Una imagen puede quedar caracterizado por mós de un descrip­tor. Uno de los descriptores mós utilizados es el Descriptor de la distribucion de color (CLD - Color Layout Descriptor), el cual permite obtener la distribucion

Page 3: Conversión de RGB a YCbCr en System Generator y HLS

Conversion de RGB a YCbCr en System Generator y HLS 3

Fig. 1. Proceso de extraccion de la distribucion de color.

espacial del color de una imagen y es uno de los descriptores más rápidos y precisos del estandar MPEG-7.

El CLD está compuesto por 3 vectores, cada uno correspondiente a los canales Y (luminancia), Cb (crominancia azul) y Cr (crominancia roja) de la imagen. Los pasos para la obtencián del mismo son los siguientes:

— Generación de imagen de 8x8 bloques: La imagen a procesar es dividida en 64 bloques de igual tamano, para obtener una matriz de 8x8 bloques.

— Deteccion del color mas representativo: De cada bloque se calcula el promedio con los píxeles pertenecientes a este. Con estos valores se arma una nueva imagen de 8x8 píxeles.

— Cambio de espacio de color a YCbCr: Se realiza una transformacion del espacio de color de RGB a YCbCr.

— Transformada Discreta del Coseno (DCT): La luminancia Y, la crominancia roja Cr y la crominancia azul Cb son transformadas en una matriz de 8x8 mediante la transformada Discreta del Coseno (DCT).

— Cuantizacion de coeficientes: Se realiza un reordenamiento y cuantizacion de los coeficientes de las matrices resultantes del paso anterior.

Una de las etapas de la extraccián del descriptor de la distribucion del color es la transformacion de color de RGB a YCbCr. Este último espacio de color mencionado es el recomendado por el estandar MPEG-7 y hace referencia a la luminancia y crominancia (diferencia de azul y rojo respectivamente) de una imagen. Trabajos como [10], [11] efectúan una implementacion de esta conversián de espacios en VHDL.

La transformacián de RGB a YCbCr está dada por las siguientes relaciones:

(1)

(2)

(3)

Page 4: Conversión de RGB a YCbCr en System Generator y HLS

4 Romina Molina et al.

Fig. 2. Esquema en Simulink del bloque de conversión de espacio de color RGB a YCbCr.

3 Uso de plataformas paralelas para la conversión del espacio de colores

En esta sección se presentan los diseño paralelos de la etapa de conversión del es­pacio RGB a YCbCr utilizando System Generator y Vivado HLS. Para disminuir los recursos de hardware en la implementacion, las ecuaciones presentadas en la seccion anterior se redefinen en punto fijo de la siguiente manera:

3.1 Implementacion en System Generator

Es esquema general desarrollado en Simulink puede verse en la Fig. 2. Esta com­puesto por un bloque encargado de la lectura de la imagen, de una etapa de pre-procesamiento, de las etapas encargadas de la conversion, una etapa de re- cuperacion de la imagen y, finalmente de la muestra en pantalla de los resultados obtenidos (tanto en canales separados como unidos).

El pre-procesamiento de la imagen en Simulink se efectúa mediante el es­quema de la Fig. 3. Esta etapa esta compuesta por los siguientes bloques:(a) Bloque Convert 2-D to 1-D: Convierte la imagen en un arreglo de 1D; y(b) Bloques Frame conversion and unbuffer: Especifica que el modo de muestreo de la señal de salida del bloque sea frame-based1 y convierte la matriz de entrada en un arreglo de escalares.

La imagen de entrada es cargada al sistema mediante el bloque Image from file. La misma tiene un tamaño de 8x8 píxeles y se encuentra en RGB. Este

1 http://www.mathworks.com/help/dsp/ref/frameconversion.html

(4)

(5)(6)

Page 5: Conversión de RGB a YCbCr en System Generator y HLS

Conversion de RGB a YCbCr en System Generator y HLS 5

Fig. 3. Bloques que efectúan el pre-procesamiento de la imagen.

Fig. 4. Esquema en Simulink de la generación del canal Y.

tamaño de la imagen se debe a que en esta etapa de la extraccion del descriptor, la misma fue reducida en los pasos previos a la conversiún de espacio de color. El funcionamiento del sistema presentado en este trabajo, tambien fue verificado para una imagen de entrada de 512x512 píxeles en RGB.

Para obtener el valor de luminancia Y, la Fig. 4 muestra como la ecuaciúon (4) es traducida a los bloques de System Generator. Se hizo uso de:

• Gateway In: Este bloque es la entrada a la parte del diseño a ser imple- mentada en System Generator del disenño total. Para este caso, se emplean 3 Gateway In, los cuales se corresponden a los 3 canales de la imagen (R, G,B).

• Cmult: Efectúa las multiplicaciones entre la señal de entrada y el factor cor­respondiente. En la configuraciúon de este bloque se carga el valor del mul­tiplicador en punto fijo. Este bloque implementa un operador de ganancia, donde la salida es el resultado de la multiplicaciúon entre el valor constante y la senñal de entrada.

• AddSub: Realiza la suma o resta entre 2 senales de entrada.• Shift: Realiza el corrimiento de 8 bits hacia la derecha.• Gateway Out: Este bloque es la salida de la parte del diseno en system

Generator hacia el resto del sistema realizado en Simulink. Se utiliza un solo bloque debido a que solamente se genera la salida correspondiente al canal Y . Como se puede observar que, para la generacioún de los valores para la luminancia, estaún implicados los 3 canales de la senñal de entrada.

La misma estructura utilizada para la generaciúon del canal de luminancia se emplea para generar los canales de crominancia, con la diferencia que se le

Page 6: Conversión de RGB a YCbCr en System Generator y HLS

6 Romina Molina et al.

Fig. 6. Esquema en Simulink de la generación del canal Cr.

Fig. 7. Bloques que efectúan la recuperación de la imagen.

incorpora un bloque Constant, debido a que, como se puede observar en las ecuaciones (5) y (6) se suma un valor de 32767.

Los bloques de Simulink encargados de efectuar la recuperación de la imagen a traves del arreglo obtenido del procesamiento realizado por los bloques de System Generator son los siguientes:

• Bloque Data type conversion: convierte al formato entero sin signo.• Bloque Buffer : Convierte las muestras escalares para enmarcar la salida a

menor velocidad de muestreo.• Bloque Convert 1D to 2D: Convierte el arreglo de 1D a la matriz de la imagen

correspondiente.

La Fig. 7 muestra la conexión de los bloques mencionados anteriormente. La visualiación de las imagenes obtenidas para cada canal, así como la imagen

Page 7: Conversión de RGB a YCbCr en System Generator y HLS

Conversión de RGB a YCbCr en System Generator y HLS 7

Fig. 8. Salidas: Canal Y, canal Cb y canal Cr respectivamente.

Fig. 9. Salidas: Canal Y, canal Cb y canal Cr respectivamente.

compuesta por los 3 canales se efectua mediante el bloque Video Viewer. El resultado de la conversión de espacio de color obtenido mediante System Gener­ator se puede observar en la Fig. 8. En la Fig. 9 se presenta la imagen resultante de combinar los 3 canales (Y, Cb y Cr).

3.2 Implementacion en Vivado HLS

La implementación en Vivado HLS de la conversión de color se efectua medi­ante la codificación en lenguaje C de las ecuaciones en punto fijo (4), (5), (6) mencionadas anteriormente.

La función que efectua la transformacion esta compuesta por un bucle, el cual va leyendo un arreglo y efectuando las operaciones necesarias para la conversion. Al estar en punto fijo antes de salir del bucle, se efectúa un shift hacia la derecha sobre el resultado de cada operación, para obtener el resultado definitivo.

Como HLS permite definir directivas para mejorar la performance del diseno, se utilizó la directiva de pipeline para el bucle. En lo que respecta a las directivas relacionados a los recursos a utilizar en la FPGA, se opto por hacer uso de aquellas que permiten seleccionar que las operaciones aritmeticas se efectuen en los DSPs disponibles. Sin estas ultimas directivas, el hardware generado no hace uso de los DSP e implementa las funciones con logica combinacional. En la Fig. 10 se muestra el flujo de la funcion que implementa la conversion del descriptor.

4 Resultados

La plataforma elegida para la implementacion fue ZYNQ-7 ZC702 Evaluation Board (xc7z020clg484-1). La misma dispone de 280 BRAM 18K, 220 DSP,

Page 8: Conversión de RGB a YCbCr en System Generator y HLS

8 Romina Molina et al.

Fig. 10. Salidas: Canal Y, canal Cb y canal Cr respectivamente.

106400 DSP y 53200 LUT. En la tabla 1 se muestra la comparacion de recursos entre ambos disenos. La columna Sys Gen muestra los recursos utilizados por System Generator. HLS_nd y HLS presentan los recursos requeridos al realizar la implementacion de la conversión del espacio de colores mediante Vivado HLS. El primer caso corresponde a los recursos utilizados sin directivas y el segundo usando las directivas de pipeline y DSP.

Recurso Sys Gen HLS_nd HLSSLICE 51 109 55LUT 118 275 105FF 6 157 126DSP 8 0 8BRAM 0 0 0Table 1. Estimación de recursos.

Considerando las columas Sys_Gen y HLS se puede observar, a diferencia de la cantidad de flip-flops, que existe poca variabilidad entre el resto de los recursos. Sin embargo, al no ustilizar directivas en HLS, la distribucion de los recursos cambia notablemente. El tiempo que le insume a la FPGA obtener el resultado, cuando se procesa una imagen de 8x8 píxeles RGB, cuyo diseño se

Page 9: Conversión de RGB a YCbCr en System Generator y HLS

Conversion de RGB a YCbCr en System Generator y HLS 9

Fig. 11. Resultado de simulacion para el diseno con HLS.

Fig. 12. Imagen de entrada para la medición de tiempo de procesamiento del bloque desarrollado en HLS.

efectuo mediante HLS es de 845 ns, mientras que al utilizar System Generator el tiempo es de 640 ns. El mismo se puede observar en la Fig 11, donde el marcador amarillo indica el final de procesamiento. Para esta medicion de tiempo, se utilizo la imagen de entrada que se muestra en la Fig. 12.

5 Conclusiones

MPEG-7 es un estandar que permite la representacion de contenido multimedia mediante la generacion de descriptores. Adicionalmente, su papel en el proce­samiento digital de señales en 2D resulta fundamental incluso en aplicaciones específicas de bio-medicina, control de trafico, telecomunicaciones, entre otras.

En este trabajo, se presento el diseno e implementacion del descriptor denom­inado Color Layout de MPEG-7 utilizando plataformas paralelas FPGA basadas en SoCs. Tanto las FPGA como los SoC se perfilan como las alternativas de buen rendimiento para la extracción de los descriptores de MPEG-7 en tiempo real, debido a que las diversas extracciones pueden realizarse en forma paralela con el adicional de que cada operacióon de extraccióon es altamente paralelizable.

Se utilizaron y compararon en tóerminos de utilizacióon de recursos las her­ramientas System Generator y Vivado HLS, el cual hace uso de C /C + + . Ambas se perfilan como buenas herramientas al momento de disenar hardware a alto nivel. En el caso particular de cambio de espacio de color, la diferencia de los recursos utilizados no difieren en grandes valores, quedando a una eleccióon sub­jetiva el uso de una herramienta u otra.

Page 10: Conversión de RGB a YCbCr en System Generator y HLS

10 Romina Molina et al.

References

1. Yesun Joung, Kyuheon Kim, Kyeongok Kang, The development of MPEG-7 inter­face over MPEG-4, Consumer Electronics, pp.276-277 , 2003.

2. Myungseok Ki, Kyuheon Kim, MPEG-7 over MPEG-4 systems decoder for using metadata, Consumer Electronics. ICCE, pp. 245 - 246 , 2006.

3. I. Sezan, P. van Beek, MPEG-7 standard and its expected role in development of new information appliances, Consumer Electronics. ICCE. pp. 274 - 275, 2000.

4. Yong Rui, Huang, T.S., Shih-Fu Chang, Digital image/video library and MPEG-7: standardization and research issues, Acoustics, Speech and Signal Processing, Vol. 6, pp. 3785 - 3788, 1998.

5. V. V. Vinod, A. Lindsay , MPEG-7: its impact on research, industry, and the con­sumer, Multimedia Computing and Systems, pp. 7-11, 1999.

6. N.H. Eltonsy, G.D. Tourassi, A. Fadeev, A.S.Elmaghraby, Significance of MPEG-7 Textural Features for Improved Mass Detection in Mammography, Engineering in Medicine and Biology Society, pp.4779-4782, 2001.

7. N.H. Eltonsy, G.D. Tourassi, A. Fadeev, A.S.Elmaghraby, Chaotic Synchronization of MPEG-7 Descriptors for Interpretation in Surveillance Video, Circuits and Systems for Video Technology, Vol. 11, pp.688 - 695, 2001.

8. Zhenni Li, Jingjiao Li, Liang Li, Yue Zhao, Chaoqun Rong, A SoC design and implementation of dynamic image edge detection based on the LEON3 open source processor, Natural Computation, pp. 1263 - 1267, 2013

9. M. Borda,B. Belean, R. Terebes, R. Malutan, FPGA based SoC for automated cDNA microarray image processing, E-Health and Bioengineering Conference, pp. 1 - 4, 2011

10. Ahirwal, B., Khadtare, M., Mehta, R., FPGA based system for color space trans- formation RGB to YIQ and YCbCr, pp. 1345 - 1349, 2007.

11. Lamjed Touil, Abdessalem Ben Abdelali, Mtibaa Abdellatif, Elbey Bourennane,R ’G ’B ’ to Y ’CbCr color space conversion Using FPGA, Wireless, Mobile andMultimedia Networks, pp. 255 - 258, 2008.

12. Behnam, B., Mansouryar, M., Modeling and simulation o f a DC motor control sys­tem with digital PID controller and encoder in FPGA using Xilinx system generator, Instrumentation Control and Automation, pp. 104-108, 2011.

13. Thangavelu, A., Varghese, M.V., Vaidyan, M.V, Novel FPGA based controller de­sign platform for DC-DC buck converter using HDL Co-simulator and Xilinx System Generator, Industrial Electronics and Applications, pp. 270 - 274, 2012.

14. Vidal, M, Cruces, R. ; Zurita, G., Digital FIR filter design for diagnosing problemsin gears and bearings using Xilinx’s system generator, 2014.

15. Vidal, M, Cruces, R. ; Zurita, G., Implementation and simulation of IIR digital filters in FPGA using MatLab system generator, Colombian Workshop on Circuits and Systems (CWCAS), pp. 1-5, 2014.

16. Alareqi Mohammed, Elgouri Rachid, Hlou Laamari, High Level FPGA Modeling for Image Processing Algorithms Using Xilinx System Generator, Journal of Computer Science and Telecommunications, Vol. 5, Issue 6, pp. 1-8, 2014.

17. Neha. P. Raut, Prof.A.V.Gokhale, FPGA Implementation for Image ProcessingAlgorithms Using Xilinx System Generator, IOSR Journal of VLSI and SignalProcessing, Vol. 2, Issue 4, pp. 26-36, 2013.

18. Aniket A. Ingle, Vrushali G. Raut, Hardware software co-simulation of edge detec­tion for image processing system using delay block in XSG, Journal of Research in Engineering and Technology, Vol. 3, Issue 5, pp. 549-553, 2014.