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

Post on 08-Jan-2016

30 views 1 download

description

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 - PowerPoint PPT Presentation

transcript

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

1

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

CAMELLIA: Core for Ambient and Mobile intELLigent Imaging

Applications

Curso de doctorado: Diseño de Procesadores para MultimediaProfesor: Antonio NúñezJunio 2004

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

2

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

AgendaAgenda

1. Introducción2. Objetivos3. Campo de aplicación4. Arquitectura del sistema5. Smart Imaging Copro6. Estimador de Movimiento7. Soporte software8. Conclusiones

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

3

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

IntroducciónIntroducción

Motivación: crecimiento de la demanda en las áreas de aplicación de las “Smart Cameras”

“Smart Imaging” combina:

o Captura de imágenes y video

o 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árezvreyes@iuma.ulpgc.es

4

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

ObjetivosObjetivos

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árezvreyes@iuma.ulpgc.es

5

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Campo de aplicaciónCampo 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árezvreyes@iuma.ulpgc.es

6

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Estructura de las aplicaciones (ejemplo)Estructura de las aplicaciones (ejemplo)

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

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

7

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada Detección de sombras:

– Busca áreas de oscuridad en la carretera– Utiliza: Histograma, Thresholding, Erosión,

Etiquetado+Blob

Road Histogram

020406080

100120140160180

1 21 41 61 81 101 121 141 161 181 201 221 241

Pixel value

Nu

m o

f P

ixel

s

Series1

Estructura de las aplicaciones (ejemplo)Estructura de las aplicaciones (ejemplo)

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

8

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Estructura de las aplicaciones (ejemplo)Estructura de las aplicaciones (ejemplo)

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.

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

9

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Arquitectura del sistemaArquitectura del sistema

VideoI/O

Core Architecture

MemoryCtrl

SystemMemory

InternalMemory

ARM9CPU

I/OCtrl

Camera

Display

Ext. Peripherals

Video Compression

Bus Infrastructure (Data, Ctrl, Sync)

Control del sistema y

algoritmos de medio y alto

nivel

ME TC BSG SmartImaging

ME

Coprocessors for core algorithmsCoprocesadores para procesamiento de bajo nivel

Plataforma base: Codificador de Vídeo MPEG4 de Philips

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

10

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Mapeado de las aplicacionesMapeado de las aplicaciones

MLA 1 MLA 3 ( Motiondetection )

ParticleFiltering

Output stage

MLA 2 MLA 4

on ARM-CPUincluding likelihood functions

on ARM-CPU

LLALLALLA LLALLALLA LLALLALLA LLALLALLA

on SI coprocessor

on ME

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

11

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Smart-Imaging CoproSmart-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árezvreyes@iuma.ulpgc.es

12

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Diseño del coprocesador SI 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árezvreyes@iuma.ulpgc.es

13

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Ejemplo de MicroinstrucciónEjemplo 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

MAX MAX MAXMAX

REG REG REG REG

8 8 8 8

8 8 8 8

condition

4

Operands

Structuring Element

Entry

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

14

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Controlando el coprocesador de SIControlando 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árezvreyes@iuma.ulpgc.es

15

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Arquitectura del SI coproArquitectura del SI copro

Memory

Data path

Copro

cess

or

Contr

ol U

nit

Data I/O

RegFile Data RAM 1(a/b)

Data Ram 2(a/b)

Data Ram 3

Data IF

Macr

oin

stru

ctio

n

IF

SI Core

Arithmetic 1

Arithmetic 2

Accu Regs

RLE Unit

Syst

em

Contr

ol In

terf

ace

Contr

ol

IF

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

16

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Datapath: Arithmetic 1Datapath: Arithmetic 1

ADD/SUB INV 2 x MUL THRESH SHIFT/ROTL

ABS

Pipeline Register

AND/OR/XOR

MIN/MAX HISTO LUT ADD/SUB

Indirectmemoryaccess

Accu Regs

Operands from local Memory

ControlWord (A1_INS)

Pipeline Register

to Arithmetic 2

EXE 1

EXE 2

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

17

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Datapath: Arithmetic 2Datapath: Arithmetic 2

SEL/CLIP/ABS SUM MAX/MIN

SHIFT

from Arithmetic 1

ControlWord (A2_INS)

Pipeline Register

to local Memory

EXE 3

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

18

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Ejemplos de operación: FilterEjemplos de operación: Filter

-1 0 1

-2 0 2

-1 0 1

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

Sobel_3x3_VPixel

i-1,j-1

Pixel

I,j-1

Pixel

i+1,j-1

Pixel

i-1,j

Pixel

i,j

Pixel

i+1,j

Pixel

i-1,j+1

Pixel

i.j+1

Pixel

i+1,j+1

Bloque de entrada MxN

