SlideShare ist ein Scribd-Unternehmen logo
1 von 66
Downloaden Sie, um offline zu lesen
Complex Cameras are complex
Jacopo Mondi
Linux Lab 2018
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (1/ 65)
Hello, I’m Jacopo
Embedded Linux software engineer
I mostly work on integrating cameras and
multimedia devices
I (mostly) work with Renesas Electronics mainline
kernel team
jacopo@jmondi.org
irc: jmondi freenode.net
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (1/ 65)
Motivations
Rapidly increasing complexity of image capture
process is moving from the embedded and mobile
space to the more canonical personal computing
space (say, laptops).
Are Linux systems ready for this?
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (2/ 65)
Motivations
Rapidly increasing complexity of image capture
process is moving from the embedded and mobile
space to the more canonical personal computing
space (say... laptops).
Are Linux systems ready for this?
No they’re not
(I wouldn’t be giving this presentation otherwise :p )
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (3/ 65)
Complex Cameras are complex
Image acquisition is complex
Image capture
Smart sensors
Smart(er) ISPs
The media controller
The media graph
Handling pipelines
Intel’s IPU3
Libcamera
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (4/ 65)
Image Capture
The image acquisition process is a pipeline of digital
signals processing blocks, that spans from the
application processor to external components
connected through a data and a control bus
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (5/ 65)
Image Capture: Sensors
Sensors
grid of photo-detectors (pixels)
measure intensity of photo-electric properties
filters: each pixel transports a single color
information
Red Green Blue
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (6/ 65)
Image Capture: Raw Bayer
Bayer Patterns
disposition of color filters
BGGR - RGBG - GRBG - RGGB
50% Green - 25% Red - 25% Blue
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (7/ 65)
Image Capture: Raw Bayer
Bayer Patterns
disposition of color filters
BGGR - RGBG - GRBG - RGGB
50% Green - 25% Red - 25% Blues
The full pixel color has to be reconstructed
demosaicing or de-bayering
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (8/ 65)
Image Capture: Raw Bayer
It’s a tough job!
interpolation of colors from neighbour pixels
computational intensive problems
Figure: From: http://www.cambridgeincolour.com
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (9/ 65)
Image Capture: Color Encoding
The RAW digital values have to be interpreted and
encoded
RAW usually converted to commonly used
colorspaces as sRGB, Adobe RGB, CYMK
from a known colorspace, pixels get color encoded
to ease transportation
media bus formats: RGB565, RGB666, YUYV, VYUY
easier to transport, store and manipulate
More computations!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (10/ 65)
Image Capture: Feedback loop
What about 3A, black level calibration, enhancements
etc ?
feedback loop on captured images
even more computationally expensive
often based on user application inputs
Application
SoC
Sensor
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (11/ 65)
Image Capture: Feedback loop
What about 3A, black level calibration, enhancements
etc ?
feedback loop on captured images
even more computationally expensive
often based on user application inputs
Application
SoC
Sensor
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (12/ 65)
Image Capture: Feedback loop
What about 3A, black level calibration, enhancements
etc ?
feedback loop on captured images
even more computationally expensive
often based on user application inputs
Application
SoC
Sensor
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (13/ 65)
Image Capture: Feedback loop
What about 3A, black level calibration, enhancements
etc ?
feedback loop on captured images
even more computationally expensive
often based on user application inputs
Application
SoC
Sensor
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (14/ 65)
Image Capture: Feedback loop
What about 3A, black level calibration, enhancements
etc ?
feedback loop on captured images
even more computationally expensive
often based on user application inputs
Application
SoC
Sensor
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (15/ 65)
Image Capture: Summary
Digital imaging is a computational expensive process!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (16/ 65)
Image Capture: Summary
Digital imaging is a computational expensive process!
complexity in the image acquisition
de-bayering, enhancing, pixel encoding
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (17/ 65)
Image Capture: Summary
Digital imaging is a computational expensive process!
complexity in the image acquisition
de-bayering, enhancing, pixel encoding
complexity in image quality tuning
3A parameters computation, tuning
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (18/ 65)
Image Capture: Summary
Digital imaging is a computational expensive process!
complexity in the image acquisition
de-bayering, enhancing, pixel encoding
complexity in image quality tuning
3A parameters computation, tuning
strict correlation with application requests
feedback loop
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (19/ 65)
Image Capture: Summary
Digital imaging is a computational expensive process!
complexity in the image acquisition
de-bayering, enanching, pixel encoding
complexity in image quality tuning
3A parameters computation, tuning
strict correlation with application requests
feedback loop
don’t forget we’re operating on -big- buffers
1080p in YUYV format is 4MB of data
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (20/ 65)
Image Capture: Architecture
SoC
(fat) CPUs
ISP
Sensor
RAM
DMA
I2c control
image data
CSI-2
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (21/ 65)
Smart sensors
In the pre-mobile computing era, embedded systems
where:
much less powerful
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (22/ 65)
Smart sensors
In the pre-mobile computing era, embedded systems
where:
much less powerful
much more proprietary
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (23/ 65)
Smart sensors
In the pre-mobile computing era, embedded systems
where:
much less powerful
much more proprietary
much less standardized
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (24/ 65)
Smart sensors
SoC
(fat) CPUs
ISP
Sensor
RAM
DMA
I2c control
image data
CSI-2
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (25/ 65)
Smart sensors
Let the sensor do the computations!
complex sensor architectures -> complex drivers
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (26/ 65)
Smart sensors
Let the sensor do the computations!
complex sensor architectures -> complex drivers
complex sensor architectures -> expensive sensors
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (27/ 65)
Smart sensors
Let the sensor do the computations!
complex sensor architectures -> complex drivers
complex sensor architectures -> expensive sensors
complex sensor architectures -> power hungry
sensors
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (28/ 65)
Smart sensors
Let the sensor do the computations!
complex sensor architectures -> complex drivers
complex sensor architectures -> expensive sensors
complex sensor architectures -> power hungry
sensors
more computing blocks on the sensor =
less space for picture quality
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (29/ 65)
Smart(er) ISPs
Image Signal Processor
system peripheral that operates on the digital
images
usually features configurable processing blocks
each block performs a specific operation, including:
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (30/ 65)
Smart(er) ISPs
Image Signal Processor
system peripheral that operates on the digital
images
usually features configurable processing blocks
each block perform a specific operation, including:
memory transfers
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (31/ 65)
Smart(er) ISPs
Image Signal Processor
system peripheral that operates on the digital
images
usually features configurable processing blocks
each block perform a specific operation, including:
memory transfers
image manipulation
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (32/ 65)
Smart(er) ISPs
Image Signal Processor
system peripheral that operates on the digital
images
usually features configurable processing blocks
each block perform a specific operation, including:
memory transfers
image manipulation
format conversions
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (33/ 65)
Smart(er) ISPs
Image Signal Processor
system peripheral that operates on the digital
images
usually features configurable processing blocks
each block perform a specific operations, including:
memory transfers
image manipulation
format conversions
the design is very platform specific
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (34/ 65)
Smart(er) ISPs
Image Signal Processor
fast interconnections with very fast CPUs
interfaces with (a lot of) system memory
(possibly) interfaced with other system peripherals
as GPUs, DRM, codecs etc.
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (35/ 65)
Smart(er) ISPs
Image Signal Processor
it comes with your SoC
silicon vendors are competing on this
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (36/ 65)
Smart(er) ISPs
Image Signal Processor
it comes with your SoC
silicon vendors are competing on this
So, yes, we should really use ISPs as much as we
could
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (37/ 65)
Smart(er) ISPs, and somewhat in the middle :/
Image Signal Processor, not on the SoC
some silicon vendors de-couple SoC and ISP..
off load image manipulation to tiny co-processors
and build stacks of crazy complex software
components to deal with that
Is this still a thing?
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (38/ 65)
Media Controller
The V4L2 APIs are designed for ’simple’ device
basically, DMA engines that transfers ’untouched’
images
i2creceiver
sensor HARDWARE
pixel data i2c messages
KERNEL
receiver driver sensor driver
V4L2
/dev/video0
system memory
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (39/ 65)
Media Controller
Support for more complex devices, as ISPs
the media controller exposes ISP processing blocks
to userspace
i2c
receiver
sensor
HARDWAREpixel data i2c messages
resizer
converter
formatter
/dev/v4l-subdev-1 /dev/video0
/dev/v4l-subdev-2
/dev/v4l-subdev-4
/dev/v4l-subdev-5
system memory
receiver driver
isp driver
pixel formatter
KERNEL
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (40/ 65)
Media Controller
Support for more complex devices, as ISPs
the media graph is controlled through /dev/mediaX
i2c
receiver
sensor
HARDWAREpixel data i2c messages
resizer
converter
formatter
/dev/v4l-subdev-1 /dev/video0
/dev/v4l-subdev-2
/dev/v4l-subdev-4
/dev/v4l-subdev-5
/dev/media0
system memory
receiver driver
isp driver
pixel formatter
KERNEL
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (41/ 65)
Media Controller
Nice, but.... subdevices have to be linked to form a
pipeline
MEDIA_IOC_SETUP_LINK ioctl
media−ctl −d /dev/media0 
−l ” ’ rcar_csi2 feaa0000 . csi2 ’ : 1 
−> ’VIN2 output ’ : 0 [ 1 ] ”
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (42/ 65)
Media Controller
Nice, but.... subdevices have to be configured properly
VIDIOC_SUBDEV_S_FMT ioctl
media−ctl −d /dev/media0 
−V ” ’ rcar_csi2 feaa0000 . csi2 ’ : 1
[fmt : RGB888_1X24/640x480 field : none] ”
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (43/ 65)
Media Controller
Nice, but....
the system boots in unusable state
applications are requested to know a lot of details
on the underlying hardware
triggering capture operations requires precise
setup of the whole pipeline
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (44/ 65)
Media Controller
Nice, but....
the system boots in unusable state
applications are requested to know a lot of details
on the underlying hardware
triggering capture operations requires setup of the
whole pipeline
This is (sort of) acceptable for embedded systems
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (45/ 65)
Media Controller
Nice, but....
the system boots in unusable state
applications are requested to know a lot of details
on the underlying hardware
triggering capture operations requires setup of the
whole pipeline
This is (sort of) acceptable for embedded systems
Is it for consumer laptops?
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (46/ 65)
Media Controller - now on laptops!
Until today, cameras in laptop have usually been USB
cameras
super-smart cameras: they talk USB!
fit well in the single device node abstraction
platform agnostic solution
controlled through the UVC control protocol
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (47/ 65)
Media Controller - now on laptops!
Intel IPU3
Intel is now shipping processors with powerful ISPs
(some) KabyLake and (some) SkyLake platforms
have IPU3 ISP
patches on linux-media and on their way to
mainline: yey!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (48/ 65)
Media Controller - now on laptops!
(simplified) IPU3 media graph
CSI-2 CSI-2
capture
media0 media1
input params
viewfinder output stat
imgu
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (49/ 65)
Media Controller - now on laptops!
(simplified) IPU3 media graph
CSI-2 CSI-2
capture
media0 media1
input params
viewfinder output stat
imgu
RAW
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (50/ 65)
Media Controller - now on laptops!
(simplified) IPU3 media graph
CSI-2 CSI-2
capture
media0 media1
input params
viewfinder output stat
imgu
RAW
RAW
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (51/ 65)
Media Controller - now on laptops!
(simplified) IPU3 media graph
CSI-2 CSI-2
capture
media0 media1
input params
viewfinder output stat
imgu
RAW
RAW
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (52/ 65)
Media Controller - now on laptops!
(simplified) IPU3 media graph
CSI-2 CSI-2
capture
media0 media1
input params
viewfinder output stat
imgu
RAW
RAW
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (53/ 65)
Media Controller - now on laptops!
(simplified) IPU3 media graph
CSI-2 CSI-2
capture
media0 media1
input params
viewfinder output stat
imgu
RAW
RAW
YUV
YUV
meta
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (54/ 65)
Media Controller - now on laptops!
(simplified) IPU3 media graph
CSI-2 CSI-2
capture
media0 media1
input params
viewfinder output stat
imgu
RAW
3A - tuning meta
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (55/ 65)
Media Controller - now on laptops!
”Re: Webcams not recognized on a Dell Latitude 5285
laptop”
https://www.spinics.net/lists/linux-media/msg131388.html
This laptop embeds one of these new ”complex” cameras
from Intel. They requires IPU3 driver. Though, unlike
traditional webcam, you need special userspace to use it
(there is no embedded firmware to manage focus,
whitebalance, etc, userspace code need to read the stats
and manage that). As of now, there is no good plan on how
to support this in userspace.
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (56/ 65)
Libcamera!
V4L2 community joins forces with the industry to
provide a full camera stack for Linux-based systems
libcamera.org
user-space camera stack designed to work with
complex cameras
aims to be compatible with V4L2 applications,
Android and ChromeOs
free software - open development - safe space for
vendor IP
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (57/ 65)
Media Controller - now on laptops!
We already have devices on the market using IPU3 for
cameras
Linux distributions won’t support cameras on those
platforms :(
vendors of Linux based systems (say, Android and
ChromeOS) will keep using their in-house solutions
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (58/ 65)
Media Controller - now on laptops!
We already have devices on the market using IPU3 for
cameras
Linux distributions won’t support cameras on that
platforms :(
vendors of Linux based systems (say, Android and
ChromeOS) will keep using their in-house solutions
Don’t despair though! We might have a solution!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (59/ 65)
Libcamera!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (60/ 65)
Libcamera!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (61/ 65)
Libcamera!
Please join!
read the doc: http://libcamera.org/docs.htm
read patches: git://linuxtv.org/libcamera.git
have a chat: #libcamera on freenode
we welcome inputs from anyone working with
cameras! please help!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (62/ 65)
Complex Cameras are debated
ELC-E:
Why Embedded Cameras are Difficult, and How to
Make Them Easy - Laurent Pinchart, Ideas on Board
ELC-E:
Complex Cameras on Linux - Mauro Carvalho Chehab,
Samsung
Meeting notes on the Tokyo complex cameras
workshop:
https://linuxtv.org/news.php?entry=2018-07-13.mchehab
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (63/ 65)
Complex Cameras
Thanks!
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (64/ 65)
Complex Cameras
Thanks!
Questions?
Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (65/ 65)

Weitere ähnliche Inhalte

Was ist angesagt?

BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
 
Andrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitAndrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitlinuxlab_conf
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io
 
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemslinuxlab_conf
 
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗Macpaul Lin
 
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on LinuxTommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linuxlinuxlab_conf
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 Linaro
 
Mender; the open-source software update solution
Mender; the open-source software update solutionMender; the open-source software update solution
Mender; the open-source software update solutionMender.io
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLinaro
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLinaro
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLinaro
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaAnne Nicolas
 
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing WorldCloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing WorldOmer Kilic
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFILinaro
 

Was ist angesagt? (20)

Embedded Operating System - Linux
Embedded Operating System - LinuxEmbedded Operating System - Linux
Embedded Operating System - Linux
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
Andrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitAndrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profit
 
Eclipse - Installation and quick start guide
Eclipse - Installation and quick start guideEclipse - Installation and quick start guide
Eclipse - Installation and quick start guide
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
 
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
 
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on LinuxTommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64
 
Introduction and course Details of Embedded Linux Platform Developer Training
Introduction and course Details of Embedded Linux Platform Developer TrainingIntroduction and course Details of Embedded Linux Platform Developer Training
Introduction and course Details of Embedded Linux Platform Developer Training
 
Mender; the open-source software update solution
Mender; the open-source software update solutionMender; the open-source software update solution
Mender; the open-source software update solution
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community Update
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMG
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing WorldCloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFI
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
 

Ähnlich wie Jacopo Mondi - Complex cameras are complex

Video and Image Processing for Finding Paint Defects using BeagleBone Black
Video and Image Processing for Finding Paint Defects using BeagleBone BlackVideo and Image Processing for Finding Paint Defects using BeagleBone Black
Video and Image Processing for Finding Paint Defects using BeagleBone BlackIRJET Journal
 
Law cost portable machine vision system
Law cost portable machine vision systemLaw cost portable machine vision system
Law cost portable machine vision systemSagarika Muthukumarana
 
Marchand leny mass digitization systems and open source software
Marchand leny mass digitization systems and open source softwareMarchand leny mass digitization systems and open source software
Marchand leny mass digitization systems and open source softwareFIAT/IFTA
 
Jpeg 2000 For Digital Archives
Jpeg 2000 For Digital ArchivesJpeg 2000 For Digital Archives
Jpeg 2000 For Digital ArchivesRichard Bernier
 
Next generation image compression standards: JPEG XR and AIC
Next generation image compression standards: JPEG XR and AICNext generation image compression standards: JPEG XR and AIC
Next generation image compression standards: JPEG XR and AICTouradj Ebrahimi
 
Advanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdf
Advanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdfAdvanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdf
Advanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdfIsmailkhan77481
 
Thesis Ben O'Brien D11128055
Thesis Ben O'Brien D11128055Thesis Ben O'Brien D11128055
Thesis Ben O'Brien D11128055Ben O Brien
 
The next generation JPEG standards
The next generation JPEG standardsThe next generation JPEG standards
The next generation JPEG standardsTouradj Ebrahimi
 
Digital photo preservation in brief 20150617
Digital photo preservation in brief 20150617 Digital photo preservation in brief 20150617
Digital photo preservation in brief 20150617 John D. Lund
 

Ähnlich wie Jacopo Mondi - Complex cameras are complex (20)

Vips 4mar09e
Vips 4mar09eVips 4mar09e
Vips 4mar09e
 
Video and Image Processing for Finding Paint Defects using BeagleBone Black
Video and Image Processing for Finding Paint Defects using BeagleBone BlackVideo and Image Processing for Finding Paint Defects using BeagleBone Black
Video and Image Processing for Finding Paint Defects using BeagleBone Black
 
Law cost portable machine vision system
Law cost portable machine vision systemLaw cost portable machine vision system
Law cost portable machine vision system
 
Marchand leny mass digitization systems and open source software
Marchand leny mass digitization systems and open source softwareMarchand leny mass digitization systems and open source software
Marchand leny mass digitization systems and open source software
 
Jpeg 2000 For Digital Archives
Jpeg 2000 For Digital ArchivesJpeg 2000 For Digital Archives
Jpeg 2000 For Digital Archives
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Vips 4mar09f
Vips 4mar09fVips 4mar09f
Vips 4mar09f
 
Next generation image compression standards: JPEG XR and AIC
Next generation image compression standards: JPEG XR and AICNext generation image compression standards: JPEG XR and AIC
Next generation image compression standards: JPEG XR and AIC
 
Advanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdf
Advanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdfAdvanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdf
Advanced View Pic Microcontroller Projects List _ PIC Microcontroller.pdf
 
Computer graphics by bahadar sher
Computer graphics by bahadar sherComputer graphics by bahadar sher
Computer graphics by bahadar sher
 
Thesis Ben O'Brien D11128055
Thesis Ben O'Brien D11128055Thesis Ben O'Brien D11128055
Thesis Ben O'Brien D11128055
 
The next generation JPEG standards
The next generation JPEG standardsThe next generation JPEG standards
The next generation JPEG standards
 
Digital photo preservation in brief 20150617
Digital photo preservation in brief 20150617 Digital photo preservation in brief 20150617
Digital photo preservation in brief 20150617
 

Mehr von linuxlab_conf

Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Reportlinuxlab_conf
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...linuxlab_conf
 
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketBruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketlinuxlab_conf
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
Alessio Lama - Development and testing of a safety network protocol
Alessio Lama - Development and testing of a safety network protocolAlessio Lama - Development and testing of a safety network protocol
Alessio Lama - Development and testing of a safety network protocollinuxlab_conf
 
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugsDario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugslinuxlab_conf
 
Mirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in GoMirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in Golinuxlab_conf
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdatelinuxlab_conf
 
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...linuxlab_conf
 
Davide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionDavide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionlinuxlab_conf
 
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmLuca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmlinuxlab_conf
 

Mehr von linuxlab_conf (11)

Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Report
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
 
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketBruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Alessio Lama - Development and testing of a safety network protocol
Alessio Lama - Development and testing of a safety network protocolAlessio Lama - Development and testing of a safety network protocol
Alessio Lama - Development and testing of a safety network protocol
 
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugsDario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
 
Mirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in GoMirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in Go
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
 
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...
 
Davide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionDavide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruption
 
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmLuca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
 

Kürzlich hochgeladen

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 

Kürzlich hochgeladen (20)

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 

Jacopo Mondi - Complex cameras are complex

  • 1. Complex Cameras are complex Jacopo Mondi Linux Lab 2018 Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (1/ 65)
  • 2. Hello, I’m Jacopo Embedded Linux software engineer I mostly work on integrating cameras and multimedia devices I (mostly) work with Renesas Electronics mainline kernel team jacopo@jmondi.org irc: jmondi freenode.net Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (1/ 65)
  • 3. Motivations Rapidly increasing complexity of image capture process is moving from the embedded and mobile space to the more canonical personal computing space (say, laptops). Are Linux systems ready for this? Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (2/ 65)
  • 4. Motivations Rapidly increasing complexity of image capture process is moving from the embedded and mobile space to the more canonical personal computing space (say... laptops). Are Linux systems ready for this? No they’re not (I wouldn’t be giving this presentation otherwise :p ) Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (3/ 65)
  • 5. Complex Cameras are complex Image acquisition is complex Image capture Smart sensors Smart(er) ISPs The media controller The media graph Handling pipelines Intel’s IPU3 Libcamera Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (4/ 65)
  • 6. Image Capture The image acquisition process is a pipeline of digital signals processing blocks, that spans from the application processor to external components connected through a data and a control bus Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (5/ 65)
  • 7. Image Capture: Sensors Sensors grid of photo-detectors (pixels) measure intensity of photo-electric properties filters: each pixel transports a single color information Red Green Blue Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (6/ 65)
  • 8. Image Capture: Raw Bayer Bayer Patterns disposition of color filters BGGR - RGBG - GRBG - RGGB 50% Green - 25% Red - 25% Blue Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (7/ 65)
  • 9. Image Capture: Raw Bayer Bayer Patterns disposition of color filters BGGR - RGBG - GRBG - RGGB 50% Green - 25% Red - 25% Blues The full pixel color has to be reconstructed demosaicing or de-bayering Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (8/ 65)
  • 10. Image Capture: Raw Bayer It’s a tough job! interpolation of colors from neighbour pixels computational intensive problems Figure: From: http://www.cambridgeincolour.com Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (9/ 65)
  • 11. Image Capture: Color Encoding The RAW digital values have to be interpreted and encoded RAW usually converted to commonly used colorspaces as sRGB, Adobe RGB, CYMK from a known colorspace, pixels get color encoded to ease transportation media bus formats: RGB565, RGB666, YUYV, VYUY easier to transport, store and manipulate More computations! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (10/ 65)
  • 12. Image Capture: Feedback loop What about 3A, black level calibration, enhancements etc ? feedback loop on captured images even more computationally expensive often based on user application inputs Application SoC Sensor Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (11/ 65)
  • 13. Image Capture: Feedback loop What about 3A, black level calibration, enhancements etc ? feedback loop on captured images even more computationally expensive often based on user application inputs Application SoC Sensor Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (12/ 65)
  • 14. Image Capture: Feedback loop What about 3A, black level calibration, enhancements etc ? feedback loop on captured images even more computationally expensive often based on user application inputs Application SoC Sensor Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (13/ 65)
  • 15. Image Capture: Feedback loop What about 3A, black level calibration, enhancements etc ? feedback loop on captured images even more computationally expensive often based on user application inputs Application SoC Sensor Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (14/ 65)
  • 16. Image Capture: Feedback loop What about 3A, black level calibration, enhancements etc ? feedback loop on captured images even more computationally expensive often based on user application inputs Application SoC Sensor Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (15/ 65)
  • 17. Image Capture: Summary Digital imaging is a computational expensive process! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (16/ 65)
  • 18. Image Capture: Summary Digital imaging is a computational expensive process! complexity in the image acquisition de-bayering, enhancing, pixel encoding Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (17/ 65)
  • 19. Image Capture: Summary Digital imaging is a computational expensive process! complexity in the image acquisition de-bayering, enhancing, pixel encoding complexity in image quality tuning 3A parameters computation, tuning Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (18/ 65)
  • 20. Image Capture: Summary Digital imaging is a computational expensive process! complexity in the image acquisition de-bayering, enhancing, pixel encoding complexity in image quality tuning 3A parameters computation, tuning strict correlation with application requests feedback loop Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (19/ 65)
  • 21. Image Capture: Summary Digital imaging is a computational expensive process! complexity in the image acquisition de-bayering, enanching, pixel encoding complexity in image quality tuning 3A parameters computation, tuning strict correlation with application requests feedback loop don’t forget we’re operating on -big- buffers 1080p in YUYV format is 4MB of data Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (20/ 65)
  • 22. Image Capture: Architecture SoC (fat) CPUs ISP Sensor RAM DMA I2c control image data CSI-2 Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (21/ 65)
  • 23. Smart sensors In the pre-mobile computing era, embedded systems where: much less powerful Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (22/ 65)
  • 24. Smart sensors In the pre-mobile computing era, embedded systems where: much less powerful much more proprietary Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (23/ 65)
  • 25. Smart sensors In the pre-mobile computing era, embedded systems where: much less powerful much more proprietary much less standardized Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (24/ 65)
  • 26. Smart sensors SoC (fat) CPUs ISP Sensor RAM DMA I2c control image data CSI-2 Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (25/ 65)
  • 27. Smart sensors Let the sensor do the computations! complex sensor architectures -> complex drivers Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (26/ 65)
  • 28. Smart sensors Let the sensor do the computations! complex sensor architectures -> complex drivers complex sensor architectures -> expensive sensors Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (27/ 65)
  • 29. Smart sensors Let the sensor do the computations! complex sensor architectures -> complex drivers complex sensor architectures -> expensive sensors complex sensor architectures -> power hungry sensors Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (28/ 65)
  • 30. Smart sensors Let the sensor do the computations! complex sensor architectures -> complex drivers complex sensor architectures -> expensive sensors complex sensor architectures -> power hungry sensors more computing blocks on the sensor = less space for picture quality Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (29/ 65)
  • 31. Smart(er) ISPs Image Signal Processor system peripheral that operates on the digital images usually features configurable processing blocks each block performs a specific operation, including: Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (30/ 65)
  • 32. Smart(er) ISPs Image Signal Processor system peripheral that operates on the digital images usually features configurable processing blocks each block perform a specific operation, including: memory transfers Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (31/ 65)
  • 33. Smart(er) ISPs Image Signal Processor system peripheral that operates on the digital images usually features configurable processing blocks each block perform a specific operation, including: memory transfers image manipulation Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (32/ 65)
  • 34. Smart(er) ISPs Image Signal Processor system peripheral that operates on the digital images usually features configurable processing blocks each block perform a specific operation, including: memory transfers image manipulation format conversions Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (33/ 65)
  • 35. Smart(er) ISPs Image Signal Processor system peripheral that operates on the digital images usually features configurable processing blocks each block perform a specific operations, including: memory transfers image manipulation format conversions the design is very platform specific Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (34/ 65)
  • 36. Smart(er) ISPs Image Signal Processor fast interconnections with very fast CPUs interfaces with (a lot of) system memory (possibly) interfaced with other system peripherals as GPUs, DRM, codecs etc. Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (35/ 65)
  • 37. Smart(er) ISPs Image Signal Processor it comes with your SoC silicon vendors are competing on this Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (36/ 65)
  • 38. Smart(er) ISPs Image Signal Processor it comes with your SoC silicon vendors are competing on this So, yes, we should really use ISPs as much as we could Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (37/ 65)
  • 39. Smart(er) ISPs, and somewhat in the middle :/ Image Signal Processor, not on the SoC some silicon vendors de-couple SoC and ISP.. off load image manipulation to tiny co-processors and build stacks of crazy complex software components to deal with that Is this still a thing? Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (38/ 65)
  • 40. Media Controller The V4L2 APIs are designed for ’simple’ device basically, DMA engines that transfers ’untouched’ images i2creceiver sensor HARDWARE pixel data i2c messages KERNEL receiver driver sensor driver V4L2 /dev/video0 system memory Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (39/ 65)
  • 41. Media Controller Support for more complex devices, as ISPs the media controller exposes ISP processing blocks to userspace i2c receiver sensor HARDWAREpixel data i2c messages resizer converter formatter /dev/v4l-subdev-1 /dev/video0 /dev/v4l-subdev-2 /dev/v4l-subdev-4 /dev/v4l-subdev-5 system memory receiver driver isp driver pixel formatter KERNEL Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (40/ 65)
  • 42. Media Controller Support for more complex devices, as ISPs the media graph is controlled through /dev/mediaX i2c receiver sensor HARDWAREpixel data i2c messages resizer converter formatter /dev/v4l-subdev-1 /dev/video0 /dev/v4l-subdev-2 /dev/v4l-subdev-4 /dev/v4l-subdev-5 /dev/media0 system memory receiver driver isp driver pixel formatter KERNEL Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (41/ 65)
  • 43. Media Controller Nice, but.... subdevices have to be linked to form a pipeline MEDIA_IOC_SETUP_LINK ioctl media−ctl −d /dev/media0 −l ” ’ rcar_csi2 feaa0000 . csi2 ’ : 1 −> ’VIN2 output ’ : 0 [ 1 ] ” Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (42/ 65)
  • 44. Media Controller Nice, but.... subdevices have to be configured properly VIDIOC_SUBDEV_S_FMT ioctl media−ctl −d /dev/media0 −V ” ’ rcar_csi2 feaa0000 . csi2 ’ : 1 [fmt : RGB888_1X24/640x480 field : none] ” Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (43/ 65)
  • 45. Media Controller Nice, but.... the system boots in unusable state applications are requested to know a lot of details on the underlying hardware triggering capture operations requires precise setup of the whole pipeline Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (44/ 65)
  • 46. Media Controller Nice, but.... the system boots in unusable state applications are requested to know a lot of details on the underlying hardware triggering capture operations requires setup of the whole pipeline This is (sort of) acceptable for embedded systems Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (45/ 65)
  • 47. Media Controller Nice, but.... the system boots in unusable state applications are requested to know a lot of details on the underlying hardware triggering capture operations requires setup of the whole pipeline This is (sort of) acceptable for embedded systems Is it for consumer laptops? Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (46/ 65)
  • 48. Media Controller - now on laptops! Until today, cameras in laptop have usually been USB cameras super-smart cameras: they talk USB! fit well in the single device node abstraction platform agnostic solution controlled through the UVC control protocol Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (47/ 65)
  • 49. Media Controller - now on laptops! Intel IPU3 Intel is now shipping processors with powerful ISPs (some) KabyLake and (some) SkyLake platforms have IPU3 ISP patches on linux-media and on their way to mainline: yey! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (48/ 65)
  • 50. Media Controller - now on laptops! (simplified) IPU3 media graph CSI-2 CSI-2 capture media0 media1 input params viewfinder output stat imgu Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (49/ 65)
  • 51. Media Controller - now on laptops! (simplified) IPU3 media graph CSI-2 CSI-2 capture media0 media1 input params viewfinder output stat imgu RAW Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (50/ 65)
  • 52. Media Controller - now on laptops! (simplified) IPU3 media graph CSI-2 CSI-2 capture media0 media1 input params viewfinder output stat imgu RAW RAW Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (51/ 65)
  • 53. Media Controller - now on laptops! (simplified) IPU3 media graph CSI-2 CSI-2 capture media0 media1 input params viewfinder output stat imgu RAW RAW Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (52/ 65)
  • 54. Media Controller - now on laptops! (simplified) IPU3 media graph CSI-2 CSI-2 capture media0 media1 input params viewfinder output stat imgu RAW RAW Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (53/ 65)
  • 55. Media Controller - now on laptops! (simplified) IPU3 media graph CSI-2 CSI-2 capture media0 media1 input params viewfinder output stat imgu RAW RAW YUV YUV meta Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (54/ 65)
  • 56. Media Controller - now on laptops! (simplified) IPU3 media graph CSI-2 CSI-2 capture media0 media1 input params viewfinder output stat imgu RAW 3A - tuning meta Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (55/ 65)
  • 57. Media Controller - now on laptops! ”Re: Webcams not recognized on a Dell Latitude 5285 laptop” https://www.spinics.net/lists/linux-media/msg131388.html This laptop embeds one of these new ”complex” cameras from Intel. They requires IPU3 driver. Though, unlike traditional webcam, you need special userspace to use it (there is no embedded firmware to manage focus, whitebalance, etc, userspace code need to read the stats and manage that). As of now, there is no good plan on how to support this in userspace. Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (56/ 65)
  • 58. Libcamera! V4L2 community joins forces with the industry to provide a full camera stack for Linux-based systems libcamera.org user-space camera stack designed to work with complex cameras aims to be compatible with V4L2 applications, Android and ChromeOs free software - open development - safe space for vendor IP Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (57/ 65)
  • 59. Media Controller - now on laptops! We already have devices on the market using IPU3 for cameras Linux distributions won’t support cameras on those platforms :( vendors of Linux based systems (say, Android and ChromeOS) will keep using their in-house solutions Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (58/ 65)
  • 60. Media Controller - now on laptops! We already have devices on the market using IPU3 for cameras Linux distributions won’t support cameras on that platforms :( vendors of Linux based systems (say, Android and ChromeOS) will keep using their in-house solutions Don’t despair though! We might have a solution! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (59/ 65)
  • 61. Libcamera! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (60/ 65)
  • 62. Libcamera! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (61/ 65)
  • 63. Libcamera! Please join! read the doc: http://libcamera.org/docs.htm read patches: git://linuxtv.org/libcamera.git have a chat: #libcamera on freenode we welcome inputs from anyone working with cameras! please help! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (62/ 65)
  • 64. Complex Cameras are debated ELC-E: Why Embedded Cameras are Difficult, and How to Make Them Easy - Laurent Pinchart, Ideas on Board ELC-E: Complex Cameras on Linux - Mauro Carvalho Chehab, Samsung Meeting notes on the Tokyo complex cameras workshop: https://linuxtv.org/news.php?entry=2018-07-13.mchehab Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (63/ 65)
  • 65. Complex Cameras Thanks! Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (64/ 65)
  • 66. Complex Cameras Thanks! Questions? Jacopo Mondi - Linux Lab 2018 Complex Cameras are complex (65/ 65)