+ All Categories
Home > Documents > Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author:...

Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author:...

Date post: 10-Oct-2020
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
64
Image Capture On Embedded Linux Systems Jacopo Mondi FOSDEM 2018 Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (1/ 63)
Transcript
Page 1: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image Capture On Embedded LinuxSystems

Jacopo Mondi

FOSDEM 2018

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (1/ 63)

Page 2: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Who am I

Hello, I’m Jacopo

[email protected]: jmondi freenode.net

Linux kernel and embedded software engineerRenesas Linux kernel team

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (1/ 63)

Page 3: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Motivations

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (2/ 63)

Page 4: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image Capture On Embedded Linux Systems

Light, color, pixels

Image sensorAnatomyIntegration

Image Data transmission

Video4Linux2Basic architectureMemory managementImage streamingMedia controller APIs

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (3/ 63)

Page 5: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

Color is not an absolute value

Neural response tophysical properties ofelectromagneticradiationsVisible light has a welldefined interval (390nm to 700 nm)Not all species and notall humans perceivecolors in the same way

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (4/ 63)

Page 6: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

The human eye is more sensitive to three frequencies

short: blue colormedium: green colorlong: red color

Mathematical correlation between photo-opticproperties and perceived color

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (5/ 63)

Page 7: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

Spectral power distribution

We can describe a radiant emission of visible lightas the intensity of a photo-optic property in functionof the frequency of its component

Figure: Spectral power distribution of standard illuminants. From: commons.wikimedia.org

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (6/ 63)

Page 8: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixelsThe (very simple) LMS color space

Samples of neural stimulus received by the humaneyeSamples on well-known wavelengthThe LongMedium Short color space

Figure: Long-Medium-Short wave length sampling

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (7/ 63)

Page 9: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

LMS Colorspace

LMS is theoretical tool too simple scheme torepresent real use cases

CIE 1931 defined colorspaces:RGB color space:Red Green Blue primary colorsXYZ color space:luma component Y and associated chrominances xand z

Notable color spaces: sRGB, Adobe RBG, CYMK...

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (8/ 63)

Page 10: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

Colorspaces and color encodings

Figure: From: commons.wikimedia.org

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (9/ 63)

Page 11: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

Color encoding schemes

We have a mathematical model to represent valuesof a ”color” with a tupleAs we live in a digital world, we can now use thosevalues to transmit the most basic information animage is composed of: a pixel

Question: if we have to describe a single pixel with atleast 3 digital values, how big would an imagecomposed b bee by 1280x800 pixels?

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (10/ 63)

Page 12: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

Color encoding schemes

We have a mathematical model to represent with atuple of values a ”color”As we live in a digital world, we can now use thosevalues to transmit the most basic information animage is composed of: a pixel

Answer: 24,5Mbit with a very limited color resolution(0-255)→ That’s bad

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (11/ 63)

Page 13: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixels

It is highly unpractical to sense all 3 color componentsfor each pixel of a sensor’s pixel matrix

Image resolution vs sensor size ratioRequired bandwidth for digital informationtransmissionProduction costs and dimension not justified byresulting performances for most use cases

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (12/ 63)

Page 14: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixelsBayer filter

A Bayer filter is an arrangement of light filters ontop of a CMOS sensor photo-receptorsEach ’pixel’ transports a single color information

Figure: From: http://www.cambridgeincolour.com

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (13/ 63)

Page 15: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Light, colors, pixelsBayer filter

The full pixel color is re-constructed by demosaicand interpolationwith neighbor pixelsReduces the required transmission bandwidth andsensor size

Figure: From: http://www.cambridgeincolour.com

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (14/ 63)

Page 16: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Integration diagram

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (15/ 63)

Page 17: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (16/ 63)

Page 18: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors

Grid of CMOS photo-detectors: Pixel Grid ArrayBayer pattern: RGB color filter arrayColor filter disposition: RGGB - BGGR - GRBG -RGGB etc.

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (17/ 63)

Page 19: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors

Image format control:Pixel encoding: RGB555, YUV422, YUV420 etcImage manupulation: Cropping, binning, zoomAdvances features (ie. 3A), mirroring, flipping etc

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (18/ 63)

Page 20: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data transmissoin interfaces

Mainly two data bus categories:Parallel (BT.601 - BT.656)MIPI Serial camera interface (MIPI CSI-2)

Parallel bus:Lower data rate, lower resolutions, more wires..Easier integration, cheaper, ”easy” debugUsually found in industrial/automation contexts,hobbyist projects, older system in general

MIPI Serial bus:Higher data rate, highly integrated, less wiresHard to integrate, hard to debug, more expensiveMobile devices, cameras, and new designs in general

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (19/ 63)

Page 21: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data interface: BT.601

VSYNC - HSYNC/HREFvertical/horizontal synchronization signalsPCLK: pixel clockout reference clock8+ parallel data lanes

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (20/ 63)

Page 22: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data interface: MIPI CSI-2

MIPI CSI-2 specifications not only define the physicallayer, image formats and data transmission protocol.

Physical layers: D-PHY, C-PHYData transmission protocol:

Media bus image formats:RGB or YUYV permutationsShort packets for synchronization signals (line/framestart/end)Long packets for actual data with header for datadescription

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (21/ 63)

Page 23: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data interface: MIPI CSI-2

Physical layers

MIPI D-PHYDifferential lines signalsUp to 1Gbps per lane1 clock signal and 1 to 4 data lanes

MIPI C-PHYDifferential data lanes with embedded clock (3 pin)Up to three ”trios”Up to 5.7Gbps per ”trio”

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (22/ 63)

