rv1106使用笔记
1.编译程序
(1).使用野火提供的ubuntu环境编译,需要添加编译器路径到系统路径,在 .bashrc 文件中修改PATH为:
PATH=/home/lubancat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/rv1106/arm-rockchip830-linux-uclibcgnueabihf/bin
(2).编译程序 参考 Rockchip_Quick_Start_Linux_IPC_SDK_CN.pdf 第二章
(3).如果需要单独配置 内核 buildroot参考 [野火]《快速使用手册-基于LubanCat-RV110x系列板卡》_20250616.pdf 第28,29章节
也可以在编译目录输入 ./build.sh --help 查看配置选项。
(4).板级配置参考 Rockchip_Quick_Start_Linux_IPC_SDK_CN.pdf 第四章 和 [野火]《快速使用手册-基于LubanCat-RV110x系列板卡》_20250616.pdf 第二十六章
2.程序下载
参考 [野火]《快速使用手册-基于LubanCat-RV110x系列板卡》_20250616.pdf 第四章
或者
参考 Rockchip_Quick_Start_Linux_IPC_SDK_CN.pdf 第四章
3.外设使用
直接参考 :[野火]《快速使用手册-基于LubanCat-RV110x系列板卡》_20250616.pdf
USB相关配置也参考以上文档的十九章,可以配置成usb设备和usb主机
摄像头配置,视频编码相关测试在野火的文档21章有介绍,这里介绍最主要的几个命令:
(1).摄像头列表:v4l2-ctl --list-devices
(2).列出摄像头格式:v4l2-ctl --list-formats-ext --device=/dev/video11
(3).摄像头拍摄:
1.开启 rkaiq_3A_server 服务运行命令:rkaiq_3A_server &
2.运行瑞芯微官方测试程序抓取yuv数据:rk_mpi_vi_test -w 1632 -h 1224 -t 4 -c 0 -d 0 -m 0 -l 1 -o 1 --delay_get=200
3.拍摄jpg照片:rk_mpi_vi_test -w 1632 -h 1224 -t 4 -c 0 -d 0 -m 1 -l 1 -o 1 --delay_get=200 --codec=15
4.录取 .h264 视频文件:rk_mpi_vi_test -w 1632 -h 1224 -t 4 -c 0 -d 0 -m 1 -l 300 -o 1 --codec=8
注意:修改--codec=x参数可以修改录制格式:h264 使用 --codec=8,h265 使用 --codec=12,mjpeg 使用 --codec=9,该测试程序是由 media/rockit/rockit/mpi/example/mod/test_mpi_vi.cpp程序生成。
注意:以上拍摄的照片都存在 /userdata/ 目录里面以.bin文件格式结尾。
4.程序自启设置
在开发板根文件系统 oem/usr/bin/RkLunch.sh 中添加 需要启动的程序,在这个文件里
可以参考 /oem/usr/bin/lvgl_app_v9 & 这样写,瑞芯微官方的测试程序也在这个同目录 /oem/usr/bin 里
5.开发板枚举成 uvc摄像头 设备
(1).按照 Rockchip_Quick_Start_Linux_IPC_SDK_CN.pdf 使用野火的sdk测试暂时不成功
6.rtsp推流
(1).运行程序:simple_vi_bind_venc_rtsp &
(2).使用vlc打开rtsp流 rtsp://192.168.11.208/live/0 vlc会播放摄像头的视频流。
7.rv1106图像数据流向分析
参考 Rockchip_RV1106_TRM_V0.3-Part1-20220324.pdf
图像数据从接口流入,经过窗口裁剪可以供给其他单元,可以经过mux,供给scale缩放处理,可以给isp单元做图像信号处理。
8.示例程序
跟其他程序芯片一样,瑞芯微对自己的芯片也做了示例程序,示例程序放在:
关于示例文件的说明可以参阅:
《Rockchip_RV1106_RV1103_Developer_Guide_Linux_IPC_Sample_CN.pdf》
这里对每个例程的使用偶有详细说明。
9.视频处理相关
在《Rockchip_Quick_Start_Linux_IPC_SDK_CN.pdf》文档中推荐使用rockit框架对视频进行操作。
(1)Rockit对外接口说明
Rockit对外提供TGI(TaskGraph Interface)和MPI(Media Process Interface)两套接口,用于应用程序开发,两套接口可单独使用,也可结合使用。
TGI | MPI | |
灵活性 | Pipeline构建后较为固定 | 灵活,模块可灵活拼接 |
使用场景 | UVC、UAC | NVR、IPC |
(2)TGI
- 基于TGI接口可以通过配置文件方式构建应用Pipeline,详见tgi/doc/目录文档说明。
- 适用于UVC、UAC等较为固定Pipeline应用场景。
- 已应用于RV1109/1126 RK356X UVC、UAC类产品。
(3)MPI
- MPI接口是模块化接口,包括VI/VO/VDEC/VENC/VPSS/VGS/TDE/SYS/MB/AI/AO/ADEC/AENC等模块,详见mpi/doc/目录文档说明。
- MPI支持单模块使用,也支持多模块组合使用,可采用模块间绑定或者手动取/送流方式,灵活构建应用Pipeline。
- 已应用于RV1109/1126 IPC、RK356X NVR类产品,并在后续RK3588等新芯片上持续支持。
(4)使用MPI和TGI
SDK默认仅开启TGI接口头文件、动态库安装,可根据产品应用需求,通过修改 ./rockit目录下CMakeLists.txt,将USE_ROCKIT_MPI置为ON,打开MPI接口编译安装。
```c
option(USE_ROCKIT_TGI "enable rockit tgi" ON)
if (${USE_ROCKIT_TGI})message("Build rockit tgi")add_subdirectory(tgi)
endif()option(USE_ROCKIT_MPI "enable rockit mpi" OFF)
if (${USE_ROCKIT_MPI})message("Build rockit mpi")add_subdirectory(mpi)
endif()
```
在 media/rockit/rockit/mpi 目录,包含MPI的example,sdk,doc,怎么使用MPI参考doc目录的文档:
《Rockchip_Developer_Guide_MPI.pdf》《Rockchip_Rockit_Runtime_Library_Developer_Guide.pdf》