1 / 30

CAMELLIA: C ore for A mbient and M obile int ELL igent I maging A pplications

CAMELLIA: C ore for A mbient and M obile int ELL igent I maging A pplications. Curso de doctorado: Diseño de Procesadores para Multimedia Profesor: Antonio Núñez Junio 2004. Agenda. Introducción Objetivos Campo de aplicación Arquitectura del sistema Smart Imaging Copro

stan
Download Presentation

CAMELLIA: C ore for A mbient and M obile int ELL igent I maging A pplications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CAMELLIA: Core for Ambient and Mobile intELLigent Imaging Applications Curso de doctorado: Diseño de Procesadores para Multimedia Profesor: Antonio Núñez Junio 2004 Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  2. Agenda • Introducción • Objetivos • Campo de aplicación • Arquitectura del sistema • Smart Imaging Copro • Estimador de Movimiento • Soporte software • Conclusiones Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  3. Introducción • Motivación: crecimiento de la demanda en las áreas de aplicación de las “Smart Cameras” • “Smart Imaging” combina: • Captura de imágenes y video • Procesamiento e interpretación del contenido de las escenas • Nace el proyecto CAMELLIA IST-2001-34410 • Incrementar la competitividad europea frente a USA Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  4. Objetivos • Desarrollar un “Smart Imaging” SoC que pueda ser embebido en una cámara • Basado en una existente plataforma de compresión de video MPEG • “Low-cost” y “Low-power” • Alta potencia de procesamiento – Ejecución en tiempo real • Máxima Flexibilidad: cubrir un amplio abanico de aplicaciones tipo “Smart Imaging” Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  5. Campo de aplicación • Aplicaciones de automoción y de comunicaciones móviles • Detección de objetos a baja velocidad • Detección de peatones • Detección y seguimiento de caras • Estabilización de imagen • Solución flexible para cualquier otro tipo de aplicación de “Smart Imaging” Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  6. Detección de objetos a baja velocidad: Algoritmo de alto nivel: Filtro de partículas (probabilidades) Algoritmos de nivel medio: Segmentación de movimiento Detección de sombras Detección de luces Detección de bordes Detección de simetría Algoritmos de bajo nivel: Escalado, Operaciones aritméticas, Operaciones morfológicas, Filtrado lineal, Filtrado de media, Histograma, Sumatoria horizontal/vertical Estructura de las aplicaciones (ejemplo) Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  7. Estructura de las aplicaciones (ejemplo) • Detección de sombras: • Busca áreas de oscuridad en la carretera • Utiliza: Histograma, Thresholding, Erosión, Etiquetado+Blob Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  8. Detección de bordes verticales: Se basa en el cálculo la sumatoria vertical de algunas zonas de la imagen. Normalmente primero se realiza un filtrado lineal para la detección de los bordes. Estructura de las aplicaciones (ejemplo) Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  9. SmartImaging Coprocessors for core algorithms Coprocesadores para procesamiento de bajo nivel ME Arquitectura del sistema • Plataforma base: Codificador de Vídeo MPEG4 de Philips Core Architecture Camera VideoI/O Video Compression ME TC BSG Display Bus Infrastructure (Data, Ctrl, Sync) Memory Ctrl Internal Memory ARM9 CPU I/O Ctrl Control del sistema y algoritmos de medio y alto nivel System Memory Ext. Peripherals Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  10. MLA 1 MLA 2 MLA 3 MLA 4 ( Motiondetection ) on ARM-CPU ParticleFiltering on ME LLA LLA LLA LLA LLA LLA LLA LLA LLA LLA LLA LLA on SI coprocessor Output stage on ARM-CPU including likelihood functions Mapeado de las aplicaciones Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  11. Smart-Imaging Copro • Cada aplicación pueden ejecutar distintos LLAs y en distinto orden • Se requiere un mínimo de flexibilidad en el diseño • Arquitectura posicionada entre un ASIC y DSP • Ventajas: - Equilibrio entre flexibilidad y eficiencia • - Flexibilidad de un DSP no se alcanza completamente, pero.. • - .. casi se alcanza la eficiencia de un ASIC por medio de compartir recursos en el datapath Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  12. Diseño del coprocesador SI • Desarrollar un único tipo de coprocesador que cubra todas las aplicaciones • Se busca compartir recursos (control, memoria, unidades funcionales) • Se requiere una cierta programabilidad • Se analizan los LLAs que se van a mapear en el coprocesador • Se identifican y se clasifican las funciones y operaciones básicas de cada algoritmo • Se extraen las operaciones aritméticas comunes • Se obtienen los requerimientos para el data path • Se define el conjunto de microinstrucciones • Control del data path Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  13. 8 8 8 8 MAX MAX MAX MAX 8 8 8 8 REG REG REG REG 4 condition Ejemplo de Microinstrucción • Condición Especial Máxima • Aceleración de la operación morfológica Dilación • Encuentra el máximo valor en una segmento de imagen con forma arbitraria Structuring Element Entry Operands Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  14. Controlando el coprocesador de SI • Se elige un control jerárquico - Para limitar la comunicación entre la CPU y el coprocesador - Para simplificar la interfaz SW/HW • Level 1: Microinstrucciones (dentro del coprocesador) • Para controlar el núcleo del coprocesador • Level 2: Macroinstrucciones (interfaz con el sistema) • Para controlar el SI copro desde la CPU • Para iniciar la ejecución de secuencia de microinstrucciones • Para iniciar operaciones de transferencia de datos • Beneficio: Reducir la comunicación entre la CPU y el coprocesador, pero manteniendo la flexibilidad Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  15. RegFile Data RAM 1 (a/b) Data Ram 2 (a/b) Data Ram 3 Arithmetic 1 RLE Unit Accu Regs Arithmetic 2 Arquitectura del SI copro Data IF SI Core Data I/O Memory Macroinstruction IF Control IF Data path Coprocessor Control Unit System Control Interface Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  16. Datapath: Arithmetic 1 Operands from local Memory ADD/SUB INV AND/OR/XOR 2 x MUL THRESH SHIFT/ROTL EXE 1 ABS ControlWord (A1_INS) Indirectmemoryaccess Pipeline Register EXE 2 MIN/MAX HISTO LUT ADD/SUB Pipeline Register Accu Regs to Arithmetic 2 Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  17. SHIFT SEL/CLIP/ABS SUM MAX/MIN Datapath: Arithmetic 2 from Arithmetic 1 ControlWord (A2_INS) EXE 3 Pipeline Register to local Memory Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  18. Ejemplos de operación: Filter • Filtrado lineal utiliza distintos filtros de gradiente (kernel) para detectar cosas diferentes. Ejemplo: Detección de bordes verticales utiliza un kernel tipo Sobel_3x3_V Bloque de entrada MxN Sobel_3x3_V Out_pixel i,j = In_pixel i-1,j-1 * k0,0 + In_pixel i,j-1 * k0,1 + In_pixel i+1,j-1 * k0,2 + In_pixel i-1,j * k1,0 + In_pixel i,j * k1,1 + In_pixel i+1,j * k1,2 + In_pixel i-1,j+1 * k2,0 + In_pixel i,j+1 * k2,1 + In_pixel i+1,j+1 * k2,2 Bloque de salida M-(Ksize/2)xN-(Ksize/2) Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  19. 1 x MUL Pipeline Register ADD/SUB Accu Regs SHIFT SEL/CLIP/ABS Ejemplos de operación: Filter Arithmetic Unit 1 (3 Arithmetic Stages) support for processing of 4 pixels in parallel ADD/SUB INV AND/OR/XOR 2 x MUL THRESH SHIFT/ROTL EXE 1 ABS Pipeline Register EXE 2 MIN/MAX HISTO LUT ADD/SUB Pipeline Register Accu Regs SHIFT EXE 3 SEL/CLIP/ABS SUM MAX/MIN Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  20. Ejemplos de operación: Dilation • Dilación (ó dilatación) también utiliza máscaras de diversos tipos. Ejemplo: Dilación con máscara circular Bloque de entrada MxN Circle_3x3 Out_pixel i,j = Máximo valor ( In_pixel i,j-1, In_pixel i-1,j, In_pixel i,j, In_pixel i+1,j, In_pixel i,j+1 ) Bloque de salida M-(Ksize/2)xN-(Ksize/2) Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  21. Pipeline Register MIN/MAX Accu Regs SHIFT SEL/CLIP/ABS Ejemplos de operación: Erosion/Dilation Arithmetic Unit 1 (3 Arithmetic Stages) support for processing of 4 pixels in parallel ADD/SUB INV AND/OR/XOR 2 x MUL THRESH SHIFT/ROTL EXE 1 ABS Pipeline Register EXE 2 MIN/MAX HISTO LUT ADD/SUB Pipeline Register Accu Regs SHIFT EXE 3 SEL/CLIP/ABS SUM MAX/MIN Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  22. Funcionalidad del SI copro Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  23. Estimador de Movimiento • Arquitectura: Application Specific Instruction-set Processor (ASIP) • Diseño: Uso de herramientas de síntesis de alto nivel desde C • Herramienta A|RT de Adelante technologies • Arquitectura básica tipo VLIW • Permite la integración de Unidades de Aplicación Específica (ASUs) • Se modifica el ME original para cumplir los requerimientos de las aplicaciones de Camellia VLIW ctrl Communication Bus/Network I. Reg. -code Application Specific Units Distributed Register Files Default Units ASU ASU ACU ALU RAM ROM FSM Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  24. Características del Estimador de Movimiento • Modificaciones se basan en el “Camellia Motion Segmentation Algorithm (CMSA)” • Estimación de movimiento basada en bloques 2D • 16 x 16 pixels por bloque; Imágenes YUV 4:2:2 • Modelo de movimiento con 2 coordenadas (vx,vy) • Tamaño máximo de las coordenadas es 8 bits, precisión de cuarto de pixel • 15 diferentes modelos de movimiento candidatos • 3 aleatorios, 8 espaciales y 4 temporales • “Scan orders” • LRTB, RLBT, aleatorio Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  25. Camellia ME vs. Video Encoding ME Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  26. VLIW Ctrl Communication Bus/Network I.Reg. -code Register Files SAD SA buf BI RB buf ACU ALU RAM ROM MULT FSM Unidades de aplicación específica • 4 ASUs dentro del Camellia ME • “Reference Block Buffer” (almacena los bloques de la imagen actual) • 4 bancos de 16 líneas de pixels de 32 bits (2 Kbits) • “Search Area Buffer” (almacena bloques de la imagen previa) • 12 bancos de 32 líneas de pixels de 32 bits (12Kbits) • “Bi-linear Interpolator” • Soporta precisión de ¼-pixel • “Sum of Absolute Difference” - Cálcula 16 pixels en paralelo Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  27. FSM webctrl Fetch control 32 pels addrctrl web web web web A[4:0] A[4:0] A[4:0] A[4:0] D[31:0] D[31:0] D[31:0] D[31:0] Q[31:0] Q[31:0] Q[31:0] Q[31:0] SRAM SRAM SRAM SRAM bank1 bank10 bank11 bank0 filterctrl filter 32 32 32 32 8 run constants c2 c3 c0 c1 c4 frame constants Ejemplo de ASU • “Search Area Buffer” • Almacena el área de búsqueda • 12 bancos de 32 líneas de 32 bits (12Kbits) • Salida: 17 pixels/cycle • Soporta 16 pixels en paralelo y presición de cuarto de pixel • Salida de los bancos están concatenadas y alineadas por el módulo “filter” Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  28. Ejemplo de ASU • “Bi-linear Interpolator” • Interpolación de pixels hasta la resolución de cuarto de pixel • Cálculo de la media con peso de los 4 pixels vecinos • Los pesos se determinan por medio de los valores fraccionales de Dx y Dy • La ASU registra la línea de pixels previa y en un ciclo se obtiene la línea de salida interpolada Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  29. Soporte software • Librería software para el desarrollo de aplicaciones “Smart Imaging” en entorno PC: • Rutinas de bajo nivel escritas en C • “Camellia Image Processing Library” disponible como código abierto en SourceForge • Librería software para el desarrollo de aplicaciones “Smart -Imaging” en entorno embebidos (ARM): • Basada en macroinstrucciones y enfocada a ser ejecutada en el coprocesador de SI • Compatibilidad con la “Camellia Image Processing Library” Víctor Reyes Suárez vreyes@iuma.ulpgc.es

  30. Conclusiones • Diseño de un coprocesador enfocado a acelerar algoritmos básicos para “Smart Imaging” • Área : 0,8 mm2 CMOS 0.12 • Frecuencia máxima : 100 MHz • 4 MOPS • Adaptación de un coprocesador Estimador de Movimiento para aplicaciones “Smart Imaging” • Diseño de una plataforma SW/HW flexible y competitiva para el desarrollo de aplicaciones en el campo de las “Smart Cameras” Víctor Reyes Suárez vreyes@iuma.ulpgc.es

More Related