complex cameras were complex
play

Complex Cameras (were) complex Jacopo Mondi FOSDEM 2019 Jacopo - PowerPoint PPT Presentation

Complex Cameras (were) complex Jacopo Mondi FOSDEM 2019 Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (1/ 23) Hello, Im Jacopo Embedded Linux software engineer I mostly work on integrating cameras and multimedia devices


  1. Complex Cameras (were) complex Jacopo Mondi FOSDEM 2019 Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (1/ 23)

  2. Hello, I’m Jacopo Embedded Linux software engineer I mostly work on integrating cameras and multimedia devices jacopo@jmondi.org irc: jmondi freenode.net Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (1/ 23)

  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 and tablets). Are Linux systems ready for this? Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (2/ 23)

  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 - FOSDEM 2019 Updates from libcamera project (3/ 23)

  5. Image Capture Digital imaging is a computational expensive process! complexity in the acquisition de-bayering, enanching, pixel encoding complexity in quality tuning 3A, calibrations, general tuning -big- buffers 1080p in YUYV format is 4MB of data Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (4/ 23)

  6. Smarter ISPs Today: Smarter ISPs SoC (fat) CPUs (fat) CPUs RAM DMA I2c control ISP DRM CSI-2 CSI-2 Sensor image data Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (5/ 23)

  7. Smart(er) ISPs Image Signal Processor system peripheral that operates on digital images composed by configurable processing blocks DMA and memory interfacing resizing, scaling, cropping, composing format conversion advanced image processing (3A and reprocessing) very efficient: high speed interconnections, high operating frequency the design is very platform specific Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (6/ 23)

  8. Smart sensors 10 years ago: smart sensors SoC (not so fat) CPU RAM DMA I2c control scaler parallel Sensor image data Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (7/ 23)

  9. Media Controller The V4L2 APIs are designed for ’simple’ device The single device node abstraction /dev/video0 V4L2 receiver driver sensor driver KERNEL system memory receiver i2c sensor HARDWARE pixel data i2c messages Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (8/ 23)

  10. Media Controller Support for more complex devices, as ISPs the media controller exposes ISP processing blocks to userspace /dev/v4l-subdev-5 /dev/v4l-subdev-2 /dev/video0 /dev/v4l-subdev-4 /dev/v4l-subdev-1 pixel formatter isp driver receiver driver KERNEL formatter converter system memory resizer receiver sensor i2c pixel data i2c messages HARDWARE Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (9/ 23)

  11. 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 - FOSDEM 2019 Updates from libcamera project (10/ 23)

  12. Media Controller - now on laptops! 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 devices? Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (11/ 23)

  13. Media Controller - now on laptops! Until today, cameras in laptop have usually been USB cameras smart sensor: they talk USB! fit well in the single device node abstraction well supported by libv4l2 Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (12/ 23)

  14. Media Controller - now on laptops! Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (13/ 23)

  15. 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. N. Dufresne, April 1st 2018 Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (14/ 23)

  16. 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 now in staging to mainline: yey! Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (15/ 23)

  17. Media Controller - now on laptops! (simplified) IPU3 media graph stat view fi nder output capture input params media1 media0 imgu CSI-2 CSI-2 Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (16/ 23)

  18. Media Controller - now on laptops! (simplified) IPU3 media graph stat view fi nder output capture input params media1 media0 imgu CSI-2 CSI-2 RAW Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (17/ 23)

  19. Media Controller - now on laptops! (simplified) IPU3 media graph RAW stat view fi nder output capture input params media1 media0 imgu CSI-2 CSI-2 RAW Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (18/ 23)

  20. Media Controller - now on laptops! (simplified) IPU3 media graph RAW stat view fi nder output capture input params media1 media0 imgu CSI-2 CSI-2 RAW Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (19/ 23)

  21. Media Controller - now on laptops! (simplified) IPU3 media graph stat view fi nder output capture input params media1 media0 RAW imgu CSI-2 CSI-2 RAW Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (20/ 23)

  22. Media Controller - now on laptops! (simplified) IPU3 media graph meta YUV YUV stat view fi nder output capture input params media1 media0 RAW imgu CSI-2 CSI-2 RAW Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (21/ 23)

  23. Media Controller - now on laptops! (simplified) IPU3 media graph meta 3A - tuning stat view fi nder output capture input params media1 media0 imgu CSI-2 CSI-2 RAW Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (22/ 23)

  24. Complex Cameras are debated Meeting notes on the Tokyo complex cameras workshop https://linuxtv.org/news.php?entry=2018-07-13.mchehab Complex Cameras on Linux Mauro Carvalho Chehab, Samsung Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (23/ 23)

  25. Libcamera! Libcamera is a complete user space camera stack Abstract away from application all interfacing with V4L2 and Media-Controller Aims to be compatible with Linux V4L2-based applications, Android and ChromeOs Why Embedded Cameras are Difficult, and How to Make Them Easy Laurent Pinchart, Ideas on Board Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (24/ 23)

  26. Libcamera! Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (25/ 23)

  27. Libcamera! Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (26/ 23)

  28. Libcamera: how do we do that git://linuxtv.org/libcamera.git mail based development: mailing list + patchwork we use Meson and Ninja, and they’re great we enforce a coding style: OCD vs C++ we love picky reviews! we (try to) be serious at documentation and testing Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (27/ 23)

  29. Libcamera: where are we we support UVC and Intel IPU3 we can list (hot-pluggable) cameras we can capture frames ! Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (28/ 23)

  30. Libcamera: where do we want to go support more ISPs (-all- ISPs :) support Android HALv3 with per-frame control have third-party contributions from vendors Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (29/ 23)

  31. 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! Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (30/ 23)

  32. Complex Cameras Thanks! Questions? Jacopo Mondi - FOSDEM 2019 Updates from libcamera project (31/ 23)

Recommend


More recommend