[i.mx8mplus] "ISP 4K Bayer + ISI 720p YUV422" or "ISI 4K Bayer + ISP 720p YUV422" ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[i.mx8mplus] "ISP 4K Bayer + ISI 720p YUV422" or "ISI 4K Bayer + ISP 720p YUV422" ?

Jump to solution
2,018 Views
kiseok_ko
Contributor III

Dear All. I can not handle ISP parameters, dynamically.

Actually, We need one of below pipelines. Is it possible?

1. sensor -(bayer)-> mipi -(bayer)-> isp0 -(bayer)-> captured(memory)

 : do not need dwe.

 : need auto or manual control exposure & gain.

 : ISP 4k capture with ISI capture (13.4 Image Sensing Interface (ISI) module , IMX8MPRM.pdf p5265)

2. [sensor, with isp] -(yuv422)-> mipi -(yuv422)->isp1-(yuv422) -> captured(memory)

 : need dwe(if is is able to rotate) optionally.

 

 ; 13.14.2.2.2 MIPI Inputs (IMX8MPRM.pdf p5899) The ISP can support the following image data formats through the MIPI interface (see the MIPI-CSI2 standard for details about the image data formats and byte sequences):

YUV 4:2:2 8bit / 10bit (to YUV processing chain)

 

who could help me?

Thanks a lot. Best Regards. kiseokko.

Tags (1)
0 Kudos
Reply
1 Solution
2,004 Views
malik_cisse
Senior Contributor I

Hi,

1. sensor -(bayer)-> mipi -(bayer)-> isp0 -(bayer)-> captured(memory)

 : do not need dwe.

If you configure /dev/video0 to output RAW bayer, ISP and dwe are both bypassed and you get raw image as provided by the sensor. If the sensor delivers 10bpp, it will be packed in 16bit litle endian. You need to convert to big endian prior to debayer it.

 : need auto or manual control exposure & gain.

Auto is taken care by *.xml file

Dynamic can be done via /opt/imx8-isp/bin/vvext tool

Launch capture pipeline, launch "vvext 0 0" and setup ISP dynamically.

vvext source code is in BSP. You can use it to write you own dynamic config tool. I did that

There is also one capture and ISP config example in /opt/imx8-isp/bin. This bynary (forgot exact name) opens V4L2, captures an ISP processed image and stores it to disk or displays it using DRM

. [sensor, with isp] -(yuv422)-> mipi -(yuv422)->isp1-(yuv422) -> captured(memory)

 : need dwe(if is is able to rotate) optionally.

No need for ISI or ISP for this since ISP is already in sensor. Why use 2x ISP? You can write regular CSI driver and do rotation in G2D. I used G2D to do yuv to RGB conversion and it was easy.

You can also use ISI. Not sure if ISI can do rotation though. I know it can do downscaling. But still you can do rotation using G2D API.

 

I spent month on this problematic so far...

View solution in original post

3 Replies
2,005 Views
malik_cisse
Senior Contributor I

Hi,

1. sensor -(bayer)-> mipi -(bayer)-> isp0 -(bayer)-> captured(memory)

 : do not need dwe.

If you configure /dev/video0 to output RAW bayer, ISP and dwe are both bypassed and you get raw image as provided by the sensor. If the sensor delivers 10bpp, it will be packed in 16bit litle endian. You need to convert to big endian prior to debayer it.

 : need auto or manual control exposure & gain.

Auto is taken care by *.xml file

Dynamic can be done via /opt/imx8-isp/bin/vvext tool

Launch capture pipeline, launch "vvext 0 0" and setup ISP dynamically.

vvext source code is in BSP. You can use it to write you own dynamic config tool. I did that

There is also one capture and ISP config example in /opt/imx8-isp/bin. This bynary (forgot exact name) opens V4L2, captures an ISP processed image and stores it to disk or displays it using DRM

. [sensor, with isp] -(yuv422)-> mipi -(yuv422)->isp1-(yuv422) -> captured(memory)

 : need dwe(if is is able to rotate) optionally.

No need for ISI or ISP for this since ISP is already in sensor. Why use 2x ISP? You can write regular CSI driver and do rotation in G2D. I used G2D to do yuv to RGB conversion and it was easy.

You can also use ISI. Not sure if ISI can do rotation though. I know it can do downscaling. But still you can do rotation using G2D API.

 

I spent month on this problematic so far...

1,964 Views
kiseok_ko
Contributor III

Thank you. @malik_cisse 

If you configure /dev/video0 to output RAW bayer, ISP and dwe are both bypassed and you get raw image as provided by the sensor. If the sensor delivers 10bpp, it will be packed in 16bit litle endian. You need to convert to big endian prior to debayer it.

it will be packed in 16bit litle endian. You need to convert to big endian prior to debayer it.

This is  a answer of "[i.mx8mplus] How to setup bypass-pipeline by 4K Ba... - NXP Community"

 

0 Kudos
Reply
1,983 Views
kiseok_ko
Contributor III

Actually, I want to capture both 4K bayer and 1~2M YUV stream, concurrently.

and, It is best way that capture on ISI module, if it is possible.

Unfortunatelly, In my researching, ISI on i.MX8M plus can not pass both 4K Bayer and 1~2M YUV, concurrently.

So, I tried 2 method. and each method has each problem.

case 1) 4K bayer on ISP + 1M YUV ISI

4K bayer on ISP, image is like below 

kiseok_ko_0-1654233070846.png

case 2) 4K bayer on ISI + 1M YUV ISP

 1M YUV on ISP, image is like below .

kiseok_ko_0-1654749369320.png

 

this issue is combined with below issues.

[i.mx8mplus] How to setup bypass-pipeline by 4K Ba... - NXP Community

i.MX 8MP using both ISI + ISP for single CSI - NXP Community 

   --> @malik_cisse 's issue reply

Raw Camera with ISP in i.MX8MPlus - NXP Community 's replys.

 

 

0 Kudos
Reply