instituto universitario de microelectrónica aplicada víctor reyes suárez [email protected] 1...
TRANSCRIPT
![Page 1: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/1.jpg)
Víctor Reyes Suá[email protected]
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
![Page 2: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/2.jpg)
Víctor Reyes Suá[email protected]
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
![Page 3: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/3.jpg)
Víctor Reyes Suá[email protected]
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
![Page 4: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/4.jpg)
Víctor Reyes Suá[email protected]
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”
![Page 5: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/5.jpg)
Víctor Reyes Suá[email protected]
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”
![Page 6: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/6.jpg)
Víctor Reyes Suá[email protected]
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
![Page 7: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/7.jpg)
Víctor Reyes Suá[email protected]
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)
![Page 8: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/8.jpg)
Víctor Reyes Suá[email protected]
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.
![Page 9: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/9.jpg)
Víctor Reyes Suá[email protected]
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
![Page 10: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/10.jpg)
Víctor Reyes Suá[email protected]
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
![Page 11: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/11.jpg)
Víctor Reyes Suá[email protected]
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
![Page 12: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/12.jpg)
Víctor Reyes Suá[email protected]
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
![Page 13: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/13.jpg)
Víctor Reyes Suá[email protected]
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
![Page 14: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/14.jpg)
Víctor Reyes Suá[email protected]
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
![Page 15: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/15.jpg)
Víctor Reyes Suá[email protected]
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
![Page 16: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/16.jpg)
Víctor Reyes Suá[email protected]
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
![Page 17: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/17.jpg)
Víctor Reyes Suá[email protected]
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
![Page 18: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/18.jpg)
Víctor Reyes Suá[email protected]
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
![Page 19: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/19.jpg)
Víctor Reyes Suá[email protected]
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
![Page 20: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/20.jpg)
Víctor Reyes Suá[email protected]
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
)
![Page 21: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/21.jpg)
Víctor Reyes Suá[email protected]
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
![Page 22: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/22.jpg)
Víctor Reyes Suá[email protected]
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
![Page 23: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/23.jpg)
Víctor Reyes Suá[email protected]
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
![Page 24: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/24.jpg)
Víctor Reyes Suá[email protected]
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
![Page 25: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/25.jpg)
Víctor Reyes Suá[email protected]
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
![Page 26: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/26.jpg)
Víctor Reyes Suá[email protected]
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
![Page 27: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/27.jpg)
Víctor Reyes Suá[email protected]
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
![Page 28: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/28.jpg)
Víctor Reyes Suá[email protected]
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
![Page 29: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/29.jpg)
Víctor Reyes Suá[email protected]
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”
![Page 30: Instituto Universitario de Microelectrónica Aplicada Víctor Reyes Suárez vreyes@iuma.ulpgc.es 1 CAMELLIA: Core for Ambient and Mobile intELLigent Imaging](https://reader035.vdocuments.site/reader035/viewer/2022081603/5665b4901a28abb57c923399/html5/thumbnails/30.jpg)
Víctor Reyes Suá[email protected]
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”