天天看点

ISP 图像信号处理器软件框架zynqmp_cam_isp_demo_linux

zynqmp_cam_isp_demo_linux

ZynqMP-ISP 图像信号处理器数字IP实现 的linux软件项目

待更新

ISP 图像信号处理器软件框架zynqmp_cam_isp_demo_linux
#u-boot 配置nfsroot, tftp下载kernel和dtb, 启动kernel
setenv bootargs 'earlycon console=ttyPS1,115200 clk_ignore_unused root=/dev/nfs rw nfsroot=192.168.1.10:/tftpboot/zynqmp/rootfs,nolock,nfsvers=3 ip=dhcp cma=1000M '
setenv ipaddr 192.168.137.123; setenv netmask 255.255.255.0; setenv gatewayip 192.168.137.1; setenv serverip 192.168.1.10
tftpboot 0x00200000 zynqmp/Image; tftpboot 0x00100000 zynqmp/system.dtb
booti 0x00200000 - 0x00100000
           
#加载PL及其dtbo
mkdir -p /configfs
mount -t configfs configfs /configfs
echo 0 > /sys/class/fpga_manager/fpga0/flags
mkdir /configfs/device-tree/overlays/full
echo -n "pl.dtbo" > /configfs/device-tree/overlays/full/path
           
#配置AR1335,MIPI-RX格式
media-ctl --set-v4l2 '"ar1335 3-0036":0[fmt:SGRBG10_1X10/2048x1536 field:none]'
media-ctl --set-v4l2 '"a0030000.mipi_rx_to_video":0[fmt:SGRBG10_1X10/2048x1536 field:none]'
media-ctl --set-v4l2 '"a0030000.mipi_rx_to_video":1[fmt:SGRBG10_1X10/2048x1536 field:none]'
media-ctl --set-v4l2 '"axi:camif_ias1_axis_subsetconv":0[fmt:SGRBG10_1X10/2048x1536 field:none]'
media-ctl --set-v4l2 '"axi:camif_ias1_axis_subsetconv":1[fmt:Y10_1X10/2048x1536]'
           
#配置ISP,VIP格式
media-ctl -d /dev/media1 --set-v4l2 '"a0070000.xil_isp_lite":0[fmt:Y10_1X10/2048x1536 field:none]'
media-ctl -d /dev/media1 --set-v4l2 '"a00a0000.xil_vip":1[fmt:UYVY8_1X16/1920x1080 field:none]'
v4l2-ctl -d /dev/video2 -c low_latency_controls=2
           
#配置libcamera运行时环境
export LIBCAMERA_IPA_MODULE_PATH=/usr/lib/libcamera
export LIBCAMERA_IPA_PROXY_PATH=/usr/libexec/libcamera
export LIBCAMERA_IPA_CONFIG_PATH=/usr/share/libcamera/ipa
           
#libcamera-cam测试
cam -c 1 -s width=1920,height=1080,pixelformat=YUYV,role=video,colorspace=rec709 --capture=10 --file
           
#gst-lanuch显示测试
gst-launch-1.0 libcamerasrc camera-name="/base/axi/[email protected]/[email protected]" ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1 ! kmssink bus-id=fd4a0000.display fullscreen-overlay=1 async=false
           

V4L2设备拓扑

[email protected]:~# media-ctl -d /dev/media0 --print-topology
Media controller API version 5.15.0

Media device information
------------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial
bus info
hw revision     0x0
driver version  5.15.0

Device topology
- entity 1: vcap_mipi_csi2_rx_ias1 output 0 (1 pad, 1 link)                                 <<< MIPIRX图像输出
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "axi:camif_ias1_axis_subsetconv":1 [ENABLED]

- entity 5: ar1335 3-0036 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev0
        pad0: Source
                [fmt:SGRBG10_1X10/2048x1536 field:none colorspace:srgb]
                -> "a0030000.mipi_rx_to_video":0 [ENABLED]

- entity 7: a0030000.mipi_rx_to_video (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: Sink
                [fmt:SGRBG10_1X10/2048x1536 field:none]
                <- "ar1335 3-0036":0 [ENABLED]
        pad1: Source
                [fmt:SGRBG10_1X10/2048x1536 field:none]
                -> "axi:camif_ias1_axis_subsetconv":0 [ENABLED]

- entity 10: axi:camif_ias1_axis_subsetconv (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
        pad0: Sink
                [fmt:SGRBG10_1X10/2048x1536 field:none]
                <- "a0030000.mipi_rx_to_video":1 [ENABLED]
        pad1: Source
                [fmt:Y10_1X10/2048x1536 field:none]
                -> "vcap_mipi_csi2_rx_ias1 output 0":0 [ENABLED]

[email protected]:~# media-ctl -d /dev/media1 --print-topology
Media controller API version 5.15.0

Media device information
------------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial
bus info
hw revision     0x0
driver version  5.15.0

Device topology
- entity 1: isp_pipe_video_dev output 1 (1 pad, 1 link)                                <<< ISP图像输出
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "a00a0000.xil_vip":1 [ENABLED]

- entity 5: isp_pipe_video_dev input 0 (1 pad, 1 link)                                 <<< ISP图像输入
            type Node subtype V4L flags 0
            device node name /dev/video2
        pad0: Source
                -> "a0070000.xil_isp_lite":0 [ENABLED]

- entity 9: a0070000.xil_isp_lite (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev3
        pad0: Sink
                [fmt:Y10_1X10/2048x1536 field:none colorspace:srgb]
                <- "isp_pipe_video_dev input 0":0 [ENABLED]
        pad1: Source
                [fmt:YUV10_1X30/2048x1536 field:none colorspace:srgb]
                -> "a00a0000.xil_vip":0 [ENABLED]

- entity 12: xil-isp-lite_stat (1 pad, 0 link)                                         <<< ISP统计输出
             type Node subtype V4L flags 0
             device node name /dev/video3
        pad0: Sink

- entity 16: a00a0000.xil_vip (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev4
        pad0: Sink
                [fmt:YUV10_1X30/2048x1536 field:none colorspace:srgb]
                <- "a0070000.xil_isp_lite":1 [ENABLED]
        pad1: Source
                [fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
                -> "isp_pipe_video_dev output 1":0 [ENABLED]


           
ISP 图像信号处理器软件框架zynqmp_cam_isp_demo_linux

项目代码: https://github.com/bxinquan/zynqmp_cam_isp_demo_linux

继续阅读