Page 24: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data interface: MIPI CSI-2

Packet-oriented protocolShort packets for synchronization:Frame start/end - Line start/endLong packets for data

A data stream is a sequence of pixel data enclosedin a <FS> <FE> sequenceEach data packet is identified by a DT and a VCspecified in its header

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (23/ 63)

Page 25: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data interface: MIPI CSI-2

Different data stream can be multiplexed on the samephysical bus

Data type (DT)Data type identifier as defined by CSI-2 specsDifferent image formats interleaved in the samestream

Virtual channel (VC) interleavingChannel identifier: [0-3 or 0-6]Multiple streams interleavedEach stream can be data type interleaved

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (24/ 63)

Page 26: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data interface: MIPI CSI-2

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (25/ 63)

Page 27: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Image sensors data interface: MIPI CSI-2

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (26/ 63)

Page 28: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: a basic use case

Basic use case: single sensor connected to a videoreceiver

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (27/ 63)

Page 29: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: basic workflow

Preliminary operations

Open the video device nodeControl the video device through V4L2 IOCTL:

Query capabilities to make sure the device canstreamSet image format on platform and sensor driversSet image size on platform and sensor driversSet stream parameters (frame rate) on platform andsensor drivers

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (28/ 63)

Page 30: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation

Video memory requirements

DMA capable memory (often implies contiguity ifDMA engine do not support s/g operations)Accessible by CPU and devices (in case of IOMMU)Possibly shared between different subsystems toreduce userspace copies

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (29/ 63)

Page 31: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation

Three memory allocation model

Kernel uses pointers to userspace buffersmmap of kernel buffers in userspace landBuffer sharing through DMABUF

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (30/ 63)

Page 32: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - mmap

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (31/ 63)

Page 33: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - mmap

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (32/ 63)

Page 34: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - mmap

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (33/ 63)

Page 35: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - mmap

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (34/ 63)

Page 36: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - dmabuf

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (35/ 63)

Page 37: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - dmabuf

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (36/ 63)

Page 38: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - dmabuf

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (37/ 63)

Page 39: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - dmabuf

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (38/ 63)

Page 40: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: memory allocation - dmabuf

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (39/ 63)

Page 41: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (40/ 63)

Page 42: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (41/ 63)

Page 43: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (42/ 63)

Page 44: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (43/ 63)

Page 45: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (44/ 63)

Page 46: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (45/ 63)

Page 47: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (46/ 63)

Page 48: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (47/ 63)

Page 49: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: zero copy image streaming

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (48/ 63)

Page 50: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: platform drivers

drivers/media/platform/

Transfer image data from internal buffers to systemmemoryPerform transformations on the received imagesbefore presenting them to userspaceImplement user space API through video deviceabstraction (or through media controller...)Handle IRQs and program receiver interface DMA toactually capture images

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (49/ 63)

Page 51: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: image sensor drivers

drivers/media/i2c/

Control the image sensor through I2c transactionRespond to platform driver calls to set/getstreaming parametersStart/stop sensor when platform driver requires data

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (50/ 63)

Page 52: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: Device tree bindings

Documentation/devicetree/bindings/

Bindings defines a driver/subsystem ABIHow drivers expects to be instantiatedWhich and how supply parameters to a driver

Documentation/devicetree/bindings/media/

Video devices: how do they connect to each other

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (51/ 63)

Page 53: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: Device tree bindings

Platform drivers - Image receivers

.. /bindings/media/video-interfaces.txt

device {#address-cells = <1>;#size-cells = <0>;

port@0 {reg = <0>;endpoint {

"endpoint properties";remote-endpoint = <&phandle-0>;

};};

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (52/ 63)

Page 54: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: Device tree bindings

Endpoint propertiesParallel input busvsync-active = <1> / <0>;hsync-active = <1> / <0>;data-active = <1> / <0>;...

CSI-2data-lanes = <1 2 ...>clock lanes = <0>link-frequencies = <210000000>

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (53/ 63)

Page 55: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: platform drivers

static int platform_probe(struct i2c_client *client) {priv = devm_kzalloc(sizeof(*priv));

devm_ioremap(resources);devm_request_irq(irq)

pm_runtime_enable();

platform_parse_dt(dev->of_node);v4l2_async_notifier_register(priv->notifier);

return 0;}

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (54/ 63)

Page 56: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: the media controller

The V4L2 video device APIs are not enough to representthe complexity in modern SoCs

Dedicated IP blocks on the SoC for imagetransformationmedia-controller: graph of media entitieswith sinkand source padsEach entity can be linked to another entitymedia-controller allows the creation of imagemanipulation pipelines

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (55/ 63)

Page 57: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: the media controller

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (56/ 63)

Page 58: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: the media controller

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (57/ 63)

Page 59: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: the media controller

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (58/ 63)

Page 60: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: the media controller

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (59/ 63)

Page 61: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: the media controller

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (60/ 63)

Page 62: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Video4Linux2: the media controller

The media controller drawbacks

Pipeline creation and management all in userspaceSystem boots in a non-usable wayVideo devices vs video sub-devices APIsComplexity some times not justified for simple usecases

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (61/ 63)

Page 63: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Thank you!

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (62/ 63)

Page 64: Image Capture On Embedded Linux Systems - FOSDEM · Image Capture On Embedded Linux Systems Author: Jacopo Mondi Created Date: 2/4/2018 12:38:26 PM ...

Questions?

Jacopo Mondi - FOSDEM 2018 Image Capture On Embedded Linux Systems (63/ 63)


Recommended