02 图像处理链路
本文以 sample_vio 为例,系统讲解图像处理链路的整体处理流程,并结合实际操作帮助用户深入理解其工作机制与实现过程。
s说明
本文档仅对sample使用进行介绍,代码具体实现请参考<SDK_DIR>/sample/vio/sample_vio.c及其相关文件
1 sample_vio的作用和意义
sample_vio是SDK中用于演示视频输入与图像处理链路的示例程序,其展示了从 sensor 采集图像,经 VI -> VPSS 处理后,再根据配置选择输出到显示设备 VO 或送入 VENC 编码的完整视频链路。通过该示例,用户可以快速验证视频通路的接入能力、图像处理效果以及输出链路的稳定性,为后续业务开发提供参考。
2 sample_vio的工作流程
sample_vio首先由VI模块完成对sensor图像数据的采集与输入,然后将采集到的视频流送入VPSS进行图像处理,包括缩放、裁剪、畸变校正、去噪及图像增强等操作;处理后的图像数据可根据实际需求输出至VO模块进行显示,或送入VENC模块进行编码并保存为文件。通过不同的work_mode配置,sample_vio还可实现在线或离线处理、双目视频处理、WDR 场景切换以及分辨率切换等功能,从而满足不同应用场景下的视频处理需求。
3 sample_vio的使用示例
步骤1:编译sample_vio
切换到sample目录下执行:make vio 预期关键输出:
#### make "vio" completed successfully!(7 seconds) ####此时<SDK_DIR>/sample/vio目录下会多出一个sample_vio可执行文件和sample_vio.o文件
步骤2:拷贝sample_vio
将sample_vio可执行文件拷贝到板端
注意
板端资源有限,建议先挂载SD卡SD卡挂载步骤,再拷贝到SD卡中运行
步骤3:为sample_vio文件赋予可执行权限
chmod +x sample_vio步骤4:运行sample_vio
参数说明
sample_vio: 功能描述:mpp框架串联
命令格式:./sample_vio [work_mode] [stream_mode]
work_mode:
0 vi在线vpss在线
1 vi离线vpss在线(可用于支持4K分辨率sensor输入)
2 vi离线vpss离线
3 vi在/离线vpss离线,wdr模式 (默认vi在线)
4 vi离线vpss离线,vi选择线性/wdr切换
5 vi离线vpss离线,分辨率切换
6 vi离线vpss在线,双目(支持任意2lane输入的sensor组合)
7 vi离线vpss在线,双目拼接
8 vi在线vpss在线,双目+内置switch
9 vi离线vpss离线,预录制及回读用例(CV4003 sensor)
10 vi离线vpss在线,ldc畸变矫正
11 vi离线vpss在线,ahd sensor输入
stream_mode:
0: 输出到显示设备
1: 编码输出文件
示例:
./sample_vio 0 1预期输出:
[sample_comm_sys_get_wrap_buffer_size]-555: wrap buffer line is 720
[sample_vio_vi_online_vpss_online]-205: wrap vb size : 1992960
[SENSOR][Func]:sc465sl_set_slave_addr [Line]:1637 [Info]:Sensor dev [0] set slave addr 0x60 success.
[SENSOR][Func]:sc465sl_i2c_init [Line]:1664 [Info]:====== i2c[1] init success!=======
[SENSOR][Func]:sc465sl_set_wdr_mode [Line]:487 [Info]:linear mode
[sample_comm_isp_sensor_init]-368: sensor i2c_id = 1, clk_id = 1
[SENSOR][Func]:sc465sl_get_ae_common_default [Line]:858 [Info]:man_ratio_enable: 0
[SENSOR][Func]:sc465sl_calc_fps [Line]:1358 [Info]:sc465sl set fps = 30.000000
[ISP]isp_init[1113]: isp[0] init success
[ISP]isp_run[771]: isp run.
[sample_comm_vi_start_dev]-1066: mipi_rate: 864.
[ISP]isp_start[503]: isp0 start.
[SENSOR][Func]:sc465sl_4lane_linear_2560x1440_init [Line]:952 [Info]:============================================================================
[SENSOR][Func]:sc465sl_4lane_linear_2560x1440_init [Line]:953 [Info]:=== SC465SL_27MInput_MIPI_4lane_12bit_30fps_2560x1440_linear init success! =
[SENSOR][Func]:sc465sl_4lane_linear_2560x1440_init [Line]:954 [Info]:============================================================================
rtsp://192.168.49.10:554/livestream/0
rtsp://192.168.49.10:554/livestream/1
---------------press any key to exit!---------------
[SENSOR][Func]:sc465sl_calc_fps [Line]:1358 [Info]:sc465sl set fps = 25.000000网络URL如下:
rtsp://192.168.49.10:554/livestream/0为主码流(更高清)rtsp://192.168.49.10:554/livestream/1为子码流
步骤5:查看运行效果
1. 安装VLC多媒体播放器
可直接在微软应用商店中安装

2. 打开网络串流工具进行拉流

3. 输入网络URL

点击播放按键后即可看到摄像头拍摄画面了

提示
若画面畸变较大可使用./sample_vio 10 1进行ldc畸变矫正
