Lines Matching +full:sub +full:- +full:blocks

1 .. SPDX-License-Identifier: GPL-2.0
24 ImgU). The CIO2 driver is available as drivers/media/pci/intel/ipu3/ipu3-cio2*
36 Both of the drivers implement V4L2, Media Controller and V4L2 sub-device
38 MIPI CSI-2 interfaces through V4L2 sub-device sensor drivers.
44 interface to the user space. There is a video node for each CSI-2 receiver,
47 The CIO2 contains four independent capture channel, each with its own MIPI CSI-2
48 receiver and DMA engine. Each channel is modelled as a V4L2 sub-device exposed
49 to userspace as a V4L2 sub-device node and has two pads:
53 .. flat-table::
54 :header-rows: 1
56 * - Pad
57 - Direction
58 - Purpose
60 * - 0
61 - sink
62 - MIPI CSI-2 input, connected to the sensor subdev
64 * - 1
65 - source
66 - Raw video capture, connected to the V4L2 video interface
72 ------------------------------------
82 -- The IPU3 CSI2 receiver outputs the captured frames from the sensor in packed
85 -- Multiple video nodes have to be operated simultaneously.
93 .. code-block:: none
99 export SDEV=$(media-ctl -d $MDEV -e "ov5670 10-0036")
101 # Establish the link for the media devices using media-ctl [#f3]_
102 media-ctl -d $MDEV -l "ov5670:0 -> ipu3-csi2 0:0[1]"
105 media-ctl -d $MDEV -V "ov5670:0 [fmt:SGRBG10/2592x1944]"
106 media-ctl -d $MDEV -V "ipu3-csi2 0:0 [fmt:SGRBG10/2592x1944]"
107 media-ctl -d $MDEV -V "ipu3-csi2 0:1 [fmt:SGRBG10/2592x1944]"
114 .. code-block:: none
116 yavta -w 0x009e0903 444 $SDEV
117 yavta -w 0x009e0913 1024 $SDEV
118 yavta -w 0x009e0911 2046 $SDEV
124 .. code-block:: none
126 yavta --data-prefix -u -c10 -n5 -I -s2592x1944 --file=/tmp/frame-#.bin \
127 -f IPU3_SGRBG10 $(media-ctl -d $MDEV -e "ipu3-cio2 0")
132 The captured frames are available as /tmp/frame-#.bin files.
144 The ImgU contains two independent pipes, each modelled as a V4L2 sub-device
145 exposed to userspace as a V4L2 sub-device node.
151 .. flat-table::
152 :header-rows: 1
154 * - Pad
155 - Direction
156 - Purpose
158 * - 0
159 - sink
160 - Input raw video stream
162 * - 1
163 - sink
164 - Processing parameters
166 * - 2
167 - source
168 - Output processed video stream
170 * - 3
171 - source
172 - Output viewfinder video stream
174 * - 4
175 - source
176 - 3A statistics
182 ----------------
184 With ImgU, once the input video node ("ipu3-imgu 0/1":0, in
185 <entity>:<pad-number> format) is queued with buffer (in packed raw Bayer
197 ----------------------------------------
205 :ref:`v4l2-pix-fmt-ipu3-sbggr10`.
209 Only the multi-planar API is supported. More details can be found at
210 :ref:`planar-apis`.
213 ---------------------
219 :ref:`v4l2-meta-fmt-params`.
222 ------------------------
237 ------------------------------------------
240 in time-sharing with single input frame data. Each pipe can run at certain mode
241 - "VIDEO" or "STILL", "VIDEO" mode is commonly used for video frames capture,
251 drivers/staging/media/ipu3/include/uapi/intel-ipu3.h) to query and set the
254 enabled and buffers need be queued, the statistics and the view-finder queues
265 ----------------------------------------
273 Let us take "ipu3-imgu 0" subdev as an example.
275 .. code-block:: none
277 media-ctl -d $MDEV -r
278 media-ctl -d $MDEV -l "ipu3-imgu 0 input":0 -> "ipu3-imgu 0":0[1]
279 media-ctl -d $MDEV -l "ipu3-imgu 0":2 -> "ipu3-imgu 0 output":0[1]
280 media-ctl -d $MDEV -l "ipu3-imgu 0":3 -> "ipu3-imgu 0 viewfinder":0[1]
281 media-ctl -d $MDEV -l "ipu3-imgu 0":4 -> "ipu3-imgu 0 3a stat":0[1]
287 .. code-block:: none
289 yavta -w "0x009819A1 1" /dev/v4l-subdev7
291 Certain hardware blocks in ImgU pipeline can change the frame resolution by
292 cropping or scaling, these hardware blocks include Input Feeder(IF), Bayer Down
294 There is also a block which can change the frame resolution - YUV Scaler, it is
297 RAW Bayer frames go through these ImgU pipeline hardware blocks and the final
300 .. kernel-figure:: ipu3_rcb.svg
301 :alt: ipu3 resolution blocks image
303 IPU3 resolution change hardware blocks
309 pixel buffer which are ready to readout by following blocks.
331 the above hardware blocks, for a given input resolution.
333 Down Scaler and GDC blocks should be configured with the supported resolutions
336 You must configure the output resolution of the hardware blocks smartly to meet
338 intermediate resolutions can be generated by specific tool -
340 https://github.com/intel/intel-ipu3-pipecfg
345 https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/master
347 Under baseboard-poppy/media-libs/cros-camera-hal-configs-poppy/files/gcss
377 .. code-block:: none
379 v4l2n --pipe=4 --load=/tmp/frame-#.bin --open=/dev/video4
380 --fmt=type:VIDEO_OUTPUT_MPLANE,width=2592,height=1944,pixelformat=0X47337069 \
381 --reqbufs=type:VIDEO_OUTPUT_MPLANE,count:1 --pipe=1 \
382 --output=/tmp/frames.out --open=/dev/video5 \
383 --fmt=type:VIDEO_CAPTURE_MPLANE,width=2560,height=1920,pixelformat=NV12 \
384 --reqbufs=type:VIDEO_CAPTURE_MPLANE,count:1 --pipe=2 \
385 --output=/tmp/frames.vf --open=/dev/video6 \
386 --fmt=type:VIDEO_CAPTURE_MPLANE,width=2560,height=1920,pixelformat=NV12 \
387 --reqbufs=type:VIDEO_CAPTURE_MPLANE,count:1 --pipe=3 --open=/dev/video7 \
388 --output=/tmp/frames.3A --fmt=type:META_CAPTURE,? \
389 --reqbufs=count:1,type:META_CAPTURE --pipe=1,2,3,4 --stream=5
393 .. code-block:: none
395 yavta --data-prefix -Bcapture-mplane -c10 -n5 -I -s2592x1944 \
396 --file=frame-#.out-f NV12 /dev/video5 & \
397 yavta --data-prefix -Bcapture-mplane -c10 -n5 -I -s2592x1944 \
398 --file=frame-#.vf -f NV12 /dev/video6 & \
399 yavta --data-prefix -Bmeta-capture -c10 -n5 -I \
400 --file=frame-#.3a /dev/video7 & \
401 yavta --data-prefix -Boutput-mplane -c10 -n5 -I -s2592x1944 \
402 --file=/tmp/frame-in.cio2 -f IPU3_SGRBG10 /dev/video4
408 ----------------------------------------------
416 .. code-block:: none
418 raw2pnm -x2560 -y1920 -fNV12 /tmp/frames.out /tmp/frames.out.ppm
426 .. code-block:: none
428 raw2pnm -x2560 -y1920 -fNV12 /tmp/frames.vf /tmp/frames.vf.ppm
438 https://chromium.googlesource.com/chromiumos/platform/arc-camera/+/master/
448 .. kernel-render:: DOT
478 { rank=same; a -> b -> c -> d -> e -> f -> g -> h -> i }
479 { rank=same; j -> k -> l -> m -> n -> o -> p -> q -> s -> t}
481 a -> j [style=invis, weight=10]
482 i -> j
483 q -> r
491 Optical Black Correction Optical Black Correction block subtracts a pre-defined
496 address non-linearity sensor effects. The Lookup table
500 non-uniformity of the pixel response due to optical
521 basic non-linear tone mapping correction that is
575 Y-tone mapping
578 processor, while many others will use a set of fixed hardware blocks also
592 .. [#f5] drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
598 .. [#f3] http://git.ideasonboard.org/?p=media-ctl.git;a=summary