Bloque de salida M-(Ksize/2)xN-(Ksize/2)

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

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

19

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Ejemplos de operación: FilterEjemplos de operación: Filter

Arithmetic Unit 1 (3 Arithmetic Stages)support for processing of 4 pixels in parallel

ADD/SUB INV 2 x MUL THRESH SHIFT/ROTL

ABS

Pipeline Register

AND/OR/XOR

MIN/MAX HISTO LUT ADD/SUB

Accu RegsPipeline Register

EXE 1

EXE 2

SEL/CLIP/ABS SUM MAX/MIN

SHIFT

EXE 3

1 x MUL

Accu Regs

SEL/CLIP/ABS

SHIFT

Pipeline Register

ADD/SUB

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

20

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Ejemplos de operación: DilationEjemplos de operación: Dilation

0 1 0

1 1 1

0 1 0

Dilación (ó dilatación) también utiliza máscaras de diversos tipos. Ejemplo: Dilación con máscara circular

Circle_3x3Pixel

i-1,j-1

Pixel

I,j-1

Pixel

i+1,j-1

Pixel

i-1,j

Pixel

i,j

Pixel

i+1,j

Pixel

i-1,j+1

Pixel

i.j+1

Pixel

i+1,j+1

Bloque de entrada MxN

Bloque de salida M-(Ksize/2)xN-(Ksize/2)

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

)

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

21

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Ejemplos de operación: Erosion/DilationEjemplos de operación: Erosion/Dilation

Arithmetic Unit 1 (3 Arithmetic Stages)support for processing of 4 pixels in parallel

ADD/SUB INV 2 x MUL THRESH SHIFT/ROTL

ABS

Pipeline Register

AND/OR/XOR

MIN/MAX HISTO LUT ADD/SUB

Accu RegsPipeline Register

EXE 1

EXE 2

SEL/CLIP/ABS SUM MAX/MIN

SHIFT

EXE 3

Pipeline Register

MIN/MAX

Accu Regs

SEL/CLIP/ABS

SHIFT

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

22

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Funcionalidad del SI coproFuncionalidad del SI copro

LLAs requeridos Soportados por el coprocesador de SI

Operaciones aritméticas

Matemática morfológica (Erosión y dilación)

Etiquetado RLE en el copro, etiquetado con los valores de RLE en la CPU

Histograma

Blob analysis En la CPU

Filtrado lineal

Sumatoria Ver. & hor.

Escalado

Corrección de la imagen (como LUT)

Movimientos de memoria

Computación del momento (como la media y la desviación estándar)

Cálculo del Mínimo y Máximo

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

23

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Estimador de MovimientoEstimador 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)

-code

FSM

I. Reg. Communication Bus/Network

Distributed Register Files

VLIW ctrl

ACU ROMRAMALUASU ASU

Application Specific Units

Default Units

Se modifica el ME original para cumplir los requerimientos de las aplicaciones de Camellia

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

24

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Características del Estimador de MovimientoCaracterí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árezvreyes@iuma.ulpgc.es

25

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Camellia ME vs. Video Encoding MECamellia ME vs. Video Encoding ME

Camellia Codificador de Vídeo

Componentes de vídeo Y, U , V Solo Y

Scan Order LRTB, RLBT y aleatorio

LRTB

Tamaño máximo de las coordenadas (Vx, Vy)

8 pixels Cualquier tamaño

Valores SAD 3 mejores 1 mejor

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

26

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Unidades de aplicación específicaUnidades 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

-code

FSM

I.Reg. Communication Bus/Network

Register Files

VLIW Ctrl

ACU MULTRAMROM

ALUSADSAbuf

RBbuf

BI

“Sum of Absolute Difference”

- Cálcula 16 pixels en paralelo

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

27

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Ejemplo de ASUEjemplo 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”

bank11

filter

32

FSM

pels

c2

Q[31:0]

A[4:0]

D[31:0]

web

SRAM

Q[31:0]

A[4:0]

D[31:0]

web

SRAM

Q[31:0]

A[4:0]

D[31:0]

web

SRAM

Q[31:0]

A[4:0]

D[31:0]

web

SRAM

bank10bank1bank0

frame constants

run constants

Fetch control

filterctrl

c3c0 c1

32

c4

323232 8

webctrl

addrctrl

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

28

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Ejemplo de ASUEjemplo 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

p

four nearest neighboursof pixel pCurrent pixel-line

Interpolated pixel-line

Previous (registered) pixel-line

D

Víctor Reyes Suárezvreyes@iuma.ulpgc.es

29

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

Soporte softwareSoporte 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árezvreyes@iuma.ulpgc.es

30

Inst

ituto

Uni

vers

itario

de

Mic

roel

ectr

ónic

a A

plic

ada

ConclusionesConclusiones 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”