rv1126/rk3588摄像头捕获图像色彩异常
很多同学第一次使用rv1126或者rk3588的mipi摄像头捕获图像,发现色彩不对劲,而且还一个劲的想使用V4L2采集mipi摄像头的数据,那会走很多弯路的,主要是因为不熟悉isp,不熟悉aiq。
其实是可以参考自带的范例,比如:
- rkmedia_vi_get_frame_test 捕获YUV图像
- rkmedia_vi_insert_user_picture_test 捕获YUV图像并编码为H264
- rkmedia_vi_venc_rtsp_test IPC范例,可以通过rtsp链接获取摄像头编码后的图像
1 概述
RKMedia提供了一种媒体处理方案,可支持应用软件快速开发。RKMedia在各模块基础API上做进一步封装,简化了应用开发难度。该平台支持以下功能:VI(输入视频捕获)、ENC(H.265/H.264/JPEG/MJPEG编码)、VDEC(H.265/H.264/JPEG、MJPEG 解码)、VO(视频输出显示)、RGA视频处理(包括旋转、缩放、裁剪)、AI(音频采集)、AO(音频输出)、AENC(音频编码)、ADEC(音频解码)、MD(移动侦测)、OD(遮挡侦测)、VMIX(视频合成)、MUXER(视频封装)、VP(视频一入四出)。
2 系统架构
- Camera Sensor(图像传感器)是摄像头的核心部件,其主要功能是将光学图像转换为电信号,进而生成数字图像信号,为后续的图像处理和存储提供数据来源。就像人眼的视网膜一样,它是捕捉光线并将其转化为可被设备理解的信息的关键部分。
- V4L2 (Video for Linux 2):是 Linux 内核中用于处理视频设备的应用程序接口。它提供了一系列的系统调用和数据结构,允许应用程序控制视频捕获设备(如摄像头)、视频输出设备以及其他多媒体设备,包括设备的打开 / 关闭、参数设置(如分辨率、帧率等)、数据传输和缓冲管理等功能
- RGA (Raster Graphic Acceleration Unit) 光栅图形加速单元, 是一个独立的2D硬件加速器,可用于加速点/线绘制,执行图像缩放、旋转、裁剪、bitBlt、alpha混合等常见的2D图形操作。
- DRM(Digital Rights Management)数字版权管理,是一种专门用于保护音频和视频内容版权的技术体系。它通过加密、许可证管理、身份认证等多种技术手段,控制用户对音视频内容的访问、播放、复制、共享等操作,确保只有合法授权的用户在符合版权规定的条件下才能使用这些内容。
- MPP(Media Processing Platform)媒体处理平台,主要用于处理音视频相关的任务。
- RKNPU (Rockchip Neural Processing Unit)它是瑞芯微(Rockchip)自家设计的神经处理单元
- ALSA(Advanced Linux Sound Architecture) 高级Linux音频架构,它为 Linux 系统提供了音频设备的驱动程序框架和 API(应用程序编程接口),用于音频设备的管理和音频数据的处理,是 Linux 音频处理的核心部分。
- AENC(Audio Encode)音频编码
- ADEC(Audio Decode)音频解码
3 摄像头捕获图像
最核心的操作是需要把开发板资料里的 iqfiles 拷贝到 /oem/etc目录,我用的摄像头是imx415,所以把非ixm415相关的配置文件删除了,最终拷贝到/oem/etc/iqfiles的文件为:
[root@ATK-DLRV1126:/oem/etc/iqfiles]# ls -al total 14253 drwxrwxr-x 2 root root 1024 Jan 1 1970 AVL_isp20 drwxrwxr-x 2 root root 1024 Jan 1 1970 FEC_mesh_3840_2160_imx415_3.6mm drwxrwxr-x 2 root root 1024 Jan 1 1970 LDCH_mesh_3840_2160_imx415_3.6mm -rwxrwxrwx 1 root root 2534648 Jan 31 2024 imx415_YT-RK415-V1_IR0147-60IRC-8M-F20.xml -rwxrwxrwx 1 root root 2008242 Jan 31 2024 imx415_YT10092_IR0147-28IRC-8M-F20-hdr3.xml -rwxrwxrwx 1 root root 2008253 Jan 31 2024 imx415_YT10092_IR0147-28IRC-8M-F20.xml -rwxrwxrwx 1 root root 2008242 Jan 31 2024 imx415_YT10092_IR0147-36IRC-8M-F20-hdr3.xml -rwxrwxrwx 1 root root 2008253 Jan 31 2024 imx415_YT10092_IR0147-36IRC-8M-F20.xml -rwxrwxrwx 1 root root 2008232 Jan 31 2024 imx415_YT10092_IR0147-60IRC-8M-F20-hdr3.xml -rwxrwxrwx 1 root root 2008249 Jan 31 2024 imx415_YT10092_IR0147-60IRC-8M-F20.xml
然后在使用测试范例测试的时候加上 -a选项。即是采集后的数据经过 ISPP(图像信号处理流水线,比如线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制) 并进行AIO(自动调整和优化图像质量)处理。
3.1 经过ISPP进行AIO的画面
测试命令:rkmedia_vi_venc_rtsp_test -a /oem/etc/iqfiles
电脑拉流地址:rtsp://开发板IP/live/main_stream
3.2 没有经过ISPP自动处理的画面
测试命令:rkmedia_vi_venc_rtsp_test
电脑拉流地址:rtsp://开发板IP/live/main_stream
4 总结
瑞芯微的Media架构还是挺多内容可以学习的,但如果对Media架构没有整体的理解,没有相应的基础知识,那自学起来效率比较低,如果想获取更多音视频相关的知识,可以在B站搜索 程序员老廖 获取更多音视频相关知识。
#嵌入式##音视频##嵌入式音视频##音视频校招#