案例說(shuō)明 本文主要介紹基于創(chuàng )龍科技TL3588-EVM評估板(基于RK3588J)的6路高清視頻采集案例,開(kāi)發(fā)環(huán)境如下。 Windows開(kāi)發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit 虛擬機:VMware15.5.5 開(kāi)發(fā)環(huán)境:Ubuntu20.04.6 64bit U-Boot:U-Boot-2017.09 Kernel:Linux-5.10.160 LinuxSDK:rk3588_linux_release_v1.2.1 攝像頭模塊型號:TL13850和Camera Module v2 視頻分辨率:1920x1080@30fps 圖 1 6路視頻采集效果圖 備注:由于案例通過(guò)等比例拼接形式采集畫(huà)面,且攝像頭幀率需統一,因此攝像頭分辨率幀率均使用1920x1080@30fps。 RK3588J的MIPI CSI介紹 RK3588J的MIPI CSI接口介紹如下。 (1)支持多種視頻格式:RAW8、RAW10、RAW12、RAW14、YUV422。 (2)包含4個(gè)MIPI CSI DPHY接口,支持MIPI DPHY V1.2標準,每個(gè)接口支持2Lane,每Lane最高支持2.5Gbps;支持將2個(gè)MIPI CSI DPHY接口組合成1個(gè)4Lane數據通道接口使用。 (3)包含2個(gè)MIPI CSI DCPHY接口(MIPI CSI DPHY/CPHY復用),支持MIPI CPHY V1.1標準,每個(gè)MIPI CSI DCPHY支持4Lane數據通道,每Lane最高2.5Gbps。 (4)支持的攝像頭接口組合方案如下: 6個(gè)攝像頭接口配置:2個(gè)MIPI CSI DCPHY(4Lane)接口 + 4個(gè)MIPI CSI DPHY(2Lane)接口; 5個(gè)攝像頭接口配置:2個(gè)MIPI CSI DCPHY(4Lane)接口 + 1個(gè)MIPI CSI DPHY(4Lane)接口 + 2個(gè)MIPI CSI DPHY(2Lane)接口; 4個(gè)攝像頭接口配置:2個(gè)MIPI CSI DCPHY(4Lane)接口 + 2個(gè)MIPI CSI DPHY(4Lane)接口。 表 1 (5)常見(jiàn)視頻輸入數據量理論帶寬及MIPI CSI Lane數量要求,如下表所示: 備注:以下相關(guān)數據量估算不含數據傳輸協(xié)議相關(guān)開(kāi)銷(xiāo),僅供參考。 表 2 案例功能說(shuō)明 ISP圖像處理說(shuō)明 RK3588J的ISP30模塊支持標準的Sensor圖像數據處理,包括自動(dòng)白平衡、自動(dòng)曝光、Demosaic、壞點(diǎn)矯正及鏡頭陰影矯正等基本功能,也支持HDR、去霧、降噪等高級處理功能。 ISP30功能框圖如下圖所示。 圖 2 RK3588J的圖像處理基于ISP圖像參數調試工具RKISP2.x Tuner對攝像頭采集的圖像進(jìn)行標定,通過(guò)IQ參數文件將攝像頭采集的圖像優(yōu)化處理后發(fā)送至顯示設備。 RKISP2.x Tuner提供了一套便于用戶(hù)調試ISP參數的工具,用戶(hù)可以在RKISP2.x Tuner中對所有ISP模塊開(kāi)展標定(Calibration)、調試(Tuning)等工作。用戶(hù)可以使用RKISP2.x Tuner提供的抓圖工具(Capture Tool)來(lái)拍攝RAW圖,在標定工具(Calibration Tool)中完成基礎模塊的標定工作,在RKISP2.x Tuner中連接設備,在線(xiàn)進(jìn)行ISP參數調試。 Tuner流程圖如下所示: 圖 3 縮放拼接功能說(shuō)明 案例基于Linux的V4L2采集1080P的攝像頭畫(huà)面,通過(guò)RGA進(jìn)行圖像縮放和拼接處理,最終利用DRM框架將處理后的整個(gè)畫(huà)面進(jìn)行顯示。 (1)采集圖像:V4L2(Video for Linux 2)是用于支持攝像頭和視頻設備的框架,其提供了一組API和驅動(dòng)程序接口,用于在Linux系統中進(jìn)行視頻采集、視頻流處理和視頻播放等操作。 (2)縮放拼接:RGA(Raster Graphic Acceleration Unit)是⼀個(gè)獨立的2D硬件加速器,可⽤于加速點(diǎn)/線(xiàn)的繪制,執行圖像縮放、旋轉、bitBlt、alpha混合等常⻅的2D圖形操作。 (3)圖像顯示:DRM(Direct Rendering Manager)是Linux內核的一個(gè)子系統,負責與GPU進(jìn)行交互。用戶(hù)空間程序可以使用DRM的API向GPU發(fā)送命令和數據并執行諸如配置顯示器模式設置之類(lèi)的操作。 RK3588J典型應用領(lǐng)域 圖5 6路視頻采集案例演示 案例說(shuō)明 本案例實(shí)現6路攝像頭的圖像采集,并對圖像進(jìn)行縮放和拼接處理,最終通過(guò)HDMI顯示屏進(jìn)行顯示。其中配置所有攝像頭以1920x1080@30fps分辨率采集畫(huà)面,并通過(guò)硬件協(xié)處理器縮放拼接畫(huà)面后以1920x1080@30fps分辨率輸出到HDMI顯示屏。 圖 5 根據攝像頭的數量,顯示的畫(huà)面布局如下: 圖 6 案例測試 請使用FFC軟排線(xiàn)將MIPI攝像頭模塊(TL13850)連接至評估板CAMERA1、CAMERA2接口;將MIPI攝像頭模塊(Camera Module v2)連接至評估板CAMERA3~CAMERA6接口,然后將評估板HDMI OUT接口連接至HDMI顯示屏。 表 3 圖 7 請將案例bin目錄下的multi_camera_display可執行程序拷貝至評估板文件系統任意目錄下,進(jìn)入可執行程序所在目錄,執行如下命令采集視頻,并輸出至顯示設備。命令參數"-o 208:71:1920x1080"表示將終端輸出至HDMI顯示器,打印信息"usec"表示耗時(shí),單位為us,"fps"表示幀率。按"Ctrl + C"可停止運行。 Target# ./multi_camera_display -M rockchip -i 84,66,75,93,102,111 -S 1920x1080 -f NV12 -F NV12 -b 4 -o 208:71:1920x1080 圖 8 圖 9 表 4 圖 10 單路視頻采集時(shí)延測試界面 圖 11 6路視頻采集時(shí)延測試界面 |